aboutsummaryrefslogtreecommitdiffstats
path: root/git-tools/hooks/install
blob: a42c55a769ca8471e9ae8c93ec7e73ef3269e76f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/sh
#
# Script to install the git hooks
# by symlinking them into the .git/hooks directory
#
# Usage (from within git-tools/hooks):
# ./install

dir=$(dirname $0)

for file in $(ls $dir)
do
	if [ $file != "install" ] && [ $file != "uninstall" ]
	then
		ln -s "../../git-tools/hooks/$file" "$dir/../../.git/hooks/$file"
	fi
done
ue='user/pterjan/arm64'>user/pterjan/arm64 Mageia Installer and base platform for many utilitiesThierry Vignaud [tv]
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat
-rw-r--r--.gitignore4
-rw-r--r--Makefile3
-rw-r--r--Makefile.common64
-rw-r--r--Makefile.config5
-rw-r--r--advertising/01IM_RANGE-a.pl1
-rw-r--r--advertising/01IM_RANGE-a.pngbin165655 -> 0 bytes
-rw-r--r--advertising/01_IM_mageia.pl1
-rw-r--r--advertising/01_IM_mageia.pngbin0 -> 69206 bytes
-rw-r--r--advertising/02IM_MIGRATION.pl1
-rw-r--r--advertising/02IM_MIGRATION.pngbin87086 -> 0 bytes
-rw-r--r--advertising/02_IM_mageia.pl1
-rw-r--r--advertising/02_IM_mageia.pngbin0 -> 81615 bytes
-rw-r--r--advertising/03IM_ONE.pl1
-rw-r--r--advertising/03IM_ONE.pngbin167917 -> 0 bytes
-rw-r--r--advertising/03_IM_mageia.pl1
-rw-r--r--advertising/03_IM_mageia.pngbin0 -> 81868 bytes
-rw-r--r--advertising/04IM_NETWORK.pl1
-rw-r--r--advertising/04IM_NETWORK.pngbin104040 -> 0 bytes
-rw-r--r--advertising/04_IM_mageia.pl1
-rw-r--r--advertising/04_IM_mageia.pngbin0 -> 65295 bytes
-rw-r--r--advertising/05IM_PWP.pl1
-rw-r--r--advertising/05IM_PWP.pngbin141498 -> 0 bytes
-rw-r--r--advertising/05_IM_mageia.pl1
-rw-r--r--advertising/05_IM_mageia.pngbin0 -> 79652 bytes
-rw-r--r--advertising/06IM_FLASH.pl1
-rw-r--r--advertising/06IM_FLASH.pngbin138353 -> 0 bytes
-rw-r--r--advertising/06_IM_mageia.pl1
-rw-r--r--advertising/06_IM_mageia.pngbin0 -> 84628 bytes
-rw-r--r--advertising/07_IM_mageia.pl1
-rw-r--r--advertising/07_IM_mageia.pngbin0 -> 68380 bytes
-rw-r--r--advertising/08_IM_mageia.pl1
-rw-r--r--advertising/08_IM_mageia.pngbin0 -> 88717 bytes
-rw-r--r--advertising/09_IM_mageia.pl1
-rw-r--r--advertising/09_IM_mageia.pngbin0 -> 87501 bytes
-rw-r--r--advertising/10_IM_mageia.pl1
-rw-r--r--advertising/10_IM_mageia.pngbin0 -> 69206 bytes
-rw-r--r--advertising/Makefile7
-rw-r--r--advertising/NEWS72
-rw-r--r--advertising/list-dis14
-rw-r--r--advertising/list-dwd14
-rw-r--r--advertising/list-ppp13
-rw-r--r--advertising/list-pwp16
-rw-r--r--docs/HACKING126
-rw-r--r--docs/Partition-ends-after-end-of-disk.txt2
-rw-r--r--docs/README85
-rw-r--r--docs/README.devel34
-rw-r--r--docs/README.pxe2
-rw-r--r--docs/SHORTCUTS2
-rw-r--r--docs/drakfont/drakfont.tex2
-rw-r--r--docs/ka_method/Makefile59
-rw-r--r--docs/ka_method/doc-duplication.xml1487
-rw-r--r--docs/ka_method/docbook-jadetex.dsssl450
-rw-r--r--docs/ka_method/duplication.xml39
-rw-r--r--docs/ka_method/duplication.xsl24
-rw-r--r--docs/ka_method/oneduplication.xsl37
-rw-r--r--docs/ka_method/styleguibo.css296
-rw-r--r--docs/mastering-tool-for-restore-cd10
-rw-r--r--globetrotter/.perl_checker8
-rw-r--r--globetrotter/ChangeLog276
-rw-r--r--globetrotter/Makefile97
-rw-r--r--globetrotter/README64
-rw-r--r--globetrotter/doc/BUGS6
-rw-r--r--globetrotter/doc/BUILD28
-rw-r--r--globetrotter/doc/NOTES17
-rw-r--r--globetrotter/fix-broken-hd.diff127
-rwxr-xr-xglobetrotter/make_live547
-rw-r--r--globetrotter/mandrake-globetrotter.spec45
-rw-r--r--globetrotter/move.pm175
-rwxr-xr-xglobetrotter/runstage230
-rw-r--r--images/Makefile39
-rw-r--r--images/NEWS768
-rw-r--r--images/dracut.conf4
-rw-r--r--images/grub2.config33
-rw-r--r--images/grub2.theme34
-rw-r--r--images/help.msg.xml2
-rwxr-xr-ximages/make_boot_img632
-rwxr-xr-ximages/update_kernel42
-rw-r--r--kernel/Makefile4
-rw-r--r--kernel/list_modules.pm392
-rw-r--r--kernel/modules.pl68
-rw-r--r--mdk-stage1/.gitignore13
-rw-r--r--mdk-stage1/Makefile147
-rw-r--r--mdk-stage1/Makefile.common35
-rw-r--r--mdk-stage1/NEWS515
-rw-r--r--mdk-stage1/adsl.c8
-rw-r--r--mdk-stage1/adsl.h6
-rw-r--r--mdk-stage1/automatic.c15
-rw-r--r--mdk-stage1/automatic.h4
-rw-r--r--mdk-stage1/bootsplash.c70
-rw-r--r--mdk-stage1/bootsplash.h25
-rw-r--r--mdk-stage1/cdrom.c29
-rw-r--r--mdk-stage1/cdrom.h4
-rw-r--r--mdk-stage1/config-stage1.h14
-rw-r--r--mdk-stage1/dhcp.c8
-rw-r--r--mdk-stage1/dhcp.h6
-rw-r--r--mdk-stage1/directory.c6
-rw-r--r--mdk-stage1/directory.h6
-rw-r--r--mdk-stage1/disk.c107
-rw-r--r--mdk-stage1/disk.h4
-rw-r--r--mdk-stage1/dns.c202
-rw-r--r--mdk-stage1/dns.h4
-rw-r--r--mdk-stage1/doc/README18
-rw-r--r--mdk-stage1/doc/TECH-INFOS8
-rw-r--r--mdk-stage1/doc/UPDATEMODULES39
-rw-r--r--mdk-stage1/doc/WHY-DIETLIBC50
-rw-r--r--mdk-stage1/doc/documented..frontend.h4
-rw-r--r--mdk-stage1/frontend-common.c4
-rw-r--r--mdk-stage1/frontend.h4
-rw-r--r--mdk-stage1/init.c259
-rw-r--r--mdk-stage1/ka.c27
-rw-r--r--mdk-stage1/ka.h2
-rw-r--r--mdk-stage1/log.c4
-rw-r--r--mdk-stage1/log.h4
-rw-r--r--mdk-stage1/lomount.c8
-rw-r--r--mdk-stage1/lomount.h4
-rw-r--r--mdk-stage1/modules.c257
-rw-r--r--mdk-stage1/modules.h13
-rw-r--r--mdk-stage1/mount.c159
-rw-r--r--mdk-stage1/mount.h8
-rw-r--r--mdk-stage1/mount_rpcgen.h208
-rw-r--r--mdk-stage1/network.c84
-rw-r--r--mdk-stage1/network.h4
-rw-r--r--mdk-stage1/newt-frontend.c23
-rw-r--r--mdk-stage1/newt/Makefile42
-rw-r--r--mdk-stage1/newt/button.c192
-rw-r--r--mdk-stage1/newt/buttonbar.c46
-rw-r--r--mdk-stage1/newt/checkbox.c292
-rw-r--r--mdk-stage1/newt/checkboxtree.c714
-rw-r--r--mdk-stage1/newt/entry.c378
-rw-r--r--mdk-stage1/newt/form.c713
-rw-r--r--mdk-stage1/newt/grid.c389
-rw-r--r--mdk-stage1/newt/label.c81
-rw-r--r--mdk-stage1/newt/listbox.c752
-rw-r--r--mdk-stage1/newt/newt.c672
-rw-r--r--mdk-stage1/newt/newt.h362
-rw-r--r--mdk-stage1/newt/newt_pr.h82
-rw-r--r--mdk-stage1/newt/scale.c72
-rw-r--r--mdk-stage1/newt/scrollbar.c124
-rw-r--r--mdk-stage1/newt/textbox.c409
-rw-r--r--mdk-stage1/newt/windows.c275
-rw-r--r--mdk-stage1/nfs_mount4.h54
-rw-r--r--mdk-stage1/nfsmount.c740
-rw-r--r--mdk-stage1/nfsmount.h331
-rw-r--r--mdk-stage1/params.c13
-rw-r--r--mdk-stage1/params.h4
-rw-r--r--mdk-stage1/partition.c6
-rw-r--r--mdk-stage1/partition.h4
-rw-r--r--mdk-stage1/pci-resource/Makefile25
-rw-r--r--mdk-stage1/pcmcia-resource/Makefile24
-rw-r--r--mdk-stage1/pcmcia/Makefile10
-rw-r--r--mdk-stage1/pcmcia/lex_config.l1
-rwxr-xr-xmdk-stage1/pcmcia/merge_from_pcitable34
-rw-r--r--mdk-stage1/pcmcia/pcmcia.h4
-rw-r--r--mdk-stage1/pcmcia/probe.c190
-rw-r--r--mdk-stage1/pcmcia/yacc_config.y4
-rw-r--r--mdk-stage1/ppp/Changes-2.3441
-rw-r--r--mdk-stage1/ppp/FAQ634
-rw-r--r--mdk-stage1/ppp/PLUGINS131
-rw-r--r--mdk-stage1/ppp/README168
-rw-r--r--mdk-stage1/ppp/README.MSCHAP80284
-rw-r--r--mdk-stage1/ppp/README.cbcp97
-rw-r--r--mdk-stage1/ppp/README.linux297
-rw-r--r--mdk-stage1/ppp/README.sol2220
-rw-r--r--mdk-stage1/ppp/README.sunos462
-rw-r--r--mdk-stage1/ppp/SETUP111
-rw-r--r--mdk-stage1/ppp/chat/Makefile.linux27
-rw-r--r--mdk-stage1/ppp/chat/Makefile.linux.makeopt27
-rw-r--r--mdk-stage1/ppp/chat/Makefile.sol219
-rw-r--r--mdk-stage1/ppp/chat/Makefile.sunos419
-rw-r--r--mdk-stage1/ppp/chat/chat.8515
-rw-r--r--mdk-stage1/ppp/chat/chat.c1756
-rw-r--r--mdk-stage1/ppp/common/zlib.c5376
-rw-r--r--mdk-stage1/ppp/common/zlib.h1010
-rwxr-xr-xmdk-stage1/ppp/configure141
-rw-r--r--mdk-stage1/ppp/contrib/pppgetpass/Makefile.linux16
-rw-r--r--mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.818
-rw-r--r--mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.gtk.c92
-rw-r--r--mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.sh7
-rw-r--r--mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.vt.c218
-rw-r--r--mdk-stage1/ppp/etc.ppp/chap-secrets2
-rw-r--r--mdk-stage1/ppp/etc.ppp/options5
-rw-r--r--mdk-stage1/ppp/etc.ppp/options.options1
-rw-r--r--mdk-stage1/ppp/etc.ppp/pap-secrets2
-rw-r--r--mdk-stage1/ppp/include/linux/if_ppp.h155
-rw-r--r--mdk-stage1/ppp/include/linux/if_pppvar.h138
-rw-r--r--mdk-stage1/ppp/include/linux/ppp-comp.h203
-rw-r--r--mdk-stage1/ppp/include/linux/ppp_defs.h185
-rw-r--r--mdk-stage1/ppp/include/net/if_ppp.h133
-rw-r--r--mdk-stage1/ppp/include/net/ppp-comp.h165
-rw-r--r--mdk-stage1/ppp/include/net/ppp_defs.h184
-rw-r--r--mdk-stage1/ppp/include/net/pppio.h99
-rw-r--r--mdk-stage1/ppp/include/net/slcompress.h148
-rw-r--r--mdk-stage1/ppp/include/net/vjcompress.h144
-rw-r--r--mdk-stage1/ppp/include/pcap-int.h117
-rw-r--r--mdk-stage1/ppp/linux/Makefile.top55
-rw-r--r--mdk-stage1/ppp/modules/bsd-comp.c1116
-rw-r--r--mdk-stage1/ppp/modules/deflate.c760
-rw-r--r--mdk-stage1/ppp/modules/if_ppp.c865
-rw-r--r--mdk-stage1/ppp/modules/ppp.c2486
-rw-r--r--mdk-stage1/ppp/modules/ppp_ahdlc.c878
-rw-r--r--mdk-stage1/ppp/modules/ppp_comp.c1126
-rw-r--r--mdk-stage1/ppp/modules/ppp_mod.h190
-rw-r--r--mdk-stage1/ppp/modules/vjcompress.c587
-rw-r--r--mdk-stage1/ppp/pppd/Makefile51
-rw-r--r--mdk-stage1/ppp/pppd/Makefile.linux129
-rw-r--r--mdk-stage1/ppp/pppd/Makefile.linux.make131
-rw-r--r--mdk-stage1/ppp/pppd/Makefile.linux.makeopt129
-rw-r--r--mdk-stage1/ppp/pppd/Makefile.sol248
-rw-r--r--mdk-stage1/ppp/pppd/Makefile.sunos426
-rw-r--r--mdk-stage1/ppp/pppd/auth.c1939
-rw-r--r--mdk-stage1/ppp/pppd/cbcp.c456
-rw-r--r--mdk-stage1/ppp/pppd/cbcp.h26
-rw-r--r--mdk-stage1/ppp/pppd/ccp.c1257
-rw-r--r--mdk-stage1/ppp/pppd/ccp.h48
-rw-r--r--mdk-stage1/ppp/pppd/chap.c860
-rw-r--r--mdk-stage1/ppp/pppd/chap.h124
-rw-r--r--mdk-stage1/ppp/pppd/chap_ms.c338
-rw-r--r--mdk-stage1/ppp/pppd/chap_ms.h33
-rw-r--r--mdk-stage1/ppp/pppd/demand.c351
-rw-r--r--mdk-stage1/ppp/pppd/eui64.c40
-rw-r--r--mdk-stage1/ppp/pppd/eui64.h97
-rw-r--r--mdk-stage1/ppp/pppd/fsm.c762
-rw-r--r--mdk-stage1/ppp/pppd/fsm.h144
-rw-r--r--mdk-stage1/ppp/pppd/ipcp.c2054
-rw-r--r--mdk-stage1/ppp/pppd/ipcp.h73
-rw-r--r--mdk-stage1/ppp/pppd/ipv6cp.c1512
-rw-r--r--mdk-stage1/ppp/pppd/ipv6cp.h126
-rw-r--r--mdk-stage1/ppp/pppd/ipxcp.c1570
-rw-r--r--mdk-stage1/ppp/pppd/ipxcp.h71
-rw-r--r--mdk-stage1/ppp/pppd/lcp.c2224
-rw-r--r--mdk-stage1/ppp/pppd/lcp.h95
-rw-r--r--mdk-stage1/ppp/pppd/magic.c88
-rw-r--r--mdk-stage1/ppp/pppd/magic.h23
-rw-r--r--mdk-stage1/ppp/pppd/main.c1846
-rw-r--r--mdk-stage1/ppp/pppd/md4.c298
-rw-r--r--mdk-stage1/ppp/pppd/md4.h64
-rw-r--r--mdk-stage1/ppp/pppd/md5.c309
-rw-r--r--mdk-stage1/ppp/pppd/md5.h58
-rw-r--r--mdk-stage1/ppp/pppd/multilink.c397
-rw-r--r--mdk-stage1/ppp/pppd/options.c1513
-rw-r--r--mdk-stage1/ppp/pppd/patchlevel.h4
-rw-r--r--mdk-stage1/ppp/pppd/pathnames.h25
-rw-r--r--mdk-stage1/ppp/pppd/plugins/Makefile.linux19
-rw-r--r--mdk-stage1/ppp/pppd/plugins/Makefile.sol227
-rw-r--r--mdk-stage1/ppp/pppd/plugins/minconn.c46
-rw-r--r--mdk-stage1/ppp/pppd/plugins/passprompt.c108
-rw-r--r--mdk-stage1/ppp/pppd/ppp.pam6
-rw-r--r--mdk-stage1/ppp/pppd/pppd.81591
-rw-r--r--mdk-stage1/ppp/pppd/pppd.h787
-rw-r--r--mdk-stage1/ppp/pppd/pppd.h.wtmp789
-rw-r--r--mdk-stage1/ppp/pppd/sys-linux.c2672
-rw-r--r--mdk-stage1/ppp/pppd/sys-linux.c.wtmp2750
-rw-r--r--mdk-stage1/ppp/pppd/sys-solaris.c2737
-rw-r--r--mdk-stage1/ppp/pppd/sys-sunos4.c1559
-rw-r--r--mdk-stage1/ppp/pppd/tdb.c1282
-rw-r--r--mdk-stage1/ppp/pppd/tdb.h77
-rw-r--r--mdk-stage1/ppp/pppd/tty.c1164
-rw-r--r--mdk-stage1/ppp/pppd/upap.c640
-rw-r--r--mdk-stage1/ppp/pppd/upap.h87
-rw-r--r--mdk-stage1/ppp/pppd/utils.c949
-rw-r--r--mdk-stage1/ppp/pppdump/Makefile.linux17
-rw-r--r--mdk-stage1/ppp/pppdump/Makefile.linux.makeopt17
-rw-r--r--mdk-stage1/ppp/pppdump/Makefile.linux.pppdump-Makefile17
-rw-r--r--mdk-stage1/ppp/pppdump/Makefile.sol221
-rw-r--r--mdk-stage1/ppp/pppdump/Makefile.sunos421
-rw-r--r--mdk-stage1/ppp/pppdump/bsd-comp.c750
-rw-r--r--mdk-stage1/ppp/pppdump/deflate.c344
-rw-r--r--mdk-stage1/ppp/pppdump/ppp-comp.h150
-rw-r--r--mdk-stage1/ppp/pppdump/pppdump.862
-rw-r--r--mdk-stage1/ppp/pppdump/pppdump.c502
-rw-r--r--mdk-stage1/ppp/pppdump/zlib.c4614
-rw-r--r--mdk-stage1/ppp/pppdump/zlib.h631
-rw-r--r--mdk-stage1/ppp/pppstats/Makefile.linux32
-rw-r--r--mdk-stage1/ppp/pppstats/Makefile.sol220
-rw-r--r--mdk-stage1/ppp/pppstats/Makefile.sunos430
-rw-r--r--mdk-stage1/ppp/pppstats/pppstats.8217
-rw-r--r--mdk-stage1/ppp/pppstats/pppstats.c557
-rw-r--r--mdk-stage1/ppp/sample/auth-down17
-rw-r--r--mdk-stage1/ppp/sample/auth-up17
-rw-r--r--mdk-stage1/ppp/sample/ip-down22
-rw-r--r--mdk-stage1/ppp/sample/ip-up23
-rw-r--r--mdk-stage1/ppp/sample/options153
-rw-r--r--mdk-stage1/ppp/sample/options.ttyXX14
-rw-r--r--mdk-stage1/ppp/sample/pap-secrets28
-rw-r--r--mdk-stage1/ppp/scripts/README143
-rwxr-xr-xmdk-stage1/ppp/scripts/callback77
-rw-r--r--mdk-stage1/ppp/scripts/chat-callback98
-rw-r--r--mdk-stage1/ppp/scripts/chatchat/README134
-rw-r--r--mdk-stage1/ppp/scripts/chatchat/chatchat.c409
-rw-r--r--mdk-stage1/ppp/scripts/ip-down.local.add20
-rw-r--r--mdk-stage1/ppp/scripts/ip-up.local.add24
-rw-r--r--mdk-stage1/ppp/scripts/options-rsh-loc1
-rw-r--r--mdk-stage1/ppp/scripts/options-rsh-rem1
-rw-r--r--mdk-stage1/ppp/scripts/options-ssh-loc1
-rw-r--r--mdk-stage1/ppp/scripts/options-ssh-rem1
-rwxr-xr-xmdk-stage1/ppp/scripts/ppp-off34
-rwxr-xr-xmdk-stage1/ppp/scripts/ppp-on36
-rwxr-xr-xmdk-stage1/ppp/scripts/ppp-on-dialer17
-rwxr-xr-xmdk-stage1/ppp/scripts/ppp-on-rsh72
-rwxr-xr-xmdk-stage1/ppp/scripts/ppp-on-ssh76
-rwxr-xr-xmdk-stage1/ppp/scripts/redialer96
-rw-r--r--mdk-stage1/ppp/scripts/secure-card111
-rw-r--r--mdk-stage1/ppp/solaris/Makedefs16
-rw-r--r--mdk-stage1/ppp/solaris/Makedefs.sol259
-rw-r--r--mdk-stage1/ppp/solaris/Makefile.sol266
-rw-r--r--mdk-stage1/ppp/solaris/Makefile.sol2-6485
-rw-r--r--mdk-stage1/ppp/solaris/Makefile.top50
-rw-r--r--mdk-stage1/ppp/solaris/ppp.c2486
-rw-r--r--mdk-stage1/ppp/solaris/ppp.conf1
-rw-r--r--mdk-stage1/ppp/solaris/ppp_ahdlc.c878
-rw-r--r--mdk-stage1/ppp/solaris/ppp_ahdlc_mod.c49
-rw-r--r--mdk-stage1/ppp/solaris/ppp_comp.c1126
-rw-r--r--mdk-stage1/ppp/solaris/ppp_comp_mod.c81
-rw-r--r--mdk-stage1/ppp/solaris/ppp_mod.c174
-rw-r--r--mdk-stage1/ppp/solaris/ppp_mod.h190
-rw-r--r--mdk-stage1/ppp/sunos4/Makedefs13
-rw-r--r--mdk-stage1/ppp/sunos4/Makefile57
-rw-r--r--mdk-stage1/ppp/sunos4/Makefile.top46
-rw-r--r--mdk-stage1/ppp/sunos4/if_ppp_vdcmd.c57
-rwxr-xr-xmdk-stage1/ppp/sunos4/ppp.INSTALL104
-rw-r--r--mdk-stage1/ppp/sunos4/ppp_ahdlc_vdcmd.c57
-rw-r--r--mdk-stage1/ppp/sunos4/ppp_comp_vdcmd.c57
-rw-r--r--mdk-stage1/ppp/sunos4/ppp_vdcmd.c81
-rw-r--r--mdk-stage1/ppp/svr4/Makedefs16
-rw-r--r--mdk-stage1/ppp/svr4/Makedefs.sol259
-rw-r--r--mdk-stage1/ppp/svr4/Makefile.sol266
-rw-r--r--mdk-stage1/ppp/svr4/Makefile.sol2-6485
-rw-r--r--mdk-stage1/ppp/svr4/Makefile.svr460
-rw-r--r--mdk-stage1/ppp/svr4/Makefile.top50
-rw-r--r--mdk-stage1/ppp/svr4/ppp.Master1
-rw-r--r--mdk-stage1/ppp/svr4/ppp.Node1
-rw-r--r--mdk-stage1/ppp/svr4/ppp.System1
-rw-r--r--mdk-stage1/ppp/svr4/ppp.conf1
-rw-r--r--mdk-stage1/ppp/svr4/ppp_ahdl.Master1
-rw-r--r--mdk-stage1/ppp/svr4/ppp_ahdl.System1
-rw-r--r--mdk-stage1/ppp/svr4/ppp_ahdlc_mod.c49
-rw-r--r--mdk-stage1/ppp/svr4/ppp_comp.Master1
-rw-r--r--mdk-stage1/ppp/svr4/ppp_comp.System1
-rw-r--r--mdk-stage1/ppp/svr4/ppp_comp_mod.c81
-rw-r--r--mdk-stage1/ppp/svr4/ppp_mod.c174
-rw-r--r--mdk-stage1/probe-modules.c69
-rw-r--r--mdk-stage1/probing.c627
-rw-r--r--mdk-stage1/probing.h15
-rw-r--r--mdk-stage1/rescue-gui.c22
-rw-r--r--mdk-stage1/rp-pppoe/README87
-rw-r--r--mdk-stage1/rp-pppoe/configs/firewall-masq35
-rw-r--r--mdk-stage1/rp-pppoe/configs/firewall-standalone32
-rw-r--r--mdk-stage1/rp-pppoe/configs/pap-secrets9
-rw-r--r--mdk-stage1/rp-pppoe/configs/pppoe-server-options5
-rw-r--r--mdk-stage1/rp-pppoe/configs/pppoe.conf126
-rw-r--r--mdk-stage1/rp-pppoe/doc/CHANGES177
-rw-r--r--mdk-stage1/rp-pppoe/doc/HOW-TO-CONNECT295
-rw-r--r--mdk-stage1/rp-pppoe/doc/KERNEL-MODE-PPPOE39
-rw-r--r--mdk-stage1/rp-pppoe/doc/LICENSE339
-rw-r--r--mdk-stage1/rp-pppoe/doc/PROBLEMS3
-rwxr-xr-xmdk-stage1/rp-pppoe/go43
-rwxr-xr-xmdk-stage1/rp-pppoe/go-gui92
-rw-r--r--mdk-stage1/rp-pppoe/gui/Makefile.in64
-rw-r--r--mdk-stage1/rp-pppoe/gui/html/tkpppoe.html181
-rw-r--r--mdk-stage1/rp-pppoe/gui/pppoe-wrapper.145
-rw-r--r--mdk-stage1/rp-pppoe/gui/tkpppoe.136
-rwxr-xr-xmdk-stage1/rp-pppoe/gui/tkpppoe.in2891
-rw-r--r--mdk-stage1/rp-pppoe/gui/wrapper.c234
-rw-r--r--mdk-stage1/rp-pppoe/man/adsl-connect.866
-rw-r--r--mdk-stage1/rp-pppoe/man/adsl-setup.823
-rw-r--r--mdk-stage1/rp-pppoe/man/adsl-start.827
-rw-r--r--mdk-stage1/rp-pppoe/man/adsl-status.825
-rw-r--r--mdk-stage1/rp-pppoe/man/adsl-stop.821
-rw-r--r--mdk-stage1/rp-pppoe/man/pppoe-relay.8124
-rw-r--r--mdk-stage1/rp-pppoe/man/pppoe-server.8123
-rw-r--r--mdk-stage1/rp-pppoe/man/pppoe-sniff.877
-rw-r--r--mdk-stage1/rp-pppoe/man/pppoe.8236
-rw-r--r--mdk-stage1/rp-pppoe/man/pppoe.conf.5168
-rw-r--r--mdk-stage1/rp-pppoe/rp-pppoe-gui.spec98
-rw-r--r--mdk-stage1/rp-pppoe/rp-pppoe.spec71
-rwxr-xr-xmdk-stage1/rp-pppoe/scripts/adsl-connect.in278
-rwxr-xr-xmdk-stage1/rp-pppoe/scripts/adsl-init-suse.in62
-rwxr-xr-xmdk-stage1/rp-pppoe/scripts/adsl-init-turbolinux.in62
-rwxr-xr-xmdk-stage1/rp-pppoe/scripts/adsl-init.in64
-rwxr-xr-xmdk-stage1/rp-pppoe/scripts/adsl-setup.in346
-rwxr-xr-xmdk-stage1/rp-pppoe/scripts/adsl-start.in186
-rwxr-xr-xmdk-stage1/rp-pppoe/scripts/adsl-status82
-rwxr-xr-xmdk-stage1/rp-pppoe/scripts/adsl-stop.in84
-rw-r--r--mdk-stage1/rp-pppoe/src/Makefile45
-rw-r--r--mdk-stage1/rp-pppoe/src/Makefile.in257
-rw-r--r--mdk-stage1/rp-pppoe/src/common.c485
-rw-r--r--mdk-stage1/rp-pppoe/src/config.h135
-rw-r--r--mdk-stage1/rp-pppoe/src/config.h.in134
-rwxr-xr-xmdk-stage1/rp-pppoe/src/configure2356
-rw-r--r--mdk-stage1/rp-pppoe/src/configure.in231
-rw-r--r--mdk-stage1/rp-pppoe/src/debug.c143
-rw-r--r--mdk-stage1/rp-pppoe/src/discovery.c629
-rw-r--r--mdk-stage1/rp-pppoe/src/if.c1092
-rwxr-xr-xmdk-stage1/rp-pppoe/src/install-sh238
-rw-r--r--mdk-stage1/rp-pppoe/src/md5.c246
-rw-r--r--mdk-stage1/rp-pppoe/src/md5.h27
-rw-r--r--mdk-stage1/rp-pppoe/src/plugin.c397
-rw-r--r--mdk-stage1/rp-pppoe/src/ppp.c258
-rw-r--r--mdk-stage1/rp-pppoe/src/pppoe-server.c1247
-rw-r--r--mdk-stage1/rp-pppoe/src/pppoe-sniff.c258
-rw-r--r--mdk-stage1/rp-pppoe/src/pppoe.c834
-rw-r--r--mdk-stage1/rp-pppoe/src/pppoe.h331
-rw-r--r--mdk-stage1/rp-pppoe/src/relay.c1541
-rw-r--r--mdk-stage1/rp-pppoe/src/relay.h97
-rw-r--r--mdk-stage1/slang/Makefile42
-rw-r--r--mdk-stage1/slang/_slang.h743
-rw-r--r--mdk-stage1/slang/config.h163
-rw-r--r--mdk-stage1/slang/jdmacros.h53
-rw-r--r--mdk-stage1/slang/keywhash.c190
-rw-r--r--mdk-stage1/slang/sl-feat.h60
-rw-r--r--mdk-stage1/slang/slang.c5547
-rw-r--r--mdk-stage1/slang/slang.h1930
-rw-r--r--mdk-stage1/slang/slarith.c1656
-rw-r--r--mdk-stage1/slang/slarith.inc783
-rw-r--r--mdk-stage1/slang/slarray.c3139
-rw-r--r--mdk-stage1/slang/slarrfun.c464
-rw-r--r--mdk-stage1/slang/slarrfun.inc257
-rw-r--r--mdk-stage1/slang/slarrmis.c38
-rw-r--r--mdk-stage1/slang/slassoc.c713
-rw-r--r--mdk-stage1/slang/slbstr.c615
-rw-r--r--mdk-stage1/slang/slclass.c1391
-rw-r--r--mdk-stage1/slang/slcmd.c351
-rw-r--r--mdk-stage1/slang/slcmplex.c1142
-rw-r--r--mdk-stage1/slang/slcompat.c34
-rw-r--r--mdk-stage1/slang/slcurses.c972
-rw-r--r--mdk-stage1/slang/slcurses.h353
-rw-r--r--mdk-stage1/slang/sldisply.c2596
-rw-r--r--mdk-stage1/slang/slerr.c181
-rw-r--r--mdk-stage1/slang/slerrno.c219
-rw-r--r--mdk-stage1/slang/slgetkey.c306
-rw-r--r--mdk-stage1/slang/slimport.c281
-rw-r--r--mdk-stage1/slang/slinclud.h26
-rw-r--r--mdk-stage1/slang/slintall.c27
-rw-r--r--mdk-stage1/slang/slistruc.c218
-rw-r--r--mdk-stage1/slang/slkeymap.c596
-rw-r--r--mdk-stage1/slang/slkeypad.c163
-rw-r--r--mdk-stage1/slang/sllimits.h64
-rw-r--r--mdk-stage1/slang/slmalloc.c165
-rw-r--r--mdk-stage1/slang/slmath.c565
-rw-r--r--mdk-stage1/slang/slmemchr.c47
-rw-r--r--mdk-stage1/slang/slmemcmp.c76
-rw-r--r--mdk-stage1/slang/slmemcpy.c49
-rw-r--r--mdk-stage1/slang/slmemset.c39
-rw-r--r--mdk-stage1/slang/slmisc.c330
-rw-r--r--mdk-stage1/slang/slnspace.c242
-rw-r--r--mdk-stage1/slang/slospath.c73
-rw-r--r--mdk-stage1/slang/slpack.c785
-rw-r--r--mdk-stage1/slang/slparse.c1970
-rw-r--r--mdk-stage1/slang/slpath.c344
-rw-r--r--mdk-stage1/slang/slposdir.c1057
-rw-r--r--mdk-stage1/slang/slposio.c568
-rw-r--r--mdk-stage1/slang/slprepr.c427
-rw-r--r--mdk-stage1/slang/slproc.c155
-rw-r--r--mdk-stage1/slang/slregexp.c935
-rw-r--r--mdk-stage1/slang/slrline.c836
-rw-r--r--mdk-stage1/slang/slscanf.c718
-rw-r--r--mdk-stage1/slang/slscroll.c450
-rw-r--r--mdk-stage1/slang/slsearch.c239
-rw-r--r--mdk-stage1/slang/slsignal.c336
-rw-r--r--mdk-stage1/slang/slsmg.c1584
-rw-r--r--mdk-stage1/slang/slstd.c724
-rw-r--r--mdk-stage1/slang/slstdio.c1050
-rw-r--r--mdk-stage1/slang/slstring.c546
-rw-r--r--mdk-stage1/slang/slstrops.c1686
-rw-r--r--mdk-stage1/slang/slstruct.c932
-rw-r--r--mdk-stage1/slang/sltermin.c1155
-rw-r--r--mdk-stage1/slang/sltime.c310
-rw-r--r--mdk-stage1/slang/sltoken.c1702
-rw-r--r--mdk-stage1/slang/sltypes.c966
-rw-r--r--mdk-stage1/slang/slutty.c596
-rw-r--r--mdk-stage1/slang/slxstrng.c43
-rw-r--r--mdk-stage1/stage1.c81
-rw-r--r--mdk-stage1/stage1.h4
-rw-r--r--mdk-stage1/stdio-frontend.c19
-rw-r--r--mdk-stage1/sysfs/Makefile39
-rw-r--r--mdk-stage1/sysfs/libsysfs.h90
-rw-r--r--mdk-stage1/sysfs/sysfs.h64
-rw-r--r--mdk-stage1/sysfs/sysfs_attr.c241
-rw-r--r--mdk-stage1/sysfs/sysfs_utils.c59
-rw-r--r--mdk-stage1/thirdparty.c14
-rw-r--r--mdk-stage1/thirdparty.h6
-rw-r--r--mdk-stage1/tools.c85
-rw-r--r--mdk-stage1/tools.h7
-rwxr-xr-xmdk-stage1/update-pci-ids.pl (renamed from mdk-stage1/pci-resource/update-pci-ids.pl)7
-rwxr-xr-xmdk-stage1/update-pcmcia-ids.pl (renamed from mdk-stage1/pcmcia-resource/update-pcmcia-ids.pl)2
-rwxr-xr-xmdk-stage1/update-usb-ids.pl (renamed from mdk-stage1/usb-resource/update-usb-ids.pl)4
-rw-r--r--mdk-stage1/url.c21
-rw-r--r--mdk-stage1/url.h4
-rw-r--r--mdk-stage1/usb-resource/Makefile25
-rw-r--r--mdk-stage1/utils.c51
-rw-r--r--mdk-stage1/utils.h12
-rw-r--r--mdk-stage1/wireless.c164
-rw-r--r--mdk-stage1/wireless.h2
-rw-r--r--mdk-stage1/zlibsupport.c219
-rw-r--r--perl-install/.gitattributes1
-rw-r--r--perl-install/.perl_checker60
-rw-r--r--perl-install/Makefile32
-rw-r--r--perl-install/Makefile.config11
-rw-r--r--perl-install/Makefile.drakxtools66
-rw-r--r--perl-install/NEWS3850
-rw-r--r--perl-install/PORTING4
-rw-r--r--perl-install/any.pm1259
-rw-r--r--perl-install/authentication.pm643
-rw-r--r--perl-install/bootloader.pm1759
-rw-r--r--perl-install/bootsplash.pm259
-rw-r--r--perl-install/c.pm37
-rwxr-xr-x[-rw-r--r--]perl-install/c/Makefile.PL4
-rw-r--r--perl-install/c/README1
-rw-r--r--perl-install/c/stuff.pm2
-rwxr-xr-x[-rw-r--r--]perl-install/c/stuff.xs.pl362
-rw-r--r--perl-install/common.pm466
-rw-r--r--perl-install/cpufreq.pm55
-rw-r--r--perl-install/dbus_object.pm16
-rw-r--r--perl-install/detect_devices.pm820
-rw-r--r--perl-install/devices.pm149
-rw-r--r--perl-install/diskdrake/dav.pm23
-rw-r--r--perl-install/diskdrake/diskdrake.html139
-rw-r--r--perl-install/diskdrake/hd_gtk.pm272
-rw-r--r--perl-install/diskdrake/interactive.pm756
-rw-r--r--perl-install/diskdrake/removable.pm2
-rw-r--r--perl-install/diskdrake/resize_ext2.pm2
-rw-r--r--perl-install/diskdrake/resize_ntfs.pm12
-rw-r--r--perl-install/diskdrake/smbnfs_gtk.pm36
-rw-r--r--perl-install/do_pkgs.pm197
-rw-r--r--perl-install/drakbug.pm45
-rw-r--r--perl-install/fs.pm81
-rw-r--r--perl-install/fs/any.pm122
-rw-r--r--perl-install/fs/dmcrypt.pm216
-rw-r--r--perl-install/fs/dmraid.pm109
-rw-r--r--perl-install/fs/format.pm299
-rw-r--r--perl-install/fs/get.pm46
-rw-r--r--perl-install/fs/loopback.pm4
-rw-r--r--perl-install/fs/mount.pm41
-rw-r--r--perl-install/fs/mount_options.pm48
-rw-r--r--perl-install/fs/mount_point.pm40
-rw-r--r--perl-install/fs/partitioning.pm13
-rw-r--r--perl-install/fs/partitioning_wizard.pm640
-rw-r--r--perl-install/fs/proc_partitions.pm21
-rw-r--r--perl-install/fs/remote.pm2
-rw-r--r--perl-install/fs/remote/davfs.pm99
-rw-r--r--perl-install/fs/remote/nfs.pm46
-rw-r--r--perl-install/fs/remote/smb.pm13
-rw-r--r--perl-install/fs/type.pm202
-rw-r--r--perl-install/fs/wild_device.pm28
-rw-r--r--perl-install/fsedit.pm213
-rw-r--r--perl-install/handle_configs.pm1
-rw-r--r--perl-install/harddrake/TODO169
-rw-r--r--perl-install/harddrake/autoconf.pm85
-rwxr-xr-xperl-install/harddrake/check_snd.pl2
-rw-r--r--perl-install/harddrake/data.pm300
-rw-r--r--perl-install/harddrake/sound.pm909
-rw-r--r--perl-install/harddrake/v4l.pm4
-rw-r--r--perl-install/install/Makefile41
-rw-r--r--perl-install/install/NEWS4493
-rw-r--r--perl-install/install/any.pm737
-rw-r--r--perl-install/install/commands.pm47
-rw-r--r--perl-install/install/ftp.pm2
-rw-r--r--perl-install/install/gtk.pm215
-rw-r--r--perl-install/install/help/Makefile2
-rw-r--r--perl-install/install/help/help.pm169
-rwxr-xr-xperl-install/install/help/help_xml2pm.pl2
-rw-r--r--perl-install/install/help/po/.gitignore1
-rw-r--r--perl-install/install/help/po/.tx/config8
-rw-r--r--perl-install/install/help/po/DrakX-help.pot318
-rw-r--r--perl-install/install/help/po/af.po533
-rw-r--r--perl-install/install/help/po/am.po347
-rw-r--r--perl-install/install/help/po/ar.po532
-rw-r--r--perl-install/install/help/po/ast.po1138
-rw-r--r--perl-install/install/help/po/az.po549
-rw-r--r--perl-install/install/help/po/be.po349
-rw-r--r--perl-install/install/help/po/bg.po387
-rw-r--r--perl-install/install/help/po/bn.po449
-rw-r--r--perl-install/install/help/po/br.po327
-rw-r--r--perl-install/install/help/po/bs.po590
-rw-r--r--perl-install/install/help/po/ca.po1240
-rw-r--r--perl-install/install/help/po/cs.po589
-rw-r--r--perl-install/install/help/po/cy.po595
-rw-r--r--perl-install/install/help/po/da.po632
-rw-r--r--perl-install/install/help/po/de.po958
-rw-r--r--perl-install/install/help/po/el.po2032
-rw-r--r--perl-install/install/help/po/eo.po887
-rw-r--r--perl-install/install/help/po/es.po612
-rw-r--r--perl-install/install/help/po/et.po691
-rw-r--r--perl-install/install/help/po/eu.po471
-rw-r--r--perl-install/install/help/po/fa.po542
-rw-r--r--perl-install/install/help/po/fi.po925
-rw-r--r--perl-install/install/help/po/fr.po661
-rw-r--r--perl-install/install/help/po/fur.po347
-rw-r--r--perl-install/install/help/po/ga.po348
-rw-r--r--perl-install/install/help/po/gl.po603
-rw-r--r--perl-install/install/help/po/he.po771
-rw-r--r--perl-install/install/help/po/hi.po381
-rw-r--r--perl-install/install/help/po/hr.po538
-rw-r--r--perl-install/install/help/po/hu.po582
-rw-r--r--perl-install/install/help/po/id.po625
-rw-r--r--perl-install/install/help/po/is.po582
-rw-r--r--perl-install/install/help/po/it.po613
-rw-r--r--perl-install/install/help/po/ja.po580
-rw-r--r--perl-install/install/help/po/ko.po355
-rw-r--r--perl-install/install/help/po/ky.po434
-rw-r--r--perl-install/install/help/po/lt.po368
-rw-r--r--perl-install/install/help/po/ltg.po347
-rw-r--r--perl-install/install/help/po/lv.po375
-rw-r--r--perl-install/install/help/po/mk.po637
-rw-r--r--perl-install/install/help/po/mn.po415
-rw-r--r--perl-install/install/help/po/ms.po417
-rw-r--r--perl-install/install/help/po/mt.po566
-rw-r--r--perl-install/install/help/po/nb.po1355
-rw-r--r--perl-install/install/help/po/nl.po487
-rw-r--r--perl-install/install/help/po/nn.po439
-rw-r--r--perl-install/install/help/po/pa_IN.po347
-rw-r--r--perl-install/install/help/po/pl.po582
-rw-r--r--perl-install/install/help/po/pt.po1373
-rw-r--r--perl-install/install/help/po/pt_BR.po1918
-rw-r--r--perl-install/install/help/po/ro.po355
-rw-r--r--perl-install/install/help/po/ru.po581
-rw-r--r--perl-install/install/help/po/sc.po323
-rw-r--r--perl-install/install/help/po/sk.po613
-rw-r--r--perl-install/install/help/po/sl.po566
-rw-r--r--perl-install/install/help/po/sq.po559
-rw-r--r--perl-install/install/help/po/sr.po554
-rw-r--r--perl-install/install/help/po/sr@Latn.po526
-rw-r--r--perl-install/install/help/po/sv.po485
-rw-r--r--perl-install/install/help/po/ta.po584
-rw-r--r--perl-install/install/help/po/tg.po589
-rw-r--r--perl-install/install/help/po/th.po351
-rw-r--r--perl-install/install/help/po/tl.po719
-rw-r--r--perl-install/install/help/po/tr.po731
-rw-r--r--perl-install/install/help/po/uk.po1124
-rw-r--r--perl-install/install/help/po/uz.po436
-rw-r--r--perl-install/install/help/po/uz@cyrillic.po (renamed from perl-install/install/help/po/uz@Latn.po)412
-rw-r--r--perl-install/install/help/po/vi.po574
-rw-r--r--perl-install/install/help/po/wa.po585
-rw-r--r--perl-install/install/help/po/zh_CN.po598
-rw-r--r--perl-install/install/help/po/zh_TW.po534
-rw-r--r--perl-install/install/http.pm78
-rwxr-xr-xperl-install/install/install27
-rw-r--r--perl-install/install/install2.pm712
-rw-r--r--perl-install/install/interactive.pm2
-rw-r--r--perl-install/install/media.pm512
-rw-r--r--perl-install/install/pixmaps/banner-adduser.pngbin1482 -> 0 bytes
-rw-r--r--perl-install/install/pixmaps/banner-bootL.pngbin1754 -> 0 bytes
-rw-r--r--perl-install/install/pixmaps/banner-exit.pngbin1630 -> 0 bytes
-rw-r--r--perl-install/install/pixmaps/banner-generic-ad.pngbin1546 -> 0 bytes
-rw-r--r--perl-install/install/pixmaps/banner-languages.pngbin1976 -> 0 bytes
-rw-r--r--perl-install/install/pixmaps/banner-license.pngbin1999 -> 0 bytes
-rw-r--r--perl-install/install/pixmaps/banner-part.pngbin1532 -> 0 bytes
-rw-r--r--perl-install/install/pixmaps/banner-pw.pngbin1947 -> 0 bytes
-rw-r--r--perl-install/install/pixmaps/banner-security.pngbin1152 -> 0 bytes
-rw-r--r--perl-install/install/pixmaps/banner-summary.pngbin1176 -> 0 bytes
-rw-r--r--perl-install/install/pixmaps/banner-sys.pngbin1599 -> 0 bytes
-rw-r--r--perl-install/install/pixmaps/banner-update.pngbin1900 -> 0 bytes
-rw-r--r--perl-install/install/pixmaps/cadre-blanc_600.pngbin0 -> 3696 bytes
-rw-r--r--perl-install/install/pixmaps/cadre-blanc_768.pngbin0 -> 5529 bytes
-rw-r--r--perl-install/install/pixmaps/desktop-Custom-big.pngbin0 -> 119501 bytes
-rw-r--r--perl-install/install/pixmaps/desktop-Custom.pngbin4082 -> 10669 bytes
-rw-r--r--perl-install/install/pixmaps/desktop-GNOME-big.pngbin0 -> 93324 bytes
-rw-r--r--perl-install/install/pixmaps/desktop-GNOME.pngbin977 -> 9085 bytes
-rw-r--r--perl-install/install/pixmaps/desktop-KDE.pngbin4219 -> 0 bytes
-rw-r--r--perl-install/install/pixmaps/desktop-PLASMA5-big.pngbin0 -> 89754 bytes
-rw-r--r--perl-install/install/pixmaps/desktop-PLASMA5.pngbin0 -> 8669 bytes
-rw-r--r--perl-install/install/pixmaps/empty-banner.pngbin0 -> 1162 bytes
-rw-r--r--perl-install/install/pixmaps/langs/lang-ast.pngbin0 -> 609 bytes
-rw-r--r--perl-install/install/pixmaps/langs/lang-ber.pngbin566 -> 509 bytes
-rw-r--r--perl-install/install/pixmaps/langs/lang-en_ZA.pngbin0 -> 1271 bytes
-rw-r--r--perl-install/install/pixmaps/langs/lang-nr.pngbin748 -> 756 bytes
-rw-r--r--perl-install/install/pixmaps/langs/lang-qu.pngbin851 -> 851 bytes
-rw-r--r--perl-install/install/pixmaps/langs/lang-uz.pngbin1203 -> 1217 bytes
-rw-r--r--perl-install/install/pixmaps/langs/lang-uz@Latn.pngbin1217 -> 0 bytes
-rw-r--r--perl-install/install/pixmaps/langs/lang-uz@cyrillic.png (renamed from perl-install/install/pixmaps/langs/lang-uz@Cyrl.png)bin1203 -> 1203 bytes
-rw-r--r--perl-install/install/pixmaps/langs/lang-xh.pngbin618 -> 690 bytes
-rw-r--r--perl-install/install/pixmaps/langs/lang-zu.pngbin466 -> 488 bytes
-rw-r--r--perl-install/install/pixmaps/left-background.pngbin0 -> 30449 bytes
-rw-r--r--perl-install/install/pixmaps/left-border.pngbin0 -> 164 bytes
-rw-r--r--perl-install/install/pixmaps/left-bottom-corner.pngbin0 -> 174 bytes
-rw-r--r--perl-install/install/pixmaps/left-top-corner.pngbin0 -> 174 bytes
-rw-r--r--perl-install/install/pixmaps/logo-mandriva.pngbin19150 -> 0 bytes
-rw-r--r--perl-install/install/pixmaps/reload.pngbin157 -> 1145 bytes
-rw-r--r--perl-install/install/pixmaps/right-white-background_left_part_600.pngbin0 -> 436 bytes
-rw-r--r--perl-install/install/pixmaps/right-white-background_left_part_768.pngbin0 -> 457 bytes
-rw-r--r--perl-install/install/pixmaps/right-white-background_right_part_600.pngbin0 -> 2063 bytes
-rw-r--r--perl-install/install/pixmaps/selected.pngbin344 -> 0 bytes
-rw-r--r--perl-install/install/pixmaps/semiselected.pngbin238 -> 305 bytes
-rw-r--r--perl-install/install/pixmaps/unselected.pngbin123 -> 155 bytes
-rw-r--r--perl-install/install/pkgs.pm918
-rw-r--r--perl-install/install/share/aliases5
-rw-r--r--perl-install/install/share/fonts.tar.bz2bin774796 -> 0 bytes
-rw-r--r--perl-install/install/share/gdb-inst24
-rwxr-xr-xperl-install/install/share/generate-xlocales2
-rw-r--r--perl-install/install/share/gtk.css7
-rw-r--r--perl-install/install/share/gtkrc1
-rw-r--r--perl-install/install/share/keyboards.tar.bz2bin31960 -> 0 bytes
-rwxr-xr-xperl-install/install/share/keymaps_generate4
-rwxr-xr-xperl-install/install/share/kmap2bkmap15
-rw-r--r--perl-install/install/share/list.xml742
-rw-r--r--perl-install/install/share/po/.gitignore1
-rw-r--r--perl-install/install/share/po/.tx/config8
-rw-r--r--perl-install/install/share/po/DrakX.pot937
-rw-r--r--perl-install/install/share/po/Makefile17
-rw-r--r--perl-install/install/share/po/af.po1494
-rw-r--r--perl-install/install/share/po/am.po1168
-rw-r--r--perl-install/install/share/po/ar.po1490
-rw-r--r--perl-install/install/share/po/ast.po1673
-rw-r--r--perl-install/install/share/po/az.po1260
-rw-r--r--perl-install/install/share/po/be.po1324
-rw-r--r--perl-install/install/share/po/bg.po1286
-rw-r--r--perl-install/install/share/po/bn.po1213
-rw-r--r--perl-install/install/share/po/br.po1252
-rw-r--r--perl-install/install/share/po/bs.po1228
-rw-r--r--perl-install/install/share/po/ca.po1368
-rw-r--r--perl-install/install/share/po/cs.po1203
-rw-r--r--perl-install/install/share/po/cy.po1433
-rw-r--r--perl-install/install/share/po/da.po1381
-rw-r--r--perl-install/install/share/po/de.po1257
-rw-r--r--perl-install/install/share/po/de_AT.po1706
-rw-r--r--perl-install/install/share/po/el.po1560
-rw-r--r--perl-install/install/share/po/eo.po1167
-rw-r--r--perl-install/install/share/po/es.po1561
-rw-r--r--perl-install/install/share/po/et.po1202
-rw-r--r--perl-install/install/share/po/eu.po1171
-rw-r--r--perl-install/install/share/po/fa.po1153
-rw-r--r--perl-install/install/share/po/fi.po1365
-rw-r--r--perl-install/install/share/po/fr.po1314
-rw-r--r--perl-install/install/share/po/fur.po1079
-rw-r--r--perl-install/install/share/po/ga.po1225
-rw-r--r--perl-install/install/share/po/gl.po1231
-rw-r--r--perl-install/install/share/po/he.po1317
-rw-r--r--perl-install/install/share/po/hi.po1264
-rw-r--r--perl-install/install/share/po/hr.po1370
-rw-r--r--perl-install/install/share/po/hu.po1215
-rw-r--r--perl-install/install/share/po/hy.po1608
-rw-r--r--perl-install/install/share/po/id.po1512
-rw-r--r--perl-install/install/share/po/is.po1234
-rw-r--r--perl-install/install/share/po/it.po1188
-rw-r--r--perl-install/install/share/po/ja.po1247
-rw-r--r--perl-install/install/share/po/ka.po1608
-rw-r--r--perl-install/install/share/po/ko.po1203
-rw-r--r--perl-install/install/share/po/ku.po1608
-rw-r--r--perl-install/install/share/po/ky.po1313
-rw-r--r--perl-install/install/share/po/lo.po1607
-rw-r--r--perl-install/install/share/po/lt.po1355
-rw-r--r--perl-install/install/share/po/ltg.po1222
-rw-r--r--perl-install/install/share/po/lv.po1302
-rw-r--r--perl-install/install/share/po/mk.po1233
-rw-r--r--perl-install/install/share/po/mn.po1371
-rw-r--r--perl-install/install/share/po/mr.po1608
-rw-r--r--perl-install/install/share/po/ms.po1410
-rw-r--r--perl-install/install/share/po/mt.po1265
-rw-r--r--perl-install/install/share/po/nb.po1230
-rw-r--r--perl-install/install/share/po/nl.po1305
-rw-r--r--perl-install/install/share/po/nn.po1238
-rw-r--r--perl-install/install/share/po/pa_IN.po1188
-rw-r--r--perl-install/install/share/po/pl.po1161
-rw-r--r--perl-install/install/share/po/pt.po1288
-rw-r--r--perl-install/install/share/po/pt_BR.po1535
-rw-r--r--perl-install/install/share/po/ro.po1583
-rw-r--r--perl-install/install/share/po/ru.po1330
-rw-r--r--perl-install/install/share/po/sc.po1108
-rw-r--r--perl-install/install/share/po/sk.po1274
-rw-r--r--perl-install/install/share/po/sl.po1322
-rw-r--r--perl-install/install/share/po/sq.po1396
-rw-r--r--perl-install/install/share/po/sr.po1277
-rw-r--r--perl-install/install/share/po/sr@Latn.po1294
-rw-r--r--perl-install/install/share/po/sv.po1334
-rw-r--r--perl-install/install/share/po/ta.po1284
-rw-r--r--perl-install/install/share/po/tg.po1635
-rw-r--r--perl-install/install/share/po/th.po1305
-rw-r--r--perl-install/install/share/po/tl.po1272
-rw-r--r--perl-install/install/share/po/tr.po1384
-rw-r--r--perl-install/install/share/po/uk.po1410
-rw-r--r--perl-install/install/share/po/uz.po1513
-rw-r--r--perl-install/install/share/po/uz@Latn.po1506
-rw-r--r--perl-install/install/share/po/uz@cyrillic.po1864
-rw-r--r--perl-install/install/share/po/vi.po1149
-rw-r--r--perl-install/install/share/po/wa.po1225
-rw-r--r--perl-install/install/share/po/xh.po1608
-rw-r--r--perl-install/install/share/po/zh_CN.po1100
-rw-r--r--perl-install/install/share/po/zh_TW.po1308
-rw-r--r--perl-install/install/share/po/zu.po1608
-rw-r--r--perl-install/install/share/runinstall2.sh11
-rw-r--r--perl-install/install/share/symlinks11
-rw-r--r--perl-install/install/share/upgrade/.gitignore1
-rw-r--r--perl-install/install/share/upgrade/conectiva.10/map3355
-rwxr-xr-xperl-install/install/share/upgrade/conectiva.10/pre.keep-kde-profile6
-rwxr-xr-xperl-install/install/share/upgrade/conectiva.10/pre.merge-groups.sh87
-rwxr-xr-xperl-install/install/share/upgrade/conectiva.10/pre.remove-conflicting-files.sh3
-rw-r--r--perl-install/install/steps.pm236
-rw-r--r--perl-install/install/steps_auto_install.pm6
-rw-r--r--perl-install/install/steps_curses.pm4
-rw-r--r--perl-install/install/steps_gtk.pm528
-rw-r--r--perl-install/install/steps_interactive.pm558
-rw-r--r--perl-install/install/steps_list.pm43
-rw-r--r--perl-install/install/steps_stdio.pm2
-rw-r--r--perl-install/interactive.pm288
-rw-r--r--perl-install/interactive/curses.pm62
-rw-r--r--perl-install/interactive/gtk.pm431
-rw-r--r--perl-install/interactive/http.pm4
-rw-r--r--perl-install/interactive/stdio.pm6
-rw-r--r--perl-install/lang.pm917
-rw-r--r--perl-install/list_firmwares.pm26
-rw-r--r--perl-install/log.pm2
-rw-r--r--perl-install/lvm.pm102
-rw-r--r--perl-install/messages.pm162
-rw-r--r--perl-install/mirror.pm215
-rw-r--r--perl-install/modalias.pm14
-rw-r--r--perl-install/modules.pm147
-rw-r--r--perl-install/modules/any_conf.pm12
-rw-r--r--perl-install/modules/interactive.pm15
-rw-r--r--perl-install/modules/modprobe_conf.pm5
-rw-r--r--perl-install/modules/modules_conf.pm3
-rw-r--r--perl-install/modules/parameters.pm6
-rw-r--r--perl-install/mygtk2.pm624
-rw-r--r--perl-install/mygtk3.pm1679
-rw-r--r--perl-install/partition_table.pm377
-rw-r--r--perl-install/partition_table/bsd.pm5
-rw-r--r--perl-install/partition_table/dmcrypt.pm41
-rw-r--r--perl-install/partition_table/dos.pm111
-rw-r--r--perl-install/partition_table/empty.pm2
-rw-r--r--perl-install/partition_table/gpt.pm342
-rw-r--r--perl-install/partition_table/lvm.pm6
-rw-r--r--perl-install/partition_table/mac.pm4
-rw-r--r--perl-install/partition_table/raw.pm91
-rw-r--r--perl-install/partition_table/readonly.pm3
-rw-r--r--perl-install/partition_table/sun.pm4
-rw-r--r--perl-install/pixmaps/X.pngbin2517 -> 2130 bytes
-rw-r--r--perl-install/pixmaps/advanced_expander.pngbin0 -> 222 bytes
-rw-r--r--perl-install/pixmaps/banner-background.pngbin0 -> 151 bytes
-rw-r--r--perl-install/pixmaps/banner-blue-part.pngbin0 -> 233 bytes
-rw-r--r--perl-install/pixmaps/cups_config.pngbin2290 -> 1997 bytes
-rw-r--r--perl-install/pixmaps/default.pngbin1701 -> 1196 bytes
-rw-r--r--perl-install/pixmaps/eth_card_mini.pngbin2712 -> 2625 bytes
-rw-r--r--perl-install/pixmaps/help.pngbin1699 -> 1581 bytes
-rw-r--r--perl-install/pixmaps/nosplash_thumb.pngbin5115 -> 1937 bytes
-rw-r--r--perl-install/pixmaps/pause-16.pngbin775 -> 887 bytes
-rw-r--r--perl-install/pixmaps/pause-24.pngbin1146 -> 1443 bytes
-rw-r--r--perl-install/pixmaps/play-16.pngbin795 -> 904 bytes
-rw-r--r--perl-install/pixmaps/play-24.pngbin1355 -> 1455 bytes
-rw-r--r--perl-install/pixmaps/quit.pngbin2117 -> 2880 bytes
-rw-r--r--perl-install/pixmaps/redhat-config-users.pngbin2770 -> 3947 bytes
-rw-r--r--perl-install/pixmaps/refresh.pngbin1775 -> 2041 bytes
-rw-r--r--perl-install/pixmaps/right-white-background_left_part-1.pngbin0 -> 171 bytes
-rw-r--r--perl-install/pixmaps/right-white-background_left_part-2.pngbin0 -> 403 bytes
-rw-r--r--perl-install/pixmaps/right-white-background_left_part-3.pngbin0 -> 171 bytes
-rw-r--r--perl-install/pixmaps/right-white-background_right_part_768.pngbin0 -> 3150 bytes
-rw-r--r--perl-install/pixmaps/rollover.pngbin0 -> 336 bytes
-rw-r--r--perl-install/pixmaps/security-low.pngbin0 -> 1096 bytes
-rw-r--r--perl-install/pixmaps/security-medium.pngbin0 -> 1054 bytes
-rw-r--r--perl-install/pixmaps/security-strong.pngbin0 -> 1069 bytes
-rw-r--r--perl-install/pixmaps/selected.pngbin344 -> 310 bytes
-rw-r--r--perl-install/pixmaps/small-logo.pngbin0 -> 646 bytes
-rw-r--r--perl-install/pixmaps/steps_done.pngbin348 -> 364 bytes
-rw-r--r--perl-install/pixmaps/steps_off.pngbin401 -> 349 bytes
-rw-r--r--perl-install/pixmaps/steps_on.pngbin372 -> 811 bytes
-rw-r--r--perl-install/pixmaps/stop-16.pngbin717 -> 889 bytes
-rw-r--r--perl-install/pixmaps/stop-24.pngbin1237 -> 1415 bytes
-rw-r--r--perl-install/pixmaps/unselected.pngbin172 -> 155 bytes
-rw-r--r--perl-install/pixmaps/warning.pngbin3169 -> 2396 bytes
-rw-r--r--perl-install/pkgs.pm213
-rw-r--r--perl-install/raid.pm148
-rwxr-xr-x[-rw-r--r--]perl-install/resize_fat/Makefile.PL0
-rw-r--r--perl-install/resize_fat/README2
-rw-r--r--perl-install/resize_fat/any.pm12
-rw-r--r--perl-install/resize_fat/boot_sector.pm4
-rw-r--r--perl-install/resize_fat/c_rewritten.pm2
-rw-r--r--perl-install/resize_fat/dir_entry.pm2
-rw-r--r--perl-install/resize_fat/directory.pm2
-rw-r--r--perl-install/resize_fat/fat.pm2
-rw-r--r--perl-install/resize_fat/info_sector.pm2
-rw-r--r--perl-install/resize_fat/io.pm2
-rw-r--r--perl-install/resize_fat/main.pm4
-rw-r--r--perl-install/run_program.pm284
-rw-r--r--perl-install/scanner.pm130
-rw-r--r--perl-install/security/help.pm2
-rw-r--r--perl-install/security/level.pm73
-rw-r--r--perl-install/security/various.pm13
-rw-r--r--perl-install/services.pm356
-rw-r--r--perl-install/share/base.pngbin386 -> 234 bytes
-rw-r--r--perl-install/share/diskdrake.css92
-rw-r--r--perl-install/share/diskdrake.rc54
-rw-r--r--perl-install/share/floppy.pngbin317 -> 306 bytes
-rw-r--r--perl-install/share/ftin.pngbin190 -> 212 bytes
-rw-r--r--perl-install/share/ftout.pngbin190 -> 217 bytes
-rw-r--r--perl-install/share/help.pngbin3769 -> 1353 bytes
-rw-r--r--perl-install/share/installed.pngbin344 -> 477 bytes
-rw-r--r--perl-install/share/left-background-filler.pngbin0 -> 763 bytes
-rw-r--r--perl-install/share/po/.gitignore1
-rw-r--r--perl-install/share/po/.tx/config8
-rw-r--r--perl-install/share/po/Makefile7
-rw-r--r--perl-install/share/po/af.po4391
-rw-r--r--perl-install/share/po/am.po4061
-rw-r--r--perl-install/share/po/ar.po4371
-rw-r--r--perl-install/share/po/ast.po6507
-rw-r--r--perl-install/share/po/az.po4487
-rw-r--r--perl-install/share/po/be.po4380
-rw-r--r--perl-install/share/po/bg.po4852
-rw-r--r--perl-install/share/po/bn.po4366
-rw-r--r--perl-install/share/po/br.po4471
-rw-r--r--perl-install/share/po/bs.po4379
-rw-r--r--perl-install/share/po/ca.po5172
-rw-r--r--perl-install/share/po/cs.po4707
-rw-r--r--perl-install/share/po/cy.po4396
-rw-r--r--perl-install/share/po/da.po4769
-rw-r--r--perl-install/share/po/de.po5040
-rw-r--r--perl-install/share/po/de_AT.po7236
-rw-r--r--perl-install/share/po/el.po5852
-rw-r--r--perl-install/share/po/eo.po4242
-rw-r--r--perl-install/share/po/es.po4594
-rw-r--r--perl-install/share/po/et.po4482
-rw-r--r--perl-install/share/po/eu.po4452
-rw-r--r--perl-install/share/po/fa.po4395
-rw-r--r--perl-install/share/po/fi.po5744
-rw-r--r--perl-install/share/po/fr.po4841
-rw-r--r--perl-install/share/po/fur.po3862
-rw-r--r--perl-install/share/po/ga.po4099
-rw-r--r--perl-install/share/po/gl.po4648
-rw-r--r--perl-install/share/po/he.po4784
-rw-r--r--perl-install/share/po/hi.po4360
-rw-r--r--perl-install/share/po/hr.po4668
-rw-r--r--perl-install/share/po/hu.po4599
-rw-r--r--perl-install/share/po/hy.po6477
-rw-r--r--perl-install/share/po/id.po5836
-rw-r--r--perl-install/share/po/is.po4441
-rw-r--r--perl-install/share/po/it.po4650
-rw-r--r--perl-install/share/po/ja.po4918
-rw-r--r--perl-install/share/po/ka.po6477
-rw-r--r--perl-install/share/po/ko.po4306
-rw-r--r--perl-install/share/po/ku.po6477
-rw-r--r--perl-install/share/po/ky.po4054
-rw-r--r--perl-install/share/po/libDrakX.pot3328
-rw-r--r--perl-install/share/po/lo.po6477
-rw-r--r--perl-install/share/po/lt.po4615
-rw-r--r--perl-install/share/po/ltg.po4309
-rw-r--r--perl-install/share/po/lv.po4351
-rw-r--r--perl-install/share/po/mk.po4548
-rw-r--r--perl-install/share/po/mn.po4976
-rw-r--r--perl-install/share/po/mr.po6477
-rw-r--r--perl-install/share/po/ms.po5508
-rw-r--r--perl-install/share/po/mt.po4593
-rw-r--r--perl-install/share/po/nb.po5686
-rw-r--r--perl-install/share/po/nl.po4545
-rw-r--r--perl-install/share/po/nn.po4977
-rw-r--r--perl-install/share/po/pa_IN.po4403
-rw-r--r--perl-install/share/po/pl.po4300
-rw-r--r--perl-install/share/po/pt.po5014
-rw-r--r--perl-install/share/po/pt_BR.po5829
-rw-r--r--perl-install/share/po/ro.po5731
-rw-r--r--perl-install/share/po/ru.po4814
-rw-r--r--perl-install/share/po/sc.po4000
-rw-r--r--perl-install/share/po/sk.po4666
-rw-r--r--perl-install/share/po/sl.po4922
-rw-r--r--perl-install/share/po/sq.po5019
-rw-r--r--perl-install/share/po/sr.po5253
-rw-r--r--perl-install/share/po/sr@Latn.po4703
-rw-r--r--perl-install/share/po/sv.po4537
-rw-r--r--perl-install/share/po/ta.po4302
-rw-r--r--perl-install/share/po/tg.po4558
-rw-r--r--perl-install/share/po/th.po4685
-rw-r--r--perl-install/share/po/tl.po4540
-rw-r--r--perl-install/share/po/tr.po5198
-rwxr-xr-xperl-install/share/po/translation_size.pl14
-rw-r--r--perl-install/share/po/uk.po5143
-rw-r--r--perl-install/share/po/uz.po5573
-rw-r--r--perl-install/share/po/uz@Latn.po6405
-rw-r--r--perl-install/share/po/uz@cyrillic.po6971
-rw-r--r--perl-install/share/po/vi.po4412
-rw-r--r--perl-install/share/po/wa.po4240
-rw-r--r--perl-install/share/po/xh.po6477
-rw-r--r--perl-install/share/po/zh_CN.po4102
-rw-r--r--perl-install/share/po/zh_TW.po4909
-rw-r--r--perl-install/share/po/zu.po6477
-rw-r--r--perl-install/share/themes-galaxy.css31
-rw-r--r--perl-install/share/themes-galaxy.rc (renamed from perl-install/install/share/themes-galaxy.rc)18
-rw-r--r--perl-install/standalone.pm54
-rwxr-xr-xperl-install/standalone/bootloader-config148
-rwxr-xr-xperl-install/standalone/diskdrake4
-rwxr-xr-xperl-install/standalone/display_help70
-rwxr-xr-x[-rw-r--r--]perl-install/standalone/display_installer_help (renamed from globetrotter/hwprofile)48
-rwxr-xr-xperl-install/standalone/display_release_notes.pl39
-rwxr-xr-xperl-install/standalone/drakauth5
-rwxr-xr-xperl-install/standalone/drakautoinst84
-rwxr-xr-xperl-install/standalone/drakautologin138
-rwxr-xr-xperl-install/standalone/drakboot248
-rwxr-xr-xperl-install/standalone/drakbug238
-rwxr-xr-xperl-install/standalone/drakbug_report2
-rwxr-xr-xperl-install/standalone/drakclock408
-rwxr-xr-xperl-install/standalone/drakdisk10
-rwxr-xr-xperl-install/standalone/drakdoc2
-rwxr-xr-xperl-install/standalone/drakdvb168
-rwxr-xr-xperl-install/standalone/drakedm30
-rwxr-xr-xperl-install/standalone/drakfloppy55
-rwxr-xr-xperl-install/standalone/drakfont204
-rwxr-xr-xperl-install/standalone/drakhelp21
-rwxr-xr-xperl-install/standalone/drakperm75
-rwxr-xr-xperl-install/standalone/draksec415
-rwxr-xr-xperl-install/standalone/draksound14
-rwxr-xr-xperl-install/standalone/draksplash338
-rwxr-xr-xperl-install/standalone/drakupdate_fstab38
-rwxr-xr-xperl-install/standalone/drakups58
-rwxr-xr-xperl-install/standalone/drakxservices2
-rwxr-xr-xperl-install/standalone/drakxtv14
-rwxr-xr-xperl-install/standalone/fileshareset25
-rwxr-xr-xperl-install/standalone/finish-install180
-rwxr-xr-xperl-install/standalone/finish-install.xsetup33
-rwxr-xr-xperl-install/standalone/harddrake2347
-rw-r--r--perl-install/standalone/icons/IC-Dssh-48.pngbin3720 -> 644 bytes
-rw-r--r--perl-install/standalone/icons/categ.pngbin5173 -> 4111 bytes
-rw-r--r--perl-install/standalone/icons/drakbug-16.pngbin582 -> 753 bytes
-rw-r--r--perl-install/standalone/icons/drakfont.pngbin2965 -> 830 bytes
-rw-r--r--perl-install/standalone/icons/drakmenustyle-16.pngbin886 -> 1089 bytes
-rw-r--r--perl-install/standalone/icons/drakmenustyle-24.pngbin1768 -> 1710 bytes
-rw-r--r--perl-install/standalone/icons/drakmenustyle-32.pngbin2423 -> 2386 bytes
-rw-r--r--perl-install/standalone/icons/drakmenustyle-52.pngbin3656 -> 4271 bytes
-rw-r--r--perl-install/standalone/icons/drakmenustyle-64.pngbin6564 -> 5542 bytes
-rw-r--r--perl-install/standalone/icons/drakmenustyle.pngbin4361 -> 3907 bytes
-rw-r--r--perl-install/standalone/icons/drakmenustyle_128.pngbin14540 -> 9680 bytes
-rw-r--r--perl-install/standalone/icons/draksound-16.pngbin559 -> 745 bytes
-rw-r--r--perl-install/standalone/icons/draksplash-16.pngbin763 -> 0 bytes
-rw-r--r--perl-install/standalone/icons/drakups.pngbin3214 -> 2035 bytes
-rw-r--r--perl-install/standalone/icons/drakwizard-16.pngbin740 -> 787 bytes
-rw-r--r--perl-install/standalone/icons/eth_card_mini2.pngbin1538 -> 800 bytes
-rw-r--r--perl-install/standalone/icons/gmon.pngbin17411 -> 608 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/cd.pngbin834 -> 777 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/cpu.pngbin566 -> 611 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/floppy.pngbin730 -> 607 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/harddisk.pngbin725 -> 796 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/harddrake.pngbin970 -> 3343 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/hw-keyboard.pngbin827 -> 710 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/hw-memory.pngbin937 -> 475 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/hw-pcmcia.pngbin831 -> 619 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/hw-smbus.pngbin915 -> 738 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/hw-usb.pngbin868 -> 477 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/hw_mouse.pngbin751 -> 636 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/hw_network.pngbin922 -> 975 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/hw_printer.pngbin603 -> 786 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/ide_hd.pngbin725 -> 738 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/isdn.pngbin710 -> 736 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/joystick.pngbin730 -> 693 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/keyboard.pngbin533 -> 710 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/memory.pngbin675 -> 475 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/menu/harddrake-menu.svg511
-rw-r--r--perl-install/standalone/icons/harddrake2/menu/harddrake-menu16.pngbin970 -> 733 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/menu/harddrake-menu32.pngbin2447 -> 1747 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/menu/harddrake-menu48.pngbin4214 -> 3343 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/modem.pngbin847 -> 429 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/multimedia.pngbin1010 -> 842 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/scanner.pngbin809 -> 695 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/scsi.pngbin275 -> 738 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/scsi_hd.pngbin725 -> 738 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/sound.pngbin1042 -> 762 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/svg/cd.svg198
-rw-r--r--perl-install/standalone/icons/harddrake2/svg/controller.svg246
-rw-r--r--perl-install/standalone/icons/harddrake2/svg/cpu.svg219
-rw-r--r--perl-install/standalone/icons/harddrake2/svg/floppy.svg194
-rw-r--r--perl-install/standalone/icons/harddrake2/svg/harddisk.svg549
-rw-r--r--perl-install/standalone/icons/harddrake2/svg/hw-keyboard.svg197
-rw-r--r--perl-install/standalone/icons/harddrake2/svg/hw-memory.svg303
-rw-r--r--perl-install/standalone/icons/harddrake2/svg/hw-pcmcia.svg517
-rw-r--r--perl-install/standalone/icons/harddrake2/svg/hw_mouse.svg346
-rw-r--r--perl-install/standalone/icons/harddrake2/svg/hw_network.svg233
-rw-r--r--perl-install/standalone/icons/harddrake2/svg/hw_printer.svg1450
-rw-r--r--perl-install/standalone/icons/harddrake2/svg/joystick.svg352
-rw-r--r--perl-install/standalone/icons/harddrake2/svg/modem.svg218
-rw-r--r--perl-install/standalone/icons/harddrake2/svg/multimedia.svg253
-rw-r--r--perl-install/standalone/icons/harddrake2/svg/scanner.svg341
-rw-r--r--perl-install/standalone/icons/harddrake2/svg/sound.svg307
-rw-r--r--perl-install/standalone/icons/harddrake2/svg/tape.svg245
-rw-r--r--perl-install/standalone/icons/harddrake2/svg/tv.svg290
-rw-r--r--perl-install/standalone/icons/harddrake2/svg/unknown.svg247
-rw-r--r--perl-install/standalone/icons/harddrake2/svg/ups.svg216
-rw-r--r--perl-install/standalone/icons/harddrake2/svg/usb.svg239
-rw-r--r--perl-install/standalone/icons/harddrake2/svg/webcam.svg443
-rw-r--r--perl-install/standalone/icons/harddrake2/tape.pngbin920 -> 721 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/tv.pngbin647 -> 771 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/unknown.pngbin858 -> 845 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/ups.pngbin699 -> 788 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/usb.pngbin316 -> 477 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/video.pngbin806 -> 738 bytes
-rw-r--r--perl-install/standalone/icons/harddrake2/webcam.pngbin842 -> 960 bytes
-rw-r--r--perl-install/standalone/icons/hori.pngbin7232 -> 534 bytes
-rw-r--r--perl-install/standalone/icons/hwapplet-16.pngbin503 -> 619 bytes
-rw-r--r--perl-install/standalone/icons/hwapplet-24.pngbin774 -> 843 bytes
-rw-r--r--perl-install/standalone/icons/hwapplet-32.pngbin1235 -> 1082 bytes
-rw-r--r--perl-install/standalone/icons/hwapplet-52.pngbin2070 -> 1701 bytes
-rw-r--r--perl-install/standalone/icons/hwapplet-64.pngbin2823 -> 2113 bytes
-rw-r--r--perl-install/standalone/icons/hwapplet.pngbin1953 -> 1584 bytes
-rw-r--r--perl-install/standalone/icons/hwapplet_128.pngbin7002 -> 4083 bytes
-rw-r--r--perl-install/standalone/icons/ic-drakfont-48.pngbin3290 -> 627 bytes
-rw-r--r--perl-install/standalone/icons/ic82-back-up-16.pngbin1027 -> 438 bytes
-rw-r--r--perl-install/standalone/icons/ic82-back-up-32.pngbin2977 -> 534 bytes
-rw-r--r--perl-install/standalone/icons/ic82-network-40.pngbin2145 -> 505 bytes
-rw-r--r--perl-install/standalone/icons/ic82-users-16.pngbin726 -> 334 bytes
-rw-r--r--perl-install/standalone/icons/localedrake-16.pngbin1327 -> 722 bytes
-rw-r--r--perl-install/standalone/icons/localedrake-32.pngbin1991 -> 1536 bytes
-rw-r--r--perl-install/standalone/icons/localedrake-48.pngbin3087 -> 1362 bytes
-rw-r--r--perl-install/standalone/icons/logdrake.pngbin1760 -> 2576 bytes
-rw-r--r--perl-install/standalone/icons/mdk_logo.pngbin15639 -> 0 bytes
-rw-r--r--perl-install/standalone/icons/net_c.pngbin3198 -> 1645 bytes
-rw-r--r--perl-install/standalone/icons/net_d.pngbin3192 -> 1906 bytes
-rw-r--r--perl-install/standalone/icons/net_u.pngbin2866 -> 2186 bytes
-rw-r--r--perl-install/standalone/icons/non-editable.pngbin872 -> 466 bytes
-rw-r--r--perl-install/standalone/icons/scannerdrake.pngbin2669 -> 2521 bytes
-rw-r--r--perl-install/standalone/icons/smbnfs_default.pngbin260 -> 252 bytes
-rw-r--r--perl-install/standalone/icons/smbnfs_has_mntpoint.pngbin287 -> 269 bytes
-rw-r--r--perl-install/standalone/icons/smbnfs_mounted.pngbin282 -> 253 bytes
-rw-r--r--perl-install/standalone/icons/smbnfs_server.pngbin314 -> 195 bytes
-rw-r--r--perl-install/standalone/icons/tradi.pngbin32579 -> 33212 bytes
-rw-r--r--perl-install/standalone/icons/verti.pngbin21123 -> 534 bytes
-rw-r--r--perl-install/standalone/icons/wiz_default_up.pngbin2686 -> 4472 bytes
-rw-r--r--perl-install/standalone/interactive_http/.perl_checker1
-rwxr-xr-x[-rw-r--r--]perl-install/standalone/interactive_http/index.html.pl0
-rwxr-xr-xperl-install/standalone/interactive_http/interactive_http.cgi23
-rw-r--r--perl-install/standalone/interactive_http/miniserv.init10
-rwxr-xr-x[-rw-r--r--]perl-install/standalone/interactive_http/miniserv.pl0
-rwxr-xr-xperl-install/standalone/localedrake18
-rwxr-xr-xperl-install/standalone/logdrake120
-rwxr-xr-xperl-install/standalone/lsnetdrake4
-rw-r--r--perl-install/standalone/menu/harddrake.desktop.in1
-rw-r--r--perl-install/standalone/menu/localedrake-system.desktop.in1
-rw-r--r--perl-install/standalone/menu/localedrake-user.desktop.in1
-rwxr-xr-xperl-install/standalone/notify-x11-free-driver-switch23
-rwxr-xr-xperl-install/standalone/notify-x11-free-driver-switch.xsetup9
-rw-r--r--perl-install/standalone/po/.tx/config8
-rw-r--r--perl-install/standalone/po/Makefile9
-rw-r--r--perl-install/standalone/po/POTFILES.in3
-rw-r--r--perl-install/standalone/po/af.po2681
-rw-r--r--perl-install/standalone/po/am.po2731
-rw-r--r--perl-install/standalone/po/ar.po2508
-rw-r--r--perl-install/standalone/po/ast.po3246
-rw-r--r--perl-install/standalone/po/az.po2661
-rw-r--r--perl-install/standalone/po/be.po2854
-rw-r--r--perl-install/standalone/po/bg.po2680
-rw-r--r--perl-install/standalone/po/bn.po2435
-rw-r--r--perl-install/standalone/po/br.po2624
-rw-r--r--perl-install/standalone/po/bs.po2391
-rw-r--r--perl-install/standalone/po/ca.po2876
-rw-r--r--perl-install/standalone/po/cs.po2479
-rw-r--r--perl-install/standalone/po/cy.po2393
-rw-r--r--perl-install/standalone/po/da.po2535
-rw-r--r--perl-install/standalone/po/de.po2719
-rw-r--r--perl-install/standalone/po/de_AT.po3438
-rw-r--r--perl-install/standalone/po/el.po3352
-rw-r--r--perl-install/standalone/po/eo.po2794
-rw-r--r--perl-install/standalone/po/es.po2501
-rw-r--r--perl-install/standalone/po/et.po2433
-rw-r--r--perl-install/standalone/po/eu.po2410
-rw-r--r--perl-install/standalone/po/fa.po2439
-rw-r--r--perl-install/standalone/po/fi.po3028
-rw-r--r--perl-install/standalone/po/fr.po2535
-rw-r--r--perl-install/standalone/po/fur.po2253
-rw-r--r--perl-install/standalone/po/ga.po2701
-rw-r--r--perl-install/standalone/po/gl.po2495
-rw-r--r--perl-install/standalone/po/he.po2552
-rw-r--r--perl-install/standalone/po/hi.po2461
-rw-r--r--perl-install/standalone/po/hr.po2916
-rw-r--r--perl-install/standalone/po/hu.po2284
-rw-r--r--perl-install/standalone/po/hy.po3238
-rw-r--r--perl-install/standalone/po/id.po3013
-rw-r--r--perl-install/standalone/po/is.po2500
-rw-r--r--perl-install/standalone/po/it.po2380
-rw-r--r--perl-install/standalone/po/ja.po2585
-rw-r--r--perl-install/standalone/po/ka.po3238
-rw-r--r--perl-install/standalone/po/ko.po2727
-rw-r--r--perl-install/standalone/po/ku.po3238
-rw-r--r--perl-install/standalone/po/ky.po2260
-rw-r--r--perl-install/standalone/po/libDrakX-standalone.pot1998
-rw-r--r--perl-install/standalone/po/lo.po3237
-rw-r--r--perl-install/standalone/po/lt.po2832
-rw-r--r--perl-install/standalone/po/ltg.po2321
-rw-r--r--perl-install/standalone/po/lv.po2798
-rw-r--r--perl-install/standalone/po/mk.po2741
-rw-r--r--perl-install/standalone/po/mn.po2962
-rw-r--r--perl-install/standalone/po/mr.po3238
-rw-r--r--perl-install/standalone/po/ms.po3314
-rw-r--r--perl-install/standalone/po/mt.po2612
-rw-r--r--perl-install/standalone/po/nb.po3028
-rw-r--r--perl-install/standalone/po/nl.po2429
-rw-r--r--perl-install/standalone/po/nn.po2766
-rw-r--r--perl-install/standalone/po/pa_IN.po2601
-rw-r--r--perl-install/standalone/po/pl.po2284
-rw-r--r--perl-install/standalone/po/pt.po2529
-rw-r--r--perl-install/standalone/po/pt_BR.po3098
-rw-r--r--perl-install/standalone/po/ro.po3247
-rw-r--r--perl-install/standalone/po/ru.po2466
-rw-r--r--perl-install/standalone/po/sc.po2139
-rw-r--r--perl-install/standalone/po/sk.po2667
-rw-r--r--perl-install/standalone/po/sl.po2698
-rw-r--r--perl-install/standalone/po/sq.po3411
-rw-r--r--perl-install/standalone/po/sr.po3106
-rw-r--r--perl-install/standalone/po/sr@Latn.po2460
-rw-r--r--perl-install/standalone/po/sv.po2470
-rw-r--r--perl-install/standalone/po/ta.po2918
-rw-r--r--perl-install/standalone/po/tg.po2646
-rw-r--r--perl-install/standalone/po/th.po2800
-rw-r--r--perl-install/standalone/po/tl.po2596
-rw-r--r--perl-install/standalone/po/tr.po3017
-rw-r--r--perl-install/standalone/po/uk.po2843
-rw-r--r--perl-install/standalone/po/uz.po2848
-rw-r--r--perl-install/standalone/po/uz@Latn.po3470
-rw-r--r--perl-install/standalone/po/uz@cyrillic.po3525
-rw-r--r--perl-install/standalone/po/vi.po2447
-rw-r--r--perl-install/standalone/po/wa.po2406
-rw-r--r--perl-install/standalone/po/xh.po3238
-rw-r--r--perl-install/standalone/po/zh_CN.po2231
-rw-r--r--perl-install/standalone/po/zh_TW.po2431
-rw-r--r--perl-install/standalone/po/zu.po3238
-rw-r--r--perl-install/standalone/polkit/Makefile27
-rw-r--r--perl-install/standalone/polkit/org.mageia.drakauth.policy.in22
-rw-r--r--perl-install/standalone/polkit/org.mageia.drakautologin.policy.in22
-rw-r--r--perl-install/standalone/polkit/org.mageia.drakboot.policy.in22
-rw-r--r--perl-install/standalone/polkit/org.mageia.drakclock.policy.in22
-rw-r--r--perl-install/standalone/polkit/org.mageia.drakdisk.policy.in22
-rw-r--r--perl-install/standalone/polkit/org.mageia.drakdm.policy.in22
-rw-r--r--perl-install/standalone/polkit/org.mageia.drakfont.policy.in22
-rw-r--r--perl-install/standalone/polkit/org.mageia.drakhardware.policy.in22
-rw-r--r--perl-install/standalone/polkit/org.mageia.draklog.policy.in22
-rw-r--r--perl-install/standalone/polkit/org.mageia.drakperm.policy.in22
-rw-r--r--perl-install/standalone/polkit/org.mageia.drakscanner.policy.in22
-rw-r--r--perl-install/standalone/polkit/org.mageia.draksec.policy.in22
-rw-r--r--perl-install/standalone/polkit/org.mageia.draksec.rules11
-rw-r--r--perl-install/standalone/polkit/org.mageia.drakups.policy.in22
-rw-r--r--perl-install/standalone/polkit/org.mageia.drakxservices.policy.in22
-rwxr-xr-xperl-install/standalone/remove-unused-packages11
-rwxr-xr-xperl-install/standalone/scannerdrake129
-rwxr-xr-xperl-install/standalone/service_harddrake335
-rwxr-xr-xperl-install/standalone/service_harddrake.sh61
-rwxr-xr-xperl-install/standalone/service_harddrake_confirm12
-rw-r--r--perl-install/timezone.pm58
-rw-r--r--perl-install/ugtk2.pm195
-rw-r--r--perl-install/ugtk3.pm1640
-rw-r--r--perl-install/unused/cdrom.pm2
-rwxr-xr-x[-rw-r--r--]perl-install/unused/migrate-ugtk2-to-mygtk2.pl6
-rw-r--r--perl-install/wizards.pm6
-rw-r--r--rescue/.gitignore1
-rwxr-xr-xrescue/Flash/scripts/backup_systemloop106
-rwxr-xr-xrescue/Flash/scripts/clear_systemloop89
-rw-r--r--rescue/Flash/scripts/rescue_common182
-rwxr-xr-xrescue/Flash/scripts/reset_rootpass100
-rwxr-xr-xrescue/Flash/scripts/reset_userpass111
-rwxr-xr-xrescue/Flash/scripts/restore_systemloop167
-rwxr-xr-xrescue/Flash/scripts/test_badblocks69
-rwxr-xr-xrescue/Flash/scripts/upgrade244
-rwxr-xr-xrescue/Flash/scripts/upgrade.merge-users52
-rw-r--r--rescue/Makefile15
-rw-r--r--rescue/NEWS340
-rw-r--r--rescue/aliases11
-rwxr-xr-xrescue/bin/drvinst (renamed from rescue/drvinst)17
-rwxr-xr-xrescue/bin/guessmounts168
-rwxr-xr-xrescue/bin/install_bootloader (renamed from rescue/install_bootloader)9
-rwxr-xr-xrescue/bin/lsparts (renamed from rescue/lsparts)5
-rwxr-xr-xrescue/bin/rescue-doc (renamed from rescue/rescue-doc)17
-rwxr-xr-xrescue/bin/restore_ms_boot (renamed from rescue/restore_ms_boot)0
-rw-r--r--rescue/devices.pl55
-rw-r--r--rescue/dirs11
-rwxr-xr-xrescue/guessmounts96
-rw-r--r--rescue/list.xml352
-rwxr-xr-xrescue/make_flash_rescuebin2340 -> 2504 bytes
-rwxr-xr-xrescue/make_partimage_save_rest_all14
-rwxr-xr-xrescue/make_rescue_img87
-rwxr-xr-xrescue/sbin/partimage_whole_disk (renamed from rescue/partimage_whole_disk)9
-rwxr-xr-xrescue/tree/bin/insmod2
-rw-r--r--rescue/tree/etc/hostname1
-rw-r--r--rescue/tree/etc/hosts2
-rw-r--r--rescue/tree/etc/inittab14
-rw-r--r--rescue/tree/etc/issue4
-rw-r--r--rescue/tree/etc/passwd5
-rw-r--r--rescue/tree/etc/profile4
-rwxr-xr-xrescue/tree/etc/rc.reboot8
-rwxr-xr-xrescue/tree/etc/rc.sysinit63
-rw-r--r--rescue/tree/ka/gen_modules_conf.pl191
-rw-r--r--rescue/tree/ka/hostnames225
-rwxr-xr-xrescue/tree/ka/install.sh641
-rwxr-xr-xrescue/tree/ka/ka-d-clientbin399376 -> 0 bytes
-rwxr-xr-xrescue/tree/ka/make_initrd44
-rwxr-xr-xrescue/tree/ka/setup_network.sh80
-rw-r--r--rescue/tree/ka/tftpserver1
-rwxr-xr-xrescue/tree/sbin/fakeshutdown39
-rwxr-xr-xrescue/tree/sbin/modprobe56
-rwxr-xr-xrescue/tree/usr/bin/login (renamed from rescue/tree/bin/login)0
-rwxr-xr-xrescue/tree/usr/bin/mageia-rescue42
-rw-r--r--rescue/tree/usr/lib/CVS.0
-rw-r--r--rescue/tree/usr/lib/modules-load.d/mageia-rescue.conf8
-rwxr-xr-xrescue/tree/usr/lib/restore-image-lib.sh80
-rw-r--r--rescue/tree/usr/lib/systemd/system/rescue.service20
-rw-r--r--rescue/tree/usr/lib/systemd/system/systemd-udevd.service.d/dracut-rules.conf1
-rwxr-xr-xrescue/tree/usr/sbin/diskdrake-resize29
-rwxr-xr-xrescue/tree/usr/sbin/genpasswd13
-rwxr-xr-xrescue/tree/usr/sbin/grabjournallogs51
-rwxr-xr-xrescue/tree/usr/sbin/restore-image.sh412
-rwxr-xr-xrescue/tree/usr/sbin/startssh27
-rw-r--r--rescue/tree/usr/share/symlinks10
-rw-r--r--tools/.perl_checker10
-rw-r--r--tools/Makefile7
-rwxr-xr-xtools/draklive1034
-rwxr-xr-xtools/drakx-in-chroot135
-rwxr-xr-xtools/find-drivers-needing-nonfree-firmware94
-rwxr-xr-xtools/gencryptofiles115
-rwxr-xr-xtools/hd_grub.cgi6
-rwxr-xr-xtools/i386/busyboxbin55508 -> 0 bytes
-rwxr-xr-xtools/ia64/elilo.efibin315800 -> 0 bytes
-rwxr-xr-xtools/install-xml-file-list36
-rwxr-xr-xtools/mdkinst_stage2_tool18
-rw-r--r--tools/ppc/README52
-rwxr-xr-xtools/ppc/convert5
-rwxr-xr-xtools/ppc/magic89
-rwxr-xr-xtools/ppc/mapping36
-rw-r--r--tools/serial_probe/serial.c13
-rwxr-xr-xtools/x86_64/busyboxbin74064 -> 0 bytes
1307 files changed, 493500 insertions, 495299 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000..9e5ecb61c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.perl_checker.cache
+.directory
+*.tar.xz
+*~
diff --git a/Makefile b/Makefile
index 79744281d..ac686b8aa 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,3 @@
-include Makefile.config
ROOTDEST = /export
STAGE2_DEST = $(ROOTDEST)/install/stage2
@@ -19,8 +18,6 @@ install_only:
make -C rescue install STAGE2_DEST=$(STAGE2_DEST)
make -C advertising install ROOTDEST=$(ROOTDEST)
- LC_ALL=C svn info ChangeLog | egrep '^Revision|^Last Changed Date' > $(STAGE2_DEST)/VERSION
-
clean:
# force taking new rpms from repository
rm -rf images/RPMS
diff --git a/Makefile.common b/Makefile.common
deleted file mode 100644
index ec7066a06..000000000
--- a/Makefile.common
+++ /dev/null
@@ -1,64 +0,0 @@
- # -*- makefile -*-
- #******************************************************************************
- #
- # Guillaume Cottenceau (gc@mandrakesoft.com)
- #
- # Copyright 2000 Mandrakesoft
- #
- # This software may be freely redistributed under the terms of the GNU
- # public license.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program; if not, write to the Free Software
- # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- #
- #*****************************************************************************
-
-ARCH := $(patsubst i%86,i386,$(shell uname -m))
-ARCH := $(patsubst sparc%,sparc,$(ARCH))
-
- #- default lib is dietlibc (honoured by main Makefile whenever possible)
-L = DIETLIBC
-#L = GLIBC
-
- #- default frontend is newt (honoured by main Makefile whenever possible)
-F = NEWT
-# F = STDIO
-
- #- override in some situations
-ifeq (ia64, $(ARCH))
-L = GLIBC
-endif
-ifeq (ppc, $(ARCH))
-L = GLIBC
-endif
-ifeq (x86_64, $(ARCH))
-#L = GLIBC
-endif
-
-ifeq (DIETLIBC, $(L))
-DIET = $(top_dir)/dietlibc/bin-$(ARCH)/diet
-endif
-
-
- #- flags used by all stuff
-ifeq (ppc, $(ARCH))
-CFLAGS = -Os -pipe -Wall -fomit-frame-pointer -fno-strict-aliasing
-else
-CFLAGS = -Os -pipe -Wall -Werror -fomit-frame-pointer -fno-strict-aliasing
-endif
-
-DIETLIBC_INCLUDES = -I$(top_dir)/dietlibc/include -I. -I$(top_dir)/bzlib
-GLIBC_INCLUDES = -I. -I$(top_dir)/bzlib
-INCLUDES = $($(L)_INCLUDES)
-
-GLIBC_LDFLAGS_STAGE1 = -static
-DIETLIBC_LDFLAGS_STAGE1 = -nostdlib
-LDFLAGS_STAGE1 = $($(L)_LDFLAGS_STAGE1)
-
-GLIBC_LIBC =
-DIETLIBC_LIBC =
-STAGE1_LIBC = $($(L)_LIBC)
-
-STRIPCMD = strip -R .note -R .comment
-
diff --git a/Makefile.config b/Makefile.config
index b661fff10..dabf65a5b 100644
--- a/Makefile.config
+++ b/Makefile.config
@@ -8,9 +8,10 @@ DISTRIB_DESCR = "$(_DISTRIB_NAME) release $(DISTRIB_VERSION)"
# not config, but useful everywhere :)
ARCH := $(patsubst i%86,i386,$(shell uname -m))
-ARCH := $(patsubst sparc%,sparc,$(ARCH))
+ARCH := $(ARCH:sparc%=sparc)
+ARCH := $(ARCH:arm%=arm)
-PKG_ARCH := $(patsubst i386,i586,$(ARCH))
+PKG_ARCH := $(ARCH:i386=i586)
ifeq (x86_64, $(ARCH))
LIB = lib64
diff --git a/advertising/01IM_RANGE-a.pl b/advertising/01IM_RANGE-a.pl
deleted file mode 100644
index 629307042..000000000
--- a/advertising/01IM_RANGE-a.pl
+++ /dev/null
@@ -1 +0,0 @@
-$title = 'Discover Mandriva';
diff --git a/advertising/01IM_RANGE-a.png b/advertising/01IM_RANGE-a.png
deleted file mode 100644
index b7abe5948..000000000
--- a/advertising/01IM_RANGE-a.png
+++ /dev/null
Binary files differ
diff --git a/advertising/01_IM_mageia.pl b/advertising/01_IM_mageia.pl
new file mode 100644
index 000000000..e8b554b51
--- /dev/null
+++ b/advertising/01_IM_mageia.pl
@@ -0,0 +1 @@
+$title = N("Join Us!");
diff --git a/advertising/01_IM_mageia.png b/advertising/01_IM_mageia.png
new file mode 100644
index 000000000..0ad6cb769
--- /dev/null
+++ b/advertising/01_IM_mageia.png
Binary files differ
diff --git a/advertising/02IM_MIGRATION.pl b/advertising/02IM_MIGRATION.pl
deleted file mode 100644
index ac6f13802..000000000
--- a/advertising/02IM_MIGRATION.pl
+++ /dev/null
@@ -1 +0,0 @@
-$title = 'Windows friendly';
diff --git a/advertising/02IM_MIGRATION.png b/advertising/02IM_MIGRATION.png
deleted file mode 100644
index 4120fe504..000000000
--- a/advertising/02IM_MIGRATION.png
+++ /dev/null
Binary files differ
diff --git a/advertising/02_IM_mageia.pl b/advertising/02_IM_mageia.pl
new file mode 100644
index 000000000..ddeeb73d5
--- /dev/null
+++ b/advertising/02_IM_mageia.pl
@@ -0,0 +1 @@
+$title = N("Make it yours!");
diff --git a/advertising/02_IM_mageia.png b/advertising/02_IM_mageia.png
new file mode 100644
index 000000000..c19f00867
--- /dev/null
+++ b/advertising/02_IM_mageia.png
Binary files differ
diff --git a/advertising/03IM_ONE.pl b/advertising/03IM_ONE.pl
deleted file mode 100644
index 3556849b5..000000000
--- a/advertising/03IM_ONE.pl
+++ /dev/null
@@ -1 +0,0 @@
-$title = 'All in one product';
diff --git a/advertising/03IM_ONE.png b/advertising/03IM_ONE.png
deleted file mode 100644
index ed2161a37..000000000
--- a/advertising/03IM_ONE.png
+++ /dev/null
Binary files differ
diff --git a/advertising/03_IM_mageia.pl b/advertising/03_IM_mageia.pl
new file mode 100644
index 000000000..85dfe0561
--- /dev/null
+++ b/advertising/03_IM_mageia.pl
@@ -0,0 +1 @@
+$title = N("Your choice!");
diff --git a/advertising/03_IM_mageia.png b/advertising/03_IM_mageia.png
new file mode 100644
index 000000000..3bf05ef0f
--- /dev/null
+++ b/advertising/03_IM_mageia.png
Binary files differ
diff --git a/advertising/04IM_NETWORK.pl b/advertising/04IM_NETWORK.pl
deleted file mode 100644
index dacab8c9c..000000000
--- a/advertising/04IM_NETWORK.pl
+++ /dev/null
@@ -1 +0,0 @@
-$title = 'Efficient network';
diff --git a/advertising/04IM_NETWORK.png b/advertising/04IM_NETWORK.png
deleted file mode 100644
index 437879dca..000000000
--- a/advertising/04IM_NETWORK.png
+++ /dev/null
Binary files differ
diff --git a/advertising/04_IM_mageia.pl b/advertising/04_IM_mageia.pl
new file mode 100644
index 000000000..d79d45a3a
--- /dev/null
+++ b/advertising/04_IM_mageia.pl
@@ -0,0 +1 @@
+$title = N("Office tools");
diff --git a/advertising/04_IM_mageia.png b/advertising/04_IM_mageia.png
new file mode 100644
index 000000000..a759ae383
--- /dev/null
+++ b/advertising/04_IM_mageia.png
Binary files differ
diff --git a/advertising/05IM_PWP.pl b/advertising/05IM_PWP.pl
deleted file mode 100644
index a37442a38..000000000
--- a/advertising/05IM_PWP.pl
+++ /dev/null
@@ -1 +0,0 @@
-$title = 'Out of the box product';
diff --git a/advertising/05IM_PWP.png b/advertising/05IM_PWP.png
deleted file mode 100644
index 15e60ea21..000000000
--- a/advertising/05IM_PWP.png
+++ /dev/null
Binary files differ
diff --git a/advertising/05_IM_mageia.pl b/advertising/05_IM_mageia.pl
new file mode 100644
index 000000000..0be976b2f
--- /dev/null
+++ b/advertising/05_IM_mageia.pl
@@ -0,0 +1 @@
+$title = N("Home entertainment");
diff --git a/advertising/05_IM_mageia.png b/advertising/05_IM_mageia.png
new file mode 100644
index 000000000..01b0ef866
--- /dev/null
+++ b/advertising/05_IM_mageia.png
Binary files differ
diff --git a/advertising/06IM_FLASH.pl b/advertising/06IM_FLASH.pl
deleted file mode 100644
index d480e31cb..000000000
--- a/advertising/06IM_FLASH.pl
+++ /dev/null
@@ -1 +0,0 @@
-$title = 'Mandriva Linux on a 4GB USB key';
diff --git a/advertising/06IM_FLASH.png b/advertising/06IM_FLASH.png
deleted file mode 100644
index 54935febb..000000000
--- a/advertising/06IM_FLASH.png
+++ /dev/null
Binary files differ
diff --git a/advertising/06_IM_mageia.pl b/advertising/06_IM_mageia.pl
new file mode 100644
index 000000000..96c259df7
--- /dev/null
+++ b/advertising/06_IM_mageia.pl
@@ -0,0 +1 @@
+$title = N("For kids");
diff --git a/advertising/06_IM_mageia.png b/advertising/06_IM_mageia.png
new file mode 100644
index 000000000..7f2a5e76b
--- /dev/null
+++ b/advertising/06_IM_mageia.png
Binary files differ
diff --git a/advertising/07_IM_mageia.pl b/advertising/07_IM_mageia.pl
new file mode 100644
index 000000000..d205668a6
--- /dev/null
+++ b/advertising/07_IM_mageia.pl
@@ -0,0 +1 @@
+$title = N("For family!");
diff --git a/advertising/07_IM_mageia.png b/advertising/07_IM_mageia.png
new file mode 100644
index 000000000..5aa4ec481
--- /dev/null
+++ b/advertising/07_IM_mageia.png
Binary files differ
diff --git a/advertising/08_IM_mageia.pl b/advertising/08_IM_mageia.pl
new file mode 100644
index 000000000..d6767f491
--- /dev/null
+++ b/advertising/08_IM_mageia.pl
@@ -0,0 +1 @@
+$title = N("For developers!");
diff --git a/advertising/08_IM_mageia.png b/advertising/08_IM_mageia.png
new file mode 100644
index 000000000..3a2dc4624
--- /dev/null
+++ b/advertising/08_IM_mageia.png
Binary files differ
diff --git a/advertising/09_IM_mageia.pl b/advertising/09_IM_mageia.pl
new file mode 100644
index 000000000..55e63f502
--- /dev/null
+++ b/advertising/09_IM_mageia.pl
@@ -0,0 +1 @@
+$title = N("Thank you!");
diff --git a/advertising/09_IM_mageia.png b/advertising/09_IM_mageia.png
new file mode 100644
index 000000000..e80d49a11
--- /dev/null
+++ b/advertising/09_IM_mageia.png
Binary files differ
diff --git a/advertising/10_IM_mageia.pl b/advertising/10_IM_mageia.pl
new file mode 100644
index 000000000..a75b16b5f
--- /dev/null
+++ b/advertising/10_IM_mageia.pl
@@ -0,0 +1 @@
+$title = N("Be Free!");
diff --git a/advertising/10_IM_mageia.png b/advertising/10_IM_mageia.png
new file mode 100644
index 000000000..ef1261f43
--- /dev/null
+++ b/advertising/10_IM_mageia.png
Binary files differ
diff --git a/advertising/Makefile b/advertising/Makefile
index 57f495fa6..d897938b8 100644
--- a/advertising/Makefile
+++ b/advertising/Makefile
@@ -1,4 +1,4 @@
-VERSION = 0.6
+VERSION = 9.1
PRODUCT = drakx-installer-advertising
THEME = pwp
@@ -12,10 +12,7 @@ install:
install -m644 list-$(THEME) $(DESTDIR)/list
tar:
- rm -rf $(PRODUCT)*.tar* $(PRODUCT)-$(VERSION)
- svn export -q . $(PRODUCT)-$(VERSION)
- tar cfj $(PRODUCT)-$(VERSION).tar.bz2 $(PRODUCT)-$(VERSION)
- rm -rf $(PRODUCT)-$(VERSION)
+ git archive --prefix $(PRODUCT)-$(VERSION)/ HEAD | xz -9 > $(PRODUCT)-$(VERSION).tar.xz
clean:
find . -name "*~" -o -name ".#*" | xargs rm -f
diff --git a/advertising/NEWS b/advertising/NEWS
index bdf12203d..415fbe9ee 100644
--- a/advertising/NEWS
+++ b/advertising/NEWS
@@ -1,3 +1,75 @@
+Version 9.1 - 24 June 2023
+
+- Fix typos in slideshow (developer and Languages) (mga#31872)
+
+Version 9 - 17 April 2023
+
+- Mageia 9 artwork
+
+Version 8 - 11 January 2021
+
+- Mageia 8 artwork
+
+Version 7 - 4 May 2019
+
+- Mageia 7
+
+Version 6 - 8 May 2017
+
+- Mageia 6
+
+Version 5.1 - 18 December 2014
+
+- Fix badly exported 03_IM_mageia.png
+
+Version 5 - 17 December 2014
+
+- Mageia 5
+
+Version 4 - 8 January 2014
+
+- Mageia 4
+
+Version 3 - 6 april 2013
+
+- Mageia 3
+
+Version 2 - 25 april 2011
+
+- make it more generic for Mageia 2
+
+Version 1 - 12 March 2011
+
+- new advertising for Mageia 1
+
+Version 2011.0 - 13 Oct 2010
+
+- bump version
+
+Version 2010.1 - 02 May 2010
+
+- 2010.1 images
+
+Version 2010.0 - 28 October 2009
+
+- 2010.0 images
+
+Version 2009.1 - 7 March 2009
+
+- 2009.1 images
+
+Version 2009.0 - 11 September 2008
+
+- 2009.0 images
+
+Version 2008.1.1 - 21 March 2008
+
+- 2008.1 titles
+
+Version 2008.1 - 26 February 2008
+
+- 2008.1 images
+
Version 0.6 - 18 September 2007, by Pascal "Pixel" Rigaux
- really add titles for 2008.0 adversting
diff --git a/advertising/list-dis b/advertising/list-dis
deleted file mode 100644
index 3ca560e8d..000000000
--- a/advertising/list-dis
+++ /dev/null
@@ -1,14 +0,0 @@
-LinDVD.png
-TRANSGAMING-CEDEGA.png
-FLATOUT.png
-Kaspersky.png
-Skype.png
-IM_ONE.png
-IM_3D.png
-IM_THEME.png
-IM-GWENVIEW.png
-IM_RPMDRAKE.png
-IM_web2.png
-IM_SERVICES.png
-IM_GAMME.png
-IM_REGISTER.png
diff --git a/advertising/list-dwd b/advertising/list-dwd
deleted file mode 100644
index d6d6cbc9d..000000000
--- a/advertising/list-dwd
+++ /dev/null
@@ -1,14 +0,0 @@
-LinDVD.png
-TRANSGAMING-CEDEGA.png
-FLATOUT.png
-Kaspersky.png
-Skype.png
-ARKEIA_EN.png
-IM_3D.png
-IM_THEME.png
-VPN.png
-IM_RPMDRAKE.png
-IM_web2.png
-IM_SERVICES.png
-IM_GAMME.png
-IM_REGISTER.png
diff --git a/advertising/list-ppp b/advertising/list-ppp
deleted file mode 100644
index 862cd4833..000000000
--- a/advertising/list-ppp
+++ /dev/null
@@ -1,13 +0,0 @@
-bitdefender.png
-ARKEIA_EN.png
-VPN.png
-IM_INVICTUS.png
-IM_RPMDRAKE.png
-IM_CRM.png
-IM_CMSJOOMLA.png
-IM_web2.png
-IM_THEME.png
-IM_3D.png
-IM_SERVICES.png
-IM_GAMME.png
-IM_REGISTER.png
diff --git a/advertising/list-pwp b/advertising/list-pwp
index 9242baa03..65540338b 100644
--- a/advertising/list-pwp
+++ b/advertising/list-pwp
@@ -1,6 +1,10 @@
-01IM_RANGE-a.png
-02IM_MIGRATION.png
-03IM_ONE.png
-04IM_NETWORK.png
-05IM_PWP.png
-06IM_FLASH.png
+01_IM_mageia.png
+02_IM_mageia.png
+03_IM_mageia.png
+04_IM_mageia.png
+05_IM_mageia.png
+06_IM_mageia.png
+07_IM_mageia.png
+08_IM_mageia.png
+09_IM_mageia.png
+10_IM_mageia.png
diff --git a/docs/HACKING b/docs/HACKING
deleted file mode 100644
index cf6d2e3b6..000000000
--- a/docs/HACKING
+++ /dev/null
@@ -1,126 +0,0 @@
--=-=--
-DrakX is a very big project, and it needs special setups to work.
-The purpose of this file is to explain how you can setup your box to make it
-compile and run.
--=-=--
-
-Beware, don't try this on a production machine with important data.
-
-
---------------------------------------------------------------------------
-Sources installation:
-
-First grab the gi.tar.bz2 archive and untar it in your home directory, for
-example from DrakX-*.src.rpm on your Mandrakelinux distribution.
-
-Fix a few things:
-% find gi -name "*/CVS/root/*" | xargs perl -pi -e 's/prigaux/anoncvs/'
-
-Then, log yourself into the cvs:
-% export CVS_RSH=ssh
-% export CVSROOT=:ext:anoncvs@cvs.mandrakesoft.com:/cooker
-% cvs checkout gi
- (the passwd is: 'cvs')
-
-And update the gi package:
-% cvs update -P -d gi
-
-
---------------------------------------------------------------------------
-Preparing the compilation process:
-
-(1) target directory
-
-Create a top level directory called /export and give write permissions to
-the user/group that will be compiling DrakX. It is also suggested that you
-copy a recent Mandrakelinux CD in there. (You don't have to put have all
-the RPMS...) ; you'll need roughly 1.5 Gbytes for a full install. (It is
-possible to not have a copy of Mandrakelinux there, if all you desire is to
-compile gi)
-
-
-(2) support directories
-
-You will need to create a top level /RPMS directory. This directory needs
-to be populated with the following RPMS:
-locales-ja locales-ko locales-zh
-
-GI needs to be informed about which kernel(s) is/are to be used.
-Most of the time, no manual install is needed. Just be sure to
-have the kernel(s) in /RPMS, and typing make later on will
-extract the package(s) and build stuff from it.
-
-FYI, for each kernel, directories will be populated as follows:
-
-gi/kernel/all.kernels/2.6.0
- special files containing
- - vmlinuz
- - modules.dep, modules.alias, modules for stage1 (*.tar)
-
-
-(3) required rpm packages
-
-You need quite a number of rpm packages installed on your system
-to build gi properly. You should install this package to pull the
-requirements:
- task-drakx-devel
-
-You may need a few others I forgot to mention. If the compilation fails, try
-to understand the message and install any necessary remaining package.
-
-
-(4)
-
-NEVER build or run Drakx as root. Install sudo and setup the following
-permissions in /etc/sudoers:
-
-user ALL=(root)
-NOPASSWD:/usr/bin/patch,NOPASSWD:/bin/rpm,NOPASSWD:/bin/mount,NOPASSWD:/bin/cp,NOPASSWD:/bin/umount,NOPASSWD:/usr/bin/install,NOPASSWD:/bin/rm,NOPASSWD:/bin/mv,NOPASSWD:/bin/tar,NOPASSWD:/bin/cpio,NOPASSWD:/bin/chown,NOPASSWD:/bin/mkdir,NOPASSWD:/usr/bin/strip,NOPASSWD:/bin/mknod
-
-
-(5)
-
-pray
-
-[gc@obiwan ~/cvs/gi] make
-
-
----------------------------------------------------------------------------
-The comments written with #- are automatically stripped out at install.
-
-
----------------------------------------------------------------------------
-testing all:
-
- go to the perl-install directory and execute ./install2 --testing
-
- NEVER execute DrakX as root! You might need to allow all users
- to read the block devices of your hard-disks, though (chmod a+w
- /dev/hda* for example).
-
-
-
-Here is how I (dams) made it work on my computer.
--------------------------------------------------
-
-- get the sources
-- install the librairies needed included newt-devel gtk+-devel popt-devel popt gtk-engines
-- cd path/to/gi
-- make
-- mkdir /usr/share/gtk
-- ln -s path/to/gi/perl-install/share/themes /usr/share/gtk
-- ln -s path/to/gi/perl-install/share/step-* /usr/share
-- ln -s path/to/gi/perl-install/share/help.xpm /usr/share
-- ln -s path/to/gi/perl-install/share/isdn* /etc/sysconfdir/network-scripts
-- have a cd architecture linked on /export
-- ln -s /export /tmp/rhimage
-- export PERL_INSTALL_TEST=1
-- cd path/to/gi/perl-install
-- gendistrib --noclean --distrib /export
-- ./install2 in root (dangerous) or chmod a+r /dev/hd* and ./install2 in user
-
-
-
-address all bugreports to dave@null.com
-
-info has been added by sunny@opencurve.org
diff --git a/docs/Partition-ends-after-end-of-disk.txt b/docs/Partition-ends-after-end-of-disk.txt
index 3da57d561..037fe9106 100644
--- a/docs/Partition-ends-after-end-of-disk.txt
+++ b/docs/Partition-ends-after-end-of-disk.txt
@@ -1,6 +1,6 @@
Cylinder/Head/Size Hell Is Not Over
- pixel@mandrakesoft.com
+ pixel
$Date$
diff --git a/docs/README b/docs/README
index 67179a981..02bc5d351 100644
--- a/docs/README
+++ b/docs/README
@@ -1,23 +1,18 @@
-Well here is a little description of what DrakX needs to work in comparison
-to the RH newt install.
+Well here is a little description of what DrakX needs to work
********************************************************************************
-* CVS **************************************************************************
+* VCS **************************************************************************
********************************************************************************
Like all good free software, DrakX is in SVN :)
-You can access it at http://svn.mandriva.com/cgi-bin/viewvc.cgi/soft/drakx/trunk/
+You can access it at http://svnweb.mageia.org/soft/drakx/trunk/
or via
-svn co http://svn.mandriva.com/svn/soft/drakx/trunk drakx
+svn co svn+ssh://svn.mageia.org/svn/soft/drakx/trunk
-This is only read-only access. If you want more, tell me (pixel@mandriva.com)
-
-Please note that redoing *all* the stuff is not for the faint of heart. I myself
-sometimes wonder what the whole make does :-%
-Instead, changing some .pm files is quite easy (nice interpreted language)
+This is only read-only access. If you want more, tell me (pixel)
********************************************************************************
* Making your custom install ***************************************************
@@ -25,22 +20,12 @@ Instead, changing some .pm files is quite easy (nice interpreted language)
If you have your own rpms you want to add, or make your own updated cdrom, you
just have to issue:
-% gendistrib --noclean --distrib <DIRS>
-
-Where <DIRS> is the root of all the media that the install will see, this first
-one is the main one :
+% gendistrib --noclean --distrib <DIR>
-(1) network or 1-cdrom installs
- DIRS == the root directory of the Distribution
+Where <DIR> is the root of all the distribution.
-(2) multi-cdrom install
- DIRS == the root directories of all the media that the install will see
-
-``gendistrib'' will scan the file media/media_info/hdlists in the main root
-directory (the first one in DIRS) to search for all media used. Typically you
-use media/main for RPM packages repository.
-For multi-cd, please use media/main or media/foo, etc.
-For one CD or a network/hd volume, please use media/main.
+``gendistrib'' will scan the file media/media_info/media.cfg to search for all
+media used. Typically you use media/main for RPM packages repository.
Optionnally, you can modify ``media/media_info/rpmsrate''; this file manages
the relative importance of the files, and thus their installation or not.
@@ -60,12 +45,12 @@ media/media_info/media.cfg
cf MDV::Distribconf(3)
media/media_info/hdlist*.cz
- table of rpm's headers, referred by ``hdlists''
+ table of rpm's headers, referred by ``media.cfg''
their contents can be listed using ``packdrake -l <hdlist_file>'' or
or ``parsehdlist <hdlist_file>''.
! Need to be remade when media/main changes (with ``gendistrib'') !
-media/media_info/compssUsers
+media/media_info/compssUsers.pl
media/media_info/rpmsrate
ranks and classify packages, so that the installer will know which
@@ -74,49 +59,40 @@ media/media_info/rpmsrate
<level> <packages>
where <intern_group> is a symbolic name used in media/media_info/compssUsers* files,
and <level> defines importance level as described below :
- 5 must have
+ 5 mandatory
4 important
- 3 very nice
+ 3 interesting
2 nice
1 maybe
- installer selects packages for level 4 (important) and 5 (must have).
+ installer selects packages for level 4 (important) and 5 (mandatory).
packages in other level (3, 2, 1) can only be selected using
individual package selection.
-install/stage2/live
- live system used on certain installs. See ``Ramdisk or not'' below for
- more.
-
-install/stage2/mdkinst.clp
+install/stage2/mdkinst.sqfs
for the compressed loopback of install.
generated from install/stage2/live tree using misc/mdkinst_stage2_tool
-install/stage2/rescue.clp
+install/stage2/rescue.sqfs
rescue ramdisk. create_compressed_fs iso file
this is the ramdisk loaded when typing rescue on boot prompt.
install/images/all.img
- USB image enabling any install
+ fat16 image to dd on a partition (hint: sda1)
install/images/boot.iso
iso image to burn enabling any install (cdrom/hd/nfs/ftp)
- Boot from cdrom:
- - boot.iso : iso image to burn
-
- Boot from hd (esp. usb key):
- - all.img : fat16 image to dd on a partition (hint: sda1)
+ To boot from cdrom, use boot.iso
+ To boot from network, use isolinux/alt0/all.rdz + vmlinuz via pxe
+ To boot from hd (esp. usb key), use all.img.
+
+ NB for usb boot:
- it seems some bioses don't use the code on MBR (sda),
or at least skip it when it's blanked
(eg: "dd if=/dev/zero of=/dev/sda bs=1 count=446")
- some bioses need it. I had some luck using
dd if=/usr/lib/extipl/aldebaran.bin of=/dev/sda
(install package extipl first)
-
- Boot from network:
- - all.rdz + vmlinuz via pxe
-
- dd for windows: http://uranus.it.swin.edu.au/~jn/linux/rawwrite/dd.htm
********************************************************************************
* logs *************************************************************************
@@ -151,26 +127,11 @@ the auto-partitionning partitions can be changed, the default user class can be
set to developer (!)...
********************************************************************************
-* po translation files *********************************************************
-********************************************************************************
-DrakX uses .po files for its translation. A script takes the different
-strings out of the .pm files. It generates the DrakX.pot file which contains
-all the english strings to translate.
-
-********************************************************************************
-* PCMCIA install ***************************************************************
-********************************************************************************
-If the media you use to install is a pcmcia device, use the pcmcia boot disk.
-
-********************************************************************************
* modules **********************************************************************
********************************************************************************
-Modules can be found in /modules.
-
To manually install a module during install, switch to console #2
and type "modprobe <modulename>". The modprobe program is a perl
-wrapper around /usr/bin/insmod. It uses the dependencies found in
-/modules/modules.dep (stage1).
+wrapper around /usr/bin/insmod.
********************************************************************************
* Making screenshots ***********************************************************
diff --git a/docs/README.devel b/docs/README.devel
index 989946de9..70d2b6285 100644
--- a/docs/README.devel
+++ b/docs/README.devel
@@ -12,12 +12,12 @@ entry point for stage2 is /usr/bin/runinstall2 which is typically a link to
install2::main with @ARGV.
install2::main parse command line arguments, prepare installation, find the right
-install_interactive class (take a look at gi/docs/object_class.fig) according to
+install/interactive class (take a look at gi/docs/object_class.fig) according to
command line, memory available and if the interactive chosen is initializing
correctly, else it will try a less-demanding interactive object.
Once done, $::o is set to this install & interactive object and main runs the
various step of install2 defined in $o->{steps}, starting with $o->{steps}{first}
-and iterating with method install_any::getNextStep().
+and iterating with method install::any::getNextStep().
while running step, it trap any errors that may arise and use perl exception to
change step.
@@ -28,35 +28,35 @@ Here is a brief description of what each modules of DrakX is doing.
install2: main module of DrakX as described above, main loop execution of DrakX.
-install_steps: generic installation module containing steps definition, all steps
+install/steps: generic installation module containing steps definition, all steps
should always be defined here as some methods may be used on automatic mode.
there is no interactivity available. typically are defined base operation for
configuring each step according to $o.
-install_steps_interactive: generic installation module with generic interative
+install/steps_interactive: generic installation module with generic interative
methods. typically are found all interactive code of DrakX for each steps.
-install_steps_auto_install: implementation installation module without interactive
+install/steps_auto_install: implementation installation module without interactive
methods to match auto_install mode. this is the simplest as almost no method are
- redefined (inherit module install_steps only, compared to other implementation
+ redefined (inherit module install/steps only, compared to other implementation
modules described below).
-install_steps_stdio: implementation installation module with interactive stdio
- methods to match stdio mode. inherit modules install_steps_interactive and
+install/steps_stdio: implementation installation module with interactive stdio
+ methods to match stdio mode. inherit modules install/steps_interactive and
interactive_stdio.
-install_steps_newt: implementation installation module with interactive newt
- methods to match newt mode. inherit modules install_steps_interactive and
+install/steps_newt: implementation installation module with interactive newt
+ methods to match newt mode. inherit modules install/steps_interactive and
interactive_newt.
-install_steps_gtk: implementation installation module with interactive gtk
- methods to match gtk mode. inherit modules install_steps_interactive and
+install/steps_gtk: implementation installation module with interactive gtk
+ methods to match gtk mode. inherit modules install/steps_interactive and
interactive_gtk.
-install_any: contains various methods using generic interactive interface but
+install/any: contains various methods using generic interactive interface but
not used by standalone tools.
-install_gtk: contains various methods using gtk interface but not used by
+install/gtk: contains various methods using gtk interface but not used by
standalone tools.
interactive_stdio: implementation methods for interactivity in stdio mode.
@@ -71,7 +71,7 @@ interactive_gtk: implementation methods for interactivity in gtk mode.
my_gtk: basic gtk access methods.
any: contains various methods using generic interactive interface. to compare
- against install_any module as this one is available for standalone tools.
+ against install/any module as this one is available for standalone tools.
class_discard: simple module that implement every methods undefined to return
nothing. this trick is used to ensure no undefined method can arise when using
@@ -237,14 +237,14 @@ the 0, 1, '' means not "redoable", "skip on error", "don't hide"
sub selectAlawindows { $o->selectAlawindows }
-3. add your function selectAlawindows in install_steps_interactive.pm
+3. add your function selectAlawindows in install/steps_interactive.pm
sub selectAlawindows {
my ($o) = @_;
$o->{alawindows} = $o->ask_yesorno('', _("Throw everything away as windobe does?"), 1);
}
-4. add your function selectAlawindows in install_steps.pm (not needed in that
+4. add your function selectAlawindows in install/steps.pm (not needed in that
case, except for auto_install)
sub selectAlawindows {}
diff --git a/docs/README.pxe b/docs/README.pxe
index 2ddd205fe..e60aa9ecf 100644
--- a/docs/README.pxe
+++ b/docs/README.pxe
@@ -13,7 +13,7 @@ You can install tftp-server and dhcp-server package from the Mandrake
distribution for example.
On the server machine at 192.168.2.1, you will find a "/etc/dhcpd.conf" sample
-file written by Florin Grad <florin@mandrakesoft.com>, where "mydomain.com" is
+file written by Florin Grad <florin>, where "mydomain.com" is
assumed to be your domain name, and 192.168.1.1 a name server. All install are
done on subnet 192.168.2.0.
diff --git a/docs/SHORTCUTS b/docs/SHORTCUTS
index 93a7133db..0a0d6e0ab 100644
--- a/docs/SHORTCUTS
+++ b/docs/SHORTCUTS
@@ -3,8 +3,6 @@ main shortcuts
F1 -> help
F2 -> take a screenshot
-F11 -> previous step
-F12 -> next (reachable) step
********************************************************************************
diskdrake
diff --git a/docs/drakfont/drakfont.tex b/docs/drakfont/drakfont.tex
index bbc936e5b..035adf3a9 100644
--- a/docs/drakfont/drakfont.tex
+++ b/docs/drakfont/drakfont.tex
@@ -48,7 +48,7 @@
%\end{center}
%\end{figure}
-\author{Dupont Sebastien \\ sdupont@mandrakesoft.com}
+\author{Dupont Sebastien \\ sdupont}
\date{05/10/2001}
\pagestyle{myheadings}
\markright{\scriptsize \trtitle}
diff --git a/docs/ka_method/Makefile b/docs/ka_method/Makefile
new file mode 100644
index 000000000..346475433
--- /dev/null
+++ b/docs/ka_method/Makefile
@@ -0,0 +1,59 @@
+#--------- HTML TARGET ---------
+WWW_PATH=html/
+
+#-------- PDF TARGET --------------
+DSL=/usr/share/sgml/docbook/utils-0.6.??/docbook-utils.dsl
+#CATALOG=/etc/sgml/xml-docbook-4.1.2.cat
+CATALOG=/etc/sgml/catalog
+
+#-------- ALL TARGETS --------------
+XSL_FILE=oneduplication.xsl
+BASE=doc-duplication
+XML_FILE=${BASE}.xml
+
+#----------- ----------------
+DSSSL_JADETEX=/usr/share/sgml/docbook/dsssl-stylesheets/print/docbook.dsl
+XSL_JADETEX=/usr/share/sgml/docbook/xsl-stylesheets/xhtml/docbook.xsl
+JADE=openjade
+
+#------------ MAIN ----------------
+all: clean prepare html_doc
+
+prepare:
+ mkdir -p ${WWW_PATH}
+ rm -rf ${WWW_PATH}*.html
+
+clean:
+ rm -rf *log
+ rm -rf ${BASE}.pdf ${BASE}.tex ${BASE}.fot
+ rm -rf *~
+ rm -rf *.aux
+ rm -rf *.out
+ rm -rf *.pdf
+pdf_doc:
+ db2pdf -c ${CATALOG} -d ${DSL} ${XML_FILE} 2>&1
+
+pdf_noprint:
+ make clean
+ DSSSL_JADETEX=docbook-jadetex.dsssl make duplication.pdf DSSSL_JADETEX=docbook-jadetex.dsssl
+
+html_doc:
+ xsltproc ${XSL_FILE} ${XML_FILE}
+ mv -f index.html ${WWW_PATH}/duplication.html
+ cp -v styleguibo.css ${WWW_PATH}
+
+%.tex: %.xml $(DSSSL_JADETEX)
+ $(JADE) -t tex -d $(DSSSL_JADETEX) -c /usr/share/sgml/openjade/catalog \
+ -o $@ /usr/share/sgml/openjade/pubtext/xml.dcl $<
+
+%.pdf %.out %.aux %.log: %.tex
+ if [ -e prior.aux ]; then cp -pf prior.aux pprior.aux; fi
+ f=$(shell basename $< .tex).aux; if [ -e $$f ]; then cp -pf $$f prior.aux; fi
+ -pdfjadetex $< > pdfjadetex.log
+ if ! cmp $(shell basename $< .tex).aux prior.aux > /dev/null 2>&1 && \
+ ! cmp $(shell basename $< .tex).aux pprior.aux > /dev/null 2>&1 && \
+ expr $(MAKELEVEL) '<' 4 > /dev/null; then \
+ rm -f $@; \
+ echo "Found undefined references, compiling again..."; \
+ $(MAKE) $@ DSSSL_JADETEX=docbook-jadetex.dsssl; \
+ fi
diff --git a/docs/ka_method/doc-duplication.xml b/docs/ka_method/doc-duplication.xml
new file mode 100644
index 000000000..8196835fb
--- /dev/null
+++ b/docs/ka_method/doc-duplication.xml
@@ -0,0 +1,1487 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+ <article lang="en">
+ <title>Clone a node/computer using KA method</title>
+ <sect1><title>CLONING WILL ERASE ALL CLIENT NODES DATA !</title><para>!! USE WITH CARE !! </para></sect1>
+ <sect1>
+ <title>Clone a computer over the network</title>
+ <para>
+ Goal of duplication is to easily deploy a computer over network without taking care of numbers of computer. In this documentation, we call golden node the node we want to clone. We can duplicate SCSI or IDE hard drive, and duplication support multiple filesystem (reiserfs, ext2, ext3, ext4, xfs, jfs).
+ This method came from a very old project called CLIC, and was used under IGGI project, all Mandrake Clustering products, and now it is used under XtreemOS project. Now it should be available in 2010 spring, and all futur product.
+ </para>
+ <para>WARNING: all data on client nodes will be ERASED ! We duplicate partitions of HDD's golden node, and the process will do an fdisk command on the client node, so ALL YOUR DATA will be erased on client nodes.</para>
+ <sect2>
+ <title>KA method</title>
+ <para>
+ With KA method you can quickly duplicate a node using a <emphasis role="bold">desc</emphasis>
+ file describing partitions. KA method only duplicate data on partitions, so if you have 80go HDD disk, and
+ only 10go on it, KA only duplicates 10go, and not the whole disk. KA method doesn't not support RAID software.
+ </para>
+ <para>
+ Drawbacks:
+ </para>
+ <para>
+ <itemizedlist>
+ <listitem><para>KA method doesn't support RAID software (use dolly to do that)</para></listitem>
+ <listitem><para>all data on client nodes are erased</para></listitem>
+ <listitem><para>you need a PXE, DHDCP and TFTP server</para></listitem>
+ <listitem><para>you must re-create same partition table as the golden node (even if size can differ)</para></listitem>
+ <listitem><para>even if it has been tested, it's still an experimental method</para></listitem>
+ <listitem><para>cloning script are old, and need a full rewrite</para></listitem>
+ <listitem><para>now it's only works with the Mageia installer (need to patch it to support a KA method)</para></listitem>
+ <listitem><para>if a node crash while doing a duplication, the duplication process stop (or became very unstable)</para></listitem>
+ <listitem><para>using fdisk to erase and re-format the HDD is not a good way to proceed</para></listitem>
+ <listitem><para>UUID support is not really done (fstab use old /dec/sdX)</para></listitem>
+ <listitem><para>you can only clone Linux filesystems (if you want to duplicate another kinf of FS, it's up to you to modify the scripts)</para></listitem>
+ <listitem><para>of course various other things !</para></listitem>
+ </itemizedlist>
+ </para>
+ </sect2>
+ <sect2>
+ <title>HOW it works</title>
+ <sect3>
+ <title>Steps</title>
+ <para>
+ The clone process works in three steps
+ </para>
+ <itemizedlist>
+ <listitem><para><emphasis role="bold">PXE boot to retrieve stage1</emphasis>: the computer boot on PXE mode, retrieve <emphasis role="bold">vmlinuz</emphasis> and an <emphasis role="bold">initrd</emphasis> image. The computer is in <emphasis role="bold">stage1</emphasis> mode, and is able to get the stage2 throug KA. Network is up.</para></listitem>
+ <listitem><para><emphasis role="bold">get stage2</emphasis>: the computer gets the stage2 with the KA method. The <emphasis role="bold">stage2</emphasis> contains all necessary tools to recognize your hardware (the most important things is to detect your HDD and your network card), and all necessary tools/scripts to finalize the cloning process.</para></listitem>
+ <listitem><para><emphasis role="bold">Duplication process</emphasis>: the computer auto-probes needed modules to be able to access the HDD. A basic log server is launched on the client node to be able to run command and get status of the KA duplication process. The computer reconfigure the modprobe.conf and restore the booloader (grub or lilo)</para></listitem>
+ </itemizedlist>
+ </sect3>
+ <sect3>
+ <title>Needed files</title>
+ <para>
+ All needed files are available in Mageia cooker.
+ </para>
+ <para>
+ <itemizedlist>
+ <listitem><para><emphasis role="bold">install/stage2/rescue.sqfs</emphasis>: this is the stage2 file with all needed files to detect and probe modules, and launch the third step of the duplication process. This file will be used on the golden node.</para></listitem>
+ <listitem><para><emphasis role="bold">isolinux/alt0/vmlinuz</emphasis>: linux kernel, needed in the <emphasis role="bold">/var/lib/tftpboot/X86PC/linux/images/</emphasis> directory of the PXE server</para></listitem>
+ <listitem><para><emphasis role="bold">isolinux/alt0/all.rdz</emphasis>: stage1 and all needed modules and tools.</para></listitem>
+ </itemizedlist>
+ </para>
+ </sect3>
+ </sect2>
+ <sect2>
+ <title>Step 1: PXE, TFTP, DHCPD services</title>
+ <para>
+ To easily clone a computer node, we use PXE technology to boot a <emphasis role="bold">kernel</emphasis>, and an <emphasis role="bold">initrd</emphasis> image wich contains all needed modules for network and media storage. Documentation about PXE can be found here: <ulink url="http://people.mandriva.com/~aginies/doc/pxe/">PXE doc</ulink>. Please, keep in mind setting such services can <emphasis role="bold">DISTURB</emphasis> your current network architecture.
+ </para>
+ <sect3>
+ <title>PXE parameters on server</title>
+ <para>
+ Mageia installer supports various methods to install a computer. With PXE configuration file you can specify wich method you want to use to install your node, or add a specific option at boot prompt. Edit your default PXE configuration file to add your custom entry (<emphasis role="bold">/var/lib/tftpboot/X86PC/linux/pxelinux.cfg/default</emphasis>).
+ </para>
+ <para>
+ <screen>
+PROMPT 1
+DEFAULT local
+DISPLAY messages
+TIMEOUT 50
+F1 help.txt
+
+label local
+ LOCALBOOT 0
+
+label kamethod
+ KERNEL images/vmlinuz
+ APPEND initrd=images/all.rdz ramdisk_size=64000 vga=788 \
+ automatic=method:ka,interface:eth0,network:dhcp root=/dev/ram3 rw kamethod</screen>
+ </para>
+ <para>
+ At boot prompt no you can boot:
+ </para>
+ <para>
+ <itemizedlist>
+ <listitem><para><emphasis role="bold">DEFAULT local</emphasis>: default boot will be local one, change it with the name of a <emphasis role="bold">LABEL</emphasis></para></listitem>
+ <listitem><para><emphasis role="bold">local</emphasis>: boot local</para></listitem>
+ <listitem><para><emphasis role="bold">kamethod</emphasis>: automatic mode, get stage2 through <emphasis role="bold">KA</emphasis>. Network interface is set to eth0. Auto setup the network with DHCP, and use the KA technology to launch the replication method.</para></listitem>
+ </itemizedlist>
+ </para>
+ </sect3>
+ <sect3>
+ <title>TFTP server</title>
+ <para>
+ TFTP server should be activated in <emphasis role="bold">/etc/xinetd.d/tftp</emphasis> file, and the <emphasis role="bold">xinetd</emphasis> service started.
+ </para>
+ <para>
+ <screen>
+service tftp
+{
+ disable= no
+ socket_type= dgram
+ protocol= udp
+ wait= yes
+ user= root
+ server= /usr/sbin/in.tftpd
+ server_args = -s /var/lib/tftpboot
+ per_source= 11
+ cps= 100 2
+ flags= IPv4
+}</screen>
+ </para>
+ </sect3>
+ <sect3>
+ <title>PXE configuration</title>
+ <para>
+<programlisting><![CDATA[
+# which interface to use
+interface=eth0
+default_address=IPADDR_PXE
+
+# the multicast ip address to listen on
+multicast_address=224.0.1.2
+
+# mtftp info
+mtftp_address=IPADDR_TFTP
+mtftp_client_port=1758
+mtftp_server_port=1759
+
+# the port to listen on
+listen_port=4011
+
+# enable multicast?
+use_multicast=1
+
+# enable broadcast?
+use_broadcast=0
+
+# user prompt
+prompt=Press F8 to view menu ...
+prompt_timeout=2
+
+# what services to provide, priority in ordering
+# CSA = Client System Architecture
+# service=<CSA>,<min layer>,<max layer>,<basename>,<menu entry>
+service=X86PC,0,2,linux,Mageia x86
+service=IA64PC,0,2,linux,Mageia IA64
+service=X86PC,0,0,local,Local boot
+
+# tftpd base dir
+tftpdbase=/
+
+# domain=guibland.com
+domain=
+]]></programlisting>
+ </para>
+ </sect3>
+ <sect3>
+ <title>DHCPD configuration</title>
+ <para>
+ IE of an <emphasis role="bold">/etc/dhcpd.conf</emphasis> configuration file. Change <emphasis role="bold">IPADDR_TFTP</emphasis> with the IP address of the TFTP serrver, and the <emphasis role="bold">NET</emphasis> value. Don't forget to adjust the <emphasis role="bold">domain-name</emphasis> and the <emphasis role="bold">domain-name-servers</emphasis>.
+ </para>
+ <para>
+ <screen>
+ddns-update-style none;
+allow booting;
+allow bootp;
+
+authoritative;
+
+# Definition of PXE-specific options
+# Code 1: Multicast IP address of bootfile
+# Code 2: UDP port that client should monitor for MTFTP responses
+# Code 3: UDP port that MTFTP servers are using to listen for MTFTP requests
+# Code 4: Number of secondes a client must listen for activity before trying
+# to start a new MTFTP transfer
+# Code 5: Number of secondes a client must listen before trying to restart
+# a MTFTP transfer
+
+# define Option for the PXE class
+option space PXE;
+option PXE.mtftp-ip code 1 = ip-address;
+option PXE.mtftp-cport code 2 = unsigned integer 16;
+option PXE.mtftp-sport code 3 = unsigned integer 16;
+option PXE.mtftp-tmout code 4 = unsigned integer 8;
+option PXE.mtftp-delay code 5 = unsigned integer 8;
+option PXE.discovery-control code 6 = unsigned integer 8;
+option PXE.discovery-mcast-addr code 7 = ip-address;
+
+#Define options for pxelinux
+option space pxelinux;
+option pxelinux.magic code 208 = string;
+option pxelinux.configfile code 209 = text;
+option pxelinux.pathprefix code 210 = text;
+option pxelinux.reboottime code 211 = unsigned integer 32;
+site-option-space "pxelinux";
+
+option pxelinux.magic f1:00:74:7e;
+option pxelinux.reboottime 30;
+
+#Class that determine the options for Etherboot 5.x requests
+class "Etherboot" {
+#if The vendor-class-identifier equal Etherboot-5.0
+match if substring (option vendor-class-identifier, 0, 13) = "Etherboot-5.0";
+# filename define the file retrieve by the client, there nbgrub
+# our tftp is chrooted so is just the path to the file
+filename "/etherboot/nbgrub";
+#Used by etherboot to detect a valid pxe dhcp server
+option vendor-encapsulated-options 3c:09:45:74:68:65:72:62:6f:6f:74:ff;
+# Set the "vendor-class-identifier" field to "PXEClient" in dhcp answer
+# if this field is not set the pxe client will ignore the answer !
+option vendor-class-identifier "Etherboot-5.0";
+vendor-option-space PXE;
+option PXE.mtftp-ip 0.0.0.0;
+# IP of you TFTP server
+next-server IPADDR_TFTP;
+}
+
+# create the Class PXE
+class "PXE" {
+# if the "vendor-class-identifier" is set to "PXEClient" in the client dhcp request
+match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
+filename "/X86PC/linux/linux.0";
+option vendor-class-identifier "PXEClient";
+vendor-option-space PXE;
+option PXE.mtftp-ip 0.0.0.0;
+next-server IPADDR_TFTP;
+}
+
+#host node20 {
+# hardware ethernet 00:40:CA:8C:B6:E9;
+# fixed-address node20;
+#}
+
+subnet NET.0 netmask 255.255.255.0 {
+ option subnet-mask 255.255.255.0;
+ option routers IPADDR_GW;
+ default-lease-time 288000;
+ max-lease-time 864000;
+ option domain-name "guibland.com";
+ option domain-name-servers IPADDR_DNS;
+ next-server IPADDR_TFTP;
+ pool {
+ range NET.30 NET.40;
+ }
+}</screen>
+ </para>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1>
+ <title>Setup a node as a golden node</title>
+ <sect2>
+ <title>The rescue.sqfs file</title>
+ <para>
+ You need the rescue disk (wich contains the <emphasis role="bold">/ka</emphasis> directory),
+ Just extract this file, and copy all directory in <emphasis role="bold">/mnt/ka</emphasis>.
+ </para>
+ <para>
+ <screen>
+[root@guibpiv ~]# mkdir /mnt/ka
+[root@guibpiv ~]# cd /mnt/ka/
+[root@guibpiv ka]# unsquashfs rescue.sqfs
+[root@guibpiv ka]# mv squashfs-root/* .
+[root@guibpiv ka]# ls
+bin/ dev/ etc/ ka/ lib/ modules/ proc/ sbin/ squashfs-root/ tmp/ usr/ var/
+</screen>
+ </para>
+ <para>
+ Go in the <emphasis role="bold">/mnt/ka/ka</emphasis> directory, and see all new files available. All those files are needed to do a <emphasis role="bold">KA</emphasis> duplication process. We will explain now the rule of each of them. You can modify all them, those files will be copied in the directory <emphasis role="bold">/tmp/stage2</emphasis> of the client node of the duplication process (second step).
+ </para>
+ <sect3>
+ <title>ka-d.sh</title>
+ <para>
+ This is the master script to declare a node as a golden node. This script takes a lot of arguments. This script should be run
+ on the host wich have the <emphasis role="bold">/mnt/ka</emphasis> directory.
+<screen>
+ -h, --help : display this message
+ -n num : specify the number of (destination) nodes
+ -x dir : exclude directory
+ -X sdb|sdc : exclude sdb for the replication
+ -m drive : copy the master boot record (for windows) of this drive (not really tested yet)
+ -M drive file : use 'file' as master boot record (must be 446 bytes long) for the specified drive
+ -D partition : also copy partition 'partition'
+ -p drive pdesc : use 'pdesc' file as partition scheme (see doc) for the specified drive
+ -d delay : delay beteween the release of 2 clients (1/10 second)
+ -r 'grub|lilo' : choose the bootloader (you can add mkinitrd options)
+
+ ie: ka-d.sh -n 3 -p sda /tmp/desc -X 'sdb|sdc' -r 'grub --with=ata_piix --with=piix'</screen>
+ </para>
+ </sect3>
+ <sect3>
+ <title>replication.conf</title>
+ <para>
+ This file contains all variables needed by other scripts. It also tries to get information like IP address.
+ </para>
+ </sect3>
+ <sect3>
+ <title>fdisk_to_desc</title>
+ <para>
+ This script generate the description table of the hard drive disk in the <emphasis role="bold">/tmp/desc</emphasis> file.
+ This file must follow some rules: one line per partition, with two fields : type of partition and size in megabytes.
+ The type can be linux, swap, extended. Other types can be obtained by appending their hexadecimal number to 'type'.
+ For example linux is the same as type83. The size is either a number of megabytes, or the keyword fill (to take all
+ available space). The logical partitions must have the logical keyword. Do a <emphasis role="bold">man ka-d</emphasis> for more help.
+ </para>
+ </sect3>
+ <sect3>
+ <title>gen_modprobe_conf.pl</title>
+ <para>
+ This script creates a basic output like the content of the<emphasis role="bold">/etc/modprobe.conf</emphasis> file. Drawbacks
+ this file must be updated for each new modules available in the kernel (based on the <emphasis role="bold">kernel/list_modules.pm</emphasis> file).
+ </para>
+ </sect3>
+ <sect3>
+ <title>ka-d-client</title>
+ <para>
+ The <emphasis role="bold">ka-d-client</emphasis> binary file is used to get stage2 with the <emphasis role="bold">KA</emphasis> method, and after get the whole system. The important argument is the <emphasis role="bold">-s</emphasis> session name. A <emphasis role="bold">KA</emphasis> can only connect to a specific session (getstage2, kainstall ...). The code source is available in the ka-deploy SRPM.
+ </para>
+ </sect3>
+ <sect3>
+ <title>ka-d-server</title>
+ <para>
+ The <emphasis role="bold">ka-d-server</emphasis> binary file is used to be a <emphasis role="bold">KA</emphasis> golden node server. Like the <emphasis role="bold">ka-d-client</emphasis> the session arguments is an important parameter (<emphasis role="bold">-s session_name</emphasis>). The session name will be <emphasis role="bold">getstage2</emphasis> to retrieve the stage2 (after the PXE boot) and will be <emphasis role="bold">kainstall1</emphasis> at duplication process step. If you want to do more than one duplication process of nodes at the same time, you should synchronize the ka_sesion name between the server and the client. The code source is available in the ka-deploy SRPM.
+ </para>
+ </sect3>
+ <sect3>
+ <title>ka_replication.sh</title>
+ <para>
+ Script launched on the <emphasis role="bold">KA</emphasis> client (after getting stage2 and probing modules), to do the full process of the <emphasis role="bold">Ka</emphasis> duplication.
+ This script call other scripts to prepare the node (prepare_node.sh), configure the bootloader (make_initrd_grub or make_initrd_lilo).
+ </para>
+ </sect3>
+ <sect3>
+ <title>store_log.sh</title>
+ <para>
+ Basic script to store the log of the <emphasis role="bold">KA</emphasis> duplication process on an FTP server. Adjust to feet your need, and uncomment the line <emphasis role="bold">#store_log.sh</emphasis> in the <emphasis role="bold">/mnt/ka/ka/ka_replication.sh</emphasis> file.
+ </para>
+ </sect3>
+ <sect3>
+ <title>bootable_flag.sh</title>
+ <para>
+ Script to set bootable an HDD using fdisk. First arg must be the HDD device.
+ </para>
+ </sect3>
+ <sect3>
+ <title>make_initrd_grub</title>
+ <para>
+ Restore and reload the Grub bootloader in the <emphasis role="bold">/mnt/disk</emphasis> directory. It's a very basic script, and perhaps use the <emphasis role="bold">restore_bootloader</emphasis> of the Mageia Rescue should be a better idea.</para>
+ </sect3>
+ <sect3>
+ <title>make_initrd_lilo</title>
+ <para>
+ Restore and reload the lilo bootloader in the <emphasis role="bold">/mnt/disk</emphasis> directory. Again it's a very basic script, perhaps we should use the <emphasis role="bold">restore_bootloader</emphasis> of the Mageia Rescue.
+ </para>
+ </sect3>
+ <sect3>
+ <title>prepare_node.sh</title>
+ <para>
+ This script remove in the futur system the old network's udev rules, old dhcp cache files, launch the script <emphasis role="bold">gen_modprobe_conf.pl</emphasis> to regenerate an up to date <emphasis role="bold">/etc/modprobe.conf</emphasis> in the new system, and launch the script to restore the bootloader. If you want to do more action on the installed, system, you can modify this script.
+ </para>
+ </sect3>
+ <sect3>
+ <title>send_status.pl</title>
+ <para>
+ Very basic perl script to open the port 12345, and paste the content of the <emphasis role="bold">/tmp/ka*</emphasis> file. It also permit the execution of commands on node, if user send a message from the golden node with the <emphasis role="bold">exec</emphasis> prefix.
+ </para>
+ </sect3>
+ <sect3>
+ <title>status_node.pl</title>
+ <para>
+ Script to connect to a client node, first arg must be the IP address of the node. You can run command on the node with the <emphasis role="bold">exec</emphasis> prefix.
+ </para>
+ </sect3>
+ </sect2>
+ </sect1>
+ <sect1>
+ <title>The golden node, KA server</title>
+ <para>
+ Now, it is time to build a description of the node partitions. You can use the script <emphasis role="bold">/mnt/ka/ka/fdisk_to_desc</emphasis> as root user, or your favorite text editor,
+ you can write a file like this one:
+ </para>
+ <para>
+ <screen>
+linux 3500
+extended fill
+logical swap 500
+logical linux fill</screen>
+ </para>
+ <para>
+ This file describes your partition table and the sample above can be considered as a default one for a recommended
+ installation. There is a 3.5GB <emphasis role="bold">/</emphasis> partition, a 500 MB swap
+ partition, and <emphasis role="bold">/var</emphasis> fills the rest, of course you can adjust
+ sizes accoding to your system.
+ </para>
+ <para>
+ Type the following to start the ka replication server as root user on the golden node:
+ </para>
+ <para>
+<programlisting><![CDATA[
+[root@node40 ka]# ./ka-d.sh -n 1 -p sda /root/desc -X sdb -r "grub --with=jfs --with=ata_piix"
+takembr =
+desc = sda /root/desc
++ Mount points :
+ /dev/sda5 / ext3
+ /dev/sda1 swap swap
++ Hard drives :
+ sda
++ Reading partition table description for sda
+ Added partition 1 : type 82
+ Added partition 5 : type 83
++ Included mount points : /
++ Bootloader is: grub --with=jfs --with=ata_piix
++++ Sending Stage2 +++
+Compiled : Aug 23 2007 12:58:29
+ARGS=+ka-d-server+-s+getstage2+-n+1+-e+(cd /mnt/ka; tar --create --one-file-system --sparse . )+
+Server IP = 10.0.1.40
+command = (cd /mnt/ka; tar --create --one-file-system --sparse . )
+I want 1 clients
+Socket 4 on port 30765 on node40.guibland.com ready.
+Socket 5 on port 30764 on node40.guibland.com ready.
+]]></programlisting>
+ </para>
+ <para>
+ <itemizedlist>
+ <listitem><para><emphasis role="bold">-r "grub --with=jfs --with=ata_piix"</emphasis>: use grub bootloader and <emphasis role="bold">--with=jfs --with=piix</emphasis> mkinitrd option in the chrooted system after the <emphasis role="bold">KA</emphasis> deploiement</para></listitem>
+ <listitem><para><emphasis role="bold">-n nb_nodes</emphasis>: specify how many nodes are clients</para></listitem>
+ <listitem><para><emphasis role="bold">-p sda desc</emphasis>: specify the name of the hdd</para></listitem>
+ <listitem><para><emphasis role="bold">-x /tmp</emphasis>: exclude <emphasis role="bold">/tmp</emphasis> directory</para></listitem>
+ <listitem><para><emphasis role="bold">-X sdb</emphasis>: exclude <emphasis role="bold">sdb</emphasis> hdd for the duplication</para></listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Now the golden node is waiting for clients nodes to start replication.
+ </para>
+ </sect1>
+ <sect1>
+ <title>KA client node</title>
+ <sect2>
+ <title>PXE server (kamethod)</title>
+ <para>
+ We have to configure the PXE to boot by default on <emphasis role="bold">kamethod</emphasis>.
+ To do this just edit <emphasis role="bold">/var/lib/tftpboot/X86PC/linux/pxelinux.cfg/default</emphasis> and set
+ <emphasis role="bold">DEFAULT</emphasis> to kamethod:
+ </para>
+ <screen>DEFAULT kamethod</screen>
+ <para>
+ So, next time a node boots, the PXE server will force the node to boot using the kamethod entry.
+ </para>
+ </sect2>
+ <sect2>
+ <title>Stage1 KA method, node waiting stage2 </title>
+ <para>
+ Now, you boot all remaining nodes. The replication process
+ will start once all nodes are up and waiting on the <emphasis role="bold">KA</emphasis>
+ screen.
+ </para>
+ <para>
+ If the nodes can't reach the golden node, running the <emphasis role="bold">KA</emphasis>
+ server the message <emphasis role="bold">Can't reach a valid KA server</emphasis> will appear.
+ Each node will try five times to reach the <emphasis role="bold">KA</emphasis> server, after that the node will reboot.
+ As the node boots on <emphasis role="bold">kamethod</emphasis>, it will retry until it finds it.
+ </para>
+ </sect2>
+ <sect2>
+ <title>Stage2, the duplication process</title>
+ <para>
+ Once all the nodes have found the <emphasis role="bold">KA</emphasis> server, the first
+ duplication process will start. This step duplicates the
+ <emphasis role="bold">stage2</emphasis> from the <emphasis role="bold">/mnt/ka</emphasis> directory
+ of the golden node, in the client's nodes memory (<emphasis role="bold">/dev/ram3</emphasis> formated as ext2). Then, nodes chroot their memories (the <emphasis role="bold">/tmp/stage2</emphasis> directory), and launch the <emphasis role="bold">drvinst</emphasis> command from the stage2, to probe all needed their modules (drivers). Then, the second step of the duplication starts.
+ </para>
+ <para>
+ The duplication process will clone your drives following
+ the description you have made (<emphasis role="bold">/tmp/desc</emphasis> of the golden node).
+ Nodes will rewrite their partition table, then format their filesystems (ReiserFs, XFS,
+ ext2/3/4, JFS). All new partitions will be mounted in the <emphasis role="bold">/mnt/disk</emphasis> directory.
+ Then, the drive duplication process will begin. On a fast Ethernet switch you can reach speeds of 10MBytes/sec.
+ </para>
+ </sect2>
+ <sect2>
+ <title>Prepare the node</title>
+ <para>
+ At the end of the duplication process, each node will
+ chroot its partitions and rebuild its <emphasis role="bold">/boot/initrd.img</emphasis>,
+ and <emphasis role="bold">/etc/modprobe.conf</emphasis> files.
+ This step ensures that your node will reboot using its potential
+ SCSI drives and adjusting its network card driver. Before
+ rebooting, each node reinstalls lilo/grub. All your node are
+ now ready, and are clone of master node.
+ </para>
+ </sect2>
+ <sect2><title>PXE server to local boot</title>
+ <para>
+ Don't forget to change the default PXE boot to <emphasis role="bold">local</emphasis>
+ so node after replication will boot localy.
+ </para>
+ </sect2>
+ </sect1>
+ <sect1>
+ <title>Step by step from scratch KA duplication</title>
+ <para>We will use a PIV 3gz box as golden node, with a SATA hard drive, and an Intel 82540EM Gigabit Ethernet Controller card. This golden box will be the: PXE, DHCPD, TFTP server. Client nodes are</para>
+ <para>
+ <itemizedlist>
+ <listitem><para>basic PIV 2.8gz, with a Realtek Semiconductor 8139 network card, and a IDE hard drive disk</para></listitem>
+ <listitem><para>PE2650 dual XEON 2.4gz, SCSI Hard Drive disk, and NetXtreme BCM5701 Gigabit Ethernet cards</para></listitem>
+ </itemizedlist>
+ </para>
+ <para>Both nodes are configured to boot on their network card.</para>
+ <sect2>
+ <title>Golden node side</title>
+ <para>
+ Prepapre the golden node, install all needed tools.
+ </para>
+ <para>
+<programlisting><![CDATA[
+[root@localhost ~]# urpmi ka-deploy-source-node
+ http://192.168.1.253/cooker/i586/media/main/release/ka-deploy-source-node-0.94.1-1mdv2010.1.i586.rpm
+installing ka-deploy-source-node-0.94.1-1mdv2010.1.i586.rpm from /var/cache/urpmi/rpms
+Preparing... ###############################################################################
+ 1/1: ka-deploy-source-node ###############################################################################
+
+[root@localhost ~]# rpm -ql ka-deploy-source-node
+/etc/ka
+/etc/ka/replication.conf
+/usr/bin/bootable_flag.sh
+/usr/bin/fdisk_to_desc
+/usr/bin/gen_modprobe_conf.pl
+/usr/bin/ka-d-client
+/usr/bin/ka-d-server
+/usr/bin/ka-d.sh
+/usr/bin/ka_replication.sh
+/usr/bin/make_initrd_grub
+/usr/bin/make_initrd_lilo
+/usr/bin/prepare_node.sh
+/usr/bin/send_status.pl
+/usr/bin/status_node.pl
+/usr/bin/store_log.sh
+/usr/bin/udev_creation.sh
+/usr/share/ka-deploy-0.94.1
+/usr/share/man/man1/ka-d-client.1.lzma
+/usr/share/man/man1/ka-d-server.1.lzma
+/usr/share/man/man1/ka-d.1.lzma
+/usr/share/man/man1/ka-d.sh.1.lzma
+/usr/share/man/man1/ka-deploy.1.lzma
+]]></programlisting>
+ </para>
+ <para>Create the /mnt/ka directory, and put all stuff in it (this directory will be sent to all client nodes and use to finish
+ the duplication process)</para>
+ <para>
+<programlisting><![CDATA[
+[root@localhost ~]# mkdir /mnt/ka
+lftp distrib-coffee.ipsl.jussieu.fr:~> cd pub/linux/Mageia/distrib/cauldron/i586/install/stage2/
+lftp distrib-coffee.ipsl.jussieu.fr:/pub/linux/Mageia/distrib/cauldron/i586/install/stage2> pget rescue.sqfs
+19132416 bytes transferred in 78 seconds (241.1K/s)
+
+[root@localhost ~]# urpmi squashfs-tools
+ http://192.168.1.253/cooker/i586/media/main/release/squashfs-tools-4.0-3.20091221.1mdv2010.1.i586.rpm
+installing squashfs-tools-4.0-3.20091221.1mdv2010.1.i586.rpm from /var/cache/urpmi/rpms
+Preparing... ############################################################################
+ 1/1: squashfs-tools ############################################################################
+
+[root@localhost ~]# unsquashfs rescue.sqfs
+Parallel unsquashfs: Using 2 processors
+988 inodes (1222 blocks) to write
+[============================================================================================-] 1222/1222 100%
+created 550 files
+created 93 directories
+created 60 symlinks
+created 371 devices
+created 1 fifos
+
+[root@localhost ~]# cd squashfs-root/
+[root@localhost squashfs-root]# ls
+bin/ dev/ etc/ ka/ lib/ modules/ proc/ sbin/ tmp/ usr/ var/
+[root@localhost squashfs-root]# mv * /mnt/ka/
+]]></programlisting>
+ </para>
+ <para>Install all needed packages to be able to be a PXE, DHCPD and TFTP server</para>
+ <para>
+<programlisting><![CDATA[
+[root@localhost ka]# ka-d.sh -h
+/usr/bin/ka-d.sh : clone this machine
+Usage:
+ -h, --help : display this message
+ -n num : specify the number of (destination) nodes
+ -x 'dir|dir2' : exclude directory
+ -X 'sdb|sdc' : exclude sdb for the replication
+ -m drive : copy the master boot record (for windows) of this drive
+ -M drive file : use 'file' as master boot record (must be 446 bytes long) for the specified drive
+ -D partition : also copy partition 'partition'
+ -p drive pdesc : use 'pdesc' file as partition scheme (see doc) for the specified drive
+ -d delay : delay beteween the release of 2 clients (1/10 second)
+ -r 'grub|lilo' : choose the bootloader (you can add mkinitrd options)
+
+ ie: ka-d.sh -n 3 -p sda /tmp/desc -X sdb -r 'grub --with=ata_piix --with=piix'
+
+[root@localhost ka]# urpmi ka-deploy-server
+To satisfy dependencies, the following packages are going to be installed:
+ Package Version Release Arch
+(medium "Main")
+ bind-utils 9.7.0 4mdv2010.1 i586
+ clusterscripts-common 3.5 1mdv2010.1 noarch
+ clusterscripts-server-conf 3.5 1mdv2010.1 noarch
+ clusterscripts-server-pxe 3.5 1mdv2010.1 noarch
+ dhcp-server 4.1.1 5mdv2010.1 i586
+ ka-deploy-server 0.94.1 1mdv2010.1 i586
+ perl-Crypt-PasswdMD5 1.300.0 1mdv2010.1 noarch
+ pxe 1.4.2 19mdv2010.1 i586
+ pxelinux 3.83 1mdv2010.1 i586
+ syslinux 3.83 1mdv2010.1 i586
+ tftp-server 5.0 4mdv2010.1 i586
+ xinetd 2.3.14 11mdv2010.1 i586
+12MB of additional disk space will be used.
+2.5MB of packages will be retrieved.
+Proceed with the installation of the 12 packages? (Y/n)
+]]></programlisting>
+ </para>
+ <para>Configure all services</para>
+ <para>
+<programlisting><![CDATA[
+[root@localhost ~]# hostname
+node42.guibland.com
+[root@localhost ~]# domainname
+guibland.com
+
+[root@localhost ~]# ip addr show eth0
+2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 100
+ link/ether 00:17:31:19:a0:78 brd ff:ff:ff:ff:ff:ff
+ inet 10.0.1.42/24 brd 10.0.1.255 scope global eth0
+ inet6 fe80::217:31ff:fe19:a078/64 scope link
+ valid_lft forever preferred_lft forever
+
+[root@localhost ~]# vi /etc/pxe.conf
+# which interface to use
+interface=eth0
+default_address=10.0.1.42
+
+# the multicast ip address to listen on
+multicast_address=224.0.1.2
+
+# mtftp info
+mtftp_address=10.0.1.42
+mtftp_client_port=1758
+mtftp_server_port=1759
+
+# the port to listen on
+listen_port=4011
+
+# enable multicast?
+use_multicast=1
+
+# enable broadcast?
+use_broadcast=0
+
+# user prompt
+prompt=Press F8 to view menu ...
+prompt_timeout=2
+
+# what services to provide, priority in ordering
+# CSA = Client System Architecture
+# service=<CSA>,<min layer>,<max layer>,<basename>,<menu entry>
+service=X86PC,0,2,linux,Mageia x86
+service=IA64PC,0,2,linux,Mageia IA64
+service=X86PC,0,0,local,Local boot
+
+# tftpd base dir
+tftpdbase=/
+
+# domain name
+domain=guibland.com
+
+[root@localhost ~]# vi /etc/xinetd.d/tftp
+service tftp
+{
+ disable = no
+ socket_type = dgram
+ protocol = udp
+ wait = yes
+ user = root
+ server = /usr/sbin/in.tftpd
+ server_args = -s /var/lib/tftpboot
+ per_source = 11
+ cps = 100 2
+ flags = IPv4
+}
+
+
+[root@localhost ~]# cp /etc/dhcpd.conf.pxe.single /etc/dhcpd.conf
+cp: overwrite `/etc/dhcpd.conf'? y
+
+[root@localhost ~]# cat /etc/resolv.conf
+nameserver 10.0.1.253
+search guibland.com
+
+[root@localhost ~]# cat /etc/dhcpd.conf
+# for explanation in french go to : http://www.delafond.org/traducmanfr/man/man5/dhcpd.conf.5.html
+ddns-update-style none;
+allow booting;
+allow bootp;
+
+# Your dhcp server is not master on your network !
+#not authoritative;
+# Your dhcpd server is master on your network !
+#authoritative;
+authoritative;
+
+#Interface where dhcpd is active
+#DHCPD_INTERFACE = "eth0";
+
+# Definition of PXE-specific options
+# Code 1: Multicast IP address of bootfile
+# Code 2: UDP port that client should monitor for MTFTP responses
+# Code 3: UDP port that MTFTP servers are using to listen for MTFTP requests
+# Code 4: Number of secondes a client must listen for activity before trying
+# to start a new MTFTP transfer
+# Code 5: Number of secondes a client must listen before trying to restart
+# a MTFTP transfer
+
+# define Option for the PXE class
+option space PXE;
+option PXE.mtftp-ip code 1 = ip-address;
+option PXE.mtftp-cport code 2 = unsigned integer 16;
+option PXE.mtftp-sport code 3 = unsigned integer 16;
+option PXE.mtftp-tmout code 4 = unsigned integer 8;
+option PXE.mtftp-delay code 5 = unsigned integer 8;
+option PXE.discovery-control code 6 = unsigned integer 8;
+option PXE.discovery-mcast-addr code 7 = ip-address;
+
+#Define options for pxelinux
+option space pxelinux;
+option pxelinux.magic code 208 = string;
+option pxelinux.configfile code 209 = text;
+option pxelinux.pathprefix code 210 = text;
+option pxelinux.reboottime code 211 = unsigned integer 32;
+site-option-space "pxelinux";
+# These lines should be customized to your setup
+#option pxelinux.configfile "configs/common";
+#option pxelinux.pathprefix "/pxelinux/files/";
+#filename "/pxelinux/pxelinux.bin";
+
+option pxelinux.magic f1:00:74:7e;
+option pxelinux.reboottime 30;
+#if exists dhcp-parameter-request-list {
+# Always send the PXELINUX options
+# append dhcp-parameter-request-list 208, 209, 210, 211;
+# append dhcp-parameter-request-list 208,211;
+# }
+
+#Class that determine the options for Etherboot 5.x requests
+class "Etherboot" {
+
+#if The vendor-class-identifier equal Etherboot-5.0
+match if substring (option vendor-class-identifier, 0, 13) = "Etherboot-5.0";
+
+# filename define the file retrieve by the client, there nbgrub
+# our tftp is chrooted so is just the path to the file
+filename "/etherboot/nbgrub";
+
+#Used by etherboot to detect a valid pxe dhcp server
+option vendor-encapsulated-options 3c:09:45:74:68:65:72:62:6f:6f:74:ff;
+
+# Set the "vendor-class-identifier" field to "PXEClient" in dhcp answer
+# if this field is not set the pxe client will ignore the answer !
+option vendor-class-identifier "Etherboot-5.0";
+
+vendor-option-space PXE;
+option PXE.mtftp-ip 0.0.0.0;
+
+# IP of you TFTP server
+next-server 10.0.1.42;
+}
+
+
+# create the Class PXE
+class "PXE" {
+# if the "vendor-class-identifier" is set to "PXEClient" in the client dhcp request
+match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
+
+# filename define the file retrieve by the client, there pxelinux.0
+# our tftp is chrooted so is just the path to the file
+# If you prefer use grub, use pxegrub compiled for your ethernet card.
+#filename "/PXEClient/pxegrub";
+filename "/X86PC/linux/linux.0";
+
+# Set the "vendor-class-identifier" field to "PXEClient" in dhcp answer
+# if this field is not set the pxe client will ignore the answer !
+option vendor-class-identifier "PXEClient";
+
+
+vendor-option-space PXE;
+option PXE.mtftp-ip 0.0.0.0;
+
+# IP of you TFTP server
+next-server 10.0.1.42;
+}
+
+# Tags uses by dhcpnode and setup_add_nodes_to_dhcp
+# TAG: NODE_LIST_ADMIN_BEGIN
+
+# TAG: NODE_LIST_ADMIN_END
+
+# TAG: MY_ADMIN_BEGIN
+subnet 10.0.1.0 netmask 255.255.255.0 {
+ option subnet-mask 255.255.255.0;
+ option routers 10.0.1.253;
+ default-lease-time 288000;
+ max-lease-time 864000;
+ option domain-name "guibland.com";
+ option domain-name-servers 10.0.1.253;
+ next-server 10.0.1.42;
+
+ pool {
+ range 10.0.1.110 10.0.1.120;
+ }
+}
+
+# TAG: MY_ADMIN_END
+
+
+[root@localhost ~]# service xinetd restart
+Stopping xinetd [FAILED]
+Starting xinetd [ OK ]
+[root@localhost ~]# service pxe restart
+Stopping PXE server [FAILED]
+Dhcp server is not running on this machine !
+Be sure that a valid PXE Dhcp server is running on your network
+Starting PXE server [ OK ]
+[root@localhost ~]# service dhcpd restart
+Shutting down dhcpd: [ OK ]
+Starting dhcpd: [ OK ]
+]]></programlisting>
+ </para>
+ <para>KA listen only listen on eth0, and need a FQDN. So if it is not the case, ka-d-server will try to open
+ a port on 0.0.0.0 IP address, wich cause an error. You can fix it easely setting an valid hostname in /etc/hosts file.
+ Don't forget to kill ka-d-server with crtl+C key, after testing it will open a port on a valid IP address.</para>
+ <para>
+<programlisting><![CDATA[
+[root@node42 ~]# ka-d-server
+Compiled : May 4 2010 20:33:07
+ARGS=+ka-d-server+
+Server IP = 0.0.0.0
+command = (cd /; tar --create --one-file-system --sparse /)
+I want 1 clients
+ka-d-server: server.c:1987: main: Assertion `socket_server >=0' failed.
+Aborted
+
+
+[root@node42 ~]# cat /etc/hosts
+127.0.0.1 localhost.localdomain localhost
+10.0.1.42 node42.guibland.com
+
+[root@node42 ~]# ka-d-server
+Compiled : May 4 2010 20:33:07
+ARGS=+ka-d-server+
+Server IP = 10.0.1.42
+command = (cd /; tar --create --one-file-system --sparse /)
+I want 1 clients
+Socket 3 on port 30765 on node42.guibland.com ready.
+Socket 4 on port 30764 on node42.guibland.com ready.
+[root@node42 ~]# ^C
+]]></programlisting>
+ </para>
+ <para>We need to describe the partition table of our golden node, to send it to client nodes.</para>
+ <para>
+<programlisting><![CDATA[
+[root@node42 ~]# fdisk -l
+
+Disk /dev/sda: 80.0 GB, 80026361856 bytes
+255 heads, 63 sectors/track, 9729 cylinders
+Units = cylinders of 16065 * 512 = 8225280 bytes
+Sector size (logical/physical): 512 bytes / 512 bytes
+I/O size (minimum/optimal): 512 bytes / 512 bytes
+Disk identifier: 0xd9b576f2
+
+ Device Boot Start End Blocks Id System
+/dev/sda1 * 1 1019 8185086 82 Linux swap / Solaris
+/dev/sda2 1020 4843 30716280 83 Linux
+/dev/sda3 4844 9729 39246795 5 Extended
+/dev/sda5 4844 9729 39246763+ 83 Linux
+
+
+[root@node42 ~]# fdisk_to_desc
+ -devices: sda1 -size en Mo: 7993 -filesystem: Linux
+Use of uninitialized value $e in concatenation (.) or string at /usr/bin/fdisk_to_desc line 50.
+ -devices: sda2 -size en Mo: 29996 -filesystem: Linux
+Use of uninitialized value $e in concatenation (.) or string at /usr/bin/fdisk_to_desc line 55.
+ -devices: sda3 -size en Mo: 38326 -filesystem: Extended
+ -devices: sda5 -size en Mo: 38326 -filesystem: Linux
+Desc file is /tmp/desc
+[root@node42 ~]# cat /tmp/d
+ddebug.log desc
+[root@node42 ~]# cat /tmp/desc
+swap 7993
+linux 29996
+extended 38326
+logical linux 38326
+
+[root@node42 ~]# cat /tmp/desc
+swap 7993
+linux 29996
+extended fill
+logical linux fill
+]]></programlisting>
+ </para>
+ <para>Set default PXE boot to kamethod</para>
+ <para>
+<programlisting><![CDATA[
+[root@node42 ~]# cat /var/lib/tftpboot/X86PC/linux/pxelinux.cfg/default
+PROMPT 1
+DEFAULT kamethod
+DISPLAY messages
+TIMEOUT 50
+
+label local
+ LOCALBOOT 0
+
+label kamethod
+ KERNEL images/vmlinuz
+ APPEND initrd=images/all.rdz ramdisk_size=64000 vga=788 automatic=method:ka,interface:eth0,network:dhcp root=/dev/ram3 rw kamethod
+
+
+[root@node42 ~]# cd /var/lib/tftpboot/X86PC/linux/
+[root@node42 linux]# ls
+help.txt linux.0 memdisk messages pxelinux.cfg/
+[root@node42 linux]# mkdir images
+
+lftp distrib-coffee.ipsl.jussieu.fr:/pub/linux/Mageia/distrib/cauldron/i586/isolinux/alt0> ls
+-rw-r--r-- 1 ftp ftp 15613654 Apr 23 17:26 all.rdz
+-rw-r--r-- 1 ftp ftp 2279584 Apr 23 17:26 vmlinuz
+lftp distrib-coffee.ipsl.jussieu.fr:/pub/linux/Mageia/distrib/cauldron/i586/isolinux/alt0> mget *
+17893238 bytes transferred in 77 seconds (227.9K/s)
+Total 2 files transferred
+lftp distrib-coffee.ipsl.jussieu.fr:/pub/linux/Mageia/distrib/cauldron/i586/isolinux/alt0>
+
+[root@node42 images]# pwd
+/var/lib/tftpboot/X86PC/linux/images
+[root@node42 images]# ls
+all.rdz vmlinuz
+]]></programlisting>
+ </para>
+ <para>Now it's time to launch the duplication process</para>
+ <para>
+<programlisting><![CDATA[
+[root@node42 ka]# ka-d.sh -n 2 -p sda /tmp/desc -r grub
+takembr =
+desc = sda /tmp/desc
+`/etc/fstab' -> `/tmp/ka-d3156/pfstab.tmp'
++ Mount points :
+ /dev/sda2 / ext3 relatime 1 1
+ /dev/sda5 /home ext4 relatime 1 2
+ /dev/sda1 swap swap defaults 0 0
++ Hard drives :
+ sda
++ Reading partition table description for sda
+ Added partition 1 : type 82
+ Added partition 2 : type 83
+ Added partition 5 : type 83
++ Included mount points : / /home
++ Bootloader is: grub
++++ Sending Stage2 +++
+Compiled : May 4 2010 20:33:07
+ARGS=+ka-d-server+-s+getstage2+-n+2+-e+(cd /mnt/ka; tar --create --one-file-system --sparse . )+
+Server IP = 10.0.1.42
+command = (cd /mnt/ka; tar --create --one-file-system --sparse . )
+I want 2 clients
+Socket 4 on port 30765 on node42.guibland.com ready.
+Socket 5 on port 30764 on node42.guibland.com ready.
+got UDP packet from 10.0.1.111
+Session name matches
+Sending UDP reply to 10.0.1.111
+Accepting connection from 10.0.1.111
+Clients : want_data 0 / connected 0
+client says hello !
+Client sends options
+Client accepts data
+got UDP packet from 10.0.1.110
+Session name matches
+Sending UDP reply to 10.0.1.110
+Accepting connection from 10.0.1.110
+Clients : want_data 1 / connected 0
+client says hello !
+Client sends options
+Client accepts data
+Added client 10.0.1.110, daddy = 10.0.1.42
+Added client 10.0.1.111, daddy = 10.0.1.110
+Accepting connection from 10.0.1.110
+checking connection auth10.0.1.42 reports 10.0.1.110 has opened data connection
+Client 10.0.1.110 reports data position : 0
+10.0.1.42 reports 10.0.1.110 has been accepted
+Welcome son, you are number 1 (MAX 4)
+Client got client
+10.0.1.110 reports 10.0.1.111 has opened data connection
+Client 10.0.1.111 reports data position : 0
+sending auth for 10.0.1.111 to 10.0.1.110
+Client got client
+10.0.1.110 reports 10.0.1.111 has been accepted
+Let's go!
+Total data read = 43 Megs, BUF: 34M FREE = 0M startpos = 8MM
+End of data flow
+Dropping children
+Dropping child 10.0.1.110
+All children dropped
+Client says dad disconnected
+Client says he has finished
+Client has finished transfer
+Busy clients: 1 -- connected : 2
+Client says dad disconnected
+Client says he has finished
+Client has finished transfer
+Busy clients: 0 -- connected : 2
+Peer closed connection on socket 7
+close_connection(7)
+Busy clients: 0 -- connected : 1
+Peer closed connection on socket 6
+close_connection(6)
+Busy clients: 0 -- connected : 0
+All clients left, I quit
+Total data sent = 44 Megs, in 1543 packets
+Transfer time = 0.858 seconds, throughput = 51.307 Mbytes/second
+The pipeline was emptied in 3.250 seconds
+ - Sending partition/filesystem/mount points informations...
+ +++ Running ka-deploy +++
+Compiled : May 4 2010 20:33:07
+ARGS=+ka-d-server+-s+kainstall1+-n+2+-e+(cd /tmp/ka-d3156 && tar c *)+
+Server IP = 10.0.1.42
+command = (cd /tmp/ka-d3156 && tar c *)
+I want 2 clients
+Socket 4 on port 30765 on node42.guibland.com ready.
+Socket 5 on port 30764 on node42.guibland.com ready.
+got UDP packet from 10.0.1.110
+Session name matches
+Sending UDP reply to 10.0.1.110
+Accepting connection from 10.0.1.110
+Clients : want_data 0 / connected 0
+client says hello !
+Client sends options
+Client accepts data
+got UDP packet from 10.0.1.111
+Session name matches
+Sending UDP reply to 10.0.1.111
+Accepting connection from 10.0.1.111
+Clients : want_data 1 / connected 0
+client says hello !
+Client sends options
+Client accepts data
+Added client 10.0.1.110, daddy = 10.0.1.42
+Added client 10.0.1.111, daddy = 10.0.1.110
+Accepting connection from 10.0.1.110
+checking connection auth10.0.1.42 reports 10.0.1.110 has opened data connection
+Client 10.0.1.110 reports data position : 0
+10.0.1.42 reports 10.0.1.110 has been accepted
+Welcome son, you are number 1 (MAX 4)
+Client got client
+10.0.1.110 reports 10.0.1.111 has opened data connection
+Client 10.0.1.111 reports data position : 0
+sending auth for 10.0.1.111 to 10.0.1.110
+Client got client
+10.0.1.110 reports 10.0.1.111 has been accepted
+Let's go!
+Total data read = 0 Megs, BUF: 0M FREE = 34M startpos = 0M
+End of data flow
+Dropping children
+Dropping child 10.0.1.110
+All children dropped
+Client says dad disconnected
+Client says he has finished
+Client has finished transfer
+Busy clients: 1 -- connected : 2
+Client says dad disconnected
+Client says he has finished
+Client has finished transfer
+Busy clients: 0 -- connected : 2
+Peer closed connection on socket 6
+close_connection(6)
+Busy clients: 0 -- connected : 1
+Peer closed connection on socket 7
+close_connection(7)
+Busy clients: 0 -- connected : 0
+All clients left, I quit
+Total data sent = 0 Megs, in 1 packets
+Transfer time = 0.006 seconds, throughput = 1.698 Mbytes/second
+The pipeline was emptied in 0.038 seconds
+ WAITING node (partition/format)
+ - Sending Linux filesystem...
+ +++ Running ka-deploy +++
+Compiled : May 4 2010 20:33:07
+ARGS=+ka-d-server+-s+kainstall2+-n+2+-e+(cd /; tar --create --one-file-system --sparse / /home)+
+Server IP = 10.0.1.42
+command = (cd /; tar --create --one-file-system --sparse / /home)
+I want 2 clients
+Socket 4 on port 30765 on node42.guibland.com ready.
+Socket 5 on port 30764 on node42.guibland.com ready.
+got UDP packet from 10.0.1.110
+Session name matches
+Sending UDP reply to 10.0.1.110
+Accepting connection from 10.0.1.110
+Clients : want_data 0 / connected 0
+client says hello !
+Client sends options
+Client accepts data
+got UDP packet from 10.0.1.111
+Session name matches
+Sending UDP reply to 10.0.1.111
+Accepting connection from 10.0.1.111
+Clients : want_data 1 / connected 0
+client says hello !
+Client sends options
+Client accepts data
+Added client 10.0.1.110, daddy = 10.0.1.42
+Added client 10.0.1.111, daddy = 10.0.1.110
+Accepting connection from 10.0.1.110
+checking connection auth10.0.1.42 reports 10.0.1.110 has opened data connection
+Client got client
+10.0.1.110 reports 10.0.1.111 has opened data connection
+Client 10.0.1.110 reports data position : 0
+10.0.1.42 reports 10.0.1.110 has been accepted
+Welcome son, you are number 1 (MAX 4)
+Client 10.0.1.111 reports data position : 0
+sending auth for 10.0.1.111 to 10.0.1.110
+Client got client
+10.0.1.110 reports 10.0.1.111 has been accepted
+Let's go!
+Total data read = 789 Megs, BUF: 34M FREE = 0M startpos = 754M
+End of data flow
+Dropping children
+Dropping child 10.0.1.110
+All children dropped
+Client says dad disconnected
+Client says he has finished
+Client has finished transfer
+Busy clients: 1 -- connected : 2
+Client says dad disconnected
+Client says he has finished
+Client has finished transfer
+Busy clients: 0 -- connected : 2
+Peer closed connection on socket 7
+close_connection(7)
+Busy clients: 0 -- connected : 1
+Peer closed connection on socket 6
+close_connection(6)
+Busy clients: 0 -- connected : 0
+All clients left, I quit
+Total data sent = 792 Megs, in 25445 packets
+Transfer time = 69.904 seconds, throughput = 11.343 Mbytes/second
+The pipeline was emptied in 4.002 seconds
+]]></programlisting>
+ </para>
+ </sect2>
+ <sect2>
+ <title>KA client side</title>
+ <para>
+ To get the log of the client node, launch <emphasis role="bold">/mnt/ka/ka/status_node.pl IPADD</emphasis> on the golden node.
+ </para>
+<programlisting><![CDATA[
+[root@node42 ka]# status_node.pl 10.0.1.111
+
+ Get the status of the Ka duplication process
+ If you want to execute a command on node, just use the 'exec' prefix
+10.0.1.111> ------| Ka |---- Install starting...
+10.0.1.111> Current session is -s kainstall1
+10.0.1.111> Receiving partitions information...OK
+10.0.1.111> Cleaning hard drive...
+10.0.1.111> ==> /tmp/kacmd <==
+10.0.1.111> Starting log server..
+10.0.1.111>
+10.0.1.111> ==> /tmp/ka_log-10.0.1.111-20100507-10h32 <==
+10.0.1.111> OK
+10.0.1.111> Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
+10.0.1.111> Building a new DOS disklabel with disk identifier 0x59be1427.
+10.0.1.111> Changes will remain in memory only, until you decide to write them.
+10.0.1.111> After that, of course, the previous content won't be recoverable.
+10.0.1.111>
+10.0.1.111>
+10.0.1.111> The number of cylinders for this disk is set to 1116.
+10.0.1.111> There is nothing wrong with that, but this is larger than 1024,
+10.0.1.111> and could in certain setups cause problems with:
+10.0.1.111> 1) software that runs at boot time (e.g., old versions of LILO)
+10.0.1.111> 2) booting and partitioning software from other OSs
+10.0.1.111> (e.g., DOS FDISK, OS/2 FDISK)
+10.0.1.111> Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
+10.0.1.111>
+10.0.1.111> Command (m for help): The partition table has been altered!
+10.0.1.111>
+10.0.1.111> Calling ioctl() to re-read partition table.
+10.0.1.111> Syncing disks.
+10.0.1.111> Writing partition table for sda using fdisk...OK
+10.0.1.111> Formatting /dev/sda2 as ext3...OK
+10.0.1.111> Formatting /dev/sda5 as ext4...OK
+10.0.1.111> Formatting /dev/sda1 as swap...OK
+10.0.1.111> - Mounting /dev/sda2 as /mnt/disk/ ......OK
+10.0.1.111> - Mounting /dev/sda5 as /mnt/disk/home ......OK
+10.0.1.111> ++++++++++++++++++++++++++
+10.0.1.111> none on /sys type sysfs (rw,relatime)
+10.0.1.111> none on /proc/bus/usb type usbfs (rw,relatime)
+10.0.1.111> /dev/ram3 on /tmp/stage2 type ext2 (rw,relatime,errors=continue)
+10.0.1.111> /dev/sda2 on /mnt/disk type ext3 (rw,relatime,errors=continue,data=ordered)
+10.0.1.111> /dev/sda5 on /mnt/disk/home type ext4 (rw,relatime,barrier=1,data=ordered)
+10.0.1.111> ++++++++++++++++++++++++++
+10.0.1.111> Linux copy is about to start
+10.0.1.111> Server IP is 10.0.1.42
+10.0.1.111> Buffers names :pipe
+Total data received = 21 Megs (10.830 Mbytes/sec); BUF :0M
+10.0.1.111> ==> /tmp/kacmd <==
+10.0.1.111> Starting log server..
+10.0.1.111>
+10.0.1.111> ==> /tmp/ka_log-localhost-20100507-11h17 <==
+Total data received = 788 Megs (10.796 Mbytes/sec); BUF :0M End of data flow
+10.0.1.111> Flushing buffers
+10.0.1.111> Total data received = 792 Megs, in 574479 packets
+10.0.1.111> Elapsed time = 73.413 seconds, throughput = 10.801 Mbytes/second
+10.0.1.111> Syncing disks...OK
+10.0.1.111> Linux copy done.
+10.0.1.111> Creating excluded directories
+10.0.1.111> - bootloader is grub (user choice)
+10.0.1.111> `/tmp/partfiles/pfstab' -> `/mnt/disk/etc/fstab'
+10.0.1.111> - Removing duplicated dhcp cache
+10.0.1.111> - Writing modprobe.conf
+10.0.1.111> ********************
+10.0.1.111> install scsi_hostadapter /sbin/modprobe aic7xxx; /bin/true
+10.0.1.111> install scsi_hostadapter /sbin/modprobe pata_serverworks; /bin/true
+10.0.1.111> alias eth0 tg3
+10.0.1.111> alias eth1 tg3
+10.0.1.111> ********************
+10.0.1.111> - Remove persistent udev rules
+10.0.1.111> removed `/mnt/disk/etc/udev/rules.d/70-persistent-net.rules'
+10.0.1.111> - Fix /dev in /mnt/disk
+10.0.1.111> `/ka2/udev_creation.sh' -> `/mnt/disk/sbin/udev_creation.sh'
+10.0.1.111> Starting udev: [ OK ]
+10.0.1.111> umount: /mnt/disk/dev: device is busy.
+10.0.1.111> (In some cases useful info about processes that use
+10.0.1.111> the device is found by lsof(8) or fuser(1))
+10.0.1.111> - Running mkinitrd
+10.0.1.111> - Looking for default grub menu
+10.0.1.111> - erase old initrd.img link
+10.0.1.111> removed `/mnt/disk/boot/initrd.img'
+10.0.1.111> initrd will be : /boot/initrd-2.6.33.3-desktop-1mnb.img
+10.0.1.111> running: chroot /mnt/disk /sbin/mkinitrd -v -f /boot/initrd-2.6.33.3-desktop-1mnb.img 2.6.33.3-desktop-1mnb
+10.0.1.111> Creating initramfs
+10.0.1.111> Looking for driver for /dev/sda2 in /sys/block/sda/sda2
+10.0.1.111> Looking for deps of module scsi:t-0x00: crc-t10dif scsi_mod sd_mod
+10.0.1.111> Looking for deps of module pci:v00009005d000000CFsv00001028sd00000121bc01sc00i00: scsi_mod scsi_transport_spi aic7xxx
+10.0.1.111> Looking for deps of module pci:v00008086d00000309sv00000000sd00000000bc06sc04i00: pci_hotplug shpchp
+10.0.1.111> Looking for driver for /dev/sda1 in /sys/block/sda/sda1
+10.0.1.111> Using modules: usbhid ehci-hcd ohci-hcd uhci-hcd ext3 crc-t10dif scsi_mod sd_mod scsi_transport_spi aic7xxx pci_hotplug shpchp pata_serverworks
+10.0.1.111> Building initrd in /tmp/initrd.uuIIkZ
+10.0.1.111> /sbin/nash -> /tmp/initrd.uuIIkZ/bin/nash
+10.0.1.111> /usr/lib/libnash.so.6.0.93 -> /tmp/initrd.uuIIkZ/usr/lib/libnash.so.6.0.93
+10.0.1.111> /lib/libdevmapper.so.1.02 -> /tmp/initrd.uuIIkZ/lib/libdevmapper.so.1.02
+10.0.1.111> /lib/libreadline.so.6 -> /tmp/initrd.uuIIkZ/lib/libreadline.so.6
+10.0.1.111> /lib/libreadline.so.6.1 -> /tmp/initrd.uuIIkZ/lib/libreadline.so.6.1
+10.0.1.111> /lib/libncurses.so.5 -> /tmp/initrd.uuIIkZ/lib/libncurses.so.5
+10.0.1.111> /lib/libncurses.so.5.7 -> /tmp/initrd.uuIIkZ/lib/libncurses.so.5.7
+10.0.1.111> /lib/libc.so.6 -> /tmp/initrd.uuIIkZ/lib/libc.so.6
+10.0.1.111> /lib/libc-2.11.1.so -> /tmp/initrd.uuIIkZ/lib/libc-2.11.1.so
+10.0.1.111> /lib/ld-linux.so.2 -> /tmp/initrd.uuIIkZ/lib/ld-linux.so.2
+10.0.1.111> /lib/ld-2.11.1.so -> /tmp/initrd.uuIIkZ/lib/ld-2.11.1.so
+10.0.1.111> /lib/libdl.so.2 -> /tmp/initrd.uuIIkZ/lib/libdl.so.2
+10.0.1.111> /lib/libdl-2.11.1.so -> /tmp/initrd.uuIIkZ/lib/libdl-2.11.1.so
+10.0.1.111> /lib/libudev.so.0 -> /tmp/initrd.uuIIkZ/lib/libudev.so.0
+10.0.1.111> /lib/libudev.so.0.7.0 -> /tmp/initrd.uuIIkZ/lib/libudev.so.0.7.0
+10.0.1.111> /usr/lib/libparted.so.0 -> /tmp/initrd.uuIIkZ/usr/lib/libparted.so.0
+10.0.1.111> /usr/lib/libparted.so.0.0.1 -> /tmp/initrd.uuIIkZ/usr/lib/libparted.so.0.0.1
+10.0.1.111> /lib/libuuid.so.1 -> /tmp/initrd.uuIIkZ/lib/libuuid.so.1
+10.0.1.111> /lib/libuuid.so.1.3.0 -> /tmp/initrd.uuIIkZ/lib/libuuid.so.1.3.0
+10.0.1.111> /lib/libblkid.so.1 -> /tmp/initrd.uuIIkZ/lib/libblkid.so.1
+10.0.1.111> /lib/libblkid.so.1.1.0 -> /tmp/initrd.uuIIkZ/lib/libblkid.so.1.1.0
+10.0.1.111> /lib/libpopt.so.0 -> /tmp/initrd.uuIIkZ/lib/libpopt.so.0
+10.0.1.111> /lib/libpopt.so.0.0.0 -> /tmp/initrd.uuIIkZ/lib/libpopt.so.0.0.0
+10.0.1.111> /lib/libresolv.so.2 -> /tmp/initrd.uuIIkZ/lib/libresolv.so.2
+10.0.1.111> /lib/libresolv-2.11.1.so -> /tmp/initrd.uuIIkZ/lib/libresolv-2.11.1.so
+10.0.1.111> /usr/lib/libelf.so.1 -> /tmp/initrd.uuIIkZ/usr/lib/libelf.so.1
+10.0.1.111> /usr/lib/libelf-0.146.so -> /tmp/initrd.uuIIkZ/usr/lib/libelf-0.146.so
+10.0.1.111> /lib/libm.so.6 -> /tmp/initrd.uuIIkZ/lib/libm.so.6
+10.0.1.111> /lib/libm-2.11.1.so -> /tmp/initrd.uuIIkZ/lib/libm-2.11.1.so
+10.0.1.111> /lib/libgcc_s.so.1 -> /tmp/initrd.uuIIkZ/lib/libgcc_s.so.1
+10.0.1.111> /lib/libgcc_s-4.4.3.so.1 -> /tmp/initrd.uuIIkZ/lib/libgcc_s-4.4.3.so.1
+10.0.1.111> /usr/lib/libbdevid.so.6.0.93 -> /tmp/initrd.uuIIkZ/usr/lib/libbdevid.so.6.0.93
+10.0.1.111> /sbin/modprobe -> /tmp/initrd.uuIIkZ/bin/modprobe
+10.0.1.111> /lib/libmodprobe.so.0 -> /tmp/initrd.uuIIkZ/lib/libmodprobe.so.0
+10.0.1.111> /lib/libmodprobe.so.0.0.0 -> /tmp/initrd.uuIIkZ/lib/libmodprobe.so.0.0.0
+10.0.1.111> /lib/libz.so.1 -> /tmp/initrd.uuIIkZ/lib/libz.so.1
+10.0.1.111> /lib/libz.so.1.2.3 -> /tmp/initrd.uuIIkZ/lib/libz.so.1.2.3
+10.0.1.111> /sbin/rmmod -> /tmp/initrd.uuIIkZ/bin/rmmod
+10.0.1.111> /bin/ln -> /tmp/initrd.uuIIkZ/bin/ln
+10.0.1.111> resolving for MODULES
+10.0.1.111> and that has items of usbhid ehci-hcd ohci-hcd uhci-hcd ext3 crc-t10dif scsi_mod sd_mod scsi_transport_spi aic7xxx pci_hotplug shpchp pata_serverworks
+10.0.1.111> Looking for deps of module usbhid: usbcore hid
+10.0.1.111> Looking for deps of module ehci-hcd: usbcore
+10.0.1.111> Looking for deps of module ohci-hcd: usbcore
+10.0.1.111> Looking for deps of module uhci-hcd: usbcore
+10.0.1.111> Looking for deps of module ext3: jbd
+10.0.1.111> Looking for deps of module crc-t10dif
+10.0.1.111> Looking for deps of module scsi_mod
+10.0.1.111> Looking for deps of module sd_mod: crc-t10dif scsi_mod
+10.0.1.111> Looking for deps of module scsi_transport_spi: scsi_mod
+10.0.1.111> Looking for deps of module aic7xxx: scsi_mod scsi_transport_spi
+10.0.1.111> Looking for deps of module pci_hotplug
+10.0.1.111> Looking for deps of module shpchp: pci_hotplug
+10.0.1.111> Looking for deps of module pata_serverworks: scsi_mod libata
+10.0.1.111> Looking for deps of module aic7xxx: scsi_mod scsi_transport_spi
+10.0.1.111> Looking for deps of module crc-t10dif
+10.0.1.111> Looking for deps of module ehci-hcd: usbcore
+10.0.1.111> Looking for deps of module ext3: jbd
+10.0.1.111> Looking for deps of module hid
+10.0.1.111> Looking for deps of module jbd
+10.0.1.111> Looking for deps of module libata: scsi_mod
+10.0.1.111> Looking for deps of module ohci-hcd: usbcore
+10.0.1.111> Looking for deps of module pata_serverworks: scsi_mod libata
+10.0.1.111> Looking for deps of module pci_hotplug
+10.0.1.111> Looking for deps of module scsi_mod
+10.0.1.111> Looking for deps of module scsi_transport_spi: scsi_mod
+10.0.1.111> Looking for deps of module sd_mod: crc-t10dif scsi_mod
+10.0.1.111> Looking for deps of module shpchp: pci_hotplug
+10.0.1.111> Looking for deps of module uhci-hcd: usbcore
+10.0.1.111> Looking for deps of module usbcore
+10.0.1.111> Looking for deps of module usbhid: usbcore hid
+10.0.1.111> resolving for availmodules
+10.0.1.111> and that has items of
+10.0.1.111> /lib/modules/2.6.33.3-desktop-1mnb/kernel/drivers/scsi/aic7xxx/aic7xxx.ko.gz -> /tmp/initrd.uuIIkZ/lib/modules/2.6.33.3-desktop-1mnb/aic7xxx.ko.gz
+10.0.1.111> /lib/modules/2.6.33.3-desktop-1mnb/kernel/lib/crc-t10dif.ko.gz -> /tmp/initrd.uuIIkZ/lib/modules/2.6.33.3-desktop-1mnb/crc-t10dif.ko.gz
+10.0.1.111> /lib/modules/2.6.33.3-desktop-1mnb/kernel/drivers/usb/host/ehci-hcd.ko.gz -> /tmp/initrd.uuIIkZ/lib/modules/2.6.33.3-desktop-1mnb/ehci-hcd.ko.gz
+10.0.1.111> /lib/modules/2.6.33.3-desktop-1mnb/kernel/fs/ext3/ext3.ko.gz -> /tmp/initrd.uuIIkZ/lib/modules/2.6.33.3-desktop-1mnb/ext3.ko.gz
+10.0.1.111> /lib/modules/2.6.33.3-desktop-1mnb/kernel/drivers/hid/hid.ko.gz -> /tmp/initrd.uuIIkZ/lib/modules/2.6.33.3-desktop-1mnb/hid.ko.gz
+10.0.1.111> /lib/modules/2.6.33.3-desktop-1mnb/kernel/fs/jbd/jbd.ko.gz -> /tmp/initrd.uuIIkZ/lib/modules/2.6.33.3-desktop-1mnb/jbd.ko.gz
+10.0.1.111> /lib/modules/2.6.33.3-desktop-1mnb/kernel/drivers/ata/libata.ko.gz -> /tmp/initrd.uuIIkZ/lib/modules/2.6.33.3-desktop-1mnb/libata.ko.gz
+10.0.1.111> /lib/modules/2.6.33.3-desktop-1mnb/kernel/drivers/usb/host/ohci-hcd.ko.gz -> /tmp/initrd.uuIIkZ/lib/modules/2.6.33.3-desktop-1mnb/ohci-hcd.ko.gz
+10.0.1.111> /lib/modules/2.6.33.3-desktop-1mnb/kernel/drivers/ata/pata_serverworks.ko.gz -> /tmp/initrd.uuIIkZ/lib/modules/2.6.33.3-desktop-1mnb/pata_serverworks.ko.gz
+10.0.1.111> /lib/modules/2.6.33.3-desktop-1mnb/kernel/drivers/pci/hotplug/pci_hotplug.ko.gz -> /tmp/initrd.uuIIkZ/lib/modules/2.6.33.3-desktop-1mnb/pci_hotplug.ko.gz
+10.0.1.111> /lib/modules/2.6.33.3-desktop-1mnb/kernel/drivers/scsi/scsi_mod.ko.gz -> /tmp/initrd.uuIIkZ/lib/modules/2.6.33.3-desktop-1mnb/scsi_mod.ko.gz
+10.0.1.111> /lib/modules/2.6.33.3-desktop-1mnb/kernel/drivers/scsi/scsi_transport_spi.ko.gz -> /tmp/initrd.uuIIkZ/lib/modules/2.6.33.3-desktop-1mnb/scsi_transport_spi.ko.gz
+10.0.1.111> /lib/modules/2.6.33.3-desktop-1mnb/kernel/drivers/scsi/sd_mod.ko.gz -> /tmp/initrd.uuIIkZ/lib/modules/2.6.33.3-desktop-1mnb/sd_mod.ko.gz
+10.0.1.111> /lib/modules/2.6.33.3-desktop-1mnb/kernel/drivers/pci/hotplug/shpchp.ko.gz -> /tmp/initrd.uuIIkZ/lib/modules/2.6.33.3-desktop-1mnb/shpchp.ko.gz
+10.0.1.111> /lib/modules/2.6.33.3-desktop-1mnb/kernel/drivers/usb/host/uhci-hcd.ko.gz -> /tmp/initrd.uuIIkZ/lib/modules/2.6.33.3-desktop-1mnb/uhci-hcd.ko.gz
+10.0.1.111> /lib/modules/2.6.33.3-desktop-1mnb/kernel/drivers/usb/core/usbcore.ko.gz -> /tmp/initrd.uuIIkZ/lib/modules/2.6.33.3-desktop-1mnb/usbcore.ko.gz
+10.0.1.111> /lib/modules/2.6.33.3-desktop-1mnb/kernel/drivers/hid/usbhid/usbhid.ko.gz -> /tmp/initrd.uuIIkZ/lib/modules/2.6.33.3-desktop-1mnb/usbhid.ko.gz
+10.0.1.111> /etc/sysconfig/keyboard -> /tmp/initrd.uuIIkZ/etc/sysconfig/keyboard
+10.0.1.111> /bin/loadkeys -> /tmp/initrd.uuIIkZ/bin/loadkeys
+10.0.1.111> /etc/sysconfig/console/default.kmap -> /tmp/initrd.uuIIkZ/etc/sysconfig/console/default.kmap
+10.0.1.111> /etc/sysconfig/i18n -> /tmp/initrd.uuIIkZ/etc/sysconfig/i18n
+10.0.1.111> /bin/setfont -> /tmp/initrd.uuIIkZ/bin/setfont
+10.0.1.111> /usr/lib/kbd/consolefonts/lat0-16.psfu.gz -> /tmp/initrd.uuIIkZ/usr/lib/kbd/consolefonts/lat0-16.psfu.gz
+10.0.1.111> /lib/udev/console_init -> /tmp/initrd.uuIIkZ/lib/udev/console_init
+10.0.1.111> probing for drm modules for pci device /sys/bus/pci/devices/0000:00:0e.0
+10.0.1.111> Adding graphics device /sys/bus/pci/devices/0000:00:0e.0
+10.0.1.111> Looking for deps of module pci:v00001002d00004752sv00001028sd00000121bc03sc00i00
+10.0.1.111> resolving for GRAPHICSMODS
+10.0.1.111> and that has items of
+10.0.1.111> Adding module usbhid
+10.0.1.111> Adding module ehci-hcd
+10.0.1.111> Adding module ohci-hcd
+10.0.1.111> Adding module uhci-hcd
+10.0.1.111> Adding module ext3
+10.0.1.111> Adding module crc-t10dif
+10.0.1.111> Adding module scsi_mod
+10.0.1.111> Adding module sd_mod
+10.0.1.111> Adding module scsi_transport_spi
+10.0.1.111> Adding module aic7xxx
+10.0.1.111> Adding module pci_hotplug
+10.0.1.111> Adding module shpchp
+10.0.1.111> Adding module pata_serverworks
+10.0.1.111> /usr/sbin/resume -> /tmp/initrd.uuIIkZ/bin/resume
+10.0.1.111> /usr/lib/suspend/resume -> /tmp/initrd.uuIIkZ/usr/lib/suspend/resume
+10.0.1.111> /usr/lib/liblzo2.so.2 -> /tmp/initrd.uuIIkZ/usr/lib/liblzo2.so.2
+10.0.1.111> /usr/lib/liblzo2.so.2.0.0 -> /tmp/initrd.uuIIkZ/usr/lib/liblzo2.so.2.0.0
+10.0.1.111> /lib/libpthread.so.0 -> /tmp/initrd.uuIIkZ/lib/libpthread.so.0
+10.0.1.111> /lib/libpthread-2.11.1.so -> /tmp/initrd.uuIIkZ/lib/libpthread-2.11.1.so
+10.0.1.111> /lib/libply.so.2 -> /tmp/initrd.uuIIkZ/lib/libply.so.2
+10.0.1.111> /lib/libply.so.2.0.0 -> /tmp/initrd.uuIIkZ/lib/libply.so.2.0.0
+10.0.1.111> /lib/librt.so.1 -> /tmp/initrd.uuIIkZ/lib/librt.so.1
+10.0.1.111> /lib/librt-2.11.1.so -> /tmp/initrd.uuIIkZ/lib/librt-2.11.1.so
+10.0.1.111> /lib/libply-splash-core.so.2 -> /tmp/initrd.uuIIkZ/lib/libply-splash-core.so.2
+10.0.1.111> /lib/libply-splash-core.so.2.0.0 -> /tmp/initrd.uuIIkZ/lib/libply-splash-core.so.2.0.0
+10.0.1.111> /etc/suspend.conf -> /tmp/initrd.uuIIkZ/etc/suspend.conf
+10.0.1.111> This initrd uses dynamic shared objects.
+10.0.1.111> Adding dynamic linker configuration files.
+10.0.1.111> /etc/ld.so.conf -> /tmp/initrd.uuIIkZ/etc/ld.so.conf
+10.0.1.111> Running ldconfig
+10.0.1.111> Installation finished. No error reported.
+10.0.1.111> This is the contents of the device map /boot/grub/device.map.
+10.0.1.111> Check if this is correct or not. If any of the lines is incorrect,
+10.0.1.111> fix it and re-run the script `grub-install'.
+10.0.1.111>
+10.0.1.111> (hd0) /dev/sda
+10.0.1.111> Umounting /dev/sda5...OK
+10.0.1.111> Umounting /dev/sda2...OK
+10.0.1.111> ftp: connect: Connection refused
+10.0.1.111> Local directory now /tmp
+10.0.1.111> Not connected.
+]]></programlisting>
+ </sect2>
+ <sect2>
+ <title>Post duplication process</title>
+ <para>Now client nodes reboots, so we have to switch PXE to a local boot.</para>
+ <para>
+<programlisting><![CDATA[
+[root@node42 ka]# vi /var/lib/tftpboot/X86PC/linux/pxelinux.cfg/default
+DEFAULT local
+]]></programlisting>
+ </para>
+ <para>Nodes hsould be up, we can to see their hardware.</para>
+ <para>
+ <programlisting><![CDATA[
+[root@node42 ka]# ssh render@10.0.1.110
+[render@linux ~]$ lspcidrake
+8139too : Realtek Semiconductor Co., Ltd.|RTL-8139/8139C/8139C+ [NETWORK_ETHERNET] (rev: 10)
+snd_intel8x0 : Intel Corporation|82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller [MULTIMEDIA_AUDIO] (rev: 02)
+i2c_i801 : Intel Corporation|82801EB/ER (ICH5/ICH5R) SMBus Controller [SERIAL_SMBUS] (rev: 02)
+ata_piix : Intel Corporation|82801EB/ER (ICH5/ICH5R) IDE Controller [STORAGE_IDE] (rev: 02)
+iTCO_wdt : Intel Corporation|82801EB/ER (ICH5/ICH5R) LPC Interface Bridge [BRIDGE_ISA] (rev: 02)
+shpchp : Intel Corporation|82801 PCI Bridge [BRIDGE_PCI] (rev: c2)
+ehci_hcd : Intel Corporation|82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller [SERIAL_USB] (rev: 02)
+uhci_hcd : Intel Corporation|82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 [SERIAL_USB] (rev: 02)
+uhci_hcd : Intel Corporation|82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 [SERIAL_USB] (rev: 02)
+uhci_hcd : Intel Corporation|82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 [SERIAL_USB] (rev: 02)
+uhci_hcd : Intel Corporation|82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 [SERIAL_USB] (rev: 02)
+unknown : Intel Corporation|82865G/PE/P Processor to I/O Memory Interface [SYSTEM_OTHER] (rev: 02)
+Card:Intel 810 and later: Intel Corporation|82865G Integrated Graphics Controller [DISPLAY_VGA] (rev: 02)
+unknown : Intel Corporation|82865G/PE/P DRAM Controller/Host-Hub Interface [BRIDGE_HOST] (rev: 02)
+hub : Linux 2.6.33.3-desktop-1mnb uhci_hcd|UHCI Host Controller [Hub|Unused|Full speed (or root) hub]
+hub : Linux 2.6.33.3-desktop-1mnb uhci_hcd|UHCI Host Controller [Hub|Unused|Full speed (or root) hub]
+hub : Linux 2.6.33.3-desktop-1mnb uhci_hcd|UHCI Host Controller [Hub|Unused|Full speed (or root) hub]
+usbhid : |SCISSORS Keyboard [Human Interface Device|Boot Interface Subclass|Keyboard]
+hub : Linux 2.6.33.3-desktop-1mnb uhci_hcd|UHCI Host Controller [Hub|Unused|Full speed (or root) hub]
+hub : Linux 2.6.33.3-desktop-1mnb ehci_hcd|EHCI Host Controller [Hub|Unused|Full speed (or root) hub]
+[render@linux ~]$ cat /etc/modprobe.conf
+install scsi_hostadapter /sbin/modprobe ata_piix; /sbin/modprobe ahci; /bin/true
+alias eth0 8139too
+install usb-interface /sbin/modprobe ehci_hcd; /sbin/modprobe uhci_hcd; /bin/true
+alias sound-slot-0 snd_intel8x0
+
+[root@node42 ka]# ssh render@10.0.1.111
+[render@localhost ~]$ lspcidrake
+ath5k : Atheros Communications Inc.|AR2413 802.11bg NIC [NETWORK_ETHERNET] (rev: 01)
+tg3 : Broadcom Corporation|NetXtreme BCM5701 Gigabit Ethernet [NETWORK_ETHERNET] (rev: 15)
+tg3 : Broadcom Corporation|NetXtreme BCM5701 Gigabit Ethernet [NETWORK_ETHERNET] (rev: 15)
+aic7xxx : Adaptec|AIC-7899P U160/m [STORAGE_SCSI] (rev: 01)
+aic7xxx : Adaptec|AIC-7899P U160/m [STORAGE_SCSI] (rev: 01)
+shpchp : Intel Corporation|80303 I/O Processor PCI-to-PCI Bridge [BRIDGE_PCI] (rev: 01)
+unknown : Broadcom|CIOB-X2 PCI-X I/O Bridge [BRIDGE_HOST] (rev: 03)
+unknown : Broadcom|CIOB-X2 PCI-X I/O Bridge [BRIDGE_HOST] (rev: 03)
+unknown : Broadcom|CIOB-X2 PCI-X I/O Bridge [BRIDGE_HOST] (rev: 03)
+unknown : Broadcom|CIOB-X2 PCI-X I/O Bridge [BRIDGE_HOST] (rev: 03)
+unknown : Broadcom|CSB5 LPC bridge [BRIDGE_ISA]
+ohci_hcd : Broadcom|OSB4/CSB5 OHCI USB Controller [SERIAL_USB] (rev: 05)
+pata_serverworks: Broadcom|CSB5 IDE Controller [STORAGE_IDE] (rev: 93)
+i2c_piix4 : Broadcom|CSB5 South Bridge [BRIDGE_HOST] (rev: 93)
+Card:ATI Mach 64-based cards (no 3D acceleration): ATI Technologies Inc|Rage XL [DISPLAY_VGA] (rev: 27)
+unknown : Dell|Embedded Remote Access: BMC/SMIC device
+unknown : Dell|Remote Access Card III
+unknown : Dell|Embedded Remote Access or ERA/O
+unknown : Broadcom|CMIC-LE [BRIDGE_HOST]
+unknown : Broadcom|CMIC-WS Host Bridge (GC-LE chipset) [BRIDGE_HOST]
+unknown : Broadcom|CMIC-WS Host Bridge (GC-LE chipset) [BRIDGE_HOST] (rev: 13)
+hub : Linux 2.6.33.3-desktop-1mnb ohci_hcd|OHCI Host Controller [Hub|Unused|Full speed (or root) hub]
+
+
+[render@localhost ~]$ cat /etc/modprobe.conf
+install scsi_hostadapter /sbin/modprobe pata_serverworks; /sbin/modprobe aic7xxx; /bin/true
+alias eth0 tg3
+alias eth1 tg3
+install ide-controller /sbin/modprobe ide_generic; /bin/true
+install usb-interface /sbin/modprobe ohci_hcd; /bin/true
+alias wlan0 ath5k
+]]></programlisting>
+ </para>
+ </sect2>
+ </sect1>
+</article>
+<!-- Keep this comment at the end of the file
+Local Variables:
+mode: xml
+sgml-parent-document: (".duplication.xml" "legalnotice")
+End:
+-->
diff --git a/docs/ka_method/docbook-jadetex.dsssl b/docs/ka_method/docbook-jadetex.dsssl
new file mode 100644
index 000000000..5b7d8b96d
--- /dev/null
+++ b/docs/ka_method/docbook-jadetex.dsssl
@@ -0,0 +1,450 @@
+<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [
+<!ENTITY dbstyle SYSTEM "/usr/share/sgml/docbook/dsssl-stylesheets/print/docbook.dsl" CDATA DSSSL>
+]>
+
+<!--
+;; This customization layer is inspired from:
+;;
+;;#######################################################################
+;;# #
+;;# The GNOME Documentation Project's #
+;;# Custion DocBook Stylesheet Layer #
+;;# by Dave Mason dcm@redhat.com #
+;;# Based on Norman Walsh's Modular Stylesheets #
+;;# #
+;;# This is intended as a drop-in replacement for #
+;;# the cygnus-both.dsl file in DocBook Tools. #
+;;# Just copy it to the location dbtools created #
+;;# and rename it cygnus-both.dsl #
+;;# #
+;;# This is Version 1.0-4 #
+;;# patched to fix RTF output (#49677) #
+;;# patched to work with docbook-dsssl-1.72 #
+;;# patched for ADDRESS output (#50605) #
+;;# removed comment and remark #
+;;# disabled use-id-as-filename #
+;;# don't define %graphic-default-extension% #
+;;#######################################################################
+-->
+
+<style-sheet>
+<style-specification use="docbook">
+<style-specification-body>
+
+;;#######################################################################
+;; Change the parameters below at your envy...
+;;#######################################################################
+
+;;======================================
+;;General Options
+;;======================================
+
+;;Do you want to print on both sides of the paper?
+(define %two-side% #f)
+
+;;Do you want enumerated sections? (E.g, 1.1, 1.1.1, 1.2, etc.)
+(define %section-autolabel% #t)
+
+;;Show URL links? If the text of the link and the URL are identical,
+;;the parenthetical URL is suppressed.
+(define %show-ulinks% #t)
+
+;; footnotes at the bottom of each page (and not chapter)
+(define bop-footnotes #t)
+
+;Make Ulinks footnotes to stop bleeding in the edges - this increases
+;'jade --> print' time tremendously keep this in mind before
+;complaining!
+(define %footnote-ulinks% #t)
+
+(define %no-shade-screen% #f)
+
+;;Tex Backend on
+(define tex-backend #t)
+
+;;Define Line Spacing
+(define %line-spacing-factor% 1.1)
+
+;;Define the Paragraph Style
+;;(define para-style
+;; (style
+;; font-size: %bf-size%
+;; color: *blue*
+;; font-weight: 'medium
+;; font-posture: 'upright
+;; font-family-name: %body-font-family%
+;; line-spacing: (* %bf-size% %line-spacing-factor%)))
+
+(define ($object-titles-after$)
+ (list (normalize "figure")))
+
+;;======================================
+;;Book Options
+;;======================================
+
+;;Do you want a title page for a Book?
+(define %generate-book-titlepage% #t)
+
+;;Do you want a separate page for the title?
+(define %generate-book-titlepage-on-separate-page% #f)
+
+;;Generate Book TOC?
+(define %generate-book-toc% #t)
+
+;;What depth should the TOC generate?
+;;!Only top level of appendixes!
+(define (toc-depth nd)
+ (if (string=? (gi nd) (normalize "book"))
+ 3
+ (if (string=? (gi nd) (normalize "appendix"))
+ 0
+ 1)))
+
+;;Do you want a TOC for the element part?
+(define %generate-part-toc% #f)
+
+;;Do you want the part toc on the part titlepage or separate?
+;(define %generate-part-toc-on-titlepage%
+; #t)
+
+;;Generate Part Title Page?
+(define %generate-part-titlepage% #f)
+
+;;Do you want the Part intro on the part title page?
+(define %generate-partintro-on-titlepage% #f)
+
+;;What elements should have a LOT?
+(define ($generate-book-lot-list$)
+ (list (normalize "equation")))
+
+;;Do you want chapters enumerated?
+(define %chapter-autolabel% #t)
+
+;;Do you want Chapter's and Appendix's
+;;to have automatic labels?
+(define %chap-app-running-head-autolabel% #f)
+
+;;======================================
+;;Article Options
+;;======================================
+
+;;Do you want a title page for an Article?
+(define %generate-article-titlepage%
+ #t)
+
+;;Generate Article TOC?
+(define %generate-article-toc%
+ #t)
+
+;;Do you want a separate page for the title?
+(define %generate-article-titlepage-on-separate-page%
+ #t)
+
+;;Do you want the article toc on the titlepage or separate?
+(define %generate-article-toc-on-titlepage%
+ #t)
+
+;;Do you want to start new page numbers with each article?
+(define %article-page-number-restart%
+ #f)
+
+;;Titlepage Separate?
+(define (chunk-skip-first-element-list)
+ '())
+
+;;Titlepage Not Separate
+;(define (chunk-skip-first-element-list)
+; (list (normalize "sect1")
+; (normalize "section")))
+
+;;======================================
+;;Columns
+;;======================================
+
+;;How many columns do you want?
+(define %page-n-columns% 1)
+
+;;How much space between columns?
+(define %page-column-sep% 0.2in)
+
+;;How many Columns on the titlepage?
+(define %titlepage-n-columns% 1)
+
+;;Balance columns?
+(define %page-balance-colums% #t)
+
+;;======================================
+;;Fonts
+;;======================================
+
+;;Defines the general size of the text in the document. normal(10),
+;;presbyopic(12), and large-type(24).
+(define %visual-acuity% "normal")
+
+;;What font would you like for titles?
+(define %title-font-family% "Helvetica")
+
+;;What font would you like for the body?
+(define %body-font-family% "Palatino")
+
+;;What font would you like for mono-seq?
+(define %mono-font-family% "Courier New")
+
+;;If the base fontsize is 10pt, and '%hsize-bump-factor%' is
+;; 1.2, hsize 1 is 12pt, hsize 2 is 14.4pt, hsize 3 is 17.28pt, etc
+(define %hsize-bump-factor%
+ 1.1)
+
+;;What size do you want the body fonts?
+(define %bf-size%
+ (case %visual-acuity%
+ (("tiny") 8pt)
+ (("normal") 10pt)
+ (("presbyopic") 12pt)
+ (("large-type") 24pt)))
+
+(define-unit em %bf-size%)
+
+;;======================================
+;;Margins
+;;======================================
+
+(define %left-right-margin% 2pi)
+
+;;How much indentation for the body?
+(define %body-start-indent% 1pt)
+
+;;How big is the left margin? (relative to physical page)
+(define %left-margin% 2pi) ;white-paper-column
+
+;;How big is the right margin? (relative to physical page)
+(define %right-margin% 2pi) ;white-paper-column
+
+;;How big do you want the margin at the top?
+(define %top-margin%
+(if (equal? %visual-acuity% "large-type")
+ 7.5pi
+ 6pi))
+
+;;How big do you want the margin at the bottom?
+(define %bottom-margin%
+ (if (equal? %visual-acuity% "large-type")
+ 7.5pi
+ 6pi))
+
+;;Define the text width. (Change the elements in the formula rather
+;;than the formula itself)
+;(define %text-width% (- %page-width% (* %left-right-margin% 2)))
+(define %text-width% (- %page-width% (+ %left-margin% %right-margin%)))
+
+;;Define the body width. (Change the elements in the formula rather
+;;than the formula itself)
+(define %body-width% (- %text-width% %body-start-indent%))
+
+;;Define distance between paragraphs
+(define %para-sep% (/ %bf-size% 2.0))
+
+;;Define distance between block elements (figures, tables, etc.).
+(define %block-sep% (* %para-sep% 2.0))
+
+;;Indent block elements?
+(define %block-start-indent% 0pt)
+;0pt
+
+;;======================================
+;;Admon Graphics
+;;======================================
+
+;;Do you want admon graohics on?
+(define %admon-graphics% #t)
+
+;;Where are the admon graphics?
+(define %admon-graphics-path% "images/")
+
+;;======================================
+;;Quadding
+;;======================================
+
+;;What quadding do you want by default; start, center, justify, or end?
+(define %default-quadding% 'justify)
+
+;;What quadding for component titles(Chapter, Appendix, etc)?
+(define %component-title-quadding% 'start)
+
+;;What quadding for section titles?
+(define %section-title-quadding% 'start)
+
+;;What quadding for section sub-titles?
+(define %section-subtitle-quadding% 'start)
+
+;;What quadding for article title?
+(define %article-title-quadding% 'center)
+
+;;What quadding for article sub-titles?
+(define %article-subtitle-quadding% 'center)
+
+;;What quadding for division subtitles?
+(define %division-subtitle-quadding% 'start)
+
+;;What quadding for component subtitles?
+(define %component-subtitle-quadding% 'start)
+
+(define box-start-indent .25in)
+(define box-end-indent 5in)
+
+;;======================================
+;;Paper Options
+;;======================================
+
+;;What size paper do you need? A4, A5, USletter or USlandscape?
+(define %paper-type%
+ "A4")
+
+;;Now define those paper types' width
+(define %page-width%
+ (case %paper-type%
+ (("A4") 210mm)
+ (("A5") 148.5mm)
+ (("USletter") 8.5in)
+ (("USlandscape") 11in)))
+
+;;Now define those paper types' height
+(define %page-height%
+ (case %paper-type%
+ (("A4") 297mm)
+ (("A5") 210mm)
+ (("USletter") 11in)
+ (("USlandscape") 8.5in)))
+
+;;Callouts are confusing in Postscript... fix them.
+(define %callout-fancy-bug% #t)
+
+(define *rgb-color-space*
+ (color-space "ISO/IEC 10179:1996//Color-Space Family::Device RGB"))
+(define *bluet*
+ (color *rgb-color-space* (/ 16 255) (/ 73 255) (/ 148 255)))
+(define *grey*
+ (color *rgb-color-space* (/ 231 255) (/ 231 255) (/ 231 255)))
+(define *bluec*
+ (color *rgb-color-space* (/ 74 255) (/ 97 255) (/ 173 255)))
+(define *black*
+ (color *rgb-color-space* 0 0 0))
+(define *white*
+ (color *rgb-color-space* 1 1 1))
+
+(element (book title)
+ (make sequence
+ color: *black*
+ )
+ )
+
+(element (chapter title)
+ (make paragraph
+ end-indent: 0.3cm
+ quadding: 'center
+ (make box
+ font-size: 16pt
+ font-weight: 'bold
+ background-color: *bluet*
+ color: *white*
+ )
+ (empty-sosofo)
+ )
+ )
+
+(element (title)
+ (make paragraph
+ end-indent: 0.3cm
+ (make box
+ font-size: 13pt
+ font-posture: 'oblique
+ background-color: *bluec*
+ color: *white*
+ )
+ (empty-sosofo)
+ )
+ )
+
+(element (para)
+ (make sequence
+ (make paragraph
+ space-before: 0.3cm
+ font-size: 10pt
+ color: *black*
+ )
+ (empty-sosofo)
+ )
+ )
+
+(element (itemizedlist)
+ (make box
+ background-color: *grey*
+ color: *black*
+ )
+ )
+
+(element (orderedlist)
+ (make box
+ background-color: *grey*
+ color: *black*
+ )
+ )
+
+;;======================================
+;;Non-printing Elements
+;;======================================
+;;(element TITLEABBREV (empty-sosofo))
+;;(element SUBTITLE (empty-sosofo))
+;;(element SETINFO (empty-sosofo))
+;;(element BOOKINFO (empty-sosofo))
+;;(element BIBLIOENTRY (empty-sosofo))
+;;(element BIBLIOMISC (empty-sosofo))
+;;(element BOOKBIBLIO (empty-sosofo))
+;;(element SERIESINFO (empty-sosofo))
+;;(element DOCINFO (empty-sosofo))
+;;(element ARTHEADER (empty-sosofo))
+;;(element revhistory (empty-sosofo))
+;;(element ADDRESS (empty-sosofo))
+
+;;Show comment element?
+(define %show-comments%
+ #t)
+
+;;======================================
+;;Formalpara titles
+;;======================================
+
+
+;;Change the way Formal Paragraph titles are displayed. The commented
+;;out section will run the titles in the paragraphs.
+(element (formalpara title)
+ ;(make sequence
+ ;font-weight: 'bold
+ ;($runinhead$))
+ ($lowtitle$ 5 7))
+
+;;======================================
+;;Inlines
+;;======================================
+
+(element application ($mono-seq$))
+(element command ($bold-seq$))
+(element filename ($mono-seq$))
+(element function ($mono-seq$))
+(element guibutton ($bold-seq$))
+(element guiicon ($bold-seq$))
+(element guilabel ($italic-seq$))
+(element guimenu ($bold-seq$))
+(element guimenuitem ($bold-seq$))
+(element hardware ($bold-mono-seq$))
+(element keycap ($bold-seq$))
+(element literal ($mono-seq$))
+(element parameter ($italic-mono-seq$))
+(element prompt ($mono-seq$))
+(element symbol ($charseq$))
+(element emphasis ($italic-seq$))
+
+</style-specification-body>
+</style-specification>
+<external-specification id="docbook" document="dbstyle">
+</style-sheet> \ No newline at end of file
diff --git a/docs/ka_method/duplication.xml b/docs/ka_method/duplication.xml
new file mode 100644
index 000000000..410c37d40
--- /dev/null
+++ b/docs/ka_method/duplication.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//FR"
+"/usr/share/sgml/docbook/xml-dtd-4.2/docbookx.dtd" [
+<!ENTITY dupli SYSTEM "doc-duplication.xml">
+]>
+<!-- juste un commentaire -->
+<book lang="en">
+ <title>Mageia: HOWTO Clone a system using KA method</title>
+ <bookinfo>
+ <authorgroup>
+ <author>
+ <firstname>Antoine Ginies</firstname>
+ <email>aginies _@_ mandriva.com</email>
+ </author>
+ </authorgroup>
+ <revhistory>
+ <revision>
+ <revnumber>0.3</revnumber>
+ <date>May 2010</date>
+ <authorinitials>ag</authorinitials>
+ <revremark>update/fix</revremark>
+ </revision>
+ <revision>
+ <revnumber>0.2</revnumber>
+ <date>Fev 2010</date>
+ <authorinitials>ag</authorinitials>
+ <revremark>update</revremark>
+ </revision>
+ <revision>
+ <revnumber>0.1</revnumber>
+ <date>OCT 2007</date>
+ <authorinitials>ag</authorinitials>
+ <revremark>update</revremark>
+ </revision>
+ </revhistory>
+ <pubdate>2007</pubdate>
+ </bookinfo>
+ &dupli;
+</book>
diff --git a/docs/ka_method/duplication.xsl b/docs/ka_method/duplication.xsl
new file mode 100644
index 000000000..f2027f5eb
--- /dev/null
+++ b/docs/ka_method/duplication.xsl
@@ -0,0 +1,24 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'
+ xmlns="http://www.w3.org/TR/xhtml1/transitional"
+ exclude-result-prefixes="#default">
+
+<xsl:import href="/usr/share/sgml/docbook/xsl-stylesheets/xhtml/chunk.xsl"/>
+<xsl:param name="chunk.section.depth" select="0"/>
+<xsl:param name="html.ext" select="'.html'"/>
+<xsl:param name="navig.graphics" select="0"/>
+<xsl:param name="generate.chapter.toc" select="0"/>
+<xsl:param name="toc.section.depth" select="3"/>
+<xsl:param name="section.autolabel" select="1"/>
+<xsl:param name="section.label.includes.component.label" select="1"/>
+<xsl:param name="html.stylesheet.type">text/css</xsl:param>
+<xsl:param name="html.stylesheet">styleguibo.css</xsl:param>
+<xsl:param name="chunker.output.encoding" select="'ISO-8859-1'"/>
+<xsl:param name="css.decoration">1</xsl:param>
+<xsl:param name="callout.defaultcolumn" select="'60'"/>
+<xsl:param name="callout.graphics" select="'1'"/>
+<xsl:param name="callout.list.table" select="'1'"/>
+<xsl:param name="callout.graphics.extension" select="'.gif'"/>
+<xsl:param name="callout.graphics.path">images</xsl:param>
+</xsl:stylesheet>
diff --git a/docs/ka_method/oneduplication.xsl b/docs/ka_method/oneduplication.xsl
new file mode 100644
index 000000000..e63762722
--- /dev/null
+++ b/docs/ka_method/oneduplication.xsl
@@ -0,0 +1,37 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'
+ xmlns="http://www.w3.org/TR/xhtml1/transitional"
+ exclude-result-prefixes="#default">
+
+<xsl:import
+ href="/usr/share/sgml/docbook/xsl-stylesheets/xhtml/onechunk.xsl"/>
+<xsl:param name="chunk.section.depth" select="'1'"/>
+<xsl:param name="html.ext" select="'.html'"/>
+<xsl:param name="navig.graphics" select="'0'"/>
+<xsl:param name="generate.chapter.toc" select="'1'"/>
+<xsl:param name="toc.section.depth" select="'3'"/>
+<xsl:param name="generate.toc">
+ appendix toc
+ article toc
+ chapter toc
+ part toc
+ preface toc
+ qandadiv toc
+ qandaset toc
+ reference toc
+ section toc
+ set toc
+</xsl:param>
+<xsl:param name="section.autolabel" select="'1'"/>
+<xsl:param name="chunker.output.encoding" select="'ISO-8859-1'"/>
+<xsl:param name="section.autolabel" select="'1'"/>
+<xsl:param name="section.label.includes.component.label" select="1"/>
+<xsl:param name="html.stylesheet.type">text/css</xsl:param>
+<xsl:param name="html.stylesheet">styleguibo.css</xsl:param>
+<xsl:param name="css.decoration">1</xsl:param>
+<xsl:param name="callout.defaultcolumn" select="'60'"/>
+<xsl:param name="callout.graphics" select="'1'"/>
+<xsl:param name="callout.list.table" select="'1'"/>
+<xsl:param name="callout.graphics.path">images</xsl:param>
+</xsl:stylesheet>
diff --git a/docs/ka_method/styleguibo.css b/docs/ka_method/styleguibo.css
new file mode 100644
index 000000000..9d088cc93
--- /dev/null
+++ b/docs/ka_method/styleguibo.css
@@ -0,0 +1,296 @@
+/* Documentation specific changes */
+
+span.guilabel {
+ padding: 0px, 1px, 0px, 1px;
+ margin: 1px;
+ background: #e6e6e6;
+ border-style: none;
+}
+
+span.guimenu, span.guimenuitem, .guibutton {
+ padding: 0px, 1px, 0px, 1px;
+ margin: 1px;
+ border-top: 1px solid #eeeeee;
+ border-right: 2px solid #cccccc;
+ border-bottom: 2px solid #cccccc;
+ border-left: 1px solid #eeeeee;
+ background: #f5f5f5;
+}
+
+span.accel {
+ text-decoration: underline;
+}
+
+pre.screen { background-color: #E0E0E0; }
+pre.programlisting { background-color: #E0E0E0; }
+
+/* Colours borrowed from Firefox's keyboard shortcuts table */
+.keycap, .keysym {
+ padding: 0px, 1px, 0px, 1px;
+ margin: 1px;
+ border-top: 1px solid #eedddd;
+ border-right: 2px solid #bbaaaa;
+ border-bottom: 2px solid #bbaaaa;
+ border-left: 1px solid #eeeedd;
+ background: #faf6f6;
+ font-family: Courier, monospaced, mono;
+}
+
+
+/* Mandrakesoft.com website default */
+
+BODY {
+ background-color: #ffffff;
+ font-family: Arial, sans-serif;
+ font-size: 14px;
+ color: #333333;
+}
+
+.plinks {
+ background-color: #ffffff;
+ font-family: Arial, sans-serif;
+ font-size: 13px;
+ color: #333333;
+}
+
+TD {
+ font-family: Arial, sans-serif;
+ font-size: 15px;
+ color: #333333;
+}
+
+FORM {
+ display: inline;
+}
+
+A:link {
+ text-decoration: none;
+ color: #21449c;
+}
+
+A:visited {
+ text-decoration: none;
+ color: #21449c;
+}
+
+A:hover {
+ text-decoration: underline;
+ color: #21449c;
+}
+
+A:active {
+ text-decoration: underline;
+ color: #21449c;
+}
+
+INPUT, SELECT {
+ font-size: 15px;
+}
+
+A.News {
+ font-size: 13px;
+ color: #333333;
+}
+
+h1 {
+ font-family: Arial, sans-serif;
+ font-size: 23px;
+ font-weight: bold;
+ color: #000000;
+}
+
+h2 {
+ font-family: Arial, sans-serif;
+ font-size: 18px;
+ font-weight: bold;
+ color: #21449c;
+ display: inline;
+}
+
+h3 {
+ font-family: Arial, sans-serif;
+ font-size: 15px;
+ font-weight: italic;
+ color: #11649b;
+ padding: 25px;
+ display: inline;
+}
+
+h4 {
+ font-family: Arial, sans-serif;
+ font-size: 14px;
+ padding: 45px;
+ display: inline;
+}
+
+h3.div {
+ font-family: Arial, sans-serif;
+ font-size: 11px;
+ padding: 45px;
+ display: inline;
+}
+
+
+#MainTable {
+ width: 900px;
+}
+
+
+#ContentTable {
+ width: 719px;
+}
+
+.SelectedLinks {
+ color: #333333;
+ font-size: 15px;
+ font-weight: bold;
+ padding: 3px;
+ background-color: #eeeeee;
+}
+
+
+.Footer {
+ font-size: 14px;
+ padding: 3px;
+ background-color: #eeeeee;
+}
+
+
+.BoxTitle {
+ font-size: 15px;
+ color: #333333;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ font-weight: bold;
+}
+
+.BoxContent {
+ font-size: 13px;
+ color: #333333;
+ padding-top: 2px;
+ padding-bottom: 2px;
+}
+
+.SelectList {
+ background-color: #ffffff;
+ color: #333333;
+ border-style: none;
+}
+
+.InputText {
+ font-size: 15px;
+ border-style: solid;
+ background-color: #ffffff;
+ border-color: #cccccc;
+}
+
+A.FocusTitle {
+ color: #999999;
+ font-weight: bold;
+ font-size: 15px;
+ font-decoration: none;
+}
+
+.HomeLink, A.HomeLink {
+ color: #21449c;
+ font-size: 15px;
+}
+
+.HomeNewsDate {
+ color: #21449c;
+ font-size: 13px;
+}
+
+.text {
+ font-family: Arial, sans-serif;
+ font-size: 15px;
+ color : #333333;
+}
+
+.texte {
+ font-family: Arial, sans-serif;
+ font-size: 15px;
+ color : #333333;
+}
+
+.text4form {
+ font-family: Arial, sans-serif;
+ font-size: 15px;
+ color: #333333;
+}
+
+
+.titre1 {
+ font-family: Arial, sans-serif;
+ font-size: 15px;
+ font-weight: bold;
+ color: #21449c;
+}
+
+.titre2 {
+ font-family: Arial, sans-serif;
+ font-size: 15px;
+ font-weight: bold;
+ color: #21449c;
+ display: inline;
+}
+
+.titre3 {
+ font-family: Arial, sans-serif;
+ font-size: 15px;
+ font-weight: bold;
+ color: #333333;
+}
+
+.textbox {
+ font-family: Arial, sans-serif;
+ text-align: left;
+ font-size: 15px;
+ color: #000000;
+}
+
+.newsdate {
+ font-family: Arial, sans-serif;
+ font-size: 15px;
+ color: #000000;
+}
+
+.date {
+ font-family: Arial, sans-serif;
+ font-size: 13px;
+ font-weight: normal;
+ color: #333333;
+}
+
+.note {
+ font-family: Arial, sans-serif;
+ font-size: 13px;
+ color: #333366;
+}
+
+.inzedark {
+ font-family: Arial, sans-serif;
+ font-size: 13px;
+ color: #ffffff;
+}
+
+.titrinzedark {
+ font-family: Arial, sans-serif;
+ font-size: 13px;
+ font-weight: bold;
+ color: #ffffff;
+}
+
+.TitreHome1 {
+ font-family: Arial, sans-serif;
+ font-size: 21px;
+ font-weight: bold;
+ color: #acacac;
+ }
+
+.TitreHome2 {
+ font-family: Arial, sans-serif;
+ font-size: 18px;
+ font-weight: bold;
+ color: #21449c;
+ }
diff --git a/docs/mastering-tool-for-restore-cd b/docs/mastering-tool-for-restore-cd
index f915b5059..f40db4d77 100644
--- a/docs/mastering-tool-for-restore-cd
+++ b/docs/mastering-tool-for-restore-cd
@@ -9,7 +9,7 @@ it typically contains:
isolinux/isolinux.bin
isolinux/isolinux.cfg
isolinux/vmlinuz
- install/stage2/rescue.clp
+ install/stage2/rescue.sqfs
data/box.XXX #######################################################
@@ -27,11 +27,11 @@ it typically contains:
- isolinux.cfg customized to call directly save_all or rest_all
(with option keepmounted for rest_all)
- install/stage2/rescue.clp ##########################################
+ install/stage2/rescue.sqfs ##########################################
- compressed loopback containing a iso9660 filesystem.
- it is mostly the same as the mdv rescue.clp, *plus* partimage_whole_disk
- (nb : use extract_compressed_fs/create_compressed_fs to expand/create rescue.clp)
+ it is mostly the same as the mdv rescue.sqfs, *plus* partimage_whole_disk
+ (nb : use extract_compressed_fs/create_compressed_fs to expand/create rescue.sqfs)
Mastering process ##############################################################
@@ -80,5 +80,5 @@ Build process ##################################################################
- in gi/rescue, call
./make_partimage_save_rest_all partimage-0.6.4-7mdk.i586.rpm /var/lib/partimage /data/box.XXX
- => it calls ./make_rescue_img with special options to create a special rescue.clp
+ => it calls ./make_rescue_img with special options to create a special rescue.sqfs
=> generates part_save_all.iso and part_rest_all.iso
diff --git a/globetrotter/.perl_checker b/globetrotter/.perl_checker
deleted file mode 100644
index 444722de3..000000000
--- a/globetrotter/.perl_checker
+++ /dev/null
@@ -1,8 +0,0 @@
-Carp::Heavy
-Digest::base
-Gtk2::Gdk::Keysyms
-Net::Ping
-packdrake
-urpm
-warnings
-Packdrakeng
diff --git a/globetrotter/ChangeLog b/globetrotter/ChangeLog
deleted file mode 100644
index 9dad9b73a..000000000
--- a/globetrotter/ChangeLog
+++ /dev/null
@@ -1,276 +0,0 @@
-2005-06-09 13:43 Thierry Vignaud <tvignaud at mandriva.com>
-
- * Makefile: (changelog) only track HEAD changes
-
-2005-06-09 13:07 Thierry Vignaud <tvignaud at mandriva.com>
-
- * make_live: - sync with DrakX's API - add a few comments - we only
- need 4.6Gb for packages now (the DVD image) - update package
- list: o for 10.0 -> LE2005 changes (eg: switch to dkms and the
- like) o install all languages (marketing request) o install
- multimedia plugins & Java runtime environment o do not unselect
- anymore input methods
-
-2005-06-09 12:58 Thierry Vignaud <tvignaud at mandriva.com>
-
- * make_live: (installPackages) help packages' post-install scripts
-
-2005-06-09 12:58 Thierry Vignaud <tvignaud at mandriva.com>
-
- * make_live: (installPackages) help DrakX more
-
-2005-06-09 12:55 Thierry Vignaud <tvignaud at mandriva.com>
-
- * make_live: detect both old and new LaCie models
-
-2005-06-09 12:52 Thierry Vignaud <tvignaud at mandriva.com>
-
- * make_live: prevent building a disk w/o translation catalogs
-
-2005-06-09 12:50 Thierry Vignaud <tvignaud at mandriva.com>
-
- * make_live: prevent warning message about /proc to appear at boot
-
-2005-06-09 12:49 Thierry Vignaud <tvignaud at mandriva.com>
-
- * make_live: - urpmi syntax had changed - install all new media
-
-2005-06-09 12:48 Thierry Vignaud <tvignaud at mandriva.com>
-
- * make_live: devfs is dead
-
-2005-06-09 12:46 Thierry Vignaud <tvignaud at mandriva.com>
-
- * make_live: save X.org conf too on profile switch
-
-2005-06-09 12:31 Thierry Vignaud <tvignaud at mandriva.com>
-
- * make_live: set $::build_globetrotter
-
-2005-06-09 12:13 Thierry Vignaud <tvignaud at mandriva.com>
-
- * move.pm: (install2::configMove) prevent dm service to fail to
- startup because of /tmp/.font-unix's permissions
-
-2005-06-09 12:11 Thierry Vignaud <tvignaud at mandriva.com>
-
- * move.pm: (install2::configMove) workaround init reading inittab
- before any.pm alters it
-
-2005-06-09 12:09 Thierry Vignaud <tvignaud at mandriva.com>
-
- * move.pm: sync with drakx's API
-
-2005-06-09 12:08 Thierry Vignaud <tvignaud at mandriva.com>
-
- * move.pm: (automatic_xconf) class_discard is needed way earlier
-
-2005-06-09 12:07 Thierry Vignaud <tvignaud at mandriva.com>
-
- * move.pm: (install2::configMove) fix killing X11 due to XFree86 ->
- X.org switch
-
-2005-06-09 12:06 Thierry Vignaud <tvignaud at mandriva.com>
-
- * move.pm: (install2::configMove) if formatError() returns nothing,
- better display the raw error
-
-2005-06-09 11:59 Thierry Vignaud <tvignaud at mandriva.com>
-
- * Makefile: fix build
-
-2005-06-09 11:59 Thierry Vignaud <tvignaud at mandriva.com>
-
- * .perl_checker: blacklist more pakcages
-
-2005-06-09 11:58 Thierry Vignaud <tvignaud at mandriva.com>
-
- * runstage2: fix comment
-
-2005-06-02 05:20 Olivier Blin <oblin at mandriva.com>
-
- * hwprofile: fix netprofile stuff
-
-2005-05-25 10:56 Thierry Vignaud <tvignaud at mandriva.com>
-
- * fix-broken-hd.diff: fix broken hd
-
-2005-05-25 10:45 Thierry Vignaud <tvignaud at mandriva.com>
-
- * make_live: unmount partitions even when failled
-
-2005-05-25 10:41 Thierry Vignaud <tvignaud at mandriva.com>
-
- * make_live: display message earlier
-
-2005-05-25 10:40 Thierry Vignaud <tvignaud at mandriva.com>
-
- * make_live: on restoration, tell which one is the packages
- partition when found
-
-2005-05-25 10:39 Thierry Vignaud <tvignaud at mandriva.com>
-
- * make_live: nicely tell that the restoration is completed
-
-2005-05-25 10:39 Thierry Vignaud <tvignaud at mandriva.com>
-
- * make_live: use newly introduced my_exit() in order to display
- better messages
-
-2005-05-25 10:37 Thierry Vignaud <tvignaud at mandriva.com>
-
- * make_live: (my_exit) introduce it for smoother messages
-
-2005-05-25 10:36 Thierry Vignaud <tvignaud at mandriva.com>
-
- * make_live: handle smoothly packages partition with multiple
- kernel packages
-
-2005-05-25 10:35 Thierry Vignaud <tvignaud at mandriva.com>
-
- * make_live: fix fs checking prior to restoration, thus handling
- restoration on fscked hard disks
-
-2005-05-25 10:34 Thierry Vignaud <tvignaud at mandriva.com>
-
- * make_live: when we format the root fs prior to restoring the hd,
- set back the label on the fs so that we can handle an aborted
- restoration (power outrage, ...)
-
-2005-05-25 10:33 Thierry Vignaud <tvignaud at mandriva.com>
-
- * make_live: factorize some code through find_partition()
-
-2004-10-26 17:18 Thierry Vignaud <tvignaud at mandriva.com>
-
- * make_live: do not try to run killall until it has been installed
-
-2004-10-07 02:44 Pixel <pixel at mandriva.com>
-
- * move.pm: - XFdrake can detect a auxmouse which was not detected
- by mousedrake so we need to call various_xfree_conf() - this
- implies adding parameter $do_pkgs to a few functions
-
-2004-08-27 08:11 Thierry Vignaud <tvignaud at mandriva.com>
-
- * ChangeLog: initial commit
-
-2004-08-27 08:10 Thierry Vignaud <tvignaud at mandriva.com>
-
- * Makefile: add changelog target
-
-2004-07-20 04:42 Pixel <pixel@mandrakesoft.com>
-
- * hwprofile, move.pm, runstage2: MandrakeSoft -> Mandrakesoft
-
-2004-07-09 04:47 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: sometimes grub return non zero exit status w/o error
-
-2004-07-09 04:46 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: kill debug message
-
-2004-07-09 04:16 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: do not complain about unmounted usb fs in recue mode
-
-2004-07-09 03:45 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: fix restore mode (initrd's mount failled to mount ext2
- as ext3)
-
-2004-06-30 10:14 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * doc/BUILD: fix build explanation (else make_live will horribly
- die due to missing functions :-()
-
-2004-06-30 09:25 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * doc/BUILD: update how to build instructions
-
-2004-06-30 08:13 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * doc/BUILD: do not forget to update hdlists
-
-2004-06-30 08:12 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * README: fix required packages list
-
-2004-06-30 07:24 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: display a nicer error message when disk is not found
-
-2004-06-29 08:25 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: fix umounting
-
-2004-06-29 05:28 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: unselect uim since mdk10 package of uim IM break first
- time wizard when selecting english
-
-2004-06-29 04:09 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: perl_checker cleanups
-
-2004-06-29 03:36 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: add rescue support
-
-2004-06-24 11:41 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: (installPackages) kill debugging statements
-
-2004-06-24 10:17 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * hwprofile: create hw profile after having run first time wizard
- so that if one refuse the icense, he has to run it again
-
-2004-06-24 07:39 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: make share partition be writeable by unpriviliegied
- users
-
-2004-06-24 07:33 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: add fb2png in order to be able to take screenshots
-
-2004-06-24 07:31 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: per machine firewall configuration
-
-2004-06-18 05:44 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: force installation of both 2.4.x and 2.6.x centrino
- drivers
-
-2004-06-18 05:44 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: - use labels for home and packages partitions too -
- mount packages partition in read-only mode
-
-2004-06-18 04:08 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * make_live: install autologin as requested by QA
-
-2004-06-15 18:56 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * README: update package versions to reflect current globetrotter
-
-2004-06-15 18:54 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * README: update what's required in new initscripts
-
-2004-06-15 18:50 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * .perl_checker, Makefile, README, hwprofile, make_live,
- mandrake-globetrotter.spec, move.pm, runstage2, doc/BUGS,
- doc/BUILD, doc/NOTES: Imported Globetrotter
-
-2004-06-15 18:50 Thierry Vignaud <tvignaud@mandrakesoft.com>
-
- * .perl_checker, Makefile, README, hwprofile, make_live,
- mandrake-globetrotter.spec, move.pm, runstage2, doc/BUGS,
- doc/BUILD, doc/NOTES: Initial revision
-
diff --git a/globetrotter/Makefile b/globetrotter/Makefile
deleted file mode 100644
index d6a0756cd..000000000
--- a/globetrotter/Makefile
+++ /dev/null
@@ -1,97 +0,0 @@
-PACKAGE=mandrake-globetrotter
-PKGVERSION:=$(shell rpm -q --qf '%{VERSION}\n' --specfile $(PACKAGE).spec|head -n 1)
-RELEASE:=$(shell rpm -q --qf '%{RELEASE}\n' --specfile $(PACKAGE).spec|head -n 1)
-TAG := $(shell echo "V$(PKGVERSION)_$(RELEASE)" | tr -- '-.' '__')
-
-DIRS=share/po
-PREFIX =
-
-SBINDIR = $(PREFIX)/usr/sbin
-LIBDIR = $(PREFIX)/usr/lib
-LIBDEST = $(LIBDIR)/libDrakX
-DATADIR = $(PREFIX)/usr/share
-
-LANG_FILES = pixmaps/langs
-DISTFILES = hwprofile *.spec share/po/*.po share/po/Makefile Makefile Makefile.config *.pm runstage2 $(LANG_FILES)
-
-.PHONY: all install clean
-
-all:
- rm -f share/po/DrakX.pot # force rebuild of po's
- make -C share/po mofiles
-
-
-localcopy: clean
- cd .. ; rm -rf $(PACKAGE)-$(PKGVERSION) ; cp -af globetrotter $(PACKAGE)-$(PKGVERSION)
- # include pixmaps for language selector:
- mkdir ../$(PACKAGE)-$(PKGVERSION)/{pixmaps,share}
- cp -af ../perl-install/pixmaps/langs ../$(PACKAGE)-$(PKGVERSION)/pixmaps/langs
- # include drakx modules for first time wizard :
- # cp -af ../perl-install/share/po ../$(PACKAGE)-$(PKGVERSION)/share/
- mkdir ../$(PACKAGE)-$(PKGVERSION)/share/po
- # cp -af ../perl-install/share/po/{fr.po,Makefile,i18n_compssUsers} ../$(PACKAGE)-$(PKGVERSION)/share/po
- cp -af ../perl-install/share/po/{*.po,Makefile} ../$(PACKAGE)-$(PKGVERSION)/share/po
- # enable fast build:
- perl -pi -e 's!^.*msgmerge.*\n!!' ../$(PACKAGE)-$(PKGVERSION)/share/po/Makefile
- cp -af ../perl-install/{help,pkgs,install*}.pm ../$(PACKAGE)-$(PKGVERSION)/
- echo 'ALLPMS = *.pm' > ../$(PACKAGE)-$(PKGVERSION)/Makefile.config
- @make nuke_perl
-
-
-install:
- install -d $(LIBDEST) $(DATADIR)/libDrakX/pixmaps/langs $(SBINDIR)
- install -m 644 *.pm $(LIBDEST)
- install -m 755 runstage2 $(SBINDIR)/mdkmove
- cp -f pixmaps/langs/lang-*.png $(DATADIR)/libDrakX/pixmaps/langs
- $(MAKE) -C share/po install PREFIX=$(PREFIX) SUDO= DATADIR=$(DATADIR) NAME=libDrakX2
-# %make -C po install SUDO= NAME=libDrakX2 LOCALEDIR=$(DEST)/usr/share/locale_special
-
-
-rpm: localrpm
-localrpm: localdist buildrpm
-
-srpm: localsrpm
-localsrpm: spec_test localdist buildsrpm
-
-localdist: cleandist localcopy tar
-
-cleandist:
- rm -rf ../$(PACKAGE)-$(PKGVERSION) ../$(PACKAGE)-$(PKGVERSION).tar.bz2
-
-spec_test:
- @if [[ -z "$(PKGVERSION)" ]]; then echo "unable to get spec version"; exit 3;fi
- @if [[ -z "$(RELEASE)" ]]; then echo "unable to get spec release"; exit 2;fi
-
-tar:
- cd ../$(PACKAGE)-$(PKGVERSION) && rm -rf debug.log `find -name CVS`
- cd ..; tar cfj $(PACKAGE)-$(PKGVERSION).tar.bz2 $(patsubst %,$(PACKAGE)-$(PKGVERSION)/%,$(DISTFILES))
- #cd ..; rm -rf $(PACKAGE)-$(PKGVERSION)
-
-buildrpm:
- rpm -ta ../$(PACKAGE)-$(PKGVERSION).tar.bz2
-
-buildsrpm:
- rpm -ts --nodeps ../$(PACKAGE)-$(PKGVERSION).tar.bz2
-
-# rules to build a distributable rpm
-
-dist: cleandist export tar
-
-export:
- cd ..; cvs export -d $(PACKAGE)-$(PKGVERSION) -r $(TAG) $(PACKAGE)
- cd ../$(PACKAGE)-$(PKGVERSION)
- cd ..;
- @make nuke_perl
-
-nuke_perl:
- find ../$(PACKAGE)-$(PKGVERSION) -name '*.pm' | xargs perl -pi -e 's/\s*use\s+(diagnostics|strict|vars|warnings).*//g'
-
-img:
- /usr/bin/lilo-bmp2mdk mode:0x103 progress:397,190,14,6,64+8 clear:600,800,64+8 pos:0,0 < BOOTGTROTTER-install-lilo-8bis.bmp > isolinux_boot.msg
-
-.PHONY: log changelog
-
-log: changelog
-
-changelog:
- cvs2cl --accum -W 400 -U ../../soft/common/username -F TRUNK
diff --git a/globetrotter/README b/globetrotter/README
deleted file mode 100644
index 7052212b3..000000000
--- a/globetrotter/README
+++ /dev/null
@@ -1,64 +0,0 @@
- Mandrakelinux GlobeTrotter, powered by LaCie Mobile Hard Drive project
- ======================================================================
-
-
-
-Requirements:
-=============
-
-1) packages:
-------------
-
-you need to have the distro repositery mounted in /export.
-
-on top of the mdk10.0 base + its updates, the following packages were
-updated from cooker:
-
-- misc bug fixes:
- o drakconf-10-13mdk
- o {drakxtools,harddrake}*-10-34.2mdk
- o mdkonline-1.1-2.1.100mdk
- o menudrake-0.7.4-8mdk
- o perl-Libconf*-0.33-2mdk
- o rpmdrake-2.1.3-5mdk
- o initscripts-7.06-49.1mdk:
- * usb starting when usb host drivers were loaded by initrd
- * fix larsen on laptops
-- root=LABEL=foobar and boot from USB support:
- o mkinitrd-3.5.18-10mdk
- o bootloader-utils-1.7-1mdk
-- coexistance:
- o glibc with /etc/ld.so.conf.d/ support
- o ATI driver
- o NIVIDIA driver
-- new packages:
- o kdetv, libkdevideo
-- should we also take new kernel?
-
-Note: once you've updated some packages, you need to run "gendistrib
- /export".
-
-
-2) local checkout of drakx:
----------------------------
-
-you need a copy of gi/perl-install in ../perl-install as well as
-gi/mdk-stage1.
-
-you need to install the following packages: gcc, e2fsprogs,
-ldetect-devel, libext2fs2-devel, libxfree86-devel, perl-devel,
-perl-URPM, rpm-devel, rpmtools, and urpmi.
-
-then you need to type "make c" in ../perl-install.
-
-last but not least, you need to copy list_modules from gi/kernel into
-perl-install and gi/mdk-stage1/pcmcia_/probe.c into perl-install/c.
-
-
-
-Building the hd image:
-======================
-
-just type ./make_live
-
-it'll reformat the hard disk, mount it and install packages \ No newline at end of file
diff --git a/globetrotter/doc/BUGS b/globetrotter/doc/BUGS
deleted file mode 100644
index 97ff5d8b0..000000000
--- a/globetrotter/doc/BUGS
+++ /dev/null
@@ -1,6 +0,0 @@
--*- outline -*-
-
-* drakboot and diskdrake are not yet fully capable of managing LABEL= in
-/tc/fstab
-
-* lilo failed to boot from USB
diff --git a/globetrotter/doc/BUILD b/globetrotter/doc/BUILD
deleted file mode 100644
index 108c44650..000000000
--- a/globetrotter/doc/BUILD
+++ /dev/null
@@ -1,28 +0,0 @@
- How to build Mandrakelinux Globetrotter:
- ========================================
-
-- you need first to install all the drakxtools' build dependancies
- (thus running "urpmi /SRPMS/drakxtools-*" may be quite helpful)
-
-- copy the mdk10.0 DVD in /export
-- leave main as Mandrake/RPMS
-- copy h[cs]f*, FlashPlayer*, RealPlayer* into Mandrake/RPMS from Mandrake/RPMS[23]
-- move contribs as Mandrake/RPMS2
-- move other RPMS? somewhere else
-- add packages from ~tv/rpm/lacie on cluster
-- add updates from /mnt/BIG/dis/updates/10.0
-- add updated proprietary packages for kernel update from kameha
- (nplanel's work machine):
- echo "mget *2.4.25.5mdk* *2.6.3.13mdk*" | \
-lftp -u a,a ftp://kameha:/~/../nplanel/rpm/prop/RPMS/i586/
-- run the following in order to remove duplicated packages:
- doble [A-Z] | xargs rm -f
- doble [a-g] | xargs rm -f
- doble [h-z] | xargs rm -f
-- run "gendistrib --noclean /export"
-- plug the LaCie disk
-- check out the whole gi cvs module
-- run "C_DRAKX=1 make c" in gi/perl-install
-- go into gi/globetrotter
-- run make_live --partition --format --install --post in order to
- prepare the disk
diff --git a/globetrotter/doc/NOTES b/globetrotter/doc/NOTES
deleted file mode 100644
index 5a43af0e2..000000000
--- a/globetrotter/doc/NOTES
+++ /dev/null
@@ -1,17 +0,0 @@
- Mandrakelinux GlobeTrotter release notes
-
-
-
-* Arabic support
-
-
-you may want to enable the acon service from the acon package.
-Just type: "chkconfig --add jserver" as root or use the "Services"
-icon from the Mandrakelinux Control Center
-
-
-* Japanese support
-
-you may want to enable the jserver service from the FreeWnn package.
-Just type: "chkconfig --add jserver" as root or use the "Services"
-icon from the Mandrakelinux Control Center \ No newline at end of file
diff --git a/globetrotter/fix-broken-hd.diff b/globetrotter/fix-broken-hd.diff
deleted file mode 100644
index 6ae7fa491..000000000
--- a/globetrotter/fix-broken-hd.diff
+++ /dev/null
@@ -1,127 +0,0 @@
---- make_live 2005-05-25 17:42:35.000000000 +0200
-+++ make_live 2005-05-25 17:46:41.000000000 +0200
-@@ -8,6 +8,7 @@
- use standalone;
- use interactive;
- use common;
-+use detect_devices;
- use partition_table;
- use fsedit;
- use fs;
-@@ -321,8 +322,116 @@
-
- $::prefix = $ARGV[0] || '/tmp/live_tree';
-
-+#===========================================================================
-+# Fix disk if it's a bogus one:
-+
-+my @packages2delete = qw(
-+ Mandrake/RPMS/uqm-data-0.3-1mdk.noarch.rpm
-+
-+ Mandrake/RPMS2/kernel24-tmb-2.4.25-6.tmb.1mdk-1-1mdk.i586.rpm
-+ Mandrake/RPMS2/kernel24-tmb-2.4.25-7.tmb.1mdk-1-1mdk.i586.rpm
-+ Mandrake/RPMS2/kernel24-tmb-2.4.25-7.tmb.2mdk-1-1mdk.i586.rpm
-+ Mandrake/RPMS2/kernel24-tmb-enterprise-2.4.25-6.tmb.1mdk-1-1mdk.i586.rpm
-+ Mandrake/RPMS2/kernel24-tmb-enterprise-2.4.25-7.tmb.1mdk-1-1mdk.i586.rpm
-+ Mandrake/RPMS2/kernel24-tmb-enterprise-2.4.25-7.tmb.2mdk-1-1mdk.i586.rpm
-+ Mandrake/RPMS2/kernel24-tmb-i686-up-4GB-2.4.25-6.tmb.1mdk-1-1mdk.i586.rpm
-+ Mandrake/RPMS2/kernel24-tmb-i686-up-4GB-2.4.25-7.tmb.1mdk-1-1mdk.i586.rpm
-+ Mandrake/RPMS2/kernel24-tmb-i686-up-4GB-2.4.25-7.tmb.2mdk-1-1mdk.i586.rpm
-+ Mandrake/RPMS2/kernel24-tmb-source-2.4.25-7.tmb.2mdk.i586.rpm
-+
-+ Mandrake/RPMS2/kernel-tmb-2.6.4-1.tmb.8mdk-1-1mdk.i586.rpm
-+ Mandrake/RPMS2/kernel-tmb-enterprise-2.6.4-1.tmb.8mdk-1-1mdk.i586.rpm
-+ Mandrake/RPMS2/kernel-tmb-i686-up-4GB-2.6.4-1.tmb.8mdk-1-1mdk.i586.rpm
-+ Mandrake/RPMS2/kernel-tmb-source-2.6.4-1.tmb.8mdk.i586.rpm
-+ Mandrake/RPMS2/kernel-win4lin-2.4.25.5mdk-3-7mdk.i586.rpm
-+ Mandrake/RPMS2/kernel-win4lin-2.6.3.15mdk-3-8mdk.i586.rpm
-+ Mandrake/RPMS2/kernel-win4lin-enterprise-2.4.25.5mdk-3-7mdk.i586.rpm
-+ Mandrake/RPMS2/kernel-win4lin-enterprise-2.6.3.15mdk-3-8mdk.i586.rpm
-+ Mandrake/RPMS2/kernel-win4lin-i686-up-4GB-2.4.25.5mdk-3-7mdk.i586.rpm
-+ Mandrake/RPMS2/kernel-win4lin-i686-up-4GB-2.6.3.15mdk-3-8mdk.i586.rpm
-+ Mandrake/RPMS2/kernel-win4lin-p3-smp-64GB-2.4.25.5mdk-3-7mdk.i586.rpm
-+ Mandrake/RPMS2/kernel-win4lin-p3-smp-64GB-2.6.3.15mdk-3-8mdk.i586.rpm
-+ Mandrake/RPMS2/kernel-win4lin-smp-2.4.25.5mdk-3-7mdk.i586.rpm
-+ Mandrake/RPMS2/kernel-win4lin-smp-2.6.3.15mdk-3-8mdk.i586.rpm
-+ );
-+
-+# misc paths;
-+my $pkgs_mount_path = "/mnt/mdk_pkgs";
-+my $rescue_path = "/rescue-glob";
-+my $cd_mount_path = "/mnt/cdrom-glob";
-+
-+# enable to retry fixing partitions if fixing failed:
-+my $__need2befixed_mark = "Mandrake/RPMS/NEED_TO_BE_FIXED";
-+my $need2befixed_mark = "$pkgs_mount_path/__need2befixed_mark";
-+
-+{
-+ mkdir_p($pkgs_mount_path);
-+
-+ my $cleaner = before_leaving {
-+ if (my $err = $@) {
-+ print "\n>> an error happened: $err\n";
-+ }
-+ print "Cleaning on end of fixing\n";
-+ eval { fs::umount($_) } foreach $pkgs_mount_path, $cd_mount_path;
-+ undef $@; # do not propagate fs::umount exceptions
-+ };
-+
-+ print "Checking if the packages partition needs to be fixed\n";
-+ # system("mount /dev/$pkg_dev->{device} $pkgs_mount_path");
-+ fs::mount($pkg_dev->{device}, $pkgs_mount_path, 'ext3');
-+ # my $pkgs_mount_path = "/home/qa/broken"; # FIXME: TESTING
-+
-+ if (any { -e "$pkgs_mount_path/$_" } @packages2delete, $__need2befixed_mark) {
-+ print "Preparing to fixing the partition packages...\n";
-+ touch($need2befixed_mark);
-+
-+ # Cleaning the packages so that we get back some free space:
-+ unlink("$pkgs_mount_path/$_") foreach @packages2delete;
-+
-+
-+ # Lookup rescue CD:
-+
-+ my $cdrom_path;
-+
-+ my @cdroms = map { $_->{device} } detect_devices::cdroms();
-+
-+ mkdir_p($cd_mount_path);
-+
-+ my ($found, $cdrom_dev);
-+
-+ foreach my $cdrom (@cdroms) {
-+ eval { fs::mount($cdrom, $cd_mount_path, 'iso9660', 1) } or next; # nicely handle empty drives
-+ if (-d "$cd_mount_path/$rescue_path") {
-+ $cdrom_dev = $cdrom;
-+ $found = 1;
-+ last;
-+ }
-+ fs:umount($cd_mount_path);
-+ }
-+ undef $@; # do not propagate fs::mount exceptions
-+
-+ if ($found) {
-+ warn "Found rescue CDROM on $cdrom_dev\n";
-+ } else {
-+ warn "I failed to found the rescue CDROM\nPress enter to return to the menu";
-+ <STDIN>;
-+ # TODO : replace by sg else if merged within make_live
-+ exit(0);
-+ }
-+
-+
-+ print "Fixing the partition packages... in progress\n";
-+ # Copy Mandrake/base with the newly generated hdlists from the old repositery;
-+ cp_af($_, "$pkgs_mount_path/Mandrake/base") foreach glob_("$cd_mount_path/$rescue_path/Mandrake/base/*");
-+ cp_af($_, "$pkgs_mount_path/Mandrake/RPMS") foreach glob_("$cd_mount_path/$rescue_path/Mandrake/pkgs/*");
-+ unlink($need2befixed_mark);
-+ print "Fixing the partition packages... done\n";
-+ }
-+}
-+
-+
- #===========================================================================
- # Building the disk:
- -d $::prefix or mkdir $::prefix;
- print "Making live in $::prefix directory.\n";
-
diff --git a/globetrotter/make_live b/globetrotter/make_live
deleted file mode 100755
index bbdb46a3b..000000000
--- a/globetrotter/make_live
+++ /dev/null
@@ -1,547 +0,0 @@
-#!/usr/bin/perl
-
-$::isInstall = 1; # for /root/drakx/ddebug.log
-
-use strict;
-#use lib qw(/usr/lib/libDrakX);
-use lib "../perl-install";
-use standalone;
-use interactive;
-use common;
-use detect_devices;
-use partition_table;
-use fsedit;
-use fs;
-use any;
-use pkgs;
-use class_discard;
-use run_program;
-use modules;
-use modules::modules_conf;
-use modules::any_conf;
-use log;
-
-# my $in = interactive->vnew;
-
-$::isStandalone = undef; # for /tmp/ddebug.log
-$::build_globetrotter = 1;
-$::no_ugtk_init = 1;
-
-my (%options, @new_ARGV);
-
-foreach (@ARGV) {
- if (/^--(.*)/) {
- $options{$1} = 1;
- } else {
- push @new_ARGV, $_;
- }
-}
-
-my $rescue;
-
-if ($0 =~ /restore_globetrotter/) {
- %options = (install => 1, post => 1);
- $rescue = 1;
-}
-
-@ARGV = @new_ARGV;
-
-if (!$rescue) {
- die qq(\%_install_langs is not set to "all" in /etc/rpm/macros) if cat_('/etc/rpm/macros') !~ /\%_install_langs\s*all/;
-}
-
-my @suggestions = (
- { mntpoint => "/", size => 4500 << 11, type => 0x483, ratio => 1, maxsize => 6000 << 11, fs_type => 'ext3' },
- # splited / and /usr:
- # { mntpoint => "/", size => 250 << 11, type => 0x483, ratio => 1, maxsize => 2000 << 11 },
- # { mntpoint => "/usr", size => 300 << 11, type => 0x483, ratio => 4, maxsize => 4000 << 11 },
- { mntpoint => "/home", size => 2000 << 11, type => 0x483, ratio => 3, fs_type => 'ext3' },
-
- # share partition with windows:
- { mntpoint => "/mnt/share", size => 2000 << 11, type => 0xb, ratio => 3, fs_type => 'vfat' },
- { mntpoint => "/mnt/packages", size => 5000 << 11, type => 0x483, ratio => 3, maxsize => 5000 << 11, fs_type => 'ext3' },
- # allocated last b/c end of disk is usually faster:
- { mntpoint => "swap", size => 64 << 11, type => 0x82, ratio => 1, maxsize => 500 << 11, fs_type => 'swap' },
- );
-
-
-sub get_hds() {
- my $all_hds = fsedit::get_hds();
- my $other;
- ($all_hds->{hds}, $other) = partition { $_->{usb_description} =~ /^LaCie|LaCie Hard( |)Drive USB/ } @{$all_hds->{hds}};
- my_exit("Your disk cannot be restored because it cannot be found!") if !$all_hds->{hds}[0];
- $all_hds, $all_hds->{hds}[0]; # $other
-}
-
-
-sub prepare_disk() {
- # repartion the hard disk:
- print "PARTITIONNING\n";
- my ($all_hds, $hd, $other) = get_hds();
- # partition_table::remove($hd, $_) while partition_table::get_normal_parts($hd);
- run_program::run("swapoff", "/dev/$all_hds->{hds}[0]{device}8") if any { /$all_hds->{hds}[0]{device}/ } cat_("/proc/partitions");
-
- partition_table::raw::zero_MBR_and_dirty($hd);
- fsedit::allocatePartitions($all_hds, \@suggestions);
- require diskdrake::interactive;
- require class_discard;
- # diskdrake::interactive::write_partitions(class_discard->new, $_, 'skip_check_rebootNeeded') foreach (@{$all_hds->{hds}});
- foreach (@{$all_hds->{hds}}) {
- local $::isStandalone = undef;
- print "WRITE PARTITION ON $_->{file}\n";
- diskdrake::interactive::write_partitions(class_discard->new, $_, 'skip_check_rebootNeeded')
- }
- # partition_table::write(@{$all_hds->{hds}});
- ($all_hds, $hd, $other);
-}
-
-
-sub formatdisk {
- my ($hd) = @_;
- print "FORMATTING\n";
- foreach (partition_table::get_normal_parts($hd)) {
- print qq(Formatting "$_->{device}" ($_->{mntpoint})\n);
- require fs::format;
- fs::format::part(undef, $_, $::prefix, undef) if !$::testing;
- }
-}
-
-
-#@ARGV <= 1 or die "usage: make_live [live_location=/tmp/live_tree]\n";
-
- if (!find { m!/proc/bus/usb! } run_program::get_stdout('mount')) {
- warn "USB service is *NOT* started" if !$rescue;
- run_program::get_stdout('service', 'usb', 'start');
- }
-
-sub my_exit {
- my ($msg) = @_;
- print "\n\n==============================================================\n\n";
- print $msg;
- print "\n\nPress <RETURN> to return back to menu\n\n";
- print "==============================================================\n\n";
- <STDIN>;
- c::_exit(0);
-}
-
-sub find_partition {
- my ($label, @parts) = @_;
- find { member(fs::type2fs($_), qw(ext2 ext3)) && chomp_(`e2label /dev/$_->{device} 2>/dev/root`) eq $label } @parts;
-}
-
-my $pkg_dev;
-if ($rescue) {
- system("mount -t tmpfs none /tmp");
- # let be able to see USB devices:
- system("mount -t usbfs none /proc/bus/usb");
- system("modprobe usb-storage; modprobe sd_mod");
- # let be able to detect SCSI hds:
- mkdir("/sys");
- system("mount -t sysfs none /sys");
-
- my ($all_hds, $hd, $other) = get_hds();
- print "Looking for the package partition\n";
- my @parts = partition_table::get_normal_parts($hd);
- $pkg_dev = find_partition("MDK-PKGS", @parts);
- #die "I cannot find the package partition which is needed in order to restore the system!"
- my_exit("Your disk cannot be restored because there is no more a restore partition!") if is_empty_hash_ref($pkg_dev) || !$pkg_dev->{device};
- print "Packages partition was found on $pkg_dev->{device}\n";
- my $root = find_partition("MDK-ROOT", @parts);
- $root = find { $_->{device} eq "sda1" } @parts if is_empty_hash_ref($root);
- #my_exit("I cannot find any hard disk to restore!") if is_empty_hash_ref($root) || !$root->{device};
- my_exit("Your disk cannot be restored because there is no more a root partition!") if is_empty_hash_ref($root) || !$root->{device};
- print "\nPlease wait, disk is being checked, this can take quite some time\n\n";
- run_program::run("e2fsck -C0 -y $_") foreach map {
- my $p = find_partition($_, @parts);
- if_($p, $p->{device}); # handle lost labels
- } "MDK-PKGS", "MDK-HOME"; # MDK-ROOT"
- print "Please wait, disk reinstallation is in progress, this can take quite some time\n";
- print "Formating $root->{device}\n";
- system("mkfs.ext2 -j /dev/$root->{device} > /dev/null\n");
- run_program::run('tune2fs', '-L', "MDK-ROOT", "/dev/$root->{device}"); # prevent lost label if restore aborts before the end
-}
-
-sub installPackages() {
- local $::testing = undef;
-
- # for a gconftool-2 cleaner:
- my $pid = fork();
- !defined $pid and die("cannot fork: $!");
- !$pid and do {
- while (1) {
- sleep(10);
- run_program::run('/usr/bin/killall', 'gconftool-2') if -x '/usr/bin/killall';
- }
- };
- my $_b = before_leaving { kill 'TERM', $pid if $pid };
-
- # ensure no %_install_langs:
- output_p("$::prefix/etc/rpm/macros", "%_install_langs all\n");
- # ensure boot from USB will work:
- output_p("$::prefix/etc/sysconfig/mkinitrd", "forceusb=yes\n");
-
- # help DrakX:
- mkdir_p("$::prefix/$_") foreach qw(tmp/headers var/lib/rpm root/drakx);
-
- # help packages' post scripts:
- mkdir_p("$::prefix/proc");
- run_program::run('mount', '-t', 'proc', 'none', "$::prefix/proc");
- run_program::run('makedev', "$::prefix/dev");
-
- undef *install_any::setDefaultPackages;
- *install_any::setDefaultPackages = sub {};
-
- undef *install_any::getFile;
- *install_any::getFile = sub {
- my ($f, $o_method) = @_;
- log::l("getFile $f:$o_method");
- open(my $F, '/export/' . install_any::relGetFile($f)) or return;
- $F;
- };
-
- undef *c::kernel_version;
- *c::kernel_version = sub {
- #my @l = glob_('/export/Mandrake/RPMS/kernel-enterprise-2.6*');
- my @l = glob_('/export/media/main/kernel-2.6.*');
- @l >= 1 or die "can't find kernel";
- @l <= 1 or warn "too many kernels";
- first(`rpm -qp --qf '%{name}' $l[-1]` =~ /kernel-(.*)/);
- };
-
- my $kernel_version = c::kernel_version();
- # for third party drivers:
- my $dkms_kernel_version = $kernel_version;
- $dkms_kernel_version =~ s/\.(\d*mdk)$/-$1/;
-
- print "INSTALLING\n";
- install_any::setPackages(my $o = $::o =
- bless {
- prefix => $::prefix,
- meta_class => 'desktop',
- modules_conf => modules::modules_conf::read(modules::any_conf::vnew(), '/tmp/modules.conf'),
- default_packages => [
- #- for screenshots:
- qw(fb2png),
- qw(xorg-x11-server xorg-x11-xfs xorg-x11-FBDev),
- qw(openssh-server), #- fred wants it
- qw(alsa-utils cdialog newt),
- qw(k3b-dvd),
- qw(davfs2 nfs-utils samba-server sane-backends xsane xsane-gimp ntp),
- qw(acpi acpid), #- so that removing acpi=ht will work
- qw(mountloop), #- crypted folders
- #- doc:
- (map { "mandrake-doc-$_" } map { ("Drakxtools-Guide-$_", "Command-Line-$_", "Quick-Startup-Plus-$_", "Starter-$_") } qw(de en es fr it)),
- qw(autologin),
- qw(synaptics),
- #- network conf:
- qw(wireless-tools pcmcia-cs),
- #- zeroconf:
- qw(zcip dhcpcd tmdns),
- #- cnx stuff:
- qw(dhcp-client ppp kdenetwork-kppp ppp-pppoatm ppp-pppoe pptp-linux pptp-adsl rp-pppoe),
- "kernel-$kernel_version",
- #- for older machines:
- "kernel-i586-up-1GB-$kernel_version",
- #- ISDN stuff:
- # qw(isdn4net ibod isdn4k-utils), # not installed since it provides an interface (will be automatically installed by drakconnect)
- #- network file sharing:
- qw(nfs-utils-clients samba-client),
- #- network drivers and firmwares:
- qw(eagle-usb ipw2100-firmware ipw2200-firmware ndiswrapper speedtouch speedtouch_mgmt unicorn),
- #- configuration:
- qw(drakconf drakcronat drakfirsttime drakxtools harddrake-ui mdkonline rpmdrake userdrake),
- qw(cups cups-drivers foomatic-db gimpprint hpoj libnet-snmp mtools mtoolsfm nmap printer-filters printer-testpages printer-utils scli xojpanel xpp), #- printer stuff
- #qw(gcc),
- "ati-kernel-$dkms_kernel_version", "nvidia-kernel-$dkms_kernel_version", qw(ati nvidia dkms patch dkms-ati dkms-nvidia libMesaGLU1),
- # qw(hcfpcimodem hsflinmodem ltmodem), #- 2.4.x only
- qw(xinput), #- for some mice
- qw(bash-completion binutils emacs-X11 ntsysv perl-doc perl-Term-Readline-Gnu vim-enhanced openssh-clients lftp diffstat), #- allow debugging
- qw(openssh-askpass-gnome), #- openssh-askpass for mountloop doesn't allow to click on ok/cancel buttons
- qw(clanbomber freeciv-client freeciv-server crack-attack kdegames), #- more games
- qw(numlock), # shorewall # not installed since its default config breaks network (will be automatically installed by drakfirewall)
- qw(xawtv zapping kdetv), #- tv apps
- #- locales:
- qw(scim-hangul scim-m17n scim-tables scim-uim), #- Input Methods
- (map { "locales-$_" } qw(af am ar as az be bg bn br bs ca cs cy da de el en eo es et eu fa fi fo fr fur fy ga gd gl gu gv he hi hr hu hy id ik is it iu ja ka kl km kn ko ku kw ky li lo lt lv mi mk ml mn mr ms mt nds ne nl no oc pa ph pl pt ro ru sc se sk sl sq sr st sv sw ta te tg th tk tr tt uk ur uz vi wa xh yi zh zu)),
- (map { "kde-i18n-$_" } qw(af ar az be bg bn br bs ca cs cy da de el en_GB eo es et eu fa fi fo fr ga gl he hi hr hsb hu id is it ja ko ku lo lt lv mi mk mn ms mt nb nds nl nn nso oc pa pl pt pt_BR ro ru se sk sl sr ss sv ta tg th tr uk uz ven vi wa wen xh zh_CN.GB2312 zh_TW.Big5 zu)),
- (map { "koffice-i18n-$_" } qw(af az bg br ca cs cy da de el en_GB eo es et fa fi fr he hsb hu it ja lo lt mt nb nl nn pl pt pt_BR ru se sk sl sr sv ta tg th tr uk ven xh zh_CN zh_TW zu)),
- (map { "OpenOffice.org-l10n-$_" } qw(af ar ca cs cy da de el en es et eu fi fr he hu it ja ko nb nl nn ns pl pt pt_BR ru sk sl sv tr zh_CN zh_TW zu)),
- #- for GNOME:
- qw(gnome2),
- qw(mozilla-firefox gnome-terminal), # QA request
- (map { "mozilla-firefox-$_" } qw(af br ca cs da de devel el es fi fr ga he hu it ja ko nb nl pl pt pt_BR register ro ru sk sl sv tr zh_CN zh_TW)),
- qw(dosfstools mtools),
- qw(koffice konsole),
- qw(udev dynamic harddrake hotplug mandrake-globetrotter netprofile),
- qw(alsa-utils),
- qw(mozilla-firefox),
- #- plugins:
- qw(acroread acroread-nppdf acroread-plugins FlashPlayer j2re RealPlayer RealPlayer-Codecs RealPlayer-rpnp),
- qw(kdebase-nsplugins kdebase-kcontrol-nsplugins),
- #- fonts:
- qw(xorg-x11-100dpi-fonts xorg-x11-75dpi-fonts),
- qw(fonts-bitmap-tscii fonts-hebrew-elmar),
- (map { "fonts-ttf-$_" } qw(arabic armenian bengali big5 decoratives dejavu ethiopic gb2312 japanese kannada korean latex tamil thai tscii vera west_european)),
- (map { "fonts-type1-$_" } qw(cyrillic greek hebrew)),
- ],
- }, 'install_any');
-
- my %rpmsrate_flags_chosen = map { $_ => 1 } map { @{$_->{flags}} } @{$o->{compssUsers}};
- $rpmsrate_flags_chosen{$_} = 0 foreach qw(CAT_NETWORKING_MAIL_SERVER);
- $rpmsrate_flags_chosen{$_} = 1 foreach qw(CAT_AUDIO CAT_KDE CAT_GNOME CAT_NETWORKING CAT_OFFICE CAT_SYSTEM CAT_MINIMAL_DOCS DVD USB SOUND BURNER UTF8 TV 3D INSTALL);
- $rpmsrate_flags_chosen{qq(LOCALES"$_")} = 1 foreach lang::langsLANGUAGE({ all => 1 });
- pkgs::setSelectedFromCompssList($o->{packages}, \%rpmsrate_flags_chosen, 4, 0);
-
- my $unselect = sub {
- my ($pkg) = @_;
- my $p = pkgs::packageByName($o->{packages}, $pkg);
- pkgs::unselectPackage($o->{packages}, $p) if $p;
- };
-
- $unselect->("kernel-smp-$kernel_version");
-
- # unselect some packages whose services fsck up the box and whose services are not enabled by appropriate tools:
- # (shorewall must be deselected before iptables is)
- $unselect->($_) foreach qw(at hpoj shorewall iptables ntp tmdns zcip );
-
- # unselect uim since uim IM break first time wizard when selecting english:
- #$unselect->($_) foreach qw(uim-applet uim libuim0);
-
- my @toInstall = pkgs::packagesToInstall($o->{packages});
- local $ENV{DURING_INSTALL} = 1;
- $ENV{LD_LIBRARY_PATH} = "/lib:/usr/lib:/usr/X11R6/lib:/usr/lib/qt3/lib";
- pkgs::install(0, \@toInstall, $o->{packages});
-
- eval { fs::mount::umount("$::prefix/proc") };
-}
-
-sub config_X_proprietary_drivers() {
- unlink "$::prefix/usr/lib/libGL.so";
-
- my %name_to_Driver = (NVIDIA_GLX => 'nvidia', ATI_GLX => 'fglrx');
-
- my $lib = 'libGL.so.1';
- symlinkf("/etc/X11/$lib", "$::prefix/usr/lib/$lib");
- foreach (keys %name_to_Driver) {
- my ($full_name) = run_program::rooted_get_stdout($::prefix, 'rpm', '-ql', $_) =~ m!/usr/lib/(\Q$lib\E\..*)! or die '';
- symlinkf($full_name, "$::prefix/usr/lib/$lib.$name_to_Driver{$_}");
- }
- #- remove the dirty hack done by NVIDIA_kernel-xxx proprietary package
- #- we do it by hand when needed
- substInFile { $_ = '' if $_ eq 'nvidia' } "$::prefix/etc/modules";
-}
-
-my $fstab;
-
-my $cleaner = before_leaving {
- if (my $err = $@) {
- print "\n>> an error happened: $err\n";
- }
- print "Cleaning on exiting\n";
- print "- Umounting partitions:\n";
- print "\tumounting /proc\n";
- eval { fs::mount::umount("$::prefix/proc") };
- # fs::umount("$::prefix/$_") foreach 'mnt/packages', 'mnt/share', 'home', '';
- if ($fstab) {
- print "\tumounting everything else\n";
- eval { fs::mount::umount_all($fstab) } or system("umount $::prefix");
- }
- print "\tumounting /tmp\n";
- eval { fs::mount::umount("/tmp") } if $rescue;
- print "Cleaning done\n";
-};
-
-
-$::prefix = $ARGV[0] || '/tmp/live_tree';
-
-
-#===========================================================================
-# Building the disk:
--d $::prefix or mkdir $::prefix;
-print "Making live in $::prefix directory.\n";
-
-
-my ($all_hds, $hd, $other) = do {
- # here we want testing so that diskdrake still set mount points in data structure:
- local $::testing = !$options{partition};
- prepare_disk();
-};
-
-formatdisk($hd) if $options{format};
-
-add2hash($hd, $other);
-
-undef $::testing;
-
-my @parts = partition_table::get_normal_parts($hd);
-
-my ($root) = grep { $_->{mntpoint} eq "/" } @parts;
-print "Root is $root->{device}\n";
-run_program::run('tune2fs', '-L', "MDK-ROOT", "/dev/$root->{device}");
-# fs::mount_part($root, $::prefix);
-$fstab = [ fs::get::fstab($all_hds) ];
-
-# we need to mount every fs we want to see into /etc/fstab !!!
-fs::mount::part($_) foreach sort { $a->{mntpoint} cmp $b->{mntpoint} } @$fstab;
-
-symlink("$::prefix/mnt/packages", "/export") if $rescue;
-
-eval {
- print "Installing packages\n";
- installPackages();
-} if $options{install};
-print "ERROR WHILE INSTALLING PACKAGES: $@\n" if $@;
-log::closeLog;
-
-sub doRootSubst {
- my ($file) = @_;
- substInFile {
- s!/dev/$root->{device}!LABEL=MDK-ROOT!g;
- } $file;
-}
-
-#fs::merge_info_from_mtab($fstab);
-fs::write_fstab($all_hds, $::prefix);
-append_to_file("$::prefix/etc/fstab",
- "none /dev/pts devpts mode=0620 0 0\n",
- "none /proc proc defaults 0 0\n");
-doRootSubst("$::prefix/etc/fstab");
-
-my ($home) = grep { $_->{mntpoint} eq "/home" } @parts;
-my ($mnt_pkgs) = grep { $_->{mntpoint} eq "/mnt/packages" } @parts;
-run_program::run('tune2fs', '-L', "MDK-HOME", "/dev/$home->{device}") if $home;
-run_program::run('tune2fs', '-L', "MDK-PKGS", "/dev/$mnt_pkgs->{device}") if $mnt_pkgs;
-
-substInFile {
- s!defaults\s!defaults,ro ! if m!/mnt/packages!;
- s!defaults\s!defaults,umask=0000 ! if m!/mnt/share!;
- s!/dev/$home->{device}!LABEL=MDK-HOME!g;
- s!/dev/$mnt_pkgs->{device}!LABEL=MDK-PKGS!g;
-} "$::prefix/etc/fstab";
-
-
-#-------------------------------------------------------------------
-#- Bootloader
-print "Configuring bootloader\n";
-system("modprobe loop");
-require keyboard;
-require bootloader;
-
-my $bootloader = {
- keytable => keyboard::keyboard2kmap(keyboard::lang2keyboard('fr')),
- bios => { '/dev/sda' => '0x80' },
- };
-
-bootloader::suggest($bootloader, $all_hds,
- vga_fb => 788,
- quiet => 1);
-
-$bootloader->{method} = 'lilo-graphic';
-
-eval { bootloader::install($bootloader, $all_hds) };
-
-doRootSubst("$::prefix/etc/lilo.conf");
-
-# fix LILO configuration:
-substInFile {
- s!root=(LABEL=MDK-ROOT)!root="\1"!g;
-} "$::prefix/etc/lilo.conf";
-
-run_program::rooted($::prefix, 'lilo');
-
-## disable ISDN by default (bogus isdn4net came with an enabled interface :-():
-#substInFile {
-# s/#ONBOOT.*/ONBOOT="no"/
-#} "$::prefix/etc/sysconfig/network-scripts/ifcfg-ippp0";
-#
-
-print "Post install misc configuration\n";
-
-
-# clean services:
-# cups-lpd ibod isdn4linux isdnlog)) {
-run_program::rooted($::prefix, '/sbin/chkconfig', '--del', $_) foreach qw(acon jserver oki4daemon);
-#foreach my $service (qw(acon atd cups-lpd hpoj ibod iptables isdn4linux isdnlog jserver ntpd oki4daemon shorewall tmdns)) {
-# run_program::rooted($::prefix, '/sbin/chkconfig', '--level', $_, $service, 'off') foreach qw(3 5);
-#}
-
-# probably useless:
-foreach my $service (qw(alsa dm harddrake hotplug sound)) {
- run_program::rooted($::prefix, '/sbin/chkconfig', '--level', $_, $service, 'on') foreach qw(3 5);
-}
-
-if ($options{post}) {
- #-------------------------------------------------------------------
- # save a few more files in profiles
- my $prof_cfg = "$::prefix/etc/netprofile/list";
- my @files = map { chomp_($_) } cat_($prof_cfg);
- # do not save the whole /etc/sysconfig;
- push @files, (map { "/etc/X11/$_" } qw(XF86Config XF86Config-4 xorg.conf)),
- (map { "/etc/sysconfig/$_" } qw(keyboard harddrake2/previous_hw harddisks)),
- (map { "/etc/$_" } qw(modprobe.conf modprobe.preload modules modules.conf)),
- qw(/etc/asound.state /etc/fstab /etc/ld.so.conf/GL.conf /etc/shorewall/);
-
- output($prof_cfg, join("\n", sort @files));
-
-
- #-------------------------------------------------------------------
- #- regenerate library loader and fonts cache
- run_program::rooted($::prefix, 'ldconfig');
- any::fix_broken_alternatives();
- run_program::rooted($::prefix, 'fc-cache'); #- generate cache in all directories mentioned in config file
-
- #- XFree
-
- touch("$::prefix/etc/menu/enable_simplified");
-
- {
- local $ENV{LC_ALL} = 'en_US'; #- update-menus doesn't work when there is no locale (aka locale "C")
- #local $ENV{HOME} = '/'; #- savekdemimetypes.pl needs this otherwise it's tmp file fails
- run_program::rooted($::prefix, 'update-menus', '-n');
- }
-
- run_program::rooted($::prefix, 'nspluginscan'); #- must be run before kbuildsycoca for the ksycoca to be flash plugin aware
-
- $ENV{HELP_BROWSER} = "kfmclient openProfile webbrowsing";
- $ENV{BROWSER} = "kfmclient openProfile webbrowsing";
- $ENV{DESKTOP} = "kde";
- #- faster boot:
- foreach my $lang (lang::list_langs()) {
- local $ENV{LC_ALL} = lang::getLANGUAGE($lang);
- unlink "$::prefix/usr/share/services/ksycoca";
- run_program::rooted($::prefix, 'kbuildsycoca', '--global');
- rename("$::prefix/usr/share/services/ksycoca", "$::prefix/usr/share/services/ksycoca-$lang");
- }
- symlinkf('/etc/X11/ksycoca', "$::prefix/usr/share/services/ksycoca");
-}
-
-# clean gconftool-2 mess:
-unlink $_ foreach glob("$::prefix/core.*");
-
-
-##- Mandrake
-#substInFile {
-# s!Mandrake(l| L)inux release (\S+) \(.*\)!Mandrakelinux Nomad, powered by LaCie Mobile Hard Drive)!;
-#} "$::prefix/etc/mandrake-release";
-#
-
-
-system("rsync -rvltp /export/ $::prefix/mnt/packages/") if !$rescue;
-if ($rescue) {
- foreach (glob("$::prefix/home/*/")) {
- next if /lost\+found/;
- my (undef, undef, undef, undef, $uid) = stat($_);
- my $name = $_;
- $name =~ s!/$!!;
- $name =~ s!.*/!!;
- run_program::rooted($::prefix, "adduser", "-u", $uid, "$name");
- }
-}
-
-unlink $_ foreach glob("$::prefix/var/lib/urpmi/*");
-run_program::rooted($::prefix, 'urpmi.addmedia', '--probe-hdlist', $_, "/mnt/packages/media/$_/") foreach qw(main contrib firmwares dkms modules plugins);
-
-# for fast test replaying:
-run_program::rooted($::prefix, 'tar', 'cfj', '/root/etc.tar.bz2', '/etc');
-
-my_exit($rescue ? "Your disk was succesfully restored!\nYou can now reboot your machine." : "Installation completed.");
diff --git a/globetrotter/mandrake-globetrotter.spec b/globetrotter/mandrake-globetrotter.spec
deleted file mode 100644
index 4bb3a8ac9..000000000
--- a/globetrotter/mandrake-globetrotter.spec
+++ /dev/null
@@ -1,45 +0,0 @@
-Summary: Mandrakelinux Globetrotter tools
-Name: mandrake-globetrotter
-Version: 10
-Release: 1mdk
-Url: http://www.mandrakelinux.com/en/drakx.php3
-Source0: %name-%version.tar.bz2
-License: GPL
-Group: System/Configuration/Other
-Requires: drakxtools netprofile
-BuildRoot: %_tmppath/%name-buildroot
-
-
-%description
-Contains many Mandrakelinux tools needed for Mandrakelinux Globetrotter.
-
-%prep
-%setup -q
-
-%build
-%make
-
-%install
-rm -rf $RPM_BUILD_ROOT
-
-mkdir -p $RPM_BUILD_ROOT/{%_initrddir,%_datadir/harddrake}
-%makeinstall_std PREFIX=$RPM_BUILD_ROOT
-install -m 755 hwprofile $RPM_BUILD_ROOT/%_datadir/harddrake/hwprofile
-
-%find_lang libDrakX2
-
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-
-%files -f libDrakX2.lang
-%defattr(-,root,root)
-%_datadir/harddrake/*
-%_sbindir/*
-/usr/lib/libDrakX/*pm
-/usr/share/libDrakX/pixmaps/lang*
-
-%changelog
-* Wed Apr 28 2004 Thierry Vignaud <tvignaud@mandrakesoft.com> 10-1mdk
-- initial release
diff --git a/globetrotter/move.pm b/globetrotter/move.pm
deleted file mode 100644
index 9c3ae7226..000000000
--- a/globetrotter/move.pm
+++ /dev/null
@@ -1,175 +0,0 @@
-package move; # $Id$
-
-#- Copyright (c) 2004-2005 Mandriva
-#-
-#- This program is free software; you can redistribute it and/or modify
-#- it under the terms of the GNU General Public License as published by
-#- the Free Software Foundation; either version 2, or (at your option)
-#- any later version.
-#-
-#- This program is distributed in the hope that it will be useful,
-#- but WITHOUT ANY WARRANTY; without even the implied warranty of
-#- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-#- GNU General Public License for more details.
-#-
-#- You should have received a copy of the GNU General Public License
-#- along with this program; if not, write to the Free Software
-#- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-use diagnostics;
-use strict;
-
-use c;
-use common;
-use modules;
-use fs;
-use fsedit;
-use run_program;
-use partition_table qw(:types);
-use log;
-use lang;
-use detect_devices;
-
-sub symlinkf_short {
- my ($dest, $file) = @_;
- if (my $l = readlink $dest) {
- $dest = $l if $l =~ m!^/!;
- }
- -d $file and log::l("$file already exists and is a directory! writing in directory may be needed, not overwriting"), return;
- symlinkf($dest, $file);
-}
-
-#- run very soon at stage2 start, setup things on tmpfs rw / that
-#- were not necessary to start stage2 itself (there were setup
-#- by stage1 of course)
-sub init {
- my ($o) = @_;
-
- check_for_xserver() and c::bind_textdomain_codeset('libDrakX2', 'UTF8');
-
-
- -d '/lib/modules/' . c::kernel_version() or warn("ERROR: kernel package " . c::kernel_version() . " not installed\n"), c::_exit(1);
-
- modules::load_category('bus/usb');
- *c::pcmcia_probe = \&detect_devices::pcmcia_probe;
- $o->{pcmcia} ||= !$::noauto && c::pcmcia_probe();
- install_steps::setupSCSI($o);
-
-drakx_stuff:
- $o->{steps}{$_} = { reachable => 1, text => $_ }
- foreach qw(autoSelectLanguage configMove selectMouse setRootPassword addUser configureNetwork miscellaneous selectMouse);
- $o->{orderedSteps_orig} = $o->{orderedSteps};
- $o->{orderedSteps} = [ qw(selectLanguage acceptLicense selectMouse setupSCSI miscellaneous selectKeyboard setRootPassword addUser configureNetwork configMove ) ];
- $o->{steps}{first} = $o->{orderedSteps}[0];
-}
-
-
-
-
-sub enable_service {
- run_program::run('/sbin/chkconfig', '--level', 5, $_[0], 'on');
-}
-
-sub disable_service {
- run_program::run('/sbin/chkconfig', '--del', $_[0], 'on');
-}
-
-sub install2::configMove {
- my $o = $::o;
-
- security::level::set($o->{security});
-
- require install_steps;
- install_steps::addUser($o); # for test, when replaying wizard on an already configured machine
- while ($#{$o->{users}} eq -1) {
- install_steps::addUser($o);
- }
-
- $::noauto and goto after_autoconf;
-
- my $_wait = $o->wait_message(N("Auto configuration"), N("Please wait, detecting and configuring devices..."));
-
- #- automatic printer, timezone, network configs
- require install_steps_interactive;
- if (cat_('/proc/mounts') !~ /nfs/) {
- install_steps_interactive::configureNetwork($o);
- enable_service('network');
- }
- enable_service('netfs');
- install_steps_interactive::summaryBefore($o);
-
- modules::load_category('multimedia/sound');
- enable_service('sound');
-
- detect_devices::isLaptop() or enable_service('numlock');
-
-after_autoconf:
- require timezone;
- timezone::write($o->{timezone});
-
- $o->{useSupermount} = 1;
- fs::set_removable_mntpoints($o->{all_hds});
- require fs::mount_options;
- fs::mount_options::set_all_default($o->{all_hds}, %$o, lang::fs_options($o->{locale}));
-
- $o->{modules_conf}->write;
- require mouse;
- mouse::write_conf($o, $o->{mouse}, 1); #- write xfree mouse conf
- detect_devices::install_addons('');
-
- foreach my $step (@{$o->{orderedSteps_orig}}) {
- next if member($step, @{$o->{orderedSteps}});
- while (my $f = shift @{$o->{steps}{$step}{toBeDone} || []}) {
- log::l("doing remaining toBeDone for undone step $step");
- 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 $@;
- }
- }
- run_program::run('killall', 'Xorg');
- output_p("$::prefix/etc/rpm/macros", "%_install_langs all\n");
- # workaround init reading inittab before any.pm alters it:
- if ($::o->{autologin}) {
- run_program::run('chkconfig', 'dm', 'on');
- run_program::run('telinit', 'Q');
- }
- # prevent dm service to fail to startup because of /tmp/.font-unix's permissions:
- run_program::run('service', 'xfs', 'stop');
- c::_exit(0);
-}
-
-
-
-sub automatic_xconf {
- my ($o) = @_;
-
- log::l('automatic XFree configuration');
-
- any::devfssymlinkf($o->{mouse}, 'mouse');
- local $o->{mouse}{device} = 'mouse';
-
- require Xconfig::default;
- require class_discard;
- $o->{raw_X} = Xconfig::default::configure(class_discard->new, { KEYBOARD => 'uk' }, $o->{mouse}); #- using uk instead of us for now to have less warnings
-
- require Xconfig::main;
- Xconfig::main::configure_everything_auto_install($o->{raw_X}, class_discard->new, {},
- { allowNVIDIA_rpms => sub { [] }, allowATI_rpms => sub { [] }, allowFB => $o->{allowFB} });
-
- modules::load_category('various/agpgart');
-
- my $file = '/etc/X11/XF86Config';
- $file = "$file-4" if -e "$file-4";
- my ($Driver) = cat_($file) =~ /Section "Device".*Driver\s*"(.*?)"/s;
- if ($Driver eq 'nvidia') {
- modules::load('nvidia');
- }
- my $lib = 'libGL.so.1';
- symlinkf_short(-e "/usr/lib/$lib.$Driver" ? "/usr/lib/$lib.$Driver" : "/usr/X11R6/lib/$lib", "/etc/X11/$lib");
-}
-
-sub handleI18NClp {}
-
-
-1;
diff --git a/globetrotter/runstage2 b/globetrotter/runstage2
deleted file mode 100755
index 26d10d4fa..000000000
--- a/globetrotter/runstage2
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/usr/bin/perl
-
-#- Copyright (c) 2004 Mandrakesoft
-#-
-#- This program is free software; you can redistribute it and/or modify
-#- it under the terms of the GNU General Public License as published by
-#- the Free Software Foundation; either version 2, or (at your option)
-#- any later version.
-#-
-#- This program is distributed in the hope that it will be useful,
-#- but WITHOUT ANY WARRANTY; without even the implied warranty of
-#- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-#- GNU General Public License for more details.
-#-
-#- You should have received a copy of the GNU General Public License
-#- along with this program; if not, write to the Free Software
-#- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-# i18n: IMPORTANT: to get correct namespace (libDrakX2 instead of libDrakX)
-BEGIN { unshift @::textdomains, 'libDrakX2' }
-c::bind_textdomain_codeset($_, 'UTF8') foreach 'libDrakX', @::textdomains;
-
-use lib qw(../perl-install /usr/lib/libDrakX);
-use standalone;
-use install2;
-
-#$::isStandalone = 0;
-install2::main(@ARGV, '--globetrotter');
-
-c::_exit(0);
diff --git a/images/Makefile b/images/Makefile
index 1cba94a1d..5ac5cf59c 100644
--- a/images/Makefile
+++ b/images/Makefile
@@ -1,35 +1,42 @@
include ../Makefile.config
-VERSION=1.23
+VERSION=2.92
PRODUCT=drakx-installer-images
-KERNELS=$(shell rpm -qf /lib/modules/2.*)
+KERNELS=$(shell rpm -qf /lib/modules/6.*)
IMAGES_DEST = $(ROOTDEST)/install/images
all: images
-images: all.kernels
- DISTRIB_DESCR=$(DISTRIB_DESCR) ./make_boot_img
+boot.iso: images/boot.iso
+
+images/boot.iso: all.kernels/.list make_boot_img
+ DISTRIB_DESCR=$(DISTRIB_DESCR) DISTRIB_VERSION=$(DISTRIB_VERSION) ./make_boot_img images/boot.iso
+
+all.img: images/all.img
+
+images/all.img: all.kernels/.list make_boot_img
+ DISTRIB_DESCR=$(DISTRIB_DESCR) DISTRIB_VERSION=$(DISTRIB_VERSION) ./make_boot_img images/all.img
+
+images: all.kernels/.list
+ DISTRIB_DESCR=$(DISTRIB_DESCR) DISTRIB_VERSION=$(DISTRIB_VERSION) ./make_boot_img
rm -rf images/alternatives
if [ `ls images/*.img-* 2>/dev/null | wc -l` -gt 0 ]; then \
- mkdir images/alternatives; cd images/alternatives; mv ../*.img-* .; md5sum *.img-* > MD5SUM; \
+ mkdir images/alternatives; cd images/alternatives; mv ../*.img-* .; md5sum *.img-* > MD5SUM; sha512sum *.img-* > SHA512SUM; \
fi
- cd images ; md5sum *.{img,iso}* > MD5SUM
+ cd images; md5sum *.{img,iso}* > MD5SUM; sha512sum *.{img,iso}* > SHA512SUM
-all.kernels: update_kernel ../kernel/list_modules.pm
+all.kernels/.list: update_kernel
./update_kernel $(KERNELS)
+dist: tar
tar:
- rm -rf $(PRODUCT)*.tar* $(PRODUCT)-$(VERSION)
- mkdir -p $(PRODUCT)-$(VERSION)
- svn export -q . $(PRODUCT)-$(VERSION)/images
- svn export -q ../kernel $(PRODUCT)-$(VERSION)/kernel
- cp ../Makefile.config $(PRODUCT)-$(VERSION)/
- tar cfj $(PRODUCT)-$(VERSION).tar.bz2 $(PRODUCT)-$(VERSION)
- rm -rf $(PRODUCT)-$(VERSION)
+ @rm -rf $(PRODUCT)*.tar* $(PRODUCT)-$(VERSION)
+ @cd ..; git archive --prefix=$(PRODUCT)-$(VERSION)/ $(PRODUCT)-$(VERSION) images kernel Makefile.config | xz >images/$(PRODUCT)-$(VERSION).tar.xz;
+ $(info $(PRODUCT)-$(VERSION).tar.xz is ready)
clean:
- rm -rf images isolinux all.kernels modules.description
+ rm -rf images isolinux all.kernels modules.description build
find . -name "*~" -o -name ".#*" | xargs rm -f
install:
@@ -40,3 +47,5 @@ install:
rm -rf $(ROOTDEST)/isolinux
cp -af isolinux $(ROOTDEST)
endif
+
+.PHONY: boot.iso all.img install clean dist tar images
diff --git a/images/NEWS b/images/NEWS
index 843ea4d94..d08d5d491 100644
--- a/images/NEWS
+++ b/images/NEWS
@@ -1,3 +1,771 @@
+Version 2.92 - 18 October 2025 by Jani Välimaa
+- remove 'Memory Test' from boot images as we don't have linux32 module anymore in grub2
+
+Version 2.91 - 29 August 2023 by Thomas Backlund
+
+- switch to Mageia 10 (Cauldron)
+
+Version 2.90 - 11 August 2023 by Thomas Backlund
+
+- update for Mageia 9 release
+
+Version 2.89 - 11 July 2023 by Thomas Backlund
+
+- Sync list_modules with kernel 6.4
+- Sync with kernel 6.0
+
+Version 2.88 - 9 February 2023 by Thomas Backlund
+
+- Sync with kernel 5.19
+- Sync with kernel 6.0
+- Sync with kernel 6.1
+
+Version 2.87 - 31 October 2022 by Martin Whitaker
+
+- update grub.config search label for Mageia 9 (mga#30932)
+
+Version 2.86 - 17 September 2022 by Martin Whitaker
+
+- revert to using Memtest86+, now it is based on PCMemTest
+- Sync with kernel 5.17
+- Sync with kernel 5.18
+
+Version 2.85 - 2 February 2022 by Thierry Vignaud
+
+- Sync with kernel 5.16
+
+Version 2.84 - 6 January 2022 by Thierry Vignaud
+
+- Add missing 'genet' driver
+- Fix installing unicode.pf2
+- Fix warning & use the intended compression level
+- Include 'network-legacy' when using 'nfs' dracut module
+- sync with kernel 5.15
+
+Version 2.83 - 27 February 2021 by Thomas Backlund
+
+- re-enable Cauldron
+
+Version 2.82 - 14 February 2021 by Thomas Backlund
+
+- drop cauldron references
+
+Version 2.81 - 4 January 2021 by Thomas Backlund
+
+- recognize rtw89_pci driver
+
+Version 2.80 - 15 December 2020 by Thierry Vignaud
+
+- identify and include missing firmware for iwlwifi (mga#9541)
+- include amd_sfh HID driver
+
+Version 2.79 - 4 December 2020 by Thierry Vignaud
+
+- sync with kernel 5.10
+
+Version 2.78 - 2 December 2020 by Martin Whitaker
+
+- include michael_mic, needed for TKIP on older wireless devices
+- include more rtw88_*
+
+Version 2.77 - 30 November 2020 by Martin Whitaker
+
+- include lib80211_crypt_*, needed by some wireless devices (mga#9541)
+
+Version 2.76 - 28 November 2020 by Martin Whitaker
+
+- include ccm for WPA2
+
+Version 2.75 - 5 November 2020 by Martin Whitaker
+
+- use pcmemtest instead of memtest86+ (mga#25232)
+- add memory test to UEFI boot menu
+
+Version 2.74 - 14 September 2020 by Thierry Vignaud
+
+- sync with kernel 5.9
+
+Version 2.73 - 19 August 2020 by Thierry Vignaud
+
+- sync with kernel 5.8
+
+Version 2.72 - 28 June 2020 by Thierry Vignaud
+
+- sync with kernel 5.6/5.7
+
+Version 2.71 - 20 March 2020 by Thierry Vignaud
+
+- include amd-rng intel-rng
+
+Version 2.70 - 18 March 2020 by Thierry Vignaud
+
+- include crc32_generic for f2fs
+- include more platform/x86 drivers
+- switch from xz to zstd compression (faster decompression)
+- sync with kernel 5.5
+
+Version 2.69 - 22 December 2019 by Thomas Backlund
+
+- sync with kernel 5.4
+
+Version 2.68 - 9 October 2019 by Thierry Vignaud
+
+- sync with kernel 5.3
+
+Version 2.67 - 30 June 2019 by Thomas Backlund
+
+- Switch to Mageia 8 (Cauldron)
+
+Version 2.66 - 17 June 2019 by Thomas Backlund
+
+- include 8821ce (mga#24605)
+
+Version 2.65 - 7 June 2019 by Thomas Backlund
+
+- drop '(Cauldron)' references
+
+Version 2.64 - 5 June 2019 by Martin Whitaker
+
+- add chromeos_laptop (mga#24891)
+
+Version 2.63 - 1 June 2019 by Martin Whitaker
+
+- add cyapatp (mga#24891)
+
+Version 2.62 - 27 May 2019 by Martin Whitaker
+
+- add intel-lpss* (mga#20327)
+
+Version 2.61 - 26 May 2019 by Martin Whitaker
+
+- add elan_i2c (mga#20327)
+
+Version 2.60 - 11 May 2019 by Thierry Vignaud
+
+- add AMD PCIe MP2 I2C detection
+
+Version 2.59 - 3 May 2019 by Thierry Vignaud
+
+- sync with kernel 5.1
+
+Version 2.58 - 8 April 2019 by Martin Whitaker
+
+- include modules needed by cryptsetup (mga#24638)
+
+Version 2.57 - 18 March 2019 by Thierry Vignaud
+
+- include i2c_algo_bit (mga#20327)
+
+Version 2.56 - 8 March 2019 by Thierry Vignaud
+
+- do not include hyperv_fb (mga#17711)
+- sync with kernel 5.0
+
+Version 2.55 - 30 November 2018 by Thierry Vignaud
+
+- include NFS tools (support NFSv4, ...)
+
+Version 2.54 - 17 November 2018 by Martin Whitaker
+
+- list_modules: don't include vboxvideo (mga#23467)
+
+Version 2.53 - 15 November 2018 by Thierry Vignaud
+
+- sync with kernel 4.1[89]
+
+Version 2.52 - 25 July 2018 by Thomas Backlund
+
+- add missing smartpqi driver (mga#23305)
+
+Version 2.51 - 2 July 2018 by Thomas Backlund
+
+- add missing Mellanox drivers (mga#23263)
+
+Version 2.50 - 22 June 2018 by Thierry Vignaud
+
+- list_modules: add dm-cache + deps (mga#22946)
+- sync with kernel 4.1[5-7]
+
+Version 2.49 - 10 February 2018 by Thierry Vignaud
+
+- further sync with kernel 4.14
+
+Version 2.48 - 19 January 2018 by Thomas Backlund
+
+- sync with kernel 4.14
+
+Version 2.47 - 22 July 2017 by Thomas Backlund
+
+- switch UEFI menu to Mageia 7 (Cauldron)
+
+Version 2.46 - 23 June 2017 by Martin Whitaker
+
+- change default screen resolution to 1024x768 (mga#20624)
+
+Version 2.45 - 22 June 2017 by Thierry Vignaud
+
+- include 8812au (mga#21043)
+
+Version 2.44 - 26 April 2017 by Thomas Backlund
+
+- add missing unicode.pf2 in /EFI/BOOT/fonts/ (mga#19468)
+
+Version 2.43 - 25 February 2017 by Thierry Vignaud
+
+- sync with kernel-4.8
+
+Version 2.42 - 4 February 2017 by Thomas Backlund
+
+- dosfstools 4.1 does not require 63 sector layout anymore
+ on filesystems less than 512MB
+
+Version 2.41 - 6 January 2017 by Thomas Backlund
+
+- disable audit logging as it floods the logs
+- sync with kernel-4.9
+
+Version 2.40 - 22 December 2016 by Thomas Backlund
+
+- fix background theme image name (mga#19468)
+- try to dereference symbolic links in order to fix image size
+ for FAT32 efiboot.img (mga#19323)
+- copy efiboot.img from boot.iso to toplevel isolinux/ so it can be
+ re-used with CI and live isos
+
+Version 2.39 - 8 September 2016 by Thierry Vignaud
+
+- fix colors in boot.iso's first screen (mga#18316)
+
+Version 2.38 - 8 July 2016 by Thierry Vignaud
+
+- include virtio-console
+
+Version 2.37 - 5 July 2016 by Thierry Vignaud
+
+- sync with kernel-4.7
+
+Version 2.36 - 30 June 2016 by Thierry Vignaud
+
+- include some missing wireless drivers (mga#16768)
+
+Version 2.35 - 20 May 2016 by Thomas Backlund
+
+- add sha512 sums for images
+- typo fix (mga#18492)
+
+Version 2.34 - 10 May 2016 by Thomas Backlund
+
+- adjust image creation for new dosfstools 4 using 63 cylinders everywhere
+- let mkdosfs create the image file, and drop usage of dd
+- revert "back to arch dependant isolinux.bin (mga#17771)"
+
+Version 2.33 - 26 Apr 2016 by Thierry Vignaud
+
+- sync with kernel-4.6
+
+Version 2.32 - 21 Feb 2016 by Anne Nicolas
+
+- back to arch dependant isolinux.bin (mga#17771)
+
+Version 2.31 - 10 Jan 2016 by Thomas Backlund
+
+- psmouse is now modular, so add it to list_modules.pm (mga#17470)
+
+Version 2.30 - 22 Dec 2015 by Thierry Vignaud
+
+- sync with kernel-4.4
+
+Version 2.29 - 4 Dec 2015 by Thierry Vignaud
+
+- sync with kernel-4.3
+
+Version 2.28 - 27 Aug 2015 by Thierry Vignaud
+
+- sync with kernel-4.1
+
+Version 2.27 - 13 Jul 2015 by Thomas Backlund
+
+- update efi menus for mga6 (cauldron)
+
+Version 2.26 - 22 May 2015 by Thomas Backlund
+
+- use xorriso for proper efi metadata
+- generate proper efi isohybrid
+
+Version 2.25 - 9 May 2015 by Thomas Backlund
+
+- update UEFI menu
+
+Version 2.24 - 8 May 2015 by Thierry Vignaud
+
+- include r8723bs (mga#15874)
+
+Version 2.23 - 4 May 2015 by Anne Nicolas
+
+- add noiswmd to all entries of isolinux.cfg
+
+Version 2.22 - 13 April 2015 by Thierry Vignaud
+
+- honor BOOT_AUTOMATIC_METHOD env var for UEFI too
+- reduce timeout when using BOOT_AUTOMATIC_METHOD env var
+
+Version 2.21 - 7 April 2015 by Thomas Backlund
+
+- fix finding grub legacy files for hd_grub generation
+- syslinux needs more space on all.img
+
+Version 2.20 - 7 April 2015 by Thomas Backlund
+
+- drop nonexistant linuxefi grub2-efi module
+
+Version 2.19 - 7 April 2015 by Thomas Backlund
+
+- create efi loader at build time
+
+Version 2.18 - 6 April 2015 by Anne Nicolas
+
+- use noiswmd as default boot option (mga#11105)
+
+Version 2.17 - 17 March 2015 by Thierry Vignaud
+
+- include virtio_rng
+
+Version 2.16 - 28 January 2015 by Thierry Vignaud
+
+- sync with kernel-3.19
+
+Version 2.15 - 20 December 2014 by Thierry Vignaud
+
+- sync with kernel-3.18 (mga#14799)
+
+Version 2.14 - 20 December 2014 by Thierry Vignaud
+
+- include new 3.18 USB host drivers (mga#14799)
+
+Version 2.13 - 16 December 2014 by Erwan Velu
+
+- make_boot_img: Avoid gfxboot install string for chain.c32
+- make_boot_img: Using chain.c32 instead of localboot
+
+Version 2.12 - 12 December 2014 by Thierry Vignaud
+
+- include hv_balloon & hyperv_fb
+- include virtio_balloon & vmw_balloon as well
+
+Version 2.11 - 31 August 2014 by Thierry Vignaud
+
+- sync with kernel-3.17
+
+Version 2.10 - 22 August 2014 by Thierry Vignaud
+
+- include paravirtual network driver for hyper-v
+
+Version 2.9 - 6 August 2014 by Thierry Vignaud
+
+- sync with kernel-3.16
+
+Version 2.8 - 15 June 2014 by Thierry Vignaud
+
+- include acpi-cpufreq
+- sync with kernel-3.15
+
+Version 2.7 - 28 April 2014 by Thierry Vignaud
+
+- sync with kernel-3.14
+
+Version 2.6 - 16 February 2014 by Thierry Vignaud
+
+- sync with kernel-3.13
+
+Version 2.5 - 24 January 2014 by Colin Guthrie
+
+- Double syslinux overhead to 256. mga#11795
+
+Version 2.4 - 15 December 2013 by Anne Nicolas
+
+- remove buggy control caracters (#11602)
+- use audit=0 in rescue isolinux config to allow systemd-nspawn to work smoothly
+
+Version 2.3 - 2 December 2013 by Thierry Vignaud
+
+- include "sdhci-acpi" for eMMC (mga#11812)
+
+Version 2.2 - 13 November 2013 by Colin Guthrie
+
+- pass the modules we want in modules.alias, but not in the initrd through to
+ dracut via an environment variable
+- add BOOT_AUTOMATIC_METHOD to inject command line params into boot.iso syslinux
+
+Version 2.1 - 5 November 2013 by Colin Guthrie
+
+- revert back to static per-arch isolinux.cfg files
+
+Version 2.00 - 2 November 2013 by Thomas Backlund
+
+- ensure initrd is created with 644 perms (normally 600 for security reasons)
+- fix 32-bit isolinux wrapper (s/i586/i386)
+
+Version 1.95 - 2 November 2013 by Colin Guthrie
+
+- omit the dracut network module now that we include our own networking kernel modules
+- add a dracut.conf rather than adding lots of command line options
+- ensure initrd is xz compressed
+- include network modules as specified by kernel/list_modules.pm
+
+Version 1.94 - 29 October 2013 by Colin Guthrie
+
+- adapt to a dracut based stage1
+
+Version 1.93 - 14 October 2013 by Thierry Vignaud
+
+- sync with kernel-3.12
+
+Version 1.92 - 10 October 2013 by Thierry Vignaud
+
+- sync with kernel-3.11 (might fix mga#11377)
+
+Version 1.91 - 10 October 2013 by Thierry Vignaud
+
+- partial sync with kernel-3.11 regarding USB: include
+ ehci-tegra, ohci-pci ohci-platform fusbh200-hcd & usb_common
+ (might fix mga#11377)
+
+Version 1.90 - 16 July 2013 by Thierry Vignaud
+
+- sync with kernel-3.10
+
+Version 1.89 - 2 June 2013 by Thomas Backlund
+
+- fix URL in help message (mga#9772)
+- sync with kernel-3.9
+
+Version 1.88.1 - 2 March 2013 by Thomas Backlund
+
+- update list_modules for xen dom0 and virtio support (#9242)
+
+Version 1.88 - 21 January 2013 by Thomas Backlund
+
+- update usb host list for kernel 3.8
+
+Version 1.87 - 16 January 2013 by Thomas Backlund
+
+- include new kernel 3.8 drivers:
+ o phy: at91_ether, macb, mvmdio
+ o usb: cdc_mbim
+ o wifi: ar5523, rtl8723ae
+ o scsi: mpt3sas
+ o raid; csiostor
+ o hid: hid-icade, hid-roccat-lua
+ o sound: snd-scs1x
+- do not include firmware loader anywhere
+
+Version 1.86 - 10 December 2012 by Thierry Vignaud
+
+- include new drivers:
+ o input: hid-sensor-hub
+ o PHY: at803x
+
+Version 1.85 - 21 October 2012 by Thomas Backlund
+
+- add alx ethernet module (#7853)
+
+Version 1.84 - 18 October 2012 by Thierry Vignaud
+
+- include new drivers:
+ o HID: hid-roccat-savu, hid-holtek-kbd, hid-lenovo-tpkbd
+ o NFS: nfsv[2-4]
+ o PHY: bcm87xx
+ o WIFI: iwldvm
+- no more need to fix modules.order
+
+Version 1.83 - 17 September 2012 by Thierry Vignaud
+
+- fix modules.order so that cciss got detected (mga#5833)
+- use new hotplug (mga#6323)
+
+Version 1.82 - 12 September 2012 by Thierry Vignaud
+
+- include overlayfs module instead of unionfs
+
+Version 1.81 - 4 September 2012 by Thierry Vignaud
+
+- include new drivers:
+ o crypto: aesni_intel
+ o input: hid-aureal synaptics_usb
+ o wifi: qmi_wwan, mwifiex_usb
+- remove tokenring drivers
+
+Version 1.80 - 3 September 2012 by Thierry Vignaud
+
+- fix creating some directories when not in debug mode
+
+Version 1.79 - 3 September 2012 by Thierry Vignaud
+
+- do not include ka stuff unlesse BUILD_KA is set
+- precreate /sys
+
+Version 1.78 - 31 August 2012 by Thierry Vignaud
+
+- include new 'hid-generic' driver (mga#7130, #7248)
+
+Version 1.77 - 5 June 2012 by Thierry Vignaud
+
+- do not include "screen" terminfo anymore
+
+Version 1.76 - 1 June 2012 by Thierry Vignaud
+
+- enable to do a debug build in the BS
+- include new drivers:
+ o HID: hid-saitek, hid-tivo
+ o PHY: amd
+ o virt: hv_storvsc, virtio_scsi & xen-netfront
+ o WIFI: ath6kl_usb
+
+Version 1.75 - 17 May 2012 by Thomas Backlund
+
+- add modules.order and modules.builtin in initrd
+
+Version 1.74 - 13 May 2012 by Thierry Vignaud
+
+- include "fuse" module (mga#5685)
+
+Version 1.73 - 10 May 2012 by Thomas Backlund
+
+- add all network phys
+
+Version 1.72 - 10 May 2012 by Thomas Backlund
+
+- add broadcom and libphy to get tg3 to work (#5567)
+
+Version 1.71 - 8 April 2012 by Thomas Backlund
+
+- make isohybrid start first partition on sector 1 (mga #5036)
+
+Version 1.70 - 5 April 2012 by Thierry Vignaud
+
+- include "screen" terminfo (mga#4894)
+
+Version 1.69 - 13 March 2012 by Thierry Vignaud
+
+- include more HID drivers (mga#4905)
+
+Version 1.68 - 12 March 2012 by Thierry Vignaud
+
+- include more USB host controller modules (mga#4905)
+
+Version 1.67 - 24 February 2012 by Thierry Vignaud
+
+- include 'cryptd' & 'xts' modules for new crypted fs (mga#3749)
+
+Version 1.66 - 23 February 2012 by Thierry Vignaud
+
+- include more HID drivers (mga#4129)
+
+Version 1.65 - 15 February 2012 by Thierry Vignaud
+
+- do not recompress modules as XZ since kernel now compress
+ them with XZ
+
+Version 1.64 - 9 February 2012 by Anne Nicolas
+
+- fix isolinux.bin copy due to syslinux 4
+
+Version 1.63 - 27 January 2012 by Thierry Vignaud
+
+- include dkms-modules.alias too (mga#1405)
+
+Version 1.62 - 20 January 2012 by Thierry Vignaud
+
+- smaller stage1:
+ o compress initrd with XZ instead of gzip
+ o recompress gz modules as XZ
+
+Version 1.61 - 19 January 2012 by Thierry Vignaud
+
+- smaller stage1: remove busybox if not in debug mode
+
+Version 1.60 - 5 January 2012 by Thierry Vignaud
+
+- use upstream pppd & pppoe instead of a 10 years old snapshot
+
+Version 1.59 - 29 December 2011 by Thomas Backlund
+
+- sync with kernel-3.2.0-0.rc7.1.mga2
+ * add wireless drivers:
+ at76c50x_usb, ath9k_htc, brcmfmac, i2400m_usb, orinoco_usb,
+ rtl8187, usb8xxx
+ * add usb network adapters:
+ dm9601, smsc75xx, smsc95xx
+ * add network drivers:
+ cxgb4, myri10ge
+
+Version 1.58 - 24 October 2011 by Thierry Vignaud
+
+- include nilfs2 module (#3807)
+
+Version 1.57 - 24 October 2011 by Thomas Backlund
+
+- sync with kernel-3.1.0-1.mga2
+ * add hid devices:
+ hid-keytouch, hid-uclogic
+ * add sas/raid driver:
+ isci
+ * add sound devices:
+ snd-lola, snd-firewire-speakers snd-isight, snd-usb-6fire
+ * add usb/storage:
+ ums-eneub6250, ums-realtek
+ * add wireless drivers:
+ brcmsmac, rtl8187se, rtusb, rtl8192se, rtl8192cu, rtl8192de
+
+Version 1.56 - 06 October 2011 by Thierry Vignaud
+
+- fix isolinux.bin path with new syslinux
+- use gfxboot.c32 as graphical boot loader
+
+Version 1.55 - 22 August 2011 by Thierry Vignaud
+
+- include microcode
+
+Version 1.54 - 20 May 2011 by Olivier Blin
+
+- add ums-* (USB mass storage) modules in disk/usb category
+- merge mkdosfs patch from packages SVN
+ (to replace mkdosfs-with-dir which requires obsolete perl-suid)
+
+Version 1.53 - 5 May 2011 by Anne Nicolas
+
+- make boot.iso isohybrid
+
+Version 1.52 - 25 Apr 2011, by Thomas Backlund
+
+- add sdhci-pci to card-reader list
+- add xhci-hcd (usb3 support)
+
+Version 1.51 - 2 Apr 2011, by Thomas Backlund
+
+- update modules list needed for md raid456 and dm-raid 4/5/6 target
+- compress tarball with xz
+
+Version 1.50 - 13 Oct 2010, by Thierry Vignaud
+
+- 2011.0 build
+
+Version 1.49 - 27 May 2010, by Olivier Blin
+
+- disable restore option
+
+Version 1.48 - 28 February 2010, by Thierry Vignaud
+
+- handle new SCSI driver: mpt2sas (#57833)
+
+Version 1.47 - 4 January 2010, by Pascal Terjan
+
+- use /bin/busybox.static
+
+Version 1.46 - 12 October 2009, by Olivier Blin
+
+- properly fix FileHandle issue
+
+Version 1.45 - 12 October 2009, by Thierry Vignaud
+
+- fix firmware again (#53220)
+
+Version 1.44 - 6 October 2009, by Thierry Vignaud
+
+- do not do anything anymore with bootsplash.cfg
+
+Version 1.43 - 22 September 2009, by Olivier Blin
+
+- fix firmware loading (#49195)
+- revert squashfs-lzma and sqlzma inclusion (this breaks install)
+- list asix module in network/usb group
+
+Version 1.42 - 9 September 2009, by Pascal Terjan
+
+- include squashfs-lzma and sqlzma kernel modules in all.rdz
+- add /dev/ptmx (for screen to work)
+- drop duplicated code including busybox, ka version is better than
+ the one of DEBUGSTAGE1
+- embed all firmwares that are needed by the modules we embed
+
+Version 1.40 - 14 April 2009, by Pascal Terjan
+
+- handle firmware loading in stage2 too
+
+Version 1.39 - 6 April 2009, by Pascal Terjan
+
+- fix firmware helper generation
+
+Version 1.38 - 3 April 2009, by Thierry Vignaud
+
+- include firmwares for most common network cards (#49195)
+- pass restore instead of --restore option
+- add a userspace helper to load firmwares
+
+Version 1.37 - 3 April 2009, by Pascal Terjan
+
+- fix crypto module names when arch is not i586 (#46814)
+
+Version 1.36 - 9 March 2009, by Thierry Vignaud
+
+- add /dev/random and /dev/urandom (for curl)
+
+Version 1.35 - 18 February 2009, by Thierry Vignaud
+
+- pass --restore instead of restore option
+
+Version 1.34 - 10 February 2009, by Thierry Vignaud
+
+- enable to select restore option
+
+Version 1.33 - 23 January 2009, by Christophe Fergeau
+
+- adjust to new syslinux 3.72 gfxboot COM32 module
+
+Version 1.32 - 15 January 2008, by Thierry Vignaud
+
+- include:
+ o network drivers: enic, et131x, qlge, smsc95xx, sxg & w35und
+ o IDE driver: tx4939ide
+- ext4dev was renamed as ext4 in 2.6.29-rc1 (keep ext4dev for older kernels)
+
+Version 1.31 - 19 September 2008, by Pascal "pixel" Rigaux
+
+- add modules "sha256_generic cbc amd768_rng" for crypsetup/LUKS
+
+Version 1.30 - 12 June 2008, by Olivier "blino" Blin
+
+- handle ide-cd being renamed as ide-cd_mod
+
+Version 1.29 - 2 April 2008, by Olivier "blino" Blin
+
+- use "Mdv Boot ISO" as label for boot.iso
+
+Version 1.28 - 12 February 2008, by Olivier "blino" Blin
+
+- restore full modules.alias (depmod keeps only available modules in
+ modules.alias, but we want them all)
+
+Version 1.27 - 12 February 2008, by Olivier "blino" Blin
+
+- add modules in /modules/`uname -r` and use depmod to build
+ modules.dep and modules.alias
+- remove symlinks in toplevel /modules
+- fix custom bootsplash theme support
+
+Version 1.26 - 21 December 2007, by Olivier "blino" Blin
+
+- rebuild with list_modules to handle atl2 ethernet driver
+- fix live stage2 support
+
+Version 1.25 - 12 December 2007, by Pascal "Pixel" Rigaux
+
+- rebuild for new list_modules
+
+Version 1.24 - 15 October 2007, by Olivier "blino" Blin
+
+- rebuild for new list_modules (to include ipw3945)
+
Version 1.23 - 17 September 2007, by Pascal "Pixel" Rigaux
- add dm-zero for dmraid
diff --git a/images/dracut.conf b/images/dracut.conf
new file mode 100644
index 000000000..88efd9a14
--- /dev/null
+++ b/images/dracut.conf
@@ -0,0 +1,4 @@
+hostonly=no
+nofscks=yes
+omit_dracutmodules+=" dash modsign systemd plymouth btrfs crypt lvm cifs resume rootfs-block biosdevname usrmount shutdown "
+compress="zstd -14"
diff --git a/images/grub2.config b/images/grub2.config
new file mode 100644
index 000000000..545722e00
--- /dev/null
+++ b/images/grub2.config
@@ -0,0 +1,33 @@
+
+insmod efi_gop
+insmod efi_uga
+insmod video_bochs
+insmod video_cirrus
+insmod video_fb
+
+insmod font
+if loadfont ${prefix}/fonts/unicode.pf2
+then
+ insmod gfxterm
+ set gfxmode=1024x768,800x600,640x480
+ set gfxpayload=keep
+ terminal_output gfxterm
+fi
+
+insmod png
+set theme=($root)/EFI/BOOT/themes/maggy/theme.txt
+export theme
+
+set timeout=10
+
+search --no-floppy --set=root -l 'Mageia-10-x86_64-netinstall'
+
+menuentry 'Start Mageia 10 (Cauldron) Install' {
+ linux /isolinux/x86_64/vmlinuz audit=0 quiet noiswmd
+ initrd /isolinux/x86_64/all.rdz
+}
+
+menuentry 'Start Mageia 10 (Cauldron) Rescue' {
+ linux /isolinux/x86_64/vmlinuz audit=0 noiswmd rescue
+ initrd /isolinux/x86_64/all.rdz
+}
diff --git a/images/grub2.theme b/images/grub2.theme
new file mode 100644
index 000000000..ff6c463bb
--- /dev/null
+++ b/images/grub2.theme
@@ -0,0 +1,34 @@
+# GRUB gfxmenu theme "maggy".
+
+title-text: "Mageia 10 (Cauldron) UEFI"
+title-font: "MageiaLogo Bold 28"
+title-color: "white"
+
+desktop-image: "grub2-mageia-default.png"
+terminal-font: "Unknown Regular 16"
+
++ boot_menu {
+ left = 20%
+ top = 15%
+ width = 60%
+ height = 55%
+ item_font = "MageiaLogo Regular 20"
+ selected_item_font = "MageiaLogo Bold 20"
+ color_normal="black/black"
+ item_color = "#2397d4"
+ selected_item_color = "white"
+ item_height = 24
+ item_spacing = 10
+}
+
++ progress_bar
+{
+ id = "__timeout__"
+ left = 20%
+ top = 65%
+ width = 60%
+ height = 1%
+ fg_color = "lightskyblue"
+ bg_color = "dodgerblue"
+ border_color = "midnightblue"
+}
diff --git a/images/help.msg.xml b/images/help.msg.xml
index e6d715830..358dcf248 100644
--- a/images/help.msg.xml
+++ b/images/help.msg.xml
@@ -1,5 +1,5 @@
<document>
- <green>Welcome to <blue>Mandriva Linux</blue> install help</green>
+ <green>Welcome to <blue>Mageia</blue> install help</green>
In most cases, the best way to get started is to simply press the <yellow>&lt;Enter&gt;</yellow> key.
If you experience problems with standard install, try one of the following
diff --git a/images/make_boot_img b/images/make_boot_img
index 10e653407..31af50744 100755
--- a/images/make_boot_img
+++ b/images/make_boot_img
@@ -1,28 +1,30 @@
#!/usr/bin/perl
use Config;
+use FileHandle;
use MDK::Common;
+use POSIX;
+use Carp;
+
Config->import;
my ($arch) = $Config{archname} =~ /(.*?)-/;
-my $default_append = '';
+my $default_append = 'audit=0';
my $default_acpi = '';
-my $default_vga = "vga=788 splash=silent";
-my $timeout = 150;
-my $isolinux_bin = $arch eq 'x86_64' ? '/usr/lib/syslinux/isolinux-x86_64.bin' : '/usr/lib/syslinux/isolinux-i586.bin';
-my $lib = $arch eq 'x86_64' ? 'lib64' : 'lib';
+my $default_vga = "vga=791 splash quiet";
+my $default_iswmd = "noiswmd";
+my $timeout = $ENV{BOOT_AUTOMATIC_METHOD} ? 5 : 150;
+my $isolinux_bin = '/usr/lib/syslinux/isolinux.bin';
my $tmp_mnt = '/tmp/drakx_mnt';
-my $tmp_initrd = '/tmp/drakx_initrd';
-my $sudo;
if ($>) {
- $sudo = "sudo";
$ENV{PATH} = "/sbin:/usr/sbin:$ENV{PATH}";
}
sub __ { print @_, "\n"; system(@_) }
-sub _ { __ @_; $? and die }
+sub _ { __ @_; $? and croak "'" . join(' ', @_) . "failed ($?)\n" }
+
sub mke2fs {
my ($f) = @_;
_ "/sbin/mke2fs -q -m 0 -F -s 1 $f";
@@ -35,16 +37,13 @@ mkdir "images";
my @kernels = chomp_(cat_('all.kernels/.list'));
my @all_images = (
- if_($arch =~ /i.86/, 'isolinux', 'boot.iso', 'all.img', 'hd_grub.img'),
- if_($arch =~ /x86_64/, 'isolinux', 'boot.iso', 'all.img', 'hd_grub.img'),
- if_($arch =~ /ia64/, 'all.img'),
- if_($arch =~ /ppc/, 'all.img'),
+ if_($arch =~ /i.86|x86_64/, 'isolinux', 'boot.iso', 'all.img', 'hd_grub.img'),
);
my @images = @ARGV ? @ARGV : map { "images/$_" } @all_images;
foreach my $img (@images) {
- my ($type, $I, $extension) = $img =~ m!([^/]*)(64)?\.([^.]*)$!;
+ my ($type, undef, $extension) = $img =~ m!([^/]*)(64)?\.([^.]*)$!;
if ($img =~ /hd_grub/) {
hd_grub($img);
@@ -57,18 +56,19 @@ foreach my $img (@images) {
} elsif ($img =~ /boot.iso/) {
boot_iso($img, \@kernels);
} elsif ($extension eq 'rdz') {
- initrd($type, $I, "$img-$_") foreach @kernels;
+ initrd("$img-$_", $_) foreach @kernels;
} elsif ($extension eq 'img') {
print STDERR "calling boot_img_$arch for $img\n";
- $::{"boot_img_$arch"}->($type, $I, "$img-$_", "all.kernels/$_/vmlinuz") foreach @kernels;
+ $::{"boot_img_$arch"}->($type, "$img-$_", $_, "all.kernels/$_/vmlinuz") foreach @kernels;
rename("$img-$kernels[0]", $img);
} else {
die "unknown image $img";
}
}
+# The ascii 15 / Shift In / ^O character before the 0 should not be removed
sub syslinux_color {
- "0" . {
+ chr(15) . "0" . {
default => '7',
blue => '9',
green => 'a',
@@ -101,7 +101,7 @@ sub syslinux_msg {
$tree->[0] eq 'document' or die "bad file $msg_xml_file\n";
my $text = xml_tree2syslinux('default', $tree->[1]);
- pack("C*", 0x0E, 0x80, 0x03, 0x00) . " "
+ " "
. $text . join('', @more_text)
. "\n" . syslinux_color('red') . "[F1-Help] [F2-Advanced Help]" . syslinux_color('default') . "\n";
}
@@ -118,9 +118,9 @@ display help.msg
implicit 1
EOF
my $header_gfxboot = <<EOF;
-gfxboot bootlogo
+ui gfxboot.c32 bootlogo
label harddisk
- localboot 0x80
+ com32 chain.c32 hd0 exit
EOF
my $header_non_gfxboot = <<EOF;
F1 help.msg
@@ -138,58 +138,34 @@ EOF
$header . ($b_gfxboot ? $header_gfxboot : $header_non_gfxboot) . join('', @l);
}
-sub initrd {
- my ($type, $I, $img, $bootsplash_cfg) = @_;
- my $stage1_root = $ENV{DEBUGSTAGE1} ? "../mdk-stage1" : "/usr/$lib/drakx-installer-binaries";
-
- _ "rm -rf $tmp_initrd";
- mkdir_p("$tmp_initrd$_") foreach qw(/etc /lib /modules /sbin /tmp /var);
- symlink "/modules", "$tmp_initrd/lib/modules";
-
- symlink "/proc/mounts", "$tmp_initrd/etc/mtab";
- symlink "../tmp", "$tmp_initrd/var/run";
- _ "install -D /usr/share/terminfo/l/linux $tmp_initrd/usr/share/terminfo/l/linux";
- foreach ('pcitable', 'usbtable') {
- _ "install -D /usr/share/ldetect-lst/$_.gz $tmp_initrd/usr/share/ldetect-lst/$_.gz";
- }
- _ "install -D /usr/share/pci.ids $tmp_initrd/usr/share/pci.ids";
- foreach ("/usr/share/ldetect-lst/fallback-modules.alias", "/lib/module-init-tools/ldetect-lst-modules.alias") {
- _ "install -D $_ $tmp_initrd$_";
- }
-
- _ "install $stage1_root/init $tmp_initrd/";
- foreach ('stage1', 'pppd', 'pppoe') {
- _ "install $stage1_root/$_ $tmp_initrd/sbin/";
- }
-
- if ($arch !~ /ppc|ia64/) {
- mkdir_p("$tmp_initrd/etc/pcmcia");
- _ "cp -a /etc/pcmcia/config.opts $tmp_initrd/etc/pcmcia";
- }
- {
- my ($ext) = $img =~ /rdz-(.*)/ or die "bad initrd name ($img)";
- my $modz = "all.kernels$I/$ext";
- mkdir_p("$tmp_initrd/modules/$ext");
- __ "tar xC $tmp_initrd/modules -f $modz/${type}_modules.tar";
- _ "cp -f $modz/modules.dep $modz/modules.alias modules.description $tmp_initrd/modules/$ext";
- symlink "$ext/$_", "$tmp_initrd/modules/$_" foreach qw(modules.dep modules.description);
- }
-
- if ($ENV{DEBUGSTAGE1}) {
- _ "cp -f /usr/bin/busybox $tmp_initrd/sbin";
- symlink "busybox", "$tmp_initrd/sbin/$_" foreach qw(cat chgrp chmod chown chroot chvt clear cp cut date dd df dirname dmesg du echo env false find free grep gunzip gzip halt head id init kill killall klogd linuxrc ln logger ls lsmod mkdir mknod mkswap more mount mv poweroff ps pwd reboot reset rm rmdir sed sleep sh sort swapoff swapon sync syslogd tail tar touch true tty umount uname uniq uptime wc which whoami xargs yes zcat);
- }
+sub trim {
+ return $_[0] =~ s/^\s+|\s+$//rg;
+}
- if ($bootsplash_cfg) {
- _ "splash -s -f $bootspash_cfg > $tmp_initrd/bootsplash";
+sub initrd {
+ my ($img, $kernel) = @_;
+ my $stage1_binary = $ENV{USE_LOCAL_STAGE1} ? trim(`realpath ../mdk-stage1/stage1`) : "";
+ my $init_binary = $ENV{USE_LOCAL_STAGE1} ? trim(`realpath ../mdk-stage1/init`) : "";
+ my $modules = " mgainstaller network-legacy nfs ";
+ my $drivers = `perl ../kernel/modules.pl list_needed_modules $kernel | xargs`;
+ my $fakedrivers = `perl ../kernel/modules.pl list_fake_modules $kernel | xargs`;
+
+ if ($ENV{DEBUGSTAGE1} || $ENV{BUILD_KA}) {
+ $modules="$modules busybox ";
}
+ $modules="$modules mgakadeploy " if $ENV{BUILD_KA};
- my $devs = sprintf "ls /dev/{%s}", join(',', qw(console fb0 fd0 loop3 mem null ppp ptyp0 ram3 tty[0-7] ttyp0 ttyS0));
+ my $extras = `perl ../kernel/modules.pl list_additional_firmware $kernel | xargs`;
+ chomp $extras;
+ my $install_extras = $extras ? "--install '$extras'" : "";
- _ "(cd $tmp_initrd; (find . ; $devs) | cpio -o -c --quiet) | gzip -9 > $img";
- _ "rm -rf $tmp_initrd";
+ mkdir_p("build/dracut.conf.d");
+ # TODO if --nofscks and --no-hostonly are switched, dracut gives an error - fix or report upstream
+ __ "DRAKX_STAGE1_BINARY=$stage1_binary DRAKX_INIT_BINARY=$init_binary DRAKX_FAKE_MODULES='$fakedrivers' dracut --conf dracut.conf --confdir ./build/dracut.conf.d --add ' $modules ' --add-drivers ' $drivers ' $install_extras '$img' '$kernel'";
+ chmod(0644, $img);
}
+
sub entries_append {
my ($type) = @_;
@@ -202,14 +178,15 @@ sub entries_append {
vgahi => "vga=791",
text => "text",
# patch => "patch $default_vga",
- rescue => "rescue",
+ rescue => "audit=0 rescue",
);
my @entries = (
- (map { $_->[0] => "$automatic$default_acpi $_->[1]" } group_by2(@simple_entries)),
- noacpi => "$automatic$default_vga acpi=off",
+ (map { $_->[0] => "$automatic$default_acpi $default_iswmd audit=0 $_->[1]" } group_by2(@simple_entries)),
+ noacpi => "$automatic$default_vga $default_iswmd audit=0 acpi=off",
+# restore => "$automatic$default_vga restore",
);
- map { { label => $_->[0], append => join(' ', grep {$_} $default_append, $_->[1]) } }
+ map { { label => $_->[0], append => join(' ', grep { $_ } $default_append, $_->[1]) } }
group_by2(@entries);
}
@@ -218,13 +195,12 @@ sub syslinux_cfg_all {
syslinux_cfg([
(map {
- { kernel => 'alt0/vmlinuz', initrd => 'alt0/all.rdz', %$_ };
+ { kernel => "$arch/vmlinuz", initrd => "$arch/all.rdz", %$_ };
} entries_append($type)),
(map_index {
- { label => "alt$::i", kernel => "alt$::i/vmlinuz", initrd => "alt$::i/all.rdz",
- append => join(' ', grep {$_} $default_append, $default_acpi, $default_vga) };
+ { label => $arch, kernel => "$arch/vmlinuz", initrd => "$arch/all.rdz",
+ append => join(' ', grep { $_ } $default_append, $default_acpi, $default_vga, $default_iswmd) };
} @kernels),
- { label => 'memtest', kernel => 'memtest' },
], $b_gfxboot);
}
sub remove_ending_zero {
@@ -233,17 +209,16 @@ sub remove_ending_zero {
}
sub boot_img_i386 {
- my ($type, $I, $img, $kernel) = @_;
+ my ($type, $img, $kernel, $vmlinuz) = @_;
_ "rm -rf $tmp_mnt"; mkdir $tmp_mnt;
- _ "cat $kernel > $tmp_mnt/vmlinuz";
+ _ "cat $vmlinuz > $tmp_mnt/vmlinuz";
output("$tmp_mnt/help.msg", syslinux_msg('help.msg.xml'));
output("$tmp_mnt/advanced.msg", syslinux_msg('advanced.msg.xml'));
(my $rdz = $img) =~ s/\.img/.rdz/;
- (my $initrd_type = $type) =~ s/-changedisk//;
- initrd($initrd_type, $I, $rdz);
+ initrd($rdz, $kernel);
my $short_type = substr($type, 0, 8);
output("$tmp_mnt/syslinux.cfg",
@@ -254,10 +229,12 @@ sub boot_img_i386 {
_ "cp -f $rdz $tmp_mnt/$short_type.rdz";
unlink $rdz;
- my $size = max(chomp_(`du -s -k $tmp_mnt`) + 50, 1440);
- _ "dd if=/dev/zero of=$img bs=1k count=$size";
+ # mtools wants the image to be a power of 32.
+ my $syslinux_overhead = 32 * 16;
+ my $size = max(ceil(chomp_(`du -s -k $tmp_mnt`) / 32) * 32 + $syslinux_overhead, 1440);
- _ "mkdosfs-with-dir $tmp_mnt $img";
+ _ "/sbin/mkdosfs -C $img $size";
+ _ "mcopy -i $img $tmp_mnt/* ::";
_ "syslinux $img";
_ "rm -rf $tmp_mnt";
}
@@ -265,398 +242,6 @@ sub boot_img_i386 {
# alias to x86 variant, slightly bigger with images though
sub boot_img_x86_64 { &boot_img_i386 }
-sub boot_img_alpha {
- my ($type, $I, $img) = @_;
-
- __ "$sudo umount $tmp_mnt 2>/dev/null";
- _ "dd if=/dev/zero of=$img bs=1k count=1440";
- mke2fs($img);
- _ "/sbin/e2writeboot $img /boot/bootlx";
- _ "$sudo mount -t ext2 $img $tmp_mnt -o loop";
- _ "cp -f vmlinux.gz $tmp_mnt";
- -f "$type.rdz" ? _ "cp -f $type.rdz $tmp_mnt" : initrd($type, $I, "$tmp_mnt/$type.rdz");
-
- mkdir "$tmp_mnt/etc", 0777;
- output("$tmp_mnt/etc/aboot.conf",
-"0:vmlinux.gz initrd=$type.rdz rw $default_append $type
-1:vmlinux.gz initrd=$type.rdz rw $default_append text $type
-");
- _ "sync";
- _ "df $tmp_mnt";
-}
-
-sub boot_img_ia64 {
- my ($type, $_I, $img, $kernel) = @_;
- my $rdz = $img; $rdz =~ s/\.img/.rdz/;
-
- __ "$sudo umount $tmp_mnt 2>/dev/null";
- _ "dd if=/dev/zero of=$img bs=1k count=16384";
- _ "mkdosfs $img";
- _ "$sudo mount -t vfat $img $tmp_mnt -o loop,umask=000";
- _ "$sudo cp -f $kernel $tmp_mnt/vmlinux";
- _ "cp -f $rdz $tmp_mnt/$type.rdz";
- _ "$sudo cp -f tools/ia64/elilo.efi $tmp_mnt";
- output("$tmp_mnt/elilo.conf", qq(
-prompt
-timeout=50
-
-image=vmlinux
- label=linux
- initrd=$type.rdz
- append=" ramdisk_size=120000"
- read-only
-
-image=vmlinux
- label=rescue
- initrd=$type.rdz
- append=" rescue ramdisk_size=120000"
-"));
- _ "sync";
- _ "df $tmp_mnt";
-
-}
-
-sub boot_img_sparc {
- my ($type, $I, $_img) = @_;
- if ($type =~ /^live(.*)/) {
- #- hack to produce directly into /export the needed file for cdrom boot.
- my $dir = "/export";
- my $boot = "boot"; #- non-absolute pathname only!
-
- _ "mkdir -p $dir/$boot";
- _ "cp -f /boot/cd.b /boot/second.b $dir/$boot";
- _ "cp -f vmlinux$1 $dir/$boot/vmlinux$1";
- -f "live$1.rdz" ? _ "cp -f live$1.rdz $dir/$boot" : initrd($type, $I, "$dir/$boot/live$1.rdz");
-
- output("$dir/$boot/silo.conf", qq(
-partition=1
-default=linux
-timeout=100
-read-write
-message=/$boot/boot.msg
-image="cat /$boot/boot.msg"
- label=1
- single-key
-image="cat /$boot/general.msg"
- label=2
- single-key
-image="cat /$boot/expert.msg"
- label=3
- single-key
-image="cat /$boot/rescue.msg"
- label=4
- single-key
-image="cat /$boot/kickit.msg"
- label=5
- single-key
-image="cat /$boot/param.msg"
- label=6
- single-key
-image[sun4c,sun4d,sun4m]=/$boot/vmlinux
- label=linux
- alias=install
- initrd=/$boot/live.rdz
- append="ramdisk_size=128000"
-image[sun4c,sun4d,sun4m]=/$boot/vmlinux
- label=text
- initrd=/$boot/live.rdz
- append="ramdisk_size=128000 text"
-image[sun4c,sun4d,sun4m]=/$boot/vmlinux
- label=expert
- initrd=/$boot/live.rdz
- append="ramdisk_size=128000 expert"
-image[sun4c,sun4d,sun4m]=/$boot/vmlinux
- label=ks
- initrd=/$boot/live.rdz
- append="ramdisk_size=128000 ks"
-image[sun4c,sun4d,sun4m]=/$boot/vmlinux
- label=rescue
- initrd=/$boot/live.rdz
- append="ramdisk_size=128000 rescue"
-image[sun4u]=/$boot/vmlinux64
- label=linux
- alias=install
- initrd=/$boot/live64.rdz
- append="ramdisk_size=128000"
-image[sun4u]=/$boot/vmlinux64
- label=text
- initrd=/$boot/live64.rdz
- append="ramdisk_size=128000 text"
-image[sun4u]=/$boot/vmlinux64
- label=expert
- initrd=/$boot/live64.rdz
- append="ramdisk_size=128000 expert"
-image[sun4u]=/$boot/vmlinux64
- label=ks
- initrd=/$boot/live64.rdz
- append="ramdisk_size=128000 ks"
-image[sun4u]=/$boot/vmlinux64
- label=rescue
- initrd=/$boot/live64.rdz
- append="ramdisk_size=128000 rescue"
-"));
-
- output("$dir/$boot/README", "
-To Build a Bootable CD-ROM, try:
- genisoimage -R -o t.iso -s /$boot/silo.conf /export
-");
- } elsif ($type =~ /^tftprd(.*)/) {
- my $dir = "/export";
- my $boot = "images";
- my $setarch = $1 ? "sparc64" : "sparc32";
-
- _ "mkdir -p $dir/$boot";
- -f "$type.rdz" or initrd($type, $I, "$type.rdz");
- _ "cp -f vmlinux$1.aout $dir/$boot/$type.img";
- _ "$setarch kernel$1/src/arch/sparc$1/boot/piggyback $dir/$boot/$type.img kernel$1/boot/System.map $type.rdz";
- } elsif ($type =~ /^tftp(.*)/) {
- my $dir = "/export";
- my $boot = "images";
-
- _ "mkdir -p $dir/$boot";
- _ "cp -f vmlinux$1.aout $dir/$boot/$type.img";
- } else {
- my $dir = "floppy";
- __ "$sudo umount $tmp_mnt 2>/dev/null";
- _ "rm -rf $dir";
- _ "mkdir -p $dir";
- _ "cp -f /boot/fd.b /boot/second.b $dir";
- _ "cp -f vmlinuz$I $dir/vmlinux$I.gz";
- -f "$type.rdz" ? _ "cp -f $type.rdz $dir" : initrd($type, $I, "$dir/$type.rdz");
-
- output("$dir/boot.msg", "
-Welcome to Mandriva Linux 7.1
-
-Press <Enter> to install or upgrade a system 7mMandriva Linux7m
-");
-
- output("$dir/silo.conf", qq(
-partition=1
-default=linux
-timeout=100
-read-write
-message=/boot.msg
-image=/vmlinux$I.gz
- label=linux
- initrd=/$type.rdz
- append="ramdisk_size=128000 $type"
-"));
- _ "genromfs -d $dir -f /dev/ram -A 2048,/.. -a 512 -V 'DrakX boot disk'";
- _ "$sudo mount -t romfs /dev/ram $tmp_mnt";
- _ "silo -r $tmp_mnt -F -i /fd.b -b /second.b -C /silo.conf";
- _ "$sudo umount $tmp_mnt";
- _ "dd if=/dev/ram of=$type.img bs=1440k count=1";
- _ "sync";
- _ "$sudo mount -t romfs /dev/ram $tmp_mnt";
- _ "df $tmp_mnt";
- }
-}
-
-sub boot_img_ppc() {
- my ($type, $I, $img, $kernel) = @_;
- (my $rdz = $img) =~ s/\.img/.rdz/;
- foreach (glob("all.kernels/*")) {
- my $ext = basename($_);
- if ($ext =~ /legacy/) {
- initrd("all", $I, "images/all.rdz-$ext");
- _ "mv images/all.rdz-$ext images/all.rdz-legacy";
- _ "cp $_/vmlinuz images/vmlinux-legacy";
- }
- elsif ($ext =~ /2.6/) {
- initrd("all", $I, "images/all.rdz-$ext");
- _ "mv images/all.rdz-$ext images/all.rdz";
- _ "cp $_/vmlinuz images/vmlinux";
- }
- }
- _ "cp -f /usr/lib/yaboot/yaboot images/yaboot";
-
- output("images/ofboot.b", '<CHRP-BOOT>
-<COMPATIBLE>
-MacRISC
-</COMPATIBLE>
-<DESCRIPTION>
-Mandriva Linux PPC bootloader
-</DESCRIPTION>
-<BOOT-SCRIPT>
-" screen" output
-load-base release-load-area
-dev screen
-" "(0000000000aa00aa0000aaaaaa0000aa00aaaa5500aaaaaa)" drop 0 8 set-colors
-" "(5555555555ff55ff5555ffffff5555ff55ffffff55ffffff)" drop 8 8 set-colors
-device-end
-3 to foreground-color
-0 to background-color
-" "(0C)" fb8-write drop
-" Booting Mandriva Linux PPC..." fb8-write drop 100 ms
-boot cd:,\boot\yaboot
-</BOOT-SCRIPT>
-<OS-BADGE-ICONS>
-1010
-000000000000F8FEACF6000000000000
-0000000000F5FFFFFEFEF50000000000
-00000000002BFAFEFAFCF70000000000
-0000000000F65D5857812B0000000000
-0000000000F5350B2F88560000000000
-0000000000F6335708F8FE0000000000
-00000000005600F600F5FD8100000000
-00000000F9F8000000F5FAFFF8000000
-000000008100F5F50000F6FEFE000000
-000000F8F700F500F50000FCFFF70000
-00000088F70000F50000F5FCFF2B0000
-0000002F582A00F5000008ADE02C0000
-00090B0A35A62B0000002D3B350A0000
-000A0A0B0B3BF60000505E0B0A0B0A00
-002E350B0B2F87FAFCF45F0B2E090000
-00000007335FF82BF72B575907000000
-000000000000ACFFFF81000000000000
-000000000081FFFFFFFF810000000000
-0000000000FBFFFFFFFFAC0000000000
-000000000081DFDFDFFFFB0000000000
-000000000081DD5F83FFFD0000000000
-000000000081DDDF5EACFF0000000000
-0000000000FDF981F981FFFF00000000
-00000000FFACF9F9F981FFFFAC000000
-00000000FFF98181F9F981FFFF000000
-000000ACACF981F981F9F9FFFFAC0000
-000000FFACF9F981F9F981FFFFFB0000
-00000083DFFBF981F9F95EFFFFFC0000
-005F5F5FDDFFFBF9F9F983DDDD5F0000
-005F5F5F5FDD81F9F9E7DF5F5F5F5F00
-0083DD5F5F83FFFFFFFFDF5F835F0000
-000000FBDDDFACFBACFBDFDFFB000000
-000000000000FFFFFFFF000000000000
-0000000000FFFFFFFFFFFF0000000000
-0000000000FFFFFFFFFFFF0000000000
-0000000000FFFFFFFFFFFF0000000000
-0000000000FFFFFFFFFFFF0000000000
-0000000000FFFFFFFFFFFF0000000000
-0000000000FFFFFFFFFFFFFF00000000
-00000000FFFFFFFFFFFFFFFFFF000000
-00000000FFFFFFFFFFFFFFFFFF000000
-000000FFFFFFFFFFFFFFFFFFFFFF0000
-000000FFFFFFFFFFFFFFFFFFFFFF0000
-000000FFFFFFFFFFFFFFFFFFFFFF0000
-00FFFFFFFFFFFFFFFFFFFFFFFFFF0000
-00FFFFFFFFFFFFFFFFFFFFFFFFFFFF00
-00FFFFFFFFFFFFFFFFFFFFFFFFFF0000
-000000FFFFFFFFFFFFFFFFFFFF000000
-</OS-BADGE-ICONS>
-</CHRP-BOOT>
-');
-
- output("images/yaboot.conf", '
-init-message = "\nWelcome to Mandriva Linux PPC!\nHit <TAB> for boot options.\n\n"
-timeout = 150
-device=cd:
-default = install-gui
-message=/boot/yaboot.msg
-
-image = /boot/vmlinux
- label = install-gui
- initrd = /boot/all.gz
- initrd-size = 34000
- append = " ramdisk_size=128000"
-
-image = /boot/vmlinux-power4
- label = install-gui-power4
- initrd = /boot/all-power4.gz
- initrd-size = 34000
- append = " ramdisk_size=128000"
-
-image = /boot/vmlinux
- label = install-text
- initrd = /boot/all.gz
- initrd-size = 34000
- append = " text ramdisk_size=128000"
-
-image = /boot/vmlinux-power4
- label = install-text-power4
- initrd = /boot/all-power4.gz
- initrd-size = 34000
- append = " text ramdisk_size=128000"
-
-image = /boot/vmlinux
- label = install-gui-old
- initrd = /boot/all.gz
- initrd-size = 34000
- append = " gui-old ramdisk_size=128000"
-
-image = /boot/vmlinux-power4
- label = install-gui-old-power4
- initrd = /boot/all-power4.gz
- initrd-size = 34000
- append = " gui-old ramdisk_size=128000"
-
-image = enet:0,vmlinux
- label = install-net
- initrd = enet:0,all.gz
- initrd-size = 34000
- append = " ramdisk_size=128000"
-
-image = enet:0,vmlinux-power4
- label = install-net-power4
- initrd = enet:0,all-power4.gz
- initrd-size = 34000
- append = " ramdisk_size=128000"
-
-image = enet:0,vmlinux
- label = install-net-text
- initrd = enet:0,all.gz
- initrd-size = 34000
- append = " text ramdisk_size=128000"
-
-image = enet:0,vmlinux-power4
- label = install-net-text-power4
- initrd = enet:0,all-power4.gz
- initrd-size = 34000
- append = " text ramdisk_size=128000"
-
-image = /boot/vmlinux
- label = rescue
- initrd = /boot/all.gz
- initrd-size = 34000
- append = " rescue ramdisk_size=128000"
-
-image = /boot/vmlinux-power4
- label = rescue-power4
- initrd = /boot/all-power4.gz
- initrd-size = 34000
- append = " rescue ramdisk_size=128000"
-
-image = enet:0,vmlinux
- label = rescue-net
- initrd = enet:0,all.gz
- initrd-size = 34000
- append = " rescue ramdisk_size=128000"
-
-image = enet:0,vmlinux-power4
- label = rescue-net-power4
- initrd = enet:0,all-power4.gz
- initrd-size = 34000
- append = " rescue ramdisk_size=128000"
-');
-
- output("images/yaboot.msg", '
-Thanks for choosing Mandriva Linux PPC. The following is a short
-explanation of the various options for booting the install CD.
-
-All options ending with "-power4" use the BOOT kernel for ppc 9xx and POWER4.
-The default syntax with no suffix uses the BOOT kernel for ppc 6xx 7xx and 7xxx.
-The default if you just hit enter is "install-gui".
-
-install-gui: uses Xorg fbdev mode
-install-text: text based install
-install-net: allows you to use a minimal boot CD,
- pulling the rest of the install from
- a network server
-install-net-text: text mode network install
-rescue: boots the rescue image
-rescue-net: boots the rescue image from a network server
-
-');
-
-}
-
sub VERSION {
my ($kernels) = @_;
@@ -673,20 +258,13 @@ sub syslinux_all_files {
@$kernels or die "syslinux_all_files: no kernel\n";
- $default_vga =~ /788/ or die 'we rely on vga=788 for bootsplash';
- my $theme = $ENV{THEME} || 'Mandriva-Free';
- my $bootspash_cfg = "/etc/bootsplash/themes/$theme/config/bootsplash-800x600.cfg";
- -e $bootspash_cfg or die "can't find $bootspash_cfg";
-
each_index {
- mkdir "$dir/alt$::i", 0777;
- _ "cp all.kernels/$_/vmlinuz $dir/alt$::i";
- initrd('all', '', "images/all.rdz-$_", $bootspash_cfg);
- rename("images/all.rdz-$_", "$dir/alt$::i/all.rdz");
+ mkdir "$dir/$arch", 0777;
+ _ "cp all.kernels/$_/vmlinuz $dir/$arch";
+ initrd("images/all.rdz-$_", $_);
+ rename("images/all.rdz-$_", "$dir/$arch/all.rdz");
} @$kernels;
- _ "install -m 644 -D /boot/memtest* $dir/memtest";
-
output("$dir/help.msg", syslinux_msg('help.msg.xml'));
output("$dir/advanced.msg", syslinux_msg('advanced.msg.xml',
"\nYou can choose the following kernels :\n",
@@ -699,6 +277,14 @@ sub isolinux {
syslinux_all_files('isolinux', $kernels);
_ "cp $isolinux_bin isolinux/isolinux.bin";
+ _ "cp /usr/lib/syslinux/ifcpu.c32 isolinux/ifcpu.c32";
+ _ "cp /usr/lib/syslinux/ldlinux.c32 isolinux/ldlinux.c32";
+ _ "cp /usr/lib/syslinux/libcom32.c32 isolinux/libcom32.c32";
+ _ "cp /usr/lib/syslinux/libgpl.c32 isolinux/libgpl.c32";
+ _ "cp /usr/lib/syslinux/libmenu.c32 isolinux/libmenu.c32";
+ _ "cp /usr/lib/syslinux/libutil.c32 isolinux/libutil.c32";
+ _ "cp /usr/lib/syslinux/gfxboot.c32 isolinux/gfxboot.c32";
+ _ "cp /usr/lib/syslinux/chain.c32 isolinux/chain.c32";
output("isolinux/isolinux.cfg", syslinux_cfg_all('cdrom', 1));
xbox_stage1() if arch() =~ /i.86/;
@@ -711,7 +297,7 @@ sub xbox_stage1() {
eval { rm_rf($dir) }; mkdir_p($dir);
_ "cp all.kernels/$xbox_kernel/vmlinuz $dir";
- initrd('all', '', "images/all.rdz-$xbox_kernel");
+ initrd("images/all.rdz-$xbox_kernel", $xbox_kernel);
rename("images/all.rdz-$xbox_kernel", "$dir/initrd");
_ "cp /usr/share/cromwell/xromwell-installer.xbe $dir/default.xbe";
@@ -730,15 +316,60 @@ sub boot_iso {
output('.boot_iso/VERSION', VERSION($kernels));
# for the boot iso, use standard isolinux
- _ "cp /usr/lib/syslinux/isolinux.bin .boot_iso/isolinux/isolinux.bin";
+ _ "cp $isolinux_bin .boot_iso/isolinux/isolinux.bin";
+ _ "cp /usr/lib/syslinux/ifcpu.c32 .boot_iso/isolinux/ifcpu.c32";
+ _ "cp /usr/lib/syslinux/ldlinux.c32 .boot_iso/isolinux/ldlinux.c32";
+ _ "cp /usr/lib/syslinux/libcom32.c32 .boot_iso/isolinux/libcom32.c32";
+ _ "cp /usr/lib/syslinux/libgpl.c32 .boot_iso/isolinux/libgpl.c32";
+ _ "cp /usr/lib/syslinux/libmenu.c32 .boot_iso/isolinux/libmenu.c32";
+ _ "cp /usr/lib/syslinux/libutil.c32 .boot_iso/isolinux/libutil.c32";
+ _ "cp /usr/lib/syslinux/chain.c32 .boot_iso/isolinux/chain.c32";
my $with_gfxboot = 0;
- _ "cp /usr/share/gfxboot/themes/Mandriva/install/* .boot_iso/isolinux" if $with_gfxboot;
-# _ "cp /home/pixel/cooker/soft/theme/mandriva-gfxboot-theme/inst/* .boot_iso/isolinux" if $with_gfxboot;
+ _ "cp /usr/share/gfxboot/themes/Mageia/install/* .boot_iso/isolinux" if $with_gfxboot;
+# _ "cp /home/pixel/cooker/soft/theme/mandriva-gfxboot-theme/inst/* .boot_iso/isolinux" if $with_gfxboot;
+ #_ "cp /home/teuf/mdv/src/mandriva-gfxboot-theme/inst/* .boot_iso/isolinux" if $with_gfxboot;
+ _ "cp /usr/lib/syslinux/gfxboot.c32 .boot_iso/isolinux/gfxboot.c32" if $with_gfxboot;
output('.boot_iso/isolinux/isolinux.cfg', syslinux_cfg_all('', $with_gfxboot));
- _ "genisoimage -r -f -J -cache-inodes -V 'Mdk Boot ISO' -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o $iso .boot_iso";
+ if ($ENV{BOOT_AUTOMATIC_METHOD}) {
+ _ "sed -i 's#\\(append .*\\)\\(splash quiet\\|rescue\\)\$#\\1\\2 automatic=$ENV{BOOT_AUTOMATIC_METHOD}#' .boot_iso/isolinux/isolinux.cfg";
+ }
+
+ my $arch = arch();
+ my $options = "-J -joliet-long -r -v -T -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table";
+ my $cmd = "xorriso -as mkisofs -U -A 'Mageia-$ENV{DISTRIB_VERSION}-$arch-netinstall' -V 'Mageia-$ENV{DISTRIB_VERSION}-$arch-netinstall' -volset 'Mageia-$ENV{DISTRIB_VERSION}-$arch' $options";
+ # create efi stuff on the fly
+ if ($arch =~ /x86_64/) {
+ _ "mkdir -p .boot_iso/EFI/BOOT/";
+ # create efi loader
+ my $efi_core = "configfile normal boot linux loadenv ls reboot search search_label";
+ my $efi_part_fs = "part_msdos part_gpt part_apple fat iso9660 udf";
+ my $efi_gfx = "gfxmenu gfxterm efi_gop efi_uga video video_bochs video_cirrus video_fb font png";
+ _ "/usr/bin/grub2-mkimage --prefix='/EFI/BOOT' -O x86_64-efi -o .boot_iso/EFI/BOOT/bootx64.efi $efi_core $efi_part_fs $efi_gfx";
+ _ "cp -f grub2.config .boot_iso/EFI/BOOT/grub.cfg";
+ if ($ENV{BOOT_AUTOMATIC_METHOD}) {
+ _ "sed -i 's#\\(linux .*\\)#\\1 automatic=$ENV{BOOT_AUTOMATIC_METHOD}#' .boot_iso/EFI/BOOT/grub.cfg";
+ _ "sed -i 's#timeout=[0-9]*#timeout=1#' .boot_iso/EFI/BOOT/grub.cfg";
+ }
+ # add theme
+ _ "cp -r -L /boot/grub2/themes .boot_iso/EFI/BOOT/";
+ _ "cp -f grub2.theme .boot_iso/EFI/BOOT/themes/maggy/theme.txt";
+ _ "mkdir -p .boot_iso/EFI/BOOT/fonts";
+ _ "cp -f /usr/share/grub/unicode.pf2 .boot_iso/EFI/BOOT/fonts/";
+ # create efiboot.img, mtools wants the image to be a power of 32.
+ my $efisize = ceil(ceil(chomp_(`du -s -k .boot_iso/EFI`) / 1024) * 1024 / 32) * 32;
+ my $efi_img = ".boot_iso/isolinux/efiboot.img";
+ _ "/sbin/mkdosfs -F12 -C $efi_img $efisize";
+ _ "mcopy -s -i $efi_img .boot_iso/EFI ::";
+ # create iso
+ _ "$cmd -eltorito-alt-boot -e isolinux/efiboot.img -no-emul-boot -o $iso .boot_iso";
+ _ "isohybrid -u $iso";
+ } else {
+ _ "$cmd -o $iso .boot_iso";
+ _ "isohybrid -o 1 $iso";
+ }
rm_rf('.boot_iso');
}
@@ -746,11 +377,11 @@ sub hd_grub {
my ($img) = @_;
my $mapfile = '/tmp/device.map.tmp';
- my ($grub_dir) = glob("/lib/grub/*-*");
+ my ($grub_dir) = glob("/lib/grub/*-mageia");
my @grub_files = map { "$grub_dir/$_" } qw(stage1 stage2);
- my $size = 40_000 + sum(map { -s $_ } @grub_files);
- _ "dd if=/dev/zero of=$img bs=1 count=$size";
+ # mtools wants the image to be a power of 32.
+ my $size = ceil((40_000 + sum(map { -s $_ } @grub_files)) / 32 / 1024) * 32;
_ "rm -rf $tmp_mnt"; mkdir $tmp_mnt;
_ "cp @grub_files $tmp_mnt";
@@ -760,30 +391,31 @@ timeout 10
default 0
fallback 1
-title Mandriva Linux Install
+title Mageia Install
root (hd0,0)
-kernel /cooker/isolinux/alt0/vmlinuz $default_append $default_acpi $default_vga automatic=method:disk
-initrd /cooker/isolinux/alt0/all.rdz
+kernel /cauldron/isolinux/alt0/vmlinuz $default_append $default_acpi $default_vga $default_iswmd automatic=method:disk
+initrd /cauldron/isolinux/alt0/all.rdz
title Help
pause To display the help, press <space> until you reach "HELP END"
pause .
-pause Please see http://qa.mandriva.com/hd_grub.cgi for a friendlier solution
+pause Please see https://doc.mageia.org/ for a friendlier solution
pause .
-pause To specify the location where Mandriva Linux is copied,
-pause choose "Mandriva Linux Install", and press "e".
+pause To specify the location where Mageia is copied,
+pause choose "Mageia Install", and press "e".
pause Then change "root (hd0,0)". FYI:
pause - (hd0,0) is the first partition on first bios hard drive (usually hda1)
pause - (hd0,4) is the first extended partition (usually hda5)
pause - (hd1,0) is the first partition on second bios hard drive
-pause Replace /cooker to suits the directory containing Mandriva Linux
+pause Replace /cauldron to suit the directory containing Mageia
pause .
pause HELP END
EOF
- _ "mkdosfs-with-dir $tmp_mnt $img";
+ _ "/sbin/mkdosfs -C $img $size";
+ _ "mcopy -i $img $tmp_mnt/* ::";
_ "rm -rf $tmp_mnt";
output($mapfile, "(fd0) $img\n");
diff --git a/images/update_kernel b/images/update_kernel
index 9429a209a..e003f457b 100755
--- a/images/update_kernel
+++ b/images/update_kernel
@@ -11,29 +11,20 @@ use lib '../kernel';
use MDK::Common;
use list_modules;
-(my $karch = arch()) =~ s/^i.86$/i586/;
my $rpm = 'rpm --nosignature';
-my $MOVE = $ARGV[0] eq '--move' && shift;
-
-@ARGV or die "usage: ./update_kernel [--move] (<kernel rpm> ... | <installed kernel name> ...)\n";
+@ARGV or die "usage: ./update_kernel <installed kernel name> ...\n";
eval { rm_rf('all.kernels') }; #- remove old things
mkdir 'all.kernels';
my @kernels = map {
my $kern_ver = rpm2version($_);
- if (/\.rpm$/) {
- extract_kernel($_, $kern_ver);
- } else {
extract_installed_rpm('', $kern_ver);
- }
$kern_ver;
} @ARGV;
-sys('cp', '-f', "all.kernels/$kernels[0]/modules.description", '.');
-
output('all.kernels/.list', map { "$_\n" } @kernels);
sub system_verbose { print join(' ', @_), "\n"; system(@_) }
@@ -45,39 +36,10 @@ sub rpm2version {
`$rpm $opt $kernel_rpm` =~ m!/boot/vmlinuz-(.*)! && $1 or die "can't find vmlinuz in $kernel_rpm (is it installed?)\n";
}
-sub extract_kernel {
- my ($kernel_rpm, $kern_ver) = @_;
-
- my $dir = "all.kernels/$kern_ver";
-
- warn "Extracting kernel $kern_ver\n";
-
- eval { rm_rf($dir) };
- mkdir_p("$dir/modules");
- sys("rpm2cpio $kernel_rpm | (cd $dir ; cpio -id)");
-
- extract_installed_rpm($dir, $kern_ver);
-
- eval { rm_rf("$dir$_") } foreach qw(/boot /lib /usr);
-}
-
sub extract_installed_rpm {
my ($installed_dir, $kern_ver) = @_;
my $local_dir = "all.kernels/$kern_ver";
- mkdir_p("$local_dir/modules");
+ mkdir_p($local_dir);
sys('cp', "$installed_dir/boot/vmlinuz-$kern_ver", "$local_dir/vmlinuz");
- sys("cp $installed_dir/lib/modules/$kern_ver/modules.* $local_dir");
-
- open(my $F, "find $installed_dir/lib/modules/$kern_ver -name '*.ko.gz' |");
- my $file; while ($file = <$F>) {
- chomp($file);
- system('cp', $file, "$local_dir/modules/" . basename($file)) == 0
- or warn "conflict for $file\n";
- }
-
- sys('perl', '../kernel/modules.pl', 'remove_unneeded_modules', $kern_ver);
- sys('perl', '../kernel/modules.pl', 'make_modules_per_image', $kern_ver);
-
- rm_rf("$local_dir/modules");
}
diff --git a/kernel/Makefile b/kernel/Makefile
index ea4cc1a54..819173f76 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -2,7 +2,7 @@ clean:
rm -rf *~
check:
- perl modules.pl check > /dev/null
+ perl -I. modules.pl check > /dev/null
@echo "unlisted drivers: "
- @for i in $$(zcat /usr/share/ldetect-lst/pcitable.gz|cut -f 2 -d \" |egrep -v '^#|ADSL:|Bad:|Card:|H[cs]f:|ISDN:|LT:'|sort|uniq|less);do fgrep -q $$i list_modules.pm|| echo -n "$$i ";done
+ @for i in $$(zcat /usr/share/ldetect-lst/pcitable.gz|cut -f 2 -d \" | grep -E -v '^#|ADSL:|Bad:|Card:|H[cs]f:|ISDN:|LT:'|sort|uniq|less);do grep -F -q $$i list_modules.pm|| echo -n "$$i ";done
@echo
diff --git a/kernel/list_modules.pm b/kernel/list_modules.pm
index f8981c046..ee0d1f77b 100644
--- a/kernel/list_modules.pm
+++ b/kernel/list_modules.pm
@@ -1,4 +1,4 @@
-package list_modules; # $Id$
+package list_modules;
use MDK::Common;
@@ -13,76 +13,88 @@ our %l = (
################################################################################
network =>
{
- atm => [ qw(ambassador eni firestream fore_200e he horizon idt77252 iphase lanai nicstar zatm) ],
+ atm => [ qw(ambassador eni firestream fore_200e he horizon idt77252 iphase lanai nicstar solos-pci zatm) ],
main => [
- if_(arch() =~ /ppc/, qw(bmac ibm_emac mace oaknet sungem)),
- if_(arch() =~ /^sparc/, qw(sunbmac sunhme sunqe)),
- if_(arch() !~ /alpha|sparc/,
qw(3c501 3c503 3c505 3c507 3c509 3c515 3c990 3c990fx),
- qw(82596 ac3200 acenic aironet4500_card amd8111e at1700 atp),
- qw(bcm4400 cassini cs89x0 de600 de620),
- qw(depca dmfe e2100 eepro eexpress eth16i),
- qw(ewrk3 hp hp-plus hp100),
+ qw(82596 ac3200 acenic aironet4500_card altera_tse amd8111e at1700 atl2 atp ax88796c),
+ qw(bcm4400 cassini cs89x0 cx82310_eth de600 de620),
+ qw(depca dmfe dwc-xlgmac e2100 ec_bhf eepro eexpress enic eth16i),
+ qw(ewrk3 fm10k funeth genet hp hp-plus hp100 i40e i40evf iavf ice ionic),
qw(iph5526), #- fibre channel
- qw(lance ne ni5010 ni52 ni65 nvnet),
- qw(prism2_plx rcpci rhineget),
- qw(sb1000 sc92031 smc-ultra smc9194),
- qw(tc35815 tlan uli526x),
- ),
- if_(arch() !~ /alpha/,
+ qw(i40evf jme lance ne nfp ni5010 ni52 ni65 mv88e6060 nvnet),
+ qw(prism2_plx qlge r6040 rcpci realtek-smi rhineget),
+ qw(sb1000 sc92031 sfc-siena sh_eth smc-ultra smsc911x smc9194 smsc9420 smsc95xx),
+ qw(tc35815 tlan uli526x ),
qw(b44 com20020-pci de2104x),
qw(defxx), # most unused
- qw(dgrs e100 eepro100 epic100 fealnx hamachi natsemi),
- qw(ne2k-pci pcnet32 plip sis900 skfp starfire tulip),
- qw(typhoon via-rhine winbond-840 forcedeth),
+ qw(dgrs e100 eepro100 epic100 fealnx hamachi mana mlx5_core mlxsw_pci natsemi),
+ qw(ne2k-pci pcnet32 plip qede sis900 skfp starfire stmmac-platform tulip),
+ qw(txgbe typhoon via-rhine winbond-840 xgene-enet xilinx_emac forcedeth),
qw(sungem sunhme), # drivers for ultrasparc, but compiled in ix86 kernels...
- ),
- qw(3c59x 8139too 8139cp sundance), #rtl8139
+ qw(3c59x 8139too 8139cp cpmac niu sundance), #rtl8139
+ # add all phys
+ qw(adin adin1100 amd aquantia at803x ax88796b bcm7xxx bcm84881 bcm87xx broadcom cicada cortina davicom dp83848 dp83867 dp83869 dp83td510 et1011c fixed_phy icplus intel-xway),
+ qw(lxt marwell macb macb_pci marwell10g marvell-88x2222 mdio-bcm-unimac mdio-bitbang mdio-cavium mdio_devres mdio-gpio mdio-i2c),
+ qw(mdio-mscc-mii mdio-thunder mdio-xpcs mediatek-ge micrel microchip microchip_t1 microchip_t1s motorcomm mscc national ncn26000 nxp-tja11xx phylink),
+ qw(phy-bcm-kona-usb2 phy-cpcap-usb phy-exynos-usb2 phy-intel-emmc phy-intel-lgm-emmc phy-can-transceiver phy-lgm-usb phy-pxa-28nm-hsic),
+ qw(phy-pxa-28nm-usb2 phy-qcom-usb-hs phy-qcom-usb-hsic phy-tusb1210),
+ qw(qsemi r8152 r8153_ecm r815x realtek rockchip sfp smsc spi_ks8995 ste10Xp teranetics vitesse xilinx_gmii2rgmii),
],
firewire => [ qw(eth1394 pcilynx) ],
gigabit => [
- qw(atl1 bnx2 cxgb cxgb3 dl2k e1000 ixgb ixgbe myri_sbus netxen_nic ns83820 qla3xxx r8169 s2io sis190 sk98lin skge sky2 spidernet tg3 via-velocity yellowfin),
+ qw(amd-xgbe alx aqc111 atl1 atl1c atl1e atlantic at91_ether ax88179_178a bcmsysport be2net bna bnx2 bnx2x bnxt_en cxgb cxgb3 cxgb4 dl2k dwc-xlgmac e1000 e1000e et131x),
+ qw(gve hinic hfi1 igb igc ionic ipg ixgb ixgbe lan78xx liquidio liquidio_vf macb mlx4_core mlx4_en mlx5_core mvmdio myri_sbus myri10ge netxen_nic nixge ns83820 pch_gbe),
+ qw(qla3xxx r8169 s2io samsung-sxgbe sfc sfc-falcon sfc-siena sxg_nic sis190 sk98lin skge sky2 slicoss spidernet stmmac tehuti tg3 txgbe via-velocity vxge yellowfin),
qw(bcm5820 bcm5700), #- encrypted
],
raw => [
- qw(ppp_generic ppp_async ppp_deflate bsd_comp),
+ qw(ppp_generic ppp_async ppp_deflate bsd_comp mhi_pci_generic thunderbolt-net),
],
pcmcia => [
qw(3c574_cs 3c589_cs axnet_cs fmvj18x_cs),
- qw(ibmtr_cs nmclan_cs pcnet_cs smc91c92_cs),
+ qw(ibmtr_cs libertas_cs nmclan_cs pcnet_cs smc91c92_cs),
qw(xirc2ps_cs xircom_cb xircom_tulip_cb),
],
#- generic NIC detection for USB seems broken (class, subclass,
#- protocol reported are not accurate) so we match network adapters against
#- known drivers :-(
usb => [
- qw(catc cdc_ether kaweth pegasus rtl8150 usbnet),
+ qw(aqc111 asix catc cdc_ether ch9200 dm9601 huawei_cdc_ncm kaweth mcs7830 pegasus rtl8150 smsc75xx smsc95xx usbnet),
],
wireless => [
- qw(acx-pci acx-usb adm8211 airo airo_cs aironet4500_cs aironet_cs arlan),
- qw(at76_usb ath_pci ath5k atmel_cs atmel_pci bcm43xx com20020_cs dyc_ar5),
- qw(hostap_cs hostap_pci hostap_plx ipw2100 ipw2200 ipw3945 iwl3945 iwl4965 madwifi_pci netwave_cs orinoco orinoco_cs orinoco_nortel orinoco_pci orinoco_plx orinoco_tmd),
- qw(ndiswrapper prism2_cs prism2_pci prism2_usb prism54 r8180 ray_cs rt2400 rt2500 rt2570 rt61 rt73 rtusb),
- qw(spectrum_cs usbvnet_rfmd vt_ar5k wavelan_cs wl3501_cs wvlan_cs zd1201 zd1211rw),
- if_(arch() =~ /ppc/, qw(airport)),
+ qw(8812au 8821ce acx-pci acx-usb adm8211 agnx airo airo_cs aironet4500_cs),
+ qw(aironet_cs ar5523 ar9170usb arlan arusb_lnx at76c50x_usb ath10k_pci ath10k_sdio ath10k_usb ath11k_pci ath5k ath6kl ath6kl_sdio ath6kl_usb ath9k ath9k_htc ath9k_pci_owl_loader),
+ qw(ath_pci atmel_cs atmel_pci b43 b43legacy bcm43xx bcm_wimax bcma brcm80211 brcmsmac brcmfmac carl9170 com20020_cs),
+ qw(dyc_ar5 hostap_cs hostap_pci hostap_plx i2400m_usb ipw2100),
+ qw(ipw2200 ipw3945 iwl3945 iwl4965 iwlagn iwldvm iwlmei iwlmvm iwlwifi libertas_spi madwifi_pci),
+ qw(mt76x2e mt76x2u mt7601u mt76x02 mt76x0e mt76x0u mt7603e mt7615e mt7663u mt7915e mt7921e mt7921s mt7921u mwifiex_pcie mwifiex_sdio mwifiex_usb mwl8k ndiswrapper netwave_cs orinoco orinoco_cs),
+ qw(orinoco_nortel orinoco_pci orinoco_plx orinoco_tmd orinoco_usb p54pci p54spi),
+ qw(p54usb plfxlc prism2_cs prism2_pci prism2_usb prism54 qmi_wwan qtnfmac qtnfmac_pcie r8180),
+ qw(r8187se rtl8188ee rtl8192ce r8192_pci r8192s_usb r8192u_usb r8712u r8723bs r8822be ray_cs rndis_wlan rsi_sdio rsi_usb rt2400 rt2400pci rt2500),
+ qw(rt2500pci rt2500usb rt2570 rt2800pci rt2800usb rt2860 rt2860sta rt2870),
+ qw(rt3070sta rt61 rt61pci rt73 rt73usb rtl8180 rtl8187 rtl8187se rtl818x_pci r8188eu r8192ee r8723au rtl_pci rtl_usb rtusb rtwpci rtw88_8723d rtw88_8723de rtw88_8723du rtw88_8821ce rtw88_8821cu rtw88_8822be rtw88_8822bu rtw88_8822ce rtw88_8822cu),
+ qw(rtw88_8723ds rtw88_8821cs rtw88_8822bs rtw88_8822cs rtw89_8852ae rtw89_8852be rtw89_8852ce),
+ qw(rtl8192se rtl8192cu rtl8192de rtl8192ee rtl8723ae rtl8723be rtl8821ae rtl8xxxu spectrum_cs sr9700 sr9800 ssb usb8xxx usbvnet_rfmd vt6655_stage vt6656_stage vt_ar5k w35und),
+ qw(wavelan_cs wcn36xx wfx wil6210 wilc1000-sdio wl wl1251_sdio wl1251_spi wl12xx wl18xx wl3501_cs wlcore_sdio wvlan_cs zd1201 zd1211rw),
],
isdn => [
qw(avmfritz c4 cdc-acm b1pci divas hfc4s8s_l1 hfc_usb hfc4s8s_l1 hisax hisax_st5481 hisax_fcpcipnp hysdn sedlfax t1pci tpam w6692pci),
+ qw(avmfritz hfcpci hfcmulti hfcsusb mISDNinfineon netjet), # mISDN
qw(fcpci fcdsl fcdsl fcdsl2 fcdslsl fcdslslusb fcdslusb fcdslusba fcusb fcusb2 fxusb fxusb_CZ)
],
cellular => [
- qw(nozomi option),
+ qw(cdc_mbim hso nozomi option sierra),
],
modem => [
- qw(ltmodem mwave sm56),
+ qw(ltmodem mwave sm56 ft1000),
],
slmodem => [
qw(slamr slusb snd-ali5451 snd-atiixp-modem snd-intel8x0m snd-via82xx-modem),
],
- tokenring => [ qw(3c359 abyss ibmtr lanstreamer olympic proteon skisa smctr tms380tr tmspci) ],
- wan => [ qw(c101 cosa cyclomx cycx_drv dlci dscc4 farsync hdlc hostess_sv11 lmc n2 pc300 pci200syn sbni sdla sdladrv sealevel syncppp wanxl z85230) ],
+ wan => [ qw(c101 cosa cyclomx cycx_drv dlci dscc4 farsync hdlc hostess_sv11 lapbether lmc n2 pc300 pci200syn sbni sdla sdladrv sealevel syncppp wanxl z85230) ],
usb_dsl => [ qw(cxacru speedtch ueagle-atm usbatm xusbatm) ],
+ virtual => [ qw(ena hv_netvsc i2c-virtio vboxdrv virtio-iommu virtio_net virtio_pci_modern_dev vmxnet3 xen-netfront) ],
},
################################################################################
@@ -90,68 +102,91 @@ our %l = (
{
# ide drivers compiled as modules:
ide => [
- qw(aec62xx ali14xx alim15x3 amd74xx atiixp cmd64x cy82c693 cs5520 cs5530 cs5535),
- qw(delkin_cb dtc2278 hpt34x hpt366 ns87415 ht6560b it8213 jmicron),
+ qw(aec62xx alim15x3 amd74xx atiixp cmd64x),
+ qw(delkin_cb dtc2278 hpt34x hpt366 ns87415 ht6560b it8172 it8213 it821x jmicron),
qw(opti621 pdc202xx_new pdc202xx_old piix qd65xx rz1000 sc1200 serverworks siimage sis5513 slc90e66),
- qw(tc86c001 triflex trm290 umc8672 via82cxxx ide-generic),
+ qw(tc86c001 triflex trm290 tx4938ide tx4939ide umc8672 via82cxxx ide-pci-generic ide-generic),
],
scsi => [
- if_(arch() =~ /ppc/, qw(mesh mac53c94)),
- if_(arch() =~ /^sparc/, qw(qlogicpti)),
- if_(arch() !~ /alpha/ && arch() !~ /sparc/,
'53c7,8xx',
- qw(AM53C974 BusLogic NCR53c406a a100u2w advansys aha152x aha1542 aha1740),
- qw(atp870u dc395x dc395x_trm dmx3191d dtc g_NCR5380 in2000 initio pas16 pci2220i psi240i fdomain),
- qw(qla1280 qla2x00 qla2xxx qlogicfas qlogicfc),
- qw(seagate wd7000 shasta sim710 stex sym53c416 t128 tmscsim u14-34f ultrastor),
- qw(eata eata_pio eata_dma nsp32),
- ),
- qw(aic7xxx aic7xxx_old aic79xx pci2000 qlogicfas408 sym53c8xx lpfc lpfcdd), # ncr53c8xx
+ qw(a100u2w advansys aha152x aha1542 aha1740 am53c974 atp870u),
+ qw(be2iscsi bfa BusLogic dc395x dc395x_trm dmx3191d dtc eata eata_dma),
+ qw(eata_pio efct fdomain fdomain_cs fdomain_pci g_NCR5380 in2000 initio mpi3m mpt2sas mpt3sas mvsas myrb myrs NCR53c406a),
+ qw(nsp32 pas16 pci2220i pm80xx pm8001 psi240i qla1280 qla2x00 qla2xxx),
+ qw(qlogicfas qlogicfc rsxx seagate shasta skd sim710 snic stex sym53c416),
+ qw(t128 tmscsim u14-34f ultrastor wd7000 xen-scsiback xen-scsifront),
+ qw(aic7xxx aic7xxx_old aic79xx pci2000 qlogicfas408 sym53c8xx wd719x lpfc lpfcdd), # ncr53c8xx
],
sata => [
# note that ata_piix manage RAID devices on ICH6R
- qw(ahci aic94xx ata_adma ata_piix pata_pdc2027x pdc_adma sata_inic162x sata_mv sata_nv sata_promise sata_qstor sata_sil sata_sil24 sata_sis sata_svw sata_sx4 sata_uli sata_via sata_vsc sx8),
+ qw(ahci ahci_dwc aic94xx ata_adma ata_piix pata_pdc2027x pdc_adma),
+ qw(sata_dwc_460ex sata_fsl sata_inic162x sata_mv sata_nv sata_promise),
+ qw(sata_qstor sata_rcar sata_sil sata_sil24 sata_sis sata_svw sata_sx4 sata_uli sata_via sata_vsc sx8),
# new drivers: old ide drivers ported over libata:
- qw(pata_ali pata_amd pata_artop pata_atiixp pata_cmd64x pata_cmd640 pata_cs5520 pata_cs5530 pata_cs5535 pata_cypress),
- qw(pata_efar pata_hpt366 pata_hpt37x pata_hpt3x2n pata_hpt3x3 pata_isapnp pata_it821x pata_it8172 pata_it8213 pata_jmicron),
- qw(pata_legacy pata_marvell pata_mpiix pata_netcell pata_ns87410 pata_oldpiix pata_opti pata_optidma),
- qw(pata_pdc2027x pata_pdc202xx_old pata_platform pata_qdi pata_radisys pata_rz1000),
- qw(pata_sc1200 pata_serverworks pata_sil680 pata_sis pata_sl82c105 pata_triflex pata_via pata_winbond ata_generic),
+ qw(ata_generic mv-ahci pata_ali pata_amd pata_artop pata_atiixp pata_atp867x),
+ qw(pata_bf54x pata_cmd640 pata_cmd64x pata_cs5520 pata_cs5530),
+ qw(pata_cs5535 pata_cs5536 pata_cypress pata_efar pata_hpt366),
+ qw(pata_hpt37x pata_hpt3x2n pata_hpt3x3 pata_isapnp pata_it8172),
+ qw(pata_it8213 pata_it821x pata_jmicron pata_legacy pata_marvell),
+ qw(pata_mpiix pata_netcell pata_ninja32 pata_ns87410),
+ qw(pata_ns87415 pata_oldpiix pata_opti pata_optidma),
+ qw(pata_pdc2027x pata_pdc202xx_old pata_piccolo pata_platform pata_qdi),
+ qw(pata_radisys pata_rdc pata_rz1000 pata_sc1200 pata_sch),
+ qw(pata_serverworks pata_sil680 pata_sis pata_sl82c105),
+ qw(pata_triflex pata_via pata_winbond),
+ qw(pata_acpi),
],
hardware_raid => [
- if_(arch() =~ /^sparc/, qw(pluto)),
- if_(arch() !~ /alpha/ && arch() !~ /sparc/,
# 3w-xxxx drives ATA-RAID, 3w-9xxx and arcmsr drive SATA-RAID
- qw(a320raid megaide),
- qw(3w-9xxx 3w-xxxx aacraid arcmsr cciss cpqfc cpqarray DAC960 dpt_i2o gdth hptiop i2o_block ipr it821x it8212),
- qw(iteraid megaraid megaraid_mbox megaraid_sas mptfc mptsas mptspi mptscsih qla2100 qla2200 qla2300 qla2322 qla4xxx qla6312 qla6322 pdc-ultra),
- qw(ips ppa imm),
- ),
+ qw(3w-9xxx 3w-sas 3w-xxxx a320raid aacraid arcmsr cciss cpqarray),
+ qw(cpqfc csiostor DAC960 dpt_i2o esas2r gdth hpsa hptiop i2o_block imm ipr ips isci),
+ qw(it8212 it821x iteraid megaide megaraid megaraid_mbox),
+ qw(megaraid_sas mptfc mptsas mptscsih mptspi pdc-ultra pmcraid ppa),
+ qw(qla2100 qla2200 qla2300 qla2322 qla4xxx qla6312 qla6322 smartpqi),
],
+ virtual => [ qw(hv_storvsc virtio_blk virtio_scsi vmw_pvscsi xenblk xen-blkfront) ],
pcmcia => [ qw(aha152x_cs fdomain_cs nsp_cs qlogic_cs ide-cs pata_pcmcia sym53c500_cs) ],
- raw => [ qw(ide-disk sd_mod) ],
- usb => [ qw(usb-storage) ],
+ raw => [ qw(ide-gd_mod sd_mod) ],
+ usb => [ qw(keucr uas ums-alauda ums-cypress ums-datafab ums-eneub6250 ums-freecom ums-isd200),
+ qw(ums-jumpshot ums-karma ums-onetouch ums-realtek ums-sddr09 ums-sddr55 ums-usbat usb-storage) ],
firewire => [ qw(sbp2) ],
- cdrom => [ qw(ide-cd sr_mod) ],
- card_reader => [ qw(sdhci tifm_sd tifm_7xx1) ],
+ cdrom => [ qw(ide-cd_mod sr_mod) ],
+ card_reader => [ qw(rts5208 rtsx_pci rtsx_usb sdhci sdhci-pci tifm_sd tifm_7xx1 toshsd ushc via-sdmmc) ],
},
################################################################################
bus =>
{
- usb => [ qw(isp116x-hcd ehci-hcd ohci-hcd r8a66597-hcd sl811_cs sl811-hcd uhci-hcd u132-hcd usb-uhci usb-ohci) ],
- bluetooth => [ qw(bcm203x bfusb bpa10x hci_usb) ],
+ usb => [ qw(bcma-hcd c67x00 dwc3-haps dwc3 dwc3-pci ehci-hcd ehci-pci ehci-platform ehci-tegra fhci fusbh200-hcd hwa-hc
+ imx21-hcd isp116x-hcd isp1362-hcd isp1760 ohci-hcd ohci-pci ohci-platform oxu210hp-hcd
+ r8a66597-hcd renesas-usbhs sl811_cs sl811-hcd ssb-hcd u132-hcd
+ uhci-hcd usb-ohci usb-uhci vhci-hcd whci-hcd xen-hcd xhci-hcd xhci-pci xhci-pci-renesas xhci-plat-hcd) ],
+ bluetooth => [ qw(ath3k bcm203x bfusb bluecard_cs bpa10x bt3c_cs btusb dtl1_cs) ],
firewire => [ qw(ohci1394) ],
i2c => [
- qw(i2c-ali1535 i2c-ali1563 i2c-ali15x3 i2c-amd756 i2c-amd8111 i2c-i801 i2c-i810 i2c-nforce2),
- qw(i2c-piix4 i2c-prosavage i2c-savage4 i2c-sis5595 i2c-sis630 i2c-sis96x i2c-via i2c-viapro i2c-voodoo3),
- if_(arch() !~ /^ppc/, qw(i2c-hydra i2c-ibm_iic i2c-mpc)),
+ qw(i2c_algo_bit i2c-ali1535 i2c-ali1563 i2c-ali15x3 i2c-amd756 i2c-amd8111 i2c-amd-mp2-pci i2c-amd-mp2-plat i2c-i801 i2c-i810 i2c_designware_platform i2c-nforce2),
+ qw(i2c-piix4 i2c-prosavage i2c-savage4 i2c-sis5595 i2c-sis630 i2c-sis96x i2c_smbus i2c-via i2c-viapro i2c-voodoo3),
+ qw(i2c-hydra i2c-ibm_iic i2c-mpc i2c-amd-mp2-pci i2c-amd-mp2-plat),
],
pcmcia => [
- if_(arch() !~ /^sparc/, qw(au1x00_ss i82365 i82092 pd6729 tcic vrc4171_card vrc4173_cardu yenta_socket)), # cb_enabler
+ qw(au1x00_ss i82365 i82092 pd6729 tcic vrc4171_card vrc4173_cardu yenta_socket), # cb_enabler
],
- usb_keyboard => [ qw(usbkbd keybdev) ],
+ hid => [ qw(amd-mp2-pcie amd_sfh amd-sfhtp-hid ff-memless hid hid-a4tech hid-alps hid-apple hid-appleir hid-asus hid-aureal hid-axff hid-belkin hid-betopff hid_bigbenff
+ hid-cherry hid-chicony hid-cmedia hid-corsair hid-cougar hid-cp2112 hid-creative-sb0540 hid-cypress hid-dr hid-drff hid-elan hid-elecom hid-elo hid-emsff hid-evision
+ hid-ezkey hid-gaff hid-gembird hid-generic hid-gfrm hid-google-hammer hid-gt683r hid-gyration hid-holtek-kbd hid-holtekff hid-holtek-mouse
+ hid-hyperv hid-icade hid-ite hid-jabra hid-kensington hid-keytouch hid-kye hid-lcpower hid-led hid-lenovo hid-lenovo-tpkbd hid-lg-g15
+ hid-logitech hid-logitech-dj hid-logitech-hidpp hid-macally hid-magicmouse hid-megaworld hid-mf hid-microsoft hid-monterey
+ hid-multilaser hid-multitouch hid-nintendo hid-ntrig hid-ortek hid-penmount hid-petalynx hid-picolcd
+ hid-pl hid-plantronics hid-playstation hid-primax hid-prodikeys hid_razer hid_redragon hid-retrode hid-roccat hid-roccat-arvo hid-roccat-common hid-rmi
+ hid-roccat-isku hid-roccat-kone hid-roccat-koneplus hid-roccat-konepure hid-roccat-kovaplus hid-roccat-lua
+ hid-roccat-pyra hid-roccat-ryos hid-roccat-savu hid-saitek hid-samsung hid-semitek hid-sensor-hub hid_sensor_accel_3d hid_sensor_gyro_3d hid_sensor_trigger hid-sjoy hid-sony
+ hid-speedlink hid_steam hid-steelseries hid-sunplus hid-thrustmaster hid-tivo hid-tmff hid-topseed hid-twinhan
+ hid-uclogic hid_vivaldi hid-waltop hid-wiimote hid-xiaomi hid-xinmo hid-zpff hid-zydacron wacom
+ i2c-hid-acpi
+ intel-ish-ipc intel-ishtp-hid intel-ishtp intel-ishtp-loader ipts ithc
+ surface_hid surface_kbd) ],
+
#serial_cs
#ftl_cs 3c575_cb apa1480_cb epic_cb serial_cb tulip_cb iflash2+_mtd iflash2_mtd
#cb_enabler
@@ -159,15 +194,13 @@ our %l = (
fs =>
{
- network => [ qw(af_packet nfs) ],
+ network => [ qw(af_packet nfs nfsv2 nfsv3 nfsv4 smbfs) ],
cdrom => [ qw(isofs) ],
- loopback => [ qw(isofs loop squashfs), if_($ENV{MOVE}, qw(supermount)) ],
+ loopback => [ qw(isofs loop squashfs) ],
local => [
- if_(arch() =~ /^i.86|x86_64/, qw(vfat ntfs)),
- if_(arch() =~ /^ppc/, qw(hfs)),
- qw(reiserfs jfs xfs),
+ qw(btrfs exfat ext3 ext4 f2fs jfs nilfs2 ntfs ntfs3 reiserfs vfat xfs),
],
- various => [ qw(smbfs romfs ext3 ufs ntfs unionfs) ],
+ various => [ qw(efivarfs efibc capsule-loader overlay romfs ufs fuse) ],
},
@@ -175,80 +208,112 @@ our %l = (
multimedia =>
{
sound => [
- if_(arch() =~ /ppc/, qw(dmasound_pmac snd-aoa snd-powermac)),
- if_(arch() =~ /sparc/, qw(snd-sun-amd7930 snd-sun-cs4231 snd-sun-dbri)),
- if_(arch() !~ /^sparc/,
qw(ad1816 ad1848 ad1889 ali5455 audigy audio awe_wave cmpci cs4232 cs4281 cs46xx cx88-alsa),
qw(emu10k1 es1370 es1371 esssolo1 forte gus i810_audio ice1712 kahlua mad16 maestro),
qw(maestro3 mpu401 msnd_pinnacle nm256_audio nvaudio opl3 opl3sa opl3sa2 pas2 pss),
- qw(rme96xx sam9407 sb sgalaxy snd-ad1816a snd-ad1848 snd-ad1889 snd-ali5451 snd-als100 snd-als300),
- qw(snd-als4000 snd-atiixp snd-au8810 snd-au8820 snd-au8830 snd-audigyls snd-azt2316 snd-azt2320 snd-azt3328 snd-azx),
- qw(snd-asihpi snd-bt87x snd-ca0106 snd-cmi8330 snd-cmi8788 snd-cmipci),
+ qw(rme96xx sam9407 sb sgalaxy snd-pci-acp3x snd-ad1816a snd-ad1848 snd-ad1889 snd-ali5451 snd-als100 snd-als300),
+ qw(snd-als4000 snd-atiixp snd-au8810 snd-au8820 snd-au8830 snd-audigyls snd-aw2 snd-azt2316 snd-azt2320 snd-azt3328 snd-azx),
+ qw(snd-asihpi snd-at73c213 snd-bcd2000 snd-bebob snd-bt87x snd-ca0106 snd-cmi8330 snd-cmi8788 snd-cmipci),
qw(snd-cs4231 snd-cs4232 snd-cs4236 snd-cs4281 snd-cs46xx snd-cs5530 snd-cs5535audio),
+ qw(snd_ctxfi),
qw(snd-darla20 snd-darla24 snd-dt019x snd-echo3g snd-emu10k1 snd-emu10k1x),
qw(snd-ens1370 snd-ens1371 snd-es1688 snd-es18xx snd-es1938 snd-es1968 snd-es968),
- qw(snd-fm801 snd-gina20 snd-gina24 snd-gina3g),
+ qw(snd-fireworks snd-fm801 snd-gina20 snd-gina24 snd-gina3g),
qw(snd-gusclassic snd-gusextreme snd-gusmax),
qw(snd-hda-intel snd-hdsp snd-hdspm snd-ice1712 snd-ice1724),
- qw(snd-indi snd-indigo snd-indigodj snd-indigoio snd-intel8x0 snd-interwave),
- qw(snd-interwave-stb snd-korg1212 snd-layla20 snd-layla24 snd-layla3g),
+ qw(snd-indi snd-indigo snd-indigodj snd-indigodjx snd-indigoio snd-indigoiox snd-intel8x0 snd-interwave),
+ qw(snd-interwave-stb snd-korg1212 snd-layla20 snd-layla24 snd-layla3g snd-lola snd-lx6464es),
qw(snd-maestro3 snd-mia snd-mixart snd-mona snd-mpu401 snd-nm256),
- qw(snd-opl3sa2 snd-opti92x-ad1848 snd-opti92x-cs4231 snd-opti93x snd-pcxhr snd-riptide snd-rme32),
- qw(snd-rme96 snd-rme9652 snd-sb16 snd-sb8 snd-sbawe snd-sc6000 snd-sgalaxy snd-sonicvibes),
- qw(snd-sscape snd-trident snd-via82xx snd-vx222 snd-vxp440 snd-vxpocket snd-wavefront),
- qw(snd-ymfpci sonicvibes sscape trident via82cxxx_audio wavefront ymfpci),
- ),
- ],
- tv => [ qw(bt878 bttv cx8800 cx8802 cx88-blackbird dpc7146 ivtv mxb pvrusb2 saa7134 zr36067) ],
+ qw(snd-opl3sa2 snd-opti92x-ad1848 snd-opti92x-cs4231 snd-opti93x snd-oxygen snd_pci_acp5x snd-pcsp snd-pcxhr snd-riptide snd-rme32),
+ qw(snd-rme96 snd-rme9652 snd-sb16 snd-sb8 snd-sbawe snd-sc6000 snd-sgalaxy snd-sis7019),
+ qw(snd-soc-cs35l56-i2c snd-soc-cs35l56 snd-soc-cs35l56-sdw snd-soc-cs35l56-shared snd-soc-cs35l56-spi snd-soc-cs42l42-sdw snd-soc-idt821034),
+ qw(snd-soc-max98363 snd-soc-rt1318-sdw snd-soc-rt712-sdca-dmic snd-soc-rt712-sdca snd-soc-sma1303 snd-soc-avs-max98927 snd-soc-avs-probe),
+ qw(snd-sof-amd-renoir snd-sof-acpi-intel-bdw snd-sof-intel-hda-mlink snd-sof-acpi-intel-byt snd-sof-pci snd-sonicvibes),
+ qw(snd-sscape snd-trident snd-usb-variax snd-via82xx snd-virtuoso snd-vx222 snd-vxp440 snd-vxpocket snd-wavefront),
+ qw(snd_xen_front snd-ymfpci sonicvibes soundwire-amd sscape trident via82cxxx_audio virtio_snd wavefront ymfpci),
+ ],
+ tv => [ qw(bt878 bttv cx23885 cx25821 cx8800 cx8802 cx88-blackbird dpc7146),
+ qw(em28xx ivtv mxb pvrusb2 saa7134 saa7164 zr36067) ],
dvb => [
- qw(b2c2-flexcop-pci b2c2-flexcop-usb budget budget-av budget-ci cinergyT2),
- qw(dvb-dibusb dvb-ttpci dvb-ttusb-budget dvb-usb-a800 dvb-usb-cxusb),
- qw(dvb-usb-dib0700 dvb-usb-dibusb-mb dvb-usb-dibusb-mc dvb-usb-digitv dvb-usb-dtt200u),
- qw(dvb-usb-gp8ps dvb-usb-nova-t-usb2 dvb-usb-ttusb2 dvb-usb-umt-010 dvb-usb-vp702x dvb-usb-vp7045),
- qw(hexium_gemini hexium_orion pluto2 skystar2 ttusb_dec),
+ qw(b2c2-flexcop-pci b2c2-flexcop-usb budget budget-av),
+ qw(budget-ci cinergyT2 dm1105 dvb-dibusb dvb-ttpci),
+ qw(dvb-ttusb-budget dvb-usb-a800 dvb-usb-af9015 dvb-usb-ce6230),
+ qw(dvb-usb-cinergyT2 dvb-usb-cxusb dvb-usb-dib0700),
+ qw(dvb-usb-dibusb-mb dvb-usb-dibusb-mc dvb-usb-digitv),
+ qw(dvb-usb-dtt200u dvb-usb-dtv5100 dvb-usb-ec168 dvb-usb-friio dvb-usb-gp8ps),
+ qw(dvb-usb-nova-t-usb2 dvb-usb-ttusb2 dvb-usb-umt-010),
+ qw(dvb-usb-vp702x dvb-usb-vp7045 earth-pt1 firedtv hexium_gemini),
+ qw(hexium_orion netup-unidvb pluto2 skystar2 smsusb ttusb_dec),
],
photo => [ qw(dc2xx mdc800) ],
- radio => [ qw(radio-gemtek-pci radio-maestro radio-maxiradio) ],
+ radio => [ qw(radio-gemtek-pci radio-keene radio-maestro radio-ma901
+ radio-maxiradio radio-miropcm20 radio-mr800 radio-raremono radio-shark
+ radio-usb-si470x shark2) ],
scanner => [ qw(scanner microtek) ],
+ firewire => [ qw(snd-dice snd-firewire-digi00x snd-firewire-speakers snd-isight snd-oxfw snd-scs1x snd-firewire-tascam) ],
gameport => [ qw(cs461x ns558 emu10k1-gp fm801-gp lightning ns558 vortex) ],
- usb_sound => [ qw(audio dabusb dsbr100 snd-usb-audio snd-usb-caiaq snd-usb-usx2y usb-midi) ],
- webcam => [ qw(cafe_ccic cpia_usb cpia2 cyber2000fb em28xx et61x251 ibmcam konicawc mod_quickcam ov511 ov511-alt ov518_decomp ovfx2 pwc quickcam quickcam_messenger se401 stv680 sn9c102 ultracam usbvideo usbvision vicam w9968cf zc0301) ],
+ usb_sound => [ qw(audio dabusb dsbr100 snd-usb-audio snd-usb-6fire snd-usb-caiaq snd-usb-hiface snd-usb-usx2y usb-midi) ],
+ webcam => [
+ qw(cafe_ccic cpia2 cpia_usb cyber2000fb et61x251 gspca),
+ qw(gspca_benq gspca_conex gspca_cpia1 gspca_dtcs033 gspca_etoms
+ gspca_finepix gspca_gl860 gspca_jeilinj gspca_jl2005bcd
+ gspca_kinect gspca_konica gspca_m5602 gspca_mars
+ gspca_mr97310a gspca_nw80x gspca_ov519 gspca_ov534
+ gspca_ov534_9 gspca_pac207 gspca_pac7302 gspca_pac7311
+ gspca_se401 gspca_sn9c2028 gspca_sn9c20x gspca_sonixb
+ gspca_sonixj gspca_spca1528 gspca_spca500 gspca_spca501
+ gspca_spca505 gspca_spca506 gspca_spca508 gspca_spca561
+ gspca_sq905 gspca_sq905c gspca_sq930x gspca_stk014 gspca_stk1135
+ gspca_stv0680 gspca_stv06xx gspca_sunplus gspca_t613
+ gspca_topro gspca_touptek gspca_tv8532 gspca_vc032x gspca_vicam
+ gspca_xirlink_cit gspca_zc3xx),
+ qw(ibmcam konicawc mod_quickcam ov511 ov511-alt ov518_decomp),
+ qw(ov51x-jpeg ovfx2 pwc qc-usb-messenger quickcam quickcam_messenger),
+ # both STV06xx & stv06xx b/c drivers/media/video/gspca/stv06xx/stv06xx.h
+ # wrongly use upcase letters:
+ qw(se401 sn9c102 STV06xx stv06xx stv680 tcm825x ultracam),
+ qw(usbvideo usbvision uvcvideo vicam w9968cf zc0301 zc3xx),
+ ],
},
# USB input stuff get automagically loaded by hotplug and thus
# magically work through /dev/input/mice multiplexing:
input => {
joystick => [
- qw(iforce xpad),
+ qw(iforce iforce-serio iforce-usb xpad),
# there're more drivers in drivers/input/joystick but they support non USB or PCI devices
# and thus cannot be detected but by slow (and maybe dangerous?) load_category:
qw(a3d adi analog cobra db9 gamecon gf2k grip grip_mp guillemot interact),
- qw(joydump magellan sidewinder spaceball spaceorb stinger tmdc turbografx warrior)
+ qw(joydump magellan pxrc qwiic-joystick sidewinder spaceball spaceorb stinger tmdc turbografx warrior)
],
remote => [ qw(ati_remote) ],
# USB tablets and touchscreens:
- tablet => [ qw(acecad aiptek wacom kbtab) ],
- touchscreen => [ qw(ads7846_ts gunze hp680_ts_input itmtouch mk712 mtouch mtouchusb touchkitusb) ],
+ tablet => [ qw(acecad aiptek wacom wacom_serial4 kbtab) ],
+ touchscreen => [ qw(ads7846_ts bu21013_ts bu21029_ts gunze hp680_ts_input itmtouch mk712 mtouch sur40 usbtouchscreen) ],
},
various =>
# just here for classification, unused categories (nor auto-detect, nor load_thiskind)
{
raid => [
- qw(dm-crypt dm-mirror dm-mod dm-zero linear lvm-mod multipath raid0 raid1 raid10 raid456 raid5 raid6),
+ qw(dm-bio-prison dm-bufio dm-cache dm-clone dm-crypt dm-log dm-log-userspace dm-mirror dm-mod dm-multipath dm-persistent-data dm-queue-length dm-raid),
+ qw(dm-region-hash dm-round-robindm-service-time dm-snapshot dm-zero faulty linear lvm-mod md-mod multipath md-mod raid0 raid10 raid1 raid456),
+ # needed by raid456 and dm-raid 456 target
+ qw(async_memcpy async_pq async_raid6_recov async_tx async_xor raid6_pq xor),
],
mouse => [
- qw(atixlmouse busmouse generic_serial inport ioc3_serial logibm logibusmouse msbusmouse pcips2 qpmouse synclinkmp),
- if_(arch() =~ /ppc/, 'macserial'),
- qw(mousedev usbhid usbmouse),
+ qw(atixlmouse busmouse cyapatp elan_i2c generic_serial inport ioc3_serial logibm logibusmouse msbusmouse psmouse pcips2 qpmouse synclinkmp),
+ qw(mousedev usbhid usbmouse synaptics_usb),
],
char => [
- if_(arch() =~ /ia64/, qw(efivars)),
qw(applicom n_r3964 nvram pc110pad ppdev),
qw(wdt_pci i810-tco sx), #- what are these???
],
crypto => [
- qw(amd768_rng amd7xx_tco i810_rng hw_random leedslite padlock),
+ qw(aes_generic aesni_intel cbc ccm cryptd n5pf padlock-aes padlock-sha sha256_generic virtio_crypto virtio_rng xts),
+ qw(aria-aesni-avx2-x86_64 aria-gfni-avx512-x86_64 amd-rng intel-rng),
+ qw(af_alg algif_aead algif_hash algif_rng algif_skcipher),
+ qw(lib80211_crypt_ccmp lib80211_crypt_tkip lib80211_crypt_wep michael_mic),
],
laptop => [
qw(i8k sonypi toshiba),
@@ -257,50 +322,88 @@ our %l = (
qw(8250_pci 8250 epca esp isicom istallion jsm moxa mxser mxser_new stallion sx synclink synclinkmp),
],
other => [
- qw(defxx i810fb ide-floppy ide-scsi ide-tape loop lp nbd sg st),
+ qw(defxx ide-floppy ide-tape loop lp nbd sg st),
qw(parport_pc parport_serial),
- qw(btaudio mmc_block),
+ qw(btaudio),
+ qw(mmc_block sdhci-acpi), # eMMC
+ 'cryptoloop',
+ 'ulpi',
+
+ # Virtualization:
+ qw(hv_balloon pci-hyperv pci-hyperv-intf),
+ qw(mlx5-vfio-pci),
+ # Don't include vboxvideo, it doesn't work properly in stage1 or stage2 (mga#23467)
+ qw(vboxsf vboxguest vmw_balloon),
+ qw(nd_virtio virtio virtiofs virtio_balloon virtio-console virtio_input virtio_pci virtio_pmem virtio_ring vhost_iotlb vhost_scsi vhost_vsock hyperv-keyboard),
+ qw(xen-front-pgdir-shbuf),
- 'cryptoloop', arch() =~ /i.86/ ? 'aes-i586' : 'aes',
- if_(arch() =~ /sparc/, 'openprom'),
-
- qw(evdev), qw(usblp printer), 'floppy',
+ # xfs and btrfs needs crc32c(-intel), f2fs needs crc32(_generic)
+ qw(crc32c crc32_generic),
+ 'nvme',
+
+ qw(evdev), qw(usblp printer), 'floppy', 'microcode', 'usb_common',
+ qw(acpi_cpufreq processor),
+ qw(bcm_sf2),
+ qw(intel-lpss intel-lpss-acpi intel-lpss-pci),
+ qw(usbip-host),
+ qw(vgem),
+
+ # drivers/platform/x86:
+ qw(acerhdf acer-wireless acer-wmi alienware-wmi amilo-rfkill apple-gmux asus-laptop asus-nb-wmi asus-wireless asus-wmi classmate-laptop compal-laptop),
+ qw(dcdbas dell-laptop dell-rbtn dell-smbios dell-smo8800 dell-wmi-aio dell-wmi-descriptor dell-wmi dell-wmi-ddv dell-wmi-led eeepc-laptop eeepc-wmi fujitsu-laptop),
+ qw(fujitsu-tablet gpd-pocket-fan hdaps hp_accel hp-wireless hp-wmi huawei-wmi i2c-multi-instantiate ibm_rtl ideapad-laptop intel_atomisp2_pm),
+ qw(intel_bxtwc_tmu intel_chtdc_ti_pwrbtn intel-hid intel_int0002_vgpio intel_ips intel_menlow intel_oaktrail intel_pmc_ipc intel_punit_ipc intel-rst),
+ qw(intel-smartconnect intel_telemetry_core intel_telemetry_debugfs intel_telemetry_pltdrv intel-vbtn intel-wmi-thunderbolt lenovo-ymc lg-laptop mlx-platform),
+ qw(msi-ec msi-laptop msi-wmi mxm-wmi panasonic-laptop peaq-wmi samsung-laptop samsung-q10 shuttle-wmi sony-laptop surface3_button surface3-wmi),
+ qw(surfacepro3_button system76_acpi thinkpad_acpi topstar-laptop toshiba_acpi toshiba_bluetooth toshiba_haps toshiba-wmi wmi-bmof wmi xiaomi-wmi),
+ # no more a platform driver:
+ qw(pvpanic),
+
+ # drivers/platform/chrome:
+ qw(chromeos_laptop),
#- these need checking
qw(rrunner meye),
+
+ qw(mei pch_phub),
],
agpgart => [
- if_(arch() =~ /alpha/, qw(alpha-agp)),
- if_(arch() =~ /ia64/, qw(hp-agp i460-agp)),
- if_(arch() =~ /ppc/, qw(uninorth-agp)),
-
qw(ali-agp amd64-agp amd-k7-agp ati-agp efficeon-agp intel-agp),
qw(k7-agp mch-agp nvidia-agp sis-agp sworks-agp via-agp),
],
},
);
-my %dependencies;
-my %filenames;
+my %moddeps;
sub load_dependencies {
- my ($file) = @_;
-
- %dependencies = ();
- %filenames = ();
- foreach (cat_($file)) {
- s![^ ]*/!!g;
- s!\.ko!!g;
- s!\.gz!!g;
- my ($filename, $d) = split ':';
- my ($modname, @deps) = map { filename2modname($_) } $filename, split(' ', $d);
- $dependencies{$modname} = \@deps;
- $filenames{$modname} = $filename;
+ my ($file, $o_root) = @_;
+
+ %moddeps = ();
+ foreach (cat_($o_root . $file)) {
+ my ($m, $d) = split ':';
+ my $path = $m;
+ my ($filename, @fdeps) = map {
+ s![^ ]*/!!g;
+ s!\.ko!!g;
+ s!\.[gx]z!!g;
+ $_;
+ } $m, split(' ', $d);
+
+ my ($modname, @deps) = map { filename2modname($_) } $filename, @fdeps;
+ $moddeps{$modname}{deps} = \@deps;
+ $moddeps{$modname}{filename} = $filename;
+ if (!begins_with($path, "/")) {
+ #- with newer module-init-tools, modules.dep can contain
+ #- relative paths
+ $path = dirname($file) . '/' . $path;
+ }
+ $moddeps{$modname}{path} = $path;
}
}
sub dependencies_closure {
- my @l = map { dependencies_closure($_) } @{$dependencies{$_[0]} || []};
+ my @l = map { dependencies_closure($_) } @{exists $moddeps{$_[0]} && $moddeps{$_[0]}{deps} || []};
(@l, $_[0]);
}
@@ -310,10 +413,19 @@ sub filename2modname {
$modname;
}
+sub load_default_moddeps() {
+ require c;
+ load_dependencies('/lib/modules/' . c::kernel_version() . '/modules.dep');
+}
+
sub modname2filename {
- load_dependencies($::prefix . '/lib/modules/' . c::kernel_version() . '/modules.dep')
- if !%filenames;
- $filenames{$_[0]};
+ load_default_moddeps() if !%moddeps;
+ $moddeps{$_[0]}{filename};
+}
+
+sub modname2path {
+ load_default_moddeps() if !%moddeps;
+ $moddeps{$_[0]}{path};
}
sub category2modules {
@@ -344,7 +456,7 @@ sub module2category {
}
sub ethernet_categories() {
- 'network/main|gigabit|pcmcia|tokenring|usb|wireless|firewire';
+ 'network/main|gigabit|pcmcia|usb|wireless|firewire';
}
sub sub_categories {
diff --git a/kernel/modules.pl b/kernel/modules.pl
index 0491e0c09..9ec6f5356 100644
--- a/kernel/modules.pl
+++ b/kernel/modules.pl
@@ -37,49 +37,37 @@ my ($f, @para) = @ARGV;
$::{$f}->(@para);
sub modules() {
- map { category2modules($_) } split(' ', $images_cat);
+ my @nls_modules = ('nls_cp437', 'nls_iso8859_1');
+ @nls_modules, map { category2modules($_) } split(' ', $images_cat);
}
-sub remove_unneeded_modules {
+sub list_needed_modules {
my ($kern_ver) = @_;
- #- need creating a first time the modules.dep for all modules
- filter_modules_dep($kern_ver);
- load_dependencies("all.kernels/$kern_ver/modules.dep");
+ load_dependencies("/lib/modules/$kern_ver/modules.dep");
my @all = modules();
my @all_with_deps = map { dependencies_closure($_) } @all;
- my %wanted_modules = map { (list_modules::modname2filename($_) . ".ko.gz" => 1) } @all_with_deps;
- foreach (all("all.kernels/$kern_ver/modules")) {
- $wanted_modules{$_} or unlink "all.kernels/$kern_ver/modules/$_";
+ my %wanted_modules = map { (list_modules::modname2filename($_) => 1) } @all_with_deps;
+ foreach (`find /lib/modules/$kern_ver -name '*.ko.?z'`) {
+ my $modfile = basename($_);
+ $modfile =~ s/\.ko\.xz//;
+ $wanted_modules{$modfile} and print "$modfile\n";
}
}
-sub make_modules_per_image {
+sub list_fake_modules {
my ($kern_ver) = @_;
- my $dir = "all.kernels/$kern_ver/modules";
+ load_dependencies("/lib/modules/$kern_ver/modules.dep");
- system("cd $dir ; tar cf ../all_modules.tar *.ko.gz") == 0 or die "tar failed\n";
-}
-
-sub filter_modules_dep {
- my ($kern_ver) = @_;
-
- my @l = cat_("all.kernels/$kern_ver/modules.dep");
-
- @l = map {
- my ($f, $d) = split ':';
- my ($module, @deps) = map { m!.*/(.*)\.k?o(\.gz)$! && $1 } $f, split(' ', $d);
- if (member($module, 'plip', 'ppa', 'imm')) {
- @deps = map { $_ eq 'parport' ? 'parport_pc' : $_ } @deps;
- } elsif ($module eq 'vfat') {
- push @deps, 'nls_cp437', 'nls_iso8859-1';
- }
- join(' ', "$module:", @deps);
- } @l;
-
- output("all.kernels/$kern_ver/modules.dep", map { "$_\n" } @l);
+ my @all = map { category2modules($_) } split(' ', 'multimedia/*');
+ my %wanted_modules = map { (list_modules::modname2filename($_) => 1) } @all;
+ foreach (`find /lib/modules/$kern_ver -name '*.ko.?z'`) {
+ my $modfile = basename($_);
+ $modfile =~ s/\.ko\.xz//;
+ $wanted_modules{$modfile} and print "$modfile\n";
+ }
}
sub get_main_modules() {
@@ -162,3 +150,23 @@ sub check() {
exit $error;
}
+
+sub list_additional_firmware {
+ my ($kern_ver) = @_;
+
+ # The firmware reported by 'modinfo iwlwifi' is the latest supported version of each firmware
+ # type. Sometimes the latest supported version is not available, and the driver falls back to
+ # an older version. This means dracut doesn't automatically identify and include the necessary
+ # firmware files, so we need to list them here (mga#9541).
+ foreach (map { /^firmware:\s+(.*)/ ? $1 : () } split("\n", `modinfo -k $kern_ver iwlwifi`)) {
+ next if -f "/lib/firmware/$_";
+ my ($basename, $version) = /(.*)-([0-9]+).ucode/;
+ while ($version-- > 0) {
+ my $filepath = "/lib/firmware/$basename-$version.ucode";
+ if (-f $filepath) {
+ print "$filepath\n";
+ last;
+ }
+ }
+ }
+}
diff --git a/mdk-stage1/.gitignore b/mdk-stage1/.gitignore
new file mode 100644
index 000000000..fe2469cea
--- /dev/null
+++ b/mdk-stage1/.gitignore
@@ -0,0 +1,13 @@
+*.o
+dhcp-client
+init
+probe-modules
+rescue-gui
+stage1
+pci-resource/pci-ids.h
+usb-resource/usb-ids.h
+pcmcia-resource/pcmcia-ids.h
+pcmcia/lex_config.c
+pcmcia/libpcmcia.a
+pcmcia/yacc_config.c
+pcmcia/yacc_config.h
diff --git a/mdk-stage1/Makefile b/mdk-stage1/Makefile
index d487db5d0..1d66d22fe 100644
--- a/mdk-stage1/Makefile
+++ b/mdk-stage1/Makefile
@@ -2,11 +2,9 @@
#
# mdk-stage1 - the program that will load second-stage install
#
- # $Id$
+ # Pixel (pixel) (mostly done by Guillaume Cottenceau)
#
- # Pixel (pixel@mandrakesoft.com) (mostly done by Guillaume Cottenceau)
- #
- # Copyright 2000-2004 Mandrakesoft
+ # Copyright 2000-2004 Mandriva
#
# This software may be freely redistributed under the terms of the GNU
# public license.
@@ -15,33 +13,12 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-VERSION=1.17
+VERSION=2.62
PRODUCT=drakx-installer-binaries
#
# Portions from Erik Troan (ewt@redhat.com) Copyright 1996 Red Hat Software
#
- #*****************************************************************************
- #
- # Currently:
- #
- # ix86
- # init with dietlibc
- # stage1 with dietlibc
- #
- # ppc
- # init with dietlibc
- # stage1 with glibc
- #
- # ia64
- # init with glibc
- # stage1 with glibc
- #
- # x86-64
- # init with dietlibc
- # stage1 with dietlibc
- #
- #*****************************************************************************
top_dir = .
@@ -50,55 +27,40 @@ include $(top_dir)/Makefile.common
include $(top_dir)/../Makefile.config
ARCHDIR=$(ARCH)
ifeq (i386, $(ARCH))
-ARCHDIR=i586
+ARCHDIR=i686
endif
DEFS = -DDISTRIB_NAME=\"$(DISTRIB_NAME)\" -DDISTRIB_VERSION=\"$(DISTRIB_VERSION)\" -DDISTRIB_TYPE=\"$(DISTRIB_TYPE)\" -DDISTRIB_DESCR=\"$(DISTRIB_DESCR)\" $(ADDITIONAL_DEFS) -D_FILE_OFFSET_BITS=64 -DARCH=\"$(ARCHDIR)\" -DCONFIG_USE_ZLIB
-COMPILE = $(CC) $(DEFS) $(CFLAGS)
+COMPILE = $(CC) $(DEFS) $(CFLAGS) -Wno-error=format-truncation
-INIT_DEFS =
INITSRC = init.c
-ifneq (DIETLIBC, $(L))
-INIT_DEFS += $(GLIBC_INCLUDES)
-endif
-INITOBJS = $(subst .c,.o,$(INITSRC))
+STAGE1_DEFS=-DDISABLE_KA
+
+INITOBJS = $(INITSRC:.c=.o)
#- frontends
NEWT_FRONTEND_SRC = newt-frontend.c
-NEWT_FRONTEND_LIBS = newt/libnewt.a slang/libslang.a
+NEWT_FRONTEND_LIBS = -lnewt -lslang
STDIO_FRONTEND_SRC = stdio-frontend.c
STDIO_FRONTEND_LIBS =
-STDIO_FRONTEND_LIBS =
-
-FRONTEND_OBJS = $(subst .c,.o,$($(F)_FRONTEND_SRC))
+FRONTEND_OBJS = $($(F)_FRONTEND_SRC:.c=.o)
FRONTEND_LINK = $(FRONTEND_OBJS) $($(F)_FRONTEND_LIBS)
-STAGE1_OWN_LIBS =
-ifeq (DIETLIBC, $(L))
-STAGE1_OWN_LIBS = $(patsubst %,/usr/lib/dietlibc/lib-$(ARCH)/%,libz.a libldetect.a libmodprobe.a libpci.a)
-else
-STAGE1_OWN_LIBS = /usr/$(LIB)/libz.a
-endif
-
+STAGE1_OWN_LIBS = -lz -lldetect -lkmod -lpci -llzma -lsysfs
-ifeq (DIETLIBC, $(L))
-STAGE1_NETWORK_LIBS = /usr/lib/dietlibc/lib-$(ARCH)/librpc.a
-else
-STAGE1_NETWORK_LIBS = /usr/$(LIB)/libresolv.a
-endif
#- stage1 itself
STAGE1SRC = stage1.c log.c utils.c params.c tools.c modules.c probing.c mount.c automatic.c frontend-common.c lomount.c thirdparty.c zlibsupport.c
CDROMSRC = cdrom.c
DISKSRC = disk.c directory.c partition.c
-NETWORKSRC = network.c nfsmount.c dhcp.c url.c dns.c adsl.c directory.c wireless.c
-KASRC = ka.c
+NETWORKSRC = network.c dhcp.c url.c dns.c adsl.c directory.c wireless.c
+#KASRC = ka.c
# use sort to remove duplicates
STAGE1_ALLSRC = $(sort $(STAGE1SRC) $(CDROMSRC) $(DISKSRC) $(NETWORKSRC) $(KASRC))
@@ -119,66 +81,63 @@ STAGE1OBJS-NETWORK-STANDALONE = $(subst .c,-NETWORK-STANDALONE.o,$(STAGE1SRC) $(
NETWORK_STANDALONE_DEFS = -DDISABLE_CDROM -DDISABLE_DISK -DENABLE_NETWORK_STANDALONE -DDISABLE_KA
-STAGE1OBJS-FULL = $(subst .c,-FULL.o,$(STAGE1_ALLSRC))
+STAGE1OBJS-FULL = $(STAGE1_ALLSRC:.c=-FULL.o)
-BINS = init stage1 dhcp-client rescue-gui
+BINS = init stage1 dhcp-client rescue-gui probe-modules
-DIRS += pci-resource usb-resource slang newt ppp/pppd rp-pppoe/src
-ifeq (i386, $(ARCH))
-DIRS += pcmcia pcmcia-resource sysfs
-endif
-ifeq (x86_64, $(ARCH))
-DIRS += pcmcia pcmcia-resource sysfs
-endif
-
-
-ifeq (i386,$(ARCH))
-PCMCIA_LIB = pcmcia/libpcmcia.a sysfs/libsysfs.a
-PCMCIA_DEFS = -DENABLE_PCMCIA
-endif
-ifeq (x86_64,$(ARCH))
-PCMCIA_LIB = pcmcia/libpcmcia.a sysfs/libsysfs.a
+OTHERS = pci-ids.h usb-ids.h
+ifneq (,$(filter $(ARCH),i386 x86_64))
+OTHERS += pcmcia-ids.h pcmcia
+PCMCIA_LIB = pcmcia/libpcmcia.a
PCMCIA_DEFS = -DENABLE_PCMCIA
endif
-
USB_DEFS_GEN = -DENABLE_USB
USB_DEFS = -DENABLE_USB -DDISABLE_PCIADAPTERS
-all: dirs $(BINS)
+all: $(OTHERS) $(BINS)
-dirs:
- @for n in . $(DIRS); do \
- [ "$$n" = "." ] || make -C $$n || exit 1 ;\
- done
+pci-ids.h: /usr/share/ldetect-lst/pcitable.gz update-pci-ids.pl
+ perl update-pci-ids.pl > $@ || { rm -f $@; exit 1; }
+
+usb-ids.h: /usr/share/ldetect-lst/usbtable.gz update-usb-ids.pl
+ perl update-usb-ids.pl > $@ || rm -f $@
+
+pcmcia-ids.h: update-pcmcia-ids.pl
+ perl update-pcmcia-ids.pl > $@ || { rm -f $@; exit 1; }
-init: $(INITOBJS) $(STAGE1_LIBC)
- $(DIET) $(CC) $(LDFLAGS) -o $@ $^
+pcmcia/libpcmcia.a:
+ make -j -C pcmcia
+
+probing.c: pci-ids.h
+
+init: $(INITOBJS)
+ $(CC) $(LDFLAGS) -o $@ $^
$(STRIPCMD) $@
-stage1: $(STAGE1OBJS-FULL) $(STAGE1_OWN_LIBS) $(STAGE1_NETWORK_LIBS) $(FRONTEND_LINK) bootsplash.o $(PCMCIA_LIB) $(STAGE1_LIBC)
- $(DIET) $(CC) $(LDFLAGS) -o $@ $^
+stage1: $(STAGE1OBJS-FULL) $(STAGE1_OWN_LIBS) $(FRONTEND_LINK) $(PCMCIA_LIB)
+ $(CC) $(LDFLAGS) -o $@ $^
$(STRIPCMD) $@
-dhcp-client: $(STAGE1OBJS-NETWORK-STANDALONE) $(STAGE1_OWN_LIBS) $(STAGE1_NETWORK_LIBS) $(FRONTEND_LINK) $(STAGE1_LIBC)
- $(DIET) $(CC) $(LDFLAGS) -o $@ $^
+dhcp-client: $(STAGE1OBJS-NETWORK-STANDALONE) $(STAGE1_OWN_LIBS) $(FRONTEND_LINK)
+ $(CC) $(LDFLAGS) -o $@ $^
$(STRIPCMD) $@
$(INITOBJS): %.o: %.c
- $(COMPILE) $(INIT_DEFS) -c $<
+ $(COMPILE) -c $<
$(STAGE1OBJS-NETWORK): %-NETWORK.o: %.c
- $(DIET) $(COMPILE) $(INCLUDES) $(NETWORK_DEFS) $(PCMCIA_DEFS) $(USB_DEFS_GEN) -DENABLE_ADDITIONAL_MODULES -c $< -o $@
+ $(COMPILE) $(INCLUDES) $(NETWORK_DEFS) $(PCMCIA_DEFS) $(USB_DEFS_GEN) -DENABLE_ADDITIONAL_MODULES -c $< -o $@
$(STAGE1OBJS-NETWORK-STANDALONE): %-NETWORK-STANDALONE.o: %.c
- $(DIET) $(COMPILE) $(INCLUDES) $(NETWORK_STANDALONE_DEFS) $(USB_DEFS_GEN) -c $< -o $@
+ $(COMPILE) $(INCLUDES) $(NETWORK_STANDALONE_DEFS) $(USB_DEFS_GEN) -c $< -o $@
$(STAGE1OBJS-FULL): %-FULL.o: %.c
- $(DIET) $(COMPILE) $(INCLUDES) -DSPAWN_SHELL $(USB_DEFS_GEN) $(PCMCIA_DEFS) -DENABLE_BOOTSPLASH -c $< -o $@
+ $(COMPILE) $(INCLUDES) -DSPAWN_SHELL $(USB_DEFS_GEN) $(PCMCIA_DEFS) $(STAGE1_DEFS) -c $< -o $@
.c.o:
- $(DIET) $(COMPILE) $(INCLUDES) -DENABLE_BOOTSPLASH -c $<
+ $(COMPILE) $(INCLUDES) -c $<
clean: localclean
@@ -187,22 +146,22 @@ clean: localclean
done
localclean:
- rm -f *.o .depend *.rdz *.img $(BINS)
+ rm -f *.o .depend *.rdz *.img pci-ids.h pcmcia-ids.h usb-ids.h $(BINS)
-rescue-gui: rescue-gui.o frontend-common.o params.o utils.o log.o automatic.o $(FRONTEND_LINK) $(STAGE1_LIBC)
- $(DIET) $(CC) $(LDFLAGS) -o $@ $^
+rescue-gui: rescue-gui.o frontend-common.o params.o utils.o log.o automatic.o $(FRONTEND_LINK)
+ $(CC) $(LDFLAGS) -o $@ $^
$(STRIPCMD) $@
+probe-modules: probe-modules.o probing-FULL.o modules-FULL.o params-FULL.o utils-FULL.o log-FULL.o automatic-FULL.o frontend-common-FULL.o stdio-frontend.o zlibsupport-FULL.o $(STAGE1_OWN_LIBS) $(PCMCIA_LIB)
+ $(CC) $(LDFLAGS) -o $@ $^
+ $(STRIPCMD) $@
+dist: tar
tar:
rm -rf $(PRODUCT)*.tar* $(PRODUCT)-$(VERSION)
- mkdir -p $(PRODUCT)-$(VERSION)
- svn export -q . $(PRODUCT)-$(VERSION)/mdk-stage1
- svn export -q ../kernel $(PRODUCT)-$(VERSION)/kernel
- cp ../Makefile.config $(PRODUCT)-$(VERSION)/
- tar cfj $(PRODUCT)-$(VERSION).tar.bz2 $(PRODUCT)-$(VERSION)
- rm -rf $(PRODUCT)-$(VERSION)
+ @cd ..; git archive --prefix=$(PRODUCT)-$(VERSION)/ HEAD mdk-stage1 kernel Makefile.config | xz >mdk-stage1/$(PRODUCT)-$(VERSION).tar.xz;
+ $(info $(PRODUCT)-$(VERSION).tar.xz is ready)
.depend:
$(CPP) $(CFLAGS) -M $(ALLSRC) > .depend
diff --git a/mdk-stage1/Makefile.common b/mdk-stage1/Makefile.common
index f5209a58e..f2c70273a 100644
--- a/mdk-stage1/Makefile.common
+++ b/mdk-stage1/Makefile.common
@@ -1,9 +1,9 @@
# -*- makefile -*-
#******************************************************************************
#
- # Guillaume Cottenceau (gc@mandrakesoft.com)
+ # Guillaume Cottenceau (gc)
#
- # Copyright 2000 Mandrakesoft
+ # Copyright 2000 Mandriva
#
# This software may be freely redistributed under the terms of the GNU
# public license.
@@ -15,7 +15,7 @@
#*****************************************************************************
ARCH := $(patsubst i%86,i386,$(shell uname -m))
-ARCH := $(patsubst sparc%,sparc,$(ARCH))
+ARCH := $(ARCH:arm%=arm)
# DEBUG = 1
@@ -26,39 +26,18 @@ else
F = NEWT
endif
-DIET = $(shell test -x /usr/bin/diet && echo diet)
-
-ifeq ($(DIET), diet)
- #- default lib is dietlibc (honoured by main Makefile whenever possible)
-L = DIETLIBC
-else
-L = GLIBC
-endif
-
ifdef DEBUG
-OPTFLAGS = -g
+OPTFLAGS = -g -DDEBUG
else
OPTFLAGS = -Os
endif
#- flags used by all stuff
-CFLAGS = $(OPTFLAGS) -pipe -Wall -fomit-frame-pointer -fno-strict-aliasing
-
-ifneq (ppc, $(ARCH))
-ifneq (sparc, $(ARCH))
-CFLAGS += -Werror
-endif
-endif
-
-DIETLIBC_INCLUDES = -I/usr/lib/dietlibc/include -I.
-DIETLIBC_LIBC = /usr/lib/dietlibc/lib-$(ARCH)/libcompat.a
-GLIBC_INCLUDES = -I.
-INCLUDES = $($(L)_INCLUDES)
+CFLAGS = $(OPTFLAGS) -pipe -Wall -fomit-frame-pointer -fno-strict-aliasing -Werror
-GLIBC_LDFLAGS = -static
-LDFLAGS = $($(L)_LDFLAGS)
+INCLUDES = -I.
-STAGE1_LIBC = $($(L)_LIBC)
+LDFLAGS =
ifdef DEBUG
STRIPCMD = echo not stripping
diff --git a/mdk-stage1/NEWS b/mdk-stage1/NEWS
index 0893cca7d..714ea3129 100644
--- a/mdk-stage1/NEWS
+++ b/mdk-stage1/NEWS
@@ -1,3 +1,518 @@
+- Replace i586 with i686 in files
+
+2.62
+
+- Sync list_modules with kernel 6.4
+
+2.61
+
+- Sync with kernel 6.0
+- Increase MEM_LIMIT_* to match current stage2 size
+- Fix the detection of available memory
+- Fix a build failure with -Werror=address
+
+2.60
+
+- Sync with kernel 5.17
+- Sync with kernel 5.18
+- Sync with kernel 5.19
+- Sync with kernel 6.0
+- Sync with kernel 6.1
+
+2.59
+
+- use 'nolock' option for NFS
+
+2.58
+
+- fix 'disk' method after kernel-5.15 breakage
+
+2.57
+
+- http server: allow to specify a port different than default "80" (mga#28367)
+
+2.56
+
+- load exfat module to mount exfat (mga#28371)
+
+2.55
+
+- recognize rtw89_pci HID driver
+
+2.53
+
+- recognize amd_sfh HID driver
+
+2.52
+
+- recognize more rtw88_*
+- sync with kernel 5.10
+
+2.51
+
+- configure wpa_supplicant to try both nl80211 and wext interfaces
+ o some old wireless driver modules may only support wext
+- improve help for entering wireless keys/passphrases
+ o note that ASCII strings can now be used for WEP keys (mga#21042)
+
+2.50
+
+- add support for WPA/WPA2 (mga#9541)
+
+2.49
+
+- sync with kernel 5.9
+
+2.48
+
+- sync with kernel 5.8
+
+2.47
+
+- sync with kernel 5.6/5.7
+
+2.46
+
+- make NVME code really generic and reuse if for most other disks
+
+2.45
+
+- fix NVME code to work for disks with no vendor
+
+2.44
+
+- add support for NVME disks
+
+2.43
+
+- sync with kernel 5.5
+
+2.42
+
+- sync with kernel 5.4
+
+2.41
+
+- sync with kernel 5.3
+
+2.40
+
+- recognize 8821ce (mga#24605)
+
+2.39
+
+- add AMD PCIe MP2 I2C detection
+
+2.38
+
+- sync with kernel 5.1
+
+2.37
+
+- sync with kernel 5.0
+
+2.36
+
+- suppress mount error messages when probing for media (mga#24142)
+- better gcc8 workarounds
+
+2.35
+
+- fix compiling with gcc8
+- compile with -Wno-error=format-truncation for now
+
+2.34
+
+- mounting:
+ o let libblk guess the right fs type rather than manually trying a long list
+ of potential fses
+ o use regular mount tool rather than manual system calls
+ o use regular mount tool for NFS too (support NFSv4, ...)
+
+2.33
+
+- advertize "ext4" rather than "ext2"
+- check for builtin modules in /sys/fs too (eg: ext4)
+- support auto-install with "method:disk,disk:xxx,part:xxxY,dir:zzz"
+
+2.32
+
+- list_modules: don't include vboxvideo (mga#23467)
+
+2.31
+
+- sync with kernel 4.1[89]
+
+2.30
+
+- add missing smartpqi driver (mga#23305)
+
+2.29
+- add missing Mellanox drivers (mga#23263)
+
+2.28
+- sync with kernel 4.1[5-7]
+
+2.27
+- further sync with kernel 4.14
+
+2.26
+- sync with kernel 4.14
+
+2.25
+- fix build with gcc7
+
+2.24
+- recognize 8812au (mga#21043)
+
+2.23
+- recognize new kernel-4.8 drivers
+
+2.22
+- recognize new kernel-4.9 drivers
+
+2.21
+- recognize new kernel-4.7 drivers
+
+2.20
+- fix description of network interfaces (mga#15638)
+
+2.19
+- recognize some missing wireless drivers (mga#16768)
+
+2.18
+- recognize new kernel-4.6 drivers
+
+2.17
+- recognize new kernel-4.4 drivers
+
+2.16
+- recognize new kernel-4.3 drivers
+
+2.15
+- recognize new kernel-4.1 drivers
+
+2.14
+- network.c: fix -Werror=logical-not-parentheses
+
+2.13
+- mount again debugfs for ldetect (mga#14435)
+ (regression in 1.83)
+
+2.12
+- recognize new kernel-3.19 drivers
+
+2.11
+- recognize new kernel-3.18 drivers (mga#14799)
+
+2.10
+- include new 3.18 USB host drivers (mga#14799)
+
+2.9
+- glibc 2.20 wants _DEFAULT_SOURCE instead of _BSD_SOURCE
+
+2.8
+- recognize new kernel-3.17 drivers
+
+2.7
+- recognize hyper-v network card
+
+2.6
+- recognize new kernel-3.16 drivers
+
+2.5
+- stop creating /dev entries now that we use udev
+
+2.4
+- fix building with "make -j24"
+
+2.3
+- recognize new kernel-3.15 drivers
+
+2.2
+- drop support for supermount (dead since 2007)
+- recognize new kernel-3.14 drivers
+
+2.1
+- drop support for SPARC
+- support dynamic linking only
+- use getaddrinfo() with glibc too now that use the dynamic library
+
+2.0
+- kernel modules and firmware is needed during stage2, so move and symlink
+ (symlinks are only for if you umount state2 /usr and want a still working initrd)
+ mga#11600 mga#11601
+
+1.83
+- do initrd symlinking in 'init' rather than 'stage1' (stage1 is now run earlier)
+- build init and stage1 as a shared library (due to bugs in directory handling
+ in dietlibc as exposed in libkmod but also because glibc is already include in
+ dracut)
+
+1.82
+- detect new kernel-3.12 modules
+
+1.81
+- sync with kernel-3.11 (might fix mga#11377)
+
+1.80
+- include latest list_modules.pl
+ (might fix mga#11377)
+
+1.79
+- fix compiling with gcc-4.8
+
+1.78
+- probe virtual drivers too (mga#9546)
+ (install from Xen hd not supported yet)
+
+1.77
+- use kmod for module loading (mga#9242, based on Pok works @mdv)
+
+1.76
+- revert patch introduced in r7542
+
+1.75
+- fix loading modules with "-" in their names (mga#9242)
+
+1.74.1
+- update list_modules for xen dom0 and virtio support (#9242)
+
+1.74
+- fix unitialized memory screwing up dialog input (pok, mdv, mga#8729)
+- kill bootsplash support (we drop bootsplash in kernel in 2008)
+- kill firmware loader now that firmware are loaded by the kernel
+
+1.73
+- add firmware loader written in C (based on hotplug2) (mga#6323)
+
+1.72
+- fix URL passed to stage2 when user didn't provide the arch in the
+ install path (mga#6823)
+- retry with FTP instead of HTTP when there's no proxy and user didn't
+ provided the architecture in the URL
+
+1.71
+- silent hid_generic loading
+
+1.70
+- mount /dev as devtmpfs (pok, mdv)
+- rely on /sys being created in images
+
+1.69
+- do not try to mount /proc/bus/usb
+- load hid-generic
+
+1.68
+- mount /sys/kernel/debug (needed for new ldetect)
+
+1.67
+- make sure nurses get initialized in UTF-8 (mga#4894)
+- revert to "linux" terminfo
+
+1.66
+- do not advice long dead pcmcia.img & network.img images (mga#5466)
+- first attempt at supporting XenBlk discs
+- hide "KA server" option (mga#5944)
+- switch from gethostbyname() to getaddrinfo() (mga#4056)
+- switch from gethostbyaddr() to getnameinfo()
+- use system libraries for newtw, slang & sysfs (mdv)
+
+1.65
+- load btrfs module to mount btrfs
+- try mounting as btrfs
+
+1.64
+- default to "screen" instead of "linux" terminfo (mga#4894)
+
+1.63
+- do not try to load obsolete sqlzma & squashfs_lzma kernel modules
+- recognize c67x00, imx21-hcd, fhci, isp1362-hcd, oxu210hp-hcd & renesas-usbhs
+ USB host drivers (mga#4905)
+
+1.62
+- fix segfaulting when ISO directory is not valid (mga#4592)
+
+1.61
+- fix building with newer dietlibc/zlib
+
+1.60
+- add support for virtio discs
+
+1.59
+- try to use arch-prefixed location for FTP & HTTP installs (mga#2578)
+
+1.58
+- add support for kernel compressed as XZ
+
+1.57
+- fix linking with new kmod
+
+1.56
+- kill 10 years old snapshot of pppd & pppoe
+ (now using upstream pppd & pppoe)
+- link with libkmod instead of libmodprobe
+
+1.55:
+- pcmcia: kill obsolete test for 2.2 kernel
+- sync with kernel-3.2.0-0.rc7.1.mga2 for updated list_modules.pm
+
+1.54:
+- fix retrieving mirrorlist, broken in 1.53
+- fix build with Werror
+
+1.53:
+- display distro name in mirror list too (#191)
+
+1.52:
+- fix build with gcc-4.6.2
+ * fixes -Werror=unused-but-set-variable
+
+1.51:
+- sync with kernel-3.1.0-1.mga2
+ * add hid devices:
+ hid-keytouch, hid-uclogic
+ * add sas/raid driver:
+ isci
+ * add sound devices:
+ snd-lola, snd-firewire-speakers snd-isight, snd-usb-6fire
+ * add usb/storage:
+ ums-eneub6250, ums-realtek
+ * add wireless drivers:
+ brcmsmac, rtl8187se, rtusb, rtl8192se, rtl8192cu, rtl8192de
+
+1.50:
+- do not attempt to perform ISA probe for PCMCIA controller on x86_64
+ as it fails with kvm_amd (#1156)
+- add ums-* (USB mass storage) modules in disk/usb category
+
+1.49:
+- use new libldetect API for finding out unknown devices
+- handle more PCMCIA controllers
+- "i82365" driver was renamed "pd6729"
+
+1.48:
+- arm/mips support
+- try to handle built-in modules
+- fix build with Werror
+- use mirrors.mageia.org/api for mirror list
+
+1.47:
+- 2011.0 build
+
+1.46:
+- create device listed in /proc/partitions with correct major/minor (#57032)
+
+1.45:
+- do not list /dev/fd0 when no floppy is found (#58390)
+
+1.44:
+- rebuild with latest list_modules.pm (might fix #57833)
+
+1.43:
+- bump version (#57466)
+
+1.42:
+- list asix module in network/usb group
+- virtio: fix device probing: use PCI subdevices
+- fix format string bug from 1.41
+
+1.41:
+- load needed modules for known virtio devices, fixes #51804
+
+1.39:
+- set uevent helper which will load firmware and do not set firmware
+ timeout to 1 second (it will fail if firmware is not there)
+
+1.38:
+- handle hybrid ISOs (ISO images dumped to USB keys)
+
+1.37:
+- enumerate hid bus and load hid quirk modules, fixes #47167
+
+1.36:
+- load appropriate modules before trying to mount ext4/reiser4
+
+1.35:
+- allow installing from ext3/ext4/reiser4
+
+1.34:
+- adapt to new modules.dep format (prefix modules with directory path)
+- try to use arch-prefixed location for automatic disk installs
+
+1.33:
+- build fix for glibc 2.8
+- sort modules in the interface
+- try to load squashfs_lzma too
+
+1.32:
+- automatically find compressed stage2 with automatic=method:disk
+
+1.31:
+- usbkbd is dead, using usbhid instead
+
+1.30:
+- add back "ide-generic" support (incorrectly removed in 1.17), the
+ module that we want to avoid is "ide-pci-generic" (previously "generic"),
+ and this is handled by ldetect-lst preferred modules list
+- handle ide-cd being renamed as ide-cd_mod
+
+1.29:
+- allow to pass module options to probe-modules
+- build fixes for gcc 4.3
+
+1.28:
+- fix segfault with empty device description (can happen for USB devices)
+
+1.27.1:
+- fix build
+
+1.27:
+- do not set firmware timeout to 1 second in probe-modules helper for
+ Mandriva One (#39216)
+
+1.26:
+- load bus/firewire controllers (#31356)
+- really ask dhcp domain if not guessed
+
+1.25:
+- do not allow to choose outdated cooker mirror list (#37278)
+
+1.24:
+- load disk/ide before disk/scsi (#38451, to prevent sata deps from
+ overriding non-libata pata modules, like in stage2)
+- fix asking modules when no controller is detected
+
+1.23:
+- probe usb-storage/sbp2 only when probing USB/SCSI buses
+ (to make automatic boot faster on IDE)
+- make dhcp the first choice (instead of static) in the network type menu
+- clear tty2 after shell is killed
+- log "killed shell" message on tty3
+- add a space in front of top line (like help message)
+- space-pad top line with spaces to the right (like help message)
+
+1.22:
+- fix automatic IDE media detection (was broken with multiple CD drives, #36161)
+- fix bootsplash in automatic CD-Rom mode (as a result of IDE media detection fix)
+- wait only 1 second for firmware upload (not to hang boot with iwl3945, #37279)
+
+1.21:
+- load nls_cp437 and nls_iso8859_1 when loading vfat
+ (used to be in custom modules.dep)
+
+1.20:
+- probe-modules:
+ o handle the "--usb" option instead of "usb"
+ o load module passed as argument (if any), instead of probing bus
+- switch to modules from /lib/modules/`uname -r`, modules.dep containing full filename
+
+1.19:
+- rebuild with list_modules to handle atl2 ethernet driver
+
+1.18:
+- add probe-modules helper
+
1.17:
- use modules from disk/ide category (#33043)
- do not explicitely try to load ide-generic, ldetect will fallback to
diff --git a/mdk-stage1/adsl.c b/mdk-stage1/adsl.c
index 03eeeb9a9..70968f50b 100644
--- a/mdk-stage1/adsl.c
+++ b/mdk-stage1/adsl.c
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -156,8 +156,8 @@ enum return_type perform_adsl(struct interface_info * intf)
intf->boot_proto = BOOTPROTO_ADSL_PPPOE;
wait_message("Waiting for ADSL connection to show up...");
- my_insmod("ppp_generic", ANY_DRIVER_TYPE, NULL, 1);
- my_insmod("ppp_async", ANY_DRIVER_TYPE, NULL, 1);
+ my_modprobe("ppp_generic", ANY_DRIVER_TYPE, NULL);
+ my_modprobe("ppp_async", ANY_DRIVER_TYPE, NULL);
results = adsl_connect(intf, answers[0], answers[1], answers[2]);
remove_wait_message();
diff --git a/mdk-stage1/adsl.h b/mdk-stage1/adsl.h
index fb0baf327..aa4461108 100644
--- a/mdk-stage1/adsl.h
+++ b/mdk-stage1/adsl.h
@@ -1,9 +1,9 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
- * View the homepage: http://us.mandrakesoft.com/~gc/html/stage1.html
+ * View the homepage: http://us.mandriva.com/~gc/html/stage1.html
*
*
* This software may be freely redistributed under the terms of the GNU
diff --git a/mdk-stage1/automatic.c b/mdk-stage1/automatic.c
index e5c909624..5e9ed56a2 100644
--- a/mdk-stage1/automatic.c
+++ b/mdk-stage1/automatic.c
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -46,14 +46,14 @@ void grab_automatic_params(char * line)
int j = i;
while (line[i] != ':' && line[i] != '\0')
i++;
- name = memdup(&line[j], i-j + 1);
+ name = _memdup(&line[j], i-j + 1);
name[i-j] = 0;
k = i+1;
i++;
while (line[i] != ',' && line[i] != '\0')
i++;
- value = memdup(&line[k], i-k + 1);
+ value = _memdup(&line[k], i-k + 1);
value[i-k] = 0;
tmp_params[p].name = name;
@@ -65,7 +65,7 @@ void grab_automatic_params(char * line)
}
tmp_params[p++].name = NULL;
- automatic_params = memdup(tmp_params, sizeof(struct param_elem) * p);
+ automatic_params = _memdup(tmp_params, sizeof(struct param_elem) * p);
log_message("AUTOMATIC MODE: got %d params", p-1);
}
@@ -102,7 +102,6 @@ char * get_auto_value(char * auto_param)
enum return_type ask_from_list_auto(char *msg, char ** elems, char ** choice, char * auto_param, char ** elems_auto)
{
if (!IS_AUTOMATIC) {
- exit_bootsplash();
return ask_from_list(msg, elems, choice);
} else {
char ** sav_elems = elems;
@@ -124,7 +123,6 @@ enum return_type ask_from_list_auto(char *msg, char ** elems, char ** choice, ch
enum return_type ask_from_list_comments_auto(char *msg, char ** elems, char ** elems_comments, char ** choice, char * auto_param, char ** elems_auto)
{
if (!IS_AUTOMATIC) {
- exit_bootsplash();
return ask_from_list_comments(msg, elems, elems_comments, choice);
} else {
char ** sav_elems = elems;
@@ -147,7 +145,6 @@ enum return_type ask_from_list_comments_auto(char *msg, char ** elems, char ** e
enum return_type ask_from_entries_auto(char *msg, char ** questions, char *** answers, int entry_size, char ** questions_auto, void (*callback_func)(char ** strings))
{
if (!IS_AUTOMATIC) {
- exit_bootsplash();
return ask_from_entries(msg, questions, answers, entry_size, callback_func);
} else {
char * tmp_answers[50];
@@ -160,7 +157,7 @@ enum return_type ask_from_entries_auto(char *msg, char ** questions, char *** an
questions_auto++;
}
- *answers = memdup(tmp_answers, sizeof(char *) * i);
+ *answers = _memdup(tmp_answers, sizeof(char *) * i);
return RETURN_OK;
}
}
diff --git a/mdk-stage1/automatic.h b/mdk-stage1/automatic.h
index a5bfe212b..5fb890d61 100644
--- a/mdk-stage1/automatic.h
+++ b/mdk-stage1/automatic.h
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
diff --git a/mdk-stage1/bootsplash.c b/mdk-stage1/bootsplash.c
deleted file mode 100644
index d51deb543..000000000
--- a/mdk-stage1/bootsplash.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Pixel (pixel@mandrakesoft.com)
- *
- * Copyright 2004 Mandrakesoft
- *
- * This software may be freely redistributed under the terms of the GNU
- * public license.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-#include <stdio.h>
-#include "bootsplash.h"
-#include "frontend.h"
-#include "log.h"
-
-static int total_size;
-static float previous;
-static FILE* splash = NULL;
-
-static void update_progression_only(int current_size)
-{
- if (splash && total_size) {
- float ratio = (float) (current_size + 1) / total_size;
- if (ratio > previous + 0.01) {
- fprintf(splash, "show %d\n", (int) (ratio * 65534));
- fflush(splash);
- previous = ratio;
- }
- }
-}
-
-static void open_bootsplash(void)
-{
- if (!splash) splash = fopen("/proc/splash", "w");
- if (!splash) log_message("opening /proc/splash failed");
-}
-
-void exit_bootsplash(void)
-{
- log_message("exiting bootsplash");
- open_bootsplash();
- if (splash) {
- fprintf(splash, "verbose\n");
- fflush(splash);
- }
-}
-
-
-void init_progression(char *msg, int size)
-{
- previous = 0; total_size = size;
- open_bootsplash();
- update_progression_only(0);
- init_progression_raw(msg, size);
-}
-
-void update_progression(int current_size)
-{
- update_progression_only(current_size);
- update_progression_raw(current_size);
-}
-
-void end_progression(void)
-{
- end_progression_raw();
-}
diff --git a/mdk-stage1/bootsplash.h b/mdk-stage1/bootsplash.h
deleted file mode 100644
index 7d1c8403c..000000000
--- a/mdk-stage1/bootsplash.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Pixel (pixel@mandrakesoft.com)
- *
- * Copyright 2004 Mandrakesoft
- *
- * This software may be freely redistributed under the terms of the GNU
- * public license.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-#ifndef _BOOTSPLASH_H_
-#define _BOOTSPLASH_H_
-
-#ifdef ENABLE_BOOTSPLASH
-void exit_bootsplash(void);
-void tell_bootsplash(char *cmd);
-#else
-#define exit_bootsplash()
-#endif
-
-#endif
diff --git a/mdk-stage1/cdrom.c b/mdk-stage1/cdrom.c
index deb635ca5..71db1da16 100644
--- a/mdk-stage1/cdrom.c
+++ b/mdk-stage1/cdrom.c
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -136,8 +136,9 @@ enum return_type cdrom_prepare(void)
char * choice;
int i, count = 0;
enum return_type results;
+ static int already_probed_ide_generic = 0;
- my_insmod("ide_cd", ANY_DRIVER_TYPE, NULL, 0);
+ my_modprobe("ide_cd_mod", ANY_DRIVER_TYPE, NULL);
if (IS_AUTOMATIC) {
get_medias(CDROM, &medias, &medias_models, BUS_IDE);
@@ -148,7 +149,7 @@ enum return_type cdrom_prepare(void)
if ((i = try_automatic(medias, medias_models)) != -1)
return do_with_device(medias[i], medias_models[i]);
- my_insmod("sr_mod", ANY_DRIVER_TYPE, NULL, 0);
+ my_modprobe("sr_mod", ANY_DRIVER_TYPE, NULL);
get_medias(CDROM, &medias, &medias_models, BUS_SCSI);
if ((i = try_automatic(medias, medias_models)) != -1)
return do_with_device(medias[i], medias_models[i]);
@@ -157,9 +158,16 @@ enum return_type cdrom_prepare(void)
if ((i = try_automatic(medias, medias_models)) != -1)
return do_with_device(medias[i], medias_models[i]);
+ /* detect hybrid isos (isos dumped to an USB stick) */
+ my_modprobe("sd_mod", ANY_DRIVER_TYPE, NULL);
+ get_medias(DISK, &medias, &medias_models, BUS_USB);
+ if ((i = try_automatic(medias, medias_models)) != -1) {
+ return do_with_device(medias[i], medias_models[i]);
+ }
+
unset_automatic();
} else
- my_insmod("sr_mod", ANY_DRIVER_TYPE, NULL, 0);
+ my_modprobe("sr_mod", ANY_DRIVER_TYPE, NULL);
get_medias(CDROM, &medias, &medias_models, BUS_ANY);
@@ -170,8 +178,13 @@ enum return_type cdrom_prepare(void)
}
if (count == 0) {
+ if (!already_probed_ide_generic) {
+ already_probed_ide_generic = 1;
+ my_modprobe("ide_generic", ANY_DRIVER_TYPE, NULL);
+ return cdrom_prepare();
+ }
stg1_error_message("No CDROM device found.");
- i = ask_insmod(SCSI_ADAPTERS);
+ i = ask_insmod(MEDIA_ADAPTERS);
if (i == RETURN_BACK)
return RETURN_BACK;
return cdrom_prepare();
@@ -181,7 +194,7 @@ enum return_type cdrom_prepare(void)
results = try_with_device(*medias, *medias_models);
if (results == RETURN_OK)
return RETURN_OK;
- i = ask_insmod(SCSI_ADAPTERS);
+ i = ask_insmod(MEDIA_ADAPTERS);
if (i == RETURN_BACK)
return RETURN_BACK;
return cdrom_prepare();
@@ -206,7 +219,7 @@ enum return_type cdrom_prepare(void)
if (results == RETURN_BACK)
return cdrom_prepare();
- i = ask_insmod(SCSI_ADAPTERS);
+ i = ask_insmod(MEDIA_ADAPTERS);
if (i == RETURN_BACK)
return RETURN_BACK;
return cdrom_prepare();
diff --git a/mdk-stage1/cdrom.h b/mdk-stage1/cdrom.h
index c9ebc78aa..7d182b257 100644
--- a/mdk-stage1/cdrom.h
+++ b/mdk-stage1/cdrom.h
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
diff --git a/mdk-stage1/config-stage1.h b/mdk-stage1/config-stage1.h
index f668a465b..e3409df98 100644
--- a/mdk-stage1/config-stage1.h
+++ b/mdk-stage1/config-stage1.h
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -22,9 +22,9 @@
/* If we have more than that amount of memory (in Mbytes), we assume we can load the second stage as a ramdisk */
-#define MEM_LIMIT_DRAKX 68
+#define MEM_LIMIT_DRAKX 192
/* If we have more than that amount of memory (in Mbytes), we preload the second stage as a ramdisk */
-#define MEM_LIMIT_DRAKX_PRELOAD 100
+#define MEM_LIMIT_DRAKX_PRELOAD 256
/* If we have more than that amount of memory (in Mbytes), we assume we can load the rescue as a ramdisk */
#define MEM_LIMIT_RESCUE 40
@@ -42,7 +42,7 @@
/* the remote media is mounted in MEDIA_LOCATION, and
- IMAGE_LOCATION is a symlink image -> image/mdk/mirror/dir
- - IMAGE_LOCATION is a symlink image -> loop/i586 and iso file is loopback mounted in LOOP_LOCATION
+ - IMAGE_LOCATION is a symlink image -> loop/i686 and iso file is loopback mounted in LOOP_LOCATION
*/
#define MEDIA_LOCATION_REL "media"
#define MEDIA_LOCATION IMAGE_LOCATION_DIR MEDIA_LOCATION_REL
@@ -75,8 +75,8 @@
/* path to mirror list for net install */
#ifndef DISABLE_NETWORK
-#define MIRRORLIST_HOST "api.mandriva.com"
-#define MIRRORLIST_PATH "/mirrors"
+#define MIRRORLIST_HOST "mirrors.mageia.org"
+#define MIRRORLIST_PATH "/api"
#endif
#endif
diff --git a/mdk-stage1/dhcp.c b/mdk-stage1/dhcp.c
index fccb400e1..678031e85 100644
--- a/mdk-stage1/dhcp.c
+++ b/mdk-stage1/dhcp.c
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -213,7 +213,7 @@ static void parse_reply(struct bootp_request * breq, struct interface_info * int
unsigned char * chptr;
unsigned char option, length;
- if (breq->bootfile && strlen(breq->bootfile) > 0) {
+ if (strlen(breq->bootfile) > 0) {
if (IS_NETAUTO)
add_to_env("KICKSTART", breq->bootfile);
else
@@ -587,7 +587,7 @@ enum return_type perform_dhcp(struct interface_info * intf)
log_message("DHCP: telling server to use name = %s", dhcp_hostname);
}
- memset(&client_addr.sin_addr, 0, sizeof(&client_addr.sin_addr));
+ memset(&client_addr.sin_addr, 0, sizeof(client_addr.sin_addr));
client_addr.sin_family = AF_INET;
client_addr.sin_port = htons(BOOTP_CLIENT_PORT); /* bootp client */
diff --git a/mdk-stage1/dhcp.h b/mdk-stage1/dhcp.h
index d1ad8ae9e..e17094adc 100644
--- a/mdk-stage1/dhcp.h
+++ b/mdk-stage1/dhcp.h
@@ -1,9 +1,9 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
- * View the homepage: http://us.mandrakesoft.com/~gc/html/stage1.html
+ * View the homepage: http://us.mandriva.com/~gc/html/stage1.html
*
*
* This software may be freely redistributed under the terms of the GNU
diff --git a/mdk-stage1/directory.c b/mdk-stage1/directory.c
index 21d9fc1a1..0538b55b6 100644
--- a/mdk-stage1/directory.c
+++ b/mdk-stage1/directory.c
@@ -1,8 +1,8 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
- * Olivier Blin (oblin@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
+ * Olivier Blin (oblin)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
diff --git a/mdk-stage1/directory.h b/mdk-stage1/directory.h
index eb744520b..2fdc81edb 100644
--- a/mdk-stage1/directory.h
+++ b/mdk-stage1/directory.h
@@ -1,8 +1,8 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
- * Olivier Blin (oblin@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
+ * Olivier Blin (oblin)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
diff --git a/mdk-stage1/disk.c b/mdk-stage1/disk.c
index d87247562..51a033639 100644
--- a/mdk-stage1/disk.c
+++ b/mdk-stage1/disk.c
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -19,14 +19,14 @@
*
*/
+#define _GNU_SOURCE /* We want the non segfaulting my_dirname() -- See dirname(3) */
+#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
-#include <string.h>
#include <sys/mount.h>
#include <sys/stat.h>
#include <fcntl.h>
-#include <string.h>
#include <libgen.h>
#include "stage1.h"
#include "frontend.h"
@@ -42,6 +42,82 @@
#include "disk.h"
+static enum return_type try_automatic_with_partition(char *dev) {
+ enum return_type results;
+ int mounted;
+ char *dir= get_auto_value("directory");
+ char location_full[500];
+ strcpy(location_full, MEDIA_LOCATION);
+ if (dir) {
+ strcat(location_full, "/");
+ strcat(location_full, dir);
+ }
+ wait_message("Trying to access " DISTRIB_NAME " disk (partition %s)", dev);
+ mounted = !try_mount(dev, MEDIA_LOCATION);
+ remove_wait_message();
+ if (mounted) {
+ create_IMAGE_LOCATION(MEDIA_LOCATION);
+ if (image_has_stage2()) {
+ results = try_with_directory(MEDIA_LOCATION, "disk", "disk-iso");
+ } else {
+ results = try_with_directory(location_full, "disk", "disk-iso");
+ }
+ if (results == RETURN_OK) {
+ if (!KEEP_MOUNTED)
+ umount(MEDIA_LOCATION);
+ return RETURN_OK;
+ }
+ }
+ if (mounted)
+ umount(MEDIA_LOCATION);
+ return RETURN_ERROR;
+}
+
+static enum return_type try_automatic_with_disk(char *disk, char *model) {
+ char * parts[50];
+ char * parts_comments[50];
+ enum return_type results;
+ char **dev;
+ char *part = get_auto_value("partition");
+ wait_message("Trying to access " DISTRIB_NAME " disk (drive %s)", model);
+ if (list_partitions(disk, parts, parts_comments)) {
+ stg1_error_message("Could not read partitions information.");
+ return RETURN_ERROR;
+ }
+ remove_wait_message();
+ dev = parts;
+ while (dev && *dev) {
+ if (part && strcmp(part, *dev) != 0)
+ goto next;
+ results = try_automatic_with_partition(*dev);
+ if (results == RETURN_OK) {
+ return RETURN_OK;
+ }
+ next:
+ dev++;
+ }
+ return RETURN_ERROR;
+}
+
+static enum return_type try_automatic(char ** medias, char ** medias_models)
+{
+ char ** model = medias_models;
+ char ** ptr = medias;
+ char *disk = get_auto_value("disk");
+ while (ptr && *ptr) {
+ enum return_type results;
+ if (disk && strcmp(disk, *ptr) != 0)
+ goto next;
+ results = try_automatic_with_disk(*ptr, *model);
+ if (results == RETURN_OK)
+ return RETURN_OK;
+ next:
+ ptr++;
+ model++;
+ }
+ return RETURN_ERROR;
+}
+
static enum return_type try_with_device(char *dev_name)
{
char * questions_location[] = { "Directory or ISO images directory or ISO image", NULL };
@@ -75,7 +151,7 @@ static enum return_type try_with_device(char *dev_name)
/* in testing mode, assume the partition is already mounted on MEDIA_LOCATION */
if (!IS_TESTING && try_mount(choice, MEDIA_LOCATION)) {
- stg1_error_message("I can't find a valid filesystem (tried: ext2, vfat, ntfs, reiserfs). "
+ stg1_error_message("I can't find a valid filesystem (tried: ext4, vfat, ntfs, reiserfs). "
"Make sure the partition has been cleanly unmounted.");
return try_with_device(dev_name);
}
@@ -96,7 +172,7 @@ static enum return_type try_with_device(char *dev_name)
char * path = strdup(answers_location[0]);
stg1_error_message("Directory or ISO image file could not be found on partition.\n"
"Here's a short extract of the files in the directory %s:\n"
- "%s", dirname(path), extract_list_directory(dirname(location_full)));
+ "%s", my_dirname(path), extract_list_directory(my_dirname(location_full)));
free(path);
goto ask_dir;
}
@@ -118,12 +194,25 @@ enum return_type disk_prepare(void)
char * choice;
int i;
enum return_type results;
+ static int already_probed_ide_generic = 0;
int count = get_disks(&medias, &medias_models);
+ if (IS_AUTOMATIC) {
+ results = try_automatic(medias, medias_models);
+ if (results != RETURN_ERROR)
+ return results;
+ unset_automatic();
+ }
+
if (count == 0) {
+ if (!already_probed_ide_generic) {
+ already_probed_ide_generic = 1;
+ my_modprobe("ide_generic", ANY_DRIVER_TYPE, NULL);
+ return disk_prepare();
+ }
stg1_error_message("No DISK drive found.");
- i = ask_insmod(SCSI_ADAPTERS);
+ i = ask_insmod(MEDIA_ADAPTERS);
if (i == RETURN_BACK)
return RETURN_BACK;
return disk_prepare();
@@ -133,7 +222,7 @@ enum return_type disk_prepare(void)
results = try_with_device(*medias);
if (results != RETURN_ERROR)
return results;
- i = ask_insmod(SCSI_ADAPTERS);
+ i = ask_insmod(MEDIA_ADAPTERS);
if (i == RETURN_BACK)
return RETURN_BACK;
return disk_prepare();
@@ -149,7 +238,7 @@ enum return_type disk_prepare(void)
results = try_with_device(choice);
if (results != RETURN_ERROR)
return results;
- i = ask_insmod(SCSI_ADAPTERS);
+ i = ask_insmod(MEDIA_ADAPTERS);
if (i == RETURN_BACK)
return RETURN_BACK;
return disk_prepare();
diff --git a/mdk-stage1/disk.h b/mdk-stage1/disk.h
index fae890894..8a6d1021f 100644
--- a/mdk-stage1/disk.h
+++ b/mdk-stage1/disk.h
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
diff --git a/mdk-stage1/dns.c b/mdk-stage1/dns.c
index 1d7d2d6c8..f711758aa 100644
--- a/mdk-stage1/dns.c
+++ b/mdk-stage1/dns.c
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -21,10 +21,6 @@
#include <stdlib.h>
-// dietlibc can do hostname lookup, whereas glibc can't when linked statically :-(
-
-#if defined(__dietlibc__)
-
#include <unistd.h>
#include <string.h>
#include <stdio.h>
@@ -39,186 +35,56 @@
int mygethostbyname(char * name, struct in_addr * addr)
{
- struct hostent * h;
+ struct addrinfo hints, *res, *p;
+ int status;
+ char ipstr[INET6_ADDRSTRLEN];
+
+ memset(&hints, 0, sizeof hints);
+ hints.ai_family = AF_INET; //AF_UNSPEC for both IPv4 & IPv6
+ hints.ai_socktype = SOCK_STREAM;
/* prevent from timeouts */
if (_res.nscount == 0)
return -1;
- h = gethostbyname(name);
-
- if (!h && domain) {
- // gethostbyname from dietlibc doesn't support domain handling
- char fully_qualified[500];
- sprintf(fully_qualified, "%s.%s", name, domain);
- h = gethostbyname(fully_qualified);
+ if ((status = getaddrinfo(name, NULL, &hints, &res)) != 0) {
+ log_message("getaddrinfo: %s\n", gai_strerror(status));
+ return -1;
}
- if (h && h->h_addr_list && (h->h_addr_list)[0]) {
- memcpy(addr, (h->h_addr_list)[0], sizeof(*addr));
- log_message("is-at: %s", inet_ntoa(*addr));
- return 0;
+ for (p = res;p != NULL; p = p->ai_next) {
+ void *tmp_addr;
+
+ struct sockaddr_in *ipv = (struct sockaddr_in *)p->ai_addr;
+ tmp_addr = &(ipv->sin_addr);
+
+ /* convert the IP to a string: */
+ inet_ntop(p->ai_family, addr, ipstr, sizeof ipstr);
+
+ memcpy(addr, tmp_addr, sizeof(*addr));
+ log_message("is-at: %s\n", inet_ntoa(*addr));
}
- log_message("unknown host %s", name);
- return -1;
+ freeaddrinfo(res); // free the linked list
+ return 0;
}
char * mygethostbyaddr(char * ipnum)
{
- struct in_addr in;
- struct hostent * host;
+ struct sockaddr_in sa;
+ char hbuf[NI_MAXHOST];
/* prevent from timeouts */
if (_res.nscount == 0)
return NULL;
-
- if (!inet_aton(ipnum, &in))
- return NULL;
- host = gethostbyaddr(&(in.s_addr), sizeof(in.s_addr) /* INADDRSZ */, AF_INET);
- if (host && host->h_name)
- return host->h_name;
- return NULL;
-}
-
-#elif defined(__GLIBC__)
-#include <alloca.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <resolv.h>
-#include <arpa/nameser.h>
-#include <arpa/inet.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "log.h"
+ memset(&sa, 0, sizeof sa);
+ sa.sin_family = AF_INET;
-#include "dns.h"
+ if (inet_pton(AF_INET, ipnum, &sa.sin_addr) != 1)
+ return NULL;
-/* This is dumb, but glibc doesn't like to do hostname lookups w/o libc.so */
-
-union dns_response {
- HEADER hdr;
- u_char buf[PACKETSZ];
-} ;
-
-static int do_query(char * query, int queryType, char ** domainName, struct in_addr * ipNum)
-{
- int len, ancount, type;
- u_char * data, * end;
- char name[MAXDNAME];
- union dns_response response;
-
-#ifdef __sparc__
- /* from jj: */
- /* We have to wait till ethernet negotiation is done */
- _res.retry = 3;
-#else
- _res.retry = 2;
-#endif
-
-
- len = res_search(query, C_IN, queryType, (void *) &response, sizeof(response));
- if (len <= 0)
- return -1;
-
- if (ntohs(response.hdr.rcode) != NOERROR)
- return -1;
-
- ancount = ntohs(response.hdr.ancount);
- if (ancount < 1)
- return -1;
-
- data = response.buf + sizeof(HEADER);
- end = response.buf + len;
-
- /* skip the question */
- data += dn_skipname(data, end) + QFIXEDSZ;
-
- /* parse the answer(s) */
- while (--ancount >= 0 && data < end) {
-
- /* skip the domain name portion of the RR record */
- data += dn_skipname(data, end);
-
- /* get RR information */
- GETSHORT(type, data);
- data += INT16SZ; /* skipp class */
- data += INT32SZ; /* skipp TTL */
- GETSHORT(len, data);
-
- if (type == T_PTR) {
- /* we got a pointer */
- len = dn_expand(response.buf, end, data, name, sizeof(name));
- if (len <= 0) return -1;
- if (queryType == T_PTR && domainName) {
- /* we wanted a pointer */
- *domainName = malloc(strlen(name) + 1);
- strcpy(*domainName, name);
- return 0;
- }
- } else if (type == T_A) {
- /* we got an address */
- if (queryType == T_A && ipNum) {
- /* we wanted an address */
- memcpy(ipNum, data, sizeof(*ipNum));
- return 0;
- }
- }
-
- /* move ahead to next RR */
- data += len;
- }
-
- return -1;
+ if (getnameinfo((struct sockaddr*)&sa, sizeof(sa), hbuf, sizeof(hbuf), NULL, 0, 0 |NI_NAMEREQD) == 0) //NI_NUMERICHOST NI_NAMEREQD
+ return strdup(hbuf);
+ else return NULL;
}
-
-char * mygethostbyaddr(char * ipnum) {
- int rc;
- char * result;
- char * strbuf;
- char * chptr;
- char * splits[4];
- int i;
-
- _res.retry = 1;
-
- strbuf = alloca(strlen(ipnum) + 1);
- strcpy(strbuf, ipnum);
-
- ipnum = alloca(strlen(strbuf) + 20);
-
- for (i = 0; i < 4; i++) {
- chptr = strbuf;
- while (*chptr && *chptr != '.')
- chptr++;
- *chptr = '\0';
-
- if (chptr - strbuf > 3) return NULL;
- splits[i] = strbuf;
- strbuf = chptr + 1;
- }
-
- sprintf(ipnum, "%s.%s.%s.%s.in-addr.arpa", splits[3], splits[2], splits[1], splits[0]);
-
- rc = do_query(ipnum, T_PTR, &result, NULL);
-
- if (rc)
- return NULL;
- else
- return result;
-}
-
-int mygethostbyname(char * name, struct in_addr * addr) {
- int rc = do_query(name, T_A, NULL, addr);
- if (!rc)
- log_message("is-at %s", inet_ntoa(*addr));
- return rc;
-}
-
-#else
-
-#error "Unsupported C library"
-
-#endif
diff --git a/mdk-stage1/dns.h b/mdk-stage1/dns.h
index 21d0c63ac..107ad1bce 100644
--- a/mdk-stage1/dns.h
+++ b/mdk-stage1/dns.h
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
diff --git a/mdk-stage1/doc/README b/mdk-stage1/doc/README
index 6a1d92bf9..28b81b39e 100644
--- a/mdk-stage1/doc/README
+++ b/mdk-stage1/doc/README
@@ -1,16 +1,16 @@
-------------------------------------------------------
-* Stage1 of the Mandrakelinux installation program *
+* Stage1 of the Mandriva Linux installation program *
-------------------------------------------------------
[ Author ]
- Guillaume Cottenceau (gc at mandrakesoft.com)
+ Guillaume Cottenceau (gc at mandriva.com)
[ Copyright ]
- Copyright 2000, 2001, 2002 Mandrakesoft
+ Copyright 2000, 2001, 2002 Mandriva
Partially inspired by Redhat stuff (install from 5.x and 7.x) copyright
Red Hat Software, and Debian stuff (boot-floppies) copyright by their
@@ -42,7 +42,7 @@
[ Online ]
- http://people.mandrakesoft.com/~gc/html/stage1.html
+ http://people.mandriva.com/~gc/html/stage1.html
[ Purpose ]
@@ -60,9 +60,9 @@
-=-=-- Okay, now, more details --=-=-
- [ Installing Mandrakelinux ]
+ [ Installing Mandriva Linux ]
-Per default, just insert your Mandrakelinux Installation CD into your
+Per default, just insert your Mandriva Linux Installation CD into your
CDROM tray, be sure your system BIOS is configured to boot on your CDROM,
and that's all.
@@ -106,7 +106,7 @@ of the easiest way is to grab a local copy of the Distribution on one of
your local hard drives, and to install from that location.
At present time, you can install from IDE or SCSI drives, from Linux
-(ext2), Windows (vfat) or Reiserfs partition.
+(ext4), Windows (vfat) or Reiserfs partition.
In that case, you'll need to use the "hd.img" image file. The dialogs will
ask you to choose the DISK drive to use to install from, then the
@@ -153,7 +153,7 @@ it's more basic but still usable :-).
(#2) A shell is provided on second console in some cases (you need to
compile it with -DSPAWN_SHELL and you need to provide a valid shell in the
-initrd) and of course it's not in, in image files of Mandrakelinux
+initrd) and of course it's not in, in image files of Mandriva Linux
releases because it's too much diskspace.
(#3) The log is printed out on the third console. This is the location
@@ -176,7 +176,7 @@ feature. It's implemented with a fork and a Unix pipe.
[ Rescueing a system ]
-Since Mandrakelinux 7.1, we provide a rescue system through each of the
+Since Mandriva Linux 7.1, we provide a rescue system through each of the
previously described methods. You don't need a special "rescue.img" file.
Just hit "F1" at boot time, type in "rescue", and follow the first steps
of the installation according to the method you chose (choose
diff --git a/mdk-stage1/doc/TECH-INFOS b/mdk-stage1/doc/TECH-INFOS
index 67151410e..81d559a7f 100644
--- a/mdk-stage1/doc/TECH-INFOS
+++ b/mdk-stage1/doc/TECH-INFOS
@@ -6,9 +6,9 @@ This feature is used to replace redhat kickstart. It uses the kernel
parameter "automatic" with keywords separated with commas and colons, on
the following genres:
- automatic=method:nfs,network:static,ip:192.168.1.24,server:192.168.1.7,directory:/stable/i586
+ automatic=method:nfs,network:static,ip:192.168.1.24,server:192.168.1.7,directory:/stable/i686
- automatic=method:ftp,network:dhcp,server:ftp.ciril.fr,directory:/pub/linux/mandrake-devel/cooker
+ automatic=method:ftp,network:dhcp,server:ftp.ciril.fr,directory:/pub/linux/mandriva-devel/cooker
automatic=method:ftp,network:dhcp,server:companyserver,directory:/mdkinst,user:XXX,pass:XXX
@@ -89,9 +89,9 @@ commandline), please find each keyword short-alias counterpart in file
This gives for example for:
- automatic=method:nfs,network:static,ip:192.168.1.24,server:192.168.1.7,directory:/stable/i586
+ automatic=method:nfs,network:static,ip:192.168.1.24,server:192.168.1.7,directory:/stable/i686
==>
- automatic=met:nfs,net:static,ip:192.168.1.24,ser:192.168.1.7,dir:/stable/i586
+ automatic=met:nfs,net:static,ip:192.168.1.24,ser:192.168.1.7,dir:/stable/i686
diff --git a/mdk-stage1/doc/UPDATEMODULES b/mdk-stage1/doc/UPDATEMODULES
index ceef21758..cfae4dc54 100644
--- a/mdk-stage1/doc/UPDATEMODULES
+++ b/mdk-stage1/doc/UPDATEMODULES
@@ -12,13 +12,14 @@ e2fs filesystem.
This disk may contain a number of kernel modules; some of them
may replace existing modules, some of them may be added.
-This disk must contain a special file, named "to_load", on
-the root (not in a subdirectory). This file will contain a series of
-module names, with optional module options; the program will try to load
-all these modules one after another, using file on the floppy if present,
-else using file within standard module repository ("marfile" on the boot
-floppy). It can contain comments, these are strictly defined by the
-presence of a hash (#) character on column 0 of any line.
+
+Create a directory per kernel version, named from the version, for example
+2.6.27-desktop586-0.rc8.2mnb. In this directory put the modules and a special
+file, named "to_load". This file will contain a series of module names, with
+optional module options; the program will try to load all these modules one
+after another, using file on the floppy if present, else using file within
+standard module repository. It can contain comments, these are strictly defined
+by the presence of a hash (#) character on column 0 of any line.
This disk may also contain some update or new modules for installed kernels.
Those modules must be placed in directory <kernel-version>. They must be
@@ -44,17 +45,14 @@ Here's a typical scenario:
--=----=----=----=----=----=----=----=----=--
Our example disk contains:
-[root@obiwan mnt]# ll floppy/
-total 77
-drwxr-xr-x 2 root root 12288 Jul 26 12:02 lost+found/
--rw-r--r-- 1 root root 9051 Jul 26 12:43 msdos.ko
--rw-r--r-- 1 root root 13660 Jul 26 12:04 ppa.ko
--rw-r--r-- 1 root root 54 Jul 26 12:46 to_load
--rw-r--r-- 1 root root 32108 Jul 26 12:04 uhci.ko
--rw-r--r-- 1 root root 6572 Jul 26 12:04 wacom.ko
-drwxr-xr-x 4 root root 4096 Jul 26 12:04 2.6.8.1-20mdk
-drwxr-xr-x 4 root root 4096 Jul 26 12:04 2.6.8.1-20mdksmp
-[root@obiwan mnt]# cat floppy/to_load
+[root@obiwan mnt]# ll floppy/*
+2.6.27-desktop586-0.rc8.2mnb/:
+total 541
+drwxrwxr-x 3 a a 1024 2009-03-09 12:09 kernel/
+-rw-rw-r-- 1 a a 547480 2009-03-09 12:04 msdos.ko
+-rw-rw-r-- 1 a a 54748 2009-03-09 12:04 ppa.ko
+-rw-rw-r-- 1 a a 79 2009-03-09 12:08 to_load
+[root@obiwan mnt]# cat floppy/*/to_load
# Update Drivers description file
3c59x
# fat is a dep for msdos
@@ -66,7 +64,10 @@ ppa
ne io=0x300 irq=7
# New module [list_modules: disk/scsi]
a320raid
-[root@obiwan mnt]# (cd floppy/2.6.8.1-20mdk ; find -type f)
+[root@obiwan mnt]# (cd floppy/2.6.27-desktop586-0.rc8.2mnb ; find -type f)
+./msdos.ko
+./ppa.ko
+./to_load
./kernel/fs/msdos/msdos.ko.gz
./kernel/drivers/scsi/ppa.ko.gz
./kernel/drivers/usb/host/uhci-hcd.ko.gz
diff --git a/mdk-stage1/doc/WHY-DIETLIBC b/mdk-stage1/doc/WHY-DIETLIBC
deleted file mode 100644
index e7c526b49..000000000
--- a/mdk-stage1/doc/WHY-DIETLIBC
+++ /dev/null
@@ -1,50 +0,0 @@
-(the dietlibc is a replacement for the glibc, which aim is to produce
-smaller statically linked binaries)
-
-
-The use for dietlibc in the stage1 was clear because currently used
-install process on x86 is from a 1.44 Mbytes floppy. On this floppy we
-need to fit the kernel, modules (scsi and network access), and the code to
-do the basic things to load the stage2. The only part on which we could
-progress was the code.
-
-As always, figures demonstrate evidences. Here are the size of the
-binaries used for the cdrom, disk, network and full floppy installs, using
-newt as the UI library:
-
- - with glibc
-
--rwxr-xr-x 1 gc gc 569448 May 15 15:29 stage1-cdrom
--rwxr-xr-x 1 gc gc 572264 May 15 15:29 stage1-disk
--rwxr-xr-x 1 gc gc 624712 May 15 15:30 stage1-network
--rwxr-xr-x 1 gc gc 720360 May 15 15:29 stage1-full
-
- - with dietlibc
-
--rwxr-xr-x 1 gc gc 169332 May 15 14:26 stage1-cdrom
--rwxr-xr-x 1 gc gc 172180 May 15 14:26 stage1-disk
--rwxr-xr-x 1 gc gc 198612 May 15 14:26 stage1-network
--rwxr-xr-x 1 gc gc 251764 May 15 14:26 stage1-full
-
-
-The `stage1-full' binary has code for many things, most notably: data
-decrunching (bzlib), archive extraction (in-house format), module loading
-(insmod from busybox), PCI detection, ide and scsi handling,
-cdrom/disk/loopback mounting, DHCP client negociation (redhat+grub), NFS
-mounting (util-linux), FTP and HTTP transmission (redhat), pcmcia
-initializing (pcmcia-cs), UI interaction (slang/newt); with use of the
-dietlibc, the binary is only 250 kbytes!
-
-
-Due to the modular coding, it is also possible to choose to not use
-slang/newt as the UI, but a stdio-only UI. In that case, the binaries get
-even smaller:
-
--rwxr-xr-x 1 gc gc 104500 May 15 15:46 stage1-cdrom*
--rwxr-xr-x 1 gc gc 107348 May 15 15:46 stage1-disk*
--rwxr-xr-x 1 gc gc 133972 May 15 15:47 stage1-network*
--rwxr-xr-x 1 gc gc 187348 May 15 15:46 stage1-full*
-
-
-
-gc [Tue May 15 15:58:34 2001] \ No newline at end of file
diff --git a/mdk-stage1/doc/documented..frontend.h b/mdk-stage1/doc/documented..frontend.h
index 0e666d534..96e4dc8d8 100644
--- a/mdk-stage1/doc/documented..frontend.h
+++ b/mdk-stage1/doc/documented..frontend.h
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
diff --git a/mdk-stage1/frontend-common.c b/mdk-stage1/frontend-common.c
index 6ea2984cd..cdc972740 100644
--- a/mdk-stage1/frontend-common.c
+++ b/mdk-stage1/frontend-common.c
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
diff --git a/mdk-stage1/frontend.h b/mdk-stage1/frontend.h
index 4c2558b4a..367d46735 100644
--- a/mdk-stage1/frontend.h
+++ b/mdk-stage1/frontend.h
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
diff --git a/mdk-stage1/init.c b/mdk-stage1/init.c
index 51fef09b4..7c48f64ec 100644
--- a/mdk-stage1/init.c
+++ b/mdk-stage1/init.c
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -22,6 +22,7 @@
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
+#include <dirent.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
@@ -36,33 +37,36 @@
#include <linux/unistd.h>
#include <sys/select.h>
#include <sys/ioctl.h>
+#include <linux/reboot.h>
#include <sys/syscall.h>
#define syslog(...) syscall(__NR_syslog, __VA_ARGS__)
-#define reboot(...) syscall(__NR_reboot, __VA_ARGS__)
+
+static unsigned int reboot_magic = LINUX_REBOOT_CMD_RESTART;
+
+static inline long reboot(unsigned int command)
+{
+ return (long) syscall(__NR_reboot, LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, command, 0);
+}
#include "config-stage1.h"
#include <linux/cdrom.h>
-#if defined(__powerpc__)
-#define TIOCSCTTY 0x540E
-#endif
-
-#define BINARY "/sbin/stage1"
#define BINARY_STAGE2 "/usr/bin/runinstall2"
char * env[] = {
"PATH=/usr/bin:/bin:/sbin:/usr/sbin:/mnt/sbin:/mnt/usr/sbin:/mnt/bin:/mnt/usr/bin",
- "LD_LIBRARY_PATH=/lib:/usr/lib:/mnt/lib:/mnt/usr/lib:/usr/X11R6/lib:/mnt/usr/X11R6/lib"
-#if defined(__x86_64__) || defined(__ppc64__)
- ":/lib64:/usr/lib64:/usr/X11R6/lib64:/mnt/lib64:/mnt/usr/lib64:/mnt/usr/X11R6/lib64"
+ "LD_LIBRARY_PATH=/lib:/usr/lib:/mnt/lib:/mnt/usr/lib"
+#if defined(__x86_64__)
+ ":/lib64:/usr/lib64:/mnt/lib64:/mnt/usr/lib64"
#endif
,
"HOME=/",
"TERM=linux",
"TERMINFO=/etc/terminfo",
+ "LC_CTYPE=UTF-8",
NULL
};
@@ -102,20 +106,20 @@ void print_int_init(int fd, int i)
char buf[10];
char * chptr = buf + 9;
int j = 0;
-
+
if (i < 0)
{
write(1, "-", 1);
i = -1 * i;
}
-
+
while (i)
{
*chptr-- = '0' + (i % 10);
j++;
i = i / 10;
}
-
+
write(fd, chptr + 1, j);
}
@@ -146,7 +150,6 @@ void doklog()
return;
}
- mkdir("/tmp", 0755);
if ((log = open("/tmp/syslog", O_WRONLY | O_CREAT | O_APPEND, 0644)) < 0) {
print_error("error opening /tmp/syslog");
sleep(5);
@@ -162,7 +165,7 @@ void doklog()
close(1);
close(2);
}
-
+
out = open("/dev/tty4", O_WRONLY, 0);
if (out < 0)
print_warning("couldn't open tty for syslog -- still using /tmp/syslog\n");
@@ -204,7 +207,7 @@ void doklog()
if (sock >= 0)
FD_SET(sock, &readset);
FD_SET(in, &readset);
-
+
i = select(20, &readset, NULL, NULL, NULL);
if (i <= 0)
continue;
@@ -219,25 +222,6 @@ void doklog()
}
}
- /* examine some fd's in the hope to find some syslog outputs from programs */
- for (readfd = 0; readfd < 20; ++readfd) {
- if (FD_ISSET(readfd, &readset) && FD_ISSET(readfd, &unixs)) {
- i = read(readfd, buf, sizeof(buf));
- if (i > 0) {
- /* grep out the output of RPM telling that it installed/removed some packages */
- if (!strstr(buf, "mdk installed") && !strstr(buf, "mdk removed")) {
- if (out >= 0)
- write(out, buf, i);
- write(log, buf, i);
- }
- } else if (i == 0) {
- /* socket closed */
- close(readfd);
- FD_CLR(readfd, &unixs);
- }
- }
- }
-
/* the socket has moved, new stuff to do */
if (sock >= 0 && FD_ISSET(sock, &readset)) {
s = sizeof(sockaddr);
@@ -296,7 +280,9 @@ char* strcat(register char* s,register const char* t)
char *dest=s;
s+=strlen(s);
for (;;) {
- if (!(*s = *t)) break; ++s; ++t;
+ if (!(*s = *t))
+ break;
+ ++s; ++t;
}
return dest;
}
@@ -310,10 +296,9 @@ void unmount_filesystems(void)
struct filesystem fs[500];
int numfs = 0;
int i, nb;
- int disallow_eject = 0;
printf("unmounting filesystems...\n");
-
+
fd = open("/proc/mounts", O_RDONLY, 0);
if (fd < 1) {
print_error("failed to open /proc/mounts");
@@ -340,8 +325,6 @@ void unmount_filesystems(void)
*p++ = '\0';
while (*p != '\n') p++;
p++;
- if (!strcmp(fs[numfs].fs, "nfs"))
- disallow_eject = 1;
if (strcmp(fs[numfs].name, "/")
&& !strstr(fs[numfs].dev, "ram")
&& strcmp(fs[numfs].name, "/dev")
@@ -365,27 +348,20 @@ void unmount_filesystems(void)
}
}
} while (nb);
-
+
for (i = nb = 0; i < numfs; i++)
if (fs[i].mounted) {
printf("\tumount failed: %s\n", fs[i].name);
if (strcmp(fs[i].fs, "ext3") == 0) nb++; /* don't count not-ext3 umount failed */
}
-
+
if (nb) {
printf("failed to umount some filesystems\n");
select(0, NULL, NULL, NULL, NULL);
}
}
-#define BMAGIC_HARD 0x89ABCDEF
-#define BMAGIC_SOFT 0
-#define BMAGIC_REBOOT 0x01234567
-#define BMAGIC_HALT 0xCDEF0123
-#define BMAGIC_POWEROFF 0x4321FEDC
-int reboot_magic = BMAGIC_REBOOT;
-
int in_reboot(void)
{
int fd;
@@ -394,13 +370,92 @@ int in_reboot(void)
int i = read(fd, buf, sizeof(buf));
close(fd);
if (strstr(buf, "halt"))
- reboot_magic = BMAGIC_POWEROFF;
+ reboot_magic = LINUX_REBOOT_CMD_POWER_OFF;
return i > 0;
}
return 0;
}
-int exit_value_proceed = 66;
+int recursive_remove(char *file);
+int recursive_remove(char *file)
+{
+ struct stat sb;
+
+ if (lstat(file, &sb) != 0) {
+ printf("failed to stat %s: %d\n", file, errno);
+ return -1;
+ }
+
+ /* only descend into subdirectories if device is same as dir */
+ if (S_ISDIR(sb.st_mode)) {
+ char * strBuf = alloca(strlen(file) + 1024);
+ DIR * dir;
+ struct dirent * d;
+
+ if (!(dir = opendir(file))) {
+ printf("error opening %s: %d\n", file, errno);
+ return -1;
+ }
+ while ((d = readdir(dir))) {
+ if (!strcmp(d->d_name, ".") || !strcmp(d->d_name, ".."))
+ continue;
+
+ strcpy(strBuf, file);
+ strcat(strBuf, "/");
+ strcat(strBuf, d->d_name);
+
+ if (recursive_remove(strBuf) != 0) {
+ closedir(dir);
+ return -1;
+ }
+ }
+ closedir(dir);
+
+ if (rmdir(file)) {
+ printf("failed to rmdir %s: %d\n", file, errno);
+ return -1;
+ }
+ } else {
+ if (unlink(file) != 0) {
+ printf("failed to remove %s: %d\n", file, errno);
+ return -1;
+ }
+ }
+ return 0;
+}
+
+
+int create_initial_fs_symlinks(char* symlinks)
+{
+ FILE *f;
+ char buf[5000];
+
+ if (!(f = fopen(symlinks, "rb"))) {
+ printf("Error opening symlink definitions file '%s'\n", symlinks);
+ return -1;
+ }
+ while (fgets(buf, sizeof(buf), f)) {
+ char oldpath[500], newpath[500];
+ struct stat sb;
+
+ buf[strlen(buf)-1] = '\0'; // trim \n
+ if (sscanf(buf, "%s %s", oldpath, newpath) != 2) {
+ snprintf(oldpath, sizeof(oldpath), "%s%s", STAGE2_LOCATION, buf);
+ snprintf(newpath, sizeof(newpath), "%s", buf);
+ }
+ if (lstat(newpath, &sb) == 0)
+ recursive_remove(newpath);
+ printf("Creating symlink %s -> %s\n", oldpath, newpath);
+ if (symlink(oldpath, newpath)) {
+ printf("Error creating symlink\n");
+ return -1;
+ }
+ }
+ fclose(f);
+ return 0;
+}
+
+
int exit_value_restart = 0x35;
int main(int argc, char **argv)
@@ -408,7 +463,6 @@ int main(int argc, char **argv)
pid_t installpid, childpid;
int wait_status;
int fd;
- int counter = 0;
int abnormal_termination = 0;
if (argc > 1 && argv[1][0] >= '0' && argv[1][0] <= '9') {
@@ -426,15 +480,11 @@ int main(int argc, char **argv)
printf("*** TESTING MODE *** (pid is %d)\n", getpid());
- if (!testing) {
- mkdir("/proc", 0755);
- if (mount("/proc", "/proc", "proc", 0, NULL))
- fatal_error("Unable to mount proc filesystem");
- mkdir("/sys", 0755);
- if (mount("none", "/sys", "sysfs", 0, NULL))
- fatal_error("Unable to mount sysfs filesystem");
- }
-
+ // needed for ldetect:
+ if (!testing)
+ if (mount("none", "/sys/kernel/debug", "debugfs", MS_NOSUID, "mode=0755"))
+ fatal_error("Unable to mount debugfs filesystem");
+
/* ignore Control-C and keyboard stop signals */
signal(SIGINT, SIG_IGN);
@@ -444,13 +494,13 @@ int main(int argc, char **argv)
fd = open("/dev/console", O_RDWR, 0);
if (fd < 0)
fatal_error("failed to open /dev/console");
-
+
dup2(fd, 0);
dup2(fd, 1);
dup2(fd, 2);
close(fd);
}
-
+
/* I set me up as session leader (probably not necessary?) */
setsid();
@@ -468,57 +518,66 @@ int main(int argc, char **argv)
if (!testing)
doklog();
- /* Go into normal init mode - keep going, and then do a orderly shutdown
- when:
-
- 1) install exits
- 2) we receive a SIGHUP
- */
+ if (create_initial_fs_symlinks(STAGE2_LOCATION "/usr/share/symlinks") != 0)
+ fatal_error("Fatal error finishing initialization (could not create symlinks).");
- do {
- if (counter == 1) {
- printf("proceeding, please wait...\n");
- }
+ /* kernel modules and firmware is needed by stage2, so move them to the root */
+ if (rename("/usr/lib/modules", "/modules"))
+ fatal_error("Cannot rename modules folder");
- if (!(installpid = fork())) {
- /* child */
- char * child_argv[2];
- child_argv[0] = counter == 0 ? BINARY : BINARY_STAGE2;
- child_argv[1] = NULL;
+ if (rename("/usr/lib/firmware", "/firmware"))
+ fatal_error("Cannot rename firmware folder");
- execve(child_argv[0], child_argv, env);
- printf("error in exec of %s :-( [%d]\n", child_argv[0], errno);
- return 0;
- }
+ /* Add some symlinks so stage1 is still valid on it's own - not strictly needed */
+ if (symlink("/modules", "/usr/lib/modules"))
+ fatal_error("Cannot symlink modules folder");
- do {
- childpid = wait4(-1, &wait_status, 0, NULL);
- } while (childpid != installpid);
+ if (symlink("/firmware", "/usr/lib/firmware"))
+ fatal_error("Cannot symlink firmware folder");
- counter++;
- } while (WIFEXITED(wait_status) && WEXITSTATUS(wait_status) == exit_value_restart);
+ if (mount(STAGE2_LOCATION "/usr", "/usr", "none", MS_BIND|MS_RDONLY, NULL))
+ fatal_error("Unable to bind mount /usr filesystem from rescue or installer stage2");
- /* allow Ctrl Alt Del to reboot */
- reboot(0xfee1dead, 672274793, BMAGIC_HARD);
- if (in_reboot()) {
- // any exitcode is valid if we're in_reboot
- } else if (WIFEXITED(wait_status) && WEXITSTATUS(wait_status) == exit_value_proceed) {
+ if (access("/run/drakx/run-init", R_OK) == 0) {
+ /* This is typically used in rescue mode */
+ char * child_argv[2] = { "/sbin/init", NULL };
+
kill(klog_pid, 9);
printf("proceeding, please wait...\n");
+ execve(child_argv[0], child_argv, env);
+ fatal_error("failed to exec /sbin/init");
+ }
+
+ /* This is installer mode */
+ do {
+ printf("proceeding, please wait...\n");
- {
- char * child_argv[2] = { "/sbin/init", NULL };
+ if (!(installpid = fork())) {
+ /* child */
+ char * child_argv[2] = { BINARY_STAGE2, NULL };
execve(child_argv[0], child_argv, env);
+ printf("error in exec of %s :-( [%d]\n", child_argv[0], errno);
+ return 0;
}
- fatal_error("failed to exec /sbin/init");
- } else if (!WIFEXITED(wait_status) || WEXITSTATUS(wait_status) != 0) {
+
+ do {
+ childpid = wait4(-1, &wait_status, 0, NULL);
+ } while (childpid != installpid);
+ } while (WIFEXITED(wait_status) && WEXITSTATUS(wait_status) == exit_value_restart);
+
+ /* allow Ctrl Alt Del to reboot */
+ reboot(LINUX_REBOOT_CMD_CAD_ON);
+
+ if (in_reboot()) {
+ // any exitcode is valid if we're in_reboot
+ } else if (!WIFEXITED(wait_status) || WEXITSTATUS(wait_status) != 0) {
printf("exited abnormally :-( ");
if (WIFSIGNALED(wait_status))
printf("-- received signal %d", WTERMSIG(wait_status));
printf("\n");
abnormal_termination = 1;
- }
+ }
if (!abnormal_termination) {
int i;
@@ -547,12 +606,12 @@ int main(int argc, char **argv)
sync(); sync();
if (!abnormal_termination) {
- if (reboot_magic == BMAGIC_REBOOT) {
+ if (reboot_magic == LINUX_REBOOT_CMD_RESTART) {
#ifdef DEBUG
printf("automatic reboot in 10 seconds\n");
sleep(10);
#endif
- reboot(0xfee1dead, 672274793, reboot_magic);
+ reboot(reboot_magic);
} else {
printf("you may safely poweroff your computer now\n");
}
diff --git a/mdk-stage1/ka.c b/mdk-stage1/ka.c
index d3c98e2fc..7b9d98fbe 100644
--- a/mdk-stage1/ka.c
+++ b/mdk-stage1/ka.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2005 Mandrakesoft
+ * Copyright 2005 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -19,6 +19,7 @@
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
+#include <unistd.h>
#include "config-stage1.h"
#include "frontend.h"
@@ -40,31 +41,36 @@ static void my_pause(void) {
read(0, &t, 1);
}
-static enum return_type ka_wait_for_stage2(void)
+static enum return_type ka_wait_for_stage2(int count)
{
char * ramdisk = "/dev/ram3"; /* warning, verify that this file exists in the initrd*/
- char * ka_launch[] = { "/ka/ka-d-client", "-w","-s","getstage2","-e","(cd /tmp/stage2; tar --extract --read-full-records --same-permissions --numeric-o wner --sparse --file - )", NULL }; /* The command line for ka_launch */
- char * mkfs_launch[] = { "/sbin/mke2fs", ramdisk, NULL}; /* The mkfs command for formating the ramdisk */
+ char * ka_launch[] = { "/ka/ka-d-client", "-w","-s","getstage2","-e","(cd " STAGE2_LOCATION "; tar -x -f - )", NULL }; /* The command line for ka_launch */
+ char * mkfs_launch[] = { "/sbin/mke2fs", "-m", "0", ramdisk, NULL}; /* The mkfs command for formating the ramdisk */
log_message("KA: Preparing to receive stage 2....");
+ wait_message("Preparing to receive stage 2");
+
int pida, wait_status;
if (!(pida = fork())) { /* Forking current process for running mkfs */
- // close(1);
- // close(2);
+ //close(1);
+ close(2);
execv(mkfs_launch[0], mkfs_launch); /* Formating the ramdisk */
printf("KA: Can't execute %s\n<press Enter>\n", mkfs_launch[0]);
my_pause();
return KAERR_CANTFORK;
}
while (wait4(-1, &wait_status, 0, NULL) != pida) {}; /* Waiting the end of mkfs */
+ remove_wait_message();
+ wait_message("Mounting /dev/ram3 at %s", STAGE2_LOCATION);
if (my_mount(ramdisk, STAGE2_LOCATION, "ext2", 1)) {/* Trying to mount the ramdisk */
return RETURN_ERROR;
}
+ remove_wait_message();
log_message("KA: Waiting for stage 2....");
- wait_message("Waiting for rescue from KA server");
+ wait_message("Waiting for rescue from KA server (Try %d/%d)", count, KA_MAX_RETRY);
pid_t pid; /* Process ID of the child process */
pid_t wpid; /* Process ID from wait() */
int status; /* Exit status from wait() */
@@ -74,9 +80,7 @@ static enum return_type ka_wait_for_stage2(void)
fprintf(stderr, "%s: Failed to fork()\n", strerror(errno));
exit(13);
} else if ( pid == 0 ) {
- fprintf(stderr, "%s: Failed to fork()\n", strerror(errno));
- exit(13);
- } else if ( pid == 0 ) {
+ // close(2);
execv(ka_launch[0], ka_launch);
} else {
// wpid = wait(&status); /* Child's exit status */
@@ -129,7 +133,7 @@ enum return_type perform_ka(void) {
log_message("KA: ka_wait_for_stage2");
do {
/* We are trying to get a valid stage 2 (rescue) */
- results=ka_wait_for_stage2();
+ results=ka_wait_for_stage2(server_failure);
if (results != RETURN_OK) {
return results;
} else {
@@ -160,6 +164,7 @@ enum return_type perform_ka(void) {
for (cpt=5; cpt>0; cpt--) {
wait_message("KA server not found ! (Try %d/%d in %d sec)",server_failure,KA_MAX_RETRY,cpt);
+ log_message("Ka not found %d/%d", server_failure,KA_MAX_RETRY);
sleep (1);
}
remove_wait_message();
diff --git a/mdk-stage1/ka.h b/mdk-stage1/ka.h
index 3c083af4f..44d6244f9 100644
--- a/mdk-stage1/ka.h
+++ b/mdk-stage1/ka.h
@@ -1,5 +1,5 @@
/*
- * Copyright 2005 Mandrakesoft
+ * Copyright 2005 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
diff --git a/mdk-stage1/log.c b/mdk-stage1/log.c
index a8406f6b2..cb3f741dc 100644
--- a/mdk-stage1/log.c
+++ b/mdk-stage1/log.c
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
diff --git a/mdk-stage1/log.h b/mdk-stage1/log.h
index 6a30fea8f..d726a6b21 100644
--- a/mdk-stage1/log.h
+++ b/mdk-stage1/log.h
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
diff --git a/mdk-stage1/lomount.c b/mdk-stage1/lomount.c
index 2f80ec71c..caca48ea1 100644
--- a/mdk-stage1/lomount.c
+++ b/mdk-stage1/lomount.c
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -165,9 +165,9 @@ lomount(char *loopfile, char *where, char **dev, int compressed)
flag = MS_MGC_VAL;
flag |= MS_RDONLY;
- my_insmod("loop", ANY_DRIVER_TYPE, "max_loop=256", 1);
+ my_modprobe("loop", ANY_DRIVER_TYPE, "max_loop=256");
if (compressed) {
- my_insmod("squashfs", ANY_DRIVER_TYPE, NULL, 1);
+ my_modprobe("squashfs", ANY_DRIVER_TYPE, NULL);
}
if (!(loopdev = find_free_loop())) {
diff --git a/mdk-stage1/lomount.h b/mdk-stage1/lomount.h
index 4115507f2..7f3af2460 100644
--- a/mdk-stage1/lomount.h
+++ b/mdk-stage1/lomount.h
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
diff --git a/mdk-stage1/modules.c b/mdk-stage1/modules.c
index 06165b10d..76177302e 100644
--- a/mdk-stage1/modules.c
+++ b/mdk-stage1/modules.c
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -25,10 +25,14 @@
#include <sys/stat.h>
#include <sys/mount.h>
#include <fcntl.h>
+#include <libgen.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
#include <errno.h>
+#include <time.h>
+#include <sys/utsname.h>
+#include <libkmod.h>
#include "log.h"
#include "utils.h"
#include "frontend.h"
@@ -37,12 +41,11 @@
#include "modules.h"
-static struct module_deps_elem * modules_deps = NULL;
+static char modules_directory[100];
static struct module_descr_elem * modules_descr = NULL;
extern long init_module(void *, unsigned long, const char *);
-
static const char *moderror(int err)
{
switch (err) {
@@ -83,86 +86,43 @@ int insmod_local_file(char * path, char * options)
static char *kernel_module_extension(void)
{
- return ".ko.gz";
-}
-
-
-static void filename2modname(char * filename) {
- while (filename && *filename) {
- if (*filename == '-')
- *filename = '_';
- filename++;
- }
+ return ".ko.xz";
}
-static int load_modules_dependencies(void)
-{
- char * deps_file = "/modules/modules.dep";
- char * buf, * ptr, * start, * end;
- struct stat s;
- int line, i;
-
- log_message("loading modules dependencies");
- buf = cat_file(deps_file, &s);
- if (!buf)
- return -1;
- line = line_counts(buf);
- modules_deps = malloc(sizeof(*modules_deps) * (line+1));
-
- start = buf;
- line = 0;
- while (start < (buf+s.st_size) && *start) {
- char * tmp_deps[50];
-
- end = strchr(start, '\n');
- *end = '\0';
- ptr = strchr(start, ':');
- if (!ptr) {
- start = end + 1;
- continue;
- }
- *ptr = '\0';
- ptr++;
-
- while (*ptr && (*ptr == ' ')) ptr++;
-
- /* sort of a good line */
- modules_deps[line].filename = strdup(start);
- modules_deps[line].modname = strdup(start);
- filename2modname(modules_deps[line].modname);
-
- start = ptr;
- i = 0;
- while (start && *start) {
- ptr = strchr(start, ' ');
- if (ptr) *ptr = '\0';
- tmp_deps[i++] = strdup(start);
- if (ptr)
- start = ptr + 1;
- else
- start = NULL;
- while (start && *start && *start == ' ')
- start++;
- }
- tmp_deps[i++] = NULL;
+static char *filename2modname(char * filename) {
+ char *modname, *p;
- modules_deps[line].deps = memdup(tmp_deps, sizeof(char *) * i);
-
- line++;
- start = end + 1;
+ modname = strdup(basename(filename));
+ if (strstr(modname, kernel_module_extension())) {
+ modname[strlen(modname)-strlen(kernel_module_extension())] = '\0'; /* remove trailing .ko.gz */
}
- modules_deps[line].modname = NULL;
- free(buf);
+ p = modname;
+ while (p && *p) {
+ if (*p == '-')
+ *p = '_';
+ p++;
+ }
- return 0;
+ return modname;
}
+static void find_modules_directory(void)
+{
+ struct utsname kernel_uname;
+ char * prefix = "/lib/modules";
+ char * release;
+ if (uname(&kernel_uname)) {
+ fatal_error("uname failed");
+ }
+ release = kernel_uname.release;
+ sprintf(modules_directory , "%s/%s", prefix, release);
+}
static int load_modules_descriptions(void)
{
- char * descr_file = "/modules/modules.description";
+ char * descr_file = asprintf_("%s/%s", modules_directory, "modules.description");
char * buf, * ptr, * start, * end;
struct stat s;
int line;
@@ -189,8 +149,7 @@ static int load_modules_descriptions(void)
*ptr = '\0';
ptr++;
- modules_descr[line].modname = strdup(start);
- filename2modname(modules_deps[line].modname);
+ modules_descr[line].modname = filename2modname(start);
modules_descr[line].description = strndup(ptr, 50);
line++;
@@ -203,14 +162,11 @@ static int load_modules_descriptions(void)
return 0;
}
-
void init_modules_insmoding(void)
{
- if (load_modules_dependencies()) {
- fatal_error("warning, error initing modules stuff, modules loading disabled");
- }
+ find_modules_directory();
if (load_modules_descriptions()) {
- log_message("warning, error initing modules stuff, modules loading disabled");
+ log_message("warning, error initing modules stuff");
}
}
@@ -244,6 +200,8 @@ static void add_modules_conf(char * str)
int module_already_present(const char * name)
{
FILE * f;
+ struct stat sb;
+ char *path;
int answ = 0;
if ((f = fopen("/proc/modules", "rb"))) {
@@ -255,51 +213,109 @@ int module_already_present(const char * name)
}
fclose(f);
}
+
+ /* built-in module case. try to find them through sysfs */
+ if (!answ) {
+ asprintf(&path, "/sys/module/%s", name);
+ if (!stat(path, &sb))
+ answ = 1;
+ free(path);
+ }
+ if (!answ) {
+ asprintf(&path, "/sys/fs/%s", name);
+ if (!stat(path, &sb))
+ answ = 1;
+ free(path);
+ }
return answ;
}
-static enum insmod_return insmod_with_deps(const char * mod_name, char * options, int allow_modules_floppy)
-{
- struct module_deps_elem * dep;
- const char * filename;
-
- dep = modules_deps;
- while (dep && dep->modname && strcmp(dep->modname, mod_name)) dep++;
-
- if (dep && dep->modname && dep->deps) {
- char ** one_dep;
- one_dep = dep->deps;
- while (*one_dep) {
- /* here, we can fail but we don't care, if the error is
- * important, the desired module will fail also */
- insmod_with_deps(*one_dep, NULL, allow_modules_floppy);
- one_dep++;
- }
+#ifndef ENABLE_NETWORK_STANDALONE
+static enum insmod_return insmod_with_deps(const char * alias, char * options) {
+ struct kmod_ctx *ctx;
+ struct kmod_list *l, *list = NULL;
+ int err = 0, flags = 0;
+
+ if (!*modules_directory)
+ find_modules_directory();
+
+ ctx = kmod_new(modules_directory, NULL);
+ if (!ctx) {
+ fputs("Error: kmod_new() failed!\n", stderr);
+ goto exit;
}
-
- if (dep && dep->filename) {
- filename = dep->filename;
- } else {
- log_message("warning: unable to get module filename for %s", mod_name);
- filename = mod_name;
+ kmod_load_resources(ctx);
+
+ err = kmod_module_new_from_lookup(ctx, alias, &list);
+ if (err < 0)
+ goto exit;
+
+ // No module found...
+ if (list == NULL)
+ goto exit;
+
+ // filter through blacklist
+ struct kmod_list *filtered = NULL;
+ err = kmod_module_apply_filter(ctx, KMOD_FILTER_BLACKLIST, list, &filtered);
+ kmod_module_unref_list(list);
+ if (err < 0)
+ goto exit;
+ list = filtered;
+
+ kmod_list_foreach(l, list) {
+ struct kmod_module *mod = kmod_module_get_module(l);
+ err = kmod_module_probe_insert_module(mod, flags,
+ options, NULL, NULL, NULL);
+
+ if (err >= 0)
+ /* ignore flag return values such as a mod being blacklisted */
+ err = 0;
+ else {
+ switch (err) {
+ case -EEXIST:
+ fprintf(stderr, "could not insert '%s': Module already in kernel\n",
+ kmod_module_get_name(mod));
+ break;
+ case -ENOENT:
+ fprintf(stderr, "could not insert '%s': Unknown symbol in module, "
+ "or unknown parameter (see dmesg)\n",
+ kmod_module_get_name(mod));
+ break;
+ default:
+ fprintf(stderr, "could not insert '%s': %s\n",
+ kmod_module_get_name(mod),
+ strerror(-err));
+ break;
+ }
+ }
+
+ kmod_module_unref(mod);
+ if (err < 0)
+ break;
}
- if (module_already_present(mod_name))
- return INSMOD_OK;
+ kmod_module_unref_list(list);
- log_message("needs %s", filename);
- {
- char *file = asprintf_("/modules/%s%s", filename, kernel_module_extension());
- return insmod_local_file(file, options);
+exit:
+ kmod_unref(ctx);
+
+ switch (err){
+ case 0:
+ return INSMOD_OK;
+ case -ENOENT:
+ return INSMOD_FAILED_FILE_NOT_FOUND;
+ default:
+ return INSMOD_FAILED;
}
}
+#endif
#ifndef DISABLE_NETWORK
-enum insmod_return my_insmod(const char * mod_name, enum driver_type type, char * options, int allow_modules_floppy)
+enum insmod_return my_modprobe(const char * mod_name, enum driver_type type, char * options)
#else
-enum insmod_return my_insmod(const char * mod_name, enum driver_type type __attribute__ ((unused)), char * options, int allow_modules_floppy)
+enum insmod_return my_modprobe(const char * mod_name, enum driver_type type __attribute__ ((unused)), char * options)
#endif
{
int i;
@@ -325,7 +341,7 @@ enum insmod_return my_insmod(const char * mod_name, enum driver_type type __attr
i = system(cmd);
}
#else
- i = insmod_with_deps(mod_name, options, allow_modules_floppy);
+ i = insmod_with_deps(mod_name, options);
#endif
if (i == 0) {
log_message("\tsucceeded %s", mod_name);
@@ -343,7 +359,6 @@ enum insmod_return my_insmod(const char * mod_name, enum driver_type type __attr
sprintf(alias, "alias %s %s", *new_net_devices, mod_name);
add_modules_conf(alias);
log_message("NET: %s", alias);
- net_discovered_interface(*new_net_devices);
already_present:
new_net_devices++;
@@ -370,9 +385,9 @@ static enum return_type insmod_with_options(char * mod, enum driver_type type)
strcat(options, mod);
strcat(options, " ");
- strcat(options, answers[0]); // because my_insmod will eventually modify the string
+ strcat(options, answers[0]); // because my_modprobe will eventually modify the string
- if (my_insmod(mod, type, answers[0], 1) != INSMOD_OK) {
+ if (my_modprobe(mod, type, answers[0]) != INSMOD_OK) {
stg1_error_message("Insmod failed.");
return RETURN_ERROR;
}
@@ -382,22 +397,28 @@ static enum return_type insmod_with_options(char * mod, enum driver_type type)
return RETURN_OK;
}
+static int strsortfunc(const void *a, const void *b)
+{
+ return strcmp(* (char * const *) a, * (char * const *) b);
+}
+
enum return_type ask_insmod(enum driver_type type)
{
enum return_type results;
char * choice;
- char ** dlist = list_directory("/modules");
+ char ** dlist = list_directory(modules_directory);
char ** modules = alloca(sizeof(char *) * (string_array_length(dlist) + 1));
char ** descrs = alloca(sizeof(char *) * (string_array_length(dlist) + 1));
char ** p_dlist = dlist;
char ** p_modules = modules;
char ** p_descrs = descrs;
+ qsort(dlist, string_array_length(dlist), sizeof(char *), strsortfunc);
+
unset_automatic(); /* we are in a fallback mode */
while (p_dlist && *p_dlist) {
struct module_descr_elem * descr;
-
if (!strstr(*p_dlist, kernel_module_extension())) {
p_dlist++;
continue;
@@ -421,8 +442,8 @@ enum return_type ask_insmod(enum driver_type type)
if (modules && *modules) {
char * mytype;
char msg[200];
- if (type == SCSI_ADAPTERS)
- mytype = "SCSI";
+ if (type == MEDIA_ADAPTERS)
+ mytype = "MEDIA";
else if (type == NETWORK_DEVICES)
mytype = "NET";
else
diff --git a/mdk-stage1/modules.h b/mdk-stage1/modules.h
index b5a597ac2..1a6d8753f 100644
--- a/mdk-stage1/modules.h
+++ b/mdk-stage1/modules.h
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -21,17 +21,12 @@
enum insmod_return { INSMOD_OK, INSMOD_FAILED, INSMOD_FAILED_FILE_NOT_FOUND };
void init_modules_insmoding(void);
+void init_firmware_loader(void);
int insmod_local_file(char * path, char * options);
-enum insmod_return my_insmod(const char * mod_name, enum driver_type type, char * options, int allow_modules_floppy);
+enum insmod_return my_modprobe(const char * mod_name, enum driver_type type, char * options);
enum return_type ask_insmod(enum driver_type);
int module_already_present(const char * name);
-struct module_deps_elem {
- char * modname;
- char * filename;
- char ** deps;
-};
-
struct module_descr_elem {
char * modname;
char * description;
diff --git a/mdk-stage1/mount.c b/mdk-stage1/mount.c
index 41fbb99f2..14b2b2fc2 100644
--- a/mdk-stage1/mount.c
+++ b/mdk-stage1/mount.c
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -19,10 +19,12 @@
*
*/
+// for asprintf:
+#define _GNU_SOURCE
+#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
-#include <stdio.h>
#include <sys/mount.h>
#include <sys/stat.h>
#include <sys/types.h>
@@ -37,110 +39,16 @@
/* WARNING: this won't work if the argument is not /dev/ based */
int ensure_dev_exists(const char * dev)
{
- int major, minor;
- int type = S_IFBLK; /* my default type is block. don't forget to change for chars */
- const char * name;
struct stat buf;
- char * ptr;
- name = &dev[5]; /* we really need that dev be passed as /dev/something.. */
-
if (!stat(dev, &buf))
return 0; /* if the file already exists, we assume it's correct */
- if (ptr_begins_static_str(name, "sd")) {
- /* SCSI disks */
- major = 8;
- minor = (name[2] - 'a') << 4;
- if (name[3] && name[4])
- minor += 10 + (name[4] - '0');
- else if (name[3])
- minor += (name[3] - '0');
- } else if (ptr_begins_static_str(name, "hd")) {
- /* IDE disks/cd's */
- if (name[2] == 'a')
- major = 3, minor = 0;
- else if (name[2] == 'b')
- major = 3, minor = 64;
- else if (name[2] == 'c')
- major = 22, minor = 0;
- else if (name[2] == 'd')
- major = 22, minor = 64;
- else if (name[2] == 'e')
- major = 33, minor = 0;
- else if (name[2] == 'f')
- major = 33, minor = 64;
- else if (name[2] == 'g')
- major = 34, minor = 0;
- else if (name[2] == 'h')
- major = 34, minor = 64;
- else if (name[2] == 'i')
- major = 56, minor = 0;
- else if (name[2] == 'j')
- major = 56, minor = 64;
- else if (name[2] == 'k')
- major = 57, minor = 0;
- else if (name[2] == 'l')
- major = 57, minor = 64;
- else if (name[2] == 'm')
- major = 88, minor = 0;
- else if (name[2] == 'n')
- major = 88, minor = 64;
- else if (name[2] == 'o')
- major = 89, minor = 0;
- else if (name[2] == 'p')
- major = 89, minor = 64;
- else if (name[2] == 'q')
- major = 90, minor = 0;
- else if (name[2] == 'r')
- major = 90, minor = 64;
- else if (name[2] == 's')
- major = 91, minor = 0;
- else if (name[2] == 't')
- major = 91, minor = 64;
- else
- return -1;
-
- if (name[3] && name[4])
- minor += 10 + (name[4] - '0');
- else if (name[3])
- minor += (name[3] - '0');
- } else if (ptr_begins_static_str(name , "sr")) {
- /* SCSI cd's */
- major = 11;
- minor = name[2] - '0';
- } else if (ptr_begins_static_str(name, "ida/") ||
- ptr_begins_static_str(name, "cciss/")) {
- /* Compaq Smart Array "ida/c0d0{p1}" */
- ptr = strchr(name, '/');
- mkdir("/dev/ida", 0755);
- mkdir("/dev/cciss", 0755);
- major = ptr_begins_static_str(name, "ida/") ? 72 : 104 + charstar_to_int(ptr+2);
- ptr = strchr(ptr, 'd');
- minor = 16 * charstar_to_int(ptr+1);
- ptr = strchr(ptr, 'p');
- minor += charstar_to_int(ptr+1);
- } else if (ptr_begins_static_str(name, "rd/")) {
- /* DAC960 "rd/cXdXXpX" */
- mkdir("/dev/rd", 0755);
- major = 48 + charstar_to_int(name+4);
- ptr = strchr(name+4, 'd');
- minor = 8 * charstar_to_int(ptr+1);
- ptr = strchr(ptr, 'p');
- minor += charstar_to_int(ptr+1);
- } else if (ptr_begins_static_str(name, "loop")) {
- major = 7;
- minor = name[4] - '0';
- } else if (ptr_begins_static_str(name, "chloop")) {
- major = 100;
- minor = name[6] - '0';
- } else {
- log_message("I don't know how to create device %s, please post bugreport to me!", dev);
- return -1;
- }
+ // give udev some time to create nodes if module was just insmoded:
+ system("udevadm settle");
- if (mknod(dev, type | 0600, makedev(major, minor))) {
- log_perror(dev);
+ if (!stat(dev, &buf)) {
+ log_message("I don't know how to create device %s, please post bugreport to me!", dev);
return -1;
}
@@ -151,7 +59,6 @@ int ensure_dev_exists(const char * dev)
/* mounts, creating the device if needed+possible */
int my_mount(char *dev, char *location, char *fs, int force_rw)
{
- unsigned long flags = MS_MGC_VAL | (force_rw ? 0 : MS_RDONLY);
char * opts = NULL;
struct stat buf;
int rc;
@@ -183,48 +90,20 @@ int my_mount(char *dev, char *location, char *fs, int force_rw)
}
}
- if (!strcmp(fs, "supermount")) {
- my_insmod("supermount", ANY_DRIVER_TYPE, NULL, 1);
- my_insmod("isofs", ANY_DRIVER_TYPE, NULL, 1);
- opts = alloca(500);
- sprintf(opts, "dev=%s,fs=iso9660,tray_lock=always", dev);
- dev = "none";
- }
-
#ifndef DISABLE_MEDIAS
- if (!strcmp(fs, "vfat")) {
- my_insmod("vfat", ANY_DRIVER_TYPE, NULL, 1);
+ if (!strcmp(fs, "nfs"))
+ opts = "nolock";
+ if (!strcmp(fs, "vfat"))
opts = "check=relaxed";
- }
-
- if (!strcmp(fs, "ntfs")) {
- my_insmod("ntfs", ANY_DRIVER_TYPE, NULL, 1);
- }
-
- if (!strcmp(fs, "reiserfs"))
- my_insmod("reiserfs", ANY_DRIVER_TYPE, NULL, 1);
-
- if (!strcmp(fs, "jfs"))
- my_insmod("jfs", ANY_DRIVER_TYPE, NULL, 1);
-
- if (!strcmp(fs, "xfs"))
- my_insmod("xfs", ANY_DRIVER_TYPE, NULL, 1);
-
#endif
- if (!strcmp(fs, "iso9660"))
- my_insmod("isofs", ANY_DRIVER_TYPE, NULL, 1);
-
-#ifndef DISABLE_NETWORK
- if (!strcmp(fs, "nfs")) {
- my_insmod("nfs", ANY_DRIVER_TYPE, NULL, 1);
- log_message("preparing nfsmount for %s", dev);
- rc = nfsmount_prepare(dev, &opts);
- if (rc != 0)
- return rc;
+ char *cmd;
+ rc = asprintf(&cmd, "mount %s %s -t %s -o %s%s > /dev/null 2>&1", dev, location, fs, (force_rw ? "" : "ro,"), (opts ? opts : ""));
+ if (rc == -1) {
+ log_perror("asprint allocation failure");
+ rmdir(location);
+ return rc;
}
-#endif
-
- rc = mount(dev, location, fs, flags, opts);
+ rc = system(cmd);
if (rc != 0) {
log_perror("mount failed");
rmdir(location);
diff --git a/mdk-stage1/mount.h b/mdk-stage1/mount.h
index 4a4317182..dc8d674c3 100644
--- a/mdk-stage1/mount.h
+++ b/mdk-stage1/mount.h
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -22,10 +22,6 @@
#ifndef _MOUNT_H_
#define _MOUNT_H_
-#ifndef DISABLE_NETWORK
-#include "nfsmount.h"
-#endif
-
int my_mount(char *dev, char *location, char *fs, int force_rw);
int ensure_dev_exists(const char * dev);
diff --git a/mdk-stage1/mount_rpcgen.h b/mdk-stage1/mount_rpcgen.h
deleted file mode 100644
index d70ccaf9d..000000000
--- a/mdk-stage1/mount_rpcgen.h
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * Please do not edit this file.
- * It was generated using rpcgen.
- */
-
-#ifndef _MOUNT_H_RPCGEN
-#define _MOUNT_H_RPCGEN
-
-#include <rpc/rpc.h>
-
-#define MNTPATHLEN 1024
-#define MNTNAMLEN 255
-#define FHSIZE 32
-
-typedef char fhandle[FHSIZE];
-#ifdef __cplusplus
-extern "C" bool_t xdr_fhandle(XDR *, fhandle);
-#elif __STDC__
-extern bool_t xdr_fhandle(XDR *, fhandle);
-#else /* Old Style C */
-bool_t xdr_fhandle();
-#endif /* Old Style C */
-
-
-struct fhstatus {
- u_int fhs_status;
- union {
- fhandle fhs_fhandle;
- } fhstatus_u;
-};
-typedef struct fhstatus fhstatus;
-#ifdef __cplusplus
-extern "C" bool_t xdr_fhstatus(XDR *, fhstatus*);
-#elif __STDC__
-extern bool_t xdr_fhstatus(XDR *, fhstatus*);
-#else /* Old Style C */
-bool_t xdr_fhstatus();
-#endif /* Old Style C */
-
-
-typedef char *dirpath;
-#ifdef __cplusplus
-extern "C" bool_t xdr_dirpath(XDR *, dirpath*);
-#elif __STDC__
-extern bool_t xdr_dirpath(XDR *, dirpath*);
-#else /* Old Style C */
-bool_t xdr_dirpath();
-#endif /* Old Style C */
-
-
-typedef char *name;
-#ifdef __cplusplus
-extern "C" bool_t xdr_name(XDR *, name*);
-#elif __STDC__
-extern bool_t xdr_name(XDR *, name*);
-#else /* Old Style C */
-bool_t xdr_name();
-#endif /* Old Style C */
-
-
-typedef struct mountbody *mountlist;
-#ifdef __cplusplus
-extern "C" bool_t xdr_mountlist(XDR *, mountlist*);
-#elif __STDC__
-extern bool_t xdr_mountlist(XDR *, mountlist*);
-#else /* Old Style C */
-bool_t xdr_mountlist();
-#endif /* Old Style C */
-
-
-struct mountbody {
- name ml_hostname;
- dirpath ml_directory;
- mountlist ml_next;
-};
-typedef struct mountbody mountbody;
-#ifdef __cplusplus
-extern "C" bool_t xdr_mountbody(XDR *, mountbody*);
-#elif __STDC__
-extern bool_t xdr_mountbody(XDR *, mountbody*);
-#else /* Old Style C */
-bool_t xdr_mountbody();
-#endif /* Old Style C */
-
-
-typedef struct groupnode *groups;
-#ifdef __cplusplus
-extern "C" bool_t xdr_groups(XDR *, groups*);
-#elif __STDC__
-extern bool_t xdr_groups(XDR *, groups*);
-#else /* Old Style C */
-bool_t xdr_groups();
-#endif /* Old Style C */
-
-
-struct groupnode {
- name gr_name;
- groups gr_next;
-};
-typedef struct groupnode groupnode;
-#ifdef __cplusplus
-extern "C" bool_t xdr_groupnode(XDR *, groupnode*);
-#elif __STDC__
-extern bool_t xdr_groupnode(XDR *, groupnode*);
-#else /* Old Style C */
-bool_t xdr_groupnode();
-#endif /* Old Style C */
-
-
-typedef struct exportnode *exports;
-#ifdef __cplusplus
-extern "C" bool_t xdr_exports(XDR *, exports*);
-#elif __STDC__
-extern bool_t xdr_exports(XDR *, exports*);
-#else /* Old Style C */
-bool_t xdr_exports();
-#endif /* Old Style C */
-
-
-struct exportnode {
- dirpath ex_dir;
- groups ex_groups;
- exports ex_next;
-};
-typedef struct exportnode exportnode;
-#ifdef __cplusplus
-extern "C" bool_t xdr_exportnode(XDR *, exportnode*);
-#elif __STDC__
-extern bool_t xdr_exportnode(XDR *, exportnode*);
-#else /* Old Style C */
-bool_t xdr_exportnode();
-#endif /* Old Style C */
-
-
-#define MOUNTPROG ((u_long)100005)
-#define MOUNTVERS ((u_long)1)
-
-#ifdef __cplusplus
-#define MOUNTPROC_NULL ((u_long)0)
-extern "C" void * mountproc_null_1(void *, CLIENT *);
-extern "C" void * mountproc_null_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_MNT ((u_long)1)
-extern "C" fhstatus * mountproc_mnt_1(dirpath *, CLIENT *);
-extern "C" fhstatus * mountproc_mnt_1_svc(dirpath *, struct svc_req *);
-#define MOUNTPROC_DUMP ((u_long)2)
-extern "C" mountlist * mountproc_dump_1(void *, CLIENT *);
-extern "C" mountlist * mountproc_dump_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_UMNT ((u_long)3)
-extern "C" void * mountproc_umnt_1(dirpath *, CLIENT *);
-extern "C" void * mountproc_umnt_1_svc(dirpath *, struct svc_req *);
-#define MOUNTPROC_UMNTALL ((u_long)4)
-extern "C" void * mountproc_umntall_1(void *, CLIENT *);
-extern "C" void * mountproc_umntall_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_EXPORT ((u_long)5)
-extern "C" exports * mountproc_export_1(void *, CLIENT *);
-extern "C" exports * mountproc_export_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_EXPORTALL ((u_long)6)
-extern "C" exports * mountproc_exportall_1(void *, CLIENT *);
-extern "C" exports * mountproc_exportall_1_svc(void *, struct svc_req *);
-
-#elif __STDC__
-#define MOUNTPROC_NULL ((u_long)0)
-extern void * mountproc_null_1(void *, CLIENT *);
-extern void * mountproc_null_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_MNT ((u_long)1)
-extern fhstatus * mountproc_mnt_1(dirpath *, CLIENT *);
-extern fhstatus * mountproc_mnt_1_svc(dirpath *, struct svc_req *);
-#define MOUNTPROC_DUMP ((u_long)2)
-extern mountlist * mountproc_dump_1(void *, CLIENT *);
-extern mountlist * mountproc_dump_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_UMNT ((u_long)3)
-extern void * mountproc_umnt_1(dirpath *, CLIENT *);
-extern void * mountproc_umnt_1_svc(dirpath *, struct svc_req *);
-#define MOUNTPROC_UMNTALL ((u_long)4)
-extern void * mountproc_umntall_1(void *, CLIENT *);
-extern void * mountproc_umntall_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_EXPORT ((u_long)5)
-extern exports * mountproc_export_1(void *, CLIENT *);
-extern exports * mountproc_export_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_EXPORTALL ((u_long)6)
-extern exports * mountproc_exportall_1(void *, CLIENT *);
-extern exports * mountproc_exportall_1_svc(void *, struct svc_req *);
-
-#else /* Old Style C */
-#define MOUNTPROC_NULL ((u_long)0)
-extern void * mountproc_null_1();
-extern void * mountproc_null_1_svc();
-#define MOUNTPROC_MNT ((u_long)1)
-extern fhstatus * mountproc_mnt_1();
-extern fhstatus * mountproc_mnt_1_svc();
-#define MOUNTPROC_DUMP ((u_long)2)
-extern mountlist * mountproc_dump_1();
-extern mountlist * mountproc_dump_1_svc();
-#define MOUNTPROC_UMNT ((u_long)3)
-extern void * mountproc_umnt_1();
-extern void * mountproc_umnt_1_svc();
-#define MOUNTPROC_UMNTALL ((u_long)4)
-extern void * mountproc_umntall_1();
-extern void * mountproc_umntall_1_svc();
-#define MOUNTPROC_EXPORT ((u_long)5)
-extern exports * mountproc_export_1();
-extern exports * mountproc_export_1_svc();
-#define MOUNTPROC_EXPORTALL ((u_long)6)
-extern exports * mountproc_exportall_1();
-extern exports * mountproc_exportall_1_svc();
-#endif /* Old Style C */
-
-#endif /* !_MOUNT_H_RPCGEN */
diff --git a/mdk-stage1/network.c b/mdk-stage1/network.c
index 8c70e4437..ab512399a 100644
--- a/mdk-stage1/network.c
+++ b/mdk-stage1/network.c
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -31,6 +31,7 @@
#include <sys/ioctl.h>
#include <sys/mount.h>
#include <stdio.h>
+#include <fcntl.h>
#include <netdb.h>
#include <resolv.h>
#include <sys/utsname.h>
@@ -290,7 +291,7 @@ static int save_netinfo(struct interface_info * intf)
fprintf(f, "NETWORKING=yes\n");
fprintf(f, "FORWARD_IPV4=false\n");
- if (hostname && !intf->boot_proto == BOOTPROTO_DHCP)
+ if (hostname && !(intf->boot_proto == BOOTPROTO_DHCP))
fprintf(f, "HOSTNAME=%s\n", hostname);
if (gateway.s_addr != 0)
fprintf(f, "GATEWAY=%s\n", inet_ntoa(gateway));
@@ -400,8 +401,8 @@ static void static_ip_callback(char ** strings)
static enum return_type setup_network_interface(struct interface_info * intf)
{
enum return_type results;
- char * bootprotos[] = { "Static", "DHCP", "ADSL", NULL };
- char * bootprotos_auto[] = { "static", "dhcp", "adsl" };
+ char * bootprotos[] = { "DHCP", "Static", "ADSL", NULL };
+ char * bootprotos_auto[] = { "dhcp", "static", "adsl" };
char * choice;
results = ask_from_list_auto("Please select your network connection type.", bootprotos, &choice, "network", bootprotos_auto);
@@ -537,12 +538,12 @@ static enum return_type configure_network(struct interface_info * intf)
char * boulet;
if (dhcp_hostname || dhcp_domain) {
- answers = (char **) malloc(sizeof(questions));
+ answers = (char **) calloc(1, sizeof(questions));
answers[0] = strdup(dhcp_hostname);
answers[1] = strdup(dhcp_domain);
}
- if (!dhcp_hostname || !dhcp_hostname) {
+ if (!dhcp_hostname || !dhcp_domain) {
results = ask_from_entries_auto("I could not guess hostname and domain name; please fill in this information. "
"Valid answers are for example: `mybox' for hostname and `mynetwork.com' for "
"domain name, for a machine called `mybox.mynetwork.com' on the Internet.",
@@ -568,8 +569,15 @@ static enum return_type bringup_networking(struct interface_info * intf)
{
static struct interface_info loopback;
enum return_type results;
-
- my_insmod("af_packet", ANY_DRIVER_TYPE, NULL, 1);
+ int fd;
+
+ /* try to find if module already loaded or built-in to avoid failing */
+ /* badly */
+ fd = open("/proc/net/packet", O_RDONLY);
+ if (fd < 0)
+ my_modprobe("af_packet", ANY_DRIVER_TYPE, NULL);
+ else
+ close(fd);
do {
results = configure_wireless(intf->device);
@@ -683,8 +691,7 @@ static char * interface_select(void)
}
if (count == 0) {
- stg1_error_message("No NET device found.\n"
- "Hint: if you're using a Laptop, note that PCMCIA Network adapters are now supported either with `pcmcia.img' or `network.img', please try both these bootdisks.");
+ stg1_error_message("No NET device found.");
i = ask_insmod(NETWORK_DEVICES);
if (i == RETURN_BACK)
return NULL;
@@ -796,8 +803,8 @@ static enum return_type get_mirrorlist(mirrorlist_t mirrorlist, int start, char
line[line_pos] = '\0';
line_pos = 0;
- /* skip medium if it looks like an updates one */
- if (strstr(line, ",type=updates,"))
+ /* skip medium if it does not look like a distrib path */
+ if (!strstr(line, ",type=distrib,"))
continue;
url = strstr(line, ",url=");
@@ -853,8 +860,8 @@ static int choose_mirror_from_host_list(mirrorlist_t mirrorlist, char **selected
static int choose_mirror_from_list(char *http_proxy_host, char *http_proxy_port, const char *protocol, char **selected_host, char **filepath)
{
enum return_type results;
- char *versions[] = { "Specify the mirror manually", DISTRIB_VERSION, "cooker", NULL };
- char *version = DISTRIB_VERSION;
+ char *versions[] = { "Specify the mirror manually", DISTRIB_NAME " " DISTRIB_VERSION, NULL };
+ char *version = DISTRIB_NAME " " DISTRIB_VERSION;
do {
results = ask_from_list("Please select a medium from the list below.", versions, &version);
@@ -871,7 +878,7 @@ static int choose_mirror_from_list(char *http_proxy_host, char *http_proxy_port,
mirrorlist[0][0] = "Specify the mirror manually";
mirrorlist[1][0] = NULL;
- results = get_mirrorlist(mirrorlist, 1, version, protocol, http_proxy_host, http_proxy_port);
+ results = get_mirrorlist(mirrorlist, 1, DISTRIB_VERSION, protocol, http_proxy_host, http_proxy_port);
if (results == RETURN_ERROR)
return RETURN_ERROR;
@@ -994,11 +1001,12 @@ enum return_type ftp_prepare(void)
char location_full[500];
int ftp_serv_response = -1;
int fd, size;
+ int need_arch = 0;
char ftp_hostname[500];
if (!IS_AUTOMATIC) {
if (answers == NULL)
- answers = (char **) malloc(sizeof(questions));
+ answers = (char **) calloc(1, sizeof(questions));
results = choose_mirror_from_list(http_proxy_host, http_proxy_port, "ftp", &answers[0], &answers[1]);
@@ -1064,6 +1072,21 @@ enum return_type ftp_prepare(void)
fd = ftp_start_download(ftp_serv_response, location_full, &size);
}
+ /* Try arched directory */
+ if (fd < 0) {
+ log_message("%s failed.", location_full);
+ char *with_arch = asprintf_("%s%s/%s/%s", answers[1][0] == '/' ? "" : "/", answers[1], ARCH, COMPRESSED_FILE_REL("/"));
+ log_message("trying %s...", with_arch);
+ if (use_http_proxy)
+ fd = http_download_file(answers[0], with_arch, &size, use_http_proxy ? "http" : NULL, http_proxy_host, http_proxy_port);
+ else
+ fd = ftp_start_download(ftp_serv_response, with_arch, &size);
+ if (0 < fd) {
+ strcpy(location_full, with_arch);
+ need_arch = 1;
+ }
+ }
+
if (fd < 0) {
char *msg = str_ftp_error(fd);
log_message("FTP: error get %d for remote file %s", fd, location_full);
@@ -1085,13 +1108,17 @@ enum return_type ftp_prepare(void)
if (use_http_proxy) {
add_to_env("METHOD", "http");
- sprintf(location_full, "ftp://%s%s", ftp_hostname, answers[1]);
+ snprintf(location_full, sizeof(location_full), "ftp://%s%s", ftp_hostname, answers[1]);
+ if (need_arch)
+ strcat(location_full, "/" ARCH);
add_to_env("URLPREFIX", location_full);
add_to_env("PROXY", http_proxy_host);
add_to_env("PROXYPORT", http_proxy_port);
} else {
add_to_env("METHOD", "ftp");
add_to_env("HOST", answers[0]);
+ if (need_arch)
+ strcat(answers[1], "/" ARCH);
add_to_env("PREFIX", answers[1]);
if (!streq(answers[2], "")) {
add_to_env("LOGIN", answers[2]);
@@ -1127,17 +1154,17 @@ enum return_type http_prepare(void)
do {
char location_full[500];
- int fd, size;
+ int fd, size, need_arch = 0;
int use_http_proxy;
if (!IS_AUTOMATIC) {
if (answers == NULL)
- answers = (char **) malloc(sizeof(questions));
+ answers = (char **) calloc(1, sizeof(questions));
results = choose_mirror_from_list(http_proxy_host, http_proxy_port, "http", &answers[0], &answers[1]);
if (results == RETURN_BACK)
- return ftp_prepare();
+ return http_prepare();
}
results = ask_from_entries_auto("Please enter the name or IP address of the HTTP server, "
@@ -1157,6 +1184,19 @@ enum return_type http_prepare(void)
use_http_proxy = http_proxy_host && http_proxy_port && !streq(http_proxy_host, "") && !streq(http_proxy_port, "");
fd = http_download_file(answers[0], location_full, &size, use_http_proxy ? "http" : NULL, http_proxy_host, http_proxy_port);
+
+ /* Try arched directory */
+ if (fd < 0) {
+ log_message("%s failed.", location_full);
+ char *with_arch = asprintf_("%s%s/%s/%s", answers[1][0] == '/' ? "" : "/", answers[1], ARCH, COMPRESSED_FILE_REL("/"));
+ log_message("trying %s...", with_arch);
+ fd = http_download_file(answers[0], with_arch, &size, use_http_proxy ? "http" : NULL, http_proxy_host, http_proxy_port);
+ if (0 < fd) {
+ strcpy(location_full, with_arch);
+ need_arch = 1;
+ }
+ }
+
if (fd < 0) {
log_message("HTTP: error %d", fd);
if (fd == FTPERR_FAILED_CONNECT)
@@ -1176,6 +1216,8 @@ enum return_type http_prepare(void)
add_to_env("METHOD", "http");
sprintf(location_full, "http://%s%s%s", answers[0], answers[1][0] == '/' ? "" : "/", answers[1]);
+ if (need_arch)
+ strcat(location_full, "/" ARCH);
add_to_env("URLPREFIX", location_full);
if (!streq(http_proxy_host, ""))
add_to_env("PROXY", http_proxy_host);
diff --git a/mdk-stage1/network.h b/mdk-stage1/network.h
index 3d2d94871..914bc2ca5 100644
--- a/mdk-stage1/network.h
+++ b/mdk-stage1/network.h
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
diff --git a/mdk-stage1/newt-frontend.c b/mdk-stage1/newt-frontend.c
index 2a44e01e3..c0489b58d 100644
--- a/mdk-stage1/newt-frontend.c
+++ b/mdk-stage1/newt-frontend.c
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -24,6 +24,7 @@
* Each different frontend must implement all functions defined in frontend.h
*/
+#define _GNU_SOURCE
#include <stdlib.h>
#include <unistd.h>
@@ -31,7 +32,7 @@
#include <stdio.h>
#include <stdarg.h>
#include <sys/time.h>
-#include "newt/newt.h"
+#include <newt.h>
#include <probing.h>
@@ -43,12 +44,16 @@ void init_frontend(char * welcome_msg)
for (i=0; i<38; i++) printf("\n");
newtInit();
newtCls();
-
- newtDrawRootText(0, 0, welcome_msg);
- if (welcome_msg[0])
+ if (welcome_msg[0]) {
+ char *msg;
+ int cols, rows;
+ newtGetScreenSize(&cols, &rows);
+ asprintf(&msg, " %-*s", cols - 1, welcome_msg);
+ newtDrawRootText(0, 0, msg);
+ free(msg);
newtPushHelpLine(" <Alt-F1> for here, <Alt-F3> to see the logs, <Alt-F4> for kernel msg");
-
+ }
newtRefresh();
}
@@ -294,7 +299,7 @@ static int mynewtWinEntries(char * title, char * text, int suggestedWidth, int f
for (i = 0; i < numItems; i++) {
newtComponent entr = newtEntry(-1, -1, items[i].value ?
*items[i].value : NULL, dataWidth,
- items[i].value, items[i].flags);
+ (const char**)items[i].value, items[i].flags);
newtGridSetField(subgrid, 0, i, NEWT_GRID_COMPONENT,
newtLabel(-1, -1, items[i].text),
@@ -356,7 +361,7 @@ enum return_type ask_from_entries(char *msg, char ** questions, char *** answers
entries[i].value = NULL;
if (*answers == NULL)
- *answers = (char **) malloc(sizeof(char *) * i);
+ *answers = (char **) calloc(1, sizeof(char *) * i);
else
already_answers = *answers;
diff --git a/mdk-stage1/newt/Makefile b/mdk-stage1/newt/Makefile
deleted file mode 100644
index fb6cdd5ff..000000000
--- a/mdk-stage1/newt/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
- #******************************************************************************
- #
- # Guillaume Cottenceau (gc@mandrakesoft.com)
- #
- # Copyright 2000 Mandrakesoft
- #
- # This software may be freely redistributed under the terms of the GNU
- # public license.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program; if not, write to the Free Software
- # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- #
- #*****************************************************************************
-
-top_dir = ..
-
-include $(top_dir)/Makefile.common
-
-
-LIBNAME = libnewt
-
-OBJS = newt.o button.o form.o checkbox.o entry.o label.o listbox.o scrollbar.o textbox.o scale.o grid.o windows.o buttonbar.o checkboxtree.o
-
-DEFS = -DVERSION=\"0.50.19\"
-
-INCS = -I../slang
-
-
-TARGETS = $(LIBNAME).a
-
-all: $(TARGETS)
-
-clean:
- rm -f *.o *.a
-
-$(LIBNAME).a: $(OBJS)
- ar -cru $@ $^
- ranlib $@
-
-$(OBJS): %.o: %.c
- $(DIET) gcc $(CFLAGS) $(DEFS) $(INCS) $(INCLUDES) -c $< -o $@
diff --git a/mdk-stage1/newt/button.c b/mdk-stage1/newt/button.c
deleted file mode 100644
index d7da58175..000000000
--- a/mdk-stage1/newt/button.c
+++ /dev/null
@@ -1,192 +0,0 @@
-#include <slang.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "newt.h"
-#include "newt_pr.h"
-
-struct button {
- char * text;
- int compact;
-};
-
-static void buttonDrawIt(newtComponent co, int active, int pushed);
-static void buttonDrawText(newtComponent co, int active, int pushed);
-
-static void buttonDraw(newtComponent c);
-static void buttonDestroy(newtComponent co);
-static struct eventResult buttonEvent(newtComponent c,
- struct event ev);
-static void buttonPlace(newtComponent co, int newLeft, int newTop);
-
-static struct componentOps buttonOps = {
- buttonDraw,
- buttonEvent,
- buttonDestroy,
- buttonPlace,
- newtDefaultMappedHandler,
-} ;
-
-static newtComponent createButton(int left, int row, const char * text, int compact) {
- newtComponent co;
- struct button * bu;
-
- co = malloc(sizeof(*co));
- bu = malloc(sizeof(struct button));
- co->data = bu;
-
- bu->text = strdup(text);
- bu->compact = compact;
- co->ops = &buttonOps;
-
- if (bu->compact) {
- co->height = 1;
- co->width = strlen(text) + 3;
- } else {
- co->height = 4;
- co->width = strlen(text) + 5;
- }
-
- co->top = row;
- co->left = left;
- co->takesFocus = 1;
- co->isMapped = 0;
-
- newtGotorc(co->top, co->left);
-
- return co;
-}
-
-newtComponent newtCompactButton(int left, int row, const char * text) {
- return createButton(left, row, text, 1);
-}
-
-newtComponent newtButton(int left, int row, const char * text) {
- return createButton(left, row, text, 0);
-}
-
-static void buttonDestroy(newtComponent co) {
- struct button * bu = co->data;
-
- free(bu->text);
- free(bu);
- free(co);
-}
-
-static void buttonPlace(newtComponent co, int newLeft, int newTop) {
- co->top = newTop;
- co->left = newLeft;
-
- newtGotorc(co->top, co->left);
-}
-
-static void buttonDraw(newtComponent co) {
- buttonDrawIt(co, 0, 0);
-}
-
-static void buttonDrawIt(newtComponent co, int active, int pushed) {
- struct button * bu = co->data;
-
- if (!co->isMapped) return;
-
- SLsmg_set_color(NEWT_COLORSET_BUTTON);
-
- if (bu->compact) {
- if (active)
- SLsmg_set_color(NEWT_COLORSET_COMPACTBUTTON);
- else
- SLsmg_set_color(NEWT_COLORSET_BUTTON);
- newtGotorc(co->top+ pushed, co->left + 1 + pushed);
- SLsmg_write_char('<');
- SLsmg_write_string(bu->text);
- SLsmg_write_char('>');
- } else {
- if (pushed) {
- SLsmg_set_color(NEWT_COLORSET_BUTTON);
- newtDrawBox(co->left + 1, co->top + 1, co->width - 1, 3, 0);
-
- SLsmg_set_color(NEWT_COLORSET_WINDOW);
- newtClearBox(co->left, co->top, co->width, 1);
- newtClearBox(co->left, co->top, 1, co->height);
- } else {
- newtDrawBox(co->left, co->top, co->width - 1, 3, 1);
- }
-
- buttonDrawText(co, active, pushed);
- }
-}
-
-static void buttonDrawText(newtComponent co, int active, int pushed) {
- struct button * bu = co->data;
-
- if (pushed) pushed = 1;
-
- if (active)
- SLsmg_set_color(NEWT_COLORSET_ACTBUTTON);
- else
- SLsmg_set_color(NEWT_COLORSET_BUTTON);
-
- newtGotorc(co->top + 1 + pushed, co->left + 1 + pushed);
- SLsmg_write_char(' ');
- SLsmg_write_string(bu->text);
- SLsmg_write_char(' ');
-}
-
-static struct eventResult buttonEvent(newtComponent co,
- struct event ev) {
- struct eventResult er;
- struct button * bu = co->data;
- er.result = ER_IGNORED;
- er.u.focus = NULL;
-
- if (ev.when == EV_NORMAL) {
- switch (ev.event) {
- case EV_FOCUS:
- buttonDrawIt(co, 1, 0);
- er.result = ER_SWALLOWED;
- break;
-
- case EV_UNFOCUS:
- buttonDrawIt(co, 0, 0);
- er.result = ER_SWALLOWED;
- break;
-
- case EV_KEYPRESS:
- if (ev.u.key == ' ' || ev.u.key == '\r') {
- if (!bu->compact) {
- /* look pushed */
- buttonDrawIt(co, 1, 1);
- newtRefresh();
- newtDelay(150000);
- buttonDrawIt(co, 1, 0);
- newtRefresh();
- newtDelay(150000);
- }
-
- er.result = ER_EXITFORM;
- } else
- er.result = ER_IGNORED;
- break;
- case EV_MOUSE:
- if (ev.u.mouse.type == MOUSE_BUTTON_DOWN &&
- co->top <= ev.u.mouse.y &&
- co->top + co->height - !bu->compact > ev.u.mouse.y &&
- co->left <= ev.u.mouse.x &&
- co->left + co->width - !bu->compact > ev.u.mouse.x) {
- if (!bu->compact) {
- buttonDrawIt(co, 1, 1);
- newtRefresh();
- newtDelay(150000);
- buttonDrawIt(co, 1, 0);
- newtRefresh();
- newtDelay(150000);
- }
- er.result = ER_EXITFORM;
- }
- break;
- }
- } else
- er.result = ER_IGNORED;
-
- return er;
-}
diff --git a/mdk-stage1/newt/buttonbar.c b/mdk-stage1/newt/buttonbar.c
deleted file mode 100644
index 45473c9d2..000000000
--- a/mdk-stage1/newt/buttonbar.c
+++ /dev/null
@@ -1,46 +0,0 @@
-#include <stdarg.h>
-
-#include "newt.h"
-
-/* if they try and pack more then 50 buttons, screw 'em */
-newtGrid newtButtonBarv(char * button1, newtComponent * b1comp, va_list args) {
- newtGrid grid;
- struct buttonInfo {
- char * name;
- newtComponent * compPtr;
- } buttons[50];
- int num;
- int i;
-
- buttons[0].name = button1, buttons[0].compPtr = b1comp, num = 1;
- while (1) {
- buttons[num].name = va_arg(args, char *);
- if (!buttons[num].name) break;
- buttons[num].compPtr = va_arg(args, newtComponent *);
- num++;
- }
-
- grid = newtCreateGrid(num, 1);
-
- for (i = 0; i < num; i++) {
- *buttons[i].compPtr = newtButton(-1, -1, buttons[i].name);
- newtGridSetField(grid, i, 0, NEWT_GRID_COMPONENT,
- *buttons[i].compPtr,
- num ? 1 : 0, 0, 0, 0, 0, 0);
- }
-
- return grid;
-}
-
-newtGrid newtButtonBar(char * button1, newtComponent * b1comp, ...) {
- va_list args;
- newtGrid grid;
-
- va_start(args, b1comp);
-
- grid = newtButtonBarv(button1, b1comp, args);
-
- va_end(args);
-
- return grid;
-}
diff --git a/mdk-stage1/newt/checkbox.c b/mdk-stage1/newt/checkbox.c
deleted file mode 100644
index 643609d34..000000000
--- a/mdk-stage1/newt/checkbox.c
+++ /dev/null
@@ -1,292 +0,0 @@
-#include <slang.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "newt.h"
-#include "newt_pr.h"
-
-enum type { CHECK, RADIO };
-
-struct checkbox {
- char * text;
- char * seq;
- char * result;
- newtComponent prevButton, lastButton;
- enum type type;
- char value;
- int active, inactive;
- const void * data;
- int flags;
- int hasFocus;
-};
-
-static void makeActive(newtComponent co);
-
-static void cbDraw(newtComponent c);
-static void cbDestroy(newtComponent co);
-struct eventResult cbEvent(newtComponent co, struct event ev);
-
-static struct componentOps cbOps = {
- cbDraw,
- cbEvent,
- cbDestroy,
- newtDefaultPlaceHandler,
- newtDefaultMappedHandler,
-} ;
-
-newtComponent newtRadiobutton(int left, int top, const char * text, int isDefault,
- newtComponent prevButton) {
- newtComponent co;
- newtComponent curr;
- struct checkbox * rb;
- char initialValue;
-
- if (isDefault)
- initialValue = '*';
- else
- initialValue = ' ';
-
- co = newtCheckbox(left, top, text, initialValue, " *", NULL);
- rb = co->data;
- rb->type = RADIO;
-
- rb->prevButton = prevButton;
-
- for (curr = co; curr; curr = rb->prevButton) {
- rb = curr->data;
- rb->lastButton = co;
- }
-
- return co;
-}
-
-newtComponent newtRadioGetCurrent(newtComponent setMember) {
- struct checkbox * rb = setMember->data;
-
- setMember = rb->lastButton;
- rb = setMember->data;
-
- while (rb && rb->value != '*') {
- setMember = rb->prevButton;
- if (!setMember)
- return NULL;
- rb = setMember->data;
- }
-
- return setMember;
-}
-
-char newtCheckboxGetValue(newtComponent co) {
- struct checkbox * cb = co->data;
-
- return cb->value;
-}
-
-void newtCheckboxSetValue(newtComponent co, char value) {
- struct checkbox * cb = co->data;
-
- *cb->result = value;
- cbDraw(co);
-}
-
-newtComponent newtCheckbox(int left, int top, const char * text, char defValue,
- const char * seq, char * result) {
- newtComponent co;
- struct checkbox * cb;
-
- if (!seq) seq = " *";
-
- co = malloc(sizeof(*co));
- cb = malloc(sizeof(struct checkbox));
- co->data = cb;
- cb->flags = 0;
- if (result)
- cb->result = result;
- else
- cb->result = &cb->value;
-
- cb->text = strdup(text);
- cb->seq = strdup(seq);
- cb->type = CHECK;
- cb->hasFocus = 0;
- cb->inactive = COLORSET_CHECKBOX;
- cb->active = COLORSET_ACTCHECKBOX;
- defValue ? (*cb->result = defValue) : (*cb->result = cb->seq[0]);
-
- co->ops = &cbOps;
-
- co->callback = NULL;
- co->height = 1;
- co->width = strlen(text) + 4;
- co->top = top;
- co->left = left;
- co->takesFocus = 1;
-
- return co;
-}
-
-void newtCheckboxSetFlags(newtComponent co, int flags, enum newtFlagsSense sense) {
- struct checkbox * cb = co->data;
- int row, col;
-
- cb->flags = newtSetFlags(cb->flags, flags, sense);
-
- if (!(cb->flags & NEWT_FLAG_DISABLED))
- co->takesFocus = 1;
- else
- co->takesFocus = 0;
-
- newtGetrc(&row, &col);
- cbDraw(co);
- newtGotorc(row, col);
-}
-
-static void cbDraw(newtComponent c) {
- struct checkbox * cb = c->data;
-
- if (c->top == -1 || !c->isMapped) return;
-
- if (cb->flags & NEWT_FLAG_DISABLED) {
- cb->inactive = NEWT_COLORSET_DISENTRY;
- cb->active = NEWT_COLORSET_DISENTRY;
- } else {
- cb->inactive = COLORSET_CHECKBOX;
- cb->active = COLORSET_ACTCHECKBOX;
- }
-
- SLsmg_set_color(cb->inactive);
-
- newtGotorc(c->top, c->left);
-
- switch (cb->type) {
- case RADIO:
- SLsmg_write_string("( ) ");
- break;
-
- case CHECK:
- SLsmg_write_string("[ ] ");
- break;
-
- default:
- break;
- }
-
- SLsmg_write_string(cb->text);
-
- if (cb->hasFocus)
- SLsmg_set_color(cb->active);
-
- newtGotorc(c->top, c->left + 1);
- SLsmg_write_char(*cb->result);
-}
-
-static void cbDestroy(newtComponent co) {
- struct checkbox * cb = co->data;
-
- free(cb->text);
- free(cb->seq);
- free(cb);
- free(co);
-}
-
-struct eventResult cbEvent(newtComponent co, struct event ev) {
- struct checkbox * cb = co->data;
- struct eventResult er;
- const char * cur;
- er.result = ER_IGNORED;
- er.u.focus = NULL;
-
- if (ev.when == EV_NORMAL) {
- switch (ev.event) {
- case EV_FOCUS:
- cb->hasFocus = 1;
- cbDraw(co);
- er.result = ER_SWALLOWED;
- break;
-
- case EV_UNFOCUS:
- cb->hasFocus = 0;
- cbDraw(co);
- er.result = ER_SWALLOWED;
- break;
-
- case EV_KEYPRESS:
- if (ev.u.key == ' ') {
- if (cb->type == RADIO) {
- makeActive(co);
- } else if (cb->type == CHECK) {
- cur = strchr(cb->seq, *cb->result);
- if (!cur)
- *cb->result = *cb->seq;
- else {
- cur++;
- if (! *cur)
- *cb->result = *cb->seq;
- else
- *cb->result = *cur;
- }
- cbDraw(co);
- er.result = ER_SWALLOWED;
-
- if (co->callback)
- co->callback(co, co->callbackData);
- } else {
- er.result = ER_IGNORED;
- }
- } else if(ev.u.key == NEWT_KEY_ENTER) {
- er.result = ER_IGNORED;
- } else {
- er.result = ER_IGNORED;
- }
- break;
- case EV_MOUSE:
- if (ev.u.mouse.type == MOUSE_BUTTON_DOWN) {
- if (cb->type == RADIO) {
- makeActive(co);
- } else if (cb->type == CHECK) {
- cur = strchr(cb->seq, *cb->result);
- if (!cur)
- *cb->result = *cb->seq;
- else {
- cur++;
- if (! *cur)
- *cb->result = *cb->seq;
- else
- *cb->result = *cur;
- }
- cbDraw(co);
- er.result = ER_SWALLOWED;
-
- if (co->callback)
- co->callback(co, co->callbackData);
- }
- }
- }
- } else
- er.result = ER_IGNORED;
-
- return er;
-}
-
-static void makeActive(newtComponent co) {
- struct checkbox * cb = co->data;
- struct checkbox * rb;
- newtComponent curr;
-
- /* find the one that's turned off */
- curr = cb->lastButton;
- rb = curr->data;
- while (curr && rb->value == rb->seq[0]) {
- curr = rb->prevButton;
- if (curr) rb = curr->data;
- }
- if (curr) {
- rb->value = rb->seq[0];
- cbDraw(curr);
- }
- cb->value = cb->seq[1];
- cbDraw(co);
-
- if (co->callback)
- co->callback(co, co->callbackData);
-}
diff --git a/mdk-stage1/newt/checkboxtree.c b/mdk-stage1/newt/checkboxtree.c
deleted file mode 100644
index 00113f23e..000000000
--- a/mdk-stage1/newt/checkboxtree.c
+++ /dev/null
@@ -1,714 +0,0 @@
-#include <slang.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "newt.h"
-#include "newt_pr.h"
-
-struct items {
- char * text;
- const void *data;
- unsigned char selected;
- struct items *next;
- struct items *prev;
- struct items *branch;
- int flags;
- int depth;
-};
-
-struct CheckboxTree {
- newtComponent sb;
- int curWidth; /* size of text w/o scrollbar or border*/
- int curHeight; /* size of text w/o border */
- struct items * itemlist;
- struct items ** flatList, ** currItem, ** firstItem;
- int flatCount;
- int flags;
- int pad;
- char * seq;
- char * result;
-};
-
-static void ctDraw(newtComponent c);
-static void ctDestroy(newtComponent co);
-static void ctPlace(newtComponent co, int newLeft, int newTop);
-struct eventResult ctEvent(newtComponent co, struct event ev);
-static void ctMapped(newtComponent co, int isMapped);
-static struct items * findItem(struct items * items, const void * data);
-static void buildFlatList(newtComponent co);
-static void doBuildFlatList(struct CheckboxTree * ct, struct items * item);
-enum countWhat { COUNT_EXPOSED=0, COUNT_SELECTED=1 };
-static int countItems(struct items * item, enum countWhat justExposed);
-
-static struct componentOps ctOps = {
- ctDraw,
- ctEvent,
- ctDestroy,
- ctPlace,
- ctMapped,
-} ;
-
-static int countItems(struct items * item, enum countWhat what) {
- int count = 0;
-
- while (item) {
- if ((!item->branch && item->selected == what) || (what == COUNT_EXPOSED))
- count++;
- if (item->branch || (what == COUNT_EXPOSED && item->selected))
- count += countItems(item->branch, what);
- item = item->next;
- }
-
- return count;
-}
-
-static void doBuildFlatList(struct CheckboxTree * ct, struct items * item) {
- while (item) {
- ct->flatList[ct->flatCount++] = item;
- if (item->branch && item->selected) doBuildFlatList(ct, item->branch);
- item = item->next;
- }
-}
-
-static void buildFlatList(newtComponent co) {
- struct CheckboxTree * ct = co->data;
-
- if (ct->flatList) free(ct->flatList);
- ct->flatCount = countItems(ct->itemlist, COUNT_EXPOSED);
-
- ct->flatList = malloc(sizeof(*ct->flatList) * (ct->flatCount+1));
- ct->flatCount = 0;
- doBuildFlatList(ct, ct->itemlist);
- ct->flatList[ct->flatCount] = NULL;
-}
-
-int newtCheckboxTreeAddItem(newtComponent co,
- const char * text, const void * data,
- int flags, int index, ...) {
- va_list argList;
- int numIndexes;
- int * indexes;
- int i;
-
- va_start(argList, index);
- numIndexes = 0;
- i = index;
- while (i != NEWT_ARG_LAST) {
- numIndexes++;
- i = va_arg(argList, int);
- }
-
- va_end(argList);
-
- indexes = alloca(sizeof(*indexes) * (numIndexes + 1));
- va_start(argList, index);
- numIndexes = 0;
- i = index;
- va_start(argList, index);
- while (i != NEWT_ARG_LAST) {
- indexes[numIndexes++] = i;
- i = va_arg(argList, int);
- }
- va_end(argList);
-
- indexes[numIndexes++] = NEWT_ARG_LAST;
-
- return newtCheckboxTreeAddArray(co, text, data, flags, indexes);
-}
-
-static int doFindItemPath(struct items * items, void * data, int * path,
- int * len) {
- int where = 0;
-
- while (items) {
- if (items->data == data) {
- if (path) path[items->depth] = where;
- if (len) *len = items->depth + 1;
- return 1;
- }
-
- if (items->branch && doFindItemPath(items->branch, data, path, len)) {
- if (path) path[items->depth] = where;
- return 1;
- }
-
- items = items->next;
- where++;
- }
-
- return 0;
-}
-
-int * newtCheckboxTreeFindItem(newtComponent co, void * data) {
- int len;
- int * path;
- struct CheckboxTree * ct = co->data;
-
- if (!doFindItemPath(ct->itemlist, data, NULL, &len)) return NULL;
-
- path = malloc(sizeof(*path) * (len + 1));
- doFindItemPath(ct->itemlist, data, path, NULL);
- path[len] = NEWT_ARG_LAST;
-
- return path;
-}
-
-int newtCheckboxTreeAddArray(newtComponent co,
- const char * text, const void * data,
- int flags, int * indexes) {
- struct items * curList, * newNode, * item = NULL;
- struct items ** listPtr = NULL;
- int i, index, numIndexes;
- struct CheckboxTree * ct = co->data;
-
- numIndexes = 0;
- while (indexes[numIndexes] != NEWT_ARG_LAST) numIndexes++;
-
- if (!ct->itemlist) {
- if (numIndexes > 1) return -1;
-
- ct->itemlist = malloc(sizeof(*ct->itemlist));
- item = ct->itemlist;
- item->prev = NULL;
- item->next = NULL;
- } else {
- curList = ct->itemlist;
- listPtr = &ct->itemlist;
-
- i = 0;
- index = indexes[i];
- while (i < numIndexes) {
- item = curList;
-
- if (index == NEWT_ARG_APPEND) {
- item = NULL;
- } else {
- while (index && item)
- item = item->next, index--;
- }
-
- i++;
- if (i < numIndexes) {
- curList = item->branch;
- listPtr = &item->branch;
- if (!curList && (i + 1 != numIndexes)) return -1;
-
- index = indexes[i];
- }
- }
-
- if (!curList) { /* create a new branch */
- item = malloc(sizeof(*curList->prev));
- item->next = item->prev = NULL;
- *listPtr = item;
- } else if (!item) { /* append to end */
- item = curList;
- while (item->next) item = item->next;
- item->next = malloc(sizeof(*curList->prev));
- item->next->prev = item;
- item = item->next;
- item->next = NULL;
- } else {
- newNode = malloc(sizeof(*newNode));
- newNode->prev = item->prev;
- newNode->next = item;
-
- if (item->prev) item->prev->next = newNode;
- item->prev = newNode;
- item = newNode;
- if (!item->prev) *listPtr = item;
- }
- }
-
- item->text = strdup(text);
- item->data = data;
- if (flags & NEWT_FLAG_SELECTED) {
- item->selected = 1;
- } else {
- item->selected = 0;
- }
- item->flags = flags;
- item->branch = NULL;
- item->depth = numIndexes - 1;
-
- i = 4 + (3 * item->depth);
-
- if ((strlen(text) + i + ct->pad) > (size_t)co->width) {
- co->width = strlen(text) + i + ct->pad;
- }
-
- return 0;
-}
-
-static struct items * findItem(struct items * items, const void * data) {
- struct items * i;
-
- while (items) {
- if (items->data == data) return items;
- if (items->branch) {
- i = findItem(items->branch, data);
- if (i) return i;
- }
-
- items = items->next;
- }
-
- return NULL;
-}
-
-static void listSelected(struct items * items, int * num, const void ** list, int seqindex) {
- while (items) {
- if ((seqindex ? items->selected==seqindex : items->selected) && !items->branch)
- list[(*num)++] = (void *) items->data;
- if (items->branch)
- listSelected(items->branch, num, list, seqindex);
- items = items->next;
- }
-}
-
-const void ** newtCheckboxTreeGetSelection(newtComponent co, int *numitems)
-{
- return newtCheckboxTreeGetMultiSelection(co, numitems, 0);
-}
-
-const void ** newtCheckboxTreeGetMultiSelection(newtComponent co, int *numitems, char seqnum)
-{
- struct CheckboxTree * ct;
- const void **retval;
- int seqindex=0;
-
- if(!co || !numitems) return NULL;
-
- ct = co->data;
-
- if (seqnum) {
- while( ct->seq[seqindex] && ( ct->seq[seqindex] != seqnum )) seqindex++;
- } else {
- seqindex = 0;
- }
-
- *numitems = countItems(ct->itemlist, (seqindex ? seqindex : COUNT_SELECTED));
- if (!*numitems) return NULL;
-
- retval = malloc(*numitems * sizeof(void *));
- *numitems = 0;
- listSelected(ct->itemlist, numitems, retval, seqindex);
-
- return retval;
-}
-
-newtComponent newtCheckboxTree(int left, int top, int height, int flags) {
- return newtCheckboxTreeMulti(left, top, height, NULL, flags);
-}
-
-newtComponent newtCheckboxTreeMulti(int left, int top, int height, char *seq, int flags) {
- newtComponent co;
- struct CheckboxTree * ct;
-
- co = malloc(sizeof(*co));
- ct = malloc(sizeof(struct CheckboxTree));
- co->callback = NULL;
- co->data = ct;
- co->ops = &ctOps;
- co->takesFocus = 1;
- co->height = height;
- co->width = 0;
- co->isMapped = 0;
- ct->itemlist = NULL;
- ct->firstItem = NULL;
- ct->currItem = NULL;
- ct->flatList = NULL;
- if (seq)
- ct->seq = strdup(seq);
- else
- ct->seq = strdup(" *");
- if (flags & NEWT_FLAG_SCROLL) {
- ct->sb = newtVerticalScrollbar(left, top, height,
- COLORSET_LISTBOX, COLORSET_ACTLISTBOX);
- ct->pad = 2;
- } else {
- ct->sb = NULL;
- ct->pad = 0;
- }
-
- return co;
-}
-
-static void ctMapped(newtComponent co, int isMapped) {
- struct CheckboxTree * ct = co->data;
-
- co->isMapped = isMapped;
- if (ct->sb)
- ct->sb->ops->mapped(ct->sb, isMapped);
-}
-
-static void ctPlace(newtComponent co, int newLeft, int newTop) {
- struct CheckboxTree * ct = co->data;
-
- co->top = newTop;
- co->left = newLeft;
-
- if (ct->sb)
- ct->sb->ops->place(ct->sb, co->left + co->width - 1, co->top);
-}
-
-int ctSetItem(newtComponent co, struct items *item, enum newtFlagsSense sense)
-{
- struct CheckboxTree * ct = co->data;
- struct items * currItem;
- struct items * firstItem;
-
- if (!item)
- return 1;
-
- switch(sense) {
- case NEWT_FLAGS_RESET:
- item->selected = 0;
- break;
- case NEWT_FLAGS_SET:
- item->selected = 1;
- break;
- case NEWT_FLAGS_TOGGLE:
- if (item->branch)
- item->selected = !item->selected;
- else {
- item->selected++;
- if (item->selected==strlen(ct->seq))
- item->selected = 0;
- }
- break;
- }
-
- if (item->branch) {
- currItem = *ct->currItem;
- firstItem = *ct->firstItem;
-
- buildFlatList(co);
-
- ct->currItem = ct->flatList;
- while (*ct->currItem != currItem) ct->currItem++;
-
- ct->firstItem = ct->flatList;
- if (ct->flatCount > co->height) {
- struct items ** last = ct->flatList + ct->flatCount - co->height;
- while (*ct->firstItem != firstItem && ct->firstItem != last)
- ct->firstItem++;
- }
- }
-
- return 0;
-}
-
-static void ctSetItems(struct items *item, int selected)
-{
- for (; item; item = item->next) {
- if (!item->branch)
- item->selected = selected;
- else
- ctSetItems(item->branch, selected);
- }
-}
-
-static void ctDraw(newtComponent co) {
- struct CheckboxTree * ct = co->data;
- struct items ** item;
- int i, j;
- char * spaces = NULL;
- int currRow = -1;
-
- if (!co->isMapped) return ;
-
- if (!ct->firstItem) {
- buildFlatList(co);
- ct->firstItem = ct->currItem = ct->flatList;
- }
-
- item = ct->firstItem;
-
- i = 0;
- while (*item && i < co->height) {
- newtGotorc(co->top + i, co->left);
- if (*item == *ct->currItem) {
- SLsmg_set_color(NEWT_COLORSET_ACTLISTBOX);
- currRow = co->top + i;
- } else
- SLsmg_set_color(NEWT_COLORSET_LISTBOX);
-
- for (j = 0; j < (*item)->depth; j++)
- SLsmg_write_string(" ");
-
- if ((*item)->branch) {
- if ((*item)->selected)
- SLsmg_write_string("<-> ");
- else
- SLsmg_write_string("<+> ");
- } else {
- char tmp[5];
- snprintf(tmp,5,"[%c] ",ct->seq[(*item)->selected]);
- SLsmg_write_string(tmp);
- }
-
- SLsmg_write_nstring((*item)->text, co->width - 4 -
- (3 * (*item)->depth));
- item++;
- i++;
- }
-
- /* There could be empty lines left (i.e. if the user closes an expanded
- list which is the last thing in the tree, and whose elements are
- displayed at the bottom of the screen */
- if (i < co->height) {
- spaces = alloca(co->width);
- memset(spaces, ' ', co->width);
- SLsmg_set_color(NEWT_COLORSET_LISTBOX);
- }
- while (i < co->height) {
- newtGotorc(co->top + i, co->left);
- SLsmg_write_nstring(spaces, co->width);
- i++;
- }
-
- if(ct->sb) {
- newtScrollbarSet(ct->sb, ct->currItem - ct->flatList,
- ct->flatCount - 1);
- ct->sb->ops->draw(ct->sb);
- }
-
- newtGotorc(currRow, co->left + 1);
-}
-
-static void ctDestroy(newtComponent co) {
- struct CheckboxTree * ct = co->data;
- struct items * item, * nextitem;
-
- nextitem = item = ct->itemlist;
-
- while (item != NULL) {
- nextitem = item->next;
- free(item->text);
- free(item);
- item = nextitem;
- }
-
- free(ct->seq);
- free(ct);
- free(co);
-}
-
-struct eventResult ctEvent(newtComponent co, struct event ev) {
- struct CheckboxTree * ct = co->data;
- struct eventResult er;
- struct items ** listEnd, ** lastItem;
- int key, selnum = 1;
-
- er.result = ER_IGNORED;
-
- if(ev.when == EV_EARLY || ev.when == EV_LATE) {
- return er;
- }
-
- switch(ev.event) {
- case EV_KEYPRESS:
- key = ev.u.key;
- if (key == (char) key && key != ' ') {
- for (selnum = 0; ct->seq[selnum]; selnum++)
- if (key == ct->seq[selnum])
- break;
- if (!ct->seq[selnum])
- switch (key) {
- case '-': selnum = 0; break;
- case '+':
- case '*': selnum = 1; break;
- }
- if (ct->seq[selnum])
- key = '*';
- }
- switch(key) {
- case ' ':
- case NEWT_KEY_ENTER:
- ctSetItem(co, *ct->currItem, NEWT_FLAGS_TOGGLE);
- er.result = ER_SWALLOWED;
- if (!(*ct->currItem)->branch || (*ct->currItem)->selected)
- key = NEWT_KEY_DOWN;
- else
- key = '*';
- break;
- case '*':
- if ((*ct->currItem)->branch) {
- ctSetItems((*ct->currItem)->branch, selnum);
- if (!(*ct->currItem)->selected)
- key = NEWT_KEY_DOWN;
- } else {
- (*ct->currItem)->selected = selnum;
- key = NEWT_KEY_DOWN;
- }
- er.result = ER_SWALLOWED;
- break;
- }
- switch (key) {
- case '*':
- ctDraw(co);
- if(co->callback) co->callback(co, co->callbackData);
- return er;
- case NEWT_KEY_HOME:
- ct->currItem = ct->flatList;
- ct->firstItem = ct->flatList;
- ctDraw(co);
- if(co->callback) co->callback(co, co->callbackData);
- er.result = ER_SWALLOWED;
- return er;
- case NEWT_KEY_END:
- ct->currItem = ct->flatList + ct->flatCount - 1;
- if (ct->flatCount <= co->height)
- ct->firstItem = ct->flatList;
- else
- ct->firstItem = ct->flatList + ct->flatCount - co->height;
- ctDraw(co);
- if(co->callback) co->callback(co, co->callbackData);
- er.result = ER_SWALLOWED;
- return er;
- case NEWT_KEY_DOWN:
- if (ev.u.key != NEWT_KEY_DOWN) {
- if(co->callback) co->callback(co, co->callbackData);
- if (strlen(ct->seq) != 2) {
- ctDraw(co);
- return er;
- }
- }
- if ((ct->currItem - ct->flatList + 1) < ct->flatCount) {
- ct->currItem++;
-
- if (ct->currItem - ct->firstItem >= co->height)
- ct->firstItem++;
-
- ctDraw(co);
- } else if (ev.u.key != NEWT_KEY_DOWN)
- ctDraw(co);
- if(co->callback) co->callback(co, co->callbackData);
- er.result = ER_SWALLOWED;
- return er;
- case NEWT_KEY_UP:
- if (ct->currItem != ct->flatList) {
- ct->currItem--;
-
- if (ct->currItem < ct->firstItem)
- ct->firstItem = ct->currItem;
-
- ctDraw(co);
- }
- er.result = ER_SWALLOWED;
- if(co->callback) co->callback(co, co->callbackData);
- return er;
- case NEWT_KEY_PGUP:
- if (ct->firstItem - co->height < ct->flatList) {
- ct->firstItem = ct->currItem = ct->flatList;
- } else {
- ct->currItem -= co->height;
- ct->firstItem -= co->height;
- }
-
- ctDraw(co);
- if(co->callback) co->callback(co, co->callbackData);
- er.result = ER_SWALLOWED;
- return er;
- case NEWT_KEY_PGDN:
- listEnd = ct->flatList + ct->flatCount - 1;
- lastItem = ct->firstItem + co->height - 1;
-
- if (lastItem + co->height > listEnd) {
- ct->firstItem = listEnd - co->height + 1;
- ct->currItem = listEnd;
- } else {
- ct->currItem += co->height;
- ct->firstItem += co->height;
- }
-
- ctDraw(co);
- if(co->callback) co->callback(co, co->callbackData);
- er.result = ER_SWALLOWED;
- return er;
- }
- break;
-
- case EV_FOCUS:
- ctDraw(co);
- er.result = ER_SWALLOWED;
- break;
-
- case EV_UNFOCUS:
- ctDraw(co);
- er.result = ER_SWALLOWED;
- break;
- default:
- break;
- }
-
- return er;
-}
-
-const void * newtCheckboxTreeGetCurrent(newtComponent co) {
- struct CheckboxTree * ct = co->data;
-
- if (!ct->currItem) return NULL;
- return (*ct->currItem)->data;
-}
-
-void newtCheckboxTreeSetEntry(newtComponent co, const void * data, const char * text)
-{
- struct CheckboxTree * ct;
- struct items * item;
- int i;
-
- if (!co) return;
- ct = co->data;
- item = findItem(ct->itemlist, data);
- if (!item) return;
-
- free(item->text);
- item->text = strdup(text);
-
- i = 4 + (3 * item->depth);
-
- if ((strlen(text) + i + ct->pad) > (size_t)co->width) {
- co->width = strlen(text) + i + ct->pad;
- }
-
- ctDraw(co);
-}
-
-char newtCheckboxTreeGetEntryValue(newtComponent co, const void * data)
-{
- struct CheckboxTree * ct;
- struct items * item;
-
- if (!co) return -1;
- ct = co->data;
- item = findItem(ct->itemlist, data);
- if (!item) return -1;
- if (item->branch)
- return item->selected ? NEWT_CHECKBOXTREE_EXPANDED : NEWT_CHECKBOXTREE_COLLAPSED;
- else
- return ct->seq[item->selected];
-}
-
-void newtCheckboxTreeSetEntryValue(newtComponent co, const void * data, char value)
-{
- struct CheckboxTree * ct;
- struct items * item;
- int i;
-
- if (!co) return;
- ct = co->data;
- item = findItem(ct->itemlist, data);
- if (!item || item->branch) return;
-
- for(i = 0; ct->seq[i]; i++)
- if (value == ct->seq[i])
- break;
-
- if (!ct->seq[i]) return;
- item->selected = i;
-
- ctDraw(co);
-}
-
diff --git a/mdk-stage1/newt/entry.c b/mdk-stage1/newt/entry.c
deleted file mode 100644
index 0ee449cf9..000000000
--- a/mdk-stage1/newt/entry.c
+++ /dev/null
@@ -1,378 +0,0 @@
-#include <ctype.h>
-#include <slang.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "newt.h"
-#include "newt_pr.h"
-
-struct entry {
- int flags;
- char * buf;
- char ** resultPtr;
- int bufAlloced;
- int bufUsed; /* amount of the buffer that's been used */
- int cursorPosition; /* cursor *in the string* on on screen */
- int firstChar; /* first character position being shown */
- newtEntryFilter filter;
- void * filterData;
-};
-
-static void entryDraw(newtComponent co);
-static void entryDestroy(newtComponent co);
-static struct eventResult entryEvent(newtComponent co,
- struct event ev);
-
-static struct eventResult entryHandleKey(newtComponent co, int key);
-
-static struct componentOps entryOps = {
- entryDraw,
- entryEvent,
- entryDestroy,
- newtDefaultPlaceHandler,
- newtDefaultMappedHandler,
-} ;
-
-void newtEntrySet(newtComponent co, const char * value, int cursorAtEnd) {
- struct entry * en = co->data;
-
- if ((strlen(value) + 1) > (unsigned int)en->bufAlloced) {
- free(en->buf);
- en->bufAlloced = strlen(value) + 1;
- en->buf = malloc(en->bufAlloced);
- if (en->resultPtr) *en->resultPtr = en->buf;
- }
- memset(en->buf, 0, en->bufAlloced); /* clear the buffer */
- strcpy(en->buf, value);
- en->bufUsed = strlen(value);
- en->firstChar = 0;
- if (cursorAtEnd)
- en->cursorPosition = en->bufUsed;
- else
- en->cursorPosition = 0;
-
- entryDraw(co);
-} ;
-
-newtComponent newtEntry(int left, int top, const char * initialValue, int width,
- char ** resultPtr, int flags) {
- newtComponent co;
- struct entry * en;
-
- co = malloc(sizeof(*co));
- en = malloc(sizeof(struct entry));
- co->data = en;
-
- co->top = top;
- co->left = left;
- co->height = 1;
- co->width = width;
- co->isMapped = 0;
- co->callback = NULL;
-
- co->ops = &entryOps;
-
- en->flags = flags;
- en->cursorPosition = 0;
- en->firstChar = 0;
- en->bufUsed = 0;
- en->bufAlloced = width + 1;
- en->filter = NULL;
-
- if (!(en->flags & NEWT_FLAG_DISABLED))
- co->takesFocus = 1;
- else
- co->takesFocus = 0;
-
- if (initialValue && strlen(initialValue) > (unsigned int)width) {
- en->bufAlloced = strlen(initialValue) + 1;
- }
- en->buf = malloc(en->bufAlloced);
- en->resultPtr = resultPtr;
- if (en->resultPtr) *en->resultPtr = en->buf;
-
- memset(en->buf, 0, en->bufAlloced);
- if (initialValue) {
- strcpy(en->buf, initialValue);
- en->bufUsed = strlen(initialValue);
- en->cursorPosition = en->bufUsed;
- } else {
- *en->buf = '\0';
- en->bufUsed = 0;
- en->cursorPosition = 0;
- }
-
- return co;
-}
-
-static void entryDraw(newtComponent co) {
- struct entry * en = co->data;
- int i;
- char * chptr;
- int len;
-
- if (!co->isMapped) return;
-
- if (en->flags & NEWT_FLAG_DISABLED)
- SLsmg_set_color(NEWT_COLORSET_DISENTRY);
- else
- SLsmg_set_color(NEWT_COLORSET_ENTRY);
-
- if (en->flags & NEWT_FLAG_HIDDEN) {
- newtGotorc(co->top, co->left);
- for (i = 0; i < co->width; i++)
- SLsmg_write_char('_');
- newtGotorc(co->top, co->left);
-
- return;
- }
-
- newtGotorc(co->top, co->left);
-
- if (en->cursorPosition < en->firstChar) {
- /* scroll to the left */
- en->firstChar = en->cursorPosition;
- } else if ((en->firstChar + co->width) <= en->cursorPosition) {
- /* scroll to the right */
- en->firstChar = en->cursorPosition - co->width + 1;
- }
-
- chptr = en->buf + en->firstChar;
-
- if (en->flags & NEWT_FLAG_PASSWORD) {
- char *tmpptr, *p;
-
- tmpptr = alloca(strlen(chptr+2));
- strcpy(tmpptr, chptr);
- for (p = tmpptr; *p; p++)
- *p = '*';
- chptr = tmpptr;
- }
-
- len = strlen(chptr);
-
- if (len <= co->width) {
- i = len;
- SLsmg_write_string(chptr);
- while (i < co->width) {
- SLsmg_write_char('_');
- i++;
- }
- } else {
- SLsmg_write_nstring(chptr, co->width);
- }
-
- if (en->flags & NEWT_FLAG_HIDDEN)
- newtGotorc(co->top, co->left);
- else
- newtGotorc(co->top, co->left + (en->cursorPosition - en->firstChar));
-}
-
-void newtEntrySetFlags(newtComponent co, int flags, enum newtFlagsSense sense) {
- struct entry * en = co->data;
- int row, col;
-
- en->flags = newtSetFlags(en->flags, flags, sense);
-
- if (!(en->flags & NEWT_FLAG_DISABLED))
- co->takesFocus = 1;
- else
- co->takesFocus = 0;
-
- newtGetrc(&row, &col);
- entryDraw(co);
- newtGotorc(row, col);
-}
-
-static void entryDestroy(newtComponent co) {
- struct entry * en = co->data;
-
- free(en->buf);
- free(en);
- free(co);
-}
-
-static struct eventResult entryEvent(newtComponent co,
- struct event ev) {
- struct entry * en = co->data;
- struct eventResult er;
- int ch;
- er.result = ER_IGNORED;
- er.u.focus = NULL;
-
- if (ev.when == EV_NORMAL) {
- switch (ev.event) {
- case EV_FOCUS:
- newtCursorOn();
- if (en->flags & NEWT_FLAG_HIDDEN)
- newtGotorc(co->top, co->left);
- else
- newtGotorc(co->top, co->left +
- (en->cursorPosition - en->firstChar));
- er.result = ER_SWALLOWED;
- break;
-
- case EV_UNFOCUS:
- newtCursorOff();
- newtGotorc(0, 0);
- er.result = ER_SWALLOWED;
- if (co->callback)
- co->callback(co, co->callbackData);
- break;
-
- case EV_KEYPRESS:
- ch = ev.u.key;
- if (en->filter)
- ch = en->filter(co, en->filterData, ch, en->cursorPosition);
- if (ch) er = entryHandleKey(co, ch);
- break;
-
- case EV_MOUSE:
- if ((ev.u.mouse.type == MOUSE_BUTTON_DOWN) &&
- (en->flags ^ NEWT_FLAG_HIDDEN)) {
- if (strlen(en->buf) >= (size_t) (ev.u.mouse.x - co->left)) {
- en->cursorPosition = ev.u.mouse.x - co->left;
- newtGotorc(co->top,
- co->left +(en->cursorPosition - en->firstChar));
- } else {
- en->cursorPosition = strlen(en->buf);
- newtGotorc(co->top,
- co->left +(en->cursorPosition - en->firstChar));
- }
- }
- break;
- }
- } else
- er.result = ER_IGNORED;
-
- return er;
-}
-
-static struct eventResult entryHandleKey(newtComponent co, int key) {
- struct entry * en = co->data;
- struct eventResult er;
- char * chptr, * insPoint;
-
- er.result = ER_SWALLOWED;
- switch (key) {
- case '\r': /* Return */
- if (en->flags & NEWT_FLAG_RETURNEXIT) {
- er.result = ER_EXITFORM;
- } else {
- er.result = ER_NEXTCOMP;
- }
- break;
-
- case '\001': /* ^A */
- case NEWT_KEY_HOME:
- en->cursorPosition = 0;
- break;
-
- case '\005': /* ^E */
- case NEWT_KEY_END:
- en->cursorPosition = en->bufUsed;
- break;
-
- case '\013': /* ^K */
- en->bufUsed = en->cursorPosition;
- memset(en->buf + en->bufUsed, 0, en->bufAlloced - en->bufUsed);
- break;
-
- case '\002': /* ^B */
- case NEWT_KEY_LEFT:
- if (en->cursorPosition)
- en->cursorPosition--;
- break;
-
- case '\004':
- case NEWT_KEY_DELETE:
- chptr = en->buf + en->cursorPosition;
- if (*chptr) {
- chptr++;
- while (*chptr) {
- *(chptr - 1) = *chptr;
- chptr++;
- }
- *(chptr - 1) = '\0';
- en->bufUsed--;
- }
- break;
-
- case NEWT_KEY_BKSPC:
- if (en->cursorPosition) {
- /* if this isn't true, there's nothing to erase */
- chptr = en->buf + en->cursorPosition;
- en->bufUsed--;
- en->cursorPosition--;
- while (*chptr) {
- *(chptr - 1) = *chptr;
- chptr++;
- }
- *(chptr - 1) = '\0';
- }
- break;
-
- case '\006': /* ^B */
- case NEWT_KEY_RIGHT:
- if (en->cursorPosition < en->bufUsed)
- en->cursorPosition++;
- break;
-
- default:
- if ((key >= 0x20 && key <= 0x7e) || (key >= 0xa0 && key <= 0xff)) {
- if (!(en->flags & NEWT_FLAG_SCROLL) && en->bufUsed >= co->width) {
- SLtt_beep();
- break;
- }
-
- if ((en->bufUsed + 1) == en->bufAlloced) {
- en->bufAlloced += 20;
- en->buf = realloc(en->buf, en->bufAlloced);
- if (en->resultPtr) *en->resultPtr = en->buf;
- memset(en->buf + en->bufUsed + 1, 0, 20);
- }
-
- if (en->cursorPosition == en->bufUsed) {
- en->bufUsed++;
- } else {
- /* insert the new character */
-
- /* chptr is the last character in the string */
- chptr = (en->buf + en->bufUsed) - 1;
- if ((en->bufUsed + 1) == en->bufAlloced) {
- /* this string fills the buffer, so clip it */
- chptr--;
- } else
- en->bufUsed++;
-
- insPoint = en->buf + en->cursorPosition;
-
- while (chptr >= insPoint) {
- *(chptr + 1) = *chptr;
- chptr--;
- }
-
- }
-
- en->buf[en->cursorPosition++] = key;
- } else {
- er.result = ER_IGNORED;
- }
- }
-
- entryDraw(co);
-
- return er;
-}
-
-char * newtEntryGetValue(newtComponent co) {
- struct entry * en = co->data;
-
- return en->buf;
-}
-
-void newtEntrySetFilter(newtComponent co, newtEntryFilter filter, void * data) {
- struct entry * en = co->data;
- en->filter = filter;
- en->filterData = data;
-}
diff --git a/mdk-stage1/newt/form.c b/mdk-stage1/newt/form.c
deleted file mode 100644
index ad7520e95..000000000
--- a/mdk-stage1/newt/form.c
+++ /dev/null
@@ -1,713 +0,0 @@
-#include <unistd.h>
-#include <slang.h>
-#include <stdarg.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/time.h>
-#include <sys/types.h>
-
-#include "newt.h"
-#include "newt_pr.h"
-
-
-/****************************************************************************
- These forms handle vertical scrolling of components with a height of 1
-
- Horizontal scrolling won't work, and scrolling large widgets will fail
- miserably. It shouldn't be too hard to fix either of those if anyone
- cares to. I only use scrolling for listboxes and text boxes though so
- I didn't bother.
-*****************************************************************************/
-
-struct element {
- int top, left; /* Actual, not virtual. These are translated */
- newtComponent co; /* into actual through vertOffset */
-};
-
-struct fdInfo {
- int fd;
- int flags;
-};
-
-struct form {
- int numCompsAlloced;
- struct element * elements;
- int numComps;
- int currComp;
- int fixedHeight;
- int flags;
- int vertOffset;
- newtComponent vertBar, exitComp;
- const char * help;
- int numRows;
- int * hotKeys;
- int numHotKeys;
- int background;
- int beenSet;
- int numFds;
- struct fdInfo * fds;
- int maxFd;
- int timer; /* in milliseconds */
- struct timeval lastTimeout;
- void * helpTag;
- newtCallback helpCb;
-};
-
-static void gotoComponent(struct form * form, int newComp);
-static struct eventResult formEvent(newtComponent co, struct event ev);
-static struct eventResult sendEvent(newtComponent comp, struct event ev);
-static void formPlace(newtComponent co, int left, int top);
-
-/* Global, ick */
-static newtCallback helpCallback;
-
-/* this isn't static as grid.c tests against it to find forms */
-struct componentOps formOps = {
- newtDrawForm,
- formEvent,
- newtFormDestroy,
- formPlace,
- newtDefaultMappedHandler,
-} ;
-
-static inline int componentFits(newtComponent co, int compNum) {
- struct form * form = co->data;
- struct element * el = form->elements + compNum;
-
- if ((co->top + form->vertOffset) > el->top) return 0;
- if ((co->top + form->vertOffset + co->height) <
- (el->top + el->co->height)) return 0;
-
- return 1;
-}
-
-newtComponent newtForm(newtComponent vertBar, void * help, int flags) {
- newtComponent co;
- struct form * form;
-
- co = malloc(sizeof(*co));
- form = malloc(sizeof(*form));
- co->data = form;
- co->width = 0;
- co->height = 0;
- co->top = -1;
- co->left = -1;
- co->isMapped = 0;
-
- co->takesFocus = 0; /* we may have 0 components */
- co->ops = &formOps;
-
- form->help = help;
- form->flags = flags;
- form->numCompsAlloced = 5;
- form->numComps = 0;
- form->currComp = -1;
- form->vertOffset = 0;
- form->fixedHeight = 0;
- form->numRows = 0;
- form->numFds = 0;
- form->maxFd = 0;
- form->fds = NULL;
- form->beenSet = 0;
- form->elements = malloc(sizeof(*(form->elements)) * form->numCompsAlloced);
-
- form->background = COLORSET_WINDOW;
- form->hotKeys = malloc(sizeof(int));
- form->numHotKeys = 0;
- form->timer = 0;
- form->lastTimeout.tv_sec = form->lastTimeout.tv_usec = 0;
- if (!(form->flags & NEWT_FLAG_NOF12)) {
- newtFormAddHotKey(co, NEWT_KEY_F12);
- }
-
- if (vertBar)
- form->vertBar = vertBar;
- else
- form->vertBar = NULL;
-
- form->helpTag = help;
- form->helpCb = helpCallback;
-
- return co;
-}
-
-newtComponent newtFormGetCurrent(newtComponent co) {
- struct form * form = co->data;
-
- return form->elements[form->currComp].co;
-}
-
-void newtFormSetCurrent(newtComponent co, newtComponent subco) {
- struct form * form = co->data;
- int i, new;
-
- for (i = 0; i < form->numComps; i++) {
- if (form->elements[i].co == subco) break;
- }
-
- if (form->elements[i].co != subco) return;
- new = i;
-
- if (co->isMapped && !componentFits(co, new)) {
- gotoComponent(form, -1);
- form->vertOffset = form->elements[new].top - co->top - 1;
- if (form->vertOffset > (form->numRows - co->height))
- form->vertOffset = form->numRows - co->height;
- }
-
- gotoComponent(form, new);
-}
-
-void newtFormSetTimer(newtComponent co, int millisecs) {
- struct form * form = co->data;
-
- form->timer = millisecs;
- form->lastTimeout.tv_usec = 0;
- form->lastTimeout.tv_sec = 0;
-}
-
-void newtFormSetHeight(newtComponent co, int height) {
- struct form * form = co->data;
-
- form->fixedHeight = 1;
- co->height = height;
-}
-
-void newtFormSetWidth(newtComponent co, int width) {
- co->width = width;
-}
-
-void newtFormAddComponent(newtComponent co, newtComponent newco) {
- struct form * form = co->data;
-
- co->takesFocus = 1;
-
- if (form->numCompsAlloced == form->numComps) {
- form->numCompsAlloced += 5;
- form->elements = realloc(form->elements,
- sizeof(*(form->elements)) * form->numCompsAlloced);
- }
-
- /* we grab real values for these a bit later */
- form->elements[form->numComps].left = -2;
- form->elements[form->numComps].top = -2;
- form->elements[form->numComps].co = newco;
-
- if (newco->takesFocus && form->currComp == -1)
- form->currComp = form->numComps;
-
- form->numComps++;
-}
-
-void newtFormAddComponents(newtComponent co, ...) {
- va_list ap;
- newtComponent subco;
-
- va_start(ap, co);
-
- while ((subco = va_arg(ap, newtComponent)))
- newtFormAddComponent(co, subco);
-
- va_end(ap);
-}
-
-static void formPlace(newtComponent co, int left, int top) {
- struct form * form = co->data;
- int vertDelta, horizDelta;
- struct element * el;
- int i;
-
- newtFormSetSize(co);
-
- vertDelta = top - co->top;
- horizDelta = left - co->left;
- co->top = top;
- co->left = left;
-
- for (i = 0, el = form->elements; i < form->numComps; i++, el++) {
- el->co->top += vertDelta;
- el->top += vertDelta;
- el->co->left += horizDelta;
- el->left += horizDelta;
- }
-}
-
-void newtDrawForm(newtComponent co) {
- struct form * form = co->data;
- struct element * el;
- int i;
-
- newtFormSetSize(co);
-
- SLsmg_set_color(form->background);
- newtClearBox(co->left, co->top, co->width, co->height);
- for (i = 0, el = form->elements; i < form->numComps; i++, el++) {
- /* the scrollbar *always* fits somewhere */
- if (el->co == form->vertBar) {
- el->co->ops->mapped(el->co, 1);
- el->co->ops->draw(el->co);
- } else {
- /* only draw it if it'll fit on the screen vertically */
- if (componentFits(co, i)) {
- el->co->top = el->top - form->vertOffset;
- el->co->ops->mapped(el->co, 1);
- el->co->ops->draw(el->co);
- } else {
- el->co->ops->mapped(el->co, 0);
- }
- }
- }
-
- if (form->vertBar)
- newtScrollbarSet(form->vertBar, form->vertOffset,
- form->numRows - co->height);
-}
-
-static struct eventResult formEvent(newtComponent co, struct event ev) {
- struct form * form = co->data;
- newtComponent subco = form->elements[form->currComp].co;
- int new, wrap = 0;
- struct eventResult er;
- int dir = 0, page = 0;
- int i, num, found;
- struct element * el;
-
- er.result = ER_IGNORED;
- if (!form->numComps) return er;
-
- subco = form->elements[form->currComp].co;
-
- switch (ev.when) {
- case EV_EARLY:
- if (ev.event == EV_KEYPRESS) {
- if (ev.u.key == NEWT_KEY_TAB) {
- er.result = ER_SWALLOWED;
- dir = 1;
- wrap = 1;
- } else if (ev.u.key == NEWT_KEY_UNTAB) {
- er.result = ER_SWALLOWED;
- dir = -1;
- wrap = 1;
- }
- }
-
- if (form->numComps) {
- i = form->currComp;
- num = 0;
- while (er.result == ER_IGNORED && num != form->numComps ) {
- er = form->elements[i].co->ops->event(form->elements[i].co, ev);
-
- num++;
- i++;
- if (i == form->numComps) i = 0;
- }
- }
-
- break;
-
- case EV_NORMAL:
- if (ev.event == EV_MOUSE) {
- found = 0;
- for (i = 0, el = form->elements; i < form->numComps; i++, el++) {
- if ((el->co->top <= ev.u.mouse.y) &&
- (el->co->top + el->co->height > ev.u.mouse.y) &&
- (el->co->left <= ev.u.mouse.x) &&
- (el->co->left + el->co->width > ev.u.mouse.x)) {
- found = 1;
- if (el->co->takesFocus) {
- gotoComponent(form, i);
- subco = form->elements[form->currComp].co;
- }
- }
- /* If we did not find a co to send this event to, we
- should just swallow the event here. */
- }
- if (!found) {
- er.result = ER_SWALLOWED;
-
- return er;
- }
- }
- er = subco->ops->event(subco, ev);
- switch (er.result) {
- case ER_NEXTCOMP:
- er.result = ER_SWALLOWED;
- dir = 1;
- break;
-
- case ER_EXITFORM:
- form->exitComp = subco;
- break;
-
- default:
- break;
- }
- break;
-
- case EV_LATE:
- er = subco->ops->event(subco, ev);
-
- if (er.result == ER_IGNORED) {
- switch (ev.u.key) {
- case NEWT_KEY_UP:
- case NEWT_KEY_LEFT:
- case NEWT_KEY_BKSPC:
- er.result = ER_SWALLOWED;
- dir = -1;
- break;
-
- case NEWT_KEY_DOWN:
- case NEWT_KEY_RIGHT:
- er.result = ER_SWALLOWED;
- dir = 1;
- break;
-
- case NEWT_KEY_PGUP:
- er.result = ER_SWALLOWED;
- dir = -1;
- page = 1;
- break;
-
- case NEWT_KEY_PGDN:
- er.result = ER_SWALLOWED;
- dir = 1;
- page = 1;
- break;
- }
- }
- }
-
- if (dir) {
- new = form->currComp;
-
- if (page) {
- new += dir * co->height;
- if (new < 0)
- new = 0;
- else if (new >= form->numComps)
- new = (form->numComps - 1);
-
- while (!form->elements[new].co->takesFocus)
- new = new - dir;
- } else {
- do {
- new += dir;
-
- if (wrap) {
- if (new < 0)
- new = form->numComps - 1;
- else if (new >= form->numComps)
- new = 0;
- } else if (new < 0 || new >= form->numComps)
- return er;
- } while (!form->elements[new].co->takesFocus);
- }
-
- /* make sure this component is visible */
- if (!componentFits(co, new)) {
- gotoComponent(form, -1);
-
- if (dir < 0) {
- /* make the new component the first one */
- form->vertOffset = form->elements[new].top - co->top;
- } else {
- /* make the new component the last one */
- form->vertOffset = (form->elements[new].top +
- form->elements[new].co->height) -
- (co->top + co->height);
- }
-
- if (form->vertOffset < 0) form->vertOffset = 0;
- if (form->vertOffset > (form->numRows - co->height))
- form->vertOffset = form->numRows - co->height;
-
- newtDrawForm(co);
- }
-
- gotoComponent(form, new);
- er.result = ER_SWALLOWED;
- }
-
- return er;
-}
-
-/* this also destroys all of the components on the form */
-void newtFormDestroy(newtComponent co) {
- newtComponent subco;
- struct form * form = co->data;
- int i;
-
- /* first, destroy all of the components */
- for (i = 0; i < form->numComps; i++) {
- subco = form->elements[i].co;
- if (subco->ops->destroy) {
- subco->ops->destroy(subco);
- } else {
- if (subco->data) free(subco->data);
- free(subco);
- }
- }
-
- if (form->hotKeys) free(form->hotKeys);
-
- free(form->elements);
- free(form);
- free(co);
-}
-
-newtComponent newtRunForm(newtComponent co) {
- struct newtExitStruct es;
-
- newtFormRun(co, &es);
- if (es.reason == NEWT_EXIT_HOTKEY) {
- if (es.u.key == NEWT_KEY_F12) {
- es.reason = NEWT_EXIT_COMPONENT;
- es.u.co = co;
- } else {
- return NULL;
- }
- }
-
- return es.u.co;
-}
-
-void newtFormAddHotKey(newtComponent co, int key) {
- struct form * form = co->data;
-
- form->numHotKeys++;
- form->hotKeys = realloc(form->hotKeys, sizeof(int) * form->numHotKeys);
- form->hotKeys[form->numHotKeys - 1] = key;
-}
-
-void newtFormSetSize(newtComponent co) {
- struct form * form = co->data;
- int delta, i;
- struct element * el;
-
- if (form->beenSet) return;
-
- form->beenSet = 1;
-
- if (!form->numComps) return;
-
- co->width = 0;
- if (!form->fixedHeight) co->height = 0;
-
- co->top = form->elements[0].co->top;
- co->left = form->elements[0].co->left;
- for (i = 0, el = form->elements; i < form->numComps; i++, el++) {
- if (el->co->ops == &formOps)
- newtFormSetSize(el->co);
-
- el->left = el->co->left;
- el->top = el->co->top;
-
- if (co->left > el->co->left) {
- delta = co->left - el->co->left;
- co->left -= delta;
- co->width += delta;
- }
-
- if (co->top > el->co->top) {
- delta = co->top - el->co->top;
- co->top -= delta;
- if (!form->fixedHeight)
- co->height += delta;
- }
-
- if ((co->left + co->width) < (el->co->left + el->co->width))
- co->width = (el->co->left + el->co->width) - co->left;
-
- if (!form->fixedHeight) {
- if ((co->top + co->height) < (el->co->top + el->co->height))
- co->height = (el->co->top + el->co->height) - co->top;
- }
-
- if ((el->co->top + el->co->height - co->top) > form->numRows) {
- form->numRows = el->co->top + el->co->height - co->top;
- }
- }
-}
-
-void newtFormRun(newtComponent co, struct newtExitStruct * es) {
- struct form * form = co->data;
- struct event ev;
- struct eventResult er;
- int key, i, max;
- int done = 0;
- fd_set readSet, writeSet;
- struct timeval nextTimeout, now, timeout;
-
- newtFormSetSize(co);
- /* draw all of the components */
- newtDrawForm(co);
-
- if (form->currComp == -1) {
- gotoComponent(form, 0);
- } else
- gotoComponent(form, form->currComp);
-
- while (!done) {
- newtRefresh();
-
- FD_ZERO(&readSet);
- FD_ZERO(&writeSet);
- FD_SET(0, &readSet);
- max = form->maxFd;
-
- for (i = 0; i < form->numFds; i++) {
- if (form->fds[i].flags & NEWT_FD_READ)
- FD_SET(form->fds[i].fd, &readSet);
- if (form->fds[i].flags & NEWT_FD_WRITE)
- FD_SET(form->fds[i].fd, &writeSet);
- }
-
- if (form->timer) {
- /* Calculate when we next need to return with a timeout. Do
- this inside the loop in case a callback resets the timer. */
- if (!form->lastTimeout.tv_sec && !form->lastTimeout.tv_usec)
- gettimeofday(&form->lastTimeout, NULL);
-
- nextTimeout.tv_sec = form->lastTimeout.tv_sec +
- (form->timer / 1000);
- nextTimeout.tv_usec = form->lastTimeout.tv_usec +
- (form->timer % 1000) * 1000;
-
- gettimeofday(&now, 0);
-
- if (now.tv_sec > nextTimeout.tv_sec) {
- timeout.tv_sec = timeout.tv_usec = 0;
- } else if (now.tv_sec == nextTimeout.tv_sec) {
- timeout.tv_sec = 0;
- if (now.tv_usec > nextTimeout.tv_usec)
- timeout.tv_usec = 0;
- else
- timeout.tv_usec = nextTimeout.tv_usec - now.tv_usec;
- } else if (now.tv_sec < nextTimeout.tv_sec) {
- timeout.tv_sec = nextTimeout.tv_sec - now.tv_sec;
- if (now.tv_usec > nextTimeout.tv_usec)
- timeout.tv_sec--,
- timeout.tv_usec = nextTimeout.tv_usec + 1000000 -
- now.tv_usec;
- else
- timeout.tv_usec = nextTimeout.tv_usec - now.tv_usec;
- }
- } else {
- timeout.tv_sec = timeout.tv_usec = 0;
- }
-
- i = select(max + 1, &readSet, &writeSet, NULL,
- form->timer ? &timeout : NULL);
- if (i < 0) continue; /* ?? What should we do here? */
-
- if (i == 0) {
- done = 1;
- es->reason = NEWT_EXIT_TIMER;
- gettimeofday(&form->lastTimeout, NULL);
- } else
- {
- if (FD_ISSET(0, &readSet)) {
-
- key = newtGetKey();
-
- if (key == NEWT_KEY_RESIZE) {
- /* newtResizeScreen(1); */
- continue;
- }
-
- for (i = 0; i < form->numHotKeys; i++) {
- if (form->hotKeys[i] == key) {
- es->reason = NEWT_EXIT_HOTKEY;
- es->u.key = key;
- done = 1;
- break;
- }
- }
-
- if (key == NEWT_KEY_F1 && form->helpTag && form->helpCb)
- form->helpCb(co, form->helpTag);
-
- if (!done) {
- ev.event = EV_KEYPRESS;
- ev.u.key = key;
-
- er = sendEvent(co, ev);
-
- if (er.result == ER_EXITFORM) {
- done = 1;
- es->reason = NEWT_EXIT_COMPONENT;
- es->u.co = form->exitComp;
- }
- }
- } else {
- es->reason = NEWT_EXIT_FDREADY;
- done = 1;
- }
- }
- }
- newtRefresh();
-}
-
-static struct eventResult sendEvent(newtComponent co, struct event ev) {
- struct eventResult er;
-
- ev.when = EV_EARLY;
- er = co->ops->event(co, ev);
-
- if (er.result == ER_IGNORED) {
- ev.when = EV_NORMAL;
- er = co->ops->event(co, ev);
- }
-
- if (er.result == ER_IGNORED) {
- ev.when = EV_LATE;
- er = co->ops->event(co, ev);
- }
-
- return er;
-}
-
-static void gotoComponent(struct form * form, int newComp) {
- struct event ev;
-
- if (form->currComp != -1) {
- ev.event = EV_UNFOCUS;
- sendEvent(form->elements[form->currComp].co, ev);
- }
-
- form->currComp = newComp;
-
- if (form->currComp != -1) {
- ev.event = EV_FOCUS;
- ev.when = EV_NORMAL;
- sendEvent(form->elements[form->currComp].co, ev);
- }
-}
-
-void newtComponentAddCallback(newtComponent co, newtCallback f, void * data) {
- co->callback = f;
- co->callbackData = data;
-}
-
-void newtComponentTakesFocus(newtComponent co, int val) {
- co->takesFocus = val;
-}
-
-void newtFormSetBackground(newtComponent co, int color) {
- struct form * form = co->data;
-
- form->background = color;
-}
-
-void newtFormWatchFd(newtComponent co, int fd, int fdFlags) {
- struct form * form = co->data;
-
- form->fds = realloc(form->fds, (form->numFds + 1) * sizeof(*form->fds));
- form->fds[form->numFds].fd = fd;
- form->fds[form->numFds++].flags = fdFlags;
- if (form->maxFd < fd) form->maxFd = fd;
-}
-
-void newtSetHelpCallback(newtCallback cb) {
- helpCallback = cb;
-}
diff --git a/mdk-stage1/newt/grid.c b/mdk-stage1/newt/grid.c
deleted file mode 100644
index 37d2b2e74..000000000
--- a/mdk-stage1/newt/grid.c
+++ /dev/null
@@ -1,389 +0,0 @@
-#include <alloca.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "newt.h"
-#include "newt_pr.h"
-
-struct gridField {
- enum newtGridElement type;
- union {
- newtGrid grid;
- newtComponent co;
- } u;
- int padLeft, padTop, padRight, padBottom;
- int anchor;
- int flags;
-};
-
-struct grid_s {
- int rows, cols;
- int width, height; /* totals, -1 means unknown */
- struct gridField ** fields;
-};
-
-/* this is a bit of a hack */
-extern struct componentOps formOps[];
-
-newtGrid newtCreateGrid(int cols, int rows) {
- newtGrid grid;
-
- grid = malloc(sizeof(*grid));
- grid->rows = rows;
- grid->cols = cols;
-
- grid->fields = malloc(sizeof(*grid->fields) * cols);
- while (cols--) {
- grid->fields[cols] = malloc(sizeof(**(grid->fields)) * rows);
- memset(grid->fields[cols], 0, sizeof(**(grid->fields)) * rows);
- }
-
- grid->width = grid->height = -1;
-
- return grid;
-}
-
-void newtGridSetField(newtGrid grid, int col, int row,
- enum newtGridElement type, void * val, int padLeft,
- int padTop, int padRight, int padBottom, int anchor,
- int flags) {
- struct gridField * field = &grid->fields[col][row];
-
- if (field->type == NEWT_GRID_SUBGRID)
- newtGridFree(field->u.grid, 1);
-
- field->type = type;
- field->u.co = (void *) val;
-
- field->padLeft = padLeft;
- field->padRight = padRight;
- field->padTop = padTop;
- field->padBottom = padBottom;
- field->anchor = anchor;
- field->flags = flags;
-
- grid->width = grid->height = -1;
-}
-
-static void distSpace(int extra, int items, int * list) {
- int all, some, i;
-
- all = extra / items;
- some = extra % items;
- for (i = 0; i < items; i++) {
- list[i] += all;
- if (some) {
- list[i]++;
- some--;
- }
- }
-}
-
-static void shuffleGrid(newtGrid grid, int left, int top, int set) {
- struct gridField * field;
- int row, col;
- int i, j;
- int minWidth, minHeight;
- int * widths, * heights;
- int thisLeft, thisTop;
- int x, y, remx, remy;
-
- widths = alloca(sizeof(*widths) * grid->cols);
- memset(widths, 0, sizeof(*widths) * grid->cols);
- heights = alloca(sizeof(*heights) * grid->rows);
- memset(heights, 0, sizeof(*heights) * grid->rows);
-
- minWidth = 0;
- for (row = 0; row < grid->rows; row++) {
- i = 0;
- for (col = 0; col < grid->cols; col++) {
- field = &grid->fields[col][row];
- if (field->type == NEWT_GRID_SUBGRID) {
- /* we'll have to redo this later */
- if (field->u.grid->width == -1)
- shuffleGrid(field->u.grid, left, top, 0);
- j = field->u.grid->width;
- } else if (field->type == NEWT_GRID_COMPONENT) {
- if (field->u.co->ops == formOps)
- newtFormSetSize(field->u.co);
- j = field->u.co->width;
- } else
- j = 0;
-
- j += field->padLeft + field->padRight;
-
- if (j > widths[col]) widths[col] = j;
- i += widths[col];
- }
-
- if (i > minWidth) minWidth = i;
- }
-
- minHeight = 0;
- for (col = 0; col < grid->cols; col++) {
- i = 0;
- for (row = 0; row < grid->rows; row++) {
- field = &grid->fields[col][row];
- if (field->type == NEWT_GRID_SUBGRID) {
- /* we'll have to redo this later */
- if (field->u.grid->height == -1)
- shuffleGrid(field->u.grid, 0, 0, 0);
- j = field->u.grid->height;
- } else if (field->type == NEWT_GRID_COMPONENT){
- j = field->u.co->height;
- } else
- j = 0;
-
- j += field->padTop + field->padBottom;
-
- if (j > heights[row]) heights[row] = j;
- i += heights[row];
- }
-
- if (i > minHeight) minHeight = i;
- }
-
- /* this catches the -1 case */
- if (grid->width < minWidth) grid->width = minWidth; /* ack! */
- if (grid->height < minHeight) grid->height = minHeight; /* ditto! */
-
- if (!set) return;
-
- distSpace(grid->width - minWidth, grid->cols, widths);
- distSpace(grid->height - minHeight, grid->rows, heights);
-
- thisTop = top;
- for (row = 0; row < grid->rows; row++) {
- i = 0;
- thisLeft = left;
- for (col = 0; col < grid->cols; col++) {
- field = &grid->fields[col][row];
-
- if (field->type == NEWT_GRID_EMPTY) continue;
-
- x = thisLeft + field->padLeft;
- remx = widths[col] - field->padLeft - field->padRight;
- y = thisTop + field->padTop;
- remy = heights[row] - field->padTop - field->padBottom;
-
- if (field->type == NEWT_GRID_SUBGRID) {
- remx -= field->u.grid->width;
- remy -= field->u.grid->height;
- } else if (field->type == NEWT_GRID_COMPONENT) {
- remx -= field->u.co->width;
- remy -= field->u.co->height;
- }
-
- if (!(field->flags & NEWT_GRID_FLAG_GROWX)) {
- if (field->anchor & NEWT_ANCHOR_RIGHT)
- x += remx;
- else if (!(field->anchor & NEWT_ANCHOR_LEFT))
- x += (remx / 2);
- }
-
- if (!(field->flags & NEWT_GRID_FLAG_GROWY)) {
- if (field->anchor & NEWT_ANCHOR_BOTTOM)
- y += remx;
- else if (!(field->anchor & NEWT_ANCHOR_TOP))
- y += (remy / 2);
- }
-
- if (field->type == NEWT_GRID_SUBGRID) {
- if (field->flags & NEWT_GRID_FLAG_GROWX)
- field->u.grid->width = widths[col] - field->padLeft
- - field->padRight;
- if (field->flags & NEWT_GRID_FLAG_GROWY)
- field->u.grid->height = heights[col] - field->padTop
- - field->padBottom;
-
- shuffleGrid(field->u.grid, x, y, 1);
- } else if (field->type == NEWT_GRID_COMPONENT) {
- field->u.co->ops->place(field->u.co, x, y);
- }
-
- thisLeft += widths[col];
- }
-
- thisTop += heights[row];
- }
-}
-
-void newtGridPlace(newtGrid grid, int left, int top) {
- shuffleGrid(grid, left, top, 1);
-}
-
-void newtGridFree(newtGrid grid, int recurse) {
- int row, col;
-
- for (col = 0; col < grid->cols; col++) {
- if (recurse) {
- for (row = 0; row < grid->rows; row++) {
- if (grid->fields[col][row].type == NEWT_GRID_SUBGRID)
- newtGridFree(grid->fields[col][row].u.grid, 1);
- }
- }
-
- free(grid->fields[col]);
- }
-
- free(grid->fields);
- free(grid);
-}
-
-void newtGridGetSize(newtGrid grid, int * width, int * height) {
- if (grid->width == -1 || grid->height == -1) {
- grid->width = grid->height = -1;
- shuffleGrid(grid, 0, 0, 1);
- }
-
- *width = grid->width;
- *height = grid->height;
-}
-
-void newtGridWrappedWindow(newtGrid grid, char * title) {
- int width, height, offset = 0;
-
- newtGridGetSize(grid, &width, &height);
- if ((size_t)width < strlen(title) + 2) {
- offset = ((strlen(title) + 2) - width) / 2;
- width = strlen(title) + 2;
- }
- newtCenteredWindow(width + 2, height + 2, title);
- newtGridPlace(grid, 1 + offset, 1);
-}
-
-void newtGridWrappedWindowAt(newtGrid grid, char * title, int left, int top) {
- int width, height;
-
- newtGridGetSize(grid, &width, &height);
- newtOpenWindow(left, top, width + 2, height + 2, title);
- newtGridPlace(grid, 1, 1);
-}
-
-void newtGridAddComponentsToForm(newtGrid grid, newtComponent form,
- int recurse) {
- int row, col;
-
- for (col = 0; col < grid->cols; col++) {
- for (row = 0; row < grid->rows; row++) {
- if (grid->fields[col][row].type == NEWT_GRID_SUBGRID && recurse)
- newtGridAddComponentsToForm(grid->fields[col][row].u.grid,
- form, 1);
- else if (grid->fields[col][row].type == NEWT_GRID_COMPONENT)
- newtFormAddComponent(form, grid->fields[col][row].u.co);
- }
- }
-}
-
-/* this handles up to 50 items */
-static newtGrid stackem(int isVert, enum newtGridElement type1, void * what1,
- va_list args, int close) {
- struct item {
- enum newtGridElement type;
- void * what;
- } items[50];
- int i, num;
- newtGrid grid;
-
- items[0].type = type1, items[0].what = what1, num = 1;
- while (1) {
- items[num].type = va_arg(args, enum newtGridElement);
- if (items[num].type == NEWT_GRID_EMPTY) break;
-
- items[num].what = va_arg(args, void *);
- num++;
- }
-
- grid = newtCreateGrid(isVert ? 1 : num, isVert ? num : 1);
-
- for (i = 0; i < num; i++) {
- newtGridSetField(grid, isVert ? 0 : i, isVert ? i : 0,
- items[i].type, items[i].what,
- close ? 0 : (i ? (isVert ? 0 : 1) : 0),
- close ? 0 : (i ? (isVert ? 1 : 0) : 0), 0, 0, 0, 0);
- }
-
- return grid;
-}
-
-newtGrid newtGridHCloseStacked(enum newtGridElement type1, void * what1, ...) {
- va_list args;
- newtGrid grid;
-
- va_start(args, what1);
-
- grid = stackem(0, type1, what1, args, 1);
-
- va_start(args, what1);
-
- return grid;
-}
-
-newtGrid newtGridVCloseStacked(enum newtGridElement type1, void * what1, ...) {
- va_list args;
- newtGrid grid;
-
- va_start(args, what1);
-
- grid = stackem(1, type1, what1, args, 1);
-
- va_start(args, what1);
-
- return grid;
-}
-
-newtGrid newtGridVStacked(enum newtGridElement type1, void * what1, ...) {
- va_list args;
- newtGrid grid;
-
- va_start(args, what1);
-
- grid = stackem(1, type1, what1, args, 0);
-
- va_start(args, what1);
-
- return grid;
-}
-
-newtGrid newtGridHStacked(enum newtGridElement type1, void * what1, ...) {
- va_list args;
- newtGrid grid;
-
- va_start(args, what1);
-
- grid = stackem(0, type1, what1, args, 0);
-
- va_start(args, what1);
-
- return grid;
-}
-
-newtGrid newtGridBasicWindow(newtComponent text, newtGrid middle,
- newtGrid buttons) {
- newtGrid grid;
-
- grid = newtCreateGrid(1, 3);
- newtGridSetField(grid, 0, 0, NEWT_GRID_COMPONENT, text,
- 0, 0, 0, 0, NEWT_ANCHOR_LEFT, 0);
- newtGridSetField(grid, 0, 1, NEWT_GRID_SUBGRID, middle,
- 0, 1, 0, 0, 0, 0);
- newtGridSetField(grid, 0, 2, NEWT_GRID_SUBGRID, buttons,
- 0, 1, 0, 0, 0, NEWT_GRID_FLAG_GROWX);
-
- return grid;
-}
-
-newtGrid newtGridSimpleWindow(newtComponent text, newtComponent middle,
- newtGrid buttons) {
- newtGrid grid;
-
- grid = newtCreateGrid(1, 3);
- newtGridSetField(grid, 0, 0, NEWT_GRID_COMPONENT, text,
- 0, 0, 0, 0, NEWT_ANCHOR_LEFT, 0);
- newtGridSetField(grid, 0, 1, NEWT_GRID_COMPONENT, middle,
- 0, 1, 0, 0, 0, 0);
- newtGridSetField(grid, 0, 2, NEWT_GRID_SUBGRID, buttons,
- 0, 1, 0, 0, 0, NEWT_GRID_FLAG_GROWX);
-
- return grid;
-}
diff --git a/mdk-stage1/newt/label.c b/mdk-stage1/newt/label.c
deleted file mode 100644
index f1a9cebbf..000000000
--- a/mdk-stage1/newt/label.c
+++ /dev/null
@@ -1,81 +0,0 @@
-#include <slang.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "newt.h"
-#include "newt_pr.h"
-
-struct label {
- char * text;
- int length;
-};
-
-static void labelDraw(newtComponent co);
-static void labelDestroy(newtComponent co);
-
-static struct componentOps labelOps = {
- labelDraw,
- newtDefaultEventHandler,
- labelDestroy,
- newtDefaultPlaceHandler,
- newtDefaultMappedHandler,
-} ;
-
-newtComponent newtLabel(int left, int top, const char * text) {
- newtComponent co;
- struct label * la;
-
- co = malloc(sizeof(*co));
- la = malloc(sizeof(struct label));
- co->data = la;
-
- co->ops = &labelOps;
-
- co->height = 1;
- co->width = strlen(text);
- co->top = top;
- co->left = left;
- co->takesFocus = 0;
-
- la->length = strlen(text);
- la->text = strdup(text);
-
- return co;
-}
-
-void newtLabelSetText(newtComponent co, const char * text) {
- int newLength;
- struct label * la = co->data;
-
- newLength = strlen(text);
- if (newLength <= la->length) {
- memset(la->text, ' ', la->length);
- memcpy(la->text, text, newLength);
- } else {
- free(la->text);
- la->text = strdup(text);
- la->length = newLength;
- co->width = newLength;
- }
-
- labelDraw(co);
-}
-
-static void labelDraw(newtComponent co) {
- struct label * la = co->data;
-
- if (co->isMapped == -1) return;
-
- SLsmg_set_color(COLORSET_LABEL);
-
- newtGotorc(co->top, co->left);
- SLsmg_write_string(la->text);
-}
-
-static void labelDestroy(newtComponent co) {
- struct label * la = co->data;
-
- free(la->text);
- free(la);
- free(co);
-}
diff --git a/mdk-stage1/newt/listbox.c b/mdk-stage1/newt/listbox.c
deleted file mode 100644
index cdbf792ca..000000000
--- a/mdk-stage1/newt/listbox.c
+++ /dev/null
@@ -1,752 +0,0 @@
-/* This goofed-up box whacked into shape by Elliot Lee <sopwith@cuc.edu>
- (from the original listbox by Erik Troan <ewt@redhat.com>)
- and contributed to newt for use under the LGPL license.
- Copyright (C) 1996, 1997 Elliot Lee */
-
-#include <slang.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-#include "newt.h"
-#include "newt_pr.h"
-
-
-/* Linked list of items in the listbox */
-struct items {
- char * text;
- const void *data;
- unsigned char isSelected;
- struct items *next;
-};
-
-/* Holds all the relevant information for this listbox */
-struct listbox {
- newtComponent sb; /* Scrollbar on right side of listbox */
- int curWidth; /* size of text w/o scrollbar or border*/
- int curHeight; /* size of text w/o border */
- int sbAdjust;
- int bdxAdjust, bdyAdjust;
- int numItems, numSelected;
- int userHasSetWidth;
- int currItem, startShowItem; /* startShowItem is the first item displayed
- on the screen */
- int isActive; /* If we handle key events all the time, it seems
- to do things even when they are supposed to be for
- another button/whatever */
- struct items *boxItems;
- int grow;
- int flags; /* flags for this listbox, right now just
- NEWT_FLAG_RETURNEXIT */
-};
-
-static void listboxDraw(newtComponent co);
-static void listboxDestroy(newtComponent co);
-static struct eventResult listboxEvent(newtComponent co, struct event ev);
-static void newtListboxRealSetCurrent(newtComponent co);
-static void listboxPlace(newtComponent co, int newLeft, int newTop);
-static inline void updateWidth(newtComponent co, struct listbox * li,
- int maxField);
-static void listboxMapped(newtComponent co, int isMapped);
-
-static struct componentOps listboxOps = {
- listboxDraw,
- listboxEvent,
- listboxDestroy,
- listboxPlace,
- listboxMapped,
-};
-
-static void listboxMapped(newtComponent co, int isMapped) {
- struct listbox * li = co->data;
-
- co->isMapped = isMapped;
- if (li->sb)
- li->sb->ops->mapped(li->sb, isMapped);
-}
-
-static void listboxPlace(newtComponent co, int newLeft, int newTop) {
- struct listbox * li = co->data;
-
- co->top = newTop;
- co->left = newLeft;
-
- if (li->sb)
- li->sb->ops->place(li->sb, co->left + co->width - li->bdxAdjust - 1,
- co->top);
-}
-
-newtComponent newtListbox(int left, int top, int height, int flags) {
- newtComponent co, sb;
- struct listbox * li;
-
- if (!(co = malloc(sizeof(*co))))
- return NULL;
-
- if (!(li = malloc(sizeof(struct listbox)))) {
- free(co);
- return NULL;
- }
-
- li->boxItems = NULL;
- li->numItems = 0;
- li->currItem = 0;
- li->numSelected = 0;
- li->isActive = 0;
- li->userHasSetWidth = 0;
- li->startShowItem = 0;
- li->sbAdjust = 0;
- li->bdxAdjust = 0;
- li->bdyAdjust = 0;
- li->flags = flags & (NEWT_FLAG_RETURNEXIT | NEWT_FLAG_BORDER |
- NEWT_FLAG_MULTIPLE);
-
- if (li->flags & NEWT_FLAG_BORDER) {
- li->bdxAdjust = 2;
- li->bdyAdjust = 1;
- }
-
- co->height = height;
- li->curHeight = co->height - (2 * li->bdyAdjust);
-
- if (height) {
- li->grow = 0;
- if (flags & NEWT_FLAG_SCROLL) {
- sb = newtVerticalScrollbar(left, top + li->bdyAdjust,
- li->curHeight,
- COLORSET_LISTBOX, COLORSET_ACTLISTBOX);
- li->sbAdjust = 3;
- } else {
- sb = NULL;
- }
- } else {
- li->grow = 1;
- sb = NULL;
- }
-
- li->sb = sb;
- co->data = li;
- co->isMapped = 0;
- co->left = left;
- co->top = top;
- co->ops = &listboxOps;
- co->takesFocus = 1;
- co->callback = NULL;
-
- updateWidth(co, li, 5);
-
- return co;
-}
-
-static inline void updateWidth(newtComponent co, struct listbox * li,
- int maxField) {
- li->curWidth = maxField;
- co->width = li->curWidth + li->sbAdjust + 2 * li->bdxAdjust;
-
- if (li->sb)
- li->sb->left = co->left + co->width - li->bdxAdjust - 1;
-}
-
-void newtListboxSetCurrentByKey(newtComponent co, void * key) {
- struct listbox * li = co->data;
- struct items * item;
- int i;
-
- item = li->boxItems, i = 0;
- while (item && item->data != key)
- item = item->next, i++;
-
- if (item)
- newtListboxSetCurrent(co, i);
-}
-
-void newtListboxSetCurrent(newtComponent co, int num)
-{
- struct listbox * li = co->data;
-
- if (num >= li->numItems)
- li->currItem = li->numItems - 1;
- else if (num < 0)
- li->currItem = 0;
- else
- li->currItem = num;
-
- if (li->currItem < li->startShowItem)
- li->startShowItem = li->currItem;
- else if (li->currItem - li->startShowItem > li->curHeight - 1)
- li->startShowItem = li->currItem - li->curHeight + 1;
- if (li->startShowItem + li->curHeight > li->numItems)
- li->startShowItem = li->numItems - li->curHeight;
- if(li->startShowItem < 0)
- li->startShowItem = 0;
-
- newtListboxRealSetCurrent(co);
-}
-
-static void newtListboxRealSetCurrent(newtComponent co)
-{
- struct listbox * li = co->data;
-
- if(li->sb)
- newtScrollbarSet(li->sb, li->currItem + 1, li->numItems);
- listboxDraw(co);
- if(co->callback) co->callback(co, co->callbackData);
-}
-
-void newtListboxSetWidth(newtComponent co, int width) {
- struct listbox * li = co->data;
-
- co->width = width;
- li->curWidth = co->width - li->sbAdjust - 2 * li->bdxAdjust;
- li->userHasSetWidth = 1;
- if (li->sb) li->sb->left = co->width + co->left - 1;
- listboxDraw(co);
-}
-
-void * newtListboxGetCurrent(newtComponent co) {
- struct listbox * li = co->data;
- int i;
- struct items *item;
-
- for(i = 0, item = li->boxItems; item != NULL && i < li->currItem;
- i++, item = item->next);
-
- if (item)
- return (void *)item->data;
- else
- return NULL;
-}
-
-void newtListboxSelectItem(newtComponent co, const void * key,
- enum newtFlagsSense sense)
-{
- struct listbox * li = co->data;
- int i;
- struct items * item;
-
- item = li->boxItems, i = 0;
- while (item && item->data != key)
- item = item->next, i++;
-
- if (!item) return;
-
- if (item->isSelected)
- li->numSelected--;
-
- switch(sense) {
- case NEWT_FLAGS_RESET:
- item->isSelected = 0; break;
- case NEWT_FLAGS_SET:
- item->isSelected = 1; break;
- case NEWT_FLAGS_TOGGLE:
- item->isSelected = !item->isSelected;
- }
-
- if (item->isSelected)
- li->numSelected++;
-
- listboxDraw(co);
-}
-
-void newtListboxClearSelection(newtComponent co)
-{
- struct items *item;
- struct listbox * li = co->data;
-
- for(item = li->boxItems; item != NULL;
- item = item->next)
- item->isSelected = 0;
- li->numSelected = 0;
- listboxDraw(co);
-}
-
-/* Free the returned array after use, but NOT the values in the array */
-void ** newtListboxGetSelection(newtComponent co, int *numitems)
-{
- struct listbox * li;
- int i;
- void **retval;
- struct items *item;
-
- if(!co || !numitems) return NULL;
-
- li = co->data;
- if(!li || !li->numSelected) return NULL;
-
- retval = malloc(li->numSelected * sizeof(void *));
- for(i = 0, item = li->boxItems; item != NULL;
- item = item->next)
- if(item->isSelected)
- retval[i++] = (void *)item->data;
- *numitems = li->numSelected;
- return retval;
-}
-
-void newtListboxSetEntry(newtComponent co, int num, const char * text) {
- struct listbox * li = co->data;
- int i;
- struct items *item;
-
- for(i = 0, item = li->boxItems; item != NULL && i < num;
- i++, item = item->next);
-
- if(!item)
- return;
- else {
- free(item->text);
- item->text = strdup(text);
- }
- if (li->userHasSetWidth == 0 && strlen(text) > (size_t)li->curWidth) {
- updateWidth(co, li, strlen(text));
- }
-
- if (num >= li->startShowItem && num <= li->startShowItem + co->height)
- listboxDraw(co);
-}
-
-void newtListboxSetData(newtComponent co, int num, void * data) {
- struct listbox * li = co->data;
- int i;
- struct items *item;
-
- for(i = 0, item = li->boxItems; item != NULL && i < num;
- i++, item = item->next);
-
- item->data = data;
-}
-
-int newtListboxAppendEntry(newtComponent co, const char * text,
- const void * data) {
- struct listbox * li = co->data;
- struct items *item;
-
- if(li->boxItems) {
- for (item = li->boxItems; item->next != NULL; item = item->next);
-
- item = item->next = malloc(sizeof(struct items));
- } else {
- item = li->boxItems = malloc(sizeof(struct items));
- }
-
- if (!li->userHasSetWidth && text && (strlen(text) > (size_t)li->curWidth))
- updateWidth(co, li, strlen(text));
-
- item->text = strdup(text); item->data = data; item->next = NULL;
- item->isSelected = 0;
-
- if (li->grow)
- co->height++, li->curHeight++;
- li->numItems++;
-
- return 0;
-}
-
-int newtListboxInsertEntry(newtComponent co, const char * text,
- const void * data, void * key) {
- struct listbox * li = co->data;
- struct items *item, *t;
-
- if (li->boxItems) {
- if (key) {
- item = li->boxItems;
- while (item && item->data != key) item = item->next;
-
- if (!item) return 1;
-
- t = item->next;
- item = item->next = malloc(sizeof(struct items));
- item->next = t;
- } else {
- t = li->boxItems;
- item = li->boxItems = malloc(sizeof(struct items));
- item->next = t;
- }
- } else if (key) {
- return 1;
- } else {
- item = li->boxItems = malloc(sizeof(struct items));
- item->next = NULL;
- }
-
- if (!li->userHasSetWidth && text && (strlen(text) > (size_t)li->curWidth))
- updateWidth(co, li, strlen(text));
-
- item->text = strdup(text?text:"(null)"); item->data = data;
- item->isSelected = 0;
-
- if (li->sb)
- li->sb->left = co->left + co->width - li->bdxAdjust - 1;
- li->numItems++;
-
- listboxDraw(co);
-
- return 0;
-}
-
-int newtListboxDeleteEntry(newtComponent co, void * key) {
- struct listbox * li = co->data;
- int widest = 0, t;
- struct items *item, *item2 = NULL;
- int num;
-
- if (li->boxItems == NULL || li->numItems <= 0)
- return 0;
-
- num = 0;
-
- item2 = NULL, item = li->boxItems;
- while (item && item->data != key) {
- item2 = item;
- item = item->next;
- num++;
- }
-
- if (!item)
- return -1;
-
- if (item2)
- item2->next = item->next;
- else
- li->boxItems = item->next;
-
- free(item->text);
- free(item);
- li->numItems--;
-
- if (!li->userHasSetWidth) {
- widest = 0;
- for (item = li->boxItems; item != NULL; item = item->next)
- if ((t = strlen(item->text)) > widest) widest = t;
- }
-
- if (li->currItem >= num)
- li->currItem--;
-
- if (!li->userHasSetWidth) {
- updateWidth(co, li, widest);
- }
-
- listboxDraw(co);
-
- return 0;
-}
-
-void newtListboxClear(newtComponent co)
-{
- struct listbox * li;
- struct items *anitem, *nextitem;
- if(co == NULL || (li = co->data) == NULL)
- return;
- for(anitem = li->boxItems; anitem != NULL; anitem = nextitem) {
- nextitem = anitem->next;
- free(anitem->text);
- free(anitem);
- }
- li->numItems = li->numSelected = li->currItem = li->startShowItem = 0;
- li->boxItems = NULL;
- if (!li->userHasSetWidth)
- updateWidth(co, li, 5);
-}
-
-/* If you don't want to get back the text, pass in NULL for the ptr-ptr. Same
- goes for the data. */
-void newtListboxGetEntry(newtComponent co, int num, char **text, void **data) {
- struct listbox * li = co->data;
- int i;
- struct items *item;
-
- if (!li->boxItems || num >= li->numItems) {
- if(text)
- *text = NULL;
- if(data)
- *data = NULL;
- return;
- }
-
- i = 0;
- item = li->boxItems;
- while (item && i < num) {
- i++, item = item->next;
- }
-
- if (item) {
- if (text)
- *text = item->text;
- if (data)
- *data = (void *)item->data;
- }
-}
-
-static void listboxDraw(newtComponent co)
-{
- struct listbox * li = co->data;
- struct items *item;
- int i, j;
-
- if (!co->isMapped) return ;
-
- if(li->flags & NEWT_FLAG_BORDER) {
- if(li->isActive)
- SLsmg_set_color(NEWT_COLORSET_ACTLISTBOX);
- else
- SLsmg_set_color(NEWT_COLORSET_LISTBOX);
-
- newtDrawBox(co->left, co->top, co->width, co->height, 0);
- }
-
- if(li->sb)
- li->sb->ops->draw(li->sb);
-
- SLsmg_set_color(NEWT_COLORSET_LISTBOX);
-
- for(i = 0, item = li->boxItems; item != NULL && i < li->startShowItem;
- i++, item = item->next);
-
- j = i;
-
- for (i = 0; item != NULL && i < li->curHeight; i++, item = item->next) {
- if (!item->text) continue;
-
- newtGotorc(co->top + i + li->bdyAdjust, co->left + li->bdxAdjust);
- if(j + i == li->currItem) {
- if(item->isSelected)
- SLsmg_set_color(NEWT_COLORSET_ACTSELLISTBOX);
- else
- SLsmg_set_color(NEWT_COLORSET_ACTLISTBOX);
- } else if(item->isSelected)
- SLsmg_set_color(NEWT_COLORSET_SELLISTBOX);
- else
- SLsmg_set_color(NEWT_COLORSET_LISTBOX);
-
- SLsmg_write_nstring(item->text, li->curWidth);
-
- }
- newtGotorc(co->top + (li->currItem - li->startShowItem), co->left);
-}
-
-static struct eventResult listboxEvent(newtComponent co, struct event ev) {
- struct eventResult er;
- struct listbox * li = co->data;
- struct items *item;
- int i;
-
- er.result = ER_IGNORED;
-
- if(ev.when == EV_EARLY || ev.when == EV_LATE) {
- return er;
- }
-
- switch(ev.event) {
- case EV_KEYPRESS:
- if (!li->isActive) break;
-
- switch(ev.u.key) {
- case ' ':
- if(!(li->flags & NEWT_FLAG_MULTIPLE)) break;
- newtListboxSelectItem(co, li->boxItems[li->currItem].data,
- NEWT_FLAGS_TOGGLE);
- er.result = ER_SWALLOWED;
- /* We don't break here, because it is cool to be able to
- hold space to select a bunch of items in a list at once */
-
- case NEWT_KEY_DOWN:
- if(li->numItems <= 0) break;
- if(li->currItem < li->numItems - 1) {
- li->currItem++;
- if(li->currItem > (li->startShowItem + li->curHeight - 1)) {
- li->startShowItem = li->currItem - li->curHeight + 1;
- if(li->startShowItem + li->curHeight > li->numItems)
- li->startShowItem = li->numItems - li->curHeight;
- }
- if(li->sb)
- newtScrollbarSet(li->sb, li->currItem + 1, li->numItems);
- listboxDraw(co);
- }
- if(co->callback) co->callback(co, co->callbackData);
- er.result = ER_SWALLOWED;
- break;
-
- case NEWT_KEY_ENTER:
- if(li->numItems <= 0) break;
- if(li->flags & NEWT_FLAG_RETURNEXIT)
- er.result = ER_EXITFORM;
- break;
-
- case NEWT_KEY_UP:
- if(li->numItems <= 0) break;
- if(li->currItem > 0) {
- li->currItem--;
- if(li->currItem < li->startShowItem)
- li->startShowItem = li->currItem;
- if(li->sb)
- newtScrollbarSet(li->sb, li->currItem + 1, li->numItems);
- listboxDraw(co);
- }
- if(co->callback) co->callback(co, co->callbackData);
- er.result = ER_SWALLOWED;
- break;
-
- case NEWT_KEY_PGUP:
- if(li->numItems <= 0) break;
- li->startShowItem -= li->curHeight - 1;
- if(li->startShowItem < 0)
- li->startShowItem = 0;
- li->currItem -= li->curHeight - 1;
- if(li->currItem < 0)
- li->currItem = 0;
- newtListboxRealSetCurrent(co);
- er.result = ER_SWALLOWED;
- break;
-
- case NEWT_KEY_PGDN:
- if(li->numItems <= 0) break;
- li->startShowItem += li->curHeight;
- if(li->startShowItem > (li->numItems - li->curHeight)) {
- li->startShowItem = li->numItems - li->curHeight;
- }
- li->currItem += li->curHeight;
- if(li->currItem >= li->numItems) {
- li->currItem = li->numItems - 1;
- }
- newtListboxRealSetCurrent(co);
- er.result = ER_SWALLOWED;
- break;
-
- case NEWT_KEY_HOME:
- if(li->numItems <= 0) break;
- newtListboxSetCurrent(co, 0);
- er.result = ER_SWALLOWED;
- break;
-
- case NEWT_KEY_END:
- if(li->numItems <= 0) break;
- li->startShowItem = li->numItems - li->curHeight;
- if(li->startShowItem < 0)
- li->startShowItem = 0;
- li->currItem = li->numItems - 1;
- newtListboxRealSetCurrent(co);
- er.result = ER_SWALLOWED;
- break;
- default:
- if (li->numItems <= 0) break;
- if (ev.u.key < NEWT_KEY_EXTRA_BASE && isalpha(ev.u.key)) {
- for(i = 0, item = li->boxItems; item != NULL &&
- i < li->currItem; i++, item = item->next);
-
- if (item && item->text && (toupper(*item->text) == toupper(ev.u.key))) {
- item = item->next;
- i++;
- } else {
- item = li->boxItems;
- i = 0;
- }
- while (item && item->text &&
- toupper(*item->text) != toupper(ev.u.key)) {
- item = item->next;
- i++;
- }
- if (item) {
- li->currItem = i;
- if(li->currItem < li->startShowItem ||
- li->currItem > li->startShowItem)
- li->startShowItem =
- li->currItem > li->numItems - li->curHeight ?
- li->startShowItem = li->numItems - li->curHeight :
- li->currItem;
- if(li->sb)
- newtScrollbarSet(li->sb, li->currItem + 1, li->numItems);
- newtListboxRealSetCurrent(co);
- er.result = ER_SWALLOWED;
- }
- }
- }
- break;
-
- case EV_FOCUS:
- li->isActive = 1;
- listboxDraw(co);
- er.result = ER_SWALLOWED;
- break;
-
- case EV_UNFOCUS:
- li->isActive = 0;
- listboxDraw(co);
- er.result = ER_SWALLOWED;
- break;
-
- case EV_MOUSE:
- /* if this mouse click was within the listbox, make the current
- item the item clicked on. */
- /* Up scroll arrow */
- if (li->sb &&
- ev.u.mouse.x == co->left + co->width - li->bdxAdjust - 1 &&
- ev.u.mouse.y == co->top + li->bdyAdjust) {
- if(li->numItems <= 0) break;
- if(li->currItem > 0) {
- li->currItem--;
- if(li->currItem < li->startShowItem)
- li->startShowItem = li->currItem;
- if(li->sb)
- newtScrollbarSet(li->sb, li->currItem + 1, li->numItems);
- listboxDraw(co);
- }
- if(co->callback) co->callback(co, co->callbackData);
- er.result = ER_SWALLOWED;
- break;
- }
- /* Down scroll arrow */
- if (li->sb &&
- ev.u.mouse.x == co->left + co->width - li->bdxAdjust - 1 &&
- ev.u.mouse.y == co->top + co->height - li->bdyAdjust - 1) {
- if(li->numItems <= 0) break;
- if(li->currItem < li->numItems - 1) {
- li->currItem++;
- if(li->currItem > (li->startShowItem + li->curHeight - 1)) {
- li->startShowItem = li->currItem - li->curHeight + 1;
- if(li->startShowItem + li->curHeight > li->numItems)
- li->startShowItem = li->numItems - li->curHeight;
- }
- if(li->sb)
- newtScrollbarSet(li->sb, li->currItem + 1, li->numItems);
- listboxDraw(co);
- }
- if(co->callback) co->callback(co, co->callbackData);
- er.result = ER_SWALLOWED;
- break;
- }
- if ((ev.u.mouse.y >= co->top + li->bdyAdjust) &&
- (ev.u.mouse.y <= co->top + co->height - (li->bdyAdjust * 2)) &&
- (ev.u.mouse.x >= co->left + li->bdxAdjust) &&
- (ev.u.mouse.x <= co->left + co->width + (li->bdxAdjust * 2))) {
- li->currItem = li->startShowItem +
- (ev.u.mouse.y - li->bdyAdjust - co->top);
- newtListboxRealSetCurrent(co);
- listboxDraw(co);
- if(co->callback) co->callback(co, co->callbackData);
- er.result = ER_SWALLOWED;
- break;
- }
- }
-
- return er;
-}
-
-static void listboxDestroy(newtComponent co) {
- struct listbox * li = co->data;
- struct items * item, * nextitem;
-
- nextitem = item = li->boxItems;
-
- while (item != NULL) {
- nextitem = item->next;
- free(item->text);
- free(item);
- item = nextitem;
- }
-
- if (li->sb) li->sb->ops->destroy(li->sb);
-
- free(li);
- free(co);
-}
diff --git a/mdk-stage1/newt/newt.c b/mdk-stage1/newt/newt.c
deleted file mode 100644
index 8ff5e39a5..000000000
--- a/mdk-stage1/newt/newt.c
+++ /dev/null
@@ -1,672 +0,0 @@
-#include <slang.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/signal.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <termios.h>
-#include <unistd.h>
-
-#include "newt.h"
-#include "newt_pr.h"
-
-struct Window {
- int height, width, top, left;
- short * buffer;
- char * title;
-};
-
-struct keymap {
- char * str;
- int code;
- char * tc;
-};
-
-static struct Window windowStack[20];
-static struct Window * currentWindow = NULL;
-
-static char * helplineStack[20];
-static char ** currentHelpline = NULL;
-
-static int cursorRow, cursorCol;
-static int needResize;
-static int cursorOn = 1;
-
-static const char * defaultHelpLine =
-" <Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen"
-;
-
-const struct newtColors newtDefaultColorPalette = {
- "cyan", "black", /* root fg, bg */
- "black", "blue", /* border fg, bg */
- "white", "blue", /* window fg, bg */
- "white", "black", /* shadow fg, bg */
- "white", "blue", /* title fg, bg */
- "black", "cyan", /* button fg, bg */
- "yellow", "cyan", /* active button fg, bg */
- "yellow", "blue", /* checkbox fg, bg */
- "blue", "brown", /* active checkbox fg, bg */
- "yellow", "blue", /* entry box fg, bg */
- "white", "blue", /* label fg, bg */
- "black", "cyan", /* listbox fg, bg */
- "yellow", "cyan", /* active listbox fg, bg */
- "white", "blue", /* textbox fg, bg */
- "cyan", "black", /* active textbox fg, bg */
- "white", "blue", /* help line */
- "yellow", "blue", /* root text */
- "blue", /* scale full */
- "red", /* scale empty */
- "blue", "cyan", /* disabled entry fg, bg */
- "white", "blue", /* compact button fg, bg */
- "yellow", "red", /* active & sel listbox */
- "black", "brown" /* selected listbox */
-};
-
-static const struct keymap keymap[] = {
- { "\033OA", NEWT_KEY_UP, "kh" },
- { "\033[A", NEWT_KEY_UP, "ku" },
- { "\033OB", NEWT_KEY_DOWN, "kd" },
- { "\033[B", NEWT_KEY_DOWN, "kd" },
- { "\033[C", NEWT_KEY_RIGHT, "kr" },
- { "\033OC", NEWT_KEY_RIGHT, "kr" },
- { "\033[D", NEWT_KEY_LEFT, "kl" },
- { "\033OD", NEWT_KEY_LEFT, "kl" },
- { "\033[H", NEWT_KEY_HOME, "kh" },
- { "\033[1~", NEWT_KEY_HOME, "kh" },
- { "\033Ow", NEWT_KEY_END, "kH" },
- { "\033[4~", NEWT_KEY_END, "kH" },
-
- { "\033[3~", NEWT_KEY_DELETE, "kl" },
- { "\033[2~", NEWT_KEY_INSERT, NULL },
-
- { "\033\t", NEWT_KEY_UNTAB, NULL },
-
- { "\033[5~", NEWT_KEY_PGUP, NULL },
- { "\033[6~", NEWT_KEY_PGDN, NULL },
- { "\033V", NEWT_KEY_PGUP, "kH" },
- { "\033v", NEWT_KEY_PGUP, "kH" },
-
- { "\033[[A", NEWT_KEY_F1, NULL },
- { "\033[[B", NEWT_KEY_F2, NULL },
- { "\033[[C", NEWT_KEY_F3, NULL },
- { "\033[[D", NEWT_KEY_F4, NULL },
- { "\033[[E", NEWT_KEY_F5, NULL },
-
- { "\033OP", NEWT_KEY_F1, NULL },
- { "\033OQ", NEWT_KEY_F2, NULL },
- { "\033OR", NEWT_KEY_F3, NULL },
- { "\033OS", NEWT_KEY_F4, NULL },
-
- { "\033[11~", NEWT_KEY_F1, NULL },
- { "\033[12~", NEWT_KEY_F2, NULL },
- { "\033[13~", NEWT_KEY_F3, NULL },
- { "\033[14~", NEWT_KEY_F4, NULL },
- { "\033[15~", NEWT_KEY_F5, NULL },
- { "\033[17~", NEWT_KEY_F6, NULL },
- { "\033[18~", NEWT_KEY_F7, NULL },
- { "\033[19~", NEWT_KEY_F8, NULL },
- { "\033[20~", NEWT_KEY_F9, NULL },
- { "\033[21~", NEWT_KEY_F10, NULL },
- { "\033[23~", NEWT_KEY_F11, NULL },
- { "\033[24~", NEWT_KEY_F12, NULL },
-
- { NULL, 0, NULL }, /* LEAVE this one */
-};
-static char keyPrefix = '\033';
-
-static const char * version = "Newt windowing library version " VERSION
- " - (C) 1996-2000 Red Hat Software. "
- "Redistributable under the term of the Library "
- "GNU Public License. "
- "Written by Erik Troan\n";
-
-static newtSuspendCallback suspendCallback = NULL;
-static void * suspendCallbackData = NULL;
-
-void newtSetSuspendCallback(newtSuspendCallback cb, void * data) {
- suspendCallback = cb;
- suspendCallbackData = data;
-}
-
-static void handleSigwinch(int signum __attribute__ ((unused))) {
- needResize = 1;
-}
-
-static int getkeyInterruptHook(void) {
- return -1;
-}
-
-void newtFlushInput(void) {
- while (SLang_input_pending(0)) {
- SLang_getkey();
- }
-}
-
-void newtRefresh(void) {
- SLsmg_refresh();
-}
-
-void newtSuspend(void) {
- SLtt_set_cursor_visibility (1);
- SLsmg_suspend_smg();
- SLang_reset_tty();
- SLtt_set_cursor_visibility (cursorOn);
-}
-
-void newtResume(void) {
- SLsmg_resume_smg ();
- SLsmg_refresh();
- SLang_init_tty(0, 0, 0);
-}
-
-void newtCls(void) {
- SLsmg_set_color(NEWT_COLORSET_ROOT);
- SLsmg_gotorc(0, 0);
- SLsmg_erase_eos();
-
- newtRefresh();
-}
-
-#if defined(THIS_DOESNT_WORK)
-void newtResizeScreen(int redraw) {
- newtPushHelpLine("");
-
- SLtt_get_screen_size();
- SLang_init_tty(0, 0, 0);
-
- SLsmg_touch_lines (0, SLtt_Screen_Rows - 1);
-
- /* I don't know why I need this */
- SLsmg_refresh();
-
- newtPopHelpLine();
-
- if (redraw)
- SLsmg_refresh();
-}
-#endif
-
-int newtInit(void) {
- char * MonoValue, * MonoEnv = "NEWT_MONO";
-
- /* use the version variable just to be sure it gets included */
- (void) strlen(version);
-
- SLtt_get_terminfo();
- SLtt_get_screen_size();
-
- MonoValue = getenv(MonoEnv);
- if ( MonoValue == NULL ) {
- SLtt_Use_Ansi_Colors = 1;
- } else {
- SLtt_Use_Ansi_Colors = 0;
- }
-
- SLsmg_init_smg();
- SLang_init_tty(0, 0, 0);
-
- newtSetColors(newtDefaultColorPalette);
- newtCursorOff();
- /*initKeymap();*/
-
- /*memset(&sa, 0, sizeof(sa));
- sa.sa_handler = handleSigwinch;
- sigaction(SIGWINCH, &sa, NULL);*/
-
- SLsignal_intr(SIGWINCH, handleSigwinch);
- SLang_getkey_intr_hook = getkeyInterruptHook;
-
-
-
- return 0;
-}
-
-int newtFinished(void) {
- SLsmg_gotorc(SLtt_Screen_Rows - 1, 0);
- newtCursorOn();
- SLsmg_refresh();
- SLsmg_reset_smg();
- SLang_reset_tty();
-
- return 0;
-}
-
-void newtSetColors(struct newtColors colors) {
- SLtt_set_color(NEWT_COLORSET_ROOT, "", colors.rootFg, colors.rootBg);
- SLtt_set_color(NEWT_COLORSET_BORDER, "", colors.borderFg, colors.borderBg);
- SLtt_set_color(NEWT_COLORSET_WINDOW, "", colors.windowFg, colors.windowBg);
- SLtt_set_color(NEWT_COLORSET_SHADOW, "", colors.shadowFg, colors.shadowBg);
- SLtt_set_color(NEWT_COLORSET_TITLE, "", colors.titleFg, colors.titleBg);
- SLtt_set_color(NEWT_COLORSET_BUTTON, "", colors.buttonFg, colors.buttonBg);
- SLtt_set_color(NEWT_COLORSET_ACTBUTTON, "", colors.actButtonFg,
- colors.actButtonBg);
- SLtt_set_color(NEWT_COLORSET_CHECKBOX, "", colors.checkboxFg,
- colors.checkboxBg);
- SLtt_set_color(NEWT_COLORSET_ACTCHECKBOX, "", colors.actCheckboxFg,
- colors.actCheckboxBg);
- SLtt_set_color(NEWT_COLORSET_ENTRY, "", colors.entryFg, colors.entryBg);
- SLtt_set_color(NEWT_COLORSET_LABEL, "", colors.labelFg, colors.labelBg);
- SLtt_set_color(NEWT_COLORSET_LISTBOX, "", colors.listboxFg,
- colors.listboxBg);
- SLtt_set_color(NEWT_COLORSET_ACTLISTBOX, "", colors.actListboxFg,
- colors.actListboxBg);
- SLtt_set_color(NEWT_COLORSET_TEXTBOX, "", colors.textboxFg,
- colors.textboxBg);
- SLtt_set_color(NEWT_COLORSET_ACTTEXTBOX, "", colors.actTextboxFg,
- colors.actTextboxBg);
- SLtt_set_color(NEWT_COLORSET_HELPLINE, "", colors.helpLineFg,
- colors.helpLineBg);
- SLtt_set_color(NEWT_COLORSET_ROOTTEXT, "", colors.rootTextFg,
- colors.rootTextBg);
-
- SLtt_set_color(NEWT_COLORSET_EMPTYSCALE, "", "black",
- colors.emptyScale);
- SLtt_set_color(NEWT_COLORSET_FULLSCALE, "", "black",
- colors.fullScale);
- SLtt_set_color(NEWT_COLORSET_DISENTRY, "", colors.disabledEntryFg,
- colors.disabledEntryBg);
-
- SLtt_set_color(NEWT_COLORSET_COMPACTBUTTON, "", colors.compactButtonFg,
- colors.compactButtonBg);
-
- SLtt_set_color(NEWT_COLORSET_ACTSELLISTBOX, "", colors.actSelListboxFg,
- colors.actSelListboxBg);
- SLtt_set_color(NEWT_COLORSET_SELLISTBOX, "", colors.selListboxFg,
- colors.selListboxBg);
-}
-
-int newtGetKey(void) {
- int key;
- char buf[10], * chptr = buf;
- const struct keymap * curr;
-
- do {
- key = SLang_getkey();
- if (key == 0xFFFF) {
- if (needResize)
- return NEWT_KEY_RESIZE;
-
- /* ignore other signals */
- continue;
- }
-
- if (key == NEWT_KEY_SUSPEND && suspendCallback)
- suspendCallback(suspendCallbackData);
- } while (key == NEWT_KEY_SUSPEND);
-
- switch (key) {
- case 'v' | 0x80:
- case 'V' | 0x80:
- return NEWT_KEY_PGUP;
-
- case 22:
- return NEWT_KEY_PGDN;
-
- return NEWT_KEY_BKSPC;
- case 0x7f:
- return NEWT_KEY_BKSPC;
-
- case 0x08:
- return NEWT_KEY_BKSPC;
-
- default:
- if (key != keyPrefix) return key;
- }
-
- memset(buf, 0, sizeof(buf));
-
- *chptr++ = key;
- while (SLang_input_pending(5)) {
- key = SLang_getkey();
- if (key == keyPrefix) {
- /* he hit unknown keys too many times -- start over */
- memset(buf, 0, sizeof(buf));
- chptr = buf;
- }
-
- *chptr++ = key;
-
- /* this search should use bsearch(), but when we only look through
- a list of 20 (or so) keymappings, it's probably faster just to
- do a inline linear search */
-
- for (curr = keymap; curr->code; curr++) {
- if (curr->str) {
- if (!strcmp(curr->str, buf))
- return curr->code;
- }
- }
- }
-
- for (curr = keymap; curr->code; curr++) {
- if (curr->str) {
- if (!strcmp(curr->str, buf))
- return curr->code;
- }
- }
-
- /* Looks like we were a bit overzealous in reading characters. Return
- just the first character, and put everything else back in the buffer
- for later */
-
- chptr--;
- while (chptr > buf)
- SLang_ungetkey(*chptr--);
-
- return *chptr;
-}
-
-void newtWaitForKey(void) {
- newtRefresh();
-
- SLang_getkey();
- newtClearKeyBuffer();
-}
-
-void newtClearKeyBuffer(void) {
- while (SLang_input_pending(1)) {
- SLang_getkey();
- }
-}
-
-int newtOpenWindow(int left, int top, int width, int height,
- const char * title) {
- int j, row, col;
- int n;
- int i;
-
- newtFlushInput();
-
- if (!currentWindow) {
- currentWindow = windowStack;
- } else {
- currentWindow++;
- }
-
- currentWindow->left = left;
- currentWindow->top = top;
- currentWindow->width = width;
- currentWindow->height = height;
- currentWindow->title = title ? strdup(title) : NULL;
-
- currentWindow->buffer = malloc(sizeof(short) * (width + 3) * (height + 3));
-
- row = top - 1;
- col = left - 1;
- n = 0;
- for (j = 0; j < height + 3; j++, row++) {
- SLsmg_gotorc(row, col);
- SLsmg_read_raw((SLsmg_Char_Type *)currentWindow->buffer + n,
- currentWindow->width + 3);
- n += currentWindow->width + 3;
- }
-
- SLsmg_set_color(NEWT_COLORSET_BORDER);
- SLsmg_draw_box(top - 1, left - 1, height + 2, width + 2);
-
- if (currentWindow->title) {
- i = strlen(currentWindow->title) + 4;
- i = ((width - i) / 2) + left;
- SLsmg_gotorc(top - 1, i);
- SLsmg_set_char_set(1);
- SLsmg_write_char(SLSMG_RTEE_CHAR);
- SLsmg_set_char_set(0);
- SLsmg_write_char(' ');
- SLsmg_set_color(NEWT_COLORSET_TITLE);
- SLsmg_write_string((char *)currentWindow->title);
- SLsmg_set_color(NEWT_COLORSET_BORDER);
- SLsmg_write_char(' ');
- SLsmg_set_char_set(1);
- SLsmg_write_char(SLSMG_LTEE_CHAR);
- SLsmg_set_char_set(0);
- }
-
- SLsmg_set_color(NEWT_COLORSET_WINDOW);
- SLsmg_fill_region(top, left, height, width, ' ');
-
- SLsmg_set_color(NEWT_COLORSET_SHADOW);
- SLsmg_fill_region(top + height + 1, left, 1, width + 2, ' ');
- SLsmg_fill_region(top, left + width + 1, height + 1, 1, ' ');
-
- for (i = top; i < (top + height + 1); i++) {
- SLsmg_gotorc(i, left + width + 1);
- SLsmg_write_string(" ");
- }
-
- return 0;
-}
-
-int newtCenteredWindow(int width, int height, const char * title) {
- int top, left;
-
- top = (SLtt_Screen_Rows - height) / 2;
-
- /* I don't know why, but this seems to look better */
- if ((SLtt_Screen_Rows % 2) && (top % 2)) top--;
-
- left = (SLtt_Screen_Cols - width) / 2;
-
- newtOpenWindow(left, top, width, height, title);
-
- return 0;
-}
-
-void newtPopWindow(void) {
- int j, row, col;
- int n = 0;
-
- row = col = 0;
-
- row = currentWindow->top - 1;
- col = currentWindow->left - 1;
- for (j = 0; j < currentWindow->height + 3; j++, row++) {
- SLsmg_gotorc(row, col);
- SLsmg_write_raw((SLsmg_Char_Type *)currentWindow->buffer + n,
- currentWindow->width + 3);
- n += currentWindow->width + 3;
- }
-
- free(currentWindow->buffer);
- free(currentWindow->title);
-
- if (currentWindow == windowStack)
- currentWindow = NULL;
- else
- currentWindow--;
-
- SLsmg_set_char_set(0);
-
- newtRefresh();
-}
-
-void newtGetWindowPos(int * x, int * y) {
- if (currentWindow) {
- *x = currentWindow->left;
- *y = currentWindow->top;
- } else
- *x = *y = 0;
-}
-
-void newtGetrc(int * row, int * col) {
- *row = cursorRow;
- *col = cursorCol;
-}
-
-void newtGotorc(int newRow, int newCol) {
- if (currentWindow) {
- newRow += currentWindow->top;
- newCol += currentWindow->left;
- }
-
- cursorRow = newRow;
- cursorCol = newCol;
- SLsmg_gotorc(cursorRow, cursorCol);
-}
-
-void newtDrawBox(int left, int top, int width, int height, int shadow) {
- if (currentWindow) {
- top += currentWindow->top;
- left += currentWindow->left;
- }
-
- SLsmg_draw_box(top, left, height, width);
-
- if (shadow) {
- SLsmg_set_color(NEWT_COLORSET_SHADOW);
- SLsmg_fill_region(top + height, left + 1, 1, width - 1, ' ');
- SLsmg_fill_region(top + 1, left + width, height, 1, ' ');
- }
-}
-
-void newtClearBox(int left, int top, int width, int height) {
- if (currentWindow) {
- top += currentWindow->top;
- left += currentWindow->left;
- }
-
- SLsmg_fill_region(top, left, height, width, ' ');
-}
-
-#if 0
-/* This doesn't seem to work quite right. I don't know why not, but when
- I rsh from an rxvt into a box and run this code, the machine returns
- console key's (\033[B) rather then xterm ones (\033OB). */
-static void initKeymap(void) {
- struct keymap * curr;
-
- for (curr = keymap; curr->code; curr++) {
- if (!curr->str)
- curr->str = SLtt_tgetstr(curr->tc);
- }
-
- /* Newt's keymap handling is a bit broken. It assumes that any extended
- keystrokes begin with ESC. If you're using a homebrek terminal you
- will probably need to fix this, or just yell at me and I'll be so
- ashamed of myself for doing it this way I'll fix it */
-
- keyPrefix = 0x1b; /* ESC */
-}
-#endif
-
-void newtDelay(int usecs) {
- fd_set set;
- struct timeval tv;
-
- FD_ZERO(&set);
-
- tv.tv_sec = usecs / 1000000;
- tv.tv_usec = usecs % 1000000;
-
- select(0, &set, &set, &set, &tv);
-}
-
-struct eventResult newtDefaultEventHandler(newtComponent c __attribute__ ((unused)),
- struct event ev __attribute__ ((unused))) {
- struct eventResult er;
-
- er.result = ER_IGNORED;
- return er;
-}
-
-void newtRedrawHelpLine(void) {
- char * buf;
-
- SLsmg_set_color(NEWT_COLORSET_HELPLINE);
-
- buf = alloca(SLtt_Screen_Cols + 1);
- memset(buf, ' ', SLtt_Screen_Cols);
- buf[SLtt_Screen_Cols] = '\0';
-
- if (currentHelpline)
- memcpy(buf, *currentHelpline, strlen(*currentHelpline));
-
- SLsmg_gotorc(SLtt_Screen_Rows - 1, 0);
- SLsmg_write_string(buf);
-}
-
-void newtPushHelpLine(const char * text) {
- if (!text)
- text = defaultHelpLine;
-
- if (currentHelpline)
- (*(++currentHelpline)) = strdup(text);
- else {
- currentHelpline = helplineStack;
- *currentHelpline = strdup(text);
- }
-
- newtRedrawHelpLine();
-}
-
-void newtPopHelpLine(void) {
- if (!currentHelpline) return;
-
- free(*currentHelpline);
- if (currentHelpline == helplineStack)
- currentHelpline = NULL;
- else
- currentHelpline--;
-
- newtRedrawHelpLine();
-}
-
-void newtDrawRootText(int col, int row, const char * text) {
- SLsmg_set_color(NEWT_COLORSET_ROOTTEXT);
-
- if (col < 0) {
- col = SLtt_Screen_Cols + col;
- }
-
- if (row < 0) {
- row = SLtt_Screen_Rows + row;
- }
-
- SLsmg_gotorc(row, col);
- SLsmg_write_string((char *)text);
-}
-
-int newtSetFlags(int oldFlags, int newFlags, enum newtFlagsSense sense) {
- switch (sense) {
- case NEWT_FLAGS_SET:
- return oldFlags | newFlags;
-
- case NEWT_FLAGS_RESET:
- return oldFlags & (~newFlags);
-
- case NEWT_FLAGS_TOGGLE:
- return oldFlags ^ newFlags;
-
- default:
- return oldFlags;
- }
-}
-
-void newtBell(void)
-{
- SLtt_beep();
-}
-
-void newtGetScreenSize(int * cols, int * rows) {
- if (rows) *rows = SLtt_Screen_Rows;
- if (cols) *cols = SLtt_Screen_Cols;
-}
-
-void newtDefaultPlaceHandler(newtComponent c, int newLeft, int newTop) {
- c->left = newLeft;
- c->top = newTop;
-}
-
-void newtDefaultMappedHandler(newtComponent c, int isMapped) {
- c->isMapped = isMapped;
-}
-
-void newtCursorOff(void) {
- cursorOn = 0;
- SLtt_set_cursor_visibility (cursorOn);
-}
-
-void newtCursorOn(void) {
- cursorOn = 1;
- SLtt_set_cursor_visibility (cursorOn);
-}
diff --git a/mdk-stage1/newt/newt.h b/mdk-stage1/newt/newt.h
deleted file mode 100644
index d3fd8bedc..000000000
--- a/mdk-stage1/newt/newt.h
+++ /dev/null
@@ -1,362 +0,0 @@
-#ifndef H_NEWT
-#define H_NEWT
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdarg.h>
-
-#define NEWT_COLORSET_ROOT 2
-#define NEWT_COLORSET_BORDER 3
-#define NEWT_COLORSET_WINDOW 4
-#define NEWT_COLORSET_SHADOW 5
-#define NEWT_COLORSET_TITLE 6
-#define NEWT_COLORSET_BUTTON 7
-#define NEWT_COLORSET_ACTBUTTON 8
-#define NEWT_COLORSET_CHECKBOX 9
-#define NEWT_COLORSET_ACTCHECKBOX 10
-#define NEWT_COLORSET_ENTRY 11
-#define NEWT_COLORSET_LABEL 12
-#define NEWT_COLORSET_LISTBOX 13
-#define NEWT_COLORSET_ACTLISTBOX 14
-#define NEWT_COLORSET_TEXTBOX 15
-#define NEWT_COLORSET_ACTTEXTBOX 16
-#define NEWT_COLORSET_HELPLINE 17
-#define NEWT_COLORSET_ROOTTEXT 18
-#define NEWT_COLORSET_EMPTYSCALE 19
-#define NEWT_COLORSET_FULLSCALE 20
-#define NEWT_COLORSET_DISENTRY 21
-#define NEWT_COLORSET_COMPACTBUTTON 22
-#define NEWT_COLORSET_ACTSELLISTBOX 23
-#define NEWT_COLORSET_SELLISTBOX 24
-
-#define NEWT_ARG_LAST -100000
-#define NEWT_ARG_APPEND -1
-
-struct newtColors {
- char * rootFg, * rootBg;
- char * borderFg, * borderBg;
- char * windowFg, * windowBg;
- char * shadowFg, * shadowBg;
- char * titleFg, * titleBg;
- char * buttonFg, * buttonBg;
- char * actButtonFg, * actButtonBg;
- char * checkboxFg, * checkboxBg;
- char * actCheckboxFg, * actCheckboxBg;
- char * entryFg, * entryBg;
- char * labelFg, * labelBg;
- char * listboxFg, * listboxBg;
- char * actListboxFg, * actListboxBg;
- char * textboxFg, * textboxBg;
- char * actTextboxFg, * actTextboxBg;
- char * helpLineFg, * helpLineBg;
- char * rootTextFg, * rootTextBg;
- char * emptyScale, * fullScale;
- char * disabledEntryFg, * disabledEntryBg;
- char * compactButtonFg, * compactButtonBg;
- char * actSelListboxFg, * actSelListboxBg;
- char * selListboxFg, * selListboxBg;
-};
-
-enum newtFlagsSense { NEWT_FLAGS_SET, NEWT_FLAGS_RESET, NEWT_FLAGS_TOGGLE };
-
-#define NEWT_FLAG_RETURNEXIT (1 << 0)
-#define NEWT_FLAG_HIDDEN (1 << 1)
-#define NEWT_FLAG_SCROLL (1 << 2)
-#define NEWT_FLAG_DISABLED (1 << 3)
-/* OBSOLETE #define NEWT_FLAG_NOSCROLL (1 << 4) for listboxes */
-#define NEWT_FLAG_BORDER (1 << 5)
-#define NEWT_FLAG_WRAP (1 << 6)
-#define NEWT_FLAG_NOF12 (1 << 7)
-#define NEWT_FLAG_MULTIPLE (1 << 8)
-#define NEWT_FLAG_SELECTED (1 << 9)
-#define NEWT_FLAG_CHECKBOX (1 << 10)
-#define NEWT_FLAG_PASSWORD (1 << 11) /* draw '*' of chars in entrybox */
-#define NEWT_FD_READ (1 << 0)
-#define NEWT_FD_WRITE (1 << 1)
-
-#define NEWT_CHECKBOXTREE_COLLAPSED '\0'
-#define NEWT_CHECKBOXTREE_EXPANDED '\1'
-#define NEWT_CHECKBOXTREE_UNSELECTED ' '
-#define NEWT_CHECKBOXTREE_SELECTED '*'
-
-/* Backwards compatibility */
-#define NEWT_LISTBOX_RETURNEXIT NEWT_FLAG_RETURNEXIT
-#define NEWT_ENTRY_SCROLL NEWT_FLAG_SCROLL
-#define NEWT_ENTRY_HIDDEN NEWT_FLAG_HIDDEN
-#define NEWT_ENTRY_RETURNEXIT NEWT_FLAG_RETURNEXIT
-#define NEWT_ENTRY_DISABLED NEWT_FLAG_DISABLED
-
-#define NEWT_TEXTBOX_WRAP NEWT_FLAG_WRAP
-#define NEWT_TEXTBOX_SCROLL NEWT_FLAG_SCROLL
-#define NEWT_FORM_NOF12 NEWT_FLAG_NOF12
-
-#define newtListboxAddEntry newtListboxAppendEntry
-
-
-typedef struct newtComponent_struct * newtComponent;
-
-extern const struct newtColors newtDefaultColorPalette;
-
-typedef void (*newtCallback)(newtComponent, void *);
-typedef void (*newtSuspendCallback)(void * data);
-
-int newtInit(void);
-int newtFinished(void);
-void newtCls(void);
-void newtResizeScreen(int redraw);
-void newtWaitForKey(void);
-void newtClearKeyBuffer(void);
-void newtDelay(int usecs);
-/* top, left are *not* counting the border */
-int newtOpenWindow(int left, int top, int width, int height,
- const char * title);
-int newtCenteredWindow(int width, int height, const char * title);
-void newtPopWindow(void);
-void newtSetColors(struct newtColors colors);
-void newtRefresh(void);
-void newtSuspend(void);
-void newtSetSuspendCallback(newtSuspendCallback cb, void * data);
-void newtSetHelpCallback(newtCallback cb);
-void newtResume(void);
-void newtPushHelpLine(const char * text);
-void newtRedrawHelpLine(void);
-void newtPopHelpLine(void);
-void newtDrawRootText(int col, int row, const char * text);
-void newtBell(void);
-void newtCursorOff(void);
-void newtCursorOn(void);
-
-/* Components */
-
-newtComponent newtCompactButton(int left, int top, const char * text);
-newtComponent newtButton(int left, int top, const char * text);
-newtComponent newtCheckbox(int left, int top, const char * text, char defValue,
- const char * seq, char * result);
-char newtCheckboxGetValue(newtComponent co);
-void newtCheckboxSetValue(newtComponent co, char value);
-void newtCheckboxSetFlags(newtComponent co, int flags, enum newtFlagsSense sense);
-
-
-newtComponent newtRadiobutton(int left, int top, const char * text, int isDefault,
- newtComponent prevButton);
-newtComponent newtRadioGetCurrent(newtComponent setMember);
-newtComponent newtListitem(int left, int top, const char * text, int isDefault,
- newtComponent prevItem, const void * data, int flags);
-void newtListitemSet(newtComponent co, const char * text);
-void * newtListitemGetData(newtComponent co);
-void newtGetScreenSize(int * cols, int * rows);
-
-newtComponent newtLabel(int left, int top, const char * text);
-void newtLabelSetText(newtComponent co, const char * text);
-newtComponent newtVerticalScrollbar(int left, int top, int height,
- int normalColorset, int thumbColorset);
-void newtScrollbarSet(newtComponent co, int where, int total);
-
-newtComponent newtListbox(int left, int top, int height, int flags);
-void * newtListboxGetCurrent(newtComponent co);
-void newtListboxSetCurrent(newtComponent co, int num);
-void newtListboxSetCurrentByKey(newtComponent co, void * key);
-void newtListboxSetEntry(newtComponent co, int num, const char * text);
-void newtListboxSetWidth(newtComponent co, int width);
-void newtListboxSetData(newtComponent co, int num, void * data);
-int newtListboxAppendEntry(newtComponent co, const char * text,
- const void * data);
-/* Send the key to insert after, or NULL to insert at the top */
-int newtListboxInsertEntry(newtComponent co, const char * text, const void * data, void * key);
-int newtListboxDeleteEntry(newtComponent co, void * data);
-void newtListboxClear(newtComponent co); /* removes all entries from listbox */
-void newtListboxGetEntry(newtComponent co, int num, char **text, void **data);
-/* Returns an array of data pointers from items, last element is NULL */
-void **newtListboxGetSelection(newtComponent co, int *numitems);
-void newtListboxClearSelection(newtComponent co);
-void newtListboxSelectItem(newtComponent co, const void * key,
- enum newtFlagsSense sense);
-
-newtComponent newtCheckboxTree(int left, int top, int height, int flags);
-newtComponent newtCheckboxTreeMulti(int left, int top, int height, char *seq, int flags);
-const void ** newtCheckboxTreeGetSelection(newtComponent co, int *numitems);
-const void * newtCheckboxTreeGetCurrent(newtComponent co);
-const void ** newtCheckboxTreeGetMultiSelection(newtComponent co, int *numitems, char seqnum);
-/* last item is NEWT_ARG_LAST for all of these */
-int newtCheckboxTreeAddItem(newtComponent co,
- const char * text, const void * data,
- int flags, int index, ...);
-int newtCheckboxTreeAddArray(newtComponent co,
- const char * text, const void * data,
- int flags, int * indexes);
-int * newtCheckboxTreeFindItem(newtComponent co, void * data);
-void newtCheckboxTreeSetEntry(newtComponent co, const void * data,
- const char * text);
-char newtCheckboxTreeGetEntryValue(newtComponent co, const void * data);
-void newtCheckboxTreeSetEntryValue(newtComponent co, const void * data,
- char value);
-
-newtComponent newtTextboxReflowed(int left, int top, char * text, int width,
- int flexDown, int flexUp, int flags);
-newtComponent newtTextbox(int left, int top, int width, int height, int flags);
-void newtTextboxSetText(newtComponent co, const char * text);
-void newtTextboxSetHeight(newtComponent co, int height);
-int newtTextboxGetNumLines(newtComponent co);
-char * newtReflowText(char * text, int width, int flexDown, int flexUp,
- int * actualWidth, int * actualHeight);
-
-struct newtExitStruct {
- enum { NEWT_EXIT_HOTKEY, NEWT_EXIT_COMPONENT, NEWT_EXIT_FDREADY,
- NEWT_EXIT_TIMER } reason;
- union {
- int key;
- newtComponent co;
- } u;
-} ;
-
-newtComponent newtForm(newtComponent vertBar, void * helpTag, int flags);
-void newtFormSetTimer(newtComponent form, int millisecs);
-void newtFormWatchFd(newtComponent form, int fd, int fdFlags);
-void newtFormSetSize(newtComponent co);
-newtComponent newtFormGetCurrent(newtComponent co);
-void newtFormSetBackground(newtComponent co, int color);
-void newtFormSetCurrent(newtComponent co, newtComponent subco);
-void newtFormAddComponent(newtComponent form, newtComponent co);
-void newtFormAddComponents(newtComponent form, ...);
-void newtFormSetHeight(newtComponent co, int height);
-void newtFormSetWidth(newtComponent co, int width);
-newtComponent newtRunForm(newtComponent form); /* obsolete */
-void newtFormRun(newtComponent co, struct newtExitStruct * es);
-void newtDrawForm(newtComponent form);
-void newtFormAddHotKey(newtComponent co, int key);
-
-typedef int (*newtEntryFilter)(newtComponent entry, void * data, int ch,
- int cursor);
-newtComponent newtEntry(int left, int top, const char * initialValue, int width,
- char ** resultPtr, int flags);
-void newtEntrySet(newtComponent co, const char * value, int cursorAtEnd);
-void newtEntrySetFilter(newtComponent co, newtEntryFilter filter, void * data);
-char * newtEntryGetValue(newtComponent co);
-void newtEntrySetFlags(newtComponent co, int flags, enum newtFlagsSense sense);
-
-newtComponent newtScale(int left, int top, int width, int fullValue);
-void newtScaleSet(newtComponent co, unsigned int amount);
-
-void newtComponentAddCallback(newtComponent co, newtCallback f, void * data);
-void newtComponentTakesFocus(newtComponent co, int val);
-
-/* this also destroys all of the components (including other forms) on the
- form */
-void newtFormDestroy(newtComponent form);
-
-/* Key codes */
-
-#define NEWT_KEY_TAB '\t'
-#define NEWT_KEY_ENTER '\r'
-#define NEWT_KEY_SUSPEND '\032' /* ctrl - z*/
-#define NEWT_KEY_RETURN NEWT_KEY_ENTER
-
-#define NEWT_KEY_EXTRA_BASE 0x8000
-#define NEWT_KEY_UP NEWT_KEY_EXTRA_BASE + 1
-#define NEWT_KEY_DOWN NEWT_KEY_EXTRA_BASE + 2
-#define NEWT_KEY_LEFT NEWT_KEY_EXTRA_BASE + 4
-#define NEWT_KEY_RIGHT NEWT_KEY_EXTRA_BASE + 5
-#define NEWT_KEY_BKSPC NEWT_KEY_EXTRA_BASE + 6
-#define NEWT_KEY_DELETE NEWT_KEY_EXTRA_BASE + 7
-#define NEWT_KEY_HOME NEWT_KEY_EXTRA_BASE + 8
-#define NEWT_KEY_END NEWT_KEY_EXTRA_BASE + 9
-#define NEWT_KEY_UNTAB NEWT_KEY_EXTRA_BASE + 10
-#define NEWT_KEY_PGUP NEWT_KEY_EXTRA_BASE + 11
-#define NEWT_KEY_PGDN NEWT_KEY_EXTRA_BASE + 12
-#define NEWT_KEY_INSERT NEWT_KEY_EXTRA_BASE + 13
-
-#define NEWT_KEY_F1 NEWT_KEY_EXTRA_BASE + 101
-#define NEWT_KEY_F2 NEWT_KEY_EXTRA_BASE + 102
-#define NEWT_KEY_F3 NEWT_KEY_EXTRA_BASE + 103
-#define NEWT_KEY_F4 NEWT_KEY_EXTRA_BASE + 104
-#define NEWT_KEY_F5 NEWT_KEY_EXTRA_BASE + 105
-#define NEWT_KEY_F6 NEWT_KEY_EXTRA_BASE + 106
-#define NEWT_KEY_F7 NEWT_KEY_EXTRA_BASE + 107
-#define NEWT_KEY_F8 NEWT_KEY_EXTRA_BASE + 108
-#define NEWT_KEY_F9 NEWT_KEY_EXTRA_BASE + 109
-#define NEWT_KEY_F10 NEWT_KEY_EXTRA_BASE + 110
-#define NEWT_KEY_F11 NEWT_KEY_EXTRA_BASE + 111
-#define NEWT_KEY_F12 NEWT_KEY_EXTRA_BASE + 112
-
-/* not really a key, but newtGetKey returns it */
-#define NEWT_KEY_RESIZE NEWT_KEY_EXTRA_BASE + 113
-
-#define NEWT_ANCHOR_LEFT (1 << 0)
-#define NEWT_ANCHOR_RIGHT (1 << 1)
-#define NEWT_ANCHOR_TOP (1 << 2)
-#define NEWT_ANCHOR_BOTTOM (1 << 3)
-
-#define NEWT_GRID_FLAG_GROWX (1 << 0)
-#define NEWT_GRID_FLAG_GROWY (1 << 1)
-
-typedef struct grid_s * newtGrid;
-enum newtGridElement { NEWT_GRID_EMPTY = 0,
- NEWT_GRID_COMPONENT, NEWT_GRID_SUBGRID };
-
-newtGrid newtCreateGrid(int cols, int rows);
-/* TYPE, what, TYPE, what, ..., NULL */
-newtGrid newtGridVStacked(enum newtGridElement type, void * what, ...);
-newtGrid newtGridVCloseStacked(enum newtGridElement type, void * what, ...);
-newtGrid newtGridHStacked(enum newtGridElement type1, void * what1, ...);
-newtGrid newtGridHCloseStacked(enum newtGridElement type1, void * what1, ...);
-newtGrid newtGridBasicWindow(newtComponent text, newtGrid middle,
- newtGrid buttons);
-newtGrid newtGridSimpleWindow(newtComponent text, newtComponent middle,
- newtGrid buttons);
-void newtGridSetField(newtGrid grid, int col, int row,
- enum newtGridElement type, void * val, int padLeft,
- int padTop, int padRight, int padBottom, int anchor,
- int flags);
-void newtGridPlace(newtGrid grid, int left, int top);
-#define newtGridDestroy newtGridFree
-void newtGridFree(newtGrid grid, int recurse);
-void newtGridGetSize(newtGrid grid, int * width, int * height);
-void newtGridWrappedWindow(newtGrid grid, char * title);
-void newtGridWrappedWindowAt(newtGrid grid, char * title, int left, int top);
-void newtGridAddComponentsToForm(newtGrid grid, newtComponent form,
- int recurse);
-
-/* convienve */
-newtGrid newtButtonBarv(char * button1, newtComponent * b1comp, va_list args);
-newtGrid newtButtonBar(char * button1, newtComponent * b1comp, ...);
-
-/* automatically centered and shrink wrapped */
-void newtWinMessage(char * title, char * buttonText, char * text, ...);
-void newtWinMessagev(char * title, char * buttonText, char * text,
- va_list argv);
-
-/* having separate calls for these two seems silly, but having two separate
- variable length-arg lists seems like a bad idea as well */
-
-/* Returns 0 if F12 was pressed, 1 for button1, 2 for button2 */
-int newtWinChoice(char * title, char * button1, char * button2,
- char * text, ...);
-/* Returns 0 if F12 was pressed, 1 for button1, 2 for button2,
- 3 for button3 */
-int newtWinTernary(char * title, char * button1, char * button2,
- char * button3, char * message, ...);
-
-/* Returns the button number pressed, 0 on F12 */
-int newtWinMenu(char * title, char * text, int suggestedWidth, int flexDown,
- int flexUp, int maxListHeight, char ** items, int * listItem,
- char * button1, ...);
-
-struct newtWinEntry {
- char * text;
- char ** value; /* may be initialized to set default */
- int flags;
-};
-
-/* Returns the button number pressed, 0 on F12. The final values are
- dynamically allocated, and need to be freed. */
-int newtWinEntries(char * title, char * text, int suggestedWidth, int flexDown,
- int flexUp, int dataWidth,
- struct newtWinEntry * items, char * button1, ...);
-
-#ifdef __cplusplus
-} /* End of extern "C" { */
-#endif
-
-#endif /* H_NEWT */
diff --git a/mdk-stage1/newt/newt_pr.h b/mdk-stage1/newt/newt_pr.h
deleted file mode 100644
index 76f5e2f6f..000000000
--- a/mdk-stage1/newt/newt_pr.h
+++ /dev/null
@@ -1,82 +0,0 @@
-#ifndef H_NEWT_PR
-#define H_NEWT_PR
-
-#define COLORSET_ROOT NEWT_COLORSET_ROOT
-#define COLORSET_BORDER NEWT_COLORSET_BORDER
-#define COLORSET_WINDOW NEWT_COLORSET_WINDOW
-#define COLORSET_SHADOW NEWT_COLORSET_SHADOW
-#define COLORSET_TITLE NEWT_COLORSET_TITLE
-#define COLORSET_BUTTON NEWT_COLORSET_BUTTON
-#define COLORSET_ACTBUTTON NEWT_COLORSET_ACTBUTTON
-#define COLORSET_CHECKBOX NEWT_COLORSET_CHECKBOX
-#define COLORSET_ACTCHECKBOX NEWT_COLORSET_ACTCHECKBOX
-#define COLORSET_ENTRY NEWT_COLORSET_ENTRY
-#define COLORSET_LABEL NEWT_COLORSET_LABEL
-#define COLORSET_LISTBOX NEWT_COLORSET_LISTBOX
-#define COLORSET_ACTLISTBOX NEWT_COLORSET_ACTLISTBOX
-#define COLORSET_TEXTBOX NEWT_COLORSET_TEXTBOX
-#define COLORSET_ACTTEXTBOX NEWT_COLORSET_ACTTEXTBOX
-
-int newtSetFlags(int oldFlags, int newFlags, enum newtFlagsSense sense);
-
-void newtGotorc(int row, int col);
-void newtGetrc(int * row, int * col);
-void newtGetWindowPos(int * x, int * y);
-void newtDrawBox(int left, int top, int width, int height, int shadow);
-void newtClearBox(int left, int top, int width, int height);
-
-int newtGetKey(void);
-
-struct newtComponent_struct {
- /* common data */
- int height, width;
- int top, left;
- int takesFocus;
- int isMapped;
-
- struct componentOps * ops;
-
- newtCallback callback;
- void * callbackData;
-
- void * data;
-} ;
-
-enum eventResultTypes { ER_IGNORED, ER_SWALLOWED, ER_EXITFORM, ER_SETFOCUS,
- ER_NEXTCOMP };
-struct eventResult {
- enum eventResultTypes result;
- union {
- newtComponent focus;
- } u;
-};
-
-enum eventTypes { EV_FOCUS, EV_UNFOCUS, EV_KEYPRESS, EV_MOUSE };
-enum eventSequence { EV_EARLY, EV_NORMAL, EV_LATE };
-
-struct event {
- enum eventTypes event;
- enum eventSequence when;
- union {
- int key;
- struct {
- enum { MOUSE_MOTION, MOUSE_BUTTON_DOWN, MOUSE_BUTTON_UP } type;
- int x, y;
- } mouse;
- } u;
-} ;
-
-struct componentOps {
- void (* draw)(newtComponent c);
- struct eventResult (* event)(newtComponent c, struct event ev);
- void (* destroy)(newtComponent c);
- void (* place)(newtComponent c, int newLeft, int newTop);
- void (* mapped)(newtComponent c, int isMapped);
-} ;
-
-void newtDefaultPlaceHandler(newtComponent c, int newLeft, int newTop);
-void newtDefaultMappedHandler(newtComponent c, int isMapped);
-struct eventResult newtDefaultEventHandler(newtComponent c,
- struct event ev);
-
-#endif /* H_NEWT_PR */
diff --git a/mdk-stage1/newt/scale.c b/mdk-stage1/newt/scale.c
deleted file mode 100644
index 800958580..000000000
--- a/mdk-stage1/newt/scale.c
+++ /dev/null
@@ -1,72 +0,0 @@
-#include <slang.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "newt.h"
-#include "newt_pr.h"
-
-struct scale {
- int fullValue;
- int charsSet;
-};
-
-static void scaleDraw(newtComponent co);
-
-static struct componentOps scaleOps = {
- scaleDraw,
- newtDefaultEventHandler,
- NULL,
- newtDefaultPlaceHandler,
- newtDefaultMappedHandler,
-} ;
-
-newtComponent newtScale(int left, int top, int width, int fullValue) {
- newtComponent co;
- struct scale * sc;
-
- co = malloc(sizeof(*co));
- sc = malloc(sizeof(struct scale));
- co->data = sc;
-
- co->ops = &scaleOps;
-
- co->height = 1;
- co->width = width;
- co->top = top;
- co->left = left;
- co->takesFocus = 0;
-
- sc->fullValue = fullValue;
- sc->charsSet = 0;
-
- return co;
-}
-
-void newtScaleSet(newtComponent co, unsigned int amount) {
- struct scale * sc = co->data;
- int newCharsSet;
-
- newCharsSet = (amount * co->width) / sc->fullValue;
-
- if (newCharsSet != sc->charsSet) {
- sc->charsSet = newCharsSet;
- scaleDraw(co);
- }
-}
-
-static void scaleDraw(newtComponent co) {
- struct scale * sc = co->data;
- int i;
-
- if (co->top == -1) return;
-
- newtGotorc(co->top, co->left);
-
- SLsmg_set_color(NEWT_COLORSET_FULLSCALE);
- for (i = 0; i < sc->charsSet; i++)
- SLsmg_write_string(" ");
-
- SLsmg_set_color(NEWT_COLORSET_EMPTYSCALE);
- for (i = 0; i < (co->width - sc->charsSet); i++)
- SLsmg_write_string(" ");
-}
diff --git a/mdk-stage1/newt/scrollbar.c b/mdk-stage1/newt/scrollbar.c
deleted file mode 100644
index cb4bc2757..000000000
--- a/mdk-stage1/newt/scrollbar.c
+++ /dev/null
@@ -1,124 +0,0 @@
-#include <slang.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "newt.h"
-#include "newt_pr.h"
-
-struct scrollbar {
- int curr;
- int cs, csThumb;
- int arrows;
-} ;
-
-static void sbDraw(newtComponent co);
-static void sbDestroy(newtComponent co);
-static void sbDrawThumb(newtComponent co, int isOn);
-
-static struct componentOps sbOps = {
- sbDraw,
- newtDefaultEventHandler,
- sbDestroy,
- newtDefaultPlaceHandler,
- newtDefaultMappedHandler,
-} ;
-
-void newtScrollbarSet(newtComponent co, int where, int total) {
- struct scrollbar * sb = co->data;
- int new;
-
- if (sb->arrows)
- new = (where * (co->height - 3)) / (total ? total : 1) + 1;
- else
- new = (where * (co->height - 1)) / (total ? total : 1);
- if (new != sb->curr) {
- sbDrawThumb(co, 0);
- sb->curr = new;
- sbDrawThumb(co, 1);
- }
-}
-
-newtComponent newtVerticalScrollbar(int left, int top, int height,
- int normalColorset, int thumbColorset) {
- newtComponent co;
- struct scrollbar * sb;
-
- co = malloc(sizeof(*co));
- sb = malloc(sizeof(*sb));
- co->data = sb;
-
- if (!strcmp(getenv("TERM"), "linux") && height >= 2) {
- sb->arrows = 1;
- sb->curr = 1;
- } else {
- sb->arrows = 0;
- sb->curr = 0;
- }
- sb->cs = normalColorset;
- sb->csThumb = thumbColorset;
-
- co->ops = &sbOps;
- co->isMapped = 0;
- co->left = left;
- co->top = top;
- co->height = height;
- co->width = 1;
- co->takesFocus = 0;
-
- return co;
-}
-
-static void sbDraw(newtComponent co) {
- struct scrollbar * sb = co->data;
- int i;
-
- if (!co->isMapped) return;
-
- SLsmg_set_color(sb->cs);
-
- SLsmg_set_char_set(1);
- if (sb->arrows) {
- newtGotorc(co->top, co->left);
- SLsmg_write_char('\x2d');
- for (i = 1; i < co->height - 1; i++) {
- newtGotorc(i + co->top, co->left);
- SLsmg_write_char('\x61');
- }
- newtGotorc(co->top + co->height - 1, co->left);
- SLsmg_write_char('\x2e');
- } else {
- for (i = 0; i < co->height; i++) {
- newtGotorc(i + co->top, co->left);
- SLsmg_write_char('\x61');
- }
- }
-
- SLsmg_set_char_set(0);
-
- sbDrawThumb(co, 1);
-}
-
-static void sbDrawThumb(newtComponent co, int isOn) {
- struct scrollbar * sb = co->data;
- char ch = isOn ? '#' : '\x61';
-
- if (!co->isMapped) return;
-
- newtGotorc(sb->curr + co->top, co->left);
- SLsmg_set_char_set(1);
-
- /*if (isOn)
- SLsmg_set_color(sb->csThumb);
- else*/
- SLsmg_set_color(sb->cs);
-
- SLsmg_write_char(ch);
- SLsmg_set_char_set(0);
-}
-
-static void sbDestroy(newtComponent co) {
- struct scrollbar * sb = co->data;
-
- free(sb);
- free(co);
-}
diff --git a/mdk-stage1/newt/textbox.c b/mdk-stage1/newt/textbox.c
deleted file mode 100644
index 8eb4ae4db..000000000
--- a/mdk-stage1/newt/textbox.c
+++ /dev/null
@@ -1,409 +0,0 @@
-#include <ctype.h>
-#include <slang.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "newt.h"
-#include "newt_pr.h"
-
-struct textbox {
- char ** lines;
- int numLines;
- int linesAlloced;
- int doWrap;
- newtComponent sb;
- int topLine;
- int textWidth;
-};
-
-static char * expandTabs(const char * text);
-static void textboxDraw(newtComponent co);
-static void addLine(newtComponent co, const char * s, int len);
-static void doReflow(const char * text, char ** resultPtr, int width,
- int * badness, int * heightPtr);
-static struct eventResult textboxEvent(newtComponent c,
- struct event ev);
-static void textboxDestroy(newtComponent co);
-static void textboxPlace(newtComponent co, int newLeft, int newTop);
-static void textboxMapped(newtComponent co, int isMapped);
-
-static struct componentOps textboxOps = {
- textboxDraw,
- textboxEvent,
- textboxDestroy,
- textboxPlace,
- textboxMapped,
-} ;
-
-static void textboxMapped(newtComponent co, int isMapped) {
- struct textbox * tb = co->data;
-
- co->isMapped = isMapped;
- if (tb->sb)
- tb->sb->ops->mapped(tb->sb, isMapped);
-}
-
-static void textboxPlace(newtComponent co, int newLeft, int newTop) {
- struct textbox * tb = co->data;
-
- co->top = newTop;
- co->left = newLeft;
-
- if (tb->sb)
- tb->sb->ops->place(tb->sb, co->left + co->width - 1, co->top);
-}
-
-void newtTextboxSetHeight(newtComponent co, int height) {
- co->height = height;
-}
-
-int newtTextboxGetNumLines(newtComponent co) {
- struct textbox * tb = co->data;
-
- return (tb->numLines);
-}
-
-newtComponent newtTextboxReflowed(int left, int top, char * text, int width,
- int flexDown, int flexUp, int flags __attribute__ ((unused))) {
- newtComponent co;
- char * reflowedText;
- int actWidth, actHeight;
-
- reflowedText = newtReflowText(text, width, flexDown, flexUp,
- &actWidth, &actHeight);
-
- co = newtTextbox(left, top, actWidth, actHeight, NEWT_FLAG_WRAP);
- newtTextboxSetText(co, reflowedText);
- free(reflowedText);
-
- return co;
-}
-
-newtComponent newtTextbox(int left, int top, int width, int height, int flags) {
- newtComponent co;
- struct textbox * tb;
-
- co = malloc(sizeof(*co));
- tb = malloc(sizeof(*tb));
- co->data = tb;
-
- co->ops = &textboxOps;
-
- co->height = height;
- co->top = top;
- co->left = left;
- co->takesFocus = 0;
- co->width = width;
-
- tb->doWrap = flags & NEWT_FLAG_WRAP;
- tb->numLines = 0;
- tb->linesAlloced = 0;
- tb->lines = NULL;
- tb->topLine = 0;
- tb->textWidth = width;
-
- if (flags & NEWT_FLAG_SCROLL) {
- co->width += 2;
- tb->sb = newtVerticalScrollbar(co->left + co->width - 1, co->top,
- co->height, COLORSET_TEXTBOX, COLORSET_TEXTBOX);
- } else {
- tb->sb = NULL;
- }
-
- return co;
-}
-
-static char * expandTabs(const char * text) {
- int bufAlloced = strlen(text) + 40;
- char * buf, * dest;
- const char * src;
- int bufUsed = 0;
- int linePos = 0;
- int i;
-
- buf = malloc(bufAlloced + 1);
- for (src = text, dest = buf; *src; src++) {
- if ((bufUsed + 10) > bufAlloced) {
- bufAlloced += strlen(text) / 2;
- buf = realloc(buf, bufAlloced + 1);
- dest = buf + bufUsed;
- }
- if (*src == '\t') {
- i = 8 - (linePos & 8);
- memset(dest, ' ', i);
- dest += i, bufUsed += i, linePos += i;
- } else {
- if (*src == '\n')
- linePos = 0;
- else
- linePos++;
-
- *dest++ = *src;
- bufUsed++;
- }
- }
-
- *dest = '\0';
- return buf;
-}
-
-#define iseuckanji(c) (0xa1 <= (unsigned char)(c&0xff) && (unsigned char)(c&0xff) <= 0xfe)
-
-static void doReflow(const char * text, char ** resultPtr, int width,
- int * badness, int * heightPtr) {
- char * result = NULL;
- const char * chptr, * end;
- int i;
- int howbad = 0;
- int height = 0;
- int kanji = 0;
-
- if (resultPtr) {
- /* XXX I think this will work */
- result = malloc(strlen(text) + (strlen(text) / width) + 50);
- *result = '\0';
- }
-
- while (*text) {
- kanji = 0;
- end = strchr(text, '\n');
- if (!end)
- end = text + strlen(text);
-
- while (*text && text < end) {
- if (end - text < width) {
- if (result) {
- strncat(result, text, end - text);
- strcat(result, "\n");
- height++;
- }
-
- if (end - text < (width / 2))
- howbad += ((width / 2) - (end - text)) / 2;
- text = end;
- if (*text) text++;
- } else {
- chptr = text;
- kanji = 0;
- for ( i = 0; i < width - 1; i++ ) {
- if ( !iseuckanji(*chptr)) {
- kanji = 0;
- } else if ( kanji == 1 ) {
- kanji = 2;
- } else {
- kanji = 1;
- }
- chptr++;
- }
- if (kanji == 0) {
- while (chptr > text && !isspace(*chptr)) chptr--;
- while (chptr > text && isspace(*chptr)) chptr--;
- chptr++;
- }
-
- if (chptr-text == 1 && !isspace(*chptr))
- chptr = text + width - 1;
-
- if (chptr > text)
- howbad += width - (chptr - text) + 1;
- if (result) {
- if (kanji == 1) {
- strncat(result, text, chptr - text + 1);
- chptr++;
- kanji = 0;
- } else {
- strncat(result, text, chptr - text);
- }
- strcat(result, "\n");
- height++;
- }
-
- if (isspace(*chptr))
- text = chptr + 1;
- else
- text = chptr;
- while (isspace(*text)) text++;
- }
- }
- }
-
-// if (result) printf("result: %s\n", result);
-
- if (badness) *badness = howbad;
- if (resultPtr) *resultPtr = result;
- if (heightPtr) *heightPtr = height;
-}
-
-char * newtReflowText(char * text, int width, int flexDown, int flexUp,
- int * actualWidth, int * actualHeight) {
- int min, max;
- int i;
- char * result;
- int minbad, minbadwidth, howbad;
- char * expandedText;
-
- expandedText = expandTabs(text);
-
- if (flexDown || flexUp) {
- min = width - flexDown;
- max = width + flexUp;
-
- minbad = -1;
- minbadwidth = width;
-
- for (i = min; i <= max; i++) {
- doReflow(expandedText, NULL, i, &howbad, NULL);
-
- if (minbad == -1 || howbad < minbad) {
- minbad = howbad;
- minbadwidth = i;
- }
- }
-
- width = minbadwidth;
- }
-
- doReflow(expandedText, &result, width, NULL, actualHeight);
- free(expandedText);
- if (actualWidth) *actualWidth = width;
- return result;
-}
-
-void newtTextboxSetText(newtComponent co, const char * text) {
- const char * start, * end;
- struct textbox * tb = co->data;
- char * reflowed, * expanded;
- int badness, height;
-
- if (tb->lines) {
- free(tb->lines);
- tb->linesAlloced = tb->numLines = 0;
- }
-
- expanded = expandTabs(text);
-
- if (tb->doWrap) {
- doReflow(expanded, &reflowed, tb->textWidth, &badness, &height);
- free(expanded);
- expanded = reflowed;
- }
-
- for (start = expanded; *start; start++)
- if (*start == '\n') tb->linesAlloced++;
-
- /* This ++ leaves room for an ending line w/o a \n */
- tb->linesAlloced++;
- tb->lines = malloc(sizeof(char *) * tb->linesAlloced);
-
- start = expanded;
- while ((end = strchr(start, '\n'))) {
- addLine(co, start, end - start);
- start = end + 1;
- }
-
- if (*start)
- addLine(co, start, strlen(start));
-
- free(expanded);
-}
-
-/* This assumes the buffer is allocated properly! */
-static void addLine(newtComponent co, const char * s, int len) {
- struct textbox * tb = co->data;
-
- if (len > tb->textWidth) len = tb->textWidth;
-
- tb->lines[tb->numLines] = malloc(tb->textWidth + 1);
- memset(tb->lines[tb->numLines], ' ', tb->textWidth);
- memcpy(tb->lines[tb->numLines], s, len);
- tb->lines[tb->numLines++][tb->textWidth] = '\0';
-}
-
-static void textboxDraw(newtComponent c) {
- int i;
- struct textbox * tb = c->data;
- int size;
-
- if (tb->sb) {
- size = tb->numLines - c->height;
- newtScrollbarSet(tb->sb, tb->topLine, size ? size : 0);
- tb->sb->ops->draw(tb->sb);
- }
-
- SLsmg_set_color(NEWT_COLORSET_TEXTBOX);
-
- for (i = 0; (i + tb->topLine) < tb->numLines && i < c->height; i++) {
- newtGotorc(c->top + i, c->left);
- SLsmg_write_string(tb->lines[i + tb->topLine]);
- }
-}
-
-static struct eventResult textboxEvent(newtComponent co,
- struct event ev) {
- struct textbox * tb = co->data;
- struct eventResult er;
-
- er.result = ER_IGNORED;
-
- if (ev.when == EV_EARLY && ev.event == EV_KEYPRESS && tb->sb) {
- switch (ev.u.key) {
- case NEWT_KEY_UP:
- if (tb->topLine) tb->topLine--;
- textboxDraw(co);
- er.result = ER_SWALLOWED;
- break;
-
- case NEWT_KEY_DOWN:
- if (tb->topLine < (tb->numLines - co->height)) tb->topLine++;
- textboxDraw(co);
- er.result = ER_SWALLOWED;
- break;
-
- case NEWT_KEY_PGDN:
- tb->topLine += co->height;
- if (tb->topLine > (tb->numLines - co->height)) {
- tb->topLine = tb->numLines - co->height;
- if (tb->topLine < 0) tb->topLine = 0;
- }
- textboxDraw(co);
- er.result = ER_SWALLOWED;
- break;
-
- case NEWT_KEY_PGUP:
- tb->topLine -= co->height;
- if (tb->topLine < 0) tb->topLine = 0;
- textboxDraw(co);
- er.result = ER_SWALLOWED;
- break;
- }
- }
- if (ev.when == EV_EARLY && ev.event == EV_MOUSE && tb->sb) {
- /* Top scroll arrow */
- if (ev.u.mouse.x == co->width && ev.u.mouse.y == co->top) {
- if (tb->topLine) tb->topLine--;
- textboxDraw(co);
-
- er.result = ER_SWALLOWED;
- }
- /* Bottom scroll arrow */
- if (ev.u.mouse.x == co->width &&
- ev.u.mouse.y == co->top + co->height - 1) {
- if (tb->topLine < (tb->numLines - co->height)) tb->topLine++;
- textboxDraw(co);
-
- er.result = ER_SWALLOWED;
- }
- }
- return er;
-}
-
-static void textboxDestroy(newtComponent co) {
- int i;
- struct textbox * tb = co->data;
-
- for (i = 0; i < tb->numLines; i++)
- free(tb->lines[i]);
- free(tb->lines);
- free(tb);
- free(co);
-}
diff --git a/mdk-stage1/newt/windows.c b/mdk-stage1/newt/windows.c
deleted file mode 100644
index 30a8d526c..000000000
--- a/mdk-stage1/newt/windows.c
+++ /dev/null
@@ -1,275 +0,0 @@
-#include <errno.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "errno.h"
-#include "newt.h"
-
-static void * newtvwindow(char * title, char * button1, char * button2,
- char * button3, char * message, va_list args) {
- newtComponent b1, b2 = NULL, b3 = NULL, t, f, answer;
- char * buf = NULL;
- int size = 0;
- int i = 0;
- int scroll = 0;
- int width, height;
- char * flowedText;
- newtGrid grid, buttonGrid;
-
- do {
- size += 1000;
- if (buf) free(buf);
- buf = malloc(size);
- i = vsnprintf(buf, size, message, args);
- } while (i >= size || i == -1);
-
- flowedText = newtReflowText(buf, 50, 5, 5, &width, &height);
- if (height > 6) {
- free(flowedText);
- flowedText = newtReflowText(buf, 60, 5, 5, &width, &height);
- }
- free(buf);
-
- if (height > 12) {
- height = 12;
- scroll = NEWT_FLAG_SCROLL;
- }
- t = newtTextbox(-1, -1, width, height, NEWT_TEXTBOX_WRAP | scroll);
- newtTextboxSetText(t, flowedText);
- free(flowedText);
-
- if (button3) {
- buttonGrid = newtButtonBar(button1, &b1, button2, &b2,
- button3, &b3, NULL);
- } else if (button2) {
- buttonGrid = newtButtonBar(button1, &b1, button2, &b2, NULL);
- } else {
- buttonGrid = newtButtonBar(button1, &b1, NULL);
- }
-
- newtGridSetField(buttonGrid, 0, 0, NEWT_GRID_COMPONENT, b1,
- 0, 0, button2 ? 1 : 0, 0, 0, 0);
-
- grid = newtCreateGrid(1, 2);
- newtGridSetField(grid, 0, 0, NEWT_GRID_COMPONENT, t, 0, 0, 0, 0, 0, 0);
- newtGridSetField(grid, 0, 1, NEWT_GRID_SUBGRID, buttonGrid,
- 0, 1, 0, 0, 0, NEWT_GRID_FLAG_GROWX);
- newtGridWrappedWindow(grid, title);
-
- f = newtForm(NULL, NULL, 0);
- newtFormAddComponents(f, t, b1, NULL);
-
- if (button2)
- newtFormAddComponent(f, b2);
- if (button3)
- newtFormAddComponent(f, b3);
-
- answer = newtRunForm(f);
- newtGridFree(grid, 1);
-
- newtFormDestroy(f);
- newtPopWindow();
-
- if (answer == f)
- return NULL;
- else if (answer == b1)
- return button1;
- else if (answer == b2)
- return button2;
-
- return button3;
-}
-
-int newtWinChoice(char * title, char * button1, char * button2,
- char * message, ...) {
- va_list args;
- void * rc;
-
- va_start(args, message);
- rc = newtvwindow(title, button1, button2, NULL, message, args);
- va_end(args);
-
- if (rc == button1)
- return 1;
- else if (rc == button2)
- return 2;
-
- return 0;
-}
-
-void newtWinMessage(char * title, char * buttonText, char * text, ...) {
- va_list args;
-
- va_start(args, text);
- newtvwindow(title, buttonText, NULL, NULL, text, args);
- va_end(args);
-}
-
-void newtWinMessagev(char * title, char * buttonText, char * text,
- va_list argv) {
- newtvwindow(title, buttonText, NULL, NULL, text, argv);
-}
-
-int newtWinTernary(char * title, char * button1, char * button2,
- char * button3, char * message, ...) {
- va_list args;
- void * rc;
-
- va_start(args, message);
- rc = newtvwindow(title, button1, button2, button3, message, args);
- va_end(args);
-
- if (rc == button1)
- return 1;
- else if (rc == button2)
- return 2;
- else if (rc == button3)
- return 3;
-
- return 0;
-}
-
-/* only supports up to 50 buttons -- shucks! */
-int newtWinMenu(char * title, char * text, int suggestedWidth, int flexDown,
- int flexUp, int maxListHeight, char ** items, int * listItem,
- char * button1, ...) {
- newtComponent textbox, listbox, result, form;
- va_list args;
- newtComponent buttons[50];
- newtGrid grid, buttonBar;
- int numButtons;
- int i, rc;
- int needScroll;
- char * buttonName;
-
- textbox = newtTextboxReflowed(-1, -1, text, suggestedWidth, flexDown,
- flexUp, 0);
-
- for (i = 0; items[i]; i++) ;
- if (i < maxListHeight) maxListHeight = i;
- needScroll = i > maxListHeight;
-
- listbox = newtListbox(-1, -1, maxListHeight,
- (needScroll ? NEWT_FLAG_SCROLL : 0) | NEWT_FLAG_RETURNEXIT);
- for (i = 0; items[i]; i++) {
- newtListboxAddEntry(listbox, items[i], (void *) (long)i);
- }
-
- newtListboxSetCurrent(listbox, *listItem);
-
- buttonName = button1, numButtons = 0;
- va_start(args, button1);
- while (buttonName) {
- buttons[numButtons] = newtButton(-1, -1, buttonName);
- numButtons++;
- buttonName = va_arg(args, char *);
- }
-
- va_end(args);
-
- buttonBar = newtCreateGrid(numButtons, 1);
- for (i = 0; i < numButtons; i++) {
- newtGridSetField(buttonBar, i, 0, NEWT_GRID_COMPONENT,
- buttons[i],
- i ? 1 : 0, 0, 0, 0, 0, 0);
- }
-
- grid = newtGridSimpleWindow(textbox, listbox, buttonBar);
- newtGridWrappedWindow(grid, title);
-
- form = newtForm(NULL, 0, 0);
- newtGridAddComponentsToForm(grid, form, 1);
- newtGridFree(grid, 1);
-
- result = newtRunForm(form);
-
- *listItem = ((long) newtListboxGetCurrent(listbox));
-
- for (rc = 0; result != buttons[rc] && rc < numButtons; rc++);
- if (rc == numButtons)
- rc = 0; /* F12 or return-on-exit (which are the same for us) */
- else
- rc++;
-
- newtFormDestroy(form);
- newtPopWindow();
-
- return rc;
-}
-
-/* only supports up to 50 buttons and entries -- shucks! */
-int newtWinEntries(char * title, char * text, int suggestedWidth, int flexDown,
- int flexUp, int dataWidth,
- struct newtWinEntry * items, char * button1, ...) {
- newtComponent buttons[50], result, form, textw;
- newtGrid grid, buttonBar, subgrid;
- int numItems;
- int rc, i;
- int numButtons;
- char * buttonName;
- va_list args;
-
- textw = newtTextboxReflowed(-1, -1, text, suggestedWidth, flexDown,
- flexUp, 0);
-
- for (numItems = 0; items[numItems].text; numItems++);
-
- buttonName = button1, numButtons = 0;
- va_start(args, button1);
- while (buttonName) {
- buttons[numButtons] = newtButton(-1, -1, buttonName);
- numButtons++;
- buttonName = va_arg(args, char *);
- }
-
- va_end(args);
-
- buttonBar = newtCreateGrid(numButtons, 1);
- for (i = 0; i < numButtons; i++) {
- newtGridSetField(buttonBar, i, 0, NEWT_GRID_COMPONENT,
- buttons[i],
- i ? 1 : 0, 0, 0, 0, 0, 0);
- }
-
- subgrid = newtCreateGrid(2, numItems);
- for (i = 0; i < numItems; i++) {
- newtGridSetField(subgrid, 0, i, NEWT_GRID_COMPONENT,
- newtLabel(-1, -1, items[i].text),
- 0, 0, 0, 0, NEWT_ANCHOR_LEFT, 0);
- newtGridSetField(subgrid, 1, i, NEWT_GRID_COMPONENT,
- newtEntry(-1, -1, items[i].value ?
- *items[i].value : NULL, dataWidth,
- items[i].value, items[i].flags),
- 1, 0, 0, 0, 0, 0);
- }
-
- grid = newtCreateGrid(1, 3);
- form = newtForm(NULL, 0, 0);
- newtGridSetField(grid, 0, 0, NEWT_GRID_COMPONENT, textw,
- 0, 0, 0, 0, NEWT_ANCHOR_LEFT, 0);
- newtGridSetField(grid, 0, 1, NEWT_GRID_SUBGRID, subgrid,
- 0, 1, 0, 0, 0, 0);
- newtGridSetField(grid, 0, 2, NEWT_GRID_SUBGRID, buttonBar,
- 0, 1, 0, 0, 0, NEWT_GRID_FLAG_GROWX);
- newtGridAddComponentsToForm(grid, form, 1);
- newtGridWrappedWindow(grid, title);
- newtGridFree(grid, 1);
-
- result = newtRunForm(form);
-
- for (rc = 0; rc < numItems; rc++)
- *items[rc].value = strdup(*items[rc].value);
-
- for (rc = 0; result != buttons[rc] && rc < numButtons; rc++);
- if (rc == numButtons)
- rc = 0; /* F12 */
- else
- rc++;
-
- newtFormDestroy(form);
- newtPopWindow();
-
- return rc;
-}
diff --git a/mdk-stage1/nfs_mount4.h b/mdk-stage1/nfs_mount4.h
deleted file mode 100644
index 85650773a..000000000
--- a/mdk-stage1/nfs_mount4.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * We want to be able to compile mount on old kernels in such a way
- * that the binary will work well on more recent kernels.
- * Thus, if necessary we teach nfsmount.c the structure of new fields
- * that will come later.
- *
- * Moreover, the new kernel includes conflict with glibc includes
- * so it is easiest to ignore the kernel altogether (at compile time).
- */
-
-#define NFS_MOUNT_VERSION 4
-
-struct nfs2_fh {
- char data[32];
-};
-struct nfs3_fh {
- unsigned short size;
- unsigned char data[64];
-};
-
-struct nfs_mount_data {
- int version; /* 1 */
- int fd; /* 1 */
- struct nfs2_fh old_root; /* 1 */
- int flags; /* 1 */
- int rsize; /* 1 */
- int wsize; /* 1 */
- int timeo; /* 1 */
- int retrans; /* 1 */
- int acregmin; /* 1 */
- int acregmax; /* 1 */
- int acdirmin; /* 1 */
- int acdirmax; /* 1 */
- struct sockaddr_in addr; /* 1 */
- char hostname[256]; /* 1 */
- int namlen; /* 2 */
- unsigned int bsize; /* 3 */
- struct nfs3_fh root; /* 4 */
-};
-
-/* bits in the flags field */
-
-#define NFS_MOUNT_SOFT 0x0001 /* 1 */
-#define NFS_MOUNT_INTR 0x0002 /* 1 */
-#define NFS_MOUNT_SECURE 0x0004 /* 1 */
-#define NFS_MOUNT_POSIX 0x0008 /* 1 */
-#define NFS_MOUNT_NOCTO 0x0010 /* 1 */
-#define NFS_MOUNT_NOAC 0x0020 /* 1 */
-#define NFS_MOUNT_TCP 0x0040 /* 2 */
-#define NFS_MOUNT_VER3 0x0080 /* 3 */
-#define NFS_MOUNT_KERBEROS 0x0100 /* 3 */
-#define NFS_MOUNT_NONLM 0x0200 /* 3 */
-#define NFS_MOUNT_BROKEN_SUID 0x0400 /* 4 */
-
diff --git a/mdk-stage1/nfsmount.c b/mdk-stage1/nfsmount.c
deleted file mode 100644
index ce329d43c..000000000
--- a/mdk-stage1/nfsmount.c
+++ /dev/null
@@ -1,740 +0,0 @@
- /*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
- *
- * Copyright 2003 Mandrakesoft
- *
- * This software may be freely redistributed under the terms of the GNU
- * public license.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * basing on nfsmount.c from util-linux-2.11z:
- * - use our logging facilities
- * - use our host resolving stuff
- * - remove unneeded code
- */
-
-/*
- * nfsmount.c -- Linux NFS mount
- * Copyright (C) 1993 Rick Sladkey <jrs@world.std.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * Wed Feb 8 12:51:48 1995, biro@yggdrasil.com (Ross Biro): allow all port
- * numbers to be specified on the command line.
- *
- * Fri, 8 Mar 1996 18:01:39, Swen Thuemmler <swen@uni-paderborn.de>:
- * Omit the call to connect() for Linux version 1.3.11 or later.
- *
- * Wed Oct 1 23:55:28 1997: Dick Streefland <dick_streefland@tasking.com>
- * Implemented the "bg", "fg" and "retry" mount options for NFS.
- *
- * 1999-02-22 Arkadiusz Miśkiewicz <misiek@pld.ORG.PL>
- * - added Native Language Support
- *
- * Modified by Olaf Kirch and Trond Myklebust for new NFS code,
- * plus NFSv3 stuff.
- *
- * 2003-04-14 David Black <david.black@xilinx.com>
- * - added support for multiple hostname NFS mounts
- */
-
-/*
- * nfsmount.c,v 1.1.1.1 1993/11/18 08:40:51 jrs Exp
- */
-
-#define HAVE_rpcsvc_nfs_prot_h
-#define HAVE_inet_aton
-
-#include <unistd.h>
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <netdb.h>
-#include <time.h>
-#include <rpc/rpc.h>
-#include <rpc/pmap_prot.h>
-#include <rpc/pmap_clnt.h>
-#include <sys/socket.h>
-#include <sys/time.h>
-#include <sys/utsname.h>
-#include <sys/stat.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <values.h>
-
-#include "nfsmount.h"
-
-#ifdef HAVE_rpcsvc_nfs_prot_h
-#include <rpcsvc/nfs_prot.h>
-#else
-#include <linux/nfs.h>
-#define nfsstat nfs_stat
-#endif
-
-#include "nfs_mount4.h"
-
-#include "log.h"
-#include "dns.h"
-
-#ifndef NFS_PORT
-#define NFS_PORT 2049
-#endif
-#ifndef NFS_FHSIZE
-#define NFS_FHSIZE 32
-#endif
-
-static char *nfs_strerror(int stat);
-
-#define MAKE_VERSION(p,q,r) (65536*(p) + 256*(q) + (r))
-
-#define MAX_NFSPROT ((nfs_mount_version >= 4) ? 3 : 2)
-
-bool_t
-xdr_fhandle3 (XDR *xdrs, fhandle3 *objp)
-{
- if (!xdr_bytes (xdrs, (char **)&objp->fhandle3_val, (u_int *) &objp->fhandle3_len, FHSIZE3))
- return FALSE;
- return TRUE;
-}
-
-bool_t
-xdr_mountstat3 (XDR *xdrs, mountstat3 *objp)
-{
- if (!xdr_enum (xdrs, (enum_t *) objp))
- return FALSE;
- return TRUE;
-}
-
-bool_t
-xdr_mountres3_ok (XDR *xdrs, mountres3_ok *objp)
-{
- if (!xdr_fhandle3 (xdrs, &objp->fhandle))
- return FALSE;
- if (!xdr_array (xdrs, (char **)&objp->auth_flavours.auth_flavours_val, (u_int *) &objp->auth_flavours.auth_flavours_len, ~0,
- sizeof (int), (xdrproc_t) xdr_int))
- return FALSE;
- return TRUE;
-}
-
-bool_t
-xdr_mountres3 (XDR *xdrs, mountres3 *objp)
-{
- if (!xdr_mountstat3 (xdrs, &objp->fhs_status))
- return FALSE;
- switch (objp->fhs_status) {
- case MNT_OK:
- if (!xdr_mountres3_ok (xdrs, &objp->mountres3_u.mountinfo))
- return FALSE;
- break;
- default:
- break;
- }
- return TRUE;
-}
-
-bool_t
-xdr_dirpath (XDR *xdrs, dirpath *objp)
-{
- if (!xdr_string (xdrs, objp, MNTPATHLEN))
- return FALSE;
- return TRUE;
-}
-
-bool_t
-xdr_fhandle (XDR *xdrs, fhandle objp)
-{
- if (!xdr_opaque (xdrs, objp, FHSIZE))
- return FALSE;
- return TRUE;
-}
-
-bool_t
-xdr_fhstatus (XDR *xdrs, fhstatus *objp)
-{
- if (!xdr_u_int (xdrs, &objp->fhs_status))
- return FALSE;
- switch (objp->fhs_status) {
- case 0:
- if (!xdr_fhandle (xdrs, objp->fhstatus_u.fhs_fhandle))
- return FALSE;
- break;
- default:
- break;
- }
- return TRUE;
-}
-
-
-static int
-linux_version_code(void) {
- struct utsname my_utsname;
- int p, q, r;
-
- if (uname(&my_utsname) == 0) {
- p = atoi(strtok(my_utsname.release, "."));
- q = atoi(strtok(NULL, "."));
- r = atoi(strtok(NULL, "."));
- return MAKE_VERSION(p,q,r);
- }
- return 0;
-}
-
-/*
- * Unfortunately, the kernel prints annoying console messages
- * in case of an unexpected nfs mount version (instead of
- * just returning some error). Therefore we'll have to try
- * and figure out what version the kernel expects.
- *
- * Variables:
- * NFS_MOUNT_VERSION: these nfsmount sources at compile time
- * nfs_mount_version: version this source and running kernel can handle
- */
-static int
-find_kernel_nfs_mount_version(void) {
- static int kernel_version = -1;
- int nfs_mount_version = NFS_MOUNT_VERSION;
-
- if (kernel_version == -1)
- kernel_version = linux_version_code();
-
- if (kernel_version) {
- if (kernel_version < MAKE_VERSION(2,1,32))
- nfs_mount_version = 1;
- else if (kernel_version < MAKE_VERSION(2,2,18))
- nfs_mount_version = 3;
- else if (kernel_version < MAKE_VERSION(2,3,0))
- nfs_mount_version = 4; /* since 2.2.18pre9 */
- else if (kernel_version < MAKE_VERSION(2,3,99))
- nfs_mount_version = 3;
- else
- nfs_mount_version = 4; /* since 2.3.99pre4 */
- }
- if (nfs_mount_version > NFS_MOUNT_VERSION)
- nfs_mount_version = NFS_MOUNT_VERSION;
- log_message("nfsmount: kernel_nfs_mount_version: %d", nfs_mount_version);
- return nfs_mount_version;
-}
-
-static struct pmap *
-get_mountport(struct sockaddr_in *server_addr,
- long unsigned prog,
- long unsigned version,
- long unsigned proto,
- long unsigned port,
- int nfs_mount_version)
-{
- struct pmaplist *pmap;
- static struct pmap p = {0, 0, 0, 0};
-
- if (version > MAX_NFSPROT)
- version = MAX_NFSPROT;
- if (!prog)
- prog = MOUNTPROG;
- p.pm_prog = prog;
- p.pm_vers = version;
- p.pm_prot = proto;
- p.pm_port = port;
-
- server_addr->sin_port = PMAPPORT;
- pmap = pmap_getmaps(server_addr);
-
- while (pmap) {
- if (pmap->pml_map.pm_prog != prog)
- goto next;
- if (!version && p.pm_vers > pmap->pml_map.pm_vers)
- goto next;
- if (version > 2 && pmap->pml_map.pm_vers != version)
- goto next;
- if (version && version <= 2 && pmap->pml_map.pm_vers > 2)
- goto next;
- if (pmap->pml_map.pm_vers > MAX_NFSPROT ||
- (proto && p.pm_prot && pmap->pml_map.pm_prot != proto) ||
- (port && pmap->pml_map.pm_port != port))
- goto next;
- memcpy(&p, &pmap->pml_map, sizeof(p));
- next:
- pmap = pmap->pml_next;
- }
- if (!p.pm_vers)
- p.pm_vers = MOUNTVERS;
- if (!p.pm_prot)
- p.pm_prot = IPPROTO_TCP;
- return &p;
-}
-
-
-
-int nfsmount_prepare(const char *spec, char **mount_opts)
-{
- char hostdir[1024];
- CLIENT *mclient;
- char *hostname, *dirname, *mounthost = NULL;
- struct timeval total_timeout;
- enum clnt_stat clnt_stat;
- static struct nfs_mount_data data;
- int nfs_mount_version;
- int val;
- struct sockaddr_in server_addr;
- struct sockaddr_in mount_server_addr;
- struct pmap *pm_mnt;
- int msock, fsock;
- struct timeval retry_timeout;
- union {
- struct fhstatus nfsv2;
- struct mountres3 nfsv3;
- } status;
- char *s;
- int port, mountport, proto, soft, intr;
- int posix, nocto, noac, broken_suid, nolock;
- int retry, tcp;
- int mountprog, mountvers, nfsprog, nfsvers;
- int retval;
- time_t t;
- time_t prevt;
- time_t timeout;
-
- nfs_mount_version = find_kernel_nfs_mount_version();
-
- retval = -1;
- msock = fsock = -1;
- mclient = NULL;
- if (strlen(spec) >= sizeof(hostdir)) {
- log_message("nfsmount: excessively long host:dir argument");
- goto fail;
- }
- strcpy(hostdir, spec);
- if ((s = strchr(hostdir, ':'))) {
- hostname = hostdir;
- dirname = s + 1;
- *s = '\0';
- } else {
- log_message("nfsmount: directory to mount not in host:dir format");
- goto fail;
- }
-
- server_addr.sin_family = AF_INET;
-#ifdef HAVE_inet_aton
- if (!inet_aton(hostname, &server_addr.sin_addr))
-#endif
- {
- if (mygethostbyname(hostname, &server_addr.sin_addr)) {
- log_message("nfsmount: can't get address for %s", hostname);
- goto fail;
- }
- }
-
- memcpy (&mount_server_addr, &server_addr, sizeof (mount_server_addr));
-
-
-
- /* Set default options.
- * rsize/wsize are set to 8192 to enable nfs install on
- * old i586 machines
- * timeo is filled in after we know whether it'll be TCP or UDP. */
- memset(&data, 0, sizeof(data));
- data.rsize = 8192;
- data.wsize = 8192;
- data.retrans = 30;
- data.acregmin = 3;
- data.acregmax = 60;
- data.acdirmin = 30;
- data.acdirmax = 60;
-#if NFS_MOUNT_VERSION >= 2
- data.namlen = NAME_MAX;
-#endif
-
- soft = 1;
- intr = 0;
- posix = 0;
- nocto = 0;
- nolock = 1;
- broken_suid = 0;
- noac = 0;
- retry = 10000; /* 10000 minutes ~ 1 week */
- tcp = 0;
-
- mountprog = MOUNTPROG;
- mountvers = 0;
- port = 0;
- mountport = 0;
- nfsprog = NFS_PROGRAM;
- nfsvers = 0;
-
-
-
-retry_mount:
- proto = (tcp) ? IPPROTO_TCP : IPPROTO_UDP;
-
- data.flags = (soft ? NFS_MOUNT_SOFT : 0)
- | (intr ? NFS_MOUNT_INTR : 0)
- | (posix ? NFS_MOUNT_POSIX : 0)
- | (nocto ? NFS_MOUNT_NOCTO : 0)
- | (noac ? NFS_MOUNT_NOAC : 0);
-#if NFS_MOUNT_VERSION >= 2
- if (nfs_mount_version >= 2)
- data.flags |= (tcp ? NFS_MOUNT_TCP : 0);
-#endif
-#if NFS_MOUNT_VERSION >= 3
- if (nfs_mount_version >= 3)
- data.flags |= (nolock ? NFS_MOUNT_NONLM : 0);
-#endif
-#if NFS_MOUNT_VERSION >= 4
- if (nfs_mount_version >= 4)
- data.flags |= (broken_suid ? NFS_MOUNT_BROKEN_SUID : 0);
-#endif
- if (nfsvers > MAX_NFSPROT) {
- log_message("NFSv%d not supported!", nfsvers);
- return 0;
- }
- if (mountvers > MAX_NFSPROT) {
- log_message("NFSv%d not supported!", nfsvers);
- return 0;
- }
- if (nfsvers && !mountvers)
- mountvers = (nfsvers < 3) ? 1 : nfsvers;
- if (nfsvers && nfsvers < mountvers)
- mountvers = nfsvers;
-
- /* Adjust options if none specified */
- if (!data.timeo)
- data.timeo = tcp ? 70 : 7;
-
-#ifdef NFS_MOUNT_DEBUG
- log_message("rsize = %d, wsize = %d, timeo = %d, retrans = %d",
- data.rsize, data.wsize, data.timeo, data.retrans);
- log_message("acreg (min, max) = (%d, %d), acdir (min, max) = (%d, %d)",
- data.acregmin, data.acregmax, data.acdirmin, data.acdirmax);
- log_message("port = %d, retry = %d, flags = %.8x",
- port, retry, data.flags);
- log_message("mountprog = %d, mountvers = %d, nfsprog = %d, nfsvers = %d",
- mountprog, mountvers, nfsprog, nfsvers);
- log_message("soft = %d, intr = %d, posix = %d, nocto = %d, noac = %d",
- (data.flags & NFS_MOUNT_SOFT) != 0,
- (data.flags & NFS_MOUNT_INTR) != 0,
- (data.flags & NFS_MOUNT_POSIX) != 0,
- (data.flags & NFS_MOUNT_NOCTO) != 0,
- (data.flags & NFS_MOUNT_NOAC) != 0);
-#if NFS_MOUNT_VERSION >= 2
- log_message("tcp = %d",
- (data.flags & NFS_MOUNT_TCP) != 0);
-#endif
-#endif
-
- data.version = nfs_mount_version;
- *mount_opts = (char *) &data;
-
-
- /* create mount deamon client */
- /* See if the nfs host = mount host. */
- if (mounthost) {
- if (mounthost[0] >= '0' && mounthost[0] <= '9') {
- mount_server_addr.sin_family = AF_INET;
- mount_server_addr.sin_addr.s_addr = inet_addr(hostname);
- } else {
- if (mygethostbyname(mounthost, &mount_server_addr.sin_addr)) {
- log_message("nfsmount: can't get address for %s", mounthost);
- goto fail;
- }
- }
- }
-
- /*
- * The following loop implements the mount retries. On the first
- * call, "running_bg" is 0. When the mount times out, and the
- * "bg" option is set, the exit status EX_BG will be returned.
- * For a backgrounded mount, there will be a second call by the
- * child process with "running_bg" set to 1.
- *
- * The case where the mount point is not present and the "bg"
- * option is set, is treated as a timeout. This is done to
- * support nested mounts.
- *
- * The "retry" count specified by the user is the number of
- * minutes to retry before giving up.
- *
- * Only the first error message will be displayed.
- */
- retry_timeout.tv_sec = 3;
- retry_timeout.tv_usec = 0;
- total_timeout.tv_sec = 20;
- total_timeout.tv_usec = 0;
- timeout = time(NULL) + 60 * retry;
- prevt = 0;
- t = 30;
- val = 1;
-
-
- /* be careful not to use too many CPU cycles */
- if (t - prevt < 30)
- sleep(30);
-
- pm_mnt = get_mountport(&mount_server_addr,
- mountprog,
- mountvers,
- proto,
- mountport,
- nfs_mount_version);
-
- /* contact the mount daemon via TCP */
- mount_server_addr.sin_port = htons(pm_mnt->pm_port);
- msock = RPC_ANYSOCK;
-
- switch (pm_mnt->pm_prot) {
- case IPPROTO_UDP:
- mclient = clntudp_create(&mount_server_addr,
- pm_mnt->pm_prog,
- pm_mnt->pm_vers,
- retry_timeout,
- &msock);
- if (mclient)
- break;
- mount_server_addr.sin_port =
- htons(pm_mnt->pm_port);
- msock = RPC_ANYSOCK;
- case IPPROTO_TCP:
- mclient = clnttcp_create(&mount_server_addr,
- pm_mnt->pm_prog,
- pm_mnt->pm_vers,
- &msock, 0, 0);
- break;
- default:
- mclient = 0;
- }
-
- if (mclient) {
- /* try to mount hostname:dirname */
- mclient->cl_auth = authunix_create_default();
-
- /* make pointers in xdr_mountres3 NULL so
- * that xdr_array allocates memory for us
- */
- memset(&status, 0, sizeof(status));
-
- log_message("nfsmount: doing client call in nfs version: %ld", pm_mnt->pm_vers);
- if (pm_mnt->pm_vers == 3)
- clnt_stat = clnt_call(mclient,
- MOUNTPROC3_MNT,
- (xdrproc_t) xdr_dirpath,
- (caddr_t) &dirname,
- (xdrproc_t) xdr_mountres3,
- (caddr_t) &status,
- total_timeout);
- else
- clnt_stat = clnt_call(mclient,
- MOUNTPROC_MNT,
- (xdrproc_t) xdr_dirpath,
- (caddr_t) &dirname,
- (xdrproc_t) xdr_fhstatus,
- (caddr_t) &status,
- total_timeout);
-
- if (clnt_stat == RPC_SUCCESS)
- goto succeeded;
-
- if (prevt == 0)
- log_message("could not call server: probably protocol or version error");
- auth_destroy(mclient->cl_auth);
- clnt_destroy(mclient);
- mclient = 0;
- close(msock);
- } else {
- log_message("could not create rpc client: host probably not found or NFS server is down");
- }
- prevt = t;
-
- goto fail;
-
- succeeded:
- nfsvers = (pm_mnt->pm_vers < 2) ? 2 : pm_mnt->pm_vers;
-
- if (nfsvers == 2) {
- if (status.nfsv2.fhs_status != 0) {
- log_message("nfsmount: %s:%s failed, reason given by server: %s",
- hostname, dirname, nfs_strerror(status.nfsv2.fhs_status));
- goto fail;
- }
- memcpy(data.root.data,
- (char *) status.nfsv2.fhstatus_u.fhs_fhandle,
- NFS_FHSIZE);
-#if NFS_MOUNT_VERSION >= 4
- data.root.size = NFS_FHSIZE;
- memcpy(data.old_root.data,
- (char *) status.nfsv2.fhstatus_u.fhs_fhandle,
- NFS_FHSIZE);
-#endif
- } else {
-#if NFS_MOUNT_VERSION >= 4
- fhandle3 *fhandle;
- if (status.nfsv3.fhs_status != 0) {
- log_message("nfsmount: %s:%s failed, reason given by server: %s",
- hostname, dirname, nfs_strerror(status.nfsv3.fhs_status));
- goto fail;
- }
- fhandle = &status.nfsv3.mountres3_u.mountinfo.fhandle;
- memset(data.old_root.data, 0, NFS_FHSIZE);
- memset(&data.root, 0, sizeof(data.root));
- data.root.size = fhandle->fhandle3_len;
- memcpy(data.root.data,
- (char *) fhandle->fhandle3_val,
- fhandle->fhandle3_len);
-
- data.flags |= NFS_MOUNT_VER3;
-#endif
- }
-
- /* create nfs socket for kernel */
-
- if (tcp) {
- if (nfs_mount_version < 3) {
- log_message("NFS over TCP is not supported.");
- goto fail;
- }
- fsock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
- } else
- fsock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
- if (fsock < 0) {
- log_perror("nfs socket");
- goto fail;
- }
- if (bindresvport(fsock, 0) < 0) {
- log_perror("nfs bindresvport");
- goto fail;
- }
- if (port == 0) {
- server_addr.sin_port = PMAPPORT;
- port = pmap_getport(&server_addr, nfsprog, nfsvers,
- tcp ? IPPROTO_TCP : IPPROTO_UDP);
-#if 1
- /* Here we check to see if user is mounting with the
- * tcp option. If so, and if the portmap returns a
- * '0' for port (service unavailable), we then notify
- * the user, and retry with udp.
- */
- if (port == 0 && tcp == 1) {
- log_message("NFS server reported TCP not available, retrying with UDP...");
- tcp = 0;
- goto retry_mount;
- }
-#endif
-
- if (port == 0)
- port = NFS_PORT;
-#ifdef NFS_MOUNT_DEBUG
- else
- log_message("used portmapper to find NFS port");
-#endif
- }
-#ifdef NFS_MOUNT_DEBUG
- log_message("using port %d for nfs deamon", port);
-#endif
- server_addr.sin_port = htons(port);
- /*
- * connect() the socket for kernels 1.3.10 and below only,
- * to avoid problems with multihomed hosts.
- * --Swen
- */
- if (linux_version_code() <= 66314
- && connect(fsock, (struct sockaddr *) &server_addr,
- sizeof (server_addr)) < 0) {
- log_perror("nfs connect");
- goto fail;
- }
-
- /* prepare data structure for kernel */
-
- data.fd = fsock;
- memcpy((char *) &data.addr, (char *) &server_addr, sizeof(data.addr));
- strncpy(data.hostname, hostname, sizeof(data.hostname));
-
- /* clean up */
-
- auth_destroy(mclient->cl_auth);
- clnt_destroy(mclient);
- close(msock);
- return 0;
-
- /* abort */
-
- fail:
- if (msock != -1) {
- if (mclient) {
- auth_destroy(mclient->cl_auth);
- clnt_destroy(mclient);
- }
- close(msock);
- }
- if (fsock != -1)
- close(fsock);
- return retval;
-}
-
-/*
- * We need to translate between nfs status return values and
- * the local errno values which may not be the same.
- *
- * Andreas Schwab <schwab@LS5.informatik.uni-dortmund.de>: change errno:
- * "after #include <errno.h> the symbol errno is reserved for any use,
- * it cannot even be used as a struct tag or field name".
- */
-
-#ifndef EDQUOT
-#define EDQUOT ENOSPC
-#endif
-
-static struct {
- enum nfsstat stat;
- int errnum;
-} nfs_errtbl[] = {
- { NFS_OK, 0 },
- { NFSERR_PERM, EPERM },
- { NFSERR_NOENT, ENOENT },
- { NFSERR_IO, EIO },
- { NFSERR_NXIO, ENXIO },
- { NFSERR_ACCES, EACCES },
- { NFSERR_EXIST, EEXIST },
- { NFSERR_NODEV, ENODEV },
- { NFSERR_NOTDIR, ENOTDIR },
- { NFSERR_ISDIR, EISDIR },
-#ifdef NFSERR_INVAL
- { NFSERR_INVAL, EINVAL }, /* that Sun forgot */
-#endif
- { NFSERR_FBIG, EFBIG },
- { NFSERR_NOSPC, ENOSPC },
- { NFSERR_ROFS, EROFS },
- { NFSERR_NAMETOOLONG, ENAMETOOLONG },
- { NFSERR_NOTEMPTY, ENOTEMPTY },
- { NFSERR_DQUOT, EDQUOT },
- { NFSERR_STALE, ESTALE },
-#ifdef EWFLUSH
- { NFSERR_WFLUSH, EWFLUSH },
-#endif
- /* Throw in some NFSv3 values for even more fun (HP returns these) */
- { 71, EREMOTE },
-
- { -1, EIO }
-};
-
-static char *nfs_strerror(int stat)
-{
- int i;
- static char buf[256];
-
- for (i = 0; nfs_errtbl[i].stat != (unsigned)-1; i++) {
- if (nfs_errtbl[i].stat == (unsigned)stat)
- return strerror(nfs_errtbl[i].errnum);
- }
- sprintf(buf, "unknown nfs status return value: %d", stat);
- return buf;
-}
-
diff --git a/mdk-stage1/nfsmount.h b/mdk-stage1/nfsmount.h
deleted file mode 100644
index a27e8a8d7..000000000
--- a/mdk-stage1/nfsmount.h
+++ /dev/null
@@ -1,331 +0,0 @@
-/*
- * Please do not edit this file.
- * It was generated using rpcgen.
- */
-
-#ifndef _NFSMOUNT_H_RPCGEN
-#define _NFSMOUNT_H_RPCGEN
-
-#include <rpc/rpc.h>
-
-int nfsmount_prepare(const char *spec, char **mount_opts);
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part. Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user or with the express written consent of
- * Sun Microsystems, Inc.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
-/*
- * Copyright (c) 1985, 1990 by Sun Microsystems, Inc.
- */
-
-/* from @(#)mount.x 1.3 91/03/11 TIRPC 1.0 */
-#ifndef _rpcsvc_mount_h
-#define _rpcsvc_mount_h
-#include <asm/types.h>
-#define MNTPATHLEN 1024
-#define MNTNAMLEN 255
-#define FHSIZE 32
-#define FHSIZE3 64
-
-typedef char fhandle[FHSIZE];
-
-typedef struct {
- u_int fhandle3_len;
- char *fhandle3_val;
-} fhandle3;
-
-enum mountstat3 {
- MNT_OK = 0,
- MNT3ERR_PERM = 1,
- MNT3ERR_NOENT = 2,
- MNT3ERR_IO = 5,
- MNT3ERR_ACCES = 13,
- MNT3ERR_NOTDIR = 20,
- MNT3ERR_INVAL = 22,
- MNT3ERR_NAMETOOLONG = 63,
- MNT3ERR_NOTSUPP = 10004,
- MNT3ERR_SERVERFAULT = 10006,
-};
-typedef enum mountstat3 mountstat3;
-
-struct fhstatus {
- u_int fhs_status;
- union {
- fhandle fhs_fhandle;
- } fhstatus_u;
-};
-typedef struct fhstatus fhstatus;
-
-struct mountres3_ok {
- fhandle3 fhandle;
- struct {
- u_int auth_flavours_len;
- int *auth_flavours_val;
- } auth_flavours;
-};
-typedef struct mountres3_ok mountres3_ok;
-
-struct mountres3 {
- mountstat3 fhs_status;
- union {
- mountres3_ok mountinfo;
- } mountres3_u;
-};
-typedef struct mountres3 mountres3;
-
-typedef char *dirpath;
-
-typedef char *name;
-
-typedef struct mountbody *mountlist;
-
-struct mountbody {
- name ml_hostname;
- dirpath ml_directory;
- mountlist ml_next;
-};
-typedef struct mountbody mountbody;
-
-typedef struct groupnode *groups;
-
-struct groupnode {
- name gr_name;
- groups gr_next;
-};
-typedef struct groupnode groupnode;
-
-typedef struct exportnode *exports;
-
-struct exportnode {
- dirpath ex_dir;
- groups ex_groups;
- exports ex_next;
-};
-typedef struct exportnode exportnode;
-
-struct ppathcnf {
- int pc_link_max;
- short pc_max_canon;
- short pc_max_input;
- short pc_name_max;
- short pc_path_max;
- short pc_pipe_buf;
- u_char pc_vdisable;
- char pc_xxx;
- short pc_mask[2];
-};
-typedef struct ppathcnf ppathcnf;
-#endif /*!_rpcsvc_mount_h*/
-
-#define MOUNTPROG 100005
-#define MOUNTVERS 1
-
-#if defined(__STDC__) || defined(__cplusplus)
-#define MOUNTPROC_NULL 0
-extern void * mountproc_null_1(void *, CLIENT *);
-extern void * mountproc_null_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_MNT 1
-extern fhstatus * mountproc_mnt_1(dirpath *, CLIENT *);
-extern fhstatus * mountproc_mnt_1_svc(dirpath *, struct svc_req *);
-#define MOUNTPROC_DUMP 2
-extern mountlist * mountproc_dump_1(void *, CLIENT *);
-extern mountlist * mountproc_dump_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_UMNT 3
-extern void * mountproc_umnt_1(dirpath *, CLIENT *);
-extern void * mountproc_umnt_1_svc(dirpath *, struct svc_req *);
-#define MOUNTPROC_UMNTALL 4
-extern void * mountproc_umntall_1(void *, CLIENT *);
-extern void * mountproc_umntall_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_EXPORT 5
-extern exports * mountproc_export_1(void *, CLIENT *);
-extern exports * mountproc_export_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_EXPORTALL 6
-extern exports * mountproc_exportall_1(void *, CLIENT *);
-extern exports * mountproc_exportall_1_svc(void *, struct svc_req *);
-extern int mountprog_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
-
-#else /* K&R C */
-#define MOUNTPROC_NULL 0
-extern void * mountproc_null_1();
-extern void * mountproc_null_1_svc();
-#define MOUNTPROC_MNT 1
-extern fhstatus * mountproc_mnt_1();
-extern fhstatus * mountproc_mnt_1_svc();
-#define MOUNTPROC_DUMP 2
-extern mountlist * mountproc_dump_1();
-extern mountlist * mountproc_dump_1_svc();
-#define MOUNTPROC_UMNT 3
-extern void * mountproc_umnt_1();
-extern void * mountproc_umnt_1_svc();
-#define MOUNTPROC_UMNTALL 4
-extern void * mountproc_umntall_1();
-extern void * mountproc_umntall_1_svc();
-#define MOUNTPROC_EXPORT 5
-extern exports * mountproc_export_1();
-extern exports * mountproc_export_1_svc();
-#define MOUNTPROC_EXPORTALL 6
-extern exports * mountproc_exportall_1();
-extern exports * mountproc_exportall_1_svc();
-extern int mountprog_1_freeresult ();
-#endif /* K&R C */
-#define MOUNTVERS_POSIX 2
-
-#if defined(__STDC__) || defined(__cplusplus)
-extern void * mountproc_null_2(void *, CLIENT *);
-extern void * mountproc_null_2_svc(void *, struct svc_req *);
-extern fhstatus * mountproc_mnt_2(dirpath *, CLIENT *);
-extern fhstatus * mountproc_mnt_2_svc(dirpath *, struct svc_req *);
-extern mountlist * mountproc_dump_2(void *, CLIENT *);
-extern mountlist * mountproc_dump_2_svc(void *, struct svc_req *);
-extern void * mountproc_umnt_2(dirpath *, CLIENT *);
-extern void * mountproc_umnt_2_svc(dirpath *, struct svc_req *);
-extern void * mountproc_umntall_2(void *, CLIENT *);
-extern void * mountproc_umntall_2_svc(void *, struct svc_req *);
-extern exports * mountproc_export_2(void *, CLIENT *);
-extern exports * mountproc_export_2_svc(void *, struct svc_req *);
-extern exports * mountproc_exportall_2(void *, CLIENT *);
-extern exports * mountproc_exportall_2_svc(void *, struct svc_req *);
-#define MOUNTPROC_PATHCONF 7
-extern ppathcnf * mountproc_pathconf_2(dirpath *, CLIENT *);
-extern ppathcnf * mountproc_pathconf_2_svc(dirpath *, struct svc_req *);
-extern int mountprog_2_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
-
-#else /* K&R C */
-extern void * mountproc_null_2();
-extern void * mountproc_null_2_svc();
-extern fhstatus * mountproc_mnt_2();
-extern fhstatus * mountproc_mnt_2_svc();
-extern mountlist * mountproc_dump_2();
-extern mountlist * mountproc_dump_2_svc();
-extern void * mountproc_umnt_2();
-extern void * mountproc_umnt_2_svc();
-extern void * mountproc_umntall_2();
-extern void * mountproc_umntall_2_svc();
-extern exports * mountproc_export_2();
-extern exports * mountproc_export_2_svc();
-extern exports * mountproc_exportall_2();
-extern exports * mountproc_exportall_2_svc();
-#define MOUNTPROC_PATHCONF 7
-extern ppathcnf * mountproc_pathconf_2();
-extern ppathcnf * mountproc_pathconf_2_svc();
-extern int mountprog_2_freeresult ();
-#endif /* K&R C */
-#define MOUNT_V3 3
-
-#if defined(__STDC__) || defined(__cplusplus)
-#define MOUNTPROC3_NULL 0
-extern void * mountproc3_null_3(void *, CLIENT *);
-extern void * mountproc3_null_3_svc(void *, struct svc_req *);
-#define MOUNTPROC3_MNT 1
-extern mountres3 * mountproc3_mnt_3(dirpath *, CLIENT *);
-extern mountres3 * mountproc3_mnt_3_svc(dirpath *, struct svc_req *);
-#define MOUNTPROC3_DUMP 2
-extern mountlist * mountproc3_dump_3(void *, CLIENT *);
-extern mountlist * mountproc3_dump_3_svc(void *, struct svc_req *);
-#define MOUNTPROC3_UMNT 3
-extern void * mountproc3_umnt_3(dirpath *, CLIENT *);
-extern void * mountproc3_umnt_3_svc(dirpath *, struct svc_req *);
-#define MOUNTPROC3_UMNTALL 4
-extern void * mountproc3_umntall_3(void *, CLIENT *);
-extern void * mountproc3_umntall_3_svc(void *, struct svc_req *);
-#define MOUNTPROC3_EXPORT 5
-extern exports * mountproc3_export_3(void *, CLIENT *);
-extern exports * mountproc3_export_3_svc(void *, struct svc_req *);
-extern int mountprog_3_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
-
-#else /* K&R C */
-#define MOUNTPROC3_NULL 0
-extern void * mountproc3_null_3();
-extern void * mountproc3_null_3_svc();
-#define MOUNTPROC3_MNT 1
-extern mountres3 * mountproc3_mnt_3();
-extern mountres3 * mountproc3_mnt_3_svc();
-#define MOUNTPROC3_DUMP 2
-extern mountlist * mountproc3_dump_3();
-extern mountlist * mountproc3_dump_3_svc();
-#define MOUNTPROC3_UMNT 3
-extern void * mountproc3_umnt_3();
-extern void * mountproc3_umnt_3_svc();
-#define MOUNTPROC3_UMNTALL 4
-extern void * mountproc3_umntall_3();
-extern void * mountproc3_umntall_3_svc();
-#define MOUNTPROC3_EXPORT 5
-extern exports * mountproc3_export_3();
-extern exports * mountproc3_export_3_svc();
-extern int mountprog_3_freeresult ();
-#endif /* K&R C */
-
-/* the xdr functions */
-
-#if defined(__STDC__) || defined(__cplusplus)
-extern bool_t xdr_fhandle (XDR *, fhandle);
-extern bool_t xdr_fhandle3 (XDR *, fhandle3*);
-extern bool_t xdr_mountstat3 (XDR *, mountstat3*);
-extern bool_t xdr_fhstatus (XDR *, fhstatus*);
-extern bool_t xdr_mountres3_ok (XDR *, mountres3_ok*);
-extern bool_t xdr_mountres3 (XDR *, mountres3*);
-extern bool_t xdr_dirpath (XDR *, dirpath*);
-extern bool_t xdr_name (XDR *, name*);
-extern bool_t xdr_mountlist (XDR *, mountlist*);
-extern bool_t xdr_mountbody (XDR *, mountbody*);
-extern bool_t xdr_groups (XDR *, groups*);
-extern bool_t xdr_groupnode (XDR *, groupnode*);
-extern bool_t xdr_exports (XDR *, exports*);
-extern bool_t xdr_exportnode (XDR *, exportnode*);
-extern bool_t xdr_ppathcnf (XDR *, ppathcnf*);
-
-#else /* K&R C */
-extern bool_t xdr_fhandle ();
-extern bool_t xdr_fhandle3 ();
-extern bool_t xdr_mountstat3 ();
-extern bool_t xdr_fhstatus ();
-extern bool_t xdr_mountres3_ok ();
-extern bool_t xdr_mountres3 ();
-extern bool_t xdr_dirpath ();
-extern bool_t xdr_name ();
-extern bool_t xdr_mountlist ();
-extern bool_t xdr_mountbody ();
-extern bool_t xdr_groups ();
-extern bool_t xdr_groupnode ();
-extern bool_t xdr_exports ();
-extern bool_t xdr_exportnode ();
-extern bool_t xdr_ppathcnf ();
-
-#endif /* K&R C */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !_NFSMOUNT_H_RPCGEN */
-
diff --git a/mdk-stage1/params.c b/mdk-stage1/params.c
index 311f8b0ea..9398759ab 100644
--- a/mdk-stage1/params.c
+++ b/mdk-stage1/params.c
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -13,6 +13,7 @@
*/
#include <stdlib.h>
+#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
@@ -21,7 +22,6 @@
#include "utils.h"
#include "automatic.h"
#include "log.h"
-#include "bootsplash.h"
static struct param_elem params[50];
static int param_number = 0;
@@ -62,7 +62,7 @@ void process_cmdline(void)
i++;
continue;
}
- name = memdup(&buf[j], i-j + 1);
+ name = _memdup(&buf[j], i-j + 1);
name[i-j] = '\0';
if (buf[i] == '=') {
@@ -70,7 +70,7 @@ void process_cmdline(void)
i++;
while (buf[i] != ' ' && buf[i] != '\0')
i++;
- value = memdup(&buf[k], i-k + 1);
+ value = _memdup(&buf[k], i-k + 1);
value[i-k] = '\0';
}
@@ -80,6 +80,8 @@ void process_cmdline(void)
if (!strcmp(name, "changedisk")) set_param(MODE_CHANGEDISK);
if (!strcmp(name, "updatemodules") ||
!strcmp(name, "thirdparty")) set_param(MODE_THIRDPARTY);
+ if (!strcmp(name, "rescue") ||
+ !strcmp(name, "kamethod")) set_param(MODE_RESCUE);
if (!strcmp(name, "rescue")) set_param(MODE_RESCUE);
if (!strcmp(name, "keepmounted")) set_param(MODE_KEEP_MOUNTED);
if (!strcmp(name, "noauto")) set_param(MODE_NOAUTO);
@@ -170,5 +172,4 @@ void unset_automatic(void)
{
log_message("unsetting automatic");
unset_param(MODE_AUTOMATIC);
- exit_bootsplash();
}
diff --git a/mdk-stage1/params.h b/mdk-stage1/params.h
index 2fe624143..06b64bd52 100644
--- a/mdk-stage1/params.h
+++ b/mdk-stage1/params.h
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
diff --git a/mdk-stage1/partition.c b/mdk-stage1/partition.c
index d41fa7ebf..cb59f0514 100644
--- a/mdk-stage1/partition.c
+++ b/mdk-stage1/partition.c
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -74,7 +74,7 @@ static const char * detect_partition_type(char * dev)
struct partition_detection_info partitions_signatures[] = {
{ "Linux Swap", { 4086, "SWAP-SPACE" }, { 0, NULL }, { 0, NULL } },
{ "Linux Swap", { 4086, "SWAPSPACE2" }, { 0, NULL }, { 0, NULL } },
- { "Ext2", { 0x438, "\x53\xEF" }, { 0, NULL }, { 0, NULL } },
+ { "Ext4", { 0x438, "\x53\xEF" }, { 0, NULL }, { 0, NULL } },
{ "ReiserFS", { 0x10034, "ReIsErFs" }, { 0, NULL }, { 0, NULL } },
{ "ReiserFS", { 0x10034, "ReIsEr2Fs" }, { 0, NULL }, { 0, NULL } },
{ "XFS", { 0, "XFSB" }, { 0x200, "XAGF" }, { 0x400, "XAGI" } },
diff --git a/mdk-stage1/partition.h b/mdk-stage1/partition.h
index e901662df..47639a3d0 100644
--- a/mdk-stage1/partition.h
+++ b/mdk-stage1/partition.h
@@ -1,7 +1,7 @@
/*
- * Olivier Blin (oblin@mandrakesoft.com)
+ * Olivier Blin (oblin)
*
- * Copyright 2005 Mandrakesoft
+ * Copyright 2005 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
diff --git a/mdk-stage1/pci-resource/Makefile b/mdk-stage1/pci-resource/Makefile
deleted file mode 100644
index fadeee162..000000000
--- a/mdk-stage1/pci-resource/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
- #******************************************************************************
- #
- # $Id$
- #
- # Guillaume Cottenceau (gc@mandrakesoft.com)
- #
- # Copyright 2000 Mandrakesoft
- #
- # This software may be freely redistributed under the terms of the GNU
- # public license.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program; if not, write to the Free Software
- # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- #
- #*****************************************************************************
-
-
-all: pci-ids.h
-
-pci-ids.h: /usr/share/ldetect-lst/pcitable.gz update-pci-ids.pl
- perl update-pci-ids.pl > $@ || { rm -f $@; exit 1; }
-
-clean:
- rm -f pci-ids.h
diff --git a/mdk-stage1/pcmcia-resource/Makefile b/mdk-stage1/pcmcia-resource/Makefile
deleted file mode 100644
index 46dda9be1..000000000
--- a/mdk-stage1/pcmcia-resource/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
- #******************************************************************************
- #
- # Olivier Blin (blino@mandriva.com)
- #
- # Copyright 2006 Mandriva
- #
- # This software may be freely redistributed under the terms of the GNU
- # public license.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program; if not, write to the Free Software
- # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- #
- #*****************************************************************************
-
-TARGET=pcmcia-ids.h
-
-all: $(TARGET)
-
-$(TARGET):
- perl update-pcmcia-ids.pl > $@ || { rm -f $@; exit 1; }
-
-clean:
- rm -f $(TARGET)
diff --git a/mdk-stage1/pcmcia/Makefile b/mdk-stage1/pcmcia/Makefile
index 9e111f115..6b8bf0cb8 100644
--- a/mdk-stage1/pcmcia/Makefile
+++ b/mdk-stage1/pcmcia/Makefile
@@ -1,8 +1,8 @@
#******************************************************************************
#
- # Guillaume Cottenceau (gc@mandrakesoft.com)
+ # Guillaume Cottenceau (gc)
#
- # Copyright 2001 Mandrakesoft
+ # Copyright 2001 Mandriva
#
# This software may be freely redistributed under the terms of the GNU
# public license.
@@ -27,7 +27,7 @@ all: $(TARGET) pcmcia_probe.o
clean:
rm -f *.o $(TARGET) lex_config.c yacc_config.c yacc_config.h
-FLAGS = -D__linux__ -Wall -Werror -Wno-deprecated-declarations -Os -fomit-frame-pointer -pipe -c -I.. -D_BSD_SOURCE
+FLAGS = -D__linux__ -Wall -Werror -Wno-deprecated-declarations -Os -fomit-frame-pointer -pipe -c -I.. -D_DEFAULT_SOURCE
# (blino) make sure yynewerror and yyerrlab are uselessly used
FLAGS += -Dlint
LFLAGS += --nounput
@@ -46,7 +46,7 @@ $(TARGET): $(OBJS) yacc_config.h
ranlib $@
$(OBJS): %.o: %.c
- $(DIET) gcc $(FLAGS) $(INCLUDES) -c $< -o $@
+ gcc $(FLAGS) $(INCLUDES) -c $< -o $@
pcmcia_probe.o: probe.c
- $(DIET) gcc -fPIC $(FLAGS) $(INCLUDES) -c $< -o $@
+ gcc -fPIC $(FLAGS) $(INCLUDES) -c $< -o $@
diff --git a/mdk-stage1/pcmcia/lex_config.l b/mdk-stage1/pcmcia/lex_config.l
index 050d7479d..54500c446 100644
--- a/mdk-stage1/pcmcia/lex_config.l
+++ b/mdk-stage1/pcmcia/lex_config.l
@@ -32,6 +32,7 @@
#include "yacc_config.h"
+#define YY_NO_INPUT 1 /* mdk-stage1 */
#define YY_NO_UNPUT 1 /* mdk-stage1 */
extern int yyparse(void); /* mdk-stage1 */
diff --git a/mdk-stage1/pcmcia/merge_from_pcitable b/mdk-stage1/pcmcia/merge_from_pcitable
index 3b88a1cd8..bb127640c 100755
--- a/mdk-stage1/pcmcia/merge_from_pcitable
+++ b/mdk-stage1/pcmcia/merge_from_pcitable
@@ -4,6 +4,9 @@
# which is not in probe.c
use MDK::Common;
+use lib qw(/usr/lib/libDrakX);
+use run_program;
+use c;
my %probes;
foreach (cat_('probe.c')) {
@@ -14,34 +17,21 @@ foreach (cat_('probe.c')) {
}
require '/usr/bin/merge2pcitable.pl';
-my $drivers = read_pcitable("/usr/share/ldetect-lst/pcitable");
-my %pcitable = map_each {
- $::a =~ /^(....)(....)/ or die;
- "$1$2" => { vendor => $1, device => $2, driver => $::b->[0], name => $::b->[1] };
-} %$drivers;
+my %pcitable;
+my @yenta_socket_ids = grep { $_ } map {
+ /.*pci:v0000(....).*d0000(....).*/;
+ my $key = lc("$1$2");
+ $pcitable{$key} = { vendor => $1, device => $2 };
+ $key;
+ } grep { /^alias/ } run_program::get_stdout('/sbin/modinfo', 'yenta_socket');
-my @yenta_socket_ids = grep { $pcitable{$_}{driver} eq 'yenta_socket' } keys %pcitable;
if (my @missing_in_probe_c = difference2(\@yenta_socket_ids, [ keys %probes ])) {
print "Missing in `probe.c':\n",
map {
my $p = $pcitable{$_};
- qq( { 0x$p->{vendor}, 0x$p->{device}, "yenta_socket", "$p->{name}" },\n);
+ my $name = c::get_pci_description(hex($p->{vendor}), hex($p->{device}));
+ qq( { 0x$p->{vendor}, 0x$p->{device}, "yenta_socket", "$name" },\n);
} sort @missing_in_probe_c;
}
-
-my @res;
-foreach my $id (keys %probes) {
- my $p = $probes{$id};
- my $r = $pcitable{$id};
- if (!$r || $r->{driver} ne 'yenta_socket') {
- push @res, qq(0x$p->{vendor}\t0x$p->{device}\t"yenta_socket"\t") . ($r ? $r->{name} : '(COMPLETELY MISSING)') . qq("\n);
- }
- if ($r && $r->{driver} ne 'unknown' && $r->{driver} ne $p->{driver}) {
- warn "WARNING: $id: pcitable:$r->{driver} vs probe.c:$p->{driver}\n";
- }
-}
-if (@res) {
- print "\n", "Missing in pcitable:\n", sort @res;
-}
diff --git a/mdk-stage1/pcmcia/pcmcia.h b/mdk-stage1/pcmcia/pcmcia.h
index ea0bccc2a..ae7db247b 100644
--- a/mdk-stage1/pcmcia/pcmcia.h
+++ b/mdk-stage1/pcmcia/pcmcia.h
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
diff --git a/mdk-stage1/pcmcia/probe.c b/mdk-stage1/pcmcia/probe.c
index 8f8a4bc8e..240fe3a17 100644
--- a/mdk-stage1/pcmcia/probe.c
+++ b/mdk-stage1/pcmcia/probe.c
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000-2001 Mandrakesoft
+ * Copyright 2000-2001 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -12,6 +12,9 @@
*
*
* Code comes from /anonymous@projects.sourceforge.net:/pub/pcmcia-cs/pcmcia-cs-3.1.29.tar.bz2
+ *
+ * FIXME: resync with latest pcmcia-cs-3.2.8 or with pcmciautils-0.18 (which uses sysfs)
+ *
*/
/*======================================================================
@@ -55,14 +58,11 @@
#include <errno.h>
#include <fcntl.h>
-//mdk-stage1// #include <pcmcia/config.h>
#include "log.h"
#include "pcmcia.h"
/*====================================================================*/
-//mdk-stage1// #ifdef CONFIG_PCI
-
typedef struct {
u_short vendor, device;
char *modname;
@@ -70,63 +70,63 @@ typedef struct {
} pci_id_t;
pci_id_t pci_id[] = {
- { 0x1013, 0x1100, "i82365", "Cirrus Logic CL 6729" },
+ { 0x1013, 0x1100, "pd6729", "Cirrus Logic CL 6729" },
{ 0x1013, 0x1110, "yenta_socket", "Cirrus Logic PD 6832" },
- { 0x10b3, 0xb106, "yenta_socket", "SMC 34C90" },
- { 0x1180, 0x0465, "yenta_socket", "Ricoh RL5C465" },
- { 0x1180, 0x0466, "yenta_socket", "Ricoh RL5C466" },
- { 0x1180, 0x0475, "yenta_socket", "Ricoh RL5C475" },
- { 0x1180, 0x0476, "yenta_socket", "Ricoh RL5C476" },
- { 0x1180, 0x0477, "yenta_socket", "Ricoh RL5C477" },
- { 0x1180, 0x0478, "yenta_socket", "Ricoh RL5C478" },
+ { 0x104c, 0x8011, "yenta_socket", "" },
+ { 0x104c, 0x8031, "yenta_socket", "Texas Instruments|PCIxx21/x515 Cardbus Controller" },
+ { 0x104c, 0x8036, "yenta_socket", "Texas Instruments|PCI6515 Cardbus Controller" },
+ { 0x104c, 0x8039, "yenta_socket", "Texas Instruments|PCIxx12 Cardbus Controller " },
{ 0x104c, 0xac12, "yenta_socket", "Texas Instruments PCI1130" },
{ 0x104c, 0xac13, "yenta_socket", "Texas Instruments PCI1031" },
{ 0x104c, 0xac15, "yenta_socket", "Texas Instruments PCI1131" },
- { 0x104c, 0xac1a, "yenta_socket", "Texas Instruments PCI1210" },
- { 0x104c, 0xac1e, "yenta_socket", "Texas Instruments PCI1211" },
+ { 0x104c, 0xac16, "yenta_socket", "Texas Instruments PCI1250" },
{ 0x104c, 0xac17, "yenta_socket", "Texas Instruments PCI1220" },
{ 0x104c, 0xac19, "yenta_socket", "Texas Instruments PCI1221" },
+ { 0x104c, 0xac1a, "yenta_socket", "Texas Instruments PCI1210" },
+ { 0x104c, 0xac1b, "yenta_socket", "Texas Instruments PCI1450" },
{ 0x104c, 0xac1c, "yenta_socket", "Texas Instruments PCI1225" },
- { 0x104c, 0xac16, "yenta_socket", "Texas Instruments PCI1250" },
{ 0x104c, 0xac1d, "yenta_socket", "Texas Instruments PCI1251A" },
+ { 0x104c, 0xac1e, "yenta_socket", "Texas Instruments PCI1211" },
{ 0x104c, 0xac1f, "yenta_socket", "Texas Instruments PCI1251B" },
- { 0x104c, 0xac50, "yenta_socket", "Texas Instruments PCI1410" },
- { 0x104c, 0xac51, "yenta_socket", "Texas Instruments PCI1420" },
- { 0x104c, 0xac1b, "yenta_socket", "Texas Instruments PCI1450" },
- { 0x104c, 0xac52, "yenta_socket", "Texas Instruments PCI1451" },
- { 0x104c, 0xac56, "yenta_socket", "Texas Instruments PCI1510" },
- { 0x104c, 0xac55, "yenta_socket", "Texas Instruments PCI1520" },
- { 0x104c, 0xac54, "yenta_socket", "Texas Instruments PCI1620" },
- { 0x104c, 0xac41, "yenta_socket", "Texas Instruments PCI4410" },
{ 0x104c, 0xac40, "yenta_socket", "Texas Instruments PCI4450" },
+ { 0x104c, 0xac41, "yenta_socket", "Texas Instruments PCI4410" },
{ 0x104c, 0xac42, "yenta_socket", "Texas Instruments PCI4451" },
{ 0x104c, 0xac44, "yenta_socket", "Texas Instruments PCI4510" },
{ 0x104c, 0xac46, "yenta_socket", "Texas Instruments PCI4520" },
- { 0x104c, 0xac49, "yenta_socket", "Texas Instruments PCI7410" },
{ 0x104c, 0xac47, "yenta_socket", "Texas Instruments PCI7510" },
{ 0x104c, 0xac48, "yenta_socket", "Texas Instruments PCI7610" },
+ { 0x104c, 0xac49, "yenta_socket", "Texas Instruments PCI7410" },
+ { 0x104c, 0xac50, "yenta_socket", "Texas Instruments PCI1410" },
+ { 0x104c, 0xac51, "yenta_socket", "Texas Instruments PCI1420" },
+ { 0x104c, 0xac52, "yenta_socket", "Texas Instruments PCI1451" },
+ { 0x104c, 0xac54, "yenta_socket", "Texas Instruments PCI1620" },
+ { 0x104c, 0xac55, "yenta_socket", "Texas Instruments PCI1520" },
+ { 0x104c, 0xac56, "yenta_socket", "Texas Instruments PCI1510" },
+ { 0x104c, 0xac8d, "yenta_socket", "Texas Instruments|PCI7620" },
+ { 0x104c, 0xac8e, "yenta_socket", "Texas Instruments|PCI7420 CardBus Controller" },
{ 0x104c, 0xac8e, "yenta_socket", "Texas Instruments PCI7420" },
- { 0x1217, 0x6729, "i82365", "O2 Micro 6729" },
- { 0x1217, 0x673a, "i82365", "O2 Micro 6730" },
- { 0x1217, 0x6832, "yenta_socket", "O2 Micro 6832/6833" },
- { 0x1217, 0x6836, "yenta_socket", "O2 Micro 6836/6860" },
- { 0x1217, 0x6872, "yenta_socket", "O2 Micro 6812" },
- { 0x1217, 0x6925, "yenta_socket", "O2 Micro 6922" },
- { 0x1217, 0x6933, "yenta_socket", "O2 Micro 6933" },
- { 0x1217, 0x6972, "yenta_socket", "O2 Micro 6912" },
- { 0x1217, 0x7114, "yenta_socket", "O2 Micro 711M1" },
- { 0x1179, 0x0603, "i82365", "Toshiba ToPIC95-A" },
+ { 0x10b3, 0xb106, "yenta_socket", "SMC 34C90" },
+ { 0x1179, 0x0603, "pd6729", "Toshiba ToPIC95-A" },
{ 0x1179, 0x060a, "yenta_socket", "Toshiba ToPIC95-B" },
{ 0x1179, 0x060f, "yenta_socket", "Toshiba ToPIC97" },
{ 0x1179, 0x0617, "yenta_socket", "Toshiba ToPIC100" },
- { 0x119b, 0x1221, "i82365", "Omega Micro 82C092G" },
- { 0x8086, 0x1221, "i82092", "Intel 82092AA_0" },
- { 0x8086, 0x1222, "i82092", "Intel 82092AA_1" },
+ { 0x1180, 0x0465, "yenta_socket", "Ricoh RL5C465" },
+ { 0x1180, 0x0466, "yenta_socket", "Ricoh RL5C466" },
+ { 0x1180, 0x0475, "yenta_socket", "Ricoh RL5C475" },
+ { 0x1180, 0x0476, "yenta_socket", "Ricoh RL5C476" },
+ { 0x1180, 0x0477, "yenta_socket", "Ricoh RL5C477" },
+ { 0x1180, 0x0478, "yenta_socket", "Ricoh RL5C478" },
+ { 0x119b, 0x1221, "pd6729", "Omega Micro 82C092G" },
{ 0x1524, 0x1211, "yenta_socket", "ENE 1211" },
{ 0x1524, 0x1225, "yenta_socket", "ENE 1225" },
{ 0x1524, 0x1410, "yenta_socket", "ENE 1410" },
{ 0x1524, 0x1411, "yenta_socket", "ENE Technology CB1411" },
+ { 0x1524, 0x1412, "yenta_socket", "ENE Technology Inc|CB-712/4 Cardbus Controller " },
{ 0x1524, 0x1420, "yenta_socket", "ENE 1420" },
+ { 0x1524, 0x1421, "yenta_socket", "ENE Technology Inc|CB-720/2/4 Cardbus Controller" },
+ { 0x1524, 0x1422, "yenta_socket", "ENE Technology Inc|CB-722/4 Cardbus Controller" },
+ { 0x8086, 0x1221, "i82092", "Intel 82092AA_0" },
+ { 0x8086, 0x1222, "i82092", "Intel 82092AA_1" },
};
#define PCI_COUNT (sizeof(pci_id)/sizeof(pci_id_t))
@@ -138,13 +138,17 @@ static int pci_probe(void)
u_int device, vendor, i;
FILE *f;
-//mdk-stage1// if (!module)
log_message("PCMCIA: probing PCI bus..");
if ((f = fopen("/proc/bus/pci/devices", "r")) != NULL) {
while (fgets(s, 256, f) != NULL) {
u_int n = strtoul(s+5, NULL, 16);
vendor = (n >> 16); device = (n & 0xffff);
+ if (vendor == 0x1217) {
+ driver = "yenta_socket";
+ name = "O2 Micro|PCMCIA Controller";
+ break;
+ }
for (i = 0; i < PCI_COUNT; i++)
if ((vendor == pci_id[i].vendor) &&
(device == pci_id[i].device)) break;
@@ -154,58 +158,20 @@ static int pci_probe(void)
}
}
}
-//mdk-stage1// else if ((f = fopen("/proc/pci", "r")) != NULL) {
-//mdk-stage1// while (fgets(s, 256, f) != NULL) {
-//mdk-stage1// t = strstr(s, "Device id=");
-//mdk-stage1// if (t) {
-//mdk-stage1// device = strtoul(t+10, NULL, 16);
-//mdk-stage1// t = strstr(s, "Vendor id=");
-//mdk-stage1// vendor = strtoul(t+10, NULL, 16);
-//mdk-stage1// for (i = 0; i < PCI_COUNT; i++)
-//mdk-stage1// if ((vendor == pci_id[i].vendor) &&
-//mdk-stage1// (device == pci_id[i].device)) break;
-//mdk-stage1// } else
-//mdk-stage1// for (i = 0; i < PCI_COUNT; i++)
-//mdk-stage1// if (strstr(s, pci_id[i].tag) != NULL) break;
-//mdk-stage1// if (i != PCI_COUNT) {
-//mdk-stage1// name = pci_id[i].name;
-//mdk-stage1// break;
-//mdk-stage1// } else {
-//mdk-stage1// t = strstr(s, "CardBus bridge");
-//mdk-stage1// if (t != NULL) {
-//mdk-stage1// name = t + 16;
-//mdk-stage1// t = strchr(s, '(');
-//mdk-stage1// t[-1] = '\0';
-//mdk-stage1// break;
-//mdk-stage1// }
-//mdk-stage1// }
-//mdk-stage1// }
-//mdk-stage1// }
fclose(f);
if (name) {
-//mdk-stage1// if (module)
-//mdk-stage1// printf("i82365\n");
-//mdk-stage1// else
log_message("\t%s found, 2 sockets (driver %s).", name, driver);
return 0;
} else {
-//mdk-stage1// if (!module)
log_message("\tnot found.");
return -ENODEV;
}
}
-//mdk-stage1// #endif
/*====================================================================*/
-//mdk-stage1// #ifdef CONFIG_ISA
-//mdk-stage1//
-//mdk-stage1// #ifdef __GLIBC__
#include <sys/io.h>
-//mdk-stage1// #else
-//mdk-stage1// #include <asm/io.h>
-//mdk-stage1// #endif
typedef u_short ioaddr_t;
#include "i82365.h"
@@ -246,9 +212,7 @@ int i365_probe(void)
int val, sock, done;
char *name = "i82365sl";
-//mdk-stage1// if (!module)
log_message("PCMCIA: probing for Intel PCIC (ISA)..");
-//mdk-stage1// if (verbose) printf("\n");
sock = done = 0;
if (ioperm(i365_base, 4, 1)) {
@@ -258,8 +222,6 @@ int i365_probe(void)
ioperm(0x80, 1, 1);
for (; sock < 2; sock++) {
val = i365_get(sock, I365_IDENT);
-//mdk-stage1// if (verbose)
-//mdk-stage1// printf(" ident(%d)=%#2.2x", sock, val);
switch (val) {
case 0x82:
name = "i82365sl A step";
@@ -281,9 +243,7 @@ int i365_probe(void)
if (done) break;
}
-//mdk-stage1// if (verbose) printf("\n ");
if (sock == 0) {
-//mdk-stage1// if (!module)
log_message("\tnot found.");
return -ENODEV;
}
@@ -322,24 +282,15 @@ int i365_probe(void)
}
}
-//mdk-stage1// if (module)
-//mdk-stage1// printf("i82365\n");
-//mdk-stage1// else
printf("\t%s found, %d sockets.\n", name, sock);
return 0;
} /* i365_probe */
-//mdk-stage1//#endif /* CONFIG_ISA */
-
/*====================================================================*/
-//mdk-stage1//#ifdef CONFIG_ISA
-
#include "tcic.h"
-//mdk-stage1//static ioaddr_t tcic_base = TCIC_BASE;
-
static u_char tcic_getb(ioaddr_t base, u_char reg)
{
u_char val = inb(base+reg);
@@ -396,7 +347,6 @@ int tcic_probe_at(ioaddr_t base)
if (tcic_getw(base, i) == 0xffff)
return -1;
-//mdk-stage1// if (!module)
log_message("\tat %#3.3x: ", base); fflush(stdout);
/* Try to reset the chip */
@@ -422,7 +372,6 @@ int tcic_probe(void)
{
int sock, id;
-//mdk-stage1// if (!module)
log_message("PCMCIA: probing for Databook TCIC-2 (ISA).."); fflush(stdout);
if (ioperm(TCIC_BASE, 16, 1)) {
@@ -433,14 +382,10 @@ int tcic_probe(void)
sock = tcic_probe_at(TCIC_BASE);
if (sock <= 0) {
-//mdk-stage1// if (!module)
log_message("\tnot found.");
return -ENODEV;
}
-//mdk-stage1// if (module)
-//mdk-stage1// printf("tcic\n");
-//mdk-stage1// else {
id = get_tcic_id(TCIC_BASE);
switch (id) {
case TCIC_ID_DB86082:
@@ -461,64 +406,21 @@ int tcic_probe(void)
log_message("Unknown TCIC-2 ID 0x%02x", id);
}
log_message(" found at %#6x, %d sockets.", TCIC_BASE, sock);
-//mdk-stage1// }
return 0;
} /* tcic_probe */
-//mdk-stage1// #endif /* CONFIG_ISA */
-
-//mdk-stage1// /*====================================================================*/
-//mdk-stage1//
-//mdk-stage1// int main(int argc, char *argv[])
-//mdk-stage1// {
-//mdk-stage1// int optch, errflg;
-//mdk-stage1// extern char *optarg;
-//mdk-stage1// int verbose = 0, module = 0;
-//mdk-stage1//
-//mdk-stage1// errflg = 0;
-//mdk-stage1// while ((optch = getopt(argc, argv, "t:vxm")) != -1) {
-//mdk-stage1// switch (optch) {
-//mdk-stage1// #ifdef CONFIG_ISA
-//mdk-stage1// case 't':
-//mdk-stage1// tcic_base = strtoul(optarg, NULL, 0); break;
-//mdk-stage1// #endif
-//mdk-stage1// case 'v':
-//mdk-stage1// verbose = 1; break;
-//mdk-stage1// case 'm':
-//mdk-stage1// module = 1; break;
-//mdk-stage1// default:
-//mdk-stage1// errflg = 1; break;
-//mdk-stage1// }
-//mdk-stage1// }
-//mdk-stage1// if (errflg || (optind < argc)) {
-//mdk-stage1// fprintf(stderr, "usage: %s [-t tcic_base] [-v] [-m]\n", argv[0]);
-//mdk-stage1// exit(EXIT_FAILURE);
-//mdk-stage1// }
-//mdk-stage1//
-//mdk-stage1// #ifdef CONFIG_PCI
-//mdk-stage1// if (pci_probe(verbose, module) == 0)
-//mdk-stage1// exit(EXIT_SUCCESS);
-//mdk-stage1// #endif
-//mdk-stage1// #ifdef CONFIG_ISA
-//mdk-stage1// if (i365_probe(verbose, module) == 0)
-//mdk-stage1// exit(EXIT_SUCCESS);
-//mdk-stage1// else if (tcic_probe(verbose, module, tcic_base) == 0)
-//mdk-stage1// exit(EXIT_SUCCESS);
-//mdk-stage1// #endif
-//mdk-stage1// exit(EXIT_FAILURE);
-//mdk-stage1// return 0;
-//mdk-stage1// }
-
char * pcmcia_probe(void)
{
if (!pci_probe())
return driver;
+#if !defined(__x86_64__)
else if (!i365_probe())
- return "i82365";
+ return "pd6729";
else if (!tcic_probe())
return "tcic";
+#endif
else
return NULL;
}
diff --git a/mdk-stage1/pcmcia/yacc_config.y b/mdk-stage1/pcmcia/yacc_config.y
index be5ef98fe..c33f397d6 100644
--- a/mdk-stage1/pcmcia/yacc_config.y
+++ b/mdk-stage1/pcmcia/yacc_config.y
@@ -29,7 +29,7 @@ extern int current_lineno;
extern int yylex(void); /* mdk-stage1 */
-void yyerror(char *msg, ...);
+void yyerror(const char *msg, ...);
%}
@@ -114,7 +114,7 @@ resource: IRQ_NO NUMBER
;
%%
-void yyerror(char *msg, ...)
+void yyerror(const char *msg, ...)
{
va_list ap;
char str[256];
diff --git a/mdk-stage1/ppp/Changes-2.3 b/mdk-stage1/ppp/Changes-2.3
deleted file mode 100644
index f5c954b4b..000000000
--- a/mdk-stage1/ppp/Changes-2.3
+++ /dev/null
@@ -1,441 +0,0 @@
-What was new in ppp-2.3.11.
-***************************
-
-* Support for Solaris 8 has been added, including support for
- replumbing and IPV6.
-
-* The Solaris `snoop' utility should now work on ppp interfaces.
-
-* New hooks have been added - pap_logout_hook, ip_up_hook, and
- ip_down_hook.
-
-* A new `passprompt' plugin is included, thanks to Alan Curry, which
- makes it possible for pppd to call an external program to get the
- PAP password to send to the peer.
-
-* The error messages for the situation where authentication is
- required because the system has a default route have been improved.
-
-* There is a new connect_delay option which specifies how long pppd
- should pause after the connect script finishes. Previously this
- delay was fixed at 1 second. (This delay terminates as soon as pppd
- sees a valid PPP frame from the peer.)
-
-* The `hide-password' option is now the default, and there is a new
- `show-password' option to enable the printing of password strings in
- the debug output.
-
-* A fairly complete list of the names of PPP protocols has been added
- so that when pppd rejects a frame because its protocol is not
- supported, it can print the name of the unsupported protocol.
-
-* Synchronous serial lines are supported under Linux 2.3.x.
-
-* The bug where pppd would not recognize a modem hangup under Linux
- 2.3.x kernels has been fixed.
-
-
-What was new in ppp-2.3.10.
-***************************
-
-* Pppd now supports `plugins', which are pieces of code (packaged as
- shared libraries) which can be loaded into pppd at runtime and which
- can affect its behaviour. The intention is that plugins provide a
- way for people to customize the behaviour of pppd for their own
- needs without needing to change the base pppd source. I have added
- some hooks into pppd (places where pppd will call a function
- pointer, if non-zero, to replace some of pppd's code) and I will be
- receptive to suggestions about places to add more hooks. Plugins
- are supported under Linux and Solaris at present.
-
-* We have a new maintainer for the Solaris port, Adi Masputra of Sun
- Microsystems, and he has updated the Solaris port so that it should
- work on 64-bit machines under Solaris 7 and later.
-
-* Pppd now has an `allow-ip' option, which takes an argument which is
- an IP address (or subnet) which peers are permitted to use without
- authenticating themselves. The argument takes the same form as each
- element of the allowed IP address list in the secrets files. The
- allow-ip option is privileged and may be specified multiple times.
- Using the allow-ip option should be cleaner than putting a line like
- `"" * "" address' in /etc/ppp/pap-secrets.
-
-* Chat can now substitute environment variables into the script. This
- is enabled by the -E flag. (Thanks to Andreas Arens for the patch.)
-
-* If the PAP username and password from the peer contains unprintable
- characters, they will be translated to a printable form before
- looking in the pap-secrets file. Characters >= 0x80 are translated
- to a M- form, and characters from 0 to 0x1f (and 0x7f as well) are
- translated to a ^X form. If this change causes you grief, let me
- know what would be a better translation. It appears that some peers
- send nulls or other control characters in their usernames and
- passwords.
-
-* Pppd has new `ktune' and `noktune' options, which enable/disable
- it to change kernel settings as appropriate. This is only
- implemented under Linux, and requires the /proc filesystem to be
- mounted. Under Linux, with the ktune option, pppd will enable IP
- forwarding in the kernel if the proxyarp option is used, and will
- enable the dynamic IP address kernel option in demand mode if the
- local IP address changes.
-
-* Pppd no longer requires a remote address to be specified for demand
- dialling. If none is specified, it will use a default value of
- 10.112.112.112+unit_number. (It will not propose this default to
- the peer.)
-
-* The default holdoff is now 0 if no connect script is given.
-
-* The IPV6 code from Tommi Komulainen, which I unfortunately only
- partially merged in to ppp-2.3.9, has been fixed and updated.
-
-* The linux compilation glitches should be fixed now.
-
-
-What was new in ppp-2.3.9.
-**************************
-
-* Support for the new generic PPP layer under development for the
- Linux kernel.
-
-* You can now place extra options to apply to specific users at the
- end of the line with their password in the pap-secrets or
- chap-secrets file, separated from the IP address(es) with a "--"
- separator. These options are parsed after the peer is authenticated
- but before network protocol (IPCP, IPXCP) or CCP negotiation
- commences.
-
-* Pppd will apply the holdoff period if the link was terminated by the
- peer. It doesn't apply it if the link was terminated because the
- local pppd thought it was idle.
-
-* Synchronous support for Solaris has been added, thanks to John
- Morrison, and for FreeBSD, thanks to Paul Fulghum.
-
-* IPV6 support has been merged in, from Tommi Komulainen. At the
- moment it only supports Linux and it is not tested by me.
-
-* The `nodefaultip' option can be used in demand mode to say that pppd
- should not suggest its local IP address to the peer.
-
-* The `init' option has been added; this causes pppd to run a script
- to initialize the serial device (e.g. by sending an init string to
- the modem). Unlike the connect option, this can be used in a
- dial-in situation. (Thanks to Tobias Ringstrom.)
-
-* There is a new `logfile' option to send log messages to a file as
- well as syslog.
-
-* There is a new, privileged `linkname' option which sets a logical
- name for the link. Pppd will create a /var/run/ppp-<linkname>.pid
- file containing its process ID.
-
-* There is a new `maxfail' option which specifies how many consecutive
- failed connection attempts are permitted before pppd will exit. The
- default value is 10, and 0 means infinity. :-)
-
-* Sundry bugs fixed.
-
-
-What was new in ppp-2.3.8.
-**************************
-
-* The exit status of pppd will now indicate whether the link was
- successfully established, or if not, what error was encountered.
-
-* Pppd has two new options: fdlog <n> will send log messages to file
- descriptor <n> instead of standard output, and nofdlog will stop log
- messages from being sent to any file descriptor (they will still be
- sent to syslog). Pppd now will not send log messages to a file
- descriptor if the serial port is open on that file descriptor.
-
-* Pppd sets an environment variable called PPPLOGNAME for scripts that
- it runs, indicating the login name of the user who invoked pppd.
-
-* Pppd sets environment variables CONNECT_TIME, BYTES_SENT and
- BYTES_RCVD for the ip-down and auth-down scripts indicating the
- statistics for the connection just terminated. (CONNECT_TIME is in
- seconds.)
-
-* If the user has the serial device open on standard input and
- specifies a symbolic link to the serial device on the command line,
- pppd will detect this and behave correctly (i.e. not detach from its
- controlling terminal). Furthermore, if the serial port is open for
- reading and writing on standard input, pppd will assume that it is
- locked by its invoker and not lock it itself.
-
-* Chat now has a feature where if a string to be sent begins with an
- at sign (@), the rest of the string is taken as the name of a file
- (regular file or named pipe), and the actual string to send is taken
- from that file.
-
-* Support for FreeBSD-2.2.8 and 3.0 has been added, thanks to Paul
- Fulghum.
-
-* The Tru64 (aka Digital Unix aka OSF/1) port has been updated.
-
-* The system panics on Solaris SMP systems related to PPP connections
- being established and terminated should no longer occur.
-
-* Fixed quite a few bugs.
-
-
-What was new in ppp-2.3.7.
-**************************
-
-* Pppd can now automatically allocate itself a pseudo-tty to use as
- the serial device. This has made three new options possible:
-
- - `pty script' will run `script' with its standard input and output
- connected to the master side of the pty. For example:
- pppd pty 'ssh -t server.my.net pppd'
- is a basic command for setting up a PPP link (tunnel) over ssh.
- (In practice you may need to specify other options such as IP
- addresses, etc.)
-
- - `notty' tells pppd to communicate over its standard input and
- output, which do not have to be a terminal device.
-
- - `record filename' tells pppd to record all of the characters sent
- and received over the serial device to a file called `filename'.
- The data is recorded in a tagged format with timestamps, which can
- be printed in a readable form with the pppdump program, which is
- included in this distribution.
-
-* Pppd now logs the connect time and number of bytes sent and received
- (at the level of the serial device) when the connection is
- terminated.
-
-* If you use the updetach or nodetach option, pppd will print its
- messages to standard output as well as logging them with syslog
- (provided of course pppd isn't using its standard input or output as
- its serial device).
-
-* There is a new `privgroup groupname' option (a privileged option).
- If the user running pppd is in group `groupname', s/he can use
- privileged options without restriction.
-
-* There is a new `receive-all' option, which causes pppd to accept all
- control characters, even the ones that the peer should be escaping
- (i.e. the receive asyncmap is 0). This is useful with some buggy
- peers.
-
-* The default asyncmap is now 0.
-
-* There is a new `sync' option, currently only implemented under
- Linux, which allows pppd to run on synchronous HDLC devices.
-
-* If a value for the device name or for the connect, disconnect,
- welcome or pty option is given in a privileged option file
- (i.e. /etc/ppp/options or a file loaded with the `call' option), it
- cannot be overridden by a non-privileged user.
-
-* Many bugs have been fixed, notably:
- - signals are not blocked unnecessarily, as they were in 2.3.6.
- - the usepeerdns option should work now.
- - the SPEED environment variable for scripts is set correctly.
- - the /etc/ppp/auth-down script is not run until auth-up completes.
- - the device is opened as root if it is the device on standard
- input.
- - pppd doesn't die with the ioctl(PPPIOCSASYNCMAP) error under linux
- if a hangup occurs at the wrong time.
-
-* Some error messages have been changed to be clearer (I hope :-)
-
-
-What was new in ppp-2.3.6.
-**************************
-
-* Pppd now opens the tty device as the user (rather than as root) if
- the device name was given by the user, i.e. on the command line or
- in the ~/.ppprc file. If the device name was given in
- /etc/ppp/options or in a file loaded with the `call' option, the
- device is opened as root.
-
-* The default behaviour of pppd is now to let a peer which has not
- authenticated itself (e.g. your ISP) use any IP address to which the
- system does not already have a route. (This is currently only
- supported under Linux, Solaris and Digital Unix; on the other
- systems, the peer must now authenticate itself unless the noauth
- option is used.)
-
-* Added new option `usepeerdns', thanks to Nick Walker
- <nickwalker@email.com>. If the peer supplies DNS addresses, these
- will be written to /etc/ppp/resolv.conf. The ip-up script can then
- be used to add these addresses to /etc/resolv.conf if desired (see
- the ip-up.local.add and ip-down.local.add files in the scripts
- directory).
-
-* The Solaris ppp driver should now work correctly on SMP systems.
-
-* Minor corrections so that the code can compile under Solaris 7,
- and under Linux with glibc-2.1.
-
-* The Linux kernel driver has been restructured for improved
- performance.
-
-* Pppd now won't start the ip-down script until the ip-up script has
- finished.
-
-
-What was new in ppp-2.3.5.
-**************************
-
-* Minor corrections to the Digital UNIX and NetBSD ports.
-
-* A workaround to avoid tickling a bug in the `se' serial port driver
-on Sun PCI Ultra machines running Solaris.
-
-* Fixed a bug in the negotiation of the Microsoft WINS server address
-option.
-
-* Fixed a bug in the Linux port where it would fail for kernel
-versions above 2.1.99.
-
-
-What was new in ppp-2.3.4.
-**************************
-
-* The NeXT port has been updated, thanks to Steve Perkins.
-
-* ppp-2.3.4 compiles and works under Solaris 2.6, using either gcc or
-cc.
-
-* With the Solaris, SVR4 and SunOS ports, you can control the choice
-of C compiler, C compiler options, and installation directories by
-editing the svr4/Makedefs or sunos4/Makedefs file.
-
-* Until now, we have been using the number 24 to identify Deflate
-compression in the CCP negotiations, which was the number in the draft
-RFC describing Deflate. The number actually assigned to Deflate is
-26. The code has been changed to use 26, but to allow the use of 24
-for now for backwards compatibility. (This can be disabled with the
-`nodeflatedraft' option to pppd.)
-
-* Fixed some bugs in the linux driver and deflate compressor which
-were causing compression problems, including corrupting long
-incompressible packets sometimes.
-
-* Fixes to the PAM and shadow password support in pppd, from Al
-Longyear and others.
-
-* Pppd now sets some environment variables for scripts it invokes
-(ip-up/down, auth-ip/down), giving information about the connection.
-The variables it sets are PEERNAME, IPLOCAL, IPREMOTE, UID, DEVICE,
-SPEED, and IFNAME.
-
-* Pppd now has an `updetach' option, which will cause it to detach
-from its controlling terminal once the link has come up (i.e. once it
-is available for IP traffic).
-
-
-What was new in ppp-2.3.3.
-**************************
-
-* Fixed compilation problems under SunOS.
-
-* Fixed a bug introduced into chat in 2.3.2, and compilation problems
-introduced into the MS-CHAP implementation in 2.3.2.
-
-* The linux kernel driver has been updated for recent 2.1-series
-kernel changes, and it now will ask kerneld to load compression
-modules when required, if the kernel is configured to support kerneld.
-
-* Pppd should now compile correctly under linux on systems with glibc.
-
-
-What was new in ppp-2.3.2.
-**************************
-
-* In 2.3.1, I made a change which was intended to make pppd able to
-detect loss of CD during or immediately after the connection script
-runs. Unfortunately, this had the side-effect that the connection
-script wouldn't work at all on some systems. This change has been
-reversed.
-
-* Fix compilation problems in the Linux kernel driver.
-
-
-What was new in ppp-2.3.1.
-**************************
-
-* Enhancements to chat, thanks to Francis Demierre. Chat can now
-accept comments in the chat script file, and has new SAY, HANGUP,
-CLR_ABORT and CLR_REPORT keywords.
-
-* Fixed a bug which causes 2.3.0 to crash Solaris systems.
-
-* Bug-fixes and restructuring of the Linux kernel driver.
-
-* The holdoff behaviour of pppd has been changed slightly: now, if
-the link comes up for IP (or other network protocol) traffic, we
-consider that the link has been successfully established, and don't
-enforce the holdoff period after the link goes down.
-
-* Pppd should now correctly wait for CD (carrier detect) from the
-modem, even when the serial port initially had CLOCAL set, and it
-should also detect loss of CD during or immediately after the
-connection script runs.
-
-* Under linux, pppd will work with older 2.2.0* version kernel
-drivers, although demand-dialling is not supported with them.
-
-* Minor bugfixes for pppd.
-
-
-What was new in ppp-2.3.
-************************
-
-* Demand-dialling. Pppd now has a mode where it will establish the
-network interface immediately when it starts, but not actually bring
-the link up until it sees some data to be sent. Look for the demand
-option description in the pppd man page. Demand-dialling is not
-supported under Ultrix or NeXTStep.
-
-* Idle timeout. Pppd will optionally terminate the link if no data
-packets are sent or received within a certain time interval.
-
-* Pppd now runs the /etc/ppp/auth-up script, if it exists, when the
-peer successfully authenticates itself, and /etc/ppp/auth-down when
-the connection is subsequently terminated. This can be useful for
-accounting purposes.
-
-* A new packet compression scheme, Deflate, has been implemented.
-This uses the same compression method as `gzip'. This method is free
-of patent or copyright restrictions, and it achieves better
-compression than BSD-Compress. It does consume more CPU cycles for
-compression than BSD-Compress, but this shouldn't be a problem for
-links running at 100kbit/s or less.
-
-* There is no code in this distribution which is covered by Brad
-Clements' restrictive copyright notice. The STREAMS modules for SunOS
-and OSF/1 have been rewritten, based on the Solaris 2 modules, which
-were written from scratch without any Clements code.
-
-* Pppstats has been reworked to clean up the output format somewhat.
-It also has a new -d option which displays data rate in kbyte/s for
-those columns which would normally display bytes.
-
-* Pppd options beginning with - or + have been renamed, e.g. -ip
-became noip, +chap became require-chap, etc. The old options are
-still accepted for compatibility but may be removed in future.
-
-* Pppd now has some options (such as the new `noauth' option) which
-can only be specified if it is being run by root, or in an
-"privileged" options file: /etc/ppp/options or an options file in the
-/etc/ppp/peers directory. There is a new "call" option to read
-options from a file in /etc/ppp/peers, making it possible for non-root
-users to make unauthenticated connections, but only to certain trusted
-peers. My intention is to make the `auth' option the default in a
-future release.
-
-* Several minor new features have been added to pppd, including the
-maxconnect and welcome options. Pppd will now terminate the
-connection when there are no network control protocols running. The
-allowed IP address(es) field in the secrets files can now specify
-subnets (with a notation like 123.45.67.89/24) and addresses which are
-not acceptable (put a ! on the front).
-
-* Numerous bugs have been fixed (no doubt some have been introduced :-)
-Thanks to those who reported bugs in ppp-2.2.
diff --git a/mdk-stage1/ppp/FAQ b/mdk-stage1/ppp/FAQ
deleted file mode 100644
index 96bc5c708..000000000
--- a/mdk-stage1/ppp/FAQ
+++ /dev/null
@@ -1,634 +0,0 @@
-This is a list of Frequently Asked Questions about using ppp-2.x and
-their answers.
-
-
-------------------------------------------------------------------------
-
-Q: Can you give me an example of how I might set up my machine to dial
-out to an ISP?
-
-A: Here's an example for dialling out to an ISP via a modem on
-/dev/tty02. The modem uses hardware (CTS/RTS) flow control, and the
-serial port is run at 38400 baud. The ISP assigns our IP address.
-
-To configure pppd for this connection, create a file under
-/etc/ppp/peers called (say) my-isp containing the following:
-
-tty02 crtscts 38400
-connect 'chat -v -f /etc/ppp/chat/my-isp'
-defaultroute
-
-The ppp connection is then initiated using the following command:
-
-pppd call my-isp
-
-Of course, if the directory containing pppd is not in your path, you
-will need to give the full pathname for pppd, for example,
-/usr/sbin/pppd.
-
-When you run this, pppd will use the chat program to dial the ISP and
-invoke its ppp service. Chat will read the file specified with -f,
-namely /etc/ppp/chat/my-isp, to find a list of strings to expect to
-receive, and strings to send. This file would contain something like
-this:
-
-ABORT "NO CARRIER"
-ABORT "NO DIALTONE"
-ABORT "ERROR"
-ABORT "NO ANSWER"
-ABORT "BUSY"
-ABORT "Username/Password Incorrect"
-"" "at"
-OK "at&d2&c1"
-OK "atdt2479381"
-"name:" "^Uusername"
-"word:" "\qpassword"
-"annex" "\q^Uppp"
-"Switching to PPP-ppp-Switching to PPP"
-
-You will need to change the details here. The first string on each
-line is a string to expect to receive; the second is the string to
-send. You can add or delete lines according to the dialog required to
-access your ISP's system. This example is for a modem with a standard
-AT command set, dialling out to an Annex terminal server. The \q
-toggles "quiet" mode; when quiet mode is on, the strings to be sent
-are replaced by ?????? in the log. You may need to go through the
-dialog manually using kermit or tip first to determine what should go
-in the script.
-
-To terminate the link, run the following script, called (say)
-kill-ppp:
-
-#!/bin/sh
-unit=ppp${1-0}
-piddir=/var/run
-if [ -f $piddir/$unit.pid ]; then
- kill -1 `cat $piddir/$unit.pid`
-fi
-
-On some systems (SunOS, Solaris, Ultrix), you will need to change
-/var/run to /etc/ppp.
-
-
-------------------------------------------------------------------------
-
-Q: Can you give me an example of how I could set up my office machine
-so I can dial in to it from home?
-
-A: Let's assume that the office machine is called "office" and is on a
-local ethernet subnet. Call the home machine "home" and give it an IP
-address on the same subnet as "office". We'll require both machines
-to authenticate themselves to each other.
-
-Set up the files on "office" as follows:
-
-/etc/ppp/options contains:
-
-auth # require the peer to authenticate itself
-lock
-# other options can go here if desired
-
-/etc/ppp/chap-secrets contains:
-
-home office "beware the frub-jub" home
-office home "bird, my son!%&*" -
-
-Set up a modem on a serial port so that users can dial in to the
-modem and get a login prompt.
-
-On "home", set up the files as follows:
-
-/etc/ppp/options contains the same as on "office".
-
-/etc/ppp/chap-secrets contains:
-
-home office "beware the frub-jub" -
-office home "bird, my son!%&*" office
-
-Create a file called /etc/ppp/peers/office containing the following:
-
-tty02 crtscts 38400
-connect 'chat -v -f /etc/ppp/chat/office'
-defaultroute
-
-(You may need to change some of the details here.)
-
-Create the /etc/ppp/chat/office file containing the following:
-
-ABORT "NO CARRIER"
-ABORT "NO DIALTONE"
-ABORT "ERROR"
-ABORT "NO ANSWER"
-ABORT "BUSY"
-ABORT "ogin incorrect"
-"" "at"
-OK "at&d2&c1"
-OK "atdt2479381"
-"name:" "^Uusername"
-"word:" "\qpassword"
-"$" "\q^U/usr/sbin/pppd proxyarp"
-"~"
-
-You will need to change the details. Note that the "$" in the
-second-last line is expecting the shell prompt after a successful
-login - you may need to change it to "%" or something else.
-
-You then initiate the connection (from home) with the command:
-
-pppd call office
-
-------------------------------------------------------------------------
-
-Q: When I try to establish a connection, the modem successfully dials
-the remote system, but then hangs up a few seconds later. How do I
-find out what's going wrong?
-
-A: There are a number of possible problems here. The first thing to
-do is to ensure that pppd's messages are visible. Pppd uses the
-syslog facility to log messages which help to identify specific
-problems. Messages from pppd have facility "daemon" and levels
-ranging from "debug" to "error".
-
-Usually it is useful to see messages of level "notice" or higher on
-the console. To see these, find the line in /etc/syslog.conf which
-has /dev/console on the right-hand side, and add "daemon.notice" in
-the list on the left. The line will end up looking something like
-this:
-
-*.err;kern.debug;auth.notice;mail.crit;daemon.notice /dev/console
-
-Note that the whitespace is tabs, *not* spaces.
-
-If you are having problems, it may be useful to see messages of level
-"info" as well, in which case you would change "daemon.notice" to
-"daemon.info".
-
-In addition, it is useful to collect pppd's debugging output in a
-file - the debug option to pppd causes it to log the contents of all
-control packets sent and received in human-readable form. To do this,
-add a line like this to /etc/syslog.conf:
-
-daemon,local2.debug /etc/ppp/log
-
-and create an empty /etc/ppp/log file.
-
-When you change syslog.conf, you will need to send a HUP signal to
-syslogd to causes it to re-read syslog.conf. You can do this with a
-command like this (as root):
-
- kill -HUP `cat /etc/syslogd.pid`
-
-(On some systems, you need to use /var/run/syslog.pid instead of
-/etc/syslogd.pid.)
-
-After setting up syslog like this, you can use the -v flag to chat and
-the `debug' option to pppd to get more information. Try initiating
-the connection again; when it fails, inspect /etc/ppp/log to see what
-happened and where the connection failed.
-
-
-------------------------------------------------------------------------
-
-Q: When I try to establish a connection, I get an error message saying
-"Serial link is not 8-bit clean". Why?
-
-A: The most common cause is that your connection script hasn't
-successfully dialled out to the remote system and invoked ppp service
-there. Instead, pppd is talking to something (a shell or login
-process on the remote machine, or maybe just the modem) which is only
-outputting 7-bit characters.
-
-This can also arise with a modem which uses an AT command set if the
-dial command is issued before pppd is invoked, rather than within a
-connect script started by pppd. If the serial port is set to 7
-bits/character plus parity when the last AT command is issued, the
-modem serial port will be set to the same setting.
-
-Note that pppd *always* sets the local serial port to 8 bits per
-character, with no parity and 1 stop bit. So you shouldn't need to
-issue an stty command before invoking pppd.
-
-
-------------------------------------------------------------------------
-
-Q: When I try to establish a connection, I get an error message saying
-"Serial line is looped back". Why?
-
-A: Probably your connection script hasn't successfully dialled out to
-the remote system and invoked ppp service there. Instead, pppd is
-talking to something which is just echoing back the characters it
-receives. The -v option to chat can help you find out what's going
-on. It can be useful to include "~" as the last expect string to
-chat, so chat won't return until it's seen the start of the first PPP
-frame from the remote system.
-
-Another possibility is that your phone connection has dropped for some
-obscure reason and the modem is echoing the characters it receives
-from your system.
-
-
-------------------------------------------------------------------------
-
-Q: I installed pppd successfully, but when I try to run it, I get a
-message saying something like "peer authentication required but no
-authentication files accessible".
-
-A: When pppd is used on a machine which already has a connection to
-the Internet (or to be more precise, one which has a default route in
-its routing table), it will require all peers to authenticate
-themselves. The reason for this is that if you don't require
-authentication, you have a security hole, because the peer can
-basically choose any IP address it wants, even the IP address of some
-trusted host (for example, a host mentioned in some .rhosts file).
-
-On machines which don't have a default route, pppd does not require
-the peer to authenticate itself. The reason is that such machines
-would mostly be using pppd to dial out to an ISP which will refuse to
-authenticate itself. In that case the peer can use any IP address as
-long as the system does not already have a route to that address.
-For example, if you have a local ethernet network, the peer can't use
-an address on that network. (In fact it could if it authenticated
-itself and it was permitted to use that address by the pap-secrets or
-chap-secrets file.)
-
-There are 3 ways around the problem:
-
-1. If possible, arrange for the peer to authenticate itself, and
-create the necessary secrets files (/etc/ppp/pap-secrets and/or
-/etc/ppp/chap-secrets).
-
-2. If the peer refuses to authenticate itself, and will always be
-using the same IP address, or one of a small set of IP addresses, you
-can create an entry in the /etc/ppp/pap-secrets file like this:
-
- "" * "" his-ip.his-domain his-other-ip.other-domain
-
-(that is, using the empty string for the client name and password
-fields). Of couse, you replace the 4th and following fields in the
-example above with the IP address(es) that the peer may use. You can
-use either hostnames or numeric IP addresses.
-
-3. You can add the `noauth' option to the /etc/ppp/options file.
-Pppd will then not ask the peer to authenticate itself. If you do
-this, I *strongly* recommend that you remove the set-uid bit from the
-permissions on the pppd executable, with a command like this:
-
- chmod u-s /usr/sbin/pppd
-
-Then, an intruder could only use pppd maliciously if they had already
-become root, in which case they couldn't do any more damage using pppd
-than they could anyway.
-
-
-------------------------------------------------------------------------
-
-Q: What do I need to put in the secrets files?
-
-A: Three things:
- - secrets (i.e. passwords) to use for authenticating this host to
- other hosts (i.e., for proving our identity to others);
- - secrets which other hosts can use for authenticating themselves
- to us (i.e., so that they can prove their identity to us); and
- - information about which IP addresses other hosts may use, once
- they have authenticated themselves.
-
-There are two authentication files: /etc/ppp/pap-secrets, which
-contains secrets for use with PAP (the Password Authentication
-Protocol), and /etc/ppp/chap-secrets, which contains secrets for use
-with CHAP (the Challenge Handshake Authentication Protocol). Both
-files have the same simple format, which is as follows:
-
-- The file contains a series of entries, each of which contains a
-secret for authenticating one machine to another.
-
-- Each entry is contained on a single logical line. A logical line
-may be continued across several lines by placing a backslash (\) at
-the end of each line except the last.
-
-- Each entry has 3 or more fields, separated by whitespace (spaces
-and/or tabs). These fields are, in order:
- * The name of the machine that is authenticating itself
- (the "client").
- * The name of the machine that is authenticating the client
- (the "server").
- * The secret to be used for authenticating that client to that
- server. If this field begins with the at-sign `@', the rest
- of the field is taken as the name of a file containing the
- actual secret.
- * The 4th and any following fields list the IP address(es)
- that the client may use.
-
-- The file may contain comments, which begin with a `#' and continue
-to the end of the line.
-
-- Double quotes `"' should be used around a field if it contains
-characters with special significance, such as space, tab, `#', etc.
-
-- The backslash `\' may be used before characters with special
-significance (space, tab, `#', `\', etc.) to remove that significance.
-
-Some important points to note:
-
-* A machine can be *both* a "client" and a "server" for the purposes
-of authentication - this happens when both peers require the other to
-authenticate itself. So A would authenticate itself to B, and B would
-also authenticate itself to A (possibly using a different
-authentication protocol).
-
-* If both the "client" and the "server" are running ppp-2.x, they need
-to have a similar entry in the appropriate secrets file; the first two
-fields are *not* swapped on the client, compared to the server. So
-the client might have an entry like this:
-
- ay bee "our little secret" -
-
-and the corresponding entry on the server could look like this:
-
- ay bee "our little secret" 123.45.67.89
-
-
-------------------------------------------------------------------------
-
-Q: Explain about PAP and CHAP?
-
-PAP stands for the Password Authentication Protocol. With this
-protocol, the "client" (the machine that needs to authenticate itself)
-sends its name and a password, in clear text, to the "server". The
-server returns a message indicating whether the name and password are
-valid.
-
-CHAP stands for the Challenge Handshake Authentication Protocol. It
-is designed to address some of the deficiencies and vulnerabilities of
-PAP. Like PAP, it is based on the client and server having a shared
-secret, but the secret is never passed in clear text over the link.
-Instead, the server sends a "challenge" - an arbitrary string of
-bytes, and the client must prove it knows the shared secret by
-generating a hash value from the challenge combined with the shared
-secret, and sending the hash value back to the server. The server
-also generates the hash value and compares it with the value received
-from the client.
-
-At a practical level, CHAP can be slightly easier to configure than
-PAP because the server sends its name with the challenge. Thus, when
-finding the appropriate secret in the secrets file, the client knows
-the server's name. In contrast, with PAP, the client has to find its
-password (i.e. the shared secret) before it has received anything from
-the server. Thus, it may be necessary to use the `remotename' option
-to pppd when using PAP authentication so that it can select the
-appropriate secret from /etc/ppp/pap-secrets.
-
-Microsoft also has a variant of CHAP which uses a different hashing
-arrangement from normal CHAP. There is a client-side implementation
-of Microsoft's CHAP in ppp-2.3; see README.MSCHAP80.
-
-
-------------------------------------------------------------------------
-
-Q: When the modem hangs up, without the remote system having
-terminated the connection properly, pppd does not notice the hangup,
-but just keeps running. How do I get pppd to notice the hangup and
-exit?
-
-A: Pppd detects modem hangup by looking for an end-of-file indication
-from the serial driver, which should be generated when the CD (carrier
-detect) signal on the serial port is deasserted. For this to work:
-
-- The modem has to be set to assert CD when the connection is made and
-deassert it when the phone line hangs up. Usually the AT&C1 modem
-command sets this mode.
-
-- The cable from the modem to the serial port must connect the CD
-signal (on pin 8).
-
-- Some serial drivers have a "software carrier detect" mode, which
-must be *disabled*. The method of doing this varies between systems.
-Under SunOS, use the ttysoftcar command. Under NetBSD, edit /etc/ttys
-to remove the "softcar" flag from the line for the serial port, and
-run ttyflags.
-
-
-------------------------------------------------------------------------
-
-Q: Why should I use PPP compression (BSD-Compress or Deflate) when my
-modem already does V.42 compression? Won't it slow the CPU down a
-lot?
-
-A: Using PPP compression is preferable, especially when using modems
-over phone lines, for the following reasons:
-
-- The V.42 compression in the modem isn't very strong - it's an LZW
-technique (same as BSD-Compress) with a 10, 11 or 12 bit code size.
-With BSD-Compress you can use a code size of up to 15 bits and get
-much better compression, or you can use Deflate and get even better
-compression ratios.
-
-- I have found that enabling V.42 compression in my 14.4k modem
-increases the round-trip time for a character to be sent, echoed and
-returned by around 40ms, from 160ms to 200ms (with error correction
-enabled). This is enough to make it feel less responsive on rlogin or
-telnet sessions. Using PPP compression adds less than 5ms (small
-enough that I couldn't measure it reliably). I admit my modem is a
-cheapie and other modems may well perform better.
-
-- While compression and decompression do require some CPU time, they
-reduce the amount of time spent in the serial driver to transmit a
-given amount of data. Many machines require an interrupt for each
-character sent or received, and the interrupt handler can take a
-significant amount of CPU time. So the increase in CPU load isn't as
-great as you might think. My measurements indicate that a system with
-a 33MHz 486 CPU should be able to do Deflate compression for serial
-link speeds of up to 100kb/s or more. It depends somewhat on the type
-of data, of course; for example, when compressing a string of nulls
-with Deflate, it's hard to get a high output data rate from the
-compressor, simply because it compresses strings of nulls so well that
-it has to eat a very large amount of input data to get each byte of
-output.
-
-
-------------------------------------------------------------------------
-
-Q: I get messages saying "Unsupported protocol (...) received". What do
-these mean?
-
-A: If you only get one or two when pppd starts negotiating with the
-peer, they mean that the peer wanted to negotiate some PPP protocol
-that pppd doesn't understand. This doesn't represent a problem, it
-simply means that there is some functionality that the peer supports
-that pppd doesn't, so that functionality can't be used.
-
-If you get them sporadically while the link is operating, or if the
-protocol numbers (in parentheses) don't correspond to any valid PPP
-protocol that the peer might be using, then the problem is probably
-that characters are getting corrupted on the receive side, or that
-extra characters are being inserted into the receive stream somehow.
-If this is happening, most packets that get corrupted should get
-discarded by the FCS (Frame Check Sequence, a 16-bit CRC) check, but a
-small number may get through.
-
-One possibility may be that you are receiving broadcast messages on
-the remote system which are being sent over your serial link. Another
-possibility is that your modem is set for XON/XOFF (software) flow
-control and is inserting ^Q and ^S characters into the receive data
-stream.
-
-
-------------------------------------------------------------------------
-
-Q: I get messages saying "Protocol-Reject for unsupported protocol ...".
-What do these mean?
-
-A: This is the other side of the previous question. If characters are
-getting corrupted on the way to the peer, or if your system is
-inserting extra bogus characters into the transmit data stream, the
-peer may send protocol-reject messages to you, resulting in the above
-message (since your pppd doesn't recognize the protocol number
-either.)
-
-
-------------------------------------------------------------------------
-
-Q: I get a message saying something like "ioctl(TIOCSETD): Operation
-not permitted". How do I fix this?
-
-A: This is because pppd is not running as root. If you have not
-installed pppd setuid-root, you will have to be root to run it. If
-you have installed pppd setuid-root and you still get this message, it
-is probably because your shell is using some other copy of pppd than
-the installed one - for example, if you are in the pppd directory
-where you've just built pppd and your $PATH has . before /usr/sbin (or
-wherever pppd gets installed).
-
-
-------------------------------------------------------------------------
-
-Q: Has your package been ported to HP/UX or IRIX or AIX?
-
-A: No. I don't have access to systems running HP/UX or AIX. No-one
-has volunteered to port it to HP/UX. I had someone who did a port for
-AIX 4.x, but who is no longer able to maintain it. And apparently AIX
-3.x is quite different, so it would need a separate port.
-
-IRIX includes a good PPP implementation in the standard distribution,
-as far as I know.
-
-
-------------------------------------------------------------------------
-
-Q: Under SunOS 4, when I try to modload the ppp modules, I get the
-message "can't open /dev/vd: No such device".
-
-A: First check in /dev that there is an entry like this:
-
-crw-r--r-- 1 root 57, 0 Oct 2 1991 vd
-
-If not, make one (mknod /dev/vd c 57 0). If the problem still exists,
-probably your kernel has been configured without the vd driver
-included. The vd driver is needed for loadable module support.
-
-First, identify the config file that was used. When you boot your
-machine, or if you run /etc/dmesg, you'll see a line that looks
-something like this:
-
-SunOS Release 4.1.3_U1 (CAP_XBOX) #7: Thu Mar 21 15:31:56 EST 1996
- ^^^^^^^^
- this is the config file name
-
-The config file will be in the /sys/`arch -k`/conf directory (arch -k
-should return sun4m for a SparcStation 10, sun3x for a Sun 3/80,
-etc.). Look in there for a line saying "options VDDRV". If that line
-isn't present (or is commented out), add it (or uncomment it).
-
-You then need to rebuild the kernel as described in the SunOS
-manuals. Basically you need to run config and make like this:
-
- /usr/etc/config CAP_XBOX
- cd ../CAP_XBOX
- make
-
-(replacing the string CAP_XBOX by the name of the config file for your
-kernel, of course).
-
-Then copy the new kernel to /:
-
- mv /vmunix /vmunix.working
- cp vmunix /
-
-and reboot. Modload should then work.
-
-
-------------------------------------------------------------------------
-
-Q: I'm running Linux (or NetBSD or FreeBSD), and my system comes with
-PPP already. Should I consider installing this package? Why?
-
-A: The PPP that is already installed in your system is (or is derived
-from) some version of this PPP package. You can find out what version
-of this package is already installed with the command "pppd --help".
-If this is older than the latest version, you may wish to install the
-latest version so that you can take advantage of the new features or
-bug fixes.
-
-
-------------------------------------------------------------------------
-
-Q: I'm running pppd in demand mode, and I find that pppd often dials
-out unnecessarily when I try to make a connection within my local
-machine or with a machine on my local LAN. What can I do about this?
-
-A: Very often the cause of this is that a program is trying to contact
-a nameserver to resolve a hostname, and the nameserver (specified in
-/etc/resolv.conf, usually) is on the far side of the ppp link. You
-can try executing a command such as `ping myhost' (where myhost is the
-name of the local machine, or some other machine on a local LAN), to
-see whether that starts the ppp link. If it does, check the setup of
-your /etc/hosts file to make sure you have the local machine and any
-hosts on your local LAN listed, and /etc/resolv.conf and/or
-/etc/nsswitch.conf files to make sure you resolve hostnames from
-/etc/hosts if possible before trying to contact a nameserver.
-
-
-------------------------------------------------------------------------
-
-Q: Since I installed ppp-2.3.6, dialin users to my server have been
-getting this message when they run pppd:
-
-peer authentication required but no suitable secret(s) found for
-authenticating any peer to us (ispserver)
-
-A: In 2.3.6, the default is to let an unauthenticated peer only use IP
-addresses to which the machine doesn't already have a route. So on a
-machine with a default route, everyone has to authenticate. If you
-really don't want that, you can put `noauth' in the /etc/ppp/options
-file. Note that there is then no check on who is using which IP
-address. IMHO, this is undesirably insecure, but I guess it may be
-tolerable as long as you don't use any .rhosts files or anything like
-that. I recommend that you require dialin users to authenticate, even
-if just with PAP using their login password (using the `login' option
-to pppd). If you do use `noauth', you should at least have a pppusers
-group and set the permissions on pppd to allow only user and group to
-execute it.
-
-------------------------------------------------------------------------
-
-Q: When running pppd as a dial-in server, I often get the message
-"LCP: timeout sending Config-Requests" from pppd. It seems to be
-random, but dial-out always works fine. What is wrong?
-
-A: Most modern modems auto-detects the speed of the serial line
-between the modem and the computer. This auto-detection occurs when
-the computer sends characters to the modem, when the modem is in
-command mode. It does not occur when the modem is in data mode.
-Thus, if you send commands to the modem at 2400 bps, and then change
-the serial port speed to 115200 bps, the modem will not detect this
-change until something is transmitted from the computer to the modem.
-When running pppd in dial-in mode (i.e. without a connect script),
-pppd sets the speed of the serial port, but does not transmit
-anything. If the modem was already running at the specified speed,
-everything is fine, but if not, you will just receive garbage from the
-modem. To cure this, use an init script such as the following:
-
- pppd ttyS0 115200 modem crtscts init "chat '' AT OK"
-
-To reset the modem and enable auto-answer, use:
-
- pppd ttyS0 115200 modem crtscts init "chat '' ATZ OK ATS0=1 OK"
diff --git a/mdk-stage1/ppp/PLUGINS b/mdk-stage1/ppp/PLUGINS
deleted file mode 100644
index 0eeabe249..000000000
--- a/mdk-stage1/ppp/PLUGINS
+++ /dev/null
@@ -1,131 +0,0 @@
-Starting with version 2.3.10, pppd includes support for `plugins' -
-pieces of code which can be loaded into pppd at runtime and which can
-affect its behaviour in various ways. The idea of plugins is to
-provide a way for people to customize the behaviour of pppd without
-having to either apply local patches to each version or get their
-patches accepted into the standard distribution. My aim is that
-plugins will be able to be used with successive versions of pppd
-without needing to recompile the plugins.
-
-A plugin is a standard shared library object, typically with a name
-ending in .so. They are loaded using the standard dlopen() library
-call, so plugins are only supported on systems which support shared
-libraries and the dlopen call. At present pppd is compiled with
-plugin support only under Linux and Solaris.
-
-Plugins are loaded into pppd using the `plugin' option, which takes
-one argument, the name of a shared object file. The plugin option is
-a privileged option. I suggest that you give the full path name of
-the shared object file; if you don't, it may be possible for
-unscrupulous users to substitute another shared object file for the
-one you mean to load, e.g. by setting the LD_LIBRARY_PATH variable.
-
-Plugins are usually written in C and compiled and linked to a shared
-object file in the appropriate manner for your platform. Using gcc
-under Linux, a plugin called `xyz' could be compiled and linked with
-the following commands:
-
- gcc -c -O xyz.c
- gcc -shared -o xyz.so xyz.o
-
-There are some example plugins in the pppd/plugins directory in the
-ppp distribution. Currently there is one example, minconn.c, which
-implements a `minconnect' option, which specifies a minimum connect
-time before the idle timeout applies.
-
-Plugins can access global variables within pppd, so it is useful for
-them to #include "pppd.h" from the pppd source directory.
-
-Every plugin must contain a global procedure called `plugin_init'.
-This procedure will get called (with no arguments) immediately after
-the plugin is loaded.
-
-Plugins can affect the behaviour of pppd in at least three ways:
-
-1. They can add extra options which pppd will then recognize. This is
- done by calling the add_options() procedure with a pointer to an
- array of option_t structures. The last entry in the array must
- have its name field set to NULL.
-
-2. Pppd contains `hook' variables which are procedure pointers. If a
- given hook is not NULL, pppd will call the procedure it points to
- at the appropriate point in its processing. The plugin can set any
- of these hooks to point to its own procedures. See below for a
- description of the hooks which are currently implemented.
-
-3. Plugin code can call any global procedures and access any global
- variables in pppd.
-
-Here is a list of the currently implemented hooks in pppd.
-
-
-int (*idle_time_hook)(struct ppp_idle *idlep);
-
-The idle_time_hook is called when the link first comes up (i.e. when
-the first network protocol comes up) and at intervals thereafter. On
-the first call, the idlep parameter is NULL, and the return value is
-the number of seconds before pppd should check the link activity, or 0
-if there is to be no idle timeout.
-
-On subsequent calls, idlep points to a structure giving the number of
-seconds since the last packets were sent and received. If the return
-value is > 0, pppd will wait that many seconds before checking again.
-If it is <= 0, that indicates that the link should be terminated due
-to lack of activity.
-
-
-int (*holdoff_hook)(void);
-
-The holdoff_hook is called when an attempt to bring up the link fails,
-or the link is terminated, and the persist or demand option was used.
-It returns the number of seconds that pppd should wait before trying
-to reestablish the link (0 means immediately).
-
-
-int (*pap_check_hook)(void);
-int (*pap_passwd_hook)(char *user, char *passwd);
-int (*pap_auth_hook)(char *user, int userlen,
- char *passwd, int passlen,
- char **msgp, int *msglenp,
- struct wordlist **paddrs,
- struct wordlist **popts);
-
-These hooks are designed to allow a plugin to replace the normal PAP
-password processing in pppd with something different (e.g. contacting
-an external server).
-
-The pap_check_hook is called to check whether there is any possibility
-that the peer could authenticate itself to us. If it returns 1, pppd
-will ask the peer to authenticate itself. If it returns 0, pppd will
-not ask the peer to authenticate itself (but if authentication is
-required, pppd may exit, or terminate the link before network protocol
-negotiation). If it returns -1, pppd will look in the pap-secrets
-file as it would normally.
-
-The pap_passwd_hook is called to determine what username and password
-pppd should use in authenticating itself to the peer with PAP. The
-user string will already be initialized, by the `user' option, the
-`name' option, or from the hostname, but can be changed if necessary.
-MAXNAMELEN bytes of space are available at *user, and MAXSECRETLEN
-bytes of space at *passwd. If this hook returns 0, pppd will use the
-values at *user and *passwd; if it returns -1, pppd will look in the
-pap-secrets file, or use the value from the +ua or password option, as
-it would normally.
-
-The pap_auth_hook is called to determine whether the username and
-password supplied by the peer are valid. user and passwd point to
-null-terminated strings containing the username and password supplied
-by the peer, with non-printable characters converted to a printable
-form. The pap_auth_hook function should set msg to a string to be
-returned to the peer and return 1 if the username/password was valid
-and 0 if not. If the hook returns -1, pppd will look in the
-pap-secrets file as usual.
-
-If the username/password was valid, the hook can set *paddrs to point
-to a wordlist containing the IP address(es) which the peer is
-permitted to use, formatted as in the pap-secrets file. It can also
-set *popts to a wordlist containing any extra options for this user
-which pppd should apply at this point.
-
-
-## $Id$ ##
diff --git a/mdk-stage1/ppp/README b/mdk-stage1/ppp/README
deleted file mode 100644
index aa1e5f9c2..000000000
--- a/mdk-stage1/ppp/README
+++ /dev/null
@@ -1,168 +0,0 @@
-This is the README file for ppp-2.4, a package which implements the
-Point-to-Point Protocol (PPP) to provide Internet connections over
-serial lines.
-
-
-Introduction.
-*************
-
-The Point-to-Point Protocol (PPP) provides a standard way to establish
-a network connection over a serial link. At present, this package
-supports IP and the protocols layered above IP, such as TCP and UDP.
-The Linux and Solaris ports of this package have optional support for
-IPV6; the Linux port of this package also has support for IPX.
-
-This software consists of two parts:
-
-- Kernel code, which establishes a network interface and passes
-packets between the serial port, the kernel networking code and the
-PPP daemon (pppd). This code is implemented using STREAMS modules on
-SunOS 4.x and Solaris, and as a line discipline under Linux and FreeBSD.
-
-- The PPP daemon (pppd), which negotiates with the peer to establish
-the link and sets up the ppp network interface. Pppd includes support
-for authentication, so you can control which other systems may make a
-PPP connection and what IP addresses they may use.
-
-The primary platforms supported by this package are Linux and Solaris.
-Code for SunOS 4.x is included here but is largely untested. I have
-code for NeXTStep, FreeBSD, SVR4, Tru64 (Digital Unix), AIX and Ultrix
-but no active maintainers for these platforms. Code for all of these
-except AIX is included in the ppp-2.3.11 release.
-
-
-Installation.
-*************
-
-The file SETUP contains general information about setting up your
-system for using PPP. There is also a README file for each supported
-system, which contains more specific details for installing PPP on
-that system. The supported systems, and the corresponding README
-files, are:
-
- Linux README.linux
- Solaris 2 README.sol2
- SunOS 4.x README.sunos4
-
-In each case you start by running the ./configure script. This works
-out which operating system you are using and creates symbolic links to
-the appropriate makefiles. You then run `make' to compile the
-user-level code, and (as root) `make install' to install the
-user-level programs pppd, chat and pppstats.
-
-N.B. Since 2.3.0, leaving the permitted IP addresses column of the
-pap-secrets or chap-secrets file empty means that no addresses are
-permitted. You need to put a "*" in that column to allow the peer to
-use any IP address. (This only applies where the peer is
-authenticating itself to you, of course.)
-
-
-What's new in ppp-2.4.1.
-************************
-
-* Pppd can now print out the set of options that are in effect. The
- new `dump' option causes pppd to print out the option values after
- option parsing is complete. The `dryrun' option causes pppd to
- print the options and then exit.
-
-* The option parsing code has been fixed so that options in the
- per-tty options file are parsed correctly, and don't override values
- from the command line in most cases.
-
-* The plugin option now looks in /usr/lib/pppd/<pppd-version> (for
- example, /usr/lib/pppd/2.4.1b1) for shared objects for plugins if
- there is no slash in the plugin name.
-
-* When loading a plugin, pppd will now check the version of pppd for
- which the plugin was compiled, and refuse to load it if it is
- different to pppd's version string. To enable this, the plugin
- source needs to #include "pppd.h" and have a line saying:
- char pppd_version[] = VERSION;
-
-* There is a bug in zlib, discovered by James Carlson, which can cause
- kernel memory corruption if Deflate is used with the lowest setting,
- 8. As a workaround pppd will now insist on using at least 9.
-
-* Pppd should compile on Solaris and SunOS again.
-
-* Pppd should now set the MTU correctly on demand-dialled interfaces.
-
-
-What was new in ppp-2.4.0.
-**************************
-
-* Multilink: this package now allows you to combine multiple serial
- links into one logical link or `bundle', for increased bandwidth and
- reduced latency. This is currently only supported under the
- Linux-2.3.99pre5 or later kernels.
-
-* All the pppd processes running on a system now write information
- into a common database. I used the `tdb' code from samba for this.
-
-* New hooks have been added.
-
-For a list of the changes made during the 2.3 series releases of this
-package, see the Changes-2.3 file.
-
-
-Compression methods.
-********************
-
-This package supports two packet compression methods: Deflate and
-BSD-Compress. Other compression methods which are in common use
-include Predictor, LZS, and MPPC. These methods are not supported for
-two reasons - they are patent-encumbered, and they cause some packets
-to expand slightly, which pppd doesn't currently allow for.
-BSD-Compress is also patent-encumbered (its inclusion in this package
-can be considered a historical anomaly :-) but it doesn't ever expand
-packets. Neither does Deflate, which uses the same algorithm as gzip.
-
-
-Patents.
-********
-
-The BSD-Compress algorithm used for packet compression is the same as
-that used in the Unix "compress" command. It is apparently covered by
-U.S. patents 4,814,746 (owned by IBM) and 4,558,302 (owned by Unisys),
-and corresponding patents in various other countries (but not
-Australia). If this is of concern, you can build the package without
-including BSD-Compress. To do this, edit net/ppp-comp.h to change the
-definition of DO_BSD_COMPRESS to 0. The bsd-comp.c files are then no
-longer needed, so the references to bsd-comp.o may optionally be
-removed from the Makefiles.
-
-
-Contacts.
-*********
-
-The comp.protocols.ppp newsgroup is a useful place to get help if you
-have trouble getting your ppp connections to work. Please do not send
-me questions of the form "please help me get connected to my ISP" -
-I'm sorry, but I simply do not have the time to answer all the
-questions like this that I get.
-
-If you find bugs in this package, please report them to the maintainer
-for the port for the operating system you are using:
-
-Linux Paul Mackerras <paulus@linuxcare.com>
-Solaris 2 James Carlson <james.d.carlson@east.sun.com>
-SunOS 4.x Adi Masputra <adi.masputra@sun.com>
-
-
-Copyrights:
-***********
-
-All of the code can be freely used and redistributed. The individual
-source files each have their own copyright and permission notice; some
-have a BSD-style notice and some are under the GPL.
-
-
-Distribution:
-*************
-
-The primary site for releases of this software is:
-
- ftp://linuxcare.com.au/pub/ppp/
-
-
-($Id$)
diff --git a/mdk-stage1/ppp/README.MSCHAP80 b/mdk-stage1/ppp/README.MSCHAP80
deleted file mode 100644
index d3ed291b7..000000000
--- a/mdk-stage1/ppp/README.MSCHAP80
+++ /dev/null
@@ -1,284 +0,0 @@
-PPP Client Support for Microsoft's CHAP-80
-==========================================
-
-Eric Rosenquist rosenqui@strataware.com
-(updated by Paul Mackerras)
-(updated by Al Longyear)
-(updated by Farrell Woods)
-
-INTRODUCTION
-
-Microsoft has introduced an extension to the Challenge/Handshake
-Authentication Protocol (CHAP) which avoids storing cleartext
-passwords on a server. (Unfortunately, this is not as secure as it
-sounds, because the encrypted password stored on a server can be used
-by a bogus client to gain access to the server just as easily as if
-the password were stored in cleartext.) The details of the Microsoft
-extensions can be found in the document:
-
- <ftp://ftp.microsoft.com/developr/rfc/chapexts.txt>
-
-In short, MS-CHAP is identified as <auth chap 80> since the hex value
-of 80 is used to designate Microsoft's scheme. Standard PPP CHAP uses
-a value of 5. If you enable PPP debugging with the "debug" option and
-see something like the following in your logs, the remote server is
-requesting MS-CHAP:
-
- rcvd [LCP ConfReq id=0x2 <asyncmap 0x0> <auth chap 80> <magic 0x46a3>]
- ^^^^^^^^^^^^
-
-The standard pppd implementation will indicate its lack of support for
-MS-CHAP by NAKing it:
-
- sent [LCP ConfNak id=0x2 <auth chap 05>]
-
-Windows NT Server systems are often configured to "Accept only
-Microsoft Authentication" (this is intended to enhance security). Up
-until now, that meant that you couldn't use this version of PPPD to
-connect to such a system. I've managed to get a client-only
-implementation of MS-CHAP working; it will authenticate itself to
-another system using MS-CHAP, but if you're using PPPD as a dial-in
-server, you won't be able to use MS-CHAP to authenticate the clients.
-This would not be a lot of extra work given that the framework is in
-place, but I didn't need it myself so I didn't implement it.
-
-
-BUILDING THE PPPD
-
-MS-CHAP uses a combination of MD4 hashing and DES encryption for
-authentication. You may need to get Eric Young's libdes library in
-order to use my MS-CHAP extensions. A lot of UNIX systems already
-have DES encryption available via the crypt(3), encrypt(3) and
-setkey(3) interfaces. Some may (such as that on Digital UNIX)
-provide only the encryption mechanism and will not perform
-decryption. This is okay. We only need to encrypt to perform
-MS-CHAP authentication.
-
-If you have encrypt/setkey available, then hopefully you need only
-define these two things in your Makefile: -DUSE_CRYPT and -DCHAPMS.
-Skip the paragraphs below about obtaining and building libdes. Do
-the "make clean" and "make" as described below. Linux users
-should not need to modify their Makefiles. Instead,
-just do "make CHAPMS=1 USE_CRYPT=1".
-
-If you don't have encrypt and setkey, you will need Eric Young's
-libdes library. You can find it in:
-
-ftp://ftp.funet.fi/pub/crypt/mirrors/ftp.psy.uq.oz.au/DES/libdes-3.06.tar.gz
-
-Australian residents can get libdes from Eric Young's site:
-
-ftp://ftp.psy.uq.oz.au/pub/Crypto/DES/libdes-3.06.tar.gz
-
-It is also available on many other sites (ask Archie).
-
-I used libdes-3.06, but hopefully anything newer than that will work
-also. Get the library, build and test it on your system, and install
-it somewhere (typically /usr/local/lib and /usr/local/include).
-
-
-
-You should now be ready to (re)compile the PPPD. Go to the pppd
-subdirectory and make sure the Makefile contains "-DCHAPMS" in the
-CFLAGS or COMPILE_FLAGS macro, and that the LIBS macro (or LDADD for
-BSD systems) contains "-ldes". Depending on your system and where the
-DES library was installed, you may also need to alter the include and
-library paths used by your compiler.
-
-Do a "make clean" and then a "make" to rebuild pppd. Assuming all
-goes well, install the new pppd and move on to the CONFIGURATION
-section.
-
-
-CONFIGURATION
-
-If you've never used PPPD with CHAP before, read the man page (type
-"man pppd") and read the description in there. Basically, you need to
-edit the "chap-secrets" file typically named /etc/ppp/chap-secrets.
-This should contain the following two lines for each system with which
-you use CHAP (with no leading blanks):
-
- RemoteHost Account Secret
- Account RemoteHost Secret
-
-Note that you need both lines and that item 1 and 2 are swapped in the
-second line. I'm not sure why you need it twice, but it works and I didn't
-have time to look into it further. The "RemoteHost" is a somewhat
-arbitrary name for the remote Windows NT system you're dialing. It doesn't
-have to match the NT system's name, but it *does* have to match what you
-use with the "remotename" parameter. The "Account" is the Windows NT
-account name you have been told to use when dialing, and the "Secret" is
-the password for that account. For example, if your service provider calls
-their machine "DialupNT" and tells you your account and password are
-"customer47" and "foobar", add the following to your chap-secrets file:
-
- DialupNT customer47 foobar
- customer47 DialupNT foobar
-
-The only other thing you need to do for MS-CHAP (compared to normal CHAP)
-is to always use the "remotename" option, either on the command line or in
-your "options" file (see the pppd man page for details). In the case of
-the above example, you would need to use the following command line:
-
- pppd name customer47 remotename DialupNT <other options>
-
-or add:
-
- name customer47
- remotename DialupNT
-
-to your PPPD "options" file.
-
-The "remotename" option is required for MS-CHAP since Microsoft PPP servers
-don't send their system name in the CHAP challenge packet.
-
-
-E=691 (AUTHENTICATION_FAILURE) ERRORS WHEN YOU HAVE THE VALID SECRET (PASSWORD)
-
-If your RAS server is not the domain controller and is not a 'stand-alone'
-server then it must make a query to the domain controller for your domain.
-
-You need to specify the domain name with the user name when you attempt to
-use this type of a configuration. The domain name is specified with the
-local name in the chap-secrets file and with the option for the 'name'
-parameter.
-
-For example, the previous example would become:
-
- DialupNT domain\\customer47 foobar
- domain\\customer47 DialupNT foobar
-
-and
-
- pppd name 'domain\\customer47' remotename DialupNT <other options>
-
-or add:
-
- name domain\\customer47
- remotename DialupNT
-
-when the Windows NT domain name is simply called 'domain'.
-
-
-TROUBLESHOOTING
-
-Assuming that everything else has been configured correctly for PPP and
-CHAP, the MS-CHAP-specific problems you're likely to encounter are mostly
-related to your Windows NT account and its settings. A Microsoft server
-returns error codes in its CHAP response. The following are extracted from
-Microsoft's "chapexts.txt" file referenced above:
-
- 646 ERROR_RESTRICTED_LOGON_HOURS
- 647 ERROR_ACCT_DISABLED
- 648 ERROR_PASSWD_EXPIRED
- 649 ERROR_NO_DIALIN_PERMISSION
- 691 ERROR_AUTHENTICATION_FAILURE
- 709 ERROR_CHANGING_PASSWORD
-
-You'll see these in your pppd log as a line similar to:
-
- Remote message: E=649 R=0
-
-The "E=" is the error number from the table above, and the "R=" flag
-indicates whether the error is transient and the client should retry. If
-you consistently get error 691, then either you're using the wrong account
-name/password, or the DES library or MD4 hashing (in md4.c) aren't working
-properly. Verify your account name and password (use a Windows NT or
-Windows 95 system to dial-in if you have one available). If that checks
-out, test the DES library with the "destest" program included with the DES
-library. If DES checks out, the md4.c routines are probably failing
-(system byte ordering may be a problem) or my code is screwing up. I've
-only got access to a Linux system, so you're on your own for anything else.
-
-Another thing that might cause problems is that some RAS servers won't
-respond at all to LCP config requests without seeing the word "CLIENT"
-from the other end. If you see pppd sending out LCP config requests
-without getting any reply, try putting something in your chat script
-to send the word CLIENT after the modem has connected.
-
-If everything compiles cleanly, but fails at authentication time, then
-it might be a case of the MD4 or DES code screwing up. The following
-small program can be used to test the MS-CHAP code to see if it
-produces a known response:
-
------------------
-#include <stdio.h>
-
-#include "pppd.h"
-#include "chap.h"
-#include "chap_ms.h"
-
-int main(argc, argv)
- int argc;
- char *argv[];
-{
- u_char challenge[8];
- int challengeInt[sizeof(challenge)];
- chap_state cstate;
- int i;
-
- if (argc != 3) {
- fprintf(stderr, "Usage: %s <16-hexchar challenge> <password>\n",
- argv[0]); exit(1);
- }
-
- sscanf(argv[1], "%2x%2x%2x%2x%2x%2x%2x%2x",
- challengeInt + 0, challengeInt + 1, challengeInt + 2,
- challengeInt + 3, challengeInt + 4, challengeInt + 5,
- challengeInt + 6, challengeInt + 7);
-
- for (i = 0; i < sizeof(challenge); i++)
- challenge[i] = (u_char)challengeInt[i];
-
- ChapMS(&cstate, challenge, sizeof(challenge), argv[2], strlen(argv[2]));
- printf("Response length is %d, response is:", cstate.resp_length);
-
- for (i = 0; i < cstate.resp_length; i++) {
- if (i % 8 == 0)
- putchar('\n');
- printf("%02X ", (unsigned int)cstate.response[i]);
- }
-
- putchar('\n');
-
- exit(0);
-}
--------------
-
-This needs to link against chap_ms.o, md4.o, and the DES library. When
-you run it with the command line:
-
- $ testchap 00000000000000000000000000000000 hello
-
-it should output the following:
-
- Response length is 49, response is:
- 00 00 00 00 00 00 00 00
- 00 00 00 00 00 00 00 00
- 00 00 00 00 00 00 00 00
- F4 D9 9D AF 82 64 DC 3C
- 53 F9 BC 92 14 B5 5D 9E
- 78 C4 21 48 9D B7 A8 B4
- 01
-
-if not, then either the DES library is not working, the MD4 code isn't
-working, or there are some problems with the port of the code in
-chap_ms.c.
-
-
-STILL TO DO
-
-A site using only MS-CHAP to authenticate has no need to store cleartext
-passwords in the "chap-secrets" file. A utility that spits out the ASCII
-hex MD4 hash of a given password would be nice, and would allow that hash
-to be used in chap-secrets in place of the password. The code to do this
-could quite easily be lifted from chap_ms.c (you have to convert the
-password to Unicode before hashing it). The chap_ms.c file would also have
-to be changed to recognize a password hash (16 binary bytes == 32 ASCII hex
-characters) and skip the hashing stage.
-
-A server implementation would allow MS-CHAP to be used with Windows NT and
-Windows 95 clients for enhanced security. Some new command-line options
-would be required, as would code to generate the Challenge packet and
-verify the response. Most of the helper functions are in place, so this
-shouldn't be too hard for someone to add.
diff --git a/mdk-stage1/ppp/README.cbcp b/mdk-stage1/ppp/README.cbcp
deleted file mode 100644
index 6f7b7685e..000000000
--- a/mdk-stage1/ppp/README.cbcp
+++ /dev/null
@@ -1,97 +0,0 @@
- Microsoft Call Back Configuration Protocol.
- by Pedro Roque Marques
- (updated by Paul Mackerras)
-
-The CBCP is a method by which the Microsoft Windows NT Server may
-implement additional security. It is possible to configure the server
-in such a manner so as to require that the client systems which
-connect with it are required that following a valid authentication to
-leave a method by which the number may be returned call.
-
-It is a requirement of servers so configured that the protocol be
-exchanged.
-
-So, this set of patches may be applied to the pppd process to enable
-the cbcp client *only* portion of the specification. It is primarily
-meant to permit connection with Windows NT Servers.
-
-The ietf-working specification may be obtained from ftp.microsoft.com
-in the developr/rfc directory.
-
-The ietf task group has decided to recommend that the LCP sequence be
-extended to permit the callback operation. For this reason, these
-patches are not 'part' of pppd but are an adjunct to the code.
-
-To enable CBCP support, all that is required is to change the
-appropriate Makefile in the pppd subdirectory to add "-DCBCP_SUPPORT"
-to the CFLAGS definition and add cbcp.o to the list of object files,
-and then recompile pppd. The patch below does this for Makefile.bsd
-and Makefile.linux.
-
-
---------------------------------cut here-------------------------------
-diff -r -c ppp-2.3.orig/pppd/Makefile.bsd ppp-2.3/pppd/Makefile.bsd
-*** ppp-2.3.orig/pppd/Makefile.bsd Tue Oct 8 13:33:33 1996
---- ppp-2.3/pppd/Makefile.bsd Fri Apr 11 23:59:15 1997
-***************
-*** 4,14 ****
- # -D_BITYPES is for FreeBSD, which doesn't define anything to
- # tell us that u_int32_t gets defined if <sys/types.h> is included.
- # Remove for older *BSD systems for which this isn't true.
-! CFLAGS+= -g -I.. -DHAVE_PATHS_H -D_BITYPES
-
- PROG= pppd
- SRCS= main.c magic.c fsm.c lcp.c ipcp.c upap.c chap.c md5.c ccp.c \
-! demand.c auth.c options.c sys-bsd.c
- MAN= pppd.cat8
- MAN8= pppd.8
- BINMODE=4555
---- 4,14 ----
- # -D_BITYPES is for FreeBSD, which doesn't define anything to
- # tell us that u_int32_t gets defined if <sys/types.h> is included.
- # Remove for older *BSD systems for which this isn't true.
-! CFLAGS+= -I.. -DHAVE_PATHS_H -D_BITYPES -DCBCP_SUPPORT
-
- PROG= pppd
- SRCS= main.c magic.c fsm.c lcp.c ipcp.c upap.c chap.c md5.c ccp.c \
-! demand.c auth.c options.c sys-bsd.c cbcp.c
- MAN= pppd.cat8
- MAN8= pppd.8
- BINMODE=4555
-diff -r -c ppp-2.3.orig/pppd/Makefile.linux ppp-2.3/pppd/Makefile.linux
-*** ppp-2.3.orig/pppd/Makefile.linux Tue Oct 8 15:42:41 1996
---- ppp-2.3/pppd/Makefile.linux Sat Apr 12 00:02:28 1997
-***************
-*** 14,20 ****
- ipxcp.h cbcp.h
- MANPAGES = pppd.8
- PPPDOBJS = main.o magic.o fsm.o lcp.o ipcp.o upap.o chap.o md5.o ccp.o \
-! auth.o options.o demand.o sys-linux.o ipxcp.o
-
- all: pppd
-
---- 14,20 ----
- ipxcp.h cbcp.h
- MANPAGES = pppd.8
- PPPDOBJS = main.o magic.o fsm.o lcp.o ipcp.o upap.o chap.o md5.o ccp.o \
-! auth.o options.o demand.o sys-linux.o ipxcp.o cbcp.o
-
- all: pppd
-
-***************
-*** 36,42 ****
- #INCLUDE_DIRS= -I/usr/include -I..
- INCLUDE_DIRS=
-
-! COMPILE_FLAGS= -D_linux_=1 -DHAVE_PATHS_H -DIPX_CHANGE
-
- CFLAGS= $(COPTS) $(COMPILE_FLAGS) $(INCLUDE_DIRS)
-
---- 36,42 ----
- #INCLUDE_DIRS= -I/usr/include -I..
- INCLUDE_DIRS=
-
-! COMPILE_FLAGS= -D_linux_=1 -DHAVE_PATHS_H -DIPX_CHANGE -DCBCP_SUPPORT
-
- CFLAGS= $(COPTS) $(COMPILE_FLAGS) $(INCLUDE_DIRS)
-
diff --git a/mdk-stage1/ppp/README.linux b/mdk-stage1/ppp/README.linux
deleted file mode 100644
index 62ed9ca7f..000000000
--- a/mdk-stage1/ppp/README.linux
+++ /dev/null
@@ -1,297 +0,0 @@
- PPP for Linux
- -------------
-
- Paul Mackerras
- 8 March 2001
-
- for ppp-2.4.1
-
-1. Introduction
----------------
-
-The Linux PPP implementation includes both kernel and user-level
-parts. This package contains the user-level part, which consists of
-the PPP daemon (pppd) and associated utilities. In the past this
-package has contained updated kernel drivers. This is no longer
-necessary, as the current 2.2 and 2.4 kernel sources contain
-up-to-date drivers.
-
-The Linux PPP implementation is capable of being used both for
-initiating PPP connections (as a `client') or for handling incoming
-PPP connections (as a `server'). Note that this is an operational
-distinction, based on how the connection is created, rather than a
-distinction that is made in the PPP protocols themselves.
-
-Mostly this package is used for PPP connections over modems connected
-via asynchronous serial ports, so this guide concentrates on this
-situation.
-
-The PPP protocol consists of two parts. One is a scheme for framing
-and encoding packets, the other is a series of protocols called LCP,
-IPCP, PAP and CHAP, for negotiating link options and for
-authentication. This package similarly consists of two parts: a
-kernel module which handles PPP's low-level framing protocol, and a
-user-level program called pppd which implements PPP's negotiation
-protocols.
-
-The kernel module assembles/disassembles PPP frames, handles error
-detection, and forwards packets between the serial port and either the
-kernel network code or the user-level program pppd. IP packets go
-directly to the kernel network code. So once pppd has negotiated the
-link, it in practice lies completely dormant until you want to take
-the link down, when it negotiates a graceful disconnect.
-
-
-2. Installation
----------------
-
-2.1 Kernel driver
-
-Assuming you are running a recent 2.2 or 2.4 (or later) series kernel,
-the kernel source code will contain an up-to-date kernel PPP driver.
-If the PPP driver was included in your kernel configuration when your
-kernel was built, then you only need to install the user-level
-programs. Otherwise you will need to get the source tree for your
-kernel version, configure it with PPP included, and recompile. Most
-Linux distribution vendors ship kernels with PPP included in the
-configuration.
-
-The PPP driver can be either compiled into the kernel or compiled as a
-kernel module. If it is compiled into the kernel, the PPP driver is
-included in the kernel image which is loaded at boot time. If it is
-compiled as a module, the PPP driver is present in one or more files
-under /lib/modules and is loaded into the kernel when needed.
-
-The 2.2 series kernels contain an older version of the kernel PPP
-driver, one which doesn't support multilink. If you want multilink,
-you need to run the latest 2.4 series kernel. The kernel PPP driver
-was completely rewritten for the 2.4 series kernels to support
-multilink and to allow it to operate over diverse kinds of
-communication medium (the 2.2 driver only operates over serial ports
-and devices which look like serial ports, such as pseudo-ttys).
-
-Under the 2.2 kernels, if PPP is compiled as a module, the PPP driver
-modules should be present in the /lib/modules/`uname -r`/net directory
-(where `uname -r` represents the kernel version number). The PPP
-driver module itself is called ppp.o, and there will usually be
-compression modules there, ppp_deflate.o and bsd_comp.o, as well as
-slhc.o, which handles TCP/IP header compression. If the PPP driver is
-compiled into the kernel, the compression code will still be compiled
-as modules, for kernels before 2.2.17pre12. For 2.2.17pre12 and later,
-if the PPP driver is compiled in, the compression code will also.
-
-Under the 2.4 kernels, there are two PPP modules, ppp_generic.o and
-ppp_async.o, plus the compression modules (ppp_deflate.o, bsd_comp.o
-and slhc.o). If the PPP generic driver is compiled into the kernel,
-the other four can then be present either as modules or compiled into
-the kernel. There is a sixth module, ppp_synctty.o, which is used for
-synchronous tty devices such as high-speed WAN adaptors.
-
-
-2.2 User-level programs
-
-If you obtained this package in .rpm or .deb format, you simply follow
-the usual procedure for installing the package.
-
-If you are using the .tar.gz form of this package, then cd into the
-ppp-2.4.1b1 directory you obtained by unpacking the archive and issue
-the following commands:
-
-$ ./configure
-$ make
-# make install
-
-The `make install' has to be done as root. This makes and installs
-four programs and their man pages: pppd, chat, pppstats and pppdump.
-If the /etc/ppp configuration directory doesn't exist, the `make
-install' step will create it and install some default configuration
-files.
-
-
-2.3 System setup for 2.4 kernels
-
-Under the 2.4 series kernels, pppd needs to be able to open /dev/ppp,
-character device (108,0). If you are using devfs (the device
-filesystem), the /dev/ppp node will automagically appear when the
-ppp_generic module is loaded, or at startup if ppp_generic is compiled
-in.
-
-If you have ppp_generic as a module, and you are using devfsd (the
-devfs daemon), you will need to add a line like this to your
-/etc/devfsd.conf:
-
-LOOKUP ppp MODLOAD
-
-Otherwise you will need to create a /dev/ppp device node with the
-commands:
-
-# mknod /dev/ppp c 108 0
-# chmod 600 /dev/ppp
-
-If you use module autoloading and have PPP as a module, you will need
-to add the following to your /etc/modules.conf or /etc/conf.modules:
-
-alias /dev/ppp ppp_generic
-alias char-major-108 ppp_generic
-alias tty-ldisc-3 ppp_async
-alias tty-ldisc-14 ppp_synctty
-alias ppp-compress-21 bsd_comp
-alias ppp-compress-24 ppp_deflate
-alias ppp-compress-26 ppp_deflate
-
-
-2.4 System setup under 2.2 series kernels
-
-Under the 2.2 series kernels, you should add the following to your
-/etc/modules.conf or /etc/conf.modules:
-
-alias tty-ldisc-3 ppp
-alias ppp-compress-21 bsd_comp
-alias ppp-compress-24 ppp_deflate
-alias ppp-compress-26 ppp_deflate
-
-
-3. Getting help with problems
------------------------------
-
-If you have problems with your PPP setup, or you just want to ask some
-questions, or better yet if you can help others with their PPP
-questions, then you should join the linux-ppp mailing list. Send an
-email to majordomo@vger.kernel.org with a line in the body saying
-
-subscribe linux-ppp
-
-To leave the mailing list, send an email to majordomo@vger.kernel.org
-with a line in the body saying
-
-unsubscribe linux-ppp
-
-To send a message to the list, email it to linux-ppp@vger.kernel.org.
-You don't have to be subscribed to send messages to the list.
-
-You can also email me (paulus@linuxcare.com.au) but I am overloaded
-with email and I can't respond to most messages I get in a timely
-fashion.
-
-There are also several relevant news groups, such as comp.protocols.ppp,
-comp.os.linux.networking, or comp.os.linux.setup.
-
-
-4. Configuring your dial-out PPP connections
---------------------------------------------
-
-Some Linux distribution makers include tools in their distributions
-for setting up PPP connections. For example, for Red Hat Linux and
-derivatives, you should probably use linuxconf or netcfg to set up
-your PPP connections.
-
-The two main windowing environments for Linux, KDE and Gnome, both
-come with GUI utilities for configuring and controlling PPP dial-out
-connections. They are convenient and relatively easy to configure.
-
-A third alternative is to use a PPP front-end package such as wvdial
-or ezppp. These also will handle most of the details of talking to
-the modem and setting up the PPP connection for you.
-
-Assuming that you don't want to use any of these tools, you want to
-set up the configuration manually yourself, then read on. This
-document gives a brief description and example. More details can be
-found by reading the pppd and chat man pages and the PPP-HOWTO.
-
-We assume that you have a modem that uses the Hayes-compatible AT
-command set connected to an async serial port (e.g. /dev/ttyS0) and
-that you are dialling out to an ISP.
-
-The trickiest and most variable part of setting up a dial-out PPP
-connection is the part which involves getting the modem to dial and
-then invoking PPP service at the far end. Generally, once both ends
-are talking PPP the rest is relatively straightforward.
-
-Now in fact pppd doesn't know anything about how to get modems to dial
-or what you have to say to the system at the far end to get it to talk
-PPP. That's handled by an external program such as chat, specified
-with the connect option to pppd. Chat takes a series of strings to
-expect from the modem interleaved with a series of strings to send to
-the modem. See the chat man page for more information. Here is a
-simple example for connecting to an ISP, assuming that the ISP's
-system starts talking PPP as soon as it answers the phone:
-
-pppd connect 'chat -v "" AT OK ATDT5551212 ~' \
- /dev/ttyS0 57600 crtscts debug defaultroute
-
-Going through pppd's options in order:
- connect 'chat ...' This gives a command to run to contact the
- PPP server. Here the supplied 'chat' program is used to dial a
- remote computer. The whole command is enclosed in single quotes
- because pppd expects a one-word argument for the 'connect' option.
- The options to 'chat' itself are:
-
- -v verbose mode; log what we do to syslog
- "" don't wait for any prompt, but instead...
- AT send the string "AT"
- OK expect the response "OK", then
- ATDT5551212 dial the modem, then
- ~ wait for a ~ character, indicating the start
- of a PPP frame from the server
-
- /dev/ttyS0 specifies which serial port the modem is connected to
- 57600 specifies the baud rate to use
- crtscts use hardware flow control using the RTS & CTS signals
- debug log the PPP negotiation with syslog
- defaultroute add default network route via the PPP link
-
-Pppd will write error messages and debugging logs to the syslogd
-daemon using the facility name "daemon". These messages may already
-be logged to the console or to a file like /var/log/messages; consult
-your /etc/syslog.conf file to see. If you want to make all pppd
-messages go to a file such as /var/log/ppp-debug, add the line
-
-daemon.* /var/log/ppp-debug
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- This is one or more tabs. Do not use spaces.
-
-to syslog.conf; make sure to put one or more TAB characters (not
-spaces!) between the two fields. Then you need to create an empty
-/var/log/ppp-debug file with a command such as
-
- touch /var/log/ppp-debug
-
-and then restart syslogd, usually by sending it a SIGHUP signal with a
-command like this:
-
- killall -HUP syslogd
-
-
-4.1 Is the link up?
-
-The main way to tell if your PPP link is up and operational is the
-ifconfig ("interface configuration") command. Type
-
- /sbin/ifconfig
-
-at a shell prompt. It should print a list of interfaces including one
-like this example:
-
-ppp0 Link encap Point-to-Point Protocol
- inet addr 192.76.32.3 P-t-P 129.67.1.165 Mask 255.255.255.0
- UP POINTOPOINT RUNNING MTU 1500 Metric 1
- RX packets 33 errors 0 dropped 0 overrun 0
- TX packets 42 errors 0 dropped 0 overrun 0
-
-Assuming that ifconfig shows the ppp network interface, you can test
-the link using the ping command like this:
-
- /sbin/ping -c 3 129.67.1.165
-
-where the address you give is the address shown as the P-t-P address
-in the ifconfig output. If the link is operating correctly, you
-should see output like this:
-
- PING 129.67.1.165 (129.67.1.165): 56 data bytes
- 64 bytes from 129.67.1.165: icmp_seq=0 ttl=255 time=268 ms
- 64 bytes from 129.67.1.165: icmp_seq=1 ttl=255 time=247 ms
- 64 bytes from 129.67.1.165: icmp_seq=2 ttl=255 time=266 ms
- --- 129.67.1.165 ping statistics ---
- 3 packets transmitted, 3 packets received, 0% packet loss
- round-trip min/avg/max = 247/260/268 ms
-
diff --git a/mdk-stage1/ppp/README.sol2 b/mdk-stage1/ppp/README.sol2
deleted file mode 100644
index 4c862208f..000000000
--- a/mdk-stage1/ppp/README.sol2
+++ /dev/null
@@ -1,220 +0,0 @@
-This file describes the installation process for ppp-2.3 on systems
-running Solaris 2. The Solaris 2 and SVR4 ports share a lot of code
-but are not identical. The STREAMS kernel modules and driver for
-Solaris 2 are in the svr4 directory (and use some code from the
-modules directory).
-
-NOTE: Although the kernel driver and modules have been designed to
-operate correctly on SMP systems, they have not been extensively
-tested on SMP machines. Some users of SMP Solaris x86 systems have
-reported system problems apparently linked to the use of previous
-versions of this software. I believe these problems have been fixed.
-
-
-Installation.
-*************
-
-1. Run the configure script and make the user-level programs and the
-kernel modules.
-
- ./configure
- make
-
-If you wish to use gcc (or another compiler) instead of Sun's cc, edit
-the svr4/Makedefs file and uncomment the definition of CC. You can
-also change the options passed to the C compiler by editing the COPTS
-definition.
-
-2. Install the programs and kernel modules: as root, do
-
- make install
-
-This installs pppd, chat and pppstats in /usr/local/bin and the kernel
-modules in /kernel/drv and /kernel/strmod, and creates the /etc/ppp
-directory and populates it with default configuration files. You can
-change the installation directories by editing svr4/Makedefs.
-
-If your system normally has only one network interface, the default
-Solaris 2 system startup scripts will disable IP forwarding in the IP
-kernel module. This will prevent the remote machine from using the
-local machine as a gateway to access other hosts. The solution is to
-create an /etc/ppp/ip-up script containing something like this:
-
- #!/bin/sh
- /usr/sbin/ndd -set /dev/ip ip_forwarding 1
-
-See the man page for ip(7p) for details.
-
-Dynamic STREAMS Re-Plumbing Support.
-************************************
-
-Solaris 8 includes dynamic re-plumbing support. With this, modules
-below ip can be inserted, or removed, without having the ip stream be
-unplumbed, and re-plumbed again. All states in ip for an interface
-will therefore now be preserved. Users can install (or upgrade)
-modules like firewall, bandwidth manager, cache manager, tunneling,
-etc., without shutting the machine down.
-
-To support this, ppp driver now uses /dev/udp instead of /dev/ip for
-the ip stream. The interface stream (where ip module pushed on top of
-ppp) is then I_PLINK'ed below the ip stream. /dev/udp is used because
-STREAMS will not let a driver be PLINK'ed under itself, and /dev/ip is
-typically the driver at the bottom of the tunneling interfaces
-stream. The mux ids of the ip streams are then added using
-SIOCSxIFMUXID ioctl.
-
-Users will be able to see the modules on the interface stream by, for
-example:
-
- pikapon% ifconfig ppp modlist
- 0 ip
- 1 ppp
-
-Or arbitrarily if bandwidth manager and firewall modules are installed:
-
- pikapon% ifconfig hme0 modlist
- 0 arp
- 1 ip
- 2 ipqos
- 3 firewall
- 4 hme
-
-Snoop Support.
-**************
-
-This version includes support for /usr/sbin/snoop. Tests has been done
-on both Solaris 7 and 8. Only IPv4 and IPv6 packets will be sent up to
-stream(s) marked as promiscuous, e.g, snoop et al.
-
-Users will be able to see the packets on the ppp interface by, for example:
-
- snoop -d ppp0
-
-See the man page for snoop(1M) for details.
-
-IPv6 Support.
-*************
-
-This is for Solaris 8 and later.
-
-This version has been tested under Solaris 8 running IPv6. As of now,
-interoperability testing has only been done between Solaris machines
-in terms of the IPV6 NCP. An additional command line option for the
-pppd daemon has been added: ipv6cp-use-persistent.
-
-By default, compilation for IPv6 support is not enabled. Uncomment
-the necessary lines in pppd/Makefile.sol2 to enable it. Once done, the
-quickest way to get IPv6 running is to add the following somewhere in
-the command line option:
-
- +ipv6 ipv6cp-use-persistent
-
-The persistent id for the link-local address was added to conform to
-RFC 2472; such that if there's an EUI-48 available, use that to make
-up the EUI-64. As of now, the Solaris implementation extracts the
-EUI-48 id from the Ethernet's MAC address (the ethernet interface
-needs to be up). Future works might support other ways of obtaining a
-unique yet persistent id, such as EEPROM serial numbers, etc.
-
-There need not be any up/down scripts for ipv6, e.g. /etc/ppp/ipv6-up
-or /etc/ppp/ipv6-down, to trigger IPv6 neighbor discovery for auto
-configuration and routing. The in.ndpd daemon will perform all of the
-necessary jobs in the background. /etc/inet/ndpd.conf can be further
-customized to enable the machine as an IPv6 router. See the man page
-for in.ndpd(1M) and ndpd.conf(4) for details.
-
-Below is a sample output of "ifconfig -a" with persistent link-local
-address. Note the UNNUMBERED flag is set because hme0 and ppp0 both
-have identical link-local IPv6 addresses:
-
-lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
- inet 127.0.0.1 netmask ff000000
-hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
- inet 129.146.86.248 netmask ffffff00 broadcast 129.146.86.255
- ether 8:0:20:8d:38:c1
-lo0: flags=2000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6> mtu 8252 index 1
- inet6 ::1/128
-hme0: flags=2000841<UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2
- ether 8:0:20:8d:38:c1
- inet6 fe80::a00:20ff:fe8d:38c1/10
-hme0:1: flags=2080841<UP,RUNNING,MULTICAST,ADDRCONF,IPv6> mtu 1500 index 2
- inet6 fec0::56:a00:20ff:fe8d:38c1/64
-hme0:2: flags=2080841<UP,RUNNING,MULTICAST,ADDRCONF,IPv6> mtu 1500 index 2
- inet6 2000::56:a00:20ff:fe8d:38c1/64
-hme0:3: flags=2080841<UP,RUNNING,MULTICAST,ADDRCONF,IPv6> mtu 1500 index 2
- inet6 2::56:a00:20ff:fe8d:38c1/64
-ppp0: flags=10008d1<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST,IPv4> mtu 1500 index 12
- inet 172.16.1.1 --> 172.16.1.2 netmask ffffff00
-ppp0: flags=2202851<UP,POINTOPOINT,RUNNING,MULTICAST,UNNUMBERED,NONUD,IPv6> mtu 1500 index 12
- inet6 fe80::a00:20ff:fe8d:38c1/10 --> fe80::a00:20ff:fe7a:24fb
-
-Note also that a plumbed ipv6 interface stream will exist throughout
-the entire PPP session in the case where the peer rejects IPV6CP,
-which further causes the interface state to stay down. Unplumbing will
-happen when the daemon exits. This is done by design and is not a bug.
-
-64-bit Support.
-***************
-
-This version has been tested under Solaris 7 (and Solaris 8 ) in both
-32- and 64-bits environments (Ultra class machines). Installing the
-package by executing "make install" will result in additional files
-residing in /kernel/drv/sparcv9 and /kernel/strmod/sparcv9
-subdirectories.
-
-64-bit modules and driver have been compiled and tested using Sun's cc.
-
-Synchronous Serial Support.
-***************************
-
-This version has working but limited support for the on-board
-synchronous HDLC interfaces. It has been tested with the /dev/se_hdlc
-and /dev/zsh drivers. Synchronous mode was tested with a Cisco
-router.
-
-There ppp daemon does not directly support controlling the serial
-interface. It relies on the /usr/sbin/syncinit command to initialize
-HDLC mode and clocking.
-
-Some bugs remain: large sized frames are not sent/received properly,
-and may be related to the IP mtu. This may be due to bugs in pppd
-itself, bugs in Solaris or the serial drivers. The /dev/zsh driver
-seems more larger and can send/receive larger frames than the
-/dev/se_hdlc driver. There is a confirmed bug with NRZ/NRZI mode in
-the /dev/se_hdlc driver, and Solaris patch 104596-11 is needed to
-correct it. (However this patch seems to introduce other serial
-problems. If you don't apply the patch, the workaround is to change
-the nrzi mode to yes or no, whichever works)
-
-How to start pppd with synchronous support:
-
-#!/bin/sh
-
-local=1.1.1.1 # your ip address here
-baud=38400 # needed, but ignored by serial driver
-
-# Change to the correct serial driver/port
-#dev=/dev/zsh0
-dev=/dev/se_hdlc0
-
-# Change the driver, nrzi mode, speed and clocking to match your setup
-# This configuration is for external clocking from the DCE
-connect="syncinit se_hdlc0 nrzi=no speed=64000 txc=rxc rxc=rxc"
-
-/usr/sbin/pppd $dev sync $baud novj noauth $local: connect "$connect"
-
-
-Sample Cisco router config excerpt:
-
-!
-! Cisco router setup as DCE with RS-232 DCE cable
-!
-!
-interface Serial0
- ip address 1.1.1.2 255.255.255.0
- encapsulation ppp
- clockrate 64000
- no nrzi-encoding
- no shutdown
-!
-
diff --git a/mdk-stage1/ppp/README.sunos4 b/mdk-stage1/ppp/README.sunos4
deleted file mode 100644
index b48aec377..000000000
--- a/mdk-stage1/ppp/README.sunos4
+++ /dev/null
@@ -1,62 +0,0 @@
-This file describes the installation process for ppp-2.3 on systems
-running SunOS 4.1.x (or the equivalent).
-
-The STREAMS modules in the sunos4 directory provide kernel support for
-PPP on SunOS 4.1.x systems. They have been tested under SunOS 4.1.3
-on a SparcStation 1+. They should work under earlier SunOS 4.1.x
-systems, but no guarantees are given.
-
-These modules are designed to be loaded into the running kernel using
-the `modload' command.
-
-
-Installation.
-*************
-
-1. Run the configure script and make the user-level programs and the
-kernel modules.
-
- ./configure
- make
-
-If you wish to compile using gcc instead of cc, edit the
-sunos4/Makedefs file and uncomment the line saying "CC = gcc". You
-can also change the C compiler options by editing the COPTS
-definition.
-
-2. Install the pppd, pppstats and chat programs and the loadable
-module object files (you need to be root to do this):
-
- make install
-
-By default, the programs and the loadable module object files go into
-/usr/local/etc. Doing `make install' also copies a script called
-ppp.INSTALL into /dev, and makes ppp.LOAD, ppp.UNLOAD, ppp.MKDEV and
-ppp.RMDEV links to it. You can change the installation directories by
-editing sunos4/Makedefs.
-
-3. Load the ppp modules (you need to be root for this too):
-
- /dev/ppp.LOAD
-
-You will want to do this in your /etc/rc.local file once you have
-everything installed. I suggest you put something like the following
-in /etc/rc.local (or /etc/loadable, if you have one):
-
- if [ -f /dev/ppp.AUTOLOAD ]; then
- /dev/ppp.LOAD
- fi
-
-and then create a /dev/ppp.AUTOLOAD file with the command
-
- touch /dev/ppp.AUTOLOAD
-
-It is not advisable to unload the "if_ppp" module, because it creates
-network interface units, and SunOS does not provide any way to destroy
-network interfaces once created. If you do unload it, the system will
-probably crash at some later stage.
-
-If you have previously had ppp-2.2 installed, you may have statements
-in your /etc/rc.local to load the ppp module. You will need to remove
-those. Having done this, you will need to reboot to remove the old
-ppp module and load the new modules.
diff --git a/mdk-stage1/ppp/SETUP b/mdk-stage1/ppp/SETUP
deleted file mode 100644
index fb28a2138..000000000
--- a/mdk-stage1/ppp/SETUP
+++ /dev/null
@@ -1,111 +0,0 @@
- Configuring a PPP link.
-
-After you have compiled and installed this package, there are some
-configuration files which will generally need to be set up. The
-pppd(8) man page is the best reference for the full details; this file
-outlines the configuration process for the most common case, where
-this package is being used to enable a machine to dial an ISP and
-connect to the internet. The FAQ and README.linux files also provide
-useful information about setting up PPP.
-
-Dialling an ISP.
-****************
-
-Usually, an ISP will assign an IP address to your machine, and will
-refuse to authenticate itself to you. Some ISPs require a username
-and password to be entered before PPP service commences, while others
-use PPP authentication (using either the PAP or CHAP protocols).
-
-The recommended way to set up to dial an ISP is for the system
-administrator to create a file under /etc/ppp/peers, named for the ISP
-that you will be dialling. For example, suppose the file is called
-/etc/ppp/peers/isp. This file would contain something like this:
-
-cua0 # modem is connected to /dev/cua0
-38400 # run the serial port at 38400 baud
-crtscts # use hardware flow control
-noauth # don't require the ISP to authenticate itself
-defaultroute # use the ISP as our default route
-connect '/usr/sbin/chat -v -f /etc/ppp/chat-isp'
-
-If there are any other pppd options that should apply when calling
-this ISP, they can also be placed in this file.
-
-The /etc/ppp/chat-isp file named in the last line contains the script
-for chat(8) to use to dial the ISP and go through any username/
-password authentication required before PPP service starts. Here is
-an example (for dialling an Annex terminal server):
-
-ABORT "NO CARRIER"
-ABORT "NO DIALTONE"
-ABORT "ERROR"
-ABORT "NO ANSWER"
-ABORT "BUSY"
-ABORT "Username/Password Incorrect"
-"" "at"
-OK "at&d2&c1"
-OK "atdt2479381"
-"name:" "^Uusername"
-"word:" "\qpassword"
-"annex" "ppp"
-"Switching to PPP-ppp-Switching to PPP"
-
-See the chat(8) man page for details of the script. If you are not
-sure how the initial dialog with your ISP will go, you could use
-a terminal emulator such as kermit or minicom to go through the
-process manually.
-
-If your ISP requires PAP or CHAP authentication, you will have to
-create a line in /etc/ppp/pap-secrets or /etc/ppp/chap-secrets like
-this:
-
-myhostname * "password"
-
-(Replace myhostname with the hostname of your machine.)
-
-At this point, you can initiate the link with the command:
-
-/usr/sbin/pppd call isp
-
-(N.B.: pppd might be installed in a different directory on some
-systems).
-
-This will return to the shell prompt immediately, as pppd will detach
-itself from its controlling terminal. (If you don't want it to do
-this, use the "nodetach" option.)
-
-Pppd will log messages describing the progress of the connection and
-any errors using the syslog facility (see the syslogd(8) and
-syslog.conf(5) man pages). Pppd issues messages using syslog facility
-daemon (or local2 if it has been compiled with debugging enabled);
-chat uses facility local2. It is often useful to see messages of
-priority notice or higher on the console. To see these, find the line
-in /etc/syslog.conf which has /dev/console on the right-hand side, and
-add `daemon.notice' on the left. This line should end up something
-like this:
-
-*.err;kern.debug;daemon,local2,auth.notice;mail.crit /dev/console
-
-If you want to see more messages from pppd, request messages of
-priority info or higher for facility daemon, like this:
-
-*.err;kern.debug;daemon.info;local2,auth.notice;mail.crit /dev/console
-
-It is also useful to add a line like this:
-
-daemon,local2.debug /etc/ppp/ppp-log
-
-If you do this, you will need to create an empty /etc/ppp/ppp-log
-file.
-
-After modifying syslog.conf, you will then need to send a HUP signal
-to syslogd (or reboot).
-
-When you wish terminate the PPP link, you should send a TERM or INTR
-signal to pppd. Pppd writes its process ID to a file called
-ppp<n>.pid in /var/run (or /etc/ppp on older systems such as SunOS or
-Ultrix). Here <n> is the PPP interface unit number, which will be 0
-unless you have more than one PPP link running simultaneously. Thus
-you can terminate the link with a command like
-
- kill `cat /var/run/ppp0.pid`
diff --git a/mdk-stage1/ppp/chat/Makefile.linux b/mdk-stage1/ppp/chat/Makefile.linux
deleted file mode 100644
index 586cbd876..000000000
--- a/mdk-stage1/ppp/chat/Makefile.linux
+++ /dev/null
@@ -1,27 +0,0 @@
-# $Id$
-
-CDEF1= -DTERMIOS # Use the termios structure
-CDEF2= -DSIGTYPE=void # Standard definition
-CDEF3= -UNO_SLEEP # Use the usleep function
-CDEF4= -DFNDELAY=O_NDELAY # Old name value
-CDEFS= $(CDEF1) $(CDEF2) $(CDEF3) $(CDEF4)
-
-CFLAGS= $(RPM_OPT_FLAGS) $(CDEFS)
-
-INSTALL= install
-
-all: chat
-
-chat: chat.o
- $(CC) -o chat chat.o
-
-chat.o: chat.c
- $(CC) -c $(CFLAGS) -o chat.o chat.c
-
-install: chat
- mkdir -p $(BINDIR)
- $(INSTALL) -s -c chat $(BINDIR)
- $(INSTALL) -c -m 644 chat.8 $(MANDIR)/man8
-
-clean:
- rm -f chat.o chat *~
diff --git a/mdk-stage1/ppp/chat/Makefile.linux.makeopt b/mdk-stage1/ppp/chat/Makefile.linux.makeopt
deleted file mode 100644
index 974680a93..000000000
--- a/mdk-stage1/ppp/chat/Makefile.linux.makeopt
+++ /dev/null
@@ -1,27 +0,0 @@
-# $Id$
-
-CDEF1= -DTERMIOS # Use the termios structure
-CDEF2= -DSIGTYPE=void # Standard definition
-CDEF3= -UNO_SLEEP # Use the usleep function
-CDEF4= -DFNDELAY=O_NDELAY # Old name value
-CDEFS= $(CDEF1) $(CDEF2) $(CDEF3) $(CDEF4)
-
-CFLAGS= -O2 -g -pipe $(CDEFS)
-
-INSTALL= install
-
-all: chat
-
-chat: chat.o
- $(CC) -o chat chat.o
-
-chat.o: chat.c
- $(CC) -c $(CFLAGS) -o chat.o chat.c
-
-install: chat
- mkdir -p $(BINDIR)
- $(INSTALL) -s -c chat $(BINDIR)
- $(INSTALL) -c -m 644 chat.8 $(MANDIR)/man8
-
-clean:
- rm -f chat.o chat *~
diff --git a/mdk-stage1/ppp/chat/Makefile.sol2 b/mdk-stage1/ppp/chat/Makefile.sol2
deleted file mode 100644
index f566cc68b..000000000
--- a/mdk-stage1/ppp/chat/Makefile.sol2
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Makefile for chat on Solaris 2
-#
-
-include ../solaris/Makedefs
-
-CFLAGS = $(COPTS) -DNO_USLEEP -DSOL2
-
-all: chat
-
-chat: chat.o
- $(CC) -o chat chat.o
-
-install: chat
- $(INSTALL) -f $(BINDIR) chat
- $(INSTALL) -m 444 -f $(MANDIR)/man8 chat.8
-
-clean:
- rm -f *~ *.o chat
diff --git a/mdk-stage1/ppp/chat/Makefile.sunos4 b/mdk-stage1/ppp/chat/Makefile.sunos4
deleted file mode 100644
index b3507360e..000000000
--- a/mdk-stage1/ppp/chat/Makefile.sunos4
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Makefile for chat on suns
-#
-
-include ../sunos4/Makedefs
-
-CFLAGS = -DSUNOS $(COPTS)
-
-all: chat
-
-chat: chat.o
- $(CC) -o chat chat.o
-
-install: chat
- $(INSTALL) -c chat $(BINDIR)/chat
- $(INSTALL) -c -m 444 chat.8 $(MANDIR)/man8/chat.8
-
-clean:
- rm -f *~ *.o chat
diff --git a/mdk-stage1/ppp/chat/chat.8 b/mdk-stage1/ppp/chat/chat.8
deleted file mode 100644
index 8d2029609..000000000
--- a/mdk-stage1/ppp/chat/chat.8
+++ /dev/null
@@ -1,515 +0,0 @@
-.\" -*- nroff -*-
-.\" manual page [] for chat 1.8
-.\" $Id$
-.\" SH section heading
-.\" SS subsection heading
-.\" LP paragraph
-.\" IP indented paragraph
-.\" TP hanging label
-.TH CHAT 8 "22 May 1999" "Chat Version 1.22"
-.SH NAME
-chat \- Automated conversational script with a modem
-.SH SYNOPSIS
-.B chat
-[
-.I options
-]
-.I script
-.SH DESCRIPTION
-.LP
-The \fIchat\fR program defines a conversational exchange between the
-computer and the modem. Its primary purpose is to establish the
-connection between the Point-to-Point Protocol Daemon (\fIpppd\fR) and
-the remote's \fIpppd\fR process.
-.SH OPTIONS
-.TP
-.B -f \fI<chat file>
-Read the chat script from the chat \fIfile\fR. The use of this option
-is mutually exclusive with the chat script parameters. The user must
-have read access to the file. Multiple lines are permitted in the
-file. Space or horizontal tab characters should be used to separate
-the strings.
-.TP
-.B -t \fI<timeout>
-Set the timeout for the expected string to be received. If the string
-is not received within the time limit then the reply string is not
-sent. An alternate reply may be sent or the script will fail if there
-is no alternate reply string. A failed script will cause the
-\fIchat\fR program to terminate with a non-zero error code.
-.TP
-.B -r \fI<report file>
-Set the file for output of the report strings. If you use the keyword
-\fIREPORT\fR, the resulting strings are written to this file. If this
-option is not used and you still use \fIREPORT\fR keywords, the
-\fIstderr\fR file is used for the report strings.
-.TP
-.B -e
-Start with the echo option turned on. Echoing may also be turned on
-or off at specific points in the chat script by using the \fIECHO\fR
-keyword. When echoing is enabled, all output from the modem is echoed
-to \fIstderr\fR.
-.TP
-.B -E
-Enables environment variable substituion within chat scripts using the
-standard \fI$xxx\fR syntax.
-.TP
-.B -v
-Request that the \fIchat\fR script be executed in a verbose mode. The
-\fIchat\fR program will then log the execution state of the chat
-script as well as all text received from the modem and the output
-strings sent to the modem. The default is to log through the SYSLOG;
-the logging method may be altered with the -S and -s flags.
-.TP
-.B -V
-Request that the \fIchat\fR script be executed in a stderr verbose
-mode. The \fIchat\fR program will then log all text received from the
-modem and the output strings sent to the modem to the stderr device. This
-device is usually the local console at the station running the chat or
-pppd program.
-.TP
-.B -s
-Use stderr. All log messages from '-v' and all error messages will be
-sent to stderr.
-.TP
-.B -S
-Do not use the SYSLOG. By default, error messages are sent to the
-SYSLOG. The use of -S will prevent both log messages from '-v' and
-error messages from being sent to the SYSLOG.
-.TP
-.B -T \fI<phone number>
-Pass in an arbitary string, usually a phone number, that will be
-substituted for the \\T substitution metacharacter in a send string.
-.TP
-.B -U \fI<phone number 2>
-Pass in a second string, usually a phone number, that will be
-substituted for the \\U substitution metacharacter in a send string.
-This is useful when dialing an ISDN terminal adapter that requires two
-numbers.
-.TP
-.B script
-If the script is not specified in a file with the \fI-f\fR option then
-the script is included as parameters to the \fIchat\fR program.
-.SH CHAT SCRIPT
-.LP
-The \fIchat\fR script defines the communications.
-.LP
-A script consists of one or more "expect-send" pairs of strings,
-separated by spaces, with an optional "subexpect-subsend" string pair,
-separated by a dash as in the following example:
-.IP
-ogin:-BREAK-ogin: ppp ssword: hello2u2
-.LP
-This line indicates that the \fIchat\fR program should expect the string
-"ogin:". If it fails to receive a login prompt within the time interval
-allotted, it is to send a break sequence to the remote and then expect the
-string "ogin:". If the first "ogin:" is received then the break sequence is
-not generated.
-.LP
-Once it received the login prompt the \fIchat\fR program will send the
-string ppp and then expect the prompt "ssword:". When it receives the
-prompt for the password, it will send the password hello2u2.
-.LP
-A carriage return is normally sent following the reply string. It is not
-expected in the "expect" string unless it is specifically requested by using
-the \\r character sequence.
-.LP
-The expect sequence should contain only what is needed to identify the
-string. Since it is normally stored on a disk file, it should not contain
-variable information. It is generally not acceptable to look for time
-strings, network identification strings, or other variable pieces of data as
-an expect string.
-.LP
-To help correct for characters which may be corrupted during the initial
-sequence, look for the string "ogin:" rather than "login:". It is possible
-that the leading "l" character may be received in error and you may never
-find the string even though it was sent by the system. For this reason,
-scripts look for "ogin:" rather than "login:" and "ssword:" rather than
-"password:".
-.LP
-A very simple script might look like this:
-.IP
-ogin: ppp ssword: hello2u2
-.LP
-In other words, expect ....ogin:, send ppp, expect ...ssword:, send hello2u2.
-.LP
-In actual practice, simple scripts are rare. At the vary least, you
-should include sub-expect sequences should the original string not be
-received. For example, consider the following script:
-.IP
-ogin:--ogin: ppp ssword: hello2u2
-.LP
-This would be a better script than the simple one used earlier. This would look
-for the same login: prompt, however, if one was not received, a single
-return sequence is sent and then it will look for login: again. Should line
-noise obscure the first login prompt then sending the empty line will
-usually generate a login prompt again.
-.SH COMMENTS
-Comments can be embedded in the chat script. A comment is a line which
-starts with the \fB#\fR (hash) character in column 1. Such comment
-lines are just ignored by the chat program. If a '#' character is to
-be expected as the first character of the expect sequence, you should
-quote the expect string.
-If you want to wait for a prompt that starts with a # (hash)
-character, you would have to write something like this:
-.IP
-# Now wait for the prompt and send logout string
-.br
-\'# ' logout
-.LP
-
-.SH SENDING DATA FROM A FILE
-If the string to send starts with an at sign (@), the rest of the
-string is taken to be the name of a file to read to get the string to
-send. If the last character of the data read is a newline, it is
-removed. The file can be a named pipe (or fifo) instead of a regular
-file. This provides a way for \fBchat\fR to communicate with another
-program, for example, a program to prompt the user and receive a
-password typed in.
-.LP
-
-.SH ABORT STRINGS
-Many modems will report the status of the call as a string. These
-strings may be \fBCONNECTED\fR or \fBNO CARRIER\fR or \fBBUSY\fR. It
-is often desirable to terminate the script should the modem fail to
-connect to the remote. The difficulty is that a script would not know
-exactly which modem string it may receive. On one attempt, it may
-receive \fBBUSY\fR while the next time it may receive \fBNO CARRIER\fR.
-.LP
-These "abort" strings may be specified in the script using the \fIABORT\fR
-sequence. It is written in the script as in the following example:
-.IP
-ABORT BUSY ABORT 'NO CARRIER' '' ATZ OK ATDT5551212 CONNECT
-.LP
-This sequence will expect nothing; and then send the string ATZ. The
-expected response to this is the string \fIOK\fR. When it receives \fIOK\fR,
-the string ATDT5551212 to dial the telephone. The expected string is
-\fICONNECT\fR. If the string \fICONNECT\fR is received the remainder of the
-script is executed. However, should the modem find a busy telephone, it will
-send the string \fIBUSY\fR. This will cause the string to match the abort
-character sequence. The script will then fail because it found a match to
-the abort string. If it received the string \fINO CARRIER\fR, it will abort
-for the same reason. Either string may be received. Either string will
-terminate the \fIchat\fR script.
-.SH CLR_ABORT STRINGS
-This sequence allows for clearing previously set \fBABORT\fR strings.
-\fBABORT\fR strings are kept in an array of a pre-determined size (at
-compilation time); \fBCLR_ABORT\fR will reclaim the space for cleared
-entries so that new strings can use that space.
-.SH SAY STRINGS
-The \fBSAY\fR directive allows the script to send strings to the user
-at the terminal via standard error. If \fBchat\fR is being run by
-pppd, and pppd is running as a daemon (detached from its controlling
-terminal), standard error will normally be redirected to the file
-/etc/ppp/connect-errors.
-.LP
-\fBSAY\fR strings must be enclosed in single or double quotes. If
-carriage return and line feed are needed in the string to be output,
-you must explicitely add them to your string.
-.LP
-The SAY strings could be used to give progress messages in sections of
-the script where you want to have 'ECHO OFF' but still let the user
-know what is happening. An example is:
-.IP
-ABORT BUSY
-.br
-ECHO OFF
-.br
-SAY "Dialling your ISP...\\n"
-.br
-\'' ATDT5551212
-.br
-TIMEOUT 120
-.br
-SAY "Waiting up to 2 minutes for connection ... "
-.br
-CONNECT ''
-.br
-SAY "Connected, now logging in ...\n"
-.br
-ogin: account
-.br
-ssword: pass
-.br
-$ \c
-SAY "Logged in OK ...\n"
-\fIetc ...\fR
-.LP
-This sequence will only present the SAY strings to the user and all
-the details of the script will remain hidden. For example, if the
-above script works, the user will see:
-.IP
-Dialling your ISP...
-.br
-Waiting up to 2 minutes for connection ... Connected, now logging in ...
-.br
-Logged in OK ...
-.LP
-
-.SH REPORT STRINGS
-A \fBreport\fR string is similar to the ABORT string. The difference
-is that the strings, and all characters to the next control character
-such as a carriage return, are written to the report file.
-.LP
-The report strings may be used to isolate the transmission rate of the
-modem's connect string and return the value to the chat user. The
-analysis of the report string logic occurs in conjunction with the
-other string processing such as looking for the expect string. The use
-of the same string for a report and abort sequence is probably not
-very useful, however, it is possible.
-.LP
-The report strings to no change the completion code of the program.
-.LP
-These "report" strings may be specified in the script using the \fIREPORT\fR
-sequence. It is written in the script as in the following example:
-.IP
-REPORT CONNECT ABORT BUSY '' ATDT5551212 CONNECT '' ogin: account
-.LP
-This sequence will expect nothing; and then send the string
-ATDT5551212 to dial the telephone. The expected string is
-\fICONNECT\fR. If the string \fICONNECT\fR is received the remainder
-of the script is executed. In addition the program will write to the
-expect-file the string "CONNECT" plus any characters which follow it
-such as the connection rate.
-.SH CLR_REPORT STRINGS
-This sequence allows for clearing previously set \fBREPORT\fR strings.
-\fBREPORT\fR strings are kept in an array of a pre-determined size (at
-compilation time); \fBCLR_REPORT\fR will reclaim the space for cleared
-entries so that new strings can use that space.
-.SH ECHO
-The echo options controls whether the output from the modem is echoed
-to \fIstderr\fR. This option may be set with the \fI-e\fR option, but
-it can also be controlled by the \fIECHO\fR keyword. The "expect-send"
-pair \fIECHO\fR \fION\fR enables echoing, and \fIECHO\fR \fIOFF\fR
-disables it. With this keyword you can select which parts of the
-conversation should be visible. For instance, with the following
-script:
-.IP
-ABORT 'BUSY'
-.br
-ABORT 'NO CARRIER'
-.br
-'' ATZ
-.br
-OK\\r\\n ATD1234567
-.br
-\\r\\n \\c
-.br
-ECHO ON
-.br
-CONNECT \\c
-.br
-ogin: account
-.LP
-all output resulting from modem configuration and dialing is not visible,
-but starting with the \fICONNECT\fR (or \fIBUSY\fR) message, everything
-will be echoed.
-.SH HANGUP
-The HANGUP options control whether a modem hangup should be considered
-as an error or not. This option is useful in scripts for dialling
-systems which will hang up and call your system back. The HANGUP
-options can be \fBON\fR or \fBOFF\fR.
-.br
-When HANGUP is set OFF and the modem hangs up (e.g., after the first
-stage of logging in to a callback system), \fBchat\fR will continue
-running the script (e.g., waiting for the incoming call and second
-stage login prompt). As soon as the incoming call is connected, you
-should use the \fBHANGUP ON\fR directive to reinstall normal hang up
-signal behavior. Here is an (simple) example script:
-.IP
-ABORT 'BUSY'
-.br
-'' ATZ
-.br
-OK\\r\\n ATD1234567
-.br
-\\r\\n \\c
-.br
-CONNECT \\c
-.br
-\'Callback login:' call_back_ID
-.br
-HANGUP OFF
-.br
-ABORT "Bad Login"
-.br
-\'Callback Password:' Call_back_password
-.br
-TIMEOUT 120
-.br
-CONNECT \\c
-.br
-HANGUP ON
-.br
-ABORT "NO CARRIER"
-.br
-ogin:--BREAK--ogin: real_account
-.br
-\fIetc ...\fR
-.LP
-.SH TIMEOUT
-The initial timeout value is 45 seconds. This may be changed using the \fB-t\fR
-parameter.
-.LP
-To change the timeout value for the next expect string, the following
-example may be used:
-.IP
-ATZ OK ATDT5551212 CONNECT TIMEOUT 10 ogin:--ogin: TIMEOUT 5 assword: hello2u2
-.LP
-This will change the timeout to 10 seconds when it expects the login:
-prompt. The timeout is then changed to 5 seconds when it looks for the
-password prompt.
-.LP
-The timeout, once changed, remains in effect until it is changed again.
-.SH SENDING EOT
-The special reply string of \fIEOT\fR indicates that the chat program
-should send an EOT character to the remote. This is normally the
-End-of-file character sequence. A return character is not sent
-following the EOT.
-.PR
-The EOT sequence may be embedded into the send string using the
-sequence \fI^D\fR.
-.SH GENERATING BREAK
-The special reply string of \fIBREAK\fR will cause a break condition
-to be sent. The break is a special signal on the transmitter. The
-normal processing on the receiver is to change the transmission rate.
-It may be used to cycle through the available transmission rates on
-the remote until you are able to receive a valid login prompt.
-.PR
-The break sequence may be embedded into the send string using the
-\fI\\K\fR sequence.
-.SH ESCAPE SEQUENCES
-The expect and reply strings may contain escape sequences. All of the
-sequences are legal in the reply string. Many are legal in the expect.
-Those which are not valid in the expect sequence are so indicated.
-.TP
-.B ''
-Expects or sends a null string. If you send a null string then it will still
-send the return character. This sequence may either be a pair of apostrophe
-or quote characters.
-.TP
-.B \\\\b
-represents a backspace character.
-.TP
-.B \\\\c
-Suppresses the newline at the end of the reply string. This is the only
-method to send a string without a trailing return character. It must
-be at the end of the send string. For example,
-the sequence hello\\c will simply send the characters h, e, l, l, o.
-.I (not valid in expect.)
-.TP
-.B \\\\d
-Delay for one second. The program uses sleep(1) which will delay to a
-maximum of one second.
-.I (not valid in expect.)
-.TP
-.B \\\\K
-Insert a BREAK
-.I (not valid in expect.)
-.TP
-.B \\\\n
-Send a newline or linefeed character.
-.TP
-.B \\\\N
-Send a null character. The same sequence may be represented by \\0.
-.I (not valid in expect.)
-.TP
-.B \\\\p
-Pause for a fraction of a second. The delay is 1/10th of a second.
-.I (not valid in expect.)
-.TP
-.B \\\\q
-Suppress writing the string to the SYSLOG file. The string ?????? is
-written to the log in its place.
-.I (not valid in expect.)
-.TP
-.B \\\\r
-Send or expect a carriage return.
-.TP
-.B \\\\s
-Represents a space character in the string. This may be used when it
-is not desirable to quote the strings which contains spaces. The
-sequence 'HI TIM' and HI\\sTIM are the same.
-.TP
-.B \\\\t
-Send or expect a tab character.
-.TP
-.B \\\\T
-Send the phone number string as specified with the \fI-T\fR option
-.I (not valid in expect.)
-.TP
-.B \\\\U
-Send the phone number 2 string as specified with the \fI-U\fR option
-.I (not valid in expect.)
-.TP
-.B \\\\\\\\
-Send or expect a backslash character.
-.TP
-.B \\\\ddd
-Collapse the octal digits (ddd) into a single ASCII character and send that
-character.
-.I (some characters are not valid in expect.)
-.TP
-.B \^^C
-Substitute the sequence with the control character represented by C.
-For example, the character DC1 (17) is shown as \^^Q.
-.I (some characters are not valid in expect.)
-.SH ENVIRONMENT VARIABLES
-Environment variables are available within chat scripts, if the \fI-E\fR
-option was specified in the command line. The metacharacter \fI$\fR is used
-to introduce the name of the environment variable to substitute. If the
-substition fails, because the requested environment variable is not set,
-\fInothing\fR is replaced for the variable.
-.SH TERMINATION CODES
-The \fIchat\fR program will terminate with the following completion
-codes.
-.TP
-.B 0
-The normal termination of the program. This indicates that the script
-was executed without error to the normal conclusion.
-.TP
-.B 1
-One or more of the parameters are invalid or an expect string was too
-large for the internal buffers. This indicates that the program as not
-properly executed.
-.TP
-.B 2
-An error occurred during the execution of the program. This may be due
-to a read or write operation failing for some reason or chat receiving
-a signal such as SIGINT.
-.TP
-.B 3
-A timeout event occurred when there was an \fIexpect\fR string without
-having a "-subsend" string. This may mean that you did not program the
-script correctly for the condition or that some unexpected event has
-occurred and the expected string could not be found.
-.TP
-.B 4
-The first string marked as an \fIABORT\fR condition occurred.
-.TP
-.B 5
-The second string marked as an \fIABORT\fR condition occurred.
-.TP
-.B 6
-The third string marked as an \fIABORT\fR condition occurred.
-.TP
-.B 7
-The fourth string marked as an \fIABORT\fR condition occurred.
-.TP
-.B ...
-The other termination codes are also strings marked as an \fIABORT\fR
-condition.
-.LP
-Using the termination code, it is possible to determine which event
-terminated the script. It is possible to decide if the string "BUSY"
-was received from the modem as opposed to "NO DIAL TONE". While the
-first event may be retried, the second will probably have little
-chance of succeeding during a retry.
-.SH SEE ALSO
-Additional information about \fIchat\fR scripts may be found with UUCP
-documentation. The \fIchat\fR script was taken from the ideas proposed
-by the scripts used by the \fIuucico\fR program.
-.LP
-uucico(1), uucp(1)
-.SH COPYRIGHT
-The \fIchat\fR program is in public domain. This is not the GNU public
-license. If it breaks then you get to keep both pieces.
diff --git a/mdk-stage1/ppp/chat/chat.c b/mdk-stage1/ppp/chat/chat.c
deleted file mode 100644
index 1b22907a8..000000000
--- a/mdk-stage1/ppp/chat/chat.c
+++ /dev/null
@@ -1,1756 +0,0 @@
-/*
- * Chat -- a program for automatic session establishment (i.e. dial
- * the phone and log in).
- *
- * Standard termination codes:
- * 0 - successful completion of the script
- * 1 - invalid argument, expect string too large, etc.
- * 2 - error on an I/O operation or fatal error condition.
- * 3 - timeout waiting for a simple string.
- * 4 - the first string declared as "ABORT"
- * 5 - the second string declared as "ABORT"
- * 6 - ... and so on for successive ABORT strings.
- *
- * This software is in the public domain.
- *
- * -----------------
- * 22-May-99 added environment substitutuion, enabled with -E switch.
- * Andreas Arens <andras@cityweb.de>.
- *
- * 12-May-99 added a feature to read data to be sent from a file,
- * if the send string starts with @. Idea from gpk <gpk@onramp.net>.
- *
- * added -T and -U option and \T and \U substitution to pass a phone
- * number into chat script. Two are needed for some ISDN TA applications.
- * Keith Dart <kdart@cisco.com>
- *
- *
- * Added SAY keyword to send output to stderr.
- * This allows to turn ECHO OFF and to output specific, user selected,
- * text to give progress messages. This best works when stderr
- * exists (i.e.: pppd in nodetach mode).
- *
- * Added HANGUP directives to allow for us to be called
- * back. When HANGUP is set to NO, chat will not hangup at HUP signal.
- * We rely on timeouts in that case.
- *
- * Added CLR_ABORT to clear previously set ABORT string. This has been
- * dictated by the HANGUP above as "NO CARRIER" (for example) must be
- * an ABORT condition until we know the other host is going to close
- * the connection for call back. As soon as we have completed the
- * first stage of the call back sequence, "NO CARRIER" is a valid, non
- * fatal string. As soon as we got called back (probably get "CONNECT"),
- * we should re-arm the ABORT "NO CARRIER". Hence the CLR_ABORT command.
- * Note that CLR_ABORT packs the abort_strings[] array so that we do not
- * have unused entries not being reclaimed.
- *
- * In the same vein as above, added CLR_REPORT keyword.
- *
- * Allow for comments. Line starting with '#' are comments and are
- * ignored. If a '#' is to be expected as the first character, the
- * expect string must be quoted.
- *
- *
- * Francis Demierre <Francis@SwissMail.Com>
- * Thu May 15 17:15:40 MET DST 1997
- *
- *
- * Added -r "report file" switch & REPORT keyword.
- * Robert Geer <bgeer@xmission.com>
- *
- * Added -s "use stderr" and -S "don't use syslog" switches.
- * June 18, 1997
- * Karl O. Pinc <kop@meme.com>
- *
- *
- * Added -e "echo" switch & ECHO keyword
- * Dick Streefland <dicks@tasking.nl>
- *
- *
- * Considerable updates and modifications by
- * Al Longyear <longyear@pobox.com>
- * Paul Mackerras <paulus@cs.anu.edu.au>
- *
- *
- * The original author is:
- *
- * Karl Fox <karl@MorningStar.Com>
- * Morning Star Technologies, Inc.
- * 1760 Zollinger Road
- * Columbus, OH 43221
- * (614)451-1883
- *
- */
-
-#ifndef __STDC__
-#define const
-#endif
-
-#ifndef lint
-static const char rcsid[] = "$Id$";
-#endif
-
-#include <stdio.h>
-#include <ctype.h>
-#include <time.h>
-#include <fcntl.h>
-#include <signal.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <syslog.h>
-
-#ifndef TERMIO
-#undef TERMIOS
-#define TERMIOS
-#endif
-
-#ifdef TERMIO
-#include <termio.h>
-#endif
-#ifdef TERMIOS
-#include <termios.h>
-#endif
-
-#define STR_LEN 1024
-
-#ifndef SIGTYPE
-#define SIGTYPE void
-#endif
-
-#undef __P
-#undef __V
-
-#ifdef __STDC__
-#include <stdarg.h>
-#define __V(x) x
-#define __P(x) x
-#else
-#include <varargs.h>
-#define __V(x) (va_alist) va_dcl
-#define __P(x) ()
-#define const
-#endif
-
-#ifndef O_NONBLOCK
-#define O_NONBLOCK O_NDELAY
-#endif
-
-#ifdef SUNOS
-extern int sys_nerr;
-extern char *sys_errlist[];
-#define memmove(to, from, n) bcopy(from, to, n)
-#define strerror(n) ((unsigned)(n) < sys_nerr? sys_errlist[(n)] :\
- "unknown error")
-#endif
-
-/*************** Micro getopt() *********************************************/
-#define OPTION(c,v) (_O&2&&**v?*(*v)++:!c||_O&4?0:(!(_O&1)&& \
- (--c,++v),_O=4,c&&**v=='-'&&v[0][1]?*++*v=='-'\
- &&!v[0][1]?(--c,++v,0):(_O=2,*(*v)++):0))
-#define OPTARG(c,v) (_O&2?**v||(++v,--c)?(_O=1,--c,*v++): \
- (_O=4,(char*)0):(char*)0)
-#define OPTONLYARG(c,v) (_O&2&&**v?(_O=1,--c,*v++):(char*)0)
-#define ARG(c,v) (c?(--c,*v++):(char*)0)
-
-static int _O = 0; /* Internal state */
-/*************** Micro getopt() *********************************************/
-
-char *program_name;
-
-#define MAX_ABORTS 50
-#define MAX_REPORTS 50
-#define DEFAULT_CHAT_TIMEOUT 45
-
-int echo = 0;
-int verbose = 0;
-int to_log = 1;
-int to_stderr = 0;
-int Verbose = 0;
-int quiet = 0;
-int report = 0;
-int use_env = 0;
-int exit_code = 0;
-FILE* report_fp = (FILE *) 0;
-char *report_file = (char *) 0;
-char *chat_file = (char *) 0;
-char *phone_num = (char *) 0;
-char *phone_num2 = (char *) 0;
-int timeout = DEFAULT_CHAT_TIMEOUT;
-
-int have_tty_parameters = 0;
-
-#ifdef TERMIO
-#define term_parms struct termio
-#define get_term_param(param) ioctl(0, TCGETA, param)
-#define set_term_param(param) ioctl(0, TCSETA, param)
-struct termio saved_tty_parameters;
-#endif
-
-#ifdef TERMIOS
-#define term_parms struct termios
-#define get_term_param(param) tcgetattr(0, param)
-#define set_term_param(param) tcsetattr(0, TCSANOW, param)
-struct termios saved_tty_parameters;
-#endif
-
-char *abort_string[MAX_ABORTS], *fail_reason = (char *)0,
- fail_buffer[50];
-int n_aborts = 0, abort_next = 0, timeout_next = 0, echo_next = 0;
-int clear_abort_next = 0;
-
-char *report_string[MAX_REPORTS] ;
-char report_buffer[50] ;
-int n_reports = 0, report_next = 0, report_gathering = 0 ;
-int clear_report_next = 0;
-
-int say_next = 0, hup_next = 0;
-
-void *dup_mem __P((void *b, size_t c));
-void *copy_of __P((char *s));
-void usage __P((void));
-void logf __P((const char *fmt, ...));
-void fatal __P((int code, const char *fmt, ...));
-SIGTYPE sigalrm __P((int signo));
-SIGTYPE sigint __P((int signo));
-SIGTYPE sigterm __P((int signo));
-SIGTYPE sighup __P((int signo));
-void unalarm __P((void));
-void init __P((void));
-void set_tty_parameters __P((void));
-void echo_stderr __P((int));
-void break_sequence __P((void));
-void terminate __P((int status));
-void do_file __P((char *chat_file));
-int get_string __P((register char *string));
-int put_string __P((register char *s));
-int write_char __P((int c));
-int put_char __P((int c));
-int get_char __P((void));
-void chat_send __P((register char *s));
-char *character __P((int c));
-void chat_expect __P((register char *s));
-char *clean __P((register char *s, int sending));
-void break_sequence __P((void));
-void terminate __P((int status));
-void pack_array __P((char **array, int end));
-char *expect_strtok __P((char *, char *));
-int vfmtmsg __P((char *, int, const char *, va_list)); /* vsprintf++ */
-
-int main __P((int, char *[]));
-
-void *dup_mem(b, c)
-void *b;
-size_t c;
-{
- void *ans = malloc (c);
- if (!ans)
- fatal(2, "memory error!");
-
- memcpy (ans, b, c);
- return ans;
-}
-
-void *copy_of (s)
-char *s;
-{
- return dup_mem (s, strlen (s) + 1);
-}
-
-/*
- * chat [ -v ] [ -E ] [ -T number ] [ -U number ] [ -t timeout ] [ -f chat-file ] \
- * [ -r report-file ] \
- * [...[[expect[-say[-expect...]] say expect[-say[-expect]] ...]]]
- *
- * Perform a UUCP-dialer-like chat script on stdin and stdout.
- */
-int
-main(argc, argv)
- int argc;
- char **argv;
-{
- int option;
- char *arg;
-
- program_name = *argv;
- tzset();
-
- while ((option = OPTION(argc, argv)) != 0) {
- switch (option) {
- case 'e':
- ++echo;
- break;
-
- case 'E':
- ++use_env;
- break;
-
- case 'v':
- ++verbose;
- break;
-
- case 'V':
- ++Verbose;
- break;
-
- case 's':
- ++to_stderr;
- break;
-
- case 'S':
- to_log = 0;
- break;
-
- case 'f':
- if ((arg = OPTARG(argc, argv)) != NULL)
- chat_file = copy_of(arg);
- else
- usage();
- break;
-
- case 't':
- if ((arg = OPTARG(argc, argv)) != NULL)
- timeout = atoi(arg);
- else
- usage();
- break;
-
- case 'r':
- arg = OPTARG (argc, argv);
- if (arg) {
- if (report_fp != NULL)
- fclose (report_fp);
- report_file = copy_of (arg);
- report_fp = fopen (report_file, "a");
- if (report_fp != NULL) {
- if (verbose)
- fprintf (report_fp, "Opening \"%s\"...\n",
- report_file);
- report = 1;
- }
- }
- break;
-
- case 'T':
- if ((arg = OPTARG(argc, argv)) != NULL)
- phone_num = copy_of(arg);
- else
- usage();
- break;
-
- case 'U':
- if ((arg = OPTARG(argc, argv)) != NULL)
- phone_num2 = copy_of(arg);
- else
- usage();
- break;
-
- default:
- usage();
- break;
- }
- }
-/*
- * Default the report file to the stderr location
- */
- if (report_fp == NULL)
- report_fp = stderr;
-
- if (to_log) {
-#ifdef ultrix
- openlog("chat", LOG_PID);
-#else
- openlog("chat", LOG_PID | LOG_NDELAY, LOG_LOCAL2);
-
- if (verbose)
- setlogmask(LOG_UPTO(LOG_INFO));
- else
- setlogmask(LOG_UPTO(LOG_WARNING));
-#endif
- }
-
- init();
-
- if (chat_file != NULL) {
- arg = ARG(argc, argv);
- if (arg != NULL)
- usage();
- else
- do_file (chat_file);
- } else {
- while ((arg = ARG(argc, argv)) != NULL) {
- chat_expect(arg);
-
- if ((arg = ARG(argc, argv)) != NULL)
- chat_send(arg);
- }
- }
-
- terminate(0);
- return 0;
-}
-
-/*
- * Process a chat script when read from a file.
- */
-
-void do_file (chat_file)
-char *chat_file;
-{
- int linect, sendflg;
- char *sp, *arg, quote;
- char buf [STR_LEN];
- FILE *cfp;
-
- cfp = fopen (chat_file, "r");
- if (cfp == NULL)
- fatal(1, "%s -- open failed: %m", chat_file);
-
- linect = 0;
- sendflg = 0;
-
- while (fgets(buf, STR_LEN, cfp) != NULL) {
- sp = strchr (buf, '\n');
- if (sp)
- *sp = '\0';
-
- linect++;
- sp = buf;
-
- /* lines starting with '#' are comments. If a real '#'
- is to be expected, it should be quoted .... */
- if ( *sp == '#' )
- continue;
-
- while (*sp != '\0') {
- if (*sp == ' ' || *sp == '\t') {
- ++sp;
- continue;
- }
-
- if (*sp == '"' || *sp == '\'') {
- quote = *sp++;
- arg = sp;
- while (*sp != quote) {
- if (*sp == '\0')
- fatal(1, "unterminated quote (line %d)", linect);
-
- if (*sp++ == '\\') {
- if (*sp != '\0')
- ++sp;
- }
- }
- }
- else {
- arg = sp;
- while (*sp != '\0' && *sp != ' ' && *sp != '\t')
- ++sp;
- }
-
- if (*sp != '\0')
- *sp++ = '\0';
-
- if (sendflg)
- chat_send (arg);
- else
- chat_expect (arg);
- sendflg = !sendflg;
- }
- }
- fclose (cfp);
-}
-
-/*
- * We got an error parsing the command line.
- */
-void usage()
-{
- fprintf(stderr, "\
-Usage: %s [-e] [-E] [-v] [-V] [-t timeout] [-r report-file]\n\
- [-T phone-number] [-U phone-number2] {-f chat-file | chat-script}\n", program_name);
- exit(1);
-}
-
-char line[1024];
-
-/*
- * Send a message to syslog and/or stderr.
- */
-void logf __V((const char *fmt, ...))
-{
- va_list args;
-
-#ifdef __STDC__
- va_start(args, fmt);
-#else
- char *fmt;
- va_start(args);
- fmt = va_arg(args, char *);
-#endif
-
- vfmtmsg(line, sizeof(line), fmt, args);
- if (to_log)
- syslog(LOG_INFO, "%s", line);
- if (to_stderr)
- fprintf(stderr, "%s\n", line);
-}
-
-/*
- * Print an error message and terminate.
- */
-
-void fatal __V((int code, const char *fmt, ...))
-{
- va_list args;
-
-#ifdef __STDC__
- va_start(args, fmt);
-#else
- int code;
- char *fmt;
- va_start(args);
- code = va_arg(args, int);
- fmt = va_arg(args, char *);
-#endif
-
- vfmtmsg(line, sizeof(line), fmt, args);
- if (to_log)
- syslog(LOG_ERR, "%s", line);
- if (to_stderr)
- fprintf(stderr, "%s\n", line);
- terminate(code);
-}
-
-int alarmed = 0;
-
-SIGTYPE sigalrm(signo)
-int signo;
-{
- int flags;
-
- alarm(1);
- alarmed = 1; /* Reset alarm to avoid race window */
- signal(SIGALRM, sigalrm); /* that can cause hanging in read() */
-
- if ((flags = fcntl(0, F_GETFL, 0)) == -1)
- fatal(2, "Can't get file mode flags on stdin: %m");
-
- if (fcntl(0, F_SETFL, flags | O_NONBLOCK) == -1)
- fatal(2, "Can't set file mode flags on stdin: %m");
-
- if (verbose)
- logf("alarm");
-}
-
-void unalarm()
-{
- int flags;
-
- if ((flags = fcntl(0, F_GETFL, 0)) == -1)
- fatal(2, "Can't get file mode flags on stdin: %m");
-
- if (fcntl(0, F_SETFL, flags & ~O_NONBLOCK) == -1)
- fatal(2, "Can't set file mode flags on stdin: %m");
-}
-
-SIGTYPE sigint(signo)
-int signo;
-{
- fatal(2, "SIGINT");
-}
-
-SIGTYPE sigterm(signo)
-int signo;
-{
- fatal(2, "SIGTERM");
-}
-
-SIGTYPE sighup(signo)
-int signo;
-{
- fatal(2, "SIGHUP");
-}
-
-void init()
-{
- signal(SIGINT, sigint);
- signal(SIGTERM, sigterm);
- signal(SIGHUP, sighup);
-
- set_tty_parameters();
- signal(SIGALRM, sigalrm);
- alarm(0);
- alarmed = 0;
-}
-
-void set_tty_parameters()
-{
-#if defined(get_term_param)
- term_parms t;
-
- if (get_term_param (&t) < 0)
- fatal(2, "Can't get terminal parameters: %m");
-
- saved_tty_parameters = t;
- have_tty_parameters = 1;
-
- t.c_iflag |= IGNBRK | ISTRIP | IGNPAR;
- t.c_oflag = 0;
- t.c_lflag = 0;
- t.c_cc[VERASE] =
- t.c_cc[VKILL] = 0;
- t.c_cc[VMIN] = 1;
- t.c_cc[VTIME] = 0;
-
- if (set_term_param (&t) < 0)
- fatal(2, "Can't set terminal parameters: %m");
-#endif
-}
-
-void break_sequence()
-{
-#ifdef TERMIOS
- tcsendbreak (0, 0);
-#endif
-}
-
-void terminate(status)
-int status;
-{
- static int terminating = 0;
-
- if (terminating)
- exit(status);
- terminating = 1;
- echo_stderr(-1);
-/*
- * Allow the last of the report string to be gathered before we terminate.
- */
- if (report_gathering) {
- int c, rep_len;
-
- rep_len = strlen(report_buffer);
- while (rep_len + 1 <= sizeof(report_buffer)) {
- alarm(1);
- c = get_char();
- alarm(0);
- if (c < 0 || iscntrl(c))
- break;
- report_buffer[rep_len] = c;
- ++rep_len;
- }
- report_buffer[rep_len] = 0;
- fprintf (report_fp, "chat: %s\n", report_buffer);
- }
- if (report_file != (char *) 0 && report_fp != (FILE *) NULL) {
- if (verbose)
- fprintf (report_fp, "Closing \"%s\".\n", report_file);
- fclose (report_fp);
- report_fp = (FILE *) NULL;
- }
-
-#if defined(get_term_param)
- if (have_tty_parameters) {
- if (set_term_param (&saved_tty_parameters) < 0)
- fatal(2, "Can't restore terminal parameters: %m");
- }
-#endif
-
- exit(status);
-}
-
-/*
- * 'Clean up' this string.
- */
-char *clean(s, sending)
-register char *s;
-int sending; /* set to 1 when sending (putting) this string. */
-{
- char temp[STR_LEN], env_str[STR_LEN], cur_chr;
- register char *s1, *phchar;
- int add_return = sending;
-#define isoctal(chr) (((chr) >= '0') && ((chr) <= '7'))
-#define isalnumx(chr) ((((chr) >= '0') && ((chr) <= '9')) \
- || (((chr) >= 'a') && ((chr) <= 'z')) \
- || (((chr) >= 'A') && ((chr) <= 'Z')) \
- || (chr) == '_')
-
- s1 = temp;
- while (*s) {
- cur_chr = *s++;
- if (cur_chr == '^') {
- cur_chr = *s++;
- if (cur_chr == '\0') {
- *s1++ = '^';
- break;
- }
- cur_chr &= 0x1F;
- if (cur_chr != 0) {
- *s1++ = cur_chr;
- }
- continue;
- }
-
- if (use_env && cur_chr == '$') { /* ARI */
- phchar = env_str;
- while (isalnumx(*s))
- *phchar++ = *s++;
- *phchar = '\0';
- phchar = getenv(env_str);
- if (phchar)
- while (*phchar)
- *s1++ = *phchar++;
- continue;
- }
-
- if (cur_chr != '\\') {
- *s1++ = cur_chr;
- continue;
- }
-
- cur_chr = *s++;
- if (cur_chr == '\0') {
- if (sending) {
- *s1++ = '\\';
- *s1++ = '\\';
- }
- break;
- }
-
- switch (cur_chr) {
- case 'b':
- *s1++ = '\b';
- break;
-
- case 'c':
- if (sending && *s == '\0')
- add_return = 0;
- else
- *s1++ = cur_chr;
- break;
-
- case '\\':
- case 'K':
- case 'p':
- case 'd':
- if (sending)
- *s1++ = '\\';
- *s1++ = cur_chr;
- break;
-
- case 'T':
- if (sending && phone_num) {
- for (phchar = phone_num; *phchar != '\0'; phchar++)
- *s1++ = *phchar;
- }
- else {
- *s1++ = '\\';
- *s1++ = 'T';
- }
- break;
-
- case 'U':
- if (sending && phone_num2) {
- for (phchar = phone_num2; *phchar != '\0'; phchar++)
- *s1++ = *phchar;
- }
- else {
- *s1++ = '\\';
- *s1++ = 'U';
- }
- break;
-
- case 'q':
- quiet = 1;
- break;
-
- case 'r':
- *s1++ = '\r';
- break;
-
- case 'n':
- *s1++ = '\n';
- break;
-
- case 's':
- *s1++ = ' ';
- break;
-
- case 't':
- *s1++ = '\t';
- break;
-
- case 'N':
- if (sending) {
- *s1++ = '\\';
- *s1++ = '\0';
- }
- else
- *s1++ = 'N';
- break;
-
- case '$': /* ARI */
- if (use_env) {
- *s1++ = cur_chr;
- break;
- }
- /* FALL THROUGH */
-
- default:
- if (isoctal (cur_chr)) {
- cur_chr &= 0x07;
- if (isoctal (*s)) {
- cur_chr <<= 3;
- cur_chr |= *s++ - '0';
- if (isoctal (*s)) {
- cur_chr <<= 3;
- cur_chr |= *s++ - '0';
- }
- }
-
- if (cur_chr != 0 || sending) {
- if (sending && (cur_chr == '\\' || cur_chr == 0))
- *s1++ = '\\';
- *s1++ = cur_chr;
- }
- break;
- }
-
- if (sending)
- *s1++ = '\\';
- *s1++ = cur_chr;
- break;
- }
- }
-
- if (add_return)
- *s1++ = '\r';
-
- *s1++ = '\0'; /* guarantee closure */
- *s1++ = '\0'; /* terminate the string */
- return dup_mem (temp, (size_t) (s1 - temp)); /* may have embedded nuls */
-}
-
-/*
- * A modified version of 'strtok'. This version skips \ sequences.
- */
-
-char *expect_strtok (s, term)
- char *s, *term;
-{
- static char *str = "";
- int escape_flag = 0;
- char *result;
-
-/*
- * If a string was specified then do initial processing.
- */
- if (s)
- str = s;
-
-/*
- * If this is the escape flag then reset it and ignore the character.
- */
- if (*str)
- result = str;
- else
- result = (char *) 0;
-
- while (*str) {
- if (escape_flag) {
- escape_flag = 0;
- ++str;
- continue;
- }
-
- if (*str == '\\') {
- ++str;
- escape_flag = 1;
- continue;
- }
-
-/*
- * If this is not in the termination string, continue.
- */
- if (strchr (term, *str) == (char *) 0) {
- ++str;
- continue;
- }
-
-/*
- * This is the terminator. Mark the end of the string and stop.
- */
- *str++ = '\0';
- break;
- }
- return (result);
-}
-
-/*
- * Process the expect string
- */
-
-void chat_expect (s)
-char *s;
-{
- char *expect;
- char *reply;
-
- if (strcmp(s, "HANGUP") == 0) {
- ++hup_next;
- return;
- }
-
- if (strcmp(s, "ABORT") == 0) {
- ++abort_next;
- return;
- }
-
- if (strcmp(s, "CLR_ABORT") == 0) {
- ++clear_abort_next;
- return;
- }
-
- if (strcmp(s, "REPORT") == 0) {
- ++report_next;
- return;
- }
-
- if (strcmp(s, "CLR_REPORT") == 0) {
- ++clear_report_next;
- return;
- }
-
- if (strcmp(s, "TIMEOUT") == 0) {
- ++timeout_next;
- return;
- }
-
- if (strcmp(s, "ECHO") == 0) {
- ++echo_next;
- return;
- }
-
- if (strcmp(s, "SAY") == 0) {
- ++say_next;
- return;
- }
-
-/*
- * Fetch the expect and reply string.
- */
- for (;;) {
- expect = expect_strtok (s, "-");
- s = (char *) 0;
-
- if (expect == (char *) 0)
- return;
-
- reply = expect_strtok (s, "-");
-
-/*
- * Handle the expect string. If successful then exit.
- */
- if (get_string (expect))
- return;
-
-/*
- * If there is a sub-reply string then send it. Otherwise any condition
- * is terminal.
- */
- if (reply == (char *) 0 || exit_code != 3)
- break;
-
- chat_send (reply);
- }
-
-/*
- * The expectation did not occur. This is terminal.
- */
- if (fail_reason)
- logf("Failed (%s)", fail_reason);
- else
- logf("Failed");
- terminate(exit_code);
-}
-
-/*
- * Translate the input character to the appropriate string for printing
- * the data.
- */
-
-char *character(c)
-int c;
-{
- static char string[10];
- char *meta;
-
- meta = (c & 0x80) ? "M-" : "";
- c &= 0x7F;
-
- if (c < 32)
- sprintf(string, "%s^%c", meta, (int)c + '@');
- else if (c == 127)
- sprintf(string, "%s^?", meta);
- else
- sprintf(string, "%s%c", meta, c);
-
- return (string);
-}
-
-/*
- * process the reply string
- */
-void chat_send (s)
-register char *s;
-{
- char file_data[STR_LEN];
-
- if (say_next) {
- say_next = 0;
- s = clean(s, 1);
- write(2, s, strlen(s));
- free(s);
- return;
- }
-
- if (hup_next) {
- hup_next = 0;
- if (strcmp(s, "OFF") == 0)
- signal(SIGHUP, SIG_IGN);
- else
- signal(SIGHUP, sighup);
- return;
- }
-
- if (echo_next) {
- echo_next = 0;
- echo = (strcmp(s, "ON") == 0);
- return;
- }
-
- if (abort_next) {
- char *s1;
-
- abort_next = 0;
-
- if (n_aborts >= MAX_ABORTS)
- fatal(2, "Too many ABORT strings");
-
- s1 = clean(s, 0);
-
- if (strlen(s1) > strlen(s)
- || strlen(s1) + 1 > sizeof(fail_buffer))
- fatal(1, "Illegal or too-long ABORT string ('%v')", s);
-
- abort_string[n_aborts++] = s1;
-
- if (verbose)
- logf("abort on (%v)", s);
- return;
- }
-
- if (clear_abort_next) {
- char *s1;
- int i;
- int old_max;
- int pack = 0;
-
- clear_abort_next = 0;
-
- s1 = clean(s, 0);
-
- if (strlen(s1) > strlen(s)
- || strlen(s1) + 1 > sizeof(fail_buffer))
- fatal(1, "Illegal or too-long CLR_ABORT string ('%v')", s);
-
- old_max = n_aborts;
- for (i=0; i < n_aborts; i++) {
- if ( strcmp(s1,abort_string[i]) == 0 ) {
- free(abort_string[i]);
- abort_string[i] = NULL;
- pack++;
- n_aborts--;
- if (verbose)
- logf("clear abort on (%v)", s);
- }
- }
- free(s1);
- if (pack)
- pack_array(abort_string,old_max);
- return;
- }
-
- if (report_next) {
- char *s1;
-
- report_next = 0;
- if (n_reports >= MAX_REPORTS)
- fatal(2, "Too many REPORT strings");
-
- s1 = clean(s, 0);
-
- if (strlen(s1) > strlen(s) || strlen(s1) > sizeof fail_buffer - 1)
- fatal(1, "Illegal or too-long REPORT string ('%v')", s);
-
- report_string[n_reports++] = s1;
-
- if (verbose)
- logf("report (%v)", s);
- return;
- }
-
- if (clear_report_next) {
- char *s1;
- int i;
- int old_max;
- int pack = 0;
-
- clear_report_next = 0;
-
- s1 = clean(s, 0);
-
- if (strlen(s1) > strlen(s) || strlen(s1) > sizeof fail_buffer - 1)
- fatal(1, "Illegal or too-long REPORT string ('%v')", s);
-
- old_max = n_reports;
- for (i=0; i < n_reports; i++) {
- if ( strcmp(s1,report_string[i]) == 0 ) {
- free(report_string[i]);
- report_string[i] = NULL;
- pack++;
- n_reports--;
- if (verbose)
- logf("clear report (%v)", s);
- }
- }
- free(s1);
- if (pack)
- pack_array(report_string,old_max);
-
- return;
- }
-
- if (timeout_next) {
- timeout_next = 0;
- timeout = atoi(s);
-
- if (timeout <= 0)
- timeout = DEFAULT_CHAT_TIMEOUT;
-
- if (verbose)
- logf("timeout set to %d seconds", timeout);
-
- return;
- }
-
- /*
- * The syntax @filename means read the string to send from the
- * file `filename'.
- */
- if (s[0] == '@') {
- /* skip the @ and any following white-space */
- char *fn = s;
- while (*++fn == ' ' || *fn == '\t')
- ;
-
- if (*fn != 0) {
- FILE *f;
- int n = 0;
-
- /* open the file and read until STR_LEN-1 bytes or end-of-file */
- f = fopen(fn, "r");
- if (f == NULL)
- fatal(1, "%s -- open failed: %m", fn);
- while (n < STR_LEN - 1) {
- int nr = fread(&file_data[n], 1, STR_LEN - 1 - n, f);
- if (nr < 0)
- fatal(1, "%s -- read error", fn);
- if (nr == 0)
- break;
- n += nr;
- }
- fclose(f);
-
- /* use the string we got as the string to send,
- but trim off the final newline if any. */
- if (n > 0 && file_data[n-1] == '\n')
- --n;
- file_data[n] = 0;
- s = file_data;
- }
- }
-
- if (strcmp(s, "EOT") == 0)
- s = "^D\\c";
- else if (strcmp(s, "BREAK") == 0)
- s = "\\K\\c";
-
- if (!put_string(s))
- fatal(1, "Failed");
-}
-
-int get_char()
-{
- int status;
- char c;
-
- status = read(0, &c, 1);
-
- switch (status) {
- case 1:
- return ((int)c & 0x7F);
-
- default:
- logf("warning: read() on stdin returned %d", status);
-
- case -1:
- if ((status = fcntl(0, F_GETFL, 0)) == -1)
- fatal(2, "Can't get file mode flags on stdin: %m");
-
- if (fcntl(0, F_SETFL, status & ~O_NONBLOCK) == -1)
- fatal(2, "Can't set file mode flags on stdin: %m");
-
- return (-1);
- }
-}
-
-int put_char(c)
-int c;
-{
- int status;
- char ch = c;
-
- usleep(10000); /* inter-character typing delay (?) */
-
- status = write(1, &ch, 1);
-
- switch (status) {
- case 1:
- return (0);
-
- default:
- logf("warning: write() on stdout returned %d", status);
-
- case -1:
- if ((status = fcntl(0, F_GETFL, 0)) == -1)
- fatal(2, "Can't get file mode flags on stdin, %m");
-
- if (fcntl(0, F_SETFL, status & ~O_NONBLOCK) == -1)
- fatal(2, "Can't set file mode flags on stdin: %m");
-
- return (-1);
- }
-}
-
-int write_char (c)
-int c;
-{
- if (alarmed || put_char(c) < 0) {
- alarm(0);
- alarmed = 0;
-
- if (verbose) {
- if (errno == EINTR || errno == EWOULDBLOCK)
- logf(" -- write timed out");
- else
- logf(" -- write failed: %m");
- }
- return (0);
- }
- return (1);
-}
-
-int put_string (s)
-register char *s;
-{
- quiet = 0;
- s = clean(s, 1);
-
- if (verbose) {
- if (quiet)
- logf("send (??????)");
- else
- logf("send (%v)", s);
- }
-
- alarm(timeout); alarmed = 0;
-
- while (*s) {
- register char c = *s++;
-
- if (c != '\\') {
- if (!write_char (c))
- return 0;
- continue;
- }
-
- c = *s++;
- switch (c) {
- case 'd':
- sleep(1);
- break;
-
- case 'K':
- break_sequence();
- break;
-
- case 'p':
- usleep(10000); /* 1/100th of a second (arg is microseconds) */
- break;
-
- default:
- if (!write_char (c))
- return 0;
- break;
- }
- }
-
- alarm(0);
- alarmed = 0;
- return (1);
-}
-
-/*
- * Echo a character to stderr.
- * When called with -1, a '\n' character is generated when
- * the cursor is not at the beginning of a line.
- */
-void echo_stderr(n)
-int n;
-{
- static int need_lf;
- char *s;
-
- switch (n) {
- case '\r': /* ignore '\r' */
- break;
- case -1:
- if (need_lf == 0)
- break;
- /* fall through */
- case '\n':
- write(2, "\n", 1);
- need_lf = 0;
- break;
- default:
- s = character(n);
- write(2, s, strlen(s));
- need_lf = 1;
- break;
- }
-}
-
-/*
- * 'Wait for' this string to appear on this file descriptor.
- */
-int get_string(string)
-register char *string;
-{
- char temp[STR_LEN];
- int c, printed = 0, len, minlen;
- register char *s = temp, *end = s + STR_LEN;
- char *logged = temp;
-
- fail_reason = (char *)0;
- string = clean(string, 0);
- len = strlen(string);
- minlen = (len > sizeof(fail_buffer)? len: sizeof(fail_buffer)) - 1;
-
- if (verbose)
- logf("expect (%v)", string);
-
- if (len > STR_LEN) {
- logf("expect string is too long");
- exit_code = 1;
- return 0;
- }
-
- if (len == 0) {
- if (verbose)
- logf("got it");
- return (1);
- }
-
- alarm(timeout);
- alarmed = 0;
-
- while ( ! alarmed && (c = get_char()) >= 0) {
- int n, abort_len, report_len;
-
- if (echo)
- echo_stderr(c);
- if (verbose && c == '\n') {
- if (s == logged)
- logf(""); /* blank line */
- else
- logf("%0.*v", s - logged, logged);
- logged = s + 1;
- }
-
- *s++ = c;
-
- if (verbose && s >= logged + 80) {
- logf("%0.*v", s - logged, logged);
- logged = s;
- }
-
- if (Verbose) {
- if (c == '\n')
- fputc( '\n', stderr );
- else if (c != '\r')
- fprintf( stderr, "%s", character(c) );
- }
-
- if (!report_gathering) {
- for (n = 0; n < n_reports; ++n) {
- if ((report_string[n] != (char*) NULL) &&
- s - temp >= (report_len = strlen(report_string[n])) &&
- strncmp(s - report_len, report_string[n], report_len) == 0) {
- time_t time_now = time ((time_t*) NULL);
- struct tm* tm_now = localtime (&time_now);
-
- strftime (report_buffer, 20, "%b %d %H:%M:%S ", tm_now);
- strcat (report_buffer, report_string[n]);
-
- report_string[n] = (char *) NULL;
- report_gathering = 1;
- break;
- }
- }
- }
- else {
- if (!iscntrl (c)) {
- int rep_len = strlen (report_buffer);
- report_buffer[rep_len] = c;
- report_buffer[rep_len + 1] = '\0';
- }
- else {
- report_gathering = 0;
- fprintf (report_fp, "chat: %s\n", report_buffer);
- }
- }
-
- if (s - temp >= len &&
- c == string[len - 1] &&
- strncmp(s - len, string, len) == 0) {
- if (verbose) {
- if (s > logged)
- logf("%0.*v", s - logged, logged);
- logf(" -- got it\n");
- }
-
- alarm(0);
- alarmed = 0;
- return (1);
- }
-
- for (n = 0; n < n_aborts; ++n) {
- if (s - temp >= (abort_len = strlen(abort_string[n])) &&
- strncmp(s - abort_len, abort_string[n], abort_len) == 0) {
- if (verbose) {
- if (s > logged)
- logf("%0.*v", s - logged, logged);
- logf(" -- failed");
- }
-
- alarm(0);
- alarmed = 0;
- exit_code = n + 4;
- strcpy(fail_reason = fail_buffer, abort_string[n]);
- return (0);
- }
- }
-
- if (s >= end) {
- if (logged < s - minlen) {
- if (verbose)
- logf("%0.*v", s - logged, logged);
- logged = s;
- }
- s -= minlen;
- memmove(temp, s, minlen);
- logged = temp + (logged - s);
- s = temp + minlen;
- }
-
- if (alarmed && verbose)
- logf("warning: alarm synchronization problem");
- }
-
- alarm(0);
-
- if (verbose && printed) {
- if (alarmed)
- logf(" -- read timed out");
- else
- logf(" -- read failed: %m");
- }
-
- exit_code = 3;
- alarmed = 0;
- return (0);
-}
-
-/*
- * Gross kludge to handle Solaris versions >= 2.6 having usleep.
- */
-#ifdef SOL2
-#include <sys/param.h>
-#if MAXUID > 65536 /* then this is Solaris 2.6 or later */
-#undef NO_USLEEP
-#endif
-#endif /* SOL2 */
-
-#ifdef NO_USLEEP
-#include <sys/types.h>
-#include <sys/time.h>
-
-/*
- usleep -- support routine for 4.2BSD system call emulations
- last edit: 29-Oct-1984 D A Gwyn
- */
-
-extern int select();
-
-int
-usleep( usec ) /* returns 0 if ok, else -1 */
- long usec; /* delay in microseconds */
-{
- static struct { /* `timeval' */
- long tv_sec; /* seconds */
- long tv_usec; /* microsecs */
- } delay; /* _select() timeout */
-
- delay.tv_sec = usec / 1000000L;
- delay.tv_usec = usec % 1000000L;
-
- return select(0, (long *)0, (long *)0, (long *)0, &delay);
-}
-#endif
-
-void
-pack_array (array, end)
- char **array; /* The address of the array of string pointers */
- int end; /* The index of the next free entry before CLR_ */
-{
- int i, j;
-
- for (i = 0; i < end; i++) {
- if (array[i] == NULL) {
- for (j = i+1; j < end; ++j)
- if (array[j] != NULL)
- array[i++] = array[j];
- for (; i < end; ++i)
- array[i] = NULL;
- break;
- }
- }
-}
-
-/*
- * vfmtmsg - format a message into a buffer. Like vsprintf except we
- * also specify the length of the output buffer, and we handle the
- * %m (error message) format.
- * Doesn't do floating-point formats.
- * Returns the number of chars put into buf.
- */
-#define OUTCHAR(c) (buflen > 0? (--buflen, *buf++ = (c)): 0)
-
-int
-vfmtmsg(buf, buflen, fmt, args)
- char *buf;
- int buflen;
- const char *fmt;
- va_list args;
-{
- int c, i, n;
- int width, prec, fillch;
- int base, len, neg, quoted;
- unsigned long val = 0;
- char *str, *buf0;
- const char *f;
- unsigned char *p;
- char num[32];
- static char hexchars[] = "0123456789abcdef";
-
- buf0 = buf;
- --buflen;
- while (buflen > 0) {
- for (f = fmt; *f != '%' && *f != 0; ++f)
- ;
- if (f > fmt) {
- len = f - fmt;
- if (len > buflen)
- len = buflen;
- memcpy(buf, fmt, len);
- buf += len;
- buflen -= len;
- fmt = f;
- }
- if (*fmt == 0)
- break;
- c = *++fmt;
- width = prec = 0;
- fillch = ' ';
- if (c == '0') {
- fillch = '0';
- c = *++fmt;
- }
- if (c == '*') {
- width = va_arg(args, int);
- c = *++fmt;
- } else {
- while (isdigit(c)) {
- width = width * 10 + c - '0';
- c = *++fmt;
- }
- }
- if (c == '.') {
- c = *++fmt;
- if (c == '*') {
- prec = va_arg(args, int);
- c = *++fmt;
- } else {
- while (isdigit(c)) {
- prec = prec * 10 + c - '0';
- c = *++fmt;
- }
- }
- }
- str = 0;
- base = 0;
- neg = 0;
- ++fmt;
- switch (c) {
- case 'd':
- i = va_arg(args, int);
- if (i < 0) {
- neg = 1;
- val = -i;
- } else
- val = i;
- base = 10;
- break;
- case 'o':
- val = va_arg(args, unsigned int);
- base = 8;
- break;
- case 'x':
- val = va_arg(args, unsigned int);
- base = 16;
- break;
- case 'p':
- val = (unsigned long) va_arg(args, void *);
- base = 16;
- neg = 2;
- break;
- case 's':
- str = va_arg(args, char *);
- break;
- case 'c':
- num[0] = va_arg(args, int);
- num[1] = 0;
- str = num;
- break;
- case 'm':
- str = strerror(errno);
- break;
- case 'v': /* "visible" string */
- case 'q': /* quoted string */
- quoted = c == 'q';
- p = va_arg(args, unsigned char *);
- if (fillch == '0' && prec > 0) {
- n = prec;
- } else {
- n = strlen((char *)p);
- if (prec > 0 && prec < n)
- n = prec;
- }
- while (n > 0 && buflen > 0) {
- c = *p++;
- --n;
- if (!quoted && c >= 0x80) {
- OUTCHAR('M');
- OUTCHAR('-');
- c -= 0x80;
- }
- if (quoted && (c == '"' || c == '\\'))
- OUTCHAR('\\');
- if (c < 0x20 || (0x7f <= c && c < 0xa0)) {
- if (quoted) {
- OUTCHAR('\\');
- switch (c) {
- case '\t': OUTCHAR('t'); break;
- case '\n': OUTCHAR('n'); break;
- case '\b': OUTCHAR('b'); break;
- case '\f': OUTCHAR('f'); break;
- default:
- OUTCHAR('x');
- OUTCHAR(hexchars[c >> 4]);
- OUTCHAR(hexchars[c & 0xf]);
- }
- } else {
- if (c == '\t')
- OUTCHAR(c);
- else {
- OUTCHAR('^');
- OUTCHAR(c ^ 0x40);
- }
- }
- } else
- OUTCHAR(c);
- }
- continue;
- default:
- *buf++ = '%';
- if (c != '%')
- --fmt; /* so %z outputs %z etc. */
- --buflen;
- continue;
- }
- if (base != 0) {
- str = num + sizeof(num);
- *--str = 0;
- while (str > num + neg) {
- *--str = hexchars[val % base];
- val = val / base;
- if (--prec <= 0 && val == 0)
- break;
- }
- switch (neg) {
- case 1:
- *--str = '-';
- break;
- case 2:
- *--str = 'x';
- *--str = '0';
- break;
- }
- len = num + sizeof(num) - 1 - str;
- } else {
- len = strlen(str);
- if (prec > 0 && len > prec)
- len = prec;
- }
- if (width > 0) {
- if (width > buflen)
- width = buflen;
- if ((n = width - len) > 0) {
- buflen -= n;
- for (; n > 0; --n)
- *buf++ = fillch;
- }
- }
- if (len > buflen)
- len = buflen;
- memcpy(buf, str, len);
- buf += len;
- buflen -= len;
- }
- *buf = 0;
- return buf - buf0;
-}
diff --git a/mdk-stage1/ppp/common/zlib.c b/mdk-stage1/ppp/common/zlib.c
deleted file mode 100644
index 503076886..000000000
--- a/mdk-stage1/ppp/common/zlib.c
+++ /dev/null
@@ -1,5376 +0,0 @@
-/*
- * This file is derived from various .h and .c files from the zlib-1.0.4
- * distribution by Jean-loup Gailly and Mark Adler, with some additions
- * by Paul Mackerras to aid in implementing Deflate compression and
- * decompression for PPP packets. See zlib.h for conditions of
- * distribution and use.
- *
- * Changes that have been made include:
- * - added Z_PACKET_FLUSH (see zlib.h for details)
- * - added inflateIncomp and deflateOutputPending
- * - allow strm->next_out to be NULL, meaning discard the output
- *
- * $Id$
- */
-
-/*
- * ==FILEVERSION 971210==
- *
- * This marker is used by the Linux installation script to determine
- * whether an up-to-date version of this file is already installed.
- */
-
-#define NO_DUMMY_DECL
-#define NO_ZCFUNCS
-#define MY_ZCALLOC
-
-#if defined(__FreeBSD__) && (defined(KERNEL) || defined(_KERNEL))
-#define inflate inflate_ppp /* FreeBSD already has an inflate :-( */
-#endif
-
-
-/* +++ zutil.h */
-/* zutil.h -- internal interface and configuration of the compression library
- * Copyright (C) 1995-1996 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
- part of the implementation of the compression library and is
- subject to change. Applications should only use zlib.h.
- */
-
-/* From: zutil.h,v 1.16 1996/07/24 13:41:13 me Exp $ */
-
-#ifndef _Z_UTIL_H
-#define _Z_UTIL_H
-
-#include "zlib.h"
-
-#if defined(KERNEL) || defined(_KERNEL)
-/* Assume this is a *BSD or SVR4 kernel */
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/systm.h>
-#undef u
-# define HAVE_MEMCPY
-# define memcpy(d, s, n) bcopy((s), (d), (n))
-# define memset(d, v, n) bzero((d), (n))
-# define memcmp bcmp
-
-#else
-#if defined(__KERNEL__)
-/* Assume this is a Linux kernel */
-#include <linux/string.h>
-#define HAVE_MEMCPY
-
-#else /* not kernel */
-
-#if defined(MSDOS)||defined(VMS)||defined(CRAY)||defined(WIN32)||defined(RISCOS)
-# include <stddef.h>
-# include <errno.h>
-#else
- extern int errno;
-#endif
-#ifdef STDC
-# include <string.h>
-# include <stdlib.h>
-#endif
-#endif /* __KERNEL__ */
-#endif /* _KERNEL || KERNEL */
-
-#ifndef local
-# define local static
-#endif
-/* compile with -Dlocal if your debugger can't find static symbols */
-
-typedef unsigned char uch;
-typedef uch FAR uchf;
-typedef unsigned short ush;
-typedef ush FAR ushf;
-typedef unsigned long ulg;
-
-extern const char *z_errmsg[10]; /* indexed by 2-zlib_error */
-/* (size given to avoid silly warnings with Visual C++) */
-
-#define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)]
-
-#define ERR_RETURN(strm,err) \
- return (strm->msg = (char*)ERR_MSG(err), (err))
-/* To be used only when the state is known to be valid */
-
- /* common constants */
-
-#ifndef DEF_WBITS
-# define DEF_WBITS MAX_WBITS
-#endif
-/* default windowBits for decompression. MAX_WBITS is for compression only */
-
-#if MAX_MEM_LEVEL >= 8
-# define DEF_MEM_LEVEL 8
-#else
-# define DEF_MEM_LEVEL MAX_MEM_LEVEL
-#endif
-/* default memLevel */
-
-#define STORED_BLOCK 0
-#define STATIC_TREES 1
-#define DYN_TREES 2
-/* The three kinds of block type */
-
-#define MIN_MATCH 3
-#define MAX_MATCH 258
-/* The minimum and maximum match lengths */
-
-#define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */
-
- /* target dependencies */
-
-#ifdef MSDOS
-# define OS_CODE 0x00
-# ifdef __TURBOC__
-# include <alloc.h>
-# else /* MSC or DJGPP */
-# include <malloc.h>
-# endif
-#endif
-
-#ifdef OS2
-# define OS_CODE 0x06
-#endif
-
-#ifdef WIN32 /* Window 95 & Windows NT */
-# define OS_CODE 0x0b
-#endif
-
-#if defined(VAXC) || defined(VMS)
-# define OS_CODE 0x02
-# define FOPEN(name, mode) \
- fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512")
-#endif
-
-#ifdef AMIGA
-# define OS_CODE 0x01
-#endif
-
-#if defined(ATARI) || defined(atarist)
-# define OS_CODE 0x05
-#endif
-
-#ifdef MACOS
-# define OS_CODE 0x07
-#endif
-
-#ifdef __50SERIES /* Prime/PRIMOS */
-# define OS_CODE 0x0F
-#endif
-
-#ifdef TOPS20
-# define OS_CODE 0x0a
-#endif
-
-#if defined(_BEOS_) || defined(RISCOS)
-# define fdopen(fd,mode) NULL /* No fdopen() */
-#endif
-
- /* Common defaults */
-
-#ifndef OS_CODE
-# define OS_CODE 0x03 /* assume Unix */
-#endif
-
-#ifndef FOPEN
-# define FOPEN(name, mode) fopen((name), (mode))
-#endif
-
- /* functions */
-
-#ifdef HAVE_STRERROR
- extern char *strerror OF((int));
-# define zstrerror(errnum) strerror(errnum)
-#else
-# define zstrerror(errnum) ""
-#endif
-
-#if defined(pyr)
-# define NO_MEMCPY
-#endif
-#if (defined(M_I86SM) || defined(M_I86MM)) && !defined(_MSC_VER)
- /* Use our own functions for small and medium model with MSC <= 5.0.
- * You may have to use the same strategy for Borland C (untested).
- */
-# define NO_MEMCPY
-#endif
-#if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY)
-# define HAVE_MEMCPY
-#endif
-#ifdef HAVE_MEMCPY
-# ifdef SMALL_MEDIUM /* MSDOS small or medium model */
-# define zmemcpy _fmemcpy
-# define zmemcmp _fmemcmp
-# define zmemzero(dest, len) _fmemset(dest, 0, len)
-# else
-# define zmemcpy memcpy
-# define zmemcmp memcmp
-# define zmemzero(dest, len) memset(dest, 0, len)
-# endif
-#else
- extern void zmemcpy OF((Bytef* dest, Bytef* source, uInt len));
- extern int zmemcmp OF((Bytef* s1, Bytef* s2, uInt len));
- extern void zmemzero OF((Bytef* dest, uInt len));
-#endif
-
-/* Diagnostic functions */
-#ifdef DEBUG_ZLIB
-# include <stdio.h>
-# ifndef verbose
-# define verbose 0
-# endif
- extern void z_error OF((char *m));
-# define Assert(cond,msg) {if(!(cond)) z_error(msg);}
-# define Trace(x) fprintf x
-# define Tracev(x) {if (verbose) fprintf x ;}
-# define Tracevv(x) {if (verbose>1) fprintf x ;}
-# define Tracec(c,x) {if (verbose && (c)) fprintf x ;}
-# define Tracecv(c,x) {if (verbose>1 && (c)) fprintf x ;}
-#else
-# define Assert(cond,msg)
-# define Trace(x)
-# define Tracev(x)
-# define Tracevv(x)
-# define Tracec(c,x)
-# define Tracecv(c,x)
-#endif
-
-
-typedef uLong (*check_func) OF((uLong check, const Bytef *buf, uInt len));
-
-voidpf zcalloc OF((voidpf opaque, unsigned items, unsigned size));
-void zcfree OF((voidpf opaque, voidpf ptr));
-
-#define ZALLOC(strm, items, size) \
- (*((strm)->zalloc))((strm)->opaque, (items), (size))
-#define ZFREE(strm, addr) (*((strm)->zfree))((strm)->opaque, (voidpf)(addr))
-#define TRY_FREE(s, p) {if (p) ZFREE(s, p);}
-
-#endif /* _Z_UTIL_H */
-/* --- zutil.h */
-
-/* +++ deflate.h */
-/* deflate.h -- internal compression state
- * Copyright (C) 1995-1996 Jean-loup Gailly
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
- part of the implementation of the compression library and is
- subject to change. Applications should only use zlib.h.
- */
-
-/* From: deflate.h,v 1.10 1996/07/02 12:41:00 me Exp $ */
-
-#ifndef _DEFLATE_H
-#define _DEFLATE_H
-
-/* #include "zutil.h" */
-
-/* ===========================================================================
- * Internal compression state.
- */
-
-#define LENGTH_CODES 29
-/* number of length codes, not counting the special END_BLOCK code */
-
-#define LITERALS 256
-/* number of literal bytes 0..255 */
-
-#define L_CODES (LITERALS+1+LENGTH_CODES)
-/* number of Literal or Length codes, including the END_BLOCK code */
-
-#define D_CODES 30
-/* number of distance codes */
-
-#define BL_CODES 19
-/* number of codes used to transfer the bit lengths */
-
-#define HEAP_SIZE (2*L_CODES+1)
-/* maximum heap size */
-
-#define MAX_BITS 15
-/* All codes must not exceed MAX_BITS bits */
-
-#define INIT_STATE 42
-#define BUSY_STATE 113
-#define FINISH_STATE 666
-/* Stream status */
-
-
-/* Data structure describing a single value and its code string. */
-typedef struct ct_data_s {
- union {
- ush freq; /* frequency count */
- ush code; /* bit string */
- } fc;
- union {
- ush dad; /* father node in Huffman tree */
- ush len; /* length of bit string */
- } dl;
-} FAR ct_data;
-
-#define Freq fc.freq
-#define Code fc.code
-#define Dad dl.dad
-#define Len dl.len
-
-typedef struct static_tree_desc_s static_tree_desc;
-
-typedef struct tree_desc_s {
- ct_data *dyn_tree; /* the dynamic tree */
- int max_code; /* largest code with non zero frequency */
- static_tree_desc *stat_desc; /* the corresponding static tree */
-} FAR tree_desc;
-
-typedef ush Pos;
-typedef Pos FAR Posf;
-typedef unsigned IPos;
-
-/* A Pos is an index in the character window. We use short instead of int to
- * save space in the various tables. IPos is used only for parameter passing.
- */
-
-typedef struct deflate_state {
- z_streamp strm; /* pointer back to this zlib stream */
- int status; /* as the name implies */
- Bytef *pending_buf; /* output still pending */
- ulg pending_buf_size; /* size of pending_buf */
- Bytef *pending_out; /* next pending byte to output to the stream */
- int pending; /* nb of bytes in the pending buffer */
- int noheader; /* suppress zlib header and adler32 */
- Byte data_type; /* UNKNOWN, BINARY or ASCII */
- Byte method; /* STORED (for zip only) or DEFLATED */
- int last_flush; /* value of flush param for previous deflate call */
-
- /* used by deflate.c: */
-
- uInt w_size; /* LZ77 window size (32K by default) */
- uInt w_bits; /* log2(w_size) (8..16) */
- uInt w_mask; /* w_size - 1 */
-
- Bytef *window;
- /* Sliding window. Input bytes are read into the second half of the window,
- * and move to the first half later to keep a dictionary of at least wSize
- * bytes. With this organization, matches are limited to a distance of
- * wSize-MAX_MATCH bytes, but this ensures that IO is always
- * performed with a length multiple of the block size. Also, it limits
- * the window size to 64K, which is quite useful on MSDOS.
- * To do: use the user input buffer as sliding window.
- */
-
- ulg window_size;
- /* Actual size of window: 2*wSize, except when the user input buffer
- * is directly used as sliding window.
- */
-
- Posf *prev;
- /* Link to older string with same hash index. To limit the size of this
- * array to 64K, this link is maintained only for the last 32K strings.
- * An index in this array is thus a window index modulo 32K.
- */
-
- Posf *head; /* Heads of the hash chains or NIL. */
-
- uInt ins_h; /* hash index of string to be inserted */
- uInt hash_size; /* number of elements in hash table */
- uInt hash_bits; /* log2(hash_size) */
- uInt hash_mask; /* hash_size-1 */
-
- uInt hash_shift;
- /* Number of bits by which ins_h must be shifted at each input
- * step. It must be such that after MIN_MATCH steps, the oldest
- * byte no longer takes part in the hash key, that is:
- * hash_shift * MIN_MATCH >= hash_bits
- */
-
- long block_start;
- /* Window position at the beginning of the current output block. Gets
- * negative when the window is moved backwards.
- */
-
- uInt match_length; /* length of best match */
- IPos prev_match; /* previous match */
- int match_available; /* set if previous match exists */
- uInt strstart; /* start of string to insert */
- uInt match_start; /* start of matching string */
- uInt lookahead; /* number of valid bytes ahead in window */
-
- uInt prev_length;
- /* Length of the best match at previous step. Matches not greater than this
- * are discarded. This is used in the lazy match evaluation.
- */
-
- uInt max_chain_length;
- /* To speed up deflation, hash chains are never searched beyond this
- * length. A higher limit improves compression ratio but degrades the
- * speed.
- */
-
- uInt max_lazy_match;
- /* Attempt to find a better match only when the current match is strictly
- * smaller than this value. This mechanism is used only for compression
- * levels >= 4.
- */
-# define max_insert_length max_lazy_match
- /* Insert new strings in the hash table only if the match length is not
- * greater than this length. This saves time but degrades compression.
- * max_insert_length is used only for compression levels <= 3.
- */
-
- int level; /* compression level (1..9) */
- int strategy; /* favor or force Huffman coding*/
-
- uInt good_match;
- /* Use a faster search when the previous match is longer than this */
-
- int nice_match; /* Stop searching when current match exceeds this */
-
- /* used by trees.c: */
- /* Didn't use ct_data typedef below to supress compiler warning */
- struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */
- struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */
- struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */
-
- struct tree_desc_s l_desc; /* desc. for literal tree */
- struct tree_desc_s d_desc; /* desc. for distance tree */
- struct tree_desc_s bl_desc; /* desc. for bit length tree */
-
- ush bl_count[MAX_BITS+1];
- /* number of codes at each bit length for an optimal tree */
-
- int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */
- int heap_len; /* number of elements in the heap */
- int heap_max; /* element of largest frequency */
- /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.
- * The same heap array is used to build all trees.
- */
-
- uch depth[2*L_CODES+1];
- /* Depth of each subtree used as tie breaker for trees of equal frequency
- */
-
- uchf *l_buf; /* buffer for literals or lengths */
-
- uInt lit_bufsize;
- /* Size of match buffer for literals/lengths. There are 4 reasons for
- * limiting lit_bufsize to 64K:
- * - frequencies can be kept in 16 bit counters
- * - if compression is not successful for the first block, all input
- * data is still in the window so we can still emit a stored block even
- * when input comes from standard input. (This can also be done for
- * all blocks if lit_bufsize is not greater than 32K.)
- * - if compression is not successful for a file smaller than 64K, we can
- * even emit a stored file instead of a stored block (saving 5 bytes).
- * This is applicable only for zip (not gzip or zlib).
- * - creating new Huffman trees less frequently may not provide fast
- * adaptation to changes in the input data statistics. (Take for
- * example a binary file with poorly compressible code followed by
- * a highly compressible string table.) Smaller buffer sizes give
- * fast adaptation but have of course the overhead of transmitting
- * trees more frequently.
- * - I can't count above 4
- */
-
- uInt last_lit; /* running index in l_buf */
-
- ushf *d_buf;
- /* Buffer for distances. To simplify the code, d_buf and l_buf have
- * the same number of elements. To use different lengths, an extra flag
- * array would be necessary.
- */
-
- ulg opt_len; /* bit length of current block with optimal trees */
- ulg static_len; /* bit length of current block with static trees */
- ulg compressed_len; /* total bit length of compressed file */
- uInt matches; /* number of string matches in current block */
- int last_eob_len; /* bit length of EOB code for last block */
-
-#ifdef DEBUG_ZLIB
- ulg bits_sent; /* bit length of the compressed data */
-#endif
-
- ush bi_buf;
- /* Output buffer. bits are inserted starting at the bottom (least
- * significant bits).
- */
- int bi_valid;
- /* Number of valid bits in bi_buf. All bits above the last valid bit
- * are always zero.
- */
-
-} FAR deflate_state;
-
-/* Output a byte on the stream.
- * IN assertion: there is enough room in pending_buf.
- */
-#define put_byte(s, c) {s->pending_buf[s->pending++] = (c);}
-
-
-#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
-/* Minimum amount of lookahead, except at the end of the input file.
- * See deflate.c for comments about the MIN_MATCH+1.
- */
-
-#define MAX_DIST(s) ((s)->w_size-MIN_LOOKAHEAD)
-/* In order to simplify the code, particularly on 16 bit machines, match
- * distances are limited to MAX_DIST instead of WSIZE.
- */
-
- /* in trees.c */
-void _tr_init OF((deflate_state *s));
-int _tr_tally OF((deflate_state *s, unsigned dist, unsigned lc));
-ulg _tr_flush_block OF((deflate_state *s, charf *buf, ulg stored_len,
- int eof));
-void _tr_align OF((deflate_state *s));
-void _tr_stored_block OF((deflate_state *s, charf *buf, ulg stored_len,
- int eof));
-void _tr_stored_type_only OF((deflate_state *));
-
-#endif
-/* --- deflate.h */
-
-/* +++ deflate.c */
-/* deflate.c -- compress data using the deflation algorithm
- * Copyright (C) 1995-1996 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/*
- * ALGORITHM
- *
- * The "deflation" process depends on being able to identify portions
- * of the input text which are identical to earlier input (within a
- * sliding window trailing behind the input currently being processed).
- *
- * The most straightforward technique turns out to be the fastest for
- * most input files: try all possible matches and select the longest.
- * The key feature of this algorithm is that insertions into the string
- * dictionary are very simple and thus fast, and deletions are avoided
- * completely. Insertions are performed at each input character, whereas
- * string matches are performed only when the previous match ends. So it
- * is preferable to spend more time in matches to allow very fast string
- * insertions and avoid deletions. The matching algorithm for small
- * strings is inspired from that of Rabin & Karp. A brute force approach
- * is used to find longer strings when a small match has been found.
- * A similar algorithm is used in comic (by Jan-Mark Wams) and freeze
- * (by Leonid Broukhis).
- * A previous version of this file used a more sophisticated algorithm
- * (by Fiala and Greene) which is guaranteed to run in linear amortized
- * time, but has a larger average cost, uses more memory and is patented.
- * However the F&G algorithm may be faster for some highly redundant
- * files if the parameter max_chain_length (described below) is too large.
- *
- * ACKNOWLEDGEMENTS
- *
- * The idea of lazy evaluation of matches is due to Jan-Mark Wams, and
- * I found it in 'freeze' written by Leonid Broukhis.
- * Thanks to many people for bug reports and testing.
- *
- * REFERENCES
- *
- * Deutsch, L.P.,"DEFLATE Compressed Data Format Specification".
- * Available in ftp://ds.internic.net/rfc/rfc1951.txt
- *
- * A description of the Rabin and Karp algorithm is given in the book
- * "Algorithms" by R. Sedgewick, Addison-Wesley, p252.
- *
- * Fiala,E.R., and Greene,D.H.
- * Data Compression with Finite Windows, Comm.ACM, 32,4 (1989) 490-595
- *
- */
-
-/* From: deflate.c,v 1.15 1996/07/24 13:40:58 me Exp $ */
-
-/* #include "deflate.h" */
-
-char deflate_copyright[] = " deflate 1.0.4 Copyright 1995-1996 Jean-loup Gailly ";
-/*
- If you use the zlib library in a product, an acknowledgment is welcome
- in the documentation of your product. If for some reason you cannot
- include such an acknowledgment, I would appreciate that you keep this
- copyright string in the executable of your product.
- */
-
-/* ===========================================================================
- * Function prototypes.
- */
-typedef enum {
- need_more, /* block not completed, need more input or more output */
- block_done, /* block flush performed */
- finish_started, /* finish started, need only more output at next deflate */
- finish_done /* finish done, accept no more input or output */
-} block_state;
-
-typedef block_state (*compress_func) OF((deflate_state *s, int flush));
-/* Compression function. Returns the block state after the call. */
-
-local void fill_window OF((deflate_state *s));
-local block_state deflate_stored OF((deflate_state *s, int flush));
-local block_state deflate_fast OF((deflate_state *s, int flush));
-local block_state deflate_slow OF((deflate_state *s, int flush));
-local void lm_init OF((deflate_state *s));
-local void putShortMSB OF((deflate_state *s, uInt b));
-local void flush_pending OF((z_streamp strm));
-local int read_buf OF((z_streamp strm, charf *buf, unsigned size));
-#ifdef ASMV
- void match_init OF((void)); /* asm code initialization */
- uInt longest_match OF((deflate_state *s, IPos cur_match));
-#else
-local uInt longest_match OF((deflate_state *s, IPos cur_match));
-#endif
-
-#ifdef DEBUG_ZLIB
-local void check_match OF((deflate_state *s, IPos start, IPos match,
- int length));
-#endif
-
-/* ===========================================================================
- * Local data
- */
-
-#define NIL 0
-/* Tail of hash chains */
-
-#ifndef TOO_FAR
-# define TOO_FAR 4096
-#endif
-/* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
-
-#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
-/* Minimum amount of lookahead, except at the end of the input file.
- * See deflate.c for comments about the MIN_MATCH+1.
- */
-
-/* Values for max_lazy_match, good_match and max_chain_length, depending on
- * the desired pack level (0..9). The values given below have been tuned to
- * exclude worst case performance for pathological files. Better values may be
- * found for specific files.
- */
-typedef struct config_s {
- ush good_length; /* reduce lazy search above this match length */
- ush max_lazy; /* do not perform lazy search above this match length */
- ush nice_length; /* quit search above this match length */
- ush max_chain;
- compress_func func;
-} config;
-
-local config configuration_table[10] = {
-/* good lazy nice chain */
-/* 0 */ {0, 0, 0, 0, deflate_stored}, /* store only */
-/* 1 */ {4, 4, 8, 4, deflate_fast}, /* maximum speed, no lazy matches */
-/* 2 */ {4, 5, 16, 8, deflate_fast},
-/* 3 */ {4, 6, 32, 32, deflate_fast},
-
-/* 4 */ {4, 4, 16, 16, deflate_slow}, /* lazy matches */
-/* 5 */ {8, 16, 32, 32, deflate_slow},
-/* 6 */ {8, 16, 128, 128, deflate_slow},
-/* 7 */ {8, 32, 128, 256, deflate_slow},
-/* 8 */ {32, 128, 258, 1024, deflate_slow},
-/* 9 */ {32, 258, 258, 4096, deflate_slow}}; /* maximum compression */
-
-/* Note: the deflate() code requires max_lazy >= MIN_MATCH and max_chain >= 4
- * For deflate_fast() (levels <= 3) good is ignored and lazy has a different
- * meaning.
- */
-
-#define EQUAL 0
-/* result of memcmp for equal strings */
-
-#ifndef NO_DUMMY_DECL
-struct static_tree_desc_s {int dummy;}; /* for buggy compilers */
-#endif
-
-/* ===========================================================================
- * Update a hash value with the given input byte
- * IN assertion: all calls to to UPDATE_HASH are made with consecutive
- * input characters, so that a running hash key can be computed from the
- * previous key instead of complete recalculation each time.
- */
-#define UPDATE_HASH(s,h,c) (h = (((h)<<s->hash_shift) ^ (c)) & s->hash_mask)
-
-
-/* ===========================================================================
- * Insert string str in the dictionary and set match_head to the previous head
- * of the hash chain (the most recent string with same hash key). Return
- * the previous length of the hash chain.
- * IN assertion: all calls to to INSERT_STRING are made with consecutive
- * input characters and the first MIN_MATCH bytes of str are valid
- * (except for the last MIN_MATCH-1 bytes of the input file).
- */
-#define INSERT_STRING(s, str, match_head) \
- (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \
- s->prev[(str) & s->w_mask] = match_head = s->head[s->ins_h], \
- s->head[s->ins_h] = (Pos)(str))
-
-/* ===========================================================================
- * Initialize the hash table (avoiding 64K overflow for 16 bit systems).
- * prev[] will be initialized on the fly.
- */
-#define CLEAR_HASH(s) \
- s->head[s->hash_size-1] = NIL; \
- zmemzero((charf *)s->head, (unsigned)(s->hash_size-1)*sizeof(*s->head));
-
-/* ========================================================================= */
-int deflateInit_(strm, level, version, stream_size)
- z_streamp strm;
- int level;
- const char *version;
- int stream_size;
-{
- return deflateInit2_(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL,
- Z_DEFAULT_STRATEGY, version, stream_size);
- /* To do: ignore strm->next_in if we use it as window */
-}
-
-/* ========================================================================= */
-int deflateInit2_(strm, level, method, windowBits, memLevel, strategy,
- version, stream_size)
- z_streamp strm;
- int level;
- int method;
- int windowBits;
- int memLevel;
- int strategy;
- const char *version;
- int stream_size;
-{
- deflate_state *s;
- int noheader = 0;
- static char* my_version = ZLIB_VERSION;
-
- ushf *overlay;
- /* We overlay pending_buf and d_buf+l_buf. This works since the average
- * output size for (length,distance) codes is <= 24 bits.
- */
-
- if (version == Z_NULL || version[0] != my_version[0] ||
- stream_size != sizeof(z_stream)) {
- return Z_VERSION_ERROR;
- }
- if (strm == Z_NULL) return Z_STREAM_ERROR;
-
- strm->msg = Z_NULL;
-#ifndef NO_ZCFUNCS
- if (strm->zalloc == Z_NULL) {
- strm->zalloc = zcalloc;
- strm->opaque = (voidpf)0;
- }
- if (strm->zfree == Z_NULL) strm->zfree = zcfree;
-#endif
-
- if (level == Z_DEFAULT_COMPRESSION) level = 6;
-
- if (windowBits < 0) { /* undocumented feature: suppress zlib header */
- noheader = 1;
- windowBits = -windowBits;
- }
- if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method != Z_DEFLATED ||
- windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||
- strategy < 0 || strategy > Z_HUFFMAN_ONLY) {
- return Z_STREAM_ERROR;
- }
- s = (deflate_state *) ZALLOC(strm, 1, sizeof(deflate_state));
- if (s == Z_NULL) return Z_MEM_ERROR;
- strm->state = (struct internal_state FAR *)s;
- s->strm = strm;
-
- s->noheader = noheader;
- s->w_bits = windowBits;
- s->w_size = 1 << s->w_bits;
- s->w_mask = s->w_size - 1;
-
- s->hash_bits = memLevel + 7;
- s->hash_size = 1 << s->hash_bits;
- s->hash_mask = s->hash_size - 1;
- s->hash_shift = ((s->hash_bits+MIN_MATCH-1)/MIN_MATCH);
-
- s->window = (Bytef *) ZALLOC(strm, s->w_size, 2*sizeof(Byte));
- s->prev = (Posf *) ZALLOC(strm, s->w_size, sizeof(Pos));
- s->head = (Posf *) ZALLOC(strm, s->hash_size, sizeof(Pos));
-
- s->lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */
-
- overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);
- s->pending_buf = (uchf *) overlay;
- s->pending_buf_size = (ulg)s->lit_bufsize * (sizeof(ush)+2L);
-
- if (s->window == Z_NULL || s->prev == Z_NULL || s->head == Z_NULL ||
- s->pending_buf == Z_NULL) {
- strm->msg = (char*)ERR_MSG(Z_MEM_ERROR);
- deflateEnd (strm);
- return Z_MEM_ERROR;
- }
- s->d_buf = overlay + s->lit_bufsize/sizeof(ush);
- s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;
-
- s->level = level;
- s->strategy = strategy;
- s->method = (Byte)method;
-
- return deflateReset(strm);
-}
-
-/* ========================================================================= */
-int deflateSetDictionary (strm, dictionary, dictLength)
- z_streamp strm;
- const Bytef *dictionary;
- uInt dictLength;
-{
- deflate_state *s;
- uInt length = dictLength;
- uInt n;
- IPos hash_head = 0;
-
- if (strm == Z_NULL || strm->state == Z_NULL || dictionary == Z_NULL)
- return Z_STREAM_ERROR;
-
- s = (deflate_state *) strm->state;
- if (s->status != INIT_STATE) return Z_STREAM_ERROR;
-
- strm->adler = adler32(strm->adler, dictionary, dictLength);
-
- if (length < MIN_MATCH) return Z_OK;
- if (length > MAX_DIST(s)) {
- length = MAX_DIST(s);
-#ifndef USE_DICT_HEAD
- dictionary += dictLength - length; /* use the tail of the dictionary */
-#endif
- }
- zmemcpy((charf *)s->window, dictionary, length);
- s->strstart = length;
- s->block_start = (long)length;
-
- /* Insert all strings in the hash table (except for the last two bytes).
- * s->lookahead stays null, so s->ins_h will be recomputed at the next
- * call of fill_window.
- */
- s->ins_h = s->window[0];
- UPDATE_HASH(s, s->ins_h, s->window[1]);
- for (n = 0; n <= length - MIN_MATCH; n++) {
- INSERT_STRING(s, n, hash_head);
- }
- if (hash_head) hash_head = 0; /* to make compiler happy */
- return Z_OK;
-}
-
-/* ========================================================================= */
-int deflateReset (strm)
- z_streamp strm;
-{
- deflate_state *s;
-
- if (strm == Z_NULL || strm->state == Z_NULL ||
- strm->zalloc == Z_NULL || strm->zfree == Z_NULL) return Z_STREAM_ERROR;
-
- strm->total_in = strm->total_out = 0;
- strm->msg = Z_NULL; /* use zfree if we ever allocate msg dynamically */
- strm->data_type = Z_UNKNOWN;
-
- s = (deflate_state *)strm->state;
- s->pending = 0;
- s->pending_out = s->pending_buf;
-
- if (s->noheader < 0) {
- s->noheader = 0; /* was set to -1 by deflate(..., Z_FINISH); */
- }
- s->status = s->noheader ? BUSY_STATE : INIT_STATE;
- strm->adler = 1;
- s->last_flush = Z_NO_FLUSH;
-
- _tr_init(s);
- lm_init(s);
-
- return Z_OK;
-}
-
-/* ========================================================================= */
-int deflateParams(strm, level, strategy)
- z_streamp strm;
- int level;
- int strategy;
-{
- deflate_state *s;
- compress_func func;
- int err = Z_OK;
-
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
- s = (deflate_state *) strm->state;
-
- if (level == Z_DEFAULT_COMPRESSION) {
- level = 6;
- }
- if (level < 0 || level > 9 || strategy < 0 || strategy > Z_HUFFMAN_ONLY) {
- return Z_STREAM_ERROR;
- }
- func = configuration_table[s->level].func;
-
- if (func != configuration_table[level].func && strm->total_in != 0) {
- /* Flush the last buffer: */
- err = deflate(strm, Z_PARTIAL_FLUSH);
- }
- if (s->level != level) {
- s->level = level;
- s->max_lazy_match = configuration_table[level].max_lazy;
- s->good_match = configuration_table[level].good_length;
- s->nice_match = configuration_table[level].nice_length;
- s->max_chain_length = configuration_table[level].max_chain;
- }
- s->strategy = strategy;
- return err;
-}
-
-/* =========================================================================
- * Put a short in the pending buffer. The 16-bit value is put in MSB order.
- * IN assertion: the stream state is correct and there is enough room in
- * pending_buf.
- */
-local void putShortMSB (s, b)
- deflate_state *s;
- uInt b;
-{
- put_byte(s, (Byte)(b >> 8));
- put_byte(s, (Byte)(b & 0xff));
-}
-
-/* =========================================================================
- * Flush as much pending output as possible. All deflate() output goes
- * through this function so some applications may wish to modify it
- * to avoid allocating a large strm->next_out buffer and copying into it.
- * (See also read_buf()).
- */
-local void flush_pending(strm)
- z_streamp strm;
-{
- deflate_state *s = (deflate_state *) strm->state;
- unsigned len = s->pending;
-
- if (len > strm->avail_out) len = strm->avail_out;
- if (len == 0) return;
-
- if (strm->next_out != Z_NULL) {
- zmemcpy(strm->next_out, s->pending_out, len);
- strm->next_out += len;
- }
- s->pending_out += len;
- strm->total_out += len;
- strm->avail_out -= len;
- s->pending -= len;
- if (s->pending == 0) {
- s->pending_out = s->pending_buf;
- }
-}
-
-/* ========================================================================= */
-int deflate (strm, flush)
- z_streamp strm;
- int flush;
-{
- int old_flush; /* value of flush param for previous deflate call */
- deflate_state *s;
-
- if (strm == Z_NULL || strm->state == Z_NULL ||
- flush > Z_FINISH || flush < 0) {
- return Z_STREAM_ERROR;
- }
- s = (deflate_state *) strm->state;
-
- if ((strm->next_in == Z_NULL && strm->avail_in != 0) ||
- (s->status == FINISH_STATE && flush != Z_FINISH)) {
- ERR_RETURN(strm, Z_STREAM_ERROR);
- }
- if (strm->avail_out == 0) ERR_RETURN(strm, Z_BUF_ERROR);
-
- s->strm = strm; /* just in case */
- old_flush = s->last_flush;
- s->last_flush = flush;
-
- /* Write the zlib header */
- if (s->status == INIT_STATE) {
-
- uInt header = (Z_DEFLATED + ((s->w_bits-8)<<4)) << 8;
- uInt level_flags = (s->level-1) >> 1;
-
- if (level_flags > 3) level_flags = 3;
- header |= (level_flags << 6);
- if (s->strstart != 0) header |= PRESET_DICT;
- header += 31 - (header % 31);
-
- s->status = BUSY_STATE;
- putShortMSB(s, header);
-
- /* Save the adler32 of the preset dictionary: */
- if (s->strstart != 0) {
- putShortMSB(s, (uInt)(strm->adler >> 16));
- putShortMSB(s, (uInt)(strm->adler & 0xffff));
- }
- strm->adler = 1L;
- }
-
- /* Flush as much pending output as possible */
- if (s->pending != 0) {
- flush_pending(strm);
- if (strm->avail_out == 0) {
- /* Since avail_out is 0, deflate will be called again with
- * more output space, but possibly with both pending and
- * avail_in equal to zero. There won't be anything to do,
- * but this is not an error situation so make sure we
- * return OK instead of BUF_ERROR at next call of deflate:
- */
- s->last_flush = -1;
- return Z_OK;
- }
-
- /* Make sure there is something to do and avoid duplicate consecutive
- * flushes. For repeated and useless calls with Z_FINISH, we keep
- * returning Z_STREAM_END instead of Z_BUFF_ERROR.
- */
- } else if (strm->avail_in == 0 && flush <= old_flush &&
- flush != Z_FINISH) {
- ERR_RETURN(strm, Z_BUF_ERROR);
- }
-
- /* User must not provide more input after the first FINISH: */
- if (s->status == FINISH_STATE && strm->avail_in != 0) {
- ERR_RETURN(strm, Z_BUF_ERROR);
- }
-
- /* Start a new block or continue the current one.
- */
- if (strm->avail_in != 0 || s->lookahead != 0 ||
- (flush != Z_NO_FLUSH && s->status != FINISH_STATE)) {
- block_state bstate;
-
- bstate = (*(configuration_table[s->level].func))(s, flush);
-
- if (bstate == finish_started || bstate == finish_done) {
- s->status = FINISH_STATE;
- }
- if (bstate == need_more || bstate == finish_started) {
- if (strm->avail_out == 0) {
- s->last_flush = -1; /* avoid BUF_ERROR next call, see above */
- }
- return Z_OK;
- /* If flush != Z_NO_FLUSH && avail_out == 0, the next call
- * of deflate should use the same flush parameter to make sure
- * that the flush is complete. So we don't have to output an
- * empty block here, this will be done at next call. This also
- * ensures that for a very small output buffer, we emit at most
- * one empty block.
- */
- }
- if (bstate == block_done) {
- if (flush == Z_PARTIAL_FLUSH) {
- _tr_align(s);
- } else if (flush == Z_PACKET_FLUSH) {
- /* Output just the 3-bit `stored' block type value,
- but not a zero length. */
- _tr_stored_type_only(s);
- } else { /* FULL_FLUSH or SYNC_FLUSH */
- _tr_stored_block(s, (char*)0, 0L, 0);
- /* For a full flush, this empty block will be recognized
- * as a special marker by inflate_sync().
- */
- if (flush == Z_FULL_FLUSH) {
- CLEAR_HASH(s); /* forget history */
- }
- }
- flush_pending(strm);
- if (strm->avail_out == 0) {
- s->last_flush = -1; /* avoid BUF_ERROR at next call, see above */
- return Z_OK;
- }
- }
- }
- Assert(strm->avail_out > 0, "bug2");
-
- if (flush != Z_FINISH) return Z_OK;
- if (s->noheader) return Z_STREAM_END;
-
- /* Write the zlib trailer (adler32) */
- putShortMSB(s, (uInt)(strm->adler >> 16));
- putShortMSB(s, (uInt)(strm->adler & 0xffff));
- flush_pending(strm);
- /* If avail_out is zero, the application will call deflate again
- * to flush the rest.
- */
- s->noheader = -1; /* write the trailer only once! */
- return s->pending != 0 ? Z_OK : Z_STREAM_END;
-}
-
-/* ========================================================================= */
-int deflateEnd (strm)
- z_streamp strm;
-{
- int status;
- deflate_state *s;
-
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
- s = (deflate_state *) strm->state;
-
- status = s->status;
- if (status != INIT_STATE && status != BUSY_STATE &&
- status != FINISH_STATE) {
- return Z_STREAM_ERROR;
- }
-
- /* Deallocate in reverse order of allocations: */
- TRY_FREE(strm, s->pending_buf);
- TRY_FREE(strm, s->head);
- TRY_FREE(strm, s->prev);
- TRY_FREE(strm, s->window);
-
- ZFREE(strm, s);
- strm->state = Z_NULL;
-
- return status == BUSY_STATE ? Z_DATA_ERROR : Z_OK;
-}
-
-/* =========================================================================
- * Copy the source state to the destination state.
- */
-int deflateCopy (dest, source)
- z_streamp dest;
- z_streamp source;
-{
- deflate_state *ds;
- deflate_state *ss;
- ushf *overlay;
-
- if (source == Z_NULL || dest == Z_NULL || source->state == Z_NULL)
- return Z_STREAM_ERROR;
- ss = (deflate_state *) source->state;
-
- zmemcpy(dest, source, sizeof(*dest));
-
- ds = (deflate_state *) ZALLOC(dest, 1, sizeof(deflate_state));
- if (ds == Z_NULL) return Z_MEM_ERROR;
- dest->state = (struct internal_state FAR *) ds;
- zmemcpy(ds, ss, sizeof(*ds));
- ds->strm = dest;
-
- ds->window = (Bytef *) ZALLOC(dest, ds->w_size, 2*sizeof(Byte));
- ds->prev = (Posf *) ZALLOC(dest, ds->w_size, sizeof(Pos));
- ds->head = (Posf *) ZALLOC(dest, ds->hash_size, sizeof(Pos));
- overlay = (ushf *) ZALLOC(dest, ds->lit_bufsize, sizeof(ush)+2);
- ds->pending_buf = (uchf *) overlay;
-
- if (ds->window == Z_NULL || ds->prev == Z_NULL || ds->head == Z_NULL ||
- ds->pending_buf == Z_NULL) {
- deflateEnd (dest);
- return Z_MEM_ERROR;
- }
- /* ??? following zmemcpy doesn't work for 16-bit MSDOS */
- zmemcpy(ds->window, ss->window, ds->w_size * 2 * sizeof(Byte));
- zmemcpy(ds->prev, ss->prev, ds->w_size * sizeof(Pos));
- zmemcpy(ds->head, ss->head, ds->hash_size * sizeof(Pos));
- zmemcpy(ds->pending_buf, ss->pending_buf, (uInt)ds->pending_buf_size);
-
- ds->pending_out = ds->pending_buf + (ss->pending_out - ss->pending_buf);
- ds->d_buf = overlay + ds->lit_bufsize/sizeof(ush);
- ds->l_buf = ds->pending_buf + (1+sizeof(ush))*ds->lit_bufsize;
-
- ds->l_desc.dyn_tree = ds->dyn_ltree;
- ds->d_desc.dyn_tree = ds->dyn_dtree;
- ds->bl_desc.dyn_tree = ds->bl_tree;
-
- return Z_OK;
-}
-
-/* ===========================================================================
- * Return the number of bytes of output which are immediately available
- * for output from the decompressor.
- */
-int deflateOutputPending (strm)
- z_streamp strm;
-{
- if (strm == Z_NULL || strm->state == Z_NULL) return 0;
-
- return ((deflate_state *)(strm->state))->pending;
-}
-
-/* ===========================================================================
- * Read a new buffer from the current input stream, update the adler32
- * and total number of bytes read. All deflate() input goes through
- * this function so some applications may wish to modify it to avoid
- * allocating a large strm->next_in buffer and copying from it.
- * (See also flush_pending()).
- */
-local int read_buf(strm, buf, size)
- z_streamp strm;
- charf *buf;
- unsigned size;
-{
- unsigned len = strm->avail_in;
-
- if (len > size) len = size;
- if (len == 0) return 0;
-
- strm->avail_in -= len;
-
- if (!((deflate_state *)(strm->state))->noheader) {
- strm->adler = adler32(strm->adler, strm->next_in, len);
- }
- zmemcpy(buf, strm->next_in, len);
- strm->next_in += len;
- strm->total_in += len;
-
- return (int)len;
-}
-
-/* ===========================================================================
- * Initialize the "longest match" routines for a new zlib stream
- */
-local void lm_init (s)
- deflate_state *s;
-{
- s->window_size = (ulg)2L*s->w_size;
-
- CLEAR_HASH(s);
-
- /* Set the default configuration parameters:
- */
- s->max_lazy_match = configuration_table[s->level].max_lazy;
- s->good_match = configuration_table[s->level].good_length;
- s->nice_match = configuration_table[s->level].nice_length;
- s->max_chain_length = configuration_table[s->level].max_chain;
-
- s->strstart = 0;
- s->block_start = 0L;
- s->lookahead = 0;
- s->match_length = s->prev_length = MIN_MATCH-1;
- s->match_available = 0;
- s->ins_h = 0;
-#ifdef ASMV
- match_init(); /* initialize the asm code */
-#endif
-}
-
-/* ===========================================================================
- * Set match_start to the longest match starting at the given string and
- * return its length. Matches shorter or equal to prev_length are discarded,
- * in which case the result is equal to prev_length and match_start is
- * garbage.
- * IN assertions: cur_match is the head of the hash chain for the current
- * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
- * OUT assertion: the match length is not greater than s->lookahead.
- */
-#ifndef ASMV
-/* For 80x86 and 680x0, an optimized version will be provided in match.asm or
- * match.S. The code will be functionally equivalent.
- */
-local uInt longest_match(s, cur_match)
- deflate_state *s;
- IPos cur_match; /* current match */
-{
- unsigned chain_length = s->max_chain_length;/* max hash chain length */
- register Bytef *scan = s->window + s->strstart; /* current string */
- register Bytef *match; /* matched string */
- register int len; /* length of current match */
- int best_len = s->prev_length; /* best match length so far */
- int nice_match = s->nice_match; /* stop if match long enough */
- IPos limit = s->strstart > (IPos)MAX_DIST(s) ?
- s->strstart - (IPos)MAX_DIST(s) : NIL;
- /* Stop when cur_match becomes <= limit. To simplify the code,
- * we prevent matches with the string of window index 0.
- */
- Posf *prev = s->prev;
- uInt wmask = s->w_mask;
-
-#ifdef UNALIGNED_OK
- /* Compare two bytes at a time. Note: this is not always beneficial.
- * Try with and without -DUNALIGNED_OK to check.
- */
- register Bytef *strend = s->window + s->strstart + MAX_MATCH - 1;
- register ush scan_start = *(ushf*)scan;
- register ush scan_end = *(ushf*)(scan+best_len-1);
-#else
- register Bytef *strend = s->window + s->strstart + MAX_MATCH;
- register Byte scan_end1 = scan[best_len-1];
- register Byte scan_end = scan[best_len];
-#endif
-
- /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
- * It is easy to get rid of this optimization if necessary.
- */
- Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever");
-
- /* Do not waste too much time if we already have a good match: */
- if (s->prev_length >= s->good_match) {
- chain_length >>= 2;
- }
- /* Do not look for matches beyond the end of the input. This is necessary
- * to make deflate deterministic.
- */
- if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead;
-
- Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead");
-
- do {
- Assert(cur_match < s->strstart, "no future");
- match = s->window + cur_match;
-
- /* Skip to next match if the match length cannot increase
- * or if the match length is less than 2:
- */
-#if (defined(UNALIGNED_OK) && MAX_MATCH == 258)
- /* This code assumes sizeof(unsigned short) == 2. Do not use
- * UNALIGNED_OK if your compiler uses a different size.
- */
- if (*(ushf*)(match+best_len-1) != scan_end ||
- *(ushf*)match != scan_start) continue;
-
- /* It is not necessary to compare scan[2] and match[2] since they are
- * always equal when the other bytes match, given that the hash keys
- * are equal and that HASH_BITS >= 8. Compare 2 bytes at a time at
- * strstart+3, +5, ... up to strstart+257. We check for insufficient
- * lookahead only every 4th comparison; the 128th check will be made
- * at strstart+257. If MAX_MATCH-2 is not a multiple of 8, it is
- * necessary to put more guard bytes at the end of the window, or
- * to check more often for insufficient lookahead.
- */
- Assert(scan[2] == match[2], "scan[2]?");
- scan++, match++;
- do {
- } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
- *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
- *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
- *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
- scan < strend);
- /* The funny "do {}" generates better code on most compilers */
-
- /* Here, scan <= window+strstart+257 */
- Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
- if (*scan == *match) scan++;
-
- len = (MAX_MATCH - 1) - (int)(strend-scan);
- scan = strend - (MAX_MATCH-1);
-
-#else /* UNALIGNED_OK */
-
- if (match[best_len] != scan_end ||
- match[best_len-1] != scan_end1 ||
- *match != *scan ||
- *++match != scan[1]) continue;
-
- /* The check at best_len-1 can be removed because it will be made
- * again later. (This heuristic is not always a win.)
- * It is not necessary to compare scan[2] and match[2] since they
- * are always equal when the other bytes match, given that
- * the hash keys are equal and that HASH_BITS >= 8.
- */
- scan += 2, match++;
- Assert(*scan == *match, "match[2]?");
-
- /* We check for insufficient lookahead only every 8th comparison;
- * the 256th check will be made at strstart+258.
- */
- do {
- } while (*++scan == *++match && *++scan == *++match &&
- *++scan == *++match && *++scan == *++match &&
- *++scan == *++match && *++scan == *++match &&
- *++scan == *++match && *++scan == *++match &&
- scan < strend);
-
- Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
-
- len = MAX_MATCH - (int)(strend - scan);
- scan = strend - MAX_MATCH;
-
-#endif /* UNALIGNED_OK */
-
- if (len > best_len) {
- s->match_start = cur_match;
- best_len = len;
- if (len >= nice_match) break;
-#ifdef UNALIGNED_OK
- scan_end = *(ushf*)(scan+best_len-1);
-#else
- scan_end1 = scan[best_len-1];
- scan_end = scan[best_len];
-#endif
- }
- } while ((cur_match = prev[cur_match & wmask]) > limit
- && --chain_length != 0);
-
- if ((uInt)best_len <= s->lookahead) return best_len;
- return s->lookahead;
-}
-#endif /* ASMV */
-
-#ifdef DEBUG_ZLIB
-/* ===========================================================================
- * Check that the match at match_start is indeed a match.
- */
-local void check_match(s, start, match, length)
- deflate_state *s;
- IPos start, match;
- int length;
-{
- /* check that the match is indeed a match */
- if (zmemcmp((charf *)s->window + match,
- (charf *)s->window + start, length) != EQUAL) {
- fprintf(stderr, " start %u, match %u, length %d\n",
- start, match, length);
- do {
- fprintf(stderr, "%c%c", s->window[match++], s->window[start++]);
- } while (--length != 0);
- z_error("invalid match");
- }
- if (z_verbose > 1) {
- fprintf(stderr,"\\[%d,%d]", start-match, length);
- do { putc(s->window[start++], stderr); } while (--length != 0);
- }
-}
-#else
-# define check_match(s, start, match, length)
-#endif
-
-/* ===========================================================================
- * Fill the window when the lookahead becomes insufficient.
- * Updates strstart and lookahead.
- *
- * IN assertion: lookahead < MIN_LOOKAHEAD
- * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD
- * At least one byte has been read, or avail_in == 0; reads are
- * performed for at least two bytes (required for the zip translate_eol
- * option -- not supported here).
- */
-local void fill_window(s)
- deflate_state *s;
-{
- register unsigned n, m;
- register Posf *p;
- unsigned more; /* Amount of free space at the end of the window. */
- uInt wsize = s->w_size;
-
- do {
- more = (unsigned)(s->window_size -(ulg)s->lookahead -(ulg)s->strstart);
-
- /* Deal with !@#$% 64K limit: */
- if (more == 0 && s->strstart == 0 && s->lookahead == 0) {
- more = wsize;
-
- } else if (more == (unsigned)(-1)) {
- /* Very unlikely, but possible on 16 bit machine if strstart == 0
- * and lookahead == 1 (input done one byte at time)
- */
- more--;
-
- /* If the window is almost full and there is insufficient lookahead,
- * move the upper half to the lower one to make room in the upper half.
- */
- } else if (s->strstart >= wsize+MAX_DIST(s)) {
-
- zmemcpy((charf *)s->window, (charf *)s->window+wsize,
- (unsigned)wsize);
- s->match_start -= wsize;
- s->strstart -= wsize; /* we now have strstart >= MAX_DIST */
- s->block_start -= (long) wsize;
-
- /* Slide the hash table (could be avoided with 32 bit values
- at the expense of memory usage). We slide even when level == 0
- to keep the hash table consistent if we switch back to level > 0
- later. (Using level 0 permanently is not an optimal usage of
- zlib, so we don't care about this pathological case.)
- */
- n = s->hash_size;
- p = &s->head[n];
- do {
- m = *--p;
- *p = (Pos)(m >= wsize ? m-wsize : NIL);
- } while (--n);
-
- n = wsize;
- p = &s->prev[n];
- do {
- m = *--p;
- *p = (Pos)(m >= wsize ? m-wsize : NIL);
- /* If n is not on any hash chain, prev[n] is garbage but
- * its value will never be used.
- */
- } while (--n);
- more += wsize;
- }
- if (s->strm->avail_in == 0) return;
-
- /* If there was no sliding:
- * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&
- * more == window_size - lookahead - strstart
- * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)
- * => more >= window_size - 2*WSIZE + 2
- * In the BIG_MEM or MMAP case (not yet supported),
- * window_size == input_size + MIN_LOOKAHEAD &&
- * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.
- * Otherwise, window_size == 2*WSIZE so more >= 2.
- * If there was sliding, more >= WSIZE. So in all cases, more >= 2.
- */
- Assert(more >= 2, "more < 2");
-
- n = read_buf(s->strm, (charf *)s->window + s->strstart + s->lookahead,
- more);
- s->lookahead += n;
-
- /* Initialize the hash value now that we have some input: */
- if (s->lookahead >= MIN_MATCH) {
- s->ins_h = s->window[s->strstart];
- UPDATE_HASH(s, s->ins_h, s->window[s->strstart+1]);
-#if MIN_MATCH != 3
- Call UPDATE_HASH() MIN_MATCH-3 more times
-#endif
- }
- /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,
- * but this is not important since only literal bytes will be emitted.
- */
-
- } while (s->lookahead < MIN_LOOKAHEAD && s->strm->avail_in != 0);
-}
-
-/* ===========================================================================
- * Flush the current block, with given end-of-file flag.
- * IN assertion: strstart is set to the end of the current match.
- */
-#define FLUSH_BLOCK_ONLY(s, eof) { \
- _tr_flush_block(s, (s->block_start >= 0L ? \
- (charf *)&s->window[(unsigned)s->block_start] : \
- (charf *)Z_NULL), \
- (ulg)((long)s->strstart - s->block_start), \
- (eof)); \
- s->block_start = s->strstart; \
- flush_pending(s->strm); \
- Tracev((stderr,"[FLUSH]")); \
-}
-
-/* Same but force premature exit if necessary. */
-#define FLUSH_BLOCK(s, eof) { \
- FLUSH_BLOCK_ONLY(s, eof); \
- if (s->strm->avail_out == 0) return (eof) ? finish_started : need_more; \
-}
-
-/* ===========================================================================
- * Copy without compression as much as possible from the input stream, return
- * the current block state.
- * This function does not insert new strings in the dictionary since
- * uncompressible data is probably not useful. This function is used
- * only for the level=0 compression option.
- * NOTE: this function should be optimized to avoid extra copying from
- * window to pending_buf.
- */
-local block_state deflate_stored(s, flush)
- deflate_state *s;
- int flush;
-{
- /* Stored blocks are limited to 0xffff bytes, pending_buf is limited
- * to pending_buf_size, and each stored block has a 5 byte header:
- */
- ulg max_block_size = 0xffff;
- ulg max_start;
-
- if (max_block_size > s->pending_buf_size - 5) {
- max_block_size = s->pending_buf_size - 5;
- }
-
- /* Copy as much as possible from input to output: */
- for (;;) {
- /* Fill the window as much as possible: */
- if (s->lookahead <= 1) {
-
- Assert(s->strstart < s->w_size+MAX_DIST(s) ||
- s->block_start >= (long)s->w_size, "slide too late");
-
- fill_window(s);
- if (s->lookahead == 0 && flush == Z_NO_FLUSH) return need_more;
-
- if (s->lookahead == 0) break; /* flush the current block */
- }
- Assert(s->block_start >= 0L, "block gone");
-
- s->strstart += s->lookahead;
- s->lookahead = 0;
-
- /* Emit a stored block if pending_buf will be full: */
- max_start = s->block_start + max_block_size;
- if (s->strstart == 0 || (ulg)s->strstart >= max_start) {
- /* strstart == 0 is possible when wraparound on 16-bit machine */
- s->lookahead = (uInt)(s->strstart - max_start);
- s->strstart = (uInt)max_start;
- FLUSH_BLOCK(s, 0);
- }
- /* Flush if we may have to slide, otherwise block_start may become
- * negative and the data will be gone:
- */
- if (s->strstart - (uInt)s->block_start >= MAX_DIST(s)) {
- FLUSH_BLOCK(s, 0);
- }
- }
- FLUSH_BLOCK(s, flush == Z_FINISH);
- return flush == Z_FINISH ? finish_done : block_done;
-}
-
-/* ===========================================================================
- * Compress as much as possible from the input stream, return the current
- * block state.
- * This function does not perform lazy evaluation of matches and inserts
- * new strings in the dictionary only for unmatched strings or for short
- * matches. It is used only for the fast compression options.
- */
-local block_state deflate_fast(s, flush)
- deflate_state *s;
- int flush;
-{
- IPos hash_head = NIL; /* head of the hash chain */
- int bflush; /* set if current block must be flushed */
-
- for (;;) {
- /* Make sure that we always have enough lookahead, except
- * at the end of the input file. We need MAX_MATCH bytes
- * for the next match, plus MIN_MATCH bytes to insert the
- * string following the next match.
- */
- if (s->lookahead < MIN_LOOKAHEAD) {
- fill_window(s);
- if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) {
- return need_more;
- }
- if (s->lookahead == 0) break; /* flush the current block */
- }
-
- /* Insert the string window[strstart .. strstart+2] in the
- * dictionary, and set hash_head to the head of the hash chain:
- */
- if (s->lookahead >= MIN_MATCH) {
- INSERT_STRING(s, s->strstart, hash_head);
- }
-
- /* Find the longest match, discarding those <= prev_length.
- * At this point we have always match_length < MIN_MATCH
- */
- if (hash_head != NIL && s->strstart - hash_head <= MAX_DIST(s)) {
- /* To simplify the code, we prevent matches with the string
- * of window index 0 (in particular we have to avoid a match
- * of the string with itself at the start of the input file).
- */
- if (s->strategy != Z_HUFFMAN_ONLY) {
- s->match_length = longest_match (s, hash_head);
- }
- /* longest_match() sets match_start */
- }
- if (s->match_length >= MIN_MATCH) {
- check_match(s, s->strstart, s->match_start, s->match_length);
-
- bflush = _tr_tally(s, s->strstart - s->match_start,
- s->match_length - MIN_MATCH);
-
- s->lookahead -= s->match_length;
-
- /* Insert new strings in the hash table only if the match length
- * is not too large. This saves time but degrades compression.
- */
- if (s->match_length <= s->max_insert_length &&
- s->lookahead >= MIN_MATCH) {
- s->match_length--; /* string at strstart already in hash table */
- do {
- s->strstart++;
- INSERT_STRING(s, s->strstart, hash_head);
- /* strstart never exceeds WSIZE-MAX_MATCH, so there are
- * always MIN_MATCH bytes ahead.
- */
- } while (--s->match_length != 0);
- s->strstart++;
- } else {
- s->strstart += s->match_length;
- s->match_length = 0;
- s->ins_h = s->window[s->strstart];
- UPDATE_HASH(s, s->ins_h, s->window[s->strstart+1]);
-#if MIN_MATCH != 3
- Call UPDATE_HASH() MIN_MATCH-3 more times
-#endif
- /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not
- * matter since it will be recomputed at next deflate call.
- */
- }
- } else {
- /* No match, output a literal byte */
- Tracevv((stderr,"%c", s->window[s->strstart]));
- bflush = _tr_tally (s, 0, s->window[s->strstart]);
- s->lookahead--;
- s->strstart++;
- }
- if (bflush) FLUSH_BLOCK(s, 0);
- }
- FLUSH_BLOCK(s, flush == Z_FINISH);
- return flush == Z_FINISH ? finish_done : block_done;
-}
-
-/* ===========================================================================
- * Same as above, but achieves better compression. We use a lazy
- * evaluation for matches: a match is finally adopted only if there is
- * no better match at the next window position.
- */
-local block_state deflate_slow(s, flush)
- deflate_state *s;
- int flush;
-{
- IPos hash_head = NIL; /* head of hash chain */
- int bflush; /* set if current block must be flushed */
-
- /* Process the input block. */
- for (;;) {
- /* Make sure that we always have enough lookahead, except
- * at the end of the input file. We need MAX_MATCH bytes
- * for the next match, plus MIN_MATCH bytes to insert the
- * string following the next match.
- */
- if (s->lookahead < MIN_LOOKAHEAD) {
- fill_window(s);
- if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) {
- return need_more;
- }
- if (s->lookahead == 0) break; /* flush the current block */
- }
-
- /* Insert the string window[strstart .. strstart+2] in the
- * dictionary, and set hash_head to the head of the hash chain:
- */
- if (s->lookahead >= MIN_MATCH) {
- INSERT_STRING(s, s->strstart, hash_head);
- }
-
- /* Find the longest match, discarding those <= prev_length.
- */
- s->prev_length = s->match_length, s->prev_match = s->match_start;
- s->match_length = MIN_MATCH-1;
-
- if (hash_head != NIL && s->prev_length < s->max_lazy_match &&
- s->strstart - hash_head <= MAX_DIST(s)) {
- /* To simplify the code, we prevent matches with the string
- * of window index 0 (in particular we have to avoid a match
- * of the string with itself at the start of the input file).
- */
- if (s->strategy != Z_HUFFMAN_ONLY) {
- s->match_length = longest_match (s, hash_head);
- }
- /* longest_match() sets match_start */
-
- if (s->match_length <= 5 && (s->strategy == Z_FILTERED ||
- (s->match_length == MIN_MATCH &&
- s->strstart - s->match_start > TOO_FAR))) {
-
- /* If prev_match is also MIN_MATCH, match_start is garbage
- * but we will ignore the current match anyway.
- */
- s->match_length = MIN_MATCH-1;
- }
- }
- /* If there was a match at the previous step and the current
- * match is not better, output the previous match:
- */
- if (s->prev_length >= MIN_MATCH && s->match_length <= s->prev_length) {
- uInt max_insert = s->strstart + s->lookahead - MIN_MATCH;
- /* Do not insert strings in hash table beyond this. */
-
- check_match(s, s->strstart-1, s->prev_match, s->prev_length);
-
- bflush = _tr_tally(s, s->strstart -1 - s->prev_match,
- s->prev_length - MIN_MATCH);
-
- /* Insert in hash table all strings up to the end of the match.
- * strstart-1 and strstart are already inserted. If there is not
- * enough lookahead, the last two strings are not inserted in
- * the hash table.
- */
- s->lookahead -= s->prev_length-1;
- s->prev_length -= 2;
- do {
- if (++s->strstart <= max_insert) {
- INSERT_STRING(s, s->strstart, hash_head);
- }
- } while (--s->prev_length != 0);
- s->match_available = 0;
- s->match_length = MIN_MATCH-1;
- s->strstart++;
-
- if (bflush) FLUSH_BLOCK(s, 0);
-
- } else if (s->match_available) {
- /* If there was no match at the previous position, output a
- * single literal. If there was a match but the current match
- * is longer, truncate the previous match to a single literal.
- */
- Tracevv((stderr,"%c", s->window[s->strstart-1]));
- if (_tr_tally (s, 0, s->window[s->strstart-1])) {
- FLUSH_BLOCK_ONLY(s, 0);
- }
- s->strstart++;
- s->lookahead--;
- if (s->strm->avail_out == 0) return need_more;
- } else {
- /* There is no previous match to compare with, wait for
- * the next step to decide.
- */
- s->match_available = 1;
- s->strstart++;
- s->lookahead--;
- }
- }
- Assert (flush != Z_NO_FLUSH, "no flush?");
- if (s->match_available) {
- Tracevv((stderr,"%c", s->window[s->strstart-1]));
- _tr_tally (s, 0, s->window[s->strstart-1]);
- s->match_available = 0;
- }
- FLUSH_BLOCK(s, flush == Z_FINISH);
- return flush == Z_FINISH ? finish_done : block_done;
-}
-/* --- deflate.c */
-
-/* +++ trees.c */
-/* trees.c -- output deflated data using Huffman coding
- * Copyright (C) 1995-1996 Jean-loup Gailly
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/*
- * ALGORITHM
- *
- * The "deflation" process uses several Huffman trees. The more
- * common source values are represented by shorter bit sequences.
- *
- * Each code tree is stored in a compressed form which is itself
- * a Huffman encoding of the lengths of all the code strings (in
- * ascending order by source values). The actual code strings are
- * reconstructed from the lengths in the inflate process, as described
- * in the deflate specification.
- *
- * REFERENCES
- *
- * Deutsch, L.P.,"'Deflate' Compressed Data Format Specification".
- * Available in ftp.uu.net:/pub/archiving/zip/doc/deflate-1.1.doc
- *
- * Storer, James A.
- * Data Compression: Methods and Theory, pp. 49-50.
- * Computer Science Press, 1988. ISBN 0-7167-8156-5.
- *
- * Sedgewick, R.
- * Algorithms, p290.
- * Addison-Wesley, 1983. ISBN 0-201-06672-6.
- */
-
-/* From: trees.c,v 1.11 1996/07/24 13:41:06 me Exp $ */
-
-/* #include "deflate.h" */
-
-#ifdef DEBUG_ZLIB
-# include <ctype.h>
-#endif
-
-/* ===========================================================================
- * Constants
- */
-
-#define MAX_BL_BITS 7
-/* Bit length codes must not exceed MAX_BL_BITS bits */
-
-#define END_BLOCK 256
-/* end of block literal code */
-
-#define REP_3_6 16
-/* repeat previous bit length 3-6 times (2 bits of repeat count) */
-
-#define REPZ_3_10 17
-/* repeat a zero length 3-10 times (3 bits of repeat count) */
-
-#define REPZ_11_138 18
-/* repeat a zero length 11-138 times (7 bits of repeat count) */
-
-local int extra_lbits[LENGTH_CODES] /* extra bits for each length code */
- = {0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0};
-
-local int extra_dbits[D_CODES] /* extra bits for each distance code */
- = {0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13};
-
-local int extra_blbits[BL_CODES]/* extra bits for each bit length code */
- = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7};
-
-local uch bl_order[BL_CODES]
- = {16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15};
-/* The lengths of the bit length codes are sent in order of decreasing
- * probability, to avoid transmitting the lengths for unused bit length codes.
- */
-
-#define Buf_size (8 * 2*sizeof(char))
-/* Number of bits used within bi_buf. (bi_buf might be implemented on
- * more than 16 bits on some systems.)
- */
-
-/* ===========================================================================
- * Local data. These are initialized only once.
- */
-
-local ct_data static_ltree[L_CODES+2];
-/* The static literal tree. Since the bit lengths are imposed, there is no
- * need for the L_CODES extra codes used during heap construction. However
- * The codes 286 and 287 are needed to build a canonical tree (see _tr_init
- * below).
- */
-
-local ct_data static_dtree[D_CODES];
-/* The static distance tree. (Actually a trivial tree since all codes use
- * 5 bits.)
- */
-
-local uch dist_code[512];
-/* distance codes. The first 256 values correspond to the distances
- * 3 .. 258, the last 256 values correspond to the top 8 bits of
- * the 15 bit distances.
- */
-
-local uch length_code[MAX_MATCH-MIN_MATCH+1];
-/* length code for each normalized match length (0 == MIN_MATCH) */
-
-local int base_length[LENGTH_CODES];
-/* First normalized length for each code (0 = MIN_MATCH) */
-
-local int base_dist[D_CODES];
-/* First normalized distance for each code (0 = distance of 1) */
-
-struct static_tree_desc_s {
- ct_data *static_tree; /* static tree or NULL */
- intf *extra_bits; /* extra bits for each code or NULL */
- int extra_base; /* base index for extra_bits */
- int elems; /* max number of elements in the tree */
- int max_length; /* max bit length for the codes */
-};
-
-local static_tree_desc static_l_desc =
-{static_ltree, extra_lbits, LITERALS+1, L_CODES, MAX_BITS};
-
-local static_tree_desc static_d_desc =
-{static_dtree, extra_dbits, 0, D_CODES, MAX_BITS};
-
-local static_tree_desc static_bl_desc =
-{(ct_data *)0, extra_blbits, 0, BL_CODES, MAX_BL_BITS};
-
-/* ===========================================================================
- * Local (static) routines in this file.
- */
-
-local void tr_static_init OF((void));
-local void init_block OF((deflate_state *s));
-local void pqdownheap OF((deflate_state *s, ct_data *tree, int k));
-local void gen_bitlen OF((deflate_state *s, tree_desc *desc));
-local void gen_codes OF((ct_data *tree, int max_code, ushf *bl_count));
-local void build_tree OF((deflate_state *s, tree_desc *desc));
-local void scan_tree OF((deflate_state *s, ct_data *tree, int max_code));
-local void send_tree OF((deflate_state *s, ct_data *tree, int max_code));
-local int build_bl_tree OF((deflate_state *s));
-local void send_all_trees OF((deflate_state *s, int lcodes, int dcodes,
- int blcodes));
-local void compress_block OF((deflate_state *s, ct_data *ltree,
- ct_data *dtree));
-local void set_data_type OF((deflate_state *s));
-local unsigned bi_reverse OF((unsigned value, int length));
-local void bi_windup OF((deflate_state *s));
-local void bi_flush OF((deflate_state *s));
-local void copy_block OF((deflate_state *s, charf *buf, unsigned len,
- int header));
-
-#ifndef DEBUG_ZLIB
-# define send_code(s, c, tree) send_bits(s, tree[c].Code, tree[c].Len)
- /* Send a code of the given tree. c and tree must not have side effects */
-
-#else /* DEBUG_ZLIB */
-# define send_code(s, c, tree) \
- { if (verbose>2) fprintf(stderr,"\ncd %3d ",(c)); \
- send_bits(s, tree[c].Code, tree[c].Len); }
-#endif
-
-#define d_code(dist) \
- ((dist) < 256 ? dist_code[dist] : dist_code[256+((dist)>>7)])
-/* Mapping from a distance to a distance code. dist is the distance - 1 and
- * must not have side effects. dist_code[256] and dist_code[257] are never
- * used.
- */
-
-/* ===========================================================================
- * Output a short LSB first on the stream.
- * IN assertion: there is enough room in pendingBuf.
- */
-#define put_short(s, w) { \
- put_byte(s, (uch)((w) & 0xff)); \
- put_byte(s, (uch)((ush)(w) >> 8)); \
-}
-
-/* ===========================================================================
- * Send a value on a given number of bits.
- * IN assertion: length <= 16 and value fits in length bits.
- */
-#ifdef DEBUG_ZLIB
-local void send_bits OF((deflate_state *s, int value, int length));
-
-local void send_bits(s, value, length)
- deflate_state *s;
- int value; /* value to send */
- int length; /* number of bits */
-{
- Tracevv((stderr," l %2d v %4x ", length, value));
- Assert(length > 0 && length <= 15, "invalid length");
- s->bits_sent += (ulg)length;
-
- /* If not enough room in bi_buf, use (valid) bits from bi_buf and
- * (16 - bi_valid) bits from value, leaving (width - (16-bi_valid))
- * unused bits in value.
- */
- if (s->bi_valid > (int)Buf_size - length) {
- s->bi_buf |= (value << s->bi_valid);
- put_short(s, s->bi_buf);
- s->bi_buf = (ush)value >> (Buf_size - s->bi_valid);
- s->bi_valid += length - Buf_size;
- } else {
- s->bi_buf |= value << s->bi_valid;
- s->bi_valid += length;
- }
-}
-#else /* !DEBUG_ZLIB */
-
-#define send_bits(s, value, length) \
-{ int len = length;\
- if (s->bi_valid > (int)Buf_size - len) {\
- int val = value;\
- s->bi_buf |= (val << s->bi_valid);\
- put_short(s, s->bi_buf);\
- s->bi_buf = (ush)val >> (Buf_size - s->bi_valid);\
- s->bi_valid += len - Buf_size;\
- } else {\
- s->bi_buf |= (value) << s->bi_valid;\
- s->bi_valid += len;\
- }\
-}
-#endif /* DEBUG_ZLIB */
-
-
-#define MAX(a,b) (a >= b ? a : b)
-/* the arguments must not have side effects */
-
-/* ===========================================================================
- * Initialize the various 'constant' tables. In a multi-threaded environment,
- * this function may be called by two threads concurrently, but this is
- * harmless since both invocations do exactly the same thing.
- */
-local void tr_static_init()
-{
- static int static_init_done = 0;
- int n; /* iterates over tree elements */
- int bits; /* bit counter */
- int length; /* length value */
- int code; /* code value */
- int dist; /* distance index */
- ush bl_count[MAX_BITS+1];
- /* number of codes at each bit length for an optimal tree */
-
- if (static_init_done) return;
-
- /* Initialize the mapping length (0..255) -> length code (0..28) */
- length = 0;
- for (code = 0; code < LENGTH_CODES-1; code++) {
- base_length[code] = length;
- for (n = 0; n < (1<<extra_lbits[code]); n++) {
- length_code[length++] = (uch)code;
- }
- }
- Assert (length == 256, "tr_static_init: length != 256");
- /* Note that the length 255 (match length 258) can be represented
- * in two different ways: code 284 + 5 bits or code 285, so we
- * overwrite length_code[255] to use the best encoding:
- */
- length_code[length-1] = (uch)code;
-
- /* Initialize the mapping dist (0..32K) -> dist code (0..29) */
- dist = 0;
- for (code = 0 ; code < 16; code++) {
- base_dist[code] = dist;
- for (n = 0; n < (1<<extra_dbits[code]); n++) {
- dist_code[dist++] = (uch)code;
- }
- }
- Assert (dist == 256, "tr_static_init: dist != 256");
- dist >>= 7; /* from now on, all distances are divided by 128 */
- for ( ; code < D_CODES; code++) {
- base_dist[code] = dist << 7;
- for (n = 0; n < (1<<(extra_dbits[code]-7)); n++) {
- dist_code[256 + dist++] = (uch)code;
- }
- }
- Assert (dist == 256, "tr_static_init: 256+dist != 512");
-
- /* Construct the codes of the static literal tree */
- for (bits = 0; bits <= MAX_BITS; bits++) bl_count[bits] = 0;
- n = 0;
- while (n <= 143) static_ltree[n++].Len = 8, bl_count[8]++;
- while (n <= 255) static_ltree[n++].Len = 9, bl_count[9]++;
- while (n <= 279) static_ltree[n++].Len = 7, bl_count[7]++;
- while (n <= 287) static_ltree[n++].Len = 8, bl_count[8]++;
- /* Codes 286 and 287 do not exist, but we must include them in the
- * tree construction to get a canonical Huffman tree (longest code
- * all ones)
- */
- gen_codes((ct_data *)static_ltree, L_CODES+1, bl_count);
-
- /* The static distance tree is trivial: */
- for (n = 0; n < D_CODES; n++) {
- static_dtree[n].Len = 5;
- static_dtree[n].Code = bi_reverse((unsigned)n, 5);
- }
- static_init_done = 1;
-}
-
-/* ===========================================================================
- * Initialize the tree data structures for a new zlib stream.
- */
-void _tr_init(s)
- deflate_state *s;
-{
- tr_static_init();
-
- s->compressed_len = 0L;
-
- s->l_desc.dyn_tree = s->dyn_ltree;
- s->l_desc.stat_desc = &static_l_desc;
-
- s->d_desc.dyn_tree = s->dyn_dtree;
- s->d_desc.stat_desc = &static_d_desc;
-
- s->bl_desc.dyn_tree = s->bl_tree;
- s->bl_desc.stat_desc = &static_bl_desc;
-
- s->bi_buf = 0;
- s->bi_valid = 0;
- s->last_eob_len = 8; /* enough lookahead for inflate */
-#ifdef DEBUG_ZLIB
- s->bits_sent = 0L;
-#endif
-
- /* Initialize the first block of the first file: */
- init_block(s);
-}
-
-/* ===========================================================================
- * Initialize a new block.
- */
-local void init_block(s)
- deflate_state *s;
-{
- int n; /* iterates over tree elements */
-
- /* Initialize the trees. */
- for (n = 0; n < L_CODES; n++) s->dyn_ltree[n].Freq = 0;
- for (n = 0; n < D_CODES; n++) s->dyn_dtree[n].Freq = 0;
- for (n = 0; n < BL_CODES; n++) s->bl_tree[n].Freq = 0;
-
- s->dyn_ltree[END_BLOCK].Freq = 1;
- s->opt_len = s->static_len = 0L;
- s->last_lit = s->matches = 0;
-}
-
-#define SMALLEST 1
-/* Index within the heap array of least frequent node in the Huffman tree */
-
-
-/* ===========================================================================
- * Remove the smallest element from the heap and recreate the heap with
- * one less element. Updates heap and heap_len.
- */
-#define pqremove(s, tree, top) \
-{\
- top = s->heap[SMALLEST]; \
- s->heap[SMALLEST] = s->heap[s->heap_len--]; \
- pqdownheap(s, tree, SMALLEST); \
-}
-
-/* ===========================================================================
- * Compares to subtrees, using the tree depth as tie breaker when
- * the subtrees have equal frequency. This minimizes the worst case length.
- */
-#define smaller(tree, n, m, depth) \
- (tree[n].Freq < tree[m].Freq || \
- (tree[n].Freq == tree[m].Freq && depth[n] <= depth[m]))
-
-/* ===========================================================================
- * Restore the heap property by moving down the tree starting at node k,
- * exchanging a node with the smallest of its two sons if necessary, stopping
- * when the heap property is re-established (each father smaller than its
- * two sons).
- */
-local void pqdownheap(s, tree, k)
- deflate_state *s;
- ct_data *tree; /* the tree to restore */
- int k; /* node to move down */
-{
- int v = s->heap[k];
- int j = k << 1; /* left son of k */
- while (j <= s->heap_len) {
- /* Set j to the smallest of the two sons: */
- if (j < s->heap_len &&
- smaller(tree, s->heap[j+1], s->heap[j], s->depth)) {
- j++;
- }
- /* Exit if v is smaller than both sons */
- if (smaller(tree, v, s->heap[j], s->depth)) break;
-
- /* Exchange v with the smallest son */
- s->heap[k] = s->heap[j]; k = j;
-
- /* And continue down the tree, setting j to the left son of k */
- j <<= 1;
- }
- s->heap[k] = v;
-}
-
-/* ===========================================================================
- * Compute the optimal bit lengths for a tree and update the total bit length
- * for the current block.
- * IN assertion: the fields freq and dad are set, heap[heap_max] and
- * above are the tree nodes sorted by increasing frequency.
- * OUT assertions: the field len is set to the optimal bit length, the
- * array bl_count contains the frequencies for each bit length.
- * The length opt_len is updated; static_len is also updated if stree is
- * not null.
- */
-local void gen_bitlen(s, desc)
- deflate_state *s;
- tree_desc *desc; /* the tree descriptor */
-{
- ct_data *tree = desc->dyn_tree;
- int max_code = desc->max_code;
- ct_data *stree = desc->stat_desc->static_tree;
- intf *extra = desc->stat_desc->extra_bits;
- int base = desc->stat_desc->extra_base;
- int max_length = desc->stat_desc->max_length;
- int h; /* heap index */
- int n, m; /* iterate over the tree elements */
- int bits; /* bit length */
- int xbits; /* extra bits */
- ush f; /* frequency */
- int overflow = 0; /* number of elements with bit length too large */
-
- for (bits = 0; bits <= MAX_BITS; bits++) s->bl_count[bits] = 0;
-
- /* In a first pass, compute the optimal bit lengths (which may
- * overflow in the case of the bit length tree).
- */
- tree[s->heap[s->heap_max]].Len = 0; /* root of the heap */
-
- for (h = s->heap_max+1; h < HEAP_SIZE; h++) {
- n = s->heap[h];
- bits = tree[tree[n].Dad].Len + 1;
- if (bits > max_length) bits = max_length, overflow++;
- tree[n].Len = (ush)bits;
- /* We overwrite tree[n].Dad which is no longer needed */
-
- if (n > max_code) continue; /* not a leaf node */
-
- s->bl_count[bits]++;
- xbits = 0;
- if (n >= base) xbits = extra[n-base];
- f = tree[n].Freq;
- s->opt_len += (ulg)f * (bits + xbits);
- if (stree) s->static_len += (ulg)f * (stree[n].Len + xbits);
- }
- if (overflow == 0) return;
-
- Trace((stderr,"\nbit length overflow\n"));
- /* This happens for example on obj2 and pic of the Calgary corpus */
-
- /* Find the first bit length which could increase: */
- do {
- bits = max_length-1;
- while (s->bl_count[bits] == 0) bits--;
- s->bl_count[bits]--; /* move one leaf down the tree */
- s->bl_count[bits+1] += 2; /* move one overflow item as its brother */
- s->bl_count[max_length]--;
- /* The brother of the overflow item also moves one step up,
- * but this does not affect bl_count[max_length]
- */
- overflow -= 2;
- } while (overflow > 0);
-
- /* Now recompute all bit lengths, scanning in increasing frequency.
- * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all
- * lengths instead of fixing only the wrong ones. This idea is taken
- * from 'ar' written by Haruhiko Okumura.)
- */
- for (bits = max_length; bits != 0; bits--) {
- n = s->bl_count[bits];
- while (n != 0) {
- m = s->heap[--h];
- if (m > max_code) continue;
- if (tree[m].Len != (unsigned) bits) {
- Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits));
- s->opt_len += ((long)bits - (long)tree[m].Len)
- *(long)tree[m].Freq;
- tree[m].Len = (ush)bits;
- }
- n--;
- }
- }
-}
-
-/* ===========================================================================
- * Generate the codes for a given tree and bit counts (which need not be
- * optimal).
- * IN assertion: the array bl_count contains the bit length statistics for
- * the given tree and the field len is set for all tree elements.
- * OUT assertion: the field code is set for all tree elements of non
- * zero code length.
- */
-local void gen_codes (tree, max_code, bl_count)
- ct_data *tree; /* the tree to decorate */
- int max_code; /* largest code with non zero frequency */
- ushf *bl_count; /* number of codes at each bit length */
-{
- ush next_code[MAX_BITS+1]; /* next code value for each bit length */
- ush code = 0; /* running code value */
- int bits; /* bit index */
- int n; /* code index */
-
- /* The distribution counts are first used to generate the code values
- * without bit reversal.
- */
- for (bits = 1; bits <= MAX_BITS; bits++) {
- next_code[bits] = code = (code + bl_count[bits-1]) << 1;
- }
- /* Check that the bit counts in bl_count are consistent. The last code
- * must be all ones.
- */
- Assert (code + bl_count[MAX_BITS]-1 == (1<<MAX_BITS)-1,
- "inconsistent bit counts");
- Tracev((stderr,"\ngen_codes: max_code %d ", max_code));
-
- for (n = 0; n <= max_code; n++) {
- int len = tree[n].Len;
- if (len == 0) continue;
- /* Now reverse the bits */
- tree[n].Code = bi_reverse(next_code[len]++, len);
-
- Tracecv(tree != static_ltree, (stderr,"\nn %3d %c l %2d c %4x (%x) ",
- n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));
- }
-}
-
-/* ===========================================================================
- * Construct one Huffman tree and assigns the code bit strings and lengths.
- * Update the total bit length for the current block.
- * IN assertion: the field freq is set for all tree elements.
- * OUT assertions: the fields len and code are set to the optimal bit length
- * and corresponding code. The length opt_len is updated; static_len is
- * also updated if stree is not null. The field max_code is set.
- */
-local void build_tree(s, desc)
- deflate_state *s;
- tree_desc *desc; /* the tree descriptor */
-{
- ct_data *tree = desc->dyn_tree;
- ct_data *stree = desc->stat_desc->static_tree;
- int elems = desc->stat_desc->elems;
- int n, m; /* iterate over heap elements */
- int max_code = -1; /* largest code with non zero frequency */
- int node; /* new node being created */
-
- /* Construct the initial heap, with least frequent element in
- * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].
- * heap[0] is not used.
- */
- s->heap_len = 0, s->heap_max = HEAP_SIZE;
-
- for (n = 0; n < elems; n++) {
- if (tree[n].Freq != 0) {
- s->heap[++(s->heap_len)] = max_code = n;
- s->depth[n] = 0;
- } else {
- tree[n].Len = 0;
- }
- }
-
- /* The pkzip format requires that at least one distance code exists,
- * and that at least one bit should be sent even if there is only one
- * possible code. So to avoid special checks later on we force at least
- * two codes of non zero frequency.
- */
- while (s->heap_len < 2) {
- node = s->heap[++(s->heap_len)] = (max_code < 2 ? ++max_code : 0);
- tree[node].Freq = 1;
- s->depth[node] = 0;
- s->opt_len--; if (stree) s->static_len -= stree[node].Len;
- /* node is 0 or 1 so it does not have extra bits */
- }
- desc->max_code = max_code;
-
- /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,
- * establish sub-heaps of increasing lengths:
- */
- for (n = s->heap_len/2; n >= 1; n--) pqdownheap(s, tree, n);
-
- /* Construct the Huffman tree by repeatedly combining the least two
- * frequent nodes.
- */
- node = elems; /* next internal node of the tree */
- do {
- pqremove(s, tree, n); /* n = node of least frequency */
- m = s->heap[SMALLEST]; /* m = node of next least frequency */
-
- s->heap[--(s->heap_max)] = n; /* keep the nodes sorted by frequency */
- s->heap[--(s->heap_max)] = m;
-
- /* Create a new node father of n and m */
- tree[node].Freq = tree[n].Freq + tree[m].Freq;
- s->depth[node] = (uch) (MAX(s->depth[n], s->depth[m]) + 1);
- tree[n].Dad = tree[m].Dad = (ush)node;
-#ifdef DUMP_BL_TREE
- if (tree == s->bl_tree) {
- fprintf(stderr,"\nnode %d(%d), sons %d(%d) %d(%d)",
- node, tree[node].Freq, n, tree[n].Freq, m, tree[m].Freq);
- }
-#endif
- /* and insert the new node in the heap */
- s->heap[SMALLEST] = node++;
- pqdownheap(s, tree, SMALLEST);
-
- } while (s->heap_len >= 2);
-
- s->heap[--(s->heap_max)] = s->heap[SMALLEST];
-
- /* At this point, the fields freq and dad are set. We can now
- * generate the bit lengths.
- */
- gen_bitlen(s, (tree_desc *)desc);
-
- /* The field len is now set, we can generate the bit codes */
- gen_codes ((ct_data *)tree, max_code, s->bl_count);
-}
-
-/* ===========================================================================
- * Scan a literal or distance tree to determine the frequencies of the codes
- * in the bit length tree.
- */
-local void scan_tree (s, tree, max_code)
- deflate_state *s;
- ct_data *tree; /* the tree to be scanned */
- int max_code; /* and its largest code of non zero frequency */
-{
- int n; /* iterates over all tree elements */
- int prevlen = -1; /* last emitted length */
- int curlen; /* length of current code */
- int nextlen = tree[0].Len; /* length of next code */
- int count = 0; /* repeat count of the current code */
- int max_count = 7; /* max repeat count */
- int min_count = 4; /* min repeat count */
-
- if (nextlen == 0) max_count = 138, min_count = 3;
- tree[max_code+1].Len = (ush)0xffff; /* guard */
-
- for (n = 0; n <= max_code; n++) {
- curlen = nextlen; nextlen = tree[n+1].Len;
- if (++count < max_count && curlen == nextlen) {
- continue;
- } else if (count < min_count) {
- s->bl_tree[curlen].Freq += count;
- } else if (curlen != 0) {
- if (curlen != prevlen) s->bl_tree[curlen].Freq++;
- s->bl_tree[REP_3_6].Freq++;
- } else if (count <= 10) {
- s->bl_tree[REPZ_3_10].Freq++;
- } else {
- s->bl_tree[REPZ_11_138].Freq++;
- }
- count = 0; prevlen = curlen;
- if (nextlen == 0) {
- max_count = 138, min_count = 3;
- } else if (curlen == nextlen) {
- max_count = 6, min_count = 3;
- } else {
- max_count = 7, min_count = 4;
- }
- }
-}
-
-/* ===========================================================================
- * Send a literal or distance tree in compressed form, using the codes in
- * bl_tree.
- */
-local void send_tree (s, tree, max_code)
- deflate_state *s;
- ct_data *tree; /* the tree to be scanned */
- int max_code; /* and its largest code of non zero frequency */
-{
- int n; /* iterates over all tree elements */
- int prevlen = -1; /* last emitted length */
- int curlen; /* length of current code */
- int nextlen = tree[0].Len; /* length of next code */
- int count = 0; /* repeat count of the current code */
- int max_count = 7; /* max repeat count */
- int min_count = 4; /* min repeat count */
-
- /* tree[max_code+1].Len = -1; */ /* guard already set */
- if (nextlen == 0) max_count = 138, min_count = 3;
-
- for (n = 0; n <= max_code; n++) {
- curlen = nextlen; nextlen = tree[n+1].Len;
- if (++count < max_count && curlen == nextlen) {
- continue;
- } else if (count < min_count) {
- do { send_code(s, curlen, s->bl_tree); } while (--count != 0);
-
- } else if (curlen != 0) {
- if (curlen != prevlen) {
- send_code(s, curlen, s->bl_tree); count--;
- }
- Assert(count >= 3 && count <= 6, " 3_6?");
- send_code(s, REP_3_6, s->bl_tree); send_bits(s, count-3, 2);
-
- } else if (count <= 10) {
- send_code(s, REPZ_3_10, s->bl_tree); send_bits(s, count-3, 3);
-
- } else {
- send_code(s, REPZ_11_138, s->bl_tree); send_bits(s, count-11, 7);
- }
- count = 0; prevlen = curlen;
- if (nextlen == 0) {
- max_count = 138, min_count = 3;
- } else if (curlen == nextlen) {
- max_count = 6, min_count = 3;
- } else {
- max_count = 7, min_count = 4;
- }
- }
-}
-
-/* ===========================================================================
- * Construct the Huffman tree for the bit lengths and return the index in
- * bl_order of the last bit length code to send.
- */
-local int build_bl_tree(s)
- deflate_state *s;
-{
- int max_blindex; /* index of last bit length code of non zero freq */
-
- /* Determine the bit length frequencies for literal and distance trees */
- scan_tree(s, (ct_data *)s->dyn_ltree, s->l_desc.max_code);
- scan_tree(s, (ct_data *)s->dyn_dtree, s->d_desc.max_code);
-
- /* Build the bit length tree: */
- build_tree(s, (tree_desc *)(&(s->bl_desc)));
- /* opt_len now includes the length of the tree representations, except
- * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.
- */
-
- /* Determine the number of bit length codes to send. The pkzip format
- * requires that at least 4 bit length codes be sent. (appnote.txt says
- * 3 but the actual value used is 4.)
- */
- for (max_blindex = BL_CODES-1; max_blindex >= 3; max_blindex--) {
- if (s->bl_tree[bl_order[max_blindex]].Len != 0) break;
- }
- /* Update opt_len to include the bit length tree and counts */
- s->opt_len += 3*(max_blindex+1) + 5+5+4;
- Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld",
- s->opt_len, s->static_len));
-
- return max_blindex;
-}
-
-/* ===========================================================================
- * Send the header for a block using dynamic Huffman trees: the counts, the
- * lengths of the bit length codes, the literal tree and the distance tree.
- * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.
- */
-local void send_all_trees(s, lcodes, dcodes, blcodes)
- deflate_state *s;
- int lcodes, dcodes, blcodes; /* number of codes for each tree */
-{
- int rank; /* index in bl_order */
-
- Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes");
- Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,
- "too many codes");
- Tracev((stderr, "\nbl counts: "));
- send_bits(s, lcodes-257, 5); /* not +255 as stated in appnote.txt */
- send_bits(s, dcodes-1, 5);
- send_bits(s, blcodes-4, 4); /* not -3 as stated in appnote.txt */
- for (rank = 0; rank < blcodes; rank++) {
- Tracev((stderr, "\nbl code %2d ", bl_order[rank]));
- send_bits(s, s->bl_tree[bl_order[rank]].Len, 3);
- }
- Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent));
-
- send_tree(s, (ct_data *)s->dyn_ltree, lcodes-1); /* literal tree */
- Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent));
-
- send_tree(s, (ct_data *)s->dyn_dtree, dcodes-1); /* distance tree */
- Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent));
-}
-
-/* ===========================================================================
- * Send a stored block
- */
-void _tr_stored_block(s, buf, stored_len, eof)
- deflate_state *s;
- charf *buf; /* input block */
- ulg stored_len; /* length of input block */
- int eof; /* true if this is the last block for a file */
-{
- send_bits(s, (STORED_BLOCK<<1)+eof, 3); /* send block type */
- s->compressed_len = (s->compressed_len + 3 + 7) & (ulg)~7L;
- s->compressed_len += (stored_len + 4) << 3;
-
- copy_block(s, buf, (unsigned)stored_len, 1); /* with header */
-}
-
-/* Send just the `stored block' type code without any length bytes or data.
- */
-void _tr_stored_type_only(s)
- deflate_state *s;
-{
- send_bits(s, (STORED_BLOCK << 1), 3);
- bi_windup(s);
- s->compressed_len = (s->compressed_len + 3) & ~7L;
-}
-
-
-/* ===========================================================================
- * Send one empty static block to give enough lookahead for inflate.
- * This takes 10 bits, of which 7 may remain in the bit buffer.
- * The current inflate code requires 9 bits of lookahead. If the
- * last two codes for the previous block (real code plus EOB) were coded
- * on 5 bits or less, inflate may have only 5+3 bits of lookahead to decode
- * the last real code. In this case we send two empty static blocks instead
- * of one. (There are no problems if the previous block is stored or fixed.)
- * To simplify the code, we assume the worst case of last real code encoded
- * on one bit only.
- */
-void _tr_align(s)
- deflate_state *s;
-{
- send_bits(s, STATIC_TREES<<1, 3);
- send_code(s, END_BLOCK, static_ltree);
- s->compressed_len += 10L; /* 3 for block type, 7 for EOB */
- bi_flush(s);
- /* Of the 10 bits for the empty block, we have already sent
- * (10 - bi_valid) bits. The lookahead for the last real code (before
- * the EOB of the previous block) was thus at least one plus the length
- * of the EOB plus what we have just sent of the empty static block.
- */
- if (1 + s->last_eob_len + 10 - s->bi_valid < 9) {
- send_bits(s, STATIC_TREES<<1, 3);
- send_code(s, END_BLOCK, static_ltree);
- s->compressed_len += 10L;
- bi_flush(s);
- }
- s->last_eob_len = 7;
-}
-
-/* ===========================================================================
- * Determine the best encoding for the current block: dynamic trees, static
- * trees or store, and output the encoded block to the zip file. This function
- * returns the total compressed length for the file so far.
- */
-ulg _tr_flush_block(s, buf, stored_len, eof)
- deflate_state *s;
- charf *buf; /* input block, or NULL if too old */
- ulg stored_len; /* length of input block */
- int eof; /* true if this is the last block for a file */
-{
- ulg opt_lenb, static_lenb; /* opt_len and static_len in bytes */
- int max_blindex = 0; /* index of last bit length code of non zero freq */
-
- /* Build the Huffman trees unless a stored block is forced */
- if (s->level > 0) {
-
- /* Check if the file is ascii or binary */
- if (s->data_type == Z_UNKNOWN) set_data_type(s);
-
- /* Construct the literal and distance trees */
- build_tree(s, (tree_desc *)(&(s->l_desc)));
- Tracev((stderr, "\nlit data: dyn %ld, stat %ld", s->opt_len,
- s->static_len));
-
- build_tree(s, (tree_desc *)(&(s->d_desc)));
- Tracev((stderr, "\ndist data: dyn %ld, stat %ld", s->opt_len,
- s->static_len));
- /* At this point, opt_len and static_len are the total bit lengths of
- * the compressed block data, excluding the tree representations.
- */
-
- /* Build the bit length tree for the above two trees, and get the index
- * in bl_order of the last bit length code to send.
- */
- max_blindex = build_bl_tree(s);
-
- /* Determine the best encoding. Compute first the block length in bytes*/
- opt_lenb = (s->opt_len+3+7)>>3;
- static_lenb = (s->static_len+3+7)>>3;
-
- Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ",
- opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,
- s->last_lit));
-
- if (static_lenb <= opt_lenb) opt_lenb = static_lenb;
-
- } else {
- Assert(buf != (char*)0, "lost buf");
- opt_lenb = static_lenb = stored_len + 5; /* force a stored block */
- }
-
- /* If compression failed and this is the first and last block,
- * and if the .zip file can be seeked (to rewrite the local header),
- * the whole file is transformed into a stored file:
- */
-#ifdef STORED_FILE_OK
-# ifdef FORCE_STORED_FILE
- if (eof && s->compressed_len == 0L) { /* force stored file */
-# else
- if (stored_len <= opt_lenb && eof && s->compressed_len==0L && seekable()) {
-# endif
- /* Since LIT_BUFSIZE <= 2*WSIZE, the input data must be there: */
- if (buf == (charf*)0) error ("block vanished");
-
- copy_block(s, buf, (unsigned)stored_len, 0); /* without header */
- s->compressed_len = stored_len << 3;
- s->method = STORED;
- } else
-#endif /* STORED_FILE_OK */
-
-#ifdef FORCE_STORED
- if (buf != (char*)0) { /* force stored block */
-#else
- if (stored_len+4 <= opt_lenb && buf != (char*)0) {
- /* 4: two words for the lengths */
-#endif
- /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
- * Otherwise we can't have processed more than WSIZE input bytes since
- * the last block flush, because compression would have been
- * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to
- * transform a block into a stored block.
- */
- _tr_stored_block(s, buf, stored_len, eof);
-
-#ifdef FORCE_STATIC
- } else if (static_lenb >= 0) { /* force static trees */
-#else
- } else if (static_lenb == opt_lenb) {
-#endif
- send_bits(s, (STATIC_TREES<<1)+eof, 3);
- compress_block(s, (ct_data *)static_ltree, (ct_data *)static_dtree);
- s->compressed_len += 3 + s->static_len;
- } else {
- send_bits(s, (DYN_TREES<<1)+eof, 3);
- send_all_trees(s, s->l_desc.max_code+1, s->d_desc.max_code+1,
- max_blindex+1);
- compress_block(s, (ct_data *)s->dyn_ltree, (ct_data *)s->dyn_dtree);
- s->compressed_len += 3 + s->opt_len;
- }
- Assert (s->compressed_len == s->bits_sent, "bad compressed size");
- init_block(s);
-
- if (eof) {
- bi_windup(s);
- s->compressed_len += 7; /* align on byte boundary */
- }
- Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3,
- s->compressed_len-7*eof));
-
- return s->compressed_len >> 3;
-}
-
-/* ===========================================================================
- * Save the match info and tally the frequency counts. Return true if
- * the current block must be flushed.
- */
-int _tr_tally (s, dist, lc)
- deflate_state *s;
- unsigned dist; /* distance of matched string */
- unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */
-{
- s->d_buf[s->last_lit] = (ush)dist;
- s->l_buf[s->last_lit++] = (uch)lc;
- if (dist == 0) {
- /* lc is the unmatched char */
- s->dyn_ltree[lc].Freq++;
- } else {
- s->matches++;
- /* Here, lc is the match length - MIN_MATCH */
- dist--; /* dist = match distance - 1 */
- Assert((ush)dist < (ush)MAX_DIST(s) &&
- (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&
- (ush)d_code(dist) < (ush)D_CODES, "_tr_tally: bad match");
-
- s->dyn_ltree[length_code[lc]+LITERALS+1].Freq++;
- s->dyn_dtree[d_code(dist)].Freq++;
- }
-
- /* Try to guess if it is profitable to stop the current block here */
- if (s->level > 2 && (s->last_lit & 0xfff) == 0) {
- /* Compute an upper bound for the compressed length */
- ulg out_length = (ulg)s->last_lit*8L;
- ulg in_length = (ulg)((long)s->strstart - s->block_start);
- int dcode;
- for (dcode = 0; dcode < D_CODES; dcode++) {
- out_length += (ulg)s->dyn_dtree[dcode].Freq *
- (5L+extra_dbits[dcode]);
- }
- out_length >>= 3;
- Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ",
- s->last_lit, in_length, out_length,
- 100L - out_length*100L/in_length));
- if (s->matches < s->last_lit/2 && out_length < in_length/2) return 1;
- }
- return (s->last_lit == s->lit_bufsize-1);
- /* We avoid equality with lit_bufsize because of wraparound at 64K
- * on 16 bit machines and because stored blocks are restricted to
- * 64K-1 bytes.
- */
-}
-
-/* ===========================================================================
- * Send the block data compressed using the given Huffman trees
- */
-local void compress_block(s, ltree, dtree)
- deflate_state *s;
- ct_data *ltree; /* literal tree */
- ct_data *dtree; /* distance tree */
-{
- unsigned dist; /* distance of matched string */
- int lc; /* match length or unmatched char (if dist == 0) */
- unsigned lx = 0; /* running index in l_buf */
- unsigned code; /* the code to send */
- int extra; /* number of extra bits to send */
-
- if (s->last_lit != 0) do {
- dist = s->d_buf[lx];
- lc = s->l_buf[lx++];
- if (dist == 0) {
- send_code(s, lc, ltree); /* send a literal byte */
- Tracecv(isgraph(lc), (stderr," '%c' ", lc));
- } else {
- /* Here, lc is the match length - MIN_MATCH */
- code = length_code[lc];
- send_code(s, code+LITERALS+1, ltree); /* send the length code */
- extra = extra_lbits[code];
- if (extra != 0) {
- lc -= base_length[code];
- send_bits(s, lc, extra); /* send the extra length bits */
- }
- dist--; /* dist is now the match distance - 1 */
- code = d_code(dist);
- Assert (code < D_CODES, "bad d_code");
-
- send_code(s, code, dtree); /* send the distance code */
- extra = extra_dbits[code];
- if (extra != 0) {
- dist -= base_dist[code];
- send_bits(s, dist, extra); /* send the extra distance bits */
- }
- } /* literal or match pair ? */
-
- /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */
- Assert(s->pending < s->lit_bufsize + 2*lx, "pendingBuf overflow");
-
- } while (lx < s->last_lit);
-
- send_code(s, END_BLOCK, ltree);
- s->last_eob_len = ltree[END_BLOCK].Len;
-}
-
-/* ===========================================================================
- * Set the data type to ASCII or BINARY, using a crude approximation:
- * binary if more than 20% of the bytes are <= 6 or >= 128, ascii otherwise.
- * IN assertion: the fields freq of dyn_ltree are set and the total of all
- * frequencies does not exceed 64K (to fit in an int on 16 bit machines).
- */
-local void set_data_type(s)
- deflate_state *s;
-{
- int n = 0;
- unsigned ascii_freq = 0;
- unsigned bin_freq = 0;
- while (n < 7) bin_freq += s->dyn_ltree[n++].Freq;
- while (n < 128) ascii_freq += s->dyn_ltree[n++].Freq;
- while (n < LITERALS) bin_freq += s->dyn_ltree[n++].Freq;
- s->data_type = (Byte)(bin_freq > (ascii_freq >> 2) ? Z_BINARY : Z_ASCII);
-}
-
-/* ===========================================================================
- * Reverse the first len bits of a code, using straightforward code (a faster
- * method would use a table)
- * IN assertion: 1 <= len <= 15
- */
-local unsigned bi_reverse(code, len)
- unsigned code; /* the value to invert */
- int len; /* its bit length */
-{
- register unsigned res = 0;
- do {
- res |= code & 1;
- code >>= 1, res <<= 1;
- } while (--len > 0);
- return res >> 1;
-}
-
-/* ===========================================================================
- * Flush the bit buffer, keeping at most 7 bits in it.
- */
-local void bi_flush(s)
- deflate_state *s;
-{
- if (s->bi_valid == 16) {
- put_short(s, s->bi_buf);
- s->bi_buf = 0;
- s->bi_valid = 0;
- } else if (s->bi_valid >= 8) {
- put_byte(s, (Byte)s->bi_buf);
- s->bi_buf >>= 8;
- s->bi_valid -= 8;
- }
-}
-
-/* ===========================================================================
- * Flush the bit buffer and align the output on a byte boundary
- */
-local void bi_windup(s)
- deflate_state *s;
-{
- if (s->bi_valid > 8) {
- put_short(s, s->bi_buf);
- } else if (s->bi_valid > 0) {
- put_byte(s, (Byte)s->bi_buf);
- }
- s->bi_buf = 0;
- s->bi_valid = 0;
-#ifdef DEBUG_ZLIB
- s->bits_sent = (s->bits_sent+7) & ~7;
-#endif
-}
-
-/* ===========================================================================
- * Copy a stored block, storing first the length and its
- * one's complement if requested.
- */
-local void copy_block(s, buf, len, header)
- deflate_state *s;
- charf *buf; /* the input data */
- unsigned len; /* its length */
- int header; /* true if block header must be written */
-{
- bi_windup(s); /* align on byte boundary */
- s->last_eob_len = 8; /* enough lookahead for inflate */
-
- if (header) {
- put_short(s, (ush)len);
- put_short(s, (ush)~len);
-#ifdef DEBUG_ZLIB
- s->bits_sent += 2*16;
-#endif
- }
-#ifdef DEBUG_ZLIB
- s->bits_sent += (ulg)len<<3;
-#endif
- /* bundle up the put_byte(s, *buf++) calls */
- zmemcpy(&s->pending_buf[s->pending], buf, len);
- s->pending += len;
-}
-/* --- trees.c */
-
-/* +++ inflate.c */
-/* inflate.c -- zlib interface to inflate modules
- * Copyright (C) 1995-1996 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* #include "zutil.h" */
-
-/* +++ infblock.h */
-/* infblock.h -- header to use infblock.c
- * Copyright (C) 1995-1996 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
- part of the implementation of the compression library and is
- subject to change. Applications should only use zlib.h.
- */
-
-struct inflate_blocks_state;
-typedef struct inflate_blocks_state FAR inflate_blocks_statef;
-
-extern inflate_blocks_statef * inflate_blocks_new OF((
- z_streamp z,
- check_func c, /* check function */
- uInt w)); /* window size */
-
-extern int inflate_blocks OF((
- inflate_blocks_statef *,
- z_streamp ,
- int)); /* initial return code */
-
-extern void inflate_blocks_reset OF((
- inflate_blocks_statef *,
- z_streamp ,
- uLongf *)); /* check value on output */
-
-extern int inflate_blocks_free OF((
- inflate_blocks_statef *,
- z_streamp ,
- uLongf *)); /* check value on output */
-
-extern void inflate_set_dictionary OF((
- inflate_blocks_statef *s,
- const Bytef *d, /* dictionary */
- uInt n)); /* dictionary length */
-
-extern int inflate_addhistory OF((
- inflate_blocks_statef *,
- z_streamp));
-
-extern int inflate_packet_flush OF((
- inflate_blocks_statef *));
-/* --- infblock.h */
-
-#ifndef NO_DUMMY_DECL
-struct inflate_blocks_state {int dummy;}; /* for buggy compilers */
-#endif
-
-/* inflate private state */
-struct internal_state {
-
- /* mode */
- enum {
- METHOD, /* waiting for method byte */
- FLAG, /* waiting for flag byte */
- DICT4, /* four dictionary check bytes to go */
- DICT3, /* three dictionary check bytes to go */
- DICT2, /* two dictionary check bytes to go */
- DICT1, /* one dictionary check byte to go */
- DICT0, /* waiting for inflateSetDictionary */
- BLOCKS, /* decompressing blocks */
- CHECK4, /* four check bytes to go */
- CHECK3, /* three check bytes to go */
- CHECK2, /* two check bytes to go */
- CHECK1, /* one check byte to go */
- DONE, /* finished check, done */
- BAD} /* got an error--stay here */
- mode; /* current inflate mode */
-
- /* mode dependent information */
- union {
- uInt method; /* if FLAGS, method byte */
- struct {
- uLong was; /* computed check value */
- uLong need; /* stream check value */
- } check; /* if CHECK, check values to compare */
- uInt marker; /* if BAD, inflateSync's marker bytes count */
- } sub; /* submode */
-
- /* mode independent information */
- int nowrap; /* flag for no wrapper */
- uInt wbits; /* log2(window size) (8..15, defaults to 15) */
- inflate_blocks_statef
- *blocks; /* current inflate_blocks state */
-
-};
-
-
-int inflateReset(z)
-z_streamp z;
-{
- uLong c;
-
- if (z == Z_NULL || z->state == Z_NULL)
- return Z_STREAM_ERROR;
- z->total_in = z->total_out = 0;
- z->msg = Z_NULL;
- z->state->mode = z->state->nowrap ? BLOCKS : METHOD;
- inflate_blocks_reset(z->state->blocks, z, &c);
- Trace((stderr, "inflate: reset\n"));
- return Z_OK;
-}
-
-
-int inflateEnd(z)
-z_streamp z;
-{
- uLong c;
-
- if (z == Z_NULL || z->state == Z_NULL || z->zfree == Z_NULL)
- return Z_STREAM_ERROR;
- if (z->state->blocks != Z_NULL)
- inflate_blocks_free(z->state->blocks, z, &c);
- ZFREE(z, z->state);
- z->state = Z_NULL;
- Trace((stderr, "inflate: end\n"));
- return Z_OK;
-}
-
-
-int inflateInit2_(z, w, version, stream_size)
-z_streamp z;
-int w;
-const char *version;
-int stream_size;
-{
- if (version == Z_NULL || version[0] != ZLIB_VERSION[0] ||
- stream_size != sizeof(z_stream))
- return Z_VERSION_ERROR;
-
- /* initialize state */
- if (z == Z_NULL)
- return Z_STREAM_ERROR;
- z->msg = Z_NULL;
-#ifndef NO_ZCFUNCS
- if (z->zalloc == Z_NULL)
- {
- z->zalloc = zcalloc;
- z->opaque = (voidpf)0;
- }
- if (z->zfree == Z_NULL) z->zfree = zcfree;
-#endif
- if ((z->state = (struct internal_state FAR *)
- ZALLOC(z,1,sizeof(struct internal_state))) == Z_NULL)
- return Z_MEM_ERROR;
- z->state->blocks = Z_NULL;
-
- /* handle undocumented nowrap option (no zlib header or check) */
- z->state->nowrap = 0;
- if (w < 0)
- {
- w = - w;
- z->state->nowrap = 1;
- }
-
- /* set window size */
- if (w < 8 || w > 15)
- {
- inflateEnd(z);
- return Z_STREAM_ERROR;
- }
- z->state->wbits = (uInt)w;
-
- /* create inflate_blocks state */
- if ((z->state->blocks =
- inflate_blocks_new(z, z->state->nowrap ? Z_NULL : adler32, (uInt)1 << w))
- == Z_NULL)
- {
- inflateEnd(z);
- return Z_MEM_ERROR;
- }
- Trace((stderr, "inflate: allocated\n"));
-
- /* reset state */
- inflateReset(z);
- return Z_OK;
-}
-
-
-int inflateInit_(z, version, stream_size)
-z_streamp z;
-const char *version;
-int stream_size;
-{
- return inflateInit2_(z, DEF_WBITS, version, stream_size);
-}
-
-
-#define NEEDBYTE {if(z->avail_in==0)goto empty;r=Z_OK;}
-#define NEXTBYTE (z->avail_in--,z->total_in++,*z->next_in++)
-
-int inflate(z, f)
-z_streamp z;
-int f;
-{
- int r;
- uInt b;
-
- if (z == Z_NULL || z->state == Z_NULL || z->next_in == Z_NULL || f < 0)
- return Z_STREAM_ERROR;
- r = Z_BUF_ERROR;
- while (1) switch (z->state->mode)
- {
- case METHOD:
- NEEDBYTE
- if (((z->state->sub.method = NEXTBYTE) & 0xf) != Z_DEFLATED)
- {
- z->state->mode = BAD;
- z->msg = (char*)"unknown compression method";
- z->state->sub.marker = 5; /* can't try inflateSync */
- break;
- }
- if ((z->state->sub.method >> 4) + 8 > z->state->wbits)
- {
- z->state->mode = BAD;
- z->msg = (char*)"invalid window size";
- z->state->sub.marker = 5; /* can't try inflateSync */
- break;
- }
- z->state->mode = FLAG;
- case FLAG:
- NEEDBYTE
- b = NEXTBYTE;
- if (((z->state->sub.method << 8) + b) % 31)
- {
- z->state->mode = BAD;
- z->msg = (char*)"incorrect header check";
- z->state->sub.marker = 5; /* can't try inflateSync */
- break;
- }
- Trace((stderr, "inflate: zlib header ok\n"));
- if (!(b & PRESET_DICT))
- {
- z->state->mode = BLOCKS;
- break;
- }
- z->state->mode = DICT4;
- case DICT4:
- NEEDBYTE
- z->state->sub.check.need = (uLong)NEXTBYTE << 24;
- z->state->mode = DICT3;
- case DICT3:
- NEEDBYTE
- z->state->sub.check.need += (uLong)NEXTBYTE << 16;
- z->state->mode = DICT2;
- case DICT2:
- NEEDBYTE
- z->state->sub.check.need += (uLong)NEXTBYTE << 8;
- z->state->mode = DICT1;
- case DICT1:
- NEEDBYTE
- z->state->sub.check.need += (uLong)NEXTBYTE;
- z->adler = z->state->sub.check.need;
- z->state->mode = DICT0;
- return Z_NEED_DICT;
- case DICT0:
- z->state->mode = BAD;
- z->msg = (char*)"need dictionary";
- z->state->sub.marker = 0; /* can try inflateSync */
- return Z_STREAM_ERROR;
- case BLOCKS:
- r = inflate_blocks(z->state->blocks, z, r);
- if (f == Z_PACKET_FLUSH && z->avail_in == 0 && z->avail_out != 0)
- r = inflate_packet_flush(z->state->blocks);
- if (r == Z_DATA_ERROR)
- {
- z->state->mode = BAD;
- z->state->sub.marker = 0; /* can try inflateSync */
- break;
- }
- if (r != Z_STREAM_END)
- return r;
- r = Z_OK;
- inflate_blocks_reset(z->state->blocks, z, &z->state->sub.check.was);
- if (z->state->nowrap)
- {
- z->state->mode = DONE;
- break;
- }
- z->state->mode = CHECK4;
- case CHECK4:
- NEEDBYTE
- z->state->sub.check.need = (uLong)NEXTBYTE << 24;
- z->state->mode = CHECK3;
- case CHECK3:
- NEEDBYTE
- z->state->sub.check.need += (uLong)NEXTBYTE << 16;
- z->state->mode = CHECK2;
- case CHECK2:
- NEEDBYTE
- z->state->sub.check.need += (uLong)NEXTBYTE << 8;
- z->state->mode = CHECK1;
- case CHECK1:
- NEEDBYTE
- z->state->sub.check.need += (uLong)NEXTBYTE;
-
- if (z->state->sub.check.was != z->state->sub.check.need)
- {
- z->state->mode = BAD;
- z->msg = (char*)"incorrect data check";
- z->state->sub.marker = 5; /* can't try inflateSync */
- break;
- }
- Trace((stderr, "inflate: zlib check ok\n"));
- z->state->mode = DONE;
- case DONE:
- return Z_STREAM_END;
- case BAD:
- return Z_DATA_ERROR;
- default:
- return Z_STREAM_ERROR;
- }
-
- empty:
- if (f != Z_PACKET_FLUSH)
- return r;
- z->state->mode = BAD;
- z->msg = (char *)"need more for packet flush";
- z->state->sub.marker = 0; /* can try inflateSync */
- return Z_DATA_ERROR;
-}
-
-
-int inflateSetDictionary(z, dictionary, dictLength)
-z_streamp z;
-const Bytef *dictionary;
-uInt dictLength;
-{
- uInt length = dictLength;
-
- if (z == Z_NULL || z->state == Z_NULL || z->state->mode != DICT0)
- return Z_STREAM_ERROR;
-
- if (adler32(1L, dictionary, dictLength) != z->adler) return Z_DATA_ERROR;
- z->adler = 1L;
-
- if (length >= ((uInt)1<<z->state->wbits))
- {
- length = (1<<z->state->wbits)-1;
- dictionary += dictLength - length;
- }
- inflate_set_dictionary(z->state->blocks, dictionary, length);
- z->state->mode = BLOCKS;
- return Z_OK;
-}
-
-/*
- * This subroutine adds the data at next_in/avail_in to the output history
- * without performing any output. The output buffer must be "caught up";
- * i.e. no pending output (hence s->read equals s->write), and the state must
- * be BLOCKS (i.e. we should be willing to see the start of a series of
- * BLOCKS). On exit, the output will also be caught up, and the checksum
- * will have been updated if need be.
- */
-
-int inflateIncomp(z)
-z_stream *z;
-{
- if (z->state->mode != BLOCKS)
- return Z_DATA_ERROR;
- return inflate_addhistory(z->state->blocks, z);
-}
-
-
-int inflateSync(z)
-z_streamp z;
-{
- uInt n; /* number of bytes to look at */
- Bytef *p; /* pointer to bytes */
- uInt m; /* number of marker bytes found in a row */
- uLong r, w; /* temporaries to save total_in and total_out */
-
- /* set up */
- if (z == Z_NULL || z->state == Z_NULL)
- return Z_STREAM_ERROR;
- if (z->state->mode != BAD)
- {
- z->state->mode = BAD;
- z->state->sub.marker = 0;
- }
- if ((n = z->avail_in) == 0)
- return Z_BUF_ERROR;
- p = z->next_in;
- m = z->state->sub.marker;
-
- /* search */
- while (n && m < 4)
- {
- if (*p == (Byte)(m < 2 ? 0 : 0xff))
- m++;
- else if (*p)
- m = 0;
- else
- m = 4 - m;
- p++, n--;
- }
-
- /* restore */
- z->total_in += p - z->next_in;
- z->next_in = p;
- z->avail_in = n;
- z->state->sub.marker = m;
-
- /* return no joy or set up to restart on a new block */
- if (m != 4)
- return Z_DATA_ERROR;
- r = z->total_in; w = z->total_out;
- inflateReset(z);
- z->total_in = r; z->total_out = w;
- z->state->mode = BLOCKS;
- return Z_OK;
-}
-
-#undef NEEDBYTE
-#undef NEXTBYTE
-/* --- inflate.c */
-
-/* +++ infblock.c */
-/* infblock.c -- interpret and process block types to last block
- * Copyright (C) 1995-1996 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* #include "zutil.h" */
-/* #include "infblock.h" */
-
-/* +++ inftrees.h */
-/* inftrees.h -- header to use inftrees.c
- * Copyright (C) 1995-1996 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
- part of the implementation of the compression library and is
- subject to change. Applications should only use zlib.h.
- */
-
-/* Huffman code lookup table entry--this entry is four bytes for machines
- that have 16-bit pointers (e.g. PC's in the small or medium model). */
-
-typedef struct inflate_huft_s FAR inflate_huft;
-
-struct inflate_huft_s {
- union {
- struct {
- Byte Exop; /* number of extra bits or operation */
- Byte Bits; /* number of bits in this code or subcode */
- } what;
- Bytef *pad; /* pad structure to a power of 2 (4 bytes for */
- } word; /* 16-bit, 8 bytes for 32-bit machines) */
- union {
- uInt Base; /* literal, length base, or distance base */
- inflate_huft *Next; /* pointer to next level of table */
- } more;
-};
-
-#ifdef DEBUG_ZLIB
- extern uInt inflate_hufts;
-#endif
-
-extern int inflate_trees_bits OF((
- uIntf *, /* 19 code lengths */
- uIntf *, /* bits tree desired/actual depth */
- inflate_huft * FAR *, /* bits tree result */
- z_streamp )); /* for zalloc, zfree functions */
-
-extern int inflate_trees_dynamic OF((
- uInt, /* number of literal/length codes */
- uInt, /* number of distance codes */
- uIntf *, /* that many (total) code lengths */
- uIntf *, /* literal desired/actual bit depth */
- uIntf *, /* distance desired/actual bit depth */
- inflate_huft * FAR *, /* literal/length tree result */
- inflate_huft * FAR *, /* distance tree result */
- z_streamp )); /* for zalloc, zfree functions */
-
-extern int inflate_trees_fixed OF((
- uIntf *, /* literal desired/actual bit depth */
- uIntf *, /* distance desired/actual bit depth */
- inflate_huft * FAR *, /* literal/length tree result */
- inflate_huft * FAR *)); /* distance tree result */
-
-extern int inflate_trees_free OF((
- inflate_huft *, /* tables to free */
- z_streamp )); /* for zfree function */
-
-/* --- inftrees.h */
-
-/* +++ infcodes.h */
-/* infcodes.h -- header to use infcodes.c
- * Copyright (C) 1995-1996 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
- part of the implementation of the compression library and is
- subject to change. Applications should only use zlib.h.
- */
-
-struct inflate_codes_state;
-typedef struct inflate_codes_state FAR inflate_codes_statef;
-
-extern inflate_codes_statef *inflate_codes_new OF((
- uInt, uInt,
- inflate_huft *, inflate_huft *,
- z_streamp ));
-
-extern int inflate_codes OF((
- inflate_blocks_statef *,
- z_streamp ,
- int));
-
-extern void inflate_codes_free OF((
- inflate_codes_statef *,
- z_streamp ));
-
-/* --- infcodes.h */
-
-/* +++ infutil.h */
-/* infutil.h -- types and macros common to blocks and codes
- * Copyright (C) 1995-1996 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
- part of the implementation of the compression library and is
- subject to change. Applications should only use zlib.h.
- */
-
-#ifndef _INFUTIL_H
-#define _INFUTIL_H
-
-typedef enum {
- TYPE, /* get type bits (3, including end bit) */
- LENS, /* get lengths for stored */
- STORED, /* processing stored block */
- TABLE, /* get table lengths */
- BTREE, /* get bit lengths tree for a dynamic block */
- DTREE, /* get length, distance trees for a dynamic block */
- CODES, /* processing fixed or dynamic block */
- DRY, /* output remaining window bytes */
- DONEB, /* finished last block, done */
- BADB} /* got a data error--stuck here */
-inflate_block_mode;
-
-/* inflate blocks semi-private state */
-struct inflate_blocks_state {
-
- /* mode */
- inflate_block_mode mode; /* current inflate_block mode */
-
- /* mode dependent information */
- union {
- uInt left; /* if STORED, bytes left to copy */
- struct {
- uInt table; /* table lengths (14 bits) */
- uInt index; /* index into blens (or border) */
- uIntf *blens; /* bit lengths of codes */
- uInt bb; /* bit length tree depth */
- inflate_huft *tb; /* bit length decoding tree */
- } trees; /* if DTREE, decoding info for trees */
- struct {
- inflate_huft *tl;
- inflate_huft *td; /* trees to free */
- inflate_codes_statef
- *codes;
- } decode; /* if CODES, current state */
- } sub; /* submode */
- uInt last; /* true if this block is the last block */
-
- /* mode independent information */
- uInt bitk; /* bits in bit buffer */
- uLong bitb; /* bit buffer */
- Bytef *window; /* sliding window */
- Bytef *end; /* one byte after sliding window */
- Bytef *read; /* window read pointer */
- Bytef *write; /* window write pointer */
- check_func checkfn; /* check function */
- uLong check; /* check on output */
-
-};
-
-
-/* defines for inflate input/output */
-/* update pointers and return */
-#define UPDBITS {s->bitb=b;s->bitk=k;}
-#define UPDIN {z->avail_in=n;z->total_in+=p-z->next_in;z->next_in=p;}
-#define UPDOUT {s->write=q;}
-#define UPDATE {UPDBITS UPDIN UPDOUT}
-#define LEAVE {UPDATE return inflate_flush(s,z,r);}
-/* get bytes and bits */
-#define LOADIN {p=z->next_in;n=z->avail_in;b=s->bitb;k=s->bitk;}
-#define NEEDBYTE {if(n)r=Z_OK;else LEAVE}
-#define NEXTBYTE (n--,*p++)
-#define NEEDBITS(j) {while(k<(j)){NEEDBYTE;b|=((uLong)NEXTBYTE)<<k;k+=8;}}
-#define DUMPBITS(j) {b>>=(j);k-=(j);}
-/* output bytes */
-#define WAVAIL (uInt)(q<s->read?s->read-q-1:s->end-q)
-#define LOADOUT {q=s->write;m=(uInt)WAVAIL;}
-#define WWRAP {if(q==s->end&&s->read!=s->window){q=s->window;m=(uInt)WAVAIL;}}
-#define FLUSH {UPDOUT r=inflate_flush(s,z,r); LOADOUT}
-#define NEEDOUT {if(m==0){WWRAP if(m==0){FLUSH WWRAP if(m==0) LEAVE}}r=Z_OK;}
-#define OUTBYTE(a) {*q++=(Byte)(a);m--;}
-/* load local pointers */
-#define LOAD {LOADIN LOADOUT}
-
-/* masks for lower bits (size given to avoid silly warnings with Visual C++) */
-extern uInt inflate_mask[17];
-
-/* copy as much as possible from the sliding window to the output area */
-extern int inflate_flush OF((
- inflate_blocks_statef *,
- z_streamp ,
- int));
-
-#ifndef NO_DUMMY_DECL
-struct internal_state {int dummy;}; /* for buggy compilers */
-#endif
-
-#endif
-/* --- infutil.h */
-
-#ifndef NO_DUMMY_DECL
-struct inflate_codes_state {int dummy;}; /* for buggy compilers */
-#endif
-
-/* Table for deflate from PKZIP's appnote.txt. */
-local const uInt border[] = { /* Order of the bit length code lengths */
- 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};
-
-/*
- Notes beyond the 1.93a appnote.txt:
-
- 1. Distance pointers never point before the beginning of the output
- stream.
- 2. Distance pointers can point back across blocks, up to 32k away.
- 3. There is an implied maximum of 7 bits for the bit length table and
- 15 bits for the actual data.
- 4. If only one code exists, then it is encoded using one bit. (Zero
- would be more efficient, but perhaps a little confusing.) If two
- codes exist, they are coded using one bit each (0 and 1).
- 5. There is no way of sending zero distance codes--a dummy must be
- sent if there are none. (History: a pre 2.0 version of PKZIP would
- store blocks with no distance codes, but this was discovered to be
- too harsh a criterion.) Valid only for 1.93a. 2.04c does allow
- zero distance codes, which is sent as one code of zero bits in
- length.
- 6. There are up to 286 literal/length codes. Code 256 represents the
- end-of-block. Note however that the static length tree defines
- 288 codes just to fill out the Huffman codes. Codes 286 and 287
- cannot be used though, since there is no length base or extra bits
- defined for them. Similarily, there are up to 30 distance codes.
- However, static trees define 32 codes (all 5 bits) to fill out the
- Huffman codes, but the last two had better not show up in the data.
- 7. Unzip can check dynamic Huffman blocks for complete code sets.
- The exception is that a single code would not be complete (see #4).
- 8. The five bits following the block type is really the number of
- literal codes sent minus 257.
- 9. Length codes 8,16,16 are interpreted as 13 length codes of 8 bits
- (1+6+6). Therefore, to output three times the length, you output
- three codes (1+1+1), whereas to output four times the same length,
- you only need two codes (1+3). Hmm.
- 10. In the tree reconstruction algorithm, Code = Code + Increment
- only if BitLength(i) is not zero. (Pretty obvious.)
- 11. Correction: 4 Bits: # of Bit Length codes - 4 (4 - 19)
- 12. Note: length code 284 can represent 227-258, but length code 285
- really is 258. The last length deserves its own, short code
- since it gets used a lot in very redundant files. The length
- 258 is special since 258 - 3 (the min match length) is 255.
- 13. The literal/length and distance code bit lengths are read as a
- single stream of lengths. It is possible (and advantageous) for
- a repeat code (16, 17, or 18) to go across the boundary between
- the two sets of lengths.
- */
-
-
-void inflate_blocks_reset(s, z, c)
-inflate_blocks_statef *s;
-z_streamp z;
-uLongf *c;
-{
- if (s->checkfn != Z_NULL)
- *c = s->check;
- if (s->mode == BTREE || s->mode == DTREE)
- ZFREE(z, s->sub.trees.blens);
- if (s->mode == CODES)
- {
- inflate_codes_free(s->sub.decode.codes, z);
- inflate_trees_free(s->sub.decode.td, z);
- inflate_trees_free(s->sub.decode.tl, z);
- }
- s->mode = TYPE;
- s->bitk = 0;
- s->bitb = 0;
- s->read = s->write = s->window;
- if (s->checkfn != Z_NULL)
- z->adler = s->check = (*s->checkfn)(0L, Z_NULL, 0);
- Trace((stderr, "inflate: blocks reset\n"));
-}
-
-
-inflate_blocks_statef *inflate_blocks_new(z, c, w)
-z_streamp z;
-check_func c;
-uInt w;
-{
- inflate_blocks_statef *s;
-
- if ((s = (inflate_blocks_statef *)ZALLOC
- (z,1,sizeof(struct inflate_blocks_state))) == Z_NULL)
- return s;
- if ((s->window = (Bytef *)ZALLOC(z, 1, w)) == Z_NULL)
- {
- ZFREE(z, s);
- return Z_NULL;
- }
- s->end = s->window + w;
- s->checkfn = c;
- s->mode = TYPE;
- Trace((stderr, "inflate: blocks allocated\n"));
- inflate_blocks_reset(s, z, &s->check);
- return s;
-}
-
-
-#ifdef DEBUG_ZLIB
- extern uInt inflate_hufts;
-#endif
-int inflate_blocks(s, z, r)
-inflate_blocks_statef *s;
-z_streamp z;
-int r;
-{
- uInt t; /* temporary storage */
- uLong b; /* bit buffer */
- uInt k; /* bits in bit buffer */
- Bytef *p; /* input data pointer */
- uInt n; /* bytes available there */
- Bytef *q; /* output window write pointer */
- uInt m; /* bytes to end of window or read pointer */
-
- /* copy input/output information to locals (UPDATE macro restores) */
- LOAD
-
- /* process input based on current state */
- while (1) switch (s->mode)
- {
- case TYPE:
- NEEDBITS(3)
- t = (uInt)b & 7;
- s->last = t & 1;
- switch (t >> 1)
- {
- case 0: /* stored */
- Trace((stderr, "inflate: stored block%s\n",
- s->last ? " (last)" : ""));
- DUMPBITS(3)
- t = k & 7; /* go to byte boundary */
- DUMPBITS(t)
- s->mode = LENS; /* get length of stored block */
- break;
- case 1: /* fixed */
- Trace((stderr, "inflate: fixed codes block%s\n",
- s->last ? " (last)" : ""));
- {
- uInt bl, bd;
- inflate_huft *tl, *td;
-
- inflate_trees_fixed(&bl, &bd, &tl, &td);
- s->sub.decode.codes = inflate_codes_new(bl, bd, tl, td, z);
- if (s->sub.decode.codes == Z_NULL)
- {
- r = Z_MEM_ERROR;
- LEAVE
- }
- s->sub.decode.tl = Z_NULL; /* don't try to free these */
- s->sub.decode.td = Z_NULL;
- }
- DUMPBITS(3)
- s->mode = CODES;
- break;
- case 2: /* dynamic */
- Trace((stderr, "inflate: dynamic codes block%s\n",
- s->last ? " (last)" : ""));
- DUMPBITS(3)
- s->mode = TABLE;
- break;
- case 3: /* illegal */
- DUMPBITS(3)
- s->mode = BADB;
- z->msg = (char*)"invalid block type";
- r = Z_DATA_ERROR;
- LEAVE
- }
- break;
- case LENS:
- NEEDBITS(32)
- if ((((~b) >> 16) & 0xffff) != (b & 0xffff))
- {
- s->mode = BADB;
- z->msg = (char*)"invalid stored block lengths";
- r = Z_DATA_ERROR;
- LEAVE
- }
- s->sub.left = (uInt)b & 0xffff;
- b = k = 0; /* dump bits */
- Tracev((stderr, "inflate: stored length %u\n", s->sub.left));
- s->mode = s->sub.left ? STORED : (s->last ? DRY : TYPE);
- break;
- case STORED:
- if (n == 0)
- LEAVE
- NEEDOUT
- t = s->sub.left;
- if (t > n) t = n;
- if (t > m) t = m;
- zmemcpy(q, p, t);
- p += t; n -= t;
- q += t; m -= t;
- if ((s->sub.left -= t) != 0)
- break;
- Tracev((stderr, "inflate: stored end, %lu total out\n",
- z->total_out + (q >= s->read ? q - s->read :
- (s->end - s->read) + (q - s->window))));
- s->mode = s->last ? DRY : TYPE;
- break;
- case TABLE:
- NEEDBITS(14)
- s->sub.trees.table = t = (uInt)b & 0x3fff;
-#ifndef PKZIP_BUG_WORKAROUND
- if ((t & 0x1f) > 29 || ((t >> 5) & 0x1f) > 29)
- {
- s->mode = BADB;
- z->msg = (char*)"too many length or distance symbols";
- r = Z_DATA_ERROR;
- LEAVE
- }
-#endif
- t = 258 + (t & 0x1f) + ((t >> 5) & 0x1f);
- if (t < 19)
- t = 19;
- if ((s->sub.trees.blens = (uIntf*)ZALLOC(z, t, sizeof(uInt))) == Z_NULL)
- {
- r = Z_MEM_ERROR;
- LEAVE
- }
- DUMPBITS(14)
- s->sub.trees.index = 0;
- Tracev((stderr, "inflate: table sizes ok\n"));
- s->mode = BTREE;
- case BTREE:
- while (s->sub.trees.index < 4 + (s->sub.trees.table >> 10))
- {
- NEEDBITS(3)
- s->sub.trees.blens[border[s->sub.trees.index++]] = (uInt)b & 7;
- DUMPBITS(3)
- }
- while (s->sub.trees.index < 19)
- s->sub.trees.blens[border[s->sub.trees.index++]] = 0;
- s->sub.trees.bb = 7;
- t = inflate_trees_bits(s->sub.trees.blens, &s->sub.trees.bb,
- &s->sub.trees.tb, z);
- if (t != Z_OK)
- {
- ZFREE(z, s->sub.trees.blens);
- r = t;
- if (r == Z_DATA_ERROR)
- s->mode = BADB;
- LEAVE
- }
- s->sub.trees.index = 0;
- Tracev((stderr, "inflate: bits tree ok\n"));
- s->mode = DTREE;
- case DTREE:
- while (t = s->sub.trees.table,
- s->sub.trees.index < 258 + (t & 0x1f) + ((t >> 5) & 0x1f))
- {
- inflate_huft *h;
- uInt i, j, c;
-
- t = s->sub.trees.bb;
- NEEDBITS(t)
- h = s->sub.trees.tb + ((uInt)b & inflate_mask[t]);
- t = h->word.what.Bits;
- c = h->more.Base;
- if (c < 16)
- {
- DUMPBITS(t)
- s->sub.trees.blens[s->sub.trees.index++] = c;
- }
- else /* c == 16..18 */
- {
- i = c == 18 ? 7 : c - 14;
- j = c == 18 ? 11 : 3;
- NEEDBITS(t + i)
- DUMPBITS(t)
- j += (uInt)b & inflate_mask[i];
- DUMPBITS(i)
- i = s->sub.trees.index;
- t = s->sub.trees.table;
- if (i + j > 258 + (t & 0x1f) + ((t >> 5) & 0x1f) ||
- (c == 16 && i < 1))
- {
- inflate_trees_free(s->sub.trees.tb, z);
- ZFREE(z, s->sub.trees.blens);
- s->mode = BADB;
- z->msg = (char*)"invalid bit length repeat";
- r = Z_DATA_ERROR;
- LEAVE
- }
- c = c == 16 ? s->sub.trees.blens[i - 1] : 0;
- do {
- s->sub.trees.blens[i++] = c;
- } while (--j);
- s->sub.trees.index = i;
- }
- }
- inflate_trees_free(s->sub.trees.tb, z);
- s->sub.trees.tb = Z_NULL;
- {
- uInt bl, bd;
- inflate_huft *tl, *td;
- inflate_codes_statef *c;
-
- bl = 9; /* must be <= 9 for lookahead assumptions */
- bd = 6; /* must be <= 9 for lookahead assumptions */
- t = s->sub.trees.table;
-#ifdef DEBUG_ZLIB
- inflate_hufts = 0;
-#endif
- t = inflate_trees_dynamic(257 + (t & 0x1f), 1 + ((t >> 5) & 0x1f),
- s->sub.trees.blens, &bl, &bd, &tl, &td, z);
- ZFREE(z, s->sub.trees.blens);
- if (t != Z_OK)
- {
- if (t == (uInt)Z_DATA_ERROR)
- s->mode = BADB;
- r = t;
- LEAVE
- }
- Tracev((stderr, "inflate: trees ok, %d * %d bytes used\n",
- inflate_hufts, sizeof(inflate_huft)));
- if ((c = inflate_codes_new(bl, bd, tl, td, z)) == Z_NULL)
- {
- inflate_trees_free(td, z);
- inflate_trees_free(tl, z);
- r = Z_MEM_ERROR;
- LEAVE
- }
- s->sub.decode.codes = c;
- s->sub.decode.tl = tl;
- s->sub.decode.td = td;
- }
- s->mode = CODES;
- case CODES:
- UPDATE
- if ((r = inflate_codes(s, z, r)) != Z_STREAM_END)
- return inflate_flush(s, z, r);
- r = Z_OK;
- inflate_codes_free(s->sub.decode.codes, z);
- inflate_trees_free(s->sub.decode.td, z);
- inflate_trees_free(s->sub.decode.tl, z);
- LOAD
- Tracev((stderr, "inflate: codes end, %lu total out\n",
- z->total_out + (q >= s->read ? q - s->read :
- (s->end - s->read) + (q - s->window))));
- if (!s->last)
- {
- s->mode = TYPE;
- break;
- }
- if (k > 7) /* return unused byte, if any */
- {
- Assert(k < 16, "inflate_codes grabbed too many bytes")
- k -= 8;
- n++;
- p--; /* can always return one */
- }
- s->mode = DRY;
- case DRY:
- FLUSH
- if (s->read != s->write)
- LEAVE
- s->mode = DONEB;
- case DONEB:
- r = Z_STREAM_END;
- LEAVE
- case BADB:
- r = Z_DATA_ERROR;
- LEAVE
- default:
- r = Z_STREAM_ERROR;
- LEAVE
- }
-}
-
-
-int inflate_blocks_free(s, z, c)
-inflate_blocks_statef *s;
-z_streamp z;
-uLongf *c;
-{
- inflate_blocks_reset(s, z, c);
- ZFREE(z, s->window);
- ZFREE(z, s);
- Trace((stderr, "inflate: blocks freed\n"));
- return Z_OK;
-}
-
-
-void inflate_set_dictionary(s, d, n)
-inflate_blocks_statef *s;
-const Bytef *d;
-uInt n;
-{
- zmemcpy((charf *)s->window, d, n);
- s->read = s->write = s->window + n;
-}
-
-/*
- * This subroutine adds the data at next_in/avail_in to the output history
- * without performing any output. The output buffer must be "caught up";
- * i.e. no pending output (hence s->read equals s->write), and the state must
- * be BLOCKS (i.e. we should be willing to see the start of a series of
- * BLOCKS). On exit, the output will also be caught up, and the checksum
- * will have been updated if need be.
- */
-int inflate_addhistory(s, z)
-inflate_blocks_statef *s;
-z_stream *z;
-{
- uLong b; /* bit buffer */ /* NOT USED HERE */
- uInt k; /* bits in bit buffer */ /* NOT USED HERE */
- uInt t; /* temporary storage */
- Bytef *p; /* input data pointer */
- uInt n; /* bytes available there */
- Bytef *q; /* output window write pointer */
- uInt m; /* bytes to end of window or read pointer */
-
- if (s->read != s->write)
- return Z_STREAM_ERROR;
- if (s->mode != TYPE)
- return Z_DATA_ERROR;
-
- /* we're ready to rock */
- LOAD
- /* while there is input ready, copy to output buffer, moving
- * pointers as needed.
- */
- while (n) {
- t = n; /* how many to do */
- /* is there room until end of buffer? */
- if (t > m) t = m;
- /* update check information */
- if (s->checkfn != Z_NULL)
- s->check = (*s->checkfn)(s->check, q, t);
- zmemcpy(q, p, t);
- q += t;
- p += t;
- n -= t;
- z->total_out += t;
- s->read = q; /* drag read pointer forward */
-/* WWRAP */ /* expand WWRAP macro by hand to handle s->read */
- if (q == s->end) {
- s->read = q = s->window;
- m = WAVAIL;
- }
- }
- UPDATE
- return Z_OK;
-}
-
-
-/*
- * At the end of a Deflate-compressed PPP packet, we expect to have seen
- * a `stored' block type value but not the (zero) length bytes.
- */
-int inflate_packet_flush(s)
- inflate_blocks_statef *s;
-{
- if (s->mode != LENS)
- return Z_DATA_ERROR;
- s->mode = TYPE;
- return Z_OK;
-}
-/* --- infblock.c */
-
-/* +++ inftrees.c */
-/* inftrees.c -- generate Huffman trees for efficient decoding
- * Copyright (C) 1995-1996 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* #include "zutil.h" */
-/* #include "inftrees.h" */
-
-char inflate_copyright[] = " inflate 1.0.4 Copyright 1995-1996 Mark Adler ";
-/*
- If you use the zlib library in a product, an acknowledgment is welcome
- in the documentation of your product. If for some reason you cannot
- include such an acknowledgment, I would appreciate that you keep this
- copyright string in the executable of your product.
- */
-
-#ifndef NO_DUMMY_DECL
-struct internal_state {int dummy;}; /* for buggy compilers */
-#endif
-
-/* simplify the use of the inflate_huft type with some defines */
-#define base more.Base
-#define next more.Next
-#define exop word.what.Exop
-#define bits word.what.Bits
-
-
-local int huft_build OF((
- uIntf *, /* code lengths in bits */
- uInt, /* number of codes */
- uInt, /* number of "simple" codes */
- const uIntf *, /* list of base values for non-simple codes */
- const uIntf *, /* list of extra bits for non-simple codes */
- inflate_huft * FAR*,/* result: starting table */
- uIntf *, /* maximum lookup bits (returns actual) */
- z_streamp )); /* for zalloc function */
-
-local voidpf falloc OF((
- voidpf, /* opaque pointer (not used) */
- uInt, /* number of items */
- uInt)); /* size of item */
-
-/* Tables for deflate from PKZIP's appnote.txt. */
-local const uInt cplens[31] = { /* Copy lengths for literal codes 257..285 */
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
- 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0};
- /* see note #13 above about 258 */
-local const uInt cplext[31] = { /* Extra bits for literal codes 257..285 */
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2,
- 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 112, 112}; /* 112==invalid */
-local const uInt cpdist[30] = { /* Copy offsets for distance codes 0..29 */
- 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
- 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
- 8193, 12289, 16385, 24577};
-local const uInt cpdext[30] = { /* Extra bits for distance codes */
- 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6,
- 7, 7, 8, 8, 9, 9, 10, 10, 11, 11,
- 12, 12, 13, 13};
-
-/*
- Huffman code decoding is performed using a multi-level table lookup.
- The fastest way to decode is to simply build a lookup table whose
- size is determined by the longest code. However, the time it takes
- to build this table can also be a factor if the data being decoded
- is not very long. The most common codes are necessarily the
- shortest codes, so those codes dominate the decoding time, and hence
- the speed. The idea is you can have a shorter table that decodes the
- shorter, more probable codes, and then point to subsidiary tables for
- the longer codes. The time it costs to decode the longer codes is
- then traded against the time it takes to make longer tables.
-
- This results of this trade are in the variables lbits and dbits
- below. lbits is the number of bits the first level table for literal/
- length codes can decode in one step, and dbits is the same thing for
- the distance codes. Subsequent tables are also less than or equal to
- those sizes. These values may be adjusted either when all of the
- codes are shorter than that, in which case the longest code length in
- bits is used, or when the shortest code is *longer* than the requested
- table size, in which case the length of the shortest code in bits is
- used.
-
- There are two different values for the two tables, since they code a
- different number of possibilities each. The literal/length table
- codes 286 possible values, or in a flat code, a little over eight
- bits. The distance table codes 30 possible values, or a little less
- than five bits, flat. The optimum values for speed end up being
- about one bit more than those, so lbits is 8+1 and dbits is 5+1.
- The optimum values may differ though from machine to machine, and
- possibly even between compilers. Your mileage may vary.
- */
-
-
-/* If BMAX needs to be larger than 16, then h and x[] should be uLong. */
-#define BMAX 15 /* maximum bit length of any code */
-#define N_MAX 288 /* maximum number of codes in any set */
-
-#ifdef DEBUG_ZLIB
- uInt inflate_hufts;
-#endif
-
-local int huft_build(b, n, s, d, e, t, m, zs)
-uIntf *b; /* code lengths in bits (all assumed <= BMAX) */
-uInt n; /* number of codes (assumed <= N_MAX) */
-uInt s; /* number of simple-valued codes (0..s-1) */
-const uIntf *d; /* list of base values for non-simple codes */
-const uIntf *e; /* list of extra bits for non-simple codes */
-inflate_huft * FAR *t; /* result: starting table */
-uIntf *m; /* maximum lookup bits, returns actual */
-z_streamp zs; /* for zalloc function */
-/* Given a list of code lengths and a maximum table size, make a set of
- tables to decode that set of codes. Return Z_OK on success, Z_BUF_ERROR
- if the given code set is incomplete (the tables are still built in this
- case), Z_DATA_ERROR if the input is invalid (an over-subscribed set of
- lengths), or Z_MEM_ERROR if not enough memory. */
-{
-
- uInt a; /* counter for codes of length k */
- uInt c[BMAX+1]; /* bit length count table */
- uInt f; /* i repeats in table every f entries */
- int g; /* maximum code length */
- int h; /* table level */
- register uInt i; /* counter, current code */
- register uInt j; /* counter */
- register int k; /* number of bits in current code */
- int l; /* bits per table (returned in m) */
- register uIntf *p; /* pointer into c[], b[], or v[] */
- inflate_huft *q; /* points to current table */
- struct inflate_huft_s r; /* table entry for structure assignment */
- inflate_huft *u[BMAX]; /* table stack */
- uInt v[N_MAX]; /* values in order of bit length */
- register int w; /* bits before this table == (l * h) */
- uInt x[BMAX+1]; /* bit offsets, then code stack */
- uIntf *xp; /* pointer into x */
- int y; /* number of dummy codes added */
- uInt z; /* number of entries in current table */
-
-
- /* Generate counts for each bit length */
- p = c;
-#define C0 *p++ = 0;
-#define C2 C0 C0 C0 C0
-#define C4 C2 C2 C2 C2
- C4 /* clear c[]--assume BMAX+1 is 16 */
- p = b; i = n;
- do {
- c[*p++]++; /* assume all entries <= BMAX */
- } while (--i);
- if (c[0] == n) /* null input--all zero length codes */
- {
- *t = (inflate_huft *)Z_NULL;
- *m = 0;
- return Z_OK;
- }
-
-
- /* Find minimum and maximum length, bound *m by those */
- l = *m;
- for (j = 1; j <= BMAX; j++)
- if (c[j])
- break;
- k = j; /* minimum code length */
- if ((uInt)l < j)
- l = j;
- for (i = BMAX; i; i--)
- if (c[i])
- break;
- g = i; /* maximum code length */
- if ((uInt)l > i)
- l = i;
- *m = l;
-
-
- /* Adjust last length count to fill out codes, if needed */
- for (y = 1 << j; j < i; j++, y <<= 1)
- if ((y -= c[j]) < 0)
- return Z_DATA_ERROR;
- if ((y -= c[i]) < 0)
- return Z_DATA_ERROR;
- c[i] += y;
-
-
- /* Generate starting offsets into the value table for each length */
- x[1] = j = 0;
- p = c + 1; xp = x + 2;
- while (--i) { /* note that i == g from above */
- *xp++ = (j += *p++);
- }
-
-
- /* Make a table of values in order of bit lengths */
- p = b; i = 0;
- do {
- if ((j = *p++) != 0)
- v[x[j]++] = i;
- } while (++i < n);
- n = x[g]; /* set n to length of v */
-
-
- /* Generate the Huffman codes and for each, make the table entries */
- x[0] = i = 0; /* first Huffman code is zero */
- p = v; /* grab values in bit order */
- h = -1; /* no tables yet--level -1 */
- w = -l; /* bits decoded == (l * h) */
- u[0] = (inflate_huft *)Z_NULL; /* just to keep compilers happy */
- q = (inflate_huft *)Z_NULL; /* ditto */
- z = 0; /* ditto */
-
- /* go through the bit lengths (k already is bits in shortest code) */
- for (; k <= g; k++)
- {
- a = c[k];
- while (a--)
- {
- /* here i is the Huffman code of length k bits for value *p */
- /* make tables up to required level */
- while (k > w + l)
- {
- h++;
- w += l; /* previous table always l bits */
-
- /* compute minimum size table less than or equal to l bits */
- z = g - w;
- z = z > (uInt)l ? l : z; /* table size upper limit */
- if ((f = 1 << (j = k - w)) > a + 1) /* try a k-w bit table */
- { /* too few codes for k-w bit table */
- f -= a + 1; /* deduct codes from patterns left */
- xp = c + k;
- if (j < z)
- while (++j < z) /* try smaller tables up to z bits */
- {
- if ((f <<= 1) <= *++xp)
- break; /* enough codes to use up j bits */
- f -= *xp; /* else deduct codes from patterns */
- }
- }
- z = 1 << j; /* table entries for j-bit table */
-
- /* allocate and link in new table */
- if ((q = (inflate_huft *)ZALLOC
- (zs,z + 1,sizeof(inflate_huft))) == Z_NULL)
- {
- if (h)
- inflate_trees_free(u[0], zs);
- return Z_MEM_ERROR; /* not enough memory */
- }
-#ifdef DEBUG_ZLIB
- inflate_hufts += z + 1;
-#endif
- *t = q + 1; /* link to list for huft_free() */
- *(t = &(q->next)) = Z_NULL;
- u[h] = ++q; /* table starts after link */
-
- /* connect to last table, if there is one */
- if (h)
- {
- x[h] = i; /* save pattern for backing up */
- r.bits = (Byte)l; /* bits to dump before this table */
- r.exop = (Byte)j; /* bits in this table */
- r.next = q; /* pointer to this table */
- j = i >> (w - l); /* (get around Turbo C bug) */
- u[h-1][j] = r; /* connect to last table */
- }
- }
-
- /* set up table entry in r */
- r.bits = (Byte)(k - w);
- if (p >= v + n)
- r.exop = 128 + 64; /* out of values--invalid code */
- else if (*p < s)
- {
- r.exop = (Byte)(*p < 256 ? 0 : 32 + 64); /* 256 is end-of-block */
- r.base = *p++; /* simple code is just the value */
- }
- else
- {
- r.exop = (Byte)(e[*p - s] + 16 + 64);/* non-simple--look up in lists */
- r.base = d[*p++ - s];
- }
-
- /* fill code-like entries with r */
- f = 1 << (k - w);
- for (j = i >> w; j < z; j += f)
- q[j] = r;
-
- /* backwards increment the k-bit code i */
- for (j = 1 << (k - 1); i & j; j >>= 1)
- i ^= j;
- i ^= j;
-
- /* backup over finished tables */
- while ((i & ((1 << w) - 1)) != x[h])
- {
- h--; /* don't need to update q */
- w -= l;
- }
- }
- }
-
-
- /* Return Z_BUF_ERROR if we were given an incomplete table */
- return y != 0 && g != 1 ? Z_BUF_ERROR : Z_OK;
-}
-
-
-int inflate_trees_bits(c, bb, tb, z)
-uIntf *c; /* 19 code lengths */
-uIntf *bb; /* bits tree desired/actual depth */
-inflate_huft * FAR *tb; /* bits tree result */
-z_streamp z; /* for zfree function */
-{
- int r;
-
- r = huft_build(c, 19, 19, (uIntf*)Z_NULL, (uIntf*)Z_NULL, tb, bb, z);
- if (r == Z_DATA_ERROR)
- z->msg = (char*)"oversubscribed dynamic bit lengths tree";
- else if (r == Z_BUF_ERROR || *bb == 0)
- {
- inflate_trees_free(*tb, z);
- z->msg = (char*)"incomplete dynamic bit lengths tree";
- r = Z_DATA_ERROR;
- }
- return r;
-}
-
-
-int inflate_trees_dynamic(nl, nd, c, bl, bd, tl, td, z)
-uInt nl; /* number of literal/length codes */
-uInt nd; /* number of distance codes */
-uIntf *c; /* that many (total) code lengths */
-uIntf *bl; /* literal desired/actual bit depth */
-uIntf *bd; /* distance desired/actual bit depth */
-inflate_huft * FAR *tl; /* literal/length tree result */
-inflate_huft * FAR *td; /* distance tree result */
-z_streamp z; /* for zfree function */
-{
- int r;
-
- /* build literal/length tree */
- r = huft_build(c, nl, 257, cplens, cplext, tl, bl, z);
- if (r != Z_OK || *bl == 0)
- {
- if (r == Z_DATA_ERROR)
- z->msg = (char*)"oversubscribed literal/length tree";
- else if (r != Z_MEM_ERROR)
- {
- inflate_trees_free(*tl, z);
- z->msg = (char*)"incomplete literal/length tree";
- r = Z_DATA_ERROR;
- }
- return r;
- }
-
- /* build distance tree */
- r = huft_build(c + nl, nd, 0, cpdist, cpdext, td, bd, z);
- if (r != Z_OK || (*bd == 0 && nl > 257))
- {
- if (r == Z_DATA_ERROR)
- z->msg = (char*)"oversubscribed distance tree";
- else if (r == Z_BUF_ERROR) {
-#ifdef PKZIP_BUG_WORKAROUND
- r = Z_OK;
- }
-#else
- inflate_trees_free(*td, z);
- z->msg = (char*)"incomplete distance tree";
- r = Z_DATA_ERROR;
- }
- else if (r != Z_MEM_ERROR)
- {
- z->msg = (char*)"empty distance tree with lengths";
- r = Z_DATA_ERROR;
- }
- inflate_trees_free(*tl, z);
- return r;
-#endif
- }
-
- /* done */
- return Z_OK;
-}
-
-
-/* build fixed tables only once--keep them here */
-local int fixed_built = 0;
-#define FIXEDH 530 /* number of hufts used by fixed tables */
-local inflate_huft fixed_mem[FIXEDH];
-local uInt fixed_bl;
-local uInt fixed_bd;
-local inflate_huft *fixed_tl;
-local inflate_huft *fixed_td;
-
-
-local voidpf falloc(q, n, s)
-voidpf q; /* opaque pointer */
-uInt n; /* number of items */
-uInt s; /* size of item */
-{
- Assert(s == sizeof(inflate_huft) && n <= *(intf *)q,
- "inflate_trees falloc overflow");
- *(intf *)q -= n+s-s; /* s-s to avoid warning */
- return (voidpf)(fixed_mem + *(intf *)q);
-}
-
-
-int inflate_trees_fixed(bl, bd, tl, td)
-uIntf *bl; /* literal desired/actual bit depth */
-uIntf *bd; /* distance desired/actual bit depth */
-inflate_huft * FAR *tl; /* literal/length tree result */
-inflate_huft * FAR *td; /* distance tree result */
-{
- /* build fixed tables if not already (multiple overlapped executions ok) */
- if (!fixed_built)
- {
- int k; /* temporary variable */
- unsigned c[288]; /* length list for huft_build */
- z_stream z; /* for falloc function */
- int f = FIXEDH; /* number of hufts left in fixed_mem */
-
- /* set up fake z_stream for memory routines */
- z.zalloc = falloc;
- z.zfree = Z_NULL;
- z.opaque = (voidpf)&f;
-
- /* literal table */
- for (k = 0; k < 144; k++)
- c[k] = 8;
- for (; k < 256; k++)
- c[k] = 9;
- for (; k < 280; k++)
- c[k] = 7;
- for (; k < 288; k++)
- c[k] = 8;
- fixed_bl = 7;
- huft_build(c, 288, 257, cplens, cplext, &fixed_tl, &fixed_bl, &z);
-
- /* distance table */
- for (k = 0; k < 30; k++)
- c[k] = 5;
- fixed_bd = 5;
- huft_build(c, 30, 0, cpdist, cpdext, &fixed_td, &fixed_bd, &z);
-
- /* done */
- Assert(f == 0, "invalid build of fixed tables");
- fixed_built = 1;
- }
- *bl = fixed_bl;
- *bd = fixed_bd;
- *tl = fixed_tl;
- *td = fixed_td;
- return Z_OK;
-}
-
-
-int inflate_trees_free(t, z)
-inflate_huft *t; /* table to free */
-z_streamp z; /* for zfree function */
-/* Free the malloc'ed tables built by huft_build(), which makes a linked
- list of the tables it made, with the links in a dummy first entry of
- each table. */
-{
- register inflate_huft *p, *q, *r;
-
- /* Reverse linked list */
- p = Z_NULL;
- q = t;
- while (q != Z_NULL)
- {
- r = (q - 1)->next;
- (q - 1)->next = p;
- p = q;
- q = r;
- }
- /* Go through linked list, freeing from the malloced (t[-1]) address. */
- while (p != Z_NULL)
- {
- q = (--p)->next;
- ZFREE(z,p);
- p = q;
- }
- return Z_OK;
-}
-/* --- inftrees.c */
-
-/* +++ infcodes.c */
-/* infcodes.c -- process literals and length/distance pairs
- * Copyright (C) 1995-1996 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* #include "zutil.h" */
-/* #include "inftrees.h" */
-/* #include "infblock.h" */
-/* #include "infcodes.h" */
-/* #include "infutil.h" */
-
-/* +++ inffast.h */
-/* inffast.h -- header to use inffast.c
- * Copyright (C) 1995-1996 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
- part of the implementation of the compression library and is
- subject to change. Applications should only use zlib.h.
- */
-
-extern int inflate_fast OF((
- uInt,
- uInt,
- inflate_huft *,
- inflate_huft *,
- inflate_blocks_statef *,
- z_streamp ));
-/* --- inffast.h */
-
-/* simplify the use of the inflate_huft type with some defines */
-#define base more.Base
-#define next more.Next
-#define exop word.what.Exop
-#define bits word.what.Bits
-
-/* inflate codes private state */
-struct inflate_codes_state {
-
- /* mode */
- enum { /* waiting for "i:"=input, "o:"=output, "x:"=nothing */
- START, /* x: set up for LEN */
- LEN, /* i: get length/literal/eob next */
- LENEXT, /* i: getting length extra (have base) */
- DIST, /* i: get distance next */
- DISTEXT, /* i: getting distance extra */
- COPY, /* o: copying bytes in window, waiting for space */
- LIT, /* o: got literal, waiting for output space */
- WASH, /* o: got eob, possibly still output waiting */
- END, /* x: got eob and all data flushed */
- BADCODE} /* x: got error */
- mode; /* current inflate_codes mode */
-
- /* mode dependent information */
- uInt len;
- union {
- struct {
- inflate_huft *tree; /* pointer into tree */
- uInt need; /* bits needed */
- } code; /* if LEN or DIST, where in tree */
- uInt lit; /* if LIT, literal */
- struct {
- uInt get; /* bits to get for extra */
- uInt dist; /* distance back to copy from */
- } copy; /* if EXT or COPY, where and how much */
- } sub; /* submode */
-
- /* mode independent information */
- Byte lbits; /* ltree bits decoded per branch */
- Byte dbits; /* dtree bits decoder per branch */
- inflate_huft *ltree; /* literal/length/eob tree */
- inflate_huft *dtree; /* distance tree */
-
-};
-
-
-inflate_codes_statef *inflate_codes_new(bl, bd, tl, td, z)
-uInt bl, bd;
-inflate_huft *tl;
-inflate_huft *td; /* need separate declaration for Borland C++ */
-z_streamp z;
-{
- inflate_codes_statef *c;
-
- if ((c = (inflate_codes_statef *)
- ZALLOC(z,1,sizeof(struct inflate_codes_state))) != Z_NULL)
- {
- c->mode = START;
- c->lbits = (Byte)bl;
- c->dbits = (Byte)bd;
- c->ltree = tl;
- c->dtree = td;
- Tracev((stderr, "inflate: codes new\n"));
- }
- return c;
-}
-
-
-int inflate_codes(s, z, r)
-inflate_blocks_statef *s;
-z_streamp z;
-int r;
-{
- uInt j; /* temporary storage */
- inflate_huft *t; /* temporary pointer */
- uInt e; /* extra bits or operation */
- uLong b; /* bit buffer */
- uInt k; /* bits in bit buffer */
- Bytef *p; /* input data pointer */
- uInt n; /* bytes available there */
- Bytef *q; /* output window write pointer */
- uInt m; /* bytes to end of window or read pointer */
- Bytef *f; /* pointer to copy strings from */
- inflate_codes_statef *c = s->sub.decode.codes; /* codes state */
-
- /* copy input/output information to locals (UPDATE macro restores) */
- LOAD
-
- /* process input and output based on current state */
- while (1) switch (c->mode)
- { /* waiting for "i:"=input, "o:"=output, "x:"=nothing */
- case START: /* x: set up for LEN */
-#ifndef SLOW
- if (m >= 258 && n >= 10)
- {
- UPDATE
- r = inflate_fast(c->lbits, c->dbits, c->ltree, c->dtree, s, z);
- LOAD
- if (r != Z_OK)
- {
- c->mode = r == Z_STREAM_END ? WASH : BADCODE;
- break;
- }
- }
-#endif /* !SLOW */
- c->sub.code.need = c->lbits;
- c->sub.code.tree = c->ltree;
- c->mode = LEN;
- case LEN: /* i: get length/literal/eob next */
- j = c->sub.code.need;
- NEEDBITS(j)
- t = c->sub.code.tree + ((uInt)b & inflate_mask[j]);
- DUMPBITS(t->bits)
- e = (uInt)(t->exop);
- if (e == 0) /* literal */
- {
- c->sub.lit = t->base;
- Tracevv((stderr, t->base >= 0x20 && t->base < 0x7f ?
- "inflate: literal '%c'\n" :
- "inflate: literal 0x%02x\n", t->base));
- c->mode = LIT;
- break;
- }
- if (e & 16) /* length */
- {
- c->sub.copy.get = e & 15;
- c->len = t->base;
- c->mode = LENEXT;
- break;
- }
- if ((e & 64) == 0) /* next table */
- {
- c->sub.code.need = e;
- c->sub.code.tree = t->next;
- break;
- }
- if (e & 32) /* end of block */
- {
- Tracevv((stderr, "inflate: end of block\n"));
- c->mode = WASH;
- break;
- }
- c->mode = BADCODE; /* invalid code */
- z->msg = (char*)"invalid literal/length code";
- r = Z_DATA_ERROR;
- LEAVE
- case LENEXT: /* i: getting length extra (have base) */
- j = c->sub.copy.get;
- NEEDBITS(j)
- c->len += (uInt)b & inflate_mask[j];
- DUMPBITS(j)
- c->sub.code.need = c->dbits;
- c->sub.code.tree = c->dtree;
- Tracevv((stderr, "inflate: length %u\n", c->len));
- c->mode = DIST;
- case DIST: /* i: get distance next */
- j = c->sub.code.need;
- NEEDBITS(j)
- t = c->sub.code.tree + ((uInt)b & inflate_mask[j]);
- DUMPBITS(t->bits)
- e = (uInt)(t->exop);
- if (e & 16) /* distance */
- {
- c->sub.copy.get = e & 15;
- c->sub.copy.dist = t->base;
- c->mode = DISTEXT;
- break;
- }
- if ((e & 64) == 0) /* next table */
- {
- c->sub.code.need = e;
- c->sub.code.tree = t->next;
- break;
- }
- c->mode = BADCODE; /* invalid code */
- z->msg = (char*)"invalid distance code";
- r = Z_DATA_ERROR;
- LEAVE
- case DISTEXT: /* i: getting distance extra */
- j = c->sub.copy.get;
- NEEDBITS(j)
- c->sub.copy.dist += (uInt)b & inflate_mask[j];
- DUMPBITS(j)
- Tracevv((stderr, "inflate: distance %u\n", c->sub.copy.dist));
- c->mode = COPY;
- case COPY: /* o: copying bytes in window, waiting for space */
-#ifndef __TURBOC__ /* Turbo C bug for following expression */
- f = (uInt)(q - s->window) < c->sub.copy.dist ?
- s->end - (c->sub.copy.dist - (q - s->window)) :
- q - c->sub.copy.dist;
-#else
- f = q - c->sub.copy.dist;
- if ((uInt)(q - s->window) < c->sub.copy.dist)
- f = s->end - (c->sub.copy.dist - (uInt)(q - s->window));
-#endif
- while (c->len)
- {
- NEEDOUT
- OUTBYTE(*f++)
- if (f == s->end)
- f = s->window;
- c->len--;
- }
- c->mode = START;
- break;
- case LIT: /* o: got literal, waiting for output space */
- NEEDOUT
- OUTBYTE(c->sub.lit)
- c->mode = START;
- break;
- case WASH: /* o: got eob, possibly more output */
- FLUSH
- if (s->read != s->write)
- LEAVE
- c->mode = END;
- case END:
- r = Z_STREAM_END;
- LEAVE
- case BADCODE: /* x: got error */
- r = Z_DATA_ERROR;
- LEAVE
- default:
- r = Z_STREAM_ERROR;
- LEAVE
- }
-}
-
-
-void inflate_codes_free(c, z)
-inflate_codes_statef *c;
-z_streamp z;
-{
- ZFREE(z, c);
- Tracev((stderr, "inflate: codes free\n"));
-}
-/* --- infcodes.c */
-
-/* +++ infutil.c */
-/* inflate_util.c -- data and routines common to blocks and codes
- * Copyright (C) 1995-1996 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* #include "zutil.h" */
-/* #include "infblock.h" */
-/* #include "inftrees.h" */
-/* #include "infcodes.h" */
-/* #include "infutil.h" */
-
-#ifndef NO_DUMMY_DECL
-struct inflate_codes_state {int dummy;}; /* for buggy compilers */
-#endif
-
-/* And'ing with mask[n] masks the lower n bits */
-uInt inflate_mask[17] = {
- 0x0000,
- 0x0001, 0x0003, 0x0007, 0x000f, 0x001f, 0x003f, 0x007f, 0x00ff,
- 0x01ff, 0x03ff, 0x07ff, 0x0fff, 0x1fff, 0x3fff, 0x7fff, 0xffff
-};
-
-
-/* copy as much as possible from the sliding window to the output area */
-int inflate_flush(s, z, r)
-inflate_blocks_statef *s;
-z_streamp z;
-int r;
-{
- uInt n;
- Bytef *p;
- Bytef *q;
-
- /* local copies of source and destination pointers */
- p = z->next_out;
- q = s->read;
-
- /* compute number of bytes to copy as far as end of window */
- n = (uInt)((q <= s->write ? s->write : s->end) - q);
- if (n > z->avail_out) n = z->avail_out;
- if (n && r == Z_BUF_ERROR) r = Z_OK;
-
- /* update counters */
- z->avail_out -= n;
- z->total_out += n;
-
- /* update check information */
- if (s->checkfn != Z_NULL)
- z->adler = s->check = (*s->checkfn)(s->check, q, n);
-
- /* copy as far as end of window */
- if (p != Z_NULL) {
- zmemcpy(p, q, n);
- p += n;
- }
- q += n;
-
- /* see if more to copy at beginning of window */
- if (q == s->end)
- {
- /* wrap pointers */
- q = s->window;
- if (s->write == s->end)
- s->write = s->window;
-
- /* compute bytes to copy */
- n = (uInt)(s->write - q);
- if (n > z->avail_out) n = z->avail_out;
- if (n && r == Z_BUF_ERROR) r = Z_OK;
-
- /* update counters */
- z->avail_out -= n;
- z->total_out += n;
-
- /* update check information */
- if (s->checkfn != Z_NULL)
- z->adler = s->check = (*s->checkfn)(s->check, q, n);
-
- /* copy */
- if (p != Z_NULL) {
- zmemcpy(p, q, n);
- p += n;
- }
- q += n;
- }
-
- /* update pointers */
- z->next_out = p;
- s->read = q;
-
- /* done */
- return r;
-}
-/* --- infutil.c */
-
-/* +++ inffast.c */
-/* inffast.c -- process literals and length/distance pairs fast
- * Copyright (C) 1995-1996 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* #include "zutil.h" */
-/* #include "inftrees.h" */
-/* #include "infblock.h" */
-/* #include "infcodes.h" */
-/* #include "infutil.h" */
-/* #include "inffast.h" */
-
-#ifndef NO_DUMMY_DECL
-struct inflate_codes_state {int dummy;}; /* for buggy compilers */
-#endif
-
-/* simplify the use of the inflate_huft type with some defines */
-#define base more.Base
-#define next more.Next
-#define exop word.what.Exop
-#define bits word.what.Bits
-
-/* macros for bit input with no checking and for returning unused bytes */
-#define GRABBITS(j) {while(k<(j)){b|=((uLong)NEXTBYTE)<<k;k+=8;}}
-#define UNGRAB {n+=(c=k>>3);p-=c;k&=7;}
-
-/* Called with number of bytes left to write in window at least 258
- (the maximum string length) and number of input bytes available
- at least ten. The ten bytes are six bytes for the longest length/
- distance pair plus four bytes for overloading the bit buffer. */
-
-int inflate_fast(bl, bd, tl, td, s, z)
-uInt bl, bd;
-inflate_huft *tl;
-inflate_huft *td; /* need separate declaration for Borland C++ */
-inflate_blocks_statef *s;
-z_streamp z;
-{
- inflate_huft *t; /* temporary pointer */
- uInt e; /* extra bits or operation */
- uLong b; /* bit buffer */
- uInt k; /* bits in bit buffer */
- Bytef *p; /* input data pointer */
- uInt n; /* bytes available there */
- Bytef *q; /* output window write pointer */
- uInt m; /* bytes to end of window or read pointer */
- uInt ml; /* mask for literal/length tree */
- uInt md; /* mask for distance tree */
- uInt c; /* bytes to copy */
- uInt d; /* distance back to copy from */
- Bytef *r; /* copy source pointer */
-
- /* load input, output, bit values */
- LOAD
-
- /* initialize masks */
- ml = inflate_mask[bl];
- md = inflate_mask[bd];
-
- /* do until not enough input or output space for fast loop */
- do { /* assume called with m >= 258 && n >= 10 */
- /* get literal/length code */
- GRABBITS(20) /* max bits for literal/length code */
- if ((e = (t = tl + ((uInt)b & ml))->exop) == 0)
- {
- DUMPBITS(t->bits)
- Tracevv((stderr, t->base >= 0x20 && t->base < 0x7f ?
- "inflate: * literal '%c'\n" :
- "inflate: * literal 0x%02x\n", t->base));
- *q++ = (Byte)t->base;
- m--;
- continue;
- }
- do {
- DUMPBITS(t->bits)
- if (e & 16)
- {
- /* get extra bits for length */
- e &= 15;
- c = t->base + ((uInt)b & inflate_mask[e]);
- DUMPBITS(e)
- Tracevv((stderr, "inflate: * length %u\n", c));
-
- /* decode distance base of block to copy */
- GRABBITS(15); /* max bits for distance code */
- e = (t = td + ((uInt)b & md))->exop;
- do {
- DUMPBITS(t->bits)
- if (e & 16)
- {
- /* get extra bits to add to distance base */
- e &= 15;
- GRABBITS(e) /* get extra bits (up to 13) */
- d = t->base + ((uInt)b & inflate_mask[e]);
- DUMPBITS(e)
- Tracevv((stderr, "inflate: * distance %u\n", d));
-
- /* do the copy */
- m -= c;
- if ((uInt)(q - s->window) >= d) /* offset before dest */
- { /* just copy */
- r = q - d;
- *q++ = *r++; c--; /* minimum count is three, */
- *q++ = *r++; c--; /* so unroll loop a little */
- }
- else /* else offset after destination */
- {
- e = d - (uInt)(q - s->window); /* bytes from offset to end */
- r = s->end - e; /* pointer to offset */
- if (c > e) /* if source crosses, */
- {
- c -= e; /* copy to end of window */
- do {
- *q++ = *r++;
- } while (--e);
- r = s->window; /* copy rest from start of window */
- }
- }
- do { /* copy all or what's left */
- *q++ = *r++;
- } while (--c);
- break;
- }
- else if ((e & 64) == 0)
- e = (t = t->next + ((uInt)b & inflate_mask[e]))->exop;
- else
- {
- z->msg = (char*)"invalid distance code";
- UNGRAB
- UPDATE
- return Z_DATA_ERROR;
- }
- } while (1);
- break;
- }
- if ((e & 64) == 0)
- {
- if ((e = (t = t->next + ((uInt)b & inflate_mask[e]))->exop) == 0)
- {
- DUMPBITS(t->bits)
- Tracevv((stderr, t->base >= 0x20 && t->base < 0x7f ?
- "inflate: * literal '%c'\n" :
- "inflate: * literal 0x%02x\n", t->base));
- *q++ = (Byte)t->base;
- m--;
- break;
- }
- }
- else if (e & 32)
- {
- Tracevv((stderr, "inflate: * end of block\n"));
- UNGRAB
- UPDATE
- return Z_STREAM_END;
- }
- else
- {
- z->msg = (char*)"invalid literal/length code";
- UNGRAB
- UPDATE
- return Z_DATA_ERROR;
- }
- } while (1);
- } while (m >= 258 && n >= 10);
-
- /* not enough input or output--restore pointers and return */
- UNGRAB
- UPDATE
- return Z_OK;
-}
-/* --- inffast.c */
-
-/* +++ zutil.c */
-/* zutil.c -- target dependent utility functions for the compression library
- * Copyright (C) 1995-1996 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* From: zutil.c,v 1.17 1996/07/24 13:41:12 me Exp $ */
-
-#ifdef DEBUG_ZLIB
-#include <stdio.h>
-#endif
-
-/* #include "zutil.h" */
-
-#ifndef NO_DUMMY_DECL
-struct internal_state {int dummy;}; /* for buggy compilers */
-#endif
-
-#ifndef STDC
-extern void exit OF((int));
-#endif
-
-const char *z_errmsg[10] = {
-"need dictionary", /* Z_NEED_DICT 2 */
-"stream end", /* Z_STREAM_END 1 */
-"", /* Z_OK 0 */
-"file error", /* Z_ERRNO (-1) */
-"stream error", /* Z_STREAM_ERROR (-2) */
-"data error", /* Z_DATA_ERROR (-3) */
-"insufficient memory", /* Z_MEM_ERROR (-4) */
-"buffer error", /* Z_BUF_ERROR (-5) */
-"incompatible version",/* Z_VERSION_ERROR (-6) */
-""};
-
-
-const char *zlibVersion()
-{
- return ZLIB_VERSION;
-}
-
-#ifdef DEBUG_ZLIB
-void z_error (m)
- char *m;
-{
- fprintf(stderr, "%s\n", m);
- exit(1);
-}
-#endif
-
-#ifndef HAVE_MEMCPY
-
-void zmemcpy(dest, source, len)
- Bytef* dest;
- Bytef* source;
- uInt len;
-{
- if (len == 0) return;
- do {
- *dest++ = *source++; /* ??? to be unrolled */
- } while (--len != 0);
-}
-
-int zmemcmp(s1, s2, len)
- Bytef* s1;
- Bytef* s2;
- uInt len;
-{
- uInt j;
-
- for (j = 0; j < len; j++) {
- if (s1[j] != s2[j]) return 2*(s1[j] > s2[j])-1;
- }
- return 0;
-}
-
-void zmemzero(dest, len)
- Bytef* dest;
- uInt len;
-{
- if (len == 0) return;
- do {
- *dest++ = 0; /* ??? to be unrolled */
- } while (--len != 0);
-}
-#endif
-
-#ifdef __TURBOC__
-#if (defined( __BORLANDC__) || !defined(SMALL_MEDIUM)) && !defined(__32BIT__)
-/* Small and medium model in Turbo C are for now limited to near allocation
- * with reduced MAX_WBITS and MAX_MEM_LEVEL
- */
-# define MY_ZCALLOC
-
-/* Turbo C malloc() does not allow dynamic allocation of 64K bytes
- * and farmalloc(64K) returns a pointer with an offset of 8, so we
- * must fix the pointer. Warning: the pointer must be put back to its
- * original form in order to free it, use zcfree().
- */
-
-#define MAX_PTR 10
-/* 10*64K = 640K */
-
-local int next_ptr = 0;
-
-typedef struct ptr_table_s {
- voidpf org_ptr;
- voidpf new_ptr;
-} ptr_table;
-
-local ptr_table table[MAX_PTR];
-/* This table is used to remember the original form of pointers
- * to large buffers (64K). Such pointers are normalized with a zero offset.
- * Since MSDOS is not a preemptive multitasking OS, this table is not
- * protected from concurrent access. This hack doesn't work anyway on
- * a protected system like OS/2. Use Microsoft C instead.
- */
-
-voidpf zcalloc (voidpf opaque, unsigned items, unsigned size)
-{
- voidpf buf = opaque; /* just to make some compilers happy */
- ulg bsize = (ulg)items*size;
-
- /* If we allocate less than 65520 bytes, we assume that farmalloc
- * will return a usable pointer which doesn't have to be normalized.
- */
- if (bsize < 65520L) {
- buf = farmalloc(bsize);
- if (*(ush*)&buf != 0) return buf;
- } else {
- buf = farmalloc(bsize + 16L);
- }
- if (buf == NULL || next_ptr >= MAX_PTR) return NULL;
- table[next_ptr].org_ptr = buf;
-
- /* Normalize the pointer to seg:0 */
- *((ush*)&buf+1) += ((ush)((uch*)buf-0) + 15) >> 4;
- *(ush*)&buf = 0;
- table[next_ptr++].new_ptr = buf;
- return buf;
-}
-
-void zcfree (voidpf opaque, voidpf ptr)
-{
- int n;
- if (*(ush*)&ptr != 0) { /* object < 64K */
- farfree(ptr);
- return;
- }
- /* Find the original pointer */
- for (n = 0; n < next_ptr; n++) {
- if (ptr != table[n].new_ptr) continue;
-
- farfree(table[n].org_ptr);
- while (++n < next_ptr) {
- table[n-1] = table[n];
- }
- next_ptr--;
- return;
- }
- ptr = opaque; /* just to make some compilers happy */
- Assert(0, "zcfree: ptr not found");
-}
-#endif
-#endif /* __TURBOC__ */
-
-
-#if defined(M_I86) && !defined(__32BIT__)
-/* Microsoft C in 16-bit mode */
-
-# define MY_ZCALLOC
-
-#if (!defined(_MSC_VER) || (_MSC_VER < 600))
-# define _halloc halloc
-# define _hfree hfree
-#endif
-
-voidpf zcalloc (voidpf opaque, unsigned items, unsigned size)
-{
- if (opaque) opaque = 0; /* to make compiler happy */
- return _halloc((long)items, size);
-}
-
-void zcfree (voidpf opaque, voidpf ptr)
-{
- if (opaque) opaque = 0; /* to make compiler happy */
- _hfree(ptr);
-}
-
-#endif /* MSC */
-
-
-#ifndef MY_ZCALLOC /* Any system without a special alloc function */
-
-#ifndef STDC
-extern voidp calloc OF((uInt items, uInt size));
-extern void free OF((voidpf ptr));
-#endif
-
-voidpf zcalloc (opaque, items, size)
- voidpf opaque;
- unsigned items;
- unsigned size;
-{
- if (opaque) items += size - size; /* make compiler happy */
- return (voidpf)calloc(items, size);
-}
-
-void zcfree (opaque, ptr)
- voidpf opaque;
- voidpf ptr;
-{
- free(ptr);
- if (opaque) return; /* make compiler happy */
-}
-
-#endif /* MY_ZCALLOC */
-/* --- zutil.c */
-
-/* +++ adler32.c */
-/* adler32.c -- compute the Adler-32 checksum of a data stream
- * Copyright (C) 1995-1996 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* From: adler32.c,v 1.10 1996/05/22 11:52:18 me Exp $ */
-
-/* #include "zlib.h" */
-
-#define BASE 65521L /* largest prime smaller than 65536 */
-#define NMAX 5552
-/* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
-
-#define DO1(buf,i) {s1 += buf[i]; s2 += s1;}
-#define DO2(buf,i) DO1(buf,i); DO1(buf,i+1);
-#define DO4(buf,i) DO2(buf,i); DO2(buf,i+2);
-#define DO8(buf,i) DO4(buf,i); DO4(buf,i+4);
-#define DO16(buf) DO8(buf,0); DO8(buf,8);
-
-/* ========================================================================= */
-uLong adler32(adler, buf, len)
- uLong adler;
- const Bytef *buf;
- uInt len;
-{
- unsigned long s1 = adler & 0xffff;
- unsigned long s2 = (adler >> 16) & 0xffff;
- int k;
-
- if (buf == Z_NULL) return 1L;
-
- while (len > 0) {
- k = len < NMAX ? len : NMAX;
- len -= k;
- while (k >= 16) {
- DO16(buf);
- buf += 16;
- k -= 16;
- }
- if (k != 0) do {
- s1 += *buf++;
- s2 += s1;
- } while (--k);
- s1 %= BASE;
- s2 %= BASE;
- }
- return (s2 << 16) | s1;
-}
-/* --- adler32.c */
diff --git a/mdk-stage1/ppp/common/zlib.h b/mdk-stage1/ppp/common/zlib.h
deleted file mode 100644
index 188ddaff9..000000000
--- a/mdk-stage1/ppp/common/zlib.h
+++ /dev/null
@@ -1,1010 +0,0 @@
-/* $Id$ */
-
-/*
- * This file is derived from zlib.h and zconf.h from the zlib-1.0.4
- * distribution by Jean-loup Gailly and Mark Adler, with some additions
- * by Paul Mackerras to aid in implementing Deflate compression and
- * decompression for PPP packets.
- */
-
-/*
- * ==FILEVERSION 971127==
- *
- * This marker is used by the Linux installation script to determine
- * whether an up-to-date version of this file is already installed.
- */
-
-
-/* +++ zlib.h */
-/* zlib.h -- interface of the 'zlib' general purpose compression library
- version 1.0.4, Jul 24th, 1996.
-
- Copyright (C) 1995-1996 Jean-loup Gailly and Mark Adler
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-
- Jean-loup Gailly Mark Adler
- gzip@prep.ai.mit.edu madler@alumni.caltech.edu
-
-
- The data format used by the zlib library is described by RFCs (Request for
- Comments) 1950 to 1952 in the files ftp://ds.internic.net/rfc/rfc1950.txt
- (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format).
-*/
-
-#ifndef _ZLIB_H
-#define _ZLIB_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* +++ zconf.h */
-/* zconf.h -- configuration of the zlib compression library
- * Copyright (C) 1995-1996 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* From: zconf.h,v 1.20 1996/07/02 15:09:28 me Exp $ */
-
-#ifndef _ZCONF_H
-#define _ZCONF_H
-
-/*
- * If you *really* need a unique prefix for all types and library functions,
- * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
- */
-#ifdef Z_PREFIX
-# define deflateInit_ z_deflateInit_
-# define deflate z_deflate
-# define deflateEnd z_deflateEnd
-# define inflateInit_ z_inflateInit_
-# define inflate z_inflate
-# define inflateEnd z_inflateEnd
-# define deflateInit2_ z_deflateInit2_
-# define deflateSetDictionary z_deflateSetDictionary
-# define deflateCopy z_deflateCopy
-# define deflateReset z_deflateReset
-# define deflateParams z_deflateParams
-# define inflateInit2_ z_inflateInit2_
-# define inflateSetDictionary z_inflateSetDictionary
-# define inflateSync z_inflateSync
-# define inflateReset z_inflateReset
-# define compress z_compress
-# define uncompress z_uncompress
-# define adler32 z_adler32
-# define crc32 z_crc32
-# define get_crc_table z_get_crc_table
-
-# define Byte z_Byte
-# define uInt z_uInt
-# define uLong z_uLong
-# define Bytef z_Bytef
-# define charf z_charf
-# define intf z_intf
-# define uIntf z_uIntf
-# define uLongf z_uLongf
-# define voidpf z_voidpf
-# define voidp z_voidp
-#endif
-
-#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
-# define WIN32
-#endif
-#if defined(__GNUC__) || defined(WIN32) || defined(__386__) || defined(i386)
-# ifndef __32BIT__
-# define __32BIT__
-# endif
-#endif
-#if defined(__MSDOS__) && !defined(MSDOS)
-# define MSDOS
-#endif
-
-/*
- * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
- * than 64k bytes at a time (needed on systems with 16-bit int).
- */
-#if defined(MSDOS) && !defined(__32BIT__)
-# define MAXSEG_64K
-#endif
-#ifdef MSDOS
-# define UNALIGNED_OK
-#endif
-
-#if (defined(MSDOS) || defined(_WINDOWS) || defined(WIN32)) && !defined(STDC)
-# define STDC
-#endif
-#if (defined(__STDC__) || defined(__cplusplus)) && !defined(STDC)
-# define STDC
-#endif
-
-#ifndef STDC
-# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
-# define const
-# endif
-#endif
-
-/* Some Mac compilers merge all .h files incorrectly: */
-#if defined(__MWERKS__) || defined(applec) ||defined(THINK_C) ||defined(__SC__)
-# define NO_DUMMY_DECL
-#endif
-
-/* Maximum value for memLevel in deflateInit2 */
-#ifndef MAX_MEM_LEVEL
-# ifdef MAXSEG_64K
-# define MAX_MEM_LEVEL 8
-# else
-# define MAX_MEM_LEVEL 9
-# endif
-#endif
-
-/* Maximum value for windowBits in deflateInit2 and inflateInit2 */
-#ifndef MAX_WBITS
-# define MAX_WBITS 15 /* 32K LZ77 window */
-#endif
-
-/* The memory requirements for deflate are (in bytes):
- 1 << (windowBits+2) + 1 << (memLevel+9)
- that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values)
- plus a few kilobytes for small objects. For example, if you want to reduce
- the default memory requirements from 256K to 128K, compile with
- make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
- Of course this will generally degrade compression (there's no free lunch).
-
- The memory requirements for inflate are (in bytes) 1 << windowBits
- that is, 32K for windowBits=15 (default value) plus a few kilobytes
- for small objects.
-*/
-
- /* Type declarations */
-
-#ifndef OF /* function prototypes */
-# ifdef STDC
-# define OF(args) args
-# else
-# define OF(args) ()
-# endif
-#endif
-
-/* The following definitions for FAR are needed only for MSDOS mixed
- * model programming (small or medium model with some far allocations).
- * This was tested only with MSC; for other MSDOS compilers you may have
- * to define NO_MEMCPY in zutil.h. If you don't need the mixed model,
- * just define FAR to be empty.
- */
-#if (defined(M_I86SM) || defined(M_I86MM)) && !defined(__32BIT__)
- /* MSC small or medium model */
-# define SMALL_MEDIUM
-# ifdef _MSC_VER
-# define FAR __far
-# else
-# define FAR far
-# endif
-#endif
-#if defined(__BORLANDC__) && (defined(__SMALL__) || defined(__MEDIUM__))
-# ifndef __32BIT__
-# define SMALL_MEDIUM
-# define FAR __far
-# endif
-#endif
-#ifndef FAR
-# define FAR
-#endif
-
-typedef unsigned char Byte; /* 8 bits */
-typedef unsigned int uInt; /* 16 bits or more */
-typedef unsigned long uLong; /* 32 bits or more */
-
-#if defined(__BORLANDC__) && defined(SMALL_MEDIUM)
- /* Borland C/C++ ignores FAR inside typedef */
-# define Bytef Byte FAR
-#else
- typedef Byte FAR Bytef;
-#endif
-typedef char FAR charf;
-typedef int FAR intf;
-typedef uInt FAR uIntf;
-typedef uLong FAR uLongf;
-
-#ifdef STDC
- typedef void FAR *voidpf;
- typedef void *voidp;
-#else
- typedef Byte FAR *voidpf;
- typedef Byte *voidp;
-#endif
-
-
-/* Compile with -DZLIB_DLL for Windows DLL support */
-#if (defined(_WINDOWS) || defined(WINDOWS)) && defined(ZLIB_DLL)
-# include <windows.h>
-# define EXPORT WINAPI
-#else
-# define EXPORT
-#endif
-
-#endif /* _ZCONF_H */
-/* --- zconf.h */
-
-#define ZLIB_VERSION "1.0.4P"
-
-/*
- The 'zlib' compression library provides in-memory compression and
- decompression functions, including integrity checks of the uncompressed
- data. This version of the library supports only one compression method
- (deflation) but other algorithms may be added later and will have the same
- stream interface.
-
- For compression the application must provide the output buffer and
- may optionally provide the input buffer for optimization. For decompression,
- the application must provide the input buffer and may optionally provide
- the output buffer for optimization.
-
- Compression can be done in a single step if the buffers are large
- enough (for example if an input file is mmap'ed), or can be done by
- repeated calls of the compression function. In the latter case, the
- application must provide more input and/or consume the output
- (providing more output space) before each call.
-
- The library does not install any signal handler. It is recommended to
- add at least a handler for SIGSEGV when decompressing; the library checks
- the consistency of the input data whenever possible but may go nuts
- for some forms of corrupted input.
-*/
-
-typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size));
-typedef void (*free_func) OF((voidpf opaque, voidpf address));
-
-struct internal_state;
-
-typedef struct z_stream_s {
- Bytef *next_in; /* next input byte */
- uInt avail_in; /* number of bytes available at next_in */
- uLong total_in; /* total nb of input bytes read so far */
-
- Bytef *next_out; /* next output byte should be put there */
- uInt avail_out; /* remaining free space at next_out */
- uLong total_out; /* total nb of bytes output so far */
-
- char *msg; /* last error message, NULL if no error */
- struct internal_state FAR *state; /* not visible by applications */
-
- alloc_func zalloc; /* used to allocate the internal state */
- free_func zfree; /* used to free the internal state */
- voidpf opaque; /* private data object passed to zalloc and zfree */
-
- int data_type; /* best guess about the data type: ascii or binary */
- uLong adler; /* adler32 value of the uncompressed data */
- uLong reserved; /* reserved for future use */
-} z_stream;
-
-typedef z_stream FAR *z_streamp;
-
-/*
- The application must update next_in and avail_in when avail_in has
- dropped to zero. It must update next_out and avail_out when avail_out
- has dropped to zero. The application must initialize zalloc, zfree and
- opaque before calling the init function. All other fields are set by the
- compression library and must not be updated by the application.
-
- The opaque value provided by the application will be passed as the first
- parameter for calls of zalloc and zfree. This can be useful for custom
- memory management. The compression library attaches no meaning to the
- opaque value.
-
- zalloc must return Z_NULL if there is not enough memory for the object.
- On 16-bit systems, the functions zalloc and zfree must be able to allocate
- exactly 65536 bytes, but will not be required to allocate more than this
- if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS,
- pointers returned by zalloc for objects of exactly 65536 bytes *must*
- have their offset normalized to zero. The default allocation function
- provided by this library ensures this (see zutil.c). To reduce memory
- requirements and avoid any allocation of 64K objects, at the expense of
- compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h).
-
- The fields total_in and total_out can be used for statistics or
- progress reports. After compression, total_in holds the total size of
- the uncompressed data and may be saved for use in the decompressor
- (particularly if the decompressor wants to decompress everything in
- a single step).
-*/
-
- /* constants */
-
-#define Z_NO_FLUSH 0
-#define Z_PARTIAL_FLUSH 1
-#define Z_PACKET_FLUSH 2
-#define Z_SYNC_FLUSH 3
-#define Z_FULL_FLUSH 4
-#define Z_FINISH 5
-/* Allowed flush values; see deflate() below for details */
-
-#define Z_OK 0
-#define Z_STREAM_END 1
-#define Z_NEED_DICT 2
-#define Z_ERRNO (-1)
-#define Z_STREAM_ERROR (-2)
-#define Z_DATA_ERROR (-3)
-#define Z_MEM_ERROR (-4)
-#define Z_BUF_ERROR (-5)
-#define Z_VERSION_ERROR (-6)
-/* Return codes for the compression/decompression functions. Negative
- * values are errors, positive values are used for special but normal events.
- */
-
-#define Z_NO_COMPRESSION 0
-#define Z_BEST_SPEED 1
-#define Z_BEST_COMPRESSION 9
-#define Z_DEFAULT_COMPRESSION (-1)
-/* compression levels */
-
-#define Z_FILTERED 1
-#define Z_HUFFMAN_ONLY 2
-#define Z_DEFAULT_STRATEGY 0
-/* compression strategy; see deflateInit2() below for details */
-
-#define Z_BINARY 0
-#define Z_ASCII 1
-#define Z_UNKNOWN 2
-/* Possible values of the data_type field */
-
-#define Z_DEFLATED 8
-/* The deflate compression method (the only one supported in this version) */
-
-#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */
-
-#define zlib_version zlibVersion()
-/* for compatibility with versions < 1.0.2 */
-
- /* basic functions */
-
-extern const char * EXPORT zlibVersion OF((void));
-/* The application can compare zlibVersion and ZLIB_VERSION for consistency.
- If the first character differs, the library code actually used is
- not compatible with the zlib.h header file used by the application.
- This check is automatically made by deflateInit and inflateInit.
- */
-
-/*
-extern int EXPORT deflateInit OF((z_streamp strm, int level));
-
- Initializes the internal stream state for compression. The fields
- zalloc, zfree and opaque must be initialized before by the caller.
- If zalloc and zfree are set to Z_NULL, deflateInit updates them to
- use default allocation functions.
-
- The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9:
- 1 gives best speed, 9 gives best compression, 0 gives no compression at
- all (the input data is simply copied a block at a time).
- Z_DEFAULT_COMPRESSION requests a default compromise between speed and
- compression (currently equivalent to level 6).
-
- deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not
- enough memory, Z_STREAM_ERROR if level is not a valid compression level,
- Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible
- with the version assumed by the caller (ZLIB_VERSION).
- msg is set to null if there is no error message. deflateInit does not
- perform any compression: this will be done by deflate().
-*/
-
-
-extern int EXPORT deflate OF((z_streamp strm, int flush));
-/*
- Performs one or both of the following actions:
-
- - Compress more input starting at next_in and update next_in and avail_in
- accordingly. If not all input can be processed (because there is not
- enough room in the output buffer), next_in and avail_in are updated and
- processing will resume at this point for the next call of deflate().
-
- - Provide more output starting at next_out and update next_out and avail_out
- accordingly. This action is forced if the parameter flush is non zero.
- Forcing flush frequently degrades the compression ratio, so this parameter
- should be set only when necessary (in interactive applications).
- Some output may be provided even if flush is not set.
-
- Before the call of deflate(), the application should ensure that at least
- one of the actions is possible, by providing more input and/or consuming
- more output, and updating avail_in or avail_out accordingly; avail_out
- should never be zero before the call. The application can consume the
- compressed output when it wants, for example when the output buffer is full
- (avail_out == 0), or after each call of deflate(). If deflate returns Z_OK
- and with zero avail_out, it must be called again after making room in the
- output buffer because there might be more output pending.
-
- If the parameter flush is set to Z_PARTIAL_FLUSH, the current compression
- block is terminated and flushed to the output buffer so that the
- decompressor can get all input data available so far. For method 9, a future
- variant on method 8, the current block will be flushed but not terminated.
- Z_SYNC_FLUSH has the same effect as partial flush except that the compressed
- output is byte aligned (the compressor can clear its internal bit buffer)
- and the current block is always terminated; this can be useful if the
- compressor has to be restarted from scratch after an interruption (in which
- case the internal state of the compressor may be lost).
- If flush is set to Z_FULL_FLUSH, the compression block is terminated, a
- special marker is output and the compression dictionary is discarded; this
- is useful to allow the decompressor to synchronize if one compressed block
- has been damaged (see inflateSync below). Flushing degrades compression and
- so should be used only when necessary. Using Z_FULL_FLUSH too often can
- seriously degrade the compression. If deflate returns with avail_out == 0,
- this function must be called again with the same value of the flush
- parameter and more output space (updated avail_out), until the flush is
- complete (deflate returns with non-zero avail_out).
-
- If the parameter flush is set to Z_PACKET_FLUSH, the compression
- block is terminated, and a zero-length stored block is output,
- omitting the length bytes (the effect of this is that the 3-bit type
- code 000 for a stored block is output, and the output is then
- byte-aligned). This is designed for use at the end of a PPP packet.
-
- If the parameter flush is set to Z_FINISH, pending input is processed,
- pending output is flushed and deflate returns with Z_STREAM_END if there
- was enough output space; if deflate returns with Z_OK, this function must be
- called again with Z_FINISH and more output space (updated avail_out) but no
- more input data, until it returns with Z_STREAM_END or an error. After
- deflate has returned Z_STREAM_END, the only possible operations on the
- stream are deflateReset or deflateEnd.
-
- Z_FINISH can be used immediately after deflateInit if all the compression
- is to be done in a single step. In this case, avail_out must be at least
- 0.1% larger than avail_in plus 12 bytes. If deflate does not return
- Z_STREAM_END, then it must be called again as described above.
-
- deflate() may update data_type if it can make a good guess about
- the input data type (Z_ASCII or Z_BINARY). In doubt, the data is considered
- binary. This field is only for information purposes and does not affect
- the compression algorithm in any manner.
-
- deflate() returns Z_OK if some progress has been made (more input
- processed or more output produced), Z_STREAM_END if all input has been
- consumed and all output has been produced (only when flush is set to
- Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example
- if next_in or next_out was NULL), Z_BUF_ERROR if no progress is possible.
-*/
-
-
-extern int EXPORT deflateEnd OF((z_streamp strm));
-/*
- All dynamically allocated data structures for this stream are freed.
- This function discards any unprocessed input and does not flush any
- pending output.
-
- deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the
- stream state was inconsistent, Z_DATA_ERROR if the stream was freed
- prematurely (some input or output was discarded). In the error case,
- msg may be set but then points to a static string (which must not be
- deallocated).
-*/
-
-
-/*
-extern int EXPORT inflateInit OF((z_streamp strm));
-
- Initializes the internal stream state for decompression. The fields
- zalloc, zfree and opaque must be initialized before by the caller. If
- zalloc and zfree are set to Z_NULL, inflateInit updates them to use default
- allocation functions.
-
- inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not
- enough memory, Z_VERSION_ERROR if the zlib library version is incompatible
- with the version assumed by the caller. msg is set to null if there is no
- error message. inflateInit does not perform any decompression: this will be
- done by inflate().
-*/
-
-
-extern int EXPORT inflate OF((z_streamp strm, int flush));
-/*
- Performs one or both of the following actions:
-
- - Decompress more input starting at next_in and update next_in and avail_in
- accordingly. If not all input can be processed (because there is not
- enough room in the output buffer), next_in is updated and processing
- will resume at this point for the next call of inflate().
-
- - Provide more output starting at next_out and update next_out and avail_out
- accordingly. inflate() provides as much output as possible, until there
- is no more input data or no more space in the output buffer (see below
- about the flush parameter).
-
- Before the call of inflate(), the application should ensure that at least
- one of the actions is possible, by providing more input and/or consuming
- more output, and updating the next_* and avail_* values accordingly.
- The application can consume the uncompressed output when it wants, for
- example when the output buffer is full (avail_out == 0), or after each
- call of inflate(). If inflate returns Z_OK and with zero avail_out, it
- must be called again after making room in the output buffer because there
- might be more output pending.
-
- If the parameter flush is set to Z_PARTIAL_FLUSH or Z_PACKET_FLUSH,
- inflate flushes as much output as possible to the output buffer. The
- flushing behavior of inflate is not specified for values of the flush
- parameter other than Z_PARTIAL_FLUSH, Z_PACKET_FLUSH or Z_FINISH, but the
- current implementation actually flushes as much output as possible
- anyway. For Z_PACKET_FLUSH, inflate checks that once all the input data
- has been consumed, it is expecting to see the length field of a stored
- block; if not, it returns Z_DATA_ERROR.
-
- inflate() should normally be called until it returns Z_STREAM_END or an
- error. However if all decompression is to be performed in a single step
- (a single call of inflate), the parameter flush should be set to
- Z_FINISH. In this case all pending input is processed and all pending
- output is flushed; avail_out must be large enough to hold all the
- uncompressed data. (The size of the uncompressed data may have been saved
- by the compressor for this purpose.) The next operation on this stream must
- be inflateEnd to deallocate the decompression state. The use of Z_FINISH
- is never required, but can be used to inform inflate that a faster routine
- may be used for the single inflate() call.
-
- inflate() returns Z_OK if some progress has been made (more input
- processed or more output produced), Z_STREAM_END if the end of the
- compressed data has been reached and all uncompressed output has been
- produced, Z_NEED_DICT if a preset dictionary is needed at this point (see
- inflateSetDictionary below), Z_DATA_ERROR if the input data was corrupted,
- Z_STREAM_ERROR if the stream structure was inconsistent (for example if
- next_in or next_out was NULL), Z_MEM_ERROR if there was not enough memory,
- Z_BUF_ERROR if no progress is possible or if there was not enough room in
- the output buffer when Z_FINISH is used. In the Z_DATA_ERROR case, the
- application may then call inflateSync to look for a good compression block.
- In the Z_NEED_DICT case, strm->adler is set to the Adler32 value of the
- dictionary chosen by the compressor.
-*/
-
-
-extern int EXPORT inflateEnd OF((z_streamp strm));
-/*
- All dynamically allocated data structures for this stream are freed.
- This function discards any unprocessed input and does not flush any
- pending output.
-
- inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state
- was inconsistent. In the error case, msg may be set but then points to a
- static string (which must not be deallocated).
-*/
-
- /* Advanced functions */
-
-/*
- The following functions are needed only in some special applications.
-*/
-
-/*
-extern int EXPORT deflateInit2 OF((z_streamp strm,
- int level,
- int method,
- int windowBits,
- int memLevel,
- int strategy));
-
- This is another version of deflateInit with more compression options. The
- fields next_in, zalloc, zfree and opaque must be initialized before by
- the caller.
-
- The method parameter is the compression method. It must be Z_DEFLATED in
- this version of the library. (Method 9 will allow a 64K history buffer and
- partial block flushes.)
-
- The windowBits parameter is the base two logarithm of the window size
- (the size of the history buffer). It should be in the range 8..15 for this
- version of the library (the value 16 will be allowed for method 9). Larger
- values of this parameter result in better compression at the expense of
- memory usage. The default value is 15 if deflateInit is used instead.
-
- The memLevel parameter specifies how much memory should be allocated
- for the internal compression state. memLevel=1 uses minimum memory but
- is slow and reduces compression ratio; memLevel=9 uses maximum memory
- for optimal speed. The default value is 8. See zconf.h for total memory
- usage as a function of windowBits and memLevel.
-
- The strategy parameter is used to tune the compression algorithm. Use the
- value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a
- filter (or predictor), or Z_HUFFMAN_ONLY to force Huffman encoding only (no
- string match). Filtered data consists mostly of small values with a
- somewhat random distribution. In this case, the compression algorithm is
- tuned to compress them better. The effect of Z_FILTERED is to force more
- Huffman coding and less string matching; it is somewhat intermediate
- between Z_DEFAULT and Z_HUFFMAN_ONLY. The strategy parameter only affects
- the compression ratio but not the correctness of the compressed output even
- if it is not set appropriately.
-
- If next_in is not null, the library will use this buffer to hold also
- some history information; the buffer must either hold the entire input
- data, or have at least 1<<(windowBits+1) bytes and be writable. If next_in
- is null, the library will allocate its own history buffer (and leave next_in
- null). next_out need not be provided here but must be provided by the
- application for the next call of deflate().
-
- If the history buffer is provided by the application, next_in must
- must never be changed by the application since the compressor maintains
- information inside this buffer from call to call; the application
- must provide more input only by increasing avail_in. next_in is always
- reset by the library in this case.
-
- deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was
- not enough memory, Z_STREAM_ERROR if a parameter is invalid (such as
- an invalid method). msg is set to null if there is no error message.
- deflateInit2 does not perform any compression: this will be done by
- deflate().
-*/
-
-extern int EXPORT deflateSetDictionary OF((z_streamp strm,
- const Bytef *dictionary,
- uInt dictLength));
-/*
- Initializes the compression dictionary (history buffer) from the given
- byte sequence without producing any compressed output. This function must
- be called immediately after deflateInit or deflateInit2, before any call
- of deflate. The compressor and decompressor must use exactly the same
- dictionary (see inflateSetDictionary).
- The dictionary should consist of strings (byte sequences) that are likely
- to be encountered later in the data to be compressed, with the most commonly
- used strings preferably put towards the end of the dictionary. Using a
- dictionary is most useful when the data to be compressed is short and
- can be predicted with good accuracy; the data can then be compressed better
- than with the default empty dictionary. In this version of the library,
- only the last 32K bytes of the dictionary are used.
- Upon return of this function, strm->adler is set to the Adler32 value
- of the dictionary; the decompressor may later use this value to determine
- which dictionary has been used by the compressor. (The Adler32 value
- applies to the whole dictionary even if only a subset of the dictionary is
- actually used by the compressor.)
-
- deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a
- parameter is invalid (such as NULL dictionary) or the stream state
- is inconsistent (for example if deflate has already been called for this
- stream). deflateSetDictionary does not perform any compression: this will
- be done by deflate().
-*/
-
-extern int EXPORT deflateCopy OF((z_streamp dest,
- z_streamp source));
-/*
- Sets the destination stream as a complete copy of the source stream. If
- the source stream is using an application-supplied history buffer, a new
- buffer is allocated for the destination stream. The compressed output
- buffer is always application-supplied. It's the responsibility of the
- application to provide the correct values of next_out and avail_out for the
- next call of deflate.
-
- This function can be useful when several compression strategies will be
- tried, for example when there are several ways of pre-processing the input
- data with a filter. The streams that will be discarded should then be freed
- by calling deflateEnd. Note that deflateCopy duplicates the internal
- compression state which can be quite large, so this strategy is slow and
- can consume lots of memory.
-
- deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
- enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
- (such as zalloc being NULL). msg is left unchanged in both source and
- destination.
-*/
-
-extern int EXPORT deflateReset OF((z_streamp strm));
-/*
- This function is equivalent to deflateEnd followed by deflateInit,
- but does not free and reallocate all the internal compression state.
- The stream will keep the same compression level and any other attributes
- that may have been set by deflateInit2.
-
- deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
- stream state was inconsistent (such as zalloc or state being NULL).
-*/
-
-extern int EXPORT deflateParams OF((z_streamp strm, int level, int strategy));
-/*
- Dynamically update the compression level and compression strategy.
- This can be used to switch between compression and straight copy of
- the input data, or to switch to a different kind of input data requiring
- a different strategy. If the compression level is changed, the input
- available so far is compressed with the old level (and may be flushed);
- the new level will take effect only at the next call of deflate().
-
- Before the call of deflateParams, the stream state must be set as for
- a call of deflate(), since the currently available input may have to
- be compressed and flushed. In particular, strm->avail_out must be non-zero.
-
- deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source
- stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR
- if strm->avail_out was zero.
-*/
-
-extern int EXPORT deflateOutputPending OF((z_streamp strm));
-/*
- Returns the number of bytes of output which are immediately
- available from the compressor (i.e. without any further input
- or flush).
-*/
-
-/*
-extern int EXPORT inflateInit2 OF((z_streamp strm,
- int windowBits));
-
- This is another version of inflateInit with more compression options. The
- fields next_out, zalloc, zfree and opaque must be initialized before by
- the caller.
-
- The windowBits parameter is the base two logarithm of the maximum window
- size (the size of the history buffer). It should be in the range 8..15 for
- this version of the library (the value 16 will be allowed soon). The
- default value is 15 if inflateInit is used instead. If a compressed stream
- with a larger window size is given as input, inflate() will return with
- the error code Z_DATA_ERROR instead of trying to allocate a larger window.
-
- If next_out is not null, the library will use this buffer for the history
- buffer; the buffer must either be large enough to hold the entire output
- data, or have at least 1<<windowBits bytes. If next_out is null, the
- library will allocate its own buffer (and leave next_out null). next_in
- need not be provided here but must be provided by the application for the
- next call of inflate().
-
- If the history buffer is provided by the application, next_out must
- never be changed by the application since the decompressor maintains
- history information inside this buffer from call to call; the application
- can only reset next_out to the beginning of the history buffer when
- avail_out is zero and all output has been consumed.
-
- inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was
- not enough memory, Z_STREAM_ERROR if a parameter is invalid (such as
- windowBits < 8). msg is set to null if there is no error message.
- inflateInit2 does not perform any decompression: this will be done by
- inflate().
-*/
-
-extern int EXPORT inflateSetDictionary OF((z_streamp strm,
- const Bytef *dictionary,
- uInt dictLength));
-/*
- Initializes the decompression dictionary (history buffer) from the given
- uncompressed byte sequence. This function must be called immediately after
- a call of inflate if this call returned Z_NEED_DICT. The dictionary chosen
- by the compressor can be determined from the Adler32 value returned by this
- call of inflate. The compressor and decompressor must use exactly the same
- dictionary (see deflateSetDictionary).
-
- inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a
- parameter is invalid (such as NULL dictionary) or the stream state is
- inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the
- expected one (incorrect Adler32 value). inflateSetDictionary does not
- perform any decompression: this will be done by subsequent calls of
- inflate().
-*/
-
-extern int EXPORT inflateSync OF((z_streamp strm));
-/*
- Skips invalid compressed data until the special marker (see deflate()
- above) can be found, or until all available input is skipped. No output
- is provided.
-
- inflateSync returns Z_OK if the special marker has been found, Z_BUF_ERROR
- if no more input was provided, Z_DATA_ERROR if no marker has been found,
- or Z_STREAM_ERROR if the stream structure was inconsistent. In the success
- case, the application may save the current current value of total_in which
- indicates where valid compressed data was found. In the error case, the
- application may repeatedly call inflateSync, providing more input each time,
- until success or end of the input data.
-*/
-
-extern int EXPORT inflateReset OF((z_streamp strm));
-/*
- This function is equivalent to inflateEnd followed by inflateInit,
- but does not free and reallocate all the internal decompression state.
- The stream will keep attributes that may have been set by inflateInit2.
-
- inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
- stream state was inconsistent (such as zalloc or state being NULL).
-*/
-
-extern int inflateIncomp OF((z_stream *strm));
-/*
- This function adds the data at next_in (avail_in bytes) to the output
- history without performing any output. There must be no pending output,
- and the decompressor must be expecting to see the start of a block.
- Calling this function is equivalent to decompressing a stored block
- containing the data at next_in (except that the data is not output).
-*/
-
- /* utility functions */
-
-/*
- The following utility functions are implemented on top of the
- basic stream-oriented functions. To simplify the interface, some
- default options are assumed (compression level, window size,
- standard memory allocation functions). The source code of these
- utility functions can easily be modified if you need special options.
-*/
-
-extern int EXPORT compress OF((Bytef *dest, uLongf *destLen,
- const Bytef *source, uLong sourceLen));
-/*
- Compresses the source buffer into the destination buffer. sourceLen is
- the byte length of the source buffer. Upon entry, destLen is the total
- size of the destination buffer, which must be at least 0.1% larger than
- sourceLen plus 12 bytes. Upon exit, destLen is the actual size of the
- compressed buffer.
- This function can be used to compress a whole file at once if the
- input file is mmap'ed.
- compress returns Z_OK if success, Z_MEM_ERROR if there was not
- enough memory, Z_BUF_ERROR if there was not enough room in the output
- buffer.
-*/
-
-extern int EXPORT uncompress OF((Bytef *dest, uLongf *destLen,
- const Bytef *source, uLong sourceLen));
-/*
- Decompresses the source buffer into the destination buffer. sourceLen is
- the byte length of the source buffer. Upon entry, destLen is the total
- size of the destination buffer, which must be large enough to hold the
- entire uncompressed data. (The size of the uncompressed data must have
- been saved previously by the compressor and transmitted to the decompressor
- by some mechanism outside the scope of this compression library.)
- Upon exit, destLen is the actual size of the compressed buffer.
- This function can be used to decompress a whole file at once if the
- input file is mmap'ed.
-
- uncompress returns Z_OK if success, Z_MEM_ERROR if there was not
- enough memory, Z_BUF_ERROR if there was not enough room in the output
- buffer, or Z_DATA_ERROR if the input data was corrupted.
-*/
-
-
-typedef voidp gzFile;
-
-extern gzFile EXPORT gzopen OF((const char *path, const char *mode));
-/*
- Opens a gzip (.gz) file for reading or writing. The mode parameter
- is as in fopen ("rb" or "wb") but can also include a compression level
- ("wb9"). gzopen can be used to read a file which is not in gzip format;
- in this case gzread will directly read from the file without decompression.
- gzopen returns NULL if the file could not be opened or if there was
- insufficient memory to allocate the (de)compression state; errno
- can be checked to distinguish the two cases (if errno is zero, the
- zlib error is Z_MEM_ERROR).
-*/
-
-extern gzFile EXPORT gzdopen OF((int fd, const char *mode));
-/*
- gzdopen() associates a gzFile with the file descriptor fd. File
- descriptors are obtained from calls like open, dup, creat, pipe or
- fileno (in the file has been previously opened with fopen).
- The mode parameter is as in gzopen.
- The next call of gzclose on the returned gzFile will also close the
- file descriptor fd, just like fclose(fdopen(fd), mode) closes the file
- descriptor fd. If you want to keep fd open, use gzdopen(dup(fd), mode).
- gzdopen returns NULL if there was insufficient memory to allocate
- the (de)compression state.
-*/
-
-extern int EXPORT gzread OF((gzFile file, voidp buf, unsigned len));
-/*
- Reads the given number of uncompressed bytes from the compressed file.
- If the input file was not in gzip format, gzread copies the given number
- of bytes into the buffer.
- gzread returns the number of uncompressed bytes actually read (0 for
- end of file, -1 for error). */
-
-extern int EXPORT gzwrite OF((gzFile file, const voidp buf, unsigned len));
-/*
- Writes the given number of uncompressed bytes into the compressed file.
- gzwrite returns the number of uncompressed bytes actually written
- (0 in case of error).
-*/
-
-extern int EXPORT gzflush OF((gzFile file, int flush));
-/*
- Flushes all pending output into the compressed file. The parameter
- flush is as in the deflate() function. The return value is the zlib
- error number (see function gzerror below). gzflush returns Z_OK if
- the flush parameter is Z_FINISH and all output could be flushed.
- gzflush should be called only when strictly necessary because it can
- degrade compression.
-*/
-
-extern int EXPORT gzclose OF((gzFile file));
-/*
- Flushes all pending output if necessary, closes the compressed file
- and deallocates all the (de)compression state. The return value is the zlib
- error number (see function gzerror below).
-*/
-
-extern const char * EXPORT gzerror OF((gzFile file, int *errnum));
-/*
- Returns the error message for the last error which occurred on the
- given compressed file. errnum is set to zlib error number. If an
- error occurred in the file system and not in the compression library,
- errnum is set to Z_ERRNO and the application may consult errno
- to get the exact error code.
-*/
-
- /* checksum functions */
-
-/*
- These functions are not related to compression but are exported
- anyway because they might be useful in applications using the
- compression library.
-*/
-
-extern uLong EXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len));
-
-/*
- Update a running Adler-32 checksum with the bytes buf[0..len-1] and
- return the updated checksum. If buf is NULL, this function returns
- the required initial value for the checksum.
- An Adler-32 checksum is almost as reliable as a CRC32 but can be computed
- much faster. Usage example:
-
- uLong adler = adler32(0L, Z_NULL, 0);
-
- while (read_buffer(buffer, length) != EOF) {
- adler = adler32(adler, buffer, length);
- }
- if (adler != original_adler) error();
-*/
-
-extern uLong EXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len));
-/*
- Update a running crc with the bytes buf[0..len-1] and return the updated
- crc. If buf is NULL, this function returns the required initial value
- for the crc. Pre- and post-conditioning (one's complement) is performed
- within this function so it shouldn't be done by the application.
- Usage example:
-
- uLong crc = crc32(0L, Z_NULL, 0);
-
- while (read_buffer(buffer, length) != EOF) {
- crc = crc32(crc, buffer, length);
- }
- if (crc != original_crc) error();
-*/
-
-
- /* various hacks, don't look :) */
-
-/* deflateInit and inflateInit are macros to allow checking the zlib version
- * and the compiler's view of z_stream:
- */
-extern int EXPORT deflateInit_ OF((z_streamp strm, int level,
- const char *version, int stream_size));
-extern int EXPORT inflateInit_ OF((z_streamp strm,
- const char *version, int stream_size));
-extern int EXPORT deflateInit2_ OF((z_streamp strm, int level, int method,
- int windowBits, int memLevel, int strategy,
- const char *version, int stream_size));
-extern int EXPORT inflateInit2_ OF((z_streamp strm, int windowBits,
- const char *version, int stream_size));
-#define deflateInit(strm, level) \
- deflateInit_((strm), (level), ZLIB_VERSION, sizeof(z_stream))
-#define inflateInit(strm) \
- inflateInit_((strm), ZLIB_VERSION, sizeof(z_stream))
-#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \
- deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\
- (strategy), ZLIB_VERSION, sizeof(z_stream))
-#define inflateInit2(strm, windowBits) \
- inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream))
-
-#if !defined(_Z_UTIL_H) && !defined(NO_DUMMY_DECL)
- struct internal_state {int dummy;}; /* hack for buggy compilers */
-#endif
-
-uLongf *get_crc_table OF((void)); /* can be used by asm versions of crc32() */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _ZLIB_H */
-/* --- zlib.h */
diff --git a/mdk-stage1/ppp/configure b/mdk-stage1/ppp/configure
deleted file mode 100755
index 544fb0d71..000000000
--- a/mdk-stage1/ppp/configure
+++ /dev/null
@@ -1,141 +0,0 @@
-#!/bin/sh
-# $Id$
-
-# if [ -d /NextApps ]; then
-# system="NeXTStep"
-# else
- system=`uname -s`
- release=`uname -r`
- machine=`uname -p`
- arch=`uname -m`
-# fi
-state="unknown"
-
-case $system in
- Linux)
- makext="linux";
- ksrc="linux";
- state="known";;
- SunOS)
- case $release in
-# [0-3]*) state="ancient";;
-# 4*) state="known"; ksrc="sunos4"; makext="sunos4";;
- 5.[1-6]*) state="known"; ksrc="solaris"; makext="sol2";;
- 5.[7-9]*) state="known"; ksrc="solaris"; makext="sol2";
- case $arch in
- sun4u) lp64='y';;
- *) ;;
- esac;;
- esac;;
- NetBSD|FreeBSD|ULTRIX|OSF1|NeXTStep|SINIX-?|UNIX_SV|UNIX_System_V)
- state="notincluded";;
-# NetBSD)
-# makext="bsd";
-# case $release in
-# 0.*) state="ancient";;
-# 1.0*) state="ancient";;
-# 1.1*) state="known"; ksrc="netbsd-1.1";;
-# 1.2*) state="known"; ksrc="netbsd-1.2"; makext="netbsd-1.2";;
-# 1.[3-9]*|[2-9]*)
-# state="late"; ksrc="netbsd-1.2";;
-# esac;;
-# ULTRIX)
-# makext="ultrix";
-# case $release in
-# [0-3]*) state="ancient";;
-# 4.[01]*) state="early"; ksrc="ultrix";;
-# 4.[234]) state="known"; ksrc="ultrix";;
-# esac;;
-# OSF1)
-# makext="osf";
-# case $release in
-# V1.*) state="neolithic"; ksrc="osf1";;
-# V[23].*) state="neolithic"; ksrc="osf1";;
-# V4.*) state="known"; ksrc="osf1";;
-# V[5-9]*) state="late"; ksrc="osf1";;
-# esac;;
-# FreeBSD)
-# makext="bsd";
-# case $release in
-# 1.*) state="known"; ksrc="freebsd-old";;
-# 2.[01]*) state="known"; ksrc="freebsd-2.0";;
-# 2.2.[2-7]*) state="late"; ksrc="freebsd-2.0";;
-# 2.2.8*) state="known"; ksrc="freebsd-2.2.8";;
-# 3.[0-1]*) state="known"; ksrc="freebsd-3.0";;
-# esac;;
-# NeXTStep)
-# makext="NeXT";
-# ksrc="NeXT";
-# state="known";;
-# SINIX-?)
-# case $release in
-# 5.4[01]) state=known; ksrc=svr4; makext=svr4;;
-# 5.4[2-9]) state=late; ksrc=svr4; makext=svr4;;
-# esac;;
-# # Intel SVR4 systems come with a bug in the uname program. Unless
-# # your provider fixed the bug, or you get a fix for it, uname -S will
-# # overwrite the system name with the node name!
-# UNIX_SV|UNIX_System_V|`uname -n`)
-# case $release in
-# 4.0) state=known; ksrc=svr4; makext=svr4;;
-# 4.2) state=late; ksrc=svr4; makext=svr4;;
-# esac;;
-esac
-
-if [ -d "$ksrc" ]; then :; else
- state="notincluded"
- unset ksrc
-fi
-
-case $state in
- neolithic)
- echo "This is a newer release on an outdated OS ($system)."
- echo " This software may or may not work on this OS."
- echo " You may want to download an older version of PPP for this OS.";;
- ancient)
- echo "This is an old release of a supported OS ($system)."
- echo "This software cannot be used as-is on this system,"
- echo "but you may be able to port it. Good luck!"
- exit;;
- early)
- echo "This is an old release of a supported OS ($system)."
- echo "This software should install and run on this system,"
- echo "but it hasn't been tested.";;
- late)
- echo "This is a newer release of $system than is supported by"
- echo "this software. It may or may not work.";;
- unknown)
- echo "This software has not been ported to this system. Sorry.";;
- notincluded)
- echo "Support for this system has not been included"
- echo "in this distribution. Sorry.";;
-esac
-
-orig_makext=$makext
-
-if [ -d "$ksrc" ]; then
- echo "Creating links to Makefiles."
- rm -f Makefile
- ln -s $ksrc/Makefile.top Makefile
- echo " Makefile -> $ksrc/Makefile.top"
- if [ "$ksrc" = solaris ]; then
- # Point to 64-bit Makefile extension
- if [ "$lp64" = y ]; then
- makext=$makext-64
- fi
- rm -f $ksrc/Makefile
- ln -s Makefile.$makext $ksrc/Makefile
- echo " $ksrc/Makefile -> Makefile.$makext"
- # Restore extension
- if [ "$lp64" = y ]; then
- makext=$orig_makext
- fi
- fi
- for dir in pppd pppstats chat pppdump; do
- rm -f $dir/Makefile
- if [ -f $dir/Makefile.$makext ]; then
- ln -s Makefile.$makext $dir/Makefile
- echo " $dir/Makefile -> Makefile.$makext"
- fi
- done
-fi
diff --git a/mdk-stage1/ppp/contrib/pppgetpass/Makefile.linux b/mdk-stage1/ppp/contrib/pppgetpass/Makefile.linux
deleted file mode 100644
index 7eb217dac..000000000
--- a/mdk-stage1/ppp/contrib/pppgetpass/Makefile.linux
+++ /dev/null
@@ -1,16 +0,0 @@
-all: pppgetpass.vt pppgetpass.gtk
-
-pppgetpass.vt: pppgetpass.vt.o
-
-pppgetpass.gtk: pppgetpass.gtk.o
- $(CC) $(LDFLAGS) pppgetpass.gtk.o `gtk-config --libs` -o pppgetpass.gtk
-pppgetpass.gtk.o: pppgetpass.gtk.c
- $(CC) $(CFLAGS) -c pppgetpass.gtk.c `gtk-config --cflags`
-
-install: all
- install -m 755 pppgetpass.sh /usr/bin/pppgetpass
- install -m 4755 -o root -g root pppgetpass.vt /usr/bin/
- install -m 755 -o root -g root pppgetpass.gtk /usr/X11/bin/
-
-clean:
- rm -f *.o pppgetpass.gtk pppgetpass.vt core
diff --git a/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.8 b/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.8
deleted file mode 100644
index ade576970..000000000
--- a/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.8
+++ /dev/null
@@ -1,18 +0,0 @@
-.TH PPPGETPASS 8 "26 Sep 1999"
-.SH NAME
-pppgetpass \- prompt for PAP password
-.SH SYNOPSIS
-.B pppgetpass
-.I client server fd
-.SH DESCRIPTION
-.B pppgetpass
-the outer half of a plugin for PAP password prompting in pppd.
-If the peer requires PAP, and the
-.B passprompt.so
-plugin is loaded into pppd, it will run
-.B /usr/sbin/pppgetpass
-(or another program specified by the
-.B promptprog
-option) to prompt the user for the password.
-.SH SEE ALSO
-pppd(8)
diff --git a/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.gtk.c b/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.gtk.c
deleted file mode 100644
index 48ca04202..000000000
--- a/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.gtk.c
+++ /dev/null
@@ -1,92 +0,0 @@
-#include <glib.h>
-#include <gdk/gdk.h>
-#include <gtk/gtkwindow.h>
-#include <gtk/gtkmain.h>
-#include <gtk/gtkbutton.h>
-#include <gtk/gtkvbox.h>
-#include <gtk/gtklabel.h>
-#include <gtk/gtkentry.h>
-#include <gtk/gtksignal.h>
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <syslog.h>
-
-int outfd;
-int err;
-
-static void okpressed(void *widget, void *clientdata)
-{
- GtkWidget *answer=clientdata;
- gchar *pass;
- int passlen;
- ssize_t wrote;
- (void)widget;
-
- pass=gtk_entry_get_text(GTK_ENTRY(answer));
-
- passlen=strlen(pass);
- if(!passlen)
- return;
-
- if((wrote=write(outfd, pass, passlen))!=passlen) {
- if(wrote<0)
- syslog(LOG_ERR, "write error on outpipe: %m");
- else
- syslog(LOG_ERR, "short write on outpipe");
- err=1;
- }
- gtk_main_quit();
-}
-
-int main(int argc, char **argv)
-{
- GtkWidget *mainwindow, *vbox, *question, *answer, *ok;
- char buf[1024];
- gtk_init(&argc, &argv);
-
- openlog(argv[0], LOG_PID, LOG_DAEMON);
- if(argc!=4) {
- syslog(LOG_WARNING, "Usage error");
- return 1;
- }
- outfd=atoi(argv[3]);
- mainwindow=gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title(GTK_WINDOW(mainwindow), "pppgetpass");
- gtk_signal_connect(GTK_OBJECT(mainwindow), "destroy",
- GTK_SIGNAL_FUNC(gtk_main_quit), 0);
-
- vbox=gtk_vbox_new(FALSE, 5);
- gtk_container_add(GTK_CONTAINER(mainwindow), vbox);
- gtk_widget_show(vbox);
-
- if(argv[1][0] && argv[2][0])
- snprintf(buf, sizeof buf, "Password for PPP client %s on server %s: ", argv[1], argv[2]);
- else if(argv[1][0] && !argv[2][0])
- snprintf(buf, sizeof buf, "Password for PPP client %s: ", argv[1]);
- else if(!argv[1][0] && argv[2][0])
- snprintf(buf, sizeof buf, "Password for PPP on server %s: ", argv[2]);
- else
- snprintf(buf, sizeof buf, "Enter PPP password: ");
- question=gtk_label_new(buf);
- gtk_box_pack_start(GTK_BOX(vbox), question, FALSE, TRUE, 0);
- gtk_widget_show(question);
-
- answer=gtk_entry_new();
- gtk_entry_set_visibility(GTK_ENTRY(answer), 0);
- gtk_box_pack_start(GTK_BOX(vbox), answer, FALSE, TRUE, 0);
- gtk_widget_show(answer);
-
- ok=gtk_button_new_with_label("OK");
- gtk_box_pack_start(GTK_BOX(vbox), ok, FALSE, TRUE, 0);
- gtk_signal_connect(GTK_OBJECT(ok), "clicked",
- GTK_SIGNAL_FUNC(okpressed), answer);
- gtk_widget_show(ok);
-
- gtk_widget_show(mainwindow);
- gtk_main();
-
- return err;
-}
diff --git a/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.sh b/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.sh
deleted file mode 100644
index 09c480519..000000000
--- a/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-if [ -z "$DISPLAY" ]; then
- exec pppgetpass.vt "$@"
-else
- exec pppgetpass.gtk "$@"
-fi
diff --git a/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.vt.c b/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.vt.c
deleted file mode 100644
index a1520883c..000000000
--- a/mdk-stage1/ppp/contrib/pppgetpass/pppgetpass.vt.c
+++ /dev/null
@@ -1,218 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <sys/ioctl.h>
-#include <syslog.h>
-#include <termios.h>
-#include <sys/vt.h>
-
-static int console_owner(uid_t, int);
-
-int main(int argc, char **argv)
-{
- int console;
- uid_t uid;
- struct vt_stat origstate;
- int openvtnum;
- char openvtname[256];
- int openvt;
- gid_t gid;
- int chowned;
- FILE *fp;
- struct termios t;
- char pass[256], *nl;
- int outfd, passlen;
- ssize_t wrote;
- console=open("/dev/console", O_RDWR);
-
- uid=getuid();
- gid=getgid();
- seteuid(uid);
-
- openlog(argv[0], LOG_PID, LOG_DAEMON);
-
- if(argc!=4) {
- syslog(LOG_WARNING, "Usage error");
- return 1;
- }
-
- if(console<0) {
- syslog(LOG_ERR, "open(/dev/console): %m");
- return 1;
- }
-
- if(ioctl(console, VT_GETSTATE, &origstate)<0) {
- syslog(LOG_ERR, "VT_GETSTATE: %m");
- return 1;
- }
-
- if(uid) {
- if(!console_owner(uid, origstate.v_active)) {
- int i;
- for(i=0;i<64;++i) {
- if(i!=origstate.v_active && console_owner(uid, i))
- break;
- }
- if(i==64) {
- syslog(LOG_WARNING, "run by uid %lu not at console", (unsigned long)uid);
- return 1;
- }
- }
- }
-
- if(ioctl(console, VT_OPENQRY, &openvtnum)<0) {
- syslog(LOG_ERR, "VT_OPENQRY: %m");
- return 1;
- }
- if(openvtnum==-1) {
- syslog(LOG_ERR, "No free VTs");
- return 1;
- }
-
- snprintf(openvtname, sizeof openvtname, "/dev/tty%d", openvtnum);
- seteuid(0);
- openvt=open(openvtname, O_RDWR);
- if(openvt<0) {
- seteuid(uid);
- syslog(LOG_ERR, "open(%s): %m", openvtname);
- return 1;
- }
-
- chowned=fchown(openvt, uid, gid);
- if(chowned<0) {
- seteuid(uid);
- syslog(LOG_ERR, "fchown(%s): %m", openvtname);
- return 1;
- }
-
- close(console);
-
- if(ioctl(openvt, VT_ACTIVATE, openvtnum)<0) {
- seteuid(uid);
- syslog(LOG_ERR, "VT_ACTIVATE(%d): %m", openvtnum);
- return 1;
- }
-
- while(ioctl(openvt, VT_WAITACTIVE, openvtnum)<0) {
- if(errno!=EINTR) {
- ioctl(openvt, VT_ACTIVATE, origstate.v_active);
- seteuid(uid);
- syslog(LOG_ERR, "VT_WAITACTIVE(%d): %m", openvtnum);
- return 1;
- }
- }
-
- seteuid(uid);
- fp=fdopen(openvt, "r+");
- if(!fp) {
- seteuid(0);
- ioctl(openvt, VT_ACTIVATE, origstate.v_active);
- seteuid(uid);
- syslog(LOG_ERR, "fdopen(%s): %m", openvtname);
- return 1;
- }
-
- if(tcgetattr(openvt, &t)<0) {
- seteuid(0);
- ioctl(openvt, VT_ACTIVATE, origstate.v_active);
- seteuid(uid);
- syslog(LOG_ERR, "tcgetattr(%s): %m", openvtname);
- return 1;
- }
- t.c_lflag &= ~ECHO;
- if(tcsetattr(openvt, TCSANOW, &t)<0) {
- seteuid(0);
- ioctl(openvt, VT_ACTIVATE, origstate.v_active);
- seteuid(uid);
- syslog(LOG_ERR, "tcsetattr(%s): %m", openvtname);
- return 1;
- }
-
- if(fprintf(fp, "\033[2J\033[H")<0) {
- seteuid(0);
- ioctl(openvt, VT_ACTIVATE, origstate.v_active);
- seteuid(uid);
- syslog(LOG_ERR, "write error on %s: %m", openvtname);
- return 1;
- }
- if(argv[1][0] && argv[2][0]) {
- if(fprintf(fp, "Password for PPP client %s on server %s: ", argv[1], argv[2])<0) {
- seteuid(0);
- ioctl(openvt, VT_ACTIVATE, origstate.v_active);
- seteuid(uid);
- syslog(LOG_ERR, "write error on %s: %m", openvtname);
- return 1;
- }
- } else if(argv[1][0] && !argv[2][0]) {
- if(fprintf(fp, "Password for PPP client %s: ", argv[1])<0) {
- syslog(LOG_ERR, "write error on %s: %m", openvtname);
- seteuid(0);
- ioctl(openvt, VT_ACTIVATE, origstate.v_active);
- seteuid(uid);
- return 1;
- }
- } else if(!argv[1][0] && argv[2][0]) {
- if(fprintf(fp, "Password for PPP on server %s: ", argv[2])<0) {
- seteuid(0);
- ioctl(openvt, VT_ACTIVATE, origstate.v_active);
- seteuid(uid);
- syslog(LOG_ERR, "write error on %s: %m", openvtname);
- return 1;
- }
- } else {
- if(fprintf(fp, "Enter PPP password: ")<0) {
- seteuid(0);
- ioctl(openvt, VT_ACTIVATE, origstate.v_active);
- seteuid(uid);
- syslog(LOG_ERR, "write error on %s: %m", openvtname);
- return 1;
- }
- }
-
- if(!fgets(pass, sizeof pass, fp)) {
- seteuid(0);
- ioctl(openvt, VT_ACTIVATE, origstate.v_active);
- seteuid(uid);
- if(ferror(fp)) {
- syslog(LOG_ERR, "read error on %s: %m", openvtname);
- }
- return 1;
- }
- if((nl=strchr(pass, '\n')))
- *nl=0;
- passlen=strlen(pass);
-
- outfd=atoi(argv[3]);
- if((wrote=write(outfd, pass, passlen))!=passlen) {
- seteuid(0);
- ioctl(openvt, VT_ACTIVATE, origstate.v_active);
- seteuid(uid);
- if(wrote<0)
- syslog(LOG_ERR, "write error on outpipe: %m");
- else
- syslog(LOG_ERR, "short write on outpipe");
- return 1;
- }
-
- seteuid(0);
- ioctl(openvt, VT_ACTIVATE, origstate.v_active);
- seteuid(uid);
- return 0;
-}
-
-static int console_owner(uid_t uid, int cons)
-{
- char name[256];
- struct stat st;
- snprintf(name, sizeof name, "/dev/tty%d", cons);
- if(stat(name, &st)<0) {
- if(errno!=ENOENT)
- syslog(LOG_ERR, "stat(%s): %m", name);
- return 0;
- }
- return uid==st.st_uid;
-}
diff --git a/mdk-stage1/ppp/etc.ppp/chap-secrets b/mdk-stage1/ppp/etc.ppp/chap-secrets
deleted file mode 100644
index 7d1c3cd7c..000000000
--- a/mdk-stage1/ppp/etc.ppp/chap-secrets
+++ /dev/null
@@ -1,2 +0,0 @@
-# Secrets for authentication using CHAP
-# client server secret IP addresses
diff --git a/mdk-stage1/ppp/etc.ppp/options b/mdk-stage1/ppp/etc.ppp/options
deleted file mode 100644
index 0f77a9aa0..000000000
--- a/mdk-stage1/ppp/etc.ppp/options
+++ /dev/null
@@ -1,5 +0,0 @@
-lock
-noauth
-noipdefault
-usepeerdns
-
diff --git a/mdk-stage1/ppp/etc.ppp/options.options b/mdk-stage1/ppp/etc.ppp/options.options
deleted file mode 100644
index 4b67b6a0d..000000000
--- a/mdk-stage1/ppp/etc.ppp/options.options
+++ /dev/null
@@ -1 +0,0 @@
-lock
diff --git a/mdk-stage1/ppp/etc.ppp/pap-secrets b/mdk-stage1/ppp/etc.ppp/pap-secrets
deleted file mode 100644
index f8b7dce3c..000000000
--- a/mdk-stage1/ppp/etc.ppp/pap-secrets
+++ /dev/null
@@ -1,2 +0,0 @@
-# Secrets for authentication using PAP
-# client server secret IP addresses
diff --git a/mdk-stage1/ppp/include/linux/if_ppp.h b/mdk-stage1/ppp/include/linux/if_ppp.h
deleted file mode 100644
index 1febf0931..000000000
--- a/mdk-stage1/ppp/include/linux/if_ppp.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/* $Id$ */
-
-/*
- * if_ppp.h - Point-to-Point Protocol definitions.
- *
- * Copyright (c) 1989 Carnegie Mellon University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Carnegie Mellon University. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- */
-
-/*
- * ==FILEVERSION 20000724==
- *
- * NOTE TO MAINTAINERS:
- * If you modify this file at all, please set the above date.
- * if_ppp.h is shipped with a PPP distribution as well as with the kernel;
- * if everyone increases the FILEVERSION number above, then scripts
- * can do the right thing when deciding whether to install a new if_ppp.h
- * file. Don't change the format of that line otherwise, so the
- * installation script can recognize it.
- */
-
-#ifndef _IF_PPP_H_
-#define _IF_PPP_H_
-
-/*
- * Packet sizes
- */
-
-#define PPP_MTU 1500 /* Default MTU (size of Info field) */
-#define PPP_MAXMRU 65000 /* Largest MRU we allow */
-#define PROTO_IPX 0x002b /* protocol numbers */
-#define PROTO_DNA_RT 0x0027 /* DNA Routing */
-
-
-/*
- * Bit definitions for flags.
- */
-
-#define SC_COMP_PROT 0x00000001 /* protocol compression (output) */
-#define SC_COMP_AC 0x00000002 /* header compression (output) */
-#define SC_COMP_TCP 0x00000004 /* TCP (VJ) compression (output) */
-#define SC_NO_TCP_CCID 0x00000008 /* disable VJ connection-id comp. */
-#define SC_REJ_COMP_AC 0x00000010 /* reject adrs/ctrl comp. on input */
-#define SC_REJ_COMP_TCP 0x00000020 /* reject TCP (VJ) comp. on input */
-#define SC_CCP_OPEN 0x00000040 /* Look at CCP packets */
-#define SC_CCP_UP 0x00000080 /* May send/recv compressed packets */
-#define SC_ENABLE_IP 0x00000100 /* IP packets may be exchanged */
-#define SC_LOOP_TRAFFIC 0x00000200 /* send traffic to pppd */
-#define SC_MULTILINK 0x00000400 /* do multilink encapsulation */
-#define SC_MP_SHORTSEQ 0x00000800 /* use short MP sequence numbers */
-#define SC_COMP_RUN 0x00001000 /* compressor has been inited */
-#define SC_DECOMP_RUN 0x00002000 /* decompressor has been inited */
-#define SC_MP_XSHORTSEQ 0x00004000 /* transmit short MP seq numbers */
-#define SC_DEBUG 0x00010000 /* enable debug messages */
-#define SC_LOG_INPKT 0x00020000 /* log contents of good pkts recvd */
-#define SC_LOG_OUTPKT 0x00040000 /* log contents of pkts sent */
-#define SC_LOG_RAWIN 0x00080000 /* log all chars received */
-#define SC_LOG_FLUSH 0x00100000 /* log all chars flushed */
-#define SC_SYNC 0x00200000 /* synchronous serial mode */
-#define SC_MASK 0x0f200fff /* bits that user can change */
-
-/* state bits */
-#define SC_XMIT_BUSY 0x10000000 /* (used by isdn_ppp?) */
-#define SC_RCV_ODDP 0x08000000 /* have rcvd char with odd parity */
-#define SC_RCV_EVNP 0x04000000 /* have rcvd char with even parity */
-#define SC_RCV_B7_1 0x02000000 /* have rcvd char with bit 7 = 1 */
-#define SC_RCV_B7_0 0x01000000 /* have rcvd char with bit 7 = 0 */
-#define SC_DC_FERROR 0x00800000 /* fatal decomp error detected */
-#define SC_DC_ERROR 0x00400000 /* non-fatal decomp error detected */
-
-/*
- * Ioctl definitions.
- */
-
-struct npioctl {
- int protocol; /* PPP protocol, e.g. PPP_IP */
- enum NPmode mode;
-};
-
-/* Structure describing a CCP configuration option, for PPPIOCSCOMPRESS */
-struct ppp_option_data {
- __u8 *ptr;
- __u32 length;
- int transmit;
-};
-
-struct ifpppstatsreq {
- struct ifreq b;
- struct ppp_stats stats; /* statistic information */
-};
-
-struct ifpppcstatsreq {
- struct ifreq b;
- struct ppp_comp_stats stats;
-};
-
-#define ifr__name b.ifr_ifrn.ifrn_name
-#define stats_ptr b.ifr_ifru.ifru_data
-
-/*
- * Ioctl definitions.
- */
-
-#define PPPIOCGFLAGS _IOR('t', 90, int) /* get configuration flags */
-#define PPPIOCSFLAGS _IOW('t', 89, int) /* set configuration flags */
-#define PPPIOCGASYNCMAP _IOR('t', 88, int) /* get async map */
-#define PPPIOCSASYNCMAP _IOW('t', 87, int) /* set async map */
-#define PPPIOCGUNIT _IOR('t', 86, int) /* get ppp unit number */
-#define PPPIOCGRASYNCMAP _IOR('t', 85, int) /* get receive async map */
-#define PPPIOCSRASYNCMAP _IOW('t', 84, int) /* set receive async map */
-#define PPPIOCGMRU _IOR('t', 83, int) /* get max receive unit */
-#define PPPIOCSMRU _IOW('t', 82, int) /* set max receive unit */
-#define PPPIOCSMAXCID _IOW('t', 81, int) /* set VJ max slot ID */
-#define PPPIOCGXASYNCMAP _IOR('t', 80, ext_accm) /* get extended ACCM */
-#define PPPIOCSXASYNCMAP _IOW('t', 79, ext_accm) /* set extended ACCM */
-#define PPPIOCXFERUNIT _IO('t', 78) /* transfer PPP unit */
-#define PPPIOCSCOMPRESS _IOW('t', 77, struct ppp_option_data)
-#define PPPIOCGNPMODE _IOWR('t', 76, struct npioctl) /* get NP mode */
-#define PPPIOCSNPMODE _IOW('t', 75, struct npioctl) /* set NP mode */
-#define PPPIOCSPASS _IOW('t', 71, struct sock_fprog) /* set pass filter */
-#define PPPIOCSACTIVE _IOW('t', 70, struct sock_fprog) /* set active filt */
-#define PPPIOCGDEBUG _IOR('t', 65, int) /* Read debug level */
-#define PPPIOCSDEBUG _IOW('t', 64, int) /* Set debug level */
-#define PPPIOCGIDLE _IOR('t', 63, struct ppp_idle) /* get idle time */
-#define PPPIOCNEWUNIT _IOWR('t', 62, int) /* create new ppp unit */
-#define PPPIOCATTACH _IOW('t', 61, int) /* attach to ppp unit */
-#define PPPIOCDETACH _IOW('t', 60, int) /* detach from ppp unit/chan */
-#define PPPIOCSMRRU _IOW('t', 59, int) /* set multilink MRU */
-#define PPPIOCCONNECT _IOW('t', 58, int) /* connect channel to unit */
-#define PPPIOCDISCONN _IO('t', 57) /* disconnect channel */
-#define PPPIOCATTCHAN _IOW('t', 56, int) /* attach to ppp channel */
-#define PPPIOCGCHAN _IOR('t', 55, int) /* get ppp channel number */
-
-#define SIOCGPPPSTATS (SIOCDEVPRIVATE + 0)
-#define SIOCGPPPVER (SIOCDEVPRIVATE + 1) /* NEVER change this!! */
-#define SIOCGPPPCSTATS (SIOCDEVPRIVATE + 2)
-
-#if !defined(ifr_mtu)
-#define ifr_mtu ifr_ifru.ifru_metric
-#endif
-
-#endif /* _IF_PPP_H_ */
diff --git a/mdk-stage1/ppp/include/linux/if_pppvar.h b/mdk-stage1/ppp/include/linux/if_pppvar.h
deleted file mode 100644
index b2485cd9d..000000000
--- a/mdk-stage1/ppp/include/linux/if_pppvar.h
+++ /dev/null
@@ -1,138 +0,0 @@
-/* From: if_pppvar.h,v 1.2 1995/06/12 11:36:51 paulus Exp */
-/*
- * if_pppvar.h - private structures and declarations for PPP.
- *
- * Copyright (c) 1994 The Australian National University.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies. This software is provided without any
- * warranty, express or implied. The Australian National University
- * makes no representations about the suitability of this software for
- * any purpose.
- *
- * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
- * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
- * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
- * OR MODIFICATIONS.
- *
- * Copyright (c) 1989 Carnegie Mellon University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Carnegie Mellon University. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-/*
- * ==FILEVERSION 990911==
- *
- * NOTE TO MAINTAINERS:
- * If you modify this file at all, please set the above date.
- * if_pppvar.h is shipped with a PPP distribution as well as with the kernel;
- * if everyone increases the FILEVERSION number above, then scripts
- * can do the right thing when deciding whether to install a new if_pppvar.h
- * file. Don't change the format of that line otherwise, so the
- * installation script can recognize it.
- */
-
-/*
- * Supported network protocols. These values are used for
- * indexing sc_npmode.
- */
-
-#define NP_IP 0 /* Internet Protocol */
-#define NP_IPX 1 /* IPX protocol */
-#define NP_AT 2 /* Appletalk protocol */
-#define NP_IPV6 3 /* Internet Protocol */
-#define NUM_NP 4 /* Number of NPs. */
-
-#define OBUFSIZE 256 /* # chars of output buffering */
-
-/*
- * Structure describing each ppp unit.
- */
-
-struct ppp {
- int magic; /* magic value for structure */
- struct ppp *next; /* unit with next index */
- unsigned long inuse; /* are we allocated? */
- int line; /* network interface unit # */
- __u32 flags; /* miscellaneous control flags */
- int mtu; /* maximum xmit frame size */
- int mru; /* maximum receive frame size */
- struct slcompress *slcomp; /* for TCP header compression */
- struct sk_buff_head xmt_q; /* frames to send from pppd */
- struct sk_buff_head rcv_q; /* frames for pppd to read */
- unsigned long xmit_busy; /* bit 0 set when xmitter busy */
-
- /* Information specific to using ppp on async serial lines. */
- struct tty_struct *tty; /* ptr to TTY structure */
- struct tty_struct *backup_tty; /* TTY to use if tty gets closed */
- __u8 escape; /* 0x20 if prev char was PPP_ESC */
- __u8 toss; /* toss this frame */
- volatile __u8 tty_pushing; /* internal state flag */
- volatile __u8 woke_up; /* internal state flag */
- __u32 xmit_async_map[8]; /* 1 bit means that given control
- character is quoted on output*/
- __u32 recv_async_map; /* 1 bit means that given control
- character is ignored on input*/
- __u32 bytes_sent; /* Bytes sent on frame */
- __u32 bytes_rcvd; /* Bytes recvd on frame */
-
- /* Async transmission information */
- struct sk_buff *tpkt; /* frame currently being sent */
- int tpkt_pos; /* how much of it we've done */
- __u16 tfcs; /* FCS so far for it */
- unsigned char *optr; /* where we're up to in sending */
- unsigned char *olim; /* points past last valid char */
-
- /* Async reception information */
- struct sk_buff *rpkt; /* frame currently being rcvd */
- __u16 rfcs; /* FCS so far of rpkt */
-
- /* Queues for select() functionality */
- struct wait_queue *read_wait; /* queue for reading processes */
-
- /* info for detecting idle channels */
- unsigned long last_xmit; /* time of last transmission */
- unsigned long last_recv; /* time last packet received */
-
- /* Statistic information */
- struct pppstat stats; /* statistic information */
-
- /* PPP compression protocol information */
- struct compressor *sc_xcomp; /* transmit compressor */
- void *sc_xc_state; /* transmit compressor state */
- struct compressor *sc_rcomp; /* receive decompressor */
- void *sc_rc_state; /* receive decompressor state */
-
- enum NPmode sc_npmode[NUM_NP]; /* what to do with each NP */
- int sc_xfer; /* PID of reserved PPP table */
- char name[8]; /* space for unit name */
- struct device dev; /* net device structure */
- struct enet_statistics estats; /* more detailed stats */
-
- /* tty output buffer */
- unsigned char obuf[OBUFSIZE]; /* buffer for characters to send */
-};
-
-#define PPP_MAGIC 0x5002
-#define PPP_VERSION "2.3.11"
diff --git a/mdk-stage1/ppp/include/linux/ppp-comp.h b/mdk-stage1/ppp/include/linux/ppp-comp.h
deleted file mode 100644
index 3184d0731..000000000
--- a/mdk-stage1/ppp/include/linux/ppp-comp.h
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * ppp-comp.h - Definitions for doing PPP packet compression.
- *
- * Copyright (c) 1994 The Australian National University.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies. This software is provided without any
- * warranty, express or implied. The Australian National University
- * makes no representations about the suitability of this software for
- * any purpose.
- *
- * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
- * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
- * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
- * OR MODIFICATIONS.
- *
- * $Id$
- */
-
-/*
- * ==FILEVERSION 980319==
- *
- * NOTE TO MAINTAINERS:
- * If you modify this file at all, please set the above date.
- * ppp-comp.h is shipped with a PPP distribution as well as with the kernel;
- * if everyone increases the FILEVERSION number above, then scripts
- * can do the right thing when deciding whether to install a new ppp-comp.h
- * file. Don't change the format of that line otherwise, so the
- * installation script can recognize it.
- */
-
-#ifndef _NET_PPP_COMP_H
-#define _NET_PPP_COMP_H
-
-/*
- * The following symbols control whether we include code for
- * various compression methods.
- */
-
-#ifndef DO_BSD_COMPRESS
-#define DO_BSD_COMPRESS 1 /* by default, include BSD-Compress */
-#endif
-#ifndef DO_DEFLATE
-#define DO_DEFLATE 1 /* by default, include Deflate */
-#endif
-#define DO_PREDICTOR_1 0
-#define DO_PREDICTOR_2 0
-
-/*
- * Structure giving methods for compression/decompression.
- */
-
-struct compressor {
- int compress_proto; /* CCP compression protocol number */
-
- /* Allocate space for a compressor (transmit side) */
- void *(*comp_alloc) (unsigned char *options, int opt_len);
-
- /* Free space used by a compressor */
- void (*comp_free) (void *state);
-
- /* Initialize a compressor */
- int (*comp_init) (void *state, unsigned char *options,
- int opt_len, int unit, int opthdr, int debug);
-
- /* Reset a compressor */
- void (*comp_reset) (void *state);
-
- /* Compress a packet */
- int (*compress) (void *state, unsigned char *rptr,
- unsigned char *obuf, int isize, int osize);
-
- /* Return compression statistics */
- void (*comp_stat) (void *state, struct compstat *stats);
-
- /* Allocate space for a decompressor (receive side) */
- void *(*decomp_alloc) (unsigned char *options, int opt_len);
-
- /* Free space used by a decompressor */
- void (*decomp_free) (void *state);
-
- /* Initialize a decompressor */
- int (*decomp_init) (void *state, unsigned char *options,
- int opt_len, int unit, int opthdr, int mru,
- int debug);
-
- /* Reset a decompressor */
- void (*decomp_reset) (void *state);
-
- /* Decompress a packet. */
- int (*decompress) (void *state, unsigned char *ibuf, int isize,
- unsigned char *obuf, int osize);
-
- /* Update state for an incompressible packet received */
- void (*incomp) (void *state, unsigned char *ibuf, int icnt);
-
- /* Return decompression statistics */
- void (*decomp_stat) (void *state, struct compstat *stats);
-};
-
-/*
- * The return value from decompress routine is the length of the
- * decompressed packet if successful, otherwise DECOMP_ERROR
- * or DECOMP_FATALERROR if an error occurred.
- *
- * We need to make this distinction so that we can disable certain
- * useful functionality, namely sending a CCP reset-request as a result
- * of an error detected after decompression. This is to avoid infringing
- * a patent held by Motorola.
- * Don't you just lurve software patents.
- */
-
-#define DECOMP_ERROR -1 /* error detected before decomp. */
-#define DECOMP_FATALERROR -2 /* error detected after decomp. */
-
-/*
- * CCP codes.
- */
-
-#define CCP_CONFREQ 1
-#define CCP_CONFACK 2
-#define CCP_TERMREQ 5
-#define CCP_TERMACK 6
-#define CCP_RESETREQ 14
-#define CCP_RESETACK 15
-
-/*
- * Max # bytes for a CCP option
- */
-
-#define CCP_MAX_OPTION_LENGTH 32
-
-/*
- * Parts of a CCP packet.
- */
-
-#define CCP_CODE(dp) ((dp)[0])
-#define CCP_ID(dp) ((dp)[1])
-#define CCP_LENGTH(dp) (((dp)[2] << 8) + (dp)[3])
-#define CCP_HDRLEN 4
-
-#define CCP_OPT_CODE(dp) ((dp)[0])
-#define CCP_OPT_LENGTH(dp) ((dp)[1])
-#define CCP_OPT_MINLEN 2
-
-/*
- * Definitions for BSD-Compress.
- */
-
-#define CI_BSD_COMPRESS 21 /* config. option for BSD-Compress */
-#define CILEN_BSD_COMPRESS 3 /* length of config. option */
-
-/* Macros for handling the 3rd byte of the BSD-Compress config option. */
-#define BSD_NBITS(x) ((x) & 0x1F) /* number of bits requested */
-#define BSD_VERSION(x) ((x) >> 5) /* version of option format */
-#define BSD_CURRENT_VERSION 1 /* current version number */
-#define BSD_MAKE_OPT(v, n) (((v) << 5) | (n))
-
-#define BSD_MIN_BITS 9 /* smallest code size supported */
-#define BSD_MAX_BITS 15 /* largest code size supported */
-
-/*
- * Definitions for Deflate.
- */
-
-#define CI_DEFLATE 26 /* config option for Deflate */
-#define CI_DEFLATE_DRAFT 24 /* value used in original draft RFC */
-#define CILEN_DEFLATE 4 /* length of its config option */
-
-#define DEFLATE_MIN_SIZE 8
-#define DEFLATE_MAX_SIZE 15
-#define DEFLATE_METHOD_VAL 8
-#define DEFLATE_SIZE(x) (((x) >> 4) + DEFLATE_MIN_SIZE)
-#define DEFLATE_METHOD(x) ((x) & 0x0F)
-#define DEFLATE_MAKE_OPT(w) ((((w) - DEFLATE_MIN_SIZE) << 4) \
- + DEFLATE_METHOD_VAL)
-#define DEFLATE_CHK_SEQUENCE 0
-
-/*
- * Definitions for other, as yet unsupported, compression methods.
- */
-
-#define CI_PREDICTOR_1 1 /* config option for Predictor-1 */
-#define CILEN_PREDICTOR_1 2 /* length of its config option */
-#define CI_PREDICTOR_2 2 /* config option for Predictor-2 */
-#define CILEN_PREDICTOR_2 2 /* length of its config option */
-
-#ifdef __KERNEL__
-extern int ppp_register_compressor(struct compressor *);
-extern void ppp_unregister_compressor(struct compressor *);
-#endif /* __KERNEL__ */
-
-#endif /* _NET_PPP_COMP_H */
diff --git a/mdk-stage1/ppp/include/linux/ppp_defs.h b/mdk-stage1/ppp/include/linux/ppp_defs.h
deleted file mode 100644
index 46946fbdc..000000000
--- a/mdk-stage1/ppp/include/linux/ppp_defs.h
+++ /dev/null
@@ -1,185 +0,0 @@
-/* $Id$ */
-
-/*
- * ppp_defs.h - PPP definitions.
- *
- * Copyright (c) 1994 The Australian National University.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies. This software is provided without any
- * warranty, express or implied. The Australian National University
- * makes no representations about the suitability of this software for
- * any purpose.
- *
- * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
- * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
- * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
- * OR MODIFICATIONS.
- */
-
-/*
- * ==FILEVERSION 20000114==
- *
- * NOTE TO MAINTAINERS:
- * If you modify this file at all, please set the above date.
- * ppp_defs.h is shipped with a PPP distribution as well as with the kernel;
- * if everyone increases the FILEVERSION number above, then scripts
- * can do the right thing when deciding whether to install a new ppp_defs.h
- * file. Don't change the format of that line otherwise, so the
- * installation script can recognize it.
- */
-
-#ifndef _PPP_DEFS_H_
-#define _PPP_DEFS_H_
-
-/*
- * The basic PPP frame.
- */
-#define PPP_HDRLEN 4 /* octets for standard ppp header */
-#define PPP_FCSLEN 2 /* octets for FCS */
-#define PPP_MRU 1500 /* default MRU = max length of info field */
-
-#define PPP_ADDRESS(p) (((__u8 *)(p))[0])
-#define PPP_CONTROL(p) (((__u8 *)(p))[1])
-#define PPP_PROTOCOL(p) ((((__u8 *)(p))[2] << 8) + ((__u8 *)(p))[3])
-
-/*
- * Significant octet values.
- */
-#define PPP_ALLSTATIONS 0xff /* All-Stations broadcast address */
-#define PPP_UI 0x03 /* Unnumbered Information */
-#define PPP_FLAG 0x7e /* Flag Sequence */
-#define PPP_ESCAPE 0x7d /* Asynchronous Control Escape */
-#define PPP_TRANS 0x20 /* Asynchronous transparency modifier */
-
-/*
- * Protocol field values.
- */
-#define PPP_IP 0x21 /* Internet Protocol */
-#define PPP_AT 0x29 /* AppleTalk Protocol */
-#define PPP_IPX 0x2b /* IPX protocol */
-#define PPP_VJC_COMP 0x2d /* VJ compressed TCP */
-#define PPP_VJC_UNCOMP 0x2f /* VJ uncompressed TCP */
-#define PPP_MP 0x3d /* Multilink protocol */
-#define PPP_IPV6 0x57 /* Internet Protocol Version 6 */
-#define PPP_COMPFRAG 0xfb /* fragment compressed below bundle */
-#define PPP_COMP 0xfd /* compressed packet */
-#define PPP_IPCP 0x8021 /* IP Control Protocol */
-#define PPP_ATCP 0x8029 /* AppleTalk Control Protocol */
-#define PPP_IPXCP 0x802b /* IPX Control Protocol */
-#define PPP_IPV6CP 0x8057 /* IPv6 Control Protocol */
-#define PPP_CCPFRAG 0x80fb /* CCP at link level (below MP bundle) */
-#define PPP_CCP 0x80fd /* Compression Control Protocol */
-#define PPP_LCP 0xc021 /* Link Control Protocol */
-#define PPP_PAP 0xc023 /* Password Authentication Protocol */
-#define PPP_LQR 0xc025 /* Link Quality Report protocol */
-#define PPP_CHAP 0xc223 /* Cryptographic Handshake Auth. Protocol */
-#define PPP_CBCP 0xc029 /* Callback Control Protocol */
-
-/*
- * Values for FCS calculations.
- */
-
-#define PPP_INITFCS 0xffff /* Initial FCS value */
-#define PPP_GOODFCS 0xf0b8 /* Good final FCS value */
-#define PPP_FCS(fcs, c) (((fcs) >> 8) ^ fcstab[((fcs) ^ (c)) & 0xff])
-
-/*
- * Extended asyncmap - allows any character to be escaped.
- */
-
-typedef __u32 ext_accm[8];
-
-/*
- * What to do with network protocol (NP) packets.
- */
-enum NPmode {
- NPMODE_PASS, /* pass the packet through */
- NPMODE_DROP, /* silently drop the packet */
- NPMODE_ERROR, /* return an error */
- NPMODE_QUEUE /* save it up for later. */
-};
-
-/*
- * Statistics for LQRP and pppstats
- */
-struct pppstat {
- __u32 ppp_discards; /* # frames discarded */
-
- __u32 ppp_ibytes; /* bytes received */
- __u32 ppp_ioctects; /* bytes received not in error */
- __u32 ppp_ipackets; /* packets received */
- __u32 ppp_ierrors; /* receive errors */
- __u32 ppp_ilqrs; /* # LQR frames received */
-
- __u32 ppp_obytes; /* raw bytes sent */
- __u32 ppp_ooctects; /* frame bytes sent */
- __u32 ppp_opackets; /* packets sent */
- __u32 ppp_oerrors; /* transmit errors */
- __u32 ppp_olqrs; /* # LQR frames sent */
-};
-
-struct vjstat {
- __u32 vjs_packets; /* outbound packets */
- __u32 vjs_compressed; /* outbound compressed packets */
- __u32 vjs_searches; /* searches for connection state */
- __u32 vjs_misses; /* times couldn't find conn. state */
- __u32 vjs_uncompressedin; /* inbound uncompressed packets */
- __u32 vjs_compressedin; /* inbound compressed packets */
- __u32 vjs_errorin; /* inbound unknown type packets */
- __u32 vjs_tossed; /* inbound packets tossed because of error */
-};
-
-struct compstat {
- __u32 unc_bytes; /* total uncompressed bytes */
- __u32 unc_packets; /* total uncompressed packets */
- __u32 comp_bytes; /* compressed bytes */
- __u32 comp_packets; /* compressed packets */
- __u32 inc_bytes; /* incompressible bytes */
- __u32 inc_packets; /* incompressible packets */
-
- /* the compression ratio is defined as in_count / bytes_out */
- __u32 in_count; /* Bytes received */
- __u32 bytes_out; /* Bytes transmitted */
-
- double ratio; /* not computed in kernel. */
-};
-
-struct ppp_stats {
- struct pppstat p; /* basic PPP statistics */
- struct vjstat vj; /* VJ header compression statistics */
-};
-
-struct ppp_comp_stats {
- struct compstat c; /* packet compression statistics */
- struct compstat d; /* packet decompression statistics */
-};
-
-/*
- * The following structure records the time in seconds since
- * the last NP packet was sent or received.
- */
-struct ppp_idle {
- time_t xmit_idle; /* time since last NP packet sent */
- time_t recv_idle; /* time since last NP packet received */
-};
-
-#ifndef __P
-#ifdef __STDC__
-#define __P(x) x
-#else
-#define __P(x) ()
-#endif
-#endif
-
-#endif /* _PPP_DEFS_H_ */
diff --git a/mdk-stage1/ppp/include/net/if_ppp.h b/mdk-stage1/ppp/include/net/if_ppp.h
deleted file mode 100644
index 1527ecf3f..000000000
--- a/mdk-stage1/ppp/include/net/if_ppp.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/* $Id$ */
-
-/*
- * if_ppp.h - Point-to-Point Protocol definitions.
- *
- * Copyright (c) 1989 Carnegie Mellon University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Carnegie Mellon University. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#ifndef _IF_PPP_H_
-#define _IF_PPP_H_
-
-/*
- * Bit definitions for flags.
- */
-#define SC_COMP_PROT 0x00000001 /* protocol compression (output) */
-#define SC_COMP_AC 0x00000002 /* header compression (output) */
-#define SC_COMP_TCP 0x00000004 /* TCP (VJ) compression (output) */
-#define SC_NO_TCP_CCID 0x00000008 /* disable VJ connection-id comp. */
-#define SC_REJ_COMP_AC 0x00000010 /* reject adrs/ctrl comp. on input */
-#define SC_REJ_COMP_TCP 0x00000020 /* reject TCP (VJ) comp. on input */
-#define SC_CCP_OPEN 0x00000040 /* Look at CCP packets */
-#define SC_CCP_UP 0x00000080 /* May send/recv compressed packets */
-#define SC_DEBUG 0x00010000 /* enable debug messages */
-#define SC_LOG_INPKT 0x00020000 /* log contents of good pkts recvd */
-#define SC_LOG_OUTPKT 0x00040000 /* log contents of pkts sent */
-#define SC_LOG_RAWIN 0x00080000 /* log all chars received */
-#define SC_LOG_FLUSH 0x00100000 /* log all chars flushed */
-#define SC_RCV_B7_0 0x01000000 /* have rcvd char with bit 7 = 0 */
-#define SC_RCV_B7_1 0x02000000 /* have rcvd char with bit 7 = 1 */
-#define SC_RCV_EVNP 0x04000000 /* have rcvd char with even parity */
-#define SC_RCV_ODDP 0x08000000 /* have rcvd char with odd parity */
-#define SC_SYNC 0x00200000 /* use synchronous HDLC framing */
-#define SC_MASK 0x0fff00ff /* bits that user can change */
-
-/*
- * State bits in sc_flags, not changeable by user.
- */
-#define SC_TIMEOUT 0x00000400 /* timeout is currently pending */
-#define SC_VJ_RESET 0x00000800 /* need to reset VJ decomp */
-#define SC_COMP_RUN 0x00001000 /* compressor has been inited */
-#define SC_DECOMP_RUN 0x00002000 /* decompressor has been inited */
-#define SC_DC_ERROR 0x00004000 /* non-fatal decomp error detected */
-#define SC_DC_FERROR 0x00008000 /* fatal decomp error detected */
-#define SC_TBUSY 0x10000000 /* xmitter doesn't need a packet yet */
-#define SC_PKTLOST 0x20000000 /* have lost or dropped a packet */
-#define SC_FLUSH 0x40000000 /* flush input until next PPP_FLAG */
-#define SC_ESCAPED 0x80000000 /* saw a PPP_ESCAPE */
-
-/*
- * Ioctl definitions.
- */
-
-struct npioctl {
- int protocol; /* PPP procotol, e.g. PPP_IP */
- enum NPmode mode;
-};
-
-/* Structure describing a CCP configuration option, for PPPIOCSCOMPRESS */
-struct ppp_option_data {
- u_char *ptr;
- u_int length;
- int transmit;
-};
-
-struct ifpppstatsreq {
- char ifr_name[IFNAMSIZ];
- struct ppp_stats stats;
-};
-
-struct ifpppcstatsreq {
- char ifr_name[IFNAMSIZ];
- struct ppp_comp_stats stats;
-};
-
-/*
- * Ioctl definitions.
- */
-
-#define PPPIOCGFLAGS _IOR('t', 90, int) /* get configuration flags */
-#define PPPIOCSFLAGS _IOW('t', 89, int) /* set configuration flags */
-#define PPPIOCGASYNCMAP _IOR('t', 88, int) /* get async map */
-#define PPPIOCSASYNCMAP _IOW('t', 87, int) /* set async map */
-#define PPPIOCGUNIT _IOR('t', 86, int) /* get ppp unit number */
-#define PPPIOCGRASYNCMAP _IOR('t', 85, int) /* get receive async map */
-#define PPPIOCSRASYNCMAP _IOW('t', 84, int) /* set receive async map */
-#define PPPIOCGMRU _IOR('t', 83, int) /* get max receive unit */
-#define PPPIOCSMRU _IOW('t', 82, int) /* set max receive unit */
-#define PPPIOCSMAXCID _IOW('t', 81, int) /* set VJ max slot ID */
-#define PPPIOCGXASYNCMAP _IOR('t', 80, ext_accm) /* get extended ACCM */
-#define PPPIOCSXASYNCMAP _IOW('t', 79, ext_accm) /* set extended ACCM */
-#define PPPIOCXFERUNIT _IO('t', 78) /* transfer PPP unit */
-#define PPPIOCSCOMPRESS _IOW('t', 77, struct ppp_option_data)
-#define PPPIOCGNPMODE _IOWR('t', 76, struct npioctl) /* get NP mode */
-#define PPPIOCSNPMODE _IOW('t', 75, struct npioctl) /* set NP mode */
-#define PPPIOCGIDLE _IOR('t', 74, struct ppp_idle) /* get idle time */
-#ifdef PPP_FILTER
-#define PPPIOCSPASS _IOW('t', 71, struct bpf_program) /* set pass filter */
-#define PPPIOCSACTIVE _IOW('t', 70, struct bpf_program) /* set active filt */
-#endif /* PPP_FILTER */
-
-/* PPPIOC[GS]MTU are alternatives to SIOC[GS]IFMTU, used under Ultrix */
-#define PPPIOCGMTU _IOR('t', 73, int) /* get interface MTU */
-#define PPPIOCSMTU _IOW('t', 72, int) /* set interface MTU */
-
-/*
- * These two are interface ioctls so that pppstats can do them on
- * a socket without having to open the serial device.
- */
-#define SIOCGPPPSTATS _IOWR('i', 123, struct ifpppstatsreq)
-#define SIOCGPPPCSTATS _IOWR('i', 122, struct ifpppcstatsreq)
-
-#if !defined(ifr_mtu)
-#define ifr_mtu ifr_ifru.ifru_metric
-#endif
-
-#if (defined(_KERNEL) || defined(KERNEL)) && !defined(NeXT)
-void pppattach __P((void));
-void pppintr __P((void));
-#endif
-#endif /* _IF_PPP_H_ */
diff --git a/mdk-stage1/ppp/include/net/ppp-comp.h b/mdk-stage1/ppp/include/net/ppp-comp.h
deleted file mode 100644
index 0e6a9c672..000000000
--- a/mdk-stage1/ppp/include/net/ppp-comp.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * ppp-comp.h - Definitions for doing PPP packet compression.
- *
- * Copyright (c) 1994 The Australian National University.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies. This software is provided without any
- * warranty, express or implied. The Australian National University
- * makes no representations about the suitability of this software for
- * any purpose.
- *
- * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
- * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
- * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
- * OR MODIFICATIONS.
- *
- * $Id$
- */
-
-#ifndef _NET_PPP_COMP_H
-#define _NET_PPP_COMP_H
-
-/*
- * The following symbols control whether we include code for
- * various compression methods.
- */
-#ifndef DO_BSD_COMPRESS
-#define DO_BSD_COMPRESS 1 /* by default, include BSD-Compress */
-#endif
-#ifndef DO_DEFLATE
-#define DO_DEFLATE 1 /* by default, include Deflate */
-#endif
-#define DO_PREDICTOR_1 0
-#define DO_PREDICTOR_2 0
-
-/*
- * Structure giving methods for compression/decompression.
- */
-#ifdef PACKETPTR
-struct compressor {
- int compress_proto; /* CCP compression protocol number */
-
- /* Allocate space for a compressor (transmit side) */
- void *(*comp_alloc) __P((u_char *options, int opt_len));
- /* Free space used by a compressor */
- void (*comp_free) __P((void *state));
- /* Initialize a compressor */
- int (*comp_init) __P((void *state, u_char *options, int opt_len,
- int unit, int hdrlen, int debug));
- /* Reset a compressor */
- void (*comp_reset) __P((void *state));
- /* Compress a packet */
- int (*compress) __P((void *state, PACKETPTR *mret,
- PACKETPTR mp, int orig_len, int max_len));
- /* Return compression statistics */
- void (*comp_stat) __P((void *state, struct compstat *stats));
-
- /* Allocate space for a decompressor (receive side) */
- void *(*decomp_alloc) __P((u_char *options, int opt_len));
- /* Free space used by a decompressor */
- void (*decomp_free) __P((void *state));
- /* Initialize a decompressor */
- int (*decomp_init) __P((void *state, u_char *options, int opt_len,
- int unit, int hdrlen, int mru, int debug));
- /* Reset a decompressor */
- void (*decomp_reset) __P((void *state));
- /* Decompress a packet. */
- int (*decompress) __P((void *state, PACKETPTR mp,
- PACKETPTR *dmpp));
- /* Update state for an incompressible packet received */
- void (*incomp) __P((void *state, PACKETPTR mp));
- /* Return decompression statistics */
- void (*decomp_stat) __P((void *state, struct compstat *stats));
-};
-#endif /* PACKETPTR */
-
-/*
- * Return values for decompress routine.
- * We need to make these distinctions so that we can disable certain
- * useful functionality, namely sending a CCP reset-request as a result
- * of an error detected after decompression. This is to avoid infringing
- * a patent held by Motorola.
- * Don't you just lurve software patents.
- */
-#define DECOMP_OK 0 /* everything went OK */
-#define DECOMP_ERROR 1 /* error detected before decomp. */
-#define DECOMP_FATALERROR 2 /* error detected after decomp. */
-
-/*
- * CCP codes.
- */
-#define CCP_CONFREQ 1
-#define CCP_CONFACK 2
-#define CCP_TERMREQ 5
-#define CCP_TERMACK 6
-#define CCP_RESETREQ 14
-#define CCP_RESETACK 15
-
-/*
- * Max # bytes for a CCP option
- */
-#define CCP_MAX_OPTION_LENGTH 32
-
-/*
- * Parts of a CCP packet.
- */
-#define CCP_CODE(dp) ((dp)[0])
-#define CCP_ID(dp) ((dp)[1])
-#define CCP_LENGTH(dp) (((dp)[2] << 8) + (dp)[3])
-#define CCP_HDRLEN 4
-
-#define CCP_OPT_CODE(dp) ((dp)[0])
-#define CCP_OPT_LENGTH(dp) ((dp)[1])
-#define CCP_OPT_MINLEN 2
-
-/*
- * Definitions for BSD-Compress.
- */
-#define CI_BSD_COMPRESS 21 /* config. option for BSD-Compress */
-#define CILEN_BSD_COMPRESS 3 /* length of config. option */
-
-/* Macros for handling the 3rd byte of the BSD-Compress config option. */
-#define BSD_NBITS(x) ((x) & 0x1F) /* number of bits requested */
-#define BSD_VERSION(x) ((x) >> 5) /* version of option format */
-#define BSD_CURRENT_VERSION 1 /* current version number */
-#define BSD_MAKE_OPT(v, n) (((v) << 5) | (n))
-
-#define BSD_MIN_BITS 9 /* smallest code size supported */
-#define BSD_MAX_BITS 15 /* largest code size supported */
-
-/*
- * Definitions for Deflate.
- */
-#define CI_DEFLATE 26 /* config option for Deflate */
-#define CI_DEFLATE_DRAFT 24 /* value used in original draft RFC */
-#define CILEN_DEFLATE 4 /* length of its config option */
-
-#define DEFLATE_MIN_SIZE 8
-#define DEFLATE_MAX_SIZE 15
-#define DEFLATE_METHOD_VAL 8
-#define DEFLATE_SIZE(x) (((x) >> 4) + DEFLATE_MIN_SIZE)
-#define DEFLATE_METHOD(x) ((x) & 0x0F)
-#define DEFLATE_MAKE_OPT(w) ((((w) - DEFLATE_MIN_SIZE) << 4) \
- + DEFLATE_METHOD_VAL)
-#define DEFLATE_CHK_SEQUENCE 0
-
-/*
- * Definitions for other, as yet unsupported, compression methods.
- */
-#define CI_PREDICTOR_1 1 /* config option for Predictor-1 */
-#define CILEN_PREDICTOR_1 2 /* length of its config option */
-#define CI_PREDICTOR_2 2 /* config option for Predictor-2 */
-#define CILEN_PREDICTOR_2 2 /* length of its config option */
-
-#endif /* _NET_PPP_COMP_H */
diff --git a/mdk-stage1/ppp/include/net/ppp_defs.h b/mdk-stage1/ppp/include/net/ppp_defs.h
deleted file mode 100644
index 46bef52bb..000000000
--- a/mdk-stage1/ppp/include/net/ppp_defs.h
+++ /dev/null
@@ -1,184 +0,0 @@
-/* $Id$ */
-
-/*
- * ppp_defs.h - PPP definitions.
- *
- * Copyright (c) 1994 The Australian National University.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies. This software is provided without any
- * warranty, express or implied. The Australian National University
- * makes no representations about the suitability of this software for
- * any purpose.
- *
- * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
- * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
- * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
- * OR MODIFICATIONS.
- */
-
-#ifndef _PPP_DEFS_H_
-#define _PPP_DEFS_H_
-
-/*
- * The basic PPP frame.
- */
-#define PPP_HDRLEN 4 /* octets for standard ppp header */
-#define PPP_FCSLEN 2 /* octets for FCS */
-
-/*
- * Packet sizes
- *
- * Note - lcp shouldn't be allowed to negotiate stuff outside these
- * limits. See lcp.h in the pppd directory.
- * (XXX - these constants should simply be shared by lcp.c instead
- * of living in lcp.h)
- */
-#define PPP_MTU 1500 /* Default MTU (size of Info field) */
-#define PPP_MAXMTU 65535 - (PPP_HDRLEN + PPP_FCSLEN)
-#define PPP_MINMTU 64
-#define PPP_MRU 1500 /* default MRU = max length of info field */
-#define PPP_MAXMRU 65000 /* Largest MRU we allow */
-#define PPP_MINMRU 128
-
-#define PPP_ADDRESS(p) (((u_char *)(p))[0])
-#define PPP_CONTROL(p) (((u_char *)(p))[1])
-#define PPP_PROTOCOL(p) ((((u_char *)(p))[2] << 8) + ((u_char *)(p))[3])
-
-/*
- * Significant octet values.
- */
-#define PPP_ALLSTATIONS 0xff /* All-Stations broadcast address */
-#define PPP_UI 0x03 /* Unnumbered Information */
-#define PPP_FLAG 0x7e /* Flag Sequence */
-#define PPP_ESCAPE 0x7d /* Asynchronous Control Escape */
-#define PPP_TRANS 0x20 /* Asynchronous transparency modifier */
-
-/*
- * Protocol field values.
- */
-#define PPP_IP 0x21 /* Internet Protocol */
-#define PPP_AT 0x29 /* AppleTalk Protocol */
-#define PPP_IPX 0x2b /* IPX protocol */
-#define PPP_VJC_COMP 0x2d /* VJ compressed TCP */
-#define PPP_VJC_UNCOMP 0x2f /* VJ uncompressed TCP */
-#define PPP_IPV6 0x57 /* Internet Protocol Version 6 */
-#define PPP_COMP 0xfd /* compressed packet */
-#define PPP_IPCP 0x8021 /* IP Control Protocol */
-#define PPP_ATCP 0x8029 /* AppleTalk Control Protocol */
-#define PPP_IPXCP 0x802b /* IPX Control Protocol */
-#define PPP_IPV6CP 0x8057 /* IPv6 Control Protocol */
-#define PPP_CCP 0x80fd /* Compression Control Protocol */
-#define PPP_LCP 0xc021 /* Link Control Protocol */
-#define PPP_PAP 0xc023 /* Password Authentication Protocol */
-#define PPP_LQR 0xc025 /* Link Quality Report protocol */
-#define PPP_CHAP 0xc223 /* Cryptographic Handshake Auth. Protocol */
-#define PPP_CBCP 0xc029 /* Callback Control Protocol */
-
-/*
- * Values for FCS calculations.
- */
-#define PPP_INITFCS 0xffff /* Initial FCS value */
-#define PPP_GOODFCS 0xf0b8 /* Good final FCS value */
-#define PPP_FCS(fcs, c) (((fcs) >> 8) ^ fcstab[((fcs) ^ (c)) & 0xff])
-
-/*
- * A 32-bit unsigned integral type.
- */
-
-#if !defined(__BIT_TYPES_DEFINED__) && !defined(_BITYPES) \
- && !defined(__FreeBSD__) && (NS_TARGET < 40) && !defined(__dietlibc__)
-#ifdef UINT32_T
-typedef UINT32_T u_int32_t;
-#else
-typedef unsigned int u_int32_t;
-typedef unsigned short u_int16_t;
-#endif
-#endif
-
-/*
- * Extended asyncmap - allows any character to be escaped.
- */
-typedef u_int32_t ext_accm[8];
-
-/*
- * What to do with network protocol (NP) packets.
- */
-enum NPmode {
- NPMODE_PASS, /* pass the packet through */
- NPMODE_DROP, /* silently drop the packet */
- NPMODE_ERROR, /* return an error */
- NPMODE_QUEUE /* save it up for later. */
-};
-
-/*
- * Statistics.
- */
-struct pppstat {
- unsigned int ppp_ibytes; /* bytes received */
- unsigned int ppp_ipackets; /* packets received */
- unsigned int ppp_ierrors; /* receive errors */
- unsigned int ppp_obytes; /* bytes sent */
- unsigned int ppp_opackets; /* packets sent */
- unsigned int ppp_oerrors; /* transmit errors */
-};
-
-struct vjstat {
- unsigned int vjs_packets; /* outbound packets */
- unsigned int vjs_compressed; /* outbound compressed packets */
- unsigned int vjs_searches; /* searches for connection state */
- unsigned int vjs_misses; /* times couldn't find conn. state */
- unsigned int vjs_uncompressedin; /* inbound uncompressed packets */
- unsigned int vjs_compressedin; /* inbound compressed packets */
- unsigned int vjs_errorin; /* inbound unknown type packets */
- unsigned int vjs_tossed; /* inbound packets tossed because of error */
-};
-
-struct ppp_stats {
- struct pppstat p; /* basic PPP statistics */
- struct vjstat vj; /* VJ header compression statistics */
-};
-
-struct compstat {
- unsigned int unc_bytes; /* total uncompressed bytes */
- unsigned int unc_packets; /* total uncompressed packets */
- unsigned int comp_bytes; /* compressed bytes */
- unsigned int comp_packets; /* compressed packets */
- unsigned int inc_bytes; /* incompressible bytes */
- unsigned int inc_packets; /* incompressible packets */
- unsigned int ratio; /* recent compression ratio << 8 */
-};
-
-struct ppp_comp_stats {
- struct compstat c; /* packet compression statistics */
- struct compstat d; /* packet decompression statistics */
-};
-
-/*
- * The following structure records the time in seconds since
- * the last NP packet was sent or received.
- */
-struct ppp_idle {
- time_t xmit_idle; /* time since last NP packet sent */
- time_t recv_idle; /* time since last NP packet received */
-};
-
-#ifndef __P
-#ifdef __STDC__
-#define __P(x) x
-#else
-#define __P(x) ()
-#endif
-#endif
-
-#endif /* _PPP_DEFS_H_ */
diff --git a/mdk-stage1/ppp/include/net/pppio.h b/mdk-stage1/ppp/include/net/pppio.h
deleted file mode 100644
index 9db1ca9ab..000000000
--- a/mdk-stage1/ppp/include/net/pppio.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * pppio.h - ioctl and other misc. definitions for STREAMS modules.
- *
- * Copyright (c) 1994 The Australian National University.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies. This software is provided without any
- * warranty, express or implied. The Australian National University
- * makes no representations about the suitability of this software for
- * any purpose.
- *
- * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
- * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
- * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
- * OR MODIFICATIONS.
- *
- * $Id$
- */
-
-#define _PPPIO(n) (('p' << 8) + (n))
-
-#define PPPIO_NEWPPA _PPPIO(130) /* allocate a new PPP unit */
-#define PPPIO_GETSTAT _PPPIO(131) /* get PPP statistics */
-#define PPPIO_GETCSTAT _PPPIO(132) /* get PPP compression stats */
-#define PPPIO_MTU _PPPIO(133) /* set max transmission unit */
-#define PPPIO_MRU _PPPIO(134) /* set max receive unit */
-#define PPPIO_CFLAGS _PPPIO(135) /* set/clear/get compression flags */
-#define PPPIO_XCOMP _PPPIO(136) /* alloc transmit compressor */
-#define PPPIO_RCOMP _PPPIO(137) /* alloc receive decompressor */
-#define PPPIO_XACCM _PPPIO(138) /* set transmit asyncmap */
-#define PPPIO_RACCM _PPPIO(139) /* set receive asyncmap */
-#define PPPIO_VJINIT _PPPIO(140) /* initialize VJ comp/decomp */
-#define PPPIO_ATTACH _PPPIO(141) /* attach to a ppa (without putmsg) */
-#define PPPIO_LASTMOD _PPPIO(142) /* mark last ppp module */
-#define PPPIO_GCLEAN _PPPIO(143) /* get 8-bit-clean flags */
-#define PPPIO_DEBUG _PPPIO(144) /* request debug information */
-#define PPPIO_BIND _PPPIO(145) /* bind to SAP */
-#define PPPIO_NPMODE _PPPIO(146) /* set mode for handling data pkts */
-#define PPPIO_GIDLE _PPPIO(147) /* get time since last data pkt */
-#define PPPIO_PASSFILT _PPPIO(148) /* set filter for packets to pass */
-#define PPPIO_ACTIVEFILT _PPPIO(149) /* set filter for "link active" pkts */
-
-/*
- * Values for PPPIO_CFLAGS
- */
-#define COMP_AC 0x1 /* compress address/control */
-#define DECOMP_AC 0x2 /* decompress address/control */
-#define COMP_PROT 0x4 /* compress PPP protocol */
-#define DECOMP_PROT 0x8 /* decompress PPP protocol */
-
-#define COMP_VJC 0x10 /* compress TCP/IP headers */
-#define COMP_VJCCID 0x20 /* compress connection ID as well */
-#define DECOMP_VJC 0x40 /* decompress TCP/IP headers */
-#define DECOMP_VJCCID 0x80 /* accept compressed connection ID */
-
-#define CCP_ISOPEN 0x100 /* look at CCP packets */
-#define CCP_ISUP 0x200 /* do packet comp/decomp */
-#define CCP_ERROR 0x400 /* (status) error in packet decomp */
-#define CCP_FATALERROR 0x800 /* (status) fatal error ditto */
-#define CCP_COMP_RUN 0x1000 /* (status) seen CCP ack sent */
-#define CCP_DECOMP_RUN 0x2000 /* (status) seen CCP ack rcvd */
-
-/*
- * Values for 8-bit-clean flags.
- */
-#define RCV_B7_0 1 /* have rcvd char with bit 7 = 0 */
-#define RCV_B7_1 2 /* have rcvd char with bit 7 = 1 */
-#define RCV_EVNP 4 /* have rcvd char with even parity */
-#define RCV_ODDP 8 /* have rcvd char with odd parity */
-
-/*
- * Values for the first byte of M_CTL messages passed between
- * PPP modules.
- */
-#define PPPCTL_OERROR 0xe0 /* output error [up] */
-#define PPPCTL_IERROR 0xe1 /* input error (e.g. FCS) [up] */
-#define PPPCTL_MTU 0xe2 /* set MTU [down] */
-#define PPPCTL_MRU 0xe3 /* set MRU [down] */
-#define PPPCTL_UNIT 0xe4 /* note PPP unit number [down] */
-
-/*
- * Values for the integer argument to PPPIO_DEBUG.
- */
-#define PPPDBG_DUMP 0x10000 /* print out debug info now */
-#define PPPDBG_LOG 0x100 /* log various things */
-#define PPPDBG_DRIVER 0 /* identifies ppp driver as target */
-#define PPPDBG_IF 1 /* identifies ppp network i/f target */
-#define PPPDBG_COMP 2 /* identifies ppp compression target */
-#define PPPDBG_AHDLC 3 /* identifies ppp async hdlc target */
diff --git a/mdk-stage1/ppp/include/net/slcompress.h b/mdk-stage1/ppp/include/net/slcompress.h
deleted file mode 100644
index 9e19bc0ed..000000000
--- a/mdk-stage1/ppp/include/net/slcompress.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Definitions for tcp compression routines.
- *
- * $Id$
- *
- * Copyright (c) 1989 Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by the University of California, Berkeley. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Van Jacobson (van@helios.ee.lbl.gov), Dec 31, 1989:
- * - Initial distribution.
- */
-
-#ifndef _SLCOMPRESS_H_
-#define _SLCOMPRESS_H_
-
-#define MAX_STATES 16 /* must be > 2 and < 256 */
-#define MAX_HDR MLEN /* XXX 4bsd-ism: should really be 128 */
-
-/*
- * Compressed packet format:
- *
- * The first octet contains the packet type (top 3 bits), TCP
- * 'push' bit, and flags that indicate which of the 4 TCP sequence
- * numbers have changed (bottom 5 bits). The next octet is a
- * conversation number that associates a saved IP/TCP header with
- * the compressed packet. The next two octets are the TCP checksum
- * from the original datagram. The next 0 to 15 octets are
- * sequence number changes, one change per bit set in the header
- * (there may be no changes and there are two special cases where
- * the receiver implicitly knows what changed -- see below).
- *
- * There are 5 numbers which can change (they are always inserted
- * in the following order): TCP urgent pointer, window,
- * acknowlegement, sequence number and IP ID. (The urgent pointer
- * is different from the others in that its value is sent, not the
- * change in value.) Since typical use of SLIP links is biased
- * toward small packets (see comments on MTU/MSS below), changes
- * use a variable length coding with one octet for numbers in the
- * range 1 - 255 and 3 octets (0, MSB, LSB) for numbers in the
- * range 256 - 65535 or 0. (If the change in sequence number or
- * ack is more than 65535, an uncompressed packet is sent.)
- */
-
-/*
- * Packet types (must not conflict with IP protocol version)
- *
- * The top nibble of the first octet is the packet type. There are
- * three possible types: IP (not proto TCP or tcp with one of the
- * control flags set); uncompressed TCP (a normal IP/TCP packet but
- * with the 8-bit protocol field replaced by an 8-bit connection id --
- * this type of packet syncs the sender & receiver); and compressed
- * TCP (described above).
- *
- * LSB of 4-bit field is TCP "PUSH" bit (a worthless anachronism) and
- * is logically part of the 4-bit "changes" field that follows. Top
- * three bits are actual packet type. For backward compatibility
- * and in the interest of conserving bits, numbers are chosen so the
- * IP protocol version number (4) which normally appears in this nibble
- * means "IP packet".
- */
-
-/* packet types */
-#define TYPE_IP 0x40
-#define TYPE_UNCOMPRESSED_TCP 0x70
-#define TYPE_COMPRESSED_TCP 0x80
-#define TYPE_ERROR 0x00
-
-/* Bits in first octet of compressed packet */
-#define NEW_C 0x40 /* flag bits for what changed in a packet */
-#define NEW_I 0x20
-#define NEW_S 0x08
-#define NEW_A 0x04
-#define NEW_W 0x02
-#define NEW_U 0x01
-
-/* reserved, special-case values of above */
-#define SPECIAL_I (NEW_S|NEW_W|NEW_U) /* echoed interactive traffic */
-#define SPECIAL_D (NEW_S|NEW_A|NEW_W|NEW_U) /* unidirectional data */
-#define SPECIALS_MASK (NEW_S|NEW_A|NEW_W|NEW_U)
-
-#define TCP_PUSH_BIT 0x10
-
-
-/*
- * "state" data for each active tcp conversation on the wire. This is
- * basically a copy of the entire IP/TCP header from the last packet
- * we saw from the conversation together with a small identifier
- * the transmit & receive ends of the line use to locate saved header.
- */
-struct cstate {
- struct cstate *cs_next; /* next most recently used cstate (xmit only) */
- u_short cs_hlen; /* size of hdr (receive only) */
- u_char cs_id; /* connection # associated with this state */
- u_char cs_filler;
- union {
- char csu_hdr[MAX_HDR];
- struct ip csu_ip; /* ip/tcp hdr from most recent packet */
- } slcs_u;
-};
-#define cs_ip slcs_u.csu_ip
-#define cs_hdr slcs_u.csu_hdr
-
-/*
- * all the state data for one serial line (we need one of these
- * per line).
- */
-struct slcompress {
- struct cstate *last_cs; /* most recently used tstate */
- u_char last_recv; /* last rcvd conn. id */
- u_char last_xmit; /* last sent conn. id */
- u_short flags;
-#ifndef SL_NO_STATS
- int sls_packets; /* outbound packets */
- int sls_compressed; /* outbound compressed packets */
- int sls_searches; /* searches for connection state */
- int sls_misses; /* times couldn't find conn. state */
- int sls_uncompressedin; /* inbound uncompressed packets */
- int sls_compressedin; /* inbound compressed packets */
- int sls_errorin; /* inbound unknown type packets */
- int sls_tossed; /* inbound packets tossed because of error */
-#endif
- struct cstate tstate[MAX_STATES]; /* xmit connection states */
- struct cstate rstate[MAX_STATES]; /* receive connection states */
-};
-/* flag values */
-#define SLF_TOSS 1 /* tossing rcvd frames because of input err */
-
-void sl_compress_init __P((struct slcompress *));
-void sl_compress_setup __P((struct slcompress *, int));
-u_int sl_compress_tcp __P((struct mbuf *,
- struct ip *, struct slcompress *, int));
-int sl_uncompress_tcp __P((u_char **, int, u_int, struct slcompress *));
-int sl_uncompress_tcp_core __P((u_char *, int, int, u_int,
- struct slcompress *, u_char **, u_int *));
-
-#endif /* _SLCOMPRESS_H_ */
diff --git a/mdk-stage1/ppp/include/net/vjcompress.h b/mdk-stage1/ppp/include/net/vjcompress.h
deleted file mode 100644
index c64596926..000000000
--- a/mdk-stage1/ppp/include/net/vjcompress.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Definitions for tcp compression routines.
- *
- * $Id$
- *
- * Copyright (c) 1989 Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by the University of California, Berkeley. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Van Jacobson (van@helios.ee.lbl.gov), Dec 31, 1989:
- * - Initial distribution.
- */
-
-#ifndef _VJCOMPRESS_H_
-#define _VJCOMPRESS_H_
-
-#define MAX_STATES 16 /* must be > 2 and < 256 */
-#define MAX_HDR 128
-
-/*
- * Compressed packet format:
- *
- * The first octet contains the packet type (top 3 bits), TCP
- * 'push' bit, and flags that indicate which of the 4 TCP sequence
- * numbers have changed (bottom 5 bits). The next octet is a
- * conversation number that associates a saved IP/TCP header with
- * the compressed packet. The next two octets are the TCP checksum
- * from the original datagram. The next 0 to 15 octets are
- * sequence number changes, one change per bit set in the header
- * (there may be no changes and there are two special cases where
- * the receiver implicitly knows what changed -- see below).
- *
- * There are 5 numbers which can change (they are always inserted
- * in the following order): TCP urgent pointer, window,
- * acknowlegement, sequence number and IP ID. (The urgent pointer
- * is different from the others in that its value is sent, not the
- * change in value.) Since typical use of SLIP links is biased
- * toward small packets (see comments on MTU/MSS below), changes
- * use a variable length coding with one octet for numbers in the
- * range 1 - 255 and 3 octets (0, MSB, LSB) for numbers in the
- * range 256 - 65535 or 0. (If the change in sequence number or
- * ack is more than 65535, an uncompressed packet is sent.)
- */
-
-/*
- * Packet types (must not conflict with IP protocol version)
- *
- * The top nibble of the first octet is the packet type. There are
- * three possible types: IP (not proto TCP or tcp with one of the
- * control flags set); uncompressed TCP (a normal IP/TCP packet but
- * with the 8-bit protocol field replaced by an 8-bit connection id --
- * this type of packet syncs the sender & receiver); and compressed
- * TCP (described above).
- *
- * LSB of 4-bit field is TCP "PUSH" bit (a worthless anachronism) and
- * is logically part of the 4-bit "changes" field that follows. Top
- * three bits are actual packet type. For backward compatibility
- * and in the interest of conserving bits, numbers are chosen so the
- * IP protocol version number (4) which normally appears in this nibble
- * means "IP packet".
- */
-
-/* packet types */
-#define TYPE_IP 0x40
-#define TYPE_UNCOMPRESSED_TCP 0x70
-#define TYPE_COMPRESSED_TCP 0x80
-#define TYPE_ERROR 0x00
-
-/* Bits in first octet of compressed packet */
-#define NEW_C 0x40 /* flag bits for what changed in a packet */
-#define NEW_I 0x20
-#define NEW_S 0x08
-#define NEW_A 0x04
-#define NEW_W 0x02
-#define NEW_U 0x01
-
-/* reserved, special-case values of above */
-#define SPECIAL_I (NEW_S|NEW_W|NEW_U) /* echoed interactive traffic */
-#define SPECIAL_D (NEW_S|NEW_A|NEW_W|NEW_U) /* unidirectional data */
-#define SPECIALS_MASK (NEW_S|NEW_A|NEW_W|NEW_U)
-
-#define TCP_PUSH_BIT 0x10
-
-
-/*
- * "state" data for each active tcp conversation on the wire. This is
- * basically a copy of the entire IP/TCP header from the last packet
- * we saw from the conversation together with a small identifier
- * the transmit & receive ends of the line use to locate saved header.
- */
-struct cstate {
- struct cstate *cs_next; /* next most recently used state (xmit only) */
- u_short cs_hlen; /* size of hdr (receive only) */
- u_char cs_id; /* connection # associated with this state */
- u_char cs_filler;
- union {
- char csu_hdr[MAX_HDR];
- struct ip csu_ip; /* ip/tcp hdr from most recent packet */
- } vjcs_u;
-};
-#define cs_ip vjcs_u.csu_ip
-#define cs_hdr vjcs_u.csu_hdr
-
-/*
- * all the state data for one serial line (we need one of these per line).
- */
-struct vjcompress {
- struct cstate *last_cs; /* most recently used tstate */
- u_char last_recv; /* last rcvd conn. id */
- u_char last_xmit; /* last sent conn. id */
- u_short flags;
-#ifndef VJ_NO_STATS
- struct vjstat stats;
-#endif
- struct cstate tstate[MAX_STATES]; /* xmit connection states */
- struct cstate rstate[MAX_STATES]; /* receive connection states */
-};
-
-/* flag values */
-#define VJF_TOSS 1 /* tossing rcvd frames because of input err */
-
-extern void vj_compress_init __P((struct vjcompress *comp, int max_state));
-extern u_int vj_compress_tcp __P((struct ip *ip, u_int mlen,
- struct vjcompress *comp, int compress_cid_flag,
- u_char **vjhdrp));
-extern void vj_uncompress_err __P((struct vjcompress *comp));
-extern int vj_uncompress_uncomp __P((u_char *buf, int buflen,
- struct vjcompress *comp));
-extern int vj_uncompress_tcp __P((u_char *buf, int buflen, int total_len,
- struct vjcompress *comp, u_char **hdrp,
- u_int *hlenp));
-
-#endif /* _VJCOMPRESS_H_ */
diff --git a/mdk-stage1/ppp/include/pcap-int.h b/mdk-stage1/ppp/include/pcap-int.h
deleted file mode 100644
index 323994929..000000000
--- a/mdk-stage1/ppp/include/pcap-int.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright (c) 1994, 1995, 1996
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the Computer Systems
- * Engineering Group at Lawrence Berkeley Laboratory.
- * 4. Neither the name of the University nor of the Laboratory may be used
- * to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#) $Header$ (LBL)
- */
-
-#ifndef pcap_int_h
-#define pcap_int_h
-
-#include <pcap.h>
-
-/*
- * Savefile
- */
-struct pcap_sf {
- FILE *rfile;
- int swapped;
- int version_major;
- int version_minor;
- u_char *base;
-};
-
-struct pcap_md {
- struct pcap_stat stat;
- /*XXX*/
- int use_bpf;
- u_long TotPkts; /* can't oflow for 79 hrs on ether */
- u_long TotAccepted; /* count accepted by filter */
- u_long TotDrops; /* count of dropped packets */
- long TotMissed; /* missed by i/f during this run */
- long OrigMissed; /* missed by i/f before this run */
-#ifdef linux
- int pad;
- int skip;
- char *device;
-#endif
-};
-
-struct pcap {
- int fd;
- int snapshot;
- int linktype;
- int tzoff; /* timezone offset */
- int offset; /* offset for proper alignment */
-
- struct pcap_sf sf;
- struct pcap_md md;
-
- /*
- * Read buffer.
- */
- int bufsize;
- u_char *buffer;
- u_char *bp;
- int cc;
-
- /*
- * Place holder for pcap_next().
- */
- u_char *pkt;
-
-
- /*
- * Placeholder for filter code if bpf not in kernel.
- */
- struct bpf_program fcode;
-
- char errbuf[PCAP_ERRBUF_SIZE];
-};
-
-int yylex(void);
-
-#ifndef min
-#define min(a, b) ((a) > (b) ? (b) : (a))
-#endif
-
-/* XXX should these be in pcap.h? */
-int pcap_offline_read(pcap_t *, int, pcap_handler, u_char *);
-int pcap_read(pcap_t *, int cnt, pcap_handler, u_char *);
-
-/* Ultrix pads to make everything line up on a nice boundary */
-#if defined(ultrix) || defined(__alpha)
-#define PCAP_FDDIPAD 3
-#endif
-
-/* XXX */
-extern int pcap_fddipad;
-#endif
diff --git a/mdk-stage1/ppp/linux/Makefile.top b/mdk-stage1/ppp/linux/Makefile.top
deleted file mode 100644
index fa34ce59f..000000000
--- a/mdk-stage1/ppp/linux/Makefile.top
+++ /dev/null
@@ -1,55 +0,0 @@
-# PPP top-level Makefile for Linux.
-
-
-BINDIR = $(DESTDIR)/usr/sbin
-MANDIR = $(DESTDIR)/usr/man
-ETCDIR = $(DESTDIR)/etc/ppp
-
-# uid 0 = root
-INSTALL= install
-
-all:
- cd chat; $(MAKE) $(MFLAGS) all
- cd pppd; $(MAKE) $(MFLAGS) all
- cd pppstats; $(MAKE) $(MFLAGS) all
- cd pppdump; $(MAKE) $(MFLAGS) all
-
-install: $(BINDIR) $(MANDIR)/man8 install-progs install-etcppp
-
-install-progs:
- cd chat; $(MAKE) BINDIR=$(BINDIR) MANDIR=$(MANDIR) $(MFLAGS) install
- cd pppd; $(MAKE) BINDIR=$(BINDIR) MANDIR=$(MANDIR) $(MFLAGS) install
- cd pppstats; $(MAKE) BINDIR=$(BINDIR) MANDIR=$(MANDIR) $(MFLAGS) install
- cd pppdump; $(MAKE) BINDIR=$(BINDIR) MANDIR=$(MANDIR) $(MFLAGS) install
-
-install-etcppp: $(ETCDIR) $(ETCDIR)/options $(ETCDIR)/pap-secrets \
- $(ETCDIR)/chap-secrets
-
-$(ETCDIR)/options:
- $(INSTALL) -c -m 644 etc.ppp/options $@
-$(ETCDIR)/pap-secrets:
- $(INSTALL) -c -m 600 etc.ppp/pap-secrets $@
-$(ETCDIR)/chap-secrets:
- $(INSTALL) -c -m 600 etc.ppp/chap-secrets $@
-
-$(BINDIR):
- $(INSTALL) -d -m 755 $@
-$(MANDIR)/man8:
- $(INSTALL) -d -m 755 $@
-$(ETCDIR):
- $(INSTALL) -d -m 755 $@
-
-clean:
- rm -f `find . -name '*.[oas]' -print`
- rm -f `find . -name 'core' -print`
- rm -f `find . -name '*~' -print`
- cd chat; $(MAKE) clean
- cd pppd; $(MAKE) clean
- cd pppstats; $(MAKE) clean
- cd pppdump; $(MAKE) clean
-
-dist-clean: clean
- rm -f Makefile `find . -name Makefile -print`
-
-#kernel:
-# cd linux; ./kinstall.sh
diff --git a/mdk-stage1/ppp/modules/bsd-comp.c b/mdk-stage1/ppp/modules/bsd-comp.c
deleted file mode 100644
index b1b9325c7..000000000
--- a/mdk-stage1/ppp/modules/bsd-comp.c
+++ /dev/null
@@ -1,1116 +0,0 @@
-/* Because this code is derived from the 4.3BSD compress source:
- *
- *
- * Copyright (c) 1985, 1986 The Regents of the University of California.
- * All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * James A. Woods, derived from original work by Spencer Thomas
- * and Joseph Orost.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * This version is for use with STREAMS under SunOS 4.x,
- * Digital UNIX, AIX 4.x, and SVR4 systems including Solaris 2.
- *
- * $Id$
- */
-
-#ifdef AIX4
-#include <net/net_globals.h>
-#endif
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/stream.h>
-#include <net/ppp_defs.h>
-#include "ppp_mod.h"
-
-#ifdef SVR4
-#include <sys/byteorder.h>
-#ifndef _BIG_ENDIAN
-#define BSD_LITTLE_ENDIAN
-#endif
-#endif
-
-#ifdef __osf__
-#undef FIRST
-#undef LAST
-#define BSD_LITTLE_ENDIAN
-#endif
-
-#define PACKETPTR mblk_t *
-#include <net/ppp-comp.h>
-
-#if DO_BSD_COMPRESS
-
-/*
- * PPP "BSD compress" compression
- * The differences between this compression and the classic BSD LZW
- * source are obvious from the requirement that the classic code worked
- * with files while this handles arbitrarily long streams that
- * are broken into packets. They are:
- *
- * When the code size expands, a block of junk is not emitted by
- * the compressor and not expected by the decompressor.
- *
- * New codes are not necessarily assigned every time an old
- * code is output by the compressor. This is because a packet
- * end forces a code to be emitted, but does not imply that a
- * new sequence has been seen.
- *
- * The compression ratio is checked at the first end of a packet
- * after the appropriate gap. Besides simplifying and speeding
- * things up, this makes it more likely that the transmitter
- * and receiver will agree when the dictionary is cleared when
- * compression is not going well.
- */
-
-/*
- * A dictionary for doing BSD compress.
- */
-struct bsd_db {
- int totlen; /* length of this structure */
- u_int hsize; /* size of the hash table */
- u_char hshift; /* used in hash function */
- u_char n_bits; /* current bits/code */
- u_char maxbits;
- u_char debug;
- u_char unit;
- u_short seqno; /* sequence number of next packet */
- u_int hdrlen; /* header length to preallocate */
- u_int mru;
- u_int maxmaxcode; /* largest valid code */
- u_int max_ent; /* largest code in use */
- u_int in_count; /* uncompressed bytes, aged */
- u_int bytes_out; /* compressed bytes, aged */
- u_int ratio; /* recent compression ratio */
- u_int checkpoint; /* when to next check the ratio */
- u_int clear_count; /* times dictionary cleared */
- u_int incomp_count; /* incompressible packets */
- u_int incomp_bytes; /* incompressible bytes */
- u_int uncomp_count; /* uncompressed packets */
- u_int uncomp_bytes; /* uncompressed bytes */
- u_int comp_count; /* compressed packets */
- u_int comp_bytes; /* compressed bytes */
- u_short *lens; /* array of lengths of codes */
- struct bsd_dict {
- union { /* hash value */
- u_int32_t fcode;
- struct {
-#ifdef BSD_LITTLE_ENDIAN
- u_short prefix; /* preceding code */
- u_char suffix; /* last character of new code */
- u_char pad;
-#else
- u_char pad;
- u_char suffix; /* last character of new code */
- u_short prefix; /* preceding code */
-#endif
- } hs;
- } f;
- u_short codem1; /* output of hash table -1 */
- u_short cptr; /* map code to hash table entry */
- } dict[1];
-};
-
-#define BSD_OVHD 2 /* BSD compress overhead/packet */
-#define BSD_INIT_BITS BSD_MIN_BITS
-
-static void *bsd_comp_alloc __P((u_char *options, int opt_len));
-static void *bsd_decomp_alloc __P((u_char *options, int opt_len));
-static void bsd_free __P((void *state));
-static int bsd_comp_init __P((void *state, u_char *options, int opt_len,
- int unit, int hdrlen, int debug));
-static int bsd_decomp_init __P((void *state, u_char *options, int opt_len,
- int unit, int hdrlen, int mru, int debug));
-static int bsd_compress __P((void *state, mblk_t **mret,
- mblk_t *mp, int slen, int maxolen));
-static void bsd_incomp __P((void *state, mblk_t *dmsg));
-static int bsd_decompress __P((void *state, mblk_t *cmp, mblk_t **dmpp));
-static void bsd_reset __P((void *state));
-static void bsd_comp_stats __P((void *state, struct compstat *stats));
-
-/*
- * Procedures exported to ppp_comp.c.
- */
-struct compressor ppp_bsd_compress = {
- CI_BSD_COMPRESS, /* compress_proto */
- bsd_comp_alloc, /* comp_alloc */
- bsd_free, /* comp_free */
- bsd_comp_init, /* comp_init */
- bsd_reset, /* comp_reset */
- bsd_compress, /* compress */
- bsd_comp_stats, /* comp_stat */
- bsd_decomp_alloc, /* decomp_alloc */
- bsd_free, /* decomp_free */
- bsd_decomp_init, /* decomp_init */
- bsd_reset, /* decomp_reset */
- bsd_decompress, /* decompress */
- bsd_incomp, /* incomp */
- bsd_comp_stats, /* decomp_stat */
-};
-
-/*
- * the next two codes should not be changed lightly, as they must not
- * lie within the contiguous general code space.
- */
-#define CLEAR 256 /* table clear output code */
-#define FIRST 257 /* first free entry */
-#define LAST 255
-
-#define MAXCODE(b) ((1 << (b)) - 1)
-#define BADCODEM1 MAXCODE(BSD_MAX_BITS)
-
-#define BSD_HASH(prefix,suffix,hshift) ((((u_int32_t)(suffix)) << (hshift)) \
- ^ (u_int32_t)(prefix))
-#define BSD_KEY(prefix,suffix) ((((u_int32_t)(suffix)) << 16) \
- + (u_int32_t)(prefix))
-
-#define CHECK_GAP 10000 /* Ratio check interval */
-
-#define RATIO_SCALE_LOG 8
-#define RATIO_SCALE (1<<RATIO_SCALE_LOG)
-#define RATIO_MAX (0x7fffffff>>RATIO_SCALE_LOG)
-
-#define DECOMP_CHUNK 256
-
-/*
- * clear the dictionary
- */
-static void
-bsd_clear(db)
- struct bsd_db *db;
-{
- db->clear_count++;
- db->max_ent = FIRST-1;
- db->n_bits = BSD_INIT_BITS;
- db->ratio = 0;
- db->bytes_out = 0;
- db->in_count = 0;
- db->checkpoint = CHECK_GAP;
-}
-
-/*
- * If the dictionary is full, then see if it is time to reset it.
- *
- * Compute the compression ratio using fixed-point arithmetic
- * with 8 fractional bits.
- *
- * Since we have an infinite stream instead of a single file,
- * watch only the local compression ratio.
- *
- * Since both peers must reset the dictionary at the same time even in
- * the absence of CLEAR codes (while packets are incompressible), they
- * must compute the same ratio.
- */
-static int /* 1=output CLEAR */
-bsd_check(db)
- struct bsd_db *db;
-{
- u_int new_ratio;
-
- if (db->in_count >= db->checkpoint) {
- /* age the ratio by limiting the size of the counts */
- if (db->in_count >= RATIO_MAX
- || db->bytes_out >= RATIO_MAX) {
- db->in_count -= db->in_count/4;
- db->bytes_out -= db->bytes_out/4;
- }
-
- db->checkpoint = db->in_count + CHECK_GAP;
-
- if (db->max_ent >= db->maxmaxcode) {
- /* Reset the dictionary only if the ratio is worse,
- * or if it looks as if it has been poisoned
- * by incompressible data.
- *
- * This does not overflow, because
- * db->in_count <= RATIO_MAX.
- */
- new_ratio = db->in_count << RATIO_SCALE_LOG;
- if (db->bytes_out != 0)
- new_ratio /= db->bytes_out;
-
- if (new_ratio < db->ratio || new_ratio < 1 * RATIO_SCALE) {
- bsd_clear(db);
- return 1;
- }
- db->ratio = new_ratio;
- }
- }
- return 0;
-}
-
-/*
- * Return statistics.
- */
-static void
-bsd_comp_stats(state, stats)
- void *state;
- struct compstat *stats;
-{
- struct bsd_db *db = (struct bsd_db *) state;
- u_int out;
-
- stats->unc_bytes = db->uncomp_bytes;
- stats->unc_packets = db->uncomp_count;
- stats->comp_bytes = db->comp_bytes;
- stats->comp_packets = db->comp_count;
- stats->inc_bytes = db->incomp_bytes;
- stats->inc_packets = db->incomp_count;
- stats->ratio = db->in_count;
- out = db->bytes_out;
- if (stats->ratio <= 0x7fffff)
- stats->ratio <<= 8;
- else
- out >>= 8;
- if (out != 0)
- stats->ratio /= out;
-}
-
-/*
- * Reset state, as on a CCP ResetReq.
- */
-static void
-bsd_reset(state)
- void *state;
-{
- struct bsd_db *db = (struct bsd_db *) state;
-
- db->seqno = 0;
- bsd_clear(db);
- db->clear_count = 0;
-}
-
-/*
- * Allocate space for a (de) compressor.
- */
-static void *
-bsd_alloc(options, opt_len, decomp)
- u_char *options;
- int opt_len, decomp;
-{
- int bits;
- u_int newlen, hsize, hshift, maxmaxcode;
- struct bsd_db *db;
-
- if (opt_len != 3 || options[0] != CI_BSD_COMPRESS || options[1] != 3
- || BSD_VERSION(options[2]) != BSD_CURRENT_VERSION)
- return NULL;
-
- bits = BSD_NBITS(options[2]);
- switch (bits) {
- case 9: /* needs 82152 for both directions */
- case 10: /* needs 84144 */
- case 11: /* needs 88240 */
- case 12: /* needs 96432 */
- hsize = 5003;
- hshift = 4;
- break;
- case 13: /* needs 176784 */
- hsize = 9001;
- hshift = 5;
- break;
- case 14: /* needs 353744 */
- hsize = 18013;
- hshift = 6;
- break;
- case 15: /* needs 691440 */
- hsize = 35023;
- hshift = 7;
- break;
- case 16: /* needs 1366160--far too much, */
- /* hsize = 69001; */ /* and 69001 is too big for cptr */
- /* hshift = 8; */ /* in struct bsd_db */
- /* break; */
- default:
- return NULL;
- }
-
- maxmaxcode = MAXCODE(bits);
- newlen = sizeof(*db) + (hsize-1) * (sizeof(db->dict[0]));
-#ifdef __osf__
- db = (struct bsd_db *) ALLOC_SLEEP(newlen);
-#else
- db = (struct bsd_db *) ALLOC_NOSLEEP(newlen);
-#endif
- if (!db)
- return NULL;
- bzero(db, sizeof(*db) - sizeof(db->dict));
-
- if (!decomp) {
- db->lens = NULL;
- } else {
-#ifdef __osf__
- db->lens = (u_short *) ALLOC_SLEEP((maxmaxcode+1) * sizeof(db->lens[0]));
-#else
- db->lens = (u_short *) ALLOC_NOSLEEP((maxmaxcode+1) * sizeof(db->lens[0]));
-#endif
- if (!db->lens) {
- FREE(db, newlen);
- return NULL;
- }
- }
-
- db->totlen = newlen;
- db->hsize = hsize;
- db->hshift = hshift;
- db->maxmaxcode = maxmaxcode;
- db->maxbits = bits;
-
- return (void *) db;
-}
-
-static void
-bsd_free(state)
- void *state;
-{
- struct bsd_db *db = (struct bsd_db *) state;
-
- if (db->lens)
- FREE(db->lens, (db->maxmaxcode+1) * sizeof(db->lens[0]));
- FREE(db, db->totlen);
-}
-
-static void *
-bsd_comp_alloc(options, opt_len)
- u_char *options;
- int opt_len;
-{
- return bsd_alloc(options, opt_len, 0);
-}
-
-static void *
-bsd_decomp_alloc(options, opt_len)
- u_char *options;
- int opt_len;
-{
- return bsd_alloc(options, opt_len, 1);
-}
-
-/*
- * Initialize the database.
- */
-static int
-bsd_init(db, options, opt_len, unit, hdrlen, mru, debug, decomp)
- struct bsd_db *db;
- u_char *options;
- int opt_len, unit, hdrlen, mru, debug, decomp;
-{
- int i;
-
- if (opt_len < CILEN_BSD_COMPRESS
- || options[0] != CI_BSD_COMPRESS || options[1] != CILEN_BSD_COMPRESS
- || BSD_VERSION(options[2]) != BSD_CURRENT_VERSION
- || BSD_NBITS(options[2]) != db->maxbits
- || decomp && db->lens == NULL)
- return 0;
-
- if (decomp) {
- i = LAST+1;
- while (i != 0)
- db->lens[--i] = 1;
- }
- i = db->hsize;
- while (i != 0) {
- db->dict[--i].codem1 = BADCODEM1;
- db->dict[i].cptr = 0;
- }
-
- db->unit = unit;
- db->hdrlen = hdrlen;
- db->mru = mru;
- if (debug)
- db->debug = 1;
-
- bsd_reset(db);
-
- return 1;
-}
-
-static int
-bsd_comp_init(state, options, opt_len, unit, hdrlen, debug)
- void *state;
- u_char *options;
- int opt_len, unit, hdrlen, debug;
-{
- return bsd_init((struct bsd_db *) state, options, opt_len,
- unit, hdrlen, 0, debug, 0);
-}
-
-static int
-bsd_decomp_init(state, options, opt_len, unit, hdrlen, mru, debug)
- void *state;
- u_char *options;
- int opt_len, unit, hdrlen, mru, debug;
-{
- return bsd_init((struct bsd_db *) state, options, opt_len,
- unit, hdrlen, mru, debug, 1);
-}
-
-
-/*
- * compress a packet
- * One change from the BSD compress command is that when the
- * code size expands, we do not output a bunch of padding.
- *
- * N.B. at present, we ignore the hdrlen specified in the comp_init call.
- */
-static int /* new slen */
-bsd_compress(state, mretp, mp, slen, maxolen)
- void *state;
- mblk_t **mretp; /* return compressed mbuf chain here */
- mblk_t *mp; /* from here */
- int slen; /* uncompressed length */
- int maxolen; /* max compressed length */
-{
- struct bsd_db *db = (struct bsd_db *) state;
- int hshift = db->hshift;
- u_int max_ent = db->max_ent;
- u_int n_bits = db->n_bits;
- u_int bitno = 32;
- u_int32_t accm = 0, fcode;
- struct bsd_dict *dictp;
- u_char c;
- int hval, disp, ent, ilen;
- mblk_t *np, *mret;
- u_char *rptr, *wptr;
- u_char *cp_end;
- int olen;
- mblk_t *m, **mnp;
-
-#define PUTBYTE(v) { \
- if (wptr) { \
- *wptr++ = (v); \
- if (wptr >= cp_end) { \
- m->b_wptr = wptr; \
- m = m->b_cont; \
- if (m) { \
- wptr = m->b_wptr; \
- cp_end = m->b_datap->db_lim; \
- } else \
- wptr = NULL; \
- } \
- } \
- ++olen; \
-}
-
-#define OUTPUT(ent) { \
- bitno -= n_bits; \
- accm |= ((ent) << bitno); \
- do { \
- PUTBYTE(accm >> 24); \
- accm <<= 8; \
- bitno += 8; \
- } while (bitno <= 24); \
-}
-
- /*
- * First get the protocol and check that we're
- * interested in this packet.
- */
- *mretp = NULL;
- rptr = mp->b_rptr;
- if (rptr + PPP_HDRLEN > mp->b_wptr) {
- if (!pullupmsg(mp, PPP_HDRLEN))
- return 0;
- rptr = mp->b_rptr;
- }
- ent = PPP_PROTOCOL(rptr); /* get the protocol */
- if (ent < 0x21 || ent > 0xf9)
- return 0;
-
- /* Don't generate compressed packets which are larger than
- the uncompressed packet. */
- if (maxolen > slen)
- maxolen = slen;
-
- /* Allocate enough message blocks to give maxolen total space. */
- mnp = &mret;
- for (olen = maxolen; olen > 0; ) {
- m = allocb((olen < 4096? olen: 4096), BPRI_MED);
- *mnp = m;
- if (m == NULL) {
- if (mret != NULL) {
- freemsg(mret);
- mnp = &mret;
- }
- break;
- }
- mnp = &m->b_cont;
- olen -= m->b_datap->db_lim - m->b_wptr;
- }
- *mnp = NULL;
-
- if ((m = mret) != NULL) {
- wptr = m->b_wptr;
- cp_end = m->b_datap->db_lim;
- } else
- wptr = cp_end = NULL;
- olen = 0;
-
- /*
- * Copy the PPP header over, changing the protocol,
- * and install the 2-byte sequence number.
- */
- if (wptr) {
- wptr[0] = PPP_ADDRESS(rptr);
- wptr[1] = PPP_CONTROL(rptr);
- wptr[2] = 0; /* change the protocol */
- wptr[3] = PPP_COMP;
- wptr[4] = db->seqno >> 8;
- wptr[5] = db->seqno;
- wptr += PPP_HDRLEN + BSD_OVHD;
- }
- ++db->seqno;
- rptr += PPP_HDRLEN;
-
- slen = mp->b_wptr - rptr;
- ilen = slen + 1;
- np = mp->b_cont;
- for (;;) {
- if (slen <= 0) {
- if (!np)
- break;
- rptr = np->b_rptr;
- slen = np->b_wptr - rptr;
- np = np->b_cont;
- if (!slen)
- continue; /* handle 0-length buffers */
- ilen += slen;
- }
-
- slen--;
- c = *rptr++;
- fcode = BSD_KEY(ent, c);
- hval = BSD_HASH(ent, c, hshift);
- dictp = &db->dict[hval];
-
- /* Validate and then check the entry. */
- if (dictp->codem1 >= max_ent)
- goto nomatch;
- if (dictp->f.fcode == fcode) {
- ent = dictp->codem1+1;
- continue; /* found (prefix,suffix) */
- }
-
- /* continue probing until a match or invalid entry */
- disp = (hval == 0) ? 1 : hval;
- do {
- hval += disp;
- if (hval >= db->hsize)
- hval -= db->hsize;
- dictp = &db->dict[hval];
- if (dictp->codem1 >= max_ent)
- goto nomatch;
- } while (dictp->f.fcode != fcode);
- ent = dictp->codem1 + 1; /* finally found (prefix,suffix) */
- continue;
-
- nomatch:
- OUTPUT(ent); /* output the prefix */
-
- /* code -> hashtable */
- if (max_ent < db->maxmaxcode) {
- struct bsd_dict *dictp2;
- /* expand code size if needed */
- if (max_ent >= MAXCODE(n_bits))
- db->n_bits = ++n_bits;
-
- /* Invalidate old hash table entry using
- * this code, and then take it over.
- */
- dictp2 = &db->dict[max_ent+1];
- if (db->dict[dictp2->cptr].codem1 == max_ent)
- db->dict[dictp2->cptr].codem1 = BADCODEM1;
- dictp2->cptr = hval;
- dictp->codem1 = max_ent;
- dictp->f.fcode = fcode;
-
- db->max_ent = ++max_ent;
- }
- ent = c;
- }
-
- OUTPUT(ent); /* output the last code */
- db->bytes_out += olen;
- db->in_count += ilen;
- if (bitno < 32)
- ++db->bytes_out; /* count complete bytes */
-
- if (bsd_check(db))
- OUTPUT(CLEAR); /* do not count the CLEAR */
-
- /*
- * Pad dribble bits of last code with ones.
- * Do not emit a completely useless byte of ones.
- */
- if (bitno != 32)
- PUTBYTE((accm | (0xff << (bitno-8))) >> 24);
-
- /*
- * Increase code size if we would have without the packet
- * boundary and as the decompressor will.
- */
- if (max_ent >= MAXCODE(n_bits) && max_ent < db->maxmaxcode)
- db->n_bits++;
-
- db->uncomp_bytes += ilen;
- ++db->uncomp_count;
- if (olen + PPP_HDRLEN + BSD_OVHD > maxolen && mret != NULL) {
- /* throw away the compressed stuff if it is longer than uncompressed */
- freemsg(mret);
- mret = NULL;
- ++db->incomp_count;
- db->incomp_bytes += ilen;
- } else if (wptr != NULL) {
- m->b_wptr = wptr;
- if (m->b_cont) {
- freemsg(m->b_cont);
- m->b_cont = NULL;
- }
- ++db->comp_count;
- db->comp_bytes += olen + BSD_OVHD;
- }
-
- *mretp = mret;
- return olen + PPP_HDRLEN + BSD_OVHD;
-#undef OUTPUT
-#undef PUTBYTE
-}
-
-
-/*
- * Update the "BSD Compress" dictionary on the receiver for
- * incompressible data by pretending to compress the incoming data.
- */
-static void
-bsd_incomp(state, dmsg)
- void *state;
- mblk_t *dmsg;
-{
- struct bsd_db *db = (struct bsd_db *) state;
- u_int hshift = db->hshift;
- u_int max_ent = db->max_ent;
- u_int n_bits = db->n_bits;
- struct bsd_dict *dictp;
- u_int32_t fcode;
- u_char c;
- long hval, disp;
- int slen, ilen;
- u_int bitno = 7;
- u_char *rptr;
- u_int ent;
-
- rptr = dmsg->b_rptr;
- if (rptr + PPP_HDRLEN > dmsg->b_wptr) {
- if (!pullupmsg(dmsg, PPP_HDRLEN))
- return;
- rptr = dmsg->b_rptr;
- }
- ent = PPP_PROTOCOL(rptr); /* get the protocol */
- if (ent < 0x21 || ent > 0xf9)
- return;
-
- db->seqno++;
- ilen = 1; /* count the protocol as 1 byte */
- rptr += PPP_HDRLEN;
- for (;;) {
- slen = dmsg->b_wptr - rptr;
- if (slen <= 0) {
- dmsg = dmsg->b_cont;
- if (!dmsg)
- break;
- rptr = dmsg->b_rptr;
- continue; /* skip zero-length buffers */
- }
- ilen += slen;
-
- do {
- c = *rptr++;
- fcode = BSD_KEY(ent, c);
- hval = BSD_HASH(ent, c, hshift);
- dictp = &db->dict[hval];
-
- /* validate and then check the entry */
- if (dictp->codem1 >= max_ent)
- goto nomatch;
- if (dictp->f.fcode == fcode) {
- ent = dictp->codem1+1;
- continue; /* found (prefix,suffix) */
- }
-
- /* continue probing until a match or invalid entry */
- disp = (hval == 0) ? 1 : hval;
- do {
- hval += disp;
- if (hval >= db->hsize)
- hval -= db->hsize;
- dictp = &db->dict[hval];
- if (dictp->codem1 >= max_ent)
- goto nomatch;
- } while (dictp->f.fcode != fcode);
- ent = dictp->codem1+1;
- continue; /* finally found (prefix,suffix) */
-
- nomatch: /* output (count) the prefix */
- bitno += n_bits;
-
- /* code -> hashtable */
- if (max_ent < db->maxmaxcode) {
- struct bsd_dict *dictp2;
- /* expand code size if needed */
- if (max_ent >= MAXCODE(n_bits))
- db->n_bits = ++n_bits;
-
- /* Invalidate previous hash table entry
- * assigned this code, and then take it over.
- */
- dictp2 = &db->dict[max_ent+1];
- if (db->dict[dictp2->cptr].codem1 == max_ent)
- db->dict[dictp2->cptr].codem1 = BADCODEM1;
- dictp2->cptr = hval;
- dictp->codem1 = max_ent;
- dictp->f.fcode = fcode;
-
- db->max_ent = ++max_ent;
- db->lens[max_ent] = db->lens[ent]+1;
- }
- ent = c;
- } while (--slen != 0);
- }
- bitno += n_bits; /* output (count) the last code */
- db->bytes_out += bitno/8;
- db->in_count += ilen;
- (void)bsd_check(db);
-
- ++db->incomp_count;
- db->incomp_bytes += ilen;
- ++db->uncomp_count;
- db->uncomp_bytes += ilen;
-
- /* Increase code size if we would have without the packet
- * boundary and as the decompressor will.
- */
- if (max_ent >= MAXCODE(n_bits) && max_ent < db->maxmaxcode)
- db->n_bits++;
-}
-
-
-/*
- * Decompress "BSD Compress"
- *
- * Because of patent problems, we return DECOMP_ERROR for errors
- * found by inspecting the input data and for system problems, but
- * DECOMP_FATALERROR for any errors which could possibly be said to
- * be being detected "after" decompression. For DECOMP_ERROR,
- * we can issue a CCP reset-request; for DECOMP_FATALERROR, we may be
- * infringing a patent of Motorola's if we do, so we take CCP down
- * instead.
- *
- * Given that the frame has the correct sequence number and a good FCS,
- * errors such as invalid codes in the input most likely indicate a
- * bug, so we return DECOMP_FATALERROR for them in order to turn off
- * compression, even though they are detected by inspecting the input.
- */
-static int
-bsd_decompress(state, cmsg, dmpp)
- void *state;
- mblk_t *cmsg, **dmpp;
-{
- struct bsd_db *db = (struct bsd_db *) state;
- u_int max_ent = db->max_ent;
- u_int32_t accm = 0;
- u_int bitno = 32; /* 1st valid bit in accm */
- u_int n_bits = db->n_bits;
- u_int tgtbitno = 32-n_bits; /* bitno when we have a code */
- struct bsd_dict *dictp;
- int explen, i, seq, len;
- u_int incode, oldcode, finchar;
- u_char *p, *rptr, *wptr;
- mblk_t *dmsg, *mret;
- int adrs, ctrl, ilen;
- int dlen, space, codelen, extra;
-
- /*
- * Get at least the BSD Compress header in the first buffer
- */
- rptr = cmsg->b_rptr;
- if (rptr + PPP_HDRLEN + BSD_OVHD >= cmsg->b_wptr) {
- if (!pullupmsg(cmsg, PPP_HDRLEN + BSD_OVHD + 1)) {
- if (db->debug)
- printf("bsd_decomp%d: failed to pullup\n", db->unit);
- return DECOMP_ERROR;
- }
- rptr = cmsg->b_rptr;
- }
-
- /*
- * Save the address/control from the PPP header
- * and then get the sequence number.
- */
- adrs = PPP_ADDRESS(rptr);
- ctrl = PPP_CONTROL(rptr);
- rptr += PPP_HDRLEN;
- seq = (rptr[0] << 8) + rptr[1];
- rptr += BSD_OVHD;
- ilen = len = cmsg->b_wptr - rptr;
-
- /*
- * Check the sequence number and give up if it is not what we expect.
- */
- if (seq != db->seqno++) {
- if (db->debug)
- printf("bsd_decomp%d: bad sequence # %d, expected %d\n",
- db->unit, seq, db->seqno - 1);
- return DECOMP_ERROR;
- }
-
- /*
- * Allocate one message block to start with.
- */
- if ((dmsg = allocb(DECOMP_CHUNK + db->hdrlen, BPRI_MED)) == NULL)
- return DECOMP_ERROR;
- mret = dmsg;
- dmsg->b_wptr += db->hdrlen;
- dmsg->b_rptr = wptr = dmsg->b_wptr;
-
- /* Fill in the ppp header, but not the last byte of the protocol
- (that comes from the decompressed data). */
- wptr[0] = adrs;
- wptr[1] = ctrl;
- wptr[2] = 0;
- wptr += PPP_HDRLEN - 1;
- space = dmsg->b_datap->db_lim - wptr;
-
- oldcode = CLEAR;
- explen = 0;
- for (;;) {
- if (len == 0) {
- cmsg = cmsg->b_cont;
- if (!cmsg) /* quit at end of message */
- break;
- rptr = cmsg->b_rptr;
- len = cmsg->b_wptr - rptr;
- ilen += len;
- continue; /* handle 0-length buffers */
- }
-
- /*
- * Accumulate bytes until we have a complete code.
- * Then get the next code, relying on the 32-bit,
- * unsigned accm to mask the result.
- */
- bitno -= 8;
- accm |= *rptr++ << bitno;
- --len;
- if (tgtbitno < bitno)
- continue;
- incode = accm >> tgtbitno;
- accm <<= n_bits;
- bitno += n_bits;
-
- if (incode == CLEAR) {
- /*
- * The dictionary must only be cleared at
- * the end of a packet. But there could be an
- * empty message block at the end.
- */
- if (len > 0 || cmsg->b_cont != 0) {
- if (cmsg->b_cont)
- len += msgdsize(cmsg->b_cont);
- if (len > 0) {
- freemsg(dmsg);
- if (db->debug)
- printf("bsd_decomp%d: bad CLEAR\n", db->unit);
- return DECOMP_FATALERROR;
- }
- }
- bsd_clear(db);
- explen = ilen = 0;
- break;
- }
-
- if (incode > max_ent + 2 || incode > db->maxmaxcode
- || incode > max_ent && oldcode == CLEAR) {
- freemsg(dmsg);
- if (db->debug) {
- printf("bsd_decomp%d: bad code 0x%x oldcode=0x%x ",
- db->unit, incode, oldcode);
- printf("max_ent=0x%x dlen=%d seqno=%d\n",
- max_ent, dlen, db->seqno);
- }
- return DECOMP_FATALERROR; /* probably a bug */
- }
-
- /* Special case for KwKwK string. */
- if (incode > max_ent) {
- finchar = oldcode;
- extra = 1;
- } else {
- finchar = incode;
- extra = 0;
- }
-
- codelen = db->lens[finchar];
- explen += codelen + extra;
- if (explen > db->mru + 1) {
- freemsg(dmsg);
- if (db->debug)
- printf("bsd_decomp%d: ran out of mru\n", db->unit);
- return DECOMP_FATALERROR;
- }
-
- /*
- * Decode this code and install it in the decompressed buffer.
- */
- space -= codelen + extra;
- if (space < 0) {
- /* Allocate another message block. */
- dmsg->b_wptr = wptr;
- dlen = codelen + extra;
- if (dlen < DECOMP_CHUNK)
- dlen = DECOMP_CHUNK;
- if ((dmsg->b_cont = allocb(dlen, BPRI_MED)) == NULL) {
- freemsg(dmsg);
- return DECOMP_ERROR;
- }
- dmsg = dmsg->b_cont;
- wptr = dmsg->b_wptr;
- space = dmsg->b_datap->db_lim - wptr - codelen - extra;
- }
- p = (wptr += codelen);
- while (finchar > LAST) {
- dictp = &db->dict[db->dict[finchar].cptr];
-#ifdef DEBUG
- --codelen;
- if (codelen <= 0) {
- freemsg(dmsg);
- printf("bsd_decomp%d: fell off end of chain ", db->unit);
- printf("0x%x at 0x%x by 0x%x, max_ent=0x%x\n",
- incode, finchar, db->dict[finchar].cptr, max_ent);
- return DECOMP_FATALERROR;
- }
- if (dictp->codem1 != finchar-1) {
- freemsg(dmsg);
- printf("bsd_decomp%d: bad code chain 0x%x finchar=0x%x ",
- db->unit, incode, finchar);
- printf("oldcode=0x%x cptr=0x%x codem1=0x%x\n", oldcode,
- db->dict[finchar].cptr, dictp->codem1);
- return DECOMP_FATALERROR;
- }
-#endif
- *--p = dictp->f.hs.suffix;
- finchar = dictp->f.hs.prefix;
- }
- *--p = finchar;
-
-#ifdef DEBUG
- if (--codelen != 0)
- printf("bsd_decomp%d: short by %d after code 0x%x, max_ent=0x%x\n",
- db->unit, codelen, incode, max_ent);
-#endif
-
- if (extra) /* the KwKwK case again */
- *wptr++ = finchar;
-
- /*
- * If not first code in a packet, and
- * if not out of code space, then allocate a new code.
- *
- * Keep the hash table correct so it can be used
- * with uncompressed packets.
- */
- if (oldcode != CLEAR && max_ent < db->maxmaxcode) {
- struct bsd_dict *dictp2;
- u_int32_t fcode;
- int hval, disp;
-
- fcode = BSD_KEY(oldcode,finchar);
- hval = BSD_HASH(oldcode,finchar,db->hshift);
- dictp = &db->dict[hval];
-
- /* look for a free hash table entry */
- if (dictp->codem1 < max_ent) {
- disp = (hval == 0) ? 1 : hval;
- do {
- hval += disp;
- if (hval >= db->hsize)
- hval -= db->hsize;
- dictp = &db->dict[hval];
- } while (dictp->codem1 < max_ent);
- }
-
- /*
- * Invalidate previous hash table entry
- * assigned this code, and then take it over
- */
- dictp2 = &db->dict[max_ent+1];
- if (db->dict[dictp2->cptr].codem1 == max_ent) {
- db->dict[dictp2->cptr].codem1 = BADCODEM1;
- }
- dictp2->cptr = hval;
- dictp->codem1 = max_ent;
- dictp->f.fcode = fcode;
-
- db->max_ent = ++max_ent;
- db->lens[max_ent] = db->lens[oldcode]+1;
-
- /* Expand code size if needed. */
- if (max_ent >= MAXCODE(n_bits) && max_ent < db->maxmaxcode) {
- db->n_bits = ++n_bits;
- tgtbitno = 32-n_bits;
- }
- }
- oldcode = incode;
- }
- dmsg->b_wptr = wptr;
-
- /*
- * Keep the checkpoint right so that incompressible packets
- * clear the dictionary at the right times.
- */
- db->bytes_out += ilen;
- db->in_count += explen;
- if (bsd_check(db) && db->debug) {
- printf("bsd_decomp%d: peer should have cleared dictionary\n",
- db->unit);
- }
-
- ++db->comp_count;
- db->comp_bytes += ilen + BSD_OVHD;
- ++db->uncomp_count;
- db->uncomp_bytes += explen;
-
- *dmpp = mret;
- return DECOMP_OK;
-}
-#endif /* DO_BSD_COMPRESS */
diff --git a/mdk-stage1/ppp/modules/deflate.c b/mdk-stage1/ppp/modules/deflate.c
deleted file mode 100644
index 1b9054412..000000000
--- a/mdk-stage1/ppp/modules/deflate.c
+++ /dev/null
@@ -1,760 +0,0 @@
-/*
- * ppp_deflate.c - interface the zlib procedures for Deflate compression
- * and decompression (as used by gzip) to the PPP code.
- * This version is for use with STREAMS under SunOS 4.x, Solaris 2,
- * SVR4, OSF/1 and AIX 4.x.
- *
- * Copyright (c) 1994 The Australian National University.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies. This software is provided without any
- * warranty, express or implied. The Australian National University
- * makes no representations about the suitability of this software for
- * any purpose.
- *
- * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
- * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
- * THE AUSTRALIAN NATIONAL UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
- * OR MODIFICATIONS.
- *
- * $Id$
- */
-
-#ifdef AIX4
-#include <net/net_globals.h>
-#endif
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/stream.h>
-#include <net/ppp_defs.h>
-#include "ppp_mod.h"
-
-#define PACKETPTR mblk_t *
-#include <net/ppp-comp.h>
-
-#ifdef __osf__
-#include "zlib.h"
-#else
-#include "../common/zlib.h"
-#endif
-
-#if DO_DEFLATE
-
-#define DEFLATE_DEBUG 1
-
-/*
- * State for a Deflate (de)compressor.
- */
-struct deflate_state {
- int seqno;
- int w_size;
- int unit;
- int hdrlen;
- int mru;
- int debug;
- z_stream strm;
- struct compstat stats;
-};
-
-#define DEFLATE_OVHD 2 /* Deflate overhead/packet */
-
-static void *z_alloc __P((void *, u_int items, u_int size));
-static void *z_alloc_init __P((void *, u_int items, u_int size));
-static void z_free __P((void *, void *ptr));
-static void *z_comp_alloc __P((u_char *options, int opt_len));
-static void *z_decomp_alloc __P((u_char *options, int opt_len));
-static void z_comp_free __P((void *state));
-static void z_decomp_free __P((void *state));
-static int z_comp_init __P((void *state, u_char *options, int opt_len,
- int unit, int hdrlen, int debug));
-static int z_decomp_init __P((void *state, u_char *options, int opt_len,
- int unit, int hdrlen, int mru, int debug));
-static int z_compress __P((void *state, mblk_t **mret,
- mblk_t *mp, int slen, int maxolen));
-static void z_incomp __P((void *state, mblk_t *dmsg));
-static int z_decompress __P((void *state, mblk_t *cmp,
- mblk_t **dmpp));
-static void z_comp_reset __P((void *state));
-static void z_decomp_reset __P((void *state));
-static void z_comp_stats __P((void *state, struct compstat *stats));
-
-/*
- * Procedures exported to ppp_comp.c.
- */
-struct compressor ppp_deflate = {
- CI_DEFLATE, /* compress_proto */
- z_comp_alloc, /* comp_alloc */
- z_comp_free, /* comp_free */
- z_comp_init, /* comp_init */
- z_comp_reset, /* comp_reset */
- z_compress, /* compress */
- z_comp_stats, /* comp_stat */
- z_decomp_alloc, /* decomp_alloc */
- z_decomp_free, /* decomp_free */
- z_decomp_init, /* decomp_init */
- z_decomp_reset, /* decomp_reset */
- z_decompress, /* decompress */
- z_incomp, /* incomp */
- z_comp_stats, /* decomp_stat */
-};
-
-struct compressor ppp_deflate_draft = {
- CI_DEFLATE_DRAFT, /* compress_proto */
- z_comp_alloc, /* comp_alloc */
- z_comp_free, /* comp_free */
- z_comp_init, /* comp_init */
- z_comp_reset, /* comp_reset */
- z_compress, /* compress */
- z_comp_stats, /* comp_stat */
- z_decomp_alloc, /* decomp_alloc */
- z_decomp_free, /* decomp_free */
- z_decomp_init, /* decomp_init */
- z_decomp_reset, /* decomp_reset */
- z_decompress, /* decompress */
- z_incomp, /* incomp */
- z_comp_stats, /* decomp_stat */
-};
-
-#define DECOMP_CHUNK 512
-
-/*
- * Space allocation and freeing routines for use by zlib routines.
- */
-struct zchunk {
- u_int size;
- u_int guard;
-};
-
-#define GUARD_MAGIC 0x77a6011a
-
-static void *
-z_alloc_init(notused, items, size)
- void *notused;
- u_int items, size;
-{
- struct zchunk *z;
-
- size = items * size + sizeof(struct zchunk);
-#ifdef __osf__
- z = (struct zchunk *) ALLOC_SLEEP(size);
-#else
- z = (struct zchunk *) ALLOC_NOSLEEP(size);
-#endif
- z->size = size;
- z->guard = GUARD_MAGIC;
- return (void *) (z + 1);
-}
-
-static void *
-z_alloc(notused, items, size)
- void *notused;
- u_int items, size;
-{
- struct zchunk *z;
-
- size = items * size + sizeof(struct zchunk);
- z = (struct zchunk *) ALLOC_NOSLEEP(size);
- z->size = size;
- z->guard = GUARD_MAGIC;
- return (void *) (z + 1);
-}
-
-static void
-z_free(notused, ptr)
- void *notused;
- void *ptr;
-{
- struct zchunk *z = ((struct zchunk *) ptr) - 1;
-
- if (z->guard != GUARD_MAGIC) {
- printf("ppp: z_free of corrupted chunk at %x (%x, %x)\n",
- z, z->size, z->guard);
- return;
- }
- FREE(z, z->size);
-}
-
-/*
- * Allocate space for a compressor.
- */
-static void *
-z_comp_alloc(options, opt_len)
- u_char *options;
- int opt_len;
-{
- struct deflate_state *state;
- int w_size;
-
- if (opt_len != CILEN_DEFLATE
- || (options[0] != CI_DEFLATE && options[0] != CI_DEFLATE_DRAFT)
- || options[1] != CILEN_DEFLATE
- || DEFLATE_METHOD(options[2]) != DEFLATE_METHOD_VAL
- || options[3] != DEFLATE_CHK_SEQUENCE)
- return NULL;
- w_size = DEFLATE_SIZE(options[2]);
- /*
- * N.B. the 9 below should be DEFLATE_MIN_SIZE (8), but using
- * 8 will cause kernel crashes because of a bug in zlib.
- */
- if (w_size < 9 || w_size > DEFLATE_MAX_SIZE)
- return NULL;
-
-
-#ifdef __osf__
- state = (struct deflate_state *) ALLOC_SLEEP(sizeof(*state));
-#else
- state = (struct deflate_state *) ALLOC_NOSLEEP(sizeof(*state));
-#endif
-
- if (state == NULL)
- return NULL;
-
- state->strm.next_in = NULL;
- state->strm.zalloc = (alloc_func) z_alloc_init;
- state->strm.zfree = (free_func) z_free;
- if (deflateInit2(&state->strm, Z_DEFAULT_COMPRESSION, DEFLATE_METHOD_VAL,
- -w_size, 8, Z_DEFAULT_STRATEGY) != Z_OK) {
- FREE(state, sizeof(*state));
- return NULL;
- }
-
- state->strm.zalloc = (alloc_func) z_alloc;
- state->w_size = w_size;
- bzero(&state->stats, sizeof(state->stats));
- return (void *) state;
-}
-
-static void
-z_comp_free(arg)
- void *arg;
-{
- struct deflate_state *state = (struct deflate_state *) arg;
-
- deflateEnd(&state->strm);
- FREE(state, sizeof(*state));
-}
-
-static int
-z_comp_init(arg, options, opt_len, unit, hdrlen, debug)
- void *arg;
- u_char *options;
- int opt_len, unit, hdrlen, debug;
-{
- struct deflate_state *state = (struct deflate_state *) arg;
-
- if (opt_len < CILEN_DEFLATE
- || (options[0] != CI_DEFLATE && options[0] != CI_DEFLATE_DRAFT)
- || options[1] != CILEN_DEFLATE
- || DEFLATE_METHOD(options[2]) != DEFLATE_METHOD_VAL
- || DEFLATE_SIZE(options[2]) != state->w_size
- || options[3] != DEFLATE_CHK_SEQUENCE)
- return 0;
-
- state->seqno = 0;
- state->unit = unit;
- state->hdrlen = hdrlen;
- state->debug = debug;
-
- deflateReset(&state->strm);
-
- return 1;
-}
-
-static void
-z_comp_reset(arg)
- void *arg;
-{
- struct deflate_state *state = (struct deflate_state *) arg;
-
- state->seqno = 0;
- deflateReset(&state->strm);
-}
-
-static int
-z_compress(arg, mret, mp, orig_len, maxolen)
- void *arg;
- mblk_t **mret; /* compressed packet (out) */
- mblk_t *mp; /* uncompressed packet (in) */
- int orig_len, maxolen;
-{
- struct deflate_state *state = (struct deflate_state *) arg;
- u_char *rptr, *wptr;
- int proto, olen, wspace, r, flush;
- mblk_t *m;
-
- /*
- * Check that the protocol is in the range we handle.
- */
- *mret = NULL;
- rptr = mp->b_rptr;
- if (rptr + PPP_HDRLEN > mp->b_wptr) {
- if (!pullupmsg(mp, PPP_HDRLEN))
- return 0;
- rptr = mp->b_rptr;
- }
- proto = PPP_PROTOCOL(rptr);
- if (proto > 0x3fff || proto == 0xfd || proto == 0xfb)
- return orig_len;
-
- /* Allocate one mblk initially. */
- if (maxolen > orig_len)
- maxolen = orig_len;
- if (maxolen <= PPP_HDRLEN + 2) {
- wspace = 0;
- m = NULL;
- } else {
- wspace = maxolen + state->hdrlen;
- if (wspace > 4096)
- wspace = 4096;
- m = allocb(wspace, BPRI_MED);
- }
- if (m != NULL) {
- *mret = m;
- if (state->hdrlen + PPP_HDRLEN + 2 < wspace) {
- m->b_rptr += state->hdrlen;
- m->b_wptr = m->b_rptr;
- wspace -= state->hdrlen;
- }
- wptr = m->b_wptr;
-
- /*
- * Copy over the PPP header and store the 2-byte sequence number.
- */
- wptr[0] = PPP_ADDRESS(rptr);
- wptr[1] = PPP_CONTROL(rptr);
- wptr[2] = PPP_COMP >> 8;
- wptr[3] = PPP_COMP;
- wptr += PPP_HDRLEN;
- wptr[0] = state->seqno >> 8;
- wptr[1] = state->seqno;
- wptr += 2;
- state->strm.next_out = wptr;
- state->strm.avail_out = wspace - (PPP_HDRLEN + 2);
- } else {
- state->strm.next_out = NULL;
- state->strm.avail_out = 1000000;
- }
- ++state->seqno;
-
- rptr += (proto > 0xff)? 2: 3; /* skip 1st proto byte if 0 */
- state->strm.next_in = rptr;
- state->strm.avail_in = mp->b_wptr - rptr;
- mp = mp->b_cont;
- flush = (mp == NULL)? Z_PACKET_FLUSH: Z_NO_FLUSH;
- olen = 0;
- for (;;) {
- r = deflate(&state->strm, flush);
- if (r != Z_OK) {
- printf("z_compress: deflate returned %d (%s)\n",
- r, (state->strm.msg? state->strm.msg: ""));
- break;
- }
- if (flush != Z_NO_FLUSH && state->strm.avail_out != 0)
- break; /* all done */
- if (state->strm.avail_in == 0 && mp != NULL) {
- state->strm.next_in = mp->b_rptr;
- state->strm.avail_in = mp->b_wptr - mp->b_rptr;
- mp = mp->b_cont;
- if (mp == NULL)
- flush = Z_PACKET_FLUSH;
- }
- if (state->strm.avail_out == 0) {
- if (m != NULL) {
- m->b_wptr += wspace;
- olen += wspace;
- wspace = maxolen - olen;
- if (wspace <= 0) {
- wspace = 0;
- m->b_cont = NULL;
- } else {
- if (wspace < 32)
- wspace = 32;
- else if (wspace > 4096)
- wspace = 4096;
- m->b_cont = allocb(wspace, BPRI_MED);
- }
- m = m->b_cont;
- if (m != NULL) {
- state->strm.next_out = m->b_wptr;
- state->strm.avail_out = wspace;
- }
- }
- if (m == NULL) {
- state->strm.next_out = NULL;
- state->strm.avail_out = 1000000;
- }
- }
- }
- if (m != NULL) {
- m->b_wptr += wspace - state->strm.avail_out;
- olen += wspace - state->strm.avail_out;
- }
-
- /*
- * See if we managed to reduce the size of the packet.
- */
- if (olen < orig_len && m != NULL) {
- state->stats.comp_bytes += olen;
- state->stats.comp_packets++;
- } else {
- if (*mret != NULL) {
- freemsg(*mret);
- *mret = NULL;
- }
- state->stats.inc_bytes += orig_len;
- state->stats.inc_packets++;
- olen = orig_len;
- }
- state->stats.unc_bytes += orig_len;
- state->stats.unc_packets++;
-
- return olen;
-}
-
-static void
-z_comp_stats(arg, stats)
- void *arg;
- struct compstat *stats;
-{
- struct deflate_state *state = (struct deflate_state *) arg;
- u_int out;
-
- *stats = state->stats;
- stats->ratio = stats->unc_bytes;
- out = stats->comp_bytes + stats->unc_bytes;
- if (stats->ratio <= 0x7ffffff)
- stats->ratio <<= 8;
- else
- out >>= 8;
- if (out != 0)
- stats->ratio /= out;
-}
-
-/*
- * Allocate space for a decompressor.
- */
-static void *
-z_decomp_alloc(options, opt_len)
- u_char *options;
- int opt_len;
-{
- struct deflate_state *state;
- int w_size;
-
- if (opt_len != CILEN_DEFLATE
- || (options[0] != CI_DEFLATE && options[0] != CI_DEFLATE_DRAFT)
- || options[1] != CILEN_DEFLATE
- || DEFLATE_METHOD(options[2]) != DEFLATE_METHOD_VAL
- || options[3] != DEFLATE_CHK_SEQUENCE)
- return NULL;
- w_size = DEFLATE_SIZE(options[2]);
- /*
- * N.B. the 9 below should be DEFLATE_MIN_SIZE (8), but using
- * 8 will cause kernel crashes because of a bug in zlib.
- */
- if (w_size < 9 || w_size > DEFLATE_MAX_SIZE)
- return NULL;
-
-#ifdef __osf__
- state = (struct deflate_state *) ALLOC_SLEEP(sizeof(*state));
-#else
- state = (struct deflate_state *) ALLOC_NOSLEEP(sizeof(*state));
-#endif
- if (state == NULL)
- return NULL;
-
- state->strm.next_out = NULL;
- state->strm.zalloc = (alloc_func) z_alloc_init;
- state->strm.zfree = (free_func) z_free;
- if (inflateInit2(&state->strm, -w_size) != Z_OK) {
- FREE(state, sizeof(*state));
- return NULL;
- }
-
- state->strm.zalloc = (alloc_func) z_alloc;
- state->w_size = w_size;
- bzero(&state->stats, sizeof(state->stats));
- return (void *) state;
-}
-
-static void
-z_decomp_free(arg)
- void *arg;
-{
- struct deflate_state *state = (struct deflate_state *) arg;
-
- inflateEnd(&state->strm);
- FREE(state, sizeof(*state));
-}
-
-static int
-z_decomp_init(arg, options, opt_len, unit, hdrlen, mru, debug)
- void *arg;
- u_char *options;
- int opt_len, unit, hdrlen, mru, debug;
-{
- struct deflate_state *state = (struct deflate_state *) arg;
-
- if (opt_len < CILEN_DEFLATE
- || (options[0] != CI_DEFLATE && options[0] != CI_DEFLATE_DRAFT)
- || options[1] != CILEN_DEFLATE
- || DEFLATE_METHOD(options[2]) != DEFLATE_METHOD_VAL
- || DEFLATE_SIZE(options[2]) != state->w_size
- || options[3] != DEFLATE_CHK_SEQUENCE)
- return 0;
-
- state->seqno = 0;
- state->unit = unit;
- state->hdrlen = hdrlen;
- state->debug = debug;
- state->mru = mru;
-
- inflateReset(&state->strm);
-
- return 1;
-}
-
-static void
-z_decomp_reset(arg)
- void *arg;
-{
- struct deflate_state *state = (struct deflate_state *) arg;
-
- state->seqno = 0;
- inflateReset(&state->strm);
-}
-
-/*
- * Decompress a Deflate-compressed packet.
- *
- * Because of patent problems, we return DECOMP_ERROR for errors
- * found by inspecting the input data and for system problems, but
- * DECOMP_FATALERROR for any errors which could possibly be said to
- * be being detected "after" decompression. For DECOMP_ERROR,
- * we can issue a CCP reset-request; for DECOMP_FATALERROR, we may be
- * infringing a patent of Motorola's if we do, so we take CCP down
- * instead.
- *
- * Given that the frame has the correct sequence number and a good FCS,
- * errors such as invalid codes in the input most likely indicate a
- * bug, so we return DECOMP_FATALERROR for them in order to turn off
- * compression, even though they are detected by inspecting the input.
- */
-static int
-z_decompress(arg, mi, mop)
- void *arg;
- mblk_t *mi, **mop;
-{
- struct deflate_state *state = (struct deflate_state *) arg;
- mblk_t *mo, *mo_head;
- u_char *rptr, *wptr;
- int rlen, olen, ospace;
- int seq, i, flush, r, decode_proto;
- u_char hdr[PPP_HDRLEN + DEFLATE_OVHD];
-
- *mop = NULL;
- rptr = mi->b_rptr;
- for (i = 0; i < PPP_HDRLEN + DEFLATE_OVHD; ++i) {
- while (rptr >= mi->b_wptr) {
- mi = mi->b_cont;
- if (mi == NULL)
- return DECOMP_ERROR;
- rptr = mi->b_rptr;
- }
- hdr[i] = *rptr++;
- }
-
- /* Check the sequence number. */
- seq = (hdr[PPP_HDRLEN] << 8) + hdr[PPP_HDRLEN+1];
- if (seq != state->seqno) {
-#if !DEFLATE_DEBUG
- if (state->debug)
-#endif
- printf("z_decompress%d: bad seq # %d, expected %d\n",
- state->unit, seq, state->seqno);
- return DECOMP_ERROR;
- }
- ++state->seqno;
-
- /* Allocate an output message block. */
- mo = allocb(DECOMP_CHUNK + state->hdrlen, BPRI_MED);
- if (mo == NULL)
- return DECOMP_ERROR;
- mo_head = mo;
- mo->b_cont = NULL;
- mo->b_rptr += state->hdrlen;
- mo->b_wptr = wptr = mo->b_rptr;
- ospace = DECOMP_CHUNK;
- olen = 0;
-
- /*
- * Fill in the first part of the PPP header. The protocol field
- * comes from the decompressed data.
- */
- wptr[0] = PPP_ADDRESS(hdr);
- wptr[1] = PPP_CONTROL(hdr);
- wptr[2] = 0;
-
- /*
- * Set up to call inflate. We set avail_out to 1 initially so we can
- * look at the first byte of the output and decide whether we have
- * a 1-byte or 2-byte protocol field.
- */
- state->strm.next_in = rptr;
- state->strm.avail_in = mi->b_wptr - rptr;
- mi = mi->b_cont;
- flush = (mi == NULL)? Z_PACKET_FLUSH: Z_NO_FLUSH;
- rlen = state->strm.avail_in + PPP_HDRLEN + DEFLATE_OVHD;
- state->strm.next_out = wptr + 3;
- state->strm.avail_out = 1;
- decode_proto = 1;
-
- /*
- * Call inflate, supplying more input or output as needed.
- */
- for (;;) {
- r = inflate(&state->strm, flush);
- if (r != Z_OK) {
-#if !DEFLATE_DEBUG
- if (state->debug)
-#endif
- printf("z_decompress%d: inflate returned %d (%s)\n",
- state->unit, r, (state->strm.msg? state->strm.msg: ""));
- freemsg(mo_head);
- return DECOMP_FATALERROR;
- }
- if (flush != Z_NO_FLUSH && state->strm.avail_out != 0)
- break; /* all done */
- if (state->strm.avail_in == 0 && mi != NULL) {
- state->strm.next_in = mi->b_rptr;
- state->strm.avail_in = mi->b_wptr - mi->b_rptr;
- rlen += state->strm.avail_in;
- mi = mi->b_cont;
- if (mi == NULL)
- flush = Z_PACKET_FLUSH;
- }
- if (state->strm.avail_out == 0) {
- if (decode_proto) {
- state->strm.avail_out = ospace - PPP_HDRLEN;
- if ((wptr[3] & 1) == 0) {
- /* 2-byte protocol field */
- wptr[2] = wptr[3];
- --state->strm.next_out;
- ++state->strm.avail_out;
- }
- decode_proto = 0;
- } else {
- mo->b_wptr += ospace;
- olen += ospace;
- mo->b_cont = allocb(DECOMP_CHUNK, BPRI_MED);
- mo = mo->b_cont;
- if (mo == NULL) {
- freemsg(mo_head);
- return DECOMP_ERROR;
- }
- state->strm.next_out = mo->b_rptr;
- state->strm.avail_out = ospace = DECOMP_CHUNK;
- }
- }
- }
- if (decode_proto) {
- freemsg(mo_head);
- return DECOMP_ERROR;
- }
- mo->b_wptr += ospace - state->strm.avail_out;
- olen += ospace - state->strm.avail_out;
-
-#if DEFLATE_DEBUG
- if (olen > state->mru + PPP_HDRLEN)
- printf("ppp_deflate%d: exceeded mru (%d > %d)\n",
- state->unit, olen, state->mru + PPP_HDRLEN);
-#endif
-
- state->stats.unc_bytes += olen;
- state->stats.unc_packets++;
- state->stats.comp_bytes += rlen;
- state->stats.comp_packets++;
-
- *mop = mo_head;
- return DECOMP_OK;
-}
-
-/*
- * Incompressible data has arrived - add it to the history.
- */
-static void
-z_incomp(arg, mi)
- void *arg;
- mblk_t *mi;
-{
- struct deflate_state *state = (struct deflate_state *) arg;
- u_char *rptr;
- int rlen, proto, r;
-
- /*
- * Check that the protocol is one we handle.
- */
- rptr = mi->b_rptr;
- if (rptr + PPP_HDRLEN > mi->b_wptr) {
- if (!pullupmsg(mi, PPP_HDRLEN))
- return;
- rptr = mi->b_rptr;
- }
- proto = PPP_PROTOCOL(rptr);
- if (proto > 0x3fff || proto == 0xfd || proto == 0xfb)
- return;
-
- ++state->seqno;
-
- /*
- * Iterate through the message blocks, adding the characters in them
- * to the decompressor's history. For the first block, we start
- * at the either the 1st or 2nd byte of the protocol field,
- * depending on whether the protocol value is compressible.
- */
- rlen = mi->b_wptr - mi->b_rptr;
- state->strm.next_in = rptr + 3;
- state->strm.avail_in = rlen - 3;
- if (proto > 0xff) {
- --state->strm.next_in;
- ++state->strm.avail_in;
- }
- for (;;) {
- r = inflateIncomp(&state->strm);
- if (r != Z_OK) {
- /* gak! */
-#if !DEFLATE_DEBUG
- if (state->debug)
-#endif
- printf("z_incomp%d: inflateIncomp returned %d (%s)\n",
- state->unit, r, (state->strm.msg? state->strm.msg: ""));
- return;
- }
- mi = mi->b_cont;
- if (mi == NULL)
- break;
- state->strm.next_in = mi->b_rptr;
- state->strm.avail_in = mi->b_wptr - mi->b_rptr;
- rlen += state->strm.avail_in;
- }
-
- /*
- * Update stats.
- */
- state->stats.inc_bytes += rlen;
- state->stats.inc_packets++;
- state->stats.unc_bytes += rlen;
- state->stats.unc_packets++;
-}
-
-#endif /* DO_DEFLATE */
diff --git a/mdk-stage1/ppp/modules/if_ppp.c b/mdk-stage1/ppp/modules/if_ppp.c
deleted file mode 100644
index 14e89eb4a..000000000
--- a/mdk-stage1/ppp/modules/if_ppp.c
+++ /dev/null
@@ -1,865 +0,0 @@
-/*
- * if_ppp.c - a network interface connected to a STREAMS module.
- *
- * Copyright (c) 1994 The Australian National University.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies. This software is provided without any
- * warranty, express or implied. The Australian National University
- * makes no representations about the suitability of this software for
- * any purpose.
- *
- * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
- * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
- * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
- * OR MODIFICATIONS.
- *
- * $Id$
- */
-
-/*
- * This file is used under SunOS 4 and Digital UNIX.
- *
- * This file provides the glue between PPP and IP.
- */
-
-#define INET 1
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/errno.h>
-#include <sys/mbuf.h>
-#include <sys/socket.h>
-#include <net/if.h>
-#include <net/netisr.h>
-#include <net/ppp_defs.h>
-#include <net/pppio.h>
-#include <netinet/in.h>
-#include <netinet/in_var.h>
-#ifdef __osf__
-#include <sys/ioctl.h>
-#include <net/if_types.h>
-#else
-#include <sys/sockio.h>
-#endif
-#include "ppp_mod.h"
-
-#include <sys/stream.h>
-
-#ifdef SNIT_SUPPORT
-#include <sys/time.h>
-#include <net/nit_if.h>
-#include <netinet/if_ether.h>
-#endif
-
-#ifdef __osf__
-#define SIOCSIFMTU SIOCSIPMTU
-#define SIOCGIFMTU SIOCRIPMTU
-#define IFA_ADDR(ifa) (*(ifa)->ifa_addr)
-#else
-#define IFA_ADDR(ifa) ((ifa)->ifa_addr)
-#endif
-
-#define ifr_mtu ifr_metric
-
-static int if_ppp_open __P((queue_t *, int, int, int));
-static int if_ppp_close __P((queue_t *, int));
-static int if_ppp_wput __P((queue_t *, mblk_t *));
-static int if_ppp_rput __P((queue_t *, mblk_t *));
-
-#define PPP_IF_ID 0x8021
-static struct module_info minfo = {
- PPP_IF_ID, "if_ppp", 0, INFPSZ, 4096, 128
-};
-
-static struct qinit rinit = {
- if_ppp_rput, NULL, if_ppp_open, if_ppp_close, NULL, &minfo, NULL
-};
-
-static struct qinit winit = {
- if_ppp_wput, NULL, NULL, NULL, NULL, &minfo, NULL
-};
-
-struct streamtab if_pppinfo = {
- &rinit, &winit, NULL, NULL
-};
-
-typedef struct if_ppp_state {
- int unit;
- queue_t *q;
- int flags;
-} if_ppp_t;
-
-/* Values for flags */
-#define DBGLOG 1
-
-static int if_ppp_count; /* Number of currently-active streams */
-
-static int ppp_nalloc; /* Number of elements of ifs and states */
-static struct ifnet **ifs; /* Array of pointers to interface structs */
-static if_ppp_t **states; /* Array of pointers to state structs */
-
-static int if_ppp_output __P((struct ifnet *, struct mbuf *,
- struct sockaddr *));
-static int if_ppp_ioctl __P((struct ifnet *, u_int, caddr_t));
-static struct mbuf *make_mbufs __P((mblk_t *, int));
-static mblk_t *make_message __P((struct mbuf *, int));
-
-#ifdef SNIT_SUPPORT
-/* Fake ether header for SNIT */
-static struct ether_header snit_ehdr = {{0}, {0}, ETHERTYPE_IP};
-#endif
-
-#ifndef __osf__
-static void ppp_if_detach __P((struct ifnet *));
-
-/*
- * Detach all the interfaces before unloading.
- * Not sure this works.
- */
-int
-if_ppp_unload()
-{
- int i;
-
- if (if_ppp_count > 0)
- return EBUSY;
- for (i = 0; i < ppp_nalloc; ++i)
- if (ifs[i] != 0)
- ppp_if_detach(ifs[i]);
- if (ifs) {
- FREE(ifs, ppp_nalloc * sizeof (struct ifnet *));
- FREE(states, ppp_nalloc * sizeof (struct if_ppp_t *));
- }
- ppp_nalloc = 0;
- return 0;
-}
-#endif /* __osf__ */
-
-/*
- * STREAMS module entry points.
- */
-static int
-if_ppp_open(q, dev, flag, sflag)
- queue_t *q;
- int dev;
- int flag, sflag;
-{
- if_ppp_t *sp;
-
- if (q->q_ptr == 0) {
- sp = (if_ppp_t *) ALLOC_SLEEP(sizeof (if_ppp_t));
- if (sp == 0)
- return OPENFAIL;
- bzero(sp, sizeof (if_ppp_t));
- q->q_ptr = (caddr_t) sp;
- WR(q)->q_ptr = (caddr_t) sp;
- sp->unit = -1; /* no interface unit attached at present */
- sp->q = WR(q);
- sp->flags = 0;
- ++if_ppp_count;
- }
- return 0;
-}
-
-static int
-if_ppp_close(q, flag)
- queue_t *q;
- int flag;
-{
- if_ppp_t *sp;
- struct ifnet *ifp;
-
- sp = (if_ppp_t *) q->q_ptr;
- if (sp != 0) {
- if (sp->flags & DBGLOG)
- printf("if_ppp closed, q=%x sp=%x\n", q, sp);
- if (sp->unit >= 0) {
- if (sp->unit < ppp_nalloc) {
- states[sp->unit] = 0;
- ifp = ifs[sp->unit];
- if (ifp != 0)
- ifp->if_flags &= ~(IFF_UP | IFF_RUNNING);
-#ifdef DEBUG
- } else {
- printf("if_ppp: unit %d nonexistent!\n", sp->unit);
-#endif
- }
- }
- FREE(sp, sizeof (if_ppp_t));
- --if_ppp_count;
- }
- return 0;
-}
-
-static int
-if_ppp_wput(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- if_ppp_t *sp;
- struct iocblk *iop;
- int error, unit;
- struct ifnet *ifp;
-
- sp = (if_ppp_t *) q->q_ptr;
- switch (mp->b_datap->db_type) {
- case M_DATA:
- /*
- * Now why would we be getting data coming in here??
- */
- if (sp->flags & DBGLOG)
- printf("if_ppp: got M_DATA len=%d\n", msgdsize(mp));
- freemsg(mp);
- break;
-
- case M_IOCTL:
- iop = (struct iocblk *) mp->b_rptr;
- error = EINVAL;
-
- if (sp->flags & DBGLOG)
- printf("if_ppp: got ioctl cmd=%x count=%d\n",
- iop->ioc_cmd, iop->ioc_count);
-
- switch (iop->ioc_cmd) {
- case PPPIO_NEWPPA: /* well almost */
- if (iop->ioc_count != sizeof(int) || sp->unit >= 0)
- break;
- if ((error = NOTSUSER()) != 0)
- break;
- unit = *(int *)mp->b_cont->b_rptr;
-
- /* Check that this unit isn't already in use */
- if (unit < ppp_nalloc && states[unit] != 0) {
- error = EADDRINUSE;
- break;
- }
-
- /* Extend ifs and states arrays if necessary. */
- error = ENOSR;
- if (unit >= ppp_nalloc) {
- int newn;
- struct ifnet **newifs;
- if_ppp_t **newstates;
-
- newn = unit + 4;
- if (sp->flags & DBGLOG)
- printf("if_ppp: extending ifs to %d\n", newn);
- newifs = (struct ifnet **)
- ALLOC_NOSLEEP(newn * sizeof (struct ifnet *));
- if (newifs == 0)
- break;
- bzero(newifs, newn * sizeof (struct ifnet *));
- newstates = (if_ppp_t **)
- ALLOC_NOSLEEP(newn * sizeof (struct if_ppp_t *));
- if (newstates == 0) {
- FREE(newifs, newn * sizeof (struct ifnet *));
- break;
- }
- bzero(newstates, newn * sizeof (struct if_ppp_t *));
- bcopy(ifs, newifs, ppp_nalloc * sizeof(struct ifnet *));
- bcopy(states, newstates, ppp_nalloc * sizeof(if_ppp_t *));
- if (ifs) {
- FREE(ifs, ppp_nalloc * sizeof(struct ifnet *));
- FREE(states, ppp_nalloc * sizeof(if_ppp_t *));
- }
- ifs = newifs;
- states = newstates;
- ppp_nalloc = newn;
- }
-
- /* Allocate a new ifnet struct if necessary. */
- ifp = ifs[unit];
- if (ifp == 0) {
- ifp = (struct ifnet *) ALLOC_NOSLEEP(sizeof (struct ifnet));
- if (ifp == 0)
- break;
- bzero(ifp, sizeof (struct ifnet));
- ifs[unit] = ifp;
- ifp->if_name = "ppp";
- ifp->if_unit = unit;
- ifp->if_mtu = PPP_MTU;
- ifp->if_flags = IFF_POINTOPOINT | IFF_RUNNING;
-#ifndef __osf__
-#ifdef IFF_MULTICAST
- ifp->if_flags |= IFF_MULTICAST;
-#endif
-#endif /* __osf__ */
- ifp->if_output = if_ppp_output;
-#ifdef __osf__
- ifp->if_version = "Point-to-Point Protocol, version 2.3.11";
- ifp->if_mediamtu = PPP_MTU;
- ifp->if_type = IFT_PPP;
- ifp->if_hdrlen = PPP_HDRLEN;
- ifp->if_addrlen = 0;
- ifp->if_flags |= IFF_NOARP | IFF_SIMPLEX | IFF_NOTRAILERS;
-#ifdef IFF_VAR_MTU
- ifp->if_flags |= IFF_VAR_MTU;
-#endif
-#ifdef NETMASTERCPU
- ifp->if_affinity = NETMASTERCPU;
-#endif
-#endif
- ifp->if_ioctl = if_ppp_ioctl;
- ifp->if_snd.ifq_maxlen = IFQ_MAXLEN;
- if_attach(ifp);
- if (sp->flags & DBGLOG)
- printf("if_ppp: created unit %d\n", unit);
- } else {
- ifp->if_mtu = PPP_MTU;
- ifp->if_flags |= IFF_RUNNING;
- }
-
- states[unit] = sp;
- sp->unit = unit;
-
- error = 0;
- iop->ioc_count = 0;
- if (sp->flags & DBGLOG)
- printf("if_ppp: attached unit %d, sp=%x q=%x\n", unit,
- sp, sp->q);
- break;
-
- case PPPIO_DEBUG:
- error = -1;
- if (iop->ioc_count == sizeof(int)) {
- if (*(int *)mp->b_cont->b_rptr == PPPDBG_LOG + PPPDBG_IF) {
- printf("if_ppp: debug log enabled, q=%x sp=%x\n", q, sp);
- sp->flags |= DBGLOG;
- error = 0;
- iop->ioc_count = 0;
- }
- }
- break;
-
- default:
- error = -1;
- break;
- }
-
- if (sp->flags & DBGLOG)
- printf("if_ppp: ioctl result %d\n", error);
- if (error < 0)
- putnext(q, mp);
- else if (error == 0) {
- mp->b_datap->db_type = M_IOCACK;
- qreply(q, mp);
- } else {
- mp->b_datap->db_type = M_IOCNAK;
- iop->ioc_count = 0;
- iop->ioc_error = error;
- qreply(q, mp);
- }
- break;
-
- default:
- putnext(q, mp);
- }
- return 0;
-}
-
-static int
-if_ppp_rput(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- if_ppp_t *sp;
- int proto, s;
- struct mbuf *mb;
- struct ifqueue *inq;
- struct ifnet *ifp;
- int len;
-
- sp = (if_ppp_t *) q->q_ptr;
- switch (mp->b_datap->db_type) {
- case M_DATA:
- /*
- * Convert the message into an mbuf chain
- * and inject it into the network code.
- */
- if (sp->flags & DBGLOG)
- printf("if_ppp: rput pkt len %d data %x %x %x %x %x %x %x %x\n",
- msgdsize(mp), mp->b_rptr[0], mp->b_rptr[1], mp->b_rptr[2],
- mp->b_rptr[3], mp->b_rptr[4], mp->b_rptr[5], mp->b_rptr[6],
- mp->b_rptr[7]);
-
- if (sp->unit < 0) {
- freemsg(mp);
- break;
- }
- if (sp->unit >= ppp_nalloc || (ifp = ifs[sp->unit]) == 0) {
-#ifdef DEBUG
- printf("if_ppp: no unit %d!\n", sp->unit);
-#endif
- freemsg(mp);
- break;
- }
-
- if ((ifp->if_flags & IFF_UP) == 0) {
- freemsg(mp);
- break;
- }
- ++ifp->if_ipackets;
-
- proto = PPP_PROTOCOL(mp->b_rptr);
- adjmsg(mp, PPP_HDRLEN);
- len = msgdsize(mp);
- mb = make_mbufs(mp, sizeof(struct ifnet *));
- freemsg(mp);
- if (mb == NULL) {
- if (sp->flags & DBGLOG)
- printf("if_ppp%d: make_mbufs failed\n", ifp->if_unit);
- ++ifp->if_ierrors;
- break;
- }
-
-#ifdef SNIT_SUPPORT
- if (proto == PPP_IP && (ifp->if_flags & IFF_PROMISC)) {
- struct nit_if nif;
-
- nif.nif_header = (caddr_t) &snit_ehdr;
- nif.nif_hdrlen = sizeof(snit_ehdr);
- nif.nif_bodylen = len;
- nif.nif_promisc = 0;
- snit_intr(ifp, mb, &nif);
- }
-#endif
-
-/*
- * For Digital UNIX, there's space set aside in the header mbuf
- * for the interface info.
- *
- * For Sun it's smuggled around via a pointer at the front of the mbuf.
- */
-#ifdef __osf__
- mb->m_pkthdr.rcvif = ifp;
- mb->m_pkthdr.len = len;
-#else
- mb->m_off -= sizeof(struct ifnet *);
- mb->m_len += sizeof(struct ifnet *);
- *mtod(mb, struct ifnet **) = ifp;
-#endif
-
- inq = 0;
- switch (proto) {
- case PPP_IP:
- inq = &ipintrq;
- schednetisr(NETISR_IP);
- }
-
- if (inq != 0) {
- s = splhigh();
- if (IF_QFULL(inq)) {
- IF_DROP(inq);
- ++ifp->if_ierrors;
- if (sp->flags & DBGLOG)
- printf("if_ppp: inq full, proto=%x\n", proto);
- m_freem(mb);
- } else {
- IF_ENQUEUE(inq, mb);
- }
- splx(s);
- } else {
- if (sp->flags & DBGLOG)
- printf("if_ppp%d: proto=%x?\n", ifp->if_unit, proto);
- ++ifp->if_ierrors;
- m_freem(mb);
- }
- break;
-
- default:
- putnext(q, mp);
- }
- return 0;
-}
-
-/*
- * Network code wants to output a packet.
- * Turn it into a STREAMS message and send it down.
- */
-static int
-if_ppp_output(ifp, m0, dst)
- struct ifnet *ifp;
- struct mbuf *m0;
- struct sockaddr *dst;
-{
- mblk_t *mp;
- int proto, s;
- if_ppp_t *sp;
- u_char *p;
-
- if ((ifp->if_flags & IFF_UP) == 0) {
- m_freem(m0);
- return ENETDOWN;
- }
-
- if ((unsigned)ifp->if_unit >= ppp_nalloc) {
-#ifdef DEBUG
- printf("if_ppp_output: unit %d?\n", ifp->if_unit);
-#endif
- m_freem(m0);
- return EINVAL;
- }
- sp = states[ifp->if_unit];
- if (sp == 0) {
-#ifdef DEBUG
- printf("if_ppp_output: no queue?\n");
-#endif
- m_freem(m0);
- return ENETDOWN;
- }
-
- if (sp->flags & DBGLOG) {
- p = mtod(m0, u_char *);
- printf("if_ppp_output%d: af=%d data=%x %x %x %x %x %x %x %x q=%x\n",
- ifp->if_unit, dst->sa_family, p[0], p[1], p[2], p[3], p[4],
- p[5], p[6], p[7], sp->q);
- }
-
- switch (dst->sa_family) {
- case AF_INET:
- proto = PPP_IP;
-#ifdef SNIT_SUPPORT
- if (ifp->if_flags & IFF_PROMISC) {
- struct nit_if nif;
- struct mbuf *m;
- int len;
-
- for (len = 0, m = m0; m != NULL; m = m->m_next)
- len += m->m_len;
- nif.nif_header = (caddr_t) &snit_ehdr;
- nif.nif_hdrlen = sizeof(snit_ehdr);
- nif.nif_bodylen = len;
- nif.nif_promisc = 0;
- snit_intr(ifp, m0, &nif);
- }
-#endif
- break;
-
- default:
- m_freem(m0);
- return EAFNOSUPPORT;
- }
-
- ++ifp->if_opackets;
- mp = make_message(m0, PPP_HDRLEN);
- m_freem(m0);
- if (mp == 0) {
- ++ifp->if_oerrors;
- return ENOBUFS;
- }
- mp->b_rptr -= PPP_HDRLEN;
- mp->b_rptr[0] = PPP_ALLSTATIONS;
- mp->b_rptr[1] = PPP_UI;
- mp->b_rptr[2] = proto >> 8;
- mp->b_rptr[3] = proto;
-
- s = splstr();
- if (sp->flags & DBGLOG)
- printf("if_ppp: putnext(%x, %x), r=%x w=%x p=%x\n",
- sp->q, mp, mp->b_rptr, mp->b_wptr, proto);
- putnext(sp->q, mp);
- splx(s);
-
- return 0;
-}
-
-/*
- * Socket ioctl routine for ppp interfaces.
- */
-static int
-if_ppp_ioctl(ifp, cmd, data)
- struct ifnet *ifp;
- u_int cmd;
- caddr_t data;
-{
- int s, error;
- struct ifreq *ifr = (struct ifreq *) data;
- struct ifaddr *ifa = (struct ifaddr *) data;
- u_short mtu;
-
- error = 0;
- s = splimp();
- switch (cmd) {
- case SIOCSIFFLAGS:
- if ((ifp->if_flags & IFF_RUNNING) == 0)
- ifp->if_flags &= ~IFF_UP;
- break;
-
- case SIOCSIFADDR:
- if (IFA_ADDR(ifa).sa_family != AF_INET)
- error = EAFNOSUPPORT;
- break;
-
- case SIOCSIFDSTADDR:
- if (IFA_ADDR(ifa).sa_family != AF_INET)
- error = EAFNOSUPPORT;
- break;
-
- case SIOCSIFMTU:
- if ((error = NOTSUSER()) != 0)
- break;
-#ifdef __osf__
- /* this hack is necessary because ifioctl checks ifr_data
- * in 4.0 and 5.0, but ifr_data and ifr_metric overlay each
- * other in the definition of struct ifreq so pppd can't set both.
- */
- bcopy(ifr->ifr_data, &mtu, sizeof (u_short));
- ifr->ifr_mtu = mtu;
-#endif
-
- if (ifr->ifr_mtu < PPP_MINMTU || ifr->ifr_mtu > PPP_MAXMTU) {
- error = EINVAL;
- break;
- }
- ifp->if_mtu = ifr->ifr_mtu;
- break;
-
- case SIOCGIFMTU:
- ifr->ifr_mtu = ifp->if_mtu;
- break;
-
- case SIOCADDMULTI:
- case SIOCDELMULTI:
- switch(ifr->ifr_addr.sa_family) {
- case AF_INET:
- break;
- default:
- error = EAFNOSUPPORT;
- break;
- }
- break;
-
- default:
- error = EINVAL;
- }
- splx(s);
- return (error);
-}
-
-/*
- * Turn a STREAMS message into an mbuf chain.
- */
-static struct mbuf *
-make_mbufs(mp, off)
- mblk_t *mp;
- int off;
-{
- struct mbuf *head, **prevp, *m;
- int len, space, n;
- unsigned char *cp, *dp;
-
- len = msgdsize(mp);
- if (len == 0)
- return 0;
- prevp = &head;
- space = 0;
- cp = mp->b_rptr;
-#ifdef __osf__
- MGETHDR(m, M_DONTWAIT, MT_DATA);
- m->m_len = 0;
- space = MHLEN;
- *prevp = m;
- prevp = &m->m_next;
- dp = mtod(m, unsigned char *);
- len -= space;
- off = 0;
-#endif
- for (;;) {
- while (cp >= mp->b_wptr) {
- mp = mp->b_cont;
- if (mp == 0) {
- *prevp = 0;
- return head;
- }
- cp = mp->b_rptr;
- }
- n = mp->b_wptr - cp;
- if (space == 0) {
- MGET(m, M_DONTWAIT, MT_DATA);
- *prevp = m;
- if (m == 0) {
- if (head != 0)
- m_freem(head);
- return 0;
- }
- if (len + off > 2 * MLEN) {
-#ifdef __osf__
- MCLGET(m, M_DONTWAIT);
-#else
- MCLGET(m);
-#endif
- }
-#ifdef __osf__
- space = ((m->m_flags & M_EXT) ? MCLBYTES : MLEN);
-#else
- space = (m->m_off > MMAXOFF? MCLBYTES: MLEN) - off;
- m->m_off += off;
-#endif
- m->m_len = 0;
- len -= space;
- dp = mtod(m, unsigned char *);
- off = 0;
- prevp = &m->m_next;
- }
- if (n > space)
- n = space;
- bcopy(cp, dp, n);
- cp += n;
- dp += n;
- space -= n;
- m->m_len += n;
- }
-}
-
-/*
- * Turn an mbuf chain into a STREAMS message.
- */
-#define ALLOCB_MAX 4096
-
-static mblk_t *
-make_message(m, off)
- struct mbuf *m;
- int off;
-{
- mblk_t *head, **prevp, *mp;
- int len, space, n, nb;
- unsigned char *cp, *dp;
- struct mbuf *nm;
-
- len = 0;
- for (nm = m; nm != 0; nm = nm->m_next)
- len += nm->m_len;
- prevp = &head;
- space = 0;
- cp = mtod(m, unsigned char *);
- nb = m->m_len;
- for (;;) {
- while (nb <= 0) {
- m = m->m_next;
- if (m == 0) {
- *prevp = 0;
- return head;
- }
- cp = mtod(m, unsigned char *);
- nb = m->m_len;
- }
- if (space == 0) {
- space = len + off;
- if (space > ALLOCB_MAX)
- space = ALLOCB_MAX;
- mp = allocb(space, BPRI_LO);
- *prevp = mp;
- if (mp == 0) {
- if (head != 0)
- freemsg(head);
- return 0;
- }
- dp = mp->b_rptr += off;
- space -= off;
- len -= space;
- off = 0;
- prevp = &mp->b_cont;
- }
- n = nb < space? nb: space;
- bcopy(cp, dp, n);
- cp += n;
- dp += n;
- nb -= n;
- space -= n;
- mp->b_wptr = dp;
- }
-}
-
-/*
- * Digital UNIX doesn't allow for removing ifnet structures
- * from the list. But then we're not using this as a loadable
- * module anyway, so that's OK.
- *
- * Under SunOS, this should allow the module to be unloaded.
- * Unfortunately, it doesn't seem to detach all the references,
- * so your system may well crash after you unload this module :-(
- */
-#ifndef __osf__
-
-/*
- * Remove an interface from the system.
- * This routine contains magic.
- */
-#include <net/route.h>
-#include <netinet/in_pcb.h>
-#include <netinet/ip_var.h>
-#include <netinet/tcp.h>
-#include <netinet/tcp_timer.h>
-#include <netinet/tcp_var.h>
-#include <netinet/udp.h>
-#include <netinet/udp_var.h>
-
-static void
-ppp_if_detach(ifp)
- struct ifnet *ifp;
-{
- int s;
- struct inpcb *pcb;
- struct ifaddr *ifa;
- struct in_ifaddr **inap;
- struct ifnet **ifpp;
-
- s = splhigh();
-
- /*
- * Clear the interface from any routes currently cached in
- * TCP or UDP protocol control blocks.
- */
- for (pcb = tcb.inp_next; pcb != &tcb; pcb = pcb->inp_next)
- if (pcb->inp_route.ro_rt && pcb->inp_route.ro_rt->rt_ifp == ifp)
- in_losing(pcb);
- for (pcb = udb.inp_next; pcb != &udb; pcb = pcb->inp_next)
- if (pcb->inp_route.ro_rt && pcb->inp_route.ro_rt->rt_ifp == ifp)
- in_losing(pcb);
-
- /*
- * Delete routes through all addresses of the interface.
- */
- for (ifa = ifp->if_addrlist; ifa != 0; ifa = ifa->ifa_next) {
- rtinit(ifa, ifa, SIOCDELRT, RTF_HOST);
- rtinit(ifa, ifa, SIOCDELRT, 0);
- }
-
- /*
- * Unlink the interface's address(es) from the in_ifaddr list.
- */
- for (inap = &in_ifaddr; *inap != 0; ) {
- if ((*inap)->ia_ifa.ifa_ifp == ifp)
- *inap = (*inap)->ia_next;
- else
- inap = &(*inap)->ia_next;
- }
-
- /*
- * Delete the interface from the ifnet list.
- */
- for (ifpp = &ifnet; (*ifpp) != 0; ) {
- if (*ifpp == ifp)
- break;
- ifpp = &(*ifpp)->if_next;
- }
- if (*ifpp == 0)
- printf("couldn't find interface ppp%d in ifnet list\n", ifp->if_unit);
- else
- *ifpp = ifp->if_next;
-
- splx(s);
-}
-
-#endif /* __osf__ */
diff --git a/mdk-stage1/ppp/modules/ppp.c b/mdk-stage1/ppp/modules/ppp.c
deleted file mode 100644
index 44bf08dff..000000000
--- a/mdk-stage1/ppp/modules/ppp.c
+++ /dev/null
@@ -1,2486 +0,0 @@
-/*
- * ppp.c - STREAMS multiplexing pseudo-device driver for PPP.
- *
- * Copyright (c) 1994 The Australian National University.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies. This software is provided without any
- * warranty, express or implied. The Australian National University
- * makes no representations about the suitability of this software for
- * any purpose.
- *
- * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
- * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
- * THE AUSTRALIAN NATIONAL UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
- * OR MODIFICATIONS.
- *
- * $Id$
- */
-
-/*
- * This file is used under Solaris 2, SVR4, SunOS 4, and Digital UNIX.
- */
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/stat.h>
-#include <sys/stream.h>
-#include <sys/stropts.h>
-#include <sys/errno.h>
-#ifdef __osf__
-#include <sys/ioctl.h>
-#include <sys/cmn_err.h>
-#define queclass(mp) ((mp)->b_band & QPCTL)
-#else
-#include <sys/ioccom.h>
-#endif
-#include <sys/time.h>
-#ifdef SVR4
-#include <sys/cmn_err.h>
-#include <sys/conf.h>
-#include <sys/dlpi.h>
-#include <sys/ddi.h>
-#ifdef SOL2
-#include <sys/ksynch.h>
-#include <sys/kstat.h>
-#include <sys/sunddi.h>
-#include <sys/ethernet.h>
-#else
-#include <sys/socket.h>
-#include <sys/sockio.h>
-#include <net/if.h>
-#include <netinet/in.h>
-#endif /* SOL2 */
-#else /* not SVR4 */
-#include <sys/user.h>
-#endif /* SVR4 */
-#include <net/ppp_defs.h>
-#include <net/pppio.h>
-#include "ppp_mod.h"
-
-/*
- * Modifications marked with #ifdef PRIOQ are for priority queueing of
- * interactive traffic, and are due to Marko Zec <zec@japa.tel.fer.hr>.
- */
-#ifdef PRIOQ
-#endif /* PRIOQ */
-
-#include <netinet/in.h> /* leave this outside of PRIOQ for htons */
-
-#ifdef __STDC__
-#define __P(x) x
-#else
-#define __P(x) ()
-#endif
-
-/*
- * The IP module may use this SAP value for IP packets.
- */
-#ifndef ETHERTYPE_IP
-#define ETHERTYPE_IP 0x800
-#endif
-
-#if !defined(ETHERTYPE_IPV6)
-#define ETHERTYPE_IPV6 0x86dd
-#endif /* !defined(ETHERTYPE_IPV6) */
-
-#if !defined(ETHERTYPE_ALLSAP) && defined(SOL2)
-#define ETHERTYPE_ALLSAP 0
-#endif /* !defined(ETHERTYPE_ALLSAP) && defined(SOL2) */
-
-#if !defined(PPP_ALLSAP) && defined(SOL2)
-#define PPP_ALLSAP PPP_ALLSTATIONS
-#endif /* !defined(PPP_ALLSAP) && defined(SOL2) */
-
-extern time_t time;
-
-#ifdef SOL2
-/*
- * We use this reader-writer lock to ensure that the lower streams
- * stay connected to the upper streams while the lower-side put and
- * service procedures are running. Essentially it is an existence
- * lock for the upper stream associated with each lower stream.
- */
-krwlock_t ppp_lower_lock;
-#define LOCK_LOWER_W rw_enter(&ppp_lower_lock, RW_WRITER)
-#define LOCK_LOWER_R rw_enter(&ppp_lower_lock, RW_READER)
-#define TRYLOCK_LOWER_R rw_tryenter(&ppp_lower_lock, RW_READER)
-#define UNLOCK_LOWER rw_exit(&ppp_lower_lock)
-
-#define MT_ENTER(x) mutex_enter(x)
-#define MT_EXIT(x) mutex_exit(x)
-
-/*
- * Notes on multithreaded implementation for Solaris 2:
- *
- * We use an inner perimeter around each queue pair and an outer
- * perimeter around the whole driver. The inner perimeter is
- * entered exclusively for all entry points (open, close, put,
- * service). The outer perimeter is entered exclusively for open
- * and close and shared for put and service. This is all done for
- * us by the streams framework.
- *
- * I used to think that the perimeters were entered for the lower
- * streams' put and service routines as well as for the upper streams'.
- * Because of problems experienced by people, and after reading the
- * documentation more closely, I now don't think that is true. So we
- * now use ppp_lower_lock to give us an existence guarantee on the
- * upper stream controlling each lower stream.
- *
- * Shared entry to the outer perimeter protects the existence of all
- * the upper streams and their upperstr_t structures, and guarantees
- * that the following fields of any upperstr_t won't change:
- * nextmn, next, nextppa. It guarantees that the lowerq field of an
- * upperstr_t won't go from non-zero to zero, that the global `ppas'
- * won't change and that the no lower stream will get unlinked.
- *
- * Shared (reader) access to ppa_lower_lock guarantees that no lower
- * stream will be unlinked and that the lowerq field of all upperstr_t
- * structures won't change.
- */
-
-#else /* SOL2 */
-#define LOCK_LOWER_W 0
-#define LOCK_LOWER_R 0
-#define TRYLOCK_LOWER_R 1
-#define UNLOCK_LOWER 0
-#define MT_ENTER(x) 0
-#define MT_EXIT(x) 0
-
-#endif /* SOL2 */
-
-/*
- * Private information; one per upper stream.
- */
-typedef struct upperstr {
- minor_t mn; /* minor device number */
- struct upperstr *nextmn; /* next minor device */
- queue_t *q; /* read q associated with this upper stream */
- int flags; /* flag bits, see below */
- int state; /* current DLPI state */
- int sap; /* service access point */
- int req_sap; /* which SAP the DLPI client requested */
- struct upperstr *ppa; /* control stream for our ppa */
- struct upperstr *next; /* next stream for this ppa */
- uint ioc_id; /* last ioctl ID for this stream */
- enum NPmode npmode; /* what to do with packets on this SAP */
- unsigned char rblocked; /* flow control has blocked upper read strm */
- /* N.B. rblocked is only changed by control stream's put/srv procs */
- /*
- * There is exactly one control stream for each PPA.
- * The following fields are only used for control streams.
- */
- int ppa_id;
- queue_t *lowerq; /* write queue attached below this PPA */
- struct upperstr *nextppa; /* next control stream */
- int mru;
- int mtu;
- struct pppstat stats; /* statistics */
- time_t last_sent; /* time last NP packet sent */
- time_t last_recv; /* time last NP packet rcvd */
-#ifdef SOL2
- kmutex_t stats_lock; /* lock for stats updates */
- kstat_t *kstats; /* stats for netstat */
-#endif /* SOL2 */
-#ifdef LACHTCP
- int ifflags;
- char ifname[IFNAMSIZ];
- struct ifstats ifstats;
-#endif /* LACHTCP */
-} upperstr_t;
-
-/* Values for flags */
-#define US_PRIV 1 /* stream was opened by superuser */
-#define US_CONTROL 2 /* stream is a control stream */
-#define US_BLOCKED 4 /* flow ctrl has blocked lower write stream */
-#define US_LASTMOD 8 /* no PPP modules below us */
-#define US_DBGLOG 0x10 /* log various occurrences */
-#define US_RBLOCKED 0x20 /* flow ctrl has blocked upper read stream */
-
-#if defined(SOL2)
-#if DL_CURRENT_VERSION >= 2
-#define US_PROMISC 0x40 /* stream is promiscuous */
-#endif /* DL_CURRENT_VERSION >= 2 */
-#define US_RAWDATA 0x80 /* raw M_DATA, no DLPI header */
-#endif /* defined(SOL2) */
-
-#ifdef PRIOQ
-static u_char max_band=0;
-static u_char def_band=0;
-
-#define IPPORT_DEFAULT 65535
-
-/*
- * Port priority table
- * Highest priority ports are listed first, lowest are listed last.
- * ICMP & packets using unlisted ports will be treated as "default".
- * If IPPORT_DEFAULT is not listed here, "default" packets will be
- * assigned lowest priority.
- * Each line should be terminated with "0".
- * Line containing only "0" marks the end of the list.
- */
-
-static u_short prioq_table[]= {
- 113, 53, 0,
- 22, 23, 513, 517, 518, 0,
- 514, 21, 79, 111, 0,
- 25, 109, 110, 0,
- IPPORT_DEFAULT, 0,
- 20, 70, 80, 8001, 8008, 8080, 0, /* 8001,8008,8080 - common proxy ports */
-0 };
-
-#endif /* PRIOQ */
-
-
-static upperstr_t *minor_devs = NULL;
-static upperstr_t *ppas = NULL;
-
-#ifdef SVR4
-static int pppopen __P((queue_t *, dev_t *, int, int, cred_t *));
-static int pppclose __P((queue_t *, int, cred_t *));
-#else
-static int pppopen __P((queue_t *, int, int, int));
-static int pppclose __P((queue_t *, int));
-#endif /* SVR4 */
-static int pppurput __P((queue_t *, mblk_t *));
-static int pppuwput __P((queue_t *, mblk_t *));
-static int pppursrv __P((queue_t *));
-static int pppuwsrv __P((queue_t *));
-static int ppplrput __P((queue_t *, mblk_t *));
-static int ppplwput __P((queue_t *, mblk_t *));
-static int ppplrsrv __P((queue_t *));
-static int ppplwsrv __P((queue_t *));
-#ifndef NO_DLPI
-static void dlpi_request __P((queue_t *, mblk_t *, upperstr_t *));
-static void dlpi_error __P((queue_t *, upperstr_t *, int, int, int));
-static void dlpi_ok __P((queue_t *, int));
-#endif
-static int send_data __P((mblk_t *, upperstr_t *));
-static void new_ppa __P((queue_t *, mblk_t *));
-static void attach_ppa __P((queue_t *, mblk_t *));
-static void detach_ppa __P((queue_t *, mblk_t *));
-static void detach_lower __P((queue_t *, mblk_t *));
-static void debug_dump __P((queue_t *, mblk_t *));
-static upperstr_t *find_dest __P((upperstr_t *, int));
-#if defined(SOL2)
-static upperstr_t *find_promisc __P((upperstr_t *, int));
-static mblk_t *prepend_ether __P((upperstr_t *, mblk_t *, int));
-static mblk_t *prepend_udind __P((upperstr_t *, mblk_t *, int));
-static void promisc_sendup __P((upperstr_t *, mblk_t *, int, int));
-#endif /* defined(SOL2) */
-static int putctl2 __P((queue_t *, int, int, int));
-static int putctl4 __P((queue_t *, int, int, int));
-static int pass_packet __P((upperstr_t *ppa, mblk_t *mp, int outbound));
-#ifdef FILTER_PACKETS
-static int ip_hard_filter __P((upperstr_t *ppa, mblk_t *mp, int outbound));
-#endif /* FILTER_PACKETS */
-
-#define PPP_ID 0xb1a6
-static struct module_info ppp_info = {
-#ifdef PRIOQ
- PPP_ID, "ppp", 0, 512, 512, 384
-#else
- PPP_ID, "ppp", 0, 512, 512, 128
-#endif /* PRIOQ */
-};
-
-static struct qinit pppurint = {
- pppurput, pppursrv, pppopen, pppclose, NULL, &ppp_info, NULL
-};
-
-static struct qinit pppuwint = {
- pppuwput, pppuwsrv, NULL, NULL, NULL, &ppp_info, NULL
-};
-
-static struct qinit ppplrint = {
- ppplrput, ppplrsrv, NULL, NULL, NULL, &ppp_info, NULL
-};
-
-static struct qinit ppplwint = {
- ppplwput, ppplwsrv, NULL, NULL, NULL, &ppp_info, NULL
-};
-
-#ifdef LACHTCP
-extern struct ifstats *ifstats;
-int pppdevflag = 0;
-#endif
-
-struct streamtab pppinfo = {
- &pppurint, &pppuwint,
- &ppplrint, &ppplwint
-};
-
-int ppp_count;
-
-/*
- * How we maintain statistics.
- */
-#ifdef SOL2
-#define INCR_IPACKETS(ppa) \
- if (ppa->kstats != 0) { \
- KSTAT_NAMED_PTR(ppa->kstats)[0].value.ul++; \
- }
-#define INCR_IERRORS(ppa) \
- if (ppa->kstats != 0) { \
- KSTAT_NAMED_PTR(ppa->kstats)[1].value.ul++; \
- }
-#define INCR_OPACKETS(ppa) \
- if (ppa->kstats != 0) { \
- KSTAT_NAMED_PTR(ppa->kstats)[2].value.ul++; \
- }
-#define INCR_OERRORS(ppa) \
- if (ppa->kstats != 0) { \
- KSTAT_NAMED_PTR(ppa->kstats)[3].value.ul++; \
- }
-#endif
-
-#ifdef LACHTCP
-#define INCR_IPACKETS(ppa) ppa->ifstats.ifs_ipackets++;
-#define INCR_IERRORS(ppa) ppa->ifstats.ifs_ierrors++;
-#define INCR_OPACKETS(ppa) ppa->ifstats.ifs_opackets++;
-#define INCR_OERRORS(ppa) ppa->ifstats.ifs_oerrors++;
-#endif
-
-/*
- * STREAMS driver entry points.
- */
-static int
-#ifdef SVR4
-pppopen(q, devp, oflag, sflag, credp)
- queue_t *q;
- dev_t *devp;
- int oflag, sflag;
- cred_t *credp;
-#else
-pppopen(q, dev, oflag, sflag)
- queue_t *q;
- int dev; /* really dev_t */
- int oflag, sflag;
-#endif
-{
- upperstr_t *up;
- upperstr_t **prevp;
- minor_t mn;
-#ifdef PRIOQ
- u_short *ptr;
- u_char new_band;
-#endif /* PRIOQ */
-
- if (q->q_ptr)
- DRV_OPEN_OK(dev); /* device is already open */
-
-#ifdef PRIOQ
- /* Calculate max_bband & def_band from definitions in prioq.h
- This colud be done at some more approtiate time (less often)
- but this way it works well so I'll just leave it here */
-
- max_band = 1;
- def_band = 0;
- ptr = prioq_table;
- while (*ptr) {
- new_band = 1;
- while (*ptr)
- if (*ptr++ == IPPORT_DEFAULT) {
- new_band = 0;
- def_band = max_band;
- }
- max_band += new_band;
- ptr++;
- }
- if (def_band)
- def_band = max_band - def_band;
- --max_band;
-#endif /* PRIOQ */
-
- if (sflag == CLONEOPEN) {
- mn = 0;
- for (prevp = &minor_devs; (up = *prevp) != 0; prevp = &up->nextmn) {
- if (up->mn != mn)
- break;
- ++mn;
- }
- } else {
-#ifdef SVR4
- mn = getminor(*devp);
-#else
- mn = minor(dev);
-#endif
- for (prevp = &minor_devs; (up = *prevp) != 0; prevp = &up->nextmn) {
- if (up->mn >= mn)
- break;
- }
- if (up->mn == mn) {
- /* this can't happen */
- q->q_ptr = WR(q)->q_ptr = (caddr_t) up;
- DRV_OPEN_OK(dev);
- }
- }
-
- /*
- * Construct a new minor node.
- */
- up = (upperstr_t *) ALLOC_SLEEP(sizeof(upperstr_t));
- bzero((caddr_t) up, sizeof(upperstr_t));
- if (up == 0) {
- DPRINT("pppopen: out of kernel memory\n");
- OPEN_ERROR(ENXIO);
- }
- up->nextmn = *prevp;
- *prevp = up;
- up->mn = mn;
-#ifdef SVR4
- *devp = makedevice(getmajor(*devp), mn);
-#endif
- up->q = q;
- if (NOTSUSER() == 0)
- up->flags |= US_PRIV;
-#ifndef NO_DLPI
- up->state = DL_UNATTACHED;
-#endif
-#ifdef LACHTCP
- up->ifflags = IFF_UP | IFF_POINTOPOINT;
-#endif
- up->sap = -1;
- up->last_sent = up->last_recv = time;
- up->npmode = NPMODE_DROP;
- q->q_ptr = (caddr_t) up;
- WR(q)->q_ptr = (caddr_t) up;
- noenable(WR(q));
-#ifdef SOL2
- mutex_init(&up->stats_lock, NULL, MUTEX_DRIVER, NULL);
-#endif
- ++ppp_count;
-
- qprocson(q);
- DRV_OPEN_OK(makedev(major(dev), mn));
-}
-
-static int
-#ifdef SVR4
-pppclose(q, flag, credp)
- queue_t *q;
- int flag;
- cred_t *credp;
-#else
-pppclose(q, flag)
- queue_t *q;
- int flag;
-#endif
-{
- upperstr_t *up, **upp;
- upperstr_t *as, *asnext;
- upperstr_t **prevp;
-
- qprocsoff(q);
-
- up = (upperstr_t *) q->q_ptr;
- if (up == 0) {
- DPRINT("pppclose: q_ptr = 0\n");
- return 0;
- }
- if (up->flags & US_DBGLOG)
- DPRINT2("ppp/%d: close, flags=%x\n", up->mn, up->flags);
- if (up->flags & US_CONTROL) {
-#ifdef LACHTCP
- struct ifstats *ifp, *pifp;
-#endif
- if (up->lowerq != 0) {
- /* Gack! the lower stream should have be unlinked earlier! */
- DPRINT1("ppp%d: lower stream still connected on close?\n",
- up->mn);
- LOCK_LOWER_W;
- up->lowerq->q_ptr = 0;
- RD(up->lowerq)->q_ptr = 0;
- up->lowerq = 0;
- UNLOCK_LOWER;
- }
-
- /*
- * This stream represents a PPA:
- * For all streams attached to the PPA, clear their
- * references to this PPA.
- * Then remove this PPA from the list of PPAs.
- */
- for (as = up->next; as != 0; as = asnext) {
- asnext = as->next;
- as->next = 0;
- as->ppa = 0;
- if (as->flags & US_BLOCKED) {
- as->flags &= ~US_BLOCKED;
- flushq(WR(as->q), FLUSHDATA);
- }
- }
- for (upp = &ppas; *upp != 0; upp = &(*upp)->nextppa)
- if (*upp == up) {
- *upp = up->nextppa;
- break;
- }
-#ifdef LACHTCP
- /* Remove the statistics from the active list. */
- for (ifp = ifstats, pifp = 0; ifp; ifp = ifp->ifs_next) {
- if (ifp == &up->ifstats) {
- if (pifp)
- pifp->ifs_next = ifp->ifs_next;
- else
- ifstats = ifp->ifs_next;
- break;
- }
- pifp = ifp;
- }
-#endif
- } else {
- /*
- * If this stream is attached to a PPA,
- * remove it from the PPA's list.
- */
- if ((as = up->ppa) != 0) {
- for (; as->next != 0; as = as->next)
- if (as->next == up) {
- as->next = up->next;
- break;
- }
- }
- }
-
-#ifdef SOL2
- if (up->kstats)
- kstat_delete(up->kstats);
- mutex_destroy(&up->stats_lock);
-#endif
-
- q->q_ptr = NULL;
- WR(q)->q_ptr = NULL;
-
- for (prevp = &minor_devs; *prevp != 0; prevp = &(*prevp)->nextmn) {
- if (*prevp == up) {
- *prevp = up->nextmn;
- break;
- }
- }
- FREE(up, sizeof(upperstr_t));
- --ppp_count;
-
- return 0;
-}
-
-/*
- * A message from on high. We do one of three things:
- * - qreply()
- * - put the message on the lower write stream
- * - queue it for our service routine
- */
-static int
-pppuwput(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- upperstr_t *us, *ppa, *nps;
- struct iocblk *iop;
- struct linkblk *lb;
-#ifdef LACHTCP
- struct ifreq *ifr;
- int i;
-#endif
- queue_t *lq;
- int error, n, sap;
- mblk_t *mq;
- struct ppp_idle *pip;
-#ifdef PRIOQ
- queue_t *tlq;
-#endif /* PRIOQ */
-#ifdef NO_DLPI
- upperstr_t *os;
-#endif
-
- us = (upperstr_t *) q->q_ptr;
- if (us == 0) {
- DPRINT("pppuwput: q_ptr = 0!\n");
- return 0;
- }
- if (mp == 0) {
- DPRINT1("pppuwput/%d: mp = 0!\n", us->mn);
- return 0;
- }
- if (mp->b_datap == 0) {
- DPRINT1("pppuwput/%d: mp->b_datap = 0!\n", us->mn);
- return 0;
- }
- switch (mp->b_datap->db_type) {
-#ifndef NO_DLPI
- case M_PCPROTO:
- case M_PROTO:
- dlpi_request(q, mp, us);
- break;
-#endif /* NO_DLPI */
-
- case M_DATA:
- if (us->flags & US_DBGLOG)
- DPRINT3("ppp/%d: uwput M_DATA len=%d flags=%x\n",
- us->mn, msgdsize(mp), us->flags);
- if (us->ppa == 0 || msgdsize(mp) > us->ppa->mtu + PPP_HDRLEN
-#ifndef NO_DLPI
- || (us->flags & US_CONTROL) == 0
-#endif /* NO_DLPI */
- ) {
- DPRINT1("pppuwput: junk data len=%d\n", msgdsize(mp));
- freemsg(mp);
- break;
- }
-#ifdef NO_DLPI
- if ((us->flags & US_CONTROL) == 0 && !pass_packet(us, mp, 1))
- break;
-#endif
- if (!send_data(mp, us))
- putq(q, mp);
- break;
-
- case M_IOCTL:
- iop = (struct iocblk *) mp->b_rptr;
- error = EINVAL;
- if (us->flags & US_DBGLOG)
- DPRINT3("ppp/%d: ioctl %x count=%d\n",
- us->mn, iop->ioc_cmd, iop->ioc_count);
- switch (iop->ioc_cmd) {
-#if defined(SOL2)
- case DLIOCRAW: /* raw M_DATA mode */
- us->flags |= US_RAWDATA;
- error = 0;
- break;
-#endif /* defined(SOL2) */
- case I_LINK:
- if ((us->flags & US_CONTROL) == 0 || us->lowerq != 0)
- break;
- if (mp->b_cont == 0) {
- DPRINT1("pppuwput/%d: ioctl I_LINK b_cont = 0!\n", us->mn);
- break;
- }
- lb = (struct linkblk *) mp->b_cont->b_rptr;
- lq = lb->l_qbot;
- if (lq == 0) {
- DPRINT1("pppuwput/%d: ioctl I_LINK l_qbot = 0!\n", us->mn);
- break;
- }
- LOCK_LOWER_W;
- us->lowerq = lq;
- lq->q_ptr = (caddr_t) q;
- RD(lq)->q_ptr = (caddr_t) us->q;
- UNLOCK_LOWER;
- iop->ioc_count = 0;
- error = 0;
- us->flags &= ~US_LASTMOD;
- /* Unblock upper streams which now feed this lower stream. */
- qenable(q);
- /* Send useful information down to the modules which
- are now linked below us. */
- putctl2(lq, M_CTL, PPPCTL_UNIT, us->ppa_id);
- putctl4(lq, M_CTL, PPPCTL_MRU, us->mru);
- putctl4(lq, M_CTL, PPPCTL_MTU, us->mtu);
-#ifdef PRIOQ
- /* Lower tty driver's queue hiwat/lowat from default 4096/128
- to 256/128 since we don't want queueing of data on
- output to physical device */
-
- freezestr(lq);
- for (tlq = lq; tlq->q_next != NULL; tlq = tlq->q_next)
- ;
- strqset(tlq, QHIWAT, 0, 256);
- strqset(tlq, QLOWAT, 0, 128);
- unfreezestr(lq);
-#endif /* PRIOQ */
- break;
-
- case I_UNLINK:
- if (mp->b_cont == 0) {
- DPRINT1("pppuwput/%d: ioctl I_UNLINK b_cont = 0!\n", us->mn);
- break;
- }
- lb = (struct linkblk *) mp->b_cont->b_rptr;
-#if DEBUG
- if (us->lowerq != lb->l_qbot) {
- DPRINT2("ppp unlink: lowerq=%x qbot=%x\n",
- us->lowerq, lb->l_qbot);
- break;
- }
-#endif
- iop->ioc_count = 0;
- qwriter(q, mp, detach_lower, PERIM_OUTER);
- error = -1;
- break;
-
- case PPPIO_NEWPPA:
- if (us->flags & US_CONTROL)
- break;
- if ((us->flags & US_PRIV) == 0) {
- error = EPERM;
- break;
- }
- /* Arrange to return an int */
- if ((mq = mp->b_cont) == 0
- || mq->b_datap->db_lim - mq->b_rptr < sizeof(int)) {
- mq = allocb(sizeof(int), BPRI_HI);
- if (mq == 0) {
- error = ENOSR;
- break;
- }
- if (mp->b_cont != 0)
- freemsg(mp->b_cont);
- mp->b_cont = mq;
- mq->b_cont = 0;
- }
- iop->ioc_count = sizeof(int);
- mq->b_wptr = mq->b_rptr + sizeof(int);
- qwriter(q, mp, new_ppa, PERIM_OUTER);
- error = -1;
- break;
-
- case PPPIO_ATTACH:
- /* like dlpi_attach, for programs which can't write to
- the stream (like pppstats) */
- if (iop->ioc_count != sizeof(int) || us->ppa != 0)
- break;
- if (mp->b_cont == 0) {
- DPRINT1("pppuwput/%d: ioctl PPPIO_ATTACH b_cont = 0!\n", us->mn);
- break;
- }
- n = *(int *)mp->b_cont->b_rptr;
- for (ppa = ppas; ppa != 0; ppa = ppa->nextppa)
- if (ppa->ppa_id == n)
- break;
- if (ppa == 0)
- break;
- us->ppa = ppa;
- iop->ioc_count = 0;
- qwriter(q, mp, attach_ppa, PERIM_OUTER);
- error = -1;
- break;
-
-#ifdef NO_DLPI
- case PPPIO_BIND:
- /* Attach to a given SAP. */
- if (iop->ioc_count != sizeof(int) || us->ppa == 0)
- break;
- if (mp->b_cont == 0) {
- DPRINT1("pppuwput/%d: ioctl PPPIO_BIND b_cont = 0!\n", us->mn);
- break;
- }
- n = *(int *)mp->b_cont->b_rptr;
- /* n must be a valid PPP network protocol number. */
- if (n < 0x21 || n > 0x3fff || (n & 0x101) != 1)
- break;
- /* check that no other stream is bound to this sap already. */
- for (os = us->ppa; os != 0; os = os->next)
- if (os->sap == n)
- break;
- if (os != 0)
- break;
- us->sap = n;
- iop->ioc_count = 0;
- error = 0;
- break;
-#endif /* NO_DLPI */
-
- case PPPIO_MRU:
- if (iop->ioc_count != sizeof(int) || (us->flags & US_CONTROL) == 0)
- break;
- if (mp->b_cont == 0) {
- DPRINT1("pppuwput/%d: ioctl PPPIO_MRU b_cont = 0!\n", us->mn);
- break;
- }
- n = *(int *)mp->b_cont->b_rptr;
- if (n <= 0 || n > PPP_MAXMRU)
- break;
- if (n < PPP_MRU)
- n = PPP_MRU;
- us->mru = n;
- if (us->lowerq)
- putctl4(us->lowerq, M_CTL, PPPCTL_MRU, n);
- error = 0;
- iop->ioc_count = 0;
- break;
-
- case PPPIO_MTU:
- if (iop->ioc_count != sizeof(int) || (us->flags & US_CONTROL) == 0)
- break;
- if (mp->b_cont == 0) {
- DPRINT1("pppuwput/%d: ioctl PPPIO_MTU b_cont = 0!\n", us->mn);
- break;
- }
- n = *(int *)mp->b_cont->b_rptr;
- if (n <= 0 || n > PPP_MAXMTU)
- break;
- us->mtu = n;
-#ifdef LACHTCP
- /* The MTU reported in netstat, not used as IP max packet size! */
- us->ifstats.ifs_mtu = n;
-#endif
- if (us->lowerq)
- putctl4(us->lowerq, M_CTL, PPPCTL_MTU, n);
- error = 0;
- iop->ioc_count = 0;
- break;
-
- case PPPIO_LASTMOD:
- us->flags |= US_LASTMOD;
- error = 0;
- break;
-
- case PPPIO_DEBUG:
- if (iop->ioc_count != sizeof(int))
- break;
- if (mp->b_cont == 0) {
- DPRINT1("pppuwput/%d: ioctl PPPIO_DEBUG b_cont = 0!\n", us->mn);
- break;
- }
- n = *(int *)mp->b_cont->b_rptr;
- if (n == PPPDBG_DUMP + PPPDBG_DRIVER) {
- qwriter(q, NULL, debug_dump, PERIM_OUTER);
- iop->ioc_count = 0;
- error = -1;
- } else if (n == PPPDBG_LOG + PPPDBG_DRIVER) {
- DPRINT1("ppp/%d: debug log enabled\n", us->mn);
- us->flags |= US_DBGLOG;
- iop->ioc_count = 0;
- error = 0;
- } else {
- if (us->ppa == 0 || us->ppa->lowerq == 0)
- break;
- putnext(us->ppa->lowerq, mp);
- error = -1;
- }
- break;
-
- case PPPIO_NPMODE:
- if (iop->ioc_count != 2 * sizeof(int))
- break;
- if ((us->flags & US_CONTROL) == 0)
- break;
- if (mp->b_cont == 0) {
- DPRINT1("pppuwput/%d: ioctl PPPIO_NPMODE b_cont = 0!\n", us->mn);
- break;
- }
- sap = ((int *)mp->b_cont->b_rptr)[0];
- for (nps = us->next; nps != 0; nps = nps->next) {
- if (us->flags & US_DBGLOG)
- DPRINT2("us = 0x%x, us->next->sap = 0x%x\n", nps, nps->sap);
- if (nps->sap == sap)
- break;
- }
- if (nps == 0) {
- if (us->flags & US_DBGLOG)
- DPRINT2("ppp/%d: no stream for sap %x\n", us->mn, sap);
- break;
- }
- /* XXX possibly should use qwriter here */
- nps->npmode = (enum NPmode) ((int *)mp->b_cont->b_rptr)[1];
- if (nps->npmode != NPMODE_QUEUE && (nps->flags & US_BLOCKED) != 0)
- qenable(WR(nps->q));
- iop->ioc_count = 0;
- error = 0;
- break;
-
- case PPPIO_GIDLE:
- if ((ppa = us->ppa) == 0)
- break;
- mq = allocb(sizeof(struct ppp_idle), BPRI_HI);
- if (mq == 0) {
- error = ENOSR;
- break;
- }
- if (mp->b_cont != 0)
- freemsg(mp->b_cont);
- mp->b_cont = mq;
- mq->b_cont = 0;
- pip = (struct ppp_idle *) mq->b_wptr;
- pip->xmit_idle = time - ppa->last_sent;
- pip->recv_idle = time - ppa->last_recv;
- mq->b_wptr += sizeof(struct ppp_idle);
- iop->ioc_count = sizeof(struct ppp_idle);
- error = 0;
- break;
-
-#ifdef LACHTCP
- case SIOCSIFNAME:
- /* Sent from IP down to us. Attach the ifstats structure. */
- if (iop->ioc_count != sizeof(struct ifreq) || us->ppa == 0)
- break;
- ifr = (struct ifreq *)mp->b_cont->b_rptr;
- /* Find the unit number in the interface name. */
- for (i = 0; i < IFNAMSIZ; i++) {
- if (ifr->ifr_name[i] == 0 ||
- (ifr->ifr_name[i] >= '0' &&
- ifr->ifr_name[i] <= '9'))
- break;
- else
- us->ifname[i] = ifr->ifr_name[i];
- }
- us->ifname[i] = 0;
-
- /* Convert the unit number to binary. */
- for (n = 0; i < IFNAMSIZ; i++) {
- if (ifr->ifr_name[i] == 0) {
- break;
- }
- else {
- n = n * 10 + ifr->ifr_name[i] - '0';
- }
- }
-
- /* Verify the ppa. */
- if (us->ppa->ppa_id != n)
- break;
- ppa = us->ppa;
-
- /* Set up the netstat block. */
- strncpy (ppa->ifname, us->ifname, IFNAMSIZ);
-
- ppa->ifstats.ifs_name = ppa->ifname;
- ppa->ifstats.ifs_unit = n;
- ppa->ifstats.ifs_active = us->state != DL_UNBOUND;
- ppa->ifstats.ifs_mtu = ppa->mtu;
-
- /* Link in statistics used by netstat. */
- ppa->ifstats.ifs_next = ifstats;
- ifstats = &ppa->ifstats;
-
- iop->ioc_count = 0;
- error = 0;
- break;
-
- case SIOCGIFFLAGS:
- if (!(us->flags & US_CONTROL)) {
- if (us->ppa)
- us = us->ppa;
- else
- break;
- }
- ((struct iocblk_in *)iop)->ioc_ifflags = us->ifflags;
- error = 0;
- break;
-
- case SIOCSIFFLAGS:
- if (!(us->flags & US_CONTROL)) {
- if (us->ppa)
- us = us->ppa;
- else
- break;
- }
- us->ifflags = ((struct iocblk_in *)iop)->ioc_ifflags;
- error = 0;
- break;
-
- case SIOCSIFADDR:
- if (!(us->flags & US_CONTROL)) {
- if (us->ppa)
- us = us->ppa;
- else
- break;
- }
- us->ifflags |= IFF_RUNNING;
- ((struct iocblk_in *)iop)->ioc_ifflags |= IFF_RUNNING;
- error = 0;
- break;
-
- case SIOCSIFMTU:
- /*
- * Vanilla SVR4 systems don't handle SIOCSIFMTU, rather
- * they take the MTU from the DL_INFO_ACK we sent in response
- * to their DL_INFO_REQ. Fortunately, they will update the
- * MTU if we send an unsolicited DL_INFO_ACK up.
- */
- if ((mq = allocb(sizeof(dl_info_req_t), BPRI_HI)) == 0)
- break; /* should do bufcall */
- ((union DL_primitives *)mq->b_rptr)->dl_primitive = DL_INFO_REQ;
- mq->b_wptr = mq->b_rptr + sizeof(dl_info_req_t);
- dlpi_request(q, mq, us);
- error = 0;
- break;
-
- case SIOCGIFNETMASK:
- case SIOCSIFNETMASK:
- case SIOCGIFADDR:
- case SIOCGIFDSTADDR:
- case SIOCSIFDSTADDR:
- case SIOCGIFMETRIC:
- error = 0;
- break;
-#endif /* LACHTCP */
-
- default:
- if (us->ppa == 0 || us->ppa->lowerq == 0)
- break;
- us->ioc_id = iop->ioc_id;
- error = -1;
- switch (iop->ioc_cmd) {
- case PPPIO_GETSTAT:
- case PPPIO_GETCSTAT:
- if (us->flags & US_LASTMOD) {
- error = EINVAL;
- break;
- }
- putnext(us->ppa->lowerq, mp);
- break;
- default:
- if (us->flags & US_PRIV)
- putnext(us->ppa->lowerq, mp);
- else {
- DPRINT1("ppp ioctl %x rejected\n", iop->ioc_cmd);
- error = EPERM;
- }
- break;
- }
- break;
- }
-
- if (error > 0) {
- iop->ioc_error = error;
- mp->b_datap->db_type = M_IOCNAK;
- qreply(q, mp);
- } else if (error == 0) {
- mp->b_datap->db_type = M_IOCACK;
- qreply(q, mp);
- }
- break;
-
- case M_FLUSH:
- if (us->flags & US_DBGLOG)
- DPRINT2("ppp/%d: flush %x\n", us->mn, *mp->b_rptr);
- if (*mp->b_rptr & FLUSHW)
- flushq(q, FLUSHDATA);
- if (*mp->b_rptr & FLUSHR) {
- *mp->b_rptr &= ~FLUSHW;
- qreply(q, mp);
- } else
- freemsg(mp);
- break;
-
- default:
- freemsg(mp);
- break;
- }
- return 0;
-}
-
-#ifndef NO_DLPI
-static void
-dlpi_request(q, mp, us)
- queue_t *q;
- mblk_t *mp;
- upperstr_t *us;
-{
- union DL_primitives *d = (union DL_primitives *) mp->b_rptr;
- int size = mp->b_wptr - mp->b_rptr;
- mblk_t *reply, *np;
- upperstr_t *ppa, *os;
- int sap, len;
- dl_info_ack_t *info;
- dl_bind_ack_t *ackp;
-#if DL_CURRENT_VERSION >= 2
- dl_phys_addr_ack_t *paddrack;
- static struct ether_addr eaddr = {0};
-#endif
-
- if (us->flags & US_DBGLOG)
- DPRINT3("ppp/%d: dlpi prim %x len=%d\n", us->mn,
- d->dl_primitive, size);
- switch (d->dl_primitive) {
- case DL_INFO_REQ:
- if (size < sizeof(dl_info_req_t))
- goto badprim;
- if ((reply = allocb(sizeof(dl_info_ack_t), BPRI_HI)) == 0)
- break; /* should do bufcall */
- reply->b_datap->db_type = M_PCPROTO;
- info = (dl_info_ack_t *) reply->b_wptr;
- reply->b_wptr += sizeof(dl_info_ack_t);
- bzero((caddr_t) info, sizeof(dl_info_ack_t));
- info->dl_primitive = DL_INFO_ACK;
- info->dl_max_sdu = us->ppa? us->ppa->mtu: PPP_MAXMTU;
- info->dl_min_sdu = 1;
- info->dl_addr_length = sizeof(uint);
- info->dl_mac_type = DL_ETHER; /* a bigger lie */
- info->dl_current_state = us->state;
- info->dl_service_mode = DL_CLDLS;
- info->dl_provider_style = DL_STYLE2;
-#if DL_CURRENT_VERSION >= 2
- info->dl_sap_length = sizeof(uint);
- info->dl_version = DL_CURRENT_VERSION;
-#endif
- qreply(q, reply);
- break;
-
- case DL_ATTACH_REQ:
- if (size < sizeof(dl_attach_req_t))
- goto badprim;
- if (us->state != DL_UNATTACHED || us->ppa != 0) {
- dlpi_error(q, us, DL_ATTACH_REQ, DL_OUTSTATE, 0);
- break;
- }
- for (ppa = ppas; ppa != 0; ppa = ppa->nextppa)
- if (ppa->ppa_id == d->attach_req.dl_ppa)
- break;
- if (ppa == 0) {
- dlpi_error(q, us, DL_ATTACH_REQ, DL_BADPPA, 0);
- break;
- }
- us->ppa = ppa;
- qwriter(q, mp, attach_ppa, PERIM_OUTER);
- return;
-
- case DL_DETACH_REQ:
- if (size < sizeof(dl_detach_req_t))
- goto badprim;
- if (us->state != DL_UNBOUND || us->ppa == 0) {
- dlpi_error(q, us, DL_DETACH_REQ, DL_OUTSTATE, 0);
- break;
- }
- qwriter(q, mp, detach_ppa, PERIM_OUTER);
- return;
-
- case DL_BIND_REQ:
- if (size < sizeof(dl_bind_req_t))
- goto badprim;
- if (us->state != DL_UNBOUND || us->ppa == 0) {
- dlpi_error(q, us, DL_BIND_REQ, DL_OUTSTATE, 0);
- break;
- }
-#if 0
- /* apparently this test fails (unnecessarily?) on some systems */
- if (d->bind_req.dl_service_mode != DL_CLDLS) {
- dlpi_error(q, us, DL_BIND_REQ, DL_UNSUPPORTED, 0);
- break;
- }
-#endif
-
- /* saps must be valid PPP network protocol numbers,
- except that we accept ETHERTYPE_IP in place of PPP_IP. */
- sap = d->bind_req.dl_sap;
- us->req_sap = sap;
-
-#if defined(SOL2)
- if (us->flags & US_DBGLOG)
- DPRINT2("DL_BIND_REQ: ip gives sap = 0x%x, us = 0x%x", sap, us);
-
- if (sap == ETHERTYPE_IP) /* normal IFF_IPV4 */
- sap = PPP_IP;
- else if (sap == ETHERTYPE_IPV6) /* when IFF_IPV6 is set */
- sap = PPP_IPV6;
- else if (sap == ETHERTYPE_ALLSAP) /* snoop gives sap of 0 */
- sap = PPP_ALLSAP;
- else {
- DPRINT2("DL_BIND_REQ: unrecognized sap = 0x%x, us = 0x%x", sap, us);
- dlpi_error(q, us, DL_BIND_REQ, DL_BADADDR, 0);
- break;
- }
-#else
- if (sap == ETHERTYPE_IP)
- sap = PPP_IP;
- if (sap < 0x21 || sap > 0x3fff || (sap & 0x101) != 1) {
- dlpi_error(q, us, DL_BIND_REQ, DL_BADADDR, 0);
- break;
- }
-#endif /* defined(SOL2) */
-
- /* check that no other stream is bound to this sap already. */
- for (os = us->ppa; os != 0; os = os->next)
- if (os->sap == sap)
- break;
- if (os != 0) {
- dlpi_error(q, us, DL_BIND_REQ, DL_NOADDR, 0);
- break;
- }
-
- us->sap = sap;
- us->state = DL_IDLE;
-
- if ((reply = allocb(sizeof(dl_bind_ack_t) + sizeof(uint),
- BPRI_HI)) == 0)
- break; /* should do bufcall */
- ackp = (dl_bind_ack_t *) reply->b_wptr;
- reply->b_wptr += sizeof(dl_bind_ack_t) + sizeof(uint);
- reply->b_datap->db_type = M_PCPROTO;
- bzero((caddr_t) ackp, sizeof(dl_bind_ack_t));
- ackp->dl_primitive = DL_BIND_ACK;
- ackp->dl_sap = sap;
- ackp->dl_addr_length = sizeof(uint);
- ackp->dl_addr_offset = sizeof(dl_bind_ack_t);
- *(uint *)(ackp+1) = sap;
- qreply(q, reply);
- break;
-
- case DL_UNBIND_REQ:
- if (size < sizeof(dl_unbind_req_t))
- goto badprim;
- if (us->state != DL_IDLE) {
- dlpi_error(q, us, DL_UNBIND_REQ, DL_OUTSTATE, 0);
- break;
- }
- us->sap = -1;
- us->state = DL_UNBOUND;
-#ifdef LACHTCP
- us->ppa->ifstats.ifs_active = 0;
-#endif
- dlpi_ok(q, DL_UNBIND_REQ);
- break;
-
- case DL_UNITDATA_REQ:
- if (size < sizeof(dl_unitdata_req_t))
- goto badprim;
- if (us->state != DL_IDLE) {
- dlpi_error(q, us, DL_UNITDATA_REQ, DL_OUTSTATE, 0);
- break;
- }
- if ((ppa = us->ppa) == 0) {
- cmn_err(CE_CONT, "ppp: in state dl_idle but ppa == 0?\n");
- break;
- }
- len = mp->b_cont == 0? 0: msgdsize(mp->b_cont);
- if (len > ppa->mtu) {
- DPRINT2("dlpi data too large (%d > %d)\n", len, ppa->mtu);
- break;
- }
-
-#if defined(SOL2)
- /*
- * Should there be any promiscuous stream(s), send the data
- * up for each promiscuous stream that we recognize.
- */
- if (mp->b_cont)
- promisc_sendup(ppa, mp->b_cont, us->sap, 0);
-#endif /* defined(SOL2) */
-
- mp->b_band = 0;
-#ifdef PRIOQ
- /* Extract s_port & d_port from IP-packet, the code is a bit
- dirty here, but so am I, too... */
- if (mp->b_datap->db_type == M_PROTO && us->sap == PPP_IP
- && mp->b_cont != 0) {
- u_char *bb, *tlh;
- int iphlen, len;
- u_short *ptr;
- u_char band_unset, cur_band, syn;
- u_short s_port, d_port;
-
- bb = mp->b_cont->b_rptr; /* bb points to IP-header*/
- len = mp->b_cont->b_wptr - mp->b_cont->b_rptr;
- syn = 0;
- s_port = IPPORT_DEFAULT;
- d_port = IPPORT_DEFAULT;
- if (len >= 20) { /* 20 = minimum length of IP header */
- iphlen = (bb[0] & 0x0f) * 4;
- tlh = bb + iphlen;
- len -= iphlen;
- switch (bb[9]) {
- case IPPROTO_TCP:
- if (len >= 20) { /* min length of TCP header */
- s_port = (tlh[0] << 8) + tlh[1];
- d_port = (tlh[2] << 8) + tlh[3];
- syn = tlh[13] & 0x02;
- }
- break;
- case IPPROTO_UDP:
- if (len >= 8) { /* min length of UDP header */
- s_port = (tlh[0] << 8) + tlh[1];
- d_port = (tlh[2] << 8) + tlh[3];
- }
- break;
- }
- }
-
- /*
- * Now calculate b_band for this packet from the
- * port-priority table.
- */
- ptr = prioq_table;
- cur_band = max_band;
- band_unset = 1;
- while (*ptr) {
- while (*ptr && band_unset)
- if (s_port == *ptr || d_port == *ptr++) {
- mp->b_band = cur_band;
- band_unset = 0;
- break;
- }
- ptr++;
- cur_band--;
- }
- if (band_unset)
- mp->b_band = def_band;
- /* It may be usable to urge SYN packets a bit */
- if (syn)
- mp->b_band++;
- }
-#endif /* PRIOQ */
- /* this assumes PPP_HDRLEN <= sizeof(dl_unitdata_req_t) */
- if (mp->b_datap->db_ref > 1) {
- np = allocb(PPP_HDRLEN, BPRI_HI);
- if (np == 0)
- break; /* gak! */
- np->b_cont = mp->b_cont;
- mp->b_cont = 0;
- freeb(mp);
- mp = np;
- } else
- mp->b_datap->db_type = M_DATA;
- /* XXX should use dl_dest_addr_offset/length here,
- but we would have to translate ETHERTYPE_IP -> PPP_IP */
- mp->b_wptr = mp->b_rptr + PPP_HDRLEN;
- mp->b_rptr[0] = PPP_ALLSTATIONS;
- mp->b_rptr[1] = PPP_UI;
- mp->b_rptr[2] = us->sap >> 8;
- mp->b_rptr[3] = us->sap;
- if (pass_packet(us, mp, 1)) {
- if (!send_data(mp, us))
- putq(q, mp);
- }
- return;
-
-#if DL_CURRENT_VERSION >= 2
- case DL_PHYS_ADDR_REQ:
- if (size < sizeof(dl_phys_addr_req_t))
- goto badprim;
-
- /*
- * Don't check state because ifconfig sends this one down too
- */
-
- if ((reply = allocb(sizeof(dl_phys_addr_ack_t)+ETHERADDRL,
- BPRI_HI)) == 0)
- break; /* should do bufcall */
- reply->b_datap->db_type = M_PCPROTO;
- paddrack = (dl_phys_addr_ack_t *) reply->b_wptr;
- reply->b_wptr += sizeof(dl_phys_addr_ack_t);
- bzero((caddr_t) paddrack, sizeof(dl_phys_addr_ack_t)+ETHERADDRL);
- paddrack->dl_primitive = DL_PHYS_ADDR_ACK;
- paddrack->dl_addr_length = ETHERADDRL;
- paddrack->dl_addr_offset = sizeof(dl_phys_addr_ack_t);
- bcopy(&eaddr, reply->b_wptr, ETHERADDRL);
- reply->b_wptr += ETHERADDRL;
- qreply(q, reply);
- break;
-
-#if defined(SOL2)
- case DL_PROMISCON_REQ:
- if (size < sizeof(dl_promiscon_req_t))
- goto badprim;
- us->flags |= US_PROMISC;
- dlpi_ok(q, DL_PROMISCON_REQ);
- break;
-
- case DL_PROMISCOFF_REQ:
- if (size < sizeof(dl_promiscoff_req_t))
- goto badprim;
- us->flags &= ~US_PROMISC;
- dlpi_ok(q, DL_PROMISCOFF_REQ);
- break;
-#else
- case DL_PROMISCON_REQ: /* fall thru */
- case DL_PROMISCOFF_REQ: /* fall thru */
-#endif /* defined(SOL2) */
-#endif /* DL_CURRENT_VERSION >= 2 */
-
-#if DL_CURRENT_VERSION >= 2
- case DL_SET_PHYS_ADDR_REQ:
- case DL_SUBS_BIND_REQ:
- case DL_SUBS_UNBIND_REQ:
- case DL_ENABMULTI_REQ:
- case DL_DISABMULTI_REQ:
- case DL_XID_REQ:
- case DL_TEST_REQ:
- case DL_REPLY_UPDATE_REQ:
- case DL_REPLY_REQ:
- case DL_DATA_ACK_REQ:
-#endif
- case DL_CONNECT_REQ:
- case DL_TOKEN_REQ:
- dlpi_error(q, us, d->dl_primitive, DL_NOTSUPPORTED, 0);
- break;
-
- case DL_CONNECT_RES:
- case DL_DISCONNECT_REQ:
- case DL_RESET_REQ:
- case DL_RESET_RES:
- dlpi_error(q, us, d->dl_primitive, DL_OUTSTATE, 0);
- break;
-
- case DL_UDQOS_REQ:
- dlpi_error(q, us, d->dl_primitive, DL_BADQOSTYPE, 0);
- break;
-
-#if DL_CURRENT_VERSION >= 2
- case DL_TEST_RES:
- case DL_XID_RES:
- break;
-#endif
-
- default:
- cmn_err(CE_CONT, "ppp: unknown dlpi prim 0x%x\n", d->dl_primitive);
- /* fall through */
- badprim:
- dlpi_error(q, us, d->dl_primitive, DL_BADPRIM, 0);
- break;
- }
- freemsg(mp);
-}
-
-static void
-dlpi_error(q, us, prim, err, uerr)
- queue_t *q;
- upperstr_t *us;
- int prim, err, uerr;
-{
- mblk_t *reply;
- dl_error_ack_t *errp;
-
- if (us->flags & US_DBGLOG)
- DPRINT3("ppp/%d: dlpi error, prim=%x, err=%x\n", us->mn, prim, err);
- reply = allocb(sizeof(dl_error_ack_t), BPRI_HI);
- if (reply == 0)
- return; /* XXX should do bufcall */
- reply->b_datap->db_type = M_PCPROTO;
- errp = (dl_error_ack_t *) reply->b_wptr;
- reply->b_wptr += sizeof(dl_error_ack_t);
- errp->dl_primitive = DL_ERROR_ACK;
- errp->dl_error_primitive = prim;
- errp->dl_errno = err;
- errp->dl_unix_errno = uerr;
- qreply(q, reply);
-}
-
-static void
-dlpi_ok(q, prim)
- queue_t *q;
- int prim;
-{
- mblk_t *reply;
- dl_ok_ack_t *okp;
-
- reply = allocb(sizeof(dl_ok_ack_t), BPRI_HI);
- if (reply == 0)
- return; /* XXX should do bufcall */
- reply->b_datap->db_type = M_PCPROTO;
- okp = (dl_ok_ack_t *) reply->b_wptr;
- reply->b_wptr += sizeof(dl_ok_ack_t);
- okp->dl_primitive = DL_OK_ACK;
- okp->dl_correct_primitive = prim;
- qreply(q, reply);
-}
-#endif /* NO_DLPI */
-
-static int
-pass_packet(us, mp, outbound)
- upperstr_t *us;
- mblk_t *mp;
- int outbound;
-{
- int pass;
- upperstr_t *ppa;
-
- if ((ppa = us->ppa) == 0) {
- freemsg(mp);
- return 0;
- }
-
-#ifdef FILTER_PACKETS
- pass = ip_hard_filter(us, mp, outbound);
-#else
- /*
- * Here is where we might, in future, decide whether to pass
- * or drop the packet, and whether it counts as link activity.
- */
- pass = 1;
-#endif /* FILTER_PACKETS */
-
- if (pass < 0) {
- /* pass only if link already up, and don't update time */
- if (ppa->lowerq == 0) {
- freemsg(mp);
- return 0;
- }
- pass = 1;
- } else if (pass) {
- if (outbound)
- ppa->last_sent = time;
- else
- ppa->last_recv = time;
- }
-
- return pass;
-}
-
-/*
- * We have some data to send down to the lower stream (or up the
- * control stream, if we don't have a lower stream attached).
- * Returns 1 if the message was dealt with, 0 if it wasn't able
- * to be sent on and should therefore be queued up.
- */
-static int
-send_data(mp, us)
- mblk_t *mp;
- upperstr_t *us;
-{
- upperstr_t *ppa;
-
- if ((us->flags & US_BLOCKED) || us->npmode == NPMODE_QUEUE)
- return 0;
- ppa = us->ppa;
- if (ppa == 0 || us->npmode == NPMODE_DROP || us->npmode == NPMODE_ERROR) {
- if (us->flags & US_DBGLOG)
- DPRINT2("ppp/%d: dropping pkt (npmode=%d)\n", us->mn, us->npmode);
- freemsg(mp);
- return 1;
- }
- if (ppa->lowerq == 0) {
- /* try to send it up the control stream */
- if (bcanputnext(ppa->q, mp->b_band)) {
- /*
- * The message seems to get corrupted for some reason if
- * we just send the message up as it is, so we send a copy.
- */
- mblk_t *np = copymsg(mp);
- freemsg(mp);
- if (np != 0)
- putnext(ppa->q, np);
- return 1;
- }
- } else {
- if (bcanputnext(ppa->lowerq, mp->b_band)) {
- MT_ENTER(&ppa->stats_lock);
- ppa->stats.ppp_opackets++;
- ppa->stats.ppp_obytes += msgdsize(mp);
-#ifdef INCR_OPACKETS
- INCR_OPACKETS(ppa);
-#endif
- MT_EXIT(&ppa->stats_lock);
- /*
- * The lower queue is only ever detached while holding an
- * exclusive lock on the whole driver. So we can be confident
- * that the lower queue is still there.
- */
- putnext(ppa->lowerq, mp);
- return 1;
- }
- }
- us->flags |= US_BLOCKED;
- return 0;
-}
-
-/*
- * Allocate a new PPA id and link this stream into the list of PPAs.
- * This procedure is called with an exclusive lock on all queues in
- * this driver.
- */
-static void
-new_ppa(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- upperstr_t *us, *up, **usp;
- int ppa_id;
-
- us = (upperstr_t *) q->q_ptr;
- if (us == 0) {
- DPRINT("new_ppa: q_ptr = 0!\n");
- return;
- }
-
- usp = &ppas;
- ppa_id = 0;
- while ((up = *usp) != 0 && ppa_id == up->ppa_id) {
- ++ppa_id;
- usp = &up->nextppa;
- }
- us->ppa_id = ppa_id;
- us->ppa = us;
- us->next = 0;
- us->nextppa = *usp;
- *usp = us;
- us->flags |= US_CONTROL;
- us->npmode = NPMODE_PASS;
-
- us->mtu = PPP_MTU;
- us->mru = PPP_MRU;
-
-#ifdef SOL2
- /*
- * Create a kstats record for our statistics, so netstat -i works.
- */
- if (us->kstats == 0) {
- char unit[32];
-
- sprintf(unit, "ppp%d", us->ppa->ppa_id);
- us->kstats = kstat_create("ppp", us->ppa->ppa_id, unit,
- "net", KSTAT_TYPE_NAMED, 4, 0);
- if (us->kstats != 0) {
- kstat_named_t *kn = KSTAT_NAMED_PTR(us->kstats);
-
- strcpy(kn[0].name, "ipackets");
- kn[0].data_type = KSTAT_DATA_ULONG;
- strcpy(kn[1].name, "ierrors");
- kn[1].data_type = KSTAT_DATA_ULONG;
- strcpy(kn[2].name, "opackets");
- kn[2].data_type = KSTAT_DATA_ULONG;
- strcpy(kn[3].name, "oerrors");
- kn[3].data_type = KSTAT_DATA_ULONG;
- kstat_install(us->kstats);
- }
- }
-#endif /* SOL2 */
-
- *(int *)mp->b_cont->b_rptr = ppa_id;
- mp->b_datap->db_type = M_IOCACK;
- qreply(q, mp);
-}
-
-static void
-attach_ppa(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- upperstr_t *us, *t;
-
- us = (upperstr_t *) q->q_ptr;
- if (us == 0) {
- DPRINT("attach_ppa: q_ptr = 0!\n");
- return;
- }
-
-#ifndef NO_DLPI
- us->state = DL_UNBOUND;
-#endif
- for (t = us->ppa; t->next != 0; t = t->next)
- ;
- t->next = us;
- us->next = 0;
- if (mp->b_datap->db_type == M_IOCTL) {
- mp->b_datap->db_type = M_IOCACK;
- qreply(q, mp);
- } else {
-#ifndef NO_DLPI
- dlpi_ok(q, DL_ATTACH_REQ);
-#endif
- }
-}
-
-static void
-detach_ppa(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- upperstr_t *us, *t;
-
- us = (upperstr_t *) q->q_ptr;
- if (us == 0) {
- DPRINT("detach_ppa: q_ptr = 0!\n");
- return;
- }
-
- for (t = us->ppa; t->next != 0; t = t->next)
- if (t->next == us) {
- t->next = us->next;
- break;
- }
- us->next = 0;
- us->ppa = 0;
-#ifndef NO_DLPI
- us->state = DL_UNATTACHED;
- dlpi_ok(q, DL_DETACH_REQ);
-#endif
-}
-
-/*
- * We call this with qwriter in order to give the upper queue procedures
- * the guarantee that the lower queue is not going to go away while
- * they are executing.
- */
-static void
-detach_lower(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- upperstr_t *us;
-
- us = (upperstr_t *) q->q_ptr;
- if (us == 0) {
- DPRINT("detach_lower: q_ptr = 0!\n");
- return;
- }
-
- LOCK_LOWER_W;
- us->lowerq->q_ptr = 0;
- RD(us->lowerq)->q_ptr = 0;
- us->lowerq = 0;
- UNLOCK_LOWER;
-
- /* Unblock streams which now feed back up the control stream. */
- qenable(us->q);
-
- mp->b_datap->db_type = M_IOCACK;
- qreply(q, mp);
-}
-
-static int
-pppuwsrv(q)
- queue_t *q;
-{
- upperstr_t *us, *as;
- mblk_t *mp;
-
- us = (upperstr_t *) q->q_ptr;
- if (us == 0) {
- DPRINT("pppuwsrv: q_ptr = 0!\n");
- return 0;
- }
-
- /*
- * If this is a control stream, then this service procedure
- * probably got enabled because of flow control in the lower
- * stream being enabled (or because of the lower stream going
- * away). Therefore we enable the service procedure of all
- * attached upper streams.
- */
- if (us->flags & US_CONTROL) {
- for (as = us->next; as != 0; as = as->next)
- qenable(WR(as->q));
- }
-
- /* Try to send on any data queued here. */
- us->flags &= ~US_BLOCKED;
- while ((mp = getq(q)) != 0) {
- if (!send_data(mp, us)) {
- putbq(q, mp);
- break;
- }
- }
-
- return 0;
-}
-
-/* should never get called... */
-static int
-ppplwput(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- putnext(q, mp);
- return 0;
-}
-
-static int
-ppplwsrv(q)
- queue_t *q;
-{
- queue_t *uq;
-
- /*
- * Flow control has back-enabled this stream:
- * enable the upper write service procedure for
- * the upper control stream for this lower stream.
- */
- LOCK_LOWER_R;
- uq = (queue_t *) q->q_ptr;
- if (uq != 0)
- qenable(uq);
- UNLOCK_LOWER;
- return 0;
-}
-
-/*
- * This should only get called for control streams.
- */
-static int
-pppurput(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- upperstr_t *ppa, *us;
- int proto, len;
- struct iocblk *iop;
-
- ppa = (upperstr_t *) q->q_ptr;
- if (ppa == 0) {
- DPRINT("pppurput: q_ptr = 0!\n");
- return 0;
- }
-
- switch (mp->b_datap->db_type) {
- case M_CTL:
- MT_ENTER(&ppa->stats_lock);
- switch (*mp->b_rptr) {
- case PPPCTL_IERROR:
-#ifdef INCR_IERRORS
- INCR_IERRORS(ppa);
-#endif
- ppa->stats.ppp_ierrors++;
- break;
- case PPPCTL_OERROR:
-#ifdef INCR_OERRORS
- INCR_OERRORS(ppa);
-#endif
- ppa->stats.ppp_oerrors++;
- break;
- }
- MT_EXIT(&ppa->stats_lock);
- freemsg(mp);
- break;
-
- case M_IOCACK:
- case M_IOCNAK:
- /*
- * Attempt to match up the response with the stream
- * that the request came from.
- */
- iop = (struct iocblk *) mp->b_rptr;
- for (us = ppa; us != 0; us = us->next)
- if (us->ioc_id == iop->ioc_id)
- break;
- if (us == 0)
- freemsg(mp);
- else
- putnext(us->q, mp);
- break;
-
- case M_HANGUP:
- /*
- * The serial device has hung up. We don't want to send
- * the M_HANGUP message up to pppd because that will stop
- * us from using the control stream any more. Instead we
- * send a zero-length message as an end-of-file indication.
- */
- freemsg(mp);
- mp = allocb(1, BPRI_HI);
- if (mp == 0) {
- DPRINT1("ppp/%d: couldn't allocate eof message!\n", ppa->mn);
- break;
- }
- putnext(ppa->q, mp);
- break;
-
- default:
- if (mp->b_datap->db_type == M_DATA) {
- len = msgdsize(mp);
- if (mp->b_wptr - mp->b_rptr < PPP_HDRLEN) {
- PULLUP(mp, PPP_HDRLEN);
- if (mp == 0) {
- DPRINT1("ppp_urput: msgpullup failed (len=%d)\n", len);
- break;
- }
- }
- MT_ENTER(&ppa->stats_lock);
- ppa->stats.ppp_ipackets++;
- ppa->stats.ppp_ibytes += len;
-#ifdef INCR_IPACKETS
- INCR_IPACKETS(ppa);
-#endif
- MT_EXIT(&ppa->stats_lock);
-
- proto = PPP_PROTOCOL(mp->b_rptr);
-
-#if defined(SOL2)
- /*
- * Should there be any promiscuous stream(s), send the data
- * up for each promiscuous stream that we recognize.
- */
- promisc_sendup(ppa, mp, proto, 1);
-#endif /* defined(SOL2) */
-
- if (proto < 0x8000 && (us = find_dest(ppa, proto)) != 0) {
- /*
- * A data packet for some network protocol.
- * Queue it on the upper stream for that protocol.
- * XXX could we just putnext it? (would require thought)
- * The rblocked flag is there to ensure that we keep
- * messages in order for each network protocol.
- */
- if (!pass_packet(us, mp, 0))
- break;
- if (!us->rblocked && !canput(us->q))
- us->rblocked = 1;
- if (!us->rblocked)
- putq(us->q, mp);
- else
- putq(q, mp);
- break;
- }
- }
- /*
- * A control frame, a frame for an unknown protocol,
- * or some other message type.
- * Send it up to pppd via the control stream.
- */
- if (queclass(mp) == QPCTL || canputnext(ppa->q))
- putnext(ppa->q, mp);
- else
- putq(q, mp);
- break;
- }
-
- return 0;
-}
-
-static int
-pppursrv(q)
- queue_t *q;
-{
- upperstr_t *us, *as;
- mblk_t *mp, *hdr;
-#ifndef NO_DLPI
- dl_unitdata_ind_t *ud;
-#endif
- int proto;
-
- us = (upperstr_t *) q->q_ptr;
- if (us == 0) {
- DPRINT("pppursrv: q_ptr = 0!\n");
- return 0;
- }
-
- if (us->flags & US_CONTROL) {
- /*
- * A control stream.
- * If there is no lower queue attached, run the write service
- * routines of other upper streams attached to this PPA.
- */
- if (us->lowerq == 0) {
- as = us;
- do {
- if (as->flags & US_BLOCKED)
- qenable(WR(as->q));
- as = as->next;
- } while (as != 0);
- }
-
- /*
- * Messages get queued on this stream's read queue if they
- * can't be queued on the read queue of the attached stream
- * that they are destined for. This is for flow control -
- * when this queue fills up, the lower read put procedure will
- * queue messages there and the flow control will propagate
- * down from there.
- */
- while ((mp = getq(q)) != 0) {
- proto = PPP_PROTOCOL(mp->b_rptr);
- if (proto < 0x8000 && (as = find_dest(us, proto)) != 0) {
- if (!canput(as->q))
- break;
- putq(as->q, mp);
- } else {
- if (!canputnext(q))
- break;
- putnext(q, mp);
- }
- }
- if (mp) {
- putbq(q, mp);
- } else {
- /* can now put stuff directly on network protocol streams again */
- for (as = us->next; as != 0; as = as->next)
- as->rblocked = 0;
- }
-
- /*
- * If this stream has a lower stream attached,
- * enable the read queue's service routine.
- * XXX we should really only do this if the queue length
- * has dropped below the low-water mark.
- */
- if (us->lowerq != 0)
- qenable(RD(us->lowerq));
-
- } else {
- /*
- * A network protocol stream. Put a DLPI header on each
- * packet and send it on.
- * (Actually, it seems that the IP module will happily
- * accept M_DATA messages without the DL_UNITDATA_IND header.)
- */
- while ((mp = getq(q)) != 0) {
- if (!canputnext(q)) {
- putbq(q, mp);
- break;
- }
-#ifndef NO_DLPI
- proto = PPP_PROTOCOL(mp->b_rptr);
- mp->b_rptr += PPP_HDRLEN;
- hdr = allocb(sizeof(dl_unitdata_ind_t) + 2 * sizeof(uint),
- BPRI_MED);
- if (hdr == 0) {
- /* XXX should put it back and use bufcall */
- freemsg(mp);
- continue;
- }
- hdr->b_datap->db_type = M_PROTO;
- ud = (dl_unitdata_ind_t *) hdr->b_wptr;
- hdr->b_wptr += sizeof(dl_unitdata_ind_t) + 2 * sizeof(uint);
- hdr->b_cont = mp;
- ud->dl_primitive = DL_UNITDATA_IND;
- ud->dl_dest_addr_length = sizeof(uint);
- ud->dl_dest_addr_offset = sizeof(dl_unitdata_ind_t);
- ud->dl_src_addr_length = sizeof(uint);
- ud->dl_src_addr_offset = ud->dl_dest_addr_offset + sizeof(uint);
-#if DL_CURRENT_VERSION >= 2
- ud->dl_group_address = 0;
-#endif
- /* Send the DLPI client the data with the SAP they requested,
- (e.g. ETHERTYPE_IP) rather than the PPP protocol number
- (e.g. PPP_IP) */
- ((uint *)(ud + 1))[0] = us->req_sap; /* dest SAP */
- ((uint *)(ud + 1))[1] = us->req_sap; /* src SAP */
- putnext(q, hdr);
-#else /* NO_DLPI */
- putnext(q, mp);
-#endif /* NO_DLPI */
- }
- /*
- * Now that we have consumed some packets from this queue,
- * enable the control stream's read service routine so that we
- * can process any packets for us that might have got queued
- * there for flow control reasons.
- */
- if (us->ppa)
- qenable(us->ppa->q);
- }
-
- return 0;
-}
-
-static upperstr_t *
-find_dest(ppa, proto)
- upperstr_t *ppa;
- int proto;
-{
- upperstr_t *us;
-
- for (us = ppa->next; us != 0; us = us->next)
- if (proto == us->sap)
- break;
- return us;
-}
-
-#if defined (SOL2)
-/*
- * Test upstream promiscuous conditions. As of now, only pass IPv4 and
- * Ipv6 packets upstream (let PPP packets be decoded elsewhere).
- */
-static upperstr_t *
-find_promisc(us, proto)
- upperstr_t *us;
- int proto;
-{
-
- if ((proto != PPP_IP) && (proto != PPP_IPV6))
- return (upperstr_t *)0;
-
- for ( ; us; us = us->next) {
- if ((us->flags & US_PROMISC) && (us->state == DL_IDLE))
- return us;
- }
-
- return (upperstr_t *)0;
-}
-
-/*
- * Prepend an empty Ethernet header to msg for snoop, et al.
- */
-static mblk_t *
-prepend_ether(us, mp, proto)
- upperstr_t *us;
- mblk_t *mp;
- int proto;
-{
- mblk_t *eh;
- int type;
-
- if ((eh = allocb(sizeof(struct ether_header), BPRI_HI)) == 0) {
- freemsg(mp);
- return (mblk_t *)0;
- }
-
- if (proto == PPP_IP)
- type = ETHERTYPE_IP;
- else if (proto == PPP_IPV6)
- type = ETHERTYPE_IPV6;
- else
- type = proto; /* What else? Let decoder decide */
-
- eh->b_wptr += sizeof(struct ether_header);
- bzero((caddr_t)eh->b_rptr, sizeof(struct ether_header));
- ((struct ether_header *)eh->b_rptr)->ether_type = htons((short)type);
- eh->b_cont = mp;
- return (eh);
-}
-
-/*
- * Prepend DL_UNITDATA_IND mblk to msg
- */
-static mblk_t *
-prepend_udind(us, mp, proto)
- upperstr_t *us;
- mblk_t *mp;
- int proto;
-{
- dl_unitdata_ind_t *dlu;
- mblk_t *dh;
- size_t size;
-
- size = sizeof(dl_unitdata_ind_t);
- if ((dh = allocb(size, BPRI_MED)) == 0) {
- freemsg(mp);
- return (mblk_t *)0;
- }
-
- dh->b_datap->db_type = M_PROTO;
- dh->b_wptr = dh->b_datap->db_lim;
- dh->b_rptr = dh->b_wptr - size;
-
- dlu = (dl_unitdata_ind_t *)dh->b_rptr;
- dlu->dl_primitive = DL_UNITDATA_IND;
- dlu->dl_dest_addr_length = 0;
- dlu->dl_dest_addr_offset = sizeof(dl_unitdata_ind_t);
- dlu->dl_src_addr_length = 0;
- dlu->dl_src_addr_offset = sizeof(dl_unitdata_ind_t);
- dlu->dl_group_address = 0;
-
- dh->b_cont = mp;
- return (dh);
-}
-
-/*
- * For any recognized promiscuous streams, send data upstream
- */
-static void
-promisc_sendup(ppa, mp, proto, skip)
- upperstr_t *ppa;
- mblk_t *mp;
- int proto, skip;
-{
- mblk_t *dup_mp, *dup_dup_mp;
- upperstr_t *prus, *nprus;
-
- if ((prus = find_promisc(ppa, proto)) != 0) {
- if (dup_mp = dupmsg(mp)) {
-
- if (skip)
- dup_mp->b_rptr += PPP_HDRLEN;
-
- for ( ; nprus = find_promisc(prus->next, proto);
- prus = nprus) {
-
- if (dup_dup_mp = dupmsg(dup_mp)) {
- if (canputnext(prus->q)) {
- if (prus->flags & US_RAWDATA) {
- dup_dup_mp = prepend_ether(prus, dup_dup_mp, proto);
- putnext(prus->q, dup_dup_mp);
- } else {
- dup_dup_mp = prepend_udind(prus, dup_dup_mp, proto);
- putnext(prus->q, dup_dup_mp);
- }
- } else {
- DPRINT("ppp_urput: data to promisc q dropped\n");
- freemsg(dup_dup_mp);
- }
- }
- }
-
- if (canputnext(prus->q)) {
- if (prus->flags & US_RAWDATA) {
- dup_mp = prepend_ether(prus, dup_mp, proto);
- putnext(prus->q, dup_mp);
- } else {
- dup_mp = prepend_udind(prus, dup_mp, proto);
- putnext(prus->q, dup_mp);
- }
- } else {
- DPRINT("ppp_urput: data to promisc q dropped\n");
- freemsg(dup_mp);
- }
- }
- }
-}
-#endif /* defined(SOL2) */
-
-/*
- * We simply put the message on to the associated upper control stream
- * (either here or in ppplrsrv). That way we enter the perimeters
- * before looking through the list of attached streams to decide which
- * stream it should go up.
- */
-static int
-ppplrput(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- queue_t *uq;
- struct iocblk *iop;
-
- switch (mp->b_datap->db_type) {
- case M_IOCTL:
- iop = (struct iocblk *) mp->b_rptr;
- iop->ioc_error = EINVAL;
- mp->b_datap->db_type = M_IOCNAK;
- qreply(q, mp);
- return 0;
- case M_FLUSH:
- if (*mp->b_rptr & FLUSHR)
- flushq(q, FLUSHDATA);
- if (*mp->b_rptr & FLUSHW) {
- *mp->b_rptr &= ~FLUSHR;
- qreply(q, mp);
- } else
- freemsg(mp);
- return 0;
- }
-
- /*
- * If we can't get the lower lock straight away, queue this one
- * rather than blocking, to avoid the possibility of deadlock.
- */
- if (!TRYLOCK_LOWER_R) {
- putq(q, mp);
- return 0;
- }
-
- /*
- * Check that we're still connected to the driver.
- */
- uq = (queue_t *) q->q_ptr;
- if (uq == 0) {
- UNLOCK_LOWER;
- DPRINT1("ppplrput: q = %x, uq = 0??\n", q);
- freemsg(mp);
- return 0;
- }
-
- /*
- * Try to forward the message to the put routine for the upper
- * control stream for this lower stream.
- * If there are already messages queued here, queue this one so
- * they don't get out of order.
- */
- if (queclass(mp) == QPCTL || (qsize(q) == 0 && canput(uq)))
- put(uq, mp);
- else
- putq(q, mp);
-
- UNLOCK_LOWER;
- return 0;
-}
-
-static int
-ppplrsrv(q)
- queue_t *q;
-{
- mblk_t *mp;
- queue_t *uq;
-
- /*
- * Packets get queued here for flow control reasons
- * or if the lrput routine couldn't get the lower lock
- * without blocking.
- */
- LOCK_LOWER_R;
- uq = (queue_t *) q->q_ptr;
- if (uq == 0) {
- UNLOCK_LOWER;
- flushq(q, FLUSHALL);
- DPRINT1("ppplrsrv: q = %x, uq = 0??\n", q);
- return 0;
- }
- while ((mp = getq(q)) != 0) {
- if (queclass(mp) == QPCTL || canput(uq))
- put(uq, mp);
- else {
- putbq(q, mp);
- break;
- }
- }
- UNLOCK_LOWER;
- return 0;
-}
-
-static int
-putctl2(q, type, code, val)
- queue_t *q;
- int type, code, val;
-{
- mblk_t *mp;
-
- mp = allocb(2, BPRI_HI);
- if (mp == 0)
- return 0;
- mp->b_datap->db_type = type;
- mp->b_wptr[0] = code;
- mp->b_wptr[1] = val;
- mp->b_wptr += 2;
- putnext(q, mp);
- return 1;
-}
-
-static int
-putctl4(q, type, code, val)
- queue_t *q;
- int type, code, val;
-{
- mblk_t *mp;
-
- mp = allocb(4, BPRI_HI);
- if (mp == 0)
- return 0;
- mp->b_datap->db_type = type;
- mp->b_wptr[0] = code;
- ((short *)mp->b_wptr)[1] = val;
- mp->b_wptr += 4;
- putnext(q, mp);
- return 1;
-}
-
-static void
-debug_dump(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- upperstr_t *us;
- queue_t *uq, *lq;
-
- DPRINT("ppp upper streams:\n");
- for (us = minor_devs; us != 0; us = us->nextmn) {
- uq = us->q;
- DPRINT3(" %d: q=%x rlev=%d",
- us->mn, uq, (uq? qsize(uq): 0));
- DPRINT3(" wlev=%d flags=0x%b", (uq? qsize(WR(uq)): 0),
- us->flags, "\020\1priv\2control\3blocked\4last");
- DPRINT3(" state=%x sap=%x req_sap=%x", us->state, us->sap,
- us->req_sap);
- if (us->ppa == 0)
- DPRINT(" ppa=?\n");
- else
- DPRINT1(" ppa=%d\n", us->ppa->ppa_id);
- if (us->flags & US_CONTROL) {
- lq = us->lowerq;
- DPRINT3(" control for %d lq=%x rlev=%d",
- us->ppa_id, lq, (lq? qsize(RD(lq)): 0));
- DPRINT3(" wlev=%d mru=%d mtu=%d\n",
- (lq? qsize(lq): 0), us->mru, us->mtu);
- }
- }
- mp->b_datap->db_type = M_IOCACK;
- qreply(q, mp);
-}
-
-#ifdef FILTER_PACKETS
-#include <netinet/in_systm.h>
-#include <netinet/ip.h>
-#include <netinet/udp.h>
-#include <netinet/tcp.h>
-
-#define MAX_IPHDR 128 /* max TCP/IP header size */
-
-
-/* The following table contains a hard-coded list of protocol/port pairs.
- * Any matching packets are either discarded unconditionally, or,
- * if ok_if_link_up is non-zero when a connection does not currently exist
- * (i.e., they go through if the connection is present, but never initiate
- * a dial-out).
- * This idea came from a post by dm@garage.uun.org (David Mazieres)
- */
-static struct pktfilt_tab {
- int proto;
- u_short port;
- u_short ok_if_link_up;
-} pktfilt_tab[] = {
- { IPPROTO_UDP, 520, 1 }, /* RIP, ok to pass if link is up */
- { IPPROTO_UDP, 123, 1 }, /* NTP, don't keep up the link for it */
- { -1, 0, 0 } /* terminator entry has port == -1 */
-};
-
-
-static int
-ip_hard_filter(us, mp, outbound)
- upperstr_t *us;
- mblk_t *mp;
- int outbound;
-{
- struct ip *ip;
- struct pktfilt_tab *pft;
- mblk_t *temp_mp;
- int proto;
- int len, hlen;
-
-
- /* Note, the PPP header has already been pulled up in all cases */
- proto = PPP_PROTOCOL(mp->b_rptr);
- if (us->flags & US_DBGLOG)
- DPRINT3("ppp/%d: filter, proto=0x%x, out=%d\n", us->mn, proto, outbound);
-
- switch (proto)
- {
- case PPP_IP:
- if ((mp->b_wptr - mp->b_rptr) == PPP_HDRLEN && mp->b_cont != 0) {
- temp_mp = mp->b_cont;
- len = msgdsize(temp_mp);
- hlen = (len < MAX_IPHDR) ? len : MAX_IPHDR;
- PULLUP(temp_mp, hlen);
- if (temp_mp == 0) {
- DPRINT2("ppp/%d: filter, pullup next failed, len=%d\n",
- us->mn, hlen);
- mp->b_cont = 0; /* PULLUP() freed the rest */
- freemsg(mp);
- return 0;
- }
- ip = (struct ip *)mp->b_cont->b_rptr;
- }
- else {
- len = msgdsize(mp);
- hlen = (len < (PPP_HDRLEN+MAX_IPHDR)) ? len : (PPP_HDRLEN+MAX_IPHDR);
- PULLUP(mp, hlen);
- if (mp == 0) {
- DPRINT2("ppp/%d: filter, pullup failed, len=%d\n",
- us->mn, hlen);
- return 0;
- }
- ip = (struct ip *)(mp->b_rptr + PPP_HDRLEN);
- }
-
- /* For IP traffic, certain packets (e.g., RIP) may be either
- * 1. ignored - dropped completely
- * 2. will not initiate a connection, but
- * will be passed if a connection is currently up.
- */
- for (pft=pktfilt_tab; pft->proto != -1; pft++) {
- if (ip->ip_p == pft->proto) {
- switch(pft->proto) {
- case IPPROTO_UDP:
- if (((struct udphdr *) &((int *)ip)[ip->ip_hl])->uh_dport
- == htons(pft->port)) goto endfor;
- break;
- case IPPROTO_TCP:
- if (((struct tcphdr *) &((int *)ip)[ip->ip_hl])->th_dport
- == htons(pft->port)) goto endfor;
- break;
- }
- }
- }
- endfor:
- if (pft->proto != -1) {
- if (us->flags & US_DBGLOG)
- DPRINT3("ppp/%d: found IP pkt, proto=0x%x (%d)\n",
- us->mn, pft->proto, pft->port);
- /* Discard if not connected, or if not pass_with_link_up */
- /* else, if link is up let go by, but don't update time */
- return pft->ok_if_link_up? -1: 0;
- }
- break;
- } /* end switch (proto) */
-
- return 1;
-}
-#endif /* FILTER_PACKETS */
-
diff --git a/mdk-stage1/ppp/modules/ppp_ahdlc.c b/mdk-stage1/ppp/modules/ppp_ahdlc.c
deleted file mode 100644
index d0b961258..000000000
--- a/mdk-stage1/ppp/modules/ppp_ahdlc.c
+++ /dev/null
@@ -1,878 +0,0 @@
-/*
- * ppp_ahdlc.c - STREAMS module for doing PPP asynchronous HDLC.
- *
- * Re-written by Adi Masputra <adi.masputra@sun.com>, based on
- * the original ppp_ahdlc.c
- *
- * Copyright (c) 2000 by Sun Microsystems, Inc.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies.
- *
- * SUN MAKES NO REPRESENTATION OR WARRANTIES ABOUT THE SUITABILITY OF
- * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
- * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
- * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
- * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES
- *
- * Copyright (c) 1994 The Australian National University.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies. This software is provided without any
- * warranty, express or implied. The Australian National University
- * makes no representations about the suitability of this software for
- * any purpose.
- *
- * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
- * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
- * THE AUSTRALIAN NATIONAL UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
- * OR MODIFICATIONS.
- *
- * $Id$
- */
-
-/*
- * This file is used under Solaris 2, SVR4, SunOS 4, and Digital UNIX.
- */
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/stream.h>
-#include <sys/errno.h>
-
-#ifdef SVR4
-#include <sys/conf.h>
-#include <sys/kmem.h>
-#include <sys/cmn_err.h>
-#include <sys/ddi.h>
-#else
-#include <sys/user.h>
-#ifdef __osf__
-#include <sys/cmn_err.h>
-#endif
-#endif /* SVR4 */
-
-#include <net/ppp_defs.h>
-#include <net/pppio.h>
-#include "ppp_mod.h"
-
-/*
- * Right now, mutex is only enabled for Solaris 2.x
- */
-#if defined(SOL2)
-#define USE_MUTEX
-#endif /* SOL2 */
-
-/*
- * intpointer_t and uintpointer_t are signed and unsigned integer types
- * large enough to hold any data pointer; that is, data pointers can be
- * assigned into or from these integer types without losing precision.
- * On recent Solaris releases, these types are defined in sys/int_types.h,
- * but not on SunOS 4.x or the earlier Solaris versions.
- */
-#if defined(_LP64) || defined(_I32LPx)
-typedef long intpointer_t;
-typedef unsigned long uintpointer_t;
-#else
-typedef int intpointer_t;
-typedef unsigned int uintpointer_t;
-#endif
-
-MOD_OPEN_DECL(ahdlc_open);
-MOD_CLOSE_DECL(ahdlc_close);
-static int ahdlc_wput __P((queue_t *, mblk_t *));
-static int ahdlc_rput __P((queue_t *, mblk_t *));
-static void ahdlc_encode __P((queue_t *, mblk_t *));
-static void ahdlc_decode __P((queue_t *, mblk_t *));
-static int msg_byte __P((mblk_t *, unsigned int));
-
-#if defined(SOL2)
-/*
- * Don't send HDLC start flag is last transmit is within 1.5 seconds -
- * FLAG_TIME is defined is microseconds
- */
-#define FLAG_TIME 1500
-#define ABS(x) (x >= 0 ? x : (-x))
-#endif /* SOL2 */
-
-/*
- * Extract byte i of message mp
- */
-#define MSG_BYTE(mp, i) ((i) < (mp)->b_wptr - (mp)->b_rptr? (mp)->b_rptr[i]: \
- msg_byte((mp), (i)))
-
-/*
- * Is this LCP packet one we have to transmit using LCP defaults?
- */
-#define LCP_USE_DFLT(mp) (1 <= (code = MSG_BYTE((mp), 4)) && code <= 7)
-
-/*
- * Standard STREAMS declarations
- */
-static struct module_info minfo = {
- 0x7d23, "ppp_ahdl", 0, INFPSZ, 32768, 512
-};
-
-static struct qinit rinit = {
- ahdlc_rput, NULL, ahdlc_open, ahdlc_close, NULL, &minfo, NULL
-};
-
-static struct qinit winit = {
- ahdlc_wput, NULL, NULL, NULL, NULL, &minfo, NULL
-};
-
-#if defined(SVR4) && !defined(SOL2)
-int phdldevflag = 0;
-#define ppp_ahdlcinfo phdlinfo
-#endif /* defined(SVR4) && !defined(SOL2) */
-
-struct streamtab ppp_ahdlcinfo = {
- &rinit, /* ptr to st_rdinit */
- &winit, /* ptr to st_wrinit */
- NULL, /* ptr to st_muxrinit */
- NULL, /* ptr to st_muxwinit */
-#if defined(SUNOS4)
- NULL /* ptr to ptr to st_modlist */
-#endif /* SUNOS4 */
-};
-
-#if defined(SUNOS4)
-int ppp_ahdlc_count = 0; /* open counter */
-#endif /* SUNOS4 */
-
-/*
- * Per-stream state structure
- */
-typedef struct ahdlc_state {
-#if defined(USE_MUTEX)
- kmutex_t lock; /* lock for this structure */
-#endif /* USE_MUTEX */
- int flags; /* link flags */
- mblk_t *rx_buf; /* ptr to receive buffer */
- int rx_buf_size; /* receive buffer size */
- ushort_t infcs; /* calculated rx HDLC FCS */
- u_int32_t xaccm[8]; /* 256-bit xmit ACCM */
- u_int32_t raccm; /* 32-bit rcv ACCM */
- int mtu; /* interface MTU */
- int mru; /* link MRU */
- int unit; /* current PPP unit number */
- struct pppstat stats; /* statistic structure */
-#if defined(SOL2)
- clock_t flag_time; /* time in usec between flags */
- clock_t lbolt; /* last updated lbolt */
-#endif /* SOL2 */
-} ahdlc_state_t;
-
-/*
- * Values for flags
- */
-#define ESCAPED 0x100 /* last saw escape char on input */
-#define IFLUSH 0x200 /* flushing input due to error */
-
-/*
- * RCV_B7_1, etc., defined in net/pppio.h, are stored in flags also.
- */
-#define RCV_FLAGS (RCV_B7_1|RCV_B7_0|RCV_ODDP|RCV_EVNP)
-
-/*
- * FCS lookup table as calculated by genfcstab.
- */
-static u_short fcstab[256] = {
- 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf,
- 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7,
- 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e,
- 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876,
- 0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd,
- 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5,
- 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c,
- 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974,
- 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb,
- 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3,
- 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a,
- 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72,
- 0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9,
- 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1,
- 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738,
- 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70,
- 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7,
- 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff,
- 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036,
- 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e,
- 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5,
- 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd,
- 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134,
- 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c,
- 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3,
- 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb,
- 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232,
- 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a,
- 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1,
- 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9,
- 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330,
- 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78
-};
-
-static u_int32_t paritytab[8] =
-{
- 0x96696996, 0x69969669, 0x69969669, 0x96696996,
- 0x69969669, 0x96696996, 0x96696996, 0x69969669
-};
-
-/*
- * STREAMS module open (entry) point
- */
-MOD_OPEN(ahdlc_open)
-{
- ahdlc_state_t *state;
-
- /*
- * Return if it's already opened
- */
- if (q->q_ptr) {
- return 0;
- }
-
- /*
- * This can only be opened as a module
- */
- if (sflag != MODOPEN) {
- return 0;
- }
-
- state = (ahdlc_state_t *) ALLOC_NOSLEEP(sizeof(ahdlc_state_t));
- if (state == 0)
- OPEN_ERROR(ENOSR);
- bzero((caddr_t) state, sizeof(ahdlc_state_t));
-
- q->q_ptr = (caddr_t) state;
- WR(q)->q_ptr = (caddr_t) state;
-
-#if defined(USE_MUTEX)
- mutex_init(&state->lock, NULL, MUTEX_DEFAULT, NULL);
- mutex_enter(&state->lock);
-#endif /* USE_MUTEX */
-
- state->xaccm[0] = ~0; /* escape 0x00 through 0x1f */
- state->xaccm[3] = 0x60000000; /* escape 0x7d and 0x7e */
- state->mru = PPP_MRU; /* default of 1500 bytes */
-#if defined(SOL2)
- state->flag_time = drv_usectohz(FLAG_TIME);
-#endif /* SOL2 */
-
-#if defined(USE_MUTEX)
- mutex_exit(&state->lock);
-#endif /* USE_MUTEX */
-
-#if defined(SUNOS4)
- ppp_ahdlc_count++;
-#endif /* SUNOS4 */
-
- qprocson(q);
-
- return 0;
-}
-
-/*
- * STREAMS module close (exit) point
- */
-MOD_CLOSE(ahdlc_close)
-{
- ahdlc_state_t *state;
-
- qprocsoff(q);
-
- state = (ahdlc_state_t *) q->q_ptr;
-
- if (state == 0) {
- DPRINT("state == 0 in ahdlc_close\n");
- return 0;
- }
-
-#if defined(USE_MUTEX)
- mutex_enter(&state->lock);
-#endif /* USE_MUTEX */
-
- if (state->rx_buf != 0) {
- freemsg(state->rx_buf);
- state->rx_buf = 0;
- }
-
-#if defined(USE_MUTEX)
- mutex_exit(&state->lock);
- mutex_destroy(&state->lock);
-#endif /* USE_MUTEX */
-
- FREE(q->q_ptr, sizeof(ahdlc_state_t));
- q->q_ptr = NULL;
- OTHERQ(q)->q_ptr = NULL;
-
-#if defined(SUNOS4)
- if (ppp_ahdlc_count)
- ppp_ahdlc_count--;
-#endif /* SUNOS4 */
-
- return 0;
-}
-
-/*
- * Write side put routine
- */
-static int
-ahdlc_wput(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- ahdlc_state_t *state;
- struct iocblk *iop;
- int error;
- mblk_t *np;
- struct ppp_stats *psp;
-
- state = (ahdlc_state_t *) q->q_ptr;
- if (state == 0) {
- DPRINT("state == 0 in ahdlc_wput\n");
- freemsg(mp);
- return 0;
- }
-
- switch (mp->b_datap->db_type) {
- case M_DATA:
- /*
- * A data packet - do character-stuffing and FCS, and
- * send it onwards.
- */
- ahdlc_encode(q, mp);
- freemsg(mp);
- break;
-
- case M_IOCTL:
- iop = (struct iocblk *) mp->b_rptr;
- error = EINVAL;
- switch (iop->ioc_cmd) {
- case PPPIO_XACCM:
- if ((iop->ioc_count < sizeof(u_int32_t)) ||
- (iop->ioc_count > sizeof(ext_accm))) {
- break;
- }
- if (mp->b_cont == 0) {
- DPRINT1("ahdlc_wput/%d: PPPIO_XACCM b_cont = 0!\n", state->unit);
- break;
- }
-#if defined(USE_MUTEX)
- mutex_enter(&state->lock);
-#endif /* USE_MUTEX */
- bcopy((caddr_t)mp->b_cont->b_rptr, (caddr_t)state->xaccm,
- iop->ioc_count);
- state->xaccm[2] &= ~0x40000000; /* don't escape 0x5e */
- state->xaccm[3] |= 0x60000000; /* do escape 0x7d, 0x7e */
-#if defined(USE_MUTEX)
- mutex_exit(&state->lock);
-#endif /* USE_MUTEX */
- iop->ioc_count = 0;
- error = 0;
- break;
-
- case PPPIO_RACCM:
- if (iop->ioc_count != sizeof(u_int32_t))
- break;
- if (mp->b_cont == 0) {
- DPRINT1("ahdlc_wput/%d: PPPIO_RACCM b_cont = 0!\n", state->unit);
- break;
- }
-#if defined(USE_MUTEX)
- mutex_enter(&state->lock);
-#endif /* USE_MUTEX */
- bcopy((caddr_t)mp->b_cont->b_rptr, (caddr_t)&state->raccm,
- sizeof(u_int32_t));
-#if defined(USE_MUTEX)
- mutex_exit(&state->lock);
-#endif /* USE_MUTEX */
- iop->ioc_count = 0;
- error = 0;
- break;
-
- case PPPIO_GCLEAN:
- np = allocb(sizeof(int), BPRI_HI);
- if (np == 0) {
- error = ENOSR;
- break;
- }
- if (mp->b_cont != 0)
- freemsg(mp->b_cont);
- mp->b_cont = np;
-#if defined(USE_MUTEX)
- mutex_enter(&state->lock);
-#endif /* USE_MUTEX */
- *(int *)np->b_wptr = state->flags & RCV_FLAGS;
-#if defined(USE_MUTEX)
- mutex_exit(&state->lock);
-#endif /* USE_MUTEX */
- np->b_wptr += sizeof(int);
- iop->ioc_count = sizeof(int);
- error = 0;
- break;
-
- case PPPIO_GETSTAT:
- np = allocb(sizeof(struct ppp_stats), BPRI_HI);
- if (np == 0) {
- error = ENOSR;
- break;
- }
- if (mp->b_cont != 0)
- freemsg(mp->b_cont);
- mp->b_cont = np;
- psp = (struct ppp_stats *) np->b_wptr;
- np->b_wptr += sizeof(struct ppp_stats);
- bzero((caddr_t)psp, sizeof(struct ppp_stats));
- psp->p = state->stats;
- iop->ioc_count = sizeof(struct ppp_stats);
- error = 0;
- break;
-
- case PPPIO_LASTMOD:
- /* we knew this anyway */
- error = 0;
- break;
-
- default:
- error = -1;
- break;
- }
-
- if (error < 0)
- putnext(q, mp);
- else if (error == 0) {
- mp->b_datap->db_type = M_IOCACK;
- qreply(q, mp);
- } else {
- mp->b_datap->db_type = M_IOCNAK;
- iop->ioc_count = 0;
- iop->ioc_error = error;
- qreply(q, mp);
- }
- break;
-
- case M_CTL:
- switch (*mp->b_rptr) {
- case PPPCTL_MTU:
-#if defined(USE_MUTEX)
- mutex_enter(&state->lock);
-#endif /* USE_MUTEX */
- state->mtu = ((unsigned short *)mp->b_rptr)[1];
-#if defined(USE_MUTEX)
- mutex_exit(&state->lock);
-#endif /* USE_MUTEX */
- freemsg(mp);
- break;
- case PPPCTL_MRU:
-#if defined(USE_MUTEX)
- mutex_enter(&state->lock);
-#endif /* USE_MUTEX */
- state->mru = ((unsigned short *)mp->b_rptr)[1];
-#if defined(USE_MUTEX)
- mutex_exit(&state->lock);
-#endif /* USE_MUTEX */
- freemsg(mp);
- break;
- case PPPCTL_UNIT:
-#if defined(USE_MUTEX)
- mutex_enter(&state->lock);
-#endif /* USE_MUTEX */
- state->unit = mp->b_rptr[1];
-#if defined(USE_MUTEX)
- mutex_exit(&state->lock);
-#endif /* USE_MUTEX */
- break;
- default:
- putnext(q, mp);
- }
- break;
-
- default:
- putnext(q, mp);
- }
-
- return 0;
-}
-
-/*
- * Read side put routine
- */
-static int
-ahdlc_rput(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- ahdlc_state_t *state;
-
- state = (ahdlc_state_t *) q->q_ptr;
- if (state == 0) {
- DPRINT("state == 0 in ahdlc_rput\n");
- freemsg(mp);
- return 0;
- }
-
- switch (mp->b_datap->db_type) {
- case M_DATA:
- ahdlc_decode(q, mp);
- freemsg(mp);
- break;
-
- case M_HANGUP:
-#if defined(USE_MUTEX)
- mutex_enter(&state->lock);
-#endif /* USE_MUTEX */
- if (state->rx_buf != 0) {
- /* XXX would like to send this up for debugging */
- freemsg(state->rx_buf);
- state->rx_buf = 0;
- }
- state->flags = IFLUSH;
-#if defined(USE_MUTEX)
- mutex_exit(&state->lock);
-#endif /* USE_MUTEX */
- putnext(q, mp);
- break;
-
- default:
- putnext(q, mp);
- }
- return 0;
-}
-
-/*
- * Extract bit c from map m, to determine if c needs to be escaped
- */
-#define IN_TX_MAP(c, m) ((m)[(c) >> 5] & (1 << ((c) & 0x1f)))
-
-static void
-ahdlc_encode(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- ahdlc_state_t *state;
- u_int32_t *xaccm, loc_xaccm[8];
- ushort_t fcs;
- size_t outmp_len;
- mblk_t *outmp, *tmp;
- uchar_t *dp, fcs_val;
- int is_lcp, code;
-#if defined(SOL2)
- clock_t lbolt;
-#endif /* SOL2 */
-
- if (msgdsize(mp) < 4) {
- return;
- }
-
- state = (ahdlc_state_t *)q->q_ptr;
-#if defined(USE_MUTEX)
- mutex_enter(&state->lock);
-#endif /* USE_MUTEX */
-
- /*
- * Allocate an output buffer large enough to handle a case where all
- * characters need to be escaped
- */
- outmp_len = (msgdsize(mp) << 1) + /* input block x 2 */
- (sizeof(fcs) << 2) + /* HDLC FCS x 4 */
- (sizeof(uchar_t) << 1); /* HDLC flags x 2 */
-
- outmp = allocb(outmp_len, BPRI_MED);
- if (outmp == NULL) {
- state->stats.ppp_oerrors++;
-#if defined(USE_MUTEX)
- mutex_exit(&state->lock);
-#endif /* USE_MUTEX */
- putctl1(RD(q)->q_next, M_CTL, PPPCTL_OERROR);
- return;
- }
-
-#if defined(SOL2)
- /*
- * Check if our last transmit happenned within flag_time, using
- * the system's LBOLT value in clock ticks
- */
- if (drv_getparm(LBOLT, &lbolt) != -1) {
- if (ABS((clock_t)lbolt - state->lbolt) > state->flag_time) {
- *outmp->b_wptr++ = PPP_FLAG;
- }
- state->lbolt = lbolt;
- } else {
- *outmp->b_wptr++ = PPP_FLAG;
- }
-#else
- /*
- * If the driver below still has a message to process, skip the
- * HDLC flag, otherwise, put one in the beginning
- */
- if (qsize(q->q_next) == 0) {
- *outmp->b_wptr++ = PPP_FLAG;
- }
-#endif
-
- /*
- * All control characters must be escaped for LCP packets with code
- * values between 1 (Conf-Req) and 7 (Code-Rej).
- */
- is_lcp = ((MSG_BYTE(mp, 0) == PPP_ALLSTATIONS) &&
- (MSG_BYTE(mp, 1) == PPP_UI) &&
- (MSG_BYTE(mp, 2) == (PPP_LCP >> 8)) &&
- (MSG_BYTE(mp, 3) == (PPP_LCP & 0xff)) &&
- LCP_USE_DFLT(mp));
-
- xaccm = state->xaccm;
- if (is_lcp) {
- bcopy((caddr_t)state->xaccm, (caddr_t)loc_xaccm, sizeof(loc_xaccm));
- loc_xaccm[0] = ~0; /* force escape on 0x00 through 0x1f */
- xaccm = loc_xaccm;
- }
-
- fcs = PPP_INITFCS; /* Initial FCS is 0xffff */
-
- /*
- * Process this block and the rest (if any) attached to the this one
- */
- for (tmp = mp; tmp; tmp = tmp->b_cont) {
- if (tmp->b_datap->db_type == M_DATA) {
- for (dp = tmp->b_rptr; dp < tmp->b_wptr; dp++) {
- fcs = PPP_FCS(fcs, *dp);
- if (IN_TX_MAP(*dp, xaccm)) {
- *outmp->b_wptr++ = PPP_ESCAPE;
- *outmp->b_wptr++ = *dp ^ PPP_TRANS;
- } else {
- *outmp->b_wptr++ = *dp;
- }
- }
- } else {
- continue; /* skip if db_type is something other than M_DATA */
- }
- }
-
- /*
- * Append the HDLC FCS, making sure that escaping is done on any
- * necessary bytes
- */
- fcs_val = (fcs ^ 0xffff) & 0xff;
- if (IN_TX_MAP(fcs_val, xaccm)) {
- *outmp->b_wptr++ = PPP_ESCAPE;
- *outmp->b_wptr++ = fcs_val ^ PPP_TRANS;
- } else {
- *outmp->b_wptr++ = fcs_val;
- }
-
- fcs_val = ((fcs ^ 0xffff) >> 8) & 0xff;
- if (IN_TX_MAP(fcs_val, xaccm)) {
- *outmp->b_wptr++ = PPP_ESCAPE;
- *outmp->b_wptr++ = fcs_val ^ PPP_TRANS;
- } else {
- *outmp->b_wptr++ = fcs_val;
- }
-
- /*
- * And finally, append the HDLC flag, and send it away
- */
- *outmp->b_wptr++ = PPP_FLAG;
-
- state->stats.ppp_obytes += msgdsize(outmp);
- state->stats.ppp_opackets++;
-
-#if defined(USE_MUTEX)
- mutex_exit(&state->lock);
-#endif /* USE_MUTEX */
-
- putnext(q, outmp);
- return;
-}
-
-/*
- * Checks the 32-bit receive ACCM to see if the byte needs un-escaping
- */
-#define IN_RX_MAP(c, m) ((((unsigned int) (uchar_t) (c)) < 0x20) && \
- (m) & (1 << (c)))
-
-
-/*
- * Process received characters.
- */
-static void
-ahdlc_decode(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- ahdlc_state_t *state;
- mblk_t *om;
- uchar_t *dp;
- ushort_t fcs;
-#if defined(SOL2)
- mblk_t *zmp;
-#endif /* SOL2 */
-
-#if defined(SOL2)
- /*
- * In case the driver (or something below) doesn't send
- * data upstream in one message block, concatenate everything
- */
- if (!((mp->b_wptr - mp->b_rptr == msgdsize(mp)) &&
- ((intpointer_t)mp->b_rptr % sizeof(intpointer_t) == 0))) {
-
- zmp = msgpullup(mp, -1);
- freemsg(mp);
- mp = zmp;
- if (mp == 0)
- return;
- }
-#endif /* SOL2 */
-
- state = (ahdlc_state_t *) q->q_ptr;
-
-#if defined(USE_MUTEX)
- mutex_enter(&state->lock);
-#endif /* USE_MUTEX */
-
- state->stats.ppp_ibytes += msgdsize(mp);
-
- for (dp = mp->b_rptr; dp < mp->b_wptr; dp++) {
-
- /*
- * This should detect the lack of 8-bit communication channel
- * which is necessary for PPP to work. In addition, it also
- * checks on the parity.
- */
- if (*dp & 0x80)
- state->flags |= RCV_B7_1;
- else
- state->flags |= RCV_B7_0;
-
- if (paritytab[*dp >> 5] & (1 << (*dp & 0x1f)))
- state->flags |= RCV_ODDP;
- else
- state->flags |= RCV_EVNP;
-
- /*
- * So we have a HDLC flag ...
- */
- if (*dp == PPP_FLAG) {
-
- /*
- * If we think that it marks the beginning of the frame,
- * then continue to process the next octects
- */
- if ((state->flags & IFLUSH) ||
- (state->rx_buf == 0) ||
- (msgdsize(state->rx_buf) == 0)) {
-
- state->flags &= ~IFLUSH;
- continue;
- }
-
- /*
- * We get here because the above condition isn't true,
- * in which case the HDLC flag was there to mark the end
- * of the frame (or so we think)
- */
- om = state->rx_buf;
-
- if (state->infcs == PPP_GOODFCS) {
- state->stats.ppp_ipackets++;
- adjmsg(om, -PPP_FCSLEN);
- putnext(q, om);
- } else {
- DPRINT2("ppp%d: bad fcs (len=%d)\n",
- state->unit, msgdsize(state->rx_buf));
- freemsg(state->rx_buf);
- state->flags &= ~(IFLUSH | ESCAPED);
- state->stats.ppp_ierrors++;
- putctl1(q->q_next, M_CTL, PPPCTL_IERROR);
- }
-
- state->rx_buf = 0;
- continue;
- }
-
- if (state->flags & IFLUSH) {
- continue;
- }
-
- /*
- * Allocate a receive buffer, large enough to store a frame (after
- * un-escaping) of at least 1500 octets. If MRU is negotiated to
- * be more than the default, then allocate that much. In addition,
- * we add an extra 32-bytes for a fudge factor
- */
- if (state->rx_buf == 0) {
- state->rx_buf_size = (state->mru < PPP_MRU ? PPP_MRU : state->mru);
- state->rx_buf_size += (sizeof(u_int32_t) << 3);
- state->rx_buf = allocb(state->rx_buf_size, BPRI_MED);
-
- /*
- * If allocation fails, try again on the next frame
- */
- if (state->rx_buf == 0) {
- state->flags |= IFLUSH;
- continue;
- }
- state->flags &= ~(IFLUSH | ESCAPED);
- state->infcs = PPP_INITFCS;
- }
-
- if (*dp == PPP_ESCAPE) {
- state->flags |= ESCAPED;
- continue;
- }
-
- /*
- * Make sure we un-escape the necessary characters, as well as the
- * ones in our receive async control character map
- */
- if (state->flags & ESCAPED) {
- *dp ^= PPP_TRANS;
- state->flags &= ~ESCAPED;
- } else if (IN_RX_MAP(*dp, state->raccm))
- continue;
-
- /*
- * Unless the peer lied to us about the negotiated MRU, we should
- * never get a frame which is too long. If it happens, toss it away
- * and grab the next incoming one
- */
- if (msgdsize(state->rx_buf) < state->rx_buf_size) {
- state->infcs = PPP_FCS(state->infcs, *dp);
- *state->rx_buf->b_wptr++ = *dp;
- } else {
- DPRINT2("ppp%d: frame too long (%d)\n",
- state->unit, msgdsize(state->rx_buf));
- freemsg(state->rx_buf);
- state->rx_buf = 0;
- state->flags |= IFLUSH;
- }
- }
-
-#if defined(USE_MUTEX)
- mutex_exit(&state->lock);
-#endif /* USE_MUTEX */
-}
-
-static int
-msg_byte(mp, i)
- mblk_t *mp;
- unsigned int i;
-{
- while (mp != 0 && i >= mp->b_wptr - mp->b_rptr)
- mp = mp->b_cont;
- if (mp == 0)
- return -1;
- return mp->b_rptr[i];
-}
diff --git a/mdk-stage1/ppp/modules/ppp_comp.c b/mdk-stage1/ppp/modules/ppp_comp.c
deleted file mode 100644
index f6eef5ab1..000000000
--- a/mdk-stage1/ppp/modules/ppp_comp.c
+++ /dev/null
@@ -1,1126 +0,0 @@
-/*
- * ppp_comp.c - STREAMS module for kernel-level compression and CCP support.
- *
- * Copyright (c) 1994 The Australian National University.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies. This software is provided without any
- * warranty, express or implied. The Australian National University
- * makes no representations about the suitability of this software for
- * any purpose.
- *
- * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
- * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
- * THE AUSTRALIAN NATIONAL UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
- * OR MODIFICATIONS.
- *
- * $Id$
- */
-
-/*
- * This file is used under SVR4, Solaris 2, SunOS 4, and Digital UNIX.
- */
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/errno.h>
-#include <sys/stream.h>
-
-#ifdef SVR4
-#include <sys/conf.h>
-#include <sys/cmn_err.h>
-#include <sys/ddi.h>
-#else
-#include <sys/user.h>
-#ifdef __osf__
-#include <sys/cmn_err.h>
-#endif
-#endif /* SVR4 */
-
-#include <net/ppp_defs.h>
-#include <net/pppio.h>
-#include "ppp_mod.h"
-
-#ifdef __osf__
-#include <sys/mbuf.h>
-#include <sys/protosw.h>
-#endif
-
-#include <netinet/in.h>
-#include <netinet/in_systm.h>
-#include <netinet/ip.h>
-#include <net/vjcompress.h>
-
-#define PACKETPTR mblk_t *
-#include <net/ppp-comp.h>
-
-MOD_OPEN_DECL(ppp_comp_open);
-MOD_CLOSE_DECL(ppp_comp_close);
-static int ppp_comp_rput __P((queue_t *, mblk_t *));
-static int ppp_comp_rsrv __P((queue_t *));
-static int ppp_comp_wput __P((queue_t *, mblk_t *));
-static int ppp_comp_wsrv __P((queue_t *));
-static void ppp_comp_ccp __P((queue_t *, mblk_t *, int));
-static int msg_byte __P((mblk_t *, unsigned int));
-
-/* Extract byte i of message mp. */
-#define MSG_BYTE(mp, i) ((i) < (mp)->b_wptr - (mp)->b_rptr? (mp)->b_rptr[i]: \
- msg_byte((mp), (i)))
-
-/* Is this LCP packet one we have to transmit using LCP defaults? */
-#define LCP_USE_DFLT(mp) (1 <= (code = MSG_BYTE((mp), 4)) && code <= 7)
-
-#define PPP_COMP_ID 0xbadf
-static struct module_info minfo = {
-#ifdef PRIOQ
- PPP_COMP_ID, "ppp_comp", 0, INFPSZ, 16512, 16384,
-#else
- PPP_COMP_ID, "ppp_comp", 0, INFPSZ, 16384, 4096,
-#endif
-};
-
-static struct qinit r_init = {
- ppp_comp_rput, ppp_comp_rsrv, ppp_comp_open, ppp_comp_close,
- NULL, &minfo, NULL
-};
-
-static struct qinit w_init = {
- ppp_comp_wput, ppp_comp_wsrv, NULL, NULL, NULL, &minfo, NULL
-};
-
-#if defined(SVR4) && !defined(SOL2)
-int pcmpdevflag = 0;
-#define ppp_compinfo pcmpinfo
-#endif
-struct streamtab ppp_compinfo = {
- &r_init, &w_init, NULL, NULL
-};
-
-int ppp_comp_count; /* number of module instances in use */
-
-#ifdef __osf__
-
-static void ppp_comp_alloc __P((comp_state_t *));
-typedef struct memreq {
- unsigned char comp_opts[20];
- int cmd;
- int thread_status;
- char *returned_mem;
-} memreq_t;
-
-#endif
-
-typedef struct comp_state {
- int flags;
- int mru;
- int mtu;
- int unit;
- struct compressor *xcomp;
- void *xstate;
- struct compressor *rcomp;
- void *rstate;
- struct vjcompress vj_comp;
- int vj_last_ierrors;
- struct pppstat stats;
-#ifdef __osf__
- memreq_t memreq;
- thread_t thread;
-#endif
-} comp_state_t;
-
-
-#ifdef __osf__
-extern task_t first_task;
-#endif
-
-/* Bits in flags are as defined in pppio.h. */
-#define CCP_ERR (CCP_ERROR | CCP_FATALERROR)
-#define LAST_MOD 0x1000000 /* no ppp modules below us */
-#define DBGLOG 0x2000000 /* log debugging stuff */
-
-#define MAX_IPHDR 128 /* max TCP/IP header size */
-#define MAX_VJHDR 20 /* max VJ compressed header size (?) */
-
-#undef MIN /* just in case */
-#define MIN(a, b) ((a) < (b)? (a): (b))
-
-/*
- * List of compressors we know about.
- */
-
-#if DO_BSD_COMPRESS
-extern struct compressor ppp_bsd_compress;
-#endif
-#if DO_DEFLATE
-extern struct compressor ppp_deflate, ppp_deflate_draft;
-#endif
-
-struct compressor *ppp_compressors[] = {
-#if DO_BSD_COMPRESS
- &ppp_bsd_compress,
-#endif
-#if DO_DEFLATE
- &ppp_deflate,
- &ppp_deflate_draft,
-#endif
- NULL
-};
-
-/*
- * STREAMS module entry points.
- */
-MOD_OPEN(ppp_comp_open)
-{
- comp_state_t *cp;
-#ifdef __osf__
- thread_t thread;
-#endif
-
- if (q->q_ptr == NULL) {
- cp = (comp_state_t *) ALLOC_SLEEP(sizeof(comp_state_t));
- if (cp == NULL)
- OPEN_ERROR(ENOSR);
- bzero((caddr_t)cp, sizeof(comp_state_t));
- WR(q)->q_ptr = q->q_ptr = (caddr_t) cp;
- cp->mru = PPP_MRU;
- cp->mtu = PPP_MTU;
- cp->xstate = NULL;
- cp->rstate = NULL;
- vj_compress_init(&cp->vj_comp, -1);
-#ifdef __osf__
- if (!(thread = kernel_thread_w_arg(first_task, ppp_comp_alloc, (void *)cp)))
- OPEN_ERROR(ENOSR);
- cp->thread = thread;
-#endif
- ++ppp_comp_count;
- qprocson(q);
- }
- return 0;
-}
-
-MOD_CLOSE(ppp_comp_close)
-{
- comp_state_t *cp;
-
- qprocsoff(q);
- cp = (comp_state_t *) q->q_ptr;
- if (cp != NULL) {
- if (cp->xstate != NULL)
- (*cp->xcomp->comp_free)(cp->xstate);
- if (cp->rstate != NULL)
- (*cp->rcomp->decomp_free)(cp->rstate);
-#ifdef __osf__
- if (!cp->thread)
- printf("ppp_comp_close: NULL thread!\n");
- else
- thread_terminate(cp->thread);
-#endif
- FREE(cp, sizeof(comp_state_t));
- q->q_ptr = NULL;
- OTHERQ(q)->q_ptr = NULL;
- --ppp_comp_count;
- }
- return 0;
-}
-
-#ifdef __osf__
-
-/* thread for calling back to a compressor's memory allocator
- * Needed for Digital UNIX since it's VM can't handle requests
- * for large amounts of memory without blocking. The thread
- * provides a context in which we can call a memory allocator
- * that may block.
- */
-static void
-ppp_comp_alloc(comp_state_t *cp)
-{
- int len, cmd;
- unsigned char *compressor_options;
- thread_t thread;
- void *(*comp_allocator)();
-
-
-#if defined(MAJOR_VERSION) && (MAJOR_VERSION <= 2)
-
- /* In 2.x and earlier the argument gets passed
- * in the thread structure itself. Yuck.
- */
- thread = current_thread();
- cp = thread->reply_port;
- thread->reply_port = PORT_NULL;
-
-#endif
-
- for (;;) {
- assert_wait((vm_offset_t)&cp->memreq.thread_status, TRUE);
- thread_block();
-
- if (thread_should_halt(current_thread()))
- thread_halt_self();
- cmd = cp->memreq.cmd;
- compressor_options = &cp->memreq.comp_opts[0];
- len = compressor_options[1];
- if (cmd == PPPIO_XCOMP) {
- cp->memreq.returned_mem = cp->xcomp->comp_alloc(compressor_options, len);
- if (!cp->memreq.returned_mem) {
- cp->memreq.thread_status = ENOSR;
- } else {
- cp->memreq.thread_status = 0;
- }
- } else {
- cp->memreq.returned_mem = cp->rcomp->decomp_alloc(compressor_options, len);
- if (!cp->memreq.returned_mem) {
- cp->memreq.thread_status = ENOSR;
- } else {
- cp->memreq.thread_status = 0;
- }
- }
- }
-}
-
-#endif /* __osf__ */
-
-/* here's the deal with memory allocation under Digital UNIX.
- * Some other may also benefit from this...
- * We can't ask for huge chunks of memory in a context where
- * the caller can't be put to sleep (like, here.) The alloc
- * is likely to fail. Instead we do this: the first time we
- * get called, kick off a thread to do the allocation. Return
- * immediately to the caller with EAGAIN, as an indication that
- * they should send down the ioctl again. By the time the
- * second call comes in it's likely that the memory allocation
- * thread will have returned with the requested memory. We will
- * continue to return EAGAIN however until the thread has completed.
- * When it has, we return zero (and the memory) if the allocator
- * was successful and ENOSR otherwise.
- *
- * Callers of the RCOMP and XCOMP ioctls are encouraged (but not
- * required) to loop for some number of iterations with a small
- * delay in the loop body (for instance a 1/10-th second "sleep"
- * via select.)
- */
-static int
-ppp_comp_wput(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- struct iocblk *iop;
- comp_state_t *cp;
- int error, len, n;
- int flags, mask;
- mblk_t *np;
- struct compressor **comp;
- struct ppp_stats *psp;
- struct ppp_comp_stats *csp;
- unsigned char *opt_data;
- int nxslots, nrslots;
-
- cp = (comp_state_t *) q->q_ptr;
- if (cp == 0) {
- DPRINT("cp == 0 in ppp_comp_wput\n");
- freemsg(mp);
- return 0;
- }
-
- switch (mp->b_datap->db_type) {
-
- case M_DATA:
- putq(q, mp);
- break;
-
- case M_IOCTL:
- iop = (struct iocblk *) mp->b_rptr;
- error = EINVAL;
- switch (iop->ioc_cmd) {
-
- case PPPIO_CFLAGS:
- /* set/get CCP state */
- if (iop->ioc_count != 2 * sizeof(int))
- break;
- if (mp->b_cont == 0) {
- DPRINT1("ppp_comp_wput/%d: PPPIO_CFLAGS b_cont = 0!\n", cp->unit);
- break;
- }
- flags = ((int *) mp->b_cont->b_rptr)[0];
- mask = ((int *) mp->b_cont->b_rptr)[1];
- cp->flags = (cp->flags & ~mask) | (flags & mask);
- if ((mask & CCP_ISOPEN) && (flags & CCP_ISOPEN) == 0) {
- if (cp->xstate != NULL) {
- (*cp->xcomp->comp_free)(cp->xstate);
- cp->xstate = NULL;
- }
- if (cp->rstate != NULL) {
- (*cp->rcomp->decomp_free)(cp->rstate);
- cp->rstate = NULL;
- }
- cp->flags &= ~CCP_ISUP;
- }
- error = 0;
- iop->ioc_count = sizeof(int);
- ((int *) mp->b_cont->b_rptr)[0] = cp->flags;
- mp->b_cont->b_wptr = mp->b_cont->b_rptr + sizeof(int);
- break;
-
- case PPPIO_VJINIT:
- /*
- * Initialize VJ compressor/decompressor
- */
- if (iop->ioc_count != 2)
- break;
- if (mp->b_cont == 0) {
- DPRINT1("ppp_comp_wput/%d: PPPIO_VJINIT b_cont = 0!\n", cp->unit);
- break;
- }
- nxslots = mp->b_cont->b_rptr[0] + 1;
- nrslots = mp->b_cont->b_rptr[1] + 1;
- if (nxslots > MAX_STATES || nrslots > MAX_STATES)
- break;
- vj_compress_init(&cp->vj_comp, nxslots);
- cp->vj_last_ierrors = cp->stats.ppp_ierrors;
- error = 0;
- iop->ioc_count = 0;
- break;
-
- case PPPIO_XCOMP:
- case PPPIO_RCOMP:
- if (iop->ioc_count <= 0)
- break;
- if (mp->b_cont == 0) {
- DPRINT1("ppp_comp_wput/%d: PPPIO_[XR]COMP b_cont = 0!\n", cp->unit);
- break;
- }
- opt_data = mp->b_cont->b_rptr;
- len = mp->b_cont->b_wptr - opt_data;
- if (len > iop->ioc_count)
- len = iop->ioc_count;
- if (opt_data[1] < 2 || opt_data[1] > len)
- break;
- for (comp = ppp_compressors; *comp != NULL; ++comp)
- if ((*comp)->compress_proto == opt_data[0]) {
- /* here's the handler! */
- error = 0;
-#ifndef __osf__
- if (iop->ioc_cmd == PPPIO_XCOMP) {
- /* A previous call may have fetched memory for a compressor
- * that's now being retired or reset. Free it using it's
- * mechanism for freeing stuff.
- */
- if (cp->xstate != NULL) {
- (*cp->xcomp->comp_free)(cp->xstate);
- cp->xstate = NULL;
- }
- cp->xcomp = *comp;
- cp->xstate = (*comp)->comp_alloc(opt_data, len);
- if (cp->xstate == NULL)
- error = ENOSR;
- } else {
- if (cp->rstate != NULL) {
- (*cp->rcomp->decomp_free)(cp->rstate);
- cp->rstate = NULL;
- }
- cp->rcomp = *comp;
- cp->rstate = (*comp)->decomp_alloc(opt_data, len);
- if (cp->rstate == NULL)
- error = ENOSR;
- }
-#else
- if ((error = cp->memreq.thread_status) != EAGAIN)
- if (iop->ioc_cmd == PPPIO_XCOMP) {
- if (cp->xstate) {
- (*cp->xcomp->comp_free)(cp->xstate);
- cp->xstate = 0;
- }
- /* sanity check for compressor options
- */
- if (sizeof (cp->memreq.comp_opts) < len) {
- printf("can't handle options for compressor %d (%d)\n", opt_data[0],
- opt_data[1]);
- cp->memreq.thread_status = ENOSR;
- cp->memreq.returned_mem = 0;
- }
- /* fill in request for the thread and kick it off
- */
- if (cp->memreq.thread_status == 0 && !cp->memreq.returned_mem) {
- bcopy(opt_data, cp->memreq.comp_opts, len);
- cp->memreq.cmd = PPPIO_XCOMP;
- cp->xcomp = *comp;
- error = cp->memreq.thread_status = EAGAIN;
- thread_wakeup((vm_offset_t)&cp->memreq.thread_status);
- } else {
- cp->xstate = cp->memreq.returned_mem;
- cp->memreq.returned_mem = 0;
- cp->memreq.thread_status = 0;
- }
- } else {
- if (cp->rstate) {
- (*cp->rcomp->decomp_free)(cp->rstate);
- cp->rstate = NULL;
- }
- if (sizeof (cp->memreq.comp_opts) < len) {
- printf("can't handle options for compressor %d (%d)\n", opt_data[0],
- opt_data[1]);
- cp->memreq.thread_status = ENOSR;
- cp->memreq.returned_mem = 0;
- }
- if (cp->memreq.thread_status == 0 && !cp->memreq.returned_mem) {
- bcopy(opt_data, cp->memreq.comp_opts, len);
- cp->memreq.cmd = PPPIO_RCOMP;
- cp->rcomp = *comp;
- error = cp->memreq.thread_status = EAGAIN;
- thread_wakeup((vm_offset_t)&cp->memreq.thread_status);
- } else {
- cp->rstate = cp->memreq.returned_mem;
- cp->memreq.returned_mem = 0;
- cp->memreq.thread_status = 0;
- }
- }
-#endif
- break;
- }
- iop->ioc_count = 0;
- break;
-
- case PPPIO_GETSTAT:
- if ((cp->flags & LAST_MOD) == 0) {
- error = -1; /* let the ppp_ahdl module handle it */
- break;
- }
- np = allocb(sizeof(struct ppp_stats), BPRI_HI);
- if (np == 0) {
- error = ENOSR;
- break;
- }
- if (mp->b_cont != 0)
- freemsg(mp->b_cont);
- mp->b_cont = np;
- psp = (struct ppp_stats *) np->b_wptr;
- np->b_wptr += sizeof(struct ppp_stats);
- iop->ioc_count = sizeof(struct ppp_stats);
- psp->p = cp->stats;
- psp->vj = cp->vj_comp.stats;
- error = 0;
- break;
-
- case PPPIO_GETCSTAT:
- np = allocb(sizeof(struct ppp_comp_stats), BPRI_HI);
- if (np == 0) {
- error = ENOSR;
- break;
- }
- if (mp->b_cont != 0)
- freemsg(mp->b_cont);
- mp->b_cont = np;
- csp = (struct ppp_comp_stats *) np->b_wptr;
- np->b_wptr += sizeof(struct ppp_comp_stats);
- iop->ioc_count = sizeof(struct ppp_comp_stats);
- bzero((caddr_t)csp, sizeof(struct ppp_comp_stats));
- if (cp->xstate != 0)
- (*cp->xcomp->comp_stat)(cp->xstate, &csp->c);
- if (cp->rstate != 0)
- (*cp->rcomp->decomp_stat)(cp->rstate, &csp->d);
- error = 0;
- break;
-
- case PPPIO_DEBUG:
- if (iop->ioc_count != sizeof(int))
- break;
- if (mp->b_cont == 0) {
- DPRINT1("ppp_comp_wput/%d: PPPIO_DEBUG b_cont = 0!\n", cp->unit);
- break;
- }
- n = *(int *)mp->b_cont->b_rptr;
- if (n == PPPDBG_LOG + PPPDBG_COMP) {
- DPRINT1("ppp_comp%d: debug log enabled\n", cp->unit);
- cp->flags |= DBGLOG;
- error = 0;
- iop->ioc_count = 0;
- } else {
- error = -1;
- }
- break;
-
- case PPPIO_LASTMOD:
- cp->flags |= LAST_MOD;
- error = 0;
- break;
-
- default:
- error = -1;
- break;
- }
-
- if (error < 0)
- putnext(q, mp);
- else if (error == 0) {
- mp->b_datap->db_type = M_IOCACK;
- qreply(q, mp);
- } else {
- mp->b_datap->db_type = M_IOCNAK;
- iop->ioc_error = error;
- iop->ioc_count = 0;
- qreply(q, mp);
- }
- break;
-
- case M_CTL:
- switch (*mp->b_rptr) {
- case PPPCTL_MTU:
- cp->mtu = ((unsigned short *)mp->b_rptr)[1];
- break;
- case PPPCTL_MRU:
- cp->mru = ((unsigned short *)mp->b_rptr)[1];
- break;
- case PPPCTL_UNIT:
- cp->unit = mp->b_rptr[1];
- break;
- }
- putnext(q, mp);
- break;
-
- default:
- putnext(q, mp);
- }
-
- return 0;
-}
-
-static int
-ppp_comp_wsrv(q)
- queue_t *q;
-{
- mblk_t *mp, *cmp = NULL;
- comp_state_t *cp;
- int len, proto, type, hlen, code;
- struct ip *ip;
- unsigned char *vjhdr, *dp;
-
- cp = (comp_state_t *) q->q_ptr;
- if (cp == 0) {
- DPRINT("cp == 0 in ppp_comp_wsrv\n");
- return 0;
- }
-
- while ((mp = getq(q)) != 0) {
- /* assert(mp->b_datap->db_type == M_DATA) */
-#ifdef PRIOQ
- if (!bcanputnext(q,mp->b_band))
-#else
- if (!canputnext(q))
-#endif PRIOQ
- {
- putbq(q, mp);
- break;
- }
-
- /*
- * First check the packet length and work out what the protocol is.
- */
- len = msgdsize(mp);
- if (len < PPP_HDRLEN) {
- DPRINT1("ppp_comp_wsrv: bogus short packet (%d)\n", len);
- freemsg(mp);
- cp->stats.ppp_oerrors++;
- putctl1(RD(q)->q_next, M_CTL, PPPCTL_OERROR);
- continue;
- }
- proto = (MSG_BYTE(mp, 2) << 8) + MSG_BYTE(mp, 3);
-
- /*
- * Make sure we've got enough data in the first mblk
- * and that we are its only user.
- */
- if (proto == PPP_CCP)
- hlen = len;
- else if (proto == PPP_IP)
- hlen = PPP_HDRLEN + MAX_IPHDR;
- else
- hlen = PPP_HDRLEN;
- if (hlen > len)
- hlen = len;
- if (mp->b_wptr < mp->b_rptr + hlen || mp->b_datap->db_ref > 1) {
- PULLUP(mp, hlen);
- if (mp == 0) {
- DPRINT1("ppp_comp_wsrv: pullup failed (%d)\n", hlen);
- cp->stats.ppp_oerrors++;
- putctl1(RD(q)->q_next, M_CTL, PPPCTL_OERROR);
- continue;
- }
- }
-
- /*
- * Do VJ compression if requested.
- */
- if (proto == PPP_IP && (cp->flags & COMP_VJC)) {
- ip = (struct ip *) (mp->b_rptr + PPP_HDRLEN);
- if (ip->ip_p == IPPROTO_TCP) {
- type = vj_compress_tcp(ip, len - PPP_HDRLEN, &cp->vj_comp,
- (cp->flags & COMP_VJCCID), &vjhdr);
- switch (type) {
- case TYPE_UNCOMPRESSED_TCP:
- mp->b_rptr[3] = proto = PPP_VJC_UNCOMP;
- break;
- case TYPE_COMPRESSED_TCP:
- dp = vjhdr - PPP_HDRLEN;
- dp[1] = mp->b_rptr[1]; /* copy control field */
- dp[0] = mp->b_rptr[0]; /* copy address field */
- dp[2] = 0; /* set protocol field */
- dp[3] = proto = PPP_VJC_COMP;
- mp->b_rptr = dp;
- break;
- }
- }
- }
-
- /*
- * Do packet compression if enabled.
- */
- if (proto == PPP_CCP)
- ppp_comp_ccp(q, mp, 0);
- else if (proto != PPP_LCP && (cp->flags & CCP_COMP_RUN)
- && cp->xstate != NULL) {
- len = msgdsize(mp);
- (*cp->xcomp->compress)(cp->xstate, &cmp, mp, len,
- (cp->flags & CCP_ISUP? cp->mtu + PPP_HDRLEN: 0));
- if (cmp != NULL) {
-#ifdef PRIOQ
- cmp->b_band=mp->b_band;
-#endif PRIOQ
- freemsg(mp);
- mp = cmp;
- }
- }
-
- /*
- * Do address/control and protocol compression if enabled.
- */
- if ((cp->flags & COMP_AC)
- && !(proto == PPP_LCP && LCP_USE_DFLT(mp))) {
- mp->b_rptr += 2; /* drop the address & ctrl fields */
- if (proto < 0x100 && (cp->flags & COMP_PROT))
- ++mp->b_rptr; /* drop the high protocol byte */
- } else if (proto < 0x100 && (cp->flags & COMP_PROT)) {
- /* shuffle up the address & ctrl fields */
- mp->b_rptr[2] = mp->b_rptr[1];
- mp->b_rptr[1] = mp->b_rptr[0];
- ++mp->b_rptr;
- }
-
- cp->stats.ppp_opackets++;
- cp->stats.ppp_obytes += msgdsize(mp);
- putnext(q, mp);
- }
-
- return 0;
-}
-
-static int
-ppp_comp_rput(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- comp_state_t *cp;
- struct iocblk *iop;
- struct ppp_stats *psp;
-
- cp = (comp_state_t *) q->q_ptr;
- if (cp == 0) {
- DPRINT("cp == 0 in ppp_comp_rput\n");
- freemsg(mp);
- return 0;
- }
-
- switch (mp->b_datap->db_type) {
-
- case M_DATA:
- putq(q, mp);
- break;
-
- case M_IOCACK:
- iop = (struct iocblk *) mp->b_rptr;
- switch (iop->ioc_cmd) {
- case PPPIO_GETSTAT:
- /*
- * Catch this on the way back from the ppp_ahdl module
- * so we can fill in the VJ stats.
- */
- if (mp->b_cont == 0 || iop->ioc_count != sizeof(struct ppp_stats))
- break;
- psp = (struct ppp_stats *) mp->b_cont->b_rptr;
- psp->vj = cp->vj_comp.stats;
- break;
- }
- putnext(q, mp);
- break;
-
- case M_CTL:
- switch (mp->b_rptr[0]) {
- case PPPCTL_IERROR:
- ++cp->stats.ppp_ierrors;
- break;
- case PPPCTL_OERROR:
- ++cp->stats.ppp_oerrors;
- break;
- }
- putnext(q, mp);
- break;
-
- default:
- putnext(q, mp);
- }
-
- return 0;
-}
-
-static int
-ppp_comp_rsrv(q)
- queue_t *q;
-{
- int proto, rv, i;
- mblk_t *mp, *dmp = NULL, *np;
- uchar_t *dp, *iphdr;
- comp_state_t *cp;
- int len, hlen, vjlen;
- u_int iphlen;
-
- cp = (comp_state_t *) q->q_ptr;
- if (cp == 0) {
- DPRINT("cp == 0 in ppp_comp_rsrv\n");
- return 0;
- }
-
- while ((mp = getq(q)) != 0) {
- /* assert(mp->b_datap->db_type == M_DATA) */
- if (!canputnext(q)) {
- putbq(q, mp);
- break;
- }
-
- len = msgdsize(mp);
- cp->stats.ppp_ibytes += len;
- cp->stats.ppp_ipackets++;
-
- /*
- * First work out the protocol and where the PPP header ends.
- */
- i = 0;
- proto = MSG_BYTE(mp, 0);
- if (proto == PPP_ALLSTATIONS) {
- i = 2;
- proto = MSG_BYTE(mp, 2);
- }
- if ((proto & 1) == 0) {
- ++i;
- proto = (proto << 8) + MSG_BYTE(mp, i);
- }
- hlen = i + 1;
-
- /*
- * Now reconstruct a complete, contiguous PPP header at the
- * start of the packet.
- */
- if (hlen < ((cp->flags & DECOMP_AC)? 0: 2)
- + ((cp->flags & DECOMP_PROT)? 1: 2)) {
- /* count these? */
- goto bad;
- }
- if (mp->b_rptr + hlen > mp->b_wptr) {
- adjmsg(mp, hlen); /* XXX check this call */
- hlen = 0;
- }
- if (hlen != PPP_HDRLEN) {
- /*
- * We need to put some bytes on the front of the packet
- * to make a full-length PPP header.
- * If we can put them in *mp, we do, otherwise we
- * tack another mblk on the front.
- * XXX we really shouldn't need to carry around
- * the address and control at this stage.
- */
- dp = mp->b_rptr + hlen - PPP_HDRLEN;
- if (dp < mp->b_datap->db_base || mp->b_datap->db_ref > 1) {
- np = allocb(PPP_HDRLEN, BPRI_MED);
- if (np == 0)
- goto bad;
- np->b_cont = mp;
- mp->b_rptr += hlen;
- mp = np;
- dp = mp->b_wptr;
- mp->b_wptr += PPP_HDRLEN;
- } else
- mp->b_rptr = dp;
-
- dp[0] = PPP_ALLSTATIONS;
- dp[1] = PPP_UI;
- dp[2] = proto >> 8;
- dp[3] = proto;
- }
-
- /*
- * Now see if we have a compressed packet to decompress,
- * or a CCP packet to take notice of.
- */
- proto = PPP_PROTOCOL(mp->b_rptr);
- if (proto == PPP_CCP) {
- len = msgdsize(mp);
- if (mp->b_wptr < mp->b_rptr + len) {
- PULLUP(mp, len);
- if (mp == 0)
- goto bad;
- }
- ppp_comp_ccp(q, mp, 1);
- } else if (proto == PPP_COMP) {
- if ((cp->flags & CCP_ISUP)
- && (cp->flags & CCP_DECOMP_RUN) && cp->rstate
- && (cp->flags & CCP_ERR) == 0) {
- rv = (*cp->rcomp->decompress)(cp->rstate, mp, &dmp);
- switch (rv) {
- case DECOMP_OK:
- freemsg(mp);
- mp = dmp;
- if (mp == NULL) {
- /* no error, but no packet returned either. */
- continue;
- }
- break;
- case DECOMP_ERROR:
- cp->flags |= CCP_ERROR;
- ++cp->stats.ppp_ierrors;
- putctl1(q->q_next, M_CTL, PPPCTL_IERROR);
- break;
- case DECOMP_FATALERROR:
- cp->flags |= CCP_FATALERROR;
- ++cp->stats.ppp_ierrors;
- putctl1(q->q_next, M_CTL, PPPCTL_IERROR);
- break;
- }
- }
- } else if (cp->rstate && (cp->flags & CCP_DECOMP_RUN)) {
- (*cp->rcomp->incomp)(cp->rstate, mp);
- }
-
- /*
- * Now do VJ decompression.
- */
- proto = PPP_PROTOCOL(mp->b_rptr);
- if (proto == PPP_VJC_COMP || proto == PPP_VJC_UNCOMP) {
- len = msgdsize(mp) - PPP_HDRLEN;
- if ((cp->flags & DECOMP_VJC) == 0 || len <= 0)
- goto bad;
-
- /*
- * Advance past the ppp header.
- * Here we assume that the whole PPP header is in the first mblk.
- */
- np = mp;
- dp = np->b_rptr + PPP_HDRLEN;
- if (dp >= mp->b_wptr) {
- np = np->b_cont;
- dp = np->b_rptr;
- }
-
- /*
- * Make sure we have sufficient contiguous data at this point.
- */
- hlen = (proto == PPP_VJC_COMP)? MAX_VJHDR: MAX_IPHDR;
- if (hlen > len)
- hlen = len;
- if (np->b_wptr < dp + hlen || np->b_datap->db_ref > 1) {
- PULLUP(mp, hlen + PPP_HDRLEN);
- if (mp == 0)
- goto bad;
- np = mp;
- dp = np->b_rptr + PPP_HDRLEN;
- }
-
- if (proto == PPP_VJC_COMP) {
- /*
- * Decompress VJ-compressed packet.
- * First reset compressor if an input error has occurred.
- */
- if (cp->stats.ppp_ierrors != cp->vj_last_ierrors) {
- if (cp->flags & DBGLOG)
- DPRINT1("ppp%d: resetting VJ\n", cp->unit);
- vj_uncompress_err(&cp->vj_comp);
- cp->vj_last_ierrors = cp->stats.ppp_ierrors;
- }
-
- vjlen = vj_uncompress_tcp(dp, np->b_wptr - dp, len,
- &cp->vj_comp, &iphdr, &iphlen);
- if (vjlen < 0) {
- if (cp->flags & DBGLOG)
- DPRINT2("ppp%d: vj_uncomp_tcp failed, pkt len %d\n",
- cp->unit, len);
- ++cp->vj_last_ierrors; /* so we don't reset next time */
- goto bad;
- }
-
- /* drop ppp and vj headers off */
- if (mp != np) {
- freeb(mp);
- mp = np;
- }
- mp->b_rptr = dp + vjlen;
-
- /* allocate a new mblk for the ppp and ip headers */
- if ((np = allocb(iphlen + PPP_HDRLEN + 4, BPRI_MED)) == 0)
- goto bad;
- dp = np->b_rptr; /* prepend mblk with TCP/IP hdr */
- dp[0] = PPP_ALLSTATIONS; /* reconstruct PPP header */
- dp[1] = PPP_UI;
- dp[2] = PPP_IP >> 8;
- dp[3] = PPP_IP;
- bcopy((caddr_t)iphdr, (caddr_t)dp + PPP_HDRLEN, iphlen);
- np->b_wptr = dp + iphlen + PPP_HDRLEN;
- np->b_cont = mp;
-
- /* XXX there seems to be a bug which causes panics in strread
- if we make an mbuf with only the IP header in it :-( */
- if (mp->b_wptr - mp->b_rptr > 4) {
- bcopy((caddr_t)mp->b_rptr, (caddr_t)np->b_wptr, 4);
- mp->b_rptr += 4;
- np->b_wptr += 4;
- } else {
- bcopy((caddr_t)mp->b_rptr, (caddr_t)np->b_wptr,
- mp->b_wptr - mp->b_rptr);
- np->b_wptr += mp->b_wptr - mp->b_rptr;
- np->b_cont = mp->b_cont;
- freeb(mp);
- }
-
- mp = np;
-
- } else {
- /*
- * "Decompress" a VJ-uncompressed packet.
- */
- cp->vj_last_ierrors = cp->stats.ppp_ierrors;
- if (!vj_uncompress_uncomp(dp, hlen, &cp->vj_comp)) {
- if (cp->flags & DBGLOG)
- DPRINT2("ppp%d: vj_uncomp_uncomp failed, pkt len %d\n",
- cp->unit, len);
- ++cp->vj_last_ierrors; /* don't need to reset next time */
- goto bad;
- }
- mp->b_rptr[3] = PPP_IP; /* fix up the PPP protocol field */
- }
- }
-
- putnext(q, mp);
- continue;
-
- bad:
- if (mp != 0)
- freemsg(mp);
- cp->stats.ppp_ierrors++;
- putctl1(q->q_next, M_CTL, PPPCTL_IERROR);
- }
-
- return 0;
-}
-
-/*
- * Handle a CCP packet being sent or received.
- * Here all the data in the packet is in a single mbuf.
- */
-static void
-ppp_comp_ccp(q, mp, rcvd)
- queue_t *q;
- mblk_t *mp;
- int rcvd;
-{
- int len, clen;
- comp_state_t *cp;
- unsigned char *dp;
-
- len = msgdsize(mp);
- if (len < PPP_HDRLEN + CCP_HDRLEN)
- return;
-
- cp = (comp_state_t *) q->q_ptr;
- dp = mp->b_rptr + PPP_HDRLEN;
- len -= PPP_HDRLEN;
- clen = CCP_LENGTH(dp);
- if (clen > len)
- return;
-
- switch (CCP_CODE(dp)) {
- case CCP_CONFREQ:
- case CCP_TERMREQ:
- case CCP_TERMACK:
- cp->flags &= ~CCP_ISUP;
- break;
-
- case CCP_CONFACK:
- if ((cp->flags & (CCP_ISOPEN | CCP_ISUP)) == CCP_ISOPEN
- && clen >= CCP_HDRLEN + CCP_OPT_MINLEN
- && clen >= CCP_HDRLEN + CCP_OPT_LENGTH(dp + CCP_HDRLEN)) {
- if (!rcvd) {
- if (cp->xstate != NULL
- && (*cp->xcomp->comp_init)
- (cp->xstate, dp + CCP_HDRLEN, clen - CCP_HDRLEN,
- cp->unit, 0, ((cp->flags & DBGLOG) != 0)))
- cp->flags |= CCP_COMP_RUN;
- } else {
- if (cp->rstate != NULL
- && (*cp->rcomp->decomp_init)
- (cp->rstate, dp + CCP_HDRLEN, clen - CCP_HDRLEN,
- cp->unit, 0, cp->mru, ((cp->flags & DBGLOG) != 0)))
- cp->flags = (cp->flags & ~CCP_ERR) | CCP_DECOMP_RUN;
- }
- }
- break;
-
- case CCP_RESETACK:
- if (cp->flags & CCP_ISUP) {
- if (!rcvd) {
- if (cp->xstate && (cp->flags & CCP_COMP_RUN))
- (*cp->xcomp->comp_reset)(cp->xstate);
- } else {
- if (cp->rstate && (cp->flags & CCP_DECOMP_RUN)) {
- (*cp->rcomp->decomp_reset)(cp->rstate);
- cp->flags &= ~CCP_ERROR;
- }
- }
- }
- break;
- }
-}
-
-#if 0
-dump_msg(mp)
- mblk_t *mp;
-{
- dblk_t *db;
-
- while (mp != 0) {
- db = mp->b_datap;
- DPRINT2("mp=%x cont=%x ", mp, mp->b_cont);
- DPRINT3("rptr=%x wptr=%x datap=%x\n", mp->b_rptr, mp->b_wptr, db);
- DPRINT2(" base=%x lim=%x", db->db_base, db->db_lim);
- DPRINT2(" ref=%d type=%d\n", db->db_ref, db->db_type);
- mp = mp->b_cont;
- }
-}
-#endif
-
-static int
-msg_byte(mp, i)
- mblk_t *mp;
- unsigned int i;
-{
- while (mp != 0 && i >= mp->b_wptr - mp->b_rptr)
- mp = mp->b_cont;
- if (mp == 0)
- return -1;
- return mp->b_rptr[i];
-}
diff --git a/mdk-stage1/ppp/modules/ppp_mod.h b/mdk-stage1/ppp/modules/ppp_mod.h
deleted file mode 100644
index f0af00886..000000000
--- a/mdk-stage1/ppp/modules/ppp_mod.h
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * Miscellaneous definitions for PPP STREAMS modules.
- */
-
-/*
- * Macros for allocating and freeing kernel memory.
- */
-#ifdef SVR4 /* SVR4, including Solaris 2 */
-#include <sys/kmem.h>
-#define ALLOC_SLEEP(n) kmem_alloc((n), KM_SLEEP)
-#define ALLOC_NOSLEEP(n) kmem_alloc((n), KM_NOSLEEP)
-#define FREE(p, n) kmem_free((p), (n))
-#endif
-
-#ifdef SUNOS4
-#include <sys/kmem_alloc.h> /* SunOS 4.x */
-#define ALLOC_SLEEP(n) kmem_alloc((n), KMEM_SLEEP)
-#define ALLOC_NOSLEEP(n) kmem_alloc((n), KMEM_NOSLEEP)
-#define FREE(p, n) kmem_free((p), (n))
-#define NOTSUSER() (suser()? 0: EPERM)
-#define bcanputnext(q, band) canputnext((q))
-#endif /* SunOS 4 */
-
-#ifdef __osf__
-#include <sys/malloc.h>
-
-/* caution: this mirrors macros in sys/malloc.h, and uses interfaces
- * which are subject to change.
- * The problems are that:
- * - the official MALLOC macro wants the lhs of the assignment as an argument,
- * and it takes care of the assignment itself (yuck.)
- * - PPP insists on using "FREE" which conflicts with a macro of the same name.
- *
- */
-#ifdef BUCKETINDX /* V2.0 */
-#define ALLOC_SLEEP(n) (void *)malloc((u_long)(n), BUCKETP(n), M_DEVBUF, M_WAITOK)
-#define ALLOC_NOSLEEP(n) (void *)malloc((u_long)(n), BUCKETP(n), M_DEVBUF, M_NOWAIT)
-#else
-#define ALLOC_SLEEP(n) (void *)malloc((u_long)(n), BUCKETINDEX(n), M_DEVBUF, M_WAITOK)
-#define ALLOC_NOSLEEP(n) (void *)malloc((u_long)(n), BUCKETINDEX(n), M_DEVBUF, M_NOWAIT)
-#endif
-
-#define bcanputnext(q, band) canputnext((q))
-
-#ifdef FREE
-#undef FREE
-#endif
-#define FREE(p, n) free((void *)(p), M_DEVBUF)
-
-#define NO_DLPI 1
-
-#ifndef IFT_PPP
-#define IFT_PPP 0x17
-#endif
-
-#include <sys/proc.h>
-#define NOTSUSER() (suser(u.u_procp->p_rcred, &u.u_acflag) ? EPERM : 0)
-
-/* #include "ppp_osf.h" */
-
-#endif /* __osf__ */
-
-#ifdef AIX4
-#define ALLOC_SLEEP(n) xmalloc((n), 0, pinned_heap) /* AIX V4.x */
-#define ALLOC_NOSLEEP(n) xmalloc((n), 0, pinned_heap) /* AIX V4.x */
-#define FREE(p, n) xmfree((p), pinned_heap)
-#define NOTSUSER() (suser()? 0: EPERM)
-#endif /* AIX */
-
-/*
- * Macros for printing debugging stuff.
- */
-#ifdef DEBUG
-#if defined(SVR4) || defined(__osf__)
-#if defined(SNI)
-#include <sys/strlog.h>
-#define STRLOG_ID 4712
-#define DPRINT(f) strlog(STRLOG_ID, 0, 0, SL_TRACE, f)
-#define DPRINT1(f, a1) strlog(STRLOG_ID, 0, 0, SL_TRACE, f, a1)
-#define DPRINT2(f, a1, a2) strlog(STRLOG_ID, 0, 0, SL_TRACE, f, a1, a2)
-#define DPRINT3(f, a1, a2, a3) strlog(STRLOG_ID, 0, 0, SL_TRACE, f, a1, a2, a3)
-#else
-#define DPRINT(f) cmn_err(CE_CONT, f)
-#define DPRINT1(f, a1) cmn_err(CE_CONT, f, a1)
-#define DPRINT2(f, a1, a2) cmn_err(CE_CONT, f, a1, a2)
-#define DPRINT3(f, a1, a2, a3) cmn_err(CE_CONT, f, a1, a2, a3)
-#endif /* SNI */
-#else
-#define DPRINT(f) printf(f)
-#define DPRINT1(f, a1) printf(f, a1)
-#define DPRINT2(f, a1, a2) printf(f, a1, a2)
-#define DPRINT3(f, a1, a2, a3) printf(f, a1, a2, a3)
-#endif /* SVR4 or OSF */
-
-#else
-#define DPRINT(f) 0
-#define DPRINT1(f, a1) 0
-#define DPRINT2(f, a1, a2) 0
-#define DPRINT3(f, a1, a2, a3) 0
-#endif /* DEBUG */
-
-#ifndef SVR4
-typedef unsigned char uchar_t;
-typedef unsigned short ushort_t;
-#ifndef __osf__
-typedef int minor_t;
-#endif
-#endif
-
-/*
- * If we don't have multithreading support, define substitutes.
- */
-#ifndef D_MP
-# define qprocson(q)
-# define qprocsoff(q)
-# define put(q, mp) ((*(q)->q_qinfo->qi_putp)((q), (mp)))
-# define canputnext(q) canput((q)->q_next)
-# define qwriter(q, mp, func, scope) (func)((q), (mp))
-#endif
-
-#ifdef D_MP
-/* Use msgpullup if we have other multithreading support. */
-#define PULLUP(mp, len) \
- do { \
- mblk_t *np = msgpullup((mp), (len)); \
- freemsg((mp)); \
- mp = np; \
- } while (0)
-
-#else
-/* Use pullupmsg if we don't have any multithreading support. */
-#define PULLUP(mp, len) \
- do { \
- if (!pullupmsg((mp), (len))) { \
- freemsg((mp)); \
- mp = 0; \
- } \
- } while (0)
-#endif
-
-/*
- * How to declare the open and close procedures for a module.
- */
-#ifdef SVR4
-#define MOD_OPEN_DECL(name) \
-static int name __P((queue_t *, dev_t *, int, int, cred_t *))
-
-#define MOD_CLOSE_DECL(name) \
-static int name __P((queue_t *, int, cred_t *))
-
-#define MOD_OPEN(name) \
-static int name(q, devp, flag, sflag, credp) \
- queue_t *q; \
- dev_t *devp; \
- int flag, sflag; \
- cred_t *credp;
-
-#define MOD_CLOSE(name) \
-static int name(q, flag, credp) \
- queue_t *q; \
- int flag; \
- cred_t *credp;
-
-#define OPEN_ERROR(x) return (x)
-#define DRV_OPEN_OK(dev) return 0
-
-#define NOTSUSER() (drv_priv(credp))
-
-#else /* not SVR4 */
-#define MOD_OPEN_DECL(name) \
-static int name __P((queue_t *, int, int, int))
-
-#define MOD_CLOSE_DECL(name) \
-static int name __P((queue_t *, int))
-
-#define MOD_OPEN(name) \
-static int name(q, dev, flag, sflag) \
- queue_t *q; \
- int dev; \
- int flag, sflag;
-
-#define MOD_CLOSE(name) \
-static int name(q, flag) \
- queue_t *q; \
- int flag;
-
-#define OPEN_ERROR(x) { u.u_error = (x); return OPENFAIL; }
-#define DRV_OPEN_OK(dev) return (dev)
-
-#endif /* SVR4 */
diff --git a/mdk-stage1/ppp/modules/vjcompress.c b/mdk-stage1/ppp/modules/vjcompress.c
deleted file mode 100644
index 809b87231..000000000
--- a/mdk-stage1/ppp/modules/vjcompress.c
+++ /dev/null
@@ -1,587 +0,0 @@
-/*
- * Routines to compress and uncompess tcp packets (for transmission
- * over low speed serial lines.
- *
- * Copyright (c) 1989 Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by the University of California, Berkeley. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Van Jacobson (van@helios.ee.lbl.gov), Dec 31, 1989:
- * - Initial distribution.
- *
- * Modified June 1993 by Paul Mackerras, paulus@cs.anu.edu.au,
- * so that the entire packet being decompressed doesn't have
- * to be in contiguous memory (just the compressed header).
- */
-
-/*
- * This version is used under SunOS 4.x, Digital UNIX, AIX 4.x,
- * and SVR4 systems including Solaris 2.
- *
- * $Id$
- */
-
-#include <sys/types.h>
-#include <sys/param.h>
-
-#ifdef SVR4
-#ifndef __GNUC__
-#include <sys/byteorder.h> /* for ntohl, etc. */
-#else
-/* make sure we don't get the gnu "fixed" one! */
-#include "/usr/include/sys/byteorder.h"
-#endif
-#endif
-
-#ifdef __osf__
-#include <net/net_globals.h>
-#endif
-#include <netinet/in.h>
-
-#ifdef AIX4
-#define _NETINET_IN_SYSTM_H_
-typedef u_long n_long;
-#else
-#include <netinet/in_systm.h>
-#endif
-
-#include <netinet/ip.h>
-#include <netinet/tcp.h>
-
-#include <net/ppp_defs.h>
-#include <net/vjcompress.h>
-
-#ifndef VJ_NO_STATS
-#define INCR(counter) ++comp->stats.counter
-#else
-#define INCR(counter)
-#endif
-
-#define BCMP(p1, p2, n) bcmp((char *)(p1), (char *)(p2), (int)(n))
-#undef BCOPY
-#define BCOPY(p1, p2, n) bcopy((char *)(p1), (char *)(p2), (int)(n))
-#ifndef KERNEL
-#define ovbcopy bcopy
-#endif
-
-#ifdef __osf__
-#define getip_hl(base) (((base).ip_vhl)&0xf)
-#define getth_off(base) ((((base).th_xoff)&0xf0)>>4)
-
-#else
-#define getip_hl(base) ((base).ip_hl)
-#define getth_off(base) ((base).th_off)
-#endif
-
-void
-vj_compress_init(comp, max_state)
- struct vjcompress *comp;
- int max_state;
-{
- register u_int i;
- register struct cstate *tstate = comp->tstate;
-
- if (max_state == -1)
- max_state = MAX_STATES - 1;
- bzero((char *)comp, sizeof(*comp));
- for (i = max_state; i > 0; --i) {
- tstate[i].cs_id = i;
- tstate[i].cs_next = &tstate[i - 1];
- }
- tstate[0].cs_next = &tstate[max_state];
- tstate[0].cs_id = 0;
- comp->last_cs = &tstate[0];
- comp->last_recv = 255;
- comp->last_xmit = 255;
- comp->flags = VJF_TOSS;
-}
-
-
-/* ENCODE encodes a number that is known to be non-zero. ENCODEZ
- * checks for zero (since zero has to be encoded in the long, 3 byte
- * form).
- */
-#define ENCODE(n) { \
- if ((u_short)(n) >= 256) { \
- *cp++ = 0; \
- cp[1] = (n); \
- cp[0] = (n) >> 8; \
- cp += 2; \
- } else { \
- *cp++ = (n); \
- } \
-}
-#define ENCODEZ(n) { \
- if ((u_short)(n) >= 256 || (u_short)(n) == 0) { \
- *cp++ = 0; \
- cp[1] = (n); \
- cp[0] = (n) >> 8; \
- cp += 2; \
- } else { \
- *cp++ = (n); \
- } \
-}
-
-#define DECODEL(f) { \
- if (*cp == 0) {\
- u_int32_t tmp = ntohl(f) + ((cp[1] << 8) | cp[2]); \
- (f) = htonl(tmp); \
- cp += 3; \
- } else { \
- u_int32_t tmp = ntohl(f) + (u_int32_t)*cp++; \
- (f) = htonl(tmp); \
- } \
-}
-
-#define DECODES(f) { \
- if (*cp == 0) {\
- u_short tmp = ntohs(f) + ((cp[1] << 8) | cp[2]); \
- (f) = htons(tmp); \
- cp += 3; \
- } else { \
- u_short tmp = ntohs(f) + (u_int32_t)*cp++; \
- (f) = htons(tmp); \
- } \
-}
-
-#define DECODEU(f) { \
- if (*cp == 0) {\
- (f) = htons((cp[1] << 8) | cp[2]); \
- cp += 3; \
- } else { \
- (f) = htons((u_int32_t)*cp++); \
- } \
-}
-
-u_int
-vj_compress_tcp(ip, mlen, comp, compress_cid, vjhdrp)
- register struct ip *ip;
- u_int mlen;
- struct vjcompress *comp;
- int compress_cid;
- u_char **vjhdrp;
-{
- register struct cstate *cs = comp->last_cs->cs_next;
- register u_int hlen = getip_hl(*ip);
- register struct tcphdr *oth;
- register struct tcphdr *th;
- register u_int deltaS, deltaA;
- register u_int changes = 0;
- u_char new_seq[16];
- register u_char *cp = new_seq;
-
- /*
- * Bail if this is an IP fragment or if the TCP packet isn't
- * `compressible' (i.e., ACK isn't set or some other control bit is
- * set). (We assume that the caller has already made sure the
- * packet is IP proto TCP).
- */
- if ((ip->ip_off & htons(0x3fff)) || mlen < 40)
- return (TYPE_IP);
-
- th = (struct tcphdr *)&((int *)ip)[hlen];
- if ((th->th_flags & (TH_SYN|TH_FIN|TH_RST|TH_ACK)) != TH_ACK)
- return (TYPE_IP);
- /*
- * Packet is compressible -- we're going to send either a
- * COMPRESSED_TCP or UNCOMPRESSED_TCP packet. Either way we need
- * to locate (or create) the connection state. Special case the
- * most recently used connection since it's most likely to be used
- * again & we don't have to do any reordering if it's used.
- */
- INCR(vjs_packets);
- if (ip->ip_src.s_addr != cs->cs_ip.ip_src.s_addr ||
- ip->ip_dst.s_addr != cs->cs_ip.ip_dst.s_addr ||
- *(int *)th != ((int *)&cs->cs_ip)[getip_hl(cs->cs_ip)]) {
- /*
- * Wasn't the first -- search for it.
- *
- * States are kept in a circularly linked list with
- * last_cs pointing to the end of the list. The
- * list is kept in lru order by moving a state to the
- * head of the list whenever it is referenced. Since
- * the list is short and, empirically, the connection
- * we want is almost always near the front, we locate
- * states via linear search. If we don't find a state
- * for the datagram, the oldest state is (re-)used.
- */
- register struct cstate *lcs;
- register struct cstate *lastcs = comp->last_cs;
-
- do {
- lcs = cs; cs = cs->cs_next;
- INCR(vjs_searches);
- if (ip->ip_src.s_addr == cs->cs_ip.ip_src.s_addr
- && ip->ip_dst.s_addr == cs->cs_ip.ip_dst.s_addr
- && *(int *)th == ((int *)&cs->cs_ip)[getip_hl(cs->cs_ip)])
- goto found;
- } while (cs != lastcs);
-
- /*
- * Didn't find it -- re-use oldest cstate. Send an
- * uncompressed packet that tells the other side what
- * connection number we're using for this conversation.
- * Note that since the state list is circular, the oldest
- * state points to the newest and we only need to set
- * last_cs to update the lru linkage.
- */
- INCR(vjs_misses);
- comp->last_cs = lcs;
- hlen += getth_off(*th);
- hlen <<= 2;
- if (hlen > mlen)
- return (TYPE_IP);
- goto uncompressed;
-
- found:
- /*
- * Found it -- move to the front on the connection list.
- */
- if (cs == lastcs)
- comp->last_cs = lcs;
- else {
- lcs->cs_next = cs->cs_next;
- cs->cs_next = lastcs->cs_next;
- lastcs->cs_next = cs;
- }
- }
-
- /*
- * Make sure that only what we expect to change changed. The first
- * line of the `if' checks the IP protocol version, header length &
- * type of service. The 2nd line checks the "Don't fragment" bit.
- * The 3rd line checks the time-to-live and protocol (the protocol
- * check is unnecessary but costless). The 4th line checks the TCP
- * header length. The 5th line checks IP options, if any. The 6th
- * line checks TCP options, if any. If any of these things are
- * different between the previous & current datagram, we send the
- * current datagram `uncompressed'.
- */
- oth = (struct tcphdr *)&((int *)&cs->cs_ip)[hlen];
- deltaS = hlen;
- hlen += getth_off(*th);
- hlen <<= 2;
- if (hlen > mlen)
- return (TYPE_IP);
-
- if (((u_short *)ip)[0] != ((u_short *)&cs->cs_ip)[0] ||
- ((u_short *)ip)[3] != ((u_short *)&cs->cs_ip)[3] ||
- ((u_short *)ip)[4] != ((u_short *)&cs->cs_ip)[4] ||
- getth_off(*th) != getth_off(*oth) ||
- (deltaS > 5 && BCMP(ip + 1, &cs->cs_ip + 1, (deltaS - 5) << 2)) ||
- (getth_off(*th) > 5 && BCMP(th + 1, oth + 1, (getth_off(*th) - 5) << 2)))
- goto uncompressed;
-
- /*
- * Figure out which of the changing fields changed. The
- * receiver expects changes in the order: urgent, window,
- * ack, seq (the order minimizes the number of temporaries
- * needed in this section of code).
- */
- if (th->th_flags & TH_URG) {
- deltaS = ntohs(th->th_urp);
- ENCODEZ(deltaS);
- changes |= NEW_U;
- } else if (th->th_urp != oth->th_urp)
- /* argh! URG not set but urp changed -- a sensible
- * implementation should never do this but RFC793
- * doesn't prohibit the change so we have to deal
- * with it. */
- goto uncompressed;
-
- if ((deltaS = (u_short)(ntohs(th->th_win) - ntohs(oth->th_win))) > 0) {
- ENCODE(deltaS);
- changes |= NEW_W;
- }
-
- if ((deltaA = ntohl(th->th_ack) - ntohl(oth->th_ack)) > 0) {
- if (deltaA > 0xffff)
- goto uncompressed;
- ENCODE(deltaA);
- changes |= NEW_A;
- }
-
- if ((deltaS = ntohl(th->th_seq) - ntohl(oth->th_seq)) > 0) {
- if (deltaS > 0xffff)
- goto uncompressed;
- ENCODE(deltaS);
- changes |= NEW_S;
- }
-
- switch(changes) {
-
- case 0:
- /*
- * Nothing changed. If this packet contains data and the
- * last one didn't, this is probably a data packet following
- * an ack (normal on an interactive connection) and we send
- * it compressed. Otherwise it's probably a retransmit,
- * retransmitted ack or window probe. Send it uncompressed
- * in case the other side missed the compressed version.
- */
- if (ip->ip_len != cs->cs_ip.ip_len &&
- ntohs(cs->cs_ip.ip_len) == hlen)
- break;
-
- /* (fall through) */
-
- case SPECIAL_I:
- case SPECIAL_D:
- /*
- * actual changes match one of our special case encodings --
- * send packet uncompressed.
- */
- goto uncompressed;
-
- case NEW_S|NEW_A:
- if (deltaS == deltaA && deltaS == ntohs(cs->cs_ip.ip_len) - hlen) {
- /* special case for echoed terminal traffic */
- changes = SPECIAL_I;
- cp = new_seq;
- }
- break;
-
- case NEW_S:
- if (deltaS == ntohs(cs->cs_ip.ip_len) - hlen) {
- /* special case for data xfer */
- changes = SPECIAL_D;
- cp = new_seq;
- }
- break;
- }
-
- deltaS = ntohs(ip->ip_id) - ntohs(cs->cs_ip.ip_id);
- if (deltaS != 1) {
- ENCODEZ(deltaS);
- changes |= NEW_I;
- }
- if (th->th_flags & TH_PUSH)
- changes |= TCP_PUSH_BIT;
- /*
- * Grab the cksum before we overwrite it below. Then update our
- * state with this packet's header.
- */
- deltaA = ntohs(th->th_sum);
- BCOPY(ip, &cs->cs_ip, hlen);
-
- /*
- * We want to use the original packet as our compressed packet.
- * (cp - new_seq) is the number of bytes we need for compressed
- * sequence numbers. In addition we need one byte for the change
- * mask, one for the connection id and two for the tcp checksum.
- * So, (cp - new_seq) + 4 bytes of header are needed. hlen is how
- * many bytes of the original packet to toss so subtract the two to
- * get the new packet size.
- */
- deltaS = cp - new_seq;
- cp = (u_char *)ip;
- if (compress_cid == 0 || comp->last_xmit != cs->cs_id) {
- comp->last_xmit = cs->cs_id;
- hlen -= deltaS + 4;
- *vjhdrp = (cp += hlen);
- *cp++ = changes | NEW_C;
- *cp++ = cs->cs_id;
- } else {
- hlen -= deltaS + 3;
- *vjhdrp = (cp += hlen);
- *cp++ = changes;
- }
- *cp++ = deltaA >> 8;
- *cp++ = deltaA;
- BCOPY(new_seq, cp, deltaS);
- INCR(vjs_compressed);
- return (TYPE_COMPRESSED_TCP);
-
- /*
- * Update connection state cs & send uncompressed packet (that is,
- * a regular ip/tcp packet but with the 'conversation id' we hope
- * to use on future compressed packets in the protocol field).
- */
- uncompressed:
- BCOPY(ip, &cs->cs_ip, hlen);
- ip->ip_p = cs->cs_id;
- comp->last_xmit = cs->cs_id;
- return (TYPE_UNCOMPRESSED_TCP);
-}
-
-/*
- * Called when we may have missed a packet.
- */
-void
-vj_uncompress_err(comp)
- struct vjcompress *comp;
-{
- comp->flags |= VJF_TOSS;
- INCR(vjs_errorin);
-}
-
-/*
- * "Uncompress" a packet of type TYPE_UNCOMPRESSED_TCP.
- */
-int
-vj_uncompress_uncomp(buf, buflen, comp)
- u_char *buf;
- int buflen;
- struct vjcompress *comp;
-{
- register u_int hlen;
- register struct cstate *cs;
- register struct ip *ip;
-
- ip = (struct ip *) buf;
- hlen = getip_hl(*ip) << 2;
- if (ip->ip_p >= MAX_STATES
- || hlen + sizeof(struct tcphdr) > buflen
- || (hlen += getth_off(*((struct tcphdr *)&((char *)ip)[hlen])) << 2)
- > buflen
- || hlen > MAX_HDR) {
- comp->flags |= VJF_TOSS;
- INCR(vjs_errorin);
- return (0);
- }
- cs = &comp->rstate[comp->last_recv = ip->ip_p];
- comp->flags &=~ VJF_TOSS;
- ip->ip_p = IPPROTO_TCP;
- BCOPY(ip, &cs->cs_ip, hlen);
- cs->cs_hlen = hlen;
- INCR(vjs_uncompressedin);
- return (1);
-}
-
-/*
- * Uncompress a packet of type TYPE_COMPRESSED_TCP.
- * The packet starts at buf and is of total length total_len.
- * The first buflen bytes are at buf; this must include the entire
- * compressed TCP/IP header. This procedure returns the length
- * of the VJ header, with a pointer to the uncompressed IP header
- * in *hdrp and its length in *hlenp.
- */
-int
-vj_uncompress_tcp(buf, buflen, total_len, comp, hdrp, hlenp)
- u_char *buf;
- int buflen, total_len;
- struct vjcompress *comp;
- u_char **hdrp;
- u_int *hlenp;
-{
- register u_char *cp;
- register u_int hlen, changes;
- register struct tcphdr *th;
- register struct cstate *cs;
- register u_short *bp;
- register u_int vjlen;
- register u_int32_t tmp;
-
- INCR(vjs_compressedin);
- cp = buf;
- changes = *cp++;
- if (changes & NEW_C) {
- /* Make sure the state index is in range, then grab the state.
- * If we have a good state index, clear the 'discard' flag. */
- if (*cp >= MAX_STATES)
- goto bad;
-
- comp->flags &=~ VJF_TOSS;
- comp->last_recv = *cp++;
- } else {
- /* this packet has an implicit state index. If we've
- * had a line error since the last time we got an
- * explicit state index, we have to toss the packet. */
- if (comp->flags & VJF_TOSS) {
- INCR(vjs_tossed);
- return (-1);
- }
- }
- cs = &comp->rstate[comp->last_recv];
- hlen = getip_hl(cs->cs_ip) << 2;
- th = (struct tcphdr *)&((u_char *)&cs->cs_ip)[hlen];
- th->th_sum = htons((*cp << 8) | cp[1]);
- cp += 2;
- if (changes & TCP_PUSH_BIT)
- th->th_flags |= TH_PUSH;
- else
- th->th_flags &=~ TH_PUSH;
-
- switch (changes & SPECIALS_MASK) {
- case SPECIAL_I:
- {
- register u_int32_t i = ntohs(cs->cs_ip.ip_len) - cs->cs_hlen;
- /* some compilers can't nest inline assembler.. */
- tmp = ntohl(th->th_ack) + i;
- th->th_ack = htonl(tmp);
- tmp = ntohl(th->th_seq) + i;
- th->th_seq = htonl(tmp);
- }
- break;
-
- case SPECIAL_D:
- /* some compilers can't nest inline assembler.. */
- tmp = ntohl(th->th_seq) + ntohs(cs->cs_ip.ip_len) - cs->cs_hlen;
- th->th_seq = htonl(tmp);
- break;
-
- default:
- if (changes & NEW_U) {
- th->th_flags |= TH_URG;
- DECODEU(th->th_urp);
- } else
- th->th_flags &=~ TH_URG;
- if (changes & NEW_W)
- DECODES(th->th_win);
- if (changes & NEW_A)
- DECODEL(th->th_ack);
- if (changes & NEW_S)
- DECODEL(th->th_seq);
- break;
- }
- if (changes & NEW_I) {
- DECODES(cs->cs_ip.ip_id);
- } else {
- cs->cs_ip.ip_id = ntohs(cs->cs_ip.ip_id) + 1;
- cs->cs_ip.ip_id = htons(cs->cs_ip.ip_id);
- }
-
- /*
- * At this point, cp points to the first byte of data in the
- * packet. Fill in the IP total length and update the IP
- * header checksum.
- */
- vjlen = cp - buf;
- buflen -= vjlen;
- if (buflen < 0)
- /* we must have dropped some characters (crc should detect
- * this but the old slip framing won't) */
- goto bad;
-
- total_len += cs->cs_hlen - vjlen;
- cs->cs_ip.ip_len = htons(total_len);
-
- /* recompute the ip header checksum */
- bp = (u_short *) &cs->cs_ip;
- cs->cs_ip.ip_sum = 0;
- for (changes = 0; hlen > 0; hlen -= 2)
- changes += *bp++;
- changes = (changes & 0xffff) + (changes >> 16);
- changes = (changes & 0xffff) + (changes >> 16);
- cs->cs_ip.ip_sum = ~ changes;
-
- *hdrp = (u_char *) &cs->cs_ip;
- *hlenp = cs->cs_hlen;
- return vjlen;
-
- bad:
- comp->flags |= VJF_TOSS;
- INCR(vjs_errorin);
- return (-1);
-}
diff --git a/mdk-stage1/ppp/pppd/Makefile b/mdk-stage1/ppp/pppd/Makefile
deleted file mode 100644
index fb5658879..000000000
--- a/mdk-stage1/ppp/pppd/Makefile
+++ /dev/null
@@ -1,51 +0,0 @@
- #******************************************************************************
- #
- # Guillaume Cottenceau (gc@mandrakesoft.com)
- #
- # Copyright 2000 Mandrakesoft
- #
- # This software may be freely redistributed under the terms of the GNU
- # public license.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program; if not, write to the Free Software
- # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- #
- #*****************************************************************************
-
-top_dir = ../..
-
-include $(top_dir)/Makefile.common
-
-
-TARGETS = pppd
-
-BINTARGET = ../../pppd
-
-
-all: $(TARGETS)
-
-clean:
- rm -f *.o *.a $(BINTARGET) pppd
-
-FLAGS = -Wall -Wno-deprecated-declarations -Werror -Os -fomit-frame-pointer -DDO_BSD_COMPRESS=0 -D_linux_=1 -DHAVE_MMAP -DNO_DRAND48 -D_BSD_SOURCE -D_GNU_SOURCE
-# (blino) for gcc-4.1.1, dereferencing type-punned pointer will break strict-aliasing rules, in options.c:711
-FLAGS += -fno-strict-aliasing
-
-INCS = -I../include -I.
-
-ifeq (GLIBC, $(L))
-LIBS = -static -lcrypt
-endif
-
-
-OBJS = main.o magic.o fsm.o lcp.o ipcp.o upap.o chap.o md5.o ccp.o auth.o options.o demand.o utils.o sys-linux.o ipxcp.o multilink.o tdb.o tty.o
-
-
-pppd: $(OBJS)
- $(DIET) gcc -o $@ $^ $(LIBS)
- $(STRIPCMD) $@
- cp -f $@ $(BINTARGET)
-
-$(OBJS): %.o: %.c
- $(DIET) gcc $(FLAGS) $(INCS) $(INCLUDES) -c $< -o $@
diff --git a/mdk-stage1/ppp/pppd/Makefile.linux b/mdk-stage1/ppp/pppd/Makefile.linux
deleted file mode 100644
index 47d6ba01e..000000000
--- a/mdk-stage1/ppp/pppd/Makefile.linux
+++ /dev/null
@@ -1,129 +0,0 @@
-#
-# pppd makefile for Linux
-# $Id$
-#
-
-# Default installation locations
-BINDIR = $(DESTDIR)/usr/sbin
-MANDIR = $(DESTDIR)/usr/man
-
-PPPDSRCS = main.c magic.c fsm.c lcp.c ipcp.c upap.c chap.c md5.c ccp.c \
- ipxcp.c auth.c options.c sys-linux.c md4.c chap_ms.c cbcp.c \
- demand.c utils.c multilink.c tdb.c tty.c
-HEADERS = callout.h pathnames.h patchlevel.h chap.h md5.h chap_ms.h md4.h \
- ipxcp.h cbcp.h tdb.h
-MANPAGES = pppd.8
-PPPDOBJS = main.o magic.o fsm.o lcp.o ipcp.o upap.o chap.o md5.o ccp.o \
- auth.o options.o demand.o utils.o sys-linux.o ipxcp.o multilink.o \
- tdb.o tty.o
-
-all: pppd
-
-#
-# include dependancies if present and backup if as a header file
-ifeq (.depend,$(wildcard .depend))
-include .depend
-endif
-
-CC = gcc
-#
-COPTS = -Wall $(RPM_OPT_FLAGS)
-LIBS = -lutil
-
-ifneq ($(wildcard /usr/lib/libcrypt.*),)
-LIBS += -lcrypt
-endif
-
-# Uncomment the next 2 lines to include support for Microsoft's
-# MS-CHAP authentication protocol.
-CHAPMS=y
-USE_CRYPT=y
-ifneq ($(wildcard /usr/lib/libcrypt.*),)
-HAVE_CRYPT_H=y
-endif
-
-# Uncomment the next line to include support for PPP packet filtering.
-# This requires that the libpcap library and headers be installed
-# and that the kernel driver support PPP packet filtering, which it
-# doesn't yet.
-#FILTER=y
-
-HAS_SHADOW=y
-USE_PAM=y
-#HAVE_INET6=y
-
-PLUGIN=y
-
-INCLUDE_DIRS= -I../include
-
-COMPILE_FLAGS= -D_linux_=1 -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MULTILINK -DHAVE_MMAP
-
-CFLAGS= $(COPTS) $(COMPILE_FLAGS) $(INCLUDE_DIRS)
-
-ifdef CHAPMS
-CFLAGS += -DCHAPMS=1
-ifndef USE_CRYPT
-LIBS := -ldes $(LIBS)
-else
-CFLAGS += -DUSE_CRYPT=1
-ifneq ($(wildcard /usr/include/crypt.h),)
-CFLAGS += -DHAVE_CRYPT_H=1
-endif
-endif
-PPPDOBJS += md4.o chap_ms.o
-ifdef MSLANMAN
-CFLAGS += -DMSLANMAN=1
-endif
-endif
-
-ifdef HAS_SHADOW
-CFLAGS += -DHAS_SHADOW
-#LIBS := -lshadow $(LIBS)
-endif
-
-# For "Pluggable Authentication Modules", see ftp.redhat.com:/pub/pam/.
-ifdef USE_PAM
-CFLAGS += -DUSE_PAM
-LIBS := -lpam -ldl $(LIBS)
-endif
-
-# Lock library binary for Linux is included in 'linux' subdirectory.
-ifdef LOCKLIB
-LIBS := -llock $(LIBS)
-CFLAGS += -DLOCKLIB=1
-endif
-
-ifdef PLUGIN
-CFLAGS += -DPLUGIN
-LDFLAGS += -Wl,-E
-LIBS += -ldl
-endif
-
-ifdef FILTER
-LIBS += -lpcap
-CFLAGS += -DPPP_FILTER -I/usr/include/pcap
-endif
-
-ifdef HAVE_INET6
- PPPDSRCS += ipv6cp.c eui64.c
- HEADERS += ipv6cp.h eui64.h
- PPPDOBJS += ipv6cp.o eui64.o
- CFLAGS += -DINET6=1
-endif
-
-
-INSTALL= install
-
-install: pppd
- mkdir -p $(BINDIR) $(MANDIR)
- $(INSTALL) -m 555 pppd $(BINDIR)/pppd
- $(INSTALL) -c -m 444 pppd.8 $(MANDIR)/man8
-
-pppd: $(PPPDOBJS)
- $(CC) $(CFLAGS) $(LDFLAGS) -o pppd $(PPPDOBJS) $(LIBS)
-
-clean:
- rm -f $(PPPDOBJS) pppd *~ #* core
-
-depend:
- $(CPP) -M $(CFLAGS) $(PPPDSRCS) >.depend
diff --git a/mdk-stage1/ppp/pppd/Makefile.linux.make b/mdk-stage1/ppp/pppd/Makefile.linux.make
deleted file mode 100644
index d98a32562..000000000
--- a/mdk-stage1/ppp/pppd/Makefile.linux.make
+++ /dev/null
@@ -1,131 +0,0 @@
-#
-# pppd makefile for Linux
-# $Id$
-#
-
-# Default installation locations
-BINDIR = /usr/sbin
-MANDIR = /usr/man
-
-PPPDSRCS = main.c magic.c fsm.c lcp.c ipcp.c upap.c chap.c md5.c ccp.c \
- ipxcp.c auth.c options.c sys-linux.c md4.c chap_ms.c cbcp.c \
- demand.c utils.c multilink.c tdb.c tty.c
-HEADERS = callout.h pathnames.h patchlevel.h chap.h md5.h chap_ms.h md4.h \
- ipxcp.h cbcp.h tdb.h
-MANPAGES = pppd.8
-PPPDOBJS = main.o magic.o fsm.o lcp.o ipcp.o upap.o chap.o md5.o ccp.o \
- auth.o options.o demand.o utils.o sys-linux.o ipxcp.o multilink.o \
- tdb.o tty.o
-
-all: pppd
-
-#
-# include dependancies if present and backup if as a header file
-ifeq (.depend,$(wildcard .depend))
-include .depend
-endif
-
-# CC = gcc
-#
-COPTS = -O2 -pipe -Wall -g
-LIBS =
-
-ifneq ($(wildcard /usr/lib/libcrypt.*),)
-LIBS += -lcrypt
-endif
-
-# Uncomment the next 2 lines to include support for Microsoft's
-# MS-CHAP authentication protocol.
-CHAPMS=y
-USE_CRYPT=y
-ifneq ($(wildcard /usr/lib/libcrypt.*),)
-HAVE_CRYPT_H=y
-endif
-
-# Uncomment the next line to include support for PPP packet filtering.
-# This requires that the libpcap library and headers be installed
-# and that the kernel driver support PPP packet filtering, which it
-# doesn't yet.
-#FILTER=y
-
-HAS_SHADOW=y
-#USE_PAM=y
-#HAVE_INET6=y
-
-PLUGIN=y
-
-INCLUDE_DIRS= -I../include
-
-COMPILE_FLAGS= -D_linux_=1 -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MULTILINK -DHAVE_MMAP
-
-CFLAGS= $(COPTS) $(COMPILE_FLAGS) $(INCLUDE_DIRS)
-
-ifdef CHAPMS
-CFLAGS += -DCHAPMS=1
-ifndef USE_CRYPT
-LIBS := -ldes $(LIBS)
-else
-CFLAGS += -DUSE_CRYPT=1
-ifneq ($(wildcard /usr/include/crypt.h),)
-CFLAGS += -DHAVE_CRYPT_H=1
-endif
-endif
-PPPDOBJS += md4.o chap_ms.o
-ifdef MSLANMAN
-CFLAGS += -DMSLANMAN=1
-endif
-endif
-
-ifdef HAS_SHADOW
-CFLAGS += -DHAS_SHADOW
-#LIBS := -lshadow $(LIBS)
-endif
-
-# For "Pluggable Authentication Modules", see ftp.redhat.com:/pub/pam/.
-ifdef USE_PAM
-CFLAGS += -DUSE_PAM
-LIBS := -lpam -ldl $(LIBS)
-endif
-
-# Lock library binary for Linux is included in 'linux' subdirectory.
-ifdef LOCKLIB
-LIBS := -llock $(LIBS)
-CFLAGS += -DLOCKLIB=1
-endif
-
-ifdef PLUGIN
-CFLAGS += -DPLUGIN
-LDFLAGS += -Wl,-E
-LIBS += -ldl
-endif
-
-ifdef FILTER
-LIBS += -lpcap
-CFLAGS += -DPPP_FILTER -I/usr/include/pcap
-endif
-
-ifdef HAVE_INET6
- PPPDSRCS += ipv6cp.c eui64.c
- HEADERS += ipv6cp.h eui64.h
- PPPDOBJS += ipv6cp.o eui64.o
- CFLAGS += -DINET6=1
-endif
-
-
-INSTALL= install -o root
-
-install: pppd
- mkdir -p $(BINDIR) $(MANDIR)
- $(INSTALL) -s -c -m 555 pppd $(BINDIR)/pppd
- if chgrp pppusers $(BINDIR)/pppd 2>/dev/null; then \
- chmod o-rx,u+s $(BINDIR)/pppd; fi
- $(INSTALL) -c -m 444 pppd.8 $(MANDIR)/man8
-
-pppd: $(PPPDOBJS)
- $(CC) $(CFLAGS) $(LDFLAGS) -o pppd $(PPPDOBJS) $(LIBS)
-
-clean:
- rm -f $(PPPDOBJS) pppd *~ #* core
-
-depend:
- $(CPP) -M $(CFLAGS) $(PPPDSRCS) >.depend
diff --git a/mdk-stage1/ppp/pppd/Makefile.linux.makeopt b/mdk-stage1/ppp/pppd/Makefile.linux.makeopt
deleted file mode 100644
index 3094c941c..000000000
--- a/mdk-stage1/ppp/pppd/Makefile.linux.makeopt
+++ /dev/null
@@ -1,129 +0,0 @@
-#
-# pppd makefile for Linux
-# $Id$
-#
-
-# Default installation locations
-BINDIR = $(DESTDIR)/usr/sbin
-MANDIR = $(DESTDIR)/usr/man
-
-PPPDSRCS = main.c magic.c fsm.c lcp.c ipcp.c upap.c chap.c md5.c ccp.c \
- ipxcp.c auth.c options.c sys-linux.c md4.c chap_ms.c cbcp.c \
- demand.c utils.c multilink.c tdb.c tty.c
-HEADERS = callout.h pathnames.h patchlevel.h chap.h md5.h chap_ms.h md4.h \
- ipxcp.h cbcp.h tdb.h
-MANPAGES = pppd.8
-PPPDOBJS = main.o magic.o fsm.o lcp.o ipcp.o upap.o chap.o md5.o ccp.o \
- auth.o options.o demand.o utils.o sys-linux.o ipxcp.o multilink.o \
- tdb.o tty.o
-
-all: pppd
-
-#
-# include dependancies if present and backup if as a header file
-ifeq (.depend,$(wildcard .depend))
-include .depend
-endif
-
-CC = gcc
-#
-COPTS = -O2 -pipe -Wall -g
-LIBS = -lutil
-
-ifneq ($(wildcard /usr/lib/libcrypt.*),)
-LIBS += -lcrypt
-endif
-
-# Uncomment the next 2 lines to include support for Microsoft's
-# MS-CHAP authentication protocol.
-CHAPMS=y
-USE_CRYPT=y
-ifneq ($(wildcard /usr/lib/libcrypt.*),)
-HAVE_CRYPT_H=y
-endif
-
-# Uncomment the next line to include support for PPP packet filtering.
-# This requires that the libpcap library and headers be installed
-# and that the kernel driver support PPP packet filtering, which it
-# doesn't yet.
-#FILTER=y
-
-HAS_SHADOW=y
-USE_PAM=y
-#HAVE_INET6=y
-
-PLUGIN=y
-
-INCLUDE_DIRS= -I../include
-
-COMPILE_FLAGS= -D_linux_=1 -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MULTILINK -DHAVE_MMAP
-
-CFLAGS= $(COPTS) $(COMPILE_FLAGS) $(INCLUDE_DIRS)
-
-ifdef CHAPMS
-CFLAGS += -DCHAPMS=1
-ifndef USE_CRYPT
-LIBS := -ldes $(LIBS)
-else
-CFLAGS += -DUSE_CRYPT=1
-ifneq ($(wildcard /usr/include/crypt.h),)
-CFLAGS += -DHAVE_CRYPT_H=1
-endif
-endif
-PPPDOBJS += md4.o chap_ms.o
-ifdef MSLANMAN
-CFLAGS += -DMSLANMAN=1
-endif
-endif
-
-ifdef HAS_SHADOW
-CFLAGS += -DHAS_SHADOW
-#LIBS := -lshadow $(LIBS)
-endif
-
-# For "Pluggable Authentication Modules", see ftp.redhat.com:/pub/pam/.
-ifdef USE_PAM
-CFLAGS += -DUSE_PAM
-LIBS := -lpam -ldl $(LIBS)
-endif
-
-# Lock library binary for Linux is included in 'linux' subdirectory.
-ifdef LOCKLIB
-LIBS := -llock $(LIBS)
-CFLAGS += -DLOCKLIB=1
-endif
-
-ifdef PLUGIN
-CFLAGS += -DPLUGIN
-LDFLAGS += -Wl,-E
-LIBS += -ldl
-endif
-
-ifdef FILTER
-LIBS += -lpcap
-CFLAGS += -DPPP_FILTER -I/usr/include/pcap
-endif
-
-ifdef HAVE_INET6
- PPPDSRCS += ipv6cp.c eui64.c
- HEADERS += ipv6cp.h eui64.h
- PPPDOBJS += ipv6cp.o eui64.o
- CFLAGS += -DINET6=1
-endif
-
-
-INSTALL= install
-
-install: pppd
- mkdir -p $(BINDIR) $(MANDIR)
- $(INSTALL) -m 555 pppd $(BINDIR)/pppd
- $(INSTALL) -c -m 444 pppd.8 $(MANDIR)/man8
-
-pppd: $(PPPDOBJS)
- $(CC) $(CFLAGS) $(LDFLAGS) -o pppd $(PPPDOBJS) $(LIBS)
-
-clean:
- rm -f $(PPPDOBJS) pppd *~ #* core
-
-depend:
- $(CPP) -M $(CFLAGS) $(PPPDSRCS) >.depend
diff --git a/mdk-stage1/ppp/pppd/Makefile.sol2 b/mdk-stage1/ppp/pppd/Makefile.sol2
deleted file mode 100644
index dfdcddd97..000000000
--- a/mdk-stage1/ppp/pppd/Makefile.sol2
+++ /dev/null
@@ -1,48 +0,0 @@
-#
-# Makefile for pppd under Solaris 2.
-# $Id$
-#
-
-include ../solaris/Makedefs
-
-COPTS += -xO2 -xspace -W0,-Lt
-CFLAGS = -I../include -DSVR4 -DSOL2 $(COPTS)
-LIBS = -lsocket -lnsl
-
-OBJS = main.o magic.o fsm.o lcp.o ipcp.o upap.o chap.o md5.o tty.o \
- ccp.o auth.o options.o demand.o utils.o sys-solaris.o tdb.o
-
-#
-# uncomment the following to enable plugins
-#
-CFLAGS += -DPLUGIN
-LIBS += -ldl
-
-#
-# Solaris 8 and above accomodates /var/run, so uncomment the
-# following to place pppd process IDs on that location
-#
-#CFLAGS += -D_PATH_VARRUN='"/var/run/"'
-
-#
-# uncomment the following to enable IPv6
-#
-# Solaris 8 and on includes support for IPv6
-#
-#CFLAGS += -DINET6
-#OBJS += ipv6cp.o eui64.o
-
-#
-# Make targets
-#
-all: pppd
-
-pppd: $(OBJS)
- $(CC) -o pppd $(OBJS) $(LIBS)
-
-install:
- $(INSTALL) -f $(BINDIR) -m 4755 -u root pppd
- $(INSTALL) -f $(MANDIR)/man8 -m 444 pppd.8
-
-clean:
- rm -f $(OBJS) pppd *~ core y.tab.c y.tab.h
diff --git a/mdk-stage1/ppp/pppd/Makefile.sunos4 b/mdk-stage1/ppp/pppd/Makefile.sunos4
deleted file mode 100644
index 694ac341f..000000000
--- a/mdk-stage1/ppp/pppd/Makefile.sunos4
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# Makefile for pppd under SunOS 4.
-# $Id$
-#
-
-include ../sunos4/Makedefs
-
-LIBS =
-
-CFLAGS = $(COPTS) -I../include -DSUNOS4 -DGIDSET_TYPE=int \
- -DLOCK_DIR=\"/usr/spool/locks\"
-
-all: pppd
-
-OBJS = main.o magic.o fsm.o lcp.o ipcp.o upap.o chap.o md5.o ccp.o \
- auth.o options.o demand.o utils.o sys-sunos4.o tty.o
-
-pppd: $(OBJS)
- $(CC) -o pppd $(OBJS) $(LIBS)
-
-install:
- $(INSTALL) -c -m 4555 pppd $(BINDIR)/pppd
- $(INSTALL) -c -m 444 pppd.8 $(MANDIR)/man8/pppd.8
-
-clean:
- rm -f $(OBJS) pppd *~ core
diff --git a/mdk-stage1/ppp/pppd/auth.c b/mdk-stage1/ppp/pppd/auth.c
deleted file mode 100644
index 5f95a2982..000000000
--- a/mdk-stage1/ppp/pppd/auth.c
+++ /dev/null
@@ -1,1939 +0,0 @@
-/*
- * auth.c - PPP authentication and phase control.
- *
- * Copyright (c) 1993 The Australian National University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by the Australian National University. The name of the University
- * may not be used to endorse or promote products derived from this
- * software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Copyright (c) 1989 Carnegie Mellon University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Carnegie Mellon University. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#define RCSID "$Id$"
-
-#include <stdio.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <pwd.h>
-#include <grp.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/socket.h>
-#include <utmp.h>
-#include <fcntl.h>
-#if defined(_PATH_LASTLOG) && defined(_linux_)
-#include <lastlog.h>
-#endif
-
-#include <netdb.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#ifdef USE_PAM
-#include <security/pam_appl.h>
-#endif
-
-#ifdef HAS_SHADOW
-#include <shadow.h>
-#ifndef PW_PPP
-#define PW_PPP PW_LOGIN
-#endif
-#endif
-
-#include "pppd.h"
-#include "fsm.h"
-#include "lcp.h"
-#include "ipcp.h"
-#include "upap.h"
-#include "chap.h"
-#ifdef CBCP_SUPPORT
-#include "cbcp.h"
-#endif
-#include "pathnames.h"
-
-#include <time.h>
-
-static const char rcsid[] = RCSID;
-
-/* Bits in scan_authfile return value */
-#define NONWILD_SERVER 1
-#define NONWILD_CLIENT 2
-
-#define ISWILD(word) (word[0] == '*' && word[1] == 0)
-
-/* The name by which the peer authenticated itself to us. */
-char peer_authname[MAXNAMELEN];
-
-/* Records which authentication operations haven't completed yet. */
-static int auth_pending[NUM_PPP];
-
-/* Set if we have successfully called plogin() */
-static int logged_in;
-
-/* List of addresses which the peer may use. */
-static struct permitted_ip *addresses[NUM_PPP];
-
-/* Wordlist giving addresses which the peer may use
- without authenticating itself. */
-static struct wordlist *noauth_addrs;
-
-/* Extra options to apply, from the secrets file entry for the peer. */
-static struct wordlist *extra_options;
-
-/* Number of network protocols which we have opened. */
-static int num_np_open;
-
-/* Number of network protocols which have come up. */
-static int num_np_up;
-
-/* Set if we got the contents of passwd[] from the pap-secrets file. */
-static int passwd_from_file;
-
-/* Set if we require authentication only because we have a default route. */
-static bool default_auth;
-
-/* Hook to enable a plugin to control the idle time limit */
-int (*idle_time_hook) __P((struct ppp_idle *)) = NULL;
-
-/* Hook for a plugin to say whether we can possibly authenticate any peer */
-int (*pap_check_hook) __P((void)) = NULL;
-
-/* Hook for a plugin to check the PAP user and password */
-int (*pap_auth_hook) __P((char *user, char *passwd, char **msgp,
- struct wordlist **paddrs,
- struct wordlist **popts)) = NULL;
-
-/* Hook for a plugin to know about the PAP user logout */
-void (*pap_logout_hook) __P((void)) = NULL;
-
-/* Hook for a plugin to get the PAP password for authenticating us */
-int (*pap_passwd_hook) __P((char *user, char *passwd)) = NULL;
-
-/*
- * This is used to ensure that we don't start an auth-up/down
- * script while one is already running.
- */
-enum script_state {
- s_down,
- s_up
-};
-
-static enum script_state auth_state = s_down;
-static enum script_state auth_script_state = s_down;
-static pid_t auth_script_pid = 0;
-
-static int used_login; /* peer authenticated against login database */
-
-/*
- * Option variables.
- */
-bool uselogin = 0; /* Use /etc/passwd for checking PAP */
-bool cryptpap = 0; /* Passwords in pap-secrets are encrypted */
-bool refuse_pap = 0; /* Don't wanna auth. ourselves with PAP */
-bool refuse_chap = 0; /* Don't wanna auth. ourselves with CHAP */
-bool usehostname = 0; /* Use hostname for our_name */
-bool auth_required = 0; /* Always require authentication from peer */
-bool allow_any_ip = 0; /* Allow peer to use any IP address */
-bool explicit_remote = 0; /* User specified explicit remote name */
-char remote_name[MAXNAMELEN]; /* Peer's name for authentication */
-
-static char *uafname; /* name of most recent +ua file */
-
-/* Bits in auth_pending[] */
-#define PAP_WITHPEER 1
-#define PAP_PEER 2
-#define CHAP_WITHPEER 4
-#define CHAP_PEER 8
-
-extern char *crypt __P((const char *, const char *));
-
-/* Prototypes for procedures local to this file. */
-
-static void network_phase __P((int));
-static void check_idle __P((void *));
-static void connect_time_expired __P((void *));
-static int plogin __P((char *, char *, char **));
-static void plogout __P((void));
-static int null_login __P((int));
-static int get_pap_passwd __P((char *));
-static int have_pap_secret __P((int *));
-static int have_chap_secret __P((char *, char *, int, int *));
-static int ip_addr_check __P((u_int32_t, struct permitted_ip *));
-static int scan_authfile __P((FILE *, char *, char *, char *,
- struct wordlist **, struct wordlist **,
- char *));
-static void free_wordlist __P((struct wordlist *));
-static void auth_script __P((char *));
-static void auth_script_done __P((void *));
-static void set_allowed_addrs __P((int, struct wordlist *, struct wordlist *));
-static int some_ip_ok __P((struct wordlist *));
-static int setupapfile __P((char **));
-static int privgroup __P((char **));
-static int set_noauth_addr __P((char **));
-static void check_access __P((FILE *, char *));
-static int wordlist_count __P((struct wordlist *));
-
-/*
- * Authentication-related options.
- */
-option_t auth_options[] = {
- { "auth", o_bool, &auth_required,
- "Require authentication from peer", OPT_PRIO | 1 },
- { "noauth", o_bool, &auth_required,
- "Don't require peer to authenticate", OPT_PRIOSUB | OPT_PRIV,
- &allow_any_ip },
- { "require-pap", o_bool, &lcp_wantoptions[0].neg_upap,
- "Require PAP authentication from peer",
- OPT_PRIOSUB | 1, &auth_required },
- { "+pap", o_bool, &lcp_wantoptions[0].neg_upap,
- "Require PAP authentication from peer",
- OPT_ALIAS | OPT_PRIOSUB | 1, &auth_required },
- { "require-chap", o_bool, &lcp_wantoptions[0].neg_chap,
- "Require CHAP authentication from peer",
- OPT_PRIOSUB | 1, &auth_required },
- { "+chap", o_bool, &lcp_wantoptions[0].neg_chap,
- "Require CHAP authentication from peer",
- OPT_ALIAS | OPT_PRIOSUB | 1, &auth_required },
-
- { "refuse-pap", o_bool, &refuse_pap,
- "Don't agree to auth to peer with PAP", 1 },
- { "-pap", o_bool, &refuse_pap,
- "Don't allow PAP authentication with peer", OPT_ALIAS | 1 },
-
- { "refuse-chap", o_bool, &refuse_chap,
- "Don't agree to auth to peer with CHAP", 1 },
- { "-chap", o_bool, &refuse_chap,
- "Don't allow CHAP authentication with peer", OPT_ALIAS | 1 },
-
- { "name", o_string, our_name,
- "Set local name for authentication",
- OPT_PRIO | OPT_PRIV | OPT_STATIC, NULL, MAXNAMELEN },
-
- { "+ua", o_special, (void *)setupapfile,
- "Get PAP user and password from file",
- OPT_PRIO | OPT_A2STRVAL, &uafname },
-
- { "user", o_string, user,
- "Set name for auth with peer", OPT_PRIO | OPT_STATIC, NULL, MAXNAMELEN },
-
- { "password", o_string, passwd,
- "Password for authenticating us to the peer",
- OPT_PRIO | OPT_STATIC | OPT_HIDE, NULL, MAXSECRETLEN },
-
- { "usehostname", o_bool, &usehostname,
- "Must use hostname for authentication", 1 },
-
- { "remotename", o_string, remote_name,
- "Set remote name for authentication", OPT_PRIO | OPT_STATIC,
- &explicit_remote, MAXNAMELEN },
-
- { "login", o_bool, &uselogin,
- "Use system password database for PAP", 1 },
-
- { "papcrypt", o_bool, &cryptpap,
- "PAP passwords are encrypted", 1 },
-
- { "privgroup", o_special, (void *)privgroup,
- "Allow group members to use privileged options", OPT_PRIV | OPT_A2LIST },
-
- { "allow-ip", o_special, (void *)set_noauth_addr,
- "Set IP address(es) which can be used without authentication",
- OPT_PRIV | OPT_A2LIST },
-
- { NULL }
-};
-
-/*
- * setupapfile - specifies UPAP info for authenticating with peer.
- */
-static int
-setupapfile(argv)
- char **argv;
-{
- FILE *ufile;
- int l;
- char u[MAXNAMELEN], p[MAXSECRETLEN];
- char *fname;
-
- lcp_allowoptions[0].neg_upap = 1;
-
- /* open user info file */
- fname = strdup(*argv);
- if (fname == NULL)
- novm("+ua file name");
- seteuid(getuid());
- ufile = fopen(fname, "r");
- seteuid(0);
- if (ufile == NULL) {
- option_error("unable to open user login data file %s", fname);
- return 0;
- }
- check_access(ufile, fname);
- uafname = fname;
-
- /* get username */
- if (fgets(u, MAXNAMELEN - 1, ufile) == NULL
- || fgets(p, MAXSECRETLEN - 1, ufile) == NULL){
- option_error("unable to read user login data file %s", fname);
- return 0;
- }
- fclose(ufile);
-
- /* get rid of newlines */
- l = strlen(u);
- if (l > 0 && u[l-1] == '\n')
- u[l-1] = 0;
- l = strlen(p);
- if (l > 0 && p[l-1] == '\n')
- p[l-1] = 0;
-
- if (override_value("user", option_priority, fname))
- strlcpy(user, u, sizeof(user));
- if (override_value("passwd", option_priority, fname))
- strlcpy(passwd, p, sizeof(passwd));
-
- return (1);
-}
-
-
-/*
- * privgroup - allow members of the group to have privileged access.
- */
-static int
-privgroup(argv)
- char **argv;
-{
- struct group *g;
- int i;
-
- g = getgrnam(*argv);
- if (g == 0) {
- option_error("group %s is unknown", *argv);
- return 0;
- }
- for (i = 0; i < ngroups; ++i) {
- if (groups[i] == g->gr_gid) {
- privileged = 1;
- break;
- }
- }
- return 1;
-}
-
-
-/*
- * set_noauth_addr - set address(es) that can be used without authentication.
- * Equivalent to specifying an entry like `"" * "" addr' in pap-secrets.
- */
-static int
-set_noauth_addr(argv)
- char **argv;
-{
- char *addr = *argv;
- int l = strlen(addr) + 1;
- struct wordlist *wp;
-
- wp = (struct wordlist *) malloc(sizeof(struct wordlist) + l);
- if (wp == NULL)
- novm("allow-ip argument");
- wp->word = (char *) (wp + 1);
- wp->next = noauth_addrs;
- BCOPY(addr, wp->word, l);
- noauth_addrs = wp;
- return 1;
-}
-
-
-/*
- * An Open on LCP has requested a change from Dead to Establish phase.
- * Do what's necessary to bring the physical layer up.
- */
-void
-link_required(unit)
- int unit;
-{
-}
-
-/*
- * LCP has terminated the link; go to the Dead phase and take the
- * physical layer down.
- */
-void
-link_terminated(unit)
- int unit;
-{
- if (phase == PHASE_DEAD)
- return;
- if (pap_logout_hook) {
- pap_logout_hook();
- } else {
- if (logged_in)
- plogout();
- }
- new_phase(PHASE_DEAD);
- notice("Connection terminated.");
-}
-
-/*
- * LCP has gone down; it will either die or try to re-establish.
- */
-void
-link_down(unit)
- int unit;
-{
- int i;
- struct protent *protp;
-
- auth_state = s_down;
- if (auth_script_state == s_up && auth_script_pid == 0) {
- update_link_stats(unit);
- auth_script_state = s_down;
- auth_script(_PATH_AUTHDOWN);
- }
- for (i = 0; (protp = protocols[i]) != NULL; ++i) {
- if (!protp->enabled_flag)
- continue;
- if (protp->protocol != PPP_LCP && protp->lowerdown != NULL)
- (*protp->lowerdown)(unit);
- if (protp->protocol < 0xC000 && protp->close != NULL)
- (*protp->close)(unit, "LCP down");
- }
- num_np_open = 0;
- num_np_up = 0;
- if (phase != PHASE_DEAD)
- new_phase(PHASE_TERMINATE);
-}
-
-/*
- * The link is established.
- * Proceed to the Dead, Authenticate or Network phase as appropriate.
- */
-void
-link_established(unit)
- int unit;
-{
- int auth;
- lcp_options *wo = &lcp_wantoptions[unit];
- lcp_options *go = &lcp_gotoptions[unit];
- lcp_options *ho = &lcp_hisoptions[unit];
- int i;
- struct protent *protp;
-
- /*
- * Tell higher-level protocols that LCP is up.
- */
- for (i = 0; (protp = protocols[i]) != NULL; ++i)
- if (protp->protocol != PPP_LCP && protp->enabled_flag
- && protp->lowerup != NULL)
- (*protp->lowerup)(unit);
-
- if (auth_required && !(go->neg_chap || go->neg_upap)) {
- /*
- * We wanted the peer to authenticate itself, and it refused:
- * if we have some address(es) it can use without auth, fine,
- * otherwise treat it as though it authenticated with PAP using
- * a username * of "" and a password of "". If that's not OK,
- * boot it out.
- */
- if (noauth_addrs != NULL) {
- set_allowed_addrs(unit, NULL, NULL);
- } else if (!wo->neg_upap || uselogin || !null_login(unit)) {
- warn("peer refused to authenticate: terminating link");
- lcp_close(unit, "peer refused to authenticate");
- status = EXIT_PEER_AUTH_FAILED;
- return;
- }
- }
-
- new_phase(PHASE_AUTHENTICATE);
- used_login = 0;
- auth = 0;
- if (go->neg_chap) {
- ChapAuthPeer(unit, our_name, go->chap_mdtype);
- auth |= CHAP_PEER;
- } else if (go->neg_upap) {
- upap_authpeer(unit);
- auth |= PAP_PEER;
- }
- if (ho->neg_chap) {
- ChapAuthWithPeer(unit, user, ho->chap_mdtype);
- auth |= CHAP_WITHPEER;
- } else if (ho->neg_upap) {
- if (passwd[0] == 0) {
- passwd_from_file = 1;
- if (!get_pap_passwd(passwd))
- error("No secret found for PAP login");
- }
- upap_authwithpeer(unit, user, passwd);
- auth |= PAP_WITHPEER;
- }
- auth_pending[unit] = auth;
-
- if (!auth)
- network_phase(unit);
-}
-
-/*
- * Proceed to the network phase.
- */
-static void
-network_phase(unit)
- int unit;
-{
- lcp_options *go = &lcp_gotoptions[unit];
-
- /*
- * If the peer had to authenticate, run the auth-up script now.
- */
- if (go->neg_chap || go->neg_upap) {
- auth_state = s_up;
- if (auth_script_state == s_down && auth_script_pid == 0) {
- auth_script_state = s_up;
- auth_script(_PATH_AUTHUP);
- }
- }
-
-#ifdef CBCP_SUPPORT
- /*
- * If we negotiated callback, do it now.
- */
- if (go->neg_cbcp) {
- new_phase(PHASE_CALLBACK);
- (*cbcp_protent.open)(unit);
- return;
- }
-#endif
-
- /*
- * Process extra options from the secrets file
- */
- if (extra_options) {
- options_from_list(extra_options, 1);
- free_wordlist(extra_options);
- extra_options = 0;
- }
- start_networks();
-}
-
-void
-start_networks()
-{
- int i;
- struct protent *protp;
-
- new_phase(PHASE_NETWORK);
-
-#ifdef HAVE_MULTILINK
- if (multilink) {
- if (mp_join_bundle()) {
- if (updetach && !nodetach)
- detach();
- return;
- }
- }
-#endif /* HAVE_MULTILINK */
-
-#ifdef PPP_FILTER
- if (!demand)
- set_filters(&pass_filter, &active_filter);
-#endif
- for (i = 0; (protp = protocols[i]) != NULL; ++i)
- if (protp->protocol < 0xC000 && protp->enabled_flag
- && protp->open != NULL) {
- (*protp->open)(0);
- if (protp->protocol != PPP_CCP)
- ++num_np_open;
- }
-
- if (num_np_open == 0)
- /* nothing to do */
- lcp_close(0, "No network protocols running");
-}
-
-/*
- * The peer has failed to authenticate himself using `protocol'.
- */
-void
-auth_peer_fail(unit, protocol)
- int unit, protocol;
-{
- /*
- * Authentication failure: take the link down
- */
- lcp_close(unit, "Authentication failed");
- status = EXIT_PEER_AUTH_FAILED;
-}
-
-/*
- * The peer has been successfully authenticated using `protocol'.
- */
-void
-auth_peer_success(unit, protocol, name, namelen)
- int unit, protocol;
- char *name;
- int namelen;
-{
- int bit;
-
- switch (protocol) {
- case PPP_CHAP:
- bit = CHAP_PEER;
- break;
- case PPP_PAP:
- bit = PAP_PEER;
- break;
- default:
- warn("auth_peer_success: unknown protocol %x", protocol);
- return;
- }
-
- /*
- * Save the authenticated name of the peer for later.
- */
- if (namelen > sizeof(peer_authname) - 1)
- namelen = sizeof(peer_authname) - 1;
- BCOPY(name, peer_authname, namelen);
- peer_authname[namelen] = 0;
- script_setenv("PEERNAME", peer_authname, 0);
-
- /*
- * If there is no more authentication still to be done,
- * proceed to the network (or callback) phase.
- */
- if ((auth_pending[unit] &= ~bit) == 0)
- network_phase(unit);
-}
-
-/*
- * We have failed to authenticate ourselves to the peer using `protocol'.
- */
-void
-auth_withpeer_fail(unit, protocol)
- int unit, protocol;
-{
- if (passwd_from_file)
- BZERO(passwd, MAXSECRETLEN);
- /*
- * We've failed to authenticate ourselves to our peer.
- * Some servers keep sending CHAP challenges, but there
- * is no point in persisting without any way to get updated
- * authentication secrets.
- */
- lcp_close(unit, "Failed to authenticate ourselves to peer");
- status = EXIT_AUTH_TOPEER_FAILED;
-}
-
-/*
- * We have successfully authenticated ourselves with the peer using `protocol'.
- */
-void
-auth_withpeer_success(unit, protocol)
- int unit, protocol;
-{
- int bit;
-
- switch (protocol) {
- case PPP_CHAP:
- bit = CHAP_WITHPEER;
- break;
- case PPP_PAP:
- if (passwd_from_file)
- BZERO(passwd, MAXSECRETLEN);
- bit = PAP_WITHPEER;
- break;
- default:
- warn("auth_withpeer_success: unknown protocol %x", protocol);
- bit = 0;
- }
-
- /*
- * If there is no more authentication still being done,
- * proceed to the network (or callback) phase.
- */
- if ((auth_pending[unit] &= ~bit) == 0)
- network_phase(unit);
-}
-
-
-/*
- * np_up - a network protocol has come up.
- */
-void
-np_up(unit, proto)
- int unit, proto;
-{
- int tlim;
-
- if (num_np_up == 0) {
- /*
- * At this point we consider that the link has come up successfully.
- */
- status = EXIT_OK;
- unsuccess = 0;
- new_phase(PHASE_RUNNING);
-
- if (idle_time_hook != 0)
- tlim = (*idle_time_hook)(NULL);
- else
- tlim = idle_time_limit;
- if (tlim > 0)
- TIMEOUT(check_idle, NULL, tlim);
-
- /*
- * Set a timeout to close the connection once the maximum
- * connect time has expired.
- */
- if (maxconnect > 0)
- TIMEOUT(connect_time_expired, 0, maxconnect);
-
- /*
- * Detach now, if the updetach option was given.
- */
- if (updetach && !nodetach)
- detach();
- }
- ++num_np_up;
-}
-
-/*
- * np_down - a network protocol has gone down.
- */
-void
-np_down(unit, proto)
- int unit, proto;
-{
- if (--num_np_up == 0) {
- UNTIMEOUT(check_idle, NULL);
- new_phase(PHASE_NETWORK);
- }
-}
-
-/*
- * np_finished - a network protocol has finished using the link.
- */
-void
-np_finished(unit, proto)
- int unit, proto;
-{
- if (--num_np_open <= 0) {
- /* no further use for the link: shut up shop. */
- lcp_close(0, "No network protocols running");
- }
-}
-
-/*
- * check_idle - check whether the link has been idle for long
- * enough that we can shut it down.
- */
-static void
-check_idle(arg)
- void *arg;
-{
- struct ppp_idle idle;
- time_t itime;
- int tlim;
-
- if (!get_idle_time(0, &idle))
- return;
- if (idle_time_hook != 0) {
- tlim = idle_time_hook(&idle);
- } else {
- itime = MIN(idle.xmit_idle, idle.recv_idle);
- tlim = idle_time_limit - itime;
- }
- if (tlim <= 0) {
- /* link is idle: shut it down. */
- notice("Terminating connection due to lack of activity.");
- lcp_close(0, "Link inactive");
- need_holdoff = 0;
- status = EXIT_IDLE_TIMEOUT;
- } else {
- TIMEOUT(check_idle, NULL, tlim);
- }
-}
-
-/*
- * connect_time_expired - log a message and close the connection.
- */
-static void
-connect_time_expired(arg)
- void *arg;
-{
- info("Connect time expired");
- lcp_close(0, "Connect time expired"); /* Close connection */
- status = EXIT_CONNECT_TIME;
-}
-
-/*
- * auth_check_options - called to check authentication options.
- */
-void
-auth_check_options()
-{
- lcp_options *wo = &lcp_wantoptions[0];
- int can_auth;
- int lacks_ip;
-
- /* Default our_name to hostname, and user to our_name */
- if (our_name[0] == 0 || usehostname)
- strlcpy(our_name, hostname, sizeof(our_name));
- if (user[0] == 0)
- strlcpy(user, our_name, sizeof(user));
-
- /*
- * If we have a default route, require the peer to authenticate
- * unless the noauth option was given or the real user is root.
- */
- if (!auth_required && !allow_any_ip && have_route_to(0) && !privileged) {
- auth_required = 1;
- default_auth = 1;
- }
-
- /* If authentication is required, ask peer for CHAP or PAP. */
- if (auth_required) {
- allow_any_ip = 0;
- if (!wo->neg_chap && !wo->neg_upap) {
- wo->neg_chap = 1;
- wo->neg_upap = 1;
- }
- } else {
- wo->neg_chap = 0;
- wo->neg_upap = 0;
- }
-
- /*
- * Check whether we have appropriate secrets to use
- * to authenticate the peer.
- */
- lacks_ip = 0;
- can_auth = wo->neg_upap && (uselogin || have_pap_secret(&lacks_ip));
- if (!can_auth && wo->neg_chap) {
- can_auth = have_chap_secret((explicit_remote? remote_name: NULL),
- our_name, 1, &lacks_ip);
- }
-
- if (auth_required && !can_auth && noauth_addrs == NULL) {
- if (default_auth) {
- option_error(
-"By default the remote system is required to authenticate itself");
- option_error(
-"(because this system has a default route to the internet)");
- } else if (explicit_remote)
- option_error(
-"The remote system (%s) is required to authenticate itself",
- remote_name);
- else
- option_error(
-"The remote system is required to authenticate itself");
- option_error(
-"but I couldn't find any suitable secret (password) for it to use to do so.");
- if (lacks_ip)
- option_error(
-"(None of the available passwords would let it use an IP address.)");
-
- exit(1);
- }
-}
-
-/*
- * auth_reset - called when LCP is starting negotiations to recheck
- * authentication options, i.e. whether we have appropriate secrets
- * to use for authenticating ourselves and/or the peer.
- */
-void
-auth_reset(unit)
- int unit;
-{
- lcp_options *go = &lcp_gotoptions[unit];
- lcp_options *ao = &lcp_allowoptions[0];
-
- ao->neg_upap = !refuse_pap && (passwd[0] != 0 || get_pap_passwd(NULL));
- ao->neg_chap = !refuse_chap
- && (passwd[0] != 0
- || have_chap_secret(user, (explicit_remote? remote_name: NULL),
- 0, NULL));
-
- if (go->neg_upap && !uselogin && !have_pap_secret(NULL))
- go->neg_upap = 0;
- if (go->neg_chap) {
- if (!have_chap_secret((explicit_remote? remote_name: NULL),
- our_name, 1, NULL))
- go->neg_chap = 0;
- }
-}
-
-
-/*
- * check_passwd - Check the user name and passwd against the PAP secrets
- * file. If requested, also check against the system password database,
- * and login the user if OK.
- *
- * returns:
- * UPAP_AUTHNAK: Authentication failed.
- * UPAP_AUTHACK: Authentication succeeded.
- * In either case, msg points to an appropriate message.
- */
-int
-check_passwd(unit, auser, userlen, apasswd, passwdlen, msg)
- int unit;
- char *auser;
- int userlen;
- char *apasswd;
- int passwdlen;
- char **msg;
-{
- int ret;
- char *filename;
- FILE *f;
- struct wordlist *addrs = NULL, *opts = NULL;
- char passwd[256], user[256];
- char secret[MAXWORDLEN];
- static int attempts = 0;
-
- /*
- * Make copies of apasswd and auser, then null-terminate them.
- * If there are unprintable characters in the password, make
- * them visible.
- */
- slprintf(passwd, sizeof(passwd), "%.*v", passwdlen, apasswd);
- slprintf(user, sizeof(user), "%.*v", userlen, auser);
- *msg = "";
-
- /*
- * Check if a plugin wants to handle this.
- */
- if (pap_auth_hook) {
- ret = (*pap_auth_hook)(user, passwd, msg, &addrs, &opts);
- if (ret >= 0) {
- if (ret)
- set_allowed_addrs(unit, addrs, opts);
- BZERO(passwd, sizeof(passwd));
- if (addrs != 0)
- free_wordlist(addrs);
- return ret? UPAP_AUTHACK: UPAP_AUTHNAK;
- }
- }
-
- /*
- * Open the file of pap secrets and scan for a suitable secret
- * for authenticating this user.
- */
- filename = _PATH_UPAPFILE;
- addrs = opts = NULL;
- ret = UPAP_AUTHNAK;
- f = fopen(filename, "r");
- if (f == NULL) {
- error("Can't open PAP password file %s: %m", filename);
-
- } else {
- check_access(f, filename);
- if (scan_authfile(f, user, our_name, secret, &addrs, &opts, filename) < 0) {
- warn("no PAP secret found for %s", user);
- } else {
- /*
- * If the secret is "@login", it means to check
- * the password against the login database.
- */
- int login_secret = strcmp(secret, "@login") == 0;
- ret = UPAP_AUTHACK;
- if (uselogin || login_secret) {
- /* login option or secret is @login */
- ret = plogin(user, passwd, msg);
- if (ret == UPAP_AUTHNAK)
- warn("PAP login failure for %s", user);
- else
- used_login = 1;
- }
- if (secret[0] != 0 && !login_secret) {
- /* password given in pap-secrets - must match */
- if ((cryptpap || strcmp(passwd, secret) != 0)
- && strcmp(crypt(passwd, secret), secret) != 0) {
- ret = UPAP_AUTHNAK;
- warn("PAP authentication failure for %s", user);
- }
- }
- }
- fclose(f);
- }
-
- if (ret == UPAP_AUTHNAK) {
- if (**msg == 0)
- *msg = "Login incorrect";
- /*
- * XXX can we ever get here more than once??
- * Frustrate passwd stealer programs.
- * Allow 10 tries, but start backing off after 3 (stolen from login).
- * On 10'th, drop the connection.
- */
- if (attempts++ >= 10) {
- warn("%d LOGIN FAILURES ON %s, %s", attempts, devnam, user);
- lcp_close(unit, "login failed");
- }
- if (attempts > 3)
- sleep((u_int) (attempts - 3) * 5);
- if (opts != NULL)
- free_wordlist(opts);
-
- } else {
- attempts = 0; /* Reset count */
- if (**msg == 0)
- *msg = "Login ok";
- set_allowed_addrs(unit, addrs, opts);
- }
-
- if (addrs != NULL)
- free_wordlist(addrs);
- BZERO(passwd, sizeof(passwd));
- BZERO(secret, sizeof(secret));
-
- return ret;
-}
-
-/*
- * This function is needed for PAM.
- */
-
-#ifdef USE_PAM
-/* Static variables used to communicate between the conversation function
- * and the server_login function
- */
-static char *PAM_username;
-static char *PAM_password;
-static int PAM_error = 0;
-static pam_handle_t *pamh = NULL;
-
-/* PAM conversation function
- * Here we assume (for now, at least) that echo on means login name, and
- * echo off means password.
- */
-
-static int PAM_conv (int num_msg, const struct pam_message **msg,
- struct pam_response **resp, void *appdata_ptr)
-{
- int replies = 0;
- struct pam_response *reply = NULL;
-
-#define COPY_STRING(s) (s) ? strdup(s) : NULL
-
- reply = malloc(sizeof(struct pam_response) * num_msg);
- if (!reply) return PAM_CONV_ERR;
-
- for (replies = 0; replies < num_msg; replies++) {
- switch (msg[replies]->msg_style) {
- case PAM_PROMPT_ECHO_ON:
- reply[replies].resp_retcode = PAM_SUCCESS;
- reply[replies].resp = COPY_STRING(PAM_username);
- /* PAM frees resp */
- break;
- case PAM_PROMPT_ECHO_OFF:
- reply[replies].resp_retcode = PAM_SUCCESS;
- reply[replies].resp = COPY_STRING(PAM_password);
- /* PAM frees resp */
- break;
- case PAM_TEXT_INFO:
- /* fall through */
- case PAM_ERROR_MSG:
- /* ignore it, but pam still wants a NULL response... */
- reply[replies].resp_retcode = PAM_SUCCESS;
- reply[replies].resp = NULL;
- break;
- default:
- /* Must be an error of some sort... */
- free (reply);
- PAM_error = 1;
- return PAM_CONV_ERR;
- }
- }
- *resp = reply;
- return PAM_SUCCESS;
-}
-
-static struct pam_conv PAM_conversation = {
- &PAM_conv,
- NULL
-};
-#endif /* USE_PAM */
-
-/*
- * plogin - Check the user name and password against the system
- * password database, and login the user if OK.
- *
- * returns:
- * UPAP_AUTHNAK: Login failed.
- * UPAP_AUTHACK: Login succeeded.
- * In either case, msg points to an appropriate message.
- */
-
-static int
-plogin(user, passwd, msg)
- char *user;
- char *passwd;
- char **msg;
-{
- char *tty;
-
-#ifdef USE_PAM
- int pam_error;
-
- pam_error = pam_start ("ppp", user, &PAM_conversation, &pamh);
- if (pam_error != PAM_SUCCESS) {
- *msg = (char *) pam_strerror (pamh, pam_error);
- reopen_log();
- return UPAP_AUTHNAK;
- }
- /*
- * Define the fields for the credential validation
- */
-
- PAM_username = user;
- PAM_password = passwd;
- PAM_error = 0;
- pam_set_item (pamh, PAM_TTY, devnam); /* this might be useful to some modules */
-
- /*
- * Validate the user
- */
- pam_error = pam_authenticate (pamh, PAM_SILENT);
- if (pam_error == PAM_SUCCESS && !PAM_error) {
- pam_error = pam_acct_mgmt (pamh, PAM_SILENT);
- if (pam_error == PAM_SUCCESS)
- pam_error = pam_open_session (pamh, PAM_SILENT);
- }
-
- *msg = (char *) pam_strerror (pamh, pam_error);
-
- /*
- * Clean up the mess
- */
- reopen_log(); /* apparently the PAM stuff does closelog() */
- PAM_username = NULL;
- PAM_password = NULL;
- if (pam_error != PAM_SUCCESS)
- return UPAP_AUTHNAK;
-#else /* #ifdef USE_PAM */
-
-/*
- * Use the non-PAM methods directly
- */
-
-#ifdef HAS_SHADOW
- struct spwd *spwd;
- struct spwd *getspnam();
-#endif
- struct passwd *pw = getpwnam(user);
-
- endpwent();
- if (pw == NULL)
- return (UPAP_AUTHNAK);
-
-#ifdef HAS_SHADOW
- spwd = getspnam(user);
- endspent();
- if (spwd) {
- /* check the age of the password entry */
- long now = time(NULL) / 86400L;
-
- if ((spwd->sp_expire > 0 && now >= spwd->sp_expire)
- || ((spwd->sp_max >= 0 && spwd->sp_max < 10000)
- && spwd->sp_lstchg >= 0
- && now >= spwd->sp_lstchg + spwd->sp_max)) {
- warn("Password for %s has expired", user);
- return (UPAP_AUTHNAK);
- }
- pw->pw_passwd = spwd->sp_pwdp;
- }
-#endif
-
- /*
- * If no passwd, don't let them login.
- */
- if (pw->pw_passwd == NULL || strlen(pw->pw_passwd) < 2
- || strcmp(crypt(passwd, pw->pw_passwd), pw->pw_passwd) != 0)
- return (UPAP_AUTHNAK);
-
-#endif /* #ifdef USE_PAM */
-
- /*
- * Write a wtmp entry for this user.
- */
-
- tty = devnam;
- if (strncmp(tty, "/dev/", 5) == 0)
- tty += 5;
-// logwtmp(tty, user, remote_name); /* Add wtmp login entry */
-
-#if defined(_PATH_LASTLOG) && !defined(USE_PAM)
- if (pw != (struct passwd *)NULL) {
- struct lastlog ll;
- int fd;
-
- if ((fd = open(_PATH_LASTLOG, O_RDWR, 0)) >= 0) {
- (void)lseek(fd, (off_t)(pw->pw_uid * sizeof(ll)), SEEK_SET);
- memset((void *)&ll, 0, sizeof(ll));
- (void)time(&ll.ll_time);
- (void)strncpy(ll.ll_line, tty, sizeof(ll.ll_line));
- (void)write(fd, (char *)&ll, sizeof(ll));
- (void)close(fd);
- }
- }
-#endif /* _PATH_LASTLOG and not USE_PAM */
-
- info("user %s logged in", user);
- logged_in = 1;
-
- return (UPAP_AUTHACK);
-}
-
-/*
- * plogout - Logout the user.
- */
-static void
-plogout()
-{
-#ifdef USE_PAM
- int pam_error;
-
- if (pamh != NULL) {
- pam_error = pam_close_session (pamh, PAM_SILENT);
- pam_end (pamh, pam_error);
- pamh = NULL;
- }
- /* Apparently the pam stuff does closelog(). */
- reopen_log();
-#else /* ! USE_PAM */
- char *tty;
-
- tty = devnam;
- if (strncmp(tty, "/dev/", 5) == 0)
- tty += 5;
-// logwtmp(tty, "", ""); /* Wipe out utmp logout entry */
-#endif /* ! USE_PAM */
- logged_in = 0;
-}
-
-
-/*
- * null_login - Check if a username of "" and a password of "" are
- * acceptable, and iff so, set the list of acceptable IP addresses
- * and return 1.
- */
-static int
-null_login(unit)
- int unit;
-{
- char *filename;
- FILE *f;
- int i, ret;
- struct wordlist *addrs, *opts;
- char secret[MAXWORDLEN];
-
- /*
- * Open the file of pap secrets and scan for a suitable secret.
- */
- filename = _PATH_UPAPFILE;
- addrs = NULL;
- f = fopen(filename, "r");
- if (f == NULL)
- return 0;
- check_access(f, filename);
-
- i = scan_authfile(f, "", our_name, secret, &addrs, &opts, filename);
- ret = i >= 0 && secret[0] == 0;
- BZERO(secret, sizeof(secret));
-
- if (ret)
- set_allowed_addrs(unit, addrs, opts);
- else if (opts != 0)
- free_wordlist(opts);
- if (addrs != 0)
- free_wordlist(addrs);
-
- fclose(f);
- return ret;
-}
-
-
-/*
- * get_pap_passwd - get a password for authenticating ourselves with
- * our peer using PAP. Returns 1 on success, 0 if no suitable password
- * could be found.
- * Assumes passwd points to MAXSECRETLEN bytes of space (if non-null).
- */
-static int
-get_pap_passwd(passwd)
- char *passwd;
-{
- char *filename;
- FILE *f;
- int ret;
- char secret[MAXWORDLEN];
-
- /*
- * Check whether a plugin wants to supply this.
- */
- if (pap_passwd_hook) {
- ret = (*pap_passwd_hook)(user, passwd);
- if (ret >= 0)
- return ret;
- }
-
- filename = _PATH_UPAPFILE;
- f = fopen(filename, "r");
- if (f == NULL)
- return 0;
- check_access(f, filename);
- ret = scan_authfile(f, user,
- (remote_name[0]? remote_name: NULL),
- secret, NULL, NULL, filename);
- fclose(f);
- if (ret < 0)
- return 0;
- if (passwd != NULL)
- strlcpy(passwd, secret, MAXSECRETLEN);
- BZERO(secret, sizeof(secret));
- return 1;
-}
-
-
-/*
- * have_pap_secret - check whether we have a PAP file with any
- * secrets that we could possibly use for authenticating the peer.
- */
-static int
-have_pap_secret(lacks_ipp)
- int *lacks_ipp;
-{
- FILE *f;
- int ret;
- char *filename;
- struct wordlist *addrs;
-
- /* let the plugin decide, if there is one */
- if (pap_check_hook) {
- ret = (*pap_check_hook)();
- if (ret >= 0)
- return ret;
- }
-
- filename = _PATH_UPAPFILE;
- f = fopen(filename, "r");
- if (f == NULL)
- return 0;
-
- ret = scan_authfile(f, (explicit_remote? remote_name: NULL), our_name,
- NULL, &addrs, NULL, filename);
- fclose(f);
- if (ret >= 0 && !some_ip_ok(addrs)) {
- if (lacks_ipp != 0)
- *lacks_ipp = 1;
- ret = -1;
- }
- if (addrs != 0)
- free_wordlist(addrs);
-
- return ret >= 0;
-}
-
-
-/*
- * have_chap_secret - check whether we have a CHAP file with a
- * secret that we could possibly use for authenticating `client'
- * on `server'. Either can be the null string, meaning we don't
- * know the identity yet.
- */
-static int
-have_chap_secret(client, server, need_ip, lacks_ipp)
- char *client;
- char *server;
- int need_ip;
- int *lacks_ipp;
-{
- FILE *f;
- int ret;
- char *filename;
- struct wordlist *addrs;
-
- filename = _PATH_CHAPFILE;
- f = fopen(filename, "r");
- if (f == NULL)
- return 0;
-
- if (client != NULL && client[0] == 0)
- client = NULL;
- else if (server != NULL && server[0] == 0)
- server = NULL;
-
- ret = scan_authfile(f, client, server, NULL, &addrs, NULL, filename);
- fclose(f);
- if (ret >= 0 && need_ip && !some_ip_ok(addrs)) {
- if (lacks_ipp != 0)
- *lacks_ipp = 1;
- ret = -1;
- }
- if (addrs != 0)
- free_wordlist(addrs);
-
- return ret >= 0;
-}
-
-
-/*
- * get_secret - open the CHAP secret file and return the secret
- * for authenticating the given client on the given server.
- * (We could be either client or server).
- */
-int
-get_secret(unit, client, server, secret, secret_len, am_server)
- int unit;
- char *client;
- char *server;
- char *secret;
- int *secret_len;
- int am_server;
-{
- FILE *f;
- int ret, len;
- char *filename;
- struct wordlist *addrs, *opts;
- char secbuf[MAXWORDLEN];
-
- if (!am_server && passwd[0] != 0) {
- strlcpy(secbuf, passwd, sizeof(secbuf));
- } else {
- filename = _PATH_CHAPFILE;
- addrs = NULL;
- secbuf[0] = 0;
-
- f = fopen(filename, "r");
- if (f == NULL) {
- error("Can't open chap secret file %s: %m", filename);
- return 0;
- }
- check_access(f, filename);
-
- ret = scan_authfile(f, client, server, secbuf, &addrs, &opts, filename);
- fclose(f);
- if (ret < 0)
- return 0;
-
- if (am_server)
- set_allowed_addrs(unit, addrs, opts);
- else if (opts != 0)
- free_wordlist(opts);
- if (addrs != 0)
- free_wordlist(addrs);
- }
-
- len = strlen(secbuf);
- if (len > MAXSECRETLEN) {
- error("Secret for %s on %s is too long", client, server);
- len = MAXSECRETLEN;
- }
- BCOPY(secbuf, secret, len);
- BZERO(secbuf, sizeof(secbuf));
- *secret_len = len;
-
- return 1;
-}
-
-/*
- * set_allowed_addrs() - set the list of allowed addresses.
- * Also looks for `--' indicating options to apply for this peer
- * and leaves the following words in extra_options.
- */
-static void
-set_allowed_addrs(unit, addrs, opts)
- int unit;
- struct wordlist *addrs;
- struct wordlist *opts;
-{
- int n;
- struct wordlist *ap, **plink;
- struct permitted_ip *ip;
- char *ptr_word, *ptr_mask;
- struct hostent *hp;
- u_int32_t a, mask, offset;
- struct ipcp_options *wo = &ipcp_wantoptions[unit];
- u_int32_t suggested_ip = 0;
-
- if (addresses[unit] != NULL)
- free(addresses[unit]);
- addresses[unit] = NULL;
- if (extra_options != NULL)
- free_wordlist(extra_options);
- extra_options = opts;
-
- /*
- * Count the number of IP addresses given.
- */
- n = wordlist_count(addrs) + wordlist_count(noauth_addrs);
- if (n == 0)
- return;
- ip = (struct permitted_ip *) malloc((n + 1) * sizeof(struct permitted_ip));
- if (ip == 0)
- return;
-
- /* temporarily append the noauth_addrs list to addrs */
- for (plink = &addrs; *plink != NULL; plink = &(*plink)->next)
- ;
- *plink = noauth_addrs;
-
- n = 0;
- for (ap = addrs; ap != NULL; ap = ap->next) {
- /* "-" means no addresses authorized, "*" means any address allowed */
- ptr_word = ap->word;
- if (strcmp(ptr_word, "-") == 0)
- break;
- if (strcmp(ptr_word, "*") == 0) {
- ip[n].permit = 1;
- ip[n].base = ip[n].mask = 0;
- ++n;
- break;
- }
-
- ip[n].permit = 1;
- if (*ptr_word == '!') {
- ip[n].permit = 0;
- ++ptr_word;
- }
-
- mask = ~ (u_int32_t) 0;
- offset = 0;
- ptr_mask = strchr (ptr_word, '/');
- if (ptr_mask != NULL) {
- int bit_count;
- char *endp;
-
- bit_count = (int) strtol (ptr_mask+1, &endp, 10);
- if (bit_count <= 0 || bit_count > 32) {
- warn("invalid address length %v in auth. address list",
- ptr_mask+1);
- continue;
- }
- bit_count = 32 - bit_count; /* # bits in host part */
- if (*endp == '+') {
- offset = ifunit + 1;
- ++endp;
- }
- if (*endp != 0) {
- warn("invalid address length syntax: %v", ptr_mask+1);
- continue;
- }
- *ptr_mask = '\0';
- mask <<= bit_count;
- }
-
- hp = gethostbyname(ptr_word);
- if (hp != NULL && hp->h_addrtype == AF_INET) {
- a = *(u_int32_t *)hp->h_addr;
- } else {
- printf("*** getnetbyname is unsupported, please report bug! ***\n");
- return;
- }
-
- if (ptr_mask != NULL)
- *ptr_mask = '/';
-
- if (a == (u_int32_t)-1L) {
- warn("unknown host %s in auth. address list", ap->word);
- continue;
- }
- if (offset != 0) {
- if (offset >= ~mask) {
- warn("interface unit %d too large for subnet %v",
- ifunit, ptr_word);
- continue;
- }
- a = htonl((ntohl(a) & mask) + offset);
- mask = ~(u_int32_t)0;
- }
- ip[n].mask = htonl(mask);
- ip[n].base = a & ip[n].mask;
- ++n;
- if (~mask == 0 && suggested_ip == 0)
- suggested_ip = a;
- }
- *plink = NULL;
-
- ip[n].permit = 0; /* make the last entry forbid all addresses */
- ip[n].base = 0; /* to terminate the list */
- ip[n].mask = 0;
-
- addresses[unit] = ip;
-
- /*
- * If the address given for the peer isn't authorized, or if
- * the user hasn't given one, AND there is an authorized address
- * which is a single host, then use that if we find one.
- */
- if (suggested_ip != 0
- && (wo->hisaddr == 0 || !auth_ip_addr(unit, wo->hisaddr))) {
- wo->hisaddr = suggested_ip;
- /*
- * Do we insist on this address? No, if there are other
- * addresses authorized than the suggested one.
- */
- if (n > 1)
- wo->accept_remote = 1;
- }
-}
-
-/*
- * auth_ip_addr - check whether the peer is authorized to use
- * a given IP address. Returns 1 if authorized, 0 otherwise.
- */
-int
-auth_ip_addr(unit, addr)
- int unit;
- u_int32_t addr;
-{
- int ok;
-
- /* don't allow loopback or multicast address */
- if (bad_ip_adrs(addr))
- return 0;
-
- if (addresses[unit] != NULL) {
- ok = ip_addr_check(addr, addresses[unit]);
- if (ok >= 0)
- return ok;
- }
- if (auth_required)
- return 0; /* no addresses authorized */
- return allow_any_ip || privileged || !have_route_to(addr);
-}
-
-static int
-ip_addr_check(addr, addrs)
- u_int32_t addr;
- struct permitted_ip *addrs;
-{
- for (; ; ++addrs)
- if ((addr & addrs->mask) == addrs->base)
- return addrs->permit;
-}
-
-/*
- * bad_ip_adrs - return 1 if the IP address is one we don't want
- * to use, such as an address in the loopback net or a multicast address.
- * addr is in network byte order.
- */
-int
-bad_ip_adrs(addr)
- u_int32_t addr;
-{
- addr = ntohl(addr);
- return (addr >> IN_CLASSA_NSHIFT) == IN_LOOPBACKNET
- || IN_MULTICAST(addr) || IN_BADCLASS(addr);
-}
-
-/*
- * some_ip_ok - check a wordlist to see if it authorizes any
- * IP address(es).
- */
-static int
-some_ip_ok(addrs)
- struct wordlist *addrs;
-{
- for (; addrs != 0; addrs = addrs->next) {
- if (addrs->word[0] == '-')
- break;
- if (addrs->word[0] != '!')
- return 1; /* some IP address is allowed */
- }
- return 0;
-}
-
-/*
- * check_access - complain if a secret file has too-liberal permissions.
- */
-static void
-check_access(f, filename)
- FILE *f;
- char *filename;
-{
- struct stat sbuf;
-
- if (fstat(fileno(f), &sbuf) < 0) {
- warn("cannot stat secret file %s: %m", filename);
- } else if ((sbuf.st_mode & (S_IRWXG | S_IRWXO)) != 0) {
- warn("Warning - secret file %s has world and/or group access",
- filename);
- }
-}
-
-
-/*
- * scan_authfile - Scan an authorization file for a secret suitable
- * for authenticating `client' on `server'. The return value is -1
- * if no secret is found, otherwise >= 0. The return value has
- * NONWILD_CLIENT set if the secret didn't have "*" for the client, and
- * NONWILD_SERVER set if the secret didn't have "*" for the server.
- * Any following words on the line up to a "--" (i.e. address authorization
- * info) are placed in a wordlist and returned in *addrs. Any
- * following words (extra options) are placed in a wordlist and
- * returned in *opts.
- * We assume secret is NULL or points to MAXWORDLEN bytes of space.
- */
-static int
-scan_authfile(f, client, server, secret, addrs, opts, filename)
- FILE *f;
- char *client;
- char *server;
- char *secret;
- struct wordlist **addrs;
- struct wordlist **opts;
- char *filename;
-{
- int newline, xxx;
- int got_flag, best_flag;
- FILE *sf;
- struct wordlist *ap, *addr_list, *alist, **app;
- char word[MAXWORDLEN];
- char atfile[MAXWORDLEN];
- char lsecret[MAXWORDLEN];
-
- if (addrs != NULL)
- *addrs = NULL;
- if (opts != NULL)
- *opts = NULL;
- addr_list = NULL;
- if (!getword(f, word, &newline, filename))
- return -1; /* file is empty??? */
- newline = 1;
- best_flag = -1;
- for (;;) {
- /*
- * Skip until we find a word at the start of a line.
- */
- while (!newline && getword(f, word, &newline, filename))
- ;
- if (!newline)
- break; /* got to end of file */
-
- /*
- * Got a client - check if it's a match or a wildcard.
- */
- got_flag = 0;
- if (client != NULL && strcmp(word, client) != 0 && !ISWILD(word)) {
- newline = 0;
- continue;
- }
- if (!ISWILD(word))
- got_flag = NONWILD_CLIENT;
-
- /*
- * Now get a server and check if it matches.
- */
- if (!getword(f, word, &newline, filename))
- break;
- if (newline)
- continue;
- if (!ISWILD(word)) {
- if (server != NULL && strcmp(word, server) != 0)
- continue;
- got_flag |= NONWILD_SERVER;
- }
-
- /*
- * Got some sort of a match - see if it's better than what
- * we have already.
- */
- if (got_flag <= best_flag)
- continue;
-
- /*
- * Get the secret.
- */
- if (!getword(f, word, &newline, filename))
- break;
- if (newline)
- continue;
-
- if (secret != NULL) {
- /*
- * Special syntax: @/pathname means read secret from file.
- */
- if (word[0] == '@' && word[1] == '/') {
- strlcpy(atfile, word+1, sizeof(atfile));
- if ((sf = fopen(atfile, "r")) == NULL) {
- warn("can't open indirect secret file %s", atfile);
- continue;
- }
- check_access(sf, atfile);
- if (!getword(sf, word, &xxx, atfile)) {
- warn("no secret in indirect secret file %s", atfile);
- fclose(sf);
- continue;
- }
- fclose(sf);
- }
- strlcpy(lsecret, word, sizeof(lsecret));
- }
-
- /*
- * Now read address authorization info and make a wordlist.
- */
- app = &alist;
- for (;;) {
- if (!getword(f, word, &newline, filename) || newline)
- break;
- ap = (struct wordlist *)
- malloc(sizeof(struct wordlist) + strlen(word) + 1);
- if (ap == NULL)
- novm("authorized addresses");
- ap->word = (char *) (ap + 1);
- strcpy(ap->word, word);
- *app = ap;
- app = &ap->next;
- }
- *app = NULL;
-
- /*
- * This is the best so far; remember it.
- */
- best_flag = got_flag;
- if (addr_list)
- free_wordlist(addr_list);
- addr_list = alist;
- if (secret != NULL)
- strlcpy(secret, lsecret, MAXWORDLEN);
-
- if (!newline)
- break;
- }
-
- /* scan for a -- word indicating the start of options */
- for (app = &addr_list; (ap = *app) != NULL; app = &ap->next)
- if (strcmp(ap->word, "--") == 0)
- break;
- /* ap = start of options */
- if (ap != NULL) {
- ap = ap->next; /* first option */
- free(*app); /* free the "--" word */
- *app = NULL; /* terminate addr list */
- }
- if (opts != NULL)
- *opts = ap;
- else if (ap != NULL)
- free_wordlist(ap);
- if (addrs != NULL)
- *addrs = addr_list;
- else if (addr_list != NULL)
- free_wordlist(addr_list);
-
- return best_flag;
-}
-
-/*
- * wordlist_count - return the number of items in a wordlist
- */
-static int
-wordlist_count(wp)
- struct wordlist *wp;
-{
- int n;
-
- for (n = 0; wp != NULL; wp = wp->next)
- ++n;
- return n;
-}
-
-/*
- * free_wordlist - release memory allocated for a wordlist.
- */
-static void
-free_wordlist(wp)
- struct wordlist *wp;
-{
- struct wordlist *next;
-
- while (wp != NULL) {
- next = wp->next;
- free(wp);
- wp = next;
- }
-}
-
-/*
- * auth_script_done - called when the auth-up or auth-down script
- * has finished.
- */
-static void
-auth_script_done(arg)
- void *arg;
-{
- auth_script_pid = 0;
- switch (auth_script_state) {
- case s_up:
- if (auth_state == s_down) {
- auth_script_state = s_down;
- auth_script(_PATH_AUTHDOWN);
- }
- break;
- case s_down:
- if (auth_state == s_up) {
- auth_script_state = s_up;
- auth_script(_PATH_AUTHUP);
- }
- break;
- }
-}
-
-/*
- * auth_script - execute a script with arguments
- * interface-name peer-name real-user tty speed
- */
-static void
-auth_script(script)
- char *script;
-{
- char strspeed[32];
- struct passwd *pw;
- char struid[32];
- char *user_name;
- char *argv[8];
-
- if ((pw = getpwuid(getuid())) != NULL && pw->pw_name != NULL)
- user_name = pw->pw_name;
- else {
- slprintf(struid, sizeof(struid), "%d", getuid());
- user_name = struid;
- }
- slprintf(strspeed, sizeof(strspeed), "%d", baud_rate);
-
- argv[0] = script;
- argv[1] = ifname;
- argv[2] = peer_authname;
- argv[3] = user_name;
- argv[4] = devnam;
- argv[5] = strspeed;
- argv[6] = NULL;
-
- auth_script_pid = run_program(script, argv, 0, auth_script_done, NULL);
-}
diff --git a/mdk-stage1/ppp/pppd/cbcp.c b/mdk-stage1/ppp/pppd/cbcp.c
deleted file mode 100644
index 8c57b3cde..000000000
--- a/mdk-stage1/ppp/pppd/cbcp.c
+++ /dev/null
@@ -1,456 +0,0 @@
-/*
- * cbcp - Call Back Configuration Protocol.
- *
- * Copyright (c) 1995 Pedro Roque Marques
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Pedro Roque Marques. The name of the author may not be used to
- * endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#define RCSID "$Id$"
-
-#include <stdio.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/time.h>
-
-#include "pppd.h"
-#include "cbcp.h"
-#include "fsm.h"
-#include "lcp.h"
-
-static const char rcsid[] = RCSID;
-
-/*
- * Options.
- */
-static int setcbcp __P((char **));
-
-static option_t cbcp_option_list[] = {
- { "callback", o_special, setcbcp,
- "Ask for callback", OPT_PRIO | OPT_A2STRVAL, &cbcp[0].us_number },
- { NULL }
-};
-
-/*
- * Protocol entry points.
- */
-static void cbcp_init __P((int unit));
-static void cbcp_open __P((int unit));
-static void cbcp_lowerup __P((int unit));
-static void cbcp_input __P((int unit, u_char *pkt, int len));
-static void cbcp_protrej __P((int unit));
-static int cbcp_printpkt __P((u_char *pkt, int len,
- void (*printer) __P((void *, char *, ...)),
- void *arg));
-
-struct protent cbcp_protent = {
- PPP_CBCP,
- cbcp_init,
- cbcp_input,
- cbcp_protrej,
- cbcp_lowerup,
- NULL,
- cbcp_open,
- NULL,
- cbcp_printpkt,
- NULL,
- 0,
- "CBCP",
- NULL,
- cbcp_option_list,
- NULL,
- NULL,
- NULL
-};
-
-cbcp_state cbcp[NUM_PPP];
-
-/* internal prototypes */
-
-static void cbcp_recvreq __P((cbcp_state *us, char *pckt, int len));
-static void cbcp_resp __P((cbcp_state *us));
-static void cbcp_up __P((cbcp_state *us));
-static void cbcp_recvack __P((cbcp_state *us, char *pckt, int len));
-static void cbcp_send __P((cbcp_state *us, u_char code, u_char *buf, int len));
-
-/* option processing */
-static int
-setcbcp(argv)
- char **argv;
-{
- lcp_wantoptions[0].neg_cbcp = 1;
- cbcp_protent.enabled_flag = 1;
- cbcp[0].us_number = strdup(*argv);
- if (cbcp[0].us_number == 0)
- novm("callback number");
- cbcp[0].us_type |= (1 << CB_CONF_USER);
- cbcp[0].us_type |= (1 << CB_CONF_ADMIN);
- return (1);
-}
-
-/* init state */
-static void
-cbcp_init(iface)
- int iface;
-{
- cbcp_state *us;
-
- us = &cbcp[iface];
- memset(us, 0, sizeof(cbcp_state));
- us->us_unit = iface;
- us->us_type |= (1 << CB_CONF_NO);
-}
-
-/* lower layer is up */
-static void
-cbcp_lowerup(iface)
- int iface;
-{
- cbcp_state *us = &cbcp[iface];
-
- dbglog("cbcp_lowerup");
- dbglog("want: %d", us->us_type);
-
- if (us->us_type == CB_CONF_USER)
- dbglog("phone no: %s", us->us_number);
-}
-
-static void
-cbcp_open(unit)
- int unit;
-{
- dbglog("cbcp_open");
-}
-
-/* process an incomming packet */
-static void
-cbcp_input(unit, inpacket, pktlen)
- int unit;
- u_char *inpacket;
- int pktlen;
-{
- u_char *inp;
- u_char code, id;
- u_short len;
-
- cbcp_state *us = &cbcp[unit];
-
- inp = inpacket;
-
- if (pktlen < CBCP_MINLEN) {
- error("CBCP packet is too small");
- return;
- }
-
- GETCHAR(code, inp);
- GETCHAR(id, inp);
- GETSHORT(len, inp);
-
-#if 0
- if (len > pktlen) {
- error("CBCP packet: invalid length");
- return;
- }
-#endif
-
- len -= CBCP_MINLEN;
-
- switch(code) {
- case CBCP_REQ:
- us->us_id = id;
- cbcp_recvreq(us, inp, len);
- break;
-
- case CBCP_RESP:
- dbglog("CBCP_RESP received");
- break;
-
- case CBCP_ACK:
- if (id != us->us_id)
- dbglog("id doesn't match: expected %d recv %d",
- us->us_id, id);
-
- cbcp_recvack(us, inp, len);
- break;
-
- default:
- break;
- }
-}
-
-/* protocol was rejected by foe */
-void cbcp_protrej(int iface)
-{
-}
-
-char *cbcp_codenames[] = {
- "Request", "Response", "Ack"
-};
-
-char *cbcp_optionnames[] = {
- "NoCallback",
- "UserDefined",
- "AdminDefined",
- "List"
-};
-
-/* pretty print a packet */
-static int
-cbcp_printpkt(p, plen, printer, arg)
- u_char *p;
- int plen;
- void (*printer) __P((void *, char *, ...));
- void *arg;
-{
- int code, opt, id, len, olen, delay;
- u_char *pstart;
-
- if (plen < HEADERLEN)
- return 0;
- pstart = p;
- GETCHAR(code, p);
- GETCHAR(id, p);
- GETSHORT(len, p);
- if (len < HEADERLEN || len > plen)
- return 0;
-
- if (code >= 1 && code <= sizeof(cbcp_codenames) / sizeof(char *))
- printer(arg, " %s", cbcp_codenames[code-1]);
- else
- printer(arg, " code=0x%x", code);
-
- printer(arg, " id=0x%x", id);
- len -= HEADERLEN;
-
- switch (code) {
- case CBCP_REQ:
- case CBCP_RESP:
- case CBCP_ACK:
- while(len >= 2) {
- GETCHAR(opt, p);
- GETCHAR(olen, p);
-
- if (olen < 2 || olen > len) {
- break;
- }
-
- printer(arg, " <");
- len -= olen;
-
- if (opt >= 1 && opt <= sizeof(cbcp_optionnames) / sizeof(char *))
- printer(arg, " %s", cbcp_optionnames[opt-1]);
- else
- printer(arg, " option=0x%x", opt);
-
- if (olen > 2) {
- GETCHAR(delay, p);
- printer(arg, " delay = %d", delay);
- }
-
- if (olen > 3) {
- int addrt;
- char str[256];
-
- GETCHAR(addrt, p);
- memcpy(str, p, olen - 4);
- str[olen - 4] = 0;
- printer(arg, " number = %s", str);
- }
- printer(arg, ">");
- break;
- }
-
- default:
- break;
- }
-
- for (; len > 0; --len) {
- GETCHAR(code, p);
- printer(arg, " %.2x", code);
- }
-
- return p - pstart;
-}
-
-/* received CBCP request */
-static void
-cbcp_recvreq(us, pckt, pcktlen)
- cbcp_state *us;
- char *pckt;
- int pcktlen;
-{
- u_char type, opt_len, delay, addr_type;
- char address[256];
- int len = pcktlen;
-
- address[0] = 0;
-
- while (len) {
- dbglog("length: %d", len);
-
- GETCHAR(type, pckt);
- GETCHAR(opt_len, pckt);
-
- if (opt_len > 2)
- GETCHAR(delay, pckt);
-
- us->us_allowed |= (1 << type);
-
- switch(type) {
- case CB_CONF_NO:
- dbglog("no callback allowed");
- break;
-
- case CB_CONF_USER:
- dbglog("user callback allowed");
- if (opt_len > 4) {
- GETCHAR(addr_type, pckt);
- memcpy(address, pckt, opt_len - 4);
- address[opt_len - 4] = 0;
- if (address[0])
- dbglog("address: %s", address);
- }
- break;
-
- case CB_CONF_ADMIN:
- dbglog("user admin defined allowed");
- break;
-
- case CB_CONF_LIST:
- break;
- }
- len -= opt_len;
- }
-
- cbcp_resp(us);
-}
-
-static void
-cbcp_resp(us)
- cbcp_state *us;
-{
- u_char cb_type;
- u_char buf[256];
- u_char *bufp = buf;
- int len = 0;
-
- cb_type = us->us_allowed & us->us_type;
- dbglog("cbcp_resp cb_type=%d", cb_type);
-
-#if 0
- if (!cb_type)
- lcp_down(us->us_unit);
-#endif
-
- if (cb_type & ( 1 << CB_CONF_USER ) ) {
- dbglog("cbcp_resp CONF_USER");
- PUTCHAR(CB_CONF_USER, bufp);
- len = 3 + 1 + strlen(us->us_number) + 1;
- PUTCHAR(len , bufp);
- PUTCHAR(5, bufp); /* delay */
- PUTCHAR(1, bufp);
- BCOPY(us->us_number, bufp, strlen(us->us_number) + 1);
- cbcp_send(us, CBCP_RESP, buf, len);
- return;
- }
-
- if (cb_type & ( 1 << CB_CONF_ADMIN ) ) {
- dbglog("cbcp_resp CONF_ADMIN");
- PUTCHAR(CB_CONF_ADMIN, bufp);
- len = 3;
- PUTCHAR(len, bufp);
- PUTCHAR(5, bufp); /* delay */
- cbcp_send(us, CBCP_RESP, buf, len);
- return;
- }
-
- if (cb_type & ( 1 << CB_CONF_NO ) ) {
- dbglog("cbcp_resp CONF_NO");
- PUTCHAR(CB_CONF_NO, bufp);
- len = 3;
- PUTCHAR(len , bufp);
- PUTCHAR(0, bufp);
- cbcp_send(us, CBCP_RESP, buf, len);
- start_networks();
- return;
- }
-}
-
-static void
-cbcp_send(us, code, buf, len)
- cbcp_state *us;
- u_char code;
- u_char *buf;
- int len;
-{
- u_char *outp;
- int outlen;
-
- outp = outpacket_buf;
-
- outlen = 4 + len;
-
- MAKEHEADER(outp, PPP_CBCP);
-
- PUTCHAR(code, outp);
- PUTCHAR(us->us_id, outp);
- PUTSHORT(outlen, outp);
-
- if (len)
- BCOPY(buf, outp, len);
-
- output(us->us_unit, outpacket_buf, outlen + PPP_HDRLEN);
-}
-
-static void
-cbcp_recvack(us, pckt, len)
- cbcp_state *us;
- char *pckt;
- int len;
-{
- u_char type, delay, addr_type;
- int opt_len;
- char address[256];
-
- if (len) {
- GETCHAR(type, pckt);
- GETCHAR(opt_len, pckt);
-
- if (opt_len > 2)
- GETCHAR(delay, pckt);
-
- if (opt_len > 4) {
- GETCHAR(addr_type, pckt);
- memcpy(address, pckt, opt_len - 4);
- address[opt_len - 4] = 0;
- if (address[0])
- dbglog("peer will call: %s", address);
- }
- if (type == CB_CONF_NO)
- return;
- }
-
- cbcp_up(us);
-}
-
-/* ok peer will do callback */
-static void
-cbcp_up(us)
- cbcp_state *us;
-{
- persist = 0;
- lcp_close(0, "Call me back, please");
- status = EXIT_CALLBACK;
-}
diff --git a/mdk-stage1/ppp/pppd/cbcp.h b/mdk-stage1/ppp/pppd/cbcp.h
deleted file mode 100644
index c2ab3f689..000000000
--- a/mdk-stage1/ppp/pppd/cbcp.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef CBCP_H
-#define CBCP_H
-
-typedef struct cbcp_state {
- int us_unit; /* Interface unit number */
- u_char us_id; /* Current id */
- u_char us_allowed;
- int us_type;
- char *us_number; /* Telefone Number */
-} cbcp_state;
-
-extern cbcp_state cbcp[];
-
-extern struct protent cbcp_protent;
-
-#define CBCP_MINLEN 4
-
-#define CBCP_REQ 1
-#define CBCP_RESP 2
-#define CBCP_ACK 3
-
-#define CB_CONF_NO 1
-#define CB_CONF_USER 2
-#define CB_CONF_ADMIN 3
-#define CB_CONF_LIST 4
-#endif
diff --git a/mdk-stage1/ppp/pppd/ccp.c b/mdk-stage1/ppp/pppd/ccp.c
deleted file mode 100644
index 7e36e384e..000000000
--- a/mdk-stage1/ppp/pppd/ccp.c
+++ /dev/null
@@ -1,1257 +0,0 @@
-/*
- * ccp.c - PPP Compression Control Protocol.
- *
- * Copyright (c) 1994 The Australian National University.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies. This software is provided without any
- * warranty, express or implied. The Australian National University
- * makes no representations about the suitability of this software for
- * any purpose.
- *
- * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
- * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
- * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
- * OR MODIFICATIONS.
- */
-
-#define RCSID "$Id$"
-
-#include <stdlib.h>
-#include <string.h>
-
-#include "pppd.h"
-#include "fsm.h"
-#include "ccp.h"
-#include <net/ppp-comp.h>
-
-static const char rcsid[] = RCSID;
-
-/*
- * Unfortunately there is a bug in zlib which means that using a
- * size of 8 (window size = 256) for Deflate compression will cause
- * buffer overruns and kernel crashes in the deflate module.
- * Until this is fixed we only accept sizes in the range 9 .. 15.
- * Thanks to James Carlson for pointing this out.
- */
-#define DEFLATE_MIN_WORKS 9
-
-/*
- * Command-line options.
- */
-static int setbsdcomp __P((char **));
-static int setdeflate __P((char **));
-static char bsd_value[8];
-static char deflate_value[8];
-
-static option_t ccp_option_list[] = {
- { "noccp", o_bool, &ccp_protent.enabled_flag,
- "Disable CCP negotiation" },
- { "-ccp", o_bool, &ccp_protent.enabled_flag,
- "Disable CCP negotiation", OPT_ALIAS },
-
- { "bsdcomp", o_special, (void *)setbsdcomp,
- "Request BSD-Compress packet compression",
- OPT_PRIO | OPT_A2STRVAL | OPT_STATIC, bsd_value },
- { "nobsdcomp", o_bool, &ccp_wantoptions[0].bsd_compress,
- "don't allow BSD-Compress", OPT_PRIOSUB | OPT_A2CLR,
- &ccp_allowoptions[0].bsd_compress },
- { "-bsdcomp", o_bool, &ccp_wantoptions[0].bsd_compress,
- "don't allow BSD-Compress", OPT_ALIAS | OPT_PRIOSUB | OPT_A2CLR,
- &ccp_allowoptions[0].bsd_compress },
-
- { "deflate", o_special, (void *)setdeflate,
- "request Deflate compression",
- OPT_PRIO | OPT_A2STRVAL | OPT_STATIC, deflate_value },
- { "nodeflate", o_bool, &ccp_wantoptions[0].deflate,
- "don't allow Deflate compression", OPT_PRIOSUB | OPT_A2CLR,
- &ccp_allowoptions[0].deflate },
- { "-deflate", o_bool, &ccp_wantoptions[0].deflate,
- "don't allow Deflate compression", OPT_ALIAS | OPT_PRIOSUB | OPT_A2CLR,
- &ccp_allowoptions[0].deflate },
-
- { "nodeflatedraft", o_bool, &ccp_wantoptions[0].deflate_draft,
- "don't use draft deflate #", OPT_A2COPY,
- &ccp_allowoptions[0].deflate_draft },
-
- { "predictor1", o_bool, &ccp_wantoptions[0].predictor_1,
- "request Predictor-1", 1, &ccp_allowoptions[0].predictor_1, OPT_PRIO },
- { "nopredictor1", o_bool, &ccp_wantoptions[0].predictor_1,
- "don't allow Predictor-1", OPT_PRIOSUB | OPT_A2CLR,
- &ccp_allowoptions[0].predictor_1 },
- { "-predictor1", o_bool, &ccp_wantoptions[0].predictor_1,
- "don't allow Predictor-1", OPT_ALIAS | OPT_PRIOSUB | OPT_A2CLR,
- &ccp_allowoptions[0].predictor_1 },
-
- { NULL }
-};
-
-/*
- * Protocol entry points from main code.
- */
-static void ccp_init __P((int unit));
-static void ccp_open __P((int unit));
-static void ccp_close __P((int unit, char *));
-static void ccp_lowerup __P((int unit));
-static void ccp_lowerdown __P((int));
-static void ccp_input __P((int unit, u_char *pkt, int len));
-static void ccp_protrej __P((int unit));
-static int ccp_printpkt __P((u_char *pkt, int len,
- void (*printer) __P((void *, char *, ...)),
- void *arg));
-static void ccp_datainput __P((int unit, u_char *pkt, int len));
-
-struct protent ccp_protent = {
- PPP_CCP,
- ccp_init,
- ccp_input,
- ccp_protrej,
- ccp_lowerup,
- ccp_lowerdown,
- ccp_open,
- ccp_close,
- ccp_printpkt,
- ccp_datainput,
- 1,
- "CCP",
- "Compressed",
- ccp_option_list,
- NULL,
- NULL,
- NULL
-};
-
-fsm ccp_fsm[NUM_PPP];
-ccp_options ccp_wantoptions[NUM_PPP]; /* what to request the peer to use */
-ccp_options ccp_gotoptions[NUM_PPP]; /* what the peer agreed to do */
-ccp_options ccp_allowoptions[NUM_PPP]; /* what we'll agree to do */
-ccp_options ccp_hisoptions[NUM_PPP]; /* what we agreed to do */
-
-/*
- * Callbacks for fsm code.
- */
-static void ccp_resetci __P((fsm *));
-static int ccp_cilen __P((fsm *));
-static void ccp_addci __P((fsm *, u_char *, int *));
-static int ccp_ackci __P((fsm *, u_char *, int));
-static int ccp_nakci __P((fsm *, u_char *, int));
-static int ccp_rejci __P((fsm *, u_char *, int));
-static int ccp_reqci __P((fsm *, u_char *, int *, int));
-static void ccp_up __P((fsm *));
-static void ccp_down __P((fsm *));
-static int ccp_extcode __P((fsm *, int, int, u_char *, int));
-static void ccp_rack_timeout __P((void *));
-static char *method_name __P((ccp_options *, ccp_options *));
-
-static fsm_callbacks ccp_callbacks = {
- ccp_resetci,
- ccp_cilen,
- ccp_addci,
- ccp_ackci,
- ccp_nakci,
- ccp_rejci,
- ccp_reqci,
- ccp_up,
- ccp_down,
- NULL,
- NULL,
- NULL,
- NULL,
- ccp_extcode,
- "CCP"
-};
-
-/*
- * Do we want / did we get any compression?
- */
-#define ANY_COMPRESS(opt) ((opt).deflate || (opt).bsd_compress \
- || (opt).predictor_1 || (opt).predictor_2)
-
-/*
- * Local state (mainly for handling reset-reqs and reset-acks).
- */
-static int ccp_localstate[NUM_PPP];
-#define RACK_PENDING 1 /* waiting for reset-ack */
-#define RREQ_REPEAT 2 /* send another reset-req if no reset-ack */
-
-#define RACKTIMEOUT 1 /* second */
-
-static int all_rejected[NUM_PPP]; /* we rejected all peer's options */
-
-/*
- * Option parsing.
- */
-static int
-setbsdcomp(argv)
- char **argv;
-{
- int rbits, abits;
- char *str, *endp;
-
- str = *argv;
- abits = rbits = strtol(str, &endp, 0);
- if (endp != str && *endp == ',') {
- str = endp + 1;
- abits = strtol(str, &endp, 0);
- }
- if (*endp != 0 || endp == str) {
- option_error("invalid parameter '%s' for bsdcomp option", *argv);
- return 0;
- }
- if ((rbits != 0 && (rbits < BSD_MIN_BITS || rbits > BSD_MAX_BITS))
- || (abits != 0 && (abits < BSD_MIN_BITS || abits > BSD_MAX_BITS))) {
- option_error("bsdcomp option values must be 0 or %d .. %d",
- BSD_MIN_BITS, BSD_MAX_BITS);
- return 0;
- }
- if (rbits > 0) {
- ccp_wantoptions[0].bsd_compress = 1;
- ccp_wantoptions[0].bsd_bits = rbits;
- } else
- ccp_wantoptions[0].bsd_compress = 0;
- if (abits > 0) {
- ccp_allowoptions[0].bsd_compress = 1;
- ccp_allowoptions[0].bsd_bits = abits;
- } else
- ccp_allowoptions[0].bsd_compress = 0;
- slprintf(bsd_value, sizeof(bsd_value),
- rbits == abits? "%d": "%d,%d", rbits, abits);
-
- return 1;
-}
-
-static int
-setdeflate(argv)
- char **argv;
-{
- int rbits, abits;
- char *str, *endp;
-
- str = *argv;
- abits = rbits = strtol(str, &endp, 0);
- if (endp != str && *endp == ',') {
- str = endp + 1;
- abits = strtol(str, &endp, 0);
- }
- if (*endp != 0 || endp == str) {
- option_error("invalid parameter '%s' for deflate option", *argv);
- return 0;
- }
- if ((rbits != 0 && (rbits < DEFLATE_MIN_SIZE || rbits > DEFLATE_MAX_SIZE))
- || (abits != 0 && (abits < DEFLATE_MIN_SIZE
- || abits > DEFLATE_MAX_SIZE))) {
- option_error("deflate option values must be 0 or %d .. %d",
- DEFLATE_MIN_SIZE, DEFLATE_MAX_SIZE);
- return 0;
- }
- if (rbits == DEFLATE_MIN_SIZE || abits == DEFLATE_MIN_SIZE) {
- if (rbits == DEFLATE_MIN_SIZE)
- rbits = DEFLATE_MIN_WORKS;
- if (abits == DEFLATE_MIN_SIZE)
- abits = DEFLATE_MIN_WORKS;
- warn("deflate option value of %d changed to %d to avoid zlib bug",
- DEFLATE_MIN_SIZE, DEFLATE_MIN_WORKS);
- }
- if (rbits > 0) {
- ccp_wantoptions[0].deflate = 1;
- ccp_wantoptions[0].deflate_size = rbits;
- } else
- ccp_wantoptions[0].deflate = 0;
- if (abits > 0) {
- ccp_allowoptions[0].deflate = 1;
- ccp_allowoptions[0].deflate_size = abits;
- } else
- ccp_allowoptions[0].deflate = 0;
- slprintf(deflate_value, sizeof(deflate_value),
- rbits == abits? "%d": "%d,%d", rbits, abits);
-
- return 1;
-}
-
-/*
- * ccp_init - initialize CCP.
- */
-static void
-ccp_init(unit)
- int unit;
-{
- fsm *f = &ccp_fsm[unit];
-
- f->unit = unit;
- f->protocol = PPP_CCP;
- f->callbacks = &ccp_callbacks;
- fsm_init(f);
-
- memset(&ccp_wantoptions[unit], 0, sizeof(ccp_options));
- memset(&ccp_gotoptions[unit], 0, sizeof(ccp_options));
- memset(&ccp_allowoptions[unit], 0, sizeof(ccp_options));
- memset(&ccp_hisoptions[unit], 0, sizeof(ccp_options));
-
- ccp_wantoptions[0].deflate = 1;
- ccp_wantoptions[0].deflate_size = DEFLATE_MAX_SIZE;
- ccp_wantoptions[0].deflate_correct = 1;
- ccp_wantoptions[0].deflate_draft = 1;
- ccp_allowoptions[0].deflate = 1;
- ccp_allowoptions[0].deflate_size = DEFLATE_MAX_SIZE;
- ccp_allowoptions[0].deflate_correct = 1;
- ccp_allowoptions[0].deflate_draft = 1;
-
- ccp_wantoptions[0].bsd_compress = 1;
- ccp_wantoptions[0].bsd_bits = BSD_MAX_BITS;
- ccp_allowoptions[0].bsd_compress = 1;
- ccp_allowoptions[0].bsd_bits = BSD_MAX_BITS;
-
- ccp_allowoptions[0].predictor_1 = 1;
-}
-
-/*
- * ccp_open - CCP is allowed to come up.
- */
-static void
-ccp_open(unit)
- int unit;
-{
- fsm *f = &ccp_fsm[unit];
-
- if (f->state != OPENED)
- ccp_flags_set(unit, 1, 0);
-
- /*
- * Find out which compressors the kernel supports before
- * deciding whether to open in silent mode.
- */
- ccp_resetci(f);
- if (!ANY_COMPRESS(ccp_gotoptions[unit]))
- f->flags |= OPT_SILENT;
-
- fsm_open(f);
-}
-
-/*
- * ccp_close - Terminate CCP.
- */
-static void
-ccp_close(unit, reason)
- int unit;
- char *reason;
-{
- ccp_flags_set(unit, 0, 0);
- fsm_close(&ccp_fsm[unit], reason);
-}
-
-/*
- * ccp_lowerup - we may now transmit CCP packets.
- */
-static void
-ccp_lowerup(unit)
- int unit;
-{
- fsm_lowerup(&ccp_fsm[unit]);
-}
-
-/*
- * ccp_lowerdown - we may not transmit CCP packets.
- */
-static void
-ccp_lowerdown(unit)
- int unit;
-{
- fsm_lowerdown(&ccp_fsm[unit]);
-}
-
-/*
- * ccp_input - process a received CCP packet.
- */
-static void
-ccp_input(unit, p, len)
- int unit;
- u_char *p;
- int len;
-{
- fsm *f = &ccp_fsm[unit];
- int oldstate;
-
- /*
- * Check for a terminate-request so we can print a message.
- */
- oldstate = f->state;
- fsm_input(f, p, len);
- if (oldstate == OPENED && p[0] == TERMREQ && f->state != OPENED)
- notice("Compression disabled by peer.");
-
- /*
- * If we get a terminate-ack and we're not asking for compression,
- * close CCP.
- */
- if (oldstate == REQSENT && p[0] == TERMACK
- && !ANY_COMPRESS(ccp_gotoptions[unit]))
- ccp_close(unit, "No compression negotiated");
-}
-
-/*
- * Handle a CCP-specific code.
- */
-static int
-ccp_extcode(f, code, id, p, len)
- fsm *f;
- int code, id;
- u_char *p;
- int len;
-{
- switch (code) {
- case CCP_RESETREQ:
- if (f->state != OPENED)
- break;
- /* send a reset-ack, which the transmitter will see and
- reset its compression state. */
- fsm_sdata(f, CCP_RESETACK, id, NULL, 0);
- break;
-
- case CCP_RESETACK:
- if (ccp_localstate[f->unit] & RACK_PENDING && id == f->reqid) {
- ccp_localstate[f->unit] &= ~(RACK_PENDING | RREQ_REPEAT);
- UNTIMEOUT(ccp_rack_timeout, f);
- }
- break;
-
- default:
- return 0;
- }
-
- return 1;
-}
-
-/*
- * ccp_protrej - peer doesn't talk CCP.
- */
-static void
-ccp_protrej(unit)
- int unit;
-{
- ccp_flags_set(unit, 0, 0);
- fsm_lowerdown(&ccp_fsm[unit]);
-}
-
-/*
- * ccp_resetci - initialize at start of negotiation.
- */
-static void
-ccp_resetci(f)
- fsm *f;
-{
- ccp_options *go = &ccp_gotoptions[f->unit];
- u_char opt_buf[16];
-
- *go = ccp_wantoptions[f->unit];
- all_rejected[f->unit] = 0;
-
- /*
- * Check whether the kernel knows about the various
- * compression methods we might request.
- */
- if (go->bsd_compress) {
- opt_buf[0] = CI_BSD_COMPRESS;
- opt_buf[1] = CILEN_BSD_COMPRESS;
- opt_buf[2] = BSD_MAKE_OPT(BSD_CURRENT_VERSION, BSD_MIN_BITS);
- if (ccp_test(f->unit, opt_buf, CILEN_BSD_COMPRESS, 0) <= 0)
- go->bsd_compress = 0;
- }
- if (go->deflate) {
- if (go->deflate_correct) {
- opt_buf[0] = CI_DEFLATE;
- opt_buf[1] = CILEN_DEFLATE;
- opt_buf[2] = DEFLATE_MAKE_OPT(DEFLATE_MIN_WORKS);
- opt_buf[3] = DEFLATE_CHK_SEQUENCE;
- if (ccp_test(f->unit, opt_buf, CILEN_DEFLATE, 0) <= 0)
- go->deflate_correct = 0;
- }
- if (go->deflate_draft) {
- opt_buf[0] = CI_DEFLATE_DRAFT;
- opt_buf[1] = CILEN_DEFLATE;
- opt_buf[2] = DEFLATE_MAKE_OPT(DEFLATE_MIN_WORKS);
- opt_buf[3] = DEFLATE_CHK_SEQUENCE;
- if (ccp_test(f->unit, opt_buf, CILEN_DEFLATE, 0) <= 0)
- go->deflate_draft = 0;
- }
- if (!go->deflate_correct && !go->deflate_draft)
- go->deflate = 0;
- }
- if (go->predictor_1) {
- opt_buf[0] = CI_PREDICTOR_1;
- opt_buf[1] = CILEN_PREDICTOR_1;
- if (ccp_test(f->unit, opt_buf, CILEN_PREDICTOR_1, 0) <= 0)
- go->predictor_1 = 0;
- }
- if (go->predictor_2) {
- opt_buf[0] = CI_PREDICTOR_2;
- opt_buf[1] = CILEN_PREDICTOR_2;
- if (ccp_test(f->unit, opt_buf, CILEN_PREDICTOR_2, 0) <= 0)
- go->predictor_2 = 0;
- }
-}
-
-/*
- * ccp_cilen - Return total length of our configuration info.
- */
-static int
-ccp_cilen(f)
- fsm *f;
-{
- ccp_options *go = &ccp_gotoptions[f->unit];
-
- return (go->bsd_compress? CILEN_BSD_COMPRESS: 0)
- + (go->deflate? CILEN_DEFLATE: 0)
- + (go->predictor_1? CILEN_PREDICTOR_1: 0)
- + (go->predictor_2? CILEN_PREDICTOR_2: 0);
-}
-
-/*
- * ccp_addci - put our requests in a packet.
- */
-static void
-ccp_addci(f, p, lenp)
- fsm *f;
- u_char *p;
- int *lenp;
-{
- int res;
- ccp_options *go = &ccp_gotoptions[f->unit];
- u_char *p0 = p;
-
- /*
- * Add the compression types that we can receive, in decreasing
- * preference order. Get the kernel to allocate the first one
- * in case it gets Acked.
- */
- if (go->deflate) {
- p[0] = go->deflate_correct? CI_DEFLATE: CI_DEFLATE_DRAFT;
- p[1] = CILEN_DEFLATE;
- p[2] = DEFLATE_MAKE_OPT(go->deflate_size);
- p[3] = DEFLATE_CHK_SEQUENCE;
- for (;;) {
- res = ccp_test(f->unit, p, CILEN_DEFLATE, 0);
- if (res > 0) {
- p += CILEN_DEFLATE;
- break;
- }
- if (res < 0 || go->deflate_size <= DEFLATE_MIN_WORKS) {
- go->deflate = 0;
- break;
- }
- --go->deflate_size;
- p[2] = DEFLATE_MAKE_OPT(go->deflate_size);
- }
- if (p != p0 && go->deflate_correct && go->deflate_draft) {
- p[0] = CI_DEFLATE_DRAFT;
- p[1] = CILEN_DEFLATE;
- p[2] = p[2 - CILEN_DEFLATE];
- p[3] = DEFLATE_CHK_SEQUENCE;
- p += CILEN_DEFLATE;
- }
- }
- if (go->bsd_compress) {
- p[0] = CI_BSD_COMPRESS;
- p[1] = CILEN_BSD_COMPRESS;
- p[2] = BSD_MAKE_OPT(BSD_CURRENT_VERSION, go->bsd_bits);
- if (p != p0) {
- p += CILEN_BSD_COMPRESS; /* not the first option */
- } else {
- for (;;) {
- res = ccp_test(f->unit, p, CILEN_BSD_COMPRESS, 0);
- if (res > 0) {
- p += CILEN_BSD_COMPRESS;
- break;
- }
- if (res < 0 || go->bsd_bits <= BSD_MIN_BITS) {
- go->bsd_compress = 0;
- break;
- }
- --go->bsd_bits;
- p[2] = BSD_MAKE_OPT(BSD_CURRENT_VERSION, go->bsd_bits);
- }
- }
- }
- /* XXX Should Predictor 2 be preferable to Predictor 1? */
- if (go->predictor_1) {
- p[0] = CI_PREDICTOR_1;
- p[1] = CILEN_PREDICTOR_1;
- if (p == p0 && ccp_test(f->unit, p, CILEN_PREDICTOR_1, 0) <= 0) {
- go->predictor_1 = 0;
- } else {
- p += CILEN_PREDICTOR_1;
- }
- }
- if (go->predictor_2) {
- p[0] = CI_PREDICTOR_2;
- p[1] = CILEN_PREDICTOR_2;
- if (p == p0 && ccp_test(f->unit, p, CILEN_PREDICTOR_2, 0) <= 0) {
- go->predictor_2 = 0;
- } else {
- p += CILEN_PREDICTOR_2;
- }
- }
-
- go->method = (p > p0)? p0[0]: -1;
-
- *lenp = p - p0;
-}
-
-/*
- * ccp_ackci - process a received configure-ack, and return
- * 1 iff the packet was OK.
- */
-static int
-ccp_ackci(f, p, len)
- fsm *f;
- u_char *p;
- int len;
-{
- ccp_options *go = &ccp_gotoptions[f->unit];
- u_char *p0 = p;
-
- if (go->deflate) {
- if (len < CILEN_DEFLATE
- || p[0] != (go->deflate_correct? CI_DEFLATE: CI_DEFLATE_DRAFT)
- || p[1] != CILEN_DEFLATE
- || p[2] != DEFLATE_MAKE_OPT(go->deflate_size)
- || p[3] != DEFLATE_CHK_SEQUENCE)
- return 0;
- p += CILEN_DEFLATE;
- len -= CILEN_DEFLATE;
- /* XXX Cope with first/fast ack */
- if (len == 0)
- return 1;
- if (go->deflate_correct && go->deflate_draft) {
- if (len < CILEN_DEFLATE
- || p[0] != CI_DEFLATE_DRAFT
- || p[1] != CILEN_DEFLATE
- || p[2] != DEFLATE_MAKE_OPT(go->deflate_size)
- || p[3] != DEFLATE_CHK_SEQUENCE)
- return 0;
- p += CILEN_DEFLATE;
- len -= CILEN_DEFLATE;
- }
- }
- if (go->bsd_compress) {
- if (len < CILEN_BSD_COMPRESS
- || p[0] != CI_BSD_COMPRESS || p[1] != CILEN_BSD_COMPRESS
- || p[2] != BSD_MAKE_OPT(BSD_CURRENT_VERSION, go->bsd_bits))
- return 0;
- p += CILEN_BSD_COMPRESS;
- len -= CILEN_BSD_COMPRESS;
- /* XXX Cope with first/fast ack */
- if (p == p0 && len == 0)
- return 1;
- }
- if (go->predictor_1) {
- if (len < CILEN_PREDICTOR_1
- || p[0] != CI_PREDICTOR_1 || p[1] != CILEN_PREDICTOR_1)
- return 0;
- p += CILEN_PREDICTOR_1;
- len -= CILEN_PREDICTOR_1;
- /* XXX Cope with first/fast ack */
- if (p == p0 && len == 0)
- return 1;
- }
- if (go->predictor_2) {
- if (len < CILEN_PREDICTOR_2
- || p[0] != CI_PREDICTOR_2 || p[1] != CILEN_PREDICTOR_2)
- return 0;
- p += CILEN_PREDICTOR_2;
- len -= CILEN_PREDICTOR_2;
- /* XXX Cope with first/fast ack */
- if (p == p0 && len == 0)
- return 1;
- }
-
- if (len != 0)
- return 0;
- return 1;
-}
-
-/*
- * ccp_nakci - process received configure-nak.
- * Returns 1 iff the nak was OK.
- */
-static int
-ccp_nakci(f, p, len)
- fsm *f;
- u_char *p;
- int len;
-{
- ccp_options *go = &ccp_gotoptions[f->unit];
- ccp_options no; /* options we've seen already */
- ccp_options try; /* options to ask for next time */
-
- memset(&no, 0, sizeof(no));
- try = *go;
-
- if (go->deflate && len >= CILEN_DEFLATE
- && p[0] == (go->deflate_correct? CI_DEFLATE: CI_DEFLATE_DRAFT)
- && p[1] == CILEN_DEFLATE) {
- no.deflate = 1;
- /*
- * Peer wants us to use a different code size or something.
- * Stop asking for Deflate if we don't understand his suggestion.
- */
- if (DEFLATE_METHOD(p[2]) != DEFLATE_METHOD_VAL
- || DEFLATE_SIZE(p[2]) < DEFLATE_MIN_WORKS
- || p[3] != DEFLATE_CHK_SEQUENCE)
- try.deflate = 0;
- else if (DEFLATE_SIZE(p[2]) < go->deflate_size)
- try.deflate_size = DEFLATE_SIZE(p[2]);
- p += CILEN_DEFLATE;
- len -= CILEN_DEFLATE;
- if (go->deflate_correct && go->deflate_draft
- && len >= CILEN_DEFLATE && p[0] == CI_DEFLATE_DRAFT
- && p[1] == CILEN_DEFLATE) {
- p += CILEN_DEFLATE;
- len -= CILEN_DEFLATE;
- }
- }
-
- if (go->bsd_compress && len >= CILEN_BSD_COMPRESS
- && p[0] == CI_BSD_COMPRESS && p[1] == CILEN_BSD_COMPRESS) {
- no.bsd_compress = 1;
- /*
- * Peer wants us to use a different number of bits
- * or a different version.
- */
- if (BSD_VERSION(p[2]) != BSD_CURRENT_VERSION)
- try.bsd_compress = 0;
- else if (BSD_NBITS(p[2]) < go->bsd_bits)
- try.bsd_bits = BSD_NBITS(p[2]);
- p += CILEN_BSD_COMPRESS;
- len -= CILEN_BSD_COMPRESS;
- }
-
- /*
- * Predictor-1 and 2 have no options, so they can't be Naked.
- *
- * There may be remaining options but we ignore them.
- */
-
- if (f->state != OPENED)
- *go = try;
- return 1;
-}
-
-/*
- * ccp_rejci - reject some of our suggested compression methods.
- */
-static int
-ccp_rejci(f, p, len)
- fsm *f;
- u_char *p;
- int len;
-{
- ccp_options *go = &ccp_gotoptions[f->unit];
- ccp_options try; /* options to request next time */
-
- try = *go;
-
- /*
- * Cope with empty configure-rejects by ceasing to send
- * configure-requests.
- */
- if (len == 0 && all_rejected[f->unit])
- return -1;
-
- if (go->deflate && len >= CILEN_DEFLATE
- && p[0] == (go->deflate_correct? CI_DEFLATE: CI_DEFLATE_DRAFT)
- && p[1] == CILEN_DEFLATE) {
- if (p[2] != DEFLATE_MAKE_OPT(go->deflate_size)
- || p[3] != DEFLATE_CHK_SEQUENCE)
- return 0; /* Rej is bad */
- if (go->deflate_correct)
- try.deflate_correct = 0;
- else
- try.deflate_draft = 0;
- p += CILEN_DEFLATE;
- len -= CILEN_DEFLATE;
- if (go->deflate_correct && go->deflate_draft
- && len >= CILEN_DEFLATE && p[0] == CI_DEFLATE_DRAFT
- && p[1] == CILEN_DEFLATE) {
- if (p[2] != DEFLATE_MAKE_OPT(go->deflate_size)
- || p[3] != DEFLATE_CHK_SEQUENCE)
- return 0; /* Rej is bad */
- try.deflate_draft = 0;
- p += CILEN_DEFLATE;
- len -= CILEN_DEFLATE;
- }
- if (!try.deflate_correct && !try.deflate_draft)
- try.deflate = 0;
- }
- if (go->bsd_compress && len >= CILEN_BSD_COMPRESS
- && p[0] == CI_BSD_COMPRESS && p[1] == CILEN_BSD_COMPRESS) {
- if (p[2] != BSD_MAKE_OPT(BSD_CURRENT_VERSION, go->bsd_bits))
- return 0;
- try.bsd_compress = 0;
- p += CILEN_BSD_COMPRESS;
- len -= CILEN_BSD_COMPRESS;
- }
- if (go->predictor_1 && len >= CILEN_PREDICTOR_1
- && p[0] == CI_PREDICTOR_1 && p[1] == CILEN_PREDICTOR_1) {
- try.predictor_1 = 0;
- p += CILEN_PREDICTOR_1;
- len -= CILEN_PREDICTOR_1;
- }
- if (go->predictor_2 && len >= CILEN_PREDICTOR_2
- && p[0] == CI_PREDICTOR_2 && p[1] == CILEN_PREDICTOR_2) {
- try.predictor_2 = 0;
- p += CILEN_PREDICTOR_2;
- len -= CILEN_PREDICTOR_2;
- }
-
- if (len != 0)
- return 0;
-
- if (f->state != OPENED)
- *go = try;
-
- return 1;
-}
-
-/*
- * ccp_reqci - processed a received configure-request.
- * Returns CONFACK, CONFNAK or CONFREJ and the packet modified
- * appropriately.
- */
-static int
-ccp_reqci(f, p, lenp, dont_nak)
- fsm *f;
- u_char *p;
- int *lenp;
- int dont_nak;
-{
- int ret, newret, res;
- u_char *p0, *retp;
- int len, clen, type, nb;
- ccp_options *ho = &ccp_hisoptions[f->unit];
- ccp_options *ao = &ccp_allowoptions[f->unit];
-
- ret = CONFACK;
- retp = p0 = p;
- len = *lenp;
-
- memset(ho, 0, sizeof(ccp_options));
- ho->method = (len > 0)? p[0]: -1;
-
- while (len > 0) {
- newret = CONFACK;
- if (len < 2 || p[1] < 2 || p[1] > len) {
- /* length is bad */
- clen = len;
- newret = CONFREJ;
-
- } else {
- type = p[0];
- clen = p[1];
-
- switch (type) {
- case CI_DEFLATE:
- case CI_DEFLATE_DRAFT:
- if (!ao->deflate || clen != CILEN_DEFLATE
- || (!ao->deflate_correct && type == CI_DEFLATE)
- || (!ao->deflate_draft && type == CI_DEFLATE_DRAFT)) {
- newret = CONFREJ;
- break;
- }
-
- ho->deflate = 1;
- ho->deflate_size = nb = DEFLATE_SIZE(p[2]);
- if (DEFLATE_METHOD(p[2]) != DEFLATE_METHOD_VAL
- || p[3] != DEFLATE_CHK_SEQUENCE
- || nb > ao->deflate_size || nb < DEFLATE_MIN_WORKS) {
- newret = CONFNAK;
- if (!dont_nak) {
- p[2] = DEFLATE_MAKE_OPT(ao->deflate_size);
- p[3] = DEFLATE_CHK_SEQUENCE;
- /* fall through to test this #bits below */
- } else
- break;
- }
-
- /*
- * Check whether we can do Deflate with the window
- * size they want. If the window is too big, reduce
- * it until the kernel can cope and nak with that.
- * We only check this for the first option.
- */
- if (p == p0) {
- for (;;) {
- res = ccp_test(f->unit, p, CILEN_DEFLATE, 1);
- if (res > 0)
- break; /* it's OK now */
- if (res < 0 || nb == DEFLATE_MIN_WORKS || dont_nak) {
- newret = CONFREJ;
- p[2] = DEFLATE_MAKE_OPT(ho->deflate_size);
- break;
- }
- newret = CONFNAK;
- --nb;
- p[2] = DEFLATE_MAKE_OPT(nb);
- }
- }
- break;
-
- case CI_BSD_COMPRESS:
- if (!ao->bsd_compress || clen != CILEN_BSD_COMPRESS) {
- newret = CONFREJ;
- break;
- }
-
- ho->bsd_compress = 1;
- ho->bsd_bits = nb = BSD_NBITS(p[2]);
- if (BSD_VERSION(p[2]) != BSD_CURRENT_VERSION
- || nb > ao->bsd_bits || nb < BSD_MIN_BITS) {
- newret = CONFNAK;
- if (!dont_nak) {
- p[2] = BSD_MAKE_OPT(BSD_CURRENT_VERSION, ao->bsd_bits);
- /* fall through to test this #bits below */
- } else
- break;
- }
-
- /*
- * Check whether we can do BSD-Compress with the code
- * size they want. If the code size is too big, reduce
- * it until the kernel can cope and nak with that.
- * We only check this for the first option.
- */
- if (p == p0) {
- for (;;) {
- res = ccp_test(f->unit, p, CILEN_BSD_COMPRESS, 1);
- if (res > 0)
- break;
- if (res < 0 || nb == BSD_MIN_BITS || dont_nak) {
- newret = CONFREJ;
- p[2] = BSD_MAKE_OPT(BSD_CURRENT_VERSION,
- ho->bsd_bits);
- break;
- }
- newret = CONFNAK;
- --nb;
- p[2] = BSD_MAKE_OPT(BSD_CURRENT_VERSION, nb);
- }
- }
- break;
-
- case CI_PREDICTOR_1:
- if (!ao->predictor_1 || clen != CILEN_PREDICTOR_1) {
- newret = CONFREJ;
- break;
- }
-
- ho->predictor_1 = 1;
- if (p == p0
- && ccp_test(f->unit, p, CILEN_PREDICTOR_1, 1) <= 0) {
- newret = CONFREJ;
- }
- break;
-
- case CI_PREDICTOR_2:
- if (!ao->predictor_2 || clen != CILEN_PREDICTOR_2) {
- newret = CONFREJ;
- break;
- }
-
- ho->predictor_2 = 1;
- if (p == p0
- && ccp_test(f->unit, p, CILEN_PREDICTOR_2, 1) <= 0) {
- newret = CONFREJ;
- }
- break;
-
- default:
- newret = CONFREJ;
- }
- }
-
- if (newret == CONFNAK && dont_nak)
- newret = CONFREJ;
- if (!(newret == CONFACK || (newret == CONFNAK && ret == CONFREJ))) {
- /* we're returning this option */
- if (newret == CONFREJ && ret == CONFNAK)
- retp = p0;
- ret = newret;
- if (p != retp)
- BCOPY(p, retp, clen);
- retp += clen;
- }
-
- p += clen;
- len -= clen;
- }
-
- if (ret != CONFACK) {
- if (ret == CONFREJ && *lenp == retp - p0)
- all_rejected[f->unit] = 1;
- else
- *lenp = retp - p0;
- }
- return ret;
-}
-
-/*
- * Make a string name for a compression method (or 2).
- */
-static char *
-method_name(opt, opt2)
- ccp_options *opt, *opt2;
-{
- static char result[64];
-
- if (!ANY_COMPRESS(*opt))
- return "(none)";
- switch (opt->method) {
- case CI_DEFLATE:
- case CI_DEFLATE_DRAFT:
- if (opt2 != NULL && opt2->deflate_size != opt->deflate_size)
- slprintf(result, sizeof(result), "Deflate%s (%d/%d)",
- (opt->method == CI_DEFLATE_DRAFT? "(old#)": ""),
- opt->deflate_size, opt2->deflate_size);
- else
- slprintf(result, sizeof(result), "Deflate%s (%d)",
- (opt->method == CI_DEFLATE_DRAFT? "(old#)": ""),
- opt->deflate_size);
- break;
- case CI_BSD_COMPRESS:
- if (opt2 != NULL && opt2->bsd_bits != opt->bsd_bits)
- slprintf(result, sizeof(result), "BSD-Compress (%d/%d)",
- opt->bsd_bits, opt2->bsd_bits);
- else
- slprintf(result, sizeof(result), "BSD-Compress (%d)",
- opt->bsd_bits);
- break;
- case CI_PREDICTOR_1:
- return "Predictor 1";
- case CI_PREDICTOR_2:
- return "Predictor 2";
- default:
- slprintf(result, sizeof(result), "Method %d", opt->method);
- }
- return result;
-}
-
-/*
- * CCP has come up - inform the kernel driver and log a message.
- */
-static void
-ccp_up(f)
- fsm *f;
-{
- ccp_options *go = &ccp_gotoptions[f->unit];
- ccp_options *ho = &ccp_hisoptions[f->unit];
- char method1[64];
-
- ccp_flags_set(f->unit, 1, 1);
- if (ANY_COMPRESS(*go)) {
- if (ANY_COMPRESS(*ho)) {
- if (go->method == ho->method) {
- notice("%s compression enabled", method_name(go, ho));
- } else {
- strlcpy(method1, method_name(go, NULL), sizeof(method1));
- notice("%s / %s compression enabled",
- method1, method_name(ho, NULL));
- }
- } else
- notice("%s receive compression enabled", method_name(go, NULL));
- } else if (ANY_COMPRESS(*ho))
- notice("%s transmit compression enabled", method_name(ho, NULL));
-}
-
-/*
- * CCP has gone down - inform the kernel driver.
- */
-static void
-ccp_down(f)
- fsm *f;
-{
- if (ccp_localstate[f->unit] & RACK_PENDING)
- UNTIMEOUT(ccp_rack_timeout, f);
- ccp_localstate[f->unit] = 0;
- ccp_flags_set(f->unit, 1, 0);
-}
-
-/*
- * Print the contents of a CCP packet.
- */
-static char *ccp_codenames[] = {
- "ConfReq", "ConfAck", "ConfNak", "ConfRej",
- "TermReq", "TermAck", "CodeRej",
- NULL, NULL, NULL, NULL, NULL, NULL,
- "ResetReq", "ResetAck",
-};
-
-static int
-ccp_printpkt(p, plen, printer, arg)
- u_char *p;
- int plen;
- void (*printer) __P((void *, char *, ...));
- void *arg;
-{
- u_char *p0, *optend;
- int code, id, len;
- int optlen;
-
- p0 = p;
- if (plen < HEADERLEN)
- return 0;
- code = p[0];
- id = p[1];
- len = (p[2] << 8) + p[3];
- if (len < HEADERLEN || len > plen)
- return 0;
-
- if (code >= 1 && code <= sizeof(ccp_codenames) / sizeof(char *)
- && ccp_codenames[code-1] != NULL)
- printer(arg, " %s", ccp_codenames[code-1]);
- else
- printer(arg, " code=0x%x", code);
- printer(arg, " id=0x%x", id);
- len -= HEADERLEN;
- p += HEADERLEN;
-
- switch (code) {
- case CONFREQ:
- case CONFACK:
- case CONFNAK:
- case CONFREJ:
- /* print list of possible compression methods */
- while (len >= 2) {
- code = p[0];
- optlen = p[1];
- if (optlen < 2 || optlen > len)
- break;
- printer(arg, " <");
- len -= optlen;
- optend = p + optlen;
- switch (code) {
- case CI_DEFLATE:
- case CI_DEFLATE_DRAFT:
- if (optlen >= CILEN_DEFLATE) {
- printer(arg, "deflate%s %d",
- (code == CI_DEFLATE_DRAFT? "(old#)": ""),
- DEFLATE_SIZE(p[2]));
- if (DEFLATE_METHOD(p[2]) != DEFLATE_METHOD_VAL)
- printer(arg, " method %d", DEFLATE_METHOD(p[2]));
- if (p[3] != DEFLATE_CHK_SEQUENCE)
- printer(arg, " check %d", p[3]);
- p += CILEN_DEFLATE;
- }
- break;
- case CI_BSD_COMPRESS:
- if (optlen >= CILEN_BSD_COMPRESS) {
- printer(arg, "bsd v%d %d", BSD_VERSION(p[2]),
- BSD_NBITS(p[2]));
- p += CILEN_BSD_COMPRESS;
- }
- break;
- case CI_PREDICTOR_1:
- if (optlen >= CILEN_PREDICTOR_1) {
- printer(arg, "predictor 1");
- p += CILEN_PREDICTOR_1;
- }
- break;
- case CI_PREDICTOR_2:
- if (optlen >= CILEN_PREDICTOR_2) {
- printer(arg, "predictor 2");
- p += CILEN_PREDICTOR_2;
- }
- break;
- }
- while (p < optend)
- printer(arg, " %.2x", *p++);
- printer(arg, ">");
- }
- break;
-
- case TERMACK:
- case TERMREQ:
- if (len > 0 && *p >= ' ' && *p < 0x7f) {
- print_string((char *)p, len, printer, arg);
- p += len;
- len = 0;
- }
- break;
- }
-
- /* dump out the rest of the packet in hex */
- while (--len >= 0)
- printer(arg, " %.2x", *p++);
-
- return p - p0;
-}
-
-/*
- * We have received a packet that the decompressor failed to
- * decompress. Here we would expect to issue a reset-request, but
- * Motorola has a patent on resetting the compressor as a result of
- * detecting an error in the decompressed data after decompression.
- * (See US patent 5,130,993; international patent publication number
- * WO 91/10289; Australian patent 73296/91.)
- *
- * So we ask the kernel whether the error was detected after
- * decompression; if it was, we take CCP down, thus disabling
- * compression :-(, otherwise we issue the reset-request.
- */
-static void
-ccp_datainput(unit, pkt, len)
- int unit;
- u_char *pkt;
- int len;
-{
- fsm *f;
-
- f = &ccp_fsm[unit];
- if (f->state == OPENED) {
- if (ccp_fatal_error(unit)) {
- /*
- * Disable compression by taking CCP down.
- */
- error("Lost compression sync: disabling compression");
- ccp_close(unit, "Lost compression sync");
- } else {
- /*
- * Send a reset-request to reset the peer's compressor.
- * We don't do that if we are still waiting for an
- * acknowledgement to a previous reset-request.
- */
- if (!(ccp_localstate[f->unit] & RACK_PENDING)) {
- fsm_sdata(f, CCP_RESETREQ, f->reqid = ++f->id, NULL, 0);
- TIMEOUT(ccp_rack_timeout, f, RACKTIMEOUT);
- ccp_localstate[f->unit] |= RACK_PENDING;
- } else
- ccp_localstate[f->unit] |= RREQ_REPEAT;
- }
- }
-}
-
-/*
- * Timeout waiting for reset-ack.
- */
-static void
-ccp_rack_timeout(arg)
- void *arg;
-{
- fsm *f = arg;
-
- if (f->state == OPENED && ccp_localstate[f->unit] & RREQ_REPEAT) {
- fsm_sdata(f, CCP_RESETREQ, f->reqid, NULL, 0);
- TIMEOUT(ccp_rack_timeout, f, RACKTIMEOUT);
- ccp_localstate[f->unit] &= ~RREQ_REPEAT;
- } else
- ccp_localstate[f->unit] &= ~RACK_PENDING;
-}
-
diff --git a/mdk-stage1/ppp/pppd/ccp.h b/mdk-stage1/ppp/pppd/ccp.h
deleted file mode 100644
index 609d858c5..000000000
--- a/mdk-stage1/ppp/pppd/ccp.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * ccp.h - Definitions for PPP Compression Control Protocol.
- *
- * Copyright (c) 1994 The Australian National University.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies. This software is provided without any
- * warranty, express or implied. The Australian National University
- * makes no representations about the suitability of this software for
- * any purpose.
- *
- * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
- * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
- * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
- * OR MODIFICATIONS.
- *
- * $Id$
- */
-
-typedef struct ccp_options {
- bool bsd_compress; /* do BSD Compress? */
- bool deflate; /* do Deflate? */
- bool predictor_1; /* do Predictor-1? */
- bool predictor_2; /* do Predictor-2? */
- bool deflate_correct; /* use correct code for deflate? */
- bool deflate_draft; /* use draft RFC code for deflate? */
- u_short bsd_bits; /* # bits/code for BSD Compress */
- u_short deflate_size; /* lg(window size) for Deflate */
- short method; /* code for chosen compression method */
-} ccp_options;
-
-extern fsm ccp_fsm[];
-extern ccp_options ccp_wantoptions[];
-extern ccp_options ccp_gotoptions[];
-extern ccp_options ccp_allowoptions[];
-extern ccp_options ccp_hisoptions[];
-
-extern struct protent ccp_protent;
diff --git a/mdk-stage1/ppp/pppd/chap.c b/mdk-stage1/ppp/pppd/chap.c
deleted file mode 100644
index 54c0e0095..000000000
--- a/mdk-stage1/ppp/pppd/chap.c
+++ /dev/null
@@ -1,860 +0,0 @@
-/*
- * chap.c - Challenge Handshake Authentication Protocol.
- *
- * Copyright (c) 1993 The Australian National University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by the Australian National University. The name of the University
- * may not be used to endorse or promote products derived from this
- * software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Copyright (c) 1991 Gregory M. Christy.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Gregory M. Christy. The name of the author may not be used to
- * endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#define RCSID "$Id$"
-
-/*
- * TODO:
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/time.h>
-
-#include "pppd.h"
-#include "chap.h"
-#include "md5.h"
-#ifdef CHAPMS
-#include "chap_ms.h"
-#endif
-
-static const char rcsid[] = RCSID;
-
-/*
- * Command-line options.
- */
-static option_t chap_option_list[] = {
- { "chap-restart", o_int, &chap[0].timeouttime,
- "Set timeout for CHAP", OPT_PRIO },
- { "chap-max-challenge", o_int, &chap[0].max_transmits,
- "Set max #xmits for challenge", OPT_PRIO },
- { "chap-interval", o_int, &chap[0].chal_interval,
- "Set interval for rechallenge", OPT_PRIO },
-#ifdef MSLANMAN
- { "ms-lanman", o_bool, &ms_lanman,
- "Use LanMan passwd when using MS-CHAP", 1 },
-#endif
- { NULL }
-};
-
-/*
- * Protocol entry points.
- */
-static void ChapInit __P((int));
-static void ChapLowerUp __P((int));
-static void ChapLowerDown __P((int));
-static void ChapInput __P((int, u_char *, int));
-static void ChapProtocolReject __P((int));
-static int ChapPrintPkt __P((u_char *, int,
- void (*) __P((void *, char *, ...)), void *));
-
-struct protent chap_protent = {
- PPP_CHAP,
- ChapInit,
- ChapInput,
- ChapProtocolReject,
- ChapLowerUp,
- ChapLowerDown,
- NULL,
- NULL,
- ChapPrintPkt,
- NULL,
- 1,
- "CHAP",
- NULL,
- chap_option_list,
- NULL,
- NULL,
- NULL
-};
-
-chap_state chap[NUM_PPP]; /* CHAP state; one for each unit */
-
-static void ChapChallengeTimeout __P((void *));
-static void ChapResponseTimeout __P((void *));
-static void ChapReceiveChallenge __P((chap_state *, u_char *, int, int));
-static void ChapRechallenge __P((void *));
-static void ChapReceiveResponse __P((chap_state *, u_char *, int, int));
-static void ChapReceiveSuccess __P((chap_state *, u_char *, int, int));
-static void ChapReceiveFailure __P((chap_state *, u_char *, int, int));
-static void ChapSendStatus __P((chap_state *, int));
-static void ChapSendChallenge __P((chap_state *));
-static void ChapSendResponse __P((chap_state *));
-static void ChapGenChallenge __P((chap_state *));
-
-extern double drand48 __P((void));
-extern void srand48 __P((long));
-
-/*
- * ChapInit - Initialize a CHAP unit.
- */
-static void
-ChapInit(unit)
- int unit;
-{
- chap_state *cstate = &chap[unit];
-
- BZERO(cstate, sizeof(*cstate));
- cstate->unit = unit;
- cstate->clientstate = CHAPCS_INITIAL;
- cstate->serverstate = CHAPSS_INITIAL;
- cstate->timeouttime = CHAP_DEFTIMEOUT;
- cstate->max_transmits = CHAP_DEFTRANSMITS;
- /* random number generator is initialized in magic_init */
-}
-
-
-/*
- * ChapAuthWithPeer - Authenticate us with our peer (start client).
- *
- */
-void
-ChapAuthWithPeer(unit, our_name, digest)
- int unit;
- char *our_name;
- int digest;
-{
- chap_state *cstate = &chap[unit];
-
- cstate->resp_name = our_name;
- cstate->resp_type = digest;
-
- if (cstate->clientstate == CHAPCS_INITIAL ||
- cstate->clientstate == CHAPCS_PENDING) {
- /* lower layer isn't up - wait until later */
- cstate->clientstate = CHAPCS_PENDING;
- return;
- }
-
- /*
- * We get here as a result of LCP coming up.
- * So even if CHAP was open before, we will
- * have to re-authenticate ourselves.
- */
- cstate->clientstate = CHAPCS_LISTEN;
-}
-
-
-/*
- * ChapAuthPeer - Authenticate our peer (start server).
- */
-void
-ChapAuthPeer(unit, our_name, digest)
- int unit;
- char *our_name;
- int digest;
-{
- chap_state *cstate = &chap[unit];
-
- cstate->chal_name = our_name;
- cstate->chal_type = digest;
-
- if (cstate->serverstate == CHAPSS_INITIAL ||
- cstate->serverstate == CHAPSS_PENDING) {
- /* lower layer isn't up - wait until later */
- cstate->serverstate = CHAPSS_PENDING;
- return;
- }
-
- ChapGenChallenge(cstate);
- ChapSendChallenge(cstate); /* crank it up dude! */
- cstate->serverstate = CHAPSS_INITIAL_CHAL;
-}
-
-
-/*
- * ChapChallengeTimeout - Timeout expired on sending challenge.
- */
-static void
-ChapChallengeTimeout(arg)
- void *arg;
-{
- chap_state *cstate = (chap_state *) arg;
-
- /* if we aren't sending challenges, don't worry. then again we */
- /* probably shouldn't be here either */
- if (cstate->serverstate != CHAPSS_INITIAL_CHAL &&
- cstate->serverstate != CHAPSS_RECHALLENGE)
- return;
-
- if (cstate->chal_transmits >= cstate->max_transmits) {
- /* give up on peer */
- error("Peer failed to respond to CHAP challenge");
- cstate->serverstate = CHAPSS_BADAUTH;
- auth_peer_fail(cstate->unit, PPP_CHAP);
- return;
- }
-
- ChapSendChallenge(cstate); /* Re-send challenge */
-}
-
-
-/*
- * ChapResponseTimeout - Timeout expired on sending response.
- */
-static void
-ChapResponseTimeout(arg)
- void *arg;
-{
- chap_state *cstate = (chap_state *) arg;
-
- /* if we aren't sending a response, don't worry. */
- if (cstate->clientstate != CHAPCS_RESPONSE)
- return;
-
- ChapSendResponse(cstate); /* re-send response */
-}
-
-
-/*
- * ChapRechallenge - Time to challenge the peer again.
- */
-static void
-ChapRechallenge(arg)
- void *arg;
-{
- chap_state *cstate = (chap_state *) arg;
-
- /* if we aren't sending a response, don't worry. */
- if (cstate->serverstate != CHAPSS_OPEN)
- return;
-
- ChapGenChallenge(cstate);
- ChapSendChallenge(cstate);
- cstate->serverstate = CHAPSS_RECHALLENGE;
-}
-
-
-/*
- * ChapLowerUp - The lower layer is up.
- *
- * Start up if we have pending requests.
- */
-static void
-ChapLowerUp(unit)
- int unit;
-{
- chap_state *cstate = &chap[unit];
-
- if (cstate->clientstate == CHAPCS_INITIAL)
- cstate->clientstate = CHAPCS_CLOSED;
- else if (cstate->clientstate == CHAPCS_PENDING)
- cstate->clientstate = CHAPCS_LISTEN;
-
- if (cstate->serverstate == CHAPSS_INITIAL)
- cstate->serverstate = CHAPSS_CLOSED;
- else if (cstate->serverstate == CHAPSS_PENDING) {
- ChapGenChallenge(cstate);
- ChapSendChallenge(cstate);
- cstate->serverstate = CHAPSS_INITIAL_CHAL;
- }
-}
-
-
-/*
- * ChapLowerDown - The lower layer is down.
- *
- * Cancel all timeouts.
- */
-static void
-ChapLowerDown(unit)
- int unit;
-{
- chap_state *cstate = &chap[unit];
-
- /* Timeout(s) pending? Cancel if so. */
- if (cstate->serverstate == CHAPSS_INITIAL_CHAL ||
- cstate->serverstate == CHAPSS_RECHALLENGE)
- UNTIMEOUT(ChapChallengeTimeout, cstate);
- else if (cstate->serverstate == CHAPSS_OPEN
- && cstate->chal_interval != 0)
- UNTIMEOUT(ChapRechallenge, cstate);
- if (cstate->clientstate == CHAPCS_RESPONSE)
- UNTIMEOUT(ChapResponseTimeout, cstate);
-
- cstate->clientstate = CHAPCS_INITIAL;
- cstate->serverstate = CHAPSS_INITIAL;
-}
-
-
-/*
- * ChapProtocolReject - Peer doesn't grok CHAP.
- */
-static void
-ChapProtocolReject(unit)
- int unit;
-{
- chap_state *cstate = &chap[unit];
-
- if (cstate->serverstate != CHAPSS_INITIAL &&
- cstate->serverstate != CHAPSS_CLOSED)
- auth_peer_fail(unit, PPP_CHAP);
- if (cstate->clientstate != CHAPCS_INITIAL &&
- cstate->clientstate != CHAPCS_CLOSED)
- auth_withpeer_fail(unit, PPP_CHAP);
- ChapLowerDown(unit); /* shutdown chap */
-}
-
-
-/*
- * ChapInput - Input CHAP packet.
- */
-static void
-ChapInput(unit, inpacket, packet_len)
- int unit;
- u_char *inpacket;
- int packet_len;
-{
- chap_state *cstate = &chap[unit];
- u_char *inp;
- u_char code, id;
- int len;
-
- /*
- * Parse header (code, id and length).
- * If packet too short, drop it.
- */
- inp = inpacket;
- if (packet_len < CHAP_HEADERLEN) {
- CHAPDEBUG(("ChapInput: rcvd short header."));
- return;
- }
- GETCHAR(code, inp);
- GETCHAR(id, inp);
- GETSHORT(len, inp);
- if (len < CHAP_HEADERLEN) {
- CHAPDEBUG(("ChapInput: rcvd illegal length."));
- return;
- }
- if (len > packet_len) {
- CHAPDEBUG(("ChapInput: rcvd short packet."));
- return;
- }
- len -= CHAP_HEADERLEN;
-
- /*
- * Action depends on code (as in fact it usually does :-).
- */
- switch (code) {
- case CHAP_CHALLENGE:
- ChapReceiveChallenge(cstate, inp, id, len);
- break;
-
- case CHAP_RESPONSE:
- ChapReceiveResponse(cstate, inp, id, len);
- break;
-
- case CHAP_FAILURE:
- ChapReceiveFailure(cstate, inp, id, len);
- break;
-
- case CHAP_SUCCESS:
- ChapReceiveSuccess(cstate, inp, id, len);
- break;
-
- default: /* Need code reject? */
- warn("Unknown CHAP code (%d) received.", code);
- break;
- }
-}
-
-
-/*
- * ChapReceiveChallenge - Receive Challenge and send Response.
- */
-static void
-ChapReceiveChallenge(cstate, inp, id, len)
- chap_state *cstate;
- u_char *inp;
- int id;
- int len;
-{
- int rchallenge_len;
- u_char *rchallenge;
- int secret_len;
- char secret[MAXSECRETLEN];
- char rhostname[256];
- MD5_CTX mdContext;
- u_char hash[MD5_SIGNATURE_SIZE];
-
- if (cstate->clientstate == CHAPCS_CLOSED ||
- cstate->clientstate == CHAPCS_PENDING) {
- CHAPDEBUG(("ChapReceiveChallenge: in state %d", cstate->clientstate));
- return;
- }
-
- if (len < 2) {
- CHAPDEBUG(("ChapReceiveChallenge: rcvd short packet."));
- return;
- }
-
- GETCHAR(rchallenge_len, inp);
- len -= sizeof (u_char) + rchallenge_len; /* now name field length */
- if (len < 0) {
- CHAPDEBUG(("ChapReceiveChallenge: rcvd short packet."));
- return;
- }
- rchallenge = inp;
- INCPTR(rchallenge_len, inp);
-
- if (len >= sizeof(rhostname))
- len = sizeof(rhostname) - 1;
- BCOPY(inp, rhostname, len);
- rhostname[len] = '\000';
-
- /* Microsoft doesn't send their name back in the PPP packet */
- if (explicit_remote || (remote_name[0] != 0 && rhostname[0] == 0)) {
- strlcpy(rhostname, remote_name, sizeof(rhostname));
- CHAPDEBUG(("ChapReceiveChallenge: using '%q' as remote name",
- rhostname));
- }
-
- /* get secret for authenticating ourselves with the specified host */
- if (!get_secret(cstate->unit, cstate->resp_name, rhostname,
- secret, &secret_len, 0)) {
- secret_len = 0; /* assume null secret if can't find one */
- warn("No CHAP secret found for authenticating us to %q", rhostname);
- }
-
- /* cancel response send timeout if necessary */
- if (cstate->clientstate == CHAPCS_RESPONSE)
- UNTIMEOUT(ChapResponseTimeout, cstate);
-
- cstate->resp_id = id;
- cstate->resp_transmits = 0;
-
- /* generate MD based on negotiated type */
- switch (cstate->resp_type) {
-
- case CHAP_DIGEST_MD5:
- MD5Init(&mdContext);
- MD5Update(&mdContext, &cstate->resp_id, 1);
- MD5Update(&mdContext, secret, secret_len);
- MD5Update(&mdContext, rchallenge, rchallenge_len);
- MD5Final(hash, &mdContext);
- BCOPY(hash, cstate->response, MD5_SIGNATURE_SIZE);
- cstate->resp_length = MD5_SIGNATURE_SIZE;
- break;
-
-#ifdef CHAPMS
- case CHAP_MICROSOFT:
- ChapMS(cstate, rchallenge, rchallenge_len, secret, secret_len);
- break;
-#endif
-
- default:
- CHAPDEBUG(("unknown digest type %d", cstate->resp_type));
- return;
- }
-
- BZERO(secret, sizeof(secret));
- ChapSendResponse(cstate);
-}
-
-
-/*
- * ChapReceiveResponse - Receive and process response.
- */
-static void
-ChapReceiveResponse(cstate, inp, id, len)
- chap_state *cstate;
- u_char *inp;
- int id;
- int len;
-{
- u_char *remmd, remmd_len;
- int secret_len, old_state;
- int code;
- char rhostname[256];
- MD5_CTX mdContext;
- char secret[MAXSECRETLEN];
- u_char hash[MD5_SIGNATURE_SIZE];
-
- if (cstate->serverstate == CHAPSS_CLOSED ||
- cstate->serverstate == CHAPSS_PENDING) {
- CHAPDEBUG(("ChapReceiveResponse: in state %d", cstate->serverstate));
- return;
- }
-
- if (id != cstate->chal_id)
- return; /* doesn't match ID of last challenge */
-
- /*
- * If we have received a duplicate or bogus Response,
- * we have to send the same answer (Success/Failure)
- * as we did for the first Response we saw.
- */
- if (cstate->serverstate == CHAPSS_OPEN) {
- ChapSendStatus(cstate, CHAP_SUCCESS);
- return;
- }
- if (cstate->serverstate == CHAPSS_BADAUTH) {
- ChapSendStatus(cstate, CHAP_FAILURE);
- return;
- }
-
- if (len < 2) {
- CHAPDEBUG(("ChapReceiveResponse: rcvd short packet."));
- return;
- }
- GETCHAR(remmd_len, inp); /* get length of MD */
- remmd = inp; /* get pointer to MD */
- INCPTR(remmd_len, inp);
-
- len -= sizeof (u_char) + remmd_len;
- if (len < 0) {
- CHAPDEBUG(("ChapReceiveResponse: rcvd short packet."));
- return;
- }
-
- UNTIMEOUT(ChapChallengeTimeout, cstate);
-
- if (len >= sizeof(rhostname))
- len = sizeof(rhostname) - 1;
- BCOPY(inp, rhostname, len);
- rhostname[len] = '\000';
-
- /*
- * Get secret for authenticating them with us,
- * do the hash ourselves, and compare the result.
- */
- code = CHAP_FAILURE;
- if (!get_secret(cstate->unit, (explicit_remote? remote_name: rhostname),
- cstate->chal_name, secret, &secret_len, 1)) {
- warn("No CHAP secret found for authenticating %q", rhostname);
- } else {
-
- /* generate MD based on negotiated type */
- switch (cstate->chal_type) {
-
- case CHAP_DIGEST_MD5: /* only MD5 is defined for now */
- if (remmd_len != MD5_SIGNATURE_SIZE)
- break; /* it's not even the right length */
- MD5Init(&mdContext);
- MD5Update(&mdContext, &cstate->chal_id, 1);
- MD5Update(&mdContext, secret, secret_len);
- MD5Update(&mdContext, cstate->challenge, cstate->chal_len);
- MD5Final(hash, &mdContext);
-
- /* compare local and remote MDs and send the appropriate status */
- if (memcmp (hash, remmd, MD5_SIGNATURE_SIZE) == 0)
- code = CHAP_SUCCESS; /* they are the same! */
- break;
-
- default:
- CHAPDEBUG(("unknown digest type %d", cstate->chal_type));
- }
- }
-
- BZERO(secret, sizeof(secret));
- ChapSendStatus(cstate, code);
-
- if (code == CHAP_SUCCESS) {
- old_state = cstate->serverstate;
- cstate->serverstate = CHAPSS_OPEN;
- if (old_state == CHAPSS_INITIAL_CHAL) {
- auth_peer_success(cstate->unit, PPP_CHAP, rhostname, len);
- }
- if (cstate->chal_interval != 0)
- TIMEOUT(ChapRechallenge, cstate, cstate->chal_interval);
- notice("CHAP peer authentication succeeded for %q", rhostname);
-
- } else {
- error("CHAP peer authentication failed for remote host %q", rhostname);
- cstate->serverstate = CHAPSS_BADAUTH;
- auth_peer_fail(cstate->unit, PPP_CHAP);
- }
-}
-
-/*
- * ChapReceiveSuccess - Receive Success
- */
-static void
-ChapReceiveSuccess(cstate, inp, id, len)
- chap_state *cstate;
- u_char *inp;
- u_char id;
- int len;
-{
-
- if (cstate->clientstate == CHAPCS_OPEN)
- /* presumably an answer to a duplicate response */
- return;
-
- if (cstate->clientstate != CHAPCS_RESPONSE) {
- /* don't know what this is */
- CHAPDEBUG(("ChapReceiveSuccess: in state %d\n", cstate->clientstate));
- return;
- }
-
- UNTIMEOUT(ChapResponseTimeout, cstate);
-
- /*
- * Print message.
- */
- if (len > 0)
- PRINTMSG(inp, len);
-
- cstate->clientstate = CHAPCS_OPEN;
-
- auth_withpeer_success(cstate->unit, PPP_CHAP);
-}
-
-
-/*
- * ChapReceiveFailure - Receive failure.
- */
-static void
-ChapReceiveFailure(cstate, inp, id, len)
- chap_state *cstate;
- u_char *inp;
- u_char id;
- int len;
-{
- if (cstate->clientstate != CHAPCS_RESPONSE) {
- /* don't know what this is */
- CHAPDEBUG(("ChapReceiveFailure: in state %d\n", cstate->clientstate));
- return;
- }
-
- UNTIMEOUT(ChapResponseTimeout, cstate);
-
- /*
- * Print message.
- */
- if (len > 0)
- PRINTMSG(inp, len);
-
- error("CHAP authentication failed");
- auth_withpeer_fail(cstate->unit, PPP_CHAP);
-}
-
-
-/*
- * ChapSendChallenge - Send an Authenticate challenge.
- */
-static void
-ChapSendChallenge(cstate)
- chap_state *cstate;
-{
- u_char *outp;
- int chal_len, name_len;
- int outlen;
-
- chal_len = cstate->chal_len;
- name_len = strlen(cstate->chal_name);
- outlen = CHAP_HEADERLEN + sizeof (u_char) + chal_len + name_len;
- outp = outpacket_buf;
-
- MAKEHEADER(outp, PPP_CHAP); /* paste in a CHAP header */
-
- PUTCHAR(CHAP_CHALLENGE, outp);
- PUTCHAR(cstate->chal_id, outp);
- PUTSHORT(outlen, outp);
-
- PUTCHAR(chal_len, outp); /* put length of challenge */
- BCOPY(cstate->challenge, outp, chal_len);
- INCPTR(chal_len, outp);
-
- BCOPY(cstate->chal_name, outp, name_len); /* append hostname */
-
- output(cstate->unit, outpacket_buf, outlen + PPP_HDRLEN);
-
- TIMEOUT(ChapChallengeTimeout, cstate, cstate->timeouttime);
- ++cstate->chal_transmits;
-}
-
-
-/*
- * ChapSendStatus - Send a status response (ack or nak).
- */
-static void
-ChapSendStatus(cstate, code)
- chap_state *cstate;
- int code;
-{
- u_char *outp;
- int outlen, msglen;
- char msg[256];
-
- if (code == CHAP_SUCCESS)
- slprintf(msg, sizeof(msg), "Welcome to %s.", hostname);
- else
- slprintf(msg, sizeof(msg), "I don't like you. Go 'way.");
- msglen = strlen(msg);
-
- outlen = CHAP_HEADERLEN + msglen;
- outp = outpacket_buf;
-
- MAKEHEADER(outp, PPP_CHAP); /* paste in a header */
-
- PUTCHAR(code, outp);
- PUTCHAR(cstate->chal_id, outp);
- PUTSHORT(outlen, outp);
- BCOPY(msg, outp, msglen);
- output(cstate->unit, outpacket_buf, outlen + PPP_HDRLEN);
-}
-
-/*
- * ChapGenChallenge is used to generate a pseudo-random challenge string of
- * a pseudo-random length between min_len and max_len. The challenge
- * string and its length are stored in *cstate, and various other fields of
- * *cstate are initialized.
- */
-
-static void
-ChapGenChallenge(cstate)
- chap_state *cstate;
-{
- int chal_len;
- u_char *ptr = cstate->challenge;
- int i;
-
- /* pick a random challenge length between MIN_CHALLENGE_LENGTH and
- MAX_CHALLENGE_LENGTH */
- chal_len = (unsigned) ((drand48() *
- (MAX_CHALLENGE_LENGTH - MIN_CHALLENGE_LENGTH)) +
- MIN_CHALLENGE_LENGTH);
- cstate->chal_len = chal_len;
- cstate->chal_id = ++cstate->id;
- cstate->chal_transmits = 0;
-
- /* generate a random string */
- for (i = 0; i < chal_len; i++)
- *ptr++ = (char) (drand48() * 0xff);
-}
-
-/*
- * ChapSendResponse - send a response packet with values as specified
- * in *cstate.
- */
-/* ARGSUSED */
-static void
-ChapSendResponse(cstate)
- chap_state *cstate;
-{
- u_char *outp;
- int outlen, md_len, name_len;
-
- md_len = cstate->resp_length;
- name_len = strlen(cstate->resp_name);
- outlen = CHAP_HEADERLEN + sizeof (u_char) + md_len + name_len;
- outp = outpacket_buf;
-
- MAKEHEADER(outp, PPP_CHAP);
-
- PUTCHAR(CHAP_RESPONSE, outp); /* we are a response */
- PUTCHAR(cstate->resp_id, outp); /* copy id from challenge packet */
- PUTSHORT(outlen, outp); /* packet length */
-
- PUTCHAR(md_len, outp); /* length of MD */
- BCOPY(cstate->response, outp, md_len); /* copy MD to buffer */
- INCPTR(md_len, outp);
-
- BCOPY(cstate->resp_name, outp, name_len); /* append our name */
-
- /* send the packet */
- output(cstate->unit, outpacket_buf, outlen + PPP_HDRLEN);
-
- cstate->clientstate = CHAPCS_RESPONSE;
- TIMEOUT(ChapResponseTimeout, cstate, cstate->timeouttime);
- ++cstate->resp_transmits;
-}
-
-/*
- * ChapPrintPkt - print the contents of a CHAP packet.
- */
-static char *ChapCodenames[] = {
- "Challenge", "Response", "Success", "Failure"
-};
-
-static int
-ChapPrintPkt(p, plen, printer, arg)
- u_char *p;
- int plen;
- void (*printer) __P((void *, char *, ...));
- void *arg;
-{
- int code, id, len;
- int clen, nlen;
- u_char x;
-
- if (plen < CHAP_HEADERLEN)
- return 0;
- GETCHAR(code, p);
- GETCHAR(id, p);
- GETSHORT(len, p);
- if (len < CHAP_HEADERLEN || len > plen)
- return 0;
-
- if (code >= 1 && code <= sizeof(ChapCodenames) / sizeof(char *))
- printer(arg, " %s", ChapCodenames[code-1]);
- else
- printer(arg, " code=0x%x", code);
- printer(arg, " id=0x%x", id);
- len -= CHAP_HEADERLEN;
- switch (code) {
- case CHAP_CHALLENGE:
- case CHAP_RESPONSE:
- if (len < 1)
- break;
- clen = p[0];
- if (len < clen + 1)
- break;
- ++p;
- nlen = len - clen - 1;
- printer(arg, " <");
- for (; clen > 0; --clen) {
- GETCHAR(x, p);
- printer(arg, "%.2x", x);
- }
- printer(arg, ">, name = ");
- print_string((char *)p, nlen, printer, arg);
- break;
- case CHAP_FAILURE:
- case CHAP_SUCCESS:
- printer(arg, " ");
- print_string((char *)p, len, printer, arg);
- break;
- default:
- for (clen = len; clen > 0; --clen) {
- GETCHAR(x, p);
- printer(arg, " %.2x", x);
- }
- }
-
- return len + CHAP_HEADERLEN;
-}
diff --git a/mdk-stage1/ppp/pppd/chap.h b/mdk-stage1/ppp/pppd/chap.h
deleted file mode 100644
index 945d051d0..000000000
--- a/mdk-stage1/ppp/pppd/chap.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * chap.h - Challenge Handshake Authentication Protocol definitions.
- *
- * Copyright (c) 1993 The Australian National University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by the Australian National University. The name of the University
- * may not be used to endorse or promote products derived from this
- * software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Copyright (c) 1991 Gregory M. Christy
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by the author.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Id$
- */
-
-#ifndef __CHAP_INCLUDE__
-
-/* Code + ID + length */
-#define CHAP_HEADERLEN 4
-
-/*
- * CHAP codes.
- */
-
-#define CHAP_DIGEST_MD5 5 /* use MD5 algorithm */
-#define MD5_SIGNATURE_SIZE 16 /* 16 bytes in a MD5 message digest */
-#define CHAP_MICROSOFT 0x80 /* use Microsoft-compatible alg. */
-#define MS_CHAP_RESPONSE_LEN 49 /* Response length for MS-CHAP */
-
-#define CHAP_CHALLENGE 1
-#define CHAP_RESPONSE 2
-#define CHAP_SUCCESS 3
-#define CHAP_FAILURE 4
-
-/*
- * Challenge lengths (for challenges we send) and other limits.
- */
-#define MIN_CHALLENGE_LENGTH 16
-#define MAX_CHALLENGE_LENGTH 24
-#define MAX_RESPONSE_LENGTH 64 /* sufficient for MD5 or MS-CHAP */
-
-/*
- * Each interface is described by a chap structure.
- */
-
-typedef struct chap_state {
- int unit; /* Interface unit number */
- int clientstate; /* Client state */
- int serverstate; /* Server state */
- u_char challenge[MAX_CHALLENGE_LENGTH]; /* last challenge string sent */
- u_char chal_len; /* challenge length */
- u_char chal_id; /* ID of last challenge */
- u_char chal_type; /* hash algorithm for challenges */
- u_char id; /* Current id */
- char *chal_name; /* Our name to use with challenge */
- int chal_interval; /* Time until we challenge peer again */
- int timeouttime; /* Timeout time in seconds */
- int max_transmits; /* Maximum # of challenge transmissions */
- int chal_transmits; /* Number of transmissions of challenge */
- int resp_transmits; /* Number of transmissions of response */
- u_char response[MAX_RESPONSE_LENGTH]; /* Response to send */
- u_char resp_length; /* length of response */
- u_char resp_id; /* ID for response messages */
- u_char resp_type; /* hash algorithm for responses */
- char *resp_name; /* Our name to send with response */
-} chap_state;
-
-
-/*
- * Client (peer) states.
- */
-#define CHAPCS_INITIAL 0 /* Lower layer down, not opened */
-#define CHAPCS_CLOSED 1 /* Lower layer up, not opened */
-#define CHAPCS_PENDING 2 /* Auth us to peer when lower up */
-#define CHAPCS_LISTEN 3 /* Listening for a challenge */
-#define CHAPCS_RESPONSE 4 /* Sent response, waiting for status */
-#define CHAPCS_OPEN 5 /* We've received Success */
-
-/*
- * Server (authenticator) states.
- */
-#define CHAPSS_INITIAL 0 /* Lower layer down, not opened */
-#define CHAPSS_CLOSED 1 /* Lower layer up, not opened */
-#define CHAPSS_PENDING 2 /* Auth peer when lower up */
-#define CHAPSS_INITIAL_CHAL 3 /* We've sent the first challenge */
-#define CHAPSS_OPEN 4 /* We've sent a Success msg */
-#define CHAPSS_RECHALLENGE 5 /* We've sent another challenge */
-#define CHAPSS_BADAUTH 6 /* We've sent a Failure msg */
-
-/*
- * Timeouts.
- */
-#define CHAP_DEFTIMEOUT 3 /* Timeout time in seconds */
-#define CHAP_DEFTRANSMITS 10 /* max # times to send challenge */
-
-extern chap_state chap[];
-
-void ChapAuthWithPeer __P((int, char *, int));
-void ChapAuthPeer __P((int, char *, int));
-
-extern struct protent chap_protent;
-
-#define __CHAP_INCLUDE__
-#endif /* __CHAP_INCLUDE__ */
diff --git a/mdk-stage1/ppp/pppd/chap_ms.c b/mdk-stage1/ppp/pppd/chap_ms.c
deleted file mode 100644
index 81a57bb5a..000000000
--- a/mdk-stage1/ppp/pppd/chap_ms.c
+++ /dev/null
@@ -1,338 +0,0 @@
-/*
- * chap_ms.c - Microsoft MS-CHAP compatible implementation.
- *
- * Copyright (c) 1995 Eric Rosenquist, Strata Software Limited.
- * http://www.strataware.com/
- *
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Eric Rosenquist. The name of the author may not be used to
- * endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-/*
- * Modifications by Lauri Pesonen / lpesonen@clinet.fi, april 1997
- *
- * Implemented LANManager type password response to MS-CHAP challenges.
- * Now pppd provides both NT style and LANMan style blocks, and the
- * prefered is set by option "ms-lanman". Default is to use NT.
- * The hash text (StdText) was taken from Win95 RASAPI32.DLL.
- *
- * You should also use DOMAIN\\USERNAME as described in README.MSCHAP80
- */
-
-#define RCSID "$Id$"
-
-#ifdef CHAPMS
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <sys/types.h>
-#include <sys/time.h>
-#include <unistd.h>
-#ifdef HAVE_CRYPT_H
-#include <crypt.h>
-#endif
-
-#include "pppd.h"
-#include "chap.h"
-#include "chap_ms.h"
-#include "md4.h"
-
-#ifndef USE_CRYPT
-#include <des.h>
-#endif
-
-static const char rcsid[] = RCSID;
-
-typedef struct {
- u_char LANManResp[24];
- u_char NTResp[24];
- u_char UseNT; /* If 1, ignore the LANMan response field */
-} MS_ChapResponse;
-/* We use MS_CHAP_RESPONSE_LEN, rather than sizeof(MS_ChapResponse),
- in case this struct gets padded. */
-
-
-static void ChallengeResponse __P((u_char *, u_char *, u_char *));
-static void DesEncrypt __P((u_char *, u_char *, u_char *));
-static void MakeKey __P((u_char *, u_char *));
-static u_char Get7Bits __P((u_char *, int));
-static void ChapMS_NT __P((char *, int, char *, int, MS_ChapResponse *));
-#ifdef MSLANMAN
-static void ChapMS_LANMan __P((char *, int, char *, int, MS_ChapResponse *));
-#endif
-
-#ifdef USE_CRYPT
-static void Expand __P((u_char *, u_char *));
-static void Collapse __P((u_char *, u_char *));
-#endif
-
-#ifdef MSLANMAN
-bool ms_lanman = 0; /* Use LanMan password instead of NT */
- /* Has meaning only with MS-CHAP challenges */
-#endif
-
-static void
-ChallengeResponse(challenge, pwHash, response)
- u_char *challenge; /* IN 8 octets */
- u_char *pwHash; /* IN 16 octets */
- u_char *response; /* OUT 24 octets */
-{
- char ZPasswordHash[21];
-
- BZERO(ZPasswordHash, sizeof(ZPasswordHash));
- BCOPY(pwHash, ZPasswordHash, MD4_SIGNATURE_SIZE);
-
-#if 0
- dbglog("ChallengeResponse - ZPasswordHash %.*B",
- sizeof(ZPasswordHash), ZPasswordHash);
-#endif
-
- DesEncrypt(challenge, ZPasswordHash + 0, response + 0);
- DesEncrypt(challenge, ZPasswordHash + 7, response + 8);
- DesEncrypt(challenge, ZPasswordHash + 14, response + 16);
-
-#if 0
- dbglog("ChallengeResponse - response %.24B", response);
-#endif
-}
-
-
-#ifdef USE_CRYPT
-static void
-DesEncrypt(clear, key, cipher)
- u_char *clear; /* IN 8 octets */
- u_char *key; /* IN 7 octets */
- u_char *cipher; /* OUT 8 octets */
-{
- u_char des_key[8];
- u_char crypt_key[66];
- u_char des_input[66];
-
- MakeKey(key, des_key);
-
- Expand(des_key, crypt_key);
- setkey(crypt_key);
-
-#if 0
- CHAPDEBUG((LOG_INFO, "DesEncrypt: 8 octet input : %.8B", clear));
-#endif
-
- Expand(clear, des_input);
- encrypt(des_input, 0);
- Collapse(des_input, cipher);
-
-#if 0
- CHAPDEBUG((LOG_INFO, "DesEncrypt: 8 octet output: %.8B", cipher));
-#endif
-}
-
-#else /* USE_CRYPT */
-
-static void
-DesEncrypt(clear, key, cipher)
- u_char *clear; /* IN 8 octets */
- u_char *key; /* IN 7 octets */
- u_char *cipher; /* OUT 8 octets */
-{
- des_cblock des_key;
- des_key_schedule key_schedule;
-
- MakeKey(key, des_key);
-
- des_set_key(&des_key, key_schedule);
-
-#if 0
- CHAPDEBUG((LOG_INFO, "DesEncrypt: 8 octet input : %.8B", clear));
-#endif
-
- des_ecb_encrypt((des_cblock *)clear, (des_cblock *)cipher, key_schedule, 1);
-
-#if 0
- CHAPDEBUG((LOG_INFO, "DesEncrypt: 8 octet output: %.8B", cipher));
-#endif
-}
-
-#endif /* USE_CRYPT */
-
-
-static u_char Get7Bits(input, startBit)
- u_char *input;
- int startBit;
-{
- register unsigned int word;
-
- word = (unsigned)input[startBit / 8] << 8;
- word |= (unsigned)input[startBit / 8 + 1];
-
- word >>= 15 - (startBit % 8 + 7);
-
- return word & 0xFE;
-}
-
-#ifdef USE_CRYPT
-
-/* in == 8-byte string (expanded version of the 56-bit key)
- * out == 64-byte string where each byte is either 1 or 0
- * Note that the low-order "bit" is always ignored by by setkey()
- */
-static void Expand(in, out)
- u_char *in;
- u_char *out;
-{
- int j, c;
- int i;
-
- for(i = 0; i < 64; in++){
- c = *in;
- for(j = 7; j >= 0; j--)
- *out++ = (c >> j) & 01;
- i += 8;
- }
-}
-
-/* The inverse of Expand
- */
-static void Collapse(in, out)
- u_char *in;
- u_char *out;
-{
- int j;
- int i;
- unsigned int c;
-
- for (i = 0; i < 64; i += 8, out++) {
- c = 0;
- for (j = 7; j >= 0; j--, in++)
- c |= *in << j;
- *out = c & 0xff;
- }
-}
-#endif
-
-static void MakeKey(key, des_key)
- u_char *key; /* IN 56 bit DES key missing parity bits */
- u_char *des_key; /* OUT 64 bit DES key with parity bits added */
-{
- des_key[0] = Get7Bits(key, 0);
- des_key[1] = Get7Bits(key, 7);
- des_key[2] = Get7Bits(key, 14);
- des_key[3] = Get7Bits(key, 21);
- des_key[4] = Get7Bits(key, 28);
- des_key[5] = Get7Bits(key, 35);
- des_key[6] = Get7Bits(key, 42);
- des_key[7] = Get7Bits(key, 49);
-
-#ifndef USE_CRYPT
- des_set_odd_parity((des_cblock *)des_key);
-#endif
-
-#if 0
- CHAPDEBUG((LOG_INFO, "MakeKey: 56-bit input : %.7B", key));
- CHAPDEBUG((LOG_INFO, "MakeKey: 64-bit output: %.8B", des_key));
-#endif
-}
-
-static void
-ChapMS_NT(rchallenge, rchallenge_len, secret, secret_len, response)
- char *rchallenge;
- int rchallenge_len;
- char *secret;
- int secret_len;
- MS_ChapResponse *response;
-{
- int i;
-#ifdef __NetBSD__
- /* NetBSD uses the libc md4 routines which take bytes instead of bits */
- int mdlen = secret_len * 2;
-#else
- int mdlen = secret_len * 2 * 8;
-#endif
- MD4_CTX md4Context;
- u_char hash[MD4_SIGNATURE_SIZE];
- u_char unicodePassword[MAX_NT_PASSWORD * 2];
-
- /* Initialize the Unicode version of the secret (== password). */
- /* This implicitly supports 8-bit ISO8859/1 characters. */
- BZERO(unicodePassword, sizeof(unicodePassword));
- for (i = 0; i < secret_len; i++)
- unicodePassword[i * 2] = (u_char)secret[i];
-
- MD4Init(&md4Context);
- MD4Update(&md4Context, unicodePassword, mdlen);
-
- MD4Final(hash, &md4Context); /* Tell MD4 we're done */
-
- ChallengeResponse(rchallenge, hash, response->NTResp);
-}
-
-#ifdef MSLANMAN
-static u_char *StdText = (u_char *)"KGS!@#$%"; /* key from rasapi32.dll */
-
-static void
-ChapMS_LANMan(rchallenge, rchallenge_len, secret, secret_len, response)
- char *rchallenge;
- int rchallenge_len;
- char *secret;
- int secret_len;
- MS_ChapResponse *response;
-{
- int i;
- u_char UcasePassword[MAX_NT_PASSWORD]; /* max is actually 14 */
- u_char PasswordHash[MD4_SIGNATURE_SIZE];
-
- /* LANMan password is case insensitive */
- BZERO(UcasePassword, sizeof(UcasePassword));
- for (i = 0; i < secret_len; i++)
- UcasePassword[i] = (u_char)toupper(secret[i]);
- DesEncrypt( StdText, UcasePassword + 0, PasswordHash + 0 );
- DesEncrypt( StdText, UcasePassword + 7, PasswordHash + 8 );
- ChallengeResponse(rchallenge, PasswordHash, response->LANManResp);
-}
-#endif
-
-void
-ChapMS(cstate, rchallenge, rchallenge_len, secret, secret_len)
- chap_state *cstate;
- char *rchallenge;
- int rchallenge_len;
- char *secret;
- int secret_len;
-{
- MS_ChapResponse response;
-
-#if 0
- CHAPDEBUG((LOG_INFO, "ChapMS: secret is '%.*s'", secret_len, secret));
-#endif
- BZERO(&response, sizeof(response));
-
- /* Calculate both always */
- ChapMS_NT(rchallenge, rchallenge_len, secret, secret_len, &response);
-
-#ifdef MSLANMAN
- ChapMS_LANMan(rchallenge, rchallenge_len, secret, secret_len, &response);
-
- /* prefered method is set by option */
- response.UseNT = !ms_lanman;
-#else
- response.UseNT = 1;
-#endif
-
- BCOPY(&response, cstate->response, MS_CHAP_RESPONSE_LEN);
- cstate->resp_length = MS_CHAP_RESPONSE_LEN;
-}
-
-#endif /* CHAPMS */
diff --git a/mdk-stage1/ppp/pppd/chap_ms.h b/mdk-stage1/ppp/pppd/chap_ms.h
deleted file mode 100644
index fad2755c8..000000000
--- a/mdk-stage1/ppp/pppd/chap_ms.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * chap.h - Challenge Handshake Authentication Protocol definitions.
- *
- * Copyright (c) 1995 Eric Rosenquist, Strata Software Limited.
- * http://www.strataware.com/
- *
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Eric Rosenquist. The name of the author may not be used to
- * endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Id$
- */
-
-#ifndef __CHAPMS_INCLUDE__
-
-#define MD4_SIGNATURE_SIZE 16 /* 16 bytes in a MD4 message digest */
-#define MAX_NT_PASSWORD 256 /* Maximum number of (Unicode) chars in an NT password */
-
-void ChapMS __P((chap_state *, char *, int, char *, int));
-
-#define __CHAPMS_INCLUDE__
-#endif /* __CHAPMS_INCLUDE__ */
diff --git a/mdk-stage1/ppp/pppd/demand.c b/mdk-stage1/ppp/pppd/demand.c
deleted file mode 100644
index 9a740be8d..000000000
--- a/mdk-stage1/ppp/pppd/demand.c
+++ /dev/null
@@ -1,351 +0,0 @@
-/*
- * demand.c - Support routines for demand-dialling.
- *
- * Copyright (c) 1993 The Australian National University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by the Australian National University. The name of the University
- * may not be used to endorse or promote products derived from this
- * software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#define RCSID "$Id$"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <netdb.h>
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <sys/stat.h>
-#include <sys/socket.h>
-#ifdef PPP_FILTER
-#include <net/if.h>
-#include <net/bpf.h>
-#include <pcap.h>
-#endif
-
-#include "pppd.h"
-#include "fsm.h"
-#include "ipcp.h"
-#include "lcp.h"
-
-static const char rcsid[] = RCSID;
-
-char *frame;
-int framelen;
-int framemax;
-int escape_flag;
-int flush_flag;
-int fcs;
-
-struct packet {
- int length;
- struct packet *next;
- unsigned char data[1];
-};
-
-struct packet *pend_q;
-struct packet *pend_qtail;
-
-static int active_packet __P((unsigned char *, int));
-
-/*
- * demand_conf - configure the interface for doing dial-on-demand.
- */
-void
-demand_conf()
-{
- int i;
- struct protent *protp;
-
-/* framemax = lcp_allowoptions[0].mru;
- if (framemax < PPP_MRU) */
- framemax = PPP_MRU;
- framemax += PPP_HDRLEN + PPP_FCSLEN;
- frame = malloc(framemax);
- if (frame == NULL)
- novm("demand frame");
- framelen = 0;
- pend_q = NULL;
- escape_flag = 0;
- flush_flag = 0;
- fcs = PPP_INITFCS;
-
- netif_set_mtu(0, MIN(lcp_allowoptions[0].mru, PPP_MRU));
- ppp_send_config(0, PPP_MRU, (u_int32_t) 0, 0, 0);
- ppp_recv_config(0, PPP_MRU, (u_int32_t) 0, 0, 0);
-
-#ifdef PPP_FILTER
- set_filters(&pass_filter, &active_filter);
-#endif
-
- /*
- * Call the demand_conf procedure for each protocol that's got one.
- */
- for (i = 0; (protp = protocols[i]) != NULL; ++i)
- if (protp->enabled_flag && protp->demand_conf != NULL)
- if (!((*protp->demand_conf)(0)))
- die(1);
-}
-
-
-/*
- * demand_block - set each network protocol to block further packets.
- */
-void
-demand_block()
-{
- int i;
- struct protent *protp;
-
- for (i = 0; (protp = protocols[i]) != NULL; ++i)
- if (protp->enabled_flag && protp->demand_conf != NULL)
- sifnpmode(0, protp->protocol & ~0x8000, NPMODE_QUEUE);
- get_loop_output();
-}
-
-/*
- * demand_discard - set each network protocol to discard packets
- * with an error.
- */
-void
-demand_discard()
-{
- struct packet *pkt, *nextpkt;
- int i;
- struct protent *protp;
-
- for (i = 0; (protp = protocols[i]) != NULL; ++i)
- if (protp->enabled_flag && protp->demand_conf != NULL)
- sifnpmode(0, protp->protocol & ~0x8000, NPMODE_ERROR);
- get_loop_output();
-
- /* discard all saved packets */
- for (pkt = pend_q; pkt != NULL; pkt = nextpkt) {
- nextpkt = pkt->next;
- free(pkt);
- }
- pend_q = NULL;
- framelen = 0;
- flush_flag = 0;
- escape_flag = 0;
- fcs = PPP_INITFCS;
-}
-
-/*
- * demand_unblock - set each enabled network protocol to pass packets.
- */
-void
-demand_unblock()
-{
- int i;
- struct protent *protp;
-
- for (i = 0; (protp = protocols[i]) != NULL; ++i)
- if (protp->enabled_flag && protp->demand_conf != NULL)
- sifnpmode(0, protp->protocol & ~0x8000, NPMODE_PASS);
-}
-
-/*
- * FCS lookup table as calculated by genfcstab.
- */
-static u_short fcstab[256] = {
- 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf,
- 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7,
- 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e,
- 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876,
- 0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd,
- 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5,
- 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c,
- 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974,
- 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb,
- 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3,
- 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a,
- 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72,
- 0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9,
- 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1,
- 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738,
- 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70,
- 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7,
- 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff,
- 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036,
- 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e,
- 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5,
- 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd,
- 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134,
- 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c,
- 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3,
- 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb,
- 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232,
- 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a,
- 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1,
- 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9,
- 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330,
- 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78
-};
-
-/*
- * loop_chars - process characters received from the loopback.
- * Calls loop_frame when a complete frame has been accumulated.
- * Return value is 1 if we need to bring up the link, 0 otherwise.
- */
-int
-loop_chars(p, n)
- unsigned char *p;
- int n;
-{
- int c, rv;
-
- rv = 0;
- for (; n > 0; --n) {
- c = *p++;
- if (c == PPP_FLAG) {
- if (!escape_flag && !flush_flag
- && framelen > 2 && fcs == PPP_GOODFCS) {
- framelen -= 2;
- if (loop_frame((unsigned char *)frame, framelen))
- rv = 1;
- }
- framelen = 0;
- flush_flag = 0;
- escape_flag = 0;
- fcs = PPP_INITFCS;
- continue;
- }
- if (flush_flag)
- continue;
- if (escape_flag) {
- c ^= PPP_TRANS;
- escape_flag = 0;
- } else if (c == PPP_ESCAPE) {
- escape_flag = 1;
- continue;
- }
- if (framelen >= framemax) {
- flush_flag = 1;
- continue;
- }
- frame[framelen++] = c;
- fcs = PPP_FCS(fcs, c);
- }
- return rv;
-}
-
-/*
- * loop_frame - given a frame obtained from the loopback,
- * decide whether to bring up the link or not, and, if we want
- * to transmit this frame later, put it on the pending queue.
- * Return value is 1 if we need to bring up the link, 0 otherwise.
- * We assume that the kernel driver has already applied the
- * pass_filter, so we won't get packets it rejected.
- * We apply the active_filter to see if we want this packet to
- * bring up the link.
- */
-int
-loop_frame(frame, len)
- unsigned char *frame;
- int len;
-{
- struct packet *pkt;
-
- /* dbglog("from loop: %P", frame, len); */
- if (len < PPP_HDRLEN)
- return 0;
- if ((PPP_PROTOCOL(frame) & 0x8000) != 0)
- return 0; /* shouldn't get any of these anyway */
- if (!active_packet(frame, len))
- return 0;
-
- pkt = (struct packet *) malloc(sizeof(struct packet) + len);
- if (pkt != NULL) {
- pkt->length = len;
- pkt->next = NULL;
- memcpy(pkt->data, frame, len);
- if (pend_q == NULL)
- pend_q = pkt;
- else
- pend_qtail->next = pkt;
- pend_qtail = pkt;
- }
- return 1;
-}
-
-/*
- * demand_rexmit - Resend all those frames which we got via the
- * loopback, now that the real serial link is up.
- */
-void
-demand_rexmit(proto)
- int proto;
-{
- struct packet *pkt, *prev, *nextpkt;
-
- prev = NULL;
- pkt = pend_q;
- pend_q = NULL;
- for (; pkt != NULL; pkt = nextpkt) {
- nextpkt = pkt->next;
- if (PPP_PROTOCOL(pkt->data) == proto) {
- output(0, pkt->data, pkt->length);
- free(pkt);
- } else {
- if (prev == NULL)
- pend_q = pkt;
- else
- prev->next = pkt;
- prev = pkt;
- }
- }
- pend_qtail = prev;
- if (prev != NULL)
- prev->next = NULL;
-}
-
-/*
- * Scan a packet to decide whether it is an "active" packet,
- * that is, whether it is worth bringing up the link for.
- */
-static int
-active_packet(p, len)
- unsigned char *p;
- int len;
-{
- int proto, i;
- struct protent *protp;
-
- if (len < PPP_HDRLEN)
- return 0;
- proto = PPP_PROTOCOL(p);
-#ifdef PPP_FILTER
- if (pass_filter.bf_len != 0
- && bpf_filter(pass_filter.bf_insns, p, len, len) == 0)
- return 0;
- if (active_filter.bf_len != 0
- && bpf_filter(active_filter.bf_insns, p, len, len) == 0)
- return 0;
-#endif
- for (i = 0; (protp = protocols[i]) != NULL; ++i) {
- if (protp->protocol < 0xC000 && (protp->protocol & ~0x8000) == proto) {
- if (!protp->enabled_flag)
- return 0;
- if (protp->active_pkt == NULL)
- return 1;
- return (*protp->active_pkt)(p, len);
- }
- }
- return 0; /* not a supported protocol !!?? */
-}
diff --git a/mdk-stage1/ppp/pppd/eui64.c b/mdk-stage1/ppp/pppd/eui64.c
deleted file mode 100644
index 7f3176035..000000000
--- a/mdk-stage1/ppp/pppd/eui64.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- eui64.c - EUI64 routines for IPv6CP.
- Copyright (C) 1999 Tommi Komulainen <Tommi.Komulainen@iki.fi>
-
- Redistribution and use in source and binary forms are permitted
- provided that the above copyright notice and this paragraph are
- duplicated in all such forms and that any documentation,
- advertising materials, and other materials related to such
- distribution and use acknowledge that the software was developed
- by Tommi Komulainen. The name of the author may not be used
- to endorse or promote products derived from this software without
- specific prior written permission.
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-
-
- $Id$
-*/
-
-#define RCSID "$Id$"
-
-#include "pppd.h"
-
-static const char rcsid[] = RCSID;
-
-/*
- * eui64_ntoa - Make an ascii representation of an interface identifier
- */
-char *
-eui64_ntoa(e)
- eui64_t e;
-{
- static char buf[32];
-
- snprintf(buf, 32, "%02x%02x:%02x%02x:%02x%02x:%02x%02x",
- e.e8[0], e.e8[1], e.e8[2], e.e8[3],
- e.e8[4], e.e8[5], e.e8[6], e.e8[7]);
- return buf;
-}
diff --git a/mdk-stage1/ppp/pppd/eui64.h b/mdk-stage1/ppp/pppd/eui64.h
deleted file mode 100644
index ca4445345..000000000
--- a/mdk-stage1/ppp/pppd/eui64.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- eui64.h - EUI64 routines for IPv6CP.
- Copyright (C) 1999 Tommi Komulainen <Tommi.Komulainen@iki.fi>
-
- Redistribution and use in source and binary forms are permitted
- provided that the above copyright notice and this paragraph are
- duplicated in all such forms and that any documentation,
- advertising materials, and other materials related to such
- distribution and use acknowledge that the software was developed
- by Tommi Komulainen. The name of the author may not be used
- to endorse or promote products derived from this software without
- specific prior written permission.
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-
-
- $Id$
-*/
-
-#ifndef __EUI64_H__
-#define __EUI64_H__
-
-#if !defined(INET6)
-#error "this file should only be included when INET6 is defined"
-#endif /* not defined(INET6) */
-
-#if defined(SOL2)
-#include <netinet/in.h>
-
-typedef union {
- uint8_t e8[8]; /* lower 64-bit IPv6 address */
- uint32_t e32[2]; /* lower 64-bit IPv6 address */
-} eui64_t;
-
-/*
- * Declare the two below, since in.h only defines them when _KERNEL
- * is declared - which shouldn't be true when dealing with user-land programs
- */
-#define s6_addr8 _S6_un._S6_u8
-#define s6_addr32 _S6_un._S6_u32
-
-#else /* else if not defined(SOL2) */
-
-/*
- * TODO:
- *
- * Maybe this should be done by processing struct in6_addr directly...
- */
-typedef union
-{
- u_int8_t e8[8];
- u_int16_t e16[4];
- u_int32_t e32[2];
-} eui64_t;
-
-#endif /* defined(SOL2) */
-
-#define eui64_iszero(e) (((e).e32[0] | (e).e32[1]) == 0)
-#define eui64_equals(e, o) (((e).e32[0] == (o).e32[0]) && \
- ((e).e32[1] == (o).e32[1]))
-#define eui64_zero(e) (e).e32[0] = (e).e32[1] = 0;
-
-#define eui64_copy(s, d) memcpy(&(d), &(s), sizeof(eui64_t))
-
-#define eui64_magic(e) do { \
- (e).e32[0] = magic(); \
- (e).e32[1] = magic(); \
- (e).e8[0] &= ~2; \
- } while (0)
-#define eui64_magic_nz(x) do { \
- eui64_magic(x); \
- } while (eui64_iszero(x))
-#define eui64_magic_ne(x, y) do { \
- eui64_magic(x); \
- } while (eui64_equals(x, y))
-
-#define eui64_get(ll, cp) do { \
- eui64_copy((*cp), (ll)); \
- (cp) += sizeof(eui64_t); \
- } while (0)
-
-#define eui64_put(ll, cp) do { \
- eui64_copy((ll), (*cp)); \
- (cp) += sizeof(eui64_t); \
- } while (0)
-
-#define eui64_set32(e, l) do { \
- (e).e32[0] = 0; \
- (e).e32[1] = htonl(l); \
- } while (0)
-#define eui64_setlo32(e, l) eui64_set32(e, l)
-
-char *eui64_ntoa __P((eui64_t)); /* Returns ascii representation of id */
-
-#endif /* __EUI64_H__ */
-
diff --git a/mdk-stage1/ppp/pppd/fsm.c b/mdk-stage1/ppp/pppd/fsm.c
deleted file mode 100644
index 07a8c11f1..000000000
--- a/mdk-stage1/ppp/pppd/fsm.c
+++ /dev/null
@@ -1,762 +0,0 @@
-/*
- * fsm.c - {Link, IP} Control Protocol Finite State Machine.
- *
- * Copyright (c) 1989 Carnegie Mellon University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Carnegie Mellon University. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#define RCSID "$Id$"
-
-/*
- * TODO:
- * Randomize fsm id on link/init.
- * Deal with variable outgoing MTU.
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <sys/types.h>
-
-#include "pppd.h"
-#include "fsm.h"
-
-static const char rcsid[] = RCSID;
-
-static void fsm_timeout __P((void *));
-static void fsm_rconfreq __P((fsm *, int, u_char *, int));
-static void fsm_rconfack __P((fsm *, int, u_char *, int));
-static void fsm_rconfnakrej __P((fsm *, int, int, u_char *, int));
-static void fsm_rtermreq __P((fsm *, int, u_char *, int));
-static void fsm_rtermack __P((fsm *));
-static void fsm_rcoderej __P((fsm *, u_char *, int));
-static void fsm_sconfreq __P((fsm *, int));
-
-#define PROTO_NAME(f) ((f)->callbacks->proto_name)
-
-int peer_mru[NUM_PPP];
-
-
-/*
- * fsm_init - Initialize fsm.
- *
- * Initialize fsm state.
- */
-void
-fsm_init(f)
- fsm *f;
-{
- f->state = INITIAL;
- f->flags = 0;
- f->id = 0; /* XXX Start with random id? */
- f->timeouttime = DEFTIMEOUT;
- f->maxconfreqtransmits = DEFMAXCONFREQS;
- f->maxtermtransmits = DEFMAXTERMREQS;
- f->maxnakloops = DEFMAXNAKLOOPS;
- f->term_reason_len = 0;
-}
-
-
-/*
- * fsm_lowerup - The lower layer is up.
- */
-void
-fsm_lowerup(f)
- fsm *f;
-{
- switch( f->state ){
- case INITIAL:
- f->state = CLOSED;
- break;
-
- case STARTING:
- if( f->flags & OPT_SILENT )
- f->state = STOPPED;
- else {
- /* Send an initial configure-request */
- fsm_sconfreq(f, 0);
- f->state = REQSENT;
- }
- break;
-
- default:
- FSMDEBUG(("%s: Up event in state %d!", PROTO_NAME(f), f->state));
- }
-}
-
-
-/*
- * fsm_lowerdown - The lower layer is down.
- *
- * Cancel all timeouts and inform upper layers.
- */
-void
-fsm_lowerdown(f)
- fsm *f;
-{
- switch( f->state ){
- case CLOSED:
- f->state = INITIAL;
- break;
-
- case STOPPED:
- f->state = STARTING;
- if( f->callbacks->starting )
- (*f->callbacks->starting)(f);
- break;
-
- case CLOSING:
- f->state = INITIAL;
- UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */
- break;
-
- case STOPPING:
- case REQSENT:
- case ACKRCVD:
- case ACKSENT:
- f->state = STARTING;
- UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */
- break;
-
- case OPENED:
- if( f->callbacks->down )
- (*f->callbacks->down)(f);
- f->state = STARTING;
- break;
-
- default:
- FSMDEBUG(("%s: Down event in state %d!", PROTO_NAME(f), f->state));
- }
-}
-
-
-/*
- * fsm_open - Link is allowed to come up.
- */
-void
-fsm_open(f)
- fsm *f;
-{
- switch( f->state ){
- case INITIAL:
- f->state = STARTING;
- if( f->callbacks->starting )
- (*f->callbacks->starting)(f);
- break;
-
- case CLOSED:
- if( f->flags & OPT_SILENT )
- f->state = STOPPED;
- else {
- /* Send an initial configure-request */
- fsm_sconfreq(f, 0);
- f->state = REQSENT;
- }
- break;
-
- case CLOSING:
- f->state = STOPPING;
- /* fall through */
- case STOPPED:
- case OPENED:
- if( f->flags & OPT_RESTART ){
- fsm_lowerdown(f);
- fsm_lowerup(f);
- }
- break;
- }
-}
-
-
-/*
- * fsm_close - Start closing connection.
- *
- * Cancel timeouts and either initiate close or possibly go directly to
- * the CLOSED state.
- */
-void
-fsm_close(f, reason)
- fsm *f;
- char *reason;
-{
- f->term_reason = reason;
- f->term_reason_len = (reason == NULL? 0: strlen(reason));
- switch( f->state ){
- case STARTING:
- f->state = INITIAL;
- break;
- case STOPPED:
- f->state = CLOSED;
- break;
- case STOPPING:
- f->state = CLOSING;
- break;
-
- case REQSENT:
- case ACKRCVD:
- case ACKSENT:
- case OPENED:
- if( f->state != OPENED )
- UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */
- else if( f->callbacks->down )
- (*f->callbacks->down)(f); /* Inform upper layers we're down */
-
- /* Init restart counter, send Terminate-Request */
- f->retransmits = f->maxtermtransmits;
- fsm_sdata(f, TERMREQ, f->reqid = ++f->id,
- (u_char *) f->term_reason, f->term_reason_len);
- TIMEOUT(fsm_timeout, f, f->timeouttime);
- --f->retransmits;
-
- f->state = CLOSING;
- break;
- }
-}
-
-
-/*
- * fsm_timeout - Timeout expired.
- */
-static void
-fsm_timeout(arg)
- void *arg;
-{
- fsm *f = (fsm *) arg;
-
- switch (f->state) {
- case CLOSING:
- case STOPPING:
- if( f->retransmits <= 0 ){
- /*
- * We've waited for an ack long enough. Peer probably heard us.
- */
- f->state = (f->state == CLOSING)? CLOSED: STOPPED;
- if( f->callbacks->finished )
- (*f->callbacks->finished)(f);
- } else {
- /* Send Terminate-Request */
- fsm_sdata(f, TERMREQ, f->reqid = ++f->id,
- (u_char *) f->term_reason, f->term_reason_len);
- TIMEOUT(fsm_timeout, f, f->timeouttime);
- --f->retransmits;
- }
- break;
-
- case REQSENT:
- case ACKRCVD:
- case ACKSENT:
- if (f->retransmits <= 0) {
- warn("%s: timeout sending Config-Requests\n", PROTO_NAME(f));
- f->state = STOPPED;
- if( (f->flags & OPT_PASSIVE) == 0 && f->callbacks->finished )
- (*f->callbacks->finished)(f);
-
- } else {
- /* Retransmit the configure-request */
- if (f->callbacks->retransmit)
- (*f->callbacks->retransmit)(f);
- fsm_sconfreq(f, 1); /* Re-send Configure-Request */
- if( f->state == ACKRCVD )
- f->state = REQSENT;
- }
- break;
-
- default:
- FSMDEBUG(("%s: Timeout event in state %d!", PROTO_NAME(f), f->state));
- }
-}
-
-
-/*
- * fsm_input - Input packet.
- */
-void
-fsm_input(f, inpacket, l)
- fsm *f;
- u_char *inpacket;
- int l;
-{
- u_char *inp;
- u_char code, id;
- int len;
-
- /*
- * Parse header (code, id and length).
- * If packet too short, drop it.
- */
- inp = inpacket;
- if (l < HEADERLEN) {
- FSMDEBUG(("fsm_input(%x): Rcvd short header.", f->protocol));
- return;
- }
- GETCHAR(code, inp);
- GETCHAR(id, inp);
- GETSHORT(len, inp);
- if (len < HEADERLEN) {
- FSMDEBUG(("fsm_input(%x): Rcvd illegal length.", f->protocol));
- return;
- }
- if (len > l) {
- FSMDEBUG(("fsm_input(%x): Rcvd short packet.", f->protocol));
- return;
- }
- len -= HEADERLEN; /* subtract header length */
-
- if( f->state == INITIAL || f->state == STARTING ){
- FSMDEBUG(("fsm_input(%x): Rcvd packet in state %d.",
- f->protocol, f->state));
- return;
- }
-
- /*
- * Action depends on code.
- */
- switch (code) {
- case CONFREQ:
- fsm_rconfreq(f, id, inp, len);
- break;
-
- case CONFACK:
- fsm_rconfack(f, id, inp, len);
- break;
-
- case CONFNAK:
- case CONFREJ:
- fsm_rconfnakrej(f, code, id, inp, len);
- break;
-
- case TERMREQ:
- fsm_rtermreq(f, id, inp, len);
- break;
-
- case TERMACK:
- fsm_rtermack(f);
- break;
-
- case CODEREJ:
- fsm_rcoderej(f, inp, len);
- break;
-
- default:
- if( !f->callbacks->extcode
- || !(*f->callbacks->extcode)(f, code, id, inp, len) )
- fsm_sdata(f, CODEREJ, ++f->id, inpacket, len + HEADERLEN);
- break;
- }
-}
-
-
-/*
- * fsm_rconfreq - Receive Configure-Request.
- */
-static void
-fsm_rconfreq(f, id, inp, len)
- fsm *f;
- u_char id;
- u_char *inp;
- int len;
-{
- int code, reject_if_disagree;
-
- switch( f->state ){
- case CLOSED:
- /* Go away, we're closed */
- fsm_sdata(f, TERMACK, id, NULL, 0);
- return;
- case CLOSING:
- case STOPPING:
- return;
-
- case OPENED:
- /* Go down and restart negotiation */
- if( f->callbacks->down )
- (*f->callbacks->down)(f); /* Inform upper layers */
- fsm_sconfreq(f, 0); /* Send initial Configure-Request */
- break;
-
- case STOPPED:
- /* Negotiation started by our peer */
- fsm_sconfreq(f, 0); /* Send initial Configure-Request */
- f->state = REQSENT;
- break;
- }
-
- /*
- * Pass the requested configuration options
- * to protocol-specific code for checking.
- */
- if (f->callbacks->reqci){ /* Check CI */
- reject_if_disagree = (f->nakloops >= f->maxnakloops);
- code = (*f->callbacks->reqci)(f, inp, &len, reject_if_disagree);
- } else if (len)
- code = CONFREJ; /* Reject all CI */
- else
- code = CONFACK;
-
- /* send the Ack, Nak or Rej to the peer */
- fsm_sdata(f, code, id, inp, len);
-
- if (code == CONFACK) {
- if (f->state == ACKRCVD) {
- UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */
- f->state = OPENED;
- if (f->callbacks->up)
- (*f->callbacks->up)(f); /* Inform upper layers */
- } else
- f->state = ACKSENT;
- f->nakloops = 0;
-
- } else {
- /* we sent CONFACK or CONFREJ */
- if (f->state != ACKRCVD)
- f->state = REQSENT;
- if( code == CONFNAK )
- ++f->nakloops;
- }
-}
-
-
-/*
- * fsm_rconfack - Receive Configure-Ack.
- */
-static void
-fsm_rconfack(f, id, inp, len)
- fsm *f;
- int id;
- u_char *inp;
- int len;
-{
- if (id != f->reqid || f->seen_ack) /* Expected id? */
- return; /* Nope, toss... */
- if( !(f->callbacks->ackci? (*f->callbacks->ackci)(f, inp, len):
- (len == 0)) ){
- /* Ack is bad - ignore it */
- error("Received bad configure-ack: %P", inp, len);
- return;
- }
- f->seen_ack = 1;
-
- switch (f->state) {
- case CLOSED:
- case STOPPED:
- fsm_sdata(f, TERMACK, id, NULL, 0);
- break;
-
- case REQSENT:
- f->state = ACKRCVD;
- f->retransmits = f->maxconfreqtransmits;
- break;
-
- case ACKRCVD:
- /* Huh? an extra valid Ack? oh well... */
- UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */
- fsm_sconfreq(f, 0);
- f->state = REQSENT;
- break;
-
- case ACKSENT:
- UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */
- f->state = OPENED;
- f->retransmits = f->maxconfreqtransmits;
- if (f->callbacks->up)
- (*f->callbacks->up)(f); /* Inform upper layers */
- break;
-
- case OPENED:
- /* Go down and restart negotiation */
- if (f->callbacks->down)
- (*f->callbacks->down)(f); /* Inform upper layers */
- fsm_sconfreq(f, 0); /* Send initial Configure-Request */
- f->state = REQSENT;
- break;
- }
-}
-
-
-/*
- * fsm_rconfnakrej - Receive Configure-Nak or Configure-Reject.
- */
-static void
-fsm_rconfnakrej(f, code, id, inp, len)
- fsm *f;
- int code, id;
- u_char *inp;
- int len;
-{
- int (*proc) __P((fsm *, u_char *, int));
- int ret;
-
- if (id != f->reqid || f->seen_ack) /* Expected id? */
- return; /* Nope, toss... */
- proc = (code == CONFNAK)? f->callbacks->nakci: f->callbacks->rejci;
- if (!proc || !(ret = proc(f, inp, len))) {
- /* Nak/reject is bad - ignore it */
- error("Received bad configure-nak/rej: %P", inp, len);
- return;
- }
- f->seen_ack = 1;
-
- switch (f->state) {
- case CLOSED:
- case STOPPED:
- fsm_sdata(f, TERMACK, id, NULL, 0);
- break;
-
- case REQSENT:
- case ACKSENT:
- /* They didn't agree to what we wanted - try another request */
- UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */
- if (ret < 0)
- f->state = STOPPED; /* kludge for stopping CCP */
- else
- fsm_sconfreq(f, 0); /* Send Configure-Request */
- break;
-
- case ACKRCVD:
- /* Got a Nak/reject when we had already had an Ack?? oh well... */
- UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */
- fsm_sconfreq(f, 0);
- f->state = REQSENT;
- break;
-
- case OPENED:
- /* Go down and restart negotiation */
- if (f->callbacks->down)
- (*f->callbacks->down)(f); /* Inform upper layers */
- fsm_sconfreq(f, 0); /* Send initial Configure-Request */
- f->state = REQSENT;
- break;
- }
-}
-
-
-/*
- * fsm_rtermreq - Receive Terminate-Req.
- */
-static void
-fsm_rtermreq(f, id, p, len)
- fsm *f;
- int id;
- u_char *p;
- int len;
-{
- switch (f->state) {
- case ACKRCVD:
- case ACKSENT:
- f->state = REQSENT; /* Start over but keep trying */
- break;
-
- case OPENED:
- if (len > 0) {
- info("%s terminated by peer (%0.*v)", PROTO_NAME(f), len, p);
- } else
- info("%s terminated by peer", PROTO_NAME(f));
- if (f->callbacks->down)
- (*f->callbacks->down)(f); /* Inform upper layers */
- f->retransmits = 0;
- f->state = STOPPING;
- TIMEOUT(fsm_timeout, f, f->timeouttime);
- break;
- }
-
- fsm_sdata(f, TERMACK, id, NULL, 0);
-}
-
-
-/*
- * fsm_rtermack - Receive Terminate-Ack.
- */
-static void
-fsm_rtermack(f)
- fsm *f;
-{
- switch (f->state) {
- case CLOSING:
- UNTIMEOUT(fsm_timeout, f);
- f->state = CLOSED;
- if( f->callbacks->finished )
- (*f->callbacks->finished)(f);
- break;
- case STOPPING:
- UNTIMEOUT(fsm_timeout, f);
- f->state = STOPPED;
- if( f->callbacks->finished )
- (*f->callbacks->finished)(f);
- break;
-
- case ACKRCVD:
- f->state = REQSENT;
- break;
-
- case OPENED:
- if (f->callbacks->down)
- (*f->callbacks->down)(f); /* Inform upper layers */
- fsm_sconfreq(f, 0);
- break;
- }
-}
-
-
-/*
- * fsm_rcoderej - Receive an Code-Reject.
- */
-static void
-fsm_rcoderej(f, inp, len)
- fsm *f;
- u_char *inp;
- int len;
-{
- u_char code, id;
-
- if (len < HEADERLEN) {
- FSMDEBUG(("fsm_rcoderej: Rcvd short Code-Reject packet!"));
- return;
- }
- GETCHAR(code, inp);
- GETCHAR(id, inp);
- warn("%s: Rcvd Code-Reject for code %d, id %d", PROTO_NAME(f), code, id);
-
- if( f->state == ACKRCVD )
- f->state = REQSENT;
-}
-
-
-/*
- * fsm_protreject - Peer doesn't speak this protocol.
- *
- * Treat this as a catastrophic error (RXJ-).
- */
-void
-fsm_protreject(f)
- fsm *f;
-{
- switch( f->state ){
- case CLOSING:
- UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */
- /* fall through */
- case CLOSED:
- f->state = CLOSED;
- if( f->callbacks->finished )
- (*f->callbacks->finished)(f);
- break;
-
- case STOPPING:
- case REQSENT:
- case ACKRCVD:
- case ACKSENT:
- UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */
- /* fall through */
- case STOPPED:
- f->state = STOPPED;
- if( f->callbacks->finished )
- (*f->callbacks->finished)(f);
- break;
-
- case OPENED:
- if( f->callbacks->down )
- (*f->callbacks->down)(f);
-
- /* Init restart counter, send Terminate-Request */
- f->retransmits = f->maxtermtransmits;
- fsm_sdata(f, TERMREQ, f->reqid = ++f->id,
- (u_char *) f->term_reason, f->term_reason_len);
- TIMEOUT(fsm_timeout, f, f->timeouttime);
- --f->retransmits;
-
- f->state = STOPPING;
- break;
-
- default:
- FSMDEBUG(("%s: Protocol-reject event in state %d!",
- PROTO_NAME(f), f->state));
- }
-}
-
-
-/*
- * fsm_sconfreq - Send a Configure-Request.
- */
-static void
-fsm_sconfreq(f, retransmit)
- fsm *f;
- int retransmit;
-{
- u_char *outp;
- int cilen;
-
- if( f->state != REQSENT && f->state != ACKRCVD && f->state != ACKSENT ){
- /* Not currently negotiating - reset options */
- if( f->callbacks->resetci )
- (*f->callbacks->resetci)(f);
- f->nakloops = 0;
- }
-
- if( !retransmit ){
- /* New request - reset retransmission counter, use new ID */
- f->retransmits = f->maxconfreqtransmits;
- f->reqid = ++f->id;
- }
-
- f->seen_ack = 0;
-
- /*
- * Make up the request packet
- */
- outp = outpacket_buf + PPP_HDRLEN + HEADERLEN;
- if( f->callbacks->cilen && f->callbacks->addci ){
- cilen = (*f->callbacks->cilen)(f);
- if( cilen > peer_mru[f->unit] - HEADERLEN )
- cilen = peer_mru[f->unit] - HEADERLEN;
- if (f->callbacks->addci)
- (*f->callbacks->addci)(f, outp, &cilen);
- } else
- cilen = 0;
-
- /* send the request to our peer */
- fsm_sdata(f, CONFREQ, f->reqid, outp, cilen);
-
- /* start the retransmit timer */
- --f->retransmits;
- TIMEOUT(fsm_timeout, f, f->timeouttime);
-}
-
-
-/*
- * fsm_sdata - Send some data.
- *
- * Used for all packets sent to our peer by this module.
- */
-void
-fsm_sdata(f, code, id, data, datalen)
- fsm *f;
- u_char code, id;
- u_char *data;
- int datalen;
-{
- u_char *outp;
- int outlen;
-
- /* Adjust length to be smaller than MTU */
- outp = outpacket_buf;
- if (datalen > peer_mru[f->unit] - HEADERLEN)
- datalen = peer_mru[f->unit] - HEADERLEN;
- if (datalen && data != outp + PPP_HDRLEN + HEADERLEN)
- BCOPY(data, outp + PPP_HDRLEN + HEADERLEN, datalen);
- outlen = datalen + HEADERLEN;
- MAKEHEADER(outp, f->protocol);
- PUTCHAR(code, outp);
- PUTCHAR(id, outp);
- PUTSHORT(outlen, outp);
- output(f->unit, outpacket_buf, outlen + PPP_HDRLEN);
-}
diff --git a/mdk-stage1/ppp/pppd/fsm.h b/mdk-stage1/ppp/pppd/fsm.h
deleted file mode 100644
index c94a68e6c..000000000
--- a/mdk-stage1/ppp/pppd/fsm.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * fsm.h - {Link, IP} Control Protocol Finite State Machine definitions.
- *
- * Copyright (c) 1989 Carnegie Mellon University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Carnegie Mellon University. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Id$
- */
-
-/*
- * Packet header = Code, id, length.
- */
-#define HEADERLEN 4
-
-
-/*
- * CP (LCP, IPCP, etc.) codes.
- */
-#define CONFREQ 1 /* Configuration Request */
-#define CONFACK 2 /* Configuration Ack */
-#define CONFNAK 3 /* Configuration Nak */
-#define CONFREJ 4 /* Configuration Reject */
-#define TERMREQ 5 /* Termination Request */
-#define TERMACK 6 /* Termination Ack */
-#define CODEREJ 7 /* Code Reject */
-
-
-/*
- * Each FSM is described by an fsm structure and fsm callbacks.
- */
-typedef struct fsm {
- int unit; /* Interface unit number */
- int protocol; /* Data Link Layer Protocol field value */
- int state; /* State */
- int flags; /* Contains option bits */
- u_char id; /* Current id */
- u_char reqid; /* Current request id */
- u_char seen_ack; /* Have received valid Ack/Nak/Rej to Req */
- int timeouttime; /* Timeout time in milliseconds */
- int maxconfreqtransmits; /* Maximum Configure-Request transmissions */
- int retransmits; /* Number of retransmissions left */
- int maxtermtransmits; /* Maximum Terminate-Request transmissions */
- int nakloops; /* Number of nak loops since last ack */
- int maxnakloops; /* Maximum number of nak loops tolerated */
- struct fsm_callbacks *callbacks; /* Callback routines */
- char *term_reason; /* Reason for closing protocol */
- int term_reason_len; /* Length of term_reason */
-} fsm;
-
-
-typedef struct fsm_callbacks {
- void (*resetci) /* Reset our Configuration Information */
- __P((fsm *));
- int (*cilen) /* Length of our Configuration Information */
- __P((fsm *));
- void (*addci) /* Add our Configuration Information */
- __P((fsm *, u_char *, int *));
- int (*ackci) /* ACK our Configuration Information */
- __P((fsm *, u_char *, int));
- int (*nakci) /* NAK our Configuration Information */
- __P((fsm *, u_char *, int));
- int (*rejci) /* Reject our Configuration Information */
- __P((fsm *, u_char *, int));
- int (*reqci) /* Request peer's Configuration Information */
- __P((fsm *, u_char *, int *, int));
- void (*up) /* Called when fsm reaches OPENED state */
- __P((fsm *));
- void (*down) /* Called when fsm leaves OPENED state */
- __P((fsm *));
- void (*starting) /* Called when we want the lower layer */
- __P((fsm *));
- void (*finished) /* Called when we don't want the lower layer */
- __P((fsm *));
- void (*protreject) /* Called when Protocol-Reject received */
- __P((int));
- void (*retransmit) /* Retransmission is necessary */
- __P((fsm *));
- int (*extcode) /* Called when unknown code received */
- __P((fsm *, int, int, u_char *, int));
- char *proto_name; /* String name for protocol (for messages) */
-} fsm_callbacks;
-
-
-/*
- * Link states.
- */
-#define INITIAL 0 /* Down, hasn't been opened */
-#define STARTING 1 /* Down, been opened */
-#define CLOSED 2 /* Up, hasn't been opened */
-#define STOPPED 3 /* Open, waiting for down event */
-#define CLOSING 4 /* Terminating the connection, not open */
-#define STOPPING 5 /* Terminating, but open */
-#define REQSENT 6 /* We've sent a Config Request */
-#define ACKRCVD 7 /* We've received a Config Ack */
-#define ACKSENT 8 /* We've sent a Config Ack */
-#define OPENED 9 /* Connection available */
-
-
-/*
- * Flags - indicate options controlling FSM operation
- */
-#define OPT_PASSIVE 1 /* Don't die if we don't get a response */
-#define OPT_RESTART 2 /* Treat 2nd OPEN as DOWN, UP */
-#define OPT_SILENT 4 /* Wait for peer to speak first */
-
-
-/*
- * Timeouts.
- */
-#define DEFTIMEOUT 3 /* Timeout time in seconds */
-#define DEFMAXTERMREQS 2 /* Maximum Terminate-Request transmissions */
-#define DEFMAXCONFREQS 10 /* Maximum Configure-Request transmissions */
-#define DEFMAXNAKLOOPS 5 /* Maximum number of nak loops */
-
-
-/*
- * Prototypes
- */
-void fsm_init __P((fsm *));
-void fsm_lowerup __P((fsm *));
-void fsm_lowerdown __P((fsm *));
-void fsm_open __P((fsm *));
-void fsm_close __P((fsm *, char *));
-void fsm_input __P((fsm *, u_char *, int));
-void fsm_protreject __P((fsm *));
-void fsm_sdata __P((fsm *, int, int, u_char *, int));
-
-
-/*
- * Variables
- */
-extern int peer_mru[]; /* currently negotiated peer MRU (per unit) */
diff --git a/mdk-stage1/ppp/pppd/ipcp.c b/mdk-stage1/ppp/pppd/ipcp.c
deleted file mode 100644
index 3f64357ed..000000000
--- a/mdk-stage1/ppp/pppd/ipcp.c
+++ /dev/null
@@ -1,2054 +0,0 @@
-/*
- * ipcp.c - PPP IP Control Protocol.
- *
- * Copyright (c) 1989 Carnegie Mellon University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Carnegie Mellon University. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#define RCSID "$Id$"
-
-/*
- * TODO:
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <netdb.h>
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#include "pppd.h"
-#include "fsm.h"
-#include "ipcp.h"
-#include "pathnames.h"
-
-static const char rcsid[] = RCSID;
-
-/* global vars */
-ipcp_options ipcp_wantoptions[NUM_PPP]; /* Options that we want to request */
-ipcp_options ipcp_gotoptions[NUM_PPP]; /* Options that peer ack'd */
-ipcp_options ipcp_allowoptions[NUM_PPP]; /* Options we allow peer to request */
-ipcp_options ipcp_hisoptions[NUM_PPP]; /* Options that we ack'd */
-
-u_int32_t netmask = 0; /* IP netmask to set on interface */
-
-bool disable_defaultip = 0; /* Don't use hostname for default IP adrs */
-
-/* Hook for a plugin to know when IP protocol has come up */
-void (*ip_up_hook) __P((void)) = NULL;
-
-/* Hook for a plugin to know when IP protocol has come down */
-void (*ip_down_hook) __P((void)) = NULL;
-
-/* Hook for a plugin to choose the remote IP address */
-void (*ip_choose_hook) __P((u_int32_t *)) = NULL;
-
-/* local vars */
-static int default_route_set[NUM_PPP]; /* Have set up a default route */
-static int proxy_arp_set[NUM_PPP]; /* Have created proxy arp entry */
-static bool usepeerdns; /* Ask peer for DNS addrs */
-static int ipcp_is_up; /* have called np_up() */
-static bool ask_for_local; /* request our address from peer */
-static char vj_value[8]; /* string form of vj option value */
-static char netmask_str[20]; /* string form of netmask value */
-
-/*
- * Callbacks for fsm code. (CI = Configuration Information)
- */
-static void ipcp_resetci __P((fsm *)); /* Reset our CI */
-static int ipcp_cilen __P((fsm *)); /* Return length of our CI */
-static void ipcp_addci __P((fsm *, u_char *, int *)); /* Add our CI */
-static int ipcp_ackci __P((fsm *, u_char *, int)); /* Peer ack'd our CI */
-static int ipcp_nakci __P((fsm *, u_char *, int)); /* Peer nak'd our CI */
-static int ipcp_rejci __P((fsm *, u_char *, int)); /* Peer rej'd our CI */
-static int ipcp_reqci __P((fsm *, u_char *, int *, int)); /* Rcv CI */
-static void ipcp_up __P((fsm *)); /* We're UP */
-static void ipcp_down __P((fsm *)); /* We're DOWN */
-static void ipcp_finished __P((fsm *)); /* Don't need lower layer */
-
-fsm ipcp_fsm[NUM_PPP]; /* IPCP fsm structure */
-
-static fsm_callbacks ipcp_callbacks = { /* IPCP callback routines */
- ipcp_resetci, /* Reset our Configuration Information */
- ipcp_cilen, /* Length of our Configuration Information */
- ipcp_addci, /* Add our Configuration Information */
- ipcp_ackci, /* ACK our Configuration Information */
- ipcp_nakci, /* NAK our Configuration Information */
- ipcp_rejci, /* Reject our Configuration Information */
- ipcp_reqci, /* Request peer's Configuration Information */
- ipcp_up, /* Called when fsm reaches OPENED state */
- ipcp_down, /* Called when fsm leaves OPENED state */
- NULL, /* Called when we want the lower layer up */
- ipcp_finished, /* Called when we want the lower layer down */
- NULL, /* Called when Protocol-Reject received */
- NULL, /* Retransmission is necessary */
- NULL, /* Called to handle protocol-specific codes */
- "IPCP" /* String name of protocol */
-};
-
-/*
- * Command-line options.
- */
-static int setvjslots __P((char **));
-static int setdnsaddr __P((char **));
-static int setwinsaddr __P((char **));
-static int setnetmask __P((char **));
-static int setipaddr __P((char *, char **, int));
-static void printipaddr __P((option_t *, void (*)(void *, char *,...),void *));
-
-static option_t ipcp_option_list[] = {
- { "noip", o_bool, &ipcp_protent.enabled_flag,
- "Disable IP and IPCP" },
- { "-ip", o_bool, &ipcp_protent.enabled_flag,
- "Disable IP and IPCP", OPT_ALIAS },
-
- { "novj", o_bool, &ipcp_wantoptions[0].neg_vj,
- "Disable VJ compression", OPT_A2CLR, &ipcp_allowoptions[0].neg_vj },
- { "-vj", o_bool, &ipcp_wantoptions[0].neg_vj,
- "Disable VJ compression", OPT_ALIAS | OPT_A2CLR,
- &ipcp_allowoptions[0].neg_vj },
-
- { "novjccomp", o_bool, &ipcp_wantoptions[0].cflag,
- "Disable VJ connection-ID compression", OPT_A2CLR,
- &ipcp_allowoptions[0].cflag },
- { "-vjccomp", o_bool, &ipcp_wantoptions[0].cflag,
- "Disable VJ connection-ID compression", OPT_ALIAS | OPT_A2CLR,
- &ipcp_allowoptions[0].cflag },
-
- { "vj-max-slots", o_special, (void *)setvjslots,
- "Set maximum VJ header slots",
- OPT_PRIO | OPT_A2STRVAL | OPT_STATIC, vj_value },
-
- { "ipcp-accept-local", o_bool, &ipcp_wantoptions[0].accept_local,
- "Accept peer's address for us", 1 },
- { "ipcp-accept-remote", o_bool, &ipcp_wantoptions[0].accept_remote,
- "Accept peer's address for it", 1 },
-
- { "ipparam", o_string, &ipparam,
- "Set ip script parameter", OPT_PRIO },
-
- { "noipdefault", o_bool, &disable_defaultip,
- "Don't use name for default IP adrs", 1 },
-
- { "ms-dns", 1, (void *)setdnsaddr,
- "DNS address for the peer's use" },
- { "ms-wins", 1, (void *)setwinsaddr,
- "Nameserver for SMB over TCP/IP for peer" },
-
- { "ipcp-restart", o_int, &ipcp_fsm[0].timeouttime,
- "Set timeout for IPCP", OPT_PRIO },
- { "ipcp-max-terminate", o_int, &ipcp_fsm[0].maxtermtransmits,
- "Set max #xmits for term-reqs", OPT_PRIO },
- { "ipcp-max-configure", o_int, &ipcp_fsm[0].maxconfreqtransmits,
- "Set max #xmits for conf-reqs", OPT_PRIO },
- { "ipcp-max-failure", o_int, &ipcp_fsm[0].maxnakloops,
- "Set max #conf-naks for IPCP", OPT_PRIO },
-
- { "defaultroute", o_bool, &ipcp_wantoptions[0].default_route,
- "Add default route", OPT_ENABLE|1, &ipcp_allowoptions[0].default_route },
- { "nodefaultroute", o_bool, &ipcp_allowoptions[0].default_route,
- "disable defaultroute option", OPT_A2CLR,
- &ipcp_wantoptions[0].default_route },
- { "-defaultroute", o_bool, &ipcp_allowoptions[0].default_route,
- "disable defaultroute option", OPT_ALIAS | OPT_A2CLR,
- &ipcp_wantoptions[0].default_route },
-
- { "proxyarp", o_bool, &ipcp_wantoptions[0].proxy_arp,
- "Add proxy ARP entry", OPT_ENABLE|1, &ipcp_allowoptions[0].proxy_arp },
- { "noproxyarp", o_bool, &ipcp_allowoptions[0].proxy_arp,
- "disable proxyarp option", OPT_A2CLR,
- &ipcp_wantoptions[0].proxy_arp },
- { "-proxyarp", o_bool, &ipcp_allowoptions[0].proxy_arp,
- "disable proxyarp option", OPT_ALIAS | OPT_A2CLR,
- &ipcp_wantoptions[0].proxy_arp },
-
- { "usepeerdns", o_bool, &usepeerdns,
- "Ask peer for DNS address(es)", 1 },
-
- { "netmask", o_special, (void *)setnetmask,
- "set netmask", OPT_PRIO | OPT_A2STRVAL | OPT_STATIC, netmask_str },
-
- { "IP addresses", o_wild, (void *) &setipaddr,
- "set local and remote IP addresses",
- OPT_NOARG | OPT_A2PRINTER, (void *) &printipaddr },
-
- { NULL }
-};
-
-/*
- * Protocol entry points from main code.
- */
-static void ipcp_init __P((int));
-static void ipcp_open __P((int));
-static void ipcp_close __P((int, char *));
-static void ipcp_lowerup __P((int));
-static void ipcp_lowerdown __P((int));
-static void ipcp_input __P((int, u_char *, int));
-static void ipcp_protrej __P((int));
-static int ipcp_printpkt __P((u_char *, int,
- void (*) __P((void *, char *, ...)), void *));
-static void ip_check_options __P((void));
-static int ip_demand_conf __P((int));
-static int ip_active_pkt __P((u_char *, int));
-static void create_resolv __P((u_int32_t, u_int32_t));
-
-struct protent ipcp_protent = {
- PPP_IPCP,
- ipcp_init,
- ipcp_input,
- ipcp_protrej,
- ipcp_lowerup,
- ipcp_lowerdown,
- ipcp_open,
- ipcp_close,
- ipcp_printpkt,
- NULL,
- 1,
- "IPCP",
- "IP",
- ipcp_option_list,
- ip_check_options,
- ip_demand_conf,
- ip_active_pkt
-};
-
-static void ipcp_clear_addrs __P((int, u_int32_t, u_int32_t));
-static void ipcp_script __P((char *)); /* Run an up/down script */
-static void ipcp_script_done __P((void *));
-
-/*
- * Lengths of configuration options.
- */
-#define CILEN_VOID 2
-#define CILEN_COMPRESS 4 /* min length for compression protocol opt. */
-#define CILEN_VJ 6 /* length for RFC1332 Van-Jacobson opt. */
-#define CILEN_ADDR 6 /* new-style single address option */
-#define CILEN_ADDRS 10 /* old-style dual address option */
-
-
-#define CODENAME(x) ((x) == CONFACK ? "ACK" : \
- (x) == CONFNAK ? "NAK" : "REJ")
-
-/*
- * This state variable is used to ensure that we don't
- * run an ipcp-up/down script while one is already running.
- */
-static enum script_state {
- s_down,
- s_up,
-} ipcp_script_state;
-static pid_t ipcp_script_pid;
-
-/*
- * Make a string representation of a network IP address.
- */
-char *
-ip_ntoa(ipaddr)
-u_int32_t ipaddr;
-{
- static char b[64];
-
- slprintf(b, sizeof(b), "%I", ipaddr);
- return b;
-}
-
-/*
- * Option parsing.
- */
-
-/*
- * setvjslots - set maximum number of connection slots for VJ compression
- */
-static int
-setvjslots(argv)
- char **argv;
-{
- int value;
-
- if (!int_option(*argv, &value))
- return 0;
- if (value < 2 || value > 16) {
- option_error("vj-max-slots value must be between 2 and 16");
- return 0;
- }
- ipcp_wantoptions [0].maxslotindex =
- ipcp_allowoptions[0].maxslotindex = value - 1;
- slprintf(vj_value, sizeof(vj_value), "%d", value);
- return 1;
-}
-
-/*
- * setdnsaddr - set the dns address(es)
- */
-static int
-setdnsaddr(argv)
- char **argv;
-{
- u_int32_t dns;
- struct hostent *hp;
-
- dns = inet_addr(*argv);
- if (dns == (u_int32_t) -1) {
- if ((hp = gethostbyname(*argv)) == NULL) {
- option_error("invalid address parameter '%s' for ms-dns option",
- *argv);
- return 0;
- }
- dns = *(u_int32_t *)hp->h_addr;
- }
-
- /* We take the last 2 values given, the 2nd-last as the primary
- and the last as the secondary. If only one is given it
- becomes both primary and secondary. */
- if (ipcp_allowoptions[0].dnsaddr[1] == 0)
- ipcp_allowoptions[0].dnsaddr[0] = dns;
- else
- ipcp_allowoptions[0].dnsaddr[0] = ipcp_allowoptions[0].dnsaddr[1];
-
- /* always set the secondary address value. */
- ipcp_allowoptions[0].dnsaddr[1] = dns;
-
- return (1);
-}
-
-/*
- * setwinsaddr - set the wins address(es)
- * This is primrarly used with the Samba package under UNIX or for pointing
- * the caller to the existing WINS server on a Windows NT platform.
- */
-static int
-setwinsaddr(argv)
- char **argv;
-{
- u_int32_t wins;
- struct hostent *hp;
-
- wins = inet_addr(*argv);
- if (wins == (u_int32_t) -1) {
- if ((hp = gethostbyname(*argv)) == NULL) {
- option_error("invalid address parameter '%s' for ms-wins option",
- *argv);
- return 0;
- }
- wins = *(u_int32_t *)hp->h_addr;
- }
-
- /* We take the last 2 values given, the 2nd-last as the primary
- and the last as the secondary. If only one is given it
- becomes both primary and secondary. */
- if (ipcp_allowoptions[0].winsaddr[1] == 0)
- ipcp_allowoptions[0].winsaddr[0] = wins;
- else
- ipcp_allowoptions[0].winsaddr[0] = ipcp_allowoptions[0].winsaddr[1];
-
- /* always set the secondary address value. */
- ipcp_allowoptions[0].winsaddr[1] = wins;
-
- return (1);
-}
-
-/*
- * setipaddr - Set the IP address
- * If doit is 0, the call is to check whether this option is
- * potentially an IP address specification.
- */
-static int
-setipaddr(arg, argv, doit)
- char *arg;
- char **argv;
- int doit;
-{
- struct hostent *hp;
- char *colon;
- u_int32_t local, remote;
- ipcp_options *wo = &ipcp_wantoptions[0];
- static int prio_local = 0, prio_remote = 0;
-
- /*
- * IP address pair separated by ":".
- */
- if ((colon = strchr(arg, ':')) == NULL)
- return 0;
- if (!doit)
- return 1;
-
- /*
- * If colon first character, then no local addr.
- */
- if (colon != arg && option_priority >= prio_local) {
- *colon = '\0';
- if ((local = inet_addr(arg)) == (u_int32_t) -1) {
- if ((hp = gethostbyname(arg)) == NULL) {
- option_error("unknown host: %s", arg);
- return 0;
- }
- local = *(u_int32_t *)hp->h_addr;
- }
- if (bad_ip_adrs(local)) {
- option_error("bad local IP address %s", ip_ntoa(local));
- return 0;
- }
- if (local != 0)
- wo->ouraddr = local;
- *colon = ':';
- prio_local = option_priority;
- }
-
- /*
- * If colon last character, then no remote addr.
- */
- if (*++colon != '\0' && option_priority >= prio_remote) {
- if ((remote = inet_addr(colon)) == (u_int32_t) -1) {
- if ((hp = gethostbyname(colon)) == NULL) {
- option_error("unknown host: %s", colon);
- return 0;
- }
- remote = *(u_int32_t *)hp->h_addr;
- if (remote_name[0] == 0)
- strlcpy(remote_name, colon, sizeof(remote_name));
- }
- if (bad_ip_adrs(remote)) {
- option_error("bad remote IP address %s", ip_ntoa(remote));
- return 0;
- }
- if (remote != 0)
- wo->hisaddr = remote;
- prio_remote = option_priority;
- }
-
- return 1;
-}
-
-static void
-printipaddr(opt, printer, arg)
- option_t *opt;
- void (*printer) __P((void *, char *, ...));
- void *arg;
-{
- ipcp_options *wo = &ipcp_wantoptions[0];
-
- if (wo->ouraddr != 0)
- printer(arg, "%I", wo->ouraddr);
- printer(arg, ":");
- if (wo->hisaddr != 0)
- printer(arg, "%I", wo->hisaddr);
-}
-
-/*
- * setnetmask - set the netmask to be used on the interface.
- */
-static int
-setnetmask(argv)
- char **argv;
-{
- u_int32_t mask;
- int n;
- char *p;
-
- /*
- * Unfortunately, if we use inet_addr, we can't tell whether
- * a result of all 1s is an error or a valid 255.255.255.255.
- */
- p = *argv;
- n = parse_dotted_ip(p, &mask);
-
- mask = htonl(mask);
-
- if (n == 0 || p[n] != 0 || (netmask & ~mask) != 0) {
- option_error("invalid netmask value '%s'", *argv);
- return 0;
- }
-
- netmask = mask;
- slprintf(netmask_str, sizeof(netmask_str), "%I", mask);
-
- return (1);
-}
-
-int
-parse_dotted_ip(p, vp)
- char *p;
- u_int32_t *vp;
-{
- int n;
- u_int32_t v, b;
- char *endp, *p0 = p;
-
- v = 0;
- for (n = 3;; --n) {
- b = strtoul(p, &endp, 0);
- if (endp == p)
- return 0;
- if (b > 255) {
- if (n < 3)
- return 0;
- /* accept e.g. 0xffffff00 */
- *vp = b;
- return endp - p0;
- }
- v |= b << (n * 8);
- p = endp;
- if (n == 0)
- break;
- if (*p != '.')
- return 0;
- ++p;
- }
- *vp = v;
- return p - p0;
-}
-
-
-/*
- * ipcp_init - Initialize IPCP.
- */
-static void
-ipcp_init(unit)
- int unit;
-{
- fsm *f = &ipcp_fsm[unit];
- ipcp_options *wo = &ipcp_wantoptions[unit];
- ipcp_options *ao = &ipcp_allowoptions[unit];
-
- f->unit = unit;
- f->protocol = PPP_IPCP;
- f->callbacks = &ipcp_callbacks;
- fsm_init(&ipcp_fsm[unit]);
-
- memset(wo, 0, sizeof(*wo));
- memset(ao, 0, sizeof(*ao));
-
- wo->neg_addr = 1;
- wo->neg_vj = 1;
- wo->vj_protocol = IPCP_VJ_COMP;
- wo->maxslotindex = MAX_STATES - 1; /* really max index */
- wo->cflag = 1;
-
-
- /* max slots and slot-id compression are currently hardwired in */
- /* ppp_if.c to 16 and 1, this needs to be changed (among other */
- /* things) gmc */
-
- ao->neg_addr = 1;
- ao->neg_vj = 1;
- ao->maxslotindex = MAX_STATES - 1;
- ao->cflag = 1;
-
- /*
- * XXX These control whether the user may use the proxyarp
- * and defaultroute options.
- */
- ao->proxy_arp = 1;
- ao->default_route = 1;
-}
-
-
-/*
- * ipcp_open - IPCP is allowed to come up.
- */
-static void
-ipcp_open(unit)
- int unit;
-{
- fsm_open(&ipcp_fsm[unit]);
-}
-
-
-/*
- * ipcp_close - Take IPCP down.
- */
-static void
-ipcp_close(unit, reason)
- int unit;
- char *reason;
-{
- fsm_close(&ipcp_fsm[unit], reason);
-}
-
-
-/*
- * ipcp_lowerup - The lower layer is up.
- */
-static void
-ipcp_lowerup(unit)
- int unit;
-{
- fsm_lowerup(&ipcp_fsm[unit]);
-}
-
-
-/*
- * ipcp_lowerdown - The lower layer is down.
- */
-static void
-ipcp_lowerdown(unit)
- int unit;
-{
- fsm_lowerdown(&ipcp_fsm[unit]);
-}
-
-
-/*
- * ipcp_input - Input IPCP packet.
- */
-static void
-ipcp_input(unit, p, len)
- int unit;
- u_char *p;
- int len;
-{
- fsm_input(&ipcp_fsm[unit], p, len);
-}
-
-
-/*
- * ipcp_protrej - A Protocol-Reject was received for IPCP.
- *
- * Pretend the lower layer went down, so we shut up.
- */
-static void
-ipcp_protrej(unit)
- int unit;
-{
- fsm_lowerdown(&ipcp_fsm[unit]);
-}
-
-
-/*
- * ipcp_resetci - Reset our CI.
- * Called by fsm_sconfreq, Send Configure Request.
- */
-static void
-ipcp_resetci(f)
- fsm *f;
-{
- ipcp_options *wo = &ipcp_wantoptions[f->unit];
- ipcp_options *go = &ipcp_gotoptions[f->unit];
-
- wo->req_addr = wo->neg_addr && ipcp_allowoptions[f->unit].neg_addr;
- if (wo->ouraddr == 0)
- wo->accept_local = 1;
- if (wo->hisaddr == 0)
- wo->accept_remote = 1;
- wo->req_dns1 = usepeerdns; /* Request DNS addresses from the peer */
- wo->req_dns2 = usepeerdns;
- *go = *wo;
- if (!ask_for_local)
- go->ouraddr = 0;
- if (ip_choose_hook)
- ip_choose_hook(&wo->hisaddr);
-}
-
-
-/*
- * ipcp_cilen - Return length of our CI.
- * Called by fsm_sconfreq, Send Configure Request.
- */
-static int
-ipcp_cilen(f)
- fsm *f;
-{
- ipcp_options *go = &ipcp_gotoptions[f->unit];
- ipcp_options *wo = &ipcp_wantoptions[f->unit];
- ipcp_options *ho = &ipcp_hisoptions[f->unit];
-
-#define LENCIVJ(neg, old) (neg ? (old? CILEN_COMPRESS : CILEN_VJ) : 0)
-#define LENCIADDR(neg, old) (neg ? (old? CILEN_ADDRS : CILEN_ADDR) : 0)
-#define LENCIDNS(neg) (neg ? (CILEN_ADDR) : 0)
-
- /*
- * First see if we want to change our options to the old
- * forms because we have received old forms from the peer.
- */
- if (wo->neg_addr && !go->neg_addr && !go->old_addrs) {
- /* use the old style of address negotiation */
- go->neg_addr = 1;
- go->old_addrs = 1;
- }
- if (wo->neg_vj && !go->neg_vj && !go->old_vj) {
- /* try an older style of VJ negotiation */
- /* use the old style only if the peer did */
- if (ho->neg_vj && ho->old_vj) {
- go->neg_vj = 1;
- go->old_vj = 1;
- go->vj_protocol = ho->vj_protocol;
- }
- }
-
- return (LENCIADDR(go->neg_addr, go->old_addrs) +
- LENCIVJ(go->neg_vj, go->old_vj) +
- LENCIDNS(go->req_dns1) +
- LENCIDNS(go->req_dns2)) ;
-}
-
-
-/*
- * ipcp_addci - Add our desired CIs to a packet.
- * Called by fsm_sconfreq, Send Configure Request.
- */
-static void
-ipcp_addci(f, ucp, lenp)
- fsm *f;
- u_char *ucp;
- int *lenp;
-{
- ipcp_options *go = &ipcp_gotoptions[f->unit];
- int len = *lenp;
-
-#define ADDCIVJ(opt, neg, val, old, maxslotindex, cflag) \
- if (neg) { \
- int vjlen = old? CILEN_COMPRESS : CILEN_VJ; \
- if (len >= vjlen) { \
- PUTCHAR(opt, ucp); \
- PUTCHAR(vjlen, ucp); \
- PUTSHORT(val, ucp); \
- if (!old) { \
- PUTCHAR(maxslotindex, ucp); \
- PUTCHAR(cflag, ucp); \
- } \
- len -= vjlen; \
- } else \
- neg = 0; \
- }
-
-#define ADDCIADDR(opt, neg, old, val1, val2) \
- if (neg) { \
- int addrlen = (old? CILEN_ADDRS: CILEN_ADDR); \
- if (len >= addrlen) { \
- u_int32_t l; \
- PUTCHAR(opt, ucp); \
- PUTCHAR(addrlen, ucp); \
- l = ntohl(val1); \
- PUTLONG(l, ucp); \
- if (old) { \
- l = ntohl(val2); \
- PUTLONG(l, ucp); \
- } \
- len -= addrlen; \
- } else \
- neg = 0; \
- }
-
-#define ADDCIDNS(opt, neg, addr) \
- if (neg) { \
- if (len >= CILEN_ADDR) { \
- u_int32_t l; \
- PUTCHAR(opt, ucp); \
- PUTCHAR(CILEN_ADDR, ucp); \
- l = ntohl(addr); \
- PUTLONG(l, ucp); \
- len -= CILEN_ADDR; \
- } else \
- neg = 0; \
- }
-
- ADDCIADDR((go->old_addrs? CI_ADDRS: CI_ADDR), go->neg_addr,
- go->old_addrs, go->ouraddr, go->hisaddr);
-
- ADDCIVJ(CI_COMPRESSTYPE, go->neg_vj, go->vj_protocol, go->old_vj,
- go->maxslotindex, go->cflag);
-
- ADDCIDNS(CI_MS_DNS1, go->req_dns1, go->dnsaddr[0]);
-
- ADDCIDNS(CI_MS_DNS2, go->req_dns2, go->dnsaddr[1]);
-
- *lenp -= len;
-}
-
-
-/*
- * ipcp_ackci - Ack our CIs.
- * Called by fsm_rconfack, Receive Configure ACK.
- *
- * Returns:
- * 0 - Ack was bad.
- * 1 - Ack was good.
- */
-static int
-ipcp_ackci(f, p, len)
- fsm *f;
- u_char *p;
- int len;
-{
- ipcp_options *go = &ipcp_gotoptions[f->unit];
- u_short cilen, citype, cishort;
- u_int32_t cilong;
- u_char cimaxslotindex, cicflag;
-
- /*
- * CIs must be in exactly the same order that we sent...
- * Check packet length and CI length at each step.
- * If we find any deviations, then this packet is bad.
- */
-
-#define ACKCIVJ(opt, neg, val, old, maxslotindex, cflag) \
- if (neg) { \
- int vjlen = old? CILEN_COMPRESS : CILEN_VJ; \
- if ((len -= vjlen) < 0) \
- goto bad; \
- GETCHAR(citype, p); \
- GETCHAR(cilen, p); \
- if (cilen != vjlen || \
- citype != opt) \
- goto bad; \
- GETSHORT(cishort, p); \
- if (cishort != val) \
- goto bad; \
- if (!old) { \
- GETCHAR(cimaxslotindex, p); \
- if (cimaxslotindex != maxslotindex) \
- goto bad; \
- GETCHAR(cicflag, p); \
- if (cicflag != cflag) \
- goto bad; \
- } \
- }
-
-#define ACKCIADDR(opt, neg, old, val1, val2) \
- if (neg) { \
- int addrlen = (old? CILEN_ADDRS: CILEN_ADDR); \
- u_int32_t l; \
- if ((len -= addrlen) < 0) \
- goto bad; \
- GETCHAR(citype, p); \
- GETCHAR(cilen, p); \
- if (cilen != addrlen || \
- citype != opt) \
- goto bad; \
- GETLONG(l, p); \
- cilong = htonl(l); \
- if (val1 != cilong) \
- goto bad; \
- if (old) { \
- GETLONG(l, p); \
- cilong = htonl(l); \
- if (val2 != cilong) \
- goto bad; \
- } \
- }
-
-#define ACKCIDNS(opt, neg, addr) \
- if (neg) { \
- u_int32_t l; \
- if ((len -= CILEN_ADDR) < 0) \
- goto bad; \
- GETCHAR(citype, p); \
- GETCHAR(cilen, p); \
- if (cilen != CILEN_ADDR || citype != opt) \
- goto bad; \
- GETLONG(l, p); \
- cilong = htonl(l); \
- if (addr != cilong) \
- goto bad; \
- }
-
- ACKCIADDR((go->old_addrs? CI_ADDRS: CI_ADDR), go->neg_addr,
- go->old_addrs, go->ouraddr, go->hisaddr);
-
- ACKCIVJ(CI_COMPRESSTYPE, go->neg_vj, go->vj_protocol, go->old_vj,
- go->maxslotindex, go->cflag);
-
- ACKCIDNS(CI_MS_DNS1, go->req_dns1, go->dnsaddr[0]);
-
- ACKCIDNS(CI_MS_DNS2, go->req_dns2, go->dnsaddr[1]);
-
- /*
- * If there are any remaining CIs, then this packet is bad.
- */
- if (len != 0)
- goto bad;
- return (1);
-
-bad:
- IPCPDEBUG(("ipcp_ackci: received bad Ack!"));
- return (0);
-}
-
-/*
- * ipcp_nakci - Peer has sent a NAK for some of our CIs.
- * This should not modify any state if the Nak is bad
- * or if IPCP is in the OPENED state.
- * Calback from fsm_rconfnakrej - Receive Configure-Nak or Configure-Reject.
- *
- * Returns:
- * 0 - Nak was bad.
- * 1 - Nak was good.
- */
-static int
-ipcp_nakci(f, p, len)
- fsm *f;
- u_char *p;
- int len;
-{
- ipcp_options *go = &ipcp_gotoptions[f->unit];
- u_char cimaxslotindex, cicflag;
- u_char citype, cilen, *next;
- u_short cishort;
- u_int32_t ciaddr1, ciaddr2, l, cidnsaddr;
- ipcp_options no; /* options we've seen Naks for */
- ipcp_options try; /* options to request next time */
-
- BZERO(&no, sizeof(no));
- try = *go;
-
- /*
- * Any Nak'd CIs must be in exactly the same order that we sent.
- * Check packet length and CI length at each step.
- * If we find any deviations, then this packet is bad.
- */
-#define NAKCIADDR(opt, neg, old, code) \
- if (go->neg && \
- len >= (cilen = (old? CILEN_ADDRS: CILEN_ADDR)) && \
- p[1] == cilen && \
- p[0] == opt) { \
- len -= cilen; \
- INCPTR(2, p); \
- GETLONG(l, p); \
- ciaddr1 = htonl(l); \
- if (old) { \
- GETLONG(l, p); \
- ciaddr2 = htonl(l); \
- no.old_addrs = 1; \
- } else \
- ciaddr2 = 0; \
- no.neg = 1; \
- code \
- }
-
-#define NAKCIVJ(opt, neg, code) \
- if (go->neg && \
- ((cilen = p[1]) == CILEN_COMPRESS || cilen == CILEN_VJ) && \
- len >= cilen && \
- p[0] == opt) { \
- len -= cilen; \
- INCPTR(2, p); \
- GETSHORT(cishort, p); \
- no.neg = 1; \
- code \
- }
-
-#define NAKCIDNS(opt, neg, code) \
- if (go->neg && \
- ((cilen = p[1]) == CILEN_ADDR) && \
- len >= cilen && \
- p[0] == opt) { \
- len -= cilen; \
- INCPTR(2, p); \
- GETLONG(l, p); \
- cidnsaddr = htonl(l); \
- no.neg = 1; \
- code \
- }
-
- /*
- * Accept the peer's idea of {our,his} address, if different
- * from our idea, only if the accept_{local,remote} flag is set.
- */
- NAKCIADDR((go->old_addrs? CI_ADDRS: CI_ADDR), neg_addr, go->old_addrs,
- if (go->accept_local && ciaddr1) { /* Do we know our address? */
- try.ouraddr = ciaddr1;
- }
- if (go->accept_remote && ciaddr2) { /* Does he know his? */
- try.hisaddr = ciaddr2;
- }
- );
-
- /*
- * Accept the peer's value of maxslotindex provided that it
- * is less than what we asked for. Turn off slot-ID compression
- * if the peer wants. Send old-style compress-type option if
- * the peer wants.
- */
- NAKCIVJ(CI_COMPRESSTYPE, neg_vj,
- if (cilen == CILEN_VJ) {
- GETCHAR(cimaxslotindex, p);
- GETCHAR(cicflag, p);
- if (cishort == IPCP_VJ_COMP) {
- try.old_vj = 0;
- if (cimaxslotindex < go->maxslotindex)
- try.maxslotindex = cimaxslotindex;
- if (!cicflag)
- try.cflag = 0;
- } else {
- try.neg_vj = 0;
- }
- } else {
- if (cishort == IPCP_VJ_COMP || cishort == IPCP_VJ_COMP_OLD) {
- try.old_vj = 1;
- try.vj_protocol = cishort;
- } else {
- try.neg_vj = 0;
- }
- }
- );
-
- NAKCIDNS(CI_MS_DNS1, req_dns1,
- try.dnsaddr[0] = cidnsaddr;
- );
-
- NAKCIDNS(CI_MS_DNS2, req_dns2,
- try.dnsaddr[1] = cidnsaddr;
- );
-
- /*
- * There may be remaining CIs, if the peer is requesting negotiation
- * on an option that we didn't include in our request packet.
- * If they want to negotiate about IP addresses, we comply.
- * If they want us to ask for compression, we refuse.
- */
- while (len > CILEN_VOID) {
- GETCHAR(citype, p);
- GETCHAR(cilen, p);
- if( (len -= cilen) < 0 )
- goto bad;
- next = p + cilen - 2;
-
- switch (citype) {
- case CI_COMPRESSTYPE:
- if (go->neg_vj || no.neg_vj ||
- (cilen != CILEN_VJ && cilen != CILEN_COMPRESS))
- goto bad;
- no.neg_vj = 1;
- break;
- case CI_ADDRS:
- if ((go->neg_addr && go->old_addrs) || no.old_addrs
- || cilen != CILEN_ADDRS)
- goto bad;
- try.neg_addr = 1;
- try.old_addrs = 1;
- GETLONG(l, p);
- ciaddr1 = htonl(l);
- if (ciaddr1 && go->accept_local)
- try.ouraddr = ciaddr1;
- GETLONG(l, p);
- ciaddr2 = htonl(l);
- if (ciaddr2 && go->accept_remote)
- try.hisaddr = ciaddr2;
- no.old_addrs = 1;
- break;
- case CI_ADDR:
- if (go->neg_addr || no.neg_addr || cilen != CILEN_ADDR)
- goto bad;
- try.old_addrs = 0;
- GETLONG(l, p);
- ciaddr1 = htonl(l);
- if (ciaddr1 && go->accept_local)
- try.ouraddr = ciaddr1;
- if (try.ouraddr != 0)
- try.neg_addr = 1;
- no.neg_addr = 1;
- break;
- }
- p = next;
- }
-
- /*
- * OK, the Nak is good. Now we can update state.
- * If there are any remaining options, we ignore them.
- */
- if (f->state != OPENED)
- *go = try;
-
- return 1;
-
-bad:
- IPCPDEBUG(("ipcp_nakci: received bad Nak!"));
- return 0;
-}
-
-
-/*
- * ipcp_rejci - Reject some of our CIs.
- * Callback from fsm_rconfnakrej.
- */
-static int
-ipcp_rejci(f, p, len)
- fsm *f;
- u_char *p;
- int len;
-{
- ipcp_options *go = &ipcp_gotoptions[f->unit];
- u_char cimaxslotindex, ciflag, cilen;
- u_short cishort;
- u_int32_t cilong;
- ipcp_options try; /* options to request next time */
-
- try = *go;
- /*
- * Any Rejected CIs must be in exactly the same order that we sent.
- * Check packet length and CI length at each step.
- * If we find any deviations, then this packet is bad.
- */
-#define REJCIADDR(opt, neg, old, val1, val2) \
- if (go->neg && \
- len >= (cilen = old? CILEN_ADDRS: CILEN_ADDR) && \
- p[1] == cilen && \
- p[0] == opt) { \
- u_int32_t l; \
- len -= cilen; \
- INCPTR(2, p); \
- GETLONG(l, p); \
- cilong = htonl(l); \
- /* Check rejected value. */ \
- if (cilong != val1) \
- goto bad; \
- if (old) { \
- GETLONG(l, p); \
- cilong = htonl(l); \
- /* Check rejected value. */ \
- if (cilong != val2) \
- goto bad; \
- } \
- try.neg = 0; \
- }
-
-#define REJCIVJ(opt, neg, val, old, maxslot, cflag) \
- if (go->neg && \
- p[1] == (old? CILEN_COMPRESS : CILEN_VJ) && \
- len >= p[1] && \
- p[0] == opt) { \
- len -= p[1]; \
- INCPTR(2, p); \
- GETSHORT(cishort, p); \
- /* Check rejected value. */ \
- if (cishort != val) \
- goto bad; \
- if (!old) { \
- GETCHAR(cimaxslotindex, p); \
- if (cimaxslotindex != maxslot) \
- goto bad; \
- GETCHAR(ciflag, p); \
- if (ciflag != cflag) \
- goto bad; \
- } \
- try.neg = 0; \
- }
-
-#define REJCIDNS(opt, neg, dnsaddr) \
- if (go->neg && \
- ((cilen = p[1]) == CILEN_ADDR) && \
- len >= cilen && \
- p[0] == opt) { \
- u_int32_t l; \
- len -= cilen; \
- INCPTR(2, p); \
- GETLONG(l, p); \
- cilong = htonl(l); \
- /* Check rejected value. */ \
- if (cilong != dnsaddr) \
- goto bad; \
- try.neg = 0; \
- }
-
-
- REJCIADDR((go->old_addrs? CI_ADDRS: CI_ADDR), neg_addr,
- go->old_addrs, go->ouraddr, go->hisaddr);
-
- REJCIVJ(CI_COMPRESSTYPE, neg_vj, go->vj_protocol, go->old_vj,
- go->maxslotindex, go->cflag);
-
- REJCIDNS(CI_MS_DNS1, req_dns1, go->dnsaddr[0]);
-
- REJCIDNS(CI_MS_DNS2, req_dns2, go->dnsaddr[1]);
-
- /*
- * If there are any remaining CIs, then this packet is bad.
- */
- if (len != 0)
- goto bad;
- /*
- * Now we can update state.
- */
- if (f->state != OPENED)
- *go = try;
- return 1;
-
-bad:
- IPCPDEBUG(("ipcp_rejci: received bad Reject!"));
- return 0;
-}
-
-
-/*
- * ipcp_reqci - Check the peer's requested CIs and send appropriate response.
- * Callback from fsm_rconfreq, Receive Configure Request
- *
- * Returns: CONFACK, CONFNAK or CONFREJ and input packet modified
- * appropriately. If reject_if_disagree is non-zero, doesn't return
- * CONFNAK; returns CONFREJ if it can't return CONFACK.
- */
-static int
-ipcp_reqci(f, inp, len, reject_if_disagree)
- fsm *f;
- u_char *inp; /* Requested CIs */
- int *len; /* Length of requested CIs */
- int reject_if_disagree;
-{
- ipcp_options *wo = &ipcp_wantoptions[f->unit];
- ipcp_options *ho = &ipcp_hisoptions[f->unit];
- ipcp_options *ao = &ipcp_allowoptions[f->unit];
- ipcp_options *go = &ipcp_gotoptions[f->unit];
- u_char *cip, *next; /* Pointer to current and next CIs */
- u_short cilen, citype; /* Parsed len, type */
- u_short cishort; /* Parsed short value */
- u_int32_t tl, ciaddr1, ciaddr2;/* Parsed address values */
- int rc = CONFACK; /* Final packet return code */
- int orc; /* Individual option return code */
- u_char *p; /* Pointer to next char to parse */
- u_char *ucp = inp; /* Pointer to current output char */
- int l = *len; /* Length left */
- u_char maxslotindex, cflag;
- int d;
-
- /*
- * Reset all his options.
- */
- BZERO(ho, sizeof(*ho));
-
- /*
- * Process all his options.
- */
- next = inp;
- while (l) {
- orc = CONFACK; /* Assume success */
- cip = p = next; /* Remember begining of CI */
- if (l < 2 || /* Not enough data for CI header or */
- p[1] < 2 || /* CI length too small or */
- p[1] > l) { /* CI length too big? */
- IPCPDEBUG(("ipcp_reqci: bad CI length!"));
- orc = CONFREJ; /* Reject bad CI */
- cilen = l; /* Reject till end of packet */
- l = 0; /* Don't loop again */
- goto endswitch;
- }
- GETCHAR(citype, p); /* Parse CI type */
- GETCHAR(cilen, p); /* Parse CI length */
- l -= cilen; /* Adjust remaining length */
- next += cilen; /* Step to next CI */
-
- switch (citype) { /* Check CI type */
- case CI_ADDRS:
- if (!ao->neg_addr ||
- cilen != CILEN_ADDRS) { /* Check CI length */
- orc = CONFREJ; /* Reject CI */
- break;
- }
-
- /*
- * If he has no address, or if we both have his address but
- * disagree about it, then NAK it with our idea.
- * In particular, if we don't know his address, but he does,
- * then accept it.
- */
- GETLONG(tl, p); /* Parse source address (his) */
- ciaddr1 = htonl(tl);
- if (ciaddr1 != wo->hisaddr
- && (ciaddr1 == 0 || !wo->accept_remote)) {
- orc = CONFNAK;
- if (!reject_if_disagree) {
- DECPTR(sizeof(u_int32_t), p);
- tl = ntohl(wo->hisaddr);
- PUTLONG(tl, p);
- }
- } else if (ciaddr1 == 0 && wo->hisaddr == 0) {
- /*
- * If neither we nor he knows his address, reject the option.
- */
- orc = CONFREJ;
- wo->req_addr = 0; /* don't NAK with 0.0.0.0 later */
- break;
- }
-
- /*
- * If he doesn't know our address, or if we both have our address
- * but disagree about it, then NAK it with our idea.
- */
- GETLONG(tl, p); /* Parse desination address (ours) */
- ciaddr2 = htonl(tl);
- if (ciaddr2 != wo->ouraddr) {
- if (ciaddr2 == 0 || !wo->accept_local) {
- orc = CONFNAK;
- if (!reject_if_disagree) {
- DECPTR(sizeof(u_int32_t), p);
- tl = ntohl(wo->ouraddr);
- PUTLONG(tl, p);
- }
- } else {
- go->ouraddr = ciaddr2; /* accept peer's idea */
- }
- }
-
- ho->neg_addr = 1;
- ho->old_addrs = 1;
- ho->hisaddr = ciaddr1;
- ho->ouraddr = ciaddr2;
- break;
-
- case CI_ADDR:
- if (!ao->neg_addr ||
- cilen != CILEN_ADDR) { /* Check CI length */
- orc = CONFREJ; /* Reject CI */
- break;
- }
-
- /*
- * If he has no address, or if we both have his address but
- * disagree about it, then NAK it with our idea.
- * In particular, if we don't know his address, but he does,
- * then accept it.
- */
- GETLONG(tl, p); /* Parse source address (his) */
- ciaddr1 = htonl(tl);
- if (ciaddr1 != wo->hisaddr
- && (ciaddr1 == 0 || !wo->accept_remote)) {
- orc = CONFNAK;
- if (!reject_if_disagree) {
- DECPTR(sizeof(u_int32_t), p);
- tl = ntohl(wo->hisaddr);
- PUTLONG(tl, p);
- }
- } else if (ciaddr1 == 0 && wo->hisaddr == 0) {
- /*
- * Don't ACK an address of 0.0.0.0 - reject it instead.
- */
- orc = CONFREJ;
- wo->req_addr = 0; /* don't NAK with 0.0.0.0 later */
- break;
- }
-
- ho->neg_addr = 1;
- ho->hisaddr = ciaddr1;
- break;
-
- case CI_MS_DNS1:
- case CI_MS_DNS2:
- /* Microsoft primary or secondary DNS request */
- d = citype == CI_MS_DNS2;
-
- /* If we do not have a DNS address then we cannot send it */
- if (ao->dnsaddr[d] == 0 ||
- cilen != CILEN_ADDR) { /* Check CI length */
- orc = CONFREJ; /* Reject CI */
- break;
- }
- GETLONG(tl, p);
- if (htonl(tl) != ao->dnsaddr[d]) {
- DECPTR(sizeof(u_int32_t), p);
- tl = ntohl(ao->dnsaddr[d]);
- PUTLONG(tl, p);
- orc = CONFNAK;
- }
- break;
-
- case CI_MS_WINS1:
- case CI_MS_WINS2:
- /* Microsoft primary or secondary WINS request */
- d = citype == CI_MS_WINS2;
-
- /* If we do not have a DNS address then we cannot send it */
- if (ao->winsaddr[d] == 0 ||
- cilen != CILEN_ADDR) { /* Check CI length */
- orc = CONFREJ; /* Reject CI */
- break;
- }
- GETLONG(tl, p);
- if (htonl(tl) != ao->winsaddr[d]) {
- DECPTR(sizeof(u_int32_t), p);
- tl = ntohl(ao->winsaddr[d]);
- PUTLONG(tl, p);
- orc = CONFNAK;
- }
- break;
-
- case CI_COMPRESSTYPE:
- if (!ao->neg_vj ||
- (cilen != CILEN_VJ && cilen != CILEN_COMPRESS)) {
- orc = CONFREJ;
- break;
- }
- GETSHORT(cishort, p);
-
- if (!(cishort == IPCP_VJ_COMP ||
- (cishort == IPCP_VJ_COMP_OLD && cilen == CILEN_COMPRESS))) {
- orc = CONFREJ;
- break;
- }
-
- ho->neg_vj = 1;
- ho->vj_protocol = cishort;
- if (cilen == CILEN_VJ) {
- GETCHAR(maxslotindex, p);
- if (maxslotindex > ao->maxslotindex) {
- orc = CONFNAK;
- if (!reject_if_disagree){
- DECPTR(1, p);
- PUTCHAR(ao->maxslotindex, p);
- }
- }
- GETCHAR(cflag, p);
- if (cflag && !ao->cflag) {
- orc = CONFNAK;
- if (!reject_if_disagree){
- DECPTR(1, p);
- PUTCHAR(wo->cflag, p);
- }
- }
- ho->maxslotindex = maxslotindex;
- ho->cflag = cflag;
- } else {
- ho->old_vj = 1;
- ho->maxslotindex = MAX_STATES - 1;
- ho->cflag = 1;
- }
- break;
-
- default:
- orc = CONFREJ;
- break;
- }
-endswitch:
- if (orc == CONFACK && /* Good CI */
- rc != CONFACK) /* but prior CI wasnt? */
- continue; /* Don't send this one */
-
- if (orc == CONFNAK) { /* Nak this CI? */
- if (reject_if_disagree) /* Getting fed up with sending NAKs? */
- orc = CONFREJ; /* Get tough if so */
- else {
- if (rc == CONFREJ) /* Rejecting prior CI? */
- continue; /* Don't send this one */
- if (rc == CONFACK) { /* Ack'd all prior CIs? */
- rc = CONFNAK; /* Not anymore... */
- ucp = inp; /* Backup */
- }
- }
- }
-
- if (orc == CONFREJ && /* Reject this CI */
- rc != CONFREJ) { /* but no prior ones? */
- rc = CONFREJ;
- ucp = inp; /* Backup */
- }
-
- /* Need to move CI? */
- if (ucp != cip)
- BCOPY(cip, ucp, cilen); /* Move it */
-
- /* Update output pointer */
- INCPTR(cilen, ucp);
- }
-
- /*
- * If we aren't rejecting this packet, and we want to negotiate
- * their address, and they didn't send their address, then we
- * send a NAK with a CI_ADDR option appended. We assume the
- * input buffer is long enough that we can append the extra
- * option safely.
- */
- if (rc != CONFREJ && !ho->neg_addr &&
- wo->req_addr && !reject_if_disagree) {
- if (rc == CONFACK) {
- rc = CONFNAK;
- ucp = inp; /* reset pointer */
- wo->req_addr = 0; /* don't ask again */
- }
- PUTCHAR(CI_ADDR, ucp);
- PUTCHAR(CILEN_ADDR, ucp);
- tl = ntohl(wo->hisaddr);
- PUTLONG(tl, ucp);
- }
-
- *len = ucp - inp; /* Compute output length */
- IPCPDEBUG(("ipcp: returning Configure-%s", CODENAME(rc)));
- return (rc); /* Return final code */
-}
-
-
-/*
- * ip_check_options - check that any IP-related options are OK,
- * and assign appropriate defaults.
- */
-static void
-ip_check_options()
-{
- struct hostent *hp;
- u_int32_t local;
- ipcp_options *wo = &ipcp_wantoptions[0];
-
- /*
- * Default our local IP address based on our hostname.
- * If local IP address already given, don't bother.
- */
- if (wo->ouraddr == 0 && !disable_defaultip) {
- /*
- * Look up our hostname (possibly with domain name appended)
- * and take the first IP address as our local IP address.
- * If there isn't an IP address for our hostname, too bad.
- */
- wo->accept_local = 1; /* don't insist on this default value */
- if ((hp = gethostbyname(hostname)) != NULL) {
- local = *(u_int32_t *)hp->h_addr;
- if (local != 0 && !bad_ip_adrs(local))
- wo->ouraddr = local;
- }
- }
- ask_for_local = wo->ouraddr != 0 || !disable_defaultip;
-}
-
-
-/*
- * ip_demand_conf - configure the interface as though
- * IPCP were up, for use with dial-on-demand.
- */
-static int
-ip_demand_conf(u)
- int u;
-{
- ipcp_options *wo = &ipcp_wantoptions[u];
-
- if (wo->hisaddr == 0) {
- /* make up an arbitrary address for the peer */
- wo->hisaddr = htonl(0x0a707070 + ifunit);
- wo->accept_remote = 1;
- }
- if (wo->ouraddr == 0) {
- /* make up an arbitrary address for us */
- wo->ouraddr = htonl(0x0a404040 + ifunit);
- wo->accept_local = 1;
- ask_for_local = 0; /* don't tell the peer this address */
- }
- if (!sifaddr(u, wo->ouraddr, wo->hisaddr, GetMask(wo->ouraddr)))
- return 0;
- if (!sifup(u))
- return 0;
- if (!sifnpmode(u, PPP_IP, NPMODE_QUEUE))
- return 0;
- if (wo->default_route)
- if (sifdefaultroute(u, wo->ouraddr, wo->hisaddr))
- default_route_set[u] = 1;
- if (wo->proxy_arp)
- if (sifproxyarp(u, wo->hisaddr))
- proxy_arp_set[u] = 1;
-
- notice("local IP address %I", wo->ouraddr);
- notice("remote IP address %I", wo->hisaddr);
-
- return 1;
-}
-
-
-/*
- * ipcp_up - IPCP has come UP.
- *
- * Configure the IP network interface appropriately and bring it up.
- */
-static void
-ipcp_up(f)
- fsm *f;
-{
- u_int32_t mask;
- ipcp_options *ho = &ipcp_hisoptions[f->unit];
- ipcp_options *go = &ipcp_gotoptions[f->unit];
- ipcp_options *wo = &ipcp_wantoptions[f->unit];
-
- IPCPDEBUG(("ipcp: up"));
-
- /*
- * We must have a non-zero IP address for both ends of the link.
- */
- if (!ho->neg_addr)
- ho->hisaddr = wo->hisaddr;
-
- if (go->ouraddr == 0) {
- error("Could not determine local IP address");
- ipcp_close(f->unit, "Could not determine local IP address");
- return;
- }
- if (ho->hisaddr == 0) {
- ho->hisaddr = htonl(0x0a404040 + ifunit);
- warn("Could not determine remote IP address: defaulting to %I",
- ho->hisaddr);
- }
- script_setenv("IPLOCAL", ip_ntoa(go->ouraddr), 0);
- script_setenv("IPREMOTE", ip_ntoa(ho->hisaddr), 1);
-
- if (usepeerdns && (go->dnsaddr[0] || go->dnsaddr[1])) {
- script_setenv("USEPEERDNS", "1", 0);
- if (go->dnsaddr[0])
- script_setenv("DNS1", ip_ntoa(go->dnsaddr[0]), 0);
- if (go->dnsaddr[1])
- script_setenv("DNS2", ip_ntoa(go->dnsaddr[1]), 0);
- create_resolv(go->dnsaddr[0], go->dnsaddr[1]);
- }
-
- /*
- * Check that the peer is allowed to use the IP address it wants.
- */
- if (!auth_ip_addr(f->unit, ho->hisaddr)) {
- error("Peer is not authorized to use remote address %I", ho->hisaddr);
- ipcp_close(f->unit, "Unauthorized remote IP address");
- return;
- }
-
- /* set tcp compression */
- sifvjcomp(f->unit, ho->neg_vj, ho->cflag, ho->maxslotindex);
-
- /*
- * If we are doing dial-on-demand, the interface is already
- * configured, so we put out any saved-up packets, then set the
- * interface to pass IP packets.
- */
- if (demand) {
- if (go->ouraddr != wo->ouraddr || ho->hisaddr != wo->hisaddr) {
- ipcp_clear_addrs(f->unit, wo->ouraddr, wo->hisaddr);
- if (go->ouraddr != wo->ouraddr) {
- warn("Local IP address changed to %I", go->ouraddr);
- script_setenv("OLDIPLOCAL", ip_ntoa(wo->ouraddr), 0);
- wo->ouraddr = go->ouraddr;
- } else
- script_unsetenv("OLDIPLOCAL");
- if (ho->hisaddr != wo->hisaddr) {
- warn("Remote IP address changed to %I", ho->hisaddr);
- script_setenv("OLDIPREMOTE", ip_ntoa(wo->hisaddr), 0);
- wo->hisaddr = ho->hisaddr;
- } else
- script_unsetenv("OLDIPREMOTE");
-
- /* Set the interface to the new addresses */
- mask = GetMask(go->ouraddr);
- if (!sifaddr(f->unit, go->ouraddr, ho->hisaddr, mask)) {
- if (debug)
- warn("Interface configuration failed");
- ipcp_close(f->unit, "Interface configuration failed");
- return;
- }
-
- /* assign a default route through the interface if required */
- if (ipcp_wantoptions[f->unit].default_route)
- if (sifdefaultroute(f->unit, go->ouraddr, ho->hisaddr))
- default_route_set[f->unit] = 1;
-
- /* Make a proxy ARP entry if requested. */
- if (ipcp_wantoptions[f->unit].proxy_arp)
- if (sifproxyarp(f->unit, ho->hisaddr))
- proxy_arp_set[f->unit] = 1;
-
- }
- demand_rexmit(PPP_IP);
- sifnpmode(f->unit, PPP_IP, NPMODE_PASS);
-
- } else {
- /*
- * Set IP addresses and (if specified) netmask.
- */
- mask = GetMask(go->ouraddr);
-
-#if !(defined(SVR4) && (defined(SNI) || defined(__USLC__)))
- if (!sifaddr(f->unit, go->ouraddr, ho->hisaddr, mask)) {
- if (debug)
- warn("Interface configuration failed");
- ipcp_close(f->unit, "Interface configuration failed");
- return;
- }
-#endif
-
- /* bring the interface up for IP */
- if (!sifup(f->unit)) {
- if (debug)
- warn("Interface failed to come up");
- ipcp_close(f->unit, "Interface configuration failed");
- return;
- }
-
-#if (defined(SVR4) && (defined(SNI) || defined(__USLC__)))
- if (!sifaddr(f->unit, go->ouraddr, ho->hisaddr, mask)) {
- if (debug)
- warn("Interface configuration failed");
- ipcp_close(f->unit, "Interface configuration failed");
- return;
- }
-#endif
- sifnpmode(f->unit, PPP_IP, NPMODE_PASS);
-
- /* assign a default route through the interface if required */
- if (ipcp_wantoptions[f->unit].default_route)
- if (sifdefaultroute(f->unit, go->ouraddr, ho->hisaddr))
- default_route_set[f->unit] = 1;
-
- /* Make a proxy ARP entry if requested. */
- if (ipcp_wantoptions[f->unit].proxy_arp)
- if (sifproxyarp(f->unit, ho->hisaddr))
- proxy_arp_set[f->unit] = 1;
-
- ipcp_wantoptions[0].ouraddr = go->ouraddr;
-
- notice("local IP address %I", go->ouraddr);
- notice("remote IP address %I", ho->hisaddr);
- if (go->dnsaddr[0])
- notice("primary DNS address %I", go->dnsaddr[0]);
- if (go->dnsaddr[1])
- notice("secondary DNS address %I", go->dnsaddr[1]);
- }
-
- np_up(f->unit, PPP_IP);
- ipcp_is_up = 1;
-
- if (ip_up_hook)
- ip_up_hook();
-
- /*
- * Execute the ip-up script, like this:
- * /etc/ppp/ip-up interface tty speed local-IP remote-IP
- */
- if (ipcp_script_state == s_down && ipcp_script_pid == 0) {
- ipcp_script_state = s_up;
- ipcp_script(_PATH_IPUP);
- }
-}
-
-
-/*
- * ipcp_down - IPCP has gone DOWN.
- *
- * Take the IP network interface down, clear its addresses
- * and delete routes through it.
- */
-static void
-ipcp_down(f)
- fsm *f;
-{
- IPCPDEBUG(("ipcp: down"));
- /* XXX a bit IPv4-centric here, we only need to get the stats
- * before the interface is marked down. */
- update_link_stats(f->unit);
- if (ip_down_hook)
- ip_down_hook();
- if (ipcp_is_up) {
- ipcp_is_up = 0;
- np_down(f->unit, PPP_IP);
- }
- sifvjcomp(f->unit, 0, 0, 0);
-
- /*
- * If we are doing dial-on-demand, set the interface
- * to queue up outgoing packets (for now).
- */
- if (demand) {
- sifnpmode(f->unit, PPP_IP, NPMODE_QUEUE);
- } else {
- sifnpmode(f->unit, PPP_IP, NPMODE_DROP);
- sifdown(f->unit);
- ipcp_clear_addrs(f->unit, ipcp_gotoptions[f->unit].ouraddr,
- ipcp_hisoptions[f->unit].hisaddr);
- }
-
- /* Execute the ip-down script */
- if (ipcp_script_state == s_up && ipcp_script_pid == 0) {
- ipcp_script_state = s_down;
- ipcp_script(_PATH_IPDOWN);
- }
-}
-
-
-/*
- * ipcp_clear_addrs() - clear the interface addresses, routes,
- * proxy arp entries, etc.
- */
-static void
-ipcp_clear_addrs(unit, ouraddr, hisaddr)
- int unit;
- u_int32_t ouraddr; /* local address */
- u_int32_t hisaddr; /* remote address */
-{
- if (proxy_arp_set[unit]) {
- cifproxyarp(unit, hisaddr);
- proxy_arp_set[unit] = 0;
- }
- if (default_route_set[unit]) {
- cifdefaultroute(unit, ouraddr, hisaddr);
- default_route_set[unit] = 0;
- }
- cifaddr(unit, ouraddr, hisaddr);
-}
-
-
-/*
- * ipcp_finished - possibly shut down the lower layers.
- */
-static void
-ipcp_finished(f)
- fsm *f;
-{
- np_finished(f->unit, PPP_IP);
-}
-
-
-/*
- * ipcp_script_done - called when the ip-up or ip-down script
- * has finished.
- */
-static void
-ipcp_script_done(arg)
- void *arg;
-{
- ipcp_script_pid = 0;
- switch (ipcp_script_state) {
- case s_up:
- if (ipcp_fsm[0].state != OPENED) {
- ipcp_script_state = s_down;
- ipcp_script(_PATH_IPDOWN);
- }
- break;
- case s_down:
- if (ipcp_fsm[0].state == OPENED) {
- ipcp_script_state = s_up;
- ipcp_script(_PATH_IPUP);
- }
- break;
- }
-}
-
-
-/*
- * ipcp_script - Execute a script with arguments
- * interface-name tty-name speed local-IP remote-IP.
- */
-static void
-ipcp_script(script)
- char *script;
-{
- char strspeed[32], strlocal[32], strremote[32];
- char *argv[8];
-
- slprintf(strspeed, sizeof(strspeed), "%d", baud_rate);
- slprintf(strlocal, sizeof(strlocal), "%I", ipcp_gotoptions[0].ouraddr);
- slprintf(strremote, sizeof(strremote), "%I", ipcp_hisoptions[0].hisaddr);
-
- argv[0] = script;
- argv[1] = ifname;
- argv[2] = devnam;
- argv[3] = strspeed;
- argv[4] = strlocal;
- argv[5] = strremote;
- argv[6] = ipparam;
- argv[7] = NULL;
- ipcp_script_pid = run_program(script, argv, 0, ipcp_script_done, NULL);
-}
-
-/*
- * create_resolv - create the replacement resolv.conf file
- */
-static void
-create_resolv(peerdns1, peerdns2)
- u_int32_t peerdns1, peerdns2;
-{
- FILE *f;
-
- f = fopen(_PATH_RESOLV, "w");
- if (f == NULL) {
- error("Failed to create %s: %m", _PATH_RESOLV);
- return;
- }
-
- if (peerdns1)
- fprintf(f, "nameserver %s\n", ip_ntoa(peerdns1));
-
- if (peerdns2)
- fprintf(f, "nameserver %s\n", ip_ntoa(peerdns2));
-
- if (ferror(f))
- error("Write failed to %s: %m", _PATH_RESOLV);
-
- fclose(f);
-}
-
-/*
- * ipcp_printpkt - print the contents of an IPCP packet.
- */
-static char *ipcp_codenames[] = {
- "ConfReq", "ConfAck", "ConfNak", "ConfRej",
- "TermReq", "TermAck", "CodeRej"
-};
-
-static int
-ipcp_printpkt(p, plen, printer, arg)
- u_char *p;
- int plen;
- void (*printer) __P((void *, char *, ...));
- void *arg;
-{
- int code, id, len, olen;
- u_char *pstart, *optend;
- u_short cishort;
- u_int32_t cilong;
-
- if (plen < HEADERLEN)
- return 0;
- pstart = p;
- GETCHAR(code, p);
- GETCHAR(id, p);
- GETSHORT(len, p);
- if (len < HEADERLEN || len > plen)
- return 0;
-
- if (code >= 1 && code <= sizeof(ipcp_codenames) / sizeof(char *))
- printer(arg, " %s", ipcp_codenames[code-1]);
- else
- printer(arg, " code=0x%x", code);
- printer(arg, " id=0x%x", id);
- len -= HEADERLEN;
- switch (code) {
- case CONFREQ:
- case CONFACK:
- case CONFNAK:
- case CONFREJ:
- /* print option list */
- while (len >= 2) {
- GETCHAR(code, p);
- GETCHAR(olen, p);
- p -= 2;
- if (olen < 2 || olen > len) {
- break;
- }
- printer(arg, " <");
- len -= olen;
- optend = p + olen;
- switch (code) {
- case CI_ADDRS:
- if (olen == CILEN_ADDRS) {
- p += 2;
- GETLONG(cilong, p);
- printer(arg, "addrs %I", htonl(cilong));
- GETLONG(cilong, p);
- printer(arg, " %I", htonl(cilong));
- }
- break;
- case CI_COMPRESSTYPE:
- if (olen >= CILEN_COMPRESS) {
- p += 2;
- GETSHORT(cishort, p);
- printer(arg, "compress ");
- switch (cishort) {
- case IPCP_VJ_COMP:
- printer(arg, "VJ");
- break;
- case IPCP_VJ_COMP_OLD:
- printer(arg, "old-VJ");
- break;
- default:
- printer(arg, "0x%x", cishort);
- }
- }
- break;
- case CI_ADDR:
- if (olen == CILEN_ADDR) {
- p += 2;
- GETLONG(cilong, p);
- printer(arg, "addr %I", htonl(cilong));
- }
- break;
- case CI_MS_DNS1:
- case CI_MS_DNS2:
- p += 2;
- GETLONG(cilong, p);
- printer(arg, "ms-dns%d %I", code - CI_MS_DNS1 + 1,
- htonl(cilong));
- break;
- case CI_MS_WINS1:
- case CI_MS_WINS2:
- p += 2;
- GETLONG(cilong, p);
- printer(arg, "ms-wins %I", htonl(cilong));
- break;
- }
- while (p < optend) {
- GETCHAR(code, p);
- printer(arg, " %.2x", code);
- }
- printer(arg, ">");
- }
- break;
-
- case TERMACK:
- case TERMREQ:
- if (len > 0 && *p >= ' ' && *p < 0x7f) {
- printer(arg, " ");
- print_string((char *)p, len, printer, arg);
- p += len;
- len = 0;
- }
- break;
- }
-
- /* print the rest of the bytes in the packet */
- for (; len > 0; --len) {
- GETCHAR(code, p);
- printer(arg, " %.2x", code);
- }
-
- return p - pstart;
-}
-
-/*
- * ip_active_pkt - see if this IP packet is worth bringing the link up for.
- * We don't bring the link up for IP fragments or for TCP FIN packets
- * with no data.
- */
-#define IP_HDRLEN 20 /* bytes */
-#define IP_OFFMASK 0x1fff
-// #define IPPROTO_TCP 6
-#define TCP_HDRLEN 20
-#define TH_FIN 0x01
-
-/*
- * We use these macros because the IP header may be at an odd address,
- * and some compilers might use word loads to get th_off or ip_hl.
- */
-
-#define net_short(x) (((x)[0] << 8) + (x)[1])
-#define get_iphl(x) (((unsigned char *)(x))[0] & 0xF)
-#define get_ipoff(x) net_short((unsigned char *)(x) + 6)
-#define get_ipproto(x) (((unsigned char *)(x))[9])
-#define get_tcpoff(x) (((unsigned char *)(x))[12] >> 4)
-#define get_tcpflags(x) (((unsigned char *)(x))[13])
-
-static int
-ip_active_pkt(pkt, len)
- u_char *pkt;
- int len;
-{
- u_char *tcp;
- int hlen;
-
- len -= PPP_HDRLEN;
- pkt += PPP_HDRLEN;
- if (len < IP_HDRLEN)
- return 0;
- if ((get_ipoff(pkt) & IP_OFFMASK) != 0)
- return 0;
- if (get_ipproto(pkt) != IPPROTO_TCP)
- return 1;
- hlen = get_iphl(pkt) * 4;
- if (len < hlen + TCP_HDRLEN)
- return 0;
- tcp = pkt + hlen;
- if ((get_tcpflags(tcp) & TH_FIN) != 0 && len == hlen + get_tcpoff(tcp) * 4)
- return 0;
- return 1;
-}
diff --git a/mdk-stage1/ppp/pppd/ipcp.h b/mdk-stage1/ppp/pppd/ipcp.h
deleted file mode 100644
index 8c5aca861..000000000
--- a/mdk-stage1/ppp/pppd/ipcp.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * ipcp.h - IP Control Protocol definitions.
- *
- * Copyright (c) 1989 Carnegie Mellon University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Carnegie Mellon University. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Id$
- */
-
-/*
- * Options.
- */
-#define CI_ADDRS 1 /* IP Addresses */
-#define CI_COMPRESSTYPE 2 /* Compression Type */
-#define CI_ADDR 3
-
-#define CI_MS_DNS1 129 /* Primary DNS value */
-#define CI_MS_WINS1 130 /* Primary WINS value */
-#define CI_MS_DNS2 131 /* Secondary DNS value */
-#define CI_MS_WINS2 132 /* Secondary WINS value */
-
-#define MAX_STATES 16 /* from slcompress.h */
-
-#define IPCP_VJMODE_OLD 1 /* "old" mode (option # = 0x0037) */
-#define IPCP_VJMODE_RFC1172 2 /* "old-rfc"mode (option # = 0x002d) */
-#define IPCP_VJMODE_RFC1332 3 /* "new-rfc"mode (option # = 0x002d, */
- /* maxslot and slot number compression) */
-
-#define IPCP_VJ_COMP 0x002d /* current value for VJ compression option*/
-#define IPCP_VJ_COMP_OLD 0x0037 /* "old" (i.e, broken) value for VJ */
- /* compression option*/
-
-typedef struct ipcp_options {
- bool neg_addr; /* Negotiate IP Address? */
- bool old_addrs; /* Use old (IP-Addresses) option? */
- bool req_addr; /* Ask peer to send IP address? */
- bool default_route; /* Assign default route through interface? */
- bool proxy_arp; /* Make proxy ARP entry for peer? */
- bool neg_vj; /* Van Jacobson Compression? */
- bool old_vj; /* use old (short) form of VJ option? */
- bool accept_local; /* accept peer's value for ouraddr */
- bool accept_remote; /* accept peer's value for hisaddr */
- bool req_dns1; /* Ask peer to send primary DNS address? */
- bool req_dns2; /* Ask peer to send secondary DNS address? */
- int vj_protocol; /* protocol value to use in VJ option */
- int maxslotindex; /* values for RFC1332 VJ compression neg. */
- bool cflag;
- u_int32_t ouraddr, hisaddr; /* Addresses in NETWORK BYTE ORDER */
- u_int32_t dnsaddr[2]; /* Primary and secondary MS DNS entries */
- u_int32_t winsaddr[2]; /* Primary and secondary MS WINS entries */
-} ipcp_options;
-
-extern fsm ipcp_fsm[];
-extern ipcp_options ipcp_wantoptions[];
-extern ipcp_options ipcp_gotoptions[];
-extern ipcp_options ipcp_allowoptions[];
-extern ipcp_options ipcp_hisoptions[];
-
-char *ip_ntoa __P((u_int32_t));
-
-extern struct protent ipcp_protent;
diff --git a/mdk-stage1/ppp/pppd/ipv6cp.c b/mdk-stage1/ppp/pppd/ipv6cp.c
deleted file mode 100644
index 35fa2b53a..000000000
--- a/mdk-stage1/ppp/pppd/ipv6cp.c
+++ /dev/null
@@ -1,1512 +0,0 @@
-/*
- ipv6cp.c - PPP IPV6 Control Protocol.
- Copyright (C) 1999 Tommi Komulainen <Tommi.Komulainen@iki.fi>
-
- Redistribution and use in source and binary forms are permitted
- provided that the above copyright notice and this paragraph are
- duplicated in all such forms. The name of the author may not be
- used to endorse or promote products derived from this software
- without specific prior written permission.
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-*/
-
-/* Original version, based on RFC2023 :
-
- Copyright (c) 1995, 1996, 1997 Francis.Dupont@inria.fr, INRIA Rocquencourt,
- Alain.Durand@imag.fr, IMAG,
- Jean-Luc.Richier@imag.fr, IMAG-LSR.
-
- Copyright (c) 1998, 1999 Francis.Dupont@inria.fr, GIE DYADE,
- Alain.Durand@imag.fr, IMAG,
- Jean-Luc.Richier@imag.fr, IMAG-LSR.
-
- Ce travail a été fait au sein du GIE DYADE (Groupement d'Intérêt
- Économique ayant pour membres BULL S.A. et l'INRIA).
-
- Ce logiciel informatique est disponible aux conditions
- usuelles dans la recherche, c'est-à-dire qu'il peut
- être utilisé, copié, modifié, distribué à l'unique
- condition que ce texte soit conservé afin que
- l'origine de ce logiciel soit reconnue.
-
- Le nom de l'Institut National de Recherche en Informatique
- et en Automatique (INRIA), de l'IMAG, ou d'une personne morale
- ou physique ayant participé à l'élaboration de ce logiciel ne peut
- être utilisé sans son accord préalable explicite.
-
- Ce logiciel est fourni tel quel sans aucune garantie,
- support ou responsabilité d'aucune sorte.
- Ce logiciel est dérivé de sources d'origine
- "University of California at Berkeley" et
- "Digital Equipment Corporation" couvertes par des copyrights.
-
- L'Institut d'Informatique et de Mathématiques Appliquées de Grenoble (IMAG)
- est une fédération d'unités mixtes de recherche du CNRS, de l'Institut National
- Polytechnique de Grenoble et de l'Université Joseph Fourier regroupant
- sept laboratoires dont le laboratoire Logiciels, Systèmes, Réseaux (LSR).
-
- This work has been done in the context of GIE DYADE (joint R & D venture
- between BULL S.A. and INRIA).
-
- This software is available with usual "research" terms
- with the aim of retain credits of the software.
- Permission to use, copy, modify and distribute this software for any
- purpose and without fee is hereby granted, provided that the above
- copyright notice and this permission notice appear in all copies,
- and the name of INRIA, IMAG, or any contributor not be used in advertising
- or publicity pertaining to this material without the prior explicit
- permission. The software is provided "as is" without any
- warranties, support or liabilities of any kind.
- This software is derived from source code from
- "University of California at Berkeley" and
- "Digital Equipment Corporation" protected by copyrights.
-
- Grenoble's Institute of Computer Science and Applied Mathematics (IMAG)
- is a federation of seven research units funded by the CNRS, National
- Polytechnic Institute of Grenoble and University Joseph Fourier.
- The research unit in Software, Systems, Networks (LSR) is member of IMAG.
-*/
-
-/*
- * Derived from :
- *
- *
- * ipcp.c - PPP IP Control Protocol.
- *
- * Copyright (c) 1989 Carnegie Mellon University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Carnegie Mellon University. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Id$
- */
-
-#define RCSID "$Id$"
-
-/*
- * TODO:
- *
- * Proxy Neighbour Discovery.
- *
- * Better defines for selecting the ordering of
- * interface up / set address. (currently checks for __linux__,
- * since SVR4 && (SNI || __USLC__) didn't work properly)
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <netdb.h>
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#include "pppd.h"
-#include "fsm.h"
-#include "ipcp.h"
-#include "ipv6cp.h"
-#include "magic.h"
-#include "pathnames.h"
-
-static const char rcsid[] = RCSID;
-
-/* global vars */
-ipv6cp_options ipv6cp_wantoptions[NUM_PPP]; /* Options that we want to request */
-ipv6cp_options ipv6cp_gotoptions[NUM_PPP]; /* Options that peer ack'd */
-ipv6cp_options ipv6cp_allowoptions[NUM_PPP]; /* Options we allow peer to request */
-ipv6cp_options ipv6cp_hisoptions[NUM_PPP]; /* Options that we ack'd */
-int no_ifaceid_neg = 0;
-
-/* local vars */
-static int ipv6cp_is_up;
-
-/*
- * Callbacks for fsm code. (CI = Configuration Information)
- */
-static void ipv6cp_resetci __P((fsm *)); /* Reset our CI */
-static int ipv6cp_cilen __P((fsm *)); /* Return length of our CI */
-static void ipv6cp_addci __P((fsm *, u_char *, int *)); /* Add our CI */
-static int ipv6cp_ackci __P((fsm *, u_char *, int)); /* Peer ack'd our CI */
-static int ipv6cp_nakci __P((fsm *, u_char *, int)); /* Peer nak'd our CI */
-static int ipv6cp_rejci __P((fsm *, u_char *, int)); /* Peer rej'd our CI */
-static int ipv6cp_reqci __P((fsm *, u_char *, int *, int)); /* Rcv CI */
-static void ipv6cp_up __P((fsm *)); /* We're UP */
-static void ipv6cp_down __P((fsm *)); /* We're DOWN */
-static void ipv6cp_finished __P((fsm *)); /* Don't need lower layer */
-
-fsm ipv6cp_fsm[NUM_PPP]; /* IPV6CP fsm structure */
-
-static fsm_callbacks ipv6cp_callbacks = { /* IPV6CP callback routines */
- ipv6cp_resetci, /* Reset our Configuration Information */
- ipv6cp_cilen, /* Length of our Configuration Information */
- ipv6cp_addci, /* Add our Configuration Information */
- ipv6cp_ackci, /* ACK our Configuration Information */
- ipv6cp_nakci, /* NAK our Configuration Information */
- ipv6cp_rejci, /* Reject our Configuration Information */
- ipv6cp_reqci, /* Request peer's Configuration Information */
- ipv6cp_up, /* Called when fsm reaches OPENED state */
- ipv6cp_down, /* Called when fsm leaves OPENED state */
- NULL, /* Called when we want the lower layer up */
- ipv6cp_finished, /* Called when we want the lower layer down */
- NULL, /* Called when Protocol-Reject received */
- NULL, /* Retransmission is necessary */
- NULL, /* Called to handle protocol-specific codes */
- "IPV6CP" /* String name of protocol */
-};
-
-/*
- * Command-line options.
- */
-static int setifaceid __P((char **arg));
-static void printifaceid __P((option_t *,
- void (*)(void *, char *, ...), void *));
-
-static option_t ipv6cp_option_list[] = {
- { "ipv6", o_special, (void *)setifaceid,
- "Set interface identifiers for IPV6",
- OPT_A2PRINTER, (void *)printifaceid },
-
- { "+ipv6", o_bool, &ipv6cp_protent.enabled_flag,
- "Enable IPv6 and IPv6CP", OPT_PRIO | 1 },
- { "noipv6", o_bool, &ipv6cp_protent.enabled_flag,
- "Disable IPv6 and IPv6CP", OPT_PRIOSUB },
- { "-ipv6", o_bool, &ipv6cp_protent.enabled_flag,
- "Disable IPv6 and IPv6CP", OPT_PRIOSUB | OPT_ALIAS },
-
- { "ipv6cp-accept-local", o_bool, &ipv6cp_allowoptions[0].accept_local,
- "Accept peer's interface identifier for us", 1 },
-
- { "ipv6cp-use-ipaddr", o_bool, &ipv6cp_allowoptions[0].use_ip,
- "Use (default) IPv4 address as interface identifier", 1 },
-
-#if defined(SOL2)
- { "ipv6cp-use-persistent", o_bool, &ipv6cp_wantoptions[0].use_persistent,
- "Use uniquely-available persistent value for link local address", 1 },
-#endif /* defined(SOL2) */
-
- { "ipv6cp-restart", o_int, &ipv6cp_fsm[0].timeouttime,
- "Set timeout for IPv6CP", OPT_PRIO },
- { "ipv6cp-max-terminate", o_int, &ipv6cp_fsm[0].maxtermtransmits,
- "Set max #xmits for term-reqs", OPT_PRIO },
- { "ipv6cp-max-configure", o_int, &ipv6cp_fsm[0].maxconfreqtransmits,
- "Set max #xmits for conf-reqs", OPT_PRIO },
- { "ipv6cp-max-failure", o_int, &ipv6cp_fsm[0].maxnakloops,
- "Set max #conf-naks for IPv6CP", OPT_PRIO },
-
- { NULL }
-};
-
-
-/*
- * Protocol entry points from main code.
- */
-static void ipv6cp_init __P((int));
-static void ipv6cp_open __P((int));
-static void ipv6cp_close __P((int, char *));
-static void ipv6cp_lowerup __P((int));
-static void ipv6cp_lowerdown __P((int));
-static void ipv6cp_input __P((int, u_char *, int));
-static void ipv6cp_protrej __P((int));
-static int ipv6cp_printpkt __P((u_char *, int,
- void (*) __P((void *, char *, ...)), void *));
-static void ipv6_check_options __P((void));
-static int ipv6_demand_conf __P((int));
-static int ipv6_active_pkt __P((u_char *, int));
-
-struct protent ipv6cp_protent = {
- PPP_IPV6CP,
- ipv6cp_init,
- ipv6cp_input,
- ipv6cp_protrej,
- ipv6cp_lowerup,
- ipv6cp_lowerdown,
- ipv6cp_open,
- ipv6cp_close,
- ipv6cp_printpkt,
- NULL,
- 0,
- "IPV6CP",
- "IPV6",
- ipv6cp_option_list,
- ipv6_check_options,
- ipv6_demand_conf,
- ipv6_active_pkt
-};
-
-static void ipv6cp_clear_addrs __P((int, eui64_t, eui64_t));
-static void ipv6cp_script __P((char *));
-static void ipv6cp_script_done __P((void *));
-
-/*
- * Lengths of configuration options.
- */
-#define CILEN_VOID 2
-#define CILEN_COMPRESS 4 /* length for RFC2023 compress opt. */
-#define CILEN_IFACEID 10 /* RFC2472, interface identifier */
-
-#define CODENAME(x) ((x) == CONFACK ? "ACK" : \
- (x) == CONFNAK ? "NAK" : "REJ")
-
-/*
- * This state variable is used to ensure that we don't
- * run an ipcp-up/down script while one is already running.
- */
-static enum script_state {
- s_down,
- s_up,
-} ipv6cp_script_state;
-static pid_t ipv6cp_script_pid;
-
-/*
- * setifaceid - set the interface identifiers manually
- */
-static int
-setifaceid(argv)
- char **argv;
-{
- char *comma, *arg, c;
- ipv6cp_options *wo = &ipv6cp_wantoptions[0];
- struct in6_addr addr;
- static int prio_local, prio_remote;
-
-#define VALIDID(a) ( (((a).s6_addr32[0] == 0) && ((a).s6_addr32[1] == 0)) && \
- (((a).s6_addr32[2] != 0) || ((a).s6_addr32[3] != 0)) )
-
- arg = *argv;
- if ((comma = strchr(arg, ',')) == NULL)
- comma = arg + strlen(arg);
-
- /*
- * If comma first character, then no local identifier
- */
- if (comma != arg) {
- c = *comma;
- *comma = '\0';
-
- if (inet_pton(AF_INET6, arg, &addr) == 0 || !VALIDID(addr)) {
- option_error("Illegal interface identifier (local): %s", arg);
- return 0;
- }
-
- if (option_priority >= prio_local) {
- eui64_copy(addr.s6_addr32[2], wo->ourid);
- wo->opt_local = 1;
- prio_local = option_priority;
- }
- *comma = c;
- }
-
- /*
- * If comma last character, the no remote identifier
- */
- if (*comma != 0 && *++comma != '\0') {
- if (inet_pton(AF_INET6, comma, &addr) == 0 || !VALIDID(addr)) {
- option_error("Illegal interface identifier (remote): %s", comma);
- return 0;
- }
- if (option_priority >= prio_remote) {
- eui64_copy(addr.s6_addr32[2], wo->hisid);
- wo->opt_remote = 1;
- prio_remote = option_priority;
- }
- }
-
- if (override_value("+ipv6", option_priority, option_source))
- ipv6cp_protent.enabled_flag = 1;
- return 1;
-}
-
-static void
-printifaceid(opt, printer, arg)
- option_t *opt;
- void (*printer) __P((void *, char *, ...));
- void *arg;
-{
- ipv6cp_options *wo = &ipv6cp_wantoptions[0];
-
- if (wo->opt_local)
- printer(arg, "%s", llv6_ntoa(wo->ourid));
- printer(arg, ",");
- if (wo->opt_remote)
- printer(arg, "%s", llv6_ntoa(wo->hisid));
-}
-
-/*
- * Make a string representation of a network address.
- */
-char *
-llv6_ntoa(ifaceid)
- eui64_t ifaceid;
-{
- static char b[64];
-
- sprintf(b, "fe80::%s", eui64_ntoa(ifaceid));
- return b;
-}
-
-
-/*
- * ipv6cp_init - Initialize IPV6CP.
- */
-static void
-ipv6cp_init(unit)
- int unit;
-{
- fsm *f = &ipv6cp_fsm[unit];
- ipv6cp_options *wo = &ipv6cp_wantoptions[unit];
- ipv6cp_options *ao = &ipv6cp_allowoptions[unit];
-
- f->unit = unit;
- f->protocol = PPP_IPV6CP;
- f->callbacks = &ipv6cp_callbacks;
- fsm_init(&ipv6cp_fsm[unit]);
-
- memset(wo, 0, sizeof(*wo));
- memset(ao, 0, sizeof(*ao));
-
- wo->accept_local = 1;
- wo->neg_ifaceid = 1;
- ao->neg_ifaceid = 1;
-
-#ifdef IPV6CP_COMP
- wo->neg_vj = 1;
- ao->neg_vj = 1;
- wo->vj_protocol = IPV6CP_COMP;
-#endif
-
-}
-
-
-/*
- * ipv6cp_open - IPV6CP is allowed to come up.
- */
-static void
-ipv6cp_open(unit)
- int unit;
-{
- fsm_open(&ipv6cp_fsm[unit]);
-}
-
-
-/*
- * ipv6cp_close - Take IPV6CP down.
- */
-static void
-ipv6cp_close(unit, reason)
- int unit;
- char *reason;
-{
- fsm_close(&ipv6cp_fsm[unit], reason);
-}
-
-
-/*
- * ipv6cp_lowerup - The lower layer is up.
- */
-static void
-ipv6cp_lowerup(unit)
- int unit;
-{
- fsm_lowerup(&ipv6cp_fsm[unit]);
-}
-
-
-/*
- * ipv6cp_lowerdown - The lower layer is down.
- */
-static void
-ipv6cp_lowerdown(unit)
- int unit;
-{
- fsm_lowerdown(&ipv6cp_fsm[unit]);
-}
-
-
-/*
- * ipv6cp_input - Input IPV6CP packet.
- */
-static void
-ipv6cp_input(unit, p, len)
- int unit;
- u_char *p;
- int len;
-{
- fsm_input(&ipv6cp_fsm[unit], p, len);
-}
-
-
-/*
- * ipv6cp_protrej - A Protocol-Reject was received for IPV6CP.
- *
- * Pretend the lower layer went down, so we shut up.
- */
-static void
-ipv6cp_protrej(unit)
- int unit;
-{
- fsm_lowerdown(&ipv6cp_fsm[unit]);
-}
-
-
-/*
- * ipv6cp_resetci - Reset our CI.
- */
-static void
-ipv6cp_resetci(f)
- fsm *f;
-{
- ipv6cp_options *wo = &ipv6cp_wantoptions[f->unit];
- ipv6cp_options *go = &ipv6cp_gotoptions[f->unit];
-
- wo->req_ifaceid = wo->neg_ifaceid && ipv6cp_allowoptions[f->unit].neg_ifaceid;
-
- if (!wo->opt_local) {
- eui64_magic_nz(wo->ourid);
- }
-
- *go = *wo;
- eui64_zero(go->hisid); /* last proposed interface identifier */
-}
-
-
-/*
- * ipv6cp_cilen - Return length of our CI.
- */
-static int
-ipv6cp_cilen(f)
- fsm *f;
-{
- ipv6cp_options *go = &ipv6cp_gotoptions[f->unit];
-
-#define LENCIVJ(neg) (neg ? CILEN_COMPRESS : 0)
-#define LENCIIFACEID(neg) (neg ? CILEN_IFACEID : 0)
-
- return (LENCIIFACEID(go->neg_ifaceid) +
- LENCIVJ(go->neg_vj));
-}
-
-
-/*
- * ipv6cp_addci - Add our desired CIs to a packet.
- */
-static void
-ipv6cp_addci(f, ucp, lenp)
- fsm *f;
- u_char *ucp;
- int *lenp;
-{
- ipv6cp_options *go = &ipv6cp_gotoptions[f->unit];
- int len = *lenp;
-
-#define ADDCIVJ(opt, neg, val) \
- if (neg) { \
- int vjlen = CILEN_COMPRESS; \
- if (len >= vjlen) { \
- PUTCHAR(opt, ucp); \
- PUTCHAR(vjlen, ucp); \
- PUTSHORT(val, ucp); \
- len -= vjlen; \
- } else \
- neg = 0; \
- }
-
-#define ADDCIIFACEID(opt, neg, val1) \
- if (neg) { \
- int idlen = CILEN_IFACEID; \
- if (len >= idlen) { \
- PUTCHAR(opt, ucp); \
- PUTCHAR(idlen, ucp); \
- eui64_put(val1, ucp); \
- len -= idlen; \
- } else \
- neg = 0; \
- }
-
- ADDCIIFACEID(CI_IFACEID, go->neg_ifaceid, go->ourid);
-
- ADDCIVJ(CI_COMPRESSTYPE, go->neg_vj, go->vj_protocol);
-
- *lenp -= len;
-}
-
-
-/*
- * ipv6cp_ackci - Ack our CIs.
- *
- * Returns:
- * 0 - Ack was bad.
- * 1 - Ack was good.
- */
-static int
-ipv6cp_ackci(f, p, len)
- fsm *f;
- u_char *p;
- int len;
-{
- ipv6cp_options *go = &ipv6cp_gotoptions[f->unit];
- u_short cilen, citype, cishort;
- eui64_t ifaceid;
-
- /*
- * CIs must be in exactly the same order that we sent...
- * Check packet length and CI length at each step.
- * If we find any deviations, then this packet is bad.
- */
-
-#define ACKCIVJ(opt, neg, val) \
- if (neg) { \
- int vjlen = CILEN_COMPRESS; \
- if ((len -= vjlen) < 0) \
- goto bad; \
- GETCHAR(citype, p); \
- GETCHAR(cilen, p); \
- if (cilen != vjlen || \
- citype != opt) \
- goto bad; \
- GETSHORT(cishort, p); \
- if (cishort != val) \
- goto bad; \
- }
-
-#define ACKCIIFACEID(opt, neg, val1) \
- if (neg) { \
- int idlen = CILEN_IFACEID; \
- if ((len -= idlen) < 0) \
- goto bad; \
- GETCHAR(citype, p); \
- GETCHAR(cilen, p); \
- if (cilen != idlen || \
- citype != opt) \
- goto bad; \
- eui64_get(ifaceid, p); \
- if (! eui64_equals(val1, ifaceid)) \
- goto bad; \
- }
-
- ACKCIIFACEID(CI_IFACEID, go->neg_ifaceid, go->ourid);
-
- ACKCIVJ(CI_COMPRESSTYPE, go->neg_vj, go->vj_protocol);
-
- /*
- * If there are any remaining CIs, then this packet is bad.
- */
- if (len != 0)
- goto bad;
- return (1);
-
-bad:
- IPV6CPDEBUG(("ipv6cp_ackci: received bad Ack!"));
- return (0);
-}
-
-/*
- * ipv6cp_nakci - Peer has sent a NAK for some of our CIs.
- * This should not modify any state if the Nak is bad
- * or if IPV6CP is in the OPENED state.
- *
- * Returns:
- * 0 - Nak was bad.
- * 1 - Nak was good.
- */
-static int
-ipv6cp_nakci(f, p, len)
- fsm *f;
- u_char *p;
- int len;
-{
- ipv6cp_options *go = &ipv6cp_gotoptions[f->unit];
- u_char citype, cilen, *next;
- u_short cishort;
- eui64_t ifaceid;
- ipv6cp_options no; /* options we've seen Naks for */
- ipv6cp_options try; /* options to request next time */
-
- BZERO(&no, sizeof(no));
- try = *go;
-
- /*
- * Any Nak'd CIs must be in exactly the same order that we sent.
- * Check packet length and CI length at each step.
- * If we find any deviations, then this packet is bad.
- */
-#define NAKCIIFACEID(opt, neg, code) \
- if (go->neg && \
- len >= (cilen = CILEN_IFACEID) && \
- p[1] == cilen && \
- p[0] == opt) { \
- len -= cilen; \
- INCPTR(2, p); \
- eui64_get(ifaceid, p); \
- no.neg = 1; \
- code \
- }
-
-#define NAKCIVJ(opt, neg, code) \
- if (go->neg && \
- ((cilen = p[1]) == CILEN_COMPRESS) && \
- len >= cilen && \
- p[0] == opt) { \
- len -= cilen; \
- INCPTR(2, p); \
- GETSHORT(cishort, p); \
- no.neg = 1; \
- code \
- }
-
- /*
- * Accept the peer's idea of {our,his} interface identifier, if different
- * from our idea, only if the accept_{local,remote} flag is set.
- */
- NAKCIIFACEID(CI_IFACEID, neg_ifaceid,
- if (go->accept_local) {
- while (eui64_iszero(ifaceid) ||
- eui64_equals(ifaceid, go->hisid)) /* bad luck */
- eui64_magic(ifaceid);
- try.ourid = ifaceid;
- IPV6CPDEBUG(("local LL address %s", llv6_ntoa(ifaceid)));
- }
- );
-
-#ifdef IPV6CP_COMP
- NAKCIVJ(CI_COMPRESSTYPE, neg_vj,
- {
- if (cishort == IPV6CP_COMP) {
- try.vj_protocol = cishort;
- } else {
- try.neg_vj = 0;
- }
- }
- );
-#else
- NAKCIVJ(CI_COMPRESSTYPE, neg_vj,
- {
- try.neg_vj = 0;
- }
- );
-#endif
-
- /*
- * There may be remaining CIs, if the peer is requesting negotiation
- * on an option that we didn't include in our request packet.
- * If they want to negotiate about interface identifier, we comply.
- * If they want us to ask for compression, we refuse.
- */
- while (len > CILEN_VOID) {
- GETCHAR(citype, p);
- GETCHAR(cilen, p);
- if( (len -= cilen) < 0 )
- goto bad;
- next = p + cilen - 2;
-
- switch (citype) {
- case CI_COMPRESSTYPE:
- if (go->neg_vj || no.neg_vj ||
- (cilen != CILEN_COMPRESS))
- goto bad;
- no.neg_vj = 1;
- break;
- case CI_IFACEID:
- if (go->neg_ifaceid || no.neg_ifaceid || cilen != CILEN_IFACEID)
- goto bad;
- try.neg_ifaceid = 1;
- eui64_get(ifaceid, p);
- if (go->accept_local) {
- while (eui64_iszero(ifaceid) ||
- eui64_equals(ifaceid, go->hisid)) /* bad luck */
- eui64_magic(ifaceid);
- try.ourid = ifaceid;
- }
- no.neg_ifaceid = 1;
- break;
- }
- p = next;
- }
-
- /* If there is still anything left, this packet is bad. */
- if (len != 0)
- goto bad;
-
- /*
- * OK, the Nak is good. Now we can update state.
- */
- if (f->state != OPENED)
- *go = try;
-
- return 1;
-
-bad:
- IPV6CPDEBUG(("ipv6cp_nakci: received bad Nak!"));
- return 0;
-}
-
-
-/*
- * ipv6cp_rejci - Reject some of our CIs.
- */
-static int
-ipv6cp_rejci(f, p, len)
- fsm *f;
- u_char *p;
- int len;
-{
- ipv6cp_options *go = &ipv6cp_gotoptions[f->unit];
- u_char cilen;
- u_short cishort;
- eui64_t ifaceid;
- ipv6cp_options try; /* options to request next time */
-
- try = *go;
- /*
- * Any Rejected CIs must be in exactly the same order that we sent.
- * Check packet length and CI length at each step.
- * If we find any deviations, then this packet is bad.
- */
-#define REJCIIFACEID(opt, neg, val1) \
- if (go->neg && \
- len >= (cilen = CILEN_IFACEID) && \
- p[1] == cilen && \
- p[0] == opt) { \
- len -= cilen; \
- INCPTR(2, p); \
- eui64_get(ifaceid, p); \
- /* Check rejected value. */ \
- if (! eui64_equals(ifaceid, val1)) \
- goto bad; \
- try.neg = 0; \
- }
-
-#define REJCIVJ(opt, neg, val) \
- if (go->neg && \
- p[1] == CILEN_COMPRESS && \
- len >= p[1] && \
- p[0] == opt) { \
- len -= p[1]; \
- INCPTR(2, p); \
- GETSHORT(cishort, p); \
- /* Check rejected value. */ \
- if (cishort != val) \
- goto bad; \
- try.neg = 0; \
- }
-
- REJCIIFACEID(CI_IFACEID, neg_ifaceid, go->ourid);
-
- REJCIVJ(CI_COMPRESSTYPE, neg_vj, go->vj_protocol);
-
- /*
- * If there are any remaining CIs, then this packet is bad.
- */
- if (len != 0)
- goto bad;
- /*
- * Now we can update state.
- */
- if (f->state != OPENED)
- *go = try;
- return 1;
-
-bad:
- IPV6CPDEBUG(("ipv6cp_rejci: received bad Reject!"));
- return 0;
-}
-
-
-/*
- * ipv6cp_reqci - Check the peer's requested CIs and send appropriate response.
- *
- * Returns: CONFACK, CONFNAK or CONFREJ and input packet modified
- * appropriately. If reject_if_disagree is non-zero, doesn't return
- * CONFNAK; returns CONFREJ if it can't return CONFACK.
- */
-static int
-ipv6cp_reqci(f, inp, len, reject_if_disagree)
- fsm *f;
- u_char *inp; /* Requested CIs */
- int *len; /* Length of requested CIs */
- int reject_if_disagree;
-{
- ipv6cp_options *wo = &ipv6cp_wantoptions[f->unit];
- ipv6cp_options *ho = &ipv6cp_hisoptions[f->unit];
- ipv6cp_options *ao = &ipv6cp_allowoptions[f->unit];
- ipv6cp_options *go = &ipv6cp_gotoptions[f->unit];
- u_char *cip, *next; /* Pointer to current and next CIs */
- u_short cilen, citype; /* Parsed len, type */
- u_short cishort; /* Parsed short value */
- eui64_t ifaceid; /* Parsed interface identifier */
- int rc = CONFACK; /* Final packet return code */
- int orc; /* Individual option return code */
- u_char *p; /* Pointer to next char to parse */
- u_char *ucp = inp; /* Pointer to current output char */
- int l = *len; /* Length left */
-
- /*
- * Reset all his options.
- */
- BZERO(ho, sizeof(*ho));
-
- /*
- * Process all his options.
- */
- next = inp;
- while (l) {
- orc = CONFACK; /* Assume success */
- cip = p = next; /* Remember begining of CI */
- if (l < 2 || /* Not enough data for CI header or */
- p[1] < 2 || /* CI length too small or */
- p[1] > l) { /* CI length too big? */
- IPV6CPDEBUG(("ipv6cp_reqci: bad CI length!"));
- orc = CONFREJ; /* Reject bad CI */
- cilen = l; /* Reject till end of packet */
- l = 0; /* Don't loop again */
- goto endswitch;
- }
- GETCHAR(citype, p); /* Parse CI type */
- GETCHAR(cilen, p); /* Parse CI length */
- l -= cilen; /* Adjust remaining length */
- next += cilen; /* Step to next CI */
-
- switch (citype) { /* Check CI type */
- case CI_IFACEID:
- IPV6CPDEBUG(("ipv6cp: received interface identifier "));
-
- if (!ao->neg_ifaceid ||
- cilen != CILEN_IFACEID) { /* Check CI length */
- orc = CONFREJ; /* Reject CI */
- break;
- }
-
- /*
- * If he has no interface identifier, or if we both have same
- * identifier then NAK it with new idea.
- * In particular, if we don't know his identifier, but he does,
- * then accept it.
- */
- eui64_get(ifaceid, p);
- IPV6CPDEBUG(("(%s)", llv6_ntoa(ifaceid)));
- if (eui64_iszero(ifaceid) && eui64_iszero(go->ourid)) {
- orc = CONFREJ; /* Reject CI */
- break;
- }
- if (!eui64_iszero(wo->hisid) &&
- !eui64_equals(ifaceid, wo->hisid) &&
- eui64_iszero(go->hisid)) {
-
- orc = CONFNAK;
- ifaceid = wo->hisid;
- go->hisid = ifaceid;
- DECPTR(sizeof(ifaceid), p);
- eui64_put(ifaceid, p);
- } else
- if (eui64_iszero(ifaceid) || eui64_equals(ifaceid, go->ourid)) {
- orc = CONFNAK;
- if (eui64_iszero(go->hisid)) /* first time, try option */
- ifaceid = wo->hisid;
- while (eui64_iszero(ifaceid) ||
- eui64_equals(ifaceid, go->ourid)) /* bad luck */
- eui64_magic(ifaceid);
- go->hisid = ifaceid;
- DECPTR(sizeof(ifaceid), p);
- eui64_put(ifaceid, p);
- }
-
- ho->neg_ifaceid = 1;
- ho->hisid = ifaceid;
- break;
-
- case CI_COMPRESSTYPE:
- IPV6CPDEBUG(("ipv6cp: received COMPRESSTYPE "));
- if (!ao->neg_vj ||
- (cilen != CILEN_COMPRESS)) {
- orc = CONFREJ;
- break;
- }
- GETSHORT(cishort, p);
- IPV6CPDEBUG(("(%d)", cishort));
-
-#ifdef IPV6CP_COMP
- if (!(cishort == IPV6CP_COMP)) {
- orc = CONFREJ;
- break;
- }
-
- ho->neg_vj = 1;
- ho->vj_protocol = cishort;
- break;
-#else
- orc = CONFREJ;
- break;
-#endif
-
- default:
- orc = CONFREJ;
- break;
- }
-
-endswitch:
- IPV6CPDEBUG((" (%s)\n", CODENAME(orc)));
-
- if (orc == CONFACK && /* Good CI */
- rc != CONFACK) /* but prior CI wasnt? */
- continue; /* Don't send this one */
-
- if (orc == CONFNAK) { /* Nak this CI? */
- if (reject_if_disagree) /* Getting fed up with sending NAKs? */
- orc = CONFREJ; /* Get tough if so */
- else {
- if (rc == CONFREJ) /* Rejecting prior CI? */
- continue; /* Don't send this one */
- if (rc == CONFACK) { /* Ack'd all prior CIs? */
- rc = CONFNAK; /* Not anymore... */
- ucp = inp; /* Backup */
- }
- }
- }
-
- if (orc == CONFREJ && /* Reject this CI */
- rc != CONFREJ) { /* but no prior ones? */
- rc = CONFREJ;
- ucp = inp; /* Backup */
- }
-
- /* Need to move CI? */
- if (ucp != cip)
- BCOPY(cip, ucp, cilen); /* Move it */
-
- /* Update output pointer */
- INCPTR(cilen, ucp);
- }
-
- /*
- * If we aren't rejecting this packet, and we want to negotiate
- * their identifier and they didn't send their identifier, then we
- * send a NAK with a CI_IFACEID option appended. We assume the
- * input buffer is long enough that we can append the extra
- * option safely.
- */
- if (rc != CONFREJ && !ho->neg_ifaceid &&
- wo->req_ifaceid && !reject_if_disagree) {
- if (rc == CONFACK) {
- rc = CONFNAK;
- ucp = inp; /* reset pointer */
- wo->req_ifaceid = 0; /* don't ask again */
- }
- PUTCHAR(CI_IFACEID, ucp);
- PUTCHAR(CILEN_IFACEID, ucp);
- eui64_put(wo->hisid, ucp);
- }
-
- *len = ucp - inp; /* Compute output length */
- IPV6CPDEBUG(("ipv6cp: returning Configure-%s", CODENAME(rc)));
- return (rc); /* Return final code */
-}
-
-
-/*
- * ipv6_check_options - check that any IP-related options are OK,
- * and assign appropriate defaults.
- */
-static void
-ipv6_check_options()
-{
- ipv6cp_options *wo = &ipv6cp_wantoptions[0];
-
- if (!ipv6cp_protent.enabled_flag)
- return;
-
-#if defined(SOL2)
- /*
- * Persistent link-local id is only used when user has not explicitly
- * configure/hard-code the id
- */
- if ((wo->use_persistent) && (!wo->opt_local) && (!wo->opt_remote)) {
-
- /*
- * On systems where there are no Ethernet interfaces used, there
- * may be other ways to obtain a persistent id. Right now, it
- * will fall back to using magic [see eui64_magic] below when
- * an EUI-48 from MAC address can't be obtained. Other possibilities
- * include obtaining EEPROM serial numbers, or some other unique
- * yet persistent number. On Sparc platforms, this is possible,
- * but too bad there's no standards yet for x86 machines.
- */
- if (ether_to_eui64(&wo->ourid)) {
- wo->opt_local = 1;
- }
- }
-#endif
-
- if (!wo->opt_local) { /* init interface identifier */
- if (wo->use_ip && eui64_iszero(wo->ourid)) {
- eui64_setlo32(wo->ourid, ntohl(ipcp_wantoptions[0].ouraddr));
- if (!eui64_iszero(wo->ourid))
- wo->opt_local = 1;
- }
-
- while (eui64_iszero(wo->ourid))
- eui64_magic(wo->ourid);
- }
-
- if (!wo->opt_remote) {
- if (wo->use_ip && eui64_iszero(wo->hisid)) {
- eui64_setlo32(wo->hisid, ntohl(ipcp_wantoptions[0].hisaddr));
- if (!eui64_iszero(wo->hisid))
- wo->opt_remote = 1;
- }
- }
-
- if (demand && (eui64_iszero(wo->ourid) || eui64_iszero(wo->hisid))) {
- option_error("local/remote LL address required for demand-dialling\n");
- exit(1);
- }
-}
-
-
-/*
- * ipv6_demand_conf - configure the interface as though
- * IPV6CP were up, for use with dial-on-demand.
- */
-static int
-ipv6_demand_conf(u)
- int u;
-{
- ipv6cp_options *wo = &ipv6cp_wantoptions[u];
-
-#if defined(__linux__) || defined(SOL2) || (defined(SVR4) && (defined(SNI) || defined(__USLC__)))
-#if defined(SOL2)
- if (!sif6up(u))
- return 0;
-#else
- if (!sifup(u))
- return 0;
-#endif /* defined(SOL2) */
-#endif
- if (!sif6addr(u, wo->ourid, wo->hisid))
- return 0;
-#if !defined(__linux__) && !(defined(SVR4) && (defined(SNI) || defined(__USLC__)))
- if (!sifup(u))
- return 0;
-#endif
- if (!sifnpmode(u, PPP_IPV6, NPMODE_QUEUE))
- return 0;
-
- notice("ipv6_demand_conf");
- notice("local LL address %s", llv6_ntoa(wo->ourid));
- notice("remote LL address %s", llv6_ntoa(wo->hisid));
-
- return 1;
-}
-
-
-/*
- * ipv6cp_up - IPV6CP has come UP.
- *
- * Configure the IPv6 network interface appropriately and bring it up.
- */
-static void
-ipv6cp_up(f)
- fsm *f;
-{
- ipv6cp_options *ho = &ipv6cp_hisoptions[f->unit];
- ipv6cp_options *go = &ipv6cp_gotoptions[f->unit];
- ipv6cp_options *wo = &ipv6cp_wantoptions[f->unit];
-
- IPV6CPDEBUG(("ipv6cp: up"));
-
- /*
- * We must have a non-zero LL address for both ends of the link.
- */
- if (!ho->neg_ifaceid)
- ho->hisid = wo->hisid;
-
- if(!no_ifaceid_neg) {
- if (eui64_iszero(ho->hisid)) {
- error("Could not determine remote LL address");
- ipv6cp_close(f->unit, "Could not determine remote LL address");
- return;
- }
- if (eui64_iszero(go->ourid)) {
- error("Could not determine local LL address");
- ipv6cp_close(f->unit, "Could not determine local LL address");
- return;
- }
- if (eui64_equals(go->ourid, ho->hisid)) {
- error("local and remote LL addresses are equal");
- ipv6cp_close(f->unit, "local and remote LL addresses are equal");
- return;
- }
- }
- script_setenv("LLLOCAL", llv6_ntoa(go->ourid), 0);
- script_setenv("LLREMOTE", llv6_ntoa(ho->hisid), 0);
-
-#ifdef IPV6CP_COMP
- /* set tcp compression */
- sif6comp(f->unit, ho->neg_vj);
-#endif
-
- /*
- * If we are doing dial-on-demand, the interface is already
- * configured, so we put out any saved-up packets, then set the
- * interface to pass IPv6 packets.
- */
- if (demand) {
- if (! eui64_equals(go->ourid, wo->ourid) ||
- ! eui64_equals(ho->hisid, wo->hisid)) {
- if (! eui64_equals(go->ourid, wo->ourid))
- warn("Local LL address changed to %s",
- llv6_ntoa(go->ourid));
- if (! eui64_equals(ho->hisid, wo->hisid))
- warn("Remote LL address changed to %s",
- llv6_ntoa(ho->hisid));
- ipv6cp_clear_addrs(f->unit, go->ourid, ho->hisid);
-
- /* Set the interface to the new addresses */
- if (!sif6addr(f->unit, go->ourid, ho->hisid)) {
- if (debug)
- warn("sif6addr failed");
- ipv6cp_close(f->unit, "Interface configuration failed");
- return;
- }
-
- }
- demand_rexmit(PPP_IPV6);
- sifnpmode(f->unit, PPP_IPV6, NPMODE_PASS);
-
- } else {
- /*
- * Set LL addresses
- */
-#if !defined(__linux__) && !defined(SOL2) && !(defined(SVR4) && (defined(SNI) || defined(__USLC__)))
- if (!sif6addr(f->unit, go->ourid, ho->hisid)) {
- if (debug)
- warn("sif6addr failed");
- ipv6cp_close(f->unit, "Interface configuration failed");
- return;
- }
-#endif
-
- /* bring the interface up for IPv6 */
-#if defined(SOL2)
- if (!sif6up(f->unit)) {
- if (debug)
- warn("sifup failed (IPV6)");
- ipv6cp_close(f->unit, "Interface configuration failed");
- return;
- }
-#else
- if (!sifup(f->unit)) {
- if (debug)
- warn("sifup failed (IPV6)");
- ipv6cp_close(f->unit, "Interface configuration failed");
- return;
- }
-#endif /* defined(SOL2) */
-
-#if defined(__linux__) || defined(SOL2) || (defined(SVR4) && (defined(SNI) || defined(__USLC__)))
- if (!sif6addr(f->unit, go->ourid, ho->hisid)) {
- if (debug)
- warn("sif6addr failed");
- ipv6cp_close(f->unit, "Interface configuration failed");
- return;
- }
-#endif
- sifnpmode(f->unit, PPP_IPV6, NPMODE_PASS);
-
- notice("local LL address %s", llv6_ntoa(go->ourid));
- notice("remote LL address %s", llv6_ntoa(ho->hisid));
- }
-
- np_up(f->unit, PPP_IPV6);
- ipv6cp_is_up = 1;
-
- /*
- * Execute the ipv6-up script, like this:
- * /etc/ppp/ipv6-up interface tty speed local-LL remote-LL
- */
- if (ipv6cp_script_state == s_down && ipv6cp_script_pid == 0) {
- ipv6cp_script_state = s_up;
- ipv6cp_script(_PATH_IPV6UP);
- }
-}
-
-
-/*
- * ipv6cp_down - IPV6CP has gone DOWN.
- *
- * Take the IPv6 network interface down, clear its addresses
- * and delete routes through it.
- */
-static void
-ipv6cp_down(f)
- fsm *f;
-{
- IPV6CPDEBUG(("ipv6cp: down"));
- update_link_stats(f->unit);
- if (ipv6cp_is_up) {
- ipv6cp_is_up = 0;
- np_down(f->unit, PPP_IPV6);
- }
-#ifdef IPV6CP_COMP
- sif6comp(f->unit, 0);
-#endif
-
- /*
- * If we are doing dial-on-demand, set the interface
- * to queue up outgoing packets (for now).
- */
- if (demand) {
- sifnpmode(f->unit, PPP_IPV6, NPMODE_QUEUE);
- } else {
- sifnpmode(f->unit, PPP_IPV6, NPMODE_DROP);
-#if !defined(__linux__) && !(defined(SVR4) && (defined(SNI) || defined(__USLC)))
-#if defined(SOL2)
- sif6down(f->unit);
-#else
- sifdown(f->unit);
-#endif /* defined(SOL2) */
-#endif
- ipv6cp_clear_addrs(f->unit,
- ipv6cp_gotoptions[f->unit].ourid,
- ipv6cp_hisoptions[f->unit].hisid);
-#if defined(__linux__) || (defined(SVR4) && (defined(SNI) || defined(__USLC)))
- sifdown(f->unit);
-#endif
- }
-
- /* Execute the ipv6-down script */
- if (ipv6cp_script_state == s_up && ipv6cp_script_pid == 0) {
- ipv6cp_script_state = s_down;
- ipv6cp_script(_PATH_IPV6DOWN);
- }
-}
-
-
-/*
- * ipv6cp_clear_addrs() - clear the interface addresses, routes,
- * proxy neighbour discovery entries, etc.
- */
-static void
-ipv6cp_clear_addrs(unit, ourid, hisid)
- int unit;
- eui64_t ourid;
- eui64_t hisid;
-{
- cif6addr(unit, ourid, hisid);
-}
-
-
-/*
- * ipv6cp_finished - possibly shut down the lower layers.
- */
-static void
-ipv6cp_finished(f)
- fsm *f;
-{
- np_finished(f->unit, PPP_IPV6);
-}
-
-
-/*
- * ipv6cp_script_done - called when the ipv6-up or ipv6-down script
- * has finished.
- */
-static void
-ipv6cp_script_done(arg)
- void *arg;
-{
- ipv6cp_script_pid = 0;
- switch (ipv6cp_script_state) {
- case s_up:
- if (ipv6cp_fsm[0].state != OPENED) {
- ipv6cp_script_state = s_down;
- ipv6cp_script(_PATH_IPV6DOWN);
- }
- break;
- case s_down:
- if (ipv6cp_fsm[0].state == OPENED) {
- ipv6cp_script_state = s_up;
- ipv6cp_script(_PATH_IPV6UP);
- }
- break;
- }
-}
-
-
-/*
- * ipv6cp_script - Execute a script with arguments
- * interface-name tty-name speed local-LL remote-LL.
- */
-static void
-ipv6cp_script(script)
- char *script;
-{
- char strspeed[32], strlocal[32], strremote[32];
- char *argv[8];
-
- sprintf(strspeed, "%d", baud_rate);
- strcpy(strlocal, llv6_ntoa(ipv6cp_gotoptions[0].ourid));
- strcpy(strremote, llv6_ntoa(ipv6cp_hisoptions[0].hisid));
-
- argv[0] = script;
- argv[1] = ifname;
- argv[2] = devnam;
- argv[3] = strspeed;
- argv[4] = strlocal;
- argv[5] = strremote;
- argv[6] = ipparam;
- argv[7] = NULL;
-
- ipv6cp_script_pid = run_program(script, argv, 0, ipv6cp_script_done, NULL);
-}
-
-/*
- * ipv6cp_printpkt - print the contents of an IPV6CP packet.
- */
-static char *ipv6cp_codenames[] = {
- "ConfReq", "ConfAck", "ConfNak", "ConfRej",
- "TermReq", "TermAck", "CodeRej"
-};
-
-static int
-ipv6cp_printpkt(p, plen, printer, arg)
- u_char *p;
- int plen;
- void (*printer) __P((void *, char *, ...));
- void *arg;
-{
- int code, id, len, olen;
- u_char *pstart, *optend;
- u_short cishort;
- eui64_t ifaceid;
-
- if (plen < HEADERLEN)
- return 0;
- pstart = p;
- GETCHAR(code, p);
- GETCHAR(id, p);
- GETSHORT(len, p);
- if (len < HEADERLEN || len > plen)
- return 0;
-
- if (code >= 1 && code <= sizeof(ipv6cp_codenames) / sizeof(char *))
- printer(arg, " %s", ipv6cp_codenames[code-1]);
- else
- printer(arg, " code=0x%x", code);
- printer(arg, " id=0x%x", id);
- len -= HEADERLEN;
- switch (code) {
- case CONFREQ:
- case CONFACK:
- case CONFNAK:
- case CONFREJ:
- /* print option list */
- while (len >= 2) {
- GETCHAR(code, p);
- GETCHAR(olen, p);
- p -= 2;
- if (olen < 2 || olen > len) {
- break;
- }
- printer(arg, " <");
- len -= olen;
- optend = p + olen;
- switch (code) {
- case CI_COMPRESSTYPE:
- if (olen >= CILEN_COMPRESS) {
- p += 2;
- GETSHORT(cishort, p);
- printer(arg, "compress ");
- printer(arg, "0x%x", cishort);
- }
- break;
- case CI_IFACEID:
- if (olen == CILEN_IFACEID) {
- p += 2;
- eui64_get(ifaceid, p);
- printer(arg, "addr %s", llv6_ntoa(ifaceid));
- }
- break;
- }
- while (p < optend) {
- GETCHAR(code, p);
- printer(arg, " %.2x", code);
- }
- printer(arg, ">");
- }
- break;
-
- case TERMACK:
- case TERMREQ:
- if (len > 0 && *p >= ' ' && *p < 0x7f) {
- printer(arg, " ");
- print_string((char *)p, len, printer, arg);
- p += len;
- len = 0;
- }
- break;
- }
-
- /* print the rest of the bytes in the packet */
- for (; len > 0; --len) {
- GETCHAR(code, p);
- printer(arg, " %.2x", code);
- }
-
- return p - pstart;
-}
-
-/*
- * ipv6_active_pkt - see if this IP packet is worth bringing the link up for.
- * We don't bring the link up for IP fragments or for TCP FIN packets
- * with no data.
- */
-#define IP6_HDRLEN 40 /* bytes */
-#define IP6_NHDR_FRAG 44 /* fragment IPv6 header */
-#define IPPROTO_TCP 6
-#define TCP_HDRLEN 20
-#define TH_FIN 0x01
-
-/*
- * We use these macros because the IP header may be at an odd address,
- * and some compilers might use word loads to get th_off or ip_hl.
- */
-
-#define get_ip6nh(x) (((unsigned char *)(x))[6])
-#define get_tcpoff(x) (((unsigned char *)(x))[12] >> 4)
-#define get_tcpflags(x) (((unsigned char *)(x))[13])
-
-static int
-ipv6_active_pkt(pkt, len)
- u_char *pkt;
- int len;
-{
- u_char *tcp;
-
- len -= PPP_HDRLEN;
- pkt += PPP_HDRLEN;
- if (len < IP6_HDRLEN)
- return 0;
- if (get_ip6nh(pkt) == IP6_NHDR_FRAG)
- return 0;
- if (get_ip6nh(pkt) != IPPROTO_TCP)
- return 1;
- if (len < IP6_HDRLEN + TCP_HDRLEN)
- return 0;
- tcp = pkt + IP6_HDRLEN;
- if ((get_tcpflags(tcp) & TH_FIN) != 0 && len == IP6_HDRLEN + get_tcpoff(tcp) * 4)
- return 0;
- return 1;
-}
diff --git a/mdk-stage1/ppp/pppd/ipv6cp.h b/mdk-stage1/ppp/pppd/ipv6cp.h
deleted file mode 100644
index c98d80209..000000000
--- a/mdk-stage1/ppp/pppd/ipv6cp.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- ipv6cp.h - PPP IPV6 Control Protocol.
- Copyright (C) 1999 Tommi Komulainen <Tommi.Komulainen@iki.fi>
-
- Redistribution and use in source and binary forms are permitted
- provided that the above copyright notice and this paragraph are
- duplicated in all such forms. The name of the author may not be
- used to endorse or promote products derived from this software
- without specific prior written permission.
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-*/
-
-/* Original version, based on RFC2023 :
-
- Copyright (c) 1995, 1996, 1997 Francis.Dupont@inria.fr, INRIA Rocquencourt,
- Alain.Durand@imag.fr, IMAG,
- Jean-Luc.Richier@imag.fr, IMAG-LSR.
-
- Copyright (c) 1998, 1999 Francis.Dupont@inria.fr, GIE DYADE,
- Alain.Durand@imag.fr, IMAG,
- Jean-Luc.Richier@imag.fr, IMAG-LSR.
-
- Ce travail a été fait au sein du GIE DYADE (Groupement d'Intérêt
- Économique ayant pour membres BULL S.A. et l'INRIA).
-
- Ce logiciel informatique est disponible aux conditions
- usuelles dans la recherche, c'est-à-dire qu'il peut
- être utilisé, copié, modifié, distribué à l'unique
- condition que ce texte soit conservé afin que
- l'origine de ce logiciel soit reconnue.
-
- Le nom de l'Institut National de Recherche en Informatique
- et en Automatique (INRIA), de l'IMAG, ou d'une personne morale
- ou physique ayant participé à l'élaboration de ce logiciel ne peut
- être utilisé sans son accord préalable explicite.
-
- Ce logiciel est fourni tel quel sans aucune garantie,
- support ou responsabilité d'aucune sorte.
- Ce logiciel est dérivé de sources d'origine
- "University of California at Berkeley" et
- "Digital Equipment Corporation" couvertes par des copyrights.
-
- L'Institut d'Informatique et de Mathématiques Appliquées de Grenoble (IMAG)
- est une fédération d'unités mixtes de recherche du CNRS, de l'Institut National
- Polytechnique de Grenoble et de l'Université Joseph Fourier regroupant
- sept laboratoires dont le laboratoire Logiciels, Systèmes, Réseaux (LSR).
-
- This work has been done in the context of GIE DYADE (joint R & D venture
- between BULL S.A. and INRIA).
-
- This software is available with usual "research" terms
- with the aim of retain credits of the software.
- Permission to use, copy, modify and distribute this software for any
- purpose and without fee is hereby granted, provided that the above
- copyright notice and this permission notice appear in all copies,
- and the name of INRIA, IMAG, or any contributor not be used in advertising
- or publicity pertaining to this material without the prior explicit
- permission. The software is provided "as is" without any
- warranties, support or liabilities of any kind.
- This software is derived from source code from
- "University of California at Berkeley" and
- "Digital Equipment Corporation" protected by copyrights.
-
- Grenoble's Institute of Computer Science and Applied Mathematics (IMAG)
- is a federation of seven research units funded by the CNRS, National
- Polytechnic Institute of Grenoble and University Joseph Fourier.
- The research unit in Software, Systems, Networks (LSR) is member of IMAG.
-*/
-
-/*
- * Derived from :
- *
- *
- * ipcp.h - IP Control Protocol definitions.
- *
- * Copyright (c) 1989 Carnegie Mellon University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Carnegie Mellon University. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Id$
- */
-
-/*
- * Options.
- */
-#define CI_IFACEID 1 /* Interface Identifier */
-#define CI_COMPRESSTYPE 2 /* Compression Type */
-
-/* No compression types yet defined.
- *#define IPV6CP_COMP 0x004f
- */
-typedef struct ipv6cp_options {
- int neg_ifaceid; /* Negotiate interface identifier? */
- int req_ifaceid; /* Ask peer to send interface identifier? */
- int accept_local; /* accept peer's value for iface id? */
- int opt_local; /* ourtoken set by option */
- int opt_remote; /* histoken set by option */
- int use_ip; /* use IP as interface identifier */
-#if defined(SOL2)
- int use_persistent; /* use uniquely persistent value for address */
-#endif /* defined(SOL2) */
- int neg_vj; /* Van Jacobson Compression? */
- u_short vj_protocol; /* protocol value to use in VJ option */
- eui64_t ourid, hisid; /* Interface identifiers */
-} ipv6cp_options;
-
-extern fsm ipv6cp_fsm[];
-extern ipv6cp_options ipv6cp_wantoptions[];
-extern ipv6cp_options ipv6cp_gotoptions[];
-extern ipv6cp_options ipv6cp_allowoptions[];
-extern ipv6cp_options ipv6cp_hisoptions[];
-
-extern struct protent ipv6cp_protent;
diff --git a/mdk-stage1/ppp/pppd/ipxcp.c b/mdk-stage1/ppp/pppd/ipxcp.c
deleted file mode 100644
index f9a12b934..000000000
--- a/mdk-stage1/ppp/pppd/ipxcp.c
+++ /dev/null
@@ -1,1570 +0,0 @@
-/*
- * ipxcp.c - PPP IPX Control Protocol.
- *
- * Copyright (c) 1989 Carnegie Mellon University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Carnegie Mellon University. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#ifdef IPX_CHANGE
-
-#define RCSID "$Id$"
-
-/*
- * TODO:
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-
-#include "pppd.h"
-#include "fsm.h"
-#include "ipxcp.h"
-#include "pathnames.h"
-#include "magic.h"
-
-static const char rcsid[] = RCSID;
-
-/* global vars */
-ipxcp_options ipxcp_wantoptions[NUM_PPP]; /* Options that we want to request */
-ipxcp_options ipxcp_gotoptions[NUM_PPP]; /* Options that peer ack'd */
-ipxcp_options ipxcp_allowoptions[NUM_PPP]; /* Options we allow peer to request */
-ipxcp_options ipxcp_hisoptions[NUM_PPP]; /* Options that we ack'd */
-
-#define wo (&ipxcp_wantoptions[0])
-#define ao (&ipxcp_allowoptions[0])
-#define go (&ipxcp_gotoptions[0])
-#define ho (&ipxcp_hisoptions[0])
-
-/*
- * Callbacks for fsm code. (CI = Configuration Information)
- */
-static void ipxcp_resetci __P((fsm *)); /* Reset our CI */
-static int ipxcp_cilen __P((fsm *)); /* Return length of our CI */
-static void ipxcp_addci __P((fsm *, u_char *, int *)); /* Add our CI */
-static int ipxcp_ackci __P((fsm *, u_char *, int)); /* Peer ack'd our CI */
-static int ipxcp_nakci __P((fsm *, u_char *, int)); /* Peer nak'd our CI */
-static int ipxcp_rejci __P((fsm *, u_char *, int)); /* Peer rej'd our CI */
-static int ipxcp_reqci __P((fsm *, u_char *, int *, int)); /* Rcv CI */
-static void ipxcp_up __P((fsm *)); /* We're UP */
-static void ipxcp_down __P((fsm *)); /* We're DOWN */
-static void ipxcp_finished __P((fsm *)); /* Don't need lower layer */
-static void ipxcp_script __P((fsm *, char *)); /* Run an up/down script */
-
-fsm ipxcp_fsm[NUM_PPP]; /* IPXCP fsm structure */
-
-static fsm_callbacks ipxcp_callbacks = { /* IPXCP callback routines */
- ipxcp_resetci, /* Reset our Configuration Information */
- ipxcp_cilen, /* Length of our Configuration Information */
- ipxcp_addci, /* Add our Configuration Information */
- ipxcp_ackci, /* ACK our Configuration Information */
- ipxcp_nakci, /* NAK our Configuration Information */
- ipxcp_rejci, /* Reject our Configuration Information */
- ipxcp_reqci, /* Request peer's Configuration Information */
- ipxcp_up, /* Called when fsm reaches OPENED state */
- ipxcp_down, /* Called when fsm leaves OPENED state */
- NULL, /* Called when we want the lower layer up */
- ipxcp_finished, /* Called when we want the lower layer down */
- NULL, /* Called when Protocol-Reject received */
- NULL, /* Retransmission is necessary */
- NULL, /* Called to handle protocol-specific codes */
- "IPXCP" /* String name of protocol */
-};
-
-/*
- * Command-line options.
- */
-static int setipxnode __P((char **));
-static void printipxnode __P((option_t *,
- void (*)(void *, char *, ...), void *));
-static int setipxname __P((char **));
-
-static option_t ipxcp_option_list[] = {
- { "ipx", o_bool, &ipxcp_protent.enabled_flag,
- "Enable IPXCP (and IPX)", OPT_PRIO | 1 },
- { "+ipx", o_bool, &ipxcp_protent.enabled_flag,
- "Enable IPXCP (and IPX)", OPT_PRIOSUB | OPT_ALIAS | 1 },
- { "noipx", o_bool, &ipxcp_protent.enabled_flag,
- "Disable IPXCP (and IPX)", OPT_PRIOSUB },
- { "-ipx", o_bool, &ipxcp_protent.enabled_flag,
- "Disable IPXCP (and IPX)", OPT_PRIOSUB | OPT_ALIAS },
-
- { "ipx-network", o_uint32, &ipxcp_wantoptions[0].our_network,
- "Set our IPX network number", OPT_PRIO, &ipxcp_wantoptions[0].neg_nn },
-
- { "ipxcp-accept-network", o_bool, &ipxcp_wantoptions[0].accept_network,
- "Accept peer IPX network number", 1,
- &ipxcp_allowoptions[0].accept_network },
-
- { "ipx-node", o_special, (void *)setipxnode,
- "Set IPX node number", OPT_A2PRINTER, (void *)printipxnode },
-
- { "ipxcp-accept-local", o_bool, &ipxcp_wantoptions[0].accept_local,
- "Accept our IPX address", 1,
- &ipxcp_allowoptions[0].accept_local },
-
- { "ipxcp-accept-remote", o_bool, &ipxcp_wantoptions[0].accept_remote,
- "Accept peer's IPX address", 1,
- &ipxcp_allowoptions[0].accept_remote },
-
- { "ipx-routing", o_int, &ipxcp_wantoptions[0].router,
- "Set IPX routing proto number", OPT_PRIO,
- &ipxcp_wantoptions[0].neg_router },
-
- { "ipx-router-name", o_special, setipxname,
- "Set IPX router name", OPT_PRIO | OPT_A2STRVAL | OPT_STATIC,
- &ipxcp_wantoptions[0].name },
-
- { "ipxcp-restart", o_int, &ipxcp_fsm[0].timeouttime,
- "Set timeout for IPXCP", OPT_PRIO },
- { "ipxcp-max-terminate", o_int, &ipxcp_fsm[0].maxtermtransmits,
- "Set max #xmits for IPXCP term-reqs", OPT_PRIO },
- { "ipxcp-max-configure", o_int, &ipxcp_fsm[0].maxconfreqtransmits,
- "Set max #xmits for IPXCP conf-reqs", OPT_PRIO },
- { "ipxcp-max-failure", o_int, &ipxcp_fsm[0].maxnakloops,
- "Set max #conf-naks for IPXCP", OPT_PRIO },
-
- { NULL }
-};
-
-/*
- * Protocol entry points.
- */
-
-static void ipxcp_init __P((int));
-static void ipxcp_open __P((int));
-static void ipxcp_close __P((int, char *));
-static void ipxcp_lowerup __P((int));
-static void ipxcp_lowerdown __P((int));
-static void ipxcp_input __P((int, u_char *, int));
-static void ipxcp_protrej __P((int));
-static int ipxcp_printpkt __P((u_char *, int,
- void (*) __P((void *, char *, ...)), void *));
-
-struct protent ipxcp_protent = {
- PPP_IPXCP,
- ipxcp_init,
- ipxcp_input,
- ipxcp_protrej,
- ipxcp_lowerup,
- ipxcp_lowerdown,
- ipxcp_open,
- ipxcp_close,
- ipxcp_printpkt,
- NULL,
- 0,
- "IPXCP",
- "IPX",
- ipxcp_option_list,
- NULL,
- NULL,
- NULL
-};
-
-/*
- * Lengths of configuration options.
- */
-
-#define CILEN_VOID 2
-#define CILEN_COMPLETE 2 /* length of complete option */
-#define CILEN_NETN 6 /* network number length option */
-#define CILEN_NODEN 8 /* node number length option */
-#define CILEN_PROTOCOL 4 /* Minimum length of routing protocol */
-#define CILEN_NAME 3 /* Minimum length of router name */
-#define CILEN_COMPRESS 4 /* Minimum length of compression protocol */
-
-#define CODENAME(x) ((x) == CONFACK ? "ACK" : \
- (x) == CONFNAK ? "NAK" : "REJ")
-
-static int ipxcp_is_up;
-
-static char *ipx_ntoa __P((u_int32_t));
-
-/* Used in printing the node number */
-#define NODE(base) base[0], base[1], base[2], base[3], base[4], base[5]
-
-/* Used to generate the proper bit mask */
-#define BIT(num) (1 << (num))
-
-/*
- * Convert from internal to external notation
- */
-
-static short int
-to_external(internal)
-short int internal;
-{
- short int external;
-
- if (internal & BIT(IPX_NONE) )
- external = IPX_NONE;
- else
- external = RIP_SAP;
-
- return external;
-}
-
-/*
- * Make a string representation of a network IP address.
- */
-
-static char *
-ipx_ntoa(ipxaddr)
-u_int32_t ipxaddr;
-{
- static char b[64];
- slprintf(b, sizeof(b), "%x", ipxaddr);
- return b;
-}
-
-
-static u_char *
-setipxnodevalue(src,dst)
-u_char *src, *dst;
-{
- int indx;
- int item;
-
- for (;;) {
- if (!isxdigit (*src))
- break;
-
- for (indx = 0; indx < 5; ++indx) {
- dst[indx] <<= 4;
- dst[indx] |= (dst[indx + 1] >> 4) & 0x0F;
- }
-
- item = toupper (*src) - '0';
- if (item > 9)
- item -= 7;
-
- dst[5] = (dst[5] << 4) | item;
- ++src;
- }
- return src;
-}
-
-static int ipx_prio_our, ipx_prio_his;
-
-static int
-setipxnode(argv)
- char **argv;
-{
- char *end;
- int have_his = 0;
- u_char our_node[6];
- u_char his_node[6];
-
- memset (our_node, 0, 6);
- memset (his_node, 0, 6);
-
- end = setipxnodevalue (*argv, our_node);
- if (*end == ':') {
- have_his = 1;
- end = setipxnodevalue (++end, his_node);
- }
-
- if (*end == '\0') {
- ipxcp_wantoptions[0].neg_node = 1;
- if (option_priority >= ipx_prio_our) {
- memcpy(&ipxcp_wantoptions[0].our_node[0], our_node, 6);
- ipx_prio_our = option_priority;
- }
- if (have_his && option_priority >= ipx_prio_his) {
- memcpy(&ipxcp_wantoptions[0].his_node[0], his_node, 6);
- ipx_prio_his = option_priority;
- }
- return 1;
- }
-
- option_error("invalid parameter '%s' for ipx-node option", *argv);
- return 0;
-}
-
-static void
-printipxnode(opt, printer, arg)
- option_t *opt;
- void (*printer) __P((void *, char *, ...));
- void *arg;
-{
- unsigned char *p;
-
- p = ipxcp_wantoptions[0].our_node;
- if (ipx_prio_our)
- printer(arg, "%.2x%.2x%.2x%.2x%.2x%.2x",
- p[0], p[1], p[2], p[3], p[4], p[5]);
- printer(arg, ":");
- p = ipxcp_wantoptions[0].his_node;
- if (ipx_prio_his)
- printer(arg, "%.2x%.2x%.2x%.2x%.2x%.2x",
- p[0], p[1], p[2], p[3], p[4], p[5]);
-}
-
-static int
-setipxname (argv)
- char **argv;
-{
- char *dest = ipxcp_wantoptions[0].name;
- char *src = *argv;
- int count;
- char ch;
-
- ipxcp_wantoptions[0].neg_name = 1;
- ipxcp_allowoptions[0].neg_name = 1;
- memset (dest, '\0', sizeof (ipxcp_wantoptions[0].name));
-
- count = 0;
- while (*src) {
- ch = *src++;
- if (! isalnum (ch) && ch != '_') {
- option_error("IPX router name must be alphanumeric or _");
- return 0;
- }
-
- if (count >= sizeof (ipxcp_wantoptions[0].name) - 1) {
- option_error("IPX router name is limited to %d characters",
- sizeof (ipxcp_wantoptions[0].name) - 1);
- return 0;
- }
-
- dest[count++] = toupper (ch);
- }
- dest[count] = 0;
-
- return 1;
-}
-
-/*
- * ipxcp_init - Initialize IPXCP.
- */
-static void
-ipxcp_init(unit)
- int unit;
-{
- fsm *f = &ipxcp_fsm[unit];
-
- f->unit = unit;
- f->protocol = PPP_IPXCP;
- f->callbacks = &ipxcp_callbacks;
- fsm_init(&ipxcp_fsm[unit]);
-
- memset (wo->name, 0, sizeof (wo->name));
- memset (wo->our_node, 0, sizeof (wo->our_node));
- memset (wo->his_node, 0, sizeof (wo->his_node));
-
- wo->neg_nn = 1;
- wo->neg_complete = 1;
- wo->network = 0;
-
- ao->neg_node = 1;
- ao->neg_nn = 1;
- ao->neg_name = 1;
- ao->neg_complete = 1;
- ao->neg_router = 1;
-
- ao->accept_local = 0;
- ao->accept_remote = 0;
- ao->accept_network = 0;
-
- wo->tried_rip = 0;
- wo->tried_nlsp = 0;
-}
-
-/*
- * Copy the node number
- */
-
-static void
-copy_node (src, dst)
-u_char *src, *dst;
-{
- memcpy (dst, src, sizeof (ipxcp_wantoptions[0].our_node));
-}
-
-/*
- * Compare node numbers
- */
-
-static int
-compare_node (src, dst)
-u_char *src, *dst;
-{
- return memcmp (dst, src, sizeof (ipxcp_wantoptions[0].our_node)) == 0;
-}
-
-/*
- * Is the node number zero?
- */
-
-static int
-zero_node (node)
-u_char *node;
-{
- int indx;
- for (indx = 0; indx < sizeof (ipxcp_wantoptions[0].our_node); ++indx)
- if (node [indx] != 0)
- return 0;
- return 1;
-}
-
-/*
- * Increment the node number
- */
-
-static void
-inc_node (node)
-u_char *node;
-{
- u_char *outp;
- u_int32_t magic_num;
-
- outp = node;
- magic_num = magic();
- *outp++ = '\0';
- *outp++ = '\0';
- PUTLONG (magic_num, outp);
-}
-
-/*
- * ipxcp_open - IPXCP is allowed to come up.
- */
-static void
-ipxcp_open(unit)
- int unit;
-{
- fsm_open(&ipxcp_fsm[unit]);
-}
-
-/*
- * ipxcp_close - Take IPXCP down.
- */
-static void
-ipxcp_close(unit, reason)
- int unit;
- char *reason;
-{
- fsm_close(&ipxcp_fsm[unit], reason);
-}
-
-
-/*
- * ipxcp_lowerup - The lower layer is up.
- */
-static void
-ipxcp_lowerup(unit)
- int unit;
-{
- fsm_lowerup(&ipxcp_fsm[unit]);
-}
-
-
-/*
- * ipxcp_lowerdown - The lower layer is down.
- */
-static void
-ipxcp_lowerdown(unit)
- int unit;
-{
- fsm_lowerdown(&ipxcp_fsm[unit]);
-}
-
-
-/*
- * ipxcp_input - Input IPXCP packet.
- */
-static void
-ipxcp_input(unit, p, len)
- int unit;
- u_char *p;
- int len;
-{
- fsm_input(&ipxcp_fsm[unit], p, len);
-}
-
-
-/*
- * ipxcp_protrej - A Protocol-Reject was received for IPXCP.
- *
- * Pretend the lower layer went down, so we shut up.
- */
-static void
-ipxcp_protrej(unit)
- int unit;
-{
- fsm_lowerdown(&ipxcp_fsm[unit]);
-}
-
-
-/*
- * ipxcp_resetci - Reset our CI.
- */
-static void
-ipxcp_resetci(f)
- fsm *f;
-{
- wo->req_node = wo->neg_node && ao->neg_node;
- wo->req_nn = wo->neg_nn && ao->neg_nn;
-
- if (wo->our_network == 0) {
- wo->neg_node = 1;
- ao->accept_network = 1;
- }
-/*
- * If our node number is zero then change it.
- */
- if (zero_node (wo->our_node)) {
- inc_node (wo->our_node);
- ao->accept_local = 1;
- wo->neg_node = 1;
- }
-/*
- * If his node number is zero then change it.
- */
- if (zero_node (wo->his_node)) {
- inc_node (wo->his_node);
- ao->accept_remote = 1;
- }
-/*
- * If no routing agent was specified then we do RIP/SAP according to the
- * RFC documents. If you have specified something then OK. Otherwise, we
- * do RIP/SAP.
- */
- if (ao->router == 0) {
- ao->router |= BIT(RIP_SAP);
- wo->router |= BIT(RIP_SAP);
- }
-
- /* Always specify a routing protocol unless it was REJected. */
- wo->neg_router = 1;
-/*
- * Start with these default values
- */
- *go = *wo;
-}
-
-/*
- * ipxcp_cilen - Return length of our CI.
- */
-
-static int
-ipxcp_cilen(f)
- fsm *f;
-{
- int len;
-
- len = go->neg_nn ? CILEN_NETN : 0;
- len += go->neg_node ? CILEN_NODEN : 0;
- len += go->neg_name ? CILEN_NAME + strlen (go->name) - 1 : 0;
-
- /* RFC says that defaults should not be included. */
- if (go->neg_router && to_external(go->router) != RIP_SAP)
- len += CILEN_PROTOCOL;
-
- return (len);
-}
-
-
-/*
- * ipxcp_addci - Add our desired CIs to a packet.
- */
-static void
-ipxcp_addci(f, ucp, lenp)
- fsm *f;
- u_char *ucp;
- int *lenp;
-{
-/*
- * Add the options to the record.
- */
- if (go->neg_nn) {
- PUTCHAR (IPX_NETWORK_NUMBER, ucp);
- PUTCHAR (CILEN_NETN, ucp);
- PUTLONG (go->our_network, ucp);
- }
-
- if (go->neg_node) {
- int indx;
- PUTCHAR (IPX_NODE_NUMBER, ucp);
- PUTCHAR (CILEN_NODEN, ucp);
- for (indx = 0; indx < sizeof (go->our_node); ++indx)
- PUTCHAR (go->our_node[indx], ucp);
- }
-
- if (go->neg_name) {
- int cilen = strlen (go->name);
- int indx;
- PUTCHAR (IPX_ROUTER_NAME, ucp);
- PUTCHAR (CILEN_NAME + cilen - 1, ucp);
- for (indx = 0; indx < cilen; ++indx)
- PUTCHAR (go->name [indx], ucp);
- }
-
- if (go->neg_router) {
- short external = to_external (go->router);
- if (external != RIP_SAP) {
- PUTCHAR (IPX_ROUTER_PROTOCOL, ucp);
- PUTCHAR (CILEN_PROTOCOL, ucp);
- PUTSHORT (external, ucp);
- }
- }
-}
-
-/*
- * ipxcp_ackci - Ack our CIs.
- *
- * Returns:
- * 0 - Ack was bad.
- * 1 - Ack was good.
- */
-static int
-ipxcp_ackci(f, p, len)
- fsm *f;
- u_char *p;
- int len;
-{
- u_short cilen, citype, cishort;
- u_char cichar;
- u_int32_t cilong;
-
-#define ACKCIVOID(opt, neg) \
- if (neg) { \
- if ((len -= CILEN_VOID) < 0) \
- break; \
- GETCHAR(citype, p); \
- GETCHAR(cilen, p); \
- if (cilen != CILEN_VOID || \
- citype != opt) \
- break; \
- }
-
-#define ACKCICOMPLETE(opt,neg) ACKCIVOID(opt, neg)
-
-#define ACKCICHARS(opt, neg, val, cnt) \
- if (neg) { \
- int indx, count = cnt; \
- len -= (count + 2); \
- if (len < 0) \
- break; \
- GETCHAR(citype, p); \
- GETCHAR(cilen, p); \
- if (cilen != (count + 2) || \
- citype != opt) \
- break; \
- for (indx = 0; indx < count; ++indx) {\
- GETCHAR(cichar, p); \
- if (cichar != ((u_char *) &val)[indx]) \
- break; \
- }\
- if (indx != count) \
- break; \
- }
-
-#define ACKCINODE(opt,neg,val) ACKCICHARS(opt,neg,val,sizeof(val))
-#define ACKCINAME(opt,neg,val) ACKCICHARS(opt,neg,val,strlen(val))
-
-#define ACKCINETWORK(opt, neg, val) \
- if (neg) { \
- if ((len -= CILEN_NETN) < 0) \
- break; \
- GETCHAR(citype, p); \
- GETCHAR(cilen, p); \
- if (cilen != CILEN_NETN || \
- citype != opt) \
- break; \
- GETLONG(cilong, p); \
- if (cilong != val) \
- break; \
- }
-
-#define ACKCIPROTO(opt, neg, val) \
- if (neg) { \
- if (len < 2) \
- break; \
- GETCHAR(citype, p); \
- GETCHAR(cilen, p); \
- if (cilen != CILEN_PROTOCOL || citype != opt) \
- break; \
- len -= cilen; \
- if (len < 0) \
- break; \
- GETSHORT(cishort, p); \
- if (cishort != to_external (val) || cishort == RIP_SAP) \
- break; \
- }
-/*
- * Process the ACK frame in the order in which the frame was assembled
- */
- do {
- ACKCINETWORK (IPX_NETWORK_NUMBER, go->neg_nn, go->our_network);
- ACKCINODE (IPX_NODE_NUMBER, go->neg_node, go->our_node);
- ACKCINAME (IPX_ROUTER_NAME, go->neg_name, go->name);
- if (len > 0)
- ACKCIPROTO (IPX_ROUTER_PROTOCOL, go->neg_router, go->router);
-/*
- * This is the end of the record.
- */
- if (len == 0)
- return (1);
- } while (0);
-/*
- * The frame is invalid
- */
- IPXCPDEBUG(("ipxcp_ackci: received bad Ack!"));
- return (0);
-}
-
-/*
- * ipxcp_nakci - Peer has sent a NAK for some of our CIs.
- * This should not modify any state if the Nak is bad
- * or if IPXCP is in the OPENED state.
- *
- * Returns:
- * 0 - Nak was bad.
- * 1 - Nak was good.
- */
-
-static int
-ipxcp_nakci(f, p, len)
- fsm *f;
- u_char *p;
- int len;
-{
- u_char citype, cilen, *next;
- u_short s;
- u_int32_t l;
- ipxcp_options no; /* options we've seen Naks for */
- ipxcp_options try; /* options to request next time */
-
- BZERO(&no, sizeof(no));
- try = *go;
-
- while (len > CILEN_VOID) {
- GETCHAR (citype, p);
- GETCHAR (cilen, p);
- len -= cilen;
- if (len < 0)
- goto bad;
- next = &p [cilen - CILEN_VOID];
-
- switch (citype) {
- case IPX_NETWORK_NUMBER:
- if (!go->neg_nn || no.neg_nn || (cilen != CILEN_NETN))
- goto bad;
- no.neg_nn = 1;
-
- GETLONG(l, p);
- if (l && ao->accept_network)
- try.our_network = l;
- break;
-
- case IPX_NODE_NUMBER:
- if (!go->neg_node || no.neg_node || (cilen != CILEN_NODEN))
- goto bad;
- no.neg_node = 1;
-
- if (!zero_node (p) && ao->accept_local &&
- ! compare_node (p, ho->his_node))
- copy_node (p, try.our_node);
- break;
-
- /* This has never been sent. Ignore the NAK frame */
- case IPX_COMPRESSION_PROTOCOL:
- goto bad;
-
- case IPX_ROUTER_PROTOCOL:
- if (!go->neg_router || (cilen < CILEN_PROTOCOL))
- goto bad;
-
- GETSHORT (s, p);
- if (s > 15) /* This is just bad, but ignore for now. */
- break;
-
- s = BIT(s);
- if (no.router & s) /* duplicate NAKs are always bad */
- goto bad;
-
- if (no.router == 0) /* Reset on first NAK only */
- try.router = 0;
-
- no.router |= s;
- try.router |= s;
- try.neg_router = 1;
- break;
-
- /* These, according to the RFC, must never be NAKed. */
- case IPX_ROUTER_NAME:
- case IPX_COMPLETE:
- goto bad;
-
- /* These are for options which we have not seen. */
- default:
- break;
- }
- p = next;
- }
-
- /*
- * Do not permit the peer to force a router protocol which we do not
- * support. However, default to the condition that will accept "NONE".
- */
- try.router &= (ao->router | BIT(IPX_NONE));
- if (try.router == 0 && ao->router != 0)
- try.router = BIT(IPX_NONE);
-
- if (try.router != 0)
- try.neg_router = 1;
-
- /*
- * OK, the Nak is good. Now we can update state.
- * If there are any options left, we ignore them.
- */
- if (f->state != OPENED)
- *go = try;
-
- return 1;
-
-bad:
- IPXCPDEBUG(("ipxcp_nakci: received bad Nak!"));
- return 0;
-}
-
-/*
- * ipxcp_rejci - Reject some of our CIs.
- */
-static int
-ipxcp_rejci(f, p, len)
- fsm *f;
- u_char *p;
- int len;
-{
- u_short cilen, citype, cishort;
- u_char cichar;
- u_int32_t cilong;
- ipxcp_options try; /* options to request next time */
-
-#define REJCINETWORK(opt, neg, val) \
- if (neg && p[0] == opt) { \
- if ((len -= CILEN_NETN) < 0) \
- break; \
- GETCHAR(citype, p); \
- GETCHAR(cilen, p); \
- if (cilen != CILEN_NETN || \
- citype != opt) \
- break; \
- GETLONG(cilong, p); \
- if (cilong != val) \
- break; \
- neg = 0; \
- }
-
-#define REJCICHARS(opt, neg, val, cnt) \
- if (neg && p[0] == opt) { \
- int indx, count = cnt; \
- len -= (count + 2); \
- if (len < 0) \
- break; \
- GETCHAR(citype, p); \
- GETCHAR(cilen, p); \
- if (cilen != (count + 2) || \
- citype != opt) \
- break; \
- for (indx = 0; indx < count; ++indx) {\
- GETCHAR(cichar, p); \
- if (cichar != ((u_char *) &val)[indx]) \
- break; \
- }\
- if (indx != count) \
- break; \
- neg = 0; \
- }
-
-#define REJCINODE(opt,neg,val) REJCICHARS(opt,neg,val,sizeof(val))
-#define REJCINAME(opt,neg,val) REJCICHARS(opt,neg,val,strlen(val))
-
-#define REJCIVOID(opt, neg) \
- if (neg && p[0] == opt) { \
- if ((len -= CILEN_VOID) < 0) \
- break; \
- GETCHAR(citype, p); \
- GETCHAR(cilen, p); \
- if (cilen != CILEN_VOID || citype != opt) \
- break; \
- neg = 0; \
- }
-
-/* a reject for RIP/SAP is invalid since we don't send it and you can't
- reject something which is not sent. (You can NAK, but you can't REJ.) */
-#define REJCIPROTO(opt, neg, val, bit) \
- if (neg && p[0] == opt) { \
- if ((len -= CILEN_PROTOCOL) < 0) \
- break; \
- GETCHAR(citype, p); \
- GETCHAR(cilen, p); \
- if (cilen != CILEN_PROTOCOL) \
- break; \
- GETSHORT(cishort, p); \
- if (cishort != to_external (val) || cishort == RIP_SAP) \
- break; \
- neg = 0; \
- }
-/*
- * Any Rejected CIs must be in exactly the same order that we sent.
- * Check packet length and CI length at each step.
- * If we find any deviations, then this packet is bad.
- */
- try = *go;
-
- do {
- REJCINETWORK (IPX_NETWORK_NUMBER, try.neg_nn, try.our_network);
- REJCINODE (IPX_NODE_NUMBER, try.neg_node, try.our_node);
- REJCINAME (IPX_ROUTER_NAME, try.neg_name, try.name);
- REJCIPROTO (IPX_ROUTER_PROTOCOL, try.neg_router, try.router, 0);
-/*
- * This is the end of the record.
- */
- if (len == 0) {
- if (f->state != OPENED)
- *go = try;
- return (1);
- }
- } while (0);
-/*
- * The frame is invalid at this point.
- */
- IPXCPDEBUG(("ipxcp_rejci: received bad Reject!"));
- return 0;
-}
-
-/*
- * ipxcp_reqci - Check the peer's requested CIs and send appropriate response.
- *
- * Returns: CONFACK, CONFNAK or CONFREJ and input packet modified
- * appropriately. If reject_if_disagree is non-zero, doesn't return
- * CONFNAK; returns CONFREJ if it can't return CONFACK.
- */
-static int
-ipxcp_reqci(f, inp, len, reject_if_disagree)
- fsm *f;
- u_char *inp; /* Requested CIs */
- int *len; /* Length of requested CIs */
- int reject_if_disagree;
-{
- u_char *cip, *next; /* Pointer to current and next CIs */
- u_short cilen, citype; /* Parsed len, type */
- u_short cishort; /* Parsed short value */
- u_int32_t cinetwork; /* Parsed address values */
- int rc = CONFACK; /* Final packet return code */
- int orc; /* Individual option return code */
- u_char *p; /* Pointer to next char to parse */
- u_char *ucp = inp; /* Pointer to current output char */
- int l = *len; /* Length left */
-
- /*
- * Reset all his options.
- */
- BZERO(ho, sizeof(*ho));
-
- /*
- * Process all his options.
- */
- next = inp;
- while (l) {
- orc = CONFACK; /* Assume success */
- cip = p = next; /* Remember begining of CI */
- if (l < 2 || /* Not enough data for CI header or */
- p[1] < 2 || /* CI length too small or */
- p[1] > l) { /* CI length too big? */
- IPXCPDEBUG(("ipxcp_reqci: bad CI length!"));
- orc = CONFREJ; /* Reject bad CI */
- cilen = l; /* Reject till end of packet */
- l = 0; /* Don't loop again */
- goto endswitch;
- }
- GETCHAR(citype, p); /* Parse CI type */
- GETCHAR(cilen, p); /* Parse CI length */
- l -= cilen; /* Adjust remaining length */
- next += cilen; /* Step to next CI */
-
- switch (citype) { /* Check CI type */
-/*
- * The network number must match. Choose the larger of the two.
- */
- case IPX_NETWORK_NUMBER:
- /* if we wont negotiate the network number or the length is wrong
- then reject the option */
- if ( !ao->neg_nn || cilen != CILEN_NETN ) {
- orc = CONFREJ;
- break;
- }
- GETLONG(cinetwork, p);
-
- /* If the network numbers match then acknowledge them. */
- if (cinetwork != 0) {
- ho->his_network = cinetwork;
- ho->neg_nn = 1;
- if (wo->our_network == cinetwork)
- break;
-/*
- * If the network number is not given or we don't accept their change or
- * the network number is too small then NAK it.
- */
- if (! ao->accept_network || cinetwork < wo->our_network) {
- DECPTR (sizeof (u_int32_t), p);
- PUTLONG (wo->our_network, p);
- orc = CONFNAK;
- }
- break;
- }
-/*
- * The peer sent '0' for the network. Give it ours if we have one.
- */
- if (go->our_network != 0) {
- DECPTR (sizeof (u_int32_t), p);
- PUTLONG (wo->our_network, p);
- orc = CONFNAK;
-/*
- * We don't have one. Reject the value.
- */
- } else
- orc = CONFREJ;
-
- break;
-/*
- * The node number is required
- */
- case IPX_NODE_NUMBER:
- /* if we wont negotiate the node number or the length is wrong
- then reject the option */
- if ( cilen != CILEN_NODEN ) {
- orc = CONFREJ;
- break;
- }
-
- copy_node (p, ho->his_node);
- ho->neg_node = 1;
-/*
- * If the remote does not have a number and we do then NAK it with the value
- * which we have for it. (We never have a default value of zero.)
- */
- if (zero_node (ho->his_node)) {
- orc = CONFNAK;
- copy_node (wo->his_node, p);
- INCPTR (sizeof (wo->his_node), p);
- break;
- }
-/*
- * If you have given me the expected network node number then I'll accept
- * it now.
- */
- if (compare_node (wo->his_node, ho->his_node)) {
- orc = CONFACK;
- ho->neg_node = 1;
- INCPTR (sizeof (wo->his_node), p);
- break;
- }
-/*
- * If his node number is the same as ours then ask him to try the next
- * value.
- */
- if (compare_node (ho->his_node, go->our_node)) {
- inc_node (ho->his_node);
- orc = CONFNAK;
- copy_node (ho->his_node, p);
- INCPTR (sizeof (wo->his_node), p);
- break;
- }
-/*
- * If we don't accept a new value then NAK it.
- */
- if (! ao->accept_remote) {
- copy_node (wo->his_node, p);
- INCPTR (sizeof (wo->his_node), p);
- orc = CONFNAK;
- break;
- }
- orc = CONFACK;
- ho->neg_node = 1;
- INCPTR (sizeof (wo->his_node), p);
- break;
-/*
- * Compression is not desired at this time. It is always rejected.
- */
- case IPX_COMPRESSION_PROTOCOL:
- orc = CONFREJ;
- break;
-/*
- * The routing protocol is a bitmask of various types. Any combination
- * of the values RIP_SAP and NLSP are permissible. 'IPX_NONE' for no
- * routing protocol must be specified only once.
- */
- case IPX_ROUTER_PROTOCOL:
- if ( !ao->neg_router || cilen < CILEN_PROTOCOL ) {
- orc = CONFREJ;
- break;
- }
-
- GETSHORT (cishort, p);
-
- if (wo->neg_router == 0) {
- wo->neg_router = 1;
- wo->router = BIT(IPX_NONE);
- }
-
- if ((cishort == IPX_NONE && ho->router != 0) ||
- (ho->router & BIT(IPX_NONE))) {
- orc = CONFREJ;
- break;
- }
-
- cishort = BIT(cishort);
- if (ho->router & cishort) {
- orc = CONFREJ;
- break;
- }
-
- ho->router |= cishort;
- ho->neg_router = 1;
-
- /* Finally do not allow a router protocol which we do not
- support. */
-
- if ((cishort & (ao->router | BIT(IPX_NONE))) == 0) {
- int protocol;
-
- if (cishort == BIT(NLSP) &&
- (ao->router & BIT(RIP_SAP)) &&
- !wo->tried_rip) {
- protocol = RIP_SAP;
- wo->tried_rip = 1;
- } else
- protocol = IPX_NONE;
-
- DECPTR (sizeof (u_int16_t), p);
- PUTSHORT (protocol, p);
- orc = CONFNAK;
- }
- break;
-/*
- * The router name is advisorary. Just accept it if it is not too large.
- */
- case IPX_ROUTER_NAME:
- if (cilen >= CILEN_NAME) {
- int name_size = cilen - CILEN_NAME;
- if (name_size > sizeof (ho->name))
- name_size = sizeof (ho->name) - 1;
- memset (ho->name, 0, sizeof (ho->name));
- memcpy (ho->name, p, name_size);
- ho->name [name_size] = '\0';
- ho->neg_name = 1;
- orc = CONFACK;
- break;
- }
- orc = CONFREJ;
- break;
-/*
- * This is advisorary.
- */
- case IPX_COMPLETE:
- if (cilen != CILEN_COMPLETE)
- orc = CONFREJ;
- else {
- ho->neg_complete = 1;
- orc = CONFACK;
- }
- break;
-/*
- * All other entries are not known at this time.
- */
- default:
- orc = CONFREJ;
- break;
- }
-endswitch:
- if (orc == CONFACK && /* Good CI */
- rc != CONFACK) /* but prior CI wasnt? */
- continue; /* Don't send this one */
-
- if (orc == CONFNAK) { /* Nak this CI? */
- if (reject_if_disagree) /* Getting fed up with sending NAKs? */
- orc = CONFREJ; /* Get tough if so */
- if (rc == CONFREJ) /* Rejecting prior CI? */
- continue; /* Don't send this one */
- if (rc == CONFACK) { /* Ack'd all prior CIs? */
- rc = CONFNAK; /* Not anymore... */
- ucp = inp; /* Backup */
- }
- }
-
- if (orc == CONFREJ && /* Reject this CI */
- rc != CONFREJ) { /* but no prior ones? */
- rc = CONFREJ;
- ucp = inp; /* Backup */
- }
-
- /* Need to move CI? */
- if (ucp != cip)
- BCOPY(cip, ucp, cilen); /* Move it */
-
- /* Update output pointer */
- INCPTR(cilen, ucp);
- }
-
- /*
- * If we aren't rejecting this packet, and we want to negotiate
- * their address, and they didn't send their address, then we
- * send a NAK with a IPX_NODE_NUMBER option appended. We assume the
- * input buffer is long enough that we can append the extra
- * option safely.
- */
-
- if (rc != CONFREJ && !ho->neg_node &&
- wo->req_nn && !reject_if_disagree) {
- if (rc == CONFACK) {
- rc = CONFNAK;
- wo->req_nn = 0; /* don't ask again */
- ucp = inp; /* reset pointer */
- }
-
- if (zero_node (wo->his_node))
- inc_node (wo->his_node);
-
- PUTCHAR (IPX_NODE_NUMBER, ucp);
- PUTCHAR (CILEN_NODEN, ucp);
- copy_node (wo->his_node, ucp);
- INCPTR (sizeof (wo->his_node), ucp);
- }
-
- *len = ucp - inp; /* Compute output length */
- IPXCPDEBUG(("ipxcp: returning Configure-%s", CODENAME(rc)));
- return (rc); /* Return final code */
-}
-
-/*
- * ipxcp_up - IPXCP has come UP.
- *
- * Configure the IP network interface appropriately and bring it up.
- */
-
-static void
-ipxcp_up(f)
- fsm *f;
-{
- int unit = f->unit;
-
- IPXCPDEBUG(("ipxcp: up"));
-
- /* The default router protocol is RIP/SAP. */
- if (ho->router == 0)
- ho->router = BIT(RIP_SAP);
-
- if (go->router == 0)
- go->router = BIT(RIP_SAP);
-
- /* Fetch the network number */
- if (!ho->neg_nn)
- ho->his_network = wo->his_network;
-
- if (!ho->neg_node)
- copy_node (wo->his_node, ho->his_node);
-
- if (!wo->neg_node && !go->neg_node)
- copy_node (wo->our_node, go->our_node);
-
- if (zero_node (go->our_node)) {
- static char errmsg[] = "Could not determine local IPX node address";
- if (debug)
- error(errmsg);
- ipxcp_close(f->unit, errmsg);
- return;
- }
-
- go->network = go->our_network;
- if (ho->his_network != 0 && ho->his_network > go->network)
- go->network = ho->his_network;
-
- if (go->network == 0) {
- static char errmsg[] = "Can not determine network number";
- if (debug)
- error(errmsg);
- ipxcp_close (unit, errmsg);
- return;
- }
-
- /* bring the interface up */
- if (!sifup(unit)) {
- if (debug)
- warn("sifup failed (IPX)");
- ipxcp_close(unit, "Interface configuration failed");
- return;
- }
- ipxcp_is_up = 1;
-
- /* set the network number for IPX */
- if (!sipxfaddr(unit, go->network, go->our_node)) {
- if (debug)
- warn("sipxfaddr failed");
- ipxcp_close(unit, "Interface configuration failed");
- return;
- }
-
- np_up(f->unit, PPP_IPX);
-
- /*
- * Execute the ipx-up script, like this:
- * /etc/ppp/ipx-up interface tty speed local-IPX remote-IPX
- */
-
- ipxcp_script (f, _PATH_IPXUP);
-}
-
-/*
- * ipxcp_down - IPXCP has gone DOWN.
- *
- * Take the IP network interface down, clear its addresses
- * and delete routes through it.
- */
-
-static void
-ipxcp_down(f)
- fsm *f;
-{
- IPXCPDEBUG(("ipxcp: down"));
-
- if (!ipxcp_is_up)
- return;
- ipxcp_is_up = 0;
- np_down(f->unit, PPP_IPX);
- cipxfaddr(f->unit);
- sifnpmode(f->unit, PPP_IPX, NPMODE_DROP);
- sifdown(f->unit);
- ipxcp_script (f, _PATH_IPXDOWN);
-}
-
-
-/*
- * ipxcp_finished - possibly shut down the lower layers.
- */
-static void
-ipxcp_finished(f)
- fsm *f;
-{
- np_finished(f->unit, PPP_IPX);
-}
-
-
-/*
- * ipxcp_script - Execute a script with arguments
- * interface-name tty-name speed local-IPX remote-IPX networks.
- */
-static void
-ipxcp_script(f, script)
- fsm *f;
- char *script;
-{
- char strspeed[32], strlocal[32], strremote[32];
- char strnetwork[32], strpid[32];
- char *argv[14], strproto_lcl[32], strproto_rmt[32];
-
- slprintf(strpid, sizeof(strpid), "%d", getpid());
- slprintf(strspeed, sizeof(strspeed),"%d", baud_rate);
-
- strproto_lcl[0] = '\0';
- if (go->neg_router && ((go->router & BIT(IPX_NONE)) == 0)) {
- if (go->router & BIT(RIP_SAP))
- strlcpy (strproto_lcl, "RIP ", sizeof(strproto_lcl));
- if (go->router & BIT(NLSP))
- strlcat (strproto_lcl, "NLSP ", sizeof(strproto_lcl));
- }
-
- if (strproto_lcl[0] == '\0')
- strlcpy (strproto_lcl, "NONE ", sizeof(strproto_lcl));
-
- strproto_lcl[strlen (strproto_lcl)-1] = '\0';
-
- strproto_rmt[0] = '\0';
- if (ho->neg_router && ((ho->router & BIT(IPX_NONE)) == 0)) {
- if (ho->router & BIT(RIP_SAP))
- strlcpy (strproto_rmt, "RIP ", sizeof(strproto_rmt));
- if (ho->router & BIT(NLSP))
- strlcat (strproto_rmt, "NLSP ", sizeof(strproto_rmt));
- }
-
- if (strproto_rmt[0] == '\0')
- strlcpy (strproto_rmt, "NONE ", sizeof(strproto_rmt));
-
- strproto_rmt[strlen (strproto_rmt)-1] = '\0';
-
- strlcpy (strnetwork, ipx_ntoa (go->network), sizeof(strnetwork));
-
- slprintf (strlocal, sizeof(strlocal), "%0.6B", go->our_node);
-
- slprintf (strremote, sizeof(strremote), "%0.6B", ho->his_node);
-
- argv[0] = script;
- argv[1] = ifname;
- argv[2] = devnam;
- argv[3] = strspeed;
- argv[4] = strnetwork;
- argv[5] = strlocal;
- argv[6] = strremote;
- argv[7] = strproto_lcl;
- argv[8] = strproto_rmt;
- argv[9] = go->name;
- argv[10] = ho->name;
- argv[11] = ipparam;
- argv[12] = strpid;
- argv[13] = NULL;
- run_program(script, argv, 0, NULL, NULL);
-}
-
-/*
- * ipxcp_printpkt - print the contents of an IPXCP packet.
- */
-static char *ipxcp_codenames[] = {
- "ConfReq", "ConfAck", "ConfNak", "ConfRej",
- "TermReq", "TermAck", "CodeRej"
-};
-
-static int
-ipxcp_printpkt(p, plen, printer, arg)
- u_char *p;
- int plen;
- void (*printer) __P((void *, char *, ...));
- void *arg;
-{
- int code, id, len, olen;
- u_char *pstart, *optend;
- u_short cishort;
- u_int32_t cilong;
-
- if (plen < HEADERLEN)
- return 0;
- pstart = p;
- GETCHAR(code, p);
- GETCHAR(id, p);
- GETSHORT(len, p);
- if (len < HEADERLEN || len > plen)
- return 0;
-
- if (code >= 1 && code <= sizeof(ipxcp_codenames) / sizeof(char *))
- printer(arg, " %s", ipxcp_codenames[code-1]);
- else
- printer(arg, " code=0x%x", code);
- printer(arg, " id=0x%x", id);
- len -= HEADERLEN;
- switch (code) {
- case CONFREQ:
- case CONFACK:
- case CONFNAK:
- case CONFREJ:
- /* print option list */
- while (len >= 2) {
- GETCHAR(code, p);
- GETCHAR(olen, p);
- p -= 2;
- if (olen < CILEN_VOID || olen > len) {
- break;
- }
- printer(arg, " <");
- len -= olen;
- optend = p + olen;
- switch (code) {
- case IPX_NETWORK_NUMBER:
- if (olen == CILEN_NETN) {
- p += 2;
- GETLONG(cilong, p);
- printer (arg, "network %s", ipx_ntoa (cilong));
- }
- break;
- case IPX_NODE_NUMBER:
- if (olen == CILEN_NODEN) {
- p += 2;
- printer (arg, "node ");
- while (p < optend) {
- GETCHAR(code, p);
- printer(arg, "%.2x", (int) (unsigned int) (unsigned char) code);
- }
- }
- break;
- case IPX_COMPRESSION_PROTOCOL:
- if (olen == CILEN_COMPRESS) {
- p += 2;
- GETSHORT (cishort, p);
- printer (arg, "compression %d", (int) cishort);
- }
- break;
- case IPX_ROUTER_PROTOCOL:
- if (olen == CILEN_PROTOCOL) {
- p += 2;
- GETSHORT (cishort, p);
- printer (arg, "router proto %d", (int) cishort);
- }
- break;
- case IPX_ROUTER_NAME:
- if (olen >= CILEN_NAME) {
- p += 2;
- printer (arg, "router name \"");
- while (p < optend) {
- GETCHAR(code, p);
- if (code >= 0x20 && code <= 0x7E)
- printer (arg, "%c", (int) (unsigned int) (unsigned char) code);
- else
- printer (arg, " \\%.2x", (int) (unsigned int) (unsigned char) code);
- }
- printer (arg, "\"");
- }
- break;
- case IPX_COMPLETE:
- if (olen == CILEN_COMPLETE) {
- p += 2;
- printer (arg, "complete");
- }
- break;
- default:
- break;
- }
-
- while (p < optend) {
- GETCHAR(code, p);
- printer(arg, " %.2x", (int) (unsigned int) (unsigned char) code);
- }
- printer(arg, ">");
- }
- break;
-
- case TERMACK:
- case TERMREQ:
- if (len > 0 && *p >= ' ' && *p < 0x7f) {
- printer(arg, " ");
- print_string(p, len, printer, arg);
- p += len;
- len = 0;
- }
- break;
- }
-
- /* print the rest of the bytes in the packet */
- for (; len > 0; --len) {
- GETCHAR(code, p);
- printer(arg, " %.2x", (int) (unsigned int) (unsigned char) code);
- }
-
- return p - pstart;
-}
-#endif /* ifdef IPX_CHANGE */
diff --git a/mdk-stage1/ppp/pppd/ipxcp.h b/mdk-stage1/ppp/pppd/ipxcp.h
deleted file mode 100644
index 47f680d70..000000000
--- a/mdk-stage1/ppp/pppd/ipxcp.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * ipxcp.h - IPX Control Protocol definitions.
- *
- * Copyright (c) 1989 Carnegie Mellon University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Carnegie Mellon University. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Id$
- */
-
-/*
- * Options.
- */
-#define IPX_NETWORK_NUMBER 1 /* IPX Network Number */
-#define IPX_NODE_NUMBER 2
-#define IPX_COMPRESSION_PROTOCOL 3
-#define IPX_ROUTER_PROTOCOL 4
-#define IPX_ROUTER_NAME 5
-#define IPX_COMPLETE 6
-
-/* Values for the router protocol */
-#define IPX_NONE 0
-#define RIP_SAP 2
-#define NLSP 4
-
-typedef struct ipxcp_options {
- bool neg_node; /* Negotiate IPX node number? */
- bool req_node; /* Ask peer to send IPX node number? */
-
- bool neg_nn; /* Negotiate IPX network number? */
- bool req_nn; /* Ask peer to send IPX network number */
-
- bool neg_name; /* Negotiate IPX router name */
- bool neg_complete; /* Negotiate completion */
- bool neg_router; /* Negotiate IPX router number */
-
- bool accept_local; /* accept peer's value for ournode */
- bool accept_remote; /* accept peer's value for hisnode */
- bool accept_network; /* accept network number */
-
- bool tried_nlsp; /* I have suggested NLSP already */
- bool tried_rip; /* I have suggested RIP/SAP already */
-
- u_int32_t his_network; /* base network number */
- u_int32_t our_network; /* our value for network number */
- u_int32_t network; /* the final network number */
-
- u_char his_node[6]; /* peer's node number */
- u_char our_node[6]; /* our node number */
- u_char name [48]; /* name of the router */
- int router; /* routing protocol */
-} ipxcp_options;
-
-extern fsm ipxcp_fsm[];
-extern ipxcp_options ipxcp_wantoptions[];
-extern ipxcp_options ipxcp_gotoptions[];
-extern ipxcp_options ipxcp_allowoptions[];
-extern ipxcp_options ipxcp_hisoptions[];
-
-extern struct protent ipxcp_protent;
diff --git a/mdk-stage1/ppp/pppd/lcp.c b/mdk-stage1/ppp/pppd/lcp.c
deleted file mode 100644
index 41c58cad5..000000000
--- a/mdk-stage1/ppp/pppd/lcp.c
+++ /dev/null
@@ -1,2224 +0,0 @@
-/*
- * lcp.c - PPP Link Control Protocol.
- *
- * Copyright (c) 1989 Carnegie Mellon University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Carnegie Mellon University. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#define RCSID "$Id$"
-
-/*
- * TODO:
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include "pppd.h"
-#include "fsm.h"
-#include "lcp.h"
-#include "chap.h"
-#include "magic.h"
-
-static const char rcsid[] = RCSID;
-
-/*
- * When the link comes up we want to be able to wait for a short while,
- * or until seeing some input from the peer, before starting to send
- * configure-requests. We do this by delaying the fsm_lowerup call.
- */
-/* steal a bit in fsm flags word */
-#define DELAYED_UP 0x100
-
-static void lcp_delayed_up __P((void *));
-
-/*
- * LCP-related command-line options.
- */
-int lcp_echo_interval = 0; /* Interval between LCP echo-requests */
-int lcp_echo_fails = 0; /* Tolerance to unanswered echo-requests */
-bool lax_recv = 0; /* accept control chars in asyncmap */
-bool noendpoint = 0; /* don't send/accept endpoint discriminator */
-
-static int noopt __P((char **));
-
-#ifdef HAVE_MULTILINK
-static int setendpoint __P((char **));
-static void printendpoint __P((option_t *, void (*)(void *, char *, ...),
- void *));
-#endif /* HAVE_MULTILINK */
-
-static option_t lcp_option_list[] = {
- /* LCP options */
- { "-all", o_special_noarg, (void *)noopt,
- "Don't request/allow any LCP options" },
-
- { "noaccomp", o_bool, &lcp_wantoptions[0].neg_accompression,
- "Disable address/control compression",
- OPT_A2CLR, &lcp_allowoptions[0].neg_accompression },
- { "-ac", o_bool, &lcp_wantoptions[0].neg_accompression,
- "Disable address/control compression",
- OPT_ALIAS | OPT_A2CLR, &lcp_allowoptions[0].neg_accompression },
-
- { "asyncmap", o_uint32, &lcp_wantoptions[0].asyncmap,
- "Set asyncmap (for received packets)",
- OPT_OR, &lcp_wantoptions[0].neg_asyncmap },
- { "-as", o_uint32, &lcp_wantoptions[0].asyncmap,
- "Set asyncmap (for received packets)",
- OPT_ALIAS | OPT_OR, &lcp_wantoptions[0].neg_asyncmap },
- { "default-asyncmap", o_uint32, &lcp_wantoptions[0].asyncmap,
- "Disable asyncmap negotiation",
- OPT_OR | OPT_NOARG | OPT_VAL(~0U) | OPT_A2CLR,
- &lcp_allowoptions[0].neg_asyncmap },
- { "-am", o_uint32, &lcp_wantoptions[0].asyncmap,
- "Disable asyncmap negotiation",
- OPT_ALIAS | OPT_OR | OPT_NOARG | OPT_VAL(~0U) | OPT_A2CLR,
- &lcp_allowoptions[0].neg_asyncmap },
-
- { "nomagic", o_bool, &lcp_wantoptions[0].neg_magicnumber,
- "Disable magic number negotiation (looped-back line detection)",
- OPT_A2CLR, &lcp_allowoptions[0].neg_magicnumber },
- { "-mn", o_bool, &lcp_wantoptions[0].neg_magicnumber,
- "Disable magic number negotiation (looped-back line detection)",
- OPT_ALIAS | OPT_A2CLR, &lcp_allowoptions[0].neg_magicnumber },
-
- { "mru", o_int, &lcp_wantoptions[0].mru,
- "Set MRU (maximum received packet size) for negotiation",
- OPT_PRIO, &lcp_wantoptions[0].neg_mru },
- { "default-mru", o_bool, &lcp_wantoptions[0].neg_mru,
- "Disable MRU negotiation (use default 1500)",
- OPT_PRIOSUB | OPT_A2CLR, &lcp_allowoptions[0].neg_mru },
- { "-mru", o_bool, &lcp_wantoptions[0].neg_mru,
- "Disable MRU negotiation (use default 1500)",
- OPT_ALIAS | OPT_PRIOSUB | OPT_A2CLR, &lcp_allowoptions[0].neg_mru },
-
- { "mtu", o_int, &lcp_allowoptions[0].mru,
- "Set our MTU", OPT_LIMITS, NULL, MAXMRU, MINMRU },
-
- { "nopcomp", o_bool, &lcp_wantoptions[0].neg_pcompression,
- "Disable protocol field compression",
- OPT_A2CLR, &lcp_allowoptions[0].neg_pcompression },
- { "-pc", o_bool, &lcp_wantoptions[0].neg_pcompression,
- "Disable protocol field compression",
- OPT_ALIAS | OPT_A2CLR, &lcp_allowoptions[0].neg_pcompression },
-
- { "passive", o_bool, &lcp_wantoptions[0].passive,
- "Set passive mode", 1 },
- { "-p", o_bool, &lcp_wantoptions[0].passive,
- "Set passive mode", OPT_ALIAS | 1 },
-
- { "silent", o_bool, &lcp_wantoptions[0].silent,
- "Set silent mode", 1 },
-
- { "lcp-echo-failure", o_int, &lcp_echo_fails,
- "Set number of consecutive echo failures to indicate link failure",
- OPT_PRIO },
- { "lcp-echo-interval", o_int, &lcp_echo_interval,
- "Set time in seconds between LCP echo requests", OPT_PRIO },
- { "lcp-restart", o_int, &lcp_fsm[0].timeouttime,
- "Set time in seconds between LCP retransmissions", OPT_PRIO },
- { "lcp-max-terminate", o_int, &lcp_fsm[0].maxtermtransmits,
- "Set maximum number of LCP terminate-request transmissions", OPT_PRIO },
- { "lcp-max-configure", o_int, &lcp_fsm[0].maxconfreqtransmits,
- "Set maximum number of LCP configure-request transmissions", OPT_PRIO },
- { "lcp-max-failure", o_int, &lcp_fsm[0].maxnakloops,
- "Set limit on number of LCP configure-naks", OPT_PRIO },
-
- { "receive-all", o_bool, &lax_recv,
- "Accept all received control characters", 1 },
-
-#ifdef HAVE_MULTILINK
- { "mrru", o_int, &lcp_wantoptions[0].mrru,
- "Maximum received packet size for multilink bundle",
- OPT_PRIO, &lcp_wantoptions[0].neg_mrru },
-
- { "mpshortseq", o_bool, &lcp_wantoptions[0].neg_ssnhf,
- "Use short sequence numbers in multilink headers",
- OPT_PRIO | 1, &lcp_allowoptions[0].neg_ssnhf },
- { "nompshortseq", o_bool, &lcp_wantoptions[0].neg_ssnhf,
- "Don't use short sequence numbers in multilink headers",
- OPT_PRIOSUB | OPT_A2CLR, &lcp_allowoptions[0].neg_ssnhf },
-
- { "endpoint", o_special, (void *) setendpoint,
- "Endpoint discriminator for multilink",
- OPT_PRIO | OPT_A2PRINTER, (void *) printendpoint },
-#endif /* HAVE_MULTILINK */
-
- { "noendpoint", o_bool, &noendpoint,
- "Don't send or accept multilink endpoint discriminator", 1 },
-
- {NULL}
-};
-
-/* global vars */
-fsm lcp_fsm[NUM_PPP]; /* LCP fsm structure (global)*/
-lcp_options lcp_wantoptions[NUM_PPP]; /* Options that we want to request */
-lcp_options lcp_gotoptions[NUM_PPP]; /* Options that peer ack'd */
-lcp_options lcp_allowoptions[NUM_PPP]; /* Options we allow peer to request */
-lcp_options lcp_hisoptions[NUM_PPP]; /* Options that we ack'd */
-
-static int lcp_echos_pending = 0; /* Number of outstanding echo msgs */
-static int lcp_echo_number = 0; /* ID number of next echo frame */
-static int lcp_echo_timer_running = 0; /* set if a timer is running */
-
-static u_char nak_buffer[PPP_MRU]; /* where we construct a nak packet */
-
-/*
- * Callbacks for fsm code. (CI = Configuration Information)
- */
-static void lcp_resetci __P((fsm *)); /* Reset our CI */
-static int lcp_cilen __P((fsm *)); /* Return length of our CI */
-static void lcp_addci __P((fsm *, u_char *, int *)); /* Add our CI to pkt */
-static int lcp_ackci __P((fsm *, u_char *, int)); /* Peer ack'd our CI */
-static int lcp_nakci __P((fsm *, u_char *, int)); /* Peer nak'd our CI */
-static int lcp_rejci __P((fsm *, u_char *, int)); /* Peer rej'd our CI */
-static int lcp_reqci __P((fsm *, u_char *, int *, int)); /* Rcv peer CI */
-static void lcp_up __P((fsm *)); /* We're UP */
-static void lcp_down __P((fsm *)); /* We're DOWN */
-static void lcp_starting __P((fsm *)); /* We need lower layer up */
-static void lcp_finished __P((fsm *)); /* We need lower layer down */
-static int lcp_extcode __P((fsm *, int, int, u_char *, int));
-static void lcp_rprotrej __P((fsm *, u_char *, int));
-
-/*
- * routines to send LCP echos to peer
- */
-
-static void lcp_echo_lowerup __P((int));
-static void lcp_echo_lowerdown __P((int));
-static void LcpEchoTimeout __P((void *));
-static void lcp_received_echo_reply __P((fsm *, int, u_char *, int));
-static void LcpSendEchoRequest __P((fsm *));
-static void LcpLinkFailure __P((fsm *));
-static void LcpEchoCheck __P((fsm *));
-
-static fsm_callbacks lcp_callbacks = { /* LCP callback routines */
- lcp_resetci, /* Reset our Configuration Information */
- lcp_cilen, /* Length of our Configuration Information */
- lcp_addci, /* Add our Configuration Information */
- lcp_ackci, /* ACK our Configuration Information */
- lcp_nakci, /* NAK our Configuration Information */
- lcp_rejci, /* Reject our Configuration Information */
- lcp_reqci, /* Request peer's Configuration Information */
- lcp_up, /* Called when fsm reaches OPENED state */
- lcp_down, /* Called when fsm leaves OPENED state */
- lcp_starting, /* Called when we want the lower layer up */
- lcp_finished, /* Called when we want the lower layer down */
- NULL, /* Called when Protocol-Reject received */
- NULL, /* Retransmission is necessary */
- lcp_extcode, /* Called to handle LCP-specific codes */
- "LCP" /* String name of protocol */
-};
-
-/*
- * Protocol entry points.
- * Some of these are called directly.
- */
-
-static void lcp_init __P((int));
-static void lcp_input __P((int, u_char *, int));
-static void lcp_protrej __P((int));
-static int lcp_printpkt __P((u_char *, int,
- void (*) __P((void *, char *, ...)), void *));
-
-struct protent lcp_protent = {
- PPP_LCP,
- lcp_init,
- lcp_input,
- lcp_protrej,
- lcp_lowerup,
- lcp_lowerdown,
- lcp_open,
- lcp_close,
- lcp_printpkt,
- NULL,
- 1,
- "LCP",
- NULL,
- lcp_option_list,
- NULL,
- NULL,
- NULL
-};
-
-int lcp_loopbackfail = DEFLOOPBACKFAIL;
-
-/*
- * Length of each type of configuration option (in octets)
- */
-#define CILEN_VOID 2
-#define CILEN_CHAR 3
-#define CILEN_SHORT 4 /* CILEN_VOID + 2 */
-#define CILEN_CHAP 5 /* CILEN_VOID + 2 + 1 */
-#define CILEN_LONG 6 /* CILEN_VOID + 4 */
-#define CILEN_LQR 8 /* CILEN_VOID + 2 + 4 */
-#define CILEN_CBCP 3
-
-#define CODENAME(x) ((x) == CONFACK ? "ACK" : \
- (x) == CONFNAK ? "NAK" : "REJ")
-
-/*
- * noopt - Disable all options (why?).
- */
-static int
-noopt(argv)
- char **argv;
-{
- BZERO((char *) &lcp_wantoptions[0], sizeof (struct lcp_options));
- BZERO((char *) &lcp_allowoptions[0], sizeof (struct lcp_options));
-
- return (1);
-}
-
-#ifdef HAVE_MULTILINK
-static int
-setendpoint(argv)
- char **argv;
-{
- if (str_to_epdisc(&lcp_wantoptions[0].endpoint, *argv)) {
- lcp_wantoptions[0].neg_endpoint = 1;
- return 1;
- }
- option_error("Can't parse '%s' as an endpoint discriminator", *argv);
- return 0;
-}
-
-static void
-printendpoint(opt, printer, arg)
- option_t *opt;
- void (*printer) __P((void *, char *, ...));
- void *arg;
-{
- printer(arg, "%s", epdisc_to_str(&lcp_wantoptions[0].endpoint));
-}
-#endif /* HAVE_MULTILINK */
-
-/*
- * lcp_init - Initialize LCP.
- */
-static void
-lcp_init(unit)
- int unit;
-{
- fsm *f = &lcp_fsm[unit];
- lcp_options *wo = &lcp_wantoptions[unit];
- lcp_options *ao = &lcp_allowoptions[unit];
-
- f->unit = unit;
- f->protocol = PPP_LCP;
- f->callbacks = &lcp_callbacks;
-
- fsm_init(f);
-
- BZERO(wo, sizeof(*wo));
- wo->neg_mru = 1;
- wo->mru = DEFMRU;
- wo->neg_asyncmap = 1;
- wo->chap_mdtype = CHAP_DIGEST_MD5;
- wo->neg_magicnumber = 1;
- wo->neg_pcompression = 1;
- wo->neg_accompression = 1;
-
- BZERO(ao, sizeof(*ao));
- ao->neg_mru = 1;
- ao->mru = MAXMRU;
- ao->neg_asyncmap = 1;
- ao->neg_chap = 1;
- ao->chap_mdtype = CHAP_DIGEST_MD5;
- ao->neg_upap = 1;
- ao->neg_magicnumber = 1;
- ao->neg_pcompression = 1;
- ao->neg_accompression = 1;
-#ifdef CBCP_SUPPORT
- ao->neg_cbcp = 1;
-#endif
- ao->neg_endpoint = 1;
-}
-
-
-/*
- * lcp_open - LCP is allowed to come up.
- */
-void
-lcp_open(unit)
- int unit;
-{
- fsm *f = &lcp_fsm[unit];
- lcp_options *wo = &lcp_wantoptions[unit];
-
- f->flags &= ~(OPT_PASSIVE | OPT_SILENT);
- if (wo->passive)
- f->flags |= OPT_PASSIVE;
- if (wo->silent)
- f->flags |= OPT_SILENT;
- fsm_open(f);
-}
-
-
-/*
- * lcp_close - Take LCP down.
- */
-void
-lcp_close(unit, reason)
- int unit;
- char *reason;
-{
- fsm *f = &lcp_fsm[unit];
-
- if (phase != PHASE_DEAD)
- new_phase(PHASE_TERMINATE);
- if (f->state == STOPPED && f->flags & (OPT_PASSIVE|OPT_SILENT)) {
- /*
- * This action is not strictly according to the FSM in RFC1548,
- * but it does mean that the program terminates if you do a
- * lcp_close() in passive/silent mode when a connection hasn't
- * been established.
- */
- f->state = CLOSED;
- lcp_finished(f);
-
- } else
- fsm_close(&lcp_fsm[unit], reason);
-}
-
-
-/*
- * lcp_lowerup - The lower layer is up.
- */
-void
-lcp_lowerup(unit)
- int unit;
-{
- lcp_options *wo = &lcp_wantoptions[unit];
- fsm *f = &lcp_fsm[unit];
-
- /*
- * Don't use A/C or protocol compression on transmission,
- * but accept A/C and protocol compressed packets
- * if we are going to ask for A/C and protocol compression.
- */
- ppp_send_config(unit, PPP_MRU, 0xffffffff, 0, 0);
- ppp_recv_config(unit, PPP_MRU, (lax_recv? 0: 0xffffffff),
- wo->neg_pcompression, wo->neg_accompression);
- peer_mru[unit] = PPP_MRU;
-
- if (listen_time != 0) {
- f->flags |= DELAYED_UP;
- timeout(lcp_delayed_up, f, 0, listen_time * 1000);
- } else
- fsm_lowerup(f);
-}
-
-
-/*
- * lcp_lowerdown - The lower layer is down.
- */
-void
-lcp_lowerdown(unit)
- int unit;
-{
- fsm *f = &lcp_fsm[unit];
-
- if (f->flags & DELAYED_UP)
- f->flags &= ~DELAYED_UP;
- else
- fsm_lowerdown(&lcp_fsm[unit]);
-}
-
-
-/*
- * lcp_delayed_up - Bring the lower layer up now.
- */
-static void
-lcp_delayed_up(arg)
- void *arg;
-{
- fsm *f = arg;
-
- if (f->flags & DELAYED_UP) {
- f->flags &= ~DELAYED_UP;
- fsm_lowerup(f);
- }
-}
-
-
-/*
- * lcp_input - Input LCP packet.
- */
-static void
-lcp_input(unit, p, len)
- int unit;
- u_char *p;
- int len;
-{
- fsm *f = &lcp_fsm[unit];
-
- if (f->flags & DELAYED_UP) {
- f->flags &= ~DELAYED_UP;
- fsm_lowerup(f);
- }
- fsm_input(f, p, len);
-}
-
-
-/*
- * lcp_extcode - Handle a LCP-specific code.
- */
-static int
-lcp_extcode(f, code, id, inp, len)
- fsm *f;
- int code, id;
- u_char *inp;
- int len;
-{
- u_char *magp;
-
- switch( code ){
- case PROTREJ:
- lcp_rprotrej(f, inp, len);
- break;
-
- case ECHOREQ:
- if (f->state != OPENED)
- break;
- magp = inp;
- PUTLONG(lcp_gotoptions[f->unit].magicnumber, magp);
- fsm_sdata(f, ECHOREP, id, inp, len);
- break;
-
- case ECHOREP:
- lcp_received_echo_reply(f, id, inp, len);
- break;
-
- case DISCREQ:
- break;
-
- default:
- return 0;
- }
- return 1;
-}
-
-
-/*
- * lcp_rprotrej - Receive an Protocol-Reject.
- *
- * Figure out which protocol is rejected and inform it.
- */
-static void
-lcp_rprotrej(f, inp, len)
- fsm *f;
- u_char *inp;
- int len;
-{
- int i;
- struct protent *protp;
- u_short prot;
-
- if (len < 2) {
- LCPDEBUG(("lcp_rprotrej: Rcvd short Protocol-Reject packet!"));
- return;
- }
-
- GETSHORT(prot, inp);
-
- /*
- * Protocol-Reject packets received in any state other than the LCP
- * OPENED state SHOULD be silently discarded.
- */
- if( f->state != OPENED ){
- LCPDEBUG(("Protocol-Reject discarded: LCP in state %d", f->state));
- return;
- }
-
- /*
- * Upcall the proper Protocol-Reject routine.
- */
- for (i = 0; (protp = protocols[i]) != NULL; ++i)
- if (protp->protocol == prot && protp->enabled_flag) {
- (*protp->protrej)(f->unit);
- return;
- }
-
- warn("Protocol-Reject for unsupported protocol 0x%x", prot);
-}
-
-
-/*
- * lcp_protrej - A Protocol-Reject was received.
- */
-/*ARGSUSED*/
-static void
-lcp_protrej(unit)
- int unit;
-{
- /*
- * Can't reject LCP!
- */
- error("Received Protocol-Reject for LCP!");
- fsm_protreject(&lcp_fsm[unit]);
-}
-
-
-/*
- * lcp_sprotrej - Send a Protocol-Reject for some protocol.
- */
-void
-lcp_sprotrej(unit, p, len)
- int unit;
- u_char *p;
- int len;
-{
- /*
- * Send back the protocol and the information field of the
- * rejected packet. We only get here if LCP is in the OPENED state.
- */
- p += 2;
- len -= 2;
-
- fsm_sdata(&lcp_fsm[unit], PROTREJ, ++lcp_fsm[unit].id,
- p, len);
-}
-
-
-/*
- * lcp_resetci - Reset our CI.
- */
-static void
-lcp_resetci(f)
- fsm *f;
-{
- lcp_options *wo = &lcp_wantoptions[f->unit];
- lcp_options *go = &lcp_gotoptions[f->unit];
- lcp_options *ao = &lcp_allowoptions[f->unit];
-
- wo->magicnumber = magic();
- wo->numloops = 0;
- *go = *wo;
- if (!multilink) {
- go->neg_mrru = 0;
- go->neg_ssnhf = 0;
- go->neg_endpoint = 0;
- }
- if (noendpoint)
- ao->neg_endpoint = 0;
- peer_mru[f->unit] = PPP_MRU;
- auth_reset(f->unit);
-}
-
-
-/*
- * lcp_cilen - Return length of our CI.
- */
-static int
-lcp_cilen(f)
- fsm *f;
-{
- lcp_options *go = &lcp_gotoptions[f->unit];
-
-#define LENCIVOID(neg) ((neg) ? CILEN_VOID : 0)
-#define LENCICHAP(neg) ((neg) ? CILEN_CHAP : 0)
-#define LENCISHORT(neg) ((neg) ? CILEN_SHORT : 0)
-#define LENCILONG(neg) ((neg) ? CILEN_LONG : 0)
-#define LENCILQR(neg) ((neg) ? CILEN_LQR: 0)
-#define LENCICBCP(neg) ((neg) ? CILEN_CBCP: 0)
- /*
- * NB: we only ask for one of CHAP and UPAP, even if we will
- * accept either.
- */
- return (LENCISHORT(go->neg_mru && go->mru != DEFMRU) +
- LENCILONG(go->neg_asyncmap && go->asyncmap != 0xFFFFFFFF) +
- LENCICHAP(go->neg_chap) +
- LENCISHORT(!go->neg_chap && go->neg_upap) +
- LENCILQR(go->neg_lqr) +
- LENCICBCP(go->neg_cbcp) +
- LENCILONG(go->neg_magicnumber) +
- LENCIVOID(go->neg_pcompression) +
- LENCIVOID(go->neg_accompression) +
- LENCISHORT(go->neg_mrru) +
- LENCIVOID(go->neg_ssnhf) +
- (go->neg_endpoint? CILEN_CHAR + go->endpoint.length: 0));
-}
-
-
-/*
- * lcp_addci - Add our desired CIs to a packet.
- */
-static void
-lcp_addci(f, ucp, lenp)
- fsm *f;
- u_char *ucp;
- int *lenp;
-{
- lcp_options *go = &lcp_gotoptions[f->unit];
- u_char *start_ucp = ucp;
-
-#define ADDCIVOID(opt, neg) \
- if (neg) { \
- PUTCHAR(opt, ucp); \
- PUTCHAR(CILEN_VOID, ucp); \
- }
-#define ADDCISHORT(opt, neg, val) \
- if (neg) { \
- PUTCHAR(opt, ucp); \
- PUTCHAR(CILEN_SHORT, ucp); \
- PUTSHORT(val, ucp); \
- }
-#define ADDCICHAP(opt, neg, val, digest) \
- if (neg) { \
- PUTCHAR(opt, ucp); \
- PUTCHAR(CILEN_CHAP, ucp); \
- PUTSHORT(val, ucp); \
- PUTCHAR(digest, ucp); \
- }
-#define ADDCILONG(opt, neg, val) \
- if (neg) { \
- PUTCHAR(opt, ucp); \
- PUTCHAR(CILEN_LONG, ucp); \
- PUTLONG(val, ucp); \
- }
-#define ADDCILQR(opt, neg, val) \
- if (neg) { \
- PUTCHAR(opt, ucp); \
- PUTCHAR(CILEN_LQR, ucp); \
- PUTSHORT(PPP_LQR, ucp); \
- PUTLONG(val, ucp); \
- }
-#define ADDCICHAR(opt, neg, val) \
- if (neg) { \
- PUTCHAR(opt, ucp); \
- PUTCHAR(CILEN_CHAR, ucp); \
- PUTCHAR(val, ucp); \
- }
-#define ADDCIENDP(opt, neg, class, val, len) \
- if (neg) { \
- int i; \
- PUTCHAR(opt, ucp); \
- PUTCHAR(CILEN_CHAR + len, ucp); \
- PUTCHAR(class, ucp); \
- for (i = 0; i < len; ++i) \
- PUTCHAR(val[i], ucp); \
- }
-
- ADDCISHORT(CI_MRU, go->neg_mru && go->mru != DEFMRU, go->mru);
- ADDCILONG(CI_ASYNCMAP, go->neg_asyncmap && go->asyncmap != 0xFFFFFFFF,
- go->asyncmap);
- ADDCICHAP(CI_AUTHTYPE, go->neg_chap, PPP_CHAP, go->chap_mdtype);
- ADDCISHORT(CI_AUTHTYPE, !go->neg_chap && go->neg_upap, PPP_PAP);
- ADDCILQR(CI_QUALITY, go->neg_lqr, go->lqr_period);
- ADDCICHAR(CI_CALLBACK, go->neg_cbcp, CBCP_OPT);
- ADDCILONG(CI_MAGICNUMBER, go->neg_magicnumber, go->magicnumber);
- ADDCIVOID(CI_PCOMPRESSION, go->neg_pcompression);
- ADDCIVOID(CI_ACCOMPRESSION, go->neg_accompression);
- ADDCISHORT(CI_MRRU, go->neg_mrru, go->mrru);
- ADDCIVOID(CI_SSNHF, go->neg_ssnhf);
- ADDCIENDP(CI_EPDISC, go->neg_endpoint, go->endpoint.class,
- go->endpoint.value, go->endpoint.length);
-
- if (ucp - start_ucp != *lenp) {
- /* this should never happen, because peer_mtu should be 1500 */
- error("Bug in lcp_addci: wrong length");
- }
-}
-
-
-/*
- * lcp_ackci - Ack our CIs.
- * This should not modify any state if the Ack is bad.
- *
- * Returns:
- * 0 - Ack was bad.
- * 1 - Ack was good.
- */
-static int
-lcp_ackci(f, p, len)
- fsm *f;
- u_char *p;
- int len;
-{
- lcp_options *go = &lcp_gotoptions[f->unit];
- u_char cilen, citype, cichar;
- u_short cishort;
- u_int32_t cilong;
-
- /*
- * CIs must be in exactly the same order that we sent.
- * Check packet length and CI length at each step.
- * If we find any deviations, then this packet is bad.
- */
-#define ACKCIVOID(opt, neg) \
- if (neg) { \
- if ((len -= CILEN_VOID) < 0) \
- goto bad; \
- GETCHAR(citype, p); \
- GETCHAR(cilen, p); \
- if (cilen != CILEN_VOID || \
- citype != opt) \
- goto bad; \
- }
-#define ACKCISHORT(opt, neg, val) \
- if (neg) { \
- if ((len -= CILEN_SHORT) < 0) \
- goto bad; \
- GETCHAR(citype, p); \
- GETCHAR(cilen, p); \
- if (cilen != CILEN_SHORT || \
- citype != opt) \
- goto bad; \
- GETSHORT(cishort, p); \
- if (cishort != val) \
- goto bad; \
- }
-#define ACKCICHAR(opt, neg, val) \
- if (neg) { \
- if ((len -= CILEN_CHAR) < 0) \
- goto bad; \
- GETCHAR(citype, p); \
- GETCHAR(cilen, p); \
- if (cilen != CILEN_CHAR || \
- citype != opt) \
- goto bad; \
- GETCHAR(cichar, p); \
- if (cichar != val) \
- goto bad; \
- }
-#define ACKCICHAP(opt, neg, val, digest) \
- if (neg) { \
- if ((len -= CILEN_CHAP) < 0) \
- goto bad; \
- GETCHAR(citype, p); \
- GETCHAR(cilen, p); \
- if (cilen != CILEN_CHAP || \
- citype != opt) \
- goto bad; \
- GETSHORT(cishort, p); \
- if (cishort != val) \
- goto bad; \
- GETCHAR(cichar, p); \
- if (cichar != digest) \
- goto bad; \
- }
-#define ACKCILONG(opt, neg, val) \
- if (neg) { \
- if ((len -= CILEN_LONG) < 0) \
- goto bad; \
- GETCHAR(citype, p); \
- GETCHAR(cilen, p); \
- if (cilen != CILEN_LONG || \
- citype != opt) \
- goto bad; \
- GETLONG(cilong, p); \
- if (cilong != val) \
- goto bad; \
- }
-#define ACKCILQR(opt, neg, val) \
- if (neg) { \
- if ((len -= CILEN_LQR) < 0) \
- goto bad; \
- GETCHAR(citype, p); \
- GETCHAR(cilen, p); \
- if (cilen != CILEN_LQR || \
- citype != opt) \
- goto bad; \
- GETSHORT(cishort, p); \
- if (cishort != PPP_LQR) \
- goto bad; \
- GETLONG(cilong, p); \
- if (cilong != val) \
- goto bad; \
- }
-#define ACKCIENDP(opt, neg, class, val, vlen) \
- if (neg) { \
- int i; \
- if ((len -= CILEN_CHAR + vlen) < 0) \
- goto bad; \
- GETCHAR(citype, p); \
- GETCHAR(cilen, p); \
- if (cilen != CILEN_CHAR + vlen || \
- citype != opt) \
- goto bad; \
- GETCHAR(cichar, p); \
- if (cichar != class) \
- goto bad; \
- for (i = 0; i < vlen; ++i) { \
- GETCHAR(cichar, p); \
- if (cichar != val[i]) \
- goto bad; \
- } \
- }
-
- ACKCISHORT(CI_MRU, go->neg_mru && go->mru != DEFMRU, go->mru);
- ACKCILONG(CI_ASYNCMAP, go->neg_asyncmap && go->asyncmap != 0xFFFFFFFF,
- go->asyncmap);
- ACKCICHAP(CI_AUTHTYPE, go->neg_chap, PPP_CHAP, go->chap_mdtype);
- ACKCISHORT(CI_AUTHTYPE, !go->neg_chap && go->neg_upap, PPP_PAP);
- ACKCILQR(CI_QUALITY, go->neg_lqr, go->lqr_period);
- ACKCICHAR(CI_CALLBACK, go->neg_cbcp, CBCP_OPT);
- ACKCILONG(CI_MAGICNUMBER, go->neg_magicnumber, go->magicnumber);
- ACKCIVOID(CI_PCOMPRESSION, go->neg_pcompression);
- ACKCIVOID(CI_ACCOMPRESSION, go->neg_accompression);
- ACKCISHORT(CI_MRRU, go->neg_mrru, go->mrru);
- ACKCIVOID(CI_SSNHF, go->neg_ssnhf);
- ACKCIENDP(CI_EPDISC, go->neg_endpoint, go->endpoint.class,
- go->endpoint.value, go->endpoint.length);
-
- /*
- * If there are any remaining CIs, then this packet is bad.
- */
- if (len != 0)
- goto bad;
- return (1);
-bad:
- LCPDEBUG(("lcp_acki: received bad Ack!"));
- return (0);
-}
-
-
-/*
- * lcp_nakci - Peer has sent a NAK for some of our CIs.
- * This should not modify any state if the Nak is bad
- * or if LCP is in the OPENED state.
- *
- * Returns:
- * 0 - Nak was bad.
- * 1 - Nak was good.
- */
-static int
-lcp_nakci(f, p, len)
- fsm *f;
- u_char *p;
- int len;
-{
- lcp_options *go = &lcp_gotoptions[f->unit];
- lcp_options *wo = &lcp_wantoptions[f->unit];
- u_char citype, cichar, *next;
- u_short cishort;
- u_int32_t cilong;
- lcp_options no; /* options we've seen Naks for */
- lcp_options try; /* options to request next time */
- int looped_back = 0;
- int cilen;
-
- BZERO(&no, sizeof(no));
- try = *go;
-
- /*
- * Any Nak'd CIs must be in exactly the same order that we sent.
- * Check packet length and CI length at each step.
- * If we find any deviations, then this packet is bad.
- */
-#define NAKCIVOID(opt, neg) \
- if (go->neg && \
- len >= CILEN_VOID && \
- p[1] == CILEN_VOID && \
- p[0] == opt) { \
- len -= CILEN_VOID; \
- INCPTR(CILEN_VOID, p); \
- no.neg = 1; \
- try.neg = 0; \
- }
-#define NAKCICHAP(opt, neg, code) \
- if (go->neg && \
- len >= CILEN_CHAP && \
- p[1] == CILEN_CHAP && \
- p[0] == opt) { \
- len -= CILEN_CHAP; \
- INCPTR(2, p); \
- GETSHORT(cishort, p); \
- GETCHAR(cichar, p); \
- no.neg = 1; \
- code \
- }
-#define NAKCICHAR(opt, neg, code) \
- if (go->neg && \
- len >= CILEN_CHAR && \
- p[1] == CILEN_CHAR && \
- p[0] == opt) { \
- len -= CILEN_CHAR; \
- INCPTR(2, p); \
- GETCHAR(cichar, p); \
- no.neg = 1; \
- code \
- }
-#define NAKCISHORT(opt, neg, code) \
- if (go->neg && \
- len >= CILEN_SHORT && \
- p[1] == CILEN_SHORT && \
- p[0] == opt) { \
- len -= CILEN_SHORT; \
- INCPTR(2, p); \
- GETSHORT(cishort, p); \
- no.neg = 1; \
- code \
- }
-#define NAKCILONG(opt, neg, code) \
- if (go->neg && \
- len >= CILEN_LONG && \
- p[1] == CILEN_LONG && \
- p[0] == opt) { \
- len -= CILEN_LONG; \
- INCPTR(2, p); \
- GETLONG(cilong, p); \
- no.neg = 1; \
- code \
- }
-#define NAKCILQR(opt, neg, code) \
- if (go->neg && \
- len >= CILEN_LQR && \
- p[1] == CILEN_LQR && \
- p[0] == opt) { \
- len -= CILEN_LQR; \
- INCPTR(2, p); \
- GETSHORT(cishort, p); \
- GETLONG(cilong, p); \
- no.neg = 1; \
- code \
- }
-#define NAKCIENDP(opt, neg) \
- if (go->neg && \
- len >= CILEN_CHAR && \
- p[0] == opt && \
- p[1] >= CILEN_CHAR && \
- p[1] <= len) { \
- len -= p[1]; \
- INCPTR(p[1], p); \
- no.neg = 1; \
- try.neg = 0; \
- }
-
- /*
- * We don't care if they want to send us smaller packets than
- * we want. Therefore, accept any MRU less than what we asked for,
- * but then ignore the new value when setting the MRU in the kernel.
- * If they send us a bigger MRU than what we asked, accept it, up to
- * the limit of the default MRU we'd get if we didn't negotiate.
- */
- if (go->neg_mru && go->mru != DEFMRU) {
- NAKCISHORT(CI_MRU, neg_mru,
- if (cishort <= wo->mru || cishort <= DEFMRU)
- try.mru = cishort;
- );
- }
-
- /*
- * Add any characters they want to our (receive-side) asyncmap.
- */
- if (go->neg_asyncmap && go->asyncmap != 0xFFFFFFFF) {
- NAKCILONG(CI_ASYNCMAP, neg_asyncmap,
- try.asyncmap = go->asyncmap | cilong;
- );
- }
-
- /*
- * If they've nak'd our authentication-protocol, check whether
- * they are proposing a different protocol, or a different
- * hash algorithm for CHAP.
- */
- if ((go->neg_chap || go->neg_upap)
- && len >= CILEN_SHORT
- && p[0] == CI_AUTHTYPE && p[1] >= CILEN_SHORT && p[1] <= len) {
- cilen = p[1];
- len -= cilen;
- no.neg_chap = go->neg_chap;
- no.neg_upap = go->neg_upap;
- INCPTR(2, p);
- GETSHORT(cishort, p);
- if (cishort == PPP_PAP && cilen == CILEN_SHORT) {
- /*
- * If we were asking for CHAP, they obviously don't want to do it.
- * If we weren't asking for CHAP, then we were asking for PAP,
- * in which case this Nak is bad.
- */
- if (!go->neg_chap)
- goto bad;
- try.neg_chap = 0;
-
- } else if (cishort == PPP_CHAP && cilen == CILEN_CHAP) {
- GETCHAR(cichar, p);
- if (go->neg_chap) {
- /*
- * We were asking for CHAP/MD5; they must want a different
- * algorithm. If they can't do MD5, we can ask for M$-CHAP
- * if we support it, otherwise we'll have to stop
- * asking for CHAP.
- */
- if (cichar != go->chap_mdtype) {
-#ifdef CHAPMS
- if (cichar == CHAP_MICROSOFT)
- go->chap_mdtype = CHAP_MICROSOFT;
- else
-#endif /* CHAPMS */
- try.neg_chap = 0;
- }
- } else {
- /*
- * Stop asking for PAP if we were asking for it.
- */
- try.neg_upap = 0;
- }
-
- } else {
- /*
- * We don't recognize what they're suggesting.
- * Stop asking for what we were asking for.
- */
- if (go->neg_chap)
- try.neg_chap = 0;
- else
- try.neg_upap = 0;
- p += cilen - CILEN_SHORT;
- }
- }
-
- /*
- * If they can't cope with our link quality protocol, we'll have
- * to stop asking for LQR. We haven't got any other protocol.
- * If they Nak the reporting period, take their value XXX ?
- */
- NAKCILQR(CI_QUALITY, neg_lqr,
- if (cishort != PPP_LQR)
- try.neg_lqr = 0;
- else
- try.lqr_period = cilong;
- );
-
- /*
- * Only implementing CBCP...not the rest of the callback options
- */
- NAKCICHAR(CI_CALLBACK, neg_cbcp,
- try.neg_cbcp = 0;
- );
-
- /*
- * Check for a looped-back line.
- */
- NAKCILONG(CI_MAGICNUMBER, neg_magicnumber,
- try.magicnumber = magic();
- looped_back = 1;
- );
-
- /*
- * Peer shouldn't send Nak for protocol compression or
- * address/control compression requests; they should send
- * a Reject instead. If they send a Nak, treat it as a Reject.
- */
- NAKCIVOID(CI_PCOMPRESSION, neg_pcompression);
- NAKCIVOID(CI_ACCOMPRESSION, neg_accompression);
-
- /*
- * Nak for MRRU option - accept their value if it is smaller
- * than the one we want.
- */
- if (go->neg_mrru) {
- NAKCISHORT(CI_MRRU, neg_mrru,
- if (cishort <= wo->mrru)
- try.mrru = cishort;
- );
- }
-
- /*
- * Nak for short sequence numbers shouldn't be sent, treat it
- * like a reject.
- */
- NAKCIVOID(CI_SSNHF, neg_ssnhf);
-
- /*
- * Nak of the endpoint discriminator option is not permitted,
- * treat it like a reject.
- */
- NAKCIENDP(CI_EPDISC, neg_endpoint);
-
- /*
- * There may be remaining CIs, if the peer is requesting negotiation
- * on an option that we didn't include in our request packet.
- * If we see an option that we requested, or one we've already seen
- * in this packet, then this packet is bad.
- * If we wanted to respond by starting to negotiate on the requested
- * option(s), we could, but we don't, because except for the
- * authentication type and quality protocol, if we are not negotiating
- * an option, it is because we were told not to.
- * For the authentication type, the Nak from the peer means
- * `let me authenticate myself with you' which is a bit pointless.
- * For the quality protocol, the Nak means `ask me to send you quality
- * reports', but if we didn't ask for them, we don't want them.
- * An option we don't recognize represents the peer asking to
- * negotiate some option we don't support, so ignore it.
- */
- while (len > CILEN_VOID) {
- GETCHAR(citype, p);
- GETCHAR(cilen, p);
- if (cilen < CILEN_VOID || (len -= cilen) < 0)
- goto bad;
- next = p + cilen - 2;
-
- switch (citype) {
- case CI_MRU:
- if ((go->neg_mru && go->mru != DEFMRU)
- || no.neg_mru || cilen != CILEN_SHORT)
- goto bad;
- GETSHORT(cishort, p);
- if (cishort < DEFMRU) {
- try.neg_mru = 1;
- try.mru = cishort;
- }
- break;
- case CI_ASYNCMAP:
- if ((go->neg_asyncmap && go->asyncmap != 0xFFFFFFFF)
- || no.neg_asyncmap || cilen != CILEN_LONG)
- goto bad;
- break;
- case CI_AUTHTYPE:
- if (go->neg_chap || no.neg_chap || go->neg_upap || no.neg_upap)
- goto bad;
- break;
- case CI_MAGICNUMBER:
- if (go->neg_magicnumber || no.neg_magicnumber ||
- cilen != CILEN_LONG)
- goto bad;
- break;
- case CI_PCOMPRESSION:
- if (go->neg_pcompression || no.neg_pcompression
- || cilen != CILEN_VOID)
- goto bad;
- break;
- case CI_ACCOMPRESSION:
- if (go->neg_accompression || no.neg_accompression
- || cilen != CILEN_VOID)
- goto bad;
- break;
- case CI_QUALITY:
- if (go->neg_lqr || no.neg_lqr || cilen != CILEN_LQR)
- goto bad;
- break;
- case CI_MRRU:
- if (go->neg_mrru || no.neg_mrru || cilen != CILEN_SHORT)
- goto bad;
- break;
- case CI_SSNHF:
- if (go->neg_ssnhf || no.neg_ssnhf || cilen != CILEN_VOID)
- goto bad;
- try.neg_ssnhf = 1;
- break;
- case CI_EPDISC:
- if (go->neg_endpoint || no.neg_endpoint || cilen < CILEN_CHAR)
- goto bad;
- break;
- }
- p = next;
- }
-
- /*
- * OK, the Nak is good. Now we can update state.
- * If there are any options left we ignore them.
- */
- if (f->state != OPENED) {
- if (looped_back) {
- if (++try.numloops >= lcp_loopbackfail) {
- notice("Serial line is looped back.");
- lcp_close(f->unit, "Loopback detected");
- status = EXIT_LOOPBACK;
- }
- } else
- try.numloops = 0;
- *go = try;
- }
-
- return 1;
-
-bad:
- LCPDEBUG(("lcp_nakci: received bad Nak!"));
- return 0;
-}
-
-
-/*
- * lcp_rejci - Peer has Rejected some of our CIs.
- * This should not modify any state if the Reject is bad
- * or if LCP is in the OPENED state.
- *
- * Returns:
- * 0 - Reject was bad.
- * 1 - Reject was good.
- */
-static int
-lcp_rejci(f, p, len)
- fsm *f;
- u_char *p;
- int len;
-{
- lcp_options *go = &lcp_gotoptions[f->unit];
- u_char cichar;
- u_short cishort;
- u_int32_t cilong;
- lcp_options try; /* options to request next time */
-
- try = *go;
-
- /*
- * Any Rejected CIs must be in exactly the same order that we sent.
- * Check packet length and CI length at each step.
- * If we find any deviations, then this packet is bad.
- */
-#define REJCIVOID(opt, neg) \
- if (go->neg && \
- len >= CILEN_VOID && \
- p[1] == CILEN_VOID && \
- p[0] == opt) { \
- len -= CILEN_VOID; \
- INCPTR(CILEN_VOID, p); \
- try.neg = 0; \
- }
-#define REJCISHORT(opt, neg, val) \
- if (go->neg && \
- len >= CILEN_SHORT && \
- p[1] == CILEN_SHORT && \
- p[0] == opt) { \
- len -= CILEN_SHORT; \
- INCPTR(2, p); \
- GETSHORT(cishort, p); \
- /* Check rejected value. */ \
- if (cishort != val) \
- goto bad; \
- try.neg = 0; \
- }
-#define REJCICHAP(opt, neg, val, digest) \
- if (go->neg && \
- len >= CILEN_CHAP && \
- p[1] == CILEN_CHAP && \
- p[0] == opt) { \
- len -= CILEN_CHAP; \
- INCPTR(2, p); \
- GETSHORT(cishort, p); \
- GETCHAR(cichar, p); \
- /* Check rejected value. */ \
- if (cishort != val || cichar != digest) \
- goto bad; \
- try.neg = 0; \
- try.neg_upap = 0; \
- }
-#define REJCILONG(opt, neg, val) \
- if (go->neg && \
- len >= CILEN_LONG && \
- p[1] == CILEN_LONG && \
- p[0] == opt) { \
- len -= CILEN_LONG; \
- INCPTR(2, p); \
- GETLONG(cilong, p); \
- /* Check rejected value. */ \
- if (cilong != val) \
- goto bad; \
- try.neg = 0; \
- }
-#define REJCILQR(opt, neg, val) \
- if (go->neg && \
- len >= CILEN_LQR && \
- p[1] == CILEN_LQR && \
- p[0] == opt) { \
- len -= CILEN_LQR; \
- INCPTR(2, p); \
- GETSHORT(cishort, p); \
- GETLONG(cilong, p); \
- /* Check rejected value. */ \
- if (cishort != PPP_LQR || cilong != val) \
- goto bad; \
- try.neg = 0; \
- }
-#define REJCICBCP(opt, neg, val) \
- if (go->neg && \
- len >= CILEN_CBCP && \
- p[1] == CILEN_CBCP && \
- p[0] == opt) { \
- len -= CILEN_CBCP; \
- INCPTR(2, p); \
- GETCHAR(cichar, p); \
- /* Check rejected value. */ \
- if (cichar != val) \
- goto bad; \
- try.neg = 0; \
- }
-#define REJCIENDP(opt, neg, class, val, vlen) \
- if (go->neg && \
- len >= CILEN_CHAR + vlen && \
- p[0] == opt && \
- p[1] == CILEN_CHAR + vlen) { \
- int i; \
- len -= CILEN_CHAR + vlen; \
- INCPTR(2, p); \
- GETCHAR(cichar, p); \
- if (cichar != class) \
- goto bad; \
- for (i = 0; i < vlen; ++i) { \
- GETCHAR(cichar, p); \
- if (cichar != val[i]) \
- goto bad; \
- } \
- try.neg = 0; \
- }
-
- REJCISHORT(CI_MRU, neg_mru, go->mru);
- REJCILONG(CI_ASYNCMAP, neg_asyncmap, go->asyncmap);
- REJCICHAP(CI_AUTHTYPE, neg_chap, PPP_CHAP, go->chap_mdtype);
- if (!go->neg_chap) {
- REJCISHORT(CI_AUTHTYPE, neg_upap, PPP_PAP);
- }
- REJCILQR(CI_QUALITY, neg_lqr, go->lqr_period);
- REJCICBCP(CI_CALLBACK, neg_cbcp, CBCP_OPT);
- REJCILONG(CI_MAGICNUMBER, neg_magicnumber, go->magicnumber);
- REJCIVOID(CI_PCOMPRESSION, neg_pcompression);
- REJCIVOID(CI_ACCOMPRESSION, neg_accompression);
- REJCISHORT(CI_MRRU, neg_mrru, go->mrru);
- REJCIVOID(CI_SSNHF, neg_ssnhf);
- REJCIENDP(CI_EPDISC, neg_endpoint, go->endpoint.class,
- go->endpoint.value, go->endpoint.length);
-
- /*
- * If there are any remaining CIs, then this packet is bad.
- */
- if (len != 0)
- goto bad;
- /*
- * Now we can update state.
- */
- if (f->state != OPENED)
- *go = try;
- return 1;
-
-bad:
- LCPDEBUG(("lcp_rejci: received bad Reject!"));
- return 0;
-}
-
-
-/*
- * lcp_reqci - Check the peer's requested CIs and send appropriate response.
- *
- * Returns: CONFACK, CONFNAK or CONFREJ and input packet modified
- * appropriately. If reject_if_disagree is non-zero, doesn't return
- * CONFNAK; returns CONFREJ if it can't return CONFACK.
- */
-static int
-lcp_reqci(f, inp, lenp, reject_if_disagree)
- fsm *f;
- u_char *inp; /* Requested CIs */
- int *lenp; /* Length of requested CIs */
- int reject_if_disagree;
-{
- lcp_options *go = &lcp_gotoptions[f->unit];
- lcp_options *ho = &lcp_hisoptions[f->unit];
- lcp_options *ao = &lcp_allowoptions[f->unit];
- u_char *cip, *next; /* Pointer to current and next CIs */
- int cilen, citype, cichar; /* Parsed len, type, char value */
- u_short cishort; /* Parsed short value */
- u_int32_t cilong; /* Parse long value */
- int rc = CONFACK; /* Final packet return code */
- int orc; /* Individual option return code */
- u_char *p; /* Pointer to next char to parse */
- u_char *rejp; /* Pointer to next char in reject frame */
- u_char *nakp; /* Pointer to next char in Nak frame */
- int l = *lenp; /* Length left */
-
- /*
- * Reset all his options.
- */
- BZERO(ho, sizeof(*ho));
-
- /*
- * Process all his options.
- */
- next = inp;
- nakp = nak_buffer;
- rejp = inp;
- while (l) {
- orc = CONFACK; /* Assume success */
- cip = p = next; /* Remember begining of CI */
- if (l < 2 || /* Not enough data for CI header or */
- p[1] < 2 || /* CI length too small or */
- p[1] > l) { /* CI length too big? */
- LCPDEBUG(("lcp_reqci: bad CI length!"));
- orc = CONFREJ; /* Reject bad CI */
- cilen = l; /* Reject till end of packet */
- l = 0; /* Don't loop again */
- citype = 0;
- goto endswitch;
- }
- GETCHAR(citype, p); /* Parse CI type */
- GETCHAR(cilen, p); /* Parse CI length */
- l -= cilen; /* Adjust remaining length */
- next += cilen; /* Step to next CI */
-
- switch (citype) { /* Check CI type */
- case CI_MRU:
- if (!ao->neg_mru || /* Allow option? */
- cilen != CILEN_SHORT) { /* Check CI length */
- orc = CONFREJ; /* Reject CI */
- break;
- }
- GETSHORT(cishort, p); /* Parse MRU */
-
- /*
- * He must be able to receive at least our minimum.
- * No need to check a maximum. If he sends a large number,
- * we'll just ignore it.
- */
- if (cishort < MINMRU) {
- orc = CONFNAK; /* Nak CI */
- PUTCHAR(CI_MRU, nakp);
- PUTCHAR(CILEN_SHORT, nakp);
- PUTSHORT(MINMRU, nakp); /* Give him a hint */
- break;
- }
- ho->neg_mru = 1; /* Remember he sent MRU */
- ho->mru = cishort; /* And remember value */
- break;
-
- case CI_ASYNCMAP:
- if (!ao->neg_asyncmap ||
- cilen != CILEN_LONG) {
- orc = CONFREJ;
- break;
- }
- GETLONG(cilong, p);
-
- /*
- * Asyncmap must have set at least the bits
- * which are set in lcp_allowoptions[unit].asyncmap.
- */
- if ((ao->asyncmap & ~cilong) != 0) {
- orc = CONFNAK;
- PUTCHAR(CI_ASYNCMAP, nakp);
- PUTCHAR(CILEN_LONG, nakp);
- PUTLONG(ao->asyncmap | cilong, nakp);
- break;
- }
- ho->neg_asyncmap = 1;
- ho->asyncmap = cilong;
- break;
-
- case CI_AUTHTYPE:
- if (cilen < CILEN_SHORT ||
- !(ao->neg_upap || ao->neg_chap)) {
- /*
- * Reject the option if we're not willing to authenticate.
- */
- orc = CONFREJ;
- break;
- }
- GETSHORT(cishort, p);
-
- /*
- * Authtype must be PAP or CHAP.
- *
- * Note: if both ao->neg_upap and ao->neg_chap are set,
- * and the peer sends a Configure-Request with two
- * authenticate-protocol requests, one for CHAP and one
- * for UPAP, then we will reject the second request.
- * Whether we end up doing CHAP or UPAP depends then on
- * the ordering of the CIs in the peer's Configure-Request.
- */
-
- if (cishort == PPP_PAP) {
- if (ho->neg_chap || /* we've already accepted CHAP */
- cilen != CILEN_SHORT) {
- LCPDEBUG(("lcp_reqci: rcvd AUTHTYPE PAP, rejecting..."));
- orc = CONFREJ;
- break;
- }
- if (!ao->neg_upap) { /* we don't want to do PAP */
- orc = CONFNAK; /* NAK it and suggest CHAP */
- PUTCHAR(CI_AUTHTYPE, nakp);
- PUTCHAR(CILEN_CHAP, nakp);
- PUTSHORT(PPP_CHAP, nakp);
- PUTCHAR(ao->chap_mdtype, nakp);
- /* XXX if we can do CHAP_MICROSOFT as well, we should
- probably put in another option saying so */
- break;
- }
- ho->neg_upap = 1;
- break;
- }
- if (cishort == PPP_CHAP) {
- if (ho->neg_upap || /* we've already accepted PAP */
- cilen != CILEN_CHAP) {
- LCPDEBUG(("lcp_reqci: rcvd AUTHTYPE CHAP, rejecting..."));
- orc = CONFREJ;
- break;
- }
- if (!ao->neg_chap) { /* we don't want to do CHAP */
- orc = CONFNAK; /* NAK it and suggest PAP */
- PUTCHAR(CI_AUTHTYPE, nakp);
- PUTCHAR(CILEN_SHORT, nakp);
- PUTSHORT(PPP_PAP, nakp);
- break;
- }
- GETCHAR(cichar, p); /* get digest type*/
- if (cichar != CHAP_DIGEST_MD5
-#ifdef CHAPMS
- && cichar != CHAP_MICROSOFT
-#endif
- ) {
- orc = CONFNAK;
- PUTCHAR(CI_AUTHTYPE, nakp);
- PUTCHAR(CILEN_CHAP, nakp);
- PUTSHORT(PPP_CHAP, nakp);
- PUTCHAR(ao->chap_mdtype, nakp);
- break;
- }
- ho->chap_mdtype = cichar; /* save md type */
- ho->neg_chap = 1;
- break;
- }
-
- /*
- * We don't recognize the protocol they're asking for.
- * Nak it with something we're willing to do.
- * (At this point we know ao->neg_upap || ao->neg_chap.)
- */
- orc = CONFNAK;
- PUTCHAR(CI_AUTHTYPE, nakp);
- if (ao->neg_chap) {
- PUTCHAR(CILEN_CHAP, nakp);
- PUTSHORT(PPP_CHAP, nakp);
- PUTCHAR(ao->chap_mdtype, nakp);
- } else {
- PUTCHAR(CILEN_SHORT, nakp);
- PUTSHORT(PPP_PAP, nakp);
- }
- break;
-
- case CI_QUALITY:
- if (!ao->neg_lqr ||
- cilen != CILEN_LQR) {
- orc = CONFREJ;
- break;
- }
-
- GETSHORT(cishort, p);
- GETLONG(cilong, p);
-
- /*
- * Check the protocol and the reporting period.
- * XXX When should we Nak this, and what with?
- */
- if (cishort != PPP_LQR) {
- orc = CONFNAK;
- PUTCHAR(CI_QUALITY, nakp);
- PUTCHAR(CILEN_LQR, nakp);
- PUTSHORT(PPP_LQR, nakp);
- PUTLONG(ao->lqr_period, nakp);
- break;
- }
- break;
-
- case CI_MAGICNUMBER:
- if (!(ao->neg_magicnumber || go->neg_magicnumber) ||
- cilen != CILEN_LONG) {
- orc = CONFREJ;
- break;
- }
- GETLONG(cilong, p);
-
- /*
- * He must have a different magic number.
- */
- if (go->neg_magicnumber &&
- cilong == go->magicnumber) {
- cilong = magic(); /* Don't put magic() inside macro! */
- orc = CONFNAK;
- PUTCHAR(CI_MAGICNUMBER, nakp);
- PUTCHAR(CILEN_LONG, nakp);
- PUTLONG(cilong, nakp);
- break;
- }
- ho->neg_magicnumber = 1;
- ho->magicnumber = cilong;
- break;
-
-
- case CI_PCOMPRESSION:
- if (!ao->neg_pcompression ||
- cilen != CILEN_VOID) {
- orc = CONFREJ;
- break;
- }
- ho->neg_pcompression = 1;
- break;
-
- case CI_ACCOMPRESSION:
- if (!ao->neg_accompression ||
- cilen != CILEN_VOID) {
- orc = CONFREJ;
- break;
- }
- ho->neg_accompression = 1;
- break;
-
- case CI_MRRU:
- if (!ao->neg_mrru || !multilink ||
- cilen != CILEN_SHORT) {
- orc = CONFREJ;
- break;
- }
-
- GETSHORT(cishort, p);
- /* possibly should insist on a minimum/maximum MRRU here */
- ho->neg_mrru = 1;
- ho->mrru = cishort;
- break;
-
- case CI_SSNHF:
- if (!ao->neg_ssnhf || !multilink ||
- cilen != CILEN_VOID) {
- orc = CONFREJ;
- break;
- }
- ho->neg_ssnhf = 1;
- break;
-
- case CI_EPDISC:
- if (!ao->neg_endpoint ||
- cilen < CILEN_CHAR ||
- cilen > CILEN_CHAR + MAX_ENDP_LEN) {
- orc = CONFREJ;
- break;
- }
- GETCHAR(cichar, p);
- cilen -= CILEN_CHAR;
- ho->neg_endpoint = 1;
- ho->endpoint.class = cichar;
- ho->endpoint.length = cilen;
- BCOPY(p, ho->endpoint.value, cilen);
- INCPTR(cilen, p);
- break;
-
- default:
- LCPDEBUG(("lcp_reqci: rcvd unknown option %d", citype));
- orc = CONFREJ;
- break;
- }
-
-endswitch:
- if (orc == CONFACK && /* Good CI */
- rc != CONFACK) /* but prior CI wasnt? */
- continue; /* Don't send this one */
-
- if (orc == CONFNAK) { /* Nak this CI? */
- if (reject_if_disagree /* Getting fed up with sending NAKs? */
- && citype != CI_MAGICNUMBER) {
- orc = CONFREJ; /* Get tough if so */
- } else {
- if (rc == CONFREJ) /* Rejecting prior CI? */
- continue; /* Don't send this one */
- rc = CONFNAK;
- }
- }
- if (orc == CONFREJ) { /* Reject this CI */
- rc = CONFREJ;
- if (cip != rejp) /* Need to move rejected CI? */
- BCOPY(cip, rejp, cilen); /* Move it */
- INCPTR(cilen, rejp); /* Update output pointer */
- }
- }
-
- /*
- * If we wanted to send additional NAKs (for unsent CIs), the
- * code would go here. The extra NAKs would go at *nakp.
- * At present there are no cases where we want to ask the
- * peer to negotiate an option.
- */
-
- switch (rc) {
- case CONFACK:
- *lenp = next - inp;
- break;
- case CONFNAK:
- /*
- * Copy the Nak'd options from the nak_buffer to the caller's buffer.
- */
- *lenp = nakp - nak_buffer;
- BCOPY(nak_buffer, inp, *lenp);
- break;
- case CONFREJ:
- *lenp = rejp - inp;
- break;
- }
-
- LCPDEBUG(("lcp_reqci: returning CONF%s.", CODENAME(rc)));
- return (rc); /* Return final code */
-}
-
-
-/*
- * lcp_up - LCP has come UP.
- */
-static void
-lcp_up(f)
- fsm *f;
-{
- lcp_options *wo = &lcp_wantoptions[f->unit];
- lcp_options *ho = &lcp_hisoptions[f->unit];
- lcp_options *go = &lcp_gotoptions[f->unit];
- lcp_options *ao = &lcp_allowoptions[f->unit];
- int mtu;
-
- if (!go->neg_magicnumber)
- go->magicnumber = 0;
- if (!ho->neg_magicnumber)
- ho->magicnumber = 0;
-
- /*
- * Set our MTU to the smaller of the MTU we wanted and
- * the MRU our peer wanted. If we negotiated an MRU,
- * set our MRU to the larger of value we wanted and
- * the value we got in the negotiation.
- * Note on the MTU: the link MTU can be the MRU the peer wanted,
- * the interface MTU is set to the lower of that and the
- * MTU we want to use.
- */
- mtu = ho->neg_mru? ho->mru: PPP_MRU;
-#ifdef HAVE_MULTILINK
- if (!(multilink && go->neg_mrru && ho->neg_mrru))
-#endif /* HAVE_MULTILINK */
- netif_set_mtu(f->unit, MIN(mtu, ao->mru));
- ppp_send_config(f->unit, mtu,
- (ho->neg_asyncmap? ho->asyncmap: 0xffffffff),
- ho->neg_pcompression, ho->neg_accompression);
- ppp_recv_config(f->unit, (go->neg_mru? MAX(wo->mru, go->mru): PPP_MRU),
- (lax_recv? 0: go->neg_asyncmap? go->asyncmap: 0xffffffff),
- go->neg_pcompression, go->neg_accompression);
-
- if (ho->neg_mru)
- peer_mru[f->unit] = ho->mru;
-
- lcp_echo_lowerup(f->unit); /* Enable echo messages */
-
- link_established(f->unit);
-}
-
-
-/*
- * lcp_down - LCP has gone DOWN.
- *
- * Alert other protocols.
- */
-static void
-lcp_down(f)
- fsm *f;
-{
- lcp_options *go = &lcp_gotoptions[f->unit];
-
- lcp_echo_lowerdown(f->unit);
-
- link_down(f->unit);
-
- ppp_send_config(f->unit, PPP_MRU, 0xffffffff, 0, 0);
- ppp_recv_config(f->unit, PPP_MRU,
- (go->neg_asyncmap? go->asyncmap: 0xffffffff),
- go->neg_pcompression, go->neg_accompression);
- peer_mru[f->unit] = PPP_MRU;
-}
-
-
-/*
- * lcp_starting - LCP needs the lower layer up.
- */
-static void
-lcp_starting(f)
- fsm *f;
-{
- link_required(f->unit);
-}
-
-
-/*
- * lcp_finished - LCP has finished with the lower layer.
- */
-static void
-lcp_finished(f)
- fsm *f;
-{
- link_terminated(f->unit);
-}
-
-
-/*
- * lcp_printpkt - print the contents of an LCP packet.
- */
-static char *lcp_codenames[] = {
- "ConfReq", "ConfAck", "ConfNak", "ConfRej",
- "TermReq", "TermAck", "CodeRej", "ProtRej",
- "EchoReq", "EchoRep", "DiscReq"
-};
-
-static int
-lcp_printpkt(p, plen, printer, arg)
- u_char *p;
- int plen;
- void (*printer) __P((void *, char *, ...));
- void *arg;
-{
- int code, id, len, olen, i;
- u_char *pstart, *optend;
- u_short cishort;
- u_int32_t cilong;
-
- if (plen < HEADERLEN)
- return 0;
- pstart = p;
- GETCHAR(code, p);
- GETCHAR(id, p);
- GETSHORT(len, p);
- if (len < HEADERLEN || len > plen)
- return 0;
-
- if (code >= 1 && code <= sizeof(lcp_codenames) / sizeof(char *))
- printer(arg, " %s", lcp_codenames[code-1]);
- else
- printer(arg, " code=0x%x", code);
- printer(arg, " id=0x%x", id);
- len -= HEADERLEN;
- switch (code) {
- case CONFREQ:
- case CONFACK:
- case CONFNAK:
- case CONFREJ:
- /* print option list */
- while (len >= 2) {
- GETCHAR(code, p);
- GETCHAR(olen, p);
- p -= 2;
- if (olen < 2 || olen > len) {
- break;
- }
- printer(arg, " <");
- len -= olen;
- optend = p + olen;
- switch (code) {
- case CI_MRU:
- if (olen == CILEN_SHORT) {
- p += 2;
- GETSHORT(cishort, p);
- printer(arg, "mru %d", cishort);
- }
- break;
- case CI_ASYNCMAP:
- if (olen == CILEN_LONG) {
- p += 2;
- GETLONG(cilong, p);
- printer(arg, "asyncmap 0x%x", cilong);
- }
- break;
- case CI_AUTHTYPE:
- if (olen >= CILEN_SHORT) {
- p += 2;
- printer(arg, "auth ");
- GETSHORT(cishort, p);
- switch (cishort) {
- case PPP_PAP:
- printer(arg, "pap");
- break;
- case PPP_CHAP:
- printer(arg, "chap");
- if (p < optend) {
- switch (*p) {
- case CHAP_DIGEST_MD5:
- printer(arg, " MD5");
- ++p;
- break;
-#ifdef CHAPMS
- case CHAP_MICROSOFT:
- printer(arg, " m$oft");
- ++p;
- break;
-#endif
- }
- }
- break;
- default:
- printer(arg, "0x%x", cishort);
- }
- }
- break;
- case CI_QUALITY:
- if (olen >= CILEN_SHORT) {
- p += 2;
- printer(arg, "quality ");
- GETSHORT(cishort, p);
- switch (cishort) {
- case PPP_LQR:
- printer(arg, "lqr");
- break;
- default:
- printer(arg, "0x%x", cishort);
- }
- }
- break;
- case CI_CALLBACK:
- if (olen >= CILEN_CHAR) {
- p += 2;
- printer(arg, "callback ");
- GETCHAR(cishort, p);
- switch (cishort) {
- case CBCP_OPT:
- printer(arg, "CBCP");
- break;
- default:
- printer(arg, "0x%x", cishort);
- }
- }
- break;
- case CI_MAGICNUMBER:
- if (olen == CILEN_LONG) {
- p += 2;
- GETLONG(cilong, p);
- printer(arg, "magic 0x%x", cilong);
- }
- break;
- case CI_PCOMPRESSION:
- if (olen == CILEN_VOID) {
- p += 2;
- printer(arg, "pcomp");
- }
- break;
- case CI_ACCOMPRESSION:
- if (olen == CILEN_VOID) {
- p += 2;
- printer(arg, "accomp");
- }
- break;
- case CI_MRRU:
- if (olen == CILEN_SHORT) {
- p += 2;
- GETSHORT(cishort, p);
- printer(arg, "mrru %d", cishort);
- }
- break;
- case CI_SSNHF:
- if (olen == CILEN_VOID) {
- p += 2;
- printer(arg, "ssnhf");
- }
- break;
- case CI_EPDISC:
-#ifdef HAVE_MULTILINK
- if (olen >= CILEN_CHAR) {
- struct epdisc epd;
- p += 2;
- GETCHAR(epd.class, p);
- epd.length = olen - CILEN_CHAR;
- if (epd.length > MAX_ENDP_LEN)
- epd.length = MAX_ENDP_LEN;
- if (epd.length > 0) {
- BCOPY(p, epd.value, epd.length);
- p += epd.length;
- }
- printer(arg, "endpoint [%s]", epdisc_to_str(&epd));
- }
-#else
- printer(arg, "endpoint");
-#endif
- break;
- }
- while (p < optend) {
- GETCHAR(code, p);
- printer(arg, " %.2x", code);
- }
- printer(arg, ">");
- }
- break;
-
- case TERMACK:
- case TERMREQ:
- if (len > 0 && *p >= ' ' && *p < 0x7f) {
- printer(arg, " ");
- print_string((char *)p, len, printer, arg);
- p += len;
- len = 0;
- }
- break;
-
- case ECHOREQ:
- case ECHOREP:
- case DISCREQ:
- if (len >= 4) {
- GETLONG(cilong, p);
- printer(arg, " magic=0x%x", cilong);
- p += 4;
- len -= 4;
- }
- break;
- }
-
- /* print the rest of the bytes in the packet */
- for (i = 0; i < len && i < 32; ++i) {
- GETCHAR(code, p);
- printer(arg, " %.2x", code);
- }
- if (i < len) {
- printer(arg, " ...");
- p += len - i;
- }
-
- return p - pstart;
-}
-
-/*
- * Time to shut down the link because there is nothing out there.
- */
-
-static
-void LcpLinkFailure (f)
- fsm *f;
-{
- if (f->state == OPENED) {
- info("No response to %d echo-requests", lcp_echos_pending);
- notice("Serial link appears to be disconnected.");
- lcp_close(f->unit, "Peer not responding");
- status = EXIT_PEER_DEAD;
- }
-}
-
-/*
- * Timer expired for the LCP echo requests from this process.
- */
-
-static void
-LcpEchoCheck (f)
- fsm *f;
-{
- LcpSendEchoRequest (f);
- if (f->state != OPENED)
- return;
-
- /*
- * Start the timer for the next interval.
- */
- if (lcp_echo_timer_running)
- warn("assertion lcp_echo_timer_running==0 failed");
- TIMEOUT (LcpEchoTimeout, f, lcp_echo_interval);
- lcp_echo_timer_running = 1;
-}
-
-/*
- * LcpEchoTimeout - Timer expired on the LCP echo
- */
-
-static void
-LcpEchoTimeout (arg)
- void *arg;
-{
- if (lcp_echo_timer_running != 0) {
- lcp_echo_timer_running = 0;
- LcpEchoCheck ((fsm *) arg);
- }
-}
-
-/*
- * LcpEchoReply - LCP has received a reply to the echo
- */
-
-static void
-lcp_received_echo_reply (f, id, inp, len)
- fsm *f;
- int id;
- u_char *inp;
- int len;
-{
- u_int32_t magic;
-
- /* Check the magic number - don't count replies from ourselves. */
- if (len < 4) {
- dbglog("lcp: received short Echo-Reply, length %d", len);
- return;
- }
- GETLONG(magic, inp);
- if (lcp_gotoptions[f->unit].neg_magicnumber
- && magic == lcp_gotoptions[f->unit].magicnumber) {
- warn("appear to have received our own echo-reply!");
- return;
- }
-
- /* Reset the number of outstanding echo frames */
- lcp_echos_pending = 0;
-}
-
-/*
- * LcpSendEchoRequest - Send an echo request frame to the peer
- */
-
-static void
-LcpSendEchoRequest (f)
- fsm *f;
-{
- u_int32_t lcp_magic;
- u_char pkt[4], *pktp;
-
- /*
- * Detect the failure of the peer at this point.
- */
- if (lcp_echo_fails != 0) {
- if (lcp_echos_pending >= lcp_echo_fails) {
- LcpLinkFailure(f);
- lcp_echos_pending = 0;
- }
- }
-
- /*
- * Make and send the echo request frame.
- */
- if (f->state == OPENED) {
- lcp_magic = lcp_gotoptions[f->unit].magicnumber;
- pktp = pkt;
- PUTLONG(lcp_magic, pktp);
- fsm_sdata(f, ECHOREQ, lcp_echo_number++ & 0xFF, pkt, pktp - pkt);
- ++lcp_echos_pending;
- }
-}
-
-/*
- * lcp_echo_lowerup - Start the timer for the LCP frame
- */
-
-static void
-lcp_echo_lowerup (unit)
- int unit;
-{
- fsm *f = &lcp_fsm[unit];
-
- /* Clear the parameters for generating echo frames */
- lcp_echos_pending = 0;
- lcp_echo_number = 0;
- lcp_echo_timer_running = 0;
-
- /* If a timeout interval is specified then start the timer */
- if (lcp_echo_interval != 0)
- LcpEchoCheck (f);
-}
-
-/*
- * lcp_echo_lowerdown - Stop the timer for the LCP frame
- */
-
-static void
-lcp_echo_lowerdown (unit)
- int unit;
-{
- fsm *f = &lcp_fsm[unit];
-
- if (lcp_echo_timer_running != 0) {
- UNTIMEOUT (LcpEchoTimeout, f);
- lcp_echo_timer_running = 0;
- }
-}
diff --git a/mdk-stage1/ppp/pppd/lcp.h b/mdk-stage1/ppp/pppd/lcp.h
deleted file mode 100644
index b87a9295e..000000000
--- a/mdk-stage1/ppp/pppd/lcp.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * lcp.h - Link Control Protocol definitions.
- *
- * Copyright (c) 1989 Carnegie Mellon University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Carnegie Mellon University. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Id$
- */
-
-/*
- * Options.
- */
-#define CI_MRU 1 /* Maximum Receive Unit */
-#define CI_ASYNCMAP 2 /* Async Control Character Map */
-#define CI_AUTHTYPE 3 /* Authentication Type */
-#define CI_QUALITY 4 /* Quality Protocol */
-#define CI_MAGICNUMBER 5 /* Magic Number */
-#define CI_PCOMPRESSION 7 /* Protocol Field Compression */
-#define CI_ACCOMPRESSION 8 /* Address/Control Field Compression */
-#define CI_CALLBACK 13 /* callback */
-#define CI_MRRU 17 /* max reconstructed receive unit; multilink */
-#define CI_SSNHF 18 /* short sequence numbers for multilink */
-#define CI_EPDISC 19 /* endpoint discriminator */
-
-/*
- * LCP-specific packet types.
- */
-#define PROTREJ 8 /* Protocol Reject */
-#define ECHOREQ 9 /* Echo Request */
-#define ECHOREP 10 /* Echo Reply */
-#define DISCREQ 11 /* Discard Request */
-#define CBCP_OPT 6 /* Use callback control protocol */
-
-/*
- * The state of options is described by an lcp_options structure.
- */
-typedef struct lcp_options {
- bool passive; /* Don't die if we don't get a response */
- bool silent; /* Wait for the other end to start first */
- bool restart; /* Restart vs. exit after close */
- bool neg_mru; /* Negotiate the MRU? */
- bool neg_asyncmap; /* Negotiate the async map? */
- bool neg_upap; /* Ask for UPAP authentication? */
- bool neg_chap; /* Ask for CHAP authentication? */
- bool neg_magicnumber; /* Ask for magic number? */
- bool neg_pcompression; /* HDLC Protocol Field Compression? */
- bool neg_accompression; /* HDLC Address/Control Field Compression? */
- bool neg_lqr; /* Negotiate use of Link Quality Reports */
- bool neg_cbcp; /* Negotiate use of CBCP */
- bool neg_mrru; /* negotiate multilink MRRU */
- bool neg_ssnhf; /* negotiate short sequence numbers */
- bool neg_endpoint; /* negotiate endpoint discriminator */
- int mru; /* Value of MRU */
- int mrru; /* Value of MRRU, and multilink enable */
- u_char chap_mdtype; /* which MD type (hashing algorithm) */
- u_int32_t asyncmap; /* Value of async map */
- u_int32_t magicnumber;
- int numloops; /* Number of loops during magic number neg. */
- u_int32_t lqr_period; /* Reporting period for LQR 1/100ths second */
- struct epdisc endpoint; /* endpoint discriminator */
-} lcp_options;
-
-extern fsm lcp_fsm[];
-extern lcp_options lcp_wantoptions[];
-extern lcp_options lcp_gotoptions[];
-extern lcp_options lcp_allowoptions[];
-extern lcp_options lcp_hisoptions[];
-
-#define DEFMRU 1500 /* Try for this */
-#define MINMRU 128 /* No MRUs below this */
-#define MAXMRU 16384 /* Normally limit MRU to this */
-
-void lcp_open __P((int));
-void lcp_close __P((int, char *));
-void lcp_lowerup __P((int));
-void lcp_lowerdown __P((int));
-void lcp_sprotrej __P((int, u_char *, int)); /* send protocol reject */
-
-extern struct protent lcp_protent;
-
-/* Default number of times we receive our magic number from the peer
- before deciding the link is looped-back. */
-#define DEFLOOPBACKFAIL 10
diff --git a/mdk-stage1/ppp/pppd/magic.c b/mdk-stage1/ppp/pppd/magic.c
deleted file mode 100644
index 1682dee03..000000000
--- a/mdk-stage1/ppp/pppd/magic.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * magic.c - PPP Magic Number routines.
- *
- * Copyright (c) 1989 Carnegie Mellon University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Carnegie Mellon University. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#define RCSID "$Id$"
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/time.h>
-
-#include "pppd.h"
-#include "magic.h"
-
-static const char rcsid[] = RCSID;
-
-extern long mrand48 __P((void));
-extern void srand48 __P((long));
-
-/*
- * magic_init - Initialize the magic number generator.
- *
- * Attempts to compute a random number seed which will not repeat.
- * The current method uses the current hostid, current process ID
- * and current time, currently.
- */
-void
-magic_init()
-{
- long seed;
- struct timeval t;
-
- gettimeofday(&t, NULL);
- seed = get_host_seed() ^ t.tv_sec ^ t.tv_usec ^ getpid();
- srand48(seed);
-}
-
-/*
- * magic - Returns the next magic number.
- */
-u_int32_t
-magic()
-{
- return (u_int32_t) mrand48();
-}
-
-#ifdef NO_DRAND48
-/*
- * Substitute procedures for those systems which don't have
- * drand48 et al.
- */
-
-double
-drand48()
-{
- return (double)random() / (double)0x7fffffffL; /* 2**31-1 */
-}
-
-long
-mrand48()
-{
- return random();
-}
-
-void
-srand48(seedval)
-long seedval;
-{
- srandom((int)seedval);
-}
-
-#endif
diff --git a/mdk-stage1/ppp/pppd/magic.h b/mdk-stage1/ppp/pppd/magic.h
deleted file mode 100644
index 1344626a3..000000000
--- a/mdk-stage1/ppp/pppd/magic.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * magic.h - PPP Magic Number definitions.
- *
- * Copyright (c) 1989 Carnegie Mellon University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Carnegie Mellon University. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Id$
- */
-
-void magic_init __P((void)); /* Initialize the magic number generator */
-u_int32_t magic __P((void)); /* Returns the next magic number */
diff --git a/mdk-stage1/ppp/pppd/main.c b/mdk-stage1/ppp/pppd/main.c
deleted file mode 100644
index c074938cd..000000000
--- a/mdk-stage1/ppp/pppd/main.c
+++ /dev/null
@@ -1,1846 +0,0 @@
-/*
- * main.c - Point-to-Point Protocol main module
- *
- * Copyright (c) 1989 Carnegie Mellon University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Carnegie Mellon University. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#define RCSID "$Id$"
-
-#include <stdio.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <signal.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <syslog.h>
-#include <netdb.h>
-#include <utmp.h>
-#include <pwd.h>
-#include <setjmp.h>
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <sys/stat.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#include "pppd.h"
-#include "magic.h"
-#include "fsm.h"
-#include "lcp.h"
-#include "ipcp.h"
-#ifdef INET6
-#include "ipv6cp.h"
-#endif
-#include "upap.h"
-#include "chap.h"
-#include "ccp.h"
-#include "pathnames.h"
-#include "tdb.h"
-
-#ifdef CBCP_SUPPORT
-#include "cbcp.h"
-#endif
-
-#ifdef IPX_CHANGE
-#include "ipxcp.h"
-#endif /* IPX_CHANGE */
-#ifdef AT_CHANGE
-#include "atcp.h"
-#endif
-
-static const char rcsid[] = RCSID;
-
-/* interface vars */
-char ifname[32]; /* Interface name */
-int ifunit; /* Interface unit number */
-
-struct channel *the_channel;
-
-char *progname; /* Name of this program */
-char hostname[MAXNAMELEN]; /* Our hostname */
-static char pidfilename[MAXPATHLEN]; /* name of pid file */
-static char linkpidfile[MAXPATHLEN]; /* name of linkname pid file */
-char ppp_devnam[MAXPATHLEN]; /* name of PPP tty (maybe ttypx) */
-uid_t uid; /* Our real user-id */
-struct notifier *pidchange = NULL;
-struct notifier *phasechange = NULL;
-struct notifier *exitnotify = NULL;
-struct notifier *sigreceived = NULL;
-
-int hungup; /* terminal has been hung up */
-int privileged; /* we're running as real uid root */
-int need_holdoff; /* need holdoff period before restarting */
-int detached; /* have detached from terminal */
-volatile int status; /* exit status for pppd */
-int unsuccess; /* # unsuccessful connection attempts */
-int do_callback; /* != 0 if we should do callback next */
-int doing_callback; /* != 0 if we are doing callback */
-TDB_CONTEXT *pppdb; /* database for storing status etc. */
-char db_key[32];
-
-int (*holdoff_hook) __P((void)) = NULL;
-int (*new_phase_hook) __P((int)) = NULL;
-
-static int conn_running; /* we have a [dis]connector running */
-static int devfd; /* fd of underlying device */
-static int fd_ppp = -1; /* fd for talking PPP */
-static int fd_loop; /* fd for getting demand-dial packets */
-
-int phase; /* where the link is at */
-int kill_link;
-int open_ccp_flag;
-int listen_time;
-int got_sigusr2;
-int got_sigterm;
-int got_sighup;
-
-static int waiting;
-static sigjmp_buf sigjmp;
-
-char **script_env; /* Env. variable values for scripts */
-int s_env_nalloc; /* # words avail at script_env */
-
-u_char outpacket_buf[PPP_MRU+PPP_HDRLEN]; /* buffer for outgoing packet */
-u_char inpacket_buf[PPP_MRU+PPP_HDRLEN]; /* buffer for incoming packet */
-
-static int n_children; /* # child processes still running */
-static int got_sigchld; /* set if we have received a SIGCHLD */
-
-int privopen; /* don't lock, open device as root */
-
-char *no_ppp_msg = "Sorry - this system lacks PPP kernel support\n";
-
-GIDSET_TYPE groups[NGROUPS_MAX];/* groups the user is in */
-int ngroups; /* How many groups valid in groups */
-
-static struct timeval start_time; /* Time when link was started. */
-
-struct pppd_stats link_stats;
-int link_connect_time;
-int link_stats_valid;
-
-/*
- * We maintain a list of child process pids and
- * functions to call when they exit.
- */
-struct subprocess {
- pid_t pid;
- char *prog;
- void (*done) __P((void *));
- void *arg;
- struct subprocess *next;
-};
-
-static struct subprocess *children;
-
-/* Prototypes for procedures local to this file. */
-
-static void setup_signals __P((void));
-static void create_pidfile __P((void));
-static void create_linkpidfile __P((void));
-static void cleanup __P((void));
-static void get_input __P((void));
-static void calltimeout __P((void));
-static struct timeval *timeleft __P((struct timeval *));
-static void kill_my_pg __P((int));
-static void hup __P((int));
-static void term __P((int));
-static void chld __P((int));
-static void toggle_debug __P((int));
-static void open_ccp __P((int));
-static void bad_signal __P((int));
-static void holdoff_end __P((void *));
-static int reap_kids __P((int waitfor));
-static void update_db_entry __P((void));
-static void add_db_key __P((const char *));
-static void delete_db_key __P((const char *));
-static void cleanup_db __P((void));
-static void handle_events __P((void));
-
-extern char *ttyname __P((int));
-extern char *getlogin __P((void));
-int main __P((int, char *[]));
-
-#ifdef ultrix
-#undef O_NONBLOCK
-#define O_NONBLOCK O_NDELAY
-#endif
-
-#ifdef ULTRIX
-#define setlogmask(x)
-#endif
-
-/*
- * PPP Data Link Layer "protocol" table.
- * One entry per supported protocol.
- * The last entry must be NULL.
- */
-struct protent *protocols[] = {
- &lcp_protent,
- &pap_protent,
- &chap_protent,
-#ifdef CBCP_SUPPORT
- &cbcp_protent,
-#endif
- &ipcp_protent,
-#ifdef INET6
- &ipv6cp_protent,
-#endif
- &ccp_protent,
-#ifdef IPX_CHANGE
- &ipxcp_protent,
-#endif
-#ifdef AT_CHANGE
- &atcp_protent,
-#endif
- NULL
-};
-
-/*
- * If PPP_DRV_NAME is not defined, use the default "ppp" as the device name.
- */
-#if !defined(PPP_DRV_NAME)
-#define PPP_DRV_NAME "ppp"
-#endif /* !defined(PPP_DRV_NAME) */
-
-int
-main(argc, argv)
- int argc;
- char *argv[];
-{
- int i, t;
- char *p;
- struct passwd *pw;
- struct protent *protp;
- char numbuf[16];
-
- new_phase(PHASE_INITIALIZE);
-
- /*
- * Ensure that fds 0, 1, 2 are open, to /dev/null if nowhere else.
- * This way we can close 0, 1, 2 in detach() without clobbering
- * a fd that we are using.
- */
- if ((i = open("/dev/null", O_RDWR)) >= 0) {
- while (0 <= i && i <= 2)
- i = dup(i);
- if (i >= 0)
- close(i);
- }
-
- script_env = NULL;
-
- /* Initialize syslog facilities */
- reopen_log();
-
- if (gethostname(hostname, MAXNAMELEN) < 0 ) {
- option_error("Couldn't get hostname: %m");
- exit(1);
- }
- hostname[MAXNAMELEN-1] = 0;
-
- /* make sure we don't create world or group writable files. */
- umask(umask(0777) | 022);
-
- uid = getuid();
- privileged = uid == 0;
- slprintf(numbuf, sizeof(numbuf), "%d", uid);
- script_setenv("ORIG_UID", numbuf, 0);
-
- ngroups = getgroups(NGROUPS_MAX, groups);
-
- /*
- * Initialize magic number generator now so that protocols may
- * use magic numbers in initialization.
- */
- magic_init();
-
- /*
- * Initialize each protocol.
- */
- for (i = 0; (protp = protocols[i]) != NULL; ++i)
- (*protp->init)(0);
-
- /*
- * Initialize the default channel.
- */
- tty_init();
-
- progname = *argv;
-
- /*
- * Parse, in order, the system options file, the user's options file,
- * and the command line arguments.
- */
- if (!options_from_file(_PATH_SYSOPTIONS, !privileged, 0, 1)
- || !options_from_user()
- || !parse_args(argc-1, argv+1))
- exit(EXIT_OPTION_ERROR);
- devnam_fixed = 1; /* can no longer change device name */
-
- /*
- * Work out the device name, if it hasn't already been specified,
- * and parse the tty's options file.
- */
- if (the_channel->process_extra_options)
- (*the_channel->process_extra_options)();
-
- if (debug)
- setlogmask(LOG_UPTO(LOG_DEBUG));
-
- /*
- * Check that we are running as root.
- */
- if (geteuid() != 0) {
- option_error("must be root to run %s, since it is not setuid-root",
- argv[0]);
- exit(EXIT_NOT_ROOT);
- }
-
- if (!ppp_available()) {
- option_error("%s", no_ppp_msg);
- exit(EXIT_NO_KERNEL_SUPPORT);
- }
-
- /*
- * Check that the options given are valid and consistent.
- */
- check_options();
- if (!sys_check_options())
- exit(EXIT_OPTION_ERROR);
- auth_check_options();
-#ifdef HAVE_MULTILINK
- mp_check_options();
-#endif
- for (i = 0; (protp = protocols[i]) != NULL; ++i)
- if (protp->check_options != NULL)
- (*protp->check_options)();
- if (the_channel->check_options)
- (*the_channel->check_options)();
-
-
- if (dump_options || dryrun) {
- init_pr_log(NULL, LOG_INFO);
- print_options(pr_log, NULL);
- end_pr_log();
- if (dryrun)
- die(0);
- }
-
- /*
- * Initialize system-dependent stuff.
- */
- sys_init();
-
- pppdb = tdb_open(_PATH_PPPDB, 0, 0, O_RDWR|O_CREAT, 0644);
- if (pppdb != NULL) {
- slprintf(db_key, sizeof(db_key), "pppd%d", getpid());
- update_db_entry();
- } else {
- warn("Warning: couldn't open ppp database %s", _PATH_PPPDB);
- if (multilink) {
- warn("Warning: disabling multilink");
- multilink = 0;
- }
- }
-
- /*
- * Detach ourselves from the terminal, if required,
- * and identify who is running us.
- */
- if (!nodetach && !updetach)
- detach();
- p = getlogin();
- if (p == NULL) {
- pw = getpwuid(uid);
- if (pw != NULL && pw->pw_name != NULL)
- p = pw->pw_name;
- else
- p = "(unknown)";
- }
- syslog(LOG_NOTICE, "pppd %s started by %s, uid %d", VERSION, p, uid);
- script_setenv("PPPLOGNAME", p, 0);
-
- if (devnam[0])
- script_setenv("DEVICE", devnam, 1);
- slprintf(numbuf, sizeof(numbuf), "%d", getpid());
- script_setenv("PPPD_PID", numbuf, 1);
-
- setup_signals();
-
- waiting = 0;
-
- create_linkpidfile();
-
- /*
- * If we're doing dial-on-demand, set up the interface now.
- */
- if (demand) {
- /*
- * Open the loopback channel and set it up to be the ppp interface.
- */
- tdb_writelock(pppdb);
- fd_loop = open_ppp_loopback();
- set_ifunit(1);
- tdb_writeunlock(pppdb);
-
- /*
- * Configure the interface and mark it up, etc.
- */
- demand_conf();
- }
-
- do_callback = 0;
- for (;;) {
-
- listen_time = 0;
- need_holdoff = 1;
- devfd = -1;
- status = EXIT_OK;
- ++unsuccess;
- doing_callback = do_callback;
- do_callback = 0;
-
- if (demand && !doing_callback) {
- /*
- * Don't do anything until we see some activity.
- */
- new_phase(PHASE_DORMANT);
- demand_unblock();
- add_fd(fd_loop);
- for (;;) {
- handle_events();
- if (kill_link && !persist)
- break;
- if (get_loop_output())
- break;
- }
- remove_fd(fd_loop);
- if (kill_link && !persist)
- break;
-
- /*
- * Now we want to bring up the link.
- */
- demand_block();
- info("Starting link");
- }
-
- new_phase(PHASE_SERIALCONN);
-
- devfd = the_channel->connect();
- if (devfd < 0)
- goto fail;
-
- /* set up the serial device as a ppp interface */
- tdb_writelock(pppdb);
- fd_ppp = the_channel->establish_ppp(devfd);
- if (fd_ppp < 0) {
- tdb_writeunlock(pppdb);
- status = EXIT_FATAL_ERROR;
- goto disconnect;
- }
-
- if (!demand && ifunit >= 0)
- set_ifunit(1);
- tdb_writeunlock(pppdb);
-
- /*
- * Start opening the connection and wait for
- * incoming events (reply, timeout, etc.).
- */
- notice("Connect: %s <--> %s", ifname, ppp_devnam);
- gettimeofday(&start_time, NULL);
- link_stats_valid = 0;
- script_unsetenv("CONNECT_TIME");
- script_unsetenv("BYTES_SENT");
- script_unsetenv("BYTES_RCVD");
- lcp_lowerup(0);
-
- add_fd(fd_ppp);
- lcp_open(0); /* Start protocol */
- status = EXIT_NEGOTIATION_FAILED;
- new_phase(PHASE_ESTABLISH);
- while (phase != PHASE_DEAD) {
- handle_events();
- get_input();
- if (kill_link)
- lcp_close(0, "User request");
- if (open_ccp_flag) {
- if (phase == PHASE_NETWORK || phase == PHASE_RUNNING) {
- ccp_fsm[0].flags = OPT_RESTART; /* clears OPT_SILENT */
- (*ccp_protent.open)(0);
- }
- }
- }
-
- /*
- * Print connect time and statistics.
- */
- if (link_stats_valid) {
- int t = (link_connect_time + 5) / 6; /* 1/10ths of minutes */
- info("Connect time %d.%d minutes.", t/10, t%10);
- info("Sent %u bytes, received %u bytes.",
- link_stats.bytes_out, link_stats.bytes_in);
- }
-
- /*
- * Delete pid file before disestablishing ppp. Otherwise it
- * can happen that another pppd gets the same unit and then
- * we delete its pid file.
- */
- if (!demand) {
- if (pidfilename[0] != 0
- && unlink(pidfilename) < 0 && errno != ENOENT)
- warn("unable to delete pid file %s: %m", pidfilename);
- pidfilename[0] = 0;
- }
-
- /*
- * If we may want to bring the link up again, transfer
- * the ppp unit back to the loopback. Set the
- * real serial device back to its normal mode of operation.
- */
- remove_fd(fd_ppp);
- clean_check();
- the_channel->disestablish_ppp(devfd);
- fd_ppp = -1;
- if (!hungup)
- lcp_lowerdown(0);
- if (!demand)
- script_unsetenv("IFNAME");
-
- /*
- * Run disconnector script, if requested.
- * XXX we may not be able to do this if the line has hung up!
- */
- disconnect:
- new_phase(PHASE_DISCONNECT);
- the_channel->disconnect();
-
- fail:
- if (the_channel->cleanup)
- (*the_channel->cleanup)();
-
- if (!demand) {
- if (pidfilename[0] != 0
- && unlink(pidfilename) < 0 && errno != ENOENT)
- warn("unable to delete pid file %s: %m", pidfilename);
- pidfilename[0] = 0;
- }
-
- if (!persist || (maxfail > 0 && unsuccess >= maxfail))
- break;
-
- if (demand)
- demand_discard();
- t = need_holdoff? holdoff: 0;
- if (holdoff_hook)
- t = (*holdoff_hook)();
- if (t > 0) {
- new_phase(PHASE_HOLDOFF);
- TIMEOUT(holdoff_end, NULL, t);
- do {
- handle_events();
- if (kill_link)
- new_phase(PHASE_DORMANT); /* allow signal to end holdoff */
- } while (phase == PHASE_HOLDOFF);
- if (!persist)
- break;
- }
- }
-
- /* Wait for scripts to finish */
- /* XXX should have a timeout here */
- while (n_children > 0) {
- if (debug) {
- struct subprocess *chp;
- dbglog("Waiting for %d child processes...", n_children);
- for (chp = children; chp != NULL; chp = chp->next)
- dbglog(" script %s, pid %d", chp->prog, chp->pid);
- }
- if (reap_kids(1) < 0)
- break;
- }
-
- die(status);
- return 0;
-}
-
-/*
- * handle_events - wait for something to happen and respond to it.
- */
-static void
-handle_events()
-{
- struct timeval timo;
- sigset_t mask;
-
- kill_link = open_ccp_flag = 0;
- if (sigsetjmp(sigjmp, 1) == 0) {
- sigprocmask(SIG_BLOCK, &mask, NULL);
- if (got_sighup || got_sigterm || got_sigusr2 || got_sigchld) {
- sigprocmask(SIG_UNBLOCK, &mask, NULL);
- } else {
- waiting = 1;
- sigprocmask(SIG_UNBLOCK, &mask, NULL);
- wait_input(timeleft(&timo));
- }
- }
- waiting = 0;
- calltimeout();
- if (got_sighup) {
- kill_link = 1;
- got_sighup = 0;
- if (status != EXIT_HANGUP)
- status = EXIT_USER_REQUEST;
- }
- if (got_sigterm) {
- kill_link = 1;
- persist = 0;
- status = EXIT_USER_REQUEST;
- got_sigterm = 0;
- }
- if (got_sigchld) {
- reap_kids(0); /* Don't leave dead kids lying around */
- got_sigchld = 0;
- }
- if (got_sigusr2) {
- open_ccp_flag = 1;
- got_sigusr2 = 0;
- }
-}
-
-/*
- * setup_signals - initialize signal handling.
- */
-static void
-setup_signals()
-{
- struct sigaction sa;
- sigset_t mask;
-
- /*
- * Compute mask of all interesting signals and install signal handlers
- * for each. Only one signal handler may be active at a time. Therefore,
- * all other signals should be masked when any handler is executing.
- */
- sigemptyset(&mask);
- sigaddset(&mask, SIGHUP);
- sigaddset(&mask, SIGINT);
- sigaddset(&mask, SIGTERM);
- sigaddset(&mask, SIGCHLD);
- sigaddset(&mask, SIGUSR2);
-
-#define SIGNAL(s, handler) do { \
- sa.sa_handler = handler; \
- if (sigaction(s, &sa, NULL) < 0) \
- fatal("Couldn't establish signal handler (%d): %m", s); \
- } while (0)
-
- sa.sa_mask = mask;
- sa.sa_flags = 0;
- SIGNAL(SIGHUP, hup); /* Hangup */
- SIGNAL(SIGINT, term); /* Interrupt */
- SIGNAL(SIGTERM, term); /* Terminate */
- SIGNAL(SIGCHLD, chld);
-
- SIGNAL(SIGUSR1, toggle_debug); /* Toggle debug flag */
- SIGNAL(SIGUSR2, open_ccp); /* Reopen CCP */
-
- /*
- * Install a handler for other signals which would otherwise
- * cause pppd to exit without cleaning up.
- */
- SIGNAL(SIGABRT, bad_signal);
- SIGNAL(SIGALRM, bad_signal);
- SIGNAL(SIGFPE, bad_signal);
- SIGNAL(SIGILL, bad_signal);
- SIGNAL(SIGPIPE, bad_signal);
- SIGNAL(SIGQUIT, bad_signal);
- SIGNAL(SIGSEGV, bad_signal);
-#ifdef SIGBUS
- SIGNAL(SIGBUS, bad_signal);
-#endif
-#ifdef SIGEMT
- SIGNAL(SIGEMT, bad_signal);
-#endif
-#ifdef SIGPOLL
- SIGNAL(SIGPOLL, bad_signal);
-#endif
-#ifdef SIGPROF
- SIGNAL(SIGPROF, bad_signal);
-#endif
-#ifdef SIGSYS
- SIGNAL(SIGSYS, bad_signal);
-#endif
-#ifdef SIGTRAP
- SIGNAL(SIGTRAP, bad_signal);
-#endif
-#ifdef SIGVTALRM
- SIGNAL(SIGVTALRM, bad_signal);
-#endif
-#ifdef SIGXCPU
- SIGNAL(SIGXCPU, bad_signal);
-#endif
-#ifdef SIGXFSZ
- SIGNAL(SIGXFSZ, bad_signal);
-#endif
-
- /*
- * Apparently we can get a SIGPIPE when we call syslog, if
- * syslogd has died and been restarted. Ignoring it seems
- * be sufficient.
- */
- signal(SIGPIPE, SIG_IGN);
-}
-
-/*
- * set_ifunit - do things we need to do once we know which ppp
- * unit we are using.
- */
-void
-set_ifunit(iskey)
- int iskey;
-{
- info("Using interface %s%d", PPP_DRV_NAME, ifunit);
- slprintf(ifname, sizeof(ifname), "%s%d", PPP_DRV_NAME, ifunit);
- script_setenv("IFNAME", ifname, iskey);
- if (iskey) {
- create_pidfile(); /* write pid to file */
- create_linkpidfile();
- }
-}
-
-/*
- * detach - detach us from the controlling terminal.
- */
-void
-detach()
-{
- int pid;
- char numbuf[16];
-
- if (detached)
- return;
- if ((pid = fork()) < 0) {
- error("Couldn't detach (fork failed: %m)");
- die(1); /* or just return? */
- }
- if (pid != 0) {
- /* parent */
- notify(pidchange, pid);
- exit(0); /* parent dies */
- }
- setsid();
- chdir("/");
- close(0);
- close(1);
- close(2);
- detached = 1;
- if (log_default)
- log_to_fd = -1;
- /* update pid files if they have been written already */
- if (pidfilename[0])
- create_pidfile();
- if (linkpidfile[0])
- create_linkpidfile();
- slprintf(numbuf, sizeof(numbuf), "%d", getpid());
- script_setenv("PPPD_PID", numbuf, 1);
-}
-
-/*
- * reopen_log - (re)open our connection to syslog.
- */
-void
-reopen_log()
-{
-#ifdef ULTRIX
- openlog("pppd", LOG_PID);
-#else
- openlog("pppd", LOG_PID | LOG_NDELAY, LOG_PPP);
- setlogmask(LOG_UPTO(LOG_INFO));
-#endif
-}
-
-/*
- * Create a file containing our process ID.
- */
-static void
-create_pidfile()
-{
- FILE *pidfile;
-
- slprintf(pidfilename, sizeof(pidfilename), "%s%s.pid",
- _PATH_VARRUN, ifname);
- if ((pidfile = fopen(pidfilename, "w")) != NULL) {
- fprintf(pidfile, "%d\n", getpid());
- (void) fclose(pidfile);
- } else {
- error("Failed to create pid file %s: %m", pidfilename);
- pidfilename[0] = 0;
- }
-}
-
-static void
-create_linkpidfile()
-{
- FILE *pidfile;
-
- if (linkname[0] == 0)
- return;
- script_setenv("LINKNAME", linkname, 1);
- slprintf(linkpidfile, sizeof(linkpidfile), "%sppp-%s.pid",
- _PATH_VARRUN, linkname);
- if ((pidfile = fopen(linkpidfile, "w")) != NULL) {
- fprintf(pidfile, "%d\n", getpid());
- if (ifname[0])
- fprintf(pidfile, "%s\n", ifname);
- (void) fclose(pidfile);
- } else {
- error("Failed to create pid file %s: %m", linkpidfile);
- linkpidfile[0] = 0;
- }
-}
-
-/*
- * holdoff_end - called via a timeout when the holdoff period ends.
- */
-static void
-holdoff_end(arg)
- void *arg;
-{
- new_phase(PHASE_DORMANT);
-}
-
-/* List of protocol names, to make our messages a little more informative. */
-struct protocol_list {
- u_short proto;
- const char *name;
-} protocol_list[] = {
- { 0x21, "IP" },
- { 0x23, "OSI Network Layer" },
- { 0x25, "Xerox NS IDP" },
- { 0x27, "DECnet Phase IV" },
- { 0x29, "Appletalk" },
- { 0x2b, "Novell IPX" },
- { 0x2d, "VJ compressed TCP/IP" },
- { 0x2f, "VJ uncompressed TCP/IP" },
- { 0x31, "Bridging PDU" },
- { 0x33, "Stream Protocol ST-II" },
- { 0x35, "Banyan Vines" },
- { 0x39, "AppleTalk EDDP" },
- { 0x3b, "AppleTalk SmartBuffered" },
- { 0x3d, "Multi-Link" },
- { 0x3f, "NETBIOS Framing" },
- { 0x41, "Cisco Systems" },
- { 0x43, "Ascom Timeplex" },
- { 0x45, "Fujitsu Link Backup and Load Balancing (LBLB)" },
- { 0x47, "DCA Remote Lan" },
- { 0x49, "Serial Data Transport Protocol (PPP-SDTP)" },
- { 0x4b, "SNA over 802.2" },
- { 0x4d, "SNA" },
- { 0x4f, "IP6 Header Compression" },
- { 0x6f, "Stampede Bridging" },
- { 0xfb, "single-link compression" },
- { 0xfd, "1st choice compression" },
- { 0x0201, "802.1d Hello Packets" },
- { 0x0203, "IBM Source Routing BPDU" },
- { 0x0205, "DEC LANBridge100 Spanning Tree" },
- { 0x0231, "Luxcom" },
- { 0x0233, "Sigma Network Systems" },
- { 0x8021, "Internet Protocol Control Protocol" },
- { 0x8023, "OSI Network Layer Control Protocol" },
- { 0x8025, "Xerox NS IDP Control Protocol" },
- { 0x8027, "DECnet Phase IV Control Protocol" },
- { 0x8029, "Appletalk Control Protocol" },
- { 0x802b, "Novell IPX Control Protocol" },
- { 0x8031, "Bridging NCP" },
- { 0x8033, "Stream Protocol Control Protocol" },
- { 0x8035, "Banyan Vines Control Protocol" },
- { 0x803d, "Multi-Link Control Protocol" },
- { 0x803f, "NETBIOS Framing Control Protocol" },
- { 0x8041, "Cisco Systems Control Protocol" },
- { 0x8043, "Ascom Timeplex" },
- { 0x8045, "Fujitsu LBLB Control Protocol" },
- { 0x8047, "DCA Remote Lan Network Control Protocol (RLNCP)" },
- { 0x8049, "Serial Data Control Protocol (PPP-SDCP)" },
- { 0x804b, "SNA over 802.2 Control Protocol" },
- { 0x804d, "SNA Control Protocol" },
- { 0x804f, "IP6 Header Compression Control Protocol" },
- { 0x006f, "Stampede Bridging Control Protocol" },
- { 0x80fb, "Single Link Compression Control Protocol" },
- { 0x80fd, "Compression Control Protocol" },
- { 0xc021, "Link Control Protocol" },
- { 0xc023, "Password Authentication Protocol" },
- { 0xc025, "Link Quality Report" },
- { 0xc027, "Shiva Password Authentication Protocol" },
- { 0xc029, "CallBack Control Protocol (CBCP)" },
- { 0xc081, "Container Control Protocol" },
- { 0xc223, "Challenge Handshake Authentication Protocol" },
- { 0xc281, "Proprietary Authentication Protocol" },
- { 0, NULL },
-};
-
-/*
- * protocol_name - find a name for a PPP protocol.
- */
-const char *
-protocol_name(proto)
- int proto;
-{
- struct protocol_list *lp;
-
- for (lp = protocol_list; lp->proto != 0; ++lp)
- if (proto == lp->proto)
- return lp->name;
- return NULL;
-}
-
-/*
- * get_input - called when incoming data is available.
- */
-static void
-get_input()
-{
- int len, i;
- u_char *p;
- u_short protocol;
- struct protent *protp;
-
- p = inpacket_buf; /* point to beginning of packet buffer */
-
- len = read_packet(inpacket_buf);
- if (len < 0)
- return;
-
- if (len == 0) {
- notice("Modem hangup");
- hungup = 1;
- status = EXIT_HANGUP;
- lcp_lowerdown(0); /* serial link is no longer available */
- link_terminated(0);
- return;
- }
-
- if (debug /*&& (debugflags & DBG_INPACKET)*/)
- dbglog("rcvd %P", p, len);
-
- if (len < PPP_HDRLEN) {
- MAINDEBUG(("io(): Received short packet."));
- return;
- }
-
- p += 2; /* Skip address and control */
- GETSHORT(protocol, p);
- len -= PPP_HDRLEN;
-
- /*
- * Toss all non-LCP packets unless LCP is OPEN.
- */
- if (protocol != PPP_LCP && lcp_fsm[0].state != OPENED) {
- MAINDEBUG(("get_input: Received non-LCP packet when LCP not open."));
- return;
- }
-
- /*
- * Until we get past the authentication phase, toss all packets
- * except LCP, LQR and authentication packets.
- */
- if (phase <= PHASE_AUTHENTICATE
- && !(protocol == PPP_LCP || protocol == PPP_LQR
- || protocol == PPP_PAP || protocol == PPP_CHAP)) {
- MAINDEBUG(("get_input: discarding proto 0x%x in phase %d",
- protocol, phase));
- return;
- }
-
- /*
- * Upcall the proper protocol input routine.
- */
- for (i = 0; (protp = protocols[i]) != NULL; ++i) {
- if (protp->protocol == protocol && protp->enabled_flag) {
- (*protp->input)(0, p, len);
- return;
- }
- if (protocol == (protp->protocol & ~0x8000) && protp->enabled_flag
- && protp->datainput != NULL) {
- (*protp->datainput)(0, p, len);
- return;
- }
- }
-
- if (debug) {
- const char *pname = protocol_name(protocol);
- if (pname != NULL)
- warn("Unsupported protocol '%s' (0x%x) received", pname, protocol);
- else
- warn("Unsupported protocol 0x%x received", protocol);
- }
- lcp_sprotrej(0, p - PPP_HDRLEN, len + PPP_HDRLEN);
-}
-
-/*
- * new_phase - signal the start of a new phase of pppd's operation.
- */
-void
-new_phase(p)
- int p;
-{
- phase = p;
- if (new_phase_hook)
- (*new_phase_hook)(p);
- notify(phasechange, p);
-}
-
-/*
- * die - clean up state and exit with the specified status.
- */
-void
-die(status)
- int status;
-{
- cleanup();
- notify(exitnotify, status);
- syslog(LOG_INFO, "Exit.");
- exit(status);
-}
-
-/*
- * cleanup - restore anything which needs to be restored before we exit
- */
-/* ARGSUSED */
-static void
-cleanup()
-{
- sys_cleanup();
-
- if (fd_ppp >= 0)
- the_channel->disestablish_ppp(devfd);
- if (the_channel->cleanup)
- (*the_channel->cleanup)();
-
- if (pidfilename[0] != 0 && unlink(pidfilename) < 0 && errno != ENOENT)
- warn("unable to delete pid file %s: %m", pidfilename);
- pidfilename[0] = 0;
- if (linkpidfile[0] != 0 && unlink(linkpidfile) < 0 && errno != ENOENT)
- warn("unable to delete pid file %s: %m", linkpidfile);
- linkpidfile[0] = 0;
-
- if (pppdb != NULL)
- cleanup_db();
-}
-
-/*
- * update_link_stats - get stats at link termination.
- */
-void
-update_link_stats(u)
- int u;
-{
- struct timeval now;
- char numbuf[32];
-
- if (!get_ppp_stats(u, &link_stats)
- || gettimeofday(&now, NULL) < 0)
- return;
- link_connect_time = now.tv_sec - start_time.tv_sec;
- link_stats_valid = 1;
-
- slprintf(numbuf, sizeof(numbuf), "%d", link_connect_time);
- script_setenv("CONNECT_TIME", numbuf, 0);
- slprintf(numbuf, sizeof(numbuf), "%d", link_stats.bytes_out);
- script_setenv("BYTES_SENT", numbuf, 0);
- slprintf(numbuf, sizeof(numbuf), "%d", link_stats.bytes_in);
- script_setenv("BYTES_RCVD", numbuf, 0);
-}
-
-
-struct callout {
- struct timeval c_time; /* time at which to call routine */
- void *c_arg; /* argument to routine */
- void (*c_func) __P((void *)); /* routine */
- struct callout *c_next;
-};
-
-static struct callout *callout = NULL; /* Callout list */
-static struct timeval timenow; /* Current time */
-
-/*
- * timeout - Schedule a timeout.
- *
- * Note that this timeout takes the number of milliseconds, NOT hz (as in
- * the kernel).
- */
-void
-timeout(func, arg, secs, usecs)
- void (*func) __P((void *));
- void *arg;
- int secs, usecs;
-{
- struct callout *newp, *p, **pp;
-
- MAINDEBUG(("Timeout %p:%p in %d.%03d seconds.", func, arg,
- time / 1000, time % 1000));
-
- /*
- * Allocate timeout.
- */
- if ((newp = (struct callout *) malloc(sizeof(struct callout))) == NULL)
- fatal("Out of memory in timeout()!");
- newp->c_arg = arg;
- newp->c_func = func;
- gettimeofday(&timenow, NULL);
- newp->c_time.tv_sec = timenow.tv_sec + secs;
- newp->c_time.tv_usec = timenow.tv_usec + usecs;
- if (newp->c_time.tv_usec >= 1000000) {
- newp->c_time.tv_sec += newp->c_time.tv_usec / 1000000;
- newp->c_time.tv_usec %= 1000000;
- }
-
- /*
- * Find correct place and link it in.
- */
- for (pp = &callout; (p = *pp); pp = &p->c_next)
- if (newp->c_time.tv_sec < p->c_time.tv_sec
- || (newp->c_time.tv_sec == p->c_time.tv_sec
- && newp->c_time.tv_usec < p->c_time.tv_usec))
- break;
- newp->c_next = p;
- *pp = newp;
-}
-
-
-/*
- * untimeout - Unschedule a timeout.
- */
-void
-untimeout(func, arg)
- void (*func) __P((void *));
- void *arg;
-{
- struct callout **copp, *freep;
-
- MAINDEBUG(("Untimeout %p:%p.", func, arg));
-
- /*
- * Find first matching timeout and remove it from the list.
- */
- for (copp = &callout; (freep = *copp); copp = &freep->c_next)
- if (freep->c_func == func && freep->c_arg == arg) {
- *copp = freep->c_next;
- free((char *) freep);
- break;
- }
-}
-
-
-/*
- * calltimeout - Call any timeout routines which are now due.
- */
-static void
-calltimeout()
-{
- struct callout *p;
-
- while (callout != NULL) {
- p = callout;
-
- if (gettimeofday(&timenow, NULL) < 0)
- fatal("Failed to get time of day: %m");
- if (!(p->c_time.tv_sec < timenow.tv_sec
- || (p->c_time.tv_sec == timenow.tv_sec
- && p->c_time.tv_usec <= timenow.tv_usec)))
- break; /* no, it's not time yet */
-
- callout = p->c_next;
- (*p->c_func)(p->c_arg);
-
- free((char *) p);
- }
-}
-
-
-/*
- * timeleft - return the length of time until the next timeout is due.
- */
-static struct timeval *
-timeleft(tvp)
- struct timeval *tvp;
-{
- if (callout == NULL)
- return NULL;
-
- gettimeofday(&timenow, NULL);
- tvp->tv_sec = callout->c_time.tv_sec - timenow.tv_sec;
- tvp->tv_usec = callout->c_time.tv_usec - timenow.tv_usec;
- if (tvp->tv_usec < 0) {
- tvp->tv_usec += 1000000;
- tvp->tv_sec -= 1;
- }
- if (tvp->tv_sec < 0)
- tvp->tv_sec = tvp->tv_usec = 0;
-
- return tvp;
-}
-
-
-/*
- * kill_my_pg - send a signal to our process group, and ignore it ourselves.
- */
-static void
-kill_my_pg(sig)
- int sig;
-{
- struct sigaction act, oldact;
-
- act.sa_handler = SIG_IGN;
- act.sa_flags = 0;
- kill(0, sig);
- sigaction(sig, &act, &oldact);
- sigaction(sig, &oldact, NULL);
-}
-
-
-/*
- * hup - Catch SIGHUP signal.
- *
- * Indicates that the physical layer has been disconnected.
- * We don't rely on this indication; if the user has sent this
- * signal, we just take the link down.
- */
-static void
-hup(sig)
- int sig;
-{
- info("Hangup (SIGHUP)");
- got_sighup = 1;
- if (conn_running)
- /* Send the signal to the [dis]connector process(es) also */
- kill_my_pg(sig);
- notify(sigreceived, sig);
- if (waiting)
- siglongjmp(sigjmp, 1);
-}
-
-
-/*
- * term - Catch SIGTERM signal and SIGINT signal (^C/del).
- *
- * Indicates that we should initiate a graceful disconnect and exit.
- */
-/*ARGSUSED*/
-static void
-term(sig)
- int sig;
-{
- info("Terminating on signal %d.", sig);
- got_sigterm = 1;
- if (conn_running)
- /* Send the signal to the [dis]connector process(es) also */
- kill_my_pg(sig);
- notify(sigreceived, sig);
- if (waiting)
- siglongjmp(sigjmp, 1);
-}
-
-
-/*
- * chld - Catch SIGCHLD signal.
- * Sets a flag so we will call reap_kids in the mainline.
- */
-static void
-chld(sig)
- int sig;
-{
- got_sigchld = 1;
- if (waiting)
- siglongjmp(sigjmp, 1);
-}
-
-
-/*
- * toggle_debug - Catch SIGUSR1 signal.
- *
- * Toggle debug flag.
- */
-/*ARGSUSED*/
-static void
-toggle_debug(sig)
- int sig;
-{
- debug = !debug;
- if (debug) {
- setlogmask(LOG_UPTO(LOG_DEBUG));
- } else {
- setlogmask(LOG_UPTO(LOG_WARNING));
- }
-}
-
-
-/*
- * open_ccp - Catch SIGUSR2 signal.
- *
- * Try to (re)negotiate compression.
- */
-/*ARGSUSED*/
-static void
-open_ccp(sig)
- int sig;
-{
- got_sigusr2 = 1;
- if (waiting)
- siglongjmp(sigjmp, 1);
-}
-
-
-/*
- * bad_signal - We've caught a fatal signal. Clean up state and exit.
- */
-static void
-bad_signal(sig)
- int sig;
-{
- static int crashed = 0;
-
- if (crashed)
- _exit(127);
- crashed = 1;
- error("Fatal signal %d", sig);
- if (conn_running)
- kill_my_pg(SIGTERM);
- notify(sigreceived, sig);
- die(127);
-}
-
-
-/*
- * device_script - run a program to talk to the specified fds
- * (e.g. to run the connector or disconnector script).
- * stderr gets connected to the log fd or to the _PATH_CONNERRS file.
- */
-int
-device_script(program, in, out, dont_wait)
- char *program;
- int in, out;
- int dont_wait;
-{
- int pid, fd;
- int status = -1;
- int errfd;
-
- ++conn_running;
- pid = fork();
-
- if (pid < 0) {
- --conn_running;
- error("Failed to create child process: %m");
- return -1;
- }
-
- if (pid != 0) {
- if (dont_wait) {
- record_child(pid, program, NULL, NULL);
- status = 0;
- } else {
- while (waitpid(pid, &status, 0) < 0) {
- if (errno == EINTR)
- continue;
- fatal("error waiting for (dis)connection process: %m");
- }
- --conn_running;
- }
- return (status == 0 ? 0 : -1);
- }
-
- /* here we are executing in the child */
- /* make sure fds 0, 1, 2 are occupied */
- while ((fd = dup(in)) >= 0) {
- if (fd > 2) {
- close(fd);
- break;
- }
- }
-
- /* dup in and out to fds > 2 */
- in = dup(in);
- out = dup(out);
- if (log_to_fd >= 0) {
- errfd = dup(log_to_fd);
- } else {
- errfd = open(_PATH_CONNERRS, O_WRONLY | O_APPEND | O_CREAT, 0600);
- }
-
- /* close fds 0 - 2 and any others we can think of */
- close(0);
- close(1);
- close(2);
- sys_close();
- if (the_channel->close)
- (*the_channel->close)();
- closelog();
-
- /* dup the in, out, err fds to 0, 1, 2 */
- dup2(in, 0);
- close(in);
- dup2(out, 1);
- close(out);
- if (errfd >= 0) {
- dup2(errfd, 2);
- close(errfd);
- }
-
- setuid(uid);
- if (getuid() != uid) {
- error("setuid failed");
- exit(1);
- }
- setgid(getgid());
- {
- int argc = 0;
- char * argv[500];
- char * ptr = program;
- while (ptr != NULL) {
- argv[argc] = ptr;
- argc++;
- ptr = strchr(ptr, ' ');
- if (ptr) {
- ptr[0] = '\0';
- ptr++;
- }
- }
- argv[argc] = NULL;
- execv(argv[0], argv);
- error("could not exec %s: %m", program);
- exit(99);
- }
- /* NOTREACHED */
-}
-
-
-/*
- * run-program - execute a program with given arguments,
- * but don't wait for it.
- * If the program can't be executed, logs an error unless
- * must_exist is 0 and the program file doesn't exist.
- * Returns -1 if it couldn't fork, 0 if the file doesn't exist
- * or isn't an executable plain file, or the process ID of the child.
- * If done != NULL, (*done)(arg) will be called later (within
- * reap_kids) iff the return value is > 0.
- */
-pid_t
-run_program(prog, args, must_exist, done, arg)
- char *prog;
- char **args;
- int must_exist;
- void (*done) __P((void *));
- void *arg;
-{
- int pid;
- struct stat sbuf;
-
- /*
- * First check if the file exists and is executable.
- * We don't use access() because that would use the
- * real user-id, which might not be root, and the script
- * might be accessible only to root.
- */
- errno = EINVAL;
- if (stat(prog, &sbuf) < 0 || !S_ISREG(sbuf.st_mode)
- || (sbuf.st_mode & (S_IXUSR|S_IXGRP|S_IXOTH)) == 0) {
- if (must_exist || errno != ENOENT)
- warn("Can't execute %s: %m", prog);
- return 0;
- }
-
- pid = fork();
- if (pid == -1) {
- error("Failed to create child process for %s: %m", prog);
- return -1;
- }
- if (pid == 0) {
- int new_fd;
-
- /* Leave the current location */
- (void) setsid(); /* No controlling tty. */
- (void) umask (S_IRWXG|S_IRWXO);
- (void) chdir ("/"); /* no current directory. */
- setuid(0); /* set real UID = root */
- setgid(getegid());
-
- /* Ensure that nothing of our device environment is inherited. */
- sys_close();
- closelog();
- close (0);
- close (1);
- close (2);
- if (the_channel->close)
- (*the_channel->close)();
-
- /* Don't pass handles to the PPP device, even by accident. */
- new_fd = open (_PATH_DEVNULL, O_RDWR);
- if (new_fd >= 0) {
- if (new_fd != 0) {
- dup2 (new_fd, 0); /* stdin <- /dev/null */
- close (new_fd);
- }
- dup2 (0, 1); /* stdout -> /dev/null */
- dup2 (0, 2); /* stderr -> /dev/null */
- }
-
-#ifdef BSD
- /* Force the priority back to zero if pppd is running higher. */
- if (setpriority (PRIO_PROCESS, 0, 0) < 0)
- warn("can't reset priority to 0: %m");
-#endif
-
- /* SysV recommends a second fork at this point. */
-
- /* run the program */
- execve(prog, args, script_env);
- if (must_exist || errno != ENOENT) {
- /* have to reopen the log, there's nowhere else
- for the message to go. */
- reopen_log();
- syslog(LOG_ERR, "Can't execute %s: %m", prog);
- closelog();
- }
- _exit(-1);
- }
-
- if (debug)
- dbglog("Script %s started (pid %d)", prog, pid);
- record_child(pid, prog, done, arg);
-
- return pid;
-}
-
-
-/*
- * record_child - add a child process to the list for reap_kids
- * to use.
- */
-void
-record_child(pid, prog, done, arg)
- int pid;
- char *prog;
- void (*done) __P((void *));
- void *arg;
-{
- struct subprocess *chp;
-
- ++n_children;
-
- chp = (struct subprocess *) malloc(sizeof(struct subprocess));
- if (chp == NULL) {
- warn("losing track of %s process", prog);
- } else {
- chp->pid = pid;
- chp->prog = prog;
- chp->done = done;
- chp->arg = arg;
- chp->next = children;
- children = chp;
- }
-}
-
-
-/*
- * reap_kids - get status from any dead child processes,
- * and log a message for abnormal terminations.
- */
-static int
-reap_kids(waitfor)
- int waitfor;
-{
- int pid, status;
- struct subprocess *chp, **prevp;
-
- if (n_children == 0)
- return 0;
- while ((pid = waitpid(-1, &status, (waitfor? 0: WNOHANG))) != -1
- && pid != 0) {
- for (prevp = &children; (chp = *prevp) != NULL; prevp = &chp->next) {
- if (chp->pid == pid) {
- --n_children;
- *prevp = chp->next;
- break;
- }
- }
- if (WIFSIGNALED(status)) {
- warn("Child process %s (pid %d) terminated with signal %d",
- (chp? chp->prog: "??"), pid, WTERMSIG(status));
- } else if (debug)
- dbglog("Script %s finished (pid %d), status = 0x%x",
- (chp? chp->prog: "??"), pid, status);
- if (chp && chp->done)
- (*chp->done)(chp->arg);
- if (chp)
- free(chp);
- }
- if (pid == -1) {
- if (errno == ECHILD)
- return -1;
- if (errno != EINTR)
- error("Error waiting for child process: %m");
- }
- return 0;
-}
-
-/*
- * add_notifier - add a new function to be called when something happens.
- */
-void
-add_notifier(notif, func, arg)
- struct notifier **notif;
- notify_func func;
- void *arg;
-{
- struct notifier *np;
-
- np = malloc(sizeof(struct notifier));
- if (np == 0)
- novm("notifier struct");
- np->next = *notif;
- np->func = func;
- np->arg = arg;
- *notif = np;
-}
-
-/*
- * remove_notifier - remove a function from the list of things to
- * be called when something happens.
- */
-void
-remove_notifier(notif, func, arg)
- struct notifier **notif;
- notify_func func;
- void *arg;
-{
- struct notifier *np;
-
- for (; (np = *notif) != 0; notif = &np->next) {
- if (np->func == func && np->arg == arg) {
- *notif = np->next;
- free(np);
- break;
- }
- }
-}
-
-/*
- * notify - call a set of functions registered with add_notify.
- */
-void
-notify(notif, val)
- struct notifier *notif;
- int val;
-{
- struct notifier *np;
-
- while ((np = notif) != 0) {
- notif = np->next;
- (*np->func)(np->arg, val);
- }
-}
-
-/*
- * novm - log an error message saying we ran out of memory, and die.
- */
-void
-novm(msg)
- char *msg;
-{
- fatal("Virtual memory exhausted allocating %s\n", msg);
-}
-
-/*
- * script_setenv - set an environment variable value to be used
- * for scripts that we run (e.g. ip-up, auth-up, etc.)
- */
-void
-script_setenv(var, value, iskey)
- char *var, *value;
- int iskey;
-{
- size_t varl = strlen(var);
- size_t vl = varl + strlen(value) + 2;
- int i;
- char *p, *newstring;
-
- newstring = (char *) malloc(vl+1);
- if (newstring == 0)
- return;
- *newstring++ = iskey;
- slprintf(newstring, vl, "%s=%s", var, value);
-
- /* check if this variable is already set */
- if (script_env != 0) {
- for (i = 0; (p = script_env[i]) != 0; ++i) {
- if (strncmp(p, var, varl) == 0 && p[varl] == '=') {
- if (p[-1] && pppdb != NULL)
- delete_db_key(p);
- free(p-1);
- script_env[i] = newstring;
- if (iskey && pppdb != NULL)
- add_db_key(newstring);
- update_db_entry();
- return;
- }
- }
- } else {
- /* no space allocated for script env. ptrs. yet */
- i = 0;
- script_env = (char **) malloc(16 * sizeof(char *));
- if (script_env == 0)
- return;
- s_env_nalloc = 16;
- }
-
- /* reallocate script_env with more space if needed */
- if (i + 1 >= s_env_nalloc) {
- int new_n = i + 17;
- char **newenv = (char **) realloc((void *)script_env,
- new_n * sizeof(char *));
- if (newenv == 0)
- return;
- script_env = newenv;
- s_env_nalloc = new_n;
- }
-
- script_env[i] = newstring;
- script_env[i+1] = 0;
-
- if (pppdb != NULL) {
- if (iskey)
- add_db_key(newstring);
- update_db_entry();
- }
-}
-
-/*
- * script_unsetenv - remove a variable from the environment
- * for scripts.
- */
-void
-script_unsetenv(var)
- char *var;
-{
- int vl = strlen(var);
- int i;
- char *p;
-
- if (script_env == 0)
- return;
- for (i = 0; (p = script_env[i]) != 0; ++i) {
- if (strncmp(p, var, vl) == 0 && p[vl] == '=') {
- if (p[-1] && pppdb != NULL)
- delete_db_key(p);
- free(p-1);
- while ((script_env[i] = script_env[i+1]) != 0)
- ++i;
- break;
- }
- }
- if (pppdb != NULL)
- update_db_entry();
-}
-
-/*
- * update_db_entry - update our entry in the database.
- */
-static void
-update_db_entry()
-{
- TDB_DATA key, dbuf;
- int vlen, i;
- char *p, *q, *vbuf;
-
- if (script_env == NULL)
- return;
- vlen = 0;
- for (i = 0; (p = script_env[i]) != 0; ++i)
- vlen += strlen(p) + 1;
- vbuf = malloc(vlen);
- if (vbuf == 0)
- novm("database entry");
- q = vbuf;
- for (i = 0; (p = script_env[i]) != 0; ++i)
- q += slprintf(q, vbuf + vlen - q, "%s;", p);
-
- key.dptr = db_key;
- key.dsize = strlen(db_key);
- dbuf.dptr = vbuf;
- dbuf.dsize = vlen;
- if (tdb_store(pppdb, key, dbuf, TDB_REPLACE))
- error("tdb_store failed: %s", tdb_error(pppdb));
-
-}
-
-/*
- * add_db_key - add a key that we can use to look up our database entry.
- */
-static void
-add_db_key(str)
- const char *str;
-{
- TDB_DATA key, dbuf;
-
- key.dptr = (char *) str;
- key.dsize = strlen(str);
- dbuf.dptr = db_key;
- dbuf.dsize = strlen(db_key);
- if (tdb_store(pppdb, key, dbuf, TDB_REPLACE))
- error("tdb_store key failed: %s", tdb_error(pppdb));
-}
-
-/*
- * delete_db_key - delete a key for looking up our database entry.
- */
-static void
-delete_db_key(str)
- const char *str;
-{
- TDB_DATA key;
-
- key.dptr = (char *) str;
- key.dsize = strlen(str);
- tdb_delete(pppdb, key);
-}
-
-/*
- * cleanup_db - delete all the entries we put in the database.
- */
-static void
-cleanup_db()
-{
- TDB_DATA key;
- int i;
- char *p;
-
- key.dptr = db_key;
- key.dsize = strlen(db_key);
- tdb_delete(pppdb, key);
- for (i = 0; (p = script_env[i]) != 0; ++i)
- if (p[-1])
- delete_db_key(p);
-}
diff --git a/mdk-stage1/ppp/pppd/md4.c b/mdk-stage1/ppp/pppd/md4.c
deleted file mode 100644
index cda9f943d..000000000
--- a/mdk-stage1/ppp/pppd/md4.c
+++ /dev/null
@@ -1,298 +0,0 @@
-/*
-** ********************************************************************
-** md4.c -- Implementation of MD4 Message Digest Algorithm **
-** Updated: 2/16/90 by Ronald L. Rivest **
-** (C) 1990 RSA Data Security, Inc. **
-** ********************************************************************
-*/
-
-/*
-** To use MD4:
-** -- Include md4.h in your program
-** -- Declare an MDstruct MD to hold the state of the digest
-** computation.
-** -- Initialize MD using MDbegin(&MD)
-** -- For each full block (64 bytes) X you wish to process, call
-** MD4Update(&MD,X,512)
-** (512 is the number of bits in a full block.)
-** -- For the last block (less than 64 bytes) you wish to process,
-** MD4Update(&MD,X,n)
-** where n is the number of bits in the partial block. A partial
-** block terminates the computation, so every MD computation
-** should terminate by processing a partial block, even if it
-** has n = 0.
-** -- The message digest is available in MD.buffer[0] ...
-** MD.buffer[3]. (Least-significant byte of each word
-** should be output first.)
-** -- You can print out the digest using MDprint(&MD)
-*/
-
-/* Implementation notes:
-** This implementation assumes that ints are 32-bit quantities.
-*/
-
-#define TRUE 1
-#define FALSE 0
-
-/* Compile-time includes
-*/
-#include <stdio.h>
-#include "md4.h"
-#include "pppd.h"
-
-/* Compile-time declarations of MD4 "magic constants".
-*/
-#define I0 0x67452301 /* Initial values for MD buffer */
-#define I1 0xefcdab89
-#define I2 0x98badcfe
-#define I3 0x10325476
-#define C2 013240474631 /* round 2 constant = sqrt(2) in octal */
-#define C3 015666365641 /* round 3 constant = sqrt(3) in octal */
-/* C2 and C3 are from Knuth, The Art of Programming, Volume 2
-** (Seminumerical Algorithms), Second Edition (1981), Addison-Wesley.
-** Table 2, page 660.
-*/
-
-#define fs1 3 /* round 1 shift amounts */
-#define fs2 7
-#define fs3 11
-#define fs4 19
-#define gs1 3 /* round 2 shift amounts */
-#define gs2 5
-#define gs3 9
-#define gs4 13
-#define hs1 3 /* round 3 shift amounts */
-#define hs2 9
-#define hs3 11
-#define hs4 15
-
-/* Compile-time macro declarations for MD4.
-** Note: The "rot" operator uses the variable "tmp".
-** It assumes tmp is declared as unsigned int, so that the >>
-** operator will shift in zeros rather than extending the sign bit.
-*/
-#define f(X,Y,Z) ((X&Y) | ((~X)&Z))
-#define g(X,Y,Z) ((X&Y) | (X&Z) | (Y&Z))
-#define h(X,Y,Z) (X^Y^Z)
-#define rot(X,S) (tmp=X,(tmp<<S) | (tmp>>(32-S)))
-#define ff(A,B,C,D,i,s) A = rot((A + f(B,C,D) + X[i]),s)
-#define gg(A,B,C,D,i,s) A = rot((A + g(B,C,D) + X[i] + C2),s)
-#define hh(A,B,C,D,i,s) A = rot((A + h(B,C,D) + X[i] + C3),s)
-
-/* MD4print(MDp)
-** Print message digest buffer MDp as 32 hexadecimal digits.
-** Order is from low-order byte of buffer[0] to high-order byte of
-** buffer[3].
-** Each byte is printed with high-order hexadecimal digit first.
-** This is a user-callable routine.
-*/
-void
-MD4Print(MDp)
-MD4_CTX *MDp;
-{
- int i,j;
- for (i=0;i<4;i++)
- for (j=0;j<32;j=j+8)
- printf("%02x",(MDp->buffer[i]>>j) & 0xFF);
-}
-
-/* MD4Init(MDp)
-** Initialize message digest buffer MDp.
-** This is a user-callable routine.
-*/
-void
-MD4Init(MDp)
-MD4_CTX *MDp;
-{
- int i;
- MDp->buffer[0] = I0;
- MDp->buffer[1] = I1;
- MDp->buffer[2] = I2;
- MDp->buffer[3] = I3;
- for (i=0;i<8;i++) MDp->count[i] = 0;
- MDp->done = 0;
-}
-
-/* MDblock(MDp,X)
-** Update message digest buffer MDp->buffer using 16-word data block X.
-** Assumes all 16 words of X are full of data.
-** Does not update MDp->count.
-** This routine is not user-callable.
-*/
-static void
-MDblock(MDp,Xb)
-MD4_CTX *MDp;
-unsigned char *Xb;
-{
- register unsigned int tmp, A, B, C, D;
- unsigned int X[16];
- int i;
-
- for (i = 0; i < 16; ++i) {
- X[i] = Xb[0] + (Xb[1] << 8) + (Xb[2] << 16) + (Xb[3] << 24);
- Xb += 4;
- }
-
- A = MDp->buffer[0];
- B = MDp->buffer[1];
- C = MDp->buffer[2];
- D = MDp->buffer[3];
- /* Update the message digest buffer */
- ff(A , B , C , D , 0 , fs1); /* Round 1 */
- ff(D , A , B , C , 1 , fs2);
- ff(C , D , A , B , 2 , fs3);
- ff(B , C , D , A , 3 , fs4);
- ff(A , B , C , D , 4 , fs1);
- ff(D , A , B , C , 5 , fs2);
- ff(C , D , A , B , 6 , fs3);
- ff(B , C , D , A , 7 , fs4);
- ff(A , B , C , D , 8 , fs1);
- ff(D , A , B , C , 9 , fs2);
- ff(C , D , A , B , 10 , fs3);
- ff(B , C , D , A , 11 , fs4);
- ff(A , B , C , D , 12 , fs1);
- ff(D , A , B , C , 13 , fs2);
- ff(C , D , A , B , 14 , fs3);
- ff(B , C , D , A , 15 , fs4);
- gg(A , B , C , D , 0 , gs1); /* Round 2 */
- gg(D , A , B , C , 4 , gs2);
- gg(C , D , A , B , 8 , gs3);
- gg(B , C , D , A , 12 , gs4);
- gg(A , B , C , D , 1 , gs1);
- gg(D , A , B , C , 5 , gs2);
- gg(C , D , A , B , 9 , gs3);
- gg(B , C , D , A , 13 , gs4);
- gg(A , B , C , D , 2 , gs1);
- gg(D , A , B , C , 6 , gs2);
- gg(C , D , A , B , 10 , gs3);
- gg(B , C , D , A , 14 , gs4);
- gg(A , B , C , D , 3 , gs1);
- gg(D , A , B , C , 7 , gs2);
- gg(C , D , A , B , 11 , gs3);
- gg(B , C , D , A , 15 , gs4);
- hh(A , B , C , D , 0 , hs1); /* Round 3 */
- hh(D , A , B , C , 8 , hs2);
- hh(C , D , A , B , 4 , hs3);
- hh(B , C , D , A , 12 , hs4);
- hh(A , B , C , D , 2 , hs1);
- hh(D , A , B , C , 10 , hs2);
- hh(C , D , A , B , 6 , hs3);
- hh(B , C , D , A , 14 , hs4);
- hh(A , B , C , D , 1 , hs1);
- hh(D , A , B , C , 9 , hs2);
- hh(C , D , A , B , 5 , hs3);
- hh(B , C , D , A , 13 , hs4);
- hh(A , B , C , D , 3 , hs1);
- hh(D , A , B , C , 11 , hs2);
- hh(C , D , A , B , 7 , hs3);
- hh(B , C , D , A , 15 , hs4);
- MDp->buffer[0] += A;
- MDp->buffer[1] += B;
- MDp->buffer[2] += C;
- MDp->buffer[3] += D;
-}
-
-/* MD4Update(MDp,X,count)
-** Input: X -- a pointer to an array of unsigned characters.
-** count -- the number of bits of X to use.
-** (if not a multiple of 8, uses high bits of last byte.)
-** Update MDp using the number of bits of X given by count.
-** This is the basic input routine for an MD4 user.
-** The routine completes the MD computation when count < 512, so
-** every MD computation should end with one call to MD4Update with a
-** count less than 512. A call with count 0 will be ignored if the
-** MD has already been terminated (done != 0), so an extra call with
-** count 0 can be given as a "courtesy close" to force termination
-** if desired.
-*/
-void
-MD4Update(MDp,X,count)
-MD4_CTX *MDp;
-unsigned char *X;
-unsigned int count;
-{
- unsigned int i, tmp, bit, byte, mask;
- unsigned char XX[64];
- unsigned char *p;
-
- /* return with no error if this is a courtesy close with count
- ** zero and MDp->done is true.
- */
- if (count == 0 && MDp->done) return;
- /* check to see if MD is already done and report error */
- if (MDp->done)
- { printf("\nError: MD4Update MD already done."); return; }
-
- /* Add count to MDp->count */
- tmp = count;
- p = MDp->count;
- while (tmp)
- { tmp += *p;
- *p++ = tmp;
- tmp = tmp >> 8;
- }
-
- /* Process data */
- if (count == 512)
- { /* Full block of data to handle */
- MDblock(MDp,X);
- }
- else if (count > 512) /* Check for count too large */
- {
- printf("\nError: MD4Update called with illegal count value %d.",
- count);
- return;
- }
- else /* partial block -- must be last block so finish up */
- {
- /* Find out how many bytes and residual bits there are */
- byte = count >> 3;
- bit = count & 7;
- /* Copy X into XX since we need to modify it */
- for (i=0;i<=byte;i++) XX[i] = X[i];
- for (i=byte+1;i<64;i++) XX[i] = 0;
- /* Add padding '1' bit and low-order zeros in last byte */
- mask = 1 << (7 - bit);
- XX[byte] = (XX[byte] | mask) & ~( mask - 1);
- /* If room for bit count, finish up with this block */
- if (byte <= 55)
- {
- for (i=0;i<8;i++) XX[56+i] = MDp->count[i];
- MDblock(MDp,XX);
- }
- else /* need to do two blocks to finish up */
- {
- MDblock(MDp,XX);
- for (i=0;i<56;i++) XX[i] = 0;
- for (i=0;i<8;i++) XX[56+i] = MDp->count[i];
- MDblock(MDp,XX);
- }
- /* Set flag saying we're done with MD computation */
- MDp->done = 1;
- }
-}
-
-/*
-** Finish up MD4 computation and return message digest.
-*/
-void
-MD4Final(buf, MD)
-unsigned char *buf;
-MD4_CTX *MD;
-{
- int i, j;
- unsigned int w;
-
- MD4Update(MD, NULL, 0);
- for (i = 0; i < 4; ++i) {
- w = MD->buffer[i];
- for (j = 0; j < 4; ++j) {
- *buf++ = w;
- w >>= 8;
- }
- }
-}
-
-/*
-** End of md4.c
-****************************(cut)***********************************/
diff --git a/mdk-stage1/ppp/pppd/md4.h b/mdk-stage1/ppp/pppd/md4.h
deleted file mode 100644
index 80e8f9a2a..000000000
--- a/mdk-stage1/ppp/pppd/md4.h
+++ /dev/null
@@ -1,64 +0,0 @@
-
-/*
-** ********************************************************************
-** md4.h -- Header file for implementation of **
-** MD4 Message Digest Algorithm **
-** Updated: 2/13/90 by Ronald L. Rivest **
-** (C) 1990 RSA Data Security, Inc. **
-** ********************************************************************
-*/
-
-#ifndef __P
-# if defined(__STDC__) || defined(__GNUC__)
-# define __P(x) x
-# else
-# define __P(x) ()
-# endif
-#endif
-
-
-/* MDstruct is the data structure for a message digest computation.
-*/
-typedef struct {
- unsigned int buffer[4]; /* Holds 4-word result of MD computation */
- unsigned char count[8]; /* Number of bits processed so far */
- unsigned int done; /* Nonzero means MD computation finished */
-} MD4_CTX;
-
-/* MD4Init(MD4_CTX *)
-** Initialize the MD4_CTX prepatory to doing a message digest
-** computation.
-*/
-extern void MD4Init __P((MD4_CTX *MD));
-
-/* MD4Update(MD,X,count)
-** Input: X -- a pointer to an array of unsigned characters.
-** count -- the number of bits of X to use (an unsigned int).
-** Updates MD using the first "count" bits of X.
-** The array pointed to by X is not modified.
-** If count is not a multiple of 8, MD4Update uses high bits of
-** last byte.
-** This is the basic input routine for a user.
-** The routine terminates the MD computation when count < 512, so
-** every MD computation should end with one call to MD4Update with a
-** count less than 512. Zero is OK for a count.
-*/
-extern void MD4Update __P((MD4_CTX *MD, unsigned char *X, unsigned int count));
-
-/* MD4Print(MD)
-** Prints message digest buffer MD as 32 hexadecimal digits.
-** Order is from low-order byte of buffer[0] to high-order byte
-** of buffer[3].
-** Each byte is printed with high-order hexadecimal digit first.
-*/
-extern void MD4Print __P((MD4_CTX *));
-
-/* MD4Final(buf, MD)
-** Returns message digest from MD and terminates the message
-** digest computation.
-*/
-extern void MD4Final __P((unsigned char *, MD4_CTX *));
-
-/*
-** End of md4.h
-****************************(cut)***********************************/
diff --git a/mdk-stage1/ppp/pppd/md5.c b/mdk-stage1/ppp/pppd/md5.c
deleted file mode 100644
index 0b8de3aae..000000000
--- a/mdk-stage1/ppp/pppd/md5.c
+++ /dev/null
@@ -1,309 +0,0 @@
-
-
-/*
- ***********************************************************************
- ** md5.c -- the source code for MD5 routines **
- ** RSA Data Security, Inc. MD5 Message-Digest Algorithm **
- ** Created: 2/17/90 RLR **
- ** Revised: 1/91 SRD,AJ,BSK,JT Reference C ver., 7/10 constant corr. **
- ***********************************************************************
- */
-
-/*
- ***********************************************************************
- ** Copyright (C) 1990, RSA Data Security, Inc. All rights reserved. **
- ** **
- ** License to copy and use this software is granted provided that **
- ** it is identified as the "RSA Data Security, Inc. MD5 Message- **
- ** Digest Algorithm" in all material mentioning or referencing this **
- ** software or this function. **
- ** **
- ** License is also granted to make and use derivative works **
- ** provided that such works are identified as "derived from the RSA **
- ** Data Security, Inc. MD5 Message-Digest Algorithm" in all **
- ** material mentioning or referencing the derived work. **
- ** **
- ** RSA Data Security, Inc. makes no representations concerning **
- ** either the merchantability of this software or the suitability **
- ** of this software for any particular purpose. It is provided "as **
- ** is" without express or implied warranty of any kind. **
- ** **
- ** These notices must be retained in any copies of any part of this **
- ** documentation and/or software. **
- ***********************************************************************
- */
-
-#include <stdlib.h>
-#include <string.h>
-
-#include "md5.h"
-
-/*
- ***********************************************************************
- ** Message-digest routines: **
- ** To form the message digest for a message M **
- ** (1) Initialize a context buffer mdContext using MD5Init **
- ** (2) Call MD5Update on mdContext and M **
- ** (3) Call MD5Final on mdContext **
- ** The message digest is now in mdContext->digest[0...15] **
- ***********************************************************************
- */
-
-/* forward declaration */
-static void Transform ();
-
-static unsigned char PADDING[64] = {
- 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-};
-
-/* F, G, H and I are basic MD5 functions */
-#define F(x, y, z) (((x) & (y)) | ((~x) & (z)))
-#define G(x, y, z) (((x) & (z)) | ((y) & (~z)))
-#define H(x, y, z) ((x) ^ (y) ^ (z))
-#define I(x, y, z) ((y) ^ ((x) | (~z)))
-
-/* ROTATE_LEFT rotates x left n bits */
-#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n))))
-
-/* FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4 */
-/* Rotation is separate from addition to prevent recomputation */
-#define FF(a, b, c, d, x, s, ac) \
- {(a) += F ((b), (c), (d)) + (x) + (UINT4)(ac); \
- (a) = ROTATE_LEFT ((a), (s)); \
- (a) += (b); \
- }
-#define GG(a, b, c, d, x, s, ac) \
- {(a) += G ((b), (c), (d)) + (x) + (UINT4)(ac); \
- (a) = ROTATE_LEFT ((a), (s)); \
- (a) += (b); \
- }
-#define HH(a, b, c, d, x, s, ac) \
- {(a) += H ((b), (c), (d)) + (x) + (UINT4)(ac); \
- (a) = ROTATE_LEFT ((a), (s)); \
- (a) += (b); \
- }
-#define II(a, b, c, d, x, s, ac) \
- {(a) += I ((b), (c), (d)) + (x) + (UINT4)(ac); \
- (a) = ROTATE_LEFT ((a), (s)); \
- (a) += (b); \
- }
-
-#ifdef __STDC__
-#define UL(x) x##U
-#else
-#define UL(x) x
-#endif
-
-/* The routine MD5Init initializes the message-digest context
- mdContext. All fields are set to zero.
- */
-void MD5Init (mdContext)
-MD5_CTX *mdContext;
-{
- mdContext->i[0] = mdContext->i[1] = (UINT4)0;
-
- /* Load magic initialization constants.
- */
- mdContext->buf[0] = (UINT4)0x67452301;
- mdContext->buf[1] = (UINT4)0xefcdab89;
- mdContext->buf[2] = (UINT4)0x98badcfe;
- mdContext->buf[3] = (UINT4)0x10325476;
-}
-
-/* The routine MD5Update updates the message-digest context to
- account for the presence of each of the characters inBuf[0..inLen-1]
- in the message whose digest is being computed.
- */
-void MD5Update (mdContext, inBuf, inLen)
-MD5_CTX *mdContext;
-unsigned char *inBuf;
-unsigned int inLen;
-{
- UINT4 in[16];
- int mdi;
- unsigned int i, ii;
-
- /* compute number of bytes mod 64 */
- mdi = (int)((mdContext->i[0] >> 3) & 0x3F);
-
- /* update number of bits */
- if ((mdContext->i[0] + ((UINT4)inLen << 3)) < mdContext->i[0])
- mdContext->i[1]++;
- mdContext->i[0] += ((UINT4)inLen << 3);
- mdContext->i[1] += ((UINT4)inLen >> 29);
-
- while (inLen--) {
- /* add new character to buffer, increment mdi */
- mdContext->in[mdi++] = *inBuf++;
-
- /* transform if necessary */
- if (mdi == 0x40) {
- for (i = 0, ii = 0; i < 16; i++, ii += 4)
- in[i] = (((UINT4)mdContext->in[ii+3]) << 24) |
- (((UINT4)mdContext->in[ii+2]) << 16) |
- (((UINT4)mdContext->in[ii+1]) << 8) |
- ((UINT4)mdContext->in[ii]);
- Transform (mdContext->buf, in);
- mdi = 0;
- }
- }
-}
-
-/* The routine MD5Final terminates the message-digest computation and
- ends with the desired message digest in mdContext->digest[0...15].
- */
-void MD5Final (hash, mdContext)
-unsigned char hash[];
-MD5_CTX *mdContext;
-{
- UINT4 in[16];
- int mdi;
- unsigned int i, ii;
- unsigned int padLen;
-
- /* save number of bits */
- in[14] = mdContext->i[0];
- in[15] = mdContext->i[1];
-
- /* compute number of bytes mod 64 */
- mdi = (int)((mdContext->i[0] >> 3) & 0x3F);
-
- /* pad out to 56 mod 64 */
- padLen = (mdi < 56) ? (56 - mdi) : (120 - mdi);
- MD5Update (mdContext, PADDING, padLen);
-
- /* append length in bits and transform */
- for (i = 0, ii = 0; i < 14; i++, ii += 4)
- in[i] = (((UINT4)mdContext->in[ii+3]) << 24) |
- (((UINT4)mdContext->in[ii+2]) << 16) |
- (((UINT4)mdContext->in[ii+1]) << 8) |
- ((UINT4)mdContext->in[ii]);
- Transform (mdContext->buf, in);
-
- /* store buffer in digest */
- for (i = 0, ii = 0; i < 4; i++, ii += 4) {
- mdContext->digest[ii] = (unsigned char)(mdContext->buf[i] & 0xFF);
- mdContext->digest[ii+1] =
- (unsigned char)((mdContext->buf[i] >> 8) & 0xFF);
- mdContext->digest[ii+2] =
- (unsigned char)((mdContext->buf[i] >> 16) & 0xFF);
- mdContext->digest[ii+3] =
- (unsigned char)((mdContext->buf[i] >> 24) & 0xFF);
- }
- memcpy(hash, mdContext->digest, 16);
-}
-
-/* Basic MD5 step. Transforms buf based on in.
- */
-static void Transform (buf, in)
-UINT4 *buf;
-UINT4 *in;
-{
- UINT4 a = buf[0], b = buf[1], c = buf[2], d = buf[3];
-
- /* Round 1 */
-#define S11 7
-#define S12 12
-#define S13 17
-#define S14 22
- FF ( a, b, c, d, in[ 0], S11, UL(3614090360)); /* 1 */
- FF ( d, a, b, c, in[ 1], S12, UL(3905402710)); /* 2 */
- FF ( c, d, a, b, in[ 2], S13, UL( 606105819)); /* 3 */
- FF ( b, c, d, a, in[ 3], S14, UL(3250441966)); /* 4 */
- FF ( a, b, c, d, in[ 4], S11, UL(4118548399)); /* 5 */
- FF ( d, a, b, c, in[ 5], S12, UL(1200080426)); /* 6 */
- FF ( c, d, a, b, in[ 6], S13, UL(2821735955)); /* 7 */
- FF ( b, c, d, a, in[ 7], S14, UL(4249261313)); /* 8 */
- FF ( a, b, c, d, in[ 8], S11, UL(1770035416)); /* 9 */
- FF ( d, a, b, c, in[ 9], S12, UL(2336552879)); /* 10 */
- FF ( c, d, a, b, in[10], S13, UL(4294925233)); /* 11 */
- FF ( b, c, d, a, in[11], S14, UL(2304563134)); /* 12 */
- FF ( a, b, c, d, in[12], S11, UL(1804603682)); /* 13 */
- FF ( d, a, b, c, in[13], S12, UL(4254626195)); /* 14 */
- FF ( c, d, a, b, in[14], S13, UL(2792965006)); /* 15 */
- FF ( b, c, d, a, in[15], S14, UL(1236535329)); /* 16 */
-
- /* Round 2 */
-#define S21 5
-#define S22 9
-#define S23 14
-#define S24 20
- GG ( a, b, c, d, in[ 1], S21, UL(4129170786)); /* 17 */
- GG ( d, a, b, c, in[ 6], S22, UL(3225465664)); /* 18 */
- GG ( c, d, a, b, in[11], S23, UL( 643717713)); /* 19 */
- GG ( b, c, d, a, in[ 0], S24, UL(3921069994)); /* 20 */
- GG ( a, b, c, d, in[ 5], S21, UL(3593408605)); /* 21 */
- GG ( d, a, b, c, in[10], S22, UL( 38016083)); /* 22 */
- GG ( c, d, a, b, in[15], S23, UL(3634488961)); /* 23 */
- GG ( b, c, d, a, in[ 4], S24, UL(3889429448)); /* 24 */
- GG ( a, b, c, d, in[ 9], S21, UL( 568446438)); /* 25 */
- GG ( d, a, b, c, in[14], S22, UL(3275163606)); /* 26 */
- GG ( c, d, a, b, in[ 3], S23, UL(4107603335)); /* 27 */
- GG ( b, c, d, a, in[ 8], S24, UL(1163531501)); /* 28 */
- GG ( a, b, c, d, in[13], S21, UL(2850285829)); /* 29 */
- GG ( d, a, b, c, in[ 2], S22, UL(4243563512)); /* 30 */
- GG ( c, d, a, b, in[ 7], S23, UL(1735328473)); /* 31 */
- GG ( b, c, d, a, in[12], S24, UL(2368359562)); /* 32 */
-
- /* Round 3 */
-#define S31 4
-#define S32 11
-#define S33 16
-#define S34 23
- HH ( a, b, c, d, in[ 5], S31, UL(4294588738)); /* 33 */
- HH ( d, a, b, c, in[ 8], S32, UL(2272392833)); /* 34 */
- HH ( c, d, a, b, in[11], S33, UL(1839030562)); /* 35 */
- HH ( b, c, d, a, in[14], S34, UL(4259657740)); /* 36 */
- HH ( a, b, c, d, in[ 1], S31, UL(2763975236)); /* 37 */
- HH ( d, a, b, c, in[ 4], S32, UL(1272893353)); /* 38 */
- HH ( c, d, a, b, in[ 7], S33, UL(4139469664)); /* 39 */
- HH ( b, c, d, a, in[10], S34, UL(3200236656)); /* 40 */
- HH ( a, b, c, d, in[13], S31, UL( 681279174)); /* 41 */
- HH ( d, a, b, c, in[ 0], S32, UL(3936430074)); /* 42 */
- HH ( c, d, a, b, in[ 3], S33, UL(3572445317)); /* 43 */
- HH ( b, c, d, a, in[ 6], S34, UL( 76029189)); /* 44 */
- HH ( a, b, c, d, in[ 9], S31, UL(3654602809)); /* 45 */
- HH ( d, a, b, c, in[12], S32, UL(3873151461)); /* 46 */
- HH ( c, d, a, b, in[15], S33, UL( 530742520)); /* 47 */
- HH ( b, c, d, a, in[ 2], S34, UL(3299628645)); /* 48 */
-
- /* Round 4 */
-#define S41 6
-#define S42 10
-#define S43 15
-#define S44 21
- II ( a, b, c, d, in[ 0], S41, UL(4096336452)); /* 49 */
- II ( d, a, b, c, in[ 7], S42, UL(1126891415)); /* 50 */
- II ( c, d, a, b, in[14], S43, UL(2878612391)); /* 51 */
- II ( b, c, d, a, in[ 5], S44, UL(4237533241)); /* 52 */
- II ( a, b, c, d, in[12], S41, UL(1700485571)); /* 53 */
- II ( d, a, b, c, in[ 3], S42, UL(2399980690)); /* 54 */
- II ( c, d, a, b, in[10], S43, UL(4293915773)); /* 55 */
- II ( b, c, d, a, in[ 1], S44, UL(2240044497)); /* 56 */
- II ( a, b, c, d, in[ 8], S41, UL(1873313359)); /* 57 */
- II ( d, a, b, c, in[15], S42, UL(4264355552)); /* 58 */
- II ( c, d, a, b, in[ 6], S43, UL(2734768916)); /* 59 */
- II ( b, c, d, a, in[13], S44, UL(1309151649)); /* 60 */
- II ( a, b, c, d, in[ 4], S41, UL(4149444226)); /* 61 */
- II ( d, a, b, c, in[11], S42, UL(3174756917)); /* 62 */
- II ( c, d, a, b, in[ 2], S43, UL( 718787259)); /* 63 */
- II ( b, c, d, a, in[ 9], S44, UL(3951481745)); /* 64 */
-
- buf[0] += a;
- buf[1] += b;
- buf[2] += c;
- buf[3] += d;
-}
-
-/*
- ***********************************************************************
- ** End of md5.c **
- ******************************** (cut) ********************************
- */
diff --git a/mdk-stage1/ppp/pppd/md5.h b/mdk-stage1/ppp/pppd/md5.h
deleted file mode 100644
index 7492b2228..000000000
--- a/mdk-stage1/ppp/pppd/md5.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- ***********************************************************************
- ** md5.h -- header file for implementation of MD5 **
- ** RSA Data Security, Inc. MD5 Message-Digest Algorithm **
- ** Created: 2/17/90 RLR **
- ** Revised: 12/27/90 SRD,AJ,BSK,JT Reference C version **
- ** Revised (for MD5): RLR 4/27/91 **
- ** -- G modified to have y&~z instead of y&z **
- ** -- FF, GG, HH modified to add in last register done **
- ** -- Access pattern: round 2 works mod 5, round 3 works mod 3 **
- ** -- distinct additive constant for each step **
- ** -- round 4 added, working mod 7 **
- ***********************************************************************
- */
-
-/*
- ***********************************************************************
- ** Copyright (C) 1990, RSA Data Security, Inc. All rights reserved. **
- ** **
- ** License to copy and use this software is granted provided that **
- ** it is identified as the "RSA Data Security, Inc. MD5 Message- **
- ** Digest Algorithm" in all material mentioning or referencing this **
- ** software or this function. **
- ** **
- ** License is also granted to make and use derivative works **
- ** provided that such works are identified as "derived from the RSA **
- ** Data Security, Inc. MD5 Message-Digest Algorithm" in all **
- ** material mentioning or referencing the derived work. **
- ** **
- ** RSA Data Security, Inc. makes no representations concerning **
- ** either the merchantability of this software or the suitability **
- ** of this software for any particular purpose. It is provided "as **
- ** is" without express or implied warranty of any kind. **
- ** **
- ** These notices must be retained in any copies of any part of this **
- ** documentation and/or software. **
- ***********************************************************************
- */
-
-#ifndef __MD5_INCLUDE__
-
-/* typedef a 32-bit type */
-typedef unsigned int UINT4;
-
-/* Data structure for MD5 (Message-Digest) computation */
-typedef struct {
- UINT4 i[2]; /* number of _bits_ handled mod 2^64 */
- UINT4 buf[4]; /* scratch buffer */
- unsigned char in[64]; /* input buffer */
- unsigned char digest[16]; /* actual digest after MD5Final call */
-} MD5_CTX;
-
-void MD5Init ();
-void MD5Update ();
-void MD5Final ();
-
-#define __MD5_INCLUDE__
-#endif /* __MD5_INCLUDE__ */
diff --git a/mdk-stage1/ppp/pppd/multilink.c b/mdk-stage1/ppp/pppd/multilink.c
deleted file mode 100644
index c30b07e0a..000000000
--- a/mdk-stage1/ppp/pppd/multilink.c
+++ /dev/null
@@ -1,397 +0,0 @@
-/*
- * multilink.c - support routines for multilink.
- *
- * Copyright (c) 2000 Paul Mackerras.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms. The name of the author may not be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <ctype.h>
-#include <netdb.h>
-#include <errno.h>
-#include <signal.h>
-#include <netinet/in.h>
-
-#include "pppd.h"
-#include "fsm.h"
-#include "lcp.h"
-#include "tdb.h"
-
-bool endpoint_specified; /* user gave explicit endpoint discriminator */
-char *bundle_id; /* identifier for our bundle */
-
-extern TDB_CONTEXT *pppdb;
-extern char db_key[];
-
-static int get_default_epdisc __P((struct epdisc *));
-static int parse_num __P((char *str, const char *key, int *valp));
-static int owns_unit __P((TDB_DATA pid, int unit));
-
-#define set_ip_epdisc(ep, addr) do { \
- ep->length = 4; \
- ep->value[0] = addr >> 24; \
- ep->value[1] = addr >> 16; \
- ep->value[2] = addr >> 8; \
- ep->value[3] = addr; \
-} while (0)
-
-#define LOCAL_IP_ADDR(addr) \
- (((addr) & 0xff000000) == 0x0a000000 /* 10.x.x.x */ \
- || ((addr) & 0xfff00000) == 0xac100000 /* 172.16.x.x */ \
- || ((addr) & 0xffff0000) == 0xc0a80000) /* 192.168.x.x */
-
-#define process_exists(n) (kill((n), 0) == 0 || errno != ESRCH)
-
-void
-mp_check_options()
-{
- lcp_options *wo = &lcp_wantoptions[0];
- lcp_options *ao = &lcp_allowoptions[0];
-
- if (!multilink)
- return;
- /* if we're doing multilink, we have to negotiate MRRU */
- if (!wo->neg_mrru) {
- /* mrru not specified, default to mru */
- wo->mrru = wo->mru;
- wo->neg_mrru = 1;
- }
- ao->mrru = ao->mru;
- ao->neg_mrru = 1;
-
- if (!wo->neg_endpoint && !noendpoint) {
- /* get a default endpoint value */
- wo->neg_endpoint = get_default_epdisc(&wo->endpoint);
- }
-}
-
-/*
- * Make a new bundle or join us to an existing bundle
- * if we are doing multilink.
- */
-int
-mp_join_bundle()
-{
- lcp_options *go = &lcp_gotoptions[0];
- lcp_options *ho = &lcp_hisoptions[0];
- lcp_options *ao = &lcp_allowoptions[0];
- int unit, pppd_pid;
- int l, mtu;
- char *p;
- TDB_DATA key, pid, rec;
-
- if (!go->neg_mrru || !ho->neg_mrru) {
- /* not doing multilink */
- if (go->neg_mrru)
- notice("oops, multilink negotiated only for receive");
- mtu = ho->neg_mru? ho->mru: PPP_MRU;
- if (mtu > ao->mru)
- mtu = ao->mru;
- if (demand) {
- /* already have a bundle */
- cfg_bundle(0, 0, 0, 0);
- netif_set_mtu(0, mtu);
- return 0;
- }
- make_new_bundle(0, 0, 0, 0);
- set_ifunit(1);
- netif_set_mtu(0, mtu);
- return 0;
- }
-
- /*
- * Find the appropriate bundle or join a new one.
- * First we make up a name for the bundle.
- * The length estimate is worst-case assuming every
- * character has to be quoted.
- */
- l = 4 * strlen(peer_authname) + 10;
- if (ho->neg_endpoint)
- l += 3 * ho->endpoint.length + 8;
- if (bundle_name)
- l += 3 * strlen(bundle_name) + 2;
- bundle_id = malloc(l);
- if (bundle_id == 0)
- novm("bundle identifier");
-
- p = bundle_id;
- p += slprintf(p, l-1, "BUNDLE=\"%q\"", peer_authname);
- if (ho->neg_endpoint || bundle_name)
- *p++ = '/';
- if (ho->neg_endpoint)
- p += slprintf(p, bundle_id+l-p, "%s",
- epdisc_to_str(&ho->endpoint));
- if (bundle_name)
- p += slprintf(p, bundle_id+l-p, "/%v", bundle_name);
-
- /*
- * For demand mode, we only need to configure the bundle
- * and attach the link.
- */
- mtu = MIN(ho->mrru, ao->mru);
- if (demand) {
- cfg_bundle(go->mrru, ho->mrru, go->neg_ssnhf, ho->neg_ssnhf);
- netif_set_mtu(0, mtu);
- script_setenv("BUNDLE", bundle_id + 7, 1);
- return 0;
- }
-
- /*
- * Check if the bundle ID is already in the database.
- */
- unit = -1;
- tdb_writelock(pppdb);
- key.dptr = bundle_id;
- key.dsize = p - bundle_id;
- pid = tdb_fetch(pppdb, key);
- if (pid.dptr != NULL) {
- /* bundle ID exists, see if the pppd record exists */
- rec = tdb_fetch(pppdb, pid);
- if (rec.dptr != NULL) {
- /* it is, parse the interface number */
- parse_num(rec.dptr, "IFNAME=ppp", &unit);
- /* check the pid value */
- if (!parse_num(rec.dptr, "PPPD_PID=", &pppd_pid)
- || !process_exists(pppd_pid)
- || !owns_unit(pid, unit))
- unit = -1;
- free(rec.dptr);
- }
- free(pid.dptr);
- }
-
- if (unit >= 0) {
- /* attach to existing unit */
- if (bundle_attach(unit)) {
- set_ifunit(0);
- script_setenv("BUNDLE", bundle_id + 7, 0);
- tdb_writeunlock(pppdb);
- info("Link attached to %s", ifname);
- return 1;
- }
- /* attach failed because bundle doesn't exist */
- }
-
- /* we have to make a new bundle */
- make_new_bundle(go->mrru, ho->mrru, go->neg_ssnhf, ho->neg_ssnhf);
- set_ifunit(1);
- netif_set_mtu(0, mtu);
- script_setenv("BUNDLE", bundle_id + 7, 1);
- tdb_writeunlock(pppdb);
- info("New bundle %s created", ifname);
- return 0;
-}
-
-static int
-parse_num(str, key, valp)
- char *str;
- const char *key;
- int *valp;
-{
- char *p, *endp;
- int i;
-
- p = strstr(str, key);
- if (p != 0) {
- p += strlen(key);
- i = strtol(p, &endp, 10);
- if (endp != p && (*endp == 0 || *endp == ';')) {
- *valp = i;
- return 1;
- }
- }
- return 0;
-}
-
-/*
- * Check whether the pppd identified by `key' still owns ppp unit `unit'.
- */
-static int
-owns_unit(key, unit)
- TDB_DATA key;
- int unit;
-{
- char ifkey[32];
- TDB_DATA kd, vd;
- int ret = 0;
-
- slprintf(ifkey, sizeof(ifkey), "IFNAME=ppp%d", unit);
- kd.dptr = ifkey;
- kd.dsize = strlen(ifkey);
- vd = tdb_fetch(pppdb, kd);
- if (vd.dptr != NULL) {
- ret = vd.dsize == key.dsize
- && memcmp(vd.dptr, key.dptr, vd.dsize) == 0;
- free(vd.dptr);
- }
- return ret;
-}
-
-static int
-get_default_epdisc(ep)
- struct epdisc *ep;
-{
- char *p;
- struct hostent *hp;
- u_int32_t addr;
-
- /* First try for an ethernet MAC address */
- p = get_first_ethernet();
- if (p != 0 && get_if_hwaddr(ep->value, p) >= 0) {
- ep->class = EPD_MAC;
- ep->length = 6;
- return 1;
- }
-
- /* see if our hostname corresponds to a reasonable IP address */
- hp = gethostbyname(hostname);
- if (hp != NULL) {
- addr = *(u_int32_t *)hp->h_addr;
- if (!bad_ip_adrs(addr)) {
- addr = ntohl(addr);
- if (!LOCAL_IP_ADDR(addr)) {
- ep->class = EPD_IP;
- set_ip_epdisc(ep, addr);
- return 1;
- }
- }
- }
-
- return 0;
-}
-
-/*
- * epdisc_to_str - make a printable string from an endpoint discriminator.
- */
-
-static char *endp_class_names[] = {
- "null", "local", "IP", "MAC", "magic", "phone"
-};
-
-char *
-epdisc_to_str(ep)
- struct epdisc *ep;
-{
- static char str[MAX_ENDP_LEN*3+8];
- u_char *p = ep->value;
- int i, mask = 0;
- char *q, c, c2;
-
- if (ep->class == EPD_NULL && ep->length == 0)
- return "null";
- if (ep->class == EPD_IP && ep->length == 4) {
- u_int32_t addr;
-
- GETLONG(addr, p);
- slprintf(str, sizeof(str), "IP:%I", htonl(addr));
- return str;
- }
-
- c = ':';
- c2 = '.';
- if (ep->class == EPD_MAC && ep->length == 6)
- c2 = ':';
- else if (ep->class == EPD_MAGIC && (ep->length % 4) == 0)
- mask = 3;
- q = str;
- if (ep->class <= EPD_PHONENUM)
- q += slprintf(q, sizeof(str)-1, "%s",
- endp_class_names[ep->class]);
- else
- q += slprintf(q, sizeof(str)-1, "%d", ep->class);
- c = ':';
- for (i = 0; i < ep->length && i < MAX_ENDP_LEN; ++i) {
- if ((i & mask) == 0) {
- *q++ = c;
- c = c2;
- }
- q += slprintf(q, str + sizeof(str) - q, "%.2x", ep->value[i]);
- }
- return str;
-}
-
-static int hexc_val(int c)
-{
- if (c >= 'a')
- return c - 'a' + 10;
- if (c >= 'A')
- return c - 'A' + 10;
- return c - '0';
-}
-
-int
-str_to_epdisc(ep, str)
- struct epdisc *ep;
- char *str;
-{
- int i, l;
- char *p, *endp;
-
- for (i = EPD_NULL; i <= EPD_PHONENUM; ++i) {
- int sl = strlen(endp_class_names[i]);
- if (strncasecmp(str, endp_class_names[i], sl) == 0) {
- str += sl;
- break;
- }
- }
- if (i > EPD_PHONENUM) {
- /* not a class name, try a decimal class number */
- i = strtol(str, &endp, 10);
- if (endp == str)
- return 0; /* can't parse class number */
- str = endp;
- }
- ep->class = i;
- if (*str == 0) {
- ep->length = 0;
- return 1;
- }
- if (*str != ':' && *str != '.')
- return 0;
- ++str;
-
- if (i == EPD_IP) {
- u_int32_t addr;
- i = parse_dotted_ip(str, &addr);
- if (i == 0 || str[i] != 0)
- return 0;
- set_ip_epdisc(ep, addr);
- return 1;
- }
- if (i == EPD_MAC && get_if_hwaddr(ep->value, str) >= 0) {
- ep->length = 6;
- return 1;
- }
-
- p = str;
- for (l = 0; l < MAX_ENDP_LEN; ++l) {
- if (*str == 0)
- break;
- if (p <= str)
- for (p = str; isxdigit(*p); ++p)
- ;
- i = p - str;
- if (i == 0)
- return 0;
- ep->value[l] = hexc_val(*str++);
- if ((i & 1) == 0)
- ep->value[l] = (ep->value[l] << 4) + hexc_val(*str++);
- if (*str == ':' || *str == '.')
- ++str;
- }
- if (*str != 0 || (ep->class == EPD_MAC && l != 6))
- return 0;
- ep->length = l;
- return 1;
-}
-
diff --git a/mdk-stage1/ppp/pppd/options.c b/mdk-stage1/ppp/pppd/options.c
deleted file mode 100644
index 1921d9ec5..000000000
--- a/mdk-stage1/ppp/pppd/options.c
+++ /dev/null
@@ -1,1513 +0,0 @@
-/*
- * options.c - handles option processing for PPP.
- *
- * Copyright (c) 1989 Carnegie Mellon University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Carnegie Mellon University. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#define RCSID "$Id$"
-
-#include <ctype.h>
-#include <stdio.h>
-#include <errno.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <syslog.h>
-#include <string.h>
-#include <pwd.h>
-#ifdef PLUGIN
-#include <dlfcn.h>
-#endif
-#ifdef PPP_FILTER
-#include <pcap.h>
-#include <pcap-int.h> /* XXX: To get struct pcap */
-#endif
-
-#include "pppd.h"
-#include "pathnames.h"
-
-#if defined(ultrix) || defined(NeXT)
-char *strdup __P((char *));
-#endif
-
-static const char rcsid[] = RCSID;
-
-struct option_value {
- struct option_value *next;
- const char *source;
- char value[1];
-};
-
-/*
- * Option variables and default values.
- */
-#ifdef PPP_FILTER
-int dflag = 0; /* Tell libpcap we want debugging */
-#endif
-int debug = 0; /* Debug flag */
-int kdebugflag = 0; /* Tell kernel to print debug messages */
-int default_device = 1; /* Using /dev/tty or equivalent */
-char devnam[MAXPATHLEN]; /* Device name */
-bool nodetach = 0; /* Don't detach from controlling tty */
-bool updetach = 0; /* Detach once link is up */
-int maxconnect = 0; /* Maximum connect time */
-char user[MAXNAMELEN]; /* Username for PAP */
-char passwd[MAXSECRETLEN]; /* Password for PAP */
-bool persist = 0; /* Reopen link after it goes down */
-char our_name[MAXNAMELEN]; /* Our name for authentication purposes */
-bool demand = 0; /* do dial-on-demand */
-char *ipparam = NULL; /* Extra parameter for ip up/down scripts */
-int idle_time_limit = 0; /* Disconnect if idle for this many seconds */
-int holdoff = 30; /* # seconds to pause before reconnecting */
-bool holdoff_specified; /* true if a holdoff value has been given */
-int log_to_fd = 1; /* send log messages to this fd too */
-bool log_default = 1; /* log_to_fd is default (stdout) */
-int maxfail = 10; /* max # of unsuccessful connection attempts */
-char linkname[MAXPATHLEN]; /* logical name for link */
-bool tune_kernel; /* may alter kernel settings */
-int connect_delay = 1000; /* wait this many ms after connect script */
-int req_unit = -1; /* requested interface unit */
-bool multilink = 0; /* Enable multilink operation */
-char *bundle_name = NULL; /* bundle name for multilink */
-bool dump_options; /* print out option values */
-bool dryrun; /* print out option values and exit */
-char *domain; /* domain name set by domain option */
-
-extern option_t auth_options[];
-extern struct stat devstat;
-
-#ifdef PPP_FILTER
-struct bpf_program pass_filter;/* Filter program for packets to pass */
-struct bpf_program active_filter; /* Filter program for link-active pkts */
-pcap_t pc; /* Fake struct pcap so we can compile expr */
-#endif
-
-char *current_option; /* the name of the option being parsed */
-int privileged_option; /* set iff the current option came from root */
-char *option_source; /* string saying where the option came from */
-int option_priority = OPRIO_CFGFILE; /* priority of the current options */
-bool devnam_fixed; /* can no longer change device name */
-
-static int logfile_fd = -1; /* fd opened for log file */
-static char logfile_name[MAXPATHLEN]; /* name of log file */
-
-/*
- * Prototypes
- */
-static int setdomain __P((char **));
-static int readfile __P((char **));
-static int callfile __P((char **));
-static int showversion __P((char **));
-static int showhelp __P((char **));
-static void usage __P((void));
-static int setlogfile __P((char **));
-#ifdef PLUGIN
-static int loadplugin __P((char **));
-#endif
-
-#ifdef PPP_FILTER
-static int setpassfilter __P((char **));
-static int setactivefilter __P((char **));
-#endif
-
-static option_t *find_option __P((const char *name));
-static int process_option __P((option_t *, char *, char **));
-static int n_arguments __P((option_t *));
-static int number_option __P((char *, u_int32_t *, int));
-
-/*
- * Structure to store extra lists of options.
- */
-struct option_list {
- option_t *options;
- struct option_list *next;
-};
-
-static struct option_list *extra_options = NULL;
-
-/*
- * Valid arguments.
- */
-option_t general_options[] = {
- { "debug", o_int, &debug,
- "Increase debugging level", OPT_INC | OPT_NOARG | 1 },
- { "-d", o_int, &debug,
- "Increase debugging level",
- OPT_ALIAS | OPT_INC | OPT_NOARG | 1 },
-
- { "kdebug", o_int, &kdebugflag,
- "Set kernel driver debug level", OPT_PRIO },
-
- { "nodetach", o_bool, &nodetach,
- "Don't detach from controlling tty", OPT_PRIO | 1 },
- { "-detach", o_bool, &nodetach,
- "Don't detach from controlling tty", OPT_ALIAS | OPT_PRIOSUB | 1 },
- { "updetach", o_bool, &updetach,
- "Detach from controlling tty once link is up",
- OPT_PRIOSUB | OPT_A2CLR | 1, &nodetach },
-
- { "holdoff", o_int, &holdoff,
- "Set time in seconds before retrying connection", OPT_PRIO },
-
- { "idle", o_int, &idle_time_limit,
- "Set time in seconds before disconnecting idle link", OPT_PRIO },
-
- { "maxconnect", o_int, &maxconnect,
- "Set connection time limit",
- OPT_PRIO | OPT_LLIMIT | OPT_NOINCR | OPT_ZEROINF },
-
- { "domain", o_special, (void *)setdomain,
- "Add given domain name to hostname",
- OPT_PRIO | OPT_PRIV | OPT_A2STRVAL, &domain },
-
- { "file", o_special, (void *)readfile,
- "Take options from a file", OPT_NOPRINT },
- { "call", o_special, (void *)callfile,
- "Take options from a privileged file", OPT_NOPRINT },
-
- { "persist", o_bool, &persist,
- "Keep on reopening connection after close", OPT_PRIO | 1 },
- { "nopersist", o_bool, &persist,
- "Turn off persist option", OPT_PRIOSUB },
-
- { "demand", o_bool, &demand,
- "Dial on demand", OPT_INITONLY | 1, &persist },
-
- { "--version", o_special_noarg, (void *)showversion,
- "Show version number" },
- { "--help", o_special_noarg, (void *)showhelp,
- "Show brief listing of options" },
- { "-h", o_special_noarg, (void *)showhelp,
- "Show brief listing of options", OPT_ALIAS },
-
- { "logfile", o_special, (void *)setlogfile,
- "Append log messages to this file",
- OPT_PRIO | OPT_A2STRVAL | OPT_STATIC, &logfile_name },
- { "logfd", o_int, &log_to_fd,
- "Send log messages to this file descriptor",
- OPT_PRIOSUB | OPT_A2CLR, &log_default },
- { "nolog", o_int, &log_to_fd,
- "Don't send log messages to any file",
- OPT_PRIOSUB | OPT_NOARG | OPT_VAL(-1) },
- { "nologfd", o_int, &log_to_fd,
- "Don't send log messages to any file descriptor",
- OPT_PRIOSUB | OPT_ALIAS | OPT_NOARG | OPT_VAL(-1) },
-
- { "linkname", o_string, linkname,
- "Set logical name for link",
- OPT_PRIO | OPT_PRIV | OPT_STATIC, NULL, MAXPATHLEN },
-
- { "maxfail", o_int, &maxfail,
- "Maximum number of unsuccessful connection attempts to allow",
- OPT_PRIO },
-
- { "ktune", o_bool, &tune_kernel,
- "Alter kernel settings as necessary", OPT_PRIO | 1 },
- { "noktune", o_bool, &tune_kernel,
- "Don't alter kernel settings", OPT_PRIOSUB },
-
- { "connect-delay", o_int, &connect_delay,
- "Maximum time (in ms) to wait after connect script finishes",
- OPT_PRIO },
-
- { "unit", o_int, &req_unit,
- "PPP interface unit number to use if possible",
- OPT_PRIO | OPT_LLIMIT, 0, 0 },
-
- { "dump", o_bool, &dump_options,
- "Print out option values after parsing all options", 1 },
- { "dryrun", o_bool, &dryrun,
- "Stop after parsing, printing, and checking options", 1 },
-
-#ifdef HAVE_MULTILINK
- { "multilink", o_bool, &multilink,
- "Enable multilink operation", OPT_PRIO | 1 },
- { "mp", o_bool, &multilink,
- "Enable multilink operation", OPT_PRIOSUB | OPT_ALIAS | 1 },
- { "nomultilink", o_bool, &multilink,
- "Disable multilink operation", OPT_PRIOSUB | 0 },
- { "nomp", o_bool, &multilink,
- "Disable multilink operation", OPT_PRIOSUB | OPT_ALIAS | 0 },
-
- { "bundle", o_string, &bundle_name,
- "Bundle name for multilink", OPT_PRIO },
-#endif /* HAVE_MULTILINK */
-
-#ifdef PLUGIN
- { "plugin", o_special, (void *)loadplugin,
- "Load a plug-in module into pppd", OPT_PRIV | OPT_A2LIST },
-#endif
-
-#ifdef PPP_FILTER
- { "pdebug", o_int, &dflag,
- "libpcap debugging", OPT_PRIO },
-
- { "pass-filter", 1, setpassfilter,
- "set filter for packets to pass", OPT_PRIO },
-
- { "active-filter", 1, setactivefilter,
- "set filter for active pkts", OPT_PRIO },
-#endif
-
- { NULL }
-};
-
-#ifndef IMPLEMENTATION
-#define IMPLEMENTATION ""
-#endif
-
-static char *usage_string = "\
-pppd version %s\n\
-Usage: %s [ options ], where options are:\n\
- <device> Communicate over the named device\n\
- <speed> Set the baud rate to <speed>\n\
- <loc>:<rem> Set the local and/or remote interface IP\n\
- addresses. Either one may be omitted.\n\
- asyncmap <n> Set the desired async map to hex <n>\n\
- auth Require authentication from peer\n\
- connect <p> Invoke shell command <p> to set up the serial line\n\
- crtscts Use hardware RTS/CTS flow control\n\
- defaultroute Add default route through interface\n\
- file <f> Take options from file <f>\n\
- modem Use modem control lines\n\
- mru <n> Set MRU value to <n> for negotiation\n\
-See pppd(8) for more options.\n\
-";
-
-/*
- * parse_args - parse a string of arguments from the command line.
- */
-int
-parse_args(argc, argv)
- int argc;
- char **argv;
-{
- char *arg;
- option_t *opt;
- int n;
-
- privileged_option = privileged;
- option_source = "command line";
- option_priority = OPRIO_CMDLINE;
- while (argc > 0) {
- arg = *argv++;
- --argc;
- opt = find_option(arg);
- if (opt == NULL) {
- option_error("unrecognized option '%s'", arg);
- usage();
- return 0;
- }
- n = n_arguments(opt);
- if (argc < n) {
- option_error("too few parameters for option %s", arg);
- return 0;
- }
- if (!process_option(opt, arg, argv))
- return 0;
- argc -= n;
- argv += n;
- }
- return 1;
-}
-
-/*
- * options_from_file - Read a string of options from a file,
- * and interpret them.
- */
-int
-options_from_file(filename, must_exist, check_prot, priv)
- char *filename;
- int must_exist;
- int check_prot;
- int priv;
-{
- FILE *f;
- int i, newline, ret, err;
- option_t *opt;
- int oldpriv, n;
- char *oldsource;
- char *argv[MAXARGS];
- char args[MAXARGS][MAXWORDLEN];
- char cmd[MAXWORDLEN];
-
- if (check_prot)
- seteuid(getuid());
- f = fopen(filename, "r");
- err = errno;
- if (check_prot)
- seteuid(0);
- if (f == NULL) {
- errno = err;
- if (!must_exist) {
- if (err != ENOENT && err != ENOTDIR)
- warn("Warning: can't open options file %s: %m", filename);
- return 1;
- }
- option_error("Can't open options file %s: %m", filename);
- return 0;
- }
-
- oldpriv = privileged_option;
- privileged_option = priv;
- oldsource = option_source;
- option_source = strdup(filename);
- if (option_source == NULL)
- option_source = "file";
- ret = 0;
- while (getword(f, cmd, &newline, filename)) {
- opt = find_option(cmd);
- if (opt == NULL) {
- option_error("In file %s: unrecognized option '%s'",
- filename, cmd);
- goto err;
- }
- n = n_arguments(opt);
- for (i = 0; i < n; ++i) {
- if (!getword(f, args[i], &newline, filename)) {
- option_error(
- "In file %s: too few parameters for option '%s'",
- filename, cmd);
- goto err;
- }
- argv[i] = args[i];
- }
- if (!process_option(opt, cmd, argv))
- goto err;
- }
- ret = 1;
-
-err:
- fclose(f);
- privileged_option = oldpriv;
- option_source = oldsource;
- return ret;
-}
-
-/*
- * options_from_user - See if the use has a ~/.ppprc file,
- * and if so, interpret options from it.
- */
-int
-options_from_user()
-{
- char *user, *path, *file;
- int ret;
- struct passwd *pw;
- size_t pl;
-
- pw = getpwuid(getuid());
- if (pw == NULL || (user = pw->pw_dir) == NULL || user[0] == 0)
- return 1;
- file = _PATH_USEROPT;
- pl = strlen(user) + strlen(file) + 2;
- path = malloc(pl);
- if (path == NULL)
- novm("init file name");
- slprintf(path, pl, "%s/%s", user, file);
- option_priority = OPRIO_CFGFILE;
- ret = options_from_file(path, 0, 1, privileged);
- free(path);
- return ret;
-}
-
-/*
- * options_for_tty - See if an options file exists for the serial
- * device, and if so, interpret options from it.
- * We only allow the per-tty options file to override anything from
- * the command line if it is something that the user can't override
- * once it has been set by root; this is done by giving configuration
- * files a lower priority than the command line.
- */
-int
-options_for_tty()
-{
- char *dev, *path, *p;
- int ret;
- size_t pl;
-
- dev = devnam;
- if (strncmp(dev, "/dev/", 5) == 0)
- dev += 5;
- if (dev[0] == 0 || strcmp(dev, "tty") == 0)
- return 1; /* don't look for /etc/ppp/options.tty */
- pl = strlen(_PATH_TTYOPT) + strlen(dev) + 1;
- path = malloc(pl);
- if (path == NULL)
- novm("tty init file name");
- slprintf(path, pl, "%s%s", _PATH_TTYOPT, dev);
- /* Turn slashes into dots, for Solaris case (e.g. /dev/term/a) */
- for (p = path + strlen(_PATH_TTYOPT); *p != 0; ++p)
- if (*p == '/')
- *p = '.';
- option_priority = OPRIO_CFGFILE;
- ret = options_from_file(path, 0, 0, 1);
- free(path);
- return ret;
-}
-
-/*
- * options_from_list - process a string of options in a wordlist.
- */
-int
-options_from_list(w, priv)
- struct wordlist *w;
- int priv;
-{
- char *argv[MAXARGS];
- option_t *opt;
- int i, n, ret = 0;
- struct wordlist *w0;
-
- privileged_option = priv;
- option_source = "secrets file";
- option_priority = OPRIO_SECFILE;
-
- while (w != NULL) {
- opt = find_option(w->word);
- if (opt == NULL) {
- option_error("In secrets file: unrecognized option '%s'",
- w->word);
- goto err;
- }
- n = n_arguments(opt);
- w0 = w;
- for (i = 0; i < n; ++i) {
- w = w->next;
- if (w == NULL) {
- option_error(
- "In secrets file: too few parameters for option '%s'",
- w0->word);
- goto err;
- }
- argv[i] = w->word;
- }
- if (!process_option(opt, w0->word, argv))
- goto err;
- w = w->next;
- }
- ret = 1;
-
-err:
- return ret;
-}
-
-/*
- * match_option - see if this option matches an option_t structure.
- */
-static int
-match_option(name, opt, dowild)
- char *name;
- option_t *opt;
- int dowild;
-{
- int (*match) __P((char *, char **, int));
-
- if (dowild != (opt->type == o_wild))
- return 0;
- if (!dowild)
- return strcmp(name, opt->name) == 0;
- match = (int (*) __P((char *, char **, int))) opt->addr;
- return (*match)(name, NULL, 0);
-}
-
-/*
- * find_option - scan the option lists for the various protocols
- * looking for an entry with the given name.
- * This could be optimized by using a hash table.
- */
-static option_t *
-find_option(name)
- const char *name;
-{
- option_t *opt;
- struct option_list *list;
- int i, dowild;
-
- for (dowild = 0; dowild <= 1; ++dowild) {
- for (opt = general_options; opt->name != NULL; ++opt)
- if (match_option(name, opt, dowild))
- return opt;
- for (opt = auth_options; opt->name != NULL; ++opt)
- if (match_option(name, opt, dowild))
- return opt;
- for (list = extra_options; list != NULL; list = list->next)
- for (opt = list->options; opt->name != NULL; ++opt)
- if (match_option(name, opt, dowild))
- return opt;
- for (opt = the_channel->options; opt->name != NULL; ++opt)
- if (match_option(name, opt, dowild))
- return opt;
- for (i = 0; protocols[i] != NULL; ++i)
- if ((opt = protocols[i]->options) != NULL)
- for (; opt->name != NULL; ++opt)
- if (match_option(name, opt, dowild))
- return opt;
- }
- return NULL;
-}
-
-/*
- * process_option - process one new-style option.
- */
-static int
-process_option(opt, cmd, argv)
- option_t *opt;
- char *cmd;
- char **argv;
-{
- u_int32_t v;
- int iv, a;
- char *sv;
- int (*parser) __P((char **));
- int (*wildp) __P((char *, char **, int));
- char *optopt = (opt->type == o_wild)? "": " option";
- int prio = option_priority;
- option_t *mainopt = opt;
-
- if ((opt->flags & OPT_PRIVFIX) && privileged_option)
- prio += OPRIO_ROOT;
- while (mainopt->flags & OPT_PRIOSUB)
- --mainopt;
- if (mainopt->flags & OPT_PRIO) {
- if (prio < mainopt->priority) {
- /* new value doesn't override old */
- if (prio == OPRIO_CMDLINE && mainopt->priority > OPRIO_ROOT) {
- option_error("%s%s set in %s cannot be overridden\n",
- opt->name, optopt, mainopt->source);
- return 0;
- }
- return 1;
- }
- if (prio > OPRIO_ROOT && mainopt->priority == OPRIO_CMDLINE)
- warn("%s%s from %s overrides command line",
- opt->name, optopt, option_source);
- }
-
- if ((opt->flags & OPT_INITONLY) && phase != PHASE_INITIALIZE) {
- option_error("%s%s cannot be changed after initialization",
- opt->name, optopt);
- return 0;
- }
- if ((opt->flags & OPT_PRIV) && !privileged_option) {
- option_error("using the %s%s requires root privilege",
- opt->name, optopt);
- return 0;
- }
- if ((opt->flags & OPT_ENABLE) && *(bool *)(opt->addr2) == 0) {
- option_error("%s%s is disabled", opt->name, optopt);
- return 0;
- }
- if ((opt->flags & OPT_DEVEQUIV) && devnam_fixed) {
- option_error("the %s%s may not be changed in %s",
- opt->name, optopt, option_source);
- return 0;
- }
-
- switch (opt->type) {
- case o_bool:
- v = opt->flags & OPT_VALUE;
- *(bool *)(opt->addr) = v;
- if (opt->addr2 && (opt->flags & OPT_A2COPY))
- *(bool *)(opt->addr2) = v;
- break;
-
- case o_int:
- iv = 0;
- if ((opt->flags & OPT_NOARG) == 0) {
- if (!int_option(*argv, &iv))
- return 0;
- if ((((opt->flags & OPT_LLIMIT) && iv < opt->lower_limit)
- || ((opt->flags & OPT_ULIMIT) && iv > opt->upper_limit))
- && !((opt->flags & OPT_ZEROOK && iv == 0))) {
- char *zok = (opt->flags & OPT_ZEROOK)? " zero or": "";
- switch (opt->flags & OPT_LIMITS) {
- case OPT_LLIMIT:
- option_error("%s value must be%s >= %d",
- opt->name, zok, opt->lower_limit);
- break;
- case OPT_ULIMIT:
- option_error("%s value must be%s <= %d",
- opt->name, zok, opt->upper_limit);
- break;
- case OPT_LIMITS:
- option_error("%s value must be%s between %d and %d",
- opt->name, opt->lower_limit, opt->upper_limit);
- break;
- }
- return 0;
- }
- }
- a = opt->flags & OPT_VALUE;
- if (a >= 128)
- a -= 256; /* sign extend */
- iv += a;
- if (opt->flags & OPT_INC)
- iv += *(int *)(opt->addr);
- if ((opt->flags & OPT_NOINCR) && !privileged_option) {
- int oldv = *(int *)(opt->addr);
- if ((opt->flags & OPT_ZEROINF) ?
- (oldv != 0 && (iv == 0 || iv > oldv)) : (iv > oldv)) {
- option_error("%s value cannot be increased", opt->name);
- return 0;
- }
- }
- *(int *)(opt->addr) = iv;
- if (opt->addr2 && (opt->flags & OPT_A2COPY))
- *(int *)(opt->addr2) = iv;
- break;
-
- case o_uint32:
- if (opt->flags & OPT_NOARG) {
- v = opt->flags & OPT_VALUE;
- if (v & 0x80)
- v |= 0xffffff00U;
- } else if (!number_option(*argv, &v, 16))
- return 0;
- if (opt->flags & OPT_OR)
- v |= *(u_int32_t *)(opt->addr);
- *(u_int32_t *)(opt->addr) = v;
- if (opt->addr2 && (opt->flags & OPT_A2COPY))
- *(u_int32_t *)(opt->addr2) = v;
- break;
-
- case o_string:
- if (opt->flags & OPT_STATIC) {
- strlcpy((char *)(opt->addr), *argv, opt->upper_limit);
- } else {
- sv = strdup(*argv);
- if (sv == NULL)
- novm("option argument");
- *(char **)(opt->addr) = sv;
- }
- break;
-
- case o_special_noarg:
- case o_special:
- parser = (int (*) __P((char **))) opt->addr;
- if (!(*parser)(argv))
- return 0;
- if (opt->flags & OPT_A2LIST) {
- struct option_value *ovp, **pp;
-
- ovp = malloc(sizeof(*ovp) + strlen(*argv));
- if (ovp != 0) {
- strcpy(ovp->value, *argv);
- ovp->source = option_source;
- ovp->next = NULL;
- pp = (struct option_value **) &opt->addr2;
- while (*pp != 0)
- pp = &(*pp)->next;
- *pp = ovp;
- }
- }
- break;
-
- case o_wild:
- wildp = (int (*) __P((char *, char **, int))) opt->addr;
- if (!(*wildp)(cmd, argv, 1))
- return 0;
- break;
- }
-
- if (opt->addr2 && (opt->flags & (OPT_A2COPY|OPT_ENABLE
- |OPT_A2PRINTER|OPT_A2STRVAL|OPT_A2LIST)) == 0)
- *(bool *)(opt->addr2) = !(opt->flags & OPT_A2CLR);
-
- mainopt->source = option_source;
- mainopt->priority = prio;
- mainopt->winner = opt - mainopt;
-
- return 1;
-}
-
-/*
- * override_value - if the option priorities would permit us to
- * override the value of option, return 1 and update the priority
- * and source of the option value. Otherwise returns 0.
- */
-int
-override_value(option, priority, source)
- const char *option;
- int priority;
- const char *source;
-{
- option_t *opt;
-
- opt = find_option(option);
- if (opt == NULL)
- return 0;
- while (opt->flags & OPT_PRIOSUB)
- --opt;
- if ((opt->flags & OPT_PRIO) && priority < opt->priority)
- return 0;
- opt->priority = priority;
- opt->source = source;
- opt->winner = -1;
- return 1;
-}
-
-/*
- * n_arguments - tell how many arguments an option takes
- */
-static int
-n_arguments(opt)
- option_t *opt;
-{
- return (opt->type == o_bool || opt->type == o_special_noarg
- || (opt->flags & OPT_NOARG))? 0: 1;
-}
-
-/*
- * add_options - add a list of options to the set we grok.
- */
-void
-add_options(opt)
- option_t *opt;
-{
- struct option_list *list;
-
- list = malloc(sizeof(*list));
- if (list == 0)
- novm("option list entry");
- list->options = opt;
- list->next = extra_options;
- extra_options = list;
-}
-
-/*
- * check_options - check that options are valid and consistent.
- */
-void
-check_options()
-{
- if (logfile_fd >= 0 && logfile_fd != log_to_fd)
- close(logfile_fd);
-}
-
-/*
- * print_option - print out an option and its value
- */
-static void
-print_option(opt, mainopt, printer, arg)
- option_t *opt, *mainopt;
- void (*printer) __P((void *, char *, ...));
- void *arg;
-{
- int i, v;
- char *p;
-
- if (opt->flags & OPT_NOPRINT)
- return;
- switch (opt->type) {
- case o_bool:
- v = opt->flags & OPT_VALUE;
- if (*(bool *)opt->addr != v)
- /* this can happen legitimately, e.g. lock
- option turned off for default device */
- break;
- printer(arg, "%s", opt->name);
- break;
- case o_int:
- v = opt->flags & OPT_VALUE;
- if (v >= 128)
- v -= 256;
- i = *(int *)opt->addr;
- if (opt->flags & OPT_NOARG) {
- printer(arg, "%s", opt->name);
- if (i != v) {
- if (opt->flags & OPT_INC) {
- for (; i > v; i -= v)
- printer(arg, " %s", opt->name);
- } else
- printer(arg, " # oops: %d not %d\n",
- i, v);
- }
- } else {
- printer(arg, "%s %d", opt->name, i);
- }
- break;
- case o_uint32:
- printer(arg, "%s", opt->name);
- if ((opt->flags & OPT_NOARG) == 0)
- printer(arg, " %x", *(u_int32_t *)opt->addr);
- break;
-
- case o_string:
- if (opt->flags & OPT_HIDE) {
- p = "??????";
- } else {
- p = (char *) opt->addr;
- if ((opt->flags & OPT_STATIC) == 0)
- p = *(char **)p;
- }
- printer(arg, "%s %q", opt->name, p);
- break;
-
- case o_special:
- case o_special_noarg:
- case o_wild:
- if (opt->type != o_wild) {
- printer(arg, "%s", opt->name);
- if (n_arguments(opt) == 0)
- break;
- printer(arg, " ");
- }
- if (opt->flags & OPT_A2PRINTER) {
- void (*oprt) __P((option_t *,
- void ((*)__P((void *, char *, ...))),
- void *));
- oprt = opt->addr2;
- (*oprt)(opt, printer, arg);
- } else if (opt->flags & OPT_A2STRVAL) {
- p = (char *) opt->addr2;
- if ((opt->flags & OPT_STATIC) == 0)
- p = *(char **)p;
- printer("%q", p);
- } else if (opt->flags & OPT_A2LIST) {
- struct option_value *ovp;
-
- ovp = (struct option_value *) opt->addr2;
- for (;;) {
- printer(arg, "%q", ovp->value);
- if ((ovp = ovp->next) == NULL)
- break;
- printer(arg, "\t\t# (from %s)\n%s ",
- ovp->source, opt->name);
- }
- } else {
- printer(arg, "xxx # [don't know how to print value]");
- }
- break;
-
- default:
- printer(arg, "# %s value (type %d)", opt->name, opt->type);
- break;
- }
- printer(arg, "\t\t# (from %s)\n", mainopt->source);
-}
-
-/*
- * print_option_list - print out options in effect from an
- * array of options.
- */
-static void
-print_option_list(opt, printer, arg)
- option_t *opt;
- void (*printer) __P((void *, char *, ...));
- void *arg;
-{
- while (opt->name != NULL) {
- if (opt->priority != OPRIO_DEFAULT
- && opt->winner != (short int) -1)
- print_option(opt + opt->winner, opt, printer, arg);
- do {
- ++opt;
- } while (opt->flags & OPT_PRIOSUB);
- }
-}
-
-/*
- * print_options - print out what options are in effect.
- */
-void
-print_options(printer, arg)
- void (*printer) __P((void *, char *, ...));
- void *arg;
-{
- struct option_list *list;
- int i;
-
- printer(arg, "pppd options in effect:\n");
- print_option_list(general_options, printer, arg);
- print_option_list(auth_options, printer, arg);
- for (list = extra_options; list != NULL; list = list->next)
- print_option_list(list->options, printer, arg);
- print_option_list(the_channel->options, printer, arg);
- for (i = 0; protocols[i] != NULL; ++i)
- print_option_list(protocols[i]->options, printer, arg);
-}
-
-/*
- * usage - print out a message telling how to use the program.
- */
-static void
-usage()
-{
- if (phase == PHASE_INITIALIZE)
- fprintf(stderr, usage_string, VERSION, progname);
-}
-
-/*
- * showhelp - print out usage message and exit.
- */
-static int
-showhelp(argv)
- char **argv;
-{
- if (phase == PHASE_INITIALIZE) {
- usage();
- exit(0);
- }
- return 0;
-}
-
-/*
- * showversion - print out the version number and exit.
- */
-static int
-showversion(argv)
- char **argv;
-{
- if (phase == PHASE_INITIALIZE) {
- fprintf(stderr, "pppd version %s\n", VERSION);
- exit(0);
- }
- return 0;
-}
-
-/*
- * option_error - print a message about an error in an option.
- * The message is logged, and also sent to
- * stderr if phase == PHASE_INITIALIZE.
- */
-void
-option_error __V((char *fmt, ...))
-{
- va_list args;
- char buf[1024];
-
-#if defined(__STDC__)
- va_start(args, fmt);
-#else
- char *fmt;
- va_start(args);
- fmt = va_arg(args, char *);
-#endif
- vslprintf(buf, sizeof(buf), fmt, args);
- va_end(args);
- if (phase == PHASE_INITIALIZE)
- fprintf(stderr, "%s: %s\n", progname, buf);
- syslog(LOG_ERR, "%s", buf);
-}
-
-#if 0
-/*
- * readable - check if a file is readable by the real user.
- */
-int
-readable(fd)
- int fd;
-{
- uid_t uid;
- int i;
- struct stat sbuf;
-
- uid = getuid();
- if (uid == 0)
- return 1;
- if (fstat(fd, &sbuf) != 0)
- return 0;
- if (sbuf.st_uid == uid)
- return sbuf.st_mode & S_IRUSR;
- if (sbuf.st_gid == getgid())
- return sbuf.st_mode & S_IRGRP;
- for (i = 0; i < ngroups; ++i)
- if (sbuf.st_gid == groups[i])
- return sbuf.st_mode & S_IRGRP;
- return sbuf.st_mode & S_IROTH;
-}
-#endif
-
-/*
- * Read a word from a file.
- * Words are delimited by white-space or by quotes (" or ').
- * Quotes, white-space and \ may be escaped with \.
- * \<newline> is ignored.
- */
-int
-getword(f, word, newlinep, filename)
- FILE *f;
- char *word;
- int *newlinep;
- char *filename;
-{
- int c, len, escape;
- int quoted, comment;
- int value, digit, got, n;
-
-#define isoctal(c) ((c) >= '0' && (c) < '8')
-
- *newlinep = 0;
- len = 0;
- escape = 0;
- comment = 0;
-
- /*
- * First skip white-space and comments.
- */
- for (;;) {
- c = getc(f);
- if (c == EOF)
- break;
-
- /*
- * A newline means the end of a comment; backslash-newline
- * is ignored. Note that we cannot have escape && comment.
- */
- if (c == '\n') {
- if (!escape) {
- *newlinep = 1;
- comment = 0;
- } else
- escape = 0;
- continue;
- }
-
- /*
- * Ignore characters other than newline in a comment.
- */
- if (comment)
- continue;
-
- /*
- * If this character is escaped, we have a word start.
- */
- if (escape)
- break;
-
- /*
- * If this is the escape character, look at the next character.
- */
- if (c == '\\') {
- escape = 1;
- continue;
- }
-
- /*
- * If this is the start of a comment, ignore the rest of the line.
- */
- if (c == '#') {
- comment = 1;
- continue;
- }
-
- /*
- * A non-whitespace character is the start of a word.
- */
- if (!isspace(c))
- break;
- }
-
- /*
- * Save the delimiter for quoted strings.
- */
- if (!escape && (c == '"' || c == '\'')) {
- quoted = c;
- c = getc(f);
- } else
- quoted = 0;
-
- /*
- * Process characters until the end of the word.
- */
- while (c != EOF) {
- if (escape) {
- /*
- * This character is escaped: backslash-newline is ignored,
- * various other characters indicate particular values
- * as for C backslash-escapes.
- */
- escape = 0;
- if (c == '\n') {
- c = getc(f);
- continue;
- }
-
- got = 0;
- switch (c) {
- case 'a':
- value = '\a';
- break;
- case 'b':
- value = '\b';
- break;
- case 'f':
- value = '\f';
- break;
- case 'n':
- value = '\n';
- break;
- case 'r':
- value = '\r';
- break;
- case 's':
- value = ' ';
- break;
- case 't':
- value = '\t';
- break;
-
- default:
- if (isoctal(c)) {
- /*
- * \ddd octal sequence
- */
- value = 0;
- for (n = 0; n < 3 && isoctal(c); ++n) {
- value = (value << 3) + (c & 07);
- c = getc(f);
- }
- got = 1;
- break;
- }
-
- if (c == 'x') {
- /*
- * \x<hex_string> sequence
- */
- value = 0;
- c = getc(f);
- for (n = 0; n < 2 && isxdigit(c); ++n) {
- digit = toupper(c) - '0';
- if (digit > 10)
- digit += '0' + 10 - 'A';
- value = (value << 4) + digit;
- c = getc (f);
- }
- got = 1;
- break;
- }
-
- /*
- * Otherwise the character stands for itself.
- */
- value = c;
- break;
- }
-
- /*
- * Store the resulting character for the escape sequence.
- */
- if (len < MAXWORDLEN-1)
- word[len] = value;
- ++len;
-
- if (!got)
- c = getc(f);
- continue;
-
- }
-
- /*
- * Not escaped: see if we've reached the end of the word.
- */
- if (quoted) {
- if (c == quoted)
- break;
- } else {
- if (isspace(c) || c == '#') {
- ungetc (c, f);
- break;
- }
- }
-
- /*
- * Backslash starts an escape sequence.
- */
- if (c == '\\') {
- escape = 1;
- c = getc(f);
- continue;
- }
-
- /*
- * An ordinary character: store it in the word and get another.
- */
- if (len < MAXWORDLEN-1)
- word[len] = c;
- ++len;
-
- c = getc(f);
- }
-
- /*
- * End of the word: check for errors.
- */
- if (c == EOF) {
- if (ferror(f)) {
- if (errno == 0)
- errno = EIO;
- option_error("Error reading %s: %m", filename);
- die(1);
- }
- /*
- * If len is zero, then we didn't find a word before the
- * end of the file.
- */
- if (len == 0)
- return 0;
- }
-
- /*
- * Warn if the word was too long, and append a terminating null.
- */
- if (len >= MAXWORDLEN) {
- option_error("warning: word in file %s too long (%.20s...)",
- filename, word);
- len = MAXWORDLEN - 1;
- }
- word[len] = 0;
-
- return 1;
-
-#undef isoctal
-
-}
-
-/*
- * number_option - parse an unsigned numeric parameter for an option.
- */
-static int
-number_option(str, valp, base)
- char *str;
- u_int32_t *valp;
- int base;
-{
- char *ptr;
-
- *valp = strtoul(str, &ptr, base);
- if (ptr == str) {
- option_error("invalid numeric parameter '%s' for %s option",
- str, current_option);
- return 0;
- }
- return 1;
-}
-
-
-/*
- * int_option - like number_option, but valp is int *,
- * the base is assumed to be 0, and *valp is not changed
- * if there is an error.
- */
-int
-int_option(str, valp)
- char *str;
- int *valp;
-{
- u_int32_t v;
-
- if (!number_option(str, &v, 0))
- return 0;
- *valp = (int) v;
- return 1;
-}
-
-
-/*
- * The following procedures parse options.
- */
-
-/*
- * readfile - take commands from a file.
- */
-static int
-readfile(argv)
- char **argv;
-{
- return options_from_file(*argv, 1, 1, privileged_option);
-}
-
-/*
- * callfile - take commands from /etc/ppp/peers/<name>.
- * Name may not contain /../, start with / or ../, or end in /..
- */
-static int
-callfile(argv)
- char **argv;
-{
- char *fname, *arg, *p;
- int l, ok;
-
- arg = *argv;
- ok = 1;
- if (arg[0] == '/' || arg[0] == 0)
- ok = 0;
- else {
- for (p = arg; *p != 0; ) {
- if (p[0] == '.' && p[1] == '.' && (p[2] == '/' || p[2] == 0)) {
- ok = 0;
- break;
- }
- while (*p != '/' && *p != 0)
- ++p;
- if (*p == '/')
- ++p;
- }
- }
- if (!ok) {
- option_error("call option value may not contain .. or start with /");
- return 0;
- }
-
- l = strlen(arg) + strlen(_PATH_PEERFILES) + 1;
- if ((fname = (char *) malloc(l)) == NULL)
- novm("call file name");
- slprintf(fname, l, "%s%s", _PATH_PEERFILES, arg);
-
- ok = options_from_file(fname, 1, 1, 1);
-
- free(fname);
- return ok;
-}
-
-#ifdef PPP_FILTER
-/*
- * setpassfilter - Set the pass filter for packets
- */
-static int
-setpassfilter(argv)
- char **argv;
-{
- pc.linktype = DLT_PPP;
- pc.snapshot = PPP_HDRLEN;
-
- if (pcap_compile(&pc, &pass_filter, *argv, 1, netmask) == 0)
- return 1;
- option_error("error in pass-filter expression: %s\n", pcap_geterr(&pc));
- return 0;
-}
-
-/*
- * setactivefilter - Set the active filter for packets
- */
-static int
-setactivefilter(argv)
- char **argv;
-{
- pc.linktype = DLT_PPP;
- pc.snapshot = PPP_HDRLEN;
-
- if (pcap_compile(&pc, &active_filter, *argv, 1, netmask) == 0)
- return 1;
- option_error("error in active-filter expression: %s\n", pcap_geterr(&pc));
- return 0;
-}
-#endif
-
-/*
- * setdomain - Set domain name to append to hostname
- */
-static int
-setdomain(argv)
- char **argv;
-{
- gethostname(hostname, MAXNAMELEN);
- if (**argv != 0) {
- if (**argv != '.')
- strncat(hostname, ".", MAXNAMELEN - strlen(hostname));
- domain = hostname + strlen(hostname);
- strncat(hostname, *argv, MAXNAMELEN - strlen(hostname));
- }
- hostname[MAXNAMELEN-1] = 0;
- return (1);
-}
-
-
-static int
-setlogfile(argv)
- char **argv;
-{
- int fd, err;
-
- if (!privileged_option)
- seteuid(getuid());
- fd = open(*argv, O_WRONLY | O_APPEND | O_CREAT | O_EXCL, 0644);
- if (fd < 0 && errno == EEXIST)
- fd = open(*argv, O_WRONLY | O_APPEND);
- err = errno;
- if (!privileged_option)
- seteuid(0);
- if (fd < 0) {
- errno = err;
- option_error("Can't open log file %s: %m", *argv);
- return 0;
- }
- strlcpy(logfile_name, *argv, sizeof(logfile_name));
- if (logfile_fd >= 0)
- close(logfile_fd);
- logfile_fd = fd;
- log_to_fd = fd;
- log_default = 0;
- return 1;
-}
-
-#ifdef PLUGIN
-static int
-loadplugin(argv)
- char **argv;
-{
- char *arg = *argv;
- void *handle;
- const char *err;
- void (*init) __P((void));
- char *path = arg;
- const char *vers;
-
- if (strchr(arg, '/') == 0) {
- const char *base = _PATH_PLUGIN;
- int l = strlen(base) + strlen(arg) + 2;
- path = malloc(l);
- if (path == 0)
- novm("plugin file path");
- strlcpy(path, base, l);
- strlcat(path, "/", l);
- strlcat(path, arg, l);
- }
- handle = dlopen(path, RTLD_GLOBAL | RTLD_NOW);
- if (handle == 0) {
- err = dlerror();
- if (err != 0)
- option_error("%s", err);
- option_error("Couldn't load plugin %s", arg);
- goto err;
- }
- init = (void (*)(void))dlsym(handle, "plugin_init");
- if (init == 0) {
- option_error("%s has no initialization entry point", arg);
- goto errclose;
- }
- vers = (const char *) dlsym(handle, "pppd_version");
- if (vers == 0) {
- warn("Warning: plugin %s has no version information", arg);
- } else if (strcmp(vers, VERSION) != 0) {
- option_error("Plugin %s is for pppd version %s, this is %s",
- vers, VERSION);
- goto errclose;
- }
- info("Plugin %s loaded.", arg);
- (*init)();
- return 1;
-
- errclose:
- dlclose(handle);
- err:
- if (path != arg)
- free(path);
- return 0;
-}
-#endif /* PLUGIN */
diff --git a/mdk-stage1/ppp/pppd/patchlevel.h b/mdk-stage1/ppp/pppd/patchlevel.h
deleted file mode 100644
index 2a2d816f1..000000000
--- a/mdk-stage1/ppp/pppd/patchlevel.h
+++ /dev/null
@@ -1,4 +0,0 @@
-/* $Id$ */
-
-#define VERSION "2.4.1"
-#define DATE "25 March 2001"
diff --git a/mdk-stage1/ppp/pppd/pathnames.h b/mdk-stage1/ppp/pppd/pathnames.h
deleted file mode 100644
index e80784567..000000000
--- a/mdk-stage1/ppp/pppd/pathnames.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * define path names
- *
- * $Id$
- */
-
-#define _PATH_VARRUN "/var/run/"
-#define _PATH_DEVNULL "/dev/null"
-#define _ROOT_PATH
-
-#define _PATH_UPAPFILE _ROOT_PATH "/etc/ppp/pap-secrets"
-#define _PATH_CHAPFILE _ROOT_PATH "/etc/ppp/chap-secrets"
-#define _PATH_SYSOPTIONS _ROOT_PATH "/etc/ppp/options"
-#define _PATH_IPUP _ROOT_PATH "/etc/ppp/ip-up"
-#define _PATH_IPDOWN _ROOT_PATH "/etc/ppp/ip-down"
-#define _PATH_AUTHUP _ROOT_PATH "/etc/ppp/auth-up"
-#define _PATH_AUTHDOWN _ROOT_PATH "/etc/ppp/auth-down"
-#define _PATH_TTYOPT _ROOT_PATH "/etc/ppp/options."
-#define _PATH_CONNERRS _ROOT_PATH "/etc/ppp/connect-errors"
-#define _PATH_PEERFILES _ROOT_PATH "/etc/ppp/peers/"
-#define _PATH_RESOLV _ROOT_PATH "/etc/resolv.conf"
-
-#define _PATH_USEROPT ".ppprc"
-
-#define _PATH_PPPDB _ROOT_PATH _PATH_VARRUN "pppd.tdb"
diff --git a/mdk-stage1/ppp/pppd/plugins/Makefile.linux b/mdk-stage1/ppp/pppd/plugins/Makefile.linux
deleted file mode 100644
index a64256461..000000000
--- a/mdk-stage1/ppp/pppd/plugins/Makefile.linux
+++ /dev/null
@@ -1,19 +0,0 @@
-CC = gcc
-CFLAGS = -g -O2 -I.. -I../../include -fPIC
-LDFLAGS = -shared
-INSTALL = install
-
-all: minconn.so passprompt.so
-
-minconn.so: minconn.c
- $(CC) -o $@ $(LDFLAGS) $(CFLAGS) minconn.c
-
-passprompt.so: passprompt.c
- $(CC) -o $@ $(LDFLAGS) $(CFLAGS) passprompt.c
-
-LIBDIR = /usr/lib/pppd
-
-install: minconn.so passprompt.so
- version=`awk -F '"' '/VERSION/ { print $$2; }' ../patchlevel.h`; \
- $(INSTALL) -d $(LIBDIR)/$$version; \
- $(INSTALL) $? $(LIBDIR)/$$version \ No newline at end of file
diff --git a/mdk-stage1/ppp/pppd/plugins/Makefile.sol2 b/mdk-stage1/ppp/pppd/plugins/Makefile.sol2
deleted file mode 100644
index 8f4398258..000000000
--- a/mdk-stage1/ppp/pppd/plugins/Makefile.sol2
+++ /dev/null
@@ -1,27 +0,0 @@
-#
-# Makefile for plugins on Solaris 2
-#
-# $Id$
-#
-
-include ../../svr4/Makedefs
-
-CFLAGS = -c -O -I.. -I../../include $(COPTS)
-LDFLAGS = -G
-
-all: minconn.so
-
-minconn.so: minconn.o
- ld -o $@ $(LDFLAGS) -h $@ minconn.o
-
-minconn.o: minconn.c
- $(CC) $(CFLAGS) -c $?
-
-passprompt.so: passprompt.o
- ld -o $@ $(LDFLAGS) -h $@ passprompt.o
-
-passprompt.o: passprompt.c
- $(CC) $(CFLAGS) -c $?
-
-clean:
- rm -f *.o *.so
diff --git a/mdk-stage1/ppp/pppd/plugins/minconn.c b/mdk-stage1/ppp/pppd/plugins/minconn.c
deleted file mode 100644
index 02ea34bf6..000000000
--- a/mdk-stage1/ppp/pppd/plugins/minconn.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * minconn.c - pppd plugin to implement a `minconnect' option.
- *
- * Copyright 1999 Paul Mackerras.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms. The name of the author
- * may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-#include <stddef.h>
-#include <time.h>
-#include "pppd.h"
-
-char pppd_version[] = VERSION;
-
-static int minconnect = 0;
-
-static option_t my_options[] = {
- { "minconnect", o_int, &minconnect,
- "Set minimum connect time before idle timeout applies" },
- { NULL }
-};
-
-static int my_get_idle(struct ppp_idle *idle)
-{
- time_t t;
-
- if (idle == NULL)
- return minconnect? minconnect: idle_time_limit;
- t = idle->xmit_idle;
- if (idle->recv_idle < t)
- t = idle->recv_idle;
- return idle_time_limit - t;
-}
-
-void plugin_init(void)
-{
- info("plugin_init");
- add_options(my_options);
- idle_time_hook = my_get_idle;
-}
diff --git a/mdk-stage1/ppp/pppd/plugins/passprompt.c b/mdk-stage1/ppp/pppd/plugins/passprompt.c
deleted file mode 100644
index 5e6a7f90b..000000000
--- a/mdk-stage1/ppp/pppd/plugins/passprompt.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * passprompt.c - pppd plugin to invoke an external PAP password prompter
- *
- * Copyright 1999 Paul Mackerras, Alan Curry.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version
- * 2 of the License, or (at your option) any later version.
- */
-#include <errno.h>
-#include <unistd.h>
-#include <sys/wait.h>
-#include <syslog.h>
-#include "pppd.h"
-
-char pppd_version[] = VERSION;
-
-static char promptprog[PATH_MAX+1];
-
-static option_t options[] = {
- { "promptprog", o_string, promptprog,
- "External PAP password prompting program",
- OPT_STATIC, NULL, PATH_MAX },
- { NULL }
-};
-
-static int promptpass(char *user, char *passwd)
-{
- int p[2];
- pid_t kid;
- int readgood, wstat;
- size_t red;
-
- if (promptprog[0] == 0 || access(promptprog, X_OK) < 0)
- return -1; /* sorry, can't help */
-
- if (!passwd)
- return 1;
-
- if (pipe(p)) {
- warn("Can't make a pipe for %s", promptprog);
- return 0;
- }
- if ((kid = fork()) == (pid_t) -1) {
- warn("Can't fork to run %s", promptprog);
- close(p[0]);
- close(p[1]);
- return 0;
- }
- if (!kid) {
- /* we are the child, exec the program */
- char *argv[4], fdstr[32];
- sys_close();
- closelog();
- close(p[0]);
- seteuid(getuid());
- setegid(getgid());
- argv[0] = promptprog;
- argv[1] = user;
- argv[2] = remote_name;
- sprintf(fdstr, "%d", p[1]);
- argv[3] = fdstr;
- argv[4] = 0;
- execv(*argv, argv);
- _exit(127);
- }
-
- /* we are the parent, read the password from the pipe */
- close(p[1]);
- readgood = 0;
- do {
- red = read(p[0], passwd + readgood, MAXSECRETLEN-1 - readgood);
- if (red == 0)
- break;
- if (red < 0) {
- error("Can't read secret from %s: %m", promptprog);
- readgood = -1;
- break;
- }
- readgood += red;
- } while (readgood < MAXSECRETLEN - 1);
- passwd[readgood] = 0;
- close(p[0]);
-
- /* now wait for child to exit */
- while (waitpid(kid, &wstat, 0) < 0) {
- if (errno != EINTR) {
- warn("error waiting for %s: %m", promptprog);
- break;
- }
- }
-
- if (readgood < 0)
- return 0;
- if (!WIFEXITED(wstat))
- warn("%s terminated abnormally", promptprog);
- if (WEXITSTATUS(wstat))
- warn("%s exited with code %d", promptprog, WEXITSTATUS(status));
-
- return 1;
-}
-
-void plugin_init(void)
-{
- add_options(options);
- pap_passwd_hook = promptpass;
-}
diff --git a/mdk-stage1/ppp/pppd/ppp.pam b/mdk-stage1/ppp/pppd/ppp.pam
deleted file mode 100644
index 475a4bc88..000000000
--- a/mdk-stage1/ppp/pppd/ppp.pam
+++ /dev/null
@@ -1,6 +0,0 @@
-#%PAM-1.0
-# Information for the PPPD process with the 'login' option.
-auth required pam_nologin.so
-auth required pam_unix.so
-account required pam_unix.so
-session required pam_unix.so \ No newline at end of file
diff --git a/mdk-stage1/ppp/pppd/pppd.8 b/mdk-stage1/ppp/pppd/pppd.8
deleted file mode 100644
index ab091cd83..000000000
--- a/mdk-stage1/ppp/pppd/pppd.8
+++ /dev/null
@@ -1,1591 +0,0 @@
-.\" manual page [] for pppd 2.4
-.\" $Id$
-.\" SH section heading
-.\" SS subsection heading
-.\" LP paragraph
-.\" IP indented paragraph
-.\" TP hanging label
-.TH PPPD 8
-.SH NAME
-pppd \- Point to Point Protocol daemon
-.SH SYNOPSIS
-.B pppd
-[
-.I tty_name
-] [
-.I speed
-] [
-.I options
-]
-.SH DESCRIPTION
-.LP
-The Point-to-Point Protocol (PPP) provides a method for transmitting
-datagrams over serial point-to-point links. PPP
-is composed of three parts: a method for encapsulating datagrams over
-serial links, an extensible Link Control Protocol (LCP), and
-a family of Network Control Protocols (NCP) for establishing
-and configuring different network-layer protocols.
-.LP
-The encapsulation scheme is provided by driver code in the kernel.
-Pppd provides the basic LCP, authentication support, and an NCP for
-establishing and configuring the Internet Protocol (IP) (called the IP
-Control Protocol, IPCP).
-.SH FREQUENTLY USED OPTIONS
-.TP
-.I <tty_name>
-Communicate over the named device. The string "/dev/" is prepended if
-necessary. If no device name is given, or if the name of the terminal
-connected to the standard input is given, pppd will use that terminal,
-and will not fork to put itself in the background. A value for this
-option from a privileged source cannot be overridden by a
-non-privileged user.
-.TP
-.I <speed>
-Set the baud rate to <speed> (a decimal number). On systems such as
-4.4BSD and NetBSD, any speed can be specified. Other systems
-(e.g. SunOS) allow only a limited set of speeds.
-.TP
-.B asyncmap \fI<map>
-Set the async character map to <map>. This map describes which
-control characters cannot be successfully received over the serial
-line. Pppd will ask the peer to send these characters as a 2-byte
-escape sequence. The argument is a 32 bit hex number with each bit
-representing a character to escape. Bit 0 (00000001) represents the
-character 0x00; bit 31 (80000000) represents the character 0x1f or ^_.
-If multiple \fIasyncmap\fR options are given, the values are ORed
-together. If no \fIasyncmap\fR option is given, no async character
-map will be negotiated for the receive direction; the peer should then
-escape \fIall\fR control characters. To escape transmitted
-characters, use the \fIescape\fR option.
-.TP
-.B auth
-Require the peer to authenticate itself before allowing network
-packets to be sent or received. This option is the default if the
-system has a default route. If neither this option nor the
-\fInoauth\fR option is specified, pppd will only allow the peer to use
-IP addresses to which the system does not already have a route.
-.TP
-.B call \fIname
-Read options from the file /etc/ppp/peers/\fIname\fR. This file may
-contain privileged options, such as \fInoauth\fR, even if pppd
-is not being run by root. The \fIname\fR string may not begin with /
-or include .. as a pathname component. The format of the options file
-is described below.
-.TP
-.B connect \fIscript
-Use the executable or shell command specified by \fIscript\fR to set
-up the serial line. This script would typically use the chat(8)
-program to dial the modem and start the remote ppp session. A value
-for this option from a privileged source cannot be overridden by a
-non-privileged user.
-.TP
-.B crtscts
-Use hardware flow control (i.e. RTS/CTS) to control the flow of
-data on the serial port. If neither the \fIcrtscts\fR, the
-\fInocrtscts\fR, the \fIcdtrcts\fR nor the \fInocdtrcts\fR option
-is given, the hardware flow control setting for the serial port is
-left unchanged.
-Some serial ports (such as Macintosh serial ports) lack a true
-RTS output. Such serial ports use this mode to implement
-unidirectional flow control. The serial port will
-suspend transmission when requested by the modem (via CTS)
-but will be unable to request the modem stop sending to the
-computer. This mode retains the ability to use DTR as
-a modem control line.
-.TP
-.B defaultroute
-Add a default route to the system routing tables, using the peer as
-the gateway, when IPCP negotiation is successfully completed.
-This entry is removed when the PPP connection is broken. This option
-is privileged if the \fInodefaultroute\fR option has been specified.
-.TP
-.B disconnect \fIscript
-Run the executable or shell command specified by \fIscript\fR after
-pppd has terminated the link. This script could, for example, issue
-commands to the modem to cause it to hang up if hardware modem control
-signals were not available. The disconnect script is not run if the
-modem has already hung up. A value for this option from a privileged
-source cannot be overridden by a non-privileged user.
-.TP
-.B escape \fIxx,yy,...
-Specifies that certain characters should be escaped on transmission
-(regardless of whether the peer requests them to be escaped with its
-async control character map). The characters to be escaped are
-specified as a list of hex numbers separated by commas. Note that
-almost any character can be specified for the \fIescape\fR option,
-unlike the \fIasyncmap\fR option which only allows control characters
-to be specified. The characters which may not be escaped are those
-with hex values 0x20 - 0x3f or 0x5e.
-.TP
-.B file \fIname
-Read options from file \fIname\fR (the format is described below).
-The file must be readable by the user who has invoked pppd.
-.TP
-.B init \fIscript
-Run the executable or shell command specified by \fIscript\fR to
-initialize the serial line. This script would typically use the
-chat(8) program to configure the modem to enable auto answer. A value
-for this option from a privileged source cannot be overridden by a
-non-privileged user.
-.TP
-.B lock
-Specifies that pppd should create a UUCP-style lock file for the
-serial device to ensure exclusive access to the device.
-.TP
-.B mru \fIn
-Set the MRU [Maximum Receive Unit] value to \fIn\fR. Pppd
-will ask the peer to send packets of no more than \fIn\fR bytes. The
-minimum MRU value is 128. The default MRU value is 1500. A value of
-296 is recommended for slow links (40 bytes for TCP/IP header + 256
-bytes of data). (Note that for IPv6 MRU must be at least 1280)
-.TP
-.B mtu \fIn
-Set the MTU [Maximum Transmit Unit] value to \fIn\fR. Unless the
-peer requests a smaller value via MRU negotiation, pppd will
-request that the kernel networking code send data packets of no more
-than \fIn\fR bytes through the PPP network interface. (Note that for
-IPv6 MTU must be at least 1280)
-.TP
-.B passive
-Enables the "passive" option in the LCP. With this option, pppd will
-attempt to initiate a connection; if no reply is received from the
-peer, pppd will then just wait passively for a valid LCP packet from
-the peer, instead of exiting, as it would without this option.
-.SH OPTIONS
-.TP
-.I <local_IP_address>\fB:\fI<remote_IP_address>
-Set the local and/or remote interface IP addresses. Either one may be
-omitted. The IP addresses can be specified with a host name or in
-decimal dot notation (e.g. 150.234.56.78). The default local
-address is the (first) IP address of the system (unless the
-\fInoipdefault\fR
-option is given). The remote address will be obtained from the peer
-if not specified in any option. Thus, in simple cases, this option is
-not required. If a local and/or remote IP address is specified with
-this option, pppd
-will not accept a different value from the peer in the IPCP
-negotiation, unless the \fIipcp-accept-local\fR and/or
-\fIipcp-accept-remote\fR options are given, respectively.
-.TP
-.B ipv6 \fI<local_interface_identifier>\fR,\fI<remote_interface_identifier>
-Set the local and/or remote 64-bit interface identifier. Either one may be
-omitted. The identifier must be specified in standard ascii notation of
-IPv6 addresses (e.g. ::dead:beef). If the
-\fIipv6cp-use-ipaddr\fR
-option is given, the local identifier is the local IPv4 address (see above).
-On systems which supports a unique persistent id, such as EUI-48 derived
-from the Ethernet MAC address, \fIipv6cp-use-persistent\fR option can be
-used to replace the \fIipv6 <local>,<remote>\fR option. Otherwise the
-identifier is randomized.
-.TP
-.B active-filter \fIfilter-expression
-Specifies a packet filter to be applied to data packets to determine
-which packets are to be regarded as link activity, and therefore reset
-the idle timer, or cause the link to be brought up in demand-dialling
-mode. This option is useful in conjunction with the
-\fBidle\fR option if there are packets being sent or received
-regularly over the link (for example, routing information packets)
-which would otherwise prevent the link from ever appearing to be idle.
-The \fIfilter-expression\fR syntax is as described for tcpdump(1),
-except that qualifiers which are inappropriate for a PPP link, such as
-\fBether\fR and \fBarp\fR, are not permitted. Generally the filter
-expression should be enclosed in single-quotes to prevent whitespace
-in the expression from being interpreted by the shell. This option
-is currently only available under NetBSD, and then only
-if both the kernel and pppd were compiled with PPP_FILTER defined.
-.TP
-.B allow-ip \fIaddress(es)
-Allow peers to use the given IP address or subnet without
-authenticating themselves. The parameter is parsed as for each
-element of the list of allowed IP addresses in the secrets files (see
-the AUTHENTICATION section below).
-.TP
-.B bsdcomp \fInr,nt
-Request that the peer compress packets that it sends, using the
-BSD-Compress scheme, with a maximum code size of \fInr\fR bits, and
-agree to compress packets sent to the peer with a maximum code size of
-\fInt\fR bits. If \fInt\fR is not specified, it defaults to the value
-given for \fInr\fR. Values in the range 9 to 15 may be used for
-\fInr\fR and \fInt\fR; larger values give better compression but
-consume more kernel memory for compression dictionaries.
-Alternatively, a value of 0 for \fInr\fR or \fInt\fR disables
-compression in the corresponding direction. Use \fInobsdcomp\fR or
-\fIbsdcomp 0\fR to disable BSD-Compress compression entirely.
-.TP
-.B cdtrcts
-Use a non-standard hardware flow control (i.e. DTR/CTS) to control
-the flow of data on the serial port. If neither the \fIcrtscts\fR,
-the \fInocrtscts\fR, the \fIcdtrcts\fR nor the \fInocdtrcts\fR
-option is given, the hardware flow control setting for the serial
-port is left unchanged.
-Some serial ports (such as Macintosh serial ports) lack a true
-RTS output. Such serial ports use this mode to implement true
-bi-directional flow control. The sacrifice is that this flow
-control mode does not permit using DTR as a modem control line.
-.TP
-.B chap-interval \fIn
-If this option is given, pppd will rechallenge the peer every \fIn\fR
-seconds.
-.TP
-.B chap-max-challenge \fIn
-Set the maximum number of CHAP challenge transmissions to \fIn\fR
-(default 10).
-.TP
-.B chap-restart \fIn
-Set the CHAP restart interval (retransmission timeout for challenges)
-to \fIn\fR seconds (default 3).
-.TP
-.B connect-delay \fIn
-Wait for up \fIn\fR milliseconds after the connect script finishes for
-a valid PPP packet from the peer. At the end of this time, or when a
-valid PPP packet is received from the peer, pppd will commence
-negotiation by sending its first LCP packet. The default value is
-1000 (1 second). This wait period only applies if the \fBconnect\fR
-or \fBpty\fR option is used.
-.TP
-.B debug
-Enables connection debugging facilities.
-If this option is given, pppd will log the contents of all
-control packets sent or received in a readable form. The packets are
-logged through syslog with facility \fIdaemon\fR and level
-\fIdebug\fR. This information can be directed to a file by setting up
-/etc/syslog.conf appropriately (see syslog.conf(5)).
-.TP
-.B default-asyncmap
-Disable asyncmap negotiation, forcing all control characters to be
-escaped for both the transmit and the receive direction.
-.TP
-.B default-mru
-Disable MRU [Maximum Receive Unit] negotiation. With this option,
-pppd will use the default MRU value of 1500 bytes for both the
-transmit and receive direction.
-.TP
-.B deflate \fInr,nt
-Request that the peer compress packets that it sends, using the
-Deflate scheme, with a maximum window size of \fI2**nr\fR bytes, and
-agree to compress packets sent to the peer with a maximum window size
-of \fI2**nt\fR bytes. If \fInt\fR is not specified, it defaults to
-the value given for \fInr\fR. Values in the range 9 to 15 may be used
-for \fInr\fR and \fInt\fR; larger values give better compression but
-consume more kernel memory for compression dictionaries.
-Alternatively, a value of 0 for \fInr\fR or \fInt\fR disables
-compression in the corresponding direction. Use \fInodeflate\fR or
-\fIdeflate 0\fR to disable Deflate compression entirely. (Note: pppd
-requests Deflate compression in preference to BSD-Compress if the peer
-can do either.)
-.TP
-.B demand
-Initiate the link only on demand, i.e. when data traffic is present.
-With this option, the remote IP address must be specified by the user
-on the command line or in an options file. Pppd will initially
-configure the interface and enable it for IP traffic without
-connecting to the peer. When traffic is available, pppd will
-connect to the peer and perform negotiation, authentication, etc.
-When this is completed, pppd will commence passing data packets
-(i.e., IP packets) across the link.
-
-The \fIdemand\fR option implies the \fIpersist\fR option. If this
-behaviour is not desired, use the \fInopersist\fR option after the
-\fIdemand\fR option. The \fIidle\fR and \fIholdoff\fR
-options are also useful in conjuction with the \fIdemand\fR option.
-.TP
-.B domain \fId
-Append the domain name \fId\fR to the local host name for authentication
-purposes. For example, if gethostname() returns the name porsche, but
-the fully qualified domain name is porsche.Quotron.COM, you could
-specify \fIdomain Quotron.COM\fR. Pppd would then use the name
-\fIporsche.Quotron.COM\fR for looking up secrets in the secrets file,
-and as the default name to send to the peer when authenticating itself
-to the peer. This option is privileged.
-.TP
-.B dryrun
-With the \fBdryrun\fR option, pppd will print out all the option
-values which have been set and then exit, after parsing the command
-line and options files and checking the option values, but before
-initiating the link. The option values are logged at level info, and
-also printed to standard output unless the device on standard output
-is the device that pppd would be using to communicate with the peer.
-.TP
-.B dump
-With the \fBdump\fR option, pppd will print out all the option values
-which have been set. This option is like the \fBdryrun\fR option
-except that pppd proceeds as normal rather than exiting.
-.TP
-.B endpoint \fI<epdisc>
-Sets the endpoint discriminator sent by the local machine to the peer
-during multilink negotiation to \fI<epdisc>\fR. The default is to use
-the MAC address of the first ethernet interface on the system, if any,
-otherwise the IPv4 address corresponding to the hostname, if any,
-provided it is not in the multicast or locally-assigned IP address
-ranges, or the localhost address. The endpoint discriminator can be
-the string \fBnull\fR or of the form \fItype\fR:\fIvalue\fR, where
-type is a decimal number or one of the strings \fBlocal\fR, \fBIP\fR,
-\fBMAC\fR, \fBmagic\fR, or \fBphone\fR. The value is an IP address in
-dotted-decimal notation for the \fBIP\fR type, or a string of bytes in
-hexadecimal, separated by periods or colons for the other types. For
-the MAC type, the value may also be the name of an ethernet or similar
-network interface. This option is currently only available under
-Linux.
-.TP
-.B hide-password
-When logging the contents of PAP packets, this option causes pppd to
-exclude the password string from the log. This is the default.
-.TP
-.B holdoff \fIn
-Specifies how many seconds to wait before re-initiating the link after
-it terminates. This option only has any effect if the \fIpersist\fR
-or \fIdemand\fR option is used. The holdoff period is not applied if
-the link was terminated because it was idle.
-.TP
-.B idle \fIn
-Specifies that pppd should disconnect if the link is idle for \fIn\fR
-seconds. The link is idle when no data packets (i.e. IP packets) are
-being sent or received. Note: it is not advisable to use this option
-with the \fIpersist\fR option without the \fIdemand\fR option.
-If the \fBactive-filter\fR
-option is given, data packets which are rejected by the specified
-activity filter also count as the link being idle.
-.TP
-.B ipcp-accept-local
-With this option, pppd will accept the peer's idea of our local IP
-address, even if the local IP address was specified in an option.
-.TP
-.B ipcp-accept-remote
-With this option, pppd will accept the peer's idea of its (remote) IP
-address, even if the remote IP address was specified in an option.
-.TP
-.B ipcp-max-configure \fIn
-Set the maximum number of IPCP configure-request transmissions to
-\fIn\fR (default 10).
-.TP
-.B ipcp-max-failure \fIn
-Set the maximum number of IPCP configure-NAKs returned before starting
-to send configure-Rejects instead to \fIn\fR (default 10).
-.TP
-.B ipcp-max-terminate \fIn
-Set the maximum number of IPCP terminate-request transmissions to
-\fIn\fR (default 3).
-.TP
-.B ipcp-restart \fIn
-Set the IPCP restart interval (retransmission timeout) to \fIn\fR
-seconds (default 3).
-.TP
-.B ipparam \fIstring
-Provides an extra parameter to the ip-up and ip-down scripts. If this
-option is given, the \fIstring\fR supplied is given as the 6th
-parameter to those scripts.
-.TP
-.B ipv6cp-max-configure \fIn
-Set the maximum number of IPv6CP configure-request transmissions to
-\fIn\fR (default 10).
-.TP
-.B ipv6cp-max-failure \fIn
-Set the maximum number of IPv6CP configure-NAKs returned before starting
-to send configure-Rejects instead to \fIn\fR (default 10).
-.TP
-.B ipv6cp-max-terminate \fIn
-Set the maximum number of IPv6CP terminate-request transmissions to
-\fIn\fR (default 3).
-.TP
-.B ipv6cp-restart \fIn
-Set the IPv6CP restart interval (retransmission timeout) to \fIn\fR
-seconds (default 3).
-.TP
-.B ipx
-Enable the IPXCP and IPX protocols. This option is presently only
-supported under Linux, and only if your kernel has been configured to
-include IPX support.
-.TP
-.B ipx-network \fIn
-Set the IPX network number in the IPXCP configure request frame to
-\fIn\fR, a hexadecimal number (without a leading 0x). There is no
-valid default. If this option is not specified, the network number is
-obtained from the peer. If the peer does not have the network number,
-the IPX protocol will not be started.
-.TP
-.B ipx-node \fIn\fB:\fIm
-Set the IPX node numbers. The two node numbers are separated from each
-other with a colon character. The first number \fIn\fR is the local
-node number. The second number \fIm\fR is the peer's node number. Each
-node number is a hexadecimal number, at most 10 digits long. The node
-numbers on the ipx-network must be unique. There is no valid
-default. If this option is not specified then the node numbers are
-obtained from the peer.
-.TP
-.B ipx-router-name \fI<string>
-Set the name of the router. This is a string and is sent to the peer
-as information data.
-.TP
-.B ipx-routing \fIn
-Set the routing protocol to be received by this option. More than one
-instance of \fIipx-routing\fR may be specified. The '\fInone\fR'
-option (0) may be specified as the only instance of ipx-routing. The
-values may be \fI0\fR for \fINONE\fR, \fI2\fR for \fIRIP/SAP\fR, and
-\fI4\fR for \fINLSP\fR.
-.TP
-.B ipxcp-accept-local
-Accept the peer's NAK for the node number specified in the ipx-node
-option. If a node number was specified, and non-zero, the default is
-to insist that the value be used. If you include this option then you
-will permit the peer to override the entry of the node number.
-.TP
-.B ipxcp-accept-network
-Accept the peer's NAK for the network number specified in the
-ipx-network option. If a network number was specified, and non-zero, the
-default is to insist that the value be used. If you include this
-option then you will permit the peer to override the entry of the node
-number.
-.TP
-.B ipxcp-accept-remote
-Use the peer's network number specified in the configure request
-frame. If a node number was specified for the peer and this option was
-not specified, the peer will be forced to use the value which you have
-specified.
-.TP
-.B ipxcp-max-configure \fIn
-Set the maximum number of IPXCP configure request frames which the
-system will send to \fIn\fR. The default is 10.
-.TP
-.B ipxcp-max-failure \fIn
-Set the maximum number of IPXCP NAK frames which the local system will
-send before it rejects the options. The default value is 3.
-.TP
-.B ipxcp-max-terminate \fIn
-Set the maximum nuber of IPXCP terminate request frames before the
-local system considers that the peer is not listening to them. The
-default value is 3.
-.TP
-.B kdebug \fIn
-Enable debugging code in the kernel-level PPP driver. The argument
-values depend on the specific kernel driver, but in general a value of
-1 will enable general kernel debug messages. (Note that these
-messages are usually only useful for debugging the kernel driver
-itself.) For the Linux 2.2.x kernel driver, the value is a sum of
-bits: 1 to
-enable general debug messages, 2 to request that the contents of
-received packets be printed, and 4 to request that the contents of
-transmitted packets be printed. On most systems, messages printed by
-the kernel are logged by syslog(1) to a file as directed in the
-/etc/syslog.conf configuration file.
-.TP
-.B ktune
-Enables pppd to alter kernel settings as appropriate. Under Linux,
-pppd will enable IP forwarding (i.e. set /proc/sys/net/ipv4/ip_forward
-to 1) if the \fIproxyarp\fR option is used, and will enable the
-dynamic IP address option (i.e. set /proc/sys/net/ipv4/ip_dynaddr to
-1) in demand mode if the local address changes.
-.TP
-.B lcp-echo-failure \fIn
-If this option is given, pppd will presume the peer to be dead
-if \fIn\fR LCP echo-requests are sent without receiving a valid LCP
-echo-reply. If this happens, pppd will terminate the
-connection. Use of this option requires a non-zero value for the
-\fIlcp-echo-interval\fR parameter. This option can be used to enable
-pppd to terminate after the physical connection has been broken
-(e.g., the modem has hung up) in situations where no hardware modem
-control lines are available.
-.TP
-.B lcp-echo-interval \fIn
-If this option is given, pppd will send an LCP echo-request frame to
-the peer every \fIn\fR seconds. Normally the peer should respond to
-the echo-request by sending an echo-reply. This option can be used
-with the \fIlcp-echo-failure\fR option to detect that the peer is no
-longer connected.
-.TP
-.B lcp-max-configure \fIn
-Set the maximum number of LCP configure-request transmissions to
-\fIn\fR (default 10).
-.TP
-.B lcp-max-failure \fIn
-Set the maximum number of LCP configure-NAKs returned before starting
-to send configure-Rejects instead to \fIn\fR (default 10).
-.TP
-.B lcp-max-terminate \fIn
-Set the maximum number of LCP terminate-request transmissions to
-\fIn\fR (default 3).
-.TP
-.B lcp-restart \fIn
-Set the LCP restart interval (retransmission timeout) to \fIn\fR
-seconds (default 3).
-.TP
-.B linkname \fIname\fR
-Sets the logical name of the link to \fIname\fR. Pppd will create a
-file named \fBppp-\fIname\fB.pid\fR in /var/run (or /etc/ppp on some
-systems) containing its process ID. This can be useful in determining
-which instance of pppd is responsible for the link to a given peer
-system. This is a privileged option.
-.TP
-.B local
-Don't use the modem control lines. With this option, pppd will ignore
-the state of the CD (Carrier Detect) signal from the modem and will
-not change the state of the DTR (Data Terminal Ready) signal.
-.TP
-.B logfd \fIn
-Send log messages to file descriptor \fIn\fR. Pppd will send log
-messages to at most one file or file descriptor (as well as sending
-the log messages to syslog), so this option and the \fBlogfile\fR
-option are mutually exclusive. The default is for pppd to send log
-messages to stdout (file descriptor 1), unless the serial port is
-already open on stdout.
-.TP
-.B logfile \fIfilename
-Append log messages to the file \fIfilename\fR (as well as sending the
-log messages to syslog). The file is opened with the privileges of
-the user who invoked pppd, in append mode.
-.TP
-.B login
-Use the system password database for authenticating the peer using
-PAP, and record the user in the system wtmp file. Note that the peer
-must have an entry in the /etc/ppp/pap-secrets file as well as the
-system password database to be allowed access.
-.TP
-.B maxconnect \fIn
-Terminate the connection when it has been available for network
-traffic for \fIn\fR seconds (i.e. \fIn\fR seconds after the first
-network control protocol comes up).
-.TP
-.B maxfail \fIn
-Terminate after \fIn\fR consecutive failed connection attempts. A
-value of 0 means no limit. The default value is 10.
-.TP
-.B modem
-Use the modem control lines. This option is the default. With this
-option, pppd will wait for the CD (Carrier Detect) signal from the
-modem to be asserted when opening the serial device (unless a connect
-script is specified), and it will drop the DTR (Data Terminal Ready)
-signal briefly when the connection is terminated and before executing
-the connect script. On Ultrix, this option implies hardware flow
-control, as for the \fIcrtscts\fR option.
-.TP
-.B mp
-Enables the use of PPP multilink; this is an alias for the `multilink'
-option. This option is currently only available under Linux.
-.TP
-.B mpshortseq
-Enables the use of short (12-bit) sequence numbers in multilink
-headers, as opposed to 24-bit sequence numbers. This option is only
-available under Linux, and only has any effect if multilink is
-enabled (see the multilink option).
-.TP
-.B mrru \fIn
-Sets the Maximum Reconstructed Receive Unit to \fIn\fR. The MRRU is
-the maximum size for a received packet on a multilink bundle, and is
-analogous to the MRU for the individual links. This option is
-currently only available under Linux, and only has any effect if
-multilink is enabled (see the multilink option).
-.TP
-.B ms-dns \fI<addr>
-If pppd is acting as a server for Microsoft Windows clients, this
-option allows pppd to supply one or two DNS (Domain Name Server)
-addresses to the clients. The first instance of this option specifies
-the primary DNS address; the second instance (if given) specifies the
-secondary DNS address. (This option was present in some older
-versions of pppd under the name \fBdns-addr\fR.)
-.TP
-.B ms-wins \fI<addr>
-If pppd is acting as a server for Microsoft Windows or "Samba"
-clients, this option allows pppd to supply one or two WINS (Windows
-Internet Name Services) server addresses to the clients. The first
-instance of this option specifies the primary WINS address; the second
-instance (if given) specifies the secondary WINS address.
-.TP
-.B multilink
-Enables the use of the PPP multilink protocol. If the peer also
-supports multilink, then this link can become part of a bundle between
-the local system and the peer. If there is an existing bundle to the
-peer, pppd will join this link to that bundle, otherwise pppd will
-create a new bundle. See the MULTILINK section below. This option is
-currently only available under Linux.
-.TP
-.B name \fIname
-Set the name of the local system for authentication purposes to
-\fIname\fR. This is a privileged option. With this option, pppd will
-use lines in the secrets files which have \fIname\fR as the second
-field when looking for a secret to use in authenticating the peer. In
-addition, unless overridden with the \fIuser\fR option, \fIname\fR
-will be used as the name to send to the peer when authenticating the
-local system to the peer. (Note that pppd does not append the domain
-name to \fIname\fR.)
-.TP
-.B netmask \fIn
-Set the interface netmask to \fIn\fR, a 32 bit netmask in "decimal dot"
-notation (e.g. 255.255.255.0). If this option is given, the value
-specified is ORed with the default netmask. The default netmask is
-chosen based on the negotiated remote IP address; it is the
-appropriate network mask for the class of the remote IP address, ORed
-with the netmasks for any non point-to-point network interfaces in the
-system which are on the same network. (Note: on some platforms, pppd
-will always use 255.255.255.255 for the netmask, if that is the only
-appropriate value for a point-to-point interface.)
-.TP
-.B noaccomp
-Disable Address/Control compression in both directions (send and
-receive).
-.TP
-.B noauth
-Do not require the peer to authenticate itself. This option is
-privileged.
-.TP
-.B nobsdcomp
-Disables BSD-Compress compression; \fBpppd\fR will not request or
-agree to compress packets using the BSD-Compress scheme.
-.TP
-.B noccp
-Disable CCP (Compression Control Protocol) negotiation. This option
-should only be required if the peer is buggy and gets confused by
-requests from pppd for CCP negotiation.
-.TP
-.B nocrtscts
-Disable hardware flow control (i.e. RTS/CTS) on the serial port.
-If neither the \fIcrtscts\fR nor the \fInocrtscts\fR nor the
-\fIcdtrcts\fR nor the \fInocdtrcts\fR option is given, the hardware
-flow control setting for the serial port is left unchanged.
-.TP
-.B nocdtrcts
-This option is a synonym for \fInocrtscts\fR. Either of these options will
-disable both forms of hardware flow control.
-.TP
-.B nodefaultroute
-Disable the \fIdefaultroute\fR option. The system administrator who
-wishes to prevent users from creating default routes with pppd
-can do so by placing this option in the /etc/ppp/options file.
-.TP
-.B nodeflate
-Disables Deflate compression; pppd will not request or agree to
-compress packets using the Deflate scheme.
-.TP
-.B nodetach
-Don't detach from the controlling terminal. Without this option, if a
-serial device other than the terminal on the standard input is
-specified, pppd will fork to become a background process.
-.TP
-.B noendpoint
-Disables pppd from sending an endpoint discriminator to the peer or
-accepting one from the peer (see the MULTILINK section below). This
-option should only be required if the peer is buggy.
-.TP
-.B noip
-Disable IPCP negotiation and IP communication. This option should
-only be required if the peer is buggy and gets confused by requests
-from pppd for IPCP negotiation.
-.TP
-.B noipv6
-Disable IPv6CP negotiation and IPv6 communication. This option should
-only be required if the peer is buggy and gets confused by requests
-from pppd for IPv6CP negotiation.
-.TP
-.B noipdefault
-Disables the default behaviour when no local IP address is specified,
-which is to determine (if possible) the local IP address from the
-hostname. With this option, the peer will have to supply the local IP
-address during IPCP negotiation (unless it specified explicitly on the
-command line or in an options file).
-.TP
-.B noipx
-Disable the IPXCP and IPX protocols. This option should only be
-required if the peer is buggy and gets confused by requests from pppd
-for IPXCP negotiation.
-.TP
-.B noktune
-Opposite of the \fIktune\fR option; disables pppd from changing system
-settings.
-.TP
-.B nolog
-Do not send log messages to a file or file descriptor. This option
-cancels the \fBlogfd\fR and \fBlogfile\fR options.
-.TP
-.B nomagic
-Disable magic number negotiation. With this option, pppd cannot
-detect a looped-back line. This option should only be needed if the
-peer is buggy.
-.TP
-.B nomp
-Disables the use of PPP multilink. This option is currently only
-available under Linux.
-.TP
-.B nompshortseq
-Disables the use of short (12-bit) sequence numbers in the PPP
-multilink protocol, forcing the use of 24-bit sequence numbers. This
-option is currently only available under Linux, and only has any
-effect if multilink is enabled.
-.TP
-.B nomultilink
-Disables the use of PPP multilink. This option is currently only
-available under Linux.
-.TP
-.B nopcomp
-Disable protocol field compression negotiation in both the receive and
-the transmit direction.
-.TP
-.B nopersist
-Exit once a connection has been made and terminated. This is the
-default unless the \fIpersist\fR or \fIdemand\fR option has been
-specified.
-.TP
-.B nopredictor1
-Do not accept or agree to Predictor-1 compression.
-.TP
-.B noproxyarp
-Disable the \fIproxyarp\fR option. The system administrator who
-wishes to prevent users from creating proxy ARP entries with pppd can
-do so by placing this option in the /etc/ppp/options file.
-.TP
-.B notty
-Normally, pppd requires a terminal device. With this option, pppd
-will allocate itself a pseudo-tty master/slave pair and use the slave
-as its terminal device. Pppd will create a child process to act as a
-`character shunt' to transfer characters between the pseudo-tty master
-and its standard input and output. Thus pppd will transmit characters
-on its standard output and receive characters on its standard input
-even if they are not terminal devices. This option increases the
-latency and CPU overhead of transferring data over the ppp interface
-as all of the characters sent and received must flow through the
-character shunt process. An explicit device name may not be given if
-this option is used.
-.TP
-.B novj
-Disable Van Jacobson style TCP/IP header compression in both the
-transmit and the receive direction.
-.TP
-.B novjccomp
-Disable the connection-ID compression option in Van Jacobson style
-TCP/IP header compression. With this option, pppd will not omit the
-connection-ID byte from Van Jacobson compressed TCP/IP headers, nor
-ask the peer to do so.
-.TP
-.B papcrypt
-Indicates that all secrets in the /etc/ppp/pap-secrets file which are
-used for checking the identity of the peer are encrypted, and thus
-pppd should not accept a password which, before encryption, is
-identical to the secret from the /etc/ppp/pap-secrets file.
-.TP
-.B pap-max-authreq \fIn
-Set the maximum number of PAP authenticate-request transmissions to
-\fIn\fR (default 10).
-.TP
-.B pap-restart \fIn
-Set the PAP restart interval (retransmission timeout) to \fIn\fR
-seconds (default 3).
-.TP
-.B pap-timeout \fIn
-Set the maximum time that pppd will wait for the peer to authenticate
-itself with PAP to \fIn\fR seconds (0 means no limit).
-.TP
-.B pass-filter \fIfilter-expression
-Specifies a packet filter to applied to data packets being sent or
-received to determine which packets should be allowed to pass.
-Packets which are rejected by the filter are silently discarded. This
-option can be used to prevent specific network daemons (such as
-routed) using up link bandwidth, or to provide a basic firewall
-capability.
-The \fIfilter-expression\fR syntax is as described for tcpdump(1),
-except that qualifiers which are inappropriate for a PPP link, such as
-\fBether\fR and \fBarp\fR, are not permitted. Generally the filter
-expression should be enclosed in single-quotes to prevent whitespace
-in the expression from being interpreted by the shell. Note that it
-is possible to apply different constraints to incoming and outgoing
-packets using the \fBinbound\fR and \fBoutbound\fR qualifiers. This
-option is currently only available under NetBSD, and then only if both
-the kernel and pppd were compiled with PPP_FILTER defined.
-.TP
-.B persist
-Do not exit after a connection is terminated; instead try to reopen
-the connection.
-.TP
-.B plugin \fIfilename
-Load the shared library object file \fIfilename\fR as a plugin. This
-is a privileged option.
-.TP
-.B predictor1
-Request that the peer compress frames that it sends using Predictor-1
-compression, and agree to compress transmitted frames with Predictor-1
-if requested. This option has no effect unless the kernel driver
-supports Predictor-1 compression.
-.TP
-.B privgroup \fIgroup-name
-Allows members of group \fIgroup-name\fR to use privileged options.
-This is a privileged option. Use of this option requires care as
-there is no guarantee that members of \fIgroup-name\fR cannot use pppd
-to become root themselves. Consider it equivalent to putting the
-members of \fIgroup-name\fR in the kmem or disk group.
-.TP
-.B proxyarp
-Add an entry to this system's ARP [Address Resolution Protocol] table
-with the IP address of the peer and the Ethernet address of this
-system. This will have the effect of making the peer appear to other
-systems to be on the local ethernet.
-.TP
-.B pty \fIscript
-Specifies that the command \fIscript\fR is to be used to communicate
-rather than a specific terminal device. Pppd will allocate itself a
-pseudo-tty master/slave pair and use the slave as its terminal
-device. The \fIscript\fR will be run in a child process with the
-pseudo-tty master as its standard input and output. An explicit
-device name may not be given if this option is used. (Note: if the
-\fIrecord\fR option is used in conjuction with the \fIpty\fR option,
-the child process will have pipes on its standard input and output.)
-.TP
-.B receive-all
-With this option, pppd will accept all control characters from the
-peer, including those marked in the receive asyncmap. Without this
-option, pppd will discard those characters as specified in RFC1662.
-This option should only be needed if the peer is buggy.
-.TP
-.B record \fIfilename
-Specifies that pppd should record all characters sent and received to
-a file named \fIfilename\fR. This file is opened in append mode,
-using the user's user-ID and permissions. This option is implemented
-using a pseudo-tty and a process to transfer characters between the
-pseudo-tty and the real serial device, so it will increase the latency
-and CPU overhead of transferring data over the ppp interface. The
-characters are stored in a tagged format with timestamps, which can be
-displayed in readable form using the pppdump(8) program.
-.TP
-.B remotename \fIname
-Set the assumed name of the remote system for authentication purposes
-to \fIname\fR.
-.TP
-.B refuse-chap
-With this option, pppd will not agree to authenticate itself to the
-peer using CHAP.
-.TP
-.B refuse-pap
-With this option, pppd will not agree to authenticate itself to the
-peer using PAP.
-.TP
-.B require-chap
-Require the peer to authenticate itself using CHAP [Challenge
-Handshake Authentication Protocol] authentication.
-.TP
-.B require-pap
-Require the peer to authenticate itself using PAP [Password
-Authentication Protocol] authentication.
-.TP
-.B show-password
-When logging the contents of PAP packets, this option causes pppd to
-show the password string in the log message.
-.TP
-.B silent
-With this option, pppd will not transmit LCP packets to initiate a
-connection until a valid LCP packet is received from the peer (as for
-the `passive' option with ancient versions of pppd).
-.TP
-.B sync
-Use synchronous HDLC serial encoding instead of asynchronous.
-The device used by pppd with this option must have sync support.
-Currently supports Microgate SyncLink adapters
-under Linux and FreeBSD 2.2.8 and later.
-.TP
-.B updetach
-With this option, pppd will detach from its controlling terminal once
-it has successfully established the ppp connection (to the point where
-the first network control protocol, usually the IP control protocol,
-has come up).
-.TP
-.B usehostname
-Enforce the use of the hostname (with domain name appended, if given)
-as the name of the local system for authentication purposes (overrides
-the \fIname\fR option). This option is not normally needed since the
-\fIname\fR option is privileged.
-.TP
-.B usepeerdns
-Ask the peer for up to 2 DNS server addresses. The addresses supplied
-by the peer (if any) are passed to the /etc/ppp/ip-up script in the
-environment variables DNS1 and DNS2. In addition, pppd will create an
-/etc/ppp/resolv.conf file containing one or two nameserver lines with
-the address(es) supplied by the peer.
-.TP
-.B user \fIname
-Sets the name used for authenticating the local system to the peer to
-\fIname\fR.
-.TP
-.B vj-max-slots \fIn
-Sets the number of connection slots to be used by the Van Jacobson
-TCP/IP header compression and decompression code to \fIn\fR, which
-must be between 2 and 16 (inclusive).
-.TP
-.B welcome \fIscript
-Run the executable or shell command specified by \fIscript\fR before
-initiating PPP negotiation, after the connect script (if any) has
-completed. A value for this option from a privileged source cannot be
-overridden by a non-privileged user.
-.TP
-.B xonxoff
-Use software flow control (i.e. XON/XOFF) to control the flow of data on
-the serial port.
-.SH OPTIONS FILES
-Options can be taken from files as well as the command line. Pppd
-reads options from the files /etc/ppp/options, ~/.ppprc and
-/etc/ppp/options.\fIttyname\fR (in that order) before processing the
-options on the command line. (In fact, the command-line options are
-scanned to find the terminal name before the options.\fIttyname\fR
-file is read.) In forming the name of the options.\fIttyname\fR file,
-the initial /dev/ is removed from the terminal name, and any remaining
-/ characters are replaced with dots.
-.PP
-An options file is parsed into a series of words, delimited by
-whitespace. Whitespace can be included in a word by enclosing the
-word in double-quotes ("). A backslash (\\) quotes the following character.
-A hash (#) starts a comment, which continues until the end of the
-line. There is no restriction on using the \fIfile\fR or \fIcall\fR
-options within an options file.
-.SH SECURITY
-.I pppd
-provides system administrators with sufficient access control that PPP
-access to a server machine can be provided to legitimate users without
-fear of compromising the security of the server or the network it's
-on. This control is provided through restrictions on which IP
-addresses the peer may use, based on its authenticated identity (if
-any), and through restrictions on which options a non-privileged user
-may use. Several of pppd's options are privileged, in particular
-those which permit potentially insecure configurations; these options
-are only accepted in files which are under the control of the system
-administrator, or if pppd is being run by root.
-.PP
-The default behaviour of pppd is to allow an unauthenticated peer to
-use a given IP address only if the system does not already have a
-route to that IP address. For example, a system with a
-permanent connection to the wider internet will normally have a
-default route, and thus all peers will have to authenticate themselves
-in order to set up a connection. On such a system, the \fIauth\fR
-option is the default. On the other hand, a system where the
-PPP link is the only connection to the internet will not normally have
-a default route, so the peer will be able to use almost any IP address
-without authenticating itself.
-.PP
-As indicated above, some security-sensitive options are privileged,
-which means that they may not be used by an ordinary non-privileged
-user running a setuid-root pppd, either on the command line, in the
-user's ~/.ppprc file, or in an options file read using the \fIfile\fR
-option. Privileged options may be used in /etc/ppp/options file or in
-an options file read using the \fIcall\fR option. If pppd is being
-run by the root user, privileged options can be used without
-restriction.
-.PP
-When opening the device, pppd uses either the invoking user's user ID
-or the root UID (that is, 0), depending on whether the device name was
-specified by the user or the system administrator. If the device name
-comes from a privileged source, that is, /etc/ppp/options or an
-options file read using the \fIcall\fR option, pppd uses full root
-privileges when opening the device. Thus, by creating an appropriate
-file under /etc/ppp/peers, the system administrator can allow users to
-establish a ppp connection via a device which they would not normally
-have permission to access. Otherwise pppd uses the invoking user's
-real UID when opening the device.
-.SH AUTHENTICATION
-Authentication is the process whereby one peer convinces the other of
-its identity. This involves the first peer sending its name to the
-other, together with some kind of secret information which could only
-come from the genuine authorized user of that name. In such an
-exchange, we will call the first peer the "client" and the other the
-"server". The client has a name by which it identifies itself to the
-server, and the server also has a name by which it identifies itself
-to the client. Generally the genuine client shares some secret (or
-password) with the server, and authenticates itself by proving that it
-knows that secret. Very often, the names used for authentication
-correspond to the internet hostnames of the peers, but this is not
-essential.
-.LP
-At present, pppd supports two authentication protocols: the Password
-Authentication Protocol (PAP) and the Challenge Handshake
-Authentication Protocol (CHAP). PAP involves the client sending its
-name and a cleartext password to the server to authenticate itself.
-In contrast, the server initiates the CHAP authentication exchange by
-sending a challenge to the client (the challenge packet includes the
-server's name). The client must respond with a response which
-includes its name plus a hash value derived from the shared secret and
-the challenge, in order to prove that it knows the secret.
-.LP
-The PPP protocol, being symmetrical, allows both peers to require the
-other to authenticate itself. In that case, two separate and
-independent authentication exchanges will occur. The two exchanges
-could use different authentication protocols, and in principle,
-different names could be used in the two exchanges.
-.LP
-The default behaviour of pppd is to agree to authenticate if
-requested, and to not require authentication from the peer. However,
-pppd will not agree to authenticate itself with a particular protocol
-if it has no secrets which could be used to do so.
-.LP
-Pppd stores secrets for use in authentication in secrets
-files (/etc/ppp/pap-secrets for PAP, /etc/ppp/chap-secrets for CHAP).
-Both secrets files have the same format. The secrets files can
-contain secrets for pppd to use in authenticating itself to other
-systems, as well as secrets for pppd to use when authenticating other
-systems to itself.
-.LP
-Each line in a secrets file contains one secret. A given secret is
-specific to a particular combination of client and server - it can
-only be used by that client to authenticate itself to that server.
-Thus each line in a secrets file has at least 3 fields: the name of
-the client, the name of the server, and the secret. These fields may
-be followed by a list of the IP addresses that the specified client
-may use when connecting to the specified server.
-.LP
-A secrets file is parsed into words as for a options file, so the
-client name, server name and secrets fields must each be one word,
-with any embedded spaces or other special characters quoted or
-escaped. Note that case is significant in the client and server names
-and in the secret.
-.LP
-If the secret starts with an `@', what follows is assumed to be the
-name of a file from which to read the secret. A "*" as the client or
-server name matches any name. When selecting a secret, pppd takes the
-best match, i.e. the match with the fewest wildcards.
-.LP
-Any following words on the same line are taken to be a list of
-acceptable IP addresses for that client. If there are only 3 words on
-the line, or if the first word is "-", then all IP addresses are
-disallowed. To allow any address, use "*". A word starting with "!"
-indicates that the specified address is \fInot\fR acceptable. An
-address may be followed by "/" and a number \fIn\fR, to indicate a
-whole subnet, i.e. all addresses which have the same value in the most
-significant \fIn\fR bits. In this form, the address may be followed
-by a plus sign ("+") to indicate that one address from the subnet is
-authorized, based on the ppp network interface unit number in use.
-In this case, the host part of the address will be set to the unit
-number plus one.
-.LP
-Thus a secrets file contains both secrets for use in authenticating
-other hosts, plus secrets which we use for authenticating ourselves to
-others. When pppd is authenticating the peer (checking the peer's
-identity), it chooses a secret with the peer's name in the first
-field and the name of the local system in the second field. The
-name of the local system defaults to the hostname, with the domain
-name appended if the \fIdomain\fR option is used. This default can be
-overridden with the \fIname\fR option, except when the
-\fIusehostname\fR option is used.
-.LP
-When pppd is choosing a secret to use in authenticating itself to the
-peer, it first determines what name it is going to use to identify
-itself to the peer. This name can be specified by the user with the
-\fIuser\fR option. If this option is not used, the name defaults to
-the name of the local system, determined as described in the previous
-paragraph. Then pppd looks for a secret with this name in the first
-field and the peer's name in the second field. Pppd will know the
-name of the peer if CHAP authentication is being used, because the
-peer will have sent it in the challenge packet. However, if PAP is being
-used, pppd will have to determine the peer's name from the options
-specified by the user. The user can specify the peer's name directly
-with the \fIremotename\fR option. Otherwise, if the remote IP address
-was specified by a name (rather than in numeric form), that name will
-be used as the peer's name. Failing that, pppd will use the null
-string as the peer's name.
-.LP
-When authenticating the peer with PAP, the supplied password is first
-compared with the secret from the secrets file. If the password
-doesn't match the secret, the password is encrypted using crypt() and
-checked against the secret again. Thus secrets for authenticating the
-peer can be stored in encrypted form if desired. If the
-\fIpapcrypt\fR option is given, the first (unencrypted) comparison is
-omitted, for better security.
-.LP
-Furthermore, if the \fIlogin\fR option was specified, the username and
-password are also checked against the system password database. Thus,
-the system administrator can set up the pap-secrets file to allow PPP
-access only to certain users, and to restrict the set of IP addresses
-that each user can use. Typically, when using the \fIlogin\fR option,
-the secret in /etc/ppp/pap-secrets would be "", which will match any
-password supplied by the peer. This avoids the need to have the same
-secret in two places.
-.LP
-Authentication must be satisfactorily completed before IPCP (or any
-other Network Control Protocol) can be started. If the peer is
-required to authenticate itself, and fails to do so, pppd will
-terminated the link (by closing LCP). If IPCP negotiates an
-unacceptable IP address for the remote host, IPCP will be closed. IP
-packets can only be sent or received when IPCP is open.
-.LP
-In some cases it is desirable to allow some hosts which can't
-authenticate themselves to connect and use one of a restricted set of
-IP addresses, even when the local host generally requires
-authentication. If the peer refuses to authenticate itself when
-requested, pppd takes that as equivalent to authenticating with PAP
-using the empty string for the username and password. Thus, by adding
-a line to the pap-secrets file which specifies the empty string for
-the client and password, it is possible to allow restricted access to
-hosts which refuse to authenticate themselves.
-.SH ROUTING
-.LP
-When IPCP negotiation is completed successfully, pppd will inform the
-kernel of the local and remote IP addresses for the ppp interface.
-This is sufficient to create a host route to the remote end of the
-link, which will enable the peers to exchange IP packets.
-Communication with other machines generally requires further
-modification to routing tables and/or ARP (Address Resolution
-Protocol) tables. In most cases the \fIdefaultroute\fR and/or
-\fIproxyarp\fR options are sufficient for this, but in some cases
-further intervention is required. The /etc/ppp/ip-up script can be
-used for this.
-.LP
-Sometimes it is desirable to add a default route through the remote
-host, as in the case of a machine whose only connection to the
-Internet is through the ppp interface. The \fIdefaultroute\fR option
-causes pppd to create such a default route when IPCP comes up, and
-delete it when the link is terminated.
-.LP
-In some cases it is desirable to use proxy ARP, for example on a
-server machine connected to a LAN, in order to allow other hosts to
-communicate with the remote host. The \fIproxyarp\fR option causes
-pppd to look for a network interface on the same subnet as the remote
-host (an interface supporting broadcast and ARP, which is up and not a
-point-to-point or loopback interface). If found, pppd creates a
-permanent, published ARP entry with the IP address of the remote host
-and the hardware address of the network interface found.
-.LP
-When the \fIdemand\fR option is used, the interface IP addresses have
-already been set at the point when IPCP comes up. If pppd has not
-been able to negotiate the same addresses that it used to configure
-the interface (for example when the peer is an ISP that uses dynamic
-IP address assignment), pppd has to change the interface IP addresses
-to the negotiated addresses. This may disrupt existing connections,
-and the use of demand dialling with peers that do dynamic IP address
-assignment is not recommended.
-.SH MULTILINK
-Multilink PPP provides the capability to combine two or more PPP links
-between a pair of machines into a single `bundle', which appears as a
-single virtual PPP link which has the combined bandwidth of the
-individual links. Currently, multilink PPP is only supported under
-Linux.
-.LP
-Pppd detects that the link it is controlling is connected to the same
-peer as another link using the peer's endpoint discriminator and the
-authenticated identity of the peer (if it authenticates itself). The
-endpoint discriminator is a block of data which is hopefully unique
-for each peer. Several types of data can be used, including
-locally-assigned strings of bytes, IP addresses, MAC addresses,
-randomly strings of bytes, or E-164 phone numbers. The endpoint
-discriminator sent to the peer by pppd can be set using the endpoint
-option.
-.LP
-In circumstances the peer may send no endpoint discriminator or a
-non-unique value. The optional bundle option adds an extra string
-which is added to the peer's endpoint discriminator and authenticated
-identity when matching up links to be joined together in a bundle.
-The bundle option can also be used to allow the establishment of
-multiple bundles between the local system and the peer. Pppd uses a
-TDB database in /var/run/pppd.tdb to match up links.
-.LP
-Assuming that multilink is enabled and the peer is willing to
-negotiate multilink, then when pppd is invoked to bring up the first
-link to the peer, it will detect that no other link is connected to
-the peer and create a new bundle, that is, another ppp network
-interface unit. When another pppd is invoked to bring up another link
-to the peer, it will detect the existing bundle and join its link to
-it. Currently, if the first pppd terminates (for example, because of
-a hangup or a received signal) the bundle is destroyed.
-.SH EXAMPLES
-.LP
-The following examples assume that the /etc/ppp/options file contains
-the \fIauth\fR option (as in the default /etc/ppp/options file in the
-ppp distribution).
-.LP
-Probably the most common use of pppd is to dial out to an ISP. This
-can be done with a command such as
-.IP
-pppd call isp
-.LP
-where the /etc/ppp/peers/isp file is set up by the system
-administrator to contain something like this:
-.IP
-ttyS0 19200 crtscts
-.br
-connect '/usr/sbin/chat -v -f /etc/ppp/chat-isp'
-.br
-noauth
-.LP
-In this example, we are using chat to dial the ISP's modem and go
-through any logon sequence required. The /etc/ppp/chat-isp file
-contains the script used by chat; it could for example contain
-something like this:
-.IP
-ABORT "NO CARRIER"
-.br
-ABORT "NO DIALTONE"
-.br
-ABORT "ERROR"
-.br
-ABORT "NO ANSWER"
-.br
-ABORT "BUSY"
-.br
-ABORT "Username/Password Incorrect"
-.br
-"" "at"
-.br
-OK "at&d0&c1"
-.br
-OK "atdt2468135"
-.br
-"name:" "^Umyuserid"
-.br
-"word:" "\\qmypassword"
-.br
-"ispts" "\\q^Uppp"
-.br
-"~-^Uppp-~"
-.LP
-See the chat(8) man page for details of chat scripts.
-.LP
-Pppd can also be used to provide a dial-in ppp service for users. If
-the users already have login accounts, the simplest way to set up the
-ppp service is to let the users log in to their accounts and run pppd
-(installed setuid-root) with a command such as
-.IP
-pppd proxyarp
-.LP
-To allow a user to use the PPP facilities, you need to allocate an IP
-address for that user's machine and create an entry in
-/etc/ppp/pap-secrets or /etc/ppp/chap-secrets (depending on which
-authentication method the PPP implementation on the user's machine
-supports), so that the user's
-machine can authenticate itself. For example, if Joe has a machine
-called "joespc" which is to be allowed to dial in to the machine
-called "server" and use the IP address joespc.my.net, you would add an
-entry like this to /etc/ppp/pap-secrets or /etc/ppp/chap-secrets:
-.IP
-joespc server "joe's secret" joespc.my.net
-.LP
-Alternatively, you can create a username called (for example) "ppp",
-whose login shell is pppd and whose home directory is /etc/ppp.
-Options to be used when pppd is run this way can be put in
-/etc/ppp/.ppprc.
-.LP
-If your serial connection is any more complicated than a piece of
-wire, you may need to arrange for some control characters to be
-escaped. In particular, it is often useful to escape XON (^Q) and
-XOFF (^S), using \fIasyncmap a0000\fR. If the path includes a telnet,
-you probably should escape ^] as well (\fIasyncmap 200a0000\fR). If
-the path includes an rlogin, you will need to use the \fIescape ff\fR
-option on the end which is running the rlogin client, since many
-rlogin implementations are not transparent; they will remove the
-sequence [0xff, 0xff, 0x73, 0x73, followed by any 8 bytes] from the
-stream.
-.SH DIAGNOSTICS
-.LP
-Messages are sent to the syslog daemon using facility LOG_DAEMON.
-(This can be overriden by recompiling pppd with the macro
-LOG_PPP defined as the desired facility.) In order to see the error
-and debug messages, you will need to edit your /etc/syslog.conf file
-to direct the messages to the desired output device or file.
-.LP
-The \fIdebug\fR option causes the contents of all control packets sent
-or received to be logged, that is, all LCP, PAP, CHAP or IPCP packets.
-This can be useful if the PPP negotiation does not succeed or if
-authentication fails.
-If debugging is enabled at compile time, the \fIdebug\fR option also
-causes other debugging messages to be logged.
-.LP
-Debugging can also be enabled or disabled by sending a SIGUSR1 signal
-to the pppd process. This signal acts as a toggle.
-.SH EXIT STATUS
-The exit status of pppd is set to indicate whether any error was
-detected, or the reason for the link being terminated. The values
-used are:
-.TP
-.B 0
-Pppd has detached, or otherwise the connection was successfully
-established and terminated at the peer's request.
-.TP
-.B 1
-An immediately fatal error of some kind occurred, such as an essential
-system call failing, or running out of virtual memory.
-.TP
-.B 2
-An error was detected in processing the options given, such as two
-mutually exclusive options being used.
-.TP
-.B 3
-Pppd is not setuid-root and the invoking user is not root.
-.TP
-.B 4
-The kernel does not support PPP, for example, the PPP kernel driver is
-not included or cannot be loaded.
-.TP
-.B 5
-Pppd terminated because it was sent a SIGINT, SIGTERM or SIGHUP
-signal.
-.TP
-.B 6
-The serial port could not be locked.
-.TP
-.B 7
-The serial port could not be opened.
-.TP
-.B 8
-The connect script failed (returned a non-zero exit status).
-.TP
-.B 9
-The command specified as the argument to the \fIpty\fR option could
-not be run.
-.TP
-.B 10
-The PPP negotiation failed, that is, it didn't reach the point where
-at least one network protocol (e.g. IP) was running.
-.TP
-.B 11
-The peer system failed (or refused) to authenticate itself.
-.TP
-.B 12
-The link was established successfully and terminated because it was
-idle.
-.TP
-.B 13
-The link was established successfully and terminated because the
-connect time limit was reached.
-.TP
-.B 14
-Callback was negotiated and an incoming call should arrive shortly.
-.TP
-.B 15
-The link was terminated because the peer is not responding to echo
-requests.
-.TP
-.B 16
-The link was terminated by the modem hanging up.
-.TP
-.B 17
-The PPP negotiation failed because serial loopback was detected.
-.TP
-.B 18
-The init script failed (returned a non-zero exit status).
-.TP
-.B 19
-We failed to authenticate ourselves to the peer.
-.SH SCRIPTS
-Pppd invokes scripts at various stages in its processing which can be
-used to perform site-specific ancillary processing. These scripts are
-usually shell scripts, but could be executable code files instead.
-Pppd does not wait for the scripts to finish. The scripts are
-executed as root (with the real and effective user-id set to 0), so
-that they can do things such as update routing tables or run
-privileged daemons. Be careful that the contents of these scripts do
-not compromise your system's security. Pppd runs the scripts with
-standard input, output and error redirected to /dev/null, and with an
-environment that is empty except for some environment variables that
-give information about the link. The environment variables that pppd
-sets are:
-.TP
-.B DEVICE
-The name of the serial tty device being used.
-.TP
-.B IFNAME
-The name of the network interface being used.
-.TP
-.B IPLOCAL
-The IP address for the local end of the link. This is only set when
-IPCP has come up.
-.TP
-.B IPREMOTE
-The IP address for the remote end of the link. This is only set when
-IPCP has come up.
-.TP
-.B PEERNAME
-The authenticated name of the peer. This is only set if the peer
-authenticates itself.
-.TP
-.B SPEED
-The baud rate of the tty device.
-.TP
-.B ORIG_UID
-The real user-id of the user who invoked pppd.
-.TP
-.B PPPLOGNAME
-The username of the real user-id that invoked pppd. This is always set.
-.P
-For the ip-down and auth-down scripts, pppd also sets the following
-variables giving statistics for the connection:
-.TP
-.B CONNECT_TIME
-The number of seconds from when the PPP negotiation started until the
-connection was terminated.
-.TP
-.B BYTES_SENT
-The number of bytes sent (at the level of the serial port) during the
-connection.
-.TP
-.B BYTES_RCVD
-The number of bytes received (at the level of the serial port) during
-the connection.
-.TP
-.B LINKNAME
-The logical name of the link, set with the \fIlinkname\fR option.
-.P
-Pppd invokes the following scripts, if they exist. It is not an error
-if they don't exist.
-.TP
-.B /etc/ppp/auth-up
-A program or script which is executed after the remote system
-successfully authenticates itself. It is executed with the parameters
-.IP
-\fIinterface-name peer-name user-name tty-device speed\fR
-.IP
-Note that this script is not executed if the peer doesn't authenticate
-itself, for example when the \fInoauth\fR option is used.
-.TP
-.B /etc/ppp/auth-down
-A program or script which is executed when the link goes down, if
-/etc/ppp/auth-up was previously executed. It is executed in the same
-manner with the same parameters as /etc/ppp/auth-up.
-.TP
-.B /etc/ppp/ip-up
-A program or script which is executed when the link is available for
-sending and receiving IP packets (that is, IPCP has come up). It is
-executed with the parameters
-.IP
-\fIinterface-name tty-device speed local-IP-address
-remote-IP-address ipparam\fR
-.TP
-.B /etc/ppp/ip-down
-A program or script which is executed when the link is no longer
-available for sending and receiving IP packets. This script can be
-used for undoing the effects of the /etc/ppp/ip-up script. It is
-invoked in the same manner and with the same parameters as the ip-up
-script.
-.TP
-.B /etc/ppp/ipv6-up
-Like /etc/ppp/ip-up, except that it is executed when the link is available
-for sending and receiving IPv6 packets. It is executed with the parameters
-.IP
-\fIinterface-name tty-device speed local-link-local-address
-remote-link-local-address ipparam\fR
-.TP
-.B /etc/ppp/ipv6-down
-Similar to /etc/ppp/ip-down, but it is executed when IPv6 packets can no
-longer be transmitted on the link. It is executed with the same parameters
-as the ipv6-up script.
-.TP
-.B /etc/ppp/ipx-up
-A program or script which is executed when the link is available for
-sending and receiving IPX packets (that is, IPXCP has come up). It is
-executed with the parameters
-.IP
-\fIinterface-name tty-device speed network-number local-IPX-node-address
-remote-IPX-node-address local-IPX-routing-protocol remote-IPX-routing-protocol
-local-IPX-router-name remote-IPX-router-name ipparam pppd-pid\fR
-.IP
-The local-IPX-routing-protocol and remote-IPX-routing-protocol field
-may be one of the following:
-.IP
-NONE to indicate that there is no routing protocol
-.br
-RIP to indicate that RIP/SAP should be used
-.br
-NLSP to indicate that Novell NLSP should be used
-.br
-RIP NLSP to indicate that both RIP/SAP and NLSP should be used
-.TP
-.B /etc/ppp/ipx-down
-A program or script which is executed when the link is no longer
-available for sending and receiving IPX packets. This script can be
-used for undoing the effects of the /etc/ppp/ipx-up script. It is
-invoked in the same manner and with the same parameters as the ipx-up
-script.
-.SH FILES
-.TP
-.B /var/run/ppp\fIn\fB.pid \fR(BSD or Linux), \fB/etc/ppp/ppp\fIn\fB.pid \fR(others)
-Process-ID for pppd process on ppp interface unit \fIn\fR.
-.TP
-.B /var/run/ppp-\fIname\fB.pid \fR(BSD or Linux), \fB/etc/ppp/ppp-\fIname\fB.pid \fR(others)
-Process-ID for pppd process for logical link \fIname\fR (see the
-\fIlinkname\fR option).
-.TP
-.B /etc/ppp/pap-secrets
-Usernames, passwords and IP addresses for PAP authentication. This
-file should be owned by root and not readable or writable by any other
-user. Pppd will log a warning if this is not the case.
-.TP
-.B /etc/ppp/chap-secrets
-Names, secrets and IP addresses for CHAP authentication. As for
-/etc/ppp/pap-secrets, this file should be owned by root and not
-readable or writable by any other user. Pppd will log a warning if
-this is not the case.
-.TP
-.B /etc/ppp/options
-System default options for pppd, read before user default options or
-command-line options.
-.TP
-.B ~/.ppprc
-User default options, read before /etc/ppp/options.\fIttyname\fR.
-.TP
-.B /etc/ppp/options.\fIttyname
-System default options for the serial port being used, read after
-~/.ppprc. In forming the \fIttyname\fR part of this
-filename, an initial /dev/ is stripped from the port name (if
-present), and any slashes in the remaining part are converted to
-dots.
-.TP
-.B /etc/ppp/peers
-A directory containing options files which may contain privileged
-options, even if pppd was invoked by a user other than root. The
-system administrator can create options files in this directory to
-permit non-privileged users to dial out without requiring the peer to
-authenticate, but only to certain trusted peers.
-.SH SEE ALSO
-.TP
-.B RFC1144
-Jacobson, V.
-\fICompressing TCP/IP headers for low-speed serial links.\fR
-February 1990.
-.TP
-.B RFC1321
-Rivest, R.
-.I The MD5 Message-Digest Algorithm.
-April 1992.
-.TP
-.B RFC1332
-McGregor, G.
-.I PPP Internet Protocol Control Protocol (IPCP).
-May 1992.
-.TP
-.B RFC1334
-Lloyd, B.; Simpson, W.A.
-.I PPP authentication protocols.
-October 1992.
-.TP
-.B RFC1661
-Simpson, W.A.
-.I The Point\-to\-Point Protocol (PPP).
-July 1994.
-.TP
-.B RFC1662
-Simpson, W.A.
-.I PPP in HDLC-like Framing.
-July 1994.
-.TP
-.B RFC2472
-Haskin, D.
-.I IP Version 6 over PPP
-December 1998.
-.SH NOTES
-The following signals have the specified effect when sent to pppd.
-.TP
-.B SIGINT, SIGTERM
-These signals cause pppd to terminate the link (by closing LCP),
-restore the serial device settings, and exit.
-.TP
-.B SIGHUP
-This signal causes pppd to terminate the link, restore the serial
-device settings, and close the serial device. If the \fIpersist\fR or
-\fIdemand\fR option has been specified, pppd will try to reopen the
-serial device and start another connection (after the holdoff period).
-Otherwise pppd will exit. If this signal is received during the
-holdoff period, it causes pppd to end the holdoff period immediately.
-.TP
-.B SIGUSR1
-This signal toggles the state of the \fIdebug\fR option.
-.TP
-.B SIGUSR2
-This signal causes pppd to renegotiate compression. This can be
-useful to re-enable compression after it has been disabled as a result
-of a fatal decompression error. (Fatal decompression errors generally
-indicate a bug in one or other implementation.)
-
-.SH AUTHORS
-Paul Mackerras (Paul.Mackerras@cs.anu.edu.au), based on earlier work by
-Drew Perkins,
-Brad Clements,
-Karl Fox,
-Greg Christy,
-and
-Brad Parker.
diff --git a/mdk-stage1/ppp/pppd/pppd.h b/mdk-stage1/ppp/pppd/pppd.h
deleted file mode 100644
index 02f6dfcef..000000000
--- a/mdk-stage1/ppp/pppd/pppd.h
+++ /dev/null
@@ -1,787 +0,0 @@
-/*
- * pppd.h - PPP daemon global declarations.
- *
- * Copyright (c) 1989 Carnegie Mellon University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Carnegie Mellon University. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Id$
- */
-
-/*
- * TODO:
- */
-
-#ifndef __PPPD_H__
-#define __PPPD_H__
-
-#include <stdio.h> /* for FILE */
-#include <limits.h> /* for NGROUPS_MAX */
-#include <sys/param.h> /* for MAXPATHLEN and BSD4_4, if defined */
-#include <sys/types.h> /* for u_int32_t, if defined */
-#include <sys/time.h> /* for struct timeval */
-#include <net/ppp_defs.h>
-#include "patchlevel.h"
-
-#if defined(__STDC__)
-#include <stdarg.h>
-#define __V(x) x
-#else
-#include <varargs.h>
-#define __V(x) (va_alist) va_dcl
-#define const
-#define volatile
-#endif
-
-#ifdef INET6
-#include "eui64.h"
-#endif
-
-/*
- * Limits.
- */
-
-#define NUM_PPP 1 /* One PPP interface supported (per process) */
-#define MAXWORDLEN 1024 /* max length of word in file (incl null) */
-#define MAXARGS 1 /* max # args to a command */
-#define MAXNAMELEN 256 /* max length of hostname or name for auth */
-#define MAXSECRETLEN 256 /* max length of password or secret */
-
-/*
- * Option descriptor structure.
- */
-
-typedef unsigned char bool;
-
-enum opt_type {
- o_special_noarg = 0,
- o_special = 1,
- o_bool,
- o_int,
- o_uint32,
- o_string,
- o_wild,
-};
-
-typedef struct {
- char *name; /* name of the option */
- enum opt_type type;
- void *addr;
- char *description;
- int flags;
- void *addr2;
- int upper_limit;
- int lower_limit;
- const char *source;
- short int priority;
- short int winner;
-} option_t;
-
-/* Values for flags */
-#define OPT_VALUE 0xff /* mask for presupplied value */
-#define OPT_HEX 0x100 /* int option is in hex */
-#define OPT_NOARG 0x200 /* option doesn't take argument */
-#define OPT_OR 0x400 /* OR in argument to value */
-#define OPT_INC 0x800 /* increment value */
-#define OPT_PRIV 0x1000 /* privileged option */
-#define OPT_STATIC 0x2000 /* string option goes into static array */
-#define OPT_LLIMIT 0x4000 /* check value against lower limit */
-#define OPT_ULIMIT 0x8000 /* check value against upper limit */
-#define OPT_LIMITS (OPT_LLIMIT|OPT_ULIMIT)
-#define OPT_ZEROOK 0x10000 /* 0 value is OK even if not within limits */
-#define OPT_HIDE 0x10000 /* for o_string, print value as ?????? */
-#define OPT_A2LIST 0x10000 /* for o_special, keep list of values */
-#define OPT_NOINCR 0x20000 /* value mustn't be increased */
-#define OPT_ZEROINF 0x40000 /* with OPT_NOINCR, 0 == infinity */
-#define OPT_PRIO 0x80000 /* process option priorities for this option */
-#define OPT_PRIOSUB 0x100000 /* subsidiary member of priority group */
-#define OPT_ALIAS 0x200000 /* option is alias for previous option */
-#define OPT_A2COPY 0x400000 /* addr2 -> second location to rcv value */
-#define OPT_ENABLE 0x800000 /* use *addr2 as enable for option */
-#define OPT_A2CLR 0x1000000 /* clear *(bool *)addr2 */
-#define OPT_PRIVFIX 0x2000000 /* user can't override if set by root */
-#define OPT_INITONLY 0x4000000 /* option can only be set in init phase */
-#define OPT_DEVEQUIV 0x8000000 /* equiv to device name */
-#define OPT_DEVNAM (OPT_INITONLY | OPT_DEVEQUIV)
-#define OPT_A2PRINTER 0x10000000 /* *addr2 is a fn for printing option */
-#define OPT_A2STRVAL 0x20000000 /* *addr2 points to current string value */
-#define OPT_NOPRINT 0x40000000 /* don't print this option at all */
-
-#define OPT_VAL(x) ((x) & OPT_VALUE)
-
-/* Values for priority */
-#define OPRIO_DEFAULT 0 /* a default value */
-#define OPRIO_CFGFILE 1 /* value from a configuration file */
-#define OPRIO_CMDLINE 2 /* value from the command line */
-#define OPRIO_SECFILE 3 /* value from options in a secrets file */
-#define OPRIO_ROOT 100 /* added to priority if OPT_PRIVFIX && root */
-
-#ifndef GIDSET_TYPE
-#define GIDSET_TYPE gid_t
-#endif
-
-/* Structure representing a list of permitted IP addresses. */
-struct permitted_ip {
- int permit; /* 1 = permit, 0 = forbid */
- u_int32_t base; /* match if (addr & mask) == base */
- u_int32_t mask; /* base and mask are in network byte order */
-};
-
-/*
- * Unfortunately, the linux kernel driver uses a different structure
- * for statistics from the rest of the ports.
- * This structure serves as a common representation for the bits
- * pppd needs.
- */
-struct pppd_stats {
- unsigned int bytes_in;
- unsigned int bytes_out;
-};
-
-/* Used for storing a sequence of words. Usually malloced. */
-struct wordlist {
- struct wordlist *next;
- char *word;
-};
-
-/* An endpoint discriminator, used with multilink. */
-#define MAX_ENDP_LEN 20 /* maximum length of discriminator value */
-struct epdisc {
- unsigned char class;
- unsigned char length;
- unsigned char value[MAX_ENDP_LEN];
-};
-
-/* values for epdisc.class */
-#define EPD_NULL 0 /* null discriminator, no data */
-#define EPD_LOCAL 1
-#define EPD_IP 2
-#define EPD_MAC 3
-#define EPD_MAGIC 4
-#define EPD_PHONENUM 5
-
-typedef void (*notify_func) __P((void *, int));
-
-struct notifier {
- struct notifier *next;
- notify_func func;
- void *arg;
-};
-
-/*
- * Global variables.
- */
-
-extern int hungup; /* Physical layer has disconnected */
-extern int ifunit; /* Interface unit number */
-extern char ifname[]; /* Interface name */
-extern char hostname[]; /* Our hostname */
-extern u_char outpacket_buf[]; /* Buffer for outgoing packets */
-extern int phase; /* Current state of link - see values below */
-extern int baud_rate; /* Current link speed in bits/sec */
-extern char *progname; /* Name of this program */
-extern int redirect_stderr;/* Connector's stderr should go to file */
-extern char peer_authname[];/* Authenticated name of peer */
-extern int privileged; /* We were run by real-uid root */
-extern int need_holdoff; /* Need holdoff period after link terminates */
-extern char **script_env; /* Environment variables for scripts */
-extern int detached; /* Have detached from controlling tty */
-extern GIDSET_TYPE groups[NGROUPS_MAX]; /* groups the user is in */
-extern int ngroups; /* How many groups valid in groups */
-extern struct pppd_stats link_stats; /* byte/packet counts etc. for link */
-extern int link_stats_valid; /* set if link_stats is valid */
-extern int link_connect_time; /* time the link was up for */
-extern int using_pty; /* using pty as device (notty or pty opt.) */
-extern int log_to_fd; /* logging to this fd as well as syslog */
-extern bool log_default; /* log_to_fd is default (stdout) */
-extern char *no_ppp_msg; /* message to print if ppp not in kernel */
-extern volatile int status; /* exit status for pppd */
-extern bool devnam_fixed; /* can no longer change devnam */
-extern int unsuccess; /* # unsuccessful connection attempts */
-extern int do_callback; /* set if we want to do callback next */
-extern int doing_callback; /* set if this is a callback */
-extern char ppp_devnam[MAXPATHLEN];
-extern struct notifier *pidchange; /* for notifications of pid changing */
-extern struct notifier *phasechange; /* for notifications of phase changes */
-extern struct notifier *exitnotify; /* for notification that we're exiting */
-extern struct notifier *sigreceived; /* notification of received signal */
-extern int listen_time; /* time to listen first (ms) */
-
-/* Values for do_callback and doing_callback */
-#define CALLBACK_DIALIN 1 /* we are expecting the call back */
-#define CALLBACK_DIALOUT 2 /* we are dialling out to call back */
-
-/*
- * Variables set by command-line options.
- */
-
-extern int debug; /* Debug flag */
-extern int kdebugflag; /* Tell kernel to print debug messages */
-extern int default_device; /* Using /dev/tty or equivalent */
-extern char devnam[MAXPATHLEN]; /* Device name */
-extern int crtscts; /* Use hardware flow control */
-extern bool modem; /* Use modem control lines */
-extern int inspeed; /* Input/Output speed requested */
-extern u_int32_t netmask; /* IP netmask to set on interface */
-extern bool lockflag; /* Create lock file to lock the serial dev */
-extern bool nodetach; /* Don't detach from controlling tty */
-extern bool updetach; /* Detach from controlling tty when link up */
-extern char *initializer; /* Script to initialize physical link */
-extern char *connect_script; /* Script to establish physical link */
-extern char *disconnect_script; /* Script to disestablish physical link */
-extern char *welcomer; /* Script to welcome client after connection */
-extern char *ptycommand; /* Command to run on other side of pty */
-extern int maxconnect; /* Maximum connect time (seconds) */
-extern char user[MAXNAMELEN];/* Our name for authenticating ourselves */
-extern char passwd[MAXSECRETLEN]; /* Password for PAP or CHAP */
-extern bool auth_required; /* Peer is required to authenticate */
-extern bool persist; /* Reopen link after it goes down */
-extern bool uselogin; /* Use /etc/passwd for checking PAP */
-extern char our_name[MAXNAMELEN];/* Our name for authentication purposes */
-extern char remote_name[MAXNAMELEN]; /* Peer's name for authentication */
-extern bool explicit_remote;/* remote_name specified with remotename opt */
-extern bool demand; /* Do dial-on-demand */
-extern char *ipparam; /* Extra parameter for ip up/down scripts */
-extern bool cryptpap; /* Others' PAP passwords are encrypted */
-extern int idle_time_limit;/* Shut down link if idle for this long */
-extern int holdoff; /* Dead time before restarting */
-extern bool holdoff_specified; /* true if user gave a holdoff value */
-extern bool notty; /* Stdin/out is not a tty */
-extern char *pty_socket; /* Socket to connect to pty */
-extern char *record_file; /* File to record chars sent/received */
-extern bool sync_serial; /* Device is synchronous serial device */
-extern int maxfail; /* Max # of unsuccessful connection attempts */
-extern char linkname[MAXPATHLEN]; /* logical name for link */
-extern bool tune_kernel; /* May alter kernel settings as necessary */
-extern int connect_delay; /* Time to delay after connect script */
-extern int max_data_rate; /* max bytes/sec through charshunt */
-extern int req_unit; /* interface unit number to use */
-extern bool multilink; /* enable multilink operation */
-extern bool noendpoint; /* don't send or accept endpt. discrim. */
-extern char *bundle_name; /* bundle name for multilink */
-extern bool dump_options; /* print out option values */
-extern bool dryrun; /* check everything, print options, exit */
-
-#ifdef PPP_FILTER
-extern struct bpf_program pass_filter; /* Filter for pkts to pass */
-extern struct bpf_program active_filter; /* Filter for link-active pkts */
-#endif
-
-#ifdef MSLANMAN
-extern bool ms_lanman; /* Use LanMan password instead of NT */
- /* Has meaning only with MS-CHAP challenges */
-#endif
-
-extern char *current_option; /* the name of the option being parsed */
-extern int privileged_option; /* set iff the current option came from root */
-extern char *option_source; /* string saying where the option came from */
-extern int option_priority; /* priority of current options */
-
-/*
- * Values for phase.
- */
-#define PHASE_DEAD 0
-#define PHASE_INITIALIZE 1
-#define PHASE_SERIALCONN 2
-#define PHASE_DORMANT 3
-#define PHASE_ESTABLISH 4
-#define PHASE_AUTHENTICATE 5
-#define PHASE_CALLBACK 6
-#define PHASE_NETWORK 7
-#define PHASE_RUNNING 8
-#define PHASE_TERMINATE 9
-#define PHASE_DISCONNECT 10
-#define PHASE_HOLDOFF 11
-
-/*
- * The following struct gives the addresses of procedures to call
- * for a particular protocol.
- */
-struct protent {
- u_short protocol; /* PPP protocol number */
- /* Initialization procedure */
- void (*init) __P((int unit));
- /* Process a received packet */
- void (*input) __P((int unit, u_char *pkt, int len));
- /* Process a received protocol-reject */
- void (*protrej) __P((int unit));
- /* Lower layer has come up */
- void (*lowerup) __P((int unit));
- /* Lower layer has gone down */
- void (*lowerdown) __P((int unit));
- /* Open the protocol */
- void (*open) __P((int unit));
- /* Close the protocol */
- void (*close) __P((int unit, char *reason));
- /* Print a packet in readable form */
- int (*printpkt) __P((u_char *pkt, int len,
- void (*printer) __P((void *, char *, ...)),
- void *arg));
- /* Process a received data packet */
- void (*datainput) __P((int unit, u_char *pkt, int len));
- bool enabled_flag; /* 0 iff protocol is disabled */
- char *name; /* Text name of protocol */
- char *data_name; /* Text name of corresponding data protocol */
- option_t *options; /* List of command-line options */
- /* Check requested options, assign defaults */
- void (*check_options) __P((void));
- /* Configure interface for demand-dial */
- int (*demand_conf) __P((int unit));
- /* Say whether to bring up link for this pkt */
- int (*active_pkt) __P((u_char *pkt, int len));
-};
-
-/* Table of pointers to supported protocols */
-extern struct protent *protocols[];
-
-/*
- * This struct contains pointers to a set of procedures for
- * doing operations on a "channel". A channel provides a way
- * to send and receive PPP packets - the canonical example is
- * a serial port device in PPP line discipline (or equivalently
- * with PPP STREAMS modules pushed onto it).
- */
-struct channel {
- /* set of options for this channel */
- option_t *options;
- /* find and process a per-channel options file */
- void (*process_extra_options) __P((void));
- /* check all the options that have been given */
- void (*check_options) __P((void));
- /* get the channel ready to do PPP, return a file descriptor */
- int (*connect) __P((void));
- /* we're finished with the channel */
- void (*disconnect) __P((void));
- /* put the channel into PPP `mode' */
- int (*establish_ppp) __P((int));
- /* take the channel out of PPP `mode', restore loopback if demand */
- void (*disestablish_ppp) __P((int));
- /* set the transmit-side PPP parameters of the channel */
- void (*send_config) __P((int, u_int32_t, int, int));
- /* set the receive-side PPP parameters of the channel */
- void (*recv_config) __P((int, u_int32_t, int, int));
- /* cleanup on error or normal exit */
- void (*cleanup) __P((void));
- /* close the device, called in children after fork */
- void (*close) __P((void));
-};
-
-extern struct channel *the_channel;
-
-#define ppp_send_config(unit, mtu, accm, pc, acc) \
-do { \
- if (the_channel->send_config) \
- (*the_channel->send_config)((mtu), (accm), (pc), (acc)); \
-} while (0)
-
-#define ppp_recv_config(unit, mtu, accm, pc, acc) \
-do { \
- if (the_channel->send_config) \
- (*the_channel->recv_config)((mtu), (accm), (pc), (acc)); \
-} while (0)
-
-/*
- * Prototypes.
- */
-
-/* Procedures exported from main.c. */
-void set_ifunit __P((int)); /* set stuff that depends on ifunit */
-void detach __P((void)); /* Detach from controlling tty */
-void die __P((int)); /* Cleanup and exit */
-void quit __P((void)); /* like die(1) */
-void novm __P((char *)); /* Say we ran out of memory, and die */
-void timeout __P((void (*func)(void *), void *arg, int s, int us));
- /* Call func(arg) after s.us seconds */
-void untimeout __P((void (*func)(void *), void *arg));
- /* Cancel call to func(arg) */
-void record_child __P((int, char *, void (*) (void *), void *));
-int device_script __P((char *cmd, int in, int out, int dont_wait));
- /* Run `cmd' with given stdin and stdout */
-pid_t run_program __P((char *prog, char **args, int must_exist,
- void (*done)(void *), void *arg));
- /* Run program prog with args in child */
-void reopen_log __P((void)); /* (re)open the connection to syslog */
-void update_link_stats __P((int)); /* Get stats at link termination */
-void script_setenv __P((char *, char *, int)); /* set script env var */
-void script_unsetenv __P((char *)); /* unset script env var */
-void new_phase __P((int)); /* signal start of new phase */
-void add_notifier __P((struct notifier **, notify_func, void *));
-void remove_notifier __P((struct notifier **, notify_func, void *));
-void notify __P((struct notifier *, int));
-
-/* Procedures exported from tty.c. */
-void tty_init __P((void));
-
-/* Procedures exported from utils.c. */
-void log_packet __P((u_char *, int, char *, int));
- /* Format a packet and log it with syslog */
-void print_string __P((char *, int, void (*) (void *, char *, ...),
- void *)); /* Format a string for output */
-int slprintf __P((char *, int, char *, ...)); /* sprintf++ */
-int vslprintf __P((char *, int, char *, va_list)); /* vsprintf++ */
-size_t strlcpy __P((char *, const char *, size_t)); /* safe strcpy */
-size_t strlcat __P((char *, const char *, size_t)); /* safe strncpy */
-void dbglog __P((char *, ...)); /* log a debug message */
-void info __P((char *, ...)); /* log an informational message */
-void notice __P((char *, ...)); /* log a notice-level message */
-void warn __P((char *, ...)); /* log a warning message */
-void error __P((char *, ...)); /* log an error message */
-void fatal __P((char *, ...)); /* log an error message and die(1) */
-void init_pr_log __P((char *, int)); /* initialize for using pr_log */
-void pr_log __P((void *, char *, ...)); /* printer fn, output to syslog */
-void end_pr_log __P((void)); /* finish up after using pr_log */
-
-/* Procedures exported from auth.c */
-void link_required __P((int)); /* we are starting to use the link */
-void link_terminated __P((int)); /* we are finished with the link */
-void link_down __P((int)); /* the LCP layer has left the Opened state */
-void link_established __P((int)); /* the link is up; authenticate now */
-void start_networks __P((void)); /* start all the network control protos */
-void np_up __P((int, int)); /* a network protocol has come up */
-void np_down __P((int, int)); /* a network protocol has gone down */
-void np_finished __P((int, int)); /* a network protocol no longer needs link */
-void auth_peer_fail __P((int, int));
- /* peer failed to authenticate itself */
-void auth_peer_success __P((int, int, char *, int));
- /* peer successfully authenticated itself */
-void auth_withpeer_fail __P((int, int));
- /* we failed to authenticate ourselves */
-void auth_withpeer_success __P((int, int));
- /* we successfully authenticated ourselves */
-void auth_check_options __P((void));
- /* check authentication options supplied */
-void auth_reset __P((int)); /* check what secrets we have */
-int check_passwd __P((int, char *, int, char *, int, char **));
- /* Check peer-supplied username/password */
-int get_secret __P((int, char *, char *, char *, int *, int));
- /* get "secret" for chap */
-int auth_ip_addr __P((int, u_int32_t));
- /* check if IP address is authorized */
-int bad_ip_adrs __P((u_int32_t));
- /* check if IP address is unreasonable */
-
-/* Procedures exported from demand.c */
-void demand_conf __P((void)); /* config interface(s) for demand-dial */
-void demand_block __P((void)); /* set all NPs to queue up packets */
-void demand_unblock __P((void)); /* set all NPs to pass packets */
-void demand_discard __P((void)); /* set all NPs to discard packets */
-void demand_rexmit __P((int)); /* retransmit saved frames for an NP */
-int loop_chars __P((unsigned char *, int)); /* process chars from loopback */
-int loop_frame __P((unsigned char *, int)); /* should we bring link up? */
-
-/* Procedures exported from multilink.c */
-void mp_check_options __P((void)); /* Check multilink-related options */
-int mp_join_bundle __P((void)); /* join our link to an appropriate bundle */
-char *epdisc_to_str __P((struct epdisc *)); /* string from endpoint discrim. */
-int str_to_epdisc __P((struct epdisc *, char *)); /* endpt disc. from str */
-
-/* Procedures exported from sys-*.c */
-void sys_init __P((void)); /* Do system-dependent initialization */
-void sys_cleanup __P((void)); /* Restore system state before exiting */
-int sys_check_options __P((void)); /* Check options specified */
-void sys_close __P((void)); /* Clean up in a child before execing */
-int ppp_available __P((void)); /* Test whether ppp kernel support exists */
-int get_pty __P((int *, int *, char *, int)); /* Get pty master/slave */
-int open_ppp_loopback __P((void)); /* Open loopback for demand-dialling */
-int tty_establish_ppp __P((int)); /* Turn serial port into a ppp interface */
-void tty_disestablish_ppp __P((int)); /* Restore port to normal operation */
-void make_new_bundle __P((int, int, int, int)); /* Create new bundle */
-int bundle_attach __P((int)); /* Attach link to existing bundle */
-void cfg_bundle __P((int, int, int, int)); /* Configure existing bundle */
-void clean_check __P((void)); /* Check if line was 8-bit clean */
-void set_up_tty __P((int, int)); /* Set up port's speed, parameters, etc. */
-void restore_tty __P((int)); /* Restore port's original parameters */
-void setdtr __P((int, int)); /* Raise or lower port's DTR line */
-void output __P((int, u_char *, int)); /* Output a PPP packet */
-void wait_input __P((struct timeval *));
- /* Wait for input, with timeout */
-void add_fd __P((int)); /* Add fd to set to wait for */
-void remove_fd __P((int)); /* Remove fd from set to wait for */
-int read_packet __P((u_char *)); /* Read PPP packet */
-int get_loop_output __P((void)); /* Read pkts from loopback */
-void tty_send_config __P((int, u_int32_t, int, int));
- /* Configure i/f transmit parameters */
-void tty_set_xaccm __P((ext_accm));
- /* Set extended transmit ACCM */
-void tty_recv_config __P((int, u_int32_t, int, int));
- /* Configure i/f receive parameters */
-int ccp_test __P((int, u_char *, int, int));
- /* Test support for compression scheme */
-void ccp_flags_set __P((int, int, int));
- /* Set kernel CCP state */
-int ccp_fatal_error __P((int)); /* Test for fatal decomp error in kernel */
-int get_idle_time __P((int, struct ppp_idle *));
- /* Find out how long link has been idle */
-int get_ppp_stats __P((int, struct pppd_stats *));
- /* Return link statistics */
-void netif_set_mtu __P((int, int)); /* Set PPP interface MTU */
-int sifvjcomp __P((int, int, int, int));
- /* Configure VJ TCP header compression */
-int sifup __P((int)); /* Configure i/f up for one protocol */
-int sifnpmode __P((int u, int proto, enum NPmode mode));
- /* Set mode for handling packets for proto */
-int sifdown __P((int)); /* Configure i/f down for one protocol */
-int sifaddr __P((int, u_int32_t, u_int32_t, u_int32_t));
- /* Configure IPv4 addresses for i/f */
-int cifaddr __P((int, u_int32_t, u_int32_t));
- /* Reset i/f IP addresses */
-#ifdef INET6
-int sif6addr __P((int, eui64_t, eui64_t));
- /* Configure IPv6 addresses for i/f */
-int cif6addr __P((int, eui64_t, eui64_t));
- /* Remove an IPv6 address from i/f */
-#endif
-int sifdefaultroute __P((int, u_int32_t, u_int32_t));
- /* Create default route through i/f */
-int cifdefaultroute __P((int, u_int32_t, u_int32_t));
- /* Delete default route through i/f */
-int sifproxyarp __P((int, u_int32_t));
- /* Add proxy ARP entry for peer */
-int cifproxyarp __P((int, u_int32_t));
- /* Delete proxy ARP entry for peer */
-u_int32_t GetMask __P((u_int32_t)); /* Get appropriate netmask for address */
-int lock __P((char *)); /* Create lock file for device */
-int relock __P((int)); /* Rewrite lock file with new pid */
-void unlock __P((void)); /* Delete previously-created lock file */
-int get_host_seed __P((void)); /* Get host-dependent random number seed */
-int have_route_to __P((u_int32_t)); /* Check if route to addr exists */
-#ifdef PPP_FILTER
-int set_filters __P((struct bpf_program *pass, struct bpf_program *active));
- /* Set filter programs in kernel */
-#endif
-#ifdef IPX_CHANGE
-int sipxfaddr __P((int, unsigned long, unsigned char *));
-int cipxfaddr __P((int));
-#endif
-int get_if_hwaddr __P((u_char *addr, char *name));
-char *get_first_ethernet __P((void));
-
-/* Procedures exported from options.c */
-int parse_args __P((int argc, char **argv));
- /* Parse options from arguments given */
-int options_from_file __P((char *filename, int must_exist, int check_prot,
- int privileged));
- /* Parse options from an options file */
-int options_from_user __P((void)); /* Parse options from user's .ppprc */
-int options_for_tty __P((void)); /* Parse options from /etc/ppp/options.tty */
-int options_from_list __P((struct wordlist *, int privileged));
- /* Parse options from a wordlist */
-int getword __P((FILE *f, char *word, int *newlinep, char *filename));
- /* Read a word from a file */
-void option_error __P((char *fmt, ...));
- /* Print an error message about an option */
-int int_option __P((char *, int *));
- /* Simplified number_option for decimal ints */
-void add_options __P((option_t *)); /* Add extra options */
-void check_options __P((void)); /* check values after all options parsed */
-int override_value __P((const char *, int, const char *));
- /* override value if permitted by priority */
-void print_options __P((void (*) __P((void *, char *, ...)), void *));
- /* print out values of all options */
-
-int parse_dotted_ip __P((char *, u_int32_t *));
-
-/*
- * Hooks to enable plugins to change various things.
- */
-extern int (*new_phase_hook) __P((int));
-extern int (*idle_time_hook) __P((struct ppp_idle *));
-extern int (*holdoff_hook) __P((void));
-extern int (*pap_check_hook) __P((void));
-extern int (*pap_auth_hook) __P((char *user, char *passwd, char **msgp,
- struct wordlist **paddrs,
- struct wordlist **popts));
-extern void (*pap_logout_hook) __P((void));
-extern int (*pap_passwd_hook) __P((char *user, char *passwd));
-extern void (*ip_up_hook) __P((void));
-extern void (*ip_down_hook) __P((void));
-extern void (*ip_choose_hook) __P((u_int32_t *));
-
-/*
- * Inline versions of get/put char/short/long.
- * Pointer is advanced; we assume that both arguments
- * are lvalues and will already be in registers.
- * cp MUST be u_char *.
- */
-#define GETCHAR(c, cp) { \
- (c) = *(cp)++; \
-}
-#define PUTCHAR(c, cp) { \
- *(cp)++ = (u_char) (c); \
-}
-
-
-#define GETSHORT(s, cp) { \
- (s) = *(cp)++ << 8; \
- (s) |= *(cp)++; \
-}
-#define PUTSHORT(s, cp) { \
- *(cp)++ = (u_char) ((s) >> 8); \
- *(cp)++ = (u_char) (s); \
-}
-
-#define GETLONG(l, cp) { \
- (l) = *(cp)++ << 8; \
- (l) |= *(cp)++; (l) <<= 8; \
- (l) |= *(cp)++; (l) <<= 8; \
- (l) |= *(cp)++; \
-}
-#define PUTLONG(l, cp) { \
- *(cp)++ = (u_char) ((l) >> 24); \
- *(cp)++ = (u_char) ((l) >> 16); \
- *(cp)++ = (u_char) ((l) >> 8); \
- *(cp)++ = (u_char) (l); \
-}
-
-#define INCPTR(n, cp) ((cp) += (n))
-#define DECPTR(n, cp) ((cp) -= (n))
-
-/*
- * System dependent definitions for user-level 4.3BSD UNIX implementation.
- */
-
-#define TIMEOUT(r, f, t) timeout((r), (f), (t), 0)
-#define UNTIMEOUT(r, f) untimeout((r), (f))
-
-#define BCOPY(s, d, l) memcpy(d, s, l)
-#define BZERO(s, n) memset(s, 0, n)
-
-#define PRINTMSG(m, l) { info("Remote message: %0.*v", l, m); }
-
-/*
- * MAKEHEADER - Add Header fields to a packet.
- */
-#define MAKEHEADER(p, t) { \
- PUTCHAR(PPP_ALLSTATIONS, p); \
- PUTCHAR(PPP_UI, p); \
- PUTSHORT(t, p); }
-
-/*
- * Exit status values.
- */
-#define EXIT_OK 0
-#define EXIT_FATAL_ERROR 1
-#define EXIT_OPTION_ERROR 2
-#define EXIT_NOT_ROOT 3
-#define EXIT_NO_KERNEL_SUPPORT 4
-#define EXIT_USER_REQUEST 5
-#define EXIT_LOCK_FAILED 6
-#define EXIT_OPEN_FAILED 7
-#define EXIT_CONNECT_FAILED 8
-#define EXIT_PTYCMD_FAILED 9
-#define EXIT_NEGOTIATION_FAILED 10
-#define EXIT_PEER_AUTH_FAILED 11
-#define EXIT_IDLE_TIMEOUT 12
-#define EXIT_CONNECT_TIME 13
-#define EXIT_CALLBACK 14
-#define EXIT_PEER_DEAD 15
-#define EXIT_HANGUP 16
-#define EXIT_LOOPBACK 17
-#define EXIT_INIT_FAILED 18
-#define EXIT_AUTH_TOPEER_FAILED 19
-
-/*
- * Debug macros. Slightly useful for finding bugs in pppd, not particularly
- * useful for finding out why your connection isn't being established.
- */
-#ifdef DEBUGALL
-#define DEBUGMAIN 1
-#define DEBUGFSM 1
-#define DEBUGLCP 1
-#define DEBUGIPCP 1
-#define DEBUGIPV6CP 1
-#define DEBUGUPAP 1
-#define DEBUGCHAP 1
-#endif
-
-#ifndef LOG_PPP /* we use LOG_LOCAL2 for syslog by default */
-#if defined(DEBUGMAIN) || defined(DEBUGFSM) || defined(DEBUGSYS) \
- || defined(DEBUGLCP) || defined(DEBUGIPCP) || defined(DEBUGUPAP) \
- || defined(DEBUGCHAP) || defined(DEBUG) || defined(DEBUGIPV6CP)
-#define LOG_PPP LOG_LOCAL2
-#else
-#define LOG_PPP LOG_DAEMON
-#endif
-#endif /* LOG_PPP */
-
-#ifdef DEBUGMAIN
-#define MAINDEBUG(x) if (debug) dbglog x
-#else
-#define MAINDEBUG(x)
-#endif
-
-#ifdef DEBUGSYS
-#define SYSDEBUG(x) if (debug) dbglog x
-#else
-#define SYSDEBUG(x)
-#endif
-
-#ifdef DEBUGFSM
-#define FSMDEBUG(x) if (debug) dbglog x
-#else
-#define FSMDEBUG(x)
-#endif
-
-#ifdef DEBUGLCP
-#define LCPDEBUG(x) if (debug) dbglog x
-#else
-#define LCPDEBUG(x)
-#endif
-
-#ifdef DEBUGIPCP
-#define IPCPDEBUG(x) if (debug) dbglog x
-#else
-#define IPCPDEBUG(x)
-#endif
-
-#ifdef DEBUGIPV6CP
-#define IPV6CPDEBUG(x) if (debug) dbglog x
-#else
-#define IPV6CPDEBUG(x)
-#endif
-
-#ifdef DEBUGUPAP
-#define UPAPDEBUG(x) if (debug) dbglog x
-#else
-#define UPAPDEBUG(x)
-#endif
-
-#ifdef DEBUGCHAP
-#define CHAPDEBUG(x) if (debug) dbglog x
-#else
-#define CHAPDEBUG(x)
-#endif
-
-#ifdef DEBUGIPXCP
-#define IPXCPDEBUG(x) if (debug) dbglog x
-#else
-#define IPXCPDEBUG(x)
-#endif
-
-#ifndef SIGTYPE
-#if defined(sun) || defined(SYSV) || defined(POSIX_SOURCE)
-#define SIGTYPE void
-#else
-#define SIGTYPE int
-#endif /* defined(sun) || defined(SYSV) || defined(POSIX_SOURCE) */
-#endif /* SIGTYPE */
-
-#ifndef MIN
-#define MIN(a, b) ((a) < (b)? (a): (b))
-#endif
-#ifndef MAX
-#define MAX(a, b) ((a) > (b)? (a): (b))
-#endif
-
-#endif /* __PPP_H__ */
diff --git a/mdk-stage1/ppp/pppd/pppd.h.wtmp b/mdk-stage1/ppp/pppd/pppd.h.wtmp
deleted file mode 100644
index 4d440be06..000000000
--- a/mdk-stage1/ppp/pppd/pppd.h.wtmp
+++ /dev/null
@@ -1,789 +0,0 @@
-/*
- * pppd.h - PPP daemon global declarations.
- *
- * Copyright (c) 1989 Carnegie Mellon University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Carnegie Mellon University. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Id$
- */
-
-/*
- * TODO:
- */
-
-#ifndef __PPPD_H__
-#define __PPPD_H__
-
-#include <stdio.h> /* for FILE */
-#include <limits.h> /* for NGROUPS_MAX */
-#include <sys/param.h> /* for MAXPATHLEN and BSD4_4, if defined */
-#include <sys/types.h> /* for u_int32_t, if defined */
-#include <sys/time.h> /* for struct timeval */
-#include <net/ppp_defs.h>
-#include "patchlevel.h"
-
-#if defined(__STDC__)
-#include <stdarg.h>
-#define __V(x) x
-#else
-#include <varargs.h>
-#define __V(x) (va_alist) va_dcl
-#define const
-#define volatile
-#endif
-
-#ifdef INET6
-#include "eui64.h"
-#endif
-
-/*
- * Limits.
- */
-
-#define NUM_PPP 1 /* One PPP interface supported (per process) */
-#define MAXWORDLEN 1024 /* max length of word in file (incl null) */
-#define MAXARGS 1 /* max # args to a command */
-#define MAXNAMELEN 256 /* max length of hostname or name for auth */
-#define MAXSECRETLEN 256 /* max length of password or secret */
-
-/*
- * Option descriptor structure.
- */
-
-typedef unsigned char bool;
-
-enum opt_type {
- o_special_noarg = 0,
- o_special = 1,
- o_bool,
- o_int,
- o_uint32,
- o_string,
- o_wild,
-};
-
-typedef struct {
- char *name; /* name of the option */
- enum opt_type type;
- void *addr;
- char *description;
- int flags;
- void *addr2;
- int upper_limit;
- int lower_limit;
- const char *source;
- short int priority;
- short int winner;
-} option_t;
-
-/* Values for flags */
-#define OPT_VALUE 0xff /* mask for presupplied value */
-#define OPT_HEX 0x100 /* int option is in hex */
-#define OPT_NOARG 0x200 /* option doesn't take argument */
-#define OPT_OR 0x400 /* OR in argument to value */
-#define OPT_INC 0x800 /* increment value */
-#define OPT_PRIV 0x1000 /* privileged option */
-#define OPT_STATIC 0x2000 /* string option goes into static array */
-#define OPT_LLIMIT 0x4000 /* check value against lower limit */
-#define OPT_ULIMIT 0x8000 /* check value against upper limit */
-#define OPT_LIMITS (OPT_LLIMIT|OPT_ULIMIT)
-#define OPT_ZEROOK 0x10000 /* 0 value is OK even if not within limits */
-#define OPT_HIDE 0x10000 /* for o_string, print value as ?????? */
-#define OPT_A2LIST 0x10000 /* for o_special, keep list of values */
-#define OPT_NOINCR 0x20000 /* value mustn't be increased */
-#define OPT_ZEROINF 0x40000 /* with OPT_NOINCR, 0 == infinity */
-#define OPT_PRIO 0x80000 /* process option priorities for this option */
-#define OPT_PRIOSUB 0x100000 /* subsidiary member of priority group */
-#define OPT_ALIAS 0x200000 /* option is alias for previous option */
-#define OPT_A2COPY 0x400000 /* addr2 -> second location to rcv value */
-#define OPT_ENABLE 0x800000 /* use *addr2 as enable for option */
-#define OPT_A2CLR 0x1000000 /* clear *(bool *)addr2 */
-#define OPT_PRIVFIX 0x2000000 /* user can't override if set by root */
-#define OPT_INITONLY 0x4000000 /* option can only be set in init phase */
-#define OPT_DEVEQUIV 0x8000000 /* equiv to device name */
-#define OPT_DEVNAM (OPT_INITONLY | OPT_DEVEQUIV)
-#define OPT_A2PRINTER 0x10000000 /* *addr2 is a fn for printing option */
-#define OPT_A2STRVAL 0x20000000 /* *addr2 points to current string value */
-#define OPT_NOPRINT 0x40000000 /* don't print this option at all */
-
-#define OPT_VAL(x) ((x) & OPT_VALUE)
-
-/* Values for priority */
-#define OPRIO_DEFAULT 0 /* a default value */
-#define OPRIO_CFGFILE 1 /* value from a configuration file */
-#define OPRIO_CMDLINE 2 /* value from the command line */
-#define OPRIO_SECFILE 3 /* value from options in a secrets file */
-#define OPRIO_ROOT 100 /* added to priority if OPT_PRIVFIX && root */
-
-#ifndef GIDSET_TYPE
-#define GIDSET_TYPE gid_t
-#endif
-
-/* Structure representing a list of permitted IP addresses. */
-struct permitted_ip {
- int permit; /* 1 = permit, 0 = forbid */
- u_int32_t base; /* match if (addr & mask) == base */
- u_int32_t mask; /* base and mask are in network byte order */
-};
-
-/*
- * Unfortunately, the linux kernel driver uses a different structure
- * for statistics from the rest of the ports.
- * This structure serves as a common representation for the bits
- * pppd needs.
- */
-struct pppd_stats {
- unsigned int bytes_in;
- unsigned int bytes_out;
-};
-
-/* Used for storing a sequence of words. Usually malloced. */
-struct wordlist {
- struct wordlist *next;
- char *word;
-};
-
-/* An endpoint discriminator, used with multilink. */
-#define MAX_ENDP_LEN 20 /* maximum length of discriminator value */
-struct epdisc {
- unsigned char class;
- unsigned char length;
- unsigned char value[MAX_ENDP_LEN];
-};
-
-/* values for epdisc.class */
-#define EPD_NULL 0 /* null discriminator, no data */
-#define EPD_LOCAL 1
-#define EPD_IP 2
-#define EPD_MAC 3
-#define EPD_MAGIC 4
-#define EPD_PHONENUM 5
-
-typedef void (*notify_func) __P((void *, int));
-
-struct notifier {
- struct notifier *next;
- notify_func func;
- void *arg;
-};
-
-/*
- * Global variables.
- */
-
-extern int hungup; /* Physical layer has disconnected */
-extern int ifunit; /* Interface unit number */
-extern char ifname[]; /* Interface name */
-extern char hostname[]; /* Our hostname */
-extern u_char outpacket_buf[]; /* Buffer for outgoing packets */
-extern int phase; /* Current state of link - see values below */
-extern int baud_rate; /* Current link speed in bits/sec */
-extern char *progname; /* Name of this program */
-extern int redirect_stderr;/* Connector's stderr should go to file */
-extern char peer_authname[];/* Authenticated name of peer */
-extern int privileged; /* We were run by real-uid root */
-extern int need_holdoff; /* Need holdoff period after link terminates */
-extern char **script_env; /* Environment variables for scripts */
-extern int detached; /* Have detached from controlling tty */
-extern GIDSET_TYPE groups[NGROUPS_MAX]; /* groups the user is in */
-extern int ngroups; /* How many groups valid in groups */
-extern struct pppd_stats link_stats; /* byte/packet counts etc. for link */
-extern int link_stats_valid; /* set if link_stats is valid */
-extern int link_connect_time; /* time the link was up for */
-extern int using_pty; /* using pty as device (notty or pty opt.) */
-extern int log_to_fd; /* logging to this fd as well as syslog */
-extern bool log_default; /* log_to_fd is default (stdout) */
-extern char *no_ppp_msg; /* message to print if ppp not in kernel */
-extern volatile int status; /* exit status for pppd */
-extern bool devnam_fixed; /* can no longer change devnam */
-extern int unsuccess; /* # unsuccessful connection attempts */
-extern int do_callback; /* set if we want to do callback next */
-extern int doing_callback; /* set if this is a callback */
-extern char ppp_devnam[MAXPATHLEN];
-extern struct notifier *pidchange; /* for notifications of pid changing */
-extern struct notifier *phasechange; /* for notifications of phase changes */
-extern struct notifier *exitnotify; /* for notification that we're exiting */
-extern struct notifier *sigreceived; /* notification of received signal */
-extern int listen_time; /* time to listen first (ms) */
-
-/* Values for do_callback and doing_callback */
-#define CALLBACK_DIALIN 1 /* we are expecting the call back */
-#define CALLBACK_DIALOUT 2 /* we are dialling out to call back */
-
-/*
- * Variables set by command-line options.
- */
-
-extern int debug; /* Debug flag */
-extern int kdebugflag; /* Tell kernel to print debug messages */
-extern int default_device; /* Using /dev/tty or equivalent */
-extern char devnam[MAXPATHLEN]; /* Device name */
-extern int crtscts; /* Use hardware flow control */
-extern bool modem; /* Use modem control lines */
-extern int inspeed; /* Input/Output speed requested */
-extern u_int32_t netmask; /* IP netmask to set on interface */
-extern bool lockflag; /* Create lock file to lock the serial dev */
-extern bool nodetach; /* Don't detach from controlling tty */
-extern bool updetach; /* Detach from controlling tty when link up */
-extern char *initializer; /* Script to initialize physical link */
-extern char *connect_script; /* Script to establish physical link */
-extern char *disconnect_script; /* Script to disestablish physical link */
-extern char *welcomer; /* Script to welcome client after connection */
-extern char *ptycommand; /* Command to run on other side of pty */
-extern int maxconnect; /* Maximum connect time (seconds) */
-extern char user[MAXNAMELEN];/* Our name for authenticating ourselves */
-extern char passwd[MAXSECRETLEN]; /* Password for PAP or CHAP */
-extern bool auth_required; /* Peer is required to authenticate */
-extern bool persist; /* Reopen link after it goes down */
-extern bool uselogin; /* Use /etc/passwd for checking PAP */
-extern char our_name[MAXNAMELEN];/* Our name for authentication purposes */
-extern char remote_name[MAXNAMELEN]; /* Peer's name for authentication */
-extern bool explicit_remote;/* remote_name specified with remotename opt */
-extern bool demand; /* Do dial-on-demand */
-extern char *ipparam; /* Extra parameter for ip up/down scripts */
-extern bool cryptpap; /* Others' PAP passwords are encrypted */
-extern int idle_time_limit;/* Shut down link if idle for this long */
-extern int holdoff; /* Dead time before restarting */
-extern bool holdoff_specified; /* true if user gave a holdoff value */
-extern bool notty; /* Stdin/out is not a tty */
-extern char *pty_socket; /* Socket to connect to pty */
-extern char *record_file; /* File to record chars sent/received */
-extern bool sync_serial; /* Device is synchronous serial device */
-extern int maxfail; /* Max # of unsuccessful connection attempts */
-extern char linkname[MAXPATHLEN]; /* logical name for link */
-extern bool tune_kernel; /* May alter kernel settings as necessary */
-extern int connect_delay; /* Time to delay after connect script */
-extern int max_data_rate; /* max bytes/sec through charshunt */
-extern int req_unit; /* interface unit number to use */
-extern bool multilink; /* enable multilink operation */
-extern bool noendpoint; /* don't send or accept endpt. discrim. */
-extern char *bundle_name; /* bundle name for multilink */
-extern bool dump_options; /* print out option values */
-extern bool dryrun; /* check everything, print options, exit */
-
-#ifdef PPP_FILTER
-extern struct bpf_program pass_filter; /* Filter for pkts to pass */
-extern struct bpf_program active_filter; /* Filter for link-active pkts */
-#endif
-
-#ifdef MSLANMAN
-extern bool ms_lanman; /* Use LanMan password instead of NT */
- /* Has meaning only with MS-CHAP challenges */
-#endif
-
-extern char *current_option; /* the name of the option being parsed */
-extern int privileged_option; /* set iff the current option came from root */
-extern char *option_source; /* string saying where the option came from */
-extern int option_priority; /* priority of current options */
-
-/*
- * Values for phase.
- */
-#define PHASE_DEAD 0
-#define PHASE_INITIALIZE 1
-#define PHASE_SERIALCONN 2
-#define PHASE_DORMANT 3
-#define PHASE_ESTABLISH 4
-#define PHASE_AUTHENTICATE 5
-#define PHASE_CALLBACK 6
-#define PHASE_NETWORK 7
-#define PHASE_RUNNING 8
-#define PHASE_TERMINATE 9
-#define PHASE_DISCONNECT 10
-#define PHASE_HOLDOFF 11
-
-/*
- * The following struct gives the addresses of procedures to call
- * for a particular protocol.
- */
-struct protent {
- u_short protocol; /* PPP protocol number */
- /* Initialization procedure */
- void (*init) __P((int unit));
- /* Process a received packet */
- void (*input) __P((int unit, u_char *pkt, int len));
- /* Process a received protocol-reject */
- void (*protrej) __P((int unit));
- /* Lower layer has come up */
- void (*lowerup) __P((int unit));
- /* Lower layer has gone down */
- void (*lowerdown) __P((int unit));
- /* Open the protocol */
- void (*open) __P((int unit));
- /* Close the protocol */
- void (*close) __P((int unit, char *reason));
- /* Print a packet in readable form */
- int (*printpkt) __P((u_char *pkt, int len,
- void (*printer) __P((void *, char *, ...)),
- void *arg));
- /* Process a received data packet */
- void (*datainput) __P((int unit, u_char *pkt, int len));
- bool enabled_flag; /* 0 iff protocol is disabled */
- char *name; /* Text name of protocol */
- char *data_name; /* Text name of corresponding data protocol */
- option_t *options; /* List of command-line options */
- /* Check requested options, assign defaults */
- void (*check_options) __P((void));
- /* Configure interface for demand-dial */
- int (*demand_conf) __P((int unit));
- /* Say whether to bring up link for this pkt */
- int (*active_pkt) __P((u_char *pkt, int len));
-};
-
-/* Table of pointers to supported protocols */
-extern struct protent *protocols[];
-
-/*
- * This struct contains pointers to a set of procedures for
- * doing operations on a "channel". A channel provides a way
- * to send and receive PPP packets - the canonical example is
- * a serial port device in PPP line discipline (or equivalently
- * with PPP STREAMS modules pushed onto it).
- */
-struct channel {
- /* set of options for this channel */
- option_t *options;
- /* find and process a per-channel options file */
- void (*process_extra_options) __P((void));
- /* check all the options that have been given */
- void (*check_options) __P((void));
- /* get the channel ready to do PPP, return a file descriptor */
- int (*connect) __P((void));
- /* we're finished with the channel */
- void (*disconnect) __P((void));
- /* put the channel into PPP `mode' */
- int (*establish_ppp) __P((int));
- /* take the channel out of PPP `mode', restore loopback if demand */
- void (*disestablish_ppp) __P((int));
- /* set the transmit-side PPP parameters of the channel */
- void (*send_config) __P((int, u_int32_t, int, int));
- /* set the receive-side PPP parameters of the channel */
- void (*recv_config) __P((int, u_int32_t, int, int));
- /* cleanup on error or normal exit */
- void (*cleanup) __P((void));
- /* close the device, called in children after fork */
- void (*close) __P((void));
-};
-
-extern struct channel *the_channel;
-
-#define ppp_send_config(unit, mtu, accm, pc, acc) \
-do { \
- if (the_channel->send_config) \
- (*the_channel->send_config)((mtu), (accm), (pc), (acc)); \
-} while (0)
-
-#define ppp_recv_config(unit, mtu, accm, pc, acc) \
-do { \
- if (the_channel->send_config) \
- (*the_channel->recv_config)((mtu), (accm), (pc), (acc)); \
-} while (0)
-
-/*
- * Prototypes.
- */
-
-/* Procedures exported from main.c. */
-void set_ifunit __P((int)); /* set stuff that depends on ifunit */
-void detach __P((void)); /* Detach from controlling tty */
-void die __P((int)); /* Cleanup and exit */
-void quit __P((void)); /* like die(1) */
-void novm __P((char *)); /* Say we ran out of memory, and die */
-void timeout __P((void (*func)(void *), void *arg, int s, int us));
- /* Call func(arg) after s.us seconds */
-void untimeout __P((void (*func)(void *), void *arg));
- /* Cancel call to func(arg) */
-void record_child __P((int, char *, void (*) (void *), void *));
-int device_script __P((char *cmd, int in, int out, int dont_wait));
- /* Run `cmd' with given stdin and stdout */
-pid_t run_program __P((char *prog, char **args, int must_exist,
- void (*done)(void *), void *arg));
- /* Run program prog with args in child */
-void reopen_log __P((void)); /* (re)open the connection to syslog */
-void update_link_stats __P((int)); /* Get stats at link termination */
-void script_setenv __P((char *, char *, int)); /* set script env var */
-void script_unsetenv __P((char *)); /* unset script env var */
-void new_phase __P((int)); /* signal start of new phase */
-void add_notifier __P((struct notifier **, notify_func, void *));
-void remove_notifier __P((struct notifier **, notify_func, void *));
-void notify __P((struct notifier *, int));
-
-/* Procedures exported from tty.c. */
-void tty_init __P((void));
-
-/* Procedures exported from utils.c. */
-void log_packet __P((u_char *, int, char *, int));
- /* Format a packet and log it with syslog */
-void print_string __P((char *, int, void (*) (void *, char *, ...),
- void *)); /* Format a string for output */
-int slprintf __P((char *, int, char *, ...)); /* sprintf++ */
-int vslprintf __P((char *, int, char *, va_list)); /* vsprintf++ */
-size_t strlcpy __P((char *, const char *, size_t)); /* safe strcpy */
-size_t strlcat __P((char *, const char *, size_t)); /* safe strncpy */
-void dbglog __P((char *, ...)); /* log a debug message */
-void info __P((char *, ...)); /* log an informational message */
-void notice __P((char *, ...)); /* log a notice-level message */
-void warn __P((char *, ...)); /* log a warning message */
-void error __P((char *, ...)); /* log an error message */
-void fatal __P((char *, ...)); /* log an error message and die(1) */
-void init_pr_log __P((char *, int)); /* initialize for using pr_log */
-void pr_log __P((void *, char *, ...)); /* printer fn, output to syslog */
-void end_pr_log __P((void)); /* finish up after using pr_log */
-
-/* Procedures exported from auth.c */
-void link_required __P((int)); /* we are starting to use the link */
-void link_terminated __P((int)); /* we are finished with the link */
-void link_down __P((int)); /* the LCP layer has left the Opened state */
-void link_established __P((int)); /* the link is up; authenticate now */
-void start_networks __P((void)); /* start all the network control protos */
-void np_up __P((int, int)); /* a network protocol has come up */
-void np_down __P((int, int)); /* a network protocol has gone down */
-void np_finished __P((int, int)); /* a network protocol no longer needs link */
-void auth_peer_fail __P((int, int));
- /* peer failed to authenticate itself */
-void auth_peer_success __P((int, int, char *, int));
- /* peer successfully authenticated itself */
-void auth_withpeer_fail __P((int, int));
- /* we failed to authenticate ourselves */
-void auth_withpeer_success __P((int, int));
- /* we successfully authenticated ourselves */
-void auth_check_options __P((void));
- /* check authentication options supplied */
-void auth_reset __P((int)); /* check what secrets we have */
-int check_passwd __P((int, char *, int, char *, int, char **));
- /* Check peer-supplied username/password */
-int get_secret __P((int, char *, char *, char *, int *, int));
- /* get "secret" for chap */
-int auth_ip_addr __P((int, u_int32_t));
- /* check if IP address is authorized */
-int bad_ip_adrs __P((u_int32_t));
- /* check if IP address is unreasonable */
-
-/* Procedures exported from demand.c */
-void demand_conf __P((void)); /* config interface(s) for demand-dial */
-void demand_block __P((void)); /* set all NPs to queue up packets */
-void demand_unblock __P((void)); /* set all NPs to pass packets */
-void demand_discard __P((void)); /* set all NPs to discard packets */
-void demand_rexmit __P((int)); /* retransmit saved frames for an NP */
-int loop_chars __P((unsigned char *, int)); /* process chars from loopback */
-int loop_frame __P((unsigned char *, int)); /* should we bring link up? */
-
-/* Procedures exported from multilink.c */
-void mp_check_options __P((void)); /* Check multilink-related options */
-int mp_join_bundle __P((void)); /* join our link to an appropriate bundle */
-char *epdisc_to_str __P((struct epdisc *)); /* string from endpoint discrim. */
-int str_to_epdisc __P((struct epdisc *, char *)); /* endpt disc. from str */
-
-/* Procedures exported from sys-*.c */
-void sys_init __P((void)); /* Do system-dependent initialization */
-void sys_cleanup __P((void)); /* Restore system state before exiting */
-int sys_check_options __P((void)); /* Check options specified */
-void sys_close __P((void)); /* Clean up in a child before execing */
-int ppp_available __P((void)); /* Test whether ppp kernel support exists */
-int get_pty __P((int *, int *, char *, int)); /* Get pty master/slave */
-int open_ppp_loopback __P((void)); /* Open loopback for demand-dialling */
-int tty_establish_ppp __P((int)); /* Turn serial port into a ppp interface */
-void tty_disestablish_ppp __P((int)); /* Restore port to normal operation */
-void make_new_bundle __P((int, int, int, int)); /* Create new bundle */
-int bundle_attach __P((int)); /* Attach link to existing bundle */
-void cfg_bundle __P((int, int, int, int)); /* Configure existing bundle */
-void clean_check __P((void)); /* Check if line was 8-bit clean */
-void set_up_tty __P((int, int)); /* Set up port's speed, parameters, etc. */
-void restore_tty __P((int)); /* Restore port's original parameters */
-void setdtr __P((int, int)); /* Raise or lower port's DTR line */
-void output __P((int, u_char *, int)); /* Output a PPP packet */
-void wait_input __P((struct timeval *));
- /* Wait for input, with timeout */
-void add_fd __P((int)); /* Add fd to set to wait for */
-void remove_fd __P((int)); /* Remove fd from set to wait for */
-int read_packet __P((u_char *)); /* Read PPP packet */
-int get_loop_output __P((void)); /* Read pkts from loopback */
-void tty_send_config __P((int, u_int32_t, int, int));
- /* Configure i/f transmit parameters */
-void tty_set_xaccm __P((ext_accm));
- /* Set extended transmit ACCM */
-void tty_recv_config __P((int, u_int32_t, int, int));
- /* Configure i/f receive parameters */
-int ccp_test __P((int, u_char *, int, int));
- /* Test support for compression scheme */
-void ccp_flags_set __P((int, int, int));
- /* Set kernel CCP state */
-int ccp_fatal_error __P((int)); /* Test for fatal decomp error in kernel */
-int get_idle_time __P((int, struct ppp_idle *));
- /* Find out how long link has been idle */
-int get_ppp_stats __P((int, struct pppd_stats *));
- /* Return link statistics */
-void netif_set_mtu __P((int, int)); /* Set PPP interface MTU */
-int sifvjcomp __P((int, int, int, int));
- /* Configure VJ TCP header compression */
-int sifup __P((int)); /* Configure i/f up for one protocol */
-int sifnpmode __P((int u, int proto, enum NPmode mode));
- /* Set mode for handling packets for proto */
-int sifdown __P((int)); /* Configure i/f down for one protocol */
-int sifaddr __P((int, u_int32_t, u_int32_t, u_int32_t));
- /* Configure IPv4 addresses for i/f */
-int cifaddr __P((int, u_int32_t, u_int32_t));
- /* Reset i/f IP addresses */
-#ifdef INET6
-int sif6addr __P((int, eui64_t, eui64_t));
- /* Configure IPv6 addresses for i/f */
-int cif6addr __P((int, eui64_t, eui64_t));
- /* Remove an IPv6 address from i/f */
-#endif
-int sifdefaultroute __P((int, u_int32_t, u_int32_t));
- /* Create default route through i/f */
-int cifdefaultroute __P((int, u_int32_t, u_int32_t));
- /* Delete default route through i/f */
-int sifproxyarp __P((int, u_int32_t));
- /* Add proxy ARP entry for peer */
-int cifproxyarp __P((int, u_int32_t));
- /* Delete proxy ARP entry for peer */
-u_int32_t GetMask __P((u_int32_t)); /* Get appropriate netmask for address */
-int lock __P((char *)); /* Create lock file for device */
-int relock __P((int)); /* Rewrite lock file with new pid */
-void unlock __P((void)); /* Delete previously-created lock file */
-void logwtmp __P((const char *, const char *, const char *));
- /* Write entry to wtmp file */
-int get_host_seed __P((void)); /* Get host-dependent random number seed */
-int have_route_to __P((u_int32_t)); /* Check if route to addr exists */
-#ifdef PPP_FILTER
-int set_filters __P((struct bpf_program *pass, struct bpf_program *active));
- /* Set filter programs in kernel */
-#endif
-#ifdef IPX_CHANGE
-int sipxfaddr __P((int, unsigned long, unsigned char *));
-int cipxfaddr __P((int));
-#endif
-int get_if_hwaddr __P((u_char *addr, char *name));
-char *get_first_ethernet __P((void));
-
-/* Procedures exported from options.c */
-int parse_args __P((int argc, char **argv));
- /* Parse options from arguments given */
-int options_from_file __P((char *filename, int must_exist, int check_prot,
- int privileged));
- /* Parse options from an options file */
-int options_from_user __P((void)); /* Parse options from user's .ppprc */
-int options_for_tty __P((void)); /* Parse options from /etc/ppp/options.tty */
-int options_from_list __P((struct wordlist *, int privileged));
- /* Parse options from a wordlist */
-int getword __P((FILE *f, char *word, int *newlinep, char *filename));
- /* Read a word from a file */
-void option_error __P((char *fmt, ...));
- /* Print an error message about an option */
-int int_option __P((char *, int *));
- /* Simplified number_option for decimal ints */
-void add_options __P((option_t *)); /* Add extra options */
-void check_options __P((void)); /* check values after all options parsed */
-int override_value __P((const char *, int, const char *));
- /* override value if permitted by priority */
-void print_options __P((void (*) __P((void *, char *, ...)), void *));
- /* print out values of all options */
-
-int parse_dotted_ip __P((char *, u_int32_t *));
-
-/*
- * Hooks to enable plugins to change various things.
- */
-extern int (*new_phase_hook) __P((int));
-extern int (*idle_time_hook) __P((struct ppp_idle *));
-extern int (*holdoff_hook) __P((void));
-extern int (*pap_check_hook) __P((void));
-extern int (*pap_auth_hook) __P((char *user, char *passwd, char **msgp,
- struct wordlist **paddrs,
- struct wordlist **popts));
-extern void (*pap_logout_hook) __P((void));
-extern int (*pap_passwd_hook) __P((char *user, char *passwd));
-extern void (*ip_up_hook) __P((void));
-extern void (*ip_down_hook) __P((void));
-extern void (*ip_choose_hook) __P((u_int32_t *));
-
-/*
- * Inline versions of get/put char/short/long.
- * Pointer is advanced; we assume that both arguments
- * are lvalues and will already be in registers.
- * cp MUST be u_char *.
- */
-#define GETCHAR(c, cp) { \
- (c) = *(cp)++; \
-}
-#define PUTCHAR(c, cp) { \
- *(cp)++ = (u_char) (c); \
-}
-
-
-#define GETSHORT(s, cp) { \
- (s) = *(cp)++ << 8; \
- (s) |= *(cp)++; \
-}
-#define PUTSHORT(s, cp) { \
- *(cp)++ = (u_char) ((s) >> 8); \
- *(cp)++ = (u_char) (s); \
-}
-
-#define GETLONG(l, cp) { \
- (l) = *(cp)++ << 8; \
- (l) |= *(cp)++; (l) <<= 8; \
- (l) |= *(cp)++; (l) <<= 8; \
- (l) |= *(cp)++; \
-}
-#define PUTLONG(l, cp) { \
- *(cp)++ = (u_char) ((l) >> 24); \
- *(cp)++ = (u_char) ((l) >> 16); \
- *(cp)++ = (u_char) ((l) >> 8); \
- *(cp)++ = (u_char) (l); \
-}
-
-#define INCPTR(n, cp) ((cp) += (n))
-#define DECPTR(n, cp) ((cp) -= (n))
-
-/*
- * System dependent definitions for user-level 4.3BSD UNIX implementation.
- */
-
-#define TIMEOUT(r, f, t) timeout((r), (f), (t), 0)
-#define UNTIMEOUT(r, f) untimeout((r), (f))
-
-#define BCOPY(s, d, l) memcpy(d, s, l)
-#define BZERO(s, n) memset(s, 0, n)
-
-#define PRINTMSG(m, l) { info("Remote message: %0.*v", l, m); }
-
-/*
- * MAKEHEADER - Add Header fields to a packet.
- */
-#define MAKEHEADER(p, t) { \
- PUTCHAR(PPP_ALLSTATIONS, p); \
- PUTCHAR(PPP_UI, p); \
- PUTSHORT(t, p); }
-
-/*
- * Exit status values.
- */
-#define EXIT_OK 0
-#define EXIT_FATAL_ERROR 1
-#define EXIT_OPTION_ERROR 2
-#define EXIT_NOT_ROOT 3
-#define EXIT_NO_KERNEL_SUPPORT 4
-#define EXIT_USER_REQUEST 5
-#define EXIT_LOCK_FAILED 6
-#define EXIT_OPEN_FAILED 7
-#define EXIT_CONNECT_FAILED 8
-#define EXIT_PTYCMD_FAILED 9
-#define EXIT_NEGOTIATION_FAILED 10
-#define EXIT_PEER_AUTH_FAILED 11
-#define EXIT_IDLE_TIMEOUT 12
-#define EXIT_CONNECT_TIME 13
-#define EXIT_CALLBACK 14
-#define EXIT_PEER_DEAD 15
-#define EXIT_HANGUP 16
-#define EXIT_LOOPBACK 17
-#define EXIT_INIT_FAILED 18
-#define EXIT_AUTH_TOPEER_FAILED 19
-
-/*
- * Debug macros. Slightly useful for finding bugs in pppd, not particularly
- * useful for finding out why your connection isn't being established.
- */
-#ifdef DEBUGALL
-#define DEBUGMAIN 1
-#define DEBUGFSM 1
-#define DEBUGLCP 1
-#define DEBUGIPCP 1
-#define DEBUGIPV6CP 1
-#define DEBUGUPAP 1
-#define DEBUGCHAP 1
-#endif
-
-#ifndef LOG_PPP /* we use LOG_LOCAL2 for syslog by default */
-#if defined(DEBUGMAIN) || defined(DEBUGFSM) || defined(DEBUGSYS) \
- || defined(DEBUGLCP) || defined(DEBUGIPCP) || defined(DEBUGUPAP) \
- || defined(DEBUGCHAP) || defined(DEBUG) || defined(DEBUGIPV6CP)
-#define LOG_PPP LOG_LOCAL2
-#else
-#define LOG_PPP LOG_DAEMON
-#endif
-#endif /* LOG_PPP */
-
-#ifdef DEBUGMAIN
-#define MAINDEBUG(x) if (debug) dbglog x
-#else
-#define MAINDEBUG(x)
-#endif
-
-#ifdef DEBUGSYS
-#define SYSDEBUG(x) if (debug) dbglog x
-#else
-#define SYSDEBUG(x)
-#endif
-
-#ifdef DEBUGFSM
-#define FSMDEBUG(x) if (debug) dbglog x
-#else
-#define FSMDEBUG(x)
-#endif
-
-#ifdef DEBUGLCP
-#define LCPDEBUG(x) if (debug) dbglog x
-#else
-#define LCPDEBUG(x)
-#endif
-
-#ifdef DEBUGIPCP
-#define IPCPDEBUG(x) if (debug) dbglog x
-#else
-#define IPCPDEBUG(x)
-#endif
-
-#ifdef DEBUGIPV6CP
-#define IPV6CPDEBUG(x) if (debug) dbglog x
-#else
-#define IPV6CPDEBUG(x)
-#endif
-
-#ifdef DEBUGUPAP
-#define UPAPDEBUG(x) if (debug) dbglog x
-#else
-#define UPAPDEBUG(x)
-#endif
-
-#ifdef DEBUGCHAP
-#define CHAPDEBUG(x) if (debug) dbglog x
-#else
-#define CHAPDEBUG(x)
-#endif
-
-#ifdef DEBUGIPXCP
-#define IPXCPDEBUG(x) if (debug) dbglog x
-#else
-#define IPXCPDEBUG(x)
-#endif
-
-#ifndef SIGTYPE
-#if defined(sun) || defined(SYSV) || defined(POSIX_SOURCE)
-#define SIGTYPE void
-#else
-#define SIGTYPE int
-#endif /* defined(sun) || defined(SYSV) || defined(POSIX_SOURCE) */
-#endif /* SIGTYPE */
-
-#ifndef MIN
-#define MIN(a, b) ((a) < (b)? (a): (b))
-#endif
-#ifndef MAX
-#define MAX(a, b) ((a) > (b)? (a): (b))
-#endif
-
-#endif /* __PPP_H__ */
diff --git a/mdk-stage1/ppp/pppd/sys-linux.c b/mdk-stage1/ppp/pppd/sys-linux.c
deleted file mode 100644
index 3ab92dfba..000000000
--- a/mdk-stage1/ppp/pppd/sys-linux.c
+++ /dev/null
@@ -1,2672 +0,0 @@
-/*
- * sys-linux.c - System-dependent procedures for setting up
- * PPP interfaces on Linux systems
- *
- * Copyright (c) 1989 Carnegie Mellon University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Carnegie Mellon University. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#include <sys/ioctl.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/time.h>
-#include <sys/errno.h>
-#include <sys/file.h>
-#include <sys/stat.h>
-#include <sys/utsname.h>
-#include <sys/sysmacros.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <syslog.h>
-#include <string.h>
-#include <time.h>
-#include <memory.h>
-#include <utmp.h>
-#include <mntent.h>
-#include <signal.h>
-#include <fcntl.h>
-#include <ctype.h>
-#include <termios.h>
-#include <unistd.h>
-
-/* This is in netdevice.h. However, this compile will fail miserably if
- you attempt to include netdevice.h because it has so many references
- to __memcpy functions which it should not attempt to do. So, since I
- really don't use it, but it must be defined, define it now. */
-
-#ifndef MAX_ADDR_LEN
-#define MAX_ADDR_LEN 7
-#endif
-
-#if (defined(__GLIBC__) && __GLIBC__ >= 2) || defined(__dietlibc__)
-#include <asm/types.h> /* glibc 2 conflicts with linux/types.h */
-#include <net/if.h>
-#include <net/if_arp.h>
-#include <net/route.h>
-#include <netinet/if_ether.h>
-#else
-#include <linux/types.h>
-#include <linux/if.h>
-#include <linux/if_arp.h>
-#include <linux/route.h>
-#include <linux/if_ether.h>
-#endif
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#include <linux/ppp_defs.h>
-#include <linux/if_ppp.h>
-
-#include "pppd.h"
-#include "fsm.h"
-#include "ipcp.h"
-
-#ifdef IPX_CHANGE
-#include "ipxcp.h"
-#if __GLIBC__ >= 2 && \
- !(defined(__powerpc__) && __GLIBC__ == 2 && __GLIBC_MINOR__ == 0)
-#include <netipx/ipx.h>
-#else
-#include <linux/ipx.h>
-#endif
-#endif /* IPX_CHANGE */
-
-#ifdef PPP_FILTER
-#include <net/bpf.h>
-#include <linux/filter.h>
-#endif /* PPP_FILTER */
-
-#ifdef LOCKLIB
-#include <sys/locks.h>
-#endif
-
-#ifdef INET6
-#ifndef _LINUX_IN6_H
-/*
- * This is in linux/include/net/ipv6.h.
- */
-
-struct in6_ifreq {
- struct in6_addr ifr6_addr;
- __u32 ifr6_prefixlen;
- unsigned int ifr6_ifindex;
-};
-#endif
-
-#define IN6_LLADDR_FROM_EUI64(sin6, eui64) do { \
- memset(&sin6.s6_addr, 0, sizeof(struct in6_addr)); \
- sin6.s6_addr16[0] = htons(0xfe80); \
- eui64_copy(eui64, sin6.s6_addr32[2]); \
- } while (0)
-
-#endif /* INET6 */
-
-/* We can get an EIO error on an ioctl if the modem has hung up */
-#define ok_error(num) ((num)==EIO)
-
-static int tty_disc = N_TTY; /* The TTY discipline */
-static int ppp_disc = N_PPP; /* The PPP discpline */
-static int initfdflags = -1; /* Initial file descriptor flags for fd */
-static int ppp_fd = -1; /* fd which is set to PPP discipline */
-static int sock_fd = -1; /* socket for doing interface ioctls */
-static int slave_fd = -1;
-static int master_fd = -1;
-#ifdef INET6
-static int sock6_fd = -1;
-#endif /* INET6 */
-static int ppp_dev_fd = -1; /* fd for /dev/ppp (new style driver) */
-static int chindex; /* channel index (new style driver) */
-
-static fd_set in_fds; /* set of fds that wait_input waits for */
-static int max_in_fd; /* highest fd set in in_fds */
-
-static int has_proxy_arp = 0;
-static int driver_version = 0;
-static int driver_modification = 0;
-static int driver_patch = 0;
-static int driver_is_old = 0;
-static int restore_term = 0; /* 1 => we've munged the terminal */
-static struct termios inittermios; /* Initial TTY termios */
-
-static int new_style_driver = 0;
-
-static char loop_name[20];
-static unsigned char inbuf[512]; /* buffer for chars read from loopback */
-
-static int if_is_up; /* Interface has been marked up */
-static u_int32_t default_route_gateway; /* Gateway for default route added */
-static u_int32_t proxy_arp_addr; /* Addr for proxy arp entry added */
-static char proxy_arp_dev[16]; /* Device for proxy arp entry */
-static u_int32_t our_old_addr; /* for detecting address changes */
-static int dynaddr_set; /* 1 if ip_dynaddr set */
-static int looped; /* 1 if using loop */
-static int link_mtu; /* mtu for the link (not bundle) */
-
-static struct utsname utsname; /* for the kernel version */
-static int kernel_version;
-#define KVERSION(j,n,p) ((j)*1000000 + (n)*1000 + (p))
-
-#define MAX_IFS 100
-
-#define FLAGS_GOOD (IFF_UP | IFF_BROADCAST)
-#define FLAGS_MASK (IFF_UP | IFF_BROADCAST | \
- IFF_POINTOPOINT | IFF_LOOPBACK | IFF_NOARP)
-
-#define SIN_ADDR(x) (((struct sockaddr_in *) (&(x)))->sin_addr.s_addr)
-
-/* Prototypes for procedures local to this file. */
-static int get_flags (int fd);
-static void set_flags (int fd, int flags);
-static int translate_speed (int bps);
-static int baud_rate_of (int speed);
-static void close_route_table (void);
-static int open_route_table (void);
-static int read_route_table (struct rtentry *rt);
-static int defaultroute_exists (struct rtentry *rt);
-static int get_ether_addr (u_int32_t ipaddr, struct sockaddr *hwaddr,
- char *name, int namelen);
-static void decode_version (char *buf, int *version, int *mod, int *patch);
-static int set_kdebugflag(int level);
-static int ppp_registered(void);
-static int make_ppp_unit(void);
-static void restore_loop(void); /* Transfer ppp unit back to loopback */
-
-extern u_char inpacket_buf[]; /* borrowed from main.c */
-
-/*
- * SET_SA_FAMILY - set the sa_family field of a struct sockaddr,
- * if it exists.
- */
-
-#define SET_SA_FAMILY(addr, family) \
- memset ((char *) &(addr), '\0', sizeof(addr)); \
- addr.sa_family = (family);
-
-/*
- * Determine if the PPP connection should still be present.
- */
-
-extern int hungup;
-
-/* new_fd is the fd of a tty */
-static void set_ppp_fd (int new_fd)
-{
- SYSDEBUG ((LOG_DEBUG, "setting ppp_fd to %d\n", new_fd));
- ppp_fd = new_fd;
- if (!new_style_driver)
- ppp_dev_fd = new_fd;
-}
-
-static int still_ppp(void)
-{
- if (new_style_driver)
- return !hungup && ppp_fd >= 0;
- if (!hungup || ppp_fd == slave_fd)
- return 1;
- if (slave_fd >= 0) {
- set_ppp_fd(slave_fd);
- return 1;
- }
- return 0;
-}
-
-/********************************************************************
- *
- * Functions to read and set the flags value in the device driver
- */
-
-static int get_flags (int fd)
-{
- int flags;
-
- if (ioctl(fd, PPPIOCGFLAGS, (caddr_t) &flags) < 0) {
- if ( ok_error (errno) )
- flags = 0;
- else
- fatal("ioctl(PPPIOCGFLAGS): %m");
- }
-
- SYSDEBUG ((LOG_DEBUG, "get flags = %x\n", flags));
- return flags;
-}
-
-/********************************************************************/
-
-static void set_flags (int fd, int flags)
-{
- SYSDEBUG ((LOG_DEBUG, "set flags = %x\n", flags));
-
- if (ioctl(fd, PPPIOCSFLAGS, (caddr_t) &flags) < 0) {
- if (! ok_error (errno) )
- fatal("ioctl(PPPIOCSFLAGS, %x): %m", flags, errno);
- }
-}
-
-/********************************************************************
- *
- * sys_init - System-dependent initialization.
- */
-
-void sys_init(void)
-{
- int flags;
-
- if (new_style_driver) {
- ppp_dev_fd = open("/dev/ppp", O_RDWR);
- if (ppp_dev_fd < 0)
- fatal("Couldn't open /dev/ppp: %m");
- flags = fcntl(ppp_dev_fd, F_GETFL);
- if (flags == -1
- || fcntl(ppp_dev_fd, F_SETFL, flags | O_NONBLOCK) == -1)
- warn("Couldn't set /dev/ppp to nonblock: %m");
- }
-
- /* Get an internet socket for doing socket ioctls. */
- sock_fd = socket(AF_INET, SOCK_DGRAM, 0);
- if (sock_fd < 0)
- fatal("Couldn't create IP socket: %m(%d)", errno);
-
-#ifdef INET6
- sock6_fd = socket(AF_INET6, SOCK_DGRAM, 0);
- if (sock6_fd < 0)
- sock6_fd = -errno; /* save errno for later */
-#endif
-
- FD_ZERO(&in_fds);
- max_in_fd = 0;
-}
-
-/********************************************************************
- *
- * sys_cleanup - restore any system state we modified before exiting:
- * mark the interface down, delete default route and/or proxy arp entry.
- * This shouldn't call die() because it's called from die().
- */
-
-void sys_cleanup(void)
-{
-/*
- * Take down the device
- */
- if (if_is_up) {
- if_is_up = 0;
- sifdown(0);
- }
-/*
- * Delete any routes through the device.
- */
- if (default_route_gateway != 0)
- cifdefaultroute(0, 0, default_route_gateway);
-
- if (has_proxy_arp)
- cifproxyarp(0, proxy_arp_addr);
-}
-
-/********************************************************************
- *
- * sys_close - Clean up in a child process before execing.
- */
-void
-sys_close(void)
-{
- if (new_style_driver)
- close(ppp_dev_fd);
- if (sock_fd >= 0)
- close(sock_fd);
- if (slave_fd >= 0)
- close(slave_fd);
- if (master_fd >= 0)
- close(master_fd);
- closelog();
-}
-
-/********************************************************************
- *
- * set_kdebugflag - Define the debugging level for the kernel
- */
-
-static int set_kdebugflag (int requested_level)
-{
- if (new_style_driver && ifunit < 0)
- return 1;
- if (ioctl(ppp_dev_fd, PPPIOCSDEBUG, &requested_level) < 0) {
- if ( ! ok_error (errno) )
- error("ioctl(PPPIOCSDEBUG): %m");
- return (0);
- }
- SYSDEBUG ((LOG_INFO, "set kernel debugging level to %d",
- requested_level));
- return (1);
-}
-
-/********************************************************************
- *
- * tty_establish_ppp - Turn the serial port into a ppp interface.
- */
-
-int tty_establish_ppp (int tty_fd)
-{
- int x;
- int fd = -1;
-
-/*
- * Ensure that the tty device is in exclusive mode.
- */
- if (ioctl(tty_fd, TIOCEXCL, 0) < 0) {
- if ( ! ok_error ( errno ))
- warn("Couldn't make tty exclusive: %m");
- }
-/*
- * Demand mode - prime the old ppp device to relinquish the unit.
- */
- if (!new_style_driver && looped
- && ioctl(slave_fd, PPPIOCXFERUNIT, 0) < 0) {
- error("ioctl(transfer ppp unit): %m");
- return -1;
- }
-/*
- * Set the current tty to the PPP discpline
- */
-
-#ifndef N_SYNC_PPP
-#define N_SYNC_PPP 14
-#endif
- ppp_disc = (new_style_driver && sync_serial)? N_SYNC_PPP: N_PPP;
- if (ioctl(tty_fd, TIOCSETD, &ppp_disc) < 0) {
- if ( ! ok_error (errno) ) {
- error("Couldn't set tty to PPP discipline: %m");
- return -1;
- }
- }
-
- if (new_style_driver) {
- /* Open another instance of /dev/ppp and connect the channel to it */
- int flags;
-
- if (ioctl(tty_fd, PPPIOCGCHAN, &chindex) == -1) {
- error("Couldn't get channel number: %m");
- goto err;
- }
- dbglog("using channel %d", chindex);
- fd = open("/dev/ppp", O_RDWR);
- if (fd < 0) {
- error("Couldn't reopen /dev/ppp: %m");
- goto err;
- }
- if (ioctl(fd, PPPIOCATTCHAN, &chindex) < 0) {
- error("Couldn't attach to channel %d: %m", chindex);
- goto err_close;
- }
- flags = fcntl(fd, F_GETFL);
- if (flags == -1 || fcntl(fd, F_SETFL, flags | O_NONBLOCK) == -1)
- warn("Couldn't set /dev/ppp (channel) to nonblock: %m");
- set_ppp_fd(fd);
-
- if (!looped)
- ifunit = -1;
- if (!looped && !multilink) {
- /*
- * Create a new PPP unit.
- */
- if (make_ppp_unit() < 0)
- goto err_close;
- }
-
- if (looped)
- set_flags(ppp_dev_fd, get_flags(ppp_dev_fd) & ~SC_LOOP_TRAFFIC);
-
- if (!multilink) {
- add_fd(ppp_dev_fd);
- if (ioctl(fd, PPPIOCCONNECT, &ifunit) < 0) {
- error("Couldn't attach to PPP unit %d: %m", ifunit);
- goto err_close;
- }
- }
-
- } else {
- /*
- * Old-style driver: find out which interface we were given.
- */
- set_ppp_fd (tty_fd);
- if (ioctl(tty_fd, PPPIOCGUNIT, &x) < 0) {
- if (ok_error (errno))
- goto err;
- fatal("ioctl(PPPIOCGUNIT): %m(%d)", errno);
- }
- /* Check that we got the same unit again. */
- if (looped && x != ifunit)
- fatal("transfer_ppp failed: wanted unit %d, got %d", ifunit, x);
- ifunit = x;
-
- /*
- * Fetch the initial file flags and reset blocking mode on the file.
- */
- initfdflags = fcntl(tty_fd, F_GETFL);
- if (initfdflags == -1 ||
- fcntl(tty_fd, F_SETFL, initfdflags | O_NONBLOCK) == -1) {
- if ( ! ok_error (errno))
- warn("Couldn't set device to non-blocking mode: %m");
- }
- }
-
- looped = 0;
-
- /*
- * Enable debug in the driver if requested.
- */
- if (!looped)
- set_kdebugflag (kdebugflag);
-
-#define SC_RCVB (SC_RCV_B7_0 | SC_RCV_B7_1 | SC_RCV_EVNP | SC_RCV_ODDP)
-#define SC_LOGB (SC_DEBUG | SC_LOG_INPKT | SC_LOG_OUTPKT | SC_LOG_RAWIN \
- | SC_LOG_FLUSH)
-
- set_flags(ppp_fd, ((get_flags(ppp_fd) & ~(SC_RCVB | SC_LOGB))
- | ((kdebugflag * SC_DEBUG) & SC_LOGB)));
-
- SYSDEBUG ((LOG_NOTICE, "Using version %d.%d.%d of PPP driver",
- driver_version, driver_modification, driver_patch));
-
- return ppp_fd;
-
- err_close:
- close(fd);
- err:
- if (ioctl(tty_fd, TIOCSETD, &tty_disc) < 0 && !ok_error(errno))
- warn("Couldn't reset tty to normal line discipline: %m");
- return -1;
-}
-
-/********************************************************************
- *
- * tty_disestablish_ppp - Restore the serial port to normal operation,
- * and reconnect the ppp unit to the loopback if in demand mode.
- * This shouldn't call die() because it's called from die().
- */
-
-void tty_disestablish_ppp(int tty_fd)
-{
- if (demand)
- restore_loop();
- if (!hungup) {
-/*
- * Flush the tty output buffer so that the TIOCSETD doesn't hang.
- */
- if (tcflush(tty_fd, TCIOFLUSH) < 0)
- warn("tcflush failed: %m");
-/*
- * Restore the previous line discipline
- */
- if (ioctl(tty_fd, TIOCSETD, &tty_disc) < 0) {
- if ( ! ok_error (errno))
- error("ioctl(TIOCSETD, N_TTY): %m");
- }
-
- if (ioctl(tty_fd, TIOCNXCL, 0) < 0) {
- if ( ! ok_error (errno))
- warn("ioctl(TIOCNXCL): %m(%d)", errno);
- }
-
- /* Reset non-blocking mode on fd. */
- if (initfdflags != -1 && fcntl(tty_fd, F_SETFL, initfdflags) < 0) {
- if ( ! ok_error (errno))
- warn("Couldn't restore device fd flags: %m");
- }
- }
- initfdflags = -1;
-
- if (new_style_driver) {
- close(ppp_fd);
- ppp_fd = -1;
- if (!looped && ifunit >= 0 && ioctl(ppp_dev_fd, PPPIOCDETACH) < 0)
- error("Couldn't release PPP unit: %m");
- if (!multilink)
- remove_fd(ppp_dev_fd);
- }
-}
-
-/*
- * make_ppp_unit - make a new ppp unit for ppp_dev_fd.
- * Assumes new_style_driver.
- */
-static int make_ppp_unit()
-{
- int x;
-
- ifunit = req_unit;
- x = ioctl(ppp_dev_fd, PPPIOCNEWUNIT, &ifunit);
- if (x < 0 && req_unit >= 0 && errno == EEXIST) {
- warn("Couldn't allocate PPP unit %d as it is already in use");
- ifunit = -1;
- x = ioctl(ppp_dev_fd, PPPIOCNEWUNIT, &ifunit);
- }
- if (x < 0)
- error("Couldn't create new ppp unit: %m");
- return x;
-}
-
-/*
- * cfg_bundle - configure the existing bundle.
- * Used in demand mode.
- */
-void cfg_bundle(int mrru, int mtru, int rssn, int tssn)
-{
- int flags;
-
- if (!new_style_driver)
- return;
-
- /* set the mrru, mtu and flags */
- if (ioctl(ppp_dev_fd, PPPIOCSMRRU, &mrru) < 0)
- error("Couldn't set MRRU: %m");
- flags = get_flags(ppp_dev_fd);
- flags &= ~(SC_MP_SHORTSEQ | SC_MP_XSHORTSEQ);
- flags |= (rssn? SC_MP_SHORTSEQ: 0) | (tssn? SC_MP_XSHORTSEQ: 0)
- | (mrru? SC_MULTILINK: 0);
-
- set_flags(ppp_dev_fd, flags);
-
- /* connect up the channel */
- if (ioctl(ppp_fd, PPPIOCCONNECT, &ifunit) < 0)
- fatal("Couldn't attach to PPP unit %d: %m", ifunit);
- add_fd(ppp_dev_fd);
-}
-
-/*
- * make_new_bundle - create a new PPP unit (i.e. a bundle)
- * and connect our channel to it. This should only get called
- * if `multilink' was set at the time establish_ppp was called.
- * In demand mode this uses our existing bundle instead of making
- * a new one.
- */
-void make_new_bundle(int mrru, int mtru, int rssn, int tssn)
-{
- if (!new_style_driver)
- return;
-
- /* make us a ppp unit */
- if (make_ppp_unit() < 0)
- die(1);
-
- /* set the mrru and flags */
- cfg_bundle(mrru, mtru, rssn, tssn);
-}
-
-/*
- * bundle_attach - attach our link to a given PPP unit.
- * We assume the unit is controlled by another pppd.
- */
-int bundle_attach(int ifnum)
-{
- if (!new_style_driver)
- return -1;
-
- if (ioctl(ppp_dev_fd, PPPIOCATTACH, &ifnum) < 0) {
- if (errno == ENXIO)
- return 0; /* doesn't still exist */
- fatal("Couldn't attach to interface unit %d: %m\n", ifnum);
- }
- if (ioctl(ppp_fd, PPPIOCCONNECT, &ifnum) < 0)
- fatal("Couldn't connect to interface unit %d: %m", ifnum);
- set_flags(ppp_dev_fd, get_flags(ppp_dev_fd) | SC_MULTILINK);
-
- ifunit = ifnum;
- return 1;
-}
-
-/********************************************************************
- *
- * clean_check - Fetch the flags for the device and generate
- * appropriate error messages.
- */
-void clean_check(void)
-{
- int x;
- char *s;
-
- if (still_ppp()) {
- if (ioctl(ppp_fd, PPPIOCGFLAGS, (caddr_t) &x) == 0) {
- s = NULL;
- switch (~x & (SC_RCV_B7_0|SC_RCV_B7_1|SC_RCV_EVNP|SC_RCV_ODDP)) {
- case SC_RCV_B7_0:
- s = "all had bit 7 set to 1";
- break;
-
- case SC_RCV_B7_1:
- s = "all had bit 7 set to 0";
- break;
-
- case SC_RCV_EVNP:
- s = "all had odd parity";
- break;
-
- case SC_RCV_ODDP:
- s = "all had even parity";
- break;
- }
-
- if (s != NULL) {
- warn("Receive serial link is not 8-bit clean:");
- warn("Problem: %s", s);
- }
- }
- }
-}
-
-
-/*
- * List of valid speeds.
- */
-
-struct speed {
- int speed_int, speed_val;
-} speeds[] = {
-#ifdef B50
- { 50, B50 },
-#endif
-#ifdef B75
- { 75, B75 },
-#endif
-#ifdef B110
- { 110, B110 },
-#endif
-#ifdef B134
- { 134, B134 },
-#endif
-#ifdef B150
- { 150, B150 },
-#endif
-#ifdef B200
- { 200, B200 },
-#endif
-#ifdef B300
- { 300, B300 },
-#endif
-#ifdef B600
- { 600, B600 },
-#endif
-#ifdef B1200
- { 1200, B1200 },
-#endif
-#ifdef B1800
- { 1800, B1800 },
-#endif
-#ifdef B2000
- { 2000, B2000 },
-#endif
-#ifdef B2400
- { 2400, B2400 },
-#endif
-#ifdef B3600
- { 3600, B3600 },
-#endif
-#ifdef B4800
- { 4800, B4800 },
-#endif
-#ifdef B7200
- { 7200, B7200 },
-#endif
-#ifdef B9600
- { 9600, B9600 },
-#endif
-#ifdef B19200
- { 19200, B19200 },
-#endif
-#ifdef B38400
- { 38400, B38400 },
-#endif
-#ifdef B57600
- { 57600, B57600 },
-#endif
-#ifdef B76800
- { 76800, B76800 },
-#endif
-#ifdef B115200
- { 115200, B115200 },
-#endif
-#ifdef EXTA
- { 19200, EXTA },
-#endif
-#ifdef EXTB
- { 38400, EXTB },
-#endif
-#ifdef B230400
- { 230400, B230400 },
-#endif
-#ifdef B460800
- { 460800, B460800 },
-#endif
-#ifdef B921600
- { 921600, B921600 },
-#endif
- { 0, 0 }
-};
-
-/********************************************************************
- *
- * Translate from bits/second to a speed_t.
- */
-
-static int translate_speed (int bps)
-{
- struct speed *speedp;
-
- if (bps != 0) {
- for (speedp = speeds; speedp->speed_int; speedp++) {
- if (bps == speedp->speed_int)
- return speedp->speed_val;
- }
- warn("speed %d not supported", bps);
- }
- return 0;
-}
-
-/********************************************************************
- *
- * Translate from a speed_t to bits/second.
- */
-
-static int baud_rate_of (int speed)
-{
- struct speed *speedp;
-
- if (speed != 0) {
- for (speedp = speeds; speedp->speed_int; speedp++) {
- if (speed == speedp->speed_val)
- return speedp->speed_int;
- }
- }
- return 0;
-}
-
-/********************************************************************
- *
- * set_up_tty: Set up the serial port on `fd' for 8 bits, no parity,
- * at the requested speed, etc. If `local' is true, set CLOCAL
- * regardless of whether the modem option was specified.
- */
-
-void set_up_tty(int tty_fd, int local)
-{
- int speed;
- struct termios tios;
-
- setdtr(tty_fd, 1);
- if (tcgetattr(tty_fd, &tios) < 0) {
- if (!ok_error(errno))
- fatal("tcgetattr: %m(%d)", errno);
- return;
- }
-
- if (!restore_term)
- inittermios = tios;
-
- tios.c_cflag &= ~(CSIZE | CSTOPB | PARENB | CLOCAL);
- tios.c_cflag |= CS8 | CREAD | HUPCL;
-
- tios.c_iflag = IGNBRK | IGNPAR;
- tios.c_oflag = 0;
- tios.c_lflag = 0;
- tios.c_cc[VMIN] = 1;
- tios.c_cc[VTIME] = 0;
-
- if (local || !modem)
- tios.c_cflag ^= (CLOCAL | HUPCL);
-
- switch (crtscts) {
- case 1:
- tios.c_cflag |= CRTSCTS;
- break;
-
- case -2:
- tios.c_iflag |= IXON | IXOFF;
- tios.c_cc[VSTOP] = 0x13; /* DC3 = XOFF = ^S */
- tios.c_cc[VSTART] = 0x11; /* DC1 = XON = ^Q */
- break;
-
- case -1:
- tios.c_cflag &= ~CRTSCTS;
- break;
-
- default:
- break;
- }
-
- speed = translate_speed(inspeed);
- if (speed) {
- cfsetospeed (&tios, speed);
- cfsetispeed (&tios, speed);
- }
-/*
- * We can't proceed if the serial port speed is B0,
- * since that implies that the serial port is disabled.
- */
- else {
- speed = cfgetospeed(&tios);
- if (speed == B0)
- fatal("Baud rate for %s is 0; need explicit baud rate", devnam);
- }
-
- if (tcsetattr(tty_fd, TCSAFLUSH, &tios) < 0)
- if (!ok_error(errno))
- fatal("tcsetattr: %m");
-
- baud_rate = baud_rate_of(speed);
- restore_term = 1;
-}
-
-/********************************************************************
- *
- * setdtr - control the DTR line on the serial port.
- * This is called from die(), so it shouldn't call die().
- */
-
-void setdtr (int tty_fd, int on)
-{
- int modembits = TIOCM_DTR;
-
- ioctl(tty_fd, (on ? TIOCMBIS : TIOCMBIC), &modembits);
-}
-
-/********************************************************************
- *
- * restore_tty - restore the terminal to the saved settings.
- */
-
-void restore_tty (int tty_fd)
-{
- if (restore_term) {
- restore_term = 0;
-/*
- * Turn off echoing, because otherwise we can get into
- * a loop with the tty and the modem echoing to each other.
- * We presume we are the sole user of this tty device, so
- * when we close it, it will revert to its defaults anyway.
- */
- if (!default_device)
- inittermios.c_lflag &= ~(ECHO | ECHONL);
-
- if (tcsetattr(tty_fd, TCSAFLUSH, &inittermios) < 0) {
- if (! ok_error (errno))
- warn("tcsetattr: %m");
- }
- }
-}
-
-/********************************************************************
- *
- * output - Output PPP packet.
- */
-
-void output (int unit, unsigned char *p, int len)
-{
- int fd = ppp_fd;
- int proto;
-
- if (debug)
- dbglog("sent %P", p, len);
-
- if (len < PPP_HDRLEN)
- return;
- if (new_style_driver) {
- p += 2;
- len -= 2;
- proto = (p[0] << 8) + p[1];
- if (ifunit >= 0 && !(proto >= 0xc000 || proto == PPP_CCPFRAG))
- fd = ppp_dev_fd;
- }
- if (write(fd, p, len) < 0) {
- if (errno == EWOULDBLOCK || errno == ENOBUFS
- || errno == ENXIO || errno == EIO || errno == EINTR)
- warn("write: warning: %m (%d)", errno);
- else
- error("write: %m (%d)", errno);
- }
-}
-
-/********************************************************************
- *
- * wait_input - wait until there is data available,
- * for the length of time specified by *timo (indefinite
- * if timo is NULL).
- */
-
-void wait_input(struct timeval *timo)
-{
- fd_set ready, exc;
- int n;
-
- ready = in_fds;
- exc = in_fds;
- n = select(max_in_fd + 1, &ready, NULL, &exc, timo);
- if (n < 0 && errno != EINTR)
- fatal("select: %m(%d)", errno);
-}
-
-/*
- * add_fd - add an fd to the set that wait_input waits for.
- */
-void add_fd(int fd)
-{
- FD_SET(fd, &in_fds);
- if (fd > max_in_fd)
- max_in_fd = fd;
-}
-
-/*
- * remove_fd - remove an fd from the set that wait_input waits for.
- */
-void remove_fd(int fd)
-{
- FD_CLR(fd, &in_fds);
-}
-
-
-/********************************************************************
- *
- * read_packet - get a PPP packet from the serial device.
- */
-
-int read_packet (unsigned char *buf)
-{
- int len, nr;
-
- len = PPP_MRU + PPP_HDRLEN;
- if (new_style_driver) {
- *buf++ = PPP_ALLSTATIONS;
- *buf++ = PPP_UI;
- len -= 2;
- }
- nr = -1;
- if (ppp_fd >= 0) {
- nr = read(ppp_fd, buf, len);
- if (nr < 0 && errno != EWOULDBLOCK && errno != EIO && errno != EINTR)
- error("read: %m");
- if (nr < 0 && errno == ENXIO)
- return 0;
- }
- if (nr < 0 && new_style_driver && ifunit >= 0) {
- /* N.B. we read ppp_fd first since LCP packets come in there. */
- nr = read(ppp_dev_fd, buf, len);
- if (nr < 0 && errno != EWOULDBLOCK && errno != EIO && errno != EINTR)
- error("read /dev/ppp: %m");
- if (nr < 0 && errno == ENXIO)
- return 0;
- }
- return (new_style_driver && nr > 0)? nr+2: nr;
-}
-
-/********************************************************************
- *
- * get_loop_output - get outgoing packets from the ppp device,
- * and detect when we want to bring the real link up.
- * Return value is 1 if we need to bring up the link, 0 otherwise.
- */
-int
-get_loop_output(void)
-{
- int rv = 0;
- int n;
-
- if (new_style_driver) {
- while ((n = read_packet(inpacket_buf)) > 0)
- if (loop_frame(inpacket_buf, n))
- rv = 1;
- return rv;
- }
-
- while ((n = read(master_fd, inbuf, sizeof(inbuf))) > 0)
- if (loop_chars(inbuf, n))
- rv = 1;
-
- if (n == 0)
- fatal("eof on loopback");
-
- if (errno != EWOULDBLOCK)
- fatal("read from loopback: %m(%d)", errno);
-
- return rv;
-}
-
-/*
- * netif_set_mtu - set the MTU on the PPP network interface.
- */
-void
-netif_set_mtu(int unit, int mtu)
-{
- struct ifreq ifr;
-
- SYSDEBUG ((LOG_DEBUG, "netif_set_mtu: mtu = %d\n", mtu));
-
- memset (&ifr, '\0', sizeof (ifr));
- strlcpy(ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
- ifr.ifr_mtu = mtu;
-
- if (ifunit >= 0 && ioctl(sock_fd, SIOCSIFMTU, (caddr_t) &ifr) < 0)
- fatal("ioctl(SIOCSIFMTU): %m");
-}
-
-/********************************************************************
- *
- * tty_send_config - configure the transmit characteristics of
- * the ppp interface.
- */
-
-void tty_send_config (int mtu,u_int32_t asyncmap,int pcomp,int accomp)
-{
- u_int x;
-
-/*
- * Set the asyncmap and other parameters for the ppp device
- */
- if (!still_ppp())
- return;
- link_mtu = mtu;
- SYSDEBUG ((LOG_DEBUG, "send_config: asyncmap = %lx\n", asyncmap));
- if (ioctl(ppp_fd, PPPIOCSASYNCMAP, (caddr_t) &asyncmap) < 0) {
- if (!ok_error(errno))
- fatal("ioctl(PPPIOCSASYNCMAP): %m(%d)", errno);
- return;
- }
-
- x = get_flags(ppp_fd);
- x = pcomp ? x | SC_COMP_PROT : x & ~SC_COMP_PROT;
- x = accomp ? x | SC_COMP_AC : x & ~SC_COMP_AC;
- x = sync_serial ? x | SC_SYNC : x & ~SC_SYNC;
- set_flags(ppp_fd, x);
-}
-
-/********************************************************************
- *
- * tty_set_xaccm - set the extended transmit ACCM for the interface.
- */
-
-void tty_set_xaccm (ext_accm accm)
-{
- SYSDEBUG ((LOG_DEBUG, "set_xaccm: %08lx %08lx %08lx %08lx\n",
- accm[0], accm[1], accm[2], accm[3]));
-
- if (!still_ppp())
- return;
- if (ioctl(ppp_fd, PPPIOCSXASYNCMAP, accm) < 0 && errno != ENOTTY) {
- if ( ! ok_error (errno))
- warn("ioctl(set extended ACCM): %m(%d)", errno);
- }
-}
-
-/********************************************************************
- *
- * tty_recv_config - configure the receive-side characteristics of
- * the ppp interface.
- */
-
-void tty_recv_config (int mru,u_int32_t asyncmap,int pcomp,int accomp)
-{
- SYSDEBUG ((LOG_DEBUG, "recv_config: mru = %d\n", mru));
-/*
- * If we were called because the link has gone down then there is nothing
- * which may be done. Just return without incident.
- */
- if (!still_ppp())
- return;
-/*
- * Set the receiver parameters
- */
- if (ioctl(ppp_fd, PPPIOCSMRU, (caddr_t) &mru) < 0) {
- if ( ! ok_error (errno))
- error("ioctl(PPPIOCSMRU): %m(%d)", errno);
- }
- if (new_style_driver && ifunit >= 0
- && ioctl(ppp_dev_fd, PPPIOCSMRU, (caddr_t) &mru) < 0)
- error("Couldn't set MRU in generic PPP layer: %m");
-
- SYSDEBUG ((LOG_DEBUG, "recv_config: asyncmap = %lx\n", asyncmap));
- if (ioctl(ppp_fd, PPPIOCSRASYNCMAP, (caddr_t) &asyncmap) < 0) {
- if (!ok_error(errno))
- error("ioctl(PPPIOCSRASYNCMAP): %m(%d)", errno);
- }
-}
-
-/********************************************************************
- *
- * ccp_test - ask kernel whether a given compression method
- * is acceptable for use.
- */
-
-int ccp_test (int unit, u_char *opt_ptr, int opt_len, int for_transmit)
-{
- struct ppp_option_data data;
-
- memset (&data, '\0', sizeof (data));
- data.ptr = opt_ptr;
- data.length = opt_len;
- data.transmit = for_transmit;
-
- if (ioctl(ppp_dev_fd, PPPIOCSCOMPRESS, (caddr_t) &data) >= 0)
- return 1;
-
- return (errno == ENOBUFS)? 0: -1;
-}
-
-/********************************************************************
- *
- * ccp_flags_set - inform kernel about the current state of CCP.
- */
-
-void ccp_flags_set (int unit, int isopen, int isup)
-{
- if (still_ppp()) {
- int x = get_flags(ppp_dev_fd);
- x = isopen? x | SC_CCP_OPEN : x &~ SC_CCP_OPEN;
- x = isup? x | SC_CCP_UP : x &~ SC_CCP_UP;
- set_flags (ppp_dev_fd, x);
- }
-}
-
-#ifdef PPP_FILTER
-/*
- * set_filters - set the active and pass filters in the kernel driver.
- */
-int set_filters(struct bpf_program *pass, struct bpf_program *active)
-{
- struct sock_fprog fp;
-
- fp.len = pass->bf_len;
- fp.filter = (struct sock_filter *) pass->bf_insns;
- if (ioctl(ppp_dev_fd, PPPIOCSPASS, &fp) < 0) {
- if (errno == ENOTTY)
- warn("kernel does not support PPP filtering");
- else
- error("Couldn't set pass-filter in kernel: %m");
- return 0;
- }
- fp.len = active->bf_len;
- fp.filter = (struct sock_filter *) active->bf_insns;
- if (ioctl(ppp_dev_fd, PPPIOCSACTIVE, &fp) < 0) {
- error("Couldn't set active-filter in kernel: %m");
- return 0;
- }
- return 1;
-}
-#endif /* PPP_FILTER */
-
-/********************************************************************
- *
- * get_idle_time - return how long the link has been idle.
- */
-int
-get_idle_time(u, ip)
- int u;
- struct ppp_idle *ip;
-{
- return ioctl(ppp_dev_fd, PPPIOCGIDLE, ip) >= 0;
-}
-
-/********************************************************************
- *
- * get_ppp_stats - return statistics for the link.
- */
-int
-get_ppp_stats(u, stats)
- int u;
- struct pppd_stats *stats;
-{
- struct ifpppstatsreq req;
-
- memset (&req, 0, sizeof (req));
-
- req.stats_ptr = (caddr_t) &req.stats;
- strlcpy(req.ifr__name, ifname, sizeof(req.ifr__name));
- if (ioctl(sock_fd, SIOCGPPPSTATS, &req) < 0) {
- error("Couldn't get PPP statistics: %m");
- return 0;
- }
- stats->bytes_in = req.stats.p.ppp_ibytes;
- stats->bytes_out = req.stats.p.ppp_obytes;
- return 1;
-}
-
-/********************************************************************
- *
- * ccp_fatal_error - returns 1 if decompression was disabled as a
- * result of an error detected after decompression of a packet,
- * 0 otherwise. This is necessary because of patent nonsense.
- */
-
-int ccp_fatal_error (int unit)
-{
- int x = get_flags(ppp_dev_fd);
-
- return x & SC_DC_FERROR;
-}
-
-/********************************************************************
- *
- * path_to_procfs - find the path to the proc file system mount point
- */
-static char proc_path[MAXPATHLEN];
-static int proc_path_len;
-
-static char *path_to_procfs(const char *tail)
-{
- struct mntent *mntent;
- FILE *fp;
-
- if (proc_path_len == 0) {
- /* Default the mount location of /proc */
- strlcpy (proc_path, "/proc", sizeof(proc_path));
- proc_path_len = 5;
- fp = fopen(MOUNTED, "r");
- if (fp != NULL) {
- while ((mntent = getmntent(fp)) != NULL) {
- if (strcmp(mntent->mnt_type, MNTTYPE_IGNORE) == 0)
- continue;
- if (strcmp(mntent->mnt_type, "proc") == 0) {
- strlcpy(proc_path, mntent->mnt_dir, sizeof(proc_path));
- proc_path_len = strlen(proc_path);
- break;
- }
- }
- fclose (fp);
- }
- }
-
- strlcpy(proc_path + proc_path_len, tail,
- sizeof(proc_path) - proc_path_len);
- return proc_path;
-}
-
-/*
- * /proc/net/route parsing stuff.
- */
-#define ROUTE_MAX_COLS 12
-FILE *route_fd = (FILE *) 0;
-static char route_buffer[512];
-static int route_dev_col, route_dest_col, route_gw_col;
-static int route_flags_col, route_mask_col;
-static int route_num_cols;
-
-static int open_route_table (void);
-static void close_route_table (void);
-static int read_route_table (struct rtentry *rt);
-
-/********************************************************************
- *
- * close_route_table - close the interface to the route table
- */
-
-static void close_route_table (void)
-{
- if (route_fd != (FILE *) 0) {
- fclose (route_fd);
- route_fd = (FILE *) 0;
- }
-}
-
-/********************************************************************
- *
- * open_route_table - open the interface to the route table
- */
-static char route_delims[] = " \t\n";
-
-static int open_route_table (void)
-{
- char *path;
-
- close_route_table();
-
- path = path_to_procfs("/net/route");
- route_fd = fopen (path, "r");
- if (route_fd == NULL) {
- error("can't open routing table %s: %m", path);
- return 0;
- }
-
- route_dev_col = 0; /* default to usual columns */
- route_dest_col = 1;
- route_gw_col = 2;
- route_flags_col = 3;
- route_mask_col = 7;
- route_num_cols = 8;
-
- /* parse header line */
- if (fgets(route_buffer, sizeof(route_buffer), route_fd) != 0) {
- char *p = route_buffer, *q;
- int col;
- for (col = 0; col < ROUTE_MAX_COLS; ++col) {
- int used = 1;
- if ((q = strtok(p, route_delims)) == 0)
- break;
- if (strcasecmp(q, "iface") == 0)
- route_dev_col = col;
- else if (strcasecmp(q, "destination") == 0)
- route_dest_col = col;
- else if (strcasecmp(q, "gateway") == 0)
- route_gw_col = col;
- else if (strcasecmp(q, "flags") == 0)
- route_flags_col = col;
- else if (strcasecmp(q, "mask") == 0)
- route_mask_col = col;
- else
- used = 0;
- if (used && col >= route_num_cols)
- route_num_cols = col + 1;
- p = NULL;
- }
- }
-
- return 1;
-}
-
-/********************************************************************
- *
- * read_route_table - read the next entry from the route table
- */
-
-static int read_route_table(struct rtentry *rt)
-{
- char *cols[ROUTE_MAX_COLS], *p;
- int col;
-
- memset (rt, '\0', sizeof (struct rtentry));
-
- if (fgets (route_buffer, sizeof (route_buffer), route_fd) == (char *) 0)
- return 0;
-
- p = route_buffer;
- for (col = 0; col < route_num_cols; ++col) {
- cols[col] = strtok(p, route_delims);
- if (cols[col] == NULL)
- return 0; /* didn't get enough columns */
- p = NULL;
- }
-
- SIN_ADDR(rt->rt_dst) = strtoul(cols[route_dest_col], NULL, 16);
- SIN_ADDR(rt->rt_gateway) = strtoul(cols[route_gw_col], NULL, 16);
- SIN_ADDR(rt->rt_genmask) = strtoul(cols[route_mask_col], NULL, 16);
-
- rt->rt_flags = (short) strtoul(cols[route_flags_col], NULL, 16);
- rt->rt_dev = cols[route_dev_col];
-
- return 1;
-}
-
-/********************************************************************
- *
- * defaultroute_exists - determine if there is a default route
- */
-
-static int defaultroute_exists (struct rtentry *rt)
-{
- int result = 0;
-
- if (!open_route_table())
- return 0;
-
- while (read_route_table(rt) != 0) {
- if ((rt->rt_flags & RTF_UP) == 0)
- continue;
-
- if (kernel_version > KVERSION(2,1,0) && SIN_ADDR(rt->rt_genmask) != 0)
- continue;
- if (SIN_ADDR(rt->rt_dst) == 0L) {
- result = 1;
- break;
- }
- }
-
- close_route_table();
- return result;
-}
-
-/*
- * have_route_to - determine if the system has any route to
- * a given IP address. `addr' is in network byte order.
- * Return value is 1 if yes, 0 if no, -1 if don't know.
- * For demand mode to work properly, we have to ignore routes
- * through our own interface.
- */
-int have_route_to(u_int32_t addr)
-{
- struct rtentry rt;
- int result = 0;
-
- if (!open_route_table())
- return -1; /* don't know */
-
- while (read_route_table(&rt)) {
- if ((rt.rt_flags & RTF_UP) == 0 || strcmp(rt.rt_dev, ifname) == 0)
- continue;
- if ((addr & SIN_ADDR(rt.rt_genmask)) == SIN_ADDR(rt.rt_dst)) {
- result = 1;
- break;
- }
- }
-
- close_route_table();
- return result;
-}
-
-/********************************************************************
- *
- * sifdefaultroute - assign a default route through the address given.
- */
-
-int sifdefaultroute (int unit, u_int32_t ouraddr, u_int32_t gateway)
-{
- struct rtentry rt;
-
- if (defaultroute_exists(&rt) && strcmp(rt.rt_dev, ifname) != 0) {
- u_int32_t old_gateway = SIN_ADDR(rt.rt_gateway);
-
- if (old_gateway != gateway)
- error("not replacing existing default route to %s [%I]",
- rt.rt_dev, old_gateway);
- return 0;
- }
-
- memset (&rt, '\0', sizeof (rt));
- SET_SA_FAMILY (rt.rt_dst, AF_INET);
- SET_SA_FAMILY (rt.rt_gateway, AF_INET);
-
- if (kernel_version > KVERSION(2,1,0)) {
- SET_SA_FAMILY (rt.rt_genmask, AF_INET);
- SIN_ADDR(rt.rt_genmask) = 0L;
- }
-
- SIN_ADDR(rt.rt_gateway) = gateway;
-
- rt.rt_flags = RTF_UP | RTF_GATEWAY;
- if (ioctl(sock_fd, SIOCADDRT, &rt) < 0) {
- if ( ! ok_error ( errno ))
- error("default route ioctl(SIOCADDRT): %m(%d)", errno);
- return 0;
- }
-
- default_route_gateway = gateway;
- return 1;
-}
-
-/********************************************************************
- *
- * cifdefaultroute - delete a default route through the address given.
- */
-
-int cifdefaultroute (int unit, u_int32_t ouraddr, u_int32_t gateway)
-{
- struct rtentry rt;
-
- default_route_gateway = 0;
-
- memset (&rt, '\0', sizeof (rt));
- SET_SA_FAMILY (rt.rt_dst, AF_INET);
- SET_SA_FAMILY (rt.rt_gateway, AF_INET);
-
- if (kernel_version > KVERSION(2,1,0)) {
- SET_SA_FAMILY (rt.rt_genmask, AF_INET);
- SIN_ADDR(rt.rt_genmask) = 0L;
- }
-
- SIN_ADDR(rt.rt_gateway) = gateway;
-
- rt.rt_flags = RTF_UP | RTF_GATEWAY;
- if (ioctl(sock_fd, SIOCDELRT, &rt) < 0 && errno != ESRCH) {
- if (still_ppp()) {
- if ( ! ok_error ( errno ))
- error("default route ioctl(SIOCDELRT): %m (%d)", errno);
- return 0;
- }
- }
-
- return 1;
-}
-
-/********************************************************************
- *
- * sifproxyarp - Make a proxy ARP entry for the peer.
- */
-
-int sifproxyarp (int unit, u_int32_t his_adr)
-{
- struct arpreq arpreq;
- char *forw_path;
-
- if (has_proxy_arp == 0) {
- memset (&arpreq, '\0', sizeof(arpreq));
-
- SET_SA_FAMILY(arpreq.arp_pa, AF_INET);
- SIN_ADDR(arpreq.arp_pa) = his_adr;
- arpreq.arp_flags = ATF_PERM | ATF_PUBL;
-/*
- * Get the hardware address of an interface on the same subnet
- * as our local address.
- */
- if (!get_ether_addr(his_adr, &arpreq.arp_ha, proxy_arp_dev,
- sizeof(proxy_arp_dev))) {
- error("Cannot determine ethernet address for proxy ARP");
- return 0;
- }
- strlcpy(arpreq.arp_dev, proxy_arp_dev, sizeof(arpreq.arp_dev));
-
- if (ioctl(sock_fd, SIOCSARP, (caddr_t)&arpreq) < 0) {
- if ( ! ok_error ( errno ))
- error("ioctl(SIOCSARP): %m(%d)", errno);
- return 0;
- }
- proxy_arp_addr = his_adr;
- has_proxy_arp = 1;
-
- if (tune_kernel) {
- forw_path = path_to_procfs("/sys/net/ipv4/ip_forward");
- if (forw_path != 0) {
- int fd = open(forw_path, O_WRONLY);
- if (fd >= 0) {
- if (write(fd, "1", 1) != 1)
- error("Couldn't enable IP forwarding: %m");
- close(fd);
- }
- }
- }
- }
-
- return 1;
-}
-
-/********************************************************************
- *
- * cifproxyarp - Delete the proxy ARP entry for the peer.
- */
-
-int cifproxyarp (int unit, u_int32_t his_adr)
-{
- struct arpreq arpreq;
-
- if (has_proxy_arp) {
- has_proxy_arp = 0;
- memset (&arpreq, '\0', sizeof(arpreq));
- SET_SA_FAMILY(arpreq.arp_pa, AF_INET);
- SIN_ADDR(arpreq.arp_pa) = his_adr;
- arpreq.arp_flags = ATF_PERM | ATF_PUBL;
- strlcpy(arpreq.arp_dev, proxy_arp_dev, sizeof(arpreq.arp_dev));
-
- if (ioctl(sock_fd, SIOCDARP, (caddr_t)&arpreq) < 0) {
- if ( ! ok_error ( errno ))
- warn("ioctl(SIOCDARP): %m(%d)", errno);
- return 0;
- }
- }
- return 1;
-}
-
-/********************************************************************
- *
- * get_ether_addr - get the hardware address of an interface on the
- * the same subnet as ipaddr.
- */
-
-static int get_ether_addr (u_int32_t ipaddr,
- struct sockaddr *hwaddr,
- char *name, int namelen)
-{
- struct ifreq *ifr, *ifend;
- u_int32_t ina, mask;
- char *aliasp;
- struct ifreq ifreq;
- struct ifconf ifc;
- struct ifreq ifs[MAX_IFS];
-
- ifc.ifc_len = sizeof(ifs);
- ifc.ifc_req = ifs;
- if (ioctl(sock_fd, SIOCGIFCONF, &ifc) < 0) {
- if ( ! ok_error ( errno ))
- error("ioctl(SIOCGIFCONF): %m(%d)", errno);
- return 0;
- }
-
- SYSDEBUG ((LOG_DEBUG, "proxy arp: scanning %d interfaces for IP %s",
- ifc.ifc_len / sizeof(struct ifreq), ip_ntoa(ipaddr)));
-/*
- * Scan through looking for an interface with an Internet
- * address on the same subnet as `ipaddr'.
- */
- ifend = ifs + (ifc.ifc_len / sizeof(struct ifreq));
- for (ifr = ifc.ifc_req; ifr < ifend; ifr++) {
- if (ifr->ifr_addr.sa_family == AF_INET) {
- ina = SIN_ADDR(ifr->ifr_addr);
- strlcpy(ifreq.ifr_name, ifr->ifr_name, sizeof(ifreq.ifr_name));
- SYSDEBUG ((LOG_DEBUG, "proxy arp: examining interface %s",
- ifreq.ifr_name));
-/*
- * Check that the interface is up, and not point-to-point
- * nor loopback.
- */
- if (ioctl(sock_fd, SIOCGIFFLAGS, &ifreq) < 0)
- continue;
-
- if (((ifreq.ifr_flags ^ FLAGS_GOOD) & FLAGS_MASK) != 0)
- continue;
-/*
- * Get its netmask and check that it's on the right subnet.
- */
- if (ioctl(sock_fd, SIOCGIFNETMASK, &ifreq) < 0)
- continue;
-
- mask = SIN_ADDR(ifreq.ifr_addr);
- SYSDEBUG ((LOG_DEBUG, "proxy arp: interface addr %s mask %lx",
- ip_ntoa(ina), ntohl(mask)));
-
- if (((ipaddr ^ ina) & mask) != 0)
- continue;
- break;
- }
- }
-
- if (ifr >= ifend)
- return 0;
-
- strlcpy(name, ifreq.ifr_name, namelen);
-
- /* trim off the :1 in eth0:1 */
- aliasp = strchr(name, ':');
- if (aliasp != 0)
- *aliasp = 0;
-
- info("found interface %s for proxy arp", name);
-/*
- * Now get the hardware address.
- */
- memset (&ifreq.ifr_hwaddr, 0, sizeof (struct sockaddr));
- if (ioctl (sock_fd, SIOCGIFHWADDR, &ifreq) < 0) {
- error("SIOCGIFHWADDR(%s): %m(%d)", ifreq.ifr_name, errno);
- return 0;
- }
-
- memcpy (hwaddr,
- &ifreq.ifr_hwaddr,
- sizeof (struct sockaddr));
-
- SYSDEBUG ((LOG_DEBUG,
- "proxy arp: found hwaddr %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x",
- (int) ((unsigned char *) &hwaddr->sa_data)[0],
- (int) ((unsigned char *) &hwaddr->sa_data)[1],
- (int) ((unsigned char *) &hwaddr->sa_data)[2],
- (int) ((unsigned char *) &hwaddr->sa_data)[3],
- (int) ((unsigned char *) &hwaddr->sa_data)[4],
- (int) ((unsigned char *) &hwaddr->sa_data)[5],
- (int) ((unsigned char *) &hwaddr->sa_data)[6],
- (int) ((unsigned char *) &hwaddr->sa_data)[7]));
- return 1;
-}
-
-/*
- * get_if_hwaddr - get the hardware address for the specified
- * network interface device.
- */
-int
-get_if_hwaddr(u_char *addr, char *name)
-{
- struct ifreq ifreq;
- int ret, sock_fd;
-
- sock_fd = socket(AF_INET, SOCK_DGRAM, 0);
- if (sock_fd < 0)
- return 0;
- memset(&ifreq.ifr_hwaddr, 0, sizeof(struct sockaddr));
- strlcpy(ifreq.ifr_name, name, sizeof(ifreq.ifr_name));
- ret = ioctl(sock_fd, SIOCGIFHWADDR, &ifreq);
- close(sock_fd);
- if (ret >= 0)
- memcpy(addr, ifreq.ifr_hwaddr.sa_data, 6);
- return ret;
-}
-
-/*
- * get_first_ethernet - return the name of the first ethernet-style
- * interface on this system.
- */
-char *
-get_first_ethernet()
-{
- return "eth0";
-}
-
-/********************************************************************
- *
- * Return user specified netmask, modified by any mask we might determine
- * for address `addr' (in network byte order).
- * Here we scan through the system's list of interfaces, looking for
- * any non-point-to-point interfaces which might appear to be on the same
- * network as `addr'. If we find any, we OR in their netmask to the
- * user-specified netmask.
- */
-
-u_int32_t GetMask (u_int32_t addr)
-{
- u_int32_t mask, nmask, ina;
- struct ifreq *ifr, *ifend, ifreq;
- struct ifconf ifc;
- struct ifreq ifs[MAX_IFS];
-
- addr = ntohl(addr);
-
- if (IN_CLASSA(addr)) /* determine network mask for address class */
- nmask = IN_CLASSA_NET;
- else if (IN_CLASSB(addr))
- nmask = IN_CLASSB_NET;
- else
- nmask = IN_CLASSC_NET;
-
- /* class D nets are disallowed by bad_ip_adrs */
- mask = netmask | htonl(nmask);
-/*
- * Scan through the system's network interfaces.
- */
- ifc.ifc_len = sizeof(ifs);
- ifc.ifc_req = ifs;
- if (ioctl(sock_fd, SIOCGIFCONF, &ifc) < 0) {
- if ( ! ok_error ( errno ))
- warn("ioctl(SIOCGIFCONF): %m(%d)", errno);
- return mask;
- }
-
- ifend = (struct ifreq *) (ifc.ifc_buf + ifc.ifc_len);
- for (ifr = ifc.ifc_req; ifr < ifend; ifr++) {
-/*
- * Check the interface's internet address.
- */
- if (ifr->ifr_addr.sa_family != AF_INET)
- continue;
- ina = SIN_ADDR(ifr->ifr_addr);
- if (((ntohl(ina) ^ addr) & nmask) != 0)
- continue;
-/*
- * Check that the interface is up, and not point-to-point nor loopback.
- */
- strlcpy(ifreq.ifr_name, ifr->ifr_name, sizeof(ifreq.ifr_name));
- if (ioctl(sock_fd, SIOCGIFFLAGS, &ifreq) < 0)
- continue;
-
- if (((ifreq.ifr_flags ^ FLAGS_GOOD) & FLAGS_MASK) != 0)
- continue;
-/*
- * Get its netmask and OR it into our mask.
- */
- if (ioctl(sock_fd, SIOCGIFNETMASK, &ifreq) < 0)
- continue;
- mask |= SIN_ADDR(ifreq.ifr_addr);
- break;
- }
- return mask;
-}
-
-/********************************************************************
- *
- * Internal routine to decode the version.modification.patch level
- */
-
-static void decode_version (char *buf, int *version,
- int *modification, int *patch)
-{
- char *endp;
-
- *version = (int) strtoul (buf, &endp, 10);
- *modification = 0;
- *patch = 0;
-
- if (endp != buf && *endp == '.') {
- buf = endp + 1;
- *modification = (int) strtoul (buf, &endp, 10);
- if (endp != buf && *endp == '.') {
- buf = endp + 1;
- *patch = (int) strtoul (buf, &buf, 10);
- }
- }
-}
-
-/********************************************************************
- *
- * Procedure to determine if the PPP line discipline is registered.
- */
-
-static int
-ppp_registered(void)
-{
- int local_fd;
- int mfd = -1;
- int ret = 0;
- char slave[16];
-
- /*
- * We used to open the serial device and set it to the ppp line
- * discipline here, in order to create a ppp unit. But that is
- * not a good idea - the user might have specified a device that
- * they can't open (permission, or maybe it doesn't really exist).
- * So we grab a pty master/slave pair and use that.
- */
- if (!get_pty(&mfd, &local_fd, slave, 0)) {
- no_ppp_msg = "Couldn't determine if PPP is supported (no free ptys)";
- return 0;
- }
-
- /*
- * Try to put the device into the PPP discipline.
- */
- if (ioctl(local_fd, TIOCSETD, &ppp_disc) < 0) {
- error("ioctl(TIOCSETD(PPP)): %m(%d)", errno);
- } else
- ret = 1;
-
- close(local_fd);
- close(mfd);
- return ret;
-}
-
-/********************************************************************
- *
- * ppp_available - check whether the system has any ppp interfaces
- * (in fact we check whether we can do an ioctl on ppp0).
- */
-
-int ppp_available(void)
-{
- int s, ok, fd;
- struct ifreq ifr;
- int size;
- int my_version, my_modification, my_patch;
- int osmaj, osmin, ospatch;
-
- no_ppp_msg =
- "This system lacks kernel support for PPP. This could be because\n"
- "the PPP kernel module could not be loaded, or because PPP was not\n"
- "included in the kernel configuration. If PPP was included as a\n"
- "module, try `/sbin/modprobe -v ppp'. If that fails, check that\n"
- "ppp.o exists in /lib/modules/`uname -r`/net.\n"
- "See README.linux file in the ppp distribution for more details.\n";
-
- /* get the kernel version now, since we are called before sys_init */
- uname(&utsname);
- osmaj = osmin = ospatch = 0;
- sscanf(utsname.release, "%d.%d.%d", &osmaj, &osmin, &ospatch);
- kernel_version = KVERSION(osmaj, osmin, ospatch);
-
- fd = open("/dev/ppp", O_RDWR);
-#if 0
- if (fd < 0 && errno == ENOENT) {
- /* try making it and see if that helps. */
- if (mknod("/dev/ppp", S_IFCHR | S_IRUSR | S_IWUSR,
- makedev(108, 0)) >= 0) {
- fd = open("/dev/ppp", O_RDWR);
- if (fd >= 0)
- info("Created /dev/ppp device node");
- else
- unlink("/dev/ppp"); /* didn't work, undo the mknod */
- } else if (errno == EEXIST) {
- fd = open("/dev/ppp", O_RDWR);
- }
- }
-#endif /* 0 */
- if (fd >= 0) {
- new_style_driver = 1;
-
- /* XXX should get from driver */
- driver_version = 2;
- driver_modification = 4;
- driver_patch = 0;
- close(fd);
- return 1;
- }
- if (kernel_version >= KVERSION(2,3,13)) {
- if (errno == ENOENT)
- no_ppp_msg =
- "pppd is unable to open the /dev/ppp device.\n"
- "You need to create the /dev/ppp device node by\n"
- "executing the following command as root:\n"
- " mknod /dev/ppp c 108 0\n";
- return 0;
- }
-
-/*
- * Open a socket for doing the ioctl operations.
- */
- s = socket(AF_INET, SOCK_DGRAM, 0);
- if (s < 0)
- return 0;
-
- strlcpy (ifr.ifr_name, "ppp0", sizeof (ifr.ifr_name));
- ok = ioctl(s, SIOCGIFFLAGS, (caddr_t) &ifr) >= 0;
-/*
- * If the device did not exist then attempt to create one by putting the
- * current tty into the PPP discipline. If this works then obtain the
- * flags for the device again.
- */
- if (!ok) {
- if (ppp_registered()) {
- strlcpy (ifr.ifr_name, "ppp0", sizeof (ifr.ifr_name));
- ok = ioctl(s, SIOCGIFFLAGS, (caddr_t) &ifr) >= 0;
- }
- }
-/*
- * Ensure that the hardware address is for PPP and not something else
- */
- if (ok)
- ok = ioctl (s, SIOCGIFHWADDR, (caddr_t) &ifr) >= 0;
-
- if (ok && ((ifr.ifr_hwaddr.sa_family & ~0xFF) != ARPHRD_PPP))
- ok = 0;
-
-/*
- * This is the PPP device. Validate the version of the driver at this
- * point to ensure that this program will work with the driver.
- */
- if (ok) {
- char abBuffer [1024];
-
- ifr.ifr_data = abBuffer;
- size = ioctl (s, SIOCGPPPVER, (caddr_t) &ifr);
- if (size < 0) {
- error("Couldn't read driver version: %m");
- ok = 0;
- no_ppp_msg = "Sorry, couldn't verify kernel driver version\n";
-
- } else {
- decode_version(abBuffer,
- &driver_version,
- &driver_modification,
- &driver_patch);
-/*
- * Validate the version of the driver against the version that we used.
- */
- decode_version(VERSION,
- &my_version,
- &my_modification,
- &my_patch);
-
- /* The version numbers must match */
- if (driver_version != my_version)
- ok = 0;
-
- /* The modification levels must be legal */
- if (driver_modification < 3) {
- if (driver_modification >= 2) {
- /* we can cope with 2.2.0 and above */
- driver_is_old = 1;
- } else {
- ok = 0;
- }
- }
-
- close (s);
- if (!ok) {
- slprintf(route_buffer, sizeof(route_buffer),
- "Sorry - PPP driver version %d.%d.%d is out of date\n",
- driver_version, driver_modification, driver_patch);
-
- no_ppp_msg = route_buffer;
- }
- }
- }
- return ok;
-}
-
-/********************************************************************
- *
- * sifvjcomp - config tcp header compression
- */
-
-int sifvjcomp (int u, int vjcomp, int cidcomp, int maxcid)
-{
- u_int x = get_flags(ppp_dev_fd);
-
- if (vjcomp) {
- if (ioctl (ppp_dev_fd, PPPIOCSMAXCID, (caddr_t) &maxcid) < 0) {
- if (! ok_error (errno))
- error("ioctl(PPPIOCSMAXCID): %m(%d)", errno);
- vjcomp = 0;
- }
- }
-
- x = vjcomp ? x | SC_COMP_TCP : x &~ SC_COMP_TCP;
- x = cidcomp ? x & ~SC_NO_TCP_CCID : x | SC_NO_TCP_CCID;
- set_flags (ppp_dev_fd, x);
-
- return 1;
-}
-
-/********************************************************************
- *
- * sifup - Config the interface up and enable IP packets to pass.
- */
-
-int sifup(int u)
-{
- struct ifreq ifr;
-
- memset (&ifr, '\0', sizeof (ifr));
- strlcpy(ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
- if (ioctl(sock_fd, SIOCGIFFLAGS, (caddr_t) &ifr) < 0) {
- if (! ok_error (errno))
- error("ioctl (SIOCGIFFLAGS): %m(%d)", errno);
- return 0;
- }
-
- ifr.ifr_flags |= (IFF_UP | IFF_POINTOPOINT);
- if (ioctl(sock_fd, SIOCSIFFLAGS, (caddr_t) &ifr) < 0) {
- if (! ok_error (errno))
- error("ioctl(SIOCSIFFLAGS): %m(%d)", errno);
- return 0;
- }
- if_is_up++;
-
- return 1;
-}
-
-/********************************************************************
- *
- * sifdown - Disable the indicated protocol and config the interface
- * down if there are no remaining protocols.
- */
-
-int sifdown (int u)
-{
- struct ifreq ifr;
-
- if (if_is_up && --if_is_up > 0)
- return 1;
-
- memset (&ifr, '\0', sizeof (ifr));
- strlcpy(ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
- if (ioctl(sock_fd, SIOCGIFFLAGS, (caddr_t) &ifr) < 0) {
- if (! ok_error (errno))
- error("ioctl (SIOCGIFFLAGS): %m(%d)", errno);
- return 0;
- }
-
- ifr.ifr_flags &= ~IFF_UP;
- ifr.ifr_flags |= IFF_POINTOPOINT;
- if (ioctl(sock_fd, SIOCSIFFLAGS, (caddr_t) &ifr) < 0) {
- if (! ok_error (errno))
- error("ioctl(SIOCSIFFLAGS): %m(%d)", errno);
- return 0;
- }
- return 1;
-}
-
-/********************************************************************
- *
- * sifaddr - Config the interface IP addresses and netmask.
- */
-
-int sifaddr (int unit, u_int32_t our_adr, u_int32_t his_adr,
- u_int32_t net_mask)
-{
- struct ifreq ifr;
- struct rtentry rt;
-
- memset (&ifr, '\0', sizeof (ifr));
- memset (&rt, '\0', sizeof (rt));
-
- SET_SA_FAMILY (ifr.ifr_addr, AF_INET);
- SET_SA_FAMILY (ifr.ifr_dstaddr, AF_INET);
- SET_SA_FAMILY (ifr.ifr_netmask, AF_INET);
-
- strlcpy (ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
-/*
- * Set our IP address
- */
- SIN_ADDR(ifr.ifr_addr) = our_adr;
- if (ioctl(sock_fd, SIOCSIFADDR, (caddr_t) &ifr) < 0) {
- if (errno != EEXIST) {
- if (! ok_error (errno))
- error("ioctl(SIOCSIFADDR): %m(%d)", errno);
- }
- else {
- warn("ioctl(SIOCSIFADDR): Address already exists");
- }
- return (0);
- }
-/*
- * Set the gateway address
- */
- SIN_ADDR(ifr.ifr_dstaddr) = his_adr;
- if (ioctl(sock_fd, SIOCSIFDSTADDR, (caddr_t) &ifr) < 0) {
- if (! ok_error (errno))
- error("ioctl(SIOCSIFDSTADDR): %m(%d)", errno);
- return (0);
- }
-/*
- * Set the netmask.
- * For recent kernels, force the netmask to 255.255.255.255.
- */
- if (kernel_version >= KVERSION(2,1,16))
- net_mask = ~0L;
- if (net_mask != 0) {
- SIN_ADDR(ifr.ifr_netmask) = net_mask;
- if (ioctl(sock_fd, SIOCSIFNETMASK, (caddr_t) &ifr) < 0) {
- if (! ok_error (errno))
- error("ioctl(SIOCSIFNETMASK): %m(%d)", errno);
- return (0);
- }
- }
-/*
- * Add the device route
- */
- if (kernel_version < KVERSION(2,1,16)) {
- SET_SA_FAMILY (rt.rt_dst, AF_INET);
- SET_SA_FAMILY (rt.rt_gateway, AF_INET);
- rt.rt_dev = ifname;
-
- SIN_ADDR(rt.rt_gateway) = 0L;
- SIN_ADDR(rt.rt_dst) = his_adr;
- rt.rt_flags = RTF_UP | RTF_HOST;
-
- if (kernel_version > KVERSION(2,1,0)) {
- SET_SA_FAMILY (rt.rt_genmask, AF_INET);
- SIN_ADDR(rt.rt_genmask) = -1L;
- }
-
- if (ioctl(sock_fd, SIOCADDRT, &rt) < 0) {
- if (! ok_error (errno))
- error("ioctl(SIOCADDRT) device route: %m(%d)", errno);
- return (0);
- }
- }
-
- /* set ip_dynaddr in demand mode if address changes */
- if (demand && tune_kernel && !dynaddr_set
- && our_old_addr && our_old_addr != our_adr) {
- /* set ip_dynaddr if possible */
- char *path;
- int fd;
-
- path = path_to_procfs("/sys/net/ipv4/ip_dynaddr");
- if (path != 0 && (fd = open(path, O_WRONLY)) >= 0) {
- if (write(fd, "1", 1) != 1)
- error("Couldn't enable dynamic IP addressing: %m");
- close(fd);
- }
- dynaddr_set = 1; /* only 1 attempt */
- }
- our_old_addr = 0;
-
- return 1;
-}
-
-/********************************************************************
- *
- * cifaddr - Clear the interface IP addresses, and delete routes
- * through the interface if possible.
- */
-
-int cifaddr (int unit, u_int32_t our_adr, u_int32_t his_adr)
-{
- struct ifreq ifr;
-
- if (kernel_version < KVERSION(2,1,16)) {
-/*
- * Delete the route through the device
- */
- struct rtentry rt;
- memset (&rt, '\0', sizeof (rt));
-
- SET_SA_FAMILY (rt.rt_dst, AF_INET);
- SET_SA_FAMILY (rt.rt_gateway, AF_INET);
- rt.rt_dev = ifname;
-
- SIN_ADDR(rt.rt_gateway) = 0;
- SIN_ADDR(rt.rt_dst) = his_adr;
- rt.rt_flags = RTF_UP | RTF_HOST;
-
- if (kernel_version > KVERSION(2,1,0)) {
- SET_SA_FAMILY (rt.rt_genmask, AF_INET);
- SIN_ADDR(rt.rt_genmask) = -1L;
- }
-
- if (ioctl(sock_fd, SIOCDELRT, &rt) < 0 && errno != ESRCH) {
- if (still_ppp() && ! ok_error (errno))
- error("ioctl(SIOCDELRT) device route: %m(%d)", errno);
- return (0);
- }
- }
-
- /* This way it is possible to have an IPX-only or IPv6-only interface */
- memset(&ifr, 0, sizeof(ifr));
- SET_SA_FAMILY(ifr.ifr_addr, AF_INET);
- strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
-
- if (ioctl(sock_fd, SIOCSIFADDR, (caddr_t) &ifr) < 0) {
- if (! ok_error (errno)) {
- error("ioctl(SIOCSIFADDR): %m(%d)", errno);
- return 0;
- }
- }
-
- our_old_addr = our_adr;
-
- return 1;
-}
-
-#ifdef INET6
-/********************************************************************
- *
- * sif6addr - Config the interface with an IPv6 link-local address
- */
-int sif6addr (int unit, eui64_t our_eui64, eui64_t his_eui64)
-{
- struct in6_ifreq ifr6;
- struct ifreq ifr;
- struct in6_rtmsg rt6;
-
- if (sock6_fd < 0) {
- errno = -sock6_fd;
- error("IPv6 socket creation failed: %m");
- return 0;
- }
- memset(&ifr, 0, sizeof (ifr));
- strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(sock6_fd, SIOCGIFINDEX, (caddr_t) &ifr) < 0) {
- error("sif6addr: ioctl(SIOCGIFINDEX): %m (%d)", errno);
- return 0;
- }
-
- /* Local interface */
- memset(&ifr6, 0, sizeof(ifr6));
- IN6_LLADDR_FROM_EUI64(ifr6.ifr6_addr, our_eui64);
- ifr6.ifr6_ifindex = ifr.ifr_ifindex;
- ifr6.ifr6_prefixlen = 10;
-
- if (ioctl(sock6_fd, SIOCSIFADDR, &ifr6) < 0) {
- error("sif6addr: ioctl(SIOCSIFADDR): %m (%d)", errno);
- return 0;
- }
-
- /* Route to remote host */
- memset(&rt6, 0, sizeof(rt6));
- IN6_LLADDR_FROM_EUI64(rt6.rtmsg_dst, his_eui64);
- rt6.rtmsg_flags = RTF_UP;
- rt6.rtmsg_dst_len = 10;
- rt6.rtmsg_ifindex = ifr.ifr_ifindex;
- rt6.rtmsg_metric = 1;
-
- if (ioctl(sock6_fd, SIOCADDRT, &rt6) < 0) {
- error("sif6addr: ioctl(SIOCADDRT): %m (%d)", errno);
- return 0;
- }
-
- return 1;
-}
-
-
-/********************************************************************
- *
- * cif6addr - Remove IPv6 address from interface
- */
-int cif6addr (int unit, eui64_t our_eui64, eui64_t his_eui64)
-{
- struct ifreq ifr;
- struct in6_ifreq ifr6;
-
- if (sock6_fd < 0) {
- errno = -sock6_fd;
- error("IPv6 socket creation failed: %m");
- return 0;
- }
- memset(&ifr, 0, sizeof(ifr));
- strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(sock6_fd, SIOCGIFINDEX, (caddr_t) &ifr) < 0) {
- error("cif6addr: ioctl(SIOCGIFINDEX): %m (%d)", errno);
- return 0;
- }
-
- memset(&ifr6, 0, sizeof(ifr6));
- IN6_LLADDR_FROM_EUI64(ifr6.ifr6_addr, our_eui64);
- ifr6.ifr6_ifindex = ifr.ifr_ifindex;
- ifr6.ifr6_prefixlen = 10;
-
- if (ioctl(sock6_fd, SIOCDIFADDR, &ifr6) < 0) {
- if (errno != EADDRNOTAVAIL) {
- if (! ok_error (errno))
- error("cif6addr: ioctl(SIOCDIFADDR): %m (%d)", errno);
- }
- else {
- warn("cif6addr: ioctl(SIOCDIFADDR): No such address");
- }
- return (0);
- }
- return 1;
-}
-#endif /* INET6 */
-
-/*
- * get_pty - get a pty master/slave pair and chown the slave side
- * to the uid given. Assumes slave_name points to >= 16 bytes of space.
- */
-int
-get_pty(master_fdp, slave_fdp, slave_name, uid)
- int *master_fdp;
- int *slave_fdp;
- char *slave_name;
- int uid;
-{
- int i, mfd, sfd = -1;
- char pty_name[16];
- struct termios tios;
-
-#ifdef TIOCGPTN
- /*
- * Try the unix98 way first.
- */
- mfd = open("/dev/ptmx", O_RDWR);
- if (mfd >= 0) {
- int ptn;
- if (ioctl(mfd, TIOCGPTN, &ptn) >= 0) {
- slprintf(pty_name, sizeof(pty_name), "/dev/pts/%d", ptn);
- chmod(pty_name, S_IRUSR | S_IWUSR);
-#ifdef TIOCSPTLCK
- ptn = 0;
- if (ioctl(mfd, TIOCSPTLCK, &ptn) < 0)
- warn("Couldn't unlock pty slave %s: %m", pty_name);
-#endif
- if ((sfd = open(pty_name, O_RDWR | O_NOCTTY)) < 0)
- warn("Couldn't open pty slave %s: %m", pty_name);
- }
- }
-#endif /* TIOCGPTN */
-
- if (sfd < 0) {
- /* the old way - scan through the pty name space */
- for (i = 0; i < 64; ++i) {
- slprintf(pty_name, sizeof(pty_name), "/dev/pty%c%x",
- 'p' + i / 16, i % 16);
- mfd = open(pty_name, O_RDWR, 0);
- if (mfd >= 0) {
- pty_name[5] = 't';
- sfd = open(pty_name, O_RDWR | O_NOCTTY, 0);
- if (sfd >= 0) {
- fchown(sfd, uid, -1);
- fchmod(sfd, S_IRUSR | S_IWUSR);
- break;
- }
- close(mfd);
- }
- }
- }
-
- if (sfd < 0)
- return 0;
-
- strlcpy(slave_name, pty_name, 16);
- *master_fdp = mfd;
- *slave_fdp = sfd;
- if (tcgetattr(sfd, &tios) == 0) {
- tios.c_cflag &= ~(CSIZE | CSTOPB | PARENB);
- tios.c_cflag |= CS8 | CREAD | CLOCAL;
- tios.c_iflag = IGNPAR;
- tios.c_oflag = 0;
- tios.c_lflag = 0;
- if (tcsetattr(sfd, TCSAFLUSH, &tios) < 0)
- warn("couldn't set attributes on pty: %m");
- } else
- warn("couldn't get attributes on pty: %m");
-
- return 1;
-}
-
-/********************************************************************
- *
- * open_loopback - open the device we use for getting packets
- * in demand mode. Under Linux, we use a pty master/slave pair.
- */
-int
-open_ppp_loopback(void)
-{
- int flags;
-
- looped = 1;
- if (new_style_driver) {
- /* allocate ourselves a ppp unit */
- if (make_ppp_unit() < 0)
- die(1);
- set_flags(ppp_dev_fd, SC_LOOP_TRAFFIC);
- set_kdebugflag(kdebugflag);
- ppp_fd = -1;
- return ppp_dev_fd;
- }
-
- if (!get_pty(&master_fd, &slave_fd, loop_name, 0))
- fatal("No free pty for loopback");
- SYSDEBUG(("using %s for loopback", loop_name));
-
- set_ppp_fd(slave_fd);
-
- flags = fcntl(master_fd, F_GETFL);
- if (flags == -1 ||
- fcntl(master_fd, F_SETFL, flags | O_NONBLOCK) == -1)
- warn("couldn't set master loopback to nonblock: %m(%d)", errno);
-
- flags = fcntl(ppp_fd, F_GETFL);
- if (flags == -1 ||
- fcntl(ppp_fd, F_SETFL, flags | O_NONBLOCK) == -1)
- warn("couldn't set slave loopback to nonblock: %m(%d)", errno);
-
- if (ioctl(ppp_fd, TIOCSETD, &ppp_disc) < 0)
- fatal("ioctl(TIOCSETD): %m(%d)", errno);
-/*
- * Find out which interface we were given.
- */
- if (ioctl(ppp_fd, PPPIOCGUNIT, &ifunit) < 0)
- fatal("ioctl(PPPIOCGUNIT): %m(%d)", errno);
-/*
- * Enable debug in the driver if requested.
- */
- set_kdebugflag (kdebugflag);
-
- return master_fd;
-}
-
-/********************************************************************
- *
- * restore_loop - reattach the ppp unit to the loopback.
- *
- * The kernel ppp driver automatically reattaches the ppp unit to
- * the loopback if the serial port is set to a line discipline other
- * than ppp, or if it detects a modem hangup. The former will happen
- * in disestablish_ppp if the latter hasn't already happened, so we
- * shouldn't need to do anything.
- *
- * Just to be sure, set the real serial port to the normal discipline.
- */
-
-static void
-restore_loop(void)
-{
- looped = 1;
- if (new_style_driver) {
- set_flags(ppp_dev_fd, get_flags(ppp_dev_fd) | SC_LOOP_TRAFFIC);
- return;
- }
- if (ppp_fd != slave_fd) {
- (void) ioctl(ppp_fd, TIOCSETD, &tty_disc);
- set_ppp_fd(slave_fd);
- }
-}
-
-/********************************************************************
- *
- * sifnpmode - Set the mode for handling packets for a given NP.
- */
-
-int
-sifnpmode(u, proto, mode)
- int u;
- int proto;
- enum NPmode mode;
-{
- struct npioctl npi;
-
- npi.protocol = proto;
- npi.mode = mode;
- if (ioctl(ppp_dev_fd, PPPIOCSNPMODE, (caddr_t) &npi) < 0) {
- if (! ok_error (errno))
- error("ioctl(PPPIOCSNPMODE, %d, %d): %m (%d)",
- proto, mode, errno);
- return 0;
- }
- return 1;
-}
-
-
-/********************************************************************
- *
- * sipxfaddr - Config the interface IPX networknumber
- */
-
-int sipxfaddr (int unit, unsigned long int network, unsigned char * node )
-{
- int result = 1;
-
-#ifdef IPX_CHANGE
- int skfd;
- struct ifreq ifr;
- struct sockaddr_ipx *sipx = (struct sockaddr_ipx *) &ifr.ifr_addr;
-
- skfd = socket (AF_IPX, SOCK_DGRAM, 0);
- if (skfd < 0) {
- if (! ok_error (errno))
- dbglog("socket(AF_IPX): %m (%d)", errno);
- result = 0;
- }
- else {
- memset (&ifr, '\0', sizeof (ifr));
- strlcpy (ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
-
- memcpy (sipx->sipx_node, node, IPX_NODE_LEN);
- sipx->sipx_family = AF_IPX;
- sipx->sipx_port = 0;
- sipx->sipx_network = htonl (network);
- sipx->sipx_type = IPX_FRAME_ETHERII;
- sipx->sipx_action = IPX_CRTITF;
-/*
- * Set the IPX device
- */
- if (ioctl(skfd, SIOCSIFADDR, (caddr_t) &ifr) < 0) {
- result = 0;
- if (errno != EEXIST) {
- if (! ok_error (errno))
- dbglog("ioctl(SIOCSIFADDR, CRTITF): %m (%d)", errno);
- }
- else {
- warn("ioctl(SIOCSIFADDR, CRTITF): Address already exists");
- }
- }
- close (skfd);
- }
-#endif
- return result;
-}
-
-/********************************************************************
- *
- * cipxfaddr - Clear the information for the IPX network. The IPX routes
- * are removed and the device is no longer able to pass IPX
- * frames.
- */
-
-int cipxfaddr (int unit)
-{
- int result = 1;
-
-#ifdef IPX_CHANGE
- int skfd;
- struct ifreq ifr;
- struct sockaddr_ipx *sipx = (struct sockaddr_ipx *) &ifr.ifr_addr;
-
- skfd = socket (AF_IPX, SOCK_DGRAM, 0);
- if (skfd < 0) {
- if (! ok_error (errno))
- dbglog("socket(AF_IPX): %m (%d)", errno);
- result = 0;
- }
- else {
- memset (&ifr, '\0', sizeof (ifr));
- strlcpy (ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
-
- sipx->sipx_type = IPX_FRAME_ETHERII;
- sipx->sipx_action = IPX_DLTITF;
- sipx->sipx_family = AF_IPX;
-/*
- * Set the IPX device
- */
- if (ioctl(skfd, SIOCSIFADDR, (caddr_t) &ifr) < 0) {
- if (! ok_error (errno))
- info("ioctl(SIOCSIFADDR, IPX_DLTITF): %m (%d)", errno);
- result = 0;
- }
- close (skfd);
- }
-#endif
- return result;
-}
-
-/*
- * Use the hostname as part of the random number seed.
- */
-int
-get_host_seed()
-{
- int h;
- char *p = hostname;
-
- h = 407;
- for (p = hostname; *p != 0; ++p)
- h = h * 37 + *p;
- return h;
-}
-
-/********************************************************************
- *
- * sys_check_options - check the options that the user specified
- */
-
-int
-sys_check_options(void)
-{
-#ifdef IPX_CHANGE
-/*
- * Disable the IPX protocol if the support is not present in the kernel.
- */
- char *path;
-
- if (ipxcp_protent.enabled_flag) {
- struct stat stat_buf;
- if ((path = path_to_procfs("/net/ipx_interface")) == 0
- || lstat(path, &stat_buf) < 0) {
- error("IPX support is not present in the kernel\n");
- ipxcp_protent.enabled_flag = 0;
- }
- }
-#endif
- if (demand && driver_is_old) {
- option_error("demand dialling is not supported by kernel driver "
- "version %d.%d.%d", driver_version, driver_modification,
- driver_patch);
- return 0;
- }
- if (multilink && !new_style_driver) {
- warn("Warning: multilink is not supported by the kernel driver");
- multilink = 0;
- }
- return 1;
-}
diff --git a/mdk-stage1/ppp/pppd/sys-linux.c.wtmp b/mdk-stage1/ppp/pppd/sys-linux.c.wtmp
deleted file mode 100644
index f1b48423e..000000000
--- a/mdk-stage1/ppp/pppd/sys-linux.c.wtmp
+++ /dev/null
@@ -1,2750 +0,0 @@
-/*
- * sys-linux.c - System-dependent procedures for setting up
- * PPP interfaces on Linux systems
- *
- * Copyright (c) 1989 Carnegie Mellon University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Carnegie Mellon University. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#include <sys/ioctl.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/time.h>
-#include <sys/errno.h>
-#include <sys/file.h>
-#include <sys/stat.h>
-#include <sys/utsname.h>
-#include <sys/sysmacros.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <syslog.h>
-#include <string.h>
-#include <time.h>
-#include <memory.h>
-#include <utmp.h>
-#include <mntent.h>
-#include <signal.h>
-#include <fcntl.h>
-#include <ctype.h>
-#include <termios.h>
-#include <unistd.h>
-
-/* This is in netdevice.h. However, this compile will fail miserably if
- you attempt to include netdevice.h because it has so many references
- to __memcpy functions which it should not attempt to do. So, since I
- really don't use it, but it must be defined, define it now. */
-
-#ifndef MAX_ADDR_LEN
-#define MAX_ADDR_LEN 7
-#endif
-
-#if __GLIBC__ >= 2
-#include <asm/types.h> /* glibc 2 conflicts with linux/types.h */
-#include <net/if.h>
-#include <net/if_arp.h>
-#include <net/route.h>
-#include <netinet/if_ether.h>
-#else
-#include <linux/types.h>
-#include <linux/if.h>
-#include <linux/if_arp.h>
-#include <linux/route.h>
-#include <linux/if_ether.h>
-#endif
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#include <linux/ppp_defs.h>
-#include <linux/if_ppp.h>
-
-#include "pppd.h"
-#include "fsm.h"
-#include "ipcp.h"
-
-#ifdef IPX_CHANGE
-#include "ipxcp.h"
-#if __GLIBC__ >= 2 && \
- !(defined(__powerpc__) && __GLIBC__ == 2 && __GLIBC_MINOR__ == 0)
-#include <netipx/ipx.h>
-#else
-#include <linux/ipx.h>
-#endif
-#endif /* IPX_CHANGE */
-
-#ifdef PPP_FILTER
-#include <net/bpf.h>
-#include <linux/filter.h>
-#endif /* PPP_FILTER */
-
-#ifdef LOCKLIB
-#include <sys/locks.h>
-#endif
-
-#ifdef INET6
-#ifndef _LINUX_IN6_H
-/*
- * This is in linux/include/net/ipv6.h.
- */
-
-struct in6_ifreq {
- struct in6_addr ifr6_addr;
- __u32 ifr6_prefixlen;
- unsigned int ifr6_ifindex;
-};
-#endif
-
-#define IN6_LLADDR_FROM_EUI64(sin6, eui64) do { \
- memset(&sin6.s6_addr, 0, sizeof(struct in6_addr)); \
- sin6.s6_addr16[0] = htons(0xfe80); \
- eui64_copy(eui64, sin6.s6_addr32[2]); \
- } while (0)
-
-#endif /* INET6 */
-
-/* We can get an EIO error on an ioctl if the modem has hung up */
-#define ok_error(num) ((num)==EIO)
-
-static int tty_disc = N_TTY; /* The TTY discipline */
-static int ppp_disc = N_PPP; /* The PPP discpline */
-static int initfdflags = -1; /* Initial file descriptor flags for fd */
-static int ppp_fd = -1; /* fd which is set to PPP discipline */
-static int sock_fd = -1; /* socket for doing interface ioctls */
-static int slave_fd = -1;
-static int master_fd = -1;
-#ifdef INET6
-static int sock6_fd = -1;
-#endif /* INET6 */
-static int ppp_dev_fd = -1; /* fd for /dev/ppp (new style driver) */
-static int chindex; /* channel index (new style driver) */
-
-static fd_set in_fds; /* set of fds that wait_input waits for */
-static int max_in_fd; /* highest fd set in in_fds */
-
-static int has_proxy_arp = 0;
-static int driver_version = 0;
-static int driver_modification = 0;
-static int driver_patch = 0;
-static int driver_is_old = 0;
-static int restore_term = 0; /* 1 => we've munged the terminal */
-static struct termios inittermios; /* Initial TTY termios */
-
-static int new_style_driver = 0;
-
-static char loop_name[20];
-static unsigned char inbuf[512]; /* buffer for chars read from loopback */
-
-static int if_is_up; /* Interface has been marked up */
-static u_int32_t default_route_gateway; /* Gateway for default route added */
-static u_int32_t proxy_arp_addr; /* Addr for proxy arp entry added */
-static char proxy_arp_dev[16]; /* Device for proxy arp entry */
-static u_int32_t our_old_addr; /* for detecting address changes */
-static int dynaddr_set; /* 1 if ip_dynaddr set */
-static int looped; /* 1 if using loop */
-static int link_mtu; /* mtu for the link (not bundle) */
-
-static struct utsname utsname; /* for the kernel version */
-static int kernel_version;
-#define KVERSION(j,n,p) ((j)*1000000 + (n)*1000 + (p))
-
-#define MAX_IFS 100
-
-#define FLAGS_GOOD (IFF_UP | IFF_BROADCAST)
-#define FLAGS_MASK (IFF_UP | IFF_BROADCAST | \
- IFF_POINTOPOINT | IFF_LOOPBACK | IFF_NOARP)
-
-#define SIN_ADDR(x) (((struct sockaddr_in *) (&(x)))->sin_addr.s_addr)
-
-/* Prototypes for procedures local to this file. */
-static int get_flags (int fd);
-static void set_flags (int fd, int flags);
-static int translate_speed (int bps);
-static int baud_rate_of (int speed);
-static void close_route_table (void);
-static int open_route_table (void);
-static int read_route_table (struct rtentry *rt);
-static int defaultroute_exists (struct rtentry *rt);
-static int get_ether_addr (u_int32_t ipaddr, struct sockaddr *hwaddr,
- char *name, int namelen);
-static void decode_version (char *buf, int *version, int *mod, int *patch);
-static int set_kdebugflag(int level);
-static int ppp_registered(void);
-static int make_ppp_unit(void);
-static void restore_loop(void); /* Transfer ppp unit back to loopback */
-
-extern u_char inpacket_buf[]; /* borrowed from main.c */
-
-/*
- * SET_SA_FAMILY - set the sa_family field of a struct sockaddr,
- * if it exists.
- */
-
-#define SET_SA_FAMILY(addr, family) \
- memset ((char *) &(addr), '\0', sizeof(addr)); \
- addr.sa_family = (family);
-
-/*
- * Determine if the PPP connection should still be present.
- */
-
-extern int hungup;
-
-/* new_fd is the fd of a tty */
-static void set_ppp_fd (int new_fd)
-{
- SYSDEBUG ((LOG_DEBUG, "setting ppp_fd to %d\n", new_fd));
- ppp_fd = new_fd;
- if (!new_style_driver)
- ppp_dev_fd = new_fd;
-}
-
-static int still_ppp(void)
-{
- if (new_style_driver)
- return !hungup && ppp_fd >= 0;
- if (!hungup || ppp_fd == slave_fd)
- return 1;
- if (slave_fd >= 0) {
- set_ppp_fd(slave_fd);
- return 1;
- }
- return 0;
-}
-
-/********************************************************************
- *
- * Functions to read and set the flags value in the device driver
- */
-
-static int get_flags (int fd)
-{
- int flags;
-
- if (ioctl(fd, PPPIOCGFLAGS, (caddr_t) &flags) < 0) {
- if ( ok_error (errno) )
- flags = 0;
- else
- fatal("ioctl(PPPIOCGFLAGS): %m");
- }
-
- SYSDEBUG ((LOG_DEBUG, "get flags = %x\n", flags));
- return flags;
-}
-
-/********************************************************************/
-
-static void set_flags (int fd, int flags)
-{
- SYSDEBUG ((LOG_DEBUG, "set flags = %x\n", flags));
-
- if (ioctl(fd, PPPIOCSFLAGS, (caddr_t) &flags) < 0) {
- if (! ok_error (errno) )
- fatal("ioctl(PPPIOCSFLAGS, %x): %m", flags, errno);
- }
-}
-
-/********************************************************************
- *
- * sys_init - System-dependent initialization.
- */
-
-void sys_init(void)
-{
- int flags;
-
- if (new_style_driver) {
- ppp_dev_fd = open("/dev/ppp", O_RDWR);
- if (ppp_dev_fd < 0)
- fatal("Couldn't open /dev/ppp: %m");
- flags = fcntl(ppp_dev_fd, F_GETFL);
- if (flags == -1
- || fcntl(ppp_dev_fd, F_SETFL, flags | O_NONBLOCK) == -1)
- warn("Couldn't set /dev/ppp to nonblock: %m");
- }
-
- /* Get an internet socket for doing socket ioctls. */
- sock_fd = socket(AF_INET, SOCK_DGRAM, 0);
- if (sock_fd < 0)
- fatal("Couldn't create IP socket: %m(%d)", errno);
-
-#ifdef INET6
- sock6_fd = socket(AF_INET6, SOCK_DGRAM, 0);
- if (sock6_fd < 0)
- sock6_fd = -errno; /* save errno for later */
-#endif
-
- FD_ZERO(&in_fds);
- max_in_fd = 0;
-}
-
-/********************************************************************
- *
- * sys_cleanup - restore any system state we modified before exiting:
- * mark the interface down, delete default route and/or proxy arp entry.
- * This shouldn't call die() because it's called from die().
- */
-
-void sys_cleanup(void)
-{
-/*
- * Take down the device
- */
- if (if_is_up) {
- if_is_up = 0;
- sifdown(0);
- }
-/*
- * Delete any routes through the device.
- */
- if (default_route_gateway != 0)
- cifdefaultroute(0, 0, default_route_gateway);
-
- if (has_proxy_arp)
- cifproxyarp(0, proxy_arp_addr);
-}
-
-/********************************************************************
- *
- * sys_close - Clean up in a child process before execing.
- */
-void
-sys_close(void)
-{
- if (new_style_driver)
- close(ppp_dev_fd);
- if (sock_fd >= 0)
- close(sock_fd);
- if (slave_fd >= 0)
- close(slave_fd);
- if (master_fd >= 0)
- close(master_fd);
- closelog();
-}
-
-/********************************************************************
- *
- * set_kdebugflag - Define the debugging level for the kernel
- */
-
-static int set_kdebugflag (int requested_level)
-{
- if (new_style_driver && ifunit < 0)
- return 1;
- if (ioctl(ppp_dev_fd, PPPIOCSDEBUG, &requested_level) < 0) {
- if ( ! ok_error (errno) )
- error("ioctl(PPPIOCSDEBUG): %m");
- return (0);
- }
- SYSDEBUG ((LOG_INFO, "set kernel debugging level to %d",
- requested_level));
- return (1);
-}
-
-/********************************************************************
- *
- * tty_establish_ppp - Turn the serial port into a ppp interface.
- */
-
-int tty_establish_ppp (int tty_fd)
-{
- int x;
- int fd = -1;
-
-/*
- * Ensure that the tty device is in exclusive mode.
- */
- if (ioctl(tty_fd, TIOCEXCL, 0) < 0) {
- if ( ! ok_error ( errno ))
- warn("Couldn't make tty exclusive: %m");
- }
-/*
- * Demand mode - prime the old ppp device to relinquish the unit.
- */
- if (!new_style_driver && looped
- && ioctl(slave_fd, PPPIOCXFERUNIT, 0) < 0) {
- error("ioctl(transfer ppp unit): %m");
- return -1;
- }
-/*
- * Set the current tty to the PPP discpline
- */
-
-#ifndef N_SYNC_PPP
-#define N_SYNC_PPP 14
-#endif
- ppp_disc = (new_style_driver && sync_serial)? N_SYNC_PPP: N_PPP;
- if (ioctl(tty_fd, TIOCSETD, &ppp_disc) < 0) {
- if ( ! ok_error (errno) ) {
- error("Couldn't set tty to PPP discipline: %m");
- return -1;
- }
- }
-
- if (new_style_driver) {
- /* Open another instance of /dev/ppp and connect the channel to it */
- int flags;
-
- if (ioctl(tty_fd, PPPIOCGCHAN, &chindex) == -1) {
- error("Couldn't get channel number: %m");
- goto err;
- }
- dbglog("using channel %d", chindex);
- fd = open("/dev/ppp", O_RDWR);
- if (fd < 0) {
- error("Couldn't reopen /dev/ppp: %m");
- goto err;
- }
- if (ioctl(fd, PPPIOCATTCHAN, &chindex) < 0) {
- error("Couldn't attach to channel %d: %m", chindex);
- goto err_close;
- }
- flags = fcntl(fd, F_GETFL);
- if (flags == -1 || fcntl(fd, F_SETFL, flags | O_NONBLOCK) == -1)
- warn("Couldn't set /dev/ppp (channel) to nonblock: %m");
- set_ppp_fd(fd);
-
- if (!looped)
- ifunit = -1;
- if (!looped && !multilink) {
- /*
- * Create a new PPP unit.
- */
- if (make_ppp_unit() < 0)
- goto err_close;
- }
-
- if (looped)
- set_flags(ppp_dev_fd, get_flags(ppp_dev_fd) & ~SC_LOOP_TRAFFIC);
-
- if (!multilink) {
- add_fd(ppp_dev_fd);
- if (ioctl(fd, PPPIOCCONNECT, &ifunit) < 0) {
- error("Couldn't attach to PPP unit %d: %m", ifunit);
- goto err_close;
- }
- }
-
- } else {
- /*
- * Old-style driver: find out which interface we were given.
- */
- set_ppp_fd (tty_fd);
- if (ioctl(tty_fd, PPPIOCGUNIT, &x) < 0) {
- if (ok_error (errno))
- goto err;
- fatal("ioctl(PPPIOCGUNIT): %m(%d)", errno);
- }
- /* Check that we got the same unit again. */
- if (looped && x != ifunit)
- fatal("transfer_ppp failed: wanted unit %d, got %d", ifunit, x);
- ifunit = x;
-
- /*
- * Fetch the initial file flags and reset blocking mode on the file.
- */
- initfdflags = fcntl(tty_fd, F_GETFL);
- if (initfdflags == -1 ||
- fcntl(tty_fd, F_SETFL, initfdflags | O_NONBLOCK) == -1) {
- if ( ! ok_error (errno))
- warn("Couldn't set device to non-blocking mode: %m");
- }
- }
-
- looped = 0;
-
- /*
- * Enable debug in the driver if requested.
- */
- if (!looped)
- set_kdebugflag (kdebugflag);
-
-#define SC_RCVB (SC_RCV_B7_0 | SC_RCV_B7_1 | SC_RCV_EVNP | SC_RCV_ODDP)
-#define SC_LOGB (SC_DEBUG | SC_LOG_INPKT | SC_LOG_OUTPKT | SC_LOG_RAWIN \
- | SC_LOG_FLUSH)
-
- set_flags(ppp_fd, ((get_flags(ppp_fd) & ~(SC_RCVB | SC_LOGB))
- | ((kdebugflag * SC_DEBUG) & SC_LOGB)));
-
- SYSDEBUG ((LOG_NOTICE, "Using version %d.%d.%d of PPP driver",
- driver_version, driver_modification, driver_patch));
-
- return ppp_fd;
-
- err_close:
- close(fd);
- err:
- if (ioctl(tty_fd, TIOCSETD, &tty_disc) < 0 && !ok_error(errno))
- warn("Couldn't reset tty to normal line discipline: %m");
- return -1;
-}
-
-/********************************************************************
- *
- * tty_disestablish_ppp - Restore the serial port to normal operation,
- * and reconnect the ppp unit to the loopback if in demand mode.
- * This shouldn't call die() because it's called from die().
- */
-
-void tty_disestablish_ppp(int tty_fd)
-{
- if (demand)
- restore_loop();
- if (!hungup) {
-/*
- * Flush the tty output buffer so that the TIOCSETD doesn't hang.
- */
- if (tcflush(tty_fd, TCIOFLUSH) < 0)
- warn("tcflush failed: %m");
-/*
- * Restore the previous line discipline
- */
- if (ioctl(tty_fd, TIOCSETD, &tty_disc) < 0) {
- if ( ! ok_error (errno))
- error("ioctl(TIOCSETD, N_TTY): %m");
- }
-
- if (ioctl(tty_fd, TIOCNXCL, 0) < 0) {
- if ( ! ok_error (errno))
- warn("ioctl(TIOCNXCL): %m(%d)", errno);
- }
-
- /* Reset non-blocking mode on fd. */
- if (initfdflags != -1 && fcntl(tty_fd, F_SETFL, initfdflags) < 0) {
- if ( ! ok_error (errno))
- warn("Couldn't restore device fd flags: %m");
- }
- }
- initfdflags = -1;
-
- if (new_style_driver) {
- close(ppp_fd);
- ppp_fd = -1;
- if (!looped && ifunit >= 0 && ioctl(ppp_dev_fd, PPPIOCDETACH) < 0)
- error("Couldn't release PPP unit: %m");
- if (!multilink)
- remove_fd(ppp_dev_fd);
- }
-}
-
-/*
- * make_ppp_unit - make a new ppp unit for ppp_dev_fd.
- * Assumes new_style_driver.
- */
-static int make_ppp_unit()
-{
- int x;
-
- ifunit = req_unit;
- x = ioctl(ppp_dev_fd, PPPIOCNEWUNIT, &ifunit);
- if (x < 0 && req_unit >= 0 && errno == EEXIST) {
- warn("Couldn't allocate PPP unit %d as it is already in use");
- ifunit = -1;
- x = ioctl(ppp_dev_fd, PPPIOCNEWUNIT, &ifunit);
- }
- if (x < 0)
- error("Couldn't create new ppp unit: %m");
- return x;
-}
-
-/*
- * cfg_bundle - configure the existing bundle.
- * Used in demand mode.
- */
-void cfg_bundle(int mrru, int mtru, int rssn, int tssn)
-{
- int flags;
-
- if (!new_style_driver)
- return;
-
- /* set the mrru, mtu and flags */
- if (ioctl(ppp_dev_fd, PPPIOCSMRRU, &mrru) < 0)
- error("Couldn't set MRRU: %m");
- flags = get_flags(ppp_dev_fd);
- flags &= ~(SC_MP_SHORTSEQ | SC_MP_XSHORTSEQ);
- flags |= (rssn? SC_MP_SHORTSEQ: 0) | (tssn? SC_MP_XSHORTSEQ: 0)
- | (mrru? SC_MULTILINK: 0);
-
- set_flags(ppp_dev_fd, flags);
-
- /* connect up the channel */
- if (ioctl(ppp_fd, PPPIOCCONNECT, &ifunit) < 0)
- fatal("Couldn't attach to PPP unit %d: %m", ifunit);
- add_fd(ppp_dev_fd);
-}
-
-/*
- * make_new_bundle - create a new PPP unit (i.e. a bundle)
- * and connect our channel to it. This should only get called
- * if `multilink' was set at the time establish_ppp was called.
- * In demand mode this uses our existing bundle instead of making
- * a new one.
- */
-void make_new_bundle(int mrru, int mtru, int rssn, int tssn)
-{
- if (!new_style_driver)
- return;
-
- /* make us a ppp unit */
- if (make_ppp_unit() < 0)
- die(1);
-
- /* set the mrru and flags */
- cfg_bundle(mrru, mtru, rssn, tssn);
-}
-
-/*
- * bundle_attach - attach our link to a given PPP unit.
- * We assume the unit is controlled by another pppd.
- */
-int bundle_attach(int ifnum)
-{
- if (!new_style_driver)
- return -1;
-
- if (ioctl(ppp_dev_fd, PPPIOCATTACH, &ifnum) < 0) {
- if (errno == ENXIO)
- return 0; /* doesn't still exist */
- fatal("Couldn't attach to interface unit %d: %m\n", ifnum);
- }
- if (ioctl(ppp_fd, PPPIOCCONNECT, &ifnum) < 0)
- fatal("Couldn't connect to interface unit %d: %m", ifnum);
- set_flags(ppp_dev_fd, get_flags(ppp_dev_fd) | SC_MULTILINK);
-
- ifunit = ifnum;
- return 1;
-}
-
-/********************************************************************
- *
- * clean_check - Fetch the flags for the device and generate
- * appropriate error messages.
- */
-void clean_check(void)
-{
- int x;
- char *s;
-
- if (still_ppp()) {
- if (ioctl(ppp_fd, PPPIOCGFLAGS, (caddr_t) &x) == 0) {
- s = NULL;
- switch (~x & (SC_RCV_B7_0|SC_RCV_B7_1|SC_RCV_EVNP|SC_RCV_ODDP)) {
- case SC_RCV_B7_0:
- s = "all had bit 7 set to 1";
- break;
-
- case SC_RCV_B7_1:
- s = "all had bit 7 set to 0";
- break;
-
- case SC_RCV_EVNP:
- s = "all had odd parity";
- break;
-
- case SC_RCV_ODDP:
- s = "all had even parity";
- break;
- }
-
- if (s != NULL) {
- warn("Receive serial link is not 8-bit clean:");
- warn("Problem: %s", s);
- }
- }
- }
-}
-
-
-/*
- * List of valid speeds.
- */
-
-struct speed {
- int speed_int, speed_val;
-} speeds[] = {
-#ifdef B50
- { 50, B50 },
-#endif
-#ifdef B75
- { 75, B75 },
-#endif
-#ifdef B110
- { 110, B110 },
-#endif
-#ifdef B134
- { 134, B134 },
-#endif
-#ifdef B150
- { 150, B150 },
-#endif
-#ifdef B200
- { 200, B200 },
-#endif
-#ifdef B300
- { 300, B300 },
-#endif
-#ifdef B600
- { 600, B600 },
-#endif
-#ifdef B1200
- { 1200, B1200 },
-#endif
-#ifdef B1800
- { 1800, B1800 },
-#endif
-#ifdef B2000
- { 2000, B2000 },
-#endif
-#ifdef B2400
- { 2400, B2400 },
-#endif
-#ifdef B3600
- { 3600, B3600 },
-#endif
-#ifdef B4800
- { 4800, B4800 },
-#endif
-#ifdef B7200
- { 7200, B7200 },
-#endif
-#ifdef B9600
- { 9600, B9600 },
-#endif
-#ifdef B19200
- { 19200, B19200 },
-#endif
-#ifdef B38400
- { 38400, B38400 },
-#endif
-#ifdef B57600
- { 57600, B57600 },
-#endif
-#ifdef B76800
- { 76800, B76800 },
-#endif
-#ifdef B115200
- { 115200, B115200 },
-#endif
-#ifdef EXTA
- { 19200, EXTA },
-#endif
-#ifdef EXTB
- { 38400, EXTB },
-#endif
-#ifdef B230400
- { 230400, B230400 },
-#endif
-#ifdef B460800
- { 460800, B460800 },
-#endif
-#ifdef B921600
- { 921600, B921600 },
-#endif
- { 0, 0 }
-};
-
-/********************************************************************
- *
- * Translate from bits/second to a speed_t.
- */
-
-static int translate_speed (int bps)
-{
- struct speed *speedp;
-
- if (bps != 0) {
- for (speedp = speeds; speedp->speed_int; speedp++) {
- if (bps == speedp->speed_int)
- return speedp->speed_val;
- }
- warn("speed %d not supported", bps);
- }
- return 0;
-}
-
-/********************************************************************
- *
- * Translate from a speed_t to bits/second.
- */
-
-static int baud_rate_of (int speed)
-{
- struct speed *speedp;
-
- if (speed != 0) {
- for (speedp = speeds; speedp->speed_int; speedp++) {
- if (speed == speedp->speed_val)
- return speedp->speed_int;
- }
- }
- return 0;
-}
-
-/********************************************************************
- *
- * set_up_tty: Set up the serial port on `fd' for 8 bits, no parity,
- * at the requested speed, etc. If `local' is true, set CLOCAL
- * regardless of whether the modem option was specified.
- */
-
-void set_up_tty(int tty_fd, int local)
-{
- int speed;
- struct termios tios;
-
- setdtr(tty_fd, 1);
- if (tcgetattr(tty_fd, &tios) < 0) {
- if (!ok_error(errno))
- fatal("tcgetattr: %m(%d)", errno);
- return;
- }
-
- if (!restore_term)
- inittermios = tios;
-
- tios.c_cflag &= ~(CSIZE | CSTOPB | PARENB | CLOCAL);
- tios.c_cflag |= CS8 | CREAD | HUPCL;
-
- tios.c_iflag = IGNBRK | IGNPAR;
- tios.c_oflag = 0;
- tios.c_lflag = 0;
- tios.c_cc[VMIN] = 1;
- tios.c_cc[VTIME] = 0;
-
- if (local || !modem)
- tios.c_cflag ^= (CLOCAL | HUPCL);
-
- switch (crtscts) {
- case 1:
- tios.c_cflag |= CRTSCTS;
- break;
-
- case -2:
- tios.c_iflag |= IXON | IXOFF;
- tios.c_cc[VSTOP] = 0x13; /* DC3 = XOFF = ^S */
- tios.c_cc[VSTART] = 0x11; /* DC1 = XON = ^Q */
- break;
-
- case -1:
- tios.c_cflag &= ~CRTSCTS;
- break;
-
- default:
- break;
- }
-
- speed = translate_speed(inspeed);
- if (speed) {
- cfsetospeed (&tios, speed);
- cfsetispeed (&tios, speed);
- }
-/*
- * We can't proceed if the serial port speed is B0,
- * since that implies that the serial port is disabled.
- */
- else {
- speed = cfgetospeed(&tios);
- if (speed == B0)
- fatal("Baud rate for %s is 0; need explicit baud rate", devnam);
- }
-
- if (tcsetattr(tty_fd, TCSAFLUSH, &tios) < 0)
- if (!ok_error(errno))
- fatal("tcsetattr: %m");
-
- baud_rate = baud_rate_of(speed);
- restore_term = 1;
-}
-
-/********************************************************************
- *
- * setdtr - control the DTR line on the serial port.
- * This is called from die(), so it shouldn't call die().
- */
-
-void setdtr (int tty_fd, int on)
-{
- int modembits = TIOCM_DTR;
-
- ioctl(tty_fd, (on ? TIOCMBIS : TIOCMBIC), &modembits);
-}
-
-/********************************************************************
- *
- * restore_tty - restore the terminal to the saved settings.
- */
-
-void restore_tty (int tty_fd)
-{
- if (restore_term) {
- restore_term = 0;
-/*
- * Turn off echoing, because otherwise we can get into
- * a loop with the tty and the modem echoing to each other.
- * We presume we are the sole user of this tty device, so
- * when we close it, it will revert to its defaults anyway.
- */
- if (!default_device)
- inittermios.c_lflag &= ~(ECHO | ECHONL);
-
- if (tcsetattr(tty_fd, TCSAFLUSH, &inittermios) < 0) {
- if (! ok_error (errno))
- warn("tcsetattr: %m");
- }
- }
-}
-
-/********************************************************************
- *
- * output - Output PPP packet.
- */
-
-void output (int unit, unsigned char *p, int len)
-{
- int fd = ppp_fd;
- int proto;
-
- if (debug)
- dbglog("sent %P", p, len);
-
- if (len < PPP_HDRLEN)
- return;
- if (new_style_driver) {
- p += 2;
- len -= 2;
- proto = (p[0] << 8) + p[1];
- if (ifunit >= 0 && !(proto >= 0xc000 || proto == PPP_CCPFRAG))
- fd = ppp_dev_fd;
- }
- if (write(fd, p, len) < 0) {
- if (errno == EWOULDBLOCK || errno == ENOBUFS
- || errno == ENXIO || errno == EIO || errno == EINTR)
- warn("write: warning: %m (%d)", errno);
- else
- error("write: %m (%d)", errno);
- }
-}
-
-/********************************************************************
- *
- * wait_input - wait until there is data available,
- * for the length of time specified by *timo (indefinite
- * if timo is NULL).
- */
-
-void wait_input(struct timeval *timo)
-{
- fd_set ready, exc;
- int n;
-
- ready = in_fds;
- exc = in_fds;
- n = select(max_in_fd + 1, &ready, NULL, &exc, timo);
- if (n < 0 && errno != EINTR)
- fatal("select: %m(%d)", errno);
-}
-
-/*
- * add_fd - add an fd to the set that wait_input waits for.
- */
-void add_fd(int fd)
-{
- FD_SET(fd, &in_fds);
- if (fd > max_in_fd)
- max_in_fd = fd;
-}
-
-/*
- * remove_fd - remove an fd from the set that wait_input waits for.
- */
-void remove_fd(int fd)
-{
- FD_CLR(fd, &in_fds);
-}
-
-
-/********************************************************************
- *
- * read_packet - get a PPP packet from the serial device.
- */
-
-int read_packet (unsigned char *buf)
-{
- int len, nr;
-
- len = PPP_MRU + PPP_HDRLEN;
- if (new_style_driver) {
- *buf++ = PPP_ALLSTATIONS;
- *buf++ = PPP_UI;
- len -= 2;
- }
- nr = -1;
- if (ppp_fd >= 0) {
- nr = read(ppp_fd, buf, len);
- if (nr < 0 && errno != EWOULDBLOCK && errno != EIO && errno != EINTR)
- error("read: %m");
- if (nr < 0 && errno == ENXIO)
- return 0;
- }
- if (nr < 0 && new_style_driver && ifunit >= 0) {
- /* N.B. we read ppp_fd first since LCP packets come in there. */
- nr = read(ppp_dev_fd, buf, len);
- if (nr < 0 && errno != EWOULDBLOCK && errno != EIO && errno != EINTR)
- error("read /dev/ppp: %m");
- if (nr < 0 && errno == ENXIO)
- return 0;
- }
- return (new_style_driver && nr > 0)? nr+2: nr;
-}
-
-/********************************************************************
- *
- * get_loop_output - get outgoing packets from the ppp device,
- * and detect when we want to bring the real link up.
- * Return value is 1 if we need to bring up the link, 0 otherwise.
- */
-int
-get_loop_output(void)
-{
- int rv = 0;
- int n;
-
- if (new_style_driver) {
- while ((n = read_packet(inpacket_buf)) > 0)
- if (loop_frame(inpacket_buf, n))
- rv = 1;
- return rv;
- }
-
- while ((n = read(master_fd, inbuf, sizeof(inbuf))) > 0)
- if (loop_chars(inbuf, n))
- rv = 1;
-
- if (n == 0)
- fatal("eof on loopback");
-
- if (errno != EWOULDBLOCK)
- fatal("read from loopback: %m(%d)", errno);
-
- return rv;
-}
-
-/*
- * netif_set_mtu - set the MTU on the PPP network interface.
- */
-void
-netif_set_mtu(int unit, int mtu)
-{
- struct ifreq ifr;
-
- SYSDEBUG ((LOG_DEBUG, "netif_set_mtu: mtu = %d\n", mtu));
-
- memset (&ifr, '\0', sizeof (ifr));
- strlcpy(ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
- ifr.ifr_mtu = mtu;
-
- if (ifunit >= 0 && ioctl(sock_fd, SIOCSIFMTU, (caddr_t) &ifr) < 0)
- fatal("ioctl(SIOCSIFMTU): %m");
-}
-
-/********************************************************************
- *
- * tty_send_config - configure the transmit characteristics of
- * the ppp interface.
- */
-
-void tty_send_config (int mtu,u_int32_t asyncmap,int pcomp,int accomp)
-{
- u_int x;
-
-/*
- * Set the asyncmap and other parameters for the ppp device
- */
- if (!still_ppp())
- return;
- link_mtu = mtu;
- SYSDEBUG ((LOG_DEBUG, "send_config: asyncmap = %lx\n", asyncmap));
- if (ioctl(ppp_fd, PPPIOCSASYNCMAP, (caddr_t) &asyncmap) < 0) {
- if (!ok_error(errno))
- fatal("ioctl(PPPIOCSASYNCMAP): %m(%d)", errno);
- return;
- }
-
- x = get_flags(ppp_fd);
- x = pcomp ? x | SC_COMP_PROT : x & ~SC_COMP_PROT;
- x = accomp ? x | SC_COMP_AC : x & ~SC_COMP_AC;
- x = sync_serial ? x | SC_SYNC : x & ~SC_SYNC;
- set_flags(ppp_fd, x);
-}
-
-/********************************************************************
- *
- * tty_set_xaccm - set the extended transmit ACCM for the interface.
- */
-
-void tty_set_xaccm (ext_accm accm)
-{
- SYSDEBUG ((LOG_DEBUG, "set_xaccm: %08lx %08lx %08lx %08lx\n",
- accm[0], accm[1], accm[2], accm[3]));
-
- if (!still_ppp())
- return;
- if (ioctl(ppp_fd, PPPIOCSXASYNCMAP, accm) < 0 && errno != ENOTTY) {
- if ( ! ok_error (errno))
- warn("ioctl(set extended ACCM): %m(%d)", errno);
- }
-}
-
-/********************************************************************
- *
- * tty_recv_config - configure the receive-side characteristics of
- * the ppp interface.
- */
-
-void tty_recv_config (int mru,u_int32_t asyncmap,int pcomp,int accomp)
-{
- SYSDEBUG ((LOG_DEBUG, "recv_config: mru = %d\n", mru));
-/*
- * If we were called because the link has gone down then there is nothing
- * which may be done. Just return without incident.
- */
- if (!still_ppp())
- return;
-/*
- * Set the receiver parameters
- */
- if (ioctl(ppp_fd, PPPIOCSMRU, (caddr_t) &mru) < 0) {
- if ( ! ok_error (errno))
- error("ioctl(PPPIOCSMRU): %m(%d)", errno);
- }
- if (new_style_driver && ifunit >= 0
- && ioctl(ppp_dev_fd, PPPIOCSMRU, (caddr_t) &mru) < 0)
- error("Couldn't set MRU in generic PPP layer: %m");
-
- SYSDEBUG ((LOG_DEBUG, "recv_config: asyncmap = %lx\n", asyncmap));
- if (ioctl(ppp_fd, PPPIOCSRASYNCMAP, (caddr_t) &asyncmap) < 0) {
- if (!ok_error(errno))
- error("ioctl(PPPIOCSRASYNCMAP): %m(%d)", errno);
- }
-}
-
-/********************************************************************
- *
- * ccp_test - ask kernel whether a given compression method
- * is acceptable for use.
- */
-
-int ccp_test (int unit, u_char *opt_ptr, int opt_len, int for_transmit)
-{
- struct ppp_option_data data;
-
- memset (&data, '\0', sizeof (data));
- data.ptr = opt_ptr;
- data.length = opt_len;
- data.transmit = for_transmit;
-
- if (ioctl(ppp_dev_fd, PPPIOCSCOMPRESS, (caddr_t) &data) >= 0)
- return 1;
-
- return (errno == ENOBUFS)? 0: -1;
-}
-
-/********************************************************************
- *
- * ccp_flags_set - inform kernel about the current state of CCP.
- */
-
-void ccp_flags_set (int unit, int isopen, int isup)
-{
- if (still_ppp()) {
- int x = get_flags(ppp_dev_fd);
- x = isopen? x | SC_CCP_OPEN : x &~ SC_CCP_OPEN;
- x = isup? x | SC_CCP_UP : x &~ SC_CCP_UP;
- set_flags (ppp_dev_fd, x);
- }
-}
-
-#ifdef PPP_FILTER
-/*
- * set_filters - set the active and pass filters in the kernel driver.
- */
-int set_filters(struct bpf_program *pass, struct bpf_program *active)
-{
- struct sock_fprog fp;
-
- fp.len = pass->bf_len;
- fp.filter = (struct sock_filter *) pass->bf_insns;
- if (ioctl(ppp_dev_fd, PPPIOCSPASS, &fp) < 0) {
- if (errno == ENOTTY)
- warn("kernel does not support PPP filtering");
- else
- error("Couldn't set pass-filter in kernel: %m");
- return 0;
- }
- fp.len = active->bf_len;
- fp.filter = (struct sock_filter *) active->bf_insns;
- if (ioctl(ppp_dev_fd, PPPIOCSACTIVE, &fp) < 0) {
- error("Couldn't set active-filter in kernel: %m");
- return 0;
- }
- return 1;
-}
-#endif /* PPP_FILTER */
-
-/********************************************************************
- *
- * get_idle_time - return how long the link has been idle.
- */
-int
-get_idle_time(u, ip)
- int u;
- struct ppp_idle *ip;
-{
- return ioctl(ppp_dev_fd, PPPIOCGIDLE, ip) >= 0;
-}
-
-/********************************************************************
- *
- * get_ppp_stats - return statistics for the link.
- */
-int
-get_ppp_stats(u, stats)
- int u;
- struct pppd_stats *stats;
-{
- struct ifpppstatsreq req;
-
- memset (&req, 0, sizeof (req));
-
- req.stats_ptr = (caddr_t) &req.stats;
- strlcpy(req.ifr__name, ifname, sizeof(req.ifr__name));
- if (ioctl(sock_fd, SIOCGPPPSTATS, &req) < 0) {
- error("Couldn't get PPP statistics: %m");
- return 0;
- }
- stats->bytes_in = req.stats.p.ppp_ibytes;
- stats->bytes_out = req.stats.p.ppp_obytes;
- return 1;
-}
-
-/********************************************************************
- *
- * ccp_fatal_error - returns 1 if decompression was disabled as a
- * result of an error detected after decompression of a packet,
- * 0 otherwise. This is necessary because of patent nonsense.
- */
-
-int ccp_fatal_error (int unit)
-{
- int x = get_flags(ppp_dev_fd);
-
- return x & SC_DC_FERROR;
-}
-
-/********************************************************************
- *
- * path_to_procfs - find the path to the proc file system mount point
- */
-static char proc_path[MAXPATHLEN];
-static int proc_path_len;
-
-static char *path_to_procfs(const char *tail)
-{
- struct mntent *mntent;
- FILE *fp;
-
- if (proc_path_len == 0) {
- /* Default the mount location of /proc */
- strlcpy (proc_path, "/proc", sizeof(proc_path));
- proc_path_len = 5;
- fp = fopen(MOUNTED, "r");
- if (fp != NULL) {
- while ((mntent = getmntent(fp)) != NULL) {
- if (strcmp(mntent->mnt_type, MNTTYPE_IGNORE) == 0)
- continue;
- if (strcmp(mntent->mnt_type, "proc") == 0) {
- strlcpy(proc_path, mntent->mnt_dir, sizeof(proc_path));
- proc_path_len = strlen(proc_path);
- break;
- }
- }
- fclose (fp);
- }
- }
-
- strlcpy(proc_path + proc_path_len, tail,
- sizeof(proc_path) - proc_path_len);
- return proc_path;
-}
-
-/*
- * /proc/net/route parsing stuff.
- */
-#define ROUTE_MAX_COLS 12
-FILE *route_fd = (FILE *) 0;
-static char route_buffer[512];
-static int route_dev_col, route_dest_col, route_gw_col;
-static int route_flags_col, route_mask_col;
-static int route_num_cols;
-
-static int open_route_table (void);
-static void close_route_table (void);
-static int read_route_table (struct rtentry *rt);
-
-/********************************************************************
- *
- * close_route_table - close the interface to the route table
- */
-
-static void close_route_table (void)
-{
- if (route_fd != (FILE *) 0) {
- fclose (route_fd);
- route_fd = (FILE *) 0;
- }
-}
-
-/********************************************************************
- *
- * open_route_table - open the interface to the route table
- */
-static char route_delims[] = " \t\n";
-
-static int open_route_table (void)
-{
- char *path;
-
- close_route_table();
-
- path = path_to_procfs("/net/route");
- route_fd = fopen (path, "r");
- if (route_fd == NULL) {
- error("can't open routing table %s: %m", path);
- return 0;
- }
-
- route_dev_col = 0; /* default to usual columns */
- route_dest_col = 1;
- route_gw_col = 2;
- route_flags_col = 3;
- route_mask_col = 7;
- route_num_cols = 8;
-
- /* parse header line */
- if (fgets(route_buffer, sizeof(route_buffer), route_fd) != 0) {
- char *p = route_buffer, *q;
- int col;
- for (col = 0; col < ROUTE_MAX_COLS; ++col) {
- int used = 1;
- if ((q = strtok(p, route_delims)) == 0)
- break;
- if (strcasecmp(q, "iface") == 0)
- route_dev_col = col;
- else if (strcasecmp(q, "destination") == 0)
- route_dest_col = col;
- else if (strcasecmp(q, "gateway") == 0)
- route_gw_col = col;
- else if (strcasecmp(q, "flags") == 0)
- route_flags_col = col;
- else if (strcasecmp(q, "mask") == 0)
- route_mask_col = col;
- else
- used = 0;
- if (used && col >= route_num_cols)
- route_num_cols = col + 1;
- p = NULL;
- }
- }
-
- return 1;
-}
-
-/********************************************************************
- *
- * read_route_table - read the next entry from the route table
- */
-
-static int read_route_table(struct rtentry *rt)
-{
- char *cols[ROUTE_MAX_COLS], *p;
- int col;
-
- memset (rt, '\0', sizeof (struct rtentry));
-
- if (fgets (route_buffer, sizeof (route_buffer), route_fd) == (char *) 0)
- return 0;
-
- p = route_buffer;
- for (col = 0; col < route_num_cols; ++col) {
- cols[col] = strtok(p, route_delims);
- if (cols[col] == NULL)
- return 0; /* didn't get enough columns */
- p = NULL;
- }
-
- SIN_ADDR(rt->rt_dst) = strtoul(cols[route_dest_col], NULL, 16);
- SIN_ADDR(rt->rt_gateway) = strtoul(cols[route_gw_col], NULL, 16);
- SIN_ADDR(rt->rt_genmask) = strtoul(cols[route_mask_col], NULL, 16);
-
- rt->rt_flags = (short) strtoul(cols[route_flags_col], NULL, 16);
- rt->rt_dev = cols[route_dev_col];
-
- return 1;
-}
-
-/********************************************************************
- *
- * defaultroute_exists - determine if there is a default route
- */
-
-static int defaultroute_exists (struct rtentry *rt)
-{
- int result = 0;
-
- if (!open_route_table())
- return 0;
-
- while (read_route_table(rt) != 0) {
- if ((rt->rt_flags & RTF_UP) == 0)
- continue;
-
- if (kernel_version > KVERSION(2,1,0) && SIN_ADDR(rt->rt_genmask) != 0)
- continue;
- if (SIN_ADDR(rt->rt_dst) == 0L) {
- result = 1;
- break;
- }
- }
-
- close_route_table();
- return result;
-}
-
-/*
- * have_route_to - determine if the system has any route to
- * a given IP address. `addr' is in network byte order.
- * Return value is 1 if yes, 0 if no, -1 if don't know.
- * For demand mode to work properly, we have to ignore routes
- * through our own interface.
- */
-int have_route_to(u_int32_t addr)
-{
- struct rtentry rt;
- int result = 0;
-
- if (!open_route_table())
- return -1; /* don't know */
-
- while (read_route_table(&rt)) {
- if ((rt.rt_flags & RTF_UP) == 0 || strcmp(rt.rt_dev, ifname) == 0)
- continue;
- if ((addr & SIN_ADDR(rt.rt_genmask)) == SIN_ADDR(rt.rt_dst)) {
- result = 1;
- break;
- }
- }
-
- close_route_table();
- return result;
-}
-
-/********************************************************************
- *
- * sifdefaultroute - assign a default route through the address given.
- */
-
-int sifdefaultroute (int unit, u_int32_t ouraddr, u_int32_t gateway)
-{
- struct rtentry rt;
-
- if (defaultroute_exists(&rt) && strcmp(rt.rt_dev, ifname) != 0) {
- u_int32_t old_gateway = SIN_ADDR(rt.rt_gateway);
-
- if (old_gateway != gateway)
- error("not replacing existing default route to %s [%I]",
- rt.rt_dev, old_gateway);
- return 0;
- }
-
- memset (&rt, '\0', sizeof (rt));
- SET_SA_FAMILY (rt.rt_dst, AF_INET);
- SET_SA_FAMILY (rt.rt_gateway, AF_INET);
-
- if (kernel_version > KVERSION(2,1,0)) {
- SET_SA_FAMILY (rt.rt_genmask, AF_INET);
- SIN_ADDR(rt.rt_genmask) = 0L;
- }
-
- SIN_ADDR(rt.rt_gateway) = gateway;
-
- rt.rt_flags = RTF_UP | RTF_GATEWAY;
- if (ioctl(sock_fd, SIOCADDRT, &rt) < 0) {
- if ( ! ok_error ( errno ))
- error("default route ioctl(SIOCADDRT): %m(%d)", errno);
- return 0;
- }
-
- default_route_gateway = gateway;
- return 1;
-}
-
-/********************************************************************
- *
- * cifdefaultroute - delete a default route through the address given.
- */
-
-int cifdefaultroute (int unit, u_int32_t ouraddr, u_int32_t gateway)
-{
- struct rtentry rt;
-
- default_route_gateway = 0;
-
- memset (&rt, '\0', sizeof (rt));
- SET_SA_FAMILY (rt.rt_dst, AF_INET);
- SET_SA_FAMILY (rt.rt_gateway, AF_INET);
-
- if (kernel_version > KVERSION(2,1,0)) {
- SET_SA_FAMILY (rt.rt_genmask, AF_INET);
- SIN_ADDR(rt.rt_genmask) = 0L;
- }
-
- SIN_ADDR(rt.rt_gateway) = gateway;
-
- rt.rt_flags = RTF_UP | RTF_GATEWAY;
- if (ioctl(sock_fd, SIOCDELRT, &rt) < 0 && errno != ESRCH) {
- if (still_ppp()) {
- if ( ! ok_error ( errno ))
- error("default route ioctl(SIOCDELRT): %m (%d)", errno);
- return 0;
- }
- }
-
- return 1;
-}
-
-/********************************************************************
- *
- * sifproxyarp - Make a proxy ARP entry for the peer.
- */
-
-int sifproxyarp (int unit, u_int32_t his_adr)
-{
- struct arpreq arpreq;
- char *forw_path;
-
- if (has_proxy_arp == 0) {
- memset (&arpreq, '\0', sizeof(arpreq));
-
- SET_SA_FAMILY(arpreq.arp_pa, AF_INET);
- SIN_ADDR(arpreq.arp_pa) = his_adr;
- arpreq.arp_flags = ATF_PERM | ATF_PUBL;
-/*
- * Get the hardware address of an interface on the same subnet
- * as our local address.
- */
- if (!get_ether_addr(his_adr, &arpreq.arp_ha, proxy_arp_dev,
- sizeof(proxy_arp_dev))) {
- error("Cannot determine ethernet address for proxy ARP");
- return 0;
- }
- strlcpy(arpreq.arp_dev, proxy_arp_dev, sizeof(arpreq.arp_dev));
-
- if (ioctl(sock_fd, SIOCSARP, (caddr_t)&arpreq) < 0) {
- if ( ! ok_error ( errno ))
- error("ioctl(SIOCSARP): %m(%d)", errno);
- return 0;
- }
- proxy_arp_addr = his_adr;
- has_proxy_arp = 1;
-
- if (tune_kernel) {
- forw_path = path_to_procfs("/sys/net/ipv4/ip_forward");
- if (forw_path != 0) {
- int fd = open(forw_path, O_WRONLY);
- if (fd >= 0) {
- if (write(fd, "1", 1) != 1)
- error("Couldn't enable IP forwarding: %m");
- close(fd);
- }
- }
- }
- }
-
- return 1;
-}
-
-/********************************************************************
- *
- * cifproxyarp - Delete the proxy ARP entry for the peer.
- */
-
-int cifproxyarp (int unit, u_int32_t his_adr)
-{
- struct arpreq arpreq;
-
- if (has_proxy_arp) {
- has_proxy_arp = 0;
- memset (&arpreq, '\0', sizeof(arpreq));
- SET_SA_FAMILY(arpreq.arp_pa, AF_INET);
- SIN_ADDR(arpreq.arp_pa) = his_adr;
- arpreq.arp_flags = ATF_PERM | ATF_PUBL;
- strlcpy(arpreq.arp_dev, proxy_arp_dev, sizeof(arpreq.arp_dev));
-
- if (ioctl(sock_fd, SIOCDARP, (caddr_t)&arpreq) < 0) {
- if ( ! ok_error ( errno ))
- warn("ioctl(SIOCDARP): %m(%d)", errno);
- return 0;
- }
- }
- return 1;
-}
-
-/********************************************************************
- *
- * get_ether_addr - get the hardware address of an interface on the
- * the same subnet as ipaddr.
- */
-
-static int get_ether_addr (u_int32_t ipaddr,
- struct sockaddr *hwaddr,
- char *name, int namelen)
-{
- struct ifreq *ifr, *ifend;
- u_int32_t ina, mask;
- char *aliasp;
- struct ifreq ifreq;
- struct ifconf ifc;
- struct ifreq ifs[MAX_IFS];
-
- ifc.ifc_len = sizeof(ifs);
- ifc.ifc_req = ifs;
- if (ioctl(sock_fd, SIOCGIFCONF, &ifc) < 0) {
- if ( ! ok_error ( errno ))
- error("ioctl(SIOCGIFCONF): %m(%d)", errno);
- return 0;
- }
-
- SYSDEBUG ((LOG_DEBUG, "proxy arp: scanning %d interfaces for IP %s",
- ifc.ifc_len / sizeof(struct ifreq), ip_ntoa(ipaddr)));
-/*
- * Scan through looking for an interface with an Internet
- * address on the same subnet as `ipaddr'.
- */
- ifend = ifs + (ifc.ifc_len / sizeof(struct ifreq));
- for (ifr = ifc.ifc_req; ifr < ifend; ifr++) {
- if (ifr->ifr_addr.sa_family == AF_INET) {
- ina = SIN_ADDR(ifr->ifr_addr);
- strlcpy(ifreq.ifr_name, ifr->ifr_name, sizeof(ifreq.ifr_name));
- SYSDEBUG ((LOG_DEBUG, "proxy arp: examining interface %s",
- ifreq.ifr_name));
-/*
- * Check that the interface is up, and not point-to-point
- * nor loopback.
- */
- if (ioctl(sock_fd, SIOCGIFFLAGS, &ifreq) < 0)
- continue;
-
- if (((ifreq.ifr_flags ^ FLAGS_GOOD) & FLAGS_MASK) != 0)
- continue;
-/*
- * Get its netmask and check that it's on the right subnet.
- */
- if (ioctl(sock_fd, SIOCGIFNETMASK, &ifreq) < 0)
- continue;
-
- mask = SIN_ADDR(ifreq.ifr_addr);
- SYSDEBUG ((LOG_DEBUG, "proxy arp: interface addr %s mask %lx",
- ip_ntoa(ina), ntohl(mask)));
-
- if (((ipaddr ^ ina) & mask) != 0)
- continue;
- break;
- }
- }
-
- if (ifr >= ifend)
- return 0;
-
- strlcpy(name, ifreq.ifr_name, namelen);
-
- /* trim off the :1 in eth0:1 */
- aliasp = strchr(name, ':');
- if (aliasp != 0)
- *aliasp = 0;
-
- info("found interface %s for proxy arp", name);
-/*
- * Now get the hardware address.
- */
- memset (&ifreq.ifr_hwaddr, 0, sizeof (struct sockaddr));
- if (ioctl (sock_fd, SIOCGIFHWADDR, &ifreq) < 0) {
- error("SIOCGIFHWADDR(%s): %m(%d)", ifreq.ifr_name, errno);
- return 0;
- }
-
- memcpy (hwaddr,
- &ifreq.ifr_hwaddr,
- sizeof (struct sockaddr));
-
- SYSDEBUG ((LOG_DEBUG,
- "proxy arp: found hwaddr %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x",
- (int) ((unsigned char *) &hwaddr->sa_data)[0],
- (int) ((unsigned char *) &hwaddr->sa_data)[1],
- (int) ((unsigned char *) &hwaddr->sa_data)[2],
- (int) ((unsigned char *) &hwaddr->sa_data)[3],
- (int) ((unsigned char *) &hwaddr->sa_data)[4],
- (int) ((unsigned char *) &hwaddr->sa_data)[5],
- (int) ((unsigned char *) &hwaddr->sa_data)[6],
- (int) ((unsigned char *) &hwaddr->sa_data)[7]));
- return 1;
-}
-
-/*
- * get_if_hwaddr - get the hardware address for the specified
- * network interface device.
- */
-int
-get_if_hwaddr(u_char *addr, char *name)
-{
- struct ifreq ifreq;
- int ret, sock_fd;
-
- sock_fd = socket(AF_INET, SOCK_DGRAM, 0);
- if (sock_fd < 0)
- return 0;
- memset(&ifreq.ifr_hwaddr, 0, sizeof(struct sockaddr));
- strlcpy(ifreq.ifr_name, name, sizeof(ifreq.ifr_name));
- ret = ioctl(sock_fd, SIOCGIFHWADDR, &ifreq);
- close(sock_fd);
- if (ret >= 0)
- memcpy(addr, ifreq.ifr_hwaddr.sa_data, 6);
- return ret;
-}
-
-/*
- * get_first_ethernet - return the name of the first ethernet-style
- * interface on this system.
- */
-char *
-get_first_ethernet()
-{
- return "eth0";
-}
-
-/********************************************************************
- *
- * Return user specified netmask, modified by any mask we might determine
- * for address `addr' (in network byte order).
- * Here we scan through the system's list of interfaces, looking for
- * any non-point-to-point interfaces which might appear to be on the same
- * network as `addr'. If we find any, we OR in their netmask to the
- * user-specified netmask.
- */
-
-u_int32_t GetMask (u_int32_t addr)
-{
- u_int32_t mask, nmask, ina;
- struct ifreq *ifr, *ifend, ifreq;
- struct ifconf ifc;
- struct ifreq ifs[MAX_IFS];
-
- addr = ntohl(addr);
-
- if (IN_CLASSA(addr)) /* determine network mask for address class */
- nmask = IN_CLASSA_NET;
- else if (IN_CLASSB(addr))
- nmask = IN_CLASSB_NET;
- else
- nmask = IN_CLASSC_NET;
-
- /* class D nets are disallowed by bad_ip_adrs */
- mask = netmask | htonl(nmask);
-/*
- * Scan through the system's network interfaces.
- */
- ifc.ifc_len = sizeof(ifs);
- ifc.ifc_req = ifs;
- if (ioctl(sock_fd, SIOCGIFCONF, &ifc) < 0) {
- if ( ! ok_error ( errno ))
- warn("ioctl(SIOCGIFCONF): %m(%d)", errno);
- return mask;
- }
-
- ifend = (struct ifreq *) (ifc.ifc_buf + ifc.ifc_len);
- for (ifr = ifc.ifc_req; ifr < ifend; ifr++) {
-/*
- * Check the interface's internet address.
- */
- if (ifr->ifr_addr.sa_family != AF_INET)
- continue;
- ina = SIN_ADDR(ifr->ifr_addr);
- if (((ntohl(ina) ^ addr) & nmask) != 0)
- continue;
-/*
- * Check that the interface is up, and not point-to-point nor loopback.
- */
- strlcpy(ifreq.ifr_name, ifr->ifr_name, sizeof(ifreq.ifr_name));
- if (ioctl(sock_fd, SIOCGIFFLAGS, &ifreq) < 0)
- continue;
-
- if (((ifreq.ifr_flags ^ FLAGS_GOOD) & FLAGS_MASK) != 0)
- continue;
-/*
- * Get its netmask and OR it into our mask.
- */
- if (ioctl(sock_fd, SIOCGIFNETMASK, &ifreq) < 0)
- continue;
- mask |= SIN_ADDR(ifreq.ifr_addr);
- break;
- }
- return mask;
-}
-
-/********************************************************************
- *
- * Internal routine to decode the version.modification.patch level
- */
-
-static void decode_version (char *buf, int *version,
- int *modification, int *patch)
-{
- char *endp;
-
- *version = (int) strtoul (buf, &endp, 10);
- *modification = 0;
- *patch = 0;
-
- if (endp != buf && *endp == '.') {
- buf = endp + 1;
- *modification = (int) strtoul (buf, &endp, 10);
- if (endp != buf && *endp == '.') {
- buf = endp + 1;
- *patch = (int) strtoul (buf, &buf, 10);
- }
- }
-}
-
-/********************************************************************
- *
- * Procedure to determine if the PPP line discipline is registered.
- */
-
-static int
-ppp_registered(void)
-{
- int local_fd;
- int mfd = -1;
- int ret = 0;
- char slave[16];
-
- /*
- * We used to open the serial device and set it to the ppp line
- * discipline here, in order to create a ppp unit. But that is
- * not a good idea - the user might have specified a device that
- * they can't open (permission, or maybe it doesn't really exist).
- * So we grab a pty master/slave pair and use that.
- */
- if (!get_pty(&mfd, &local_fd, slave, 0)) {
- no_ppp_msg = "Couldn't determine if PPP is supported (no free ptys)";
- return 0;
- }
-
- /*
- * Try to put the device into the PPP discipline.
- */
- if (ioctl(local_fd, TIOCSETD, &ppp_disc) < 0) {
- error("ioctl(TIOCSETD(PPP)): %m(%d)", errno);
- } else
- ret = 1;
-
- close(local_fd);
- close(mfd);
- return ret;
-}
-
-/********************************************************************
- *
- * ppp_available - check whether the system has any ppp interfaces
- * (in fact we check whether we can do an ioctl on ppp0).
- */
-
-int ppp_available(void)
-{
- int s, ok, fd;
- struct ifreq ifr;
- int size;
- int my_version, my_modification, my_patch;
- int osmaj, osmin, ospatch;
-
- no_ppp_msg =
- "This system lacks kernel support for PPP. This could be because\n"
- "the PPP kernel module could not be loaded, or because PPP was not\n"
- "included in the kernel configuration. If PPP was included as a\n"
- "module, try `/sbin/modprobe -v ppp'. If that fails, check that\n"
- "ppp.o exists in /lib/modules/`uname -r`/net.\n"
- "See README.linux file in the ppp distribution for more details.\n";
-
- /* get the kernel version now, since we are called before sys_init */
- uname(&utsname);
- osmaj = osmin = ospatch = 0;
- sscanf(utsname.release, "%d.%d.%d", &osmaj, &osmin, &ospatch);
- kernel_version = KVERSION(osmaj, osmin, ospatch);
-
- fd = open("/dev/ppp", O_RDWR);
-#if 0
- if (fd < 0 && errno == ENOENT) {
- /* try making it and see if that helps. */
- if (mknod("/dev/ppp", S_IFCHR | S_IRUSR | S_IWUSR,
- makedev(108, 0)) >= 0) {
- fd = open("/dev/ppp", O_RDWR);
- if (fd >= 0)
- info("Created /dev/ppp device node");
- else
- unlink("/dev/ppp"); /* didn't work, undo the mknod */
- } else if (errno == EEXIST) {
- fd = open("/dev/ppp", O_RDWR);
- }
- }
-#endif /* 0 */
- if (fd >= 0) {
- new_style_driver = 1;
-
- /* XXX should get from driver */
- driver_version = 2;
- driver_modification = 4;
- driver_patch = 0;
- close(fd);
- return 1;
- }
- if (kernel_version >= KVERSION(2,3,13)) {
- if (errno == ENOENT)
- no_ppp_msg =
- "pppd is unable to open the /dev/ppp device.\n"
- "You need to create the /dev/ppp device node by\n"
- "executing the following command as root:\n"
- " mknod /dev/ppp c 108 0\n";
- return 0;
- }
-
-/*
- * Open a socket for doing the ioctl operations.
- */
- s = socket(AF_INET, SOCK_DGRAM, 0);
- if (s < 0)
- return 0;
-
- strlcpy (ifr.ifr_name, "ppp0", sizeof (ifr.ifr_name));
- ok = ioctl(s, SIOCGIFFLAGS, (caddr_t) &ifr) >= 0;
-/*
- * If the device did not exist then attempt to create one by putting the
- * current tty into the PPP discipline. If this works then obtain the
- * flags for the device again.
- */
- if (!ok) {
- if (ppp_registered()) {
- strlcpy (ifr.ifr_name, "ppp0", sizeof (ifr.ifr_name));
- ok = ioctl(s, SIOCGIFFLAGS, (caddr_t) &ifr) >= 0;
- }
- }
-/*
- * Ensure that the hardware address is for PPP and not something else
- */
- if (ok)
- ok = ioctl (s, SIOCGIFHWADDR, (caddr_t) &ifr) >= 0;
-
- if (ok && ((ifr.ifr_hwaddr.sa_family & ~0xFF) != ARPHRD_PPP))
- ok = 0;
-
-/*
- * This is the PPP device. Validate the version of the driver at this
- * point to ensure that this program will work with the driver.
- */
- if (ok) {
- char abBuffer [1024];
-
- ifr.ifr_data = abBuffer;
- size = ioctl (s, SIOCGPPPVER, (caddr_t) &ifr);
- if (size < 0) {
- error("Couldn't read driver version: %m");
- ok = 0;
- no_ppp_msg = "Sorry, couldn't verify kernel driver version\n";
-
- } else {
- decode_version(abBuffer,
- &driver_version,
- &driver_modification,
- &driver_patch);
-/*
- * Validate the version of the driver against the version that we used.
- */
- decode_version(VERSION,
- &my_version,
- &my_modification,
- &my_patch);
-
- /* The version numbers must match */
- if (driver_version != my_version)
- ok = 0;
-
- /* The modification levels must be legal */
- if (driver_modification < 3) {
- if (driver_modification >= 2) {
- /* we can cope with 2.2.0 and above */
- driver_is_old = 1;
- } else {
- ok = 0;
- }
- }
-
- close (s);
- if (!ok) {
- slprintf(route_buffer, sizeof(route_buffer),
- "Sorry - PPP driver version %d.%d.%d is out of date\n",
- driver_version, driver_modification, driver_patch);
-
- no_ppp_msg = route_buffer;
- }
- }
- }
- return ok;
-}
-
-/********************************************************************
- *
- * Update the wtmp file with the appropriate user name and tty device.
- */
-
-void logwtmp (const char *line, const char *name, const char *host)
-{
- struct utmp ut, *utp;
- pid_t mypid = getpid();
-#if __GLIBC__ < 2
- int wtmp;
-#endif
-
-/*
- * Update the signon database for users.
- * Christoph Lameter: Copied from poeigl-1.36 Jan 3, 1996
- */
- utmpname(_PATH_UTMP);
- setutent();
- while ((utp = getutent()) && (utp->ut_pid != mypid))
- /* nothing */;
-
- /* Is this call really necessary? There is another one after the 'put' */
- endutent();
-
- if (utp)
- memcpy(&ut, utp, sizeof(ut));
- else
- /* some gettys/telnetds don't initialize utmp... */
- memset(&ut, 0, sizeof(ut));
-
- if (ut.ut_id[0] == 0)
- strncpy(ut.ut_id, line + 3, sizeof(ut.ut_id));
-
- strncpy(ut.ut_user, name, sizeof(ut.ut_user));
- strncpy(ut.ut_line, line, sizeof(ut.ut_line));
-
- time(&ut.ut_time);
-
- ut.ut_type = USER_PROCESS;
- ut.ut_pid = mypid;
-
- /* Insert the host name if one is supplied */
- if (*host)
- strncpy (ut.ut_host, host, sizeof(ut.ut_host));
-
- /* Insert the IP address of the remote system if IP is enabled */
- if (ipcp_protent.enabled_flag && ipcp_hisoptions[0].neg_addr)
- memcpy(&ut.ut_addr, (char *) &ipcp_hisoptions[0].hisaddr,
- sizeof(ut.ut_addr));
-
- /* CL: Makes sure that the logout works */
- if (*host == 0 && *name==0)
- ut.ut_host[0]=0;
-
- pututline(&ut);
- endutent();
-/*
- * Update the wtmp file.
- */
-#if __GLIBC__ >= 2
- updwtmp(_PATH_WTMP, &ut);
-#else
- wtmp = open(_PATH_WTMP, O_APPEND|O_WRONLY);
- if (wtmp >= 0) {
- flock(wtmp, LOCK_EX);
-
- if (write (wtmp, (char *)&ut, sizeof(ut)) != sizeof(ut))
- warn("error writing %s: %m", _PATH_WTMP);
-
- flock(wtmp, LOCK_UN);
-
- close (wtmp);
- }
-#endif
-}
-
-
-/********************************************************************
- *
- * sifvjcomp - config tcp header compression
- */
-
-int sifvjcomp (int u, int vjcomp, int cidcomp, int maxcid)
-{
- u_int x = get_flags(ppp_dev_fd);
-
- if (vjcomp) {
- if (ioctl (ppp_dev_fd, PPPIOCSMAXCID, (caddr_t) &maxcid) < 0) {
- if (! ok_error (errno))
- error("ioctl(PPPIOCSMAXCID): %m(%d)", errno);
- vjcomp = 0;
- }
- }
-
- x = vjcomp ? x | SC_COMP_TCP : x &~ SC_COMP_TCP;
- x = cidcomp ? x & ~SC_NO_TCP_CCID : x | SC_NO_TCP_CCID;
- set_flags (ppp_dev_fd, x);
-
- return 1;
-}
-
-/********************************************************************
- *
- * sifup - Config the interface up and enable IP packets to pass.
- */
-
-int sifup(int u)
-{
- struct ifreq ifr;
-
- memset (&ifr, '\0', sizeof (ifr));
- strlcpy(ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
- if (ioctl(sock_fd, SIOCGIFFLAGS, (caddr_t) &ifr) < 0) {
- if (! ok_error (errno))
- error("ioctl (SIOCGIFFLAGS): %m(%d)", errno);
- return 0;
- }
-
- ifr.ifr_flags |= (IFF_UP | IFF_POINTOPOINT);
- if (ioctl(sock_fd, SIOCSIFFLAGS, (caddr_t) &ifr) < 0) {
- if (! ok_error (errno))
- error("ioctl(SIOCSIFFLAGS): %m(%d)", errno);
- return 0;
- }
- if_is_up++;
-
- return 1;
-}
-
-/********************************************************************
- *
- * sifdown - Disable the indicated protocol and config the interface
- * down if there are no remaining protocols.
- */
-
-int sifdown (int u)
-{
- struct ifreq ifr;
-
- if (if_is_up && --if_is_up > 0)
- return 1;
-
- memset (&ifr, '\0', sizeof (ifr));
- strlcpy(ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
- if (ioctl(sock_fd, SIOCGIFFLAGS, (caddr_t) &ifr) < 0) {
- if (! ok_error (errno))
- error("ioctl (SIOCGIFFLAGS): %m(%d)", errno);
- return 0;
- }
-
- ifr.ifr_flags &= ~IFF_UP;
- ifr.ifr_flags |= IFF_POINTOPOINT;
- if (ioctl(sock_fd, SIOCSIFFLAGS, (caddr_t) &ifr) < 0) {
- if (! ok_error (errno))
- error("ioctl(SIOCSIFFLAGS): %m(%d)", errno);
- return 0;
- }
- return 1;
-}
-
-/********************************************************************
- *
- * sifaddr - Config the interface IP addresses and netmask.
- */
-
-int sifaddr (int unit, u_int32_t our_adr, u_int32_t his_adr,
- u_int32_t net_mask)
-{
- struct ifreq ifr;
- struct rtentry rt;
-
- memset (&ifr, '\0', sizeof (ifr));
- memset (&rt, '\0', sizeof (rt));
-
- SET_SA_FAMILY (ifr.ifr_addr, AF_INET);
- SET_SA_FAMILY (ifr.ifr_dstaddr, AF_INET);
- SET_SA_FAMILY (ifr.ifr_netmask, AF_INET);
-
- strlcpy (ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
-/*
- * Set our IP address
- */
- SIN_ADDR(ifr.ifr_addr) = our_adr;
- if (ioctl(sock_fd, SIOCSIFADDR, (caddr_t) &ifr) < 0) {
- if (errno != EEXIST) {
- if (! ok_error (errno))
- error("ioctl(SIOCSIFADDR): %m(%d)", errno);
- }
- else {
- warn("ioctl(SIOCSIFADDR): Address already exists");
- }
- return (0);
- }
-/*
- * Set the gateway address
- */
- SIN_ADDR(ifr.ifr_dstaddr) = his_adr;
- if (ioctl(sock_fd, SIOCSIFDSTADDR, (caddr_t) &ifr) < 0) {
- if (! ok_error (errno))
- error("ioctl(SIOCSIFDSTADDR): %m(%d)", errno);
- return (0);
- }
-/*
- * Set the netmask.
- * For recent kernels, force the netmask to 255.255.255.255.
- */
- if (kernel_version >= KVERSION(2,1,16))
- net_mask = ~0L;
- if (net_mask != 0) {
- SIN_ADDR(ifr.ifr_netmask) = net_mask;
- if (ioctl(sock_fd, SIOCSIFNETMASK, (caddr_t) &ifr) < 0) {
- if (! ok_error (errno))
- error("ioctl(SIOCSIFNETMASK): %m(%d)", errno);
- return (0);
- }
- }
-/*
- * Add the device route
- */
- if (kernel_version < KVERSION(2,1,16)) {
- SET_SA_FAMILY (rt.rt_dst, AF_INET);
- SET_SA_FAMILY (rt.rt_gateway, AF_INET);
- rt.rt_dev = ifname;
-
- SIN_ADDR(rt.rt_gateway) = 0L;
- SIN_ADDR(rt.rt_dst) = his_adr;
- rt.rt_flags = RTF_UP | RTF_HOST;
-
- if (kernel_version > KVERSION(2,1,0)) {
- SET_SA_FAMILY (rt.rt_genmask, AF_INET);
- SIN_ADDR(rt.rt_genmask) = -1L;
- }
-
- if (ioctl(sock_fd, SIOCADDRT, &rt) < 0) {
- if (! ok_error (errno))
- error("ioctl(SIOCADDRT) device route: %m(%d)", errno);
- return (0);
- }
- }
-
- /* set ip_dynaddr in demand mode if address changes */
- if (demand && tune_kernel && !dynaddr_set
- && our_old_addr && our_old_addr != our_adr) {
- /* set ip_dynaddr if possible */
- char *path;
- int fd;
-
- path = path_to_procfs("/sys/net/ipv4/ip_dynaddr");
- if (path != 0 && (fd = open(path, O_WRONLY)) >= 0) {
- if (write(fd, "1", 1) != 1)
- error("Couldn't enable dynamic IP addressing: %m");
- close(fd);
- }
- dynaddr_set = 1; /* only 1 attempt */
- }
- our_old_addr = 0;
-
- return 1;
-}
-
-/********************************************************************
- *
- * cifaddr - Clear the interface IP addresses, and delete routes
- * through the interface if possible.
- */
-
-int cifaddr (int unit, u_int32_t our_adr, u_int32_t his_adr)
-{
- struct ifreq ifr;
-
- if (kernel_version < KVERSION(2,1,16)) {
-/*
- * Delete the route through the device
- */
- struct rtentry rt;
- memset (&rt, '\0', sizeof (rt));
-
- SET_SA_FAMILY (rt.rt_dst, AF_INET);
- SET_SA_FAMILY (rt.rt_gateway, AF_INET);
- rt.rt_dev = ifname;
-
- SIN_ADDR(rt.rt_gateway) = 0;
- SIN_ADDR(rt.rt_dst) = his_adr;
- rt.rt_flags = RTF_UP | RTF_HOST;
-
- if (kernel_version > KVERSION(2,1,0)) {
- SET_SA_FAMILY (rt.rt_genmask, AF_INET);
- SIN_ADDR(rt.rt_genmask) = -1L;
- }
-
- if (ioctl(sock_fd, SIOCDELRT, &rt) < 0 && errno != ESRCH) {
- if (still_ppp() && ! ok_error (errno))
- error("ioctl(SIOCDELRT) device route: %m(%d)", errno);
- return (0);
- }
- }
-
- /* This way it is possible to have an IPX-only or IPv6-only interface */
- memset(&ifr, 0, sizeof(ifr));
- SET_SA_FAMILY(ifr.ifr_addr, AF_INET);
- strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
-
- if (ioctl(sock_fd, SIOCSIFADDR, (caddr_t) &ifr) < 0) {
- if (! ok_error (errno)) {
- error("ioctl(SIOCSIFADDR): %m(%d)", errno);
- return 0;
- }
- }
-
- our_old_addr = our_adr;
-
- return 1;
-}
-
-#ifdef INET6
-/********************************************************************
- *
- * sif6addr - Config the interface with an IPv6 link-local address
- */
-int sif6addr (int unit, eui64_t our_eui64, eui64_t his_eui64)
-{
- struct in6_ifreq ifr6;
- struct ifreq ifr;
- struct in6_rtmsg rt6;
-
- if (sock6_fd < 0) {
- errno = -sock6_fd;
- error("IPv6 socket creation failed: %m");
- return 0;
- }
- memset(&ifr, 0, sizeof (ifr));
- strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(sock6_fd, SIOCGIFINDEX, (caddr_t) &ifr) < 0) {
- error("sif6addr: ioctl(SIOCGIFINDEX): %m (%d)", errno);
- return 0;
- }
-
- /* Local interface */
- memset(&ifr6, 0, sizeof(ifr6));
- IN6_LLADDR_FROM_EUI64(ifr6.ifr6_addr, our_eui64);
- ifr6.ifr6_ifindex = ifr.ifr_ifindex;
- ifr6.ifr6_prefixlen = 10;
-
- if (ioctl(sock6_fd, SIOCSIFADDR, &ifr6) < 0) {
- error("sif6addr: ioctl(SIOCSIFADDR): %m (%d)", errno);
- return 0;
- }
-
- /* Route to remote host */
- memset(&rt6, 0, sizeof(rt6));
- IN6_LLADDR_FROM_EUI64(rt6.rtmsg_dst, his_eui64);
- rt6.rtmsg_flags = RTF_UP;
- rt6.rtmsg_dst_len = 10;
- rt6.rtmsg_ifindex = ifr.ifr_ifindex;
- rt6.rtmsg_metric = 1;
-
- if (ioctl(sock6_fd, SIOCADDRT, &rt6) < 0) {
- error("sif6addr: ioctl(SIOCADDRT): %m (%d)", errno);
- return 0;
- }
-
- return 1;
-}
-
-
-/********************************************************************
- *
- * cif6addr - Remove IPv6 address from interface
- */
-int cif6addr (int unit, eui64_t our_eui64, eui64_t his_eui64)
-{
- struct ifreq ifr;
- struct in6_ifreq ifr6;
-
- if (sock6_fd < 0) {
- errno = -sock6_fd;
- error("IPv6 socket creation failed: %m");
- return 0;
- }
- memset(&ifr, 0, sizeof(ifr));
- strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(sock6_fd, SIOCGIFINDEX, (caddr_t) &ifr) < 0) {
- error("cif6addr: ioctl(SIOCGIFINDEX): %m (%d)", errno);
- return 0;
- }
-
- memset(&ifr6, 0, sizeof(ifr6));
- IN6_LLADDR_FROM_EUI64(ifr6.ifr6_addr, our_eui64);
- ifr6.ifr6_ifindex = ifr.ifr_ifindex;
- ifr6.ifr6_prefixlen = 10;
-
- if (ioctl(sock6_fd, SIOCDIFADDR, &ifr6) < 0) {
- if (errno != EADDRNOTAVAIL) {
- if (! ok_error (errno))
- error("cif6addr: ioctl(SIOCDIFADDR): %m (%d)", errno);
- }
- else {
- warn("cif6addr: ioctl(SIOCDIFADDR): No such address");
- }
- return (0);
- }
- return 1;
-}
-#endif /* INET6 */
-
-/*
- * get_pty - get a pty master/slave pair and chown the slave side
- * to the uid given. Assumes slave_name points to >= 16 bytes of space.
- */
-int
-get_pty(master_fdp, slave_fdp, slave_name, uid)
- int *master_fdp;
- int *slave_fdp;
- char *slave_name;
- int uid;
-{
- int i, mfd, sfd = -1;
- char pty_name[16];
- struct termios tios;
-
-#ifdef TIOCGPTN
- /*
- * Try the unix98 way first.
- */
- mfd = open("/dev/ptmx", O_RDWR);
- if (mfd >= 0) {
- int ptn;
- if (ioctl(mfd, TIOCGPTN, &ptn) >= 0) {
- slprintf(pty_name, sizeof(pty_name), "/dev/pts/%d", ptn);
- chmod(pty_name, S_IRUSR | S_IWUSR);
-#ifdef TIOCSPTLCK
- ptn = 0;
- if (ioctl(mfd, TIOCSPTLCK, &ptn) < 0)
- warn("Couldn't unlock pty slave %s: %m", pty_name);
-#endif
- if ((sfd = open(pty_name, O_RDWR | O_NOCTTY)) < 0)
- warn("Couldn't open pty slave %s: %m", pty_name);
- }
- }
-#endif /* TIOCGPTN */
-
- if (sfd < 0) {
- /* the old way - scan through the pty name space */
- for (i = 0; i < 64; ++i) {
- slprintf(pty_name, sizeof(pty_name), "/dev/pty%c%x",
- 'p' + i / 16, i % 16);
- mfd = open(pty_name, O_RDWR, 0);
- if (mfd >= 0) {
- pty_name[5] = 't';
- sfd = open(pty_name, O_RDWR | O_NOCTTY, 0);
- if (sfd >= 0) {
- fchown(sfd, uid, -1);
- fchmod(sfd, S_IRUSR | S_IWUSR);
- break;
- }
- close(mfd);
- }
- }
- }
-
- if (sfd < 0)
- return 0;
-
- strlcpy(slave_name, pty_name, 16);
- *master_fdp = mfd;
- *slave_fdp = sfd;
- if (tcgetattr(sfd, &tios) == 0) {
- tios.c_cflag &= ~(CSIZE | CSTOPB | PARENB);
- tios.c_cflag |= CS8 | CREAD | CLOCAL;
- tios.c_iflag = IGNPAR;
- tios.c_oflag = 0;
- tios.c_lflag = 0;
- if (tcsetattr(sfd, TCSAFLUSH, &tios) < 0)
- warn("couldn't set attributes on pty: %m");
- } else
- warn("couldn't get attributes on pty: %m");
-
- return 1;
-}
-
-/********************************************************************
- *
- * open_loopback - open the device we use for getting packets
- * in demand mode. Under Linux, we use a pty master/slave pair.
- */
-int
-open_ppp_loopback(void)
-{
- int flags;
-
- looped = 1;
- if (new_style_driver) {
- /* allocate ourselves a ppp unit */
- if (make_ppp_unit() < 0)
- die(1);
- set_flags(ppp_dev_fd, SC_LOOP_TRAFFIC);
- set_kdebugflag(kdebugflag);
- ppp_fd = -1;
- return ppp_dev_fd;
- }
-
- if (!get_pty(&master_fd, &slave_fd, loop_name, 0))
- fatal("No free pty for loopback");
- SYSDEBUG(("using %s for loopback", loop_name));
-
- set_ppp_fd(slave_fd);
-
- flags = fcntl(master_fd, F_GETFL);
- if (flags == -1 ||
- fcntl(master_fd, F_SETFL, flags | O_NONBLOCK) == -1)
- warn("couldn't set master loopback to nonblock: %m(%d)", errno);
-
- flags = fcntl(ppp_fd, F_GETFL);
- if (flags == -1 ||
- fcntl(ppp_fd, F_SETFL, flags | O_NONBLOCK) == -1)
- warn("couldn't set slave loopback to nonblock: %m(%d)", errno);
-
- if (ioctl(ppp_fd, TIOCSETD, &ppp_disc) < 0)
- fatal("ioctl(TIOCSETD): %m(%d)", errno);
-/*
- * Find out which interface we were given.
- */
- if (ioctl(ppp_fd, PPPIOCGUNIT, &ifunit) < 0)
- fatal("ioctl(PPPIOCGUNIT): %m(%d)", errno);
-/*
- * Enable debug in the driver if requested.
- */
- set_kdebugflag (kdebugflag);
-
- return master_fd;
-}
-
-/********************************************************************
- *
- * restore_loop - reattach the ppp unit to the loopback.
- *
- * The kernel ppp driver automatically reattaches the ppp unit to
- * the loopback if the serial port is set to a line discipline other
- * than ppp, or if it detects a modem hangup. The former will happen
- * in disestablish_ppp if the latter hasn't already happened, so we
- * shouldn't need to do anything.
- *
- * Just to be sure, set the real serial port to the normal discipline.
- */
-
-static void
-restore_loop(void)
-{
- looped = 1;
- if (new_style_driver) {
- set_flags(ppp_dev_fd, get_flags(ppp_dev_fd) | SC_LOOP_TRAFFIC);
- return;
- }
- if (ppp_fd != slave_fd) {
- (void) ioctl(ppp_fd, TIOCSETD, &tty_disc);
- set_ppp_fd(slave_fd);
- }
-}
-
-/********************************************************************
- *
- * sifnpmode - Set the mode for handling packets for a given NP.
- */
-
-int
-sifnpmode(u, proto, mode)
- int u;
- int proto;
- enum NPmode mode;
-{
- struct npioctl npi;
-
- npi.protocol = proto;
- npi.mode = mode;
- if (ioctl(ppp_dev_fd, PPPIOCSNPMODE, (caddr_t) &npi) < 0) {
- if (! ok_error (errno))
- error("ioctl(PPPIOCSNPMODE, %d, %d): %m (%d)",
- proto, mode, errno);
- return 0;
- }
- return 1;
-}
-
-
-/********************************************************************
- *
- * sipxfaddr - Config the interface IPX networknumber
- */
-
-int sipxfaddr (int unit, unsigned long int network, unsigned char * node )
-{
- int result = 1;
-
-#ifdef IPX_CHANGE
- int skfd;
- struct ifreq ifr;
- struct sockaddr_ipx *sipx = (struct sockaddr_ipx *) &ifr.ifr_addr;
-
- skfd = socket (AF_IPX, SOCK_DGRAM, 0);
- if (skfd < 0) {
- if (! ok_error (errno))
- dbglog("socket(AF_IPX): %m (%d)", errno);
- result = 0;
- }
- else {
- memset (&ifr, '\0', sizeof (ifr));
- strlcpy (ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
-
- memcpy (sipx->sipx_node, node, IPX_NODE_LEN);
- sipx->sipx_family = AF_IPX;
- sipx->sipx_port = 0;
- sipx->sipx_network = htonl (network);
- sipx->sipx_type = IPX_FRAME_ETHERII;
- sipx->sipx_action = IPX_CRTITF;
-/*
- * Set the IPX device
- */
- if (ioctl(skfd, SIOCSIFADDR, (caddr_t) &ifr) < 0) {
- result = 0;
- if (errno != EEXIST) {
- if (! ok_error (errno))
- dbglog("ioctl(SIOCSIFADDR, CRTITF): %m (%d)", errno);
- }
- else {
- warn("ioctl(SIOCSIFADDR, CRTITF): Address already exists");
- }
- }
- close (skfd);
- }
-#endif
- return result;
-}
-
-/********************************************************************
- *
- * cipxfaddr - Clear the information for the IPX network. The IPX routes
- * are removed and the device is no longer able to pass IPX
- * frames.
- */
-
-int cipxfaddr (int unit)
-{
- int result = 1;
-
-#ifdef IPX_CHANGE
- int skfd;
- struct ifreq ifr;
- struct sockaddr_ipx *sipx = (struct sockaddr_ipx *) &ifr.ifr_addr;
-
- skfd = socket (AF_IPX, SOCK_DGRAM, 0);
- if (skfd < 0) {
- if (! ok_error (errno))
- dbglog("socket(AF_IPX): %m (%d)", errno);
- result = 0;
- }
- else {
- memset (&ifr, '\0', sizeof (ifr));
- strlcpy (ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
-
- sipx->sipx_type = IPX_FRAME_ETHERII;
- sipx->sipx_action = IPX_DLTITF;
- sipx->sipx_family = AF_IPX;
-/*
- * Set the IPX device
- */
- if (ioctl(skfd, SIOCSIFADDR, (caddr_t) &ifr) < 0) {
- if (! ok_error (errno))
- info("ioctl(SIOCSIFADDR, IPX_DLTITF): %m (%d)", errno);
- result = 0;
- }
- close (skfd);
- }
-#endif
- return result;
-}
-
-/*
- * Use the hostname as part of the random number seed.
- */
-int
-get_host_seed()
-{
- int h;
- char *p = hostname;
-
- h = 407;
- for (p = hostname; *p != 0; ++p)
- h = h * 37 + *p;
- return h;
-}
-
-/********************************************************************
- *
- * sys_check_options - check the options that the user specified
- */
-
-int
-sys_check_options(void)
-{
-#ifdef IPX_CHANGE
-/*
- * Disable the IPX protocol if the support is not present in the kernel.
- */
- char *path;
-
- if (ipxcp_protent.enabled_flag) {
- struct stat stat_buf;
- if ((path = path_to_procfs("/net/ipx_interface")) == 0
- || lstat(path, &stat_buf) < 0) {
- error("IPX support is not present in the kernel\n");
- ipxcp_protent.enabled_flag = 0;
- }
- }
-#endif
- if (demand && driver_is_old) {
- option_error("demand dialling is not supported by kernel driver "
- "version %d.%d.%d", driver_version, driver_modification,
- driver_patch);
- return 0;
- }
- if (multilink && !new_style_driver) {
- warn("Warning: multilink is not supported by the kernel driver");
- multilink = 0;
- }
- return 1;
-}
diff --git a/mdk-stage1/ppp/pppd/sys-solaris.c b/mdk-stage1/ppp/pppd/sys-solaris.c
deleted file mode 100644
index da5f9c45a..000000000
--- a/mdk-stage1/ppp/pppd/sys-solaris.c
+++ /dev/null
@@ -1,2737 +0,0 @@
-/*
- * System-dependent procedures for pppd under Solaris 2.
- *
- * Parts re-written by Adi Masputra <adi.masputra@sun.com>, based on
- * the original sys-svr4.c
- *
- * Copyright (c) 2000 by Sun Microsystems, Inc.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies.
- *
- * SUN MAKES NO REPRESENTATION OR WARRANTIES ABOUT THE SUITABILITY OF
- * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
- * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
- * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
- * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES
- *
- * Copyright (c) 1994 The Australian National University.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies. This software is provided without any
- * warranty, express or implied. The Australian National University
- * makes no representations about the suitability of this software for
- * any purpose.
- *
- * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
- * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
- * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
- * OR MODIFICATIONS.
- */
-
-#define RCSID "$Id$"
-
-#include <limits.h>
-#include <stdio.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <termios.h>
-#ifndef CRTSCTS
-#include <sys/termiox.h>
-#endif
-#include <signal.h>
-#include <utmpx.h>
-#include <sys/types.h>
-#include <sys/ioccom.h>
-#include <sys/stream.h>
-#include <sys/stropts.h>
-#include <sys/socket.h>
-#include <sys/sockio.h>
-#include <sys/sysmacros.h>
-#include <sys/systeminfo.h>
-#include <sys/dlpi.h>
-#include <sys/stat.h>
-#include <sys/mkdev.h>
-#include <net/if.h>
-#include <net/if_arp.h>
-#include <net/route.h>
-#include <net/ppp_defs.h>
-#include <net/pppio.h>
-#include <netinet/in.h>
-#ifdef SOL2
-#include <sys/tihdr.h>
-#include <sys/tiuser.h>
-#include <inet/common.h>
-#include <inet/mib2.h>
-#include <sys/ethernet.h>
-#endif
-
-#include "pppd.h"
-#include "fsm.h"
-#include "lcp.h"
-#include "ipcp.h"
-#include "ccp.h"
-
-#if !defined(PPP_DRV_NAME)
-#define PPP_DRV_NAME "ppp"
-#endif /* !defined(PPP_DRV_NAME) */
-
-#if !defined(PPP_DEV_NAME)
-#define PPP_DEV_NAME "/dev/" PPP_DRV_NAME
-#endif /* !defined(PPP_DEV_NAME) */
-
-#if !defined(AHDLC_MOD_NAME)
-#define AHDLC_MOD_NAME "ppp_ahdl"
-#endif /* !defined(AHDLC_MOD_NAME) */
-
-#if !defined(COMP_MOD_NAME)
-#define COMP_MOD_NAME "ppp_comp"
-#endif /* !defined(COMP_MOD_NAME) */
-
-#if !defined(IP_DEV_NAME)
-#define IP_DEV_NAME "/dev/ip"
-#endif /* !defined(IP_DEV_NAME) */
-
-#if !defined(IP_MOD_NAME)
-#define IP_MOD_NAME "ip"
-#endif /* !defined(IP_MOD_NAME) */
-
-#if !defined(UDP_DEV_NAME) && defined(SOL2)
-#define UDP_DEV_NAME "/dev/udp"
-#endif /* !defined(UDP_DEV_NAME) && defined(SOL2) */
-
-#if !defined(UDP6_DEV_NAME) && defined(SOL2)
-#define UDP6_DEV_NAME "/dev/udp6"
-#endif /* !defined(UDP6_DEV_NAME) && defined(SOL2) */
-
-static const char rcsid[] = RCSID;
-
-#if defined(SOL2)
-/*
- * "/dev/udp" is used as a multiplexor to PLINK the interface stream
- * under. It is used in place of "/dev/ip" since STREAMS will not let
- * a driver be PLINK'ed under itself, and "/dev/ip" is typically the
- * driver at the bottom of the tunneling interfaces stream.
- */
-static char *mux_dev_name = UDP_DEV_NAME;
-#else
-static char *mux_dev_name = IP_DEV_NAME;
-#endif
-static int pppfd;
-static int fdmuxid = -1;
-static int ipfd;
-static int ipmuxid = -1;
-
-#if defined(INET6) && defined(SOL2)
-static int ip6fd; /* IP file descriptor */
-static int ip6muxid = -1; /* Multiplexer file descriptor */
-static int if6_is_up = 0; /* IPv6 interface has been marked up */
-
-#define _IN6_LLX_FROM_EUI64(l, s, eui64, as) do { \
- s->sin6_addr.s6_addr32[0] = htonl(as); \
- eui64_copy(eui64, s->sin6_addr.s6_addr32[2]); \
- s->sin6_family = AF_INET6; \
- l.lifr_addr.ss_family = AF_INET6; \
- l.lifr_addrlen = 10; \
- l.lifr_addr = laddr; \
- } while (0)
-
-#define IN6_LLADDR_FROM_EUI64(l, s, eui64) \
- _IN6_LLX_FROM_EUI64(l, s, eui64, 0xfe800000)
-
-#define IN6_LLTOKEN_FROM_EUI64(l, s, eui64) \
- _IN6_LLX_FROM_EUI64(l, s, eui64, 0)
-
-#endif /* defined(INET6) && defined(SOL2) */
-
-#if defined(INET6) && defined(SOL2)
-static char first_ether_name[LIFNAMSIZ]; /* Solaris 8 and above */
-#else
-static char first_ether_name[IFNAMSIZ]; /* Before Solaris 8 */
-#define MAXIFS 256 /* Max # of interfaces */
-#endif /* defined(INET6) && defined(SOL2) */
-
-static int restore_term;
-static struct termios inittermios;
-#ifndef CRTSCTS
-static struct termiox inittermiox;
-static int termiox_ok;
-#endif
-static struct winsize wsinfo; /* Initial window size info */
-static pid_t tty_sid; /* original session ID for terminal */
-
-extern u_char inpacket_buf[]; /* borrowed from main.c */
-
-#define MAX_POLLFDS 32
-static struct pollfd pollfds[MAX_POLLFDS];
-static int n_pollfds;
-
-static int link_mtu, link_mru;
-
-#define NMODULES 32
-static int tty_nmodules;
-static char tty_modules[NMODULES][FMNAMESZ+1];
-static int tty_npushed;
-
-static int if_is_up; /* Interface has been marked up */
-static u_int32_t remote_addr; /* IP address of peer */
-static u_int32_t default_route_gateway; /* Gateway for default route added */
-static u_int32_t proxy_arp_addr; /* Addr for proxy arp entry added */
-
-/* Prototypes for procedures local to this file. */
-static int translate_speed __P((int));
-static int baud_rate_of __P((int));
-static int get_ether_addr __P((u_int32_t, struct sockaddr *));
-static int get_hw_addr __P((char *, u_int32_t, struct sockaddr *));
-static int get_hw_addr_dlpi __P((char *, struct sockaddr *));
-static int dlpi_attach __P((int, int));
-static int dlpi_info_req __P((int));
-static int dlpi_get_reply __P((int, union DL_primitives *, int, int));
-static int strioctl __P((int, int, void *, int, int));
-
-#ifdef SOL2
-/*
- * sifppa - Sets interface ppa
- *
- * without setting the ppa, ip module will return EINVAL upon setting the
- * interface UP (SIOCSxIFFLAGS). This is because ip module in 2.8 expects
- * two DLPI_INFO_REQ to be sent down to the driver (below ip) before
- * IFF_UP can be set. Plumbing the device causes one DLPI_INFO_REQ to
- * be sent down, and the second DLPI_INFO_REQ is sent upon receiving
- * IF_UNITSEL (old) or SIOCSLIFNAME (new) ioctls. Such setting of the ppa
- * is required because the ppp DLPI provider advertises itself as
- * a DLPI style 2 type, which requires a point of attachment to be
- * specified. The only way the user can specify a point of attachment
- * is via SIOCSLIFNAME or IF_UNITSEL.
- *
- * Such changes in the behavior of ip module was made to meet new or
- * evolving standards requirements.
- *
- */
-static int
-sifppa(fd, ppa)
- int fd;
- int ppa;
-{
- return (int)ioctl(fd, IF_UNITSEL, (char *)&ppa);
-}
-#endif /* SOL2 */
-
-#if defined(SOL2) && defined(INET6)
-/*
- * get_first_ethernet - returns the first Ethernet interface name found in
- * the system, or NULL if none is found
- *
- * NOTE: This is the lifreq version (Solaris 8 and above)
- */
-char *
-get_first_ethernet()
-{
- struct lifnum lifn;
- struct lifconf lifc;
- struct lifreq *plifreq;
- struct lifreq lifr;
- int fd, num_ifs, i, found;
- uint_t fl, req_size;
- char *req;
-
- fd = socket(AF_INET, SOCK_DGRAM, 0);
- if (fd < 0) {
- return 0;
- }
-
- /*
- * Find out how many interfaces are running
- */
- lifn.lifn_family = AF_UNSPEC;
- lifn.lifn_flags = LIFC_NOXMIT;
- if (ioctl(fd, SIOCGLIFNUM, &lifn) < 0) {
- close(fd);
- error("could not determine number of interfaces: %m");
- return 0;
- }
-
- num_ifs = lifn.lifn_count;
- req_size = num_ifs * sizeof(struct lifreq);
- req = malloc(req_size);
- if (req == NULL) {
- close(fd);
- error("out of memory");
- return 0;
- }
-
- /*
- * Get interface configuration info for all interfaces
- */
- lifc.lifc_family = AF_UNSPEC;
- lifc.lifc_flags = LIFC_NOXMIT;
- lifc.lifc_len = req_size;
- lifc.lifc_buf = req;
- if (ioctl(fd, SIOCGLIFCONF, &lifc) < 0) {
- close(fd);
- free(req);
- error("SIOCGLIFCONF: %m");
- return 0;
- }
-
- /*
- * And traverse each interface to look specifically for the first
- * occurence of an Ethernet interface which has been marked up
- */
- plifreq = lifc.lifc_req;
- found = 0;
- for (i = lifc.lifc_len / sizeof(struct lifreq); i > 0; i--, plifreq++) {
-
- if (strchr(plifreq->lifr_name, ':') != NULL)
- continue;
-
- memset(&lifr, 0, sizeof(lifr));
- strncpy(lifr.lifr_name, plifreq->lifr_name, sizeof(lifr.lifr_name));
- if (ioctl(fd, SIOCGLIFFLAGS, &lifr) < 0) {
- close(fd);
- free(req);
- error("SIOCGLIFFLAGS: %m");
- return 0;
- }
- fl = lifr.lifr_flags;
-
- if ((fl & (IFF_UP|IFF_BROADCAST|IFF_POINTOPOINT|IFF_LOOPBACK|IFF_NOARP))
- != (IFF_UP | IFF_BROADCAST))
- continue;
-
- found = 1;
- break;
- }
- free(req);
- close(fd);
-
- if (found) {
- strncpy(first_ether_name, lifr.lifr_name, sizeof(first_ether_name));
- return (char *)first_ether_name;
- } else
- return NULL;
-}
-#else
-/*
- * get_first_ethernet - returns the first Ethernet interface name found in
- * the system, or NULL if none is found
- *
- * NOTE: This is the ifreq version (before Solaris 8).
- */
-char *
-get_first_ethernet()
-{
- struct ifconf ifc;
- struct ifreq *pifreq;
- struct ifreq ifr;
- int fd, num_ifs, i, found;
- uint_t fl, req_size;
- char *req;
-
- fd = socket(AF_INET, SOCK_DGRAM, 0);
- if (fd < 0) {
- return 0;
- }
-
- /*
- * Find out how many interfaces are running
- */
- if (ioctl(fd, SIOCGIFNUM, (char *)&num_ifs) < 0) {
- num_ifs = MAXIFS;
- }
-
- req_size = num_ifs * sizeof(struct ifreq);
- req = malloc(req_size);
- if (req == NULL) {
- close(fd);
- error("out of memory");
- return 0;
- }
-
- /*
- * Get interface configuration info for all interfaces
- */
- ifc.ifc_len = req_size;
- ifc.ifc_buf = req;
- if (ioctl(fd, SIOCGIFCONF, &ifc) < 0) {
- close(fd);
- free(req);
- error("SIOCGIFCONF: %m");
- return 0;
- }
-
- /*
- * And traverse each interface to look specifically for the first
- * occurence of an Ethernet interface which has been marked up
- */
- pifreq = ifc.ifc_req;
- found = 0;
- for (i = ifc.ifc_len / sizeof(struct ifreq); i > 0; i--, pifreq++) {
-
- if (strchr(pifreq->ifr_name, ':') != NULL)
- continue;
-
- memset(&ifr, 0, sizeof(ifr));
- strncpy(ifr.ifr_name, pifreq->ifr_name, sizeof(ifr.ifr_name));
- if (ioctl(fd, SIOCGIFFLAGS, &ifr) < 0) {
- close(fd);
- free(req);
- error("SIOCGIFFLAGS: %m");
- return 0;
- }
- fl = ifr.ifr_flags;
-
- if ((fl & (IFF_UP|IFF_BROADCAST|IFF_POINTOPOINT|IFF_LOOPBACK|IFF_NOARP))
- != (IFF_UP | IFF_BROADCAST))
- continue;
-
- found = 1;
- break;
- }
- free(req);
- close(fd);
-
- if (found) {
- strncpy(first_ether_name, ifr.ifr_name, sizeof(first_ether_name));
- return (char *)first_ether_name;
- } else
- return NULL;
-}
-#endif /* defined(SOL2) && defined(INET6) */
-
-#if defined(SOL2)
-/*
- * get_if_hwaddr - get the hardware address for the specified
- * network interface device.
- */
-int
-get_if_hwaddr(u_char *addr, char *if_name)
-{
- struct sockaddr s_eth_addr;
- struct ether_addr *eth_addr = (struct ether_addr *)&s_eth_addr.sa_data;
-
- if (if_name == NULL)
- return -1;
-
- /*
- * Send DL_INFO_REQ to the driver to solicit its MAC address
- */
- if (!get_hw_addr_dlpi(if_name, &s_eth_addr)) {
- error("could not obtain hardware address for %s", if_name);
- return -1;
- }
-
- memcpy(addr, eth_addr->ether_addr_octet, 6);
- return 1;
-}
-#endif /* SOL2 */
-
-#if defined(SOL2) && defined(INET6)
-/*
- * slifname - Sets interface ppa and flags
- *
- * in addition to the comments stated in sifppa(), IFF_IPV6 bit must
- * be set in order to declare this as an IPv6 interface
- */
-static int
-slifname(fd, ppa)
- int fd;
- int ppa;
-{
- struct lifreq lifr;
- int ret;
-
- memset(&lifr, 0, sizeof(lifr));
- ret = ioctl(fd, SIOCGLIFFLAGS, &lifr);
- if (ret < 0)
- goto slifname_done;
-
- lifr.lifr_flags |= IFF_IPV6;
- lifr.lifr_flags &= ~(IFF_BROADCAST | IFF_IPV4);
- lifr.lifr_ppa = ppa;
- strlcpy(lifr.lifr_name, ifname, sizeof(lifr.lifr_name));
-
- ret = ioctl(fd, SIOCSLIFNAME, &lifr);
-
-slifname_done:
- return ret;
-
-
-}
-
-
-/*
- * ether_to_eui64 - Convert 48-bit Ethernet address into 64-bit EUI
- *
- * walks the list of valid ethernet interfaces, and convert the first
- * found 48-bit MAC address into EUI 64. caller also assumes that
- * the system has a properly configured Ethernet interface for this
- * function to return non-zero.
- */
-int
-ether_to_eui64(eui64_t *p_eui64)
-{
- struct sockaddr s_eth_addr;
- struct ether_addr *eth_addr = (struct ether_addr *)&s_eth_addr.sa_data;
- char *if_name;
-
- if ((if_name = get_first_ethernet()) == NULL) {
- error("no persistent id can be found");
- return 0;
- }
-
- /*
- * Send DL_INFO_REQ to the driver to solicit its MAC address
- */
- if (!get_hw_addr_dlpi(if_name, &s_eth_addr)) {
- error("could not obtain hardware address for %s", if_name);
- return 0;
- }
-
- /*
- * And convert the EUI-48 into EUI-64, per RFC 2472 [sec 4.1]
- */
- p_eui64->e8[0] = (eth_addr->ether_addr_octet[0] & 0xFF) | 0x02;
- p_eui64->e8[1] = (eth_addr->ether_addr_octet[1] & 0xFF);
- p_eui64->e8[2] = (eth_addr->ether_addr_octet[2] & 0xFF);
- p_eui64->e8[3] = 0xFF;
- p_eui64->e8[4] = 0xFE;
- p_eui64->e8[5] = (eth_addr->ether_addr_octet[3] & 0xFF);
- p_eui64->e8[6] = (eth_addr->ether_addr_octet[4] & 0xFF);
- p_eui64->e8[7] = (eth_addr->ether_addr_octet[5] & 0xFF);
-
- return 1;
-}
-#endif /* defined(SOL2) && defined(INET6) */
-
-/*
- * sys_init - System-dependent initialization.
- */
-void
-sys_init()
-{
- int ifd, x;
- struct ifreq ifr;
-#if defined(INET6) && defined(SOL2)
- int i6fd;
- struct lifreq lifr;
-#endif /* defined(INET6) && defined(SOL2) */
-#if !defined(SOL2)
- struct {
- union DL_primitives prim;
- char space[64];
- } reply;
-#endif /* !defined(SOL2) */
-
- ipfd = open(mux_dev_name, O_RDWR, 0);
- if (ipfd < 0)
- fatal("Couldn't open IP device: %m");
-
-#if defined(INET6) && defined(SOL2)
- ip6fd = open(UDP6_DEV_NAME, O_RDWR, 0);
- if (ip6fd < 0)
- fatal("Couldn't open IP device (2): %m");
-#endif /* defined(INET6) && defined(SOL2) */
-
- if (default_device && !notty)
- tty_sid = getsid((pid_t)0);
-
- pppfd = open(PPP_DEV_NAME, O_RDWR | O_NONBLOCK, 0);
- if (pppfd < 0)
- fatal("Can't open %s: %m", PPP_DEV_NAME);
- if (kdebugflag & 1) {
- x = PPPDBG_LOG + PPPDBG_DRIVER;
- strioctl(pppfd, PPPIO_DEBUG, &x, sizeof(int), 0);
- }
-
- /* Assign a new PPA and get its unit number. */
- if (strioctl(pppfd, PPPIO_NEWPPA, &ifunit, 0, sizeof(int)) < 0)
- fatal("Can't create new PPP interface: %m");
-
-#if defined(SOL2)
- /*
- * Since sys_init() is called prior to ifname being set in main(),
- * we need to get the ifname now, otherwise slifname(), and others,
- * will fail, or maybe, I should move them to a later point ?
- * <adi.masputra@sun.com>
- */
- sprintf(ifname, PPP_DRV_NAME "%d", ifunit);
-#endif /* defined(SOL2) */
- /*
- * Open the ppp device again and link it under the ip multiplexor.
- * IP will assign a unit number which hopefully is the same as ifunit.
- * I don't know any way to be certain they will be the same. :-(
- */
- ifd = open(PPP_DEV_NAME, O_RDWR, 0);
- if (ifd < 0)
- fatal("Can't open %s (2): %m", PPP_DEV_NAME);
- if (kdebugflag & 1) {
- x = PPPDBG_LOG + PPPDBG_DRIVER;
- strioctl(ifd, PPPIO_DEBUG, &x, sizeof(int), 0);
- }
-
-#if defined(INET6) && defined(SOL2)
- i6fd = open(PPP_DEV_NAME, O_RDWR, 0);
- if (i6fd < 0) {
- close(ifd);
- fatal("Can't open %s (3): %m", PPP_DEV_NAME);
- }
- if (kdebugflag & 1) {
- x = PPPDBG_LOG + PPPDBG_DRIVER;
- strioctl(i6fd, PPPIO_DEBUG, &x, sizeof(int), 0);
- }
-#endif /* defined(INET6) && defined(SOL2) */
-
-#if defined(SOL2)
- if (ioctl(ifd, I_PUSH, IP_MOD_NAME) < 0) {
- close(ifd);
-#if defined(INET6)
- close(i6fd);
-#endif /* defined(INET6) */
- fatal("Can't push IP module: %m");
- }
-
- /*
- * Assign ppa according to the unit number returned by ppp device
- * after plumbing is completed above.
- */
- if (sifppa(ifd, ifunit) < 0) {
- close (ifd);
-#if defined(INET6)
- close(i6fd);
-#endif /* defined(INET6) */
- fatal("Can't set ppa for unit %d: %m", ifunit);
- }
-
-#if defined(INET6)
- /*
- * An IPv6 interface is created anyway, even when the user does not
- * explicitly enable it. Note that the interface will be marked
- * IPv6 during slifname().
- */
- if (ioctl(i6fd, I_PUSH, IP_MOD_NAME) < 0) {
- close(ifd);
- close(i6fd);
- fatal("Can't push IP module (2): %m");
- }
-
- /*
- * Assign ppa according to the unit number returned by ppp device
- * after plumbing is completed above. In addition, mark the interface
- * as an IPv6 interface.
- */
- if (slifname(i6fd, ifunit) < 0) {
- close(ifd);
- close(i6fd);
- fatal("Can't set ifname for unit %d: %m", ifunit);
- }
-#endif /* defined(INET6) */
-
- ipmuxid = ioctl(ipfd, I_PLINK, ifd);
- close(ifd);
- if (ipmuxid < 0) {
-#if defined(INET6)
- close(i6fd);
-#endif /* defined(INET6) */
- fatal("Can't I_PLINK PPP device to IP: %m");
- }
-
- memset(&ifr, 0, sizeof(ifr));
- sprintf(ifr.ifr_name, "%s", ifname);
- ifr.ifr_ip_muxid = ipmuxid;
-
- /*
- * In Sol 8 and later, STREAMS dynamic module plumbing feature exists.
- * This is so that an arbitrary module can be inserted, or deleted,
- * between ip module and the device driver without tearing down the
- * existing stream. Such feature requires the mux ids, which is set
- * by SIOCSIFMUXID (or SIOCLSIFMUXID).
- */
- if (ioctl(ipfd, SIOCSIFMUXID, &ifr) < 0) {
- ioctl(ipfd, I_PUNLINK, ipmuxid);
-#if defined(INET6)
- close(i6fd);
-#endif /* defined(INET6) */
- fatal("SIOCSIFMUXID: %m");
- }
-
-#else /* else if !defined(SOL2) */
-
- if (dlpi_attach(ifd, ifunit) < 0 ||
- dlpi_get_reply(ifd, &reply.prim, DL_OK_ACK, sizeof(reply)) < 0) {
- close(ifd);
- fatal("Can't attach to ppp%d: %m", ifunit);
- }
-
- ipmuxid = ioctl(ipfd, I_LINK, ifd);
- close(ifd);
- if (ipmuxid < 0)
- fatal("Can't link PPP device to IP: %m");
-#endif /* defined(SOL2) */
-
-#if defined(INET6) && defined(SOL2)
- ip6muxid = ioctl(ip6fd, I_PLINK, i6fd);
- close(i6fd);
- if (ip6muxid < 0) {
- ioctl(ipfd, I_PUNLINK, ipmuxid);
- fatal("Can't I_PLINK PPP device to IP (2): %m");
- }
-
- memset(&lifr, 0, sizeof(lifr));
- sprintf(lifr.lifr_name, "%s", ifname);
- lifr.lifr_ip_muxid = ip6muxid;
-
- /*
- * Let IP know of the mux id [see comment for SIOCSIFMUXID above]
- */
- if (ioctl(ip6fd, SIOCSLIFMUXID, &lifr) < 0) {
- ioctl(ipfd, I_PUNLINK, ipmuxid);
- ioctl(ip6fd, I_PUNLINK, ip6muxid);
- fatal("Can't link PPP device to IP (2): %m");
- }
-#endif /* defined(INET6) && defined(SOL2) */
-
-#if !defined(SOL2)
- /* Set the interface name for the link. */
- slprintf(ifr.ifr_name, sizeof(ifr.ifr_name), PPP_DRV_NAME "%d", ifunit);
- ifr.ifr_metric = ipmuxid;
- if (strioctl(ipfd, SIOCSIFNAME, (char *)&ifr, sizeof ifr, 0) < 0)
- fatal("Can't set interface name %s: %m", ifr.ifr_name);
-#endif /* !defined(SOL2) */
-
- n_pollfds = 0;
-}
-
-/*
- * sys_cleanup - restore any system state we modified before exiting:
- * mark the interface down, delete default route and/or proxy arp entry.
- * This should call die() because it's called from die().
- */
-void
-sys_cleanup()
-{
-#if defined(SOL2)
- struct ifreq ifr;
-#if defined(INET6)
- struct lifreq lifr;
-#endif /* defined(INET6) */
-#endif /* defined(SOL2) */
-
-#if defined(SOL2) && defined(INET6)
- if (if6_is_up)
- sif6down(0);
-#endif /* defined(SOL2) && defined(INET6) */
- if (if_is_up)
- sifdown(0);
- if (default_route_gateway)
- cifdefaultroute(0, default_route_gateway, default_route_gateway);
- if (proxy_arp_addr)
- cifproxyarp(0, proxy_arp_addr);
-#if defined(SOL2)
- /*
- * Make sure we ask ip what the muxid, because 'ifconfig modlist' will
- * unlink and re-link the modules, causing the muxid to change.
- */
- memset(&ifr, 0, sizeof(ifr));
- sprintf(ifr.ifr_name, "%s", ifname);
- if (ioctl(ipfd, SIOCGIFFLAGS, &ifr) < 0) {
- error("SIOCGIFFLAGS: %m");
- return;
- }
-
- if (ioctl(ipfd, SIOCGIFMUXID, &ifr) < 0) {
- error("SIOCGIFMUXID: %m");
- return;
- }
-
- ipmuxid = ifr.ifr_ip_muxid;
-
- if (ioctl(ipfd, I_PUNLINK, ipmuxid) < 0) {
- error("Can't I_PUNLINK PPP from IP: %m");
- return;
- }
-#if defined(INET6)
- /*
- * Make sure we ask ip what the muxid, because 'ifconfig modlist' will
- * unlink and re-link the modules, causing the muxid to change.
- */
- memset(&lifr, 0, sizeof(lifr));
- sprintf(lifr.lifr_name, "%s", ifname);
- if (ioctl(ip6fd, SIOCGLIFFLAGS, &lifr) < 0) {
- error("SIOCGLIFFLAGS: %m");
- return;
- }
-
- if (ioctl(ip6fd, SIOCGLIFMUXID, &lifr) < 0) {
- error("SIOCGLIFMUXID: %m");
- return;
- }
-
- ip6muxid = lifr.lifr_ip_muxid;
-
- if (ioctl(ip6fd, I_PUNLINK, ip6muxid) < 0) {
- error("Can't I_PUNLINK PPP from IP (2): %m");
- }
-#endif /* defined(INET6) */
-#endif /* defined(SOL2) */
-}
-
-/*
- * sys_close - Clean up in a child process before execing.
- */
-void
-sys_close()
-{
- close(ipfd);
-#if defined(INET6) && defined(SOL2)
- close(ip6fd);
-#endif /* defined(INET6) && defined(SOL2) */
- if (pppfd >= 0)
- close(pppfd);
-}
-
-/*
- * sys_check_options - check the options that the user specified
- */
-int
-sys_check_options()
-{
- return 1;
-}
-
-#if 0
-/*
- * daemon - Detach us from controlling terminal session.
- */
-int
-daemon(nochdir, noclose)
- int nochdir, noclose;
-{
- int pid;
-
- if ((pid = fork()) < 0)
- return -1;
- if (pid != 0)
- exit(0); /* parent dies */
- setsid();
- if (!nochdir)
- chdir("/");
- if (!noclose) {
- fclose(stdin); /* don't need stdin, stdout, stderr */
- fclose(stdout);
- fclose(stderr);
- }
- return 0;
-}
-#endif
-
-/*
- * ppp_available - check whether the system has any ppp interfaces
- */
-int
-ppp_available()
-{
- struct stat buf;
-
- return stat(PPP_DEV_NAME, &buf) >= 0;
-}
-
-/*
- * any_compressions - see if compression is enabled or not
- *
- * In the STREAMS implementation of kernel-portion pppd,
- * the comp STREAMS module performs the ACFC, PFC, as well
- * CCP and VJ compressions. However, if the user has explicitly
- * declare to not enable them from the command line, there is
- * no point of having the comp module be pushed on the stream.
- */
-static int
-any_compressions()
-{
- if ((!lcp_wantoptions[0].neg_accompression) &&
- (!lcp_wantoptions[0].neg_pcompression) &&
- (!ccp_protent.enabled_flag) &&
- (!ipcp_wantoptions[0].neg_vj)) {
- return 0;
- }
- return 1;
-}
-
-/*
- * tty_establish_ppp - Turn the serial port into a ppp interface.
- */
-int
-tty_establish_ppp(fd)
- int fd;
-{
- int i;
-
- /* Pop any existing modules off the tty stream. */
- for (i = 0;; ++i)
- if (ioctl(fd, I_LOOK, tty_modules[i]) < 0
- || strcmp(tty_modules[i], "ptem") == 0
- || ioctl(fd, I_POP, 0) < 0)
- break;
- tty_nmodules = i;
-
- /* Push the async hdlc module and the compressor module. */
- tty_npushed = 0;
-
- if(!sync_serial) {
- if (ioctl(fd, I_PUSH, AHDLC_MOD_NAME) < 0) {
- error("Couldn't push PPP Async HDLC module: %m");
- return -1;
- }
- ++tty_npushed;
- }
- if (kdebugflag & 4) {
- i = PPPDBG_LOG + PPPDBG_AHDLC;
- strioctl(pppfd, PPPIO_DEBUG, &i, sizeof(int), 0);
- }
- /*
- * There's no need to push comp module if we don't intend
- * to compress anything
- */
- if (any_compressions()) {
- if (ioctl(fd, I_PUSH, COMP_MOD_NAME) < 0)
- error("Couldn't push PPP compression module: %m");
- else
- ++tty_npushed;
- }
-
- if (kdebugflag & 2) {
- i = PPPDBG_LOG;
- if (any_compressions())
- i += PPPDBG_COMP;
- strioctl(pppfd, PPPIO_DEBUG, &i, sizeof(int), 0);
- }
-
- /* Link the serial port under the PPP multiplexor. */
- if ((fdmuxid = ioctl(pppfd, I_LINK, fd)) < 0) {
- error("Can't link tty to PPP mux: %m");
- return -1;
- }
-
- return pppfd;
-}
-
-/*
- * tty_disestablish_ppp - Restore the serial port to normal operation.
- * It attempts to reconstruct the stream with the previously popped
- * modules. This shouldn't call die() because it's called from die().
- */
-void
-tty_disestablish_ppp(fd)
- int fd;
-{
- int i;
-
- if (fdmuxid >= 0) {
- if (ioctl(pppfd, I_UNLINK, fdmuxid) < 0) {
- if (!hungup)
- error("Can't unlink tty from PPP mux: %m");
- }
- fdmuxid = -1;
-
- if (!hungup) {
- while (tty_npushed > 0 && ioctl(fd, I_POP, 0) >= 0)
- --tty_npushed;
- for (i = tty_nmodules - 1; i >= 0; --i)
- if (ioctl(fd, I_PUSH, tty_modules[i]) < 0)
- error("Couldn't restore tty module %s: %m",
- tty_modules[i]);
- }
- if (hungup && default_device && tty_sid > 0) {
- /*
- * If we have received a hangup, we need to send a SIGHUP
- * to the terminal's controlling process. The reason is
- * that the original stream head for the terminal hasn't
- * seen the M_HANGUP message (it went up through the ppp
- * driver to the stream head for our fd to /dev/ppp).
- */
- kill(tty_sid, SIGHUP);
- }
- }
-}
-
-/*
- * Check whether the link seems not to be 8-bit clean.
- */
-void
-clean_check()
-{
- int x;
- char *s;
-
- if (strioctl(pppfd, PPPIO_GCLEAN, &x, 0, sizeof(x)) < 0)
- return;
- s = NULL;
- switch (~x) {
- case RCV_B7_0:
- s = "bit 7 set to 1";
- break;
- case RCV_B7_1:
- s = "bit 7 set to 0";
- break;
- case RCV_EVNP:
- s = "odd parity";
- break;
- case RCV_ODDP:
- s = "even parity";
- break;
- }
- if (s != NULL) {
- warn("Serial link is not 8-bit clean:");
- warn("All received characters had %s", s);
- }
-}
-
-/*
- * List of valid speeds.
- */
-struct speed {
- int speed_int, speed_val;
-} speeds[] = {
-#ifdef B50
- { 50, B50 },
-#endif
-#ifdef B75
- { 75, B75 },
-#endif
-#ifdef B110
- { 110, B110 },
-#endif
-#ifdef B134
- { 134, B134 },
-#endif
-#ifdef B150
- { 150, B150 },
-#endif
-#ifdef B200
- { 200, B200 },
-#endif
-#ifdef B300
- { 300, B300 },
-#endif
-#ifdef B600
- { 600, B600 },
-#endif
-#ifdef B1200
- { 1200, B1200 },
-#endif
-#ifdef B1800
- { 1800, B1800 },
-#endif
-#ifdef B2000
- { 2000, B2000 },
-#endif
-#ifdef B2400
- { 2400, B2400 },
-#endif
-#ifdef B3600
- { 3600, B3600 },
-#endif
-#ifdef B4800
- { 4800, B4800 },
-#endif
-#ifdef B7200
- { 7200, B7200 },
-#endif
-#ifdef B9600
- { 9600, B9600 },
-#endif
-#ifdef B19200
- { 19200, B19200 },
-#endif
-#ifdef B38400
- { 38400, B38400 },
-#endif
-#ifdef EXTA
- { 19200, EXTA },
-#endif
-#ifdef EXTB
- { 38400, EXTB },
-#endif
-#ifdef B57600
- { 57600, B57600 },
-#endif
-#ifdef B76800
- { 76800, B76800 },
-#endif
-#ifdef B115200
- { 115200, B115200 },
-#endif
-#ifdef B153600
- { 153600, B153600 },
-#endif
-#ifdef B230400
- { 230400, B230400 },
-#endif
-#ifdef B307200
- { 307200, B307200 },
-#endif
-#ifdef B460800
- { 460800, B460800 },
-#endif
- { 0, 0 }
-};
-
-/*
- * Translate from bits/second to a speed_t.
- */
-static int
-translate_speed(bps)
- int bps;
-{
- struct speed *speedp;
-
- if (bps == 0)
- return 0;
- for (speedp = speeds; speedp->speed_int; speedp++)
- if (bps == speedp->speed_int)
- return speedp->speed_val;
- warn("speed %d not supported", bps);
- return 0;
-}
-
-/*
- * Translate from a speed_t to bits/second.
- */
-static int
-baud_rate_of(speed)
- int speed;
-{
- struct speed *speedp;
-
- if (speed == 0)
- return 0;
- for (speedp = speeds; speedp->speed_int; speedp++)
- if (speed == speedp->speed_val)
- return speedp->speed_int;
- return 0;
-}
-
-/*
- * set_up_tty: Set up the serial port on `fd' for 8 bits, no parity,
- * at the requested speed, etc. If `local' is true, set CLOCAL
- * regardless of whether the modem option was specified.
- */
-void
-set_up_tty(fd, local)
- int fd, local;
-{
- int speed;
- struct termios tios;
-#if !defined (CRTSCTS)
- struct termiox tiox;
-#endif
-
- if (!sync_serial && tcgetattr(fd, &tios) < 0)
- fatal("tcgetattr: %m");
-
-#ifndef CRTSCTS
- termiox_ok = 1;
- if (!sync_serial && ioctl (fd, TCGETX, &tiox) < 0) {
- termiox_ok = 0;
- if (errno != ENOTTY)
- error("TCGETX: %m");
- }
-#endif
-
- if (!restore_term) {
- inittermios = tios;
-#ifndef CRTSCTS
- inittermiox = tiox;
-#endif
- if (!sync_serial)
- ioctl(fd, TIOCGWINSZ, &wsinfo);
- }
-
- tios.c_cflag &= ~(CSIZE | CSTOPB | PARENB | CLOCAL);
-#ifdef CRTSCTS
- if (crtscts > 0)
- tios.c_cflag |= CRTSCTS;
- else if (crtscts < 0)
- tios.c_cflag &= ~CRTSCTS;
-#else
- if (crtscts != 0 && !termiox_ok) {
- error("Can't set RTS/CTS flow control");
- } else if (crtscts > 0) {
- tiox.x_hflag |= RTSXOFF|CTSXON;
- } else if (crtscts < 0) {
- tiox.x_hflag &= ~(RTSXOFF|CTSXON);
- }
-#endif
-
- tios.c_cflag |= CS8 | CREAD | HUPCL;
- if (local || !modem)
- tios.c_cflag |= CLOCAL;
- tios.c_iflag = IGNBRK | IGNPAR;
- tios.c_oflag = 0;
- tios.c_lflag = 0;
- tios.c_cc[VMIN] = 1;
- tios.c_cc[VTIME] = 0;
-
- if (crtscts == -2) {
- tios.c_iflag |= IXON | IXOFF;
- tios.c_cc[VSTOP] = 0x13; /* DC3 = XOFF = ^S */
- tios.c_cc[VSTART] = 0x11; /* DC1 = XON = ^Q */
- }
-
- speed = translate_speed(inspeed);
- if (speed) {
- cfsetospeed(&tios, speed);
- cfsetispeed(&tios, speed);
- } else {
- speed = cfgetospeed(&tios);
- /*
- * We can't proceed if the serial port speed is 0,
- * since that implies that the serial port is disabled.
- */
- if ((speed == B0) && !sync_serial)
- fatal("Baud rate for %s is 0; need explicit baud rate", devnam);
- }
-
- if (!sync_serial && tcsetattr(fd, TCSAFLUSH, &tios) < 0)
- fatal("tcsetattr: %m");
-
-#ifndef CRTSCTS
- if (!sync_serial && termiox_ok && ioctl (fd, TCSETXF, &tiox) < 0){
- error("TCSETXF: %m");
- }
-#endif
-
- baud_rate = inspeed = baud_rate_of(speed);
- if (!sync_serial)
- restore_term = 1;
-}
-
-/*
- * restore_tty - restore the terminal to the saved settings.
- */
-void
-restore_tty(fd)
- int fd;
-{
- if (restore_term) {
- if (!default_device) {
- /*
- * Turn off echoing, because otherwise we can get into
- * a loop with the tty and the modem echoing to each other.
- * We presume we are the sole user of this tty device, so
- * when we close it, it will revert to its defaults anyway.
- */
- inittermios.c_lflag &= ~(ECHO | ECHONL);
- }
- if (!sync_serial && tcsetattr(fd, TCSAFLUSH, &inittermios) < 0)
- if (!hungup && errno != ENXIO)
- warn("tcsetattr: %m");
-#ifndef CRTSCTS
- if (!sync_serial && ioctl (fd, TCSETXF, &inittermiox) < 0){
- if (!hungup && errno != ENXIO)
- error("TCSETXF: %m");
- }
-#endif
- if (!sync_serial)
- ioctl(fd, TIOCSWINSZ, &wsinfo);
- restore_term = 0;
- }
-}
-
-/*
- * setdtr - control the DTR line on the serial port.
- * This is called from die(), so it shouldn't call die().
- */
-void
-setdtr(fd, on)
-int fd, on;
-{
- int modembits = TIOCM_DTR;
-
- ioctl(fd, (on? TIOCMBIS: TIOCMBIC), &modembits);
-}
-
-/*
- * open_loopback - open the device we use for getting packets
- * in demand mode. Under Solaris 2, we use our existing fd
- * to the ppp driver.
- */
-int
-open_ppp_loopback()
-{
- return pppfd;
-}
-
-/*
- * output - Output PPP packet.
- */
-void
-output(unit, p, len)
- int unit;
- u_char *p;
- int len;
-{
- struct strbuf data;
- int retries;
- struct pollfd pfd;
-
- if (debug)
- dbglog("sent %P", p, len);
-
- data.len = len;
- data.buf = (caddr_t) p;
- retries = 4;
- while (putmsg(pppfd, NULL, &data, 0) < 0) {
- if (--retries < 0 || (errno != EWOULDBLOCK && errno != EAGAIN)) {
- if (errno != ENXIO)
- error("Couldn't send packet: %m");
- break;
- }
- pfd.fd = pppfd;
- pfd.events = POLLOUT;
- poll(&pfd, 1, 250); /* wait for up to 0.25 seconds */
- }
-}
-
-
-/*
- * wait_input - wait until there is data available,
- * for the length of time specified by *timo (indefinite
- * if timo is NULL).
- */
-void
-wait_input(timo)
- struct timeval *timo;
-{
- int t;
-
- t = timo == NULL? -1: timo->tv_sec * 1000 + timo->tv_usec / 1000;
- if (poll(pollfds, n_pollfds, t) < 0 && errno != EINTR)
- fatal("poll: %m");
-}
-
-/*
- * add_fd - add an fd to the set that wait_input waits for.
- */
-void add_fd(fd)
- int fd;
-{
- int n;
-
- for (n = 0; n < n_pollfds; ++n)
- if (pollfds[n].fd == fd)
- return;
- if (n_pollfds < MAX_POLLFDS) {
- pollfds[n_pollfds].fd = fd;
- pollfds[n_pollfds].events = POLLIN | POLLPRI | POLLHUP;
- ++n_pollfds;
- } else
- error("Too many inputs!");
-}
-
-/*
- * remove_fd - remove an fd from the set that wait_input waits for.
- */
-void remove_fd(fd)
- int fd;
-{
- int n;
-
- for (n = 0; n < n_pollfds; ++n) {
- if (pollfds[n].fd == fd) {
- while (++n < n_pollfds)
- pollfds[n-1] = pollfds[n];
- --n_pollfds;
- break;
- }
- }
-}
-
-#if 0
-/*
- * wait_loop_output - wait until there is data available on the
- * loopback, for the length of time specified by *timo (indefinite
- * if timo is NULL).
- */
-void
-wait_loop_output(timo)
- struct timeval *timo;
-{
- wait_input(timo);
-}
-
-/*
- * wait_time - wait for a given length of time or until a
- * signal is received.
- */
-void
-wait_time(timo)
- struct timeval *timo;
-{
- int n;
-
- n = select(0, NULL, NULL, NULL, timo);
- if (n < 0 && errno != EINTR)
- fatal("select: %m");
-}
-#endif
-
-
-/*
- * read_packet - get a PPP packet from the serial device.
- */
-int
-read_packet(buf)
- u_char *buf;
-{
- struct strbuf ctrl, data;
- int flags, len;
- unsigned char ctrlbuf[sizeof(union DL_primitives) + 64];
-
- for (;;) {
- data.maxlen = PPP_MRU + PPP_HDRLEN;
- data.buf = (caddr_t) buf;
- ctrl.maxlen = sizeof(ctrlbuf);
- ctrl.buf = (caddr_t) ctrlbuf;
- flags = 0;
- len = getmsg(pppfd, &ctrl, &data, &flags);
- if (len < 0) {
- if (errno == EAGAIN || errno == EINTR)
- return -1;
- fatal("Error reading packet: %m");
- }
-
- if (ctrl.len <= 0)
- return data.len;
-
- /*
- * Got a M_PROTO or M_PCPROTO message. Interpret it
- * as a DLPI primitive??
- */
- if (debug)
- dbglog("got dlpi prim 0x%x, len=%d",
- ((union DL_primitives *)ctrlbuf)->dl_primitive, ctrl.len);
-
- }
-}
-
-/*
- * get_loop_output - get outgoing packets from the ppp device,
- * and detect when we want to bring the real link up.
- * Return value is 1 if we need to bring up the link, 0 otherwise.
- */
-int
-get_loop_output()
-{
- int len;
- int rv = 0;
-
- while ((len = read_packet(inpacket_buf)) > 0) {
- if (loop_frame(inpacket_buf, len))
- rv = 1;
- }
- return rv;
-}
-
-/*
- * netif_set_mtu - set the MTU on the PPP network interface.
- */
-void
-netif_set_mtu(unit, mtu)
- int unit, mtu;
-{
- struct ifreq ifr;
-#if defined(INET6) && defined(SOL2)
- struct lifreq lifr;
- int fd;
-#endif /* defined(INET6) && defined(SOL2) */
-
- memset(&ifr, 0, sizeof(ifr));
- strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- ifr.ifr_metric = link_mtu;
- if (ioctl(ipfd, SIOCSIFMTU, &ifr) < 0) {
- error("Couldn't set IP MTU (%s): %m", ifr.ifr_name);
- }
-
-#if defined(INET6) && defined(SOL2)
- fd = socket(AF_INET6, SOCK_DGRAM, 0);
- if (fd < 0)
- error("Couldn't open IPv6 socket: %m");
-
- memset(&lifr, 0, sizeof(lifr));
- strlcpy(lifr.lifr_name, ifname, sizeof(lifr.lifr_name));
- lifr.lifr_mtu = link_mtu;
- if (ioctl(fd, SIOCSLIFMTU, &lifr) < 0) {
- close(fd);
- error("Couldn't set IPv6 MTU (%s): %m", ifr.ifr_name);
- }
- close(fd);
-#endif /* defined(INET6) && defined(SOL2) */
-}
-
-/*
- * tty_send_config - configure the transmit characteristics of
- * the ppp interface.
- */
-void
-tty_send_config(mtu, asyncmap, pcomp, accomp)
- int mtu;
- u_int32_t asyncmap;
- int pcomp, accomp;
-{
- int cf[2];
-
- link_mtu = mtu;
- if (strioctl(pppfd, PPPIO_MTU, &mtu, sizeof(mtu), 0) < 0) {
- if (hungup && errno == ENXIO)
- return;
- error("Couldn't set MTU: %m");
- }
- if (fdmuxid >= 0) {
- if (!sync_serial) {
- if (strioctl(pppfd, PPPIO_XACCM, &asyncmap, sizeof(asyncmap), 0) < 0) {
- error("Couldn't set transmit ACCM: %m");
- }
- }
- cf[0] = (pcomp? COMP_PROT: 0) + (accomp? COMP_AC: 0);
- cf[1] = COMP_PROT | COMP_AC;
- if (any_compressions() &&
- strioctl(pppfd, PPPIO_CFLAGS, cf, sizeof(cf), sizeof(int)) < 0) {
- error("Couldn't set prot/AC compression: %m");
- }
- }
-}
-
-/*
- * ppp_set_xaccm - set the extended transmit ACCM for the interface.
- */
-void
-tty_set_xaccm(accm)
- ext_accm accm;
-{
- if (sync_serial)
- return;
-
- if (fdmuxid >= 0
- && strioctl(pppfd, PPPIO_XACCM, accm, sizeof(ext_accm), 0) < 0) {
- if (!hungup || errno != ENXIO)
- warn("Couldn't set extended ACCM: %m");
- }
-}
-
-/*
- * ppp_recv_config - configure the receive-side characteristics of
- * the ppp interface.
- */
-void
-tty_recv_config(mru, asyncmap, pcomp, accomp)
- int mru;
- u_int32_t asyncmap;
- int pcomp, accomp;
-{
- int cf[2];
-
- link_mru = mru;
- if (strioctl(pppfd, PPPIO_MRU, &mru, sizeof(mru), 0) < 0) {
- if (hungup && errno == ENXIO)
- return;
- error("Couldn't set MRU: %m");
- }
- if (fdmuxid >= 0) {
- if (!sync_serial) {
- if (strioctl(pppfd, PPPIO_RACCM, &asyncmap, sizeof(asyncmap), 0) < 0) {
- error("Couldn't set receive ACCM: %m");
- }
- }
- cf[0] = (pcomp? DECOMP_PROT: 0) + (accomp? DECOMP_AC: 0);
- cf[1] = DECOMP_PROT | DECOMP_AC;
- if (any_compressions() &&
- strioctl(pppfd, PPPIO_CFLAGS, cf, sizeof(cf), sizeof(int)) < 0) {
- error("Couldn't set prot/AC decompression: %m");
- }
- }
-}
-
-/*
- * ccp_test - ask kernel whether a given compression method
- * is acceptable for use.
- */
-int
-ccp_test(unit, opt_ptr, opt_len, for_transmit)
- int unit, opt_len, for_transmit;
- u_char *opt_ptr;
-{
- if (strioctl(pppfd, (for_transmit? PPPIO_XCOMP: PPPIO_RCOMP),
- opt_ptr, opt_len, 0) >= 0)
- return 1;
- return (errno == ENOSR)? 0: -1;
-}
-
-/*
- * ccp_flags_set - inform kernel about the current state of CCP.
- */
-void
-ccp_flags_set(unit, isopen, isup)
- int unit, isopen, isup;
-{
- int cf[2];
-
- cf[0] = (isopen? CCP_ISOPEN: 0) + (isup? CCP_ISUP: 0);
- cf[1] = CCP_ISOPEN | CCP_ISUP | CCP_ERROR | CCP_FATALERROR;
- if (strioctl(pppfd, PPPIO_CFLAGS, cf, sizeof(cf), sizeof(int)) < 0) {
- if (!hungup || errno != ENXIO)
- error("Couldn't set kernel CCP state: %m");
- }
-}
-
-/*
- * get_idle_time - return how long the link has been idle.
- */
-int
-get_idle_time(u, ip)
- int u;
- struct ppp_idle *ip;
-{
- return strioctl(pppfd, PPPIO_GIDLE, ip, 0, sizeof(struct ppp_idle)) >= 0;
-}
-
-/*
- * get_ppp_stats - return statistics for the link.
- */
-int
-get_ppp_stats(u, stats)
- int u;
- struct pppd_stats *stats;
-{
- struct ppp_stats s;
-
- if (!sync_serial &&
- strioctl(pppfd, PPPIO_GETSTAT, &s, 0, sizeof(s)) < 0) {
- error("Couldn't get link statistics: %m");
- return 0;
- }
- stats->bytes_in = s.p.ppp_ibytes;
- stats->bytes_out = s.p.ppp_obytes;
- return 1;
-}
-
-#if 0
-/*
- * set_filters - transfer the pass and active filters to the kernel.
- */
-int
-set_filters(pass, active)
- struct bpf_program *pass, *active;
-{
- int ret = 1;
-
- if (pass->bf_len > 0) {
- if (strioctl(pppfd, PPPIO_PASSFILT, pass,
- sizeof(struct bpf_program), 0) < 0) {
- error("Couldn't set pass-filter in kernel: %m");
- ret = 0;
- }
- }
- if (active->bf_len > 0) {
- if (strioctl(pppfd, PPPIO_ACTIVEFILT, active,
- sizeof(struct bpf_program), 0) < 0) {
- error("Couldn't set active-filter in kernel: %m");
- ret = 0;
- }
- }
- return ret;
-}
-#endif
-
-/*
- * ccp_fatal_error - returns 1 if decompression was disabled as a
- * result of an error detected after decompression of a packet,
- * 0 otherwise. This is necessary because of patent nonsense.
- */
-int
-ccp_fatal_error(unit)
- int unit;
-{
- int cf[2];
-
- cf[0] = cf[1] = 0;
- if (strioctl(pppfd, PPPIO_CFLAGS, cf, sizeof(cf), sizeof(int)) < 0) {
- if (errno != ENXIO && errno != EINVAL)
- error("Couldn't get compression flags: %m");
- return 0;
- }
- return cf[0] & CCP_FATALERROR;
-}
-
-/*
- * sifvjcomp - config tcp header compression
- */
-int
-sifvjcomp(u, vjcomp, xcidcomp, xmaxcid)
- int u, vjcomp, xcidcomp, xmaxcid;
-{
- int cf[2];
- char maxcid[2];
-
- if (vjcomp) {
- maxcid[0] = xcidcomp;
- maxcid[1] = 15; /* XXX should be rmaxcid */
- if (strioctl(pppfd, PPPIO_VJINIT, maxcid, sizeof(maxcid), 0) < 0) {
- error("Couldn't initialize VJ compression: %m");
- }
- }
-
- cf[0] = (vjcomp? COMP_VJC + DECOMP_VJC: 0) /* XXX this is wrong */
- + (xcidcomp? COMP_VJCCID + DECOMP_VJCCID: 0);
- cf[1] = COMP_VJC + DECOMP_VJC + COMP_VJCCID + DECOMP_VJCCID;
- if (strioctl(pppfd, PPPIO_CFLAGS, cf, sizeof(cf), sizeof(int)) < 0) {
- if (vjcomp)
- error("Couldn't enable VJ compression: %m");
- }
-
- return 1;
-}
-
-/*
- * sifup - Config the interface up and enable IP packets to pass.
- */
-int
-sifup(u)
- int u;
-{
- struct ifreq ifr;
-
- strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(ipfd, SIOCGIFFLAGS, &ifr) < 0) {
- error("Couldn't mark interface up (get): %m");
- return 0;
- }
- ifr.ifr_flags |= IFF_UP;
- if (ioctl(ipfd, SIOCSIFFLAGS, &ifr) < 0) {
- error("Couldn't mark interface up (set): %m");
- return 0;
- }
- if_is_up = 1;
- return 1;
-}
-
-/*
- * sifdown - Config the interface down and disable IP.
- */
-int
-sifdown(u)
- int u;
-{
- struct ifreq ifr;
-
- if (ipmuxid < 0)
- return 1;
- strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(ipfd, SIOCGIFFLAGS, &ifr) < 0) {
- error("Couldn't mark interface down (get): %m");
- return 0;
- }
- ifr.ifr_flags &= ~IFF_UP;
- if (ioctl(ipfd, SIOCSIFFLAGS, &ifr) < 0) {
- error("Couldn't mark interface down (set): %m");
- return 0;
- }
- if_is_up = 0;
- return 1;
-}
-
-/*
- * sifnpmode - Set the mode for handling packets for a given NP.
- */
-int
-sifnpmode(u, proto, mode)
- int u;
- int proto;
- enum NPmode mode;
-{
- int npi[2];
-
- npi[0] = proto;
- npi[1] = (int) mode;
- if (strioctl(pppfd, PPPIO_NPMODE, &npi, 2 * sizeof(int), 0) < 0) {
- error("ioctl(set NP %d mode to %d): %m", proto, mode);
- return 0;
- }
- return 1;
-}
-
-#if defined(SOL2) && defined(INET6)
-/*
- * sif6up - Config the IPv6 interface up and enable IPv6 packets to pass.
- */
-int
-sif6up(u)
- int u;
-{
- struct lifreq lifr;
- int fd;
-
- fd = socket(AF_INET6, SOCK_DGRAM, 0);
- if (fd < 0) {
- return 0;
- }
-
- memset(&lifr, 0, sizeof(lifr));
- strlcpy(lifr.lifr_name, ifname, sizeof(lifr.lifr_name));
- if (ioctl(fd, SIOCGLIFFLAGS, &lifr) < 0) {
- close(fd);
- return 0;
- }
-
- lifr.lifr_flags |= IFF_UP;
- strlcpy(lifr.lifr_name, ifname, sizeof(lifr.lifr_name));
- if (ioctl(fd, SIOCSLIFFLAGS, &lifr) < 0) {
- close(fd);
- return 0;
- }
-
- if6_is_up = 1;
- close(fd);
- return 1;
-}
-
-/*
- * sifdown - Config the IPv6 interface down and disable IPv6.
- */
-int
-sif6down(u)
- int u;
-{
- struct lifreq lifr;
- int fd;
-
- fd = socket(AF_INET6, SOCK_DGRAM, 0);
- if (fd < 0)
- return 0;
-
- memset(&lifr, 0, sizeof(lifr));
- strlcpy(lifr.lifr_name, ifname, sizeof(lifr.lifr_name));
- if (ioctl(fd, SIOCGLIFFLAGS, &lifr) < 0) {
- close(fd);
- return 0;
- }
-
- lifr.lifr_flags &= ~IFF_UP;
- strlcpy(lifr.lifr_name, ifname, sizeof(lifr.lifr_name));
- if (ioctl(fd, SIOCGLIFFLAGS, &lifr) < 0) {
- close(fd);
- return 0;
- }
-
- if6_is_up = 0;
- close(fd);
- return 1;
-}
-
-/*
- * sif6addr - Config the interface with an IPv6 link-local address
- */
-int
-sif6addr(u, o, h)
- int u;
- eui64_t o, h;
-{
- struct lifreq lifr;
- struct sockaddr_storage laddr;
- struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)&laddr;
- int fd;
-
- fd = socket(AF_INET6, SOCK_DGRAM, 0);
- if (fd < 0)
- return 0;
-
- memset(&lifr, 0, sizeof(lifr));
- strlcpy(lifr.lifr_name, ifname, sizeof(lifr.lifr_name));
-
- /*
- * Do this because /dev/ppp responds to DL_PHYS_ADDR_REQ with
- * zero values, hence the interface token came to be zero too,
- * and without this, in.ndpd will complain
- */
- IN6_LLTOKEN_FROM_EUI64(lifr, sin6, o);
- if (ioctl(fd, SIOCSLIFTOKEN, &lifr) < 0) {
- close(fd);
- return 0;
- }
-
- /*
- * Set the interface address and destination address
- */
- IN6_LLADDR_FROM_EUI64(lifr, sin6, o);
- if (ioctl(fd, SIOCSLIFADDR, &lifr) < 0) {
- close(fd);
- return 0;
- }
-
- memset(&lifr, 0, sizeof(lifr));
- strlcpy(lifr.lifr_name, ifname, sizeof(lifr.lifr_name));
- IN6_LLADDR_FROM_EUI64(lifr, sin6, h);
- if (ioctl(fd, SIOCSLIFDSTADDR, &lifr) < 0) {
- close(fd);
- return 0;
- }
-
- return 1;
-}
-
-/*
- * cif6addr - Remove the IPv6 address from interface
- */
-int
-cif6addr(u, o, h)
- int u;
- eui64_t o, h;
-{
- return 1;
-}
-
-#endif /* defined(SOL2) && defined(INET6) */
-
-
-#define INET_ADDR(x) (((struct sockaddr_in *) &(x))->sin_addr.s_addr)
-
-/*
- * sifaddr - Config the interface IP addresses and netmask.
- */
-int
-sifaddr(u, o, h, m)
- int u;
- u_int32_t o, h, m;
-{
- struct ifreq ifr;
- int ret = 1;
-
- memset(&ifr, 0, sizeof(ifr));
- strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- ifr.ifr_addr.sa_family = AF_INET;
- INET_ADDR(ifr.ifr_addr) = m;
- if (ioctl(ipfd, SIOCSIFNETMASK, &ifr) < 0) {
- error("Couldn't set IP netmask: %m");
- ret = 0;
- }
- ifr.ifr_addr.sa_family = AF_INET;
- INET_ADDR(ifr.ifr_addr) = o;
- if (ioctl(ipfd, SIOCSIFADDR, &ifr) < 0) {
- error("Couldn't set local IP address: %m");
- ret = 0;
- }
-
- /*
- * On some systems, we have to explicitly set the point-to-point
- * flag bit before we can set a destination address.
- */
- if (ioctl(ipfd, SIOCGIFFLAGS, &ifr) >= 0
- && (ifr.ifr_flags & IFF_POINTOPOINT) == 0) {
- ifr.ifr_flags |= IFF_POINTOPOINT;
- if (ioctl(ipfd, SIOCSIFFLAGS, &ifr) < 0) {
- error("Couldn't mark interface pt-to-pt: %m");
- ret = 0;
- }
- }
- ifr.ifr_dstaddr.sa_family = AF_INET;
- INET_ADDR(ifr.ifr_dstaddr) = h;
- if (ioctl(ipfd, SIOCSIFDSTADDR, &ifr) < 0) {
- error("Couldn't set remote IP address: %m");
- ret = 0;
- }
-#if 0 /* now done in ppp_send_config */
- ifr.ifr_metric = link_mtu;
- if (ioctl(ipfd, SIOCSIFMTU, &ifr) < 0) {
- error("Couldn't set IP MTU: %m");
- }
-#endif
-
- remote_addr = h;
- return ret;
-}
-
-/*
- * cifaddr - Clear the interface IP addresses, and delete routes
- * through the interface if possible.
- */
-int
-cifaddr(u, o, h)
- int u;
- u_int32_t o, h;
-{
-#if defined(__USLC__) /* was: #if 0 */
- cifroute(unit, ouraddr, hisaddr);
- if (ipmuxid >= 0) {
- notice("Removing ppp interface unit");
- if (ioctl(ipfd, I_UNLINK, ipmuxid) < 0) {
- error("Can't remove ppp interface unit: %m");
- return 0;
- }
- ipmuxid = -1;
- }
-#endif
- remote_addr = 0;
- return 1;
-}
-
-/*
- * sifdefaultroute - assign a default route through the address given.
- */
-int
-sifdefaultroute(u, l, g)
- int u;
- u_int32_t l, g;
-{
- struct rtentry rt;
-
-#if defined(__USLC__)
- g = l; /* use the local address as gateway */
-#endif
- memset(&rt, 0, sizeof(rt));
- rt.rt_dst.sa_family = AF_INET;
- INET_ADDR(rt.rt_dst) = 0;
- rt.rt_gateway.sa_family = AF_INET;
- INET_ADDR(rt.rt_gateway) = g;
- rt.rt_flags = RTF_GATEWAY;
-
- if (ioctl(ipfd, SIOCADDRT, &rt) < 0) {
- error("Can't add default route: %m");
- return 0;
- }
-
- default_route_gateway = g;
- return 1;
-}
-
-/*
- * cifdefaultroute - delete a default route through the address given.
- */
-int
-cifdefaultroute(u, l, g)
- int u;
- u_int32_t l, g;
-{
- struct rtentry rt;
-
-#if defined(__USLC__)
- g = l; /* use the local address as gateway */
-#endif
- memset(&rt, 0, sizeof(rt));
- rt.rt_dst.sa_family = AF_INET;
- INET_ADDR(rt.rt_dst) = 0;
- rt.rt_gateway.sa_family = AF_INET;
- INET_ADDR(rt.rt_gateway) = g;
- rt.rt_flags = RTF_GATEWAY;
-
- if (ioctl(ipfd, SIOCDELRT, &rt) < 0) {
- error("Can't delete default route: %m");
- return 0;
- }
-
- default_route_gateway = 0;
- return 1;
-}
-
-/*
- * sifproxyarp - Make a proxy ARP entry for the peer.
- */
-int
-sifproxyarp(unit, hisaddr)
- int unit;
- u_int32_t hisaddr;
-{
- struct arpreq arpreq;
-
- memset(&arpreq, 0, sizeof(arpreq));
- if (!get_ether_addr(hisaddr, &arpreq.arp_ha))
- return 0;
-
- arpreq.arp_pa.sa_family = AF_INET;
- INET_ADDR(arpreq.arp_pa) = hisaddr;
- arpreq.arp_flags = ATF_PERM | ATF_PUBL;
- if (ioctl(ipfd, SIOCSARP, (caddr_t) &arpreq) < 0) {
- error("Couldn't set proxy ARP entry: %m");
- return 0;
- }
-
- proxy_arp_addr = hisaddr;
- return 1;
-}
-
-/*
- * cifproxyarp - Delete the proxy ARP entry for the peer.
- */
-int
-cifproxyarp(unit, hisaddr)
- int unit;
- u_int32_t hisaddr;
-{
- struct arpreq arpreq;
-
- memset(&arpreq, 0, sizeof(arpreq));
- arpreq.arp_pa.sa_family = AF_INET;
- INET_ADDR(arpreq.arp_pa) = hisaddr;
- if (ioctl(ipfd, SIOCDARP, (caddr_t)&arpreq) < 0) {
- error("Couldn't delete proxy ARP entry: %m");
- return 0;
- }
-
- proxy_arp_addr = 0;
- return 1;
-}
-
-/*
- * get_ether_addr - get the hardware address of an interface on the
- * the same subnet as ipaddr.
- */
-#define MAX_IFS 32
-
-static int
-get_ether_addr(ipaddr, hwaddr)
- u_int32_t ipaddr;
- struct sockaddr *hwaddr;
-{
- struct ifreq *ifr, *ifend, ifreq;
- int nif;
- struct ifconf ifc;
- u_int32_t ina, mask;
-
- /*
- * Scan through the system's network interfaces.
- */
-#ifdef SIOCGIFNUM
- if (ioctl(ipfd, SIOCGIFNUM, &nif) < 0)
-#endif
- nif = MAX_IFS;
- ifc.ifc_len = nif * sizeof(struct ifreq);
- ifc.ifc_buf = (caddr_t) malloc(ifc.ifc_len);
- if (ifc.ifc_buf == 0)
- return 0;
- if (ioctl(ipfd, SIOCGIFCONF, &ifc) < 0) {
- warn("Couldn't get system interface list: %m");
- free(ifc.ifc_buf);
- return 0;
- }
- ifend = (struct ifreq *) (ifc.ifc_buf + ifc.ifc_len);
- for (ifr = ifc.ifc_req; ifr < ifend; ++ifr) {
- if (ifr->ifr_addr.sa_family != AF_INET)
- continue;
- /*
- * Check that the interface is up, and not point-to-point or loopback.
- */
- strlcpy(ifreq.ifr_name, ifr->ifr_name, sizeof(ifreq.ifr_name));
- if (ioctl(ipfd, SIOCGIFFLAGS, &ifreq) < 0)
- continue;
- if ((ifreq.ifr_flags &
- (IFF_UP|IFF_BROADCAST|IFF_POINTOPOINT|IFF_LOOPBACK|IFF_NOARP))
- != (IFF_UP|IFF_BROADCAST))
- continue;
- /*
- * Get its netmask and check that it's on the right subnet.
- */
- if (ioctl(ipfd, SIOCGIFNETMASK, &ifreq) < 0)
- continue;
- ina = INET_ADDR(ifr->ifr_addr);
- mask = INET_ADDR(ifreq.ifr_addr);
- if ((ipaddr & mask) == (ina & mask))
- break;
- }
-
- if (ifr >= ifend) {
- warn("No suitable interface found for proxy ARP");
- free(ifc.ifc_buf);
- return 0;
- }
-
- info("found interface %s for proxy ARP", ifr->ifr_name);
- if (!get_hw_addr(ifr->ifr_name, ina, hwaddr)) {
- error("Couldn't get hardware address for %s", ifr->ifr_name);
- free(ifc.ifc_buf);
- return 0;
- }
-
- free(ifc.ifc_buf);
- return 1;
-}
-
-/*
- * get_hw_addr_dlpi - obtain the hardware address using DLPI
- */
-static int
-get_hw_addr_dlpi(name, hwaddr)
- char *name;
- struct sockaddr *hwaddr;
-{
- char *p, *q;
- int unit, iffd, adrlen;
- unsigned char *adrp;
- char ifdev[24];
- struct {
- union DL_primitives prim;
- char space[64];
- } reply;
-
- /*
- * We have to open the device and ask it for its hardware address.
- * First split apart the device name and unit.
- */
- slprintf(ifdev, sizeof(ifdev), "/dev/%s", name);
- for (q = ifdev + strlen(ifdev); --q >= ifdev; )
- if (!isdigit(*q))
- break;
- unit = atoi(q+1);
- q[1] = 0;
-
- /*
- * Open the device and do a DLPI attach and phys_addr_req.
- */
- iffd = open(ifdev, O_RDWR);
- if (iffd < 0) {
- error("Can't open %s: %m", ifdev);
- return 0;
- }
- if (dlpi_attach(iffd, unit) < 0
- || dlpi_get_reply(iffd, &reply.prim, DL_OK_ACK, sizeof(reply)) < 0
- || dlpi_info_req(iffd) < 0
- || dlpi_get_reply(iffd, &reply.prim, DL_INFO_ACK, sizeof(reply)) < 0) {
- close(iffd);
- return 0;
- }
-
- adrlen = reply.prim.info_ack.dl_addr_length;
- adrp = (unsigned char *)&reply + reply.prim.info_ack.dl_addr_offset;
-
-#if DL_CURRENT_VERSION >= 2
- if (reply.prim.info_ack.dl_sap_length < 0)
- adrlen += reply.prim.info_ack.dl_sap_length;
- else
- adrp += reply.prim.info_ack.dl_sap_length;
-#endif
-
- hwaddr->sa_family = AF_UNSPEC;
- memcpy(hwaddr->sa_data, adrp, adrlen);
-
- return 1;
-}
-/*
- * get_hw_addr - obtain the hardware address for a named interface.
- */
-static int
-get_hw_addr(name, ina, hwaddr)
- char *name;
- u_int32_t ina;
- struct sockaddr *hwaddr;
-{
- /* New way - get the address by doing an arp request. */
- int s;
- struct arpreq req;
-
- s = socket(AF_INET, SOCK_DGRAM, 0);
- if (s < 0)
- return 0;
- memset(&req, 0, sizeof(req));
- req.arp_pa.sa_family = AF_INET;
- INET_ADDR(req.arp_pa) = ina;
- if (ioctl(s, SIOCGARP, &req) < 0) {
- error("Couldn't get ARP entry for %s: %m", ip_ntoa(ina));
- return 0;
- }
- *hwaddr = req.arp_ha;
- hwaddr->sa_family = AF_UNSPEC;
-
- return 1;
-}
-
-static int
-dlpi_attach(fd, ppa)
- int fd, ppa;
-{
- dl_attach_req_t req;
- struct strbuf buf;
-
- req.dl_primitive = DL_ATTACH_REQ;
- req.dl_ppa = ppa;
- buf.len = sizeof(req);
- buf.buf = (void *) &req;
- return putmsg(fd, &buf, NULL, RS_HIPRI);
-}
-
-static int
-dlpi_info_req(fd)
- int fd;
-{
- dl_info_req_t req;
- struct strbuf buf;
-
- req.dl_primitive = DL_INFO_REQ;
- buf.len = sizeof(req);
- buf.buf = (void *) &req;
- return putmsg(fd, &buf, NULL, RS_HIPRI);
-}
-
-static int
-dlpi_get_reply(fd, reply, expected_prim, maxlen)
- union DL_primitives *reply;
- int fd, expected_prim, maxlen;
-{
- struct strbuf buf;
- int flags, n;
- struct pollfd pfd;
-
- /*
- * Use poll to wait for a message with a timeout.
- */
- pfd.fd = fd;
- pfd.events = POLLIN | POLLPRI;
- do {
- n = poll(&pfd, 1, 1000);
- } while (n == -1 && errno == EINTR);
- if (n <= 0)
- return -1;
-
- /*
- * Get the reply.
- */
- buf.maxlen = maxlen;
- buf.buf = (void *) reply;
- flags = 0;
- if (getmsg(fd, &buf, NULL, &flags) < 0)
- return -1;
-
- if (buf.len < sizeof(ulong)) {
- if (debug)
- dbglog("dlpi response short (len=%d)\n", buf.len);
- return -1;
- }
-
- if (reply->dl_primitive == expected_prim)
- return 0;
-
- if (debug) {
- if (reply->dl_primitive == DL_ERROR_ACK) {
- dbglog("dlpi error %d (unix errno %d) for prim %x\n",
- reply->error_ack.dl_errno, reply->error_ack.dl_unix_errno,
- reply->error_ack.dl_error_primitive);
- } else {
- dbglog("dlpi unexpected response prim %x\n",
- reply->dl_primitive);
- }
- }
-
- return -1;
-}
-
-/*
- * Return user specified netmask, modified by any mask we might determine
- * for address `addr' (in network byte order).
- * Here we scan through the system's list of interfaces, looking for
- * any non-point-to-point interfaces which might appear to be on the same
- * network as `addr'. If we find any, we OR in their netmask to the
- * user-specified netmask.
- */
-u_int32_t
-GetMask(addr)
- u_int32_t addr;
-{
- u_int32_t mask, nmask, ina;
- struct ifreq *ifr, *ifend, ifreq;
- int nif;
- struct ifconf ifc;
-
- addr = ntohl(addr);
- if (IN_CLASSA(addr)) /* determine network mask for address class */
- nmask = IN_CLASSA_NET;
- else if (IN_CLASSB(addr))
- nmask = IN_CLASSB_NET;
- else
- nmask = IN_CLASSC_NET;
- /* class D nets are disallowed by bad_ip_adrs */
- mask = netmask | htonl(nmask);
-
- /*
- * Scan through the system's network interfaces.
- */
-#ifdef SIOCGIFNUM
- if (ioctl(ipfd, SIOCGIFNUM, &nif) < 0)
-#endif
- nif = MAX_IFS;
- ifc.ifc_len = nif * sizeof(struct ifreq);
- ifc.ifc_buf = (caddr_t) malloc(ifc.ifc_len);
- if (ifc.ifc_buf == 0)
- return mask;
- if (ioctl(ipfd, SIOCGIFCONF, &ifc) < 0) {
- warn("Couldn't get system interface list: %m");
- free(ifc.ifc_buf);
- return mask;
- }
- ifend = (struct ifreq *) (ifc.ifc_buf + ifc.ifc_len);
- for (ifr = ifc.ifc_req; ifr < ifend; ++ifr) {
- /*
- * Check the interface's internet address.
- */
- if (ifr->ifr_addr.sa_family != AF_INET)
- continue;
- ina = INET_ADDR(ifr->ifr_addr);
- if ((ntohl(ina) & nmask) != (addr & nmask))
- continue;
- /*
- * Check that the interface is up, and not point-to-point or loopback.
- */
- strlcpy(ifreq.ifr_name, ifr->ifr_name, sizeof(ifreq.ifr_name));
- if (ioctl(ipfd, SIOCGIFFLAGS, &ifreq) < 0)
- continue;
- if ((ifreq.ifr_flags & (IFF_UP|IFF_POINTOPOINT|IFF_LOOPBACK))
- != IFF_UP)
- continue;
- /*
- * Get its netmask and OR it into our mask.
- */
- if (ioctl(ipfd, SIOCGIFNETMASK, &ifreq) < 0)
- continue;
- mask |= INET_ADDR(ifreq.ifr_addr);
- }
-
- free(ifc.ifc_buf);
- return mask;
-}
-
-/*
- * logwtmp - write an accounting record to the /var/adm/wtmp file.
- */
-void
-logwtmp(line, name, host)
- const char *line, *name, *host;
-{
- static struct utmpx utmpx;
-
- if (name[0] != 0) {
- /* logging in */
- strncpy(utmpx.ut_user, name, sizeof(utmpx.ut_user));
- strncpy(utmpx.ut_id, ifname, sizeof(utmpx.ut_id));
- strncpy(utmpx.ut_line, line, sizeof(utmpx.ut_line));
- utmpx.ut_pid = getpid();
- utmpx.ut_type = USER_PROCESS;
- } else {
- utmpx.ut_type = DEAD_PROCESS;
- }
- gettimeofday(&utmpx.ut_tv, NULL);
- updwtmpx("/var/adm/wtmpx", &utmpx);
-}
-
-/*
- * get_host_seed - return the serial number of this machine.
- */
-int
-get_host_seed()
-{
- char buf[32];
-
- if (sysinfo(SI_HW_SERIAL, buf, sizeof(buf)) < 0) {
- error("sysinfo: %m");
- return 0;
- }
- return (int) strtoul(buf, NULL, 16);
-}
-
-static int
-strioctl(fd, cmd, ptr, ilen, olen)
- int fd, cmd, ilen, olen;
- void *ptr;
-{
- struct strioctl str;
-
- str.ic_cmd = cmd;
- str.ic_timout = 0;
- str.ic_len = ilen;
- str.ic_dp = ptr;
- if (ioctl(fd, I_STR, &str) == -1)
- return -1;
- if (str.ic_len != olen)
- dbglog("strioctl: expected %d bytes, got %d for cmd %x\n",
- olen, str.ic_len, cmd);
- return 0;
-}
-
-#if 0
-/*
- * lock - create a lock file for the named lock device
- */
-
-#define LOCK_PREFIX "/var/spool/locks/LK."
-static char lock_file[40]; /* name of lock file created */
-
-int
-lock(dev)
- char *dev;
-{
- int n, fd, pid;
- struct stat sbuf;
- char ascii_pid[12];
-
- if (stat(dev, &sbuf) < 0) {
- error("Can't get device number for %s: %m", dev);
- return -1;
- }
- if ((sbuf.st_mode & S_IFMT) != S_IFCHR) {
- error("Can't lock %s: not a character device", dev);
- return -1;
- }
- slprintf(lock_file, sizeof(lock_file), "%s%03d.%03d.%03d",
- LOCK_PREFIX, major(sbuf.st_dev),
- major(sbuf.st_rdev), minor(sbuf.st_rdev));
-
- while ((fd = open(lock_file, O_EXCL | O_CREAT | O_RDWR, 0644)) < 0) {
- if (errno == EEXIST
- && (fd = open(lock_file, O_RDONLY, 0)) >= 0) {
- /* Read the lock file to find out who has the device locked */
- n = read(fd, ascii_pid, 11);
- if (n <= 0) {
- error("Can't read pid from lock file %s", lock_file);
- close(fd);
- } else {
- ascii_pid[n] = 0;
- pid = atoi(ascii_pid);
- if (pid > 0 && kill(pid, 0) == -1 && errno == ESRCH) {
- /* pid no longer exists - remove the lock file */
- if (unlink(lock_file) == 0) {
- close(fd);
- notice("Removed stale lock on %s (pid %d)",
- dev, pid);
- continue;
- } else
- warn("Couldn't remove stale lock on %s",
- dev);
- } else
- notice("Device %s is locked by pid %d",
- dev, pid);
- }
- close(fd);
- } else
- error("Can't create lock file %s: %m", lock_file);
- lock_file[0] = 0;
- return -1;
- }
-
- slprintf(ascii_pid, sizeof(ascii_pid), "%10d\n", getpid());
- write(fd, ascii_pid, 11);
-
- close(fd);
- return 1;
-}
-
-/*
- * unlock - remove our lockfile
- */
-void
-unlock()
-{
- if (lock_file[0]) {
- unlink(lock_file);
- lock_file[0] = 0;
- }
-}
-#endif
-
-/*
- * cifroute - delete a route through the addresses given.
- */
-int
-cifroute(u, our, his)
- int u;
- u_int32_t our, his;
-{
- struct rtentry rt;
-
- memset(&rt, 0, sizeof(rt));
- rt.rt_dst.sa_family = AF_INET;
- INET_ADDR(rt.rt_dst) = his;
- rt.rt_gateway.sa_family = AF_INET;
- INET_ADDR(rt.rt_gateway) = our;
- rt.rt_flags = RTF_HOST;
-
- if (ioctl(ipfd, SIOCDELRT, &rt) < 0) {
- error("Can't delete route: %m");
- return 0;
- }
-
- return 1;
-}
-
-/*
- * have_route_to - determine if the system has a route to the specified
- * IP address. Returns 0 if not, 1 if so, -1 if we can't tell.
- * `addr' is in network byte order.
- * For demand mode to work properly, we have to ignore routes
- * through our own interface.
- */
-#ifndef T_CURRENT /* needed for Solaris 2.5 */
-#define T_CURRENT MI_T_CURRENT
-#endif
-
-int
-have_route_to(addr)
- u_int32_t addr;
-{
-#ifdef SOL2
- int fd, r, flags, i;
- struct {
- struct T_optmgmt_req req;
- struct opthdr hdr;
- } req;
- union {
- struct T_optmgmt_ack ack;
- unsigned char space[64];
- } ack;
- struct opthdr *rh;
- struct strbuf cbuf, dbuf;
- int nroutes;
- mib2_ipRouteEntry_t routes[8];
- mib2_ipRouteEntry_t *rp;
-
- fd = open(mux_dev_name, O_RDWR);
- if (fd < 0) {
- warn("have_route_to: couldn't open %s: %m", mux_dev_name);
- return -1;
- }
-
- req.req.PRIM_type = T_OPTMGMT_REQ;
- req.req.OPT_offset = (char *) &req.hdr - (char *) &req;
- req.req.OPT_length = sizeof(req.hdr);
- req.req.MGMT_flags = T_CURRENT;
-
- req.hdr.level = MIB2_IP;
- req.hdr.name = 0;
- req.hdr.len = 0;
-
- cbuf.buf = (char *) &req;
- cbuf.len = sizeof(req);
-
- if (putmsg(fd, &cbuf, NULL, 0) == -1) {
- warn("have_route_to: putmsg: %m");
- close(fd);
- return -1;
- }
-
- for (;;) {
- cbuf.buf = (char *) &ack;
- cbuf.maxlen = sizeof(ack);
- dbuf.buf = (char *) routes;
- dbuf.maxlen = sizeof(routes);
- flags = 0;
- r = getmsg(fd, &cbuf, &dbuf, &flags);
- if (r == -1) {
- warn("have_route_to: getmsg: %m");
- close(fd);
- return -1;
- }
-
- if (cbuf.len < sizeof(struct T_optmgmt_ack)
- || ack.ack.PRIM_type != T_OPTMGMT_ACK
- || ack.ack.MGMT_flags != T_SUCCESS
- || ack.ack.OPT_length < sizeof(struct opthdr)) {
- dbglog("have_route_to: bad message len=%d prim=%d",
- cbuf.len, ack.ack.PRIM_type);
- close(fd);
- return -1;
- }
-
- rh = (struct opthdr *) ((char *)&ack + ack.ack.OPT_offset);
- if (rh->level == 0 && rh->name == 0)
- break;
- if (rh->level != MIB2_IP || rh->name != MIB2_IP_21) {
- while (r == MOREDATA)
- r = getmsg(fd, NULL, &dbuf, &flags);
- continue;
- }
-
- for (;;) {
- nroutes = dbuf.len / sizeof(mib2_ipRouteEntry_t);
- for (rp = routes, i = 0; i < nroutes; ++i, ++rp) {
- if (rp->ipRouteMask != ~0) {
- dbglog("have_route_to: dest=%x gw=%x mask=%x\n",
- rp->ipRouteDest, rp->ipRouteNextHop,
- rp->ipRouteMask);
- if (((addr ^ rp->ipRouteDest) & rp->ipRouteMask) == 0
- && rp->ipRouteNextHop != remote_addr)
- return 1;
- }
- }
- if (r == 0)
- break;
- r = getmsg(fd, NULL, &dbuf, &flags);
- }
- }
- close(fd);
- return 0;
-#else
- return -1;
-#endif /* SOL2 */
-}
-
-/*
- * get_pty - get a pty master/slave pair and chown the slave side to
- * the uid given. Assumes slave_name points to MAXPATHLEN bytes of space.
- */
-int
-get_pty(master_fdp, slave_fdp, slave_name, uid)
- int *master_fdp;
- int *slave_fdp;
- char *slave_name;
- int uid;
-{
- int mfd, sfd;
- char *pty_name;
- struct termios tios;
-
- mfd = open("/dev/ptmx", O_RDWR);
- if (mfd < 0) {
- error("Couldn't open pty master: %m");
- return 0;
- }
-
- pty_name = ptsname(mfd);
- if (pty_name == NULL) {
- error("Couldn't get name of pty slave");
- close(mfd);
- return 0;
- }
- if (chown(pty_name, uid, -1) < 0)
- warn("Couldn't change owner of pty slave: %m");
- if (chmod(pty_name, S_IRUSR | S_IWUSR) < 0)
- warn("Couldn't change permissions on pty slave: %m");
- if (unlockpt(mfd) < 0)
- warn("Couldn't unlock pty slave: %m");
-
- sfd = open(pty_name, O_RDWR);
- if (sfd < 0) {
- error("Couldn't open pty slave %s: %m", pty_name);
- close(mfd);
- return 0;
- }
- if (ioctl(sfd, I_PUSH, "ptem") < 0)
- warn("Couldn't push ptem module on pty slave: %m");
-
- dbglog("Using %s", pty_name);
- strlcpy(slave_name, pty_name, MAXPATHLEN);
- *master_fdp = mfd;
- *slave_fdp = sfd;
-
- return 1;
-}
diff --git a/mdk-stage1/ppp/pppd/sys-sunos4.c b/mdk-stage1/ppp/pppd/sys-sunos4.c
deleted file mode 100644
index 3344948e9..000000000
--- a/mdk-stage1/ppp/pppd/sys-sunos4.c
+++ /dev/null
@@ -1,1559 +0,0 @@
-/*
- * System-dependent procedures for pppd under SunOS 4.
- *
- * Copyright (c) 1994 The Australian National University.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies. This software is provided without any
- * warranty, express or implied. The Australian National University
- * makes no representations about the suitability of this software for
- * any purpose.
- *
- * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
- * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
- * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
- * OR MODIFICATIONS.
- */
-
-#define RCSID "$Id$"
-
-#include <stdio.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <termios.h>
-#include <signal.h>
-#include <malloc.h>
-#include <utmp.h>
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/socket.h>
-#include <sys/sockio.h>
-#include <sys/stream.h>
-#include <sys/stropts.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <sys/poll.h>
-#include <net/if.h>
-#include <net/if_arp.h>
-#include <net/nit_if.h>
-#include <net/route.h>
-#include <net/ppp_defs.h>
-#include <net/pppio.h>
-#include <netinet/in.h>
-
-#include "pppd.h"
-
-#if defined(sun) && defined(sparc)
-#include <alloca.h>
-#ifndef __GNUC__
-extern void *alloca();
-#endif
-#endif /*sparc*/
-
-static const char rcsid[] = RCSID;
-
-static int pppfd;
-static int fdmuxid = -1;
-static int iffd;
-static int sockfd;
-
-static int restore_term;
-static struct termios inittermios;
-static struct winsize wsinfo; /* Initial window size info */
-static pid_t parent_pid; /* PID of our parent */
-
-extern u_char inpacket_buf[]; /* borrowed from main.c */
-
-#define MAX_POLLFDS 32
-static struct pollfd pollfds[MAX_POLLFDS];
-static int n_pollfds;
-
-static int link_mtu, link_mru;
-
-#define NMODULES 32
-static int tty_nmodules;
-static char tty_modules[NMODULES][FMNAMESZ+1];
-
-static int if_is_up; /* Interface has been marked up */
-static u_int32_t ifaddrs[2]; /* local and remote addresses */
-static u_int32_t default_route_gateway; /* Gateway for default route added */
-static u_int32_t proxy_arp_addr; /* Addr for proxy arp entry added */
-
-/* Prototypes for procedures local to this file. */
-static int translate_speed __P((int));
-static int baud_rate_of __P((int));
-static int get_ether_addr __P((u_int32_t, struct sockaddr *));
-static int strioctl __P((int, int, void *, int, int));
-
-
-/*
- * sys_init - System-dependent initialization.
- */
-void
-sys_init()
-{
- int x;
-
- /* Get an internet socket for doing socket ioctl's on. */
- if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
- fatal("Couldn't create IP socket: %m");
-
- /*
- * We may want to send a SIGHUP to the session leader associated
- * with our controlling terminal later. Because SunOS doesn't
- * have getsid(), we make do with sending the signal to our
- * parent process.
- */
- parent_pid = getppid();
-
- /*
- * Open the ppp device.
- */
- pppfd = open("/dev/ppp", O_RDWR | O_NONBLOCK, 0);
- if (pppfd < 0)
- fatal("Can't open /dev/ppp: %m");
- if (kdebugflag) {
- x = PPPDBG_LOG + PPPDBG_DRIVER;
- strioctl(pppfd, PPPIO_DEBUG, &x, sizeof(int), 0);
- }
-
- /* Assign a new PPA and get its unit number. */
- if (strioctl(pppfd, PPPIO_NEWPPA, &ifunit, 0, sizeof(int)) < 0)
- fatal("Can't create new PPP interface: %m");
-
- /*
- * Open the ppp device again and push the if_ppp module on it.
- */
- iffd = open("/dev/ppp", O_RDWR, 0);
- if (iffd < 0)
- fatal("Can't open /dev/ppp (2): %m");
- if (kdebugflag) {
- x = PPPDBG_LOG + PPPDBG_DRIVER;
- strioctl(iffd, PPPIO_DEBUG, &x, sizeof(int), 0);
- }
- if (strioctl(iffd, PPPIO_ATTACH, &ifunit, sizeof(int), 0) < 0)
- fatal("Couldn't attach ppp interface to device: %m");
- if (ioctl(iffd, I_PUSH, "if_ppp") < 0)
- fatal("Can't push ppp interface module: %m");
- if (kdebugflag) {
- x = PPPDBG_LOG + PPPDBG_IF;
- strioctl(iffd, PPPIO_DEBUG, &x, sizeof(int), 0);
- }
- if (strioctl(iffd, PPPIO_NEWPPA, &ifunit, sizeof(int), 0) < 0)
- fatal("Couldn't create ppp interface unit: %m");
- x = PPP_IP;
- if (strioctl(iffd, PPPIO_BIND, &x, sizeof(int), 0) < 0)
- fatal("Couldn't bind ppp interface to IP SAP: %m");
-
- n_pollfds = 0;
-}
-
-/*
- * sys_cleanup - restore any system state we modified before exiting:
- * mark the interface down, delete default route and/or proxy arp entry.
- * This shouldn't call die() because it's called from die().
- */
-void
-sys_cleanup()
-{
- if (if_is_up)
- sifdown(0);
- if (ifaddrs[0])
- cifaddr(0, ifaddrs[0], ifaddrs[1]);
- if (default_route_gateway)
- cifdefaultroute(0, 0, default_route_gateway);
- if (proxy_arp_addr)
- cifproxyarp(0, proxy_arp_addr);
-}
-
-/*
- * sys_close - Clean up in a child process before execing.
- */
-void
-sys_close()
-{
- close(iffd);
- close(pppfd);
- close(sockfd);
-}
-
-/*
- * sys_check_options - check the options that the user specified
- */
-int
-sys_check_options()
-{
- return 1;
-}
-
-#if 0
-/*
- * daemon - Detach us from controlling terminal session.
- */
-int
-daemon(nochdir, noclose)
- int nochdir, noclose;
-{
- int pid;
-
- if ((pid = fork()) < 0)
- return -1;
- if (pid != 0)
- exit(0); /* parent dies */
- setsid();
- if (!nochdir)
- chdir("/");
- if (!noclose) {
- fclose(stdin); /* don't need stdin, stdout, stderr */
- fclose(stdout);
- fclose(stderr);
- }
- return 0;
-}
-#endif
-
-/*
- * ppp_available - check whether the system has any ppp interfaces
- */
-int
-ppp_available()
-{
- struct stat buf;
-
- return stat("/dev/ppp", &buf) >= 0;
-}
-
-/*
- * tty_establish_ppp - Turn the serial port into a ppp interface.
- */
-int
-tty_establish_ppp(fd)
- int fd;
-{
- int i;
-
- /* Pop any existing modules off the tty stream. */
- for (i = 0;; ++i)
- if (ioctl(fd, I_LOOK, tty_modules[i]) < 0
- || ioctl(fd, I_POP, 0) < 0)
- break;
- tty_nmodules = i;
-
- /* Push the async hdlc module and the compressor module. */
- if (ioctl(fd, I_PUSH, "ppp_ahdl") < 0)
- fatal("Couldn't push PPP Async HDLC module: %m");
- if (ioctl(fd, I_PUSH, "ppp_comp") < 0)
- error("Couldn't push PPP compression module: %m");
-
- /* Link the serial port under the PPP multiplexor. */
- if ((fdmuxid = ioctl(pppfd, I_LINK, fd)) < 0)
- fatal("Can't link tty to PPP mux: %m");
-
- return pppfd;
-}
-
-/*
- * disestablish_ppp - Restore the serial port to normal operation.
- * It attempts to reconstruct the stream with the previously popped
- * modules. This shouldn't call die() because it's called from die().
- */
-void
-tty_disestablish_ppp(fd)
- int fd;
-{
- int i;
-
- if (fdmuxid >= 0) {
- if (ioctl(pppfd, I_UNLINK, fdmuxid) < 0) {
- if (!hungup)
- error("Can't unlink tty from PPP mux: %m");
- }
- fdmuxid = -1;
-
- if (!hungup) {
- while (ioctl(fd, I_POP, 0) >= 0)
- ;
- for (i = tty_nmodules - 1; i >= 0; --i)
- if (ioctl(fd, I_PUSH, tty_modules[i]) < 0)
- error("Couldn't restore tty module %s: %m",
- tty_modules[i]);
- }
- if (hungup && default_device && parent_pid > 0) {
- /*
- * If we have received a hangup, we need to send a SIGHUP
- * to the terminal's controlling process. The reason is
- * that the original stream head for the terminal hasn't
- * seen the M_HANGUP message (it went up through the ppp
- * driver to the stream head for our fd to /dev/ppp).
- * Actually we send the signal to the process that invoked
- * pppd, since SunOS doesn't have getsid().
- */
- kill(parent_pid, SIGHUP);
- }
- }
-}
-
-/*
- * Check whether the link seems not to be 8-bit clean.
- */
-void
-clean_check()
-{
- int x;
- char *s;
-
- if (strioctl(pppfd, PPPIO_GCLEAN, &x, 0, sizeof(x)) < 0)
- return;
- s = NULL;
- switch (~x) {
- case RCV_B7_0:
- s = "bit 7 set to 1";
- break;
- case RCV_B7_1:
- s = "bit 7 set to 0";
- break;
- case RCV_EVNP:
- s = "odd parity";
- break;
- case RCV_ODDP:
- s = "even parity";
- break;
- }
- if (s != NULL) {
- warn("Serial link is not 8-bit clean:");
- warn("All received characters had %s", s);
- }
-}
-
-/*
- * List of valid speeds.
- */
-struct speed {
- int speed_int, speed_val;
-} speeds[] = {
-#ifdef B50
- { 50, B50 },
-#endif
-#ifdef B75
- { 75, B75 },
-#endif
-#ifdef B110
- { 110, B110 },
-#endif
-#ifdef B134
- { 134, B134 },
-#endif
-#ifdef B150
- { 150, B150 },
-#endif
-#ifdef B200
- { 200, B200 },
-#endif
-#ifdef B300
- { 300, B300 },
-#endif
-#ifdef B600
- { 600, B600 },
-#endif
-#ifdef B1200
- { 1200, B1200 },
-#endif
-#ifdef B1800
- { 1800, B1800 },
-#endif
-#ifdef B2000
- { 2000, B2000 },
-#endif
-#ifdef B2400
- { 2400, B2400 },
-#endif
-#ifdef B3600
- { 3600, B3600 },
-#endif
-#ifdef B4800
- { 4800, B4800 },
-#endif
-#ifdef B7200
- { 7200, B7200 },
-#endif
-#ifdef B9600
- { 9600, B9600 },
-#endif
-#ifdef B19200
- { 19200, B19200 },
-#endif
-#ifdef B38400
- { 38400, B38400 },
-#endif
-#ifdef EXTA
- { 19200, EXTA },
-#endif
-#ifdef EXTB
- { 38400, EXTB },
-#endif
-#ifdef B57600
- { 57600, B57600 },
-#endif
-#ifdef B115200
- { 115200, B115200 },
-#endif
- { 0, 0 }
-};
-
-/*
- * Translate from bits/second to a speed_t.
- */
-static int
-translate_speed(bps)
- int bps;
-{
- struct speed *speedp;
-
- if (bps == 0)
- return 0;
- for (speedp = speeds; speedp->speed_int; speedp++)
- if (bps == speedp->speed_int)
- return speedp->speed_val;
- warn("speed %d not supported", bps);
- return 0;
-}
-
-/*
- * Translate from a speed_t to bits/second.
- */
-static int
-baud_rate_of(speed)
- int speed;
-{
- struct speed *speedp;
-
- if (speed == 0)
- return 0;
- for (speedp = speeds; speedp->speed_int; speedp++)
- if (speed == speedp->speed_val)
- return speedp->speed_int;
- return 0;
-}
-
-/*
- * set_up_tty: Set up the serial port on `fd' for 8 bits, no parity,
- * at the requested speed, etc. If `local' is true, set CLOCAL
- * regardless of whether the modem option was specified.
- */
-void
-set_up_tty(fd, local)
- int fd, local;
-{
- int speed;
- struct termios tios;
-
- if (tcgetattr(fd, &tios) < 0)
- fatal("tcgetattr: %m");
-
- if (!restore_term) {
- inittermios = tios;
- ioctl(fd, TIOCGWINSZ, &wsinfo);
- }
-
- tios.c_cflag &= ~(CSIZE | CSTOPB | PARENB | CLOCAL);
- if (crtscts > 0)
- tios.c_cflag |= CRTSCTS;
- else if (crtscts < 0)
- tios.c_cflag &= ~CRTSCTS;
-
- tios.c_cflag |= CS8 | CREAD | HUPCL;
- if (local || !modem)
- tios.c_cflag |= CLOCAL;
- tios.c_iflag = IGNBRK | IGNPAR;
- tios.c_oflag = 0;
- tios.c_lflag = 0;
- tios.c_cc[VMIN] = 1;
- tios.c_cc[VTIME] = 0;
-
- if (crtscts == -2) {
- tios.c_iflag |= IXON | IXOFF;
- tios.c_cc[VSTOP] = 0x13; /* DC3 = XOFF = ^S */
- tios.c_cc[VSTART] = 0x11; /* DC1 = XON = ^Q */
- }
-
- speed = translate_speed(inspeed);
- if (speed) {
- cfsetospeed(&tios, speed);
- cfsetispeed(&tios, speed);
- } else {
- speed = cfgetospeed(&tios);
- /*
- * We can't proceed if the serial port speed is 0,
- * since that implies that the serial port is disabled.
- */
- if (speed == B0)
- fatal("Baud rate for %s is 0; need explicit baud rate", devnam);
- }
-
- if (tcsetattr(fd, TCSAFLUSH, &tios) < 0)
- fatal("tcsetattr: %m");
-
- baud_rate = inspeed = baud_rate_of(speed);
- restore_term = 1;
-}
-
-/*
- * restore_tty - restore the terminal to the saved settings.
- */
-void
-restore_tty(fd)
- int fd;
-{
- if (restore_term) {
- if (!default_device) {
- /*
- * Turn off echoing, because otherwise we can get into
- * a loop with the tty and the modem echoing to each other.
- * We presume we are the sole user of this tty device, so
- * when we close it, it will revert to its defaults anyway.
- */
- inittermios.c_lflag &= ~(ECHO | ECHONL);
- }
- if (tcsetattr(fd, TCSAFLUSH, &inittermios) < 0)
- if (!hungup && errno != ENXIO)
- warn("tcsetattr: %m");
- ioctl(fd, TIOCSWINSZ, &wsinfo);
- restore_term = 0;
- }
-}
-
-/*
- * setdtr - control the DTR line on the serial port.
- * This is called from die(), so it shouldn't call die().
- */
-void
-setdtr(fd, on)
-int fd, on;
-{
- int modembits = TIOCM_DTR;
-
- ioctl(fd, (on? TIOCMBIS: TIOCMBIC), &modembits);
-}
-
-/*
- * open_loopback - open the device we use for getting packets
- * in demand mode. Under SunOS, we use our existing fd
- * to the ppp driver.
- */
-int
-open_ppp_loopback()
-{
- return pppfd;
-}
-
-/*
- * output - Output PPP packet.
- */
-void
-output(unit, p, len)
- int unit;
- u_char *p;
- int len;
-{
- struct strbuf data;
- int retries;
- struct pollfd pfd;
-
- if (debug)
- dbglog("sent %P", p, len);
-
- data.len = len;
- data.buf = (caddr_t) p;
- retries = 4;
- while (putmsg(pppfd, NULL, &data, 0) < 0) {
- if (--retries < 0 || (errno != EWOULDBLOCK && errno != EAGAIN)) {
- if (errno != ENXIO)
- error("Couldn't send packet: %m");
- break;
- }
- pfd.fd = pppfd;
- pfd.events = POLLOUT;
- poll(&pfd, 1, 250); /* wait for up to 0.25 seconds */
- }
-}
-
-
-/*
- * wait_input - wait until there is data available,
- * for the length of time specified by *timo (indefinite
- * if timo is NULL).
- */
-void
-wait_input(timo)
- struct timeval *timo;
-{
- int t;
-
- t = timo == NULL? -1: timo->tv_sec * 1000 + timo->tv_usec / 1000;
- if (poll(pollfds, n_pollfds, t) < 0 && errno != EINTR) {
- if (errno != EAGAIN)
- fatal("poll: %m");
- /* we can get EAGAIN on a heavily loaded system,
- * just wait a short time and try again. */
- usleep(50000);
- }
-}
-
-/*
- * add_fd - add an fd to the set that wait_input waits for.
- */
-void add_fd(fd)
- int fd;
-{
- int n;
-
- for (n = 0; n < n_pollfds; ++n)
- if (pollfds[n].fd == fd)
- return;
- if (n_pollfds < MAX_POLLFDS) {
- pollfds[n_pollfds].fd = fd;
- pollfds[n_pollfds].events = POLLIN | POLLPRI | POLLHUP;
- ++n_pollfds;
- } else
- error("Too many inputs!");
-}
-
-/*
- * remove_fd - remove an fd from the set that wait_input waits for.
- */
-void remove_fd(fd)
- int fd;
-{
- int n;
-
- for (n = 0; n < n_pollfds; ++n) {
- if (pollfds[n].fd == fd) {
- while (++n < n_pollfds)
- pollfds[n-1] = pollfds[n];
- --n_pollfds;
- break;
- }
- }
-}
-
-#if 0
-/*
- * wait_loop_output - wait until there is data available on the
- * loopback, for the length of time specified by *timo (indefinite
- * if timo is NULL).
- */
-void
-wait_loop_output(timo)
- struct timeval *timo;
-{
- wait_input(timo);
-}
-
-/*
- * wait_time - wait for a given length of time or until a
- * signal is received.
- */
-void
-wait_time(timo)
- struct timeval *timo;
-{
- int n;
-
- n = select(0, NULL, NULL, NULL, timo);
- if (n < 0 && errno != EINTR)
- fatal("select: %m");
-}
-#endif
-
-/*
- * read_packet - get a PPP packet from the serial device.
- */
-int
-read_packet(buf)
- u_char *buf;
-{
- struct strbuf ctrl, data;
- int flags, len;
- unsigned char ctrlbuf[64];
-
- for (;;) {
- data.maxlen = PPP_MRU + PPP_HDRLEN;
- data.buf = (caddr_t) buf;
- ctrl.maxlen = sizeof(ctrlbuf);
- ctrl.buf = (caddr_t) ctrlbuf;
- flags = 0;
- len = getmsg(pppfd, &ctrl, &data, &flags);
- if (len < 0) {
- if (errno == EAGAIN || errno == EINTR)
- return -1;
- fatal("Error reading packet: %m");
- }
-
- if (ctrl.len <= 0)
- return data.len;
-
- /*
- * Got a M_PROTO or M_PCPROTO message. Huh?
- */
- if (debug)
- dbglog("got ctrl msg len=%d", ctrl.len);
-
- }
-}
-
-/*
- * get_loop_output - get outgoing packets from the ppp device,
- * and detect when we want to bring the real link up.
- * Return value is 1 if we need to bring up the link, 0 otherwise.
- */
-int
-get_loop_output()
-{
- int len;
- int rv = 0;
-
- while ((len = read_packet(inpacket_buf)) > 0) {
- if (loop_frame(inpacket_buf, len))
- rv = 1;
- }
- return rv;
-}
-
-/*
- * ppp_send_config - configure the transmit characteristics of
- * the ppp interface.
- */
-void
-ppp_send_config(unit, mtu, asyncmap, pcomp, accomp)
- int unit, mtu;
- u_int32_t asyncmap;
- int pcomp, accomp;
-{
- int cf[2];
- struct ifreq ifr;
-
- link_mtu = mtu;
- if (strioctl(pppfd, PPPIO_MTU, &mtu, sizeof(mtu), 0) < 0) {
- if (hungup && errno == ENXIO)
- return;
- error("Couldn't set MTU: %m");
- }
- if (strioctl(pppfd, PPPIO_XACCM, &asyncmap, sizeof(asyncmap), 0) < 0) {
- error("Couldn't set transmit ACCM: %m");
- }
- cf[0] = (pcomp? COMP_PROT: 0) + (accomp? COMP_AC: 0);
- cf[1] = COMP_PROT | COMP_AC;
- if (strioctl(pppfd, PPPIO_CFLAGS, cf, sizeof(cf), sizeof(int)) < 0) {
- error("Couldn't set prot/AC compression: %m");
- }
-
- /* set mtu for ip as well */
- memset(&ifr, 0, sizeof(ifr));
- strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- ifr.ifr_metric = link_mtu;
- if (ioctl(sockfd, SIOCSIFMTU, &ifr) < 0) {
- error("Couldn't set IP MTU: %m");
- }
-}
-
-/*
- * ppp_set_xaccm - set the extended transmit ACCM for the interface.
- */
-void
-ppp_set_xaccm(unit, accm)
- int unit;
- ext_accm accm;
-{
- if (strioctl(pppfd, PPPIO_XACCM, accm, sizeof(ext_accm), 0) < 0) {
- if (!hungup || errno != ENXIO)
- warn("Couldn't set extended ACCM: %m");
- }
-}
-
-/*
- * ppp_recv_config - configure the receive-side characteristics of
- * the ppp interface.
- */
-void
-ppp_recv_config(unit, mru, asyncmap, pcomp, accomp)
- int unit, mru;
- u_int32_t asyncmap;
- int pcomp, accomp;
-{
- int cf[2];
-
- link_mru = mru;
- if (strioctl(pppfd, PPPIO_MRU, &mru, sizeof(mru), 0) < 0) {
- if (hungup && errno == ENXIO)
- return;
- error("Couldn't set MRU: %m");
- }
- if (strioctl(pppfd, PPPIO_RACCM, &asyncmap, sizeof(asyncmap), 0) < 0) {
- error("Couldn't set receive ACCM: %m");
- }
- cf[0] = (pcomp? DECOMP_PROT: 0) + (accomp? DECOMP_AC: 0);
- cf[1] = DECOMP_PROT | DECOMP_AC;
- if (strioctl(pppfd, PPPIO_CFLAGS, cf, sizeof(cf), sizeof(int)) < 0) {
- error("Couldn't set prot/AC decompression: %m");
- }
-}
-
-/*
- * ccp_test - ask kernel whether a given compression method
- * is acceptable for use.
- */
-int
-ccp_test(unit, opt_ptr, opt_len, for_transmit)
- int unit, opt_len, for_transmit;
- u_char *opt_ptr;
-{
- if (strioctl(pppfd, (for_transmit? PPPIO_XCOMP: PPPIO_RCOMP),
- opt_ptr, opt_len, 0) >= 0)
- return 1;
- return (errno == ENOSR)? 0: -1;
-}
-
-/*
- * ccp_flags_set - inform kernel about the current state of CCP.
- */
-void
-ccp_flags_set(unit, isopen, isup)
- int unit, isopen, isup;
-{
- int cf[2];
-
- cf[0] = (isopen? CCP_ISOPEN: 0) + (isup? CCP_ISUP: 0);
- cf[1] = CCP_ISOPEN | CCP_ISUP | CCP_ERROR | CCP_FATALERROR;
- if (strioctl(pppfd, PPPIO_CFLAGS, cf, sizeof(cf), sizeof(int)) < 0) {
- if (!hungup || errno != ENXIO)
- error("Couldn't set kernel CCP state: %m");
- }
-}
-
-/*
- * get_idle_time - return how long the link has been idle.
- */
-int
-get_idle_time(u, ip)
- int u;
- struct ppp_idle *ip;
-{
- return strioctl(pppfd, PPPIO_GIDLE, ip, 0, sizeof(struct ppp_idle)) >= 0;
-}
-
-/*
- * get_ppp_stats - return statistics for the link.
- */
-int
-get_ppp_stats(u, stats)
- int u;
- struct pppd_stats *stats;
-{
- struct ppp_stats s;
-
- if (strioctl(pppfd, PPPIO_GETSTAT, &s, 0, sizeof(s)) < 0) {
- error("Couldn't get link statistics: %m");
- return 0;
- }
- stats->bytes_in = s.p.ppp_ibytes;
- stats->bytes_out = s.p.ppp_obytes;
- return 1;
-}
-
-
-/*
- * ccp_fatal_error - returns 1 if decompression was disabled as a
- * result of an error detected after decompression of a packet,
- * 0 otherwise. This is necessary because of patent nonsense.
- */
-int
-ccp_fatal_error(unit)
- int unit;
-{
- int cf[2];
-
- cf[0] = cf[1] = 0;
- if (strioctl(pppfd, PPPIO_CFLAGS, cf, sizeof(cf), sizeof(int)) < 0) {
- if (errno != ENXIO && errno != EINVAL)
- error("Couldn't get compression flags: %m");
- return 0;
- }
- return cf[0] & CCP_FATALERROR;
-}
-
-/*
- * sifvjcomp - config tcp header compression
- */
-int
-sifvjcomp(u, vjcomp, xcidcomp, xmaxcid)
- int u, vjcomp, xcidcomp, xmaxcid;
-{
- int cf[2];
- char maxcid[2];
-
- if (vjcomp) {
- maxcid[0] = xcidcomp;
- maxcid[1] = 15; /* XXX should be rmaxcid */
- if (strioctl(pppfd, PPPIO_VJINIT, maxcid, sizeof(maxcid), 0) < 0) {
- error("Couldn't initialize VJ compression: %m");
- }
- }
-
- cf[0] = (vjcomp? COMP_VJC + DECOMP_VJC: 0) /* XXX this is wrong */
- + (xcidcomp? COMP_VJCCID + DECOMP_VJCCID: 0);
- cf[1] = COMP_VJC + DECOMP_VJC + COMP_VJCCID + DECOMP_VJCCID;
- if (strioctl(pppfd, PPPIO_CFLAGS, cf, sizeof(cf), sizeof(int)) < 0) {
- if (vjcomp)
- error("Couldn't enable VJ compression: %m");
- }
-
- return 1;
-}
-
-/*
- * sifup - Config the interface up and enable IP packets to pass.
- */
-int
-sifup(u)
- int u;
-{
- struct ifreq ifr;
-
- strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(sockfd, SIOCGIFFLAGS, &ifr) < 0) {
- error("Couldn't mark interface up (get): %m");
- return 0;
- }
- ifr.ifr_flags |= IFF_UP;
- if (ioctl(sockfd, SIOCSIFFLAGS, &ifr) < 0) {
- error("Couldn't mark interface up (set): %m");
- return 0;
- }
- if_is_up = 1;
- return 1;
-}
-
-/*
- * sifdown - Config the interface down and disable IP.
- */
-int
-sifdown(u)
- int u;
-{
- struct ifreq ifr;
-
- strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(sockfd, SIOCGIFFLAGS, &ifr) < 0) {
- error("Couldn't mark interface down (get): %m");
- return 0;
- }
- if ((ifr.ifr_flags & IFF_UP) != 0) {
- ifr.ifr_flags &= ~IFF_UP;
- if (ioctl(sockfd, SIOCSIFFLAGS, &ifr) < 0) {
- error("Couldn't mark interface down (set): %m");
- return 0;
- }
- }
- if_is_up = 0;
- return 1;
-}
-
-/*
- * sifnpmode - Set the mode for handling packets for a given NP.
- */
-int
-sifnpmode(u, proto, mode)
- int u;
- int proto;
- enum NPmode mode;
-{
- int npi[2];
-
- npi[0] = proto;
- npi[1] = (int) mode;
- if (strioctl(pppfd, PPPIO_NPMODE, npi, 2 * sizeof(int), 0) < 0) {
- error("ioctl(set NP %d mode to %d): %m", proto, mode);
- return 0;
- }
- return 1;
-}
-
-#define INET_ADDR(x) (((struct sockaddr_in *) &(x))->sin_addr.s_addr)
-
-/*
- * sifaddr - Config the interface IP addresses and netmask.
- */
-int
-sifaddr(u, o, h, m)
- int u;
- u_int32_t o, h, m;
-{
- struct ifreq ifr;
-
- memset(&ifr, 0, sizeof(ifr));
- strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- ifr.ifr_addr.sa_family = AF_INET;
- INET_ADDR(ifr.ifr_addr) = m;
- if (ioctl(sockfd, SIOCSIFNETMASK, &ifr) < 0) {
- error("Couldn't set IP netmask: %m");
- }
- ifr.ifr_addr.sa_family = AF_INET;
- INET_ADDR(ifr.ifr_addr) = o;
- if (ioctl(sockfd, SIOCSIFADDR, &ifr) < 0) {
- error("Couldn't set local IP address: %m");
- }
- ifr.ifr_dstaddr.sa_family = AF_INET;
- INET_ADDR(ifr.ifr_dstaddr) = h;
- if (ioctl(sockfd, SIOCSIFDSTADDR, &ifr) < 0) {
- error("Couldn't set remote IP address: %m");
- }
-#if 0 /* now done in ppp_send_config */
- ifr.ifr_metric = link_mtu;
- if (ioctl(sockfd, SIOCSIFMTU, &ifr) < 0) {
- error("Couldn't set IP MTU: %m");
- }
-#endif
- ifaddrs[0] = o;
- ifaddrs[1] = h;
-
- return 1;
-}
-
-/*
- * cifaddr - Clear the interface IP addresses, and delete routes
- * through the interface if possible.
- */
-int
-cifaddr(u, o, h)
- int u;
- u_int32_t o, h;
-{
- struct rtentry rt;
-
- bzero(&rt, sizeof(rt));
- rt.rt_dst.sa_family = AF_INET;
- INET_ADDR(rt.rt_dst) = h;
- rt.rt_gateway.sa_family = AF_INET;
- INET_ADDR(rt.rt_gateway) = o;
- rt.rt_flags = RTF_HOST;
- if (ioctl(sockfd, SIOCDELRT, &rt) < 0)
- error("Couldn't delete route through interface: %m");
- ifaddrs[0] = 0;
- return 1;
-}
-
-/*
- * sifdefaultroute - assign a default route through the address given.
- */
-int
-sifdefaultroute(u, l, g)
- int u;
- u_int32_t l, g;
-{
- struct rtentry rt;
-
- bzero(&rt, sizeof(rt));
- rt.rt_dst.sa_family = AF_INET;
- INET_ADDR(rt.rt_dst) = 0;
- rt.rt_gateway.sa_family = AF_INET;
- INET_ADDR(rt.rt_gateway) = g;
- rt.rt_flags = RTF_GATEWAY;
-
- if (ioctl(sockfd, SIOCADDRT, &rt) < 0) {
- error("Can't add default route: %m");
- return 0;
- }
-
- default_route_gateway = g;
- return 1;
-}
-
-/*
- * cifdefaultroute - delete a default route through the address given.
- */
-int
-cifdefaultroute(u, l, g)
- int u;
- u_int32_t l, g;
-{
- struct rtentry rt;
-
- bzero(&rt, sizeof(rt));
- rt.rt_dst.sa_family = AF_INET;
- INET_ADDR(rt.rt_dst) = 0;
- rt.rt_gateway.sa_family = AF_INET;
- INET_ADDR(rt.rt_gateway) = g;
- rt.rt_flags = RTF_GATEWAY;
-
- if (ioctl(sockfd, SIOCDELRT, &rt) < 0) {
- error("Can't delete default route: %m");
- return 0;
- }
-
- default_route_gateway = 0;
- return 1;
-}
-
-/*
- * sifproxyarp - Make a proxy ARP entry for the peer.
- */
-int
-sifproxyarp(unit, hisaddr)
- int unit;
- u_int32_t hisaddr;
-{
- struct arpreq arpreq;
-
- bzero(&arpreq, sizeof(arpreq));
- if (!get_ether_addr(hisaddr, &arpreq.arp_ha))
- return 0;
-
- arpreq.arp_pa.sa_family = AF_INET;
- INET_ADDR(arpreq.arp_pa) = hisaddr;
- arpreq.arp_flags = ATF_PERM | ATF_PUBL;
- if (ioctl(sockfd, SIOCSARP, (caddr_t) &arpreq) < 0) {
- error("Couldn't set proxy ARP entry: %m");
- return 0;
- }
-
- proxy_arp_addr = hisaddr;
- return 1;
-}
-
-/*
- * cifproxyarp - Delete the proxy ARP entry for the peer.
- */
-int
-cifproxyarp(unit, hisaddr)
- int unit;
- u_int32_t hisaddr;
-{
- struct arpreq arpreq;
-
- bzero(&arpreq, sizeof(arpreq));
- arpreq.arp_pa.sa_family = AF_INET;
- INET_ADDR(arpreq.arp_pa) = hisaddr;
- if (ioctl(sockfd, SIOCDARP, (caddr_t)&arpreq) < 0) {
- error("Couldn't delete proxy ARP entry: %m");
- return 0;
- }
-
- proxy_arp_addr = 0;
- return 1;
-}
-
-/*
- * get_ether_addr - get the hardware address of an interface on the
- * the same subnet as ipaddr.
- */
-#define MAX_IFS 32
-
-static int
-get_ether_addr(ipaddr, hwaddr)
- u_int32_t ipaddr;
- struct sockaddr *hwaddr;
-{
- struct ifreq *ifr, *ifend;
- u_int32_t ina, mask;
- struct ifreq ifreq;
- struct ifconf ifc;
- struct ifreq ifs[MAX_IFS];
- int nit_fd;
-
- ifc.ifc_len = sizeof(ifs);
- ifc.ifc_req = ifs;
- if (ioctl(sockfd, SIOCGIFCONF, &ifc) < 0) {
- error("ioctl(SIOCGIFCONF): %m");
- return 0;
- }
-
- /*
- * Scan through looking for an interface with an Internet
- * address on the same subnet as `ipaddr'.
- */
- ifend = (struct ifreq *) (ifc.ifc_buf + ifc.ifc_len);
- for (ifr = ifc.ifc_req; ifr < ifend; ifr = (struct ifreq *)
- ((char *)&ifr->ifr_addr + sizeof(struct sockaddr))) {
- if (ifr->ifr_addr.sa_family == AF_INET) {
-
- /*
- * Check that the interface is up, and not point-to-point
- * or loopback.
- */
- strlcpy(ifreq.ifr_name, ifr->ifr_name, sizeof(ifreq.ifr_name));
- if (ioctl(sockfd, SIOCGIFFLAGS, &ifreq) < 0)
- continue;
- if ((ifreq.ifr_flags &
- (IFF_UP|IFF_BROADCAST|IFF_POINTOPOINT|IFF_LOOPBACK|IFF_NOARP))
- != (IFF_UP|IFF_BROADCAST))
- continue;
-
- /*
- * Get its netmask and check that it's on the right subnet.
- */
- if (ioctl(sockfd, SIOCGIFNETMASK, &ifreq) < 0)
- continue;
- ina = ((struct sockaddr_in *) &ifr->ifr_addr)->sin_addr.s_addr;
- mask = ((struct sockaddr_in *) &ifreq.ifr_addr)->sin_addr.s_addr;
- if ((ipaddr & mask) != (ina & mask))
- continue;
-
- break;
- }
- }
-
- if (ifr >= ifend)
- return 0;
- info("found interface %s for proxy arp", ifr->ifr_name);
-
- /*
- * Grab the physical address for this interface.
- */
- if ((nit_fd = open("/dev/nit", O_RDONLY)) < 0) {
- error("Couldn't open /dev/nit: %m");
- return 0;
- }
- strlcpy(ifreq.ifr_name, ifr->ifr_name, sizeof(ifreq.ifr_name));
- if (ioctl(nit_fd, NIOCBIND, &ifreq) < 0
- || ioctl(nit_fd, SIOCGIFADDR, &ifreq) < 0) {
- error("Couldn't get hardware address for %s: %m",
- ifreq.ifr_name);
- close(nit_fd);
- return 0;
- }
-
- hwaddr->sa_family = AF_UNSPEC;
- memcpy(hwaddr->sa_data, ifreq.ifr_addr.sa_data, 6);
- close(nit_fd);
- return 1;
-}
-
-/*
- * have_route_to - determine if the system has any route to
- * a given IP address.
- * For demand mode to work properly, we have to ignore routes
- * through our own interface.
- */
-int have_route_to(addr)
- u_int32_t addr;
-{
- return -1;
-}
-
-#define WTMPFILE "/usr/adm/wtmp"
-
-void
-logwtmp(line, name, host)
- const char *line, *name, *host;
-{
- int fd;
- struct stat buf;
- struct utmp ut;
-
- if ((fd = open(WTMPFILE, O_WRONLY|O_APPEND, 0)) < 0)
- return;
- if (!fstat(fd, &buf)) {
- strncpy(ut.ut_line, line, sizeof(ut.ut_line));
- strncpy(ut.ut_name, name, sizeof(ut.ut_name));
- strncpy(ut.ut_host, host, sizeof(ut.ut_host));
- (void)time(&ut.ut_time);
- if (write(fd, (char *)&ut, sizeof(struct utmp)) != sizeof(struct utmp))
- (void)ftruncate(fd, buf.st_size);
- }
- close(fd);
-}
-
-/*
- * Return user specified netmask, modified by any mask we might determine
- * for address `addr' (in network byte order).
- * Here we scan through the system's list of interfaces, looking for
- * any non-point-to-point interfaces which might appear to be on the same
- * network as `addr'. If we find any, we OR in their netmask to the
- * user-specified netmask.
- */
-u_int32_t
-GetMask(addr)
- u_int32_t addr;
-{
- u_int32_t mask, nmask, ina;
- struct ifreq *ifr, *ifend, ifreq;
- struct ifconf ifc;
-
- addr = ntohl(addr);
- if (IN_CLASSA(addr)) /* determine network mask for address class */
- nmask = IN_CLASSA_NET;
- else if (IN_CLASSB(addr))
- nmask = IN_CLASSB_NET;
- else
- nmask = IN_CLASSC_NET;
- /* class D nets are disallowed by bad_ip_adrs */
- mask = netmask | htonl(nmask);
-
- /*
- * Scan through the system's network interfaces.
- */
- ifc.ifc_len = MAX_IFS * sizeof(struct ifreq);
- ifc.ifc_req = alloca(ifc.ifc_len);
- if (ifc.ifc_req == 0)
- return mask;
- if (ioctl(sockfd, SIOCGIFCONF, &ifc) < 0) {
- warn("Couldn't get system interface list: %m");
- return mask;
- }
- ifend = (struct ifreq *) (ifc.ifc_buf + ifc.ifc_len);
- for (ifr = ifc.ifc_req; ifr < ifend; ++ifr) {
- /*
- * Check the interface's internet address.
- */
- if (ifr->ifr_addr.sa_family != AF_INET)
- continue;
- ina = INET_ADDR(ifr->ifr_addr);
- if ((ntohl(ina) & nmask) != (addr & nmask))
- continue;
- /*
- * Check that the interface is up, and not point-to-point or loopback.
- */
- strlcpy(ifreq.ifr_name, ifr->ifr_name, sizeof(ifreq.ifr_name));
- if (ioctl(sockfd, SIOCGIFFLAGS, &ifreq) < 0)
- continue;
- if ((ifreq.ifr_flags & (IFF_UP|IFF_POINTOPOINT|IFF_LOOPBACK))
- != IFF_UP)
- continue;
- /*
- * Get its netmask and OR it into our mask.
- */
- if (ioctl(sockfd, SIOCGIFNETMASK, &ifreq) < 0)
- continue;
- mask |= INET_ADDR(ifreq.ifr_addr);
- }
-
- return mask;
-}
-
-static int
-strioctl(fd, cmd, ptr, ilen, olen)
- int fd, cmd, ilen, olen;
- void *ptr;
-{
- struct strioctl str;
-
- str.ic_cmd = cmd;
- str.ic_timout = 0;
- str.ic_len = ilen;
- str.ic_dp = ptr;
- if (ioctl(fd, I_STR, &str) == -1)
- return -1;
- if (str.ic_len != olen)
- dbglog("strioctl: expected %d bytes, got %d for cmd %x\n",
- olen, str.ic_len, cmd);
- return 0;
-}
-
-/*
- * Use the hostid as part of the random number seed.
- */
-int
-get_host_seed()
-{
- return gethostid();
-}
-
-#if 0
-/*
- * Code for locking/unlocking the serial device.
- * This code is derived from chat.c.
- */
-
-#if !defined(HDB) && !defined(SUNOS3)
-#define HDB 1 /* ascii lock files are the default */
-#endif
-
-#ifndef LOCK_DIR
-# if HDB
-# define PIDSTRING
-# define LOCK_PREFIX "/usr/spool/locks/LCK.."
-# else /* HDB */
-# define LOCK_PREFIX "/usr/spool/uucp/LCK.."
-# endif /* HDB */
-#endif /* LOCK_DIR */
-
-static char *lock_file; /* name of lock file created */
-
-/*
- * lock - create a lock file for the named device.
- */
-int
-lock(dev)
- char *dev;
-{
- char hdb_lock_buffer[12];
- int fd, pid, n;
- char *p;
- size_t l;
-
- if ((p = strrchr(dev, '/')) != NULL)
- dev = p + 1;
- l = strlen(LOCK_PREFIX) + strlen(dev) + 1;
- lock_file = malloc(l);
- if (lock_file == NULL)
- novm("lock file name");
- slprintf(lock_file, l, "%s%s", LOCK_PREFIX, dev);
-
- while ((fd = open(lock_file, O_EXCL | O_CREAT | O_RDWR, 0644)) < 0) {
- if (errno == EEXIST
- && (fd = open(lock_file, O_RDONLY, 0)) >= 0) {
- /* Read the lock file to find out who has the device locked */
-#ifdef PIDSTRING
- n = read(fd, hdb_lock_buffer, 11);
- if (n > 0) {
- hdb_lock_buffer[n] = 0;
- pid = atoi(hdb_lock_buffer);
- }
-#else
- n = read(fd, &pid, sizeof(pid));
-#endif
- if (n <= 0) {
- error("Can't read pid from lock file %s", lock_file);
- close(fd);
- } else {
- if (kill(pid, 0) == -1 && errno == ESRCH) {
- /* pid no longer exists - remove the lock file */
- if (unlink(lock_file) == 0) {
- close(fd);
- notice("Removed stale lock on %s (pid %d)",
- dev, pid);
- continue;
- } else
- warn("Couldn't remove stale lock on %s",
- dev);
- } else
- notice("Device %s is locked by pid %d",
- dev, pid);
- }
- close(fd);
- } else
- error("Can't create lock file %s: %m", lock_file);
- free(lock_file);
- lock_file = NULL;
- return -1;
- }
-
-#ifdef PIDSTRING
- slprintf(hdb_lock_buffer, sizeof(hdb_lock_buffer), "%10d\n", getpid());
- write(fd, hdb_lock_buffer, 11);
-#else
- pid = getpid();
- write(fd, &pid, sizeof pid);
-#endif
-
- close(fd);
- return 0;
-}
-
-/*
- * unlock - remove our lockfile
- */
-void
-unlock()
-{
- if (lock_file) {
- unlink(lock_file);
- free(lock_file);
- lock_file = NULL;
- }
-}
-#endif /* lock stuff removed */
-
-/*
- * get_pty - get a pty master/slave pair and chown the slave side
- * to the uid given. Assumes slave_name points to >= 12 bytes of space.
- */
-int
-get_pty(master_fdp, slave_fdp, slave_name, uid)
- int *master_fdp;
- int *slave_fdp;
- char *slave_name;
- int uid;
-{
- int i, mfd, sfd;
- char pty_name[12];
- struct termios tios;
-
- sfd = -1;
- for (i = 0; i < 64; ++i) {
- slprintf(pty_name, sizeof(pty_name), "/dev/pty%c%x",
- 'p' + i / 16, i % 16);
- mfd = open(pty_name, O_RDWR, 0);
- if (mfd >= 0) {
- pty_name[5] = 't';
- sfd = open(pty_name, O_RDWR | O_NOCTTY, 0);
- if (sfd >= 0)
- break;
- close(mfd);
- }
- }
- if (sfd < 0)
- return 0;
-
- strlcpy(slave_name, pty_name, 12);
- *master_fdp = mfd;
- *slave_fdp = sfd;
- fchown(sfd, uid, -1);
- fchmod(sfd, S_IRUSR | S_IWUSR);
- if (tcgetattr(sfd, &tios) == 0) {
- tios.c_cflag &= ~(CSIZE | CSTOPB | PARENB);
- tios.c_cflag |= CS8 | CREAD;
- tios.c_iflag = IGNPAR | CLOCAL;
- tios.c_oflag = 0;
- tios.c_lflag = 0;
- if (tcsetattr(sfd, TCSAFLUSH, &tios) < 0)
- warn("couldn't set attributes on pty: %m");
- } else
- warn("couldn't get attributes on pty: %m");
-
- return 1;
-}
-
-/*
- * SunOS doesn't have strtoul :-(
- */
-unsigned long
-strtoul(str, ptr, base)
- char *str, **ptr;
- int base;
-{
- return (unsigned long) strtol(str, ptr, base);
-}
-
-/*
- * Or strerror :-(
- */
-extern char *sys_errlist[];
-extern int sys_nerr;
-
-char *
-strerror(n)
- int n;
-{
- static char unknown[32];
-
- if (n > 0 && n < sys_nerr)
- return sys_errlist[n];
- slprintf(unknown, sizeof(unknown), "Error %d", n);
- return unknown;
-}
diff --git a/mdk-stage1/ppp/pppd/tdb.c b/mdk-stage1/ppp/pppd/tdb.c
deleted file mode 100644
index 7fd58291e..000000000
--- a/mdk-stage1/ppp/pppd/tdb.c
+++ /dev/null
@@ -1,1282 +0,0 @@
-/*
- * Database functions
- * Copyright (C) Andrew Tridgell 1999
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms AND provided that this software or
- * any derived work is only used as part of the PPP daemon (pppd)
- * and related utilities.
- * The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Note: this software is also available under the Gnu Public License
- * version 2 or later.
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <string.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <sys/mman.h>
-#include <sys/stat.h>
-#include "tdb.h"
-
-#define TDB_VERSION (0x26011967 + 1)
-#define TDB_MAGIC (0x26011999U)
-#define TDB_FREE_MAGIC (~TDB_MAGIC)
-#define TDB_ALIGN 4
-#define MIN_REC_SIZE (2*sizeof(struct list_struct) + TDB_ALIGN)
-#define DEFAULT_HASH_SIZE 128
-#define TDB_PAGE_SIZE 0x2000
-#define TDB_LEN_MULTIPLIER 10
-#define FREELIST_TOP (sizeof(struct tdb_header))
-
-#define LOCK_SET 1
-#define LOCK_CLEAR 0
-
-/* lock offsets */
-#define GLOBAL_LOCK 0
-#define ACTIVE_LOCK 4
-#define LIST_LOCK_BASE 1024
-
-#define BUCKET(hash) ((hash) % tdb->header.hash_size)
-
-#ifndef MAP_FILE
-#define MAP_FILE 0
-#endif
-
-/* the body of the database is made of one list_struct for the free space
- plus a separate data list for each hash value */
-struct list_struct {
- tdb_len rec_len; /* total byte length of record */
- tdb_off next; /* offset of the next record in the list */
- tdb_len key_len; /* byte length of key */
- tdb_len data_len; /* byte length of data */
- unsigned full_hash; /* the full 32 bit hash of the key */
- unsigned magic; /* try to catch errors */
- /*
- the following union is implied
- union {
- char record[rec_len];
- struct {
- char key[key_len];
- char data[data_len];
- }
- }
- */
-};
-
-/* a null data record - useful for error returns */
-static TDB_DATA null_data;
-
-/* a byte range locking function - return 0 on success
- this functions locks/unlocks 1 byte at the specified offset */
-static int tdb_brlock(TDB_CONTEXT *tdb, tdb_off offset,
- int set, int rw_type, int lck_type)
-{
-#if NOLOCK
- return 0;
-#else
- struct flock fl;
-
- if (tdb->fd == -1) return 0; /* for in memory tdb */
-
- if (tdb->read_only) return -1;
-
- fl.l_type = set==LOCK_SET?rw_type:F_UNLCK;
- fl.l_whence = SEEK_SET;
- fl.l_start = offset;
- fl.l_len = 1;
- fl.l_pid = 0;
-
- if (fcntl(tdb->fd, lck_type, &fl) != 0) {
-#if TDB_DEBUG
- if (lck_type == F_SETLKW) {
- printf("lock %d failed at %d (%s)\n",
- set, offset, strerror(errno));
- }
-#endif
- tdb->ecode = TDB_ERR_LOCK;
- return -1;
- }
- return 0;
-#endif
-}
-
-/* lock a list in the database. list -1 is the alloc list */
-static int tdb_lock(TDB_CONTEXT *tdb, int list)
-{
- if (list < -1 || list >= (int)tdb->header.hash_size) {
-#if TDB_DEBUG
- printf("bad list %d\n", list);
-#endif
- return -1;
- }
- if (tdb->locked[list+1] == 0) {
- if (tdb_brlock(tdb, LIST_LOCK_BASE + 4*list, LOCK_SET,
- F_WRLCK, F_SETLKW) != 0) {
- return -1;
- }
- }
- tdb->locked[list+1]++;
- return 0;
-}
-
-/* unlock the database. */
-static int tdb_unlock(TDB_CONTEXT *tdb, int list)
-{
- if (list < -1 || list >= (int)tdb->header.hash_size) {
-#if TDB_DEBUG
- printf("bad unlock list %d\n", list);
-#endif
- return -1;
- }
-
- if (tdb->locked[list+1] == 0) {
-#if TDB_DEBUG
- printf("not locked %d\n", list);
-#endif
- tdb->ecode = TDB_ERR_LOCK;
- return -1;
- }
- if (tdb->locked[list+1] == 1) {
- if (tdb_brlock(tdb, LIST_LOCK_BASE + 4*list, LOCK_CLEAR,
- F_WRLCK, F_SETLKW) != 0) {
- return -1;
- }
- }
- tdb->locked[list+1]--;
- return 0;
-}
-
-/* the hash algorithm - turn a key into an integer
- This is based on the hash agorithm from gdbm */
-static unsigned tdb_hash(TDB_DATA *key)
-{
- unsigned value; /* Used to compute the hash value. */
- unsigned i; /* Used to cycle through random values. */
-
- /* Set the initial value from the key size. */
- value = 0x238F13AF * key->dsize;
- for (i=0; i < key->dsize; i++) {
- value = (value + (key->dptr[i] << (i*5 % 24)));
- }
-
- value = (1103515243 * value + 12345);
-
- return value;
-}
-
-/* find the top of the hash chain for an open database */
-static tdb_off tdb_hash_top(TDB_CONTEXT *tdb, unsigned hash)
-{
- tdb_off ret;
- hash = BUCKET(hash);
- ret = FREELIST_TOP + (hash+1)*sizeof(tdb_off);
- return ret;
-}
-
-
-/* check for an out of bounds access - if it is out of bounds then
- see if the database has been expanded by someone else and expand
- if necessary */
-static int tdb_oob(TDB_CONTEXT *tdb, tdb_off offset)
-{
- struct stat st;
- if ((offset <= tdb->map_size) || (tdb->fd == -1)) return 0;
-
- fstat(tdb->fd, &st);
- if (st.st_size <= (ssize_t)offset) {
- tdb->ecode = TDB_ERR_IO;
- return -1;
- }
-
-#if HAVE_MMAP
- if (tdb->map_ptr) {
- munmap(tdb->map_ptr, tdb->map_size);
- tdb->map_ptr = NULL;
- }
-#endif
-
- tdb->map_size = st.st_size;
-#if HAVE_MMAP
- tdb->map_ptr = (void *)mmap(NULL, tdb->map_size,
- tdb->read_only?PROT_READ:PROT_READ|PROT_WRITE,
- MAP_SHARED | MAP_FILE, tdb->fd, 0);
-#endif
- return 0;
-}
-
-
-/* write a lump of data at a specified offset */
-static int tdb_write(TDB_CONTEXT *tdb, tdb_off offset, const char *buf, tdb_len len)
-{
- if (tdb_oob(tdb, offset + len) != 0) {
- /* oops - trying to write beyond the end of the database! */
- return -1;
- }
-
- if (tdb->map_ptr) {
- memcpy(offset + (char *)tdb->map_ptr, buf, len);
- } else {
- if (lseek(tdb->fd, offset, SEEK_SET) != offset ||
- write(tdb->fd, buf, len) != (ssize_t)len) {
- tdb->ecode = TDB_ERR_IO;
- return -1;
- }
- }
- return 0;
-}
-
-/* read a lump of data at a specified offset */
-static int tdb_read(TDB_CONTEXT *tdb, tdb_off offset, char *buf, tdb_len len)
-{
- if (tdb_oob(tdb, offset + len) != 0) {
- /* oops - trying to read beyond the end of the database! */
- return -1;
- }
-
- if (tdb->map_ptr) {
- memcpy(buf, offset + (char *)tdb->map_ptr, len);
- } else {
- if (lseek(tdb->fd, offset, SEEK_SET) != offset ||
- read(tdb->fd, buf, len) != (ssize_t)len) {
- tdb->ecode = TDB_ERR_IO;
- return -1;
- }
- }
- return 0;
-}
-
-
-/* read a lump of data, allocating the space for it */
-static char *tdb_alloc_read(TDB_CONTEXT *tdb, tdb_off offset, tdb_len len)
-{
- char *buf;
-
- buf = (char *)malloc(len);
-
- if (!buf) {
- tdb->ecode = TDB_ERR_OOM;
- return NULL;
- }
-
- if (tdb_read(tdb, offset, buf, len) == -1) {
- free(buf);
- return NULL;
- }
-
- return buf;
-}
-
-/* convenience routine for writing a record */
-static int rec_write(TDB_CONTEXT *tdb, tdb_off offset, struct list_struct *rec)
-{
- return tdb_write(tdb, offset, (char *)rec, sizeof(*rec));
-}
-
-/* convenience routine for writing a tdb_off */
-static int ofs_write(TDB_CONTEXT *tdb, tdb_off offset, tdb_off *d)
-{
- return tdb_write(tdb, offset, (char *)d, sizeof(*d));
-}
-
-/* read a tdb_off from the store */
-static int ofs_read(TDB_CONTEXT *tdb, tdb_off offset, tdb_off *d)
-{
- return tdb_read(tdb, offset, (char *)d, sizeof(*d));
-}
-
-/* read a record and check for simple errors */
-static int rec_read(TDB_CONTEXT *tdb, tdb_off offset, struct list_struct *rec)
-{
- if (tdb_read(tdb, offset, (char *)rec, sizeof(*rec)) == -1) return -1;
- if (rec->magic != TDB_MAGIC) {
-#if TDB_DEBUG
- printf("bad magic 0x%08x at offset %d\n",
- rec->magic, offset);
-#endif
- tdb->ecode = TDB_ERR_CORRUPT;
- return -1;
- }
- if (tdb_oob(tdb, rec->next) != 0) {
- return -1;
- }
- return 0;
-}
-
-/* expand the database at least length bytes by expanding the
- underlying file and doing the mmap again if necessary */
-static int tdb_expand(TDB_CONTEXT *tdb, tdb_off length)
-{
- struct list_struct rec;
- tdb_off offset, ptr;
- char b = 0;
-
- tdb_lock(tdb,-1);
-
- /* make sure we know about any previous expansions by another
- process */
- tdb_oob(tdb,tdb->map_size + 1);
-
- /* always make room for at least 10 more records */
- length *= TDB_LEN_MULTIPLIER;
-
- /* and round the database up to a multiple of TDB_PAGE_SIZE */
- length = ((tdb->map_size + length + TDB_PAGE_SIZE) & ~(TDB_PAGE_SIZE - 1)) - tdb->map_size;
-
- /* expand the file itself */
- if (tdb->fd != -1) {
- lseek(tdb->fd, tdb->map_size + length - 1, SEEK_SET);
- if (write(tdb->fd, &b, 1) != 1) goto fail;
- }
-
- /* form a new freelist record */
- offset = FREELIST_TOP;
- rec.rec_len = length - sizeof(rec);
- rec.magic = TDB_FREE_MAGIC;
- if (ofs_read(tdb, offset, &rec.next) == -1) {
- goto fail;
- }
-
-#if HAVE_MMAP
- if (tdb->fd != -1 && tdb->map_ptr) {
- munmap(tdb->map_ptr, tdb->map_size);
- tdb->map_ptr = NULL;
- }
-#endif
-
- tdb->map_size += length;
-
- if (tdb->fd == -1) {
- tdb->map_ptr = realloc(tdb->map_ptr, tdb->map_size);
- }
-
- /* write it out */
- if (rec_write(tdb, tdb->map_size - length, &rec) == -1) {
- goto fail;
- }
-
- /* link it into the free list */
- ptr = tdb->map_size - length;
- if (ofs_write(tdb, offset, &ptr) == -1) goto fail;
-
-#if HAVE_MMAP
- if (tdb->fd != -1) {
- tdb->map_ptr = (void *)mmap(NULL, tdb->map_size,
- PROT_READ|PROT_WRITE,
- MAP_SHARED | MAP_FILE, tdb->fd, 0);
- }
-#endif
-
- tdb_unlock(tdb, -1);
- return 0;
-
- fail:
- tdb_unlock(tdb,-1);
- return -1;
-}
-
-/* allocate some space from the free list. The offset returned points
- to a unconnected list_struct within the database with room for at
- least length bytes of total data
-
- 0 is returned if the space could not be allocated
- */
-static tdb_off tdb_allocate(TDB_CONTEXT *tdb, tdb_len length)
-{
- tdb_off offset, rec_ptr, last_ptr;
- struct list_struct rec, lastrec, newrec;
-
- tdb_lock(tdb, -1);
-
- again:
- last_ptr = 0;
- offset = FREELIST_TOP;
-
- /* read in the freelist top */
- if (ofs_read(tdb, offset, &rec_ptr) == -1) {
- goto fail;
- }
-
- /* keep looking until we find a freelist record that is big
- enough */
- while (rec_ptr) {
- if (tdb_read(tdb, rec_ptr, (char *)&rec, sizeof(rec)) == -1) {
- goto fail;
- }
-
- if (rec.magic != TDB_FREE_MAGIC) {
-#if TDB_DEBUG
- printf("bad magic 0x%08x in free list\n", rec.magic);
-#endif
- goto fail;
- }
-
- if (rec.rec_len >= length) {
- /* found it - now possibly split it up */
- if (rec.rec_len > length + MIN_REC_SIZE) {
- length = (length + TDB_ALIGN) & ~(TDB_ALIGN-1);
-
- newrec.rec_len = rec.rec_len - (sizeof(rec) + length);
- newrec.next = rec.next;
- newrec.magic = TDB_FREE_MAGIC;
-
- rec.rec_len = length;
- rec.next = rec_ptr + sizeof(rec) + rec.rec_len;
-
- if (rec_write(tdb, rec.next, &newrec) == -1) {
- goto fail;
- }
-
- if (rec_write(tdb, rec_ptr, &rec) == -1) {
- goto fail;
- }
- }
-
- /* remove it from the list */
- if (last_ptr == 0) {
- offset = FREELIST_TOP;
-
- if (ofs_write(tdb, offset, &rec.next) == -1) {
- goto fail;
- }
- } else {
- lastrec.next = rec.next;
- if (rec_write(tdb, last_ptr, &lastrec) == -1) {
- goto fail;
- }
- }
-
- /* all done - return the new record offset */
- tdb_unlock(tdb, -1);
- return rec_ptr;
- }
-
- /* move to the next record */
- lastrec = rec;
- last_ptr = rec_ptr;
- rec_ptr = rec.next;
- }
-
- /* we didn't find enough space. See if we can expand the
- database and if we can then try again */
- if (tdb_expand(tdb, length + sizeof(rec)) == 0) goto again;
-
- fail:
-#if TDB_DEBUG
- printf("tdb_allocate failed for size %u\n", length);
-#endif
- tdb_unlock(tdb, -1);
- return 0;
-}
-
-/* initialise a new database with a specified hash size */
-static int tdb_new_database(TDB_CONTEXT *tdb, int hash_size)
-{
- struct tdb_header header;
- tdb_off offset;
- int i, size = 0;
- tdb_off buf[16];
-
- /* create the header */
- memset(&header, 0, sizeof(header));
- memcpy(header.magic_food, TDB_MAGIC_FOOD, strlen(TDB_MAGIC_FOOD)+1);
- header.version = TDB_VERSION;
- header.hash_size = hash_size;
- lseek(tdb->fd, 0, SEEK_SET);
- ftruncate(tdb->fd, 0);
-
- if (tdb->fd != -1 && write(tdb->fd, &header, sizeof(header)) !=
- sizeof(header)) {
- tdb->ecode = TDB_ERR_IO;
- return -1;
- } else size += sizeof(header);
-
- /* the freelist and hash pointers */
- offset = 0;
- memset(buf, 0, sizeof(buf));
-
- for (i=0;(hash_size+1)-i >= 16; i += 16) {
- if (tdb->fd != -1 && write(tdb->fd, buf, sizeof(buf)) !=
- sizeof(buf)) {
- tdb->ecode = TDB_ERR_IO;
- return -1;
- } else size += sizeof(buf);
- }
-
- for (;i<hash_size+1; i++) {
- if (tdb->fd != -1 && write(tdb->fd, buf, sizeof(tdb_off)) !=
- sizeof(tdb_off)) {
- tdb->ecode = TDB_ERR_IO;
- return -1;
- } else size += sizeof(tdb_off);
- }
-
- if (tdb->fd == -1) {
- tdb->map_ptr = calloc(size, 1);
- tdb->map_size = size;
- if (tdb->map_ptr == NULL) {
- tdb->ecode = TDB_ERR_IO;
- return -1;
- }
- memcpy(&tdb->header, &header, sizeof(header));
- }
-
-#if TDB_DEBUG
- printf("initialised database of hash_size %u\n",
- hash_size);
-#endif
- return 0;
-}
-
-/* Returns 0 on fail. On success, return offset of record, and fills
- in rec */
-static tdb_off tdb_find(TDB_CONTEXT *tdb, TDB_DATA key, unsigned int hash,
- struct list_struct *rec)
-{
- tdb_off offset, rec_ptr;
-
- /* find the top of the hash chain */
- offset = tdb_hash_top(tdb, hash);
-
- /* read in the hash top */
- if (ofs_read(tdb, offset, &rec_ptr) == -1)
- return 0;
-
- /* keep looking until we find the right record */
- while (rec_ptr) {
- if (rec_read(tdb, rec_ptr, rec) == -1)
- return 0;
-
- if (hash == rec->full_hash && key.dsize == rec->key_len) {
- char *k;
- /* a very likely hit - read the key */
- k = tdb_alloc_read(tdb, rec_ptr + sizeof(*rec),
- rec->key_len);
-
- if (!k)
- return 0;
-
- if (memcmp(key.dptr, k, key.dsize) == 0) {
- free(k);
- return rec_ptr;
- }
- free(k);
- }
-
- /* move to the next record */
- rec_ptr = rec->next;
- }
- return 0;
-}
-
-/*
- return an error string for the last tdb error
-*/
-char *tdb_error(TDB_CONTEXT *tdb)
-{
- int i;
- static struct {
- enum TDB_ERROR ecode;
- char *estring;
- } emap[] = {
- {TDB_SUCCESS, "Success"},
- {TDB_ERR_CORRUPT, "Corrupt database"},
- {TDB_ERR_IO, "IO Error"},
- {TDB_ERR_LOCK, "Locking error"},
- {TDB_ERR_OOM, "Out of memory"},
- {TDB_ERR_EXISTS, "Record exists"},
- {-1, NULL}};
- if (tdb != NULL) {
- for (i=0;emap[i].estring;i++) {
- if (tdb->ecode == emap[i].ecode) return emap[i].estring;
- }
- } else {
- return "Invalid tdb context";
- }
- return "Invalid error code";
-}
-
-
-/* update an entry in place - this only works if the new data size
- is <= the old data size and the key exists.
- on failure return -1
-*/
-int tdb_update(TDB_CONTEXT *tdb, TDB_DATA key, TDB_DATA dbuf)
-{
- unsigned hash;
- struct list_struct rec;
- tdb_off rec_ptr;
- int ret = -1;
-
- if (tdb == NULL) {
-#ifdef TDB_DEBUG
- printf("tdb_update() called with null context\n");
-#endif
- return -1;
- }
-
- /* find which hash bucket it is in */
- hash = tdb_hash(&key);
-
- tdb_lock(tdb, BUCKET(hash));
- rec_ptr = tdb_find(tdb, key, hash, &rec);
-
- if (!rec_ptr)
- goto out;
-
- /* must be long enough */
- if (rec.rec_len < key.dsize + dbuf.dsize)
- goto out;
-
- if (tdb_write(tdb, rec_ptr + sizeof(rec) + rec.key_len,
- dbuf.dptr, dbuf.dsize) == -1)
- goto out;
-
- if (dbuf.dsize != rec.data_len) {
- /* update size */
- rec.data_len = dbuf.dsize;
- ret = rec_write(tdb, rec_ptr, &rec);
- } else
- ret = 0;
-
- out:
- tdb_unlock(tdb, BUCKET(hash));
- return ret;
-}
-
-/* find an entry in the database given a key */
-TDB_DATA tdb_fetch(TDB_CONTEXT *tdb, TDB_DATA key)
-{
- unsigned hash;
- tdb_off rec_ptr;
- struct list_struct rec;
- TDB_DATA ret = null_data;
-
- if (tdb == NULL) {
-#ifdef TDB_DEBUG
- printf("tdb_fetch() called with null context\n");
-#endif
- return null_data;
- }
-
- /* find which hash bucket it is in */
- hash = tdb_hash(&key);
-
- tdb_lock(tdb, BUCKET(hash));
- rec_ptr = tdb_find(tdb, key, hash, &rec);
-
- if (rec_ptr) {
- ret.dptr = tdb_alloc_read(tdb,
- rec_ptr + sizeof(rec) + rec.key_len,
- rec.data_len);
- ret.dsize = rec.data_len;
- }
-
- tdb_unlock(tdb, BUCKET(hash));
- return ret;
-}
-
-/* check if an entry in the database exists
-
- note that 1 is returned if the key is found and 0 is returned if not found
- this doesn't match the conventions in the rest of this module, but is
- compatible with gdbm
-*/
-int tdb_exists(TDB_CONTEXT *tdb, TDB_DATA key)
-{
- unsigned hash;
- tdb_off rec_ptr;
- struct list_struct rec;
-
- if (tdb == NULL) {
-#ifdef TDB_DEBUG
- printf("tdb_exists() called with null context\n");
-#endif
- return 0;
- }
-
- /* find which hash bucket it is in */
- hash = tdb_hash(&key);
-
- tdb_lock(tdb, BUCKET(hash));
- rec_ptr = tdb_find(tdb, key, hash, &rec);
- tdb_unlock(tdb, BUCKET(hash));
-
- return rec_ptr != 0;
-}
-
-/* traverse the entire database - calling fn(tdb, key, data) on each element.
- return -1 on error or the record count traversed
- if fn is NULL then it is not called
- a non-zero return value from fn() indicates that the traversal should stop
- */
-int tdb_traverse(TDB_CONTEXT *tdb, int (*fn)(TDB_CONTEXT *tdb, TDB_DATA key, TDB_DATA dbuf, void* state), void* state)
-{
- int count = 0;
- unsigned h;
- tdb_off offset, rec_ptr;
- struct list_struct rec;
- char *data;
- TDB_DATA key, dbuf;
-
- if (tdb == NULL) {
-#ifdef TDB_DEBUG
- printf("tdb_traverse() called with null context\n");
-#endif
- return -1;
- }
-
- /* loop over all hash chains */
- for (h = 0; h < tdb->header.hash_size; h++) {
- tdb_lock(tdb, BUCKET(h));
-
- /* read in the hash top */
- offset = tdb_hash_top(tdb, h);
- if (ofs_read(tdb, offset, &rec_ptr) == -1) {
- goto fail;
- }
-
- /* traverse all records for this hash */
- while (rec_ptr) {
- if (rec_read(tdb, rec_ptr, &rec) == -1) {
- goto fail;
- }
-
- /* now read the full record */
- data = tdb_alloc_read(tdb, rec_ptr + sizeof(rec),
- rec.key_len + rec.data_len);
- if (!data) {
- goto fail;
- }
-
- key.dptr = data;
- key.dsize = rec.key_len;
- dbuf.dptr = data + rec.key_len;
- dbuf.dsize = rec.data_len;
- count++;
-
- if (fn && fn(tdb, key, dbuf, state) != 0) {
- /* they want us to stop traversing */
- free(data);
- tdb_unlock(tdb, BUCKET(h));
- return count;
- }
-
- /* a miss - drat */
- free(data);
-
- /* move to the next record */
- rec_ptr = rec.next;
- }
- tdb_unlock(tdb, BUCKET(h));
- }
-
- /* return the number traversed */
- return count;
-
- fail:
- tdb_unlock(tdb, BUCKET(h));
- return -1;
-}
-
-
-/* find the first entry in the database and return its key */
-TDB_DATA tdb_firstkey(TDB_CONTEXT *tdb)
-{
- tdb_off offset, rec_ptr;
- struct list_struct rec;
- unsigned hash;
- TDB_DATA ret;
-
- if (tdb == NULL) {
-#ifdef TDB_DEBUG
- printf("tdb_firstkey() called with null context\n");
-#endif
- return null_data;
- }
-
- /* look for a non-empty hash chain */
- for (hash = 0, rec_ptr = 0;
- hash < tdb->header.hash_size;
- hash++) {
- /* find the top of the hash chain */
- offset = tdb_hash_top(tdb, hash);
-
- tdb_lock(tdb, BUCKET(hash));
-
- /* read in the hash top */
- if (ofs_read(tdb, offset, &rec_ptr) == -1) {
- goto fail;
- }
-
- if (rec_ptr) break;
-
- tdb_unlock(tdb, BUCKET(hash));
- }
-
- if (rec_ptr == 0) return null_data;
-
- /* we've found a non-empty chain, now read the record */
- if (rec_read(tdb, rec_ptr, &rec) == -1) {
- goto fail;
- }
-
- /* allocate and read the key space */
- ret.dptr = tdb_alloc_read(tdb, rec_ptr + sizeof(rec), rec.key_len);
- ret.dsize = rec.key_len;
- tdb_unlock(tdb, BUCKET(hash));
- return ret;
-
- fail:
- tdb_unlock(tdb, BUCKET(hash));
- return null_data;
-}
-
-/* find the next entry in the database, returning its key */
-TDB_DATA tdb_nextkey(TDB_CONTEXT *tdb, TDB_DATA key)
-{
- unsigned hash, hbucket;
- tdb_off rec_ptr, offset;
- struct list_struct rec;
- TDB_DATA ret;
-
- if (tdb == NULL) {
-#ifdef TDB_DEBUG
- printf("tdb_nextkey() called with null context\n");
-#endif
- return null_data;
- }
-
- /* find which hash bucket it is in */
- hash = tdb_hash(&key);
- hbucket = BUCKET(hash);
-
- tdb_lock(tdb, hbucket);
- rec_ptr = tdb_find(tdb, key, hash, &rec);
- if (rec_ptr) {
- /* we want the next record after this one */
- rec_ptr = rec.next;
- }
-
- /* not found or last in hash: look for next non-empty hash chain */
- while (rec_ptr == 0) {
- tdb_unlock(tdb, hbucket);
-
- if (++hbucket >= tdb->header.hash_size - 1)
- return null_data;
-
- offset = tdb_hash_top(tdb, hbucket);
- tdb_lock(tdb, hbucket);
- /* read in the hash top */
- if (ofs_read(tdb, offset, &rec_ptr) == -1) {
- tdb_unlock(tdb, hbucket);
- return null_data;
- }
- }
-
- /* Read the record. */
- if (rec_read(tdb, rec_ptr, &rec) == -1) {
- tdb_unlock(tdb, hbucket);
- return null_data;
- }
- /* allocate and read the key */
- ret.dptr = tdb_alloc_read(tdb, rec_ptr + sizeof(rec), rec.key_len);
- ret.dsize = rec.key_len;
- tdb_unlock(tdb, hbucket);
-
- return ret;
-}
-
-/* delete an entry in the database given a key */
-int tdb_delete(TDB_CONTEXT *tdb, TDB_DATA key)
-{
- unsigned hash;
- tdb_off offset, rec_ptr, last_ptr;
- struct list_struct rec, lastrec;
- char *data = NULL;
-
- if (tdb == NULL) {
-#ifdef TDB_DEBUG
- printf("tdb_delete() called with null context\n");
-#endif
- return -1;
- }
-
- /* find which hash bucket it is in */
- hash = tdb_hash(&key);
-
- tdb_lock(tdb, BUCKET(hash));
-
- /* find the top of the hash chain */
- offset = tdb_hash_top(tdb, hash);
-
- /* read in the hash top */
- if (ofs_read(tdb, offset, &rec_ptr) == -1) {
- goto fail;
- }
-
- last_ptr = 0;
-
- /* keep looking until we find the right record */
- while (rec_ptr) {
- if (rec_read(tdb, rec_ptr, &rec) == -1) {
- goto fail;
- }
-
- if (hash == rec.full_hash && key.dsize == rec.key_len) {
- /* a very likely hit - read the record and full key */
- data = tdb_alloc_read(tdb, rec_ptr + sizeof(rec),
- rec.key_len);
- if (!data) {
- goto fail;
- }
-
- if (memcmp(key.dptr, data, key.dsize) == 0) {
- /* a definite match - delete it */
- if (last_ptr == 0) {
- offset = tdb_hash_top(tdb, hash);
- if (ofs_write(tdb, offset, &rec.next) == -1) {
- goto fail;
- }
- } else {
- lastrec.next = rec.next;
- if (rec_write(tdb, last_ptr, &lastrec) == -1) {
- goto fail;
- }
- }
- tdb_unlock(tdb, BUCKET(hash));
- tdb_lock(tdb, -1);
- /* and recover the space */
- offset = FREELIST_TOP;
- if (ofs_read(tdb, offset, &rec.next) == -1) {
- goto fail2;
- }
- rec.magic = TDB_FREE_MAGIC;
- if (rec_write(tdb, rec_ptr, &rec) == -1) {
- goto fail2;
- }
- if (ofs_write(tdb, offset, &rec_ptr) == -1) {
- goto fail2;
- }
-
- /* yipee - all done */
- free(data);
- tdb_unlock(tdb, -1);
- return 0;
- }
-
- /* a miss - drat */
- free(data);
- data = NULL;
- }
-
- /* move to the next record */
- last_ptr = rec_ptr;
- lastrec = rec;
- rec_ptr = rec.next;
- }
-
- fail:
- if (data) free(data);
- tdb_unlock(tdb, BUCKET(hash));
- return -1;
-
- fail2:
- if (data) free(data);
- tdb_unlock(tdb, -1);
- return -1;
-}
-
-
-/* store an element in the database, replacing any existing element
- with the same key
-
- return 0 on success, -1 on failure
-*/
-int tdb_store(TDB_CONTEXT *tdb, TDB_DATA key, TDB_DATA dbuf, int flag)
-{
- struct list_struct rec;
- unsigned hash;
- tdb_off rec_ptr, offset;
- char *p = NULL;
-
- if (tdb == NULL) {
-#ifdef TDB_DEBUG
- printf("tdb_store() called with null context\n");
-#endif
- return -1;
- }
-
- /* find which hash bucket it is in */
- hash = tdb_hash(&key);
-
- /* check for it existing */
- if (flag == TDB_INSERT && tdb_exists(tdb, key)) {
- tdb->ecode = TDB_ERR_EXISTS;
- return -1;
- }
-
- /* first try in-place update */
- if (flag != TDB_INSERT && tdb_update(tdb, key, dbuf) == 0) {
- return 0;
- }
-
- rec_ptr = tdb_allocate(tdb, key.dsize + dbuf.dsize);
- if (rec_ptr == 0) {
- return -1;
- }
-
- tdb_lock(tdb, BUCKET(hash));
-
- /* delete any existing record - if it doesn't exist we don't care */
- if (flag != TDB_INSERT) {
- tdb_delete(tdb, key);
- }
-
- /* read the newly created record */
- if (tdb_read(tdb, rec_ptr, (char *)&rec, sizeof(rec)) == -1) {
- goto fail;
- }
-
- if (rec.magic != TDB_FREE_MAGIC) goto fail;
-
- /* find the top of the hash chain */
- offset = tdb_hash_top(tdb, hash);
-
- /* read in the hash top diretcly into our next pointer */
- if (ofs_read(tdb, offset, &rec.next) == -1) {
- goto fail;
- }
-
- rec.key_len = key.dsize;
- rec.data_len = dbuf.dsize;
- rec.full_hash = hash;
- rec.magic = TDB_MAGIC;
-
- p = (char *)malloc(sizeof(rec) + key.dsize + dbuf.dsize);
- if (!p) {
- tdb->ecode = TDB_ERR_OOM;
- goto fail;
- }
-
- memcpy(p, &rec, sizeof(rec));
- memcpy(p+sizeof(rec), key.dptr, key.dsize);
- memcpy(p+sizeof(rec)+key.dsize, dbuf.dptr, dbuf.dsize);
-
- if (tdb_write(tdb, rec_ptr, p, sizeof(rec)+key.dsize+dbuf.dsize) == -1)
- goto fail;
-
- free(p);
- p = NULL;
-
- /* and point the top of the hash chain at it */
- if (ofs_write(tdb, offset, &rec_ptr) == -1) goto fail;
-
- tdb_unlock(tdb, BUCKET(hash));
- return 0;
-
- fail:
-#if TDB_DEBUG
- printf("store failed for hash 0x%08x in bucket %u\n", hash, BUCKET(hash));
-#endif
- if (p) free(p);
- tdb_unlock(tdb, BUCKET(hash));
- return -1;
-}
-
-
-/* open the database, creating it if necessary
-
- The open_flags and mode are passed straight to the open call on the database
- file. A flags value of O_WRONLY is invalid
-
- The hash size is advisory, use zero for a default value.
-
- return is NULL on error
-*/
-TDB_CONTEXT *tdb_open(char *name, int hash_size, int tdb_flags,
- int open_flags, mode_t mode)
-{
- TDB_CONTEXT tdb, *ret;
- struct stat st;
-
- memset(&tdb, 0, sizeof(tdb));
-
- tdb.fd = -1;
- tdb.name = NULL;
- tdb.map_ptr = NULL;
-
- if ((open_flags & O_ACCMODE) == O_WRONLY) {
- goto fail;
- }
-
- if (hash_size == 0) hash_size = DEFAULT_HASH_SIZE;
-
- tdb.read_only = ((open_flags & O_ACCMODE) == O_RDONLY);
-
- if (name != NULL) {
- tdb.fd = open(name, open_flags, mode);
- if (tdb.fd == -1) {
- goto fail;
- }
- }
-
- /* ensure there is only one process initialising at once */
- tdb_brlock(&tdb, GLOBAL_LOCK, LOCK_SET, F_WRLCK, F_SETLKW);
-
- if (tdb_flags & TDB_CLEAR_IF_FIRST) {
- /* we need to zero the database if we are the only
- one with it open */
- if (tdb_brlock(&tdb, ACTIVE_LOCK, LOCK_SET, F_WRLCK, F_SETLK) == 0) {
- ftruncate(tdb.fd, 0);
- tdb_brlock(&tdb, ACTIVE_LOCK, LOCK_CLEAR, F_WRLCK, F_SETLK);
- }
- }
-
- /* leave this lock in place */
- tdb_brlock(&tdb, ACTIVE_LOCK, LOCK_SET, F_RDLCK, F_SETLKW);
-
- if (read(tdb.fd, &tdb.header, sizeof(tdb.header)) != sizeof(tdb.header) ||
- strcmp(tdb.header.magic_food, TDB_MAGIC_FOOD) != 0 ||
- tdb.header.version != TDB_VERSION) {
- /* its not a valid database - possibly initialise it */
- if (!(open_flags & O_CREAT)) {
- goto fail;
- }
- if (tdb_new_database(&tdb, hash_size) == -1) goto fail;
-
- lseek(tdb.fd, 0, SEEK_SET);
- if (tdb.fd != -1 && read(tdb.fd, &tdb.header,
- sizeof(tdb.header)) !=
- sizeof(tdb.header))
- goto fail;
- }
-
- if (tdb.fd != -1) {
- fstat(tdb.fd, &st);
-
- /* map the database and fill in the return structure */
- tdb.name = (char *)strdup(name);
- tdb.map_size = st.st_size;
- }
-
- tdb.locked = (int *)calloc(tdb.header.hash_size+1,
- sizeof(tdb.locked[0]));
- if (!tdb.locked) {
- goto fail;
- }
-
-#if HAVE_MMAP
- if (tdb.fd != -1) {
- tdb.map_ptr = (void *)mmap(NULL, st.st_size,
- tdb.read_only? PROT_READ : PROT_READ|PROT_WRITE,
- MAP_SHARED | MAP_FILE, tdb.fd, 0);
- }
-#endif
-
- ret = (TDB_CONTEXT *)malloc(sizeof(tdb));
- if (!ret) goto fail;
-
- *ret = tdb;
-
-#if TDB_DEBUG
- printf("mapped database of hash_size %u map_size=%u\n",
- hash_size, tdb.map_size);
-#endif
-
- tdb_brlock(&tdb, GLOBAL_LOCK, LOCK_CLEAR, F_WRLCK, F_SETLKW);
- return ret;
-
- fail:
- if (tdb.name) free(tdb.name);
- if (tdb.fd != -1) close(tdb.fd);
- if (tdb.map_ptr) munmap(tdb.map_ptr, tdb.map_size);
-
- return NULL;
-}
-
-/* close a database */
-int tdb_close(TDB_CONTEXT *tdb)
-{
- if (!tdb) return -1;
-
- if (tdb->name) free(tdb->name);
- if (tdb->fd != -1) close(tdb->fd);
- if (tdb->locked) free(tdb->locked);
-
- if (tdb->map_ptr) {
- if (tdb->fd != -1) {
- munmap(tdb->map_ptr, tdb->map_size);
- } else {
- free(tdb->map_ptr);
- }
- }
-
- memset(tdb, 0, sizeof(*tdb));
- free(tdb);
-
- return 0;
-}
-
-/* lock the database. If we already have it locked then don't do anything */
-int tdb_writelock(TDB_CONTEXT *tdb)
-{
- if (tdb == NULL) {
-#ifdef TDB_DEBUG
- printf("tdb_writelock() called with null context\n");
-#endif
- return -1;
- }
-
- return tdb_lock(tdb, -1);
-}
-
-/* unlock the database. */
-int tdb_writeunlock(TDB_CONTEXT *tdb)
-{
- if (tdb == NULL) {
-#ifdef TDB_DEBUG
- printf("tdb_writeunlock() called with null context\n");
-#endif
- return -1;
- }
-
- return tdb_unlock(tdb, -1);
-}
-
-/* lock one hash chain. This is meant to be used to reduce locking
- contention - it cannot guarantee how many records will be locked */
-int tdb_lockchain(TDB_CONTEXT *tdb, TDB_DATA key)
-{
- if (tdb == NULL) {
-#ifdef TDB_DEBUG
- printf("tdb_lockchain() called with null context\n");
-#endif
- return -1;
- }
-
- return tdb_lock(tdb, BUCKET(tdb_hash(&key)));
-}
-
-
-/* unlock one hash chain */
-int tdb_unlockchain(TDB_CONTEXT *tdb, TDB_DATA key)
-{
- if (tdb == NULL) {
-#ifdef TDB_DEBUG
- printf("tdb_unlockchain() called with null context\n");
-#endif
- return -1;
- }
-
- return tdb_unlock(tdb, BUCKET(tdb_hash(&key)));
-}
diff --git a/mdk-stage1/ppp/pppd/tdb.h b/mdk-stage1/ppp/pppd/tdb.h
deleted file mode 100644
index 56ae0ac2a..000000000
--- a/mdk-stage1/ppp/pppd/tdb.h
+++ /dev/null
@@ -1,77 +0,0 @@
-#define STANDALONE 1
-/*
- * Database functions
- * Copyright (C) Andrew Tridgell 1999
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms AND provided that this software or
- * any derived work is only used as part of the PPP daemon (pppd)
- * and related utilities.
- * The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Note: this software is also available under the Gnu Public License
- * version 2 or later.
- */
-
-typedef unsigned tdb_len;
-typedef unsigned tdb_off;
-
-#define TDB_MAGIC_FOOD "TDB file\n"
-
-/* this is stored at the front of every database */
-struct tdb_header {
- char magic_food[32]; /* for /etc/magic */
- unsigned version; /* version of the code */
- unsigned hash_size; /* number of hash entries */
-};
-
-typedef struct {
- char *dptr;
- size_t dsize;
-} TDB_DATA;
-
-/* this is the context structure that is returned from a db open */
-typedef struct {
- char *name; /* the name of the database */
- void *map_ptr; /* where it is currently mapped */
- int fd; /* open file descriptor for the database */
- tdb_len map_size; /* how much space has been mapped */
- int read_only; /* opened read-only */
- int *locked; /* set if we have a chain locked */
- int ecode; /* error code for last tdb error */
- struct tdb_header header; /* a cached copy of the header */
-} TDB_CONTEXT;
-
-/* flags to tdb_store() */
-#define TDB_REPLACE 1
-#define TDB_INSERT 2
-
-/* flags for tdb_open() */
-#define TDB_CLEAR_IF_FIRST 1
-
-/* error codes */
-enum TDB_ERROR {TDB_SUCCESS=0, TDB_ERR_CORRUPT, TDB_ERR_IO, TDB_ERR_LOCK,
- TDB_ERR_OOM, TDB_ERR_EXISTS};
-
-#if STANDALONE
-TDB_CONTEXT *tdb_open(char *name, int hash_size, int tdb_flags,
- int open_flags, mode_t mode);
-char *tdb_error(TDB_CONTEXT *tdb);
-int tdb_writelock(TDB_CONTEXT *tdb);
-int tdb_writeunlock(TDB_CONTEXT *tdb);
-TDB_DATA tdb_fetch(TDB_CONTEXT *tdb, TDB_DATA key);
-int tdb_delete(TDB_CONTEXT *tdb, TDB_DATA key);
-int tdb_store(TDB_CONTEXT *tdb, TDB_DATA key, TDB_DATA dbuf, int flag);
-int tdb_close(TDB_CONTEXT *tdb);
-TDB_DATA tdb_firstkey(TDB_CONTEXT *tdb);
-TDB_DATA tdb_nextkey(TDB_CONTEXT *tdb, TDB_DATA key);
-int tdb_traverse(TDB_CONTEXT *tdb,
- int (*fn)(TDB_CONTEXT *tdb, TDB_DATA key, TDB_DATA dbuf, void *state),
- void *state);
-int tdb_exists(TDB_CONTEXT *tdb, TDB_DATA key);
-#endif
diff --git a/mdk-stage1/ppp/pppd/tty.c b/mdk-stage1/ppp/pppd/tty.c
deleted file mode 100644
index 4db707968..000000000
--- a/mdk-stage1/ppp/pppd/tty.c
+++ /dev/null
@@ -1,1164 +0,0 @@
-/*
- * tty.c - code for handling serial ports in pppd.
- *
- * Copyright (C) 2000 Paul Mackerras.
- * All rights reserved.
- *
- * Portions Copyright (c) 1989 Carnegie Mellon University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Carnegie Mellon University. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#define RCSID "$Id$"
-
-#include <stdio.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <signal.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <syslog.h>
-#include <netdb.h>
-#include <utmp.h>
-#include <pwd.h>
-#include <setjmp.h>
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <sys/stat.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#include "pppd.h"
-#include "fsm.h"
-#include "lcp.h"
-
-void tty_process_extra_options __P((void));
-void tty_check_options __P((void));
-int connect_tty __P((void));
-void disconnect_tty __P((void));
-void tty_close_fds __P((void));
-void cleanup_tty __P((void));
-void tty_do_send_config __P((int, u_int32_t, int, int));
-
-static int setdevname __P((char *, char **, int));
-static int setspeed __P((char *, char **, int));
-static int setxonxoff __P((char **));
-static int setescape __P((char **));
-static void printescape __P((option_t *, void (*)(void *, char *,...),void *));
-static void finish_tty __P((void));
-static int start_charshunt __P((int, int));
-static void stop_charshunt __P((void *, int));
-static void charshunt_done __P((void *));
-static void charshunt __P((int, int, char *));
-static int record_write __P((FILE *, int code, u_char *buf, int nb,
- struct timeval *));
-static int open_socket __P((char *));
-static void maybe_relock __P((void *, int));
-
-static int pty_master; /* fd for master side of pty */
-static int pty_slave; /* fd for slave side of pty */
-static int real_ttyfd; /* fd for actual serial port (not pty) */
-static int ttyfd; /* Serial port file descriptor */
-static char speed_str[16]; /* Serial port speed as string */
-
-mode_t tty_mode = (mode_t)-1; /* Original access permissions to tty */
-int baud_rate; /* Actual bits/second for serial device */
-char *callback_script; /* script for doing callback */
-int charshunt_pid; /* Process ID for charshunt */
-int locked; /* lock() has succeeded */
-struct stat devstat; /* result of stat() on devnam */
-
-/* option variables */
-int crtscts = 0; /* Use hardware flow control */
-bool modem = 1; /* Use modem control lines */
-int inspeed = 0; /* Input/Output speed requested */
-bool lockflag = 0; /* Create lock file to lock the serial dev */
-char *initializer = NULL; /* Script to initialize physical link */
-char *connect_script = NULL; /* Script to establish physical link */
-char *disconnect_script = NULL; /* Script to disestablish physical link */
-char *welcomer = NULL; /* Script to run after phys link estab. */
-char *ptycommand = NULL; /* Command to run on other side of pty */
-bool notty = 0; /* Stdin/out is not a tty */
-char *record_file = NULL; /* File to record chars sent/received */
-int max_data_rate; /* max bytes/sec through charshunt */
-bool sync_serial = 0; /* Device is synchronous serial device */
-char *pty_socket = NULL; /* Socket to connect to pty */
-int using_pty = 0; /* we're allocating a pty as the device */
-
-extern uid_t uid;
-extern int kill_link;
-
-/* XXX */
-extern int privopen; /* don't lock, open device as root */
-
-u_int32_t xmit_accm[8]; /* extended transmit ACCM */
-
-/* option descriptors */
-option_t tty_options[] = {
- /* device name must be first, or change connect_tty() below! */
- { "device name", o_wild, (void *) &setdevname,
- "Serial port device name",
- OPT_DEVNAM | OPT_PRIVFIX | OPT_NOARG | OPT_A2STRVAL | OPT_STATIC,
- devnam},
-
- { "tty speed", o_wild, (void *) &setspeed,
- "Baud rate for serial port",
- OPT_PRIO | OPT_NOARG | OPT_A2STRVAL | OPT_STATIC, speed_str },
-
- { "lock", o_bool, &lockflag,
- "Lock serial device with UUCP-style lock file", OPT_PRIO | 1 },
- { "nolock", o_bool, &lockflag,
- "Don't lock serial device", OPT_PRIOSUB | OPT_PRIV },
-
- { "init", o_string, &initializer,
- "A program to initialize the device", OPT_PRIO | OPT_PRIVFIX },
-
- { "connect", o_string, &connect_script,
- "A program to set up a connection", OPT_PRIO | OPT_PRIVFIX },
-
- { "disconnect", o_string, &disconnect_script,
- "Program to disconnect serial device", OPT_PRIO | OPT_PRIVFIX },
-
- { "welcome", o_string, &welcomer,
- "Script to welcome client", OPT_PRIO | OPT_PRIVFIX },
-
- { "pty", o_string, &ptycommand,
- "Script to run on pseudo-tty master side",
- OPT_PRIO | OPT_PRIVFIX | OPT_DEVNAM },
-
- { "notty", o_bool, &notty,
- "Input/output is not a tty", OPT_DEVNAM | 1 },
-
- { "socket", o_string, &pty_socket,
- "Send and receive over socket, arg is host:port",
- OPT_PRIO | OPT_DEVNAM },
-
- { "record", o_string, &record_file,
- "Record characters sent/received to file", OPT_PRIO },
-
- { "crtscts", o_int, &crtscts,
- "Set hardware (RTS/CTS) flow control",
- OPT_PRIO | OPT_NOARG | OPT_VAL(1) },
- { "cdtrcts", o_int, &crtscts,
- "Set alternate hardware (DTR/CTS) flow control",
- OPT_PRIOSUB | OPT_NOARG | OPT_VAL(2) },
- { "nocrtscts", o_int, &crtscts,
- "Disable hardware flow control",
- OPT_PRIOSUB | OPT_NOARG | OPT_VAL(-1) },
- { "-crtscts", o_int, &crtscts,
- "Disable hardware flow control",
- OPT_PRIOSUB | OPT_ALIAS | OPT_NOARG | OPT_VAL(-1) },
- { "nocdtrcts", o_int, &crtscts,
- "Disable hardware flow control",
- OPT_PRIOSUB | OPT_ALIAS | OPT_NOARG | OPT_VAL(-1) },
- { "xonxoff", o_special_noarg, (void *)setxonxoff,
- "Set software (XON/XOFF) flow control", OPT_PRIOSUB },
-
- { "modem", o_bool, &modem,
- "Use modem control lines", OPT_PRIO | 1 },
- { "local", o_bool, &modem,
- "Don't use modem control lines", OPT_PRIOSUB | 0 },
-
- { "sync", o_bool, &sync_serial,
- "Use synchronous HDLC serial encoding", 1 },
-
- { "datarate", o_int, &max_data_rate,
- "Maximum data rate in bytes/sec (with pty, notty or record option)",
- OPT_PRIO },
-
- { "escape", o_special, (void *)setescape,
- "List of character codes to escape on transmission",
- OPT_A2PRINTER, (void *)printescape },
-
- { NULL }
-};
-
-
-struct channel tty_channel = {
- tty_options,
- &tty_process_extra_options,
- &tty_check_options,
- &connect_tty,
- &disconnect_tty,
- &tty_establish_ppp,
- &tty_disestablish_ppp,
- &tty_do_send_config,
- &tty_recv_config,
- &cleanup_tty,
- &tty_close_fds
-};
-
-/*
- * setspeed - Set the serial port baud rate.
- * If doit is 0, the call is to check whether this option is
- * potentially a speed value.
- */
-static int
-setspeed(arg, argv, doit)
- char *arg;
- char **argv;
- int doit;
-{
- char *ptr;
- int spd;
-
- spd = strtol(arg, &ptr, 0);
- if (ptr == arg || *ptr != 0 || spd == 0)
- return 0;
- if (doit) {
- inspeed = spd;
- slprintf(speed_str, sizeof(speed_str), "%d", spd);
- }
- return 1;
-}
-
-
-/*
- * setdevname - Set the device name.
- * If doit is 0, the call is to check whether this option is
- * potentially a device name.
- */
-static int
-setdevname(cp, argv, doit)
- char *cp;
- char **argv;
- int doit;
-{
- struct stat statbuf;
- char dev[MAXPATHLEN];
-
- if (*cp == 0)
- return 0;
-
- if (strncmp("/dev/", cp, 5) != 0) {
- strlcpy(dev, "/dev/", sizeof(dev));
- strlcat(dev, cp, sizeof(dev));
- cp = dev;
- }
-
- /*
- * Check if there is a character device by this name.
- */
- if (stat(cp, &statbuf) < 0) {
- if (!doit)
- return errno != ENOENT;
- option_error("Couldn't stat %s: %m", cp);
- return 0;
- }
- if (!S_ISCHR(statbuf.st_mode)) {
- if (doit)
- option_error("%s is not a character device", cp);
- return 0;
- }
-
- if (doit) {
- strlcpy(devnam, cp, sizeof(devnam));
- devstat = statbuf;
- default_device = 0;
- }
-
- return 1;
-}
-
-static int
-setxonxoff(argv)
- char **argv;
-{
- lcp_wantoptions[0].asyncmap |= 0x000A0000; /* escape ^S and ^Q */
- lcp_wantoptions[0].neg_asyncmap = 1;
-
- crtscts = -2;
- return 1;
-}
-
-/*
- * setescape - add chars to the set we escape on transmission.
- */
-static int
-setescape(argv)
- char **argv;
-{
- int n, ret;
- char *p, *endp;
-
- p = *argv;
- ret = 1;
- while (*p) {
- n = strtol(p, &endp, 16);
- if (p == endp) {
- option_error("escape parameter contains invalid hex number '%s'",
- p);
- return 0;
- }
- p = endp;
- if (n < 0 || n == 0x5E || n > 0xFF) {
- option_error("can't escape character 0x%x", n);
- ret = 0;
- } else
- xmit_accm[n >> 5] |= 1 << (n & 0x1F);
- while (*p == ',' || *p == ' ')
- ++p;
- }
- lcp_allowoptions[0].asyncmap = xmit_accm[0];
- return ret;
-}
-
-static void
-printescape(opt, printer, arg)
- option_t *opt;
- void (*printer) __P((void *, char *, ...));
- void *arg;
-{
- int n;
- int first = 1;
-
- for (n = 0; n < 256; ++n) {
- if (n == 0x7d)
- n += 2; /* skip 7d, 7e */
- if (xmit_accm[n >> 5] & (1 << (n & 0x1f))) {
- if (!first)
- printer(arg, ",");
- else
- first = 0;
- printer(arg, "%x", n);
- }
- }
- if (first)
- printer(arg, "oops # nothing escaped");
-}
-
-/*
- * tty_init - do various tty-related initializations.
- */
-void tty_init()
-{
- add_notifier(&pidchange, maybe_relock, 0);
- the_channel = &tty_channel;
- xmit_accm[3] = 0x60000000;
-}
-
-/*
- * tty_process_extra_options - work out which tty device we are using
- * and read its options file.
- */
-void tty_process_extra_options()
-{
- using_pty = notty || ptycommand != NULL || pty_socket != NULL;
- if (using_pty)
- return;
- if (default_device) {
- char *p;
- if (!isatty(0) || (p = ttyname(0)) == NULL) {
- option_error("no device specified and stdin is not a tty");
- exit(EXIT_OPTION_ERROR);
- }
- strlcpy(devnam, p, sizeof(devnam));
- if (stat(devnam, &devstat) < 0)
- fatal("Couldn't stat default device %s: %m", devnam);
- }
-
-
- /*
- * Parse the tty options file.
- * The per-tty options file should not change
- * ptycommand, pty_socket, notty or devnam.
- * options_for_tty doesn't override options set on the command line,
- * except for some privileged options.
- */
- if (!options_for_tty())
- exit(EXIT_OPTION_ERROR);
-}
-
-/*
- * tty_check_options - do consistency checks on the options we were given.
- */
-void
-tty_check_options()
-{
- struct stat statbuf;
- int fdflags;
-
- if (demand && connect_script == 0) {
- option_error("connect script is required for demand-dialling\n");
- exit(EXIT_OPTION_ERROR);
- }
- /* default holdoff to 0 if no connect script has been given */
- if (connect_script == 0 && !holdoff_specified)
- holdoff = 0;
-
- if (using_pty) {
- if (!default_device) {
- option_error("%s option precludes specifying device name",
- notty? "notty": "pty");
- exit(EXIT_OPTION_ERROR);
- }
- if (ptycommand != NULL && notty) {
- option_error("pty option is incompatible with notty option");
- exit(EXIT_OPTION_ERROR);
- }
- if (pty_socket != NULL && (ptycommand != NULL || notty)) {
- option_error("socket option is incompatible with pty and notty");
- exit(EXIT_OPTION_ERROR);
- }
- default_device = notty;
- lockflag = 0;
- modem = 0;
- if (notty && log_to_fd <= 1)
- log_to_fd = -1;
- } else {
- /*
- * If the user has specified a device which is the same as
- * the one on stdin, pretend they didn't specify any.
- * If the device is already open read/write on stdin,
- * we assume we don't need to lock it, and we can open it
- * as root.
- */
- if (fstat(0, &statbuf) >= 0 && S_ISCHR(statbuf.st_mode)
- && statbuf.st_rdev == devstat.st_rdev) {
- default_device = 1;
- fdflags = fcntl(0, F_GETFL);
- if (fdflags != -1 && (fdflags & O_ACCMODE) == O_RDWR)
- privopen = 1;
- }
- }
- if (default_device)
- nodetach = 1;
-
- /*
- * Don't send log messages to the serial port, it tends to
- * confuse the peer. :-)
- */
- if (log_to_fd >= 0 && fstat(log_to_fd, &statbuf) >= 0
- && S_ISCHR(statbuf.st_mode) && statbuf.st_rdev == devstat.st_rdev)
- log_to_fd = -1;
-}
-
-/*
- * connect_tty - get the serial port ready to start doing PPP.
- * That is, open the serial port, set its speed and mode, and run
- * the connector and/or welcomer.
- */
-int connect_tty()
-{
- char *connector;
- int fdflags;
- struct stat statbuf;
- char numbuf[16];
-
- /*
- * Get a pty master/slave pair if the pty, notty, socket,
- * or record options were specified.
- */
- strlcpy(ppp_devnam, devnam, sizeof(ppp_devnam));
- pty_master = -1;
- pty_slave = -1;
- real_ttyfd = -1;
- if (using_pty || record_file != NULL) {
- if (!get_pty(&pty_master, &pty_slave, ppp_devnam, uid)) {
- error("Couldn't allocate pseudo-tty");
- status = EXIT_FATAL_ERROR;
- return -1;
- }
- set_up_tty(pty_slave, 1);
- }
-
- /*
- * Lock the device if we've been asked to.
- */
- status = EXIT_LOCK_FAILED;
- if (lockflag && !privopen) {
- if (lock(devnam) < 0)
- return -1;
- locked = 1;
- }
-
- /*
- * Open the serial device and set it up to be the ppp interface.
- * First we open it in non-blocking mode so we can set the
- * various termios flags appropriately. If we aren't dialling
- * out and we want to use the modem lines, we reopen it later
- * in order to wait for the carrier detect signal from the modem.
- */
- hungup = 0;
- kill_link = 0;
- connector = doing_callback? callback_script: connect_script;
- if (devnam[0] != 0) {
- for (;;) {
- /* If the user specified the device name, become the
- user before opening it. */
- int err, prio;
-
- prio = privopen? OPRIO_ROOT: tty_options[0].priority;
- if (prio < OPRIO_ROOT)
- seteuid(uid);
- ttyfd = open(devnam, O_NONBLOCK | O_RDWR, 0);
- err = errno;
- if (prio < OPRIO_ROOT)
- seteuid(0);
- if (ttyfd >= 0)
- break;
- errno = err;
- if (err != EINTR) {
- error("Failed to open %s: %m", devnam);
- status = EXIT_OPEN_FAILED;
- }
- if (!persist || err != EINTR)
- return -1;
- }
- real_ttyfd = ttyfd;
- if ((fdflags = fcntl(ttyfd, F_GETFL)) == -1
- || fcntl(ttyfd, F_SETFL, fdflags & ~O_NONBLOCK) < 0)
- warn("Couldn't reset non-blocking mode on device: %m");
-
- /*
- * Do the equivalent of `mesg n' to stop broadcast messages.
- */
- if (fstat(ttyfd, &statbuf) < 0
- || fchmod(ttyfd, statbuf.st_mode & ~(S_IWGRP | S_IWOTH)) < 0) {
- warn("Couldn't restrict write permissions to %s: %m", devnam);
- } else
- tty_mode = statbuf.st_mode;
-
- /*
- * Set line speed, flow control, etc.
- * If we have a non-null connection or initializer script,
- * on most systems we set CLOCAL for now so that we can talk
- * to the modem before carrier comes up. But this has the
- * side effect that we might miss it if CD drops before we
- * get to clear CLOCAL below. On systems where we can talk
- * successfully to the modem with CLOCAL clear and CD down,
- * we could clear CLOCAL at this point.
- */
- set_up_tty(ttyfd, ((connector != NULL && connector[0] != 0)
- || initializer != NULL));
- }
-
- /*
- * If the pty, socket, notty and/or record option was specified,
- * start up the character shunt now.
- */
- status = EXIT_PTYCMD_FAILED;
- if (ptycommand != NULL) {
- if (record_file != NULL) {
- int ipipe[2], opipe[2], ok;
-
- if (pipe(ipipe) < 0 || pipe(opipe) < 0)
- fatal("Couldn't create pipes for record option: %m");
- ok = device_script(ptycommand, opipe[0], ipipe[1], 1) == 0
- && start_charshunt(ipipe[0], opipe[1]);
- close(ipipe[0]);
- close(ipipe[1]);
- close(opipe[0]);
- close(opipe[1]);
- if (!ok)
- return -1;
- } else {
- if (device_script(ptycommand, pty_master, pty_master, 1) < 0)
- return -1;
- ttyfd = pty_slave;
- close(pty_master);
- pty_master = -1;
- }
- } else if (pty_socket != NULL) {
- int fd = open_socket(pty_socket);
- if (fd < 0)
- return -1;
- if (!start_charshunt(fd, fd))
- return -1;
- } else if (notty) {
- if (!start_charshunt(0, 1))
- return -1;
- } else if (record_file != NULL) {
- if (!start_charshunt(ttyfd, ttyfd))
- return -1;
- }
-
- /* run connection script */
- if ((connector && connector[0]) || initializer) {
- if (real_ttyfd != -1) {
- /* XXX do this if doing_callback == CALLBACK_DIALIN? */
- if (!default_device && modem) {
- setdtr(real_ttyfd, 0); /* in case modem is off hook */
- sleep(1);
- setdtr(real_ttyfd, 1);
- }
- }
-
- if (initializer && initializer[0]) {
- if (device_script(initializer, ttyfd, ttyfd, 0) < 0) {
- error("Initializer script failed");
- status = EXIT_INIT_FAILED;
- return -1;
- }
- if (kill_link) {
- disconnect_tty();
- return -1;
- }
- info("Serial port initialized.");
- }
-
- if (connector && connector[0]) {
- if (device_script(connector, ttyfd, ttyfd, 0) < 0) {
- error("Connect script failed");
- status = EXIT_CONNECT_FAILED;
- return -1;
- }
- if (kill_link) {
- disconnect_tty();
- return -1;
- }
- info("Serial connection established.");
- }
-
- /* set line speed, flow control, etc.;
- clear CLOCAL if modem option */
- if (real_ttyfd != -1)
- set_up_tty(real_ttyfd, 0);
-
- if (doing_callback == CALLBACK_DIALIN)
- connector = NULL;
- }
-
- /* reopen tty if necessary to wait for carrier */
- if (connector == NULL && modem && devnam[0] != 0) {
- int i;
- for (;;) {
- if ((i = open(devnam, O_RDWR)) >= 0)
- break;
- if (errno != EINTR) {
- error("Failed to reopen %s: %m", devnam);
- status = EXIT_OPEN_FAILED;
- }
- if (!persist || errno != EINTR || hungup || kill_link)
- return -1;
- }
- close(i);
- }
-
- slprintf(numbuf, sizeof(numbuf), "%d", baud_rate);
- script_setenv("SPEED", numbuf, 0);
-
- /* run welcome script, if any */
- if (welcomer && welcomer[0]) {
- if (device_script(welcomer, ttyfd, ttyfd, 0) < 0)
- warn("Welcome script failed");
- }
-
- /*
- * If we are initiating this connection, wait for a short
- * time for something from the peer. This can avoid bouncing
- * our packets off his tty before he has it set up.
- */
- if (connector != NULL || ptycommand != NULL)
- listen_time = connect_delay;
-
- return ttyfd;
-}
-
-
-void disconnect_tty()
-{
- if (disconnect_script == NULL || hungup)
- return;
- if (real_ttyfd >= 0)
- set_up_tty(real_ttyfd, 1);
- if (device_script(disconnect_script, ttyfd, ttyfd, 0) < 0) {
- warn("disconnect script failed");
- } else {
- info("Serial link disconnected.");
- }
-}
-
-void tty_close_fds()
-{
- if (pty_master >= 0)
- close(pty_master);
- if (pty_slave >= 0)
- close(pty_slave);
- if (real_ttyfd >= 0) {
- close(real_ttyfd);
- real_ttyfd = -1;
- }
- /* N.B. ttyfd will == either pty_slave or real_ttyfd */
-}
-
-void cleanup_tty()
-{
- if (real_ttyfd >= 0)
- finish_tty();
- tty_close_fds();
- if (locked) {
- unlock();
- locked = 0;
- }
-}
-
-/*
- * tty_do_send_config - set transmit-side PPP configuration.
- * We set the extended transmit ACCM here as well.
- */
-void
-tty_do_send_config(mtu, accm, pcomp, accomp)
- int mtu;
- u_int32_t accm;
- int pcomp, accomp;
-{
- tty_set_xaccm(xmit_accm);
- tty_send_config(mtu, accm, pcomp, accomp);
-}
-
-/*
- * finish_tty - restore the terminal device to its original settings
- */
-static void
-finish_tty()
-{
- /* drop dtr to hang up */
- if (!default_device && modem) {
- setdtr(real_ttyfd, 0);
- /*
- * This sleep is in case the serial port has CLOCAL set by default,
- * and consequently will reassert DTR when we close the device.
- */
- sleep(1);
- }
-
- restore_tty(real_ttyfd);
-
- if (tty_mode != (mode_t) -1) {
- if (fchmod(real_ttyfd, tty_mode) != 0) {
- /* XXX if devnam is a symlink, this will change the link */
- chmod(devnam, tty_mode);
- }
- }
-
- close(real_ttyfd);
- real_ttyfd = -1;
-}
-
-/*
- * maybe_relock - our PID has changed, maybe update the lock file.
- */
-static void
-maybe_relock(arg, pid)
- void *arg;
- int pid;
-{
- if (locked)
- relock(pid);
-}
-
-/*
- * open_socket - establish a stream socket connection to the nominated
- * host and port.
- */
-static int
-open_socket(dest)
- char *dest;
-{
- char *sep, *endp = NULL;
- int sock, port = -1;
- u_int32_t host;
- struct hostent *hent;
- struct sockaddr_in sad;
-
- /* parse host:port and resolve host to an IP address */
- sep = strchr(dest, ':');
- if (sep != NULL)
- port = strtol(sep+1, &endp, 10);
- if (port < 0 || endp == sep+1 || sep == dest) {
- error("Can't parse host:port for socket destination");
- return -1;
- }
- *sep = 0;
- host = inet_addr(dest);
- if (host == (u_int32_t) -1) {
- hent = gethostbyname(dest);
- if (hent == NULL) {
- error("%s: unknown host in socket option", dest);
- *sep = ':';
- return -1;
- }
- host = *(u_int32_t *)(hent->h_addr_list[0]);
- }
- *sep = ':';
-
- /* get a socket and connect it to the other end */
- sock = socket(PF_INET, SOCK_STREAM, 0);
- if (sock < 0) {
- error("Can't create socket: %m");
- return -1;
- }
- memset(&sad, 0, sizeof(sad));
- sad.sin_family = AF_INET;
- sad.sin_port = htons(port);
- sad.sin_addr.s_addr = host;
- if (connect(sock, (struct sockaddr *)&sad, sizeof(sad)) < 0) {
- error("Can't connect to %s: %m", dest);
- close(sock);
- return -1;
- }
-
- return sock;
-}
-
-
-/*
- * start_charshunt - create a child process to run the character shunt.
- */
-static int
-start_charshunt(ifd, ofd)
- int ifd, ofd;
-{
- int cpid;
-
- cpid = fork();
- if (cpid == -1) {
- error("Can't fork process for character shunt: %m");
- return 0;
- }
- if (cpid == 0) {
- /* child */
- close(pty_slave);
- setuid(uid);
- if (getuid() != uid)
- fatal("setuid failed");
- setgid(getgid());
- if (!nodetach)
- log_to_fd = -1;
- charshunt(ifd, ofd, record_file);
- exit(0);
- }
- charshunt_pid = cpid;
- add_notifier(&sigreceived, stop_charshunt, 0);
- close(pty_master);
- pty_master = -1;
- ttyfd = pty_slave;
- record_child(cpid, "pppd (charshunt)", charshunt_done, NULL);
- return 1;
-}
-
-static void
-charshunt_done(arg)
- void *arg;
-{
- charshunt_pid = 0;
-}
-
-static void
-stop_charshunt(arg, sig)
- void *arg;
- int sig;
-{
- if (charshunt_pid)
- kill(charshunt_pid, (sig == SIGINT? sig: SIGTERM));
-}
-
-/*
- * charshunt - the character shunt, which passes characters between
- * the pty master side and the serial port (or stdin/stdout).
- * This runs as the user (not as root).
- * (We assume ofd >= ifd which is true the way this gets called. :-).
- */
-static void
-charshunt(ifd, ofd, record_file)
- int ifd, ofd;
- char *record_file;
-{
- int n, nfds;
- fd_set ready, writey;
- u_char *ibufp, *obufp;
- int nibuf, nobuf;
- int flags;
- int pty_readable, stdin_readable;
- struct timeval lasttime;
- FILE *recordf = NULL;
- int ilevel, olevel, max_level;
- struct timeval levelt, tout, *top;
- extern u_char inpacket_buf[];
-
- /*
- * Reset signal handlers.
- */
- signal(SIGHUP, SIG_IGN); /* Hangup */
- signal(SIGINT, SIG_DFL); /* Interrupt */
- signal(SIGTERM, SIG_DFL); /* Terminate */
- signal(SIGCHLD, SIG_DFL);
- signal(SIGUSR1, SIG_DFL);
- signal(SIGUSR2, SIG_DFL);
- signal(SIGABRT, SIG_DFL);
- signal(SIGALRM, SIG_DFL);
- signal(SIGFPE, SIG_DFL);
- signal(SIGILL, SIG_DFL);
- signal(SIGPIPE, SIG_DFL);
- signal(SIGQUIT, SIG_DFL);
- signal(SIGSEGV, SIG_DFL);
-#ifdef SIGBUS
- signal(SIGBUS, SIG_DFL);
-#endif
-#ifdef SIGEMT
- signal(SIGEMT, SIG_DFL);
-#endif
-#ifdef SIGPOLL
- signal(SIGPOLL, SIG_DFL);
-#endif
-#ifdef SIGPROF
- signal(SIGPROF, SIG_DFL);
-#endif
-#ifdef SIGSYS
- signal(SIGSYS, SIG_DFL);
-#endif
-#ifdef SIGTRAP
- signal(SIGTRAP, SIG_DFL);
-#endif
-#ifdef SIGVTALRM
- signal(SIGVTALRM, SIG_DFL);
-#endif
-#ifdef SIGXCPU
- signal(SIGXCPU, SIG_DFL);
-#endif
-#ifdef SIGXFSZ
- signal(SIGXFSZ, SIG_DFL);
-#endif
-
- /*
- * Open the record file if required.
- */
- if (record_file != NULL) {
- recordf = fopen(record_file, "a");
- if (recordf == NULL)
- error("Couldn't create record file %s: %m", record_file);
- }
-
- /* set all the fds to non-blocking mode */
- flags = fcntl(pty_master, F_GETFL);
- if (flags == -1
- || fcntl(pty_master, F_SETFL, flags | O_NONBLOCK) == -1)
- warn("couldn't set pty master to nonblock: %m");
- flags = fcntl(ifd, F_GETFL);
- if (flags == -1
- || fcntl(ifd, F_SETFL, flags | O_NONBLOCK) == -1)
- warn("couldn't set %s to nonblock: %m", (ifd==0? "stdin": "tty"));
- if (ofd != ifd) {
- flags = fcntl(ofd, F_GETFL);
- if (flags == -1
- || fcntl(ofd, F_SETFL, flags | O_NONBLOCK) == -1)
- warn("couldn't set stdout to nonblock: %m");
- }
-
- nibuf = nobuf = 0;
- ibufp = obufp = NULL;
- pty_readable = stdin_readable = 1;
-
- ilevel = olevel = 0;
- gettimeofday(&levelt, NULL);
- if (max_data_rate) {
- max_level = max_data_rate / 10;
- if (max_level < 100)
- max_level = 100;
- } else
- max_level = PPP_MRU + PPP_HDRLEN + 1;
-
- nfds = (ofd > pty_master? ofd: pty_master) + 1;
- if (recordf != NULL) {
- gettimeofday(&lasttime, NULL);
- putc(7, recordf); /* put start marker */
- putc(lasttime.tv_sec >> 24, recordf);
- putc(lasttime.tv_sec >> 16, recordf);
- putc(lasttime.tv_sec >> 8, recordf);
- putc(lasttime.tv_sec, recordf);
- lasttime.tv_usec = 0;
- }
-
- while (nibuf != 0 || nobuf != 0 || pty_readable || stdin_readable) {
- top = 0;
- tout.tv_sec = 0;
- tout.tv_usec = 10000;
- FD_ZERO(&ready);
- FD_ZERO(&writey);
- if (nibuf != 0) {
- if (ilevel >= max_level)
- top = &tout;
- else
- FD_SET(pty_master, &writey);
- } else if (stdin_readable)
- FD_SET(ifd, &ready);
- if (nobuf != 0) {
- if (olevel >= max_level)
- top = &tout;
- else
- FD_SET(ofd, &writey);
- } else if (pty_readable)
- FD_SET(pty_master, &ready);
- if (select(nfds, &ready, &writey, NULL, top) < 0) {
- if (errno != EINTR)
- fatal("select");
- continue;
- }
- if (max_data_rate) {
- double dt;
- int nbt;
- struct timeval now;
-
- gettimeofday(&now, NULL);
- dt = (now.tv_sec - levelt.tv_sec
- + (now.tv_usec - levelt.tv_usec) / 1e6);
- nbt = (int)(dt * max_data_rate);
- ilevel = (nbt < 0 || nbt > ilevel)? 0: ilevel - nbt;
- olevel = (nbt < 0 || nbt > olevel)? 0: olevel - nbt;
- levelt = now;
- } else
- ilevel = olevel = 0;
- if (FD_ISSET(ifd, &ready)) {
- ibufp = inpacket_buf;
- nibuf = read(ifd, ibufp, PPP_MRU + PPP_HDRLEN);
- if (nibuf < 0 && errno == EIO)
- nibuf = 0;
- if (nibuf < 0) {
- if (!(errno == EINTR || errno == EAGAIN)) {
- error("Error reading standard input: %m");
- break;
- }
- nibuf = 0;
- } else if (nibuf == 0) {
- /* end of file from stdin */
- stdin_readable = 0;
- /* do a 0-length write, hopefully this will generate
- an EOF (hangup) on the slave side. */
- write(pty_master, inpacket_buf, 0);
- if (recordf)
- if (!record_write(recordf, 4, NULL, 0, &lasttime))
- recordf = NULL;
- } else {
- FD_SET(pty_master, &writey);
- if (recordf)
- if (!record_write(recordf, 2, ibufp, nibuf, &lasttime))
- recordf = NULL;
- }
- }
- if (FD_ISSET(pty_master, &ready)) {
- obufp = outpacket_buf;
- nobuf = read(pty_master, obufp, PPP_MRU + PPP_HDRLEN);
- if (nobuf < 0 && errno == EIO)
- nobuf = 0;
- if (nobuf < 0) {
- if (!(errno == EINTR || errno == EAGAIN)) {
- error("Error reading pseudo-tty master: %m");
- break;
- }
- nobuf = 0;
- } else if (nobuf == 0) {
- /* end of file from the pty - slave side has closed */
- pty_readable = 0;
- stdin_readable = 0; /* pty is not writable now */
- nibuf = 0;
- close(ofd);
- if (recordf)
- if (!record_write(recordf, 3, NULL, 0, &lasttime))
- recordf = NULL;
- } else {
- FD_SET(ofd, &writey);
- if (recordf)
- if (!record_write(recordf, 1, obufp, nobuf, &lasttime))
- recordf = NULL;
- }
- }
- if (FD_ISSET(ofd, &writey)) {
- n = nobuf;
- if (olevel + n > max_level)
- n = max_level - olevel;
- n = write(ofd, obufp, n);
- if (n < 0) {
- if (errno == EIO) {
- pty_readable = 0;
- nobuf = 0;
- } else if (errno != EAGAIN && errno != EINTR) {
- error("Error writing standard output: %m");
- break;
- }
- } else {
- obufp += n;
- nobuf -= n;
- olevel += n;
- }
- }
- if (FD_ISSET(pty_master, &writey)) {
- n = nibuf;
- if (ilevel + n > max_level)
- n = max_level - ilevel;
- n = write(pty_master, ibufp, n);
- if (n < 0) {
- if (errno == EIO) {
- stdin_readable = 0;
- nibuf = 0;
- } else if (errno != EAGAIN && errno != EINTR) {
- error("Error writing pseudo-tty master: %m");
- break;
- }
- } else {
- ibufp += n;
- nibuf -= n;
- ilevel += n;
- }
- }
- }
- exit(0);
-}
-
-static int
-record_write(f, code, buf, nb, tp)
- FILE *f;
- int code;
- u_char *buf;
- int nb;
- struct timeval *tp;
-{
- struct timeval now;
- int diff;
-
- gettimeofday(&now, NULL);
- now.tv_usec /= 100000; /* actually 1/10 s, not usec now */
- diff = (now.tv_sec - tp->tv_sec) * 10 + (now.tv_usec - tp->tv_usec);
- if (diff > 0) {
- if (diff > 255) {
- putc(5, f);
- putc(diff >> 24, f);
- putc(diff >> 16, f);
- putc(diff >> 8, f);
- putc(diff, f);
- } else {
- putc(6, f);
- putc(diff, f);
- }
- *tp = now;
- }
- putc(code, f);
- if (buf != NULL) {
- putc(nb >> 8, f);
- putc(nb, f);
- fwrite(buf, nb, 1, f);
- }
- fflush(f);
- if (ferror(f)) {
- error("Error writing record file: %m");
- return 0;
- }
- return 1;
-}
diff --git a/mdk-stage1/ppp/pppd/upap.c b/mdk-stage1/ppp/pppd/upap.c
deleted file mode 100644
index bd569fb74..000000000
--- a/mdk-stage1/ppp/pppd/upap.c
+++ /dev/null
@@ -1,640 +0,0 @@
-/*
- * upap.c - User/Password Authentication Protocol.
- *
- * Copyright (c) 1989 Carnegie Mellon University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Carnegie Mellon University. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#define RCSID "$Id$"
-
-/*
- * TODO:
- */
-
-#include <stdio.h>
-#include <string.h>
-
-#include "pppd.h"
-#include "upap.h"
-
-static const char rcsid[] = RCSID;
-
-static bool hide_password = 1;
-
-/*
- * Command-line options.
- */
-static option_t pap_option_list[] = {
- { "hide-password", o_bool, &hide_password,
- "Don't output passwords to log", OPT_PRIO | 1 },
- { "show-password", o_bool, &hide_password,
- "Show password string in debug log messages", OPT_PRIOSUB | 0 },
-
- { "pap-restart", o_int, &upap[0].us_timeouttime,
- "Set retransmit timeout for PAP", OPT_PRIO },
- { "pap-max-authreq", o_int, &upap[0].us_maxtransmits,
- "Set max number of transmissions for auth-reqs", OPT_PRIO },
- { "pap-timeout", o_int, &upap[0].us_reqtimeout,
- "Set time limit for peer PAP authentication", OPT_PRIO },
-
- { NULL }
-};
-
-/*
- * Protocol entry points.
- */
-static void upap_init __P((int));
-static void upap_lowerup __P((int));
-static void upap_lowerdown __P((int));
-static void upap_input __P((int, u_char *, int));
-static void upap_protrej __P((int));
-static int upap_printpkt __P((u_char *, int,
- void (*) __P((void *, char *, ...)), void *));
-
-struct protent pap_protent = {
- PPP_PAP,
- upap_init,
- upap_input,
- upap_protrej,
- upap_lowerup,
- upap_lowerdown,
- NULL,
- NULL,
- upap_printpkt,
- NULL,
- 1,
- "PAP",
- NULL,
- pap_option_list,
- NULL,
- NULL,
- NULL
-};
-
-upap_state upap[NUM_PPP]; /* UPAP state; one for each unit */
-
-static void upap_timeout __P((void *));
-static void upap_reqtimeout __P((void *));
-static void upap_rauthreq __P((upap_state *, u_char *, int, int));
-static void upap_rauthack __P((upap_state *, u_char *, int, int));
-static void upap_rauthnak __P((upap_state *, u_char *, int, int));
-static void upap_sauthreq __P((upap_state *));
-static void upap_sresp __P((upap_state *, int, int, char *, int));
-
-
-/*
- * upap_init - Initialize a UPAP unit.
- */
-static void
-upap_init(unit)
- int unit;
-{
- upap_state *u = &upap[unit];
-
- u->us_unit = unit;
- u->us_user = NULL;
- u->us_userlen = 0;
- u->us_passwd = NULL;
- u->us_passwdlen = 0;
- u->us_clientstate = UPAPCS_INITIAL;
- u->us_serverstate = UPAPSS_INITIAL;
- u->us_id = 0;
- u->us_timeouttime = UPAP_DEFTIMEOUT;
- u->us_maxtransmits = 10;
- u->us_reqtimeout = UPAP_DEFREQTIME;
-}
-
-
-/*
- * upap_authwithpeer - Authenticate us with our peer (start client).
- *
- * Set new state and send authenticate's.
- */
-void
-upap_authwithpeer(unit, user, password)
- int unit;
- char *user, *password;
-{
- upap_state *u = &upap[unit];
-
- /* Save the username and password we're given */
- u->us_user = user;
- u->us_userlen = strlen(user);
- u->us_passwd = password;
- u->us_passwdlen = strlen(password);
- u->us_transmits = 0;
-
- /* Lower layer up yet? */
- if (u->us_clientstate == UPAPCS_INITIAL ||
- u->us_clientstate == UPAPCS_PENDING) {
- u->us_clientstate = UPAPCS_PENDING;
- return;
- }
-
- upap_sauthreq(u); /* Start protocol */
-}
-
-
-/*
- * upap_authpeer - Authenticate our peer (start server).
- *
- * Set new state.
- */
-void
-upap_authpeer(unit)
- int unit;
-{
- upap_state *u = &upap[unit];
-
- /* Lower layer up yet? */
- if (u->us_serverstate == UPAPSS_INITIAL ||
- u->us_serverstate == UPAPSS_PENDING) {
- u->us_serverstate = UPAPSS_PENDING;
- return;
- }
-
- u->us_serverstate = UPAPSS_LISTEN;
- if (u->us_reqtimeout > 0)
- TIMEOUT(upap_reqtimeout, u, u->us_reqtimeout);
-}
-
-
-/*
- * upap_timeout - Retransmission timer for sending auth-reqs expired.
- */
-static void
-upap_timeout(arg)
- void *arg;
-{
- upap_state *u = (upap_state *) arg;
-
- if (u->us_clientstate != UPAPCS_AUTHREQ)
- return;
-
- if (u->us_transmits >= u->us_maxtransmits) {
- /* give up in disgust */
- error("No response to PAP authenticate-requests");
- u->us_clientstate = UPAPCS_BADAUTH;
- auth_withpeer_fail(u->us_unit, PPP_PAP);
- return;
- }
-
- upap_sauthreq(u); /* Send Authenticate-Request */
-}
-
-
-/*
- * upap_reqtimeout - Give up waiting for the peer to send an auth-req.
- */
-static void
-upap_reqtimeout(arg)
- void *arg;
-{
- upap_state *u = (upap_state *) arg;
-
- if (u->us_serverstate != UPAPSS_LISTEN)
- return; /* huh?? */
-
- auth_peer_fail(u->us_unit, PPP_PAP);
- u->us_serverstate = UPAPSS_BADAUTH;
-}
-
-
-/*
- * upap_lowerup - The lower layer is up.
- *
- * Start authenticating if pending.
- */
-static void
-upap_lowerup(unit)
- int unit;
-{
- upap_state *u = &upap[unit];
-
- if (u->us_clientstate == UPAPCS_INITIAL)
- u->us_clientstate = UPAPCS_CLOSED;
- else if (u->us_clientstate == UPAPCS_PENDING) {
- upap_sauthreq(u); /* send an auth-request */
- }
-
- if (u->us_serverstate == UPAPSS_INITIAL)
- u->us_serverstate = UPAPSS_CLOSED;
- else if (u->us_serverstate == UPAPSS_PENDING) {
- u->us_serverstate = UPAPSS_LISTEN;
- if (u->us_reqtimeout > 0)
- TIMEOUT(upap_reqtimeout, u, u->us_reqtimeout);
- }
-}
-
-
-/*
- * upap_lowerdown - The lower layer is down.
- *
- * Cancel all timeouts.
- */
-static void
-upap_lowerdown(unit)
- int unit;
-{
- upap_state *u = &upap[unit];
-
- if (u->us_clientstate == UPAPCS_AUTHREQ) /* Timeout pending? */
- UNTIMEOUT(upap_timeout, u); /* Cancel timeout */
- if (u->us_serverstate == UPAPSS_LISTEN && u->us_reqtimeout > 0)
- UNTIMEOUT(upap_reqtimeout, u);
-
- u->us_clientstate = UPAPCS_INITIAL;
- u->us_serverstate = UPAPSS_INITIAL;
-}
-
-
-/*
- * upap_protrej - Peer doesn't speak this protocol.
- *
- * This shouldn't happen. In any case, pretend lower layer went down.
- */
-static void
-upap_protrej(unit)
- int unit;
-{
- upap_state *u = &upap[unit];
-
- if (u->us_clientstate == UPAPCS_AUTHREQ) {
- error("PAP authentication failed due to protocol-reject");
- auth_withpeer_fail(unit, PPP_PAP);
- }
- if (u->us_serverstate == UPAPSS_LISTEN) {
- error("PAP authentication of peer failed (protocol-reject)");
- auth_peer_fail(unit, PPP_PAP);
- }
- upap_lowerdown(unit);
-}
-
-
-/*
- * upap_input - Input UPAP packet.
- */
-static void
-upap_input(unit, inpacket, l)
- int unit;
- u_char *inpacket;
- int l;
-{
- upap_state *u = &upap[unit];
- u_char *inp;
- u_char code, id;
- int len;
-
- /*
- * Parse header (code, id and length).
- * If packet too short, drop it.
- */
- inp = inpacket;
- if (l < UPAP_HEADERLEN) {
- UPAPDEBUG(("pap_input: rcvd short header."));
- return;
- }
- GETCHAR(code, inp);
- GETCHAR(id, inp);
- GETSHORT(len, inp);
- if (len < UPAP_HEADERLEN) {
- UPAPDEBUG(("pap_input: rcvd illegal length."));
- return;
- }
- if (len > l) {
- UPAPDEBUG(("pap_input: rcvd short packet."));
- return;
- }
- len -= UPAP_HEADERLEN;
-
- /*
- * Action depends on code.
- */
- switch (code) {
- case UPAP_AUTHREQ:
- upap_rauthreq(u, inp, id, len);
- break;
-
- case UPAP_AUTHACK:
- upap_rauthack(u, inp, id, len);
- break;
-
- case UPAP_AUTHNAK:
- upap_rauthnak(u, inp, id, len);
- break;
-
- default: /* XXX Need code reject */
- break;
- }
-}
-
-
-/*
- * upap_rauth - Receive Authenticate.
- */
-static void
-upap_rauthreq(u, inp, id, len)
- upap_state *u;
- u_char *inp;
- int id;
- int len;
-{
- u_char ruserlen, rpasswdlen;
- char *ruser, *rpasswd;
- int retcode;
- char *msg;
- int msglen;
-
- if (u->us_serverstate < UPAPSS_LISTEN)
- return;
-
- /*
- * If we receive a duplicate authenticate-request, we are
- * supposed to return the same status as for the first request.
- */
- if (u->us_serverstate == UPAPSS_OPEN) {
- upap_sresp(u, UPAP_AUTHACK, id, "", 0); /* return auth-ack */
- return;
- }
- if (u->us_serverstate == UPAPSS_BADAUTH) {
- upap_sresp(u, UPAP_AUTHNAK, id, "", 0); /* return auth-nak */
- return;
- }
-
- /*
- * Parse user/passwd.
- */
- if (len < 1) {
- UPAPDEBUG(("pap_rauth: rcvd short packet."));
- return;
- }
- GETCHAR(ruserlen, inp);
- len -= sizeof (u_char) + ruserlen + sizeof (u_char);
- if (len < 0) {
- UPAPDEBUG(("pap_rauth: rcvd short packet."));
- return;
- }
- ruser = (char *) inp;
- INCPTR(ruserlen, inp);
- GETCHAR(rpasswdlen, inp);
- if (len < rpasswdlen) {
- UPAPDEBUG(("pap_rauth: rcvd short packet."));
- return;
- }
- rpasswd = (char *) inp;
-
- /*
- * Check the username and password given.
- */
- retcode = check_passwd(u->us_unit, ruser, ruserlen, rpasswd,
- rpasswdlen, &msg);
- BZERO(rpasswd, rpasswdlen);
- msglen = strlen(msg);
- if (msglen > 255)
- msglen = 255;
-
- upap_sresp(u, retcode, id, msg, msglen);
-
- if (retcode == UPAP_AUTHACK) {
- u->us_serverstate = UPAPSS_OPEN;
- auth_peer_success(u->us_unit, PPP_PAP, ruser, ruserlen);
- } else {
- u->us_serverstate = UPAPSS_BADAUTH;
- auth_peer_fail(u->us_unit, PPP_PAP);
- }
-
- if (u->us_reqtimeout > 0)
- UNTIMEOUT(upap_reqtimeout, u);
-}
-
-
-/*
- * upap_rauthack - Receive Authenticate-Ack.
- */
-static void
-upap_rauthack(u, inp, id, len)
- upap_state *u;
- u_char *inp;
- int id;
- int len;
-{
- u_char msglen;
- char *msg;
-
- if (u->us_clientstate != UPAPCS_AUTHREQ) /* XXX */
- return;
-
- /*
- * Parse message.
- */
- if (len < 1) {
- UPAPDEBUG(("pap_rauthack: ignoring missing msg-length."));
- } else {
- GETCHAR(msglen, inp);
- if (msglen > 0) {
- len -= sizeof (u_char);
- if (len < msglen) {
- UPAPDEBUG(("pap_rauthack: rcvd short packet."));
- return;
- }
- msg = (char *) inp;
- PRINTMSG(msg, msglen);
- }
- }
-
- u->us_clientstate = UPAPCS_OPEN;
-
- auth_withpeer_success(u->us_unit, PPP_PAP);
-}
-
-
-/*
- * upap_rauthnak - Receive Authenticate-Nakk.
- */
-static void
-upap_rauthnak(u, inp, id, len)
- upap_state *u;
- u_char *inp;
- int id;
- int len;
-{
- u_char msglen;
- char *msg;
-
- if (u->us_clientstate != UPAPCS_AUTHREQ) /* XXX */
- return;
-
- /*
- * Parse message.
- */
- if (len < 1) {
- UPAPDEBUG(("pap_rauthnak: ignoring missing msg-length."));
- } else {
- GETCHAR(msglen, inp);
- if (msglen > 0) {
- len -= sizeof (u_char);
- if (len < msglen) {
- UPAPDEBUG(("pap_rauthnak: rcvd short packet."));
- return;
- }
- msg = (char *) inp;
- PRINTMSG(msg, msglen);
- }
- }
-
- u->us_clientstate = UPAPCS_BADAUTH;
-
- error("PAP authentication failed");
- auth_withpeer_fail(u->us_unit, PPP_PAP);
-}
-
-
-/*
- * upap_sauthreq - Send an Authenticate-Request.
- */
-static void
-upap_sauthreq(u)
- upap_state *u;
-{
- u_char *outp;
- int outlen;
-
- outlen = UPAP_HEADERLEN + 2 * sizeof (u_char) +
- u->us_userlen + u->us_passwdlen;
- outp = outpacket_buf;
-
- MAKEHEADER(outp, PPP_PAP);
-
- PUTCHAR(UPAP_AUTHREQ, outp);
- PUTCHAR(++u->us_id, outp);
- PUTSHORT(outlen, outp);
- PUTCHAR(u->us_userlen, outp);
- BCOPY(u->us_user, outp, u->us_userlen);
- INCPTR(u->us_userlen, outp);
- PUTCHAR(u->us_passwdlen, outp);
- BCOPY(u->us_passwd, outp, u->us_passwdlen);
-
- output(u->us_unit, outpacket_buf, outlen + PPP_HDRLEN);
-
- TIMEOUT(upap_timeout, u, u->us_timeouttime);
- ++u->us_transmits;
- u->us_clientstate = UPAPCS_AUTHREQ;
-}
-
-
-/*
- * upap_sresp - Send a response (ack or nak).
- */
-static void
-upap_sresp(u, code, id, msg, msglen)
- upap_state *u;
- u_char code, id;
- char *msg;
- int msglen;
-{
- u_char *outp;
- int outlen;
-
- outlen = UPAP_HEADERLEN + sizeof (u_char) + msglen;
- outp = outpacket_buf;
- MAKEHEADER(outp, PPP_PAP);
-
- PUTCHAR(code, outp);
- PUTCHAR(id, outp);
- PUTSHORT(outlen, outp);
- PUTCHAR(msglen, outp);
- BCOPY(msg, outp, msglen);
- output(u->us_unit, outpacket_buf, outlen + PPP_HDRLEN);
-}
-
-/*
- * upap_printpkt - print the contents of a PAP packet.
- */
-static char *upap_codenames[] = {
- "AuthReq", "AuthAck", "AuthNak"
-};
-
-static int
-upap_printpkt(p, plen, printer, arg)
- u_char *p;
- int plen;
- void (*printer) __P((void *, char *, ...));
- void *arg;
-{
- int code, id, len;
- int mlen, ulen, wlen;
- char *user, *pwd, *msg;
- u_char *pstart;
-
- if (plen < UPAP_HEADERLEN)
- return 0;
- pstart = p;
- GETCHAR(code, p);
- GETCHAR(id, p);
- GETSHORT(len, p);
- if (len < UPAP_HEADERLEN || len > plen)
- return 0;
-
- if (code >= 1 && code <= sizeof(upap_codenames) / sizeof(char *))
- printer(arg, " %s", upap_codenames[code-1]);
- else
- printer(arg, " code=0x%x", code);
- printer(arg, " id=0x%x", id);
- len -= UPAP_HEADERLEN;
- switch (code) {
- case UPAP_AUTHREQ:
- if (len < 1)
- break;
- ulen = p[0];
- if (len < ulen + 2)
- break;
- wlen = p[ulen + 1];
- if (len < ulen + wlen + 2)
- break;
- user = (char *) (p + 1);
- pwd = (char *) (p + ulen + 2);
- p += ulen + wlen + 2;
- len -= ulen + wlen + 2;
- printer(arg, " user=");
- print_string(user, ulen, printer, arg);
- printer(arg, " password=");
- if (!hide_password)
- print_string(pwd, wlen, printer, arg);
- else
- printer(arg, "<hidden>");
- break;
- case UPAP_AUTHACK:
- case UPAP_AUTHNAK:
- if (len < 1)
- break;
- mlen = p[0];
- if (len < mlen + 1)
- break;
- msg = (char *) (p + 1);
- p += mlen + 1;
- len -= mlen + 1;
- printer(arg, " ");
- print_string(msg, mlen, printer, arg);
- break;
- }
-
- /* print the rest of the bytes in the packet */
- for (; len > 0; --len) {
- GETCHAR(code, p);
- printer(arg, " %.2x", code);
- }
-
- return p - pstart;
-}
diff --git a/mdk-stage1/ppp/pppd/upap.h b/mdk-stage1/ppp/pppd/upap.h
deleted file mode 100644
index 42d6f4f0f..000000000
--- a/mdk-stage1/ppp/pppd/upap.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * upap.h - User/Password Authentication Protocol definitions.
- *
- * Copyright (c) 1989 Carnegie Mellon University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by Carnegie Mellon University. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * $Id$
- */
-
-/*
- * Packet header = Code, id, length.
- */
-#define UPAP_HEADERLEN 4
-
-
-/*
- * UPAP codes.
- */
-#define UPAP_AUTHREQ 1 /* Authenticate-Request */
-#define UPAP_AUTHACK 2 /* Authenticate-Ack */
-#define UPAP_AUTHNAK 3 /* Authenticate-Nak */
-
-
-/*
- * Each interface is described by upap structure.
- */
-typedef struct upap_state {
- int us_unit; /* Interface unit number */
- char *us_user; /* User */
- int us_userlen; /* User length */
- char *us_passwd; /* Password */
- int us_passwdlen; /* Password length */
- int us_clientstate; /* Client state */
- int us_serverstate; /* Server state */
- u_char us_id; /* Current id */
- int us_timeouttime; /* Timeout (seconds) for auth-req retrans. */
- int us_transmits; /* Number of auth-reqs sent */
- int us_maxtransmits; /* Maximum number of auth-reqs to send */
- int us_reqtimeout; /* Time to wait for auth-req from peer */
-} upap_state;
-
-
-/*
- * Client states.
- */
-#define UPAPCS_INITIAL 0 /* Connection down */
-#define UPAPCS_CLOSED 1 /* Connection up, haven't requested auth */
-#define UPAPCS_PENDING 2 /* Connection down, have requested auth */
-#define UPAPCS_AUTHREQ 3 /* We've sent an Authenticate-Request */
-#define UPAPCS_OPEN 4 /* We've received an Ack */
-#define UPAPCS_BADAUTH 5 /* We've received a Nak */
-
-/*
- * Server states.
- */
-#define UPAPSS_INITIAL 0 /* Connection down */
-#define UPAPSS_CLOSED 1 /* Connection up, haven't requested auth */
-#define UPAPSS_PENDING 2 /* Connection down, have requested auth */
-#define UPAPSS_LISTEN 3 /* Listening for an Authenticate */
-#define UPAPSS_OPEN 4 /* We've sent an Ack */
-#define UPAPSS_BADAUTH 5 /* We've sent a Nak */
-
-
-/*
- * Timeouts.
- */
-#define UPAP_DEFTIMEOUT 3 /* Timeout (seconds) for retransmitting req */
-#define UPAP_DEFREQTIME 30 /* Time to wait for auth-req from peer */
-
-extern upap_state upap[];
-
-void upap_authwithpeer __P((int, char *, char *));
-void upap_authpeer __P((int));
-
-extern struct protent pap_protent;
diff --git a/mdk-stage1/ppp/pppd/utils.c b/mdk-stage1/ppp/pppd/utils.c
deleted file mode 100644
index 5861d8980..000000000
--- a/mdk-stage1/ppp/pppd/utils.c
+++ /dev/null
@@ -1,949 +0,0 @@
-/*
- * utils.c - various utility functions used in pppd.
- *
- * Copyright (c) 1999 The Australian National University.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by the Australian National University. The name of the University
- * may not be used to endorse or promote products derived from this
- * software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#define RCSID "$Id$"
-
-#include <stdio.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <signal.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <syslog.h>
-#include <netdb.h>
-#include <utmp.h>
-#include <pwd.h>
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <sys/stat.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#ifdef SVR4
-#include <sys/mkdev.h>
-#endif
-
-#include "pppd.h"
-#include <time.h>
-
-static const char rcsid[] = RCSID;
-
-#if defined(SUNOS4)
-extern char *strerror();
-#endif
-
-static void logit __P((int, char *, va_list));
-static void log_write __P((int, char *));
-static void vslp_printer __P((void *, char *, ...));
-static void format_packet __P((u_char *, int, void (*) (void *, char *, ...),
- void *));
-
-struct buffer_info {
- char *ptr;
- int len;
-};
-
-/*
- * strlcpy - like strcpy/strncpy, doesn't overflow destination buffer,
- * always leaves destination null-terminated (for len > 0).
- */
-size_t
-strlcpy(dest, src, len)
- char *dest;
- const char *src;
- size_t len;
-{
- size_t ret = strlen(src);
-
- if (len != 0) {
- if (ret < len)
- strcpy(dest, src);
- else {
- strncpy(dest, src, len - 1);
- dest[len-1] = 0;
- }
- }
- return ret;
-}
-
-/*
- * strlcat - like strcat/strncat, doesn't overflow destination buffer,
- * always leaves destination null-terminated (for len > 0).
- */
-size_t
-strlcat(dest, src, len)
- char *dest;
- const char *src;
- size_t len;
-{
- size_t dlen = strlen(dest);
-
- return dlen + strlcpy(dest + dlen, src, (len > dlen? len - dlen: 0));
-}
-
-
-/*
- * slprintf - format a message into a buffer. Like sprintf except we
- * also specify the length of the output buffer, and we handle
- * %r (recursive format), %m (error message), %v (visible string),
- * %q (quoted string), %t (current time) and %I (IP address) formats.
- * Doesn't do floating-point formats.
- * Returns the number of chars put into buf.
- */
-int
-slprintf __V((char *buf, int buflen, char *fmt, ...))
-{
- va_list args;
- int n;
-
-#if defined(__STDC__)
- va_start(args, fmt);
-#else
- char *buf;
- int buflen;
- char *fmt;
- va_start(args);
- buf = va_arg(args, char *);
- buflen = va_arg(args, int);
- fmt = va_arg(args, char *);
-#endif
- n = vslprintf(buf, buflen, fmt, args);
- va_end(args);
- return n;
-}
-
-/*
- * vslprintf - like slprintf, takes a va_list instead of a list of args.
- */
-#define OUTCHAR(c) (buflen > 0? (--buflen, *buf++ = (c)): 0)
-
-int
-vslprintf(buf, buflen, fmt, args)
- char *buf;
- int buflen;
- char *fmt;
- va_list args;
-{
- int c, i, n;
- int width, prec, fillch;
- int base, len, neg, quoted;
- unsigned long val = 0;
- char *str, *f, *buf0;
- unsigned char *p;
- char num[32];
- time_t t;
- u_int32_t ip;
- static char hexchars[] = "0123456789abcdef";
- struct buffer_info bufinfo;
-
- buf0 = buf;
- --buflen;
- while (buflen > 0) {
- for (f = fmt; *f != '%' && *f != 0; ++f)
- ;
- if (f > fmt) {
- len = f - fmt;
- if (len > buflen)
- len = buflen;
- memcpy(buf, fmt, len);
- buf += len;
- buflen -= len;
- fmt = f;
- }
- if (*fmt == 0)
- break;
- c = *++fmt;
- width = 0;
- prec = -1;
- fillch = ' ';
- if (c == '0') {
- fillch = '0';
- c = *++fmt;
- }
- if (c == '*') {
- width = va_arg(args, int);
- c = *++fmt;
- } else {
- while (isdigit(c)) {
- width = width * 10 + c - '0';
- c = *++fmt;
- }
- }
- if (c == '.') {
- c = *++fmt;
- if (c == '*') {
- prec = va_arg(args, int);
- c = *++fmt;
- } else {
- prec = 0;
- while (isdigit(c)) {
- prec = prec * 10 + c - '0';
- c = *++fmt;
- }
- }
- }
- str = 0;
- base = 0;
- neg = 0;
- ++fmt;
- switch (c) {
- case 'd':
- i = va_arg(args, int);
- if (i < 0) {
- neg = 1;
- val = -i;
- } else
- val = i;
- base = 10;
- break;
- case 'u':
- val = va_arg(args, unsigned int);
- base = 10;
- break;
- case 'o':
- val = va_arg(args, unsigned int);
- base = 8;
- break;
- case 'x':
- case 'X':
- val = va_arg(args, unsigned int);
- base = 16;
- break;
- case 'p':
- val = (unsigned long) va_arg(args, void *);
- base = 16;
- neg = 2;
- break;
- case 's':
- str = va_arg(args, char *);
- break;
- case 'c':
- num[0] = va_arg(args, int);
- num[1] = 0;
- str = num;
- break;
- case 'm':
- str = strerror(errno);
- break;
- case 'I':
- ip = va_arg(args, u_int32_t);
- ip = ntohl(ip);
- slprintf(num, sizeof(num), "%d.%d.%d.%d", (ip >> 24) & 0xff,
- (ip >> 16) & 0xff, (ip >> 8) & 0xff, ip & 0xff);
- str = num;
- break;
- case 'r':
- f = va_arg(args, char *);
-#if !defined(__powerpc__) && !defined(__x86_64__)
- n = vslprintf(buf, buflen + 1, f, va_arg(args, va_list));
-#else
- /* On the powerpc, a va_list is an array of 1 structure */
- n = vslprintf(buf, buflen + 1, f, va_arg(args, void *));
-#endif
- buf += n;
- buflen -= n;
- continue;
- case 't':
- time(&t);
- str = ctime(&t);
- str += 4; /* chop off the day name */
- str[15] = 0; /* chop off year and newline */
- break;
- case 'v': /* "visible" string */
- case 'q': /* quoted string */
- quoted = c == 'q';
- p = va_arg(args, unsigned char *);
- if (fillch == '0' && prec >= 0) {
- n = prec;
- } else {
- n = strlen((char *)p);
- if (prec >= 0 && n > prec)
- n = prec;
- }
- while (n > 0 && buflen > 0) {
- c = *p++;
- --n;
- if (!quoted && c >= 0x80) {
- OUTCHAR('M');
- OUTCHAR('-');
- c -= 0x80;
- }
- if (quoted && (c == '"' || c == '\\'))
- OUTCHAR('\\');
- if (c < 0x20 || (0x7f <= c && c < 0xa0)) {
- if (quoted) {
- OUTCHAR('\\');
- switch (c) {
- case '\t': OUTCHAR('t'); break;
- case '\n': OUTCHAR('n'); break;
- case '\b': OUTCHAR('b'); break;
- case '\f': OUTCHAR('f'); break;
- default:
- OUTCHAR('x');
- OUTCHAR(hexchars[c >> 4]);
- OUTCHAR(hexchars[c & 0xf]);
- }
- } else {
- if (c == '\t')
- OUTCHAR(c);
- else {
- OUTCHAR('^');
- OUTCHAR(c ^ 0x40);
- }
- }
- } else
- OUTCHAR(c);
- }
- continue;
- case 'P': /* print PPP packet */
- bufinfo.ptr = buf;
- bufinfo.len = buflen + 1;
- p = va_arg(args, unsigned char *);
- n = va_arg(args, int);
- format_packet(p, n, vslp_printer, &bufinfo);
- buf = bufinfo.ptr;
- buflen = bufinfo.len - 1;
- continue;
- case 'B':
- p = va_arg(args, unsigned char *);
- for (n = prec; n > 0; --n) {
- c = *p++;
- if (fillch == ' ')
- OUTCHAR(' ');
- OUTCHAR(hexchars[(c >> 4) & 0xf]);
- OUTCHAR(hexchars[c & 0xf]);
- }
- continue;
- default:
- *buf++ = '%';
- if (c != '%')
- --fmt; /* so %z outputs %z etc. */
- --buflen;
- continue;
- }
- if (base != 0) {
- str = num + sizeof(num);
- *--str = 0;
- while (str > num + neg) {
- *--str = hexchars[val % base];
- val = val / base;
- if (--prec <= 0 && val == 0)
- break;
- }
- switch (neg) {
- case 1:
- *--str = '-';
- break;
- case 2:
- *--str = 'x';
- *--str = '0';
- break;
- }
- len = num + sizeof(num) - 1 - str;
- } else {
- len = strlen(str);
- if (prec >= 0 && len > prec)
- len = prec;
- }
- if (width > 0) {
- if (width > buflen)
- width = buflen;
- if ((n = width - len) > 0) {
- buflen -= n;
- for (; n > 0; --n)
- *buf++ = fillch;
- }
- }
- if (len > buflen)
- len = buflen;
- memcpy(buf, str, len);
- buf += len;
- buflen -= len;
- }
- *buf = 0;
- return buf - buf0;
-}
-
-/*
- * vslp_printer - used in processing a %P format
- */
-static void
-vslp_printer __V((void *arg, char *fmt, ...))
-{
- int n;
- va_list pvar;
- struct buffer_info *bi;
-
-#if defined(__STDC__)
- va_start(pvar, fmt);
-#else
- void *arg;
- char *fmt;
- va_start(pvar);
- arg = va_arg(pvar, void *);
- fmt = va_arg(pvar, char *);
-#endif
-
- bi = (struct buffer_info *) arg;
- n = vslprintf(bi->ptr, bi->len, fmt, pvar);
- va_end(pvar);
-
- bi->ptr += n;
- bi->len -= n;
-}
-
-#ifdef unused
-/*
- * log_packet - format a packet and log it.
- */
-
-void
-log_packet(p, len, prefix, level)
- u_char *p;
- int len;
- char *prefix;
- int level;
-{
- init_pr_log(prefix, level);
- format_packet(p, len, pr_log, &level);
- end_pr_log();
-}
-#endif /* unused */
-
-/*
- * format_packet - make a readable representation of a packet,
- * calling `printer(arg, format, ...)' to output it.
- */
-static void
-format_packet(p, len, printer, arg)
- u_char *p;
- int len;
- void (*printer) __P((void *, char *, ...));
- void *arg;
-{
- int i, n;
- u_short proto;
- struct protent *protp;
-
- if (len >= PPP_HDRLEN && p[0] == PPP_ALLSTATIONS && p[1] == PPP_UI) {
- p += 2;
- GETSHORT(proto, p);
- len -= PPP_HDRLEN;
- for (i = 0; (protp = protocols[i]) != NULL; ++i)
- if (proto == protp->protocol)
- break;
- if (protp != NULL) {
- printer(arg, "[%s", protp->name);
- n = (*protp->printpkt)(p, len, printer, arg);
- printer(arg, "]");
- p += n;
- len -= n;
- } else {
- for (i = 0; (protp = protocols[i]) != NULL; ++i)
- if (proto == (protp->protocol & ~0x8000))
- break;
- if (protp != 0 && protp->data_name != 0) {
- printer(arg, "[%s data]", protp->data_name);
- if (len > 8)
- printer(arg, "%.8B ...", p);
- else
- printer(arg, "%.*B", len, p);
- len = 0;
- } else
- printer(arg, "[proto=0x%x]", proto);
- }
- }
-
- if (len > 32)
- printer(arg, "%.32B ...", p);
- else
- printer(arg, "%.*B", len, p);
-}
-
-/*
- * init_pr_log, end_pr_log - initialize and finish use of pr_log.
- */
-
-static char line[256]; /* line to be logged accumulated here */
-static char *linep; /* current pointer within line */
-static int llevel; /* level for logging */
-
-void
-init_pr_log(prefix, level)
- char *prefix;
- int level;
-{
- linep = line;
- if (prefix != NULL) {
- strlcpy(line, prefix, sizeof(line));
- linep = line + strlen(line);
- }
- llevel = level;
-}
-
-void
-end_pr_log()
-{
- if (linep != line) {
- *linep = 0;
- log_write(llevel, line);
- }
-}
-
-/*
- * pr_log - printer routine for outputting to syslog
- */
-void
-pr_log __V((void *arg, char *fmt, ...))
-{
- int l, n;
- va_list pvar;
- char *p, *eol;
- char buf[256];
-
-#if defined(__STDC__)
- va_start(pvar, fmt);
-#else
- void *arg;
- char *fmt;
- va_start(pvar);
- arg = va_arg(pvar, void *);
- fmt = va_arg(pvar, char *);
-#endif
-
- n = vslprintf(buf, sizeof(buf), fmt, pvar);
- va_end(pvar);
-
- p = buf;
- eol = strchr(buf, '\n');
- if (linep != line) {
- l = (eol == NULL)? n: eol - buf;
- if (linep + l < line + sizeof(line)) {
- if (l > 0) {
- memcpy(linep, buf, l);
- linep += l;
- }
- if (eol == NULL)
- return;
- p = eol + 1;
- eol = strchr(p, '\n');
- }
- *linep = 0;
- log_write(llevel, line);
- linep = line;
- }
-
- while (eol != NULL) {
- *eol = 0;
- log_write(llevel, p);
- p = eol + 1;
- eol = strchr(p, '\n');
- }
-
- /* assumes sizeof(buf) <= sizeof(line) */
- l = buf + n - p;
- if (l > 0) {
- memcpy(line, p, n);
- linep = line + l;
- }
-}
-
-/*
- * print_string - print a readable representation of a string using
- * printer.
- */
-void
-print_string(p, len, printer, arg)
- char *p;
- int len;
- void (*printer) __P((void *, char *, ...));
- void *arg;
-{
- int c;
-
- printer(arg, "\"");
- for (; len > 0; --len) {
- c = *p++;
- if (' ' <= c && c <= '~') {
- if (c == '\\' || c == '"')
- printer(arg, "\\");
- printer(arg, "%c", c);
- } else {
- switch (c) {
- case '\n':
- printer(arg, "\\n");
- break;
- case '\r':
- printer(arg, "\\r");
- break;
- case '\t':
- printer(arg, "\\t");
- break;
- default:
- printer(arg, "\\%.3o", c);
- }
- }
- }
- printer(arg, "\"");
-}
-
-/*
- * logit - does the hard work for fatal et al.
- */
-static void
-logit(level, fmt, args)
- int level;
- char *fmt;
- va_list args;
-{
- int n;
- char buf[1024];
-
- n = vslprintf(buf, sizeof(buf), fmt, args);
- log_write(level, buf);
-}
-
-static void
-log_write(level, buf)
- int level;
- char *buf;
-{
- syslog(level, "%s", buf);
- if (log_to_fd >= 0 && (level != LOG_DEBUG || debug)) {
- int n = strlen(buf);
-
- if (n > 0 && buf[n-1] == '\n')
- --n;
- if (write(log_to_fd, buf, n) != n
- || write(log_to_fd, "\n", 1) != 1)
- log_to_fd = -1;
- }
-}
-
-/*
- * fatal - log an error message and die horribly.
- */
-void
-fatal __V((char *fmt, ...))
-{
- va_list pvar;
-
-#if defined(__STDC__)
- va_start(pvar, fmt);
-#else
- char *fmt;
- va_start(pvar);
- fmt = va_arg(pvar, char *);
-#endif
-
- logit(LOG_ERR, fmt, pvar);
- va_end(pvar);
-
- die(1); /* as promised */
-}
-
-/*
- * error - log an error message.
- */
-void
-error __V((char *fmt, ...))
-{
- va_list pvar;
-
-#if defined(__STDC__)
- va_start(pvar, fmt);
-#else
- char *fmt;
- va_start(pvar);
- fmt = va_arg(pvar, char *);
-#endif
-
- logit(LOG_ERR, fmt, pvar);
- va_end(pvar);
-}
-
-/*
- * warn - log a warning message.
- */
-void
-warn __V((char *fmt, ...))
-{
- va_list pvar;
-
-#if defined(__STDC__)
- va_start(pvar, fmt);
-#else
- char *fmt;
- va_start(pvar);
- fmt = va_arg(pvar, char *);
-#endif
-
- logit(LOG_WARNING, fmt, pvar);
- va_end(pvar);
-}
-
-/*
- * notice - log a notice-level message.
- */
-void
-notice __V((char *fmt, ...))
-{
- va_list pvar;
-
-#if defined(__STDC__)
- va_start(pvar, fmt);
-#else
- char *fmt;
- va_start(pvar);
- fmt = va_arg(pvar, char *);
-#endif
-
- logit(LOG_NOTICE, fmt, pvar);
- va_end(pvar);
-}
-
-/*
- * info - log an informational message.
- */
-void
-info __V((char *fmt, ...))
-{
- va_list pvar;
-
-#if defined(__STDC__)
- va_start(pvar, fmt);
-#else
- char *fmt;
- va_start(pvar);
- fmt = va_arg(pvar, char *);
-#endif
-
- logit(LOG_INFO, fmt, pvar);
- va_end(pvar);
-}
-
-/*
- * dbglog - log a debug message.
- */
-void
-dbglog __V((char *fmt, ...))
-{
- va_list pvar;
-
-#if defined(__STDC__)
- va_start(pvar, fmt);
-#else
- char *fmt;
- va_start(pvar);
- fmt = va_arg(pvar, char *);
-#endif
-
- logit(LOG_DEBUG, fmt, pvar);
- va_end(pvar);
-}
-
-/* Procedures for locking the serial device using a lock file. */
-#ifndef LOCK_DIR
-#ifdef _linux_
-#define LOCK_DIR "/var/lock"
-#else
-#ifdef SVR4
-#define LOCK_DIR "/var/spool/locks"
-#else
-#define LOCK_DIR "/var/spool/lock"
-#endif
-#endif
-#endif /* LOCK_DIR */
-
-static char lock_file[MAXPATHLEN];
-
-/*
- * lock - create a lock file for the named device
- */
-int
-lock(dev)
- char *dev;
-{
-#ifdef LOCKLIB
- int result;
-
- result = mklock (dev, (void *) 0);
- if (result == 0) {
- strlcpy(lock_file, sizeof(lock_file), dev);
- return 0;
- }
-
- if (result > 0)
- notice("Device %s is locked by pid %d", dev, result);
- else
- error("Can't create lock file %s", lock_file);
- return -1;
-
-#else /* LOCKLIB */
-
- char lock_buffer[12];
- int fd, pid, n;
-
-#ifdef SVR4
- struct stat sbuf;
-
- if (stat(dev, &sbuf) < 0) {
- error("Can't get device number for %s: %m", dev);
- return -1;
- }
- if ((sbuf.st_mode & S_IFMT) != S_IFCHR) {
- error("Can't lock %s: not a character device", dev);
- return -1;
- }
- slprintf(lock_file, sizeof(lock_file), "%s/LK.%03d.%03d.%03d",
- LOCK_DIR, major(sbuf.st_dev),
- major(sbuf.st_rdev), minor(sbuf.st_rdev));
-#else
- char *p;
-
- if ((p = strrchr(dev, '/')) != NULL)
- dev = p + 1;
- slprintf(lock_file, sizeof(lock_file), "%s/LCK..%s", LOCK_DIR, dev);
-#endif
-
- while ((fd = open(lock_file, O_EXCL | O_CREAT | O_RDWR, 0644)) < 0) {
- if (errno != EEXIST) {
- error("Can't create lock file %s: %m", lock_file);
- break;
- }
-
- /* Read the lock file to find out who has the device locked. */
- fd = open(lock_file, O_RDONLY, 0);
- if (fd < 0) {
- if (errno == ENOENT) /* This is just a timing problem. */
- continue;
- error("Can't open existing lock file %s: %m", lock_file);
- break;
- }
-#ifndef LOCK_BINARY
- n = read(fd, lock_buffer, 11);
-#else
- n = read(fd, &pid, sizeof(pid));
-#endif /* LOCK_BINARY */
- close(fd);
- fd = -1;
- if (n <= 0) {
- error("Can't read pid from lock file %s", lock_file);
- break;
- }
-
- /* See if the process still exists. */
-#ifndef LOCK_BINARY
- lock_buffer[n] = 0;
- pid = atoi(lock_buffer);
-#endif /* LOCK_BINARY */
- if (pid == getpid())
- return 1; /* somebody else locked it for us */
- if (pid == 0
- || (kill(pid, 0) == -1 && errno == ESRCH)) {
- if (unlink (lock_file) == 0) {
- notice("Removed stale lock on %s (pid %d)", dev, pid);
- continue;
- }
- warn("Couldn't remove stale lock on %s", dev);
- } else
- notice("Device %s is locked by pid %d", dev, pid);
- break;
- }
-
- if (fd < 0) {
- lock_file[0] = 0;
- return -1;
- }
-
- pid = getpid();
-#ifndef LOCK_BINARY
- slprintf(lock_buffer, sizeof(lock_buffer), "%10d\n", pid);
- write (fd, lock_buffer, 11);
-#else
- write(fd, &pid, sizeof (pid));
-#endif
- close(fd);
- return 0;
-
-#endif
-}
-
-/*
- * relock - called to update our lockfile when we are about to detach,
- * thus changing our pid (we fork, the child carries on, and the parent dies).
- * Note that this is called by the parent, with pid equal to the pid
- * of the child. This avoids a potential race which would exist if
- * we had the child rewrite the lockfile (the parent might die first,
- * and another process could think the lock was stale if it checked
- * between when the parent died and the child rewrote the lockfile).
- */
-int
-relock(pid)
- int pid;
-{
-#ifdef LOCKLIB
- /* XXX is there a way to do this? */
- return -1;
-#else /* LOCKLIB */
-
- int fd;
- char lock_buffer[12];
-
- if (lock_file[0] == 0)
- return -1;
- fd = open(lock_file, O_WRONLY, 0);
- if (fd < 0) {
- error("Couldn't reopen lock file %s: %m", lock_file);
- lock_file[0] = 0;
- return -1;
- }
-
-#ifndef LOCK_BINARY
- slprintf(lock_buffer, sizeof(lock_buffer), "%10d\n", pid);
- write (fd, lock_buffer, 11);
-#else
- write(fd, &pid, sizeof(pid));
-#endif /* LOCK_BINARY */
- close(fd);
- return 0;
-
-#endif /* LOCKLIB */
-}
-
-/*
- * unlock - remove our lockfile
- */
-void
-unlock()
-{
- if (lock_file[0]) {
-#ifdef LOCKLIB
- (void) rmlock(lock_file, (void *) 0);
-#else
- unlink(lock_file);
-#endif
- lock_file[0] = 0;
- }
-}
-
diff --git a/mdk-stage1/ppp/pppdump/Makefile.linux b/mdk-stage1/ppp/pppdump/Makefile.linux
deleted file mode 100644
index 1d8d78ff7..000000000
--- a/mdk-stage1/ppp/pppdump/Makefile.linux
+++ /dev/null
@@ -1,17 +0,0 @@
-CFLAGS= -I../include/net $(RPM_OPT_FLAGS)
-OBJS = pppdump.o bsd-comp.o deflate.o zlib.o
-
-INSTALL= install
-
-all: pppdump
-
-pppdump: $(OBJS)
- $(CC) $(RPM_OPT_FLAGS) -o pppdump $(OBJS)
-
-clean:
- rm -f pppdump $(OBJS) *~
-
-install:
- mkdir -p $(BINDIR) $(MANDIR)/man8
- $(INSTALL) -s -c pppdump $(BINDIR)
- $(INSTALL) -c pppdump.8 $(MANDIR)/man8
diff --git a/mdk-stage1/ppp/pppdump/Makefile.linux.makeopt b/mdk-stage1/ppp/pppdump/Makefile.linux.makeopt
deleted file mode 100644
index d02fecde8..000000000
--- a/mdk-stage1/ppp/pppdump/Makefile.linux.makeopt
+++ /dev/null
@@ -1,17 +0,0 @@
-CFLAGS= -O -I../include/net
-OBJS = pppdump.o bsd-comp.o deflate.o zlib.o
-
-INSTALL= install
-
-all: pppdump
-
-pppdump: $(OBJS)
- $(CC) -o pppdump $(OBJS)
-
-clean:
- rm -f pppdump $(OBJS) *~
-
-install:
- mkdir -p $(BINDIR) $(MANDIR)/man8
- $(INSTALL) -s -c pppdump $(BINDIR)
- $(INSTALL) -c -m 444 pppdump.8 $(MANDIR)/man8
diff --git a/mdk-stage1/ppp/pppdump/Makefile.linux.pppdump-Makefile b/mdk-stage1/ppp/pppdump/Makefile.linux.pppdump-Makefile
deleted file mode 100644
index 4c98b6c6d..000000000
--- a/mdk-stage1/ppp/pppdump/Makefile.linux.pppdump-Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-CFLAGS= -O -I../include/net
-OBJS = pppdump.o bsd-comp.o deflate.o zlib.o
-
-INSTALL= install
-
-all: pppdump
-
-pppdump: $(OBJS)
- $(CC) $(RPM_OPT_FLAGS) -o pppdump $(OBJS)
-
-clean:
- rm -f pppdump $(OBJS) *~
-
-install:
- mkdir -p $(BINDIR) $(MANDIR)/man8
- $(INSTALL) -s -c pppdump $(BINDIR)
- $(INSTALL) -c -m 444 pppdump.8 $(MANDIR)/man8
diff --git a/mdk-stage1/ppp/pppdump/Makefile.sol2 b/mdk-stage1/ppp/pppdump/Makefile.sol2
deleted file mode 100644
index d7e6b413e..000000000
--- a/mdk-stage1/ppp/pppdump/Makefile.sol2
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# pppdump Makefile for SVR4 systems
-# $Id$
-#
-
-include ../solaris/Makedefs
-
-CFLAGS= $(COPTS) -I../include/net
-OBJS = pppdump.o bsd-comp.o deflate.o zlib.o
-
-all: pppdump
-
-pppdump: $(OBJS)
- $(CC) -o pppdump $(OBJS)
-
-clean:
- rm -f $(OBJS) pppdump *~
-
-install:
- $(INSTALL) -f $(BINDIR) pppdump
- $(INSTALL) -m 444 -f $(MANDIR)/man8 pppdump.8
diff --git a/mdk-stage1/ppp/pppdump/Makefile.sunos4 b/mdk-stage1/ppp/pppdump/Makefile.sunos4
deleted file mode 100644
index 915c8267d..000000000
--- a/mdk-stage1/ppp/pppdump/Makefile.sunos4
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# pppstats makefile
-# $Id$
-#
-
-include ../sunos4/Makedefs
-
-OBJS = pppdump.o bsd-comp.o deflate.o zlib.o
-CFLAGS = $(COPTS) -I../include/net
-
-all: pppdump
-
-pppdump: $(OBJS)
- $(CC) -o pppdump $(OBJS)
-
-clean:
- rm -f pppdump $(OBJS) *~
-
-install: pppdump
- $(INSTALL) -c pppdump $(BINDIR)/pppdump
- $(INSTALL) -c -m 444 pppdump.8 $(MANDIR)/man8/pppdump.8
diff --git a/mdk-stage1/ppp/pppdump/bsd-comp.c b/mdk-stage1/ppp/pppdump/bsd-comp.c
deleted file mode 100644
index 1e14e98bb..000000000
--- a/mdk-stage1/ppp/pppdump/bsd-comp.c
+++ /dev/null
@@ -1,750 +0,0 @@
-/* Because this code is derived from the 4.3BSD compress source:
- *
- *
- * Copyright (c) 1985, 1986 The Regents of the University of California.
- * All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * James A. Woods, derived from original work by Spencer Thomas
- * and Joseph Orost.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * $Id$
- */
-
-#include <sys/types.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include "ppp_defs.h"
-#include "ppp-comp.h"
-
-#if DO_BSD_COMPRESS
-
-/*
- * PPP "BSD compress" compression
- * The differences between this compression and the classic BSD LZW
- * source are obvious from the requirement that the classic code worked
- * with files while this handles arbitrarily long streams that
- * are broken into packets. They are:
- *
- * When the code size expands, a block of junk is not emitted by
- * the compressor and not expected by the decompressor.
- *
- * New codes are not necessarily assigned every time an old
- * code is output by the compressor. This is because a packet
- * end forces a code to be emitted, but does not imply that a
- * new sequence has been seen.
- *
- * The compression ratio is checked at the first end of a packet
- * after the appropriate gap. Besides simplifying and speeding
- * things up, this makes it more likely that the transmitter
- * and receiver will agree when the dictionary is cleared when
- * compression is not going well.
- */
-
-/*
- * A dictionary for doing BSD compress.
- */
-struct bsd_db {
- int totlen; /* length of this structure */
- u_int hsize; /* size of the hash table */
- u_char hshift; /* used in hash function */
- u_char n_bits; /* current bits/code */
- u_char maxbits;
- u_char debug;
- u_char unit;
- u_short seqno; /* sequence number of next packet */
- u_int hdrlen; /* header length to preallocate */
- u_int mru;
- u_int maxmaxcode; /* largest valid code */
- u_int max_ent; /* largest code in use */
- u_int in_count; /* uncompressed bytes, aged */
- u_int bytes_out; /* compressed bytes, aged */
- u_int ratio; /* recent compression ratio */
- u_int checkpoint; /* when to next check the ratio */
- u_int clear_count; /* times dictionary cleared */
- u_int incomp_count; /* incompressible packets */
- u_int incomp_bytes; /* incompressible bytes */
- u_int uncomp_count; /* uncompressed packets */
- u_int uncomp_bytes; /* uncompressed bytes */
- u_int comp_count; /* compressed packets */
- u_int comp_bytes; /* compressed bytes */
- u_short *lens; /* array of lengths of codes */
- struct bsd_dict {
- union { /* hash value */
- u_int32_t fcode;
- struct {
-#ifdef BSD_LITTLE_ENDIAN
- u_short prefix; /* preceding code */
- u_char suffix; /* last character of new code */
- u_char pad;
-#else
- u_char pad;
- u_char suffix; /* last character of new code */
- u_short prefix; /* preceding code */
-#endif
- } hs;
- } f;
- u_short codem1; /* output of hash table -1 */
- u_short cptr; /* map code to hash table entry */
- } dict[1];
-};
-
-#define BSD_OVHD 2 /* BSD compress overhead/packet */
-#define BSD_INIT_BITS BSD_MIN_BITS
-
-static void *bsd_decomp_alloc __P((u_char *options, int opt_len));
-static void bsd_free __P((void *state));
-static int bsd_decomp_init __P((void *state, u_char *options, int opt_len,
- int unit, int hdrlen, int mru, int debug));
-static void bsd_incomp __P((void *state, u_char *dmsg, int len));
-static int bsd_decompress __P((void *state, u_char *cmp, int inlen,
- u_char *dmp, int *outlen));
-static void bsd_reset __P((void *state));
-static void bsd_comp_stats __P((void *state, struct compstat *stats));
-
-/*
- * Exported procedures.
- */
-struct compressor ppp_bsd_compress = {
- CI_BSD_COMPRESS, /* compress_proto */
- bsd_decomp_alloc, /* decomp_alloc */
- bsd_free, /* decomp_free */
- bsd_decomp_init, /* decomp_init */
- bsd_reset, /* decomp_reset */
- bsd_decompress, /* decompress */
- bsd_incomp, /* incomp */
- bsd_comp_stats, /* decomp_stat */
-};
-
-/*
- * the next two codes should not be changed lightly, as they must not
- * lie within the contiguous general code space.
- */
-#define CLEAR 256 /* table clear output code */
-#define FIRST 257 /* first free entry */
-#define LAST 255
-
-#define MAXCODE(b) ((1 << (b)) - 1)
-#define BADCODEM1 MAXCODE(BSD_MAX_BITS)
-
-#define BSD_HASH(prefix,suffix,hshift) ((((u_int32_t)(suffix)) << (hshift)) \
- ^ (u_int32_t)(prefix))
-#define BSD_KEY(prefix,suffix) ((((u_int32_t)(suffix)) << 16) \
- + (u_int32_t)(prefix))
-
-#define CHECK_GAP 10000 /* Ratio check interval */
-
-#define RATIO_SCALE_LOG 8
-#define RATIO_SCALE (1<<RATIO_SCALE_LOG)
-#define RATIO_MAX (0x7fffffff>>RATIO_SCALE_LOG)
-
-/*
- * clear the dictionary
- */
-static void
-bsd_clear(db)
- struct bsd_db *db;
-{
- db->clear_count++;
- db->max_ent = FIRST-1;
- db->n_bits = BSD_INIT_BITS;
- db->ratio = 0;
- db->bytes_out = 0;
- db->in_count = 0;
- db->checkpoint = CHECK_GAP;
-}
-
-/*
- * If the dictionary is full, then see if it is time to reset it.
- *
- * Compute the compression ratio using fixed-point arithmetic
- * with 8 fractional bits.
- *
- * Since we have an infinite stream instead of a single file,
- * watch only the local compression ratio.
- *
- * Since both peers must reset the dictionary at the same time even in
- * the absence of CLEAR codes (while packets are incompressible), they
- * must compute the same ratio.
- */
-static int /* 1=output CLEAR */
-bsd_check(db)
- struct bsd_db *db;
-{
- u_int new_ratio;
-
- if (db->in_count >= db->checkpoint) {
- /* age the ratio by limiting the size of the counts */
- if (db->in_count >= RATIO_MAX
- || db->bytes_out >= RATIO_MAX) {
- db->in_count -= db->in_count/4;
- db->bytes_out -= db->bytes_out/4;
- }
-
- db->checkpoint = db->in_count + CHECK_GAP;
-
- if (db->max_ent >= db->maxmaxcode) {
- /* Reset the dictionary only if the ratio is worse,
- * or if it looks as if it has been poisoned
- * by incompressible data.
- *
- * This does not overflow, because
- * db->in_count <= RATIO_MAX.
- */
- new_ratio = db->in_count << RATIO_SCALE_LOG;
- if (db->bytes_out != 0)
- new_ratio /= db->bytes_out;
-
- if (new_ratio < db->ratio || new_ratio < 1 * RATIO_SCALE) {
- bsd_clear(db);
- return 1;
- }
- db->ratio = new_ratio;
- }
- }
- return 0;
-}
-
-/*
- * Return statistics.
- */
-static void
-bsd_comp_stats(state, stats)
- void *state;
- struct compstat *stats;
-{
- struct bsd_db *db = (struct bsd_db *) state;
- u_int out;
-
- stats->unc_bytes = db->uncomp_bytes;
- stats->unc_packets = db->uncomp_count;
- stats->comp_bytes = db->comp_bytes;
- stats->comp_packets = db->comp_count;
- stats->inc_bytes = db->incomp_bytes;
- stats->inc_packets = db->incomp_count;
- stats->ratio = db->in_count;
- out = db->bytes_out;
- if (stats->ratio <= 0x7fffff)
- stats->ratio <<= 8;
- else
- out >>= 8;
- if (out != 0)
- stats->ratio /= out;
-}
-
-/*
- * Reset state, as on a CCP ResetReq.
- */
-static void
-bsd_reset(state)
- void *state;
-{
- struct bsd_db *db = (struct bsd_db *) state;
-
- db->seqno = 0;
- bsd_clear(db);
- db->clear_count = 0;
-}
-
-/*
- * Allocate space for a (de) compressor.
- */
-static void *
-bsd_alloc(options, opt_len, decomp)
- u_char *options;
- int opt_len, decomp;
-{
- int bits;
- u_int newlen, hsize, hshift, maxmaxcode;
- struct bsd_db *db;
-
- if (opt_len != 3 || options[0] != CI_BSD_COMPRESS || options[1] != 3
- || BSD_VERSION(options[2]) != BSD_CURRENT_VERSION)
- return NULL;
-
- bits = BSD_NBITS(options[2]);
- switch (bits) {
- case 9: /* needs 82152 for both directions */
- case 10: /* needs 84144 */
- case 11: /* needs 88240 */
- case 12: /* needs 96432 */
- hsize = 5003;
- hshift = 4;
- break;
- case 13: /* needs 176784 */
- hsize = 9001;
- hshift = 5;
- break;
- case 14: /* needs 353744 */
- hsize = 18013;
- hshift = 6;
- break;
- case 15: /* needs 691440 */
- hsize = 35023;
- hshift = 7;
- break;
- case 16: /* needs 1366160--far too much, */
- /* hsize = 69001; */ /* and 69001 is too big for cptr */
- /* hshift = 8; */ /* in struct bsd_db */
- /* break; */
- default:
- return NULL;
- }
-
- maxmaxcode = MAXCODE(bits);
- newlen = sizeof(*db) + (hsize-1) * (sizeof(db->dict[0]));
- db = (struct bsd_db *) malloc(newlen);
- if (!db)
- return NULL;
- memset(db, 0, sizeof(*db) - sizeof(db->dict));
-
- if (!decomp) {
- db->lens = NULL;
- } else {
- db->lens = (u_short *) malloc((maxmaxcode+1) * sizeof(db->lens[0]));
- if (!db->lens) {
- free(db);
- return NULL;
- }
- }
-
- db->totlen = newlen;
- db->hsize = hsize;
- db->hshift = hshift;
- db->maxmaxcode = maxmaxcode;
- db->maxbits = bits;
-
- return (void *) db;
-}
-
-static void
-bsd_free(state)
- void *state;
-{
- struct bsd_db *db = (struct bsd_db *) state;
-
- if (db->lens)
- free(db->lens);
- free(db);
-}
-
-static void *
-bsd_decomp_alloc(options, opt_len)
- u_char *options;
- int opt_len;
-{
- return bsd_alloc(options, opt_len, 1);
-}
-
-/*
- * Initialize the database.
- */
-static int
-bsd_init(db, options, opt_len, unit, hdrlen, mru, debug, decomp)
- struct bsd_db *db;
- u_char *options;
- int opt_len, unit, hdrlen, mru, debug, decomp;
-{
- int i;
-
- if (opt_len < CILEN_BSD_COMPRESS
- || options[0] != CI_BSD_COMPRESS || options[1] != CILEN_BSD_COMPRESS
- || BSD_VERSION(options[2]) != BSD_CURRENT_VERSION
- || BSD_NBITS(options[2]) != db->maxbits
- || decomp && db->lens == NULL)
- return 0;
-
- if (decomp) {
- i = LAST+1;
- while (i != 0)
- db->lens[--i] = 1;
- }
- i = db->hsize;
- while (i != 0) {
- db->dict[--i].codem1 = BADCODEM1;
- db->dict[i].cptr = 0;
- }
-
- db->unit = unit;
- db->hdrlen = hdrlen;
- db->mru = mru;
- if (debug)
- db->debug = 1;
-
- bsd_reset(db);
-
- return 1;
-}
-
-static int
-bsd_decomp_init(state, options, opt_len, unit, hdrlen, mru, debug)
- void *state;
- u_char *options;
- int opt_len, unit, hdrlen, mru, debug;
-{
- return bsd_init((struct bsd_db *) state, options, opt_len,
- unit, hdrlen, mru, debug, 1);
-}
-
-
-/*
- * Update the "BSD Compress" dictionary on the receiver for
- * incompressible data by pretending to compress the incoming data.
- */
-static void
-bsd_incomp(state, dmsg, mlen)
- void *state;
- u_char *dmsg;
- int mlen;
-{
- struct bsd_db *db = (struct bsd_db *) state;
- u_int hshift = db->hshift;
- u_int max_ent = db->max_ent;
- u_int n_bits = db->n_bits;
- struct bsd_dict *dictp;
- u_int32_t fcode;
- u_char c;
- long hval, disp;
- int slen, ilen;
- u_int bitno = 7;
- u_char *rptr;
- u_int ent;
-
- rptr = dmsg;
- ent = rptr[0]; /* get the protocol */
- if (ent == 0) {
- ++rptr;
- --mlen;
- ent = rptr[0];
- }
- if ((ent & 1) == 0 || ent < 0x21 || ent > 0xf9)
- return;
-
- db->seqno++;
- ilen = 1; /* count the protocol as 1 byte */
- ++rptr;
- slen = dmsg + mlen - rptr;
- ilen += slen;
- for (; slen > 0; --slen) {
- c = *rptr++;
- fcode = BSD_KEY(ent, c);
- hval = BSD_HASH(ent, c, hshift);
- dictp = &db->dict[hval];
-
- /* validate and then check the entry */
- if (dictp->codem1 >= max_ent)
- goto nomatch;
- if (dictp->f.fcode == fcode) {
- ent = dictp->codem1+1;
- continue; /* found (prefix,suffix) */
- }
-
- /* continue probing until a match or invalid entry */
- disp = (hval == 0) ? 1 : hval;
- do {
- hval += disp;
- if (hval >= db->hsize)
- hval -= db->hsize;
- dictp = &db->dict[hval];
- if (dictp->codem1 >= max_ent)
- goto nomatch;
- } while (dictp->f.fcode != fcode);
- ent = dictp->codem1+1;
- continue; /* finally found (prefix,suffix) */
-
- nomatch: /* output (count) the prefix */
- bitno += n_bits;
-
- /* code -> hashtable */
- if (max_ent < db->maxmaxcode) {
- struct bsd_dict *dictp2;
- /* expand code size if needed */
- if (max_ent >= MAXCODE(n_bits))
- db->n_bits = ++n_bits;
-
- /* Invalidate previous hash table entry
- * assigned this code, and then take it over.
- */
- dictp2 = &db->dict[max_ent+1];
- if (db->dict[dictp2->cptr].codem1 == max_ent)
- db->dict[dictp2->cptr].codem1 = BADCODEM1;
- dictp2->cptr = hval;
- dictp->codem1 = max_ent;
- dictp->f.fcode = fcode;
-
- db->max_ent = ++max_ent;
- db->lens[max_ent] = db->lens[ent]+1;
- }
- ent = c;
- }
- bitno += n_bits; /* output (count) the last code */
- db->bytes_out += bitno/8;
- db->in_count += ilen;
- (void)bsd_check(db);
-
- ++db->incomp_count;
- db->incomp_bytes += ilen;
- ++db->uncomp_count;
- db->uncomp_bytes += ilen;
-
- /* Increase code size if we would have without the packet
- * boundary and as the decompressor will.
- */
- if (max_ent >= MAXCODE(n_bits) && max_ent < db->maxmaxcode)
- db->n_bits++;
-}
-
-
-/*
- * Decompress "BSD Compress"
- *
- * Because of patent problems, we return DECOMP_ERROR for errors
- * found by inspecting the input data and for system problems, but
- * DECOMP_FATALERROR for any errors which could possibly be said to
- * be being detected "after" decompression. For DECOMP_ERROR,
- * we can issue a CCP reset-request; for DECOMP_FATALERROR, we may be
- * infringing a patent of Motorola's if we do, so we take CCP down
- * instead.
- *
- * Given that the frame has the correct sequence number and a good FCS,
- * errors such as invalid codes in the input most likely indicate a
- * bug, so we return DECOMP_FATALERROR for them in order to turn off
- * compression, even though they are detected by inspecting the input.
- */
-static int
-bsd_decompress(state, cmsg, inlen, dmp, outlenp)
- void *state;
- u_char *cmsg, *dmp;
- int inlen, *outlenp;
-{
- struct bsd_db *db = (struct bsd_db *) state;
- u_int max_ent = db->max_ent;
- u_int32_t accm = 0;
- u_int bitno = 32; /* 1st valid bit in accm */
- u_int n_bits = db->n_bits;
- u_int tgtbitno = 32-n_bits; /* bitno when we have a code */
- struct bsd_dict *dictp;
- int explen, i, seq, len;
- u_int incode, oldcode, finchar;
- u_char *p, *rptr, *wptr;
- int ilen;
- int dlen, space, codelen, extra;
-
- rptr = cmsg;
- if (*rptr == 0)
- ++rptr;
- ++rptr; /* skip protocol (assumed 0xfd) */
- seq = (rptr[0] << 8) + rptr[1];
- rptr += BSD_OVHD;
- ilen = len = cmsg + inlen - rptr;
-
- /*
- * Check the sequence number and give up if it is not what we expect.
- */
- if (seq != db->seqno++) {
- if (db->debug)
- printf("bsd_decomp%d: bad sequence # %d, expected %d\n",
- db->unit, seq, db->seqno - 1);
- return DECOMP_ERROR;
- }
-
- wptr = dmp + db->hdrlen;
-
- oldcode = CLEAR;
- explen = 0;
- while (len > 0) {
- /*
- * Accumulate bytes until we have a complete code.
- * Then get the next code, relying on the 32-bit,
- * unsigned accm to mask the result.
- */
- bitno -= 8;
- accm |= *rptr++ << bitno;
- --len;
- if (tgtbitno < bitno)
- continue;
- incode = accm >> tgtbitno;
- accm <<= n_bits;
- bitno += n_bits;
-
- if (incode == CLEAR) {
- /*
- * The dictionary must only be cleared at
- * the end of a packet. But there could be an
- * empty message block at the end.
- */
- if (len > 0) {
- if (db->debug)
- printf("bsd_decomp%d: bad CLEAR\n", db->unit);
- return DECOMP_FATALERROR;
- }
- bsd_clear(db);
- explen = ilen = 0;
- break;
- }
-
- if (incode > max_ent + 2 || incode > db->maxmaxcode
- || incode > max_ent && oldcode == CLEAR) {
- if (db->debug) {
- printf("bsd_decomp%d: bad code 0x%x oldcode=0x%x ",
- db->unit, incode, oldcode);
- printf("max_ent=0x%x dlen=%d seqno=%d\n",
- max_ent, dlen, db->seqno);
- }
- return DECOMP_FATALERROR; /* probably a bug */
- }
-
- /* Special case for KwKwK string. */
- if (incode > max_ent) {
- finchar = oldcode;
- extra = 1;
- } else {
- finchar = incode;
- extra = 0;
- }
-
- codelen = db->lens[finchar];
- explen += codelen + extra;
- if (explen > db->mru + 1) {
- if (db->debug)
- printf("bsd_decomp%d: ran out of mru\n", db->unit);
- return DECOMP_FATALERROR;
- }
-
- /*
- * Decode this code and install it in the decompressed buffer.
- */
- p = (wptr += codelen);
- while (finchar > LAST) {
- dictp = &db->dict[db->dict[finchar].cptr];
-#ifdef DEBUG
- --codelen;
- if (codelen <= 0) {
- printf("bsd_decomp%d: fell off end of chain ", db->unit);
- printf("0x%x at 0x%x by 0x%x, max_ent=0x%x\n",
- incode, finchar, db->dict[finchar].cptr, max_ent);
- return DECOMP_FATALERROR;
- }
- if (dictp->codem1 != finchar-1) {
- printf("bsd_decomp%d: bad code chain 0x%x finchar=0x%x ",
- db->unit, incode, finchar);
- printf("oldcode=0x%x cptr=0x%x codem1=0x%x\n", oldcode,
- db->dict[finchar].cptr, dictp->codem1);
- return DECOMP_FATALERROR;
- }
-#endif
- *--p = dictp->f.hs.suffix;
- finchar = dictp->f.hs.prefix;
- }
- *--p = finchar;
-
-#ifdef DEBUG
- if (--codelen != 0)
- printf("bsd_decomp%d: short by %d after code 0x%x, max_ent=0x%x\n",
- db->unit, codelen, incode, max_ent);
-#endif
-
- if (extra) /* the KwKwK case again */
- *wptr++ = finchar;
-
- /*
- * If not first code in a packet, and
- * if not out of code space, then allocate a new code.
- *
- * Keep the hash table correct so it can be used
- * with uncompressed packets.
- */
- if (oldcode != CLEAR && max_ent < db->maxmaxcode) {
- struct bsd_dict *dictp2;
- u_int32_t fcode;
- int hval, disp;
-
- fcode = BSD_KEY(oldcode,finchar);
- hval = BSD_HASH(oldcode,finchar,db->hshift);
- dictp = &db->dict[hval];
-
- /* look for a free hash table entry */
- if (dictp->codem1 < max_ent) {
- disp = (hval == 0) ? 1 : hval;
- do {
- hval += disp;
- if (hval >= db->hsize)
- hval -= db->hsize;
- dictp = &db->dict[hval];
- } while (dictp->codem1 < max_ent);
- }
-
- /*
- * Invalidate previous hash table entry
- * assigned this code, and then take it over
- */
- dictp2 = &db->dict[max_ent+1];
- if (db->dict[dictp2->cptr].codem1 == max_ent) {
- db->dict[dictp2->cptr].codem1 = BADCODEM1;
- }
- dictp2->cptr = hval;
- dictp->codem1 = max_ent;
- dictp->f.fcode = fcode;
-
- db->max_ent = ++max_ent;
- db->lens[max_ent] = db->lens[oldcode]+1;
-
- /* Expand code size if needed. */
- if (max_ent >= MAXCODE(n_bits) && max_ent < db->maxmaxcode) {
- db->n_bits = ++n_bits;
- tgtbitno = 32-n_bits;
- }
- }
- oldcode = incode;
- }
- *outlenp = wptr - (dmp + db->hdrlen);
-
- /*
- * Keep the checkpoint right so that incompressible packets
- * clear the dictionary at the right times.
- */
- db->bytes_out += ilen;
- db->in_count += explen;
- if (bsd_check(db) && db->debug) {
- printf("bsd_decomp%d: peer should have cleared dictionary\n",
- db->unit);
- }
-
- ++db->comp_count;
- db->comp_bytes += ilen + BSD_OVHD;
- ++db->uncomp_count;
- db->uncomp_bytes += explen;
-
- return DECOMP_OK;
-}
-#endif /* DO_BSD_COMPRESS */
diff --git a/mdk-stage1/ppp/pppdump/deflate.c b/mdk-stage1/ppp/pppdump/deflate.c
deleted file mode 100644
index 08e8abc0d..000000000
--- a/mdk-stage1/ppp/pppdump/deflate.c
+++ /dev/null
@@ -1,344 +0,0 @@
-/*
- * ppp_deflate.c - interface the zlib procedures for Deflate compression
- * and decompression (as used by gzip) to the PPP code.
- *
- * Copyright (c) 1994 The Australian National University.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies. This software is provided without any
- * warranty, express or implied. The Australian National University
- * makes no representations about the suitability of this software for
- * any purpose.
- *
- * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
- * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
- * THE AUSTRALIAN NATIONAL UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
- * OR MODIFICATIONS.
- *
- * $Id$
- */
-
-#include <sys/types.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include "ppp_defs.h"
-#include "ppp-comp.h"
-#include "zlib.h"
-
-#if DO_DEFLATE
-
-#define DEFLATE_DEBUG 1
-
-/*
- * State for a Deflate (de)compressor.
- */
-struct deflate_state {
- int seqno;
- int w_size;
- int unit;
- int hdrlen;
- int mru;
- int debug;
- z_stream strm;
- struct compstat stats;
-};
-
-#define DEFLATE_OVHD 2 /* Deflate overhead/packet */
-
-static void *z_alloc __P((void *, u_int items, u_int size));
-static void z_free __P((void *, void *ptr, u_int nb));
-static void *z_decomp_alloc __P((u_char *options, int opt_len));
-static void z_decomp_free __P((void *state));
-static int z_decomp_init __P((void *state, u_char *options, int opt_len,
- int unit, int hdrlen, int mru, int debug));
-static void z_incomp __P((void *state, u_char *dmsg, int len));
-static int z_decompress __P((void *state, u_char *cmp, int inlen,
- u_char *dmp, int *outlenp));
-static void z_decomp_reset __P((void *state));
-static void z_comp_stats __P((void *state, struct compstat *stats));
-
-/*
- * Procedures exported to if_ppp.c.
- */
-struct compressor ppp_deflate = {
- CI_DEFLATE, /* compress_proto */
- z_decomp_alloc, /* decomp_alloc */
- z_decomp_free, /* decomp_free */
- z_decomp_init, /* decomp_init */
- z_decomp_reset, /* decomp_reset */
- z_decompress, /* decompress */
- z_incomp, /* incomp */
- z_comp_stats, /* decomp_stat */
-};
-
-/*
- * Space allocation and freeing routines for use by zlib routines.
- */
-static void *
-z_alloc(notused, items, size)
- void *notused;
- u_int items, size;
-{
- return malloc(items * size);
-}
-
-static void
-z_free(notused, ptr, nbytes)
- void *notused;
- void *ptr;
- u_int nbytes;
-{
- free(ptr);
-}
-
-static void
-z_comp_stats(arg, stats)
- void *arg;
- struct compstat *stats;
-{
- struct deflate_state *state = (struct deflate_state *) arg;
- u_int out;
-
- *stats = state->stats;
- stats->ratio = stats->unc_bytes;
- out = stats->comp_bytes + stats->unc_bytes;
- if (stats->ratio <= 0x7ffffff)
- stats->ratio <<= 8;
- else
- out >>= 8;
- if (out != 0)
- stats->ratio /= out;
-}
-
-/*
- * Allocate space for a decompressor.
- */
-static void *
-z_decomp_alloc(options, opt_len)
- u_char *options;
- int opt_len;
-{
- struct deflate_state *state;
- int w_size;
-
- if (opt_len != CILEN_DEFLATE || options[0] != CI_DEFLATE
- || options[1] != CILEN_DEFLATE
- || DEFLATE_METHOD(options[2]) != DEFLATE_METHOD_VAL
- || options[3] != DEFLATE_CHK_SEQUENCE)
- return NULL;
- w_size = DEFLATE_SIZE(options[2]);
- if (w_size < DEFLATE_MIN_SIZE || w_size > DEFLATE_MAX_SIZE)
- return NULL;
-
- state = (struct deflate_state *) malloc(sizeof(*state));
- if (state == NULL)
- return NULL;
-
- state->strm.next_out = NULL;
- state->strm.zalloc = (alloc_func) z_alloc;
- state->strm.zfree = (free_func) z_free;
- if (inflateInit2(&state->strm, -w_size) != Z_OK) {
- free(state);
- return NULL;
- }
-
- state->w_size = w_size;
- memset(&state->stats, 0, sizeof(state->stats));
- return (void *) state;
-}
-
-static void
-z_decomp_free(arg)
- void *arg;
-{
- struct deflate_state *state = (struct deflate_state *) arg;
-
- inflateEnd(&state->strm);
- free(state);
-}
-
-static int
-z_decomp_init(arg, options, opt_len, unit, hdrlen, mru, debug)
- void *arg;
- u_char *options;
- int opt_len, unit, hdrlen, mru, debug;
-{
- struct deflate_state *state = (struct deflate_state *) arg;
-
- if (opt_len < CILEN_DEFLATE || options[0] != CI_DEFLATE
- || options[1] != CILEN_DEFLATE
- || DEFLATE_METHOD(options[2]) != DEFLATE_METHOD_VAL
- || DEFLATE_SIZE(options[2]) != state->w_size
- || options[3] != DEFLATE_CHK_SEQUENCE)
- return 0;
-
- state->seqno = 0;
- state->unit = unit;
- state->hdrlen = hdrlen;
- state->debug = debug;
- state->mru = mru;
-
- inflateReset(&state->strm);
-
- return 1;
-}
-
-static void
-z_decomp_reset(arg)
- void *arg;
-{
- struct deflate_state *state = (struct deflate_state *) arg;
-
- state->seqno = 0;
- inflateReset(&state->strm);
-}
-
-/*
- * Decompress a Deflate-compressed packet.
- *
- * Because of patent problems, we return DECOMP_ERROR for errors
- * found by inspecting the input data and for system problems, but
- * DECOMP_FATALERROR for any errors which could possibly be said to
- * be being detected "after" decompression. For DECOMP_ERROR,
- * we can issue a CCP reset-request; for DECOMP_FATALERROR, we may be
- * infringing a patent of Motorola's if we do, so we take CCP down
- * instead.
- *
- * Given that the frame has the correct sequence number and a good FCS,
- * errors such as invalid codes in the input most likely indicate a
- * bug, so we return DECOMP_FATALERROR for them in order to turn off
- * compression, even though they are detected by inspecting the input.
- */
-static int
-z_decompress(arg, mi, inlen, mo, outlenp)
- void *arg;
- u_char *mi, *mo;
- int inlen, *outlenp;
-{
- struct deflate_state *state = (struct deflate_state *) arg;
- u_char *rptr, *wptr;
- int rlen, olen, ospace;
- int seq, i, flush, r, decode_proto;
-
- rptr = mi;
- if (*rptr == 0)
- ++rptr;
- ++rptr;
-
- /* Check the sequence number. */
- seq = (rptr[0] << 8) + rptr[1];
- rptr += 2;
- if (seq != state->seqno) {
-#if !DEFLATE_DEBUG
- if (state->debug)
-#endif
- printf("z_decompress%d: bad seq # %d, expected %d\n",
- state->unit, seq, state->seqno);
- return DECOMP_ERROR;
- }
- ++state->seqno;
-
- /*
- * Set up to call inflate.
- */
- wptr = mo;
- state->strm.next_in = rptr;
- state->strm.avail_in = mi + inlen - rptr;
- rlen = state->strm.avail_in + PPP_HDRLEN + DEFLATE_OVHD;
- state->strm.next_out = wptr;
- state->strm.avail_out = state->mru + 2;
-
- r = inflate(&state->strm, Z_PACKET_FLUSH);
- if (r != Z_OK) {
-#if !DEFLATE_DEBUG
- if (state->debug)
-#endif
- printf("z_decompress%d: inflate returned %d (%s)\n",
- state->unit, r, (state->strm.msg? state->strm.msg: ""));
- return DECOMP_FATALERROR;
- }
- olen = state->mru + 2 - state->strm.avail_out;
- *outlenp = olen;
-
- if ((wptr[0] & 1) != 0)
- ++olen; /* for suppressed protocol high byte */
- olen += 2; /* for address, control */
-
-#if DEFLATE_DEBUG
- if (olen > state->mru + PPP_HDRLEN)
- printf("ppp_deflate%d: exceeded mru (%d > %d)\n",
- state->unit, olen, state->mru + PPP_HDRLEN);
-#endif
-
- state->stats.unc_bytes += olen;
- state->stats.unc_packets++;
- state->stats.comp_bytes += rlen;
- state->stats.comp_packets++;
-
- return DECOMP_OK;
-}
-
-/*
- * Incompressible data has arrived - add it to the history.
- */
-static void
-z_incomp(arg, mi, mlen)
- void *arg;
- u_char *mi;
- int mlen;
-{
- struct deflate_state *state = (struct deflate_state *) arg;
- u_char *rptr;
- int rlen, proto, r;
-
- /*
- * Check that the protocol is one we handle.
- */
- rptr = mi;
- proto = rptr[0];
- if ((proto & 1) == 0)
- proto = (proto << 8) + rptr[1];
- if (proto > 0x3fff || proto == 0xfd || proto == 0xfb)
- return;
-
- ++state->seqno;
-
- if (rptr[0] == 0)
- ++rptr;
- rlen = mi + mlen - rptr;
- state->strm.next_in = rptr;
- state->strm.avail_in = rlen;
- r = inflateIncomp(&state->strm);
- if (r != Z_OK) {
- /* gak! */
-#if !DEFLATE_DEBUG
- if (state->debug)
-#endif
- printf("z_incomp%d: inflateIncomp returned %d (%s)\n",
- state->unit, r, (state->strm.msg? state->strm.msg: ""));
- return;
- }
-
- /*
- * Update stats.
- */
- if (proto <= 0xff)
- ++rlen;
- rlen += 2;
- state->stats.inc_bytes += rlen;
- state->stats.inc_packets++;
- state->stats.unc_bytes += rlen;
- state->stats.unc_packets++;
-}
-
-#endif /* DO_DEFLATE */
diff --git a/mdk-stage1/ppp/pppdump/ppp-comp.h b/mdk-stage1/ppp/pppdump/ppp-comp.h
deleted file mode 100644
index 9221c0db4..000000000
--- a/mdk-stage1/ppp/pppdump/ppp-comp.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * ppp-comp.h - Definitions for doing PPP packet compression.
- *
- * Copyright (c) 1994 The Australian National University.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies. This software is provided without any
- * warranty, express or implied. The Australian National University
- * makes no representations about the suitability of this software for
- * any purpose.
- *
- * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
- * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
- * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
- * OR MODIFICATIONS.
- *
- * $Id$
- */
-
-#ifndef _NET_PPP_COMP_H
-#define _NET_PPP_COMP_H
-
-/*
- * The following symbols control whether we include code for
- * various compression methods.
- */
-#ifndef DO_BSD_COMPRESS
-#define DO_BSD_COMPRESS 1 /* by default, include BSD-Compress */
-#endif
-#ifndef DO_DEFLATE
-#define DO_DEFLATE 1 /* by default, include Deflate */
-#endif
-#define DO_PREDICTOR_1 0
-#define DO_PREDICTOR_2 0
-
-/*
- * Structure giving methods for compression/decompression.
- */
-struct compressor {
- int compress_proto; /* CCP compression protocol number */
-
- /* Allocate space for a decompressor (receive side) */
- void *(*decomp_alloc) __P((u_char *options, int opt_len));
- /* Free space used by a decompressor */
- void (*decomp_free) __P((void *state));
- /* Initialize a decompressor */
- int (*decomp_init) __P((void *state, u_char *options, int opt_len,
- int unit, int hdrlen, int mru, int debug));
- /* Reset a decompressor */
- void (*decomp_reset) __P((void *state));
- /* Decompress a packet. */
- int (*decompress) __P((void *state, u_char *mp, int inlen,
- u_char *dmp, int *outlen));
- /* Update state for an incompressible packet received */
- void (*incomp) __P((void *state, u_char *mp, int len));
- /* Return decompression statistics */
- void (*decomp_stat) __P((void *state, struct compstat *stats));
-};
-
-/*
- * Return values for decompress routine.
- * We need to make these distinctions so that we can disable certain
- * useful functionality, namely sending a CCP reset-request as a result
- * of an error detected after decompression. This is to avoid infringing
- * a patent held by Motorola.
- * Don't you just lurve software patents.
- */
-#define DECOMP_OK 0 /* everything went OK */
-#define DECOMP_ERROR 1 /* error detected before decomp. */
-#define DECOMP_FATALERROR 2 /* error detected after decomp. */
-
-/*
- * CCP codes.
- */
-#define CCP_CONFREQ 1
-#define CCP_CONFACK 2
-#define CCP_CONFNAK 3
-#define CCP_CONFREJ 4
-#define CCP_TERMREQ 5
-#define CCP_TERMACK 6
-#define CCP_RESETREQ 14
-#define CCP_RESETACK 15
-
-/*
- * Max # bytes for a CCP option
- */
-#define CCP_MAX_OPTION_LENGTH 32
-
-/*
- * Parts of a CCP packet.
- */
-#define CCP_CODE(dp) ((dp)[0])
-#define CCP_ID(dp) ((dp)[1])
-#define CCP_LENGTH(dp) (((dp)[2] << 8) + (dp)[3])
-#define CCP_HDRLEN 4
-
-#define CCP_OPT_CODE(dp) ((dp)[0])
-#define CCP_OPT_LENGTH(dp) ((dp)[1])
-#define CCP_OPT_MINLEN 2
-
-/*
- * Definitions for BSD-Compress.
- */
-#define CI_BSD_COMPRESS 21 /* config. option for BSD-Compress */
-#define CILEN_BSD_COMPRESS 3 /* length of config. option */
-
-/* Macros for handling the 3rd byte of the BSD-Compress config option. */
-#define BSD_NBITS(x) ((x) & 0x1F) /* number of bits requested */
-#define BSD_VERSION(x) ((x) >> 5) /* version of option format */
-#define BSD_CURRENT_VERSION 1 /* current version number */
-#define BSD_MAKE_OPT(v, n) (((v) << 5) | (n))
-
-#define BSD_MIN_BITS 9 /* smallest code size supported */
-#define BSD_MAX_BITS 15 /* largest code size supported */
-
-/*
- * Definitions for Deflate.
- */
-#define CI_DEFLATE 26 /* config option for Deflate */
-#define CI_DEFLATE_DRAFT 24 /* value used in original draft RFC */
-#define CILEN_DEFLATE 4 /* length of its config option */
-
-#define DEFLATE_MIN_SIZE 8
-#define DEFLATE_MAX_SIZE 15
-#define DEFLATE_METHOD_VAL 8
-#define DEFLATE_SIZE(x) (((x) >> 4) + DEFLATE_MIN_SIZE)
-#define DEFLATE_METHOD(x) ((x) & 0x0F)
-#define DEFLATE_MAKE_OPT(w) ((((w) - DEFLATE_MIN_SIZE) << 4) \
- + DEFLATE_METHOD_VAL)
-#define DEFLATE_CHK_SEQUENCE 0
-
-/*
- * Definitions for other, as yet unsupported, compression methods.
- */
-#define CI_PREDICTOR_1 1 /* config option for Predictor-1 */
-#define CILEN_PREDICTOR_1 2 /* length of its config option */
-#define CI_PREDICTOR_2 2 /* config option for Predictor-2 */
-#define CILEN_PREDICTOR_2 2 /* length of its config option */
-
-#endif /* _NET_PPP_COMP_H */
diff --git a/mdk-stage1/ppp/pppdump/pppdump.8 b/mdk-stage1/ppp/pppdump/pppdump.8
deleted file mode 100644
index c0172f519..000000000
--- a/mdk-stage1/ppp/pppdump/pppdump.8
+++ /dev/null
@@ -1,62 +0,0 @@
-.\" @(#) $Id$
-.TH PPPDUMP 8 "1 April 1999"
-.SH NAME
-pppdump \- convert PPP record file to readable format
-.SH SYNOPSIS
-.B pppdump
-[
-.B -h
-|
-.B -p
-[
-.B -d
-]] [
-.B -r
-] [
-.B -m \fImru
-] [
-.I file \fR...
-]
-.ti 12
-.SH DESCRIPTION
-The
-.B pppdump
-utility converts the files written using the \fIrecord\fR option of
-.B pppd
-into a human-readable format. If one or more filenames are specified,
-.B pppdump
-will read each in turn; otherwise it will read its standard input. In
-each case the result is written to standard output.
-.PP
-The options are as follows:
-.TP
-.B -h
-Prints the bytes sent and received in hexadecimal. If neither this
-option nor the \fB-p\fR option is specified, the bytes are printed as
-the characters themselves, with non-printing and non-ASCII characters
-printed as escape sequences.
-.TP
-.B -p
-Collects the bytes sent and received into PPP packets, interpreting
-the async HDLC framing and escape characters and checking the FCS
-(frame check sequence) of each packet. The packets are printed as hex
-values and as characters (non-printable characters are printed as
-`.').
-.TP
-.B -d
-With the \fB-p\fR option, this option causes
-.B pppdump
-to decompress packets which have been compressed with the BSD-Compress
-or Deflate methods.
-.TP
-.B -r
-Reverses the direction indicators, so that `sent' is printed for
-bytes or packets received, and `rcvd' is printed for bytes or packets
-sent.
-.TP
-.B -m \fImru
-Use \fImru\fR as the MRU (maximum receive unit) for both directions of
-the link when checking for over-length PPP packets (with the \fB-p\fR
-option).
-.SH SEE ALSO
-pppd(8)
diff --git a/mdk-stage1/ppp/pppdump/pppdump.c b/mdk-stage1/ppp/pppdump/pppdump.c
deleted file mode 100644
index a8e69d4bf..000000000
--- a/mdk-stage1/ppp/pppdump/pppdump.c
+++ /dev/null
@@ -1,502 +0,0 @@
-/*
- * pppdump - print out the contents of a record file generated by
- * pppd in readable form.
- *
- * Copyright (C) 1999 Paul Mackerras. All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms. The name of the author
- * may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-#include <stdio.h>
-#include <unistd.h>
-#include <time.h>
-#include <sys/types.h>
-#include "ppp_defs.h"
-#include "ppp-comp.h"
-
-int hexmode;
-int pppmode;
-int reverse;
-int decompress;
-int mru = 1500;
-int abs_times;
-time_t start_time;
-int start_time_tenths;
-int tot_sent, tot_rcvd;
-
-extern int optind;
-extern char *optarg;
-
-main(ac, av)
- int ac;
- char **av;
-{
- int i;
- char *p;
- FILE *f;
-
- while ((i = getopt(ac, av, "hprdm:a")) != -1) {
- switch (i) {
- case 'h':
- hexmode = 1;
- break;
- case 'p':
- pppmode = 1;
- break;
- case 'r':
- reverse = 1;
- break;
- case 'd':
- decompress = 1;
- break;
- case 'm':
- mru = atoi(optarg);
- break;
- case 'a':
- abs_times = 1;
- break;
- default:
- fprintf(stderr, "Usage: %s [-h | -p[d]] [-r] [-m mru] [-a] [file ...]\n", av[0]);
- exit(1);
- }
- }
- if (optind >= ac)
- dumplog(stdin);
- else {
- for (i = optind; i < ac; ++i) {
- p = av[i];
- if ((f = fopen(p, "r")) == NULL) {
- perror(p);
- exit(1);
- }
- if (pppmode)
- dumpppp(f);
- else
- dumplog(f);
- fclose(f);
- }
- }
- exit(0);
-}
-
-dumplog(f)
- FILE *f;
-{
- int c, n, k, col;
- int nb, c2;
- unsigned char buf[16];
-
- while ((c = getc(f)) != EOF) {
- switch (c) {
- case 1:
- case 2:
- if (reverse)
- c = 3 - c;
- printf("%s %c", c==1? "sent": "rcvd", hexmode? ' ': '"');
- col = 6;
- n = getc(f);
- n = (n << 8) + getc(f);
- *(c==1? &tot_sent: &tot_rcvd) += n;
- nb = 0;
- for (; n > 0; --n) {
- c = getc(f);
- if (c == EOF) {
- printf("\nEOF\n");
- exit(0);
- }
- if (hexmode) {
- if (nb >= 16) {
- printf(" ");
- for (k = 0; k < nb; ++k) {
- c2 = buf[k];
- putchar((' ' <= c2 && c2 <= '~')? c2: '.');
- }
- printf("\n ");
- nb = 0;
- }
- buf[nb++] = c;
- printf(" %.2x", c);
- } else {
- k = (' ' <= c && c <= '~')? (c != '\\' && c != '"')? 1: 2: 3;
- if ((col += k) >= 78) {
- printf("\n ");
- col = 6 + k;
- }
- switch (k) {
- case 1:
- putchar(c);
- break;
- case 2:
- printf("\\%c", c);
- break;
- case 3:
- printf("\\%.2x", c);
- break;
- }
- }
- }
- if (hexmode) {
- for (k = nb; k < 16; ++k)
- printf(" ");
- printf(" ");
- for (k = 0; k < nb; ++k) {
- c2 = buf[k];
- putchar((' ' <= c2 && c2 <= '~')? c2: '.');
- }
- } else
- putchar('"');
- printf("\n");
- break;
- case 3:
- case 4:
- printf("end %s\n", c==3? "send": "recv");
- break;
- case 5:
- case 6:
- case 7:
- show_time(f, c);
- break;
- default:
- printf("?%.2x\n");
- }
- }
-}
-
-/*
- * FCS lookup table as calculated by genfcstab.
- */
-static u_short fcstab[256] = {
- 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf,
- 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7,
- 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e,
- 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876,
- 0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd,
- 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5,
- 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c,
- 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974,
- 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb,
- 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3,
- 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a,
- 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72,
- 0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9,
- 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1,
- 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738,
- 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70,
- 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7,
- 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff,
- 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036,
- 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e,
- 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5,
- 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd,
- 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134,
- 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c,
- 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3,
- 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb,
- 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232,
- 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a,
- 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1,
- 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9,
- 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330,
- 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78
-};
-
-struct pkt {
- int cnt;
- int esc;
- int flags;
- struct compressor *comp;
- void *state;
- unsigned char buf[8192];
-} spkt, rpkt;
-
-/* Values for flags */
-#define CCP_ISUP 1
-#define CCP_ERROR 2
-#define CCP_FATALERROR 4
-#define CCP_ERR (CCP_ERROR | CCP_FATALERROR)
-#define CCP_DECOMP_RUN 8
-
-unsigned char dbuf[8192];
-
-dumpppp(f)
- FILE *f;
-{
- int c, n, k;
- int nb, nl, dn, proto, rv;
- char *dir, *q;
- unsigned char *p, *r, *endp;
- unsigned char *d;
- unsigned short fcs;
- struct pkt *pkt;
-
- spkt.cnt = rpkt.cnt = 0;
- spkt.esc = rpkt.esc = 0;
- while ((c = getc(f)) != EOF) {
- switch (c) {
- case 1:
- case 2:
- if (reverse)
- c = 3 - c;
- dir = c==1? "sent": "rcvd";
- pkt = c==1? &spkt: &rpkt;
- n = getc(f);
- n = (n << 8) + getc(f);
- *(c==1? &tot_sent: &tot_rcvd) += n;
- for (; n > 0; --n) {
- c = getc(f);
- switch (c) {
- case EOF:
- printf("\nEOF\n");
- if (spkt.cnt > 0)
- printf("[%d bytes in incomplete send packet]\n",
- spkt.cnt);
- if (rpkt.cnt > 0)
- printf("[%d bytes in incomplete recv packet]\n",
- rpkt.cnt);
- exit(0);
- case '~':
- if (pkt->cnt > 0) {
- q = dir;
- if (pkt->esc) {
- printf("%s aborted packet:\n ", dir);
- q = " ";
- }
- nb = pkt->cnt;
- p = pkt->buf;
- pkt->cnt = 0;
- pkt->esc = 0;
- if (nb <= 2) {
- printf("%s short packet [%d bytes]:", q, nb);
- for (k = 0; k < nb; ++k)
- printf(" %.2x", p[k]);
- printf("\n");
- break;
- }
- fcs = PPP_INITFCS;
- for (k = 0; k < nb; ++k)
- fcs = PPP_FCS(fcs, p[k]);
- fcs &= 0xFFFF;
- nb -= 2;
- endp = p + nb;
- r = p;
- if (r[0] == 0xff && r[1] == 3)
- r += 2;
- if ((r[0] & 1) == 0)
- ++r;
- ++r;
- if (endp - r > mru)
- printf(" ERROR: length (%d) > MRU (%d)\n",
- endp - r, mru);
- if (decompress && fcs == PPP_GOODFCS) {
- /* See if this is a CCP or compressed packet */
- d = dbuf;
- r = p;
- if (r[0] == 0xff && r[1] == 3) {
- *d++ = *r++;
- *d++ = *r++;
- }
- proto = r[0];
- if ((proto & 1) == 0)
- proto = (proto << 8) + r[1];
- if (proto == PPP_CCP) {
- handle_ccp(pkt, r + 2, endp - r - 2);
- } else if (proto == PPP_COMP) {
- if ((pkt->flags & CCP_ISUP)
- && (pkt->flags & CCP_DECOMP_RUN)
- && pkt->state
- && (pkt->flags & CCP_ERR) == 0) {
- rv = pkt->comp->decompress(pkt->state, r,
- endp - r, d, &dn);
- switch (rv) {
- case DECOMP_OK:
- p = dbuf;
- nb = d + dn - p;
- if ((d[0] & 1) == 0)
- --dn;
- --dn;
- if (dn > mru)
- printf(" ERROR: decompressed length (%d) > MRU (%d)\n", dn, mru);
- break;
- case DECOMP_ERROR:
- printf(" DECOMPRESSION ERROR\n");
- pkt->flags |= CCP_ERROR;
- break;
- case DECOMP_FATALERROR:
- printf(" FATAL DECOMPRESSION ERROR\n");
- pkt->flags |= CCP_FATALERROR;
- break;
- }
- }
- } else if (pkt->state
- && (pkt->flags & CCP_DECOMP_RUN)) {
- pkt->comp->incomp(pkt->state, r, endp - r);
- }
- }
- do {
- nl = nb < 16? nb: 16;
- printf("%s ", q);
- for (k = 0; k < nl; ++k)
- printf(" %.2x", p[k]);
- for (; k < 16; ++k)
- printf(" ");
- printf(" ");
- for (k = 0; k < nl; ++k) {
- c = p[k];
- putchar((' ' <= c && c <= '~')? c: '.');
- }
- printf("\n");
- q = " ";
- p += nl;
- nb -= nl;
- } while (nb > 0);
- if (fcs != PPP_GOODFCS)
- printf(" BAD FCS: (residue = %x)\n", fcs);
- }
- break;
- case '}':
- if (!pkt->esc) {
- pkt->esc = 1;
- break;
- }
- /* else fall through */
- default:
- if (pkt->esc) {
- c ^= 0x20;
- pkt->esc = 0;
- }
- pkt->buf[pkt->cnt++] = c;
- break;
- }
- }
- break;
- case 3:
- case 4:
- if (reverse)
- c = 7 - c;
- dir = c==3? "send": "recv";
- pkt = c==3? &spkt: &rpkt;
- printf("end %s", dir);
- if (pkt->cnt > 0)
- printf(" [%d bytes in incomplete packet]", pkt->cnt);
- printf("\n");
- break;
- case 5:
- case 6:
- case 7:
- show_time(f, c);
- break;
- default:
- printf("?%.2x\n");
- }
- }
-}
-
-extern struct compressor ppp_bsd_compress, ppp_deflate;
-
-struct compressor *compressors[] = {
-#if DO_BSD_COMPRESS
- &ppp_bsd_compress,
-#endif
-#if DO_DEFLATE
- &ppp_deflate,
-#endif
- NULL
-};
-
-handle_ccp(cp, dp, len)
- struct pkt *cp;
- u_char *dp;
- int len;
-{
- int clen;
- struct compressor **comp;
-
- if (len < CCP_HDRLEN)
- return;
- clen = CCP_LENGTH(dp);
- if (clen > len)
- return;
-
- switch (CCP_CODE(dp)) {
- case CCP_CONFACK:
- cp->flags &= ~(CCP_DECOMP_RUN | CCP_ISUP);
- if (clen < CCP_HDRLEN + CCP_OPT_MINLEN
- || clen < CCP_HDRLEN + CCP_OPT_LENGTH(dp + CCP_HDRLEN))
- break;
- dp += CCP_HDRLEN;
- clen -= CCP_HDRLEN;
- for (comp = compressors; *comp != NULL; ++comp) {
- if ((*comp)->compress_proto == dp[0]) {
- if (cp->state != NULL) {
- (*cp->comp->decomp_free)(cp->state);
- cp->state = NULL;
- }
- cp->comp = *comp;
- cp->state = (*comp)->decomp_alloc(dp, CCP_OPT_LENGTH(dp));
- cp->flags |= CCP_ISUP;
- if (cp->state != NULL
- && (*cp->comp->decomp_init)
- (cp->state, dp, clen, 0, 0, 8192, 1))
- cp->flags = (cp->flags & ~CCP_ERR) | CCP_DECOMP_RUN;
- break;
- }
- }
- break;
-
- case CCP_CONFNAK:
- case CCP_CONFREJ:
- cp->flags &= ~(CCP_DECOMP_RUN | CCP_ISUP);
- break;
-
- case CCP_RESETACK:
- if (cp->flags & CCP_ISUP) {
- if (cp->state && (cp->flags & CCP_DECOMP_RUN)) {
- (*cp->comp->decomp_reset)(cp->state);
- cp->flags &= ~CCP_ERROR;
- }
- }
- break;
- }
-}
-
-show_time(f, c)
- FILE *f;
- int c;
-{
- time_t t;
- int n;
- struct tm *tm;
-
- if (c == 7) {
- t = getc(f);
- t = (t << 8) + getc(f);
- t = (t << 8) + getc(f);
- t = (t << 8) + getc(f);
- printf("start %s", ctime(&t));
- start_time = t;
- start_time_tenths = 0;
- tot_sent = tot_rcvd = 0;
- } else {
- n = getc(f);
- if (c == 5) {
- for (c = 3; c > 0; --c)
- n = (n << 8) + getc(f);
- }
- if (abs_times) {
- n += start_time_tenths;
- start_time += n / 10;
- start_time_tenths = n % 10;
- tm = localtime(&start_time);
- printf("time %.2d:%.2d:%.2d.%d", tm->tm_hour, tm->tm_min,
- tm->tm_sec, start_time_tenths);
- printf(" (sent %d, rcvd %d)\n", tot_sent, tot_rcvd);
- } else
- printf("time %.1fs\n", (double) n / 10);
- }
-}
diff --git a/mdk-stage1/ppp/pppdump/zlib.c b/mdk-stage1/ppp/pppdump/zlib.c
deleted file mode 100644
index 5b8372719..000000000
--- a/mdk-stage1/ppp/pppdump/zlib.c
+++ /dev/null
@@ -1,4614 +0,0 @@
-/*
- * This file is derived from various .h and .c files from the zlib-0.95
- * distribution by Jean-loup Gailly and Mark Adler, with some additions
- * by Paul Mackerras to aid in implementing Deflate compression and
- * decompression for PPP packets. See zlib.h for conditions of
- * distribution and use.
- *
- * Changes that have been made include:
- * - changed functions not used outside this file to "local"
- * - added minCompression parameter to deflateInit2
- * - added Z_PACKET_FLUSH (see zlib.h for details)
- * - added inflateIncomp
- *
- * $Id$
- */
-
-
-/*+++++*/
-/* zutil.h -- internal interface and configuration of the compression library
- * Copyright (C) 1995 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
- part of the implementation of the compression library and is
- subject to change. Applications should only use zlib.h.
- */
-
-/* From: zutil.h,v 1.9 1995/05/03 17:27:12 jloup Exp */
-
-#define _Z_UTIL_H
-
-#include "zlib.h"
-
-#ifdef STDC
-# include <string.h>
-#endif
-
-#ifndef local
-# define local static
-#endif
-/* compile with -Dlocal if your debugger can't find static symbols */
-
-#define FAR
-
-typedef unsigned char uch;
-typedef uch FAR uchf;
-typedef unsigned short ush;
-typedef ush FAR ushf;
-typedef unsigned long ulg;
-
-extern char *z_errmsg[]; /* indexed by 1-zlib_error */
-
-#define ERR_RETURN(strm,err) return (strm->msg=z_errmsg[1-err], err)
-/* To be used only when the state is known to be valid */
-
-#ifndef NULL
-#define NULL ((void *) 0)
-#endif
-
- /* common constants */
-
-#define DEFLATED 8
-
-#ifndef DEF_WBITS
-# define DEF_WBITS MAX_WBITS
-#endif
-/* default windowBits for decompression. MAX_WBITS is for compression only */
-
-#if MAX_MEM_LEVEL >= 8
-# define DEF_MEM_LEVEL 8
-#else
-# define DEF_MEM_LEVEL MAX_MEM_LEVEL
-#endif
-/* default memLevel */
-
-#define STORED_BLOCK 0
-#define STATIC_TREES 1
-#define DYN_TREES 2
-/* The three kinds of block type */
-
-#define MIN_MATCH 3
-#define MAX_MATCH 258
-/* The minimum and maximum match lengths */
-
- /* functions */
-
-#if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY)
-# define HAVE_MEMCPY
-#endif
-#ifdef HAVE_MEMCPY
-# define zmemcpy memcpy
-# define zmemzero(dest, len) memset(dest, 0, len)
-#else
-# define zmemcpy(d, s, n) bcopy((s), (d), (n))
-# define zmemzero bzero
-#endif
-
-/* Diagnostic functions */
-#ifdef DEBUG_ZLIB
-# include <stdio.h>
-# ifndef verbose
-# define verbose 0
-# endif
-# define Assert(cond,msg) {if(!(cond)) z_error(msg);}
-# define Trace(x) fprintf x
-# define Tracev(x) {if (verbose) fprintf x ;}
-# define Tracevv(x) {if (verbose>1) fprintf x ;}
-# define Tracec(c,x) {if (verbose && (c)) fprintf x ;}
-# define Tracecv(c,x) {if (verbose>1 && (c)) fprintf x ;}
-#else
-# define Assert(cond,msg)
-# define Trace(x)
-# define Tracev(x)
-# define Tracevv(x)
-# define Tracec(c,x)
-# define Tracecv(c,x)
-#endif
-
-
-typedef uLong (*check_func) OF((uLong check, Bytef *buf, uInt len));
-
-/* voidpf zcalloc OF((voidpf opaque, unsigned items, unsigned size)); */
-/* void zcfree OF((voidpf opaque, voidpf ptr)); */
-
-#define ZALLOC(strm, items, size) \
- (*((strm)->zalloc))((strm)->opaque, (items), (size))
-#define ZFREE(strm, addr, size) \
- (*((strm)->zfree))((strm)->opaque, (voidpf)(addr), (size))
-#define TRY_FREE(s, p, n) {if (p) ZFREE(s, p, n);}
-
-/* deflate.h -- internal compression state
- * Copyright (C) 1995 Jean-loup Gailly
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
- part of the implementation of the compression library and is
- subject to change. Applications should only use zlib.h.
- */
-
-
-/*+++++*/
-/* From: deflate.h,v 1.5 1995/05/03 17:27:09 jloup Exp */
-
-/* ===========================================================================
- * Internal compression state.
- */
-
-/* Data type */
-#define BINARY 0
-#define ASCII 1
-#define UNKNOWN 2
-
-#define LENGTH_CODES 29
-/* number of length codes, not counting the special END_BLOCK code */
-
-#define LITERALS 256
-/* number of literal bytes 0..255 */
-
-#define L_CODES (LITERALS+1+LENGTH_CODES)
-/* number of Literal or Length codes, including the END_BLOCK code */
-
-#define D_CODES 30
-/* number of distance codes */
-
-#define BL_CODES 19
-/* number of codes used to transfer the bit lengths */
-
-#define HEAP_SIZE (2*L_CODES+1)
-/* maximum heap size */
-
-#define MAX_BITS 15
-/* All codes must not exceed MAX_BITS bits */
-
-#define INIT_STATE 42
-#define BUSY_STATE 113
-#define FLUSH_STATE 124
-#define FINISH_STATE 666
-/* Stream status */
-
-
-/* Data structure describing a single value and its code string. */
-typedef struct ct_data_s {
- union {
- ush freq; /* frequency count */
- ush code; /* bit string */
- } fc;
- union {
- ush dad; /* father node in Huffman tree */
- ush len; /* length of bit string */
- } dl;
-} FAR ct_data;
-
-#define Freq fc.freq
-#define Code fc.code
-#define Dad dl.dad
-#define Len dl.len
-
-typedef struct static_tree_desc_s static_tree_desc;
-
-typedef struct tree_desc_s {
- ct_data *dyn_tree; /* the dynamic tree */
- int max_code; /* largest code with non zero frequency */
- static_tree_desc *stat_desc; /* the corresponding static tree */
-} FAR tree_desc;
-
-typedef ush Pos;
-typedef Pos FAR Posf;
-typedef unsigned IPos;
-
-/* A Pos is an index in the character window. We use short instead of int to
- * save space in the various tables. IPos is used only for parameter passing.
- */
-
-typedef struct deflate_state {
- z_stream *strm; /* pointer back to this zlib stream */
- int status; /* as the name implies */
- Bytef *pending_buf; /* output still pending */
- Bytef *pending_out; /* next pending byte to output to the stream */
- int pending; /* nb of bytes in the pending buffer */
- uLong adler; /* adler32 of uncompressed data */
- int noheader; /* suppress zlib header and adler32 */
- Byte data_type; /* UNKNOWN, BINARY or ASCII */
- Byte method; /* STORED (for zip only) or DEFLATED */
- int minCompr; /* min size decrease for Z_FLUSH_NOSTORE */
-
- /* used by deflate.c: */
-
- uInt w_size; /* LZ77 window size (32K by default) */
- uInt w_bits; /* log2(w_size) (8..16) */
- uInt w_mask; /* w_size - 1 */
-
- Bytef *window;
- /* Sliding window. Input bytes are read into the second half of the window,
- * and move to the first half later to keep a dictionary of at least wSize
- * bytes. With this organization, matches are limited to a distance of
- * wSize-MAX_MATCH bytes, but this ensures that IO is always
- * performed with a length multiple of the block size. Also, it limits
- * the window size to 64K, which is quite useful on MSDOS.
- * To do: use the user input buffer as sliding window.
- */
-
- ulg window_size;
- /* Actual size of window: 2*wSize, except when the user input buffer
- * is directly used as sliding window.
- */
-
- Posf *prev;
- /* Link to older string with same hash index. To limit the size of this
- * array to 64K, this link is maintained only for the last 32K strings.
- * An index in this array is thus a window index modulo 32K.
- */
-
- Posf *head; /* Heads of the hash chains or NIL. */
-
- uInt ins_h; /* hash index of string to be inserted */
- uInt hash_size; /* number of elements in hash table */
- uInt hash_bits; /* log2(hash_size) */
- uInt hash_mask; /* hash_size-1 */
-
- uInt hash_shift;
- /* Number of bits by which ins_h must be shifted at each input
- * step. It must be such that after MIN_MATCH steps, the oldest
- * byte no longer takes part in the hash key, that is:
- * hash_shift * MIN_MATCH >= hash_bits
- */
-
- long block_start;
- /* Window position at the beginning of the current output block. Gets
- * negative when the window is moved backwards.
- */
-
- uInt match_length; /* length of best match */
- IPos prev_match; /* previous match */
- int match_available; /* set if previous match exists */
- uInt strstart; /* start of string to insert */
- uInt match_start; /* start of matching string */
- uInt lookahead; /* number of valid bytes ahead in window */
-
- uInt prev_length;
- /* Length of the best match at previous step. Matches not greater than this
- * are discarded. This is used in the lazy match evaluation.
- */
-
- uInt max_chain_length;
- /* To speed up deflation, hash chains are never searched beyond this
- * length. A higher limit improves compression ratio but degrades the
- * speed.
- */
-
- uInt max_lazy_match;
- /* Attempt to find a better match only when the current match is strictly
- * smaller than this value. This mechanism is used only for compression
- * levels >= 4.
- */
-# define max_insert_length max_lazy_match
- /* Insert new strings in the hash table only if the match length is not
- * greater than this length. This saves time but degrades compression.
- * max_insert_length is used only for compression levels <= 3.
- */
-
- int level; /* compression level (1..9) */
- int strategy; /* favor or force Huffman coding*/
-
- uInt good_match;
- /* Use a faster search when the previous match is longer than this */
-
- int nice_match; /* Stop searching when current match exceeds this */
-
- /* used by trees.c: */
- /* Didn't use ct_data typedef below to supress compiler warning */
- struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */
- struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */
- struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */
-
- struct tree_desc_s l_desc; /* desc. for literal tree */
- struct tree_desc_s d_desc; /* desc. for distance tree */
- struct tree_desc_s bl_desc; /* desc. for bit length tree */
-
- ush bl_count[MAX_BITS+1];
- /* number of codes at each bit length for an optimal tree */
-
- int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */
- int heap_len; /* number of elements in the heap */
- int heap_max; /* element of largest frequency */
- /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.
- * The same heap array is used to build all trees.
- */
-
- uch depth[2*L_CODES+1];
- /* Depth of each subtree used as tie breaker for trees of equal frequency
- */
-
- uchf *l_buf; /* buffer for literals or lengths */
-
- uInt lit_bufsize;
- /* Size of match buffer for literals/lengths. There are 4 reasons for
- * limiting lit_bufsize to 64K:
- * - frequencies can be kept in 16 bit counters
- * - if compression is not successful for the first block, all input
- * data is still in the window so we can still emit a stored block even
- * when input comes from standard input. (This can also be done for
- * all blocks if lit_bufsize is not greater than 32K.)
- * - if compression is not successful for a file smaller than 64K, we can
- * even emit a stored file instead of a stored block (saving 5 bytes).
- * This is applicable only for zip (not gzip or zlib).
- * - creating new Huffman trees less frequently may not provide fast
- * adaptation to changes in the input data statistics. (Take for
- * example a binary file with poorly compressible code followed by
- * a highly compressible string table.) Smaller buffer sizes give
- * fast adaptation but have of course the overhead of transmitting
- * trees more frequently.
- * - I can't count above 4
- */
-
- uInt last_lit; /* running index in l_buf */
-
- ushf *d_buf;
- /* Buffer for distances. To simplify the code, d_buf and l_buf have
- * the same number of elements. To use different lengths, an extra flag
- * array would be necessary.
- */
-
- ulg opt_len; /* bit length of current block with optimal trees */
- ulg static_len; /* bit length of current block with static trees */
- ulg compressed_len; /* total bit length of compressed file */
- uInt matches; /* number of string matches in current block */
- int last_eob_len; /* bit length of EOB code for last block */
-
-#ifdef DEBUG_ZLIB
- ulg bits_sent; /* bit length of the compressed data */
-#endif
-
- ush bi_buf;
- /* Output buffer. bits are inserted starting at the bottom (least
- * significant bits).
- */
- int bi_valid;
- /* Number of valid bits in bi_buf. All bits above the last valid bit
- * are always zero.
- */
-
- uInt blocks_in_packet;
- /* Number of blocks produced since the last time Z_PACKET_FLUSH
- * was used.
- */
-
-} FAR deflate_state;
-
-/* Output a byte on the stream.
- * IN assertion: there is enough room in pending_buf.
- */
-#define put_byte(s, c) {s->pending_buf[s->pending++] = (c);}
-
-
-#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
-/* Minimum amount of lookahead, except at the end of the input file.
- * See deflate.c for comments about the MIN_MATCH+1.
- */
-
-#define MAX_DIST(s) ((s)->w_size-MIN_LOOKAHEAD)
-/* In order to simplify the code, particularly on 16 bit machines, match
- * distances are limited to MAX_DIST instead of WSIZE.
- */
-
- /* in trees.c */
-local void ct_init OF((deflate_state *s));
-local int ct_tally OF((deflate_state *s, int dist, int lc));
-local ulg ct_flush_block OF((deflate_state *s, charf *buf, ulg stored_len,
- int flush));
-local void ct_align OF((deflate_state *s));
-local void ct_stored_block OF((deflate_state *s, charf *buf, ulg stored_len,
- int eof));
-local void ct_stored_type_only OF((deflate_state *s));
-
-
-/*+++++*/
-/* deflate.c -- compress data using the deflation algorithm
- * Copyright (C) 1995 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/*
- * ALGORITHM
- *
- * The "deflation" process depends on being able to identify portions
- * of the input text which are identical to earlier input (within a
- * sliding window trailing behind the input currently being processed).
- *
- * The most straightforward technique turns out to be the fastest for
- * most input files: try all possible matches and select the longest.
- * The key feature of this algorithm is that insertions into the string
- * dictionary are very simple and thus fast, and deletions are avoided
- * completely. Insertions are performed at each input character, whereas
- * string matches are performed only when the previous match ends. So it
- * is preferable to spend more time in matches to allow very fast string
- * insertions and avoid deletions. The matching algorithm for small
- * strings is inspired from that of Rabin & Karp. A brute force approach
- * is used to find longer strings when a small match has been found.
- * A similar algorithm is used in comic (by Jan-Mark Wams) and freeze
- * (by Leonid Broukhis).
- * A previous version of this file used a more sophisticated algorithm
- * (by Fiala and Greene) which is guaranteed to run in linear amortized
- * time, but has a larger average cost, uses more memory and is patented.
- * However the F&G algorithm may be faster for some highly redundant
- * files if the parameter max_chain_length (described below) is too large.
- *
- * ACKNOWLEDGEMENTS
- *
- * The idea of lazy evaluation of matches is due to Jan-Mark Wams, and
- * I found it in 'freeze' written by Leonid Broukhis.
- * Thanks to many people for bug reports and testing.
- *
- * REFERENCES
- *
- * Deutsch, L.P.,"'Deflate' Compressed Data Format Specification".
- * Available in ftp.uu.net:/pub/archiving/zip/doc/deflate-1.1.doc
- *
- * A description of the Rabin and Karp algorithm is given in the book
- * "Algorithms" by R. Sedgewick, Addison-Wesley, p252.
- *
- * Fiala,E.R., and Greene,D.H.
- * Data Compression with Finite Windows, Comm.ACM, 32,4 (1989) 490-595
- *
- */
-
-/* From: deflate.c,v 1.8 1995/05/03 17:27:08 jloup Exp */
-
-local char zlib_copyright[] = " deflate Copyright 1995 Jean-loup Gailly ";
-/*
- If you use the zlib library in a product, an acknowledgment is welcome
- in the documentation of your product. If for some reason you cannot
- include such an acknowledgment, I would appreciate that you keep this
- copyright string in the executable of your product.
- */
-
-#define NIL 0
-/* Tail of hash chains */
-
-#ifndef TOO_FAR
-# define TOO_FAR 4096
-#endif
-/* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
-
-#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
-/* Minimum amount of lookahead, except at the end of the input file.
- * See deflate.c for comments about the MIN_MATCH+1.
- */
-
-/* Values for max_lazy_match, good_match and max_chain_length, depending on
- * the desired pack level (0..9). The values given below have been tuned to
- * exclude worst case performance for pathological files. Better values may be
- * found for specific files.
- */
-
-typedef struct config_s {
- ush good_length; /* reduce lazy search above this match length */
- ush max_lazy; /* do not perform lazy search above this match length */
- ush nice_length; /* quit search above this match length */
- ush max_chain;
-} config;
-
-local config configuration_table[10] = {
-/* good lazy nice chain */
-/* 0 */ {0, 0, 0, 0}, /* store only */
-/* 1 */ {4, 4, 8, 4}, /* maximum speed, no lazy matches */
-/* 2 */ {4, 5, 16, 8},
-/* 3 */ {4, 6, 32, 32},
-
-/* 4 */ {4, 4, 16, 16}, /* lazy matches */
-/* 5 */ {8, 16, 32, 32},
-/* 6 */ {8, 16, 128, 128},
-/* 7 */ {8, 32, 128, 256},
-/* 8 */ {32, 128, 258, 1024},
-/* 9 */ {32, 258, 258, 4096}}; /* maximum compression */
-
-/* Note: the deflate() code requires max_lazy >= MIN_MATCH and max_chain >= 4
- * For deflate_fast() (levels <= 3) good is ignored and lazy has a different
- * meaning.
- */
-
-#define EQUAL 0
-/* result of memcmp for equal strings */
-
-/* ===========================================================================
- * Prototypes for local functions.
- */
-
-local void fill_window OF((deflate_state *s));
-local int deflate_fast OF((deflate_state *s, int flush));
-local int deflate_slow OF((deflate_state *s, int flush));
-local void lm_init OF((deflate_state *s));
-local int longest_match OF((deflate_state *s, IPos cur_match));
-local void putShortMSB OF((deflate_state *s, uInt b));
-local void flush_pending OF((z_stream *strm));
-local int read_buf OF((z_stream *strm, charf *buf, unsigned size));
-#ifdef ASMV
- void match_init OF((void)); /* asm code initialization */
-#endif
-
-#ifdef DEBUG_ZLIB
-local void check_match OF((deflate_state *s, IPos start, IPos match,
- int length));
-#endif
-
-
-/* ===========================================================================
- * Update a hash value with the given input byte
- * IN assertion: all calls to to UPDATE_HASH are made with consecutive
- * input characters, so that a running hash key can be computed from the
- * previous key instead of complete recalculation each time.
- */
-#define UPDATE_HASH(s,h,c) (h = (((h)<<s->hash_shift) ^ (c)) & s->hash_mask)
-
-
-/* ===========================================================================
- * Insert string str in the dictionary and set match_head to the previous head
- * of the hash chain (the most recent string with same hash key). Return
- * the previous length of the hash chain.
- * IN assertion: all calls to to INSERT_STRING are made with consecutive
- * input characters and the first MIN_MATCH bytes of str are valid
- * (except for the last MIN_MATCH-1 bytes of the input file).
- */
-#define INSERT_STRING(s, str, match_head) \
- (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \
- s->prev[(str) & s->w_mask] = match_head = s->head[s->ins_h], \
- s->head[s->ins_h] = (str))
-
-/* ===========================================================================
- * Initialize the hash table (avoiding 64K overflow for 16 bit systems).
- * prev[] will be initialized on the fly.
- */
-#define CLEAR_HASH(s) \
- s->head[s->hash_size-1] = NIL; \
- zmemzero((charf *)s->head, (unsigned)(s->hash_size-1)*sizeof(*s->head));
-
-/* ========================================================================= */
-int deflateInit (strm, level)
- z_stream *strm;
- int level;
-{
- return deflateInit2 (strm, level, DEFLATED, MAX_WBITS, DEF_MEM_LEVEL,
- 0, 0);
- /* To do: ignore strm->next_in if we use it as window */
-}
-
-/* ========================================================================= */
-int deflateInit2 (strm, level, method, windowBits, memLevel,
- strategy, minCompression)
- z_stream *strm;
- int level;
- int method;
- int windowBits;
- int memLevel;
- int strategy;
- int minCompression;
-{
- deflate_state *s;
- int noheader = 0;
-
- if (strm == Z_NULL) return Z_STREAM_ERROR;
-
- strm->msg = Z_NULL;
-/* if (strm->zalloc == Z_NULL) strm->zalloc = zcalloc; */
-/* if (strm->zfree == Z_NULL) strm->zfree = zcfree; */
-
- if (level == Z_DEFAULT_COMPRESSION) level = 6;
-
- if (windowBits < 0) { /* undocumented feature: suppress zlib header */
- noheader = 1;
- windowBits = -windowBits;
- }
- if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method != DEFLATED ||
- windowBits < 8 || windowBits > 15 || level < 1 || level > 9) {
- return Z_STREAM_ERROR;
- }
- s = (deflate_state *) ZALLOC(strm, 1, sizeof(deflate_state));
- if (s == Z_NULL) return Z_MEM_ERROR;
- strm->state = (struct internal_state FAR *)s;
- s->strm = strm;
-
- s->noheader = noheader;
- s->w_bits = windowBits;
- s->w_size = 1 << s->w_bits;
- s->w_mask = s->w_size - 1;
-
- s->hash_bits = memLevel + 7;
- s->hash_size = 1 << s->hash_bits;
- s->hash_mask = s->hash_size - 1;
- s->hash_shift = ((s->hash_bits+MIN_MATCH-1)/MIN_MATCH);
-
- s->window = (Bytef *) ZALLOC(strm, s->w_size, 2*sizeof(Byte));
- s->prev = (Posf *) ZALLOC(strm, s->w_size, sizeof(Pos));
- s->head = (Posf *) ZALLOC(strm, s->hash_size, sizeof(Pos));
-
- s->lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */
-
- s->pending_buf = (uchf *) ZALLOC(strm, s->lit_bufsize, 2*sizeof(ush));
-
- if (s->window == Z_NULL || s->prev == Z_NULL || s->head == Z_NULL ||
- s->pending_buf == Z_NULL) {
- strm->msg = z_errmsg[1-Z_MEM_ERROR];
- deflateEnd (strm);
- return Z_MEM_ERROR;
- }
- s->d_buf = (ushf *) &(s->pending_buf[s->lit_bufsize]);
- s->l_buf = (uchf *) &(s->pending_buf[3*s->lit_bufsize]);
- /* We overlay pending_buf and d_buf+l_buf. This works since the average
- * output size for (length,distance) codes is <= 32 bits (worst case
- * is 15+15+13=33).
- */
-
- s->level = level;
- s->strategy = strategy;
- s->method = (Byte)method;
- s->minCompr = minCompression;
- s->blocks_in_packet = 0;
-
- return deflateReset(strm);
-}
-
-/* ========================================================================= */
-int deflateReset (strm)
- z_stream *strm;
-{
- deflate_state *s;
-
- if (strm == Z_NULL || strm->state == Z_NULL ||
- strm->zalloc == Z_NULL || strm->zfree == Z_NULL) return Z_STREAM_ERROR;
-
- strm->total_in = strm->total_out = 0;
- strm->msg = Z_NULL; /* use zfree if we ever allocate msg dynamically */
- strm->data_type = Z_UNKNOWN;
-
- s = (deflate_state *)strm->state;
- s->pending = 0;
- s->pending_out = s->pending_buf;
-
- if (s->noheader < 0) {
- s->noheader = 0; /* was set to -1 by deflate(..., Z_FINISH); */
- }
- s->status = s->noheader ? BUSY_STATE : INIT_STATE;
- s->adler = 1;
-
- ct_init(s);
- lm_init(s);
-
- return Z_OK;
-}
-
-/* =========================================================================
- * Put a short in the pending buffer. The 16-bit value is put in MSB order.
- * IN assertion: the stream state is correct and there is enough room in
- * pending_buf.
- */
-local void putShortMSB (s, b)
- deflate_state *s;
- uInt b;
-{
- put_byte(s, (Byte)(b >> 8));
- put_byte(s, (Byte)(b & 0xff));
-}
-
-/* =========================================================================
- * Flush as much pending output as possible.
- */
-local void flush_pending(strm)
- z_stream *strm;
-{
- deflate_state *state = (deflate_state *) strm->state;
- unsigned len = state->pending;
-
- if (len > strm->avail_out) len = strm->avail_out;
- if (len == 0) return;
-
- if (strm->next_out != NULL) {
- zmemcpy(strm->next_out, state->pending_out, len);
- strm->next_out += len;
- }
- state->pending_out += len;
- strm->total_out += len;
- strm->avail_out -= len;
- state->pending -= len;
- if (state->pending == 0) {
- state->pending_out = state->pending_buf;
- }
-}
-
-/* ========================================================================= */
-int deflate (strm, flush)
- z_stream *strm;
- int flush;
-{
- deflate_state *state = (deflate_state *) strm->state;
-
- if (strm == Z_NULL || state == Z_NULL) return Z_STREAM_ERROR;
-
- if (strm->next_in == Z_NULL && strm->avail_in != 0) {
- ERR_RETURN(strm, Z_STREAM_ERROR);
- }
- if (strm->avail_out == 0) ERR_RETURN(strm, Z_BUF_ERROR);
-
- state->strm = strm; /* just in case */
-
- /* Write the zlib header */
- if (state->status == INIT_STATE) {
-
- uInt header = (DEFLATED + ((state->w_bits-8)<<4)) << 8;
- uInt level_flags = (state->level-1) >> 1;
-
- if (level_flags > 3) level_flags = 3;
- header |= (level_flags << 6);
- header += 31 - (header % 31);
-
- state->status = BUSY_STATE;
- putShortMSB(state, header);
- }
-
- /* Flush as much pending output as possible */
- if (state->pending != 0) {
- flush_pending(strm);
- if (strm->avail_out == 0) return Z_OK;
- }
-
- /* If we came back in here to get the last output from
- * a previous flush, we're done for now.
- */
- if (state->status == FLUSH_STATE) {
- state->status = BUSY_STATE;
- if (flush != Z_NO_FLUSH && flush != Z_FINISH)
- return Z_OK;
- }
-
- /* User must not provide more input after the first FINISH: */
- if (state->status == FINISH_STATE && strm->avail_in != 0) {
- ERR_RETURN(strm, Z_BUF_ERROR);
- }
-
- /* Start a new block or continue the current one.
- */
- if (strm->avail_in != 0 || state->lookahead != 0 ||
- (flush == Z_FINISH && state->status != FINISH_STATE)) {
- int quit;
-
- if (flush == Z_FINISH) {
- state->status = FINISH_STATE;
- }
- if (state->level <= 3) {
- quit = deflate_fast(state, flush);
- } else {
- quit = deflate_slow(state, flush);
- }
- if (quit || strm->avail_out == 0)
- return Z_OK;
- /* If flush != Z_NO_FLUSH && avail_out == 0, the next call
- * of deflate should use the same flush parameter to make sure
- * that the flush is complete. So we don't have to output an
- * empty block here, this will be done at next call. This also
- * ensures that for a very small output buffer, we emit at most
- * one empty block.
- */
- }
-
- /* If a flush was requested, we have a little more to output now. */
- if (flush != Z_NO_FLUSH && flush != Z_FINISH
- && state->status != FINISH_STATE) {
- switch (flush) {
- case Z_PARTIAL_FLUSH:
- ct_align(state);
- break;
- case Z_PACKET_FLUSH:
- /* Output just the 3-bit `stored' block type value,
- but not a zero length. */
- ct_stored_type_only(state);
- break;
- default:
- ct_stored_block(state, (char*)0, 0L, 0);
- /* For a full flush, this empty block will be recognized
- * as a special marker by inflate_sync().
- */
- if (flush == Z_FULL_FLUSH) {
- CLEAR_HASH(state); /* forget history */
- }
- }
- flush_pending(strm);
- if (strm->avail_out == 0) {
- /* We'll have to come back to get the rest of the output;
- * this ensures we don't output a second zero-length stored
- * block (or whatever).
- */
- state->status = FLUSH_STATE;
- return Z_OK;
- }
- }
-
- Assert(strm->avail_out > 0, "bug2");
-
- if (flush != Z_FINISH) return Z_OK;
- if (state->noheader) return Z_STREAM_END;
-
- /* Write the zlib trailer (adler32) */
- putShortMSB(state, (uInt)(state->adler >> 16));
- putShortMSB(state, (uInt)(state->adler & 0xffff));
- flush_pending(strm);
- /* If avail_out is zero, the application will call deflate again
- * to flush the rest.
- */
- state->noheader = -1; /* write the trailer only once! */
- return state->pending != 0 ? Z_OK : Z_STREAM_END;
-}
-
-/* ========================================================================= */
-int deflateEnd (strm)
- z_stream *strm;
-{
- deflate_state *state = (deflate_state *) strm->state;
-
- if (strm == Z_NULL || state == Z_NULL) return Z_STREAM_ERROR;
-
- TRY_FREE(strm, state->window, state->w_size * 2 * sizeof(Byte));
- TRY_FREE(strm, state->prev, state->w_size * sizeof(Pos));
- TRY_FREE(strm, state->head, state->hash_size * sizeof(Pos));
- TRY_FREE(strm, state->pending_buf, state->lit_bufsize * 2 * sizeof(ush));
-
- ZFREE(strm, state, sizeof(deflate_state));
- strm->state = Z_NULL;
-
- return Z_OK;
-}
-
-/* ===========================================================================
- * Read a new buffer from the current input stream, update the adler32
- * and total number of bytes read.
- */
-local int read_buf(strm, buf, size)
- z_stream *strm;
- charf *buf;
- unsigned size;
-{
- unsigned len = strm->avail_in;
- deflate_state *state = (deflate_state *) strm->state;
-
- if (len > size) len = size;
- if (len == 0) return 0;
-
- strm->avail_in -= len;
-
- if (!state->noheader) {
- state->adler = adler32(state->adler, strm->next_in, len);
- }
- zmemcpy(buf, strm->next_in, len);
- strm->next_in += len;
- strm->total_in += len;
-
- return (int)len;
-}
-
-/* ===========================================================================
- * Initialize the "longest match" routines for a new zlib stream
- */
-local void lm_init (s)
- deflate_state *s;
-{
- s->window_size = (ulg)2L*s->w_size;
-
- CLEAR_HASH(s);
-
- /* Set the default configuration parameters:
- */
- s->max_lazy_match = configuration_table[s->level].max_lazy;
- s->good_match = configuration_table[s->level].good_length;
- s->nice_match = configuration_table[s->level].nice_length;
- s->max_chain_length = configuration_table[s->level].max_chain;
-
- s->strstart = 0;
- s->block_start = 0L;
- s->lookahead = 0;
- s->match_length = MIN_MATCH-1;
- s->match_available = 0;
- s->ins_h = 0;
-#ifdef ASMV
- match_init(); /* initialize the asm code */
-#endif
-}
-
-/* ===========================================================================
- * Set match_start to the longest match starting at the given string and
- * return its length. Matches shorter or equal to prev_length are discarded,
- * in which case the result is equal to prev_length and match_start is
- * garbage.
- * IN assertions: cur_match is the head of the hash chain for the current
- * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
- */
-#ifndef ASMV
-/* For 80x86 and 680x0, an optimized version will be provided in match.asm or
- * match.S. The code will be functionally equivalent.
- */
-local int longest_match(s, cur_match)
- deflate_state *s;
- IPos cur_match; /* current match */
-{
- unsigned chain_length = s->max_chain_length;/* max hash chain length */
- register Bytef *scan = s->window + s->strstart; /* current string */
- register Bytef *match; /* matched string */
- register int len; /* length of current match */
- int best_len = s->prev_length; /* best match length so far */
- IPos limit = s->strstart > (IPos)MAX_DIST(s) ?
- s->strstart - (IPos)MAX_DIST(s) : NIL;
- /* Stop when cur_match becomes <= limit. To simplify the code,
- * we prevent matches with the string of window index 0.
- */
- Posf *prev = s->prev;
- uInt wmask = s->w_mask;
-
-#ifdef UNALIGNED_OK
- /* Compare two bytes at a time. Note: this is not always beneficial.
- * Try with and without -DUNALIGNED_OK to check.
- */
- register Bytef *strend = s->window + s->strstart + MAX_MATCH - 1;
- register ush scan_start = *(ushf*)scan;
- register ush scan_end = *(ushf*)(scan+best_len-1);
-#else
- register Bytef *strend = s->window + s->strstart + MAX_MATCH;
- register Byte scan_end1 = scan[best_len-1];
- register Byte scan_end = scan[best_len];
-#endif
-
- /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
- * It is easy to get rid of this optimization if necessary.
- */
- Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever");
-
- /* Do not waste too much time if we already have a good match: */
- if (s->prev_length >= s->good_match) {
- chain_length >>= 2;
- }
- Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead");
-
- do {
- Assert(cur_match < s->strstart, "no future");
- match = s->window + cur_match;
-
- /* Skip to next match if the match length cannot increase
- * or if the match length is less than 2:
- */
-#if (defined(UNALIGNED_OK) && MAX_MATCH == 258)
- /* This code assumes sizeof(unsigned short) == 2. Do not use
- * UNALIGNED_OK if your compiler uses a different size.
- */
- if (*(ushf*)(match+best_len-1) != scan_end ||
- *(ushf*)match != scan_start) continue;
-
- /* It is not necessary to compare scan[2] and match[2] since they are
- * always equal when the other bytes match, given that the hash keys
- * are equal and that HASH_BITS >= 8. Compare 2 bytes at a time at
- * strstart+3, +5, ... up to strstart+257. We check for insufficient
- * lookahead only every 4th comparison; the 128th check will be made
- * at strstart+257. If MAX_MATCH-2 is not a multiple of 8, it is
- * necessary to put more guard bytes at the end of the window, or
- * to check more often for insufficient lookahead.
- */
- Assert(scan[2] == match[2], "scan[2]?");
- scan++, match++;
- do {
- } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
- *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
- *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
- *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
- scan < strend);
- /* The funny "do {}" generates better code on most compilers */
-
- /* Here, scan <= window+strstart+257 */
- Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
- if (*scan == *match) scan++;
-
- len = (MAX_MATCH - 1) - (int)(strend-scan);
- scan = strend - (MAX_MATCH-1);
-
-#else /* UNALIGNED_OK */
-
- if (match[best_len] != scan_end ||
- match[best_len-1] != scan_end1 ||
- *match != *scan ||
- *++match != scan[1]) continue;
-
- /* The check at best_len-1 can be removed because it will be made
- * again later. (This heuristic is not always a win.)
- * It is not necessary to compare scan[2] and match[2] since they
- * are always equal when the other bytes match, given that
- * the hash keys are equal and that HASH_BITS >= 8.
- */
- scan += 2, match++;
- Assert(*scan == *match, "match[2]?");
-
- /* We check for insufficient lookahead only every 8th comparison;
- * the 256th check will be made at strstart+258.
- */
- do {
- } while (*++scan == *++match && *++scan == *++match &&
- *++scan == *++match && *++scan == *++match &&
- *++scan == *++match && *++scan == *++match &&
- *++scan == *++match && *++scan == *++match &&
- scan < strend);
-
- Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
-
- len = MAX_MATCH - (int)(strend - scan);
- scan = strend - MAX_MATCH;
-
-#endif /* UNALIGNED_OK */
-
- if (len > best_len) {
- s->match_start = cur_match;
- best_len = len;
- if (len >= s->nice_match) break;
-#ifdef UNALIGNED_OK
- scan_end = *(ushf*)(scan+best_len-1);
-#else
- scan_end1 = scan[best_len-1];
- scan_end = scan[best_len];
-#endif
- }
- } while ((cur_match = prev[cur_match & wmask]) > limit
- && --chain_length != 0);
-
- return best_len;
-}
-#endif /* ASMV */
-
-#ifdef DEBUG_ZLIB
-/* ===========================================================================
- * Check that the match at match_start is indeed a match.
- */
-local void check_match(s, start, match, length)
- deflate_state *s;
- IPos start, match;
- int length;
-{
- /* check that the match is indeed a match */
- if (memcmp((charf *)s->window + match,
- (charf *)s->window + start, length) != EQUAL) {
- fprintf(stderr,
- " start %u, match %u, length %d\n",
- start, match, length);
- do { fprintf(stderr, "%c%c", s->window[match++],
- s->window[start++]); } while (--length != 0);
- z_error("invalid match");
- }
- if (verbose > 1) {
- fprintf(stderr,"\\[%d,%d]", start-match, length);
- do { putc(s->window[start++], stderr); } while (--length != 0);
- }
-}
-#else
-# define check_match(s, start, match, length)
-#endif
-
-/* ===========================================================================
- * Fill the window when the lookahead becomes insufficient.
- * Updates strstart and lookahead.
- *
- * IN assertion: lookahead < MIN_LOOKAHEAD
- * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD
- * At least one byte has been read, or avail_in == 0; reads are
- * performed for at least two bytes (required for the zip translate_eol
- * option -- not supported here).
- */
-local void fill_window(s)
- deflate_state *s;
-{
- register unsigned n, m;
- register Posf *p;
- unsigned more; /* Amount of free space at the end of the window. */
- uInt wsize = s->w_size;
-
- do {
- more = (unsigned)(s->window_size -(ulg)s->lookahead -(ulg)s->strstart);
-
- /* Deal with !@#$% 64K limit: */
- if (more == 0 && s->strstart == 0 && s->lookahead == 0) {
- more = wsize;
- } else if (more == (unsigned)(-1)) {
- /* Very unlikely, but possible on 16 bit machine if strstart == 0
- * and lookahead == 1 (input done one byte at time)
- */
- more--;
-
- /* If the window is almost full and there is insufficient lookahead,
- * move the upper half to the lower one to make room in the upper half.
- */
- } else if (s->strstart >= wsize+MAX_DIST(s)) {
-
- /* By the IN assertion, the window is not empty so we can't confuse
- * more == 0 with more == 64K on a 16 bit machine.
- */
- zmemcpy((charf *)s->window, (charf *)s->window+wsize,
- (unsigned)wsize);
- s->match_start -= wsize;
- s->strstart -= wsize; /* we now have strstart >= MAX_DIST */
-
- s->block_start -= (long) wsize;
-
- /* Slide the hash table (could be avoided with 32 bit values
- at the expense of memory usage):
- */
- n = s->hash_size;
- p = &s->head[n];
- do {
- m = *--p;
- *p = (Pos)(m >= wsize ? m-wsize : NIL);
- } while (--n);
-
- n = wsize;
- p = &s->prev[n];
- do {
- m = *--p;
- *p = (Pos)(m >= wsize ? m-wsize : NIL);
- /* If n is not on any hash chain, prev[n] is garbage but
- * its value will never be used.
- */
- } while (--n);
-
- more += wsize;
- }
- if (s->strm->avail_in == 0) return;
-
- /* If there was no sliding:
- * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&
- * more == window_size - lookahead - strstart
- * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)
- * => more >= window_size - 2*WSIZE + 2
- * In the BIG_MEM or MMAP case (not yet supported),
- * window_size == input_size + MIN_LOOKAHEAD &&
- * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.
- * Otherwise, window_size == 2*WSIZE so more >= 2.
- * If there was sliding, more >= WSIZE. So in all cases, more >= 2.
- */
- Assert(more >= 2, "more < 2");
-
- n = read_buf(s->strm, (charf *)s->window + s->strstart + s->lookahead,
- more);
- s->lookahead += n;
-
- /* Initialize the hash value now that we have some input: */
- if (s->lookahead >= MIN_MATCH) {
- s->ins_h = s->window[s->strstart];
- UPDATE_HASH(s, s->ins_h, s->window[s->strstart+1]);
-#if MIN_MATCH != 3
- Call UPDATE_HASH() MIN_MATCH-3 more times
-#endif
- }
- /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,
- * but this is not important since only literal bytes will be emitted.
- */
-
- } while (s->lookahead < MIN_LOOKAHEAD && s->strm->avail_in != 0);
-}
-
-/* ===========================================================================
- * Flush the current block, with given end-of-file flag.
- * IN assertion: strstart is set to the end of the current match.
- */
-#define FLUSH_BLOCK_ONLY(s, flush) { \
- ct_flush_block(s, (s->block_start >= 0L ? \
- (charf *)&s->window[(unsigned)s->block_start] : \
- (charf *)Z_NULL), (long)s->strstart - s->block_start, (flush)); \
- s->block_start = s->strstart; \
- flush_pending(s->strm); \
- Tracev((stderr,"[FLUSH]")); \
-}
-
-/* Same but force premature exit if necessary. */
-#define FLUSH_BLOCK(s, flush) { \
- FLUSH_BLOCK_ONLY(s, flush); \
- if (s->strm->avail_out == 0) return 1; \
-}
-
-/* ===========================================================================
- * Compress as much as possible from the input stream, return true if
- * processing was terminated prematurely (no more input or output space).
- * This function does not perform lazy evaluationof matches and inserts
- * new strings in the dictionary only for unmatched strings or for short
- * matches. It is used only for the fast compression options.
- */
-local int deflate_fast(s, flush)
- deflate_state *s;
- int flush;
-{
- IPos hash_head = NIL; /* head of the hash chain */
- int bflush; /* set if current block must be flushed */
-
- s->prev_length = MIN_MATCH-1;
-
- for (;;) {
- /* Make sure that we always have enough lookahead, except
- * at the end of the input file. We need MAX_MATCH bytes
- * for the next match, plus MIN_MATCH bytes to insert the
- * string following the next match.
- */
- if (s->lookahead < MIN_LOOKAHEAD) {
- fill_window(s);
- if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) return 1;
-
- if (s->lookahead == 0) break; /* flush the current block */
- }
-
- /* Insert the string window[strstart .. strstart+2] in the
- * dictionary, and set hash_head to the head of the hash chain:
- */
- if (s->lookahead >= MIN_MATCH) {
- INSERT_STRING(s, s->strstart, hash_head);
- }
-
- /* Find the longest match, discarding those <= prev_length.
- * At this point we have always match_length < MIN_MATCH
- */
- if (hash_head != NIL && s->strstart - hash_head <= MAX_DIST(s)) {
- /* To simplify the code, we prevent matches with the string
- * of window index 0 (in particular we have to avoid a match
- * of the string with itself at the start of the input file).
- */
- if (s->strategy != Z_HUFFMAN_ONLY) {
- s->match_length = longest_match (s, hash_head);
- }
- /* longest_match() sets match_start */
-
- if (s->match_length > s->lookahead) s->match_length = s->lookahead;
- }
- if (s->match_length >= MIN_MATCH) {
- check_match(s, s->strstart, s->match_start, s->match_length);
-
- bflush = ct_tally(s, s->strstart - s->match_start,
- s->match_length - MIN_MATCH);
-
- s->lookahead -= s->match_length;
-
- /* Insert new strings in the hash table only if the match length
- * is not too large. This saves time but degrades compression.
- */
- if (s->match_length <= s->max_insert_length &&
- s->lookahead >= MIN_MATCH) {
- s->match_length--; /* string at strstart already in hash table */
- do {
- s->strstart++;
- INSERT_STRING(s, s->strstart, hash_head);
- /* strstart never exceeds WSIZE-MAX_MATCH, so there are
- * always MIN_MATCH bytes ahead.
- */
- } while (--s->match_length != 0);
- s->strstart++;
- } else {
- s->strstart += s->match_length;
- s->match_length = 0;
- s->ins_h = s->window[s->strstart];
- UPDATE_HASH(s, s->ins_h, s->window[s->strstart+1]);
-#if MIN_MATCH != 3
- Call UPDATE_HASH() MIN_MATCH-3 more times
-#endif
- /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not
- * matter since it will be recomputed at next deflate call.
- */
- }
- } else {
- /* No match, output a literal byte */
- Tracevv((stderr,"%c", s->window[s->strstart]));
- bflush = ct_tally (s, 0, s->window[s->strstart]);
- s->lookahead--;
- s->strstart++;
- }
- if (bflush) FLUSH_BLOCK(s, Z_NO_FLUSH);
- }
- FLUSH_BLOCK(s, flush);
- return 0; /* normal exit */
-}
-
-/* ===========================================================================
- * Same as above, but achieves better compression. We use a lazy
- * evaluation for matches: a match is finally adopted only if there is
- * no better match at the next window position.
- */
-local int deflate_slow(s, flush)
- deflate_state *s;
- int flush;
-{
- IPos hash_head = NIL; /* head of hash chain */
- int bflush; /* set if current block must be flushed */
-
- /* Process the input block. */
- for (;;) {
- /* Make sure that we always have enough lookahead, except
- * at the end of the input file. We need MAX_MATCH bytes
- * for the next match, plus MIN_MATCH bytes to insert the
- * string following the next match.
- */
- if (s->lookahead < MIN_LOOKAHEAD) {
- fill_window(s);
- if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) return 1;
-
- if (s->lookahead == 0) break; /* flush the current block */
- }
-
- /* Insert the string window[strstart .. strstart+2] in the
- * dictionary, and set hash_head to the head of the hash chain:
- */
- if (s->lookahead >= MIN_MATCH) {
- INSERT_STRING(s, s->strstart, hash_head);
- }
-
- /* Find the longest match, discarding those <= prev_length.
- */
- s->prev_length = s->match_length, s->prev_match = s->match_start;
- s->match_length = MIN_MATCH-1;
-
- if (hash_head != NIL && s->prev_length < s->max_lazy_match &&
- s->strstart - hash_head <= MAX_DIST(s)) {
- /* To simplify the code, we prevent matches with the string
- * of window index 0 (in particular we have to avoid a match
- * of the string with itself at the start of the input file).
- */
- if (s->strategy != Z_HUFFMAN_ONLY) {
- s->match_length = longest_match (s, hash_head);
- }
- /* longest_match() sets match_start */
- if (s->match_length > s->lookahead) s->match_length = s->lookahead;
-
- if (s->match_length <= 5 && (s->strategy == Z_FILTERED ||
- (s->match_length == MIN_MATCH &&
- s->strstart - s->match_start > TOO_FAR))) {
-
- /* If prev_match is also MIN_MATCH, match_start is garbage
- * but we will ignore the current match anyway.
- */
- s->match_length = MIN_MATCH-1;
- }
- }
- /* If there was a match at the previous step and the current
- * match is not better, output the previous match:
- */
- if (s->prev_length >= MIN_MATCH && s->match_length <= s->prev_length) {
- uInt max_insert = s->strstart + s->lookahead - MIN_MATCH;
- /* Do not insert strings in hash table beyond this. */
-
- check_match(s, s->strstart-1, s->prev_match, s->prev_length);
-
- bflush = ct_tally(s, s->strstart -1 - s->prev_match,
- s->prev_length - MIN_MATCH);
-
- /* Insert in hash table all strings up to the end of the match.
- * strstart-1 and strstart are already inserted. If there is not
- * enough lookahead, the last two strings are not inserted in
- * the hash table.
- */
- s->lookahead -= s->prev_length-1;
- s->prev_length -= 2;
- do {
- if (++s->strstart <= max_insert) {
- INSERT_STRING(s, s->strstart, hash_head);
- }
- } while (--s->prev_length != 0);
- s->match_available = 0;
- s->match_length = MIN_MATCH-1;
- s->strstart++;
-
- if (bflush) FLUSH_BLOCK(s, Z_NO_FLUSH);
-
- } else if (s->match_available) {
- /* If there was no match at the previous position, output a
- * single literal. If there was a match but the current match
- * is longer, truncate the previous match to a single literal.
- */
- Tracevv((stderr,"%c", s->window[s->strstart-1]));
- if (ct_tally (s, 0, s->window[s->strstart-1])) {
- FLUSH_BLOCK_ONLY(s, Z_NO_FLUSH);
- }
- s->strstart++;
- s->lookahead--;
- if (s->strm->avail_out == 0) return 1;
- } else {
- /* There is no previous match to compare with, wait for
- * the next step to decide.
- */
- s->match_available = 1;
- s->strstart++;
- s->lookahead--;
- }
- }
- Assert (flush != Z_NO_FLUSH, "no flush?");
- if (s->match_available) {
- Tracevv((stderr,"%c", s->window[s->strstart-1]));
- ct_tally (s, 0, s->window[s->strstart-1]);
- s->match_available = 0;
- }
- FLUSH_BLOCK(s, flush);
- return 0;
-}
-
-
-/*+++++*/
-/* trees.c -- output deflated data using Huffman coding
- * Copyright (C) 1995 Jean-loup Gailly
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/*
- * ALGORITHM
- *
- * The "deflation" process uses several Huffman trees. The more
- * common source values are represented by shorter bit sequences.
- *
- * Each code tree is stored in a compressed form which is itself
- * a Huffman encoding of the lengths of all the code strings (in
- * ascending order by source values). The actual code strings are
- * reconstructed from the lengths in the inflate process, as described
- * in the deflate specification.
- *
- * REFERENCES
- *
- * Deutsch, L.P.,"'Deflate' Compressed Data Format Specification".
- * Available in ftp.uu.net:/pub/archiving/zip/doc/deflate-1.1.doc
- *
- * Storer, James A.
- * Data Compression: Methods and Theory, pp. 49-50.
- * Computer Science Press, 1988. ISBN 0-7167-8156-5.
- *
- * Sedgewick, R.
- * Algorithms, p290.
- * Addison-Wesley, 1983. ISBN 0-201-06672-6.
- */
-
-/* From: trees.c,v 1.5 1995/05/03 17:27:12 jloup Exp */
-
-#ifdef DEBUG_ZLIB
-# include <ctype.h>
-#endif
-
-/* ===========================================================================
- * Constants
- */
-
-#define MAX_BL_BITS 7
-/* Bit length codes must not exceed MAX_BL_BITS bits */
-
-#define END_BLOCK 256
-/* end of block literal code */
-
-#define REP_3_6 16
-/* repeat previous bit length 3-6 times (2 bits of repeat count) */
-
-#define REPZ_3_10 17
-/* repeat a zero length 3-10 times (3 bits of repeat count) */
-
-#define REPZ_11_138 18
-/* repeat a zero length 11-138 times (7 bits of repeat count) */
-
-local int extra_lbits[LENGTH_CODES] /* extra bits for each length code */
- = {0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0};
-
-local int extra_dbits[D_CODES] /* extra bits for each distance code */
- = {0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13};
-
-local int extra_blbits[BL_CODES]/* extra bits for each bit length code */
- = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7};
-
-local uch bl_order[BL_CODES]
- = {16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15};
-/* The lengths of the bit length codes are sent in order of decreasing
- * probability, to avoid transmitting the lengths for unused bit length codes.
- */
-
-#define Buf_size (8 * 2*sizeof(char))
-/* Number of bits used within bi_buf. (bi_buf might be implemented on
- * more than 16 bits on some systems.)
- */
-
-/* ===========================================================================
- * Local data. These are initialized only once.
- * To do: initialize at compile time to be completely reentrant. ???
- */
-
-local ct_data static_ltree[L_CODES+2];
-/* The static literal tree. Since the bit lengths are imposed, there is no
- * need for the L_CODES extra codes used during heap construction. However
- * The codes 286 and 287 are needed to build a canonical tree (see ct_init
- * below).
- */
-
-local ct_data static_dtree[D_CODES];
-/* The static distance tree. (Actually a trivial tree since all codes use
- * 5 bits.)
- */
-
-local uch dist_code[512];
-/* distance codes. The first 256 values correspond to the distances
- * 3 .. 258, the last 256 values correspond to the top 8 bits of
- * the 15 bit distances.
- */
-
-local uch length_code[MAX_MATCH-MIN_MATCH+1];
-/* length code for each normalized match length (0 == MIN_MATCH) */
-
-local int base_length[LENGTH_CODES];
-/* First normalized length for each code (0 = MIN_MATCH) */
-
-local int base_dist[D_CODES];
-/* First normalized distance for each code (0 = distance of 1) */
-
-struct static_tree_desc_s {
- ct_data *static_tree; /* static tree or NULL */
- intf *extra_bits; /* extra bits for each code or NULL */
- int extra_base; /* base index for extra_bits */
- int elems; /* max number of elements in the tree */
- int max_length; /* max bit length for the codes */
-};
-
-local static_tree_desc static_l_desc =
-{static_ltree, extra_lbits, LITERALS+1, L_CODES, MAX_BITS};
-
-local static_tree_desc static_d_desc =
-{static_dtree, extra_dbits, 0, D_CODES, MAX_BITS};
-
-local static_tree_desc static_bl_desc =
-{(ct_data *)0, extra_blbits, 0, BL_CODES, MAX_BL_BITS};
-
-/* ===========================================================================
- * Local (static) routines in this file.
- */
-
-local void ct_static_init OF((void));
-local void init_block OF((deflate_state *s));
-local void pqdownheap OF((deflate_state *s, ct_data *tree, int k));
-local void gen_bitlen OF((deflate_state *s, tree_desc *desc));
-local void gen_codes OF((ct_data *tree, int max_code, ushf *bl_count));
-local void build_tree OF((deflate_state *s, tree_desc *desc));
-local void scan_tree OF((deflate_state *s, ct_data *tree, int max_code));
-local void send_tree OF((deflate_state *s, ct_data *tree, int max_code));
-local int build_bl_tree OF((deflate_state *s));
-local void send_all_trees OF((deflate_state *s, int lcodes, int dcodes,
- int blcodes));
-local void compress_block OF((deflate_state *s, ct_data *ltree,
- ct_data *dtree));
-local void set_data_type OF((deflate_state *s));
-local unsigned bi_reverse OF((unsigned value, int length));
-local void bi_windup OF((deflate_state *s));
-local void bi_flush OF((deflate_state *s));
-local void copy_block OF((deflate_state *s, charf *buf, unsigned len,
- int header));
-
-#ifndef DEBUG_ZLIB
-# define send_code(s, c, tree) send_bits(s, tree[c].Code, tree[c].Len)
- /* Send a code of the given tree. c and tree must not have side effects */
-
-#else /* DEBUG_ZLIB */
-# define send_code(s, c, tree) \
- { if (verbose>1) fprintf(stderr,"\ncd %3d ",(c)); \
- send_bits(s, tree[c].Code, tree[c].Len); }
-#endif
-
-#define d_code(dist) \
- ((dist) < 256 ? dist_code[dist] : dist_code[256+((dist)>>7)])
-/* Mapping from a distance to a distance code. dist is the distance - 1 and
- * must not have side effects. dist_code[256] and dist_code[257] are never
- * used.
- */
-
-/* ===========================================================================
- * Output a short LSB first on the stream.
- * IN assertion: there is enough room in pendingBuf.
- */
-#define put_short(s, w) { \
- put_byte(s, (uch)((w) & 0xff)); \
- put_byte(s, (uch)((ush)(w) >> 8)); \
-}
-
-/* ===========================================================================
- * Send a value on a given number of bits.
- * IN assertion: length <= 16 and value fits in length bits.
- */
-#ifdef DEBUG_ZLIB
-local void send_bits OF((deflate_state *s, int value, int length));
-
-local void send_bits(s, value, length)
- deflate_state *s;
- int value; /* value to send */
- int length; /* number of bits */
-{
- Tracev((stderr," l %2d v %4x ", length, value));
- Assert(length > 0 && length <= 15, "invalid length");
- s->bits_sent += (ulg)length;
-
- /* If not enough room in bi_buf, use (valid) bits from bi_buf and
- * (16 - bi_valid) bits from value, leaving (width - (16-bi_valid))
- * unused bits in value.
- */
- if (s->bi_valid > (int)Buf_size - length) {
- s->bi_buf |= (value << s->bi_valid);
- put_short(s, s->bi_buf);
- s->bi_buf = (ush)value >> (Buf_size - s->bi_valid);
- s->bi_valid += length - Buf_size;
- } else {
- s->bi_buf |= value << s->bi_valid;
- s->bi_valid += length;
- }
-}
-#else /* !DEBUG_ZLIB */
-
-#define send_bits(s, value, length) \
-{ int len = length;\
- if (s->bi_valid > (int)Buf_size - len) {\
- int val = value;\
- s->bi_buf |= (val << s->bi_valid);\
- put_short(s, s->bi_buf);\
- s->bi_buf = (ush)val >> (Buf_size - s->bi_valid);\
- s->bi_valid += len - Buf_size;\
- } else {\
- s->bi_buf |= (value) << s->bi_valid;\
- s->bi_valid += len;\
- }\
-}
-#endif /* DEBUG_ZLIB */
-
-
-#define MAX(a,b) (a >= b ? a : b)
-/* the arguments must not have side effects */
-
-/* ===========================================================================
- * Initialize the various 'constant' tables.
- * To do: do this at compile time.
- */
-local void ct_static_init()
-{
- int n; /* iterates over tree elements */
- int bits; /* bit counter */
- int length; /* length value */
- int code; /* code value */
- int dist; /* distance index */
- ush bl_count[MAX_BITS+1];
- /* number of codes at each bit length for an optimal tree */
-
- /* Initialize the mapping length (0..255) -> length code (0..28) */
- length = 0;
- for (code = 0; code < LENGTH_CODES-1; code++) {
- base_length[code] = length;
- for (n = 0; n < (1<<extra_lbits[code]); n++) {
- length_code[length++] = (uch)code;
- }
- }
- Assert (length == 256, "ct_static_init: length != 256");
- /* Note that the length 255 (match length 258) can be represented
- * in two different ways: code 284 + 5 bits or code 285, so we
- * overwrite length_code[255] to use the best encoding:
- */
- length_code[length-1] = (uch)code;
-
- /* Initialize the mapping dist (0..32K) -> dist code (0..29) */
- dist = 0;
- for (code = 0 ; code < 16; code++) {
- base_dist[code] = dist;
- for (n = 0; n < (1<<extra_dbits[code]); n++) {
- dist_code[dist++] = (uch)code;
- }
- }
- Assert (dist == 256, "ct_static_init: dist != 256");
- dist >>= 7; /* from now on, all distances are divided by 128 */
- for ( ; code < D_CODES; code++) {
- base_dist[code] = dist << 7;
- for (n = 0; n < (1<<(extra_dbits[code]-7)); n++) {
- dist_code[256 + dist++] = (uch)code;
- }
- }
- Assert (dist == 256, "ct_static_init: 256+dist != 512");
-
- /* Construct the codes of the static literal tree */
- for (bits = 0; bits <= MAX_BITS; bits++) bl_count[bits] = 0;
- n = 0;
- while (n <= 143) static_ltree[n++].Len = 8, bl_count[8]++;
- while (n <= 255) static_ltree[n++].Len = 9, bl_count[9]++;
- while (n <= 279) static_ltree[n++].Len = 7, bl_count[7]++;
- while (n <= 287) static_ltree[n++].Len = 8, bl_count[8]++;
- /* Codes 286 and 287 do not exist, but we must include them in the
- * tree construction to get a canonical Huffman tree (longest code
- * all ones)
- */
- gen_codes((ct_data *)static_ltree, L_CODES+1, bl_count);
-
- /* The static distance tree is trivial: */
- for (n = 0; n < D_CODES; n++) {
- static_dtree[n].Len = 5;
- static_dtree[n].Code = bi_reverse(n, 5);
- }
-}
-
-/* ===========================================================================
- * Initialize the tree data structures for a new zlib stream.
- */
-local void ct_init(s)
- deflate_state *s;
-{
- if (static_dtree[0].Len == 0) {
- ct_static_init(); /* To do: at compile time */
- }
-
- s->compressed_len = 0L;
-
- s->l_desc.dyn_tree = s->dyn_ltree;
- s->l_desc.stat_desc = &static_l_desc;
-
- s->d_desc.dyn_tree = s->dyn_dtree;
- s->d_desc.stat_desc = &static_d_desc;
-
- s->bl_desc.dyn_tree = s->bl_tree;
- s->bl_desc.stat_desc = &static_bl_desc;
-
- s->bi_buf = 0;
- s->bi_valid = 0;
- s->last_eob_len = 8; /* enough lookahead for inflate */
-#ifdef DEBUG_ZLIB
- s->bits_sent = 0L;
-#endif
- s->blocks_in_packet = 0;
-
- /* Initialize the first block of the first file: */
- init_block(s);
-}
-
-/* ===========================================================================
- * Initialize a new block.
- */
-local void init_block(s)
- deflate_state *s;
-{
- int n; /* iterates over tree elements */
-
- /* Initialize the trees. */
- for (n = 0; n < L_CODES; n++) s->dyn_ltree[n].Freq = 0;
- for (n = 0; n < D_CODES; n++) s->dyn_dtree[n].Freq = 0;
- for (n = 0; n < BL_CODES; n++) s->bl_tree[n].Freq = 0;
-
- s->dyn_ltree[END_BLOCK].Freq = 1;
- s->opt_len = s->static_len = 0L;
- s->last_lit = s->matches = 0;
-}
-
-#define SMALLEST 1
-/* Index within the heap array of least frequent node in the Huffman tree */
-
-
-/* ===========================================================================
- * Remove the smallest element from the heap and recreate the heap with
- * one less element. Updates heap and heap_len.
- */
-#define pqremove(s, tree, top) \
-{\
- top = s->heap[SMALLEST]; \
- s->heap[SMALLEST] = s->heap[s->heap_len--]; \
- pqdownheap(s, tree, SMALLEST); \
-}
-
-/* ===========================================================================
- * Compares to subtrees, using the tree depth as tie breaker when
- * the subtrees have equal frequency. This minimizes the worst case length.
- */
-#define smaller(tree, n, m, depth) \
- (tree[n].Freq < tree[m].Freq || \
- (tree[n].Freq == tree[m].Freq && depth[n] <= depth[m]))
-
-/* ===========================================================================
- * Restore the heap property by moving down the tree starting at node k,
- * exchanging a node with the smallest of its two sons if necessary, stopping
- * when the heap property is re-established (each father smaller than its
- * two sons).
- */
-local void pqdownheap(s, tree, k)
- deflate_state *s;
- ct_data *tree; /* the tree to restore */
- int k; /* node to move down */
-{
- int v = s->heap[k];
- int j = k << 1; /* left son of k */
- while (j <= s->heap_len) {
- /* Set j to the smallest of the two sons: */
- if (j < s->heap_len &&
- smaller(tree, s->heap[j+1], s->heap[j], s->depth)) {
- j++;
- }
- /* Exit if v is smaller than both sons */
- if (smaller(tree, v, s->heap[j], s->depth)) break;
-
- /* Exchange v with the smallest son */
- s->heap[k] = s->heap[j]; k = j;
-
- /* And continue down the tree, setting j to the left son of k */
- j <<= 1;
- }
- s->heap[k] = v;
-}
-
-/* ===========================================================================
- * Compute the optimal bit lengths for a tree and update the total bit length
- * for the current block.
- * IN assertion: the fields freq and dad are set, heap[heap_max] and
- * above are the tree nodes sorted by increasing frequency.
- * OUT assertions: the field len is set to the optimal bit length, the
- * array bl_count contains the frequencies for each bit length.
- * The length opt_len is updated; static_len is also updated if stree is
- * not null.
- */
-local void gen_bitlen(s, desc)
- deflate_state *s;
- tree_desc *desc; /* the tree descriptor */
-{
- ct_data *tree = desc->dyn_tree;
- int max_code = desc->max_code;
- ct_data *stree = desc->stat_desc->static_tree;
- intf *extra = desc->stat_desc->extra_bits;
- int base = desc->stat_desc->extra_base;
- int max_length = desc->stat_desc->max_length;
- int h; /* heap index */
- int n, m; /* iterate over the tree elements */
- int bits; /* bit length */
- int xbits; /* extra bits */
- ush f; /* frequency */
- int overflow = 0; /* number of elements with bit length too large */
-
- for (bits = 0; bits <= MAX_BITS; bits++) s->bl_count[bits] = 0;
-
- /* In a first pass, compute the optimal bit lengths (which may
- * overflow in the case of the bit length tree).
- */
- tree[s->heap[s->heap_max]].Len = 0; /* root of the heap */
-
- for (h = s->heap_max+1; h < HEAP_SIZE; h++) {
- n = s->heap[h];
- bits = tree[tree[n].Dad].Len + 1;
- if (bits > max_length) bits = max_length, overflow++;
- tree[n].Len = (ush)bits;
- /* We overwrite tree[n].Dad which is no longer needed */
-
- if (n > max_code) continue; /* not a leaf node */
-
- s->bl_count[bits]++;
- xbits = 0;
- if (n >= base) xbits = extra[n-base];
- f = tree[n].Freq;
- s->opt_len += (ulg)f * (bits + xbits);
- if (stree) s->static_len += (ulg)f * (stree[n].Len + xbits);
- }
- if (overflow == 0) return;
-
- Trace((stderr,"\nbit length overflow\n"));
- /* This happens for example on obj2 and pic of the Calgary corpus */
-
- /* Find the first bit length which could increase: */
- do {
- bits = max_length-1;
- while (s->bl_count[bits] == 0) bits--;
- s->bl_count[bits]--; /* move one leaf down the tree */
- s->bl_count[bits+1] += 2; /* move one overflow item as its brother */
- s->bl_count[max_length]--;
- /* The brother of the overflow item also moves one step up,
- * but this does not affect bl_count[max_length]
- */
- overflow -= 2;
- } while (overflow > 0);
-
- /* Now recompute all bit lengths, scanning in increasing frequency.
- * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all
- * lengths instead of fixing only the wrong ones. This idea is taken
- * from 'ar' written by Haruhiko Okumura.)
- */
- for (bits = max_length; bits != 0; bits--) {
- n = s->bl_count[bits];
- while (n != 0) {
- m = s->heap[--h];
- if (m > max_code) continue;
- if (tree[m].Len != (unsigned) bits) {
- Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits));
- s->opt_len += ((long)bits - (long)tree[m].Len)
- *(long)tree[m].Freq;
- tree[m].Len = (ush)bits;
- }
- n--;
- }
- }
-}
-
-/* ===========================================================================
- * Generate the codes for a given tree and bit counts (which need not be
- * optimal).
- * IN assertion: the array bl_count contains the bit length statistics for
- * the given tree and the field len is set for all tree elements.
- * OUT assertion: the field code is set for all tree elements of non
- * zero code length.
- */
-local void gen_codes (tree, max_code, bl_count)
- ct_data *tree; /* the tree to decorate */
- int max_code; /* largest code with non zero frequency */
- ushf *bl_count; /* number of codes at each bit length */
-{
- ush next_code[MAX_BITS+1]; /* next code value for each bit length */
- ush code = 0; /* running code value */
- int bits; /* bit index */
- int n; /* code index */
-
- /* The distribution counts are first used to generate the code values
- * without bit reversal.
- */
- for (bits = 1; bits <= MAX_BITS; bits++) {
- next_code[bits] = code = (code + bl_count[bits-1]) << 1;
- }
- /* Check that the bit counts in bl_count are consistent. The last code
- * must be all ones.
- */
- Assert (code + bl_count[MAX_BITS]-1 == (1<<MAX_BITS)-1,
- "inconsistent bit counts");
- Tracev((stderr,"\ngen_codes: max_code %d ", max_code));
-
- for (n = 0; n <= max_code; n++) {
- int len = tree[n].Len;
- if (len == 0) continue;
- /* Now reverse the bits */
- tree[n].Code = bi_reverse(next_code[len]++, len);
-
- Tracec(tree != static_ltree, (stderr,"\nn %3d %c l %2d c %4x (%x) ",
- n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));
- }
-}
-
-/* ===========================================================================
- * Construct one Huffman tree and assigns the code bit strings and lengths.
- * Update the total bit length for the current block.
- * IN assertion: the field freq is set for all tree elements.
- * OUT assertions: the fields len and code are set to the optimal bit length
- * and corresponding code. The length opt_len is updated; static_len is
- * also updated if stree is not null. The field max_code is set.
- */
-local void build_tree(s, desc)
- deflate_state *s;
- tree_desc *desc; /* the tree descriptor */
-{
- ct_data *tree = desc->dyn_tree;
- ct_data *stree = desc->stat_desc->static_tree;
- int elems = desc->stat_desc->elems;
- int n, m; /* iterate over heap elements */
- int max_code = -1; /* largest code with non zero frequency */
- int node; /* new node being created */
-
- /* Construct the initial heap, with least frequent element in
- * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].
- * heap[0] is not used.
- */
- s->heap_len = 0, s->heap_max = HEAP_SIZE;
-
- for (n = 0; n < elems; n++) {
- if (tree[n].Freq != 0) {
- s->heap[++(s->heap_len)] = max_code = n;
- s->depth[n] = 0;
- } else {
- tree[n].Len = 0;
- }
- }
-
- /* The pkzip format requires that at least one distance code exists,
- * and that at least one bit should be sent even if there is only one
- * possible code. So to avoid special checks later on we force at least
- * two codes of non zero frequency.
- */
- while (s->heap_len < 2) {
- node = s->heap[++(s->heap_len)] = (max_code < 2 ? ++max_code : 0);
- tree[node].Freq = 1;
- s->depth[node] = 0;
- s->opt_len--; if (stree) s->static_len -= stree[node].Len;
- /* node is 0 or 1 so it does not have extra bits */
- }
- desc->max_code = max_code;
-
- /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,
- * establish sub-heaps of increasing lengths:
- */
- for (n = s->heap_len/2; n >= 1; n--) pqdownheap(s, tree, n);
-
- /* Construct the Huffman tree by repeatedly combining the least two
- * frequent nodes.
- */
- node = elems; /* next internal node of the tree */
- do {
- pqremove(s, tree, n); /* n = node of least frequency */
- m = s->heap[SMALLEST]; /* m = node of next least frequency */
-
- s->heap[--(s->heap_max)] = n; /* keep the nodes sorted by frequency */
- s->heap[--(s->heap_max)] = m;
-
- /* Create a new node father of n and m */
- tree[node].Freq = tree[n].Freq + tree[m].Freq;
- s->depth[node] = (uch) (MAX(s->depth[n], s->depth[m]) + 1);
- tree[n].Dad = tree[m].Dad = (ush)node;
-#ifdef DUMP_BL_TREE
- if (tree == s->bl_tree) {
- fprintf(stderr,"\nnode %d(%d), sons %d(%d) %d(%d)",
- node, tree[node].Freq, n, tree[n].Freq, m, tree[m].Freq);
- }
-#endif
- /* and insert the new node in the heap */
- s->heap[SMALLEST] = node++;
- pqdownheap(s, tree, SMALLEST);
-
- } while (s->heap_len >= 2);
-
- s->heap[--(s->heap_max)] = s->heap[SMALLEST];
-
- /* At this point, the fields freq and dad are set. We can now
- * generate the bit lengths.
- */
- gen_bitlen(s, (tree_desc *)desc);
-
- /* The field len is now set, we can generate the bit codes */
- gen_codes ((ct_data *)tree, max_code, s->bl_count);
-}
-
-/* ===========================================================================
- * Scan a literal or distance tree to determine the frequencies of the codes
- * in the bit length tree.
- */
-local void scan_tree (s, tree, max_code)
- deflate_state *s;
- ct_data *tree; /* the tree to be scanned */
- int max_code; /* and its largest code of non zero frequency */
-{
- int n; /* iterates over all tree elements */
- int prevlen = -1; /* last emitted length */
- int curlen; /* length of current code */
- int nextlen = tree[0].Len; /* length of next code */
- int count = 0; /* repeat count of the current code */
- int max_count = 7; /* max repeat count */
- int min_count = 4; /* min repeat count */
-
- if (nextlen == 0) max_count = 138, min_count = 3;
- tree[max_code+1].Len = (ush)0xffff; /* guard */
-
- for (n = 0; n <= max_code; n++) {
- curlen = nextlen; nextlen = tree[n+1].Len;
- if (++count < max_count && curlen == nextlen) {
- continue;
- } else if (count < min_count) {
- s->bl_tree[curlen].Freq += count;
- } else if (curlen != 0) {
- if (curlen != prevlen) s->bl_tree[curlen].Freq++;
- s->bl_tree[REP_3_6].Freq++;
- } else if (count <= 10) {
- s->bl_tree[REPZ_3_10].Freq++;
- } else {
- s->bl_tree[REPZ_11_138].Freq++;
- }
- count = 0; prevlen = curlen;
- if (nextlen == 0) {
- max_count = 138, min_count = 3;
- } else if (curlen == nextlen) {
- max_count = 6, min_count = 3;
- } else {
- max_count = 7, min_count = 4;
- }
- }
-}
-
-/* ===========================================================================
- * Send a literal or distance tree in compressed form, using the codes in
- * bl_tree.
- */
-local void send_tree (s, tree, max_code)
- deflate_state *s;
- ct_data *tree; /* the tree to be scanned */
- int max_code; /* and its largest code of non zero frequency */
-{
- int n; /* iterates over all tree elements */
- int prevlen = -1; /* last emitted length */
- int curlen; /* length of current code */
- int nextlen = tree[0].Len; /* length of next code */
- int count = 0; /* repeat count of the current code */
- int max_count = 7; /* max repeat count */
- int min_count = 4; /* min repeat count */
-
- /* tree[max_code+1].Len = -1; */ /* guard already set */
- if (nextlen == 0) max_count = 138, min_count = 3;
-
- for (n = 0; n <= max_code; n++) {
- curlen = nextlen; nextlen = tree[n+1].Len;
- if (++count < max_count && curlen == nextlen) {
- continue;
- } else if (count < min_count) {
- do { send_code(s, curlen, s->bl_tree); } while (--count != 0);
-
- } else if (curlen != 0) {
- if (curlen != prevlen) {
- send_code(s, curlen, s->bl_tree); count--;
- }
- Assert(count >= 3 && count <= 6, " 3_6?");
- send_code(s, REP_3_6, s->bl_tree); send_bits(s, count-3, 2);
-
- } else if (count <= 10) {
- send_code(s, REPZ_3_10, s->bl_tree); send_bits(s, count-3, 3);
-
- } else {
- send_code(s, REPZ_11_138, s->bl_tree); send_bits(s, count-11, 7);
- }
- count = 0; prevlen = curlen;
- if (nextlen == 0) {
- max_count = 138, min_count = 3;
- } else if (curlen == nextlen) {
- max_count = 6, min_count = 3;
- } else {
- max_count = 7, min_count = 4;
- }
- }
-}
-
-/* ===========================================================================
- * Construct the Huffman tree for the bit lengths and return the index in
- * bl_order of the last bit length code to send.
- */
-local int build_bl_tree(s)
- deflate_state *s;
-{
- int max_blindex; /* index of last bit length code of non zero freq */
-
- /* Determine the bit length frequencies for literal and distance trees */
- scan_tree(s, (ct_data *)s->dyn_ltree, s->l_desc.max_code);
- scan_tree(s, (ct_data *)s->dyn_dtree, s->d_desc.max_code);
-
- /* Build the bit length tree: */
- build_tree(s, (tree_desc *)(&(s->bl_desc)));
- /* opt_len now includes the length of the tree representations, except
- * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.
- */
-
- /* Determine the number of bit length codes to send. The pkzip format
- * requires that at least 4 bit length codes be sent. (appnote.txt says
- * 3 but the actual value used is 4.)
- */
- for (max_blindex = BL_CODES-1; max_blindex >= 3; max_blindex--) {
- if (s->bl_tree[bl_order[max_blindex]].Len != 0) break;
- }
- /* Update opt_len to include the bit length tree and counts */
- s->opt_len += 3*(max_blindex+1) + 5+5+4;
- Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld",
- s->opt_len, s->static_len));
-
- return max_blindex;
-}
-
-/* ===========================================================================
- * Send the header for a block using dynamic Huffman trees: the counts, the
- * lengths of the bit length codes, the literal tree and the distance tree.
- * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.
- */
-local void send_all_trees(s, lcodes, dcodes, blcodes)
- deflate_state *s;
- int lcodes, dcodes, blcodes; /* number of codes for each tree */
-{
- int rank; /* index in bl_order */
-
- Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes");
- Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,
- "too many codes");
- Tracev((stderr, "\nbl counts: "));
- send_bits(s, lcodes-257, 5); /* not +255 as stated in appnote.txt */
- send_bits(s, dcodes-1, 5);
- send_bits(s, blcodes-4, 4); /* not -3 as stated in appnote.txt */
- for (rank = 0; rank < blcodes; rank++) {
- Tracev((stderr, "\nbl code %2d ", bl_order[rank]));
- send_bits(s, s->bl_tree[bl_order[rank]].Len, 3);
- }
- Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent));
-
- send_tree(s, (ct_data *)s->dyn_ltree, lcodes-1); /* literal tree */
- Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent));
-
- send_tree(s, (ct_data *)s->dyn_dtree, dcodes-1); /* distance tree */
- Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent));
-}
-
-/* ===========================================================================
- * Send a stored block
- */
-local void ct_stored_block(s, buf, stored_len, eof)
- deflate_state *s;
- charf *buf; /* input block */
- ulg stored_len; /* length of input block */
- int eof; /* true if this is the last block for a file */
-{
- send_bits(s, (STORED_BLOCK<<1)+eof, 3); /* send block type */
- s->compressed_len = (s->compressed_len + 3 + 7) & ~7L;
- s->compressed_len += (stored_len + 4) << 3;
-
- copy_block(s, buf, (unsigned)stored_len, 1); /* with header */
-}
-
-/* Send just the `stored block' type code without any length bytes or data.
- */
-local void ct_stored_type_only(s)
- deflate_state *s;
-{
- send_bits(s, (STORED_BLOCK << 1), 3);
- bi_windup(s);
- s->compressed_len = (s->compressed_len + 3) & ~7L;
-}
-
-
-/* ===========================================================================
- * Send one empty static block to give enough lookahead for inflate.
- * This takes 10 bits, of which 7 may remain in the bit buffer.
- * The current inflate code requires 9 bits of lookahead. If the EOB
- * code for the previous block was coded on 5 bits or less, inflate
- * may have only 5+3 bits of lookahead to decode this EOB.
- * (There are no problems if the previous block is stored or fixed.)
- */
-local void ct_align(s)
- deflate_state *s;
-{
- send_bits(s, STATIC_TREES<<1, 3);
- send_code(s, END_BLOCK, static_ltree);
- s->compressed_len += 10L; /* 3 for block type, 7 for EOB */
- bi_flush(s);
- /* Of the 10 bits for the empty block, we have already sent
- * (10 - bi_valid) bits. The lookahead for the EOB of the previous
- * block was thus its length plus what we have just sent.
- */
- if (s->last_eob_len + 10 - s->bi_valid < 9) {
- send_bits(s, STATIC_TREES<<1, 3);
- send_code(s, END_BLOCK, static_ltree);
- s->compressed_len += 10L;
- bi_flush(s);
- }
- s->last_eob_len = 7;
-}
-
-/* ===========================================================================
- * Determine the best encoding for the current block: dynamic trees, static
- * trees or store, and output the encoded block to the zip file. This function
- * returns the total compressed length for the file so far.
- */
-local ulg ct_flush_block(s, buf, stored_len, flush)
- deflate_state *s;
- charf *buf; /* input block, or NULL if too old */
- ulg stored_len; /* length of input block */
- int flush; /* Z_FINISH if this is the last block for a file */
-{
- ulg opt_lenb, static_lenb; /* opt_len and static_len in bytes */
- int max_blindex; /* index of last bit length code of non zero freq */
- int eof = flush == Z_FINISH;
-
- ++s->blocks_in_packet;
-
- /* Check if the file is ascii or binary */
- if (s->data_type == UNKNOWN) set_data_type(s);
-
- /* Construct the literal and distance trees */
- build_tree(s, (tree_desc *)(&(s->l_desc)));
- Tracev((stderr, "\nlit data: dyn %ld, stat %ld", s->opt_len,
- s->static_len));
-
- build_tree(s, (tree_desc *)(&(s->d_desc)));
- Tracev((stderr, "\ndist data: dyn %ld, stat %ld", s->opt_len,
- s->static_len));
- /* At this point, opt_len and static_len are the total bit lengths of
- * the compressed block data, excluding the tree representations.
- */
-
- /* Build the bit length tree for the above two trees, and get the index
- * in bl_order of the last bit length code to send.
- */
- max_blindex = build_bl_tree(s);
-
- /* Determine the best encoding. Compute first the block length in bytes */
- opt_lenb = (s->opt_len+3+7)>>3;
- static_lenb = (s->static_len+3+7)>>3;
-
- Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ",
- opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,
- s->last_lit));
-
- if (static_lenb <= opt_lenb) opt_lenb = static_lenb;
-
- /* If compression failed and this is the first and last block,
- * and if the .zip file can be seeked (to rewrite the local header),
- * the whole file is transformed into a stored file:
- */
-#ifdef STORED_FILE_OK
-# ifdef FORCE_STORED_FILE
- if (eof && compressed_len == 0L) /* force stored file */
-# else
- if (stored_len <= opt_lenb && eof && s->compressed_len==0L && seekable())
-# endif
- {
- /* Since LIT_BUFSIZE <= 2*WSIZE, the input data must be there: */
- if (buf == (charf*)0) error ("block vanished");
-
- copy_block(buf, (unsigned)stored_len, 0); /* without header */
- s->compressed_len = stored_len << 3;
- s->method = STORED;
- } else
-#endif /* STORED_FILE_OK */
-
- /* For Z_PACKET_FLUSH, if we don't achieve the required minimum
- * compression, and this block contains all the data since the last
- * time we used Z_PACKET_FLUSH, then just omit this block completely
- * from the output.
- */
- if (flush == Z_PACKET_FLUSH && s->blocks_in_packet == 1
- && opt_lenb > stored_len - s->minCompr) {
- s->blocks_in_packet = 0;
- /* output nothing */
- } else
-
-#ifdef FORCE_STORED
- if (buf != (char*)0) /* force stored block */
-#else
- if (stored_len+4 <= opt_lenb && buf != (char*)0)
- /* 4: two words for the lengths */
-#endif
- {
- /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
- * Otherwise we can't have processed more than WSIZE input bytes since
- * the last block flush, because compression would have been
- * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to
- * transform a block into a stored block.
- */
- ct_stored_block(s, buf, stored_len, eof);
- } else
-
-#ifdef FORCE_STATIC
- if (static_lenb >= 0) /* force static trees */
-#else
- if (static_lenb == opt_lenb)
-#endif
- {
- send_bits(s, (STATIC_TREES<<1)+eof, 3);
- compress_block(s, (ct_data *)static_ltree, (ct_data *)static_dtree);
- s->compressed_len += 3 + s->static_len;
- } else {
- send_bits(s, (DYN_TREES<<1)+eof, 3);
- send_all_trees(s, s->l_desc.max_code+1, s->d_desc.max_code+1,
- max_blindex+1);
- compress_block(s, (ct_data *)s->dyn_ltree, (ct_data *)s->dyn_dtree);
- s->compressed_len += 3 + s->opt_len;
- }
- Assert (s->compressed_len == s->bits_sent, "bad compressed size");
- init_block(s);
-
- if (eof) {
- bi_windup(s);
- s->compressed_len += 7; /* align on byte boundary */
- }
- Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3,
- s->compressed_len-7*eof));
-
- return s->compressed_len >> 3;
-}
-
-/* ===========================================================================
- * Save the match info and tally the frequency counts. Return true if
- * the current block must be flushed.
- */
-local int ct_tally (s, dist, lc)
- deflate_state *s;
- int dist; /* distance of matched string */
- int lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */
-{
- s->d_buf[s->last_lit] = (ush)dist;
- s->l_buf[s->last_lit++] = (uch)lc;
- if (dist == 0) {
- /* lc is the unmatched char */
- s->dyn_ltree[lc].Freq++;
- } else {
- s->matches++;
- /* Here, lc is the match length - MIN_MATCH */
- dist--; /* dist = match distance - 1 */
- Assert((ush)dist < (ush)MAX_DIST(s) &&
- (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&
- (ush)d_code(dist) < (ush)D_CODES, "ct_tally: bad match");
-
- s->dyn_ltree[length_code[lc]+LITERALS+1].Freq++;
- s->dyn_dtree[d_code(dist)].Freq++;
- }
-
- /* Try to guess if it is profitable to stop the current block here */
- if (s->level > 2 && (s->last_lit & 0xfff) == 0) {
- /* Compute an upper bound for the compressed length */
- ulg out_length = (ulg)s->last_lit*8L;
- ulg in_length = (ulg)s->strstart - s->block_start;
- int dcode;
- for (dcode = 0; dcode < D_CODES; dcode++) {
- out_length += (ulg)s->dyn_dtree[dcode].Freq *
- (5L+extra_dbits[dcode]);
- }
- out_length >>= 3;
- Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ",
- s->last_lit, in_length, out_length,
- 100L - out_length*100L/in_length));
- if (s->matches < s->last_lit/2 && out_length < in_length/2) return 1;
- }
- return (s->last_lit == s->lit_bufsize-1);
- /* We avoid equality with lit_bufsize because of wraparound at 64K
- * on 16 bit machines and because stored blocks are restricted to
- * 64K-1 bytes.
- */
-}
-
-/* ===========================================================================
- * Send the block data compressed using the given Huffman trees
- */
-local void compress_block(s, ltree, dtree)
- deflate_state *s;
- ct_data *ltree; /* literal tree */
- ct_data *dtree; /* distance tree */
-{
- unsigned dist; /* distance of matched string */
- int lc; /* match length or unmatched char (if dist == 0) */
- unsigned lx = 0; /* running index in l_buf */
- unsigned code; /* the code to send */
- int extra; /* number of extra bits to send */
-
- if (s->last_lit != 0) do {
- dist = s->d_buf[lx];
- lc = s->l_buf[lx++];
- if (dist == 0) {
- send_code(s, lc, ltree); /* send a literal byte */
- Tracecv(isgraph(lc), (stderr," '%c' ", lc));
- } else {
- /* Here, lc is the match length - MIN_MATCH */
- code = length_code[lc];
- send_code(s, code+LITERALS+1, ltree); /* send the length code */
- extra = extra_lbits[code];
- if (extra != 0) {
- lc -= base_length[code];
- send_bits(s, lc, extra); /* send the extra length bits */
- }
- dist--; /* dist is now the match distance - 1 */
- code = d_code(dist);
- Assert (code < D_CODES, "bad d_code");
-
- send_code(s, code, dtree); /* send the distance code */
- extra = extra_dbits[code];
- if (extra != 0) {
- dist -= base_dist[code];
- send_bits(s, dist, extra); /* send the extra distance bits */
- }
- } /* literal or match pair ? */
-
- /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */
- Assert(s->pending < s->lit_bufsize + 2*lx, "pendingBuf overflow");
-
- } while (lx < s->last_lit);
-
- send_code(s, END_BLOCK, ltree);
- s->last_eob_len = ltree[END_BLOCK].Len;
-}
-
-/* ===========================================================================
- * Set the data type to ASCII or BINARY, using a crude approximation:
- * binary if more than 20% of the bytes are <= 6 or >= 128, ascii otherwise.
- * IN assertion: the fields freq of dyn_ltree are set and the total of all
- * frequencies does not exceed 64K (to fit in an int on 16 bit machines).
- */
-local void set_data_type(s)
- deflate_state *s;
-{
- int n = 0;
- unsigned ascii_freq = 0;
- unsigned bin_freq = 0;
- while (n < 7) bin_freq += s->dyn_ltree[n++].Freq;
- while (n < 128) ascii_freq += s->dyn_ltree[n++].Freq;
- while (n < LITERALS) bin_freq += s->dyn_ltree[n++].Freq;
- s->data_type = (Byte)(bin_freq > (ascii_freq >> 2) ? BINARY : ASCII);
-}
-
-/* ===========================================================================
- * Reverse the first len bits of a code, using straightforward code (a faster
- * method would use a table)
- * IN assertion: 1 <= len <= 15
- */
-local unsigned bi_reverse(code, len)
- unsigned code; /* the value to invert */
- int len; /* its bit length */
-{
- register unsigned res = 0;
- do {
- res |= code & 1;
- code >>= 1, res <<= 1;
- } while (--len > 0);
- return res >> 1;
-}
-
-/* ===========================================================================
- * Flush the bit buffer, keeping at most 7 bits in it.
- */
-local void bi_flush(s)
- deflate_state *s;
-{
- if (s->bi_valid == 16) {
- put_short(s, s->bi_buf);
- s->bi_buf = 0;
- s->bi_valid = 0;
- } else if (s->bi_valid >= 8) {
- put_byte(s, (Byte)s->bi_buf);
- s->bi_buf >>= 8;
- s->bi_valid -= 8;
- }
-}
-
-/* ===========================================================================
- * Flush the bit buffer and align the output on a byte boundary
- */
-local void bi_windup(s)
- deflate_state *s;
-{
- if (s->bi_valid > 8) {
- put_short(s, s->bi_buf);
- } else if (s->bi_valid > 0) {
- put_byte(s, (Byte)s->bi_buf);
- }
- s->bi_buf = 0;
- s->bi_valid = 0;
-#ifdef DEBUG_ZLIB
- s->bits_sent = (s->bits_sent+7) & ~7;
-#endif
-}
-
-/* ===========================================================================
- * Copy a stored block, storing first the length and its
- * one's complement if requested.
- */
-local void copy_block(s, buf, len, header)
- deflate_state *s;
- charf *buf; /* the input data */
- unsigned len; /* its length */
- int header; /* true if block header must be written */
-{
- bi_windup(s); /* align on byte boundary */
- s->last_eob_len = 8; /* enough lookahead for inflate */
-
- if (header) {
- put_short(s, (ush)len);
- put_short(s, (ush)~len);
-#ifdef DEBUG_ZLIB
- s->bits_sent += 2*16;
-#endif
- }
-#ifdef DEBUG_ZLIB
- s->bits_sent += (ulg)len<<3;
-#endif
- while (len--) {
- put_byte(s, *buf++);
- }
-}
-
-
-/*+++++*/
-/* infblock.h -- header to use infblock.c
- * Copyright (C) 1995 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
- part of the implementation of the compression library and is
- subject to change. Applications should only use zlib.h.
- */
-
-struct inflate_blocks_state;
-typedef struct inflate_blocks_state FAR inflate_blocks_statef;
-
-local inflate_blocks_statef * inflate_blocks_new OF((
- z_stream *z,
- check_func c, /* check function */
- uInt w)); /* window size */
-
-local int inflate_blocks OF((
- inflate_blocks_statef *,
- z_stream *,
- int)); /* initial return code */
-
-local void inflate_blocks_reset OF((
- inflate_blocks_statef *,
- z_stream *,
- uLongf *)); /* check value on output */
-
-local int inflate_blocks_free OF((
- inflate_blocks_statef *,
- z_stream *,
- uLongf *)); /* check value on output */
-
-local int inflate_addhistory OF((
- inflate_blocks_statef *,
- z_stream *));
-
-local int inflate_packet_flush OF((
- inflate_blocks_statef *));
-
-/*+++++*/
-/* inftrees.h -- header to use inftrees.c
- * Copyright (C) 1995 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
- part of the implementation of the compression library and is
- subject to change. Applications should only use zlib.h.
- */
-
-/* Huffman code lookup table entry--this entry is four bytes for machines
- that have 16-bit pointers (e.g. PC's in the small or medium model). */
-
-typedef struct inflate_huft_s FAR inflate_huft;
-
-struct inflate_huft_s {
- union {
- struct {
- Byte Exop; /* number of extra bits or operation */
- Byte Bits; /* number of bits in this code or subcode */
- } what;
- uInt Nalloc; /* number of these allocated here */
- Bytef *pad; /* pad structure to a power of 2 (4 bytes for */
- } word; /* 16-bit, 8 bytes for 32-bit machines) */
- union {
- uInt Base; /* literal, length base, or distance base */
- inflate_huft *Next; /* pointer to next level of table */
- } more;
-};
-
-#ifdef DEBUG_ZLIB
- local uInt inflate_hufts;
-#endif
-
-local int inflate_trees_bits OF((
- uIntf *, /* 19 code lengths */
- uIntf *, /* bits tree desired/actual depth */
- inflate_huft * FAR *, /* bits tree result */
- z_stream *)); /* for zalloc, zfree functions */
-
-local int inflate_trees_dynamic OF((
- uInt, /* number of literal/length codes */
- uInt, /* number of distance codes */
- uIntf *, /* that many (total) code lengths */
- uIntf *, /* literal desired/actual bit depth */
- uIntf *, /* distance desired/actual bit depth */
- inflate_huft * FAR *, /* literal/length tree result */
- inflate_huft * FAR *, /* distance tree result */
- z_stream *)); /* for zalloc, zfree functions */
-
-local int inflate_trees_fixed OF((
- uIntf *, /* literal desired/actual bit depth */
- uIntf *, /* distance desired/actual bit depth */
- inflate_huft * FAR *, /* literal/length tree result */
- inflate_huft * FAR *)); /* distance tree result */
-
-local int inflate_trees_free OF((
- inflate_huft *, /* tables to free */
- z_stream *)); /* for zfree function */
-
-
-/*+++++*/
-/* infcodes.h -- header to use infcodes.c
- * Copyright (C) 1995 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
- part of the implementation of the compression library and is
- subject to change. Applications should only use zlib.h.
- */
-
-struct inflate_codes_state;
-typedef struct inflate_codes_state FAR inflate_codes_statef;
-
-local inflate_codes_statef *inflate_codes_new OF((
- uInt, uInt,
- inflate_huft *, inflate_huft *,
- z_stream *));
-
-local int inflate_codes OF((
- inflate_blocks_statef *,
- z_stream *,
- int));
-
-local void inflate_codes_free OF((
- inflate_codes_statef *,
- z_stream *));
-
-
-/*+++++*/
-/* inflate.c -- zlib interface to inflate modules
- * Copyright (C) 1995 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* inflate private state */
-struct internal_state {
-
- /* mode */
- enum {
- METHOD, /* waiting for method byte */
- FLAG, /* waiting for flag byte */
- BLOCKS, /* decompressing blocks */
- CHECK4, /* four check bytes to go */
- CHECK3, /* three check bytes to go */
- CHECK2, /* two check bytes to go */
- CHECK1, /* one check byte to go */
- DONE, /* finished check, done */
- BAD} /* got an error--stay here */
- mode; /* current inflate mode */
-
- /* mode dependent information */
- union {
- uInt method; /* if FLAGS, method byte */
- struct {
- uLong was; /* computed check value */
- uLong need; /* stream check value */
- } check; /* if CHECK, check values to compare */
- uInt marker; /* if BAD, inflateSync's marker bytes count */
- } sub; /* submode */
-
- /* mode independent information */
- int nowrap; /* flag for no wrapper */
- uInt wbits; /* log2(window size) (8..15, defaults to 15) */
- inflate_blocks_statef
- *blocks; /* current inflate_blocks state */
-
-};
-
-
-int inflateReset(z)
-z_stream *z;
-{
- uLong c;
-
- if (z == Z_NULL || z->state == Z_NULL)
- return Z_STREAM_ERROR;
- z->total_in = z->total_out = 0;
- z->msg = Z_NULL;
- z->state->mode = z->state->nowrap ? BLOCKS : METHOD;
- inflate_blocks_reset(z->state->blocks, z, &c);
- Trace((stderr, "inflate: reset\n"));
- return Z_OK;
-}
-
-
-int inflateEnd(z)
-z_stream *z;
-{
- uLong c;
-
- if (z == Z_NULL || z->state == Z_NULL || z->zfree == Z_NULL)
- return Z_STREAM_ERROR;
- if (z->state->blocks != Z_NULL)
- inflate_blocks_free(z->state->blocks, z, &c);
- ZFREE(z, z->state, sizeof(struct internal_state));
- z->state = Z_NULL;
- Trace((stderr, "inflate: end\n"));
- return Z_OK;
-}
-
-
-int inflateInit2(z, w)
-z_stream *z;
-int w;
-{
- /* initialize state */
- if (z == Z_NULL)
- return Z_STREAM_ERROR;
-/* if (z->zalloc == Z_NULL) z->zalloc = zcalloc; */
-/* if (z->zfree == Z_NULL) z->zfree = zcfree; */
- if ((z->state = (struct internal_state FAR *)
- ZALLOC(z,1,sizeof(struct internal_state))) == Z_NULL)
- return Z_MEM_ERROR;
- z->state->blocks = Z_NULL;
-
- /* handle undocumented nowrap option (no zlib header or check) */
- z->state->nowrap = 0;
- if (w < 0)
- {
- w = - w;
- z->state->nowrap = 1;
- }
-
- /* set window size */
- if (w < 8 || w > 15)
- {
- inflateEnd(z);
- return Z_STREAM_ERROR;
- }
- z->state->wbits = (uInt)w;
-
- /* create inflate_blocks state */
- if ((z->state->blocks =
- inflate_blocks_new(z, z->state->nowrap ? Z_NULL : adler32, 1 << w))
- == Z_NULL)
- {
- inflateEnd(z);
- return Z_MEM_ERROR;
- }
- Trace((stderr, "inflate: allocated\n"));
-
- /* reset state */
- inflateReset(z);
- return Z_OK;
-}
-
-
-int inflateInit(z)
-z_stream *z;
-{
- return inflateInit2(z, DEF_WBITS);
-}
-
-
-#define NEEDBYTE {if(z->avail_in==0)goto empty;r=Z_OK;}
-#define NEXTBYTE (z->avail_in--,z->total_in++,*z->next_in++)
-
-int inflate(z, f)
-z_stream *z;
-int f;
-{
- int r;
- uInt b;
-
- if (z == Z_NULL || z->next_in == Z_NULL)
- return Z_STREAM_ERROR;
- r = Z_BUF_ERROR;
- while (1) switch (z->state->mode)
- {
- case METHOD:
- NEEDBYTE
- if (((z->state->sub.method = NEXTBYTE) & 0xf) != DEFLATED)
- {
- z->state->mode = BAD;
- z->msg = "unknown compression method";
- z->state->sub.marker = 5; /* can't try inflateSync */
- break;
- }
- if ((z->state->sub.method >> 4) + 8 > z->state->wbits)
- {
- z->state->mode = BAD;
- z->msg = "invalid window size";
- z->state->sub.marker = 5; /* can't try inflateSync */
- break;
- }
- z->state->mode = FLAG;
- case FLAG:
- NEEDBYTE
- if ((b = NEXTBYTE) & 0x20)
- {
- z->state->mode = BAD;
- z->msg = "invalid reserved bit";
- z->state->sub.marker = 5; /* can't try inflateSync */
- break;
- }
- if (((z->state->sub.method << 8) + b) % 31)
- {
- z->state->mode = BAD;
- z->msg = "incorrect header check";
- z->state->sub.marker = 5; /* can't try inflateSync */
- break;
- }
- Trace((stderr, "inflate: zlib header ok\n"));
- z->state->mode = BLOCKS;
- case BLOCKS:
- r = inflate_blocks(z->state->blocks, z, r);
- if (f == Z_PACKET_FLUSH && z->avail_in == 0 && z->avail_out != 0)
- r = inflate_packet_flush(z->state->blocks);
- if (r == Z_DATA_ERROR)
- {
- z->state->mode = BAD;
- z->state->sub.marker = 0; /* can try inflateSync */
- break;
- }
- if (r != Z_STREAM_END)
- return r;
- r = Z_OK;
- inflate_blocks_reset(z->state->blocks, z, &z->state->sub.check.was);
- if (z->state->nowrap)
- {
- z->state->mode = DONE;
- break;
- }
- z->state->mode = CHECK4;
- case CHECK4:
- NEEDBYTE
- z->state->sub.check.need = (uLong)NEXTBYTE << 24;
- z->state->mode = CHECK3;
- case CHECK3:
- NEEDBYTE
- z->state->sub.check.need += (uLong)NEXTBYTE << 16;
- z->state->mode = CHECK2;
- case CHECK2:
- NEEDBYTE
- z->state->sub.check.need += (uLong)NEXTBYTE << 8;
- z->state->mode = CHECK1;
- case CHECK1:
- NEEDBYTE
- z->state->sub.check.need += (uLong)NEXTBYTE;
-
- if (z->state->sub.check.was != z->state->sub.check.need)
- {
- z->state->mode = BAD;
- z->msg = "incorrect data check";
- z->state->sub.marker = 5; /* can't try inflateSync */
- break;
- }
- Trace((stderr, "inflate: zlib check ok\n"));
- z->state->mode = DONE;
- case DONE:
- return Z_STREAM_END;
- case BAD:
- return Z_DATA_ERROR;
- default:
- return Z_STREAM_ERROR;
- }
-
- empty:
- if (f != Z_PACKET_FLUSH)
- return r;
- z->state->mode = BAD;
- z->state->sub.marker = 0; /* can try inflateSync */
- return Z_DATA_ERROR;
-}
-
-/*
- * This subroutine adds the data at next_in/avail_in to the output history
- * without performing any output. The output buffer must be "caught up";
- * i.e. no pending output (hence s->read equals s->write), and the state must
- * be BLOCKS (i.e. we should be willing to see the start of a series of
- * BLOCKS). On exit, the output will also be caught up, and the checksum
- * will have been updated if need be.
- */
-
-int inflateIncomp(z)
-z_stream *z;
-{
- if (z->state->mode != BLOCKS)
- return Z_DATA_ERROR;
- return inflate_addhistory(z->state->blocks, z);
-}
-
-
-int inflateSync(z)
-z_stream *z;
-{
- uInt n; /* number of bytes to look at */
- Bytef *p; /* pointer to bytes */
- uInt m; /* number of marker bytes found in a row */
- uLong r, w; /* temporaries to save total_in and total_out */
-
- /* set up */
- if (z == Z_NULL || z->state == Z_NULL)
- return Z_STREAM_ERROR;
- if (z->state->mode != BAD)
- {
- z->state->mode = BAD;
- z->state->sub.marker = 0;
- }
- if ((n = z->avail_in) == 0)
- return Z_BUF_ERROR;
- p = z->next_in;
- m = z->state->sub.marker;
-
- /* search */
- while (n && m < 4)
- {
- if (*p == (Byte)(m < 2 ? 0 : 0xff))
- m++;
- else if (*p)
- m = 0;
- else
- m = 4 - m;
- p++, n--;
- }
-
- /* restore */
- z->total_in += p - z->next_in;
- z->next_in = p;
- z->avail_in = n;
- z->state->sub.marker = m;
-
- /* return no joy or set up to restart on a new block */
- if (m != 4)
- return Z_DATA_ERROR;
- r = z->total_in; w = z->total_out;
- inflateReset(z);
- z->total_in = r; z->total_out = w;
- z->state->mode = BLOCKS;
- return Z_OK;
-}
-
-#undef NEEDBYTE
-#undef NEXTBYTE
-
-/*+++++*/
-/* infutil.h -- types and macros common to blocks and codes
- * Copyright (C) 1995 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
- part of the implementation of the compression library and is
- subject to change. Applications should only use zlib.h.
- */
-
-/* inflate blocks semi-private state */
-struct inflate_blocks_state {
-
- /* mode */
- enum {
- TYPE, /* get type bits (3, including end bit) */
- LENS, /* get lengths for stored */
- STORED, /* processing stored block */
- TABLE, /* get table lengths */
- BTREE, /* get bit lengths tree for a dynamic block */
- DTREE, /* get length, distance trees for a dynamic block */
- CODES, /* processing fixed or dynamic block */
- DRY, /* output remaining window bytes */
- DONEB, /* finished last block, done */
- BADB} /* got a data error--stuck here */
- mode; /* current inflate_block mode */
-
- /* mode dependent information */
- union {
- uInt left; /* if STORED, bytes left to copy */
- struct {
- uInt table; /* table lengths (14 bits) */
- uInt index; /* index into blens (or border) */
- uIntf *blens; /* bit lengths of codes */
- uInt bb; /* bit length tree depth */
- inflate_huft *tb; /* bit length decoding tree */
- int nblens; /* # elements allocated at blens */
- } trees; /* if DTREE, decoding info for trees */
- struct {
- inflate_huft *tl, *td; /* trees to free */
- inflate_codes_statef
- *codes;
- } decode; /* if CODES, current state */
- } sub; /* submode */
- uInt last; /* true if this block is the last block */
-
- /* mode independent information */
- uInt bitk; /* bits in bit buffer */
- uLong bitb; /* bit buffer */
- Bytef *window; /* sliding window */
- Bytef *end; /* one byte after sliding window */
- Bytef *read; /* window read pointer */
- Bytef *write; /* window write pointer */
- check_func checkfn; /* check function */
- uLong check; /* check on output */
-
-};
-
-
-/* defines for inflate input/output */
-/* update pointers and return */
-#define UPDBITS {s->bitb=b;s->bitk=k;}
-#define UPDIN {z->avail_in=n;z->total_in+=p-z->next_in;z->next_in=p;}
-#define UPDOUT {s->write=q;}
-#define UPDATE {UPDBITS UPDIN UPDOUT}
-#define LEAVE {UPDATE return inflate_flush(s,z,r);}
-/* get bytes and bits */
-#define LOADIN {p=z->next_in;n=z->avail_in;b=s->bitb;k=s->bitk;}
-#define NEEDBYTE {if(n)r=Z_OK;else LEAVE}
-#define NEXTBYTE (n--,*p++)
-#define NEEDBITS(j) {while(k<(j)){NEEDBYTE;b|=((uLong)NEXTBYTE)<<k;k+=8;}}
-#define DUMPBITS(j) {b>>=(j);k-=(j);}
-/* output bytes */
-#define WAVAIL (q<s->read?s->read-q-1:s->end-q)
-#define LOADOUT {q=s->write;m=WAVAIL;}
-#define WRAP {if(q==s->end&&s->read!=s->window){q=s->window;m=WAVAIL;}}
-#define FLUSH {UPDOUT r=inflate_flush(s,z,r); LOADOUT}
-#define NEEDOUT {if(m==0){WRAP if(m==0){FLUSH WRAP if(m==0) LEAVE}}r=Z_OK;}
-#define OUTBYTE(a) {*q++=(Byte)(a);m--;}
-/* load local pointers */
-#define LOAD {LOADIN LOADOUT}
-
-/* And'ing with mask[n] masks the lower n bits */
-local uInt inflate_mask[] = {
- 0x0000,
- 0x0001, 0x0003, 0x0007, 0x000f, 0x001f, 0x003f, 0x007f, 0x00ff,
- 0x01ff, 0x03ff, 0x07ff, 0x0fff, 0x1fff, 0x3fff, 0x7fff, 0xffff
-};
-
-/* copy as much as possible from the sliding window to the output area */
-local int inflate_flush OF((
- inflate_blocks_statef *,
- z_stream *,
- int));
-
-/*+++++*/
-/* inffast.h -- header to use inffast.c
- * Copyright (C) 1995 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
- part of the implementation of the compression library and is
- subject to change. Applications should only use zlib.h.
- */
-
-local int inflate_fast OF((
- uInt,
- uInt,
- inflate_huft *,
- inflate_huft *,
- inflate_blocks_statef *,
- z_stream *));
-
-
-/*+++++*/
-/* infblock.c -- interpret and process block types to last block
- * Copyright (C) 1995 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* Table for deflate from PKZIP's appnote.txt. */
-local uInt border[] = { /* Order of the bit length code lengths */
- 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};
-
-/*
- Notes beyond the 1.93a appnote.txt:
-
- 1. Distance pointers never point before the beginning of the output
- stream.
- 2. Distance pointers can point back across blocks, up to 32k away.
- 3. There is an implied maximum of 7 bits for the bit length table and
- 15 bits for the actual data.
- 4. If only one code exists, then it is encoded using one bit. (Zero
- would be more efficient, but perhaps a little confusing.) If two
- codes exist, they are coded using one bit each (0 and 1).
- 5. There is no way of sending zero distance codes--a dummy must be
- sent if there are none. (History: a pre 2.0 version of PKZIP would
- store blocks with no distance codes, but this was discovered to be
- too harsh a criterion.) Valid only for 1.93a. 2.04c does allow
- zero distance codes, which is sent as one code of zero bits in
- length.
- 6. There are up to 286 literal/length codes. Code 256 represents the
- end-of-block. Note however that the static length tree defines
- 288 codes just to fill out the Huffman codes. Codes 286 and 287
- cannot be used though, since there is no length base or extra bits
- defined for them. Similarily, there are up to 30 distance codes.
- However, static trees define 32 codes (all 5 bits) to fill out the
- Huffman codes, but the last two had better not show up in the data.
- 7. Unzip can check dynamic Huffman blocks for complete code sets.
- The exception is that a single code would not be complete (see #4).
- 8. The five bits following the block type is really the number of
- literal codes sent minus 257.
- 9. Length codes 8,16,16 are interpreted as 13 length codes of 8 bits
- (1+6+6). Therefore, to output three times the length, you output
- three codes (1+1+1), whereas to output four times the same length,
- you only need two codes (1+3). Hmm.
- 10. In the tree reconstruction algorithm, Code = Code + Increment
- only if BitLength(i) is not zero. (Pretty obvious.)
- 11. Correction: 4 Bits: # of Bit Length codes - 4 (4 - 19)
- 12. Note: length code 284 can represent 227-258, but length code 285
- really is 258. The last length deserves its own, short code
- since it gets used a lot in very redundant files. The length
- 258 is special since 258 - 3 (the min match length) is 255.
- 13. The literal/length and distance code bit lengths are read as a
- single stream of lengths. It is possible (and advantageous) for
- a repeat code (16, 17, or 18) to go across the boundary between
- the two sets of lengths.
- */
-
-
-local void inflate_blocks_reset(s, z, c)
-inflate_blocks_statef *s;
-z_stream *z;
-uLongf *c;
-{
- if (s->checkfn != Z_NULL)
- *c = s->check;
- if (s->mode == BTREE || s->mode == DTREE)
- ZFREE(z, s->sub.trees.blens, s->sub.trees.nblens * sizeof(uInt));
- if (s->mode == CODES)
- {
- inflate_codes_free(s->sub.decode.codes, z);
- inflate_trees_free(s->sub.decode.td, z);
- inflate_trees_free(s->sub.decode.tl, z);
- }
- s->mode = TYPE;
- s->bitk = 0;
- s->bitb = 0;
- s->read = s->write = s->window;
- if (s->checkfn != Z_NULL)
- s->check = (*s->checkfn)(0L, Z_NULL, 0);
- Trace((stderr, "inflate: blocks reset\n"));
-}
-
-
-local inflate_blocks_statef *inflate_blocks_new(z, c, w)
-z_stream *z;
-check_func c;
-uInt w;
-{
- inflate_blocks_statef *s;
-
- if ((s = (inflate_blocks_statef *)ZALLOC
- (z,1,sizeof(struct inflate_blocks_state))) == Z_NULL)
- return s;
- if ((s->window = (Bytef *)ZALLOC(z, 1, w)) == Z_NULL)
- {
- ZFREE(z, s, sizeof(struct inflate_blocks_state));
- return Z_NULL;
- }
- s->end = s->window + w;
- s->checkfn = c;
- s->mode = TYPE;
- Trace((stderr, "inflate: blocks allocated\n"));
- inflate_blocks_reset(s, z, &s->check);
- return s;
-}
-
-
-local int inflate_blocks(s, z, r)
-inflate_blocks_statef *s;
-z_stream *z;
-int r;
-{
- uInt t; /* temporary storage */
- uLong b; /* bit buffer */
- uInt k; /* bits in bit buffer */
- Bytef *p; /* input data pointer */
- uInt n; /* bytes available there */
- Bytef *q; /* output window write pointer */
- uInt m; /* bytes to end of window or read pointer */
-
- /* copy input/output information to locals (UPDATE macro restores) */
- LOAD
-
- /* process input based on current state */
- while (1) switch (s->mode)
- {
- case TYPE:
- NEEDBITS(3)
- t = (uInt)b & 7;
- s->last = t & 1;
- switch (t >> 1)
- {
- case 0: /* stored */
- Trace((stderr, "inflate: stored block%s\n",
- s->last ? " (last)" : ""));
- DUMPBITS(3)
- t = k & 7; /* go to byte boundary */
- DUMPBITS(t)
- s->mode = LENS; /* get length of stored block */
- break;
- case 1: /* fixed */
- Trace((stderr, "inflate: fixed codes block%s\n",
- s->last ? " (last)" : ""));
- {
- uInt bl, bd;
- inflate_huft *tl, *td;
-
- inflate_trees_fixed(&bl, &bd, &tl, &td);
- s->sub.decode.codes = inflate_codes_new(bl, bd, tl, td, z);
- if (s->sub.decode.codes == Z_NULL)
- {
- r = Z_MEM_ERROR;
- LEAVE
- }
- s->sub.decode.tl = Z_NULL; /* don't try to free these */
- s->sub.decode.td = Z_NULL;
- }
- DUMPBITS(3)
- s->mode = CODES;
- break;
- case 2: /* dynamic */
- Trace((stderr, "inflate: dynamic codes block%s\n",
- s->last ? " (last)" : ""));
- DUMPBITS(3)
- s->mode = TABLE;
- break;
- case 3: /* illegal */
- DUMPBITS(3)
- s->mode = BADB;
- z->msg = "invalid block type";
- r = Z_DATA_ERROR;
- LEAVE
- }
- break;
- case LENS:
- NEEDBITS(32)
- if (((~b) >> 16) != (b & 0xffff))
- {
- s->mode = BADB;
- z->msg = "invalid stored block lengths";
- r = Z_DATA_ERROR;
- LEAVE
- }
- s->sub.left = (uInt)b & 0xffff;
- b = k = 0; /* dump bits */
- Tracev((stderr, "inflate: stored length %u\n", s->sub.left));
- s->mode = s->sub.left ? STORED : TYPE;
- break;
- case STORED:
- if (n == 0)
- LEAVE
- NEEDOUT
- t = s->sub.left;
- if (t > n) t = n;
- if (t > m) t = m;
- zmemcpy(q, p, t);
- p += t; n -= t;
- q += t; m -= t;
- if ((s->sub.left -= t) != 0)
- break;
- Tracev((stderr, "inflate: stored end, %lu total out\n",
- z->total_out + (q >= s->read ? q - s->read :
- (s->end - s->read) + (q - s->window))));
- s->mode = s->last ? DRY : TYPE;
- break;
- case TABLE:
- NEEDBITS(14)
- s->sub.trees.table = t = (uInt)b & 0x3fff;
-#ifndef PKZIP_BUG_WORKAROUND
- if ((t & 0x1f) > 29 || ((t >> 5) & 0x1f) > 29)
- {
- s->mode = BADB;
- z->msg = "too many length or distance symbols";
- r = Z_DATA_ERROR;
- LEAVE
- }
-#endif
- t = 258 + (t & 0x1f) + ((t >> 5) & 0x1f);
- if (t < 19)
- t = 19;
- if ((s->sub.trees.blens = (uIntf*)ZALLOC(z, t, sizeof(uInt))) == Z_NULL)
- {
- r = Z_MEM_ERROR;
- LEAVE
- }
- s->sub.trees.nblens = t;
- DUMPBITS(14)
- s->sub.trees.index = 0;
- Tracev((stderr, "inflate: table sizes ok\n"));
- s->mode = BTREE;
- case BTREE:
- while (s->sub.trees.index < 4 + (s->sub.trees.table >> 10))
- {
- NEEDBITS(3)
- s->sub.trees.blens[border[s->sub.trees.index++]] = (uInt)b & 7;
- DUMPBITS(3)
- }
- while (s->sub.trees.index < 19)
- s->sub.trees.blens[border[s->sub.trees.index++]] = 0;
- s->sub.trees.bb = 7;
- t = inflate_trees_bits(s->sub.trees.blens, &s->sub.trees.bb,
- &s->sub.trees.tb, z);
- if (t != Z_OK)
- {
- r = t;
- if (r == Z_DATA_ERROR)
- s->mode = BADB;
- LEAVE
- }
- s->sub.trees.index = 0;
- Tracev((stderr, "inflate: bits tree ok\n"));
- s->mode = DTREE;
- case DTREE:
- while (t = s->sub.trees.table,
- s->sub.trees.index < 258 + (t & 0x1f) + ((t >> 5) & 0x1f))
- {
- inflate_huft *h;
- uInt i, j, c;
-
- t = s->sub.trees.bb;
- NEEDBITS(t)
- h = s->sub.trees.tb + ((uInt)b & inflate_mask[t]);
- t = h->word.what.Bits;
- c = h->more.Base;
- if (c < 16)
- {
- DUMPBITS(t)
- s->sub.trees.blens[s->sub.trees.index++] = c;
- }
- else /* c == 16..18 */
- {
- i = c == 18 ? 7 : c - 14;
- j = c == 18 ? 11 : 3;
- NEEDBITS(t + i)
- DUMPBITS(t)
- j += (uInt)b & inflate_mask[i];
- DUMPBITS(i)
- i = s->sub.trees.index;
- t = s->sub.trees.table;
- if (i + j > 258 + (t & 0x1f) + ((t >> 5) & 0x1f) ||
- (c == 16 && i < 1))
- {
- s->mode = BADB;
- z->msg = "invalid bit length repeat";
- r = Z_DATA_ERROR;
- LEAVE
- }
- c = c == 16 ? s->sub.trees.blens[i - 1] : 0;
- do {
- s->sub.trees.blens[i++] = c;
- } while (--j);
- s->sub.trees.index = i;
- }
- }
- inflate_trees_free(s->sub.trees.tb, z);
- s->sub.trees.tb = Z_NULL;
- {
- uInt bl, bd;
- inflate_huft *tl, *td;
- inflate_codes_statef *c;
-
- bl = 9; /* must be <= 9 for lookahead assumptions */
- bd = 6; /* must be <= 9 for lookahead assumptions */
- t = s->sub.trees.table;
- t = inflate_trees_dynamic(257 + (t & 0x1f), 1 + ((t >> 5) & 0x1f),
- s->sub.trees.blens, &bl, &bd, &tl, &td, z);
- if (t != Z_OK)
- {
- if (t == (uInt)Z_DATA_ERROR)
- s->mode = BADB;
- r = t;
- LEAVE
- }
- Tracev((stderr, "inflate: trees ok\n"));
- if ((c = inflate_codes_new(bl, bd, tl, td, z)) == Z_NULL)
- {
- inflate_trees_free(td, z);
- inflate_trees_free(tl, z);
- r = Z_MEM_ERROR;
- LEAVE
- }
- ZFREE(z, s->sub.trees.blens, s->sub.trees.nblens * sizeof(uInt));
- s->sub.decode.codes = c;
- s->sub.decode.tl = tl;
- s->sub.decode.td = td;
- }
- s->mode = CODES;
- case CODES:
- UPDATE
- if ((r = inflate_codes(s, z, r)) != Z_STREAM_END)
- return inflate_flush(s, z, r);
- r = Z_OK;
- inflate_codes_free(s->sub.decode.codes, z);
- inflate_trees_free(s->sub.decode.td, z);
- inflate_trees_free(s->sub.decode.tl, z);
- LOAD
- Tracev((stderr, "inflate: codes end, %lu total out\n",
- z->total_out + (q >= s->read ? q - s->read :
- (s->end - s->read) + (q - s->window))));
- if (!s->last)
- {
- s->mode = TYPE;
- break;
- }
- if (k > 7) /* return unused byte, if any */
- {
- Assert(k < 16, "inflate_codes grabbed too many bytes")
- k -= 8;
- n++;
- p--; /* can always return one */
- }
- s->mode = DRY;
- case DRY:
- FLUSH
- if (s->read != s->write)
- LEAVE
- s->mode = DONEB;
- case DONEB:
- r = Z_STREAM_END;
- LEAVE
- case BADB:
- r = Z_DATA_ERROR;
- LEAVE
- default:
- r = Z_STREAM_ERROR;
- LEAVE
- }
-}
-
-
-local int inflate_blocks_free(s, z, c)
-inflate_blocks_statef *s;
-z_stream *z;
-uLongf *c;
-{
- inflate_blocks_reset(s, z, c);
- ZFREE(z, s->window, s->end - s->window);
- ZFREE(z, s, sizeof(struct inflate_blocks_state));
- Trace((stderr, "inflate: blocks freed\n"));
- return Z_OK;
-}
-
-/*
- * This subroutine adds the data at next_in/avail_in to the output history
- * without performing any output. The output buffer must be "caught up";
- * i.e. no pending output (hence s->read equals s->write), and the state must
- * be BLOCKS (i.e. we should be willing to see the start of a series of
- * BLOCKS). On exit, the output will also be caught up, and the checksum
- * will have been updated if need be.
- */
-local int inflate_addhistory(s, z)
-inflate_blocks_statef *s;
-z_stream *z;
-{
- uLong b; /* bit buffer */ /* NOT USED HERE */
- uInt k; /* bits in bit buffer */ /* NOT USED HERE */
- uInt t; /* temporary storage */
- Bytef *p; /* input data pointer */
- uInt n; /* bytes available there */
- Bytef *q; /* output window write pointer */
- uInt m; /* bytes to end of window or read pointer */
-
- if (s->read != s->write)
- return Z_STREAM_ERROR;
- if (s->mode != TYPE)
- return Z_DATA_ERROR;
-
- /* we're ready to rock */
- LOAD
- /* while there is input ready, copy to output buffer, moving
- * pointers as needed.
- */
- while (n) {
- t = n; /* how many to do */
- /* is there room until end of buffer? */
- if (t > m) t = m;
- /* update check information */
- if (s->checkfn != Z_NULL)
- s->check = (*s->checkfn)(s->check, q, t);
- zmemcpy(q, p, t);
- q += t;
- p += t;
- n -= t;
- z->total_out += t;
- s->read = q; /* drag read pointer forward */
-/* WRAP */ /* expand WRAP macro by hand to handle s->read */
- if (q == s->end) {
- s->read = q = s->window;
- m = WAVAIL;
- }
- }
- UPDATE
- return Z_OK;
-}
-
-
-/*
- * At the end of a Deflate-compressed PPP packet, we expect to have seen
- * a `stored' block type value but not the (zero) length bytes.
- */
-local int inflate_packet_flush(s)
- inflate_blocks_statef *s;
-{
- if (s->mode != LENS)
- return Z_DATA_ERROR;
- s->mode = TYPE;
- return Z_OK;
-}
-
-
-/*+++++*/
-/* inftrees.c -- generate Huffman trees for efficient decoding
- * Copyright (C) 1995 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* simplify the use of the inflate_huft type with some defines */
-#define base more.Base
-#define next more.Next
-#define exop word.what.Exop
-#define bits word.what.Bits
-
-
-local int huft_build OF((
- uIntf *, /* code lengths in bits */
- uInt, /* number of codes */
- uInt, /* number of "simple" codes */
- uIntf *, /* list of base values for non-simple codes */
- uIntf *, /* list of extra bits for non-simple codes */
- inflate_huft * FAR*,/* result: starting table */
- uIntf *, /* maximum lookup bits (returns actual) */
- z_stream *)); /* for zalloc function */
-
-local voidpf falloc OF((
- voidpf, /* opaque pointer (not used) */
- uInt, /* number of items */
- uInt)); /* size of item */
-
-local void ffree OF((
- voidpf q, /* opaque pointer (not used) */
- voidpf p, /* what to free (not used) */
- uInt n)); /* number of bytes (not used) */
-
-/* Tables for deflate from PKZIP's appnote.txt. */
-local uInt cplens[] = { /* Copy lengths for literal codes 257..285 */
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
- 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0};
- /* actually lengths - 2; also see note #13 above about 258 */
-local uInt cplext[] = { /* Extra bits for literal codes 257..285 */
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2,
- 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 192, 192}; /* 192==invalid */
-local uInt cpdist[] = { /* Copy offsets for distance codes 0..29 */
- 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
- 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
- 8193, 12289, 16385, 24577};
-local uInt cpdext[] = { /* Extra bits for distance codes */
- 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6,
- 7, 7, 8, 8, 9, 9, 10, 10, 11, 11,
- 12, 12, 13, 13};
-
-/*
- Huffman code decoding is performed using a multi-level table lookup.
- The fastest way to decode is to simply build a lookup table whose
- size is determined by the longest code. However, the time it takes
- to build this table can also be a factor if the data being decoded
- is not very long. The most common codes are necessarily the
- shortest codes, so those codes dominate the decoding time, and hence
- the speed. The idea is you can have a shorter table that decodes the
- shorter, more probable codes, and then point to subsidiary tables for
- the longer codes. The time it costs to decode the longer codes is
- then traded against the time it takes to make longer tables.
-
- This results of this trade are in the variables lbits and dbits
- below. lbits is the number of bits the first level table for literal/
- length codes can decode in one step, and dbits is the same thing for
- the distance codes. Subsequent tables are also less than or equal to
- those sizes. These values may be adjusted either when all of the
- codes are shorter than that, in which case the longest code length in
- bits is used, or when the shortest code is *longer* than the requested
- table size, in which case the length of the shortest code in bits is
- used.
-
- There are two different values for the two tables, since they code a
- different number of possibilities each. The literal/length table
- codes 286 possible values, or in a flat code, a little over eight
- bits. The distance table codes 30 possible values, or a little less
- than five bits, flat. The optimum values for speed end up being
- about one bit more than those, so lbits is 8+1 and dbits is 5+1.
- The optimum values may differ though from machine to machine, and
- possibly even between compilers. Your mileage may vary.
- */
-
-
-/* If BMAX needs to be larger than 16, then h and x[] should be uLong. */
-#define BMAX 15 /* maximum bit length of any code */
-#define N_MAX 288 /* maximum number of codes in any set */
-
-#ifdef DEBUG_ZLIB
- uInt inflate_hufts;
-#endif
-
-local int huft_build(b, n, s, d, e, t, m, zs)
-uIntf *b; /* code lengths in bits (all assumed <= BMAX) */
-uInt n; /* number of codes (assumed <= N_MAX) */
-uInt s; /* number of simple-valued codes (0..s-1) */
-uIntf *d; /* list of base values for non-simple codes */
-uIntf *e; /* list of extra bits for non-simple codes */
-inflate_huft * FAR *t; /* result: starting table */
-uIntf *m; /* maximum lookup bits, returns actual */
-z_stream *zs; /* for zalloc function */
-/* Given a list of code lengths and a maximum table size, make a set of
- tables to decode that set of codes. Return Z_OK on success, Z_BUF_ERROR
- if the given code set is incomplete (the tables are still built in this
- case), Z_DATA_ERROR if the input is invalid (all zero length codes or an
- over-subscribed set of lengths), or Z_MEM_ERROR if not enough memory. */
-{
-
- uInt a; /* counter for codes of length k */
- uInt c[BMAX+1]; /* bit length count table */
- uInt f; /* i repeats in table every f entries */
- int g; /* maximum code length */
- int h; /* table level */
- register uInt i; /* counter, current code */
- register uInt j; /* counter */
- register int k; /* number of bits in current code */
- int l; /* bits per table (returned in m) */
- register uIntf *p; /* pointer into c[], b[], or v[] */
- inflate_huft *q; /* points to current table */
- struct inflate_huft_s r; /* table entry for structure assignment */
- inflate_huft *u[BMAX]; /* table stack */
- uInt v[N_MAX]; /* values in order of bit length */
- register int w; /* bits before this table == (l * h) */
- uInt x[BMAX+1]; /* bit offsets, then code stack */
- uIntf *xp; /* pointer into x */
- int y; /* number of dummy codes added */
- uInt z; /* number of entries in current table */
-
-
- /* Generate counts for each bit length */
- p = c;
-#define C0 *p++ = 0;
-#define C2 C0 C0 C0 C0
-#define C4 C2 C2 C2 C2
- C4 /* clear c[]--assume BMAX+1 is 16 */
- p = b; i = n;
- do {
- c[*p++]++; /* assume all entries <= BMAX */
- } while (--i);
- if (c[0] == n) /* null input--all zero length codes */
- {
- *t = (inflate_huft *)Z_NULL;
- *m = 0;
- return Z_OK;
- }
-
-
- /* Find minimum and maximum length, bound *m by those */
- l = *m;
- for (j = 1; j <= BMAX; j++)
- if (c[j])
- break;
- k = j; /* minimum code length */
- if ((uInt)l < j)
- l = j;
- for (i = BMAX; i; i--)
- if (c[i])
- break;
- g = i; /* maximum code length */
- if ((uInt)l > i)
- l = i;
- *m = l;
-
-
- /* Adjust last length count to fill out codes, if needed */
- for (y = 1 << j; j < i; j++, y <<= 1)
- if ((y -= c[j]) < 0)
- return Z_DATA_ERROR;
- if ((y -= c[i]) < 0)
- return Z_DATA_ERROR;
- c[i] += y;
-
-
- /* Generate starting offsets into the value table for each length */
- x[1] = j = 0;
- p = c + 1; xp = x + 2;
- while (--i) { /* note that i == g from above */
- *xp++ = (j += *p++);
- }
-
-
- /* Make a table of values in order of bit lengths */
- p = b; i = 0;
- do {
- if ((j = *p++) != 0)
- v[x[j]++] = i;
- } while (++i < n);
-
-
- /* Generate the Huffman codes and for each, make the table entries */
- x[0] = i = 0; /* first Huffman code is zero */
- p = v; /* grab values in bit order */
- h = -1; /* no tables yet--level -1 */
- w = -l; /* bits decoded == (l * h) */
- u[0] = (inflate_huft *)Z_NULL; /* just to keep compilers happy */
- q = (inflate_huft *)Z_NULL; /* ditto */
- z = 0; /* ditto */
-
- /* go through the bit lengths (k already is bits in shortest code) */
- for (; k <= g; k++)
- {
- a = c[k];
- while (a--)
- {
- /* here i is the Huffman code of length k bits for value *p */
- /* make tables up to required level */
- while (k > w + l)
- {
- h++;
- w += l; /* previous table always l bits */
-
- /* compute minimum size table less than or equal to l bits */
- z = (z = g - w) > (uInt)l ? l : z; /* table size upper limit */
- if ((f = 1 << (j = k - w)) > a + 1) /* try a k-w bit table */
- { /* too few codes for k-w bit table */
- f -= a + 1; /* deduct codes from patterns left */
- xp = c + k;
- if (j < z)
- while (++j < z) /* try smaller tables up to z bits */
- {
- if ((f <<= 1) <= *++xp)
- break; /* enough codes to use up j bits */
- f -= *xp; /* else deduct codes from patterns */
- }
- }
- z = 1 << j; /* table entries for j-bit table */
-
- /* allocate and link in new table */
- if ((q = (inflate_huft *)ZALLOC
- (zs,z + 1,sizeof(inflate_huft))) == Z_NULL)
- {
- if (h)
- inflate_trees_free(u[0], zs);
- return Z_MEM_ERROR; /* not enough memory */
- }
- q->word.Nalloc = z + 1;
-#ifdef DEBUG_ZLIB
- inflate_hufts += z + 1;
-#endif
- *t = q + 1; /* link to list for huft_free() */
- *(t = &(q->next)) = Z_NULL;
- u[h] = ++q; /* table starts after link */
-
- /* connect to last table, if there is one */
- if (h)
- {
- x[h] = i; /* save pattern for backing up */
- r.bits = (Byte)l; /* bits to dump before this table */
- r.exop = (Byte)j; /* bits in this table */
- r.next = q; /* pointer to this table */
- j = i >> (w - l); /* (get around Turbo C bug) */
- u[h-1][j] = r; /* connect to last table */
- }
- }
-
- /* set up table entry in r */
- r.bits = (Byte)(k - w);
- if (p >= v + n)
- r.exop = 128 + 64; /* out of values--invalid code */
- else if (*p < s)
- {
- r.exop = (Byte)(*p < 256 ? 0 : 32 + 64); /* 256 is end-of-block */
- r.base = *p++; /* simple code is just the value */
- }
- else
- {
- r.exop = (Byte)e[*p - s] + 16 + 64; /* non-simple--look up in lists */
- r.base = d[*p++ - s];
- }
-
- /* fill code-like entries with r */
- f = 1 << (k - w);
- for (j = i >> w; j < z; j += f)
- q[j] = r;
-
- /* backwards increment the k-bit code i */
- for (j = 1 << (k - 1); i & j; j >>= 1)
- i ^= j;
- i ^= j;
-
- /* backup over finished tables */
- while ((i & ((1 << w) - 1)) != x[h])
- {
- h--; /* don't need to update q */
- w -= l;
- }
- }
- }
-
-
- /* Return Z_BUF_ERROR if we were given an incomplete table */
- return y != 0 && g != 1 ? Z_BUF_ERROR : Z_OK;
-}
-
-
-local int inflate_trees_bits(c, bb, tb, z)
-uIntf *c; /* 19 code lengths */
-uIntf *bb; /* bits tree desired/actual depth */
-inflate_huft * FAR *tb; /* bits tree result */
-z_stream *z; /* for zfree function */
-{
- int r;
-
- r = huft_build(c, 19, 19, (uIntf*)Z_NULL, (uIntf*)Z_NULL, tb, bb, z);
- if (r == Z_DATA_ERROR)
- z->msg = "oversubscribed dynamic bit lengths tree";
- else if (r == Z_BUF_ERROR)
- {
- inflate_trees_free(*tb, z);
- z->msg = "incomplete dynamic bit lengths tree";
- r = Z_DATA_ERROR;
- }
- return r;
-}
-
-
-local int inflate_trees_dynamic(nl, nd, c, bl, bd, tl, td, z)
-uInt nl; /* number of literal/length codes */
-uInt nd; /* number of distance codes */
-uIntf *c; /* that many (total) code lengths */
-uIntf *bl; /* literal desired/actual bit depth */
-uIntf *bd; /* distance desired/actual bit depth */
-inflate_huft * FAR *tl; /* literal/length tree result */
-inflate_huft * FAR *td; /* distance tree result */
-z_stream *z; /* for zfree function */
-{
- int r;
-
- /* build literal/length tree */
- if ((r = huft_build(c, nl, 257, cplens, cplext, tl, bl, z)) != Z_OK)
- {
- if (r == Z_DATA_ERROR)
- z->msg = "oversubscribed literal/length tree";
- else if (r == Z_BUF_ERROR)
- {
- inflate_trees_free(*tl, z);
- z->msg = "incomplete literal/length tree";
- r = Z_DATA_ERROR;
- }
- return r;
- }
-
- /* build distance tree */
- if ((r = huft_build(c + nl, nd, 0, cpdist, cpdext, td, bd, z)) != Z_OK)
- {
- if (r == Z_DATA_ERROR)
- z->msg = "oversubscribed literal/length tree";
- else if (r == Z_BUF_ERROR) {
-#ifdef PKZIP_BUG_WORKAROUND
- r = Z_OK;
- }
-#else
- inflate_trees_free(*td, z);
- z->msg = "incomplete literal/length tree";
- r = Z_DATA_ERROR;
- }
- inflate_trees_free(*tl, z);
- return r;
-#endif
- }
-
- /* done */
- return Z_OK;
-}
-
-
-/* build fixed tables only once--keep them here */
-local int fixed_lock = 0;
-local int fixed_built = 0;
-#define FIXEDH 530 /* number of hufts used by fixed tables */
-local uInt fixed_left = FIXEDH;
-local inflate_huft fixed_mem[FIXEDH];
-local uInt fixed_bl;
-local uInt fixed_bd;
-local inflate_huft *fixed_tl;
-local inflate_huft *fixed_td;
-
-
-local voidpf falloc(q, n, s)
-voidpf q; /* opaque pointer (not used) */
-uInt n; /* number of items */
-uInt s; /* size of item */
-{
- Assert(s == sizeof(inflate_huft) && n <= fixed_left,
- "inflate_trees falloc overflow");
- if (q) s++; /* to make some compilers happy */
- fixed_left -= n;
- return (voidpf)(fixed_mem + fixed_left);
-}
-
-
-local void ffree(q, p, n)
-voidpf q;
-voidpf p;
-uInt n;
-{
- Assert(0, "inflate_trees ffree called!");
- if (q) q = p; /* to make some compilers happy */
-}
-
-
-local int inflate_trees_fixed(bl, bd, tl, td)
-uIntf *bl; /* literal desired/actual bit depth */
-uIntf *bd; /* distance desired/actual bit depth */
-inflate_huft * FAR *tl; /* literal/length tree result */
-inflate_huft * FAR *td; /* distance tree result */
-{
- /* build fixed tables if not built already--lock out other instances */
- while (++fixed_lock > 1)
- fixed_lock--;
- if (!fixed_built)
- {
- int k; /* temporary variable */
- unsigned c[288]; /* length list for huft_build */
- z_stream z; /* for falloc function */
-
- /* set up fake z_stream for memory routines */
- z.zalloc = falloc;
- z.zfree = ffree;
- z.opaque = Z_NULL;
-
- /* literal table */
- for (k = 0; k < 144; k++)
- c[k] = 8;
- for (; k < 256; k++)
- c[k] = 9;
- for (; k < 280; k++)
- c[k] = 7;
- for (; k < 288; k++)
- c[k] = 8;
- fixed_bl = 7;
- huft_build(c, 288, 257, cplens, cplext, &fixed_tl, &fixed_bl, &z);
-
- /* distance table */
- for (k = 0; k < 30; k++)
- c[k] = 5;
- fixed_bd = 5;
- huft_build(c, 30, 0, cpdist, cpdext, &fixed_td, &fixed_bd, &z);
-
- /* done */
- fixed_built = 1;
- }
- fixed_lock--;
- *bl = fixed_bl;
- *bd = fixed_bd;
- *tl = fixed_tl;
- *td = fixed_td;
- return Z_OK;
-}
-
-
-local int inflate_trees_free(t, z)
-inflate_huft *t; /* table to free */
-z_stream *z; /* for zfree function */
-/* Free the malloc'ed tables built by huft_build(), which makes a linked
- list of the tables it made, with the links in a dummy first entry of
- each table. */
-{
- register inflate_huft *p, *q;
-
- /* Go through linked list, freeing from the malloced (t[-1]) address. */
- p = t;
- while (p != Z_NULL)
- {
- q = (--p)->next;
- ZFREE(z, p, p->word.Nalloc * sizeof(inflate_huft));
- p = q;
- }
- return Z_OK;
-}
-
-/*+++++*/
-/* infcodes.c -- process literals and length/distance pairs
- * Copyright (C) 1995 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* simplify the use of the inflate_huft type with some defines */
-#define base more.Base
-#define next more.Next
-#define exop word.what.Exop
-#define bits word.what.Bits
-
-/* inflate codes private state */
-struct inflate_codes_state {
-
- /* mode */
- enum { /* waiting for "i:"=input, "o:"=output, "x:"=nothing */
- START, /* x: set up for LEN */
- LEN, /* i: get length/literal/eob next */
- LENEXT, /* i: getting length extra (have base) */
- DIST, /* i: get distance next */
- DISTEXT, /* i: getting distance extra */
- COPY, /* o: copying bytes in window, waiting for space */
- LIT, /* o: got literal, waiting for output space */
- WASH, /* o: got eob, possibly still output waiting */
- END, /* x: got eob and all data flushed */
- BADCODE} /* x: got error */
- mode; /* current inflate_codes mode */
-
- /* mode dependent information */
- uInt len;
- union {
- struct {
- inflate_huft *tree; /* pointer into tree */
- uInt need; /* bits needed */
- } code; /* if LEN or DIST, where in tree */
- uInt lit; /* if LIT, literal */
- struct {
- uInt get; /* bits to get for extra */
- uInt dist; /* distance back to copy from */
- } copy; /* if EXT or COPY, where and how much */
- } sub; /* submode */
-
- /* mode independent information */
- Byte lbits; /* ltree bits decoded per branch */
- Byte dbits; /* dtree bits decoder per branch */
- inflate_huft *ltree; /* literal/length/eob tree */
- inflate_huft *dtree; /* distance tree */
-
-};
-
-
-local inflate_codes_statef *inflate_codes_new(bl, bd, tl, td, z)
-uInt bl, bd;
-inflate_huft *tl, *td;
-z_stream *z;
-{
- inflate_codes_statef *c;
-
- if ((c = (inflate_codes_statef *)
- ZALLOC(z,1,sizeof(struct inflate_codes_state))) != Z_NULL)
- {
- c->mode = START;
- c->lbits = (Byte)bl;
- c->dbits = (Byte)bd;
- c->ltree = tl;
- c->dtree = td;
- Tracev((stderr, "inflate: codes new\n"));
- }
- return c;
-}
-
-
-local int inflate_codes(s, z, r)
-inflate_blocks_statef *s;
-z_stream *z;
-int r;
-{
- uInt j; /* temporary storage */
- inflate_huft *t; /* temporary pointer */
- uInt e; /* extra bits or operation */
- uLong b; /* bit buffer */
- uInt k; /* bits in bit buffer */
- Bytef *p; /* input data pointer */
- uInt n; /* bytes available there */
- Bytef *q; /* output window write pointer */
- uInt m; /* bytes to end of window or read pointer */
- Bytef *f; /* pointer to copy strings from */
- inflate_codes_statef *c = s->sub.decode.codes; /* codes state */
-
- /* copy input/output information to locals (UPDATE macro restores) */
- LOAD
-
- /* process input and output based on current state */
- while (1) switch (c->mode)
- { /* waiting for "i:"=input, "o:"=output, "x:"=nothing */
- case START: /* x: set up for LEN */
-#ifndef SLOW
- if (m >= 258 && n >= 10)
- {
- UPDATE
- r = inflate_fast(c->lbits, c->dbits, c->ltree, c->dtree, s, z);
- LOAD
- if (r != Z_OK)
- {
- c->mode = r == Z_STREAM_END ? WASH : BADCODE;
- break;
- }
- }
-#endif /* !SLOW */
- c->sub.code.need = c->lbits;
- c->sub.code.tree = c->ltree;
- c->mode = LEN;
- case LEN: /* i: get length/literal/eob next */
- j = c->sub.code.need;
- NEEDBITS(j)
- t = c->sub.code.tree + ((uInt)b & inflate_mask[j]);
- DUMPBITS(t->bits)
- e = (uInt)(t->exop);
- if (e == 0) /* literal */
- {
- c->sub.lit = t->base;
- Tracevv((stderr, t->base >= 0x20 && t->base < 0x7f ?
- "inflate: literal '%c'\n" :
- "inflate: literal 0x%02x\n", t->base));
- c->mode = LIT;
- break;
- }
- if (e & 16) /* length */
- {
- c->sub.copy.get = e & 15;
- c->len = t->base;
- c->mode = LENEXT;
- break;
- }
- if ((e & 64) == 0) /* next table */
- {
- c->sub.code.need = e;
- c->sub.code.tree = t->next;
- break;
- }
- if (e & 32) /* end of block */
- {
- Tracevv((stderr, "inflate: end of block\n"));
- c->mode = WASH;
- break;
- }
- c->mode = BADCODE; /* invalid code */
- z->msg = "invalid literal/length code";
- r = Z_DATA_ERROR;
- LEAVE
- case LENEXT: /* i: getting length extra (have base) */
- j = c->sub.copy.get;
- NEEDBITS(j)
- c->len += (uInt)b & inflate_mask[j];
- DUMPBITS(j)
- c->sub.code.need = c->dbits;
- c->sub.code.tree = c->dtree;
- Tracevv((stderr, "inflate: length %u\n", c->len));
- c->mode = DIST;
- case DIST: /* i: get distance next */
- j = c->sub.code.need;
- NEEDBITS(j)
- t = c->sub.code.tree + ((uInt)b & inflate_mask[j]);
- DUMPBITS(t->bits)
- e = (uInt)(t->exop);
- if (e & 16) /* distance */
- {
- c->sub.copy.get = e & 15;
- c->sub.copy.dist = t->base;
- c->mode = DISTEXT;
- break;
- }
- if ((e & 64) == 0) /* next table */
- {
- c->sub.code.need = e;
- c->sub.code.tree = t->next;
- break;
- }
- c->mode = BADCODE; /* invalid code */
- z->msg = "invalid distance code";
- r = Z_DATA_ERROR;
- LEAVE
- case DISTEXT: /* i: getting distance extra */
- j = c->sub.copy.get;
- NEEDBITS(j)
- c->sub.copy.dist += (uInt)b & inflate_mask[j];
- DUMPBITS(j)
- Tracevv((stderr, "inflate: distance %u\n", c->sub.copy.dist));
- c->mode = COPY;
- case COPY: /* o: copying bytes in window, waiting for space */
-#ifndef __TURBOC__ /* Turbo C bug for following expression */
- f = (uInt)(q - s->window) < c->sub.copy.dist ?
- s->end - (c->sub.copy.dist - (q - s->window)) :
- q - c->sub.copy.dist;
-#else
- f = q - c->sub.copy.dist;
- if ((uInt)(q - s->window) < c->sub.copy.dist)
- f = s->end - (c->sub.copy.dist - (q - s->window));
-#endif
- while (c->len)
- {
- NEEDOUT
- OUTBYTE(*f++)
- if (f == s->end)
- f = s->window;
- c->len--;
- }
- c->mode = START;
- break;
- case LIT: /* o: got literal, waiting for output space */
- NEEDOUT
- OUTBYTE(c->sub.lit)
- c->mode = START;
- break;
- case WASH: /* o: got eob, possibly more output */
- FLUSH
- if (s->read != s->write)
- LEAVE
- c->mode = END;
- case END:
- r = Z_STREAM_END;
- LEAVE
- case BADCODE: /* x: got error */
- r = Z_DATA_ERROR;
- LEAVE
- default:
- r = Z_STREAM_ERROR;
- LEAVE
- }
-}
-
-
-local void inflate_codes_free(c, z)
-inflate_codes_statef *c;
-z_stream *z;
-{
- ZFREE(z, c, sizeof(struct inflate_codes_state));
- Tracev((stderr, "inflate: codes free\n"));
-}
-
-/*+++++*/
-/* inflate_util.c -- data and routines common to blocks and codes
- * Copyright (C) 1995 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* copy as much as possible from the sliding window to the output area */
-local int inflate_flush(s, z, r)
-inflate_blocks_statef *s;
-z_stream *z;
-int r;
-{
- uInt n;
- Bytef *p, *q;
-
- /* local copies of source and destination pointers */
- p = z->next_out;
- q = s->read;
-
- /* compute number of bytes to copy as far as end of window */
- n = (uInt)((q <= s->write ? s->write : s->end) - q);
- if (n > z->avail_out) n = z->avail_out;
- if (n && r == Z_BUF_ERROR) r = Z_OK;
-
- /* update counters */
- z->avail_out -= n;
- z->total_out += n;
-
- /* update check information */
- if (s->checkfn != Z_NULL)
- s->check = (*s->checkfn)(s->check, q, n);
-
- /* copy as far as end of window */
- if (p != NULL) {
- zmemcpy(p, q, n);
- p += n;
- }
- q += n;
-
- /* see if more to copy at beginning of window */
- if (q == s->end)
- {
- /* wrap pointers */
- q = s->window;
- if (s->write == s->end)
- s->write = s->window;
-
- /* compute bytes to copy */
- n = (uInt)(s->write - q);
- if (n > z->avail_out) n = z->avail_out;
- if (n && r == Z_BUF_ERROR) r = Z_OK;
-
- /* update counters */
- z->avail_out -= n;
- z->total_out += n;
-
- /* update check information */
- if (s->checkfn != Z_NULL)
- s->check = (*s->checkfn)(s->check, q, n);
-
- /* copy */
- if (p != NULL) {
- zmemcpy(p, q, n);
- p += n;
- }
- q += n;
- }
-
- /* update pointers */
- z->next_out = p;
- s->read = q;
-
- /* done */
- return r;
-}
-
-
-/*+++++*/
-/* inffast.c -- process literals and length/distance pairs fast
- * Copyright (C) 1995 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* simplify the use of the inflate_huft type with some defines */
-#define base more.Base
-#define next more.Next
-#define exop word.what.Exop
-#define bits word.what.Bits
-
-/* macros for bit input with no checking and for returning unused bytes */
-#define GRABBITS(j) {while(k<(j)){b|=((uLong)NEXTBYTE)<<k;k+=8;}}
-#define UNGRAB {n+=(c=k>>3);p-=c;k&=7;}
-
-/* Called with number of bytes left to write in window at least 258
- (the maximum string length) and number of input bytes available
- at least ten. The ten bytes are six bytes for the longest length/
- distance pair plus four bytes for overloading the bit buffer. */
-
-local int inflate_fast(bl, bd, tl, td, s, z)
-uInt bl, bd;
-inflate_huft *tl, *td;
-inflate_blocks_statef *s;
-z_stream *z;
-{
- inflate_huft *t; /* temporary pointer */
- uInt e; /* extra bits or operation */
- uLong b; /* bit buffer */
- uInt k; /* bits in bit buffer */
- Bytef *p; /* input data pointer */
- uInt n; /* bytes available there */
- Bytef *q; /* output window write pointer */
- uInt m; /* bytes to end of window or read pointer */
- uInt ml; /* mask for literal/length tree */
- uInt md; /* mask for distance tree */
- uInt c; /* bytes to copy */
- uInt d; /* distance back to copy from */
- Bytef *r; /* copy source pointer */
-
- /* load input, output, bit values */
- LOAD
-
- /* initialize masks */
- ml = inflate_mask[bl];
- md = inflate_mask[bd];
-
- /* do until not enough input or output space for fast loop */
- do { /* assume called with m >= 258 && n >= 10 */
- /* get literal/length code */
- GRABBITS(20) /* max bits for literal/length code */
- if ((e = (t = tl + ((uInt)b & ml))->exop) == 0)
- {
- DUMPBITS(t->bits)
- Tracevv((stderr, t->base >= 0x20 && t->base < 0x7f ?
- "inflate: * literal '%c'\n" :
- "inflate: * literal 0x%02x\n", t->base));
- *q++ = (Byte)t->base;
- m--;
- continue;
- }
- do {
- DUMPBITS(t->bits)
- if (e & 16)
- {
- /* get extra bits for length */
- e &= 15;
- c = t->base + ((uInt)b & inflate_mask[e]);
- DUMPBITS(e)
- Tracevv((stderr, "inflate: * length %u\n", c));
-
- /* decode distance base of block to copy */
- GRABBITS(15); /* max bits for distance code */
- e = (t = td + ((uInt)b & md))->exop;
- do {
- DUMPBITS(t->bits)
- if (e & 16)
- {
- /* get extra bits to add to distance base */
- e &= 15;
- GRABBITS(e) /* get extra bits (up to 13) */
- d = t->base + ((uInt)b & inflate_mask[e]);
- DUMPBITS(e)
- Tracevv((stderr, "inflate: * distance %u\n", d));
-
- /* do the copy */
- m -= c;
- if ((uInt)(q - s->window) >= d) /* offset before dest */
- { /* just copy */
- r = q - d;
- *q++ = *r++; c--; /* minimum count is three, */
- *q++ = *r++; c--; /* so unroll loop a little */
- }
- else /* else offset after destination */
- {
- e = d - (q - s->window); /* bytes from offset to end */
- r = s->end - e; /* pointer to offset */
- if (c > e) /* if source crosses, */
- {
- c -= e; /* copy to end of window */
- do {
- *q++ = *r++;
- } while (--e);
- r = s->window; /* copy rest from start of window */
- }
- }
- do { /* copy all or what's left */
- *q++ = *r++;
- } while (--c);
- break;
- }
- else if ((e & 64) == 0)
- e = (t = t->next + ((uInt)b & inflate_mask[e]))->exop;
- else
- {
- z->msg = "invalid distance code";
- UNGRAB
- UPDATE
- return Z_DATA_ERROR;
- }
- } while (1);
- break;
- }
- if ((e & 64) == 0)
- {
- if ((e = (t = t->next + ((uInt)b & inflate_mask[e]))->exop) == 0)
- {
- DUMPBITS(t->bits)
- Tracevv((stderr, t->base >= 0x20 && t->base < 0x7f ?
- "inflate: * literal '%c'\n" :
- "inflate: * literal 0x%02x\n", t->base));
- *q++ = (Byte)t->base;
- m--;
- break;
- }
- }
- else if (e & 32)
- {
- Tracevv((stderr, "inflate: * end of block\n"));
- UNGRAB
- UPDATE
- return Z_STREAM_END;
- }
- else
- {
- z->msg = "invalid literal/length code";
- UNGRAB
- UPDATE
- return Z_DATA_ERROR;
- }
- } while (1);
- } while (m >= 258 && n >= 10);
-
- /* not enough input or output--restore pointers and return */
- UNGRAB
- UPDATE
- return Z_OK;
-}
-
-
-/*+++++*/
-/* zutil.c -- target dependent utility functions for the compression library
- * Copyright (C) 1995 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* From: zutil.c,v 1.8 1995/05/03 17:27:12 jloup Exp */
-
-char *zlib_version = ZLIB_VERSION;
-
-char *z_errmsg[] = {
-"stream end", /* Z_STREAM_END 1 */
-"", /* Z_OK 0 */
-"file error", /* Z_ERRNO (-1) */
-"stream error", /* Z_STREAM_ERROR (-2) */
-"data error", /* Z_DATA_ERROR (-3) */
-"insufficient memory", /* Z_MEM_ERROR (-4) */
-"buffer error", /* Z_BUF_ERROR (-5) */
-""};
-
-
-/*+++++*/
-/* adler32.c -- compute the Adler-32 checksum of a data stream
- * Copyright (C) 1995 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* From: adler32.c,v 1.6 1995/05/03 17:27:08 jloup Exp */
-
-#define BASE 65521L /* largest prime smaller than 65536 */
-#define NMAX 5552
-/* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
-
-#define DO1(buf) {s1 += *buf++; s2 += s1;}
-#define DO2(buf) DO1(buf); DO1(buf);
-#define DO4(buf) DO2(buf); DO2(buf);
-#define DO8(buf) DO4(buf); DO4(buf);
-#define DO16(buf) DO8(buf); DO8(buf);
-
-/* ========================================================================= */
-uLong adler32(adler, buf, len)
- uLong adler;
- Bytef *buf;
- uInt len;
-{
- unsigned long s1 = adler & 0xffff;
- unsigned long s2 = (adler >> 16) & 0xffff;
- int k;
-
- if (buf == Z_NULL) return 1L;
-
- while (len > 0) {
- k = len < NMAX ? len : NMAX;
- len -= k;
- while (k >= 16) {
- DO16(buf);
- k -= 16;
- }
- if (k != 0) do {
- DO1(buf);
- } while (--k);
- s1 %= BASE;
- s2 %= BASE;
- }
- return (s2 << 16) | s1;
-}
diff --git a/mdk-stage1/ppp/pppdump/zlib.h b/mdk-stage1/ppp/pppdump/zlib.h
deleted file mode 100644
index 9c7ac734d..000000000
--- a/mdk-stage1/ppp/pppdump/zlib.h
+++ /dev/null
@@ -1,631 +0,0 @@
-/* $Id$ */
-
-/*
- * This file is derived from zlib.h and zconf.h from the zlib-0.95
- * distribution by Jean-loup Gailly and Mark Adler, with some additions
- * by Paul Mackerras to aid in implementing Deflate compression and
- * decompression for PPP packets.
- */
-
-/* zlib.h -- interface of the 'zlib' general purpose compression library
- version 0.95, Aug 16th, 1995.
-
- Copyright (C) 1995 Jean-loup Gailly and Mark Adler
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-
- Jean-loup Gailly Mark Adler
- gzip@prep.ai.mit.edu madler@alumni.caltech.edu
- */
-
-#ifndef _ZLIB_H
-#define _ZLIB_H
-
-/* #include "zconf.h" */ /* included directly here */
-
-/* zconf.h -- configuration of the zlib compression library
- * Copyright (C) 1995 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* From: zconf.h,v 1.12 1995/05/03 17:27:12 jloup Exp */
-
-/*
- The library does not install any signal handler. It is recommended to
- add at least a handler for SIGSEGV when decompressing; the library checks
- the consistency of the input data whenever possible but may go nuts
- for some forms of corrupted input.
- */
-
-/*
- * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
- * than 64k bytes at a time (needed on systems with 16-bit int).
- * Compile with -DUNALIGNED_OK if it is OK to access shorts or ints
- * at addresses which are not a multiple of their size.
- * Under DOS, -DFAR=far or -DFAR=__far may be needed.
- */
-
-#ifndef STDC
-# if defined(MSDOS) || defined(__STDC__) || defined(__cplusplus)
-# define STDC
-# endif
-#endif
-
-#ifdef __MWERKS__ /* Metrowerks CodeWarrior declares fileno() in unix.h */
-# include <unix.h>
-#endif
-
-/* Maximum value for memLevel in deflateInit2 */
-#ifndef MAX_MEM_LEVEL
-# ifdef MAXSEG_64K
-# define MAX_MEM_LEVEL 8
-# else
-# define MAX_MEM_LEVEL 9
-# endif
-#endif
-
-#ifndef FAR
-# define FAR
-#endif
-
-/* Maximum value for windowBits in deflateInit2 and inflateInit2 */
-#ifndef MAX_WBITS
-# define MAX_WBITS 15 /* 32K LZ77 window */
-#endif
-
-/* The memory requirements for deflate are (in bytes):
- 1 << (windowBits+2) + 1 << (memLevel+9)
- that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values)
- plus a few kilobytes for small objects. For example, if you want to reduce
- the default memory requirements from 256K to 128K, compile with
- make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
- Of course this will generally degrade compression (there's no free lunch).
-
- The memory requirements for inflate are (in bytes) 1 << windowBits
- that is, 32K for windowBits=15 (default value) plus a few kilobytes
- for small objects.
-*/
-
- /* Type declarations */
-
-#ifndef OF /* function prototypes */
-# ifdef STDC
-# define OF(args) args
-# else
-# define OF(args) ()
-# endif
-#endif
-
-typedef unsigned char Byte; /* 8 bits */
-typedef unsigned int uInt; /* 16 bits or more */
-typedef unsigned long uLong; /* 32 bits or more */
-
-typedef Byte FAR Bytef;
-typedef char FAR charf;
-typedef int FAR intf;
-typedef uInt FAR uIntf;
-typedef uLong FAR uLongf;
-
-#ifdef STDC
- typedef void FAR *voidpf;
- typedef void *voidp;
-#else
- typedef Byte FAR *voidpf;
- typedef Byte *voidp;
-#endif
-
-/* end of original zconf.h */
-
-#define ZLIB_VERSION "0.95P"
-
-/*
- The 'zlib' compression library provides in-memory compression and
- decompression functions, including integrity checks of the uncompressed
- data. This version of the library supports only one compression method
- (deflation) but other algorithms may be added later and will have the same
- stream interface.
-
- For compression the application must provide the output buffer and
- may optionally provide the input buffer for optimization. For decompression,
- the application must provide the input buffer and may optionally provide
- the output buffer for optimization.
-
- Compression can be done in a single step if the buffers are large
- enough (for example if an input file is mmap'ed), or can be done by
- repeated calls of the compression function. In the latter case, the
- application must provide more input and/or consume the output
- (providing more output space) before each call.
-*/
-
-typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size));
-typedef void (*free_func) OF((voidpf opaque, voidpf address, uInt nbytes));
-
-struct internal_state;
-
-typedef struct z_stream_s {
- Bytef *next_in; /* next input byte */
- uInt avail_in; /* number of bytes available at next_in */
- uLong total_in; /* total nb of input bytes read so far */
-
- Bytef *next_out; /* next output byte should be put there */
- uInt avail_out; /* remaining free space at next_out */
- uLong total_out; /* total nb of bytes output so far */
-
- char *msg; /* last error message, NULL if no error */
- struct internal_state FAR *state; /* not visible by applications */
-
- alloc_func zalloc; /* used to allocate the internal state */
- free_func zfree; /* used to free the internal state */
- voidp opaque; /* private data object passed to zalloc and zfree */
-
- Byte data_type; /* best guess about the data type: ascii or binary */
-
-} z_stream;
-
-/*
- The application must update next_in and avail_in when avail_in has
- dropped to zero. It must update next_out and avail_out when avail_out
- has dropped to zero. The application must initialize zalloc, zfree and
- opaque before calling the init function. All other fields are set by the
- compression library and must not be updated by the application.
-
- The opaque value provided by the application will be passed as the first
- parameter for calls of zalloc and zfree. This can be useful for custom
- memory management. The compression library attaches no meaning to the
- opaque value.
-
- zalloc must return Z_NULL if there is not enough memory for the object.
- On 16-bit systems, the functions zalloc and zfree must be able to allocate
- exactly 65536 bytes, but will not be required to allocate more than this
- if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS,
- pointers returned by zalloc for objects of exactly 65536 bytes *must*
- have their offset normalized to zero. The default allocation function
- provided by this library ensures this (see zutil.c). To reduce memory
- requirements and avoid any allocation of 64K objects, at the expense of
- compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h).
-
- The fields total_in and total_out can be used for statistics or
- progress reports. After compression, total_in holds the total size of
- the uncompressed data and may be saved for use in the decompressor
- (particularly if the decompressor wants to decompress everything in
- a single step).
-*/
-
- /* constants */
-
-#define Z_NO_FLUSH 0
-#define Z_PARTIAL_FLUSH 1
-#define Z_FULL_FLUSH 2
-#define Z_SYNC_FLUSH 3 /* experimental: partial_flush + byte align */
-#define Z_FINISH 4
-#define Z_PACKET_FLUSH 5
-/* See deflate() below for the usage of these constants */
-
-#define Z_OK 0
-#define Z_STREAM_END 1
-#define Z_ERRNO (-1)
-#define Z_STREAM_ERROR (-2)
-#define Z_DATA_ERROR (-3)
-#define Z_MEM_ERROR (-4)
-#define Z_BUF_ERROR (-5)
-/* error codes for the compression/decompression functions */
-
-#define Z_BEST_SPEED 1
-#define Z_BEST_COMPRESSION 9
-#define Z_DEFAULT_COMPRESSION (-1)
-/* compression levels */
-
-#define Z_FILTERED 1
-#define Z_HUFFMAN_ONLY 2
-#define Z_DEFAULT_STRATEGY 0
-
-#define Z_BINARY 0
-#define Z_ASCII 1
-#define Z_UNKNOWN 2
-/* Used to set the data_type field */
-
-#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */
-
-extern char *zlib_version;
-/* The application can compare zlib_version and ZLIB_VERSION for consistency.
- If the first character differs, the library code actually used is
- not compatible with the zlib.h header file used by the application.
- */
-
- /* basic functions */
-
-extern int deflateInit OF((z_stream *strm, int level));
-/*
- Initializes the internal stream state for compression. The fields
- zalloc, zfree and opaque must be initialized before by the caller.
- If zalloc and zfree are set to Z_NULL, deflateInit updates them to
- use default allocation functions.
-
- The compression level must be Z_DEFAULT_COMPRESSION, or between 1 and 9:
- 1 gives best speed, 9 gives best compression. Z_DEFAULT_COMPRESSION requests
- a default compromise between speed and compression (currently equivalent
- to level 6).
-
- deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not
- enough memory, Z_STREAM_ERROR if level is not a valid compression level.
- msg is set to null if there is no error message. deflateInit does not
- perform any compression: this will be done by deflate().
-*/
-
-
-extern int deflate OF((z_stream *strm, int flush));
-/*
- Performs one or both of the following actions:
-
- - Compress more input starting at next_in and update next_in and avail_in
- accordingly. If not all input can be processed (because there is not
- enough room in the output buffer), next_in and avail_in are updated and
- processing will resume at this point for the next call of deflate().
-
- - Provide more output starting at next_out and update next_out and avail_out
- accordingly. This action is forced if the parameter flush is non zero.
- Forcing flush frequently degrades the compression ratio, so this parameter
- should be set only when necessary (in interactive applications).
- Some output may be provided even if flush is not set.
-
- Before the call of deflate(), the application should ensure that at least
- one of the actions is possible, by providing more input and/or consuming
- more output, and updating avail_in or avail_out accordingly; avail_out
- should never be zero before the call. The application can consume the
- compressed output when it wants, for example when the output buffer is full
- (avail_out == 0), or after each call of deflate().
-
- If the parameter flush is set to Z_PARTIAL_FLUSH, the current compression
- block is terminated and flushed to the output buffer so that the
- decompressor can get all input data available so far. For method 9, a future
- variant on method 8, the current block will be flushed but not terminated.
- If flush is set to Z_FULL_FLUSH, the compression block is terminated, a
- special marker is output and the compression dictionary is discarded; this
- is useful to allow the decompressor to synchronize if one compressed block
- has been damaged (see inflateSync below). Flushing degrades compression and
- so should be used only when necessary. Using Z_FULL_FLUSH too often can
- seriously degrade the compression. If deflate returns with avail_out == 0,
- this function must be called again with the same value of the flush
- parameter and more output space (updated avail_out), until the flush is
- complete (deflate returns with non-zero avail_out).
-
- If the parameter flush is set to Z_PACKET_FLUSH, the compression
- block is terminated, and a zero-length stored block is output,
- omitting the length bytes (the effect of this is that the 3-bit type
- code 000 for a stored block is output, and the output is then
- byte-aligned). This is designed for use at the end of a PPP packet.
- In addition, if the current compression block contains all the data
- since the last Z_PACKET_FLUSH, it is never output as a stored block.
- If the current compression block output as a static or dynamic block
- would not be at least `minCompression' bytes smaller than the
- original data, then nothing is output for that block. (The type
- code for the zero-length stored block is still output, resulting in
- a single zero byte being output for the whole packet.)
- `MinCompression' is a parameter to deflateInit2, or 0 if deflateInit
- is used.
-
- If the parameter flush is set to Z_FINISH, all pending input is processed,
- all pending output is flushed and deflate returns with Z_STREAM_END if there
- was enough output space; if deflate returns with Z_OK, this function must be
- called again with Z_FINISH and more output space (updated avail_out) but no
- more input data, until it returns with Z_STREAM_END or an error. After
- deflate has returned Z_STREAM_END, the only possible operations on the
- stream are deflateReset or deflateEnd.
-
- Z_FINISH can be used immediately after deflateInit if all the compression
- is to be done in a single step. In this case, avail_out must be at least
- 0.1% larger than avail_in plus 12 bytes. If deflate does not return
- Z_STREAM_END, then it must be called again as described above.
-
- deflate() may update data_type if it can make a good guess about
- the input data type (Z_ASCII or Z_BINARY). In doubt, the data is considered
- binary. This field is only for information purposes and does not affect
- the compression algorithm in any manner.
-
- deflate() returns Z_OK if some progress has been made (more input
- processed or more output produced), Z_STREAM_END if all input has been
- consumed and all output has been produced (only when flush is set to
- Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example
- if next_in or next_out was NULL), Z_BUF_ERROR if no progress is possible.
-*/
-
-
-extern int deflateEnd OF((z_stream *strm));
-/*
- All dynamically allocated data structures for this stream are freed.
- This function discards any unprocessed input and does not flush any
- pending output.
-
- deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the
- stream state was inconsistent. In the error case, msg may be set
- but then points to a static string (which must not be deallocated).
-*/
-
-
-extern int inflateInit OF((z_stream *strm));
-/*
- Initializes the internal stream state for decompression. The fields
- zalloc and zfree must be initialized before by the caller. If zalloc and
- zfree are set to Z_NULL, inflateInit updates them to use default allocation
- functions.
-
- inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not
- enough memory. msg is set to null if there is no error message.
- inflateInit does not perform any decompression: this will be done by
- inflate().
-*/
-
-
-extern int inflate OF((z_stream *strm, int flush));
-/*
- Performs one or both of the following actions:
-
- - Decompress more input starting at next_in and update next_in and avail_in
- accordingly. If not all input can be processed (because there is not
- enough room in the output buffer), next_in is updated and processing
- will resume at this point for the next call of inflate().
-
- - Provide more output starting at next_out and update next_out and avail_out
- accordingly. inflate() always provides as much output as possible
- (until there is no more input data or no more space in the output buffer).
-
- Before the call of inflate(), the application should ensure that at least
- one of the actions is possible, by providing more input and/or consuming
- more output, and updating the next_* and avail_* values accordingly.
- The application can consume the uncompressed output when it wants, for
- example when the output buffer is full (avail_out == 0), or after each
- call of inflate().
-
- If the parameter flush is set to Z_PARTIAL_FLUSH or Z_PACKET_FLUSH,
- inflate flushes as much output as possible to the output buffer. The
- flushing behavior of inflate is not specified for values of the flush
- parameter other than Z_PARTIAL_FLUSH, Z_PACKET_FLUSH or Z_FINISH, but the
- current implementation actually flushes as much output as possible
- anyway. For Z_PACKET_FLUSH, inflate checks that once all the input data
- has been consumed, it is expecting to see the length field of a stored
- block; if not, it returns Z_DATA_ERROR.
-
- inflate() should normally be called until it returns Z_STREAM_END or an
- error. However if all decompression is to be performed in a single step
- (a single call of inflate), the parameter flush should be set to
- Z_FINISH. In this case all pending input is processed and all pending
- output is flushed; avail_out must be large enough to hold all the
- uncompressed data. (The size of the uncompressed data may have been saved
- by the compressor for this purpose.) The next operation on this stream must
- be inflateEnd to deallocate the decompression state. The use of Z_FINISH
- is never required, but can be used to inform inflate that a faster routine
- may be used for the single inflate() call.
-
- inflate() returns Z_OK if some progress has been made (more input
- processed or more output produced), Z_STREAM_END if the end of the
- compressed data has been reached and all uncompressed output has been
- produced, Z_DATA_ERROR if the input data was corrupted, Z_STREAM_ERROR if
- the stream structure was inconsistent (for example if next_in or next_out
- was NULL), Z_MEM_ERROR if there was not enough memory, Z_BUF_ERROR if no
- progress is possible or if there was not enough room in the output buffer
- when Z_FINISH is used. In the Z_DATA_ERROR case, the application may then
- call inflateSync to look for a good compression block. */
-
-
-extern int inflateEnd OF((z_stream *strm));
-/*
- All dynamically allocated data structures for this stream are freed.
- This function discards any unprocessed input and does not flush any
- pending output.
-
- inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state
- was inconsistent. In the error case, msg may be set but then points to a
- static string (which must not be deallocated).
-*/
-
- /* advanced functions */
-
-/*
- The following functions are needed only in some special applications.
-*/
-
-extern int deflateInit2 OF((z_stream *strm,
- int level,
- int method,
- int windowBits,
- int memLevel,
- int strategy,
- int minCompression));
-/*
- This is another version of deflateInit with more compression options. The
- fields next_in, zalloc and zfree must be initialized before by the caller.
-
- The method parameter is the compression method. It must be 8 in this
- version of the library. (Method 9 will allow a 64K history buffer and
- partial block flushes.)
-
- The windowBits parameter is the base two logarithm of the window size
- (the size of the history buffer). It should be in the range 8..15 for this
- version of the library (the value 16 will be allowed for method 9). Larger
- values of this parameter result in better compression at the expense of
- memory usage. The default value is 15 if deflateInit is used instead.
-
- The memLevel parameter specifies how much memory should be allocated
- for the internal compression state. memLevel=1 uses minimum memory but
- is slow and reduces compression ratio; memLevel=9 uses maximum memory
- for optimal speed. The default value is 8. See zconf.h for total memory
- usage as a function of windowBits and memLevel.
-
- The strategy parameter is used to tune the compression algorithm. Use
- the value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data
- produced by a filter (or predictor), or Z_HUFFMAN_ONLY to force Huffman
- encoding only (no string match). Filtered data consists mostly of small
- values with a somewhat random distribution. In this case, the
- compression algorithm is tuned to compress them better. The strategy
- parameter only affects the compression ratio but not the correctness of
- the compressed output even if it is not set appropriately.
-
- The minCompression parameter specifies the minimum reduction in size
- required for a compressed block to be output when Z_PACKET_FLUSH is
- used (see the description of deflate above).
-
- If next_in is not null, the library will use this buffer to hold also
- some history information; the buffer must either hold the entire input
- data, or have at least 1<<(windowBits+1) bytes and be writable. If next_in
- is null, the library will allocate its own history buffer (and leave next_in
- null). next_out need not be provided here but must be provided by the
- application for the next call of deflate().
-
- If the history buffer is provided by the application, next_in must
- must never be changed by the application since the compressor maintains
- information inside this buffer from call to call; the application
- must provide more input only by increasing avail_in. next_in is always
- reset by the library in this case.
-
- deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was
- not enough memory, Z_STREAM_ERROR if a parameter is invalid (such as
- an invalid method). msg is set to null if there is no error message.
- deflateInit2 does not perform any compression: this will be done by
- deflate().
-*/
-
-extern int deflateCopy OF((z_stream *dest,
- z_stream *source));
-/*
- Sets the destination stream as a complete copy of the source stream. If
- the source stream is using an application-supplied history buffer, a new
- buffer is allocated for the destination stream. The compressed output
- buffer is always application-supplied. It's the responsibility of the
- application to provide the correct values of next_out and avail_out for the
- next call of deflate.
-
- This function is useful when several compression strategies will be
- tried, for example when there are several ways of pre-processing the input
- data with a filter. The streams that will be discarded should then be freed
- by calling deflateEnd. Note that deflateCopy duplicates the internal
- compression state which can be quite large, so this strategy is slow and
- can consume lots of memory.
-
- deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
- enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
- (such as zalloc being NULL). msg is left unchanged in both source and
- destination.
-*/
-
-extern int deflateReset OF((z_stream *strm));
-/*
- This function is equivalent to deflateEnd followed by deflateInit,
- but does not free and reallocate all the internal compression state.
- The stream will keep the same compression level and any other attributes
- that may have been set by deflateInit2.
-
- deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
- stream state was inconsistent (such as zalloc or state being NULL).
-*/
-
-extern int inflateInit2 OF((z_stream *strm,
- int windowBits));
-/*
- This is another version of inflateInit with more compression options. The
- fields next_out, zalloc and zfree must be initialized before by the caller.
-
- The windowBits parameter is the base two logarithm of the maximum window
- size (the size of the history buffer). It should be in the range 8..15 for
- this version of the library (the value 16 will be allowed soon). The
- default value is 15 if inflateInit is used instead. If a compressed stream
- with a larger window size is given as input, inflate() will return with
- the error code Z_DATA_ERROR instead of trying to allocate a larger window.
-
- If next_out is not null, the library will use this buffer for the history
- buffer; the buffer must either be large enough to hold the entire output
- data, or have at least 1<<windowBits bytes. If next_out is null, the
- library will allocate its own buffer (and leave next_out null). next_in
- need not be provided here but must be provided by the application for the
- next call of inflate().
-
- If the history buffer is provided by the application, next_out must
- never be changed by the application since the decompressor maintains
- history information inside this buffer from call to call; the application
- can only reset next_out to the beginning of the history buffer when
- avail_out is zero and all output has been consumed.
-
- inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was
- not enough memory, Z_STREAM_ERROR if a parameter is invalid (such as
- windowBits < 8). msg is set to null if there is no error message.
- inflateInit2 does not perform any decompression: this will be done by
- inflate().
-*/
-
-extern int inflateSync OF((z_stream *strm));
-/*
- Skips invalid compressed data until the special marker (see deflate()
- above) can be found, or until all available input is skipped. No output
- is provided.
-
- inflateSync returns Z_OK if the special marker has been found, Z_BUF_ERROR
- if no more input was provided, Z_DATA_ERROR if no marker has been found,
- or Z_STREAM_ERROR if the stream structure was inconsistent. In the success
- case, the application may save the current current value of total_in which
- indicates where valid compressed data was found. In the error case, the
- application may repeatedly call inflateSync, providing more input each time,
- until success or end of the input data.
-*/
-
-extern int inflateReset OF((z_stream *strm));
-/*
- This function is equivalent to inflateEnd followed by inflateInit,
- but does not free and reallocate all the internal decompression state.
- The stream will keep attributes that may have been set by inflateInit2.
-
- inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
- stream state was inconsistent (such as zalloc or state being NULL).
-*/
-
-extern int inflateIncomp OF((z_stream *strm));
-/*
- This function adds the data at next_in (avail_in bytes) to the output
- history without performing any output. There must be no pending output,
- and the decompressor must be expecting to see the start of a block.
- Calling this function is equivalent to decompressing a stored block
- containing the data at next_in (except that the data is not output).
-*/
-
- /* checksum functions */
-
-/*
- This function is not related to compression but is exported
- anyway because it might be useful in applications using the
- compression library.
-*/
-
-extern uLong adler32 OF((uLong adler, Bytef *buf, uInt len));
-
-/*
- Update a running Adler-32 checksum with the bytes buf[0..len-1] and
- return the updated checksum. If buf is NULL, this function returns
- the required initial value for the checksum.
- An Adler-32 checksum is almost as reliable as a CRC32 but can be computed
- much faster. Usage example:
-
- uLong adler = adler32(0L, Z_NULL, 0);
-
- while (read_buffer(buffer, length) != EOF) {
- adler = adler32(adler, buffer, length);
- }
- if (adler != original_adler) error();
-*/
-
-#ifndef _Z_UTIL_H
- struct internal_state {int dummy;}; /* hack for buggy compilers */
-#endif
-
-#endif /* _ZLIB_H */
diff --git a/mdk-stage1/ppp/pppstats/Makefile.linux b/mdk-stage1/ppp/pppstats/Makefile.linux
deleted file mode 100644
index ef0764c5d..000000000
--- a/mdk-stage1/ppp/pppstats/Makefile.linux
+++ /dev/null
@@ -1,32 +0,0 @@
-#
-# pppstats makefile
-# $Id$
-#
-
-PPPSTATSRCS = pppstats.c
-PPPSTATOBJS = pppstats.o
-
-#CC = gcc
-COPTS = -O
-COMPILE_FLAGS = -D_linux_ -I../include
-LIBS =
-
-INSTALL= install -o root -g daemon
-
-CFLAGS = $(COPTS) $(COMPILE_FLAGS)
-
-all: pppstats
-
-install: pppstats
- $(INSTALL) -s -c pppstats $(BINDIR)/pppstats
- $(INSTALL) -c -m 444 pppstats.8 $(MANDIR)/man8/pppstats.8
-
-pppstats: $(PPPSTATSRCS)
- $(CC) $(CFLAGS) -o pppstats pppstats.c $(LIBS)
-
-clean:
- rm -f pppstats *~ #* core
-
-depend:
- cpp -M $(CFLAGS) $(PPPSTATSRCS) >.depend
-# makedepend $(CFLAGS) $(PPPSTATSRCS)
diff --git a/mdk-stage1/ppp/pppstats/Makefile.sol2 b/mdk-stage1/ppp/pppstats/Makefile.sol2
deleted file mode 100644
index a6544e61b..000000000
--- a/mdk-stage1/ppp/pppstats/Makefile.sol2
+++ /dev/null
@@ -1,20 +0,0 @@
-#
-# pppstats Makefile for SVR4 systems
-# $Id$
-#
-
-include ../solaris/Makedefs
-
-CFLAGS = -DSTREAMS -I../include $(COPTS)
-
-all: pppstats
-
-pppstats: pppstats.c
- $(CC) $(CFLAGS) -o pppstats pppstats.c
-
-install: pppstats
- $(INSTALL) -f $(BINDIR) pppstats
- $(INSTALL) -m 444 -f $(MANDIR)/man8 pppstats.8
-
-clean:
- rm -f pppstats *~ core
diff --git a/mdk-stage1/ppp/pppstats/Makefile.sunos4 b/mdk-stage1/ppp/pppstats/Makefile.sunos4
deleted file mode 100644
index 2a036f28f..000000000
--- a/mdk-stage1/ppp/pppstats/Makefile.sunos4
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# pppstats makefile
-# $Id$
-#
-
-include ../sunos4/Makedefs
-
-PPPSTATSRCS = pppstats.c
-PPPSTATOBJS = pppstats.o
-
-COMPILE_FLAGS = -DSTREAMS -DSUNOS4
-LIBS =
-
-CFLAGS = -I../include $(COPTS) $(COMPILE_FLAGS)
-
-all: pppstats
-
-install: pppstats
- $(INSTALL) -c pppstats $(BINDIR)/pppstats
- $(INSTALL) -c -m 444 pppstats.8 $(MANDIR)/man8/pppstats.8
-
-pppstats: $(PPPSTATSRCS)
- $(CC) $(CFLAGS) -o pppstats pppstats.c $(LIBS)
-
-clean:
- rm -f pppstats *~ #* core
-
-depend:
- cpp -M $(CFLAGS) $(PPPSTATSRCS) >.depend
-# makedepend $(CFLAGS) $(PPPSTATSRCS)
diff --git a/mdk-stage1/ppp/pppstats/pppstats.8 b/mdk-stage1/ppp/pppstats/pppstats.8
deleted file mode 100644
index 1ba8d5779..000000000
--- a/mdk-stage1/ppp/pppstats/pppstats.8
+++ /dev/null
@@ -1,217 +0,0 @@
-.\" @(#) $Id$
-.TH PPPSTATS 8 "26 June 1995"
-.SH NAME
-pppstats \- print PPP statistics
-.SH SYNOPSIS
-.B pppstats
-[
-.B -a
-] [
-.B -v
-] [
-.B -r
-] [
-.B -z
-] [
-.B -c
-.I <count>
-] [
-.B -w
-.I <secs>
-] [
-.I interface
-]
-.ti 12
-.SH DESCRIPTION
-The
-.B pppstats
-utility reports PPP-related statistics at regular intervals for the
-specified PPP interface. If the interface is unspecified, it will
-default to ppp0.
-The display is split horizontally
-into input and output sections containing columns of statistics
-describing the properties and volume of packets received and
-transmitted by the interface.
-.PP
-The options are as follows:
-.TP
-.B -a
-Display absolute values rather than deltas. With this option, all
-reports show statistics for the time since the link was initiated.
-Without this option, the second and subsequent reports show statistics
-for the time since the last report.
-.TP
-.B -c \fIcount
-Repeat the display
-.I count
-times. If this option is not specified, the default repeat count is 1
-if the
-.B -w
-option is not specified, otherwise infinity.
-.TP
-.B -r
-Display additional statistics summarizing the compression ratio
-achieved by the packet compression algorithm in use.
-.TP
-.B -v
-Display additional statistics relating to the performance of the Van
-Jacobson TCP header compression algorithm.
-.TP
-.B -w \fIwait
-Pause
-.I wait
-seconds between each display. If this option is not specified, the
-default interval is 5 seconds.
-.TP
-.B -z
-Instead of the standard display, show statistics indicating the
-performance of the packet compression algorithm in use.
-.PP
-The following fields are printed on the input side when the
-.B -z
-option is not used:
-.TP
-.B IN
-The total number of bytes received by this interface.
-.TP
-.B PACK
-The total number of packets received by this interface.
-.TP
-.B VJCOMP
-The number of header-compressed TCP packets received by this interface.
-.TP
-.B VJUNC
-The number of header-uncompressed TCP packets received by this
-interface. Not reported when the
-.B -r
-option is specified.
-.TP
-.B VJERR
-The number of corrupted or bogus header-compressed TCP packets
-received by this interface. Not reported when the
-.B -r
-option is specified.
-.TP
-.B VJTOSS
-The number of VJ header-compressed TCP packets dropped on reception by
-this interface because of preceding errors. Only reported when the
-.B -v
-option is specified.
-.TP
-.B NON-VJ
-The total number of non-TCP packets received by this interface. Only
-reported when the
-.B -v
-option is specified.
-.TP
-.B RATIO
-The compression ratio achieved for received packets by the
-packet compression scheme in use, defined as the uncompressed size
-divided by the compressed size.
-Only reported when the
-.B -r
-option is specified.
-.TP
-.B UBYTE
-The total number of bytes received, after decompression of compressed
-packets. Only reported when the
-.B -r
-option is specified.
-.PP
-The following fields are printed on the output side:
-.TP
-.B OUT
-The total number of bytes transmitted from this interface.
-.TP
-.B PACK
-The total number of packets transmitted from this interface.
-.TP
-.B VJCOMP
-The number of TCP packets transmitted from this interface with
-VJ-compressed TCP headers.
-.TP
-.B VJUNC
-The number of TCP packets transmitted from this interface with
-VJ-uncompressed TCP headers.
-Not reported when the
-.B -r
-option is specified.
-.TP
-.B NON-VJ
-The total number of non-TCP packets transmitted from this interface.
-Not reported when the
-.B -r
-option is specified.
-.TP
-.B VJSRCH
-The number of searches for the cached header entry for a VJ header
-compressed TCP packet. Only reported when the
-.B -v
-option is specified.
-.TP
-.B VJMISS
-The number of failed searches for the cached header entry for a
-VJ header compressed TCP packet. Only reported when the
-.B -v
-option is specified.
-.TP
-.B RATIO
-The compression ratio achieved for transmitted packets by the
-packet compression scheme in use, defined as the size
-before compression divided by the compressed size.
-Only reported when the
-.B -r
-option is specified.
-.TP
-.B UBYTE
-The total number of bytes to be transmitted, before packet compression
-is applied. Only reported when the
-.B -r
-option is specified.
-.PP
-When the
-.B -z
-option is specified,
-.Nm pppstats
-instead displays the following fields, relating to the packet
-compression algorithm currently in use. If packet compression is not
-in use, these fields will all display zeroes. The fields displayed on
-the input side are:
-.TP
-.B COMPRESSED BYTE
-The number of bytes of compressed packets received.
-.TP
-.B COMPRESSED PACK
-The number of compressed packets received.
-.TP
-.B INCOMPRESSIBLE BYTE
-The number of bytes of incompressible packets (that is, those which
-were transmitted in uncompressed form) received.
-.TP
-.B INCOMPRESSIBLE PACK
-The number of incompressible packets received.
-.TP
-.B COMP RATIO
-The recent compression ratio for incoming packets, defined as the
-uncompressed size divided by the compressed size (including both
-compressible and incompressible packets).
-.PP
-The fields displayed on the output side are:
-.TP
-.B COMPRESSED BYTE
-The number of bytes of compressed packets transmitted.
-.TP
-.B COMPRESSED PACK
-The number of compressed packets transmitted.
-.TP
-.B INCOMPRESSIBLE BYTE
-The number of bytes of incompressible packets transmitted (that is,
-those which were transmitted in uncompressed form).
-.TP
-.B INCOMPRESSIBLE PACK
-The number of incompressible packets transmitted.
-.TP
-.B COMP RATIO
-The recent compression ratio for outgoing packets.
-.SH SEE ALSO
-pppd(8)
diff --git a/mdk-stage1/ppp/pppstats/pppstats.c b/mdk-stage1/ppp/pppstats/pppstats.c
deleted file mode 100644
index 77b803723..000000000
--- a/mdk-stage1/ppp/pppstats/pppstats.c
+++ /dev/null
@@ -1,557 +0,0 @@
-/*
- * print PPP statistics:
- * pppstats [-a|-d] [-v|-r|-z] [-c count] [-w wait] [interface]
- *
- * -a Show absolute values rather than deltas
- * -d Show data rate (kB/s) rather than bytes
- * -v Show more stats for VJ TCP header compression
- * -r Show compression ratio
- * -z Show compression statistics instead of default display
- *
- * History:
- * perkins@cps.msu.edu: Added compression statistics and alternate
- * display. 11/94
- * Brad Parker (brad@cayman.com) 6/92
- *
- * from the original "slstats" by Van Jacobson
- *
- * Copyright (c) 1989 Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by the University of California, Berkeley. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#ifndef __STDC__
-#define const
-#endif
-
-#ifndef lint
-static const char rcsid[] = "$Id$";
-#endif
-
-#include <stdio.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-#include <signal.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/ioctl.h>
-
-#ifndef STREAMS
-#if defined(_linux_) && defined(__powerpc__) \
- && (__GLIBC__ == 2 && __GLIBC_MINOR__ == 0)
-/* kludge alert! */
-#undef __GLIBC__
-#endif
-#include <sys/socket.h> /* *BSD, Linux, NeXT, Ultrix etc. */
-#ifndef _linux_
-#include <net/if.h>
-#include <net/ppp_defs.h>
-#include <net/if_ppp.h>
-#else
-/* Linux */
-#if __GLIBC__ >= 2
-#include <asm/types.h> /* glibc 2 conflicts with linux/types.h */
-#include <net/if.h>
-#else
-#include <linux/types.h>
-#include <linux/if.h>
-#endif
-#include <linux/ppp_defs.h>
-#include <linux/if_ppp.h>
-#endif /* _linux_ */
-
-#else /* STREAMS */
-#include <sys/stropts.h> /* SVR4, Solaris 2, SunOS 4, OSF/1, etc. */
-#include <net/ppp_defs.h>
-#include <net/pppio.h>
-
-#endif /* STREAMS */
-
-int vflag, rflag, zflag; /* select type of display */
-int aflag; /* print absolute values, not deltas */
-int dflag; /* print data rates, not bytes */
-int interval, count;
-int infinite;
-int unit;
-int s; /* socket or /dev/ppp file descriptor */
-int signalled; /* set if alarm goes off "early" */
-char *progname;
-char *interface;
-
-#if defined(SUNOS4) || defined(ULTRIX) || defined(NeXT)
-extern int optind;
-extern char *optarg;
-#endif
-
-/*
- * If PPP_DRV_NAME is not defined, use the legacy "ppp" as the
- * device name.
- */
-#if !defined(PPP_DRV_NAME)
-#define PPP_DRV_NAME "ppp"
-#endif /* !defined(PPP_DRV_NAME) */
-
-static void usage __P((void));
-static void catchalarm __P((int));
-static void get_ppp_stats __P((struct ppp_stats *));
-static void get_ppp_cstats __P((struct ppp_comp_stats *));
-static void intpr __P((void));
-
-int main __P((int, char *argv[]));
-
-static void
-usage()
-{
- fprintf(stderr, "Usage: %s [-a|-d] [-v|-r|-z] [-c count] [-w wait] [interface]\n",
- progname);
- exit(1);
-}
-
-/*
- * Called if an interval expires before intpr has completed a loop.
- * Sets a flag to not wait for the alarm.
- */
-static void
-catchalarm(arg)
- int arg;
-{
- signalled = 1;
-}
-
-
-#ifndef STREAMS
-static void
-get_ppp_stats(curp)
- struct ppp_stats *curp;
-{
- struct ifpppstatsreq req;
-
- memset (&req, 0, sizeof (req));
-
-#ifdef _linux_
- req.stats_ptr = (caddr_t) &req.stats;
-#undef ifr_name
-#define ifr_name ifr__name
-#endif
-
- strncpy(req.ifr_name, interface, sizeof(req.ifr_name));
- if (ioctl(s, SIOCGPPPSTATS, &req) < 0) {
- fprintf(stderr, "%s: ", progname);
- if (errno == ENOTTY)
- fprintf(stderr, "kernel support missing\n");
- else
- perror("couldn't get PPP statistics");
- exit(1);
- }
- *curp = req.stats;
-}
-
-static void
-get_ppp_cstats(csp)
- struct ppp_comp_stats *csp;
-{
- struct ifpppcstatsreq creq;
-
- memset (&creq, 0, sizeof (creq));
-
-#ifdef _linux_
- creq.stats_ptr = (caddr_t) &creq.stats;
-#undef ifr_name
-#define ifr_name ifr__name
-#endif
-
- strncpy(creq.ifr_name, interface, sizeof(creq.ifr_name));
- if (ioctl(s, SIOCGPPPCSTATS, &creq) < 0) {
- fprintf(stderr, "%s: ", progname);
- if (errno == ENOTTY) {
- fprintf(stderr, "no kernel compression support\n");
- if (zflag)
- exit(1);
- rflag = 0;
- } else {
- perror("couldn't get PPP compression stats");
- exit(1);
- }
- }
-
-#ifdef _linux_
- if (creq.stats.c.bytes_out == 0) {
- creq.stats.c.bytes_out = creq.stats.c.comp_bytes + creq.stats.c.inc_bytes;
- creq.stats.c.in_count = creq.stats.c.unc_bytes;
- }
- if (creq.stats.c.bytes_out == 0)
- creq.stats.c.ratio = 0.0;
- else
- creq.stats.c.ratio = 256.0 * creq.stats.c.in_count /
- creq.stats.c.bytes_out;
-
- if (creq.stats.d.bytes_out == 0) {
- creq.stats.d.bytes_out = creq.stats.d.comp_bytes + creq.stats.d.inc_bytes;
- creq.stats.d.in_count = creq.stats.d.unc_bytes;
- }
- if (creq.stats.d.bytes_out == 0)
- creq.stats.d.ratio = 0.0;
- else
- creq.stats.d.ratio = 256.0 * creq.stats.d.in_count /
- creq.stats.d.bytes_out;
-#endif
-
- *csp = creq.stats;
-}
-
-#else /* STREAMS */
-
-int
-strioctl(fd, cmd, ptr, ilen, olen)
- int fd, cmd, ilen, olen;
- char *ptr;
-{
- struct strioctl str;
-
- str.ic_cmd = cmd;
- str.ic_timout = 0;
- str.ic_len = ilen;
- str.ic_dp = ptr;
- if (ioctl(fd, I_STR, &str) == -1)
- return -1;
- if (str.ic_len != olen)
- fprintf(stderr, "strioctl: expected %d bytes, got %d for cmd %x\n",
- olen, str.ic_len, cmd);
- return 0;
-}
-
-static void
-get_ppp_stats(curp)
- struct ppp_stats *curp;
-{
- if (strioctl(s, PPPIO_GETSTAT, curp, 0, sizeof(*curp)) < 0) {
- fprintf(stderr, "%s: ", progname);
- if (errno == EINVAL)
- fprintf(stderr, "kernel support missing\n");
- else
- perror("couldn't get PPP statistics");
- exit(1);
- }
-}
-
-static void
-get_ppp_cstats(csp)
- struct ppp_comp_stats *csp;
-{
- if (strioctl(s, PPPIO_GETCSTAT, csp, 0, sizeof(*csp)) < 0) {
- fprintf(stderr, "%s: ", progname);
- if (errno == ENOTTY) {
- fprintf(stderr, "no kernel compression support\n");
- if (zflag)
- exit(1);
- rflag = 0;
- } else {
- perror("couldn't get PPP compression statistics");
- exit(1);
- }
- }
-}
-
-#endif /* STREAMS */
-
-#define MAX0(a) ((int)(a) > 0? (a): 0)
-#define V(offset) MAX0(cur.offset - old.offset)
-#define W(offset) MAX0(ccs.offset - ocs.offset)
-
-#define RATIO(c, i, u) ((c) == 0? 1.0: (u) / ((double)(c) + (i)))
-#define CRATE(x) RATIO(W(x.comp_bytes), W(x.inc_bytes), W(x.unc_bytes))
-
-#define KBPS(n) ((n) / (interval * 1000.0))
-
-/*
- * Print a running summary of interface statistics.
- * Repeat display every interval seconds, showing statistics
- * collected over that interval. Assumes that interval is non-zero.
- * First line printed is cumulative.
- */
-static void
-intpr()
-{
- register int line = 0;
- sigset_t oldmask, mask;
- char *bunit;
- int ratef = 0;
- struct ppp_stats cur, old;
- struct ppp_comp_stats ccs, ocs;
-
- memset(&old, 0, sizeof(old));
- memset(&ocs, 0, sizeof(ocs));
-
- while (1) {
- get_ppp_stats(&cur);
- if (zflag || rflag)
- get_ppp_cstats(&ccs);
-
- (void)signal(SIGALRM, catchalarm);
- signalled = 0;
- (void)alarm(interval);
-
- if ((line % 20) == 0) {
- if (zflag) {
- printf("IN: COMPRESSED INCOMPRESSIBLE COMP | ");
- printf("OUT: COMPRESSED INCOMPRESSIBLE COMP\n");
- bunit = dflag? "KB/S": "BYTE";
- printf(" %s PACK %s PACK RATIO | ", bunit, bunit);
- printf(" %s PACK %s PACK RATIO", bunit, bunit);
- } else {
- printf("%8.8s %6.6s %6.6s",
- "IN", "PACK", "VJCOMP");
-
- if (!rflag)
- printf(" %6.6s %6.6s", "VJUNC", "VJERR");
- if (vflag)
- printf(" %6.6s %6.6s", "VJTOSS", "NON-VJ");
- if (rflag)
- printf(" %6.6s %6.6s", "RATIO", "UBYTE");
- printf(" | %8.8s %6.6s %6.6s",
- "OUT", "PACK", "VJCOMP");
-
- if (!rflag)
- printf(" %6.6s %6.6s", "VJUNC", "NON-VJ");
- if (vflag)
- printf(" %6.6s %6.6s", "VJSRCH", "VJMISS");
- if (rflag)
- printf(" %6.6s %6.6s", "RATIO", "UBYTE");
- }
- putchar('\n');
- }
-
- if (zflag) {
- if (ratef) {
- printf("%8.3f %6u %8.3f %6u %6.2f",
- KBPS(W(d.comp_bytes)),
- W(d.comp_packets),
- KBPS(W(d.inc_bytes)),
- W(d.inc_packets),
- ccs.d.ratio / 256.0);
- printf(" | %8.3f %6u %8.3f %6u %6.2f",
- KBPS(W(c.comp_bytes)),
- W(c.comp_packets),
- KBPS(W(c.inc_bytes)),
- W(c.inc_packets),
- ccs.c.ratio / 256.0);
- } else {
- printf("%8u %6u %8u %6u %6.2f",
- W(d.comp_bytes),
- W(d.comp_packets),
- W(d.inc_bytes),
- W(d.inc_packets),
- ccs.d.ratio / 256.0);
- printf(" | %8u %6u %8u %6u %6.2f",
- W(c.comp_bytes),
- W(c.comp_packets),
- W(c.inc_bytes),
- W(c.inc_packets),
- ccs.c.ratio / 256.0);
- }
-
- } else {
- if (ratef)
- printf("%8.3f", KBPS(V(p.ppp_ibytes)));
- else
- printf("%8u", V(p.ppp_ibytes));
- printf(" %6u %6u",
- V(p.ppp_ipackets),
- V(vj.vjs_compressedin));
- if (!rflag)
- printf(" %6u %6u",
- V(vj.vjs_uncompressedin),
- V(vj.vjs_errorin));
- if (vflag)
- printf(" %6u %6u",
- V(vj.vjs_tossed),
- V(p.ppp_ipackets) - V(vj.vjs_compressedin)
- - V(vj.vjs_uncompressedin) - V(vj.vjs_errorin));
- if (rflag) {
- printf(" %6.2f ", CRATE(d));
- if (ratef)
- printf("%6.2f", KBPS(W(d.unc_bytes)));
- else
- printf("%6u", W(d.unc_bytes));
- }
- if (ratef)
- printf(" | %8.3f", KBPS(V(p.ppp_obytes)));
- else
- printf(" | %8u", V(p.ppp_obytes));
- printf(" %6u %6u",
- V(p.ppp_opackets),
- V(vj.vjs_compressed));
- if (!rflag)
- printf(" %6u %6u",
- V(vj.vjs_packets) - V(vj.vjs_compressed),
- V(p.ppp_opackets) - V(vj.vjs_packets));
- if (vflag)
- printf(" %6u %6u",
- V(vj.vjs_searches),
- V(vj.vjs_misses));
- if (rflag) {
- printf(" %6.2f ", CRATE(c));
- if (ratef)
- printf("%6.2f", KBPS(W(c.unc_bytes)));
- else
- printf("%6u", W(c.unc_bytes));
- }
-
- }
-
- putchar('\n');
- fflush(stdout);
- line++;
-
- count--;
- if (!infinite && !count)
- break;
-
- sigemptyset(&mask);
- sigaddset(&mask, SIGALRM);
- sigprocmask(SIG_BLOCK, &mask, &oldmask);
- if (!signalled) {
- sigemptyset(&mask);
- sigsuspend(&mask);
- }
- sigprocmask(SIG_SETMASK, &oldmask, NULL);
- signalled = 0;
- (void)alarm(interval);
-
- if (!aflag) {
- old = cur;
- ocs = ccs;
- ratef = dflag;
- }
- }
-}
-
-int
-main(argc, argv)
- int argc;
- char *argv[];
-{
- int c;
-#ifdef STREAMS
- char *dev;
-#endif
-
- interface = PPP_DRV_NAME "0";
- if ((progname = strrchr(argv[0], '/')) == NULL)
- progname = argv[0];
- else
- ++progname;
-
- while ((c = getopt(argc, argv, "advrzc:w:")) != -1) {
- switch (c) {
- case 'a':
- ++aflag;
- break;
- case 'd':
- ++dflag;
- break;
- case 'v':
- ++vflag;
- break;
- case 'r':
- ++rflag;
- break;
- case 'z':
- ++zflag;
- break;
- case 'c':
- count = atoi(optarg);
- if (count <= 0)
- usage();
- break;
- case 'w':
- interval = atoi(optarg);
- if (interval <= 0)
- usage();
- break;
- default:
- usage();
- }
- }
- argc -= optind;
- argv += optind;
-
- if (!interval && count)
- interval = 5;
- if (interval && !count)
- infinite = 1;
- if (!interval && !count)
- count = 1;
- if (aflag)
- dflag = 0;
-
- if (argc > 1)
- usage();
- if (argc > 0)
- interface = argv[0];
-
- if (sscanf(interface, PPP_DRV_NAME "%d", &unit) != 1) {
- fprintf(stderr, "%s: invalid interface '%s' specified\n",
- progname, interface);
- }
-
-#ifndef STREAMS
- {
- struct ifreq ifr;
-
- s = socket(AF_INET, SOCK_DGRAM, 0);
- if (s < 0) {
- fprintf(stderr, "%s: ", progname);
- perror("couldn't create IP socket");
- exit(1);
- }
-
-#ifdef _linux_
-#undef ifr_name
-#define ifr_name ifr_ifrn.ifrn_name
-#endif
- strncpy(ifr.ifr_name, interface, sizeof(ifr.ifr_name));
- if (ioctl(s, SIOCGIFFLAGS, (caddr_t)&ifr) < 0) {
- fprintf(stderr, "%s: nonexistent interface '%s' specified\n",
- progname, interface);
- exit(1);
- }
- }
-
-#else /* STREAMS */
-#ifdef __osf__
- dev = "/dev/streams/ppp";
-#else
- dev = "/dev/" PPP_DRV_NAME;
-#endif
- if ((s = open(dev, O_RDONLY)) < 0) {
- fprintf(stderr, "%s: couldn't open ", progname);
- perror(dev);
- exit(1);
- }
- if (strioctl(s, PPPIO_ATTACH, &unit, sizeof(int), 0) < 0) {
- fprintf(stderr, "%s: ppp%d is not available\n", progname, unit);
- exit(1);
- }
-
-#endif /* STREAMS */
-
- intpr();
- exit(0);
-}
diff --git a/mdk-stage1/ppp/sample/auth-down b/mdk-stage1/ppp/sample/auth-down
deleted file mode 100644
index edde65db1..000000000
--- a/mdk-stage1/ppp/sample/auth-down
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-#
-# A program or script which is executed after the remote system
-# successfully authenticates itself. It is executed with the parameters
-# <interface-name> <peer-name> <user-name> <tty-device> <speed>
-#
-
-#
-# The environment is cleared before executing this script
-# so the path must be reset
-#
-PATH=/usr/sbin:/sbin:/usr/bin:/bin
-export PATH
-
-echo auth-down `date +'%y/%m/%d %T'` $* >> /var/log/pppstats
-
-# last line
diff --git a/mdk-stage1/ppp/sample/auth-up b/mdk-stage1/ppp/sample/auth-up
deleted file mode 100644
index 54722a3c0..000000000
--- a/mdk-stage1/ppp/sample/auth-up
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-#
-# A program or script which is executed after the remote system
-# successfully authenticates itself. It is executed with the parameters
-# <interface-name> <peer-name> <user-name> <tty-device> <speed>
-#
-
-#
-# The environment is cleared before executing this script
-# so the path must be reset
-#
-PATH=/usr/sbin:/sbin:/usr/bin:/bin
-export PATH
-
-echo auth-up `date +'%y/%m/%d %T'` $* >> /var/log/pppstats
-
-# last line
diff --git a/mdk-stage1/ppp/sample/ip-down b/mdk-stage1/ppp/sample/ip-down
deleted file mode 100644
index b771fb644..000000000
--- a/mdk-stage1/ppp/sample/ip-down
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-#
-# This script is run by the pppd _after_ the link is brought down.
-# It should be used to delete routes, unset IP addresses etc.
-#
-# This script is called with the following arguments:
-# Arg Name Example
-# $1 Interface name ppp0
-# $2 The tty ttyS1
-# $3 The link speed 38400
-# $4 Local IP number 12.34.56.78
-# $5 Peer IP number 12.34.56.99
-#
-
-#
-# The environment is cleared before executing this script
-# so the path must be reset
-#
-PATH=/usr/sbin:/sbin:/usr/bin:/bin
-export PATH
-
-# last line
diff --git a/mdk-stage1/ppp/sample/ip-up b/mdk-stage1/ppp/sample/ip-up
deleted file mode 100644
index 02bb71c44..000000000
--- a/mdk-stage1/ppp/sample/ip-up
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/sh
-#
-# This script is run by the pppd after the link is established.
-# It should be used to add routes, set IP address, run the mailq
-# etc.
-#
-# This script is called with the following arguments:
-# Arg Name Example
-# $1 Interface name ppp0
-# $2 The tty ttyS1
-# $3 The link speed 38400
-# $4 Local IP number 12.34.56.78
-# $5 Peer IP number 12.34.56.99
-#
-
-#
-# The environment is cleared before executing this script
-# so the path must be reset
-#
-PATH=/usr/sbin:/sbin:/usr/bin:/bin
-export PATH
-
-# last line
diff --git a/mdk-stage1/ppp/sample/options b/mdk-stage1/ppp/sample/options
deleted file mode 100644
index 8d0a3f963..000000000
--- a/mdk-stage1/ppp/sample/options
+++ /dev/null
@@ -1,153 +0,0 @@
-# /etc/ppp/options
-
-# The name of this server. Often, the FQDN is used here.
-#name <host>
-
-# Enforce the use of the hostname as the name of the local system for
-# authentication purposes (overrides the name option).
-usehostname
-
-# If no local IP address is given, pppd will use the first IP address
-# that belongs to the local hostname. If "noipdefault" is given, this
-# is disabled and the peer will have to supply an IP address.
-noipdefault
-
-# With this option, pppd will accept the peer's idea of our local IP
-# address, even if the local IP address was specified in an option.
-#ipcp-accept-local
-
-# With this option, pppd will accept the peer's idea of its (remote) IP
-# address, even if the remote IP address was specified in an option.
-#ipcp-accept-remote
-
-# Specify which DNS Servers the incoming Win95 or WinNT Connection should use
-# Two Servers can be remotely configured
-#ms-dns 192.168.1.1
-#ms-dns 192.168.1.2
-
-# Specify which WINS Servers the incoming connection Win95 or WinNT should use
-#wins-addr 192.168.1.50
-#wins-addr 192.168.1.51
-
-# enable this on a server that already has a permanent default route
-#nodefaultroute
-
-# Run the executable or shell command specified after pppd has terminated
-# the link. This script could, for example, issue commands to the modem
-# to cause it to hang up if hardware modem control signals were not
-# available.
-# If mgetty is running, it will reset the modem anyway. So there is no need
-# to do it here.
-#disconnect "chat -- \d+++\d\c OK ath0 OK"
-
-# Increase debugging level (same as -d). The debug output is written
-# to syslog LOG_LOCAL2.
-debug
-
-# Enable debugging code in the kernel-level PPP driver. The argument n
-# is a number which is the sum of the following values: 1 to enable
-# general debug messages, 2 to request that the contents of received
-# packets be printed, and 4 to request that the contents of transmitted
-# packets be printed.
-#kdebug n
-
-# Require the peer to authenticate itself before allowing network
-# packets to be sent or received.
-# Please do not disable this setting. It is expected to be standard in
-# future releases of pppd. Use the call option (see manpage) to disable
-# authentication for specific peers.
-#auth
-
-# authentication can either be pap or chap. As most people only want to
-# use pap, you can also disable chap:
-#require-pap
-#refuse-chap
-
-# Use hardware flow control (i.e. RTS/CTS) to control the flow of data
-# on the serial port.
-crtscts
-
-# Specifies that pppd should use a UUCP-style lock on the serial device
-# to ensure exclusive access to the device.
-lock
-
-# Use the modem control lines.
-modem
-
-# async character map -- 32-bit hex; each bit is a character
-# that needs to be escaped for pppd to receive it. 0x00000001
-# represents '\x01', and 0x80000000 represents '\x1f'.
-# To allow pppd to work over a rlogin/telnet connection, ou should escape
-# XON (^Q), XOFF (^S) and ^]: (The peer should use "escape ff".)
-#asyncmap 200a0000
-asyncmap 0
-
-# Specifies that certain characters should be escaped on transmission
-# (regardless of whether the peer requests them to be escaped with its
-# async control character map). The characters to be escaped are
-# specified as a list of hex numbers separated by commas. Note that
-# almost any character can be specified for the escape option, unlike
-# the asyncmap option which only allows control characters to be
-# specified. The characters which may not be escaped are those with hex
-# values 0x20 - 0x3f or 0x5e.
-#escape 11,13,ff
-
-# Set the MRU [Maximum Receive Unit] value to <n> for negotiation. pppd
-# will ask the peer to send packets of no more than <n> bytes. The
-# minimum MRU value is 128. The default MRU value is 1500. A value of
-# 296 is recommended for slow links (40 bytes for TCP/IP header + 256
-# bytes of data).
-#mru 542
-
-# Set the MTU [Maximum Transmit Unit] value to <n>. Unless the peer
-# requests a smaller value via MRU negotiation, pppd will request that
-# the kernel networking code send data packets of no more than n bytes
-# through the PPP network interface.
-#mtu <n>
-
-# Set the interface netmask to <n>, a 32 bit netmask in "decimal dot"
-# notation (e.g. 255.255.255.0).
-#netmask 255.255.255.0
-
-# Don't fork to become a background process (otherwise pppd will do so
-# if a serial device is specified).
-nodetach
-
-# Set the assumed name of the remote system for authentication purposes
-# to <n>.
-#remotename <n>
-
-# Add an entry to this system's ARP [Address Resolution Protocol]
-# table with the IP address of the peer and the Ethernet address of this
-# system. {proxyarp,noproxyarp}
-proxyarp
-
-# Use the system password database for authenticating the peer using
-# PAP. Note: mgetty already provides this option. If this is specified
-# then dialin from users using a script under Linux to fire up ppp wont work.
-#login
-
-# If this option is given, pppd will send an LCP echo-request frame to
-# the peer every n seconds. Under Linux, the echo-request is sent when
-# no packets have been received from the peer for n seconds. Normally
-# the peer should respond to the echo-request by sending an echo-reply.
-# This option can be used with the lcp-echo-failure option to detect
-# that the peer is no longer connected.
-lcp-echo-interval 30
-
-# If this option is given, pppd will presume the peer to be dead if n
-# LCP echo-requests are sent without receiving a valid LCP echo-reply.
-# If this happens, pppd will terminate the connection. Use of this
-# option requires a non-zero value for the lcp-echo-interval parameter.
-# This option can be used to enable pppd to terminate after the physical
-# connection has been broken (e.g., the modem has hung up) in
-# situations where no hardware modem control lines are available.
-lcp-echo-failure 4
-
-# Specifies that pppd should disconnect if the link is idle for n seconds.
-idle 600
-
-# Disable the IPXCP and IPX protocols.
-noipx
-
-# ---<End of File>---
diff --git a/mdk-stage1/ppp/sample/options.ttyXX b/mdk-stage1/ppp/sample/options.ttyXX
deleted file mode 100644
index d4202f534..000000000
--- a/mdk-stage1/ppp/sample/options.ttyXX
+++ /dev/null
@@ -1,14 +0,0 @@
-# If you need to set up multiple serial lines then copy this file to
-# options.<ttyname> for each tty with a modem on it.
-#
-# The options.tty file will assign an IP address to each PPP connection
-# as it comes up. They must all be distinct!
-#
-# Example:
-# options.ttyS1 for com2 under DOS.
-#
-# Edit the following line so that the first IP address
-# mentioned is the ip address of the serial port while the second
-# is the IP address of your host
-#
-hostname-s1:hostname
diff --git a/mdk-stage1/ppp/sample/pap-secrets b/mdk-stage1/ppp/sample/pap-secrets
deleted file mode 100644
index 098971b9f..000000000
--- a/mdk-stage1/ppp/sample/pap-secrets
+++ /dev/null
@@ -1,28 +0,0 @@
-# Secrets for authentication using PAP
-# client server secret IP addresses
-
-# OUTBOUND CONNECTIONS
-# Here you should add your userid password to connect to your providers via
-# pap. The * means that the password is to be used for ANY host you connect
-# to. Thus you do not have to worry about the foreign machine name. Just
-# replace password with your password.
-# If you have different providers with different passwords then you better
-# remove the following line.
-#hostname * password
-
-# INBOUND CONNECTIONS
-#client hostname <password> 192.168.1.1
-
-# If you add "auth login -chap +pap" to /etc/mgetty+sendfax/login.config,
-# all users in /etc/passwd can use their password for pap-authentication.
-#
-# Every regular user can use PPP and has to use passwords from /etc/passwd
-#* hostname ""
-# UserIDs that cannot use PPP at all. Check your /etc/passwd and add any
-# other accounts that should not be able to use pppd! Replace hostname
-# with your local hostname.
-#guest hostname "*" -
-#master hostname "*" -
-#root hostname "*" -
-#support hostname "*" -
-#stats hostname "*" -
diff --git a/mdk-stage1/ppp/scripts/README b/mdk-stage1/ppp/scripts/README
deleted file mode 100644
index 00e032ca6..000000000
--- a/mdk-stage1/ppp/scripts/README
+++ /dev/null
@@ -1,143 +0,0 @@
-This directory contains a set of scripts which have been used on Linux
-as well as Solaris 2.x systems to initiate or maintain a connection
-with PPP. The files in this directory were contributed by Al Longyear
-(longyear@netcom.com) and Adi Masputra (adi.masputra@sun.com)
-
-------------------------------------------------------------------------
-
-1. README
-
-This file. You are reading it. It is just documentation.
-
-------------------------------------------------------------------------
-
-2. ppp-on
-
-This script will initiate a connection to the PPP system. It will run
-the chat program with the connection script as a parameter. This is a
-possible security hole. However, it is simple. It is meant to replace
-the previous version of ppp-on which was not very functional.
-
-The ppp-on script has entries for the account name, password, IP
-addresses, and telephone numbers. The parameters are passed to the
-pppd process and, then in turn, to the second part of the connect
-script, as a set of environment variables.
-
-Please make sure that you put the full path name to the ppp-on-dialer
-script in the reference to it in ppp-on.
-
-------------------------------------------------------------------------
-
-3. ppp-on-dialer
-
-This is the second part to the simple calling script, ppp-on. It
-executes the chat program to connect the user with a standard UNIX
-style getty/login connection sequence.
-
-------------------------------------------------------------------------
-
-4. callback
-
-This script may be used in lieu of the ppp-on-dialer to permit the
-common modem callback sequence. You may need to make changes to the
-expected prompt string for the modem.
-
-The script works by disabling the system's detection of the DCD
-condition and working on the modem status message "NO CARRIER" which
-is generated when the modem disconnects.
-
-It is crude. It does work for my modem connection. Use as you see fit.
-
-------------------------------------------------------------------------
-
-5. redialer
-
-The redialer script is a replacement for the ppp-on-dialer script. It
-will do 'attack dialing' or 'demon dialing' of one or more telephone
-numbers. The first number which responds will be used for a
-connection.
-
-There is a limit of ten attempts and a 15 second delay between dialing
-attempts. Both values are set in the script.
-
-------------------------------------------------------------------------
-
-6. ppp-off
-
-This is a script which will terminate the active ppp connection. Use
-as either "ppp-off" to terminate ppp0, or "ppp-off <device>" to
-terminate the connection on <device>. For example, "ppp-off ppp2" will
-terminate the ppp2 connection.
-
-------------------------------------------------------------------------
-
-7. secure-card
-
-This script was written by Jim Isaacson <jcisaac@crl.com>. It is a script
-for the 'expect' programming language used with Tcl. You need to have
-expect and Tcl installed before this script may be used.
-
-This script will operate with a device marketed under the name "SecureCARD".
-This little device is mated with its controller. On the credit card size
-device, there is a sequence number which changes on a random basis. In order
-for you to connect you need to enter a fixed portion of your account name
-and the number which is displayed on this card device. The number must match
-the value at the controller in order for the account name to be used.
-
-The problem is that chat uses fixed response strings. In addition, the
-timing for running the script may prevent the use of a script that reads the
-value before it starts the dial sequence. What was needed was a script which
-asked the user at the user's console at the time that it is needed.
-
-This led to the use of expect.
-
-------------------------------------------------------------------------
-
-8. ppp-on-rsh
-
-This script will initiate a PPP connection to a remote machine using rsh.
-This is implemented by creating a master/slave pseudo-tty with the slave
-pointing to rsh, specifically with the 'pty' and 'notty' options of pppd.
-It is assumed that the remote machine contains some sort of trust
-mechanisms (such as ~/.rhosts, et al) to allow the local machine to
-connect via rsh as root.
-
-------------------------------------------------------------------------
-
-9. ppp-on-ssh
-
-This script will initiate a PPP connection to a remote machine using the
-secure shell, or ssh. I've only tested this on ssh 1.x, so those of you
-who are running ssh 2.x mahy need to modify the ssh options slightly.
-This is implemented by creating a master/slave pseudo-ttyt with the slave
-pointing to ssh, specifically with the 'pty' and 'notty' options of pppd.
-It is assumed that the remote machine can accept the ssh connection from
-the local host, in the sense that all ssh authentication mechanisms have
-been properly configured, so that a remote root user can open a ssh
-connection.
-
-------------------------------------------------------------------------
-
-10. options-rsh-loc & options-rsh-rem
-
-These options files accompany the ppp-on-rsh script mentioned above. In
-theory, you'd want to copy the options-rsh-rem to the remote machine where
-in.rshd is running. The only extra option required on the remote machine
-options file is the 'notty' option. In addition, all ASCII control characters
-[0x00 to 0x1f], plus 0xff, are escaped. This may need to be modified
-depending on the rsh (or pseudo-tty) implementation which may differ across
-platforms, for further optimizations.
-
-------------------------------------------------------------------------
-
-11. options-ssh-loc & options-ssh-rem
-
-These options files accompany the ppp-on-ssh script mentioned above. I've
-only tested this on ssh 1.x, so those of you who are running ssh 2.x need
-to modify the ssh options slightly. In theory, you'd want to copy the
-options-ssh-rem to the remote machine where sshd daemon is running. The only
-extra options required on the remote machine options file is the 'notty'
-option. In addition, all ASCII control characters [0x00 to 0x1f], plus 0xff,
-are escaped. This may need to be modified depending on the ssh (or
-pseudo-tty) implementation which may differ across platforms, for further
-optimizations.
diff --git a/mdk-stage1/ppp/scripts/callback b/mdk-stage1/ppp/scripts/callback
deleted file mode 100755
index 3e74e10b2..000000000
--- a/mdk-stage1/ppp/scripts/callback
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/sh
-###################################################################
-#
-# Script to dial the remote system, negotiate the connection, and send
-# it the id. Then wait for the modem to disconnect. Reset the modem
-# to answer mode and wait for the system to call back.
-#
-# The telephone number and modempass are used when establishing the
-# connection to the modem.
-#
-PHONE=555-1212
-MODEMPASS=modem_identifier
-#
-# Once the modem calls back, the account name and password are used for
-# a UNIX style login operation.
-#
-ACCOUNT=my_account_name
-PASSWORD=my_password
-
-###################################################################
-#
-# Step 1. Dial the modem and negotiate the initial dialog.
-# note: the modem is configured to ignore loss of DCD at this point.
-# it is important that this be performed because the loss of DCD
-# will normally prevent system from working since 'modem' is used
-# for pppd.
-#
-# The script is terminated normally when the carrier is lost.
-#
-chat -v \
- TIMEOUT 3 \
- ABORT '\nBUSY\r' \
- ABORT '\nNO ANSWER\r' \
- ABORT '\nRINGING\r\n\r\nRINGING\r' \
- '' AT \
- 'OK-+++\c-OK' 'AT&C0&D2S0=0H0 \
- TIMEOUT 30 \
- OK ATDT$TELEPHONE \
- CONNECT '' \
- assword: $MODEMPASS \
- "\nNO CARRIER\r"
-
-if [ "$?" = "0" ]; then
-
-###################################################################
-#
-# Step 2. Wait for the call back from the remote. This will wait for at most
-# 30 seconds for the call back should the first attempt fail or
-# something happen with the callback logic at the remote.
-#
-# note: when the callback occurs, the DCD setting is re-enabled.
-#
-# If some voice call should happen during this period, the system will
-# answer the telephone and then hang up on them. I realize that this is
-# rude, but there is little that this script can do.
-#
- chat -v \
- TIMEOUT 30 \
- ABORT '\nVOICE\r' \
- '\nRING\r' 'AT&C1A' \
- CONNECT '' \
- TIMEOUT 10 \
- ogin:--ogin: $ACCOUNT \
- TIMEOUT 45 \
- assword: $PASSWORD
-
- if [ "$?" = "0" ]; then
- exit 0
- fi
-fi
-
-###################################################################
-#
-# The script has failed. Terminate the connection mode.
-#
-chat -v TIMEOUT 3 "" AT 'OK-+++\c-OK' 'AT&C1&D2S0=0H0' OK
-exit 1
diff --git a/mdk-stage1/ppp/scripts/chat-callback b/mdk-stage1/ppp/scripts/chat-callback
deleted file mode 100644
index d014d6af3..000000000
--- a/mdk-stage1/ppp/scripts/chat-callback
+++ /dev/null
@@ -1,98 +0,0 @@
-# =====================================================================================
-# Chat script to dial our Company PPP account.
-# They uses a call-back system to identify us and to reverse
-# charge the call cost.
-# =====================================================================================
-#
-ECHO OFF
-# All the usual abort strings
-ABORT "NO CARRIER"
-ABORT "VOICE"
-ABORT "BUSY"
-ABORT "NO DIALTONE"
-ABORT "NO ANSWER"
-#
-# If calling outside allowed time we get this:
-#
-ABORT "Access denied"
-#
-# Modem initialisation stuff
-#
-TIMEOUT 5
-SAY "Initialising modem ...\n"
-'' ATE1
-'OK\r\n' ATS0=1S11=60X4&K4S42.1=1
-#
-# Now dial our ISP and wait for connection
-#
-SAY "Dialling our ISP ...\n"
-'OK\r\n' ATDT09834657
-TIMEOUT 60
-CONNECT \c
-SAY "Connected ...\n"
-#
-# This is the first stage login, we identify ourself so that the remote
-# system will agree to call us back.
-#
-TIMEOUT 30
-SAY "Sending Callback login ID ...\n"
-name:-BREAK-name: callme
-#
-# From now on, we must assume no carrier is normal as well
-# as receiving a HANGUP signal because it will be the
-# case if our ISP clears the call to call us back.
-#
-CLR_ABORT "NO CARRIER"
-HANGUP OFF
-#
-ABORT "Invalid"
-#
-# Now send password and wait to see what happens
-#
-SAY "Sending Callback password ...\n"
-word:--word: xvsgsgs
-"You will be" \c
-#
-# What can happen now is:
-# either: we get "You will be called back..." which is the successful case
-# or: we get "Invalid login" and we abort (bad login ID or password)
-# or: we get "NO CARRIER" because of an error, this will not abort
-# and we will time out after 30 seconds
-# or: we get nothing and we will time out after 30 seconds
-#
-#
-# We reach here if we got "You will be called back..."
-#
-CLR_ABORT "Invalid"
-SAY "Now waiting for Call back ...\n"
-#
-# The remote system will now hangup and we will get both "NO CARRIER"
-# and a hangup signal which are ignored. We now wait for a connection
-# for up to 120 seconds. What happens here if somebody else calls before
-# the remote system is a bit dangerous:
-#
-# If a malicious user connects and says 'name:', he will see 'PPPuser'
-# If he then says 'word:' he will see the passowrd 'blipblop'. I may not
-# know to which systems these belong to, though. It is up to you to consider
-# that case and decide wether the risk is too big or not ....
-#
-TIMEOUT 120
-"CONNECT" \c
-#
-# We have been called, re-arm ABORT on NO CARRIER and normal hangup signal
-# behaviour
-#
-HANGUP ON
-ABORT "NO CARRIER"
-#
-# Second stage login in order to start PPP
-#
-SAY "Remote system called back, logging in ...\n"
-SAY "Sending login ID ...\n"
-name:-BREAK-name: PPPuser
-SAY "Sending password ...\n"
-word:--word: blipblop
-SAY "Asking to start PPP ...\n"
-'CnetSrv' "ppp default"
-"Entering PPP mode" \c
-SAY "ISP PPP started ...\n"
diff --git a/mdk-stage1/ppp/scripts/chatchat/README b/mdk-stage1/ppp/scripts/chatchat/README
deleted file mode 100644
index 88a4c6939..000000000
--- a/mdk-stage1/ppp/scripts/chatchat/README
+++ /dev/null
@@ -1,134 +0,0 @@
-v 0.1 gpk@onramp.net 3/27/99
-
-I Intro
-
- This document covers the use of the modified "chat" program and its
-adjunct "chatchat" to login using the Security Dynamics SecurID card
-on a linux system.
-
- This set of files comprises a modified version of the chat program
-(the one distributed with ppp-2.3.5) and a new program called chatchat
-that allows you to supply data from the keyboard to the chat program.
-
- The SecurID card generates passwords that have a lifetime of one
-minute and are used as a first layer in dial up security. The only
-software I know of for this card is for windows, so I wrote my own.
-This software allows you to type in the time-sensitive password right
-when your chat script is asked to supply the passcode by the remote
-system.
-
-
-II How It Works
-
- This version of chat his an additional command that can be put into
-its options that says "Don't reply with this string. Open this pipe,
-read the contents, and reply with that instead." Chatchat creates a
-pipe and lets you type your passcode into it, then chat picks that up
-and sends it out just as though the passcode was hardcoded into the
-options.
-
-
-III Installation
-
- I've provided intel binaries and source code the the modified chat
-program and the chatchat program. I'll recommend that you copy the
-chat.c program into your ppp-2.3.5/chat directory (save your original
-chat.c program first!) and re-make it using the Makefile that comes
-with chat. Copy the new chat somewhere into your path. (On my system
-chat lives in /usr/sbin/chat, so I've copied the modified one into
-/usr/sbin/chat.new and changed my dial in script to call chat.new
-instead of chat.
-
- Second, compile chatchat.c and install it somewhere in your path:
-
- gcc -g -o chatchat chatchat.c
- cp chatchat /usr/sbin
-
- Third, modify your chat script to use the chatchat program. Mine
-looks something like this:
-
-
- --------------------
-
-#!/bin/sh
-#
-# This is part 2 of the ppp-on script. It will perform the connection
-# protocol for the desired connection.
-# use atm0 to turn down the speaker volume on my sportster x2 voice modem
-# gpk 11/2/97
-
-exec /usr/sbin/chat.new -V -v \
- ABORT "BUSY" \
- ABORT "NO DIAL TONE" \
- ABORT "NO ANSWER" \
- TIMEOUT 50 \
- "" "atm0" \
- OK ATDT$TELEPHONE \
- CONNECT '' \
- name: \\da0xxxxxx \
- word: @/var/tmp/p \
- compress. ''
-
-
- -----------------------
-
- This is a standard chat script:
-
-* abort if the modem is busy, you don't get a dial tone, no one
- answers, or 50 seconds elapses.
-
-* use atm0 to mute the modem
-
-* dial the modem, when it connects, wait to be asked for account name
-
-* when we see "name:" prompt, delay briefly then respond with your
- account name (fill in your account name)
-
-Now we get to the new stuff:
-
-* when we see "word:" in the password prompt, instead of responding
- with "@/var/tmp/p", the modified chat program will open the pipe
- /var/tmp/p, read the passcode out of there, and send it
-
-* when we see "compress." (the last word before ppp starts), reply
- with nothing. The script ends and we start ppp.
-
-Note:
-
-* Make sure there is some whitespace between the filename and the \.
-
-
-IV Usage
-
- To use this install the modified chat and chatchat programs, and
-modify your chat script similar to the above. Before you dial in,
-start that chatchat program giving it the same pipe as in your config
-file. In the above case:
-
-chatchat /var/tmp/p
-
- Wait until you have one or two tick marks left on your card's
-current number, then start your dial up process that eventually calls
-chat. When chat goes to open and read the pipe, chatchat will prompt:
-
-
-type PIN into SecurID card and
- enter resulting passcode:
-
- At that point, type your PIN number into your Securid card, press
-the diamond, and type the resulting numbers in as your passcode. If
-you've left the -V -v options on your chat command you'll see
-everything so out, otherwise it works silently.
-
- If you type the number wrong or run out of time, the server will
-respond with an authentication failure. In that case you will have to
-hang up and start again. I don't know how to build a conditional script
-that says either expect "compress" next, but if you see "name:" again,
-do this instead.
-
-
-V Additional Information
-
- You can obtain additional information about chat and ppp from the
-man pages for chat and pppd, as well as the PPP-HOWTO.
-
diff --git a/mdk-stage1/ppp/scripts/chatchat/chatchat.c b/mdk-stage1/ppp/scripts/chatchat/chatchat.c
deleted file mode 100644
index 4534fb9e3..000000000
--- a/mdk-stage1/ppp/scripts/chatchat/chatchat.c
+++ /dev/null
@@ -1,409 +0,0 @@
-/* *************************************************************************
-* NAME: chatchat.c
-*
-* DESCRIPTION:
-*
-* This program creates a pipe for the chat process to read. The user
-* can supply information (like a password) that will be picked up
-* by chat and sent just like the regular contents of a chat script.
-*
-* Usage is:
-*
-* chatchat <filename>
-*
-* where <filename> matches the option given in the chat script.
-*
-* for instance the chat script fragment:
-*
-* ...
-* name: \\dmyname \
-* word: @/var/tmp/p \
-* ...
-* ^
-* (note: leave some whitespace after the filename)
-*
-* expect "name:", reply with a delay followed by "myname"
-* expect "word:", reply with the data read from the pipe /var/tmp/p
-*
-* the matching usage of chatchat would be:
-*
-* chatchat /var/tmp/p
-*
-* eg:
-*
-* $chatchat /var/tmp/p
-* ...
-* some other process eventually starts:
-* chat ...
-* chat parses the "@/var/tmp/p" option and opens
-* /var/tmp/p
-* (chatchat prompts:)
-*
-* type PIN into SecurID card
-* enter resulting passcode: [user inputs something]
-*
-* chat reads /var/tmp/p & gets what the
-* user typed at chatchat's "enter string" prompt
-* chat removes the pipe file
-* chat sends the user's input as a response in
-* place of "@/var/tmp/p"
-*
-* PROCESS:
-*
-* gcc -g -o chatchat chatchat.c
-*
-*
-* GLOBALS: none
-*
-* REFERENCES:
-*
-* see the man pages and documentation that come with the 'chat' program
-* (part of the ppp package). you will need to use the modified chat
-* program that accepts the '@' operator.
-*
-* LIMITATIONS:
-*
-* REVISION HISTORY:
-*
-* STR Description Author
-*
-* 23-Mar-99 initial coding gpk
-* 12-May-99 unlink the pipe after closing paulus
-*
-* TARGET: ANSI C
-* This program is in the public domain.
-*
-*
-* ************************************************************************* */
-
-
-
-
-#include <sys/time.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <string.h>
-
-/* MAXINPUT - the data typed into chatchat must be fewer */
-/* characters than this. */
-
-#define MAXINPUT 80
-
-
-
-
-
-
-/* *************************************************************************
-
-
- NAME: main
-
-
- USAGE:
-
- int argc;
- char * argv[];
-
- main(argc, argv[]);
-
- returns: int
-
- DESCRIPTION:
- if the pipe file name is given on the command line,
- create the pipe, prompt the user and put whatever
- is typed into the pipe.
-
- returns -1 on error
- else # characters entered
- REFERENCES:
-
- LIMITATIONS:
-
- GLOBAL VARIABLES:
-
- accessed: none
-
- modified: none
-
- FUNCTIONS CALLED:
-
- REVISION HISTORY:
-
- STR Description of Revision Author
-
- 25-Mar-99 initial coding gpk
-
- ************************************************************************* */
-
-int main(int argc, char * argv[])
-{
- int retval;
-
- int create_and_write_pipe(char * pipename);
-
- if (argc != 2)
- {
- fprintf(stderr, "usage: %s pipename\n", argv[0]);
- retval = -1;
- }
- else
- {
- retval = create_and_write_pipe(argv[1]);
- }
- return (retval);
-}
-
-
-
-
-/* *************************************************************************
-
-
- NAME: create_and_write_pipe
-
-
- USAGE:
-
- int some_int;
- char * pipename;
-
- some_int = create_and_write_pipe(pipename);
-
- returns: int
-
- DESCRIPTION:
- given the pipename, create the pipe, open it,
- prompt the user for a string to put into the
- pipe, write the string, and close the pipe
-
- on error, print out an error message and return -1
-
- returns -1 on error
- else #bytes written into the pipe
- REFERENCES:
-
- LIMITATIONS:
-
- GLOBAL VARIABLES:
-
- accessed: none
-
- modified: none
-
- FUNCTIONS CALLED:
-
- REVISION HISTORY:
-
- STR Description of Revision Author
-
- 25-Mar-99 initial coding gpk
- 12-May-99 remove pipe after closing paulus
-
- ************************************************************************* */
-
-int create_and_write_pipe(char * pipename)
-{
- int retval, created, pipefd, nread, nwritten;
- char input[MAXINPUT];
- char errstring[180];
-
- int create_pipe(char * pipename);
- int write_to_pipe(int pipefd, char * input, int nchar);
-
- created = create_pipe(pipename);
-
- if (-1 == created)
- {
- sprintf(errstring, "unable to create pipe '%s'", pipename);
- perror(errstring);
- retval = -1;
- }
- else
- {
-
- /* note: this open won't succeed until chat has the pipe */
- /* open and ready to read. this makes for nice timing. */
-
- pipefd = open(pipename, O_WRONLY);
-
- if (-1 == pipefd)
- {
- sprintf(errstring, "unable to open pipe '%s'", pipename);
- perror(errstring);
- retval = -1;
- }
- else
- {
- fprintf(stderr, "%s \n %s",
- "type PIN into SecurID card and",
- "enter resulting passcode:");
- nread = read(STDIN_FILENO, (void *)input, MAXINPUT);
-
-
- if (0 >= nread)
- {
- perror("unable to read from stdin");
- retval = -1;
- }
- else
- {
- /* munch off the newline character, chat supplies */
- /* a return when it sends the string out. */
- input[nread -1] = 0;
- nread--;
- nwritten = write_to_pipe(pipefd, input, nread);
- /* printf("wrote [%d]: '%s'\n", nwritten, input); */
- retval = nwritten;
- }
- close(pipefd);
-
- /* Now make the pipe go away. It won't actually go away
- completely until chat closes it. */
- if (unlink(pipename) < 0)
- perror("Warning: couldn't remove pipe");
- }
- }
- return(retval);
-}
-
-
-
-
-
-
-
-/* *************************************************************************
-
-
- NAME: create_pipe
-
-
- USAGE:
-
- int some_int;
- char * pipename;
-
- some_int = create_pipe(pipename);
-
- returns: int
-
- DESCRIPTION:
- create a pipe of the given name
-
- if there is an error (like the pipe already exists)
- print an error message and return
-
- return -1 on failure else success
-
- REFERENCES:
-
- LIMITATIONS:
-
- GLOBAL VARIABLES:
-
- accessed: none
-
- modified: none
-
- FUNCTIONS CALLED:
-
- REVISION HISTORY:
-
- STR Description of Revision Author
-
- 25-Mar-99 initial coding gpk
-
- ************************************************************************* */
-
-int create_pipe(char * pipename)
-{
- mode_t old_umask;
- int created;
-
- /* hijack the umask temporarily to get the mode I want */
- /* on the pipe. */
-
- old_umask = umask(000);
-
- created = mknod(pipename, S_IFIFO | S_IRWXU | S_IWGRP | S_IWOTH,
- (dev_t)NULL);
-
- /* now restore umask. */
-
- (void)umask(old_umask);
-
- if (-1 == created)
- {
- perror("unable to create pipe");
- }
-
- return(created);
-}
-
-
-
-
-
-
-/* *************************************************************************
-
-
- NAME: write_to_pipe
-
-
- USAGE:
-
- int some_int;
- int pipefd;
- char * input;
- int nchar;
-
- some_int = write_to_pipe(pipefd, input, nchar);
-
- returns: int
-
- DESCRIPTION:
- write nchars of data from input to pipefd
-
- on error print a message to stderr
-
- return -1 on error, else # bytes written
- REFERENCES:
-
- LIMITATIONS:
-
- GLOBAL VARIABLES:
-
- accessed: none
-
- modified: none
-
- FUNCTIONS CALLED:
-
- REVISION HISTORY:
-
- STR Description of Revision Author
-
- 25-Mar-99 initial coding gpk
- 12-May-99 don't write count word first paulus
-
- ************************************************************************* */
-
-int write_to_pipe(int pipefd, char * input, int nchar)
-{
- int nwritten;
-
- /* nwritten = write(pipefd, (void *)&nchar, sizeof(nchar)); */
- nwritten = write(pipefd, (void *)input, nchar);
-
- if (-1 == nwritten)
- {
- perror("unable to write to pipe");
- }
-
- return(nwritten);
-}
diff --git a/mdk-stage1/ppp/scripts/ip-down.local.add b/mdk-stage1/ppp/scripts/ip-down.local.add
deleted file mode 100644
index b93590e49..000000000
--- a/mdk-stage1/ppp/scripts/ip-down.local.add
+++ /dev/null
@@ -1,20 +0,0 @@
-
-#
-# This sample code shows you one way to modify your setup to allow automatic
-# configuration of your resolv.conf for peer supplied DNS addresses when using
-# the `usepeerdns' option.
-#
-# In my case I just added this to my /etc/ppp/ip-down.local script. You may need to
-# create an executable script if one does not exist.
-#
-# Nick Walker (nickwalker@email.com)
-#
-
-if [ -n "$USEPEERDNS" -a -f /etc/ppp/resolv.conf ]; then
- if [ -f /etc/ppp/resolv.prev ]; then
- cp -f /etc/ppp/resolv.prev /etc/resolv.conf
- else
- rm -f /etc/resolv.conf
- fi
-fi
-
diff --git a/mdk-stage1/ppp/scripts/ip-up.local.add b/mdk-stage1/ppp/scripts/ip-up.local.add
deleted file mode 100644
index 80172093a..000000000
--- a/mdk-stage1/ppp/scripts/ip-up.local.add
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#
-# This sample code shows you one way to modify your setup to allow automatic
-# configuration of your resolv.conf for peer supplied DNS addresses when using
-# the `usepeerdns' option.
-#
-# In my case I just added this to my /etc/ppp/ip-up.local script. You may need to
-# create an executable script if one does not exist.
-#
-# Nick Walker (nickwalker@email.com)
-#
-
-if [ -n "$USEPEERDNS" -a -f /etc/ppp/resolv.conf ]; then
- rm -f /etc/ppp/resolv.prev
- if [ -f /etc/resolv.conf ]; then
- cp /etc/resolv.conf /etc/ppp/resolv.prev
- grep domain /etc/ppp/resolv.prev > /etc/resolv.conf
- grep search /etc/ppp/resolv.prev >> /etc/resolv.conf
- cat /etc/ppp/resolv.conf >> /etc/resolv.conf
- else
- cp /etc/ppp/resolv.conf /etc
- fi
-fi
-
diff --git a/mdk-stage1/ppp/scripts/options-rsh-loc b/mdk-stage1/ppp/scripts/options-rsh-loc
deleted file mode 100644
index b015b87fe..000000000
--- a/mdk-stage1/ppp/scripts/options-rsh-loc
+++ /dev/null
@@ -1 +0,0 @@
-debug asyncmap FFFFFFFF escape FF kdebug 0 noipdefault nodefaultroute noauth mtu 1460
diff --git a/mdk-stage1/ppp/scripts/options-rsh-rem b/mdk-stage1/ppp/scripts/options-rsh-rem
deleted file mode 100644
index 4b10bb9e9..000000000
--- a/mdk-stage1/ppp/scripts/options-rsh-rem
+++ /dev/null
@@ -1 +0,0 @@
-notty debug asyncmap FFFFFFFF escape FF kdebug 0 noipdefault nodefaultroute noauth mtu 1460
diff --git a/mdk-stage1/ppp/scripts/options-ssh-loc b/mdk-stage1/ppp/scripts/options-ssh-loc
deleted file mode 100644
index add03d659..000000000
--- a/mdk-stage1/ppp/scripts/options-ssh-loc
+++ /dev/null
@@ -1 +0,0 @@
-debug asyncmap FFFFFFFF escape FF kdebug 0 noipdefault nodefaultroute noauth mtu 1400
diff --git a/mdk-stage1/ppp/scripts/options-ssh-rem b/mdk-stage1/ppp/scripts/options-ssh-rem
deleted file mode 100644
index d690722c6..000000000
--- a/mdk-stage1/ppp/scripts/options-ssh-rem
+++ /dev/null
@@ -1 +0,0 @@
-notty debug asyncmap FFFFFFFF escape FF kdebug 0 noipdefault nodefaultroute noauth mtu 1400
diff --git a/mdk-stage1/ppp/scripts/ppp-off b/mdk-stage1/ppp/scripts/ppp-off
deleted file mode 100755
index a22b5ea3d..000000000
--- a/mdk-stage1/ppp/scripts/ppp-off
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/sh
-######################################################################
-#
-# Determine the device to be terminated.
-#
-if [ "$1" = "" ]; then
- DEVICE=ppp0
-else
- DEVICE=$1
-fi
-
-######################################################################
-#
-# If the ppp0 pid file is present then the program is running. Stop it.
-if [ -r /var/run/$DEVICE.pid ]; then
- kill -INT `cat /var/run/$DEVICE.pid`
-#
-# If the kill did not work then there is no process running for this
-# pid. It may also mean that the lock file will be left. You may wish
-# to delete the lock file at the same time.
- if [ ! "$?" = "0" ]; then
- rm -f /var/run/$DEVICE.pid
- echo "ERROR: Removed stale pid file"
- exit 1
- fi
-#
-# Success. Let pppd clean up its own junk.
- echo "PPP link to $DEVICE terminated."
- exit 0
-fi
-#
-# The ppp process is not running for ppp0
-echo "ERROR: PPP link is not active on $DEVICE"
-exit 1
diff --git a/mdk-stage1/ppp/scripts/ppp-on b/mdk-stage1/ppp/scripts/ppp-on
deleted file mode 100755
index ab79db471..000000000
--- a/mdk-stage1/ppp/scripts/ppp-on
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-#
-# Script to initiate a ppp connection. This is the first part of the
-# pair of scripts. This is not a secure pair of scripts as the codes
-# are visible with the 'ps' command. However, it is simple.
-#
-# These are the parameters. Change as needed.
-TELEPHONE=555-1212 # The telephone number for the connection
-ACCOUNT=george # The account name for logon (as in 'George Burns')
-PASSWORD=gracie # The password for this account (and 'Gracie Allen')
-LOCAL_IP=0.0.0.0 # Local IP address if known. Dynamic = 0.0.0.0
-REMOTE_IP=0.0.0.0 # Remote IP address if desired. Normally 0.0.0.0
-NETMASK=255.255.255.0 # The proper netmask if needed
-#
-# Export them so that they will be available at 'ppp-on-dialer' time.
-export TELEPHONE ACCOUNT PASSWORD
-#
-# This is the location of the script which dials the phone and logs
-# in. Please use the absolute file name as the $PATH variable is not
-# used on the connect option. (To do so on a 'root' account would be
-# a security hole so don't ask.)
-#
-DIALER_SCRIPT=/etc/ppp/ppp-on-dialer
-#
-# Initiate the connection
-#
-# I put most of the common options on this command. Please, don't
-# forget the 'lock' option or some programs such as mgetty will not
-# work. The asyncmap and escape will permit the PPP link to work with
-# a telnet or rlogin connection. You are welcome to make any changes
-# as desired. Don't use the 'defaultroute' option if you currently
-# have a default route to an ethernet gateway.
-#
-exec /usr/sbin/pppd debug lock modem crtscts /dev/ttyS0 38400 \
- asyncmap 20A0000 escape FF kdebug 0 $LOCAL_IP:$REMOTE_IP \
- noipdefault netmask $NETMASK defaultroute connect $DIALER_SCRIPT
diff --git a/mdk-stage1/ppp/scripts/ppp-on-dialer b/mdk-stage1/ppp/scripts/ppp-on-dialer
deleted file mode 100755
index 7d66765f1..000000000
--- a/mdk-stage1/ppp/scripts/ppp-on-dialer
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-#
-# This is part 2 of the ppp-on script. It will perform the connection
-# protocol for the desired connection.
-#
-exec chat -v \
- TIMEOUT 3 \
- ABORT '\nBUSY\r' \
- ABORT '\nNO ANSWER\r' \
- ABORT '\nRINGING\r\n\r\nRINGING\r' \
- '' \rAT \
- 'OK-+++\c-OK' ATH0 \
- TIMEOUT 30 \
- OK ATDT$TELEPHONE \
- CONNECT '' \
- ogin:--ogin: $ACCOUNT \
- assword: $PASSWORD
diff --git a/mdk-stage1/ppp/scripts/ppp-on-rsh b/mdk-stage1/ppp/scripts/ppp-on-rsh
deleted file mode 100755
index 30a50dba6..000000000
--- a/mdk-stage1/ppp/scripts/ppp-on-rsh
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/bin/sh
-#
-# A sample script to establish PPP session(s) via rsh
-#
-# Adi Masputra <adi.masputra@sun.com>
-# Jan 24, 2000
-#
-
-#
-# You'd definitely want to change the following addresses to suit
-# your network configuration
-#
-LOC_IP=10.0.0.1
-REM_IP=10.0.0.2
-NETMASK=255.255.0.0
-
-export LOC_IP REM_IP
-
-#
-# This is the remote peer where in.rshd is running, either
-# its hostname or IP address
-#
-PPPD_RHOST=myremotehost
-
-#
-# For this example, we assume that pppd on both local and remote
-# machines reside in the same place, /usr/local/bin/pppd
-#
-PPPD_LOC=/usr/local/bin/pppd
-
-#
-# The location of local options file (where rsh client is running).
-# Note that the sample options file included in the distribution
-# may need further customizations, depending on your needs. The 'noauth'
-# option specified in the file is there to simplify the example. In
-# reality, you'd probably want to remove such option.
-#
-PPPD_LOC_OPT=/etc/ppp/options-rsh-loc
-
-#
-# The location of remote options file (where in.rshd daemon is running).
-# Note that the sample options file included in the distribution
-# may need further customizations, depending on your needs. The 'noauth'
-# option specified in the file is there to simplify the example. In
-# reality, you'd probably want to remove such option. Also note that
-# the remote options file need to include the 'notty' option for this
-# to work
-#
-PPPD_REM_OPT=/etc/ppp/options-rsh-rem
-
-#
-# The location of rsh client on the local machine
-#
-RSH_LOC=/bin/rsh
-
-export PPPD_LOC PPPD_LOC_OPT PPPD_REM_OPT PPPD_RHOST RSH_LOC
-
-#
-# Uncomment the following to enable IPv6, note that the IPv6 support
-# needs to be enabled during compilation
-#
-# PPPD_IPV6='+ipv6 ipv6cp-use-ipaddr'
-export PPPD_IPV6
-
-#
-# And execute pppd with the pty option, specifying rsh client as the
-# slave side of the pseduo-tty master/slave pair.
-#
-exec $PPPD_LOC \
- pty '$RSH_LOC $PPPD_RHOST $PPPD_LOC $REM_IP:$LOC_IP $PPPD_IPV6 file $PPPD_REM_OPT' \
- $LOC_IP:$REM_IP netmask $NETMASK $PPPD_IPV6 file $PPPD_LOC_OPT
-
diff --git a/mdk-stage1/ppp/scripts/ppp-on-ssh b/mdk-stage1/ppp/scripts/ppp-on-ssh
deleted file mode 100755
index 0e41acac6..000000000
--- a/mdk-stage1/ppp/scripts/ppp-on-ssh
+++ /dev/null
@@ -1,76 +0,0 @@
-#!/bin/sh
-#
-# A sample script to establish PPP session(s) via SSH 1.x
-#
-# Adi Masputra <adi.masputra@sun.com>
-# Jan 24, 2000
-#
-
-#
-# You'd definitely want to change the following addresses to suit
-# your network configuration
-#
-LOC_IP=10.0.0.1
-REM_IP=10.0.0.2
-NETMASK=255.255.0.0
-
-export LOC_IP REM_IP
-
-#
-# This is the remote peer where sshd is running, either
-# its hostname or IP address
-#
-PPPD_RHOST=myremotehost
-
-#
-# For this example, we assume that pppd on both local and remote
-# machines reside in the same place, /usr/local/bin/pppd
-#
-PPPD_LOC=/usr/local/bin/pppd
-
-#
-# The location of local options file (where ssh client is running).
-# Note that the sample options file included in the distribution
-# may need further customizations, depending on your needs. The 'noauth'
-# option specified in the file is there to simplify the example, although
-# some may choose to have it there and rely on ssh authentication
-# instead.
-#
-PPPD_LOC_OPT=/etc/ppp/options-ssh-loc
-
-#
-# The location of remote options file (where sshd daemon is running)
-# Note that the sample options file included in the distribution
-# may need further customizations, depending on your needs. The 'noauth'
-# option specified in the file is there to simplify the example, although
-# some may choose to have it there and rely on ssh authentication
-# instead. Also note that the remote options file need to include the 'notty'
-# options for this to work.
-#
-PPPD_REM_OPT=/etc/ppp/options-ssh-rem
-
-#
-# The location of ssh client on the local machine
-#
-SSH_LOC=/usr/local/bin/ssh
-
-export PPPD_LOC PPPD_LOC_OPT PPPD_REM_OPT PPPD_RHOST SSH_LOC
-
-#
-# Uncomment the following to enable IPv6, note that the IPv6 support
-# needs to be enabled during compilation
-#
-# PPPD_IPV6='+ipv6 ipv6cp-use-ipaddr'
-export PPPD_IPV6
-
-#
-# And execute pppd with the pty option, specifying ssh client as the
-# slave side of the pseudo-tty master/slave pair. Note that on this example,
-# ssh has been compiled to allow NULL encryption (thus the '-c none' option),
-# but in reality, you'd probably want to specify the encryption algorithm.
-# See the man page of ssh(1) for details.
-#
-exec $PPPD_LOC \
- pty '$SSH_LOC -c none $PPPD_RHOST $PPPD_LOC $REM_IP:$LOC_IP $PPPD_IPV6 file $PPPD_REM_OPT' \
- $LOC_IP:$REM_IP netmask $NETMASK $PPPD_IPV6 file $PPPD_LOC_OPT
-
diff --git a/mdk-stage1/ppp/scripts/redialer b/mdk-stage1/ppp/scripts/redialer
deleted file mode 100755
index 5bbde4e9d..000000000
--- a/mdk-stage1/ppp/scripts/redialer
+++ /dev/null
@@ -1,96 +0,0 @@
-#!/bin/sh
-###################################################################
-#
-# These parameters control the attack dialing sequence.
-#
-# Maximum number of attempts to reach the telephone number(s)
-MAX_ATTEMPTS=10
-
-# Delay between each of the attempts. This is a parameter to sleep
-# so use "15s" for 15 seconds, "1m" for 1 minute, etc.
-SLEEP_DELAY=15s
-
-###################################################################
-#
-# This is a list of telephone numbers. Add new numbers if you wish
-# and see the function 'callall' below for the dial process.
-PHONE1=555-1212
-PHONE2=411
-
-###################################################################
-#
-# If you use the ppp-on script, then these are passed to this routine
-# automatically. There is no need to define them here. If not, then
-# you will need to set the values.
-#
-ACCOUNT=my_account_name
-PASSWORD=my_password
-
-###################################################################
-#
-# Function to initialize the modem and ensure that it is in command
-# state. This may not be needed, but it doesn't hurt.
-#
-function initialize
-{
- chat -v TIMEOUT 3 '' AT 'OK-+++\c-OK'
- return
-}
-
-###################################################################
-#
-# Script to dial a telephone
-#
-function callnumber
-{
-chat -v \
- ABORT '\nBUSY\r' \
- ABORT '\nNO ANSWER\r' \
- ABORT '\nRINGING\r\n\r\nRINGING\r' \
- '' ATDT$1 \
- CONNECT '' \
- ogin:--ogin: $ACCOUNT \
- assword: $PASSWORD
-#
-# If the connection was successful then end the whole script with a
-# success.
-#
- if [ "$?" = "0" ]; then
- exit 0
- fi
-
- return
-}
-
-###################################################################
-#
-# Script to dial any telephone number
-#
-function callall
-{
-# echo "dialing attempt number: $1" >/dev/console
- callnumber $PHONE1
-# callnumber $PHONE2
-}
-
-###################################################################
-#
-# Initialize the modem to ensure that it is in the command state
-#
-initialize
-if [ ! "$?" = "0" ]; then
- exit 1
-fi
-
-#
-# Dial telephone numbers until one answers
-#
-attempt=0
-while : ; do
- attempt=`expr $attempt + 1`
- callall $attempt
- if [ "$attempt" = "$MAX_ATTEMPTS" ]; then
- exit 1
- fi
- sleep "$SLEEP_DELAY"
-done
diff --git a/mdk-stage1/ppp/scripts/secure-card b/mdk-stage1/ppp/scripts/secure-card
deleted file mode 100644
index a32138b7d..000000000
--- a/mdk-stage1/ppp/scripts/secure-card
+++ /dev/null
@@ -1,111 +0,0 @@
-#!/usr/local/bin/expect -f
-#
-# This script was written by Jim Isaacson <jcisaac@crl.com>. It is
-# designed to work as a script to use the SecureCARD(tm) device. This
-# little device is mated with a central controller. The number displayed
-# on this card changes every so often and you need to enter the number
-# along with your user account name in order to gain access. Since chat
-# is based upon fixed strings this procedure will not work with chat.
-#
-# It is included by permission. An excellent reference for the expect
-# program used by this script is in the book:
-#
-# "Exploring Expect"
-# by Don Libes
-# Published by O'Rielly and Associates
-#
-
-send_user "hello, starting ppp\n"
-
-system "stty 19200 -echoe -echo raw < /dev/cua3 > /dev/cua3"
-
-#
-# These are the parameters for the program.
-#
-set user Pxxxxxx
-set password xxxxxxx
-set modem /dev/cua3
-set dialup <put phone number here>
-set timeout 60
-
-spawn -noecho -open [open $modem "r+"]
-
-send "AT&F\r"
-expect "OK"
-
-send "ATe0v1x4&c1q0&d2&c1s2=128s0=0DT $dialup\r"
-set timeout 15
-set counter 0
-
-set still_connecting 1
-
-expect {
- -re ".*CONNECT.*\n" {
- set timeout 5
- set still_connecting 0
- continue -expect
- }
- -re ".*CONNECT.*\r" {
- set timeout 5
- set still_connecting 0
- continue -expect
- }
- -re ".*NO.*CARRIER" {
- send_user "Failed to Connect, exiting...\n"
- exit
- }
- -re ".*NO.*DIAL.*TONE" {
- send_user "Failed to Connect, exiting...\n"
- exit
- }
- -re ".*VOICE" {
- send_user "Failed to Connect, exiting...\n"
- exit
- }
- -re ".*sscode:.*\n" {
- continue -expect
- }
- -re ".*sscode:" {
- set timeout -1
- expect_user -re "(.*)\n"
- send "$expect_out(1,string)\r"
- set timeout 30
- continue -expect
- }
- -re ".*Next.*:" {
- set timeout -1
- expect_user -re "(.*)\n"
- send "$expect_out(1,string)\r"
- set timeout 30
- continue -expect
- }
- -re "Your.*" {
- send "\r"
- continue -expect
- }
- -re ".*in:" {
- send "$user\r"
- continue -expect
- }
- -re ".*word:" {
- send "$password\r"
- }
-
- timeout {
- if { $still_connecting > 0 } {
- continue -expect
- }
- set timeout 15
- send "\r"
- incr counter
- if { $counter > 8 } {
- send_user "Cannot Connect\n"
- exit
- } else {
- continue -expect
- }
- }
-}
-
-overlay -0 $spawn_id -1 $spawn_id pppd /dev/cua3 19200 192.111.187.215: \
- crtscts modem defaultroute debug
diff --git a/mdk-stage1/ppp/solaris/Makedefs b/mdk-stage1/ppp/solaris/Makedefs
deleted file mode 100644
index 81db8ab2e..000000000
--- a/mdk-stage1/ppp/solaris/Makedefs
+++ /dev/null
@@ -1,16 +0,0 @@
-#
-# defines common to several Makefiles
-#
-
-INSTALL= /usr/sbin/install
-
-BINDIR = /usr/local/bin
-MANDIR = /usr/local/man
-ETCDIR = /etc/ppp
-
-COPTS = -O -Xa
-
-# For compiling with gcc, comment out the COPTS definition above and
-# uncomment the next 2 definitions.
-#CC = gcc
-#COPTS = -O2
diff --git a/mdk-stage1/ppp/solaris/Makedefs.sol2 b/mdk-stage1/ppp/solaris/Makedefs.sol2
deleted file mode 100644
index 1282c6e74..000000000
--- a/mdk-stage1/ppp/solaris/Makedefs.sol2
+++ /dev/null
@@ -1,59 +0,0 @@
-#
-# Generic make definitions for Solaris 2
-#
-# $Id$
-#
-
-include ../solaris/Makedefs
-
-CPPFLAGS = -D_KERNEL -DSVR4 -DSOL2 -DPRIOQ -DDEBUG -I../include
-CFLAGS = $(CPPFLAGS) $(COPTS)
-
-# lint-specific variables
-LINT = lint
-LINT_OPT_32 =
-LINT_OPT_64 = -Xarch=v9 -errchk=longptr64
-
-LINT_32 =
-LINT_32 += -erroff=E_BAD_PTR_CAST_ALIGN
-LINT_32 += -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED
-LINT_32 += -erroff=E_SUSPICIOUS_COMPARISON
-LINT_32 += -erroff=E_CAST_UINT_TO_SIGNED_INT
-LINT_32 += -erroff=E_PASS_UINT_TO_SIGNED_INT
-LINT_32 += -erroff=E_INVALID_ANNOTATION_NAME
-LINT_32 += -erroff=E_FUNC_ARG_UNUSED
-# This might be needed, but zlib.c and vjcompress.c will squawk
-# when not ignored
-LINT_32 += -erroff=E_CASE_FALLTHRU
-LINT_32 += -erroff=E_RET_INT_IMPLICITLY
-LINT_32 += -erroff=E_FUNC_NO_RET_VAL
-# Some STREAMS macros will be noisy too when this isn't ignored
-LINT_32 += -erroff=E_CONSTANT_CONDITION
-LINT_32 += -erroff=E_CONST_EXPR
-
-# Extra noise suppressant for 64-bit
-EXTRA_OFF =
-EXTRA_OFF += -erroff=E_CAST_INT_TO_SMALL_INT
-EXTRA_OFF += -erroff=E_CAST_INT_CONST_TO_SMALL_INT
-EXTRA_OFF += -erroff=E_CAST_TO_PTR_FROM_INT
-EXTRA_OFF += -erroff=E_ASSIGN_INT_TO_SMALL_INT
-EXTRA_OFF += -erroff=E_ASSIGN_INT_FROM_BIG_CONST
-EXTRA_OFF += -erroff=E_CONST_PROMOTED_UNSIGNED_LL
-EXTRA_OFF += -erroff=E_CONST_PROMOTED_LONG_LONG
-EXTRA_OFF += -erroff=E_CONST_TRUNCATED_BY_ASSIGN
-EXTRA_OFF += -erroff=E_PASS_INT_FROM_BIG_CONST
-EXTRA_OFF += -erroff=E_COMP_INT_WITH_LARGE_INT
-EXTRA_OFF += -erroff=E_ASSIGN_UINT_TO_SIGNED_INT
-EXTRA_OFF += -erroff=E_ASSIGN_NARROW_CONV
-EXTRA_OFF += -erroff=E_PASS_INT_TO_SMALL_INT
-EXTRA_OFF += -erroff=E_PTR_CONV_LOSES_BITS
-
-LINT_64 = $(LINT_32)
-LINT_64 += $(EXTRA_OFF)
-
-LINTFLAGS64 = -Xa -nsxmuF -errtags=yes $(LINT_OPT_64) $(LINT_64)
-LINT64 = $(LINT) -c $(LINTFLAGS64) $(CPPFLAGS)
-
-LINTFLAGS32 = -Xa -nsxmuF -errtags=yes $(LINT_OPT_32) $(LINT_32)
-LINT32 = $(LINT) -c $(LINTFLAGS32) $(CPPFLAGS)
-
diff --git a/mdk-stage1/ppp/solaris/Makefile.sol2 b/mdk-stage1/ppp/solaris/Makefile.sol2
deleted file mode 100644
index 78628847b..000000000
--- a/mdk-stage1/ppp/solaris/Makefile.sol2
+++ /dev/null
@@ -1,66 +0,0 @@
-#
-# Makefile for STREAMS modules for Solaris 2.
-#
-# $Id$
-#
-
-include Makedefs.sol2
-
-COPTS += -xO2 -xspace -W0,-Lt
-
-COMP_OBJS = ppp_comp.o bsd-comp.o deflate.o zlib.o vjcompress.o \
- ppp_comp_mod.o
-
-all: ppp ppp_ahdl ppp_comp
-
-ppp: ppp.o ppp_mod.o
- ld -r -o $@ ppp.o ppp_mod.o
- chmod +x $@
-
-ppp_ahdl: ppp_ahdlc.o ppp_ahdlc_mod.o
- ld -r -o $@ ppp_ahdlc.o ppp_ahdlc_mod.o
- chmod +x $@
-
-ppp_comp: $(COMP_OBJS)
- ld -r -o $@ $(COMP_OBJS)
- chmod +x $@
-
-bsd-comp.o: ../modules/bsd-comp.c
- $(CC) $(CFLAGS) -c $?
-deflate.o: ../modules/deflate.c
- $(CC) $(CFLAGS) -c $?
-ppp.o: ppp.c
- $(CC) $(CFLAGS) -c $?
-ppp_mod.o: ppp_mod.c
- $(CC) $(CFLAGS) -c $?
-ppp_ahdlc_mod.o: ppp_ahdlc_mod.c
- $(CC) $(CFLAGS) -c $?
-ppp_ahdlc.o: ppp_ahdlc.c
- $(CC) $(CFLAGS) -c $?
-ppp_comp.o: ppp_comp.c
- $(CC) $(CFLAGS) -c $?
-ppp_comp_mod.o: ppp_comp_mod.c
- $(CC) $(CFLAGS) -c $?
-vjcompress.o: ../modules/vjcompress.c
- $(CC) $(CFLAGS) -c $?
-zlib.o: ../common/zlib.c
- $(CC) $(CFLAGS) -c $?
-
-install:
- cp ppp ppp.conf /kernel/drv
- cp ppp_comp ppp_ahdl /kernel/strmod
- if grep clone:ppp /etc/minor_perm; then :; else \
- echo clone:ppp 0644 root sys >>/etc/minor_perm; fi
- /usr/sbin/rem_drv ppp 2>/dev/null || true
- /usr/sbin/add_drv ppp
-
-SRCS = ppp.c ppp_mod.c ppp_ahdlc.c ppp_ahdlc_mod.c \
- ppp_comp.c ../modules/bsd-comp.c ../modules/deflate.c \
- ../common/zlib.c ../modules/vjcompress.c ppp_comp_mod.c
-
-lint:
- $(LINT32) $(SRCS)
-
-clean:
- rm -f ppp ppp_comp ppp_ahdl *.o *~ core
- rm -f *.ln
diff --git a/mdk-stage1/ppp/solaris/Makefile.sol2-64 b/mdk-stage1/ppp/solaris/Makefile.sol2-64
deleted file mode 100644
index 63e75fc54..000000000
--- a/mdk-stage1/ppp/solaris/Makefile.sol2-64
+++ /dev/null
@@ -1,85 +0,0 @@
-#
-# Makefile for 64-bit STREAMS modules for Solaris 2.
-#
-# $Id$
-#
-
-include Makedefs.sol2
-
-# Sun's cc flag for LP64 compilation / linkage
-COPTS += -xchip=ultra -xarch=v9 -Wc,-xcode=abs32 -Wc,-Qiselect-regsym=0 -xO3 -xspace -W0,-Lt
-
-# subdirectory where 64-bit objects / binaries will be placed
-LP64DIR = sparcv9
-
-# Name of legacy Makefile (for 32-bit binaries)
-STD_MAKE = Makefile.sol2
-
-COMP_OBJS = $(LP64DIR)/ppp_comp.o $(LP64DIR)/bsd-comp.o \
- $(LP64DIR)/deflate.o $(LP64DIR)/zlib.o $(LP64DIR)/vjcompress.o \
- $(LP64DIR)/ppp_comp_mod.o
-
-all: std_objs $(LP64DIR) ppp ppp_ahdl ppp_comp
-
-std_objs:
- $(MAKE) -f $(STD_MAKE) all
-
-ppp: $(LP64DIR)/ppp.o $(LP64DIR)/ppp_mod.o
- ld -r -o $(LP64DIR)/$@ $(LP64DIR)/ppp.o $(LP64DIR)/ppp_mod.o
- chmod +x $(LP64DIR)/$@
-
-ppp_ahdl: $(LP64DIR)/ppp_ahdlc.o $(LP64DIR)/ppp_ahdlc_mod.o
- ld -r -o $(LP64DIR)/$@ $(LP64DIR)/ppp_ahdlc.o $(LP64DIR)/ppp_ahdlc_mod.o
- chmod +x $(LP64DIR)/$@
-
-ppp_comp: $(COMP_OBJS)
- ld -r -o $(LP64DIR)/$@ $(COMP_OBJS)
- chmod +x $(LP64DIR)/$@
-
-$(LP64DIR)/bsd-comp.o: ../modules/bsd-comp.c
- $(CC) $(CFLAGS) -c $? -o $@
-$(LP64DIR)/deflate.o: ../modules/deflate.c
- $(CC) $(CFLAGS) -c $? -o $@
-$(LP64DIR)/ppp.o: ppp.c
- $(CC) $(CFLAGS) -c $? -o $@
-$(LP64DIR)/ppp_mod.o: ppp_mod.c
- $(CC) $(CFLAGS) -c $? -o $@
-$(LP64DIR)/ppp_ahdlc_mod.o: ppp_ahdlc_mod.c
- $(CC) $(CFLAGS) -c $? -o $@
-$(LP64DIR)/ppp_ahdlc.o: ppp_ahdlc.c
- $(CC) $(CFLAGS) -c $? -o $@
-$(LP64DIR)/ppp_comp.o: ppp_comp.c
- $(CC) $(CFLAGS) -c $? -o $@
-$(LP64DIR)/ppp_comp_mod.o: ppp_comp_mod.c
- $(CC) $(CFLAGS) -c $? -o $@
-$(LP64DIR)/vjcompress.o: ../modules/vjcompress.c
- $(CC) $(CFLAGS) -c $? -o $@
-$(LP64DIR)/zlib.o: ../common/zlib.c
- $(CC) $(CFLAGS) -c $? -o $@
-
-$(LP64DIR):
- mkdir -m 755 -p $@
-
-install:
- cp ppp ppp.conf /kernel/drv
- cp ppp_comp ppp_ahdl /kernel/strmod
- cp $(LP64DIR)/ppp /kernel/drv/$(LP64DIR)
- cp $(LP64DIR)/ppp_comp $(LP64DIR)/ppp_ahdl /kernel/strmod/$(LP64DIR)
- if grep clone:ppp /etc/minor_perm; then :; else \
- echo clone:ppp 0644 root sys >>/etc/minor_perm; fi
- /usr/sbin/rem_drv ppp 2>/dev/null || true
- /usr/sbin/add_drv ppp
-
-SRCS = ppp.c ppp_mod.c ppp_ahdlc.c ppp_ahdlc_mod.c \
- ppp_comp.c ../modules/bsd-comp.c ../modules/deflate.c \
- ../common/zlib.c ../modules/vjcompress.c ppp_comp_mod.c
-
-lint:
- $(LINT64) $(SRCS)
-
-lint-32:
- $(LINT32) $(SRCS)
-
-clean:
- $(MAKE) -f $(STD_MAKE) clean
- rm -f $(LP64DIR)/ppp $(LP64DIR)/ppp_comp $(LP64DIR)/ppp_ahdl $(LP64DIR)/*.o $(LP64DIR)/*~ $(LP64DIR)/core
diff --git a/mdk-stage1/ppp/solaris/Makefile.top b/mdk-stage1/ppp/solaris/Makefile.top
deleted file mode 100644
index f1200b852..000000000
--- a/mdk-stage1/ppp/solaris/Makefile.top
+++ /dev/null
@@ -1,50 +0,0 @@
-#
-# ppp top level makefile for SVR4 and Solaris 2
-#
-# $Id$
-#
-
-include solaris/Makedefs
-
-all:
- cd chat; $(MAKE) all
- cd pppd; $(MAKE) all
- cd pppstats; $(MAKE) all
- cd pppdump; $(MAKE) all
- cd solaris; $(MAKE) all
-
-install: $(BINDIR) $(MANDIR)/man8 install-progs install-etcppp
-
-install-progs:
- cd chat; $(MAKE) install
- cd pppd; $(MAKE) install
- cd pppstats; $(MAKE) install
- cd pppdump; $(MAKE) install
- cd solaris; $(MAKE) install
-
-install-etcppp: $(ETCDIR) $(ETCDIR)/options $(ETCDIR)/pap-secrets \
- $(ETCDIR)/chap-secrets
-
-$(ETCDIR)/options:
- cp etc.ppp/options $@
- chmod go-w $@
-$(ETCDIR)/pap-secrets:
- $(INSTALL) -f $(ETCDIR) -m 600 etc.ppp/pap-secrets
-$(ETCDIR)/chap-secrets:
- $(INSTALL) -f $(ETCDIR) -m 600 etc.ppp/chap-secrets
-
-$(BINDIR):
- mkdir -m 755 -p $@
-$(MANDIR)/man8:
- mkdir -m 755 -p $@
-$(ETCDIR):
- mkdir -m 755 -p $@
-
-clean:
- rm -f *~
- cd chat; $(MAKE) clean
- cd pppd; $(MAKE) clean
- cd pppstats; $(MAKE) clean
- cd pppdump; $(MAKE) clean
- cd solaris; $(MAKE) clean
-
diff --git a/mdk-stage1/ppp/solaris/ppp.c b/mdk-stage1/ppp/solaris/ppp.c
deleted file mode 100644
index 44bf08dff..000000000
--- a/mdk-stage1/ppp/solaris/ppp.c
+++ /dev/null
@@ -1,2486 +0,0 @@
-/*
- * ppp.c - STREAMS multiplexing pseudo-device driver for PPP.
- *
- * Copyright (c) 1994 The Australian National University.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies. This software is provided without any
- * warranty, express or implied. The Australian National University
- * makes no representations about the suitability of this software for
- * any purpose.
- *
- * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
- * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
- * THE AUSTRALIAN NATIONAL UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
- * OR MODIFICATIONS.
- *
- * $Id$
- */
-
-/*
- * This file is used under Solaris 2, SVR4, SunOS 4, and Digital UNIX.
- */
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/stat.h>
-#include <sys/stream.h>
-#include <sys/stropts.h>
-#include <sys/errno.h>
-#ifdef __osf__
-#include <sys/ioctl.h>
-#include <sys/cmn_err.h>
-#define queclass(mp) ((mp)->b_band & QPCTL)
-#else
-#include <sys/ioccom.h>
-#endif
-#include <sys/time.h>
-#ifdef SVR4
-#include <sys/cmn_err.h>
-#include <sys/conf.h>
-#include <sys/dlpi.h>
-#include <sys/ddi.h>
-#ifdef SOL2
-#include <sys/ksynch.h>
-#include <sys/kstat.h>
-#include <sys/sunddi.h>
-#include <sys/ethernet.h>
-#else
-#include <sys/socket.h>
-#include <sys/sockio.h>
-#include <net/if.h>
-#include <netinet/in.h>
-#endif /* SOL2 */
-#else /* not SVR4 */
-#include <sys/user.h>
-#endif /* SVR4 */
-#include <net/ppp_defs.h>
-#include <net/pppio.h>
-#include "ppp_mod.h"
-
-/*
- * Modifications marked with #ifdef PRIOQ are for priority queueing of
- * interactive traffic, and are due to Marko Zec <zec@japa.tel.fer.hr>.
- */
-#ifdef PRIOQ
-#endif /* PRIOQ */
-
-#include <netinet/in.h> /* leave this outside of PRIOQ for htons */
-
-#ifdef __STDC__
-#define __P(x) x
-#else
-#define __P(x) ()
-#endif
-
-/*
- * The IP module may use this SAP value for IP packets.
- */
-#ifndef ETHERTYPE_IP
-#define ETHERTYPE_IP 0x800
-#endif
-
-#if !defined(ETHERTYPE_IPV6)
-#define ETHERTYPE_IPV6 0x86dd
-#endif /* !defined(ETHERTYPE_IPV6) */
-
-#if !defined(ETHERTYPE_ALLSAP) && defined(SOL2)
-#define ETHERTYPE_ALLSAP 0
-#endif /* !defined(ETHERTYPE_ALLSAP) && defined(SOL2) */
-
-#if !defined(PPP_ALLSAP) && defined(SOL2)
-#define PPP_ALLSAP PPP_ALLSTATIONS
-#endif /* !defined(PPP_ALLSAP) && defined(SOL2) */
-
-extern time_t time;
-
-#ifdef SOL2
-/*
- * We use this reader-writer lock to ensure that the lower streams
- * stay connected to the upper streams while the lower-side put and
- * service procedures are running. Essentially it is an existence
- * lock for the upper stream associated with each lower stream.
- */
-krwlock_t ppp_lower_lock;
-#define LOCK_LOWER_W rw_enter(&ppp_lower_lock, RW_WRITER)
-#define LOCK_LOWER_R rw_enter(&ppp_lower_lock, RW_READER)
-#define TRYLOCK_LOWER_R rw_tryenter(&ppp_lower_lock, RW_READER)
-#define UNLOCK_LOWER rw_exit(&ppp_lower_lock)
-
-#define MT_ENTER(x) mutex_enter(x)
-#define MT_EXIT(x) mutex_exit(x)
-
-/*
- * Notes on multithreaded implementation for Solaris 2:
- *
- * We use an inner perimeter around each queue pair and an outer
- * perimeter around the whole driver. The inner perimeter is
- * entered exclusively for all entry points (open, close, put,
- * service). The outer perimeter is entered exclusively for open
- * and close and shared for put and service. This is all done for
- * us by the streams framework.
- *
- * I used to think that the perimeters were entered for the lower
- * streams' put and service routines as well as for the upper streams'.
- * Because of problems experienced by people, and after reading the
- * documentation more closely, I now don't think that is true. So we
- * now use ppp_lower_lock to give us an existence guarantee on the
- * upper stream controlling each lower stream.
- *
- * Shared entry to the outer perimeter protects the existence of all
- * the upper streams and their upperstr_t structures, and guarantees
- * that the following fields of any upperstr_t won't change:
- * nextmn, next, nextppa. It guarantees that the lowerq field of an
- * upperstr_t won't go from non-zero to zero, that the global `ppas'
- * won't change and that the no lower stream will get unlinked.
- *
- * Shared (reader) access to ppa_lower_lock guarantees that no lower
- * stream will be unlinked and that the lowerq field of all upperstr_t
- * structures won't change.
- */
-
-#else /* SOL2 */
-#define LOCK_LOWER_W 0
-#define LOCK_LOWER_R 0
-#define TRYLOCK_LOWER_R 1
-#define UNLOCK_LOWER 0
-#define MT_ENTER(x) 0
-#define MT_EXIT(x) 0
-
-#endif /* SOL2 */
-
-/*
- * Private information; one per upper stream.
- */
-typedef struct upperstr {
- minor_t mn; /* minor device number */
- struct upperstr *nextmn; /* next minor device */
- queue_t *q; /* read q associated with this upper stream */
- int flags; /* flag bits, see below */
- int state; /* current DLPI state */
- int sap; /* service access point */
- int req_sap; /* which SAP the DLPI client requested */
- struct upperstr *ppa; /* control stream for our ppa */
- struct upperstr *next; /* next stream for this ppa */
- uint ioc_id; /* last ioctl ID for this stream */
- enum NPmode npmode; /* what to do with packets on this SAP */
- unsigned char rblocked; /* flow control has blocked upper read strm */
- /* N.B. rblocked is only changed by control stream's put/srv procs */
- /*
- * There is exactly one control stream for each PPA.
- * The following fields are only used for control streams.
- */
- int ppa_id;
- queue_t *lowerq; /* write queue attached below this PPA */
- struct upperstr *nextppa; /* next control stream */
- int mru;
- int mtu;
- struct pppstat stats; /* statistics */
- time_t last_sent; /* time last NP packet sent */
- time_t last_recv; /* time last NP packet rcvd */
-#ifdef SOL2
- kmutex_t stats_lock; /* lock for stats updates */
- kstat_t *kstats; /* stats for netstat */
-#endif /* SOL2 */
-#ifdef LACHTCP
- int ifflags;
- char ifname[IFNAMSIZ];
- struct ifstats ifstats;
-#endif /* LACHTCP */
-} upperstr_t;
-
-/* Values for flags */
-#define US_PRIV 1 /* stream was opened by superuser */
-#define US_CONTROL 2 /* stream is a control stream */
-#define US_BLOCKED 4 /* flow ctrl has blocked lower write stream */
-#define US_LASTMOD 8 /* no PPP modules below us */
-#define US_DBGLOG 0x10 /* log various occurrences */
-#define US_RBLOCKED 0x20 /* flow ctrl has blocked upper read stream */
-
-#if defined(SOL2)
-#if DL_CURRENT_VERSION >= 2
-#define US_PROMISC 0x40 /* stream is promiscuous */
-#endif /* DL_CURRENT_VERSION >= 2 */
-#define US_RAWDATA 0x80 /* raw M_DATA, no DLPI header */
-#endif /* defined(SOL2) */
-
-#ifdef PRIOQ
-static u_char max_band=0;
-static u_char def_band=0;
-
-#define IPPORT_DEFAULT 65535
-
-/*
- * Port priority table
- * Highest priority ports are listed first, lowest are listed last.
- * ICMP & packets using unlisted ports will be treated as "default".
- * If IPPORT_DEFAULT is not listed here, "default" packets will be
- * assigned lowest priority.
- * Each line should be terminated with "0".
- * Line containing only "0" marks the end of the list.
- */
-
-static u_short prioq_table[]= {
- 113, 53, 0,
- 22, 23, 513, 517, 518, 0,
- 514, 21, 79, 111, 0,
- 25, 109, 110, 0,
- IPPORT_DEFAULT, 0,
- 20, 70, 80, 8001, 8008, 8080, 0, /* 8001,8008,8080 - common proxy ports */
-0 };
-
-#endif /* PRIOQ */
-
-
-static upperstr_t *minor_devs = NULL;
-static upperstr_t *ppas = NULL;
-
-#ifdef SVR4
-static int pppopen __P((queue_t *, dev_t *, int, int, cred_t *));
-static int pppclose __P((queue_t *, int, cred_t *));
-#else
-static int pppopen __P((queue_t *, int, int, int));
-static int pppclose __P((queue_t *, int));
-#endif /* SVR4 */
-static int pppurput __P((queue_t *, mblk_t *));
-static int pppuwput __P((queue_t *, mblk_t *));
-static int pppursrv __P((queue_t *));
-static int pppuwsrv __P((queue_t *));
-static int ppplrput __P((queue_t *, mblk_t *));
-static int ppplwput __P((queue_t *, mblk_t *));
-static int ppplrsrv __P((queue_t *));
-static int ppplwsrv __P((queue_t *));
-#ifndef NO_DLPI
-static void dlpi_request __P((queue_t *, mblk_t *, upperstr_t *));
-static void dlpi_error __P((queue_t *, upperstr_t *, int, int, int));
-static void dlpi_ok __P((queue_t *, int));
-#endif
-static int send_data __P((mblk_t *, upperstr_t *));
-static void new_ppa __P((queue_t *, mblk_t *));
-static void attach_ppa __P((queue_t *, mblk_t *));
-static void detach_ppa __P((queue_t *, mblk_t *));
-static void detach_lower __P((queue_t *, mblk_t *));
-static void debug_dump __P((queue_t *, mblk_t *));
-static upperstr_t *find_dest __P((upperstr_t *, int));
-#if defined(SOL2)
-static upperstr_t *find_promisc __P((upperstr_t *, int));
-static mblk_t *prepend_ether __P((upperstr_t *, mblk_t *, int));
-static mblk_t *prepend_udind __P((upperstr_t *, mblk_t *, int));
-static void promisc_sendup __P((upperstr_t *, mblk_t *, int, int));
-#endif /* defined(SOL2) */
-static int putctl2 __P((queue_t *, int, int, int));
-static int putctl4 __P((queue_t *, int, int, int));
-static int pass_packet __P((upperstr_t *ppa, mblk_t *mp, int outbound));
-#ifdef FILTER_PACKETS
-static int ip_hard_filter __P((upperstr_t *ppa, mblk_t *mp, int outbound));
-#endif /* FILTER_PACKETS */
-
-#define PPP_ID 0xb1a6
-static struct module_info ppp_info = {
-#ifdef PRIOQ
- PPP_ID, "ppp", 0, 512, 512, 384
-#else
- PPP_ID, "ppp", 0, 512, 512, 128
-#endif /* PRIOQ */
-};
-
-static struct qinit pppurint = {
- pppurput, pppursrv, pppopen, pppclose, NULL, &ppp_info, NULL
-};
-
-static struct qinit pppuwint = {
- pppuwput, pppuwsrv, NULL, NULL, NULL, &ppp_info, NULL
-};
-
-static struct qinit ppplrint = {
- ppplrput, ppplrsrv, NULL, NULL, NULL, &ppp_info, NULL
-};
-
-static struct qinit ppplwint = {
- ppplwput, ppplwsrv, NULL, NULL, NULL, &ppp_info, NULL
-};
-
-#ifdef LACHTCP
-extern struct ifstats *ifstats;
-int pppdevflag = 0;
-#endif
-
-struct streamtab pppinfo = {
- &pppurint, &pppuwint,
- &ppplrint, &ppplwint
-};
-
-int ppp_count;
-
-/*
- * How we maintain statistics.
- */
-#ifdef SOL2
-#define INCR_IPACKETS(ppa) \
- if (ppa->kstats != 0) { \
- KSTAT_NAMED_PTR(ppa->kstats)[0].value.ul++; \
- }
-#define INCR_IERRORS(ppa) \
- if (ppa->kstats != 0) { \
- KSTAT_NAMED_PTR(ppa->kstats)[1].value.ul++; \
- }
-#define INCR_OPACKETS(ppa) \
- if (ppa->kstats != 0) { \
- KSTAT_NAMED_PTR(ppa->kstats)[2].value.ul++; \
- }
-#define INCR_OERRORS(ppa) \
- if (ppa->kstats != 0) { \
- KSTAT_NAMED_PTR(ppa->kstats)[3].value.ul++; \
- }
-#endif
-
-#ifdef LACHTCP
-#define INCR_IPACKETS(ppa) ppa->ifstats.ifs_ipackets++;
-#define INCR_IERRORS(ppa) ppa->ifstats.ifs_ierrors++;
-#define INCR_OPACKETS(ppa) ppa->ifstats.ifs_opackets++;
-#define INCR_OERRORS(ppa) ppa->ifstats.ifs_oerrors++;
-#endif
-
-/*
- * STREAMS driver entry points.
- */
-static int
-#ifdef SVR4
-pppopen(q, devp, oflag, sflag, credp)
- queue_t *q;
- dev_t *devp;
- int oflag, sflag;
- cred_t *credp;
-#else
-pppopen(q, dev, oflag, sflag)
- queue_t *q;
- int dev; /* really dev_t */
- int oflag, sflag;
-#endif
-{
- upperstr_t *up;
- upperstr_t **prevp;
- minor_t mn;
-#ifdef PRIOQ
- u_short *ptr;
- u_char new_band;
-#endif /* PRIOQ */
-
- if (q->q_ptr)
- DRV_OPEN_OK(dev); /* device is already open */
-
-#ifdef PRIOQ
- /* Calculate max_bband & def_band from definitions in prioq.h
- This colud be done at some more approtiate time (less often)
- but this way it works well so I'll just leave it here */
-
- max_band = 1;
- def_band = 0;
- ptr = prioq_table;
- while (*ptr) {
- new_band = 1;
- while (*ptr)
- if (*ptr++ == IPPORT_DEFAULT) {
- new_band = 0;
- def_band = max_band;
- }
- max_band += new_band;
- ptr++;
- }
- if (def_band)
- def_band = max_band - def_band;
- --max_band;
-#endif /* PRIOQ */
-
- if (sflag == CLONEOPEN) {
- mn = 0;
- for (prevp = &minor_devs; (up = *prevp) != 0; prevp = &up->nextmn) {
- if (up->mn != mn)
- break;
- ++mn;
- }
- } else {
-#ifdef SVR4
- mn = getminor(*devp);
-#else
- mn = minor(dev);
-#endif
- for (prevp = &minor_devs; (up = *prevp) != 0; prevp = &up->nextmn) {
- if (up->mn >= mn)
- break;
- }
- if (up->mn == mn) {
- /* this can't happen */
- q->q_ptr = WR(q)->q_ptr = (caddr_t) up;
- DRV_OPEN_OK(dev);
- }
- }
-
- /*
- * Construct a new minor node.
- */
- up = (upperstr_t *) ALLOC_SLEEP(sizeof(upperstr_t));
- bzero((caddr_t) up, sizeof(upperstr_t));
- if (up == 0) {
- DPRINT("pppopen: out of kernel memory\n");
- OPEN_ERROR(ENXIO);
- }
- up->nextmn = *prevp;
- *prevp = up;
- up->mn = mn;
-#ifdef SVR4
- *devp = makedevice(getmajor(*devp), mn);
-#endif
- up->q = q;
- if (NOTSUSER() == 0)
- up->flags |= US_PRIV;
-#ifndef NO_DLPI
- up->state = DL_UNATTACHED;
-#endif
-#ifdef LACHTCP
- up->ifflags = IFF_UP | IFF_POINTOPOINT;
-#endif
- up->sap = -1;
- up->last_sent = up->last_recv = time;
- up->npmode = NPMODE_DROP;
- q->q_ptr = (caddr_t) up;
- WR(q)->q_ptr = (caddr_t) up;
- noenable(WR(q));
-#ifdef SOL2
- mutex_init(&up->stats_lock, NULL, MUTEX_DRIVER, NULL);
-#endif
- ++ppp_count;
-
- qprocson(q);
- DRV_OPEN_OK(makedev(major(dev), mn));
-}
-
-static int
-#ifdef SVR4
-pppclose(q, flag, credp)
- queue_t *q;
- int flag;
- cred_t *credp;
-#else
-pppclose(q, flag)
- queue_t *q;
- int flag;
-#endif
-{
- upperstr_t *up, **upp;
- upperstr_t *as, *asnext;
- upperstr_t **prevp;
-
- qprocsoff(q);
-
- up = (upperstr_t *) q->q_ptr;
- if (up == 0) {
- DPRINT("pppclose: q_ptr = 0\n");
- return 0;
- }
- if (up->flags & US_DBGLOG)
- DPRINT2("ppp/%d: close, flags=%x\n", up->mn, up->flags);
- if (up->flags & US_CONTROL) {
-#ifdef LACHTCP
- struct ifstats *ifp, *pifp;
-#endif
- if (up->lowerq != 0) {
- /* Gack! the lower stream should have be unlinked earlier! */
- DPRINT1("ppp%d: lower stream still connected on close?\n",
- up->mn);
- LOCK_LOWER_W;
- up->lowerq->q_ptr = 0;
- RD(up->lowerq)->q_ptr = 0;
- up->lowerq = 0;
- UNLOCK_LOWER;
- }
-
- /*
- * This stream represents a PPA:
- * For all streams attached to the PPA, clear their
- * references to this PPA.
- * Then remove this PPA from the list of PPAs.
- */
- for (as = up->next; as != 0; as = asnext) {
- asnext = as->next;
- as->next = 0;
- as->ppa = 0;
- if (as->flags & US_BLOCKED) {
- as->flags &= ~US_BLOCKED;
- flushq(WR(as->q), FLUSHDATA);
- }
- }
- for (upp = &ppas; *upp != 0; upp = &(*upp)->nextppa)
- if (*upp == up) {
- *upp = up->nextppa;
- break;
- }
-#ifdef LACHTCP
- /* Remove the statistics from the active list. */
- for (ifp = ifstats, pifp = 0; ifp; ifp = ifp->ifs_next) {
- if (ifp == &up->ifstats) {
- if (pifp)
- pifp->ifs_next = ifp->ifs_next;
- else
- ifstats = ifp->ifs_next;
- break;
- }
- pifp = ifp;
- }
-#endif
- } else {
- /*
- * If this stream is attached to a PPA,
- * remove it from the PPA's list.
- */
- if ((as = up->ppa) != 0) {
- for (; as->next != 0; as = as->next)
- if (as->next == up) {
- as->next = up->next;
- break;
- }
- }
- }
-
-#ifdef SOL2
- if (up->kstats)
- kstat_delete(up->kstats);
- mutex_destroy(&up->stats_lock);
-#endif
-
- q->q_ptr = NULL;
- WR(q)->q_ptr = NULL;
-
- for (prevp = &minor_devs; *prevp != 0; prevp = &(*prevp)->nextmn) {
- if (*prevp == up) {
- *prevp = up->nextmn;
- break;
- }
- }
- FREE(up, sizeof(upperstr_t));
- --ppp_count;
-
- return 0;
-}
-
-/*
- * A message from on high. We do one of three things:
- * - qreply()
- * - put the message on the lower write stream
- * - queue it for our service routine
- */
-static int
-pppuwput(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- upperstr_t *us, *ppa, *nps;
- struct iocblk *iop;
- struct linkblk *lb;
-#ifdef LACHTCP
- struct ifreq *ifr;
- int i;
-#endif
- queue_t *lq;
- int error, n, sap;
- mblk_t *mq;
- struct ppp_idle *pip;
-#ifdef PRIOQ
- queue_t *tlq;
-#endif /* PRIOQ */
-#ifdef NO_DLPI
- upperstr_t *os;
-#endif
-
- us = (upperstr_t *) q->q_ptr;
- if (us == 0) {
- DPRINT("pppuwput: q_ptr = 0!\n");
- return 0;
- }
- if (mp == 0) {
- DPRINT1("pppuwput/%d: mp = 0!\n", us->mn);
- return 0;
- }
- if (mp->b_datap == 0) {
- DPRINT1("pppuwput/%d: mp->b_datap = 0!\n", us->mn);
- return 0;
- }
- switch (mp->b_datap->db_type) {
-#ifndef NO_DLPI
- case M_PCPROTO:
- case M_PROTO:
- dlpi_request(q, mp, us);
- break;
-#endif /* NO_DLPI */
-
- case M_DATA:
- if (us->flags & US_DBGLOG)
- DPRINT3("ppp/%d: uwput M_DATA len=%d flags=%x\n",
- us->mn, msgdsize(mp), us->flags);
- if (us->ppa == 0 || msgdsize(mp) > us->ppa->mtu + PPP_HDRLEN
-#ifndef NO_DLPI
- || (us->flags & US_CONTROL) == 0
-#endif /* NO_DLPI */
- ) {
- DPRINT1("pppuwput: junk data len=%d\n", msgdsize(mp));
- freemsg(mp);
- break;
- }
-#ifdef NO_DLPI
- if ((us->flags & US_CONTROL) == 0 && !pass_packet(us, mp, 1))
- break;
-#endif
- if (!send_data(mp, us))
- putq(q, mp);
- break;
-
- case M_IOCTL:
- iop = (struct iocblk *) mp->b_rptr;
- error = EINVAL;
- if (us->flags & US_DBGLOG)
- DPRINT3("ppp/%d: ioctl %x count=%d\n",
- us->mn, iop->ioc_cmd, iop->ioc_count);
- switch (iop->ioc_cmd) {
-#if defined(SOL2)
- case DLIOCRAW: /* raw M_DATA mode */
- us->flags |= US_RAWDATA;
- error = 0;
- break;
-#endif /* defined(SOL2) */
- case I_LINK:
- if ((us->flags & US_CONTROL) == 0 || us->lowerq != 0)
- break;
- if (mp->b_cont == 0) {
- DPRINT1("pppuwput/%d: ioctl I_LINK b_cont = 0!\n", us->mn);
- break;
- }
- lb = (struct linkblk *) mp->b_cont->b_rptr;
- lq = lb->l_qbot;
- if (lq == 0) {
- DPRINT1("pppuwput/%d: ioctl I_LINK l_qbot = 0!\n", us->mn);
- break;
- }
- LOCK_LOWER_W;
- us->lowerq = lq;
- lq->q_ptr = (caddr_t) q;
- RD(lq)->q_ptr = (caddr_t) us->q;
- UNLOCK_LOWER;
- iop->ioc_count = 0;
- error = 0;
- us->flags &= ~US_LASTMOD;
- /* Unblock upper streams which now feed this lower stream. */
- qenable(q);
- /* Send useful information down to the modules which
- are now linked below us. */
- putctl2(lq, M_CTL, PPPCTL_UNIT, us->ppa_id);
- putctl4(lq, M_CTL, PPPCTL_MRU, us->mru);
- putctl4(lq, M_CTL, PPPCTL_MTU, us->mtu);
-#ifdef PRIOQ
- /* Lower tty driver's queue hiwat/lowat from default 4096/128
- to 256/128 since we don't want queueing of data on
- output to physical device */
-
- freezestr(lq);
- for (tlq = lq; tlq->q_next != NULL; tlq = tlq->q_next)
- ;
- strqset(tlq, QHIWAT, 0, 256);
- strqset(tlq, QLOWAT, 0, 128);
- unfreezestr(lq);
-#endif /* PRIOQ */
- break;
-
- case I_UNLINK:
- if (mp->b_cont == 0) {
- DPRINT1("pppuwput/%d: ioctl I_UNLINK b_cont = 0!\n", us->mn);
- break;
- }
- lb = (struct linkblk *) mp->b_cont->b_rptr;
-#if DEBUG
- if (us->lowerq != lb->l_qbot) {
- DPRINT2("ppp unlink: lowerq=%x qbot=%x\n",
- us->lowerq, lb->l_qbot);
- break;
- }
-#endif
- iop->ioc_count = 0;
- qwriter(q, mp, detach_lower, PERIM_OUTER);
- error = -1;
- break;
-
- case PPPIO_NEWPPA:
- if (us->flags & US_CONTROL)
- break;
- if ((us->flags & US_PRIV) == 0) {
- error = EPERM;
- break;
- }
- /* Arrange to return an int */
- if ((mq = mp->b_cont) == 0
- || mq->b_datap->db_lim - mq->b_rptr < sizeof(int)) {
- mq = allocb(sizeof(int), BPRI_HI);
- if (mq == 0) {
- error = ENOSR;
- break;
- }
- if (mp->b_cont != 0)
- freemsg(mp->b_cont);
- mp->b_cont = mq;
- mq->b_cont = 0;
- }
- iop->ioc_count = sizeof(int);
- mq->b_wptr = mq->b_rptr + sizeof(int);
- qwriter(q, mp, new_ppa, PERIM_OUTER);
- error = -1;
- break;
-
- case PPPIO_ATTACH:
- /* like dlpi_attach, for programs which can't write to
- the stream (like pppstats) */
- if (iop->ioc_count != sizeof(int) || us->ppa != 0)
- break;
- if (mp->b_cont == 0) {
- DPRINT1("pppuwput/%d: ioctl PPPIO_ATTACH b_cont = 0!\n", us->mn);
- break;
- }
- n = *(int *)mp->b_cont->b_rptr;
- for (ppa = ppas; ppa != 0; ppa = ppa->nextppa)
- if (ppa->ppa_id == n)
- break;
- if (ppa == 0)
- break;
- us->ppa = ppa;
- iop->ioc_count = 0;
- qwriter(q, mp, attach_ppa, PERIM_OUTER);
- error = -1;
- break;
-
-#ifdef NO_DLPI
- case PPPIO_BIND:
- /* Attach to a given SAP. */
- if (iop->ioc_count != sizeof(int) || us->ppa == 0)
- break;
- if (mp->b_cont == 0) {
- DPRINT1("pppuwput/%d: ioctl PPPIO_BIND b_cont = 0!\n", us->mn);
- break;
- }
- n = *(int *)mp->b_cont->b_rptr;
- /* n must be a valid PPP network protocol number. */
- if (n < 0x21 || n > 0x3fff || (n & 0x101) != 1)
- break;
- /* check that no other stream is bound to this sap already. */
- for (os = us->ppa; os != 0; os = os->next)
- if (os->sap == n)
- break;
- if (os != 0)
- break;
- us->sap = n;
- iop->ioc_count = 0;
- error = 0;
- break;
-#endif /* NO_DLPI */
-
- case PPPIO_MRU:
- if (iop->ioc_count != sizeof(int) || (us->flags & US_CONTROL) == 0)
- break;
- if (mp->b_cont == 0) {
- DPRINT1("pppuwput/%d: ioctl PPPIO_MRU b_cont = 0!\n", us->mn);
- break;
- }
- n = *(int *)mp->b_cont->b_rptr;
- if (n <= 0 || n > PPP_MAXMRU)
- break;
- if (n < PPP_MRU)
- n = PPP_MRU;
- us->mru = n;
- if (us->lowerq)
- putctl4(us->lowerq, M_CTL, PPPCTL_MRU, n);
- error = 0;
- iop->ioc_count = 0;
- break;
-
- case PPPIO_MTU:
- if (iop->ioc_count != sizeof(int) || (us->flags & US_CONTROL) == 0)
- break;
- if (mp->b_cont == 0) {
- DPRINT1("pppuwput/%d: ioctl PPPIO_MTU b_cont = 0!\n", us->mn);
- break;
- }
- n = *(int *)mp->b_cont->b_rptr;
- if (n <= 0 || n > PPP_MAXMTU)
- break;
- us->mtu = n;
-#ifdef LACHTCP
- /* The MTU reported in netstat, not used as IP max packet size! */
- us->ifstats.ifs_mtu = n;
-#endif
- if (us->lowerq)
- putctl4(us->lowerq, M_CTL, PPPCTL_MTU, n);
- error = 0;
- iop->ioc_count = 0;
- break;
-
- case PPPIO_LASTMOD:
- us->flags |= US_LASTMOD;
- error = 0;
- break;
-
- case PPPIO_DEBUG:
- if (iop->ioc_count != sizeof(int))
- break;
- if (mp->b_cont == 0) {
- DPRINT1("pppuwput/%d: ioctl PPPIO_DEBUG b_cont = 0!\n", us->mn);
- break;
- }
- n = *(int *)mp->b_cont->b_rptr;
- if (n == PPPDBG_DUMP + PPPDBG_DRIVER) {
- qwriter(q, NULL, debug_dump, PERIM_OUTER);
- iop->ioc_count = 0;
- error = -1;
- } else if (n == PPPDBG_LOG + PPPDBG_DRIVER) {
- DPRINT1("ppp/%d: debug log enabled\n", us->mn);
- us->flags |= US_DBGLOG;
- iop->ioc_count = 0;
- error = 0;
- } else {
- if (us->ppa == 0 || us->ppa->lowerq == 0)
- break;
- putnext(us->ppa->lowerq, mp);
- error = -1;
- }
- break;
-
- case PPPIO_NPMODE:
- if (iop->ioc_count != 2 * sizeof(int))
- break;
- if ((us->flags & US_CONTROL) == 0)
- break;
- if (mp->b_cont == 0) {
- DPRINT1("pppuwput/%d: ioctl PPPIO_NPMODE b_cont = 0!\n", us->mn);
- break;
- }
- sap = ((int *)mp->b_cont->b_rptr)[0];
- for (nps = us->next; nps != 0; nps = nps->next) {
- if (us->flags & US_DBGLOG)
- DPRINT2("us = 0x%x, us->next->sap = 0x%x\n", nps, nps->sap);
- if (nps->sap == sap)
- break;
- }
- if (nps == 0) {
- if (us->flags & US_DBGLOG)
- DPRINT2("ppp/%d: no stream for sap %x\n", us->mn, sap);
- break;
- }
- /* XXX possibly should use qwriter here */
- nps->npmode = (enum NPmode) ((int *)mp->b_cont->b_rptr)[1];
- if (nps->npmode != NPMODE_QUEUE && (nps->flags & US_BLOCKED) != 0)
- qenable(WR(nps->q));
- iop->ioc_count = 0;
- error = 0;
- break;
-
- case PPPIO_GIDLE:
- if ((ppa = us->ppa) == 0)
- break;
- mq = allocb(sizeof(struct ppp_idle), BPRI_HI);
- if (mq == 0) {
- error = ENOSR;
- break;
- }
- if (mp->b_cont != 0)
- freemsg(mp->b_cont);
- mp->b_cont = mq;
- mq->b_cont = 0;
- pip = (struct ppp_idle *) mq->b_wptr;
- pip->xmit_idle = time - ppa->last_sent;
- pip->recv_idle = time - ppa->last_recv;
- mq->b_wptr += sizeof(struct ppp_idle);
- iop->ioc_count = sizeof(struct ppp_idle);
- error = 0;
- break;
-
-#ifdef LACHTCP
- case SIOCSIFNAME:
- /* Sent from IP down to us. Attach the ifstats structure. */
- if (iop->ioc_count != sizeof(struct ifreq) || us->ppa == 0)
- break;
- ifr = (struct ifreq *)mp->b_cont->b_rptr;
- /* Find the unit number in the interface name. */
- for (i = 0; i < IFNAMSIZ; i++) {
- if (ifr->ifr_name[i] == 0 ||
- (ifr->ifr_name[i] >= '0' &&
- ifr->ifr_name[i] <= '9'))
- break;
- else
- us->ifname[i] = ifr->ifr_name[i];
- }
- us->ifname[i] = 0;
-
- /* Convert the unit number to binary. */
- for (n = 0; i < IFNAMSIZ; i++) {
- if (ifr->ifr_name[i] == 0) {
- break;
- }
- else {
- n = n * 10 + ifr->ifr_name[i] - '0';
- }
- }
-
- /* Verify the ppa. */
- if (us->ppa->ppa_id != n)
- break;
- ppa = us->ppa;
-
- /* Set up the netstat block. */
- strncpy (ppa->ifname, us->ifname, IFNAMSIZ);
-
- ppa->ifstats.ifs_name = ppa->ifname;
- ppa->ifstats.ifs_unit = n;
- ppa->ifstats.ifs_active = us->state != DL_UNBOUND;
- ppa->ifstats.ifs_mtu = ppa->mtu;
-
- /* Link in statistics used by netstat. */
- ppa->ifstats.ifs_next = ifstats;
- ifstats = &ppa->ifstats;
-
- iop->ioc_count = 0;
- error = 0;
- break;
-
- case SIOCGIFFLAGS:
- if (!(us->flags & US_CONTROL)) {
- if (us->ppa)
- us = us->ppa;
- else
- break;
- }
- ((struct iocblk_in *)iop)->ioc_ifflags = us->ifflags;
- error = 0;
- break;
-
- case SIOCSIFFLAGS:
- if (!(us->flags & US_CONTROL)) {
- if (us->ppa)
- us = us->ppa;
- else
- break;
- }
- us->ifflags = ((struct iocblk_in *)iop)->ioc_ifflags;
- error = 0;
- break;
-
- case SIOCSIFADDR:
- if (!(us->flags & US_CONTROL)) {
- if (us->ppa)
- us = us->ppa;
- else
- break;
- }
- us->ifflags |= IFF_RUNNING;
- ((struct iocblk_in *)iop)->ioc_ifflags |= IFF_RUNNING;
- error = 0;
- break;
-
- case SIOCSIFMTU:
- /*
- * Vanilla SVR4 systems don't handle SIOCSIFMTU, rather
- * they take the MTU from the DL_INFO_ACK we sent in response
- * to their DL_INFO_REQ. Fortunately, they will update the
- * MTU if we send an unsolicited DL_INFO_ACK up.
- */
- if ((mq = allocb(sizeof(dl_info_req_t), BPRI_HI)) == 0)
- break; /* should do bufcall */
- ((union DL_primitives *)mq->b_rptr)->dl_primitive = DL_INFO_REQ;
- mq->b_wptr = mq->b_rptr + sizeof(dl_info_req_t);
- dlpi_request(q, mq, us);
- error = 0;
- break;
-
- case SIOCGIFNETMASK:
- case SIOCSIFNETMASK:
- case SIOCGIFADDR:
- case SIOCGIFDSTADDR:
- case SIOCSIFDSTADDR:
- case SIOCGIFMETRIC:
- error = 0;
- break;
-#endif /* LACHTCP */
-
- default:
- if (us->ppa == 0 || us->ppa->lowerq == 0)
- break;
- us->ioc_id = iop->ioc_id;
- error = -1;
- switch (iop->ioc_cmd) {
- case PPPIO_GETSTAT:
- case PPPIO_GETCSTAT:
- if (us->flags & US_LASTMOD) {
- error = EINVAL;
- break;
- }
- putnext(us->ppa->lowerq, mp);
- break;
- default:
- if (us->flags & US_PRIV)
- putnext(us->ppa->lowerq, mp);
- else {
- DPRINT1("ppp ioctl %x rejected\n", iop->ioc_cmd);
- error = EPERM;
- }
- break;
- }
- break;
- }
-
- if (error > 0) {
- iop->ioc_error = error;
- mp->b_datap->db_type = M_IOCNAK;
- qreply(q, mp);
- } else if (error == 0) {
- mp->b_datap->db_type = M_IOCACK;
- qreply(q, mp);
- }
- break;
-
- case M_FLUSH:
- if (us->flags & US_DBGLOG)
- DPRINT2("ppp/%d: flush %x\n", us->mn, *mp->b_rptr);
- if (*mp->b_rptr & FLUSHW)
- flushq(q, FLUSHDATA);
- if (*mp->b_rptr & FLUSHR) {
- *mp->b_rptr &= ~FLUSHW;
- qreply(q, mp);
- } else
- freemsg(mp);
- break;
-
- default:
- freemsg(mp);
- break;
- }
- return 0;
-}
-
-#ifndef NO_DLPI
-static void
-dlpi_request(q, mp, us)
- queue_t *q;
- mblk_t *mp;
- upperstr_t *us;
-{
- union DL_primitives *d = (union DL_primitives *) mp->b_rptr;
- int size = mp->b_wptr - mp->b_rptr;
- mblk_t *reply, *np;
- upperstr_t *ppa, *os;
- int sap, len;
- dl_info_ack_t *info;
- dl_bind_ack_t *ackp;
-#if DL_CURRENT_VERSION >= 2
- dl_phys_addr_ack_t *paddrack;
- static struct ether_addr eaddr = {0};
-#endif
-
- if (us->flags & US_DBGLOG)
- DPRINT3("ppp/%d: dlpi prim %x len=%d\n", us->mn,
- d->dl_primitive, size);
- switch (d->dl_primitive) {
- case DL_INFO_REQ:
- if (size < sizeof(dl_info_req_t))
- goto badprim;
- if ((reply = allocb(sizeof(dl_info_ack_t), BPRI_HI)) == 0)
- break; /* should do bufcall */
- reply->b_datap->db_type = M_PCPROTO;
- info = (dl_info_ack_t *) reply->b_wptr;
- reply->b_wptr += sizeof(dl_info_ack_t);
- bzero((caddr_t) info, sizeof(dl_info_ack_t));
- info->dl_primitive = DL_INFO_ACK;
- info->dl_max_sdu = us->ppa? us->ppa->mtu: PPP_MAXMTU;
- info->dl_min_sdu = 1;
- info->dl_addr_length = sizeof(uint);
- info->dl_mac_type = DL_ETHER; /* a bigger lie */
- info->dl_current_state = us->state;
- info->dl_service_mode = DL_CLDLS;
- info->dl_provider_style = DL_STYLE2;
-#if DL_CURRENT_VERSION >= 2
- info->dl_sap_length = sizeof(uint);
- info->dl_version = DL_CURRENT_VERSION;
-#endif
- qreply(q, reply);
- break;
-
- case DL_ATTACH_REQ:
- if (size < sizeof(dl_attach_req_t))
- goto badprim;
- if (us->state != DL_UNATTACHED || us->ppa != 0) {
- dlpi_error(q, us, DL_ATTACH_REQ, DL_OUTSTATE, 0);
- break;
- }
- for (ppa = ppas; ppa != 0; ppa = ppa->nextppa)
- if (ppa->ppa_id == d->attach_req.dl_ppa)
- break;
- if (ppa == 0) {
- dlpi_error(q, us, DL_ATTACH_REQ, DL_BADPPA, 0);
- break;
- }
- us->ppa = ppa;
- qwriter(q, mp, attach_ppa, PERIM_OUTER);
- return;
-
- case DL_DETACH_REQ:
- if (size < sizeof(dl_detach_req_t))
- goto badprim;
- if (us->state != DL_UNBOUND || us->ppa == 0) {
- dlpi_error(q, us, DL_DETACH_REQ, DL_OUTSTATE, 0);
- break;
- }
- qwriter(q, mp, detach_ppa, PERIM_OUTER);
- return;
-
- case DL_BIND_REQ:
- if (size < sizeof(dl_bind_req_t))
- goto badprim;
- if (us->state != DL_UNBOUND || us->ppa == 0) {
- dlpi_error(q, us, DL_BIND_REQ, DL_OUTSTATE, 0);
- break;
- }
-#if 0
- /* apparently this test fails (unnecessarily?) on some systems */
- if (d->bind_req.dl_service_mode != DL_CLDLS) {
- dlpi_error(q, us, DL_BIND_REQ, DL_UNSUPPORTED, 0);
- break;
- }
-#endif
-
- /* saps must be valid PPP network protocol numbers,
- except that we accept ETHERTYPE_IP in place of PPP_IP. */
- sap = d->bind_req.dl_sap;
- us->req_sap = sap;
-
-#if defined(SOL2)
- if (us->flags & US_DBGLOG)
- DPRINT2("DL_BIND_REQ: ip gives sap = 0x%x, us = 0x%x", sap, us);
-
- if (sap == ETHERTYPE_IP) /* normal IFF_IPV4 */
- sap = PPP_IP;
- else if (sap == ETHERTYPE_IPV6) /* when IFF_IPV6 is set */
- sap = PPP_IPV6;
- else if (sap == ETHERTYPE_ALLSAP) /* snoop gives sap of 0 */
- sap = PPP_ALLSAP;
- else {
- DPRINT2("DL_BIND_REQ: unrecognized sap = 0x%x, us = 0x%x", sap, us);
- dlpi_error(q, us, DL_BIND_REQ, DL_BADADDR, 0);
- break;
- }
-#else
- if (sap == ETHERTYPE_IP)
- sap = PPP_IP;
- if (sap < 0x21 || sap > 0x3fff || (sap & 0x101) != 1) {
- dlpi_error(q, us, DL_BIND_REQ, DL_BADADDR, 0);
- break;
- }
-#endif /* defined(SOL2) */
-
- /* check that no other stream is bound to this sap already. */
- for (os = us->ppa; os != 0; os = os->next)
- if (os->sap == sap)
- break;
- if (os != 0) {
- dlpi_error(q, us, DL_BIND_REQ, DL_NOADDR, 0);
- break;
- }
-
- us->sap = sap;
- us->state = DL_IDLE;
-
- if ((reply = allocb(sizeof(dl_bind_ack_t) + sizeof(uint),
- BPRI_HI)) == 0)
- break; /* should do bufcall */
- ackp = (dl_bind_ack_t *) reply->b_wptr;
- reply->b_wptr += sizeof(dl_bind_ack_t) + sizeof(uint);
- reply->b_datap->db_type = M_PCPROTO;
- bzero((caddr_t) ackp, sizeof(dl_bind_ack_t));
- ackp->dl_primitive = DL_BIND_ACK;
- ackp->dl_sap = sap;
- ackp->dl_addr_length = sizeof(uint);
- ackp->dl_addr_offset = sizeof(dl_bind_ack_t);
- *(uint *)(ackp+1) = sap;
- qreply(q, reply);
- break;
-
- case DL_UNBIND_REQ:
- if (size < sizeof(dl_unbind_req_t))
- goto badprim;
- if (us->state != DL_IDLE) {
- dlpi_error(q, us, DL_UNBIND_REQ, DL_OUTSTATE, 0);
- break;
- }
- us->sap = -1;
- us->state = DL_UNBOUND;
-#ifdef LACHTCP
- us->ppa->ifstats.ifs_active = 0;
-#endif
- dlpi_ok(q, DL_UNBIND_REQ);
- break;
-
- case DL_UNITDATA_REQ:
- if (size < sizeof(dl_unitdata_req_t))
- goto badprim;
- if (us->state != DL_IDLE) {
- dlpi_error(q, us, DL_UNITDATA_REQ, DL_OUTSTATE, 0);
- break;
- }
- if ((ppa = us->ppa) == 0) {
- cmn_err(CE_CONT, "ppp: in state dl_idle but ppa == 0?\n");
- break;
- }
- len = mp->b_cont == 0? 0: msgdsize(mp->b_cont);
- if (len > ppa->mtu) {
- DPRINT2("dlpi data too large (%d > %d)\n", len, ppa->mtu);
- break;
- }
-
-#if defined(SOL2)
- /*
- * Should there be any promiscuous stream(s), send the data
- * up for each promiscuous stream that we recognize.
- */
- if (mp->b_cont)
- promisc_sendup(ppa, mp->b_cont, us->sap, 0);
-#endif /* defined(SOL2) */
-
- mp->b_band = 0;
-#ifdef PRIOQ
- /* Extract s_port & d_port from IP-packet, the code is a bit
- dirty here, but so am I, too... */
- if (mp->b_datap->db_type == M_PROTO && us->sap == PPP_IP
- && mp->b_cont != 0) {
- u_char *bb, *tlh;
- int iphlen, len;
- u_short *ptr;
- u_char band_unset, cur_band, syn;
- u_short s_port, d_port;
-
- bb = mp->b_cont->b_rptr; /* bb points to IP-header*/
- len = mp->b_cont->b_wptr - mp->b_cont->b_rptr;
- syn = 0;
- s_port = IPPORT_DEFAULT;
- d_port = IPPORT_DEFAULT;
- if (len >= 20) { /* 20 = minimum length of IP header */
- iphlen = (bb[0] & 0x0f) * 4;
- tlh = bb + iphlen;
- len -= iphlen;
- switch (bb[9]) {
- case IPPROTO_TCP:
- if (len >= 20) { /* min length of TCP header */
- s_port = (tlh[0] << 8) + tlh[1];
- d_port = (tlh[2] << 8) + tlh[3];
- syn = tlh[13] & 0x02;
- }
- break;
- case IPPROTO_UDP:
- if (len >= 8) { /* min length of UDP header */
- s_port = (tlh[0] << 8) + tlh[1];
- d_port = (tlh[2] << 8) + tlh[3];
- }
- break;
- }
- }
-
- /*
- * Now calculate b_band for this packet from the
- * port-priority table.
- */
- ptr = prioq_table;
- cur_band = max_band;
- band_unset = 1;
- while (*ptr) {
- while (*ptr && band_unset)
- if (s_port == *ptr || d_port == *ptr++) {
- mp->b_band = cur_band;
- band_unset = 0;
- break;
- }
- ptr++;
- cur_band--;
- }
- if (band_unset)
- mp->b_band = def_band;
- /* It may be usable to urge SYN packets a bit */
- if (syn)
- mp->b_band++;
- }
-#endif /* PRIOQ */
- /* this assumes PPP_HDRLEN <= sizeof(dl_unitdata_req_t) */
- if (mp->b_datap->db_ref > 1) {
- np = allocb(PPP_HDRLEN, BPRI_HI);
- if (np == 0)
- break; /* gak! */
- np->b_cont = mp->b_cont;
- mp->b_cont = 0;
- freeb(mp);
- mp = np;
- } else
- mp->b_datap->db_type = M_DATA;
- /* XXX should use dl_dest_addr_offset/length here,
- but we would have to translate ETHERTYPE_IP -> PPP_IP */
- mp->b_wptr = mp->b_rptr + PPP_HDRLEN;
- mp->b_rptr[0] = PPP_ALLSTATIONS;
- mp->b_rptr[1] = PPP_UI;
- mp->b_rptr[2] = us->sap >> 8;
- mp->b_rptr[3] = us->sap;
- if (pass_packet(us, mp, 1)) {
- if (!send_data(mp, us))
- putq(q, mp);
- }
- return;
-
-#if DL_CURRENT_VERSION >= 2
- case DL_PHYS_ADDR_REQ:
- if (size < sizeof(dl_phys_addr_req_t))
- goto badprim;
-
- /*
- * Don't check state because ifconfig sends this one down too
- */
-
- if ((reply = allocb(sizeof(dl_phys_addr_ack_t)+ETHERADDRL,
- BPRI_HI)) == 0)
- break; /* should do bufcall */
- reply->b_datap->db_type = M_PCPROTO;
- paddrack = (dl_phys_addr_ack_t *) reply->b_wptr;
- reply->b_wptr += sizeof(dl_phys_addr_ack_t);
- bzero((caddr_t) paddrack, sizeof(dl_phys_addr_ack_t)+ETHERADDRL);
- paddrack->dl_primitive = DL_PHYS_ADDR_ACK;
- paddrack->dl_addr_length = ETHERADDRL;
- paddrack->dl_addr_offset = sizeof(dl_phys_addr_ack_t);
- bcopy(&eaddr, reply->b_wptr, ETHERADDRL);
- reply->b_wptr += ETHERADDRL;
- qreply(q, reply);
- break;
-
-#if defined(SOL2)
- case DL_PROMISCON_REQ:
- if (size < sizeof(dl_promiscon_req_t))
- goto badprim;
- us->flags |= US_PROMISC;
- dlpi_ok(q, DL_PROMISCON_REQ);
- break;
-
- case DL_PROMISCOFF_REQ:
- if (size < sizeof(dl_promiscoff_req_t))
- goto badprim;
- us->flags &= ~US_PROMISC;
- dlpi_ok(q, DL_PROMISCOFF_REQ);
- break;
-#else
- case DL_PROMISCON_REQ: /* fall thru */
- case DL_PROMISCOFF_REQ: /* fall thru */
-#endif /* defined(SOL2) */
-#endif /* DL_CURRENT_VERSION >= 2 */
-
-#if DL_CURRENT_VERSION >= 2
- case DL_SET_PHYS_ADDR_REQ:
- case DL_SUBS_BIND_REQ:
- case DL_SUBS_UNBIND_REQ:
- case DL_ENABMULTI_REQ:
- case DL_DISABMULTI_REQ:
- case DL_XID_REQ:
- case DL_TEST_REQ:
- case DL_REPLY_UPDATE_REQ:
- case DL_REPLY_REQ:
- case DL_DATA_ACK_REQ:
-#endif
- case DL_CONNECT_REQ:
- case DL_TOKEN_REQ:
- dlpi_error(q, us, d->dl_primitive, DL_NOTSUPPORTED, 0);
- break;
-
- case DL_CONNECT_RES:
- case DL_DISCONNECT_REQ:
- case DL_RESET_REQ:
- case DL_RESET_RES:
- dlpi_error(q, us, d->dl_primitive, DL_OUTSTATE, 0);
- break;
-
- case DL_UDQOS_REQ:
- dlpi_error(q, us, d->dl_primitive, DL_BADQOSTYPE, 0);
- break;
-
-#if DL_CURRENT_VERSION >= 2
- case DL_TEST_RES:
- case DL_XID_RES:
- break;
-#endif
-
- default:
- cmn_err(CE_CONT, "ppp: unknown dlpi prim 0x%x\n", d->dl_primitive);
- /* fall through */
- badprim:
- dlpi_error(q, us, d->dl_primitive, DL_BADPRIM, 0);
- break;
- }
- freemsg(mp);
-}
-
-static void
-dlpi_error(q, us, prim, err, uerr)
- queue_t *q;
- upperstr_t *us;
- int prim, err, uerr;
-{
- mblk_t *reply;
- dl_error_ack_t *errp;
-
- if (us->flags & US_DBGLOG)
- DPRINT3("ppp/%d: dlpi error, prim=%x, err=%x\n", us->mn, prim, err);
- reply = allocb(sizeof(dl_error_ack_t), BPRI_HI);
- if (reply == 0)
- return; /* XXX should do bufcall */
- reply->b_datap->db_type = M_PCPROTO;
- errp = (dl_error_ack_t *) reply->b_wptr;
- reply->b_wptr += sizeof(dl_error_ack_t);
- errp->dl_primitive = DL_ERROR_ACK;
- errp->dl_error_primitive = prim;
- errp->dl_errno = err;
- errp->dl_unix_errno = uerr;
- qreply(q, reply);
-}
-
-static void
-dlpi_ok(q, prim)
- queue_t *q;
- int prim;
-{
- mblk_t *reply;
- dl_ok_ack_t *okp;
-
- reply = allocb(sizeof(dl_ok_ack_t), BPRI_HI);
- if (reply == 0)
- return; /* XXX should do bufcall */
- reply->b_datap->db_type = M_PCPROTO;
- okp = (dl_ok_ack_t *) reply->b_wptr;
- reply->b_wptr += sizeof(dl_ok_ack_t);
- okp->dl_primitive = DL_OK_ACK;
- okp->dl_correct_primitive = prim;
- qreply(q, reply);
-}
-#endif /* NO_DLPI */
-
-static int
-pass_packet(us, mp, outbound)
- upperstr_t *us;
- mblk_t *mp;
- int outbound;
-{
- int pass;
- upperstr_t *ppa;
-
- if ((ppa = us->ppa) == 0) {
- freemsg(mp);
- return 0;
- }
-
-#ifdef FILTER_PACKETS
- pass = ip_hard_filter(us, mp, outbound);
-#else
- /*
- * Here is where we might, in future, decide whether to pass
- * or drop the packet, and whether it counts as link activity.
- */
- pass = 1;
-#endif /* FILTER_PACKETS */
-
- if (pass < 0) {
- /* pass only if link already up, and don't update time */
- if (ppa->lowerq == 0) {
- freemsg(mp);
- return 0;
- }
- pass = 1;
- } else if (pass) {
- if (outbound)
- ppa->last_sent = time;
- else
- ppa->last_recv = time;
- }
-
- return pass;
-}
-
-/*
- * We have some data to send down to the lower stream (or up the
- * control stream, if we don't have a lower stream attached).
- * Returns 1 if the message was dealt with, 0 if it wasn't able
- * to be sent on and should therefore be queued up.
- */
-static int
-send_data(mp, us)
- mblk_t *mp;
- upperstr_t *us;
-{
- upperstr_t *ppa;
-
- if ((us->flags & US_BLOCKED) || us->npmode == NPMODE_QUEUE)
- return 0;
- ppa = us->ppa;
- if (ppa == 0 || us->npmode == NPMODE_DROP || us->npmode == NPMODE_ERROR) {
- if (us->flags & US_DBGLOG)
- DPRINT2("ppp/%d: dropping pkt (npmode=%d)\n", us->mn, us->npmode);
- freemsg(mp);
- return 1;
- }
- if (ppa->lowerq == 0) {
- /* try to send it up the control stream */
- if (bcanputnext(ppa->q, mp->b_band)) {
- /*
- * The message seems to get corrupted for some reason if
- * we just send the message up as it is, so we send a copy.
- */
- mblk_t *np = copymsg(mp);
- freemsg(mp);
- if (np != 0)
- putnext(ppa->q, np);
- return 1;
- }
- } else {
- if (bcanputnext(ppa->lowerq, mp->b_band)) {
- MT_ENTER(&ppa->stats_lock);
- ppa->stats.ppp_opackets++;
- ppa->stats.ppp_obytes += msgdsize(mp);
-#ifdef INCR_OPACKETS
- INCR_OPACKETS(ppa);
-#endif
- MT_EXIT(&ppa->stats_lock);
- /*
- * The lower queue is only ever detached while holding an
- * exclusive lock on the whole driver. So we can be confident
- * that the lower queue is still there.
- */
- putnext(ppa->lowerq, mp);
- return 1;
- }
- }
- us->flags |= US_BLOCKED;
- return 0;
-}
-
-/*
- * Allocate a new PPA id and link this stream into the list of PPAs.
- * This procedure is called with an exclusive lock on all queues in
- * this driver.
- */
-static void
-new_ppa(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- upperstr_t *us, *up, **usp;
- int ppa_id;
-
- us = (upperstr_t *) q->q_ptr;
- if (us == 0) {
- DPRINT("new_ppa: q_ptr = 0!\n");
- return;
- }
-
- usp = &ppas;
- ppa_id = 0;
- while ((up = *usp) != 0 && ppa_id == up->ppa_id) {
- ++ppa_id;
- usp = &up->nextppa;
- }
- us->ppa_id = ppa_id;
- us->ppa = us;
- us->next = 0;
- us->nextppa = *usp;
- *usp = us;
- us->flags |= US_CONTROL;
- us->npmode = NPMODE_PASS;
-
- us->mtu = PPP_MTU;
- us->mru = PPP_MRU;
-
-#ifdef SOL2
- /*
- * Create a kstats record for our statistics, so netstat -i works.
- */
- if (us->kstats == 0) {
- char unit[32];
-
- sprintf(unit, "ppp%d", us->ppa->ppa_id);
- us->kstats = kstat_create("ppp", us->ppa->ppa_id, unit,
- "net", KSTAT_TYPE_NAMED, 4, 0);
- if (us->kstats != 0) {
- kstat_named_t *kn = KSTAT_NAMED_PTR(us->kstats);
-
- strcpy(kn[0].name, "ipackets");
- kn[0].data_type = KSTAT_DATA_ULONG;
- strcpy(kn[1].name, "ierrors");
- kn[1].data_type = KSTAT_DATA_ULONG;
- strcpy(kn[2].name, "opackets");
- kn[2].data_type = KSTAT_DATA_ULONG;
- strcpy(kn[3].name, "oerrors");
- kn[3].data_type = KSTAT_DATA_ULONG;
- kstat_install(us->kstats);
- }
- }
-#endif /* SOL2 */
-
- *(int *)mp->b_cont->b_rptr = ppa_id;
- mp->b_datap->db_type = M_IOCACK;
- qreply(q, mp);
-}
-
-static void
-attach_ppa(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- upperstr_t *us, *t;
-
- us = (upperstr_t *) q->q_ptr;
- if (us == 0) {
- DPRINT("attach_ppa: q_ptr = 0!\n");
- return;
- }
-
-#ifndef NO_DLPI
- us->state = DL_UNBOUND;
-#endif
- for (t = us->ppa; t->next != 0; t = t->next)
- ;
- t->next = us;
- us->next = 0;
- if (mp->b_datap->db_type == M_IOCTL) {
- mp->b_datap->db_type = M_IOCACK;
- qreply(q, mp);
- } else {
-#ifndef NO_DLPI
- dlpi_ok(q, DL_ATTACH_REQ);
-#endif
- }
-}
-
-static void
-detach_ppa(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- upperstr_t *us, *t;
-
- us = (upperstr_t *) q->q_ptr;
- if (us == 0) {
- DPRINT("detach_ppa: q_ptr = 0!\n");
- return;
- }
-
- for (t = us->ppa; t->next != 0; t = t->next)
- if (t->next == us) {
- t->next = us->next;
- break;
- }
- us->next = 0;
- us->ppa = 0;
-#ifndef NO_DLPI
- us->state = DL_UNATTACHED;
- dlpi_ok(q, DL_DETACH_REQ);
-#endif
-}
-
-/*
- * We call this with qwriter in order to give the upper queue procedures
- * the guarantee that the lower queue is not going to go away while
- * they are executing.
- */
-static void
-detach_lower(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- upperstr_t *us;
-
- us = (upperstr_t *) q->q_ptr;
- if (us == 0) {
- DPRINT("detach_lower: q_ptr = 0!\n");
- return;
- }
-
- LOCK_LOWER_W;
- us->lowerq->q_ptr = 0;
- RD(us->lowerq)->q_ptr = 0;
- us->lowerq = 0;
- UNLOCK_LOWER;
-
- /* Unblock streams which now feed back up the control stream. */
- qenable(us->q);
-
- mp->b_datap->db_type = M_IOCACK;
- qreply(q, mp);
-}
-
-static int
-pppuwsrv(q)
- queue_t *q;
-{
- upperstr_t *us, *as;
- mblk_t *mp;
-
- us = (upperstr_t *) q->q_ptr;
- if (us == 0) {
- DPRINT("pppuwsrv: q_ptr = 0!\n");
- return 0;
- }
-
- /*
- * If this is a control stream, then this service procedure
- * probably got enabled because of flow control in the lower
- * stream being enabled (or because of the lower stream going
- * away). Therefore we enable the service procedure of all
- * attached upper streams.
- */
- if (us->flags & US_CONTROL) {
- for (as = us->next; as != 0; as = as->next)
- qenable(WR(as->q));
- }
-
- /* Try to send on any data queued here. */
- us->flags &= ~US_BLOCKED;
- while ((mp = getq(q)) != 0) {
- if (!send_data(mp, us)) {
- putbq(q, mp);
- break;
- }
- }
-
- return 0;
-}
-
-/* should never get called... */
-static int
-ppplwput(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- putnext(q, mp);
- return 0;
-}
-
-static int
-ppplwsrv(q)
- queue_t *q;
-{
- queue_t *uq;
-
- /*
- * Flow control has back-enabled this stream:
- * enable the upper write service procedure for
- * the upper control stream for this lower stream.
- */
- LOCK_LOWER_R;
- uq = (queue_t *) q->q_ptr;
- if (uq != 0)
- qenable(uq);
- UNLOCK_LOWER;
- return 0;
-}
-
-/*
- * This should only get called for control streams.
- */
-static int
-pppurput(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- upperstr_t *ppa, *us;
- int proto, len;
- struct iocblk *iop;
-
- ppa = (upperstr_t *) q->q_ptr;
- if (ppa == 0) {
- DPRINT("pppurput: q_ptr = 0!\n");
- return 0;
- }
-
- switch (mp->b_datap->db_type) {
- case M_CTL:
- MT_ENTER(&ppa->stats_lock);
- switch (*mp->b_rptr) {
- case PPPCTL_IERROR:
-#ifdef INCR_IERRORS
- INCR_IERRORS(ppa);
-#endif
- ppa->stats.ppp_ierrors++;
- break;
- case PPPCTL_OERROR:
-#ifdef INCR_OERRORS
- INCR_OERRORS(ppa);
-#endif
- ppa->stats.ppp_oerrors++;
- break;
- }
- MT_EXIT(&ppa->stats_lock);
- freemsg(mp);
- break;
-
- case M_IOCACK:
- case M_IOCNAK:
- /*
- * Attempt to match up the response with the stream
- * that the request came from.
- */
- iop = (struct iocblk *) mp->b_rptr;
- for (us = ppa; us != 0; us = us->next)
- if (us->ioc_id == iop->ioc_id)
- break;
- if (us == 0)
- freemsg(mp);
- else
- putnext(us->q, mp);
- break;
-
- case M_HANGUP:
- /*
- * The serial device has hung up. We don't want to send
- * the M_HANGUP message up to pppd because that will stop
- * us from using the control stream any more. Instead we
- * send a zero-length message as an end-of-file indication.
- */
- freemsg(mp);
- mp = allocb(1, BPRI_HI);
- if (mp == 0) {
- DPRINT1("ppp/%d: couldn't allocate eof message!\n", ppa->mn);
- break;
- }
- putnext(ppa->q, mp);
- break;
-
- default:
- if (mp->b_datap->db_type == M_DATA) {
- len = msgdsize(mp);
- if (mp->b_wptr - mp->b_rptr < PPP_HDRLEN) {
- PULLUP(mp, PPP_HDRLEN);
- if (mp == 0) {
- DPRINT1("ppp_urput: msgpullup failed (len=%d)\n", len);
- break;
- }
- }
- MT_ENTER(&ppa->stats_lock);
- ppa->stats.ppp_ipackets++;
- ppa->stats.ppp_ibytes += len;
-#ifdef INCR_IPACKETS
- INCR_IPACKETS(ppa);
-#endif
- MT_EXIT(&ppa->stats_lock);
-
- proto = PPP_PROTOCOL(mp->b_rptr);
-
-#if defined(SOL2)
- /*
- * Should there be any promiscuous stream(s), send the data
- * up for each promiscuous stream that we recognize.
- */
- promisc_sendup(ppa, mp, proto, 1);
-#endif /* defined(SOL2) */
-
- if (proto < 0x8000 && (us = find_dest(ppa, proto)) != 0) {
- /*
- * A data packet for some network protocol.
- * Queue it on the upper stream for that protocol.
- * XXX could we just putnext it? (would require thought)
- * The rblocked flag is there to ensure that we keep
- * messages in order for each network protocol.
- */
- if (!pass_packet(us, mp, 0))
- break;
- if (!us->rblocked && !canput(us->q))
- us->rblocked = 1;
- if (!us->rblocked)
- putq(us->q, mp);
- else
- putq(q, mp);
- break;
- }
- }
- /*
- * A control frame, a frame for an unknown protocol,
- * or some other message type.
- * Send it up to pppd via the control stream.
- */
- if (queclass(mp) == QPCTL || canputnext(ppa->q))
- putnext(ppa->q, mp);
- else
- putq(q, mp);
- break;
- }
-
- return 0;
-}
-
-static int
-pppursrv(q)
- queue_t *q;
-{
- upperstr_t *us, *as;
- mblk_t *mp, *hdr;
-#ifndef NO_DLPI
- dl_unitdata_ind_t *ud;
-#endif
- int proto;
-
- us = (upperstr_t *) q->q_ptr;
- if (us == 0) {
- DPRINT("pppursrv: q_ptr = 0!\n");
- return 0;
- }
-
- if (us->flags & US_CONTROL) {
- /*
- * A control stream.
- * If there is no lower queue attached, run the write service
- * routines of other upper streams attached to this PPA.
- */
- if (us->lowerq == 0) {
- as = us;
- do {
- if (as->flags & US_BLOCKED)
- qenable(WR(as->q));
- as = as->next;
- } while (as != 0);
- }
-
- /*
- * Messages get queued on this stream's read queue if they
- * can't be queued on the read queue of the attached stream
- * that they are destined for. This is for flow control -
- * when this queue fills up, the lower read put procedure will
- * queue messages there and the flow control will propagate
- * down from there.
- */
- while ((mp = getq(q)) != 0) {
- proto = PPP_PROTOCOL(mp->b_rptr);
- if (proto < 0x8000 && (as = find_dest(us, proto)) != 0) {
- if (!canput(as->q))
- break;
- putq(as->q, mp);
- } else {
- if (!canputnext(q))
- break;
- putnext(q, mp);
- }
- }
- if (mp) {
- putbq(q, mp);
- } else {
- /* can now put stuff directly on network protocol streams again */
- for (as = us->next; as != 0; as = as->next)
- as->rblocked = 0;
- }
-
- /*
- * If this stream has a lower stream attached,
- * enable the read queue's service routine.
- * XXX we should really only do this if the queue length
- * has dropped below the low-water mark.
- */
- if (us->lowerq != 0)
- qenable(RD(us->lowerq));
-
- } else {
- /*
- * A network protocol stream. Put a DLPI header on each
- * packet and send it on.
- * (Actually, it seems that the IP module will happily
- * accept M_DATA messages without the DL_UNITDATA_IND header.)
- */
- while ((mp = getq(q)) != 0) {
- if (!canputnext(q)) {
- putbq(q, mp);
- break;
- }
-#ifndef NO_DLPI
- proto = PPP_PROTOCOL(mp->b_rptr);
- mp->b_rptr += PPP_HDRLEN;
- hdr = allocb(sizeof(dl_unitdata_ind_t) + 2 * sizeof(uint),
- BPRI_MED);
- if (hdr == 0) {
- /* XXX should put it back and use bufcall */
- freemsg(mp);
- continue;
- }
- hdr->b_datap->db_type = M_PROTO;
- ud = (dl_unitdata_ind_t *) hdr->b_wptr;
- hdr->b_wptr += sizeof(dl_unitdata_ind_t) + 2 * sizeof(uint);
- hdr->b_cont = mp;
- ud->dl_primitive = DL_UNITDATA_IND;
- ud->dl_dest_addr_length = sizeof(uint);
- ud->dl_dest_addr_offset = sizeof(dl_unitdata_ind_t);
- ud->dl_src_addr_length = sizeof(uint);
- ud->dl_src_addr_offset = ud->dl_dest_addr_offset + sizeof(uint);
-#if DL_CURRENT_VERSION >= 2
- ud->dl_group_address = 0;
-#endif
- /* Send the DLPI client the data with the SAP they requested,
- (e.g. ETHERTYPE_IP) rather than the PPP protocol number
- (e.g. PPP_IP) */
- ((uint *)(ud + 1))[0] = us->req_sap; /* dest SAP */
- ((uint *)(ud + 1))[1] = us->req_sap; /* src SAP */
- putnext(q, hdr);
-#else /* NO_DLPI */
- putnext(q, mp);
-#endif /* NO_DLPI */
- }
- /*
- * Now that we have consumed some packets from this queue,
- * enable the control stream's read service routine so that we
- * can process any packets for us that might have got queued
- * there for flow control reasons.
- */
- if (us->ppa)
- qenable(us->ppa->q);
- }
-
- return 0;
-}
-
-static upperstr_t *
-find_dest(ppa, proto)
- upperstr_t *ppa;
- int proto;
-{
- upperstr_t *us;
-
- for (us = ppa->next; us != 0; us = us->next)
- if (proto == us->sap)
- break;
- return us;
-}
-
-#if defined (SOL2)
-/*
- * Test upstream promiscuous conditions. As of now, only pass IPv4 and
- * Ipv6 packets upstream (let PPP packets be decoded elsewhere).
- */
-static upperstr_t *
-find_promisc(us, proto)
- upperstr_t *us;
- int proto;
-{
-
- if ((proto != PPP_IP) && (proto != PPP_IPV6))
- return (upperstr_t *)0;
-
- for ( ; us; us = us->next) {
- if ((us->flags & US_PROMISC) && (us->state == DL_IDLE))
- return us;
- }
-
- return (upperstr_t *)0;
-}
-
-/*
- * Prepend an empty Ethernet header to msg for snoop, et al.
- */
-static mblk_t *
-prepend_ether(us, mp, proto)
- upperstr_t *us;
- mblk_t *mp;
- int proto;
-{
- mblk_t *eh;
- int type;
-
- if ((eh = allocb(sizeof(struct ether_header), BPRI_HI)) == 0) {
- freemsg(mp);
- return (mblk_t *)0;
- }
-
- if (proto == PPP_IP)
- type = ETHERTYPE_IP;
- else if (proto == PPP_IPV6)
- type = ETHERTYPE_IPV6;
- else
- type = proto; /* What else? Let decoder decide */
-
- eh->b_wptr += sizeof(struct ether_header);
- bzero((caddr_t)eh->b_rptr, sizeof(struct ether_header));
- ((struct ether_header *)eh->b_rptr)->ether_type = htons((short)type);
- eh->b_cont = mp;
- return (eh);
-}
-
-/*
- * Prepend DL_UNITDATA_IND mblk to msg
- */
-static mblk_t *
-prepend_udind(us, mp, proto)
- upperstr_t *us;
- mblk_t *mp;
- int proto;
-{
- dl_unitdata_ind_t *dlu;
- mblk_t *dh;
- size_t size;
-
- size = sizeof(dl_unitdata_ind_t);
- if ((dh = allocb(size, BPRI_MED)) == 0) {
- freemsg(mp);
- return (mblk_t *)0;
- }
-
- dh->b_datap->db_type = M_PROTO;
- dh->b_wptr = dh->b_datap->db_lim;
- dh->b_rptr = dh->b_wptr - size;
-
- dlu = (dl_unitdata_ind_t *)dh->b_rptr;
- dlu->dl_primitive = DL_UNITDATA_IND;
- dlu->dl_dest_addr_length = 0;
- dlu->dl_dest_addr_offset = sizeof(dl_unitdata_ind_t);
- dlu->dl_src_addr_length = 0;
- dlu->dl_src_addr_offset = sizeof(dl_unitdata_ind_t);
- dlu->dl_group_address = 0;
-
- dh->b_cont = mp;
- return (dh);
-}
-
-/*
- * For any recognized promiscuous streams, send data upstream
- */
-static void
-promisc_sendup(ppa, mp, proto, skip)
- upperstr_t *ppa;
- mblk_t *mp;
- int proto, skip;
-{
- mblk_t *dup_mp, *dup_dup_mp;
- upperstr_t *prus, *nprus;
-
- if ((prus = find_promisc(ppa, proto)) != 0) {
- if (dup_mp = dupmsg(mp)) {
-
- if (skip)
- dup_mp->b_rptr += PPP_HDRLEN;
-
- for ( ; nprus = find_promisc(prus->next, proto);
- prus = nprus) {
-
- if (dup_dup_mp = dupmsg(dup_mp)) {
- if (canputnext(prus->q)) {
- if (prus->flags & US_RAWDATA) {
- dup_dup_mp = prepend_ether(prus, dup_dup_mp, proto);
- putnext(prus->q, dup_dup_mp);
- } else {
- dup_dup_mp = prepend_udind(prus, dup_dup_mp, proto);
- putnext(prus->q, dup_dup_mp);
- }
- } else {
- DPRINT("ppp_urput: data to promisc q dropped\n");
- freemsg(dup_dup_mp);
- }
- }
- }
-
- if (canputnext(prus->q)) {
- if (prus->flags & US_RAWDATA) {
- dup_mp = prepend_ether(prus, dup_mp, proto);
- putnext(prus->q, dup_mp);
- } else {
- dup_mp = prepend_udind(prus, dup_mp, proto);
- putnext(prus->q, dup_mp);
- }
- } else {
- DPRINT("ppp_urput: data to promisc q dropped\n");
- freemsg(dup_mp);
- }
- }
- }
-}
-#endif /* defined(SOL2) */
-
-/*
- * We simply put the message on to the associated upper control stream
- * (either here or in ppplrsrv). That way we enter the perimeters
- * before looking through the list of attached streams to decide which
- * stream it should go up.
- */
-static int
-ppplrput(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- queue_t *uq;
- struct iocblk *iop;
-
- switch (mp->b_datap->db_type) {
- case M_IOCTL:
- iop = (struct iocblk *) mp->b_rptr;
- iop->ioc_error = EINVAL;
- mp->b_datap->db_type = M_IOCNAK;
- qreply(q, mp);
- return 0;
- case M_FLUSH:
- if (*mp->b_rptr & FLUSHR)
- flushq(q, FLUSHDATA);
- if (*mp->b_rptr & FLUSHW) {
- *mp->b_rptr &= ~FLUSHR;
- qreply(q, mp);
- } else
- freemsg(mp);
- return 0;
- }
-
- /*
- * If we can't get the lower lock straight away, queue this one
- * rather than blocking, to avoid the possibility of deadlock.
- */
- if (!TRYLOCK_LOWER_R) {
- putq(q, mp);
- return 0;
- }
-
- /*
- * Check that we're still connected to the driver.
- */
- uq = (queue_t *) q->q_ptr;
- if (uq == 0) {
- UNLOCK_LOWER;
- DPRINT1("ppplrput: q = %x, uq = 0??\n", q);
- freemsg(mp);
- return 0;
- }
-
- /*
- * Try to forward the message to the put routine for the upper
- * control stream for this lower stream.
- * If there are already messages queued here, queue this one so
- * they don't get out of order.
- */
- if (queclass(mp) == QPCTL || (qsize(q) == 0 && canput(uq)))
- put(uq, mp);
- else
- putq(q, mp);
-
- UNLOCK_LOWER;
- return 0;
-}
-
-static int
-ppplrsrv(q)
- queue_t *q;
-{
- mblk_t *mp;
- queue_t *uq;
-
- /*
- * Packets get queued here for flow control reasons
- * or if the lrput routine couldn't get the lower lock
- * without blocking.
- */
- LOCK_LOWER_R;
- uq = (queue_t *) q->q_ptr;
- if (uq == 0) {
- UNLOCK_LOWER;
- flushq(q, FLUSHALL);
- DPRINT1("ppplrsrv: q = %x, uq = 0??\n", q);
- return 0;
- }
- while ((mp = getq(q)) != 0) {
- if (queclass(mp) == QPCTL || canput(uq))
- put(uq, mp);
- else {
- putbq(q, mp);
- break;
- }
- }
- UNLOCK_LOWER;
- return 0;
-}
-
-static int
-putctl2(q, type, code, val)
- queue_t *q;
- int type, code, val;
-{
- mblk_t *mp;
-
- mp = allocb(2, BPRI_HI);
- if (mp == 0)
- return 0;
- mp->b_datap->db_type = type;
- mp->b_wptr[0] = code;
- mp->b_wptr[1] = val;
- mp->b_wptr += 2;
- putnext(q, mp);
- return 1;
-}
-
-static int
-putctl4(q, type, code, val)
- queue_t *q;
- int type, code, val;
-{
- mblk_t *mp;
-
- mp = allocb(4, BPRI_HI);
- if (mp == 0)
- return 0;
- mp->b_datap->db_type = type;
- mp->b_wptr[0] = code;
- ((short *)mp->b_wptr)[1] = val;
- mp->b_wptr += 4;
- putnext(q, mp);
- return 1;
-}
-
-static void
-debug_dump(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- upperstr_t *us;
- queue_t *uq, *lq;
-
- DPRINT("ppp upper streams:\n");
- for (us = minor_devs; us != 0; us = us->nextmn) {
- uq = us->q;
- DPRINT3(" %d: q=%x rlev=%d",
- us->mn, uq, (uq? qsize(uq): 0));
- DPRINT3(" wlev=%d flags=0x%b", (uq? qsize(WR(uq)): 0),
- us->flags, "\020\1priv\2control\3blocked\4last");
- DPRINT3(" state=%x sap=%x req_sap=%x", us->state, us->sap,
- us->req_sap);
- if (us->ppa == 0)
- DPRINT(" ppa=?\n");
- else
- DPRINT1(" ppa=%d\n", us->ppa->ppa_id);
- if (us->flags & US_CONTROL) {
- lq = us->lowerq;
- DPRINT3(" control for %d lq=%x rlev=%d",
- us->ppa_id, lq, (lq? qsize(RD(lq)): 0));
- DPRINT3(" wlev=%d mru=%d mtu=%d\n",
- (lq? qsize(lq): 0), us->mru, us->mtu);
- }
- }
- mp->b_datap->db_type = M_IOCACK;
- qreply(q, mp);
-}
-
-#ifdef FILTER_PACKETS
-#include <netinet/in_systm.h>
-#include <netinet/ip.h>
-#include <netinet/udp.h>
-#include <netinet/tcp.h>
-
-#define MAX_IPHDR 128 /* max TCP/IP header size */
-
-
-/* The following table contains a hard-coded list of protocol/port pairs.
- * Any matching packets are either discarded unconditionally, or,
- * if ok_if_link_up is non-zero when a connection does not currently exist
- * (i.e., they go through if the connection is present, but never initiate
- * a dial-out).
- * This idea came from a post by dm@garage.uun.org (David Mazieres)
- */
-static struct pktfilt_tab {
- int proto;
- u_short port;
- u_short ok_if_link_up;
-} pktfilt_tab[] = {
- { IPPROTO_UDP, 520, 1 }, /* RIP, ok to pass if link is up */
- { IPPROTO_UDP, 123, 1 }, /* NTP, don't keep up the link for it */
- { -1, 0, 0 } /* terminator entry has port == -1 */
-};
-
-
-static int
-ip_hard_filter(us, mp, outbound)
- upperstr_t *us;
- mblk_t *mp;
- int outbound;
-{
- struct ip *ip;
- struct pktfilt_tab *pft;
- mblk_t *temp_mp;
- int proto;
- int len, hlen;
-
-
- /* Note, the PPP header has already been pulled up in all cases */
- proto = PPP_PROTOCOL(mp->b_rptr);
- if (us->flags & US_DBGLOG)
- DPRINT3("ppp/%d: filter, proto=0x%x, out=%d\n", us->mn, proto, outbound);
-
- switch (proto)
- {
- case PPP_IP:
- if ((mp->b_wptr - mp->b_rptr) == PPP_HDRLEN && mp->b_cont != 0) {
- temp_mp = mp->b_cont;
- len = msgdsize(temp_mp);
- hlen = (len < MAX_IPHDR) ? len : MAX_IPHDR;
- PULLUP(temp_mp, hlen);
- if (temp_mp == 0) {
- DPRINT2("ppp/%d: filter, pullup next failed, len=%d\n",
- us->mn, hlen);
- mp->b_cont = 0; /* PULLUP() freed the rest */
- freemsg(mp);
- return 0;
- }
- ip = (struct ip *)mp->b_cont->b_rptr;
- }
- else {
- len = msgdsize(mp);
- hlen = (len < (PPP_HDRLEN+MAX_IPHDR)) ? len : (PPP_HDRLEN+MAX_IPHDR);
- PULLUP(mp, hlen);
- if (mp == 0) {
- DPRINT2("ppp/%d: filter, pullup failed, len=%d\n",
- us->mn, hlen);
- return 0;
- }
- ip = (struct ip *)(mp->b_rptr + PPP_HDRLEN);
- }
-
- /* For IP traffic, certain packets (e.g., RIP) may be either
- * 1. ignored - dropped completely
- * 2. will not initiate a connection, but
- * will be passed if a connection is currently up.
- */
- for (pft=pktfilt_tab; pft->proto != -1; pft++) {
- if (ip->ip_p == pft->proto) {
- switch(pft->proto) {
- case IPPROTO_UDP:
- if (((struct udphdr *) &((int *)ip)[ip->ip_hl])->uh_dport
- == htons(pft->port)) goto endfor;
- break;
- case IPPROTO_TCP:
- if (((struct tcphdr *) &((int *)ip)[ip->ip_hl])->th_dport
- == htons(pft->port)) goto endfor;
- break;
- }
- }
- }
- endfor:
- if (pft->proto != -1) {
- if (us->flags & US_DBGLOG)
- DPRINT3("ppp/%d: found IP pkt, proto=0x%x (%d)\n",
- us->mn, pft->proto, pft->port);
- /* Discard if not connected, or if not pass_with_link_up */
- /* else, if link is up let go by, but don't update time */
- return pft->ok_if_link_up? -1: 0;
- }
- break;
- } /* end switch (proto) */
-
- return 1;
-}
-#endif /* FILTER_PACKETS */
-
diff --git a/mdk-stage1/ppp/solaris/ppp.conf b/mdk-stage1/ppp/solaris/ppp.conf
deleted file mode 100644
index e443a7aac..000000000
--- a/mdk-stage1/ppp/solaris/ppp.conf
+++ /dev/null
@@ -1 +0,0 @@
-name="ppp" parent="pseudo" instance=0;
diff --git a/mdk-stage1/ppp/solaris/ppp_ahdlc.c b/mdk-stage1/ppp/solaris/ppp_ahdlc.c
deleted file mode 100644
index d0b961258..000000000
--- a/mdk-stage1/ppp/solaris/ppp_ahdlc.c
+++ /dev/null
@@ -1,878 +0,0 @@
-/*
- * ppp_ahdlc.c - STREAMS module for doing PPP asynchronous HDLC.
- *
- * Re-written by Adi Masputra <adi.masputra@sun.com>, based on
- * the original ppp_ahdlc.c
- *
- * Copyright (c) 2000 by Sun Microsystems, Inc.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies.
- *
- * SUN MAKES NO REPRESENTATION OR WARRANTIES ABOUT THE SUITABILITY OF
- * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
- * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
- * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
- * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES
- *
- * Copyright (c) 1994 The Australian National University.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies. This software is provided without any
- * warranty, express or implied. The Australian National University
- * makes no representations about the suitability of this software for
- * any purpose.
- *
- * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
- * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
- * THE AUSTRALIAN NATIONAL UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
- * OR MODIFICATIONS.
- *
- * $Id$
- */
-
-/*
- * This file is used under Solaris 2, SVR4, SunOS 4, and Digital UNIX.
- */
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/stream.h>
-#include <sys/errno.h>
-
-#ifdef SVR4
-#include <sys/conf.h>
-#include <sys/kmem.h>
-#include <sys/cmn_err.h>
-#include <sys/ddi.h>
-#else
-#include <sys/user.h>
-#ifdef __osf__
-#include <sys/cmn_err.h>
-#endif
-#endif /* SVR4 */
-
-#include <net/ppp_defs.h>
-#include <net/pppio.h>
-#include "ppp_mod.h"
-
-/*
- * Right now, mutex is only enabled for Solaris 2.x
- */
-#if defined(SOL2)
-#define USE_MUTEX
-#endif /* SOL2 */
-
-/*
- * intpointer_t and uintpointer_t are signed and unsigned integer types
- * large enough to hold any data pointer; that is, data pointers can be
- * assigned into or from these integer types without losing precision.
- * On recent Solaris releases, these types are defined in sys/int_types.h,
- * but not on SunOS 4.x or the earlier Solaris versions.
- */
-#if defined(_LP64) || defined(_I32LPx)
-typedef long intpointer_t;
-typedef unsigned long uintpointer_t;
-#else
-typedef int intpointer_t;
-typedef unsigned int uintpointer_t;
-#endif
-
-MOD_OPEN_DECL(ahdlc_open);
-MOD_CLOSE_DECL(ahdlc_close);
-static int ahdlc_wput __P((queue_t *, mblk_t *));
-static int ahdlc_rput __P((queue_t *, mblk_t *));
-static void ahdlc_encode __P((queue_t *, mblk_t *));
-static void ahdlc_decode __P((queue_t *, mblk_t *));
-static int msg_byte __P((mblk_t *, unsigned int));
-
-#if defined(SOL2)
-/*
- * Don't send HDLC start flag is last transmit is within 1.5 seconds -
- * FLAG_TIME is defined is microseconds
- */
-#define FLAG_TIME 1500
-#define ABS(x) (x >= 0 ? x : (-x))
-#endif /* SOL2 */
-
-/*
- * Extract byte i of message mp
- */
-#define MSG_BYTE(mp, i) ((i) < (mp)->b_wptr - (mp)->b_rptr? (mp)->b_rptr[i]: \
- msg_byte((mp), (i)))
-
-/*
- * Is this LCP packet one we have to transmit using LCP defaults?
- */
-#define LCP_USE_DFLT(mp) (1 <= (code = MSG_BYTE((mp), 4)) && code <= 7)
-
-/*
- * Standard STREAMS declarations
- */
-static struct module_info minfo = {
- 0x7d23, "ppp_ahdl", 0, INFPSZ, 32768, 512
-};
-
-static struct qinit rinit = {
- ahdlc_rput, NULL, ahdlc_open, ahdlc_close, NULL, &minfo, NULL
-};
-
-static struct qinit winit = {
- ahdlc_wput, NULL, NULL, NULL, NULL, &minfo, NULL
-};
-
-#if defined(SVR4) && !defined(SOL2)
-int phdldevflag = 0;
-#define ppp_ahdlcinfo phdlinfo
-#endif /* defined(SVR4) && !defined(SOL2) */
-
-struct streamtab ppp_ahdlcinfo = {
- &rinit, /* ptr to st_rdinit */
- &winit, /* ptr to st_wrinit */
- NULL, /* ptr to st_muxrinit */
- NULL, /* ptr to st_muxwinit */
-#if defined(SUNOS4)
- NULL /* ptr to ptr to st_modlist */
-#endif /* SUNOS4 */
-};
-
-#if defined(SUNOS4)
-int ppp_ahdlc_count = 0; /* open counter */
-#endif /* SUNOS4 */
-
-/*
- * Per-stream state structure
- */
-typedef struct ahdlc_state {
-#if defined(USE_MUTEX)
- kmutex_t lock; /* lock for this structure */
-#endif /* USE_MUTEX */
- int flags; /* link flags */
- mblk_t *rx_buf; /* ptr to receive buffer */
- int rx_buf_size; /* receive buffer size */
- ushort_t infcs; /* calculated rx HDLC FCS */
- u_int32_t xaccm[8]; /* 256-bit xmit ACCM */
- u_int32_t raccm; /* 32-bit rcv ACCM */
- int mtu; /* interface MTU */
- int mru; /* link MRU */
- int unit; /* current PPP unit number */
- struct pppstat stats; /* statistic structure */
-#if defined(SOL2)
- clock_t flag_time; /* time in usec between flags */
- clock_t lbolt; /* last updated lbolt */
-#endif /* SOL2 */
-} ahdlc_state_t;
-
-/*
- * Values for flags
- */
-#define ESCAPED 0x100 /* last saw escape char on input */
-#define IFLUSH 0x200 /* flushing input due to error */
-
-/*
- * RCV_B7_1, etc., defined in net/pppio.h, are stored in flags also.
- */
-#define RCV_FLAGS (RCV_B7_1|RCV_B7_0|RCV_ODDP|RCV_EVNP)
-
-/*
- * FCS lookup table as calculated by genfcstab.
- */
-static u_short fcstab[256] = {
- 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf,
- 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7,
- 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e,
- 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876,
- 0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd,
- 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5,
- 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c,
- 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974,
- 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb,
- 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3,
- 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a,
- 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72,
- 0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9,
- 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1,
- 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738,
- 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70,
- 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7,
- 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff,
- 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036,
- 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e,
- 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5,
- 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd,
- 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134,
- 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c,
- 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3,
- 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb,
- 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232,
- 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a,
- 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1,
- 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9,
- 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330,
- 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78
-};
-
-static u_int32_t paritytab[8] =
-{
- 0x96696996, 0x69969669, 0x69969669, 0x96696996,
- 0x69969669, 0x96696996, 0x96696996, 0x69969669
-};
-
-/*
- * STREAMS module open (entry) point
- */
-MOD_OPEN(ahdlc_open)
-{
- ahdlc_state_t *state;
-
- /*
- * Return if it's already opened
- */
- if (q->q_ptr) {
- return 0;
- }
-
- /*
- * This can only be opened as a module
- */
- if (sflag != MODOPEN) {
- return 0;
- }
-
- state = (ahdlc_state_t *) ALLOC_NOSLEEP(sizeof(ahdlc_state_t));
- if (state == 0)
- OPEN_ERROR(ENOSR);
- bzero((caddr_t) state, sizeof(ahdlc_state_t));
-
- q->q_ptr = (caddr_t) state;
- WR(q)->q_ptr = (caddr_t) state;
-
-#if defined(USE_MUTEX)
- mutex_init(&state->lock, NULL, MUTEX_DEFAULT, NULL);
- mutex_enter(&state->lock);
-#endif /* USE_MUTEX */
-
- state->xaccm[0] = ~0; /* escape 0x00 through 0x1f */
- state->xaccm[3] = 0x60000000; /* escape 0x7d and 0x7e */
- state->mru = PPP_MRU; /* default of 1500 bytes */
-#if defined(SOL2)
- state->flag_time = drv_usectohz(FLAG_TIME);
-#endif /* SOL2 */
-
-#if defined(USE_MUTEX)
- mutex_exit(&state->lock);
-#endif /* USE_MUTEX */
-
-#if defined(SUNOS4)
- ppp_ahdlc_count++;
-#endif /* SUNOS4 */
-
- qprocson(q);
-
- return 0;
-}
-
-/*
- * STREAMS module close (exit) point
- */
-MOD_CLOSE(ahdlc_close)
-{
- ahdlc_state_t *state;
-
- qprocsoff(q);
-
- state = (ahdlc_state_t *) q->q_ptr;
-
- if (state == 0) {
- DPRINT("state == 0 in ahdlc_close\n");
- return 0;
- }
-
-#if defined(USE_MUTEX)
- mutex_enter(&state->lock);
-#endif /* USE_MUTEX */
-
- if (state->rx_buf != 0) {
- freemsg(state->rx_buf);
- state->rx_buf = 0;
- }
-
-#if defined(USE_MUTEX)
- mutex_exit(&state->lock);
- mutex_destroy(&state->lock);
-#endif /* USE_MUTEX */
-
- FREE(q->q_ptr, sizeof(ahdlc_state_t));
- q->q_ptr = NULL;
- OTHERQ(q)->q_ptr = NULL;
-
-#if defined(SUNOS4)
- if (ppp_ahdlc_count)
- ppp_ahdlc_count--;
-#endif /* SUNOS4 */
-
- return 0;
-}
-
-/*
- * Write side put routine
- */
-static int
-ahdlc_wput(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- ahdlc_state_t *state;
- struct iocblk *iop;
- int error;
- mblk_t *np;
- struct ppp_stats *psp;
-
- state = (ahdlc_state_t *) q->q_ptr;
- if (state == 0) {
- DPRINT("state == 0 in ahdlc_wput\n");
- freemsg(mp);
- return 0;
- }
-
- switch (mp->b_datap->db_type) {
- case M_DATA:
- /*
- * A data packet - do character-stuffing and FCS, and
- * send it onwards.
- */
- ahdlc_encode(q, mp);
- freemsg(mp);
- break;
-
- case M_IOCTL:
- iop = (struct iocblk *) mp->b_rptr;
- error = EINVAL;
- switch (iop->ioc_cmd) {
- case PPPIO_XACCM:
- if ((iop->ioc_count < sizeof(u_int32_t)) ||
- (iop->ioc_count > sizeof(ext_accm))) {
- break;
- }
- if (mp->b_cont == 0) {
- DPRINT1("ahdlc_wput/%d: PPPIO_XACCM b_cont = 0!\n", state->unit);
- break;
- }
-#if defined(USE_MUTEX)
- mutex_enter(&state->lock);
-#endif /* USE_MUTEX */
- bcopy((caddr_t)mp->b_cont->b_rptr, (caddr_t)state->xaccm,
- iop->ioc_count);
- state->xaccm[2] &= ~0x40000000; /* don't escape 0x5e */
- state->xaccm[3] |= 0x60000000; /* do escape 0x7d, 0x7e */
-#if defined(USE_MUTEX)
- mutex_exit(&state->lock);
-#endif /* USE_MUTEX */
- iop->ioc_count = 0;
- error = 0;
- break;
-
- case PPPIO_RACCM:
- if (iop->ioc_count != sizeof(u_int32_t))
- break;
- if (mp->b_cont == 0) {
- DPRINT1("ahdlc_wput/%d: PPPIO_RACCM b_cont = 0!\n", state->unit);
- break;
- }
-#if defined(USE_MUTEX)
- mutex_enter(&state->lock);
-#endif /* USE_MUTEX */
- bcopy((caddr_t)mp->b_cont->b_rptr, (caddr_t)&state->raccm,
- sizeof(u_int32_t));
-#if defined(USE_MUTEX)
- mutex_exit(&state->lock);
-#endif /* USE_MUTEX */
- iop->ioc_count = 0;
- error = 0;
- break;
-
- case PPPIO_GCLEAN:
- np = allocb(sizeof(int), BPRI_HI);
- if (np == 0) {
- error = ENOSR;
- break;
- }
- if (mp->b_cont != 0)
- freemsg(mp->b_cont);
- mp->b_cont = np;
-#if defined(USE_MUTEX)
- mutex_enter(&state->lock);
-#endif /* USE_MUTEX */
- *(int *)np->b_wptr = state->flags & RCV_FLAGS;
-#if defined(USE_MUTEX)
- mutex_exit(&state->lock);
-#endif /* USE_MUTEX */
- np->b_wptr += sizeof(int);
- iop->ioc_count = sizeof(int);
- error = 0;
- break;
-
- case PPPIO_GETSTAT:
- np = allocb(sizeof(struct ppp_stats), BPRI_HI);
- if (np == 0) {
- error = ENOSR;
- break;
- }
- if (mp->b_cont != 0)
- freemsg(mp->b_cont);
- mp->b_cont = np;
- psp = (struct ppp_stats *) np->b_wptr;
- np->b_wptr += sizeof(struct ppp_stats);
- bzero((caddr_t)psp, sizeof(struct ppp_stats));
- psp->p = state->stats;
- iop->ioc_count = sizeof(struct ppp_stats);
- error = 0;
- break;
-
- case PPPIO_LASTMOD:
- /* we knew this anyway */
- error = 0;
- break;
-
- default:
- error = -1;
- break;
- }
-
- if (error < 0)
- putnext(q, mp);
- else if (error == 0) {
- mp->b_datap->db_type = M_IOCACK;
- qreply(q, mp);
- } else {
- mp->b_datap->db_type = M_IOCNAK;
- iop->ioc_count = 0;
- iop->ioc_error = error;
- qreply(q, mp);
- }
- break;
-
- case M_CTL:
- switch (*mp->b_rptr) {
- case PPPCTL_MTU:
-#if defined(USE_MUTEX)
- mutex_enter(&state->lock);
-#endif /* USE_MUTEX */
- state->mtu = ((unsigned short *)mp->b_rptr)[1];
-#if defined(USE_MUTEX)
- mutex_exit(&state->lock);
-#endif /* USE_MUTEX */
- freemsg(mp);
- break;
- case PPPCTL_MRU:
-#if defined(USE_MUTEX)
- mutex_enter(&state->lock);
-#endif /* USE_MUTEX */
- state->mru = ((unsigned short *)mp->b_rptr)[1];
-#if defined(USE_MUTEX)
- mutex_exit(&state->lock);
-#endif /* USE_MUTEX */
- freemsg(mp);
- break;
- case PPPCTL_UNIT:
-#if defined(USE_MUTEX)
- mutex_enter(&state->lock);
-#endif /* USE_MUTEX */
- state->unit = mp->b_rptr[1];
-#if defined(USE_MUTEX)
- mutex_exit(&state->lock);
-#endif /* USE_MUTEX */
- break;
- default:
- putnext(q, mp);
- }
- break;
-
- default:
- putnext(q, mp);
- }
-
- return 0;
-}
-
-/*
- * Read side put routine
- */
-static int
-ahdlc_rput(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- ahdlc_state_t *state;
-
- state = (ahdlc_state_t *) q->q_ptr;
- if (state == 0) {
- DPRINT("state == 0 in ahdlc_rput\n");
- freemsg(mp);
- return 0;
- }
-
- switch (mp->b_datap->db_type) {
- case M_DATA:
- ahdlc_decode(q, mp);
- freemsg(mp);
- break;
-
- case M_HANGUP:
-#if defined(USE_MUTEX)
- mutex_enter(&state->lock);
-#endif /* USE_MUTEX */
- if (state->rx_buf != 0) {
- /* XXX would like to send this up for debugging */
- freemsg(state->rx_buf);
- state->rx_buf = 0;
- }
- state->flags = IFLUSH;
-#if defined(USE_MUTEX)
- mutex_exit(&state->lock);
-#endif /* USE_MUTEX */
- putnext(q, mp);
- break;
-
- default:
- putnext(q, mp);
- }
- return 0;
-}
-
-/*
- * Extract bit c from map m, to determine if c needs to be escaped
- */
-#define IN_TX_MAP(c, m) ((m)[(c) >> 5] & (1 << ((c) & 0x1f)))
-
-static void
-ahdlc_encode(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- ahdlc_state_t *state;
- u_int32_t *xaccm, loc_xaccm[8];
- ushort_t fcs;
- size_t outmp_len;
- mblk_t *outmp, *tmp;
- uchar_t *dp, fcs_val;
- int is_lcp, code;
-#if defined(SOL2)
- clock_t lbolt;
-#endif /* SOL2 */
-
- if (msgdsize(mp) < 4) {
- return;
- }
-
- state = (ahdlc_state_t *)q->q_ptr;
-#if defined(USE_MUTEX)
- mutex_enter(&state->lock);
-#endif /* USE_MUTEX */
-
- /*
- * Allocate an output buffer large enough to handle a case where all
- * characters need to be escaped
- */
- outmp_len = (msgdsize(mp) << 1) + /* input block x 2 */
- (sizeof(fcs) << 2) + /* HDLC FCS x 4 */
- (sizeof(uchar_t) << 1); /* HDLC flags x 2 */
-
- outmp = allocb(outmp_len, BPRI_MED);
- if (outmp == NULL) {
- state->stats.ppp_oerrors++;
-#if defined(USE_MUTEX)
- mutex_exit(&state->lock);
-#endif /* USE_MUTEX */
- putctl1(RD(q)->q_next, M_CTL, PPPCTL_OERROR);
- return;
- }
-
-#if defined(SOL2)
- /*
- * Check if our last transmit happenned within flag_time, using
- * the system's LBOLT value in clock ticks
- */
- if (drv_getparm(LBOLT, &lbolt) != -1) {
- if (ABS((clock_t)lbolt - state->lbolt) > state->flag_time) {
- *outmp->b_wptr++ = PPP_FLAG;
- }
- state->lbolt = lbolt;
- } else {
- *outmp->b_wptr++ = PPP_FLAG;
- }
-#else
- /*
- * If the driver below still has a message to process, skip the
- * HDLC flag, otherwise, put one in the beginning
- */
- if (qsize(q->q_next) == 0) {
- *outmp->b_wptr++ = PPP_FLAG;
- }
-#endif
-
- /*
- * All control characters must be escaped for LCP packets with code
- * values between 1 (Conf-Req) and 7 (Code-Rej).
- */
- is_lcp = ((MSG_BYTE(mp, 0) == PPP_ALLSTATIONS) &&
- (MSG_BYTE(mp, 1) == PPP_UI) &&
- (MSG_BYTE(mp, 2) == (PPP_LCP >> 8)) &&
- (MSG_BYTE(mp, 3) == (PPP_LCP & 0xff)) &&
- LCP_USE_DFLT(mp));
-
- xaccm = state->xaccm;
- if (is_lcp) {
- bcopy((caddr_t)state->xaccm, (caddr_t)loc_xaccm, sizeof(loc_xaccm));
- loc_xaccm[0] = ~0; /* force escape on 0x00 through 0x1f */
- xaccm = loc_xaccm;
- }
-
- fcs = PPP_INITFCS; /* Initial FCS is 0xffff */
-
- /*
- * Process this block and the rest (if any) attached to the this one
- */
- for (tmp = mp; tmp; tmp = tmp->b_cont) {
- if (tmp->b_datap->db_type == M_DATA) {
- for (dp = tmp->b_rptr; dp < tmp->b_wptr; dp++) {
- fcs = PPP_FCS(fcs, *dp);
- if (IN_TX_MAP(*dp, xaccm)) {
- *outmp->b_wptr++ = PPP_ESCAPE;
- *outmp->b_wptr++ = *dp ^ PPP_TRANS;
- } else {
- *outmp->b_wptr++ = *dp;
- }
- }
- } else {
- continue; /* skip if db_type is something other than M_DATA */
- }
- }
-
- /*
- * Append the HDLC FCS, making sure that escaping is done on any
- * necessary bytes
- */
- fcs_val = (fcs ^ 0xffff) & 0xff;
- if (IN_TX_MAP(fcs_val, xaccm)) {
- *outmp->b_wptr++ = PPP_ESCAPE;
- *outmp->b_wptr++ = fcs_val ^ PPP_TRANS;
- } else {
- *outmp->b_wptr++ = fcs_val;
- }
-
- fcs_val = ((fcs ^ 0xffff) >> 8) & 0xff;
- if (IN_TX_MAP(fcs_val, xaccm)) {
- *outmp->b_wptr++ = PPP_ESCAPE;
- *outmp->b_wptr++ = fcs_val ^ PPP_TRANS;
- } else {
- *outmp->b_wptr++ = fcs_val;
- }
-
- /*
- * And finally, append the HDLC flag, and send it away
- */
- *outmp->b_wptr++ = PPP_FLAG;
-
- state->stats.ppp_obytes += msgdsize(outmp);
- state->stats.ppp_opackets++;
-
-#if defined(USE_MUTEX)
- mutex_exit(&state->lock);
-#endif /* USE_MUTEX */
-
- putnext(q, outmp);
- return;
-}
-
-/*
- * Checks the 32-bit receive ACCM to see if the byte needs un-escaping
- */
-#define IN_RX_MAP(c, m) ((((unsigned int) (uchar_t) (c)) < 0x20) && \
- (m) & (1 << (c)))
-
-
-/*
- * Process received characters.
- */
-static void
-ahdlc_decode(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- ahdlc_state_t *state;
- mblk_t *om;
- uchar_t *dp;
- ushort_t fcs;
-#if defined(SOL2)
- mblk_t *zmp;
-#endif /* SOL2 */
-
-#if defined(SOL2)
- /*
- * In case the driver (or something below) doesn't send
- * data upstream in one message block, concatenate everything
- */
- if (!((mp->b_wptr - mp->b_rptr == msgdsize(mp)) &&
- ((intpointer_t)mp->b_rptr % sizeof(intpointer_t) == 0))) {
-
- zmp = msgpullup(mp, -1);
- freemsg(mp);
- mp = zmp;
- if (mp == 0)
- return;
- }
-#endif /* SOL2 */
-
- state = (ahdlc_state_t *) q->q_ptr;
-
-#if defined(USE_MUTEX)
- mutex_enter(&state->lock);
-#endif /* USE_MUTEX */
-
- state->stats.ppp_ibytes += msgdsize(mp);
-
- for (dp = mp->b_rptr; dp < mp->b_wptr; dp++) {
-
- /*
- * This should detect the lack of 8-bit communication channel
- * which is necessary for PPP to work. In addition, it also
- * checks on the parity.
- */
- if (*dp & 0x80)
- state->flags |= RCV_B7_1;
- else
- state->flags |= RCV_B7_0;
-
- if (paritytab[*dp >> 5] & (1 << (*dp & 0x1f)))
- state->flags |= RCV_ODDP;
- else
- state->flags |= RCV_EVNP;
-
- /*
- * So we have a HDLC flag ...
- */
- if (*dp == PPP_FLAG) {
-
- /*
- * If we think that it marks the beginning of the frame,
- * then continue to process the next octects
- */
- if ((state->flags & IFLUSH) ||
- (state->rx_buf == 0) ||
- (msgdsize(state->rx_buf) == 0)) {
-
- state->flags &= ~IFLUSH;
- continue;
- }
-
- /*
- * We get here because the above condition isn't true,
- * in which case the HDLC flag was there to mark the end
- * of the frame (or so we think)
- */
- om = state->rx_buf;
-
- if (state->infcs == PPP_GOODFCS) {
- state->stats.ppp_ipackets++;
- adjmsg(om, -PPP_FCSLEN);
- putnext(q, om);
- } else {
- DPRINT2("ppp%d: bad fcs (len=%d)\n",
- state->unit, msgdsize(state->rx_buf));
- freemsg(state->rx_buf);
- state->flags &= ~(IFLUSH | ESCAPED);
- state->stats.ppp_ierrors++;
- putctl1(q->q_next, M_CTL, PPPCTL_IERROR);
- }
-
- state->rx_buf = 0;
- continue;
- }
-
- if (state->flags & IFLUSH) {
- continue;
- }
-
- /*
- * Allocate a receive buffer, large enough to store a frame (after
- * un-escaping) of at least 1500 octets. If MRU is negotiated to
- * be more than the default, then allocate that much. In addition,
- * we add an extra 32-bytes for a fudge factor
- */
- if (state->rx_buf == 0) {
- state->rx_buf_size = (state->mru < PPP_MRU ? PPP_MRU : state->mru);
- state->rx_buf_size += (sizeof(u_int32_t) << 3);
- state->rx_buf = allocb(state->rx_buf_size, BPRI_MED);
-
- /*
- * If allocation fails, try again on the next frame
- */
- if (state->rx_buf == 0) {
- state->flags |= IFLUSH;
- continue;
- }
- state->flags &= ~(IFLUSH | ESCAPED);
- state->infcs = PPP_INITFCS;
- }
-
- if (*dp == PPP_ESCAPE) {
- state->flags |= ESCAPED;
- continue;
- }
-
- /*
- * Make sure we un-escape the necessary characters, as well as the
- * ones in our receive async control character map
- */
- if (state->flags & ESCAPED) {
- *dp ^= PPP_TRANS;
- state->flags &= ~ESCAPED;
- } else if (IN_RX_MAP(*dp, state->raccm))
- continue;
-
- /*
- * Unless the peer lied to us about the negotiated MRU, we should
- * never get a frame which is too long. If it happens, toss it away
- * and grab the next incoming one
- */
- if (msgdsize(state->rx_buf) < state->rx_buf_size) {
- state->infcs = PPP_FCS(state->infcs, *dp);
- *state->rx_buf->b_wptr++ = *dp;
- } else {
- DPRINT2("ppp%d: frame too long (%d)\n",
- state->unit, msgdsize(state->rx_buf));
- freemsg(state->rx_buf);
- state->rx_buf = 0;
- state->flags |= IFLUSH;
- }
- }
-
-#if defined(USE_MUTEX)
- mutex_exit(&state->lock);
-#endif /* USE_MUTEX */
-}
-
-static int
-msg_byte(mp, i)
- mblk_t *mp;
- unsigned int i;
-{
- while (mp != 0 && i >= mp->b_wptr - mp->b_rptr)
- mp = mp->b_cont;
- if (mp == 0)
- return -1;
- return mp->b_rptr[i];
-}
diff --git a/mdk-stage1/ppp/solaris/ppp_ahdlc_mod.c b/mdk-stage1/ppp/solaris/ppp_ahdlc_mod.c
deleted file mode 100644
index f81be8abb..000000000
--- a/mdk-stage1/ppp/solaris/ppp_ahdlc_mod.c
+++ /dev/null
@@ -1,49 +0,0 @@
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/conf.h>
-#include <sys/modctl.h>
-#include <sys/sunddi.h>
-
-extern struct streamtab ppp_ahdlcinfo;
-
-static struct fmodsw fsw = {
- "ppp_ahdl",
- &ppp_ahdlcinfo,
- D_NEW | D_MP | D_MTQPAIR
-};
-
-extern struct mod_ops mod_strmodops;
-
-static struct modlstrmod modlstrmod = {
- &mod_strmodops,
- "PPP async HDLC module",
- &fsw
-};
-
-static struct modlinkage modlinkage = {
- MODREV_1,
- (void *) &modlstrmod,
- NULL
-};
-
-/*
- * Entry points for modloading.
- */
-int
-_init(void)
-{
- return mod_install(&modlinkage);
-}
-
-int
-_fini(void)
-{
- return mod_remove(&modlinkage);
-}
-
-int
-_info(mip)
- struct modinfo *mip;
-{
- return mod_info(&modlinkage, mip);
-}
diff --git a/mdk-stage1/ppp/solaris/ppp_comp.c b/mdk-stage1/ppp/solaris/ppp_comp.c
deleted file mode 100644
index f6eef5ab1..000000000
--- a/mdk-stage1/ppp/solaris/ppp_comp.c
+++ /dev/null
@@ -1,1126 +0,0 @@
-/*
- * ppp_comp.c - STREAMS module for kernel-level compression and CCP support.
- *
- * Copyright (c) 1994 The Australian National University.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies. This software is provided without any
- * warranty, express or implied. The Australian National University
- * makes no representations about the suitability of this software for
- * any purpose.
- *
- * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
- * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
- * THE AUSTRALIAN NATIONAL UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
- * OR MODIFICATIONS.
- *
- * $Id$
- */
-
-/*
- * This file is used under SVR4, Solaris 2, SunOS 4, and Digital UNIX.
- */
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/errno.h>
-#include <sys/stream.h>
-
-#ifdef SVR4
-#include <sys/conf.h>
-#include <sys/cmn_err.h>
-#include <sys/ddi.h>
-#else
-#include <sys/user.h>
-#ifdef __osf__
-#include <sys/cmn_err.h>
-#endif
-#endif /* SVR4 */
-
-#include <net/ppp_defs.h>
-#include <net/pppio.h>
-#include "ppp_mod.h"
-
-#ifdef __osf__
-#include <sys/mbuf.h>
-#include <sys/protosw.h>
-#endif
-
-#include <netinet/in.h>
-#include <netinet/in_systm.h>
-#include <netinet/ip.h>
-#include <net/vjcompress.h>
-
-#define PACKETPTR mblk_t *
-#include <net/ppp-comp.h>
-
-MOD_OPEN_DECL(ppp_comp_open);
-MOD_CLOSE_DECL(ppp_comp_close);
-static int ppp_comp_rput __P((queue_t *, mblk_t *));
-static int ppp_comp_rsrv __P((queue_t *));
-static int ppp_comp_wput __P((queue_t *, mblk_t *));
-static int ppp_comp_wsrv __P((queue_t *));
-static void ppp_comp_ccp __P((queue_t *, mblk_t *, int));
-static int msg_byte __P((mblk_t *, unsigned int));
-
-/* Extract byte i of message mp. */
-#define MSG_BYTE(mp, i) ((i) < (mp)->b_wptr - (mp)->b_rptr? (mp)->b_rptr[i]: \
- msg_byte((mp), (i)))
-
-/* Is this LCP packet one we have to transmit using LCP defaults? */
-#define LCP_USE_DFLT(mp) (1 <= (code = MSG_BYTE((mp), 4)) && code <= 7)
-
-#define PPP_COMP_ID 0xbadf
-static struct module_info minfo = {
-#ifdef PRIOQ
- PPP_COMP_ID, "ppp_comp", 0, INFPSZ, 16512, 16384,
-#else
- PPP_COMP_ID, "ppp_comp", 0, INFPSZ, 16384, 4096,
-#endif
-};
-
-static struct qinit r_init = {
- ppp_comp_rput, ppp_comp_rsrv, ppp_comp_open, ppp_comp_close,
- NULL, &minfo, NULL
-};
-
-static struct qinit w_init = {
- ppp_comp_wput, ppp_comp_wsrv, NULL, NULL, NULL, &minfo, NULL
-};
-
-#if defined(SVR4) && !defined(SOL2)
-int pcmpdevflag = 0;
-#define ppp_compinfo pcmpinfo
-#endif
-struct streamtab ppp_compinfo = {
- &r_init, &w_init, NULL, NULL
-};
-
-int ppp_comp_count; /* number of module instances in use */
-
-#ifdef __osf__
-
-static void ppp_comp_alloc __P((comp_state_t *));
-typedef struct memreq {
- unsigned char comp_opts[20];
- int cmd;
- int thread_status;
- char *returned_mem;
-} memreq_t;
-
-#endif
-
-typedef struct comp_state {
- int flags;
- int mru;
- int mtu;
- int unit;
- struct compressor *xcomp;
- void *xstate;
- struct compressor *rcomp;
- void *rstate;
- struct vjcompress vj_comp;
- int vj_last_ierrors;
- struct pppstat stats;
-#ifdef __osf__
- memreq_t memreq;
- thread_t thread;
-#endif
-} comp_state_t;
-
-
-#ifdef __osf__
-extern task_t first_task;
-#endif
-
-/* Bits in flags are as defined in pppio.h. */
-#define CCP_ERR (CCP_ERROR | CCP_FATALERROR)
-#define LAST_MOD 0x1000000 /* no ppp modules below us */
-#define DBGLOG 0x2000000 /* log debugging stuff */
-
-#define MAX_IPHDR 128 /* max TCP/IP header size */
-#define MAX_VJHDR 20 /* max VJ compressed header size (?) */
-
-#undef MIN /* just in case */
-#define MIN(a, b) ((a) < (b)? (a): (b))
-
-/*
- * List of compressors we know about.
- */
-
-#if DO_BSD_COMPRESS
-extern struct compressor ppp_bsd_compress;
-#endif
-#if DO_DEFLATE
-extern struct compressor ppp_deflate, ppp_deflate_draft;
-#endif
-
-struct compressor *ppp_compressors[] = {
-#if DO_BSD_COMPRESS
- &ppp_bsd_compress,
-#endif
-#if DO_DEFLATE
- &ppp_deflate,
- &ppp_deflate_draft,
-#endif
- NULL
-};
-
-/*
- * STREAMS module entry points.
- */
-MOD_OPEN(ppp_comp_open)
-{
- comp_state_t *cp;
-#ifdef __osf__
- thread_t thread;
-#endif
-
- if (q->q_ptr == NULL) {
- cp = (comp_state_t *) ALLOC_SLEEP(sizeof(comp_state_t));
- if (cp == NULL)
- OPEN_ERROR(ENOSR);
- bzero((caddr_t)cp, sizeof(comp_state_t));
- WR(q)->q_ptr = q->q_ptr = (caddr_t) cp;
- cp->mru = PPP_MRU;
- cp->mtu = PPP_MTU;
- cp->xstate = NULL;
- cp->rstate = NULL;
- vj_compress_init(&cp->vj_comp, -1);
-#ifdef __osf__
- if (!(thread = kernel_thread_w_arg(first_task, ppp_comp_alloc, (void *)cp)))
- OPEN_ERROR(ENOSR);
- cp->thread = thread;
-#endif
- ++ppp_comp_count;
- qprocson(q);
- }
- return 0;
-}
-
-MOD_CLOSE(ppp_comp_close)
-{
- comp_state_t *cp;
-
- qprocsoff(q);
- cp = (comp_state_t *) q->q_ptr;
- if (cp != NULL) {
- if (cp->xstate != NULL)
- (*cp->xcomp->comp_free)(cp->xstate);
- if (cp->rstate != NULL)
- (*cp->rcomp->decomp_free)(cp->rstate);
-#ifdef __osf__
- if (!cp->thread)
- printf("ppp_comp_close: NULL thread!\n");
- else
- thread_terminate(cp->thread);
-#endif
- FREE(cp, sizeof(comp_state_t));
- q->q_ptr = NULL;
- OTHERQ(q)->q_ptr = NULL;
- --ppp_comp_count;
- }
- return 0;
-}
-
-#ifdef __osf__
-
-/* thread for calling back to a compressor's memory allocator
- * Needed for Digital UNIX since it's VM can't handle requests
- * for large amounts of memory without blocking. The thread
- * provides a context in which we can call a memory allocator
- * that may block.
- */
-static void
-ppp_comp_alloc(comp_state_t *cp)
-{
- int len, cmd;
- unsigned char *compressor_options;
- thread_t thread;
- void *(*comp_allocator)();
-
-
-#if defined(MAJOR_VERSION) && (MAJOR_VERSION <= 2)
-
- /* In 2.x and earlier the argument gets passed
- * in the thread structure itself. Yuck.
- */
- thread = current_thread();
- cp = thread->reply_port;
- thread->reply_port = PORT_NULL;
-
-#endif
-
- for (;;) {
- assert_wait((vm_offset_t)&cp->memreq.thread_status, TRUE);
- thread_block();
-
- if (thread_should_halt(current_thread()))
- thread_halt_self();
- cmd = cp->memreq.cmd;
- compressor_options = &cp->memreq.comp_opts[0];
- len = compressor_options[1];
- if (cmd == PPPIO_XCOMP) {
- cp->memreq.returned_mem = cp->xcomp->comp_alloc(compressor_options, len);
- if (!cp->memreq.returned_mem) {
- cp->memreq.thread_status = ENOSR;
- } else {
- cp->memreq.thread_status = 0;
- }
- } else {
- cp->memreq.returned_mem = cp->rcomp->decomp_alloc(compressor_options, len);
- if (!cp->memreq.returned_mem) {
- cp->memreq.thread_status = ENOSR;
- } else {
- cp->memreq.thread_status = 0;
- }
- }
- }
-}
-
-#endif /* __osf__ */
-
-/* here's the deal with memory allocation under Digital UNIX.
- * Some other may also benefit from this...
- * We can't ask for huge chunks of memory in a context where
- * the caller can't be put to sleep (like, here.) The alloc
- * is likely to fail. Instead we do this: the first time we
- * get called, kick off a thread to do the allocation. Return
- * immediately to the caller with EAGAIN, as an indication that
- * they should send down the ioctl again. By the time the
- * second call comes in it's likely that the memory allocation
- * thread will have returned with the requested memory. We will
- * continue to return EAGAIN however until the thread has completed.
- * When it has, we return zero (and the memory) if the allocator
- * was successful and ENOSR otherwise.
- *
- * Callers of the RCOMP and XCOMP ioctls are encouraged (but not
- * required) to loop for some number of iterations with a small
- * delay in the loop body (for instance a 1/10-th second "sleep"
- * via select.)
- */
-static int
-ppp_comp_wput(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- struct iocblk *iop;
- comp_state_t *cp;
- int error, len, n;
- int flags, mask;
- mblk_t *np;
- struct compressor **comp;
- struct ppp_stats *psp;
- struct ppp_comp_stats *csp;
- unsigned char *opt_data;
- int nxslots, nrslots;
-
- cp = (comp_state_t *) q->q_ptr;
- if (cp == 0) {
- DPRINT("cp == 0 in ppp_comp_wput\n");
- freemsg(mp);
- return 0;
- }
-
- switch (mp->b_datap->db_type) {
-
- case M_DATA:
- putq(q, mp);
- break;
-
- case M_IOCTL:
- iop = (struct iocblk *) mp->b_rptr;
- error = EINVAL;
- switch (iop->ioc_cmd) {
-
- case PPPIO_CFLAGS:
- /* set/get CCP state */
- if (iop->ioc_count != 2 * sizeof(int))
- break;
- if (mp->b_cont == 0) {
- DPRINT1("ppp_comp_wput/%d: PPPIO_CFLAGS b_cont = 0!\n", cp->unit);
- break;
- }
- flags = ((int *) mp->b_cont->b_rptr)[0];
- mask = ((int *) mp->b_cont->b_rptr)[1];
- cp->flags = (cp->flags & ~mask) | (flags & mask);
- if ((mask & CCP_ISOPEN) && (flags & CCP_ISOPEN) == 0) {
- if (cp->xstate != NULL) {
- (*cp->xcomp->comp_free)(cp->xstate);
- cp->xstate = NULL;
- }
- if (cp->rstate != NULL) {
- (*cp->rcomp->decomp_free)(cp->rstate);
- cp->rstate = NULL;
- }
- cp->flags &= ~CCP_ISUP;
- }
- error = 0;
- iop->ioc_count = sizeof(int);
- ((int *) mp->b_cont->b_rptr)[0] = cp->flags;
- mp->b_cont->b_wptr = mp->b_cont->b_rptr + sizeof(int);
- break;
-
- case PPPIO_VJINIT:
- /*
- * Initialize VJ compressor/decompressor
- */
- if (iop->ioc_count != 2)
- break;
- if (mp->b_cont == 0) {
- DPRINT1("ppp_comp_wput/%d: PPPIO_VJINIT b_cont = 0!\n", cp->unit);
- break;
- }
- nxslots = mp->b_cont->b_rptr[0] + 1;
- nrslots = mp->b_cont->b_rptr[1] + 1;
- if (nxslots > MAX_STATES || nrslots > MAX_STATES)
- break;
- vj_compress_init(&cp->vj_comp, nxslots);
- cp->vj_last_ierrors = cp->stats.ppp_ierrors;
- error = 0;
- iop->ioc_count = 0;
- break;
-
- case PPPIO_XCOMP:
- case PPPIO_RCOMP:
- if (iop->ioc_count <= 0)
- break;
- if (mp->b_cont == 0) {
- DPRINT1("ppp_comp_wput/%d: PPPIO_[XR]COMP b_cont = 0!\n", cp->unit);
- break;
- }
- opt_data = mp->b_cont->b_rptr;
- len = mp->b_cont->b_wptr - opt_data;
- if (len > iop->ioc_count)
- len = iop->ioc_count;
- if (opt_data[1] < 2 || opt_data[1] > len)
- break;
- for (comp = ppp_compressors; *comp != NULL; ++comp)
- if ((*comp)->compress_proto == opt_data[0]) {
- /* here's the handler! */
- error = 0;
-#ifndef __osf__
- if (iop->ioc_cmd == PPPIO_XCOMP) {
- /* A previous call may have fetched memory for a compressor
- * that's now being retired or reset. Free it using it's
- * mechanism for freeing stuff.
- */
- if (cp->xstate != NULL) {
- (*cp->xcomp->comp_free)(cp->xstate);
- cp->xstate = NULL;
- }
- cp->xcomp = *comp;
- cp->xstate = (*comp)->comp_alloc(opt_data, len);
- if (cp->xstate == NULL)
- error = ENOSR;
- } else {
- if (cp->rstate != NULL) {
- (*cp->rcomp->decomp_free)(cp->rstate);
- cp->rstate = NULL;
- }
- cp->rcomp = *comp;
- cp->rstate = (*comp)->decomp_alloc(opt_data, len);
- if (cp->rstate == NULL)
- error = ENOSR;
- }
-#else
- if ((error = cp->memreq.thread_status) != EAGAIN)
- if (iop->ioc_cmd == PPPIO_XCOMP) {
- if (cp->xstate) {
- (*cp->xcomp->comp_free)(cp->xstate);
- cp->xstate = 0;
- }
- /* sanity check for compressor options
- */
- if (sizeof (cp->memreq.comp_opts) < len) {
- printf("can't handle options for compressor %d (%d)\n", opt_data[0],
- opt_data[1]);
- cp->memreq.thread_status = ENOSR;
- cp->memreq.returned_mem = 0;
- }
- /* fill in request for the thread and kick it off
- */
- if (cp->memreq.thread_status == 0 && !cp->memreq.returned_mem) {
- bcopy(opt_data, cp->memreq.comp_opts, len);
- cp->memreq.cmd = PPPIO_XCOMP;
- cp->xcomp = *comp;
- error = cp->memreq.thread_status = EAGAIN;
- thread_wakeup((vm_offset_t)&cp->memreq.thread_status);
- } else {
- cp->xstate = cp->memreq.returned_mem;
- cp->memreq.returned_mem = 0;
- cp->memreq.thread_status = 0;
- }
- } else {
- if (cp->rstate) {
- (*cp->rcomp->decomp_free)(cp->rstate);
- cp->rstate = NULL;
- }
- if (sizeof (cp->memreq.comp_opts) < len) {
- printf("can't handle options for compressor %d (%d)\n", opt_data[0],
- opt_data[1]);
- cp->memreq.thread_status = ENOSR;
- cp->memreq.returned_mem = 0;
- }
- if (cp->memreq.thread_status == 0 && !cp->memreq.returned_mem) {
- bcopy(opt_data, cp->memreq.comp_opts, len);
- cp->memreq.cmd = PPPIO_RCOMP;
- cp->rcomp = *comp;
- error = cp->memreq.thread_status = EAGAIN;
- thread_wakeup((vm_offset_t)&cp->memreq.thread_status);
- } else {
- cp->rstate = cp->memreq.returned_mem;
- cp->memreq.returned_mem = 0;
- cp->memreq.thread_status = 0;
- }
- }
-#endif
- break;
- }
- iop->ioc_count = 0;
- break;
-
- case PPPIO_GETSTAT:
- if ((cp->flags & LAST_MOD) == 0) {
- error = -1; /* let the ppp_ahdl module handle it */
- break;
- }
- np = allocb(sizeof(struct ppp_stats), BPRI_HI);
- if (np == 0) {
- error = ENOSR;
- break;
- }
- if (mp->b_cont != 0)
- freemsg(mp->b_cont);
- mp->b_cont = np;
- psp = (struct ppp_stats *) np->b_wptr;
- np->b_wptr += sizeof(struct ppp_stats);
- iop->ioc_count = sizeof(struct ppp_stats);
- psp->p = cp->stats;
- psp->vj = cp->vj_comp.stats;
- error = 0;
- break;
-
- case PPPIO_GETCSTAT:
- np = allocb(sizeof(struct ppp_comp_stats), BPRI_HI);
- if (np == 0) {
- error = ENOSR;
- break;
- }
- if (mp->b_cont != 0)
- freemsg(mp->b_cont);
- mp->b_cont = np;
- csp = (struct ppp_comp_stats *) np->b_wptr;
- np->b_wptr += sizeof(struct ppp_comp_stats);
- iop->ioc_count = sizeof(struct ppp_comp_stats);
- bzero((caddr_t)csp, sizeof(struct ppp_comp_stats));
- if (cp->xstate != 0)
- (*cp->xcomp->comp_stat)(cp->xstate, &csp->c);
- if (cp->rstate != 0)
- (*cp->rcomp->decomp_stat)(cp->rstate, &csp->d);
- error = 0;
- break;
-
- case PPPIO_DEBUG:
- if (iop->ioc_count != sizeof(int))
- break;
- if (mp->b_cont == 0) {
- DPRINT1("ppp_comp_wput/%d: PPPIO_DEBUG b_cont = 0!\n", cp->unit);
- break;
- }
- n = *(int *)mp->b_cont->b_rptr;
- if (n == PPPDBG_LOG + PPPDBG_COMP) {
- DPRINT1("ppp_comp%d: debug log enabled\n", cp->unit);
- cp->flags |= DBGLOG;
- error = 0;
- iop->ioc_count = 0;
- } else {
- error = -1;
- }
- break;
-
- case PPPIO_LASTMOD:
- cp->flags |= LAST_MOD;
- error = 0;
- break;
-
- default:
- error = -1;
- break;
- }
-
- if (error < 0)
- putnext(q, mp);
- else if (error == 0) {
- mp->b_datap->db_type = M_IOCACK;
- qreply(q, mp);
- } else {
- mp->b_datap->db_type = M_IOCNAK;
- iop->ioc_error = error;
- iop->ioc_count = 0;
- qreply(q, mp);
- }
- break;
-
- case M_CTL:
- switch (*mp->b_rptr) {
- case PPPCTL_MTU:
- cp->mtu = ((unsigned short *)mp->b_rptr)[1];
- break;
- case PPPCTL_MRU:
- cp->mru = ((unsigned short *)mp->b_rptr)[1];
- break;
- case PPPCTL_UNIT:
- cp->unit = mp->b_rptr[1];
- break;
- }
- putnext(q, mp);
- break;
-
- default:
- putnext(q, mp);
- }
-
- return 0;
-}
-
-static int
-ppp_comp_wsrv(q)
- queue_t *q;
-{
- mblk_t *mp, *cmp = NULL;
- comp_state_t *cp;
- int len, proto, type, hlen, code;
- struct ip *ip;
- unsigned char *vjhdr, *dp;
-
- cp = (comp_state_t *) q->q_ptr;
- if (cp == 0) {
- DPRINT("cp == 0 in ppp_comp_wsrv\n");
- return 0;
- }
-
- while ((mp = getq(q)) != 0) {
- /* assert(mp->b_datap->db_type == M_DATA) */
-#ifdef PRIOQ
- if (!bcanputnext(q,mp->b_band))
-#else
- if (!canputnext(q))
-#endif PRIOQ
- {
- putbq(q, mp);
- break;
- }
-
- /*
- * First check the packet length and work out what the protocol is.
- */
- len = msgdsize(mp);
- if (len < PPP_HDRLEN) {
- DPRINT1("ppp_comp_wsrv: bogus short packet (%d)\n", len);
- freemsg(mp);
- cp->stats.ppp_oerrors++;
- putctl1(RD(q)->q_next, M_CTL, PPPCTL_OERROR);
- continue;
- }
- proto = (MSG_BYTE(mp, 2) << 8) + MSG_BYTE(mp, 3);
-
- /*
- * Make sure we've got enough data in the first mblk
- * and that we are its only user.
- */
- if (proto == PPP_CCP)
- hlen = len;
- else if (proto == PPP_IP)
- hlen = PPP_HDRLEN + MAX_IPHDR;
- else
- hlen = PPP_HDRLEN;
- if (hlen > len)
- hlen = len;
- if (mp->b_wptr < mp->b_rptr + hlen || mp->b_datap->db_ref > 1) {
- PULLUP(mp, hlen);
- if (mp == 0) {
- DPRINT1("ppp_comp_wsrv: pullup failed (%d)\n", hlen);
- cp->stats.ppp_oerrors++;
- putctl1(RD(q)->q_next, M_CTL, PPPCTL_OERROR);
- continue;
- }
- }
-
- /*
- * Do VJ compression if requested.
- */
- if (proto == PPP_IP && (cp->flags & COMP_VJC)) {
- ip = (struct ip *) (mp->b_rptr + PPP_HDRLEN);
- if (ip->ip_p == IPPROTO_TCP) {
- type = vj_compress_tcp(ip, len - PPP_HDRLEN, &cp->vj_comp,
- (cp->flags & COMP_VJCCID), &vjhdr);
- switch (type) {
- case TYPE_UNCOMPRESSED_TCP:
- mp->b_rptr[3] = proto = PPP_VJC_UNCOMP;
- break;
- case TYPE_COMPRESSED_TCP:
- dp = vjhdr - PPP_HDRLEN;
- dp[1] = mp->b_rptr[1]; /* copy control field */
- dp[0] = mp->b_rptr[0]; /* copy address field */
- dp[2] = 0; /* set protocol field */
- dp[3] = proto = PPP_VJC_COMP;
- mp->b_rptr = dp;
- break;
- }
- }
- }
-
- /*
- * Do packet compression if enabled.
- */
- if (proto == PPP_CCP)
- ppp_comp_ccp(q, mp, 0);
- else if (proto != PPP_LCP && (cp->flags & CCP_COMP_RUN)
- && cp->xstate != NULL) {
- len = msgdsize(mp);
- (*cp->xcomp->compress)(cp->xstate, &cmp, mp, len,
- (cp->flags & CCP_ISUP? cp->mtu + PPP_HDRLEN: 0));
- if (cmp != NULL) {
-#ifdef PRIOQ
- cmp->b_band=mp->b_band;
-#endif PRIOQ
- freemsg(mp);
- mp = cmp;
- }
- }
-
- /*
- * Do address/control and protocol compression if enabled.
- */
- if ((cp->flags & COMP_AC)
- && !(proto == PPP_LCP && LCP_USE_DFLT(mp))) {
- mp->b_rptr += 2; /* drop the address & ctrl fields */
- if (proto < 0x100 && (cp->flags & COMP_PROT))
- ++mp->b_rptr; /* drop the high protocol byte */
- } else if (proto < 0x100 && (cp->flags & COMP_PROT)) {
- /* shuffle up the address & ctrl fields */
- mp->b_rptr[2] = mp->b_rptr[1];
- mp->b_rptr[1] = mp->b_rptr[0];
- ++mp->b_rptr;
- }
-
- cp->stats.ppp_opackets++;
- cp->stats.ppp_obytes += msgdsize(mp);
- putnext(q, mp);
- }
-
- return 0;
-}
-
-static int
-ppp_comp_rput(q, mp)
- queue_t *q;
- mblk_t *mp;
-{
- comp_state_t *cp;
- struct iocblk *iop;
- struct ppp_stats *psp;
-
- cp = (comp_state_t *) q->q_ptr;
- if (cp == 0) {
- DPRINT("cp == 0 in ppp_comp_rput\n");
- freemsg(mp);
- return 0;
- }
-
- switch (mp->b_datap->db_type) {
-
- case M_DATA:
- putq(q, mp);
- break;
-
- case M_IOCACK:
- iop = (struct iocblk *) mp->b_rptr;
- switch (iop->ioc_cmd) {
- case PPPIO_GETSTAT:
- /*
- * Catch this on the way back from the ppp_ahdl module
- * so we can fill in the VJ stats.
- */
- if (mp->b_cont == 0 || iop->ioc_count != sizeof(struct ppp_stats))
- break;
- psp = (struct ppp_stats *) mp->b_cont->b_rptr;
- psp->vj = cp->vj_comp.stats;
- break;
- }
- putnext(q, mp);
- break;
-
- case M_CTL:
- switch (mp->b_rptr[0]) {
- case PPPCTL_IERROR:
- ++cp->stats.ppp_ierrors;
- break;
- case PPPCTL_OERROR:
- ++cp->stats.ppp_oerrors;
- break;
- }
- putnext(q, mp);
- break;
-
- default:
- putnext(q, mp);
- }
-
- return 0;
-}
-
-static int
-ppp_comp_rsrv(q)
- queue_t *q;
-{
- int proto, rv, i;
- mblk_t *mp, *dmp = NULL, *np;
- uchar_t *dp, *iphdr;
- comp_state_t *cp;
- int len, hlen, vjlen;
- u_int iphlen;
-
- cp = (comp_state_t *) q->q_ptr;
- if (cp == 0) {
- DPRINT("cp == 0 in ppp_comp_rsrv\n");
- return 0;
- }
-
- while ((mp = getq(q)) != 0) {
- /* assert(mp->b_datap->db_type == M_DATA) */
- if (!canputnext(q)) {
- putbq(q, mp);
- break;
- }
-
- len = msgdsize(mp);
- cp->stats.ppp_ibytes += len;
- cp->stats.ppp_ipackets++;
-
- /*
- * First work out the protocol and where the PPP header ends.
- */
- i = 0;
- proto = MSG_BYTE(mp, 0);
- if (proto == PPP_ALLSTATIONS) {
- i = 2;
- proto = MSG_BYTE(mp, 2);
- }
- if ((proto & 1) == 0) {
- ++i;
- proto = (proto << 8) + MSG_BYTE(mp, i);
- }
- hlen = i + 1;
-
- /*
- * Now reconstruct a complete, contiguous PPP header at the
- * start of the packet.
- */
- if (hlen < ((cp->flags & DECOMP_AC)? 0: 2)
- + ((cp->flags & DECOMP_PROT)? 1: 2)) {
- /* count these? */
- goto bad;
- }
- if (mp->b_rptr + hlen > mp->b_wptr) {
- adjmsg(mp, hlen); /* XXX check this call */
- hlen = 0;
- }
- if (hlen != PPP_HDRLEN) {
- /*
- * We need to put some bytes on the front of the packet
- * to make a full-length PPP header.
- * If we can put them in *mp, we do, otherwise we
- * tack another mblk on the front.
- * XXX we really shouldn't need to carry around
- * the address and control at this stage.
- */
- dp = mp->b_rptr + hlen - PPP_HDRLEN;
- if (dp < mp->b_datap->db_base || mp->b_datap->db_ref > 1) {
- np = allocb(PPP_HDRLEN, BPRI_MED);
- if (np == 0)
- goto bad;
- np->b_cont = mp;
- mp->b_rptr += hlen;
- mp = np;
- dp = mp->b_wptr;
- mp->b_wptr += PPP_HDRLEN;
- } else
- mp->b_rptr = dp;
-
- dp[0] = PPP_ALLSTATIONS;
- dp[1] = PPP_UI;
- dp[2] = proto >> 8;
- dp[3] = proto;
- }
-
- /*
- * Now see if we have a compressed packet to decompress,
- * or a CCP packet to take notice of.
- */
- proto = PPP_PROTOCOL(mp->b_rptr);
- if (proto == PPP_CCP) {
- len = msgdsize(mp);
- if (mp->b_wptr < mp->b_rptr + len) {
- PULLUP(mp, len);
- if (mp == 0)
- goto bad;
- }
- ppp_comp_ccp(q, mp, 1);
- } else if (proto == PPP_COMP) {
- if ((cp->flags & CCP_ISUP)
- && (cp->flags & CCP_DECOMP_RUN) && cp->rstate
- && (cp->flags & CCP_ERR) == 0) {
- rv = (*cp->rcomp->decompress)(cp->rstate, mp, &dmp);
- switch (rv) {
- case DECOMP_OK:
- freemsg(mp);
- mp = dmp;
- if (mp == NULL) {
- /* no error, but no packet returned either. */
- continue;
- }
- break;
- case DECOMP_ERROR:
- cp->flags |= CCP_ERROR;
- ++cp->stats.ppp_ierrors;
- putctl1(q->q_next, M_CTL, PPPCTL_IERROR);
- break;
- case DECOMP_FATALERROR:
- cp->flags |= CCP_FATALERROR;
- ++cp->stats.ppp_ierrors;
- putctl1(q->q_next, M_CTL, PPPCTL_IERROR);
- break;
- }
- }
- } else if (cp->rstate && (cp->flags & CCP_DECOMP_RUN)) {
- (*cp->rcomp->incomp)(cp->rstate, mp);
- }
-
- /*
- * Now do VJ decompression.
- */
- proto = PPP_PROTOCOL(mp->b_rptr);
- if (proto == PPP_VJC_COMP || proto == PPP_VJC_UNCOMP) {
- len = msgdsize(mp) - PPP_HDRLEN;
- if ((cp->flags & DECOMP_VJC) == 0 || len <= 0)
- goto bad;
-
- /*
- * Advance past the ppp header.
- * Here we assume that the whole PPP header is in the first mblk.
- */
- np = mp;
- dp = np->b_rptr + PPP_HDRLEN;
- if (dp >= mp->b_wptr) {
- np = np->b_cont;
- dp = np->b_rptr;
- }
-
- /*
- * Make sure we have sufficient contiguous data at this point.
- */
- hlen = (proto == PPP_VJC_COMP)? MAX_VJHDR: MAX_IPHDR;
- if (hlen > len)
- hlen = len;
- if (np->b_wptr < dp + hlen || np->b_datap->db_ref > 1) {
- PULLUP(mp, hlen + PPP_HDRLEN);
- if (mp == 0)
- goto bad;
- np = mp;
- dp = np->b_rptr + PPP_HDRLEN;
- }
-
- if (proto == PPP_VJC_COMP) {
- /*
- * Decompress VJ-compressed packet.
- * First reset compressor if an input error has occurred.
- */
- if (cp->stats.ppp_ierrors != cp->vj_last_ierrors) {
- if (cp->flags & DBGLOG)
- DPRINT1("ppp%d: resetting VJ\n", cp->unit);
- vj_uncompress_err(&cp->vj_comp);
- cp->vj_last_ierrors = cp->stats.ppp_ierrors;
- }
-
- vjlen = vj_uncompress_tcp(dp, np->b_wptr - dp, len,
- &cp->vj_comp, &iphdr, &iphlen);
- if (vjlen < 0) {
- if (cp->flags & DBGLOG)
- DPRINT2("ppp%d: vj_uncomp_tcp failed, pkt len %d\n",
- cp->unit, len);
- ++cp->vj_last_ierrors; /* so we don't reset next time */
- goto bad;
- }
-
- /* drop ppp and vj headers off */
- if (mp != np) {
- freeb(mp);
- mp = np;
- }
- mp->b_rptr = dp + vjlen;
-
- /* allocate a new mblk for the ppp and ip headers */
- if ((np = allocb(iphlen + PPP_HDRLEN + 4, BPRI_MED)) == 0)
- goto bad;
- dp = np->b_rptr; /* prepend mblk with TCP/IP hdr */
- dp[0] = PPP_ALLSTATIONS; /* reconstruct PPP header */
- dp[1] = PPP_UI;
- dp[2] = PPP_IP >> 8;
- dp[3] = PPP_IP;
- bcopy((caddr_t)iphdr, (caddr_t)dp + PPP_HDRLEN, iphlen);
- np->b_wptr = dp + iphlen + PPP_HDRLEN;
- np->b_cont = mp;
-
- /* XXX there seems to be a bug which causes panics in strread
- if we make an mbuf with only the IP header in it :-( */
- if (mp->b_wptr - mp->b_rptr > 4) {
- bcopy((caddr_t)mp->b_rptr, (caddr_t)np->b_wptr, 4);
- mp->b_rptr += 4;
- np->b_wptr += 4;
- } else {
- bcopy((caddr_t)mp->b_rptr, (caddr_t)np->b_wptr,
- mp->b_wptr - mp->b_rptr);
- np->b_wptr += mp->b_wptr - mp->b_rptr;
- np->b_cont = mp->b_cont;
- freeb(mp);
- }
-
- mp = np;
-
- } else {
- /*
- * "Decompress" a VJ-uncompressed packet.
- */
- cp->vj_last_ierrors = cp->stats.ppp_ierrors;
- if (!vj_uncompress_uncomp(dp, hlen, &cp->vj_comp)) {
- if (cp->flags & DBGLOG)
- DPRINT2("ppp%d: vj_uncomp_uncomp failed, pkt len %d\n",
- cp->unit, len);
- ++cp->vj_last_ierrors; /* don't need to reset next time */
- goto bad;
- }
- mp->b_rptr[3] = PPP_IP; /* fix up the PPP protocol field */
- }
- }
-
- putnext(q, mp);
- continue;
-
- bad:
- if (mp != 0)
- freemsg(mp);
- cp->stats.ppp_ierrors++;
- putctl1(q->q_next, M_CTL, PPPCTL_IERROR);
- }
-
- return 0;
-}
-
-/*
- * Handle a CCP packet being sent or received.
- * Here all the data in the packet is in a single mbuf.
- */
-static void
-ppp_comp_ccp(q, mp, rcvd)
- queue_t *q;
- mblk_t *mp;
- int rcvd;
-{
- int len, clen;
- comp_state_t *cp;
- unsigned char *dp;
-
- len = msgdsize(mp);
- if (len < PPP_HDRLEN + CCP_HDRLEN)
- return;
-
- cp = (comp_state_t *) q->q_ptr;
- dp = mp->b_rptr + PPP_HDRLEN;
- len -= PPP_HDRLEN;
- clen = CCP_LENGTH(dp);
- if (clen > len)
- return;
-
- switch (CCP_CODE(dp)) {
- case CCP_CONFREQ:
- case CCP_TERMREQ:
- case CCP_TERMACK:
- cp->flags &= ~CCP_ISUP;
- break;
-
- case CCP_CONFACK:
- if ((cp->flags & (CCP_ISOPEN | CCP_ISUP)) == CCP_ISOPEN
- && clen >= CCP_HDRLEN + CCP_OPT_MINLEN
- && clen >= CCP_HDRLEN + CCP_OPT_LENGTH(dp + CCP_HDRLEN)) {
- if (!rcvd) {
- if (cp->xstate != NULL
- && (*cp->xcomp->comp_init)
- (cp->xstate, dp + CCP_HDRLEN, clen - CCP_HDRLEN,
- cp->unit, 0, ((cp->flags & DBGLOG) != 0)))
- cp->flags |= CCP_COMP_RUN;
- } else {
- if (cp->rstate != NULL
- && (*cp->rcomp->decomp_init)
- (cp->rstate, dp + CCP_HDRLEN, clen - CCP_HDRLEN,
- cp->unit, 0, cp->mru, ((cp->flags & DBGLOG) != 0)))
- cp->flags = (cp->flags & ~CCP_ERR) | CCP_DECOMP_RUN;
- }
- }
- break;
-
- case CCP_RESETACK:
- if (cp->flags & CCP_ISUP) {
- if (!rcvd) {
- if (cp->xstate && (cp->flags & CCP_COMP_RUN))
- (*cp->xcomp->comp_reset)(cp->xstate);
- } else {
- if (cp->rstate && (cp->flags & CCP_DECOMP_RUN)) {
- (*cp->rcomp->decomp_reset)(cp->rstate);
- cp->flags &= ~CCP_ERROR;
- }
- }
- }
- break;
- }
-}
-
-#if 0
-dump_msg(mp)
- mblk_t *mp;
-{
- dblk_t *db;
-
- while (mp != 0) {
- db = mp->b_datap;
- DPRINT2("mp=%x cont=%x ", mp, mp->b_cont);
- DPRINT3("rptr=%x wptr=%x datap=%x\n", mp->b_rptr, mp->b_wptr, db);
- DPRINT2(" base=%x lim=%x", db->db_base, db->db_lim);
- DPRINT2(" ref=%d type=%d\n", db->db_ref, db->db_type);
- mp = mp->b_cont;
- }
-}
-#endif
-
-static int
-msg_byte(mp, i)
- mblk_t *mp;
- unsigned int i;
-{
- while (mp != 0 && i >= mp->b_wptr - mp->b_rptr)
- mp = mp->b_cont;
- if (mp == 0)
- return -1;
- return mp->b_rptr[i];
-}
diff --git a/mdk-stage1/ppp/solaris/ppp_comp_mod.c b/mdk-stage1/ppp/solaris/ppp_comp_mod.c
deleted file mode 100644
index 83ff8e252..000000000
--- a/mdk-stage1/ppp/solaris/ppp_comp_mod.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * ppp_comp_mod.c - modload support for PPP compression STREAMS module.
- *
- * Copyright (c) 1994 The Australian National University.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies. This software is provided without any
- * warranty, express or implied. The Australian National University
- * makes no representations about the suitability of this software for
- * any purpose.
- *
- * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
- * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
- * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
- * OR MODIFICATIONS.
- *
- * $Id$
- */
-
-/*
- * This file is used under Solaris 2.
- */
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/conf.h>
-#include <sys/modctl.h>
-#include <sys/sunddi.h>
-
-extern struct streamtab ppp_compinfo;
-
-static struct fmodsw fsw = {
- "ppp_comp",
- &ppp_compinfo,
- D_NEW | D_MP | D_MTQPAIR
-};
-
-extern struct mod_ops mod_strmodops;
-
-static struct modlstrmod modlstrmod = {
- &mod_strmodops,
- "PPP compression module",
- &fsw
-};
-
-static struct modlinkage modlinkage = {
- MODREV_1,
- (void *) &modlstrmod,
- NULL
-};
-
-/*
- * Entry points for modloading.
- */
-int
-_init(void)
-{
- return mod_install(&modlinkage);
-}
-
-int
-_fini(void)
-{
- return mod_remove(&modlinkage);
-}
-
-int
-_info(mip)
- struct modinfo *mip;
-{
- return mod_info(&modlinkage, mip);
-}
diff --git a/mdk-stage1/ppp/solaris/ppp_mod.c b/mdk-stage1/ppp/solaris/ppp_mod.c
deleted file mode 100644
index a4b1538a5..000000000
--- a/mdk-stage1/ppp/solaris/ppp_mod.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * ppp_mod.c - modload support for PPP pseudo-device driver.
- *
- * Copyright (c) 1994 The Australian National University.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies. This software is provided without any
- * warranty, express or implied. The Australian National University
- * makes no representations about the suitability of this software for
- * any purpose.
- *
- * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
- * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
- * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
- * OR MODIFICATIONS.
- *
- * $Id$
- */
-
-/*
- * This file is used under Solaris 2.
- */
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/stat.h>
-#include <sys/conf.h>
-#include <sys/modctl.h>
-#include <sys/sunddi.h>
-#include <sys/ksynch.h>
-
-#ifdef __STDC__
-#define __P(x) x
-#else
-#define __P(x) ()
-#endif
-
-static int ppp_identify __P((dev_info_t *));
-static int ppp_attach __P((dev_info_t *, ddi_attach_cmd_t));
-static int ppp_detach __P((dev_info_t *, ddi_detach_cmd_t));
-static int ppp_devinfo __P((dev_info_t *, ddi_info_cmd_t, void *, void **));
-
-extern struct streamtab pppinfo;
-extern krwlock_t ppp_lower_lock;
-
-static dev_info_t *ppp_dip;
-
-static struct cb_ops cb_ppp_ops = {
- nulldev, nulldev, nodev, nodev, /* cb_open, ... */
- nodev, nodev, nodev, nodev, /* cb_dump, ... */
- nodev, nodev, nodev, nochpoll, /* cb_devmap, ... */
- ddi_prop_op, /* cb_prop_op */
- &pppinfo, /* cb_stream */
- D_NEW|D_MP|D_MTQPAIR|D_MTOUTPERIM|D_MTOCEXCL /* cb_flag */
-};
-
-static struct dev_ops ppp_ops = {
- DEVO_REV, /* devo_rev */
- 0, /* devo_refcnt */
- ppp_devinfo, /* devo_getinfo */
- ppp_identify, /* devo_identify */
- nulldev, /* devo_probe */
- ppp_attach, /* devo_attach */
- ppp_detach, /* devo_detach */
- nodev, /* devo_reset */
- &cb_ppp_ops, /* devo_cb_ops */
- NULL /* devo_bus_ops */
-};
-
-/*
- * Module linkage information
- */
-
-static struct modldrv modldrv = {
- &mod_driverops, /* says this is a pseudo driver */
- "PPP-2.3 multiplexing driver",
- &ppp_ops /* driver ops */
-};
-
-static struct modlinkage modlinkage = {
- MODREV_1,
- (void *) &modldrv,
- NULL
-};
-
-int
-_init(void)
-{
- return mod_install(&modlinkage);
-}
-
-int
-_fini(void)
-{
- return mod_remove(&modlinkage);
-}
-
-int
-_info(mip)
- struct modinfo *mip;
-{
- return mod_info(&modlinkage, mip);
-}
-
-static int
-ppp_identify(dip)
- dev_info_t *dip;
-{
- return strcmp(ddi_get_name(dip), "ppp") == 0? DDI_IDENTIFIED:
- DDI_NOT_IDENTIFIED;
-}
-
-static int
-ppp_attach(dip, cmd)
- dev_info_t *dip;
- ddi_attach_cmd_t cmd;
-{
-
- if (cmd != DDI_ATTACH)
- return DDI_FAILURE;
- if (ddi_create_minor_node(dip, "ppp", S_IFCHR, 0, DDI_PSEUDO, CLONE_DEV)
- == DDI_FAILURE) {
- ddi_remove_minor_node(dip, NULL);
- return DDI_FAILURE;
- }
- rw_init(&ppp_lower_lock, NULL, RW_DRIVER, NULL);
- return DDI_SUCCESS;
-}
-
-static int
-ppp_detach(dip, cmd)
- dev_info_t *dip;
- ddi_detach_cmd_t cmd;
-{
- rw_destroy(&ppp_lower_lock);
- ddi_remove_minor_node(dip, NULL);
- return DDI_SUCCESS;
-}
-
-static int
-ppp_devinfo(dip, cmd, arg, result)
- dev_info_t *dip;
- ddi_info_cmd_t cmd;
- void *arg;
- void **result;
-{
- int error;
-
- error = DDI_SUCCESS;
- switch (cmd) {
- case DDI_INFO_DEVT2DEVINFO:
- if (ppp_dip == NULL)
- error = DDI_FAILURE;
- else
- *result = (void *) ppp_dip;
- break;
- case DDI_INFO_DEVT2INSTANCE:
- *result = NULL;
- break;
- default:
- error = DDI_FAILURE;
- }
- return error;
-}
diff --git a/mdk-stage1/ppp/solaris/ppp_mod.h b/mdk-stage1/ppp/solaris/ppp_mod.h
deleted file mode 100644
index f0af00886..000000000
--- a/mdk-stage1/ppp/solaris/ppp_mod.h
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * Miscellaneous definitions for PPP STREAMS modules.
- */
-
-/*
- * Macros for allocating and freeing kernel memory.
- */
-#ifdef SVR4 /* SVR4, including Solaris 2 */
-#include <sys/kmem.h>
-#define ALLOC_SLEEP(n) kmem_alloc((n), KM_SLEEP)
-#define ALLOC_NOSLEEP(n) kmem_alloc((n), KM_NOSLEEP)
-#define FREE(p, n) kmem_free((p), (n))
-#endif
-
-#ifdef SUNOS4
-#include <sys/kmem_alloc.h> /* SunOS 4.x */
-#define ALLOC_SLEEP(n) kmem_alloc((n), KMEM_SLEEP)
-#define ALLOC_NOSLEEP(n) kmem_alloc((n), KMEM_NOSLEEP)
-#define FREE(p, n) kmem_free((p), (n))
-#define NOTSUSER() (suser()? 0: EPERM)
-#define bcanputnext(q, band) canputnext((q))
-#endif /* SunOS 4 */
-
-#ifdef __osf__
-#include <sys/malloc.h>
-
-/* caution: this mirrors macros in sys/malloc.h, and uses interfaces
- * which are subject to change.
- * The problems are that:
- * - the official MALLOC macro wants the lhs of the assignment as an argument,
- * and it takes care of the assignment itself (yuck.)
- * - PPP insists on using "FREE" which conflicts with a macro of the same name.
- *
- */
-#ifdef BUCKETINDX /* V2.0 */
-#define ALLOC_SLEEP(n) (void *)malloc((u_long)(n), BUCKETP(n), M_DEVBUF, M_WAITOK)
-#define ALLOC_NOSLEEP(n) (void *)malloc((u_long)(n), BUCKETP(n), M_DEVBUF, M_NOWAIT)
-#else
-#define ALLOC_SLEEP(n) (void *)malloc((u_long)(n), BUCKETINDEX(n), M_DEVBUF, M_WAITOK)
-#define ALLOC_NOSLEEP(n) (void *)malloc((u_long)(n), BUCKETINDEX(n), M_DEVBUF, M_NOWAIT)
-#endif
-
-#define bcanputnext(q, band) canputnext((q))
-
-#ifdef FREE
-#undef FREE
-#endif
-#define FREE(p, n) free((void *)(p), M_DEVBUF)
-
-#define NO_DLPI 1
-
-#ifndef IFT_PPP
-#define IFT_PPP 0x17
-#endif
-
-#include <sys/proc.h>
-#define NOTSUSER() (suser(u.u_procp->p_rcred, &u.u_acflag) ? EPERM : 0)
-
-/* #include "ppp_osf.h" */
-
-#endif /* __osf__ */
-
-#ifdef AIX4
-#define ALLOC_SLEEP(n) xmalloc((n), 0, pinned_heap) /* AIX V4.x */
-#define ALLOC_NOSLEEP(n) xmalloc((n), 0, pinned_heap) /* AIX V4.x */
-#define FREE(p, n) xmfree((p), pinned_heap)
-#define NOTSUSER() (suser()? 0: EPERM)
-#endif /* AIX */
-
-/*
- * Macros for printing debugging stuff.
- */
-#ifdef DEBUG
-#if defined(SVR4) || defined(__osf__)
-#if defined(SNI)
-#include <sys/strlog.h>
-#define STRLOG_ID 4712
-#define DPRINT(f) strlog(STRLOG_ID, 0, 0, SL_TRACE, f)
-#define DPRINT1(f, a1) strlog(STRLOG_ID, 0, 0, SL_TRACE, f, a1)
-#define DPRINT2(f, a1, a2) strlog(STRLOG_ID, 0, 0, SL_TRACE, f, a1, a2)
-#define DPRINT3(f, a1, a2, a3) strlog(STRLOG_ID, 0, 0, SL_TRACE, f, a1, a2, a3)
-#else
-#define DPRINT(f) cmn_err(CE_CONT, f)
-#define DPRINT1(f, a1) cmn_err(CE_CONT, f, a1)
-#define DPRINT2(f, a1, a2) cmn_err(CE_CONT, f, a1, a2)
-#define DPRINT3(f, a1, a2, a3) cmn_err(CE_CONT, f, a1, a2, a3)
-#endif /* SNI */
-#else
-#define DPRINT(f) printf(f)
-#define DPRINT1(f, a1) printf(f, a1)
-#define DPRINT2(f, a1, a2) printf(f, a1, a2)
-#define DPRINT3(f, a1, a2, a3) printf(f, a1, a2, a3)
-#endif /* SVR4 or OSF */
-
-#else
-#define DPRINT(f) 0
-#define DPRINT1(f, a1) 0
-#define DPRINT2(f, a1, a2) 0
-#define DPRINT3(f, a1, a2, a3) 0
-#endif /* DEBUG */
-
-#ifndef SVR4
-typedef unsigned char uchar_t;
-typedef unsigned short ushort_t;
-#ifndef __osf__
-typedef int minor_t;
-#endif
-#endif
-
-/*
- * If we don't have multithreading support, define substitutes.
- */
-#ifndef D_MP
-# define qprocson(q)
-# define qprocsoff(q)
-# define put(q, mp) ((*(q)->q_qinfo->qi_putp)((q), (mp)))
-# define canputnext(q) canput((q)->q_next)
-# define qwriter(q, mp, func, scope) (func)((q), (mp))
-#endif
-
-#ifdef D_MP
-/* Use msgpullup if we have other multithreading support. */
-#define PULLUP(mp, len) \
- do { \
- mblk_t *np = msgpullup((mp), (len)); \
- freemsg((mp)); \
- mp = np; \
- } while (0)
-
-#else
-/* Use pullupmsg if we don't have any multithreading support. */
-#define PULLUP(mp, len) \
- do { \
- if (!pullupmsg((mp), (len))) { \
- freemsg((mp)); \
- mp = 0; \
- } \
- } while (0)
-#endif
-
-/*
- * How to declare the open and close procedures for a module.
- */
-#ifdef SVR4
-#define MOD_OPEN_DECL(name) \
-static int name __P((queue_t *, dev_t *, int, int, cred_t *))
-
-#define MOD_CLOSE_DECL(name) \
-static int name __P((queue_t *, int, cred_t *))
-
-#define MOD_OPEN(name) \
-static int name(q, devp, flag, sflag, credp) \
- queue_t *q; \
- dev_t *devp; \
- int flag, sflag; \
- cred_t *credp;
-
-#define MOD_CLOSE(name) \
-static int name(q, flag, credp) \
- queue_t *q; \
- int flag; \
- cred_t *credp;
-
-#define OPEN_ERROR(x) return (x)
-#define DRV_OPEN_OK(dev) return 0
-
-#define NOTSUSER() (drv_priv(credp))
-
-#else /* not SVR4 */
-#define MOD_OPEN_DECL(name) \
-static int name __P((queue_t *, int, int, int))
-
-#define MOD_CLOSE_DECL(name) \
-static int name __P((queue_t *, int))
-
-#define MOD_OPEN(name) \
-static int name(q, dev, flag, sflag) \
- queue_t *q; \
- int dev; \
- int flag, sflag;
-
-#define MOD_CLOSE(name) \
-static int name(q, flag) \
- queue_t *q; \
- int flag;
-
-#define OPEN_ERROR(x) { u.u_error = (x); return OPENFAIL; }
-#define DRV_OPEN_OK(dev) return (dev)
-
-#endif /* SVR4 */
diff --git a/mdk-stage1/ppp/sunos4/Makedefs b/mdk-stage1/ppp/sunos4/Makedefs
deleted file mode 100644
index 8b56a2b67..000000000
--- a/mdk-stage1/ppp/sunos4/Makedefs
+++ /dev/null
@@ -1,13 +0,0 @@
-#
-# defines common to several Makefiles
-#
-
-INSTALL= install -o root -g daemon
-
-BINDIR = /usr/local/etc
-MANDIR = /usr/local/man
-ETCDIR = /etc/ppp
-
-# To use gcc, uncomment the next line.
-#CC = gcc
-COPTS = -O
diff --git a/mdk-stage1/ppp/sunos4/Makefile b/mdk-stage1/ppp/sunos4/Makefile
deleted file mode 100644
index 701e24e14..000000000
--- a/mdk-stage1/ppp/sunos4/Makefile
+++ /dev/null
@@ -1,57 +0,0 @@
-#
-# Makefile for STREAMS modules for SunOS 4.
-#
-# $Id$
-#
-
-include Makedefs
-
-LD = /usr/bin/ld # make sure we don't get gnu ld
-
-# Defining __$(ARCH)__ is for gcc's broken version of sun/vddrv.h.
-ARCH = `/bin/arch -k`
-DEFINES= -DKERNEL -D_KERNEL -DSUNOS4 -D$(ARCH) -D__$(ARCH)__ \
- -DDEBUG -DNO_DLPI -DSNIT_SUPPORT
-CFLAGS= $(DEFINES) -I../include $(COPTS)
-
-MODULES= ppp_mod.o ppp_ahdl_mod.o ppp_comp_mod.o if_ppp_mod.o
-
-all: $(MODULES)
-
-ppp_mod.o: ppp.o ppp_vdcmd.o
- $(LD) -r -o ppp_mod.o ppp.o ppp_vdcmd.o
-
-ppp_ahdl_mod.o: ppp_ahdlc.o ppp_ahdlc_vdcmd.o
- $(LD) -r -o ppp_ahdl_mod.o ppp_ahdlc.o ppp_ahdlc_vdcmd.o
-
-COMP_OBJS = ppp_comp.o bsd-comp.o deflate.o zlib.o vjcompress.o \
- ppp_comp_vdcmd.o
-ppp_comp_mod.o: $(COMP_OBJS)
- $(LD) -r -o $@ $(COMP_OBJS)
-
-if_ppp.o: ../modules/if_ppp.c
- $(CC) $(CFLAGS) -c $?
-bsd-comp.o: ../modules/bsd-comp.c
- $(CC) $(CFLAGS) -c $?
-deflate.o: ../modules/deflate.c
- $(CC) $(CFLAGS) -c $?
-ppp.o: ../modules/ppp.c
- $(CC) $(CFLAGS) -c $?
-ppp_ahdlc.o: ../modules/ppp_ahdlc.c
- $(CC) $(CFLAGS) -c $?
-ppp_comp.o: ../modules/ppp_comp.c
- $(CC) $(CFLAGS) -c $?
-vjcompress.o: ../modules/vjcompress.c
- $(CC) $(CFLAGS) -c $?
-zlib.o: ../common/zlib.c
- $(CC) $(CFLAGS) -c $?
-
-if_ppp_mod.o: if_ppp.o if_ppp_vdcmd.o
- $(LD) -r -o if_ppp_mod.o if_ppp.o if_ppp_vdcmd.o
-
-install: all
- $(INSTALL) $(MODULES) $(BINDIR)
- ./ppp.INSTALL
-
-clean:
- rm -f ppp ppp_comp ppp_ahdl *.o *~ core
diff --git a/mdk-stage1/ppp/sunos4/Makefile.top b/mdk-stage1/ppp/sunos4/Makefile.top
deleted file mode 100644
index c86e0884d..000000000
--- a/mdk-stage1/ppp/sunos4/Makefile.top
+++ /dev/null
@@ -1,46 +0,0 @@
-#
-# ppp top level makefile
-#
-
-include sunos4/Makedefs
-
-all:
- cd chat; $(MAKE) all
- cd pppd; $(MAKE) all
- cd pppstats; $(MAKE) all
- cd sunos4; $(MAKE) all
- cd pppdump; $(MAKE) all
-
-install: $(BINDIR) $(MANDIR)/man8 install-progs install-etcppp
-
-install-progs:
- cd chat; $(MAKE) install
- cd pppd; $(MAKE) install
- cd pppstats; $(MAKE) install
- cd pppdump; $(MAKE) install
- cd sunos4; $(MAKE) install
-
-install-etcppp: $(ETCDIR) $(ETCDIR)/options $(ETCDIR)/pap-secrets \
- $(ETCDIR)/chap-secrets
-
-$(ETCDIR)/options:
- $(INSTALL) -c -m 644 etc.ppp/options $@
-$(ETCDIR)/pap-secrets:
- $(INSTALL) -c -m 600 etc.ppp/pap-secrets $@
-$(ETCDIR)/chap-secrets:
- $(INSTALL) -c -m 600 etc.ppp/chap-secrets $@
-
-$(BINDIR):
- $(INSTALL) -d -m 755 $@
-$(MANDIR)/man8:
- $(INSTALL) -d -m 755 $@
-$(ETCDIR):
- $(INSTALL) -d -m 755 $@
-
-clean:
- rm -f *~
- cd chat; $(MAKE) clean
- cd pppd; $(MAKE) clean
- cd pppstats; $(MAKE) clean
- cd sunos4; $(MAKE) clean
-
diff --git a/mdk-stage1/ppp/sunos4/if_ppp_vdcmd.c b/mdk-stage1/ppp/sunos4/if_ppp_vdcmd.c
deleted file mode 100644
index 2bf9710f4..000000000
--- a/mdk-stage1/ppp/sunos4/if_ppp_vdcmd.c
+++ /dev/null
@@ -1,57 +0,0 @@
-#include <sys/types.h>
-#include <sys/errno.h>
-#include <sys/conf.h>
-#include <sun/vddrv.h>
-
-extern struct streamtab if_pppinfo;
-
-static struct vdldrv vd = {
- VDMAGIC_USER,
- "if_ppp"
-};
-
-static int fmodsw_index = -1;
-
-int
-if_ppp_vdcmd(fun, vdp, vdi, vds)
- unsigned int fun;
- struct vddrv *vdp;
- addr_t vdi;
- struct vdstat *vds;
-{
- int n, error;
-
- switch (fun) {
- case VDLOAD:
- vdp->vdd_vdtab = (struct vdlinkage *) &vd;
- if (fmodsw_index >= 0)
- return EBUSY;
- for (n = 0; n < fmodcnt; ++n)
- if (fmodsw[n].f_str == 0)
- break;
- if (n >= fmodcnt)
- return ENODEV;
- strncpy(fmodsw[n].f_name, vd.Drv_name, FMNAMESZ+1);
- fmodsw[n].f_str = &if_pppinfo;
- fmodsw_index = n;
- break;
-
- case VDUNLOAD:
- if (fmodsw_index <= 0)
- return EINVAL;
- error = if_ppp_unload();
- if (error != 0)
- return error;
- fmodsw[fmodsw_index].f_name[0] = 0;
- fmodsw[fmodsw_index].f_str = 0;
- fmodsw_index = -1;
- break;
-
- case VDSTAT:
- break;
-
- default:
- return EIO;
- }
- return 0;
-}
diff --git a/mdk-stage1/ppp/sunos4/ppp.INSTALL b/mdk-stage1/ppp/sunos4/ppp.INSTALL
deleted file mode 100755
index 0018bf8d0..000000000
--- a/mdk-stage1/ppp/sunos4/ppp.INSTALL
+++ /dev/null
@@ -1,104 +0,0 @@
-#!/bin/sh
-
-# Script for loading, unloading, etc. ppp modules.
-
-moddir=/usr/local/etc
-etcppp=/etc/ppp
-
-PATH=/usr/etc:/usr/bin
-
-# Check that we're superuser
-touch /tmp/su$$
-if chown root /tmp/su$$ >/dev/null; then :
-else
- echo "$0: must be root."
- rm -f /tmp/su$$
- exit 1
-fi
-rm -f /tmp/su$$
-
-case "$0" in
-*ppp.INSTALL)
- if [ ! -f ppp.INSTALL ]; then
- echo "ppp.INSTALL: not found"
- exit 1
- fi
- for n in INSTALL LOAD UNLOAD MKDEV RMDEV; do
- if [ -h /dev/ppp.$n -o -f /dev/ppp.$n ]; then
- rm /dev/ppp.$n
- fi
- done
- cp ppp.INSTALL /dev
- for n in LOAD UNLOAD MKDEV RMDEV; do
- ln -s ppp.INSTALL /dev/ppp.$n
- done
- ;;
-
-*ppp.LOAD)
- if modstat | grep -w ppp >/dev/null; then
- echo "ppp driver is already loaded."
- exit 1
- fi
- if modstat | grep -w if_ppp >/dev/null; then
- echo "if_ppp module already loaded: not reloading."
- else
- echo -n "if_ppp: "
- modload $moddir/if_ppp_mod.o -sym -entry _if_ppp_vdcmd \
- -o $etcppp/if_ppp_mod
- fi
- echo -n "ppp: "
- modload $moddir/ppp_mod.o -sym -entry _ppp_vdcmd -exec /dev/ppp.MKDEV \
- -o $etcppp/ppp_mod
- echo -n "ppp_comp: "
- modload $moddir/ppp_comp_mod.o -sym -entry _ppp_comp_vdcmd \
- -o $etcppp/ppp_comp
- echo -n "ppp_ahdl: "
- modload $moddir/ppp_ahdl_mod.o -sym -entry _ppp_ahdlc_vdcmd \
- -o $etcppp/ppp_ahdl
- exit 0
- ;;
-
-*ppp.MKDEV)
- # args: module number, type, b-major, c-major
- if [ $# -ne 4 ]; then
- echo "Usage: $0 module-id module-type b-major c-major"
- exit 1
- fi
- if [ "$2" -ne "12345607" -a "$2" -ne "12345600" ]; then
- echo "$0: $2: bad module type"
- exit 1
- fi
- rm -f /dev/ppp
- # we "just know" that 37 is the major number of the clone driver
- mknod /dev/ppp c 37 $4
- chmod 644 /dev/ppp
- exit 0
- ;;
-
-*ppp.UNLOAD)
- stat=0
- if modstat | grep -w if_ppp >/dev/null; then
- echo "$0: not unloading if_ppp module."
- fi
- for mod in ppp ppp_comp ppp_ahdl; do
- id=`modstat | grep -w $mod | awk '{print $1}'`
- if [ x$id = x ]; then
- echo "$mod is not loaded."
- stat=1
- else
- modunload -id $id
- fi
- done
- exit $stat
- ;;
-
-*ppp.RMDEV)
- rm -f /dev/ppp
- exit 0
- ;;
-
-*)
- echo "Invocation names: ppp.INSTALL ppp.LOAD ppp.UNLOAD ppp.MKDEV ppp.RMDEV"
- exit 1
- ;;
-esac
diff --git a/mdk-stage1/ppp/sunos4/ppp_ahdlc_vdcmd.c b/mdk-stage1/ppp/sunos4/ppp_ahdlc_vdcmd.c
deleted file mode 100644
index 2dbe8262b..000000000
--- a/mdk-stage1/ppp/sunos4/ppp_ahdlc_vdcmd.c
+++ /dev/null
@@ -1,57 +0,0 @@
-#include <sys/types.h>
-#include <sys/errno.h>
-#include <sys/conf.h>
-#include <sun/vddrv.h>
-
-extern struct streamtab ppp_ahdlcinfo;
-extern int ppp_ahdlc_count;
-
-static struct vdldrv vd = {
- VDMAGIC_USER,
- "ppp_ahdl"
-};
-
-static int fmodsw_index = -1;
-
-int
-ppp_ahdlc_vdcmd(fun, vdp, vdi, vds)
- unsigned int fun;
- struct vddrv *vdp;
- addr_t vdi;
- struct vdstat *vds;
-{
- int n;
-
- switch (fun) {
- case VDLOAD:
- vdp->vdd_vdtab = (struct vdlinkage *) &vd;
- if (fmodsw_index >= 0)
- return EBUSY;
- for (n = 0; n < fmodcnt; ++n)
- if (fmodsw[n].f_str == 0)
- break;
- if (n >= fmodcnt)
- return ENODEV;
- strncpy(fmodsw[n].f_name, vd.Drv_name, FMNAMESZ+1);
- fmodsw[n].f_str = &ppp_ahdlcinfo;
- fmodsw_index = n;
- break;
-
- case VDUNLOAD:
- if (ppp_ahdlc_count > 0)
- return EBUSY;
- if (fmodsw_index <= 0)
- return EINVAL;
- fmodsw[fmodsw_index].f_name[0] = 0;
- fmodsw[fmodsw_index].f_str = 0;
- fmodsw_index = -1;
- break;
-
- case VDSTAT:
- break;
-
- default:
- return EIO;
- }
- return 0;
-}
diff --git a/mdk-stage1/ppp/sunos4/ppp_comp_vdcmd.c b/mdk-stage1/ppp/sunos4/ppp_comp_vdcmd.c
deleted file mode 100644
index b81bc47e8..000000000
--- a/mdk-stage1/ppp/sunos4/ppp_comp_vdcmd.c
+++ /dev/null
@@ -1,57 +0,0 @@
-#include <sys/types.h>
-#include <sys/errno.h>
-#include <sys/conf.h>
-#include <sun/vddrv.h>
-
-extern struct streamtab ppp_compinfo;
-extern int ppp_comp_count;
-
-static struct vdldrv vd = {
- VDMAGIC_USER,
- "ppp_comp"
-};
-
-static int fmodsw_index = -1;
-
-int
-ppp_comp_vdcmd(fun, vdp, vdi, vds)
- unsigned int fun;
- struct vddrv *vdp;
- addr_t vdi;
- struct vdstat *vds;
-{
- int n;
-
- switch (fun) {
- case VDLOAD:
- vdp->vdd_vdtab = (struct vdlinkage *) &vd;
- if (fmodsw_index >= 0)
- return EBUSY;
- for (n = 0; n < fmodcnt; ++n)
- if (fmodsw[n].f_str == 0)
- break;
- if (n >= fmodcnt)
- return ENODEV;
- strncpy(fmodsw[n].f_name, vd.Drv_name, FMNAMESZ+1);
- fmodsw[n].f_str = &ppp_compinfo;
- fmodsw_index = n;
- break;
-
- case VDUNLOAD:
- if (ppp_comp_count > 0)
- return EBUSY;
- if (fmodsw_index <= 0)
- return EINVAL;
- fmodsw[fmodsw_index].f_name[0] = 0;
- fmodsw[fmodsw_index].f_str = 0;
- fmodsw_index = -1;
- break;
-
- case VDSTAT:
- break;
-
- default:
- return EIO;
- }
- return 0;
-}
diff --git a/mdk-stage1/ppp/sunos4/ppp_vdcmd.c b/mdk-stage1/ppp/sunos4/ppp_vdcmd.c
deleted file mode 100644
index 68095c92e..000000000
--- a/mdk-stage1/ppp/sunos4/ppp_vdcmd.c
+++ /dev/null
@@ -1,81 +0,0 @@
-#include <sys/types.h>
-#include <sys/errno.h>
-#include <sys/conf.h>
-#include <sun/vddrv.h>
-
-extern struct streamtab pppinfo;
-extern int ppp_count;
-extern int nchrdev;
-
-static struct vdldrv vd = {
- VDMAGIC_PSEUDO,
- "ppp"
-};
-
-extern int nodev();
-
-static struct cdevsw ppp_cdevsw = {
- nodev, nodev, nodev, nodev, nodev, nodev, nodev, 0,
- &pppinfo
-};
-
-static struct cdevsw old_entry;
-
-int
-ppp_vdcmd(fun, vdp, vdi, vds)
- unsigned int fun;
- struct vddrv *vdp;
- addr_t vdi;
- struct vdstat *vds;
-{
- static int majnum = -1;
- int n, maj;
-
- switch (fun) {
- case VDLOAD:
- /*
- * It seems like modload doesn't install the cdevsw entry
- * for us. Oh well...
- */
- for (maj = 1; maj < nchrdev; ++maj)
- if (cdevsw[maj].d_open == vd_unuseddev)
- break;
- if (maj >= nchrdev)
- return ENODEV;
- vd.Drv_charmajor = maj;
- old_entry = cdevsw[maj];
- cdevsw[maj] = ppp_cdevsw;
- vd.Drv_cdevsw = &ppp_cdevsw;
- vdp->vdd_vdtab = (struct vdlinkage *) &vd;
- majnum = maj;
- break;
-
- case VDUNLOAD:
- if (ppp_count > 0)
- return EBUSY;
- if (vd.Drv_charmajor > 0)
- cdevsw[vd.Drv_charmajor] = old_entry;
- break;
-
- case VDSTAT:
- /*
- * We have to fool the modstat command into thinking
- * that this module is actually a driver! This is
- * so that installation commands that use the -exec
- * option of modload to run a shell script find out
- * the block and/or char major numbers of the driver
- * loaded (so that the shell script can go off to
- * /dev and *MAKE* the bloody device nodes- remember
- * they might change from one load to another if
- * you don't hardwire the number!).
- */
- vds->vds_magic = VDMAGIC_DRV;
- vds->vds_modinfo[0] = (char) 0;
- vds->vds_modinfo[1] = (char) majnum;
- break;
-
- default:
- return EIO;
- }
- return 0;
-}
diff --git a/mdk-stage1/ppp/svr4/Makedefs b/mdk-stage1/ppp/svr4/Makedefs
deleted file mode 100644
index 81db8ab2e..000000000
--- a/mdk-stage1/ppp/svr4/Makedefs
+++ /dev/null
@@ -1,16 +0,0 @@
-#
-# defines common to several Makefiles
-#
-
-INSTALL= /usr/sbin/install
-
-BINDIR = /usr/local/bin
-MANDIR = /usr/local/man
-ETCDIR = /etc/ppp
-
-COPTS = -O -Xa
-
-# For compiling with gcc, comment out the COPTS definition above and
-# uncomment the next 2 definitions.
-#CC = gcc
-#COPTS = -O2
diff --git a/mdk-stage1/ppp/svr4/Makedefs.sol2 b/mdk-stage1/ppp/svr4/Makedefs.sol2
deleted file mode 100644
index e8b8d282e..000000000
--- a/mdk-stage1/ppp/svr4/Makedefs.sol2
+++ /dev/null
@@ -1,59 +0,0 @@
-#
-# Generic make definitions for Solaris 2
-#
-# $Id$
-#
-
-include ../svr4/Makedefs
-
-CPPFLAGS = -D_KERNEL -DSVR4 -DSOL2 -DPRIOQ -DDEBUG -I../include
-CFLAGS = $(CPPFLAGS) $(COPTS)
-
-# lint-specific variables
-LINT = lint
-LINT_OPT_32 =
-LINT_OPT_64 = -Xarch=v9 -errchk=longptr64
-
-LINT_32 =
-LINT_32 += -erroff=E_BAD_PTR_CAST_ALIGN
-LINT_32 += -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED
-LINT_32 += -erroff=E_SUSPICIOUS_COMPARISON
-LINT_32 += -erroff=E_CAST_UINT_TO_SIGNED_INT
-LINT_32 += -erroff=E_PASS_UINT_TO_SIGNED_INT
-LINT_32 += -erroff=E_INVALID_ANNOTATION_NAME
-LINT_32 += -erroff=E_FUNC_ARG_UNUSED
-# This might be needed, but zlib.c and vjcompress.c will squawk
-# when not ignored
-LINT_32 += -erroff=E_CASE_FALLTHRU
-LINT_32 += -erroff=E_RET_INT_IMPLICITLY
-LINT_32 += -erroff=E_FUNC_NO_RET_VAL
-# Some STREAMS macros will be noisy too when this isn't ignored
-LINT_32 += -erroff=E_CONSTANT_CONDITION
-LINT_32 += -erroff=E_CONST_EXPR
-
-# Extra noise suppressant for 64-bit
-EXTRA_OFF =
-EXTRA_OFF += -erroff=E_CAST_INT_TO_SMALL_INT
-EXTRA_OFF += -erroff=E_CAST_INT_CONST_TO_SMALL_INT
-EXTRA_OFF += -erroff=E_CAST_TO_PTR_FROM_INT
-EXTRA_OFF += -erroff=E_ASSIGN_INT_TO_SMALL_INT
-EXTRA_OFF += -erroff=E_ASSIGN_INT_FROM_BIG_CONST
-EXTRA_OFF += -erroff=E_CONST_PROMOTED_UNSIGNED_LL
-EXTRA_OFF += -erroff=E_CONST_PROMOTED_LONG_LONG
-EXTRA_OFF += -erroff=E_CONST_TRUNCATED_BY_ASSIGN
-EXTRA_OFF += -erroff=E_PASS_INT_FROM_BIG_CONST
-EXTRA_OFF += -erroff=E_COMP_INT_WITH_LARGE_INT
-EXTRA_OFF += -erroff=E_ASSIGN_UINT_TO_SIGNED_INT
-EXTRA_OFF += -erroff=E_ASSIGN_NARROW_CONV
-EXTRA_OFF += -erroff=E_PASS_INT_TO_SMALL_INT
-EXTRA_OFF += -erroff=E_PTR_CONV_LOSES_BITS
-
-LINT_64 = $(LINT_32)
-LINT_64 += $(EXTRA_OFF)
-
-LINTFLAGS64 = -Xa -nsxmuF -errtags=yes $(LINT_OPT_64) $(LINT_64)
-LINT64 = $(LINT) -c $(LINTFLAGS64) $(CPPFLAGS)
-
-LINTFLAGS32 = -Xa -nsxmuF -errtags=yes $(LINT_OPT_32) $(LINT_32)
-LINT32 = $(LINT) -c $(LINTFLAGS32) $(CPPFLAGS)
-
diff --git a/mdk-stage1/ppp/svr4/Makefile.sol2 b/mdk-stage1/ppp/svr4/Makefile.sol2
deleted file mode 100644
index 5b2ca8635..000000000
--- a/mdk-stage1/ppp/svr4/Makefile.sol2
+++ /dev/null
@@ -1,66 +0,0 @@
-#
-# Makefile for STREAMS modules for Solaris 2.
-#
-# $Id$
-#
-
-include Makedefs.sol2
-
-COPTS += -xO2 -xspace -W0,-Lt
-
-COMP_OBJS = ppp_comp.o bsd-comp.o deflate.o zlib.o vjcompress.o \
- ppp_comp_mod.o
-
-all: ppp ppp_ahdl ppp_comp
-
-ppp: ppp.o ppp_mod.o
- ld -r -o $@ ppp.o ppp_mod.o
- chmod +x $@
-
-ppp_ahdl: ppp_ahdlc.o ppp_ahdlc_mod.o
- ld -r -o $@ ppp_ahdlc.o ppp_ahdlc_mod.o
- chmod +x $@
-
-ppp_comp: $(COMP_OBJS)
- ld -r -o $@ $(COMP_OBJS)
- chmod +x $@
-
-bsd-comp.o: ../modules/bsd-comp.c
- $(CC) $(CFLAGS) -c $?
-deflate.o: ../modules/deflate.c
- $(CC) $(CFLAGS) -c $?
-ppp.o: ../modules/ppp.c
- $(CC) $(CFLAGS) -c $?
-ppp_mod.o: ppp_mod.c
- $(CC) $(CFLAGS) -c $?
-ppp_ahdlc_mod.o: ppp_ahdlc_mod.c
- $(CC) $(CFLAGS) -c $?
-ppp_ahdlc.o: ../modules/ppp_ahdlc.c
- $(CC) $(CFLAGS) -c $?
-ppp_comp.o: ../modules/ppp_comp.c
- $(CC) $(CFLAGS) -c $?
-ppp_comp_mod.o: ppp_comp_mod.c
- $(CC) $(CFLAGS) -c $?
-vjcompress.o: ../modules/vjcompress.c
- $(CC) $(CFLAGS) -c $?
-zlib.o: ../common/zlib.c
- $(CC) $(CFLAGS) -c $?
-
-install:
- cp ppp ppp.conf /kernel/drv
- cp ppp_comp ppp_ahdl /kernel/strmod
- if grep clone:ppp /etc/minor_perm; then :; else \
- echo clone:ppp 0644 root sys >>/etc/minor_perm; fi
- /usr/sbin/rem_drv ppp 2>/dev/null || true
- /usr/sbin/add_drv ppp
-
-SRCS = ../modules/ppp.c ppp_mod.c ../modules/ppp_ahdlc.c ppp_ahdlc_mod.c \
- ../modules/ppp_comp.c ../modules/bsd-comp.c ../modules/deflate.c \
- ../common/zlib.c ../modules/vjcompress.c ppp_comp_mod.c
-
-lint:
- $(LINT32) $(SRCS)
-
-clean:
- rm -f ppp ppp_comp ppp_ahdl *.o *~ core
- rm -f *.ln
diff --git a/mdk-stage1/ppp/svr4/Makefile.sol2-64 b/mdk-stage1/ppp/svr4/Makefile.sol2-64
deleted file mode 100644
index 80c6b185e..000000000
--- a/mdk-stage1/ppp/svr4/Makefile.sol2-64
+++ /dev/null
@@ -1,85 +0,0 @@
-#
-# Makefile for 64-bit STREAMS modules for Solaris 2.
-#
-# $Id$
-#
-
-include Makedefs.sol2
-
-# Sun's cc flag for LP64 compilation / linkage
-COPTS += -xchip=ultra -xarch=v9 -Wc,-xcode=abs32 -Wc,-Qiselect-regsym=0 -xO3 -xspace -W0,-Lt
-
-# subdirectory where 64-bit objects / binaries will be placed
-LP64DIR = sparcv9
-
-# Name of legacy Makefile (for 32-bit binaries)
-STD_MAKE = Makefile.sol2
-
-COMP_OBJS = $(LP64DIR)/ppp_comp.o $(LP64DIR)/bsd-comp.o \
- $(LP64DIR)/deflate.o $(LP64DIR)/zlib.o $(LP64DIR)/vjcompress.o \
- $(LP64DIR)/ppp_comp_mod.o
-
-all: std_objs $(LP64DIR) ppp ppp_ahdl ppp_comp
-
-std_objs:
- $(MAKE) -f $(STD_MAKE) all
-
-ppp: $(LP64DIR)/ppp.o $(LP64DIR)/ppp_mod.o
- ld -r -o $(LP64DIR)/$@ $(LP64DIR)/ppp.o $(LP64DIR)/ppp_mod.o
- chmod +x $(LP64DIR)/$@
-
-ppp_ahdl: $(LP64DIR)/ppp_ahdlc.o $(LP64DIR)/ppp_ahdlc_mod.o
- ld -r -o $(LP64DIR)/$@ $(LP64DIR)/ppp_ahdlc.o $(LP64DIR)/ppp_ahdlc_mod.o
- chmod +x $(LP64DIR)/$@
-
-ppp_comp: $(COMP_OBJS)
- ld -r -o $(LP64DIR)/$@ $(COMP_OBJS)
- chmod +x $(LP64DIR)/$@
-
-$(LP64DIR)/bsd-comp.o: ../modules/bsd-comp.c
- $(CC) $(CFLAGS) -c $? -o $@
-$(LP64DIR)/deflate.o: ../modules/deflate.c
- $(CC) $(CFLAGS) -c $? -o $@
-$(LP64DIR)/ppp.o: ../modules/ppp.c
- $(CC) $(CFLAGS) -c $? -o $@
-$(LP64DIR)/ppp_mod.o: ppp_mod.c
- $(CC) $(CFLAGS) -c $? -o $@
-$(LP64DIR)/ppp_ahdlc_mod.o: ppp_ahdlc_mod.c
- $(CC) $(CFLAGS) -c $? -o $@
-$(LP64DIR)/ppp_ahdlc.o: ../modules/ppp_ahdlc.c
- $(CC) $(CFLAGS) -c $? -o $@
-$(LP64DIR)/ppp_comp.o: ../modules/ppp_comp.c
- $(CC) $(CFLAGS) -c $? -o $@
-$(LP64DIR)/ppp_comp_mod.o: ppp_comp_mod.c
- $(CC) $(CFLAGS) -c $? -o $@
-$(LP64DIR)/vjcompress.o: ../modules/vjcompress.c
- $(CC) $(CFLAGS) -c $? -o $@
-$(LP64DIR)/zlib.o: ../common/zlib.c
- $(CC) $(CFLAGS) -c $? -o $@
-
-$(LP64DIR):
- mkdir -m 755 -p $@
-
-install:
- cp ppp ppp.conf /kernel/drv
- cp ppp_comp ppp_ahdl /kernel/strmod
- cp $(LP64DIR)/ppp /kernel/drv/$(LP64DIR)
- cp $(LP64DIR)/ppp_comp $(LP64DIR)/ppp_ahdl /kernel/strmod/$(LP64DIR)
- if grep clone:ppp /etc/minor_perm; then :; else \
- echo clone:ppp 0644 root sys >>/etc/minor_perm; fi
- /usr/sbin/rem_drv ppp 2>/dev/null || true
- /usr/sbin/add_drv ppp
-
-SRCS = ../modules/ppp.c ppp_mod.c ../modules/ppp_ahdlc.c ppp_ahdlc_mod.c \
- ../modules/ppp_comp.c ../modules/bsd-comp.c ../modules/deflate.c \
- ../common/zlib.c ../modules/vjcompress.c ppp_comp_mod.c
-
-lint:
- $(LINT64) $(SRCS)
-
-lint-32:
- $(LINT32) $(SRCS)
-
-clean:
- $(MAKE) -f $(STD_MAKE) clean
- rm -f $(LP64DIR)/ppp $(LP64DIR)/ppp_comp $(LP64DIR)/ppp_ahdl $(LP64DIR)/*.o $(LP64DIR)/*~ $(LP64DIR)/core
diff --git a/mdk-stage1/ppp/svr4/Makefile.svr4 b/mdk-stage1/ppp/svr4/Makefile.svr4
deleted file mode 100644
index 252c52428..000000000
--- a/mdk-stage1/ppp/svr4/Makefile.svr4
+++ /dev/null
@@ -1,60 +0,0 @@
-#
-# Makefile for STREAMS modules for SVR4.
-#
-# $Id$
-#
-
-COPTS = -O
-
-CFLAGS= -D_KERNEL -DSVR4 -DLACHTCP -I../include $(COPTS)
-
-all: ppp ppp_ahdl ppp_comp
-
-ppp: ppp.o
- ld -r -o $@ ppp.o
-
-ppp_ahdl: ppp_ahdlc.o
- ld -r -o $@ ppp_ahdlc.o
-
-ppp_comp: ppp_comp.o bsd-comp.o vjcompress.o deflate.o zlib.o
- ld -r -o $@ ppp_comp.o bsd-comp.o vjcompress.o deflate.o zlib.o
-
-bsd-comp.o: ../modules/bsd-comp.c
- $(CC) $(CFLAGS) -c $?
-deflate.o: ../modules/deflate.c
- $(CC) $(CFLAGS) -c $?
-ppp.o: ../modules/ppp.c
- $(CC) $(CFLAGS) -c $?
-ppp_ahdlc.o: ../modules/ppp_ahdlc.c
- $(CC) $(CFLAGS) -c $?
-ppp_comp.o: ../modules/ppp_comp.c
- $(CC) $(CFLAGS) -c $?
-vjcompress.o: ../modules/vjcompress.c
- $(CC) $(CFLAGS) -c $?
-zlib.o: ../common/zlib.c
- $(CC) $(CFLAGS) -c $?
-
-install: all
- cp ppp Driver.o
- cp ppp.Master Master
- cp ppp.System System
- cp ppp.Node Node
- /etc/conf/bin/idinstall -d ppp
- /etc/conf/bin/idinstall -a ppp
- cp ppp_comp Driver.o
- cp ppp_comp.Master Master
- cp ppp_comp.System System
- /etc/conf/bin/idinstall -d ppp_comp
- /etc/conf/bin/idinstall -a ppp_comp
- cp ppp_ahdl Driver.o
- cp ppp_ahdl.Master Master
- cp ppp_ahdl.System System
- /etc/conf/bin/idinstall -d ppp_ahdl
- /etc/conf/bin/idinstall -a ppp_ahdl
- @echo
- @echo 'NOTE: You must rebuild your kernel to incorporate the driver.'
- @echo '(use /etc/conf/bin/idbuild)'
- @echo
-
-clean:
- rm -f ppp ppp_comp ppp_ahdl *.o *~ core
diff --git a/mdk-stage1/ppp/svr4/Makefile.top b/mdk-stage1/ppp/svr4/Makefile.top
deleted file mode 100644
index 253e48acb..000000000
--- a/mdk-stage1/ppp/svr4/Makefile.top
+++ /dev/null
@@ -1,50 +0,0 @@
-#
-# ppp top level makefile for SVR4 and Solaris 2
-#
-# $Id$
-#
-
-include svr4/Makedefs
-
-all:
- cd chat; $(MAKE) all
- cd pppd; $(MAKE) all
- cd pppstats; $(MAKE) all
- cd pppdump; $(MAKE) all
- cd svr4; $(MAKE) all
-
-install: $(BINDIR) $(MANDIR)/man8 install-progs install-etcppp
-
-install-progs:
- cd chat; $(MAKE) install
- cd pppd; $(MAKE) install
- cd pppstats; $(MAKE) install
- cd pppdump; $(MAKE) install
- cd svr4; $(MAKE) install
-
-install-etcppp: $(ETCDIR) $(ETCDIR)/options $(ETCDIR)/pap-secrets \
- $(ETCDIR)/chap-secrets
-
-$(ETCDIR)/options:
- cp etc.ppp/options $@
- chmod go-w $@
-$(ETCDIR)/pap-secrets:
- $(INSTALL) -f $(ETCDIR) -m 600 etc.ppp/pap-secrets
-$(ETCDIR)/chap-secrets:
- $(INSTALL) -f $(ETCDIR) -m 600 etc.ppp/chap-secrets
-
-$(BINDIR):
- mkdir -m 755 -p $@
-$(MANDIR)/man8:
- mkdir -m 755 -p $@
-$(ETCDIR):
- mkdir -m 755 -p $@
-
-clean:
- rm -f *~
- cd chat; $(MAKE) clean
- cd pppd; $(MAKE) clean
- cd pppstats; $(MAKE) clean
- cd pppdump; $(MAKE) clean
- cd svr4; $(MAKE) clean
-
diff --git a/mdk-stage1/ppp/svr4/ppp.Master b/mdk-stage1/ppp/svr4/ppp.Master
deleted file mode 100644
index 346db035b..000000000
--- a/mdk-stage1/ppp/svr4/ppp.Master
+++ /dev/null
@@ -1 +0,0 @@
-ppp - Sciof ppp 0 0 1 128 -1
diff --git a/mdk-stage1/ppp/svr4/ppp.Node b/mdk-stage1/ppp/svr4/ppp.Node
deleted file mode 100644
index 7767ade71..000000000
--- a/mdk-stage1/ppp/svr4/ppp.Node
+++ /dev/null
@@ -1 +0,0 @@
-clone ppp c ppp
diff --git a/mdk-stage1/ppp/svr4/ppp.System b/mdk-stage1/ppp/svr4/ppp.System
deleted file mode 100644
index e60c0eec3..000000000
--- a/mdk-stage1/ppp/svr4/ppp.System
+++ /dev/null
@@ -1 +0,0 @@
-ppp Y 1 0 0 0 0 0 0 0
diff --git a/mdk-stage1/ppp/svr4/ppp.conf b/mdk-stage1/ppp/svr4/ppp.conf
deleted file mode 100644
index e443a7aac..000000000
--- a/mdk-stage1/ppp/svr4/ppp.conf
+++ /dev/null
@@ -1 +0,0 @@
-name="ppp" parent="pseudo" instance=0;
diff --git a/mdk-stage1/ppp/svr4/ppp_ahdl.Master b/mdk-stage1/ppp/svr4/ppp_ahdl.Master
deleted file mode 100644
index 4fde52596..000000000
--- a/mdk-stage1/ppp/svr4/ppp_ahdl.Master
+++ /dev/null
@@ -1 +0,0 @@
-ppp_ahdl - iSf phdl 0 0 1 1 -1
diff --git a/mdk-stage1/ppp/svr4/ppp_ahdl.System b/mdk-stage1/ppp/svr4/ppp_ahdl.System
deleted file mode 100644
index f41a500f4..000000000
--- a/mdk-stage1/ppp/svr4/ppp_ahdl.System
+++ /dev/null
@@ -1 +0,0 @@
-ppp_ahdl Y 1 0 0 0 0 0 0 0
diff --git a/mdk-stage1/ppp/svr4/ppp_ahdlc_mod.c b/mdk-stage1/ppp/svr4/ppp_ahdlc_mod.c
deleted file mode 100644
index f81be8abb..000000000
--- a/mdk-stage1/ppp/svr4/ppp_ahdlc_mod.c
+++ /dev/null
@@ -1,49 +0,0 @@
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/conf.h>
-#include <sys/modctl.h>
-#include <sys/sunddi.h>
-
-extern struct streamtab ppp_ahdlcinfo;
-
-static struct fmodsw fsw = {
- "ppp_ahdl",
- &ppp_ahdlcinfo,
- D_NEW | D_MP | D_MTQPAIR
-};
-
-extern struct mod_ops mod_strmodops;
-
-static struct modlstrmod modlstrmod = {
- &mod_strmodops,
- "PPP async HDLC module",
- &fsw
-};
-
-static struct modlinkage modlinkage = {
- MODREV_1,
- (void *) &modlstrmod,
- NULL
-};
-
-/*
- * Entry points for modloading.
- */
-int
-_init(void)
-{
- return mod_install(&modlinkage);
-}
-
-int
-_fini(void)
-{
- return mod_remove(&modlinkage);
-}
-
-int
-_info(mip)
- struct modinfo *mip;
-{
- return mod_info(&modlinkage, mip);
-}
diff --git a/mdk-stage1/ppp/svr4/ppp_comp.Master b/mdk-stage1/ppp/svr4/ppp_comp.Master
deleted file mode 100644
index 78019064e..000000000
--- a/mdk-stage1/ppp/svr4/ppp_comp.Master
+++ /dev/null
@@ -1 +0,0 @@
-ppp_comp - iSf pcmp 0 0 1 1 -1
diff --git a/mdk-stage1/ppp/svr4/ppp_comp.System b/mdk-stage1/ppp/svr4/ppp_comp.System
deleted file mode 100644
index e69d4a1a3..000000000
--- a/mdk-stage1/ppp/svr4/ppp_comp.System
+++ /dev/null
@@ -1 +0,0 @@
-ppp_comp Y 1 0 0 0 0 0 0 0
diff --git a/mdk-stage1/ppp/svr4/ppp_comp_mod.c b/mdk-stage1/ppp/svr4/ppp_comp_mod.c
deleted file mode 100644
index 83ff8e252..000000000
--- a/mdk-stage1/ppp/svr4/ppp_comp_mod.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * ppp_comp_mod.c - modload support for PPP compression STREAMS module.
- *
- * Copyright (c) 1994 The Australian National University.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies. This software is provided without any
- * warranty, express or implied. The Australian National University
- * makes no representations about the suitability of this software for
- * any purpose.
- *
- * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
- * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
- * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
- * OR MODIFICATIONS.
- *
- * $Id$
- */
-
-/*
- * This file is used under Solaris 2.
- */
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/conf.h>
-#include <sys/modctl.h>
-#include <sys/sunddi.h>
-
-extern struct streamtab ppp_compinfo;
-
-static struct fmodsw fsw = {
- "ppp_comp",
- &ppp_compinfo,
- D_NEW | D_MP | D_MTQPAIR
-};
-
-extern struct mod_ops mod_strmodops;
-
-static struct modlstrmod modlstrmod = {
- &mod_strmodops,
- "PPP compression module",
- &fsw
-};
-
-static struct modlinkage modlinkage = {
- MODREV_1,
- (void *) &modlstrmod,
- NULL
-};
-
-/*
- * Entry points for modloading.
- */
-int
-_init(void)
-{
- return mod_install(&modlinkage);
-}
-
-int
-_fini(void)
-{
- return mod_remove(&modlinkage);
-}
-
-int
-_info(mip)
- struct modinfo *mip;
-{
- return mod_info(&modlinkage, mip);
-}
diff --git a/mdk-stage1/ppp/svr4/ppp_mod.c b/mdk-stage1/ppp/svr4/ppp_mod.c
deleted file mode 100644
index a4b1538a5..000000000
--- a/mdk-stage1/ppp/svr4/ppp_mod.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * ppp_mod.c - modload support for PPP pseudo-device driver.
- *
- * Copyright (c) 1994 The Australian National University.
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation is hereby granted, provided that the above copyright
- * notice appears in all copies. This software is provided without any
- * warranty, express or implied. The Australian National University
- * makes no representations about the suitability of this software for
- * any purpose.
- *
- * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
- * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
- * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
- * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
- * OR MODIFICATIONS.
- *
- * $Id$
- */
-
-/*
- * This file is used under Solaris 2.
- */
-
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/stat.h>
-#include <sys/conf.h>
-#include <sys/modctl.h>
-#include <sys/sunddi.h>
-#include <sys/ksynch.h>
-
-#ifdef __STDC__
-#define __P(x) x
-#else
-#define __P(x) ()
-#endif
-
-static int ppp_identify __P((dev_info_t *));
-static int ppp_attach __P((dev_info_t *, ddi_attach_cmd_t));
-static int ppp_detach __P((dev_info_t *, ddi_detach_cmd_t));
-static int ppp_devinfo __P((dev_info_t *, ddi_info_cmd_t, void *, void **));
-
-extern struct streamtab pppinfo;
-extern krwlock_t ppp_lower_lock;
-
-static dev_info_t *ppp_dip;
-
-static struct cb_ops cb_ppp_ops = {
- nulldev, nulldev, nodev, nodev, /* cb_open, ... */
- nodev, nodev, nodev, nodev, /* cb_dump, ... */
- nodev, nodev, nodev, nochpoll, /* cb_devmap, ... */
- ddi_prop_op, /* cb_prop_op */
- &pppinfo, /* cb_stream */
- D_NEW|D_MP|D_MTQPAIR|D_MTOUTPERIM|D_MTOCEXCL /* cb_flag */
-};
-
-static struct dev_ops ppp_ops = {
- DEVO_REV, /* devo_rev */
- 0, /* devo_refcnt */
- ppp_devinfo, /* devo_getinfo */
- ppp_identify, /* devo_identify */
- nulldev, /* devo_probe */
- ppp_attach, /* devo_attach */
- ppp_detach, /* devo_detach */
- nodev, /* devo_reset */
- &cb_ppp_ops, /* devo_cb_ops */
- NULL /* devo_bus_ops */
-};
-
-/*
- * Module linkage information
- */
-
-static struct modldrv modldrv = {
- &mod_driverops, /* says this is a pseudo driver */
- "PPP-2.3 multiplexing driver",
- &ppp_ops /* driver ops */
-};
-
-static struct modlinkage modlinkage = {
- MODREV_1,
- (void *) &modldrv,
- NULL
-};
-
-int
-_init(void)
-{
- return mod_install(&modlinkage);
-}
-
-int
-_fini(void)
-{
- return mod_remove(&modlinkage);
-}
-
-int
-_info(mip)
- struct modinfo *mip;
-{
- return mod_info(&modlinkage, mip);
-}
-
-static int
-ppp_identify(dip)
- dev_info_t *dip;
-{
- return strcmp(ddi_get_name(dip), "ppp") == 0? DDI_IDENTIFIED:
- DDI_NOT_IDENTIFIED;
-}
-
-static int
-ppp_attach(dip, cmd)
- dev_info_t *dip;
- ddi_attach_cmd_t cmd;
-{
-
- if (cmd != DDI_ATTACH)
- return DDI_FAILURE;
- if (ddi_create_minor_node(dip, "ppp", S_IFCHR, 0, DDI_PSEUDO, CLONE_DEV)
- == DDI_FAILURE) {
- ddi_remove_minor_node(dip, NULL);
- return DDI_FAILURE;
- }
- rw_init(&ppp_lower_lock, NULL, RW_DRIVER, NULL);
- return DDI_SUCCESS;
-}
-
-static int
-ppp_detach(dip, cmd)
- dev_info_t *dip;
- ddi_detach_cmd_t cmd;
-{
- rw_destroy(&ppp_lower_lock);
- ddi_remove_minor_node(dip, NULL);
- return DDI_SUCCESS;
-}
-
-static int
-ppp_devinfo(dip, cmd, arg, result)
- dev_info_t *dip;
- ddi_info_cmd_t cmd;
- void *arg;
- void **result;
-{
- int error;
-
- error = DDI_SUCCESS;
- switch (cmd) {
- case DDI_INFO_DEVT2DEVINFO:
- if (ppp_dip == NULL)
- error = DDI_FAILURE;
- else
- *result = (void *) ppp_dip;
- break;
- case DDI_INFO_DEVT2INSTANCE:
- *result = NULL;
- break;
- default:
- error = DDI_FAILURE;
- }
- return error;
-}
diff --git a/mdk-stage1/probe-modules.c b/mdk-stage1/probe-modules.c
new file mode 100644
index 000000000..86b383b5e
--- /dev/null
+++ b/mdk-stage1/probe-modules.c
@@ -0,0 +1,69 @@
+/*
+ * Olivier Blin (blino)
+ *
+ * Copyright 2007-2004 Mandriva
+ *
+ *
+ * This software may be freely redistributed under the terms of the GNU
+ * public license.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+#include "log.h"
+#include "modules.h"
+#include "probing.h"
+#include "frontend.h"
+#include <stdlib.h>
+#include <sys/stat.h>
+#include <string.h>
+#include "utils.h"
+
+void stg1_error_message(char *msg, ...)
+{
+ va_list args;
+ va_start(args, msg);
+ verror_message(msg, args);
+ va_end(args);
+}
+void fatal_error(char *msg)
+{
+ log_message("FATAL ERROR IN MODULES LOADER: %s\n\nI can't recover from this.\nYou may reboot your system.\n", msg);
+ exit(EXIT_FAILURE);
+}
+
+int main(int argc, char **argv, char **env)
+{
+ enum media_bus bus = BUS_ANY;
+ char *module = NULL;
+ char options[500] = "";
+
+ if (argc > 1) {
+ if (streq(argv[1], "--usb")) {
+ bus = BUS_USB;
+ } else if (!ptr_begins_static_str(argv[1], "--")) {
+ int i;
+ module = argv[1];
+ for (i = 2; i < argc; i++) {
+ strcat(options, argv[i]);
+ strcat(options, " ");
+ }
+ }
+ }
+
+ open_log();
+ init_modules_insmoding();
+
+ if (module) {
+ my_modprobe(module, ANY_DRIVER_TYPE, options);
+ } else {
+ find_media(bus);
+ }
+
+ close_log();
+
+ return 0;
+}
diff --git a/mdk-stage1/probing.c b/mdk-stage1/probing.c
index fab0f5d02..f956bb348 100644
--- a/mdk-stage1/probing.c
+++ b/mdk-stage1/probing.c
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -40,23 +40,27 @@
#include <fnmatch.h>
#include <sys/socket.h>
#include <net/if.h>
+#include <linux/sockios.h>
+#include <linux/ethtool.h>
#include <sys/ioctl.h>
#include <sys/mount.h>
#include <pci/pci.h>
#include <libldetect.h>
+#include <errno.h>
+#include <glob.h>
#include "stage1.h"
#include "log.h"
#include "utils.h"
#include "frontend.h"
#include "modules.h"
-#include "pci-resource/pci-ids.h"
+#include "pci-ids.h"
#ifdef ENABLE_USB
-#include "usb-resource/usb-ids.h"
+#include "usb-ids.h"
#endif
#ifdef ENABLE_PCMCIA
#include "sysfs/libsysfs.h"
-#include "pcmcia-resource/pcmcia-ids.h"
+#include "pcmcia-ids.h"
#endif
#include "probing.h"
@@ -82,50 +86,31 @@ static void warning_insmod_failed(enum insmod_return r)
}
#ifndef DISABLE_NETWORK
-struct net_description_elem
-{
- char * intf_name;
- char * intf_description;
-};
-static struct net_description_elem net_descriptions[50];
-static int net_descr_number = 0;
-static char * intf_descr_for_discover = NULL;
-static char * net_intf_too_early_name[50]; /* for modules providing more than one net intf */
-static int net_intf_too_early_number = 0;
-static int net_intf_too_early_ptr = 0;
-
-void prepare_intf_descr(const char * intf_descr)
-{
- intf_descr_for_discover = strdup(intf_descr);
-}
-
-void net_discovered_interface(char * intf_name)
-{
- if (!intf_descr_for_discover) {
- net_intf_too_early_name[net_intf_too_early_number++] = strdup(intf_name);
- return;
- }
- if (!intf_name) {
- if (net_intf_too_early_ptr >= net_intf_too_early_number) {
- log_message("NET: was expecting another network interface (broken net module?)");
- return;
- }
- net_descriptions[net_descr_number].intf_name = net_intf_too_early_name[net_intf_too_early_ptr++];
- }
- else
- net_descriptions[net_descr_number].intf_name = strdup(intf_name);
- net_descriptions[net_descr_number].intf_description = strdup(intf_descr_for_discover);
- intf_descr_for_discover = NULL;
- net_descr_number++;
+const char * safe_descr(const char * text) {
+ return text ? text : "unknown";
}
char * get_net_intf_description(char * intf_name)
{
- int i;
- for (i = 0; i < net_descr_number ; i++)
- if (!strcmp(net_descriptions[i].intf_name, intf_name))
- return net_descriptions[i].intf_description;
- return strdup("unknown");
+ struct ifreq ifr;
+ struct ethtool_drvinfo drvinfo;
+ int s = socket(AF_INET, SOCK_DGRAM, 0);
+ char *res;
+
+ memset(&ifr, 0, sizeof(ifr));
+ strncpy(ifr.ifr_name, intf_name, IFNAMSIZ);
+
+ drvinfo.cmd = ETHTOOL_GDRVINFO;
+ ifr.ifr_data = (caddr_t) &drvinfo;
+
+ if (ioctl(s, SIOCETHTOOL, &ifr) != -1) {
+ res = drvinfo.driver;
+ } else {
+ perror("SIOCETHTOOL");
+ res = "unknown";
+ }
+ close(s);
+ return strdup(res);
}
#endif
@@ -174,7 +159,7 @@ static void add_detected_device(unsigned short vendor, unsigned short device, un
dev->subdevice = subdevice;
strncpy(dev->module, module, sizeof(dev->module) - 1);
dev->module[sizeof(dev->module) - 1] = '\0';
- strncpy(dev->description, name, sizeof(dev->description) - 1);
+ strncpy(dev->description, safe_descr(name), sizeof(dev->description) - 1);
dev->description[sizeof(dev->description) - 1] = '\0';
log_message("detected device (%04x, %04x, %04x, %04x, %s, %s)", vendor, device, subvendor, subdevice, name, module);
}
@@ -202,7 +187,9 @@ void probing_detect_devices()
struct pciusb_entry *e = &entries.entries[i];
#ifndef DISABLE_PCIADAPTERS
#ifndef DISABLE_MEDIAS
- if (add_detected_device_if_match(e, medias_pci_modules, medias_pci_modules_len))
+ if (add_detected_device_if_match(e, medias_ide_pci_modules, medias_ide_pci_modules_len))
+ continue;
+ if (add_detected_device_if_match(e, medias_other_pci_modules, medias_other_pci_modules_len))
continue;
#endif
@@ -259,17 +246,17 @@ static const char * get_alternate_module(const char * name)
void discovered_device(enum driver_type type, const char * description, const char * driver)
{
-
+ description = safe_descr(description);
enum insmod_return failed = INSMOD_FAILED;
#ifndef DISABLE_MEDIAS
- if (type == SCSI_ADAPTERS) {
+ if (type == MEDIA_ADAPTERS) {
const char * alternate = NULL;
wait_message("Loading driver for media adapter:\n \n%s", description);
- failed = my_insmod(driver, SCSI_ADAPTERS, NULL, 1);
+ failed = my_modprobe(driver, MEDIA_ADAPTERS, NULL);
alternate = get_alternate_module(driver);
if (!IS_NOAUTO && alternate) {
- failed = failed || my_insmod(alternate, SCSI_ADAPTERS, NULL, 1);
+ failed = failed || my_modprobe(alternate, MEDIA_ADAPTERS, NULL);
}
remove_wait_message();
warning_insmod_failed(failed);
@@ -277,22 +264,88 @@ void discovered_device(enum driver_type type, const char * description, const ch
#endif
#ifndef DISABLE_NETWORK
if (type == NETWORK_DEVICES) {
+ log_message("NET: Loading driver for network device %s", description);
wait_message("Loading driver for network device:\n \n%s", description);
- prepare_intf_descr(description);
- failed = my_insmod(driver, NETWORK_DEVICES, NULL, 1);
+ failed = my_modprobe(driver, NETWORK_DEVICES, NULL);
warning_insmod_failed(failed);
remove_wait_message();
- if (intf_descr_for_discover) /* for modules providing more than one net intf */
- net_discovered_interface(NULL);
}
#endif
#ifdef ENABLE_USB
if (type == USB_CONTROLLERS)
- /* we can't allow additional modules floppy since we need usbkbd for keystrokes of usb keyboards */
- failed = my_insmod(driver, USB_CONTROLLERS, NULL, 0);
+ /* we can't allow additional modules floppy since we need usbhid for keystrokes of usb keyboards */
+ failed = my_modprobe(driver, USB_CONTROLLERS, NULL);
#endif
}
+void probe_pci_modules(enum driver_type type, char **pci_modules, unsigned int pci_modules_len) {
+ struct pciusb_entries entries;
+ int i;
+
+ entries = pci_probe();
+ for (i = 0; i < entries.nb; i++) {
+ struct pciusb_entry *e = &entries.entries[i];
+ if (device_match_modules_list(e, pci_modules, pci_modules_len)) {
+ log_message("PCI: device %04x %04x %04x %04x is \"%s\", driver is %s",
+ e->vendor, e->device, e->subvendor, e->subdevice, safe_descr(e->text), e->module);
+ discovered_device(type, e->text, e->module);
+ }
+ }
+ pciusb_free(&entries);
+}
+
+/** Loads modules for known virtio devices
+ *
+ * virtio modules are not being loaded using the PCI probing mechanism
+ * because pcitable.gz does not have IDs for these devices.
+ *
+ * The possible correct solution for it is to fix the script which
+ * generates pcitable.gz to handle the virtio_device_id structure.
+ */
+void probe_virtio_modules(void)
+{
+ struct pciusb_entries entries;
+ int i;
+ char *name;
+ char *options;
+ int loaded_pci = 0;
+
+ entries = pci_probe();
+ for (i = 0; i < entries.nb; i++) {
+ struct pciusb_entry *e = &entries.entries[i];
+ if (e->vendor == VIRTIO_PCI_VENDOR) {
+ if (!loaded_pci) {
+ log_message("loading virtio-pci");
+ my_modprobe("virtio_pci", ANY_DRIVER_TYPE, NULL);
+ loaded_pci = 1;
+ }
+
+ name = NULL;
+ options = NULL;
+
+ switch (e->subdevice) {
+ case VIRTIO_ID_NET:
+ name = "virtio_net";
+ options = "csum=0";
+ break;
+ case VIRTIO_ID_BLOCK:
+ name = "virtio_blk";
+ break;
+ case VIRTIO_ID_BALLOON:
+ name = "virtio_balloon";
+ break;
+ default:
+ log_message("warning: unknown virtio device %04x", e->device);
+ }
+ if (name) {
+ log_message("virtio: loading %s", name);
+ my_modprobe(name, ANY_DRIVER_TYPE, options);
+ }
+ }
+ }
+ pciusb_free(&entries);
+}
+
#ifdef ENABLE_USB
void probe_that_type(enum driver_type type, enum media_bus bus)
#else
@@ -301,57 +354,45 @@ void probe_that_type(enum driver_type type, enum media_bus bus __attribute__ ((u
{
static int already_probed_usb_controllers = 0;
static int already_loaded_usb_scsi = 0;
+ static int already_probed_virtio_devices = 0;
/* ---- PCI probe ---------------------------------------------- */
- {
- struct pciusb_entries entries;
- char **pci_modules;
- unsigned int pci_modules_len = 0;
- int i;
-
+ if (bus != BUS_USB) {
switch (type) {
#ifndef DISABLE_PCIADAPTERS
#ifndef DISABLE_MEDIAS
- static int already_probed_scsi_adapters = 0;
- case SCSI_ADAPTERS:
- if (already_probed_scsi_adapters)
- goto end_pci_probe;
- already_probed_scsi_adapters = 1;
- pci_modules = medias_pci_modules;
- pci_modules_len = medias_pci_modules_len;
+ static int already_probed_media_adapters = 0;
+ case MEDIA_ADAPTERS:
+ if (already_probed_media_adapters)
+ break;
+ already_probed_media_adapters = 1;
+ probe_pci_modules(type, medias_ide_pci_modules, medias_ide_pci_modules_len);
+ probe_pci_modules(type, medias_other_pci_modules, medias_other_pci_modules_len);
break;
#endif
#ifndef DISABLE_NETWORK
case NETWORK_DEVICES:
- pci_modules = network_pci_modules;
- pci_modules_len = network_pci_modules_len;
+ probe_pci_modules(type, network_pci_modules, network_pci_modules_len);
break;
#endif
#endif
#ifdef ENABLE_USB
case USB_CONTROLLERS:
if (already_probed_usb_controllers || IS_NOAUTO)
- goto end_pci_probe;
+ break;
already_probed_usb_controllers = 1;
- pci_modules = usb_controller_modules;
- pci_modules_len = usb_controller_modules_len;
+ probe_pci_modules(type, usb_controller_modules, usb_controller_modules_len);
break;
#endif
+ case VIRTIO_DEVICES:
+ if (already_probed_virtio_devices)
+ break;
+ probe_virtio_modules();
+ already_probed_virtio_devices = 1;
+ break;
default:
- goto end_pci_probe;
- }
-
- entries = pci_probe();
- for (i = 0; i < entries.nb; i++) {
- struct pciusb_entry *e = &entries.entries[i];
- if (device_match_modules_list(e, pci_modules, pci_modules_len)) {
- log_message("PCI: device %04x %04x %04x %04x is \"%s\", driver is %s",
- e->vendor, e->device, e->subvendor, e->subdevice, e->text, e->module);
- discovered_device(type, e->text, e->module);
- }
+ break;
}
- pciusb_free(&entries);
- end_pci_probe:;
}
@@ -362,22 +403,14 @@ void probe_that_type(enum driver_type type, enum media_bus bus __attribute__ ((u
struct pciusb_entries entries;
int i;
- if (!already_probed_usb_controllers) {
- already_probed_usb_controllers = 1;
+ if (!already_probed_usb_controllers)
probe_that_type(USB_CONTROLLERS, BUS_ANY);
- }
if (!already_mounted_usbdev) {
already_mounted_usbdev = 1;
- if (mount("none", "/proc/bus/usb", "usbfs", 0, NULL) &&
- mount("none", "/proc/bus/usb", "usbdevfs", 0, NULL)) {
- log_message("USB: couldn't mount /proc/bus/usb");
- goto end_usb_probe;
- }
wait_message("Detecting USB devices.");
sleep(4); /* sucking background work */
- my_insmod("usbkbd", ANY_DRIVER_TYPE, NULL, 0);
- my_insmod("keybdev", ANY_DRIVER_TYPE, NULL, 0);
+ my_modprobe("usbhid", ANY_DRIVER_TYPE, NULL);
remove_wait_message();
}
@@ -388,7 +421,7 @@ void probe_that_type(enum driver_type type, enum media_bus bus __attribute__ ((u
for (i = 0; i < entries.nb; i++) {
struct pciusb_entry *e = &entries.entries[i];
if (device_match_modules_list(e, usb_modules, usb_modules_len)) {
- log_message("USB: device %04x %04x is \"%s\" (%s)", e->vendor, e->device, e->text, e->module);
+ log_message("USB: device %04x %04x is \"%s\" (%s)", e->vendor, e->device, safe_descr(e->text), e->module);
discovered_device(type, e->text, e->module);
}
}
@@ -412,7 +445,7 @@ void probe_that_type(enum driver_type type, enum media_bus bus __attribute__ ((u
switch (type) {
#ifndef DISABLE_MEDIAS
- case SCSI_ADAPTERS:
+ case MEDIA_ADAPTERS:
pcmciadb = medias_pcmcia_ids;
len = medias_pcmcia_num_ids;
break;
@@ -429,7 +462,7 @@ void probe_that_type(enum driver_type type, enum media_bus bus __attribute__ ((u
for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) {
struct sysfs_attribute *modalias_attr;
- char keyfile[256];
+ char keyfile[300];
int i, id;
if (dent->d_name[0] == '.')
@@ -486,16 +519,19 @@ void probe_that_type(enum driver_type type, enum media_bus bus __attribute__ ((u
}
#endif
- /* be sure to load usb-storage after SCSI adapters, so that they are in
+ /* be sure to load usb-storage after media adapters, so that they are in
same order than reboot, so that naming is the same */
- if (type == SCSI_ADAPTERS && already_probed_usb_controllers && !already_loaded_usb_scsi) {
+ if (type == MEDIA_ADAPTERS && (bus == BUS_USB || bus == BUS_SCSI || bus == BUS_ANY) &&
+ already_probed_usb_controllers && !already_loaded_usb_scsi) {
already_loaded_usb_scsi = 1;
/* we can't allow additional modules floppy since we need usbkbd for keystrokes of usb keyboards */
- my_insmod("usb_storage", SCSI_ADAPTERS, NULL, 0);
+ my_modprobe("usb_storage", MEDIA_ADAPTERS, NULL);
if (module_already_present("ieee1394"))
- my_insmod("sbp2", SCSI_ADAPTERS, NULL, 0);
+ my_modprobe("sbp2", MEDIA_ADAPTERS, NULL);
wait_message("Detecting USB mass-storage devices.");
+#ifndef DEBUG
sleep(10); /* sucking background work */
+#endif
remove_wait_message();
}
}
@@ -503,264 +539,44 @@ void probe_that_type(enum driver_type type, enum media_bus bus __attribute__ ((u
static struct media_info * medias = NULL;
-static void find_media(enum media_bus bus)
+// Read a short string from a file and strips it, intended for sysfs attributes
+static ssize_t read_attribute(char *path, char *buf) {
+ ssize_t l = 0;
+ int fd = open(path, O_RDONLY);
+ buf[0] = '\0';
+ if (fd == -1) {
+ log_message("Failed to open %s for reading", path);
+ } else {
+ ssize_t n = read(fd, buf, 32);
+ if (n == -1) {
+ log_message("Couldn't read file (%s)", path);
+ } else {
+ // Strip whitespaces and newline
+ for (int i = n-1; i >= 0; i--) {
+ if (buf[i] == '\n' || buf[i] == ' ')
+ continue;
+ l = i+1;
+ break;
+ }
+ buf[l] = '\0';
+ }
+ close(fd);
+ }
+ log_message("Content of %s was %s", path, buf);
+ return l;
+}
+
+void find_media(enum media_bus bus)
{
- char b[50];
char buf[5000];
struct media_info tmp[50];
int count = 0;
- int fd;
if (medias)
free(medias); /* that does not free the strings, by the way */
- if (bus == BUS_SCSI || bus == BUS_USB || bus == BUS_PCMCIA || bus == BUS_ANY) {
- log_message("looking for media adapters");
- probe_that_type(SCSI_ADAPTERS, bus);
- }
- /* ----------------------------------------------- */
- if (bus != BUS_IDE && bus != BUS_ANY)
- goto find_media_after_ide;
- log_message("looking for ide media");
-
- strcpy(b, "/proc/ide/hd");
- for (b[12] = 'a'; b[12] <= 't'; b[12]++) {
- int i;
- char ide_disk[] = "disk";
- char ide_cdrom[] = "cdrom";
- char ide_tape[] = "tape";
- char ide_floppy[] = "floppy";
-
- /* first, test if file exists (will tell if attached medium exists) */
- b[13] = '\0';
- if (access(b, R_OK))
- continue;
-
- tmp[count].name = strdup("hda");
- tmp[count].name[2] = b[12];
-
- /* media type */
- strcpy(b + 13, "/media");
- fd = open(b, O_RDONLY);
- if (fd == -1) {
- log_message("failed to open %s for reading", b);
- continue;
- }
-
- i = read(fd, buf, sizeof(buf));
- if (i == -1) {
- log_message("failed to read %s", b);
- continue;
- }
- buf[i] = '\0';
- close(fd);
-
- if (ptr_begins_static_str(buf, ide_disk))
- tmp[count].type = DISK;
- else if (ptr_begins_static_str(buf, ide_cdrom))
- tmp[count].type = CDROM;
- else if (ptr_begins_static_str(buf, ide_tape))
- tmp[count].type = TAPE;
- else if (ptr_begins_static_str(buf, ide_floppy))
- tmp[count].type = FLOPPY;
- else
- tmp[count].type = UNKNOWN_MEDIA;
-
- /* media model */
- strcpy(b + 13, "/model");
- fd = open(b, O_RDONLY);
- if (fd == -1) {
- log_message("failed to open %s for reading", b);
- continue;
- }
-
- i = read(fd, buf, sizeof(buf));
- if (i <= 0) {
- log_message("failed to read %s", b);
- tmp[count].model = strdup("(none)");
- }
- else {
- buf[i-1] = '\0'; /* eat the \n */
- tmp[count].model = strdup(buf);
- }
- close(fd);
-
- log_message("IDE/%d: %s is a %s", tmp[count].type, tmp[count].name, tmp[count].model);
- count++;
- }
-
- find_media_after_ide:
- /* ----------------------------------------------- */
- if (bus != BUS_SCSI && bus != BUS_USB && bus != BUS_PCMCIA && bus != BUS_ANY)
- goto find_media_after_scsi;
- log_message("looking for scsi media");
-
- fd = open("/proc/scsi/scsi", O_RDONLY);
- if (fd != -1) {
- FILE * f;
-
- enum { SCSI_TOP, SCSI_HOST, SCSI_VENDOR, SCSI_TYPE } state = SCSI_TOP;
- char * start, * chptr, * next, * end;
- char scsi_disk_count = 'a';
- char scsi_cdrom_count = '0';
- char scsi_tape_count = '0';
-
- char scsi_no_devices[] = "Attached devices: none";
- char scsi_some_devices[] = "Attached devices:";
- char scsi_host[] = "Host: ";
- char scsi_vendor[] = " Vendor: ";
-
- int i = read(fd, &buf, sizeof(buf)-1);
- if (i < 1) {
- close(fd);
- goto end_scsi;
- }
- close(fd);
- buf[i] = '\0';
-
- if (ptr_begins_static_str(buf, scsi_no_devices))
- goto end_scsi;
-
- start = buf;
- while (*start) {
- char tmp_model[50];
- char tmp_name[10];
-
- chptr = start;
- while (*chptr != '\n') chptr++;
- *chptr = '\0';
- next = chptr + 1;
-
- switch (state) {
- case SCSI_TOP:
- if (!ptr_begins_static_str(start, scsi_some_devices))
- goto end_scsi;
- state = SCSI_HOST;
- break;
-
- case SCSI_HOST:
- if (!ptr_begins_static_str(start, scsi_host))
- goto end_scsi;
- state = SCSI_VENDOR;
- break;
-
- case SCSI_VENDOR:
- if (!ptr_begins_static_str(start, scsi_vendor))
- goto end_scsi;
-
- /* (1) Grab Vendor info */
- start += 10;
- end = chptr = strstr(start, "Model:");
- if (!chptr)
- goto end_scsi;
-
- chptr--;
- while (*chptr == ' ')
- chptr--;
- if (*chptr == ':') {
- chptr++;
- *(chptr + 1) = '\0';
- strcpy(tmp_model,"(unknown)");
- } else {
- *(chptr + 1) = '\0';
- strcpy(tmp_model, start);
- }
-
- /* (2) Grab Model info */
- start = end;
- start += 7;
-
- chptr = strstr(start, "Rev:");
- if (!chptr)
- goto end_scsi;
-
- chptr--;
- while (*chptr == ' ') chptr--;
- *(chptr + 1) = '\0';
-
- strcat(tmp_model, " ");
- strcat(tmp_model, start);
-
- tmp[count].model = strdup(tmp_model);
-
- state = SCSI_TYPE;
-
- break;
-
- case SCSI_TYPE:
- if (strncmp(" Type:", start, 7))
- goto end_scsi;
- *tmp_name = '\0';
-
- if (strstr(start, "Direct-Access")) {
- sprintf(tmp_name, "sd%c", scsi_disk_count++);
- tmp[count].type = DISK;
- } else if (strstr(start, "Sequential-Access")) {
- sprintf(tmp_name, "st%c", scsi_tape_count++);
- tmp[count].type = TAPE;
- } else if (strstr(start, "CD-ROM")) {
- sprintf(tmp_name, "sr%c", scsi_cdrom_count++);
- tmp[count].type = CDROM;
- }
-
- if (!(f = fopen("/proc/partitions", "rb")) || !fgets(buf, sizeof(buf), f) || !fgets(buf, sizeof(buf), f)) {
- log_message("Couldn't open /proc/partitions");
- } else {
- while (fgets(buf, sizeof(buf), f)) {
- char name[100];
- int major, minor, blocks;
- memset(name, 0, sizeof(name));
- sscanf(buf, " %d %d %d %s", &major, &minor, &blocks, name);
- if (streq(name, tmp_name) && tmp[count].type == DISK && ((blocks == 1048575) || (blocks == 1440)))
- tmp[count].type = FLOPPY;
- }
- fclose(f);
- }
-
- if (*tmp_name) {
- tmp[count].name = strdup(tmp_name);
- log_message("SCSI/%d: %s is a %s", tmp[count].type, tmp[count].name, tmp[count].model);
- count++;
- }
-
- state = SCSI_HOST;
- }
-
- start = next;
- }
-
- end_scsi:;
- }
-
- /* ----------------------------------------------- */
- log_message("looking for Compaq Smart Array media");
- {
- char * procfiles[] = { "/proc/driver/cpqarray/ida0", "/proc/driver/cciss/cciss0", // 2.4 style
- "/proc/array/ida", "/proc/cciss/cciss", // 2.2 style
- NULL };
- static char cpq_descr[] = "Compaq RAID logical disk";
- char ** procfile = procfiles;
- FILE * f;
- while (procfile && *procfile && (f = fopen(*procfile, "rb"))) {
- while (fgets(buf, sizeof(buf), f)) {
- if (ptr_begins_static_str(buf, "ida/") || ptr_begins_static_str(buf, "cciss/")) {
- char * end = strchr(buf, ':');
- if (!end)
- log_message("Inconsistency in %s, line:\n%s", *procfile, buf);
- else {
- *end = '\0';
- tmp[count].name = strdup(buf);
- tmp[count].type = DISK;
- tmp[count].model = cpq_descr;
- log_message("CPQ: found %s", tmp[count].name);
- count++;
- }
- }
- }
- fclose(f);
- procfile++;
- }
- }
+ log_message("looking for media adapters");
+ probe_that_type(MEDIA_ADAPTERS, bus);
/* ----------------------------------------------- */
log_message("looking for DAC960");
@@ -792,13 +608,102 @@ static void find_media(enum media_bus bus)
fclose(f);
}
}
- find_media_after_scsi:
+ /* ----------------------------------------------- */
+ log_message("looking for other disks");
+ {
+ glob_t globbuf;
+ // TODO: We should switch everything to here, and later switch to ignoring
+ // some types of disks (ram, loop, ...) rather than a list to accept.
+ glob("/sys/block/nvme*", 0, NULL, &globbuf);
+ glob("/sys/block/vd*", GLOB_APPEND, NULL, &globbuf);
+ glob("/sys/block/cciss*", GLOB_APPEND, NULL, &globbuf);
+ glob("/sys/block/fd*", GLOB_APPEND, NULL, &globbuf);
+ glob("/sys/block/sd*", GLOB_APPEND, NULL, &globbuf);
+ glob("/sys/block/st*", GLOB_APPEND, NULL, &globbuf);
+ glob("/sys/block/sr*", GLOB_APPEND, NULL, &globbuf);
+
+ for (int i = 0; i < globbuf.gl_pathc; i++) {
+ char *name, *pathend;
+ char path[64];
+ char model[64];
+ int vendor_length = 0;
+
+ strncpy(path, globbuf.gl_pathv[i], sizeof(path));
+ name = strdup(path + 11);
+
+ // Replace ! with /, for example for cciss!c0d0 devices
+ char * c = name;
+ while((c = strchr(c, '!')) != NULL) {
+ *c = '/';
+ c++;
+ }
+
+ pathend = path + strlen(path);
+
+ // Check if this device had been handled by other code
+ int exists = 0;
+ for (int j = 0; j < count; j++) {
+ if (!strcmp(name, tmp[j].name)) {
+ exists = 1;
+ break;
+ }
+ }
+ if (exists) {
+ free(name);
+ continue;
+ }
+
+ strcpy(model, "Unknown Disk");
+
+ strcpy(pathend, "/device/vendor");
+ vendor_length = read_attribute(path, model);
+
+ if (vendor_length) {
+ strcat(model, " ");
+ vendor_length++;
+ }
+
+ strcpy(pathend, "/device/model");
+ read_attribute(path, model+vendor_length);
+
+ strcpy(pathend, "/capability");
+ read_attribute(path, buf);
+ long caps = strtol(buf, NULL, 16);
+
+ // GENHD_FL_UP (0x0010): indicated that the block device is “up” but the kernel has removed that info
+ if (caps && 0) {
+ log_message("Ignoring device %s (not up)", name);
+ free(name);
+ continue;
+ }
+
+ if (caps & 0x0400) {
+ log_message("Ignoring device %s (hidden)", name);
+ free(name);
+ continue;
+ }
+
+ tmp[count].type = DISK;
+ if (caps & 0x0008 || !strncmp(name, "sr", 2)) {
+ tmp[count].type = CDROM;
+ } else if (!strncmp(name, "fd", 2)) {
+ tmp[count].type = FLOPPY;
+ } else if (!strncmp(name, "st", 2)) {
+ tmp[count].type = TAPE;
+ }
+
+ tmp[count].name = name;
+ tmp[count].model = strdup(model);
+ count++;
+ }
+ globfree(&globbuf);
+ }
/* ----------------------------------------------- */
tmp[count].name = NULL;
count++;
- medias = memdup(tmp, sizeof(struct media_info) * count);
+ medias = _memdup(tmp, sizeof(struct media_info) * count);
}
@@ -825,8 +730,8 @@ void get_medias(enum media_type media, char *** names, char *** models, enum med
tmp_names[count] = NULL;
tmp_models[count++] = NULL;
- *names = memdup(tmp_names, sizeof(char *) * count);
- *models = memdup(tmp_models, sizeof(char *) * count);
+ *names = _memdup(tmp_names, sizeof(char *) * count);
+ *models = _memdup(tmp_models, sizeof(char *) * count);
}
@@ -854,7 +759,7 @@ char ** get_net_devices(void)
int i = 0;
if (!already_probed) {
- already_probed = 1; /* cut off loop brought by: probe_that_type => my_insmod => get_net_devices */
+ already_probed = 1; /* cut off loop brought by: probe_that_type => my_modprobe => get_net_devices */
probe_that_type(NETWORK_DEVICES, BUS_ANY);
}
@@ -892,7 +797,7 @@ char ** get_net_devices(void)
tmp[i++] = NULL;
- return memdup(tmp, sizeof(char *) * i);
+ return _memdup(tmp, sizeof(char *) * i);
}
#endif /* DISABLE_NETWORK */
diff --git a/mdk-stage1/probing.h b/mdk-stage1/probing.h
index ed1af8ea6..702c9d056 100644
--- a/mdk-stage1/probing.h
+++ b/mdk-stage1/probing.h
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -24,15 +24,20 @@
enum media_type { CDROM, DISK, FLOPPY, TAPE, UNKNOWN_MEDIA };
-enum driver_type { SCSI_ADAPTERS, NETWORK_DEVICES, USB_CONTROLLERS, ANY_DRIVER_TYPE };
+enum driver_type { MEDIA_ADAPTERS, NETWORK_DEVICES, USB_CONTROLLERS,
+ VIRTIO_DEVICES, ANY_DRIVER_TYPE };
enum media_bus { BUS_IDE, BUS_SCSI, BUS_USB, BUS_PCMCIA, BUS_ANY };
+#define VIRTIO_PCI_VENDOR 0x1af4
+#define VIRTIO_ID_NET 0x0001
+#define VIRTIO_ID_BLOCK 0x0002
+#define VIRTIO_ID_BALLOON 0x0005
+
+void find_media(enum media_bus bus);
void get_medias(enum media_type media, char *** names, char *** models, enum media_bus bus);
char ** get_net_devices(void);
-void net_discovered_interface(char * intf_name);
char * get_net_intf_description(char * intf_name);
-void prepare_intf_descr(const char * intf_descr);
void probe_that_type(enum driver_type type, enum media_bus bus);
/* Make sure the MATCH_ALL value is greater than all possible values
diff --git a/mdk-stage1/rescue-gui.c b/mdk-stage1/rescue-gui.c
index fbf23329a..c7aae6126 100644
--- a/mdk-stage1/rescue-gui.c
+++ b/mdk-stage1/rescue-gui.c
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2001 Mandrakesoft
+ * Copyright 2001 Mandriva
*
*
* This software may be freely redistributed under the terms of the GNU
@@ -27,6 +27,7 @@
#include <sys/ioctl.h>
#include <linux/unistd.h>
#include <sys/select.h>
+#include <linux/reboot.h>
#include "config-stage1.h"
#include "frontend.h"
@@ -34,7 +35,11 @@
#include "params.h"
#include <sys/syscall.h>
-#define reboot(...) syscall(__NR_reboot, __VA_ARGS__)
+
+static inline long reboot(void)
+{
+ return (long) syscall(__NR_reboot, LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_RESTART, 0);
+}
#if defined(__i386__) || defined(__x86_64__)
#define ENABLE_RESCUE_MS_BOOT 1
@@ -42,9 +47,9 @@
char * env[] = {
"PATH=/usr/bin:/bin:/sbin:/usr/sbin:/mnt/sbin:/mnt/usr/sbin:/mnt/bin:/mnt/usr/bin",
- "LD_LIBRARY_PATH=/lib:/usr/lib:/mnt/lib:/mnt/usr/lib:/usr/X11R6/lib:/mnt/usr/X11R6/lib"
-#if defined(__x86_64__) || defined(__ppc64__)
- ":/lib64:/usr/lib64:/usr/X11R6/lib64:/mnt/lib64:/mnt/usr/lib64:/mnt/usr/X11R6/lib64"
+ "LD_LIBRARY_PATH=/lib:/usr/lib:/mnt/lib:/mnt/usr/lib"
+#if defined(__x86_64__)
+ ":/lib64:/usr/lib64:/mnt/lib64:/mnt/usr/lib64"
#endif
,
"HOME=/",
@@ -148,7 +153,7 @@ void unmount_filesystems(void)
for (i = nb = 0; i < numfs; i++)
if (fs[i].mounted) {
printf("\t%s umount failed\n", fs[i].name);
- if (strcmp(fs[i].fs, "ext2") == 0) nb++; /* don't count not-ext2 umount failed */
+ if (strcmp(fs[i].fs, "ext4") == 0) nb++; /* don't count not-ext4 umount failed */
}
if (nb) {
@@ -161,7 +166,6 @@ void unmount_filesystems(void)
/* ------ UUURGH -- this is dirrrrrttttyyyyyy */
void probe_that_type(void) {}
-void exit_bootsplash(void) {}
int main(int argc __attribute__ ((unused)), char **argv __attribute__ ((unused)))
@@ -233,7 +237,7 @@ int main(int argc __attribute__ ((unused)), char **argv __attribute__ ((unused))
sync(); sync();
printf("rebooting system\n");
sleep(2);
- reboot(0xfee1dead, 672274793, 0x01234567);
+ reboot();
}
if (ptr_begins_static_str(choice, doc)) {
binary = "/usr/bin/rescue-doc";
diff --git a/mdk-stage1/rp-pppoe/README b/mdk-stage1/rp-pppoe/README
deleted file mode 100644
index 269fc16be..000000000
--- a/mdk-stage1/rp-pppoe/README
+++ /dev/null
@@ -1,87 +0,0 @@
-pppoe: a PPP-over-Ethernet redirector for pppd
-Copyright (C) 2001 Roaring Penguin Software Inc.
-
-Much inspiration from an earlier client by Luke Stras.
-
-The MSS clamping was inspired by mssclampfw by Marc Boucher <marc@mbsi.ca>
-with acknowledgements to Rebel.com (http://www.rebel.com). However, the
-actual MSS clamping code is original and is licensed under the GPL, unlike
-the original mssclampfw.
-
-Introduction
-============
-
-pppoe is a user-space redirector which permits the use of PPPoE
-(Point-to-Point Over Ethernet) with Linux. PPPoE is used by many
-ADSL service providers.
-
-Installation
-============
-
-Requirements
-------------
-
-1) Linux 2.2.9 or later on Intel, Sparc or PowerPC. It may work on
- Alpha, too -- anyone care to let me know?
-
- OR
-
- Linux 2.0.36 or later.
-
- OR
-
- FreeBSD, NetBSD or OpenBSD with BPF support. I have access only
- to FreeBSD. In general, I can't answer questions about the *BSD's
- as well as I can about Linux.
-
-
-2) pppd 2.3.10 or later. Versions 2.3.7 and later work unless you use
- demand-dialling. For demand dialling, you *must* use 2.3.10 or later.
-
-QUICKSTART
-----------
-
-If you're lucky, the "quickstart" method will work. After unpacking
-the archive, become root and type:
-
- ./go
-
-This should configure, compile and install the software and set up your
-ADSL connection. You'll have to answer a few questions along the way.
-
-If you want the GUI wrapper, type:
-
- ./go-gui
-
-If ./go and ./go-gui didn't work, read the rest of this README.
-
-Compiling
----------
-
-Compile and install pppd if you don't already have it. Then:
-
-1) Unpack:
-
- $ tar xzvf rp-pppoe-xxx.tar.gz
-
-2) Change to source directory:
-
- $ cd src
-
-3) Configure:
-
- $ ./configure
-
-4) Compile:
-
- $ make
-
-4) Install (this step must be done as root)
-
- # make install
-
-5) Now read doc/HOW-TO-CONNECT
-
---
-David F. Skoll <dfs@roaringpenguin.com> | Roaring Penguin Software Inc.
-http://www.roaringpenguin.com | Linux and UNIX Specialists \ No newline at end of file
diff --git a/mdk-stage1/rp-pppoe/configs/firewall-masq b/mdk-stage1/rp-pppoe/configs/firewall-masq
deleted file mode 100644
index cb16fbecf..000000000
--- a/mdk-stage1/rp-pppoe/configs/firewall-masq
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/sh
-#
-# firewall-masq This script sets up firewall rules for a machine
-# acting as a masquerading gateway
-#
-# Copyright (C) 2000 Roaring Penguin Software Inc. This software may
-# be distributed under the terms of the GNU General Public License, version
-# 2 or any later version.
-
-# Interface to Internet
-EXTIF=ppp+
-
-ANY=0.0.0.0/0
-
-ipchains -P input ACCEPT
-ipchains -P output ACCEPT
-ipchains -P forward DENY
-
-ipchains -F forward
-ipchains -F input
-ipchains -F output
-
-# Deny TCP and UDP packets to privileged ports
-ipchains -A input -l -i $EXTIF -d $ANY 0:1023 -p udp -j DENY
-ipchains -A input -l -i $EXTIF -d $ANY 0:1023 -p tcp -j DENY
-
-# Deny TCP connection attempts
-ipchains -A input -l -i $EXTIF -p tcp -y -j DENY
-
-# Deny ICMP echo-requests
-ipchains -A input -l -i $EXTIF -s $ANY echo-request -p icmp -j DENY
-
-# Do masquerading
-ipchains -A forward -j MASQ
-echo 1 > /proc/sys/net/ipv4/ip_forward
diff --git a/mdk-stage1/rp-pppoe/configs/firewall-standalone b/mdk-stage1/rp-pppoe/configs/firewall-standalone
deleted file mode 100644
index bcb1e92b1..000000000
--- a/mdk-stage1/rp-pppoe/configs/firewall-standalone
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-#
-# firewall-standalone This script sets up firewall rules for a standalone
-# machine
-#
-# Copyright (C) 2000 Roaring Penguin Software Inc. This software may
-# be distributed under the terms of the GNU General Public License, version
-# 2 or any later version.
-
-# Interface to Internet
-EXTIF=ppp+
-
-ANY=0.0.0.0/0
-
-ipchains -P input ACCEPT
-ipchains -P output ACCEPT
-ipchains -P forward DENY
-
-ipchains -F forward
-ipchains -F input
-ipchains -F output
-
-# Deny TCP and UDP packets to privileged ports
-ipchains -A input -l -i $EXTIF -d $ANY 0:1023 -p udp -j DENY
-ipchains -A input -l -i $EXTIF -d $ANY 0:1023 -p tcp -j DENY
-
-# Deny TCP connection attempts
-ipchains -A input -l -i $EXTIF -p tcp -y -j DENY
-
-# Deny ICMP echo-requests
-ipchains -A input -l -i $EXTIF -s $ANY echo-request -p icmp -j DENY
-
diff --git a/mdk-stage1/rp-pppoe/configs/pap-secrets b/mdk-stage1/rp-pppoe/configs/pap-secrets
deleted file mode 100644
index f4483a723..000000000
--- a/mdk-stage1/rp-pppoe/configs/pap-secrets
+++ /dev/null
@@ -1,9 +0,0 @@
-# Edit this file and place it in /etc/ppp/pap-secrets
-
-#User #Server #Password #IP
-bxxxxx@sympatico.ca * my_password *
-
-# Replace bxxxxx@sympatico.ca with your Sympatico user-ID
-# Replace my_password with your Sympatico password
-
-# For Magma, use xxyyzz@magma.ca
diff --git a/mdk-stage1/rp-pppoe/configs/pppoe-server-options b/mdk-stage1/rp-pppoe/configs/pppoe-server-options
deleted file mode 100644
index 8319870ac..000000000
--- a/mdk-stage1/rp-pppoe/configs/pppoe-server-options
+++ /dev/null
@@ -1,5 +0,0 @@
-# PPP options for the PPPoE server
-require-pap
-login
-lcp-echo-interval 10
-lcp-echo-failure 2
diff --git a/mdk-stage1/rp-pppoe/configs/pppoe.conf b/mdk-stage1/rp-pppoe/configs/pppoe.conf
deleted file mode 100644
index 9f77b913c..000000000
--- a/mdk-stage1/rp-pppoe/configs/pppoe.conf
+++ /dev/null
@@ -1,126 +0,0 @@
-#***********************************************************************
-#
-# pppoe.conf
-#
-# Configuration file for rp-pppoe. Edit as appropriate and install in
-# /etc/ppp/pppoe.conf
-#
-# NOTE: This file is used by the adsl-start, adsl-stop, adsl-connect and
-# adsl-status shell scripts. It is *not* used in any way by the
-# "pppoe" executable.
-#
-# Copyright (C) 2000 Roaring Penguin Software Inc.
-#
-# This file may be distributed under the terms of the GNU General
-# Public License.
-#
-# $Id$
-#***********************************************************************
-
-# When you configure a variable, DO NOT leave spaces around the "=" sign.
-
-# Ethernet card connected to ADSL modem
-ETH=eth1
-
-# ADSL user name. You may have to supply "@provider.com" Sympatico
-# users in Canada do need to include "@sympatico.ca"
-# Sympatico uses PAP authentication. Make sure /etc/ppp/pap-secrets
-# contains the right username/password combination.
-# For Magma, use xxyyzz@magma.ca
-USER=bxxxnxnx@sympatico.ca
-
-# Bring link up on demand? Default is to leave link up all the time.
-# If you want the link to come up on demand, set DEMAND to a number indicating
-# the idle time after which the link is brought down.
-DEMAND=no
-#DEMAND=300
-
-# DNS type: SERVER=obtain from server; SPECIFY=use DNS1 and DNS2;
-# NOCHANGE=do not adjust.
-DNSTYPE=SERVER
-
-# Obtain DNS server addresses from the peer (recent versions of pppd only)
-USEPEERDNS=yes
-
-DNS1=
-DNS2=
-
-### ONLY TOUCH THE FOLLOWING SETTINGS IF YOU'RE AN EXPERT
-
-# How long adsl-start waits for a new PPP interface to appear before
-# concluding something went wrong. If you use 0, then adsl-start
-# exits immediately with a successful status and does not wait for the
-# link to come up. Time is in seconds.
-#
-# WARNING WARNING WARNING:
-#
-# If you are using rp-pppoe on a physically-inaccessible host, set
-# CONNECT_TIMEOUT to 0. This makes SURE that the machine keeps trying
-# to connect forever after adsl-start is called. Otherwise, it will
-# give out after CONNECT_TIMEOUT seconds and will not attempt to
-# connect again, making it impossible to reach.
-CONNECT_TIMEOUT=30
-
-# How often in seconds adsl-start polls to check if link is up
-CONNECT_POLL=2
-
-# Specific desired AC Name
-ACNAME=
-
-# Specific desired service name
-SERVICENAME=
-
-# Character to echo at each poll. Use PING="" if you don't want
-# anything echoed
-PING="."
-
-# File where the adsl-connect script writes its process-ID.
-# Three files are actually used:
-# $PIDFILE contains PID of adsl-connect script
-# $PIDFILE.pppoe contains PID of pppoe process
-# $PIDFILE.pppd contains PID of pppd process
-CF_BASE=`basename $CONFIG`
-PIDFILE="/var/run/$CF_BASE-adsl.pid"
-
-# Do you want to use synchronous PPP? "yes" or "no". "yes" is much
-# easier on CPU usage, but may not work for you. It is safer to use
-# "no", but you may want to experiment with "yes". "yes" is generally
-# safe on Linux machines with the n_hdlc line discipline; unsafe on others.
-SYNCHRONOUS=no
-
-# Do you want to clamp the MSS? Here's how to decide:
-# - If you have only a SINGLE computer connected to the ADSL modem, choose
-# "no".
-# - If you have a computer acting as a gateway for a LAN, choose "1412".
-# The setting of 1412 is safe for either setup, but uses slightly more
-# CPU power.
-CLAMPMSS=1412
-#CLAMPMSS=no
-
-# LCP echo interval and failure count.
-LCP_INTERVAL=20
-LCP_FAILURE=3
-
-# PPPOE_TIMEOUT should be about 4*LCP_INTERVAL
-PPPOE_TIMEOUT=80
-
-# Firewalling: One of NONE, STANDALONE or MASQUERADE
-FIREWALL=NONE
-
-# Linux kernel-mode plugin for pppd. If you want to try the kernel-mode
-# plugin, use LINUX_PLUGIN=/etc/ppp/plugins/rp-pppoe.so
-LINUX_PLUGIN=
-
-# Any extra arguments to pass to pppoe. Normally, use a blank string
-# like this:
-PPPOE_EXTRA=""
-
-# Rumour has it that "Citizen's Communications" with a 3Com
-# HomeConnect ADSL Modem DualLink requires these extra options:
-# PPPOE_EXTRA="-f 3c12:3c13 -S ISP"
-
-# Any extra arguments to pass to pppd. Normally, use a blank string
-# like this:
-PPPD_EXTRA=""
-
-
diff --git a/mdk-stage1/rp-pppoe/doc/CHANGES b/mdk-stage1/rp-pppoe/doc/CHANGES
deleted file mode 100644
index 9afce027d..000000000
--- a/mdk-stage1/rp-pppoe/doc/CHANGES
+++ /dev/null
@@ -1,177 +0,0 @@
-Changes from Version 2.8 to 3.0:
-
-- Many small improvements to server. Server now only makes one
- discovery socket, systemwide, with addition of "-n" option to pppoe.
-
-- Fixes for compilation problems on BSD, Solaris and some Linux platforms.
-
-- Added "-p" option to pppoe-server to allow you to specify a pool of
- IP addresses to assign to clients.
-
-- Added GUI system (tkpppoe). This work was funded by Iospan
- Wireless, Inc. The GUI includes a Set-UID wrapper (pppoe-wrapper)
- which allows ordinary users to control a link (if so authorized.)
- I believe the wrapper script is secure, but please audit the
- source code (gui/wrapper.c) if you have any concerns.
-
-- Changes to scripts and pppoe.conf. DNS setup is now dynamic (happens
- each time adsl-connect runs.)
-
-- Made relay.c check packet lengths rigorously; made it throw out Ethernet
- frame padding on session packets as well as discovery packets.
-
-Changes from Version 2.7 to 2.8:
-
-- Added init scripts for TurboLinux, courtesy of Yasuhiro Sumi.
-
-- Made relay.c check packet lengths rigorously; made it throw out Ethernet
- frame padding on discovery packets.
-
-*** NOTE: 2.7 was not released publicly
-
-Changes from Version 2.6 to 2.7:
-
-- Completely restructured source file tree.
-
-- Much internal restructuring to eliminate a bunch of global variables.
-
-- adsl-connect now executes /etc/ppp/adsl-lost whenever connection is dropped
- or cannot be established.
-
-- Split pppoe.c into pppoe.c and discovery.c.
-
-- Added relay agent (pppoe-relay).
-
-- Made adsl-connect script use the "-U" (host-unique) option to better support
- multiple PPPoE links.
-
-- Added support for kernel-mode PPPoE (EXPERIMENTAL, UNSUPPORTED!)
-
-- Added "-o" option to PPPoE server; encoded server PID in pppoe-server
- cookie.
-
-Changes from Version 2.5 to 2.6:
-
-- Code should now compile cleanly on Caldera and Slackware Linux
-
-- Fixed rp-pppoe.spec file to work on Mandrake and Red Hat.
-
-- Deleted some obsolete files
-
-- Fixed bug in Solaris/x86 port (thanks to Philippe Levan)
-
-- Made shell scripts nicer under Solaris (again, Philippe Levan)
-
-- Made adsl-status look under /var/run and /etc/ppp for PID files. Should
- fix problems with NetBSD.
-
-- Added PPPD_EXTRA to pppoe.conf; made the PID file depend on the config
- file name. This makes it easier to run multiple PPPoE sessions.
-
-Changes from Version 2.4 to 2.5:
-
-- Tested for zero-length TCP option-length field, and for reverse-packing
- of type/code bitfields. Thanks to Robert Schlabbach for pointing out
- these problems.
-
-- Set umask to 077 in adsl-setup.in to protect created files like
- /etc/ppp/pap-secrets.
-
-Changes from Version 2.3 to 2.4:
-
-- Fixed spec file to automatically add .gz extension to man files as required
-
-- Tightened firewall rules.
-
-- Better check for /var/run in adsl-status; minor shell script fixes and
- cleanups for NetBSD and Solaris.
-
-- Added FAQ to HOW-TO-CONNECT regarding running a script each time a
- connection is made.
-
-Changes from Version 2.2 to 2.3:
-
-- Fixed the init script to create/remove /var/lock/subsys/adsl (patch
- courtesy of Charley Carter.)
-
-- Added support (under Linux) for N_HDLC line discipline which should
- greatly reduce CPU usage. My tests show it cuts CPU usage in half.
- My 486 DX2/66 gets 800 kb/s at 22% CPU usage.
-
-- adsl-connect uses "setsid" (if available) so that adsl-stop doesn't kill
- its caller. There is (IMO) a bug in pppd which kills all processes in
- its process group if the "pty" option is used. The setsid program gets
- around this bug, on Linux at least.
-
-- Port to Solaris, courtesy of David Holland.
-
-- Renamed spec file from "spec" to "rp-pppoe.spec" and made some cleanups.
- NOTE: Red Hat, in their infinite wisdom, decided to make the new RPM
- compress man pages automatically. You may have problems building RPM's
- from source unless you get the latest rpm package and make sure it
- compresses man pages.
-
-Changes from Version 2.1 to 2.2:
-
-- Added "-f" option to pppoe to allow use of any Ethernet frame type
- for PPPoE. USE WITH CAUTION -- this is a workaround for broken DSL
- providers, not something you should monkey with freely!
-
-- Added pppoe-sniff program to help expose non-standard PPPoE implementations.
-
-Changes from Version 2.0 to 2.1:
-
-- Fixed minor bugs in bounds-checking
-
-- Modified adsl-status to use output of "netstat -r -n" to determine whether
- or not link is up. This should make it independent of locale, I hope!
-
-- Added "-k" and "-d" options to pppoe.
-
-Changes from Version 1.9 to 2.0:
-
-- Addition of pppoe-server
-
-- Massive internal code restructuring
-
-- Zealous bounds-checking everywhere.
-
-- adsl-setup now quotes user name and password in /etc/ppp/pap-secrets.
-
-- Ported to OpenBSD, FreeBSD and NetBSD, courtesy of Geoff Mottram
- and Yannis Sismanis.
-
-- Rearranged adsl-* shell scripts, courtesy of Heiko Schlittermann.
-
-- Fixed bug in which Host-Uniq did not work if access concentrator sent
- a cookie.
-
-- Addition of SuSE-specific "init" script, courtesy of Gary Cameron.
-
-Changes from Version 1.8 to 1.9:
-
-- Added some more documentation to HOW-TO-CONNECT
-
-- Demand-dialling option now works correctly
-
-- SIGHUP terminates pppoe after sending a PADT to the access concentrator
-
-- Minor cleanups to connection shell scripts
-
-Changes from Version 1.7 to 1.8:
-
-- Added demand-dialling option
-
-- Clarified HOW-TO-CONNECT
-
-- Added adsl-status script
-
-- Added "restart" and "status" options to Red Hat /etc/rc.d/init.d/adsl script
-
-- Made adsl-setup check for existence of pppd
-
-- Wildcarded external interface in firewall rules
-
-- Made pppoe send a PADT frame if connection is terminated
-
-$Id$
diff --git a/mdk-stage1/rp-pppoe/doc/HOW-TO-CONNECT b/mdk-stage1/rp-pppoe/doc/HOW-TO-CONNECT
deleted file mode 100644
index 3e888af69..000000000
--- a/mdk-stage1/rp-pppoe/doc/HOW-TO-CONNECT
+++ /dev/null
@@ -1,295 +0,0 @@
-$Id$
-
-This package lets you connect a Linux machine to Sympatico HSE or Magma's
-high-speed service using a Nortel 1-meg modem.
-
-Follow these steps and you should have your high-speed service up and running.
-
-0. Install the rp-pppoe-software
---------------------------------
-
-You should have already done this by the time you're reading this. If not,
-go back and read README.
-
-1. Set up your Ethernet hardware
---------------------------------
-
-First, make sure the Ethernet card you intend to use with the modem is
-visible to the Linux kernel. Just how to do this is beyond the scope
-of this document. However, if the card is the only Ethernet card in
-the system, executing:
-
- ifconfig eth0
-
-should display something like this:
-
- eth0 Link encap:Ethernet HWaddr 00:60:67:62:31:D4
-
-plust some more lines. Your HWaddr will be different. As long as you see
-the HWaddr line, your card should be working.
-
-DO NOT assign an IP address to the Ethernet card. DO NOT configure the
-card to come up at boot time.
-
-2. Configure various files
---------------------------
-
-Several files need editing. The easiest way to do this is to run
-the following command as root:
-
- adsl-setup
-
-Answer the questions and you should be all set. If you want to know what
-goes on behind the scenes, continue reading this document. If you don't
-care and your connection works, stop reading. :-)
-
-3. Edit pap-secrets
--------------------
-
-Edit the "pap-secrets" file, inserting your proper user-ID and password.
-Install the file (or copy the relevant lines) to /etc/ppp/pap-secrets.
-Your ISP may use CHAP authentication. In this case, add the line to
-/etc/ppp/chap-secrets.
-
-4. Edit /etc/ppp/pppoe.conf
------------------------------
-
-The file /etc/ppp/pppoe.conf contains configuration information for the
-ADSL connection. You need to edit the following items:
-
-- Change ETH=eth1 to the correct Ethernet device for your modem.
-- Change USER=bxxxnxnx@sympatico.ca to your proper ADSL user-ID.
-
-Don't edit any of the other settings unless you're an expert.
-
-5. Set up DNS
--------------
-
-If you are using DNS servers supplied by your ISP, edit the file
-/etc/resolv.conf to contain these lines:
-
- nameserver ip_addr_of_first_dns_server
- nameserver ip_addr_of_second_dns_server
-
-For example:
-
- nameserver 204.101.251.1
- nameserver 204.101.251.2
-
-
-6. Firewall your machine
-------------------------
-
-MAKE SURE YOU FIREWALL YOUR MACHINE. A sample firewall script is given
-in the shell script "firewall" To install the script:
-
-a) Copy it to /etc/rc.d/init.d/firewall
-b) Type: chkconfig firewall on
-c) Start the firewall: sh /etc/rc.d/init.d/firewall start
-
-(The above procedure works ONLY on Red Hat-like systems.)
-
-You may want to tweak the script somewhat.
-
-7. Bring up the connection at boot time
----------------------------------------
-
-On a Red Hat system, the installation procedure should have installed
-a script called /etc/rc.d/init.d/adsl. To bring up the connection
-at boot time, just type this command as root:
-
- chkconfig --add adsl
-
-On non-Red-Hat systems, add this line to the end
-of /etc/rc.d/rc.local:
-
- /usr/sbin/adsl-start
-
-8. Configure LAN Hosts
-----------------------
-
-If you have a LAN behind the firewall, you have to lower the TCP
-maximum segment size from the normal 1460 to 1452 (or better, 1412.)
-You have two options: Either set the MTU of all the interfaces on
-other hosts on the LAN to 1452, or use the "-m 1412" option to pppoe.
-The "-m" option for pppoe is far simpler and makes it easier to add
-hosts to the LAN, but consumes some extra CPU time.
-
-If you want to manually configure the LAN hosts, here's how:
-
-In Linux, use: "ifconfig eth0 mtu 1452". For best results, put this
-in an /etc/rc.d/rc.local script.
-
-For Windows, machines, see http://lan.cns.ksu.edu/OS/WIN95/slip95.htm.
-Set the MaxMTU to 1452.
-
-9. Commands to control the ADSL link
-------------------------------------
-
-As root, bring up the link by typing: adsl-start
-As root, bring down the link by typing: adsl-stop
-
-That's it!
-
---
-David F. Skoll <dfs@roaringpenguin.com> | Roaring Penguin Software Inc.
-http://www.roaringpenguin.com | Linux and UNIX Specialists
-
-PROBLEMS! DAVE, IT DOESN'T WORK!
----------------------------------
-
-Here are some problems PPPoE users have encountered.
-
------------------------------------------------------------------------------
-A) Can't see the Ethernet interface
-
-Well, I can't really help you here. To use these instructions, you must
-have Linux working to the point where it recognizes your Ethernet card.
-If you type "ifconfig ethx" and you get back a HWAddr value, your Ethernet
-card is probably OK. But I really can't help with hardware configuration
-issues.
-
------------------------------------------------------------------------------
-B) Connection seems to come up, but I can't browse the web or ping anything
-
-You probably don't have DNS set up. See step 6.
-
------------------------------------------------------------------------------
-C) Can't compile PPPoE
-
-I have only tested compilation on 2.2-kernel machines. Make sure you have
-"make", the C compiler and all development header files installed.
-
------------------------------------------------------------------------------
-D) pppd complains about (i) "unknown option pty" or (ii) "pty option precludes
- specifying device name"
-
-(i) Your pppd is too old. You need at least 2.3.7.
-(ii) Your /etc/ppp/options file is not empty. Empty it!
-
------------------------------------------------------------------------------
-E) pppoe dies with the log message "Message too long"
-
-You set the MTU of the Ethernet interface connected to the ADSL modem
-to less than 1500. Don't do that.
-
------------------------------------------------------------------------------
-F) Internal hosts can't see the Internet
-
-Do you have masquerading set up? I can't help you in great detail, but
-see the IPCHAINS-HOWTO and the IP-Masquerade mini-HOWTO.
-
------------------------------------------------------------------------------
-G) Authentication fails
-
-Make sure you have the right secret in /etc/ppp/pap-secrets. Your ISP
-may be using CHAP; it won't hurt to copy the line to /etc/ppp/chap-secrets.
-
-Also, MAKE SURE that /etc/ppp/options is EMPTY. The "adsl-connect" script
-supplies all required options on the command line; additional options
-in /etc/ppp/options may mess things up.
-
------------------------------------------------------------------------------
-H) VPN software does not work
-
-If you are using VPN software on a Windows or Linux machine with another
-Linux machine running PPPoE as the gateway, you MUST NOT use the "-m" option
-to pppoe. This alters IP packets, which will break any VPN which uses IPSec.
-In /etc/ppp/pppoe.conf, set CLAMPMSS to "no". You'll also have to reduce
-the MTU on the hosts behind the gateway to 1452.
-
------------------------------------------------------------------------------
-I) I can browse some web sites just fine, but others stall forever.
-
-There is probably a buggy router or firewall between you and the Web server.
-One possible workaround: In /etc/ppp/pppoe.conf, find the line which reads:
-
- CLAMPMSS=1412
-
-Try lowering the 1412 until it works (go down in steps of 100 or so.) Each
-time you lower the value, you have to restart your connection like this:
-
- adsl-stop; adsl-start
-
-This should work around buggy routers which do not support Path MTU discovery.
-
------------------------------------------------------------------------------
-J) Whenever I connect using ADSL, my internal LAN no longer sees the gateway
-
-You are more than likely running a 2.0.X Linux kernel. To solve this
-problem, give the Ethernet card connected to the DSL modem a fake IP
-address. For example, if eth0 is your internal LAN card and eth1 goes to
-the DSL modem, do something like this:
-
- ifconfig eth1 10.0.0.1 netmask 255.255.255.0
-
-(You may have to choose a different IP address; experiment.)
------------------------------------------------------------------------------
-K) How can I run a script every time I connect and get a new IP address?
-
-Put the script in /etc/ppp/ip-up. See the pppd(8) man page.
------------------------------------------------------------------------------
-L) Nothing works!
-
-You may need to put your Ethernet card in half-duplex, 10Mb/s mode to
-work with the DSL modem. You may have to run a DOS program to do this,
-or pass special parameters to the Linux driver.
-
-Some providers object to attempts to set the MRU or MTU. Try removing
-"mtu 1492 mru 1492" from PPP_STD_OPTIONS in the adsl-connect script.
-This problem has been seen with an ISP in Hong Kong.
-
-Your DSL provider may be using non-standard PPPoE frames or require
-something special in the Service-Name field. If you have two computers,
-you can try sniffing out these values with the "pppoe-sniff" program.
-Type "man pppoe-sniff" for details. If you don't have two computers,
-you'll have to ask your DSL provider if it uses non-standard PPPoE frames
-or special Service-Name fields. Good luck getting an answer...
-
-If pppoe-sniff indicates that nothing is amiss, make sure the Ethernet
-card associated with the ADSL modem does NOT have a valid IP address.
-(NOTE: For 2.0 kernels, you may have to give it a fake IP address
-which is not on your internal subnet. Something like 192.168.42.42
-might work if you are not using 192.168.42.*)
-
-If you are using synchronous PPP on a slow machine, try switching to
-asynchronous PPP.
-
-Make sure no entries in the routing table go through the Ethernet card
-connected to the ADSL modem. You might want to add these lines in
-adsl-connect:
-
- ifconfig ethx down
- ifconfig ethx up mtu 1500
-
-which should reset things to sane values.
-
-#######################################################################
-# WHEN ALL ELSE FAILS: #
-#######################################################################
-
-If you are completely unable to connect, run the adsl-start script in
-debugging mode. If you are using bash as your shell (if you don't
-know what your shell is, it's probably bash), type this:
-
- DEBUG=1 adsl-start
-
-In tcsh or csh, use:
-
- setenv DEBUG 1; adsl-start
-
-Then follow the instructions to mail the debugging file to me. PLEASE
-DON'T DO THIS until you have exhausted all other avenues; rp-pppoe is
-free software and it costs me time and money to help people with
-problems. While I don't mind doing this, I do mind it if you don't
-make an effort to fix the problem yourself first.
-
-WARNING: If you run adsl-start in debugging mode and you manage to
-connect, your connection will be extremely slow and huge amounts of
-data will quickly fill your /tmp directory. Do not use debugging mode
-unless you really cannot get your connection to work.
-
-Be aware that debugging mode produces hex dumps which potentially reveal
-your user name and password. If the debugging output includes packets
-labeled "PPPOE Session", you may wish to remove these packets from the
-dump before mailing it to me.
diff --git a/mdk-stage1/rp-pppoe/doc/KERNEL-MODE-PPPOE b/mdk-stage1/rp-pppoe/doc/KERNEL-MODE-PPPOE
deleted file mode 100644
index 454c4b870..000000000
--- a/mdk-stage1/rp-pppoe/doc/KERNEL-MODE-PPPOE
+++ /dev/null
@@ -1,39 +0,0 @@
-RP-PPPoE now supports kernel-mode PPPoE on Linux kernels 2.4.x. However,
-the default "./go" build procedure does not make kernel-mode support.
-
-Here's what you need to do:
-
-1) Download Michal Ostrowski's patched version of pppd which supports
-a PPPoE plugin. The latest version as of this writing is
-at http://www.math.uwaterloo.ca/~mostrows/ in
-http://www.math.uwaterloo.ca/~mostrows/ppp-2.4.0-pppoe4.tgz. It is
-also mirrored at http://www.roaringpenguin.com/pppoe/
-
-2) Unpack that version of pppd and build and install it.
-
-3) In the rp-pppoe directory, change to src/ and type:
-
- ./configure --enable-plugin=/path/to/ppp-tree
-
-Here, /path/to/ppp-tree is where you unpacked the pppd software. It
-should be the directory named ppp-2.4.0.pppoe
-
-4) Type make; make install
-
-5) Edit /etc/ppp/pppoe.conf to include this line:
-
- LINUX_PLUGIN=/etc/ppp/plugins/rp-pppoe.so
-
-6) Make sure your kernel was built with support for PPP, PPPOX and that
-all modules are locatable by modprobe. Make sure you have a /dev/ppp
-device:
-
- mknod /dev/ppp c 108 0
-
-After that, adsl-start should use kernel-mode PPPoE.
-
-This code is experimental and unsupported. Use at your own risk.
-
---
-David F. Skoll <dfs@roaringpenguin.com>
-
diff --git a/mdk-stage1/rp-pppoe/doc/LICENSE b/mdk-stage1/rp-pppoe/doc/LICENSE
deleted file mode 100644
index 9ed341535..000000000
--- a/mdk-stage1/rp-pppoe/doc/LICENSE
+++ /dev/null
@@ -1,339 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- Appendix: How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/mdk-stage1/rp-pppoe/doc/PROBLEMS b/mdk-stage1/rp-pppoe/doc/PROBLEMS
deleted file mode 100644
index f0b7d7d59..000000000
--- a/mdk-stage1/rp-pppoe/doc/PROBLEMS
+++ /dev/null
@@ -1,3 +0,0 @@
-Problems?
-
-See the last section of HOW-TO-CONNECT.
diff --git a/mdk-stage1/rp-pppoe/go b/mdk-stage1/rp-pppoe/go
deleted file mode 100755
index 305ac9ee4..000000000
--- a/mdk-stage1/rp-pppoe/go
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/sh
-#***********************************************************************
-#
-# go
-#
-# Quick-start shell script to set up ADSL
-#
-# Copyright (C) 2000 Roaring Penguin Software Inc.
-#
-# $Id$
-#***********************************************************************
-
-# Figure out directory of script
-MYDIR=`dirname $0`
-cd $MYDIR/src
-
-echo "Running ./configure..."
-./configure
-if [ "$?" != 0 ] ; then
- echo "Oops! It looks like ./configure failed."
- exit 1
-fi
-
-echo "Running make..."
-make
-if [ "$?" != 0 ] ; then
- echo "Oops! It looks like make failed."
- exit 1
-fi
-
-echo "Running make install..."
-make install
-
-if [ "$?" != 0 ] ; then
- echo "Oops! It looks like make install failed."
- exit 1
-fi
-
-for i in a a a a a a a a a a a a a a a a a a a a a a a a a a a a ; do
- echo ""
-done
-
-sh ../scripts/adsl-setup
diff --git a/mdk-stage1/rp-pppoe/go-gui b/mdk-stage1/rp-pppoe/go-gui
deleted file mode 100755
index ddce984fd..000000000
--- a/mdk-stage1/rp-pppoe/go-gui
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/bin/sh
-#***********************************************************************
-#
-# go-gui
-#
-# Quick-start shell script to set up ADSL and GUI wrapper
-#
-# Copyright (C) 2000 Roaring Penguin Software Inc.
-#
-# $Id$
-#***********************************************************************
-
-# GUI only works on Linux
-if test "`uname`" != "Linux" ; then
- echo "Sorry, the GUI only works on Linux."
- exit 1
-fi
-
-# Figure out directory of script
-MYDIR=`dirname $0`
-cd $MYDIR/src
-
-echo "Running ./configure..."
-./configure
-if [ "$?" != 0 ] ; then
- echo "Oops! It looks like ./configure failed."
- exit 1
-fi
-
-echo "Running make..."
-make
-if [ "$?" != 0 ] ; then
- echo "Oops! It looks like make failed."
- exit 1
-fi
-
-echo "Running make install..."
-make install
-
-if [ "$?" != 0 ] ; then
- echo "Oops! It looks like make install failed."
- exit 1
-fi
-
-echo "Building GUI wrapper..."
-cd ../gui
-make
-if [ "$?" != 0 ] ; then
- echo "Oops! It looks like make failed."
- exit 1
-fi
-
-echo "Installing GUI..."
-make install
-
-if [ "$?" != 0 ] ; then
- echo "Oops! It looks like make install failed."
- exit 1
-fi
-
-# Install entry in KDE menu
-if test -n "$KDEDIR" ; then
- echo "Installing KDE menu entry Internet : TkPPPoE..."
- mkdir -p "$KDEDIR/share/applnk/Internet"
- cat <<EOF > "$KDEDIR/share/applnk/Internet/tkpppoe.kdelnk"
-# KDE Config File
-[KDE Desktop Entry]
-Name=TkPPPoE
-Comment=Start/Stop ADSL connections
-Exec=tkpppoe
-Terminal=0
-Type=Application
-EOF
-fi
-
-# Install entry in GNOME menus
-GNOMEDIR=`gnome-config --datadir 2>/dev/null`
-if test -n "$GNOMEDIR" ; then
- echo "Installing GNOME menu entry Internet : TkPPPoE..."
- mkdir -p "$GNOMEDIR/gnome/apps/Internet"
-cat <<EOF > "$GNOMEDIR/gnome/apps/Internet/tkpppoe.desktop"
-[Desktop Entry]
-Name=TkPPPoE
-Comment=Start/Stop ADSL connections
-Exec=tkpppoe
-Terminal=0
-Type=Application
-EOF
-fi
-echo "Running GUI configuration tool..."
-tkpppoe &
-exit 0
diff --git a/mdk-stage1/rp-pppoe/gui/Makefile.in b/mdk-stage1/rp-pppoe/gui/Makefile.in
deleted file mode 100644
index a9b0844c0..000000000
--- a/mdk-stage1/rp-pppoe/gui/Makefile.in
+++ /dev/null
@@ -1,64 +0,0 @@
-# @configure_input@
-#***********************************************************************
-#
-# Makefile
-#
-# Makefile for GUI for Roaring Penguin's Linux user-space PPPoE client.
-#
-# Copyright (C) 2001 Roaring Penguin Software Inc.
-#
-# This program may be distributed according to the terms of the GNU
-# General Public License, version 2 or (at your option) any later version.
-#
-# $Id$
-#***********************************************************************
-DEFINES=
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-mandir=@mandir@
-install=@INSTALL@
-install_dir=@INSTALL@ -d
-sbindir=@sbindir@
-bindir=@bindir@
-
-ADSL_START_PATH=@sbindir@/adsl-start
-ADSL_STOP_PATH=@sbindir@/adsl-stop
-ADSL_STATUS_PATH=@sbindir@/adsl-status
-
-PATHS='-DADSL_START_PATH="$(ADSL_START_PATH)"' '-DADSL_STOP_PATH="$(ADSL_STOP_PATH)"' '-DADSL_STATUS_PATH="$(ADSL_STATUS_PATH)"'
-
-CFLAGS= @CFLAGS@ $(DEFINES) $(PATHS)
-
-all: pppoe-wrapper
- @echo ""
- @echo "Type 'make install' as root to install the software."
-
-pppoe-wrapper: wrapper.o
- @CC@ -o pppoe-wrapper wrapper.o
-
-wrapper.o: wrapper.c
- @CC@ $(CFLAGS) -c -o wrapper.o wrapper.c
-
-install: all
- -mkdir -p $(RPM_INSTALL_ROOT)$(sbindir)
- -mkdir -p $(RPM_INSTALL_ROOT)$(bindir)
- -mkdir -p $(RPM_INSTALL_ROOT)/etc/ppp/rp-pppoe-gui
- $(install) -m 4755 -s pppoe-wrapper $(RPM_INSTALL_ROOT)$(sbindir)
- $(install) -m 755 tkpppoe $(RPM_INSTALL_ROOT)$(bindir)
- -mkdir -p $(RPM_INSTALL_ROOT)$(mandir)/man1
- $(install) -m 644 pppoe-wrapper.1 $(RPM_INSTALL_ROOT)$(mandir)/man1
- $(install) -m 644 tkpppoe.1 $(RPM_INSTALL_ROOT)$(mandir)/man1
- -mkdir -p $(RPM_INSTALL_ROOT)/usr/share/rp-pppoe-gui
- for i in tkpppoe.html mainwin-busy.png mainwin-nonroot.png mainwin.png props-advanced.png props-basic.png props-nic.png props-options.png ; do \
- $(install) -m 644 html/$$i $(RPM_INSTALL_ROOT)/usr/share/rp-pppoe-gui; \
- done
-
-clean:
- rm -f *.o *~ pppoe-wrapper
-
-distclean: clean
- rm -f Makefile tkpppoe
-
-.PHONY: clean
-
-.PHONY: distclean
diff --git a/mdk-stage1/rp-pppoe/gui/html/tkpppoe.html b/mdk-stage1/rp-pppoe/gui/html/tkpppoe.html
deleted file mode 100644
index 51aadb895..000000000
--- a/mdk-stage1/rp-pppoe/gui/html/tkpppoe.html
+++ /dev/null
@@ -1,181 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <meta name="GENERATOR" content="Mozilla/4.76 [en] (X11; U; Linux 2.2.14-5.0 i686) [Netscape]">
- <title>TkPPPoE Manual</title>
-</head>
-<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#59188E" alink="#FF0000">
-
-<center>
-<h1>tkpppoe - A GUI for managing PPPoE Connections</h1>
-</center>
-
-<h1>Introduction</h1>
-
-TkPPPoE is a graphical user interface for managing PPPoE connections. It
-performs two different functions:
-<ul>
-<li>TkPPPoE lets you <em>define</em> connection properties. This step must
-be done as root.
-<li>TkPPPoE lets you <em>start and stop</em> PPPoE connections. This step
-may be done as a normal user, depending on how you configured the connection.
-</ul>
-
-<h1>Defining Connections</h1>
-
-To define connections, start TkPPPoE as root. You can do this from
-a terminal by typing <code>tkpppoe</code>, or from the KDE or GNOME menus
-by selecting <b>Internet : TkPPPoE</b>. The following window pops up:
-
-<p>
-<center><img src="mainwin.png" width="361" height="73" alt="Main Window">
-</center>
-
-<p>
-Because you have not yet defined any connections, the connection property
-window also pops up:
-
-<p>
-<center><img src="props-basic.png" width="440" height="259" alt="Connection Properties - Basic">
-</center>
-
-You can pop up the connection property window at any time by clicking
-<b>New Connection...</b> You can edit the properties of an existing
-connection by selecting the connection's name and clicking
-<b>Properties...</b>
-<h4>Basic Information</h4>
-
-Let's fill in the basic information:
-<ul>
-<li>For <b>Connection Name</b>, enter a unique name for this connection. It
-can be anything you like, but must contain only letters, numbers, underscores
-or dashes. In particular, it can't contain spaces. If you have only one
-PPPoE connection, a good name is <b>Default</b>.
-<li>For <b>User Name</b>, enter the user name supplied by your ISP. Enter
-only the user name; do not enter an "@isp.com" part.
-<li>For <b>Network</b>, you may have to enter your ISP's domain name.
-(For example, <b>isp.com</b>.) Some DSL providers add this to your user
-name; others do not. You may have to experiment a bit. The two most likely
-choices are your ISP's domain name, or blank. Try both.
-<li>For <b>Password</b>, enter the password your ISP provided you with.
-</ul>
-
-<h4>NIC and DNS</h4>
-Click on the <b>NIC and DNS</b> tab:
-
-<p>
-<center><img src="props-nic.png" width="440" height="259" alt="Connection Properties - NIC and DNS"></center>
-<p>
-<ul>
-<li>For <b>Ethernet Interface</b>, enter the Ethernet interface connected
-to the DSL modem. It is something like <b>eth0</b> or <b>eth1</b>. Click
-on <b>...</b> to browse a list of detected Ethernet interfaces.
-<li>For <b>DNS Setup</b>, you have three options:
-<ol>
-<li><b>From Server</b> means that the system will obtain DNS information from
-the PPPoE server. This is the correct choice for most ISPs.
-<li><b>Specify</b> means that you will enter the IP addresses of your DNS
-servers manually. In this case, enter the addresses in the <b>Primary DNS</b>
-and <b>Secondary DNS</b> entries.
-<li><b>Do not Adjust</b> means that you want RP-PPPoE to leave your
-DNS setup alone. Use this if you are running your own caching DNS server
-or know that you don't want the DNS setup touched.
-</ol>
-</ul>
-
-<h4>Options</h4>
-Click on the <b>Options</b> tab:
-
-<p>
-<center><img src="props-options.png" width="440" height="259" alt="Connection Properties - Options"></center>
-<p>
-<ul>
-<li>If you want ordinary users to be able to start and stop this connection,
-enable <b>Allow use by non-root users</b>. If you do not enable this,
-non-root users will be able to monitor the connection, but not control it.
-<li>If you want to use synchronous PPP, enable <b>Use synchronous PPP</b>.
-This is recommended as it conserves CPU usage, but may not work on some
-(misconfigured) Linux kernels.
-<li>For <b>Firewalling</b>, you have three options:
-<ol>
-<li><b>Stand-Alone</b> installs a simple firewall ruleset for stand-alone
-machines. Use this if you have only a single computer connected to the DSL
-modem.
-<li><b>Masquerading</b> installs a simple firewall ruleset for using
-your Linux computer as an Internet sharing device. If you have two Ethernet
-cards, you can connect one card to the DSL modem and the other to an
-internal LAN. The masquerading firewall ruleset lets internal machines
-share the DSL connection.
-<li><b>None</b>. If you already have your own firewall rules, or you wish
-to run servers on your machine, select None. This is <em>not recommended</em>
-unless you take steps to secure your machine, and know what you are doing.
-</ol>
-</ul>
-
-<h4>Advanced</h4>
-Click on the <b>Advanced</b> tab:
-
-<p>
-<center><img src="props-advanced.png" width="440" height="259" alt="Connection Properties - Advanced"></center>
-<p>
-
-In most cases, you can leave <b>AC-Name</b> and <b>Service-Name</b> blank.
-In some cases, your ISP may require you to enter information in these fields;
-contact your ISP for more information.
-
-<h1>Controlling Connections</h1>
-For these examples, run <code>tkpppoe</code> as a normal user (not root).
-The main window appears like this:
-
-<p>
-<center><img src="mainwin-nonroot.png" width="206" height="73" alt="Main Window - Non-root">
-</center>
-<p>
-<ul>
-<li>To start a connection, press <b>Start</b>. The two LEDs flash red
-and grey. If the connection is established, they turn green.
-<li>To stop a connection, press <b>Stop</b>.
-</ul>
-
-<p>The two rectangles to the right of the connection name are the
-<em>status LEDs</em>. The top LED corresponds to transmitted data and
-the bottom to received. The LEDs are colored as follows:
-<ul>
-<li>Grey -- connection is not established.
-<li>Flashing red/grey -- connection is being started.
-<li>Green -- connection is up, but idle.
-<li>Yellow -- connection is up and data is being sent or received.
-<li>Red -- connection has been lost, but the system is trying to reestablish it.
-</ul>
-
-<p>
-When a connection is established, two graphs appear:
-
-<p>
-<center><img src="mainwin-busy.png" width="206" height="73" alt="Main Window - Established Connection">
-</center>
-<p>
-
-The left (red) graph shows transmitted packets and the average
-transmission speed (in bits per second) over the sample time. The
-right (green) graph shows received packets.
-
-<h1>Miscellaneous Information</h1>
-<ul>
-<li>The connection menu has an entry called <b>User's Manual</b> which
-will pop up this user manual (if you have Netscape installed.)
-<li>You can define multiple PPPoE connections, but you should not use
-more than one simultaneuously unless you feel comfortable editing scripts
-and setting up routing tables. By default, TkPPPoE tries to add a default
-route for connections. This does not work well with multiple simultaneous
-connections.
-<li>If you exit from TkPPPoE, connections which are up remain up. You
-have to explicitly stop connections if you want them terminated.
-</ul>
-<hr>
-<a href="http://www.roaringpenguin.com/pppoe/">TkPPPoE</a> is Copyright 2001 by <a href="http://www.roaringpenguin.com">Roaring Penguin Software Inc</a> and
-is licensed under the GNU General Public License.
-<p>Screenshots show TkPPPoE running under the <a href="http://www.xfce.org">XFCE</a> desktop, a lightweight UNIX and Linux desktop.
-</body>
-</html>
diff --git a/mdk-stage1/rp-pppoe/gui/pppoe-wrapper.1 b/mdk-stage1/rp-pppoe/gui/pppoe-wrapper.1
deleted file mode 100644
index 4fbf2bce2..000000000
--- a/mdk-stage1/rp-pppoe/gui/pppoe-wrapper.1
+++ /dev/null
@@ -1,45 +0,0 @@
-.\" $Id$
-.TH PPPOE-WRAPPER 1 "26 February 2001"
-.UC 4
-.SH NAME
-pppoe-wrapper \- SUID wrapper for starting and stopping PPPoE connections.
-.SH SYNOPSIS
-.B pppoe-wrapper start linkname
-.P
-.B pppoe-wrapper stop linkname
-.P
-.B pppoe-wrapper status linkname
-
-.SH DESCRIPTION
-\fBpppoe-wrapper\fR is a small SUID program which allows non-root users
-to start and stop PPPoE links. It operates as follows:
-
-.TP
-.B o
-First, \fIlinkname\fR is sanity-checked. Too-long names and names containing
-illegal characters are rejected.
-
-.TP
-.B o
-Second, \fBpppoe-wrapper\fR opens the file \fB/etc/ppp/rp-pppoe-gui/\fR\fIlinkname\fR for reading. If that file does not contain the line:
-.nf
-
- NONROOT=OK
-
-.fi
-then \fBpppoe-wrapper\fR fails.
-
-.TP
-.B o
-Otherwise, \fBpppoe-wrapper\fR runs \fBadsl-start\fR, \fBadsl-stop\fR or
-\fBadsl-status\fR with the above filename as its single argument.
-
-.SH AUTHOR
-\fBpppoe-wrapper\fR was written by David F. Skoll <dfs@roaringpenguin.com>.
-
-The \fBpppoe\fR home page is \fIhttp://www.roaringpenguin.com/pppoe/\fR.
-
-.SH SEE ALSO
-adsl-start(8), adsl-stop(8), adsl-status(8), tkpppoe(1)
-
-
diff --git a/mdk-stage1/rp-pppoe/gui/tkpppoe.1 b/mdk-stage1/rp-pppoe/gui/tkpppoe.1
deleted file mode 100644
index 183476568..000000000
--- a/mdk-stage1/rp-pppoe/gui/tkpppoe.1
+++ /dev/null
@@ -1,36 +0,0 @@
-.\" $Id$
-.TH TKPPPOE 1 "26 February 2001"
-.UC 4
-.SH NAME
-tkpppoe \- Graphical interface for controlling rp-pppoe
-.SH SYNOPSIS
-.B tkpppoe
-
-.SH DESCRIPTION
-\fBtkpppoe\fR is a graphical program for controlling PPPoE links.
-It works with the RP-PPPoE package and has its own HTML manual.
-
-.SH FILES
-
-.TP
-.B /etc/ppp/rp-pppoe-gui/connection-info
-Contains connection information. This file is not human-editable.
-
-.TP
-.B /etc/ppp/rp-pppoe-gui/passwd
-Contains passwords for each connection. This file is not human-editable.
-
-.TP
-.B /etc/ppp/rp-pppoe-gui/conf.*
-These configuration files are used by \fBadsl-start\fR. They are
-generated anew by \fBtkpppoe\fR each time a change is made to a
-connection's properties.
-
-.SH AUTHOR
-\fBtkpppoe\fR was written by David F. Skoll <dfs@roaringpenguin.com>.
-
-The \fBpppoe\fR home page is \fIhttp://www.roaringpenguin.com/pppoe/\fR.
-
-.SH SEE ALSO
-adsl-start(8), adsl-stop(8), pppoe-wrapper(8).
-
diff --git a/mdk-stage1/rp-pppoe/gui/tkpppoe.in b/mdk-stage1/rp-pppoe/gui/tkpppoe.in
deleted file mode 100755
index 37dbf8cc1..000000000
--- a/mdk-stage1/rp-pppoe/gui/tkpppoe.in
+++ /dev/null
@@ -1,2891 +0,0 @@
-#!/bin/sh
-# -*-Mode: TCL;-*-
-
-#--------------------------------------------------------------
-# tkpppoe
-#
-# A graphical front-end for configuring and using rp-pppoe.
-#
-# Copyright (C) 2001 by Roaring Penguin Software Inc.
-# This file may be distributed under the terms of the GNU General Public
-# License, Version 2, or (at your option) any later version.
-#
-# The "Roaring Penguin" logo is a trademark of Roaring Penguin Software Inc.
-#
-# http://www.roaringpenguin.com
-#
-#--------------------------------------------------------------
-
-# $Id$
-
-# the next line restarts using wish \
-umask 022; \
-exec wish "$0" "$@" || clear; echo "*****"; echo "Cannot find 'wish' -- you need Tcl/Tk installed to run this program"; exit 1
-
-# Set app name
-tk appname TkPPPoE
-
-# Set this to one if you want to allow multiple instances of TkPPPoE
-set AllowMultipleInstances 0
-
-# Check for other instances
-if {"[tk appname]" != "TkPPPoE"} {
- # Must be another instance running...
- if {!$AllowMultipleInstances} {
- send TkPPPoE AnotherInstance
- exit 0
- }
-}
-
-# Location of config directory
-set ConfigDir /etc/ppp/rp-pppoe-gui
-
-# Are we running as root?
-set Admin 0
-
-# Location of connection info file
-set ConnectionInfoFile [file join $ConfigDir connection-info]
-
-# Location of password file
-set PasswordFile [file join $ConfigDir passwd]
-
-# Location of "already run" file
-set AlreadyRunFile [file join $ConfigDir gui-already-run]
-
-# Connection information
-set ConnectionInfo {}
-
-# Connection options
-set OPTS(nonroot) 0
-set OPTS(sync) 1
-
-# Location of wrapper
-set Wrapper "@WRAPPER@"
-
-# Timer token for UpdateConnectionState
-set UpdateToken {}
-
-# Update interval in milliseconds
-set UpdateInterval 500
-
-# Packet counters for signalling activity
-set Packets(in) 0
-set Packets(out) 0
-set Bytes(in) 0
-set Bytes(out) 0
-set MeasureTime 0
-
-# Set up some options to make it look better
-option add *Button.borderWidth 1
-option add *Button.Pad 1
-option add *Menubutton.borderWidth 1
-option add *Menubutton.Pad 1
-option add *Entry.Background white
-
-# Array holding help strings for windows
-array set HelpData {}
-
-bind HelpWin <Enter> "HelpWindowEntered %W"
-bind HelpWin <Leave> "HelpWindowLeft %W"
-
-proc AnotherInstance {} {
- wm deiconify .
- raise .
-}
-
-#***********************************************************************
-# %PROCEDURE: HelpWindowEntered
-# %ARGUMENTS:
-# w -- window
-# %RETURNS:
-# Nothing
-# %DESCRIPTION:
-# Looks for procedure in HelpData; evals it if found.
-#***********************************************************************
-proc HelpWindowEntered { w } {
- global HelpData
- if {[info exists HelpData($w)]} {
- set cmd "$HelpData($w) Enter"
- uplevel #0 $cmd
- }
-}
-
-#***********************************************************************
-# %PROCEDURE: HelpWindowLeft
-# %ARGUMENTS:
-# w -- window
-# %RETURNS:
-# Nothing
-# %DESCRIPTION:
-# Looks for procedure in HelpData; evals it if found.
-#***********************************************************************
-proc HelpWindowLeft { w } {
- global HelpData
- if {[info exists HelpData($w)]} {
- set cmd "$HelpData($w) Leave"
- uplevel #0 $cmd
- }
-}
-
-#***********************************************************************
-# %PROCEDURE: RegisterHelpWindow
-# %ARGUMENTS:
-# w -- window we need help about
-# helptext -- the help text
-# win -- window in which to put help messages
-# %RETURNS:
-# Nothing
-# %DESCRIPTION:
-# Sets things up so help text appears in "$win" when mouse enters "$w"
-#***********************************************************************
-proc RegisterHelpWindow {w helptext win} {
- global HelpData
- set tags [bindtags $w]
- if {[lsearch -exact $tags HelpWin] < 0} {
- lappend tags HelpWin
- bindtags $w $tags
- }
- set HelpData($w) [list HelpInTextWin $helptext $win]
-}
-
-#***********************************************************************
-# %PROCEDURE: HelpInTextWin
-# %ARGUMENTS:
-# text -- help text
-# tw -- window in which to write text
-# what -- one of "Enter" or "Leave"
-# %RETURNS:
-# Nothing
-# %DESCRIPTION:
-# Clears out $tw; if $what is "Enter", puts $text in $tw.
-#***********************************************************************
-proc HelpInTextWin {text tw what} {
- $tw configure -state normal
- $tw delete 1.0 end
- if {"$what" == "Enter"} {
- $tw insert end $text
- }
- $tw configure -state disabled
-}
-
-
-#***********************************************************************
-# %PROCEDURE: drawLogo
-# %ARGUMENTS:
-# c -- canvas to draw logo in
-# bg -- background color of canvas
-# pencolor -- color of the word "Penguin"
-# %RETURNS:
-# Nothing
-# %DESCRIPTION:
-# Draws Roaring Penguin logo in a Tcl canvas
-#***********************************************************************
-proc drawLogo { c bg {pengcolor #6699cc} } {
- $c create polygon 372.249 5.182 361.23 5.519 \
- 346.164 8.892 316.482 20.023 305.463 17.774 296.468 \
- 19.573 288.935 24.97 282.864 33.177 267.348 55.102 \
- 254.531 77.814 236.204 125.26 225.635 174.844 \
- 221.026 226.113 213.605 228.025 208.658 232.634 \
- 225.523 240.28 250.708 243.316 282.752 242.416 \
- 320.079 238.818 330.985 193.17 338.181 146.735 \
- 338.743 99.963 335.483 76.577 329.524 53.191 345.602 \
- 48.131 353.135 45.995 359.768 41.048 342.679 43.184 \
- 324.689 40.036 334.583 28.905 348.3 18.674 372.249 \
- 5.182 -fill #000000 -outline {} -width 1 -tags logo
-
- $c create line 372.249 5.182 361.23 5.519 \
- 346.164 8.892 316.482 20.023 305.463 17.774 296.468 \
- 19.573 288.935 24.97 282.864 33.177 267.348 55.102 \
- 254.531 77.814 236.204 125.26 225.635 174.844 \
- 221.026 226.113 213.605 228.025 208.658 232.634 \
- 225.523 240.28 250.708 243.316 282.752 242.416 \
- 320.079 238.818 330.985 193.17 338.181 146.735 \
- 338.743 99.963 335.483 76.577 329.524 53.191 345.602 \
- 48.131 353.135 45.995 359.768 41.048 342.679 43.184 \
- 324.689 40.036 334.583 28.905 348.3 18.674 372.249 \
- 5.182 -tags logo
-
- $c create polygon 298.605 109.632 290.734 \
- 159.328 282.752 182.939 271.958 205.65 262.851 \
- 171.133 263.75 138.752 264.537 164.5 271.958 192.833 \
- 286.687 157.192 298.605 109.632 -fill #ffffff \
- -outline {} -width 1 -tags logo
-
- $c create line 298.605 109.632 290.734 159.328 \
- 282.752 182.939 271.958 205.65 262.851 171.133 \
- 263.75 138.752 264.537 164.5 271.958 192.833 286.687 \
- 157.192 298.605 109.632 -tags logo
-
- $c create polygon 312.546 30.592 315.132 35.876 \
- 310.747 39.586 308.161 34.414 312.546 30.592 -fill \
- #ffffff -outline {} -width 1 -tags logo
-
- $c create line 312.546 30.592 315.132 35.876 \
- 310.747 39.586 308.161 34.414 312.546 30.592 -tags logo
-
- $c create polygon 328.624 54.427 322.665 58.7 \
- 314.458 61.286 289.16 59.15 284.55 74.665 285.338 \
- 90.181 303.214 98.951 308.499 106.259 310.523 \
- 116.378 305.913 130.208 312.771 141.563 308.049 \
- 167.76 299.729 192.158 279.041 238.593 313.558 \
- 233.871 327.388 185.75 335.033 139.989 335.82 96.253 \
- 328.624 54.427 -fill #ffffff -outline {} -width 1 -tags logo
-
- $c create line 328.624 54.427 322.665 58.7 \
- 314.458 61.286 289.16 59.15 284.55 74.665 285.338 \
- 90.181 303.214 98.951 308.499 106.259 310.523 \
- 116.378 305.913 130.208 312.771 141.563 308.049 \
- 167.76 299.729 192.158 279.041 238.593 313.558 \
- 233.871 327.388 185.75 335.033 139.989 335.82 96.253 \
- 328.624 54.427 -tags logo
-
- $c create polygon 53.837 185.412 54.399 185.862 \
- 53.837 188.223 54.399 188.673 53.837 188.673 53.837 \
- 189.572 53.837 190.472 53.387 191.034 52.938 192.833 \
- 50.577 195.644 49.677 196.656 49.677 197.105 48.215 \
- 198.455 47.316 198.904 46.866 198.904 44.505 200.816 \
- 43.606 200.366 42.594 201.265 42.144 201.715 41.245 \
- 202.277 40.795 202.727 40.345 202.277 39.783 202.277 \
- 36.972 203.177 36.522 203.177 36.073 203.177 35.623 \
- 203.627 34.723 203.627 34.161 203.627 34.161 204.076 \
- 30.901 204.526 28.54 205.538 26.291 205.088 25.729 \
- 205.088 24.829 205.088 24.38 204.526 23.93 204.526 \
- 23.48 204.526 22.918 205.088 22.918 206.437 22.918 \
- 206.887 22.918 207.337 22.468 207.337 22.468 208.798 \
- 22.018 209.248 22.018 211.16 22.018 211.609 21.569 \
- 213.521 21.119 215.769 21.569 216.781 20.669 218.13 \
- 20.669 219.592 20.669 220.042 20.107 220.941 20.107 \
- 221.953 20.107 223.752 19.657 225.664 19.208 226.113 \
- 19.657 227.013 18.308 230.835 17.858 240.167 17.296 \
- 248.15 17.296 249.05 16.846 250.062 15.947 250.062 \
- 15.048 250.062 15.048 250.511 12.686 251.86 12.237 \
- 251.86 11.675 251.411 11.675 250.511 11.675 246.689 \
- 11.225 245.339 11.225 243.878 10.775 240.617 11.225 \
- 239.268 11.225 238.818 10.775 238.256 10.325 237.357 \
- 10.325 236.007 9.876 232.634 9.876 231.735 9.876 \
- 231.285 9.876 230.835 9.876 230.386 9.876 229.824 \
- 9.426 229.374 9.426 226.113 9.876 226.113 9.876 \
- 225.664 9.426 224.202 9.426 223.752 9.426 223.302 \
- 10.325 221.953 9.426 220.941 9.426 219.592 9.426 \
- 219.142 9.426 218.58 9.426 217.681 9.426 217.231 \
- 9.426 216.781 8.864 216.332 8.864 214.42 8.864 \
- 213.97 8.414 213.521 8.414 210.148 8.414 209.248 \
- 7.964 207.899 8.414 205.988 8.414 204.526 7.065 \
- 201.265 7.515 200.816 9.426 201.715 10.325 201.265 \
- 10.775 200.816 10.775 198.904 11.225 198.005 11.225 \
- 197.555 10.775 197.555 9.876 196.094 9.426 194.744 \
- 7.515 194.295 6.615 193.845 6.053 193.845 5.153 \
- 193.283 3.804 191.484 3.804 190.022 3.804 189.572 \
- 3.804 189.123 3.242 188.673 3.242 186.762 3.804 \
- 185.412 4.254 184.85 4.704 184.4 7.964 180.24 10.325 \
- 178.779 11.225 178.779 12.237 177.879 14.036 176.98 \
- 15.497 175.968 21.569 173.607 22.918 173.157 23.48 \
- 173.157 24.38 172.707 24.829 172.707 29.102 171.808 \
- 29.551 171.808 30.001 171.358 31.35 170.796 31.913 \
- 171.358 32.362 170.796 39.783 171.358 40.345 170.796 \
- 42.144 171.358 47.766 174.619 48.778 176.418 49.227 \
- 176.418 49.677 176.98 50.127 176.98 51.588 178.329 \
- 52.038 179.228 52.488 180.69 52.038 181.14 52.038 \
- 181.59 52.488 182.039 52.938 182.039 53.387 182.601 \
- 53.837 183.051 53.837 183.501 53.837 185.412 -fill \
- $pengcolor -outline {} -width 1 -tags logo
-
- $c create polygon 42.594 222.853 43.156 221.953 \
- 41.694 222.403 39.783 224.202 39.783 224.764 39.783 \
- 225.214 40.345 225.214 41.245 224.202 41.694 223.752 \
- 42.594 222.853 -fill $pengcolor -outline {} -width 1 -tags logo
-
- $c create polygon 58.559 234.096 59.009 234.096 \
- 59.009 234.546 58.559 234.995 58.559 235.445 57.21 \
- 236.907 56.648 237.806 52.938 241.067 52.038 241.629 \
- 52.038 242.079 51.026 242.529 50.577 242.978 50.127 \
- 242.978 49.227 244.44 45.405 246.239 44.055 246.689 \
- 43.606 246.689 43.606 247.251 42.144 247.251 41.694 \
- 247.7 40.795 247.7 38.434 248.15 36.522 248.15 \
- 35.173 247.7 34.161 246.689 33.711 246.239 32.812 \
- 244.44 32.362 241.629 32.812 239.718 32.812 239.268 \
- 33.711 234.995 36.522 229.824 35.623 228.474 35.623 \
- 227.013 36.522 225.664 37.534 224.202 38.883 222.853 \
- 41.694 220.492 42.594 219.592 43.156 219.592 43.606 \
- 219.142 45.405 217.681 45.967 217.681 46.416 217.231 \
- 48.778 215.769 52.038 214.87 53.387 214.42 54.849 \
- 214.87 55.299 214.87 56.198 215.769 56.198 217.681 \
- 56.198 218.58 54.399 221.953 53.837 222.853 53.837 \
- 223.302 53.387 223.752 50.577 226.113 49.677 226.563 \
- 47.316 228.474 43.156 230.386 41.245 230.835 40.795 \
- 230.835 40.345 230.835 39.333 230.835 38.883 230.835 \
- 38.883 229.824 39.783 229.374 40.795 228.474 41.694 \
- 228.025 42.594 227.575 45.967 227.013 46.866 226.563 \
- 50.127 224.764 51.588 223.302 52.488 221.953 52.488 \
- 220.492 52.488 219.142 51.026 218.13 49.677 218.13 \
- 48.778 218.13 47.766 219.142 47.316 219.142 47.316 \
- 219.592 46.866 219.592 45.967 220.941 44.505 221.953 \
- 44.055 222.403 43.606 222.853 42.594 223.752 41.694 \
- 225.664 41.245 225.664 41.245 226.113 40.345 226.563 \
- 39.333 227.575 39.333 228.474 38.434 229.374 36.522 \
- 233.197 35.623 236.457 35.623 237.357 35.623 238.256 \
- 35.173 241.067 35.623 242.079 36.522 243.428 37.534 \
- 243.878 37.984 244.44 38.434 244.89 38.883 244.89 \
- 39.783 245.339 43.156 245.339 45.967 244.44 49.227 \
- 242.529 50.127 241.629 50.577 241.067 54.399 238.818 \
- 54.399 238.256 54.399 237.806 56.198 236.907 58.559 \
- 234.096 -fill $pengcolor -outline {} -width 1 -tags logo
-
- $c create polygon 92.289 248.6 92.739 249.05 \
- 92.289 249.05 91.84 249.05 90.94 248.6 90.378 248.6 \
- 89.478 247.7 89.029 247.251 88.129 246.689 87.117 \
- 245.789 85.768 244.89 85.318 244.44 85.768 244.44 \
- 85.318 242.529 84.756 242.079 84.756 240.617 84.756 \
- 240.167 84.756 239.718 84.756 239.268 83.857 236.457 \
- 83.407 234.096 83.407 233.197 83.407 231.735 83.407 \
- 223.302 83.407 221.391 82.957 220.941 82.508 221.953 \
- 80.596 226.113 80.146 226.563 80.146 227.013 79.697 \
- 228.025 79.135 228.474 79.697 228.474 76.324 234.096 \
- 75.874 234.995 75.424 236.457 74.975 236.457 74.975 \
- 236.907 74.975 237.357 74.075 239.268 73.513 239.718 \
- 73.063 240.167 72.613 241.067 72.164 242.529 71.714 \
- 242.529 71.714 243.878 70.252 245.789 69.803 246.689 \
- 68.903 246.689 68.903 247.251 67.891 247.7 66.542 \
- 247.7 66.092 247.7 65.643 247.7 65.08 247.251 65.08 \
- 246.689 65.08 245.789 64.631 242.079 65.08 242.079 \
- 64.631 241.629 65.08 241.067 65.08 238.818 64.631 \
- 237.806 64.631 236.457 64.631 234.546 64.631 233.197 \
- 64.631 232.634 64.631 232.185 64.631 231.735 64.631 \
- 228.924 64.631 227.575 64.631 225.664 64.631 225.214 \
- 64.631 224.764 64.631 223.302 64.631 217.231 65.08 \
- 216.332 65.643 215.769 69.803 214.87 70.252 215.32 \
- 70.252 216.332 70.252 217.681 70.252 218.58 69.803 \
- 219.142 69.803 220.492 69.353 220.941 69.353 221.391 \
- 68.903 221.953 68.903 225.664 68.453 226.563 68.453 \
- 228.025 68.453 228.474 67.891 228.924 67.891 230.835 \
- 68.453 236.457 68.453 237.806 68.453 238.818 68.453 \
- 240.617 68.453 241.067 68.903 241.067 68.903 241.629 \
- 69.353 241.629 70.702 241.067 70.702 240.617 71.264 \
- 240.167 71.264 239.268 72.164 238.256 73.063 236.457 \
- 74.525 234.546 74.975 233.197 76.324 230.835 77.336 \
- 229.824 78.235 227.575 78.235 227.013 78.685 226.563 \
- 78.685 225.664 79.135 225.214 79.697 224.764 79.697 \
- 224.202 80.146 222.403 81.046 220.941 81.945 217.681 \
- 82.957 215.769 85.318 214.87 85.768 214.87 87.567 \
- 214.42 87.567 215.769 87.117 216.332 87.567 216.781 \
- 88.129 219.592 87.567 219.592 87.567 220.492 87.567 \
- 221.391 87.567 224.764 87.567 225.664 87.567 226.113 \
- 87.117 226.113 87.117 227.575 87.567 229.374 88.579 \
- 235.445 89.029 239.268 89.029 239.718 89.029 241.067 \
- 89.478 242.529 89.478 242.978 89.928 243.878 89.928 \
- 244.44 90.378 244.89 90.94 246.239 92.289 248.6 \
- -fill $pengcolor -outline {} -width 1 -tags logo
-
- $c create polygon 117.587 220.492 118.037 \
- 222.403 117.587 222.853 117.587 224.764 116.687 \
- 226.113 116.687 227.013 116.238 228.025 114.776 \
- 229.374 113.877 231.285 112.865 231.735 109.154 \
- 234.995 106.343 236.457 105.444 237.357 103.982 \
- 237.806 103.083 238.256 102.633 238.818 102.183 \
- 238.818 101.172 239.268 99.822 239.718 98.361 \
- 239.268 97.461 239.718 96.562 239.268 96.0 238.818 \
- 95.55 238.818 94.201 236.907 94.201 235.445 94.201 \
- 233.646 94.65 233.197 94.65 232.634 95.1 232.185 \
- 95.1 231.735 95.55 231.735 96.0 230.386 97.461 \
- 228.025 97.461 227.575 98.361 226.563 99.822 224.764 \
- 101.172 223.302 101.172 222.853 102.633 221.391 \
- 103.083 220.941 104.432 219.592 103.982 218.58 \
- 103.982 217.231 103.982 216.781 103.982 215.32 \
- 104.432 214.42 103.982 210.148 103.982 209.698 \
- 103.982 209.248 104.432 208.798 104.432 207.899 \
- 104.432 205.988 104.432 205.538 104.994 203.177 \
- 104.994 202.277 104.994 201.265 104.994 200.816 \
- 104.994 200.366 104.994 199.916 105.894 199.467 \
- 106.343 198.904 106.793 198.455 107.243 198.904 \
- 108.255 198.904 108.255 199.467 108.705 199.467 \
- 108.705 202.727 108.255 204.076 108.255 205.538 \
- 108.255 205.988 107.805 205.988 107.805 206.887 \
- 107.805 209.698 107.243 210.71 106.793 212.059 \
- 106.343 214.87 106.343 215.32 106.343 215.769 \
- 105.894 217.681 106.343 217.681 106.793 217.681 \
- 107.243 217.231 108.705 215.32 109.604 215.32 \
- 110.054 214.42 110.054 213.97 110.616 213.97 110.616 \
- 214.42 111.965 214.87 112.415 214.87 112.865 215.32 \
- 114.326 216.332 116.238 217.681 116.687 218.58 \
- 117.137 219.592 117.587 220.042 117.587 220.492 \
- -fill $pengcolor -outline {} -width 1 -tags logo
-
- $c create polygon 123.658 258.944 123.658 \
- 259.394 123.658 260.293 123.658 261.755 123.658 \
- 262.654 123.658 263.104 123.209 266.364 123.209 \
- 267.376 122.759 269.175 122.309 269.737 121.859 \
- 271.087 121.859 271.536 121.859 271.986 121.297 \
- 271.986 121.297 272.548 120.847 273.448 120.398 \
- 273.448 120.398 273.897 118.486 276.259 118.037 \
- 276.708 117.587 277.608 117.137 278.17 116.687 \
- 278.17 115.675 278.62 115.675 279.069 113.427 \
- 280.419 112.865 280.981 112.415 280.981 111.965 \
- 281.43 110.054 282.33 109.154 282.33 108.705 282.78 \
- 108.255 282.78 107.805 283.229 104.994 283.792 \
- 104.432 283.792 103.982 283.792 103.533 283.792 \
- 103.083 283.792 102.633 283.792 102.183 283.792 \
- 101.172 283.792 100.722 283.792 99.822 283.792 98.81 \
- 283.792 96.562 282.33 96.0 282.78 95.1 281.88 94.201 \
- 281.43 91.84 279.969 92.289 279.519 92.289 278.62 \
- 93.751 279.069 93.751 279.519 94.201 279.519 94.65 \
- 279.969 95.1 279.969 96.0 280.981 98.81 281.88 \
- 101.172 281.88 101.621 281.88 102.633 281.88 103.083 \
- 281.88 103.533 281.88 104.432 281.43 104.994 281.88 \
- 105.444 281.43 106.793 281.43 107.805 280.981 \
- 108.705 280.419 109.154 280.419 109.604 279.969 \
- 110.054 279.969 110.616 279.969 111.066 279.519 \
- 112.865 278.17 113.427 277.608 113.877 277.608 \
- 113.877 277.158 114.326 277.158 114.326 276.708 \
- 114.776 276.259 115.226 276.259 116.238 274.347 \
- 116.687 274.347 116.687 273.897 117.587 272.998 \
- 117.587 272.548 118.037 271.986 119.498 267.826 \
- 120.398 265.015 120.398 262.204 119.948 259.843 \
- 119.948 259.394 119.948 258.944 119.498 257.482 \
- 118.486 254.222 118.037 253.772 117.587 251.86 \
- 115.675 249.05 115.226 248.6 114.776 248.15 113.877 \
- 247.251 111.965 246.239 111.515 246.239 110.616 \
- 246.239 110.054 246.239 109.154 246.239 107.243 \
- 247.251 106.343 247.251 105.444 247.7 104.994 247.7 \
- 103.083 248.15 102.183 248.6 101.621 248.6 101.172 \
- 249.05 100.722 249.499 99.822 250.062 98.361 250.062 \
- 97.461 249.499 97.012 249.499 96.562 249.05 96.562 \
- 248.6 97.012 248.15 99.822 245.789 100.272 245.339 \
- 101.621 244.44 101.621 243.878 102.183 243.428 \
- 102.633 243.428 102.633 242.978 103.982 241.629 \
- 103.982 241.067 103.982 240.617 103.982 240.167 \
- 105.444 239.268 108.705 236.907 108.705 236.457 \
- 109.154 236.457 110.054 235.445 111.066 234.546 \
- 112.415 234.096 112.865 233.646 113.427 233.646 \
- 113.877 233.646 113.877 234.096 114.326 234.995 \
- 114.776 235.445 114.776 236.457 114.326 237.357 \
- 113.427 238.818 112.415 239.268 112.415 240.167 \
- 111.965 240.167 111.515 240.617 110.054 241.629 \
- 110.054 242.079 109.604 242.529 108.705 242.978 \
- 110.054 242.978 113.427 242.079 114.326 242.529 \
- 115.226 242.978 116.687 244.44 119.048 246.689 \
- 119.498 247.7 119.498 248.15 119.948 248.6 119.948 \
- 249.05 120.398 249.05 120.398 249.499 120.847 \
- 249.499 120.847 250.062 121.297 250.511 121.297 \
- 251.411 121.859 252.31 122.759 252.872 122.759 \
- 254.222 122.759 254.671 123.658 258.494 123.658 \
- 258.944 -fill $pengcolor -outline {} -width 1 -tags logo
-
- $c create polygon 147.607 215.769 148.506 215.32 \
- 148.506 217.231 148.506 217.681 148.506 218.13 \
- 148.956 218.58 148.506 220.492 148.506 220.941 \
- 148.506 222.853 148.956 224.764 148.956 226.113 \
- 148.506 226.563 148.956 226.563 148.506 228.924 \
- 148.956 229.824 148.956 231.285 148.506 232.185 \
- 148.956 232.634 148.956 233.646 149.405 234.995 \
- 148.956 234.995 149.405 235.445 149.405 236.907 \
- 149.405 237.357 149.968 238.818 150.867 240.167 \
- 150.867 240.617 151.317 242.079 152.216 243.428 \
- 153.228 245.339 154.128 245.789 155.027 246.239 \
- 156.939 245.789 157.388 246.239 156.489 246.689 \
- 155.027 247.7 154.128 247.7 153.228 247.7 152.216 \
- 247.7 151.767 247.7 150.867 247.251 150.417 246.239 \
- 149.405 246.239 148.056 245.339 147.607 244.44 \
- 147.157 243.428 145.695 241.629 145.695 240.617 \
- 145.245 240.167 145.245 239.718 144.796 238.256 \
- 144.346 236.907 144.346 235.445 143.784 234.546 \
- 143.784 233.197 143.784 232.185 143.784 230.835 \
- 143.334 229.824 143.784 229.374 143.334 229.374 \
- 143.334 228.474 142.884 230.386 141.985 231.735 \
- 140.973 233.197 140.523 234.096 140.523 234.546 \
- 140.523 234.995 139.624 236.457 139.174 237.806 \
- 138.162 239.718 137.263 241.067 136.813 242.079 \
- 135.913 242.978 134.452 244.89 134.002 245.789 \
- 133.552 245.789 132.091 246.689 131.191 247.251 \
- 129.73 248.15 129.28 248.15 128.38 247.7 128.38 \
- 248.15 126.919 247.7 126.019 247.251 125.12 246.239 \
- 125.12 245.339 124.67 244.89 124.67 244.44 124.67 \
- 243.428 124.67 242.529 124.67 241.067 124.67 239.718 \
- 125.12 239.268 124.67 239.268 124.67 238.256 125.12 \
- 237.806 125.12 237.357 125.12 236.907 125.12 236.007 \
- 125.12 234.096 125.57 233.197 125.57 232.185 126.019 \
- 232.185 126.019 231.285 126.019 230.386 126.019 \
- 229.374 126.469 228.474 126.469 227.013 126.469 \
- 225.214 126.019 225.214 126.469 225.214 126.019 \
- 223.302 126.019 221.953 126.019 220.492 125.57 \
- 220.042 125.12 219.592 124.108 219.142 123.209 \
- 219.142 121.859 220.042 121.297 220.042 120.398 \
- 220.941 119.498 221.391 119.048 221.391 118.486 \
- 221.953 118.037 221.953 118.037 221.391 118.486 \
- 220.941 119.498 220.042 120.847 219.142 122.759 \
- 217.681 124.108 216.781 125.12 215.769 126.469 \
- 214.87 126.919 214.87 127.481 214.87 128.38 214.87 \
- 128.83 214.87 129.73 214.87 129.73 215.769 130.292 \
- 215.769 130.742 216.781 130.742 217.681 130.292 \
- 219.142 130.292 221.953 130.292 223.302 130.292 \
- 224.202 129.73 225.214 129.28 227.013 128.83 227.575 \
- 129.28 227.575 129.28 228.474 128.83 229.374 129.28 \
- 229.824 129.28 230.386 128.83 231.735 128.38 234.096 \
- 128.38 234.995 127.931 236.457 127.931 239.268 \
- 127.931 240.167 127.931 241.629 128.83 242.978 \
- 129.28 243.878 129.73 244.44 130.742 244.44 131.191 \
- 244.44 132.091 244.44 133.103 243.878 134.002 \
- 242.978 134.902 242.079 135.351 241.067 135.913 \
- 240.167 136.363 239.268 136.813 238.818 137.263 \
- 237.806 137.712 236.907 138.162 235.445 138.724 \
- 234.546 139.174 233.646 139.624 232.634 140.523 \
- 230.835 140.973 228.924 141.535 227.013 142.435 \
- 225.664 142.884 223.302 143.334 221.391 143.334 \
- 220.941 143.334 219.142 144.346 217.681 144.796 \
- 216.781 145.695 216.332 146.595 216.332 147.607 \
- 215.769 -fill $pengcolor -outline {} -width 1 -tags logo
-
- $c create polygon 165.371 241.067 165.371 \
- 241.067 164.921 243.878 164.921 246.239 163.46 \
- 246.689 161.211 247.251 160.649 247.251 160.199 \
- 244.44 160.199 243.878 160.199 243.428 160.199 \
- 242.079 160.199 240.167 160.199 239.718 159.749 \
- 239.268 160.199 237.806 159.749 237.357 159.749 \
- 236.007 159.749 230.835 159.749 229.824 159.749 \
- 228.924 159.749 226.113 159.749 225.664 159.749 \
- 223.752 159.749 222.853 159.749 218.58 159.749 \
- 218.13 159.749 217.681 160.199 217.231 161.661 \
- 216.781 162.11 216.781 162.56 216.781 163.46 216.781 \
- 164.022 219.142 163.46 222.403 163.46 222.853 163.46 \
- 224.202 163.46 225.664 163.46 226.563 163.46 227.013 \
- 163.46 228.924 163.01 230.835 163.01 232.634 163.46 \
- 233.197 164.022 232.634 164.472 232.634 164.921 \
- 232.185 164.921 231.735 165.371 231.735 165.821 \
- 232.185 165.371 233.646 165.821 236.007 165.371 \
- 238.256 165.371 238.818 165.371 240.617 165.371 \
- 241.067 -fill $pengcolor -outline {} -width 1 -tags logo
-
- $c create polygon 165.821 214.42 166.833 215.32 \
- 166.271 215.32 165.821 216.332 165.371 216.332 \
- 165.371 216.781 165.821 217.681 165.821 218.13 \
- 165.371 219.142 165.371 220.042 164.921 222.853 \
- 165.371 224.764 164.921 225.664 165.371 227.575 \
- 165.371 228.474 164.921 228.474 164.472 227.575 \
- 164.472 226.113 164.022 224.764 164.472 224.202 \
- 164.472 223.752 164.472 222.403 164.921 214.87 \
- 164.472 213.521 164.472 212.959 164.472 212.509 \
- 164.022 212.509 163.46 212.509 163.01 212.959 162.56 \
- 212.959 161.661 212.959 161.211 212.059 161.211 \
- 211.609 160.649 211.609 160.199 209.698 160.649 \
- 208.349 163.46 206.437 164.472 206.437 165.821 \
- 207.899 165.821 208.349 166.833 210.148 166.833 \
- 210.71 165.821 211.609 165.371 212.059 165.371 \
- 212.959 165.821 213.97 165.821 214.42 -fill $pengcolor \
- -outline {} -width 1 -tags logo
-
- $c create polygon 201.462 248.6 201.462 249.05 \
- 201.012 249.05 200.563 249.05 200.001 248.6 199.551 \
- 248.6 198.651 247.7 197.752 247.251 196.74 246.689 \
- 196.29 245.789 194.379 244.89 194.379 244.44 194.379 \
- 242.529 193.929 242.079 193.479 240.617 193.479 \
- 240.167 193.929 239.718 193.479 239.268 193.03 \
- 236.457 192.58 234.096 192.58 233.197 192.58 231.735 \
- 192.58 223.302 192.58 221.391 192.13 220.941 191.568 \
- 221.953 189.769 226.113 189.319 226.563 189.319 \
- 227.013 188.757 228.025 188.307 228.474 188.757 \
- 228.474 185.497 234.096 185.047 234.995 184.597 \
- 236.457 184.147 236.457 184.147 236.907 184.147 \
- 237.357 183.136 239.268 182.686 239.268 182.686 \
- 239.718 182.236 240.167 181.786 241.067 181.337 \
- 242.529 180.887 242.529 180.887 243.878 179.425 \
- 245.789 178.975 246.689 178.076 246.689 178.076 \
- 247.251 177.064 247.7 175.715 247.7 175.265 247.7 \
- 174.703 247.7 174.253 247.251 174.253 246.689 \
- 174.253 245.789 173.804 242.079 174.253 242.079 \
- 173.804 241.629 173.804 241.067 173.804 238.818 \
- 173.804 237.806 173.804 236.457 173.354 234.546 \
- 173.354 233.197 173.804 232.634 173.804 232.185 \
- 173.804 231.735 173.804 228.924 173.354 227.575 \
- 173.804 227.575 173.804 225.664 173.804 225.214 \
- 173.804 224.764 173.804 223.302 173.804 217.231 \
- 174.253 216.332 174.703 215.769 178.526 214.87 \
- 179.425 215.32 179.425 216.332 179.425 217.681 \
- 179.425 218.58 178.975 219.142 178.526 220.492 \
- 178.526 220.941 178.076 221.391 178.076 221.953 \
- 178.076 225.664 177.514 226.563 177.514 228.025 \
- 177.064 228.474 177.064 228.924 177.064 230.835 \
- 177.514 236.457 177.064 237.806 177.514 237.806 \
- 177.514 238.818 177.514 240.617 177.514 241.067 \
- 178.076 241.629 178.526 241.629 179.425 241.067 \
- 179.875 240.617 179.875 240.167 180.325 239.268 \
- 181.337 238.256 182.236 236.457 183.698 234.546 \
- 184.147 233.197 185.497 230.835 186.509 229.824 \
- 187.408 227.575 187.408 227.013 187.408 226.563 \
- 187.858 225.664 188.307 225.214 188.757 224.764 \
- 188.757 224.202 189.319 222.403 190.219 220.941 \
- 191.118 217.681 192.13 215.769 194.379 214.87 \
- 194.941 214.87 196.74 214.42 196.74 215.769 196.29 \
- 215.769 196.29 216.332 196.29 216.781 196.74 219.592 \
- 196.74 220.492 196.29 221.391 196.74 224.764 196.29 \
- 225.664 196.29 226.113 196.29 227.575 196.74 229.374 \
- 197.19 235.445 198.202 239.268 198.202 239.718 \
- 198.202 241.067 198.202 242.529 198.651 242.978 \
- 199.101 243.878 199.101 244.44 199.551 244.89 \
- 200.001 246.239 201.462 248.6 -fill $pengcolor -outline \
- {} -width 1 -tags logo
-
- $c create polygon 71.714 185.412 71.714 110.869 \
- 81.496 110.869 82.845 110.981 83.969 111.431 85.094 \
- 112.106 86.105 113.118 86.893 114.467 87.567 116.041 \
- 88.017 117.39 88.242 118.065 88.467 118.852 88.579 \
- 119.639 88.804 120.538 88.916 121.438 89.029 122.337 \
- 89.141 123.349 89.254 124.361 89.366 125.485 89.366 \
- 126.61 89.478 127.734 89.478 128.971 89.478 130.208 \
- 89.478 131.444 89.478 132.456 89.478 133.468 89.478 \
- 134.48 89.366 135.492 89.254 136.391 89.254 137.291 \
- 89.141 138.19 89.029 139.09 88.916 139.877 88.804 \
- 140.664 88.691 141.451 88.579 142.238 88.354 143.362 \
- 88.129 144.374 87.904 145.386 87.567 146.398 87.342 \
- 147.297 87.005 148.197 86.668 148.984 86.218 149.771 \
- 87.005 151.233 87.342 152.02 87.68 152.919 87.904 \
- 153.931 88.129 154.943 88.129 155.505 88.354 156.854 \
- 88.354 157.641 88.354 158.428 88.467 159.328 88.467 \
- 160.34 88.467 161.352 88.467 162.476 88.579 163.6 \
- 88.579 164.837 88.579 166.186 88.579 166.973 88.691 \
- 167.873 88.804 168.885 88.916 169.897 89.029 171.021 \
- 89.029 172.258 89.029 173.719 89.029 175.068 89.029 \
- 176.305 89.029 177.542 89.141 178.554 89.141 179.566 \
- 89.141 180.353 89.141 181.14 89.254 181.814 89.366 \
- 182.714 89.478 183.051 89.478 185.412 83.857 185.412 \
- 83.857 184.738 83.744 183.951 83.744 183.276 83.744 \
- 182.489 83.744 180.803 83.857 179.791 83.857 178.891 \
- 83.857 177.879 83.857 176.867 83.857 175.743 83.857 \
- 174.619 83.857 173.27 83.857 172.033 83.744 170.908 \
- 83.744 170.009 83.632 169.109 83.632 168.322 83.52 \
- 166.973 83.407 166.524 83.407 166.186 83.407 165.062 \
- 83.407 164.05 83.295 163.151 83.295 162.251 83.295 \
- 161.464 83.182 160.789 82.957 159.553 81.945 158.203 \
- 80.596 157.754 76.886 157.754 76.886 185.412 71.714 \
- 185.412 -fill #000000 -outline {} -width 1 -tags logo
-
- $c create polygon 92.289 148.309 92.289 147.185 \
- 92.289 146.061 92.289 145.049 92.402 143.924 92.402 \
- 142.8 92.402 141.788 92.402 140.664 92.514 139.652 \
- 92.514 138.64 92.627 137.628 92.627 136.616 92.739 \
- 135.717 92.739 134.705 92.851 133.805 92.964 132.793 \
- 92.964 131.894 93.076 130.995 93.301 129.196 93.414 \
- 128.409 93.526 127.509 93.639 126.722 93.751 125.935 \
- 93.863 125.148 93.976 124.361 94.313 122.787 94.426 \
- 122.112 94.65 121.325 94.763 120.651 95.1 119.301 \
- 95.55 117.615 96.112 116.041 96.674 114.692 97.236 \
- 113.455 97.799 112.443 98.361 111.544 99.035 110.757 \
- 99.71 110.082 100.385 109.632 101.059 109.295 \
- 101.846 109.07 102.633 108.958 104.207 109.295 \
- 104.882 109.632 105.556 110.082 106.231 110.757 \
- 106.906 111.544 107.468 112.443 108.03 113.455 \
- 108.592 114.692 109.154 116.041 109.604 117.615 \
- 110.054 119.301 110.279 119.976 110.616 121.325 \
- 110.841 122.112 110.953 122.787 111.178 123.574 \
- 111.403 125.148 111.628 125.935 111.74 126.722 \
- 111.853 127.622 111.965 128.409 112.078 129.308 \
- 112.19 130.208 112.302 130.995 112.415 132.006 \
- 112.64 133.805 112.752 134.817 112.865 135.717 \
- 112.977 136.729 112.977 137.741 113.089 138.752 \
- 113.089 139.764 113.202 140.776 113.202 141.788 \
- 113.314 142.912 113.314 143.924 113.314 145.049 \
- 113.427 146.061 113.427 147.185 113.427 148.309 \
- 113.427 149.546 113.314 150.783 113.314 151.907 \
- 113.314 153.032 113.314 154.156 113.202 155.28 \
- 113.202 156.405 113.089 157.529 113.089 158.541 \
- 112.977 159.553 112.865 160.565 112.752 161.576 \
- 112.64 162.588 112.527 163.6 112.415 164.5 112.302 \
- 165.512 112.19 166.411 112.078 167.311 111.965 \
- 168.21 111.853 169.109 111.628 169.897 111.515 \
- 170.796 111.403 171.583 111.178 172.37 111.066 \
- 173.157 110.616 174.731 110.504 175.518 110.279 \
- 176.193 110.054 176.98 109.604 178.666 109.154 \
- 180.128 108.592 181.59 108.03 182.826 107.468 \
- 183.951 106.906 184.963 106.231 185.75 105.556 \
- 186.424 104.882 186.986 104.207 187.436 103.42 \
- 187.661 102.633 187.661 101.846 187.661 101.059 \
- 187.436 100.385 186.986 99.71 186.424 99.035 185.75 \
- 98.361 184.963 97.799 183.951 97.236 182.826 96.674 \
- 181.59 96.112 180.128 95.55 178.666 95.1 176.98 \
- 94.988 176.193 94.763 175.518 94.538 174.731 94.426 \
- 173.944 94.088 172.37 93.976 171.583 93.863 170.796 \
- 93.639 169.897 93.526 169.109 93.414 168.21 93.301 \
- 167.311 93.189 166.411 93.076 165.512 92.964 164.5 \
- 92.964 163.6 92.851 162.588 92.739 161.576 92.627 \
- 160.565 92.627 159.553 92.514 158.541 92.514 157.529 \
- 92.514 156.405 92.402 155.28 92.402 154.156 92.402 \
- 153.032 92.289 151.907 92.289 150.783 92.289 149.546 \
- 92.289 148.309 -fill #000000 -outline {} -width 1 -tags logo
-
- $c create polygon 121.859 110.869 127.481 \
- 110.869 134.902 185.412 129.28 185.412 127.931 \
- 171.808 120.847 171.808 119.948 185.412 114.326 \
- 185.412 121.859 110.869 -fill #000000 -outline {} \
- -width 1 -tags logo
-
- $c create polygon 137.263 185.412 137.263 \
- 110.869 147.157 110.869 148.394 110.981 149.518 \
- 111.431 150.417 112.106 151.317 113.118 152.104 \
- 114.467 152.778 116.041 153.228 117.39 153.341 \
- 118.065 153.566 118.852 153.903 120.538 154.015 \
- 121.438 154.128 122.337 154.24 123.349 154.353 \
- 124.361 154.465 125.485 154.465 126.61 154.577 \
- 127.734 154.577 128.971 154.577 130.208 154.577 \
- 131.444 154.577 132.456 154.577 133.468 154.577 \
- 134.48 154.577 135.492 154.577 136.391 154.577 \
- 137.291 154.577 138.19 154.465 139.09 154.465 \
- 139.877 154.353 140.664 154.24 141.451 154.128 \
- 142.238 153.903 143.362 153.678 144.374 153.341 \
- 145.386 153.003 146.398 152.554 147.297 152.216 \
- 148.197 151.767 148.984 151.317 149.771 152.104 \
- 151.233 152.441 152.02 152.778 152.919 153.003 \
- 153.931 153.228 154.943 153.341 155.505 153.453 \
- 156.854 153.566 157.641 153.678 158.428 153.79 \
- 159.328 153.903 160.34 154.015 161.352 154.015 \
- 162.476 154.128 163.6 154.128 164.837 154.128 \
- 166.186 154.128 166.973 154.128 167.873 154.128 \
- 168.885 154.128 169.897 154.128 171.021 154.128 \
- 172.258 154.128 173.719 154.24 175.068 154.24 \
- 176.305 154.353 177.542 154.353 178.554 154.465 \
- 179.566 154.577 180.353 154.69 181.14 154.69 181.814 \
- 154.915 182.714 155.027 183.051 155.027 185.412 \
- 149.405 185.412 149.405 184.738 149.293 183.951 \
- 149.293 183.276 149.181 182.489 149.181 180.803 \
- 149.068 179.791 149.068 178.891 149.068 177.879 \
- 149.068 176.867 148.956 175.743 148.956 174.619 \
- 148.956 173.27 148.956 172.033 148.956 170.908 \
- 148.956 170.009 148.956 169.109 148.956 168.322 \
- 148.956 166.973 148.956 166.524 148.956 166.186 \
- 148.956 165.062 148.843 164.05 148.731 163.151 \
- 148.618 162.251 148.506 161.464 148.394 160.789 \
- 148.056 159.553 147.269 158.203 146.145 157.754 \
- 142.435 157.754 142.435 185.412 137.263 185.412 \
- -fill #000000 -outline {} -width 1 -tags logo
-
- $c create polygon 158.4 185.412 158.4 110.869 \
- 164.022 110.869 164.022 185.412 158.4 185.412 -fill \
- #000000 -outline {} -width 1 -tags logo
-
- $c create polygon 168.182 185.412 168.182 \
- 110.869 173.804 110.869 177.514 135.267 177.739 \
- 136.054 177.851 136.954 177.964 137.853 178.076 \
- 138.752 178.301 139.539 178.413 140.439 178.526 \
- 141.338 178.751 143.137 178.975 144.037 179.088 \
- 144.824 179.2 145.723 179.313 146.623 179.425 147.41 \
- 179.538 148.422 179.763 149.321 179.875 150.333 \
- 180.1 151.233 180.212 152.132 180.437 153.032 180.55 \
- 154.043 180.774 154.943 180.887 155.842 180.999 \
- 156.742 181.224 157.754 181.337 158.653 181.337 \
- 157.641 181.224 156.629 181.224 155.617 181.224 \
- 154.606 181.224 153.594 181.112 152.582 181.112 \
- 151.682 181.112 150.67 180.999 149.771 180.999 \
- 148.759 180.999 147.86 180.887 146.96 180.887 \
- 145.948 180.887 145.049 180.887 144.149 180.887 \
- 143.25 180.887 142.125 180.887 141.114 180.887 \
- 140.102 180.887 139.09 180.887 138.078 180.887 \
- 137.178 180.887 136.166 180.887 135.267 180.887 \
- 134.368 180.887 133.468 180.887 132.569 180.887 \
- 131.669 180.887 130.882 180.887 130.095 180.887 \
- 110.869 185.946 110.869 185.946 185.412 180.325 \
- 185.412 176.165 160.565 176.052 159.778 175.94 \
- 158.99 175.827 158.203 175.602 156.517 175.49 \
- 155.617 175.378 154.718 175.265 153.931 175.153 \
- 153.032 175.04 152.02 174.928 151.12 174.703 150.221 \
- 174.591 149.321 174.478 148.422 174.366 147.41 \
- 174.141 146.51 174.028 145.611 173.804 144.599 \
- 173.691 143.587 173.579 142.575 173.354 141.676 \
- 173.241 140.551 173.017 139.539 172.904 138.528 \
- 172.904 139.539 172.904 140.551 173.017 141.563 \
- 173.017 142.575 173.017 143.587 173.129 144.599 \
- 173.129 145.498 173.129 146.51 173.241 147.41 \
- 173.241 148.422 173.241 149.321 173.354 150.221 \
- 173.354 151.233 173.354 152.132 173.354 153.144 \
- 173.354 154.156 173.354 155.055 173.354 156.067 \
- 173.354 156.967 173.354 157.866 173.354 158.766 \
- 173.354 159.553 173.354 160.452 173.354 161.239 \
- 173.354 162.026 173.354 162.926 173.354 185.412 \
- 168.182 185.412 -fill #000000 -outline {} -width 1 -tags logo
-
- $c create polygon 206.184 185.412 205.622 \
- 175.968 205.397 177.092 205.172 178.217 204.948 \
- 179.228 204.61 180.128 204.385 181.027 204.048 \
- 181.814 203.823 182.489 203.486 183.164 203.149 \
- 183.838 202.811 184.4 202.024 185.75 201.125 186.762 \
- 200.113 187.436 199.101 187.661 198.089 187.549 \
- 197.19 186.986 196.29 186.087 195.391 184.85 194.941 \
- 184.176 194.491 183.389 194.042 182.489 193.592 \
- 181.477 193.255 180.465 192.805 179.341 192.467 \
- 178.217 192.13 176.98 191.905 176.193 191.68 175.406 \
- 191.568 174.619 191.456 173.832 191.231 172.932 \
- 191.118 172.145 191.006 171.246 190.781 169.559 \
- 190.669 168.66 190.556 167.648 190.444 166.748 \
- 190.331 165.736 190.219 164.725 190.106 163.825 \
- 189.994 162.926 189.994 162.026 189.882 161.127 \
- 189.769 160.227 189.769 159.215 189.657 158.316 \
- 189.544 157.304 189.544 156.405 189.432 155.393 \
- 189.432 154.381 189.319 153.369 189.319 152.357 \
- 189.319 151.345 189.319 150.333 189.319 149.321 \
- 189.319 148.197 189.319 146.96 189.319 145.948 \
- 189.319 144.824 189.319 143.7 189.319 142.688 \
- 189.432 141.563 189.432 140.551 189.544 139.539 \
- 189.544 138.528 189.544 137.516 189.657 136.504 \
- 189.769 135.492 189.769 134.592 189.882 133.581 \
- 189.994 132.681 189.994 131.782 190.106 130.882 \
- 190.219 129.983 190.331 129.083 190.556 127.397 \
- 190.669 126.61 190.781 125.823 191.006 124.923 \
- 191.118 124.136 191.231 123.462 191.568 121.887 \
- 191.793 121.213 191.905 120.426 192.13 119.751 \
- 192.58 117.952 193.142 116.378 193.704 114.917 \
- 194.266 113.567 194.941 112.443 195.616 111.431 \
- 196.29 110.532 196.965 109.857 197.752 109.295 \
- 198.426 108.845 199.214 108.62 200.001 108.508 \
- 201.799 108.958 202.699 109.407 203.374 110.194 \
- 204.161 111.094 204.835 112.218 205.51 113.567 \
- 206.184 115.141 206.634 116.491 206.859 117.165 \
- 206.971 117.952 207.421 119.526 207.534 120.426 \
- 207.758 121.325 207.871 122.225 207.983 123.124 \
- 208.096 124.136 208.208 125.036 208.321 126.047 \
- 208.433 127.172 208.545 128.184 208.658 129.308 \
- 208.77 130.32 208.77 131.557 208.883 132.681 208.995 \
- 133.805 204.273 133.805 204.161 132.681 203.936 \
- 131.557 203.711 130.432 203.486 129.533 203.261 \
- 128.633 202.924 127.734 202.699 126.947 202.362 \
- 126.385 201.35 124.586 200.001 124.024 199.438 \
- 124.136 198.989 124.361 198.426 124.923 197.977 \
- 125.598 197.527 126.497 197.077 127.622 196.628 \
- 128.971 196.29 130.545 196.178 131.219 195.953 \
- 132.681 195.84 133.356 195.728 134.143 195.616 \
- 134.93 195.503 135.829 195.278 137.516 195.278 \
- 138.303 195.166 139.315 195.166 140.214 195.053 \
- 141.114 195.053 142.125 194.941 143.137 194.941 \
- 144.149 194.941 145.161 194.941 146.173 194.941 \
- 147.297 194.941 148.309 194.941 149.546 194.941 \
- 150.67 194.941 151.907 194.941 152.919 195.053 \
- 154.043 195.053 155.168 195.166 156.18 195.166 \
- 157.192 195.278 158.091 195.391 159.103 195.391 \
- 160.002 195.503 160.902 195.616 161.801 195.728 \
- 162.588 195.84 163.375 196.065 164.162 196.178 \
- 164.949 196.29 165.736 196.628 167.198 197.077 \
- 168.547 197.527 169.672 197.977 170.571 198.426 \
- 171.246 198.989 171.808 199.438 172.145 200.001 \
- 172.258 200.9 171.92 201.575 171.246 202.249 170.009 \
- 202.811 168.547 203.149 167.76 203.374 166.973 \
- 203.598 166.186 203.823 165.399 204.048 164.5 \
- 204.273 163.488 204.385 162.476 204.498 161.464 \
- 204.61 160.34 204.723 159.103 200.001 159.103 \
- 200.001 145.049 209.445 145.049 209.445 185.412 \
- 206.184 185.412 -fill #000000 -outline {} -width 1 -tags logo
-
- $c create polygon 148.506 261.305 148.506 \
- 263.554 143.784 263.554 143.784 261.305 143.671 \
- 260.068 143.334 259.394 142.772 259.056 141.985 \
- 258.944 141.085 259.056 140.523 259.394 140.074 \
- 261.755 140.074 263.104 140.523 264.678 141.085 \
- 265.465 141.985 266.364 146.145 270.637 147.607 \
- 271.874 148.506 272.998 148.843 274.01 148.956 \
- 275.359 148.956 277.158 148.843 278.507 148.506 \
- 279.632 147.944 280.643 147.157 281.43 146.482 \
- 281.88 145.695 282.218 144.796 282.442 143.784 \
- 282.667 142.659 282.78 141.535 282.78 140.298 282.78 \
- 139.286 282.78 138.387 282.667 137.6 282.442 136.925 \
- 282.218 136.363 281.88 135.576 281.093 135.014 \
- 280.194 134.564 278.957 134.452 277.608 134.452 \
- 275.359 139.624 275.359 139.624 277.608 139.736 \
- 279.069 140.074 279.969 141.535 280.419 142.659 \
- 280.081 143.334 279.519 143.671 278.62 143.784 \
- 277.158 143.784 275.809 143.671 275.022 143.334 \
- 274.235 142.772 273.448 141.985 272.548 137.263 \
- 267.376 136.251 266.364 135.351 265.465 135.014 \
- 264.565 134.902 263.554 134.902 261.755 135.014 \
- 260.518 135.464 259.506 136.026 258.719 136.813 \
- 257.932 137.488 257.595 138.275 257.145 139.174 \
- 256.92 140.186 256.695 141.31 256.583 142.435 \
- 256.583 143.447 256.583 144.458 256.583 145.245 \
- 256.695 145.92 256.92 147.157 257.482 147.719 \
- 258.157 148.169 258.944 148.394 260.068 148.506 \
- 261.305 -fill #000000 -outline {} -width 1 -tags logo
-
- $c create polygon 165.821 270.187 165.821 \
- 276.708 165.821 277.833 165.708 278.957 165.483 \
- 279.856 165.259 280.643 164.921 281.318 164.472 \
- 281.88 163.909 282.218 163.235 282.555 162.448 \
- 282.667 161.548 282.78 160.536 282.78 159.3 282.78 \
- 158.175 282.78 157.051 282.78 156.151 282.667 \
- 155.364 282.555 154.69 282.218 154.128 281.88 \
- 153.678 281.318 153.341 280.643 153.116 279.856 \
- 152.891 278.845 152.778 277.833 152.778 276.708 \
- 152.778 270.187 152.778 269.063 152.891 268.051 \
- 153.116 267.264 153.341 266.589 154.128 265.465 \
- 155.364 264.678 156.151 264.453 157.051 264.228 \
- 158.063 264.116 159.3 264.116 160.424 264.116 \
- 161.548 264.228 162.448 264.453 163.235 264.678 \
- 163.909 265.015 164.472 265.465 164.921 265.915 \
- 165.483 267.264 165.708 268.051 165.821 269.063 \
- 165.821 270.187 -fill #000000 -outline {} -width 1 -tags logo
-
- $c create polygon 177.514 256.583 177.514 \
- 258.494 177.064 258.494 176.165 258.606 175.715 \
- 258.944 175.378 259.281 175.265 259.843 175.265 \
- 264.565 177.514 264.565 177.514 266.927 175.265 \
- 266.927 175.265 282.78 170.543 282.78 170.543 \
- 266.927 168.632 266.927 168.632 264.565 170.543 \
- 264.565 170.543 261.305 170.655 259.843 170.993 \
- 258.606 171.442 257.707 171.892 257.032 173.579 \
- 256.358 174.703 256.133 176.165 256.133 176.727 \
- 256.133 177.064 256.133 177.514 256.583 -fill \
- #000000 -outline {} -width 1 -tags logo
-
- $c create polygon 185.946 259.843 185.946 \
- 264.565 188.757 264.565 188.757 266.927 185.946 \
- 266.927 185.946 278.62 186.171 279.407 186.509 \
- 279.969 187.071 280.306 187.858 280.419 188.307 \
- 280.419 188.757 280.419 188.757 282.78 188.645 \
- 282.78 188.307 282.78 187.183 282.78 186.509 282.78 \
- 185.159 282.78 183.923 282.555 182.911 282.33 \
- 182.236 281.88 181.786 281.206 181.561 280.419 \
- 181.337 279.407 181.337 278.17 181.337 266.927 \
- 179.425 266.927 179.425 264.565 181.337 264.565 \
- 181.337 261.305 185.946 259.843 -fill #000000 \
- -outline {} -width 1 -tags logo
-
- $c create polygon 190.219 264.565 194.379 \
- 264.565 196.29 279.519 196.74 279.519 199.101 \
- 264.565 204.723 264.565 207.084 279.519 207.534 \
- 279.519 209.895 264.565 213.605 264.565 209.895 \
- 282.78 204.723 282.78 201.912 267.376 201.462 \
- 267.376 199.101 282.78 193.479 282.78 190.219 \
- 264.565 -fill #000000 -outline {} -width 1 -tags logo
-
- $c create polygon 229.121 269.175 229.121 282.78 \
- 224.848 282.78 224.848 280.981 224.061 281.768 \
- 223.049 282.33 221.925 282.667 220.688 282.78 \
- 219.564 282.78 218.44 282.555 217.54 282.33 216.866 \
- 281.88 216.528 281.318 216.191 280.531 216.079 \
- 279.632 215.966 278.62 215.966 275.359 216.079 \
- 274.347 216.978 272.998 217.877 272.548 218.44 \
- 272.211 219.114 271.986 219.789 271.761 220.688 \
- 271.536 221.588 271.424 222.6 271.311 223.724 \
- 271.199 224.848 271.087 224.848 269.175 224.736 \
- 267.826 224.399 266.927 223.612 266.477 222.487 \
- 266.364 221.7 266.477 221.138 266.927 220.688 \
- 268.726 220.688 269.175 216.416 269.175 216.528 \
- 267.938 216.753 266.702 217.203 265.69 217.877 \
- 265.015 218.44 264.678 219.114 264.453 219.901 \
- 264.228 220.801 264.116 221.925 264.116 223.049 \
- 264.116 224.061 264.116 225.073 264.116 225.86 \
- 264.228 226.535 264.453 227.659 265.015 228.334 \
- 265.69 228.783 266.702 229.008 267.938 229.121 \
- 269.175 -fill #000000 -outline {} -width 1 -tags logo
-
- $c create polygon 243.175 264.565 243.175 \
- 266.927 242.725 266.927 241.601 266.927 240.701 \
- 267.151 239.914 267.489 239.352 267.826 239.015 \
- 268.276 238.678 268.95 238.565 269.737 238.453 \
- 270.637 238.453 282.78 233.731 282.78 233.731 \
- 264.565 238.453 264.565 238.453 265.915 239.352 \
- 265.128 240.364 264.565 242.163 264.116 242.725 \
- 264.565 243.175 264.565 -fill #000000 -outline {} \
- -width 1 -tags logo
-
- $c create polygon 258.129 270.187 258.129 \
- 274.347 249.696 274.347 249.696 278.17 249.809 \
- 279.294 250.146 279.969 250.708 280.643 251.607 \
- 280.981 252.732 280.643 253.406 279.969 253.744 \
- 279.294 253.969 278.17 253.969 276.708 258.129 \
- 276.708 258.129 277.608 258.129 278.957 257.904 \
- 280.081 257.454 281.093 256.779 281.88 256.217 \
- 282.218 254.643 282.667 253.744 282.78 252.732 \
- 282.78 251.607 282.78 250.371 282.78 249.359 282.78 \
- 248.459 282.667 247.672 282.442 246.436 281.88 \
- 245.986 281.318 245.649 280.643 245.424 279.856 \
- 245.199 278.957 245.086 277.833 244.974 276.708 \
- 244.974 270.187 245.086 269.063 245.199 268.051 \
- 245.311 267.264 245.649 266.589 245.986 265.915 \
- 246.436 265.465 246.998 265.015 247.672 264.678 \
- 248.459 264.453 249.359 264.228 250.371 264.116 \
- 251.607 264.116 252.732 264.116 253.744 264.228 \
- 254.756 264.453 255.543 264.678 256.217 265.015 \
- 256.779 265.465 257.229 265.915 257.566 266.589 \
- 257.791 267.264 258.016 268.051 258.129 269.063 \
- 258.129 270.187 -fill #000000 -outline {} -width 1 -tags logo
-
- $c create polygon 272.183 256.583 277.355 \
- 256.583 277.355 282.78 272.183 282.78 272.183 \
- 256.583 -fill #000000 -outline {} -width 1 -tags logo
-
- $c create polygon 295.569 268.726 295.569 282.78 \
- 290.959 282.78 290.959 269.175 290.847 268.051 \
- 290.509 267.376 289.947 266.702 289.048 266.364 \
- 287.923 266.702 287.136 267.376 287.024 268.051 \
- 287.136 269.175 287.136 282.78 282.527 282.78 \
- 282.527 264.565 286.687 264.565 287.136 265.915 \
- 288.036 265.128 289.048 264.565 290.172 264.228 \
- 291.409 264.116 292.533 264.116 293.433 264.341 \
- 294.107 264.565 294.669 265.015 295.344 266.477 \
- 295.569 267.489 295.569 268.726 -fill #000000 \
- -outline {} -width 1 -tags logo
-
- $c create polygon 312.434 269.737 312.434 \
- 270.637 308.274 270.637 308.274 269.175 308.161 \
- 267.826 307.824 266.927 307.262 266.477 306.363 \
- 266.364 305.576 266.477 305.013 266.927 304.676 \
- 267.826 304.564 269.175 304.564 278.17 304.676 \
- 279.294 305.013 279.969 306.363 280.981 307.262 \
- 280.643 307.824 279.969 307.937 279.294 307.824 \
- 278.17 307.824 276.259 312.434 276.259 312.434 \
- 277.608 312.434 278.957 312.209 280.081 311.759 \
- 281.093 311.085 281.88 310.523 282.218 309.173 \
- 282.667 308.386 282.78 307.374 282.78 306.363 282.78 \
- 305.238 282.78 304.226 282.78 303.327 282.667 \
- 302.427 282.442 301.753 282.218 301.191 281.88 \
- 300.853 281.318 300.516 280.643 300.179 279.856 \
- 299.954 278.957 299.841 277.833 299.841 276.708 \
- 299.841 270.187 299.841 269.063 299.954 268.051 \
- 300.179 267.264 300.404 266.589 301.191 265.465 \
- 302.427 264.678 303.327 264.453 304.226 264.228 \
- 305.238 264.116 306.363 264.116 307.374 264.116 \
- 308.386 264.228 309.173 264.453 309.96 264.678 \
- 310.523 265.015 311.085 265.465 311.759 266.252 \
- 312.209 267.264 312.434 268.388 312.434 269.737 \
- -fill #000000 -outline {} -width 1 -tags logo
-
- $c create polygon 316.706 279.069 320.866 \
- 279.069 320.866 282.78 316.706 282.78 316.706 \
- 279.069 -fill #000000 -outline {} -width 1 -tags logo
-
- $c create polygon 48.215 186.312 48.215 185.412 \
- 47.766 184.4 47.766 183.501 47.316 183.501 47.316 \
- 182.601 46.416 181.59 46.416 181.14 45.967 180.24 \
- 45.405 179.791 44.955 179.228 44.055 178.329 43.606 \
- 177.879 43.156 177.43 42.144 176.98 41.694 176.418 \
- 41.245 175.968 38.883 175.068 36.972 174.169 36.522 \
- 174.169 35.173 173.607 34.723 174.169 31.913 173.607 \
- 31.913 174.169 29.551 173.607 29.551 174.169 28.54 \
- 174.169 28.09 174.619 27.19 174.169 27.19 174.619 \
- 26.741 174.619 25.729 175.068 23.93 175.518 22.918 \
- 175.068 22.468 175.518 20.669 176.418 19.657 176.418 \
- 15.048 178.779 14.036 179.228 12.686 180.24 12.237 \
- 180.69 11.225 181.59 10.775 182.039 10.325 182.601 \
- 10.775 182.601 10.325 184.4 10.775 184.85 11.225 \
- 186.312 14.036 188.223 14.485 188.673 16.846 190.022 \
- 17.296 190.472 17.296 191.034 15.947 191.933 15.048 \
- 192.383 14.485 192.833 14.036 193.283 13.136 193.845 \
- 12.237 194.295 12.686 195.644 12.686 196.094 12.237 \
- 197.555 12.237 198.005 11.675 198.904 12.237 200.816 \
- 12.237 202.277 12.237 204.526 11.675 205.988 12.237 \
- 205.988 12.237 206.437 12.237 207.337 12.686 208.349 \
- 12.686 209.248 13.136 209.698 12.686 211.16 13.136 \
- 212.509 13.136 213.521 13.586 215.32 13.586 216.781 \
- 13.586 217.681 14.036 220.492 14.485 222.403 15.048 \
- 222.853 15.947 222.853 15.947 222.403 16.397 221.953 \
- 16.846 216.781 17.296 215.32 17.858 211.609 18.308 \
- 210.71 18.308 210.148 18.308 209.248 17.858 208.798 \
- 17.858 207.899 18.308 206.437 18.308 205.538 18.308 \
- 205.088 18.308 203.627 16.846 203.627 15.947 203.177 \
- 15.947 202.727 15.947 202.277 16.397 201.715 16.846 \
- 201.715 17.858 201.715 18.308 201.715 18.758 201.265 \
- 18.308 200.816 17.858 199.916 18.308 198.455 17.858 \
- 198.455 17.858 193.283 19.208 192.383 20.107 191.933 \
- 21.569 191.484 22.018 191.484 22.918 192.383 22.918 \
- 192.833 23.48 192.833 23.93 198.005 23.48 199.467 \
- 23.93 202.277 25.279 202.277 29.551 202.727 30.001 \
- 202.277 30.901 202.277 31.913 202.277 35.623 201.265 \
- 36.522 201.265 36.972 200.816 37.984 200.816 38.883 \
- 200.816 39.333 200.366 40.345 199.916 40.795 199.916 \
- 42.594 198.455 44.055 198.005 44.055 197.555 44.505 \
- 197.105 46.416 195.644 46.416 194.744 46.866 194.295 \
- 47.316 193.845 47.766 193.283 47.316 192.833 48.215 \
- 190.472 48.215 190.022 48.215 189.572 48.215 188.673 \
- 48.215 187.211 48.215 186.762 48.215 186.312 -fill \
- $bg -outline {} -width 1 -tags logo
-
- $c create polygon 76.886 142.688 81.046 142.688 \
- 82.508 142.35 83.407 140.889 83.632 140.327 83.969 \
- 138.865 84.082 137.965 84.194 137.066 84.307 136.054 \
- 84.307 134.93 84.307 133.805 84.307 132.456 84.194 \
- 131.332 84.082 130.208 83.857 129.308 83.632 128.409 \
- 83.407 127.734 82.395 126.272 81.046 125.823 76.886 \
- 125.823 76.886 142.688 -fill $bg -outline {} -width \
- 1 -tags logo
-
- $c create polygon 97.461 148.309 97.461 149.546 \
- 97.461 150.783 97.461 152.02 97.574 153.144 97.574 \
- 154.268 97.686 155.28 97.686 156.405 97.799 157.416 \
- 97.799 158.316 97.911 159.328 98.023 160.227 98.136 \
- 161.127 98.361 162.701 98.473 163.488 98.586 164.275 \
- 98.698 164.949 98.81 165.736 99.373 167.535 99.822 \
- 169.109 100.497 170.234 101.059 171.133 101.846 \
- 171.583 102.633 171.808 104.095 171.133 104.769 \
- 170.234 105.332 169.109 105.894 167.535 106.343 \
- 165.736 106.456 164.949 106.681 164.275 106.793 \
- 163.488 106.906 162.701 107.018 161.914 107.243 \
- 160.227 107.355 159.328 107.355 158.316 107.468 \
- 157.416 107.58 156.405 107.58 155.28 107.693 154.268 \
- 107.693 153.144 107.693 152.02 107.693 150.783 \
- 107.805 149.546 107.805 148.309 107.805 147.073 \
- 107.693 145.836 107.693 144.711 107.693 143.587 \
- 107.693 142.463 107.58 141.338 107.58 140.327 \
- 107.468 139.315 107.355 138.303 107.355 137.403 \
- 107.243 136.504 107.131 135.604 106.906 133.918 \
- 106.793 133.131 106.681 132.456 106.456 131.669 \
- 106.343 130.995 105.894 129.196 105.332 127.622 \
- 104.769 126.497 104.095 125.598 103.42 125.148 \
- 102.633 124.923 101.846 125.148 101.059 125.598 \
- 100.497 126.497 99.822 127.622 99.373 129.196 98.81 \
- 130.995 98.698 131.669 98.586 132.456 98.473 133.131 \
- 98.361 133.918 98.248 134.817 98.023 136.504 97.911 \
- 137.403 97.799 138.303 97.799 139.315 97.686 140.327 \
- 97.686 141.338 97.574 142.463 97.574 143.587 97.461 \
- 144.711 97.461 145.836 97.461 147.073 97.461 148.309 \
- -fill $bg -outline {} -width 1 -tags logo
-
- $c create polygon 122.309 156.292 126.919 \
- 156.292 124.67 130.545 122.309 156.292 -fill $bg \
- -outline {} -width 1 -tags logo
-
- $c create polygon 142.435 142.688 146.145 \
- 142.688 147.607 142.35 148.506 140.889 148.731 \
- 140.327 149.068 138.865 149.181 137.965 149.293 \
- 137.066 149.405 136.054 149.405 134.93 149.405 \
- 133.805 149.405 132.456 149.405 131.332 149.405 \
- 130.208 149.293 129.308 149.181 128.409 148.956 \
- 127.734 148.056 126.272 146.595 125.823 142.435 \
- 125.823 142.435 142.688 -fill $bg -outline {} -width \
- 1 -tags logo
-
- $c create polygon 111.515 228.924 111.515 \
- 227.575 111.066 225.664 108.705 221.391 108.255 \
- 220.042 108.255 219.142 108.255 218.58 108.255 \
- 218.13 107.805 217.681 106.793 218.58 104.994 \
- 220.941 104.432 221.953 102.633 224.202 102.183 \
- 224.764 101.621 225.214 99.822 228.474 97.461 \
- 233.197 97.461 234.096 97.461 234.995 97.911 235.445 \
- 98.361 236.007 99.822 236.457 102.633 236.457 \
- 104.432 235.445 105.894 234.995 106.343 234.546 \
- 106.793 234.546 107.805 233.646 110.616 230.835 \
- 111.515 229.824 111.515 229.374 111.515 228.924 \
- -fill $bg -outline {} -width 1 -tags logo
-
- $c create polygon 161.211 269.175 160.986 \
- 267.826 160.649 266.927 160.199 266.477 159.3 \
- 266.364 158.4 266.477 157.838 266.927 157.613 \
- 267.826 157.388 269.175 157.388 278.17 157.613 \
- 279.294 157.838 279.969 159.3 280.981 160.199 \
- 280.643 160.649 279.969 160.986 279.294 161.211 \
- 278.17 161.211 269.175 -fill $bg -outline {} -width \
- 1 -tags logo
-
- $c create polygon 224.848 273.448 223.836 \
- 273.448 222.825 273.56 222.15 273.673 221.588 \
- 273.897 220.913 274.684 220.688 275.809 220.688 \
- 278.17 220.801 279.294 221.138 279.969 221.7 280.643 \
- 222.487 280.981 223.612 280.643 224.399 279.969 \
- 224.736 279.294 224.848 278.17 224.848 273.448 -fill \
- $bg -outline {} -width 1 -tags logo
-
- $c create polygon 253.969 269.175 253.744 \
- 267.826 253.406 266.927 252.732 266.477 251.607 \
- 266.364 250.708 266.477 250.146 266.927 249.696 \
- 269.175 249.696 272.548 253.969 272.548 253.969 \
- 269.175 -fill $bg -outline {} -width 1 -tags logo
-
-}
-
-#***********************************************************************
-# %PROCEDURE: LoadConnectionInfo
-# %ARGUMENTS:
-# None
-# %RETURNS:
-# Nothing
-# %DESCRIPTION:
-# Loads the connection information into the global ConnectionInfo variable
-#***********************************************************************
-proc LoadConnectionInfo {} {
- global ConnectionInfoFile ConnectionInfo PasswordFile
- set ConnectionInfo {}
- if {![file exists $ConnectionInfoFile]} {
- return
- }
- set problem [catch {
- set fp [open $ConnectionInfoFile "r"]
- while {1} {
- if {[gets $fp line] < 0} {
- break
- }
- set line [string trim $line]
- if {[string match "#*" $line]} {
- continue
- }
- if {"$line" == ""} {
- continue
- }
- set ConnectionInfo $line
- break
- }
- close $fp
- } err]
- if {$problem} {
- tk_dialog .err Error "Error loading configuration file: $err" error 0 OK
- }
- # Try loading and merging passwords if the password file is readable
- if {![file readable $PasswordFile]} {
- return
- }
-
- set fp [open $PasswordFile "r"]
- while {1} {
- if {[gets $fp line] < 0} {
- break
- }
- set line [string trim $line]
- if {[string match "#*" $line]} {
- continue
- }
- if {"$line" == ""} {
- continue
- }
- set passwords $line
- break
- }
- close $fp
-
- # Merge passwords
- foreach thing $passwords {
- set name [value $thing ConnectionName]
- set password [value $thing Password]
- set conn [GetConnection $name]
- if {"$conn" != ""} {
- lappend conn Password $password
- ReplaceConnection $conn
- }
- }
-}
-
-#***********************************************************************
-# %PROCEDURE: GetConnection
-# %ARGUMENTS:
-# name -- name of connection
-# %RETURNS:
-# key/value pair listing connection configuration, or "" if not found.
-#***********************************************************************
-proc GetConnection { name } {
- global ConnectionInfo
- foreach thing $ConnectionInfo {
- if {[value $thing ConnectionName] == "$name"} {
- return $thing
- }
- }
- return ""
-}
-
-
-#***********************************************************************
-# %PROCEDURE: DeleteConnection
-# %ARGUMENTS:
-# name -- name of connection
-# %RETURNS:
-# Nothing, but deletes connection named "$name"
-#***********************************************************************
-proc DeleteConnection { name } {
- global ConnectionInfo ConfigDir
- set newInfo {}
- set found 0
- foreach thing $ConnectionInfo {
- if {[value $thing ConnectionName] == "$name"} {
- set found 1
- } else {
- lappend newInfo $thing
- }
- }
- if {!$found} {
- return
- }
- set ConnectionInfo $newInfo
- SaveConnectionInfo
-
- # Delete the config file
- set fname [file join $ConfigDir conf.$name]
- catch { file delete $fname }
-
- BuildConnectionMenu
- if {[GetCurrentConnection] == $name} {
- if {[llength $ConnectionInfo] == 0} {
- SwitchConnection ""
- } else {
- set name [value [lindex $ConnectionInfo 0] ConnectionName]
- SwitchConnection $name
- }
- }
-}
-
-#***********************************************************************
-# %PROCEDURE: ReplaceConnection
-# %ARGUMENTS:
-# conn -- new name/value pairs
-# %RETURNS:
-# Nothing, but replaces connection in ConnectionInfo. If no such
-# connection exists, appends new connection.
-#***********************************************************************
-proc ReplaceConnection { conn } {
- global ConnectionInfo
- set name [value $conn ConnectionName]
- set newInfo {}
- set found 0
- foreach thing $ConnectionInfo {
- if {[value $thing ConnectionName] == "$name"} {
- lappend newInfo $conn
- set found 1
- } else {
- lappend newInfo $thing
- }
- }
- if {!$found} {
- lappend newInfo $conn
- }
- set ConnectionInfo $newInfo
-}
-
-proc DeletePPPoEConnection {} {
- set conn [GetCurrentConnection]
- if {"$conn" == ""} {
- return
- }
- set ans [tk_dialog .confirm "Confirm Deletion - RP-PPPoE" "Are you sure you wish to delete the connection `$conn'?" warning 0 No Yes]
- if {$ans} {
- DeleteConnection $conn
- }
-}
-
-#***********************************************************************
-# %PROCEDURE: CreateMainDialog
-# %ARGUMENTS:
-# None
-# %RETURNS:
-# Nothing
-# %DESCRIPTION:
-# Creates the main window
-#***********************************************************************
-proc CreateMainDialog {} {
- global ConnectionInfoFile
- global ConnectionInfo
- global Admin
- wm title . "RP-PPPoE"
- wm iconname . "PPPoE"
- frame .f1
- label .l1 -text "Connection: "
- menubutton .m1 -text "" -indicatoron 1 -menu .m1.menu -relief raised
- menu .m1.menu -tearoff 0
- pack .l1 .m1 -in .f1 -side left -expand 0 -fill x
- canvas .c -width 40 -height 20
- pack .c -in .f1 -side left -expand 0 -fill none
-
- # Draw the LED's
- .c create rectangle 10 1 30 8 -outline "#808080" -fill "#A0A0A0" -tags xmitrect
- .c create rectangle 10 10 30 18 -outline "#808080" -fill "#A0A0A0" -tags recvrect
-
- frame .buttons
- button .start -text "Start" -command "StartPPPoEConnection"
- button .stop -text "Stop" -command "StopPPPoEConnection"
- button .exit -text "Exit" -command "exit"
- canvas .graph -width 1 -height 1
- if {[file writable $ConnectionInfoFile]} {
- set Admin 1
- pack .f1 -side top -expand 1 -fill both
- pack .buttons -side top -expand 0 -fill x
- button .delete -text "Delete" -command "DeletePPPoEConnection"
- button .new -text "New Connection..." -command "NewPPPoEConnection"
- button .props -text "Properties..." -command "EditConnectionProps"
- pack .graph -in .f1 -side left -expand 1 -fill both
- pack .start .stop .delete .props .new .exit -in .buttons -side left -expand 0 -fill none
- } else {
- set Admin 0
- pack .f1 -side top -expand 0 -fill x
- pack .buttons -side top -expand 1 -fill both
- pack .start .stop .exit -in .buttons -side left -expand 0 -fill none
- pack .graph -in .buttons -side left -expand 1 -fill both
- }
-
- LoadConnectionInfo
- BuildConnectionMenu
- # If no connections exist, pop up new connection dialog
- if {[llength $ConnectionInfo] == 0} {
- SwitchConnection ""
- if {$Admin} {
- update idletasks
- NewPPPoEConnection
- } else {
- tk_dialog .note Note "Note: There are no connections defined. You must run this program as root to define connections" warning 0 OK
- }
- } else {
- set con [lindex $ConnectionInfo 0]
- set name [value $con ConnectionName]
- SwitchConnection $name
- }
-}
-
-#***********************************************************************
-# %PROCEDURE: GetCurrentConnection
-# %ARGUMENTS:
-# None
-# %RETURNS:
-# The name of the current connection in the GUI.
-#***********************************************************************
-proc GetCurrentConnection {} {
- .m1 cget -text
-}
-
-#***********************************************************************
-# %PROCEDURE: value
-# %ARGUMENTS:
-# lst -- a list of key/value pairs
-# key -- key we're looking for
-# %RETURNS:
-# value corresponding to $key, or "" if not found.
-#***********************************************************************
-proc value { lst key } {
- set idx [lsearch -exact $lst $key]
- if {$idx >= 0} {
- return [lindex $lst [expr $idx+1]]
- }
- return ""
-}
-
-#***********************************************************************
-# %PROCEDURE: SwitchConnection
-# %ARGUMENTS:
-# name -- new connection name
-# %DESCRIPTION:
-# Makes $name the active connection
-#***********************************************************************
-proc SwitchConnection { name } {
- .m1 configure -text $name
- SetButtonStates
- UpdateConnectionState 0
-}
-
-#***********************************************************************
-# %PROCEDURE: EditConnectionProps
-# %ARGUMENTS:
-# None
-# %DESCRIPTION:
-# Pops up edit window for current connection
-#***********************************************************************
-proc EditConnectionProps {} {
- global ConnectionInfo
- set conn [GetCurrentConnection]
- NewPPPoEConnection $conn
-}
-
-#***********************************************************************
-# %PROCEDURE: FillConnectionGui
-# %ARGUMENTS:
-# w -- connection property GUI
-# name -- name of connection
-# %DESCRIPTION:
-# Fills GUI with values corresponding to $name.
-#***********************************************************************
-proc FillConnectionGui { w name } {
- global ConnectionInfo
- set found [GetConnection $name]
- if {"$found" != ""} {
- ListToSetupGui $w $found
- }
-}
-
-#***********************************************************************
-# %PROCEDURE: BuildConnectionMenu
-# %ARGUMENTS:
-# None
-# %RETURNS:
-# Nothing
-# %DESCRIPTION:
-# Builds the connection menu
-#***********************************************************************
-proc BuildConnectionMenu {} {
- global ConnectionInfo
- .m1.menu delete 0 end
- foreach connection $ConnectionInfo {
- set name [value $connection ConnectionName]
- .m1.menu add command -label $name -command [list SwitchConnection $name]
- }
- .m1.menu add separator
- .m1.menu add command -label "User's Manual" -command Help
-}
-
-#***********************************************************************
-# %PROCEDURE: SetButtonStates
-# %ARGUMENTS:
-# None
-# %RETURNS:
-# Nothing
-# %DESCRIPTION:
-# Enables or disables buttons, as appropriate
-#***********************************************************************
-proc SetButtonStates {} {
- global Admin
- set conn [GetCurrentConnection]
- if {"$conn" == ""} {
- .start configure -state disabled
- .stop configure -state disabled
- catch {
- .delete configure -state disabled
- .props configure -state disabled
- .new configure -state normal
- }
- } else {
- foreach {startstop updown interface} [GetConnectionStatus $conn] {break}
- if {"$startstop" == "started"} {
- .start configure -state disabled
- .stop configure -state normal
- } else {
- .start configure -state normal
- .stop configure -state disabled
- }
- catch {
- .delete configure -state normal
- .props configure -state normal
- .new configure -state normal
- }
- if {!$Admin} {
- set ok [value [GetConnection $conn] NonrootOK]
- if {!$ok} {
- .start configure -state disabled
- .stop configure -state disabled
- }
- }
- }
-}
-
-#***********************************************************************
-# %PROCEDURE: GetEthernetInterfaces
-# %ARGUMENTS:
-# None
-# %RETURNS:
-# A list of Ethernet interfaces
-#***********************************************************************
-proc GetEthernetInterfaces {} {
- set ifs {}
- set fp [open "|/sbin/ifconfig" "r"]
- while {[gets $fp line] >= 0} {
- if {[regexp {^eth[0-9]+} $line eth]} {
- lappend ifs $eth
- }
- }
- return $ifs
-}
-
-#***********************************************************************
-# %PROCEDURE: StartPPPoEConnection
-# %ARGUMENTS:
-# None
-# %RETURNS:
-# Nothing
-# %DESCRIPTION:
-# Starts currently-selected PPPoE connection.
-#***********************************************************************
-proc StartPPPoEConnection {} {
- global Wrapper
- global StartState
- global UpdateToken
-
- set conn [GetCurrentConnection]
- if {"$conn" == ""} {
- return
- }
-
- if {"$UpdateToken" != ""} {
- after cancel $UpdateToken
- set UpdateToken ""
- }
-
- catch { unset StartState }
- set StartState(chars) ""
- set StartState(status) ""
- set StartState(msg) ""
- set StartState(flip) 0
-
- set fp [open "|$Wrapper start $conn" "r"]
-
- # Set fileevent
- fileevent $fp readable [list StartFPReadable $fp]
-
- LockGui $fp
- vwait StartState(status)
- UnlockGui
-
- if {$StartState(status) == "failed"} {
- tk_dialog .err Error "Error starting connection: $StartState(msg)" error 0 OK
- }
- SetButtonStates
- UpdateConnectionState 0
-}
-
-proc LockGui { fp } {
- .start configure -state disabled
- .stop configure -state normal -command [list AbortConnection $fp]
- .exit configure -state disabled
- .m1 configure -state disabled
- grab set .stop
-}
-
-proc UnlockGui {} {
- .start configure -state normal
- .stop configure -state disabled -command StopPPPoEConnection
- .exit configure -state normal
- .m1 configure -state normal
- grab release .stop
-}
-
-proc AbortConnection { fp } {
- global StartState
- catch { StopPPPoEConnection }
- catch { close $fp }
- set StartState(msg) "Connection aborted by user"
- set StartState(status) "failed"
-}
-
-#***********************************************************************
-# %PROCEDURE: StartFPReadable
-# %ARGUMENTS:
-# fp -- file handle
-# %RETURNS:
-# Nothing
-# %DESCRIPTION:
-# Called when the "adsl-start" file handle is readable.
-#***********************************************************************
-proc StartFPReadable { fp } {
- global StartState
- set char [read $fp 1]
- if {$char == ""} {
- set uhoh [catch {close $fp} err]
- if {$uhoh} {
- set StartState(status) "failed"
- set StartState(msg) $err
- } else {
- set StartState(status) "succeeded"
- }
- return
- }
- append StartState(chars) $char
- if {$StartState(flip)} {
- ConnectionStateDown
- } else {
- ConnectionStateOff
- }
- set StartState(flip) [expr 1 - $StartState(flip)]
-}
-
-#***********************************************************************
-# %PROCEDURE: StopPPPoEConnection
-# %ARGUMENTS:
-# None
-# %RETURNS:
-# Nothing
-# %DESCRIPTION:
-# Stops currently-selected PPPoE connection.
-#***********************************************************************
-proc StopPPPoEConnection {} {
- global Wrapper
- set conn [GetCurrentConnection]
- if {"$conn" == ""} {
- return
- }
- set fp [open "|$Wrapper stop $conn" "r"]
- while {1} {
- set char [read $fp 1]
- if {"$char" == ""} {
- break;
- }
- }
- set uhoh [catch {close $fp} err]
- if {$uhoh} {
- # Ignore a common error
- if {![string match "*appears to have died*" $err]} {
- tk_dialog .err Error "Error stopping connection: $err" error 0 OK
- }
- }
- SetButtonStates
- UpdateConnectionState 0
-}
-
-#***********************************************************************
-# %PROCEDURE: NewPPPoEConnection
-# %ARGUMENTS:
-# name -- if supplied, we're editing the existing connection "name"
-# %RETURNS:
-# Nothing
-# %DESCRIPTION:
-# Creates a new PPPoE connection
-#***********************************************************************
-proc NewPPPoEConnection {{name ""}} {
- set w .newcon
- if {[winfo exists $w]} {
- wm deiconify $w
- raise $w
- return
- }
-
- toplevel $w
- if {"$name" == ""} {
- wm title $w "New Connection - RP-PPPoE"
- wm iconname $w "New Connection"
- } else {
- wm title $w "Edit Connection - RP-PPPoE"
- wm iconname $w "Edit Connection"
- }
- wm withdraw $w
-
- tabnotebook_create $w.tn
- set basic [tabnotebook_page $w.tn "Basic"]
- set interface [tabnotebook_page $w.tn "NIC and DNS"]
- set opts [tabnotebook_page $w.tn "Options"]
- set advanced [tabnotebook_page $w.tn "Advanced"]
-
- # ----------- BASIC PAGE -------------
- label $w.lconName -text "Connection Name: " -anchor e
- if {"$name" != ""} {
- label $w.conName -text $name -anchor w
- } else {
- entry $w.conName -width 15
- RegisterHelpWindow $w.lconName "Enter a name for this connection. It can contain letters, numbers, undescores and the minus-sign." $w.help
- RegisterHelpWindow $w.conName "Enter a name for this connection. It can contain letters, numbers, undescores and the minus-sign." $w.help
- }
-
- label $w.luser -text "User Name: " -anchor e
- entry $w.user -width 15
- RegisterHelpWindow $w.luser "Enter your user name. Do not add a domain-name after the user name." $w.help
- RegisterHelpWindow $w.user "Enter your user name. Do not add a domain-name after the user name." $w.help
-
- label $w.lnet -text "Network: " -anchor e
- entry $w.network -width 15
- RegisterHelpWindow $w.lnet "Some ISP's require you to enter their domain-name here (e.g. \"sympatico.ca\")." $w.help
- RegisterHelpWindow $w.network "Some ISP's require you to enter their domain-name here (e.g. \"sympatico.ca\")." $w.help
-
- label $w.lpass -text "Password: " -anchor e
- entry $w.pass -width 15 -show "*"
- RegisterHelpWindow $w.lpass "Enter your password." $w.help
- RegisterHelpWindow $w.pass "Enter your password." $w.help
-
- grid $w.lconName $w.conName -in $basic -sticky nsew
- grid $w.luser $w.user -in $basic -sticky nsew
- grid $w.lnet $w.network -in $basic -sticky nsew
- grid $w.lpass $w.pass -in $basic -sticky nsew
- grid columnconfigure $basic 1 -weight 1
-
- # ----------- INTERFACES PAGE -------------
- set ifs {}
- catch {set ifs [GetEthernetInterfaces]}
-
- label $w.lifname -text "Ethernet Interface: " -anchor e
- entry $w.ifname -width 8
- RegisterHelpWindow $w.lifname "Enter Ethernet interface to which DSL modem is attached." $w.help
- RegisterHelpWindow $w.ifname "Enter Ethernet interface to which DSL modem is attached." $w.help
-
- if {[llength $ifs] > 0} {
- menubutton $w.ifmb -relief raised -text "..." -menu $w.ifmb.menu
- RegisterHelpWindow $w.ifmb "Browse detected Ethernet interface names." $w.help
- menu $w.ifmb.menu -tearoff 0
- foreach if $ifs {
- $w.ifmb.menu add command -label $if -command "$w.ifname delete 0 end; $w.ifname insert end [list $if]"
- }
- grid $w.lifname $w.ifname $w.ifmb -in $interface -sticky nsew
- } else {
- grid $w.lifname $w.ifname - -in $interface -sticky nsew
- }
-
- label $w.ldns -text "DNS Setup: " -anchor e
- menubutton $w.dns -text "From Server" -menu $w.dns.menu -relief raised -indicatoron 1
- menu $w.dns.menu -tearoff 0
- foreach thing {"From Server" "Specify" "Do not Adjust"} {
- $w.dns.menu add command -label $thing -command [list SetDNSOption $w $thing]
- }
- RegisterHelpWindow $w.ldns "DNS server options:\n'From Server' - Let PPPoE server specify DNS servers\n'Specify' - Enter IP addresses of DNS servers yourself\n'Do not Adjust' - Leave your DNS setup alone." $w.help
- RegisterHelpWindow $w.dns "DNS server options:\n'From Server' - Let PPPoE server specify DNS servers\n'Specify' - Enter IP addresses of DNS servers yourself\n'Do not Adjust' - Leave your DNS setup alone." $w.help
-
- label $w.ldns1 -text "Primary DNS: " -anchor e
- entry $w.dns1 -width 16
- RegisterHelpWindow $w.ldns1 "Enter the IP address of the primary DNS server." $w.help
- RegisterHelpWindow $w.dns1 "Enter the IP address of the primary DNS server." $w.help
- label $w.ldns2 -text "Secondary DNS: " -anchor e
- entry $w.dns2 -width 16
- RegisterHelpWindow $w.ldns2 "Enter the IP address of the secondary DNS server." $w.help
- RegisterHelpWindow $w.dns2 "Enter the IP address of the secondary DNS server." $w.help
-
- SetDNSOption $w "From Server"
- grid $w.ldns $w.dns - -in $interface -sticky nsew
- grid $w.ldns1 $w.dns1 - -in $interface -sticky nsew
- grid $w.ldns2 $w.dns2 - -in $interface -sticky nsew
-
- # If only one Ethernet interface, select it by default
- if {[llength $ifs] == 1} {
- $w.ifname insert end [lindex $ifs 0]
- }
-
- grid columnconfigure $interface 1 -weight 1
- # ----------- OPTS PAGE -------------
- checkbutton $w.nonroot -text "Allow use by non-root users" -variable OPTS(nonroot) -anchor w
- RegisterHelpWindow $w.nonroot "If enabled, ordinary users can start and stop this connection." $w.help
- checkbutton $w.sync -text "Use synchronous PPP" -variable OPTS(sync) -anchor w
- RegisterHelpWindow $w.sync "Use synchronous PPP (recommended -- easier on the CPU.)" $w.help
- label $w.lfw -text "Firewalling: " -anchor e
- if {[llength $ifs] == 1} {
- set defaultFW "Stand-Alone"
- } else {
- set defaultFW "Masquerading"
- }
- menubutton $w.fw -text $defaultFW -menu $w.fw.menu -indicatoron 1 -relief raised
- menu $w.fw.menu -tearoff 0
- foreach type {Stand-Alone Masquerading None} {
- $w.fw.menu add command -label $type -command [list $w.fw configure -text $type]
- }
-
- RegisterHelpWindow $w.lfw "Firewalling options:\nStand-Alone - A stand-alone machine.\nMasquerading - A gateway machine used for Internet sharing.\nNone - Use if you already have your own firewall rules or want to run servers." $w.help
- RegisterHelpWindow $w.fw "Firewalling options:\nStand-Alone - A stand-alone machine.\nMasquerading - A gateway machine used for Internet sharing.\nNone - Use if you already have your own firewall rules or want to run servers." $w.help
- grid $w.nonroot - -in $opts -sticky nsew
- grid $w.sync - -in $opts -sticky nsew
- grid $w.lfw $w.fw -in $opts -sticky nsw
- grid columnconfigure $opts 1 -weight 1
-
- # ----------- ADVANCED PAGE -------------
- label $w.lsn -text "Service-Name: " -anchor e
- entry $w.servicename -width 24
-
- label $w.lac -text "AC-Name: " -anchor e
- entry $w.acname -width 24
-
- RegisterHelpWindow $w.lac "Enter access concentrator name if required. Most ISPs do not require this; try leaving it blank." $w.help
- RegisterHelpWindow $w.acname "Enter access concentrator name if required. Most ISPs do not require this; try leaving it blank." $w.help
- grid $w.lsn $w.servicename -in $advanced -sticky nsew
- grid $w.lac $w.acname -in $advanced -sticky nsew
- RegisterHelpWindow $w.lsn "Enter service name if required. Most ISPs do not require this; try leaving it blank." $w.help
- RegisterHelpWindow $w.servicename "Enter service name if required. Most ISPs do not require this; try leaving it blank." $w.help
-
- grid columnconfigure $advanced 1 -weight 1
-
- # ----------- BUTTONS -------------
- frame $w.buttons
- button $w.ok -text "OK" -command [list NewPPPoEConnectionOK $name $w]
- button $w.cancel -text "Cancel" -command [list destroy $w]
- pack $w.ok $w.cancel -in $w.buttons -expand 0 -fill none -side left
-
- pack $w.tn -side top -expand 1 -fill both
-
- text $w.help -width 60 -wrap word -state disabled -height 6
- pack $w.help -side top -expand 0 -fill both
- pack $w.buttons -side top -expand 0 -fill x
-
- # If we're editing existing connection, fill GUI with current values
- if {"$name" != ""} {
- FillConnectionGui $w $name
- }
- wm deiconify $w
- update idletasks
- raise $w
-}
-
-#***********************************************************************
-# %PROCEDURE: SetDNSOption
-# %ARGUMENTS:
-# w -- connection-editing window
-# opt -- value of DNS option
-# %RETURNS:
-# Nothing
-# %DESCRIPTION:
-# Adjusts GUI for specified option
-#***********************************************************************
-proc SetDNSOption { w opt } {
- $w.dns configure -text $opt
- if {"$opt" == "Specify"} {
- $w.dns1 configure -state normal -background white
- $w.dns2 configure -state normal -background white
- } else {
- $w.dns1 configure -state disabled -background "#d9d9d9"
- $w.dns2 configure -state disabled -background "#d9d9d9"
- }
-}
-
-# ----------------------------------------------------------------------
-# Tabbed notebook code from "Effective Tcl/Tk Programming"
-# ----------------------------------------------------------------------
-# EXAMPLE: tabnotebook that can dial up pages
-# ----------------------------------------------------------------------
-# Effective Tcl/Tk Programming
-# Mark Harrison, DSC Communications Corp.
-# Michael McLennan, Bell Labs Innovations for Lucent Technologies
-# Addison-Wesley Professional Computing Series
-# ======================================================================
-# Copyright (c) 1996-1997 Lucent Technologies Inc. and Mark Harrison
-# ======================================================================
-
-option add *Tabnotebook.tabs.background #666666 widgetDefault
-option add *Tabnotebook.margin 6 widgetDefault
-option add *Tabnotebook.tabColor #a6a6a6 widgetDefault
-option add *Tabnotebook.activeTabColor #d9d9d9 widgetDefault
-option add *Tabnotebook.tabFont \
- -*-helvetica-bold-r-normal--*-120-* widgetDefault
-
-proc tabnotebook_create {win} {
- global tnInfo
-
- frame $win -class Tabnotebook
- canvas $win.tabs -highlightthickness 0
- pack $win.tabs -fill x
-
- notebook_create $win.notebook
- pack $win.notebook -expand yes -fill both
-
- set tnInfo($win-tabs) ""
- set tnInfo($win-current) ""
- set tnInfo($win-pending) ""
- return $win
-}
-
-proc tabnotebook_page {win name} {
- global tnInfo
-
- set page [notebook_page $win.notebook $name]
- lappend tnInfo($win-tabs) $name
-
- if {$tnInfo($win-pending) == ""} {
- set id [after idle [list tabnotebook_refresh $win]]
- set tnInfo($win-pending) $id
- }
- return $page
-}
-
-proc tabnotebook_refresh {win} {
- global tnInfo
-
- $win.tabs delete all
-
- set margin [option get $win margin Margin]
- set color [option get $win tabColor Color]
- set font [option get $win tabFont Font]
- set x 2
- set maxh 0
-
- foreach name $tnInfo($win-tabs) {
- set id [$win.tabs create text \
- [expr $x+$margin+2] [expr -0.5*$margin] \
- -anchor sw -text $name -font $font \
- -tags [list $name]]
-
- set bbox [$win.tabs bbox $id]
- set wd [expr [lindex $bbox 2]-[lindex $bbox 0]]
- set ht [expr [lindex $bbox 3]-[lindex $bbox 1]]
- if {$ht > $maxh} {
- set maxh $ht
- }
-
- $win.tabs create polygon 0 0 $x 0 \
- [expr $x+$margin] [expr -$ht-$margin] \
- [expr $x+$margin+$wd] [expr -$ht-$margin] \
- [expr $x+$wd+2*$margin] 0 \
- 2000 0 2000 10 0 10 \
- -outline black -fill $color \
- -tags [list $name tab tab-$name]
-
- $win.tabs raise $id
-
- $win.tabs bind $name <ButtonPress-1> \
- [list tabnotebook_display $win $name]
-
- set x [expr $x+$wd+2*$margin]
- }
- set height [expr $maxh+2*$margin]
- $win.tabs move all 0 $height
-
- $win.tabs configure -width $x -height [expr $height+4]
-
- if {$tnInfo($win-current) != ""} {
- tabnotebook_display $win $tnInfo($win-current)
- } else {
- tabnotebook_display $win [lindex $tnInfo($win-tabs) 0]
- }
- set tnInfo($win-pending) ""
-}
-
-proc tabnotebook_display {win name} {
- global tnInfo
-
- notebook_display $win.notebook $name
-
- set normal [option get $win tabColor Color]
- $win.tabs itemconfigure tab -fill $normal
-
- set active [option get $win activeTabColor Color]
- $win.tabs itemconfigure tab-$name -fill $active
- $win.tabs raise $name
-
- set tnInfo($win-current) $name
-}
-
-# ----------------------------------------------------------------------
-# EXAMPLE: simple notebook that can dial up pages
-# ----------------------------------------------------------------------
-# Effective Tcl/Tk Programming
-# Mark Harrison, DSC Communications Corp.
-# Michael McLennan, Bell Labs Innovations for Lucent Technologies
-# Addison-Wesley Professional Computing Series
-# ======================================================================
-# Copyright (c) 1996-1997 Lucent Technologies Inc. and Mark Harrison
-# ======================================================================
-
-option add *Notebook.borderWidth 2 widgetDefault
-option add *Notebook.relief sunken widgetDefault
-
-proc notebook_create {win} {
- global nbInfo
-
- frame $win -class Notebook
- pack propagate $win 0
-
- set nbInfo($win-count) 0
- set nbInfo($win-pages) ""
- set nbInfo($win-current) ""
- return $win
-}
-
-proc notebook_page {win name} {
- global nbInfo
-
- set page "$win.page[incr nbInfo($win-count)]"
- lappend nbInfo($win-pages) $page
- set nbInfo($win-page-$name) $page
-
- frame $page
-
- if {$nbInfo($win-count) == 1} {
- after idle [list notebook_display $win $name]
- }
- return $page
-}
-
-proc notebook_display {win name} {
- global nbInfo
-
- set page ""
- if {[info exists nbInfo($win-page-$name)]} {
- set page $nbInfo($win-page-$name)
- } elseif {[winfo exists $win.page$name]} {
- set page $win.page$name
- }
- if {$page == ""} {
- error "bad notebook page \"$name\""
- }
-
- notebook_fix_size $win
-
- if {$nbInfo($win-current) != ""} {
- pack forget $nbInfo($win-current)
- }
- pack $page -expand yes -fill both
- set nbInfo($win-current) $page
-}
-
-proc notebook_fix_size {win} {
- global nbInfo
-
- update idletasks
-
- set maxw 0
- set maxh 0
- foreach page $nbInfo($win-pages) {
- set w [winfo reqwidth $page]
- if {$w > $maxw} {
- set maxw $w
- }
- set h [winfo reqheight $page]
- if {$h > $maxh} {
- set maxh $h
- }
- }
- set bd [$win cget -borderwidth]
- set maxw [expr $maxw+2*$bd]
- set maxh [expr $maxh+2*$bd]
- $win configure -width $maxw -height $maxh
-}
-
-#***********************************************************************
-# %PROCEDURE: SetupGuiToList
-# %ARGUMENTS:
-# w -- the PPPoE connection setup window
-# %RETURNS:
-# A list of (name value) pairs for the connection.
-# %DESCRIPTION:
-# Reads values from the GUI; makes a list.
-#***********************************************************************
-proc SetupGuiToList { w } {
- global OPTS
- set ans {}
- if {[catch {lappend ans ConnectionName [$w.conName get]}]} {
- lappend ans ConnectionName [$w.conName cget -text]
- }
- lappend ans UserName [$w.user get]
- lappend ans NetworkName [$w.network get]
- lappend ans Password [$w.pass get]
- lappend ans Interface [$w.ifname get]
- lappend ans DNSType [$w.dns cget -text]
- lappend ans DNS1 [$w.dns1 get]
- lappend ans DNS2 [$w.dns2 get]
- lappend ans NonrootOK $OPTS(nonroot)
- lappend ans Sync $OPTS(sync)
- lappend ans FirewallType [$w.fw cget -text]
- lappend ans ServiceName [$w.servicename get]
- lappend ans ACName [$w.acname get]
-
- # Validate
- set name [value $ans ConnectionName]
- if {![regexp -nocase {^[-a-z0-9_]+$} $name]} {
- error "Connection name must be non-blank and contain only letters, digits, `_' and `-'"
- }
-
- # Check DNS
- set type [value $ans DNSType]
- if {"$type" == "Specify"} {
- set dns [value $ans DNS1]
- if {![regexp {[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+} "$dns"]} {
- error "Primary DNS entry must consist of four dot-separated decimal numbers"
- }
- set dns [value $ans DNS2]
- if {"$dns" != "" && ![regexp {[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+} "$dns"]} {
- error "Secondary DNS entry must consist of four dot-separated decimal numbers"
- }
- }
- return $ans
-}
-
-#***********************************************************************
-# %PROCEDURE: ListToSetupGui
-# %ARGUMENTS:
-# w -- the PPPoE connection setup window
-# lst -- a list of name/value pairs
-# %RETURNS:
-# Nothing
-# %DESCRIPTION:
-# Updates GUI to reflect lst
-#***********************************************************************
-proc ListToSetupGui { w lst } {
- global OPTS
- foreach {key value} $lst {
- switch -exact -- $key {
- ConnectionName {
- catch {
- $w.conName delete 0 end
- $w.conName insert end $value
- }
- catch {
- $w.conName configure -text $value
- }
- }
- UserName {
- $w.user delete 0 end
- $w.user insert end $value
- }
- NetworkName {
- $w.network delete 0 end
- $w.network insert end $value
- }
- Password {
- $w.pass delete 0 end
- $w.pass insert end $value
- }
- Interface {
- $w.ifname delete 0 end
- $w.ifname insert end $value
- }
- DNSType {
- SetDNSOption $w $value
- }
- DNS1 {
- set oldstate [$w.dns1 cget -state]
- $w.dns1 configure -state normal
- $w.dns1 delete 0 end
- $w.dns1 insert end $value
- $w.dns1 configure -state $oldstate
- }
- DNS2 {
- set oldstate [$w.dns2 cget -state]
- $w.dns2 configure -state normal
- $w.dns2 delete 0 end
- $w.dns2 insert end $value
- $w.dns2 configure -state $oldstate
- }
- NonrootOK {
- set OPTS(nonroot) $value
- }
- Sync {
- set OPTS(sync) $value
- }
- FirewallType {
- $w.fw configure -text $value
- }
- ServiceName {
- $w.servicename delete 0 end
- $w.servicename insert end $value
- }
- ACName {
- $w.acname delete 0 end
- $w.acname insert end $value
- }
- }
- }
-}
-
-proc NewPPPoEConnectionOK { name w } {
- if {[catch {set conn [SetupGuiToList $w]} err]} {
- tk_dialog .err "Invalid Parameters" "$err" error 0 OK
- return
- }
- if {"$name" == ""} {
- set name [value $conn ConnectionName]
- set tmp [GetConnection $name]
- if {"$tmp" != ""} {
- tk_dialog .err "Connection Exists" "The connection `$name' already exists. Pick another name." error 0 OK
- return
- }
- }
- ReplaceConnection $conn
- SaveConnectionInfo
- BuildConnectionMenu
- SwitchConnection $name
- destroy $w
-}
-
-proc SaveConnectionInfo {} {
- global ConnectionInfo ConnectionInfoFile PasswordFile
- set fp [open "$ConnectionInfoFile.new" "w"]
- puts $fp "# RP-PPPoE GUI Configuration Information."
- puts $fp "# This file may *look* human-editable, but it is NOT."
- puts $fp "# So, you with the text editor: Keep away from this file."
- puts $fp "#"
- set expunged {}
- set passwords {}
- foreach thing $ConnectionInfo {
- set name [value $thing ConnectionName]
- set password [value $thing Password]
- set pwindex [lsearch -exact $thing Password]
- set safe [lreplace $thing $pwindex [expr $pwindex+1]]
- set pwd [list ConnectionName $name Password $password]
- lappend expunged $safe
- lappend passwords $pwd
- }
- puts $fp $expunged
- close $fp
- set fp [open "$PasswordFile.new" "w"]
- exec chmod 600 "$PasswordFile.new"
- puts $fp "# RP-PPPoE GUI Configuration Information."
- puts $fp "# This file may *look* human-editable, but it is NOT."
- puts $fp "# So, you with the text editor: Keep away from this file."
- puts $fp "#"
- puts $fp $passwords
- close $fp
- file rename -force "$ConnectionInfoFile.new" "$ConnectionInfoFile"
- file rename -force "$PasswordFile.new" "$PasswordFile"
-
- # Generate config files for adsl-start for each connection
- foreach thing $ConnectionInfo {
- GenerateConfigFile $thing
- }
-
- # Now update /etc/ppp/pap-secrets and /etc/ppp/chap-secrets
- foreach thing $ConnectionInfo {
- GenerateSecretsEntry $thing
- }
-}
-
-#***********************************************************************
-# %PROCEDURE: ReadShellEscapedWord
-# %ARGUMENTS:
-# str -- a string
-# %RETURNS:
-# A two-element list -- the first element is a shell-escaped word
-# extracted from $str, just the way pppd parses /etc/ppp/pap-secrets.
-# The second element is the remaining portion of $str
-#***********************************************************************
-proc ReadShellEscapedWord { str } {
- set ans {}
- set rest $str
-
- # Chew up leading spaces
- set rest [string trimleft $rest]
-
- # If first char is a quote, read until a quote
- if {"[string index $rest 0]" == "\""} {
- set rest [string range $rest 1 end]
- set nextquote [string first "\"" $rest]
- # If no following quote, pretend we haven't seen a quote, I guess.
- if {$nextquote >= 0} {
- set ans [string range $rest 0 [expr $nextquote-1]]
- set rest [string range $rest [expr $nextquote+1] end]
- return [list $ans $rest]
- }
- }
-
- # Not a quote; chew through the string until an unescaped space
- while {[string length $rest] > 0} {
- set char [string index $rest 0]
- set rest [string range $rest 1 end]
- # Sneaky test for whitespace in Tcl 8.0
- if {"[string trim $char]" == ""} {
- return [list $ans $rest]
- }
- if {"$char" == "\\"} {
- set char [string index $rest 0]
- set rest [string range $rest 1 end]
- }
- append ans $char
- }
- return [list $ans $rest]
-}
-
-
-#***********************************************************************
-# %PROCEDURE: GenerateSecretsEntry
-# %ARGUMENTS:
-# conn -- a connection key/value list
-# %RETURNS:
-# Nothing
-# %DESCRIPTION:
-# Adds entries to /etc/ppp/pap-secrets and /etc/ppp/chap-secrets.
-#***********************************************************************
-proc GenerateSecretsEntry { conn } {
- set user [value $conn UserName]
- set net [value $conn NetworkName]
- set password [value $conn Password]
- if {"$net" != ""} {
- set user "$user@$net"
- }
- GenerateSecretsEntryForFile $user $password "/etc/ppp/pap-secrets"
- GenerateSecretsEntryForFile $user $password "/etc/ppp/chap-secrets"
-}
-
-#***********************************************************************
-# %PROCEDURE: GenerateSecretsEntryForFile
-# %ARGUMENTS:
-# user -- user name
-# password -- password
-# fname -- file to add entry to.
-# %RETURNS:
-# Nothing
-# %DESCRIPTION:
-# Adds entries to /etc/ppp/pap-secrets or /etc/ppp/chap-secrets.
-#***********************************************************************
-proc GenerateSecretsEntryForFile { user password fname } {
- # Copy $fname to $fname.new
- set out [open "$fname.new" "w"]
- exec chmod go-rwx "$fname.new"
- if {[file exists $fname]} {
- set in [open $fname "r"]
- while {[gets $in line] >= 0} {
- set trimmed [string trim $line]
- if {"$trimmed" == ""} {
- puts $out $line
- continue
- }
- if {[string match "#*" $trimmed]} {
- puts $out $line
- continue
- }
-
- # Read the user name off the line; copy it unless it's our
- # user name.
- foreach {word dummy} [ReadShellEscapedWord $line] {break}
- if {$word != $user} {
- puts $out $line
- }
- }
- close $in
- }
-
- # Now add our line
- set user [ShellEscape $user]
- set password [ShellEscape $password]
- puts $out "$user\t*\t$password\t*"
- close $out
- file rename -force $fname.new $fname
-}
-
-#***********************************************************************
-# %PROCEDURE: ShellEscape
-# %ARGUMENTS:
-# str
-# %RETURNS:
-# A version of $str with shell meta-characters escaped
-#***********************************************************************
-proc ShellEscape { str } {
- set ans ""
- foreach char [split $str ""] {
- if {[string first $char "01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_+=-@./"] >= 0} {
- append ans $char
- } else {
- append ans "\\$char"
- }
- }
- return $ans
-}
-
-
-#***********************************************************************
-# %PROCEDURE: GenerateConfigFile
-# %ARGUMENTS:
-# conn -- a connection key/value list
-# %RETURNS:
-# Nothing
-# %DESCRIPTION:
-# Generates a configuration file for adsl-start and friends under
-# /etc/ppp/rp-pppoe-gui
-#***********************************************************************
-proc GenerateConfigFile { conn } {
- global ConfigDir
- set name [value $conn ConnectionName]
- set fname [file join $ConfigDir conf.$name]
- set fp [open "$fname.new" w]
- puts $fp "# Configuration file for connection `$name'."
- puts $fp "# Automatically generated. Do not edit by hand."
- puts $fp ""
- foreach {var val} $conn {
- switch -exact $var {
- UserName {
- set net [value $conn NetworkName]
- if {"$net" != ""} {
- set user "$val@$net"
- } else {
- set user "$val"
- }
- puts $fp [ShellEscape "USER=$user"]
- }
- Interface {
- puts $fp [ShellEscape "ETH=$val"]
- }
- DNSType {
- if {"$val" == "From Server"} {
- puts $fp "DNSTYPE=SERVER"
- puts $fp "USEPEERDNS=yes"
- } elseif {"$val" == "Specify"} {
- puts $fp "DNSTYPE=SPECIFY"
- puts $fp "USEPEERDNS=no"
- } else {
- puts $fp "DNSTYPE=NOCHANGE"
- puts $fp "USEPEERDNS=no"
- }
- }
- DNS1 {
- puts $fp [ShellEscape "DNS1=$val"]
- }
- DNS2 {
- puts $fp [ShellEscape "DNS2=$val"]
- }
- NonrootOK {
- if {$val} {
- puts $fp "NONROOT=OK"
- }
- }
- ACName {
- puts $fp [ShellEscape "ACNAME=$val"]
- }
- ServiceName {
- puts $fp [ShellEscape "SERVICENAME=$val"]
- }
- FirewallType {
- if {"$val" == "None"} {
- puts $fp "FIREWALL=NONE"
- } elseif {"$val" == "Masquerading"} {
- puts $fp "FIREWALL=MASQUERADE"
- } else {
- puts $fp "FIREWALL=STANDALONE"
- }
- }
- Sync {
- if {$val} {
- puts $fp "SYNCHRONOUS=yes"
- } else {
- puts $fp "SYNCHRONOUS=no"
- }
- }
- }
- }
- puts $fp "CONNECT_TIMEOUT=30"
- puts $fp "CONNECT_POLL=1"
- puts $fp "FORCEPING=\".\""
- puts $fp "PIDFILE=/var/run/adsl-$name.pid"
- puts $fp "CLAMPMSS=1412"
- puts $fp "LCP_INTERVAL=20"
- puts $fp "LCP_FAILURE=3"
- puts $fp "PPPOE_TIMEOUT=80"
- puts $fp "LINUX_PLUGIN="
- puts $fp "DEMAND=no"
- close $fp
- file rename -force "$fname.new" "$fname"
-}
-
-#***********************************************************************
-# %PROCEDURE: GetConnectionStatus
-# %ARGUMENTS:
-# conn -- connection name
-# %RETURNS:
-# A three-element list:
-# {started/stopped up/down if}
-# If first element is "started", then connection has been started.
-# If second element is "up", then connection is up.
-# If connection is up, third element is PPP interface.
-#***********************************************************************
-proc GetConnectionStatus { conn } {
- set pidfile "/var/run/adsl-$conn.pid"
-
- # Check for PID file
- if {![file readable $pidfile]} {
- return {stopped down ""}
- }
- set fp [open $pidfile "r"]
- gets $fp pid
- close $fp
-
- # Check if process is dead
- if {![file exists "/proc/$pid"]} {
- # The pppd might still be running... doh...
- if {![file readable "$pidfile.pppd"]} {
- return {stopped down ""}
- }
- set fp [open "$pidfile.pppd" "r"]
- gets $fp pid
- close $fp
- if {![file exists "/proc/$pid"]} {
- return {stopped down ""}
- }
- }
-
- # Now get PID of pppd
- if {![file readable "$pidfile.pppd"]} {
- return {started down ""}
- }
- set fp [open "$pidfile.pppd" "r"]
- gets $fp pid
- close $fp
-
- # Find interface to which it corresponds
- set pppdfiles [glob -nocomplain "/var/run/ppp*.pid"]
- set found {}
- foreach file $pppdfiles {
- set fp [open $file "r"]
- gets $fp ifpid
- close $fp
- if {$ifpid == $pid} {
- set found [file rootname [file tail $file]]
- break
- }
- }
- if {"$found" == ""} {
- return {started down ""}
- }
- return [list started up $found]
-}
-
-#***********************************************************************
-# %PROCEDURE: UpdateConnectionState
-# %ARGUMENTS:
-# fromAfter -- if 1, was called from an "after" callback.
-# %RETURNS:
-# Nothing
-# %DESCRIPTION:
-# Updates the "LED" displays; periodically reschedules itself to keep
-# updating display.
-#***********************************************************************
-proc UpdateConnectionState {{fromAfter 1}} {
- global UpdateToken
- global Packets
- global Bytes
- global UpdateInterval
- global MeasureTime
- if {$fromAfter} {
- set UpdateToken ""
- }
-
- set conn [GetCurrentConnection]
- if {"$conn" == ""} {
- ConnectionStateOff
- ResetGraph
- if {"$UpdateToken" != ""} {
- after cancel $UpdateToken
- set UpdateToken {}
- }
- return
- }
-
- foreach {startstop updown interface} [GetConnectionStatus $conn] {break}
- if {"$startstop" == "stopped"} {
- ConnectionStateOff
- ResetGraph
- } elseif {"$updown" == "down"} {
- ConnectionStateDown
- ResetGraph
- } else {
- # Get the packet counts
- set found 0
- set fp [open "/proc/net/dev" "r"]
- while {[gets $fp line] >= 0} {
- if {![string match "*$interface:*" $line]} {
- continue
- }
- set colon [string first ":" $line]
- if {$colon < 0} {
- continue
- }
- set line [string range $line [expr $colon+1] end]
- set found 1
- set MeasureTime [clock seconds]
- break
- }
- close $fp
- if {$found} {
- foreach {rbytes rpacks rerrs rdrop rfifo rframe rcomp rmulti tbytes tpacks} $line {break}
- if {!$fromAfter} {
- set Packets(in) $rpacks
- set Packets(out) $tpacks
- set Bytes(in) $rbytes
- set Bytes(out) $tbytes
- ConnectionStateUp
- ResetGraph
- } else {
- if {$rpacks != $Packets(in)} {
- ConnectionReceiveActive
- } else {
- ConnectionReceiveUp
- }
- if {$tpacks != $Packets(out)} {
- ConnectionTransmitActive
- } else {
- ConnectionTransmitUp
- }
- set Packets(in) $rpacks
- set Packets(out) $tpacks
- set Bytes(in) $rbytes
- set Bytes(out) $tbytes
- UpdateGraph
- }
- } else {
- ConnectionStateUp
- ResetGraph
- }
- }
- if {"$UpdateToken" == ""} {
- set UpdateToken [after $UpdateInterval UpdateConnectionState]
- }
- if {$fromAfter} {
- SetButtonStates
- }
-}
-
-proc ConnectionStateOff {} {
- .c itemconfigure xmitrect -fill "#A0A0A0"
- .c itemconfigure recvrect -fill "#A0A0A0"
-}
-
-proc ConnectionStateDown {} {
- .c itemconfigure xmitrect -fill "#A00000"
- .c itemconfigure recvrect -fill "#A00000"
-}
-
-proc ConnectionStateUp {} {
- .c itemconfigure xmitrect -fill "#00D000"
- .c itemconfigure recvrect -fill "#00D000"
-}
-
-proc ConnectionTransmitActive {} {
- .c itemconfigure xmitrect -fill "#FFFF00"
-}
-
-proc ConnectionTransmitUp {} {
- .c itemconfigure xmitrect -fill "#00D000"
-}
-
-proc ConnectionReceiveActive {} {
- .c itemconfigure recvrect -fill "#FFFF00"
-}
-
-proc ConnectionReceiveUp {} {
- .c itemconfigure recvrect -fill "#00D000"
-}
-
-proc ResetGraph {} {
- global GraphPoints
- set GraphPoints(in) {}
- set GraphPoints(out) {}
- set GraphPoints(times) {}
- .graph delete all
- UpdateGraph
-}
-
-proc UpdateGraph {} {
- global GraphPoints Bytes UpdateInterval MeasureTime
- lappend GraphPoints(times) $MeasureTime
- lappend GraphPoints(in) $Bytes(in)
- lappend GraphPoints(out) $Bytes(out)
-
- set w [winfo width .graph]
- set w2 [expr $w/2]
-
- set h [winfo height .graph]
- set toChop [expr [llength $GraphPoints(in)] - $w2 - 1]
- if {$toChop > 0} {
- set GraphPoints(in) [lrange $GraphPoints(in) $toChop end]
- }
- set toChop [expr [llength $GraphPoints(out)] - $w2 - 1]
- if {$toChop > 0} {
- set GraphPoints(out) [lrange $GraphPoints(out) $toChop end]
- }
- set toChop [expr [llength $GraphPoints(times)] - $w2 - 1]
- if {$toChop > 0} {
- set GraphPoints(times) [lrange $GraphPoints(times) $toChop end]
- }
-
- set prev [lindex $GraphPoints(in) 0]
- set incoords {}
- set outcoords {}
- set inmax 0
- set outmax 0
- foreach thing [lrange $GraphPoints(in) 1 end] {
- set diff [expr $thing - $prev]
- set prev $thing
- lappend incoords $diff
- if {$diff > $inmax} {
- set inmax $diff
- }
- }
-
- set prev [lindex $GraphPoints(out) 0]
- foreach thing [lrange $GraphPoints(out) 1 end] {
- set diff [expr $thing - $prev]
- set prev $thing
- lappend outcoords $diff
- if {$diff > $outmax} {
- set outmax $diff
- }
- }
-
- if {$inmax == 0} { set inmax 1 }
- if {$outmax == 0} { set outmax 1 }
- # Draw the transmit line
- set x 0
- set hh [expr $h-4]
- set scaled {}
- foreach thing $outcoords {
- lappend scaled $x [expr double($h) - 2 - (double($hh) * double($thing) / double($outmax))]
- incr x
- }
-
- .graph delete all
- if {[llength $scaled] >= 4} {
- eval ".graph create line $scaled -fill #A00000"
- set bits [expr 8.0 * ([lindex $GraphPoints(out) end] - [lindex $GraphPoints(out) 0])]
- set timediff [expr [lindex $GraphPoints(times) end] - [lindex $GraphPoints(times) 0]]
- if {$timediff != 0} {
- set bps [Pretty [expr double($bits) / $timediff]]
- .graph create text 2 2 -anchor nw -font fixed -text "$bps"
- }
- }
-
- # Draw the receive line
- set x $w2
- set scaled {}
- foreach thing $incoords {
- lappend scaled $x [expr double($h) - 2 - (double($hh) * double($thing) / double($inmax))]
- incr x
- }
-
- if {[llength $scaled] >= 4} {
- eval ".graph create line $scaled -fill #00A000"
- set bits [expr 8.0 * ([lindex $GraphPoints(in) end] - [lindex $GraphPoints(in) 0])]
- set timediff [expr [lindex $GraphPoints(times) end] - [lindex $GraphPoints(times) 0]]
- if {$timediff != 0} {
- set bps [Pretty [expr double($bits) / $timediff]]
- .graph create text [expr $w2+2] 2 -anchor nw -font fixed -text "$bps"
- }
- }
-}
-
-proc Pretty { n } {
- if {$n < 0} {
- return "***"
- }
- if {$n < 1000} {
- return [format "%.1f" $n]
- }
- set n [expr $n/1000.0]
- if {$n < 1000} {
- return [format "%.1fk" $n]
- }
- set n [expr $n/1000.0]
- if {$n < 1000} {
- return [format "%.1fM" $n]
- }
- set n [expr $n/1000.0]
- return [format "%.1fG" $n]
-}
-
-#***********************************************************************
-# %PROCEDURE: Help
-# %ARGUMENTS:
-# None
-# %RETURNS:
-# Nothing
-# %DESCRIPTION:
-# Opens help page
-#***********************************************************************
-proc Help {} {
- if {![file readable /usr/share/rp-pppoe-gui/tkpppoe.html]} {
- tk_dialog .err Error "Help file '/usr/share/rp-pppoe-gui/tkpppoe.html' is not installed" error 0 OK
- return
- }
- catch { exec /bin/sh -c "netscape -remote 'openURL(/usr/share/rp-pppoe-gui/tkpppoe.html)' || netscape /usr/share/rp-pppoe-gui/tkpppoe.html" > /dev/null 2>/dev/null & }
-}
-
-
-
-#***********************************************************************
-# %PROCEDURE: doLogo
-# %ARGUMENTS:
-# None
-# %RETURNS:
-# Nothing
-# %DESCRIPTION:
-# Does the logo thing
-#***********************************************************************
-proc doLogo {} {
- global AlreadyRunFile ConfigDir
- if {[file exists $AlreadyRunFile]} {
- return
- }
- catch { file mkdir $ConfigDir }
- catch { close [open $AlreadyRunFile "w"] }
- canvas .c -width 374 -height 286 -bg #FFFFCC
- pack .c
- drawLogo .c #FFFFCC
-
- # Funky effect
- .c create text 4 4 -anchor nw -text "Welcome to RP-PPPoE" \
- -fill red -font {-family times -size -24 -weight bold} -tags pppoe
- .c lower pppoe
-
- .c move logo -300 0
-
- update idletasks
-
- for {set i 0} {$i < 15} {incr i} {
- .c move logo 20 0
- update idletasks
- after 25
- }
-
- .c create text 4 28 -anchor nw -text "http://www.roaringpenguin.com" \
- -fill red -font {-family courier -size -14 -weight bold}
- update idletasks
- after 2500
-}
-
-doLogo
-catch { destroy .c }
-
-# Try creating an empty config file if none exists
-if {![file readable $ConnectionInfoFile]} {
- catch { file mkdir $ConfigDir }
- catch {
- set fp [open $ConnectionInfoFile "w"]
- close $fp
- }
-}
-
-CreateMainDialog
diff --git a/mdk-stage1/rp-pppoe/gui/wrapper.c b/mdk-stage1/rp-pppoe/gui/wrapper.c
deleted file mode 100644
index e2b99662a..000000000
--- a/mdk-stage1/rp-pppoe/gui/wrapper.c
+++ /dev/null
@@ -1,234 +0,0 @@
-/* -*-Mode: C;-*- */
-
-/***********************************************************************
-*
-* wrapper.c
-*
-* C wrapper designed to run SUID root for controlling PPPoE connections.
-*
-* Copyright (C) 2001 by Roaring Penguin Software Inc.
-*
-***********************************************************************/
-
-static char const RCSID[] =
-"$Id$";
-
-#define _SVID_SOURCE 1 /* For putenv */
-#define _POSIX_SOURCE 1 /* For fileno */
-#define _BSD_SOURCE 1 /* For setreuid */
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <errno.h>
-#include <sys/stat.h>
-#include <unistd.h>
-
-#define CONN_NAME_LEN 64
-#define LINELEN 512
-
-static char const *adsl_start = ADSL_START_PATH;
-static char const *adsl_stop = ADSL_STOP_PATH;
-static char const *adsl_status = ADSL_STATUS_PATH;
-
-/**********************************************************************
- *%FUNCTION: PathOK
- *%ARGUMENTS:
- * fname -- a file name.
- *%RETURNS:
- * 1 if path to fname is secure; 0 otherwise.
- *%DESCRIPTION:
- * Makes sure ownership/permissions of file and parent directories
- * are safe.
- **********************************************************************/
-static int
-PathOK(char const *fname)
-{
- char path[LINELEN];
- struct stat buf;
- char const *slash;
-
- if (strlen(fname) > LINELEN) {
- fprintf(stderr, "Pathname '%s' too long\n", fname);
- return 0;
- }
-
- /* Must be absolute path */
- if (*fname != '/') {
- fprintf(stderr, "Unsafe path '%s' not absolute\n", fname);
- return 0;
- }
-
- /* Check root directory */
- if (stat("/", &buf) < 0) {
- perror("stat");
- return 0;
- }
- if (buf.st_uid) {
- fprintf(stderr, "SECURITY ALERT: Root directory (/) not owned by root\n");
- return 0;
- }
- if (buf.st_mode & (S_IWGRP | S_IWOTH)) {
- fprintf(stderr, "SECURITY ALERT: Root directory (/) writable by group or other\n");
- return 0;
- }
-
- /* Check each component */
- slash = fname;
-
- while(*slash) {
- slash = strchr(slash+1, '/');
- if (!slash) {
- slash = fname + strlen(fname);
- }
- memcpy(path, fname, slash-fname);
- path[slash-fname] = 0;
- if (stat(path, &buf) < 0) {
- perror("stat");
- return 0;
- }
- if (buf.st_uid) {
- fprintf(stderr, "SECURITY ALERT: '%s' not owned by root\n", path);
- return 0;
- }
-
- if (buf.st_mode & (S_IWGRP | S_IWOTH)) {
- fprintf(stderr, "SECURITY ALERT: '%s' writable by group or other\n",
- path);
- return 0;
- }
- }
- return 1;
-}
-
-/**********************************************************************
- *%FUNCTION: CleanEnvironment
- *%ARGUMENTS:
- * envp -- environment passed to main
- *%RETURNS:
- * Nothing
- *%DESCRIPTION:
- * Deletes all environment variables; makes safe environment
- **********************************************************************/
-static void
-CleanEnvironment(char *envp[])
-{
- envp[0] = NULL;
- putenv("PATH=/bin:/usr/bin:/sbin:/usr/sbin");
-}
-
-/**********************************************************************
- *%FUNCTION: main
- *%ARGUMENTS:
- * argc, argv -- usual suspects
- * Usage: pppoe-wrapper {start|stop|status} {connection_name}
- *%RETURNS:
- * Whatever adsl-start, adsl-stop or adsl-status returns.
- *%DESCRIPTION:
- * Runs adsl-start, adsl-stop or adsl-status on given connection if
- * non-root users are allowed to do it.
- **********************************************************************/
-int
-main(int argc, char *argv[])
-{
- int amRoot;
- char *cp;
- char fname[64+CONN_NAME_LEN];
- char line[LINELEN+1];
- int allowed = 0;
-
- FILE *fp;
-
- extern char **environ;
-
- /* Clean out environment */
- CleanEnvironment(environ);
-
- /* Are we root? */
- amRoot = (getuid() == 0);
-
- /* Validate arguments */
- if (argc != 3) {
- fprintf(stderr, "Usage: %s {start|stop|status} connection_name\n",
- argv[0]);
- exit(1);
- }
-
- if (strcmp(argv[1], "start") &&
- strcmp(argv[1], "stop") &&
- strcmp(argv[1], "status")) {
- fprintf(stderr, "Usage: %s {start|stop|status} connection_name\n",
- argv[0]);
- exit(1);
- }
-
- /* Connection name can be at most CONN_NAME_LEN chars; alpha, num, underscore */
- if (strlen(argv[2]) > CONN_NAME_LEN) {
- fprintf(stderr, "%s: Connection name '%s' too long.\n",
- argv[0], argv[2]);
- exit(1);
- }
-
- for (cp = argv[2]; *cp; cp++) {
- if (!strchr("abcdefghijklmnopqrstuvwxyz"
- "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- "0123456789_-", *cp)) {
- fprintf(stderr, "%s: Connection name '%s' contains illegal character '%c'\n", argv[0], argv[2], *cp);
- exit(1);
- }
- }
-
- /* Open the connection file */
- sprintf(fname, "/etc/ppp/rp-pppoe-gui/conf.%s", argv[2]);
- /* Check path sanity */
- if (!PathOK(fname)) {
- exit(1);
- }
-
- fp = fopen(fname, "r");
- if (!fp) {
- fprintf(stderr, "%s: Could not open '%s': %s\n",
- argv[0], fname, strerror(errno));
- exit(1);
- }
-
- /* Check if non-root users can control it */
- if (amRoot) {
- allowed = 1;
- } else {
- while (!feof(fp)) {
- if (!fgets(line, LINELEN, fp)) {
- break;
- }
- if (!strcmp(line, "NONROOT=OK\n")) {
- allowed = 1;
- break;
- }
- }
- }
- fclose(fp);
-
- if (!allowed) {
- fprintf(stderr, "%s: Non-root users are not permitted to control connection '%s'\n", argv[0], argv[2]);
- exit(1);
- }
-
- /* Become root with setuid() to defeat is-root checks in shell scripts */
- if (setreuid(0, 0) < 0) {
- perror("setreuid");
- exit(1);
- }
-
- /* It's OK -- do it. */
- if (!strcmp(argv[1], "start")) {
- if (!PathOK(adsl_start)) exit(1);
- execl(adsl_start, "adsl-start", fname, NULL);
- } else if (!strcmp(argv[1], "stop")) {
- if (!PathOK(adsl_stop)) exit(1);
- execl(adsl_stop, "adsl-stop", fname, NULL);
- } else {
- if (!PathOK(adsl_status)) exit(1);
- execl(adsl_status, "adsl-status", fname, NULL);
- }
- fprintf(stderr, "%s: execl: %s\n", argv[0], strerror(errno));
- exit(1);
-}
diff --git a/mdk-stage1/rp-pppoe/man/adsl-connect.8 b/mdk-stage1/rp-pppoe/man/adsl-connect.8
deleted file mode 100644
index 1b34a74e5..000000000
--- a/mdk-stage1/rp-pppoe/man/adsl-connect.8
+++ /dev/null
@@ -1,66 +0,0 @@
-.\" $Id$
-.TH ADSL-CONNECT 8 "21 February 2000"
-.UC 4
-.SH NAME
-adsl-connect \- Shell script to manage a PPPoE link
-
-.SH SYNOPSIS
-.B adsl-connect \fR[\fIconfig_file\fR]
-.P
-.B adsl-connect \fR\fIinterface user\fR [\fIconfig_file\fR]
-
-
-.SH DESCRIPTION
-\fBadsl-connect\fR is a shell script which manages an ADSL connection
-using the Roaring Penguin user-space PPPoE client. If you omit
-\fIconfig_file\fR, the default file \fB/etc/ppp/pppoe.conf\fR is used.
-If you supply \fIinterface\fR and \fIuser\fR, then they override the
-Ethernet interface and user-name settings in the configuration file.
-.P
-Note that normally, you should \fInot\fR invoke \fBadsl-connect\fR
-directly. Instead, use \fBadsl-start\fR to bring up the ADSL connection.
-.P
-\fBadsl-connect\fR first reads a configuration file. It then brings
-up a PPPoE connection. If the connection ever drops, a message is logged
-to syslog, and \fBadsl-connect\fR re-establishes the connection. In addition,
-each time the connection is dropped or cannot be established,
-\fBadsl-connect\fR executes the script \fB/etc/ppp/adsl-lost\fR if it
-exists and is executable.
-
-.P
-The shell script \fBadsl-stop\fR causes \fBadsl-connect\fR to break out
-of its loop, bring the connection down, and exit.
-
-.SH TECHNICAL DETAILS
-\fBadsl-connect\fR uses the following shell variables from the
-configuration file:
-
-.TP
-.B ETH
-The Ethernet interface connected to the ADSL modem (for example, eth0).
-
-.TP
-.B USER
-The ADSL user-id (for example, b1xxnxnx@sympatico.ca).
-
-.TP
-.B PIDFILE
-A file in which to write the process-ID of the adsl-connect process
-(for example, \fB/var/run/pppoe.pid\fR). Two additional files
-($PIDFILE.pppd and $PIDFILE.pppoe) hold the process-ID's of the
-\fBpppd\fR and \fBpppoe\fR processes, respectively.
-
-.P
-By using different configuration files with different PIDFILE
-settings, you can manage multiple PPPoE connections. Just specify the
-configuration file as an argument to \fBadsl-start\fR and
-\fBadsl-stop\fR.
-
-.SH AUTHOR
-\fBadsl-connect\fR was written by David F. Skoll <dfs@roaringpenguin.com>.
-
-The \fBpppoe\fR home page is \fIhttp://www.roaringpenguin.com/pppoe/\fR.
-
-.SH SEE ALSO
-pppoe(8), adsl-start(8), adsl-stop(8), pppd(8), pppoe.conf(5), adsl-setup(8), adsl-status(8), pppoe-sniff(8), pppoe-server(8), pppoe-relay(8)
-
diff --git a/mdk-stage1/rp-pppoe/man/adsl-setup.8 b/mdk-stage1/rp-pppoe/man/adsl-setup.8
deleted file mode 100644
index 9e78fa547..000000000
--- a/mdk-stage1/rp-pppoe/man/adsl-setup.8
+++ /dev/null
@@ -1,23 +0,0 @@
-.\" $Id$
-.TH ADSL-SETUP 8 "21 February 2000"
-.UC 4
-.SH NAME
-adsl-setup \- Shell script to configure Roaring Penguin PPPoE client
-.SH SYNOPSIS
-.B adsl-setup
-
-.SH DESCRIPTION
-\fBadsl-setup\fR is a shell script which prompts you for various pieces
-of information and sets up an /etc/ppp/pppoe.conf configuration script
-for the \fBadsl-start\fR, \fBadsl-stop\fR and \fBadsl-connect\fR scripts.
-
-.SH AUTHOR
-\fBadsl-setup\fR was written by David F. Skoll <dfs@roaringpenguin.com>.
-
-The \fBpppoe\fR home page is \fIhttp://www.roaringpenguin.com/pppoe/\fR.
-
-.SH SEE ALSO
-pppoe(8), adsl-start(8), adsl-stop(8), adsl-connect(8), pppd(8),
-pppoe.conf(5), adsl-status(8), pppoe-sniff(8), pppoe-relay(8),
-pppoe-server(8)
-
diff --git a/mdk-stage1/rp-pppoe/man/adsl-start.8 b/mdk-stage1/rp-pppoe/man/adsl-start.8
deleted file mode 100644
index 87250b381..000000000
--- a/mdk-stage1/rp-pppoe/man/adsl-start.8
+++ /dev/null
@@ -1,27 +0,0 @@
-.\" $Id$
-.TH ADSL-START 8 "21 February 2000"
-.UC 4
-.SH NAME
-adsl-start \- Shell script to bring up a PPPoE link
-.SH SYNOPSIS
-.B adsl-start \fR[\fIconfig_file\fR]
-.P
-.B adsl-start \fR\fIinterface user\fR [\fIconfig_file\fR]
-
-.SH DESCRIPTION
-\fBadsl-start\fR is a shell script which starts the Roaring Penguin
-user-space PPPoE client. If you omit \fIconfig_file\fR, the default
-file \fB/etc/ppp/pppoe.conf\fR is used. If you supply
-\fIinterface\fR and \fIuser\fR, then they override the Ethernet interface
-and user-name settings in the configuration file.
-
-.SH AUTHOR
-\fBadsl-start\fR was written by David F. Skoll <dfs@roaringpenguin.com>.
-
-The \fBpppoe\fR home page is \fIhttp://www.roaringpenguin.com/pppoe/\fR.
-
-.SH SEE ALSO
-pppoe(8), adsl-stop(8), adsl-connect(8), pppd(8), pppoe.conf(5),
-adsl-setup(8), adsl-status(8), pppoe-sniff(8), pppoe-relay(8),
-pppoe-server(8)
-
diff --git a/mdk-stage1/rp-pppoe/man/adsl-status.8 b/mdk-stage1/rp-pppoe/man/adsl-status.8
deleted file mode 100644
index 2114d461e..000000000
--- a/mdk-stage1/rp-pppoe/man/adsl-status.8
+++ /dev/null
@@ -1,25 +0,0 @@
-.\" $Id$
-.TH ADSL-STATUS 8 "16 March 2000"
-.UC 4
-.SH NAME
-adsl-status \- Shell script to report on status of PPPoE link
-.SH SYNOPSIS
-.B adsl-status \fR[\fIconfig_file\fR]
-
-.SH DESCRIPTION
-\fBadsl-status\fR is a shell script which checks the status of the
-PPPoE link established by the Roaring Penguin user-space PPPoE client.
-If you omit \fIconfig_file\fR, the default file
-\fB/etc/ppp/pppoe.conf\fR is used.
-
-.SH AUTHOR
-\fBadsl-status\fR was written by David F. Skoll <dfs@roaringpenguin.com>.
-
-The \fBpppoe\fR home page is \fIhttp://www.roaringpenguin.com/pppoe/\fR.
-
-.SH SEE ALSO
-pppoe(8), adsl-start(8), adsl-connect(8), pppd(8), pppoe.conf(5),
-adsl-setup(8), adsl-stop(8), pppoe-sniff(8), pppoe-relay(8),
-pppoe-server(8)
-
-
diff --git a/mdk-stage1/rp-pppoe/man/adsl-stop.8 b/mdk-stage1/rp-pppoe/man/adsl-stop.8
deleted file mode 100644
index 2ac7fef8e..000000000
--- a/mdk-stage1/rp-pppoe/man/adsl-stop.8
+++ /dev/null
@@ -1,21 +0,0 @@
-.\" $Id$
-.TH ADSL-STOP 8 "21 February 2000"
-.UC 4
-.SH NAME
-adsl-stop \- Shell script to shut down a PPPoE link
-.SH SYNOPSIS
-.B adsl-stop \fR[\fIconfig_file\fR]
-
-.SH DESCRIPTION
-\fBadsl-stop\fR is a shell script which stops the Roaring Penguin
-user-space PPPoE client. If you omit \fIconfig_file\fR, the default
-file \fB/etc/ppp/pppoe.conf\fR is used.
-
-.SH AUTHOR
-\fBadsl-stop\fR was written by David F. Skoll <dfs@roaringpenguin.com>.
-
-The \fBpppoe\fR home page is \fIhttp://www.roaringpenguin.com/pppoe/\fR.
-
-.SH SEE ALSO
-pppoe(8), adsl-start(8), adsl-connect(8), pppd(8), pppoe.conf(5), adsl-setup(8), adsl-status(8), pppoe-sniff(8), pppoe-relay(8), pppoe-server(8)
-
diff --git a/mdk-stage1/rp-pppoe/man/pppoe-relay.8 b/mdk-stage1/rp-pppoe/man/pppoe-relay.8
deleted file mode 100644
index 5f79b09a1..000000000
--- a/mdk-stage1/rp-pppoe/man/pppoe-relay.8
+++ /dev/null
@@ -1,124 +0,0 @@
-.\" $Id$
-.TH PPPOE-RELAY 8 "26 January 2001"
-.\""
-.UC 4
-.SH NAME
-pppoe-relay \- user-space PPPoE relay agent.
-.SH SYNOPSIS
-.B pppoe-relay \fR[\fIoptions\fR]
-
-.SH DESCRIPTION
-\fBpppoe-relay\fR is a user-space relay agent for PPPoE
-(Point-to-Point Protocol over Ethernet) for Linux. \fBpppoe-relay\fR
-works in concert with the \fBpppoe\fR client and \fBpppoe-server\fR
-server. See the OPERATION section later in this manual for
-details on how \fBpppoe-relay\fR works.
-
-.SH OPTIONS
-.TP
-.B \-S \fIinterface\fR
-Adds the Ethernet interface \fIinterface\fR to the list of interfaces
-managed by \fBpppoe-relay\fR. Only PPPoE servers may be connected to
-this interface.
-
-.TP
-.B \-C \fIinterface\fR
-Adds the Ethernet interface \fIinterface\fR to the list of interfaces
-managed by \fBpppoe-relay\fR. Only PPPoE clients may be connected to
-this interface.
-
-.TP
-.B \-B \fIinterface\fR
-Adds the Ethernet interface \fIinterface\fR to the list of interfaces
-managed by \fBpppoe-relay\fR. Both PPPoE clients and servers may be
-connected to this interface.
-
-.TP
-.B \-n \fInum\fR
-Allows at most \fInum\fR concurrent PPPoE sessions. If not specified,
-the default is 5000. \fInum\fR can range from 1 to 65534.
-
-.TP
-.B \-i \fItimeout\fR
-Specifies the session idle timeout. If both peers in a session are idle
-for more than \fItimeout\fR seconds, the session is terminated.
-If \fItimeout\fR is specified as zero, sessions will never be terminated
-because of idleness.
-
-Note that the idle-session expiry routine is never run more frequently than
-every 30 seconds, so the timeout is approximate. The default value for
-\fItimeout\fR is 600 seconds (10 minutes.)
-
-.TP
-.B \-F
-The \fB\-F\fR option causes \fBpppoe-relay\fR \fInot\fR to fork into the
-background; instead, it remains in the foreground.
-
-.TP
-.B \-h
-The \fB\-h\fR option prints a brief usage message and exits.
-
-.SH OPERATION
-
-\fBpppoe-relay\fR listens for incoming PPPoE PADI frames on all interfaces
-specified with \fB-B\fR or \fB-C\fR options. When a PADI frame appears,
-\fBpppoe-relay\fR adds a Relay-Session-ID tag and broadcasts the PADI
-on all interfaces specified with \fB-B\fR or \fB-S\fR options (except the
-interface on which the frame arrived.)
-
-Any PADO frames received are relayed back to the client which sent the
-PADI (assuming they contain valid Relay-Session-ID tags.) Likewise,
-PADR frames from clients are relayed back to the matching access
-concentrator.
-
-When a PADS frame is received, \fBpppoe-relay\fR enters the two peers'
-MAC addresses and session-ID's into a hash table. (The session-ID seen
-by the access concentrator may be different from that seen by the client;
-\fBpppoe-relay\fR must renumber sessions to avoid the possibility of duplicate
-session-ID's.) Whenever either peer sends a session frame, \fBpppoe-relay\fR
-looks up the session entry in the hash table and relays the frame to
-the correct peer.
-
-When a PADT frame is received, \fBpppoe-relay\fR relays it to the peer
-and deletes the session entry from its hash table.
-
-If a client and server crash (or frames are lost), PADT frames may never
-be sent, and \fBpppoe-relay\fR's hash table can fill up with stale sessions.
-Therefore, a session-cleaning routine runs periodically, and removes old
-sessions from the hash table. A session is considered "old" if no traffic
-has been seen within \fItimeout\fR seconds. When a session is deleted because
-of a timeout, a PADT frame is sent to each peer to make certain that they
-are aware the session has been killed.
-
-.SH EXAMPLE INVOCATIONS
-
-.nf
-pppoe-relay -C eth0 -S eth1
-.fi
-
-The example above relays frames between PPPoE clients on the eth0 network
-and PPPoE servers on the eth1 network.
-
-.nf
-pppoe-relay -B eth0 -B eth1
-.fi
-
-This example is a transparent relay -- frames are relayed between any mix
-of clients and servers on the eth0 and eth1 networks.
-
-.nf
-pppoe-relay -S eth0 -C eth1 -C eth2 -C eth3
-.fi
-
-This example relays frames between servers on the eth0 network and
-clients on the eth1, eth2 and eth3 networks.
-
-.SH AUTHORS
-\fBpppoe-relay\fR was written by David F. Skoll <dfs@roaringpenguin.com>.
-
-The \fBpppoe\fR home page is \fIhttp://www.roaringpenguin.com/pppoe/\fR.
-
-.SH SEE ALSO
-adsl-start(8), adsl-stop(8), adsl-connect(8), pppd(8), pppoe.conf(5),
-pppoe(8), adsl-setup(8), adsl-status(8), pppoe-sniff(8), pppoe-server(8)
-
diff --git a/mdk-stage1/rp-pppoe/man/pppoe-server.8 b/mdk-stage1/rp-pppoe/man/pppoe-server.8
deleted file mode 100644
index aacf11f1f..000000000
--- a/mdk-stage1/rp-pppoe/man/pppoe-server.8
+++ /dev/null
@@ -1,123 +0,0 @@
-.\" $Id$
-.TH PPPOE-SERVER 8 "3 July 2000"
-.\""
-.UC 4
-.SH NAME
-pppoe-server \- user-space PPPoE server
-.SH SYNOPSIS
-.B pppoe-server \fR[\fIoptions\fR]
-
-.SH DESCRIPTION
-\fBpppoe-server\fR is a user-space server for PPPoE (Point-to-Point Protocol
-over Ethernet) for Linux and other UNIX systems. \fBpppoe-server\fR works in
-concert with the \fBpppoe\fR client to respond to PPPoE discovery packets
-and set up PPPoE sessions.
-
-.SH OPTIONS
-.TP
-.B \-F
-The \fB\-F\fR option causes \fBpppoe-server\fR not to fork and become a
-daemon. The default is to fork and become a daemon.
-
-.TP
-.B \-I \fIinterface\fR
-The \fB\-I\fR option specifies the Ethernet interface to use. Under Linux,
-it is typically \fIeth0\fR or \fIeth1\fR. The interface should be "up"
-before you start \fBpppoe-server\fR, but should \fInot\fR be configured to have
-an IP address.
-
-.TP
-.B \-T \fItimeout\fR
-This option is passed directly to \fBpppoe\fR; see \fBpppoe\fR(8) for
-details.
-
-.TP
-.B \-C \fIac_name\fR
-Specifies which name to report as the access concentrator name. If not
-supplied, the host name is used.
-
-.TP
-.B \-m \fIMSS\fR
-This option is passed directly to \fBpppoe\fR; see \fBpppoe\fR(8) for
-details.
-
-.TP
-.B \-s
-This option is passed directly to \fBpppoe\fR; see \fBpppoe\fR(8) for
-details. In addition, it causes \fBpppd\fR to be invoked with the
-\fIsync\fR option.
-
-.TP
-.B \-L \fIip\fR
-Sets the local IP address. This is passed to spawned \fBpppd\fR processes.
-If not specified, the default is 10.0.0.1.
-
-.TP
-.B \-R \fIip\fR
-Sets the starting remote IP address. As sessions are established,
-IP addresses are assigned starting from \fIip\fR. \fBpppoe-server\fR
-automatically keeps track of the pool of addresses and passes a
-valid remote IP address to \fBpppd\fR. If not specified, a starting address
-of 10.67.15.1 is used.
-
-.TP
-.B \-N \fInum\fR
-Allows at most \fInum\fR concurrent PPPoE sessions. If not specified,
-the default is 64.
-
-.TP
-.B \-p \fIfname\fR
-Reads the specified file \fIfname\fR which is a text file consisting of
-one IP address per line. These IP addresses will be assigned to clients.
-The number of sessions allowed will equal the number of addresses found
-in the file. The \fB\-p\fR option overrides both \fB\-R\fR and \fB\-N\fR.
-
-.TP
-.B \-o \fIoffset\fR
-Instead of numbering PPPoE sessions starting at 1, they will be numbered
-starting at \fIoffset\fR+1. This allows you to run multiple servers on
-a given machine; just make sure that their session numbers do not
-overlap.
-
-.TP
-.B \-f disc:sess
-The \fB\-f\fR option sets the Ethernet frame types for PPPoE discovery
-and session frames. The types are specified as hexadecimal numbers
-separated by a colon. Standard PPPoE uses frame types 8863:8864.
-\fIYou should not use this option\fR unless you are absolutely sure
-the peer you are dealing with uses non-standard frame types.
-
-.TP
-.B \-h
-The \fB\-h\fR option prints a brief usage message and exits.
-
-.SH OPERATION
-
-\fBpppoe-server\fR listens for incoming PPPoE discovery packets. When
-a session is established, it spawns a \fBpppd\fR process. The following
-options are passed to \fBpppd\fR:
-
-.nf
-nodetach noaccomp nobsdcom nodeflate nopcomp novj novjccomp
-default-asyncmap
-.fi
-
-In addition, the local and remote IP address are set based on the
-\fB\-L\fR and \fB\-R\fR options. The \fBpty\fR option is supplied along
-with a \fBpppoe\fR command to initiate the PPPoE session. Finally,
-additional \fBpppd\fR options can be placed in the file
-\fB/etc/ppp/pppoe-server-options\fR (which must exist, even if it is just
-empty!)
-
-Note that \fBpppoe-server\fR is meant mainly for testing PPPoE clients.
-It is \fInot\fR a high-performance server meant for production use.
-
-.SH AUTHORS
-\fBpppoe-server\fR was written by David F. Skoll <dfs@roaringpenguin.com>.
-
-The \fBpppoe\fR home page is \fIhttp://www.roaringpenguin.com/pppoe/\fR.
-
-.SH SEE ALSO
-adsl-start(8), adsl-stop(8), adsl-connect(8), pppd(8), pppoe.conf(5),
-pppoe(8), adsl-setup(8), adsl-status(8), pppoe-sniff(8), pppoe-relay(8)
-
diff --git a/mdk-stage1/rp-pppoe/man/pppoe-sniff.8 b/mdk-stage1/rp-pppoe/man/pppoe-sniff.8
deleted file mode 100644
index 431830a22..000000000
--- a/mdk-stage1/rp-pppoe/man/pppoe-sniff.8
+++ /dev/null
@@ -1,77 +0,0 @@
-.\" $Id$
-.TH PPPOE-SNIFF 8 "3 July 2000"
-.\""
-.UC 4
-.SH NAME
-pppoe-sniff \- examine network for non-standard PPPoE frames
-.SH SYNOPSIS
-.B pppoe-sniff \fR[\fIoptions\fR]
-
-.SH DESCRIPTION
-\fBpppoe-sniff\fR listens for likely-looking PPPoE PADR and session frames
-and deduces extra options required for \fBpppoe(8)\fR to work.
-
-Some DSL providers seem to use non-standard frame types for PPPoE frames,
-and/or require a certain value in the Service-Name field. It is often
-easier to sniff those values from a machine which can successfully connect
-rather than try to pry them out of the DSL provider.
-
-To use \fBpppoe-sniff\fR, you need two computers, a DSL modem and
-an Ethernet hub (\fInot\fR an Ethernet switch.)
-
-If the DSL modem normally connects directly to your computer's
-Ethernet card, connect it to the "uplink" port on the Ethernet hub.
-Plug two computers into normal ports on the hub. On one computer, run
-whatever software the DSL provider gave you on whatever operating
-system the DSL provider supports. On the other computer, run Linux and
-log in as root.
-
-On the Linux machine, put the Ethernet interface into promiscuous mode
-and start \fBpppoe-sniff\fR. If the ethernet interface is \fIeth0\fR,
-for example, type these commands:
-
-.nf
- ifconfig eth0 promisc
- pppoe-sniff -I eth0
-.fi
-
-On the other machine, start your DSL connection as usual. After a short
-time, \fBpppoe-sniff\fR should print recommendations for the value
-of \fBPPPOE_EXTRA\fR. Set this value in \fB/etc/ppp/pppoe.conf\fR.
-If \fBpppoe-sniff\fR indicates that something special is required in
-\fBPPPOE_EXTRA\fR, please e-mail this to \fBpppoe@roaringpenguin.com\fR
-along with the name of your ISP and the manufacturer and model number of
-your DSL modem. This information will be collated and provided on the
-PPPoE web page for users who do not have two computers.
-
-After \fBpppoe-sniff\fR finishes (or you stop it if it seems hung),
-remember to turn off promiscuous mode:
-
-.nf
- ifconfig eth0 -promisc
-.fi
-
-.SH OPTIONS
-.TP
-.B \-I \fIinterface\fR
-The \fB\-I\fR option specifies the Ethernet interface to use. Under Linux,
-it is typically \fIeth0\fR or \fIeth1\fR. The interface should be "up"
-and in promiscuous mode before you start \fBpppoe-sniff\fR.
-
-.TP
-.B \-V
-The \fB\-V\fR option causes \fBpppoe-sniff\fR to print its version number and
-exit.
-
-.SH BUGS
-\fBpppoe-sniff\fR only works on Linux.
-
-.SH AUTHORS
-\fBpppoe-sniff\fR was written by David F. Skoll <dfs@roaringpenguin.com>.
-
-The \fBpppoe\fR home page is \fIhttp://www.roaringpenguin.com/pppoe/\fR.
-
-.SH SEE ALSO
-adsl-start(8), adsl-stop(8), adsl-connect(8), pppd(8), pppoe.conf(5),
-pppoe(8), adsl-setup(8), adsl-status(8), pppoe-server(8), pppoe-relay(8)
-
diff --git a/mdk-stage1/rp-pppoe/man/pppoe.8 b/mdk-stage1/rp-pppoe/man/pppoe.8
deleted file mode 100644
index 999c3d2ed..000000000
--- a/mdk-stage1/rp-pppoe/man/pppoe.8
+++ /dev/null
@@ -1,236 +0,0 @@
-.\" $Id$
-.TH PPPOE 8 "3 July 2000"
-.UC 4
-.SH NAME
-pppoe \- user-space PPPoE client.
-.SH SYNOPSIS
-.B pppd pty 'pppoe \fR[\fIpppoe_options\fR]\fB' \fR[\fIpppd_options\fR]
-.P
-.B pppoe -A \fR[\fIpppoe_options\fR]
-.SH DESCRIPTION
-\fBpppoe\fR is a user-space client for PPPoE (Point-to-Point Protocol
-over Ethernet) for Linux and other UNIX systems. \fBpppoe\fR works in
-concert with the \fBpppd\fR PPP daemon to provide a PPP connection
-over Ethernet, as is used by many ADSL service providers.
-
-.SH OPTIONS
-.TP
-.B \-I \fIinterface\fR
-The \fB\-I\fR option specifies the Ethernet interface to use. Under Linux,
-it is typically \fIeth0\fR or \fIeth1\fR. The interface should be "up"
-before you start \fBpppoe\fR, but should \fInot\fR be configured to have
-an IP address.
-
-.TP
-.B \-T \fItimeout\fR
-The \fB\-T\fR option causes \fBpppoe\fR to exit if no session traffic
-is detected for \fItimeout\fR seconds. I recommend that you use this
-option as an extra safety measure, but if you do, you should make sure
-that PPP generates enough traffic so the timeout will normally not be
-triggered. The best way to do this is to use the
-\fIlcp-echo-interval\fR option to \fBpppd\fR. You should set the
-PPPoE timeout to be about four times the LCP echo interval.
-
-.TP
-.B \-D \fIfile_name\fR
-The \fB\-D\fR option causes every packet to be dumped to the specified
-\fIfile_name\fR. This is intended for debugging only; it produces huge
-amounts of output and greatly reduces performance.
-
-.TP
-.B \-V
-The \fB\-V\fR option causes \fBpppoe\fR to print its version number and
-exit.
-
-.TP
-.B \-A
-The \fB\-A\fR option causes \fBpppoe\fR to send a PADI packet and then print
-the names of access concentrators in each PADO packet it receives. Do not
-use this option in conjunction with \fBpppd\fR; the \fB\-A\fR option is
-meant to be used interactively to give interesting information about the
-access concentrator.
-
-.TP
-.B \-S \fIservice_name\fR
-Specifies the desired service name. \fBpppoe\fR will only initiate sessions
-with access concentrators which can provide the specified service. In
-most cases, you should \fInot\fR specify this option. Use it only if you
-know that there are multiple access concentrators or know that you need a
-specific service name.
-
-.TP
-.B \-C \fIac_name\fR
-Specifies the desired access concentrator name. \fBpppoe\fR will only
-initiate sessions with the specified access concentrator. In
-most cases, you should \fInot\fR specify this option. Use it only if you
-know that there are multiple access concentrators. If both the
-\fB\-S\fR and \fB\-C\fR options are specified, they must \fIboth\fR match
-for \fBpppoe\fR to initiate a session.
-
-.TP
-.B \-U
-Causes \fBpppoe\fR to use the Host-Uniq tag in its discovery packets. This
-lets you run multiple \fBpppoe\fR daemons without having their discovery
-packets interfere with one another. You must supply this option to
-\fIall\fR \fBpppoe\fR daemons if you intend to run multiple daemons
-simultaneously.
-
-.TP
-.B \-s
-Causes \fBpppoe\fR to use \fIsynchronous\fR PPP encapsulation. If you
-use this option, then you \fImust\fR use the \fBsync\fR option with
-\fBpppd\fR. You are encouraged to use this option if it works, because
-it greatly reduces the CPU overhead of \fBpppoe\fR. However, it
-MAY be unreliable on slow machines -- there is a race condition between
-pppd writing data and pppoe reading it. For this reason, the default
-setting is asynchronous. If you encounter bugs or crashes with Synchronous
-PPP, turn it off -- don't e-mail me for support!
-
-.TP
-.B \-m \fIMSS\fR
-Causes \fBpppoe\fR to \fIclamp\fR the TCP maximum segment size at the specified
-value. Because of PPPoE overhead, the maximum segment size for PPPoE is
-smaller than for normal Ethernet encapsulation. This could cause problems
-for machines on a LAN behind a gateway using PPPoE. If you have a LAN
-behind a gateway, and the gateway connects to the Internet using PPPoE,
-you are strongly recommended to use a \fB\-m 1412\fR option. This avoids
-having to set the MTU on all the hosts on the LAN.
-
-.TP
-.B \-p \fIfile\fR
-Causes \fBpppoe\fR to write its process-ID to the specified file. This
-can be used to locate and kill \fBpppoe\fR processes.
-
-.TP
-.B \-e \fIsess:mac\fR
-Causes \fBpppoe\fR to skip the discovery phase and move directly to the
-session phase. The session is given by \fIsess\fR and the MAC address of
-the peer by \fImac\fR. This mode is \fInot\fR meant for normal use; it
-is designed only for \fBpppoe-server\fR(8).
-
-.TP
-.B \-n
-Causes \fBpppoe\fR not to open a discovery socket. This mode is
-\fInot\fR meant for normal use; it is designed only for
-\fBpppoe-server\fR(8).
-
-.TP
-.B \-k
-Causes \fBpppoe\fR to terminate an existing session by sending a PADT frame,
-and then exit. You must use the \fB\-e\fR option in conjunction with this
-option to specify the session to kill. This may be useful for killing
-sessions when a buggy peer does not realize the session has ended.
-
-.TP
-.B \-d
-Causes \fBpppoe\fR to perform discovery and then exit, after printing
-session information to standard output. The session information is printed
-in exactly the format expected by the \fB\-e\fR option. This option lets
-you initiate a PPPoE discovery, perform some other work, and then start
-the actual PPP session. \fIBe careful\fR; if you use this option in a loop,
-you can create many sessions, which may annoy your peer.
-
-.TP
-.B \-f disc:sess
-The \fB\-f\fR option sets the Ethernet frame types for PPPoE discovery
-and session frames. The types are specified as hexadecimal numbers
-separated by a colon. Standard PPPoE uses frame types 8863:8864.
-\fIYou should not use this option\fR unless you are absolutely sure
-the peer you are dealing with uses non-standard frame types. If your
-ISP uses non-standard frame types, complain!
-
-.TP
-.B \-h
-The \fB\-h\fR option causes \fBpppoe\fR to print usage information and
-exit.
-
-.SH PPPOE BACKGROUND
-
-PPPoE (Point-to-Point Protocol over Ethernet) is described in RFC 2516
-and is a protocol which allows the session abstraction to be maintained
-over bridged Ethernet networks.
-
-PPPoE works by encapsulating PPP frames in Ethernet frames. The protocol
-has two distinct stages: The \fIdiscovery\fR and the \fIsession\fR stage.
-
-In the discovery stage, the host broadcasts a special PADI (PPPoE
-Active Discovery Initiation) frame to discover any \fIaccess
-concentrators\fR. The access concentrators (typically, only one
-access concentrator) reply with PADO (PPPoE Active Discovery Offer)
-packets, announcing their presence and the services they offer. The
-host picks one of the access concentrators and transmits a PADR (PPPoE
-Active Discovery Request) packet, asking for a session. The access
-concentrator replies with a PADS (PPPoE Active Discovery
-Session-Confirmation) packet. The protocol then moves to the session stage.
-
-In the session stage, the host and access concentrator exchange PPP frames
-embedded in Ethernet frames. The normal Ethernet MTU is 1500 bytes, but
-the PPPoE overhead plus two bytes of overhead for the encapsulated PPP
-frame mean that the MTU of the PPP interface is at most 1492 bytes.
-This causes \fIall kinds of problems\fR if you are using a Linux machine
-as a firewall and interfaces behind the firewall have an MTU greater than
-1492. In fact, to be safe, I recommend setting the MTU of machines
-behind the firewall to 1412, to allow for worst-case TCP and IP options
-in their respective headers.
-
-Normally, PPP uses the Link Control Protocol (LCP) to shut down a PPP
-link. However, the PPPoE specification allows the link to be shut down
-with a special PADT (PPPoE Active Discovery Terminate) packet. This client
-recognizes this packet and will correctly terminate if a terminate request
-is received for the PPP session.
-
-.SH DESIGN GOALS
-
-My design goals for this PPPoE client were as follows, in descending order
-of importance:
-
-.TP
-.B o
-It must work.
-
-.TP
-.B o
-It must be a user-space program and not a kernel patch.
-
-.TP
-.B o
-The code must be easy to read and maintain.
-
-.TP
-.B o
-It must be fully compliant with RFC 2516, the proposed PPPoE standard.
-
-.TP
-.B o
-It must never hang up forever -- if the connection is broken, it must
-detect this and exit, allowing a wrapper script to restart the connection.
-
-.TP
-.B o
-It must be fairly efficient.
-
-.P
-I believe I have achieved all of these goals, but (of course) am open
-to suggestions, patches and ideas. See my home page,
-http://www.roaringpenguin.com, for contact information.
-
-.SH NOTES
-
-For best results, you must give \fBpppd\fR an mtu option of
-1492. I have observed problems with excessively-large frames
-unless I set this option. Also, if \fBpppoe\fR is running on a firewall
-machine, all machines behind the firewall should have MTU's of 1412.
-
-If you have problems, check your system logs. \fBpppoe\fR logs interesting
-things to syslog. You may have to turn on logging of \fIdebug\fR-level
-messages for complete diagnosis.
-
-.SH AUTHORS
-\fBpppoe\fR was written by David F. Skoll <dfs@roaringpenguin.com>,
-with much inspiration from an earlier version by Luke Stras.
-
-The \fBpppoe\fR home page is \fIhttp://www.roaringpenguin.com/pppoe/\fR.
-
-.SH SEE ALSO
-adsl-start(8), adsl-stop(8), adsl-connect(8), pppd(8), pppoe.conf(5), adsl-setup(8), adsl-status(8), pppoe-sniff(8), pppoe-server(8), pppoe-relay(8)
-
diff --git a/mdk-stage1/rp-pppoe/man/pppoe.conf.5 b/mdk-stage1/rp-pppoe/man/pppoe.conf.5
deleted file mode 100644
index 731fd98d4..000000000
--- a/mdk-stage1/rp-pppoe/man/pppoe.conf.5
+++ /dev/null
@@ -1,168 +0,0 @@
-.\" $Id$
-.\""
-.TH PPPOE.CONF 5 "21 February 2000"
-.UC 4
-.SH NAME
-pppoe.conf \- Configuration file used by \fBadsl-start\fR(8),
-\fBadsl-stop\fR(8), \fBadsl-status(8)\fR and \fBadsl-connect\fR(8).
-
-.SH DESCRIPTION
-\fB/etc/ppp/pppoe.conf\fR is a shell script which contains configuration
-information for Roaring Penguin's ADSL scripts. Note that \fBpppoe.conf\fR
-is used only by the various adsl-* shell scripts, not by \fBpppoe\fR
-itself.
-
-\fBpppoe.conf\fR consists of a sequence of shell variable assignments.
-The variables and their meanings are:
-
-.TP
-.B ETH
-The Ethernet interface connected to the ADSL modem (for example, eth0).
-
-.TP
-.B USER
-The ADSL user-id (for example, b1xxnxnx@sympatico.ca).
-
-.TP
-.B SERVICENAME
-If this is not blank, then it is passed with the \fB\-S\fR option to
-\fBpppoe\fR. It specifies a service name to ask for. Usually, you
-should leave it blank.
-
-.TP
-.B ACNAME
-If this is not blank, then it is passed with the \fB\-C\fR option to
-\fBpppoe\fR. It specifies the name of the access concentrator to connect
-to. Usually, you should leave it blank.
-
-.TP
-.B DEMAND
-If set to a number, the link is activated on demand and brought down
-after after \fBDEMAND\fR seconds. If set to \fBno\fR, the link is kept
-up all the time rather than being activated on demand.
-
-.TP
-.B DNSTYPE
-One of \fBNOCHANGE\fR, \fBSPECIFY\fR or \fBSERVER\fR. If
-set to NOCHANGE, \fBadsl-connect\fR will not adjust the DNS setup in
-any way. If set to SPECIFY, it will re-write /etc/resolv.conf with
-the values of DNS1 and DNS2. If set to \fBSERVER\fR, it will
-supply the \fIusepeerdns\fR option to \fBpppd\fR, and make a symlink
-from /etc/resolv.conf to /etc/ppp/resolv.conf.
-
-.TP
-.B DNS1, DNS2
-IP addresses of DNS servers if you use DNSTYPE=SPECIFY.
-
-.TP
-.B NONROOT
-If the line \fBNONROOT=OK\fR (exactly like that; no whitespace or comments)
-appears in the configuration file, then \fBpppoe-wrapper\fR will allow
-non-root users to bring the conneciton up or down. The wrapper is installed
-only if you installed the rp-pppoe-gui package.
-
-.TP
-.B USEPEERDNS
-If set to "yes", then \fBadsl-connect\fR will supply the \fIusepeerdns\fR
-option to \fBpppd\fR, which causes it to obtain DNS server addresses
-from the peer and create a new \fB/etc/resolv.conf\fR file. Otherwise,
-\fBadsl-connect\fR will not supply this option, and \fBpppd\fR will not
-modify \fB/etc/resolv.conf\fR.
-
-.TP
-.B CONNECT_POLL
-How often (in seconds) \fBadsl-start\fR should check to see if a new PPP
-interface has come up. If this is set to 0, the \fBadsl-start\fR simply
-initiates the PPP session, but does not wait to see if it comes up
-successfully.
-
-.TP
-.B CONNECT_TIMEOUT
-How long (in seconds) \fBadsl-start\fR should wait for a new PPP interface
-to come up before concluding that \fBadsl-connect\fR has failed and killing
-the session.
-
-.TP
-.B PING
-A character which is echoed every \fBCONNECT_POLL\fR seconds while
-\fBadsl-start\fR is waiting for the PPP interface to come up.
-
-.TP
-.B FORCEPING
-A character which is echoed every \fBCONNECT_POLL\fR seconds while
-\fBadsl-start\fR is waiting for the PPP interface to come up. Similar
-to \fBPING\fR, but the character is echoed even if \fBadsl-start\fR's
-standard output is not a tty.
-
-.TP
-.B PIDFILE
-A file in which to write the process-ID of the adsl-connect process
-(for example, \fB/var/run/pppoe.pid\fR). Two additional files
-($PIDFILE.pppd and $PIDFILE.pppoe) hold the process-ID's of the
-\fBpppd\fR and \fBpppoe\fR processes, respectively.
-
-.TP
-.B SYNCHRONOUS
-An indication of whether or not to use synchronous PPP (\fByes\fR or
-\fBno\fR). Synchronous PPP is safe on Linux machines with the n_hdlc
-line discipline. (If you have a file called "n_hdlc.o" in your
-modules directory, you have the line discipline.) It is \fInot
-recommended\fR on other machines or on Linux machines without the
-n_hdlc line discipline due to some known and unsolveable race
-conditions in a user-mode client.
-
-.TP
-.B CLAMPMSS
-The value at which to "clamp" the advertised MSS for TCP sessions. The
-default of 1412 should be fine.
-
-.TP
-.B LCP_INTERVAL
-How often (in seconds) \fBpppd\fR sends out LCP echo-request packets.
-
-.TP
-.B LCP_FAILURE
-How many unanswered LCP echo-requests must occur before \fBpppd\fR
-concludes the link is dead.
-
-.TP
-.B PPPOE_TIMEOUT
-If this many seconds elapse without any activity seen by \fBpppoe\fR,
-then \fBpppoe\fR exits.
-
-.TP
-.B FIREWALL
-One of NONE, STANDALONE or MASQUERADE. If NONE, then \fBadsl-connect\fR does
-not add any firewall rules. If STANDALONE, then it clears existing firewall
-rules and sets up basic rules for a standalone machine. If MASQUERADE, then
-it clears existing firewall rules and sets up basic rules for an Internet
-gateway. If you run services on your machine, these simple firewall scripts
-are inadequate; you'll have to make your own firewall rules and set FIREWALL
-to NONE.
-
-.TP
-.B PPPOE_EXTRA
-Any extra arguments to pass to \fBpppoe\fR
-
-.TP
-.B PPPD_EXTRA
-Any extra arguments to pass to \fBpppd\fR
-
-.TP
-.B LINUX_PLUGIN
-If non-blank, the full path of the Linux kernel-mode PPPoE plugin
-(typically \fB/etc/ppp/plugins/rp-pppoe.so\fR.) This forces
-\fBadsl-connect\fR to use kernel-mode PPPoE on Linux 2.4.x systems.
-This code is experimental and unsupported. Use of the plugin causes
-\fBadsl-connect\fR to ignore CLAMPMSS, PPPOE_EXTRA, SYNCHRONOUS and
-PPPOE_TIMEOUT.
-
-.P
-By using different configuration files with different PIDFILE
-settings, you can manage multiple PPPoE connections. Just specify the
-configuration file as an argument to \fBadsl-start\fR and \fBadsl-stop\fR.
-
-.SH SEE ALSO
-pppoe(8), adsl-connect(8), adsl-start(8), adsl-stop(8), pppd(8), adsl-setup(8),
-pppoe-wrapper(8)
-
diff --git a/mdk-stage1/rp-pppoe/rp-pppoe-gui.spec b/mdk-stage1/rp-pppoe/rp-pppoe-gui.spec
deleted file mode 100644
index 3222a602e..000000000
--- a/mdk-stage1/rp-pppoe/rp-pppoe-gui.spec
+++ /dev/null
@@ -1,98 +0,0 @@
-Summary: PPP Over Ethernet (xDSL support)
-Name: rp-pppoe-gui
-Version: 3.0
-%if %(%{expand:test %{_vendor} != mandrake ; echo $?})
-Release: 1mdk
-%else
-Release: 1
-%endif
-Copyright: GPL
-Group: System Environment/Daemons
-Source: http://www.roaringpenguin.com/pppoe/rp-pppoe-3.0.tar.gz
-Url: http://www.roaringpenguin.com/pppoe/
-Packager: David F. Skoll <dfs@roaringpenguin.com>
-BuildRoot: /tmp/pppoe-build
-Vendor: Roaring Penguin Software Inc.
-Requires: ppp >= 2.3.7
-Requires: rp-pppoe >= 3.0
-
-%description
-This is a graphical wrapper around the rp-pppoe PPPoE client. PPPoE is
-a protocol used by many DSL Internet Service Providers.
-
-%prep
-umask 022
-mkdir -p $RPM_BUILD_ROOT
-cd $RPM_BUILD_ROOT
-rm -rf $RPM_BUILD_ROOT/rp-pppoe-%{version}
-zcat $RPM_SOURCE_DIR/rp-pppoe-%{version}.tar.gz | tar xvf -
-cd $RPM_BUILD_ROOT/rp-pppoe-%{version}/src
-./configure --mandir=%{_mandir}
-
-%build
-cd $RPM_BUILD_ROOT/rp-pppoe-%{version}/gui
-make
-
-%install
-cd $RPM_BUILD_ROOT/rp-pppoe-%{version}/gui
-make install RPM_INSTALL_ROOT=$RPM_BUILD_ROOT
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-%post
-# Install entry in KDE menu
-if test -n "$KDEDIR" ; then
- mkdir -p "$KDEDIR/share/applnk/Internet"
- cat <<EOF > "$KDEDIR/share/applnk/Internet/tkpppoe.kdelnk"
-# KDE Config File
-[KDE Desktop Entry]
-Name=TkPPPoE
-Comment=Start/Stop ADSL connections
-Exec=tkpppoe
-Terminal=0
-Type=Application
-EOF
-fi
-
-# Install entry in GNOME menus
-GNOMEDIR=`gnome-config --datadir 2>/dev/null`
-if test -n "$GNOMEDIR" ; then
- mkdir -p "$GNOMEDIR/gnome/apps/Internet"
-cat <<EOF > "$GNOMEDIR/gnome/apps/Internet/tkpppoe.desktop"
-[Desktop Entry]
-Name=TkPPPoE
-Comment=Start/Stop ADSL connections
-Exec=tkpppoe
-Terminal=0
-Type=Application
-EOF
-fi
-
-%postun
-# Remove KDE menu entry
-if test -n "$KDEDIR" ; then
- rm -f "$KDEDIR/share/applnk/Internet/tkpppoe.kdelnk"
-fi
-
-# Remove GNOME menu entry
-GNOMEDIR=`gnome-config --datadir 2>/dev/null`
-if test -n "$GNOMEDIR" ; then
- rm -f "$GNOMEDIR/gnome/apps/Internet/tkpppoe.desktop"
-fi
-
-%files
-%defattr(-,root,root)
-%dir /etc/ppp/rp-pppoe-gui
-/usr/sbin/pppoe-wrapper
-/usr/bin/tkpppoe
-%{_mandir}/man1/tkpppoe.1*
-%{_mandir}/man1/pppoe-wrapper.1*
-/usr/share/rp-pppoe-gui/tkpppoe.html
-/usr/share/rp-pppoe-gui/mainwin-busy.png
-/usr/share/rp-pppoe-gui/mainwin-nonroot.png
-/usr/share/rp-pppoe-gui/mainwin.png
-/usr/share/rp-pppoe-gui/props-advanced.png
-/usr/share/rp-pppoe-gui/props-basic.png
-/usr/share/rp-pppoe-gui/props-nic.png
-/usr/share/rp-pppoe-gui/props-options.png
diff --git a/mdk-stage1/rp-pppoe/rp-pppoe.spec b/mdk-stage1/rp-pppoe/rp-pppoe.spec
deleted file mode 100644
index 622e3bb80..000000000
--- a/mdk-stage1/rp-pppoe/rp-pppoe.spec
+++ /dev/null
@@ -1,71 +0,0 @@
-Summary: PPP Over Ethernet (xDSL support)
-Name: rp-pppoe
-Version: 3.0
-%if %(%{expand:test %{_vendor} != mandrake ; echo $?})
-Release: 1mdk
-%else
-Release: 1
-%endif
-Copyright: GPL
-Group: System Environment/Daemons
-Source: http://www.roaringpenguin.com/pppoe/rp-pppoe-3.0.tar.gz
-Url: http://www.roaringpenguin.com/pppoe/
-Packager: David F. Skoll <dfs@roaringpenguin.com>
-BuildRoot: /tmp/pppoe-build
-Vendor: Roaring Penguin Software Inc.
-Requires: ppp >= 2.3.7
-
-%description
-PPPoE (Point-to-Point Protocol over Ethernet) is a protocol used by
-many ADSL Internet Service Providers. Roaring Penguin has a free
-client for Linux systems to connect to PPPoE service providers.
-
-The client is a user-mode program and does not require any kernel
-modifications. It is fully compliant with RFC 2516, the official PPPoE
-specification.
-
-%prep
-%setup
-cd src
-./configure --mandir=%{_mandir}
-
-%build
-cd src
-make
-
-%install
-cd src
-make install RPM_INSTALL_ROOT=$RPM_BUILD_ROOT
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-%files
-%defattr(-,root,root)
-%doc doc/CHANGES doc/HOW-TO-CONNECT doc/LICENSE doc/KERNEL-MODE-PPPOE README
-%config /etc/ppp/pppoe.conf
-%config /etc/ppp/pppoe-server-options
-%config /etc/ppp/firewall-masq
-%config /etc/ppp/firewall-standalone
-/etc/ppp/plugins/*
-/usr/sbin/pppoe
-/usr/sbin/pppoe-server
-/usr/sbin/pppoe-sniff
-/usr/sbin/pppoe-relay
-/usr/sbin/adsl-connect
-/usr/sbin/adsl-start
-/usr/sbin/adsl-stop
-/usr/sbin/adsl-setup
-/usr/sbin/adsl-status
-%{_mandir}/man5/pppoe.conf.5*
-%{_mandir}/man8/pppoe.8*
-%{_mandir}/man8/pppoe-server.8*
-%{_mandir}/man8/pppoe-relay.8*
-%{_mandir}/man8/pppoe-sniff.8*
-%{_mandir}/man8/adsl-connect.8*
-%{_mandir}/man8/adsl-start.8*
-%{_mandir}/man8/adsl-stop.8*
-%{_mandir}/man8/adsl-status.8*
-%{_mandir}/man8/adsl-setup.8*
-/etc/rc.d/init.d/adsl
-
diff --git a/mdk-stage1/rp-pppoe/scripts/adsl-connect.in b/mdk-stage1/rp-pppoe/scripts/adsl-connect.in
deleted file mode 100755
index 85dfb3d8d..000000000
--- a/mdk-stage1/rp-pppoe/scripts/adsl-connect.in
+++ /dev/null
@@ -1,278 +0,0 @@
-#!/bin/sh
-# @configure_input@
-#***********************************************************************
-#
-# adsl-connect
-#
-# Shell script to connect to an ADSL provider using PPPoE
-#
-# Copyright (C) 2000 Roaring Penguin Software Inc.
-#
-# $Id$
-#
-# This file may be distributed under the terms of the GNU General
-# Public License.
-#
-# Usage: adsl-connect [config_file]
-# adsl-connect interface user [config_file]
-# Second form overrides USER and ETH from config file.
-# If config_file is omitted, defaults to /etc//ppp/pppoe.conf
-#
-#***********************************************************************
-
-# From AUTOCONF
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-localstatedir=/var
-
-# Paths to programs
-IFCONFIG=/sbin/ifconfig
-PPPD=@PPPD@
-SETSID=@SETSID@
-PPPOE=@sbindir@/pppoe
-LOGGER="/usr/bin/logger -t `basename $0`"
-
-# Must be root
-if test "`@ID@ -u`" != 0 ; then
- echo "$0: You must be root to run this script" >& 2
- exit 1
-fi
-
-if test "$SETSID" != "" -a ! -x "$SETSID"; then
- SETSID=""
-fi
-
-CONFIG=/etc//ppp/pppoe.conf
-USER=""
-ETH=""
-
-# Sort out command-line arguments
-case "$#" in
- 1)
- CONFIG="$1"
- ;;
- 3)
- CONFIG="$3"
- ;;
-esac
-
-if test ! -f "$CONFIG" -o ! -r "$CONFIG" ; then
- echo "$0: Cannot read configuration file '$CONFIG'" >& 2
- exit 1
-fi
-
-. $CONFIG
-
-PPPOE_PIDFILE="$PIDFILE.pppoe"
-PPPD_PIDFILE="$PIDFILE.pppd"
-
-# Check for command-line overriding of ETH and USER
-case "$#" in
- 2|3)
- ETH="$1"
- USER="$2"
- ;;
-esac
-
-# Check that config file is sane
-if test "$USER" = "" ; then
- echo "$0: Check '$CONFIG' -- no setting for USER" >& 2
- exit 1
-fi
-if test "$ETH" = "" ; then
- echo "$0: Check '$CONFIG' -- no setting for ETH" >& 2
- exit 1
-fi
-
-PPPD_PID=0
-
-# Catch common error
-if test "$DEBUG" = "1" ; then
- echo "*** If you want to use DEBUG, invoke adsl-start, not adsl-connect."
- exit 1
-fi
-
-if test "$DEBUG" != "" ; then
- if test "$LINUX_PLUGIN" != "" ; then
- echo "Cannot use DEBUG mode and LINUX_PLUGIN at the same time."
- echo "Kernel-mode PPPoE is experimental and unsupported."
- exit 1
- fi
- echo "* The following section identifies your Ethernet interface" >> $DEBUG
- echo "* and user name. Some ISP's need 'username'; others" >> $DEBUG
- echo "* need 'username@isp.com'. Try both" >> $DEBUG
- echo "ETH=$ETH; USER=$USER" >> $DEBUG
- echo "---------------------------------------------" >> $DEBUG
-fi
-
-# MTU of Ethernet card attached to modem MUST be 1500. This apparently
-# fails on some *BSD's, so we'll only do it under Linux
-
-if test `uname -s` = Linux ; then
- $IFCONFIG $ETH up mtu 1500
- # For 2.4 kernels. Will fail on 2.2.x, but who cares?
- modprobe ppp_generic > /dev/null 2>&1
- modprobe ppp_async > /dev/null 2>&1
- modprobe ppp_synctty > /dev/null 2>&1
- if test -n "$LINUX_PLUGIN" ; then
- modprobe pppox > /dev/null 2>&1
- modprobe pppoe > /dev/null 2>&1
- fi
-fi
-
-if test "$SYNCHRONOUS" = "yes" ; then
- PPPOE_SYNC=-s
- PPPD_SYNC=sync
- # Increase the chances of it working on Linux...
- if test `uname -s` = Linux ; then
- modprobe n_hdlc > /dev/null 2>&1
- fi
-else
- PPPOE_SYNC=""
- PPPD_SYNC=""
-fi
-
-if test -n "$ACNAME" ; then
- ACNAME="-C $ACNAME"
-fi
-
-if test -n "$SERVICENAME" ; then
- SERVICENAME="-S $SERVICENAME"
-fi
-
-if test "$CLAMPMSS" = "no" ; then
- CLAMPMSS=""
-else
- CLAMPMSS="-m $CLAMPMSS"
-fi
-
-# If DNSTYPE is SERVER, we must use "usepeerdns" option to pppd.
-if test "$DNSTYPE" = "SERVER" ; then
- USEPEERDNS=yes
-fi
-
-if test "$USEPEERDNS" = "yes" ; then
- USEPEERDNS="usepeerdns"
-else
- USEPEERDNS=""
-fi
-
-# Backward config file compatibility
-if test "$DEMAND" = "" ; then
- DEMAND=no
-fi
-
-if test "$DEMAND" = "no" ; then
- DEMAND=""
-else
- DEMAND="demand persist idle $DEMAND 10.112.112.112:10.112.112.113 ipcp-accept-remote ipcp-accept-local connect true noipdefault ktune"
-fi
-
-case "$FIREWALL" in
- STANDALONE)
- . /etc/ppp/firewall-standalone
- ;;
- MASQUERADE)
- . /etc/ppp/firewall-masq
- ;;
-esac
-
-# If we're using kernel-mode PPPoE on Linux...
-if test "$LINUX_PLUGIN" != "" ; then
- PLUGIN_OPTS="plugin $LINUX_PLUGIN $ETH"
- modprobe pppoe > /dev/null 2>&1
-fi
-
-# Standard PPP options we always use
-PPP_STD_OPTIONS="$PLUGIN_OPTS noipdefault noauth default-asyncmap defaultroute hide-password nodetach $USEPEERDNS local mtu 1492 mru 1492 noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp user $USER lcp-echo-interval $LCP_INTERVAL lcp-echo-failure $LCP_FAILURE $PPPD_EXTRA"
-
-# Jigger DNS if required...
-if test "$DNSTYPE" = "SERVER" ; then
- # Sorry, dude...
- rm -f /etc/resolv.conf
- ln -s /etc/ppp/resolv.conf /etc/resolv.conf
-elif test "$DNSTYPE" = "SPECIFY" ; then
- # Sorry, dude...
- rm -f /etc/resolv.conf
- echo "nameserver $DNS1" > /etc/resolv.conf
- if test -n "$DNS2" ; then
- echo "nameserver $DNS2" >> /etc/resolv.conf
- fi
-fi
-
-# PPPoE invocation
-PPPOE_CMD="$PPPOE -p $PPPOE_PIDFILE -I $ETH -T $PPPOE_TIMEOUT -U $PPPOE_SYNC $CLAMPMSS $ACNAME $SERVICENAME $PPPOE_EXTRA"
-if test "$DEBUG" != "" ; then
- if test "$DEMAND" != "" ; then
- echo "(Turning off DEMAND for debugging purposes)"
- DEMAND=""
- fi
- echo "* The following section shows the pppd command we will invoke" >> $DEBUG
- echo "pppd invocation" >> $DEBUG
- echo "$SETSID $PPPD pty '$PPPOE_CMD' $PPP_STD_OPTIONS $PPPD_SYNC debug" >> $DEBUG
- echo "---------------------------------------------" >> $DEBUG
- $SETSID $PPPD pty "$PPPOE_CMD -D $DEBUG-0" \
- $PPP_STD_OPTIONS \
- $PPPD_SYNC \
- debug >> $DEBUG 2>&1
- echo "---------------------------------------------" >> $DEBUG
- echo "* The following section is an extract from your log." >> $DEBUG
- echo "* Look for error messages from pppd, such as" >> $DEBUG
- echo "* a lack of kernel support for PPP, authentication failure" >> $DEBUG
- echo "* etc." >> $DEBUG
- echo "Extract from /var/log/messages" >> $DEBUG
- grep 'ppp' /var/log/messages | tail -150 >> $DEBUG
- date >> $DEBUG
- echo "---------------------------------------------" >> $DEBUG
- echo "* The following section is a dump of the packets" >> $DEBUG
- echo "* sent and received by rp-pppoe. If you don't see" >> $DEBUG
- echo "* any output, it's an Ethernet driver problem. If you only" >> $DEBUG
- echo "* see three PADI packets and nothing else, check your cables" >> $DEBUG
- echo "* and modem. Make sure the modem lights flash when you try" >> $DEBUG
- echo "* to connect. Check that your Ethernet card is in" >> $DEBUG
- echo "* half-duplex, 10Mb/s mode. If all else fails," >> $DEBUG
- echo "* try using pppoe-sniff." >> $DEBUG
- echo "rp-pppoe debugging dump" >> $DEBUG
- cat $DEBUG-0 >> $DEBUG
- rm -f $DEBUG-0
- for i in 1 2 3 4 5 6 7 8 9 10 ; do
- echo ""
- echo ""
- echo ""
- done
- echo "*** Finished debugging run. Please review the file"
- echo "*** '$DEBUG' and try to"
- echo "*** figure out what is going on."
- echo "***"
- echo "*** Unfortunately, we can NO LONGER accept debugging"
- echo "*** output for analysis. Please do not send this to"
- echo "*** Roaring Penguin; it is too time-consuming for"
- echo "*** us to deal with all the analyses we have been sent."
- exit 0
-fi
-
-echo $$ > $PIDFILE
-
-while [ true ] ; do
- if test "$LINUX_PLUGIN" != "" ; then
- $SETSID $PPPD $PPP_STD_OPTIONS $DEMAND &
- echo "$!" > $PPPD_PIDFILE
- else
- $SETSID $PPPD pty "$PPPOE_CMD" \
- $PPP_STD_OPTIONS \
- $DEMAND \
- $PPPD_SYNC &
- echo "$!" > $PPPD_PIDFILE
- fi
- wait
-
- # Run /etc/ppp/adsl-lost if it exists
- test -x /etc/ppp/adsl-lost && /etc/ppp/adsl-lost
-
- # Re-establish the connection
- $LOGGER -p daemon.notice \
- "ADSL connection lost; attempting re-connection."
-
- # Wait a bit in case a problem causes tons of log messages :-)
- sleep 5
-done
diff --git a/mdk-stage1/rp-pppoe/scripts/adsl-init-suse.in b/mdk-stage1/rp-pppoe/scripts/adsl-init-suse.in
deleted file mode 100755
index 936f5fba7..000000000
--- a/mdk-stage1/rp-pppoe/scripts/adsl-init-suse.in
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/bin/sh
-#
-# adsl This script starts or stops an ADSL connection
-#
-# chkconfig: 2345 99 01
-# description: Connects to ADSL provider
-#
-# Copyright (C) 2000 Roaring Penguin Software Inc. This software may
-# be distributed under the terms of the GNU General Public License, version
-# 2 or any later version.
-# Modifed to work with SuSE 6.4 linux by Gary Cameron.
-#
-# Source function library.
-#. /etc/rc.d/init.d/functions # For red hat?
-. /etc/rc.config # For SuSE, enables setting from /etc/rc.config
-
-#Tweak this
-restart_time=120
-
-# From AUTOCONF
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-
-# Paths to programs
-START=@sbindir@/adsl-start
-STOP=@sbindir@/adsl-stop
-STATUS=@sbindir@/adsl-status
-
-test "$ADSL_START" = "yes" || exit 0
-
-# The echo return value for success (defined in /etc/rc.config).
-return=$rc_done
-case "$1" in
- start)
- echo -n "Bringing up ADSL link"
- $START > /dev/null 2>&1 || return=$rc_failed
- echo -e "$return"
- ;;
-
- stop)
- echo -n "Shutting down ADSL link"
- $STOP > /dev/null 2>&1 || return=$rc_failed
- echo -e "$return"
- ;;
-
- restart)
- $0 stop
- echo "Waiting" $restart_time "seconds for the host to reset itself"
- sleep $restart_time #Note: Need time for host to reset itself
- $0 start
- ;;
-
- status)
- $STATUS
- ;;
-
- *)
- echo "Usage: adsl {start|stop|restart|status}"
- exit 1
-esac
-
-exit 0
diff --git a/mdk-stage1/rp-pppoe/scripts/adsl-init-turbolinux.in b/mdk-stage1/rp-pppoe/scripts/adsl-init-turbolinux.in
deleted file mode 100755
index 3b22f1345..000000000
--- a/mdk-stage1/rp-pppoe/scripts/adsl-init-turbolinux.in
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/bin/sh
-#
-# adsl This script starts or stops an ADSL connection
-#
-# chkconfig: 2345 99 01
-# description: Connects to ADSL provider
-#
-# Copyright (C) 2000 Roaring Penguin Software Inc. This software may
-# be distributed under the terms of the GNU General Public License, version
-# 2 or any later version.
-
-# Source function library if it exists
-test -r /etc/rc.d/init.d/functions && . /etc/rc.d/init.d/functions
-
-# From AUTOCONF
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-
-# Paths to programs
-START=@sbindir@/adsl-start
-STOP=@sbindir@/adsl-stop
-STATUS=@sbindir@/adsl-status
-case "$1" in
- start)
- echo -n "Bringing up ADSL link: "
-
- $START
- if [ $? = 0 ] ; then
- echo success
- touch /var/lock/subsys/adsl
- else
- echo failure
- fi
- ;;
-
- stop)
- echo -n "Shutting down ADSL link: "
-
- $STOP > /dev/null 2>&1
- if [ $? = 0 ] ; then
- echo success
- rm -f /var/lock/subsys/adsl
- else
- echo failure
- fi
- ;;
-
- restart)
- $0 stop
- $0 start
- ;;
-
- status)
- $STATUS
- ;;
-
- *)
- echo "Usage: adsl {start|stop|restart|status}"
- exit 1
-esac
-
-exit 0
diff --git a/mdk-stage1/rp-pppoe/scripts/adsl-init.in b/mdk-stage1/rp-pppoe/scripts/adsl-init.in
deleted file mode 100755
index ab9146fd3..000000000
--- a/mdk-stage1/rp-pppoe/scripts/adsl-init.in
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/bin/sh
-#
-# adsl This script starts or stops an ADSL connection
-#
-# chkconfig: 2345 99 01
-# description: Connects to ADSL provider
-#
-# Copyright (C) 2000 Roaring Penguin Software Inc. This software may
-# be distributed under the terms of the GNU General Public License, version
-# 2 or any later version.
-
-# Source function library if it exists
-test -r /etc/rc.d/init.d/functions && . /etc/rc.d/init.d/functions
-
-# From AUTOCONF
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-
-# Paths to programs
-START=@sbindir@/adsl-start
-STOP=@sbindir@/adsl-stop
-STATUS=@sbindir@/adsl-status
-case "$1" in
- start)
- echo -n "Bringing up ADSL link"
-
- $START
- if [ $? = 0 ] ; then
- touch /var/lock/subsys/adsl
- echo_success
- else
- echo_failure
- fi
- echo ""
- ;;
-
- stop)
- echo -n "Shutting down ADSL link"
-
- $STOP > /dev/null 2>&1
- if [ $? = 0 ] ; then
- rm -f /var/lock/subsys/adsl
- echo_success
- else
- echo_failure
- fi
- echo ""
- ;;
-
- restart)
- $0 stop
- $0 start
- ;;
-
- status)
- $STATUS
- ;;
-
- *)
- echo "Usage: adsl {start|stop|restart|status}"
- exit 1
-esac
-
-exit 0
diff --git a/mdk-stage1/rp-pppoe/scripts/adsl-setup.in b/mdk-stage1/rp-pppoe/scripts/adsl-setup.in
deleted file mode 100755
index a8c7fa039..000000000
--- a/mdk-stage1/rp-pppoe/scripts/adsl-setup.in
+++ /dev/null
@@ -1,346 +0,0 @@
-#!/bin/sh
-#***********************************************************************
-#
-# adsl-setup
-#
-# All-purpose slicing/dicing shell script to configure rp-pppoe.
-#
-# Copyright (C) 2000 Roaring Penguin Software Inc.
-#
-# $Id$
-#***********************************************************************
-
-# From AUTOCONF
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-
-# Paths to programs
-IFCONFIG=/sbin/ifconfig
-PPPD=@PPPD@
-PPPOE=@sbindir@/pppoe
-ECHO=@ECHO@
-LOGGER="/usr/bin/logger -t `basename $0`"
-
-CONFIG=/etc/ppp/pppoe.conf
-
-# Protect created files
-umask 077
-
-copy() {
- cp $1 $2
- if [ "$?" != 0 ] ; then
- $ECHO "*** Error copying $1 to $2"
- $ECHO "*** Quitting."
- exit 1
- fi
-}
-
-$ECHO "Welcome to the Roaring Penguin ADSL client setup. First, I will run"
-$ECHO "some checks on your system to make sure the PPPoE client is installed"
-$ECHO "properly..."
-$ECHO ""
-
-# Must be root
-if [ "`@ID@ -u`" != 0 ] ; then
- $ECHO "$0: Sorry, you must be root to run this script"
- exit 1
-fi
-
-# Prototype config file must exist
-if [ ! -r "$CONFIG" ] ; then
- $ECHO "Oh, dear, I don't see the file '$CONFIG' anywhere. Please"
- $ECHO "re-install the PPPoE client."
- exit 1
-fi
-
-# Must have pppd
-if [ ! -x $PPPD ] ; then
- $ECHO "Oops, I can't execute the program '$PPPD'. You"
- $ECHO "must install the PPP software suite, version 2.3.10 or later."
- exit 1
-fi
-
-. $CONFIG
-
-if [ "$DEMAND" = "" ] ; then
- DEMAND=no
-fi
-
-# pppoe must exist
-if [ ! -x "$PPPOE" ] ; then
- $ECHO "Oh, dear, I can't execute the program '$PPPOE'. Please"
- $ECHO "re-install the rp-pppoe client."
- exit 1
-fi
-
-$ECHO "Looks good! Now, please enter some information:"
-
-while [ true ] ; do
- $ECHO ""
- $ECHO "USER NAME"
- $ECHO ""
- $ECHO -n ">>> Enter your PPPoE user name (default $USER): "
- read U
-
- if [ "$U" = "" ] ; then
- U="$USER"
- fi
-
- # Under Linux, "fix" the default interface if eth1 is not available
- if test `uname -s` = "Linux" ; then
- $IFCONFIG $ETH > /dev/null 2>&1 || ETH=eth0
- fi
- $ECHO ""
- $ECHO "INTERFACE"
- $ECHO ""
- $ECHO ">>> Enter the Ethernet interface connected to the ADSL modem"
- $ECHO "For Solaris, this is likely to be something like /dev/hme0."
- $ECHO "For Linux, it will be ethn, where 'n' is a number."
- $ECHO -n "(default $ETH): "
- read E
-
- if [ "$E" = "" ] ; then
- E="$ETH"
- fi
-
- $ECHO ""
- $ECHO "Do you want the link to come up on demand, or stay up continuously?"
- $ECHO "If you want it to come up on demand, enter the idle time in seconds"
- $ECHO "after which the link should be dropped. If you want the link to"
- $ECHO "stay up permanently, enter 'no' (two letters, lower-case.)"
- $ECHO "NOTE: Demand-activated links do not interact well with dynamic IP"
- $ECHO "addresses. You may have some problems with demand-activated links."
- $ECHO -n ">>> Enter the demand value (default $DEMAND): "
- read D
- if [ "$D" = "" ] ; then
- D=$DEMAND
- fi
-
- $ECHO ""
- $ECHO "DNS"
- $ECHO ""
- $ECHO "Please enter the IP address of your ISP's primary DNS server."
- $ECHO "If your ISP claims that 'the server will provide DNS addresses',"
- $ECHO "enter 'server' (all lower-case) here."
- $ECHO "If you just press enter, I will assume you know what you are"
- $ECHO "doing and not modify your DNS setup."
- $ECHO -n ">>> Enter the DNS information here: "
-
- read DNS1
-
-
- if [ "$DNS1" != "" ] ; then
- if [ "$DNS1" != "server" ] ; then
- $ECHO "Please enter the IP address of your ISP's secondary DNS server."
- $ECHO "If you just press enter, I will assume there is only one DNS server."
- $ECHO -n ">>> Enter the secondary DNS server address here: "
- read DNS2
- fi
- fi
-
- while [ true ] ; do
- $ECHO ""
- $ECHO "PASSWORD"
- $ECHO ""
- stty -echo
- $ECHO -n ">>> Please enter your PPPoE password: "
- read PWD1
- $ECHO ""
- $ECHO -n ">>> Please re-enter your PPPoE password: "
- read PWD2
- $ECHO ""
- stty echo
- if [ "$PWD1" = "$PWD2" ] ; then
- break
- fi
-
- $ECHO -n ">>> Sorry, the passwords do not match. Try again? (y/n)"
- read ANS
- case "$ANS" in
- N|No|NO|Non|n|no|non)
- $ECHO "OK, quitting. Bye."
- exit 1
- esac
- done
-
- # Firewalling
- $ECHO ""
- $ECHO "FIREWALLING"
- $ECHO ""
- if test `uname -s` != "Linux" ; then
- $ECHO "Sorry, firewalling is only supported under Linux. Consult"
- $ECHO "your operating system manuals for details on setting up"
- $ECHO "packet filters for your system."
- FIREWALL=NONE
- else
- $ECHO "Please choose the firewall rules to use. Note that these rules are"
- $ECHO "very basic. You are strongly encouraged to use a more sophisticated"
- $ECHO "firewall setup; however, these will provide basic security. If you"
- $ECHO "are running any servers on your machine, you must choose 'NONE' and"
- $ECHO "set up firewalling yourself. Otherwise, the firewall rules will deny"
- $ECHO "access to all standard servers like Web, e-mail, ftp, etc. If you"
- $ECHO "are using SSH, the rules will block outgoing SSH connections which"
- $ECHO "allocate a privileged source port."
- $ECHO ""
- while [ true ] ; do
- $ECHO "The firewall choices are:"
- $ECHO "0 - NONE: This script will not set any firewall rules. You are responsible"
- $ECHO " for ensuring the security of your machine. You are STRONGLY"
- $ECHO " recommended to use some kind of firewall rules."
- $ECHO "1 - STANDALONE: Appropriate for a basic stand-alone web-surfing workstation"
- $ECHO "2 - MASQUERADE: Appropriate for a machine acting as an Internet gateway"
- $ECHO " for a LAN"
- $ECHO -n ">>> Choose a type of firewall (0-2): "
- read a
- if [ "$a" = 0 -o "$a" = 1 -o "$a" = 2 ] ; then
- break
- fi
- $ECHO "Please enter a number from 0 to 2"
- done
-
- case "$a" in
- 0)
- FIREWALL=NONE
- ;;
- 1)
- FIREWALL=STANDALONE
- ;;
- 2)
- FIREWALL=MASQUERADE
- ;;
- esac
- fi
-
- $ECHO ""
- $ECHO "** Summary of what you entered **"
- $ECHO ""
- $ECHO "Ethernet Interface: $E"
- $ECHO "User name: $U"
- if [ "$D" = "no" ] ; then
- $ECHO "Activate-on-demand: No"
- else
- $ECHO "Activate-on-demand: Yes; idle timeout = $D seconds"
- fi
-
- if [ "$DNS1" != "" ] ; then
- if [ "$DNS1" = "server" ] ; then
- $ECHO "DNS addresses: Supplied by ISP's server"
- else
- $ECHO "Primary DNS: $DNS1"
- if [ "$DNS2" != "" ] ; then
- $ECHO "Secondary DNS: $DNS2"
- fi
- fi
- else
- $ECHO "DNS: Do not adjust"
- fi
- $ECHO "Firewalling: $FIREWALL"
- $ECHO ""
- while [ true ] ; do
- $ECHO -n '>>> Accept these settings and adjust configuration files (y/n)? '
- read ANS
- case "ANS" in
- Y|y|yes|Yes|oui|Oui)
- ANS=y
- ;;
- N|n|no|No|non|Non)
- ANS=n
- ;;
- esac
- if [ "$ANS" = "y" -o "$ANS" = "n" ] ; then
- break
- fi
- done
- if [ "$ANS" = "y" ] ; then
- break
- fi
-done
-
-# Adjust configuration files. First to $CONFIG
-
-$ECHO "Adjusting $CONFIG"
-
-copy $CONFIG $CONFIG-bak
-if [ "$DNS1" = "server" ] ; then
- DNSTYPE=SERVER
- DNS1=""
- USEPEERDNS=yes
-else
- USEPEERDNS=no
- if [ "$DNS1" = "" ] ; then
- DNSTYPE=NOCHANGE
- else
- DNSTYPE=SPECIFY
- fi
-fi
-
-# Where is pppd likely to put its pid?
-if [ -d /var/run ] ; then
- VARRUN=/var/run
-else
- VARRUN=/etc/ppp
-fi
-
-# Some #$(*& ISP's use a slash in the user name...
-sed -e "s&^USER=.*&USER='$U'&" \
- -e "s&^ETH=.*&ETH='$E'&" \
- -e "s&^PIDFILE=.*&PIDFILE=\"$VARRUN/\$CF_BASE-adsl.pid\"&" \
- -e "s/^FIREWALL=.*/FIREWALL=$FIREWALL/" \
- -e "s/^DEMAND=.*/DEMAND=$D/" \
- -e "s/^DNSTYPE=.*/DNSTYPE=$DNSTYPE/" \
- -e "s/^DNS1=.*/DNS1=$DNS1/" \
- -e "s/^DNS2=.*/DNS2=$DNS2/" \
- -e "s/^USEPEERDNS=.*/USEPEERDNS=$USEPEERDNS/" \
- < $CONFIG-bak > $CONFIG
-
-if [ $? != 0 ] ; then
- $ECHO "** Error modifying $CONFIG"
- $ECHO "** Quitting"
- exit 1
-fi
-
-if [ "$DNS1" != "" ] ; then
- if [ "$DNS1" != "server" ] ; then
- $ECHO "Adjusting /etc/resolv.conf"
- if [ -r /etc/resolv.conf ] ; then
- grep -s "MADE-BY-RP-PPPOE" /etc/resolv.conf > /dev/null 2>&1
- if [ "$?" != 0 ] ; then
- $ECHO " (But first backing it up to /etc/resolv.conf-bak)"
- copy /etc/resolv.conf /etc/resolv.conf-bak
- fi
- fi
- $ECHO "# MADE-BY-RP-PPPOE" > /etc/resolv.conf
- $ECHO "nameserver $DNS1" >> /etc/resolv.conf
- if [ "$DNS2" != "" ] ; then
- $ECHO "nameserver $DNS2" >> /etc/resolv.conf
- fi
- fi
-fi
-
-$ECHO "Adjusting /etc/ppp/pap-secrets and /etc/ppp/chap-secrets"
-if [ -r /etc/ppp/pap-secrets ] ; then
- $ECHO " (But first backing it up to /etc/ppp/pap-secrets-bak)"
- copy /etc/ppp/pap-secrets /etc/ppp/pap-secrets-bak
-else
- cp /dev/null /etc/ppp/pap-secrets-bak
-fi
-if [ -r /etc/ppp/chap-secrets ] ; then
- $ECHO " (But first backing it up to /etc/ppp/chap-secrets-bak)"
- copy /etc/ppp/chap-secrets /etc/ppp/chap-secrets-bak
-else
- cp /dev/null /etc/ppp/chap-secrets-bak
-fi
-
-egrep -v "^$U|^\"$U\"" /etc/ppp/pap-secrets-bak > /etc/ppp/pap-secrets
-$ECHO "\"$U\" * \"$PWD1\"" >> /etc/ppp/pap-secrets
-egrep -v "^$U|^\"$U\"" /etc/ppp/chap-secrets-bak > /etc/ppp/chap-secrets
-$ECHO "\"$U\" * \"$PWD1\"" >> /etc/ppp/chap-secrets
-
-$ECHO ""
-$ECHO ""
-$ECHO ""
-$ECHO "Congratulations, it should be all set up!"
-$ECHO ""
-$ECHO "Type 'adsl-start' to bring up your ADSL link and 'adsl-stop' to bring"
-$ECHO "it down. Type 'adsl-status' to see the link status."
-exit 0
diff --git a/mdk-stage1/rp-pppoe/scripts/adsl-start.in b/mdk-stage1/rp-pppoe/scripts/adsl-start.in
deleted file mode 100755
index 33251a851..000000000
--- a/mdk-stage1/rp-pppoe/scripts/adsl-start.in
+++ /dev/null
@@ -1,186 +0,0 @@
-#!/bin/sh
-# @configure_input@
-#***********************************************************************
-#
-# adsl-start
-#
-# Shell script to bring up an ADSL connection
-#
-# Copyright (C) 2000 Roaring Penguin Software Inc.
-#
-# $Id$
-#
-# This file may be distributed under the terms of the GNU General
-# Public License.
-#
-# Usage: adsl-start [config_file]
-# adsl-start interface user [config_file]
-# Second form overrides USER and ETH from config file.
-# If config_file is omitted, defaults to /etc/ppp/pppoe.conf
-#
-#***********************************************************************
-
-# From AUTOCONF
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-
-# Paths to programs
-CONNECT=@sbindir@/adsl-connect
-ECHO=@ECHO@
-IFCONFIG=/sbin/ifconfig
-
-# Defaults
-CONFIG=/etc/ppp/pppoe.conf
-USER=""
-ETH=""
-ME=`basename $0`
-# Must be root
-if [ "`@ID@ -u`" != 0 ] ; then
- $ECHO "$ME: You must be root to run this script" >& 2
- exit 1
-fi
-
-# Debugging
-if [ "$DEBUG" = "1" ] ; then
- $ECHO "*** Running in debug mode... please be patient..."
- DEBUG=/tmp/pppoe-debug-$$
- export DEBUG
- mkdir $DEBUG
- if [ "$?" != 0 ] ; then
- $ECHO "Could not create directory $DEBUG... exiting"
- exit 1
- fi
- DEBUG=$DEBUG/pppoe-debug.txt
-
- # Initial debug output
- $ECHO "---------------------------------------------" > $DEBUG
- $ECHO "* The following section contains information about your system" >> $DEBUG
- date >> $DEBUG
- $ECHO "Output of uname -a" >> $DEBUG
- uname -a >> $DEBUG
- $ECHO "---------------------------------------------" >> $DEBUG
- $ECHO "* The following section contains information about your network" >> $DEBUG
- $ECHO "* interfaces. The one you chose for PPPoE should contain the words:" >> $DEBUG
- $ECHO "* 'UP' and 'RUNNING'. If it does not, you probably have an Ethernet" >> $DEBUG
- $ECHO "* driver problem." >> $DEBUG
- $ECHO "Output of ifconfig -a" >> $DEBUG
- $IFCONFIG -a >> $DEBUG
- $ECHO "---------------------------------------------" >> $DEBUG
- if [ "`uname -s`" = "Linux" ] ; then
- $ECHO "* The following section contains information about kernel modules" >> $DEBUG
- $ECHO "* If the module for your Ethernet card is 'tulip', you might" >> $DEBUG
- $ECHO "* want to look for an updated version at http://www.scyld.com" >> $DEBUG
- $ECHO "Output of lsmod" >> $DEBUG
- lsmod >> $DEBUG
- $ECHO "---------------------------------------------" >> $DEBUG
- fi
- $ECHO "* The following section lists your routing table." >> $DEBUG
- $ECHO "* If you have an entry which starts with '0.0.0.0', you probably" >> $DEBUG
- $ECHO "* have defined a default route and gateway, and pppd will" >> $DEBUG
- $ECHO "* not create a default route using your ISP. Try getting" >> $DEBUG
- $ECHO "* rid of this route." >> $DEBUG
- $ECHO "Output of netstat -n -r" >> $DEBUG
- netstat -n -r >> $DEBUG
- $ECHO "---------------------------------------------" >> $DEBUG
- $ECHO "Contents of /etc/resolv.conf" >> $DEBUG
- $ECHO "* The following section lists DNS setup." >> $DEBUG
- $ECHO "* If you can browse by IP address, but not name, suspect" >> $DEBUG
- $ECHO "* a DNS problem." >> $DEBUG
- cat /etc/resolv.conf >> $DEBUG
- $ECHO "---------------------------------------------" >> $DEBUG
- $ECHO "* The following section lists /etc/ppp/options." >> $DEBUG
- $ECHO "* You should have NOTHING in that file." >> $DEBUG
- $ECHO "Contents of /etc/ppp/options" >> $DEBUG
- cat /etc/ppp/options >> $DEBUG 2>/dev/null
- $ECHO "---------------------------------------------" >> $DEBUG
-else
- DEBUG=""
-fi
-
-# Sort out command-line arguments
-case "$#" in
- 1)
- CONFIG="$1"
- ;;
- 3)
- CONFIG="$3"
- ;;
-esac
-
-if [ ! -f "$CONFIG" -o ! -r "$CONFIG" ] ; then
- $ECHO "$ME: Cannot read configuration file '$CONFIG'" >& 2
- exit 1
-fi
-
-. $CONFIG
-
-# Check for command-line overriding of ETH and USER
-case "$#" in
- 2|3)
- ETH="$1"
- USER="$2"
- ;;
-esac
-
-# Check for pidfile
-if [ -r "$PIDFILE" ] ; then
- PID=`cat "$PIDFILE"`
- # Check if still running
- kill -0 $PID > /dev/null 2>&1
- if [ $? = 0 ] ; then
- $ECHO "$ME: There already seems to be an ADSL connection up (PID $PID)" >& 2
- exit 1
- fi
- # Delete bogus PIDFILE
- rm -f "$PIDFILE" "$PIDFILE.pppd" "$PIDFILE.pppoe" "$PIDFILE.start"
-fi
-
-echo $$ > $PIDFILE.start
-
-# Start the connection in the background unless we're debugging
-if [ "$DEBUG" != "" ] ; then
- $CONNECT "$@"
- exit 0
-fi
-
-$CONNECT "$@" > /dev/null 2>&1 &
-CONNECT_PID=$!
-
-if [ "$CONNECT_TIMEOUT" = "" -o "$CONNECT_TIMEOUT" = 0 ] ; then
- exit 0
-fi
-
-# Don't monitor connection if dial-on-demand
-if [ "$DEMAND" != "" -a "$DEMAND" != "no" ] ; then
- exit 0
-fi
-
-# Monitor connection
-TIME=0
-while [ true ] ; do
- @sbindir@/adsl-status $CONFIG > /dev/null 2>&1
-
- # Looks like the interface came up
- if [ $? = 0 ] ; then
- # Print newline if standard input is a TTY
- tty -s && $ECHO " Connected!"
- exit 0
- fi
-
- if test -n "$FORCEPING" ; then
- $ECHO -n "$FORCEPING"
- else
- tty -s && $ECHO -n "$PING"
- fi
- sleep $CONNECT_POLL
- TIME=`expr $TIME + $CONNECT_POLL`
- if [ $TIME -gt $CONNECT_TIMEOUT ] ; then
- break
- fi
-done
-
-$ECHO "TIMED OUT" >& 2
-# Timed out! Kill the adsl-connect process and quit
-kill $CONNECT_PID > /dev/null 2>&1
-exit 1
-
diff --git a/mdk-stage1/rp-pppoe/scripts/adsl-status b/mdk-stage1/rp-pppoe/scripts/adsl-status
deleted file mode 100755
index 18b100ab2..000000000
--- a/mdk-stage1/rp-pppoe/scripts/adsl-status
+++ /dev/null
@@ -1,82 +0,0 @@
-#!/bin/sh
-#***********************************************************************
-#
-# adsl-status
-#
-# Shell script to report on status of ADSL connection
-#
-# Copyright (C) 2000-2001 Roaring Penguin Software Inc.
-#
-# $Id$
-#
-# This file may be distributed under the terms of the GNU General
-# Public License.
-#
-# Usage: adsl-status [config_file]
-# If config_file is omitted, defaults to /etc/ppp/pppoe.conf
-#
-#***********************************************************************
-
-# Defaults
-CONFIG=/etc/ppp/pppoe.conf
-
-case "$#" in
- 1)
- CONFIG="$1"
- ;;
-esac
-
-if [ ! -f "$CONFIG" -o ! -r "$CONFIG" ] ; then
- echo "$0: Cannot read configuration file '$CONFIG'" >& 2
- exit 1
-fi
-
-. $CONFIG
-
-PPPOE_PIDFILE="$PIDFILE.pppoe"
-PPPD_PIDFILE="$PIDFILE.pppd"
-
-if [ "$DEMAND" != "no" ] ; then
- echo "Note: You have enabled demand-connection; adsl-status may be inaccurate."
-fi
-
-# If no PPPOE_PIDFILE, connection is down, unless we're using the Linux plugin
-if [ "$LINUX_PLUGIN" = "" ] ; then
- if [ ! -r "$PPPOE_PIDFILE" ] ; then
- echo "adsl-status: Link is down (can't read pppoe PID file $PPPOE_PIDFILE)"
- exit 1
- fi
-fi
-
-# If no PPPD_PIDFILE, something fishy!
-if [ ! -r "$PPPD_PIDFILE" ] ; then
- echo "adsl-status: Link is down (can't read pppd PID file $PPPD_PIDFILE)"
- exit 1
-fi
-
-PPPD_PID=`cat "$PPPD_PIDFILE"`
-
-# Sigh. Some versions of pppd put PID files in /var/run; others put them
-# in /etc/ppp. Since it's too messy to figure out what pppd does, we
-# try both locations.
-for i in /etc/ppp/ppp*.pid /var/run/ppp*.pid ; do
- if [ -r $i ] ; then
- PID=`cat $i`
- if [ "$PID" = "$PPPD_PID" ] ; then
- IF=`basename $i .pid`
- netstat -rn | grep " ${IF}\$" > /dev/null
- # /sbin/ifconfig $IF | grep "UP.*POINTOPOINT" > /dev/null
- if [ "$?" != "0" ] ; then
- echo "adsl-status: Link is attached to $IF, but $IF is down"
- exit 1
- fi
- echo "adsl-status: Link is up and running on interface $IF"
- /sbin/ifconfig $IF
- exit 0
- fi
- fi
-done
-
-echo "adsl-status: Link is down -- could not find interface corresponding to"
-echo "pppd pid $PPPD_PID"
-exit 1 \ No newline at end of file
diff --git a/mdk-stage1/rp-pppoe/scripts/adsl-stop.in b/mdk-stage1/rp-pppoe/scripts/adsl-stop.in
deleted file mode 100755
index af0867573..000000000
--- a/mdk-stage1/rp-pppoe/scripts/adsl-stop.in
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/bin/sh
-# @configure_input@
-#***********************************************************************
-#
-# adsl-stop
-#
-# Shell script to bring down an ADSL connection
-#
-# Copyright (C) 2000 Roaring Penguin Software Inc.
-#
-# $Id$
-#
-# This file may be distributed under the terms of the GNU General
-# Public License.
-#
-# Usage: adsl-stop [config_file]
-# If config_file is omitted, defaults to /etc/ppp/pppoe.conf
-#
-#***********************************************************************
-
-ME="`basename $0`"
-LOGGER="/usr/bin/logger -t $ME"
-CONFIG="$1"
-if [ "$CONFIG" = "" ] ; then
- CONFIG=/etc/ppp/pppoe.conf
-fi
-
-if [ ! -f "$CONFIG" -o ! -r "$CONFIG" ] ; then
- echo "$ME: Cannot read configuration file '$CONFIG'" >& 2
- exit 1
-fi
-
-. $CONFIG
-
-PPPOE_PIDFILE="$PIDFILE.pppoe"
-PPPD_PIDFILE="$PIDFILE.pppd"
-STARTPID="$PIDFILE.start"
-
-# Backward config file compatibility
-if test "$DEMAND" = "" ; then
- DEMAND=no
-fi
-
-# Ignore SIGTERM
-trap "" 15
-
-# Check for pidfile
-if [ -r "$PIDFILE" ] ; then
- PID=`cat $PIDFILE`
-
- # Check if still running
- kill -0 $PID > /dev/null 2>&1
- if [ $? != 0 ] ; then
- echo "$ME: The adsl-connect script (PID $PID) appears to have died" >& 2
- fi
-
- # Kill pppd, which should in turn kill pppoe
- if [ -r "$PPPD_PIDFILE" ] ; then
- PPPD_PID=`cat "$PPPD_PIDFILE"`
- $LOGGER -p daemon.notice "Killing pppd"
- echo "Killing pppd ($PPPD_PID)"
- kill $PPPD_PID > /dev/null 2>&1 || exit 1
- fi
-
- # Kill adsl-start
- PIDS=`cat $STARTPID`
- kill -0 $PIDS > /dev/null 2>&1
- if [ $? = 0 ] ; then
- $LOGGER -p daemon.notice "Killing adsl-connect"
- kill $PIDS > /dev/null 2>&1
- fi
-
- # Kill adsl-connect
- $LOGGER -p daemon.notice "Killing adsl-connect"
- echo "Killing adsl-connect ($PID)"
- kill $PID > /dev/null 2>&1
-
- rm -f "$PIDFILE" "$PPPD_PIDFILE" "$PPPOE_PIDFILE" "$STARTPID"
-else
- echo "$ME: No ADSL connection appears to be running" >&2
- exit 1
-fi
-
-exit 0
diff --git a/mdk-stage1/rp-pppoe/src/Makefile b/mdk-stage1/rp-pppoe/src/Makefile
deleted file mode 100644
index b618e12a9..000000000
--- a/mdk-stage1/rp-pppoe/src/Makefile
+++ /dev/null
@@ -1,45 +0,0 @@
- #******************************************************************************
- #
- # Guillaume Cottenceau (gc@mandrakesoft.com)
- #
- # Copyright 2000 Mandrakesoft
- #
- # This software may be freely redistributed under the terms of the GNU
- # public license.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program; if not, write to the Free Software
- # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- #
- #*****************************************************************************
-
-top_dir = ../..
-
-include $(top_dir)/Makefile.common
-
-
-TARGETS = pppoe
-
-BINTARGET = ../../pppoe
-
-
-all: $(TARGETS)
-
-clean:
- rm -f *.o *.a $(BINTARGET) pppoe
-
-FLAGS = -Wall -Werror -Os -fomit-frame-pointer '-DPPPOE_PATH="/sbin/pppoe"' '-DPPPD_PATH="/sbin/pppd"' '-DVERSION="3.0-stg1"'
-
-ifeq (GLIBC, $(L))
-EXTRA_LDFLAGS = -static
-endif
-
-OBJS = pppoe.o if.o debug.o common.o ppp.o discovery.o
-
-pppoe: $(OBJS)
- $(DIET) gcc -o $@ $^ $(EXTRA_LDFLAGS)
- $(STRIPCMD) $@
- cp -f $@ $(BINTARGET)
-
-$(OBJS): %.o: %.c
- $(DIET) gcc $(FLAGS) $(INCLUDES) $(INCS) -c $< -o $@
diff --git a/mdk-stage1/rp-pppoe/src/Makefile.in b/mdk-stage1/rp-pppoe/src/Makefile.in
deleted file mode 100644
index 8eee012cb..000000000
--- a/mdk-stage1/rp-pppoe/src/Makefile.in
+++ /dev/null
@@ -1,257 +0,0 @@
-# @configure_input@
-#***********************************************************************
-#
-# Makefile
-#
-# Makefile for Roaring Penguin's Linux user-space PPPoE client.
-#
-# Copyright (C) 2000 Roaring Penguin Software Inc.
-#
-# This program may be distributed according to the terms of the GNU
-# General Public License, version 2 or (at your option) any later version.
-#
-# $Id$
-#***********************************************************************
-
-# Version is set ONLY IN THE MAKEFILE! Don't delete this!
-VERSION=3.0
-
-DEFINES=
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-mandir=@mandir@
-docdir=@prefix@/doc/rp-pppoe-$(VERSION)
-install=@INSTALL@
-install_dir=@INSTALL@ -d
-sbindir=@sbindir@
-
-# Plugin for pppd on Linux
-LINUX_KERNELMODE_PLUGIN=@LINUX_KERNELMODE_PLUGIN@
-PPPD_INCDIR=@PPPD_INCDIR@
-
-# PPPoE relay -- currently only supported on Linux
-PPPOE_RELAY=@PPPOE_RELAY@
-
-# Program paths
-PPPOE_PATH=$(sbindir)/pppoe
-PPPD_PATH=@PPPD@
-
-# Kernel-mode plugin gets installed here.
-PLUGIN_DIR=/etc/ppp/plugins
-PLUGIN_PATH=$(PLUGIN_DIR)/rp-pppoe.so
-
-# Configuration file paths
-PPPOESERVER_PPPD_OPTIONS=/etc/ppp/pppoe-server-options
-
-PATHS='-DPPPOE_PATH="$(PPPOE_PATH)"' '-DPPPD_PATH="$(PPPD_PATH)"' \
- '-DPLUGIN_PATH="$(PLUGIN_PATH)"' \
- '-DPPPOE_SERVER_OPTIONS="$(PPPOESERVER_PPPD_OPTIONS)"'
-
-CFLAGS= @CFLAGS@ $(DEFINES) $(PATHS)
-TARGETS=@TARGETS@
-
-all: $(TARGETS)
- @echo ""
- @echo "Type 'make install' as root to install the software."
-
-pppoe-sniff: pppoe-sniff.o if.o common.o debug.o
- @CC@ -o pppoe-sniff pppoe-sniff.o if.o common.o debug.o $(LIBS)
-
-pppoe-server: pppoe-server.o if.o debug.o common.o md5.o
- @CC@ -o pppoe-server pppoe-server.o if.o debug.o common.o md5.o $(LIBS)
-
-pppoe: pppoe.o if.o debug.o common.o ppp.o discovery.o
- @CC@ -o pppoe pppoe.o if.o debug.o common.o ppp.o discovery.o $(LIBS)
-
-pppoe-relay: relay.o if.o debug.o common.o
- @CC@ -o pppoe-relay relay.o if.o debug.o common.o $(LIBS)
-
-pppoe.o: pppoe.c pppoe.h
- @CC@ $(CFLAGS) '-DVERSION="$(VERSION)"' -c -o pppoe.o pppoe.c
-
-discovery.o: discovery.c pppoe.h
- @CC@ $(CFLAGS) '-DVERSION="$(VERSION)"' -c -o discovery.o discovery.c
-
-ppp.o: ppp.c pppoe.h
- @CC@ $(CFLAGS) '-DVERSION="$(VERSION)"' -c -o ppp.o ppp.c
-
-md5.o: md5.c md5.h
- @CC@ $(CFLAGS) '-DVERSION="$(VERSION)"' -c -o md5.o md5.c
-
-pppoe-server.o: pppoe-server.c pppoe.h
- @CC@ $(CFLAGS) '-DVERSION="$(VERSION)"' -c -o pppoe-server.o pppoe-server.c
-
-pppoe-sniff.o: pppoe-sniff.c pppoe.h
- @CC@ $(CFLAGS) '-DVERSION="$(VERSION)"' -c -o pppoe-sniff.o pppoe-sniff.c
-
-if.o: if.c pppoe.h
- @CC@ $(CFLAGS) '-DVERSION="$(VERSION)"' -c -o if.o if.c
-
-common.o: common.c pppoe.h
- @CC@ $(CFLAGS) '-DVERSION="$(VERSION)"' -c -o common.o common.c
-
-debug.o: debug.c pppoe.h
- @CC@ $(CFLAGS) '-DVERSION="$(VERSION)"' -c -o debug.o debug.c
-
-relay.o: relay.c relay.h pppoe.h
- @CC@ $(CFLAGS) '-DVERSION="$(VERSION)"' -c -o relay.o relay.c
-
-# Linux-specific plugin
-rp-pppoe.so: plugin/libplugin.a plugin/plugin.o
- @CC@ -o rp-pppoe.so -shared plugin/plugin.o plugin/libplugin.a
-
-plugin/plugin.o: plugin.c
- @CC@ '-DVERSION="$(VERSION)"' -I$(PPPD_INCDIR) -c -o plugin/plugin.o -fPIC plugin.c
-
-plugin/libplugin.a: plugin/discovery.o plugin/if.o plugin/common.o plugin/debug.o
- ar -rc $@ $^
-
-plugin/discovery.o: discovery.c
- @CC@ $(CFLAGS) '-DVERSION="$(VERSION)"' -c -o plugin/discovery.o -fPIC discovery.c
-
-plugin/if.o: if.c
- @CC@ $(CFLAGS) '-DVERSION="$(VERSION)"' -c -o plugin/if.o -fPIC if.c
-
-plugin/debug.o: debug.c
- @CC@ $(CFLAGS) '-DVERSION="$(VERSION)"' -c -o plugin/debug.o -fPIC debug.c
-
-plugin/common.o: common.c
- @CC@ $(CFLAGS) '-DVERSION="$(VERSION)"' -c -o plugin/common.o -fPIC common.c
-
-install: all
- -mkdir -p $(RPM_INSTALL_ROOT)$(sbindir)
- $(install) -m 755 -s pppoe $(RPM_INSTALL_ROOT)$(sbindir)
- $(install) -m 755 -s pppoe-server $(RPM_INSTALL_ROOT)$(sbindir)
- if test -x pppoe-relay ; then $(install) -m 755 -s pppoe-relay $(RPM_INSTALL_ROOT)$(sbindir); fi
- $(install) -m 755 -s pppoe-sniff $(RPM_INSTALL_ROOT)$(sbindir)
- $(install) -m 755 ../scripts/adsl-connect $(RPM_INSTALL_ROOT)$(sbindir)
- $(install) -m 755 ../scripts/adsl-start $(RPM_INSTALL_ROOT)$(sbindir)
- $(install) -m 755 ../scripts/adsl-status $(RPM_INSTALL_ROOT)$(sbindir)
- $(install) -m 755 ../scripts/adsl-stop $(RPM_INSTALL_ROOT)$(sbindir)
- $(install) -m 755 ../scripts/adsl-setup $(RPM_INSTALL_ROOT)$(sbindir)
- -mkdir -p $(RPM_INSTALL_ROOT)$(docdir)
- $(install) -m 644 ../doc/CHANGES $(RPM_INSTALL_ROOT)$(docdir)
- $(install) -m 644 ../doc/KERNEL-MODE-PPPOE $(RPM_INSTALL_ROOT)$(docdir)
- $(install) -m 644 ../doc/HOW-TO-CONNECT $(RPM_INSTALL_ROOT)$(docdir)
- $(install) -m 644 ../doc/LICENSE $(RPM_INSTALL_ROOT)$(docdir)
- $(install) -m 644 ../README $(RPM_INSTALL_ROOT)$(docdir)
- $(install) -m 644 ../configs/pap-secrets $(RPM_INSTALL_ROOT)$(docdir)
- -mkdir -p $(RPM_INSTALL_ROOT)$(mandir)/man8
- for i in $(TARGETS) ; do \
- if test -f ../man/$$i.8 ; then \
- $(install) -m 644 ../man/$$i.8 $(RPM_INSTALL_ROOT)$(mandir)/man8 || exit 1; \
- fi; \
- done
- $(install) -m 644 ../man/adsl-start.8 $(RPM_INSTALL_ROOT)$(mandir)/man8
- $(install) -m 644 ../man/adsl-stop.8 $(RPM_INSTALL_ROOT)$(mandir)/man8
- $(install) -m 644 ../man/adsl-status.8 $(RPM_INSTALL_ROOT)$(mandir)/man8
- $(install) -m 644 ../man/adsl-connect.8 $(RPM_INSTALL_ROOT)$(mandir)/man8
- $(install) -m 644 ../man/adsl-setup.8 $(RPM_INSTALL_ROOT)$(mandir)/man8
- -mkdir -p $(RPM_INSTALL_ROOT)$(mandir)/man5
- $(install) -m 644 ../man/pppoe.conf.5 $(RPM_INSTALL_ROOT)$(mandir)/man5
- -mkdir -p $(RPM_INSTALL_ROOT)/etc/ppp
- -mkdir -p $(RPM_INSTALL_ROOT)$(PLUGIN_DIR)
- -echo "# Directory created by rp-pppoe for kernel-mode plugin" > $(RPM_INSTALL_ROOT)$(PLUGIN_DIR)/README
- @if test -r rp-pppoe.so; then $(install) -m 755 rp-pppoe.so $(RPM_INSTALL_ROOT)$(PLUGIN_DIR); fi
- @for i in pppoe.conf firewall-standalone firewall-masq ; do \
- if [ ! -f $(RPM_INSTALL_ROOT)/etc/ppp/$$i ] ; then \
- $(install) -m 644 ../configs/$$i $(RPM_INSTALL_ROOT)/etc/ppp ; \
- else \
- echo "NOT overwriting existing $(RPM_INSTALL_ROOT)/etc/ppp/$$i" ;\
- $(install) -m 644 ../configs/$$i $(RPM_INSTALL_ROOT)/etc/ppp/$$i-$(VERSION) ;\
- fi ;\
- done
- @if [ ! -f $(RPM_INSTALL_ROOT)$(PPPOESERVER_PPPD_OPTIONS) ] ; then \
- $(install) -m 644 ../configs/pppoe-server-options $(RPM_INSTALL_ROOT)$(PPPOESERVER_PPPD_OPTIONS) ; \
- else \
- echo "NOT overwriting existing $(RPM_INSTALL_ROOT)$(PPPOESERVER_PPPD_OPTIONS)"; \
- $(install) -m 644 ../configs/pppoe-server-options $(RPM_INSTALL_ROOT)$(PPPOESERVER_PPPD_OPTIONS)-example ; \
- fi
- @if [ -f /etc/redhat-release ] ; then \
- echo "Looks like a Red Hat system; installing $(RPM_INSTALL_ROOT)/etc/rc.d/init.d/adsl" ; \
- mkdir -p $(RPM_INSTALL_ROOT)/etc/rc.d/init.d ;\
- $(install) -m 755 ../scripts/adsl-init $(RPM_INSTALL_ROOT)/etc/rc.d/init.d/adsl ; \
- fi
- @if [ -f /etc/turbolinux-release ] ; then \
- echo "Looks like a TurboLinux system; installing $(RPM_INSTALL_ROOT)/etc/rc.d/init.d/adsl" ; \
- mkdir -p $(RPM_INSTALL_ROOT)/etc/rc.d/init.d ;\
- $(install) -m 755 adsl-init-turbolinux $(RPM_INSTALL_ROOT)/etc/rc.d/init.d/adsl ; \
- fi
- @if [ -f /etc/SuSE-release ] ; then \
- echo "Looks like a SuSE Linux system; installing $(RPM_INSTALL_ROOT)/etc/rc.d/init.d/adsl" ; \
- mkdir -p $(RPM_INSTALL_ROOT)/etc/rc.d/init.d ;\
- $(install) -m 755 ../scripts/adsl-init-suse $(RPM_INSTALL_ROOT)/etc/rc.d/init.d/adsl ; \
- fi
- @echo ""
- @echo "Type 'adsl-setup' to configure the software."
-
-distro:
- cd ..; \
- rm -rf rp-pppoe-$(VERSION) ; \
- mkdir rp-pppoe-$(VERSION) || exit 1; \
- for i in README go go-gui rp-pppoe.spec rp-pppoe-gui.spec; do \
- cp $$i rp-pppoe-$(VERSION) || exit 1; \
- done ; \
- mkdir rp-pppoe-$(VERSION)/gui || exit 1; \
- for i in Makefile.in tkpppoe.in wrapper.c tkpppoe.1 pppoe-wrapper.1 ; do \
- cp gui/$$i rp-pppoe-$(VERSION)/gui || exit 1; \
- done; \
- mkdir rp-pppoe-$(VERSION)/gui/html || exit 1; \
- for i in mainwin-busy.png mainwin-nonroot.png mainwin.png props-advanced.png props-basic.png props-nic.png props-options.png tkpppoe.html ; do \
- cp gui/html/$$i rp-pppoe-$(VERSION)/gui/html || exit 1; \
- done; \
- mkdir rp-pppoe-$(VERSION)/configs || exit 1; \
- for i in firewall-masq firewall-standalone pap-secrets pppoe-server-options pppoe.conf ; do \
- cp configs/$$i rp-pppoe-$(VERSION)/configs || exit 1; \
- done ; \
- mkdir rp-pppoe-$(VERSION)/doc || exit 1; \
- for i in CHANGES KERNEL-MODE-PPPOE HOW-TO-CONNECT LICENSE PROBLEMS ; do \
- cp doc/$$i rp-pppoe-$(VERSION)/doc || exit 1; \
- done; \
- mkdir rp-pppoe-$(VERSION)/man || exit 1; \
- for i in adsl-connect.8 adsl-setup.8 adsl-start.8 adsl-status.8 adsl-stop.8 pppoe-server.8 pppoe-sniff.8 pppoe.8 pppoe-relay.8 pppoe.conf.5 ; do \
- cp man/$$i rp-pppoe-$(VERSION)/man || exit 1; \
- done; \
- mkdir rp-pppoe-$(VERSION)/scripts || exit 1; \
- for i in adsl-connect.in adsl-init-suse.in adsl-init-turbolinux.in adsl-init.in adsl-setup.in adsl-start.in adsl-stop.in adsl-status ; do \
- cp scripts/$$i rp-pppoe-$(VERSION)/scripts || exit 1; \
- done; \
- mkdir rp-pppoe-$(VERSION)/src || exit 1; \
- for i in Makefile.in install-sh common.c config.h.in configure configure.in debug.c discovery.c if.c md5.c md5.h ppp.c pppoe-server.c pppoe-sniff.c pppoe.c pppoe.h plugin.c relay.c relay.h ; do \
- cp src/$$i rp-pppoe-$(VERSION)/src || exit 1; \
- done; \
- mkdir rp-pppoe-$(VERSION)/src/plugin || exit 1; \
- tar cvf rp-pppoe-$(VERSION).tar rp-pppoe-$(VERSION)/* ; \
- gzip -f -v -9 rp-pppoe-$(VERSION).tar ; \
-
-rpms: distro
- cp ../rp-pppoe-$(VERSION).tar.gz /usr/src/redhat/SOURCES
- cd ..; \
- rpm -ba rp-pppoe.spec; \
- rpm -ba rp-pppoe-gui.spec
-
-clean:
- rm -f *.o pppoe pppoe-sniff pppoe-server core rp-pppoe.so plugin/*.o plugin/libplugin.a *~
-
-distclean: clean
- rm -f Makefile config.h config.cache config.log config.status
- rm -f ../scripts/adsl-connect ../scripts/adsl-start ../scripts/adsl-stop ../scripts/adsl-init ../scripts/adsl-setup ../scripts/adsl-init-suse ../scripts/adsl-init-turbolinux
-
-update-version:
- sed -e 's/^Version: .*$$/Version: $(VERSION)/' ../rp-pppoe.spec > ../rp-pppoe.spec.new && mv ../rp-pppoe.spec.new ../rp-pppoe.spec
- sed -e 's+^Source: .*$$+Source: http://www.roaringpenguin.com/pppoe/rp-pppoe-$(VERSION).tar.gz+' ../rp-pppoe.spec > ../rp-pppoe.spec.new && mv ../rp-pppoe.spec.new ../rp-pppoe.spec
- sed -e 's/^Version: .*$$/Version: $(VERSION)/' ../rp-pppoe-gui.spec > ../rp-pppoe-gui.spec.new && mv ../rp-pppoe-gui.spec.new ../rp-pppoe-gui.spec
- sed -e 's+^Source: .*$$+Source: http://www.roaringpenguin.com/pppoe/rp-pppoe-$(VERSION).tar.gz+' ../rp-pppoe-gui.spec > ../rp-pppoe-gui.spec.new && mv ../rp-pppoe-gui.spec.new ../rp-pppoe-gui.spec
- sed -e 's+^Requires: rp-pppoe >=.*$$+Requires: rp-pppoe >= $(VERSION)+' ../rp-pppoe-gui.spec > ../rp-pppoe-gui.spec.new && mv ../rp-pppoe-gui.spec.new ../rp-pppoe-gui.spec
-
-# Convenience target for David! Don't try to use this one.
-km:
- ./configure --enable-plugin=/home/dfs/Archive/PPP/ppp-2.4.0.pppoe4-patched-dfs
-
-.PHONY: update-version
-
-.PHONY: clean
-
-.PHONY: distclean
-
-.PHONY: rpms
diff --git a/mdk-stage1/rp-pppoe/src/common.c b/mdk-stage1/rp-pppoe/src/common.c
deleted file mode 100644
index b6e43996b..000000000
--- a/mdk-stage1/rp-pppoe/src/common.c
+++ /dev/null
@@ -1,485 +0,0 @@
-/***********************************************************************
-*
-* common.c
-*
-* Implementation of user-space PPPoE redirector for Linux.
-*
-* Common functions used by PPPoE client and server
-*
-* Copyright (C) 2000 by Roaring Penguin Software Inc.
-*
-* This program may be distributed according to the terms of the GNU
-* General Public License, version 2 or (at your option) any later version.
-*
-***********************************************************************/
-
-static char const RCSID[] =
-"$Id$";
-
-#include "pppoe.h"
-
-#ifdef HAVE_SYSLOG_H
-#include <syslog.h>
-#endif
-
-#include <string.h>
-#include <errno.h>
-#include <stdlib.h>
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-/**********************************************************************
-*%FUNCTION: parsePacket
-*%ARGUMENTS:
-* packet -- the PPPoE discovery packet to parse
-* func -- function called for each tag in the packet
-* extra -- an opaque data pointer supplied to parsing function
-*%RETURNS:
-* 0 if everything went well; -1 if there was an error
-*%DESCRIPTION:
-* Parses a PPPoE discovery packet, calling "func" for each tag in the packet.
-* "func" is passed the additional argument "extra".
-***********************************************************************/
-int
-parsePacket(PPPoEPacket *packet, ParseFunc *func, void *extra)
-{
- UINT16_t len = ntohs(packet->length);
- unsigned char *curTag;
- UINT16_t tagType, tagLen;
-
- if (packet->ver != 1) {
- syslog(LOG_ERR, "Invalid PPPoE version (%d)", (int) packet->ver);
- return -1;
- }
- if (packet->type != 1) {
- syslog(LOG_ERR, "Invalid PPPoE type (%d)", (int) packet->type);
- return -1;
- }
-
- /* Do some sanity checks on packet */
- if (len > ETH_DATA_LEN - 6) { /* 6-byte overhead for PPPoE header */
- syslog(LOG_ERR, "Invalid PPPoE packet length (%u)", len);
- return -1;
- }
-
- /* Step through the tags */
- curTag = packet->payload;
- while(curTag - packet->payload < len) {
- /* Alignment is not guaranteed, so do this by hand... */
- tagType = (((UINT16_t) curTag[0]) << 8) +
- (UINT16_t) curTag[1];
- tagLen = (((UINT16_t) curTag[2]) << 8) +
- (UINT16_t) curTag[3];
- if (tagType == TAG_END_OF_LIST) {
- return 0;
- }
- if ((curTag - packet->payload) + tagLen + TAG_HDR_SIZE > len) {
- syslog(LOG_ERR, "Invalid PPPoE tag length (%u)", tagLen);
- return -1;
- }
- func(tagType, tagLen, curTag+TAG_HDR_SIZE, extra);
- curTag = curTag + TAG_HDR_SIZE + tagLen;
- }
- return 0;
-}
-
-/**********************************************************************
-*%FUNCTION: findTag
-*%ARGUMENTS:
-* packet -- the PPPoE discovery packet to parse
-* type -- the type of the tag to look for
-* tag -- will be filled in with tag contents
-*%RETURNS:
-* A pointer to the tag if one of the specified type is found; NULL
-* otherwise.
-*%DESCRIPTION:
-* Looks for a specific tag type.
-***********************************************************************/
-unsigned char *
-findTag(PPPoEPacket *packet, UINT16_t type, PPPoETag *tag)
-{
- UINT16_t len = ntohs(packet->length);
- unsigned char *curTag;
- UINT16_t tagType, tagLen;
-
- if (packet->ver != 1) {
- syslog(LOG_ERR, "Invalid PPPoE version (%d)", (int) packet->ver);
- return NULL;
- }
- if (packet->type != 1) {
- syslog(LOG_ERR, "Invalid PPPoE type (%d)", (int) packet->type);
- return NULL;
- }
-
- /* Do some sanity checks on packet */
- if (len > ETH_DATA_LEN - 6) { /* 6-byte overhead for PPPoE header */
- syslog(LOG_ERR, "Invalid PPPoE packet length (%u)", len);
- return NULL;
- }
-
- /* Step through the tags */
- curTag = packet->payload;
- while(curTag - packet->payload < len) {
- /* Alignment is not guaranteed, so do this by hand... */
- tagType = (((UINT16_t) curTag[0]) << 8) +
- (UINT16_t) curTag[1];
- tagLen = (((UINT16_t) curTag[2]) << 8) +
- (UINT16_t) curTag[3];
- if (tagType == TAG_END_OF_LIST) {
- return NULL;
- }
- if ((curTag - packet->payload) + tagLen + TAG_HDR_SIZE > len) {
- syslog(LOG_ERR, "Invalid PPPoE tag length (%u)", tagLen);
- return NULL;
- }
- if (tagType == type) {
- memcpy(tag, curTag, tagLen + TAG_HDR_SIZE);
- return curTag;
- }
- curTag = curTag + TAG_HDR_SIZE + tagLen;
- }
- return NULL;
-}
-
-/**********************************************************************
-*%FUNCTION: printErr
-*%ARGUMENTS:
-* str -- error message
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Prints a message to stderr and syslog.
-***********************************************************************/
-void
-printErr(char const *str)
-{
- fprintf(stderr, "pppoe: %s\n", str);
- syslog(LOG_ERR, "%s", str);
-}
-
-
-/**********************************************************************
-*%FUNCTION: strDup
-*%ARGUMENTS:
-* str -- string to copy
-*%RETURNS:
-* A malloc'd copy of str. Exits if malloc fails.
-***********************************************************************/
-char *
-strDup(char const *str)
-{
- char *copy = malloc(strlen(str)+1);
- if (!copy) {
- rp_fatal("strdup failed");
- }
- strcpy(copy, str);
- return copy;
-}
-
-/**********************************************************************
-*%FUNCTION: computeTCPChecksum
-*%ARGUMENTS:
-* ipHdr -- pointer to IP header
-* tcpHdr -- pointer to TCP header
-*%RETURNS:
-* The computed TCP checksum
-***********************************************************************/
-UINT16_t
-computeTCPChecksum(unsigned char *ipHdr, unsigned char *tcpHdr)
-{
- UINT32_t sum = 0;
- UINT16_t count = ipHdr[2] * 256 + ipHdr[3];
- unsigned char *addr = tcpHdr;
- unsigned char pseudoHeader[12];
-
- /* Count number of bytes in TCP header and data */
- count -= (ipHdr[0] & 0x0F) * 4;
-
- memcpy(pseudoHeader, ipHdr+12, 8);
- pseudoHeader[8] = 0;
- pseudoHeader[9] = ipHdr[9];
- pseudoHeader[10] = (count >> 8) & 0xFF;
- pseudoHeader[11] = (count & 0xFF);
-
- /* Checksum the pseudo-header */
- sum += * (UINT16_t *) pseudoHeader;
- sum += * ((UINT16_t *) (pseudoHeader+2));
- sum += * ((UINT16_t *) (pseudoHeader+4));
- sum += * ((UINT16_t *) (pseudoHeader+6));
- sum += * ((UINT16_t *) (pseudoHeader+8));
- sum += * ((UINT16_t *) (pseudoHeader+10));
-
- /* Checksum the TCP header and data */
- while (count > 1) {
- sum += * (UINT16_t *) addr;
- addr += 2;
- count -= 2;
- }
- if (count > 0) {
- sum += *addr;
- }
-
- while(sum >> 16) {
- sum = (sum & 0xffff) + (sum >> 16);
- }
- return (UINT16_t) (~sum & 0xFFFF);
-}
-
-/**********************************************************************
-*%FUNCTION: clampMSS
-*%ARGUMENTS:
-* packet -- PPPoE session packet
-* dir -- either "incoming" or "outgoing"
-* clampMss -- clamp value
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Clamps MSS option if TCP SYN flag is set.
-***********************************************************************/
-void
-clampMSS(PPPoEPacket *packet, char const *dir, int clampMss)
-{
- unsigned char *tcpHdr;
- unsigned char *ipHdr;
- unsigned char *opt;
- unsigned char *endHdr;
- unsigned char *mssopt = NULL;
- UINT16_t csum;
-
- int len;
-
- /* Is it IPv4? */
- if (packet->payload[0] != 0x00 ||
- packet->payload[1] != 0x21) {
- /* Nope, ignore it */
- return;
- }
-
- ipHdr = packet->payload + 2;
-
- /* Is it too short? */
- len = (int) ntohs(packet->length);
- if (len < 42) {
- /* 20 byte IP header; 20 byte TCP header; 2 byte PPP protocol */
- return;
- }
-
- /* Verify once more that it's IPv4 */
- if ((ipHdr[0] & 0xF0) != 0x40) {
- return;
- }
-
- /* Is it a fragment that's not at the beginning of the packet? */
- if ((ipHdr[6] & 0x1F) || ipHdr[7]) {
- /* Yup, don't touch! */
- return;
- }
- /* Is it TCP? */
- if (ipHdr[9] != 0x06) {
- return;
- }
-
- /* Get start of TCP header */
- tcpHdr = ipHdr + (ipHdr[0] & 0x0F) * 4;
-
- /* Is SYN set? */
- if (!(tcpHdr[13] & 0x02)) {
- return;
- }
-
- /* Compute and verify TCP checksum -- do not touch a packet with a bad
- checksum */
- csum = computeTCPChecksum(ipHdr, tcpHdr);
- if (csum) {
- syslog(LOG_ERR, "Bad TCP checksum %x", (unsigned int) csum);
-
- /* Upper layers will drop it */
- return;
- }
-
- /* Look for existing MSS option */
- endHdr = tcpHdr + ((tcpHdr[12] & 0xF0) >> 2);
- opt = tcpHdr + 20;
- while (opt < endHdr) {
- if (!*opt) break; /* End of options */
- switch(*opt) {
- case 1:
- opt++;
- break;
-
- case 2:
- if (opt[1] != 4) {
- /* Something fishy about MSS option length. */
- syslog(LOG_ERR,
- "Bogus length for MSS option (%u) from %u.%u.%u.%u",
- (unsigned int) opt[1],
- (unsigned int) ipHdr[12],
- (unsigned int) ipHdr[13],
- (unsigned int) ipHdr[14],
- (unsigned int) ipHdr[15]);
- return;
- }
- mssopt = opt;
- break;
- default:
- if (opt[1] < 2) {
- /* Someone's trying to attack us? */
- syslog(LOG_ERR,
- "Bogus TCP option length (%u) from %u.%u.%u.%u",
- (unsigned int) opt[1],
- (unsigned int) ipHdr[12],
- (unsigned int) ipHdr[13],
- (unsigned int) ipHdr[14],
- (unsigned int) ipHdr[15]);
- return;
- }
- opt += (opt[1]);
- break;
- }
- /* Found existing MSS option? */
- if (mssopt) break;
- }
-
- /* If MSS exists and it's low enough, do nothing */
- if (mssopt) {
- unsigned mss = mssopt[2] * 256 + mssopt[3];
- if (mss <= clampMss) {
- return;
- }
-
- mssopt[2] = (((unsigned) clampMss) >> 8) & 0xFF;
- mssopt[3] = ((unsigned) clampMss) & 0xFF;
- } else {
- /* No MSS option. Don't add one; we'll have to use 536. */
- return;
- }
-
- /* Recompute TCP checksum */
- tcpHdr[16] = 0;
- tcpHdr[17] = 0;
- csum = computeTCPChecksum(ipHdr, tcpHdr);
- (* (UINT16_t *) (tcpHdr+16)) = csum;
-}
-
-/***********************************************************************
-*%FUNCTION: sendPADT
-*%ARGUMENTS:
-* conn -- PPPoE connection
-* msg -- if non-NULL, extra error message to include in PADT packet.
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Sends a PADT packet
-***********************************************************************/
-void
-sendPADT(PPPoEConnection *conn, char const *msg)
-{
- PPPoEPacket packet;
- unsigned char *cursor = packet.payload;
-
- UINT16_t plen = 0;
-
- /* Do nothing if no session established yet */
- if (!conn->session) return;
-
- /* Do nothing if no discovery socket */
- if (conn->discoverySocket < 0) return;
-
- memcpy(packet.ethHdr.h_dest, conn->peerEth, ETH_ALEN);
- memcpy(packet.ethHdr.h_source, conn->myEth, ETH_ALEN);
-
- packet.ethHdr.h_proto = htons(Eth_PPPOE_Discovery);
- packet.ver = 1;
- packet.type = 1;
- packet.code = CODE_PADT;
- packet.session = conn->session;
-
- /* Reset Session to zero so there is no possibility of
- recursive calls to this function by any signal handler */
- conn->session = 0;
-
- /* If we're using Host-Uniq, copy it over */
- if (conn->useHostUniq) {
- PPPoETag hostUniq;
- pid_t pid = getpid();
- hostUniq.type = htons(TAG_HOST_UNIQ);
- hostUniq.length = htons(sizeof(pid));
- memcpy(hostUniq.payload, &pid, sizeof(pid));
- memcpy(cursor, &hostUniq, sizeof(pid) + TAG_HDR_SIZE);
- cursor += sizeof(pid) + TAG_HDR_SIZE;
- plen += sizeof(pid) + TAG_HDR_SIZE;
- }
-
- /* Copy error message */
- if (msg) {
- PPPoETag err;
- size_t elen = strlen(msg);
- err.type = htons(TAG_GENERIC_ERROR);
- err.length = htons(elen);
- strcpy((char *)err.payload, msg);
- memcpy(cursor, &err, elen + TAG_HDR_SIZE);
- cursor += elen + TAG_HDR_SIZE;
- plen += elen + TAG_HDR_SIZE;
- }
-
- /* Copy cookie and relay-ID if needed */
- if (conn->cookie.type) {
- CHECK_ROOM(cursor, packet.payload,
- ntohs(conn->cookie.length) + TAG_HDR_SIZE);
- memcpy(cursor, &conn->cookie, ntohs(conn->cookie.length) + TAG_HDR_SIZE);
- cursor += ntohs(conn->cookie.length) + TAG_HDR_SIZE;
- plen += ntohs(conn->cookie.length) + TAG_HDR_SIZE;
- }
-
- if (conn->relayId.type) {
- CHECK_ROOM(cursor, packet.payload,
- ntohs(conn->relayId.length) + TAG_HDR_SIZE);
- memcpy(cursor, &conn->relayId, ntohs(conn->relayId.length) + TAG_HDR_SIZE);
- cursor += ntohs(conn->relayId.length) + TAG_HDR_SIZE;
- plen += ntohs(conn->relayId.length) + TAG_HDR_SIZE;
- }
-
- packet.length = htons(plen);
- sendPacket(conn, conn->discoverySocket, &packet, (int) (plen + HDR_SIZE));
- if (conn->debugFile) {
- dumpPacket(conn->debugFile, &packet, "SENT");
- fprintf(conn->debugFile, "\n");
- fflush(conn->debugFile);
- }
- syslog(LOG_INFO,"Sent PADT");
-}
-
-/**********************************************************************
-*%FUNCTION: parseLogErrs
-*%ARGUMENTS:
-* type -- tag type
-* len -- tag length
-* data -- tag data
-* extra -- extra user data
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Picks error tags out of a packet and logs them.
-***********************************************************************/
-void
-parseLogErrs(UINT16_t type, UINT16_t len, unsigned char *data,
- void *extra)
-{
- switch(type) {
- case TAG_SERVICE_NAME_ERROR:
- syslog(LOG_ERR, "PADT: Service-Name-Error: %.*s", (int) len, data);
- fprintf(stderr, "PADT: Service-Name-Error: %.*s\n", (int) len, data);
- break;
- case TAG_AC_SYSTEM_ERROR:
- syslog(LOG_ERR, "PADT: System-Error: %.*s", (int) len, data);
- fprintf(stderr, "PADT: System-Error: %.*s\n", (int) len, data);
- break;
- case TAG_GENERIC_ERROR:
- syslog(LOG_ERR, "PADT: Generic-Error: %.*s", (int) len, data);
- fprintf(stderr, "PADT: Generic-Error: %.*s\n", (int) len, data);
- break;
- }
-}
-
diff --git a/mdk-stage1/rp-pppoe/src/config.h b/mdk-stage1/rp-pppoe/src/config.h
deleted file mode 100644
index e3adf4353..000000000
--- a/mdk-stage1/rp-pppoe/src/config.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/* config.h. Generated automatically by configure. */
-/* config.h.in. Generated automatically from configure.in by autoheader. */
-
-/* Define to empty if the keyword does not work. */
-/* #undef const */
-
-/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
-#define HAVE_SYS_WAIT_H 1
-
-/* Define to `int' if <sys/types.h> doesn't define. */
-/* #undef pid_t */
-
-/* Define as the return type of signal handlers (int or void). */
-#define RETSIGTYPE void
-
-/* Define if the setvbuf function takes the buffering type as its second
- argument and the buffer pointer as the third, as on System V
- before release 3. */
-/* #undef SETVBUF_REVERSED */
-
-/* Define if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define if you can safely include both <sys/time.h> and <time.h>. */
-#define TIME_WITH_SYS_TIME 1
-
-/* Define if your <sys/time.h> declares struct tm. */
-/* #undef TM_IN_SYS_TIME */
-
-#define HAVE_STRUCT_SOCKADDR_LL 1
-
-/* The number of bytes in a unsigned int. */
-#define SIZEOF_UNSIGNED_INT 4
-
-/* The number of bytes in a unsigned long. */
-#define SIZEOF_UNSIGNED_LONG 4
-
-/* The number of bytes in a unsigned short. */
-#define SIZEOF_UNSIGNED_SHORT 2
-
-/* Define if you have the select function. */
-#define HAVE_SELECT 1
-
-/* Define if you have the socket function. */
-#define HAVE_SOCKET 1
-
-/* Define if you have the strerror function. */
-#define HAVE_STRERROR 1
-
-/* Define if you have the strtol function. */
-#define HAVE_STRTOL 1
-
-/* Define if you have the <asm/types.h> header file. */
-#define HAVE_ASM_TYPES_H 1
-
-/* Define if you have the <fcntl.h> header file. */
-#define HAVE_FCNTL_H 1
-
-/* Define if you have the <getopt.h> header file. */
-#define HAVE_GETOPT_H 1
-
-/* Define if you have the <linux/if_ether.h> header file. */
-#define HAVE_LINUX_IF_ETHER_H 1
-
-/* Define if you have kernel-mode PPPoE in Linux file. */
-/* #undef HAVE_LINUX_KERNEL_PPPOE */
-
-/* Define if you have the <linux/if_packet.h> header file. */
-#define HAVE_LINUX_IF_PACKET_H 1
-
-/* Define if you have the <linux/if_pppox.h> header file. */
-#define HAVE_LINUX_IF_PPPOX_H 1
-
-/* Define if you have the <net/bpf.h> header file. */
-#define HAVE_NET_BPF_H 1
-
-/* Define if you have the <net/if_arp.h> header file. */
-//#define HAVE_NET_IF_ARP_H 1
-
-/* Define if you have the <net/ethernet.h> header file. */
-#define HAVE_NET_ETHERNET_H 1
-
-/* Define if you have the <net/if.h> header file. */
-#define HAVE_NET_IF_H 1
-
-/* Define if you have the <linux/if.h> header file. */
-#define HAVE_LINUX_IF_H 1
-
-/* Define if you have the <net/if_dl.h> header file. */
-/* #undef HAVE_NET_IF_DL_H */
-
-/* Define if you have the <net/if_ether.h> header file. */
-/* #undef HAVE_NET_IF_ETHER_H */
-
-/* Define if you have the <net/if_types.h> header file. */
-/* #undef HAVE_NET_IF_TYPES_H */
-
-/* Define if you have the <netinet/if_ether.h> header file. */
-//#define HAVE_NETINET_IF_ETHER_H 1
-
-/* Define if you have the <netpacket/packet.h> header file. */
-#define HAVE_NETPACKET_PACKET_H 1
-
-/* Define if you have the <sys/cdefs.h> header file. */
-#define HAVE_SYS_CDEFS_H 1
-
-/* Define if you have the <sys/dlpi.h> header file. */
-/* #undef HAVE_SYS_DLPI_H */
-
-/* Define if you have the <sys/ioctl.h> header file. */
-#define HAVE_SYS_IOCTL_H 1
-
-/* Define if you have the <sys/param.h> header file. */
-#define HAVE_SYS_PARAM_H 1
-
-/* Define if you have the <sys/socket.h> header file. */
-#define HAVE_SYS_SOCKET_H 1
-
-/* Define if you have the <sys/time.h> header file. */
-#define HAVE_SYS_TIME_H 1
-
-/* Define if you have the <sys/uio.h> header file. */
-#define HAVE_SYS_UIO_H 1
-
-/* Define if you have the <syslog.h> header file. */
-#define HAVE_SYSLOG_H 1
-
-/* Define if you have the <unistd.h> header file. */
-#define HAVE_UNISTD_H 1
-
-/* Define if you have the N_HDLC line discipline in linux/termios.h */
-#define HAVE_N_HDLC 1
-
-/* Define if bitfields are packed in reverse order */
-#define PACK_BITFIELDS_REVERSED 1
diff --git a/mdk-stage1/rp-pppoe/src/config.h.in b/mdk-stage1/rp-pppoe/src/config.h.in
deleted file mode 100644
index e3340389d..000000000
--- a/mdk-stage1/rp-pppoe/src/config.h.in
+++ /dev/null
@@ -1,134 +0,0 @@
-/* config.h.in. Generated automatically from configure.in by autoheader. */
-
-/* Define to empty if the keyword does not work. */
-#undef const
-
-/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
-#undef HAVE_SYS_WAIT_H
-
-/* Define to `int' if <sys/types.h> doesn't define. */
-#undef pid_t
-
-/* Define as the return type of signal handlers (int or void). */
-#undef RETSIGTYPE
-
-/* Define if the setvbuf function takes the buffering type as its second
- argument and the buffer pointer as the third, as on System V
- before release 3. */
-#undef SETVBUF_REVERSED
-
-/* Define if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Define if you can safely include both <sys/time.h> and <time.h>. */
-#undef TIME_WITH_SYS_TIME
-
-/* Define if your <sys/time.h> declares struct tm. */
-#undef TM_IN_SYS_TIME
-
-#undef HAVE_STRUCT_SOCKADDR_LL
-
-/* The number of bytes in a unsigned int. */
-#undef SIZEOF_UNSIGNED_INT
-
-/* The number of bytes in a unsigned long. */
-#undef SIZEOF_UNSIGNED_LONG
-
-/* The number of bytes in a unsigned short. */
-#undef SIZEOF_UNSIGNED_SHORT
-
-/* Define if you have the select function. */
-#undef HAVE_SELECT
-
-/* Define if you have the socket function. */
-#undef HAVE_SOCKET
-
-/* Define if you have the strerror function. */
-#undef HAVE_STRERROR
-
-/* Define if you have the strtol function. */
-#undef HAVE_STRTOL
-
-/* Define if you have the <asm/types.h> header file. */
-#undef HAVE_ASM_TYPES_H
-
-/* Define if you have the <fcntl.h> header file. */
-#undef HAVE_FCNTL_H
-
-/* Define if you have the <getopt.h> header file. */
-#undef HAVE_GETOPT_H
-
-/* Define if you have the <linux/if_ether.h> header file. */
-#undef HAVE_LINUX_IF_ETHER_H
-
-/* Define if you have kernel-mode PPPoE in Linux file. */
-#undef HAVE_LINUX_KERNEL_PPPOE
-
-/* Define if you have the <linux/if_packet.h> header file. */
-#undef HAVE_LINUX_IF_PACKET_H
-
-/* Define if you have the <linux/if_pppox.h> header file. */
-#undef HAVE_LINUX_IF_PPPOX_H
-
-/* Define if you have the <net/bpf.h> header file. */
-#undef HAVE_NET_BPF_H
-
-/* Define if you have the <net/if_arp.h> header file. */
-#undef HAVE_NET_IF_ARP_H
-
-/* Define if you have the <net/ethernet.h> header file. */
-#undef HAVE_NET_ETHERNET_H
-
-/* Define if you have the <net/if.h> header file. */
-#undef HAVE_NET_IF_H
-
-/* Define if you have the <linux/if.h> header file. */
-#undef HAVE_LINUX_IF_H
-
-/* Define if you have the <net/if_dl.h> header file. */
-#undef HAVE_NET_IF_DL_H
-
-/* Define if you have the <net/if_ether.h> header file. */
-#undef HAVE_NET_IF_ETHER_H
-
-/* Define if you have the <net/if_types.h> header file. */
-#undef HAVE_NET_IF_TYPES_H
-
-/* Define if you have the <netinet/if_ether.h> header file. */
-#undef HAVE_NETINET_IF_ETHER_H
-
-/* Define if you have the <netpacket/packet.h> header file. */
-#undef HAVE_NETPACKET_PACKET_H
-
-/* Define if you have the <sys/cdefs.h> header file. */
-#undef HAVE_SYS_CDEFS_H
-
-/* Define if you have the <sys/dlpi.h> header file. */
-#undef HAVE_SYS_DLPI_H
-
-/* Define if you have the <sys/ioctl.h> header file. */
-#undef HAVE_SYS_IOCTL_H
-
-/* Define if you have the <sys/param.h> header file. */
-#undef HAVE_SYS_PARAM_H
-
-/* Define if you have the <sys/socket.h> header file. */
-#undef HAVE_SYS_SOCKET_H
-
-/* Define if you have the <sys/time.h> header file. */
-#undef HAVE_SYS_TIME_H
-
-/* Define if you have the <sys/uio.h> header file. */
-#undef HAVE_SYS_UIO_H
-
-/* Define if you have the <syslog.h> header file. */
-#undef HAVE_SYSLOG_H
-
-/* Define if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define if you have the N_HDLC line discipline in linux/termios.h */
-#undef HAVE_N_HDLC
-
-/* Define if bitfields are packed in reverse order */
-#undef PACK_BITFIELDS_REVERSED
diff --git a/mdk-stage1/rp-pppoe/src/configure b/mdk-stage1/rp-pppoe/src/configure
deleted file mode 100755
index eede451a1..000000000
--- a/mdk-stage1/rp-pppoe/src/configure
+++ /dev/null
@@ -1,2356 +0,0 @@
-#! /bin/sh
-
-# Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.13
-# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-
-# Defaults:
-ac_help=
-ac_default_prefix=/usr/local
-# Any additions from configure.in:
-ac_default_prefix=/usr
-ac_help="$ac_help
- --enable-plugin=pppd_src_path build pppd plugin"
-
-# Initialize some variables set by options.
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-build=NONE
-cache_file=./config.cache
-exec_prefix=NONE
-host=NONE
-no_create=
-nonopt=NONE
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-target=NONE
-verbose=
-x_includes=NONE
-x_libraries=NONE
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-# Initialize some other variables.
-subdirs=
-MFLAGS= MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-# Maximum number of lines to put in a shell here document.
-ac_max_here_lines=12
-
-ac_prev=
-for ac_option
-do
-
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval "$ac_prev=\$ac_option"
- ac_prev=
- continue
- fi
-
- case "$ac_option" in
- -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
- *) ac_optarg= ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case "$ac_option" in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir="$ac_optarg" ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build="$ac_optarg" ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file="$ac_optarg" ;;
-
- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
- | --da=*)
- datadir="$ac_optarg" ;;
-
- -disable-* | --disable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
- fi
- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
- eval "enable_${ac_feature}=no" ;;
-
- -enable-* | --enable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
- fi
- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "enable_${ac_feature}='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix="$ac_optarg" ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he)
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat << EOF
-Usage: configure [options] [host]
-Options: [defaults in brackets after descriptions]
-Configuration:
- --cache-file=FILE cache test results in FILE
- --help print this message
- --no-create do not create output files
- --quiet, --silent do not print \`checking...' messages
- --version print the version of autoconf that created configure
-Directory and file names:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [same as prefix]
- --bindir=DIR user executables in DIR [EPREFIX/bin]
- --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
- --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
- --datadir=DIR read-only architecture-independent data in DIR
- [PREFIX/share]
- --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data in DIR
- [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
- --libdir=DIR object code libraries in DIR [EPREFIX/lib]
- --includedir=DIR C header files in DIR [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
- --infodir=DIR info documentation in DIR [PREFIX/info]
- --mandir=DIR man documentation in DIR [PREFIX/man]
- --srcdir=DIR find the sources in DIR [configure dir or ..]
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM
- run sed PROGRAM on installed program names
-EOF
- cat << EOF
-Host type:
- --build=BUILD configure for building on BUILD [BUILD=HOST]
- --host=HOST configure for HOST [guessed]
- --target=TARGET configure for TARGET [TARGET=HOST]
-Features and packages:
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --x-includes=DIR X include files are in DIR
- --x-libraries=DIR X library files are in DIR
-EOF
- if test -n "$ac_help"; then
- echo "--enable and --with options recognized:$ac_help"
- fi
- exit 0 ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host="$ac_optarg" ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir="$ac_optarg" ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir="$ac_optarg" ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir="$ac_optarg" ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir="$ac_optarg" ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir="$ac_optarg" ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir="$ac_optarg" ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir="$ac_optarg" ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix="$ac_optarg" ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix="$ac_optarg" ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix="$ac_optarg" ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name="$ac_optarg" ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir="$ac_optarg" ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir="$ac_optarg" ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site="$ac_optarg" ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir="$ac_optarg" ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir="$ac_optarg" ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target="$ac_optarg" ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers)
- echo "configure generated by autoconf version 2.13"
- exit 0 ;;
-
- -with-* | --with-*)
- ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
- fi
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "with_${ac_package}='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`echo $ac_option|sed -e 's/-*without-//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
- fi
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- eval "with_${ac_package}=no" ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes="$ac_optarg" ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries="$ac_optarg" ;;
-
- -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
- ;;
-
- *)
- if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
- echo "configure: warning: $ac_option: invalid host type" 1>&2
- fi
- if test "x$nonopt" != xNONE; then
- { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
- fi
- nonopt="$ac_option"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
-fi
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-# File descriptor usage:
-# 0 standard input
-# 1 file creation
-# 2 errors and warnings
-# 3 some systems may open it to /dev/tty
-# 4 used on the Kubota Titan
-# 6 checking for... messages and results
-# 5 compiler messages saved in config.log
-if test "$silent" = yes; then
- exec 6>/dev/null
-else
- exec 6>&1
-fi
-exec 5>./config.log
-
-echo "\
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-" 1>&5
-
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Also quote any args containing shell metacharacters.
-ac_configure_args=
-for ac_arg
-do
- case "$ac_arg" in
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c) ;;
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
- ac_configure_args="$ac_configure_args '$ac_arg'" ;;
- *) ac_configure_args="$ac_configure_args $ac_arg" ;;
- esac
-done
-
-# NLS nuisances.
-# Only set these to C if already set. These must not be set unconditionally
-# because not all systems understand e.g. LANG=C (notably SCO).
-# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
-# Non-C LC_CTYPE values break the ctype check.
-if test "${LANG+set}" = set; then LANG=C; export LANG; fi
-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
-if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo > confdefs.h
-
-# A filename unique to this package, relative to the directory that
-# configure is in, which we can look for to find out if srcdir is correct.
-ac_unique_file=pppoe.c
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then its parent.
- ac_prog=$0
- ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
- test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
- srcdir=$ac_confdir
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
- if test "$ac_srcdir_defaulted" = yes; then
- { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
- else
- { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
- fi
-fi
-srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
-
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- echo "loading site script $ac_site_file"
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- echo "loading cache $cache_file"
- . $cache_file
-else
- echo "creating cache $cache_file"
- > $cache_file
-fi
-
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-ac_exeext=
-ac_objext=o
-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
- # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
- if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
- ac_n= ac_c='
-' ac_t=' '
- else
- ac_n=-n ac_c= ac_t=
- fi
-else
- ac_n= ac_c='\c' ac_t=
-fi
-
-
-
-
-
-
-
-# Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:536: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_CC="gcc"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:566: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_prog_rejected=no
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- break
- fi
- done
- IFS="$ac_save_ifs"
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# -gt 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- set dummy "$ac_dir/$ac_word" "$@"
- shift
- ac_cv_prog_CC="$@"
- fi
-fi
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
- if test -z "$CC"; then
- case "`uname -s`" in
- *win32* | *WIN32*)
- # Extract the first word of "cl", so it can be a program name with args.
-set dummy cl; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:617: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_CC="cl"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
- ;;
- esac
- fi
- test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:649: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
-
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-cat > conftest.$ac_ext << EOF
-
-#line 660 "configure"
-#include "confdefs.h"
-
-main(){return(0);}
-EOF
-if { (eval echo configure:665: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- ac_cv_prog_cc_works=yes
- # If we can't run a trivial program, we are probably using a cross compiler.
- if (./conftest; exit) 2>/dev/null; then
- ac_cv_prog_cc_cross=no
- else
- ac_cv_prog_cc_cross=yes
- fi
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_prog_cc_works=no
-fi
-rm -fr conftest*
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
-if test $ac_cv_prog_cc_works = no; then
- { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
-fi
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:691: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
-echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:696: checking whether we are using GNU C" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.c <<EOF
-#ifdef __GNUC__
- yes;
-#endif
-EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:705: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
- ac_cv_prog_gcc=yes
-else
- ac_cv_prog_gcc=no
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gcc" 1>&6
-
-if test $ac_cv_prog_gcc = yes; then
- GCC=yes
-else
- GCC=
-fi
-
-ac_test_CFLAGS="${CFLAGS+set}"
-ac_save_CFLAGS="$CFLAGS"
-CFLAGS=
-echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:724: checking whether ${CC-cc} accepts -g" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- echo 'void f(){}' > conftest.c
-if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
- ac_cv_prog_cc_g=yes
-else
- ac_cv_prog_cc_g=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS="$ac_save_CFLAGS"
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-
-
-
-echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:758: checking how to run the C preprocessor" >&5
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
-if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- # This must be in double quotes, not single quotes, because CPP may get
- # substituted into the Makefile and "${CC-cc}" will confuse make.
- CPP="${CC-cc} -E"
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp.
- cat > conftest.$ac_ext <<EOF
-#line 773 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:779: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP="${CC-cc} -E -traditional-cpp"
- cat > conftest.$ac_ext <<EOF
-#line 790 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:796: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP="${CC-cc} -nologo -E"
- cat > conftest.$ac_ext <<EOF
-#line 807 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:813: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP=/lib/cpp
-fi
-rm -f conftest*
-fi
-rm -f conftest*
-fi
-rm -f conftest*
- ac_cv_prog_CPP="$CPP"
-fi
- CPP="$ac_cv_prog_CPP"
-else
- ac_cv_prog_CPP="$CPP"
-fi
-echo "$ac_t""$CPP" 1>&6
-
-echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:838: checking for ANSI C header files" >&5
-if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 843 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:851: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- ac_cv_header_stdc=yes
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 868 "configure"
-#include "confdefs.h"
-#include <string.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "memchr" >/dev/null 2>&1; then
- :
-else
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 886 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "free" >/dev/null 2>&1; then
- :
-else
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-if test "$cross_compiling" = yes; then
- :
-else
- cat > conftest.$ac_ext <<EOF
-#line 907 "configure"
-#include "confdefs.h"
-#include <ctype.h>
-#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int main () { int i; for (i = 0; i < 256; i++)
-if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
-exit (0); }
-
-EOF
-if { (eval echo configure:918: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- :
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_header_stdc=no
-fi
-rm -fr conftest*
-fi
-
-fi
-fi
-
-echo "$ac_t""$ac_cv_header_stdc" 1>&6
-if test $ac_cv_header_stdc = yes; then
- cat >> confdefs.h <<\EOF
-#define STDC_HEADERS 1
-EOF
-
-fi
-
-echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-echo "configure:942: checking for sys/wait.h that is POSIX.1 compatible" >&5
-if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 947 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/wait.h>
-#ifndef WEXITSTATUS
-#define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
-#endif
-#ifndef WIFEXITED
-#define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
-#endif
-int main() {
-int s;
-wait (&s);
-s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
-; return 0; }
-EOF
-if { (eval echo configure:963: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_header_sys_wait_h=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_header_sys_wait_h=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_header_sys_wait_h" 1>&6
-if test $ac_cv_header_sys_wait_h = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_SYS_WAIT_H 1
-EOF
-
-fi
-
-for ac_hdr in fcntl.h sys/ioctl.h sys/time.h syslog.h unistd.h net/if_arp.h netinet/if_ether.h getopt.h sys/uio.h sys/param.h fcntl.h net/bpf.h netpacket/packet.h net/ethernet.h asm/types.h linux/if_packet.h linux/if_ether.h linux/if_pppox.h sys/socket.h sys/cdefs.h linux/if.h net/if.h net/if_dl.h net/if_ether.h net/if_types.h netinet/if_ether.h net/if_types.h net/if_dl.h sys/dlpi.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:987: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 992 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:997: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
-echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:1025: checking for working const" >&5
-if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1030 "configure"
-#include "confdefs.h"
-
-int main() {
-
-/* Ultrix mips cc rejects this. */
-typedef int charset[2]; const charset x;
-/* SunOS 4.1.1 cc rejects this. */
-char const *const *ccp;
-char **p;
-/* NEC SVR4.0.2 mips cc rejects this. */
-struct point {int x, y;};
-static struct point const zero = {0,0};
-/* AIX XL C 1.02.0.0 rejects this.
- It does not let you subtract one const X* pointer from another in an arm
- of an if-expression whose if-part is not a constant expression */
-const char *g = "string";
-ccp = &g + (g ? g-g : 0);
-/* HPUX 7.0 cc rejects these. */
-++ccp;
-p = (char**) ccp;
-ccp = (char const *const *) p;
-{ /* SCO 3.2v4 cc rejects this. */
- char *t;
- char const *s = 0 ? (char *) 0 : (char const *) 0;
-
- *t++ = 0;
-}
-{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
- int x[] = {25, 17};
- const int *foo = &x[0];
- ++foo;
-}
-{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
- typedef const int *iptr;
- iptr p = 0;
- ++p;
-}
-{ /* AIX XL C 1.02.0.0 rejects this saying
- "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
- struct s { int j; const int *ap[3]; };
- struct s *b; b->j = 5;
-}
-{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
- const int foo = 10;
-}
-
-; return 0; }
-EOF
-if { (eval echo configure:1079: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_c_const=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_c_const=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_c_const" 1>&6
-if test $ac_cv_c_const = no; then
- cat >> confdefs.h <<\EOF
-#define const
-EOF
-
-fi
-
-echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:1100: checking for pid_t" >&5
-if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1105 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "(^|[^a-zA-Z_0-9])pid_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
- rm -rf conftest*
- ac_cv_type_pid_t=yes
-else
- rm -rf conftest*
- ac_cv_type_pid_t=no
-fi
-rm -f conftest*
-
-fi
-echo "$ac_t""$ac_cv_type_pid_t" 1>&6
-if test $ac_cv_type_pid_t = no; then
- cat >> confdefs.h <<\EOF
-#define pid_t int
-EOF
-
-fi
-
-echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:1133: checking whether time.h and sys/time.h may both be included" >&5
-if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1138 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/time.h>
-#include <time.h>
-int main() {
-struct tm *tp;
-; return 0; }
-EOF
-if { (eval echo configure:1147: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_header_time=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_header_time=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_header_time" 1>&6
-if test $ac_cv_header_time = yes; then
- cat >> confdefs.h <<\EOF
-#define TIME_WITH_SYS_TIME 1
-EOF
-
-fi
-
-echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6
-echo "configure:1168: checking whether struct tm is in sys/time.h or time.h" >&5
-if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1173 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <time.h>
-int main() {
-struct tm *tp; tp->tm_sec;
-; return 0; }
-EOF
-if { (eval echo configure:1181: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_struct_tm=time.h
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_struct_tm=sys/time.h
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_struct_tm" 1>&6
-if test $ac_cv_struct_tm = sys/time.h; then
- cat >> confdefs.h <<\EOF
-#define TM_IN_SYS_TIME 1
-EOF
-
-fi
-
-
-# Extract the first word of "echo", so it can be a program name with args.
-set dummy echo; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1205: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_ECHO'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- case "$ECHO" in
- /*)
- ac_cv_path_ECHO="$ECHO" # Let the user override the test with a path.
- ;;
- ?:/*)
- ac_cv_path_ECHO="$ECHO" # Let the user override the test with a dos path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="/usr/ucb/bin:$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_path_ECHO="$ac_dir/$ac_word"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_ECHO" && ac_cv_path_ECHO=""""
- ;;
-esac
-fi
-ECHO="$ac_cv_path_ECHO"
-if test -n "$ECHO"; then
- echo "$ac_t""$ECHO" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-$ECHO -n "checking for struct sockaddr_ll... "
-cat > conftest.$ac_ext <<EOF
-#line 1241 "configure"
-#include "confdefs.h"
-#include <asm/types.h>
-#include <linux/if_packet.h>
-#include <linux/if_ether.h>
-
-int main() {
-struct sockaddr_ll sa;
-; return 0; }
-EOF
-if { (eval echo configure:1251: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_struct_sockaddr_ll=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_struct_sockaddr_ll=no
-fi
-rm -f conftest*
-$ECHO $ac_cv_struct_sockaddr_ll
-if test "$ac_cv_struct_sockaddr_ll" = yes ; then
-cat >> confdefs.h <<\EOF
-#define HAVE_STRUCT_SOCKADDR_LL 1
-EOF
-
-fi
-
-$ECHO -n "checking for N_HDLC line discipline... "
-cat > conftest.$ac_ext <<EOF
-#line 1271 "configure"
-#include "confdefs.h"
-#include <linux/termios.h>
-int main() {
-int x = N_HDLC;
-; return 0; }
-EOF
-if { (eval echo configure:1278: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_n_hdlc=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_n_hdlc=no
-fi
-rm -f conftest*
-$ECHO $ac_cv_n_hdlc
-if test "$ac_cv_n_hdlc" = yes ; then
-cat >> confdefs.h <<\EOF
-#define HAVE_N_HDLC 1
-EOF
-
-fi
-
-# Check whether --enable-plugin or --disable-plugin was given.
-if test "${enable_plugin+set}" = set; then
- enableval="$enable_plugin"
- ac_cv_pluginpath=$enableval
-else
- ac_cv_pluginpath=no
-fi
-
-
-LINUX_KERNELMODE_PLUGIN=""
-PPPD_INCDIR=""
-if test "$ac_cv_header_linux_if_pppox_h" = yes ; then
- if test "$ac_cv_pluginpath" != no ; then
- LINUX_KERNELMODE_PLUGIN=rp-pppoe.so
- PPPD_INCDIR=$ac_cv_pluginpath
- fi
-fi
-
-
-
-
-PPPOE_RELAY=""
-if test "`uname -s`" = "Linux" ; then
- PPPOE_RELAY=pppoe-relay
-fi
-
-
-echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
-echo "configure:1324: checking for 8-bit clean memcmp" >&5
-if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_func_memcmp_clean=no
-else
- cat > conftest.$ac_ext <<EOF
-#line 1332 "configure"
-#include "confdefs.h"
-
-main()
-{
- char c0 = 0x40, c1 = 0x80, c2 = 0x81;
- exit(memcmp(&c0, &c2, 1) < 0 && memcmp(&c1, &c2, 1) < 0 ? 0 : 1);
-}
-
-EOF
-if { (eval echo configure:1342: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_func_memcmp_clean=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_func_memcmp_clean=no
-fi
-rm -fr conftest*
-fi
-
-fi
-
-echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6
-test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}"
-
-echo $ac_n "checking whether setvbuf arguments are reversed""... $ac_c" 1>&6
-echo "configure:1360: checking whether setvbuf arguments are reversed" >&5
-if eval "test \"`echo '$''{'ac_cv_func_setvbuf_reversed'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
- cat > conftest.$ac_ext <<EOF
-#line 1368 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-/* If setvbuf has the reversed format, exit 0. */
-main () {
- /* This call has the arguments reversed.
- A reversed system may check and see that the address of main
- is not _IOLBF, _IONBF, or _IOFBF, and return nonzero. */
- if (setvbuf(stdout, _IOLBF, (char *) main, BUFSIZ) != 0)
- exit(1);
- putc('\r', stdout);
- exit(0); /* Non-reversed systems segv here. */
-}
-EOF
-if { (eval echo configure:1382: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_func_setvbuf_reversed=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_func_setvbuf_reversed=no
-fi
-rm -fr conftest*
-fi
-
-rm -f core core.* *.core
-fi
-
-echo "$ac_t""$ac_cv_func_setvbuf_reversed" 1>&6
-if test $ac_cv_func_setvbuf_reversed = yes; then
- cat >> confdefs.h <<\EOF
-#define SETVBUF_REVERSED 1
-EOF
-
-fi
-
-echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:1406: checking return type of signal handlers" >&5
-if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1411 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <signal.h>
-#ifdef signal
-#undef signal
-#endif
-#ifdef __cplusplus
-extern "C" void (*signal (int, void (*)(int)))(int);
-#else
-void (*signal ()) ();
-#endif
-
-int main() {
-int i;
-; return 0; }
-EOF
-if { (eval echo configure:1428: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_type_signal=void
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_type_signal=int
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_type_signal" 1>&6
-cat >> confdefs.h <<EOF
-#define RETSIGTYPE $ac_cv_type_signal
-EOF
-
-
-for ac_func in select socket strerror strtol
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1449: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1454 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:1477: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
-fi
-ac_config_guess=$ac_aux_dir/config.guess
-ac_config_sub=$ac_aux_dir/config.sub
-ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# ./install, which can be erroneously created by make from ./install.sh.
-echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:1532: checking for a BSD compatible install" >&5
-if test -z "$INSTALL"; then
-if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
- for ac_dir in $PATH; do
- # Account for people who put trailing slashes in PATH elements.
- case "$ac_dir/" in
- /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- if test -f $ac_dir/$ac_prog; then
- if test $ac_prog = install &&
- grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- else
- ac_cv_path_install="$ac_dir/$ac_prog -c"
- break 2
- fi
- fi
- done
- ;;
- esac
- done
- IFS="$ac_save_IFS"
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL="$ac_cv_path_install"
- else
- # As a last resort, use the slow shell script. We don't cache a
- # path for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the path is relative.
- INSTALL="$ac_install_sh"
- fi
-fi
-echo "$ac_t""$INSTALL" 1>&6
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-
-echo $ac_n "checking size of unsigned short""... $ac_c" 1>&6
-echo "configure:1586: checking size of unsigned short" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_unsigned_short'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
- cat > conftest.$ac_ext <<EOF
-#line 1594 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-main()
-{
- FILE *f=fopen("conftestval", "w");
- if (!f) exit(1);
- fprintf(f, "%d\n", sizeof(unsigned short));
- exit(0);
-}
-EOF
-if { (eval echo configure:1605: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_sizeof_unsigned_short=`cat conftestval`
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_sizeof_unsigned_short=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_unsigned_short" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_UNSIGNED_SHORT $ac_cv_sizeof_unsigned_short
-EOF
-
-
-echo $ac_n "checking size of unsigned int""... $ac_c" 1>&6
-echo "configure:1625: checking size of unsigned int" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_unsigned_int'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
- cat > conftest.$ac_ext <<EOF
-#line 1633 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-main()
-{
- FILE *f=fopen("conftestval", "w");
- if (!f) exit(1);
- fprintf(f, "%d\n", sizeof(unsigned int));
- exit(0);
-}
-EOF
-if { (eval echo configure:1644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_sizeof_unsigned_int=`cat conftestval`
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_sizeof_unsigned_int=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_unsigned_int" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_UNSIGNED_INT $ac_cv_sizeof_unsigned_int
-EOF
-
-
-echo $ac_n "checking size of unsigned long""... $ac_c" 1>&6
-echo "configure:1664: checking size of unsigned long" >&5
-if eval "test \"`echo '$''{'ac_cv_sizeof_unsigned_long'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$cross_compiling" = yes; then
- { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
- cat > conftest.$ac_ext <<EOF
-#line 1672 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-main()
-{
- FILE *f=fopen("conftestval", "w");
- if (!f) exit(1);
- fprintf(f, "%d\n", sizeof(unsigned long));
- exit(0);
-}
-EOF
-if { (eval echo configure:1683: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_sizeof_unsigned_long=`cat conftestval`
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_sizeof_unsigned_long=0
-fi
-rm -fr conftest*
-fi
-
-fi
-echo "$ac_t""$ac_cv_sizeof_unsigned_long" 1>&6
-cat >> confdefs.h <<EOF
-#define SIZEOF_UNSIGNED_LONG $ac_cv_sizeof_unsigned_long
-EOF
-
-
-
-# Extract the first word of "pppd", so it can be a program name with args.
-set dummy pppd; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1706: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_PPPD'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- case "$PPPD" in
- /*)
- ac_cv_path_PPPD="$PPPD" # Let the user override the test with a path.
- ;;
- ?:/*)
- ac_cv_path_PPPD="$PPPD" # Let the user override the test with a dos path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH:/sbin:/usr/sbin:/usr/local/sbin"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_path_PPPD="$ac_dir/$ac_word"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_PPPD" && ac_cv_path_PPPD="NOTFOUND"
- ;;
-esac
-fi
-PPPD="$ac_cv_path_PPPD"
-if test -n "$PPPD"; then
- echo "$ac_t""$PPPD" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-# Extract the first word of "setsid", so it can be a program name with args.
-set dummy setsid; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1743: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_SETSID'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- case "$SETSID" in
- /*)
- ac_cv_path_SETSID="$SETSID" # Let the user override the test with a path.
- ;;
- ?:/*)
- ac_cv_path_SETSID="$SETSID" # Let the user override the test with a dos path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH:/sbin:/usr/sbin:/usr/local/sbin"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_path_SETSID="$ac_dir/$ac_word"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_SETSID" && ac_cv_path_SETSID=""""
- ;;
-esac
-fi
-SETSID="$ac_cv_path_SETSID"
-if test -n "$SETSID"; then
- echo "$ac_t""$SETSID" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-# Extract the first word of "id", so it can be a program name with args.
-set dummy id; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1780: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_ID'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- case "$ID" in
- /*)
- ac_cv_path_ID="$ID" # Let the user override the test with a path.
- ;;
- ?:/*)
- ac_cv_path_ID="$ID" # Let the user override the test with a dos path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="/usr/xpg4/bin:$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_path_ID="$ac_dir/$ac_word"
- break
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$ac_cv_path_ID" && ac_cv_path_ID=""""
- ;;
-esac
-fi
-ID="$ac_cv_path_ID"
-if test -n "$ID"; then
- echo "$ac_t""$ID" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-$ECHO -n "checking for Linux 2.4.X kernel-mode PPPoE support..."
-if test "`uname -s`" = "Linux" ; then
-if test "$cross_compiling" = yes; then
- { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
- cat > conftest.$ac_ext <<EOF
-#line 1820 "configure"
-#include "confdefs.h"
-#include <sys/socket.h>
-#include <net/ethernet.h>
-#include <linux/if.h>
-#include <linux/if_pppox.h>
-int main()
-{
- if (socket(AF_PPPOX, SOCK_DGRAM, PX_PROTO_OE) >= 0) return 0; else return 1;
-}
-
-EOF
-if { (eval echo configure:1832: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_linux_kernel_pppoe=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_linux_kernel_pppoe=no
-fi
-rm -fr conftest*
-fi
-
-else
- ac_cv_linux_kernel_pppoe=no
-fi
-
-$ECHO $ac_cv_linux_kernel_pppoe
-if test "$ac_cv_linux_kernel_pppoe" = yes ; then
- cat >> confdefs.h <<\EOF
-#define HAVE_LINUX_KERNEL_PPPOE 1
-EOF
-
-fi
-
-if test "$GCC" = yes; then
- CFLAGS="$CFLAGS -Wall -Wstrict-prototypes -ansi -pedantic"
-fi
-
-if test "$PPPD" = "NOTFOUND"; then
- $ECHO ""
- $ECHO "*** Oops! I couldn't find pppd, the PPP daemon anywhere."
- $ECHO "*** You must install pppd, version 2.3.10 or later."
- $ECHO "*** I will keep going, but it may not work."
- $ECHO ""
-fi
-
-
-PPPD_VERSION=`$PPPD --version 2>&1 | awk '{print $NF}'`
-
-case "$PPPD_VERSION" in
-1.*|2.0.*|2.1.*|2.2.*|2.3.0|2.3.1|2.3.2|2.3.3|2.3.4|2.3.5|2.3.6)
- $ECHO ""
- $ECHO "*** Oops! Your version of pppd is $PPPD_VERSION, which is too old."
- $ECHO "*** You need at least 2.3.7 (2.3.10 or newer recommended.)"
- $ECHO "*** I will keep going, but it may not work."
- $ECHO ""
- ;;
-
-2.3.7|2.3.8|2.3.9)
- $ECHO ""
- $ECHO "*** Warning. Your version of pppd is $PPPD_VERSION. You will"
- $ECHO "*** not be able to use connect-on-demand. Upgrade to pppd"
- $ECHO "*** 2.3.10 or newer if you need connect-on-demand."
- $ECHO ""
- ;;
-
-2*|3*|4*|5*|6*|7*|8*|9*)
- ;;
-
-*)
- $ECHO ""
- $ECHO "*** Oops. I cannot figure out what version of pppd you have."
- $ECHO "*** All I got back was '$PPPD_VERSION'"
- $ECHO "*** I will keep going, but it may not work."
- $ECHO ""
- ;;
-esac
-
-$ECHO -n "checking packing order of bit fields... "
-if test "$cross_compiling" = yes; then
- { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
- cat > conftest.$ac_ext <<EOF
-#line 1905 "configure"
-#include "confdefs.h"
-
-union foo {
- struct bar {
- unsigned int ver:4;
- unsigned int type:4;
- } bb;
- unsigned char baz;
-};
-
-int
-main(void)
-{
- union foo x;
- x.bb.ver = 1;
- x.bb.type = 2;
- if (x.baz == 0x21) {
- return 1;
- } else if (x.baz == 0x12) {
- return 0;
- } else {
- return 2;
- }
-}
-EOF
-if { (eval echo configure:1931: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- PACK=normal
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- PACK=rev
-fi
-rm -fr conftest*
-fi
-
-
-if test "$PACK" = "rev" ; then
- $ECHO "reversed"
- cat >> confdefs.h <<\EOF
-#define PACK_BITFIELDS_REVERSED 1
-EOF
-
-else
- $ECHO "normal"
-fi
-
-# Sigh... got to fix this up for tcl
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# Fully resolve WRAPPER for Tcl script.
-WRAPPER=${sbindir}/pppoe-wrapper
-eval "WRAPPER=${WRAPPER}"
-eval "WRAPPER=${WRAPPER}"
-
-
-# Determine what targets to build
-TARGETS="pppoe pppoe-server"
-
-# pppoe-sniff is built only on Linux and Solaris
-if test "$ac_cv_header_linux_if_packet_h" = "yes" -o "$ac_cv_header_sys_dlpi_h" = "yes" ; then
- TARGETS="$TARGETS pppoe-sniff"
-fi
-
-# pppoe-relay is built only on Linux
-if test "$ac_cv_header_linux_if_packet_h" = "yes" ; then
- TARGETS="$TARGETS pppoe-relay"
-fi
-
-# plugin is built only if we have kernel support
-if test -n "$LINUX_KERNELMODE_PLUGIN" ; then
- TARGETS="$TARGETS $LINUX_KERNELMODE_PLUGIN"
-fi
-
-
-
-trap '' 1 2 15
-cat > confcache <<\EOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs. It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already. You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-EOF
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(set) 2>&1 |
- case `(ac_space=' '; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote substitution
- # turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- -e "s/'/'\\\\''/g" \
- -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
- ;;
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
- ;;
- esac >> confcache
-if cmp -s $cache_file confcache; then
- :
-else
- if test -w $cache_file; then
- echo "updating cache $cache_file"
- cat confcache > $cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# Any assignment to VPATH causes Sun make to only execute
-# the first set of double-colon rules, so remove it if not needed.
-# If there is a colon in the path, we need to keep it.
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
-fi
-
-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
-
-DEFS=-DHAVE_CONFIG_H
-
-# Without the "./", some shells look in PATH for config.status.
-: ${CONFIG_STATUS=./config.status}
-
-echo creating $CONFIG_STATUS
-rm -f $CONFIG_STATUS
-cat > $CONFIG_STATUS <<EOF
-#! /bin/sh
-# Generated automatically by configure.
-# Run this file to recreate the current configuration.
-# This directory was configured as follows,
-# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-#
-# $0 $ac_configure_args
-#
-# Compiler output produced by configure, useful for debugging
-# configure, is in ./config.log if it exists.
-
-ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
-for ac_option
-do
- case "\$ac_option" in
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
- exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
- -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
- echo "$CONFIG_STATUS generated by autoconf version 2.13"
- exit 0 ;;
- -help | --help | --hel | --he | --h)
- echo "\$ac_cs_usage"; exit 0 ;;
- *) echo "\$ac_cs_usage"; exit 1 ;;
- esac
-done
-
-ac_given_srcdir=$srcdir
-ac_given_INSTALL="$INSTALL"
-
-trap 'rm -fr `echo "Makefile ../scripts/adsl-connect ../scripts/adsl-start ../scripts/adsl-stop ../scripts/adsl-init ../scripts/adsl-init-suse ../scripts/adsl-init-turbolinux ../scripts/adsl-setup ../gui/Makefile ../gui/tkpppoe config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-# Protect against being on the right side of a sed subst in config.status.
-sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
- s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
-$ac_vpsub
-$extrasub
-s%@SHELL@%$SHELL%g
-s%@CFLAGS@%$CFLAGS%g
-s%@CPPFLAGS@%$CPPFLAGS%g
-s%@CXXFLAGS@%$CXXFLAGS%g
-s%@FFLAGS@%$FFLAGS%g
-s%@DEFS@%$DEFS%g
-s%@LDFLAGS@%$LDFLAGS%g
-s%@LIBS@%$LIBS%g
-s%@exec_prefix@%$exec_prefix%g
-s%@prefix@%$prefix%g
-s%@program_transform_name@%$program_transform_name%g
-s%@bindir@%$bindir%g
-s%@sbindir@%$sbindir%g
-s%@libexecdir@%$libexecdir%g
-s%@datadir@%$datadir%g
-s%@sysconfdir@%$sysconfdir%g
-s%@sharedstatedir@%$sharedstatedir%g
-s%@localstatedir@%$localstatedir%g
-s%@libdir@%$libdir%g
-s%@includedir@%$includedir%g
-s%@oldincludedir@%$oldincludedir%g
-s%@infodir@%$infodir%g
-s%@mandir@%$mandir%g
-s%@CC@%$CC%g
-s%@CPP@%$CPP%g
-s%@ECHO@%$ECHO%g
-s%@LINUX_KERNELMODE_PLUGIN@%$LINUX_KERNELMODE_PLUGIN%g
-s%@PPPD_INCDIR@%$PPPD_INCDIR%g
-s%@PPPOE_RELAY@%$PPPOE_RELAY%g
-s%@LIBOBJS@%$LIBOBJS%g
-s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
-s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
-s%@INSTALL_DATA@%$INSTALL_DATA%g
-s%@PPPD@%$PPPD%g
-s%@SETSID@%$SETSID%g
-s%@ID@%$ID%g
-s%@WRAPPER@%$WRAPPER%g
-s%@TARGETS@%$TARGETS%g
-
-CEOF
-EOF
-
-cat >> $CONFIG_STATUS <<\EOF
-
-# Split the substitutions into bite-sized pieces for seds with
-# small command number limits, like on Digital OSF/1 and HP-UX.
-ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
-ac_file=1 # Number of current file.
-ac_beg=1 # First line for current file.
-ac_end=$ac_max_sed_cmds # Line after last line for current file.
-ac_more_lines=:
-ac_sed_cmds=""
-while $ac_more_lines; do
- if test $ac_beg -gt 1; then
- sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
- else
- sed "${ac_end}q" conftest.subs > conftest.s$ac_file
- fi
- if test ! -s conftest.s$ac_file; then
- ac_more_lines=false
- rm -f conftest.s$ac_file
- else
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds="sed -f conftest.s$ac_file"
- else
- ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
- fi
- ac_file=`expr $ac_file + 1`
- ac_beg=$ac_end
- ac_end=`expr $ac_end + $ac_max_sed_cmds`
- fi
-done
-if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
-fi
-EOF
-
-cat >> $CONFIG_STATUS <<EOF
-
-CONFIG_FILES=\${CONFIG_FILES-"Makefile ../scripts/adsl-connect ../scripts/adsl-start ../scripts/adsl-stop ../scripts/adsl-init ../scripts/adsl-init-suse ../scripts/adsl-init-turbolinux ../scripts/adsl-setup ../gui/Makefile ../gui/tkpppoe"}
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
-
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
- # A "../" for each directory in $ac_dir_suffix.
- ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
- else
- ac_dir_suffix= ac_dots=
- fi
-
- case "$ac_given_srcdir" in
- .) srcdir=.
- if test -z "$ac_dots"; then top_srcdir=.
- else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
- /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
- *) # Relative path.
- srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
- top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
-
- case "$ac_given_INSTALL" in
- [/$]*) INSTALL="$ac_given_INSTALL" ;;
- *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
- esac
-
- echo creating "$ac_file"
- rm -f "$ac_file"
- configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
- case "$ac_file" in
- *Makefile*) ac_comsub="1i\\
-# $configure_input" ;;
- *) ac_comsub= ;;
- esac
-
- ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
- sed -e "$ac_comsub
-s%@configure_input@%$configure_input%g
-s%@srcdir@%$srcdir%g
-s%@top_srcdir@%$top_srcdir%g
-s%@INSTALL@%$INSTALL%g
-" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
-fi; done
-rm -f conftest.s*
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
-ac_dB='\([ ][ ]*\)[^ ]*%\1#\2'
-ac_dC='\3'
-ac_dD='%g'
-# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
-ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_uB='\([ ]\)%\1#\2define\3'
-ac_uC=' '
-ac_uD='\4%g'
-# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_eB='$%\1#\2define\3'
-ac_eC=' '
-ac_eD='%g'
-
-if test "${CONFIG_HEADERS+set}" != set; then
-EOF
-cat >> $CONFIG_STATUS <<EOF
- CONFIG_HEADERS="config.h"
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-fi
-for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- echo creating $ac_file
-
- rm -f conftest.frag conftest.in conftest.out
- ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
- cat $ac_file_inputs > conftest.in
-
-EOF
-
-# Transform confdefs.h into a sed script conftest.vals that substitutes
-# the proper values into config.h.in to produce config.h. And first:
-# Protect against being on the right side of a sed subst in config.status.
-# Protect against being in an unquoted here document in config.status.
-rm -f conftest.vals
-cat > conftest.hdr <<\EOF
-s/[\\&%]/\\&/g
-s%[\\$`]%\\&%g
-s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
-s%ac_d%ac_u%gp
-s%ac_u%ac_e%gp
-EOF
-sed -n -f conftest.hdr confdefs.h > conftest.vals
-rm -f conftest.hdr
-
-# This sed command replaces #undef with comments. This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-cat >> conftest.vals <<\EOF
-s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
-EOF
-
-# Break up conftest.vals because some shells have a limit on
-# the size of here documents, and old seds have small limits too.
-
-rm -f conftest.tail
-while :
-do
- ac_lines=`grep -c . conftest.vals`
- # grep -c gives empty output for an empty file on some AIX systems.
- if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
- # Write a limited-size here document to conftest.frag.
- echo ' cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
- sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
- echo 'CEOF
- sed -f conftest.frag conftest.in > conftest.out
- rm -f conftest.in
- mv conftest.out conftest.in
-' >> $CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
- rm -f conftest.vals
- mv conftest.tail conftest.vals
-done
-rm -f conftest.vals
-
-cat >> $CONFIG_STATUS <<\EOF
- rm -f conftest.frag conftest.h
- echo "/* $ac_file. Generated automatically by configure. */" > conftest.h
- cat conftest.in >> conftest.h
- rm -f conftest.in
- if cmp -s $ac_file conftest.h 2>/dev/null; then
- echo "$ac_file is unchanged"
- rm -f conftest.h
- else
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- fi
- rm -f $ac_file
- mv conftest.h $ac_file
- fi
-fi; done
-
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-
-exit 0
-EOF
-chmod +x $CONFIG_STATUS
-rm -fr confdefs* $ac_clean_files
-test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
-
-
-$ECHO ""
-$ECHO "On this platform, the following targets will be built:"
-$ECHO " $TARGETS"
-$ECHO ""
-$ECHO "Type 'make' to compile the software."
diff --git a/mdk-stage1/rp-pppoe/src/configure.in b/mdk-stage1/rp-pppoe/src/configure.in
deleted file mode 100644
index c11690179..000000000
--- a/mdk-stage1/rp-pppoe/src/configure.in
+++ /dev/null
@@ -1,231 +0,0 @@
-dnl Process this file with autoconf to produce a configure script.
-AC_INIT(pppoe.c)
-
-AC_CONFIG_HEADER(config.h)
-
-AC_PREFIX_DEFAULT(/usr)
-
-dnl Checks for programs.
-AC_PROG_CC
-
-dnl Checks for libraries.
-
-dnl Checks for header files.
-AC_HEADER_STDC
-AC_HEADER_SYS_WAIT
-AC_CHECK_HEADERS(fcntl.h sys/ioctl.h sys/time.h syslog.h unistd.h net/if_arp.h netinet/if_ether.h getopt.h sys/uio.h sys/param.h fcntl.h net/bpf.h netpacket/packet.h net/ethernet.h asm/types.h linux/if_packet.h linux/if_ether.h linux/if_pppox.h sys/socket.h sys/cdefs.h linux/if.h net/if.h net/if_dl.h net/if_ether.h net/if_types.h netinet/if_ether.h net/if_types.h net/if_dl.h sys/dlpi.h )
-
-dnl Checks for typedefs, structures, and compiler characteristics.
-AC_C_CONST
-AC_TYPE_PID_T
-AC_HEADER_TIME
-AC_STRUCT_TM
-
-dnl Check for an echo which supports -n -- another hack for Solaris
-AC_PATH_PROG(ECHO, echo, "", /usr/ucb/bin:$PATH)
-
-dnl Check for sockaddr_ll
-$ECHO -n "checking for struct sockaddr_ll... "
-AC_TRY_COMPILE([#include <asm/types.h>
-#include <linux/if_packet.h>
-#include <linux/if_ether.h>
-], [struct sockaddr_ll sa;],
-ac_cv_struct_sockaddr_ll=yes, ac_cv_struct_sockaddr_ll=no)
-$ECHO $ac_cv_struct_sockaddr_ll
-if test "$ac_cv_struct_sockaddr_ll" = yes ; then
-AC_DEFINE(HAVE_STRUCT_SOCKADDR_LL)
-fi
-
-dnl Check for N_HDLC line discipline
-$ECHO -n "checking for N_HDLC line discipline... "
-AC_TRY_COMPILE([#include <linux/termios.h>],
- [int x = N_HDLC;],
- ac_cv_n_hdlc=yes, ac_cv_n_hdlc=no)
-$ECHO $ac_cv_n_hdlc
-if test "$ac_cv_n_hdlc" = yes ; then
-AC_DEFINE(HAVE_N_HDLC)
-fi
-
-AC_ARG_ENABLE(plugin, [ --enable-plugin=pppd_src_path build pppd plugin], ac_cv_pluginpath=$enableval, ac_cv_pluginpath=no)
-
-dnl Determine whether or not to build Linux pppd plugin
-LINUX_KERNELMODE_PLUGIN=""
-PPPD_INCDIR=""
-if test "$ac_cv_header_linux_if_pppox_h" = yes ; then
- if test "$ac_cv_pluginpath" != no ; then
- LINUX_KERNELMODE_PLUGIN=rp-pppoe.so
- PPPD_INCDIR=$ac_cv_pluginpath
- fi
-fi
-
-AC_SUBST(LINUX_KERNELMODE_PLUGIN)
-AC_SUBST(PPPD_INCDIR)
-
-dnl Determine whether or not to build PPPoE relay
-PPPOE_RELAY=""
-if test "`uname -s`" = "Linux" ; then
- PPPOE_RELAY=pppoe-relay
-fi
-AC_SUBST(PPPOE_RELAY)
-
-dnl Checks for library functions.
-AC_FUNC_MEMCMP
-AC_FUNC_SETVBUF_REVERSED
-AC_TYPE_SIGNAL
-AC_CHECK_FUNCS(select socket strerror strtol)
-AC_PROG_INSTALL
-
-dnl Integer sizes
-AC_CHECK_SIZEOF(unsigned short)
-AC_CHECK_SIZEOF(unsigned int)
-AC_CHECK_SIZEOF(unsigned long)
-
-dnl Check for location of pppd
-AC_PATH_PROG(PPPD, pppd, NOTFOUND, $PATH:/sbin:/usr/sbin:/usr/local/sbin)
-
-dnl Check for setsid (probably Linux-specific)
-AC_PATH_PROG(SETSID, setsid, "", $PATH:/sbin:/usr/sbin:/usr/local/sbin)
-
-dnl Check for an "id" which accepts "-u" option -- hack for Solaris.
-AC_PATH_PROG(ID, id, "", /usr/xpg4/bin:$PATH)
-
-dnl Check for Linux-specific kernel support for PPPoE
-$ECHO -n "checking for Linux 2.4.X kernel-mode PPPoE support..."
-if test "`uname -s`" = "Linux" ; then
-AC_TRY_RUN([#include <sys/socket.h>
-#include <net/ethernet.h>
-#include <linux/if.h>
-#include <linux/if_pppox.h>
-int main()
-{
- if (socket(AF_PPPOX, SOCK_DGRAM, PX_PROTO_OE) >= 0) return 0; else return 1;
-}
-], ac_cv_linux_kernel_pppoe=yes, ac_cv_linux_kernel_pppoe=no)
-else
- ac_cv_linux_kernel_pppoe=no
-fi
-
-$ECHO $ac_cv_linux_kernel_pppoe
-if test "$ac_cv_linux_kernel_pppoe" = yes ; then
- AC_DEFINE(HAVE_LINUX_KERNEL_PPPOE)
-fi
-
-dnl GCC warning level
-if test "$GCC" = yes; then
- CFLAGS="$CFLAGS -Wall -Wstrict-prototypes"
-fi
-
-dnl If we couldn't find pppd, die
-if test "$PPPD" = "NOTFOUND"; then
- $ECHO ""
- $ECHO "*** Oops! I couldn't find pppd, the PPP daemon anywhere."
- $ECHO "*** You must install pppd, version 2.3.10 or later."
- $ECHO "*** I will keep going, but it may not work."
- $ECHO ""
-fi
-
-dnl Figure out pppd version. 2.3.7 to 2.3.9 -- issue warning. Less than
-dnl 2.3.7 -- stop
-
-PPPD_VERSION=`$PPPD --version 2>&1 | awk '{print $NF}'`
-
-case "$PPPD_VERSION" in
-1.*|2.0.*|2.1.*|2.2.*|2.3.0|2.3.1|2.3.2|2.3.3|2.3.4|2.3.5|2.3.6)
- $ECHO ""
- $ECHO "*** Oops! Your version of pppd is $PPPD_VERSION, which is too old."
- $ECHO "*** You need at least 2.3.7 (2.3.10 or newer recommended.)"
- $ECHO "*** I will keep going, but it may not work."
- $ECHO ""
- ;;
-
-2.3.7|2.3.8|2.3.9)
- $ECHO ""
- $ECHO "*** Warning. Your version of pppd is $PPPD_VERSION. You will"
- $ECHO "*** not be able to use connect-on-demand. Upgrade to pppd"
- $ECHO "*** 2.3.10 or newer if you need connect-on-demand."
- $ECHO ""
- ;;
-
-2*|3*|4*|5*|6*|7*|8*|9*)
- ;;
-
-*)
- $ECHO ""
- $ECHO "*** Oops. I cannot figure out what version of pppd you have."
- $ECHO "*** All I got back was '$PPPD_VERSION'"
- $ECHO "*** I will keep going, but it may not work."
- $ECHO ""
- ;;
-esac
-
-dnl Figure out packing order of structures
-$ECHO -n "checking packing order of bit fields... "
-AC_TRY_RUN([
-union foo {
- struct bar {
- unsigned int ver:4;
- unsigned int type:4;
- } bb;
- unsigned char baz;
-};
-
-int
-main(void)
-{
- union foo x;
- x.bb.ver = 1;
- x.bb.type = 2;
- if (x.baz == 0x21) {
- return 1;
- } else if (x.baz == 0x12) {
- return 0;
- } else {
- return 2;
- }
-}], PACK=normal, PACK=rev)
-
-if test "$PACK" = "rev" ; then
- $ECHO "reversed"
- AC_DEFINE(PACK_BITFIELDS_REVERSED)
-else
- $ECHO "normal"
-fi
-
-# Sigh... got to fix this up for tcl
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# Fully resolve WRAPPER for Tcl script.
-WRAPPER=${sbindir}/pppoe-wrapper
-eval "WRAPPER=${WRAPPER}"
-eval "WRAPPER=${WRAPPER}"
-AC_SUBST(WRAPPER)
-
-# Determine what targets to build
-TARGETS="pppoe pppoe-server"
-
-# pppoe-sniff is built only on Linux and Solaris
-if test "$ac_cv_header_linux_if_packet_h" = "yes" -o "$ac_cv_header_sys_dlpi_h" = "yes" ; then
- TARGETS="$TARGETS pppoe-sniff"
-fi
-
-# pppoe-relay is built only on Linux
-if test "$ac_cv_header_linux_if_packet_h" = "yes" ; then
- TARGETS="$TARGETS pppoe-relay"
-fi
-
-# plugin is built only if we have kernel support
-if test -n "$LINUX_KERNELMODE_PLUGIN" ; then
- TARGETS="$TARGETS $LINUX_KERNELMODE_PLUGIN"
-fi
-
-AC_SUBST(TARGETS)
-
-AC_OUTPUT(Makefile ../scripts/adsl-connect ../scripts/adsl-start ../scripts/adsl-stop ../scripts/adsl-init ../scripts/adsl-init-suse ../scripts/adsl-init-turbolinux ../scripts/adsl-setup ../gui/Makefile ../gui/tkpppoe)
-
-$ECHO ""
-$ECHO "On this platform, the following targets will be built:"
-$ECHO " $TARGETS"
-$ECHO ""
-$ECHO "Type 'make' to compile the software."
diff --git a/mdk-stage1/rp-pppoe/src/debug.c b/mdk-stage1/rp-pppoe/src/debug.c
deleted file mode 100644
index 052dca6c7..000000000
--- a/mdk-stage1/rp-pppoe/src/debug.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/***********************************************************************
-*
-* debug.c
-*
-* Implementation of user-space PPPoE redirector for Linux.
-*
-* Functions for printing debugging information
-*
-* Copyright (C) 2000 by Roaring Penguin Software Inc.
-*
-* This program may be distributed according to the terms of the GNU
-* General Public License, version 2 or (at your option) any later version.
-*
-***********************************************************************/
-
-static char const RCSID[] =
-"$Id$";
-
-#include "pppoe.h"
-#include <sys/time.h>
-#include <time.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/**********************************************************************
-*%FUNCTION: dumpHex
-*%ARGUMENTS:
-* fp -- file to dump to
-* buf -- buffer to dump
-* len -- length of data
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Dumps buffer to fp in an easy-to-read format
-***********************************************************************/
-void
-dumpHex(FILE *fp, unsigned char const *buf, int len)
-{
- int i;
- int base;
-
- if (!fp) return;
-
- /* do NOT dump PAP packets */
- if (len >= 2 && buf[0] == 0xC0 && buf[1] == 0x23) {
- fprintf(fp, "(PAP Authentication Frame -- Contents not dumped)\n");
- return;
- }
-
- for (base=0; base<len; base += 16) {
- for (i=base; i<base+16; i++) {
- if (i < len) {
- fprintf(fp, "%02x ", (unsigned) buf[i]);
- } else {
- fprintf(fp, " ");
- }
- }
- fprintf(fp, " ");
- for (i=base; i<base+16; i++) {
- if (i < len) {
- if (isprint(buf[i])) {
- fprintf(fp, "%c", buf[i]);
- } else {
- fprintf(fp, ".");
- }
- } else {
- break;
- }
- }
- fprintf(fp, "\n");
- }
-}
-
-/**********************************************************************
-*%FUNCTION: dumpPacket
-*%ARGUMENTS:
-* fp -- file to dump to
-* packet -- a PPPoE packet
-* dir -- either SENT or RCVD
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Dumps the PPPoE packet to fp in an easy-to-read format
-***********************************************************************/
-void
-dumpPacket(FILE *fp, PPPoEPacket *packet, char const *dir)
-{
- int len = ntohs(packet->length);
-
- /* Sheesh... printing times is a pain... */
- struct timeval tv;
- time_t now;
- int millisec;
- struct tm *lt;
- char timebuf[256];
-
- UINT16_t type = etherType(packet);
- if (!fp) return;
- gettimeofday(&tv, NULL);
- now = (time_t) tv.tv_sec;
- millisec = tv.tv_usec / 1000;
- lt = localtime(&now);
- strftime(timebuf, 256, "%H:%M:%S", lt);
- fprintf(fp, "%s.%03d %s PPPoE ", timebuf, millisec, dir);
- if (type == Eth_PPPOE_Discovery) {
- fprintf(fp, "Discovery (%x) ", (unsigned) type);
- } else if (type == Eth_PPPOE_Session) {
- fprintf(fp, "Session (%x) ", (unsigned) type);
- } else {
- fprintf(fp, "Unknown (%x) ", (unsigned) type);
- }
-
- switch(packet->code) {
- case CODE_PADI: fprintf(fp, "PADI "); break;
- case CODE_PADO: fprintf(fp, "PADO "); break;
- case CODE_PADR: fprintf(fp, "PADR "); break;
- case CODE_PADS: fprintf(fp, "PADS "); break;
- case CODE_PADT: fprintf(fp, "PADT "); break;
- case CODE_SESS: fprintf(fp, "SESS "); break;
- }
-
- fprintf(fp, "sess-id %d length %d\n",
- (int) ntohs(packet->session),
- len);
-
- /* Ugly... I apologize... */
- fprintf(fp,
- "SourceAddr %02x:%02x:%02x:%02x:%02x:%02x "
- "DestAddr %02x:%02x:%02x:%02x:%02x:%02x\n",
- (unsigned) packet->ethHdr.h_source[0],
- (unsigned) packet->ethHdr.h_source[1],
- (unsigned) packet->ethHdr.h_source[2],
- (unsigned) packet->ethHdr.h_source[3],
- (unsigned) packet->ethHdr.h_source[4],
- (unsigned) packet->ethHdr.h_source[5],
- (unsigned) packet->ethHdr.h_dest[0],
- (unsigned) packet->ethHdr.h_dest[1],
- (unsigned) packet->ethHdr.h_dest[2],
- (unsigned) packet->ethHdr.h_dest[3],
- (unsigned) packet->ethHdr.h_dest[4],
- (unsigned) packet->ethHdr.h_dest[5]);
- dumpHex(fp, packet->payload, ntohs(packet->length));
-}
diff --git a/mdk-stage1/rp-pppoe/src/discovery.c b/mdk-stage1/rp-pppoe/src/discovery.c
deleted file mode 100644
index fc3568db5..000000000
--- a/mdk-stage1/rp-pppoe/src/discovery.c
+++ /dev/null
@@ -1,629 +0,0 @@
-/***********************************************************************
-*
-* discovery.c
-*
-* Perform PPPoE discovery
-*
-* Copyright (C) 1999 by Roaring Penguin Software Inc.
-*
-***********************************************************************/
-
-static char const RCSID[] =
-"$Id$";
-
-#include "pppoe.h"
-
-#ifdef HAVE_SYSLOG_H
-#include <syslog.h>
-#endif
-
-#include <string.h>
-#include <stdlib.h>
-#include <errno.h>
-
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-
-#ifdef HAVE_SYS_UIO_H
-#include <sys/uio.h>
-#endif
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifdef USE_LINUX_PACKET
-#include <sys/ioctl.h>
-#include <fcntl.h>
-#endif
-
-#include <signal.h>
-
-/**********************************************************************
-*%FUNCTION: parseForHostUniq
-*%ARGUMENTS:
-* type -- tag type
-* len -- tag length
-* data -- tag data.
-* extra -- user-supplied pointer. This is assumed to be a pointer to int.
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* If a HostUnique tag is found which matches our PID, sets *extra to 1.
-***********************************************************************/
-void
-parseForHostUniq(UINT16_t type, UINT16_t len, unsigned char *data,
- void *extra)
-{
- int *val = (int *) extra;
- if (type == TAG_HOST_UNIQ && len == sizeof(pid_t)) {
- pid_t tmp;
- memcpy(&tmp, data, len);
- if (tmp == getpid()) {
- *val = 1;
- }
- }
-}
-
-/**********************************************************************
-*%FUNCTION: packetIsForMe
-*%ARGUMENTS:
-* conn -- PPPoE connection info
-* packet -- a received PPPoE packet
-*%RETURNS:
-* 1 if packet is for this PPPoE daemon; 0 otherwise.
-*%DESCRIPTION:
-* If we are using the Host-Unique tag, verifies that packet contains
-* our unique identifier.
-***********************************************************************/
-int
-packetIsForMe(PPPoEConnection *conn, PPPoEPacket *packet)
-{
- int forMe = 0;
-
- /* If we're not using the Host-Unique tag, then accept the packet */
- if (!conn->useHostUniq) return 1;
-
- parsePacket(packet, parseForHostUniq, &forMe);
- return forMe;
-}
-
-/**********************************************************************
-*%FUNCTION: parsePADOTags
-*%ARGUMENTS:
-* type -- tag type
-* len -- tag length
-* data -- tag data
-* extra -- extra user data. Should point to a PacketCriteria structure
-* which gets filled in according to selected AC name and service
-* name.
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Picks interesting tags out of a PADO packet
-***********************************************************************/
-void
-parsePADOTags(UINT16_t type, UINT16_t len, unsigned char *data,
- void *extra)
-{
- struct PacketCriteria *pc = (struct PacketCriteria *) extra;
- PPPoEConnection *conn = pc->conn;
- int i;
-
- switch(type) {
- case TAG_AC_NAME:
- if (conn->printACNames) {
- printf("Access-Concentrator: %.*s\n", (int) len, data);
- }
- if (conn->acName && len == strlen(conn->acName) &&
- !strncmp((char *) data, conn->acName, len)) {
- pc->acNameOK = 1;
- }
- break;
- case TAG_SERVICE_NAME:
- if (conn->printACNames && len > 0) {
- printf(" Service-Name: %.*s\n", (int) len, data);
- }
- if (conn->serviceName && len == strlen(conn->serviceName) &&
- !strncmp((char *) data, conn->serviceName, len)) {
- pc->serviceNameOK = 1;
- }
- break;
- case TAG_AC_COOKIE:
- if (conn->printACNames) {
- printf("Got a cookie:");
- /* Print first 20 bytes of cookie */
- for (i=0; i<len && i < 20; i++) {
- printf(" %02x", (unsigned) data[i]);
- }
- if (i < len) printf("...");
- printf("\n");
- }
- conn->cookie.type = htons(type);
- conn->cookie.length = htons(len);
- memcpy(conn->cookie.payload, data, len);
- break;
- case TAG_RELAY_SESSION_ID:
- if (conn->printACNames) {
- printf("Got a Relay-ID:");
- /* Print first 20 bytes of relay ID */
- for (i=0; i<len && i < 20; i++) {
- printf(" %02x", (unsigned) data[i]);
- }
- if (i < len) printf("...");
- printf("\n");
- }
- conn->relayId.type = htons(type);
- conn->relayId.length = htons(len);
- memcpy(conn->relayId.payload, data, len);
- break;
- case TAG_SERVICE_NAME_ERROR:
- if (conn->printACNames) {
- printf("Got a Service-Name-Error tag: %.*s\n", (int) len, data);
- } else {
- syslog(LOG_ERR, "PADO: Service-Name-Error: %.*s", (int) len, data);
- exit(1);
- }
- break;
- case TAG_AC_SYSTEM_ERROR:
- if (conn->printACNames) {
- printf("Got a System-Error tag: %.*s\n", (int) len, data);
- } else {
- syslog(LOG_ERR, "PADO: System-Error: %.*s", (int) len, data);
- exit(1);
- }
- break;
- case TAG_GENERIC_ERROR:
- if (conn->printACNames) {
- printf("Got a Generic-Error tag: %.*s\n", (int) len, data);
- } else {
- syslog(LOG_ERR, "PADO: Generic-Error: %.*s", (int) len, data);
- exit(1);
- }
- break;
- }
-}
-
-/**********************************************************************
-*%FUNCTION: parsePADSTags
-*%ARGUMENTS:
-* type -- tag type
-* len -- tag length
-* data -- tag data
-* extra -- extra user data (pointer to PPPoEConnection structure)
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Picks interesting tags out of a PADS packet
-***********************************************************************/
-void
-parsePADSTags(UINT16_t type, UINT16_t len, unsigned char *data,
- void *extra)
-{
- PPPoEConnection *conn = (PPPoEConnection *) extra;
- switch(type) {
- case TAG_SERVICE_NAME:
- syslog(LOG_DEBUG, "PADS: Service-Name: '%.*s'", (int) len, data);
- break;
- case TAG_SERVICE_NAME_ERROR:
- syslog(LOG_ERR, "PADS: Service-Name-Error: %.*s", (int) len, data);
- fprintf(stderr, "PADS: Service-Name-Error: %.*s\n", (int) len, data);
- exit(1);
- case TAG_AC_SYSTEM_ERROR:
- syslog(LOG_ERR, "PADS: System-Error: %.*s", (int) len, data);
- fprintf(stderr, "PADS: System-Error: %.*s\n", (int) len, data);
- exit(1);
- case TAG_GENERIC_ERROR:
- syslog(LOG_ERR, "PADS: Generic-Error: %.*s", (int) len, data);
- fprintf(stderr, "PADS: Generic-Error: %.*s\n", (int) len, data);
- exit(1);
- case TAG_RELAY_SESSION_ID:
- conn->relayId.type = htons(type);
- conn->relayId.length = htons(len);
- memcpy(conn->relayId.payload, data, len);
- break;
- }
-}
-
-/***********************************************************************
-*%FUNCTION: sendPADI
-*%ARGUMENTS:
-* conn -- PPPoEConnection structure
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Sends a PADI packet
-***********************************************************************/
-void
-sendPADI(PPPoEConnection *conn)
-{
- PPPoEPacket packet;
- unsigned char *cursor = packet.payload;
- PPPoETag *svc = (PPPoETag *) (&packet.payload);
- UINT16_t namelen = 0;
- UINT16_t plen;
-
- if (conn->serviceName) {
- namelen = (UINT16_t) strlen(conn->serviceName);
- }
- plen = TAG_HDR_SIZE + namelen;
- CHECK_ROOM(cursor, packet.payload, plen);
-
- /* Set destination to Ethernet broadcast address */
- memset(packet.ethHdr.h_dest, 0xFF, ETH_ALEN);
- memcpy(packet.ethHdr.h_source, conn->myEth, ETH_ALEN);
-
- packet.ethHdr.h_proto = htons(Eth_PPPOE_Discovery);
- packet.ver = 1;
- packet.type = 1;
- packet.code = CODE_PADI;
- packet.session = 0;
-
- svc->type = TAG_SERVICE_NAME;
- svc->length = htons(namelen);
- CHECK_ROOM(cursor, packet.payload, namelen+TAG_HDR_SIZE);
-
- if (conn->serviceName) {
- memcpy(svc->payload, conn->serviceName, strlen(conn->serviceName));
- }
- cursor += namelen + TAG_HDR_SIZE;
-
- /* If we're using Host-Uniq, copy it over */
- if (conn->useHostUniq) {
- PPPoETag hostUniq;
- pid_t pid = getpid();
- hostUniq.type = htons(TAG_HOST_UNIQ);
- hostUniq.length = htons(sizeof(pid));
- memcpy(hostUniq.payload, &pid, sizeof(pid));
- CHECK_ROOM(cursor, packet.payload, sizeof(pid) + TAG_HDR_SIZE);
- memcpy(cursor, &hostUniq, sizeof(pid) + TAG_HDR_SIZE);
- cursor += sizeof(pid) + TAG_HDR_SIZE;
- plen += sizeof(pid) + TAG_HDR_SIZE;
- }
-
- packet.length = htons(plen);
-
- sendPacket(conn, conn->discoverySocket, &packet, (int) (plen + HDR_SIZE));
- if (conn->debugFile) {
- dumpPacket(conn->debugFile, &packet, "SENT");
- fprintf(conn->debugFile, "\n");
- fflush(conn->debugFile);
- }
-}
-
-/**********************************************************************
-*%FUNCTION: waitForPADO
-*%ARGUMENTS:
-* conn -- PPPoEConnection structure
-* timeout -- how long to wait (in seconds)
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Waits for a PADO packet and copies useful information
-***********************************************************************/
-void
-waitForPADO(PPPoEConnection *conn, int timeout)
-{
- fd_set readable;
- int r;
- struct timeval tv;
- PPPoEPacket packet;
- int len;
-
- struct PacketCriteria pc;
- pc.conn = conn;
- pc.acNameOK = (conn->acName) ? 0 : 1;
- pc.serviceNameOK = (conn->serviceName) ? 0 : 1;
-
- do {
- if (BPF_BUFFER_IS_EMPTY) {
- tv.tv_sec = timeout;
- tv.tv_usec = 0;
-
- FD_ZERO(&readable);
- FD_SET(conn->discoverySocket, &readable);
-
- while(1) {
- r = select(conn->discoverySocket+1, &readable, NULL, NULL, &tv);
- if (r >= 0 || errno != EINTR) break;
- }
- if (r < 0) {
- fatalSys("select (waitForPADO)");
- }
- if (r == 0) return; /* Timed out */
- }
-
- /* Get the packet */
- receivePacket(conn->discoverySocket, &packet, &len);
-
- /* Check length */
- if (ntohs(packet.length) + HDR_SIZE > len) {
- syslog(LOG_ERR, "Bogus PPPoE length field (%u)",
- (unsigned int) ntohs(packet.length));
- continue;
- }
-
-#ifdef USE_BPF
- /* If it's not a Discovery packet, loop again */
- if (etherType(&packet) != Eth_PPPOE_Discovery) continue;
-#endif
-
- if (conn->debugFile) {
- dumpPacket(conn->debugFile, &packet, "RCVD");
- fprintf(conn->debugFile, "\n");
- fflush(conn->debugFile);
- }
- /* If it's not for us, loop again */
- if (!packetIsForMe(conn, &packet)) continue;
-
- if (packet.code == CODE_PADO) {
- if (NOT_UNICAST(packet.ethHdr.h_source)) {
- printErr("Ignoring PADO packet from non-unicast MAC address");
- continue;
- }
- conn->numPADOs++;
- if (conn->printACNames) {
- printf("--------------------------------------------------\n");
- }
- parsePacket(&packet, parsePADOTags, &pc);
- if (pc.acNameOK && pc.serviceNameOK) {
- memcpy(conn->peerEth, packet.ethHdr.h_source, ETH_ALEN);
- if (conn->printACNames) {
- printf("AC-Ethernet-Address: %02x:%02x:%02x:%02x:%02x:%02x\n",
- (unsigned) conn->peerEth[0],
- (unsigned) conn->peerEth[1],
- (unsigned) conn->peerEth[2],
- (unsigned) conn->peerEth[3],
- (unsigned) conn->peerEth[4],
- (unsigned) conn->peerEth[5]);
- continue;
- }
- conn->discoveryState = STATE_RECEIVED_PADO;
- break;
- }
- }
- } while (conn->discoveryState != STATE_RECEIVED_PADO);
-}
-
-/***********************************************************************
-*%FUNCTION: sendPADR
-*%ARGUMENTS:
-* conn -- PPPoE connection structur
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Sends a PADR packet
-***********************************************************************/
-void
-sendPADR(PPPoEConnection *conn)
-{
- PPPoEPacket packet;
- PPPoETag *svc = (PPPoETag *) packet.payload;
- unsigned char *cursor = packet.payload;
-
- UINT16_t namelen = 0;
- UINT16_t plen;
-
- if (conn->serviceName) {
- namelen = (UINT16_t) strlen(conn->serviceName);
- }
- plen = TAG_HDR_SIZE + namelen;
- CHECK_ROOM(cursor, packet.payload, plen);
-
- memcpy(packet.ethHdr.h_dest, conn->peerEth, ETH_ALEN);
- memcpy(packet.ethHdr.h_source, conn->myEth, ETH_ALEN);
-
- packet.ethHdr.h_proto = htons(Eth_PPPOE_Discovery);
- packet.ver = 1;
- packet.type = 1;
- packet.code = CODE_PADR;
- packet.session = 0;
-
- svc->type = TAG_SERVICE_NAME;
- svc->length = htons(namelen);
- if (conn->serviceName) {
- memcpy(svc->payload, conn->serviceName, namelen);
- }
- cursor += namelen + TAG_HDR_SIZE;
-
- /* If we're using Host-Uniq, copy it over */
- if (conn->useHostUniq) {
- PPPoETag hostUniq;
- pid_t pid = getpid();
- hostUniq.type = htons(TAG_HOST_UNIQ);
- hostUniq.length = htons(sizeof(pid));
- memcpy(hostUniq.payload, &pid, sizeof(pid));
- CHECK_ROOM(cursor, packet.payload, sizeof(pid)+TAG_HDR_SIZE);
- memcpy(cursor, &hostUniq, sizeof(pid) + TAG_HDR_SIZE);
- cursor += sizeof(pid) + TAG_HDR_SIZE;
- plen += sizeof(pid) + TAG_HDR_SIZE;
- }
-
- /* Copy cookie and relay-ID if needed */
- if (conn->cookie.type) {
- CHECK_ROOM(cursor, packet.payload,
- ntohs(conn->cookie.length) + TAG_HDR_SIZE);
- memcpy(cursor, &conn->cookie, ntohs(conn->cookie.length) + TAG_HDR_SIZE);
- cursor += ntohs(conn->cookie.length) + TAG_HDR_SIZE;
- plen += ntohs(conn->cookie.length) + TAG_HDR_SIZE;
- }
-
- if (conn->relayId.type) {
- CHECK_ROOM(cursor, packet.payload,
- ntohs(conn->relayId.length) + TAG_HDR_SIZE);
- memcpy(cursor, &conn->relayId, ntohs(conn->relayId.length) + TAG_HDR_SIZE);
- cursor += ntohs(conn->relayId.length) + TAG_HDR_SIZE;
- plen += ntohs(conn->relayId.length) + TAG_HDR_SIZE;
- }
-
- packet.length = htons(plen);
- sendPacket(conn, conn->discoverySocket, &packet, (int) (plen + HDR_SIZE));
- if (conn->debugFile) {
- dumpPacket(conn->debugFile, &packet, "SENT");
- fprintf(conn->debugFile, "\n");
- fflush(conn->debugFile);
- }
-}
-
-/**********************************************************************
-*%FUNCTION: waitForPADS
-*%ARGUMENTS:
-* conn -- PPPoE connection info
-* timeout -- how long to wait (in seconds)
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Waits for a PADS packet and copies useful information
-***********************************************************************/
-void
-waitForPADS(PPPoEConnection *conn, int timeout)
-{
- fd_set readable;
- int r;
- struct timeval tv;
- PPPoEPacket packet;
- int len;
-
- do {
- if (BPF_BUFFER_IS_EMPTY) {
- tv.tv_sec = timeout;
- tv.tv_usec = 0;
-
- FD_ZERO(&readable);
- FD_SET(conn->discoverySocket, &readable);
-
- while(1) {
- r = select(conn->discoverySocket+1, &readable, NULL, NULL, &tv);
- if (r >= 0 || errno != EINTR) break;
- }
- if (r < 0) {
- fatalSys("select (waitForPADS)");
- }
- if (r == 0) return;
- }
-
- /* Get the packet */
- receivePacket(conn->discoverySocket, &packet, &len);
-
- /* Check length */
- if (ntohs(packet.length) + HDR_SIZE > len) {
- syslog(LOG_ERR, "Bogus PPPoE length field (%u)",
- (unsigned int) ntohs(packet.length));
- continue;
- }
-
-#ifdef USE_BPF
- /* If it's not a Discovery packet, loop again */
- if (etherType(&packet) != Eth_PPPOE_Discovery) continue;
-#endif
- if (conn->debugFile) {
- dumpPacket(conn->debugFile, &packet, "RCVD");
- fprintf(conn->debugFile, "\n");
- fflush(conn->debugFile);
- }
-
- /* If it's not from the AC, it's not for me */
- if (memcmp(packet.ethHdr.h_source, conn->peerEth, ETH_ALEN)) continue;
-
- /* If it's not for us, loop again */
- if (!packetIsForMe(conn, &packet)) continue;
-
- /* Is it PADS? */
- if (packet.code == CODE_PADS) {
- /* Parse for goodies */
- parsePacket(&packet, parsePADSTags, conn);
- conn->discoveryState = STATE_SESSION;
- break;
- }
- } while (conn->discoveryState != STATE_SESSION);
-
- /* Don't bother with ntohs; we'll just end up converting it back... */
- conn->session = packet.session;
-
- syslog(LOG_INFO, "PPP session is %d", (int) ntohs(conn->session));
-
- /* RFC 2516 says session id MUST NOT be zero or 0xFFFF */
- if (ntohs(conn->session) == 0 || ntohs(conn->session) == 0xFFFF) {
- syslog(LOG_ERR, "Access concentrator used a session value of %x -- the AC is violating RFC 2516", (unsigned int) ntohs(conn->session));
- }
-}
-
-/**********************************************************************
-*%FUNCTION: discovery
-*%ARGUMENTS:
-* conn -- PPPoE connection info structure
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Performs the PPPoE discovery phase
-***********************************************************************/
-void
-discovery(PPPoEConnection *conn)
-{
- int padiAttempts = 0;
- int padrAttempts = 0;
- int timeout = PADI_TIMEOUT;
-
- /* Skip discovery and don't open discovery socket? */
- if (conn->skipDiscovery && conn->noDiscoverySocket) {
- conn->discoveryState = STATE_SESSION;
- return;
- }
-
- conn->discoverySocket =
- openInterface(conn->ifName, Eth_PPPOE_Discovery, conn->myEth);
-
- /* Skip discovery? */
- if (conn->skipDiscovery) {
- conn->discoveryState = STATE_SESSION;
- if (conn->killSession) {
- sendPADT(conn, "RP-PPPoE: Session killed manually");
- exit(0);
- }
- return;
- }
-
- do {
- padiAttempts++;
- if (padiAttempts > MAX_PADI_ATTEMPTS) {
- rp_fatal("Timeout waiting for PADO packets");
- }
- sendPADI(conn);
- conn->discoveryState = STATE_SENT_PADI;
- waitForPADO(conn, timeout);
-
- /* If we're just probing for access concentrators, don't do
- exponential backoff. This reduces the time for an unsuccessful
- probe to 15 seconds. */
- if (!conn->printACNames) {
- timeout *= 2;
- }
- if (conn->printACNames && conn->numPADOs) {
- break;
- }
- } while (conn->discoveryState == STATE_SENT_PADI);
-
- /* If we're only printing access concentrator names, we're done */
- if (conn->printACNames) {
- printf("--------------------------------------------------\n");
- exit(0);
- }
-
- timeout = PADI_TIMEOUT;
- do {
- padrAttempts++;
- if (padrAttempts > MAX_PADI_ATTEMPTS) {
- rp_fatal("Timeout waiting for PADS packets");
- }
- sendPADR(conn);
- conn->discoveryState = STATE_SENT_PADR;
- waitForPADS(conn, timeout);
- timeout *= 2;
- } while (conn->discoveryState == STATE_SENT_PADR);
-
- /* We're done. */
- conn->discoveryState = STATE_SESSION;
- return;
-}
-
diff --git a/mdk-stage1/rp-pppoe/src/if.c b/mdk-stage1/rp-pppoe/src/if.c
deleted file mode 100644
index fec09b273..000000000
--- a/mdk-stage1/rp-pppoe/src/if.c
+++ /dev/null
@@ -1,1092 +0,0 @@
-/***********************************************************************
-*
-* if.c
-*
-* Implementation of user-space PPPoE redirector for Linux.
-*
-* Functions for opening a raw socket and reading/writing raw Ethernet frames.
-*
-* Copyright (C) 2000 by Roaring Penguin Software Inc.
-*
-* This program may be distributed according to the terms of the GNU
-* General Public License, version 2 or (at your option) any later version.
-*
-***********************************************************************/
-
-static char const RCSID[] =
-"$Id$";
-
-#include "pppoe.h"
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifdef HAVE_NETPACKET_PACKET_H
-#include <netpacket/packet.h>
-#elif defined(HAVE_LINUX_IF_PACKET_H)
-#include <linux/if_packet.h>
-#endif
-
-#ifdef HAVE_NET_ETHERNET_H
-#include <net/ethernet.h>
-#endif
-
-#ifdef HAVE_ASM_TYPES_H
-#include <asm/types.h>
-#endif
-
-#ifdef HAVE_SYS_IOCTL_H
-#include <sys/ioctl.h>
-#endif
-
-#ifdef HAVE_SYSLOG_H
-#include <syslog.h>
-#endif
-
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifdef HAVE_NET_IF_ARP_H
-#include <net/if_arp.h>
-#endif
-
-#ifdef USE_DLPI
-
-#include <limits.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/stream.h>
-#include <sys/stropts.h>
-#include <sys/dlpi.h>
-#include <sys/bufmod.h>
-#include <stdio.h>
-#include <signal.h>
-#include <stropts.h>
-
-/* function declarations */
-
-void dlpromisconreq( int fd, u_long level);
-void dlinforeq(int fd);
-void dlunitdatareq(int fd, u_char *addrp, int addrlen, u_long minpri, u_long maxpri, u_char *datap, int datalen);
-void dlinfoack(int fd, char *bufp);
-void dlbindreq(int fd, u_long sap, u_long max_conind, u_long service_mode, u_long conn_mgmt, u_long xidtest);
-void dlattachreq(int fd, u_long ppa);
-void dlokack(int fd, char *bufp);
-void dlbindack(int fd, char *bufp);
-int strioctl(int fd, int cmd, int timout, int len, char *dp);
-void strgetmsg(int fd, struct strbuf *ctlp, struct strbuf *datap, int *flagsp, char *caller);
-void sigalrm(int sig);
-void expecting(int prim, union DL_primitives *dlp);
-char *dlprim(u_long prim);
-
-/* #define DL_DEBUG */
-
-static int dl_abssaplen;
-static int dl_saplen;
-static int dl_addrlen;
-
-#endif
-
-#ifdef USE_BPF
-#include <net/bpf.h>
-#include <fcntl.h>
-
-unsigned char *bpfBuffer; /* Packet filter buffer */
-int bpfLength = 0; /* Packet filter buffer length */
-int bpfSize = 0; /* Number of unread bytes in buffer */
-int bpfOffset = 0; /* Current offset in bpfBuffer */
-#endif
-
-/* Initialize frame types to RFC 2516 values. Some broken peers apparently
- use different frame types... sigh... */
-
-UINT16_t Eth_PPPOE_Discovery = ETH_PPPOE_DISCOVERY;
-UINT16_t Eth_PPPOE_Session = ETH_PPPOE_SESSION;
-
-/**********************************************************************
-*%FUNCTION: etherType
-*%ARGUMENTS:
-* packet -- a received PPPoE packet
-*%RETURNS:
-* ethernet packet type (see /usr/include/net/ethertypes.h)
-*%DESCRIPTION:
-* Checks the ethernet packet header to determine its type.
-* We should only be receveing DISCOVERY and SESSION types if the BPF
-* is set up correctly. Logs an error if an unexpected type is received.
-* Note that the ethernet type names come from "pppoe.h" and the packet
-* packet structure names use the LINUX dialect to maintain consistency
-* with the rest of this file. See the BSD section of "pppoe.h" for
-* translations of the data structure names.
-***********************************************************************/
-UINT16_t
-etherType(PPPoEPacket *packet)
-{
- UINT16_t type = (UINT16_t) ntohs(packet->ethHdr.h_proto);
- if (type != Eth_PPPOE_Discovery && type != Eth_PPPOE_Session) {
- syslog(LOG_ERR, "Invalid ether type 0x%x", type);
- }
- return type;
-}
-
-#ifdef USE_BPF
-/**********************************************************************
-*%FUNCTION: getHWaddr
-*%ARGUMENTS:
-* ifname -- name of interface
-* hwaddr -- buffer for ehthernet address
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Locates the Ethernet hardware address for an interface.
-***********************************************************************/
-void
-getHWaddr(int sock, char const *ifname, unsigned char *hwaddr)
-{
- char inbuf[8192];
- const struct sockaddr_dl *sdl;
- struct ifconf ifc;
- struct ifreq ifreq, *ifr;
- int i;
- int found = 0;
-
- ifc.ifc_len = sizeof(inbuf);
- ifc.ifc_buf = inbuf;
- if (ioctl(sock, SIOCGIFCONF, &ifc) < 0) {
- fatalSys("SIOCGIFCONF");
- }
- ifr = ifc.ifc_req;
- ifreq.ifr_name[0] = '\0';
- for (i = 0; i < ifc.ifc_len; ) {
- ifr = (struct ifreq *)((caddr_t)ifc.ifc_req + i);
- i += sizeof(ifr->ifr_name) +
- (ifr->ifr_addr.sa_len > sizeof(struct sockaddr)
- ? ifr->ifr_addr.sa_len
- : sizeof(struct sockaddr));
- if (ifr->ifr_addr.sa_family == AF_LINK) {
- sdl = (const struct sockaddr_dl *) &ifr->ifr_addr;
- if ((sdl->sdl_type == IFT_ETHER) &&
- (sdl->sdl_alen == ETH_ALEN) &&
- !strncmp(ifname, ifr->ifr_name, sizeof(ifr->ifr_name))) {
- if (found) {
- char buffer[256];
- sprintf(buffer, "interface %.16s has more than one ethernet address", ifname);
- rp_fatal(buffer);
- } else {
- found = 1;
- memcpy(hwaddr, LLADDR(sdl), ETH_ALEN);
- }
- }
- }
- }
- if (!found) {
- char buffer[256];
- sprintf(buffer, "interface %.16s has no ethernet address", ifname);
- rp_fatal(buffer);
- }
-}
-
-/**********************************************************************
-*%FUNCTION: initFilter
-*%ARGUMENTS:
-* fd -- file descriptor of BSD device
-* type -- Ethernet frame type (0 for watch mode)
-* hwaddr -- buffer with ehthernet address
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Initializes the packet filter rules.
-***********************************************************************/
-void
-initFilter(int fd, UINT16_t type, unsigned char *hwaddr)
-{
- /* Packet Filter Instructions:
- * Note that the ethernet type names come from "pppoe.h" and are
- * used here to maintain consistency with the rest of this file. */
- static struct bpf_insn bpfRun[] = { /* run PPPoE */
- BPF_STMT(BPF_LD+BPF_H+BPF_ABS, 12), /* ethernet type */
- BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, ETH_PPPOE_SESSION, 5, 0),
- BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, ETH_PPPOE_DISCOVERY, 0, 9),
- BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 0), /* first word of dest. addr */
-#define PPPOE_BCAST_CMPW 4 /* offset of word compare */
- BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, 0, 0, 2),
- BPF_STMT(BPF_LD+BPF_H+BPF_ABS, 4), /* next 1/2 word of dest. */
-#define PPPOE_BCAST_CMPH 6 /* offset of 1/2 word compare */
- BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, 0, 4, 0),
- BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 0), /* first word of dest. addr */
-#define PPPOE_FILTER_CMPW 8 /* offset of word compare */
- BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, 0, 0, 3),
- BPF_STMT(BPF_LD+BPF_H+BPF_ABS, 4), /* next 1/2 word of dest. */
-#define PPPOE_FILTER_CMPH 10 /* offset of 1/rd compare */
- BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, 0, 0, 1),
- BPF_STMT(BPF_RET+BPF_K, (u_int) -1), /* keep packet */
- BPF_STMT(BPF_RET+BPF_K, 0), /* drop packet */
- };
-
- /* Fix the potentially varying parts */
- bpfRun[1].code = (u_short) BPF_JMP+BPF_JEQ+BPF_K;
- bpfRun[1].jt = 5;
- bpfRun[1].jf = 0;
- bpfRun[1].k = Eth_PPPOE_Session;
-
- bpfRun[2].code = (u_short) BPF_JMP+BPF_JEQ+BPF_K;
- bpfRun[2].jt = 0;
- bpfRun[2].jf = 9;
- bpfRun[2].k = Eth_PPPOE_Discovery;
-
- {
- struct bpf_insn bpfInsn[sizeof(bpfRun) / sizeof(bpfRun[0])];
- struct bpf_program bpfProgram;
- memcpy(bpfInsn, bpfRun, sizeof(bpfRun));
- bpfInsn[PPPOE_BCAST_CMPW].k = ((0xff << 24) | (0xff << 16) |
- (0xff << 8) | 0xff);
- bpfInsn[PPPOE_BCAST_CMPH].k = ((0xff << 8) | 0xff);
- bpfInsn[PPPOE_FILTER_CMPW].k = ((hwaddr[0] << 24) | (hwaddr[1] << 16) |
- (hwaddr[2] << 8) | hwaddr[3]);
- bpfInsn[PPPOE_FILTER_CMPH].k = ((hwaddr[4] << 8) | hwaddr[5]);
- bpfProgram.bf_len = (sizeof(bpfInsn) / sizeof(bpfInsn[0]));
- bpfProgram.bf_insns = &bpfInsn[0];
-
- /* Apply the filter */
- if (ioctl(fd, BIOCSETF, &bpfProgram) < 0) {
- fatalSys("ioctl(BIOCSETF)");
- }
- }
-}
-
-/**********************************************************************
-*%FUNCTION: openInterface
-*%ARGUMENTS:
-* ifname -- name of interface
-* type -- Ethernet frame type (0 for any frame type)
-* hwaddr -- if non-NULL, set to the hardware address
-*%RETURNS:
-* A file descriptor for talking with the Ethernet card. Exits on error.
-* Note that the Linux version of this routine returns a socket instead.
-*%DESCRIPTION:
-* Opens a BPF on an interface for all PPPoE traffic (discovery and
-* session). If 'type' is 0, uses promiscuous mode to watch any PPPoE
-* traffic on this network.
-***********************************************************************/
-int
-openInterface(char const *ifname, UINT16_t type, unsigned char *hwaddr)
-{
- static int fd = -1;
- char bpfName[32];
- u_int optval;
- struct bpf_version bpf_ver;
- struct ifreq ifr;
- int sock;
- int i;
-
- /* BSD only opens one socket for both Discovery and Session packets */
- if (fd >= 0) {
- return fd;
- }
-
- /* Find a free BPF device */
- for (i = 0; i < 256; i++) {
- sprintf(bpfName, "/dev/bpf%d", i);
- if (((fd = open(bpfName, O_RDWR, 0)) >= 0) ||
- (errno != EBUSY)) {
- break;
- }
- }
- if (fd < 0) {
- switch (errno) {
- case EACCES: /* permission denied */
- {
- char buffer[256];
- sprintf(buffer, "Cannot open %.32s -- pppoe must be run as root.", bpfName);
- rp_fatal(buffer);
- }
- break;
- case EBUSY:
- case ENOENT: /* no such file */
- if (i == 0) {
- rp_fatal("No /dev/bpf* devices (check your kernel configuration for BPF support)");
- } else {
- rp_fatal("All /dev/bpf* devices are in use");
- }
- break;
- }
- fatalSys(bpfName);
- }
-
- if ((sock = socket(AF_LOCAL, SOCK_DGRAM, 0)) < 0) {
- fatalSys("socket");
- }
-
- /* Check that the interface is up */
- strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(sock, SIOCGIFFLAGS, &ifr) < 0) {
- fatalSys("ioctl(SIOCGIFFLAGS)");
- }
- if ((ifr.ifr_flags & IFF_UP) == 0) {
- char buffer[256];
- sprintf(buffer, "Interface %.16s is not up\n", ifname);
- rp_fatal(buffer);
- }
-
- /* Fill in hardware address and initialize the packet filter rules */
- if (hwaddr == NULL) {
- rp_fatal("openInterface: no hwaddr arg.");
- }
- getHWaddr(sock, ifname, hwaddr);
- initFilter(fd, type, hwaddr);
-
- /* Sanity check on MTU -- apparently does not work on OpenBSD */
-#if !defined(__OpenBSD__)
- strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(sock, SIOCGIFMTU, &ifr) < 0) {
- fatalSys("ioctl(SIOCGIFMTU)");
- }
- if (ifr.ifr_mtu < ETH_DATA_LEN) {
- char buffer[256];
- sprintf(buffer, "Interface %.16s has MTU of %d -- should be %d. You may have serious connection problems.",
- ifname, ifr.ifr_mtu, ETH_DATA_LEN);
- printErr(buffer);
- }
-#endif
-
- /* done with the socket */
- if (close(sock) < 0) {
- fatalSys("close");
- }
-
- /* Check the BPF version number */
- if (ioctl(fd, BIOCVERSION, &bpf_ver) < 0) {
- fatalSys("ioctl(BIOCVERSION)");
- }
- if ((bpf_ver.bv_major != BPF_MAJOR_VERSION) ||
- (bpf_ver.bv_minor < BPF_MINOR_VERSION)) {
- char buffer[256];
- sprintf(buffer, "Unsupported BPF version: %d.%d (kernel: %d.%d)",
- BPF_MAJOR_VERSION, BPF_MINOR_VERSION,
- bpf_ver.bv_major, bpf_ver.bv_minor);
- rp_fatal(buffer);
- }
-
- /* allocate a receive packet buffer */
- if (ioctl(fd, BIOCGBLEN, &bpfLength) < 0) {
- fatalSys("ioctl(BIOCGBLEN)");
- }
- if (!(bpfBuffer = (unsigned char *) malloc(bpfLength))) {
- rp_fatal("malloc");
- }
-
- /* reads should return as soon as there is a packet available */
- optval = 1;
- if (ioctl(fd, BIOCIMMEDIATE, &optval) < 0) {
- fatalSys("ioctl(BIOCIMMEDIATE)");
- }
-
- /* Bind the interface to the filter */
- strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(fd, BIOCSETIF, &ifr) < 0) {
- char buffer[256];
- sprintf(buffer, "ioctl(BIOCSETIF) can't select interface %.16s",
- ifname);
- rp_fatal(buffer);
- }
-
- syslog(LOG_INFO, "Interface=%.16s HWaddr=%02X:%02X:%02X:%02X:%02X:%02X Device=%.32s Buffer size=%d",
- ifname,
- hwaddr[0], hwaddr[1], hwaddr[2],
- hwaddr[3], hwaddr[4], hwaddr[5],
- bpfName, bpfLength);
- return fd;
-}
-
-#endif /* USE_BPF */
-
-#ifdef USE_LINUX_PACKET
-/**********************************************************************
-*%FUNCTION: openInterface
-*%ARGUMENTS:
-* ifname -- name of interface
-* type -- Ethernet frame type
-* hwaddr -- if non-NULL, set to the hardware address
-*%RETURNS:
-* A raw socket for talking to the Ethernet card. Exits on error.
-*%DESCRIPTION:
-* Opens a raw Ethernet socket
-***********************************************************************/
-int
-openInterface(char const *ifname, UINT16_t type, unsigned char *hwaddr)
-{
- int optval=1;
- int fd;
- struct ifreq ifr;
- int domain, stype;
-
-#ifdef HAVE_STRUCT_SOCKADDR_LL
- struct sockaddr_ll sa;
-#else
- struct sockaddr sa;
-#endif
-
- memset(&sa, 0, sizeof(sa));
-
-#ifdef HAVE_STRUCT_SOCKADDR_LL
- domain = PF_PACKET;
- stype = SOCK_RAW;
-#else
- domain = PF_INET;
- stype = SOCK_PACKET;
-#endif
-
- if ((fd = socket(domain, stype, htons(type))) < 0) {
- /* Give a more helpful message for the common error case */
- if (errno == EPERM) {
- rp_fatal("Cannot create raw socket -- pppoe must be run as root.");
- }
- fatalSys("socket");
- }
-
- if (setsockopt(fd, SOL_SOCKET, SO_BROADCAST, &optval, sizeof(optval)) < 0) {
- fatalSys("setsockopt");
- }
-
- /* Fill in hardware address */
- if (hwaddr) {
- strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(fd, SIOCGIFHWADDR, &ifr) < 0) {
- fatalSys("ioctl(SIOCGIFHWADDR)");
- }
- memcpy(hwaddr, ifr.ifr_hwaddr.sa_data, ETH_ALEN);
-#ifdef ARPHRD_ETHER
- if (ifr.ifr_hwaddr.sa_family != ARPHRD_ETHER) {
- char buffer[256];
- sprintf(buffer, "Interface %.16s is not Ethernet", ifname);
- rp_fatal(buffer);
- }
-#endif
- if (NOT_UNICAST(hwaddr)) {
- char buffer[256];
- sprintf(buffer,
- "Interface %.16s has broadcast/multicast MAC address??",
- ifname);
- rp_fatal(buffer);
- }
- }
-
- /* Sanity check on MTU */
- strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(fd, SIOCGIFMTU, &ifr) < 0) {
- fatalSys("ioctl(SIOCGIFMTU)");
- }
- if (ifr.ifr_mtu < ETH_DATA_LEN) {
- char buffer[256];
- sprintf(buffer, "Interface %.16s has MTU of %d -- should be %d. You may have serious connection problems.",
- ifname, ifr.ifr_mtu, ETH_DATA_LEN);
- printErr(buffer);
- }
-
-#ifdef HAVE_STRUCT_SOCKADDR_LL
- /* Get interface index */
- sa.sll_family = AF_PACKET;
- sa.sll_protocol = htons(type);
-
- strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(fd, SIOCGIFINDEX, &ifr) < 0) {
- fatalSys("ioctl(SIOCFIGINDEX): Could not get interface index");
- }
- sa.sll_ifindex = ifr.ifr_ifindex;
-
-#else
- strcpy(sa.sa_data, ifname);
-#endif
-
- /* We're only interested in packets on specified interface */
- if (bind(fd, (struct sockaddr *) &sa, sizeof(sa)) < 0) {
- fatalSys("bind");
- }
-
- return fd;
-}
-
-#endif /* USE_LINUX */
-
-/***********************************************************************
-*%FUNCTION: sendPacket
-*%ARGUMENTS:
-* sock -- socket to send to
-* pkt -- the packet to transmit
-* size -- size of packet (in bytes)
-*%RETURNS:
-* 0 on success; -1 on failure
-*%DESCRIPTION:
-* Transmits a packet
-***********************************************************************/
-int
-sendPacket(PPPoEConnection *conn, int sock, PPPoEPacket *pkt, int size)
-{
-#if defined(USE_BPF)
- if (write(sock, pkt, size) < 0) {
- sysErr("write (sendPacket)");
- return -1;
- }
-#elif defined(HAVE_STRUCT_SOCKADDR_LL)
- if (send(sock, pkt, size, 0) < 0) {
- sysErr("send (sendPacket)");
- return -1;
- }
-#else
-#ifdef USE_DLPI
-
-#define ABS(x) ((x) < 0 ? -(x) : (x))
-
- u_char addr[MAXDLADDR];
- u_char phys[MAXDLADDR];
- u_char sap[MAXDLADDR];
- u_char xmitbuf[MAXDLBUF];
- int data_size;
-
- short tmp_sap;
-
- tmp_sap = htons(pkt->ethHdr.h_proto);
- data_size = size - sizeof(struct ethhdr);
-
- memcpy((char *)phys, (char *)pkt->ethHdr.h_dest, ETHERADDRL);
- memcpy((char *)sap, (char *)&tmp_sap, sizeof(ushort_t));
- memcpy((char *)xmitbuf, (char *)pkt + sizeof(struct ethhdr), data_size);
-
- if (dl_saplen > 0) { /* order is sap+phys */
- (void) memcpy((char*)addr, (char*)&sap, dl_abssaplen);
- (void) memcpy((char*)addr+dl_abssaplen, (char*)phys, ETHERADDRL);
- } else { /* order is phys+sap */
- (void) memcpy((char*)addr, (char*)phys, ETHERADDRL);
- (void) memcpy((char*)addr+ETHERADDRL, (char*)&sap, dl_abssaplen);
- }
-
-#ifdef DL_DEBUG
- printf("%02x:%02x:%02x:%02x:%02x:%02x %02x:%02x\n",
- addr[0],addr[1],addr[2],addr[3],addr[4],addr[5],
- addr[6],addr[7]);
-#endif
-
- dlunitdatareq(sock, addr, dl_addrlen, 0, 0, xmitbuf, data_size);
-
-
-
-#else
- struct sockaddr sa;
-
- if (!conn) {
- rp_fatal("relay and server not supported on Linux 2.0 kernels");
- }
- strcpy(sa.sa_data, conn->ifName);
- if (sendto(sock, pkt, size, 0, &sa, sizeof(sa)) < 0) {
- sysErr("sendto (sendPacket)");
- return -1;
- }
-#endif
-#endif
- return 0;
-}
-
-#ifdef USE_BPF
-/***********************************************************************
-*%FUNCTION: clearPacketHeader
-*%ARGUMENTS:
-* pkt -- packet that needs its head clearing
-*%RETURNS:
-* nothing
-*%DESCRIPTION:
-* Clears a PPPoE packet header after a truncated packet has been
-* received. Insures that the packet will fail any integrity tests
-* and will be discarded by upper level routines. Also resets the
-* bpfSize and bpfOffset variables to force a new read on the next
-* call to receivePacket().
-***********************************************************************/
-void
-clearPacketHeader(PPPoEPacket *pkt)
-{
- bpfSize = bpfOffset = 0;
- memset(pkt, 0, HDR_SIZE);
-}
-#endif
-
-/***********************************************************************
-*%FUNCTION: receivePacket
-*%ARGUMENTS:
-* sock -- socket to read from
-* pkt -- place to store the received packet
-* size -- set to size of packet in bytes
-*%RETURNS:
-* >= 0 if all OK; < 0 if error
-*%DESCRIPTION:
-* Receives a packet
-***********************************************************************/
-int
-receivePacket(int sock, PPPoEPacket *pkt, int *size)
-{
-#ifdef USE_BPF
- struct bpf_hdr hdr;
- int seglen, copylen;
-
- if (bpfSize <= 0) {
- bpfOffset = 0;
- if ((bpfSize = read(sock, bpfBuffer, bpfLength)) < 0) {
- sysErr("read (receivePacket)");
- return -1;
- }
- }
- if (bpfSize < sizeof(hdr)) {
- syslog(LOG_ERR, "Truncated bpf packet header: len=%d", bpfSize);
- clearPacketHeader(pkt); /* resets bpfSize and bpfOffset */
- return 0;
- }
- memcpy(&hdr, bpfBuffer + bpfOffset, sizeof(hdr));
- if (hdr.bh_caplen != hdr.bh_datalen) {
- syslog(LOG_ERR, "Truncated bpf packet: caplen=%d, datalen=%d",
- hdr.bh_caplen, hdr.bh_datalen);
- clearPacketHeader(pkt); /* resets bpfSize and bpfOffset */
- return 0;
- }
- seglen = hdr.bh_hdrlen + hdr.bh_caplen;
- if (seglen > bpfSize) {
- syslog(LOG_ERR, "Truncated bpf packet: seglen=%d, bpfSize=%d",
- seglen, bpfSize);
- clearPacketHeader(pkt); /* resets bpfSize and bpfOffset */
- return 0;
- }
- seglen = BPF_WORDALIGN(seglen);
- *size = copylen = ((hdr.bh_caplen < sizeof(PPPoEPacket)) ?
- hdr.bh_caplen : sizeof(PPPoEPacket));
- memcpy(pkt, bpfBuffer + bpfOffset + hdr.bh_hdrlen, copylen);
- if (seglen >= bpfSize) {
- bpfSize = bpfOffset = 0;
- } else {
- bpfSize -= seglen;
- bpfOffset += seglen;
- }
-#else
-#ifdef USE_DLPI
- struct strbuf data;
- int flags = 0;
- int retval;
-
- data.buf = (char *) pkt;
- data.maxlen = MAXDLBUF;
- data.len = 0;
-
- if ((retval = getmsg(sock, NULL, &data, &flags)) < 0) {
- sysErr("read (receivePacket)");
- return -1;
- }
-
- *size = data.len;
-
-#else
- if ((*size = recv(sock, pkt, sizeof(PPPoEPacket), 0)) < 0) {
- sysErr("recv (receivePacket)");
- return -1;
- }
-#endif
-#endif
- return 0;
-}
-
-#ifdef USE_DLPI
-/**********************************************************************
-*%FUNCTION: openInterface
-*%ARGUMENTS:
-* ifname -- name of interface
-* type -- Ethernet frame type
-* hwaddr -- if non-NULL, set to the hardware address
-*%RETURNS:
-* A raw socket for talking to the Ethernet card. Exits on error.
-*%DESCRIPTION:
-* Opens a raw Ethernet socket
-***********************************************************************/
-int
-openInterface(char const *ifname, UINT16_t type, unsigned char *hwaddr)
-{
- int fd;
- long buf[MAXDLBUF];
-
- union DL_primitives *dlp;
-
- char base_dev[PATH_MAX];
- int ppa;
-
- if(strlen(ifname) > PATH_MAX) {
- rp_fatal("socket: string to long");
- }
-
- ppa = atoi(&ifname[strlen(ifname)-1]);
- strncpy(base_dev, ifname, PATH_MAX);
- base_dev[strlen(base_dev)-1] = '\0';
-
- if (( fd = open(base_dev, O_RDWR)) < 0) {
- /* Give a more helpful message for the common error case */
- if (errno == EPERM) {
- rp_fatal("Cannot create raw socket -- pppoe must be run as root.");
- }
- fatalSys("socket");
- }
-
- dlinforeq(fd);
- dlinfoack(fd, (char *)buf);
-
- dlp = (union DL_primitives*) buf;
-
- dl_abssaplen = ABS(dlp->info_ack.dl_sap_length);
- dl_saplen = dlp->info_ack.dl_sap_length;
- if (ETHERADDRL != (dlp->info_ack.dl_addr_length - dl_abssaplen))
- fatalSys("invalid destination physical address length");
- dl_addrlen = dl_abssaplen + ETHERADDRL;
-
- dlattachreq(fd, ppa);
- dlokack(fd, (char *)buf);
-
- dlbindreq(fd, type, 0, DL_CLDLS, 0, 0);
- dlbindack(fd, (char *)buf);
-
- if ( strioctl(fd, DLIOCRAW, -1, 0, NULL) < 0 ) {
- fatalSys("DLIOCRAW");
- }
-
- if (ioctl(fd, I_FLUSH, FLUSHR) < 0) fatalSys("I_FLUSH");
-
- return fd;
-}
-
-/* cloned from dlcommon.c */
-
-void dlpromisconreq(int fd, u_long level)
-{
- dl_promiscon_req_t promiscon_req;
- struct strbuf ctl;
- int flags;
-
- promiscon_req.dl_primitive = DL_PROMISCON_REQ;
- promiscon_req.dl_level = level;
-
- ctl.maxlen = 0;
- ctl.len = sizeof (promiscon_req);
- ctl.buf = (char *) &promiscon_req;
-
- flags = 0;
-
- if (putmsg(fd, &ctl, (struct strbuf*) NULL, flags) < 0)
- fatalSys("dlpromiscon: putmsg");
-
-}
-
-void dlinforeq(int fd)
-{
- dl_info_req_t info_req;
- struct strbuf ctl;
- int flags;
-
- info_req.dl_primitive = DL_INFO_REQ;
-
- ctl.maxlen = 0;
- ctl.len = sizeof (info_req);
- ctl.buf = (char *) &info_req;
-
- flags = RS_HIPRI;
-
- if (putmsg(fd, &ctl, (struct strbuf*) NULL, flags) < 0)
- fatalSys("dlinforeq: putmsg");
-}
-
-void dlunitdatareq(int fd, u_char *addrp, int addrlen, u_long minpri, u_long maxpri, u_char *datap, int datalen)
-{
- long buf[MAXDLBUF];
- union DL_primitives *dlp;
- struct strbuf data, ctl;
-
- dlp = (union DL_primitives*) buf;
-
- dlp->unitdata_req.dl_primitive = DL_UNITDATA_REQ;
- dlp->unitdata_req.dl_dest_addr_length = addrlen;
- dlp->unitdata_req.dl_dest_addr_offset = sizeof (dl_unitdata_req_t);
- dlp->unitdata_req.dl_priority.dl_min = minpri;
- dlp->unitdata_req.dl_priority.dl_max = maxpri;
-
- (void) memcpy(OFFADDR(dlp, sizeof (dl_unitdata_req_t)), addrp, addrlen);
-
- ctl.maxlen = 0;
- ctl.len = sizeof (dl_unitdata_req_t) + addrlen;
- ctl.buf = (char *) buf;
-
- data.maxlen = 0;
- data.len = datalen;
- data.buf = (char *) datap;
-
- if (putmsg(fd, &ctl, &data, 0) < 0)
- fatalSys("dlunitdatareq: putmsg");
-}
-
-void dlinfoack(int fd, char *bufp)
-{
- union DL_primitives *dlp;
- struct strbuf ctl;
- int flags;
-
- ctl.maxlen = MAXDLBUF;
- ctl.len = 0;
- ctl.buf = bufp;
-
- strgetmsg(fd, &ctl, (struct strbuf*)NULL, &flags, "dlinfoack");
-
- dlp = (union DL_primitives *) ctl.buf;
-
- expecting(DL_INFO_ACK, dlp);
-
- if (ctl.len < sizeof (dl_info_ack_t)) {
- char buffer[256];
- sprintf(buffer, "dlinfoack: response ctl.len too short: %d", ctl.len);
- rp_fatal(buffer);
- }
-
- if (flags != RS_HIPRI)
- rp_fatal("dlinfoack: DL_INFO_ACK was not M_PCPROTO");
-
- if (ctl.len < sizeof (dl_info_ack_t)) {
- char buffer[256];
- sprintf(buffer, "dlinfoack: short response ctl.len: %d", ctl.len);
- rp_fatal(buffer);
- }
-}
-
-void dlbindreq(int fd, u_long sap, u_long max_conind, u_long service_mode, u_long conn_mgmt, u_long xidtest)
-{
- dl_bind_req_t bind_req;
- struct strbuf ctl;
- int flags;
-
- bind_req.dl_primitive = DL_BIND_REQ;
- bind_req.dl_sap = sap;
- bind_req.dl_max_conind = max_conind;
- bind_req.dl_service_mode = service_mode;
- bind_req.dl_conn_mgmt = conn_mgmt;
- bind_req.dl_xidtest_flg = xidtest;
-
- ctl.maxlen = 0;
- ctl.len = sizeof (bind_req);
- ctl.buf = (char *) &bind_req;
-
- flags = 0;
-
- if (putmsg(fd, &ctl, (struct strbuf*) NULL, flags) < 0)
- fatalSys("dlbindreq: putmsg");
-}
-
-void dlattachreq(int fd, u_long ppa)
-{
- dl_attach_req_t attach_req;
- struct strbuf ctl;
- int flags;
-
- attach_req.dl_primitive = DL_ATTACH_REQ;
- attach_req.dl_ppa = ppa;
-
- ctl.maxlen = 0;
- ctl.len = sizeof (attach_req);
- ctl.buf = (char *) &attach_req;
-
- flags = 0;
-
- if (putmsg(fd, &ctl, (struct strbuf*) NULL, flags) < 0)
- fatalSys("dlattachreq: putmsg");
-}
-
-void dlokack(int fd, char *bufp)
-{
- union DL_primitives *dlp;
- struct strbuf ctl;
- int flags;
-
- ctl.maxlen = MAXDLBUF;
- ctl.len = 0;
- ctl.buf = bufp;
-
- strgetmsg(fd, &ctl, (struct strbuf*)NULL, &flags, "dlokack");
-
- dlp = (union DL_primitives *) ctl.buf;
-
- expecting(DL_OK_ACK, dlp);
-
- if (ctl.len < sizeof (dl_ok_ack_t)) {
- char buffer[256];
- sprintf(buffer, "dlokack: response ctl.len too short: %d", ctl.len);
- rp_fatal(buffer);
- }
-
- if (flags != RS_HIPRI)
- rp_fatal("dlokack: DL_OK_ACK was not M_PCPROTO");
-
- if (ctl.len < sizeof (dl_ok_ack_t)) {
- char buffer[256];
- sprintf(buffer, "dlokack: short response ctl.len: %d", ctl.len);
- rp_fatal(buffer);
- }
-}
-
-void dlbindack(int fd, char *bufp)
-{
- union DL_primitives *dlp;
- struct strbuf ctl;
- int flags;
-
- ctl.maxlen = MAXDLBUF;
- ctl.len = 0;
- ctl.buf = bufp;
-
- strgetmsg(fd, &ctl, (struct strbuf*)NULL, &flags, "dlbindack");
-
- dlp = (union DL_primitives *) ctl.buf;
-
- expecting(DL_BIND_ACK, dlp);
-
- if (flags != RS_HIPRI)
- rp_fatal("dlbindack: DL_OK_ACK was not M_PCPROTO");
-
- if (ctl.len < sizeof (dl_bind_ack_t)) {
- char buffer[256];
- sprintf(buffer, "dlbindack: short response ctl.len: %d", ctl.len);
- rp_fatal(buffer);
- }
-}
-
-int strioctl(int fd, int cmd, int timout, int len, char *dp)
-{
- struct strioctl sioc;
- int rc;
-
- sioc.ic_cmd = cmd;
- sioc.ic_timout = timout;
- sioc.ic_len = len;
- sioc.ic_dp = dp;
- rc = ioctl(fd, I_STR, &sioc);
-
- if (rc < 0)
- return (rc);
- else
- return (sioc.ic_len);
-}
-
-void strgetmsg(int fd, struct strbuf *ctlp, struct strbuf *datap, int *flagsp, char *caller)
-{
- int rc;
- static char errmsg[80];
-
- /*
- * Start timer.
- */
- (void) signal(SIGALRM, sigalrm);
- if (alarm(MAXWAIT) < 0) {
- (void) sprintf(errmsg, "%s: alarm", caller);
- fatalSys(errmsg);
- }
-
- /*
- * Set flags argument and issue getmsg().
- */
- *flagsp = 0;
- if ((rc = getmsg(fd, ctlp, datap, flagsp)) < 0) {
- (void) sprintf(errmsg, "%s: getmsg", caller);
- fatalSys(errmsg);
- }
-
- /*
- * Stop timer.
- */
- if (alarm(0) < 0) {
- (void) sprintf(errmsg, "%s: alarm", caller);
- fatalSys(errmsg);
- }
-
- /*
- * Check for MOREDATA and/or MORECTL.
- */
- if ((rc & (MORECTL | MOREDATA)) == (MORECTL | MOREDATA)) {
- char buffer[256];
- sprintf(buffer, "%s: MORECTL|MOREDATA", caller);
- rp_fatal(buffer);
- }
-
- if (rc & MORECTL) {
- char buffer[256];
- sprintf(buffer, "%s: MORECTL", caller);
- rp_fatal(buffer);
- }
-
- if (rc & MOREDATA) {
- char buffer[256];
- sprintf(buffer, "%s: MOREDATA", caller);
- rp_fatal(buffer);
- }
-
- /*
- * Check for at least sizeof (long) control data portion.
- */
- if (ctlp->len < sizeof (long)) {
- char buffer[256];
- sprintf(buffer, "getmsg: control portion length < sizeof (long): %d", ctlp->len);
- rp_fatal(buffer);
- }
-}
-
-void sigalrm(int sig)
-{
- (void) rp_fatal("sigalrm: TIMEOUT");
-}
-
-void expecting(int prim, union DL_primitives *dlp)
-{
- if (dlp->dl_primitive != (u_long)prim) {
- char buffer[256];
- sprintf(buffer, "expected %s got %s", dlprim(prim), dlprim(dlp->dl_primitive));
- rp_fatal(buffer);
- exit(1);
- }
-}
-
-char *dlprim(u_long prim)
-{
- static char primbuf[80];
-
- switch ((int)prim) {
- CASERET(DL_INFO_REQ);
- CASERET(DL_INFO_ACK);
- CASERET(DL_ATTACH_REQ);
- CASERET(DL_DETACH_REQ);
- CASERET(DL_BIND_REQ);
- CASERET(DL_BIND_ACK);
- CASERET(DL_UNBIND_REQ);
- CASERET(DL_OK_ACK);
- CASERET(DL_ERROR_ACK);
- CASERET(DL_SUBS_BIND_REQ);
- CASERET(DL_SUBS_BIND_ACK);
- CASERET(DL_UNITDATA_REQ);
- CASERET(DL_UNITDATA_IND);
- CASERET(DL_UDERROR_IND);
- CASERET(DL_UDQOS_REQ);
- CASERET(DL_CONNECT_REQ);
- CASERET(DL_CONNECT_IND);
- CASERET(DL_CONNECT_RES);
- CASERET(DL_CONNECT_CON);
- CASERET(DL_TOKEN_REQ);
- CASERET(DL_TOKEN_ACK);
- CASERET(DL_DISCONNECT_REQ);
- CASERET(DL_DISCONNECT_IND);
- CASERET(DL_RESET_REQ);
- CASERET(DL_RESET_IND);
- CASERET(DL_RESET_RES);
- CASERET(DL_RESET_CON);
- default:
- (void) sprintf(primbuf, "unknown primitive 0x%lx", prim);
- return (primbuf);
- }
-}
-
-#endif /* USE_DLPI */
diff --git a/mdk-stage1/rp-pppoe/src/install-sh b/mdk-stage1/rp-pppoe/src/install-sh
deleted file mode 100755
index 58719246f..000000000
--- a/mdk-stage1/rp-pppoe/src/install-sh
+++ /dev/null
@@ -1,238 +0,0 @@
-#! /bin/sh
-#
-# install - install a program, script, or datafile
-# This comes from X11R5.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch.
-#
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
- case $1 in
- -c) instcmd="$cpprog"
- shift
- continue;;
-
- -d) dir_arg=true
- shift
- continue;;
-
- -m) chmodcmd="$chmodprog $2"
- shift
- shift
- continue;;
-
- -o) chowncmd="$chownprog $2"
- shift
- shift
- continue;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift
- shift
- continue;;
-
- -s) stripcmd="$stripprog"
- shift
- continue;;
-
- -t=*) transformarg=`echo $1 | sed 's/-t=//'`
- shift
- continue;;
-
- -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
- shift
- continue;;
-
- *) if [ x"$src" = x ]
- then
- src=$1
- else
- # this colon is to work around a 386BSD /bin/sh bug
- :
- dst=$1
- fi
- shift
- continue;;
- esac
-done
-
-if [ x"$src" = x ]
-then
- echo "install: no input file specified"
- exit 1
-else
- true
-fi
-
-if [ x"$dir_arg" != x ]; then
- dst=$src
- src=""
-
- if [ -d $dst ]; then
- instcmd=:
- else
- instcmd=mkdir
- fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
-# if $src (and thus $dsttmp) contains '*'.
-
- if [ -f $src -o -d $src ]
- then
- true
- else
- echo "install: $src does not exist"
- exit 1
- fi
-
- if [ x"$dst" = x ]
- then
- echo "install: no destination specified"
- exit 1
- else
- true
- fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
- if [ -d $dst ]
- then
- dst="$dst"/`basename $src`
- else
- true
- fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-# this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='
-'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
- pathcomp="${pathcomp}${1}"
- shift
-
- if [ ! -d "${pathcomp}" ] ;
- then
- $mkdirprog "${pathcomp}"
- else
- true
- fi
-
- pathcomp="${pathcomp}/"
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
- $doit $instcmd $dst &&
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
- if [ x"$transformarg" = x ]
- then
- dstfile=`basename $dst`
- else
- dstfile=`basename $dst $transformbasename |
- sed $transformarg`$transformbasename
- fi
-
-# don't allow the sed command to completely eliminate the filename
-
- if [ x"$dstfile" = x ]
- then
- dstfile=`basename $dst`
- else
- true
- fi
-
-# Make a temp file name in the proper directory.
-
- dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
- $doit $instcmd $src $dsttmp &&
-
- trap "rm -f ${dsttmp}" 0 &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing. If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
-
-# Now rename the file to the real destination.
-
- $doit $rmcmd -f $dstdir/$dstfile &&
- $doit $mvcmd $dsttmp $dstdir/$dstfile
-
-fi &&
-
-
-exit 0
diff --git a/mdk-stage1/rp-pppoe/src/md5.c b/mdk-stage1/rp-pppoe/src/md5.c
deleted file mode 100644
index 5b7a0d7b2..000000000
--- a/mdk-stage1/rp-pppoe/src/md5.c
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * This code implements the MD5 message-digest algorithm.
- * The algorithm is due to Ron Rivest. This code was
- * written by Colin Plumb in 1993, no copyright is claimed.
- * This code is in the public domain; do with it what you wish.
- *
- * Equivalent code is available from RSA Data Security, Inc.
- * This code has been tested against that, and is equivalent,
- * except that you don't need to include two pages of legalese
- * with every copy.
- *
- * To compute the message digest of a chunk of bytes, declare an
- * MD5Context structure, pass it to MD5Init, call MD5Update as
- * needed on buffers full of bytes, and then call MD5Final, which
- * will fill a supplied 16-byte array with the digest.
- */
-#include <string.h> /* for memcpy() */
-#include "md5.h"
-
-void byteReverse(unsigned char *buf, unsigned longs);
-
-/*
- * Note: this code is harmless on little-endian machines.
- */
-void byteReverse(unsigned char *buf, unsigned longs)
-{
- uint32 t;
- do {
- t = (uint32) ((unsigned) buf[3] << 8 | buf[2]) << 16 |
- ((unsigned) buf[1] << 8 | buf[0]);
- *(uint32 *) buf = t;
- buf += 4;
- } while (--longs);
-}
-
-/*
- * Start MD5 accumulation. Set bit count to 0 and buffer to mysterious
- * initialization constants.
- */
-void MD5Init(struct MD5Context *ctx)
-{
- ctx->buf[0] = 0x67452301;
- ctx->buf[1] = 0xefcdab89;
- ctx->buf[2] = 0x98badcfe;
- ctx->buf[3] = 0x10325476;
-
- ctx->bits[0] = 0;
- ctx->bits[1] = 0;
-}
-
-/*
- * Update context to reflect the concatenation of another buffer full
- * of bytes.
- */
-void MD5Update(struct MD5Context *ctx, unsigned char const *buf, unsigned len)
-{
- uint32 t;
-
- /* Update bitcount */
-
- t = ctx->bits[0];
- if ((ctx->bits[0] = t + ((uint32) len << 3)) < t)
- ctx->bits[1]++; /* Carry from low to high */
- ctx->bits[1] += len >> 29;
-
- t = (t >> 3) & 0x3f; /* Bytes already in shsInfo->data */
-
- /* Handle any leading odd-sized chunks */
-
- if (t) {
- unsigned char *p = (unsigned char *) ctx->in + t;
-
- t = 64 - t;
- if (len < t) {
- memcpy(p, buf, len);
- return;
- }
- memcpy(p, buf, t);
- byteReverse(ctx->in, 16);
- MD5Transform(ctx->buf, (uint32 *) ctx->in);
- buf += t;
- len -= t;
- }
- /* Process data in 64-byte chunks */
-
- while (len >= 64) {
- memcpy(ctx->in, buf, 64);
- byteReverse(ctx->in, 16);
- MD5Transform(ctx->buf, (uint32 *) ctx->in);
- buf += 64;
- len -= 64;
- }
-
- /* Handle any remaining bytes of data. */
-
- memcpy(ctx->in, buf, len);
-}
-
-/*
- * Final wrapup - pad to 64-byte boundary with the bit pattern
- * 1 0* (64-bit count of bits processed, MSB-first)
- */
-void MD5Final(unsigned char digest[16], struct MD5Context *ctx)
-{
- unsigned count;
- unsigned char *p;
-
- /* Compute number of bytes mod 64 */
- count = (ctx->bits[0] >> 3) & 0x3F;
-
- /* Set the first char of padding to 0x80. This is safe since there is
- always at least one byte free */
- p = ctx->in + count;
- *p++ = 0x80;
-
- /* Bytes of padding needed to make 64 bytes */
- count = 64 - 1 - count;
-
- /* Pad out to 56 mod 64 */
- if (count < 8) {
- /* Two lots of padding: Pad the first block to 64 bytes */
- memset(p, 0, count);
- byteReverse(ctx->in, 16);
- MD5Transform(ctx->buf, (uint32 *) ctx->in);
-
- /* Now fill the next block with 56 bytes */
- memset(ctx->in, 0, 56);
- } else {
- /* Pad block to 56 bytes */
- memset(p, 0, count - 8);
- }
- byteReverse(ctx->in, 14);
-
- /* Append length in bits and transform */
- ((uint32 *) ctx->in)[14] = ctx->bits[0];
- ((uint32 *) ctx->in)[15] = ctx->bits[1];
-
- MD5Transform(ctx->buf, (uint32 *) ctx->in);
- byteReverse((unsigned char *) ctx->buf, 4);
- memcpy(digest, ctx->buf, 16);
- memset(ctx, 0, sizeof(ctx)); /* In case it's sensitive */
-}
-
-#ifndef ASM_MD5
-
-/* The four core functions - F1 is optimized somewhat */
-
-/* #define F1(x, y, z) (x & y | ~x & z) */
-#define F1(x, y, z) (z ^ (x & (y ^ z)))
-#define F2(x, y, z) F1(z, x, y)
-#define F3(x, y, z) (x ^ y ^ z)
-#define F4(x, y, z) (y ^ (x | ~z))
-
-/* This is the central step in the MD5 algorithm. */
-#define MD5STEP(f, w, x, y, z, data, s) \
- ( w += f(x, y, z) + data, w = w<<s | w>>(32-s), w += x )
-
-/*
- * The core of the MD5 algorithm, this alters an existing MD5 hash to
- * reflect the addition of 16 longwords of new data. MD5Update blocks
- * the data and converts bytes into longwords for this routine.
- */
-void MD5Transform(uint32 buf[4], uint32 const in[16])
-{
- register uint32 a, b, c, d;
-
- a = buf[0];
- b = buf[1];
- c = buf[2];
- d = buf[3];
-
- MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7);
- MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12);
- MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17);
- MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22);
- MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7);
- MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12);
- MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17);
- MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22);
- MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7);
- MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12);
- MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17);
- MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22);
- MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7);
- MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12);
- MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17);
- MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22);
-
- MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5);
- MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9);
- MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14);
- MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20);
- MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5);
- MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9);
- MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14);
- MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20);
- MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5);
- MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9);
- MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14);
- MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20);
- MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5);
- MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9);
- MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14);
- MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20);
-
- MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4);
- MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11);
- MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16);
- MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23);
- MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4);
- MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11);
- MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16);
- MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23);
- MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4);
- MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11);
- MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16);
- MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23);
- MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4);
- MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11);
- MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16);
- MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23);
-
- MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6);
- MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10);
- MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15);
- MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21);
- MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6);
- MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10);
- MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15);
- MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21);
- MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6);
- MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10);
- MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15);
- MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21);
- MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6);
- MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10);
- MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15);
- MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21);
-
- buf[0] += a;
- buf[1] += b;
- buf[2] += c;
- buf[3] += d;
-}
-
-#endif
diff --git a/mdk-stage1/rp-pppoe/src/md5.h b/mdk-stage1/rp-pppoe/src/md5.h
deleted file mode 100644
index e264f686d..000000000
--- a/mdk-stage1/rp-pppoe/src/md5.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef MD5_H
-#define MD5_H
-
-#ifdef __alpha
-typedef unsigned int uint32;
-#else
-typedef unsigned long uint32;
-#endif
-
-struct MD5Context {
- uint32 buf[4];
- uint32 bits[2];
- unsigned char in[64];
-};
-
-void MD5Init(struct MD5Context *context);
-void MD5Update(struct MD5Context *context, unsigned char const *buf,
- unsigned len);
-void MD5Final(unsigned char digest[16], struct MD5Context *context);
-void MD5Transform(uint32 buf[4], uint32 const in[16]);
-
-/*
- * This is needed to make RSAREF happy on some MS-DOS compilers.
- */
-typedef struct MD5Context MD5_CTX;
-
-#endif /* !MD5_H */
diff --git a/mdk-stage1/rp-pppoe/src/plugin.c b/mdk-stage1/rp-pppoe/src/plugin.c
deleted file mode 100644
index d1097e291..000000000
--- a/mdk-stage1/rp-pppoe/src/plugin.c
+++ /dev/null
@@ -1,397 +0,0 @@
-/***********************************************************************
-*
-* plugin.c
-*
-* pppd plugin for kernel-mode PPPoE on Linux
-*
-* Copyright (C) 2001 by Roaring Penguin Software Inc., Michal Ostrowski
-* and Jamal Hadi Salim.
-*
-* Much code and many ideas derived from pppoe plugin by Michal
-* Ostrowski and Jamal Hadi Salim, which carries this copyright:
-*
-* Copyright 2000 Michal Ostrowski <mostrows@styx.uwaterloo.ca>,
-* Jamal Hadi Salim <hadi@cyberus.ca>
-* Borrows heavily from the PPPoATM plugin by Mitchell Blank Jr.,
-* which is based in part on work from Jens Axboe and Paul Mackerras.
-*
-* This program is free software; you can redistribute it and/or
-* modify it under the terms of the GNU General Public License
-* as published by the Free Software Foundation; either version
-* 2 of the License, or (at your option) any later version.
-***********************************************************************/
-
-static char const RCSID[] =
-"$Id$";
-
-#define _GNU_SOURCE 1
-#include "pppoe.h"
-
-#include "pppd/pppd.h"
-#include "pppd/fsm.h"
-#include "pppd/lcp.h"
-#include "pppd/ipcp.h"
-#include "pppd/ccp.h"
-#include "pppd/pathnames.h"
-
-#include <linux/types.h>
-#include <syslog.h>
-#include <sys/ioctl.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/stat.h>
-#include <string.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <signal.h>
-#include <net/ethernet.h>
-#include <net/if_arp.h>
-#include <linux/if_pppox.h>
-
-/* From sys-linux.c in pppd -- MUST FIX THIS! */
-extern int new_style_driver;
-
-static char *service = NULL;
-static char *acName = NULL;
-static char *existingSession = NULL;
-
-static option_t Options[] = {
- { "rp_pppoe_service", o_string, &service,
- "Desired PPPoE service name" },
- { "rp_pppoe_ac", o_string, &acName,
- "Desired PPPoE access concentrator name" },
- { "rp_pppoe_sess", o_string, &existingSession,
- "Attach to existing session (sessid:macaddr)" },
- { NULL }
-};
-int (*OldDevnameHook)(const char *name) = NULL;
-static PPPoEConnection *conn = NULL;
-
-/**********************************************************************
- * %FUNCTION: PPPOEInitDevice
- * %ARGUMENTS:
- * None
- * %RETURNS:
- *
- * %DESCRIPTION:
- * Initializes PPPoE device.
- ***********************************************************************/
-static int
-PPPOEInitDevice(void)
-{
- conn = malloc(sizeof(PPPoEConnection));
- if (!conn) {
- fatal("Could not allocate memory for PPPoE session");
- }
- memset(conn, 0, sizeof(PPPoEConnection));
- if (acName) {
- SET_STRING(conn->acName, acName);
- }
- if (service) {
- SET_STRING(conn->serviceName, acName);
- }
- SET_STRING(conn->ifName, devnam);
- conn->discoverySocket = -1;
- conn->sessionSocket = -1;
- conn->useHostUniq = 1;
- return 1;
-}
-
-/**********************************************************************
- * %FUNCTION: PPPOEConnectDevice
- * %ARGUMENTS:
- * None
- * %RETURNS:
- * Non-negative if all goes well; -1 otherwise
- * %DESCRIPTION:
- * Connects PPPoE device.
- ***********************************************************************/
-static int
-PPPOEConnectDevice(void)
-{
- struct sockaddr_pppox sp;
-
- strlcpy(ppp_devnam, devnam, sizeof(ppp_devnam));
- if (existingSession) {
- unsigned int mac[ETH_ALEN];
- int i, ses;
- if (sscanf(existingSession, "%d:%x:%x:%x:%x:%x:%x",
- &ses, &mac[0], &mac[1], &mac[2],
- &mac[3], &mac[4], &mac[5]) != 7) {
- fatal("Illegal value for rp_pppoe_sess option");
- }
- conn->session = htons(ses);
- for (i=0; i<ETH_ALEN; i++) {
- conn->peerEth[i] = (unsigned char) mac[i];
- }
- } else {
- discovery(conn);
- if (conn->discoveryState != STATE_SESSION) {
- fatal("Unable to complete PPPoE Discovery");
- }
- }
-
- /* Make the session socket */
- conn->sessionSocket = socket(AF_PPPOX, SOCK_STREAM, PX_PROTO_OE);
- if (conn->sessionSocket < 0) {
- fatal("Failed to create PPPoE socket: %m");
- }
- sp.sa_family = AF_PPPOX;
- sp.sa_protocol = PX_PROTO_OE;
- sp.sa_addr.pppoe.sid = conn->session;
- memcpy(sp.sa_addr.pppoe.dev, conn->ifName, IFNAMSIZ);
- memcpy(sp.sa_addr.pppoe.remote, conn->peerEth, ETH_ALEN);
- if (connect(conn->sessionSocket, (struct sockaddr *) &sp,
- sizeof(struct sockaddr_pppox)) < 0) {
- fatal("Failed to connect PPPoE socket: %d %m", errno);
- return -1;
- }
- return conn->sessionSocket;
-}
-
-static void
-PPPOESendConfig(int unit,
- int mtu,
- u_int32_t asyncmap,
- int pcomp,
- int accomp)
-{
- int sock;
- struct ifreq ifr;
-
- if (mtu > MAX_PPPOE_MTU) {
- warn("Couldn't increase MTU to %d", mtu);
- }
- sock = socket(AF_INET, SOCK_DGRAM, 0);
- if (sock < 0) {
- fatal("Couldn't create IP socket: %m");
- }
- strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- ifr.ifr_mtu = mtu;
- if (ioctl(sock, SIOCSIFMTU, &ifr) < 0) {
- fatal("ioctl(SIOCSIFMTU): %m");
- }
- (void) close (sock);
-}
-
-
-static void
-PPPOERecvConfig(int unit,
- int mru,
- u_int32_t asyncmap,
- int pcomp,
- int accomp)
-{
- if (mru > MAX_PPPOE_MTU) {
- error("Couldn't increase MRU to %d", mru);
- }
-}
-
-static void
-PPPOESetXaccm(int unit,
- ext_accm accm)
-{
- /* Do nothing */
-}
-
-/**********************************************************************
- * %FUNCTION: PPPOEDisconnectDevice
- * %ARGUMENTS:
- * None
- * %RETURNS:
- * Nothing
- * %DESCRIPTION:
- * Disconnects PPPoE device
- ***********************************************************************/
-static void
-PPPOEDisconnectDevice(void)
-{
- struct sockaddr_pppox sp;
-
- sp.sa_family = AF_PPPOX;
- sp.sa_protocol = PX_PROTO_OE;
- sp.sa_addr.pppoe.sid = 0;
- memcpy(sp.sa_addr.pppoe.dev, conn->ifName, IFNAMSIZ);
- memcpy(sp.sa_addr.pppoe.remote, conn->peerEth, ETH_ALEN);
- if (connect(conn->sessionSocket, (struct sockaddr *) &sp,
- sizeof(struct sockaddr_pppox)) < 0) {
- fatal("Failed to disconnect PPPoE socket: %d %m", errno);
- return;
- }
- close(conn->sessionSocket);
-}
-
-static int
-PPPOESetSpeed(const char *speed)
-{
- return 0;
-}
-
-static void
-PPPOEDeviceCheckHook(void)
-{
- if (!options_for_dev(_PATH_ETHOPT, devnam)) {
- exit(EXIT_OPTION_ERROR);
- }
-}
-
-/**********************************************************************
- * %FUNCTION: PPPoEDevnameHook
- * %ARGUMENTS:
- * name -- name of device
- * %RETURNS:
- * 1 if we will handle this device; 0 otherwise.
- * %DESCRIPTION:
- * Checks if name is a valid interface name; if so, returns 1. Also
- * sets up devnam (string representation of device) and sets devstat.st_mode
- * so S_ISCHR(devstat.st_mode) != 1 for internal pppd consumption.
- ***********************************************************************/
-static int
-PPPoEDevnameHook(const char *name)
-{
- int r = 1;
- int fd;
- struct ifreq ifr;
-
- /* Open a socket */
- if ((fd = socket(PF_PACKET, SOCK_RAW, 0)) < 0) {
- r = 0;
- }
-
- /* Try getting interface index */
- if (r) {
- strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name));
- if (ioctl(fd, SIOCGIFINDEX, &ifr) < 0) {
- r = 0;
- } else {
- if (ioctl(fd, SIOCGIFHWADDR, &ifr) < 0) {
- r = 0;
- } else {
- if (ifr.ifr_hwaddr.sa_family != ARPHRD_ETHER) {
- error("Interface %s not Ethernet", name);
- r=0;
- }
- }
- }
- }
-
- /* Close socket */
- close(fd);
- if (r) {
- strncpy(devnam, name, sizeof(devnam));
- if (device_check_hook != PPPOEDeviceCheckHook) {
- devstat.st_mode = S_IFSOCK;
- device_init_hook = PPPOEInitDevice;
- setspeed_hook = PPPOESetSpeed;
- device_check_hook = PPPOEDeviceCheckHook;
- connect_device_hook = PPPOEConnectDevice;
- disconnect_device_hook = PPPOEDisconnectDevice;
- send_config_hook = PPPOESendConfig;
- recv_config_hook = PPPOERecvConfig;
- set_xaccm_hook = PPPOESetXaccm;
- modem = 0;
-
- lcp_allowoptions[0].neg_accompression = 0;
- lcp_wantoptions[0].neg_accompression = 0;
-
- lcp_allowoptions[0].neg_asyncmap = 0;
- lcp_wantoptions[0].neg_asyncmap = 0;
-
- lcp_allowoptions[0].neg_pcompression = 0;
- lcp_wantoptions[0].neg_pcompression = 0;
-
- ccp_allowoptions[0].deflate = 0 ;
- ccp_wantoptions[0].deflate = 0 ;
-
- ipcp_allowoptions[0].neg_vj=0;
- ipcp_wantoptions[0].neg_vj=0;
-
- ccp_allowoptions[0].bsd_compress = 0;
- ccp_wantoptions[0].bsd_compress = 0;
-
- PPPOEInitDevice();
- }
- return 1;
- }
-
- if (OldDevnameHook) r = OldDevnameHook(name);
- return r;
-}
-
-/**********************************************************************
- * %FUNCTION: plugin_init
- * %ARGUMENTS:
- * None
- * %RETURNS:
- * Nothing
- * %DESCRIPTION:
- * Initializes hooks for pppd plugin
- ***********************************************************************/
-void
-plugin_init(void)
-{
- if (!new_style_driver) {
- fatal("Linux kernel does not support PPPoE -- are you running 2.4.x?");
- }
- OldDevnameHook = setdevname_hook;
- setdevname_hook = PPPoEDevnameHook;
- add_options(Options);
-
- info("Roaring Penguin PPPoE Plugin Initialized");
-}
-
-/**********************************************************************
-*%FUNCTION: fatalSys
-*%ARGUMENTS:
-* str -- error message
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Prints a message plus the errno value to stderr and syslog and exits.
-***********************************************************************/
-void
-fatalSys(char const *str)
-{
- char buf[1024];
- int i = errno;
- sprintf(buf, "%.256s: %.256s", str, strerror(i));
- printErr(buf);
- sprintf(buf, "RP-PPPoE: %.256s: %.256s", str, strerror(i));
- sendPADT(conn, buf);
- exit(1);
-}
-
-/**********************************************************************
-*%FUNCTION: rp_fatal
-*%ARGUMENTS:
-* str -- error message
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Prints a message to stderr and syslog and exits.
-***********************************************************************/
-void
-rp_fatal(char const *str)
-{
- char buf[1024];
- printErr(str);
- sprintf(buf, "RP-PPPoE: %.256s", str);
- sendPADT(conn, buf);
- exit(1);
-}
-/**********************************************************************
-*%FUNCTION: sysErr
-*%ARGUMENTS:
-* str -- error message
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Prints a message plus the errno value to syslog.
-***********************************************************************/
-void
-sysErr(char const *str)
-{
- rp_fatal(str);
-}
diff --git a/mdk-stage1/rp-pppoe/src/ppp.c b/mdk-stage1/rp-pppoe/src/ppp.c
deleted file mode 100644
index 72020a76c..000000000
--- a/mdk-stage1/rp-pppoe/src/ppp.c
+++ /dev/null
@@ -1,258 +0,0 @@
-/***********************************************************************
-*
-* ppp.c
-*
-* Implementation of user-space PPPoE redirector for Linux.
-*
-* Functions for talking to PPP daemon
-*
-* Copyright (C) 2000 by Roaring Penguin Software Inc.
-*
-* This program may be distributed according to the terms of the GNU
-* General Public License, version 2 or (at your option) any later version.
-*
-***********************************************************************/
-
-static char const RCSID[] =
-"$Id$";
-
-#include "pppoe.h"
-
-#ifdef HAVE_SYSLOG_H
-#include <syslog.h>
-#endif
-
-#include <string.h>
-#include <errno.h>
-#include <stdlib.h>
-
-#ifdef HAVE_SYS_UIO_H
-#include <sys/uio.h>
-#endif
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifdef HAVE_N_HDLC
-#ifndef N_HDLC
-#include <linux/termios.h>
-#endif
-#endif
-
-int PPPState;
-int PPPPacketSize;
-unsigned char PPPXorValue;
-
-UINT16_t fcstab[256] = {
- 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf,
- 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7,
- 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e,
- 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876,
- 0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd,
- 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5,
- 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c,
- 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974,
- 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb,
- 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3,
- 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a,
- 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72,
- 0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9,
- 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1,
- 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738,
- 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70,
- 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7,
- 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff,
- 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036,
- 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e,
- 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5,
- 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd,
- 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134,
- 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c,
- 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3,
- 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb,
- 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232,
- 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a,
- 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1,
- 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9,
- 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330,
- 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78
-};
-
-/**********************************************************************
-*%FUNCTION: syncReadFromPPP
-*%ARGUMENTS:
-* conn -- PPPoEConnection structure
-* packet -- buffer in which to place PPPoE packet
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Reads from a synchronous PPP device and builds and transmits a PPPoE
-* packet
-***********************************************************************/
-void
-syncReadFromPPP(PPPoEConnection *conn, PPPoEPacket *packet)
-{
- int r;
-#ifndef HAVE_N_HDLC
- struct iovec vec[2];
- unsigned char dummy[2];
- vec[0].iov_base = (void *) dummy;
- vec[0].iov_len = 2;
- vec[1].iov_base = (void *) packet->payload;
- vec[1].iov_len = ETH_DATA_LEN - PPPOE_OVERHEAD;
-
- /* Use scatter-read to throw away the PPP frame address bytes */
- r = readv(0, vec, 2);
-#else
- /* Bloody hell... readv doesn't work with N_HDLC line discipline... GRR! */
- unsigned char buf[ETH_DATA_LEN - PPPOE_OVERHEAD + 2];
- r = read(0, buf, ETH_DATA_LEN - PPPOE_OVERHEAD + 2);
- if (r >= 2) {
- memcpy(packet->payload, buf+2, r-2);
- }
-#endif
- if (r < 0) {
- /* Catch the Linux "select" bug */
- if (errno == EAGAIN) {
- rp_fatal("Linux select bug hit! This message is harmless, but please ask the Linux kernel developers to fix it.");
- }
- fatalSys("read (syncReadFromPPP)");
- }
- if (r == 0) {
- syslog(LOG_INFO, "end-of-file in syncReadFromPPP");
- sendPADT(conn, "RP-PPPoE: EOF in syncReadFromPPP");
- exit(0);
- }
-
- if (r < 2) {
- rp_fatal("too few characters read from PPP (syncReadFromPPP)");
- }
-
- sendSessionPacket(conn, packet, r-2);
-}
-
-/**********************************************************************
-*%FUNCTION: initPPP
-*%ARGUMENTS:
-* None
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Initializes the PPP state machine
-***********************************************************************/
-void
-initPPP(void)
-{
- PPPState = STATE_WAITFOR_FRAME_ADDR;
- PPPPacketSize = 0;
- PPPXorValue = 0;
-
-}
-/**********************************************************************
-*%FUNCTION: asyncReadFromPPP
-*%ARGUMENTS:
-* conn -- PPPoEConnection structure
-* packet -- buffer in which to place PPPoE packet
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Reads from an async PPP device and builds a PPPoE packet to transmit
-***********************************************************************/
-void
-asyncReadFromPPP(PPPoEConnection *conn, PPPoEPacket *packet)
-{
- unsigned char buf[READ_CHUNK];
- unsigned char *ptr = buf;
- unsigned char c;
-
- int r;
-
- r = read(0, buf, READ_CHUNK);
- if (r < 0) {
- fatalSys("read (asyncReadFromPPP)");
- }
-
- if (r == 0) {
- syslog(LOG_INFO, "end-of-file in asyncReadFromPPP");
- sendPADT(conn, "RP-PPPoE: EOF in asyncReadFromPPP");
- exit(0);
- }
-
- while(r) {
- if (PPPState == STATE_WAITFOR_FRAME_ADDR) {
- while(r) {
- --r;
- if (*ptr++ == FRAME_ADDR) {
- PPPState = STATE_DROP_PROTO;
- break;
- }
- }
- }
-
- /* Still waiting... */
- if (PPPState == STATE_WAITFOR_FRAME_ADDR) return;
-
- while(r && PPPState == STATE_DROP_PROTO) {
- --r;
- if (*ptr++ == (FRAME_CTRL ^ FRAME_ENC)) {
- PPPState = STATE_BUILDING_PACKET;
- }
- }
-
- if (PPPState == STATE_DROP_PROTO) return;
-
- /* Start building frame */
- while(r && PPPState == STATE_BUILDING_PACKET) {
- --r;
- c = *ptr++;
- switch(c) {
- case FRAME_ESC:
- PPPXorValue = FRAME_ENC;
- break;
- case FRAME_FLAG:
- if (PPPPacketSize < 2) {
- rp_fatal("Packet too short from PPP (asyncReadFromPPP)");
- }
- sendSessionPacket(conn, packet, PPPPacketSize-2);
- PPPPacketSize = 0;
- PPPXorValue = 0;
- PPPState = STATE_WAITFOR_FRAME_ADDR;
- break;
- default:
- if (PPPPacketSize >= ETH_DATA_LEN - 4) {
- syslog(LOG_ERR, "Packet too big! Check MTU on PPP interface");
- PPPPacketSize = 0;
- PPPXorValue = 0;
- PPPState = STATE_WAITFOR_FRAME_ADDR;
- } else {
- packet->payload[PPPPacketSize++] = c ^ PPPXorValue;
- PPPXorValue = 0;
- }
- }
- }
- }
-}
-
-/**********************************************************************
-*%FUNCTION: pppFCS16
-*%ARGUMENTS:
-* fcs -- current fcs
-* cp -- a buffer's worth of data
-* len -- length of buffer "cp"
-*%RETURNS:
-* A new FCS
-*%DESCRIPTION:
-* Updates the PPP FCS.
-***********************************************************************/
-UINT16_t
-pppFCS16(UINT16_t fcs,
- unsigned char * cp,
- int len)
-{
- while (len--)
- fcs = (fcs >> 8) ^ fcstab[(fcs ^ *cp++) & 0xff];
-
- return (fcs);
-}
-
diff --git a/mdk-stage1/rp-pppoe/src/pppoe-server.c b/mdk-stage1/rp-pppoe/src/pppoe-server.c
deleted file mode 100644
index e43e63553..000000000
--- a/mdk-stage1/rp-pppoe/src/pppoe-server.c
+++ /dev/null
@@ -1,1247 +0,0 @@
-/***********************************************************************
-*
-* pppoe.h
-*
-* Implementation of a user-space PPPoE server
-*
-* Copyright (C) 2000 Roaring Penguin Software Inc.
-*
-* This program may be distributed according to the terms of the GNU
-* General Public License, version 2 or (at your option) any later version.
-*
-* $Id$
-*
-***********************************************************************/
-
-static char const RCSID[] =
-"$Id$";
-
-#include "config.h"
-
-#if defined(HAVE_NETPACKET_PACKET_H) || defined(HAVE_LINUX_IF_PACKET_H)
-#define _POSIX_SOURCE 1 /* For sigaction defines */
-#endif
-
-#define _BSD_SOURCE 1 /* for gethostname */
-
-#include "pppoe.h"
-#include "md5.h"
-
-#ifdef HAVE_SYSLOG_H
-#include <syslog.h>
-#endif
-
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifdef HAVE_GETOPT_H
-#include <getopt.h>
-#endif
-
-#ifdef HAVE_SYS_WAIT_H
-#include <sys/wait.h>
-#endif
-
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-
-#include <signal.h>
-
-/* Hack for daemonizing */
-#define CLOSEFD 64
-
-/* Max. 64 sessions by default */
-#define DEFAULT_MAX_SESSIONS 64
-
-/* A list of client sessions */
-struct ClientSession *Sessions = NULL;
-
-/* The number of session slots */
-size_t NumSessionSlots;
-
-/* Offset of first session */
-size_t SessOffset = 0;
-
-/* Socket for client's discovery phases */
-int Socket = -1;
-
-/* Pipe written on reception of SIGCHLD */
-int Pipe[2] = {-1, -1};
-int ReapPending = 0;
-
-/* Synchronous mode */
-int Synchronous = 0;
-
-/* Random seed for cookie generation */
-#define SEED_LEN 16
-#define MD5_LEN 16
-#define COOKIE_LEN (MD5_LEN + sizeof(pid_t)) /* Cookie is 16-byte MD5 + PID of server */
-
-unsigned char CookieSeed[SEED_LEN];
-
-/* Default interface if no -I option given */
-#define DEFAULT_IF "eth0"
-char *IfName = NULL;
-
-/* Access concentrator name */
-char *ACName = NULL;
-
-/* Options to pass to pppoe process */
-char PppoeOptions[SMALLBUF] = "";
-
-/* Our local IP address */
-unsigned char LocalIP[IPV4ALEN] = {10, 0, 0, 1};
-unsigned char RemoteIP[IPV4ALEN] = {10, 67, 15, 1}; /* Counter STARTS here */
-
-PPPoETag hostUniq;
-PPPoETag relayId;
-PPPoETag receivedCookie;
-PPPoETag requestedService;
-
-#define HOSTNAMELEN 256
-
-static void startPPPD(struct ClientSession *sess);
-static void sendErrorPADS(int sock, unsigned char *source, unsigned char *dest,
- int errorTag, char *errorMsg);
-
-#define CHECK_ROOM(cursor, start, len) \
-do {\
- if (((cursor)-(start))+(len) > MAX_PPPOE_PAYLOAD) { \
- syslog(LOG_ERR, "Would create too-long packet"); \
- return; \
- } \
-} while(0)
-
-/* Use Linux kernel-mode PPPoE? */
-int UseLinuxKernelModePPPoE = 0;
-
-/**********************************************************************
-*%FUNCTION: parseAddressPool
-*%ARGUMENTS:
-* fname -- name of file containing IP address pool.
-* install -- if true, install IP addresses in sessions.
-*%RETURNS:
-* Number of valid IP addresses found.
-*%DESCRIPTION:
-* Reads a list of IP addresses from a file.
-***********************************************************************/
-static int
-parseAddressPool(char const *fname, int install)
-{
- FILE *fp = fopen(fname, "r");
- int numAddrs = 0;
- unsigned int a, b, c, d;
-
- if (!fp) {
- sysErr("Cannot open address pool file");
- }
-
- while (!feof(fp)) {
- if ((fscanf(fp, "%u.%u.%u.%u", &a, &b, &c, &d) == 4) &&
- a < 256 && b < 256 && c < 256 && d < 256) {
- if (install) {
- Sessions[numAddrs].ip[0] = (unsigned char) a;
- Sessions[numAddrs].ip[1] = (unsigned char) b;
- Sessions[numAddrs].ip[2] = (unsigned char) c;
- Sessions[numAddrs].ip[3] = (unsigned char) d;
- }
- numAddrs++;
- }
- }
- if (!numAddrs) {
- rp_fatal("No valid ip addresses found in pool file");
- }
- return numAddrs;
-}
-
-/**********************************************************************
-*%FUNCTION: parsePADITags
-*%ARGUMENTS:
-* type -- tag type
-* len -- tag length
-* data -- tag data
-* extra -- extra user data.
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Picks interesting tags out of a PADI packet
-***********************************************************************/
-void
-parsePADITags(UINT16_t type, UINT16_t len, unsigned char *data,
- void *extra)
-{
- switch(type) {
- case TAG_SERVICE_NAME:
- /* Should do something -- currently ignored */
- break;
- case TAG_RELAY_SESSION_ID:
- relayId.type = htons(type);
- relayId.length = htons(len);
- memcpy(relayId.payload, data, len);
- break;
- case TAG_HOST_UNIQ:
- hostUniq.type = htons(type);
- hostUniq.length = htons(len);
- memcpy(hostUniq.payload, data, len);
- break;
- }
-}
-
-/**********************************************************************
-*%FUNCTION: parsePADRTags
-*%ARGUMENTS:
-* type -- tag type
-* len -- tag length
-* data -- tag data
-* extra -- extra user data.
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Picks interesting tags out of a PADR packet
-***********************************************************************/
-void
-parsePADRTags(UINT16_t type, UINT16_t len, unsigned char *data,
- void *extra)
-{
- switch(type) {
- case TAG_RELAY_SESSION_ID:
- relayId.type = htons(type);
- relayId.length = htons(len);
- memcpy(relayId.payload, data, len);
- break;
- case TAG_HOST_UNIQ:
- hostUniq.type = htons(type);
- hostUniq.length = htons(len);
- memcpy(hostUniq.payload, data, len);
- break;
- case TAG_AC_COOKIE:
- receivedCookie.type = htons(type);
- receivedCookie.length = htons(len);
- memcpy(receivedCookie.payload, data, len);
- break;
- case TAG_SERVICE_NAME:
- requestedService.type = htons(type);
- requestedService.length = htons(len);
- memcpy(requestedService.payload, data, len);
- break;
- }
-}
-
-/**********************************************************************
-*%FUNCTION: findSession
-*%ARGUMENTS:
-* pid -- PID of child which owns session. If PID is 0, searches for
-* empty session slots.
-*%RETURNS:
-* A pointer to the session, or NULL if no such session found.
-*%DESCRIPTION:
-* Searches for specified session.
-**********************************************************************/
-struct ClientSession *
-findSession(pid_t pid)
-{
- size_t i;
- for (i=0; i<NumSessionSlots; i++) {
- if (Sessions[i].pid == pid) {
- return &Sessions[i];
- }
- }
- return NULL;
-}
-
-/**********************************************************************
-*%FUNCTION: reapSessions
-*%ARGUMENTS:
-* myAddr -- my Ethernet address
-* sock -- my discovery socket
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Reaps children which have exited and removes their sessions
-**********************************************************************/
-void
-reapSessions(unsigned char *myAddr, int sock)
-{
- int status;
- pid_t pid;
- struct ClientSession *session;
-
- /* Temporary structure for sending PADT's. */
- PPPoEConnection conn;
- memset(&conn, 0, sizeof(conn));
-
- /* Initialize fields of conn which do not depend on peer */
- memcpy(conn.myEth, myAddr, ETH_ALEN);
- conn.useHostUniq = 0;
- conn.discoverySocket = sock;
-
- while((pid = waitpid(-1, &status, WNOHANG)) > 0) {
- session = findSession(pid);
- if (!session) {
- syslog(LOG_ERR, "Child %d died but couldn't find session!",
- (int) pid);
- } else {
- syslog(LOG_INFO,
- "Session %d closed for client %02x:%02x:%02x:%02x:%02x:%02x (%d.%d.%d.%d)",
- ntohs(session->sess),
- session->eth[0], session->eth[1], session->eth[2],
- session->eth[3], session->eth[4], session->eth[5],
- (int) session->ip[0], (int) session->ip[1],
- (int) session->ip[2], (int) session->ip[3]);
- conn.session = session->sess;
- memcpy(conn.peerEth, session->eth, ETH_ALEN);
- if (session->recvdPADT) {
- sendPADT(&conn, "RP-PPPoE: Received PADT from peer");
- } else {
- sendPADT(&conn, "RP-PPPoE: Child pppd process terminated");
- }
- session->pid = 0;
- }
- }
-}
-
-/**********************************************************************
-*%FUNCTION: fatalSys
-*%ARGUMENTS:
-* str -- error message
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Prints a message plus the errno value to stderr and syslog and exits.
-***********************************************************************/
-void
-fatalSys(char const *str)
-{
- char buf[SMALLBUF];
- snprintf(buf, SMALLBUF, "%s: %s", str, strerror(errno));
- printErr(buf);
- exit(EXIT_FAILURE);
-}
-
-/**********************************************************************
-*%FUNCTION: sysErr
-*%ARGUMENTS:
-* str -- error message
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Prints a message plus the errno value to syslog.
-***********************************************************************/
-void
-sysErr(char const *str)
-{
- char buf[1024];
- sprintf(buf, "%.256s: %.256s", str, strerror(errno));
- printErr(buf);
-}
-
-/**********************************************************************
-*%FUNCTION: rp_fatal
-*%ARGUMENTS:
-* str -- error message
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Prints a message to stderr and syslog and exits.
-***********************************************************************/
-void
-rp_fatal(char const *str)
-{
- printErr(str);
- exit(EXIT_FAILURE);
-}
-
-/**********************************************************************
-*%FUNCTION: genCookie
-*%ARGUMENTS:
-* peerEthAddr -- peer Ethernet address (6 bytes)
-* myEthAddr -- my Ethernet address (6 bytes)
-* seed -- random cookie seed to make things tasty (16 bytes)
-* cookie -- buffer which is filled with server PID and
-* md5 sum of previous items
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Forms the md5 sum of peer MAC address, our MAC address and seed, useful
-* in a PPPoE Cookie tag.
-***********************************************************************/
-void
-genCookie(unsigned char const *peerEthAddr,
- unsigned char const *myEthAddr,
- unsigned char const *seed,
- unsigned char *cookie)
-{
- struct MD5Context ctx;
- pid_t pid = getpid();
-
- MD5Init(&ctx);
- MD5Update(&ctx, peerEthAddr, ETH_ALEN);
- MD5Update(&ctx, myEthAddr, ETH_ALEN);
- MD5Update(&ctx, seed, SEED_LEN);
- MD5Final(cookie, &ctx);
- memcpy(cookie+MD5_LEN, &pid, sizeof(pid));
-}
-
-/**********************************************************************
-*%FUNCTION: processPADI
-*%ARGUMENTS:
-* sock -- Ethernet socket
-* myAddr -- my Ethernet address
-* packet -- PPPoE PADI packet
-* len -- length of received packet
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Sends a PADO packet back to client
-***********************************************************************/
-void
-processPADI(int sock, unsigned char *myAddr,
- PPPoEPacket *packet, int len)
-{
- PPPoEPacket pado;
- PPPoETag acname;
- PPPoETag servname;
- PPPoETag cookie;
- size_t acname_len;
- unsigned char *cursor = pado.payload;
- UINT16_t plen;
-
- /* Ignore PADI's which don't come from a unicast address */
- if (NOT_UNICAST(packet->ethHdr.h_source)) {
- syslog(LOG_ERR, "PADI packet from non-unicast source address");
- return;
- }
-
- acname.type = htons(TAG_AC_NAME);
- acname_len = strlen(ACName);
- acname.length = htons(acname_len);
- memcpy(acname.payload, ACName, acname_len);
-
- servname.type = htons(TAG_SERVICE_NAME);
- servname.length = 0;
-
- relayId.type = 0;
- hostUniq.type = 0;
- parsePacket(packet, parsePADITags, NULL);
-
- /* Generate a cookie */
- cookie.type = htons(TAG_AC_COOKIE);
- cookie.length = htons(COOKIE_LEN);
- genCookie(packet->ethHdr.h_source, myAddr, CookieSeed, cookie.payload);
-
- /* Construct a PADO packet */
- memcpy(pado.ethHdr.h_dest, packet->ethHdr.h_source, ETH_ALEN);
- memcpy(pado.ethHdr.h_source, myAddr, ETH_ALEN);
- pado.ethHdr.h_proto = htons(Eth_PPPOE_Discovery);
- pado.ver = 1;
- pado.type = 1;
- pado.code = CODE_PADO;
- pado.session = 0;
- plen = TAG_HDR_SIZE + acname_len;
-
- CHECK_ROOM(cursor, pado.payload, acname_len+TAG_HDR_SIZE);
- memcpy(cursor, &acname, acname_len + TAG_HDR_SIZE);
- cursor += acname_len + TAG_HDR_SIZE;
-
- CHECK_ROOM(cursor, pado.payload, TAG_HDR_SIZE);
- memcpy(cursor, &servname, TAG_HDR_SIZE);
- cursor += TAG_HDR_SIZE;
- plen += TAG_HDR_SIZE;
-
- CHECK_ROOM(cursor, pado.payload, TAG_HDR_SIZE + COOKIE_LEN);
- memcpy(cursor, &cookie, TAG_HDR_SIZE + COOKIE_LEN);
- cursor += TAG_HDR_SIZE + COOKIE_LEN;
- plen += TAG_HDR_SIZE + COOKIE_LEN;
-
- if (relayId.type) {
- CHECK_ROOM(cursor, pado.payload, ntohs(relayId.length) + TAG_HDR_SIZE);
- memcpy(cursor, &relayId, ntohs(relayId.length) + TAG_HDR_SIZE);
- cursor += ntohs(relayId.length) + TAG_HDR_SIZE;
- plen += ntohs(relayId.length) + TAG_HDR_SIZE;
- }
- if (hostUniq.type) {
- CHECK_ROOM(cursor, pado.payload, ntohs(hostUniq.length)+TAG_HDR_SIZE);
- memcpy(cursor, &hostUniq, ntohs(hostUniq.length) + TAG_HDR_SIZE);
- cursor += ntohs(hostUniq.length) + TAG_HDR_SIZE;
- plen += ntohs(hostUniq.length) + TAG_HDR_SIZE;
- }
- pado.length = htons(plen);
- sendPacket(NULL, sock, &pado, (int) (plen + HDR_SIZE));
-}
-
-/**********************************************************************
-*%FUNCTION: processPADT
-*%ARGUMENTS:
-* sock -- Ethernet socket
-* myAddr -- my Ethernet address
-* packet -- PPPoE PADT packet
-* len -- length of received packet
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Kills session whose session-ID is in PADT packet.
-***********************************************************************/
-void
-processPADT(int sock, unsigned char *myAddr,
- PPPoEPacket *packet, int len)
-{
- size_t i;
-
- /* Ignore PADT's not directed at us */
- if (memcmp(packet->ethHdr.h_dest, myAddr, ETH_ALEN)) return;
-
- /* Get session's index */
- i = ntohs(packet->session) - 1 - SessOffset;
- if (i >= NumSessionSlots) return;
- if (Sessions[i].sess != packet->session) {
- syslog(LOG_ERR, "Session index %u doesn't match session number %u",
- (unsigned int) i, (unsigned int) ntohs(packet->session));
- return;
- }
- if (Sessions[i].pid) {
- Sessions[i].recvdPADT = 1;
- parsePacket(packet, parseLogErrs, NULL);
- kill(Sessions[i].pid, SIGTERM);
- }
-}
-
-/**********************************************************************
-*%FUNCTION: processPADR
-*%ARGUMENTS:
-* sock -- Ethernet socket
-* myAddr -- my Ethernet address
-* packet -- PPPoE PADR packet
-* len -- length of received packet
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Sends a PADS packet back to client and starts a PPP session if PADR
-* packet is OK.
-***********************************************************************/
-void
-processPADR(int sock, unsigned char *myAddr,
- PPPoEPacket *packet, int len)
-{
- unsigned char cookieBuffer[COOKIE_LEN];
- struct ClientSession *cliSession;
- pid_t child;
- PPPoEPacket pads;
- unsigned char *cursor = pads.payload;
- UINT16_t plen;
- PPPoETag servname;
-
- /* Initialize some globals */
- relayId.type = 0;
- hostUniq.type = 0;
- receivedCookie.type = 0;
- requestedService.type = 0;
-
- /* Ignore PADR's not directed at us */
- if (memcmp(packet->ethHdr.h_dest, myAddr, ETH_ALEN)) return;
-
- /* Ignore PADR's from non-unicast addresses */
- if (NOT_UNICAST(packet->ethHdr.h_source)) {
- syslog(LOG_ERR, "PADR packet from non-unicast source address");
- return;
- }
-
- parsePacket(packet, parsePADRTags, NULL);
-
- /* Check that everything's cool */
- if (!receivedCookie.type) {
- /* Drop it -- do not send error PADS */
- return;
- }
-
- /* Is cookie kosher? */
- if (receivedCookie.length != htons(COOKIE_LEN)) {
- /* Drop it -- do not send error PADS */
- return;
- }
-
- genCookie(packet->ethHdr.h_source, myAddr, CookieSeed, cookieBuffer);
- if (memcmp(receivedCookie.payload, cookieBuffer, COOKIE_LEN)) {
- /* Drop it -- do not send error PADS */
- return;
- }
-
- /* Check service name -- we only offer service "" */
- if (!requestedService.type) {
- syslog(LOG_ERR, "Received PADR packet with no SERVICE_NAME tag");
- sendErrorPADS(sock, myAddr, packet->ethHdr.h_source,
- TAG_SERVICE_NAME_ERROR, "RP-PPPoE: Server: No service name tag");
- return;
- }
-
- if (requestedService.length) {
- syslog(LOG_ERR, "Received PADR packet asking for unsupported service %.*s", (int) ntohs(requestedService.length), requestedService.payload);
- sendErrorPADS(sock, myAddr, packet->ethHdr.h_source,
- TAG_SERVICE_NAME_ERROR, "RP-PPPoE: Server: Invalid service name tag");
- return;
- }
-
- /* Looks cool... find a slot for the session */
- cliSession = findSession(0);
- if (!cliSession) {
- syslog(LOG_ERR, "No client slots available (%02x:%02x:%02x:%02x:%02x:%02x)",
- (unsigned int) packet->ethHdr.h_source[0],
- (unsigned int) packet->ethHdr.h_source[1],
- (unsigned int) packet->ethHdr.h_source[2],
- (unsigned int) packet->ethHdr.h_source[3],
- (unsigned int) packet->ethHdr.h_source[4],
- (unsigned int) packet->ethHdr.h_source[5]);
- sendErrorPADS(sock, myAddr, packet->ethHdr.h_source,
- TAG_AC_SYSTEM_ERROR, "RP-PPPoE: Server: No client slots available");
- return;
- }
-
- /* Set up client session peer Ethernet address */
- memcpy(cliSession->eth, packet->ethHdr.h_source, ETH_ALEN);
- cliSession->recvdPADT = 0;
-
- /* Create child process, send PADS packet back */
- child = fork();
- if (child < 0) {
- sendErrorPADS(sock, myAddr, packet->ethHdr.h_source,
- TAG_AC_SYSTEM_ERROR, "RP-PPPoE: Server: Unable to start session process");
- return;
- }
- if (child != 0) {
- /* In the parent process. Mark pid in session slot */
- cliSession->pid = child;
- return;
- }
-
- /* In the child process. */
-
- /* pppd has a nasty habit of killing all processes in its process group.
- Start a new session to stop pppd from killing us! */
- setsid();
-
- /* Send PADS and Start pppd */
- memcpy(pads.ethHdr.h_dest, packet->ethHdr.h_source, ETH_ALEN);
- memcpy(pads.ethHdr.h_source, myAddr, ETH_ALEN);
- pads.ethHdr.h_proto = htons(Eth_PPPOE_Discovery);
- pads.ver = 1;
- pads.type = 1;
- pads.code = CODE_PADS;
-
- pads.session = cliSession->sess;
- plen = 0;
-
- servname.type = htons(TAG_SERVICE_NAME);
- servname.length = 0;
-
- memcpy(cursor, &servname, TAG_HDR_SIZE);
- cursor += TAG_HDR_SIZE;
- plen += TAG_HDR_SIZE;
-
- if (relayId.type) {
- memcpy(cursor, &relayId, ntohs(relayId.length) + TAG_HDR_SIZE);
- cursor += ntohs(relayId.length) + TAG_HDR_SIZE;
- plen += ntohs(relayId.length) + TAG_HDR_SIZE;
- }
- if (hostUniq.type) {
- memcpy(cursor, &hostUniq, ntohs(hostUniq.length) + TAG_HDR_SIZE);
- cursor += ntohs(hostUniq.length) + TAG_HDR_SIZE;
- plen += ntohs(hostUniq.length) + TAG_HDR_SIZE;
- }
- pads.length = htons(plen);
- sendPacket(NULL, sock, &pads, (int) (plen + HDR_SIZE));
- startPPPD(cliSession);
-}
-
-/**********************************************************************
-*%FUNCTION: childHandler
-*%ARGUMENTS:
-* sig -- signal number
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Called by SIGCHLD. Writes one byte to Pipe to wake up the select
-* loop and cause reaping of dead sessions
-***********************************************************************/
-void
-childHandler(int sig)
-{
- if (!ReapPending) {
- ReapPending = 1;
- write(Pipe[1], &ReapPending, 1);
- }
-}
-
-/**********************************************************************
-*%FUNCTION: usage
-*%ARGUMENTS:
-* argv0 -- argv[0] from main
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Prints usage instructions
-***********************************************************************/
-void
-usage(char const *argv0)
-{
- fprintf(stderr, "Usage: %s [options]\n", argv0);
- fprintf(stderr, "Options:\n");
-#ifdef USE_BPF
- fprintf(stderr, " -I if_name -- Specify interface (REQUIRED)\n");
-#else
- fprintf(stderr, " -I if_name -- Specify interface (default %s.)\n",
- DEFAULT_IF);
-#endif
- fprintf(stderr, " -T timeout -- Specify inactivity timeout in seconds.\n");
- fprintf(stderr, " -C name -- Set access concentrator name.\n");
- fprintf(stderr, " -m MSS -- Clamp incoming and outgoing MSS options.\n");
- fprintf(stderr, " -L ip -- Set local IP address.\n");
- fprintf(stderr, " -R ip -- Set start address of remote IP pool.\n");
- fprintf(stderr, " -p fname -- Optain IP address pool from specified file.\n");
- fprintf(stderr, " -N num -- Allow 'num' concurrent sessions.\n");
- fprintf(stderr, " -o offset -- Assign session numbers starting at offset+1.\n");
- fprintf(stderr, " -f disc:sess -- Set Ethernet frame types (hex).\n");
- fprintf(stderr, " -s -- Use synchronous PPP mode.\n");
-#ifdef HAVE_LINUX_KERNEL_PPPOE
- fprintf(stderr, " -k -- Use kernel-mode PPPoE.\n");
-#endif
- fprintf(stderr, " -h -- Print usage information.\n\n");
- fprintf(stderr, "PPPoE-Server Version %s, Copyright (C) 2001 Roaring Penguin Software Inc.\n", VERSION);
- fprintf(stderr, "PPPoE-Server comes with ABSOLUTELY NO WARRANTY.\n");
- fprintf(stderr, "This is free software, and you are welcome to redistribute it\n");
- fprintf(stderr, "under the terms of the GNU General Public License, version 2\n");
- fprintf(stderr, "or (at your option) any later version.\n");
- fprintf(stderr, "http://www.roaringpenguin.com\n");
-}
-
-/**********************************************************************
-*%FUNCTION: main
-*%ARGUMENTS:
-* argc, argv -- usual suspects
-*%RETURNS:
-* Exit status
-*%DESCRIPTION:
-* Main program of PPPoE server
-***********************************************************************/
-int
-main(int argc, char **argv)
-{
-
- FILE *fp;
- int i;
- int opt;
- unsigned char myAddr[ETH_ALEN];
- PPPoEPacket packet;
- int len;
- int sock;
- int d[IPV4ALEN];
- int beDaemon = 1;
- struct sigaction act;
- int maxFD;
- unsigned int discoveryType, sessionType;
- char *addressPoolFname = NULL;
-
-#ifndef HAVE_LINUX_KERNEL_PPPOE
- char *options = "hI:C:L:R:T:m:FN:f:o:sp:";
-#else
- char *options = "hI:C:L:R:T:m:FN:f:o:skp:";
-#endif
-
- /* Initialize syslog */
- openlog("pppoe-server", LOG_PID, LOG_DAEMON);
-
- /* Default number of session slots */
- NumSessionSlots = DEFAULT_MAX_SESSIONS;
-
- /* Parse command-line options */
- while((opt = getopt(argc, argv, options)) != -1) {
- switch(opt) {
-#ifdef HAVE_LINUX_KERNEL_PPPOE
- case 'k':
- UseLinuxKernelModePPPoE = 1;
- break;
-#endif
- case 'p':
- addressPoolFname = optarg;
- break;
- case 's':
- Synchronous = 1;
- /* Pass the Synchronous option on to pppoe */
- snprintf(PppoeOptions + strlen(PppoeOptions),
- SMALLBUF-strlen(PppoeOptions),
- " -s");
- break;
- case 'f':
- if (sscanf(optarg, "%x:%x", &discoveryType, &sessionType) != 2) {
- fprintf(stderr, "Illegal argument to -f: Should be disc:sess in hex\n");
- exit(EXIT_FAILURE);
- }
- Eth_PPPOE_Discovery = (UINT16_t) discoveryType;
- Eth_PPPOE_Session = (UINT16_t) sessionType;
- /* This option gets passed to pppoe */
- snprintf(PppoeOptions + strlen(PppoeOptions),
- SMALLBUF-strlen(PppoeOptions),
- " -%c %s", opt, optarg);
- break;
- case 'F':
- beDaemon = 0;
- break;
- case 'N':
- if (sscanf(optarg, "%d", &opt) != 1) {
- usage(argv[0]);
- exit(EXIT_FAILURE);
- }
- if (opt <= 0) {
- fprintf(stderr, "-N: Value must be positive\n");
- exit(EXIT_FAILURE);
- }
- NumSessionSlots = opt;
- break;
- case 'o':
- if (sscanf(optarg, "%d", &opt) != 1) {
- usage(argv[0]);
- exit(EXIT_FAILURE);
- }
- if (opt < 0) {
- fprintf(stderr, "-o: Value must be non-negative\n");
- exit(EXIT_FAILURE);
- }
- SessOffset = (size_t) opt;
- break;
-
- case 'I':
- SET_STRING(IfName, optarg);
- break;
- case 'C':
- SET_STRING(ACName, optarg);
- break;
- case 'L':
- case 'R':
- /* Get local/remote IP address */
- if (sscanf(optarg, "%d.%d.%d.%d", &d[0], &d[1], &d[2], &d[3]) != 4) {
- usage(argv[0]);
- exit(EXIT_FAILURE);
- }
- for (i=0; i<IPV4ALEN; i++) {
- if (d[i] < 0 || d[i] > 255) {
- usage(argv[0]);
- exit(EXIT_FAILURE);
- }
- if (opt == 'L') {
- LocalIP[i] = (unsigned char) d[i];
- } else {
- RemoteIP[i] = (unsigned char) d[i];
- }
- }
- break;
- case 'T':
- case 'm':
- /* These just get passed to pppoe */
- snprintf(PppoeOptions + strlen(PppoeOptions),
- SMALLBUF-strlen(PppoeOptions),
- " -%c %s", opt, optarg);
- break;
- case 'h':
- usage(argv[0]);
- exit(EXIT_SUCCESS);
- }
- }
-
-#ifdef USE_LINUX_PACKET
-#ifndef HAVE_STRUCT_SOCKADDR_LL
- fprintf(stderr, "The PPPoE relay does not work on Linux 2.0 kernels.\n");
- exit(EXIT_FAILURE);
-#endif
-#endif
-
- if (!IfName) {
- IfName = DEFAULT_IF;
- }
-
- if (!ACName) {
- ACName = malloc(HOSTNAMELEN);
- if (gethostname(ACName, HOSTNAMELEN) < 0) {
- fatalSys("gethostname");
- }
- }
-
- /* If address pool filename given, count number of addresses */
- if (addressPoolFname) {
- NumSessionSlots = parseAddressPool(addressPoolFname, 0);
- }
-
- /* Max 65534 - SessOffset sessions */
- if (NumSessionSlots + SessOffset > 65534) {
- fprintf(stderr, "-N and -o options must add up to at most 65534\n");
- exit(EXIT_FAILURE);
- }
-
- /* Allocate memory for sessions */
- Sessions = calloc(NumSessionSlots, sizeof(struct ClientSession));
- if (!Sessions) {
- rp_fatal("Cannot allocate memory for session slots");
- }
-
- /* Fill in remote IP addresses from pool */
- if (addressPoolFname) {
- (void) parseAddressPool(addressPoolFname, 1);
- }
-
- /* For testing -- generate sequential remote IP addresses */
- for(i=0; i<NumSessionSlots; i++) {
- Sessions[i].pid = 0;
- Sessions[i].sess = htons(i+1+SessOffset);
-
- if (!addressPoolFname) {
- memcpy(Sessions[i].ip, RemoteIP, sizeof(RemoteIP));
-
- /* Increment IP */
- RemoteIP[3]++;
- if (!RemoteIP[3]) {
- RemoteIP[3] = 0;
- RemoteIP[2]++;
- if (!RemoteIP[2]) {
- RemoteIP[1]++;
- if (!RemoteIP[1]) {
- RemoteIP[0]++;
- }
- }
- }
- }
- }
-
- /* Daemonize -- UNIX Network Programming, Vol. 1, Stevens */
- if (beDaemon) {
- i = fork();
- if (i < 0) {
- fatalSys("fork");
- } else if (i != 0) {
- /* parent */
- exit(EXIT_SUCCESS);
- }
- setsid();
- signal(SIGHUP, SIG_IGN);
- i = fork();
- if (i < 0) {
- fatalSys("fork");
- } else if (i != 0) {
- exit(EXIT_SUCCESS);
- }
-
- chdir("/");
- closelog();
- for (i=0; i<CLOSEFD; i++) close(i);
- /* We nuked our syslog descriptor... */
- openlog("pppoe-server", LOG_PID, LOG_DAEMON);
- }
-
- /* Initialize our random cookie. Try /dev/urandom; if that fails,
- use PID and rand() */
- fp = fopen("/dev/urandom", "r");
- if (fp) {
- fread(&CookieSeed, 1, SEED_LEN, fp);
- fclose(fp);
- } else {
- CookieSeed[0] = getpid() & 0xFF;
- CookieSeed[1] = (getpid() >> 8) & 0xFF;
- for (i=2; i<SEED_LEN; i++) {
- CookieSeed[i] = (rand() >> (i % 9)) & 0xFF;
- }
- }
-
- sock = openInterface(IfName, Eth_PPPOE_Discovery, myAddr);
-
- /* Set signal handler for SIGCHLD */
- act.sa_handler = childHandler;
- sigemptyset(&act.sa_mask);
- act.sa_flags = SA_NOCLDSTOP | SA_RESTART;
- if (sigaction(SIGCHLD, &act, NULL) < 0) {
- fatalSys("sigaction");
- }
-
- /* Set up pipe for signal handler */
- if (pipe(Pipe) < 0) {
- fatalSys("pipe");
- }
-
- /* Main server loop */
- maxFD = sock;
- if (Pipe[0] > maxFD) maxFD = Pipe[0];
- maxFD++;
-
- for(;;) {
- fd_set readable;
- FD_ZERO(&readable);
- FD_SET(sock, &readable);
- FD_SET(Pipe[0], &readable);
-
- while(1) {
- i = select(maxFD, &readable, NULL, NULL, NULL);
- if (i >= 0 || errno != EINTR) break;
- }
- if (i < 0) {
- fatalSys("select");
- }
-
- if (FD_ISSET(Pipe[0], &readable)) {
- /* Clear pipe */
- char buf[SMALLBUF];
- read(Pipe[0], buf, SMALLBUF);
- }
-
- if (ReapPending) {
- ReapPending = 0;
- reapSessions(myAddr, sock);
- }
- if (!FD_ISSET(sock, &readable)) {
- continue;
- }
-
- if (receivePacket(sock, &packet, &len) < 0) {
- continue;
- }
-
- /* Check length */
- if (ntohs(packet.length) + HDR_SIZE > len) {
- syslog(LOG_ERR, "Bogus PPPoE length field (%u)",
- (unsigned int) ntohs(packet.length));
- continue;
- }
-
- /* Sanity check on packet */
- if (packet.ver != 1 || packet.type != 1) {
- /* Syslog an error */
- continue;
- }
- switch(packet.code) {
- case CODE_PADI:
- processPADI(sock, myAddr, &packet, len);
- break;
- case CODE_PADR:
- processPADR(sock, myAddr, &packet, len);
- break;
- case CODE_PADT:
- /* Kill the child */
- processPADT(sock, myAddr, &packet, len);
- break;
- case CODE_SESS:
- /* Ignore SESS -- children will handle them */
- break;
- case CODE_PADO:
- case CODE_PADS:
- /* Ignore PADO and PADS totally */
- break;
- default:
- /* Syslog an error */
- break;
- }
- }
- return 0;
-}
-
-/**********************************************************************
-*%FUNCTION: sendErrorPADS
-*%ARGUMENTS:
-* sock -- socket to write to
-* source -- source Ethernet address
-* dest -- destination Ethernet address
-* errorTag -- error tag
-* errorMsg -- error message
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Sends a PADS packet with an error message
-***********************************************************************/
-void
-sendErrorPADS(int sock,
- unsigned char *source,
- unsigned char *dest,
- int errorTag,
- char *errorMsg)
-{
- PPPoEPacket pads;
- unsigned char *cursor = pads.payload;
- UINT16_t plen;
- PPPoETag err;
- int elen = strlen(errorMsg);
-
- memcpy(pads.ethHdr.h_dest, dest, ETH_ALEN);
- memcpy(pads.ethHdr.h_source, source, ETH_ALEN);
- pads.ethHdr.h_proto = htons(Eth_PPPOE_Discovery);
- pads.ver = 1;
- pads.type = 1;
- pads.code = CODE_PADS;
-
- pads.session = htons(0);
- plen = 0;
-
- err.type = htons(errorTag);
- err.length = htons(elen);
-
- memcpy(err.payload, errorMsg, elen);
- memcpy(cursor, &err, TAG_HDR_SIZE+elen);
- cursor += TAG_HDR_SIZE + elen;
- plen += TAG_HDR_SIZE + elen;
-
- if (relayId.type) {
- memcpy(cursor, &relayId, ntohs(relayId.length) + TAG_HDR_SIZE);
- cursor += ntohs(relayId.length) + TAG_HDR_SIZE;
- plen += ntohs(relayId.length) + TAG_HDR_SIZE;
- }
- if (hostUniq.type) {
- memcpy(cursor, &hostUniq, ntohs(hostUniq.length) + TAG_HDR_SIZE);
- cursor += ntohs(hostUniq.length) + TAG_HDR_SIZE;
- plen += ntohs(hostUniq.length) + TAG_HDR_SIZE;
- }
- pads.length = htons(plen);
- sendPacket(NULL, sock, &pads, (int) (plen + HDR_SIZE));
-}
-
-
-/**********************************************************************
-*%FUNCTION: startPPPDUserMode
-*%ARGUMENTS:
-* session -- client session record
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Starts PPPD for user-mode PPPoE
-***********************************************************************/
-void
-startPPPDUserMode(struct ClientSession *session)
-{
- /* Leave some room */
- char *argv[20];
-
- char buffer[SMALLBUF];
-
- argv[0] = "pppd";
- argv[1] = "pty";
-
- snprintf(buffer, SMALLBUF, "%s -n -I %s -e %d:%02x:%02x:%02x:%02x:%02x:%02x%s",
- PPPOE_PATH, IfName,
- ntohs(session->sess),
- session->eth[0], session->eth[1], session->eth[2],
- session->eth[3], session->eth[4], session->eth[5],
- PppoeOptions);
- argv[2] = strdup(buffer);
- if (!argv[2]) {
- /* TODO: Send a PADT */
- exit(EXIT_FAILURE);
- }
-
- argv[3] = "file";
- argv[4] = PPPOE_SERVER_OPTIONS;
-
- snprintf(buffer, SMALLBUF, "%d.%d.%d.%d:%d.%d.%d.%d",
- (int) LocalIP[0], (int) LocalIP[1],
- (int) LocalIP[2], (int) LocalIP[3],
- (int) session->ip[0], (int) session->ip[1],
- (int) session->ip[2], (int) session->ip[3]);
- syslog(LOG_INFO,
- "Session %d created for client %02x:%02x:%02x:%02x:%02x:%02x (%d.%d.%d.%d)",
- ntohs(session->sess),
- session->eth[0], session->eth[1], session->eth[2],
- session->eth[3], session->eth[4], session->eth[5],
- (int) session->ip[0], (int) session->ip[1],
- (int) session->ip[2], (int) session->ip[3]);
- argv[5] = buffer; /* No need for strdup -- about to execv! */
- argv[6] = "nodetach";
- argv[7] = "noaccomp";
- argv[8] = "nobsdcomp";
- argv[9] = "nodeflate";
- argv[10] = "nopcomp";
- argv[11] = "novj";
- argv[12] = "novjccomp";
- argv[13] = "default-asyncmap";
- if (Synchronous) {
- argv[14] = "sync";
- argv[15] = NULL;
- } else {
- argv[14] = NULL;
- }
-
- execv(PPPD_PATH, argv);
- exit(EXIT_FAILURE);
-}
-
-/**********************************************************************
-*%FUNCTION: startPPPDLinuxKernelMode
-*%ARGUMENTS:
-* session -- client session record
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Starts PPPD for kernel-mode PPPoE on Linux
-***********************************************************************/
-void
-startPPPDLinuxKernelMode(struct ClientSession *session)
-{
- /* Leave some room */
- char *argv[20];
-
- char buffer[SMALLBUF];
-
- argv[0] = "pppd";
- argv[1] = "plugin";
- argv[2] = PLUGIN_PATH;
- argv[3] = IfName;
- snprintf(buffer, SMALLBUF, "%d:%02x:%02x:%02x:%02x:%02x:%02x",
- ntohs(session->sess),
- session->eth[0], session->eth[1], session->eth[2],
- session->eth[3], session->eth[4], session->eth[5]);
- argv[4] = "rp_pppoe_sess";
- argv[5] = strdup(buffer);
- if (!argv[5]) {
- /* TODO: Send a PADT */
- exit(EXIT_FAILURE);
- }
- argv[6] = "file";
- argv[7] = PPPOE_SERVER_OPTIONS;
-
- snprintf(buffer, SMALLBUF, "%d.%d.%d.%d:%d.%d.%d.%d",
- (int) LocalIP[0], (int) LocalIP[1],
- (int) LocalIP[2], (int) LocalIP[3],
- (int) session->ip[0], (int) session->ip[1],
- (int) session->ip[2], (int) session->ip[3]);
- syslog(LOG_INFO,
- "Session %d created for client %02x:%02x:%02x:%02x:%02x:%02x (%d.%d.%d.%d)",
- ntohs(session->sess),
- session->eth[0], session->eth[1], session->eth[2],
- session->eth[3], session->eth[4], session->eth[5],
- (int) session->ip[0], (int) session->ip[1],
- (int) session->ip[2], (int) session->ip[3]);
- argv[8] = buffer;
- argv[9] = "nodetach";
- argv[10] = "noaccomp";
- argv[11] = "nobsdcomp";
- argv[12] = "nodeflate";
- argv[13] = "nopcomp";
- argv[14] = "novj";
- argv[15] = "novjccomp";
- argv[16] = "default-asyncmap";
- argv[17] = NULL;
- execv(PPPD_PATH, argv);
- exit(EXIT_FAILURE);
-}
-
-/**********************************************************************
-*%FUNCTION: startPPPD
-*%ARGUMENTS:
-* session -- client session record
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Starts PPPD
-***********************************************************************/
-void
-startPPPD(struct ClientSession *session)
-{
- if (UseLinuxKernelModePPPoE) startPPPDLinuxKernelMode(session);
- else startPPPDUserMode(session);
-}
-
diff --git a/mdk-stage1/rp-pppoe/src/pppoe-sniff.c b/mdk-stage1/rp-pppoe/src/pppoe-sniff.c
deleted file mode 100644
index aa796547b..000000000
--- a/mdk-stage1/rp-pppoe/src/pppoe-sniff.c
+++ /dev/null
@@ -1,258 +0,0 @@
-/***********************************************************************
-*
-* pppoe-sniff.c
-*
-* Sniff a network for likely-looking PPPoE frames and deduce the value
-* to supply to PPPOE_EXTRA in /etc/ppp/pppoe.conf. USE AT YOUR OWN RISK.
-*
-* Copyright (C) 2000 by Roaring Penguin Software Inc.
-*
-* This program may be distributed according to the terms of the GNU
-* General Public License, version 2 or (at your option) any later version.
-*
-***********************************************************************/
-
-static char const RCSID[] =
-"$Id$";
-
-#include "pppoe.h"
-
-#ifdef HAVE_GETOPT_H
-#include <getopt.h>
-#endif
-
-#include <errno.h>
-#include <unistd.h>
-#include <string.h>
-#include <stdlib.h>
-
-#ifdef USE_DLPI
-#include <sys/dlpi.h>
-/* function declarations */
-void dlpromisconreq( int fd, u_long level);
-void dlokack(int fd, char *bufp);
-#endif
-
-/* Default interface if no -I option given */
-#define DEFAULT_IF "eth0"
-
-/* Global vars */
-int SeenPADR = 0;
-int SeenSess = 0;
-UINT16_t SessType, DiscType;
-
-char *IfName = NULL; /* Interface name */
-char *ServiceName = NULL; /* Service name */
-
-/**********************************************************************
-*%FUNCTION: parsePADRTags
-*%ARGUMENTS:
-* type -- tag type
-* len -- tag length
-* data -- tag data
-* extra -- extra user data.
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Picks interesting tags out of a PADR packet
-***********************************************************************/
-void
-parsePADRTags(UINT16_t type, UINT16_t len, unsigned char *data,
- void *extra)
-{
- switch(type) {
- case TAG_SERVICE_NAME:
- ServiceName = malloc(len+1);
- if (ServiceName) {
- memcpy(ServiceName, data, len);
- ServiceName[len] = 0;
- }
- break;
- }
-}
-
-/**********************************************************************
-*%FUNCTION: fatalSys
-*%ARGUMENTS:
-* str -- error message
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Prints a message plus the errno value to stderr and exits.
-***********************************************************************/
-void
-fatalSys(char const *str)
-{
- char buf[1024];
- sprintf(buf, "%.256s: %.256s", str, strerror(errno));
- printErr(buf);
- exit(1);
-}
-
-/**********************************************************************
-*%FUNCTION: rp_fatal
-*%ARGUMENTS:
-* str -- error message
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Prints a message to stderr and syslog and exits.
-***********************************************************************/
-void
-rp_fatal(char const *str)
-{
- printErr(str);
- exit(1);
-}
-
-/**********************************************************************
-*%FUNCTION: usage
-*%ARGUMENTS:
-* argv0 -- program name
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Prints usage information and exits.
-***********************************************************************/
-void
-usage(char const *argv0)
-{
- fprintf(stderr, "Usage: %s [options]\n", argv0);
- fprintf(stderr, "Options:\n");
- fprintf(stderr, " -I if_name -- Specify interface (default %s.)\n",
- DEFAULT_IF);
- fprintf(stderr, " -V -- Print version and exit.\n");
- fprintf(stderr, "\nPPPoE Version %s, Copyright (C) 2000 Roaring Penguin Software Inc.\n", VERSION);
- fprintf(stderr, "PPPoE comes with ABSOLUTELY NO WARRANTY.\n");
- fprintf(stderr, "This is free software, and you are welcome to redistribute it under the terms\n");
- fprintf(stderr, "of the GNU General Public License, version 2 or any later version.\n");
- fprintf(stderr, "http://www.roaringpenguin.com\n");
- exit(0);
-}
-
-#if !defined(USE_LINUX_PACKET) && !defined(USE_DLPI)
-
-int
-main()
-{
- fprintf(stderr, "Sorry, pppoe-sniff works only on Linux.\n");
- return 1;
-}
-
-#else
-
-/**********************************************************************
-*%FUNCTION: main
-*%ARGUMENTS:
-* argc, argv -- count and values of command-line arguments
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Main program
-***********************************************************************/
-int
-main(int argc, char *argv[])
-{
- int opt;
- int sock;
- PPPoEPacket pkt;
- int size;
-#ifdef USE_DLPI
- long buf[MAXDLBUF];
-#endif
-
- while((opt = getopt(argc, argv, "I:V")) != -1) {
- switch(opt) {
- case 'I':
- SET_STRING(IfName, optarg);
- break;
- case 'V':
- printf("pppoe-sniff: Roaring Penguin PPPoE Version %s\n", VERSION);
- exit(0);
- default:
- usage(argv[0]);
- }
- }
-
- /* Pick a default interface name */
- if (!IfName) {
- IfName = DEFAULT_IF;
- }
-
- /* Open the interface */
-#ifdef USE_DLPI
- sock = openInterface(IfName, Eth_PPPOE_Discovery, NULL);
- dlpromisconreq(sock, DL_PROMISC_PHYS);
- dlokack(sock, (char *)buf);
- dlpromisconreq(sock, DL_PROMISC_SAP);
- dlokack(sock, (char *)buf);
-#else
-
- sock = openInterface(IfName, ETH_P_ALL, NULL);
-
-#endif
-
- /* We assume interface is in promiscuous mode -- use ifconfig to
- ensure this */
- fprintf(stderr, "Sniffing for PADR. Start your connection on another machine...\n");
- while (!SeenPADR) {
- if (receivePacket(sock, &pkt, &size) < 0) continue;
- if (ntohs(pkt.length) + HDR_SIZE > size) continue;
- if (pkt.ver != 1 || pkt.type != 1) continue;
- if (pkt.code != CODE_PADR) continue;
-
- /* Looks promising... parse it */
- if (parsePacket(&pkt, parsePADRTags, NULL) < 0) {
- continue;
- }
- DiscType = ntohs(pkt.ethHdr.h_proto);
- fprintf(stderr, "\nExcellent! Sniffed a likely-looking PADR.\n");
- break;
- }
-
- while (!SeenSess) {
- if (receivePacket(sock, &pkt, &size) < 0) continue;
- if (ntohs(pkt.length) + HDR_SIZE > size) continue;
- if (pkt.ver != 1 || pkt.type != 1) continue;
- if (pkt.code != CODE_SESS) continue;
-
- /* Cool! */
- SessType = ntohs(pkt.ethHdr.h_proto);
- break;
- }
-
- fprintf(stderr, "Wonderful! Sniffed a likely-looking session packet.\n");
- if ((ServiceName == NULL || *ServiceName == 0) &&
- DiscType == ETH_PPPOE_DISCOVERY &&
- SessType == ETH_PPPOE_SESSION) {
- fprintf(stderr, "\nGreat! It looks like a standard PPPoE service.\nYou should not need anything special in the configuration file.\n");
- return 0;
- }
-
- fprintf(stderr, "\nOK, looks like you need something special in the configuration file.\nTry this:\n\n");
- if (ServiceName != NULL && *ServiceName != 0) {
- fprintf(stderr, "SERVICENAME='%s'\n", ServiceName);
- }
- if (DiscType != ETH_PPPOE_DISCOVERY || SessType != ETH_PPPOE_SESSION) {
- fprintf(stderr, " PPPOE_EXTRA='-f %x:%x'\n", DiscType, SessType);
- }
- return 0;
-}
-
-#endif
-/**********************************************************************
-*%FUNCTION: sysErr
-*%ARGUMENTS:
-* str -- error message
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Prints a message plus the errno value to syslog.
-***********************************************************************/
-void
-sysErr(char const *str)
-{
- char buf[1024];
- sprintf(buf, "%.256s: %.256s", str, strerror(errno));
- printErr(buf);
-}
diff --git a/mdk-stage1/rp-pppoe/src/pppoe.c b/mdk-stage1/rp-pppoe/src/pppoe.c
deleted file mode 100644
index 26cb4b07b..000000000
--- a/mdk-stage1/rp-pppoe/src/pppoe.c
+++ /dev/null
@@ -1,834 +0,0 @@
-/***********************************************************************
-*
-* pppoe.c
-*
-* Implementation of user-space PPPoE redirector for Linux.
-*
-* Copyright (C) 2000-2001 by Roaring Penguin Software Inc.
-*
-* This program may be distributed according to the terms of the GNU
-* General Public License, version 2 or (at your option) any later version.
-*
-***********************************************************************/
-
-static char const RCSID[] =
-"$Id$";
-
-#include "pppoe.h"
-
-#ifdef HAVE_SYSLOG_H
-#include <syslog.h>
-#endif
-
-#ifdef HAVE_GETOPT_H
-#include <getopt.h>
-#endif
-
-#include <string.h>
-#include <stdlib.h>
-#include <errno.h>
-
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-
-#ifdef HAVE_SYS_UIO_H
-#include <sys/uio.h>
-#endif
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifdef USE_LINUX_PACKET
-#include <sys/ioctl.h>
-#include <fcntl.h>
-#endif
-
-#include <signal.h>
-
-#ifdef HAVE_N_HDLC
-#ifndef N_HDLC
-#include <termios.h>
-#endif
-#endif
-
-/* Default interface if no -I option given */
-#define DEFAULT_IF "eth0"
-
-/* Global variables -- options */
-int optInactivityTimeout = 0; /* Inactivity timeout */
-int optClampMSS = 0; /* Clamp MSS to this value */
-int optSkipSession = 0; /* Perform discovery, print session info
- and exit */
-
-PPPoEConnection *Connection = NULL; /* Must be global -- used
- in signal handler */
-/***********************************************************************
-*%FUNCTION: sendSessionPacket
-*%ARGUMENTS:
-* conn -- PPPoE connection
-* packet -- the packet to send
-* len -- length of data to send
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Transmits a session packet to the peer.
-***********************************************************************/
-void
-sendSessionPacket(PPPoEConnection *conn, PPPoEPacket *packet, int len)
-{
- packet->length = htons(len);
- if (optClampMSS) {
- clampMSS(packet, "outgoing", optClampMSS);
- }
- if (sendPacket(conn, conn->sessionSocket, packet, len + HDR_SIZE) < 0) {
- exit(EXIT_FAILURE);
- }
- if (conn->debugFile) {
- dumpPacket(conn->debugFile, packet, "SENT");
- fprintf(conn->debugFile, "\n");
- fflush(conn->debugFile);
- }
-}
-
-#ifdef USE_BPF
-/**********************************************************************
-*%FUNCTION: sessionDiscoveryPacket
-*%ARGUMENTS:
-* packet -- the discovery packet that was received
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* We got a discovery packet during the session stage. This most likely
-* means a PADT.
-*
-* The BSD version uses a single socket for both discovery and session
-* packets. When a packet comes in over the wire once we are in
-* session mode, either syncReadFromEth() or asyncReadFromEth() will
-* have already read the packet and determined it to be a discovery
-* packet before passing it here.
-***********************************************************************/
-void
-sessionDiscoveryPacket(PPPoEPacket *packet)
-{
- /* Sanity check */
- if (packet->code != CODE_PADT) {
- return;
- }
-
- /* It's a PADT, all right. Is it for us? */
- if (packet->session != Connection->session) {
- /* Nope, ignore it */
- return;
- }
-
- syslog(LOG_INFO,
- "Session terminated -- received PADT from access concentrator");
- parsePacket(packet, parseLogErrs, NULL);
- exit(EXIT_SUCCESS);
-}
-#else
-/**********************************************************************
-*%FUNCTION: sessionDiscoveryPacket
-*%ARGUMENTS:
-* conn -- PPPoE connection
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* We got a discovery packet during the session stage. This most likely
-* means a PADT.
-***********************************************************************/
-void
-sessionDiscoveryPacket(PPPoEConnection *conn)
-{
- PPPoEPacket packet;
- int len;
-
- if (receivePacket(conn->discoverySocket, &packet, &len) < 0) {
- return;
- }
-
- /* Check length */
- if (ntohs(packet.length) + HDR_SIZE > len) {
- syslog(LOG_ERR, "Bogus PPPoE length field (%u)",
- (unsigned int) ntohs(packet.length));
- return;
- }
-
- if (conn->debugFile) {
- dumpPacket(conn->debugFile, &packet, "RCVD");
- fprintf(conn->debugFile, "\n");
- fflush(conn->debugFile);
- }
-
- if (packet.code != CODE_PADT) {
- /* Not PADT; ignore it */
- return;
- }
-
- /* It's a PADT, all right. Is it for us? */
- if (packet.session != conn->session) {
- /* Nope, ignore it */
- return;
- }
-
- syslog(LOG_INFO,
- "Session terminated -- received PADT from peer");
- parsePacket(&packet, parseLogErrs, NULL);
- exit(EXIT_SUCCESS);
-}
-#endif /* USE_BPF */
-
-/**********************************************************************
-*%FUNCTION: session
-*%ARGUMENTS:
-* conn -- PPPoE connection info
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Handles the "session" phase of PPPoE
-***********************************************************************/
-void
-session(PPPoEConnection *conn)
-{
- fd_set readable;
- PPPoEPacket packet;
- struct timeval tv;
- struct timeval *tvp = NULL;
- int maxFD = 0;
- int r;
-
- /* Open a session socket */
- conn->sessionSocket = openInterface(conn->ifName, Eth_PPPOE_Session, conn->myEth);
-
- /* Prepare for select() */
- if (conn->sessionSocket > maxFD) maxFD = conn->sessionSocket;
- if (conn->discoverySocket > maxFD) maxFD = conn->discoverySocket;
- maxFD++;
-
- /* Fill in the constant fields of the packet to save time */
- memcpy(packet.ethHdr.h_dest, conn->peerEth, ETH_ALEN);
- memcpy(packet.ethHdr.h_source, conn->myEth, ETH_ALEN);
- packet.ethHdr.h_proto = htons(Eth_PPPOE_Session);
- packet.ver = 1;
- packet.type = 1;
- packet.code = CODE_SESS;
- packet.session = conn->session;
-
- initPPP();
-
-#ifdef USE_BPF
- /* check for buffered session data */
- while (BPF_BUFFER_HAS_DATA) {
- if (conn->synchronous) {
- syncReadFromEth(conn, conn->sessionSocket, optClampMSS);
- } else {
- asyncReadFromEth(conn, conn->sessionSocket, optClampMSS);
- }
- }
-#endif
-
- for (;;) {
- if (optInactivityTimeout > 0) {
- tv.tv_sec = optInactivityTimeout;
- tv.tv_usec = 0;
- tvp = &tv;
- }
- FD_ZERO(&readable);
- FD_SET(0, &readable); /* ppp packets come from stdin */
- if (conn->discoverySocket >= 0) {
- FD_SET(conn->discoverySocket, &readable);
- }
- FD_SET(conn->sessionSocket, &readable);
- while(1) {
- r = select(maxFD, &readable, NULL, NULL, tvp);
- if (r >= 0 || errno != EINTR) break;
- }
- if (r < 0) {
- fatalSys("select (session)");
- }
- if (r == 0) { /* Inactivity timeout */
- syslog(LOG_ERR, "Inactivity timeout... something wicked happened");
- sendPADT(conn, "RP-PPPoE: Inactivity timeout");
- exit(EXIT_FAILURE);
- }
-
- /* Handle ready sockets */
- if (FD_ISSET(0, &readable)) {
- if (conn->synchronous) {
- syncReadFromPPP(conn, &packet);
- } else {
- asyncReadFromPPP(conn, &packet);
- }
- }
-
- if (FD_ISSET(conn->sessionSocket, &readable)) {
- do {
- if (conn->synchronous) {
- syncReadFromEth(conn, conn->sessionSocket, optClampMSS);
- } else {
- asyncReadFromEth(conn, conn->sessionSocket, optClampMSS);
- }
- } while (BPF_BUFFER_HAS_DATA);
- }
-
-#ifndef USE_BPF
- /* BSD uses a single socket, see *syncReadFromEth() */
- /* for calls to sessionDiscoveryPacket() */
- if (conn->discoverySocket >= 0) {
- if (FD_ISSET(conn->discoverySocket, &readable)) {
- sessionDiscoveryPacket(conn);
- }
- }
-#endif
-
- }
-}
-
-
-/***********************************************************************
-*%FUNCTION: sigPADT
-*%ARGUMENTS:
-* src -- signal received
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* If an established session exists send PADT to terminate from session
-* from our end
-***********************************************************************/
-void
-sigPADT(int src)
-{
- syslog(LOG_DEBUG,"Received signal %d.",(int)src);
- sendPADT(Connection, "RP-PPPoE: Received signal");
- exit(EXIT_SUCCESS);
-}
-
-/**********************************************************************
-*%FUNCTION: usage
-*%ARGUMENTS:
-* argv0 -- program name
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Prints usage information and exits.
-***********************************************************************/
-void
-usage(char const *argv0)
-{
- fprintf(stderr, "Usage: %s [options]\n", argv0);
- fprintf(stderr, "Options:\n");
-#ifdef USE_BPF
- fprintf(stderr, " -I if_name -- Specify interface (REQUIRED)\n");
-#else
- fprintf(stderr, " -I if_name -- Specify interface (default %s.)\n",
- DEFAULT_IF);
-#endif
- fprintf(stderr, " -T timeout -- Specify inactivity timeout in seconds.\n");
- fprintf(stderr, " -D filename -- Log debugging information in filename.\n");
- fprintf(stderr, " -V -- Print version and exit.\n");
- fprintf(stderr, " -A -- Print access concentrator names and exit.\n");
- fprintf(stderr, " -S name -- Set desired service name.\n");
- fprintf(stderr, " -C name -- Set desired access concentrator name.\n");
- fprintf(stderr, " -U -- Use Host-Unique to allow multiple PPPoE sessions.\n");
- fprintf(stderr, " -s -- Use synchronous PPP encapsulation.\n");
- fprintf(stderr, " -m MSS -- Clamp incoming and outgoing MSS options.\n");
- fprintf(stderr, " -p pidfile -- Write process-ID to pidfile.\n");
- fprintf(stderr, " -e sess:mac -- Skip discovery phase; use existing session.\n");
- fprintf(stderr, " -n -- Do not open discovery socket.\n");
- fprintf(stderr, " -k -- Kill a session with PADT (requires -e)\n");
- fprintf(stderr, " -d -- Perform discovery, print session info and exit.\n");
- fprintf(stderr, " -f disc:sess -- Set Ethernet frame types (hex).\n");
- fprintf(stderr, " -h -- Print usage information.\n\n");
- fprintf(stderr, "PPPoE Version %s, Copyright (C) 2001 Roaring Penguin Software Inc.\n", VERSION);
- fprintf(stderr, "PPPoE comes with ABSOLUTELY NO WARRANTY.\n");
- fprintf(stderr, "This is free software, and you are welcome to redistribute it under the terms\n");
- fprintf(stderr, "of the GNU General Public License, version 2 or any later version.\n");
- fprintf(stderr, "http://www.roaringpenguin.com\n");
- exit(EXIT_SUCCESS);
-}
-
-/**********************************************************************
-*%FUNCTION: main
-*%ARGUMENTS:
-* argc, argv -- count and values of command-line arguments
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Main program
-***********************************************************************/
-int
-main(int argc, char *argv[])
-{
- int opt;
- int n;
- unsigned int m[6]; /* MAC address in -e option */
- unsigned int s; /* Temporary to hold session */
- FILE *pidfile;
- unsigned int discoveryType, sessionType;
-
- PPPoEConnection conn;
-
-#ifdef HAVE_N_HDLC
- int disc = N_HDLC;
- long flags;
-#endif
-
- /* Initialize connection info */
- memset(&conn, 0, sizeof(conn));
- conn.discoverySocket = -1;
- conn.sessionSocket = -1;
-
- /* For signal handler */
- Connection = &conn;
-
- /* Initialize syslog */
- openlog("pppoe", LOG_PID, LOG_DAEMON);
-
- while((opt = getopt(argc, argv, "I:VAT:D:hS:C:Usm:np:e:kdf:")) != -1) {
- switch(opt) {
- case 'f':
- if (sscanf(optarg, "%x:%x", &discoveryType, &sessionType) != 2) {
- fprintf(stderr, "Illegal argument to -f: Should be disc:sess in hex\n");
- exit(EXIT_FAILURE);
- }
- Eth_PPPOE_Discovery = (UINT16_t) discoveryType;
- Eth_PPPOE_Session = (UINT16_t) sessionType;
- break;
- case 'd':
- optSkipSession = 1;
- break;
-
- case 'k':
- conn.killSession = 1;
- break;
-
- case 'n':
- /* Do not even open a discovery socket -- used when invoked
- by pppoe-server */
- conn.noDiscoverySocket = 1;
- break;
-
- case 'e':
- /* Existing session: "sess:xx:yy:zz:aa:bb:cc" where "sess" is
- session-ID, and xx:yy:zz:aa:bb:cc is MAC-address of peer */
- n = sscanf(optarg, "%u:%2x:%2x:%2x:%2x:%2x:%2x",
- &s, &m[0], &m[1], &m[2], &m[3], &m[4], &m[5]);
- if (n != 7) {
- fprintf(stderr, "Illegal argument to -e: Should be sess:xx:yy:zz:aa:bb:cc\n");
- exit(EXIT_FAILURE);
- }
-
- /* Copy MAC address of peer */
- for (n=0; n<6; n++) {
- conn.peerEth[n] = (unsigned char) m[n];
- }
-
- /* Convert session */
- conn.session = htons(s);
-
- /* Skip discovery phase! */
- conn.skipDiscovery = 1;
- break;
-
- case 'p':
- pidfile = fopen(optarg, "w");
- if (pidfile) {
- fprintf(pidfile, "%lu\n", (unsigned long) getpid());
- fclose(pidfile);
- }
- break;
- case 'S':
- SET_STRING(conn.serviceName, optarg);
- break;
- case 'C':
- SET_STRING(conn.acName, optarg);
- break;
- case 's':
- conn.synchronous = 1;
- break;
- case 'U':
- conn.useHostUniq = 1;
- break;
- case 'D':
- conn.debugFile = fopen(optarg, "w");
- if (!conn.debugFile) {
- fprintf(stderr, "Could not open %s: %s\n",
- optarg, strerror(errno));
- exit(EXIT_FAILURE);
- }
- fprintf(conn.debugFile, "rp-pppoe-%s\n", VERSION);
- fflush(conn.debugFile);
- break;
- case 'T':
- optInactivityTimeout = (int) strtol(optarg, NULL, 10);
- if (optInactivityTimeout < 0) {
- optInactivityTimeout = 0;
- }
- break;
- case 'm':
- optClampMSS = (int) strtol(optarg, NULL, 10);
- if (optClampMSS < 536) {
- fprintf(stderr, "-m: %d is too low (min 536)\n", optClampMSS);
- exit(EXIT_FAILURE);
- }
- if (optClampMSS > 1452) {
- fprintf(stderr, "-m: %d is too high (max 1452)\n", optClampMSS);
- exit(EXIT_FAILURE);
- }
- break;
- case 'I':
- SET_STRING(conn.ifName, optarg);
- break;
- case 'V':
- printf("Roaring Penguin PPPoE Version %s\n", VERSION);
- exit(EXIT_SUCCESS);
- case 'A':
- conn.printACNames = 1;
- break;
- case 'h':
- usage(argv[0]);
- break;
- default:
- usage(argv[0]);
- }
- }
-
- /* Pick a default interface name */
- if (!conn.ifName) {
-#ifdef USE_BPF
- fprintf(stderr, "No interface specified (-I option)\n");
- exit(EXIT_FAILURE);
-#else
- SET_STRING(conn.ifName, DEFAULT_IF);
-#endif
- }
-
- /* Set signal handlers: send PADT on TERM, HUP and INT */
- if (!conn.printACNames) {
- signal(SIGTERM, sigPADT);
- signal(SIGHUP, sigPADT);
- signal(SIGINT, sigPADT);
-
-#ifdef HAVE_N_HDLC
- if (conn.synchronous) {
- if (ioctl(0, TIOCSETD, &disc) < 0) {
- printErr("Unable to set line discipline to N_HDLC -- synchronous mode probably will fail");
- } else {
- syslog(LOG_INFO,
- "Changed pty line discipline to N_HDLC for synchronous mode");
- }
- /* There is a bug in Linux's select which returns a descriptor
- * as readable if N_HDLC line discipline is on, even if
- * it isn't really readable. This return happens only when
- * select() times out. To avoid blocking forever in read(),
- * make descriptor 0 non-blocking */
- flags = fcntl(0, F_GETFL);
- if (flags < 0) fatalSys("fcntl(F_GETFL)");
- if (fcntl(0, F_SETFL, (long) flags | O_NONBLOCK) < 0) {
- fatalSys("fcntl(F_SETFL)");
- }
- }
-#endif
-
- }
-
- discovery(&conn);
- if (optSkipSession) {
- printf("%u:%02x:%02x:%02x:%02x:%02x:%02x\n",
- ntohs(conn.session),
- conn.peerEth[0],
- conn.peerEth[1],
- conn.peerEth[2],
- conn.peerEth[3],
- conn.peerEth[4],
- conn.peerEth[5]);
- exit(EXIT_SUCCESS);
- }
- session(&conn);
- return 0;
-}
-
-/**********************************************************************
-*%FUNCTION: fatalSys
-*%ARGUMENTS:
-* str -- error message
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Prints a message plus the errno value to stderr and syslog and exits.
-***********************************************************************/
-void
-fatalSys(char const *str)
-{
- char buf[1024];
- sprintf(buf, "%.256s: %.256s", str, strerror(errno));
- printErr(buf);
- sendPADT(Connection, "RP-PPPoE: System call error");
- exit(EXIT_FAILURE);
-}
-
-/**********************************************************************
-*%FUNCTION: sysErr
-*%ARGUMENTS:
-* str -- error message
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Prints a message plus the errno value to syslog.
-***********************************************************************/
-void
-sysErr(char const *str)
-{
- char buf[1024];
- sprintf(buf, "%.256s: %.256s", str, strerror(errno));
- printErr(buf);
-}
-
-/**********************************************************************
-*%FUNCTION: rp_fatal
-*%ARGUMENTS:
-* str -- error message
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Prints a message to stderr and syslog and exits.
-***********************************************************************/
-void
-rp_fatal(char const *str)
-{
- char buf[1024];
- printErr(str);
- sprintf(buf, "RP-PPPoE: %.256s", str);
- sendPADT(Connection, buf);
- exit(EXIT_FAILURE);
-}
-
-/**********************************************************************
-*%FUNCTION: asyncReadFromEth
-*%ARGUMENTS:
-* conn -- PPPoE connection info
-* sock -- Ethernet socket
-* clampMss -- if non-zero, do MSS-clamping
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Reads a packet from the Ethernet interface and sends it to async PPP
-* device.
-***********************************************************************/
-void
-asyncReadFromEth(PPPoEConnection *conn, int sock, int clampMss)
-{
- PPPoEPacket packet;
- int len;
- int plen;
- int i;
- unsigned char pppBuf[4096];
- unsigned char *ptr = pppBuf;
- unsigned char c;
- UINT16_t fcs;
- unsigned char header[2] = {FRAME_ADDR, FRAME_CTRL};
- unsigned char tail[2];
-#ifdef USE_BPF
- int type;
-#endif
-
- if (receivePacket(sock, &packet, &len) < 0) {
- return;
- }
-
- /* Check length */
- if (ntohs(packet.length) + HDR_SIZE > len) {
- syslog(LOG_ERR, "Bogus PPPoE length field (%u)",
- (unsigned int) ntohs(packet.length));
- return;
- }
- if (conn->debugFile) {
- dumpPacket(conn->debugFile, &packet, "RCVD");
- fprintf(conn->debugFile, "\n");
- fflush(conn->debugFile);
- }
-
-#ifdef USE_BPF
- /* Make sure this is a session packet before processing further */
- type = etherType(&packet);
- if (type == Eth_PPPOE_Discovery) {
- sessionDiscoveryPacket(&packet);
- } else if (type != Eth_PPPOE_Session) {
- return;
- }
-#endif
-
- /* Sanity check */
- if (packet.code != CODE_SESS) {
- syslog(LOG_ERR, "Unexpected packet code %d", (int) packet.code);
- return;
- }
- if (packet.ver != 1) {
- syslog(LOG_ERR, "Unexpected packet version %d", (int) packet.ver);
- return;
- }
- if (packet.type != 1) {
- syslog(LOG_ERR, "Unexpected packet type %d", (int) packet.type);
- return;
- }
- if (memcmp(packet.ethHdr.h_source, conn->peerEth, ETH_ALEN)) {
- /* Not for us -- must be another session. This is not an error,
- so don't log anything. */
- return;
- }
-
- if (packet.session != conn->session) {
- /* Not for us -- must be another session. This is not an error,
- so don't log anything. */
- return;
- }
- plen = ntohs(packet.length);
- if (plen + HDR_SIZE > len) {
- syslog(LOG_ERR, "Bogus length field in session packet %d (%d)",
- (int) plen, (int) len);
- return;
- }
-
- /* Clamp MSS */
- if (clampMss) {
- clampMSS(&packet, "incoming", clampMss);
- }
-
- /* Compute FCS */
- fcs = pppFCS16(PPPINITFCS16, header, 2);
- fcs = pppFCS16(fcs, packet.payload, plen) ^ 0xffff;
- tail[0] = fcs & 0x00ff;
- tail[1] = (fcs >> 8) & 0x00ff;
-
- /* Build a buffer to send to PPP */
- *ptr++ = FRAME_FLAG;
- *ptr++ = FRAME_ADDR;
- *ptr++ = FRAME_ESC;
- *ptr++ = FRAME_CTRL ^ FRAME_ENC;
-
- for (i=0; i<plen; i++) {
- c = packet.payload[i];
- if (c == FRAME_FLAG || c == FRAME_ADDR || c == FRAME_ESC || c < 0x20) {
- *ptr++ = FRAME_ESC;
- *ptr++ = c ^ FRAME_ENC;
- } else {
- *ptr++ = c;
- }
- }
- for (i=0; i<2; i++) {
- c = tail[i];
- if (c == FRAME_FLAG || c == FRAME_ADDR || c == FRAME_ESC || c < 0x20) {
- *ptr++ = FRAME_ESC;
- *ptr++ = c ^ FRAME_ENC;
- } else {
- *ptr++ = c;
- }
- }
- *ptr++ = FRAME_FLAG;
-
- /* Ship it out */
- if (write(1, pppBuf, (ptr-pppBuf)) < 0) {
- fatalSys("asyncReadFromEth: write");
- }
-}
-
-/**********************************************************************
-*%FUNCTION: syncReadFromEth
-*%ARGUMENTS:
-* conn -- PPPoE connection info
-* sock -- Ethernet socket
-* clampMss -- if true, clamp MSS.
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Reads a packet from the Ethernet interface and sends it to sync PPP
-* device.
-***********************************************************************/
-void
-syncReadFromEth(PPPoEConnection *conn, int sock, int clampMss)
-{
- PPPoEPacket packet;
- int len;
- int plen;
- struct iovec vec[2];
- unsigned char dummy[2];
-#ifdef USE_BPF
- int type;
-#endif
-
- if (receivePacket(sock, &packet, &len) < 0) {
- return;
- }
-
- /* Check length */
- if (ntohs(packet.length) + HDR_SIZE > len) {
- syslog(LOG_ERR, "Bogus PPPoE length field (%u)",
- (unsigned int) ntohs(packet.length));
- return;
- }
- if (conn->debugFile) {
- dumpPacket(conn->debugFile, &packet, "RCVD");
- fprintf(conn->debugFile, "\n");
- fflush(conn->debugFile);
- }
-
-#ifdef USE_BPF
- /* Make sure this is a session packet before processing further */
- type = etherType(&packet);
- if (type == Eth_PPPOE_Discovery) {
- sessionDiscoveryPacket(&packet);
- } else if (type != Eth_PPPOE_Session) {
- return;
- }
-#endif
-
- /* Sanity check */
- if (packet.code != CODE_SESS) {
- syslog(LOG_ERR, "Unexpected packet code %d", (int) packet.code);
- return;
- }
- if (packet.ver != 1) {
- syslog(LOG_ERR, "Unexpected packet version %d", (int) packet.ver);
- return;
- }
- if (packet.type != 1) {
- syslog(LOG_ERR, "Unexpected packet type %d", (int) packet.type);
- return;
- }
- if (memcmp(packet.ethHdr.h_source, conn->peerEth, ETH_ALEN)) {
- /* Not for us -- must be another session. This is not an error,
- so don't log anything. */
- return;
- }
- if (packet.session != conn->session) {
- /* Not for us -- must be another session. This is not an error,
- so don't log anything. */
- return;
- }
- plen = ntohs(packet.length);
- if (plen + HDR_SIZE > len) {
- syslog(LOG_ERR, "Bogus length field in session packet %d (%d)",
- (int) plen, (int) len);
- return;
- }
-
- /* Clamp MSS */
- if (clampMss) {
- clampMSS(&packet, "incoming", clampMss);
- }
-
- /* Ship it out */
- vec[0].iov_base = (void *) dummy;
- dummy[0] = FRAME_ADDR;
- dummy[1] = FRAME_CTRL;
- vec[0].iov_len = 2;
- vec[1].iov_base = (void *) packet.payload;
- vec[1].iov_len = plen;
-
- if (writev(1, vec, 2) < 0) {
- fatalSys("syncReadFromEth: write");
- }
-}
-
diff --git a/mdk-stage1/rp-pppoe/src/pppoe.h b/mdk-stage1/rp-pppoe/src/pppoe.h
deleted file mode 100644
index da300c17d..000000000
--- a/mdk-stage1/rp-pppoe/src/pppoe.h
+++ /dev/null
@@ -1,331 +0,0 @@
-/***********************************************************************
-*
-* pppoe.h
-*
-* Declaration of various PPPoE constants
-*
-* Copyright (C) 2000 Roaring Penguin Software Inc.
-*
-* This program may be distributed according to the terms of the GNU
-* General Public License, version 2 or (at your option) any later version.
-*
-* $Id$
-*
-***********************************************************************/
-
-#ifdef __sun__
-#define __EXTENSIONS__
-#endif
-
-#include "config.h"
-
-#if defined(HAVE_NETPACKET_PACKET_H) || defined(HAVE_LINUX_IF_PACKET_H)
-#define _POSIX_SOURCE 1 /* For sigaction defines */
-#endif
-
-#include <stdio.h> /* For FILE */
-#include <sys/types.h> /* For pid_t */
-
-/* How do we access raw Ethernet devices? */
-#undef USE_LINUX_PACKET
-#undef USE_BPF
-
-#if defined(HAVE_NETPACKET_PACKET_H) || defined(HAVE_LINUX_IF_PACKET_H)
-#define USE_LINUX_PACKET 1
-#elif defined(HAVE_NET_BPF_H)
-#define USE_BPF 1
-#elif defined(HAVE_SYS_DLPI_H)
-#define USE_DLPI
-#endif
-
-/* Sanity check */
-#if !defined(USE_BPF) && !defined(USE_LINUX_PACKET) && !defined(USE_DLPI)
-#error Unknown method for accessing raw Ethernet frames
-#endif
-
-#ifdef HAVE_SYS_CDEFS_H
-#include <sys/cdefs.h>
-#endif
-
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-
-/* Ugly header files on some Linux boxes... */
-#if defined(HAVE_LINUX_IF_H)
-#include <linux/if.h>
-#elif defined(HAVE_NET_IF_H)
-#include <net/if.h>
-#endif
-
-#ifdef HAVE_NET_IF_TYPES_H
-#include <net/if_types.h>
-#endif
-
-#ifdef HAVE_NET_IF_DL_H
-#include <net/if_dl.h>
-#endif
-
-/* I'm not sure why this is needed... I do not have OpenBSD */
-#if defined(__OpenBSD__)
-#include <net/ppp_defs.h>
-#include <net/if_ppp.h>
-#endif
-
-#ifdef USE_BPF
-extern int bpfSize;
-struct PPPoEPacketStruct;
-void sessionDiscoveryPacket(struct PPPoEPacketStruct *packet);
-#define BPF_BUFFER_IS_EMPTY (bpfSize <= 0)
-#define BPF_BUFFER_HAS_DATA (bpfSize > 0)
-#define ethhdr ether_header
-#define h_dest ether_dhost
-#define h_source ether_shost
-#define h_proto ether_type
-#define ETH_DATA_LEN ETHERMTU
-#define ETH_ALEN ETHER_ADDR_LEN
-#else
-#undef USE_BPF
-#define BPF_BUFFER_IS_EMPTY 1
-#define BPF_BUFFER_HAS_DATA 0
-#endif
-
-#ifdef USE_DLPI
-#include <sys/ethernet.h>
-#define ethhdr ether_header
-#define ETH_DATA_LEN ETHERMTU
-#define ETH_ALEN ETHERADDRL
-#define h_dest ether_dhost.ether_addr_octet
-#define h_source ether_shost.ether_addr_octet
-#define h_proto ether_type
-
-/* cloned from dltest.h */
-#define MAXDLBUF 8192
-#define MAXDLADDR 1024
-#define MAXWAIT 15
-#define OFFADDR(s, n) (u_char*)((char*)(s) + (int)(n))
-#define CASERET(s) case s: return ("s")
-
-#endif
-
-/* Define various integer types -- assumes a char is 8 bits */
-#if SIZEOF_UNSIGNED_SHORT == 2
-typedef unsigned short UINT16_t;
-#elif SIZEOF_UNSIGNED_INT == 2
-typedef unsigned int UINT16_t;
-#else
-#error Could not find a 16-bit integer type
-#endif
-
-#if SIZEOF_UNSIGNED_SHORT == 4
-typedef unsigned short UINT32_t;
-#elif SIZEOF_UNSIGNED_INT == 4
-typedef unsigned int UINT32_t;
-#elif SIZEOF_UNSIGNED_LONG == 4
-typedef unsigned long UINT32_t;
-#else
-#error Could not find a 16-bit integer type
-#endif
-
-#ifdef HAVE_LINUX_IF_ETHER_H
-#include <linux/if_ether.h>
-#endif
-
-#include <netinet/in.h>
-
-#ifdef HAVE_NETINET_IF_ETHER_H
-#include <sys/types.h>
-
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifndef HAVE_SYS_DLPI_H
-#include <netinet/if_ether.h>
-#endif
-#endif
-
-
-
-/* Ethernet frame types according to RFC 2516 */
-#define ETH_PPPOE_DISCOVERY 0x8863
-#define ETH_PPPOE_SESSION 0x8864
-
-/* But some brain-dead peers disobey the RFC, so frame types are variables */
-extern UINT16_t Eth_PPPOE_Discovery;
-extern UINT16_t Eth_PPPOE_Session;
-
-/* PPPoE codes */
-#define CODE_PADI 0x09
-#define CODE_PADO 0x07
-#define CODE_PADR 0x19
-#define CODE_PADS 0x65
-#define CODE_PADT 0xA7
-#define CODE_SESS 0x00
-
-/* PPPoE Tags */
-#define TAG_END_OF_LIST 0x0000
-#define TAG_SERVICE_NAME 0x0101
-#define TAG_AC_NAME 0x0102
-#define TAG_HOST_UNIQ 0x0103
-#define TAG_AC_COOKIE 0x0104
-#define TAG_VENDOR_SPECIFIC 0x0105
-#define TAG_RELAY_SESSION_ID 0x0110
-#define TAG_SERVICE_NAME_ERROR 0x0201
-#define TAG_AC_SYSTEM_ERROR 0x0202
-#define TAG_GENERIC_ERROR 0x0203
-
-/* Discovery phase states */
-#define STATE_SENT_PADI 0
-#define STATE_RECEIVED_PADO 1
-#define STATE_SENT_PADR 2
-#define STATE_SESSION 3
-#define STATE_TERMINATED 4
-
-/* How many PADI/PADS attempts? */
-#define MAX_PADI_ATTEMPTS 3
-
-/* Initial timeout for PADO/PADS */
-#define PADI_TIMEOUT 5
-
-/* States for scanning PPP frames */
-#define STATE_WAITFOR_FRAME_ADDR 0
-#define STATE_DROP_PROTO 1
-#define STATE_BUILDING_PACKET 2
-
-/* Special PPP frame characters */
-#define FRAME_ESC 0x7D
-#define FRAME_FLAG 0x7E
-#define FRAME_ADDR 0xFF
-#define FRAME_CTRL 0x03
-#define FRAME_ENC 0x20
-
-#define IPV4ALEN 4
-#define SMALLBUF 256
-
-/* A PPPoE Packet, including Ethernet headers */
-typedef struct PPPoEPacketStruct {
- struct ethhdr ethHdr; /* Ethernet header */
-#ifdef PACK_BITFIELDS_REVERSED
- unsigned int type:4; /* PPPoE Type (must be 1) */
- unsigned int ver:4; /* PPPoE Version (must be 1) */
-#else
- unsigned int ver:4; /* PPPoE Version (must be 1) */
- unsigned int type:4; /* PPPoE Type (must be 1) */
-#endif
- unsigned int code:8; /* PPPoE code */
- unsigned int session:16; /* PPPoE session */
- unsigned int length:16; /* Payload length */
- unsigned char payload[ETH_DATA_LEN]; /* A bit of room to spare */
-} PPPoEPacket;
-
-/* Header size of a PPPoE packet */
-#define PPPOE_OVERHEAD 6 /* type, code, session, length */
-#define HDR_SIZE (sizeof(struct ethhdr) + PPPOE_OVERHEAD)
-#define MAX_PPPOE_PAYLOAD (ETH_DATA_LEN - PPPOE_OVERHEAD)
-#define MAX_PPPOE_MTU (MAX_PPPOE_PAYLOAD - 2)
-
-/* PPPoE Tag */
-
-typedef struct PPPoETagStruct {
- unsigned int type:16; /* tag type */
- unsigned int length:16; /* Length of payload */
- unsigned char payload[ETH_DATA_LEN]; /* A LOT of room to spare */
-} PPPoETag;
-/* Header size of a PPPoE tag */
-#define TAG_HDR_SIZE 4
-
-/* Chunk to read from stdin */
-#define READ_CHUNK 4096
-
-/* Function passed to parsePacket */
-typedef void ParseFunc(UINT16_t type,
- UINT16_t len,
- unsigned char *data,
- void *extra);
-
-/* Structures used by PPPoE server */
-struct ClientSession {
- pid_t pid; /* PID of child handling session */
- unsigned char ip[IPV4ALEN]; /* IP address of peer */
- UINT16_t sess; /* Session number */
- unsigned char eth[ETH_ALEN]; /* Peer's Ethernet address */
- int recvdPADT; /* Peer sent a PADT */
-};
-
-#define PPPINITFCS16 0xffff /* Initial FCS value */
-
-/* Keep track of the state of a connection -- collect everything in
- one spot */
-
-typedef struct PPPoEConnectionStruct {
- int discoveryState; /* Where we are in discovery */
- int discoverySocket; /* Raw socket for discovery frames */
- int sessionSocket; /* Raw socket for session frames */
- unsigned char myEth[ETH_ALEN]; /* My MAC address */
- unsigned char peerEth[ETH_ALEN]; /* Peer's MAC address */
- UINT16_t session; /* Session ID */
- char *ifName; /* Interface name */
- char *serviceName; /* Desired service name, if any */
- char *acName; /* Desired AC name, if any */
- int synchronous; /* Use synchronous PPP */
- int useHostUniq; /* Use Host-Uniq tag */
- int printACNames; /* Just print AC names */
- int skipDiscovery; /* Skip discovery */
- int noDiscoverySocket; /* Don't even open discovery socket */
- int killSession; /* Kill session and exit */
- FILE *debugFile; /* Debug file for dumping packets */
- int numPADOs; /* Number of PADO packets received */
- PPPoETag cookie; /* We have to send this if we get it */
- PPPoETag relayId; /* Ditto */
-} PPPoEConnection;
-
-/* Structure used to determine acceptable PADO or PADS packet */
-struct PacketCriteria {
- PPPoEConnection *conn;
- int acNameOK;
- int serviceNameOK;
-};
-
-/* Function Prototypes */
-UINT16_t etherType(PPPoEPacket *packet);
-int openInterface(char const *ifname, UINT16_t type, unsigned char *hwaddr);
-int sendPacket(PPPoEConnection *conn, int sock, PPPoEPacket *pkt, int size);
-int receivePacket(int sock, PPPoEPacket *pkt, int *size);
-void fatalSys(char const *str);
-void rp_fatal(char const *str);
-void printErr(char const *str);
-void sysErr(char const *str);
-void dumpPacket(FILE *fp, PPPoEPacket *packet, char const *dir);
-void dumpHex(FILE *fp, unsigned char const *buf, int len);
-int parsePacket(PPPoEPacket *packet, ParseFunc *func, void *extra);
-void parseLogErrs(UINT16_t typ, UINT16_t len, unsigned char *data, void *xtra);
-void syncReadFromPPP(PPPoEConnection *conn, PPPoEPacket *packet);
-void asyncReadFromPPP(PPPoEConnection *conn, PPPoEPacket *packet);
-void asyncReadFromEth(PPPoEConnection *conn, int sock, int clampMss);
-void syncReadFromEth(PPPoEConnection *conn, int sock, int clampMss);
-char *strDup(char const *str);
-void sendPADT(PPPoEConnection *conn, char const *msg);
-void sendSessionPacket(PPPoEConnection *conn,
- PPPoEPacket *packet, int len);
-void initPPP(void);
-void clampMSS(PPPoEPacket *packet, char const *dir, int clampMss);
-UINT16_t computeTCPChecksum(unsigned char *ipHdr, unsigned char *tcpHdr);
-UINT16_t pppFCS16(UINT16_t fcs, unsigned char *cp, int len);
-void discovery(PPPoEConnection *conn);
-unsigned char *findTag(PPPoEPacket *packet, UINT16_t tagType,
- PPPoETag *tag);
-
-#define SET_STRING(var, val) do { if (var) free(var); var = strDup(val); } while(0);
-
-#define CHECK_ROOM(cursor, start, len) \
-do {\
- if (((cursor)-(start))+(len) > MAX_PPPOE_PAYLOAD) { \
- syslog(LOG_ERR, "Would create too-long packet"); \
- return; \
- } \
-} while(0)
-
-/* True if Ethernet address is broadcast or multicast */
-#define NOT_UNICAST(e) ((e[0] & 0x01) != 0)
-#define BROADCAST(e) ((e[0] & e[1] & e[2] & e[3] & e[4] & e[5]) == 0xFF)
-#define NOT_BROADCAST(e) ((e[0] & e[1] & e[2] & e[3] & e[4] & e[5]) != 0xFF)
diff --git a/mdk-stage1/rp-pppoe/src/relay.c b/mdk-stage1/rp-pppoe/src/relay.c
deleted file mode 100644
index 9738cb8a8..000000000
--- a/mdk-stage1/rp-pppoe/src/relay.c
+++ /dev/null
@@ -1,1541 +0,0 @@
-/***********************************************************************
-*
-* relay.c
-*
-* Implementation of PPPoE relay
-*
-* Copyright (C) 2001 Roaring Penguin Software Inc.
-*
-* This program may be distributed according to the terms of the GNU
-* General Public License, version 2 or (at your option) any later version.
-*
-* $Id$
-*
-***********************************************************************/
-static char const RCSID[] =
-"$Id$";
-
-#define _GNU_SOURCE 1 /* For SA_RESTART */
-
-#include "relay.h"
-
-#include <signal.h>
-
-#ifdef HAVE_SYSLOG_H
-#include <syslog.h>
-#endif
-
-#ifdef HAVE_GETOPT_H
-#include <getopt.h>
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-
-#ifdef HAVE_SYS_UIO_H
-#include <sys/uio.h>
-#endif
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-
-/* Interfaces (max MAX_INTERFACES) */
-PPPoEInterface Interfaces[MAX_INTERFACES];
-int NumInterfaces;
-
-/* Relay info */
-int NumSessions;
-int MaxSessions;
-PPPoESession *AllSessions;
-PPPoESession *FreeSessions;
-PPPoESession *ActiveSessions;
-
-SessionHash *AllHashes;
-SessionHash *FreeHashes;
-SessionHash *Buckets[HASHTAB_SIZE];
-
-volatile unsigned int Epoch = 0;
-volatile unsigned int CleanCounter = 0;
-
-/* How often to clean up stale sessions? */
-#define MIN_CLEAN_PERIOD 30 /* Minimum period to run cleaner */
-#define TIMEOUT_DIVISOR 20 /* How often to run cleaner per timeout period */
-unsigned int CleanPeriod = MIN_CLEAN_PERIOD;
-
-/* How long a session can be idle before it is cleaned up? */
-unsigned int IdleTimeout = MIN_CLEAN_PERIOD * TIMEOUT_DIVISOR;
-
-/* Pipe for breaking select() to initiate periodic cleaning */
-int CleanPipe[2];
-
-/* Our relay: if_index followed by peer_mac */
-#define MY_RELAY_TAG_LEN (sizeof(int) + ETH_ALEN)
-
-/* Hack for daemonizing */
-#define CLOSEFD 64
-
-/**********************************************************************
-*%FUNCTION: keepDescriptor
-*%ARGUMENTS:
-* fd -- a file descriptor
-*%RETURNS:
-* 1 if descriptor should NOT be closed during daemonizing; 0 otherwise.
-***********************************************************************/
-static int
-keepDescriptor(int fd)
-{
- int i;
- if (fd == CleanPipe[0] || fd == CleanPipe[1]) return 1;
- for (i=0; i<NumInterfaces; i++) {
- if (fd == Interfaces[i].discoverySock ||
- fd == Interfaces[i].sessionSock) return 1;
- }
- return 0;
-}
-
-/**********************************************************************
-*%FUNCTION: addTag
-*%ARGUMENTS:
-* packet -- a PPPoE packet
-* tag -- tag to add
-*%RETURNS:
-* -1 if no room in packet; number of bytes added otherwise.
-*%DESCRIPTION:
-* Inserts a tag as the first tag in a PPPoE packet.
-***********************************************************************/
-int
-addTag(PPPoEPacket *packet, PPPoETag const *tag)
-{
- return insertBytes(packet, packet->payload, tag,
- ntohs(tag->length) + TAG_HDR_SIZE);
-}
-
-/**********************************************************************
-*%FUNCTION: insertBytes
-*%ARGUMENTS:
-* packet -- a PPPoE packet
-* loc -- location at which to insert bytes of data
-* bytes -- the data to insert
-* len -- length of data to insert
-*%RETURNS:
-* -1 if no room in packet; len otherwise.
-*%DESCRIPTION:
-* Inserts "len" bytes of data at location "loc" in "packet", moving all
-* other data up to make room.
-***********************************************************************/
-int
-insertBytes(PPPoEPacket *packet,
- unsigned char *loc,
- void const *bytes,
- int len)
-{
- int toMove;
- int plen = ntohs(packet->length);
- /* Sanity checks */
- if (loc < packet->payload ||
- loc > packet->payload + plen ||
- len + plen > MAX_PPPOE_PAYLOAD) {
- return -1;
- }
-
- toMove = (packet->payload + plen) - loc;
- memmove(loc+len, loc, toMove);
- memcpy(loc, bytes, len);
- packet->length = htons(plen + len);
- return len;
-}
-
-/**********************************************************************
-*%FUNCTION: removeBytes
-*%ARGUMENTS:
-* packet -- a PPPoE packet
-* loc -- location at which to remove bytes of data
-* len -- length of data to remove
-*%RETURNS:
-* -1 if there was a problem, len otherwise
-*%DESCRIPTION:
-* Removes "len" bytes of data from location "loc" in "packet", moving all
-* other data down to close the gap
-***********************************************************************/
-int
-removeBytes(PPPoEPacket *packet,
- unsigned char *loc,
- int len)
-{
- int toMove;
- int plen = ntohs(packet->length);
- /* Sanity checks */
- if (len < 0 || len > plen ||
- loc < packet->payload ||
- loc + len > packet->payload + plen) {
- return -1;
- }
-
- toMove = ((packet->payload + plen) - loc) - len;
- memmove(loc, loc+len, toMove);
- packet->length = htons(plen - len);
- return len;
-}
-
-/**********************************************************************
-*%FUNCTION: usage
-*%ARGUMENTS:
-* argv0 -- program name
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Prints usage information and exits.
-***********************************************************************/
-void
-usage(char const *argv0)
-{
- fprintf(stderr, "Usage: %s [options]\n", argv0);
- fprintf(stderr, "Options:\n");
- fprintf(stderr, " -S if_name -- Specify interface for PPPoE Server\n");
- fprintf(stderr, " -C if_name -- Specify interface for PPPoE Client\n");
- fprintf(stderr, " -B if_name -- Specify interface for both clients and server\n");
- fprintf(stderr, " -n nsess -- Maxmimum number of sessions to relay\n");
- fprintf(stderr, " -i timeout -- Idle timeout in seconds (0 = no timeout)\n");
- fprintf(stderr, " -F -- Do not fork into background\n");
- fprintf(stderr, " -h -- Print this help message\n");
-
- fprintf(stderr, "\nPPPoE Version %s, Copyright (C) 2001 Roaring Penguin Software Inc.\n", VERSION);
- fprintf(stderr, "PPPoE comes with ABSOLUTELY NO WARRANTY.\n");
- fprintf(stderr, "This is free software, and you are welcome to redistribute it under the terms\n");
- fprintf(stderr, "of the GNU General Public License, version 2 or any later version.\n");
- fprintf(stderr, "http://www.roaringpenguin.com\n");
- exit(EXIT_SUCCESS);
-}
-
-/**********************************************************************
-*%FUNCTION: main
-*%ARGUMENTS:
-* argc, argv -- usual suspects
-*%RETURNS:
-* EXIT_SUCCESS or EXIT_FAILURE
-*%DESCRIPTION:
-* Main program. Options:
-* -C ifname -- Use interface for PPPoE clients
-* -S ifname -- Use interface for PPPoE servers
-* -B ifname -- Use interface for both clients and servers
-* -n sessions -- Maximum of "n" sessions
-***********************************************************************/
-int
-main(int argc, char *argv[])
-{
- int opt;
- int nsess = DEFAULT_SESSIONS;
- struct sigaction sa;
- int beDaemon = 1;
- openlog("pppoe-relay", LOG_PID, LOG_DAEMON);
-
- while((opt = getopt(argc, argv, "hC:S:B:n:i:F")) != -1) {
- switch(opt) {
- case 'h':
- usage(argv[0]);
- break;
- case 'F':
- beDaemon = 0;
- break;
- case 'C':
- addInterface(optarg, 1, 0);
- break;
- case 'S':
- addInterface(optarg, 0, 1);
- break;
- case 'B':
- addInterface(optarg, 1, 1);
- break;
- case 'i':
- if (sscanf(optarg, "%u", &IdleTimeout) != 1) {
- fprintf(stderr, "Illegal argument to -i: should be -i timeout\n");
- exit(EXIT_FAILURE);
- }
- CleanPeriod = IdleTimeout / TIMEOUT_DIVISOR;
- if (CleanPeriod < MIN_CLEAN_PERIOD) CleanPeriod = MIN_CLEAN_PERIOD;
- break;
- case 'n':
- if (sscanf(optarg, "%d", &nsess) != 1) {
- fprintf(stderr, "Illegal argument to -n: should be -n #sessions\n");
- exit(EXIT_FAILURE);
- }
- if (nsess < 1 || nsess > 65534) {
- fprintf(stderr, "Illegal argument to -n: must range from 1 to 65534\n");
- exit(EXIT_FAILURE);
- }
- break;
- default:
- usage(argv[0]);
- }
- }
-
-#ifdef USE_LINUX_PACKET
-#ifndef HAVE_STRUCT_SOCKADDR_LL
- fprintf(stderr, "The PPPoE relay does not work on Linux 2.0 kernels.\n");
- exit(EXIT_FAILURE);
-#endif
-#endif
-
- /* Check that at least two interfaces were defined */
- if (NumInterfaces < 2) {
- fprintf(stderr, "%s: Must define at least two interfaces\n",
- argv[0]);
- exit(EXIT_FAILURE);
- }
-
- /* Make a pipe for the cleaner */
- if (pipe(CleanPipe) < 0) {
- fatalSys("pipe");
- }
-
- /* Set up alarm handler */
- sa.sa_handler = alarmHandler;
- sigemptyset(&sa.sa_mask);
- sa.sa_flags = SA_RESTART;
- if (sigaction(SIGALRM, &sa, NULL) < 0) {
- fatalSys("sigaction");
- }
-
- /* Allocate memory for sessions, etc. */
- initRelay(nsess);
-
- /* Daemonize -- UNIX Network Programming, Vol. 1, Stevens */
- if (beDaemon) {
- int i;
- i = fork();
- if (i < 0) {
- fatalSys("fork");
- } else if (i != 0) {
- /* parent */
- exit(0);
- }
- setsid();
- signal(SIGHUP, SIG_IGN);
- i = fork();
- if (i < 0) {
- fatalSys("fork");
- } else if (i != 0) {
- exit(0);
- }
-
- chdir("/");
- closelog();
- for (i=0; i<CLOSEFD; i++) {
- if (!keepDescriptor(i)) {
- close(i);
- }
- }
- /* We nuked our syslog descriptor... */
- openlog("pppoe-relay", LOG_PID, LOG_DAEMON);
- }
-
- /* Kick off SIGALRM if there is an idle timeout */
- if (IdleTimeout) alarm(1);
-
- /* Enter the relay loop */
- relayLoop();
-
- /* Shouldn't ever get here... */
- return EXIT_FAILURE;
-}
-
-/**********************************************************************
-*%FUNCTION: addInterface
-*%ARGUMENTS:
-* ifname -- interface name
-* clientOK -- true if this interface should relay PADI, PADR packets.
-* acOK -- true if this interface should relay PADO, PADS packets.
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Opens an interface; sets up discovery and session sockets.
-***********************************************************************/
-void
-addInterface(char const *ifname,
- int clientOK,
- int acOK)
-{
- PPPoEInterface *i;
- if (NumInterfaces >= MAX_INTERFACES) {
- fprintf(stderr, "Too many interfaces (%d max)\n",
- MAX_INTERFACES);
- exit(EXIT_FAILURE);
- }
- i = &Interfaces[NumInterfaces++];
- strncpy(i->name, ifname, IFNAMSIZ);
- i->name[IFNAMSIZ] = 0;
-
- i->discoverySock = openInterface(ifname, Eth_PPPOE_Discovery, i->mac);
- i->sessionSock = openInterface(ifname, Eth_PPPOE_Session, NULL);
- i->clientOK = clientOK;
- i->acOK = acOK;
-}
-
-/**********************************************************************
-*%FUNCTION: initRelay
-*%ARGUMENTS:
-* nsess -- maximum allowable number of sessions
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Initializes relay hash table and session tables.
-***********************************************************************/
-void
-initRelay(int nsess)
-{
- int i;
- NumSessions = 0;
- MaxSessions = nsess;
-
- AllSessions = calloc(MaxSessions, sizeof(PPPoESession));
- if (!AllSessions) {
- rp_fatal("Unable to allocate memory for PPPoE session table");
- }
- AllHashes = calloc(MaxSessions*2, sizeof(SessionHash));
- if (!AllHashes) {
- rp_fatal("Unable to allocate memory for PPPoE hash table");
- }
-
- /* Initialize sessions in a linked list */
- AllSessions[0].prev = NULL;
- if (MaxSessions > 1) {
- AllSessions[0].next = &AllSessions[1];
- } else {
- AllSessions[0].next = NULL;
- }
- for (i=1; i<MaxSessions-1; i++) {
- AllSessions[i].prev = &AllSessions[i-1];
- AllSessions[i].next = &AllSessions[i+1];
- }
- if (MaxSessions > 1) {
- AllSessions[MaxSessions-1].prev = &AllSessions[MaxSessions-2];
- AllSessions[MaxSessions-1].next = NULL;
- }
-
- FreeSessions = AllSessions;
- ActiveSessions = NULL;
-
- /* Initialize session numbers which we hand out */
- for (i=0; i<MaxSessions; i++) {
- AllSessions[i].sesNum = htons((UINT16_t) i+1);
- }
-
- /* Initialize hashes in a linked list */
- AllHashes[0].prev = NULL;
- AllHashes[0].next = &AllHashes[1];
- for (i=1; i<2*MaxSessions-1; i++) {
- AllHashes[i].prev = &AllHashes[i-1];
- AllHashes[i].next = &AllHashes[i+1];
- }
- AllHashes[2*MaxSessions-1].prev = &AllHashes[2*MaxSessions-2];
- AllHashes[2*MaxSessions-1].next = NULL;
-
- FreeHashes = AllHashes;
-}
-
-/**********************************************************************
-*%FUNCTION: createSession
-*%ARGUMENTS:
-* ac -- Ethernet interface on access-concentrator side
-* cli -- Ethernet interface on client side
-* acMac -- Access concentrator's MAC address
-* cliMac -- Client's MAC address
-* acSess -- Access concentrator's session ID.
-*%RETURNS:
-* PPPoESession structure; NULL if one could not be allocated
-*%DESCRIPTION:
-* Initializes relay hash table and session tables.
-***********************************************************************/
-PPPoESession *
-createSession(PPPoEInterface const *ac,
- PPPoEInterface const *cli,
- unsigned char const *acMac,
- unsigned char const *cliMac,
- UINT16_t acSes)
-{
- PPPoESession *sess;
- SessionHash *acHash, *cliHash;
-
- if (NumSessions >= MaxSessions) {
- printErr("Maximum number of sessions reached -- cannot create new session");
- return NULL;
- }
-
- /* Grab a free session */
- sess = FreeSessions;
- FreeSessions = sess->next;
- NumSessions++;
-
- /* Link it to the active list */
- sess->next = ActiveSessions;
- if (sess->next) {
- sess->next->prev = sess;
- }
- ActiveSessions = sess;
- sess->prev = NULL;
-
- sess->epoch = Epoch;
-
- /* Get two hash entries */
- acHash = FreeHashes;
- cliHash = acHash->next;
- FreeHashes = cliHash->next;
-
- acHash->peer = cliHash;
- cliHash->peer = acHash;
-
- sess->acHash = acHash;
- sess->clientHash = cliHash;
-
- acHash->interface = ac;
- cliHash->interface = cli;
-
- memcpy(acHash->peerMac, acMac, ETH_ALEN);
- acHash->sesNum = acSes;
- acHash->ses = sess;
-
- memcpy(cliHash->peerMac, cliMac, ETH_ALEN);
- cliHash->sesNum = sess->sesNum;
- cliHash->ses = sess;
-
- addHash(acHash);
- addHash(cliHash);
-
- /* Log */
- syslog(LOG_INFO,
- "Opened session: server=%02x:%02x:%02x:%02x:%02x:%02x(%s:%d), client=%02x:%02x:%02x:%02x:%02x:%02x(%s:%d)",
- acHash->peerMac[0], acHash->peerMac[1],
- acHash->peerMac[2], acHash->peerMac[3],
- acHash->peerMac[4], acHash->peerMac[5],
- acHash->interface->name,
- ntohs(acHash->sesNum),
- cliHash->peerMac[0], cliHash->peerMac[1],
- cliHash->peerMac[2], cliHash->peerMac[3],
- cliHash->peerMac[4], cliHash->peerMac[5],
- cliHash->interface->name,
- ntohs(cliHash->sesNum));
-
- return sess;
-}
-
-/**********************************************************************
-*%FUNCTION: freeSession
-*%ARGUMENTS:
-* ses -- session to free
-* msg -- extra message to log on syslog.
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Frees data used by a PPPoE session -- adds hashes and session back
-* to the free list
-***********************************************************************/
-void
-freeSession(PPPoESession *ses, char const *msg)
-{
- syslog(LOG_INFO,
- "Closed session: server=%02x:%02x:%02x:%02x:%02x:%02x(%s:%d), client=%02x:%02x:%02x:%02x:%02x:%02x(%s:%d): %s",
- ses->acHash->peerMac[0], ses->acHash->peerMac[1],
- ses->acHash->peerMac[2], ses->acHash->peerMac[3],
- ses->acHash->peerMac[4], ses->acHash->peerMac[5],
- ses->acHash->interface->name,
- ntohs(ses->acHash->sesNum),
- ses->clientHash->peerMac[0], ses->clientHash->peerMac[1],
- ses->clientHash->peerMac[2], ses->clientHash->peerMac[3],
- ses->clientHash->peerMac[4], ses->clientHash->peerMac[5],
- ses->clientHash->interface->name,
- ntohs(ses->clientHash->sesNum), msg);
-
- /* Unlink from active sessions */
- if (ses->prev) {
- ses->prev->next = ses->next;
- } else {
- ActiveSessions = ses->next;
- }
- if (ses->next) {
- ses->next->prev = ses->prev;
- }
-
- /* Link onto free list -- this is a singly-linked list, so
- we do not care about prev */
- ses->next = FreeSessions;
- FreeSessions = ses;
-
- unhash(ses->acHash);
- unhash(ses->clientHash);
- NumSessions--;
-}
-
-/**********************************************************************
-*%FUNCTION: unhash
-*%ARGUMENTS:
-* sh -- session hash to free
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Frees a session hash -- takes it out of hash table and puts it on
-* free list.
-***********************************************************************/
-void
-unhash(SessionHash *sh)
-{
- unsigned int b = hash(sh->peerMac, sh->sesNum) % HASHTAB_SIZE;
- if (sh->prev) {
- sh->prev->next = sh->next;
- } else {
- Buckets[b] = sh->next;
- }
-
- if (sh->next) {
- sh->next->prev = sh->prev;
- }
-
- /* Add to free list (singly-linked) */
- sh->next = FreeHashes;
- FreeHashes = sh;
-}
-
-/**********************************************************************
-*%FUNCTION: addHash
-*%ARGUMENTS:
-* sh -- a session hash
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Adds a SessionHash to the hash table
-***********************************************************************/
-void
-addHash(SessionHash *sh)
-{
- unsigned int b = hash(sh->peerMac, sh->sesNum) % HASHTAB_SIZE;
- sh->next = Buckets[b];
- sh->prev = NULL;
- if (sh->next) {
- sh->next->prev = sh;
- }
- Buckets[b] = sh;
-}
-
-/**********************************************************************
-*%FUNCTION: hash
-*%ARGUMENTS:
-* mac -- an Ethernet address
-* sesNum -- a session number
-*%RETURNS:
-* A hash value combining Ethernet address with session number.
-* Currently very simplistic; we may need to experiment with different
-* hash values.
-***********************************************************************/
-unsigned int
-hash(unsigned char const *mac, UINT16_t sesNum)
-{
- unsigned int ans1 =
- ((unsigned int) mac[0]) |
- (((unsigned int) mac[1]) << 8) |
- (((unsigned int) mac[2]) << 16) |
- (((unsigned int) mac[3]) << 24);
- unsigned int ans2 =
- ((unsigned int) sesNum) |
- (((unsigned int) mac[4]) << 16) |
- (((unsigned int) mac[5]) << 24);
- return ans1 ^ ans2;
-}
-
-/**********************************************************************
-*%FUNCTION: findSession
-*%ARGUMENTS:
-* mac -- an Ethernet address
-* sesNum -- a session number
-*%RETURNS:
-* The session hash for peer address "mac", session number sesNum
-***********************************************************************/
-SessionHash *
-findSession(unsigned char const *mac, UINT16_t sesNum)
-{
- unsigned int b = hash(mac, sesNum) % HASHTAB_SIZE;
- SessionHash *sh = Buckets[b];
- while(sh) {
- if (!memcmp(mac, sh->peerMac, ETH_ALEN) && sesNum == sh->sesNum) {
- return sh;
- }
- sh = sh->next;
- }
- return NULL;
-}
-
-/**********************************************************************
-*%FUNCTION: fatalSys
-*%ARGUMENTS:
-* str -- error message
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Prints a message plus the errno value to stderr and syslog and exits.
-***********************************************************************/
-void
-fatalSys(char const *str)
-{
- char buf[1024];
- sprintf(buf, "%.256s: %.256s", str, strerror(errno));
- printErr(buf);
- exit(EXIT_FAILURE);
-}
-
-/**********************************************************************
-*%FUNCTION: sysErr
-*%ARGUMENTS:
-* str -- error message
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Prints a message plus the errno value to syslog.
-***********************************************************************/
-void
-sysErr(char const *str)
-{
- char buf[1024];
- sprintf(buf, "%.256s: %.256s", str, strerror(errno));
- printErr(buf);
-}
-
-/**********************************************************************
-*%FUNCTION: rp_fatal
-*%ARGUMENTS:
-* str -- error message
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Prints a message to stderr and syslog and exits.
-***********************************************************************/
-void
-rp_fatal(char const *str)
-{
- printErr(str);
- exit(EXIT_FAILURE);
-}
-
-/**********************************************************************
-*%FUNCTION: relayLoop
-*%ARGUMENTS:
-* None
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Runs the relay loop. This function never returns
-***********************************************************************/
-void
-relayLoop()
-{
- fd_set readable, readableCopy;
- int maxFD;
- int i, r;
- int sock;
-
- /* Build the select set */
- FD_ZERO(&readable);
- maxFD = 0;
- for (i=0; i<NumInterfaces; i++) {
- sock = Interfaces[i].discoverySock;
- if (sock > maxFD) maxFD = sock;
- FD_SET(sock, &readable);
- sock = Interfaces[i].sessionSock;
- if (sock > maxFD) maxFD = sock;
- FD_SET(sock, &readable);
- if (CleanPipe[0] > maxFD) maxFD = CleanPipe[0];
- FD_SET(CleanPipe[0], &readable);
- }
- maxFD++;
- for(;;) {
- readableCopy = readable;
- for(;;) {
- r = select(maxFD, &readableCopy, NULL, NULL, NULL);
- if (r >= 0 || errno != EINTR) break;
- }
- if (r < 0) {
- sysErr("select (relayLoop)");
- continue;
- }
-
- /* Handle session packets first */
- for (i=0; i<NumInterfaces; i++) {
- if (FD_ISSET(Interfaces[i].sessionSock, &readableCopy)) {
- relayGotSessionPacket(&Interfaces[i]);
- }
- }
-
- /* Now handle discovery packets */
- for (i=0; i<NumInterfaces; i++) {
- if (FD_ISSET(Interfaces[i].discoverySock, &readableCopy)) {
- relayGotDiscoveryPacket(&Interfaces[i]);
- }
- }
-
- /* Handle the session-cleaning process */
- if (FD_ISSET(CleanPipe[0], &readableCopy)) {
- char dummy;
- CleanCounter = 0;
- read(CleanPipe[0], &dummy, 1);
- if (IdleTimeout) cleanSessions();
- }
- }
-}
-
-/**********************************************************************
-*%FUNCTION: relayGotDiscoveryPacket
-*%ARGUMENTS:
-* iface -- interface on which packet is waiting
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Receives and processes a discovery packet.
-***********************************************************************/
-void
-relayGotDiscoveryPacket(PPPoEInterface const *iface)
-{
- PPPoEPacket packet;
- int size;
-
- if (receivePacket(iface->discoverySock, &packet, &size) < 0) {
- return;
- }
- /* Ignore unknown code/version */
- if (packet.ver != 1 || packet.type != 1) {
- return;
- }
-
- /* Validate length */
- if (ntohs(packet.length) + HDR_SIZE > size) {
- syslog(LOG_ERR, "Bogus PPPoE length field (%u)",
- (unsigned int) ntohs(packet.length));
- return;
- }
-
- /* Drop Ethernet frame padding */
- if (size > ntohs(packet.length) + HDR_SIZE) {
- size = ntohs(packet.length) + HDR_SIZE;
- }
-
- switch(packet.code) {
- case CODE_PADT:
- relayHandlePADT(iface, &packet, size);
- break;
- case CODE_PADI:
- relayHandlePADI(iface, &packet, size);
- break;
- case CODE_PADO:
- relayHandlePADO(iface, &packet, size);
- break;
- case CODE_PADR:
- relayHandlePADR(iface, &packet, size);
- break;
- case CODE_PADS:
- relayHandlePADS(iface, &packet, size);
- break;
- default:
- syslog(LOG_ERR, "Discovery packet on %s with unknown code %d",
- iface->name, (int) packet.code);
- }
-}
-
-/**********************************************************************
-*%FUNCTION: relayGotSessionPacket
-*%ARGUMENTS:
-* iface -- interface on which packet is waiting
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Receives and processes a session packet.
-***********************************************************************/
-void
-relayGotSessionPacket(PPPoEInterface const *iface)
-{
- PPPoEPacket packet;
- int size;
- SessionHash *sh;
- PPPoESession *ses;
-
- if (receivePacket(iface->sessionSock, &packet, &size) < 0) {
- return;
- }
-
- /* Ignore unknown code/version */
- if (packet.ver != 1 || packet.type != 1) {
- return;
- }
-
- /* Must be a session packet */
- if (packet.code != CODE_SESS) {
- syslog(LOG_ERR, "Session packet with code %d", (int) packet.code);
- return;
- }
-
- /* Ignore session packets whose destination address isn't ours */
- if (memcmp(packet.ethHdr.h_dest, iface->mac, ETH_ALEN)) {
- return;
- }
-
- /* Validate length */
- if (ntohs(packet.length) + HDR_SIZE > size) {
- syslog(LOG_ERR, "Bogus PPPoE length field (%u)",
- (unsigned int) ntohs(packet.length));
- return;
- }
-
- /* Drop Ethernet frame padding */
- if (size > ntohs(packet.length) + HDR_SIZE) {
- size = ntohs(packet.length) + HDR_SIZE;
- }
-
- /* We're in business! Find the hash */
- sh = findSession(packet.ethHdr.h_source, packet.session);
- if (!sh) {
- /* Don't log this. Someone could be running the client and the
- relay on the same box. */
- return;
- }
-
- /* Relay it */
- ses = sh->ses;
- ses->epoch = Epoch;
- sh = sh->peer;
- packet.session = sh->sesNum;
- memcpy(packet.ethHdr.h_source, sh->interface->mac, ETH_ALEN);
- memcpy(packet.ethHdr.h_dest, sh->peerMac, ETH_ALEN);
-#if 0
- fprintf(stderr, "Relaying %02x:%02x:%02x:%02x:%02x:%02x(%s:%d) to %02x:%02x:%02x:%02x:%02x:%02x(%s:%d)\n",
- sh->peer->peerMac[0], sh->peer->peerMac[1], sh->peer->peerMac[2],
- sh->peer->peerMac[3], sh->peer->peerMac[4], sh->peer->peerMac[5],
- sh->peer->interface->name, ntohs(sh->peer->sesNum),
- sh->peerMac[0], sh->peerMac[1], sh->peerMac[2],
- sh->peerMac[3], sh->peerMac[4], sh->peerMac[5],
- sh->interface->name, ntohs(sh->sesNum));
-#endif
- sendPacket(NULL, sh->interface->sessionSock, &packet, size);
-}
-
-/**********************************************************************
-*%FUNCTION: relayHandlePADT
-*%ARGUMENTS:
-* iface -- interface on which packet was received
-* packet -- the PADT packet
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Receives and processes a PADT packet.
-***********************************************************************/
-void
-relayHandlePADT(PPPoEInterface const *iface,
- PPPoEPacket *packet,
- int size)
-{
- SessionHash *sh;
- PPPoESession *ses;
-
- sh = findSession(packet->ethHdr.h_source, packet->session);
- if (!sh) {
- return;
- }
- /* Relay the PADT to the peer */
- sh = sh->peer;
- ses = sh->ses;
- packet->session = sh->sesNum;
- memcpy(packet->ethHdr.h_source, sh->interface->mac, ETH_ALEN);
- memcpy(packet->ethHdr.h_dest, sh->peerMac, ETH_ALEN);
- sendPacket(NULL, sh->interface->sessionSock, packet, size);
-
- /* Destroy the session */
- freeSession(ses, "Received PADT");
-}
-
-/**********************************************************************
-*%FUNCTION: relayHandlePADI
-*%ARGUMENTS:
-* iface -- interface on which packet was received
-* packet -- the PADI packet
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Receives and processes a PADI packet.
-***********************************************************************/
-void
-relayHandlePADI(PPPoEInterface const *iface,
- PPPoEPacket *packet,
- int size)
-{
- PPPoETag tag;
- unsigned char *loc;
- int i, r;
-
- int ifIndex;
-
- /* Can a client legally be behind this interface? */
- if (!iface->clientOK) {
- syslog(LOG_ERR,
- "PADI packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s not permitted",
- packet->ethHdr.h_source[0],
- packet->ethHdr.h_source[1],
- packet->ethHdr.h_source[2],
- packet->ethHdr.h_source[3],
- packet->ethHdr.h_source[4],
- packet->ethHdr.h_source[5],
- iface->name);
- return;
- }
-
- /* Source address must be unicast */
- if (NOT_UNICAST(packet->ethHdr.h_source)) {
- syslog(LOG_ERR,
- "PADI packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s not from a unicast address",
- packet->ethHdr.h_source[0],
- packet->ethHdr.h_source[1],
- packet->ethHdr.h_source[2],
- packet->ethHdr.h_source[3],
- packet->ethHdr.h_source[4],
- packet->ethHdr.h_source[5],
- iface->name);
- return;
- }
-
- /* Destination address must be broadcast */
- if (NOT_BROADCAST(packet->ethHdr.h_dest)) {
- syslog(LOG_ERR,
- "PADI packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s not to a broadcast address",
- packet->ethHdr.h_source[0],
- packet->ethHdr.h_source[1],
- packet->ethHdr.h_source[2],
- packet->ethHdr.h_source[3],
- packet->ethHdr.h_source[4],
- packet->ethHdr.h_source[5],
- iface->name);
- return;
- }
-
- /* Get array index of interface */
- ifIndex = iface - Interfaces;
-
- loc = findTag(packet, TAG_RELAY_SESSION_ID, &tag);
- if (!loc) {
- tag.type = htons(TAG_RELAY_SESSION_ID);
- tag.length = htons(MY_RELAY_TAG_LEN);
- memcpy(tag.payload, &ifIndex, sizeof(ifIndex));
- memcpy(tag.payload+sizeof(ifIndex), packet->ethHdr.h_source, ETH_ALEN);
- /* Add a relay tag if there's room */
- r = addTag(packet, &tag);
- if (r < 0) return;
- size += r;
- } else {
- /* We do not re-use relay-id tags. Drop the frame. The RFC says the
- relay agent SHOULD return a Generic-Error tag, but this does not
- make sense for PADI packets. */
- return;
- }
-
- /* Broadcast the PADI on all AC-capable interfaces except the interface
- on which it came */
- for (i=0; i < NumInterfaces; i++) {
- if (iface == &Interfaces[i]) continue;
- if (!Interfaces[i].acOK) continue;
- memcpy(packet->ethHdr.h_source, Interfaces[i].mac, ETH_ALEN);
- sendPacket(NULL, Interfaces[i].discoverySock, packet, size);
- }
-
-}
-
-/**********************************************************************
-*%FUNCTION: relayHandlePADO
-*%ARGUMENTS:
-* iface -- interface on which packet was received
-* packet -- the PADO packet
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Receives and processes a PADO packet.
-***********************************************************************/
-void
-relayHandlePADO(PPPoEInterface const *iface,
- PPPoEPacket *packet,
- int size)
-{
- PPPoETag tag;
- unsigned char *loc;
- int ifIndex;
- int acIndex;
-
- /* Can a server legally be behind this interface? */
- if (!iface->acOK) {
- syslog(LOG_ERR,
- "PADO packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s not permitted",
- packet->ethHdr.h_source[0],
- packet->ethHdr.h_source[1],
- packet->ethHdr.h_source[2],
- packet->ethHdr.h_source[3],
- packet->ethHdr.h_source[4],
- packet->ethHdr.h_source[5],
- iface->name);
- return;
- }
-
- acIndex = iface - Interfaces;
-
- /* Source address must be unicast */
- if (NOT_UNICAST(packet->ethHdr.h_source)) {
- syslog(LOG_ERR,
- "PADO packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s not from a unicast address",
- packet->ethHdr.h_source[0],
- packet->ethHdr.h_source[1],
- packet->ethHdr.h_source[2],
- packet->ethHdr.h_source[3],
- packet->ethHdr.h_source[4],
- packet->ethHdr.h_source[5],
- iface->name);
- return;
- }
-
- /* Destination address must be interface's MAC address */
- if (memcmp(packet->ethHdr.h_dest, iface->mac, ETH_ALEN)) {
- return;
- }
-
- /* Find relay tag */
- loc = findTag(packet, TAG_RELAY_SESSION_ID, &tag);
- if (!loc) {
- syslog(LOG_ERR,
- "PADO packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s does not have Relay-Session-Id tag",
- packet->ethHdr.h_source[0],
- packet->ethHdr.h_source[1],
- packet->ethHdr.h_source[2],
- packet->ethHdr.h_source[3],
- packet->ethHdr.h_source[4],
- packet->ethHdr.h_source[5],
- iface->name);
- return;
- }
-
- /* If it's the wrong length, ignore it */
- if (ntohs(tag.length) != MY_RELAY_TAG_LEN) {
- syslog(LOG_ERR,
- "PADO packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s does not have correct length Relay-Session-Id tag",
- packet->ethHdr.h_source[0],
- packet->ethHdr.h_source[1],
- packet->ethHdr.h_source[2],
- packet->ethHdr.h_source[3],
- packet->ethHdr.h_source[4],
- packet->ethHdr.h_source[5],
- iface->name);
- return;
- }
-
- /* Extract interface index */
- memcpy(&ifIndex, tag.payload, sizeof(ifIndex));
-
- if (ifIndex < 0 || ifIndex >= NumInterfaces ||
- !Interfaces[ifIndex].clientOK ||
- iface == &Interfaces[ifIndex]) {
- syslog(LOG_ERR,
- "PADO packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s has invalid interface in Relay-Session-Id tag",
- packet->ethHdr.h_source[0],
- packet->ethHdr.h_source[1],
- packet->ethHdr.h_source[2],
- packet->ethHdr.h_source[3],
- packet->ethHdr.h_source[4],
- packet->ethHdr.h_source[5],
- iface->name);
- return;
- }
-
- /* Replace Relay-ID tag with opposite-direction tag */
- memcpy(loc+TAG_HDR_SIZE, &acIndex, sizeof(acIndex));
- memcpy(loc+TAG_HDR_SIZE+sizeof(ifIndex), packet->ethHdr.h_source, ETH_ALEN);
-
- /* Set destination address to MAC address in relay ID */
- memcpy(packet->ethHdr.h_dest, tag.payload + sizeof(ifIndex), ETH_ALEN);
-
- /* Set source address to MAC address of interface */
- memcpy(packet->ethHdr.h_source, Interfaces[ifIndex].mac, ETH_ALEN);
-
- /* Send the PADO to the proper client */
- sendPacket(NULL, Interfaces[ifIndex].discoverySock, packet, size);
-}
-
-/**********************************************************************
-*%FUNCTION: relayHandlePADR
-*%ARGUMENTS:
-* iface -- interface on which packet was received
-* packet -- the PADR packet
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Receives and processes a PADR packet.
-***********************************************************************/
-void
-relayHandlePADR(PPPoEInterface const *iface,
- PPPoEPacket *packet,
- int size)
-{
- PPPoETag tag;
- unsigned char *loc;
- int ifIndex;
- int cliIndex;
-
- /* Can a client legally be behind this interface? */
- if (!iface->clientOK) {
- syslog(LOG_ERR,
- "PADR packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s not permitted",
- packet->ethHdr.h_source[0],
- packet->ethHdr.h_source[1],
- packet->ethHdr.h_source[2],
- packet->ethHdr.h_source[3],
- packet->ethHdr.h_source[4],
- packet->ethHdr.h_source[5],
- iface->name);
- return;
- }
-
- cliIndex = iface - Interfaces;
-
- /* Source address must be unicast */
- if (NOT_UNICAST(packet->ethHdr.h_source)) {
- syslog(LOG_ERR,
- "PADR packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s not from a unicast address",
- packet->ethHdr.h_source[0],
- packet->ethHdr.h_source[1],
- packet->ethHdr.h_source[2],
- packet->ethHdr.h_source[3],
- packet->ethHdr.h_source[4],
- packet->ethHdr.h_source[5],
- iface->name);
- return;
- }
-
- /* Destination address must be interface's MAC address */
- if (memcmp(packet->ethHdr.h_dest, iface->mac, ETH_ALEN)) {
- return;
- }
-
- /* Find relay tag */
- loc = findTag(packet, TAG_RELAY_SESSION_ID, &tag);
- if (!loc) {
- syslog(LOG_ERR,
- "PADR packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s does not have Relay-Session-Id tag",
- packet->ethHdr.h_source[0],
- packet->ethHdr.h_source[1],
- packet->ethHdr.h_source[2],
- packet->ethHdr.h_source[3],
- packet->ethHdr.h_source[4],
- packet->ethHdr.h_source[5],
- iface->name);
- return;
- }
-
- /* If it's the wrong length, ignore it */
- if (ntohs(tag.length) != MY_RELAY_TAG_LEN) {
- syslog(LOG_ERR,
- "PADR packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s does not have correct length Relay-Session-Id tag",
- packet->ethHdr.h_source[0],
- packet->ethHdr.h_source[1],
- packet->ethHdr.h_source[2],
- packet->ethHdr.h_source[3],
- packet->ethHdr.h_source[4],
- packet->ethHdr.h_source[5],
- iface->name);
- return;
- }
-
- /* Extract interface index */
- memcpy(&ifIndex, tag.payload, sizeof(ifIndex));
-
- if (ifIndex < 0 || ifIndex >= NumInterfaces ||
- !Interfaces[ifIndex].acOK ||
- iface == &Interfaces[ifIndex]) {
- syslog(LOG_ERR,
- "PADR packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s has invalid interface in Relay-Session-Id tag",
- packet->ethHdr.h_source[0],
- packet->ethHdr.h_source[1],
- packet->ethHdr.h_source[2],
- packet->ethHdr.h_source[3],
- packet->ethHdr.h_source[4],
- packet->ethHdr.h_source[5],
- iface->name);
- return;
- }
-
- /* Replace Relay-ID tag with opposite-direction tag */
- memcpy(loc+TAG_HDR_SIZE, &cliIndex, sizeof(cliIndex));
- memcpy(loc+TAG_HDR_SIZE+sizeof(ifIndex), packet->ethHdr.h_source, ETH_ALEN);
-
- /* Set destination address to MAC address in relay ID */
- memcpy(packet->ethHdr.h_dest, tag.payload + sizeof(ifIndex), ETH_ALEN);
-
- /* Set source address to MAC address of interface */
- memcpy(packet->ethHdr.h_source, Interfaces[ifIndex].mac, ETH_ALEN);
-
- /* Send the PADR to the proper access concentrator */
- sendPacket(NULL, Interfaces[ifIndex].discoverySock, packet, size);
-}
-
-/**********************************************************************
-*%FUNCTION: relayHandlePADS
-*%ARGUMENTS:
-* iface -- interface on which packet was received
-* packet -- the PADS packet
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Receives and processes a PADS packet.
-***********************************************************************/
-void
-relayHandlePADS(PPPoEInterface const *iface,
- PPPoEPacket *packet,
- int size)
-{
- PPPoETag tag;
- unsigned char *loc;
- int ifIndex;
- int acIndex;
- PPPoESession *ses = NULL;
- SessionHash *sh;
-
- /* Can a server legally be behind this interface? */
- if (!iface->acOK) {
- syslog(LOG_ERR,
- "PADS packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s not permitted",
- packet->ethHdr.h_source[0],
- packet->ethHdr.h_source[1],
- packet->ethHdr.h_source[2],
- packet->ethHdr.h_source[3],
- packet->ethHdr.h_source[4],
- packet->ethHdr.h_source[5],
- iface->name);
- return;
- }
-
- acIndex = iface - Interfaces;
-
- /* Source address must be unicast */
- if (NOT_UNICAST(packet->ethHdr.h_source)) {
- syslog(LOG_ERR,
- "PADS packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s not from a unicast address",
- packet->ethHdr.h_source[0],
- packet->ethHdr.h_source[1],
- packet->ethHdr.h_source[2],
- packet->ethHdr.h_source[3],
- packet->ethHdr.h_source[4],
- packet->ethHdr.h_source[5],
- iface->name);
- return;
- }
-
- /* Destination address must be interface's MAC address */
- if (memcmp(packet->ethHdr.h_dest, iface->mac, ETH_ALEN)) {
- return;
- }
-
- /* Find relay tag */
- loc = findTag(packet, TAG_RELAY_SESSION_ID, &tag);
- if (!loc) {
- syslog(LOG_ERR,
- "PADS packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s does not have Relay-Session-Id tag",
- packet->ethHdr.h_source[0],
- packet->ethHdr.h_source[1],
- packet->ethHdr.h_source[2],
- packet->ethHdr.h_source[3],
- packet->ethHdr.h_source[4],
- packet->ethHdr.h_source[5],
- iface->name);
- return;
- }
-
- /* If it's the wrong length, ignore it */
- if (ntohs(tag.length) != MY_RELAY_TAG_LEN) {
- syslog(LOG_ERR,
- "PADS packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s does not have correct length Relay-Session-Id tag",
- packet->ethHdr.h_source[0],
- packet->ethHdr.h_source[1],
- packet->ethHdr.h_source[2],
- packet->ethHdr.h_source[3],
- packet->ethHdr.h_source[4],
- packet->ethHdr.h_source[5],
- iface->name);
- return;
- }
-
- /* Extract interface index */
- memcpy(&ifIndex, tag.payload, sizeof(ifIndex));
-
- if (ifIndex < 0 || ifIndex >= NumInterfaces ||
- !Interfaces[ifIndex].clientOK ||
- iface == &Interfaces[ifIndex]) {
- syslog(LOG_ERR,
- "PADS packet from %02x:%02x:%02x:%02x:%02x:%02x on interface %s has invalid interface in Relay-Session-Id tag",
- packet->ethHdr.h_source[0],
- packet->ethHdr.h_source[1],
- packet->ethHdr.h_source[2],
- packet->ethHdr.h_source[3],
- packet->ethHdr.h_source[4],
- packet->ethHdr.h_source[5],
- iface->name);
- return;
- }
-
- /* If session ID is zero, it's the AC respoding with an error.
- Just relay it; do not create a session */
- if (packet->session != htons(0)) {
- /* Check for existing session */
- sh = findSession(packet->ethHdr.h_source, packet->session);
- if (sh) ses = sh->ses;
-
- /* If already an existing session, assume it's a duplicate PADS. Send
- the frame, but do not create a new session. Is this the right
- thing to do? Arguably, should send an error to the client and
- a PADT to the server, because this could happen due to a
- server crash and reboot. */
-
- if (!ses) {
- /* Create a new session */
- ses = createSession(iface, &Interfaces[ifIndex],
- packet->ethHdr.h_source,
- loc + TAG_HDR_SIZE + sizeof(ifIndex), packet->session);
- if (!ses) {
- /* Can't allocate session -- send error PADS to client and
- PADT to server */
- PPPoETag hostUniq, *hu;
- if (findTag(packet, TAG_HOST_UNIQ, &hostUniq)) {
- hu = &hostUniq;
- } else {
- hu = NULL;
- }
- relaySendError(CODE_PADS, htons(0), &Interfaces[ifIndex],
- loc + TAG_HDR_SIZE + sizeof(ifIndex),
- hu, "RP-PPPoE: Relay: Unable to allocate session");
- relaySendError(CODE_PADT, packet->session, iface,
- packet->ethHdr.h_source, NULL,
- "RP-PPPoE: Relay: Unable to allocate session");
- return;
- }
- }
- /* Replace session number */
- packet->session = ses->sesNum;
- }
-
- /* Remove relay-ID tag */
- removeBytes(packet, loc, MY_RELAY_TAG_LEN + TAG_HDR_SIZE);
- size -= (MY_RELAY_TAG_LEN + TAG_HDR_SIZE);
-
- /* Set destination address to MAC address in relay ID */
- memcpy(packet->ethHdr.h_dest, tag.payload + sizeof(ifIndex), ETH_ALEN);
-
- /* Set source address to MAC address of interface */
- memcpy(packet->ethHdr.h_source, Interfaces[ifIndex].mac, ETH_ALEN);
-
- /* Send the PADS to the proper client */
- sendPacket(NULL, Interfaces[ifIndex].discoverySock, packet, size);
-}
-
-/**********************************************************************
-*%FUNCTION: relaySendError
-*%ARGUMENTS:
-* code -- PPPoE packet code (PADS or PADT, typically)
-* session -- PPPoE session number
-* iface -- interface on which to send frame
-* mac -- Ethernet address to which frame should be sent
-* hostUniq -- if non-NULL, a hostUniq tag to add to error frame
-* errMsg -- error message to insert into Generic-Error tag.
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Sends either a PADS or PADT packet with a Generic-Error tag and an
-* error message.
-***********************************************************************/
-void
-relaySendError(unsigned char code,
- UINT16_t session,
- PPPoEInterface const *iface,
- unsigned char const *mac,
- PPPoETag const *hostUniq,
- char const *errMsg)
-{
- PPPoEPacket packet;
- PPPoETag errTag;
- int size;
-
- memcpy(packet.ethHdr.h_source, iface->mac, ETH_ALEN);
- memcpy(packet.ethHdr.h_dest, mac, ETH_ALEN);
- packet.ethHdr.h_proto = htons(Eth_PPPOE_Discovery);
- packet.type = 1;
- packet.ver = 1;
- packet.code = code;
- packet.session = session;
- packet.length = htons(0);
- if (hostUniq) {
- if (addTag(&packet, hostUniq) < 0) return;
- }
- errTag.type = htons(TAG_GENERIC_ERROR);
- errTag.length = htons(strlen(errMsg));
- strcpy(errTag.payload, errMsg);
- if (addTag(&packet, &errTag) < 0) return;
- size = ntohs(packet.length) + HDR_SIZE;
- if (code == CODE_PADT) {
- sendPacket(NULL, iface->discoverySock, &packet, size);
- } else {
- sendPacket(NULL, iface->sessionSock, &packet, size);
- }
-}
-
-/**********************************************************************
-*%FUNCTION: alarmHandler
-*%ARGUMENTS:
-* sig -- signal number
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* SIGALRM handler. Increments Epoch; if necessary, writes a byte of
-* data to the alarm pipe to trigger the stale-session cleaner.
-***********************************************************************/
-void
-alarmHandler(int sig)
-{
- alarm(1);
- Epoch++;
- CleanCounter++;
- if (CleanCounter == CleanPeriod) {
- write(CleanPipe[1], "", 1);
- }
-}
-
-/**********************************************************************
-*%FUNCTION: cleanSessions
-*%ARGUMENTS:
-* None
-*%RETURNS:
-* Nothing
-*%DESCRIPTION:
-* Goes through active sessions and cleans sessions idle for longer
-* than IdleTimeout seconds.
-***********************************************************************/
-void cleanSessions(void)
-{
- PPPoESession *cur, *next;
- cur = ActiveSessions;
- while(cur) {
- next = cur->next;
- if (Epoch - cur->epoch > IdleTimeout) {
- /* Send PADT to each peer */
- relaySendError(CODE_PADT, cur->acHash->sesNum,
- cur->acHash->interface,
- cur->acHash->peerMac, NULL,
- "RP-PPPoE: Relay: Session exceeded idle timeout");
- relaySendError(CODE_PADT, cur->clientHash->sesNum,
- cur->clientHash->interface,
- cur->clientHash->peerMac, NULL,
- "RP-PPPoE: Relay: Session exceeded idle timeout");
- freeSession(cur, "Idle Timeout");
- }
- cur = next;
- }
-}
diff --git a/mdk-stage1/rp-pppoe/src/relay.h b/mdk-stage1/rp-pppoe/src/relay.h
deleted file mode 100644
index d438a657f..000000000
--- a/mdk-stage1/rp-pppoe/src/relay.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/**********************************************************************
-*
-* relay.h
-*
-* Definitions for PPPoE relay
-*
-* Copyright (C) 2001 Roaring Penguin Software Inc.
-*
-* This program may be distributed according to the terms of the GNU
-* General Public License, version 2 or (at your option) any later version.
-*
-* $Id$
-*
-***********************************************************************/
-
-#include "pppoe.h"
-
-/* Description for each active Ethernet interface */
-typedef struct InterfaceStruct {
- char name[IFNAMSIZ+1]; /* Interface name */
- int discoverySock; /* Socket for discovery frames */
- int sessionSock; /* Socket for session frames */
- int clientOK; /* Client requests allowed (PADI, PADR) */
- int acOK; /* AC replies allowed (PADO, PADS) */
- unsigned char mac[ETH_ALEN]; /* MAC address */
-} PPPoEInterface;
-
-/* Session state for relay */
-struct SessionHashStruct;
-typedef struct SessionStruct {
- struct SessionStruct *next; /* Free list link */
- struct SessionStruct *prev; /* Free list link */
- struct SessionHashStruct *acHash; /* Hash bucket for AC MAC/Session */
- struct SessionHashStruct *clientHash; /* Hash bucket for client MAC/Session */
- unsigned int epoch; /* Epoch when last activity was seen */
- UINT16_t sesNum; /* Session number assigned by relay */
-} PPPoESession;
-
-/* Hash table entry to find sessions */
-typedef struct SessionHashStruct {
- struct SessionHashStruct *next; /* Link in hash chain */
- struct SessionHashStruct *prev; /* Link in hash chain */
- struct SessionHashStruct *peer; /* Peer for this session */
- PPPoEInterface const *interface; /* Interface */
- unsigned char peerMac[ETH_ALEN]; /* Peer's MAC address */
- UINT16_t sesNum; /* Session number */
- PPPoESession *ses; /* Session data */
-} SessionHash;
-
-/* Function prototypes */
-
-void relayGotSessionPacket(PPPoEInterface const *i);
-void relayGotDiscoveryPacket(PPPoEInterface const *i);
-PPPoEInterface *findInterface(int sock);
-unsigned int hash(unsigned char const *mac, UINT16_t sesNum);
-SessionHash *findSession(unsigned char const *mac, UINT16_t sesNum);
-void deleteHash(SessionHash *hash);
-PPPoESession *createSession(PPPoEInterface const *ac,
- PPPoEInterface const *cli,
- unsigned char const *acMac,
- unsigned char const *cliMac,
- UINT16_t acSes);
-void freeSession(PPPoESession *ses, char const *msg);
-void addInterface(char const *ifname, int clientOK, int acOK);
-void usage(char const *progname);
-void initRelay(int nsess);
-void relayLoop(void);
-void addHash(SessionHash *sh);
-void unhash(SessionHash *sh);
-
-void relayHandlePADT(PPPoEInterface const *iface, PPPoEPacket *packet, int size);
-void relayHandlePADI(PPPoEInterface const *iface, PPPoEPacket *packet, int size);
-void relayHandlePADO(PPPoEInterface const *iface, PPPoEPacket *packet, int size);
-void relayHandlePADR(PPPoEInterface const *iface, PPPoEPacket *packet, int size);
-void relayHandlePADS(PPPoEInterface const *iface, PPPoEPacket *packet, int size);
-
-int addTag(PPPoEPacket *packet, PPPoETag const *tag);
-int insertBytes(PPPoEPacket *packet, unsigned char *loc,
- void const *bytes, int length);
-int removeBytes(PPPoEPacket *packet, unsigned char *loc,
- int length);
-void relaySendError(unsigned char code,
- UINT16_t session,
- PPPoEInterface const *iface,
- unsigned char const *mac,
- PPPoETag const *hostUniq,
- char const *errMsg);
-
-void alarmHandler(int sig);
-void cleanSessions(void);
-
-#define MAX_INTERFACES 8
-#define DEFAULT_SESSIONS 5000
-
-/* Hash table size -- a prime number; gives load factor of around 6
- for 65534 sessions */
-#define HASHTAB_SIZE 18917
diff --git a/mdk-stage1/slang/Makefile b/mdk-stage1/slang/Makefile
deleted file mode 100644
index 111062578..000000000
--- a/mdk-stage1/slang/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
- #******************************************************************************
- #
- # Guillaume Cottenceau (gc@mandrakesoft.com)
- #
- # Copyright 2000 Mandrakesoft
- #
- # This software may be freely redistributed under the terms of the GNU
- # public license.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program; if not, write to the Free Software
- # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- #
- #*****************************************************************************
-
-top_dir = ..
-
-include $(top_dir)/Makefile.common
-
-
-LIBNAME = libslang
-
-OBJS = sltermin.o sldisply.o slutty.o slang.o slarray.o slclass.o slcmd.o slerr.o slgetkey.o slkeymap.o slmalloc.o slmath.o slmemchr.o slmemcmp.o slmemcpy.o slmemset.o slmisc.o slparse.o slprepr.o slregexp.o slrline.o slsearch.o slsmg.o slstd.o sltoken.o sltypes.o slxstrng.o slcurses.o slscroll.o slsignal.o slkeypad.o slerrno.o slstring.o slstruct.o slcmplex.o slarrfun.o slimport.o slpath.o slarith.o slassoc.o slcompat.o slposdir.o slstdio.o slproc.o sltime.o slstrops.o slbstr.o slpack.o slintall.o slistruc.o slposio.o slnspace.o slarrmis.o slospath.o slscanf.o
-
-DEFS = -Dunix -DSLANG
-
-INCS =
-
-
-TARGETS = $(LIBNAME).a
-
-all: $(TARGETS)
-
-clean:
- rm -f *.o *.a
-
-$(LIBNAME).a: $(OBJS)
- ar -cru $@ $^
- ranlib $@
-
-$(OBJS): %.o: %.c
- $(DIET) gcc $(CFLAGS) $(DEFS) $(INCS) $(INCLUDES) -c $< -o $@
diff --git a/mdk-stage1/slang/_slang.h b/mdk-stage1/slang/_slang.h
deleted file mode 100644
index 02ee13505..000000000
--- a/mdk-stage1/slang/_slang.h
+++ /dev/null
@@ -1,743 +0,0 @@
-#ifndef _PRIVATE_SLANG_H_
-#define _PRIVATE_SLANG_H_
-/* header file for S-Lang internal structures that users do not (should not)
- need. Use slang.h for that purpose. */
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-/* #include "config.h" */
-#include "jdmacros.h"
-#include "sllimits.h"
-
-#ifdef VMS
-# define SLANG_SYSTEM_NAME "_VMS"
-#else
-# if defined (IBMPC_SYSTEM)
-# define SLANG_SYSTEM_NAME "_IBMPC"
-# else
-# define SLANG_SYSTEM_NAME "_UNIX"
-# endif
-#endif /* VMS */
-
-/* These quantities are main_types for byte-compiled code. They are used
- * by the inner_interp routine. The _BC_ means byte-code.
- */
-
-#define _SLANG_BC_LVARIABLE SLANG_LVARIABLE /* 0x01 */
-#define _SLANG_BC_GVARIABLE SLANG_GVARIABLE /* 0x02 */
-#define _SLANG_BC_IVARIABLE SLANG_IVARIABLE /* 0x03 */
-#define _SLANG_BC_RVARIABLE SLANG_RVARIABLE /* 0x04 */
-#define _SLANG_BC_INTRINSIC SLANG_INTRINSIC /* 0x05 */
-#define _SLANG_BC_FUNCTION SLANG_FUNCTION /* 0x06 */
-#define _SLANG_BC_MATH_UNARY SLANG_MATH_UNARY /* 0x07 */
-#define _SLANG_BC_APP_UNARY SLANG_APP_UNARY /* 0x08 */
-#define _SLANG_BC_ICONST SLANG_ICONSTANT /* 0x09 */
-#define _SLANG_BC_DCONST SLANG_DCONSTANT /* 0x0A */
-#define _SLANG_BC_PVARIABLE SLANG_PVARIABLE /* 0x0B */
-#define _SLANG_BC_PFUNCTION SLANG_PFUNCTION /* 0x0C */
-
-#define _SLANG_BC_BINARY 0x10
-#define _SLANG_BC_LITERAL 0x11 /* constant objects */
-#define _SLANG_BC_LITERAL_INT 0x12
-#define _SLANG_BC_LITERAL_STR 0x13
-#define _SLANG_BC_BLOCK 0x14
-
-/* These 3 MUST be in this order too ! */
-#define _SLANG_BC_RETURN 0x15
-#define _SLANG_BC_BREAK 0x16
-#define _SLANG_BC_CONTINUE 0x17
-
-#define _SLANG_BC_EXCH 0x18
-#define _SLANG_BC_LABEL 0x19
-#define _SLANG_BC_LOBJPTR 0x1A
-#define _SLANG_BC_GOBJPTR 0x1B
-#define _SLANG_BC_X_ERROR 0x1C
-/* These must be in this order */
-#define _SLANG_BC_X_USER0 0x1D
-#define _SLANG_BC_X_USER1 0x1E
-#define _SLANG_BC_X_USER2 0x1F
-#define _SLANG_BC_X_USER3 0x20
-#define _SLANG_BC_X_USER4 0x21
-
-#define _SLANG_BC_CALL_DIRECT 0x24
-#define _SLANG_BC_CALL_DIRECT_FRAME 0x25
-#define _SLANG_BC_UNARY 0x26
-#define _SLANG_BC_UNARY_FUNC 0x27
-
-#define _SLANG_BC_DEREF_ASSIGN 0x30
-#define _SLANG_BC_SET_LOCAL_LVALUE 0x31
-#define _SLANG_BC_SET_GLOBAL_LVALUE 0x32
-#define _SLANG_BC_SET_INTRIN_LVALUE 0x33
-#define _SLANG_BC_SET_STRUCT_LVALUE 0x34
-#define _SLANG_BC_FIELD 0x35
-#define _SLANG_BC_SET_ARRAY_LVALUE 0x36
-
-#define _SLANG_BC_LINE_NUM 0x40
-
-#define _SLANG_BC_TMP 0x50
-#define _SLANG_BC_LVARIABLE_AGET 0x60
-#define _SLANG_BC_LVARIABLE_APUT 0x61
-#define _SLANG_BC_INTEGER_PLUS 0x62
-#define _SLANG_BC_INTEGER_MINUS 0x63
-#define _SLANG_BC_ARG_LVARIABLE 0x64
-#define _SLANG_BC_EARG_LVARIABLE 0x65
-
-#define _SLANG_BC_CALL_DIRECT_INTRINSIC 0x80
-#define _SLANG_BC_INTRINSIC_CALL_DIRECT 0x81
-#define _SLANG_BC_CALL_DIRECT_LSTR 0x82
-#define _SLANG_BC_CALL_DIRECT_SLFUN 0x83
-#define _SLANG_BC_CALL_DIRECT_INTRSTOP 0x84
-#define _SLANG_BC_INTRINSIC_STOP 0x85
-#define _SLANG_BC_CALL_DIRECT_EARG_LVAR 0x86
-#define _SLANG_BC_CALL_DIRECT_LINT 0x87
-#define _SLANG_BC_CALL_DIRECT_LVAR 0x88
-
-
-/* Byte-Code Sub Types (_BCST_) */
-
-/* These are sub_types of _SLANG_BC_BLOCK */
-#define _SLANG_BCST_ERROR_BLOCK 0x01
-#define _SLANG_BCST_EXIT_BLOCK 0x02
-#define _SLANG_BCST_USER_BLOCK0 0x03
-#define _SLANG_BCST_USER_BLOCK1 0x04
-#define _SLANG_BCST_USER_BLOCK2 0x05
-#define _SLANG_BCST_USER_BLOCK3 0x06
-#define _SLANG_BCST_USER_BLOCK4 0x07
-/* The user blocks MUST be in the above order */
-#define _SLANG_BCST_LOOP 0x10
-#define _SLANG_BCST_WHILE 0x11
-#define _SLANG_BCST_FOR 0x12
-#define _SLANG_BCST_FOREVER 0x13
-#define _SLANG_BCST_CFOR 0x14
-#define _SLANG_BCST_DOWHILE 0x15
-#define _SLANG_BCST_FOREACH 0x16
-
-#define _SLANG_BCST_IF 0x20
-#define _SLANG_BCST_IFNOT 0x21
-#define _SLANG_BCST_ELSE 0x22
-#define _SLANG_BCST_ANDELSE 0x23
-#define _SLANG_BCST_ORELSE 0x24
-#define _SLANG_BCST_SWITCH 0x25
-#define _SLANG_BCST_NOTELSE 0x26
-
-/* assignment (_SLANG_BC_SET_*_LVALUE) subtypes. The order MUST correspond
- * to the assignment token order with the ASSIGN_TOKEN as the first!
- */
-#define _SLANG_BCST_ASSIGN 0x01
-#define _SLANG_BCST_PLUSEQS 0x02
-#define _SLANG_BCST_MINUSEQS 0x03
-#define _SLANG_BCST_TIMESEQS 0x04
-#define _SLANG_BCST_DIVEQS 0x05
-#define _SLANG_BCST_BOREQS 0x06
-#define _SLANG_BCST_BANDEQS 0x07
-#define _SLANG_BCST_PLUSPLUS 0x08
-#define _SLANG_BCST_POST_PLUSPLUS 0x09
-#define _SLANG_BCST_MINUSMINUS 0x0A
-#define _SLANG_BCST_POST_MINUSMINUS 0x0B
-
-/* These use SLANG_PLUS, SLANG_MINUS, SLANG_PLUSPLUS, etc... */
-
-typedef union
-{
-#if SLANG_HAS_FLOAT
- double double_val;
- float float_val;
-#endif
- long long_val;
- unsigned long ulong_val;
- VOID_STAR ptr_val;
- char *s_val;
- int int_val;
- unsigned int uint_val;
- SLang_MMT_Type *ref;
- SLang_Name_Type *n_val;
- struct _SLang_Struct_Type *struct_val;
- struct _SLang_Array_Type *array_val;
- short short_val;
- unsigned short ushort_val;
- char char_val;
- unsigned char uchar_val;
-}
-_SL_Object_Union_Type;
-
-typedef struct _SLang_Object_Type
-{
- unsigned char data_type; /* SLANG_INT_TYPE, ... */
- _SL_Object_Union_Type v;
-}
-SLang_Object_Type;
-
-struct _SLang_MMT_Type
-{
- unsigned char data_type; /* int, string, etc... */
- VOID_STAR user_data; /* address of user structure */
- unsigned int count; /* number of references */
-};
-
-extern int _SLang_pop_object_of_type (unsigned char, SLang_Object_Type *, int);
-
-typedef struct
-{
- char *name; /* slstring */
- SLang_Object_Type obj;
-}
-_SLstruct_Field_Type;
-
-typedef struct _SLang_Struct_Type
-{
- _SLstruct_Field_Type *fields;
- unsigned int nfields; /* number used */
- unsigned int num_refs;
-}
-_SLang_Struct_Type;
-
-extern void _SLstruct_delete_struct (_SLang_Struct_Type *);
-extern int _SLang_push_struct (_SLang_Struct_Type *);
-extern int _SLang_pop_struct (_SLang_Struct_Type **);
-extern int _SLstruct_init (void);
-/* extern int _SLstruct_get_field (char *); */
-extern int _SLstruct_define_struct (void);
-extern int _SLstruct_define_typedef (void);
-
-extern int _SLang_pop_datatype (unsigned char *);
-extern int _SLang_push_datatype (unsigned char);
-
-struct _SLang_Ref_Type
-{
- int is_global;
- union
- {
- SLang_Name_Type *nt;
- SLang_Object_Type *local_obj;
- }
- v;
-};
-
-extern int _SLang_dereference_ref (SLang_Ref_Type *);
-extern int _SLang_deref_assign (SLang_Ref_Type *);
-extern int _SLang_push_ref (int, VOID_STAR);
-
-extern int _SL_increment_frame_pointer (void);
-extern int _SL_decrement_frame_pointer (void);
-
-extern int SLang_pop(SLang_Object_Type *);
-extern void SLang_free_object (SLang_Object_Type *);
-extern int _SLanytype_typecast (unsigned char, VOID_STAR, unsigned int,
- unsigned char, VOID_STAR);
-extern void _SLstring_intrinsic (void);
-
-
-/* These functions are used to create slstrings of a fixed length. Be
- * very careful how they are used. In particular, if len bytes are allocated,
- * then the string must be len characters long, no more and no less.
- */
-extern char *_SLallocate_slstring (unsigned int);
-extern char *_SLcreate_via_alloced_slstring (char *, unsigned int);
-extern void _SLunallocate_slstring (char *, unsigned int);
-extern int _SLpush_alloced_slstring (char *, unsigned int);
-
-typedef struct
-{
- char **buf;
- unsigned int max_num;
- unsigned int num;
- unsigned int delta_num;
-}
-_SLString_List_Type;
-extern int _SLstring_list_append (_SLString_List_Type *, char *);
-extern int _SLstring_list_init (_SLString_List_Type *, unsigned int, unsigned int);
-extern void _SLstring_list_delete (_SLString_List_Type *);
-extern int _SLstring_list_push (_SLString_List_Type *);
-
-/* This function assumes that s is an slstring. */
-extern char *_SLstring_dup_slstring (char *);
-extern int _SLang_dup_and_push_slstring (char *);
-
-
-extern int _SLang_init_import (void);
-
-/* This function checks to see if the referenced object is initialized */
-extern int _SLang_is_ref_initialized (SLang_Ref_Type *);
-extern int _SLcheck_identifier_syntax (char *);
-extern int _SLang_uninitialize_ref (SLang_Ref_Type *);
-
-extern int _SLpush_slang_obj (SLang_Object_Type *);
-
-extern char *_SLexpand_escaped_char(char *, char *);
-extern void _SLexpand_escaped_string (char *, char *, char *);
-
-/* returns a pointer to an SLstring string-- use SLang_free_slstring */
-extern char *_SLstringize_object (SLang_Object_Type *);
-extern int _SLdump_objects (char *, SLang_Object_Type *, unsigned int, int);
-
-extern SLang_Object_Type *_SLRun_Stack;
-extern SLang_Object_Type *_SLStack_Pointer;
-
-struct _SLang_NameSpace_Type
-{
- struct _SLang_NameSpace_Type *next;
- char *name; /* this is the load_type name */
- char *namespace_name; /* this name is assigned by implements */
- unsigned int table_size;
- SLang_Name_Type **table;
-};
-extern SLang_NameSpace_Type *_SLns_allocate_namespace (char *, unsigned int);
-extern SLang_NameSpace_Type *_SLns_find_namespace (char *);
-extern int _SLns_set_namespace_name (SLang_NameSpace_Type *, char *);
-extern SLang_Array_Type *_SLnspace_apropos (SLang_NameSpace_Type *, char *, unsigned int);
-extern void _SLang_use_namespace_intrinsic (char *name);
-extern char *_SLang_cur_namespace_intrinsic (void);
-extern SLang_Array_Type *_SLang_apropos (char *, char *, unsigned int);
-extern void _SLang_implements_intrinsic (char *);
-
-extern int _SLang_Trace;
-extern int _SLstack_depth(void);
-extern char *_SLang_Current_Function_Name;
-
-extern int _SLang_trace_fun(char *);
-extern int _SLang_Compile_Line_Num_Info;
-
-extern char *_SLstring_dup_hashed_string (char *, unsigned long);
-extern unsigned long _SLcompute_string_hash (char *);
-extern char *_SLstring_make_hashed_string (char *, unsigned int, unsigned long *);
-extern void _SLfree_hashed_string (char *, unsigned int, unsigned long);
-unsigned long _SLstring_hash (unsigned char *, unsigned char *);
-extern int _SLinit_slcomplex (void);
-
-extern int _SLang_init_slstrops (void);
-extern int _SLstrops_do_sprintf_n (int);
-extern int _SLang_sscanf (void);
-extern double _SLang_atof (char *);
-extern int _SLang_init_bstring (void);
-extern int _SLang_init_sltime (void);
-extern void _SLpack (void);
-extern void _SLunpack (char *, SLang_BString_Type *);
-extern void _SLpack_pad_format (char *);
-extern unsigned int _SLpack_compute_size (char *);
-extern int _SLusleep (unsigned long);
-
-/* frees upon error. NULL __NOT__ ok. */
-extern int _SLang_push_slstring (char *);
-
-extern unsigned char _SLarith_promote_type (unsigned char);
-extern int _SLarith_get_precedence (unsigned char);
-extern int _SLarith_typecast (unsigned char, VOID_STAR, unsigned int,
- unsigned char, VOID_STAR);
-
-extern int SLang_push(SLang_Object_Type *);
-extern int SLadd_global_variable (char *);
-extern void _SLang_clear_error (void);
-
-extern int _SLdo_pop (void);
-extern unsigned int _SLsys_getkey (void);
-extern int _SLsys_input_pending (int);
-#ifdef IBMPC_SYSTEM
-extern unsigned int _SLpc_convert_scancode (unsigned int, unsigned int, int);
-#define _SLTT_KEY_SHIFT 1
-#define _SLTT_KEY_CTRL 2
-#define _SLTT_KEY_ALT 4
-#endif
-
-typedef struct _SLterminfo_Type SLterminfo_Type;
-extern SLterminfo_Type *_SLtt_tigetent (char *);
-extern char *_SLtt_tigetstr (SLterminfo_Type *, char *);
-extern int _SLtt_tigetnum (SLterminfo_Type *, char *);
-extern int _SLtt_tigetflag (SLterminfo_Type *, char *);
-
-#if SLTT_HAS_NON_BCE_SUPPORT
-extern int _SLtt_get_bce_color_offset (void);
-#endif
-extern void (*_SLtt_color_changed_hook)(void);
-
-extern unsigned char SLang_Input_Buffer [SL_MAX_INPUT_BUFFER_LEN];
-
-extern int _SLregister_types (void);
-extern SLang_Class_Type *_SLclass_get_class (unsigned char);
-extern VOID_STAR _SLclass_get_ptr_to_value (SLang_Class_Type *, SLang_Object_Type *);
-extern void _SLclass_type_mismatch_error (unsigned char, unsigned char);
-extern int _SLclass_init (void);
-extern int _SLclass_copy_class (unsigned char, unsigned char);
-
-extern unsigned char _SLclass_Class_Type [256];
-
-extern int (*_SLclass_get_typecast (unsigned char, unsigned char, int))
-(unsigned char, VOID_STAR, unsigned int,
- unsigned char, VOID_STAR);
-
-extern int (*_SLclass_get_binary_fun (int, SLang_Class_Type *, SLang_Class_Type *, SLang_Class_Type **, int))
-(int,
- unsigned char, VOID_STAR, unsigned int,
- unsigned char, VOID_STAR, unsigned int,
- VOID_STAR);
-
-extern int (*_SLclass_get_unary_fun (int, SLang_Class_Type *, SLang_Class_Type **, int))
-(int, unsigned char, VOID_STAR, unsigned int, VOID_STAR);
-
-extern int _SLarith_register_types (void);
-extern unsigned char _SLarith_Arith_Types [];
-extern unsigned char _SLarith_Is_Arith_Type [256];
-extern int _SLarith_bin_op (SLang_Object_Type *, SLang_Object_Type *, int);
-
-extern int _SLarray_add_bin_op (unsigned char);
-
-extern int _SLang_call_funptr (SLang_Name_Type *);
-extern void _SLset_double_format (char *);
-extern SLang_Name_Type *_SLlocate_global_name (char *);
-extern SLang_Name_Type *_SLlocate_name (char *);
-
-extern char *_SLdefines[];
-
-#define SL_ERRNO_NOT_IMPLEMENTED 0x7FFF
-extern int _SLerrno_errno;
-extern int _SLerrno_init (void);
-
-extern int _SLstdio_fdopen (char *, int, char *);
-
-extern void _SLstruct_pop_args (int *);
-extern void _SLstruct_push_args (SLang_Array_Type *);
-
-extern int _SLarray_aput (void);
-extern int _SLarray_aget (void);
-extern int _SLarray_inline_implicit_array (void);
-extern int _SLarray_inline_array (void);
-extern int _SLarray_wildcard_array (void);
-
-extern int
-_SLarray_typecast (unsigned char, VOID_STAR, unsigned int,
- unsigned char, VOID_STAR, int);
-
-extern int _SLarray_aput_transfer_elem (SLang_Array_Type *, int *,
- VOID_STAR, unsigned int, int);
-extern int _SLarray_aget_transfer_elem (SLang_Array_Type *, int *,
- VOID_STAR, unsigned int, int);
-extern void _SLarray_free_array_elements (SLang_Class_Type *, VOID_STAR, unsigned int);
-
-extern SLang_Foreach_Context_Type *
-_SLarray_cl_foreach_open (unsigned char, unsigned int);
-extern void _SLarray_cl_foreach_close (unsigned char, SLang_Foreach_Context_Type *);
-extern int _SLarray_cl_foreach (unsigned char, SLang_Foreach_Context_Type *);
-
-extern int _SLarray_matrix_multiply (void);
-extern void (*_SLang_Matrix_Multiply)(void);
-
-extern int _SLarray_init_slarray (void);
-extern SLang_Array_Type *
-SLang_create_array1 (unsigned char, int, VOID_STAR, int *, unsigned int, int);
-
-extern int _SLcompile_push_context (SLang_Load_Type *);
-extern int _SLcompile_pop_context (void);
-extern int _SLang_Auto_Declare_Globals;
-
-typedef struct
-{
- union
- {
- long long_val;
- char *s_val; /* Used for IDENT_TOKEN, FLOAT, etc... */
- SLang_BString_Type *b_val;
- } v;
- int free_sval_flag;
- unsigned int num_refs;
- unsigned long hash;
-#if _SLANG_HAS_DEBUG_CODE
- int line_number;
-#endif
- unsigned char type;
-}
-_SLang_Token_Type;
-
-extern void _SLcompile (_SLang_Token_Type *);
-extern void (*_SLcompile_ptr)(_SLang_Token_Type *);
-
-/* *** TOKENS *** */
-
-/* Note that that tokens corresponding to ^J, ^M, and ^Z should not be used.
- * This is because a file that contains any of these characters will
- * have an OS dependent interpretation, e.g., ^Z is EOF on MSDOS.
- */
-
-/* Special tokens */
-#define EOF_TOKEN 0x01
-#define RPN_TOKEN 0x02
-#define NL_TOKEN 0x03
-#define NOP_TOKEN 0x05
-#define FARG_TOKEN 0x06
-#define TMP_TOKEN 0x07
-
-#define RESERVED1_TOKEN 0x0A /* \n */
-#define RESERVED2_TOKEN 0x0D /* \r */
-
-/* Literal tokens */
-#define CHAR_TOKEN 0x10
-#define UCHAR_TOKEN 0x11
-#define SHORT_TOKEN 0x12
-#define USHORT_TOKEN 0x13
-#define INT_TOKEN 0x14
-#define UINT_TOKEN 0x15
-#define LONG_TOKEN 0x16
-#define ULONG_TOKEN 0x17
-#define IS_INTEGER_TOKEN(x) ((x >= CHAR_TOKEN) && (x <= ULONG_TOKEN))
-#define FLOAT_TOKEN 0x18
-#define DOUBLE_TOKEN 0x19
-#define RESERVED3_TOKEN 0x1A /* ^Z */
-#define COMPLEX_TOKEN 0x1B
-#define STRING_TOKEN 0x1C
-#define BSTRING_TOKEN 0x1D
-#define _BSTRING_TOKEN 0x1E /* byte-compiled BSTRING */
-#define ESC_STRING_TOKEN 0x1F
-
-/* Tokens that can be LVALUES */
-#define IDENT_TOKEN 0x20
-#define ARRAY_TOKEN 0x21
-#define DOT_TOKEN 0x22
-#define IS_LVALUE_TOKEN (((t) <= DOT_TOKEN) && ((t) >= IDENT_TOKEN))
-
-/* do not use these values */
-#define RESERVED4_TOKEN 0x23 /* # */
-#define RESERVED5_TOKEN 0x25 /* % */
-
-/* Flags for struct fields */
-#define STATIC_TOKEN 0x26
-#define READONLY_TOKEN 0x27
-#define PRIVATE_TOKEN 0x28
-#define PUBLIC_TOKEN 0x29
-
-/* Punctuation tokens */
-#define OBRACKET_TOKEN 0x2a
-#define CBRACKET_TOKEN 0x2b
-#define OPAREN_TOKEN 0x2c
-#define CPAREN_TOKEN 0x2d
-#define OBRACE_TOKEN 0x2e
-#define CBRACE_TOKEN 0x2f
-
-#define COMMA_TOKEN 0x31
-#define SEMICOLON_TOKEN 0x32
-#define COLON_TOKEN 0x33
-#define NAMESPACE_TOKEN 0x34
-
-/* Operators */
-#define POW_TOKEN 0x38
-
-/* The order here must match the order in the Binop_Level table in slparse.c */
-#define FIRST_BINARY_OP 0x39
-#define ADD_TOKEN 0x39
-#define SUB_TOKEN 0x3a
-#define TIMES_TOKEN 0x3b
-#define DIV_TOKEN 0x3c
-#define LT_TOKEN 0x3d
-#define LE_TOKEN 0x3e
-#define GT_TOKEN 0x3f
-#define GE_TOKEN 0x40
-#define EQ_TOKEN 0x41
-#define NE_TOKEN 0x42
-#define AND_TOKEN 0x43
-#define OR_TOKEN 0x44
-#define MOD_TOKEN 0x45
-#define BAND_TOKEN 0x46
-#define SHL_TOKEN 0x47
-#define SHR_TOKEN 0x48
-#define BXOR_TOKEN 0x49
-#define BOR_TOKEN 0x4a
-#define POUND_TOKEN 0x4b /* matrix multiplication */
-
-#define LAST_BINARY_OP 0x4b
-#define IS_BINARY_OP(t) ((t >= FIRST_BINARY_OP) && (t <= LAST_BINARY_OP))
-
-/* unary tokens -- but not all of them (see grammar) */
-#define DEREF_TOKEN 0x4d
-#define NOT_TOKEN 0x4e
-#define BNOT_TOKEN 0x4f
-
-#define IS_INTERNAL_FUNC(t) ((t >= 0x50) && (t <= 0x56))
-#define POP_TOKEN 0x50
-#define CHS_TOKEN 0x51
-#define SIGN_TOKEN 0x52
-#define ABS_TOKEN 0x53
-#define SQR_TOKEN 0x54
-#define MUL2_TOKEN 0x55
-#define EXCH_TOKEN 0x56
-
-/* Assignment tokens. Note: these must appear with sequential values.
- * The order here must match the specific lvalue assignments below.
- * These tokens are used by rpn routines in slang.c. slparse.c maps them
- * onto the specific lvalue tokens while parsing infix.
- * Also the assignment _SLANG_BCST_ assumes this order
- */
-#define ASSIGN_TOKEN 0x57
-#define PLUSEQS_TOKEN 0x58
-#define MINUSEQS_TOKEN 0x59
-#define TIMESEQS_TOKEN 0x5A
-#define DIVEQS_TOKEN 0x5B
-#define BOREQS_TOKEN 0x5C
-#define BANDEQS_TOKEN 0x5D
-#define PLUSPLUS_TOKEN 0x5E
-#define POST_PLUSPLUS_TOKEN 0x5F
-#define MINUSMINUS_TOKEN 0x60
-#define POST_MINUSMINUS_TOKEN 0x61
-
-/* Directives */
-#define FIRST_DIRECTIVE_TOKEN 0x62
-#define IFNOT_TOKEN 0x62
-#define IF_TOKEN 0x63
-#define ELSE_TOKEN 0x64
-#define FOREVER_TOKEN 0x65
-#define WHILE_TOKEN 0x66
-#define FOR_TOKEN 0x67
-#define _FOR_TOKEN 0x68
-#define LOOP_TOKEN 0x69
-#define SWITCH_TOKEN 0x6A
-#define DOWHILE_TOKEN 0x6B
-#define ANDELSE_TOKEN 0x6C
-#define ORELSE_TOKEN 0x6D
-#define ERRBLK_TOKEN 0x6E
-#define EXITBLK_TOKEN 0x6F
-/* These must be sequential */
-#define USRBLK0_TOKEN 0x70
-#define USRBLK1_TOKEN 0x71
-#define USRBLK2_TOKEN 0x72
-#define USRBLK3_TOKEN 0x73
-#define USRBLK4_TOKEN 0x74
-
-#define CONT_TOKEN 0x75
-#define BREAK_TOKEN 0x76
-#define RETURN_TOKEN 0x77
-
-#define CASE_TOKEN 0x78
-#define DEFINE_TOKEN 0x79
-#define DO_TOKEN 0x7a
-#define VARIABLE_TOKEN 0x7b
-#define GVARIABLE_TOKEN 0x7c
-#define _REF_TOKEN 0x7d
-#define PUSH_TOKEN 0x7e
-#define STRUCT_TOKEN 0x7f
-#define TYPEDEF_TOKEN 0x80
-#define NOTELSE_TOKEN 0x81
-#define DEFINE_STATIC_TOKEN 0x82
-#define FOREACH_TOKEN 0x83
-#define USING_TOKEN 0x84
-#define DEFINE_PRIVATE_TOKEN 0x85
-#define DEFINE_PUBLIC_TOKEN 0x86
-
-/* Note: the order here must match the order of the generic assignment tokens.
- * Also, the first token of each group must be the ?_ASSIGN_TOKEN.
- * slparse.c exploits this order, as well as slang.h.
- */
-#define FIRST_ASSIGN_TOKEN 0x90
-#define _STRUCT_ASSIGN_TOKEN 0x90
-#define _STRUCT_PLUSEQS_TOKEN 0x91
-#define _STRUCT_MINUSEQS_TOKEN 0x92
-#define _STRUCT_TIMESEQS_TOKEN 0x93
-#define _STRUCT_DIVEQS_TOKEN 0x94
-#define _STRUCT_BOREQS_TOKEN 0x95
-#define _STRUCT_BANDEQS_TOKEN 0x96
-#define _STRUCT_PLUSPLUS_TOKEN 0x97
-#define _STRUCT_POST_PLUSPLUS_TOKEN 0x98
-#define _STRUCT_MINUSMINUS_TOKEN 0x99
-#define _STRUCT_POST_MINUSMINUS_TOKEN 0x9A
-
-#define _ARRAY_ASSIGN_TOKEN 0xA0
-#define _ARRAY_PLUSEQS_TOKEN 0xA1
-#define _ARRAY_MINUSEQS_TOKEN 0xA2
-#define _ARRAY_TIMESEQS_TOKEN 0xA3
-#define _ARRAY_DIVEQS_TOKEN 0xA4
-#define _ARRAY_BOREQS_TOKEN 0xA5
-#define _ARRAY_BANDEQS_TOKEN 0xA6
-#define _ARRAY_PLUSPLUS_TOKEN 0xA7
-#define _ARRAY_POST_PLUSPLUS_TOKEN 0xA8
-#define _ARRAY_MINUSMINUS_TOKEN 0xA9
-#define _ARRAY_POST_MINUSMINUS_TOKEN 0xAA
-
-#define _SCALAR_ASSIGN_TOKEN 0xB0
-#define _SCALAR_PLUSEQS_TOKEN 0xB1
-#define _SCALAR_MINUSEQS_TOKEN 0xB2
-#define _SCALAR_TIMESEQS_TOKEN 0xB3
-#define _SCALAR_DIVEQS_TOKEN 0xB4
-#define _SCALAR_BOREQS_TOKEN 0xB5
-#define _SCALAR_BANDEQS_TOKEN 0xB6
-#define _SCALAR_PLUSPLUS_TOKEN 0xB7
-#define _SCALAR_POST_PLUSPLUS_TOKEN 0xB8
-#define _SCALAR_MINUSMINUS_TOKEN 0xB9
-#define _SCALAR_POST_MINUSMINUS_TOKEN 0xBA
-
-#define _DEREF_ASSIGN_TOKEN 0xC0
-#define _DEREF_PLUSEQS_TOKEN 0xC1
-#define _DEREF_MINUSEQS_TOKEN 0xC2
-#define _DEREF_TIMESEQS_TOKEN 0xC3
-#define _DEREF_DIVEQS_TOKEN 0xC4
-#define _DEREF_BOREQS_TOKEN 0xC5
-#define _DEREF_BANDEQS_TOKEN 0xC6
-#define _DEREF_PLUSPLUS_TOKEN 0xC7
-#define _DEREF_POST_PLUSPLUS_TOKEN 0xC8
-#define _DEREF_MINUSMINUS_TOKEN 0xC9
-#define _DEREF_POST_MINUSMINUS_TOKEN 0xCA
-
-#define LAST_ASSIGN_TOKEN 0xCA
-#define IS_ASSIGN_TOKEN(t) (((t)>=FIRST_ASSIGN_TOKEN)&&((t)<=LAST_ASSIGN_TOKEN))
-
-#define _INLINE_ARRAY_TOKEN 0xE0
-#define _INLINE_IMPLICIT_ARRAY_TOKEN 0xE1
-#define _NULL_TOKEN 0xE2
-#define _INLINE_WILDCARD_ARRAY_TOKEN 0xE3
-
-#define LINE_NUM_TOKEN 0xFC
-#define ARG_TOKEN 0xFD
-#define EARG_TOKEN 0xFE
-#define NO_OP_LITERAL 0xFF
-
-typedef struct
-{
- /* sltoken.c */
- /* SLang_eval_object */
- SLang_Load_Type *llt;
- SLPreprocess_Type *this_slpp;
- /* prep_get_char() */
- char *input_line;
- char cchar;
- /* get_token() */
- int want_nl_token;
-
- /* slparse.c */
- _SLang_Token_Type ctok;
- int block_depth;
- int assignment_expression;
-
- /* slang.c : SLcompile() */
- _SLang_Token_Type save_token;
- _SLang_Token_Type next_token;
- void (*slcompile_ptr)(_SLang_Token_Type *);
-}
-_SLEval_Context;
-
-extern int _SLget_token (_SLang_Token_Type *);
-extern void _SLparse_error (char *, _SLang_Token_Type *, int);
-extern void _SLparse_start (SLang_Load_Type *);
-extern int _SLget_rpn_token (_SLang_Token_Type *);
-extern void _SLcompile_byte_compiled (void);
-
-extern int (*_SLprep_eval_hook) (char *);
-
-#ifdef HAVE_VSNPRINTF
-#define _SLvsnprintf vsnprintf
-#else
-extern int _SLvsnprintf (char *, unsigned int, char *, va_list);
-#endif
-
-#ifdef HAVE_SNPRINTF
-# define _SLsnprintf snprintf
-#else
-extern int _SLsnprintf (char *, unsigned int, char *, ...);
-#endif
-
-#undef _INLINE_
-#if defined(__GNUC__) && _SLANG_USE_INLINE_CODE
-# define _INLINE_ __inline__
-#else
-# define _INLINE_
-#endif
-
-
-#endif /* _PRIVATE_SLANG_H_ */
diff --git a/mdk-stage1/slang/config.h b/mdk-stage1/slang/config.h
deleted file mode 100644
index a5ab3273c..000000000
--- a/mdk-stage1/slang/config.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/* src/sysconf.h. Generated automatically by configure. */
-/* -*- c -*- */
-/* Note: this is for unix only. */
-
-#ifndef SL_CONFIG_H
-#define SL_CONFIG_H
-
-/* define if you have stdlib.h */
-#define HAVE_STDLIB_H 1
-
-/* define if you have unistd.h */
-#define HAVE_UNISTD_H 1
-
-/* define if you have termios.h */
-#define HAVE_TERMIOS_H 1
-
-/* define if you have memory.h */
-#define HAVE_MEMORY_H 1
-
-/* define if you have malloc.h */
-#define HAVE_MALLOC_H 1
-
-/* define if you have memset */
-#define HAVE_MEMSET 1
-
-/* define if you have memcpy */
-#define HAVE_MEMCPY 1
-
-//#define HAVE_SETLOCALE 1
-//#define HAVE_LOCALE_H 1
-
-#define HAVE_VFSCANF 1
-
-/* define if you have fcntl.h */
-#define HAVE_FCNTL_H 1
-
-/* Define if you have the vsnprintf, snprintf functions and they return
- * EOF upon failure.
- */
-#define HAVE_VSNPRINTF 1
-#define HAVE_SNPRINTF 1
-
-/* define if you have sys/fcntl.h */
-#define HAVE_SYS_FCNTL_H 1
-
-#define HAVE_SYS_TYPES_H 1
-#define HAVE_SYS_WAIT_H 1
-#define HAVE_SYS_TIMES_H 1
-
-/* Set these to the appropriate values */
-#define SIZEOF_SHORT 2
-#define SIZEOF_INT 4
-#define SIZEOF_LONG 4
-#define SIZEOF_FLOAT 4
-#define SIZEOF_DOUBLE 8
-
-/* define if you have these. */
-#define HAVE_ATEXIT 1
-#define HAVE_ON_EXIT 1
-#define HAVE_PUTENV 1
-#define HAVE_GETCWD 1
-#define HAVE_TCGETATTR 1
-#define HAVE_TCSETATTR 1
-#define HAVE_CFGETOSPEED 1
-#define HAVE_LSTAT 1
-#define HAVE_KILL 1
-#define HAVE_CHOWN 1
-#define HAVE_VSNPRINTF 1
-#define HAVE_POPEN 1
-#define HAVE_UMASK 1
-#define HAVE_READLINK 1
-#define HAVE_TIMES 1
-#define HAVE_GMTIME 1
-#define HAVE_MKFIFO 1
-
-#define HAVE_GETPPID 1
-#define HAVE_GETGID 1
-#define HAVE_GETEGID 1
-#define HAVE_GETEUID 1
-/* #undef HAVE_GETUID */
-
-#define HAVE_SETGID 1
-#define HAVE_SETPGID 1
-#define HAVE_SETUID 1
-
-#define HAVE_ACOSH 1
-#define HAVE_ASINH 1
-#define HAVE_ATANH 1
-
-#define HAVE_DIRENT_H 1
-/* #undef HAVE_SYS_NDIR_H */
-/* #undef HAVE_SYS_DIR_H */
-/* #undef HAVE_NDIR_H */
-
-#define HAVE_DLFCN_H 1
-
-#define HAVE_SYS_UTSNAME_H 1
-#define HAVE_UNAME 1
-
-/* These two are needed on DOS-like systems. Unix does not require them.
- * They are included here for consistency.
- *
-#define HAVE_IO_H
-#define HAVE_PROCESS_H
- */
-
-/* #undef USE_TERMCAP */
-
-/* #undef mode_t */
-/* #undef uid_t */
-/* #undef pid_t */
-/* #undef gid_t */
-
-/* Do we have posix signals? */
-#define HAVE_SIGACTION 1
-#define HAVE_SIGPROCMASK 1
-#define HAVE_SIGEMPTYSET 1
-#define HAVE_SIGADDSET 1
-
-#if defined(HAVE_SIGADDSET) && defined(HAVE_SIGEMPTYSET)
-# if defined(HAVE_SIGACTION) && defined(HAVE_SIGPROCMASK)
-# define SLANG_POSIX_SIGNALS
-# endif
-#endif
-
-/* Define if you need to in order for stat and other things to work. */
-/* #undef _POSIX_SOURCE */
-
-#ifdef _AIX
-# ifndef _POSIX_SOURCE
-# define _POSIX_SOURCE 1
-# endif
-# ifndef _ALL_SOURCE
-# define _ALL_SOURCE
-# endif
-/* This may generate warnings but the fact is that without it, xlc will
- * INCORRECTLY inline many str* functions. */
-/* # undef __STR__ */
-#endif
-
-/* define USE_TERMCAP if you want to use it instead of terminfo. */
-#if defined(sequent) || defined(NeXT)
-# ifndef USE_TERMCAP
-# define USE_TERMCAP
-# endif
-#endif
-
-#if defined(ultrix) && !defined(__GNUC__)
-# ifndef NO_PROTOTYPES
-# define NO_PROTOTYPES
-# endif
-#endif
-
-#ifndef unix
-# define unix 1
-#endif
-
-#ifndef __unix__
-# define __unix__ 1
-#endif
-
-#define _SLANG_SOURCE_ 1
-#endif /* SL_CONFIG_H */
diff --git a/mdk-stage1/slang/jdmacros.h b/mdk-stage1/slang/jdmacros.h
deleted file mode 100644
index 70d491b78..000000000
--- a/mdk-stage1/slang/jdmacros.h
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef _JD_MACROS_H_
-#define _JD_MACROS_H_
-
-#ifndef SLMEMSET
-# ifdef HAVE_MEMSET
-# define SLMEMSET memset
-# else
-# define SLMEMSET SLmemset
-# endif
-#endif
-
-#ifndef SLMEMCHR
-# ifdef HAVE_MEMCHR
-# define SLMEMCHR memchr
-# else
-# define SLMEMCHR SLmemchr
-# endif
-#endif
-
-#ifndef SLMEMCPY
-# ifdef HAVE_MEMCPY
-# define SLMEMCPY memcpy
-# else
-# define SLMEMCPY SLmemcpy
-# endif
-#endif
-
-/* Note: HAVE_MEMCMP requires an unsigned memory comparison!!! */
-#ifndef SLMEMCMP
-# ifdef HAVE_MEMCMP
-# define SLMEMCMP memcmp
-# else
-# define SLMEMCMP SLmemcmp
-# endif
-#endif
-
-#ifndef SLFREE
-# define SLFREE free
-#endif
-
-#ifndef SLMALLOC
-# define SLMALLOC malloc
-#endif
-
-#ifndef SLCALLOC
-# define SLCALLOC calloc
-#endif
-
-#ifndef SLREALLOC
-# define SLREALLOC realloc
-#endif
-
-#endif /* _JD_MACROS_H_ */
diff --git a/mdk-stage1/slang/keywhash.c b/mdk-stage1/slang/keywhash.c
deleted file mode 100644
index 17d94d5a3..000000000
--- a/mdk-stage1/slang/keywhash.c
+++ /dev/null
@@ -1,190 +0,0 @@
-/* Perfect hash generated by command line:
- * ./a.out 1
- */
-#define MIN_HASH_VALUE 2
-#define MAX_HASH_VALUE 118
-#define MIN_KEYWORD_LEN 2
-#define MAX_KEYWORD_LEN 11
-
-static unsigned char Keyword_Hash_Table [256] =
-{
- 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 1, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 9, 7, 1, 8, 2, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 119, 0, 0, 119, 0, 119, 119, 119, 7, 119, 0, 0, 119, 119, 0,
- 119, 119, 0, 0, 0, 0, 119, 119, 0, 119, 119, 119, 119, 119, 119, 2,
- 119, 41, 1, 1, 9, 0, 55, 8, 0, 0, 119, 0, 27, 0, 0, 0,
- 7, 2, 0, 21, 0, 0, 0, 3, 2, 0, 119, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119
-};
-
-static unsigned char keyword_hash (char *s, unsigned int len)
-{
- unsigned int sum;
-
- sum = len;
- while (len)
- {
- len--;
- sum += (unsigned int) Keyword_Hash_Table [(unsigned char)s[len]];
- }
- return sum;
-}
-
-typedef struct
-{
- char *name;
- unsigned int type;
-}
-Keyword_Table_Type;
-
-static Keyword_Table_Type Keyword_Table [/* 117 */] =
-{
- {"or", OR_TOKEN},
- {"not", NOT_TOKEN},
- {NULL,0},
- {"xor", BXOR_TOKEN},
- {"return", RETURN_TOKEN},
- {"exch", EXCH_TOKEN},
- {NULL,0},
- {"continue", CONT_TOKEN},
- {NULL,0},
- {"do", DO_TOKEN},
- {"mod", MOD_TOKEN},
- {"ERROR_BLOCK", ERRBLK_TOKEN},
- {"USER_BLOCK2", USRBLK2_TOKEN},
- {"USER_BLOCK4", USRBLK4_TOKEN},
- {"__tmp", TMP_TOKEN},
- {"pop", POP_TOKEN},
- {NULL,0},
- {"EXIT_BLOCK", EXITBLK_TOKEN},
- {"USER_BLOCK1", USRBLK1_TOKEN},
- {"USER_BLOCK3", USRBLK3_TOKEN},
- {"USER_BLOCK0", USRBLK0_TOKEN},
- {NULL,0},
- {"shr", SHR_TOKEN},
- {"chs", CHS_TOKEN},
- {"sqr", SQR_TOKEN},
- {NULL,0},
- {"struct", STRUCT_TOKEN},
- {NULL,0},
- {NULL,0},
- {"switch", SWITCH_TOKEN},
- {"mul2", MUL2_TOKEN},
- {"sign", SIGN_TOKEN},
- {"using", USING_TOKEN},
- {"while", WHILE_TOKEN},
- {NULL,0},
- {NULL,0},
- {"loop", LOOP_TOKEN},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {"public", PUBLIC_TOKEN},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {"break", BREAK_TOKEN},
- {NULL,0},
- {"do_while", DOWHILE_TOKEN},
- {NULL,0},
- {"shl", SHL_TOKEN},
- {"else", ELSE_TOKEN},
- {"and", AND_TOKEN},
- {"orelse", ORELSE_TOKEN},
- {"private", PRIVATE_TOKEN},
- {NULL,0},
- {"if", IF_TOKEN},
- {"for", FOR_TOKEN},
- {"!if", IFNOT_TOKEN},
- {NULL,0},
- {"_for", _FOR_TOKEN},
- {"forever", FOREVER_TOKEN},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {"abs", ABS_TOKEN},
- {"case", CASE_TOKEN},
- {NULL,0},
- {"static", STATIC_TOKEN},
- {"define", DEFINE_TOKEN},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {"typedef", TYPEDEF_TOKEN},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {"foreach", FOREACH_TOKEN},
- {"andelse", ANDELSE_TOKEN},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {NULL,0},
- {"variable", VARIABLE_TOKEN},
-};
-
-static Keyword_Table_Type *is_keyword (char *str, unsigned int len)
-{
- unsigned int hash;
- char *name;
- Keyword_Table_Type *kw;
-
- if ((len < MIN_KEYWORD_LEN)
- || (len > MAX_KEYWORD_LEN))
- return NULL;
-
- hash = keyword_hash (str, len);
- if ((hash > MAX_HASH_VALUE) || (hash < MIN_HASH_VALUE))
- return NULL;
-
- kw = &Keyword_Table[hash - MIN_HASH_VALUE];
- if ((NULL != (name = kw->name))
- && (*str == *name)
- && (0 == strcmp (str, name)))
- return kw;
- return NULL;
-}
diff --git a/mdk-stage1/slang/sl-feat.h b/mdk-stage1/slang/sl-feat.h
deleted file mode 100644
index 511d72451..000000000
--- a/mdk-stage1/slang/sl-feat.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Setting this to 1 enables automatic support for associative arrays.
- * If this is set to 0, an application must explicitly enable associative
- * array support via SLang_init_slassoc.
- */
-#define SLANG_HAS_ASSOC_ARRAYS 1
-
-#define SLANG_HAS_COMPLEX 1
-#define SLANG_HAS_FLOAT 1
-
-/* This is the old space-speed trade off. To reduce memory usage and code
- * size, set this to zero.
- */
-#define _SLANG_OPTIMIZE_FOR_SPEED 2
-
-#define _SLANG_USE_INLINE_CODE 1
-
-/* This is experimental. It adds extra information for tracking down
- * errors.
- */
-#define _SLANG_HAS_DEBUG_CODE 1
-
-/* Allow optimizations based upon the __tmp operator. */
-#define _SLANG_USE_TMP_OPTIMIZATION 1
-
-/* Setting this to one will map 8 bit vtxxx terminals to 7 bit. Terminals
- * such as the vt320 can be set up to output the two-character escape sequence
- * encoded as 'ESC [' as single character. Setting this variable to 1 will
- * insert code to map such characters to the 7 bit equivalent.
- * This affects just input characters in the range 128-160 on non PC
- * systems.
- */
-#if defined(VMS) || defined(AMIGA)
-# define _SLANG_MAP_VTXXX_8BIT 1
-#else
-# define _SLANG_MAP_VTXXX_8BIT 0
-#endif
-
-/* Add support for color terminals that cannot do background color erases
- * Such terminals are poorly designed and are slowly disappearing but they
- * are still quite common. For example, screen is one of them!
- *
- * This is experimental. In particular, it is not known to work if
- * KANJI suupport is enabled.
- */
-#if !defined(IBMPC_SYSTEM)
-# define SLTT_HAS_NON_BCE_SUPPORT 1
-#else
-# define SLTT_HAS_NON_BCE_SUPPORT 0
-#endif
-
-/* If you want slang to assume that an xterm always has the background color
- * erase feature, then set this to 1. Otherwise, it will check the terminfo
- * database. This may or may not be a good idea since most good color xterms
- * support bce but many terminfo systems do not support it.
- */
-#define SLTT_XTERM_ALWAYS_BCE 0
-
-/* Set this to 1 to enable Kanji support. See above comment. */
-#define SLANG_HAS_KANJI_SUPPORT 0
-
diff --git a/mdk-stage1/slang/slang.c b/mdk-stage1/slang/slang.c
deleted file mode 100644
index 6edc7df37..000000000
--- a/mdk-stage1/slang/slang.c
+++ /dev/null
@@ -1,5547 +0,0 @@
-/* -*- mode: C; mode: fold; -*- */
-/* slang.c --- guts of S-Lang interpreter */
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#if SLANG_HAS_FLOAT
-# include <math.h>
-#endif
-
-#include "slang.h"
-#include "_slang.h"
-
-#define USE_COMBINED_BYTECODES 0
-
-struct _SLBlock_Type;
-
-typedef struct
-{
- struct _SLBlock_Type *body;
- unsigned int num_refs;
-}
-_SLBlock_Header_Type;
-
-typedef struct
-{
- char *name;
- SLang_Name_Type *next;
- char name_type;
-
- union
- {
- _SLBlock_Header_Type *header; /* body of function */
- char *autoload_filename;
- }
- v;
-#if _SLANG_HAS_DEBUG_CODE
- char *file;
-#endif
-#define SLANG_MAX_LOCAL_VARIABLES 254
-#define AUTOLOAD_NUM_LOCALS (SLANG_MAX_LOCAL_VARIABLES + 1)
- unsigned char nlocals; /* number of local variables */
- unsigned char nargs; /* number of arguments */
-}
-_SLang_Function_Type;
-
-typedef struct
-{
- char *name;
- SLang_Name_Type *next;
- char name_type;
-
- SLang_Object_Type obj;
-}
-SLang_Global_Var_Type;
-
-typedef struct
-{
- char *name;
- SLang_Name_Type *next;
- char name_type;
-
- int local_var_number;
-}
-SLang_Local_Var_Type;
-
-typedef struct _SLBlock_Type
-{
- unsigned char bc_main_type;
- unsigned char bc_sub_type;
- union
- {
- struct _SLBlock_Type *blk;
- int i_blk;
-
- SLang_Name_Type *nt_blk;
- SLang_App_Unary_Type *nt_unary_blk;
- SLang_Intrin_Var_Type *nt_ivar_blk;
- SLang_Intrin_Fun_Type *nt_ifun_blk;
- SLang_Global_Var_Type *nt_gvar_blk;
- SLang_IConstant_Type *iconst_blk;
- SLang_DConstant_Type *dconst_blk;
- _SLang_Function_Type *nt_fun_blk;
-
- VOID_STAR ptr_blk;
- char *s_blk;
- SLang_BString_Type *bs_blk;
-
-#if SLANG_HAS_FLOAT
- double *double_blk; /*literal double is a pointer */
-#endif
- float float_blk;
- long l_blk;
- struct _SLang_Struct_Type *struct_blk;
- int (*call_function)(void);
- }
- b;
-}
-SLBlock_Type;
-
-/* Debugging and tracing variables */
-
-void (*SLang_Enter_Function)(char *) = NULL;
-void (*SLang_Exit_Function)(char *) = NULL;
-/* If non null, these call C functions before and after a slang function. */
-
-int _SLang_Trace = 0;
-/* If _SLang_Trace = -1, do not trace intrinsics */
-static int Trace_Mode = 0;
-
-static char *Trace_Function; /* function to be traced */
-int SLang_Traceback = 0;
-/* non zero means do traceback. If less than 0, do not show local variables */
-
-/* These variables handle _NARGS processing by the parser */
-int SLang_Num_Function_Args;
-static int *Num_Args_Stack;
-static unsigned int Recursion_Depth;
-static SLang_Object_Type *Frame_Pointer;
-static int Next_Function_Num_Args;
-static unsigned int Frame_Pointer_Depth;
-static unsigned int *Frame_Pointer_Stack;
-
-static int Lang_Break_Condition = 0;
-/* true if any one below is true. This keeps us from testing 3 variables.
- * I know this can be perfomed with a bitmapped variable, but...
- */
-static int Lang_Break = 0;
-static int Lang_Return = 0;
-/* static int Lang_Continue = 0; */
-
-SLang_Object_Type *_SLRun_Stack;
-SLang_Object_Type *_SLStack_Pointer;
-static SLang_Object_Type *_SLStack_Pointer_Max;
-
-/* Might want to increase this. */
-static SLang_Object_Type Local_Variable_Stack[SLANG_MAX_LOCAL_STACK];
-static SLang_Object_Type *Local_Variable_Frame = Local_Variable_Stack;
-
-static void free_function_header (_SLBlock_Header_Type *);
-
-void (*SLang_Dump_Routine)(char *);
-
-static void call_dump_routine (char *fmt, ...)
-{
- char buf[1024];
- va_list ap;
-
- va_start (ap, fmt);
- if (SLang_Dump_Routine != NULL)
- {
- (void) _SLvsnprintf (buf, sizeof (buf), fmt, ap);
- (*SLang_Dump_Routine) (buf);
- }
- else
- {
- vfprintf (stderr, fmt, ap);
- fflush (stderr);
- }
- va_end (ap);
-}
-
-static void do_traceback (char *, unsigned int, char *);
-static int init_interpreter (void);
-
-/*{{{ push/pop/etc stack manipulation functions */
-
-/* This routine is assumed to work even in the presence of a SLang_Error. */
-_INLINE_
-int SLang_pop (SLang_Object_Type *x)
-{
- register SLang_Object_Type *y;
-
- y = _SLStack_Pointer;
- if (y == _SLRun_Stack)
- {
- if (SLang_Error == 0) SLang_Error = SL_STACK_UNDERFLOW;
- x->data_type = 0;
- return -1;
- }
- y--;
- *x = *y;
-
- _SLStack_Pointer = y;
- return 0;
-}
-
-static int pop_ctrl_integer (int *i)
-{
- int type;
- SLang_Class_Type *cl;
-#if _SLANG_OPTIMIZE_FOR_SPEED
- register SLang_Object_Type *y;
-
- /* Most of the time, either an integer or a char will be on the stack.
- * Optimize these cases.
- */
- y = _SLStack_Pointer;
- if (y == _SLRun_Stack)
- {
- if (SLang_Error == 0) SLang_Error = SL_STACK_UNDERFLOW;
- return -1;
- }
- y--;
-
- type = y->data_type;
- if (type == SLANG_INT_TYPE)
- {
- _SLStack_Pointer = y;
- *i = y->v.int_val;
- return 0;
- }
- if (type == SLANG_CHAR_TYPE)
- {
- _SLStack_Pointer = y;
- *i = y->v.char_val;
- return 0;
- }
-#else
- if (-1 == (type = SLang_peek_at_stack ()))
- return -1;
-#endif
-
- cl = _SLclass_get_class ((unsigned char) type);
- if (cl->cl_to_bool == NULL)
- {
- SLang_verror (SL_TYPE_MISMATCH,
- "%s cannot be used in a boolean context",
- cl->cl_name);
- return -1;
- }
- return cl->cl_to_bool ((unsigned char) type, i);
-}
-
-_INLINE_
-int SLang_peek_at_stack (void)
-{
- if (_SLStack_Pointer == _SLRun_Stack)
- {
- if (SLang_Error == 0)
- SLang_Error = SL_STACK_UNDERFLOW;
- return -1;
- }
-
- return (_SLStack_Pointer - 1)->data_type;
-}
-
-int SLang_peek_at_stack1 (void)
-{
- int type;
-
- type = SLang_peek_at_stack ();
- if (type == SLANG_ARRAY_TYPE)
- type = (_SLStack_Pointer - 1)->v.array_val->data_type;
-
- return type;
-}
-
-_INLINE_
-void SLang_free_object (SLang_Object_Type *obj)
-{
- unsigned char data_type;
- SLang_Class_Type *cl;
-
- if (obj == NULL) return;
- data_type = obj->data_type;
-#if _SLANG_OPTIMIZE_FOR_SPEED
- if (SLANG_CLASS_TYPE_SCALAR == _SLclass_Class_Type [data_type])
- return;
- if (data_type == SLANG_STRING_TYPE)
- {
- SLang_free_slstring (obj->v.s_val);
- return;
- }
-#endif
- cl = _SLclass_get_class (data_type);
-#if !_SLANG_OPTIMIZE_FOR_SPEED
- if (cl->cl_class_type != SLANG_CLASS_TYPE_SCALAR)
-#endif
- (*cl->cl_destroy) (data_type, (VOID_STAR) &obj->v);
-}
-
-_INLINE_
-int SLang_push (SLang_Object_Type *x)
-{
- register SLang_Object_Type *y;
- y = _SLStack_Pointer;
-
- /* if there is a SLang_Error, probably not much harm will be done
- if it is ignored here */
- /* if (SLang_Error) return; */
-
- /* flag it now */
- if (y >= _SLStack_Pointer_Max)
- {
- if (!SLang_Error) SLang_Error = SL_STACK_OVERFLOW;
- return -1;
- }
-
- *y = *x;
- _SLStack_Pointer = y + 1;
- return 0;
-}
-
-/* _INLINE_ */
-int SLclass_push_ptr_obj (unsigned char type, VOID_STAR pval)
-{
- register SLang_Object_Type *y;
- y = _SLStack_Pointer;
-
- if (y >= _SLStack_Pointer_Max)
- {
- if (!SLang_Error) SLang_Error = SL_STACK_OVERFLOW;
- return -1;
- }
-
- y->data_type = type;
- y->v.ptr_val = pval;
-
- _SLStack_Pointer = y + 1;
- return 0;
-}
-
-_INLINE_
-int SLclass_push_int_obj (unsigned char type, int x)
-{
- register SLang_Object_Type *y;
- y = _SLStack_Pointer;
-
- if (y >= _SLStack_Pointer_Max)
- {
- if (!SLang_Error) SLang_Error = SL_STACK_OVERFLOW;
- return -1;
- }
-
- y->data_type = type;
- y->v.int_val = x;
-
- _SLStack_Pointer = y + 1;
- return 0;
-}
-
-_INLINE_
-int _SLang_pop_object_of_type (unsigned char type, SLang_Object_Type *obj,
- int allow_arrays)
-{
- register SLang_Object_Type *y;
-
- y = _SLStack_Pointer;
- if (y == _SLRun_Stack)
- return SLang_pop (obj);
- y--;
- if (y->data_type != type)
- {
-#if _SLANG_OPTIMIZE_FOR_SPEED
- /* This is an implicit typecast. We do not want to typecast
- * floats to ints implicitly.
- */
- if (_SLarith_Is_Arith_Type [type]
- && _SLarith_Is_Arith_Type [y->data_type]
- && (_SLarith_Is_Arith_Type [type] >= _SLarith_Is_Arith_Type[y->data_type]))
- {
- /* This should not fail */
- (void) _SLarith_typecast (y->data_type, (VOID_STAR)&y->v, 1,
- type, (VOID_STAR)&obj->v);
- obj->data_type = type;
- _SLStack_Pointer = y;
- return 0;
- }
-#endif
-
- if ((allow_arrays == 0)
- || (y->data_type != SLANG_ARRAY_TYPE)
- || (y->v.array_val->data_type != type))
- if (-1 == SLclass_typecast (type, 1, 0))
- return -1;
- }
- *obj = *y;
- _SLStack_Pointer = y;
- return 0;
-}
-
-/* This function reverses the top n items on the stack and returns a
- * an offset from the start of the stack to the last item.
- */
-int SLreverse_stack (int n)
-{
- SLang_Object_Type *otop, *obot, tmp;
-
- otop = _SLStack_Pointer;
- if ((n > otop - _SLRun_Stack) || (n < 0))
- {
- SLang_Error = SL_STACK_UNDERFLOW;
- return -1;
- }
- obot = otop - n;
- otop--;
- while (otop > obot)
- {
- tmp = *obot;
- *obot = *otop;
- *otop = tmp;
- otop--;
- obot++;
- }
- return (int) ((_SLStack_Pointer - n) - _SLRun_Stack);
-}
-
-_INLINE_
-int SLroll_stack (int np)
-{
- int n, i;
- SLang_Object_Type *otop, *obot, tmp;
-
- if ((n = abs(np)) <= 1) return 0; /* identity */
-
- obot = otop = _SLStack_Pointer;
- i = n;
- while (i != 0)
- {
- if (obot <= _SLRun_Stack)
- {
- SLang_Error = SL_STACK_UNDERFLOW;
- return -1;
- }
- obot--;
- i--;
- }
- otop--;
-
- if (np > 0)
- {
- /* Put top on bottom and roll rest up. */
- tmp = *otop;
- while (otop > obot)
- {
- *otop = *(otop - 1);
- otop--;
- }
- *otop = tmp;
- }
- else
- {
- /* Put bottom on top and roll rest down. */
- tmp = *obot;
- while (obot < otop)
- {
- *obot = *(obot + 1);
- obot++;
- }
- *obot = tmp;
- }
- return 0;
-}
-
-int _SLstack_depth (void)
-{
- return (int) (_SLStack_Pointer - _SLRun_Stack);
-}
-
-int SLdup_n (int n)
-{
- SLang_Object_Type *bot, *top;
-
- if (n <= 0)
- return 0;
-
- top = _SLStack_Pointer;
- if (top < _SLRun_Stack + n)
- {
- if (SLang_Error == 0)
- SLang_Error = SL_STACK_UNDERFLOW;
- return -1;
- }
- if (top + n > _SLStack_Pointer_Max)
- {
- if (SLang_Error == 0)
- SLang_Error = SL_STACK_OVERFLOW;
- return -1;
- }
- bot = top - n;
-
- while (bot < top)
- {
- SLang_Class_Type *cl;
- unsigned char data_type = bot->data_type;
-
-#if _SLANG_OPTIMIZE_FOR_SPEED
- if (SLANG_CLASS_TYPE_SCALAR == _SLclass_Class_Type [data_type])
- {
- *_SLStack_Pointer++ = *bot++;
- continue;
- }
-#endif
- cl = _SLclass_get_class (data_type);
- if (-1 == (*cl->cl_push) (data_type, (VOID_STAR) &bot->v))
- return -1;
- bot++;
- }
- return 0;
-}
-
-/*}}}*/
-
-/*{{{ inner interpreter and support functions */
-
-_INLINE_
-int _SL_increment_frame_pointer (void)
-{
- if (Recursion_Depth >= SLANG_MAX_RECURSIVE_DEPTH)
- {
- SLang_verror (SL_STACK_OVERFLOW, "Num Args Stack Overflow");
- return -1;
- }
- Num_Args_Stack [Recursion_Depth] = SLang_Num_Function_Args;
-
- SLang_Num_Function_Args = Next_Function_Num_Args;
- Next_Function_Num_Args = 0;
- Recursion_Depth++;
- return 0;
-}
-
-_INLINE_
-int _SL_decrement_frame_pointer (void)
-{
- if (Recursion_Depth == 0)
- {
- SLang_verror (SL_STACK_UNDERFLOW, "Num Args Stack Underflow");
- return -1;
- }
-
- Recursion_Depth--;
- if (Recursion_Depth < SLANG_MAX_RECURSIVE_DEPTH)
- SLang_Num_Function_Args = Num_Args_Stack [Recursion_Depth];
-
- return 0;
-}
-
-_INLINE_
-int SLang_start_arg_list (void)
-{
- if (Frame_Pointer_Depth < SLANG_MAX_RECURSIVE_DEPTH)
- {
- Frame_Pointer_Stack [Frame_Pointer_Depth] = (unsigned int) (Frame_Pointer - _SLRun_Stack);
- Frame_Pointer = _SLStack_Pointer;
- Frame_Pointer_Depth++;
- Next_Function_Num_Args = 0;
- return 0;
- }
-
- SLang_verror (SL_STACK_OVERFLOW, "Frame Stack Overflow");
- return -1;
-}
-
-_INLINE_
-int SLang_end_arg_list (void)
-{
- if (Frame_Pointer_Depth == 0)
- {
- SLang_verror (SL_STACK_UNDERFLOW, "Frame Stack Underflow");
- return -1;
- }
- Frame_Pointer_Depth--;
- if (Frame_Pointer_Depth < SLANG_MAX_RECURSIVE_DEPTH)
- {
- Next_Function_Num_Args = (int) (_SLStack_Pointer - Frame_Pointer);
- Frame_Pointer = _SLRun_Stack + Frame_Pointer_Stack [Frame_Pointer_Depth];
- }
- return 0;
-}
-
-_INLINE_
-static int do_bc_call_direct_frame (int (*f)(void))
-{
- if ((0 == SLang_end_arg_list ())
- && (0 == _SL_increment_frame_pointer ()))
- {
- (void) (*f) ();
- _SL_decrement_frame_pointer ();
- }
- if (SLang_Error)
- return -1;
- return 0;
-}
-
-static int do_name_type_error (SLang_Name_Type *nt)
-{
- char buf[256];
- if (nt != NULL)
- {
- (void) _SLsnprintf (buf, sizeof (buf), "(Error occurred processing %s)", nt->name);
- do_traceback (buf, 0, NULL);
- }
- return -1;
-}
-
-/* local and global variable assignments */
-
-static int do_binary_ab (int op, SLang_Object_Type *obja, SLang_Object_Type *objb)
-{
- SLang_Class_Type *a_cl, *b_cl, *c_cl;
- unsigned char b_data_type, a_data_type, c_data_type;
- int (*binary_fun) (int,
- unsigned char, VOID_STAR, unsigned int,
- unsigned char, VOID_STAR, unsigned int,
- VOID_STAR);
- VOID_STAR pa;
- VOID_STAR pb;
- VOID_STAR pc;
- int ret;
-
- b_data_type = objb->data_type;
- a_data_type = obja->data_type;
-
-#if _SLANG_OPTIMIZE_FOR_SPEED
- if (_SLarith_Is_Arith_Type[a_data_type]
- && _SLarith_Is_Arith_Type[b_data_type])
- {
- int status;
- status = _SLarith_bin_op (obja, objb, op);
- if (status != 1)
- return status;
- /* drop and try it the hard way */
- }
-#endif
-
- a_cl = _SLclass_get_class (a_data_type);
- if (a_data_type == b_data_type)
- b_cl = a_cl;
- else
- b_cl = _SLclass_get_class (b_data_type);
-
- if (NULL == (binary_fun = _SLclass_get_binary_fun (op, a_cl, b_cl, &c_cl, 1)))
- return -1;
-
- c_data_type = c_cl->cl_data_type;
-
-#if _SLANG_OPTIMIZE_FOR_SPEED
- if (SLANG_CLASS_TYPE_SCALAR == _SLclass_Class_Type [a_data_type])
- pa = (VOID_STAR) &obja->v;
- else
-#endif
- pa = _SLclass_get_ptr_to_value (a_cl, obja);
-
-#if _SLANG_OPTIMIZE_FOR_SPEED
- if (SLANG_CLASS_TYPE_SCALAR == _SLclass_Class_Type [b_data_type])
- pb = (VOID_STAR) &objb->v;
- else
-#endif
- pb = _SLclass_get_ptr_to_value (b_cl, objb);
-
- pc = c_cl->cl_transfer_buf;
-
- if (1 != (*binary_fun) (op,
- a_data_type, pa, 1,
- b_data_type, pb, 1,
- pc))
- {
- SLang_verror (SL_NOT_IMPLEMENTED,
- "Binary operation between %s and %s failed",
- a_cl->cl_name, b_cl->cl_name);
-
- return -1;
- }
-
- /* apush will create a copy, so make sure we free after the push */
- ret = (*c_cl->cl_apush)(c_data_type, pc);
-#if _SLANG_OPTIMIZE_FOR_SPEED
- if (SLANG_CLASS_TYPE_SCALAR != _SLclass_Class_Type [c_data_type])
-#endif
- (*c_cl->cl_adestroy)(c_data_type, pc);
-
- return ret;
-}
-
-_INLINE_
-static void do_binary (int op)
-{
- SLang_Object_Type obja, objb;
-
- if (SLang_pop (&objb)) return;
- if (0 == SLang_pop (&obja))
- {
- (void) do_binary_ab (op, &obja, &objb);
-#if _SLANG_OPTIMIZE_FOR_SPEED
- if (SLANG_CLASS_TYPE_SCALAR != _SLclass_Class_Type [obja.data_type])
-#endif
- SLang_free_object (&obja);
- }
-#if _SLANG_OPTIMIZE_FOR_SPEED
- if (SLANG_CLASS_TYPE_SCALAR != _SLclass_Class_Type [objb.data_type])
-#endif
- SLang_free_object (&objb);
-}
-
-static int do_unary_op (int op, SLang_Object_Type *obj, int unary_type)
-{
- int (*f) (int, unsigned char, VOID_STAR, unsigned int, VOID_STAR);
- VOID_STAR pa;
- VOID_STAR pb;
- SLang_Class_Type *a_cl, *b_cl;
- unsigned char a_type, b_type;
- int ret;
-
- a_type = obj->data_type;
- a_cl = _SLclass_get_class (a_type);
-
- if (NULL == (f = _SLclass_get_unary_fun (op, a_cl, &b_cl, unary_type)))
- return -1;
-
- b_type = b_cl->cl_data_type;
-
-#if _SLANG_OPTIMIZE_FOR_SPEED
- if (SLANG_CLASS_TYPE_SCALAR == _SLclass_Class_Type [a_type])
- pa = (VOID_STAR) &obj->v;
- else
-#endif
- pa = _SLclass_get_ptr_to_value (a_cl, obj);
-
- pb = b_cl->cl_transfer_buf;
-
- if (1 != (*f) (op, a_type, pa, 1, pb))
- {
- SLang_verror (SL_NOT_IMPLEMENTED,
- "Unary operation for %s failed", a_cl->cl_name);
- return -1;
- }
-
- ret = (*b_cl->cl_apush)(b_type, pb);
- /* cl_apush creates a copy, so make sure we call cl_adestroy */
-#if _SLANG_OPTIMIZE_FOR_SPEED
- if (SLANG_CLASS_TYPE_SCALAR != _SLclass_Class_Type [b_type])
-#endif
- (*b_cl->cl_adestroy)(b_type, pb);
-
- return ret;
-}
-
-_INLINE_
-static int do_unary (int op, int unary_type)
-{
- SLang_Object_Type obj;
- int ret;
-
- if (-1 == SLang_pop (&obj)) return -1;
- ret = do_unary_op (op, &obj, unary_type);
-#if _SLANG_OPTIMIZE_FOR_SPEED
- if (SLANG_CLASS_TYPE_SCALAR != _SLclass_Class_Type [obj.data_type])
-#endif
- SLang_free_object (&obj);
- return ret;
-}
-
-static int do_assignment_binary (int op, SLang_Object_Type *obja_ptr)
-{
- SLang_Object_Type objb;
- int ret;
-
- if (SLang_pop (&objb))
- return -1;
-
- ret = do_binary_ab (op, obja_ptr, &objb);
-#if _SLANG_OPTIMIZE_FOR_SPEED
- if (SLANG_CLASS_TYPE_SCALAR != _SLclass_Class_Type [objb.data_type])
-#endif
- SLang_free_object (&objb);
- return ret;
-}
-
-/* The order of these is assumed to match the binary operators
- * defined in slang.h
- */
-static int
-map_assignment_op_to_binary (unsigned char op_type, int *op, int *is_unary)
-{
- *is_unary = 0;
- switch (op_type)
- {
- case _SLANG_BCST_PLUSEQS:
- case _SLANG_BCST_MINUSEQS:
- case _SLANG_BCST_TIMESEQS:
- case _SLANG_BCST_DIVEQS:
- *op = SLANG_PLUS + (op_type - _SLANG_BCST_PLUSEQS);
- break;
-
- case _SLANG_BCST_BOREQS:
- *op = SLANG_BOR;
- break;
-
- case _SLANG_BCST_BANDEQS:
- *op = SLANG_BAND;
- break;
-
- case _SLANG_BCST_POST_MINUSMINUS:
- case _SLANG_BCST_MINUSMINUS:
- *op = SLANG_MINUS;
- *is_unary = 1;
- break;
-
- case _SLANG_BCST_PLUSPLUS:
- case _SLANG_BCST_POST_PLUSPLUS:
- *op = SLANG_PLUS;
- *is_unary = 1;
- break;
-
- default:
- SLang_verror (SL_NOT_IMPLEMENTED, "Assignment operator not implemented");
- return -1;
- }
- return 0;
-}
-
-static int
-perform_lvalue_operation (unsigned char op_type, SLang_Object_Type *obja_ptr)
-{
- switch (op_type)
- {
- case _SLANG_BCST_ASSIGN:
- break;
-
- /* The order of these is assumed to match the binary operators
- * defined in slang.h
- */
- case _SLANG_BCST_PLUSEQS:
- case _SLANG_BCST_MINUSEQS:
- case _SLANG_BCST_TIMESEQS:
- case _SLANG_BCST_DIVEQS:
- if (-1 == do_assignment_binary (SLANG_PLUS + (op_type - _SLANG_BCST_PLUSEQS), obja_ptr))
- return -1;
- break;
-
- case _SLANG_BCST_BOREQS:
- if (-1 == do_assignment_binary (SLANG_BOR, obja_ptr))
- return -1;
- break;
-
- case _SLANG_BCST_BANDEQS:
- if (-1 == do_assignment_binary (SLANG_BAND, obja_ptr))
- return -1;
- break;
-
- case _SLANG_BCST_PLUSPLUS:
- case _SLANG_BCST_POST_PLUSPLUS:
-#if _SLANG_OPTIMIZE_FOR_SPEED
- if (obja_ptr->data_type == SLANG_INT_TYPE)
- return SLclass_push_int_obj (SLANG_INT_TYPE, obja_ptr->v.int_val + 1);
-#endif
- if (-1 == do_unary_op (SLANG_PLUSPLUS, obja_ptr, _SLANG_BC_UNARY))
- return -1;
- break;
-
- case _SLANG_BCST_MINUSMINUS:
- case _SLANG_BCST_POST_MINUSMINUS:
-#if _SLANG_OPTIMIZE_FOR_SPEED
- if (obja_ptr->data_type == SLANG_INT_TYPE)
- return SLclass_push_int_obj (SLANG_INT_TYPE, obja_ptr->v.int_val - 1);
-#endif
- if (-1 == do_unary_op (SLANG_MINUSMINUS, obja_ptr, _SLANG_BC_UNARY))
- return -1;
- break;
-
- default:
- SLang_Error = SL_INTERNAL_ERROR;
- return -1;
- }
- return 0;
-}
-
-_INLINE_
-static int
-set_lvalue_obj (unsigned char op_type, SLang_Object_Type *obja_ptr)
-{
- if (op_type != _SLANG_BCST_ASSIGN)
- {
- if (-1 == perform_lvalue_operation (op_type, obja_ptr))
- return -1;
- }
-#if _SLANG_OPTIMIZE_FOR_SPEED
- if (SLANG_CLASS_TYPE_SCALAR != _SLclass_Class_Type [obja_ptr->data_type])
-#endif
- SLang_free_object (obja_ptr);
-
- return SLang_pop(obja_ptr);
-}
-
-static int
-set_struct_lvalue (SLBlock_Type *bc_blk)
-{
- int type;
- SLang_Class_Type *cl;
- char *name;
- int op;
-
- if (-1 == (type = SLang_peek_at_stack ()))
- return -1;
-
- cl = _SLclass_get_class (type);
- if ((cl->cl_sput == NULL)
- || (cl->cl_sget == NULL))
- {
- SLang_verror (SL_NOT_IMPLEMENTED,
- "%s does not support structure access",
- cl->cl_name);
- SLdo_pop_n (2); /* object plus what was to be assigned */
- return -1;
- }
- name = bc_blk->b.s_blk;
- op = bc_blk->bc_sub_type;
-
- if (op != _SLANG_BCST_ASSIGN)
- {
- /* We have something like (A.x += b) or (A.x++). In either case,
- * we need A.x.
- */
- SLang_Object_Type obj_A;
- SLang_Object_Type obj;
-
- if (-1 == SLang_pop (&obj_A))
- return -1;
-
- if ((-1 == _SLpush_slang_obj (&obj_A))
- || (-1 == cl->cl_sget ((unsigned char) type, name))
- || (-1 == SLang_pop (&obj)))
- {
- SLang_free_object (&obj_A);
- return -1;
- }
- /* Now the value of A.x is in obj. */
- if (-1 == perform_lvalue_operation (op, &obj))
- {
- SLang_free_object (&obj);
- SLang_free_object (&obj_A);
- return -1;
- }
- SLang_free_object (&obj);
- /* The result of the operation is now on the stack.
- * Perform assignment */
- if (-1 == SLang_push (&obj_A))
- {
- SLang_free_object (&obj_A);
- return -1;
- }
- }
-
- return (*cl->cl_sput) ((unsigned char) type, name);
-}
-
-static int make_unit_object (SLang_Object_Type *a, SLang_Object_Type *u)
-{
- unsigned char type;
-
- type = a->data_type;
- if (type == SLANG_ARRAY_TYPE)
- type = a->v.array_val->data_type;
-
- u->data_type = type;
- switch (type)
- {
- case SLANG_UCHAR_TYPE:
- case SLANG_CHAR_TYPE:
- u->v.char_val = 1;
- break;
-
- case SLANG_SHORT_TYPE:
- case SLANG_USHORT_TYPE:
- u->v.short_val = 1;
- break;
-
- case SLANG_LONG_TYPE:
- case SLANG_ULONG_TYPE:
- u->v.long_val = 1;
- break;
-
-#if SLANG_HAS_FLOAT
- case SLANG_FLOAT_TYPE:
- u->v.float_val = 1;
- break;
-
- case SLANG_COMPLEX_TYPE:
- u->data_type = SLANG_DOUBLE_TYPE;
- case SLANG_DOUBLE_TYPE:
- u->v.double_val = 1;
- break;
-#endif
- default:
- u->data_type = SLANG_INT_TYPE;
- u->v.int_val = 1;
- }
- return 0;
-}
-
-
-/* We want to convert 'A[i] op X' to 'A[i] = A[i] op X'. The code that
- * has been generated is: X __args i A __aput-op
- * where __aput-op represents this function. We need to generate:
- * __args i A __eargs __aget X op __args i A __eargs __aput
- * Here, __eargs implies a call to do_bc_call_direct_frame with either
- * the aput or aget function. In addition, __args represents a call to
- * SLang_start_arg_list. Of course, i represents a set of indices.
- *
- * Note: If op is an unary operation (e.g., ++ or --), then X will not
- * b present an will have to be taken to be 1.
- *
- * Implementation note: For efficiency, calls to setup the frame, start
- * arg list will be omitted and SLang_Num_Function_Args will be set.
- * This is ugly but the alternative is much less efficient rendering these
- * assignment operators useless. So, the plan is to roll the stack to get X,
- * then duplicate the next N values, call __aget followed by op X, finally
- * calling __aput. Hence, the sequence is:
- *
- * start: X i .. j A
- * dupN: X i .. j A i .. j A
- * __aget: X i .. j A Y
- * roll: i .. j A Y X
- * op: i .. j A Z
- * roll: Z i .. j A
- * __aput:
- */
-static int
-set_array_lvalue (int op)
-{
- SLang_Object_Type x, y;
- int num_args, is_unary;
-
- if (-1 == map_assignment_op_to_binary (op, &op, &is_unary))
- return -1;
-
- /* Grab the indices and the array. Do not start a new frame. */
- if (-1 == SLang_end_arg_list ())
- return -1;
- num_args = Next_Function_Num_Args;
- Next_Function_Num_Args = 0;
-
- if (-1 == SLdup_n (num_args))
- return -1;
-
- SLang_Num_Function_Args = num_args;
- if (-1 == _SLarray_aget ())
- return -1;
-
- if (-1 == SLang_pop (&y))
- return -1;
-
- if (is_unary == 0)
- {
- if ((-1 == SLroll_stack (-(num_args + 1)))
- || (-1 == SLang_pop (&x)))
- {
- SLang_free_object (&y);
- return -1;
- }
- }
- else if (-1 == make_unit_object (&y, &x))
- {
- SLang_free_object (&y);
- return -1;
- }
-
- if (-1 == do_binary_ab (op, &y, &x))
- {
- SLang_free_object (&y);
- SLang_free_object (&x);
- return -1;
- }
-#if _SLANG_OPTIMIZE_FOR_SPEED
- if (SLANG_CLASS_TYPE_SCALAR != _SLclass_Class_Type [y.data_type])
-#endif
- SLang_free_object (&y);
-
-#if _SLANG_OPTIMIZE_FOR_SPEED
- if (SLANG_CLASS_TYPE_SCALAR != _SLclass_Class_Type [x.data_type])
-#endif
- SLang_free_object (&x);
-
- if (-1 == SLroll_stack (num_args + 1))
- return -1;
-
- SLang_Num_Function_Args = num_args;
- return _SLarray_aput ();
-}
-
-
-static int
-set_intrin_lvalue (SLBlock_Type *bc_blk)
-{
- unsigned char op_type;
- SLang_Object_Type obja;
- SLang_Class_Type *cl;
- SLang_Intrin_Var_Type *ivar;
- VOID_STAR intrinsic_addr;
- unsigned char intrinsic_type;
-
- ivar = bc_blk->b.nt_ivar_blk;
-
- intrinsic_type = ivar->type;
- intrinsic_addr = ivar->addr;
-
- op_type = bc_blk->bc_sub_type;
-
- cl = _SLclass_get_class (intrinsic_type);
-
- if (op_type != _SLANG_BCST_ASSIGN)
- {
- /* We want to get the current value into obja. This is the
- * easiest way.
- */
- if ((-1 == (*cl->cl_push) (intrinsic_type, intrinsic_addr))
- || (-1 == SLang_pop (&obja)))
- return -1;
-
- (void) perform_lvalue_operation (op_type, &obja);
- SLang_free_object (&obja);
-
- if (SLang_Error)
- return -1;
- }
-
- return (*cl->cl_pop) (intrinsic_type, intrinsic_addr);
-}
-
-int _SLang_deref_assign (SLang_Ref_Type *ref)
-{
- SLang_Object_Type *objp;
- SLang_Name_Type *nt;
- SLBlock_Type blk;
-
- if (ref->is_global == 0)
- {
- objp = ref->v.local_obj;
- if (objp > Local_Variable_Frame)
- {
- SLang_verror (SL_UNDEFINED_NAME, "Local variable reference is out of scope");
- return -1;
- }
- return set_lvalue_obj (_SLANG_BCST_ASSIGN, objp);
- }
-
- nt = ref->v.nt;
- switch (nt->name_type)
- {
- case SLANG_GVARIABLE:
- case SLANG_PVARIABLE:
- if (-1 == set_lvalue_obj (_SLANG_BCST_ASSIGN,
- &((SLang_Global_Var_Type *)nt)->obj))
- {
- do_name_type_error (nt);
- return -1;
- }
- break;
-
- case SLANG_IVARIABLE:
- blk.b.nt_blk = nt;
- blk.bc_sub_type = _SLANG_BCST_ASSIGN;
- if (-1 == set_intrin_lvalue (&blk))
- {
- do_name_type_error (nt);
- return -1;
- }
- break;
-
- case SLANG_LVARIABLE:
- SLang_Error = SL_INTERNAL_ERROR;
- /* set_intrin_lvalue (&blk); */
- return -1;
-
- case SLANG_RVARIABLE:
- default:
- SLang_verror (SL_READONLY_ERROR, "deref assignment to %s not allowed", nt->name);
- return -1;
- }
-
- return 0;
-}
-
-static void set_deref_lvalue (SLBlock_Type *bc_blk)
-{
- SLang_Object_Type *objp;
- SLang_Ref_Type *ref;
-
- switch (bc_blk->bc_sub_type)
- {
- case SLANG_LVARIABLE:
- objp = (Local_Variable_Frame - bc_blk->b.i_blk);
- break;
- case SLANG_GVARIABLE:
- case SLANG_PVARIABLE:
- objp = &bc_blk->b.nt_gvar_blk->obj;
- break;
- default:
- SLang_Error = SL_INTERNAL_ERROR;
- return;
- }
-
- if (-1 == _SLpush_slang_obj (objp))
- return;
-
- if (-1 == SLang_pop_ref (&ref))
- return;
- (void) _SLang_deref_assign (ref);
- SLang_free_ref (ref);
-}
-
-static int push_struct_field (char *name)
-{
- int type;
- SLang_Class_Type *cl;
-
- if (-1 == (type = SLang_peek_at_stack ()))
- return -1;
-
- cl = _SLclass_get_class ((unsigned char) type);
- if (cl->cl_sget == NULL)
- {
- SLang_verror (SL_NOT_IMPLEMENTED,
- "%s does not permit structure access",
- cl->cl_name);
- SLdo_pop_n (2);
- return -1;
- }
-
- return (*cl->cl_sget) ((unsigned char) type, name);
-}
-
-static void trace_dump (char *format, char *name, SLang_Object_Type *objs, int n, int dir)
-{
- unsigned int len;
- char prefix [52];
-
- len = Trace_Mode - 1;
- if (len + 2 >= sizeof (prefix))
- len = sizeof (prefix) - 2;
-
- SLMEMSET (prefix, ' ', len);
- prefix[len] = 0;
-
- call_dump_routine (prefix);
- call_dump_routine (format, name, n);
-
- if (n > 0)
- {
- prefix[len] = ' ';
- len++;
- prefix[len] = 0;
-
- _SLdump_objects (prefix, objs, n, dir);
- }
-}
-
-/* Pop a data item from the stack and return a pointer to it.
- * Strings are not freed from stack so use another routine to do it.
- */
-static VOID_STAR pop_pointer (SLang_Object_Type *obj, unsigned char type)
-{
-#ifndef _SLANG_OPTIMIZE_FOR_SPEED
- SLang_Class_Type *cl;
-#endif
-
- SLang_Array_Type *at;
-
- /* Arrays are special. Allow scalars to automatically convert to arrays.
- */
- if (type == SLANG_ARRAY_TYPE)
- {
- if (-1 == SLang_pop_array (&at, 1))
- return NULL;
- obj->data_type = SLANG_ARRAY_TYPE;
- return obj->v.ptr_val = (VOID_STAR) at;
- }
-
- if (type == 0)
- {
- /* This happens when an intrinsic is declared without any information
- * regarding parameter types.
- */
- if (-1 == SLang_pop (obj))
- return NULL;
- type = obj->data_type;
- }
- else if (-1 == _SLang_pop_object_of_type (type, obj, 0))
- return NULL;
-
-#if _SLANG_OPTIMIZE_FOR_SPEED
- type = _SLclass_Class_Type [type];
-#else
- type = _SLclass_get_class (type)->cl_class_type;
-#endif
-
- if (type == SLANG_CLASS_TYPE_SCALAR)
- return (VOID_STAR) &obj->v;
- else if (type == SLANG_CLASS_TYPE_MMT)
- return SLang_object_from_mmt (obj->v.ref);
- else
- return obj->v.ptr_val;
-}
-
-/* This is ugly. Does anyone have a advice for a cleaner way of doing
- * this??
- */
-typedef void (*VF0_Type)(void);
-typedef void (*VF1_Type)(VOID_STAR);
-typedef void (*VF2_Type)(VOID_STAR, VOID_STAR);
-typedef void (*VF3_Type)(VOID_STAR, VOID_STAR, VOID_STAR);
-typedef void (*VF4_Type)(VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR);
-typedef void (*VF5_Type)(VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR);
-typedef void (*VF6_Type)(VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR);
-typedef void (*VF7_Type)(VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR);
-typedef long (*LF0_Type)(void);
-typedef long (*LF1_Type)(VOID_STAR);
-typedef long (*LF2_Type)(VOID_STAR, VOID_STAR);
-typedef long (*LF3_Type)(VOID_STAR, VOID_STAR, VOID_STAR);
-typedef long (*LF4_Type)(VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR);
-typedef long (*LF5_Type)(VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR);
-typedef long (*LF6_Type)(VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR);
-typedef long (*LF7_Type)(VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR);
-#if SLANG_HAS_FLOAT
-typedef double (*FF0_Type)(void);
-typedef double (*FF1_Type)(VOID_STAR);
-typedef double (*FF2_Type)(VOID_STAR, VOID_STAR);
-typedef double (*FF3_Type)(VOID_STAR, VOID_STAR, VOID_STAR);
-typedef double (*FF4_Type)(VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR);
-typedef double (*FF5_Type)(VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR);
-typedef double (*FF6_Type)(VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR);
-typedef double (*FF7_Type)(VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR, VOID_STAR);
-#endif
-
-static int execute_intrinsic_fun (SLang_Intrin_Fun_Type *objf)
-{
-#if SLANG_HAS_FLOAT
- double xf;
-#endif
- VOID_STAR p[SLANG_MAX_INTRIN_ARGS];
- SLang_Object_Type objs[SLANG_MAX_INTRIN_ARGS];
- long ret;
- unsigned char type;
- unsigned int argc;
- unsigned int i;
- FVOID_STAR fptr;
- unsigned char *arg_types;
- int stk_depth;
-
- fptr = objf->i_fun;
- argc = objf->num_args;
- type = objf->return_type;
- arg_types = objf->arg_types;
-
- if (argc > SLANG_MAX_INTRIN_ARGS)
- {
- SLang_verror(SL_APPLICATION_ERROR,
- "Intrinsic function %s requires too many parameters", objf->name);
- return -1;
- }
-
- if (-1 == _SL_increment_frame_pointer ())
- return -1;
-
- stk_depth = -1;
- if (Trace_Mode && (_SLang_Trace > 0))
- {
- int nargs;
-
- stk_depth = _SLstack_depth ();
-
- nargs = SLang_Num_Function_Args;
- if (nargs == 0)
- nargs = (int)argc;
-
- stk_depth -= nargs;
-
- if (stk_depth >= 0)
- trace_dump (">>%s (%d args)\n",
- objf->name,
- _SLStack_Pointer - nargs,
- nargs,
- 1);
- }
-
- i = argc;
- while (i != 0)
- {
- i--;
- if (NULL == (p[i] = pop_pointer (objs + i, arg_types[i])))
- {
- i++;
- goto free_and_return;
- }
- }
-
- ret = 0;
-#if SLANG_HAS_FLOAT
- xf = 0.0;
-#endif
-
- switch (argc)
- {
- case 0:
- if (type == SLANG_VOID_TYPE) ((VF0_Type) fptr) ();
-#if SLANG_HAS_FLOAT
- else if (type == SLANG_DOUBLE_TYPE) xf = ((FF0_Type) fptr)();
-#endif
- else ret = ((LF0_Type) fptr)();
- break;
-
- case 1:
- if (type == SLANG_VOID_TYPE) ((VF1_Type) fptr)(p[0]);
-#if SLANG_HAS_FLOAT
- else if (type == SLANG_DOUBLE_TYPE) xf = ((FF1_Type) fptr)(p[0]);
-#endif
- else ret = ((LF1_Type) fptr)(p[0]);
- break;
-
- case 2:
- if (type == SLANG_VOID_TYPE) ((VF2_Type) fptr)(p[0], p[1]);
-#if SLANG_HAS_FLOAT
- else if (type == SLANG_DOUBLE_TYPE) xf = ((FF2_Type) fptr)(p[0], p[1]);
-#endif
- else ret = ((LF2_Type) fptr)(p[0], p[1]);
- break;
-
- case 3:
- if (type == SLANG_VOID_TYPE) ((VF3_Type) fptr)(p[0], p[1], p[2]);
-#if SLANG_HAS_FLOAT
- else if (type == SLANG_DOUBLE_TYPE) xf = ((FF3_Type) fptr)(p[0], p[1], p[2]);
-#endif
- else ret = ((LF3_Type) fptr)(p[0], p[1], p[2]);
- break;
-
- case 4:
- if (type == SLANG_VOID_TYPE) ((VF4_Type) fptr)(p[0], p[1], p[2], p[3]);
-#if SLANG_HAS_FLOAT
- else if (type == SLANG_DOUBLE_TYPE) xf = ((FF4_Type) fptr)(p[0], p[1], p[2], p[3]);
-#endif
- else ret = ((LF4_Type) fptr)(p[0], p[1], p[2], p[3]);
- break;
-
- case 5:
- if (type == SLANG_VOID_TYPE) ((VF5_Type) fptr)(p[0], p[1], p[2], p[3], p[4]);
-#if SLANG_HAS_FLOAT
- else if (type == SLANG_DOUBLE_TYPE) xf = ((FF5_Type) fptr)(p[0], p[1], p[2], p[3], p[4]);
-#endif
- else ret = ((LF5_Type) fptr)(p[0], p[1], p[2], p[3], p[4]);
- break;
-
- case 6:
- if (type == SLANG_VOID_TYPE) ((VF6_Type) fptr)(p[0], p[1], p[2], p[3], p[4], p[5]);
-#if SLANG_HAS_FLOAT
- else if (type == SLANG_DOUBLE_TYPE) xf = ((FF6_Type) fptr)(p[0], p[1], p[2], p[3], p[4], p[5]);
-#endif
- else ret = ((LF6_Type) fptr)(p[0], p[1], p[2], p[3], p[4], p[5]);
- break;
-
- case 7:
- if (type == SLANG_VOID_TYPE) ((VF7_Type) fptr)(p[0], p[1], p[2], p[3], p[4], p[5], p[6]);
-#if SLANG_HAS_FLOAT
- else if (type == SLANG_DOUBLE_TYPE) xf = ((FF7_Type) fptr)(p[0], p[1], p[2], p[3], p[4], p[5], p[6]);
-#endif
- else ret = ((LF7_Type) fptr)(p[0], p[1], p[2], p[3], p[4], p[5], p[6]);
- break;
- }
-
- switch (type)
- {
- case SLANG_VOID_TYPE:
- break;
-
-#if SLANG_HAS_FLOAT
- case SLANG_DOUBLE_TYPE:
- (void) SLang_push_double (xf);
- break;
-#endif
- case SLANG_UINT_TYPE:
- case SLANG_INT_TYPE: (void) SLclass_push_int_obj (type, (int) ret);
- break;
-
- case SLANG_CHAR_TYPE:
- case SLANG_UCHAR_TYPE: (void) SLclass_push_char_obj (type, (char) ret);
- break;
-
- case SLANG_SHORT_TYPE:
- case SLANG_USHORT_TYPE: (void) SLclass_push_short_obj (type, (short) ret);
- break;
-
- case SLANG_LONG_TYPE:
- case SLANG_ULONG_TYPE: (void) SLclass_push_long_obj (type, ret);
- break;
-
- case SLANG_STRING_TYPE:
- if (NULL == (char *)ret)
- {
- if (SLang_Error == 0) SLang_Error = SL_INTRINSIC_ERROR;
- }
- else (void) SLang_push_string ((char *)ret);
- break;
-
- default:
- SLang_verror (SL_NOT_IMPLEMENTED,
- "Support for intrinsic functions returning %s is not provided",
- SLclass_get_datatype_name (type));
- }
-
- if (stk_depth >= 0)
- {
- stk_depth = _SLstack_depth () - stk_depth;
-
- trace_dump ("<<%s (returning %d values)\n",
- objf->name,
- _SLStack_Pointer - stk_depth,
- stk_depth,
- 1);
- }
-
- free_and_return:
- while (i < argc)
- {
- SLang_free_object (objs + i);
- i++;
- }
-
- return _SL_decrement_frame_pointer ();
-}
-
-static int inner_interp(register SLBlock_Type *);
-
-/* Switch_Obj_Ptr points to the NEXT available free switch object */
-static SLang_Object_Type Switch_Objects[SLANG_MAX_NESTED_SWITCH];
-static SLang_Object_Type *Switch_Obj_Ptr = Switch_Objects;
-static SLang_Object_Type *Switch_Obj_Max = Switch_Objects + SLANG_MAX_NESTED_SWITCH;
-
-static void
-lang_do_loops (unsigned char stype, SLBlock_Type *block, unsigned int num_blocks)
-{
- int i, ctrl;
- int first, last;
- SLBlock_Type *blks[4];
- char *loop_name;
- SLang_Foreach_Context_Type *foreach_context;
- SLang_Class_Type *cl;
- int type;
- unsigned int j;
-
- j = 0;
- for (i = 0; i < (int) num_blocks; i++)
- {
- if (block[i].bc_main_type != _SLANG_BC_BLOCK)
- {
- if (block[i].bc_main_type == _SLANG_BC_LINE_NUM)
- continue;
-
- SLang_verror (SL_SYNTAX_ERROR, "Bytecode is not a looping block");
- return;
- }
- blks[j] = block[i].b.blk;
- j++;
- }
-
- num_blocks = j;
- block = blks[0];
-
- switch (stype)
- {
- case _SLANG_BCST_FOREACH:
- loop_name = "foreach";
- if (num_blocks != 1)
- goto wrong_num_blocks_error;
-
- /* We should find Next_Function_Num_Args + 1 items on the stack.
- * The first Next_Function_Num_Args items represent the arguments to
- * to USING. The last item (deepest in stack) is the object to loop
- * over. So, roll the stack up and grab it.
- */
- if ((-1 == SLroll_stack (-(Next_Function_Num_Args + 1)))
- || (-1 == (type = SLang_peek_at_stack ())))
- goto return_error;
-
- cl = _SLclass_get_class ((unsigned char) type);
- if ((cl->cl_foreach == NULL)
- || (cl->cl_foreach_open == NULL)
- || (cl->cl_foreach_close == NULL))
- {
- SLang_verror (SL_NOT_IMPLEMENTED, "%s does not permit foreach", cl->cl_name);
- SLdo_pop_n (Next_Function_Num_Args + 1);
- goto return_error;
- }
-
- if (NULL == (foreach_context = (*cl->cl_foreach_open) ((unsigned char)type, Next_Function_Num_Args)))
- goto return_error;
-
- while (1)
- {
- int status;
-
- if (SLang_Error)
- {
- (*cl->cl_foreach_close) ((unsigned char) type, foreach_context);
- goto return_error;
- }
-
- status = (*cl->cl_foreach) ((unsigned char) type, foreach_context);
- if (status <= 0)
- {
- if (status == 0)
- break;
-
- (*cl->cl_foreach_close) ((unsigned char) type, foreach_context);
- goto return_error;
- }
-
- inner_interp (block);
- if (Lang_Break) break;
- Lang_Break_Condition = /* Lang_Continue = */ 0;
- }
- (*cl->cl_foreach_close) ((unsigned char) type, foreach_context);
- break;
-
- case _SLANG_BCST_WHILE:
- loop_name = "while";
-
- if (num_blocks != 2)
- goto wrong_num_blocks_error;
-
- type = blks[1]->bc_main_type;
- while (1)
- {
- if (SLang_Error)
- goto return_error;
-
- inner_interp (block);
- if (Lang_Break) break;
-
- if (-1 == pop_ctrl_integer (&ctrl))
- goto return_error;
-
- if (ctrl == 0) break;
-
- if (type)
- {
- inner_interp (blks[1]);
- if (Lang_Break) break;
- Lang_Break_Condition = /* Lang_Continue = */ 0;
- }
- }
- break;
-
- case _SLANG_BCST_DOWHILE:
- loop_name = "do...while";
-
- if (num_blocks != 2)
- goto wrong_num_blocks_error;
-
- while (1)
- {
- if (SLang_Error)
- goto return_error;
-
- Lang_Break_Condition = /* Lang_Continue = */ 0;
- inner_interp (block);
- if (Lang_Break) break;
- Lang_Break_Condition = /* Lang_Continue = */ 0;
- inner_interp (blks[1]);
- if (-1 == pop_ctrl_integer (&ctrl))
- goto return_error;
-
- if (ctrl == 0) break;
- }
- break;
-
- case _SLANG_BCST_CFOR:
- loop_name = "for";
-
- /* we need 4 blocks: first 3 control, the last is code */
- if (num_blocks != 4) goto wrong_num_blocks_error;
-
- inner_interp (block);
- while (1)
- {
- if (SLang_Error)
- goto return_error;
-
- inner_interp(blks[1]); /* test */
- if (-1 == pop_ctrl_integer (&ctrl))
- goto return_error;
-
- if (ctrl == 0) break;
- inner_interp(blks[3]); /* code */
- if (Lang_Break) break;
- inner_interp(blks[2]); /* bump */
- Lang_Break_Condition = /* Lang_Continue = */ 0;
- }
- break;
-
- case _SLANG_BCST_FOR:
- loop_name = "_for";
-
- if (num_blocks != 1)
- goto wrong_num_blocks_error;
-
- /* 3 elements: first, last, step */
- if ((-1 == SLang_pop_integer (&ctrl))
- || (-1 == SLang_pop_integer (&last))
- || (-1 == SLang_pop_integer (&first)))
- goto return_error;
-
- i = first;
- while (1)
- {
- /* It is ugly to have this test here but I do not know of a
- * simple way to do this without using two while loops.
- */
- if (ctrl >= 0)
- {
- if (i > last) break;
- }
- else if (i < last) break;
-
- if (SLang_Error) goto return_error;
-
- SLclass_push_int_obj (SLANG_INT_TYPE, i);
- inner_interp (block);
- if (Lang_Break) break;
- Lang_Break_Condition = /* Lang_Continue = */ 0;
-
- i += ctrl;
- }
- break;
-
- case _SLANG_BCST_LOOP:
- loop_name = "loop";
- if (num_blocks != 1)
- goto wrong_num_blocks_error;
-
- if (-1 == SLang_pop_integer (&ctrl))
- goto return_error;
- while (ctrl > 0)
- {
- ctrl--;
-
- if (SLang_Error)
- goto return_error;
-
- inner_interp (block);
- if (Lang_Break) break;
- Lang_Break_Condition = /* Lang_Continue = */ 0;
- }
- break;
-
- case _SLANG_BCST_FOREVER:
- loop_name = "forever";
-
- if (num_blocks != 1)
- goto wrong_num_blocks_error;
-
- while (1)
- {
- if (SLang_Error)
- goto return_error;
-
- inner_interp (block);
- if (Lang_Break) break;
- Lang_Break_Condition = /* Lang_Continue = */ 0;
- }
- break;
-
- default: SLang_verror(SL_INTERNAL_ERROR, "Unknown loop type");
- return;
- }
- Lang_Break = /* Lang_Continue = */ 0;
- Lang_Break_Condition = Lang_Return;
- return;
-
- wrong_num_blocks_error:
- SLang_verror (SL_SYNTAX_ERROR, "Wrong number of blocks for '%s' construct", loop_name);
-
- /* drop */
- return_error:
- do_traceback (loop_name, 0, NULL);
-}
-
-static void lang_do_and_orelse (unsigned char stype, SLBlock_Type *addr, SLBlock_Type *addr_max)
-{
- int test = 0;
- int is_or;
-
- is_or = (stype == _SLANG_BCST_ORELSE);
-
- while (addr <= addr_max)
- {
- if (addr->bc_main_type == _SLANG_BC_LINE_NUM)
- {
- addr++;
- continue;
- }
-
- inner_interp (addr->b.blk);
- if (SLang_Error
- || Lang_Break_Condition
- || (-1 == pop_ctrl_integer (&test)))
- return;
-
- if (is_or == (test != 0))
- break;
-
- /* if (((stype == _SLANG_BCST_ANDELSE) && (test == 0))
- * || ((stype == _SLANG_BCST_ORELSE) && test))
- * break;
- */
-
- addr++;
- }
- SLclass_push_int_obj (SLANG_INT_TYPE, test);
-}
-
-static void do_else_if (SLBlock_Type *zero_block, SLBlock_Type *non_zero_block)
-{
- int test;
-
- if (-1 == pop_ctrl_integer (&test))
- return;
-
- if (test == 0)
- non_zero_block = zero_block;
-
- if (non_zero_block != NULL)
- inner_interp (non_zero_block->b.blk);
-}
-
-int _SLang_trace_fun (char *f)
-{
- if (NULL == (f = SLang_create_slstring (f)))
- return -1;
-
- SLang_free_slstring (Trace_Function);
- Trace_Function = f;
- _SLang_Trace = 1;
- return 0;
-}
-
-int _SLdump_objects (char *prefix, SLang_Object_Type *x, unsigned int n, int dir)
-{
- char *s;
- SLang_Class_Type *cl;
-
- while (n)
- {
- cl = _SLclass_get_class (x->data_type);
-
- if (NULL == (s = _SLstringize_object (x)))
- s = "??";
-
- call_dump_routine ("%s[%s]:%s\n", prefix, cl->cl_name, s);
-
- SLang_free_slstring (s);
-
- x += dir;
- n--;
- }
- return 0;
-}
-
-static SLBlock_Type *Exit_Block_Ptr;
-static SLBlock_Type *Global_User_Block[5];
-static SLBlock_Type **User_Block_Ptr = Global_User_Block;
-char *_SLang_Current_Function_Name = NULL;
-
-static int execute_slang_fun (_SLang_Function_Type *fun)
-{
- register unsigned int i;
- register SLang_Object_Type *frame, *lvf;
- register unsigned int n_locals;
- _SLBlock_Header_Type *header;
- /* SLBlock_Type *val; */
- SLBlock_Type *exit_block_save;
- SLBlock_Type **user_block_save;
- SLBlock_Type *user_blocks[5];
- char *save_fname;
-
- exit_block_save = Exit_Block_Ptr;
- user_block_save = User_Block_Ptr;
- User_Block_Ptr = user_blocks;
- *(user_blocks) = NULL;
- *(user_blocks + 1) = NULL;
- *(user_blocks + 2) = NULL;
- *(user_blocks + 3) = NULL;
- *(user_blocks + 4) = NULL;
-
- Exit_Block_Ptr = NULL;
-
- save_fname = _SLang_Current_Function_Name;
- _SLang_Current_Function_Name = fun->name;
-
- _SL_increment_frame_pointer ();
-
- /* need loaded? */
- if (fun->nlocals == AUTOLOAD_NUM_LOCALS)
- {
- header = NULL;
- if (-1 == SLang_load_file(fun->v.autoload_filename))
- goto the_return;
-
- if (fun->nlocals == AUTOLOAD_NUM_LOCALS)
- {
- SLang_verror (SL_UNDEFINED_NAME, "%s: Function did not autoload",
- _SLang_Current_Function_Name);
- goto the_return;
- }
- }
-
- n_locals = fun->nlocals;
-
- /* let the error propagate through since it will do no harm
- and allow us to restore stack. */
-
- /* set new stack frame */
- lvf = frame = Local_Variable_Frame;
- i = n_locals;
- if ((lvf + i) > Local_Variable_Stack + SLANG_MAX_LOCAL_STACK)
- {
- SLang_verror(SL_STACK_OVERFLOW, "%s: Local Variable Stack Overflow",
- _SLang_Current_Function_Name);
- goto the_return;
- }
-
- /* Make sure we do not allow this header to get destroyed by something
- * like: define crash () { eval ("define crash ();") }
- */
- header = fun->v.header;
- header->num_refs++;
-
- while (i--)
- {
- lvf++;
- lvf->data_type = SLANG_UNDEFINED_TYPE;
- }
- Local_Variable_Frame = lvf;
-
- /* read values of function arguments */
- i = fun->nargs;
- while (i > 0)
- {
- i--;
- (void) SLang_pop (Local_Variable_Frame - i);
- }
-
- if (SLang_Enter_Function != NULL) (*SLang_Enter_Function)(_SLang_Current_Function_Name);
-
- if (_SLang_Trace)
- {
- int stack_depth;
-
- stack_depth = _SLstack_depth ();
-
- if ((Trace_Function != NULL)
- && (0 == strcmp (Trace_Function, _SLang_Current_Function_Name))
- && (Trace_Mode == 0))
- Trace_Mode = 1;
-
- if (Trace_Mode)
- {
- /* The local variable frame grows backwards */
- trace_dump (">>%s (%d args)\n",
- _SLang_Current_Function_Name,
- Local_Variable_Frame,
- (int) fun->nargs,
- -1);
- Trace_Mode++;
- }
-
- inner_interp (header->body);
- Lang_Break_Condition = Lang_Return = Lang_Break = 0;
- if (Exit_Block_Ptr != NULL) inner_interp(Exit_Block_Ptr);
-
- if (Trace_Mode)
- {
- Trace_Mode--;
- stack_depth = _SLstack_depth () - stack_depth;
-
- trace_dump ("<<%s (returning %d values)\n",
- _SLang_Current_Function_Name,
- _SLStack_Pointer - stack_depth,
- stack_depth,
- 1);
-
- if (Trace_Mode == 1)
- Trace_Mode = 0;
- }
- }
- else
- {
- inner_interp (header->body);
- Lang_Break_Condition = Lang_Return = Lang_Break = 0;
- if (Exit_Block_Ptr != NULL) inner_interp(Exit_Block_Ptr);
- }
-
- if (SLang_Exit_Function != NULL) (*SLang_Exit_Function)(_SLang_Current_Function_Name);
-
- if (SLang_Error)
- do_traceback(fun->name, n_locals,
-#if _SLANG_HAS_DEBUG_CODE
- fun->file
-#else
- NULL
-#endif
- );
-
- /* free local variables.... */
- lvf = Local_Variable_Frame;
- while (lvf > frame)
- {
-#if _SLANG_OPTIMIZE_FOR_SPEED
- if (SLANG_CLASS_TYPE_SCALAR != _SLclass_Class_Type [lvf->data_type])
-#endif
- SLang_free_object (lvf);
- lvf--;
- }
- Local_Variable_Frame = lvf;
-
- if (header->num_refs == 1)
- free_function_header (header);
- else
- header->num_refs--;
-
- the_return:
-
- Lang_Break_Condition = Lang_Return = Lang_Break = 0;
- Exit_Block_Ptr = exit_block_save;
- User_Block_Ptr = user_block_save;
- _SLang_Current_Function_Name = save_fname;
- _SL_decrement_frame_pointer ();
-
- if (SLang_Error)
- return -1;
-
- return 0;
-}
-
-static void do_traceback (char *name, unsigned int locals, char *file)
-{
- char *s;
- unsigned int i;
- SLang_Object_Type *objp;
- unsigned short stype;
-
- /* FIXME: Priority=low
- * I need to make this configurable!!! That is, let the
- * application decide whether or not a usage error should result in a
- * traceback.
- */
- if (SLang_Error == SL_USAGE_ERROR)
- return;
-
- if (SLang_Traceback == 0)
- return;
-
- call_dump_routine ("S-Lang Traceback: %s\n", name);
- if (SLang_Traceback < 0)
- return;
-
- if (file != NULL)
- call_dump_routine ("File: %s\n", file);
-
- if (locals == 0)
- return;
-
- call_dump_routine (" Local Variables:\n");
-
- for (i = 0; i < locals; i++)
- {
- SLang_Class_Type *cl;
- char *class_name;
-
- objp = Local_Variable_Frame - i;
- stype = objp->data_type;
-
- s = _SLstringize_object (objp);
- cl = _SLclass_get_class (stype);
- class_name = cl->cl_name;
-
- call_dump_routine ("\t$%d: Type: %s,\tValue:\t", i, class_name);
-
- if (s == NULL) call_dump_routine("??\n");
- else
- {
- char *q = "";
-#ifndef HAVE_VSNPRINTF
- char buf[256];
- if (strlen (s) >= sizeof (buf))
- {
- strncpy (buf, s, sizeof(buf));
- s = buf;
- s[sizeof(buf) - 1] = 0;
- }
-#endif
- if (SLANG_STRING_TYPE == stype) q = "\"";
- call_dump_routine ("%s%s%s\n", q, s, q);
- }
- }
-}
-
-static void do_app_unary (SLang_App_Unary_Type *nt)
-{
- if (-1 == do_unary (nt->unary_op, nt->name_type))
- do_traceback (nt->name, 0, NULL);
-}
-
-static int inner_interp_nametype (SLang_Name_Type *nt)
-{
- SLBlock_Type bc_blks[2];
-
- bc_blks[0].b.nt_blk = nt;
- bc_blks[0].bc_main_type = nt->name_type;
- bc_blks[1].bc_main_type = 0;
- return inner_interp(bc_blks);
-}
-
-int _SLang_dereference_ref (SLang_Ref_Type *ref)
-{
- if (ref == NULL)
- {
- SLang_Error = SL_INTERNAL_ERROR;
- return -1;
- }
-
- if (ref->is_global == 0)
- {
- SLang_Object_Type *obj = ref->v.local_obj;
- if (obj > Local_Variable_Frame)
- {
- SLang_verror (SL_UNDEFINED_NAME, "Local variable deref is out of scope");
- return -1;
- }
- return _SLpush_slang_obj (ref->v.local_obj);
- }
-
- (void) inner_interp_nametype (ref->v.nt);
- return 0;
-}
-
-int _SLang_is_ref_initialized (SLang_Ref_Type *ref)
-{
- unsigned char type;
-
- if (ref == NULL)
- {
- SLang_Error = SL_INTERNAL_ERROR;
- return -1;
- }
-
- if (ref->is_global == 0)
- {
- SLang_Object_Type *obj = ref->v.local_obj;
- if (obj > Local_Variable_Frame)
- {
- SLang_verror (SL_UNDEFINED_NAME, "Local variable deref is out of scope");
- return -1;
- }
- type = ref->v.local_obj->data_type;
- }
- else
- {
- SLang_Name_Type *nt = ref->v.nt;
- if ((nt->name_type != SLANG_GVARIABLE)
- && (nt->name_type != SLANG_PVARIABLE))
- return 1;
- type = ((SLang_Global_Var_Type *)nt)->obj.data_type;
- }
- return type != SLANG_UNDEFINED_TYPE;
-}
-
-int _SLang_uninitialize_ref (SLang_Ref_Type *ref)
-{
- SLang_Object_Type *obj;
-
- if (ref == NULL)
- {
- SLang_Error = SL_INTERNAL_ERROR;
- return -1;
- }
-
- if (ref->is_global == 0)
- {
- obj = ref->v.local_obj;
- if (obj > Local_Variable_Frame)
- {
- SLang_verror (SL_UNDEFINED_NAME, "Local variable deref is out of scope");
- return -1;
- }
- obj = ref->v.local_obj;
- }
- else
- {
- SLang_Name_Type *nt = ref->v.nt;
- if ((nt->name_type != SLANG_GVARIABLE)
- && (nt->name_type != SLANG_PVARIABLE))
- return -1;
- obj = &((SLang_Global_Var_Type *)nt)->obj;
- }
- SLang_free_object (obj);
- obj->data_type = SLANG_UNDEFINED_TYPE;
- obj->v.ptr_val = NULL;
- return 0;
-}
-
-void (*SLang_Interrupt)(void);
-static int Last_Error;
-void (*SLang_User_Clear_Error)(void);
-void _SLang_clear_error (void)
-{
- if (Last_Error <= 0)
- {
- Last_Error = 0;
- return;
- }
- Last_Error--;
- if (SLang_User_Clear_Error != NULL) (*SLang_User_Clear_Error)();
-}
-
-int _SLpush_slang_obj (SLang_Object_Type *obj)
-{
- unsigned char subtype;
- SLang_Class_Type *cl;
-
- if (obj == NULL) return SLang_push_null ();
-
- subtype = obj->data_type;
-
-#if _SLANG_OPTIMIZE_FOR_SPEED
- if (SLANG_CLASS_TYPE_SCALAR == _SLclass_Class_Type[subtype])
- return SLang_push (obj);
-#endif
-
- cl = _SLclass_get_class (subtype);
- return (*cl->cl_push) (subtype, (VOID_STAR) &obj->v);
-}
-
-_INLINE_
-static int push_local_variable (int i)
-{
- SLang_Class_Type *cl;
- SLang_Object_Type *obj;
- unsigned char subtype;
-
- obj = Local_Variable_Frame - i;
- subtype = obj->data_type;
-
-#if _SLANG_OPTIMIZE_FOR_SPEED
- if (SLANG_CLASS_TYPE_SCALAR == _SLclass_Class_Type[subtype])
- return SLang_push (obj);
- if (subtype == SLANG_STRING_TYPE)
- return _SLang_dup_and_push_slstring (obj->v.s_val);
-#endif
-
- cl = _SLclass_get_class (subtype);
- return (*cl->cl_push) (subtype, (VOID_STAR) &obj->v);
-}
-
-static int push_intrinsic_variable (SLang_Intrin_Var_Type *ivar)
-{
- SLang_Class_Type *cl;
- unsigned char stype;
-
- stype = ivar->type;
- cl = _SLclass_get_class (stype);
-
- if (-1 == (*cl->cl_push_intrinsic) (stype, ivar->addr))
- {
- do_name_type_error ((SLang_Name_Type *) ivar);
- return -1;
- }
- return 0;
-}
-
-static int dereference_object (void)
-{
- SLang_Object_Type obj;
- SLang_Class_Type *cl;
- unsigned char type;
- int ret;
-
- if (-1 == SLang_pop (&obj))
- return -1;
-
- type = obj.data_type;
-
- cl = _SLclass_get_class (type);
- ret = (*cl->cl_dereference)(type, (VOID_STAR) &obj.v);
-
- SLang_free_object (&obj);
- return ret;
-}
-
-static int case_function (void)
-{
- unsigned char type;
- SLang_Object_Type obj;
- SLang_Object_Type *swobjptr;
-
- swobjptr = Switch_Obj_Ptr - 1;
-
- if ((swobjptr < Switch_Objects)
- || (0 == (type = swobjptr->data_type)))
- {
- SLang_verror (SL_SYNTAX_ERROR, "Misplaced 'case' keyword");
- return -1;
- }
-
- if (-1 == SLang_pop (&obj))
- return -1;
-
- if (obj.data_type != type)
- {
- SLang_Class_Type *a_cl, *b_cl;
-
- a_cl = _SLclass_get_class (obj.data_type);
- b_cl = _SLclass_get_class (type);
-
- if (NULL == _SLclass_get_binary_fun (SLANG_EQ, a_cl, b_cl, &a_cl, 0))
- {
- (void) SLclass_push_int_obj (SLANG_INT_TYPE, 0);
- SLang_free_object (&obj);
- return 0;
- }
- }
-
- (void) do_binary_ab (SLANG_EQ, swobjptr, &obj);
- SLang_free_object (&obj);
- return 0;
-}
-
-static void tmp_variable_function (SLBlock_Type *addr)
-{
- SLang_Object_Type *obj;
-
- switch (addr->bc_sub_type)
- {
- case SLANG_GVARIABLE:
- case SLANG_PVARIABLE:
- obj = &addr->b.nt_gvar_blk->obj;
- break;
-
- case SLANG_LVARIABLE:
- obj = Local_Variable_Frame - addr->b.i_blk;
- break;
-
- default:
- SLang_Error = SL_INTERNAL_ERROR;
- return;
- }
-
- /* There is no need to go through higher level routines since we are
- * not creating or destroying extra copies.
- */
- if (-1 == SLang_push (obj))
- return;
-
- obj->data_type = SLANG_UNDEFINED_TYPE;
- obj->v.ptr_val = NULL;
-}
-
-
-static int
-do_inner_interp_error (SLBlock_Type *err_block,
- SLBlock_Type *addr_start,
- SLBlock_Type *addr)
-{
- int save_err, slerr;
-
- /* Someday I can use the these variable to provide extra information
- * about what went wrong.
- */
- (void) addr_start;
- (void) addr;
-
- if (err_block == NULL)
- goto return_error;
-
- if (SLang_Error < 0) /* errors less than 0 are severe */
- goto return_error;
-
- save_err = Last_Error++;
- slerr = SLang_Error;
- SLang_Error = 0;
- inner_interp (err_block->b.blk);
-
- if (Last_Error <= save_err)
- {
- /* Caught error and cleared it */
- Last_Error = save_err;
- if ((Lang_Break_Condition == 0)
- /* An error may have cleared the error and then caused the
- * function to return. We will allow that but let's not allow
- * 'break' nor 'continue' statements until later.
- */
- || Lang_Return)
- return 0;
-
- /* drop--- either a break or continue was called */
- }
-
- Last_Error = save_err;
- SLang_Error = slerr;
-
- return_error:
-#if _SLANG_HAS_DEBUG_CODE
- while (addr >= addr_start)
- {
- if (addr->bc_main_type == _SLANG_BC_LINE_NUM)
- {
- char buf[256];
- sprintf (buf, "(Error occurred on line %lu)", addr->b.l_blk);
- do_traceback (buf, 0, NULL);
- break;
- }
- /* Special hack for 16 bit systems to prevent pointer wrapping. */
-#if defined(__16_BIT_SYSTEM__)
- if (addr == addr_start)
- break;
-#endif
- addr--;
- }
-#endif
- return -1;
-}
-
-
-#define GATHER_STATISTICS 0
-#if GATHER_STATISTICS
-static unsigned int Bytecodes[0xFFFF];
-
-static void print_stats (void)
-{
- unsigned int i;
- unsigned long total;
- FILE *fp = fopen ("stats.txt", "w");
- if (fp == NULL)
- return;
-
- total = 0;
- for (i = 0; i < 0xFFFF; i++)
- total += Bytecodes[i];
-
- if (total == 0)
- total = 1;
-
- for (i = 0; i < 0xFFFF; i++)
- {
- if (Bytecodes[i])
- fprintf (fp, "0x%04X %9u %e\n", i, Bytecodes[i], Bytecodes[i]/(double) total);
- }
- fclose (fp);
-}
-
-static void add_to_statistics (SLBlock_Type *b)
-{
- unsigned short x, y;
-
- x = b->bc_main_type;
- if (x == 0)
- {
- Bytecodes[0] += 1;
- return;
- }
- b++;
- y = b->bc_main_type;
-
- Bytecodes[(x << 8) | y] += 1;
-}
-
-#endif
-
-/* inner interpreter */
-/* The return value from this function is only meaningful when it is used
- * to process blocks for the switch statement. If it returns 0, the calling
- * routine should pass the next block to it. Otherwise it will
- * return non-zero, with or without error.
- */
-static int inner_interp (SLBlock_Type *addr_start)
-{
- SLBlock_Type *block, *err_block, *addr;
-#if GATHER_STATISTICS
- static int inited = 0;
-
- if (inited == 0)
- {
- (void) SLang_add_cleanup_function (print_stats);
- inited = 1;
- }
-#endif
-
- /* for systems that have no real interrupt facility (e.g. go32 on dos) */
- if (SLang_Interrupt != NULL) (*SLang_Interrupt)();
-
- block = err_block = NULL;
- addr = addr_start;
-
-#if GATHER_STATISTICS
- add_to_statistics (addr);
-#endif
- while (1)
- {
- switch (addr->bc_main_type)
- {
- case 0:
- return 1;
- case _SLANG_BC_LVARIABLE:
- push_local_variable (addr->b.i_blk);
- break;
- case _SLANG_BC_GVARIABLE:
- if (-1 == _SLpush_slang_obj (&addr->b.nt_gvar_blk->obj))
- do_name_type_error (addr->b.nt_blk);
- break;
-
- case _SLANG_BC_IVARIABLE:
- case _SLANG_BC_RVARIABLE:
- push_intrinsic_variable (addr->b.nt_ivar_blk);
- break;
-
- case _SLANG_BC_INTRINSIC:
- execute_intrinsic_fun (addr->b.nt_ifun_blk);
- if (SLang_Error)
- do_traceback(addr->b.nt_ifun_blk->name, 0, NULL);
- break;
-
- case _SLANG_BC_FUNCTION:
- execute_slang_fun (addr->b.nt_fun_blk);
- if (Lang_Break_Condition) goto handle_break_condition;
- break;
-
- case _SLANG_BC_MATH_UNARY:
- case _SLANG_BC_APP_UNARY:
- /* Make sure we treat these like function calls since the
- * parser took sin(x) to be a function call.
- */
- if (0 == _SL_increment_frame_pointer ())
- {
- do_app_unary (addr->b.nt_unary_blk);
- (void) _SL_decrement_frame_pointer ();
- }
- break;
-
- case _SLANG_BC_ICONST:
- SLclass_push_int_obj (SLANG_INT_TYPE, addr->b.iconst_blk->i);
- break;
-
-#if SLANG_HAS_FLOAT
- case _SLANG_BC_DCONST:
- SLang_push_double (addr->b.dconst_blk->d);
- break;
-#endif
-
- case _SLANG_BC_PVARIABLE:
- if (-1 == _SLpush_slang_obj (&addr->b.nt_gvar_blk->obj))
- do_name_type_error (addr->b.nt_blk);
- break;
-
- case _SLANG_BC_PFUNCTION:
- execute_slang_fun (addr->b.nt_fun_blk);
- if (Lang_Break_Condition) goto handle_break_condition;
- break;
-
- case _SLANG_BC_BINARY:
- do_binary (addr->b.i_blk);
- break;
-
- case _SLANG_BC_LITERAL:
-#if !_SLANG_OPTIMIZE_FOR_SPEED
- case _SLANG_BC_LITERAL_INT:
- case _SLANG_BC_LITERAL_STR:
-#endif
- {
- SLang_Class_Type *cl = _SLclass_get_class (addr->bc_sub_type);
- (*cl->cl_push_literal) (addr->bc_sub_type, (VOID_STAR) &addr->b.ptr_blk);
- }
- break;
-#if _SLANG_OPTIMIZE_FOR_SPEED
- case _SLANG_BC_LITERAL_INT:
- SLclass_push_int_obj (addr->bc_sub_type, (int) addr->b.l_blk);
- break;
-
- case _SLANG_BC_LITERAL_STR:
- _SLang_dup_and_push_slstring (addr->b.s_blk);
- break;
-#endif
- case _SLANG_BC_BLOCK:
- switch (addr->bc_sub_type)
- {
- case _SLANG_BCST_ERROR_BLOCK:
- err_block = addr;
- break;
-
- case _SLANG_BCST_EXIT_BLOCK:
- Exit_Block_Ptr = addr->b.blk;
- break;
-
- case _SLANG_BCST_USER_BLOCK0:
- case _SLANG_BCST_USER_BLOCK1:
- case _SLANG_BCST_USER_BLOCK2:
- case _SLANG_BCST_USER_BLOCK3:
- case _SLANG_BCST_USER_BLOCK4:
- User_Block_Ptr[addr->bc_sub_type - _SLANG_BCST_USER_BLOCK0] = addr->b.blk;
- break;
-
- case _SLANG_BCST_LOOP:
- case _SLANG_BCST_WHILE:
- case _SLANG_BCST_FOR:
- case _SLANG_BCST_FOREVER:
- case _SLANG_BCST_CFOR:
- case _SLANG_BCST_DOWHILE:
- case _SLANG_BCST_FOREACH:
- if (block == NULL) block = addr;
- lang_do_loops(addr->bc_sub_type, block, 1 + (unsigned int) (addr - block));
- block = NULL;
- break;
-
- case _SLANG_BCST_IFNOT:
-#if _SLANG_OPTIMIZE_FOR_SPEED
- {
- int i;
-
- if ((0 == pop_ctrl_integer (&i)) && (i == 0))
- inner_interp (addr->b.blk);
- }
-#else
- do_else_if (addr, NULL);
-#endif
- break;
-
- case _SLANG_BCST_IF:
-#if _SLANG_OPTIMIZE_FOR_SPEED
- {
- int i;
-
- if ((0 == pop_ctrl_integer (&i)) && i)
- inner_interp (addr->b.blk);
- }
-#else
- do_else_if (NULL, addr);
-#endif
- break;
-
- case _SLANG_BCST_NOTELSE:
- do_else_if (block, addr);
- block = NULL;
- break;
-
- case _SLANG_BCST_ELSE:
- do_else_if (addr, block);
- block = NULL;
- break;
-
- case _SLANG_BCST_SWITCH:
- if (Switch_Obj_Ptr == Switch_Obj_Max)
- {
- SLang_doerror("switch nesting too deep");
- break;
- }
- (void) SLang_pop (Switch_Obj_Ptr);
- Switch_Obj_Ptr++;
-
- if (block == NULL) block = addr;
- while ((SLang_Error == 0)
- && (block <= addr)
- && (Lang_Break_Condition == 0)
- && (0 == inner_interp (block->b.blk)))
- block++;
- Switch_Obj_Ptr--;
- SLang_free_object (Switch_Obj_Ptr);
- Switch_Obj_Ptr->data_type = 0;
- block = NULL;
- break;
-
- case _SLANG_BCST_ANDELSE:
- case _SLANG_BCST_ORELSE:
- if (block == NULL) block = addr;
- lang_do_and_orelse (addr->bc_sub_type, block, addr);
- block = NULL;
- break;
-
- default:
- if (block == NULL) block = addr;
- break;
- }
- if (Lang_Break_Condition) goto handle_break_condition;
- break;
-
- case _SLANG_BC_RETURN:
- Lang_Break_Condition = Lang_Return = Lang_Break = 1; return 1;
- case _SLANG_BC_BREAK:
- Lang_Break_Condition = Lang_Break = 1; return 1;
- case _SLANG_BC_CONTINUE:
- Lang_Break_Condition = /* Lang_Continue = */ 1; return 1;
-
- case _SLANG_BC_EXCH:
- (void) SLreverse_stack (2);
- break;
-
- case _SLANG_BC_LABEL:
- {
- int test;
- if ((0 == SLang_pop_integer (&test))
- && (test == 0))
- return 0;
- }
- break;
-
- case _SLANG_BC_LOBJPTR:
- (void)_SLang_push_ref (0, (VOID_STAR)(Local_Variable_Frame - addr->b.i_blk));
- break;
-
- case _SLANG_BC_GOBJPTR:
- (void)_SLang_push_ref (1, (VOID_STAR)addr->b.nt_blk);
- break;
-
- case _SLANG_BC_X_ERROR:
- if (err_block != NULL)
- {
- inner_interp(err_block->b.blk);
- if (SLang_Error) err_block = NULL;
- }
- else SLang_verror(SL_SYNTAX_ERROR, "No ERROR_BLOCK");
- if (Lang_Break_Condition) goto handle_break_condition;
- break;
-
- case _SLANG_BC_X_USER0:
- case _SLANG_BC_X_USER1:
- case _SLANG_BC_X_USER2:
- case _SLANG_BC_X_USER3:
- case _SLANG_BC_X_USER4:
- if (User_Block_Ptr[addr->bc_main_type - _SLANG_BC_X_USER0] != NULL)
- {
- inner_interp(User_Block_Ptr[addr->bc_main_type - _SLANG_BC_X_USER0]);
- }
- else SLang_verror(SL_SYNTAX_ERROR, "No block for X_USERBLOCK");
- if (Lang_Break_Condition) goto handle_break_condition;
- break;
-
- case _SLANG_BC_CALL_DIRECT:
- (*addr->b.call_function) ();
- break;
-
- case _SLANG_BC_CALL_DIRECT_FRAME:
- do_bc_call_direct_frame (addr->b.call_function);
- break;
-
- case _SLANG_BC_UNARY:
- do_unary (addr->b.i_blk, _SLANG_BC_UNARY);
- break;
-
- case _SLANG_BC_UNARY_FUNC:
- /* Make sure we treat these like function calls since the
- * parser took abs(x) to be a function call.
- */
- if (0 == _SL_increment_frame_pointer ())
- {
- do_unary (addr->b.i_blk, _SLANG_BC_UNARY);
- (void) _SL_decrement_frame_pointer ();
- }
- break;
-
- case _SLANG_BC_DEREF_ASSIGN:
- set_deref_lvalue (addr);
- break;
- case _SLANG_BC_SET_LOCAL_LVALUE:
- set_lvalue_obj (addr->bc_sub_type, Local_Variable_Frame - addr->b.i_blk);
- break;
- case _SLANG_BC_SET_GLOBAL_LVALUE:
- if (-1 == set_lvalue_obj (addr->bc_sub_type, &addr->b.nt_gvar_blk->obj))
- do_name_type_error (addr->b.nt_blk);
- break;
- case _SLANG_BC_SET_INTRIN_LVALUE:
- set_intrin_lvalue (addr);
- break;
- case _SLANG_BC_SET_STRUCT_LVALUE:
- set_struct_lvalue (addr);
- break;
-
- case _SLANG_BC_FIELD:
- (void) push_struct_field (addr->b.s_blk);
- break;
-
- case _SLANG_BC_SET_ARRAY_LVALUE:
- set_array_lvalue (addr->bc_sub_type);
- break;
-
-#if _SLANG_HAS_DEBUG_CODE
- case _SLANG_BC_LINE_NUM:
- break;
-#endif
-
- case _SLANG_BC_TMP:
- tmp_variable_function (addr);
- break;
-
-#if _SLANG_OPTIMIZE_FOR_SPEED
- case _SLANG_BC_LVARIABLE_AGET:
- if (0 == push_local_variable (addr->b.i_blk))
- do_bc_call_direct_frame (_SLarray_aget);
- break;
-
- case _SLANG_BC_LVARIABLE_APUT:
- if (0 == push_local_variable (addr->b.i_blk))
- do_bc_call_direct_frame (_SLarray_aput);
- break;
- case _SLANG_BC_INTEGER_PLUS:
- if (0 == SLclass_push_int_obj (addr->bc_sub_type, (int) addr->b.l_blk))
- do_binary (SLANG_PLUS);
- break;
-
- case _SLANG_BC_INTEGER_MINUS:
- if (0 == SLclass_push_int_obj (addr->bc_sub_type, (int) addr->b.l_blk))
- do_binary (SLANG_MINUS);
- break;
-#endif
-#if 0
- case _SLANG_BC_ARG_LVARIABLE:
- (void) SLang_start_arg_list ();
- push_local_variable (addr->b.i_blk);
- break;
-#endif
- case _SLANG_BC_EARG_LVARIABLE:
- push_local_variable (addr->b.i_blk);
- (void) SLang_end_arg_list ();
- break;
-
-#if USE_COMBINED_BYTECODES
- case _SLANG_BC_CALL_DIRECT_INTRINSIC:
- (*addr->b.call_function) ();
- addr++;
- execute_intrinsic_fun (addr->b.nt_ifun_blk);
- if (SLang_Error)
- do_traceback(addr->b.nt_ifun_blk->name, 0, NULL);
- break;
-
- case _SLANG_BC_INTRINSIC_CALL_DIRECT:
- execute_intrinsic_fun (addr->b.nt_ifun_blk);
- if (SLang_Error)
- {
- do_traceback(addr->b.nt_ifun_blk->name, 0, NULL);
- break;
- }
- addr++;
- (*addr->b.call_function) ();
- break;
-
- case _SLANG_BC_CALL_DIRECT_LSTR:
- (*addr->b.call_function) ();
- addr++;
- _SLang_dup_and_push_slstring (addr->b.s_blk);
- break;
-
- case _SLANG_BC_CALL_DIRECT_SLFUN:
- (*addr->b.call_function) ();
- addr++;
- execute_slang_fun (addr->b.nt_fun_blk);
- if (Lang_Break_Condition) goto handle_break_condition;
- break;
-
- case _SLANG_BC_CALL_DIRECT_INTRSTOP:
- (*addr->b.call_function) ();
- addr++;
- /* drop */
- case _SLANG_BC_INTRINSIC_STOP:
- execute_intrinsic_fun (addr->b.nt_ifun_blk);
- if (SLang_Error == 0)
- return 1;
- do_traceback(addr->b.nt_ifun_blk->name, 0, NULL);
- break;
-
- case _SLANG_BC_CALL_DIRECT_EARG_LVAR:
- (*addr->b.call_function) ();
- addr++;
- push_local_variable (addr->b.i_blk);
- (void) SLang_end_arg_list ();
- break;
-
- case _SLANG_BC_CALL_DIRECT_LINT:
- (*addr->b.call_function) ();
- addr++;
- SLclass_push_int_obj (addr->bc_sub_type, (int) addr->b.l_blk);
- break;
-
- case _SLANG_BC_CALL_DIRECT_LVAR:
- (*addr->b.call_function) ();
- addr++;
- push_local_variable (addr->b.i_blk);
- break;
-#endif /* USE_COMBINED_BYTECODES */
-
- default:
- SLang_verror (SL_INTERNAL_ERROR, "Byte-Code 0x%X is not valid", addr->bc_main_type);
- }
-
- /* Someday I plan to add a 'signal' intrinsic function. Then when a
- * signal is caught, a variable will be set to one and that value of
- * that variable will need to be monitored here, e.g.,
- * if (Handle_Signal) handle_signal ();
- * It would be nice to check only one variable instead of Handle_Signal
- * and SLang_Error. Perhaps I should phase out SLang_Error = xxx
- * and used something like: SLang_set_error (code); Then, I could
- * use:
- * if (Handle_Condition)
- * {
- * Handle_Condition = 0;
- * if (SLang_Error) ....
- * else if (Handle_Signal) handle_signal ();
- * else....
- * }
- */
- if (SLang_Error)
- {
- if (-1 == do_inner_interp_error (err_block, addr_start, addr))
- return 1;
- if (SLang_Error)
- return 1;
-
- /* Otherwise, error cleared. Continue onto next bytecode.
- * Someday I need to add something to indicate where the
- * next statement begins since continuing on the next
- * bytecode is not really what is desired.
- */
- if (Lang_Break_Condition) goto handle_break_condition;
- }
- addr++;
- }
-
- handle_break_condition:
- /* Get here if Lang_Break_Condition != 0, which implies that either
- * Lang_Return, Lang_Break, or Lang_Continue is non zero
- */
- if (Lang_Return)
- Lang_Break = 1;
-
- return 1;
-}
-
-/*}}}*/
-
-/* The functions below this point are used to implement the parsed token
- * to byte-compiled code.
- */
-/* static SLang_Name_Type **Static_Hash_Table; */
-
-static SLang_Name_Type **Locals_Hash_Table;
-static int Local_Variable_Number;
-static unsigned int Function_Args_Number;
-int _SLang_Auto_Declare_Globals = 0;
-int (*SLang_Auto_Declare_Var_Hook) (char *);
-
-static SLang_NameSpace_Type *This_Static_NameSpace;
-static SLang_NameSpace_Type *Global_NameSpace;
-
-#if _SLANG_HAS_DEBUG_CODE
-static char *This_Compile_Filename;
-#endif
-static SLBlock_Type SLShort_Blocks[6];
-/* These are initialized in add_table below. I cannot init a Union!! */
-
-static int Lang_Defining_Function;
-static void (*Default_Variable_Mode) (_SLang_Token_Type *);
-static void (*Default_Define_Function) (char *, unsigned long);
-
-static int push_compile_context (char *);
-static int pop_compile_context (void);
-
-typedef struct
-{
- int block_type;
- SLBlock_Type *block; /* beginning of block definition */
- SLBlock_Type *block_ptr; /* current location */
- SLBlock_Type *block_max; /* end of definition */
- SLang_NameSpace_Type *static_namespace;
-}
-Block_Context_Type;
-
-static Block_Context_Type Block_Context_Stack [SLANG_MAX_BLOCK_STACK_LEN];
-static unsigned int Block_Context_Stack_Len;
-
-static SLBlock_Type *Compile_ByteCode_Ptr;
-static SLBlock_Type *This_Compile_Block;
-static SLBlock_Type *This_Compile_Block_Max;
-static int This_Compile_Block_Type;
-#define COMPILE_BLOCK_TYPE_FUNCTION 1
-#define COMPILE_BLOCK_TYPE_BLOCK 2
-#define COMPILE_BLOCK_TYPE_TOP_LEVEL 3
-
-/* If it returns 0, DO NOT FREE p */
-static int lang_free_branch (SLBlock_Type *p)
-{
- /* Note: we look at 0,2,4, since these blocks are 0 terminated */
- if ((p == SLShort_Blocks)
- || (p == SLShort_Blocks + 2)
- || (p == SLShort_Blocks + 4)
- )
- return 0;
-
- while (1)
- {
- SLang_Class_Type *cl;
-
- switch (p->bc_main_type)
- {
- case _SLANG_BC_BLOCK:
- if (lang_free_branch(p->b.blk))
- SLfree((char *)p->b.blk);
- break;
-
- case _SLANG_BC_LITERAL:
- case _SLANG_BC_LITERAL_STR:
- /* No user types should be here. */
- cl = _SLclass_get_class (p->bc_sub_type);
- (*cl->cl_byte_code_destroy) (p->bc_sub_type, (VOID_STAR) &p->b.ptr_blk);
- break;
-
- case _SLANG_BC_FIELD:
- case _SLANG_BC_SET_STRUCT_LVALUE:
- SLang_free_slstring (p->b.s_blk);
- break;
-
- default:
- break;
-
- case 0:
- return 1;
- }
- p++;
- }
-}
-
-static void free_function_header (_SLBlock_Header_Type *h)
-{
- if (h->num_refs > 1)
- {
- h->num_refs--;
- return;
- }
-
- if (h->body != NULL)
- {
- if (lang_free_branch (h->body))
- SLfree ((char *) h->body);
- }
-
- SLfree ((char *) h);
-}
-
-static int push_block_context (int type)
-{
- Block_Context_Type *c;
- unsigned int num;
- SLBlock_Type *b;
-
- if (Block_Context_Stack_Len == SLANG_MAX_BLOCK_STACK_LEN)
- {
- SLang_verror (SL_STACK_OVERFLOW, "Block stack overflow");
- return -1;
- }
-
- num = 5; /* 40 bytes */
- if (NULL == (b = (SLBlock_Type *) SLcalloc (num, sizeof (SLBlock_Type))))
- return -1;
-
- c = Block_Context_Stack + Block_Context_Stack_Len;
- c->block = This_Compile_Block;
- c->block_ptr = Compile_ByteCode_Ptr;
- c->block_max = This_Compile_Block_Max;
- c->block_type = This_Compile_Block_Type;
- c->static_namespace = This_Static_NameSpace;
-
- Compile_ByteCode_Ptr = This_Compile_Block = b;
- This_Compile_Block_Max = b + num;
- This_Compile_Block_Type = type;
-
- Block_Context_Stack_Len += 1;
- return 0;
-}
-
-static int pop_block_context (void)
-{
- Block_Context_Type *c;
-
- if (Block_Context_Stack_Len == 0)
- return -1;
-
- Block_Context_Stack_Len -= 1;
- c = Block_Context_Stack + Block_Context_Stack_Len;
-
- This_Compile_Block = c->block;
- This_Compile_Block_Max = c->block_max;
- This_Compile_Block_Type = c->block_type;
- Compile_ByteCode_Ptr = c->block_ptr;
- This_Static_NameSpace = c->static_namespace;
-
- return 0;
-}
-
-int _SLcompile_push_context (SLang_Load_Type *load_object)
-{
- if (-1 == push_compile_context (load_object->name))
- return -1;
-
- if (NULL == (This_Static_NameSpace = _SLns_allocate_namespace (load_object->name, SLSTATIC_HASH_TABLE_SIZE)))
- {
- pop_compile_context ();
- return -1;
- }
-
- if (-1 == push_block_context (COMPILE_BLOCK_TYPE_TOP_LEVEL))
- {
- pop_compile_context ();
- return -1;
- }
-
- return 0;
-}
-
-int _SLcompile_pop_context (void)
-{
- if (This_Compile_Block_Type == COMPILE_BLOCK_TYPE_TOP_LEVEL)
- {
- Compile_ByteCode_Ptr->bc_main_type = 0;
- if (lang_free_branch (This_Compile_Block))
- SLfree ((char *) This_Compile_Block);
- }
-
- (void) pop_block_context ();
- (void) pop_compile_context ();
-
- if (This_Compile_Block == NULL)
- return 0;
-
-#if 0
- if (This_Compile_Block_Type != COMPILE_BLOCK_TYPE_TOP_LEVEL)
- {
- SLang_verror (SL_INTERNAL_ERROR, "Not at top-level");
- return -1;
- }
-#endif
-
- return 0;
-}
-
-/*{{{ Hash and Name Table Functions */
-
-static SLang_Name_Type *locate_name_in_table (char *name, unsigned long hash,
- SLang_Name_Type **table, unsigned int table_size)
-{
- SLang_Name_Type *t;
- char ch;
-
- t = table [(unsigned int) (hash % table_size)];
- ch = *name++;
-
- while (t != NULL)
- {
- if ((ch == t->name[0])
- && (0 == strcmp (t->name + 1, name)))
- break;
-
- t = t->next;
- }
-
- return t;
-}
-
-static SLang_Name_Type *locate_namespace_encoded_name (char *name, int err_on_bad_ns)
-{
- char *ns, *ns1;
- SLang_NameSpace_Type *table;
- SLang_Name_Type *nt;
-
- ns = name;
- name = strchr (name, '-');
- if ((name == NULL) || (name [1] != '>'))
- name = ns;
-
- ns1 = SLang_create_nslstring (ns, (unsigned int) (name - ns));
- if (ns1 == NULL)
- return NULL;
- if (ns != name)
- name += 2;
- ns = ns1;
-
- if (*ns == 0)
- {
- /* Use Global Namespace */
- SLang_free_slstring (ns);
- return locate_name_in_table (name, _SLcompute_string_hash (name),
- Global_NameSpace->table, Global_NameSpace->table_size);
- }
-
- if (NULL == (table = _SLns_find_namespace (ns)))
- {
- if (err_on_bad_ns)
- SLang_verror (SL_SYNTAX_ERROR, "Unable to find namespace called %s", ns);
- SLang_free_slstring (ns);
- return NULL;
- }
- SLang_free_slstring (ns);
-
- /* FIXME: the hash table size should be stored in the hash table itself */
- nt = locate_name_in_table (name, _SLcompute_string_hash (name),
- table->table, table->table_size);
- if (nt == NULL)
- return NULL;
-
- switch (nt->name_type)
- {
- /* These are private and cannot be accessed through the namespace. */
- case SLANG_PVARIABLE:
- case SLANG_PFUNCTION:
- return NULL;
- }
- return nt;
-}
-
-static SLang_Name_Type *locate_hashed_name (char *name, unsigned long hash)
-{
- SLang_Name_Type *t;
-
- if (Lang_Defining_Function)
- {
- t = locate_name_in_table (name, hash, Locals_Hash_Table, SLLOCALS_HASH_TABLE_SIZE);
- if (t != NULL)
- return t;
- }
-
- if ((This_Static_NameSpace != NULL)
- && (NULL != (t = locate_name_in_table (name, hash, This_Static_NameSpace->table, This_Static_NameSpace->table_size))))
- return t;
-
- t = locate_name_in_table (name, hash, Global_NameSpace->table, Global_NameSpace->table_size);
- if (NULL != t)
- return t;
-
- return locate_namespace_encoded_name (name, 1);
-}
-
-SLang_Name_Type *_SLlocate_name (char *name)
-{
- return locate_hashed_name (name, _SLcompute_string_hash (name));
-}
-
-static SLang_Name_Type *
-add_name_to_hash_table (char *name, unsigned long hash,
- unsigned int sizeof_obj, unsigned char name_type,
- SLang_Name_Type **table, unsigned int table_size,
- int check_existing)
-{
- SLang_Name_Type *t;
-
- if (check_existing)
- {
- t = locate_name_in_table (name, hash, table, table_size);
- if (t != NULL)
- return t;
- }
-
- if (-1 == _SLcheck_identifier_syntax (name))
- return NULL;
-
- t = (SLang_Name_Type *) SLmalloc (sizeof_obj);
- if (t == NULL)
- return t;
-
- memset ((char *) t, 0, sizeof_obj);
- if (NULL == (t->name = _SLstring_dup_hashed_string (name, hash)))
- {
- SLfree ((char *) t);
- return NULL;
- }
- t->name_type = name_type;
-
- hash = hash % table_size;
- t->next = table [(unsigned int)hash];
- table [(unsigned int) hash] = t;
-
- return t;
-}
-
-static SLang_Name_Type *
-add_global_name (char *name, unsigned long hash,
- unsigned char name_type, unsigned int sizeof_obj,
- SLang_NameSpace_Type *ns)
-{
- SLang_Name_Type *nt;
- SLang_Name_Type **table;
- unsigned int table_size;
-
- table = ns->table;
- table_size = ns->table_size;
-
- nt = locate_name_in_table (name, hash, table, table_size);
- if (nt != NULL)
- {
- if (nt->name_type == name_type)
- return nt;
-
- SLang_verror (SL_DUPLICATE_DEFINITION, "%s cannot be re-defined", name);
- return NULL;
- }
-
- return add_name_to_hash_table (name, hash, sizeof_obj, name_type,
- table, table_size, 0);
-}
-
-static int add_intrinsic_function (SLang_NameSpace_Type *ns,
- char *name, FVOID_STAR addr, unsigned char ret_type,
- unsigned int nargs, va_list ap)
-{
- SLang_Intrin_Fun_Type *f;
- unsigned int i;
-
- if (-1 == init_interpreter ())
- return -1;
-
- if (ns == NULL) ns = Global_NameSpace;
-
- if (nargs > SLANG_MAX_INTRIN_ARGS)
- {
- SLang_verror (SL_APPLICATION_ERROR, "Function %s requires too many arguments", name);
- return -1;
- }
-
- if (ret_type == SLANG_FLOAT_TYPE)
- {
- SLang_verror (SL_NOT_IMPLEMENTED, "Function %s is not permitted to return float", name);
- return -1;
- }
-
- f = (SLang_Intrin_Fun_Type *) add_global_name (name, _SLcompute_string_hash (name),
- SLANG_INTRINSIC, sizeof (SLang_Intrin_Fun_Type),
- ns);
-
- if (f == NULL)
- return -1;
-
- f->i_fun = addr;
- f->num_args = nargs;
- f->return_type = ret_type;
-
- for (i = 0; i < nargs; i++)
- f->arg_types [i] = va_arg (ap, unsigned int);
-
- return 0;
-}
-
-int SLadd_intrinsic_function (char *name, FVOID_STAR addr, unsigned char ret_type,
- unsigned int nargs, ...)
-{
- va_list ap;
- int status;
-
- va_start (ap, nargs);
- status = add_intrinsic_function (NULL, name, addr, ret_type, nargs, ap);
- va_end (ap);
-
- return status;
-}
-
-int SLns_add_intrinsic_function (SLang_NameSpace_Type *ns,
- char *name, FVOID_STAR addr, unsigned char ret_type,
- unsigned int nargs, ...)
-{
- va_list ap;
- int status;
-
- va_start (ap, nargs);
- status = add_intrinsic_function (ns, name, addr, ret_type, nargs, ap);
- va_end (ap);
-
- return status;
-}
-
-int SLns_add_intrinsic_variable (SLang_NameSpace_Type *ns,
- char *name, VOID_STAR addr, unsigned char data_type, int ro)
-{
- SLang_Intrin_Var_Type *v;
-
- if (-1 == init_interpreter ())
- return -1;
-
- if (ns == NULL) ns = Global_NameSpace;
-
- v = (SLang_Intrin_Var_Type *)add_global_name (name,
- _SLcompute_string_hash (name),
- (ro ? SLANG_RVARIABLE : SLANG_IVARIABLE),
- sizeof (SLang_Intrin_Var_Type),
- ns);
- if (v == NULL)
- return -1;
-
- v->addr = addr;
- v->type = data_type;
- return 0;
-}
-
-int SLadd_intrinsic_variable (char *name, VOID_STAR addr, unsigned char data_type, int ro)
-{
- return SLns_add_intrinsic_variable (NULL, name, addr, data_type, ro);
-}
-
-static int
-add_slang_function (char *name, unsigned char type, unsigned long hash,
- unsigned int num_args, unsigned int num_locals,
-#if _SLANG_HAS_DEBUG_CODE
- char *file,
-#endif
- _SLBlock_Header_Type *h,
- SLang_NameSpace_Type *ns)
-{
- _SLang_Function_Type *f;
-
-#if _SLANG_HAS_DEBUG_CODE
- if ((file != NULL)
- && (NULL == (file = SLang_create_slstring (file))))
- return -1;
-#endif
-
- f = (_SLang_Function_Type *)add_global_name (name, hash,
- type,
- sizeof (_SLang_Function_Type),
- ns);
- if (f == NULL)
- {
-#if _SLANG_HAS_DEBUG_CODE
- SLang_free_slstring (file); /* NULL ok */
-#endif
- return -1;
- }
-
- if (f->v.header != NULL)
- {
- if (f->nlocals == AUTOLOAD_NUM_LOCALS)
- SLang_free_slstring ((char *)f->v.autoload_filename); /* autoloaded filename */
- else
- free_function_header (f->v.header);
- }
-
-#if _SLANG_HAS_DEBUG_CODE
- if (f->file != NULL) SLang_free_slstring (f->file);
- f->file = file;
-#endif
- f->v.header = h;
- f->nlocals = num_locals;
- f->nargs = num_args;
-
- return 0;
-}
-
-int SLang_autoload (char *name, char *file)
-{
- _SLang_Function_Type *f;
- unsigned long hash;
-
- hash = _SLcompute_string_hash (name);
- f = (_SLang_Function_Type *)locate_name_in_table (name, hash, Global_NameSpace->table, Global_NameSpace->table_size);
-
- if ((f != NULL)
- && (f->name_type == SLANG_FUNCTION)
- && (f->v.header != NULL)
- && (f->nlocals != AUTOLOAD_NUM_LOCALS))
- {
- /* already loaded */
- return 0;
- }
-
- file = SLang_create_slstring (file);
- if (-1 == add_slang_function (name, SLANG_FUNCTION, hash, 0, AUTOLOAD_NUM_LOCALS,
-#if _SLANG_HAS_DEBUG_CODE
- file,
-#endif
- (_SLBlock_Header_Type *) file,
- Global_NameSpace))
- {
- SLang_free_slstring (file);
- return -1;
- }
-
- return 0;
-}
-
-SLang_Name_Type *_SLlocate_global_name (char *name)
-{
- unsigned long hash;
-
- hash = _SLcompute_string_hash (name);
- return locate_name_in_table (name, hash, Global_NameSpace->table,
- Global_NameSpace->table_size);
-}
-
-/*}}}*/
-
-static void free_local_variable_table (void)
-{
- unsigned int i;
- SLang_Name_Type *t, *t1;
-
- for (i = 0; i < SLLOCALS_HASH_TABLE_SIZE; i++)
- {
- t = Locals_Hash_Table [i];
- while (t != NULL)
- {
- SLang_free_slstring (t->name);
- t1 = t->next;
- SLfree ((char *) t);
- t = t1;
- }
- Locals_Hash_Table [i] = NULL;
- }
- Local_Variable_Number = 0;
-}
-
-/* call inner interpreter or return for more */
-static void lang_try_now(void)
-{
- Compile_ByteCode_Ptr++;
- if (This_Compile_Block_Type != COMPILE_BLOCK_TYPE_TOP_LEVEL)
- return;
-
- Compile_ByteCode_Ptr->bc_main_type = 0; /* so next command stops after this */
-
- /* now do it */
- inner_interp (This_Compile_Block);
- (void) lang_free_branch (This_Compile_Block);
- Compile_ByteCode_Ptr = This_Compile_Block;
-}
-
-SLang_Name_Type *SLang_get_fun_from_ref (SLang_Ref_Type *ref)
-{
- if (ref->is_global)
- {
- SLang_Name_Type *nt = ref->v.nt;
-
- switch (nt->name_type)
- {
- case SLANG_PFUNCTION:
- case SLANG_FUNCTION:
- case SLANG_INTRINSIC:
- case SLANG_MATH_UNARY:
- case SLANG_APP_UNARY:
- return nt;
- }
- SLang_verror (SL_TYPE_MISMATCH,
- "Reference to a function expected. Found &%s",
- nt->name);
- }
-
- SLang_verror (SL_TYPE_MISMATCH,
- "Reference to a function expected");
- return NULL;
-}
-
-int SLexecute_function (SLang_Name_Type *nt)
-{
- unsigned char type;
- char *name;
-
- if (SLang_Error)
- return -1;
-
- type = nt->name_type;
- name = nt->name;
-
- switch (type)
- {
- case SLANG_PFUNCTION:
- case SLANG_FUNCTION:
- execute_slang_fun ((_SLang_Function_Type *) nt);
- break;
-
- case SLANG_INTRINSIC:
- execute_intrinsic_fun ((SLang_Intrin_Fun_Type *) nt);
- break;
-
- case SLANG_MATH_UNARY:
- case SLANG_APP_UNARY:
- inner_interp_nametype (nt);
- break;
-
- default:
- SLang_verror (SL_TYPE_MISMATCH, "%s is not a function", name);
- return -1;
- }
-
- if (SLang_Error)
- {
- SLang_verror (SLang_Error, "Error while executing %s", name);
- return -1;
- }
-
- return 1;
-}
-
-int SLang_execute_function (char *name)
-{
- SLang_Name_Type *entry;
-
- if (NULL == (entry = SLang_get_function (name)))
- return 0;
-
- return SLexecute_function (entry);
-}
-
-/* return S-Lang function or NULL */
-SLang_Name_Type *SLang_get_function (char *name)
-{
- SLang_Name_Type *entry;
-
- if (NULL == (entry = locate_namespace_encoded_name (name, 0)))
- return NULL;
-
- if ((entry->name_type == SLANG_FUNCTION)
- || (entry->name_type == SLANG_INTRINSIC))
- return entry;
-
- return NULL;
-}
-
-static void lang_begin_function (void)
-{
- if (This_Compile_Block_Type != COMPILE_BLOCK_TYPE_TOP_LEVEL)
- {
- SLang_verror (SL_SYNTAX_ERROR, "Function nesting is illegal");
- return;
- }
- Lang_Defining_Function = 1;
- (void) push_block_context (COMPILE_BLOCK_TYPE_FUNCTION);
-}
-
-#if USE_COMBINED_BYTECODES
-static void optimize_block (SLBlock_Type *b)
-{
- while (1)
- {
- switch (b->bc_main_type)
- {
- case 0:
- return;
-
- default:
- b++;
- break;
-
- case _SLANG_BC_CALL_DIRECT:
- b++;
- switch (b->bc_main_type)
- {
- case 0:
- return;
- case _SLANG_BC_INTRINSIC:
- if ((b+1)->bc_main_type == 0)
- {
- (b-1)->bc_main_type = _SLANG_BC_CALL_DIRECT_INTRSTOP;
- return;
- }
- (b-1)->bc_main_type = _SLANG_BC_CALL_DIRECT_INTRINSIC;
- b++;
- break;
- case _SLANG_BC_LITERAL_STR:
- (b-1)->bc_main_type = _SLANG_BC_CALL_DIRECT_LSTR;
- b++;
- break;
- case _SLANG_BC_FUNCTION:
- case _SLANG_BC_PFUNCTION:
- (b-1)->bc_main_type = _SLANG_BC_CALL_DIRECT_SLFUN;
- b++;
- break;
- case _SLANG_BC_EARG_LVARIABLE:
- (b-1)->bc_main_type = _SLANG_BC_CALL_DIRECT_EARG_LVAR;
- b++;
- break;
- case _SLANG_BC_LITERAL_INT:
- (b-1)->bc_main_type = _SLANG_BC_CALL_DIRECT_LINT;
- b++;
- break;
- case _SLANG_BC_LVARIABLE:
- (b-1)->bc_main_type = _SLANG_BC_CALL_DIRECT_LVAR;
- b++;
- break;
- }
- break;
-
- case _SLANG_BC_INTRINSIC:
- b++;
- switch (b->bc_main_type)
- {
- case _SLANG_BC_CALL_DIRECT:
- (b-1)->bc_main_type = _SLANG_BC_INTRINSIC_CALL_DIRECT;
- b++;
- break;
-#if 0
- case _SLANG_BC_BLOCK:
- (b-1)->bc_main_type = _SLANG_BC_INTRINSIC_BLOCK;
- b++;
- break;
-#endif
-
- case 0:
- (b-1)->bc_main_type = _SLANG_BC_INTRINSIC_STOP;
- return;
- }
- break;
- }
- }
-}
-
-#endif
-
-
-/* name will be NULL if the object is to simply terminate the function
- * definition. See SLang_restart.
- */
-static int lang_define_function (char *name, unsigned char type, unsigned long hash,
- SLang_NameSpace_Type *ns)
-{
- if (This_Compile_Block_Type != COMPILE_BLOCK_TYPE_FUNCTION)
- {
- SLang_verror (SL_SYNTAX_ERROR, "Premature end of function");
- return -1;
- }
-
- /* terminate function */
- Compile_ByteCode_Ptr->bc_main_type = 0;
-
- if (name != NULL)
- {
- _SLBlock_Header_Type *h;
-
- h = (_SLBlock_Header_Type *)SLmalloc (sizeof (_SLBlock_Header_Type));
- if (h != NULL)
- {
- h->num_refs = 1;
- h->body = This_Compile_Block;
-
-#if USE_COMBINED_BYTECODES
- optimize_block (h->body);
-#endif
-
- if (-1 == add_slang_function (name, type, hash,
- Function_Args_Number,
- Local_Variable_Number,
-#if _SLANG_HAS_DEBUG_CODE
- This_Compile_Filename,
-#endif
- h, ns))
- SLfree ((char *) h);
- }
- /* Drop through for clean-up */
- }
-
- free_local_variable_table ();
-
- Function_Args_Number = 0;
- Lang_Defining_Function = 0;
-
- if (SLang_Error) return -1;
- /* SLang_restart will finish this if there is a slang error. */
-
- pop_block_context ();
-
- /* A function is only defined at top-level */
- if (This_Compile_Block_Type != COMPILE_BLOCK_TYPE_TOP_LEVEL)
- {
- SLang_verror (SL_INTERNAL_ERROR, "Not at top-level");
- return -1;
- }
- Compile_ByteCode_Ptr = This_Compile_Block;
- return 0;
-}
-
-static void define_static_function (char *name, unsigned long hash)
-{
- (void) lang_define_function (name, SLANG_FUNCTION, hash, This_Static_NameSpace);
-}
-
-static void define_private_function (char *name, unsigned long hash)
-{
- (void) lang_define_function (name, SLANG_PFUNCTION, hash, This_Static_NameSpace);
-}
-
-static void define_public_function (char *name, unsigned long hash)
-{
- (void) lang_define_function (name, SLANG_FUNCTION, hash, Global_NameSpace);
-}
-
-static void lang_end_block (void)
-{
- SLBlock_Type *node, *branch;
- unsigned char mtype;
-
- if (This_Compile_Block_Type != COMPILE_BLOCK_TYPE_BLOCK)
- {
- SLang_verror (SL_SYNTAX_ERROR, "Not defining a block");
- return;
- }
-
- /* terminate the block */
- Compile_ByteCode_Ptr->bc_main_type = 0;
- branch = This_Compile_Block;
-
- /* Try to save some space by using the cached blocks. */
- if (Compile_ByteCode_Ptr == branch + 1)
- {
- mtype = branch->bc_main_type;
- if (((mtype == _SLANG_BC_BREAK)
- || (mtype == _SLANG_BC_CONTINUE)
- || (mtype == _SLANG_BC_RETURN))
- && (SLang_Error == 0))
- {
- SLfree ((char *)branch);
- branch = SLShort_Blocks + 2 * (int) (mtype - _SLANG_BC_RETURN);
- }
- }
-
-#if USE_COMBINED_BYTECODES
- optimize_block (branch);
-#endif
-
- pop_block_context ();
- node = Compile_ByteCode_Ptr++;
-
- node->bc_main_type = _SLANG_BC_BLOCK;
- node->bc_sub_type = 0;
- node->b.blk = branch;
-}
-
-static int lang_begin_block (void)
-{
- return push_block_context (COMPILE_BLOCK_TYPE_BLOCK);
-}
-
-static int lang_check_space (void)
-{
- unsigned int n;
- SLBlock_Type *p;
-
- if (NULL == (p = This_Compile_Block))
- {
- SLang_verror (SL_INTERNAL_ERROR, "Top-level block not present");
- return -1;
- }
-
- /* Allow 1 extra for terminator */
- if (Compile_ByteCode_Ptr + 1 < This_Compile_Block_Max)
- return 0;
-
- n = (unsigned int) (This_Compile_Block_Max - p);
-
- /* enlarge the space by 2 objects */
- n += 2;
-
- if (NULL == (p = (SLBlock_Type *) SLrealloc((char *)p, n * sizeof(SLBlock_Type))))
- return -1;
-
- This_Compile_Block_Max = p + n;
- n = (unsigned int) (Compile_ByteCode_Ptr - This_Compile_Block);
- This_Compile_Block = p;
- Compile_ByteCode_Ptr = p + n;
-
- return 0;
-}
-
-/* returns positive number if name is a function or negative number if it
- is a variable. If it is intrinsic, it returns magnitude of 1, else 2 */
-int SLang_is_defined(char *name)
-{
- SLang_Name_Type *t;
-
- if (-1 == init_interpreter ())
- return -1;
-
- t = locate_namespace_encoded_name (name, 0);
- if (t == NULL)
- return 0;
-
- switch (t->name_type)
- {
- case SLANG_FUNCTION:
- /* case SLANG_PFUNCTION: */
- return 2;
- case SLANG_GVARIABLE:
- /* case SLANG_PVARIABLE: */
- return -2;
-
- case SLANG_ICONSTANT:
- case SLANG_DCONSTANT:
- case SLANG_RVARIABLE:
- case SLANG_IVARIABLE:
- return -1;
-
- case SLANG_INTRINSIC:
- default:
- return 1;
- }
-}
-
-static int add_global_variable (char *name, char name_type, unsigned long hash,
- SLang_NameSpace_Type *ns)
-{
- SLang_Name_Type *g;
-
- /* Note the importance of checking if it is already defined or not. For example,
- * suppose X is defined as an intrinsic variable. Then S-Lang code like:
- * !if (is_defined("X")) { variable X; }
- * will not result in a global variable X. On the other hand, this would
- * not be an issue if 'variable' statements always were not processed
- * immediately. That is, as it is now, 'if (0) {variable ZZZZ;}' will result
- * in the variable ZZZZ being defined because of the immediate processing.
- * The current solution is to do: if (0) { eval("variable ZZZZ;"); }
- */
- /* hash = _SLcompute_string_hash (name); */
- g = locate_name_in_table (name, hash, ns->table, ns->table_size);
-
- if (g != NULL)
- {
- if (g->name_type == name_type)
- return 0;
- }
-
- if (NULL == add_global_name (name, hash, name_type,
- sizeof (SLang_Global_Var_Type), ns))
- return -1;
-
- return 0;
-}
-
-int SLadd_global_variable (char *name)
-{
- if (-1 == init_interpreter ())
- return -1;
-
- return add_global_variable (name, SLANG_GVARIABLE,
- _SLcompute_string_hash (name),
- Global_NameSpace);
-}
-
-static int add_local_variable (char *name, unsigned long hash)
-{
- SLang_Local_Var_Type *t;
-
- /* local variable */
- if (Local_Variable_Number >= SLANG_MAX_LOCAL_VARIABLES)
- {
- SLang_verror (SL_SYNTAX_ERROR, "Too many local variables");
- return -1;
- }
-
- if (NULL != locate_name_in_table (name, hash, Locals_Hash_Table, SLLOCALS_HASH_TABLE_SIZE))
- {
- SLang_verror (SL_SYNTAX_ERROR, "Local variable %s has already been defined", name);
- return -1;
- }
-
- t = (SLang_Local_Var_Type *)
- add_name_to_hash_table (name, hash,
- sizeof (SLang_Local_Var_Type), SLANG_LVARIABLE,
- Locals_Hash_Table, SLLOCALS_HASH_TABLE_SIZE, 0);
- if (t == NULL)
- return -1;
-
- t->local_var_number = Local_Variable_Number;
- Local_Variable_Number++;
- return 0;
-}
-
-static void (*Compile_Mode_Function) (_SLang_Token_Type *);
-static void compile_basic_token_mode (_SLang_Token_Type *);
-
-/* if an error occurs, discard current object, block, function, etc... */
-void SLang_restart (int localv)
-{
- int save = SLang_Error;
-
- SLang_Error = SL_UNKNOWN_ERROR;
-
- _SLcompile_ptr = _SLcompile;
- Compile_Mode_Function = compile_basic_token_mode;
-
- Lang_Break = /* Lang_Continue = */ Lang_Return = 0;
- Trace_Mode = 0;
-
- while (This_Compile_Block_Type == COMPILE_BLOCK_TYPE_BLOCK)
- lang_end_block();
-
- if (This_Compile_Block_Type == COMPILE_BLOCK_TYPE_FUNCTION)
- {
- /* Terminate function definition and free variables */
- lang_define_function (NULL, SLANG_FUNCTION, 0, Global_NameSpace);
- if (lang_free_branch (This_Compile_Block))
- SLfree((char *)This_Compile_Block);
- }
- Lang_Defining_Function = 0;
-
- SLang_Error = save;
-
- if (SLang_Error == SL_STACK_OVERFLOW)
- {
- /* This loop guarantees that the stack is properly cleaned. */
- while (_SLStack_Pointer != _SLRun_Stack)
- {
- SLdo_pop ();
- }
- }
-
- while ((This_Compile_Block_Type != COMPILE_BLOCK_TYPE_TOP_LEVEL)
- && (0 == pop_block_context ()))
- ;
-
- if (localv)
- {
- Next_Function_Num_Args = SLang_Num_Function_Args = 0;
- Local_Variable_Frame = Local_Variable_Stack;
- Recursion_Depth = 0;
- Frame_Pointer = _SLStack_Pointer;
- Frame_Pointer_Depth = 0;
- Switch_Obj_Ptr = Switch_Objects;
- while (Switch_Obj_Ptr < Switch_Obj_Max)
- {
- SLang_free_object (Switch_Obj_Ptr);
- Switch_Obj_Ptr++;
- }
- Switch_Obj_Ptr = Switch_Objects;
- }
-}
-
-static void compile_directive (unsigned char sub_type)
-{
- /* This function is called only from compile_directive_mode which is
- * only possible when a block is available.
- */
-
- /* use BLOCK */
- Compile_ByteCode_Ptr--;
- Compile_ByteCode_Ptr->bc_sub_type = sub_type;
-
- lang_try_now ();
-}
-
-static void compile_unary (int op, unsigned char mt)
-{
- Compile_ByteCode_Ptr->bc_main_type = mt;
- Compile_ByteCode_Ptr->b.i_blk = op;
- Compile_ByteCode_Ptr->bc_sub_type = 0;
-
- lang_try_now ();
-}
-
-
-static void compile_binary (int op)
-{
- Compile_ByteCode_Ptr->bc_main_type = _SLANG_BC_BINARY;
- Compile_ByteCode_Ptr->b.i_blk = op;
- Compile_ByteCode_Ptr->bc_sub_type = 0;
-
- lang_try_now ();
-}
-
-#if _SLANG_OPTIMIZE_FOR_SPEED
-static int try_compressed_bytecode (unsigned char last_bc, unsigned char bc)
-{
- if (Compile_ByteCode_Ptr != This_Compile_Block)
- {
- SLBlock_Type *b;
- b = Compile_ByteCode_Ptr - 1;
- if (b->bc_main_type == last_bc)
- {
- Compile_ByteCode_Ptr = b;
- b->bc_main_type = bc;
- lang_try_now ();
- return 0;
- }
- }
- return -1;
-}
-#endif
-
-static void compile_fast_binary (int op, unsigned char bc)
-{
-#if _SLANG_OPTIMIZE_FOR_SPEED
- if (0 == try_compressed_bytecode (_SLANG_BC_LITERAL_INT, bc))
- return;
-#else
- (void) bc;
-#endif
- compile_binary (op);
-}
-
-/* This is a hack */
-typedef struct _Special_NameTable_Type
-{
- char *name;
- int (*fun) (struct _Special_NameTable_Type *, _SLang_Token_Type *);
- VOID_STAR blk_data;
- unsigned char main_type;
-}
-Special_NameTable_Type;
-
-static int handle_special (Special_NameTable_Type *nt, _SLang_Token_Type *tok)
-{
- (void) tok;
- Compile_ByteCode_Ptr->bc_main_type = nt->main_type;
- Compile_ByteCode_Ptr->b.ptr_blk = nt->blk_data;
- return 0;
-}
-
-static int handle_special_file (Special_NameTable_Type *nt, _SLang_Token_Type *tok)
-{
- char *name;
-
- (void) nt; (void) tok;
-
- if (This_Static_NameSpace == NULL) name = "***Unknown***";
- else
- name = This_Static_NameSpace->name;
-
- name = SLang_create_slstring (name);
- if (name == NULL)
- return -1;
-
- Compile_ByteCode_Ptr->b.s_blk = name;
- Compile_ByteCode_Ptr->bc_main_type = _SLANG_BC_LITERAL_STR;
- Compile_ByteCode_Ptr->bc_sub_type = SLANG_STRING_TYPE;
- return 0;
-}
-
-static int handle_special_line (Special_NameTable_Type *nt, _SLang_Token_Type *tok)
-{
- (void) nt;
-
-#if _SLANG_HAS_DEBUG_CODE
- Compile_ByteCode_Ptr->b.l_blk = (long) tok->line_number;
-#endif
- Compile_ByteCode_Ptr->bc_main_type = _SLANG_BC_LITERAL;
- Compile_ByteCode_Ptr->bc_sub_type = SLANG_UINT_TYPE;
-
- return 0;
-}
-
-static Special_NameTable_Type Special_Name_Table [] =
-{
- {"EXECUTE_ERROR_BLOCK", handle_special, NULL, _SLANG_BC_X_ERROR},
- {"X_USER_BLOCK0", handle_special, NULL, _SLANG_BC_X_USER0},
- {"X_USER_BLOCK1", handle_special, NULL, _SLANG_BC_X_USER1},
- {"X_USER_BLOCK2", handle_special, NULL, _SLANG_BC_X_USER2},
- {"X_USER_BLOCK3", handle_special, NULL, _SLANG_BC_X_USER3},
- {"X_USER_BLOCK4", handle_special, NULL, _SLANG_BC_X_USER4},
- {"__FILE__", handle_special_file, NULL, 0},
- {"__LINE__", handle_special_line, NULL, 0},
-#if 0
- {"__NAMESPACE__", handle_special_namespace, NULL, 0},
-#endif
- {NULL, NULL, NULL, 0}
-};
-
-static void compile_hashed_identifier (char *name, unsigned long hash, _SLang_Token_Type *tok)
-{
- SLang_Name_Type *entry;
- unsigned char name_type;
-
- entry = locate_hashed_name (name, hash);
-
- if (entry == NULL)
- {
- Special_NameTable_Type *nt = Special_Name_Table;
-
- while (nt->name != NULL)
- {
- if (strcmp (name, nt->name))
- {
- nt++;
- continue;
- }
-
- if (0 == (*nt->fun)(nt, tok))
- lang_try_now ();
- return;
- }
-
- SLang_verror (SL_UNDEFINED_NAME, "%s is undefined", name);
- return;
- }
-
- name_type = entry->name_type;
- Compile_ByteCode_Ptr->bc_main_type = name_type;
-
- if (name_type == SLANG_LVARIABLE)
- Compile_ByteCode_Ptr->b.i_blk = ((SLang_Local_Var_Type *) entry)->local_var_number;
- else
- Compile_ByteCode_Ptr->b.nt_blk = entry;
-
- lang_try_now ();
-}
-
-static void compile_tmp_variable (char *name, unsigned long hash)
-{
- SLang_Name_Type *entry;
- unsigned char name_type;
-
- if (NULL == (entry = locate_hashed_name (name, hash)))
- {
- SLang_verror (SL_UNDEFINED_NAME, "%s is undefined", name);
- return;
- }
-
- name_type = entry->name_type;
- switch (name_type)
- {
- case SLANG_LVARIABLE:
- Compile_ByteCode_Ptr->b.i_blk = ((SLang_Local_Var_Type *) entry)->local_var_number;
- break;
-
- case SLANG_GVARIABLE:
- case SLANG_PVARIABLE:
- Compile_ByteCode_Ptr->b.nt_blk = entry;
- break;
-
- default:
- SLang_verror (SL_SYNTAX_ERROR, "__tmp(%s) does not specifiy a variable", name);
- return;
- }
-
- Compile_ByteCode_Ptr->bc_main_type = _SLANG_BC_TMP;
- Compile_ByteCode_Ptr->bc_sub_type = name_type;
-
- lang_try_now ();
-}
-
-static void compile_simple (unsigned char main_type)
-{
- Compile_ByteCode_Ptr->bc_main_type = main_type;
- Compile_ByteCode_Ptr->bc_sub_type = 0;
- Compile_ByteCode_Ptr->b.blk = NULL;
- lang_try_now ();
-}
-
-static void compile_identifier (char *name, _SLang_Token_Type *tok)
-{
- compile_hashed_identifier (name, _SLcompute_string_hash (name), tok);
-}
-
-static void compile_call_direct (int (*f) (void), unsigned char byte_code)
-{
- Compile_ByteCode_Ptr->b.call_function = f;
- Compile_ByteCode_Ptr->bc_main_type = byte_code;
- Compile_ByteCode_Ptr->bc_sub_type = 0;
- lang_try_now ();
-}
-
-static void compile_lvar_call_direct (int (*f)(void), unsigned char bc,
- unsigned char frame_op)
-{
-#if _SLANG_OPTIMIZE_FOR_SPEED
- if (0 == try_compressed_bytecode (_SLANG_BC_LVARIABLE, bc))
- return;
-#else
- (void) bc;
-#endif
-
- compile_call_direct (f, frame_op);
-}
-
-static void compile_integer (long i, unsigned char bc_main_type, unsigned char bc_sub_type)
-{
- Compile_ByteCode_Ptr->b.l_blk = i;
- Compile_ByteCode_Ptr->bc_main_type = bc_main_type;
- Compile_ByteCode_Ptr->bc_sub_type = bc_sub_type;
-
- lang_try_now ();
-}
-
-#if SLANG_HAS_FLOAT
-static void compile_double (char *str, unsigned char type)
-{
- double d;
- unsigned int factor = 1;
- double *ptr;
-
-#if 1
- d = _SLang_atof (str);
-#else
- if (1 != sscanf (str, "%lf", &d))
- {
- SLang_verror (SL_SYNTAX_ERROR, "Unable to convert %s to double", str);
- return;
- }
-#endif
-
-#if SLANG_HAS_COMPLEX
- if (type == SLANG_COMPLEX_TYPE) factor = 2;
-#endif
- if (NULL == (ptr = (double *) SLmalloc(factor * sizeof(double))))
- return;
-
- Compile_ByteCode_Ptr->b.double_blk = ptr;
-#if SLANG_HAS_COMPLEX
- if (type == SLANG_COMPLEX_TYPE)
- *ptr++ = 0;
-#endif
- *ptr = d;
-
- Compile_ByteCode_Ptr->bc_main_type = _SLANG_BC_LITERAL;
- Compile_ByteCode_Ptr->bc_sub_type = type;
- lang_try_now ();
-}
-
-static void compile_float (char *s)
-{
- float x;
-
-#if 1
- x = (float) _SLang_atof (s);
-#else
- if (1 != sscanf (s, "%f", &x))
- {
- SLang_verror (SL_SYNTAX_ERROR, "Unable to convert %s to float", s);
- return;
- }
-#endif
- Compile_ByteCode_Ptr->b.float_blk = x;
- Compile_ByteCode_Ptr->bc_main_type = _SLANG_BC_LITERAL;
- Compile_ByteCode_Ptr->bc_sub_type = SLANG_FLOAT_TYPE;
- lang_try_now ();
-}
-
-#endif
-
-static void compile_string (char *s, unsigned long hash)
-{
- if (NULL == (Compile_ByteCode_Ptr->b.s_blk = _SLstring_dup_hashed_string (s, hash)))
- return;
-
- Compile_ByteCode_Ptr->bc_main_type = _SLANG_BC_LITERAL_STR;
- Compile_ByteCode_Ptr->bc_sub_type = SLANG_STRING_TYPE;
-
- lang_try_now ();
-}
-
-static void compile_bstring (SLang_BString_Type *s)
-{
- if (NULL == (Compile_ByteCode_Ptr->b.bs_blk = SLbstring_dup (s)))
- return;
-
- Compile_ByteCode_Ptr->bc_main_type = _SLANG_BC_LITERAL;
- Compile_ByteCode_Ptr->bc_sub_type = SLANG_BSTRING_TYPE;
-
- lang_try_now ();
-}
-
-/* assign_type is one of _SLANG_BCST_ASSIGN, ... values */
-static void compile_assign (unsigned char assign_type,
- char *name, unsigned long hash)
-{
- SLang_Name_Type *v;
- unsigned char main_type;
- SLang_Class_Type *cl;
-
- v = locate_hashed_name (name, hash);
- if (v == NULL)
- {
- if ((_SLang_Auto_Declare_Globals == 0)
- || (NULL != strchr (name, '-')) /* namespace->name form */
- || Lang_Defining_Function
- || (assign_type != _SLANG_BCST_ASSIGN)
- || (This_Static_NameSpace == NULL))
- {
- SLang_verror (SL_UNDEFINED_NAME, "%s is undefined", name);
- return;
- }
- /* Note that function local variables are not at top level */
-
- /* Variables that are automatically declared are given static
- * scope.
- */
- if ((NULL != SLang_Auto_Declare_Var_Hook)
- && (-1 == (*SLang_Auto_Declare_Var_Hook) (name)))
- return;
-
- if ((-1 == add_global_variable (name, SLANG_GVARIABLE, hash, This_Static_NameSpace))
- || (NULL == (v = locate_hashed_name (name, hash))))
- return;
- }
-
- switch (v->name_type)
- {
- case SLANG_LVARIABLE:
- main_type = _SLANG_BC_SET_LOCAL_LVALUE;
- Compile_ByteCode_Ptr->b.i_blk = ((SLang_Local_Var_Type *) v)->local_var_number;
- break;
-
- case SLANG_GVARIABLE:
- case SLANG_PVARIABLE:
- main_type = _SLANG_BC_SET_GLOBAL_LVALUE;
- Compile_ByteCode_Ptr->b.nt_blk = v;
- break;
-
- case SLANG_IVARIABLE:
- cl = _SLclass_get_class (((SLang_Intrin_Var_Type *)v)->type);
- if (cl->cl_class_type != SLANG_CLASS_TYPE_SCALAR)
- {
- SLang_verror (SL_SYNTAX_ERROR, "Assignment to %s is not allowed", name);
- return;
- }
- main_type = _SLANG_BC_SET_INTRIN_LVALUE;
- Compile_ByteCode_Ptr->b.nt_blk = v;
- break;
-
- case SLANG_RVARIABLE:
- SLang_verror (SL_READONLY_ERROR, "%s is read-only", name);
- return;
-
- default:
- SLang_verror (SL_DUPLICATE_DEFINITION, "%s may not be used as an lvalue", name);
- return;
- }
-
- Compile_ByteCode_Ptr->bc_sub_type = assign_type;
- Compile_ByteCode_Ptr->bc_main_type = main_type;
-
- lang_try_now ();
-}
-
-static void compile_deref_assign (char *name, unsigned long hash)
-{
- SLang_Name_Type *v;
-
- v = locate_hashed_name (name, hash);
-
- if (v == NULL)
- {
- SLang_verror (SL_UNDEFINED_NAME, "%s is undefined", name);
- return;
- }
-
- switch (v->name_type)
- {
- case SLANG_LVARIABLE:
- Compile_ByteCode_Ptr->b.i_blk = ((SLang_Local_Var_Type *) v)->local_var_number;
- break;
-
- case SLANG_GVARIABLE:
- case SLANG_PVARIABLE:
- Compile_ByteCode_Ptr->b.nt_blk = v;
- break;
-
- default:
- /* FIXME: Priority=low
- * This could be made to work. It is not a priority because
- * I cannot imagine application intrinsics which are references.
- */
- SLang_verror (SL_NOT_IMPLEMENTED, "Deref assignment to %s is not allowed", name);
- return;
- }
-
- Compile_ByteCode_Ptr->bc_sub_type = v->name_type;
- Compile_ByteCode_Ptr->bc_main_type = _SLANG_BC_DEREF_ASSIGN;
-
- lang_try_now ();
-}
-
-static void
-compile_struct_assign (_SLang_Token_Type *t)
-{
- Compile_ByteCode_Ptr->bc_sub_type = _SLANG_BCST_ASSIGN + (t->type - _STRUCT_ASSIGN_TOKEN);
- Compile_ByteCode_Ptr->bc_main_type = _SLANG_BC_SET_STRUCT_LVALUE;
- Compile_ByteCode_Ptr->b.s_blk = _SLstring_dup_hashed_string (t->v.s_val, t->hash);
- lang_try_now ();
-}
-
-static void
-compile_array_assign (_SLang_Token_Type *t)
-{
- Compile_ByteCode_Ptr->bc_sub_type = _SLANG_BCST_ASSIGN + (t->type - _ARRAY_ASSIGN_TOKEN);
- Compile_ByteCode_Ptr->bc_main_type = _SLANG_BC_SET_ARRAY_LVALUE;
- Compile_ByteCode_Ptr->b.s_blk = NULL;
- lang_try_now ();
-}
-
-static void compile_dot(_SLang_Token_Type *t)
-{
- Compile_ByteCode_Ptr->bc_main_type = _SLANG_BC_FIELD;
- Compile_ByteCode_Ptr->b.s_blk = _SLstring_dup_hashed_string(t->v.s_val, t->hash);
- lang_try_now ();
-}
-
-static void compile_ref (char *name, unsigned long hash)
-{
- SLang_Name_Type *entry;
- unsigned char main_type;
-
- if (NULL == (entry = locate_hashed_name (name, hash)))
- {
- SLang_verror (SL_UNDEFINED_NAME, "%s is undefined", name);
- return;
- }
-
- main_type = entry->name_type;
-
- if (main_type == SLANG_LVARIABLE)
- {
- main_type = _SLANG_BC_LOBJPTR;
- Compile_ByteCode_Ptr->b.i_blk = ((SLang_Local_Var_Type *)entry)->local_var_number;
- }
- else
- {
- main_type = _SLANG_BC_GOBJPTR;
- Compile_ByteCode_Ptr->b.nt_blk = entry;
- }
-
- Compile_ByteCode_Ptr->bc_main_type = main_type;
- lang_try_now ();
-}
-
-static void compile_break (unsigned char break_type,
- int requires_block, int requires_fun,
- char *str)
-{
- if ((requires_fun
- && (Lang_Defining_Function == 0))
- || (requires_block
- && (This_Compile_Block_Type != COMPILE_BLOCK_TYPE_BLOCK)))
- {
- SLang_verror (SL_SYNTAX_ERROR, "misplaced %s", str);
- return;
- }
-
- Compile_ByteCode_Ptr->bc_main_type = break_type;
- Compile_ByteCode_Ptr->bc_sub_type = 0;
-
- lang_try_now ();
-}
-
-static void compile_public_variable_mode (_SLang_Token_Type *t)
-{
- if (t->type == IDENT_TOKEN)
- {
- /* If the variable is already defined in the static hash table,
- * generate an error.
- */
- if ((This_Static_NameSpace != NULL)
- && (NULL != locate_name_in_table (t->v.s_val, t->hash, This_Static_NameSpace->table, This_Static_NameSpace->table_size)))
- {
- SLang_verror (SL_DUPLICATE_DEFINITION,
- "%s already has static or private linkage in this unit",
- t->v.s_val);
- return;
- }
- add_global_variable (t->v.s_val, SLANG_GVARIABLE, t->hash, Global_NameSpace);
- }
- else if (t->type == CBRACKET_TOKEN)
- Compile_Mode_Function = compile_basic_token_mode;
- else
- SLang_verror (SL_SYNTAX_ERROR, "Misplaced token in variable list");
-}
-
-static void compile_local_variable_mode (_SLang_Token_Type *t)
-{
- if (t->type == IDENT_TOKEN)
- add_local_variable (t->v.s_val, t->hash);
- else if (t->type == CBRACKET_TOKEN)
- Compile_Mode_Function = compile_basic_token_mode;
- else
- SLang_verror (SL_SYNTAX_ERROR, "Misplaced token in variable list");
-}
-
-static void compile_static_variable_mode (_SLang_Token_Type *t)
-{
- if (t->type == IDENT_TOKEN)
- add_global_variable (t->v.s_val, SLANG_GVARIABLE, t->hash, This_Static_NameSpace);
- else if (t->type == CBRACKET_TOKEN)
- Compile_Mode_Function = compile_basic_token_mode;
- else
- SLang_verror (SL_SYNTAX_ERROR, "Misplaced token in variable list");
-}
-
-static void compile_private_variable_mode (_SLang_Token_Type *t)
-{
- if (t->type == IDENT_TOKEN)
- add_global_variable (t->v.s_val, SLANG_PVARIABLE, t->hash, This_Static_NameSpace);
- else if (t->type == CBRACKET_TOKEN)
- Compile_Mode_Function = compile_basic_token_mode;
- else
- SLang_verror (SL_SYNTAX_ERROR, "Misplaced token in variable list");
-}
-
-static void compile_function_mode (_SLang_Token_Type *t)
-{
- if (-1 == lang_check_space ())
- return;
-
- if (t->type != IDENT_TOKEN)
- SLang_verror (SL_SYNTAX_ERROR, "Expecting function name");
- else
- lang_define_function (t->v.s_val, SLANG_FUNCTION, t->hash, Global_NameSpace);
-
- Compile_Mode_Function = compile_basic_token_mode;
-}
-
-/* An error block is not permitted to contain continue or break statements.
- * This restriction may be removed later but for now reject them.
- */
-static int check_error_block (void)
-{
- SLBlock_Type *p;
- unsigned char t;
-
- /* Back up to the block and then scan it. */
- p = (Compile_ByteCode_Ptr - 1)->b.blk;
-
- while (0 != (t = p->bc_main_type))
- {
- if ((t == _SLANG_BC_BREAK)
- || (t == _SLANG_BC_CONTINUE))
- {
- SLang_verror (SL_SYNTAX_ERROR,
- "An ERROR_BLOCK is not permitted to contain continue or break statements");
- return -1;
- }
- p++;
- }
- return 0;
-}
-
-/* The only allowed tokens are the directives and another block start.
- * The mode is only active if a block is available. The inner_interp routine
- * expects such safety checks.
- */
-static void compile_directive_mode (_SLang_Token_Type *t)
-{
- int bc_sub_type;
-
- if (-1 == lang_check_space ())
- return;
-
- bc_sub_type = -1;
-
- switch (t->type)
- {
- case FOREVER_TOKEN:
- bc_sub_type = _SLANG_BCST_FOREVER;
- break;
-
- case IFNOT_TOKEN:
- bc_sub_type = _SLANG_BCST_IFNOT;
- break;
-
- case IF_TOKEN:
- bc_sub_type = _SLANG_BCST_IF;
- break;
-
- case ANDELSE_TOKEN:
- bc_sub_type = _SLANG_BCST_ANDELSE;
- break;
-
- case SWITCH_TOKEN:
- bc_sub_type = _SLANG_BCST_SWITCH;
- break;
-
- case EXITBLK_TOKEN:
- if (Lang_Defining_Function == 0)
- {
- SLang_verror (SL_SYNTAX_ERROR, "misplaced EXIT_BLOCK");
- break;
- }
- bc_sub_type = _SLANG_BCST_EXIT_BLOCK;
- break;
-
- case ERRBLK_TOKEN:
- if (This_Compile_Block_Type == COMPILE_BLOCK_TYPE_TOP_LEVEL)
- {
- SLang_verror (SL_SYNTAX_ERROR, "misplaced ERROR_BLOCK");
- break;
- }
- if (0 == check_error_block ())
- bc_sub_type = _SLANG_BCST_ERROR_BLOCK;
- break;
-
- case USRBLK0_TOKEN:
- case USRBLK1_TOKEN:
- case USRBLK2_TOKEN:
- case USRBLK3_TOKEN:
- case USRBLK4_TOKEN:
- if (This_Compile_Block_Type == COMPILE_BLOCK_TYPE_TOP_LEVEL)
- {
- SLang_verror (SL_SYNTAX_ERROR, "misplaced USER_BLOCK");
- break;
- }
- bc_sub_type = _SLANG_BCST_USER_BLOCK0 + (t->type - USRBLK0_TOKEN);
- break;
-
- case NOTELSE_TOKEN:
- bc_sub_type = _SLANG_BCST_NOTELSE;
- break;
-
- case ELSE_TOKEN:
- bc_sub_type = _SLANG_BCST_ELSE;
- break;
-
- case LOOP_TOKEN:
- bc_sub_type = _SLANG_BCST_LOOP;
- break;
-
- case DOWHILE_TOKEN:
- bc_sub_type = _SLANG_BCST_DOWHILE;
- break;
-
- case WHILE_TOKEN:
- bc_sub_type = _SLANG_BCST_WHILE;
- break;
-
- case ORELSE_TOKEN:
- bc_sub_type = _SLANG_BCST_ORELSE;
- break;
-
- case _FOR_TOKEN:
- bc_sub_type = _SLANG_BCST_FOR;
- break;
-
- case FOR_TOKEN:
- bc_sub_type = _SLANG_BCST_CFOR;
- break;
-
- case FOREACH_TOKEN:
- bc_sub_type = _SLANG_BCST_FOREACH;
- break;
-
- case OBRACE_TOKEN:
- lang_begin_block ();
- break;
-
- default:
- SLang_verror (SL_SYNTAX_ERROR, "Expecting directive token. Found 0x%X", t->type);
- break;
- }
-
- /* Reset this pointer first because compile_directive may cause a
- * file to be loaded.
- */
- Compile_Mode_Function = compile_basic_token_mode;
-
- if (bc_sub_type != -1)
- compile_directive (bc_sub_type);
-}
-
-static unsigned int Assign_Mode_Type;
-static void compile_assign_mode (_SLang_Token_Type *t)
-{
- if (t->type != IDENT_TOKEN)
- {
- SLang_verror (SL_SYNTAX_ERROR, "Expecting identifier for assignment");
- return;
- }
-
- compile_assign (Assign_Mode_Type, t->v.s_val, t->hash);
- Compile_Mode_Function = compile_basic_token_mode;
-}
-
-static void compile_basic_token_mode (_SLang_Token_Type *t)
-{
- if (-1 == lang_check_space ())
- return;
-
- switch (t->type)
- {
- case PUSH_TOKEN:
- case NOP_TOKEN:
- case EOF_TOKEN:
- case READONLY_TOKEN:
- case DO_TOKEN:
- case VARIABLE_TOKEN:
- case SEMICOLON_TOKEN:
- default:
- SLang_verror (SL_SYNTAX_ERROR, "Unknown or unsupported token type 0x%X", t->type);
- break;
-
- case DEREF_TOKEN:
- compile_call_direct (dereference_object, _SLANG_BC_CALL_DIRECT);
- break;
-
- case STRUCT_TOKEN:
- compile_call_direct (_SLstruct_define_struct, _SLANG_BC_CALL_DIRECT);
- break;
-
- case TYPEDEF_TOKEN:
- compile_call_direct (_SLstruct_define_typedef, _SLANG_BC_CALL_DIRECT);
- break;
-
- case TMP_TOKEN:
- compile_tmp_variable (t->v.s_val, t->hash);
- break;
-
- case DOT_TOKEN: /* X . field */
- compile_dot (t);
- break;
-
- case COMMA_TOKEN:
- break; /* do nothing */
-
- case IDENT_TOKEN:
- compile_hashed_identifier (t->v.s_val, t->hash, t);
- break;
-
- case _REF_TOKEN:
- compile_ref (t->v.s_val, t->hash);
- break;
-
- case ARG_TOKEN:
- compile_call_direct (SLang_start_arg_list, _SLANG_BC_CALL_DIRECT);
- break;
-
- case EARG_TOKEN:
- compile_lvar_call_direct (SLang_end_arg_list, _SLANG_BC_EARG_LVARIABLE, _SLANG_BC_CALL_DIRECT);
- break;
-
- case COLON_TOKEN:
- if (This_Compile_Block_Type == COMPILE_BLOCK_TYPE_BLOCK)
- compile_simple (_SLANG_BC_LABEL);
- else SLang_Error = SL_SYNTAX_ERROR;
- break;
-
- case POP_TOKEN:
- compile_call_direct (SLdo_pop, _SLANG_BC_CALL_DIRECT);
- break;
-
- case CASE_TOKEN:
- if (This_Compile_Block_Type != COMPILE_BLOCK_TYPE_BLOCK)
- SLang_verror (SL_SYNTAX_ERROR, "Misplaced 'case'");
- else
- compile_call_direct (case_function, _SLANG_BC_CALL_DIRECT);
- break;
-
- case CHAR_TOKEN:
- compile_integer (t->v.long_val, _SLANG_BC_LITERAL, SLANG_CHAR_TYPE);
- break;
- case SHORT_TOKEN:
- compile_integer (t->v.long_val, _SLANG_BC_LITERAL, SLANG_SHORT_TYPE);
- break;
- case INT_TOKEN:
- compile_integer (t->v.long_val, _SLANG_BC_LITERAL_INT, SLANG_INT_TYPE);
- break;
- case UCHAR_TOKEN:
- compile_integer (t->v.long_val, _SLANG_BC_LITERAL, SLANG_UCHAR_TYPE);
- break;
- case USHORT_TOKEN:
- compile_integer (t->v.long_val, _SLANG_BC_LITERAL, SLANG_USHORT_TYPE);
- break;
- case UINT_TOKEN:
- compile_integer (t->v.long_val, _SLANG_BC_LITERAL_INT, SLANG_UINT_TYPE);
- break;
- case LONG_TOKEN:
- compile_integer (t->v.long_val, _SLANG_BC_LITERAL, SLANG_LONG_TYPE);
- break;
- case ULONG_TOKEN:
- compile_integer (t->v.long_val, _SLANG_BC_LITERAL, SLANG_ULONG_TYPE);
- break;
-
-#if SLANG_HAS_FLOAT
- case FLOAT_TOKEN:
- compile_float (t->v.s_val);
- break;
-
- case DOUBLE_TOKEN:
- compile_double (t->v.s_val, SLANG_DOUBLE_TYPE);
- break;
-#endif
-#if SLANG_HAS_COMPLEX
- case COMPLEX_TOKEN:
- compile_double (t->v.s_val, SLANG_COMPLEX_TYPE);
- break;
-#endif
-
- case STRING_TOKEN:
- compile_string (t->v.s_val, t->hash);
- break;
-
- case _BSTRING_TOKEN:
- compile_bstring (SLbstring_create ((unsigned char *)t->v.s_val, (unsigned int) t->hash));
- break;
-
- case BSTRING_TOKEN:
- compile_bstring (t->v.b_val);
- break;
-
- case _NULL_TOKEN:
- compile_identifier ("NULL", t);
- break;
-
- case _INLINE_WILDCARD_ARRAY_TOKEN:
- compile_call_direct (_SLarray_wildcard_array, _SLANG_BC_CALL_DIRECT);
- break;
-
- case _INLINE_ARRAY_TOKEN:
- compile_call_direct (_SLarray_inline_array, _SLANG_BC_CALL_DIRECT_FRAME);
- break;
-
- case _INLINE_IMPLICIT_ARRAY_TOKEN:
- compile_call_direct (_SLarray_inline_implicit_array, _SLANG_BC_CALL_DIRECT_FRAME);
- break;
-
- case ARRAY_TOKEN:
- compile_lvar_call_direct (_SLarray_aget, _SLANG_BC_LVARIABLE_AGET, _SLANG_BC_CALL_DIRECT_FRAME);
- break;
-
- /* Note: I need to add the other _ARRAY assign tokens. */
- case _ARRAY_PLUSEQS_TOKEN:
- case _ARRAY_MINUSEQS_TOKEN:
- case _ARRAY_TIMESEQS_TOKEN:
- case _ARRAY_DIVEQS_TOKEN:
- case _ARRAY_BOREQS_TOKEN:
- case _ARRAY_BANDEQS_TOKEN:
- case _ARRAY_POST_MINUSMINUS_TOKEN:
- case _ARRAY_MINUSMINUS_TOKEN:
- case _ARRAY_POST_PLUSPLUS_TOKEN:
- case _ARRAY_PLUSPLUS_TOKEN:
- compile_array_assign (t);
- break;
-
- case _ARRAY_ASSIGN_TOKEN:
- compile_lvar_call_direct (_SLarray_aput, _SLANG_BC_LVARIABLE_APUT, _SLANG_BC_CALL_DIRECT_FRAME);
- break;
-
- case _STRUCT_ASSIGN_TOKEN:
- case _STRUCT_PLUSEQS_TOKEN:
- case _STRUCT_MINUSEQS_TOKEN:
- case _STRUCT_TIMESEQS_TOKEN:
- case _STRUCT_DIVEQS_TOKEN:
- case _STRUCT_BOREQS_TOKEN:
- case _STRUCT_BANDEQS_TOKEN:
- case _STRUCT_POST_MINUSMINUS_TOKEN:
- case _STRUCT_MINUSMINUS_TOKEN:
- case _STRUCT_POST_PLUSPLUS_TOKEN:
- case _STRUCT_PLUSPLUS_TOKEN:
- compile_struct_assign (t);
- break;
-
- case _SCALAR_ASSIGN_TOKEN:
- case _SCALAR_PLUSEQS_TOKEN:
- case _SCALAR_MINUSEQS_TOKEN:
- case _SCALAR_TIMESEQS_TOKEN:
- case _SCALAR_DIVEQS_TOKEN:
- case _SCALAR_BOREQS_TOKEN:
- case _SCALAR_BANDEQS_TOKEN:
- case _SCALAR_POST_MINUSMINUS_TOKEN:
- case _SCALAR_MINUSMINUS_TOKEN:
- case _SCALAR_POST_PLUSPLUS_TOKEN:
- case _SCALAR_PLUSPLUS_TOKEN:
- compile_assign (_SLANG_BCST_ASSIGN + (t->type - _SCALAR_ASSIGN_TOKEN),
- t->v.s_val, t->hash);
- break;
-
- case _DEREF_ASSIGN_TOKEN:
- compile_deref_assign (t->v.s_val, t->hash);
- break;
-
- /* For processing RPN tokens */
- case ASSIGN_TOKEN:
- case PLUSEQS_TOKEN:
- case MINUSEQS_TOKEN:
- case TIMESEQS_TOKEN:
- case DIVEQS_TOKEN:
- case BOREQS_TOKEN:
- case BANDEQS_TOKEN:
- case POST_MINUSMINUS_TOKEN:
- case MINUSMINUS_TOKEN:
- case POST_PLUSPLUS_TOKEN:
- case PLUSPLUS_TOKEN:
- Compile_Mode_Function = compile_assign_mode;
- Assign_Mode_Type = _SLANG_BCST_ASSIGN + (t->type - ASSIGN_TOKEN);
- break;
-
- case LT_TOKEN:
- compile_binary (SLANG_LT);
- break;
-
- case LE_TOKEN:
- compile_binary (SLANG_LE);
- break;
-
- case GT_TOKEN:
- compile_binary (SLANG_GT);
- break;
-
- case GE_TOKEN:
- compile_binary (SLANG_GE);
- break;
-
- case EQ_TOKEN:
- compile_binary (SLANG_EQ);
- break;
-
- case NE_TOKEN:
- compile_binary (SLANG_NE);
- break;
-
- case AND_TOKEN:
- compile_binary (SLANG_AND);
- break;
-
- case ADD_TOKEN:
- compile_fast_binary (SLANG_PLUS, _SLANG_BC_INTEGER_PLUS);
- break;
-
- case SUB_TOKEN:
- compile_fast_binary (SLANG_MINUS, _SLANG_BC_INTEGER_MINUS);
- break;
-
- case TIMES_TOKEN:
- compile_binary (SLANG_TIMES);
- break;
-
- case DIV_TOKEN:
- compile_binary (SLANG_DIVIDE);
- break;
-
- case POW_TOKEN:
- compile_binary (SLANG_POW);
- break;
-
- case BXOR_TOKEN:
- compile_binary (SLANG_BXOR);
- break;
-
- case BAND_TOKEN:
- compile_binary (SLANG_BAND);
- break;
-
- case BOR_TOKEN:
- compile_binary (SLANG_BOR);
- break;
-
- case SHR_TOKEN:
- compile_binary (SLANG_SHR);
- break;
-
- case SHL_TOKEN:
- compile_binary (SLANG_SHL);
- break;
-
- case MOD_TOKEN:
- compile_binary (SLANG_MOD);
- break;
-
- case OR_TOKEN:
- compile_binary (SLANG_OR);
- break;
-
- case NOT_TOKEN:
- compile_unary (SLANG_NOT, _SLANG_BC_UNARY);
- break;
-
- case BNOT_TOKEN:
- compile_unary (SLANG_BNOT, _SLANG_BC_UNARY);
- break;
-
- case MUL2_TOKEN:
- compile_unary (SLANG_MUL2, _SLANG_BC_UNARY_FUNC);
- break;
-
- case CHS_TOKEN:
- compile_unary (SLANG_CHS, _SLANG_BC_UNARY_FUNC);
- break;
-
- case ABS_TOKEN:
- compile_unary (SLANG_ABS, _SLANG_BC_UNARY_FUNC);
- break;
-
- case SQR_TOKEN:
- compile_unary (SLANG_SQR, _SLANG_BC_UNARY_FUNC);
- break;
-
- case SIGN_TOKEN:
- compile_unary (SLANG_SIGN, _SLANG_BC_UNARY_FUNC);
- break;
-
- case BREAK_TOKEN:
- compile_break (_SLANG_BC_BREAK, 1, 0, "break");
- break;
-
- case RETURN_TOKEN:
- compile_break (_SLANG_BC_RETURN, 0, 1, "return");
- break;
-
- case CONT_TOKEN:
- compile_break (_SLANG_BC_CONTINUE, 1, 0, "continue");
- break;
-
- case EXCH_TOKEN:
- compile_break (_SLANG_BC_EXCH, 0, 0, ""); /* FIXME: Priority=low */
- break;
-
- case STATIC_TOKEN:
- if (Lang_Defining_Function == 0)
- Compile_Mode_Function = compile_static_variable_mode;
- else
- SLang_verror (SL_NOT_IMPLEMENTED, "static variables not permitted in functions");
- break;
-
- case PRIVATE_TOKEN:
- if (Lang_Defining_Function == 0)
- Compile_Mode_Function = compile_private_variable_mode;
- else
- SLang_verror (SL_NOT_IMPLEMENTED, "private variables not permitted in functions");
- break;
-
- case PUBLIC_TOKEN:
- if (Lang_Defining_Function == 0)
- Compile_Mode_Function = compile_public_variable_mode;
- else
- SLang_verror (SL_NOT_IMPLEMENTED, "public variables not permitted in functions");
- break;
-
- case OBRACKET_TOKEN:
- if (Lang_Defining_Function == 0)
- Compile_Mode_Function = Default_Variable_Mode;
- else
- Compile_Mode_Function = compile_local_variable_mode;
- break;
-
- case OPAREN_TOKEN:
- lang_begin_function ();
- break;
-
- case DEFINE_STATIC_TOKEN:
- if (Lang_Defining_Function)
- define_static_function (t->v.s_val, t->hash);
- else SLang_Error = SL_SYNTAX_ERROR;
- break;
-
- case DEFINE_PRIVATE_TOKEN:
- if (Lang_Defining_Function)
- define_private_function (t->v.s_val, t->hash);
- else SLang_Error = SL_SYNTAX_ERROR;
- break;
-
- case DEFINE_PUBLIC_TOKEN:
- if (Lang_Defining_Function)
- define_public_function (t->v.s_val, t->hash);
- else SLang_Error = SL_SYNTAX_ERROR;
- break;
-
- case DEFINE_TOKEN:
- if (Lang_Defining_Function)
- (*Default_Define_Function) (t->v.s_val, t->hash);
- else
- SLang_Error = SL_SYNTAX_ERROR;
- break;
-
- case CPAREN_TOKEN:
- if (Lang_Defining_Function)
- Compile_Mode_Function = compile_function_mode;
- else SLang_Error = SL_SYNTAX_ERROR;
- break;
-
- case CBRACE_TOKEN:
- lang_end_block ();
- Compile_Mode_Function = compile_directive_mode;
- break;
-
- case OBRACE_TOKEN:
- lang_begin_block ();
- break;
-
- case FARG_TOKEN:
- Function_Args_Number = Local_Variable_Number;
- break;
-
-#if _SLANG_HAS_DEBUG_CODE
- case LINE_NUM_TOKEN:
- Compile_ByteCode_Ptr->bc_main_type = _SLANG_BC_LINE_NUM;
- Compile_ByteCode_Ptr->b.l_blk = t->v.long_val;
- lang_try_now ();
- break;
-#endif
- case POUND_TOKEN:
- compile_call_direct (_SLarray_matrix_multiply, _SLANG_BC_CALL_DIRECT);
- break;
- }
-}
-
-void _SLcompile (_SLang_Token_Type *t)
-{
- if (SLang_Error == 0)
- {
- if (Compile_Mode_Function != compile_basic_token_mode)
- {
- if (Compile_Mode_Function == NULL)
- Compile_Mode_Function = compile_basic_token_mode;
-#if _SLANG_HAS_DEBUG_CODE
- if (t->type == LINE_NUM_TOKEN)
- {
- compile_basic_token_mode (t);
- return;
- }
-#endif
- }
-
- (*Compile_Mode_Function) (t);
- }
-
- if (SLang_Error)
- {
- Compile_Mode_Function = compile_basic_token_mode;
- SLang_restart (0);
- }
-}
-
-void (*_SLcompile_ptr)(_SLang_Token_Type *) = _SLcompile;
-
-typedef struct _Compile_Context_Type
-{
- struct _Compile_Context_Type *next;
- SLang_NameSpace_Type *static_namespace;
- void (*compile_variable_mode) (_SLang_Token_Type *);
- void (*define_function) (char *, unsigned long);
- int lang_defining_function;
- int local_variable_number;
- unsigned int function_args_number;
- SLang_Name_Type **locals_hash_table;
- void (*compile_mode_function)(_SLang_Token_Type *);
-#if _SLANG_HAS_DEBUG_CODE
- char *compile_filename;
-#endif
-}
-Compile_Context_Type;
-
-static Compile_Context_Type *Compile_Context_Stack;
-
-/* The only way the push/pop_context functions can get called is via
- * an eval type function. That can only happen when executed from a
- * top level block. This means that Compile_ByteCode_Ptr can always be
- * rest back to the beginning of a block.
- */
-
-static int pop_compile_context (void)
-{
- Compile_Context_Type *cc;
-
- if (NULL == (cc = Compile_Context_Stack))
- return -1;
-
- This_Static_NameSpace = cc->static_namespace;
- Compile_Context_Stack = cc->next;
- Default_Variable_Mode = cc->compile_variable_mode;
- Default_Define_Function = cc->define_function;
- Compile_Mode_Function = cc->compile_mode_function;
-
- Lang_Defining_Function = cc->lang_defining_function;
- Local_Variable_Number = cc->local_variable_number;
- Function_Args_Number = cc->function_args_number;
-
-#if _SLANG_HAS_DEBUG_CODE
- SLang_free_slstring (This_Compile_Filename);
- This_Compile_Filename = cc->compile_filename;
-#endif
-
- SLfree ((char *) Locals_Hash_Table);
- Locals_Hash_Table = cc->locals_hash_table;
-
- SLfree ((char *) cc);
-
- return 0;
-}
-
-static int push_compile_context (char *name)
-{
- Compile_Context_Type *cc;
- SLang_Name_Type **lns;
-
- cc = (Compile_Context_Type *)SLmalloc (sizeof (Compile_Context_Type));
- if (cc == NULL)
- return -1;
- memset ((char *) cc, 0, sizeof (Compile_Context_Type));
-
- lns = (SLang_Name_Type **) SLcalloc (sizeof (SLang_Name_Type *), SLLOCALS_HASH_TABLE_SIZE);
- if (lns == NULL)
- {
- SLfree ((char *) cc);
- return -1;
- }
-
-#if _SLANG_HAS_DEBUG_CODE
- if ((name != NULL)
- && (NULL == (name = SLang_create_slstring (name))))
- {
- SLfree ((char *) cc);
- SLfree ((char *) lns);
- return -1;
- }
-
- cc->compile_filename = This_Compile_Filename;
- This_Compile_Filename = name;
-#endif
-
- cc->static_namespace = This_Static_NameSpace;
- cc->compile_variable_mode = Default_Variable_Mode;
- cc->define_function = Default_Define_Function;
- cc->locals_hash_table = Locals_Hash_Table;
-
- cc->lang_defining_function = Lang_Defining_Function;
- cc->local_variable_number = Local_Variable_Number;
- cc->function_args_number = Function_Args_Number;
- cc->locals_hash_table = Locals_Hash_Table;
- cc->compile_mode_function = Compile_Mode_Function;
-
- cc->next = Compile_Context_Stack;
- Compile_Context_Stack = cc;
-
- Compile_Mode_Function = compile_basic_token_mode;
- Default_Variable_Mode = compile_public_variable_mode;
- Default_Define_Function = define_public_function;
- Lang_Defining_Function = 0;
- Local_Variable_Number = 0;
- Function_Args_Number = 0;
- Locals_Hash_Table = lns;
- return 0;
-}
-
-static int init_interpreter (void)
-{
- SLang_NameSpace_Type *ns;
-
- if (Global_NameSpace != NULL)
- return 0;
-
- if (NULL == (ns = _SLns_allocate_namespace ("***GLOBAL***", SLGLOBALS_HASH_TABLE_SIZE)))
- return -1;
- if (-1 == _SLns_set_namespace_name (ns, "Global"))
- return -1;
- Global_NameSpace = ns;
-
- _SLRun_Stack = (SLang_Object_Type *) SLcalloc (SLANG_MAX_STACK_LEN,
- sizeof (SLang_Object_Type));
- if (_SLRun_Stack == NULL)
- return -1;
-
- _SLStack_Pointer = _SLRun_Stack;
- _SLStack_Pointer_Max = _SLRun_Stack + SLANG_MAX_STACK_LEN;
-
- SLShort_Blocks[0].bc_main_type = _SLANG_BC_RETURN;
- SLShort_Blocks[2].bc_main_type = _SLANG_BC_BREAK;
- SLShort_Blocks[4].bc_main_type = _SLANG_BC_CONTINUE;
-
- Num_Args_Stack = (int *) SLmalloc (sizeof (int) * SLANG_MAX_RECURSIVE_DEPTH);
- if (Num_Args_Stack == NULL)
- {
- SLfree ((char *) _SLRun_Stack);
- return -1;
- }
- Recursion_Depth = 0;
- Frame_Pointer_Stack = (unsigned int *) SLmalloc (sizeof (unsigned int) * SLANG_MAX_RECURSIVE_DEPTH);
- if (Frame_Pointer_Stack == NULL)
- {
- SLfree ((char *) _SLRun_Stack);
- SLfree ((char *)Num_Args_Stack);
- return -1;
- }
- Frame_Pointer_Depth = 0;
- Frame_Pointer = _SLRun_Stack;
-
- Default_Variable_Mode = compile_public_variable_mode;
- Default_Define_Function = define_public_function;
- return 0;
-}
-
-static int add_generic_table (SLang_NameSpace_Type *ns,
- SLang_Name_Type *table, char *pp_name,
- unsigned int entry_len)
-{
- SLang_Name_Type *t, **ns_table;
- char *name;
- unsigned int table_size;
-
- if (-1 == init_interpreter ())
- return -1;
-
- if (ns == NULL)
- ns = Global_NameSpace;
-
- ns_table = ns->table;
- table_size = ns->table_size;
-
- if ((pp_name != NULL)
- && (-1 == SLdefine_for_ifdef (pp_name)))
- return -1;
-
- t = table;
- while (NULL != (name = t->name))
- {
- unsigned long hash;
-
- /* Backward compatibility: '.' WAS used as hash marker */
- if (*name == '.')
- {
- name++;
- t->name = name;
- }
-
- if (NULL == (name = SLang_create_slstring (name)))
- return -1;
-
- t->name = name;
-
- hash = _SLcompute_string_hash (name);
- hash = hash % table_size;
-
- t->next = ns_table [(unsigned int) hash];
- ns_table [(unsigned int) hash] = t;
-
- t = (SLang_Name_Type *) ((char *)t + entry_len);
- }
-
- return 0;
-}
-
-int SLadd_intrin_fun_table (SLang_Intrin_Fun_Type *tbl, char *pp)
-{
- return add_generic_table (NULL, (SLang_Name_Type *) tbl, pp, sizeof (SLang_Intrin_Fun_Type));
-}
-
-int SLadd_intrin_var_table (SLang_Intrin_Var_Type *tbl, char *pp)
-{
- return add_generic_table (NULL, (SLang_Name_Type *) tbl, pp, sizeof (SLang_Intrin_Var_Type));
-}
-
-int SLadd_app_unary_table (SLang_App_Unary_Type *tbl, char *pp)
-{
- return add_generic_table (NULL, (SLang_Name_Type *) tbl, pp, sizeof (SLang_App_Unary_Type));
-}
-
-int SLadd_math_unary_table (SLang_Math_Unary_Type *tbl, char *pp)
-{
- return add_generic_table (NULL, (SLang_Name_Type *) tbl, pp, sizeof (SLang_Math_Unary_Type));
-}
-
-int SLadd_iconstant_table (SLang_IConstant_Type *tbl, char *pp)
-{
- return add_generic_table (NULL, (SLang_Name_Type *) tbl, pp, sizeof (SLang_IConstant_Type));
-}
-
-#if SLANG_HAS_FLOAT
-int SLadd_dconstant_table (SLang_DConstant_Type *tbl, char *pp)
-{
- return add_generic_table (NULL, (SLang_Name_Type *) tbl, pp, sizeof (SLang_DConstant_Type));
-}
-#endif
-
-/* ----------- */
-int SLns_add_intrin_fun_table (SLang_NameSpace_Type *ns, SLang_Intrin_Fun_Type *tbl, char *pp)
-{
- return add_generic_table (ns, (SLang_Name_Type *) tbl, pp, sizeof (SLang_Intrin_Fun_Type));
-}
-
-int SLns_add_intrin_var_table (SLang_NameSpace_Type *ns, SLang_Intrin_Var_Type *tbl, char *pp)
-{
- return add_generic_table (ns, (SLang_Name_Type *) tbl, pp, sizeof (SLang_Intrin_Var_Type));
-}
-
-int SLns_add_app_unary_table (SLang_NameSpace_Type *ns, SLang_App_Unary_Type *tbl, char *pp)
-{
- return add_generic_table (ns, (SLang_Name_Type *) tbl, pp, sizeof (SLang_App_Unary_Type));
-}
-
-int SLns_add_math_unary_table (SLang_NameSpace_Type *ns, SLang_Math_Unary_Type *tbl, char *pp)
-{
- return add_generic_table (ns, (SLang_Name_Type *) tbl, pp, sizeof (SLang_Math_Unary_Type));
-}
-
-int SLns_add_iconstant_table (SLang_NameSpace_Type *ns, SLang_IConstant_Type *tbl, char *pp)
-{
- return add_generic_table (ns, (SLang_Name_Type *) tbl, pp, sizeof (SLang_IConstant_Type));
-}
-
-#if SLANG_HAS_FLOAT
-int SLns_add_dconstant_table (SLang_NameSpace_Type *ns, SLang_DConstant_Type *tbl, char *pp)
-{
- return add_generic_table (ns, (SLang_Name_Type *) tbl, pp, sizeof (SLang_DConstant_Type));
-}
-#endif
-
-/* what is a bitmapped value:
- * 1 intrin fun
- * 2 user fun
- * 4 intrin var
- * 8 user defined var
- */
-SLang_Array_Type *_SLang_apropos (char *namespace_name, char *pat, unsigned int what)
-{
- SLang_NameSpace_Type *ns;
-
- if (namespace_name == NULL)
- namespace_name = "Global";
-
- if (*namespace_name == 0)
- ns = This_Static_NameSpace;
- else ns = _SLns_find_namespace (namespace_name);
-
- return _SLnspace_apropos (ns, pat, what);
-}
-
-void _SLang_implements_intrinsic (char *name)
-{
- if (This_Static_NameSpace == NULL)
- {
- SLang_verror (SL_INTRINSIC_ERROR, "No namespace available");
- return;
- }
-
- (void) _SLns_set_namespace_name (This_Static_NameSpace, name);
-
- Default_Define_Function = define_static_function;
- Default_Variable_Mode = compile_static_variable_mode;
-}
-
-void _SLang_use_namespace_intrinsic (char *name)
-{
- SLang_NameSpace_Type *ns;
-
- if (NULL == (ns = _SLns_find_namespace (name)))
- {
- SLang_verror (SL_INTRINSIC_ERROR, "Namespace %s does not exist", name);
- return;
- }
- This_Static_NameSpace = ns;
- if (Global_NameSpace == ns)
- {
- Default_Define_Function = define_public_function;
- Default_Variable_Mode = compile_public_variable_mode;
- }
- else
- {
- Default_Define_Function = define_static_function;
- Default_Variable_Mode = compile_static_variable_mode;
- }
-}
-
-
-char *_SLang_cur_namespace_intrinsic (void)
-{
- if (This_Static_NameSpace == NULL)
- return "Global";
-
- if (This_Static_NameSpace->namespace_name == NULL)
- return "";
-
- return This_Static_NameSpace->namespace_name;
-}
diff --git a/mdk-stage1/slang/slang.h b/mdk-stage1/slang/slang.h
deleted file mode 100644
index 900b14043..000000000
--- a/mdk-stage1/slang/slang.h
+++ /dev/null
@@ -1,1930 +0,0 @@
-#ifndef DAVIS_SLANG_H_
-#define DAVIS_SLANG_H_
-/* -*- mode: C; mode: fold; -*- */
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-#define SLANG_VERSION 10404
-#define SLANG_VERSION_STRING "1.4.4"
-
-/*{{{ System Dependent Macros and Typedefs */
-
-#if defined(__WATCOMC__) && defined(DOS)
-# ifndef __MSDOS__
-# define __MSDOS__
-# endif
-# ifndef DOS386
-# define DOS386
-# endif
-# ifndef IBMPC_SYSTEM
-# define IBMPC_SYSTEM
-# endif
-#endif /* __watcomc__ */
-
-#if defined(unix) || defined(__unix)
-# ifndef __unix__
-# define __unix__ 1
-# endif
-#endif
-
-#if !defined(__GO32__)
-# ifdef __unix__
-# define REAL_UNIX_SYSTEM
-# endif
-#endif
-
-/* Set of the various defines for pc systems. This includes OS/2 */
-#ifdef __GO32__
-# ifndef __DJGPP__
-# define __DJGPP__ 1
-# endif
-# ifndef IBMPC_SYSTEM
-# define IBMPC_SYSTEM
-# endif
-#endif
-
-#ifdef __BORLANDC__
-# ifndef IBMPC_SYSTEM
-# define IBMPC_SYSTEM
-# endif
-#endif
-
-#ifdef __MSDOS__
-# ifndef IBMPC_SYSTEM
-# define IBMPC_SYSTEM
-# endif
-#endif
-
-#if defined(OS2) || defined(__os2__)
-# ifndef IBMPC_SYSTEM
-# define IBMPC_SYSTEM
-# endif
-# ifndef __os2__
-# define __os2__
-# endif
-#endif
-
-#if defined(__NT__) || defined(__MINGW32__) || defined(__CYGWIN32__)
-# ifndef IBMPC_SYSTEM
-# define IBMPC_SYSTEM
-# endif
-#endif
-
-#if defined(IBMPC_SYSTEM) || defined(VMS)
-# ifdef REAL_UNIX_SYSTEM
-# undef REAL_UNIX_SYSTEM
-# endif
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if 0
-}
-#endif
-
-#include <stdio.h>
-#include <stdarg.h>
-#if defined(__STDC__) || defined(__BORLANDC__) || defined(__cplusplus)
-# include <stddef.h> /* for offsetof */
-#endif
-
-/* ---------------------------- Generic Macros ----------------------------- */
-
-/* __SC__ is defined for Symantec C++
- DOS386 is defined for -mx memory model, 32 bit DOS extender. */
-
-#if defined(__SC__) && !defined(DOS386)
-# include <dos.h>
-#endif
-
-#if defined(__BORLANDC__)
-# include <alloc.h>
-#endif
-
-#if defined (__cplusplus) || defined(__STDC__) || defined(IBMPC_SYSTEM)
- typedef void *VOID_STAR;
-#else
- typedef unsigned char *VOID_STAR;
-#endif
-
-typedef int (*FVOID_STAR)(void);
-
-#if defined(__MSDOS_) && defined(__BORLANDC__)
-# define SLFREE(buf) farfree((void far *)(buf))
-# define SLMALLOC(x) farmalloc((unsigned long) (x))
-# define SLREALLOC(buf, n) farrealloc((void far *) (buf), (unsigned long) (n))
-# define SLCALLOC(n, m) farcalloc((unsigned long) (n), (unsigned long) (m))
-#else
-# if defined(VMS) && !defined(__DECC)
-# define SLFREE VAXC$FREE_OPT
-# define SLMALLOC VAXC$MALLOC_OPT
-# define SLREALLOC VAXC$REALLOC_OPT
-# define SLCALLOC VAXC$CALLOC_OPT
-# else
-# define SLFREE(x) free((char *)(x))
-# define SLMALLOC malloc
-# define SLREALLOC realloc
-# define SLCALLOC calloc
-# endif
-#endif
-
- extern char *SLdebug_malloc (unsigned long);
- extern char *SLdebug_calloc (unsigned long, unsigned long);
- extern char *SLdebug_realloc (char *, unsigned long);
- extern void SLdebug_free (char *);
- extern void SLmalloc_dump_statistics (void);
- extern char *SLstrcpy(register char *, register char *);
- extern int SLstrcmp(register char *, register char *);
- extern char *SLstrncpy(char *, register char *, register int);
-
- extern void SLmemset (char *, char, int);
- extern char *SLmemchr (register char *, register char, register int);
- extern char *SLmemcpy (char *, char *, int);
- extern int SLmemcmp (char *, char *, int);
-
-/*}}}*/
-
-/*{{{ Interpreter Typedefs */
-
-typedef struct _SLang_Name_Type
-{
- char *name;
- struct _SLang_Name_Type *next;
- char name_type;
- /* These values must be less than 0x10 because they map directly
- * to byte codes. See _slang.h.
- */
-#define SLANG_LVARIABLE 0x01
-#define SLANG_GVARIABLE 0x02
-#define SLANG_IVARIABLE 0x03 /* intrinsic variables */
- /* Note!!! For Macro MAKE_VARIABLE below to work, SLANG_IVARIABLE Must
- be 1 less than SLANG_RVARIABLE!!! */
-#define SLANG_RVARIABLE 0x04 /* read only variable */
-#define SLANG_INTRINSIC 0x05
-#define SLANG_FUNCTION 0x06
-#define SLANG_MATH_UNARY 0x07
-#define SLANG_APP_UNARY 0x08
-#define SLANG_ICONSTANT 0x09
-#define SLANG_DCONSTANT 0x0A
-#define SLANG_PVARIABLE 0x0B /* private */
-#define SLANG_PFUNCTION 0x0C /* private */
-
- /* Rest of fields depend on name type */
-}
-SLang_Name_Type;
-
-typedef struct
-{
- char *name;
- struct _SLang_Name_Type *next; /* this is for the hash table */
- char name_type;
-
- FVOID_STAR i_fun; /* address of object */
-
- /* Do not change this without modifying slang.c:execute_intrinsic_fun */
-#define SLANG_MAX_INTRIN_ARGS 7
- unsigned char arg_types [SLANG_MAX_INTRIN_ARGS];
- unsigned char num_args;
- unsigned char return_type;
-}
-SLang_Intrin_Fun_Type;
-
-typedef struct
-{
- char *name;
- SLang_Name_Type *next;
- char name_type;
-
- VOID_STAR addr;
- unsigned char type;
-}
-SLang_Intrin_Var_Type;
-
-typedef struct
-{
- char *name;
- SLang_Name_Type *next;
- char name_type;
-
- int unary_op;
-}
-SLang_App_Unary_Type;
-
-typedef struct
-{
- char *name;
- SLang_Name_Type *next;
- char name_type;
-
- int unary_op;
-}
-SLang_Math_Unary_Type;
-
-typedef struct
-{
- char *name;
- SLang_Name_Type *next;
- char name_type;
- int i;
-}
-SLang_IConstant_Type;
-
-typedef struct
-{
- char *name;
- SLang_Name_Type *next;
- char name_type;
- double d;
-}
-SLang_DConstant_Type;
-
-typedef struct
-{
- char *field_name;
- unsigned int offset;
- unsigned char type;
- unsigned char read_only;
-}
-SLang_IStruct_Field_Type;
-
-extern int SLadd_intrin_fun_table (SLang_Intrin_Fun_Type *, char *);
-extern int SLadd_intrin_var_table (SLang_Intrin_Var_Type *, char *);
-extern int SLadd_app_unary_table (SLang_App_Unary_Type *, char *);
-extern int SLadd_math_unary_table (SLang_Math_Unary_Type *, char *);
-extern int SLadd_iconstant_table (SLang_IConstant_Type *, char *);
-extern int SLadd_dconstant_table (SLang_DConstant_Type *, char *);
-extern int SLadd_istruct_table (SLang_IStruct_Field_Type *, VOID_STAR, char *);
-
-typedef struct _SLang_NameSpace_Type SLang_NameSpace_Type;
-
-extern int SLns_add_intrin_fun_table (SLang_NameSpace_Type *, SLang_Intrin_Fun_Type *, char *);
-extern int SLns_add_intrin_var_table (SLang_NameSpace_Type *, SLang_Intrin_Var_Type *, char *);
-extern int SLns_add_app_unary_table (SLang_NameSpace_Type *, SLang_App_Unary_Type *, char *);
-extern int SLns_add_math_unary_table (SLang_NameSpace_Type *, SLang_Math_Unary_Type *, char *);
-extern int SLns_add_iconstant_table (SLang_NameSpace_Type *, SLang_IConstant_Type *, char *);
-extern int SLns_add_dconstant_table (SLang_NameSpace_Type *, SLang_DConstant_Type *, char *);
-extern int SLns_add_istruct_table (SLang_NameSpace_Type *, SLang_IStruct_Field_Type *, VOID_STAR, char *);
-
-extern SLang_NameSpace_Type *SLns_create_namespace (char *);
-extern void SLns_delete_namespace (SLang_NameSpace_Type *);
-
-typedef struct SLang_Load_Type
-{
- int type;
-
- VOID_STAR client_data;
- /* Pointer to data that client needs for loading */
-
- int auto_declare_globals;
- /* if non-zero, undefined global variables are declared as static */
-
- char *(*read)(struct SLang_Load_Type *);
- /* function to call to read next line from obj. */
-
- unsigned int line_num;
- /* Number of lines read, used for error reporting */
-
- int parse_level;
- /* 0 if at top level of parsing */
-
- char *name;
- /* Name of this object, e.g., filename. This name should be unique because
- * it alone determines the name space for static objects associated with
- * the compilable unit.
- */
-
- unsigned long reserved[4];
- /* For future expansion */
-} SLang_Load_Type;
-
-extern SLang_Load_Type *SLallocate_load_type (char *);
-extern void SLdeallocate_load_type (SLang_Load_Type *);
-
-/* Returns SLang_Error upon failure */
-extern int SLang_load_object (SLang_Load_Type *);
-extern int (*SLang_Load_File_Hook)(char *);
-extern int (*SLang_Auto_Declare_Var_Hook) (char *);
-
-extern int SLang_generate_debug_info (int);
-
-
-#if defined(ultrix) && !defined(__GNUC__)
-# ifndef NO_PROTOTYPES
-# define NO_PROTOTYPES
-# endif
-#endif
-
-#ifndef NO_PROTOTYPES
-# define _PROTO(x) x
-#else
-# define _PROTO(x) ()
-#endif
-
-typedef struct SL_OOBinary_Type
-{
- unsigned char data_type; /* partner type for binary op */
-
- int (*binary_function)_PROTO((int,
- unsigned char, VOID_STAR, unsigned int,
- unsigned char, VOID_STAR, unsigned int,
- VOID_STAR));
-
- int (*binary_result) _PROTO((int, unsigned char, unsigned char, unsigned char *));
- struct SL_OOBinary_Type *next;
-}
-SL_OOBinary_Type;
-
-typedef struct _SL_Typecast_Type
-{
- unsigned char data_type; /* to_type */
- int allow_implicit;
-
- int (*typecast)_PROTO((unsigned char, VOID_STAR, unsigned int,
- unsigned char, VOID_STAR));
- struct _SL_Typecast_Type *next;
-}
-SL_Typecast_Type;
-
-typedef struct _SLang_Struct_Type SLang_Struct_Type;
-
-#if defined(SL_APP_WANTS_FOREACH)
-/* It is up to the application to define struct _SLang_Foreach_Context_Type */
-typedef struct _SLang_Foreach_Context_Type SLang_Foreach_Context_Type;
-#else
-typedef int SLang_Foreach_Context_Type;
-#endif
-
-typedef struct
-{
- unsigned char cl_class_type;
-#define SLANG_CLASS_TYPE_MMT 0
-#define SLANG_CLASS_TYPE_SCALAR 1
-#define SLANG_CLASS_TYPE_VECTOR 2
-#define SLANG_CLASS_TYPE_PTR 3
-
- unsigned int cl_data_type; /* SLANG_INTEGER_TYPE, etc... */
- char *cl_name; /* slstring type */
-
- unsigned int cl_sizeof_type;
- VOID_STAR cl_transfer_buf; /* cl_sizeof_type bytes*/
-
- /* Methods */
-
- /* Most of the method functions are prototyped:
- * int method (unsigned char type, VOID_STAR addr);
- * Here, @type@ represents the type of object that the method is asked
- * to deal with. The second parameter @addr@ will contain the ADDRESS of
- * the object. For example, if type is SLANG_INT_TYPE, then @addr@ will
- * actually be int *. Similary, if type is SLANG_STRING_TYPE,
- * then @addr@ will contain the address of the string, i.e., char **.
- */
-
- void (*cl_destroy)_PROTO((unsigned char, VOID_STAR));
- /* Prototype: void destroy(unsigned type, VOID_STAR val)
- * Called to delete/free the object */
-
- char *(*cl_string)_PROTO((unsigned char, VOID_STAR));
- /* Prototype: char *to_string (unsigned char t, VOID_STAR p);
- * Here p is a pointer to the object for which a string representation
- * is to be returned. The returned pointer is to be a MALLOCED string.
- */
-
- /* Prototype: void push(unsigned char type, VOID_STAR v);
- * Push a copy of the object of type @type@ at address @v@ onto the
- * stack.
- */
- int (*cl_push)_PROTO((unsigned char, VOID_STAR));
-
- /* Prototype: int pop(unsigned char type, VOID_STAR v);
- * Pops value from stack and assign it to object, whose address is @v@.
- */
- int (*cl_pop)_PROTO((unsigned char, VOID_STAR));
-
- int (*cl_unary_op_result_type)_PROTO((int, unsigned char, unsigned char *));
- int (*cl_unary_op)_PROTO((int, unsigned char, VOID_STAR, unsigned int, VOID_STAR));
-
- int (*cl_app_unary_op_result_type)_PROTO((int, unsigned char, unsigned char *));
- int (*cl_app_unary_op)_PROTO((int, unsigned char, VOID_STAR, unsigned int, VOID_STAR));
-
- /* If this function is non-NULL, it will be called for sin, cos, etc... */
-#define SLMATH_SIN 1
-#define SLMATH_COS 2
-#define SLMATH_TAN 3
-#define SLMATH_ATAN 4
-#define SLMATH_ASIN 5
-#define SLMATH_ACOS 6
-#define SLMATH_EXP 7
-#define SLMATH_LOG 8
-#define SLMATH_SQRT 9
-#define SLMATH_LOG10 10
-#define SLMATH_REAL 11
-#define SLMATH_IMAG 12
-#define SLMATH_SINH 13
-#define SLMATH_COSH 14
-#define SLMATH_TANH 15
-#define SLMATH_ATANH 16
-#define SLMATH_ASINH 17
-#define SLMATH_ACOSH 18
-#define SLMATH_TODOUBLE 19
-#define SLMATH_CONJ 20
-
- int (*cl_math_op)_PROTO((int, unsigned char, VOID_STAR, unsigned int, VOID_STAR));
- int (*cl_math_op_result_type)_PROTO((int, unsigned char, unsigned char *));
-
- SL_OOBinary_Type *cl_binary_ops;
- SL_Typecast_Type *cl_typecast_funs;
-
- void (*cl_byte_code_destroy)_PROTO((unsigned char, VOID_STAR));
- void (*cl_user_destroy_fun)_PROTO((unsigned char, VOID_STAR));
- int (*cl_init_array_object)_PROTO((unsigned char, VOID_STAR));
- int (*cl_datatype_deref)_PROTO((unsigned char));
- SLang_Struct_Type *cl_struct_def;
- int (*cl_dereference) _PROTO((unsigned char, VOID_STAR));
- int (*cl_acopy) (unsigned char, VOID_STAR, VOID_STAR);
- int (*cl_apop) _PROTO((unsigned char, VOID_STAR));
- int (*cl_apush) _PROTO((unsigned char, VOID_STAR));
- int (*cl_push_literal) _PROTO((unsigned char, VOID_STAR));
- void (*cl_adestroy)_PROTO((unsigned char, VOID_STAR));
- int (*cl_push_intrinsic)_PROTO((unsigned char, VOID_STAR));
- int (*cl_void_typecast)_PROTO((unsigned char, VOID_STAR, unsigned int, unsigned char, VOID_STAR));
-
- int (*cl_anytype_typecast)_PROTO((unsigned char, VOID_STAR, unsigned int, unsigned char, VOID_STAR));
-
- /* Array access functions */
- int (*cl_aput) (unsigned char, unsigned int);
- int (*cl_aget) (unsigned char, unsigned int);
- int (*cl_anew) (unsigned char, unsigned int);
-
- /* length method */
- int (*cl_length) (unsigned char, VOID_STAR, unsigned int *);
-
- /* foreach */
- SLang_Foreach_Context_Type *(*cl_foreach_open) (unsigned char, unsigned int);
- void (*cl_foreach_close) (unsigned char, SLang_Foreach_Context_Type *);
- int (*cl_foreach) (unsigned char, SLang_Foreach_Context_Type *);
-
- /* Structure access: get and put (assign to) fields */
- int (*cl_sput) (unsigned char, char *);
- int (*cl_sget) (unsigned char, char *);
-
- /* File I/O */
- int (*cl_fread) (unsigned char, FILE *, VOID_STAR, unsigned int, unsigned int *);
- int (*cl_fwrite) (unsigned char, FILE *, VOID_STAR, unsigned int, unsigned int *);
- int (*cl_fdread) (unsigned char, int, VOID_STAR, unsigned int, unsigned int *);
- int (*cl_fdwrite) (unsigned char, int, VOID_STAR, unsigned int, unsigned int *);
-
- int (*cl_to_bool) (unsigned char, int *);
-
- int (*cl_cmp)(unsigned char, VOID_STAR, VOID_STAR, int *);
-
-} SLang_Class_Type;
-
-/* These are the low-level functions for building push/pop methods. They
- * know nothing about memory management. For SLANG_CLASS_TYPE_MMT, use the
- * MMT push/pop functions instead.
- */
-extern int SLclass_push_double_obj (unsigned char, double);
-extern int SLclass_push_float_obj (unsigned char, float);
-extern int SLclass_push_long_obj (unsigned char, long);
-extern int SLclass_push_int_obj (unsigned char, int);
-extern int SLclass_push_short_obj (unsigned char, short);
-extern int SLclass_push_char_obj (unsigned char, char);
-extern int SLclass_push_ptr_obj (unsigned char, VOID_STAR);
-extern int SLclass_pop_double_obj (unsigned char, double *);
-extern int SLclass_pop_float_obj (unsigned char, float *);
-extern int SLclass_pop_long_obj (unsigned char, long *);
-extern int SLclass_pop_int_obj (unsigned char, int *);
-extern int SLclass_pop_short_obj (unsigned char, short *);
-extern int SLclass_pop_char_obj (unsigned char, char *);
-extern int SLclass_pop_ptr_obj (unsigned char, VOID_STAR *);
-
-extern SLang_Class_Type *SLclass_allocate_class (char *);
-extern int SLclass_get_class_id (SLang_Class_Type *cl);
-extern int SLclass_create_synonym (char *, unsigned char);
-extern int SLclass_is_class_defined (unsigned char);
-
-extern int SLclass_register_class (SLang_Class_Type *, unsigned char, unsigned int, unsigned char);
-extern int SLclass_set_string_function (SLang_Class_Type *, char *(*)(unsigned char, VOID_STAR));
-extern int SLclass_set_destroy_function (SLang_Class_Type *, void (*)(unsigned char, VOID_STAR));
-extern int SLclass_set_push_function (SLang_Class_Type *, int (*)(unsigned char, VOID_STAR));
-extern int SLclass_set_pop_function (SLang_Class_Type *, int (*)(unsigned char, VOID_STAR));
-
-extern int SLclass_set_aget_function (SLang_Class_Type *, int (*)(unsigned char, unsigned int));
-extern int SLclass_set_aput_function (SLang_Class_Type *, int (*)(unsigned char, unsigned int));
-extern int SLclass_set_anew_function (SLang_Class_Type *, int (*)(unsigned char, unsigned int));
-
-extern int SLclass_set_sget_function (SLang_Class_Type *, int (*)(unsigned char, char *));
-extern int SLclass_set_sput_function (SLang_Class_Type *, int (*)(unsigned char, char *));
-
-/* Typecast object on the stack to type p1. p2 and p3 should be set to 1 */
-extern int SLclass_typecast (unsigned char, int, int);
-
-extern int SLclass_add_unary_op (unsigned char,
- int (*) (int,
- unsigned char, VOID_STAR, unsigned int,
- VOID_STAR),
- int (*) (int, unsigned char, unsigned char *));
-
-extern int
-SLclass_add_app_unary_op (unsigned char,
- int (*) (int,
- unsigned char, VOID_STAR, unsigned int,
- VOID_STAR),
- int (*) (int, unsigned char, unsigned char *));
-
-extern int
-SLclass_add_binary_op (unsigned char, unsigned char,
- int (*) (int,
- unsigned char, VOID_STAR, unsigned int,
- unsigned char, VOID_STAR, unsigned int,
- VOID_STAR),
- int (*) (int, unsigned char, unsigned char, unsigned char *));
-
-extern int
-SLclass_add_math_op (unsigned char,
- int (*)(int,
- unsigned char, VOID_STAR, unsigned int,
- VOID_STAR),
- int (*)(int, unsigned char, unsigned char *));
-
-extern int
-SLclass_add_typecast (unsigned char /* from */, unsigned char /* to */,
- int (*)_PROTO((unsigned char, VOID_STAR, unsigned int,
- unsigned char, VOID_STAR)),
- int /* allow implicit typecasts */
- );
-
-extern char *SLclass_get_datatype_name (unsigned char);
-
-extern double SLcomplex_abs (double *);
-extern double *SLcomplex_times (double *, double *, double *);
-extern double *SLcomplex_divide (double *, double *, double *);
-extern double *SLcomplex_sin (double *, double *);
-extern double *SLcomplex_cos (double *, double *);
-extern double *SLcomplex_tan (double *, double *);
-extern double *SLcomplex_asin (double *, double *);
-extern double *SLcomplex_acos (double *, double *);
-extern double *SLcomplex_atan (double *, double *);
-extern double *SLcomplex_exp (double *, double *);
-extern double *SLcomplex_log (double *, double *);
-extern double *SLcomplex_log10 (double *, double *);
-extern double *SLcomplex_sqrt (double *, double *);
-extern double *SLcomplex_sinh (double *, double *);
-extern double *SLcomplex_cosh (double *, double *);
-extern double *SLcomplex_tanh (double *, double *);
-extern double *SLcomplex_pow (double *, double *, double *);
-extern double SLmath_hypot (double x, double y);
-
-/* Not implemented yet */
-extern double *SLcomplex_asinh (double *, double *);
-extern double *SLcomplex_acosh (double *, double *);
-extern double *SLcomplex_atanh (double *, double *);
-
-#ifdef _SLANG_SOURCE_
-typedef struct _SLang_MMT_Type SLang_MMT_Type;
-#else
-typedef int SLang_MMT_Type;
-#endif
-
-extern void SLang_free_mmt (SLang_MMT_Type *);
-extern VOID_STAR SLang_object_from_mmt (SLang_MMT_Type *);
-extern SLang_MMT_Type *SLang_create_mmt (unsigned char, VOID_STAR);
-extern int SLang_push_mmt (SLang_MMT_Type *);
-extern SLang_MMT_Type *SLang_pop_mmt (unsigned char);
-extern void SLang_inc_mmt (SLang_MMT_Type *);
-
-/* Maximum number of dimensions of an array. */
-#define SLARRAY_MAX_DIMS 7
-typedef struct _SLang_Array_Type
-{
- unsigned char data_type;
- unsigned int sizeof_type;
- VOID_STAR data;
- unsigned int num_elements;
- unsigned int num_dims;
- int dims [SLARRAY_MAX_DIMS];
- VOID_STAR (*index_fun)_PROTO((struct _SLang_Array_Type *, int *));
- /* This function is designed to allow a type to store an array in
- * any manner it chooses. This function returns the address of the data
- * value at the specified index location.
- */
- unsigned int flags;
-#define SLARR_DATA_VALUE_IS_READ_ONLY 1
-#define SLARR_DATA_VALUE_IS_POINTER 2
-#define SLARR_DATA_VALUE_IS_RANGE 4
-#define SLARR_DATA_VALUE_IS_INTRINSIC 8
- SLang_Class_Type *cl;
- unsigned int num_refs;
-}
-SLang_Array_Type;
-
-extern int SLang_pop_array_of_type (SLang_Array_Type **, unsigned char);
-extern int SLang_pop_array (SLang_Array_Type **, int);
-extern int SLang_push_array (SLang_Array_Type *, int);
-extern void SLang_free_array (SLang_Array_Type *);
-extern SLang_Array_Type *SLang_create_array (unsigned char, int, VOID_STAR, int *, unsigned int);
-extern SLang_Array_Type *SLang_duplicate_array (SLang_Array_Type *);
-extern int SLang_get_array_element (SLang_Array_Type *, int *, VOID_STAR);
-extern int SLang_set_array_element (SLang_Array_Type *, int *, VOID_STAR);
-
-
-/*}}}*/
-
-/*{{{ Interpreter Function Prototypes */
-
- extern volatile int SLang_Error;
-/* Non zero if error occurs. Must be reset to zero to continue. */
-/* error codes, severe errors are less than 0 */
-#define SL_APPLICATION_ERROR -2
-#define SL_VARIABLE_UNINITIALIZED -3
-#define SL_INTERNAL_ERROR -5
-#define SL_STACK_OVERFLOW -6
-#define SL_STACK_UNDERFLOW -7
-#define SL_UNDEFINED_NAME -8
-#define SL_SYNTAX_ERROR -9
-#define SL_DUPLICATE_DEFINITION -10
-#define SL_TYPE_MISMATCH -11
-#define SL_OBJ_UNKNOWN -13
-#define SL_UNKNOWN_ERROR -14
-#define SL_TYPE_UNDEFINED_OP_ERROR -16
-
-#define SL_INTRINSIC_ERROR 1
-/* Intrinsic error is an error generated by intrinsic functions */
-#define SL_USER_BREAK 2
-#define SL_DIVIDE_ERROR 3
-#define SL_OBJ_NOPEN 4
-#define SL_USER_ERROR 5
-#define SL_USAGE_ERROR 6
-#define SL_READONLY_ERROR 7
-#define SL_INVALID_PARM 8
-#define SL_NOT_IMPLEMENTED 9
-#define SL_MALLOC_ERROR 10
-#define SL_OVERFLOW 11
-#define SL_FLOATING_EXCEPTION 12
-
-/* Compatibility */
-#define USER_BREAK SL_USER_BREAK
-#define INTRINSIC_ERROR SL_INTRINSIC_ERROR
-
- extern int SLang_Traceback;
- /* If non-zero, dump an S-Lang traceback upon error. Available as
- _traceback in S-Lang. */
-
- extern char *SLang_User_Prompt;
- /* Prompt to use when reading from stdin */
- extern int SLang_Version;
- extern char *SLang_Version_String;
-extern char *SLang_Doc_Dir;
-
-extern void (*SLang_VMessage_Hook) (char *, va_list);
-extern void SLang_vmessage (char *, ...);
-
- extern void (*SLang_Error_Hook)(char *);
- /* Pointer to application dependent error messaging routine. By default,
- messages are displayed on stderr. */
-
- extern void (*SLang_Exit_Error_Hook)(char *, va_list);
- extern void SLang_exit_error (char *, ...);
- extern void (*SLang_Dump_Routine)(char *);
- /* Called if S-Lang traceback is enabled as well as other debugging
- routines (e.g., trace). By default, these messages go to stderr. */
-
- extern void (*SLang_Interrupt)(void);
- /* function to call whenever inner interpreter is entered. This is
- a good place to set SLang_Error to USER_BREAK. */
-
- extern void (*SLang_User_Clear_Error)(void);
- /* function that gets called when '_clear_error' is called. */
-
- /* If non null, these call C functions before and after a slang function. */
- extern void (*SLang_Enter_Function)(char *);
-extern void (*SLang_Exit_Function)(char *);
-
-extern int SLang_Num_Function_Args;
-
-/* Functions: */
-
-extern int SLang_init_all (void);
-/* Initializes interpreter and all modules */
-
-extern int SLang_init_slang (void);
-/* This function is mandatory and must be called by all applications that
- * use the interpreter
- */
-extern int SLang_init_posix_process (void); /* process specific intrinsics */
-extern int SLang_init_stdio (void); /* fgets, etc. stdio functions */
-extern int SLang_init_posix_dir (void);
-extern int SLang_init_ospath (void);
-
-extern int SLang_init_slmath (void);
-/* called if math functions sin, cos, etc... are needed. */
-
- extern int SLang_init_slfile (void);
- extern int SLang_init_slunix (void);
- /* These functions are obsolte. Use init_stdio, posix_process, etc. */
-
-extern int SLang_init_slassoc (void);
-/* Assoc Arrays (Hashes) */
-
-extern int SLang_init_array (void);
-/* Additional arrays functions: transpose, etc... */
-
-/* Dynamic linking facility */
-extern int SLang_init_import (void);
-
- extern int SLang_load_file (char *);
- /* Load a file of S-Lang code for interpreting. If the parameter is
- * NULL, input comes from stdin. */
-
- extern void SLang_restart(int);
- /* should be called if an error occurs. If the passed integer is
- * non-zero, items are popped off the stack; otherwise, the stack is
- * left intact. Any time the stack is believed to be trashed, this routine
- * should be called with a non-zero argument (e.g., if setjmp/longjmp is
- * called). */
-
- extern int SLang_byte_compile_file(char *, int);
- /* takes a file of S-Lang code and ``byte-compiles'' it for faster
- * loading. The new filename is equivalent to the old except that a `c' is
- * appended to the name. (e.g., init.sl --> init.slc). The second
- * specified the method; currently, it is not used.
- */
-
- extern int SLang_autoload(char *, char *);
- /* Automatically load S-Lang function p1 from file p2. This function
- is also available via S-Lang */
-
- extern int SLang_load_string(char *);
- /* Like SLang_load_file except input is from a null terminated string. */
-
- extern int SLdo_pop(void);
- /* pops item off stack and frees any memory associated with it */
- extern int SLdo_pop_n(unsigned int);
- /* pops n items off stack and frees any memory associated with them */
-
-extern int SLang_pop_integer(int *);
-extern int SLang_pop_uinteger(unsigned int *);
- /* pops integer *p0 from the stack. Returns 0 upon success and non-zero
- * if the stack is empty or a type mismatch occurs, setting SLang_Error.
- */
-extern int SLang_pop_char (char *);
-extern int SLang_pop_uchar (unsigned char *);
-extern int SLang_pop_short(short *);
-extern int SLang_pop_ushort(unsigned short *);
-extern int SLang_pop_long(long *);
-extern int SLang_pop_ulong(unsigned long *);
-
-extern int SLang_pop_float(float *);
-extern int SLang_pop_double(double *, int *, int *);
- /* Pops double *p1 from stack. If *p3 is non-zero, *p1 was derived
- from the integer *p2. Returns zero upon success. */
-
- extern int SLang_pop_complex (double *, double *);
-
- extern int SLpop_string (char **);
- extern int SLang_pop_string(char **, int *);
- /* pops string *p0 from stack. If *p1 is non-zero, the string must be
- * freed after its use. DO NOT FREE p0 if *p1 IS ZERO! Returns 0 upon
- * success */
-
- extern int SLang_push_complex (double, double);
-
- extern int SLang_push_char (char);
- extern int SLang_push_uchar (unsigned char);
-
- extern int SLang_push_integer(int);
- extern int SLang_push_uinteger(unsigned int);
- /* push integer p1 on stack */
-
- extern int SLang_push_short(short);
- extern int SLang_push_ushort(unsigned short);
- extern int SLang_push_long(long);
- extern int SLang_push_ulong(unsigned long);
- extern int SLang_push_float(float);
- extern int SLang_push_double(double);
- /* Push double onto stack */
-
- extern int SLang_push_string(char *);
- /* Push string p1 onto stack */
-
- extern int SLang_push_malloced_string(char *);
- /* The normal SLang_push_string pushes an slstring. This one converts
- * a normally malloced string to an slstring, and then frees the
- * malloced string. So, do NOT use the malloced string after calling
- * this routine because it will be freed! The routine returns -1 upon
- * error, but the string will be freed.
- */
-
-extern int SLang_push_null (void);
-extern int SLang_pop_null (void);
-
-extern int SLang_push_value (unsigned char type, VOID_STAR);
-extern int SLang_pop_value (unsigned char type, VOID_STAR);
-extern void SLang_free_value (unsigned char type, VOID_STAR);
-
-typedef struct _SLang_Object_Type SLang_Any_Type;
-
-extern int SLang_pop_anytype (SLang_Any_Type **);
-extern int SLang_push_anytype (SLang_Any_Type *);
-extern void SLang_free_anytype (SLang_Any_Type *);
-
-#ifdef _SLANG_SOURCE_
-typedef struct _SLang_Ref_Type SLang_Ref_Type;
-#else
-typedef int SLang_Ref_Type;
-#endif
-
-extern int SLang_pop_ref (SLang_Ref_Type **);
-extern void SLang_free_ref (SLang_Ref_Type *);
-extern int SLang_assign_to_ref (SLang_Ref_Type *, unsigned char, VOID_STAR);
-extern SLang_Name_Type *SLang_pop_function (void);
-extern SLang_Name_Type *SLang_get_fun_from_ref (SLang_Ref_Type *);
-extern void SLang_free_function (SLang_Name_Type *f);
-
- extern int SLang_is_defined(char *);
- /* Return non-zero is p1 is defined otherwise returns 0. */
-
- extern int SLang_run_hooks(char *, unsigned int, ...);
- /* calls S-Lang function p1 pushing p2 strings in the variable argument
- * list onto the stack first.
- * Returns -1 upon error, 1 if hooks exists and it ran,
- * or 0 if hook does not exist. Thus it returns non-zero is hook was called.
- */
-
-/* These functions return 1 if the indicated function exists and the function
- * runs without error. If the function does not exist, the function returns
- * 0. Otherwise -1 is returned with SLang_Error set appropriately.
- */
-extern int SLexecute_function (SLang_Name_Type *);
-extern int SLang_execute_function(char *);
-
-
-extern int SLang_end_arg_list (void);
-extern int SLang_start_arg_list (void);
-
-extern void SLang_verror (int, char *, ...);
-
-extern void SLang_doerror(char *);
- /* set SLang_Error and display p1 as error message */
-
-extern int SLang_add_intrinsic_array (char *, /* name */
- unsigned char, /* type */
- int, /* readonly */
- VOID_STAR, /* data */
- unsigned int, ...); /* num dims */
-
-extern int SLextract_list_element (char *, unsigned int, char,
- char *, unsigned int);
-
-extern void SLexpand_escaped_string (register char *, register char *,
- register char *);
-
-extern SLang_Name_Type *SLang_get_function (char *);
-extern void SLang_release_function (SLang_Name_Type *);
-
-extern int SLreverse_stack (int);
-extern int SLroll_stack (int);
-/* If argument p is positive, the top p objects on the stack are rolled
- * up. If negative, the stack is rolled down.
- */
-extern int SLdup_n (int n);
-/* Duplicate top n elements of stack */
-
-extern int SLang_peek_at_stack1 (void);
-extern int SLang_peek_at_stack (void);
-/* Returns type of next object on stack-- -1 upon stack underflow. */
-extern void SLmake_lut (unsigned char *, unsigned char *, unsigned char);
-
- extern int SLang_guess_type (char *);
-
-extern int SLstruct_create_struct (unsigned int,
- char **,
- unsigned char *,
- VOID_STAR *);
-
-/*}}}*/
-
-/*{{{ Misc Functions */
-
-/* This is an interface to atexit */
-extern int SLang_add_cleanup_function (void (*)(void));
-
-extern char *SLmake_string (char *);
-extern char *SLmake_nstring (char *, unsigned int);
-/* Returns a null terminated string made from the first n characters of the
- * string.
- */
-
-/* The string created by this routine must be freed by SLang_free_slstring
- * and nothing else!! Also these strings must not be modified. Use
- * SLmake_string if you intend to modify them!!
- */
-extern char *SLang_create_nslstring (char *, unsigned int);
-extern char *SLang_create_slstring (char *);
-extern void SLang_free_slstring (char *); /* handles NULL */
-extern int SLang_pop_slstring (char **); /* free with SLang_free_slstring */
-extern char *SLang_concat_slstrings (char *a, char *b);
-extern char *SLang_create_static_slstring (char *); /* adds a string that will not get deleted */
-extern void SLstring_dump_stats (void);
-
-/* Binary strings */
-/* The binary string is an opaque type. Use the SLbstring_get_pointer function
- * to get a pointer and length.
- */
-typedef struct _SLang_BString_Type SLang_BString_Type;
-extern unsigned char *SLbstring_get_pointer (SLang_BString_Type *, unsigned int *);
-
-extern SLang_BString_Type *SLbstring_dup (SLang_BString_Type *);
-extern SLang_BString_Type *SLbstring_create (unsigned char *, unsigned int);
-
-/* The create_malloced function used the first argument which is assumed
- * to be a pointer to a len + 1 malloced string. The extra byte is for
- * \0 termination.
- */
-extern SLang_BString_Type *SLbstring_create_malloced (unsigned char *, unsigned int, int);
-
-/* Create a bstring from an slstring */
-extern SLang_BString_Type *SLbstring_create_slstring (char *);
-
-extern void SLbstring_free (SLang_BString_Type *);
-extern int SLang_pop_bstring (SLang_BString_Type **);
-extern int SLang_push_bstring (SLang_BString_Type *);
-
-extern char *SLmalloc (unsigned int);
-extern char *SLcalloc (unsigned int, unsigned int);
-extern void SLfree(char *); /* This function handles NULL */
-extern char *SLrealloc (char *, unsigned int);
-
-extern char *SLcurrent_time_string (void);
-
-extern int SLatoi(unsigned char *);
-extern long SLatol (unsigned char *);
-extern unsigned long SLatoul (unsigned char *);
-
-extern int SLang_pop_fileptr (SLang_MMT_Type **, FILE **);
-extern char *SLang_get_name_from_fileptr (SLang_MMT_Type *);
-
-typedef struct _SLFile_FD_Type SLFile_FD_Type;
-extern SLFile_FD_Type *SLfile_create_fd (char *, int);
-extern void SLfile_free_fd (SLFile_FD_Type *);
-extern int SLfile_push_fd (SLFile_FD_Type *);
-extern int SLfile_pop_fd (SLFile_FD_Type **);
-extern int SLfile_get_fd (SLFile_FD_Type *, int *);
-extern SLFile_FD_Type *SLfile_dup_fd (SLFile_FD_Type *f0);
-extern int SLang_init_posix_io (void);
-
-typedef double (*SLang_To_Double_Fun_Type)(VOID_STAR);
-extern SLang_To_Double_Fun_Type SLarith_get_to_double_fun (unsigned char, unsigned int *);
-
-extern int SLang_set_argc_argv (int, char **);
-
-/*}}}*/
-
-/*{{{ SLang getkey interface Functions */
-
-#ifdef REAL_UNIX_SYSTEM
-extern int SLang_TT_Baud_Rate;
-extern int SLang_TT_Read_FD;
-#endif
-
-extern int SLang_init_tty (int, int, int);
-/* Initializes the tty for single character input. If the first parameter *p1
- * is in the range 0-255, it will be used for the abort character;
- * otherwise, (unix only) if it is -1, the abort character will be the one
- * used by the terminal. If the second parameter p2 is non-zero, flow
- * control is enabled. If the last parmeter p3 is zero, output processing
- * is NOT turned on. A value of zero is required for the screen management
- * routines. Returns 0 upon success. In addition, if SLang_TT_Baud_Rate ==
- * 0 when this function is called, SLang will attempt to determine the
- * terminals baud rate. As far as the SLang library is concerned, if
- * SLang_TT_Baud_Rate is less than or equal to zero, the baud rate is
- * effectively infinite.
- */
-
-extern void SLang_reset_tty (void);
-/* Resets tty to what it was prior to a call to SLang_init_tty */
-#ifdef REAL_UNIX_SYSTEM
-extern void SLtty_set_suspend_state (int);
- /* If non-zero argument, terminal driver will be told to react to the
- * suspend character. If 0, it will not.
- */
-extern int (*SLang_getkey_intr_hook) (void);
-#endif
-
-#define SLANG_GETKEY_ERROR 0xFFFF
-extern unsigned int SLang_getkey (void);
-/* reads a single key from the tty. If the read fails, 0xFFFF is returned. */
-
-#ifdef IBMPC_SYSTEM
-extern int SLgetkey_map_to_ansi (int);
-#endif
-
-extern int SLang_ungetkey_string (unsigned char *, unsigned int);
-extern int SLang_buffer_keystring (unsigned char *, unsigned int);
-extern int SLang_ungetkey (unsigned char);
-extern void SLang_flush_input (void);
-extern int SLang_input_pending (int);
-extern int SLang_Abort_Char;
-/* The value of the character (0-255) used to trigger SIGINT */
-extern int SLang_Ignore_User_Abort;
-/* If non-zero, pressing the abort character will not result in USER_BREAK
- * SLang_Error. */
-
-extern int SLang_set_abort_signal (void (*)(int));
-/* If SIGINT is generated, the function p1 will be called. If p1 is NULL
- * the SLang_default signal handler is called. This sets SLang_Error to
- * USER_BREAK. I suspect most users will simply want to pass NULL.
- */
-extern unsigned int SLang_Input_Buffer_Len;
-
-extern volatile int SLKeyBoard_Quit;
-
-#ifdef VMS
-/* If this function returns -1, ^Y will be added to input buffer. */
-extern int (*SLtty_VMS_Ctrl_Y_Hook) (void);
-#endif
-/*}}}*/
-
-/*{{{ SLang Keymap routines */
-
-typedef struct SLKeymap_Function_Type
-{
- char *name;
- int (*f)(void);
-}
-SLKeymap_Function_Type;
-
-#define SLANG_MAX_KEYMAP_KEY_SEQ 14
-typedef struct SLang_Key_Type
-{
- struct SLang_Key_Type *next;
- union
- {
- char *s;
- FVOID_STAR f;
- unsigned int keysym;
- }
- f;
- unsigned char type; /* type of function */
-#define SLKEY_F_INTERPRET 0x01
-#define SLKEY_F_INTRINSIC 0x02
-#define SLKEY_F_KEYSYM 0x03
- unsigned char str[SLANG_MAX_KEYMAP_KEY_SEQ + 1];/* key sequence */
-}
-SLang_Key_Type;
-
-typedef struct SLKeyMap_List_Type
-{
- char *name; /* hashed string */
- SLang_Key_Type *keymap;
- SLKeymap_Function_Type *functions; /* intrinsic functions */
-}
-SLKeyMap_List_Type;
-
-/* This is arbitrary but I have got to start somewhere */
-#define SLANG_MAX_KEYMAPS 30
-extern SLKeyMap_List_Type SLKeyMap_List[SLANG_MAX_KEYMAPS];
-
-extern char *SLang_process_keystring(char *);
-
-extern int SLkm_define_key (char *, FVOID_STAR, SLKeyMap_List_Type *);
-
-extern int SLang_define_key(char *, char *, SLKeyMap_List_Type *);
-/* Like define_key1 except that p2 is a string that is to be associated with
- * a function in the functions field of p3. This routine calls define_key1.
- */
-
-extern int SLkm_define_keysym (char *, unsigned int, SLKeyMap_List_Type *);
-
-extern void SLang_undefine_key(char *, SLKeyMap_List_Type *);
-
-extern SLKeyMap_List_Type *SLang_create_keymap(char *, SLKeyMap_List_Type *);
-/* create and returns a pointer to a new keymap named p1 created by copying
- * keymap p2. If p2 is NULL, it is up to the calling routine to initialize
- * the keymap.
- */
-
-extern char *SLang_make_keystring(unsigned char *);
-
-extern SLang_Key_Type *SLang_do_key(SLKeyMap_List_Type *, int (*)(void));
-/* read a key using keymap p1 with getkey function p2 */
-
-extern
- FVOID_STAR
- SLang_find_key_function(char *, SLKeyMap_List_Type *);
-
-extern SLKeyMap_List_Type *SLang_find_keymap(char *);
-
-extern int SLang_Last_Key_Char;
-extern int SLang_Key_TimeOut_Flag;
-
-/*}}}*/
-
-/*{{{ SLang Readline Interface */
-
-typedef struct SLang_Read_Line_Type
-{
- struct SLang_Read_Line_Type *prev, *next;
- unsigned char *buf;
- int buf_len; /* number of chars in the buffer */
- int num; /* num and misc are application specific*/
- int misc;
-} SLang_Read_Line_Type;
-
-/* Maximum size of display */
-#define SLRL_DISPLAY_BUFFER_SIZE 256
-
-typedef struct
-{
- SLang_Read_Line_Type *root, *tail, *last;
- unsigned char *buf; /* edit buffer */
- int buf_len; /* sizeof buffer */
- int point; /* current editing point */
- int tab; /* tab width */
- int len; /* current line size */
-
- /* display variables */
- int edit_width; /* length of display field */
- int curs_pos; /* current column */
- int start_column; /* column offset of display */
- int dhscroll; /* amount to use for horiz scroll */
- char *prompt;
-
- FVOID_STAR last_fun; /* last function executed by rl */
-
- /* These two contain an image of what is on the display */
- unsigned char upd_buf1[SLRL_DISPLAY_BUFFER_SIZE];
- unsigned char upd_buf2[SLRL_DISPLAY_BUFFER_SIZE];
- unsigned char *old_upd, *new_upd; /* pointers to previous two buffers */
- int new_upd_len, old_upd_len; /* length of output buffers */
-
- SLKeyMap_List_Type *keymap;
-
- /* tty variables */
- unsigned int flags; /* */
-#define SL_RLINE_NO_ECHO 1
-#define SL_RLINE_USE_ANSI 2
-#define SL_RLINE_BLINK_MATCH 4
- unsigned int (*getkey)(void); /* getkey function -- required */
- void (*tt_goto_column)(int);
- void (*tt_insert)(char);
- void (*update_hook)(unsigned char *, int, int);
- /* The update hook is called with a pointer to a buffer p1 that contains
- * an image of what the update hook is suppoed to produce. The length
- * of the buffer is p2 and after the update, the cursor is to be placed
- * in column p3.
- */
- /* This function is only called when blinking matches */
- int (*input_pending)(int);
- unsigned long reserved[4];
-} SLang_RLine_Info_Type;
-
-extern int SLang_RL_EOF_Char;
-
-extern SLang_Read_Line_Type * SLang_rline_save_line (SLang_RLine_Info_Type *);
-extern int SLang_init_readline (SLang_RLine_Info_Type *);
-extern int SLang_read_line (SLang_RLine_Info_Type *);
-extern int SLang_rline_insert (char *);
-extern void SLrline_redraw (SLang_RLine_Info_Type *);
-extern int SLang_Rline_Quit;
-
-/*}}}*/
-
-/*{{{ Low Level Screen Output Interface */
-
-extern unsigned long SLtt_Num_Chars_Output;
-extern int SLtt_Baud_Rate;
-
-typedef unsigned long SLtt_Char_Type;
-
-#define SLTT_BOLD_MASK 0x01000000UL
-#define SLTT_BLINK_MASK 0x02000000UL
-#define SLTT_ULINE_MASK 0x04000000UL
-#define SLTT_REV_MASK 0x08000000UL
-#define SLTT_ALTC_MASK 0x10000000UL
-
-extern int SLtt_Screen_Rows;
-extern int SLtt_Screen_Cols;
-extern int SLtt_Term_Cannot_Insert;
-extern int SLtt_Term_Cannot_Scroll;
-extern int SLtt_Use_Ansi_Colors;
-extern int SLtt_Ignore_Beep;
-#if defined(REAL_UNIX_SYSTEM)
-extern int SLtt_Force_Keypad_Init;
-extern int SLang_TT_Write_FD;
-#endif
-
-#ifndef IBMPC_SYSTEM
-extern char *SLtt_Graphics_Char_Pairs;
-#endif
-
-#ifndef __GO32__
-#if defined(VMS) || defined(REAL_UNIX_SYSTEM)
-extern int SLtt_Blink_Mode;
-extern int SLtt_Use_Blink_For_ACS;
-extern int SLtt_Newline_Ok;
-extern int SLtt_Has_Alt_Charset;
-extern int SLtt_Has_Status_Line; /* if 0, NO. If > 0, YES, IF -1, ?? */
-# ifndef VMS
-extern int SLtt_Try_Termcap;
-# endif
-#endif
-#endif
-
-#if defined(IBMPC_SYSTEM)
-extern int SLtt_Msdos_Cheap_Video;
-#endif
-
-typedef unsigned short SLsmg_Char_Type;
-#define SLSMG_EXTRACT_CHAR(x) ((x) & 0xFF)
-#define SLSMG_EXTRACT_COLOR(x) (((x)>>8)&0xFF)
-#define SLSMG_BUILD_CHAR(ch,color) (((SLsmg_Char_Type)(unsigned char)(ch))|((color)<<8))
-
-extern int SLtt_flush_output (void);
-extern void SLtt_set_scroll_region(int, int);
-extern void SLtt_reset_scroll_region(void);
-extern void SLtt_reverse_video (int);
-extern void SLtt_bold_video (void);
-extern void SLtt_begin_insert(void);
-extern void SLtt_end_insert(void);
-extern void SLtt_del_eol(void);
-extern void SLtt_goto_rc (int, int);
-extern void SLtt_delete_nlines(int);
-extern void SLtt_delete_char(void);
-extern void SLtt_erase_line(void);
-extern void SLtt_normal_video(void);
-extern void SLtt_cls(void);
-extern void SLtt_beep(void);
-extern void SLtt_reverse_index(int);
-extern void SLtt_smart_puts(SLsmg_Char_Type *, SLsmg_Char_Type *, int, int);
-extern void SLtt_write_string (char *);
-extern void SLtt_putchar(char);
-extern int SLtt_init_video (void);
-extern int SLtt_reset_video (void);
-extern void SLtt_get_terminfo(void);
-extern void SLtt_get_screen_size (void);
-extern int SLtt_set_cursor_visibility (int);
-
-extern int SLtt_set_mouse_mode (int, int);
-
-#if defined(VMS) || defined(REAL_UNIX_SYSTEM)
-extern int SLtt_initialize (char *);
-extern void SLtt_enable_cursor_keys(void);
-extern void SLtt_set_term_vtxxx(int *);
-extern void SLtt_set_color_esc (int, char *);
-extern void SLtt_wide_width(void);
-extern void SLtt_narrow_width(void);
-extern void SLtt_set_alt_char_set (int);
-extern int SLtt_write_to_status_line (char *, int);
-extern void SLtt_disable_status_line (void);
-# ifdef REAL_UNIX_SYSTEM
-/* These are termcap/terminfo routines that assume SLtt_initialize has
- * been called.
- */
-extern char *SLtt_tgetstr (char *);
-extern int SLtt_tgetnum (char *);
-extern int SLtt_tgetflag (char *);
-
-/* The following are terminfo-only routines -- these prototypes will change
- * in V2.x.
- */
-extern char *SLtt_tigetent (char *);
-extern char *SLtt_tigetstr (char *, char **);
-extern int SLtt_tigetnum (char *, char **);
-# endif
-#endif
-
-extern SLtt_Char_Type SLtt_get_color_object (int);
-extern void SLtt_set_color_object (int, SLtt_Char_Type);
-extern void SLtt_set_color (int, char *, char *, char *);
-extern void SLtt_set_mono (int, char *, SLtt_Char_Type);
-extern void SLtt_add_color_attribute (int, SLtt_Char_Type);
-extern void SLtt_set_color_fgbg (int, SLtt_Char_Type, SLtt_Char_Type);
-
-/*}}}*/
-
-/*{{{ SLang Preprocessor Interface */
-
-typedef struct
-{
- int this_level;
- int exec_level;
- int prev_exec_level;
- char preprocess_char;
- char comment_char;
- unsigned char flags;
-#define SLPREP_BLANK_LINES_OK 1
-#define SLPREP_COMMENT_LINES_OK 2
-}
-SLPreprocess_Type;
-
-extern int SLprep_open_prep (SLPreprocess_Type *);
-extern void SLprep_close_prep (SLPreprocess_Type *);
-extern int SLprep_line_ok (char *, SLPreprocess_Type *);
- extern int SLdefine_for_ifdef (char *);
- /* Adds a string to the SLang #ifdef preparsing defines. SLang already
- defines MSDOS, UNIX, and VMS on the appropriate system. */
-extern int (*SLprep_exists_hook) (char *, char);
-
-/*}}}*/
-
-/*{{{ SLsmg Screen Management Functions */
-
-extern void SLsmg_fill_region (int, int, unsigned int, unsigned int, unsigned char);
-extern void SLsmg_set_char_set (int);
-#ifndef IBMPC_SYSTEM
-extern int SLsmg_Scroll_Hash_Border;
-#endif
-extern int SLsmg_suspend_smg (void);
-extern int SLsmg_resume_smg (void);
-extern void SLsmg_erase_eol (void);
-extern void SLsmg_gotorc (int, int);
-extern void SLsmg_erase_eos (void);
-extern void SLsmg_reverse_video (void);
-extern void SLsmg_set_color (int);
-extern void SLsmg_normal_video (void);
-extern void SLsmg_printf (char *, ...);
-extern void SLsmg_vprintf (char *, va_list);
-extern void SLsmg_write_string (char *);
-extern void SLsmg_write_nstring (char *, unsigned int);
-extern void SLsmg_write_char (char);
-extern void SLsmg_write_nchars (char *, unsigned int);
-extern void SLsmg_write_wrapped_string (char *, int, int, unsigned int, unsigned int, int);
-extern void SLsmg_cls (void);
-extern void SLsmg_refresh (void);
-extern void SLsmg_touch_lines (int, unsigned int);
-extern void SLsmg_touch_screen (void);
-extern int SLsmg_init_smg (void);
-extern int SLsmg_reinit_smg (void);
-extern void SLsmg_reset_smg (void);
-extern SLsmg_Char_Type SLsmg_char_at(void);
-extern void SLsmg_set_screen_start (int *, int *);
-extern void SLsmg_draw_hline (unsigned int);
-extern void SLsmg_draw_vline (int);
-extern void SLsmg_draw_object (int, int, unsigned char);
-extern void SLsmg_draw_box (int, int, unsigned int, unsigned int);
-extern int SLsmg_get_column(void);
-extern int SLsmg_get_row(void);
-extern void SLsmg_forward (int);
-extern void SLsmg_write_color_chars (SLsmg_Char_Type *, unsigned int);
-extern unsigned int SLsmg_read_raw (SLsmg_Char_Type *, unsigned int);
-extern unsigned int SLsmg_write_raw (SLsmg_Char_Type *, unsigned int);
-extern void SLsmg_set_color_in_region (int, int, int, unsigned int, unsigned int);
-extern int SLsmg_Display_Eight_Bit;
-extern int SLsmg_Tab_Width;
-
-#define SLSMG_NEWLINE_IGNORED 0 /* default */
-#define SLSMG_NEWLINE_MOVES 1 /* moves to next line, column 0 */
-#define SLSMG_NEWLINE_SCROLLS 2 /* moves but scrolls at bottom of screen */
-#define SLSMG_NEWLINE_PRINTABLE 3 /* prints as ^J */
-extern int SLsmg_Newline_Behavior;
-
-extern int SLsmg_Backspace_Moves;
-
-#ifdef IBMPC_SYSTEM
-# define SLSMG_HLINE_CHAR 0xC4
-# define SLSMG_VLINE_CHAR 0xB3
-# define SLSMG_ULCORN_CHAR 0xDA
-# define SLSMG_URCORN_CHAR 0xBF
-# define SLSMG_LLCORN_CHAR 0xC0
-# define SLSMG_LRCORN_CHAR 0xD9
-# define SLSMG_RTEE_CHAR 0xB4
-# define SLSMG_LTEE_CHAR 0xC3
-# define SLSMG_UTEE_CHAR 0xC2
-# define SLSMG_DTEE_CHAR 0xC1
-# define SLSMG_PLUS_CHAR 0xC5
-/* There are several to choose from: 0xB0, 0xB1, and 0xB2 */
-# define SLSMG_CKBRD_CHAR 0xB0
-# define SLSMG_DIAMOND_CHAR 0x04
-# define SLSMG_DEGREE_CHAR 0xF8
-# define SLSMG_PLMINUS_CHAR 0xF1
-# define SLSMG_BULLET_CHAR 0xF9
-# define SLSMG_LARROW_CHAR 0x1B
-# define SLSMG_RARROW_CHAR 0x1A
-# define SLSMG_DARROW_CHAR 0x19
-# define SLSMG_UARROW_CHAR 0x18
-# define SLSMG_BOARD_CHAR 0xB2
-# define SLSMG_BLOCK_CHAR 0xDB
-#else
-# if defined(AMIGA)
-# define SLSMG_HLINE_CHAR '-'
-# define SLSMG_VLINE_CHAR '|'
-# define SLSMG_ULCORN_CHAR '+'
-# define SLSMG_URCORN_CHAR '+'
-# define SLSMG_LLCORN_CHAR '+'
-# define SLSMG_LRCORN_CHAR '+'
-# define SLSMG_CKBRD_CHAR '#'
-# define SLSMG_RTEE_CHAR '+'
-# define SLSMG_LTEE_CHAR '+'
-# define SLSMG_UTEE_CHAR '+'
-# define SLSMG_DTEE_CHAR '+'
-# define SLSMG_PLUS_CHAR '+'
-# define SLSMG_DIAMOND_CHAR '+'
-# define SLSMG_DEGREE_CHAR '\\'
-# define SLSMG_PLMINUS_CHAR '#'
-# define SLSMG_BULLET_CHAR 'o'
-# define SLSMG_LARROW_CHAR '<'
-# define SLSMG_RARROW_CHAR '>'
-# define SLSMG_DARROW_CHAR 'v'
-# define SLSMG_UARROW_CHAR '^'
-# define SLSMG_BOARD_CHAR '#'
-# define SLSMG_BLOCK_CHAR '#'
-# else
-# define SLSMG_HLINE_CHAR 'q'
-# define SLSMG_VLINE_CHAR 'x'
-# define SLSMG_ULCORN_CHAR 'l'
-# define SLSMG_URCORN_CHAR 'k'
-# define SLSMG_LLCORN_CHAR 'm'
-# define SLSMG_LRCORN_CHAR 'j'
-# define SLSMG_CKBRD_CHAR 'a'
-# define SLSMG_RTEE_CHAR 'u'
-# define SLSMG_LTEE_CHAR 't'
-# define SLSMG_UTEE_CHAR 'w'
-# define SLSMG_DTEE_CHAR 'v'
-# define SLSMG_PLUS_CHAR 'n'
-# define SLSMG_DIAMOND_CHAR '`'
-# define SLSMG_DEGREE_CHAR 'f'
-# define SLSMG_PLMINUS_CHAR 'g'
-# define SLSMG_BULLET_CHAR '~'
-# define SLSMG_LARROW_CHAR ','
-# define SLSMG_RARROW_CHAR '+'
-# define SLSMG_DARROW_CHAR '.'
-# define SLSMG_UARROW_CHAR '-'
-# define SLSMG_BOARD_CHAR 'h'
-# define SLSMG_BLOCK_CHAR '0'
-# endif /* AMIGA */
-#endif /* IBMPC_SYSTEM */
-
-#ifndef IBMPC_SYSTEM
-# define SLSMG_COLOR_BLACK 0x000000
-# define SLSMG_COLOR_RED 0x000001
-# define SLSMG_COLOR_GREEN 0x000002
-# define SLSMG_COLOR_BROWN 0x000003
-# define SLSMG_COLOR_BLUE 0x000004
-# define SLSMG_COLOR_MAGENTA 0x000005
-# define SLSMG_COLOR_CYAN 0x000006
-# define SLSMG_COLOR_LGRAY 0x000007
-# define SLSMG_COLOR_GRAY 0x000008
-# define SLSMG_COLOR_BRIGHT_RED 0x000009
-# define SLSMG_COLOR_BRIGHT_GREEN 0x00000A
-# define SLSMG_COLOR_BRIGHT_BROWN 0x00000B
-# define SLSMG_COLOR_BRIGHT_BLUE 0x00000C
-# define SLSMG_COLOR_BRIGHT_CYAN 0x00000D
-# define SLSMG_COLOR_BRIGHT_MAGENTA 0x00000E
-# define SLSMG_COLOR_BRIGHT_WHITE 0x00000F
-#endif
-
-typedef struct
-{
- void (*tt_normal_video)(void);
- void (*tt_set_scroll_region)(int, int);
- void (*tt_goto_rc)(int, int);
- void (*tt_reverse_index)(int);
- void (*tt_reset_scroll_region)(void);
- void (*tt_delete_nlines)(int);
- void (*tt_cls) (void);
- void (*tt_del_eol) (void);
- void (*tt_smart_puts) (SLsmg_Char_Type *, SLsmg_Char_Type *, int, int);
- int (*tt_flush_output) (void);
- int (*tt_reset_video) (void);
- int (*tt_init_video) (void);
-
- int *tt_screen_rows;
- int *tt_screen_cols;
-
- int *tt_term_cannot_scroll;
- int *tt_has_alt_charset;
- int *tt_use_blink_for_acs;
- char **tt_graphic_char_pairs;
-
- long reserved[4];
-}
-SLsmg_Term_Type;
-extern void SLsmg_set_terminal_info (SLsmg_Term_Type *);
-
-/*}}}*/
-
-/*{{{ SLang Keypad Interface */
-
-#define SL_KEY_ERR 0xFFFF
-
-#define SL_KEY_UP 0x101
-#define SL_KEY_DOWN 0x102
-#define SL_KEY_LEFT 0x103
-#define SL_KEY_RIGHT 0x104
-#define SL_KEY_PPAGE 0x105
-#define SL_KEY_NPAGE 0x106
-#define SL_KEY_HOME 0x107
-#define SL_KEY_END 0x108
-#define SL_KEY_A1 0x109
-#define SL_KEY_A3 0x10A
-#define SL_KEY_B2 0x10B
-#define SL_KEY_C1 0x10C
-#define SL_KEY_C3 0x10D
-#define SL_KEY_REDO 0x10E
-#define SL_KEY_UNDO 0x10F
-#define SL_KEY_BACKSPACE 0x110
-#define SL_KEY_ENTER 0x111
-#define SL_KEY_IC 0x112
-#define SL_KEY_DELETE 0x113
-
-#define SL_KEY_F0 0x200
-#define SL_KEY_F(X) (SL_KEY_F0 + X)
-
-/* I do not intend to use keysymps > 0x1000. Applications can use those. */
-/* Returns 0 upon success or -1 upon error. */
-extern int SLkp_define_keysym (char *, unsigned int);
-
-/* This function must be called AFTER SLtt_get_terminfo and not before. */
-extern int SLkp_init (void);
-
-/* This function uses SLang_getkey and assumes that what ever initialization
- * is required for SLang_getkey has been performed.
- */
-extern int SLkp_getkey (void);
-
-/*}}}*/
-
-/*{{{ SLang Scroll Interface */
-
-typedef struct _SLscroll_Type
-{
- struct _SLscroll_Type *next;
- struct _SLscroll_Type *prev;
- unsigned int flags;
-}
-SLscroll_Type;
-
-typedef struct
-{
- unsigned int flags;
- SLscroll_Type *top_window_line; /* list element at top of window */
- SLscroll_Type *bot_window_line; /* list element at bottom of window */
- SLscroll_Type *current_line; /* current list element */
- SLscroll_Type *lines; /* first list element */
- unsigned int nrows; /* number of rows in window */
- unsigned int hidden_mask; /* applied to flags in SLscroll_Type */
- unsigned int line_num; /* current line number (visible) */
- unsigned int num_lines; /* total number of lines (visible) */
- unsigned int window_row; /* row of current_line in window */
- unsigned int border; /* number of rows that form scroll border */
- int cannot_scroll; /* should window scroll or recenter */
-}
-SLscroll_Window_Type;
-
-extern int SLscroll_find_top (SLscroll_Window_Type *);
-extern int SLscroll_find_line_num (SLscroll_Window_Type *);
-extern unsigned int SLscroll_next_n (SLscroll_Window_Type *, unsigned int);
-extern unsigned int SLscroll_prev_n (SLscroll_Window_Type *, unsigned int);
-extern int SLscroll_pageup (SLscroll_Window_Type *);
-extern int SLscroll_pagedown (SLscroll_Window_Type *);
-
-/*}}}*/
-
-/*{{{ Signal Routines */
-
-typedef void SLSig_Fun_Type (int);
-extern SLSig_Fun_Type *SLsignal (int, SLSig_Fun_Type *);
-extern SLSig_Fun_Type *SLsignal_intr (int, SLSig_Fun_Type *);
-extern int SLsig_block_signals (void);
-extern int SLsig_unblock_signals (void);
-extern int SLsystem (char *);
-
-extern char *SLerrno_strerror (int);
-extern int SLerrno_set_errno (int);
-
-/*}}}*/
-
-/*{{{ Interpreter Macro Definitions */
-
-/* The definitions here are for objects that may be on the run-time stack.
- * They are actually sub_types of literal and data main_types. The actual
- * numbers are historical.
- */
-#define SLANG_UNDEFINED_TYPE 0x00 /* MUST be 0 */
-#define SLANG_VOID_TYPE 0x01 /* also matches ANY type */
-#define SLANG_INT_TYPE 0x02
-#define SLANG_DOUBLE_TYPE 0x03
-#define SLANG_CHAR_TYPE 0x04
-#define SLANG_INTP_TYPE 0x05
-/* An object of SLANG_INTP_TYPE should never really occur on the stack. Rather,
- * the integer to which it refers will be there instead. It is defined here
- * because it is a valid type for MAKE_VARIABLE.
- */
-#define SLANG_REF_TYPE 0x06
-/* SLANG_REF_TYPE refers to an object on the stack that is a pointer (reference)
- * to some other object.
- */
-#define SLANG_COMPLEX_TYPE 0x07
-#define SLANG_NULL_TYPE 0x08
-#define SLANG_UCHAR_TYPE 0x09
-#define SLANG_SHORT_TYPE 0x0A
-#define SLANG_USHORT_TYPE 0x0B
-#define SLANG_UINT_TYPE 0x0C
-#define SLANG_LONG_TYPE 0x0D
-#define SLANG_ULONG_TYPE 0x0E
-#define SLANG_STRING_TYPE 0x0F
-#define SLANG_FLOAT_TYPE 0x10
-#define SLANG_STRUCT_TYPE 0x11
-#define SLANG_ISTRUCT_TYPE 0x12
-#define SLANG_ARRAY_TYPE 0x20
-#define SLANG_DATATYPE_TYPE 0x21
-#define SLANG_FILE_PTR_TYPE 0x22
-#define SLANG_ASSOC_TYPE 0x23
-#define SLANG_ANY_TYPE 0x24
-#define SLANG_BSTRING_TYPE 0x25
-#define SLANG_FILE_FD_TYPE 0x26
-
-/* Compatibility */
-#ifdef FLOAT_TYPE
-# undef FLOAT_TYPE
-#endif
-#define VOID_TYPE SLANG_VOID_TYPE
-#define INT_TYPE SLANG_INT_TYPE
-#define INTP_TYPE SLANG_INTP_TYPE
-#define FLOAT_TYPE SLANG_DOUBLE_TYPE
-#define ARRAY_TYPE SLANG_ARRAY_TYPE
-#define CHAR_TYPE SLANG_CHAR_TYPE
-#define STRING_TYPE SLANG_STRING_TYPE
-
-/* I am reserving values greater than or equal to 128 for user applications.
- * The first 127 are reserved for S-Lang.
- */
-
-/* Binary and Unary Subtypes */
-/* Since the application can define new types and can overload the binary
- * and unary operators, these definitions must be present in this file.
- * The current implementation assumes both unary and binary are distinct.
- */
-#define SLANG_PLUS 0x01
-#define SLANG_MINUS 0x02
-#define SLANG_TIMES 0x03
-#define SLANG_DIVIDE 0x04
-#define SLANG_EQ 0x05
-#define SLANG_NE 0x06
-#define SLANG_GT 0x07
-#define SLANG_GE 0x08
-#define SLANG_LT 0x09
-#define SLANG_LE 0x0A
-#define SLANG_POW 0x0B
-#define SLANG_OR 0x0C
-#define SLANG_AND 0x0D
-#define SLANG_BAND 0x0E
-#define SLANG_BOR 0x0F
-#define SLANG_BXOR 0x10
-#define SLANG_SHL 0x11
-#define SLANG_SHR 0x12
-#define SLANG_MOD 0x13
-
-/* UNARY subtypes (may be overloaded) */
-#define SLANG_PLUSPLUS 0x20
-#define SLANG_MINUSMINUS 0x21
-#define SLANG_ABS 0x22
-#define SLANG_SIGN 0x23
-#define SLANG_SQR 0x24
-#define SLANG_MUL2 0x25
-#define SLANG_CHS 0x26
-#define SLANG_NOT 0x27
-#define SLANG_BNOT 0x28
-
-extern char *SLang_Error_Message;
-
-int SLadd_intrinsic_variable (char *, VOID_STAR, unsigned char, int);
-int SLadd_intrinsic_function (char *, FVOID_STAR, unsigned char, unsigned int,...);
-
-int SLns_add_intrinsic_variable (SLang_NameSpace_Type *, char *, VOID_STAR, unsigned char, int);
-int SLns_add_intrinsic_function (SLang_NameSpace_Type *, char *, FVOID_STAR, unsigned char, unsigned int,...);
-
-extern void SLadd_at_handler (long *, char *);
-
-#define MAKE_INTRINSIC_N(n,f,out,in,a1,a2,a3,a4,a5,a6,a7) \
- {(n), NULL, SLANG_INTRINSIC, (FVOID_STAR) (f), \
- {a1,a2,a3,a4,a5,a6,a7}, (in), (out)}
-
-#define MAKE_INTRINSIC_7(n,f,out,a1,a2,a3,a4,a5,a6,a7) \
- MAKE_INTRINSIC_N(n,f,out,7,a1,a2,a3,a4,a5,a6,a7)
-#define MAKE_INTRINSIC_6(n,f,out,a1,a2,a3,a4,a5,a6) \
- MAKE_INTRINSIC_N(n,f,out,6,a1,a2,a3,a4,a5,a6,0)
-#define MAKE_INTRINSIC_5(n,f,out,a1,a2,a3,a4,a5) \
- MAKE_INTRINSIC_N(n,f,out,5,a1,a2,a3,a4,a5,0,0)
-#define MAKE_INTRINSIC_4(n,f,out,a1,a2,a3,a4) \
- MAKE_INTRINSIC_N(n,f,out,4,a1,a2,a3,a4,0,0,0)
-#define MAKE_INTRINSIC_3(n,f,out,a1,a2,a3) \
- MAKE_INTRINSIC_N(n,f,out,3,a1,a2,a3,0,0,0,0)
-#define MAKE_INTRINSIC_2(n,f,out,a1,a2) \
- MAKE_INTRINSIC_N(n,f,out,2,a1,a2,0,0,0,0,0)
-#define MAKE_INTRINSIC_1(n,f,out,a1) \
- MAKE_INTRINSIC_N(n,f,out,1,a1,0,0,0,0,0,0)
-#define MAKE_INTRINSIC_0(n,f,out) \
- MAKE_INTRINSIC_N(n,f,out,0,0,0,0,0,0,0,0)
-
-#define MAKE_INTRINSIC_S(n,f,r) \
- MAKE_INTRINSIC_1(n,f,r,SLANG_STRING_TYPE)
-#define MAKE_INTRINSIC_I(n,f,r) \
- MAKE_INTRINSIC_1(n,f,r,SLANG_INT_TYPE)
-
-#define MAKE_INTRINSIC_SS(n,f,r) \
- MAKE_INTRINSIC_2(n,f,r,SLANG_STRING_TYPE,SLANG_STRING_TYPE)
-#define MAKE_INTRINSIC_SI(n,f,r) \
- MAKE_INTRINSIC_2(n,f,r,SLANG_STRING_TYPE,SLANG_INT_TYPE)
-#define MAKE_INTRINSIC_IS(n,f,r) \
- MAKE_INTRINSIC_2(n,f,r,SLANG_INT_TYPE,SLANG_STRING_TYPE)
-#define MAKE_INTRINSIC_II(n,f,r) \
- MAKE_INTRINSIC_2(n,f,r,SLANG_INT_TYPE,SLANG_INT_TYPE)
-
-#define MAKE_INTRINSIC_SSS(n,f,r) \
- MAKE_INTRINSIC_3(n,f,r,SLANG_STRING_TYPE,SLANG_STRING_TYPE,SLANG_STRING_TYPE)
-#define MAKE_INTRINSIC_SSI(n,f,r) \
- MAKE_INTRINSIC_3(n,f,r,SLANG_STRING_TYPE,SLANG_STRING_TYPE,SLANG_INT_TYPE)
-#define MAKE_INTRINSIC_SIS(n,f,r) \
- MAKE_INTRINSIC_3(n,f,r,SLANG_STRING_TYPE,SLANG_INT_TYPE,SLANG_STRING_TYPE)
-#define MAKE_INTRINSIC_SII(n,f,r) \
- MAKE_INTRINSIC_3(n,f,r,SLANG_STRING_TYPE,SLANG_INT_TYPE,SLANG_INT_TYPE)
-#define MAKE_INTRINSIC_ISS(n,f,r) \
- MAKE_INTRINSIC_3(n,f,r,SLANG_INT_TYPE,SLANG_STRING_TYPE,SLANG_STRING_TYPE)
-#define MAKE_INTRINSIC_ISI(n,f,r) \
- MAKE_INTRINSIC_3(n,f,r,SLANG_INT_TYPE,SLANG_STRING_TYPE,SLANG_INT_TYPE)
-#define MAKE_INTRINSIC_IIS(n,f,r) \
- MAKE_INTRINSIC_3(n,f,r,SLANG_INT_TYPE,SLANG_INT_TYPE,SLANG_STRING_TYPE)
-#define MAKE_INTRINSIC_III(n,f,r) \
- MAKE_INTRINSIC_3(n,f,r,SLANG_INT_TYPE,SLANG_INT_TYPE,SLANG_INT_TYPE)
-
-#define MAKE_INTRINSIC(n, f, out, in) \
- MAKE_INTRINSIC_N(n,f,out,in,0,0,0,0,0,0,0)
-
-#define MAKE_VARIABLE(n, v, t, r) \
- {n, NULL, SLANG_IVARIABLE + (r), (VOID_STAR)(v), (t)}
-
-#define MAKE_APP_UNARY(n,op) \
- {(n), NULL, SLANG_APP_UNARY, (op)}
-
-#define MAKE_MATH_UNARY(n,op) \
- {(n), NULL, SLANG_MATH_UNARY, (op)}
-
-#define MAKE_ICONSTANT(n,val) \
- {(n),NULL, SLANG_ICONSTANT, (val)}
-
-#define MAKE_DCONSTANT(n,val) \
- {(n),NULL, SLANG_DCONSTANT, (val)}
-
-#ifndef offsetof
-# define offsetof(T,F) ((unsigned int)((char *)&((T *)0L)->F - (char *)0L))
-#endif
-#define MAKE_ISTRUCT_FIELD(s,f,n,t,r) {(n), offsetof(s,f), (t), (r)}
-
-#define SLANG_END_TABLE {NULL}
-#define SLANG_END_INTRIN_FUN_TABLE MAKE_INTRINSIC_0(NULL,NULL,0)
-#define SLANG_END_DCONST_TABLE MAKE_DCONSTANT(NULL,0)
-#define SLANG_END_MATH_UNARY_TABLE MAKE_MATH_UNARY(NULL,0)
-#define SLANG_END_INTRIN_VAR_TABLE MAKE_VARIABLE(NULL,NULL,0,0)
-#define SLANG_END_ICONST_TABLE MAKE_ICONSTANT(NULL,0)
-#define SLANG_END_ISTRUCT_TABLE {NULL, 0, 0, 0}
-
-
-
-/*}}}*/
-
-/*{{{ Upper/Lowercase Functions */
-
-extern void SLang_define_case(int *, int *);
-extern void SLang_init_case_tables (void);
-
-extern unsigned char _SLChg_UCase_Lut[256];
-extern unsigned char _SLChg_LCase_Lut[256];
-#define UPPER_CASE(x) (_SLChg_UCase_Lut[(unsigned char) (x)])
-#define LOWER_CASE(x) (_SLChg_LCase_Lut[(unsigned char) (x)])
-#define CHANGE_CASE(x) (((x) == _SLChg_LCase_Lut[(unsigned char) (x)]) ?\
- _SLChg_UCase_Lut[(unsigned char) (x)] : _SLChg_LCase_Lut[(unsigned char) (x)])
-
-/*}}}*/
-
-/*{{{ Regular Expression Interface */
-
-typedef struct
-{
- /* These must be set by calling routine. */
- unsigned char *pat; /* regular expression pattern */
- unsigned char *buf; /* buffer for compiled regexp */
- unsigned int buf_len; /* length of buffer */
- int case_sensitive; /* 1 if match is case sensitive */
-
- /* The rest are set by SLang_regexp_compile */
-
- int must_match; /* 1 if line must contain substring */
- int must_match_bol; /* true if it must match beginning of line */
- unsigned char must_match_str[16]; /* 15 char null term substring */
- int osearch; /* 1 if ordinary search suffices */
- unsigned int min_length; /* minimum length the match must be */
- int beg_matches[10]; /* offset of start of \( */
- unsigned int end_matches[10]; /* length of nth submatch
- * Note that the entire match corresponds
- * to \0
- */
- int offset; /* offset to be added to beg_matches */
- int reserved[10];
-} SLRegexp_Type;
-
-extern unsigned char *SLang_regexp_match(unsigned char *,
- unsigned int,
- SLRegexp_Type *);
-
-/* Returns 0 upon success. If failure, the offset into the
- * pattern is returned (start = 1).
- */
-extern int SLang_regexp_compile (SLRegexp_Type *);
-extern char *SLregexp_quote_string (char *, char *, unsigned int);
-
-/*}}}*/
-
-/*{{{ SLang Command Interface */
-
-struct _SLcmd_Cmd_Type; /* Pre-declaration is needed below */
-typedef struct
-{
- struct _SLcmd_Cmd_Type *table;
- int argc;
- /* Version 2.0 needs to use a union!! */
- char **string_args;
- int *int_args;
- double *double_args;
- unsigned char *arg_type;
- unsigned long reserved[4];
-} SLcmd_Cmd_Table_Type;
-
-typedef struct _SLcmd_Cmd_Type
-{
- int (*cmdfun)(int, SLcmd_Cmd_Table_Type *);
- char *cmd;
- char *arg_type;
-} SLcmd_Cmd_Type;
-
-extern int SLcmd_execute_string (char *, SLcmd_Cmd_Table_Type *);
-
-/*}}}*/
-
-/*{{{ SLang Search Interface */
-
-typedef struct
-{
- int cs; /* case sensitive */
- unsigned char key[256];
- int ind[256];
- int key_len;
- int dir;
-} SLsearch_Type;
-
-extern int SLsearch_init (char *, int, int, SLsearch_Type *);
-/* This routine must first be called before any search can take place.
- * The second parameter specifies the direction of the search: greater than
- * zero for a forwrd search and less than zero for a backward search. The
- * third parameter specifies whether the search is case sensitive or not.
- * The last parameter is a pointer to a structure that is filled by this
- * function and it is this structure that must be passed to SLsearch.
- */
-
-extern unsigned char *SLsearch (unsigned char *, unsigned char *, SLsearch_Type *);
-/* To use this routine, you must first call 'SLsearch_init'. Then the first
- * two parameters p1 and p2 serve to define the region over which the search
- * is to take place. The third parameter is the structure that was previously
- * initialized by SLsearch_init.
- *
- * The routine returns a pointer to the match if found otherwise it returns
- * NULL.
- */
-
-/*}}}*/
-
-/*{{{ SLang Pathname Interface */
-
-/* These function return pointers to the original space */
-extern char *SLpath_basename (char *);
-extern char *SLpath_extname (char *);
-extern int SLpath_is_absolute_path (char *);
-
-/* These return malloced strings--- NOT slstrings */
-extern char *SLpath_dircat (char *, char *);
-extern char *SLpath_find_file_in_path (char *, char *);
-extern char *SLpath_dirname (char *);
-extern int SLpath_file_exists (char *);
-extern char *SLpath_pathname_sans_extname (char *);
-
-/*}}}*/
-
-extern int SLang_set_module_load_path (char *);
-
-#define SLANG_MODULE(name) \
- extern int init_##name##_module_ns (char *); \
- extern void deinit_##name##_module (void)
-
-#if 0
-{
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _DAVIS_SLANG_H_ */
diff --git a/mdk-stage1/slang/slarith.c b/mdk-stage1/slang/slarith.c
deleted file mode 100644
index 07ad68687..000000000
--- a/mdk-stage1/slang/slarith.c
+++ /dev/null
@@ -1,1656 +0,0 @@
-
-/* Copyright (c) 1998, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#include <math.h>
-
-#ifdef HAVE_LOCALE_H
-# include <locale.h>
-#endif
-
-#include "slang.h"
-#include "_slang.h"
-
-/*
- * This file defines binary and unary operations on all integer types.
- * Supported types include:
- *
- * SLANG_CHAR_TYPE (char)
- * SLANG_SHORT_TYPE (short)
- * SLANG_INT_TYPE (int)
- * SLANG_LONG_TYPE (long)
- * SLANG_FLOAT_TYPE (float)
- * SLANG_DOUBLE_TYPE (double)
- *
- * as well as unsigned types. The result-type of an arithmentic operation
- * will depend upon the data types involved. I am going to distinguish
- * between the boolean operations such as `and' and `or' from the arithmetic
- * operations such as `plus'. Since the result of a boolean operation is
- * either 1 or 0, a boolean result will be represented by SLANG_CHAR_TYPE.
- * Ordinarily I would use an integer but for arrays it makes more sense to
- * use a character data type.
- *
- * So, the following will be assumed (`+' is any arithmetic operator)
- *
- * char + char = int
- * char|short + short = int
- * char|short|int + int = int
- * char|short|int|long + long = long
- * char|short|int|long|float + float = float
- * char|short|int|long|float|double + double = double
- *
- * In the actual implementation, a brute force approach is avoided. Such
- * an approach would mean defining different functions for all possible
- * combinations of types. Including the unsigned types, and not including
- * the complex number type, there are 10 arithmetic types and 10*10=100
- * different combinations of types. Clearly this would be too much.
- *
- * One approach would be to define binary functions only between operands of
- * the same type and then convert types as appropriate. This would require
- * just 6 such functions (int, uint, long, ulong, float, double).
- * However, many conversion functions are going to be required, particularly
- * since we are going to allow typecasting from one arithmetic to another.
- * Since the bit pattern of signed and unsigned types are the same, and only
- * the interpretation differs, there will be no functions to convert between
- * signed and unsigned forms of a given type.
- */
-
-#define MAX_ARITHMETIC_TYPES 10
-
-unsigned char _SLarith_Is_Arith_Type [256];
-
-unsigned char _SLarith_Arith_Types[] =
-{
- SLANG_CHAR_TYPE,
- SLANG_UCHAR_TYPE,
- SLANG_SHORT_TYPE,
- SLANG_USHORT_TYPE,
- SLANG_INT_TYPE,
- SLANG_UINT_TYPE,
- SLANG_LONG_TYPE,
- SLANG_ULONG_TYPE,
- SLANG_FLOAT_TYPE,
- SLANG_DOUBLE_TYPE,
- 0
-};
-
-/* Here are a bunch of functions to convert from one type to another. To
- * facilitate the process, a macros will be used.
- */
-
-#define DEFUN_1(f,from_type,to_type) \
-static void f (to_type *y, from_type *x, unsigned int n) \
-{ \
- unsigned int i; \
- for (i = 0; i < n; i++) y[i] = (to_type) x[i]; \
-}
-
-#define DEFUN_2(f,from_type,to_type,copy_fun) \
-static VOID_STAR f (VOID_STAR xp, unsigned int n) \
-{ \
- from_type *x; \
- to_type *y; \
- x = (from_type *) xp; \
- if (NULL == (y = (to_type *) SLmalloc (sizeof (to_type) * n))) return NULL; \
- copy_fun (y, x, n); \
- return (VOID_STAR) y; \
-}
-typedef VOID_STAR (*Convert_Fun_Type)(VOID_STAR, unsigned int);
-
-DEFUN_1(copy_char_to_char,char,char)
-#if SIZEOF_INT != SIZEOF_SHORT
-DEFUN_1(copy_char_to_short,char,short)
-DEFUN_1(copy_char_to_ushort,char,unsigned short)
-#else
-# define copy_char_to_short copy_char_to_int
-# define copy_char_to_ushort copy_char_to_uint
-#endif
-DEFUN_1(copy_char_to_int,char,int)
-DEFUN_1(copy_char_to_uint,char,unsigned int)
-#if SIZEOF_INT != SIZEOF_LONG
-DEFUN_1(copy_char_to_long,char,long)
-DEFUN_1(copy_char_to_ulong,char,unsigned long)
-#else
-# define copy_char_to_long copy_char_to_int
-# define copy_char_to_ulong copy_char_to_uint
-#endif
-DEFUN_1(copy_char_to_float,char,float)
-DEFUN_1(copy_char_to_double,char,double)
-
-#if SIZEOF_INT != SIZEOF_SHORT
-DEFUN_1(copy_uchar_to_short,unsigned char,short)
-DEFUN_1(copy_uchar_to_ushort,unsigned char,unsigned short)
-#else
-# define copy_uchar_to_short copy_uchar_to_int
-# define copy_uchar_to_ushort copy_uchar_to_uint
-#endif
-DEFUN_1(copy_uchar_to_int,unsigned char,int)
-DEFUN_1(copy_uchar_to_uint,unsigned char,unsigned int)
-#if SIZEOF_INT != SIZEOF_LONG
-DEFUN_1(copy_uchar_to_long,unsigned char,long)
-DEFUN_1(copy_uchar_to_ulong,unsigned char,unsigned long)
-#else
-# define copy_uchar_to_long copy_uchar_to_int
-# define copy_uchar_to_ulong copy_uchar_to_uint
-#endif
-DEFUN_1(copy_uchar_to_float,unsigned char,float)
-DEFUN_1(copy_uchar_to_double,unsigned char,double)
-
-#if SIZEOF_INT != SIZEOF_SHORT
-DEFUN_1(copy_short_to_char,short,char)
-DEFUN_1(copy_short_to_uchar,short,unsigned char)
-DEFUN_1(copy_short_to_short,short,short)
-DEFUN_1(copy_short_to_int,short,int)
-DEFUN_1(copy_short_to_uint,short,unsigned int)
-DEFUN_1(copy_short_to_long,short,long)
-DEFUN_1(copy_short_to_ulong,short,unsigned long)
-DEFUN_1(copy_short_to_float,short,float)
-DEFUN_1(copy_short_to_double,short,double)
-DEFUN_1(copy_ushort_to_char,unsigned short,char)
-DEFUN_1(copy_ushort_to_uchar,unsigned short,unsigned char)
-DEFUN_1(copy_ushort_to_int,unsigned short,int)
-DEFUN_1(copy_ushort_to_uint,unsigned short,unsigned int)
-DEFUN_1(copy_ushort_to_long,unsigned short,long)
-DEFUN_1(copy_ushort_to_ulong,unsigned short,unsigned long)
-DEFUN_1(copy_ushort_to_float,unsigned short,float)
-DEFUN_1(copy_ushort_to_double,unsigned short,double)
-#else
-# define copy_short_to_char copy_int_to_char
-# define copy_short_to_uchar copy_int_to_uchar
-# define copy_short_to_short copy_int_to_int
-# define copy_short_to_int copy_int_to_int
-# define copy_short_to_uint copy_int_to_int
-# define copy_short_to_long copy_int_to_long
-# define copy_short_to_ulong copy_int_to_ulong
-# define copy_short_to_float copy_int_to_float
-# define copy_short_to_double copy_int_to_double
-# define copy_ushort_to_char copy_uint_to_char
-# define copy_ushort_to_uchar copy_uint_to_uchar
-# define copy_ushort_to_int copy_int_to_int
-# define copy_ushort_to_uint copy_int_to_int
-# define copy_ushort_to_long copy_uint_to_long
-# define copy_ushort_to_ulong copy_uint_to_ulong
-# define copy_ushort_to_float copy_uint_to_float
-# define copy_ushort_to_double copy_uint_to_double
-#endif
-
-DEFUN_1(copy_int_to_char,int,char)
-DEFUN_1(copy_int_to_uchar,int,unsigned char)
-DEFUN_1(copy_uint_to_char,unsigned int,char)
-DEFUN_1(copy_uint_to_uchar,unsigned int,unsigned char)
-#if SIZEOF_INT != SIZEOF_SHORT
-DEFUN_1(copy_int_to_short,int,short)
-DEFUN_1(copy_int_to_ushort,int,unsigned short)
-DEFUN_1(copy_uint_to_short,unsigned int,short)
-DEFUN_1(copy_uint_to_ushort,unsigned int,unsigned short)
-#else
-# define copy_int_to_short copy_int_to_int
-# define copy_int_to_ushort copy_int_to_int
-# define copy_uint_to_short copy_int_to_int
-# define copy_uint_to_ushort copy_int_to_int
-#endif
-DEFUN_1(copy_int_to_int,int,int)
-#if SIZEOF_INT != SIZEOF_LONG
-DEFUN_1(copy_int_to_long,int,long)
-DEFUN_1(copy_int_to_ulong,int,unsigned long)
-DEFUN_1(copy_uint_to_long,unsigned int,long)
-DEFUN_1(copy_uint_to_ulong,unsigned int,unsigned long)
-#else
-# define copy_int_to_long copy_int_to_int
-# define copy_int_to_ulong copy_int_to_int
-# define copy_uint_to_long copy_int_to_int
-# define copy_uint_to_ulong copy_int_to_int
-#endif
-DEFUN_1(copy_int_to_float,int,float)
-DEFUN_1(copy_int_to_double,int,double)
-DEFUN_1(copy_uint_to_float,unsigned int,float)
-DEFUN_1(copy_uint_to_double,unsigned int,double)
-
-#if SIZEOF_INT != SIZEOF_LONG
-DEFUN_1(copy_long_to_char,long,char)
-DEFUN_1(copy_long_to_uchar,long,unsigned char)
-DEFUN_1(copy_long_to_short,long,short)
-DEFUN_1(copy_long_to_ushort,long,unsigned short)
-DEFUN_1(copy_long_to_int,long,int)
-DEFUN_1(copy_long_to_uint,long,unsigned int)
-DEFUN_1(copy_long_to_long,long,long)
-DEFUN_1(copy_long_to_float,long,float)
-DEFUN_1(copy_long_to_double,long,double)
-DEFUN_1(copy_ulong_to_char,unsigned long,char)
-DEFUN_1(copy_ulong_to_uchar,unsigned long,unsigned char)
-DEFUN_1(copy_ulong_to_short,unsigned long,short)
-DEFUN_1(copy_ulong_to_ushort,unsigned long,unsigned short)
-DEFUN_1(copy_ulong_to_int,unsigned long,int)
-DEFUN_1(copy_ulong_to_uint,unsigned long,unsigned int)
-DEFUN_1(copy_ulong_to_float,unsigned long,float)
-DEFUN_1(copy_ulong_to_double,unsigned long,double)
-#else
-#define copy_long_to_char copy_int_to_char
-#define copy_long_to_uchar copy_int_to_uchar
-#define copy_long_to_short copy_int_to_short
-#define copy_long_to_ushort copy_int_to_ushort
-#define copy_long_to_int copy_int_to_int
-#define copy_long_to_uint copy_int_to_int
-#define copy_long_to_long copy_int_to_int
-#define copy_long_to_float copy_int_to_float
-#define copy_long_to_double copy_int_to_double
-#define copy_ulong_to_char copy_uint_to_char
-#define copy_ulong_to_uchar copy_uint_to_uchar
-#define copy_ulong_to_short copy_uint_to_short
-#define copy_ulong_to_ushort copy_uint_to_ushort
-#define copy_ulong_to_int copy_int_to_int
-#define copy_ulong_to_uint copy_int_to_int
-#define copy_ulong_to_float copy_uint_to_float
-#define copy_ulong_to_double copy_uint_to_double
-#endif
-
-DEFUN_1(copy_float_to_char,float,char)
-DEFUN_1(copy_float_to_uchar,float,unsigned char)
-#if SIZEOF_INT != SIZEOF_SHORT
-DEFUN_1(copy_float_to_short,float,short)
-DEFUN_1(copy_float_to_ushort,float,unsigned short)
-#else
-# define copy_float_to_short copy_float_to_int
-# define copy_float_to_ushort copy_float_to_uint
-#endif
-DEFUN_1(copy_float_to_int,float,int)
-DEFUN_1(copy_float_to_uint,float,unsigned int)
-#if SIZEOF_INT != SIZEOF_LONG
-DEFUN_1(copy_float_to_long,float,long)
-DEFUN_1(copy_float_to_ulong,float,unsigned long)
-#else
-# define copy_float_to_long copy_float_to_int
-# define copy_float_to_ulong copy_float_to_uint
-#endif
-DEFUN_1(copy_float_to_float,float,float)
-DEFUN_1(copy_float_to_double,float,double)
-
-DEFUN_1(copy_double_to_char,double,char)
-DEFUN_1(copy_double_to_uchar,double,unsigned char)
-#if SIZEOF_INT != SIZEOF_SHORT
-DEFUN_1(copy_double_to_short,double,short)
-DEFUN_1(copy_double_to_ushort,double,unsigned short)
-#else
-# define copy_double_to_short copy_double_to_int
-# define copy_double_to_ushort copy_double_to_uint
-#endif
-DEFUN_1(copy_double_to_int,double,int)
-DEFUN_1(copy_double_to_uint,double,unsigned int)
-#if SIZEOF_INT != SIZEOF_LONG
-DEFUN_1(copy_double_to_long,double,long)
-DEFUN_1(copy_double_to_ulong,double,unsigned long)
-#else
-# define copy_double_to_long copy_double_to_int
-# define copy_double_to_ulong copy_double_to_uint
-#endif
-DEFUN_1(copy_double_to_float,double,float)
-DEFUN_1(copy_double_to_double,double,double)
-
-DEFUN_2(char_to_int,char,int,copy_char_to_int)
-DEFUN_2(char_to_uint,char,unsigned int,copy_char_to_uint)
-#if SIZEOF_INT != SIZEOF_LONG
-DEFUN_2(char_to_long,char,long,copy_char_to_long)
-DEFUN_2(char_to_ulong,char,unsigned long,copy_char_to_ulong)
-#else
-# define char_to_long char_to_int
-# define char_to_ulong char_to_uint
-#endif
-DEFUN_2(char_to_float,char,float,copy_char_to_float)
-DEFUN_2(char_to_double,char,double,copy_char_to_double)
-
-DEFUN_2(uchar_to_int,unsigned char,int,copy_uchar_to_int)
-DEFUN_2(uchar_to_uint,unsigned char,unsigned int,copy_uchar_to_uint)
-#if SIZEOF_INT != SIZEOF_LONG
-DEFUN_2(uchar_to_long,unsigned char,long,copy_uchar_to_long)
-DEFUN_2(uchar_to_ulong,unsigned char,unsigned long,copy_uchar_to_ulong)
-#else
-# define uchar_to_long uchar_to_int
-# define uchar_to_ulong uchar_to_uint
-#endif
-DEFUN_2(uchar_to_float,unsigned char,float,copy_uchar_to_float)
-DEFUN_2(uchar_to_double,unsigned char,double,copy_uchar_to_double)
-
-#if SIZEOF_INT != SIZEOF_SHORT
-DEFUN_2(short_to_int,short,int,copy_short_to_int)
-DEFUN_2(short_to_uint,short,unsigned int,copy_short_to_uint)
-DEFUN_2(short_to_long,short,long,copy_short_to_long)
-DEFUN_2(short_to_ulong,short,unsigned long,copy_short_to_ulong)
-DEFUN_2(short_to_float,short,float,copy_short_to_float)
-DEFUN_2(short_to_double,short,double,copy_short_to_double)
-DEFUN_2(ushort_to_int,unsigned short,int,copy_ushort_to_int)
-DEFUN_2(ushort_to_uint,unsigned short,unsigned int,copy_ushort_to_uint)
-DEFUN_2(ushort_to_long,unsigned short,long,copy_ushort_to_long)
-DEFUN_2(ushort_to_ulong,unsigned short,unsigned long,copy_ushort_to_ulong)
-DEFUN_2(ushort_to_float,unsigned short,float,copy_ushort_to_float)
-DEFUN_2(ushort_to_double,unsigned short,double,copy_ushort_to_double)
-#else
-# define short_to_int NULL
-# define short_to_uint NULL
-# define short_to_long int_to_long
-# define short_to_ulong int_to_ulong
-# define short_to_float int_to_float
-# define short_to_double int_to_double
-# define ushort_to_int NULL
-# define ushort_to_uint NULL
-# define ushort_to_long uint_to_long
-# define ushort_to_ulong uint_to_ulong
-# define ushort_to_float uint_to_float
-# define ushort_to_double uint_to_double
-#endif
-
-#if SIZEOF_INT != SIZEOF_LONG
-DEFUN_2(int_to_long,int,long,copy_int_to_long)
-DEFUN_2(int_to_ulong,int,unsigned long,copy_int_to_ulong)
-#else
-# define int_to_long NULL
-# define int_to_ulong NULL
-#endif
-DEFUN_2(int_to_float,int,float,copy_int_to_float)
-DEFUN_2(int_to_double,int,double,copy_int_to_double)
-
-#if SIZEOF_INT != SIZEOF_LONG
-DEFUN_2(uint_to_long,unsigned int,long,copy_uint_to_long)
-DEFUN_2(uint_to_ulong,unsigned int,unsigned long,copy_uint_to_ulong)
-#else
-# define uint_to_long NULL
-# define uint_to_ulong NULL
-#endif
-DEFUN_2(uint_to_float,unsigned int,float,copy_uint_to_float)
-DEFUN_2(uint_to_double,unsigned int,double,copy_uint_to_double)
-
-#if SIZEOF_INT != SIZEOF_LONG
-DEFUN_2(long_to_float,long,float,copy_long_to_float)
-DEFUN_2(long_to_double,long,double,copy_long_to_double)
-DEFUN_2(ulong_to_float,unsigned long,float,copy_ulong_to_float)
-DEFUN_2(ulong_to_double,unsigned long,double,copy_ulong_to_double)
-#else
-# define long_to_float int_to_float
-# define long_to_double int_to_double
-# define ulong_to_float uint_to_float
-# define ulong_to_double uint_to_double
-#endif
-
-DEFUN_2(float_to_double,float,double,copy_float_to_double)
-
-#define TO_DOUBLE_FUN(name,type) \
-static double name (VOID_STAR x) { return (double) *(type *) x; }
-TO_DOUBLE_FUN(char_to_one_double,char)
-TO_DOUBLE_FUN(uchar_to_one_double,unsigned char)
-#if SIZEOF_INT != SIZEOF_SHORT
-TO_DOUBLE_FUN(short_to_one_double,short)
-TO_DOUBLE_FUN(ushort_to_one_double,unsigned short)
-#else
-# define short_to_one_double int_to_one_double
-# define ushort_to_one_double uint_to_one_double
-#endif
-TO_DOUBLE_FUN(int_to_one_double,int)
-TO_DOUBLE_FUN(uint_to_one_double,unsigned int)
-#if SIZEOF_INT != SIZEOF_LONG
-TO_DOUBLE_FUN(long_to_one_double,long)
-TO_DOUBLE_FUN(ulong_to_one_double,unsigned long)
-#else
-# define long_to_one_double int_to_one_double
-# define ulong_to_one_double uint_to_one_double
-#endif
-TO_DOUBLE_FUN(float_to_one_double,float)
-TO_DOUBLE_FUN(double_to_one_double,double)
-
-SLang_To_Double_Fun_Type
-SLarith_get_to_double_fun (unsigned char type, unsigned int *sizeof_type)
-{
- unsigned int da;
- SLang_To_Double_Fun_Type to_double;
-
- switch (type)
- {
- default:
- return NULL;
-
- case SLANG_CHAR_TYPE:
- da = sizeof (char); to_double = char_to_one_double;
- break;
- case SLANG_UCHAR_TYPE:
- da = sizeof (unsigned char); to_double = uchar_to_one_double;
- break;
- case SLANG_SHORT_TYPE:
- da = sizeof (short); to_double = short_to_one_double;
- break;
- case SLANG_USHORT_TYPE:
- da = sizeof (unsigned short); to_double = ushort_to_one_double;
- break;
- case SLANG_INT_TYPE:
- da = sizeof (int); to_double = int_to_one_double;
- break;
- case SLANG_UINT_TYPE:
- da = sizeof (unsigned int); to_double = uint_to_one_double;
- break;
- case SLANG_LONG_TYPE:
- da = sizeof (long); to_double = long_to_one_double;
- break;
- case SLANG_ULONG_TYPE:
- da = sizeof (unsigned long); to_double = ulong_to_one_double;
- break;
- case SLANG_FLOAT_TYPE:
- da = sizeof (float); to_double = float_to_one_double;
- break;
- case SLANG_DOUBLE_TYPE:
- da = sizeof (double); to_double = double_to_one_double;
- break;
- }
-
- if (sizeof_type != NULL) *sizeof_type = da;
- return to_double;
-}
-
-/* Each element of the matrix determines how the row maps onto the column.
- * That is, let the matrix be B_ij. Where the i,j indices refer to
- * precedence of the type. Then,
- * B_ij->copy_function copies type i to type j. Similarly,
- * B_ij->convert_function mallocs a new array of type j and copies i to it.
- *
- * Since types are always converted to higher levels of precedence for binary
- * operations, many of the elements are NULL.
- *
- * Is the idea clear?
- */
-typedef struct
-{
- FVOID_STAR copy_function;
- Convert_Fun_Type convert_function;
-}
-Binary_Matrix_Type;
-
-static Binary_Matrix_Type Binary_Matrix [MAX_ARITHMETIC_TYPES][MAX_ARITHMETIC_TYPES] =
-{
- {
- {(FVOID_STAR)copy_char_to_char, NULL},
- {(FVOID_STAR)copy_char_to_char, NULL},
- {(FVOID_STAR) copy_char_to_short, NULL},
- {(FVOID_STAR) copy_char_to_ushort, NULL},
- {(FVOID_STAR) copy_char_to_int, char_to_int},
- {(FVOID_STAR) copy_char_to_uint, char_to_uint},
- {(FVOID_STAR) copy_char_to_long, char_to_long},
- {(FVOID_STAR) copy_char_to_ulong, char_to_ulong},
- {(FVOID_STAR) copy_char_to_float, char_to_float},
- {(FVOID_STAR) copy_char_to_double, char_to_double},
- },
-
- {
- {(FVOID_STAR)copy_char_to_char, NULL},
- {(FVOID_STAR)copy_char_to_char, NULL},
- {(FVOID_STAR) copy_uchar_to_short, NULL},
- {(FVOID_STAR) copy_uchar_to_ushort, NULL},
- {(FVOID_STAR) copy_uchar_to_int, uchar_to_int},
- {(FVOID_STAR) copy_uchar_to_uint, uchar_to_uint},
- {(FVOID_STAR) copy_uchar_to_long, uchar_to_long},
- {(FVOID_STAR) copy_uchar_to_ulong, uchar_to_ulong},
- {(FVOID_STAR) copy_uchar_to_float, uchar_to_float},
- {(FVOID_STAR) copy_uchar_to_double, uchar_to_double},
- },
-
- {
- {(FVOID_STAR) copy_short_to_char, NULL},
- {(FVOID_STAR) copy_short_to_uchar, NULL},
- {(FVOID_STAR) copy_short_to_short, NULL},
- {(FVOID_STAR) copy_short_to_short, NULL},
- {(FVOID_STAR) copy_short_to_int, short_to_int},
- {(FVOID_STAR) copy_short_to_uint, short_to_uint},
- {(FVOID_STAR) copy_short_to_long, short_to_long},
- {(FVOID_STAR) copy_short_to_ulong, short_to_ulong},
- {(FVOID_STAR) copy_short_to_float, short_to_float},
- {(FVOID_STAR) copy_short_to_double, short_to_double},
- },
-
- {
- {(FVOID_STAR) copy_ushort_to_char, NULL},
- {(FVOID_STAR) copy_ushort_to_uchar, NULL},
- {(FVOID_STAR) copy_short_to_short, NULL},
- {(FVOID_STAR) copy_short_to_short, NULL},
- {(FVOID_STAR) copy_ushort_to_int, ushort_to_int},
- {(FVOID_STAR) copy_ushort_to_uint, ushort_to_uint},
- {(FVOID_STAR) copy_ushort_to_long, ushort_to_long},
- {(FVOID_STAR) copy_ushort_to_ulong, ushort_to_ulong},
- {(FVOID_STAR) copy_ushort_to_float, ushort_to_float},
- {(FVOID_STAR) copy_ushort_to_double, ushort_to_double},
- },
-
- {
- {(FVOID_STAR) copy_int_to_char, NULL},
- {(FVOID_STAR) copy_int_to_uchar, NULL},
- {(FVOID_STAR) copy_int_to_short, NULL},
- {(FVOID_STAR) copy_int_to_ushort, NULL},
- {(FVOID_STAR) copy_int_to_int, NULL},
- {(FVOID_STAR) copy_int_to_int, NULL},
- {(FVOID_STAR) copy_int_to_long, int_to_long},
- {(FVOID_STAR) copy_int_to_ulong, int_to_ulong},
- {(FVOID_STAR) copy_int_to_float, int_to_float},
- {(FVOID_STAR) copy_int_to_double, int_to_double},
- },
-
- {
- {(FVOID_STAR) copy_uint_to_char, NULL},
- {(FVOID_STAR) copy_uint_to_uchar, NULL},
- {(FVOID_STAR) copy_uint_to_short, NULL},
- {(FVOID_STAR) copy_uint_to_ushort, NULL},
- {(FVOID_STAR) copy_int_to_int, NULL},
- {(FVOID_STAR) copy_int_to_int, NULL},
- {(FVOID_STAR) copy_uint_to_long, uint_to_long},
- {(FVOID_STAR) copy_uint_to_ulong, uint_to_ulong},
- {(FVOID_STAR) copy_uint_to_float, uint_to_float},
- {(FVOID_STAR) copy_uint_to_double, uint_to_double},
- },
-
- {
- {(FVOID_STAR) copy_long_to_char, NULL},
- {(FVOID_STAR) copy_long_to_uchar, NULL},
- {(FVOID_STAR) copy_long_to_short, NULL},
- {(FVOID_STAR) copy_long_to_ushort, NULL},
- {(FVOID_STAR) copy_long_to_int, NULL},
- {(FVOID_STAR) copy_long_to_uint, NULL},
- {(FVOID_STAR) copy_long_to_long, NULL},
- {(FVOID_STAR) copy_long_to_long, NULL},
- {(FVOID_STAR) copy_long_to_float, long_to_float},
- {(FVOID_STAR) copy_long_to_double, long_to_double},
- },
-
- {
- {(FVOID_STAR) copy_ulong_to_char, NULL},
- {(FVOID_STAR) copy_ulong_to_uchar, NULL},
- {(FVOID_STAR) copy_ulong_to_short, NULL},
- {(FVOID_STAR) copy_ulong_to_ushort, NULL},
- {(FVOID_STAR) copy_ulong_to_int, NULL},
- {(FVOID_STAR) copy_ulong_to_uint, NULL},
- {(FVOID_STAR) copy_long_to_long, NULL},
- {(FVOID_STAR) copy_long_to_long, NULL},
- {(FVOID_STAR) copy_ulong_to_float, ulong_to_float},
- {(FVOID_STAR) copy_ulong_to_double, ulong_to_double},
- },
-
- {
- {(FVOID_STAR) copy_float_to_char, NULL},
- {(FVOID_STAR) copy_float_to_uchar, NULL},
- {(FVOID_STAR) copy_float_to_short, NULL},
- {(FVOID_STAR) copy_float_to_ushort, NULL},
- {(FVOID_STAR) copy_float_to_int, NULL},
- {(FVOID_STAR) copy_float_to_uint, NULL},
- {(FVOID_STAR) copy_float_to_long, NULL},
- {(FVOID_STAR) copy_float_to_ulong, NULL},
- {(FVOID_STAR) copy_float_to_float, NULL},
- {(FVOID_STAR) copy_float_to_double, float_to_double},
- },
-
- {
- {(FVOID_STAR) copy_double_to_char, NULL},
- {(FVOID_STAR) copy_double_to_uchar, NULL},
- {(FVOID_STAR) copy_double_to_short, NULL},
- {(FVOID_STAR) copy_double_to_ushort, NULL},
- {(FVOID_STAR) copy_double_to_int, NULL},
- {(FVOID_STAR) copy_double_to_uint, NULL},
- {(FVOID_STAR) copy_double_to_long, NULL},
- {(FVOID_STAR) copy_double_to_ulong, NULL},
- {(FVOID_STAR) copy_double_to_float, NULL},
- {(FVOID_STAR) copy_double_to_double, NULL},
- }
-};
-
-#define GENERIC_BINARY_FUNCTION int_int_bin_op
-#define GENERIC_BIT_OPERATIONS
-#define GENERIC_TYPE int
-#define POW_FUNCTION(a,b) pow((double)(a),(double)(b))
-#define POW_RESULT_TYPE double
-#define ABS_FUNCTION abs
-#define MOD_FUNCTION(a,b) ((a) % (b))
-#define GENERIC_UNARY_FUNCTION int_unary_op
-#define SIGN_FUNCTION(x) (((x) > 0) ? 1 : (((x) < 0) ? -1 : 0))
-#define SCALAR_BINARY_FUNCTION int_int_scalar_bin_op
-#define PUSH_SCALAR_OBJ_FUN(x) SLclass_push_int_obj(SLANG_INT_TYPE,(x))
-#define PUSH_POW_OBJ_FUN(x) SLclass_push_double_obj(SLANG_DOUBLE_TYPE, (x))
-#define CMP_FUNCTION int_cmp_function
-#include "slarith.inc"
-
-#define GENERIC_BINARY_FUNCTION uint_uint_bin_op
-#define GENERIC_BIT_OPERATIONS
-#define GENERIC_TYPE unsigned int
-#define POW_FUNCTION(a,b) pow((double)(a),(double)(b))
-#define POW_RESULT_TYPE double
-#define MOD_FUNCTION(a,b) ((a) % (b))
-#define GENERIC_UNARY_FUNCTION uint_unary_op
-#define ABS_FUNCTION(a) (a)
-#define SIGN_FUNCTION(x) (((x) > 0) ? 1 : 0)
-#define SCALAR_BINARY_FUNCTION uint_uint_scalar_bin_op
-#define PUSH_SCALAR_OBJ_FUN(x) SLclass_push_int_obj(SLANG_UINT_TYPE,(int)(x))
-#define PUSH_POW_OBJ_FUN(x) SLclass_push_double_obj(SLANG_DOUBLE_TYPE, (x))
-#define CMP_FUNCTION uint_cmp_function
-#include "slarith.inc"
-
-#if SIZEOF_LONG != SIZEOF_INT
-#define GENERIC_BINARY_FUNCTION long_long_bin_op
-#define GENERIC_BIT_OPERATIONS
-#define GENERIC_TYPE long
-#define POW_FUNCTION(a,b) pow((double)(a),(double)(b))
-#define POW_RESULT_TYPE double
-#define MOD_FUNCTION(a,b) ((a) % (b))
-#define GENERIC_UNARY_FUNCTION long_unary_op
-#define ABS_FUNCTION(a) (((a) >= 0) ? (a) : -(a))
-#define SIGN_FUNCTION(x) (((x) > 0) ? 1 : (((x) < 0) ? -1 : 0))
-#define SCALAR_BINARY_FUNCTION long_long_scalar_bin_op
-#define PUSH_SCALAR_OBJ_FUN(x) SLclass_push_long_obj(SLANG_LONG_TYPE,(x))
-#define PUSH_POW_OBJ_FUN(x) SLclass_push_double_obj(SLANG_DOUBLE_TYPE, (x))
-#define CMP_FUNCTION long_cmp_function
-#include "slarith.inc"
-
-#define GENERIC_BINARY_FUNCTION ulong_ulong_bin_op
-#define GENERIC_BIT_OPERATIONS
-#define GENERIC_TYPE unsigned long
-#define POW_FUNCTION(a,b) pow((double)(a),(double)(b))
-#define POW_RESULT_TYPE double
-#define MOD_FUNCTION(a,b) ((a) % (b))
-#define GENERIC_UNARY_FUNCTION ulong_unary_op
-#define ABS_FUNCTION(a) (a)
-#define SIGN_FUNCTION(x) (((x) > 0) ? 1 : 0)
-#define SCALAR_BINARY_FUNCTION ulong_ulong_scalar_bin_op
-#define PUSH_SCALAR_OBJ_FUN(x) SLclass_push_long_obj(SLANG_ULONG_TYPE,(long)(x))
-#define PUSH_POW_OBJ_FUN(x) SLclass_push_double_obj(SLANG_DOUBLE_TYPE, (x))
-#define CMP_FUNCTION ulong_cmp_function
-#include "slarith.inc"
-#else
-#define long_long_bin_op int_int_bin_op
-#define ulong_ulong_bin_op uint_uint_bin_op
-#define long_unary_op int_unary_op
-#define ulong_unary_op uint_unary_op
-#define long_cmp_function int_cmp_function
-#define ulong_cmp_function uint_cmp_function
-#endif /* SIZEOF_INT != SIZEOF_LONG */
-
-#define GENERIC_BINARY_FUNCTION float_float_bin_op
-#define GENERIC_TYPE float
-#define POW_FUNCTION(a,b) (float)pow((double)(a),(double)(b))
-#define POW_RESULT_TYPE float
-#define MOD_FUNCTION(a,b) (float)fmod((a),(b))
-#define GENERIC_UNARY_FUNCTION float_unary_op
-#define ABS_FUNCTION(a) (float)fabs((double) a)
-#define SIGN_FUNCTION(x) (((x) > 0) ? 1 : (((x) < 0) ? -1 : 0))
-#define SCALAR_BINARY_FUNCTION float_float_scalar_bin_op
-#define PUSH_SCALAR_OBJ_FUN(x) SLclass_push_float_obj(SLANG_FLOAT_TYPE,(x))
-#define PUSH_POW_OBJ_FUN(x) SLclass_push_float_obj(SLANG_FLOAT_TYPE, (x))
-#define CMP_FUNCTION float_cmp_function
-#include "slarith.inc"
-
-#define GENERIC_BINARY_FUNCTION double_double_bin_op
-#define GENERIC_TYPE double
-#define POW_FUNCTION(a,b) pow((double)(a),(double)(b))
-#define POW_RESULT_TYPE double
-#define MOD_FUNCTION(a,b) (float)fmod((a),(b))
-#define GENERIC_UNARY_FUNCTION double_unary_op
-#define ABS_FUNCTION(a) fabs(a)
-#define SIGN_FUNCTION(x) (((x) > 0) ? 1 : (((x) < 0) ? -1 : 0))
-#define SCALAR_BINARY_FUNCTION double_double_scalar_bin_op
-#define PUSH_SCALAR_OBJ_FUN(x) SLclass_push_double_obj(SLANG_DOUBLE_TYPE,(x))
-#define PUSH_POW_OBJ_FUN(x) SLclass_push_double_obj(SLANG_DOUBLE_TYPE, (x))
-#define CMP_FUNCTION double_cmp_function
-#include "slarith.inc"
-
-#define GENERIC_UNARY_FUNCTION char_unary_op
-#define GENERIC_BIT_OPERATIONS
-#define GENERIC_TYPE signed char
-#define ABS_FUNCTION abs
-#define SIGN_FUNCTION(x) (((x) > 0) ? 1 : (((x) < 0) ? -1 : 0))
-#define CMP_FUNCTION char_cmp_function
-#include "slarith.inc"
-
-#define GENERIC_UNARY_FUNCTION uchar_unary_op
-#define GENERIC_BIT_OPERATIONS
-#define GENERIC_TYPE unsigned char
-#define ABS_FUNCTION(x) (x)
-#define SIGN_FUNCTION(x) (((x) > 0) ? 1 : 0)
-#define CMP_FUNCTION uchar_cmp_function
-#include "slarith.inc"
-
-#if SIZEOF_SHORT != SIZEOF_INT
-#define GENERIC_UNARY_FUNCTION short_unary_op
-#define GENERIC_BIT_OPERATIONS
-#define GENERIC_TYPE short
-#define ABS_FUNCTION abs
-#define SIGN_FUNCTION(x) (((x) > 0) ? 1 : (((x) < 0) ? -1 : 0))
-#define CMP_FUNCTION short_cmp_function
-#include "slarith.inc"
-
-#define GENERIC_UNARY_FUNCTION ushort_unary_op
-#define GENERIC_BIT_OPERATIONS
-#define GENERIC_TYPE unsigned short
-#define ABS_FUNCTION(x) (x)
-#define SIGN_FUNCTION(x) (((x) > 0) ? 1 : 0)
-#define CMP_FUNCTION ushort_cmp_function
-#include "slarith.inc"
-#endif /* SIZEOF_INT != SIZEOF_SHORT */
-
-/* Unfortunately, the numbers that were assigned to the data-types were
- * not well thought out. So, I need to use the following table.
- */
-#define MAXIMUM_ARITH_TYPE_VALUE SLANG_FLOAT_TYPE
-#define IS_INTEGER_TYPE(x) \
- (((x) <= MAXIMUM_ARITH_TYPE_VALUE) \
- && (Type_Precedence_Table[x] < 8) && (Type_Precedence_Table[x] != -1))
-#define IS_ARITHMETIC_TYPE(x) \
- (((x) <= MAXIMUM_ARITH_TYPE_VALUE) && (Type_Precedence_Table[x] != -1))
-
-#define LONG_PRECEDENCE_VALUE 6
-#define FLOAT_PRECEDENCE_VALUE 8
-
-static signed char Type_Precedence_Table [MAXIMUM_ARITH_TYPE_VALUE + 1] =
-{
- -1, /* SLANG_UNDEFINED_TYPE */
- -1, /* SLANG_VOID_TYPE */
- 4, /* SLANG_INT_TYPE */
- 9, /* SLANG_DOUBLE_TYPE */
- 0, /* SLANG_CHAR_TYPE */
- -1, /* SLANG_INTP_TYPE */
- -1, /* SLANG_REF_TYPE */
- -1, /* SLANG_COMPLEX_TYPE */
- -1, /* SLANG_NULL_TYPE */
- 1, /* SLANG_UCHAR_TYPE */
- 2, /* SLANG_SHORT_TYPE */
- 3, /* SLANG_USHORT_TYPE */
- 5, /* SLANG_UINT_TYPE */
- 6, /* SLANG_LONG_TYPE */
- 7, /* SLANG_ULONG_TYPE */
- -1, /* SLANG_STRING_TYPE */
- 8 /* SLANG_FLOAT_TYPE */
-};
-
-int _SLarith_get_precedence (unsigned char type)
-{
- if (type > MAXIMUM_ARITH_TYPE_VALUE)
- return -1;
-
- return Type_Precedence_Table[type];
-}
-
-unsigned char _SLarith_promote_type (unsigned char t)
-{
- switch (t)
- {
- case SLANG_FLOAT_TYPE:
- case SLANG_DOUBLE_TYPE:
- case SLANG_LONG_TYPE:
- case SLANG_ULONG_TYPE:
- case SLANG_INT_TYPE:
- case SLANG_UINT_TYPE:
- break;
-
- case SLANG_USHORT_TYPE:
-#if SIZEOF_INT == SIZEOF_SHORT
- t = SLANG_UINT_TYPE;
- break;
-#endif
- /* drop */
- case SLANG_CHAR_TYPE:
- case SLANG_UCHAR_TYPE:
- case SLANG_SHORT_TYPE:
- default:
- t = SLANG_INT_TYPE;
- }
-
- return t;
-}
-
-static unsigned char promote_to_common_type (unsigned char a, unsigned char b)
-{
- a = _SLarith_promote_type (a);
- b = _SLarith_promote_type (b);
-
- return (Type_Precedence_Table[a] > Type_Precedence_Table[b]) ? a : b;
-}
-
-static int arith_bin_op_result (int op, unsigned char a_type, unsigned char b_type,
- unsigned char *c_type)
-{
- switch (op)
- {
- case SLANG_EQ:
- case SLANG_NE:
- case SLANG_GT:
- case SLANG_GE:
- case SLANG_LT:
- case SLANG_LE:
- case SLANG_OR:
- case SLANG_AND:
- *c_type = SLANG_CHAR_TYPE;
- return 1;
-
- case SLANG_POW:
- if (SLANG_FLOAT_TYPE == promote_to_common_type (a_type, b_type))
- *c_type = SLANG_FLOAT_TYPE;
- else
- *c_type = SLANG_DOUBLE_TYPE;
- return 1;
-
- case SLANG_BAND:
- case SLANG_BXOR:
- case SLANG_BOR:
- case SLANG_SHL:
- case SLANG_SHR:
- /* The bit-level operations are defined just for integer types */
- if ((0 == IS_INTEGER_TYPE (a_type))
- || (0 == IS_INTEGER_TYPE(b_type)))
- return 0;
- break;
-
- default:
- break;
- }
-
- *c_type = promote_to_common_type (a_type, b_type);
- return 1;
-}
-
-typedef int (*Bin_Fun_Type) (int,
- unsigned char, VOID_STAR, unsigned int,
- unsigned char, VOID_STAR, unsigned int,
- VOID_STAR);
-
-/* This array of functions must be indexed by precedence after arithmetic
- * promotions.
- */
-static Bin_Fun_Type Bin_Fun_Map [MAX_ARITHMETIC_TYPES] =
-{
- NULL,
- NULL,
- NULL,
- NULL,
- int_int_bin_op,
- uint_uint_bin_op,
- long_long_bin_op,
- ulong_ulong_bin_op,
- float_float_bin_op,
- double_double_bin_op
-};
-
-static int arith_bin_op (int op,
- unsigned char a_type, VOID_STAR ap, unsigned int na,
- unsigned char b_type, VOID_STAR bp, unsigned int nb,
- VOID_STAR cp)
-{
- Convert_Fun_Type af, bf;
- Bin_Fun_Type binfun;
- int a_indx, b_indx, c_indx;
- unsigned char c_type;
- int ret;
-
- c_type = promote_to_common_type (a_type, b_type);
-
- a_indx = Type_Precedence_Table [a_type];
- b_indx = Type_Precedence_Table [b_type];
- c_indx = Type_Precedence_Table [c_type];
-
- af = Binary_Matrix[a_indx][c_indx].convert_function;
- bf = Binary_Matrix[b_indx][c_indx].convert_function;
- binfun = Bin_Fun_Map[c_indx];
-
- if ((af != NULL)
- && (NULL == (ap = (VOID_STAR) (*af) (ap, na))))
- return -1;
-
- if ((bf != NULL)
- && (NULL == (bp = (VOID_STAR) (*bf) (bp, nb))))
- {
- if (af != NULL) SLfree ((char *) ap);
- return -1;
- }
-
- ret = (*binfun) (op, a_type, ap, na, b_type, bp, nb, cp);
- if (af != NULL) SLfree ((char *) ap);
- if (bf != NULL) SLfree ((char *) bp);
-
- return ret;
-}
-
-static int arith_unary_op_result (int op, unsigned char a, unsigned char *b)
-{
- (void) a;
- switch (op)
- {
- default:
- return 0;
-
- case SLANG_SQR:
- case SLANG_MUL2:
- case SLANG_PLUSPLUS:
- case SLANG_MINUSMINUS:
- case SLANG_CHS:
- case SLANG_ABS:
- *b = a;
- break;
-
- case SLANG_NOT:
- case SLANG_BNOT:
- if (0 == IS_INTEGER_TYPE(a))
- return 0;
- *b = a;
- break;
-
- case SLANG_SIGN:
- *b = SLANG_INT_TYPE;
- break;
- }
- return 1;
-}
-
-static int integer_pop (unsigned char type, VOID_STAR ptr)
-{
- SLang_Object_Type obj;
- int i, j;
- void (*f)(VOID_STAR, VOID_STAR, unsigned int);
-
- if (-1 == SLang_pop (&obj))
- return -1;
-
- if ((obj.data_type > MAXIMUM_ARITH_TYPE_VALUE)
- || ((j = Type_Precedence_Table[obj.data_type]) == -1)
- || (j >= FLOAT_PRECEDENCE_VALUE))
- {
- _SLclass_type_mismatch_error (type, obj.data_type);
- SLang_free_object (&obj);
- return -1;
- }
-
- i = Type_Precedence_Table[type];
- f = (void (*)(VOID_STAR, VOID_STAR, unsigned int))
- Binary_Matrix[j][i].copy_function;
-
- (*f) (ptr, (VOID_STAR)&obj.v, 1);
-
- return 0;
-}
-
-static int integer_push (unsigned char type, VOID_STAR ptr)
-{
- SLang_Object_Type obj;
- int i;
- void (*f)(VOID_STAR, VOID_STAR, unsigned int);
-
- i = Type_Precedence_Table[type];
- f = (void (*)(VOID_STAR, VOID_STAR, unsigned int))
- Binary_Matrix[i][i].copy_function;
-
- obj.data_type = type;
-
- (*f) ((VOID_STAR)&obj.v, ptr, 1);
-
- return SLang_push (&obj);
-}
-
-int SLang_pop_char (char *i)
-{
- return integer_pop (SLANG_CHAR_TYPE, (VOID_STAR) i);
-}
-
-int SLang_pop_uchar (unsigned char *i)
-{
- return integer_pop (SLANG_UCHAR_TYPE, (VOID_STAR) i);
-}
-
-int SLang_pop_short (short *i)
-{
- return integer_pop (SLANG_SHORT_TYPE, (VOID_STAR) i);
-}
-
-int SLang_pop_ushort (unsigned short *i)
-{
- return integer_pop (SLANG_USHORT_TYPE, (VOID_STAR) i);
-}
-
-int SLang_pop_long (long *i)
-{
- return integer_pop (SLANG_LONG_TYPE, (VOID_STAR) i);
-}
-
-int SLang_pop_ulong (unsigned long *i)
-{
- return integer_pop (SLANG_ULONG_TYPE, (VOID_STAR) i);
-}
-
-int SLang_pop_integer (int *i)
-{
-#if _SLANG_OPTIMIZE_FOR_SPEED
- SLang_Object_Type obj;
-
- if (-1 == _SLang_pop_object_of_type (SLANG_INT_TYPE, &obj, 0))
- return -1;
- *i = obj.v.int_val;
- return 0;
-#else
- return integer_pop (SLANG_INT_TYPE, (VOID_STAR) i);
-#endif
-}
-
-int SLang_pop_uinteger (unsigned int *i)
-{
- return integer_pop (SLANG_UINT_TYPE, (VOID_STAR) i);
-}
-
-int SLang_push_integer (int i)
-{
- return SLclass_push_int_obj (SLANG_INT_TYPE, i);
-}
-int SLang_push_uinteger (unsigned int i)
-{
- return SLclass_push_int_obj (SLANG_UINT_TYPE, (int) i);
-}
-int SLang_push_char (char i)
-{
- return SLclass_push_char_obj (SLANG_CHAR_TYPE, i);
-}
-int SLang_push_uchar (unsigned char i)
-{
- return SLclass_push_char_obj (SLANG_UCHAR_TYPE, (char) i);
-}
-int SLang_push_short (short i)
-{
- return SLclass_push_short_obj (SLANG_SHORT_TYPE, i);
-}
-int SLang_push_ushort (unsigned short i)
-{
- return SLclass_push_short_obj (SLANG_USHORT_TYPE, (unsigned short) i);
-}
-int SLang_push_long (long i)
-{
- return SLclass_push_long_obj (SLANG_LONG_TYPE, i);
-}
-int SLang_push_ulong (unsigned long i)
-{
- return SLclass_push_long_obj (SLANG_ULONG_TYPE, (long) i);
-}
-
-_INLINE_
-int _SLarith_typecast (unsigned char a_type, VOID_STAR ap, unsigned int na,
- unsigned char b_type, VOID_STAR bp)
-{
- int i, j;
-
- void (*copy)(VOID_STAR, VOID_STAR, unsigned int);
-
- i = Type_Precedence_Table[a_type];
- j = Type_Precedence_Table[b_type];
-
- copy = (void (*)(VOID_STAR, VOID_STAR, unsigned int))
- Binary_Matrix[i][j].copy_function;
-
- (*copy) (bp, ap, na);
- return 1;
-}
-
-#if SLANG_HAS_FLOAT
-
-int SLang_pop_double(double *x, int *convertp, int *ip)
-{
- SLang_Object_Type obj;
- int i, convert;
-
- if (0 != SLang_pop (&obj))
- return -1;
-
- i = 0;
- convert = 0;
-
- switch (obj.data_type)
- {
- case SLANG_FLOAT_TYPE:
- *x = (double) obj.v.float_val;
- break;
-
- case SLANG_DOUBLE_TYPE:
- *x = obj.v.double_val;
- break;
-
- case SLANG_INT_TYPE:
- i = (int) obj.v.long_val;
- *x = (double) i;
- convert = 1;
- break;
-
- case SLANG_CHAR_TYPE: *x = (double) obj.v.char_val; break;
- case SLANG_UCHAR_TYPE: *x = (double) obj.v.uchar_val; break;
- case SLANG_SHORT_TYPE: *x = (double) obj.v.short_val; break;
- case SLANG_USHORT_TYPE: *x = (double) obj.v.ushort_val; break;
- case SLANG_UINT_TYPE: *x = (double) obj.v.uint_val; break;
- case SLANG_LONG_TYPE: *x = (double) obj.v.long_val; break;
- case SLANG_ULONG_TYPE: *x = (double) obj.v.ulong_val; break;
-
- default:
- _SLclass_type_mismatch_error (SLANG_DOUBLE_TYPE, obj.data_type);
- SLang_free_object (&obj);
- return -1;
- }
-
- if (convertp != NULL) *convertp = convert;
- if (ip != NULL) *ip = i;
-
- return 0;
-}
-
-int SLang_push_double (double x)
-{
- return SLclass_push_double_obj (SLANG_DOUBLE_TYPE, x);
-}
-
-int SLang_pop_float (float *x)
-{
- double d;
-
- /* Pop it as a double and let the double function do all the typcasting */
- if (-1 == SLang_pop_double (&d, NULL, NULL))
- return -1;
-
- *x = (float) d;
- return 0;
-}
-
-int SLang_push_float (float f)
-{
- return SLclass_push_float_obj (SLANG_FLOAT_TYPE, (double) f);
-}
-
-/* Double */
-static int double_push (unsigned char unused, VOID_STAR ptr)
-{
- (void) unused;
- SLang_push_double (*(double *) ptr);
- return 0;
-}
-
-static int double_push_literal (unsigned char type, VOID_STAR ptr)
-{
- (void) type;
- return SLang_push_double (**(double **)ptr);
-}
-
-static int double_pop (unsigned char unused, VOID_STAR ptr)
-{
- (void) unused;
- return SLang_pop_double ((double *) ptr, NULL, NULL);
-}
-
-static void double_byte_code_destroy (unsigned char unused, VOID_STAR ptr)
-{
- (void) unused;
- SLfree (*(char **) ptr);
-}
-
-static int float_push (unsigned char unused, VOID_STAR ptr)
-{
- (void) unused;
- SLang_push_float (*(float *) ptr);
- return 0;
-}
-
-static int float_pop (unsigned char unused, VOID_STAR ptr)
-{
- (void) unused;
- return SLang_pop_float ((float *) ptr);
-}
-
-#endif /* SLANG_HAS_FLOAT */
-
-#if SLANG_HAS_FLOAT
-static char Double_Format[16] = "%g";
-
-void _SLset_double_format (char *s)
-{
- strncpy (Double_Format, s, 15);
- Double_Format[15] = 0;
-}
-#endif
-
-static char *arith_string (unsigned char type, VOID_STAR v)
-{
- char buf [256];
- char *s;
-
- s = buf;
-
- switch (type)
- {
- default:
- s = SLclass_get_datatype_name (type);
- break;
-
- case SLANG_CHAR_TYPE:
- sprintf (s, "%d", *(char *) v);
- break;
- case SLANG_UCHAR_TYPE:
- sprintf (s, "%u", *(unsigned char *) v);
- break;
- case SLANG_SHORT_TYPE:
- sprintf (s, "%d", *(short *) v);
- break;
- case SLANG_USHORT_TYPE:
- sprintf (s, "%u", *(unsigned short *) v);
- break;
- case SLANG_INT_TYPE:
- sprintf (s, "%d", *(int *) v);
- break;
- case SLANG_UINT_TYPE:
- sprintf (s, "%u", *(unsigned int *) v);
- break;
- case SLANG_LONG_TYPE:
- sprintf (s, "%ld", *(long *) v);
- break;
- case SLANG_ULONG_TYPE:
- sprintf (s, "%lu", *(unsigned long *) v);
- break;
-#if SLANG_HAS_FLOAT
- case SLANG_FLOAT_TYPE:
- if (EOF == _SLsnprintf (buf, sizeof (buf), Double_Format, *(float *) v))
- sprintf (s, "%e", *(float *) v);
- break;
- case SLANG_DOUBLE_TYPE:
- if (EOF == _SLsnprintf (buf, sizeof (buf), Double_Format, *(double *) v))
- sprintf (s, "%e", *(double *) v);
- break;
-#endif
- }
-
- return SLmake_string (s);
-}
-
-static int integer_to_bool (unsigned char type, int *t)
-{
- (void) type;
- return SLang_pop_integer (t);
-}
-
-static int push_int_literal (unsigned char type, VOID_STAR ptr)
-{
- return SLclass_push_int_obj (type, (int) *(long *) ptr);
-}
-
-static int push_char_literal (unsigned char type, VOID_STAR ptr)
-{
- return SLclass_push_char_obj (type, (char) *(long *) ptr);
-}
-
-#if SIZEOF_SHORT != SIZEOF_INT
-static int push_short_literal (unsigned char type, VOID_STAR ptr)
-{
- return SLclass_push_short_obj (type, (short) *(long *) ptr);
-}
-#endif
-
-#if SIZEOF_INT != SIZEOF_LONG
-static int push_long_literal (unsigned char type, VOID_STAR ptr)
-{
- return SLclass_push_long_obj (type, *(long *) ptr);
-}
-#endif
-
-typedef struct
-{
- char *name;
- unsigned char data_type;
- unsigned int sizeof_type;
- int (*unary_fun)(int, unsigned char, VOID_STAR, unsigned int, VOID_STAR);
- int (*push_literal) (unsigned char, VOID_STAR);
- int (*cmp_fun) (unsigned char, VOID_STAR, VOID_STAR, int *);
-}
-Integer_Info_Type;
-
-static Integer_Info_Type Integer_Types [8] =
-{
- {"Char_Type", SLANG_CHAR_TYPE, sizeof (char), char_unary_op, push_char_literal, char_cmp_function},
- {"UChar_Type", SLANG_UCHAR_TYPE, sizeof (unsigned char), uchar_unary_op, push_char_literal, uchar_cmp_function},
-#if SIZEOF_INT != SIZEOF_SHORT
- {"Short_Type", SLANG_SHORT_TYPE, sizeof (short), short_unary_op, push_short_literal, short_cmp_function},
- {"UShort_Type", SLANG_USHORT_TYPE, sizeof (unsigned short), ushort_unary_op, push_short_literal, ushort_cmp_function},
-#else
- {NULL, SLANG_SHORT_TYPE},
- {NULL, SLANG_USHORT_TYPE},
-#endif
-
- {"Integer_Type", SLANG_INT_TYPE, sizeof (int), int_unary_op, push_int_literal, int_cmp_function},
- {"UInteger_Type", SLANG_UINT_TYPE, sizeof (unsigned int), uint_unary_op, push_int_literal, uint_cmp_function},
-
-#if SIZEOF_INT != SIZEOF_LONG
- {"Long_Type", SLANG_LONG_TYPE, sizeof (long), long_unary_op, push_long_literal, long_cmp_function},
- {"ULong_Type", SLANG_ULONG_TYPE, sizeof (unsigned long), ulong_unary_op, push_long_literal, ulong_cmp_function}
-#else
- {NULL, SLANG_LONG_TYPE, 0, NULL, NULL, NULL},
- {NULL, SLANG_ULONG_TYPE, 0, NULL, NULL, NULL}
-#endif
-};
-
-static int create_synonyms (void)
-{
- static char *names[8] =
- {
- "Int16_Type", "UInt16_Type", "Int32_Type", "UInt32_Type",
- "Int64_Type", "UInt64_Type",
- "Float32_Type", "Float64_Type"
- };
- int types[8];
- unsigned int i;
-
- memset ((char *) types, 0, sizeof (types));
-
- /* The assumption is that sizeof(unsigned X) == sizeof (X) */
-#if SIZEOF_INT == 2
- types[0] = SLANG_INT_TYPE;
- types[1] = SLANG_UINT_TYPE;
-#else
-# if SIZEOF_SHORT == 2
- types[0] = SLANG_SHORT_TYPE;
- types[1] = SLANG_USHORT_TYPE;
-# else
-# if SIZEOF_LONG == 2
- types[0] = SLANG_LONG_TYPE;
- types[1] = SLANG_ULONG_TYPE;
-# endif
-# endif
-#endif
-
-#if SIZEOF_INT == 4
- types[2] = SLANG_INT_TYPE;
- types[3] = SLANG_UINT_TYPE;
-#else
-# if SIZEOF_SHORT == 4
- types[2] = SLANG_SHORT_TYPE;
- types[3] = SLANG_USHORT_TYPE;
-# else
-# if SIZEOF_LONG == 4
- types[2] = SLANG_LONG_TYPE;
- types[3] = SLANG_ULONG_TYPE;
-# endif
-# endif
-#endif
-
-#if SIZEOF_INT == 8
- types[4] = SLANG_INT_TYPE;
- types[5] = SLANG_UINT_TYPE;
-#else
-# if SIZEOF_SHORT == 8
- types[4] = SLANG_SHORT_TYPE;
- types[5] = SLANG_USHORT_TYPE;
-# else
-# if SIZEOF_LONG == 8
- types[4] = SLANG_LONG_TYPE;
- types[5] = SLANG_ULONG_TYPE;
-# endif
-# endif
-#endif
-
-#if SLANG_HAS_FLOAT
-
-#if SIZEOF_FLOAT == 4
- types[6] = SLANG_FLOAT_TYPE;
-#else
-# if SIZEOF_DOUBLE == 4
- types[6] = SLANG_DOUBLE_TYPE;
-# endif
-#endif
-#if SIZEOF_FLOAT == 8
- types[7] = SLANG_FLOAT_TYPE;
-#else
-# if SIZEOF_DOUBLE == 8
- types[7] = SLANG_DOUBLE_TYPE;
-# endif
-#endif
-
-#endif
-
- if ((-1 == SLclass_create_synonym ("Int_Type", SLANG_INT_TYPE))
- || (-1 == SLclass_create_synonym ("UInt_Type", SLANG_UINT_TYPE)))
- return -1;
-
- for (i = 0; i < 8; i++)
- {
- if (types[i] == 0) continue;
-
- if (-1 == SLclass_create_synonym (names[i], types[i]))
- return -1;
- }
-
-#if SIZEOF_INT == SIZEOF_SHORT
- if ((-1 == SLclass_create_synonym ("Short_Type", SLANG_INT_TYPE))
- || (-1 == SLclass_create_synonym ("UShort_Type", SLANG_UINT_TYPE))
- || (-1 == _SLclass_copy_class (SLANG_SHORT_TYPE, SLANG_INT_TYPE))
- || (-1 == _SLclass_copy_class (SLANG_USHORT_TYPE, SLANG_UINT_TYPE)))
- return -1;
-#endif
-#if SIZEOF_INT == SIZEOF_LONG
- if ((-1 == SLclass_create_synonym ("Long_Type", SLANG_INT_TYPE))
- || (-1 == SLclass_create_synonym ("ULong_Type", SLANG_UINT_TYPE))
- || (-1 == _SLclass_copy_class (SLANG_LONG_TYPE, SLANG_INT_TYPE))
- || (-1 == _SLclass_copy_class (SLANG_ULONG_TYPE, SLANG_UINT_TYPE)))
- return -1;
-#endif
- return 0;
-}
-
-int _SLarith_register_types (void)
-{
- SLang_Class_Type *cl;
- int a_type, b_type;
- int i, j;
-
-#if defined(HAVE_SETLOCALE) && defined(LC_NUMERIC)
- /* make sure decimal point it used --- the parser requires it */
- (void) setlocale (LC_NUMERIC, "C");
-#endif
-
- for (i = 0; i < 8; i++)
- {
- Integer_Info_Type *info;
-
- info = Integer_Types + i;
-
- if (info->name == NULL)
- {
- /* This happens when the object is the same size as an integer
- * For this case, we really want to copy the integer class.
- * We will handle that when the synonym is created.
- */
- continue;
- }
-
- if (NULL == (cl = SLclass_allocate_class (info->name)))
- return -1;
-
- (void) SLclass_set_string_function (cl, arith_string);
- (void) SLclass_set_push_function (cl, integer_push);
- (void) SLclass_set_pop_function (cl, integer_pop);
- cl->cl_push_literal = info->push_literal;
- cl->cl_to_bool = integer_to_bool;
-
- cl->cl_cmp = info->cmp_fun;
-
- if (-1 == SLclass_register_class (cl, info->data_type, info->sizeof_type,
- SLANG_CLASS_TYPE_SCALAR))
- return -1;
- if (-1 == SLclass_add_unary_op (info->data_type, info->unary_fun, arith_unary_op_result))
- return -1;
-
- _SLarith_Is_Arith_Type [info->data_type] = 1;
- }
-
-#if SLANG_HAS_FLOAT
- if (NULL == (cl = SLclass_allocate_class ("Double_Type")))
- return -1;
- (void) SLclass_set_push_function (cl, double_push);
- (void) SLclass_set_pop_function (cl, double_pop);
- (void) SLclass_set_string_function (cl, arith_string);
- cl->cl_byte_code_destroy = double_byte_code_destroy;
- cl->cl_push_literal = double_push_literal;
- cl->cl_cmp = double_cmp_function;
-
- if (-1 == SLclass_register_class (cl, SLANG_DOUBLE_TYPE, sizeof (double),
- SLANG_CLASS_TYPE_SCALAR))
- return -1;
- if (-1 == SLclass_add_unary_op (SLANG_DOUBLE_TYPE, double_unary_op, arith_unary_op_result))
- return -1;
- _SLarith_Is_Arith_Type [SLANG_DOUBLE_TYPE] = 2;
-
- if (NULL == (cl = SLclass_allocate_class ("Float_Type")))
- return -1;
- (void) SLclass_set_string_function (cl, arith_string);
- (void) SLclass_set_push_function (cl, float_push);
- (void) SLclass_set_pop_function (cl, float_pop);
- cl->cl_cmp = float_cmp_function;
-
- if (-1 == SLclass_register_class (cl, SLANG_FLOAT_TYPE, sizeof (float),
- SLANG_CLASS_TYPE_SCALAR))
- return -1;
- if (-1 == SLclass_add_unary_op (SLANG_FLOAT_TYPE, float_unary_op, arith_unary_op_result))
- return -1;
- _SLarith_Is_Arith_Type [SLANG_FLOAT_TYPE] = 2;
-#endif
-
- if (-1 == create_synonyms ())
- return -1;
-
- for (a_type = 0; a_type <= MAXIMUM_ARITH_TYPE_VALUE; a_type++)
- {
- if (-1 == (i = Type_Precedence_Table [a_type]))
- continue;
-
- for (b_type = 0; b_type <= MAXIMUM_ARITH_TYPE_VALUE; b_type++)
- {
- int implicit_ok;
-
- if (-1 == (j = Type_Precedence_Table [b_type]))
- continue;
-
- /* Allow implicit typecast, except from into to float */
- implicit_ok = ((j >= FLOAT_PRECEDENCE_VALUE)
- || (i < FLOAT_PRECEDENCE_VALUE));
-
- if (-1 == SLclass_add_binary_op (a_type, b_type, arith_bin_op, arith_bin_op_result))
- return -1;
-
- if (i != j)
- if (-1 == SLclass_add_typecast (a_type, b_type, _SLarith_typecast, implicit_ok))
- return -1;
- }
- }
-
- return 0;
-}
-
-#if _SLANG_OPTIMIZE_FOR_SPEED
-
-static void promote_objs (SLang_Object_Type *a, SLang_Object_Type *b,
- SLang_Object_Type *c, SLang_Object_Type *d)
-{
- unsigned char ia, ib, ic, id;
- int i, j;
- void (*copy)(VOID_STAR, VOID_STAR, unsigned int);
-
- ia = a->data_type;
- ib = b->data_type;
-
- ic = _SLarith_promote_type (ia);
-
- if (ic == ib) id = ic; /* already promoted */
- else id = _SLarith_promote_type (ib);
-
- i = Type_Precedence_Table[ic];
- j = Type_Precedence_Table[id];
- if (i > j)
- {
- id = ic;
- j = i;
- }
-
- c->data_type = d->data_type = id;
-
- i = Type_Precedence_Table[ia];
- copy = (void (*)(VOID_STAR, VOID_STAR, unsigned int))
- Binary_Matrix[i][j].copy_function;
- (*copy) ((VOID_STAR) &c->v, (VOID_STAR)&a->v, 1);
-
- i = Type_Precedence_Table[ib];
- copy = (void (*)(VOID_STAR, VOID_STAR, unsigned int))
- Binary_Matrix[i][j].copy_function;
- (*copy) ((VOID_STAR) &d->v, (VOID_STAR)&b->v, 1);
-}
-
-int _SLarith_bin_op (SLang_Object_Type *oa, SLang_Object_Type *ob, int op)
-{
- unsigned char a_type, b_type;
-
- a_type = oa->data_type;
- b_type = ob->data_type;
-
- if (a_type != b_type)
- {
- SLang_Object_Type obj_a, obj_b;
-
- /* Handle common cases */
- if ((a_type == SLANG_INT_TYPE)
- && (b_type == SLANG_DOUBLE_TYPE))
- return double_double_scalar_bin_op (oa->v.int_val, ob->v.double_val, op);
-
- if ((a_type == SLANG_DOUBLE_TYPE)
- && (b_type == SLANG_INT_TYPE))
- return double_double_scalar_bin_op (oa->v.double_val, ob->v.int_val, op);
-
- /* Otherwise do it the hard way */
- promote_objs (oa, ob, &obj_a, &obj_b);
- oa = &obj_a;
- ob = &obj_b;
-
- a_type = oa->data_type;
- b_type = ob->data_type;
- }
-
-
- switch (a_type)
- {
- case SLANG_CHAR_TYPE:
- return int_int_scalar_bin_op (oa->v.char_val, ob->v.char_val, op);
-
- case SLANG_UCHAR_TYPE:
- return int_int_scalar_bin_op (oa->v.uchar_val, ob->v.uchar_val, op);
-
- case SLANG_SHORT_TYPE:
- return int_int_scalar_bin_op (oa->v.short_val, ob->v.short_val, op);
-
- case SLANG_USHORT_TYPE:
-# if SIZEOF_INT == SIZEOF_SHORT
- return uint_uint_scalar_bin_op (oa->v.ushort_val, ob->v.ushort_val, op);
-# else
- return int_int_scalar_bin_op ((int)oa->v.ushort_val, (int)ob->v.ushort_val, op);
-# endif
-
-#if SIZEOF_LONG == SIZEOF_INT
- case SLANG_LONG_TYPE:
-#endif
- case SLANG_INT_TYPE:
- return int_int_scalar_bin_op (oa->v.int_val, ob->v.int_val, op);
-
-#if SIZEOF_LONG == SIZEOF_INT
- case SLANG_ULONG_TYPE:
-#endif
- case SLANG_UINT_TYPE:
- return uint_uint_scalar_bin_op (oa->v.uint_val, ob->v.uint_val, op);
-
-#if SIZEOF_LONG != SIZEOF_INT
- case SLANG_LONG_TYPE:
- return long_long_scalar_bin_op (oa->v.long_val, ob->v.long_val, op);
- case SLANG_ULONG_TYPE:
- return ulong_ulong_scalar_bin_op (oa->v.ulong_val, ob->v.ulong_val, op);
-#endif
- case SLANG_FLOAT_TYPE:
- return float_float_scalar_bin_op (oa->v.float_val, ob->v.float_val, op);
- case SLANG_DOUBLE_TYPE:
- return double_double_scalar_bin_op (oa->v.double_val, ob->v.double_val, op);
- }
-
- return 1;
-}
-#endif
diff --git a/mdk-stage1/slang/slarith.inc b/mdk-stage1/slang/slarith.inc
deleted file mode 100644
index efa8a5e04..000000000
--- a/mdk-stage1/slang/slarith.inc
+++ /dev/null
@@ -1,783 +0,0 @@
-/* -*- c -*- */
-
-/* This include file is a template for defining arithmetic binary operations
- * on arithmetic types. I realize that doing it this way is not very
- * elegant but it minimizes the number of lines of code and I believe it
- * promotes clarity.
- */
-
-/* The following macros should be properly defined before including this file:
- *
- * GENERIC_BINARY_FUNCTION: The name of the binary function
- * GENERIC_TYPE: The class data type
- * MOD_FUNCTION: The function to use for mod
- * ABS_FUNCTION: Name of the abs function
- * SIGN_FUNCTION: Name of the sign function
- * GENERIC_UNARY_FUNCTION Name of the unary function
- *
- * If GENERIC_BIT_OPERATIONS is defined, the bit-level binary operators
- * will get included. If the data type has a power operation (SLANG_POW),
- * then POW_FUNCTION should be defined to return POW_RESULT_TYPE.
- */
-#ifdef GENERIC_BINARY_FUNCTION
-
-static int GENERIC_BINARY_FUNCTION
-(int op,
- unsigned char a_type, VOID_STAR ap, unsigned int na,
- unsigned char b_type, VOID_STAR bp, unsigned int nb,
- VOID_STAR cp)
-{
- GENERIC_TYPE *c, *a, *b;
-#ifdef POW_FUNCTION
- POW_RESULT_TYPE *d;
-#endif
- unsigned int n;
-#if _SLANG_OPTIMIZE_FOR_SPEED < 2
- unsigned int n_max, da, db;
-#endif
- char *cc;
-
- (void) a_type; /* Both SLANG_INT_TYPE */
- (void) b_type;
-
- a = (GENERIC_TYPE *) ap;
- b = (GENERIC_TYPE *) bp;
- c = (GENERIC_TYPE *) cp;
- cc = (char *) cp;
-
-#if _SLANG_OPTIMIZE_FOR_SPEED < 2
- if (na == 1) da = 0; else da = 1;
- if (nb == 1) db = 0; else db = 1;
-
- if (na > nb) n_max = na; else n_max = nb;
-#endif
-
- switch (op)
- {
- default:
- return 0;
-#ifdef POW_FUNCTION
- case SLANG_POW:
- d = (POW_RESULT_TYPE *) cp;
-#if _SLANG_OPTIMIZE_FOR_SPEED < 2
- for (n = 0; n < n_max; n++)
- {
- d[n] = POW_FUNCTION(*a, *b);
- a += da; b += db;
- }
-#else
- if (na == nb)
- {
- for (n = 0; n < na; n++)
- d[n] = POW_FUNCTION(a[n],b[n]);
- }
- else if (nb == 1)
- {
- GENERIC_TYPE xb = *b;
- if (xb == 2)
- for (n = 0; n < na; n++)
- d[n] = a[n] * a[n];
- else
- for (n = 0; n < na; n++)
- d[n] = POW_FUNCTION(a[n], xb);
- }
- else /* if (na == 1) */
- {
- GENERIC_TYPE xa = *a;
- for (n = 0; n < nb; n++)
- d[n] = POW_FUNCTION(xa, b[n]);
- }
-#endif
- break;
-#endif
- case SLANG_PLUS:
-#if _SLANG_OPTIMIZE_FOR_SPEED < 2
- for (n = 0; n < n_max; n++)
- {
- c[n] = (*a + *b); a += da; b += db;
- }
-#else
- if (na == nb)
- {
- for (n = 0; n < na; n++)
- c[n] = a[n] + b[n];
- }
- else if (nb == 1)
- {
- GENERIC_TYPE xb = *b;
- for (n = 0; n < na; n++)
- c[n] = a[n] + xb;
- }
- else /* if (na == 1) */
- {
- GENERIC_TYPE xa = *a;
- for (n = 0; n < nb; n++)
- c[n] = xa + b[n];
- }
-#endif
- break;
-
- case SLANG_MINUS:
-#if _SLANG_OPTIMIZE_FOR_SPEED < 2
- for (n = 0; n < n_max; n++)
- {
- c[n] = (*a - *b); a += da; b += db;
- }
-#else
- if (na == nb)
- {
- for (n = 0; n < na; n++)
- c[n] = a[n] - b[n];
- }
- else if (nb == 1)
- {
- GENERIC_TYPE xb = *b;
- for (n = 0; n < na; n++)
- c[n] = a[n] - xb;
- }
- else /* if (na == 1) */
- {
- GENERIC_TYPE xa = *a;
- for (n = 0; n < nb; n++)
- c[n] = xa - b[n];
- }
-#endif
- break;
-
- case SLANG_TIMES:
-#if _SLANG_OPTIMIZE_FOR_SPEED < 2
- for (n = 0; n < n_max; n++)
- {
- c[n] = (*a * *b); a += da; b += db;
- }
-#else
- if (na == nb)
- {
- for (n = 0; n < na; n++)
- c[n] = a[n] * b[n];
- }
- else if (nb == 1)
- {
- GENERIC_TYPE xb = *b;
- for (n = 0; n < na; n++)
- c[n] = a[n] * xb;
- }
- else /* if (na == 1) */
- {
- GENERIC_TYPE xa = *a;
- for (n = 0; n < nb; n++)
- c[n] = xa * b[n];
- }
-#endif
- break;
-
- case SLANG_DIVIDE:
-#if _SLANG_OPTIMIZE_FOR_SPEED < 2
- for (n = 0; n < n_max; n++)
- {
- if (*b == 0)
- {
- SLang_Error = SL_DIVIDE_ERROR;
- return -1;
- }
- c[n] = (*a / *b); a += da; b += db;
- }
-#else
- if (na == nb)
- {
- for (n = 0; n < na; n++)
- {
- if (b[n] == 0)
- {
- SLang_Error = SL_DIVIDE_ERROR;
- return -1;
- }
- c[n] = a[n] / b[n];
- }
- }
- else if (nb == 1)
- {
- GENERIC_TYPE xb = *b;
-
- if (xb == 0)
- {
- SLang_Error = SL_DIVIDE_ERROR;
- return -1;
- }
- for (n = 0; n < na; n++)
- c[n] = a[n] / xb;
- }
- else /* if (na == 1) */
- {
- GENERIC_TYPE xa = *a;
- for (n = 0; n < nb; n++)
- {
- if (b[n] == 0)
- {
- SLang_Error = SL_DIVIDE_ERROR;
- return -1;
- }
- c[n] = xa / b[n];
- }
- }
-#endif
- break;
-
- case SLANG_MOD:
-#if _SLANG_OPTIMIZE_FOR_SPEED < 2
- for (n = 0; n < n_max; n++)
- {
- if (*b == 0)
- {
- SLang_Error = SL_DIVIDE_ERROR;
- return -1;
- }
- c[n] = MOD_FUNCTION(*a, *b); a += da; b += db;
- }
-#else
- if (na == nb)
- {
- for (n = 0; n < na; n++)
- {
- if (b[n] == 0)
- {
- SLang_Error = SL_DIVIDE_ERROR;
- return -1;
- }
- c[n] = MOD_FUNCTION(a[n],b[n]);
- }
- }
- else if (nb == 1)
- {
- GENERIC_TYPE xb = *b;
- if (xb == 0)
- {
- SLang_Error = SL_DIVIDE_ERROR;
- return -1;
- }
- for (n = 0; n < na; n++)
- c[n] = MOD_FUNCTION(a[n],xb);
- }
- else /* if (na == 1) */
- {
- GENERIC_TYPE xa = *a;
- for (n = 0; n < nb; n++)
- {
- if (b[n] == 0)
- {
- SLang_Error = SL_DIVIDE_ERROR;
- return -1;
- }
- c[n] = MOD_FUNCTION(xa,b[n]);
- }
- }
-#endif
- break;
-
-#ifdef GENERIC_BIT_OPERATIONS
- case SLANG_BAND:
-#if _SLANG_OPTIMIZE_FOR_SPEED < 2
- for (n = 0; n < n_max; n++)
- {
- c[n] = (*a & *b); a += da; b += db;
- }
-#else
- if (na == nb)
- {
- for (n = 0; n < na; n++)
- c[n] = a[n] & b[n];
- }
- else if (nb == 1)
- {
- GENERIC_TYPE xb = *b;
- for (n = 0; n < na; n++)
- c[n] = a[n] & xb;
- }
- else /* if (na == 1) */
- {
- GENERIC_TYPE xa = *a;
- for (n = 0; n < nb; n++)
- c[n] = xa & b[n];
- }
-#endif
- break;
-
- case SLANG_BXOR:
-#if _SLANG_OPTIMIZE_FOR_SPEED < 2
- for (n = 0; n < n_max; n++)
- {
- c[n] = (*a ^ *b); a += da; b += db;
- }
-#else
- if (na == nb)
- {
- for (n = 0; n < na; n++)
- c[n] = a[n] ^ b[n];
- }
- else if (nb == 1)
- {
- GENERIC_TYPE xb = *b;
- for (n = 0; n < na; n++)
- c[n] = a[n] ^ xb;
- }
- else /* if (na == 1) */
- {
- GENERIC_TYPE xa = *a;
- for (n = 0; n < nb; n++)
- c[n] = xa ^ b[n];
- }
-#endif
- break;
-
- case SLANG_BOR:
-#if _SLANG_OPTIMIZE_FOR_SPEED < 2
- for (n = 0; n < n_max; n++)
- {
- c[n] = (*a | *b); a += da; b += db;
- }
-#else
- if (na == nb)
- {
- for (n = 0; n < na; n++)
- c[n] = a[n] | b[n];
- }
- else if (nb == 1)
- {
- GENERIC_TYPE xb = *b;
- for (n = 0; n < na; n++)
- c[n] = a[n] | xb;
- }
- else /* if (na == 1) */
- {
- GENERIC_TYPE xa = *a;
- for (n = 0; n < nb; n++)
- c[n] = xa | b[n];
- }
-#endif
- break;
-
- case SLANG_SHL:
-#if _SLANG_OPTIMIZE_FOR_SPEED < 2
- for (n = 0; n < n_max; n++)
- {
- c[n] = (*a << *b); a += da; b += db;
- }
-#else
- if (na == nb)
- {
- for (n = 0; n < na; n++)
- c[n] = a[n] << b[n];
- }
- else if (nb == 1)
- {
- GENERIC_TYPE xb = *b;
- for (n = 0; n < na; n++)
- c[n] = a[n] << xb;
- }
- else /* if (na == 1) */
- {
- GENERIC_TYPE xa = *a;
- for (n = 0; n < nb; n++)
- c[n] = xa << b[n];
- }
-#endif
- break;
-
- case SLANG_SHR:
-#if _SLANG_OPTIMIZE_FOR_SPEED < 2
- for (n = 0; n < n_max; n++)
- {
- c[n] = (*a >> *b); a += da; b += db;
- }
-#else
- if (na == nb)
- {
- for (n = 0; n < na; n++)
- c[n] = a[n] >> b[n];
- }
- else if (nb == 1)
- {
- GENERIC_TYPE xb = *b;
- for (n = 0; n < na; n++)
- c[n] = a[n] >> xb;
- }
- else /* if (na == 1) */
- {
- GENERIC_TYPE xa = *a;
- for (n = 0; n < nb; n++)
- c[n] = xa >> b[n];
- }
-#endif
- break;
-#endif /* GENERIC_BIT_OPERATIONS */
- case SLANG_EQ:
-#if _SLANG_OPTIMIZE_FOR_SPEED < 2
- for (n = 0; n < n_max; n++)
- {
- cc[n] = (*a == *b); a += da; b += db;
- }
-#else
- if (na == nb)
- {
- for (n = 0; n < na; n++)
- cc[n] = (a[n] == b[n]);
- }
- else if (nb == 1)
- {
- GENERIC_TYPE xb = *b;
- for (n = 0; n < na; n++)
- cc[n] = (a[n] == xb);
- }
- else /* if (na == 1) */
- {
- GENERIC_TYPE xa = *a;
- for (n = 0; n < nb; n++)
- cc[n] = (xa == b[n]);
- }
-#endif
- break;
-
- case SLANG_NE:
-#if _SLANG_OPTIMIZE_FOR_SPEED < 2
- for (n = 0; n < n_max; n++)
- {
- cc[n] = (*a != *b); a += da; b += db;
- }
-#else
- if (na == nb)
- {
- for (n = 0; n < na; n++)
- cc[n] = (a[n] != b[n]);
- }
- else if (nb == 1)
- {
- GENERIC_TYPE xb = *b;
- for (n = 0; n < na; n++)
- cc[n] = (a[n] != xb);
- }
- else /* if (na == 1) */
- {
- GENERIC_TYPE xa = *a;
- for (n = 0; n < nb; n++)
- cc[n] = (xa != b[n]);
- }
-#endif
- break;
-
- case SLANG_GT:
-#if _SLANG_OPTIMIZE_FOR_SPEED < 2
- for (n = 0; n < n_max; n++)
- {
- cc[n] = (*a > *b); a += da; b += db;
- }
-#else
- if (na == nb)
- {
- for (n = 0; n < na; n++)
- cc[n] = (a[n] > b[n]);
- }
- else if (nb == 1)
- {
- GENERIC_TYPE xb = *b;
- for (n = 0; n < na; n++)
- cc[n] = (a[n] > xb);
- }
- else /* if (na == 1) */
- {
- GENERIC_TYPE xa = *a;
- for (n = 0; n < nb; n++)
- cc[n] = (xa > b[n]);
- }
-#endif
- break;
-
- case SLANG_GE:
-#if _SLANG_OPTIMIZE_FOR_SPEED < 2
- for (n = 0; n < n_max; n++)
- {
- cc[n] = (*a >= *b); a += da; b += db;
- }
-#else
- if (na == nb)
- {
- for (n = 0; n < na; n++)
- cc[n] = (a[n] >= b[n]);
- }
- else if (nb == 1)
- {
- GENERIC_TYPE xb = *b;
- for (n = 0; n < na; n++)
- cc[n] = (a[n] >= xb);
- }
- else /* if (na == 1) */
- {
- GENERIC_TYPE xa = *a;
- for (n = 0; n < nb; n++)
- cc[n] = (xa >= b[n]);
- }
-#endif
- break;
-
- case SLANG_LT:
-#if _SLANG_OPTIMIZE_FOR_SPEED < 2
- for (n = 0; n < n_max; n++)
- {
- cc[n] = (*a < *b); a += da; b += db;
- }
-#else
- if (na == nb)
- {
- for (n = 0; n < na; n++)
- cc[n] = (a[n] < b[n]);
- }
- else if (nb == 1)
- {
- GENERIC_TYPE xb = *b;
- for (n = 0; n < na; n++)
- cc[n] = (a[n] < xb);
- }
- else /* if (na == 1) */
- {
- GENERIC_TYPE xa = *a;
- for (n = 0; n < nb; n++)
- cc[n] = (xa < b[n]);
- }
-#endif
- break;
-
- case SLANG_LE:
-#if _SLANG_OPTIMIZE_FOR_SPEED < 2
- for (n = 0; n < n_max; n++)
- {
- cc[n] = (*a <= *b); a += da; b += db;
- }
-#else
- if (na == nb)
- {
- for (n = 0; n < na; n++)
- cc[n] = (a[n] <= b[n]);
- }
- else if (nb == 1)
- {
- GENERIC_TYPE xb = *b;
- for (n = 0; n < na; n++)
- cc[n] = (a[n] <= xb);
- }
- else /* if (na == 1) */
- {
- GENERIC_TYPE xa = *a;
- for (n = 0; n < nb; n++)
- cc[n] = (xa <= b[n]);
- }
-#endif
- break;
-
- case SLANG_OR:
-#if _SLANG_OPTIMIZE_FOR_SPEED < 2
- for (n = 0; n < n_max; n++)
- {
- cc[n] = (*a || *b); a += da; b += db;
- }
-#else
- if (na == nb)
- {
- for (n = 0; n < na; n++)
- cc[n] = (a[n] || b[n]);
- }
- else if (nb == 1)
- {
- GENERIC_TYPE xb = *b;
- for (n = 0; n < na; n++)
- cc[n] = (a[n] || xb);
- }
- else /* if (na == 1) */
- {
- GENERIC_TYPE xa = *a;
- for (n = 0; n < nb; n++)
- cc[n] = (xa || b[n]);
- }
-#endif
- break;
-
- case SLANG_AND:
-#if _SLANG_OPTIMIZE_FOR_SPEED < 2
- for (n = 0; n < n_max; n++)
- {
- cc[n] = (*a && *b); a += da; b += db;
- }
-#else
- if (na == nb)
- {
- for (n = 0; n < na; n++)
- cc[n] = (a[n] && b[n]);
- }
- else if (nb == 1)
- {
- GENERIC_TYPE xb = *b;
- for (n = 0; n < na; n++)
- cc[n] = (a[n] && xb);
- }
- else /* if (na == 1) */
- {
- GENERIC_TYPE xa = *a;
- for (n = 0; n < nb; n++)
- cc[n] = (xa && b[n]);
- }
-#endif
- break;
- }
- return 1;
-}
-
-#endif /* GENERIC_BINARY_FUNCTION */
-
-
-#ifdef GENERIC_UNARY_FUNCTION
-
-static int GENERIC_UNARY_FUNCTION
-(int op,
- unsigned char a_type, VOID_STAR ap, unsigned int na,
- VOID_STAR bp
- )
-{
- GENERIC_TYPE *a, *b;
- unsigned int n;
- int *ib;
-
- (void) a_type;
-
- a = (GENERIC_TYPE *) ap;
- b = (GENERIC_TYPE *) bp;
-
- switch (op)
- {
- default:
- return 0;
-
- case SLANG_PLUSPLUS:
- for (n = 0; n < na; n++) b[n] = (a[n] + 1);
- break;
- case SLANG_MINUSMINUS:
- for (n = 0; n < na; n++) b[n] = (a[n] - 1);
- break;
- case SLANG_CHS:
- for (n = 0; n < na; n++) b[n] = (GENERIC_TYPE) -(a[n]);
- break;
- case SLANG_SQR:
- for (n = 0; n < na; n++) b[n] = (a[n] * a[n]);
- break;
- case SLANG_MUL2:
- for (n = 0; n < na; n++) b[n] = (2 * a[n]);
- break;
- case SLANG_ABS:
- for (n = 0; n < na; n++) b[n] = ABS_FUNCTION (a[n]);
- break;
- case SLANG_SIGN:
- ib = (int *) bp;
- for (n = 0; n < na; n++)
- ib[n] = SIGN_FUNCTION(a[n]);
- break;
-
-#ifdef GENERIC_BIT_OPERATIONS
- case SLANG_NOT:
- for (n = 0; n < na; n++) b[n] = !(a[n]);
- break;
- case SLANG_BNOT:
- for (n = 0; n < na; n++) b[n] = ~(a[n]);
- break;
-#endif
- }
-
- return 1;
-}
-#endif /* GENERIC_UNARY_FUNCTION */
-
-
-#ifdef SCALAR_BINARY_FUNCTION
-
-static int SCALAR_BINARY_FUNCTION (GENERIC_TYPE a, GENERIC_TYPE b, int op)
-{
- switch (op)
- {
- default:
- return 1;
-
-#ifdef POW_FUNCTION
- case SLANG_POW:
- return PUSH_POW_OBJ_FUN(POW_FUNCTION(a, b));
-#endif
- case SLANG_PLUS:
- return PUSH_SCALAR_OBJ_FUN (a + b);
- case SLANG_MINUS:
- return PUSH_SCALAR_OBJ_FUN (a - b);
- case SLANG_TIMES:
- return PUSH_SCALAR_OBJ_FUN (a * b);
- case SLANG_DIVIDE:
- if (b == 0)
- {
- SLang_Error = SL_DIVIDE_ERROR;
- return -1;
- }
- return PUSH_SCALAR_OBJ_FUN (a / b);
- case SLANG_MOD:
- if (b == 0)
- {
- SLang_Error = SL_DIVIDE_ERROR;
- return -1;
- }
- return PUSH_SCALAR_OBJ_FUN (MOD_FUNCTION(a,b));
-#ifdef GENERIC_BIT_OPERATIONS
- case SLANG_BAND:
- return PUSH_SCALAR_OBJ_FUN (a & b);
- case SLANG_BXOR:
- return PUSH_SCALAR_OBJ_FUN (a ^ b);
- case SLANG_BOR:
- return PUSH_SCALAR_OBJ_FUN (a | b);
- case SLANG_SHL:
- return PUSH_SCALAR_OBJ_FUN (a << b);
- case SLANG_SHR:
- return PUSH_SCALAR_OBJ_FUN (a >> b);
-#endif
- case SLANG_GT: return SLclass_push_char_obj (SLANG_CHAR_TYPE, (char)(a > b));
- case SLANG_LT: return SLclass_push_char_obj (SLANG_CHAR_TYPE, (char)(a < b));
- case SLANG_GE: return SLclass_push_char_obj (SLANG_CHAR_TYPE, (char)(a >= b));
- case SLANG_LE: return SLclass_push_char_obj (SLANG_CHAR_TYPE, (char)(a <= b));
- case SLANG_EQ: return SLclass_push_char_obj (SLANG_CHAR_TYPE, (char)(a == b));
- case SLANG_NE: return SLclass_push_char_obj (SLANG_CHAR_TYPE, (char)(a != b));
- case SLANG_OR: return SLclass_push_char_obj (SLANG_CHAR_TYPE, (char)(a || b));
- case SLANG_AND: return SLclass_push_char_obj (SLANG_CHAR_TYPE, (char)(a && b));
- }
-}
-
-#endif /* SCALAR_BINARY_FUNCTION */
-
-#ifdef CMP_FUNCTION
-static int CMP_FUNCTION (unsigned char unused, VOID_STAR a, VOID_STAR b, int *c)
-{
- GENERIC_TYPE x, y;
-
- (void) unused;
- x = *(GENERIC_TYPE *) a;
- y = *(GENERIC_TYPE *) b;
-
- if (x > y) *c = 1;
- else if (x == y) *c = 0;
- else *c = -1;
-
- return 0;
-}
-#endif
-
-#undef CMP_FUNCTION
-#undef SCALAR_BINARY_FUNCTION
-#undef PUSH_POW_OBJ_FUN
-#undef PUSH_SCALAR_OBJ_FUN
-#undef GENERIC_BINARY_FUNCTION
-#undef GENERIC_UNARY_FUNCTION
-#undef GENERIC_BIT_OPERATIONS
-#undef GENERIC_TYPE
-#undef POW_FUNCTION
-#undef POW_RESULT_TYPE
-#undef MOD_FUNCTION
-#undef ABS_FUNCTION
-#undef SIGN_FUNCTION
diff --git a/mdk-stage1/slang/slarray.c b/mdk-stage1/slang/slarray.c
deleted file mode 100644
index 0b9a1406c..000000000
--- a/mdk-stage1/slang/slarray.c
+++ /dev/null
@@ -1,3139 +0,0 @@
-/* Array manipulation routines for S-Lang */
-/* Copyright (c) 1997, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#define SL_APP_WANTS_FOREACH
-#include "slang.h"
-#include "_slang.h"
-
-typedef struct
-{
- int first_index;
- int last_index;
- int delta;
-}
-SLarray_Range_Array_Type;
-
-/* Use SLang_pop_array when a linear array is required. */
-static int pop_array (SLang_Array_Type **at_ptr, int convert_scalar)
-{
- SLang_Array_Type *at;
- int one = 1;
- int type;
-
- *at_ptr = NULL;
- type = SLang_peek_at_stack ();
-
- switch (type)
- {
- case -1:
- return -1;
-
- case SLANG_ARRAY_TYPE:
- return SLclass_pop_ptr_obj (SLANG_ARRAY_TYPE, (VOID_STAR *) at_ptr);
-
- case SLANG_NULL_TYPE:
- convert_scalar = 0;
- /* drop */
- default:
- if (convert_scalar == 0)
- {
- SLdo_pop ();
- SLang_verror (SL_TYPE_MISMATCH, "Context requires an array. Scalar not converted");
- return -1;
- }
- break;
- }
-
- if (NULL == (at = SLang_create_array ((unsigned char) type, 0, NULL, &one, 1)))
- return -1;
-
- if (-1 == at->cl->cl_apop ((unsigned char) type, at->data))
- {
- SLang_free_array (at);
- return -1;
- }
-
- *at_ptr = at;
-
- return 0;
-}
-
-static VOID_STAR linear_get_data_addr (SLang_Array_Type *at, int *dims)
-{
- unsigned int num_dims;
- unsigned int ofs;
- unsigned int i;
- int *max_dims;
-
- ofs = 0;
- max_dims = at->dims;
- num_dims = at->num_dims;
-
- for (i = 0; i < num_dims; i++)
- {
- int d = dims[i];
-
- if (d < 0)
- d = d + max_dims[i];
-
- ofs = ofs * (unsigned int)max_dims [i] + (unsigned int) d;
- }
-
- return (VOID_STAR) ((char *)at->data + (ofs * at->sizeof_type));
-}
-
-static VOID_STAR get_data_addr (SLang_Array_Type *at, int *dims)
-{
- VOID_STAR data;
-
- data = at->data;
- if (data == NULL)
- {
- SLang_verror (SL_UNKNOWN_ERROR, "Array has no data");
- return NULL;
- }
-
- data = (*at->index_fun) (at, dims);
-
- if (data == NULL)
- {
- SLang_verror (SL_UNKNOWN_ERROR, "Unable to access array element");
- return NULL;
- }
-
- return data;
-}
-
-void _SLarray_free_array_elements (SLang_Class_Type *cl, VOID_STAR s, unsigned int num)
-{
- unsigned int sizeof_type;
- void (*f) (unsigned char, VOID_STAR);
- char *p;
- unsigned char type;
-
- if ((cl->cl_class_type == SLANG_CLASS_TYPE_SCALAR)
- || (cl->cl_class_type == SLANG_CLASS_TYPE_VECTOR))
- return;
-
- f = cl->cl_destroy;
- sizeof_type = cl->cl_sizeof_type;
- type = cl->cl_data_type;
-
- p = (char *) s;
- while (num != 0)
- {
- if (NULL != *(VOID_STAR *)p)
- {
- (*f) (type, (VOID_STAR)p);
- *(VOID_STAR *) p = NULL;
- }
- p += sizeof_type;
- num--;
- }
-}
-
-static int destroy_element (SLang_Array_Type *at,
- int *dims,
- VOID_STAR data)
-{
- data = get_data_addr (at, dims);
- if (data == NULL)
- return -1;
-
- /* This function should only get called for arrays that have
- * pointer elements. Do not call the destroy method if the element
- * is NULL.
- */
- if (NULL != *(VOID_STAR *)data)
- {
- (*at->cl->cl_destroy) (at->data_type, data);
- *(VOID_STAR *) data = NULL;
- }
- return 0;
-}
-
-/* This function only gets called when a new array is created. Thus there
- * is no need to destroy the object first.
- */
-static int new_object_element (SLang_Array_Type *at,
- int *dims,
- VOID_STAR data)
-{
- data = get_data_addr (at, dims);
- if (data == NULL)
- return -1;
-
- return (*at->cl->cl_init_array_object) (at->data_type, data);
-}
-
-static int next_index (int *dims, int *max_dims, unsigned int num_dims)
-{
- while (num_dims)
- {
- int dims_i;
-
- num_dims--;
-
- dims_i = dims [num_dims] + 1;
- if (dims_i != (int) max_dims [num_dims])
- {
- dims [num_dims] = dims_i;
- return 0;
- }
- dims [num_dims] = 0;
- }
-
- return -1;
-}
-
-static int do_method_for_all_elements (SLang_Array_Type *at,
- int (*method)(SLang_Array_Type *,
- int *,
- VOID_STAR),
- VOID_STAR client_data)
-{
- int dims [SLARRAY_MAX_DIMS];
- int *max_dims;
- unsigned int num_dims;
-
- if (at->num_elements == 0)
- return 0;
-
- max_dims = at->dims;
- num_dims = at->num_dims;
-
- SLMEMSET((char *)dims, 0, sizeof(dims));
-
- do
- {
- if (-1 == (*method) (at, dims, client_data))
- return -1;
- }
- while (0 == next_index (dims, max_dims, num_dims));
-
- return 0;
-}
-
-void SLang_free_array (SLang_Array_Type *at)
-{
- VOID_STAR data;
- unsigned int flags;
-
- if (at == NULL) return;
-
- if (at->num_refs > 1)
- {
- at->num_refs -= 1;
- return;
- }
-
- data = at->data;
- flags = at->flags;
-
- if (flags & SLARR_DATA_VALUE_IS_INTRINSIC)
- return; /* not to be freed */
-
- if (flags & SLARR_DATA_VALUE_IS_POINTER)
- (void) do_method_for_all_elements (at, destroy_element, NULL);
-
- SLfree ((char *) data);
- SLfree ((char *) at);
-}
-
-SLang_Array_Type *
-SLang_create_array1 (unsigned char type, int read_only, VOID_STAR data,
- int *dims, unsigned int num_dims, int no_init)
-{
- SLang_Class_Type *cl;
- unsigned int i;
- SLang_Array_Type *at;
- unsigned int num_elements;
- unsigned int sizeof_type;
- unsigned int size;
-
- if (num_dims > SLARRAY_MAX_DIMS)
- {
- SLang_verror (SL_NOT_IMPLEMENTED, "%u dimensional arrays are not supported", num_dims);
- return NULL;
- }
-
- for (i = 0; i < num_dims; i++)
- {
- if (dims[i] < 0)
- {
- SLang_verror (SL_INVALID_PARM, "Size of array dim %u is less than 0", i);
- return NULL;
- }
- }
-
- cl = _SLclass_get_class (type);
-
- at = (SLang_Array_Type *) SLmalloc (sizeof(SLang_Array_Type));
- if (at == NULL)
- return NULL;
-
- SLMEMSET ((char*) at, 0, sizeof(SLang_Array_Type));
-
- at->data_type = type;
- at->cl = cl;
- at->num_dims = num_dims;
- at->num_refs = 1;
-
- if (read_only) at->flags = SLARR_DATA_VALUE_IS_READ_ONLY;
- switch (cl->cl_class_type)
- {
- case SLANG_CLASS_TYPE_VECTOR:
- case SLANG_CLASS_TYPE_SCALAR:
- break;
-
- default:
- at->flags |= SLARR_DATA_VALUE_IS_POINTER;
- }
-
- num_elements = 1;
- for (i = 0; i < num_dims; i++)
- {
- at->dims [i] = dims[i];
- num_elements = dims [i] * num_elements;
- }
-
- /* Now set the rest of the unused dimensions to 1. This makes it easier
- * when transposing arrays.
- */
- while (i < SLARRAY_MAX_DIMS)
- at->dims[i++] = 1;
-
- at->num_elements = num_elements;
- at->index_fun = linear_get_data_addr;
- at->sizeof_type = sizeof_type = cl->cl_sizeof_type;
-
- if (data != NULL)
- {
- at->data = data;
- return at;
- }
-
- size = num_elements * sizeof_type;
-
- if (size == 0) size = 1;
-
- if (NULL == (data = (VOID_STAR) SLmalloc (size)))
- {
- SLang_free_array (at);
- return NULL;
- }
-
- if (no_init == 0)
- SLMEMSET ((char *) data, 0, size);
-
- at->data = data;
-
- if ((cl->cl_init_array_object != NULL)
- && (-1 == do_method_for_all_elements (at, new_object_element, NULL)))
- {
- SLang_free_array (at);
- return NULL;
- }
- return at;
-}
-
-SLang_Array_Type *
-SLang_create_array (unsigned char type, int read_only, VOID_STAR data,
- int *dims, unsigned int num_dims)
-{
- return SLang_create_array1 (type, read_only, data, dims, num_dims, 0);
-}
-
-int SLang_add_intrinsic_array (char *name,
- unsigned char type,
- int read_only,
- VOID_STAR data,
- unsigned int num_dims, ...)
-{
- va_list ap;
- unsigned int i;
- int dims[SLARRAY_MAX_DIMS];
- SLang_Array_Type *at;
-
- if ((num_dims > SLARRAY_MAX_DIMS)
- || (name == NULL)
- || (data == NULL))
- {
- SLang_verror (SL_INVALID_PARM, "Unable to create intrinsic array");
- return -1;
- }
-
- va_start (ap, num_dims);
- for (i = 0; i < num_dims; i++)
- dims [i] = va_arg (ap, int);
- va_end (ap);
-
- at = SLang_create_array (type, read_only, data, dims, num_dims);
- if (at == NULL)
- return -1;
- at->flags |= SLARR_DATA_VALUE_IS_INTRINSIC;
-
- /* Note: The variable that refers to the intrinsic array is regarded as
- * read-only. That way, Array_Name = another_array; will fail.
- */
- if (-1 == SLadd_intrinsic_variable (name, (VOID_STAR) at, SLANG_ARRAY_TYPE, 1))
- {
- SLang_free_array (at);
- return -1;
- }
- return 0;
-}
-
-static int pop_array_indices (int *dims, unsigned int num_dims)
-{
- unsigned int n;
- int i;
-
- if (num_dims > SLARRAY_MAX_DIMS)
- {
- SLang_verror (SL_INVALID_PARM, "Array size not supported");
- return -1;
- }
-
- n = num_dims;
- while (n != 0)
- {
- n--;
- if (-1 == SLang_pop_integer (&i))
- return -1;
-
- dims[n] = i;
- }
-
- return 0;
-}
-
-int SLang_push_array (SLang_Array_Type *at, int free_flag)
-{
- if (at == NULL)
- return SLang_push_null ();
-
- at->num_refs += 1;
-
- if (0 == SLclass_push_ptr_obj (SLANG_ARRAY_TYPE, (VOID_STAR) at))
- {
- if (free_flag)
- SLang_free_array (at);
- return 0;
- }
-
- at->num_refs -= 1;
-
- if (free_flag) SLang_free_array (at);
- return -1;
-}
-
-/* This function gets called via expressions such as Double_Type[10, 20];
- */
-static int push_create_new_array (void)
-{
- unsigned int num_dims;
- SLang_Array_Type *at;
- unsigned char type;
- int dims [SLARRAY_MAX_DIMS];
- int (*anew) (unsigned char, unsigned int);
-
- num_dims = (SLang_Num_Function_Args - 1);
-
- if (-1 == _SLang_pop_datatype (&type))
- return -1;
-
- anew = (_SLclass_get_class (type))->cl_anew;
- if (anew != NULL)
- return (*anew) (type, num_dims);
-
- if (-1 == pop_array_indices (dims, num_dims))
- return -1;
-
- if (NULL == (at = SLang_create_array (type, 0, NULL, dims, num_dims)))
- return -1;
-
- return SLang_push_array (at, 1);
-}
-
-static int push_element_at_addr (SLang_Array_Type *at,
- VOID_STAR data, int allow_null)
-{
- SLang_Class_Type *cl;
-
- cl = at->cl;
- if ((at->flags & SLARR_DATA_VALUE_IS_POINTER)
- && (*(VOID_STAR *) data == NULL))
- {
- if (allow_null)
- return SLang_push_null ();
-
- SLang_verror (SL_VARIABLE_UNINITIALIZED,
- "%s array has unitialized element", cl->cl_name);
- return -1;
- }
-
- return (*cl->cl_apush)(at->data_type, data);
-}
-
-static int coerse_array_to_linear (SLang_Array_Type *at)
-{
- SLarray_Range_Array_Type *range;
- int *data;
- int xmin, dx;
- unsigned int i, imax;
-
- /* FIXME: Priority = low. This assumes that if an array is not linear, then
- * it is a range.
- */
- if (0 == (at->flags & SLARR_DATA_VALUE_IS_RANGE))
- return 0;
-
- range = (SLarray_Range_Array_Type *) at->data;
- xmin = range->first_index;
- dx = range->delta;
-
- imax = at->num_elements;
- data = (int *) SLmalloc ((imax + 1) * sizeof (int));
- if (data == NULL)
- return -1;
-
- for (i = 0; i < imax; i++)
- {
- data [i] = xmin;
- xmin += dx;
- }
-
- SLfree ((char *) range);
- at->data = (VOID_STAR) data;
- at->flags &= ~SLARR_DATA_VALUE_IS_RANGE;
- at->index_fun = linear_get_data_addr;
- return 0;
-}
-
-static void
-free_index_objects (SLang_Object_Type *index_objs, unsigned int num_indices)
-{
- unsigned int i;
- SLang_Object_Type *obj;
-
- for (i = 0; i < num_indices; i++)
- {
- obj = index_objs + i;
- if (obj->data_type != 0)
- SLang_free_object (obj);
- }
-}
-
-static int
-pop_indices (SLang_Object_Type *index_objs, unsigned int num_indices,
- int *is_index_array)
-{
- unsigned int i;
-
- SLMEMSET((char *) index_objs, 0, num_indices * sizeof (SLang_Object_Type));
-
- *is_index_array = 0;
-
- if (num_indices >= SLARRAY_MAX_DIMS)
- {
- SLang_verror (SL_INVALID_PARM, "too many indices for array");
- return -1;
- }
-
- i = num_indices;
- while (i != 0)
- {
- SLang_Object_Type *obj;
-
- i--;
- obj = index_objs + i;
- if (-1 == _SLang_pop_object_of_type (SLANG_INT_TYPE, obj, 1))
- goto return_error;
-
- if (obj->data_type == SLANG_ARRAY_TYPE)
- {
- SLang_Array_Type *at = obj->v.array_val;
-
- if (at->num_dims == 1)
- {
- if ((num_indices == 1)
- && (0 == (at->flags & SLARR_DATA_VALUE_IS_RANGE)))
- *is_index_array = 1;
- }
- else
- {
- SLang_verror (SL_INVALID_PARM, "expecting a 1-d index array");
- goto return_error;
- }
- }
- }
-
- return 0;
-
- return_error:
- free_index_objects (index_objs, num_indices);
- return -1;
-}
-
-/* Here ind_at is a linear 1-d array of indices */
-static int
-check_index_array_ranges (SLang_Array_Type *at, SLang_Array_Type *ind_at)
-{
- int *indices, *indices_max;
- unsigned int num_elements;
-
- num_elements = at->num_elements;
- indices = (int *) ind_at->data;
- indices_max = indices + ind_at->num_elements;
-
- while (indices < indices_max)
- {
- unsigned int d;
-
- d = (unsigned int) *indices++;
- if (d >= num_elements)
- {
- SLang_verror (SL_INVALID_PARM,
- "index-array is out of range");
- return -1;
- }
- }
- return 0;
-}
-
-static int
-transfer_n_elements (SLang_Array_Type *at, VOID_STAR dest_data, VOID_STAR src_data,
- unsigned int sizeof_type, unsigned int n, int is_ptr)
-{
- unsigned char data_type;
- SLang_Class_Type *cl;
-
- if (is_ptr == 0)
- {
- SLMEMCPY ((char *) dest_data, (char *)src_data, n * sizeof_type);
- return 0;
- }
-
- data_type = at->data_type;
- cl = at->cl;
-
- while (n != 0)
- {
- if (*(VOID_STAR *)dest_data != NULL)
- {
- (*cl->cl_destroy) (data_type, dest_data);
- *(VOID_STAR *) dest_data = NULL;
- }
-
- if (*(VOID_STAR *) src_data == NULL)
- *(VOID_STAR *) dest_data = NULL;
- else
- {
- if (-1 == (*cl->cl_acopy) (data_type, src_data, dest_data))
- /* No need to destroy anything */
- return -1;
- }
-
- src_data = (VOID_STAR) ((char *)src_data + sizeof_type);
- dest_data = (VOID_STAR) ((char *)dest_data + sizeof_type);
-
- n--;
- }
-
- return 0;
-}
-
-int
-_SLarray_aget_transfer_elem (SLang_Array_Type *at, int *indices,
- VOID_STAR new_data, unsigned int sizeof_type, int is_ptr)
-{
- VOID_STAR at_data;
-
- /* Since 1 element is being transferred, there is not need to coerse
- * the array to linear.
- */
- if (NULL == (at_data = get_data_addr (at, indices)))
- return -1;
-
- return transfer_n_elements (at, new_data, at_data, sizeof_type, 1, is_ptr);
-}
-
-/* Here the ind_at index-array is a 1-d array of indices. This function
- * creates a 1-d array of made up of values of 'at' at the locations
- * specified by the indices. The result is pushed.
- */
-static int
-aget_from_index_array (SLang_Array_Type *at,
- SLang_Array_Type *ind_at)
-{
- SLang_Array_Type *new_at;
- int *indices, *indices_max;
- unsigned char *new_data, *src_data;
- unsigned int sizeof_type;
- int is_ptr;
-
- if (-1 == coerse_array_to_linear (at))
- return -1;
-
- if (-1 == coerse_array_to_linear (ind_at))
- return -1;
-
- if (-1 == check_index_array_ranges (at, ind_at))
- return -1;
-
- if (NULL == (new_at = SLang_create_array (at->data_type, 0, NULL, ind_at->dims, 1)))
- return -1;
-
- /* Since the index array is linear, I can address it directly */
- indices = (int *) ind_at->data;
- indices_max = indices + ind_at->num_elements;
-
- src_data = (unsigned char *) at->data;
- new_data = (unsigned char *) new_at->data;
- sizeof_type = new_at->sizeof_type;
- is_ptr = (new_at->flags & SLARR_DATA_VALUE_IS_POINTER);
-
- while (indices < indices_max)
- {
- unsigned int offset;
-
- offset = sizeof_type * (unsigned int)*indices;
- if (-1 == transfer_n_elements (at, (VOID_STAR) new_data,
- (VOID_STAR) (src_data + offset),
- sizeof_type, 1, is_ptr))
- {
- SLang_free_array (new_at);
- return -1;
- }
-
- new_data += sizeof_type;
- indices++;
- }
-
- return SLang_push_array (new_at, 1);
-}
-
-/* This is extremely ugly. It is due to the fact that the index_objects
- * may contain ranges. This is a utility function for the aget/aput
- * routines
- */
-static int
-convert_nasty_index_objs (SLang_Array_Type *at,
- SLang_Object_Type *index_objs,
- unsigned int num_indices,
- int **index_data,
- int *range_buf, int *range_delta_buf,
- int *max_dims,
- unsigned int *num_elements,
- int *is_array, int is_dim_array[SLARRAY_MAX_DIMS])
-{
- unsigned int i, total_num_elements;
- SLang_Array_Type *ind_at;
-
- if (num_indices != at->num_dims)
- {
- SLang_verror (SL_INVALID_PARM, "Array requires %u indices", at->num_dims);
- return -1;
- }
-
- *is_array = 0;
- total_num_elements = 1;
- for (i = 0; i < num_indices; i++)
- {
- int max_index, min_index;
- SLang_Object_Type *obj;
- int at_dims_i;
-
- at_dims_i = at->dims[i];
- obj = index_objs + i;
- range_delta_buf [i] = 0;
-
- if (obj->data_type == SLANG_INT_TYPE)
- {
- range_buf [i] = min_index = max_index = obj->v.int_val;
- max_dims [i] = 1;
- index_data[i] = range_buf + i;
- is_dim_array[i] = 0;
- }
- else
- {
- *is_array = 1;
- is_dim_array[i] = 1;
- ind_at = obj->v.array_val;
-
- if (ind_at->flags & SLARR_DATA_VALUE_IS_RANGE)
- {
- SLarray_Range_Array_Type *r;
- int delta;
- int first_index, last_index;
-
- r = (SLarray_Range_Array_Type *) ind_at->data;
-
- /* In an array indexing context, range arrays have different
- * semantics. Consider a[[0:10]]. Clearly this means elements
- * 0-10 of a. But what does a[[0:-1]] mean? By itself,
- * [0:-1] is a null matrix []. But, it is useful in an
- * indexing context to allow -1 to refer to the last element
- * of the array. Similarly, [-3:-1] refers to the last 3
- * elements.
- *
- * However, [-1:-3] does not refer to any of the elements.
- */
- if ((first_index = r->first_index) < 0)
- {
- if (at_dims_i != 0)
- first_index = (at_dims_i + first_index) % at_dims_i;
- }
-
- if ((last_index = r->last_index) < 0)
- {
- if (at_dims_i != 0)
- last_index = (at_dims_i + last_index) % at_dims_i;
- }
-
- delta = r->delta;
-
- range_delta_buf [i] = delta;
- range_buf[i] = first_index;
-
- if (delta > 0)
- {
- if (first_index > last_index)
- max_dims[i] = min_index = max_index = 0;
- else
- {
- max_index = min_index = first_index;
- while (max_index + delta <= last_index)
- max_index += delta;
- max_dims [i] = 1 + (max_index - min_index) / delta;
- }
- }
- else
- {
- if (first_index < last_index)
- max_dims[i] = min_index = max_index = 0;
- else
- {
- min_index = max_index = first_index;
- while (min_index + delta >= last_index)
- min_index += delta;
- max_dims [i] = 1 + (max_index - min_index) / (-delta);
- }
- }
- }
- else
- {
- int *tmp, *tmp_max;
-
- if (0 == (max_dims[i] = ind_at->num_elements))
- {
- total_num_elements = 0;
- break;
- }
-
- tmp = (int *) ind_at->data;
- tmp_max = tmp + ind_at->num_elements;
- index_data [i] = tmp;
-
- min_index = max_index = *tmp;
- while (tmp < tmp_max)
- {
- if (max_index > *tmp)
- max_index = *tmp;
- if (min_index < *tmp)
- min_index = *tmp;
-
- tmp++;
- }
- }
- }
-
- if ((at_dims_i == 0) && (max_dims[i] == 0))
- {
- total_num_elements = 0;
- continue;
- }
-
- if (max_index < 0)
- max_index += at_dims_i;
- if (min_index < 0)
- min_index += at_dims_i;
-
- if ((min_index < 0) || (min_index >= at_dims_i)
- || (max_index < 0) || (max_index >= at_dims_i))
- {
- SLang_verror (SL_INVALID_PARM, "Array index %u ([%d:%d]) out of allowed range [0->%d]",
- i, min_index, max_index, at_dims_i);
- return -1;
- }
-
- total_num_elements = total_num_elements * max_dims[i];
- }
-
- *num_elements = total_num_elements;
- return 0;
-}
-
-/* This routine pushes a 1-d vector of values from 'at' indexed by
- * the objects 'index_objs'. These objects can either be integers or
- * 1-d integer arrays. The fact that the 1-d arrays can be ranges
- * makes this look ugly.
- */
-static int
-aget_from_indices (SLang_Array_Type *at,
- SLang_Object_Type *index_objs, unsigned int num_indices)
-{
- int *index_data [SLARRAY_MAX_DIMS];
- int range_buf [SLARRAY_MAX_DIMS];
- int range_delta_buf [SLARRAY_MAX_DIMS];
- int max_dims [SLARRAY_MAX_DIMS];
- unsigned int i, num_elements;
- SLang_Array_Type *new_at;
- int map_indices[SLARRAY_MAX_DIMS];
- int indices [SLARRAY_MAX_DIMS];
- unsigned int sizeof_type;
- int is_ptr, ret, is_array;
- char *new_data;
- SLang_Class_Type *cl;
- int is_dim_array[SLARRAY_MAX_DIMS];
-
- if (-1 == convert_nasty_index_objs (at, index_objs, num_indices,
- index_data, range_buf, range_delta_buf,
- max_dims, &num_elements, &is_array,
- is_dim_array))
- return -1;
-
- is_ptr = (at->flags & SLARR_DATA_VALUE_IS_POINTER);
- sizeof_type = at->sizeof_type;
-
- cl = _SLclass_get_class (at->data_type);
-
- if ((is_array == 0) && (num_elements == 1))
- {
- new_data = (char *)cl->cl_transfer_buf;
- memset (new_data, 0, sizeof_type);
- new_at = NULL;
- }
- else
- {
- int i_num_elements = (int)num_elements;
-
- new_at = SLang_create_array (at->data_type, 0, NULL, &i_num_elements, 1);
- if (NULL == new_at)
- return -1;
- if (num_elements == 0)
- return SLang_push_array (new_at, 1);
-
- new_data = (char *)new_at->data;
- }
-
- SLMEMSET((char *) map_indices, 0, sizeof(map_indices));
- do
- {
- for (i = 0; i < num_indices; i++)
- {
- int j;
-
- j = map_indices[i];
-
- if (0 != range_delta_buf[i])
- indices[i] = range_buf[i] + j * range_delta_buf[i];
- else
- indices[i] = index_data [i][j];
- }
-
- if (-1 == _SLarray_aget_transfer_elem (at, indices, (VOID_STAR)new_data, sizeof_type, is_ptr))
- {
- SLang_free_array (new_at);
- return -1;
- }
- new_data += sizeof_type;
- }
- while (0 == next_index (map_indices, max_dims, num_indices));
-
- if (new_at != NULL)
- {
- int num_dims = 0;
- /* Fixup dimensions on array */
- for (i = 0; i < num_indices; i++)
- {
- if (is_dim_array[i]) /* was: (max_dims[i] > 1) */
- {
- new_at->dims[num_dims] = max_dims[i];
- num_dims++;
- }
- }
-
- if (num_dims != 0) new_at->num_dims = num_dims;
- return SLang_push_array (new_at, 1);
- }
-
- /* Here new_data is a whole new copy, so free it after the push */
- new_data -= sizeof_type;
- if (is_ptr && (*(VOID_STAR *)new_data == NULL))
- ret = SLang_push_null ();
- else
- {
- ret = (*cl->cl_apush) (at->data_type, (VOID_STAR)new_data);
- (*cl->cl_adestroy) (at->data_type, (VOID_STAR)new_data);
- }
-
- return ret;
-}
-
-static int push_string_as_array (unsigned char *s, unsigned int len)
-{
- int ilen;
- SLang_Array_Type *at;
-
- ilen = (int) len;
-
- at = SLang_create_array (SLANG_UCHAR_TYPE, 0, NULL, &ilen, 1);
- if (at == NULL)
- return -1;
-
- memcpy ((char *)at->data, (char *)s, len);
- return SLang_push_array (at, 1);
-}
-
-static int pop_array_as_string (char **sp)
-{
- SLang_Array_Type *at;
- int ret;
-
- *sp = NULL;
-
- if (-1 == SLang_pop_array_of_type (&at, SLANG_UCHAR_TYPE))
- return -1;
-
- ret = 0;
-
- if (NULL == (*sp = SLang_create_nslstring ((char *) at->data, at->num_elements)))
- ret = -1;
-
- SLang_free_array (at);
- return ret;
-}
-
-static int pop_array_as_bstring (SLang_BString_Type **bs)
-{
- SLang_Array_Type *at;
- int ret;
-
- *bs = NULL;
-
- if (-1 == SLang_pop_array_of_type (&at, SLANG_UCHAR_TYPE))
- return -1;
-
- ret = 0;
-
- if (NULL == (*bs = SLbstring_create ((unsigned char *) at->data, at->num_elements)))
- ret = -1;
-
- SLang_free_array (at);
- return ret;
-}
-
-static int aget_from_array (unsigned int num_indices)
-{
- SLang_Array_Type *at;
- SLang_Object_Type index_objs [SLARRAY_MAX_DIMS];
- int ret;
- int is_index_array;
- unsigned int i;
-
- if (num_indices > SLARRAY_MAX_DIMS)
- {
- SLang_verror (SL_INVALID_PARM, "Number of dims must be less than %d", SLARRAY_MAX_DIMS);
- return -1;
- }
-
- if (-1 == pop_array (&at, 1))
- return -1;
-
- if (-1 == pop_indices (index_objs, num_indices, &is_index_array))
- {
- SLang_free_array (at);
- return -1;
- }
-
- if (is_index_array == 0)
- ret = aget_from_indices (at, index_objs, num_indices);
- else
- ret = aget_from_index_array (at, index_objs[0].v.array_val);
-
- SLang_free_array (at);
- for (i = 0; i < num_indices; i++)
- SLang_free_object (index_objs + i);
-
- return ret;
-}
-
-static int push_string_element (unsigned char type, unsigned char *s, unsigned int len)
-{
- int i;
-
- if (SLang_peek_at_stack () == SLANG_ARRAY_TYPE)
- {
- char *str;
-
- /* The indices are array values. So, do this: */
- if (-1 == push_string_as_array (s, len))
- return -1;
-
- if (-1 == aget_from_array (1))
- return -1;
-
- if (type == SLANG_BSTRING_TYPE)
- {
- SLang_BString_Type *bs;
- int ret;
-
- if (-1 == pop_array_as_bstring (&bs))
- return -1;
-
- ret = SLang_push_bstring (bs);
- SLbstring_free (bs);
- return ret;
- }
-
- if (-1 == pop_array_as_string (&str))
- return -1;
- return _SLang_push_slstring (str); /* frees s upon error */
- }
-
- if (-1 == SLang_pop_integer (&i))
- return -1;
-
- if (i < 0) i = i + (int)len;
- if ((unsigned int) i > len)
- i = len; /* get \0 character --- bstrings include it as well */
-
- i = s[(unsigned int) i];
-
- return SLang_push_integer (i);
-}
-
-/* ARRAY[i, j, k] generates code: __args i j ...k ARRAY __aput/__aget
- * Here i, j, ... k may be a mixture of integers and 1-d arrays, or
- * a single 2-d array of indices. The 2-d index array is generated by the
- * 'where' function.
- *
- * If ARRAY is of type DataType, then this function will create an array of
- * the appropriate type. In that case, the indices i, j, ..., k must be
- * integers.
- */
-int _SLarray_aget (void)
-{
- unsigned int num_indices;
- int type;
- int (*aget_fun) (unsigned char, unsigned int);
-
- num_indices = (SLang_Num_Function_Args - 1);
-
- type = SLang_peek_at_stack ();
- switch (type)
- {
- case -1:
- return -1; /* stack underflow */
-
- case SLANG_DATATYPE_TYPE:
- return push_create_new_array ();
-
- case SLANG_BSTRING_TYPE:
- if (1 == num_indices)
- {
- SLang_BString_Type *bs;
- int ret;
- unsigned int len;
- unsigned char *s;
-
- if (-1 == SLang_pop_bstring (&bs))
- return -1;
-
- if (NULL == (s = SLbstring_get_pointer (bs, &len)))
- ret = -1;
- else
- ret = push_string_element (type, s, len);
-
- SLbstring_free (bs);
- return ret;
- }
- break;
-
- case SLANG_STRING_TYPE:
- if (1 == num_indices)
- {
- char *s;
- int ret;
-
- if (-1 == SLang_pop_slstring (&s))
- return -1;
-
- ret = push_string_element (type, (unsigned char *)s, strlen (s));
- SLang_free_slstring (s);
- return ret;
- }
- break;
-
- case SLANG_ARRAY_TYPE:
- break;
-
- default:
- aget_fun = _SLclass_get_class (type)->cl_aget;
- if (NULL != aget_fun)
- return (*aget_fun) (type, num_indices);
- }
-
- return aget_from_array (num_indices);
-}
-
-int
-_SLarray_aput_transfer_elem (SLang_Array_Type *at, int *indices,
- VOID_STAR data_to_put, unsigned int sizeof_type, int is_ptr)
-{
- VOID_STAR at_data;
-
- /* Since 1 element is being transferred, there is no need to coerse
- * the array to linear.
- */
- if (NULL == (at_data = get_data_addr (at, indices)))
- return -1;
-
- return transfer_n_elements (at, at_data, data_to_put, sizeof_type, 1, is_ptr);
-}
-
-static int
-aput_get_array_to_put (SLang_Class_Type *cl, unsigned int num_elements, int allow_array,
- SLang_Array_Type **at_ptr, char **data_to_put, unsigned int *data_increment)
-{
- unsigned char data_type;
- SLang_Array_Type *at;
-
- *at_ptr = NULL;
-
- data_type = cl->cl_data_type;
- if (-1 == SLclass_typecast (data_type, 1, allow_array))
- return -1;
-
- if ((data_type != SLANG_ARRAY_TYPE)
- && (data_type != SLANG_ANY_TYPE)
- && (SLANG_ARRAY_TYPE == SLang_peek_at_stack ()))
- {
- if (-1 == SLang_pop_array (&at, 0))
- return -1;
-
- if ((at->num_elements != num_elements)
-#if 0
- || (at->num_dims != 1)
-#endif
- )
- {
- SLang_verror (SL_TYPE_MISMATCH, "Array size is inappropriate for use with index-array");
- SLang_free_array (at);
- return -1;
- }
-
- *data_to_put = (char *) at->data;
- *data_increment = at->sizeof_type;
- *at_ptr = at;
- return 0;
- }
-
- *data_increment = 0;
- *data_to_put = (char *) cl->cl_transfer_buf;
-
- if (-1 == (*cl->cl_apop)(data_type, (VOID_STAR) *data_to_put))
- return -1;
-
- return 0;
-}
-
-static int
-aput_from_indices (SLang_Array_Type *at,
- SLang_Object_Type *index_objs, unsigned int num_indices)
-{
- int *index_data [SLARRAY_MAX_DIMS];
- int range_buf [SLARRAY_MAX_DIMS];
- int range_delta_buf [SLARRAY_MAX_DIMS];
- int max_dims [SLARRAY_MAX_DIMS];
- unsigned int i, num_elements;
- SLang_Array_Type *bt;
- int map_indices[SLARRAY_MAX_DIMS];
- int indices [SLARRAY_MAX_DIMS];
- unsigned int sizeof_type;
- int is_ptr, is_array, ret;
- char *data_to_put;
- unsigned int data_increment;
- SLang_Class_Type *cl;
- int is_dim_array [SLARRAY_MAX_DIMS];
-
- if (-1 == convert_nasty_index_objs (at, index_objs, num_indices,
- index_data, range_buf, range_delta_buf,
- max_dims, &num_elements, &is_array,
- is_dim_array))
- return -1;
-
- cl = at->cl;
-
- if (-1 == aput_get_array_to_put (cl, num_elements, is_array,
- &bt, &data_to_put, &data_increment))
- return -1;
-
- sizeof_type = at->sizeof_type;
- is_ptr = (at->flags & SLARR_DATA_VALUE_IS_POINTER);
-
- ret = -1;
-
- SLMEMSET((char *) map_indices, 0, sizeof(map_indices));
- if (num_elements) do
- {
- for (i = 0; i < num_indices; i++)
- {
- int j;
-
- j = map_indices[i];
-
- if (0 != range_delta_buf[i])
- indices[i] = range_buf[i] + j * range_delta_buf[i];
- else
- indices[i] = index_data [i][j];
- }
-
- if (-1 == _SLarray_aput_transfer_elem (at, indices, (VOID_STAR)data_to_put, sizeof_type, is_ptr))
- goto return_error;
-
- data_to_put += data_increment;
- }
- while (0 == next_index (map_indices, max_dims, num_indices));
-
- ret = 0;
-
- /* drop */
-
- return_error:
- if (bt == NULL)
- {
- if (is_ptr)
- (*cl->cl_destroy) (cl->cl_data_type, (VOID_STAR) data_to_put);
- }
- else SLang_free_array (bt);
-
- return ret;
-}
-
-static int
-aput_from_index_array (SLang_Array_Type *at, SLang_Array_Type *ind_at)
-{
- int *indices, *indices_max;
- unsigned int sizeof_type;
- char *data_to_put, *dest_data;
- unsigned int data_increment;
- int is_ptr;
- SLang_Array_Type *bt;
- SLang_Class_Type *cl;
- int ret;
-
- if (-1 == coerse_array_to_linear (at))
- return -1;
-
- if (-1 == coerse_array_to_linear (ind_at))
- return -1;
-
- if (-1 == check_index_array_ranges (at, ind_at))
- return -1;
-
- sizeof_type = at->sizeof_type;
-
- cl = at->cl;
-
- /* Note that if bt is returned as non NULL, then the array is a linear
- * one.
- */
- if (-1 == aput_get_array_to_put (cl, ind_at->num_elements, 1,
- &bt, &data_to_put, &data_increment))
- return -1;
-
- /* Since the index array is linear, I can address it directly */
- indices = (int *) ind_at->data;
- indices_max = indices + ind_at->num_elements;
-
- is_ptr = (at->flags & SLARR_DATA_VALUE_IS_POINTER);
- dest_data = (char *) at->data;
-
- ret = -1;
- while (indices < indices_max)
- {
- unsigned int offset;
-
- offset = sizeof_type * (unsigned int)*indices;
-
- if (-1 == transfer_n_elements (at, (VOID_STAR) (dest_data + offset),
- (VOID_STAR) data_to_put, sizeof_type, 1,
- is_ptr))
- goto return_error;
-
- indices++;
- data_to_put += data_increment;
- }
-
- ret = 0;
- /* Drop */
-
- return_error:
-
- if (bt == NULL)
- {
- if (is_ptr)
- (*cl->cl_destroy) (cl->cl_data_type, (VOID_STAR)data_to_put);
- }
- else SLang_free_array (bt);
-
- return ret;
-}
-
-/* ARRAY[i, j, k] = generates code: __args i j k ARRAY __aput
- */
-int _SLarray_aput (void)
-{
- unsigned int num_indices;
- SLang_Array_Type *at;
- SLang_Object_Type index_objs [SLARRAY_MAX_DIMS];
- int ret;
- int is_index_array;
- int (*aput_fun) (unsigned char, unsigned int);
- int type;
-
- ret = -1;
- num_indices = (SLang_Num_Function_Args - 1);
-
- type = SLang_peek_at_stack ();
- switch (type)
- {
- case -1:
- return -1;
-
- case SLANG_ARRAY_TYPE:
- break;
-
- default:
- if (NULL != (aput_fun = _SLclass_get_class (type)->cl_aput))
- return (*aput_fun) (type, num_indices);
- break;
- }
-
- if (-1 == SLang_pop_array (&at, 0))
- return -1;
-
- if (at->flags & SLARR_DATA_VALUE_IS_READ_ONLY)
- {
- SLang_verror (SL_READONLY_ERROR, "%s Array is read-only",
- SLclass_get_datatype_name (at->data_type));
- SLang_free_array (at);
- return -1;
- }
-
- if (-1 == pop_indices (index_objs, num_indices, &is_index_array))
- {
- SLang_free_array (at);
- return -1;
- }
-
- if (is_index_array == 0)
- ret = aput_from_indices (at, index_objs, num_indices);
- else
- ret = aput_from_index_array (at, index_objs[0].v.array_val);
-
- SLang_free_array (at);
- free_index_objects (index_objs, num_indices);
- return ret;
-}
-
-/* This is for 1-d matrices only. It is used by the sort function */
-static int push_element_at_index (SLang_Array_Type *at, int indx)
-{
- VOID_STAR data;
-
- if (NULL == (data = get_data_addr (at, &indx)))
- return -1;
-
- return push_element_at_addr (at, (VOID_STAR) data, 1);
-}
-
-static SLang_Name_Type *Sort_Function;
-static SLang_Array_Type *Sort_Array;
-
-static int sort_cmp_fun (int *a, int *b)
-{
- int cmp;
-
- if (SLang_Error
- || (-1 == push_element_at_index (Sort_Array, *a))
- || (-1 == push_element_at_index (Sort_Array, *b))
- || (-1 == SLexecute_function (Sort_Function))
- || (-1 == SLang_pop_integer (&cmp)))
- {
- /* DO not allow qsort to loop forever. Return something meaningful */
- if (*a > *b) return 1;
- if (*a < *b) return -1;
- return 0;
- }
-
- return cmp;
-}
-
-static int builtin_sort_cmp_fun (int *a, int *b)
-{
- VOID_STAR a_data;
- VOID_STAR b_data;
- SLang_Class_Type *cl;
-
- cl = Sort_Array->cl;
-
- if ((SLang_Error == 0)
- && (NULL != (a_data = get_data_addr (Sort_Array, a)))
- && (NULL != (b_data = get_data_addr (Sort_Array, b))))
- {
- int cmp;
-
- if ((Sort_Array->flags & SLARR_DATA_VALUE_IS_POINTER)
- && ((*(VOID_STAR *) a_data == NULL) || (*(VOID_STAR *) a_data == NULL)))
- {
- SLang_verror (SL_VARIABLE_UNINITIALIZED,
- "%s array has unitialized element", cl->cl_name);
- }
- else if (0 == (*cl->cl_cmp)(Sort_Array->data_type, a_data, b_data, &cmp))
- return cmp;
- }
-
-
- if (*a > *b) return 1;
- if (*a == *b) return 0;
- return -1;
-}
-
-static void sort_array_internal (SLang_Array_Type *at_str,
- SLang_Name_Type *entry,
- int (*sort_fun)(int *, int *))
-{
- SLang_Array_Type *ind_at;
- /* This is a silly hack to make up for braindead compilers and the lack of
- * uniformity in prototypes for qsort.
- */
- void (*qsort_fun) (char *, unsigned int, int, int (*)(int *, int *));
- int *indx;
- int i, n;
- int dims[1];
-
- if (Sort_Array != NULL)
- {
- SLang_verror (SL_NOT_IMPLEMENTED, "array_sort is not recursive");
- return;
- }
-
- n = at_str->num_elements;
-
- if (at_str->num_dims != 1)
- {
- SLang_verror (SL_INVALID_PARM, "sort is restricted to 1 dim arrays");
- return;
- }
-
- dims [0] = n;
-
- if (NULL == (ind_at = SLang_create_array (SLANG_INT_TYPE, 0, NULL, dims, 1)))
- return;
-
- indx = (int *) ind_at->data;
- for (i = 0; i < n; i++) indx[i] = i;
-
- if (n > 1)
- {
- qsort_fun = (void (*)(char *, unsigned int, int, int (*)(int *,
- int *)))
- qsort;
-
- Sort_Array = at_str;
- Sort_Function = entry;
- (*qsort_fun) ((char *) indx, n, sizeof (int), sort_fun);
- }
-
- Sort_Array = NULL;
- (void) SLang_push_array (ind_at, 1);
-}
-
-static void sort_array (void)
-{
- SLang_Name_Type *entry;
- SLang_Array_Type *at;
- int (*sort_fun) (int *, int *);
-
- if (SLang_Num_Function_Args != 1)
- {
- sort_fun = sort_cmp_fun;
-
- if (NULL == (entry = SLang_pop_function ()))
- return;
-
- if (-1 == SLang_pop_array (&at, 1))
- return;
- }
- else
- {
- sort_fun = builtin_sort_cmp_fun;
- if (-1 == SLang_pop_array (&at, 1))
- return;
- if (at->cl->cl_cmp == NULL)
- {
- SLang_verror (SL_NOT_IMPLEMENTED,
- "%s does not have a predefined sorting method",
- at->cl->cl_name);
- SLang_free_array (at);
- return;
- }
- entry = NULL;
- }
-
- sort_array_internal (at, entry, sort_fun);
- SLang_free_array (at);
- SLang_free_function (entry);
-}
-
-static void bstring_to_array (SLang_BString_Type *bs)
-{
- unsigned char *s;
- unsigned int len;
-
- if (NULL == (s = SLbstring_get_pointer (bs, &len)))
- (void) SLang_push_null ();
- else
- (void) push_string_as_array (s, len);
-}
-
-static void array_to_bstring (SLang_Array_Type *at)
-{
- unsigned int nbytes;
- SLang_BString_Type *bs;
-
- nbytes = at->num_elements * at->sizeof_type;
- bs = SLbstring_create ((unsigned char *)at->data, nbytes);
- (void) SLang_push_bstring (bs);
- SLbstring_free (bs);
-}
-
-static void init_char_array (void)
-{
- SLang_Array_Type *at;
- char *s;
- unsigned int n, ndim;
-
- if (SLang_pop_slstring (&s)) return;
-
- if (-1 == SLang_pop_array (&at, 0))
- goto free_and_return;
-
- if (at->data_type != SLANG_CHAR_TYPE)
- {
- SLang_doerror("Operation requires character array");
- goto free_and_return;
- }
-
- n = strlen (s);
- ndim = at->num_elements;
- if (n > ndim)
- {
- SLang_doerror("String too big to init array");
- goto free_and_return;
- }
-
- strncpy((char *) at->data, s, ndim);
- /* drop */
-
- free_and_return:
- SLang_free_array (at);
- SLang_free_slstring (s);
-}
-
-static void array_info (void)
-{
- SLang_Array_Type *at, *bt;
- int num_dims;
-
- if (-1 == pop_array (&at, 1))
- return;
-
- num_dims = (int)at->num_dims;
-
- if (NULL != (bt = SLang_create_array (SLANG_INT_TYPE, 0, NULL, &num_dims, 1)))
- {
- int *bdata;
- int i;
- int *a_dims;
-
- a_dims = at->dims;
- bdata = (int *) bt->data;
- for (i = 0; i < num_dims; i++) bdata [i] = a_dims [i];
-
- if (0 == SLang_push_array (bt, 1))
- {
- (void) SLang_push_integer ((int) at->num_dims);
- (void) _SLang_push_datatype (at->data_type);
- }
- }
-
- SLang_free_array (at);
-}
-
-static VOID_STAR range_get_data_addr (SLang_Array_Type *at, int *dims)
-{
- static int value;
- SLarray_Range_Array_Type *r;
- int d;
-
- d = *dims;
- r = (SLarray_Range_Array_Type *)at->data;
-
- if (d < 0)
- d += at->dims[0];
-
- value = r->first_index + d * r->delta;
- return (VOID_STAR) &value;
-}
-
-static SLang_Array_Type *inline_implicit_int_array (int *xminptr, int *xmaxptr, int *dxptr)
-{
- int delta;
- SLang_Array_Type *at;
- int dims, idims;
- SLarray_Range_Array_Type *data;
-
- if (dxptr == NULL) delta = 1;
- else delta = *dxptr;
-
- if (delta == 0)
- {
- SLang_verror (SL_INVALID_PARM, "range-array increment must be non-zero");
- return NULL;
- }
-
- data = (SLarray_Range_Array_Type *) SLmalloc (sizeof (SLarray_Range_Array_Type));
- if (data == NULL)
- return NULL;
-
- SLMEMSET((char *) data, 0, sizeof (SLarray_Range_Array_Type));
- data->delta = delta;
- dims = 0;
-
- if (xminptr != NULL)
- data->first_index = *xminptr;
- else
- data->first_index = 0;
-
- if (xmaxptr != NULL)
- data->last_index = *xmaxptr;
- else
- data->last_index = -1;
-
-/* if ((xminptr != NULL) && (xmaxptr != NULL))
- { */
- idims = 1 + (data->last_index - data->first_index) / delta;
- if (idims > 0)
- dims = idims;
- /* } */
-
- if (NULL == (at = SLang_create_array (SLANG_INT_TYPE, 0, (VOID_STAR) data, &dims, 1)))
- return NULL;
-
- at->index_fun = range_get_data_addr;
- at->flags |= SLARR_DATA_VALUE_IS_RANGE;
-
- return at;
-}
-
-#if SLANG_HAS_FLOAT
-static SLang_Array_Type *inline_implicit_floating_array (unsigned char type,
- double *xminptr, double *xmaxptr, double *dxptr)
-{
- int n, i;
- SLang_Array_Type *at;
- int dims;
- double xmin, xmax, dx;
-
- if ((xminptr == NULL) || (xmaxptr == NULL))
- {
- SLang_verror (SL_INVALID_PARM, "range-array has unknown size");
- return NULL;
- }
- xmin = *xminptr;
- xmax = *xmaxptr;
- if (dxptr == NULL) dx = 1.0;
- else dx = *dxptr;
-
- if (dx == 0.0)
- {
- SLang_doerror ("range-array increment must be non-zero");
- return NULL;
- }
-
- /* I have convinced myself that it is better to use semi-open intervals
- * because of less ambiguities. So, [a:b:c] will represent the set of
- * values a, a + c, a + 2c ... a + nc
- * such that a + nc < b. That is, b lies outside the interval.
- */
-
- /* Allow for roundoff by adding 0.5 before truncation */
- n = (int)(1.5 + ((xmax - xmin) / dx));
- if (n <= 0)
- n = 0;
- else
- {
- double last = xmin + (n-1) * dx;
-
- if (dx > 0.0)
- {
- if (last >= xmax)
- n -= 1;
- }
- else if (last <= xmax)
- n -= 1;
- }
-
- dims = n;
- if (NULL == (at = SLang_create_array1 (type, 0, NULL, &dims, 1, 1)))
- return NULL;
-
- if (type == SLANG_DOUBLE_TYPE)
- {
- double *ptr;
-
- ptr = (double *) at->data;
-
- for (i = 0; i < n; i++)
- ptr[i] = xmin + i * dx;
- }
- else
- {
- float *ptr;
-
- ptr = (float *) at->data;
-
- for (i = 0; i < n; i++)
- ptr[i] = (float) (xmin + i * dx);
- }
- return at;
-}
-#endif
-
-/* FIXME: Priority=medium
- * This needs to be updated to work with all integer types.
- */
-int _SLarray_inline_implicit_array (void)
-{
- int int_vals[3];
-#if SLANG_HAS_FLOAT
- double double_vals[3];
-#endif
- int has_vals[3];
- unsigned int i, count;
- SLang_Array_Type *at;
- int precedence;
- unsigned char type;
- int is_int;
-
- count = SLang_Num_Function_Args;
-
- if (count == 2)
- has_vals [2] = 0;
- else if (count != 3)
- {
- SLang_doerror ("wrong number of arguments to __implicit_inline_array");
- return -1;
- }
-
-#if SLANG_HAS_FLOAT
- is_int = 1;
-#endif
-
- type = 0;
- precedence = 0;
-
- i = count;
- while (i--)
- {
- int this_type, this_precedence;
-
- if (-1 == (this_type = SLang_peek_at_stack ()))
- return -1;
-
- this_precedence = _SLarith_get_precedence ((unsigned char) this_type);
- if (precedence < this_precedence)
- {
- type = (unsigned char) this_type;
- precedence = this_precedence;
- }
-
- has_vals [i] = 1;
-
- switch (this_type)
- {
- case SLANG_NULL_TYPE:
- has_vals[i] = 0;
- (void) SLdo_pop ();
- break;
-
-#if SLANG_HAS_FLOAT
- case SLANG_DOUBLE_TYPE:
- case SLANG_FLOAT_TYPE:
- if (-1 == SLang_pop_double (double_vals + i, NULL, NULL))
- return -1;
- is_int = 0;
- break;
-#endif
- default:
- if (-1 == SLang_pop_integer (int_vals + i))
- return -1;
- double_vals[i] = (double) int_vals[i];
- }
- }
-
-#if SLANG_HAS_FLOAT
- if (is_int == 0)
- at = inline_implicit_floating_array (type,
- (has_vals[0] ? &double_vals[0] : NULL),
- (has_vals[1] ? &double_vals[1] : NULL),
- (has_vals[2] ? &double_vals[2] : NULL));
- else
-#endif
- at = inline_implicit_int_array ((has_vals[0] ? &int_vals[0] : NULL),
- (has_vals[1] ? &int_vals[1] : NULL),
- (has_vals[2] ? &int_vals[2] : NULL));
-
- if (at == NULL)
- return -1;
-
- return SLang_push_array (at, 1);
-}
-
-int _SLarray_wildcard_array (void)
-{
- SLang_Array_Type *at;
-
- if (NULL == (at = inline_implicit_int_array (NULL, NULL, NULL)))
- return -1;
-
- return SLang_push_array (at, 1);
-}
-
-static SLang_Array_Type *concat_arrays (unsigned int count)
-{
- SLang_Array_Type **arrays;
- SLang_Array_Type *at, *bt;
- unsigned int i;
- int num_elements;
- unsigned char type;
- char *src_data, *dest_data;
- int is_ptr;
- unsigned int sizeof_type;
- int max_dims, min_dims, max_rows, min_rows;
-
- arrays = (SLang_Array_Type **)SLmalloc (count * sizeof (SLang_Array_Type *));
- if (arrays == NULL)
- {
- SLdo_pop_n (count);
- return NULL;
- }
- SLMEMSET((char *) arrays, 0, count * sizeof(SLang_Array_Type *));
-
- at = NULL;
-
- num_elements = 0;
- i = count;
-
- while (i != 0)
- {
- i--;
-
- if (-1 == SLang_pop_array (&bt, 1))
- goto free_and_return;
-
- arrays[i] = bt;
- num_elements += (int)bt->num_elements;
- }
-
- type = arrays[0]->data_type;
- max_dims = min_dims = arrays[0]->num_dims;
- min_rows = max_rows = arrays[0]->dims[0];
-
- for (i = 1; i < count; i++)
- {
- SLang_Array_Type *ct;
- int num;
-
- bt = arrays[i];
-
- num = bt->num_dims;
- if (num > max_dims) max_dims = num;
- if (num < min_dims) min_dims = num;
-
- num = bt->dims[0];
- if (num > max_rows) max_rows = num;
- if (num < min_rows) min_rows = num;
-
- if (type == bt->data_type)
- continue;
-
- if (1 != _SLarray_typecast (bt->data_type, (VOID_STAR) &bt, 1,
- type, (VOID_STAR) &ct, 1))
- goto free_and_return;
-
- SLang_free_array (bt);
- arrays [i] = ct;
- }
-
- if (NULL == (at = SLang_create_array (type, 0, NULL, &num_elements, 1)))
- goto free_and_return;
-
- is_ptr = (at->flags & SLARR_DATA_VALUE_IS_POINTER);
- sizeof_type = at->sizeof_type;
- dest_data = (char *) at->data;
-
- for (i = 0; i < count; i++)
- {
- bt = arrays[i];
-
- src_data = (char *) bt->data;
- num_elements = bt->num_elements;
-
- if (-1 == transfer_n_elements (bt, (VOID_STAR)dest_data, (VOID_STAR)src_data, sizeof_type,
- num_elements, is_ptr))
- {
- SLang_free_array (at);
- at = NULL;
- goto free_and_return;
- }
-
- dest_data += num_elements * sizeof_type;
- }
-
- /* If the arrays are all 1-d, and all the same size, then reshape to a
- * 2-d array. This will allow us to do, e.g.
- * a = [[1,2], [3,4]]
- * to specifiy a 2-d.
- * Someday I will generalize this.
- */
- if ((max_dims == min_dims) && (max_dims == 1) && (min_rows == max_rows))
- {
- at->num_dims = 2;
- at->dims[0] = count;
- at->dims[1] = min_rows;
- }
-
- free_and_return:
-
- for (i = 0; i < count; i++)
- SLang_free_array (arrays[i]);
- SLfree ((char *) arrays);
-
- return at;
-}
-
-int _SLarray_inline_array (void)
-{
- SLang_Object_Type *obj;
- unsigned char type, this_type;
- unsigned int count;
- SLang_Array_Type *at;
-
- obj = _SLStack_Pointer;
-
- count = SLang_Num_Function_Args;
- type = 0;
-
- while ((count > 0) && (--obj >= _SLRun_Stack))
- {
- this_type = obj->data_type;
-
- if (type == 0)
- type = this_type;
-
- if ((type == this_type) || (type == SLANG_ARRAY_TYPE))
- {
- count--;
- continue;
- }
-
- switch (this_type)
- {
- case SLANG_ARRAY_TYPE:
- type = SLANG_ARRAY_TYPE;
- break;
-
- case SLANG_INT_TYPE:
- switch (type)
- {
-#if SLANG_HAS_FLOAT
- case SLANG_DOUBLE_TYPE:
- break;
-#endif
-#if SLANG_HAS_COMPLEX
- case SLANG_COMPLEX_TYPE:
- break;
-#endif
- default:
- goto type_mismatch;
- }
- break;
-#if SLANG_HAS_FLOAT
- case SLANG_DOUBLE_TYPE:
- switch (type)
- {
- case SLANG_INT_TYPE:
- type = SLANG_DOUBLE_TYPE;
- break;
-# if SLANG_HAS_COMPLEX
- case SLANG_COMPLEX_TYPE:
- break;
-# endif
- default:
- goto type_mismatch;
- }
- break;
-#endif
-#if SLANG_HAS_COMPLEX
- case SLANG_COMPLEX_TYPE:
- switch (type)
- {
- case SLANG_INT_TYPE:
- case SLANG_DOUBLE_TYPE:
- type = SLANG_COMPLEX_TYPE;
- break;
-
- default:
- goto type_mismatch;
- }
- break;
-#endif
- default:
- type_mismatch:
- _SLclass_type_mismatch_error (type, this_type);
- return -1;
- }
- count--;
- }
-
- if (count != 0)
- {
- SLang_Error = SL_STACK_UNDERFLOW;
- return -1;
- }
-
- count = SLang_Num_Function_Args;
-
- if (count == 0)
- {
- SLang_verror (SL_NOT_IMPLEMENTED, "Empty inline-arrays not supported");
- return -1;
- }
-
- if (type == SLANG_ARRAY_TYPE)
- {
- if (NULL == (at = concat_arrays (count)))
- return -1;
- }
- else
- {
- SLang_Object_Type index_obj;
- int icount = (int) count;
-
- if (NULL == (at = SLang_create_array (type, 0, NULL, &icount, 1)))
- return -1;
-
- index_obj.data_type = SLANG_INT_TYPE;
- while (count != 0)
- {
- count--;
- index_obj.v.int_val = (int) count;
- if (-1 == aput_from_indices (at, &index_obj, 1))
- {
- SLang_free_array (at);
- SLdo_pop_n (count);
- return -1;
- }
- }
- }
-
- return SLang_push_array (at, 1);
-}
-
-static int array_binary_op_result (int op, unsigned char a, unsigned char b,
- unsigned char *c)
-{
- (void) op;
- (void) a;
- (void) b;
- *c = SLANG_ARRAY_TYPE;
- return 1;
-}
-
-static int array_binary_op (int op,
- unsigned char a_type, VOID_STAR ap, unsigned int na,
- unsigned char b_type, VOID_STAR bp, unsigned int nb,
- VOID_STAR cp)
-{
- SLang_Array_Type *at, *bt, *ct;
- unsigned int i, num_dims;
- int (*binary_fun) (int,
- unsigned char, VOID_STAR, unsigned int,
- unsigned char, VOID_STAR, unsigned int,
- VOID_STAR);
- SLang_Class_Type *a_cl, *b_cl, *c_cl;
- int no_init;
-
- if (a_type == SLANG_ARRAY_TYPE)
- {
- if (na != 1)
- {
- SLang_verror (SL_NOT_IMPLEMENTED, "Binary operation on multiple arrays not implemented");
- return -1;
- }
-
- at = *(SLang_Array_Type **) ap;
- if (-1 == coerse_array_to_linear (at))
- return -1;
- ap = at->data;
- a_type = at->data_type;
- na = at->num_elements;
- }
- else
- {
- at = NULL;
- }
-
- if (b_type == SLANG_ARRAY_TYPE)
- {
- if (nb != 1)
- {
- SLang_verror (SL_NOT_IMPLEMENTED, "Binary operation on multiple arrays not implemented");
- return -1;
- }
-
- bt = *(SLang_Array_Type **) bp;
- if (-1 == coerse_array_to_linear (bt))
- return -1;
- bp = bt->data;
- b_type = bt->data_type;
- nb = bt->num_elements;
- }
- else
- {
- bt = NULL;
- }
-
- if ((at != NULL) && (bt != NULL))
- {
- num_dims = at->num_dims;
-
- if (num_dims != bt->num_dims)
- {
- SLang_verror (SL_TYPE_MISMATCH, "Arrays must have same dim for binary operation");
- return -1;
- }
-
- for (i = 0; i < num_dims; i++)
- {
- if (at->dims[i] != bt->dims[i])
- {
- SLang_verror (SL_TYPE_MISMATCH, "Arrays must be the same for binary operation");
- return -1;
- }
- }
- }
-
- a_cl = _SLclass_get_class (a_type);
- b_cl = _SLclass_get_class (b_type);
-
- if (NULL == (binary_fun = _SLclass_get_binary_fun (op, a_cl, b_cl, &c_cl, 1)))
- return -1;
-
- no_init = ((c_cl->cl_class_type == SLANG_CLASS_TYPE_SCALAR)
- || (c_cl->cl_class_type == SLANG_CLASS_TYPE_VECTOR));
-
- ct = NULL;
-#if _SLANG_USE_TMP_OPTIMIZATION
- /* If we are dealing with scalar (or vector) objects, and if the object
- * appears to be owned by the stack, then use it instead of creating a
- * new version. This can happen with code such as:
- * @ x = [1,2,3,4];
- * @ x = __tmp(x) + 1;
- */
- if (no_init)
- {
- if ((at != NULL)
- && (at->num_refs == 1)
- && (at->data_type == c_cl->cl_data_type))
- {
- ct = at;
- ct->num_refs = 2;
- }
- else if ((bt != NULL)
- && (bt->num_refs == 1)
- && (bt->data_type == c_cl->cl_data_type))
- {
- ct = bt;
- ct->num_refs = 2;
- }
- }
-#endif /* _SLANG_USE_TMP_OPTIMIZATION */
-
- if (ct == NULL)
- {
- if (at != NULL) ct = at; else ct = bt;
- ct = SLang_create_array1 (c_cl->cl_data_type, 0, NULL, ct->dims, ct->num_dims, no_init);
- if (ct == NULL)
- return -1;
- }
-
-
- if ((na == 0) || (nb == 0) /* allow empty arrays */
- || (1 == (*binary_fun) (op, a_type, ap, na, b_type, bp, nb, ct->data)))
- {
- *(SLang_Array_Type **) cp = ct;
- return 1;
- }
-
- SLang_free_array (ct);
- return -1;
-}
-
-static void array_where (void)
-{
- SLang_Array_Type *at, *bt;
- char *a_data;
- int *b_data;
- unsigned int i, num_elements;
- int b_num;
-
- if (-1 == SLang_pop_array (&at, 1))
- return;
-
- bt = NULL;
-
- if (at->data_type != SLANG_CHAR_TYPE)
- {
- int zero;
- SLang_Array_Type *tmp_at;
-
- tmp_at = at;
- zero = 0;
- if (1 != array_binary_op (SLANG_NE,
- SLANG_ARRAY_TYPE, (VOID_STAR) &at, 1,
- SLANG_CHAR_TYPE, (VOID_STAR) &zero, 1,
- (VOID_STAR) &tmp_at))
- goto return_error;
-
- SLang_free_array (at);
- at = tmp_at;
- if (at->data_type != SLANG_CHAR_TYPE)
- {
- SLang_Error = SL_TYPE_MISMATCH;
- goto return_error;
- }
- }
-
- a_data = (char *) at->data;
- num_elements = at->num_elements;
-
- b_num = 0;
- for (i = 0; i < num_elements; i++)
- if (a_data[i] != 0) b_num++;
-
- if (NULL == (bt = SLang_create_array1 (SLANG_INT_TYPE, 0, NULL, &b_num, 1, 1)))
- goto return_error;
-
- b_data = (int *) bt->data;
-
- i = 0;
- while (b_num)
- {
- if (a_data[i] != 0)
- {
- *b_data++ = i;
- b_num--;
- }
-
- i++;
- }
-
- (void) SLang_push_array (bt, 0);
- /* drop */
-
- return_error:
- SLang_free_array (at);
- SLang_free_array (bt);
-}
-
-static int do_array_reshape (SLang_Array_Type *at, SLang_Array_Type *ind_at)
-{
- int *dims;
- unsigned int i, num_dims;
- unsigned int num_elements;
-
- if ((ind_at->data_type != SLANG_INT_TYPE)
- || (ind_at->num_dims != 1))
- {
- SLang_verror (SL_TYPE_MISMATCH, "Expecting 1-d integer array");
- return -1;
- }
-
- num_dims = ind_at->num_elements;
- dims = (int *) ind_at->data;
-
- num_elements = 1;
- for (i = 0; i < num_dims; i++)
- {
- int d = dims[i];
- if (d < 0)
- {
- SLang_verror (SL_INVALID_PARM, "reshape: dimension is less then 0");
- return -1;
- }
-
- num_elements = (unsigned int) d * num_elements;
- }
-
- if ((num_elements != at->num_elements)
- || (num_dims > SLARRAY_MAX_DIMS))
- {
- SLang_verror (SL_INVALID_PARM, "Unable to reshape array to specified size");
- return -1;
- }
-
- for (i = 0; i < num_dims; i++)
- at->dims [i] = dims[i];
-
- while (i < SLARRAY_MAX_DIMS)
- {
- at->dims [i] = 1;
- i++;
- }
-
- at->num_dims = num_dims;
- return 0;
-}
-
-static void array_reshape (SLang_Array_Type *at, SLang_Array_Type *ind_at)
-{
- (void) do_array_reshape (at, ind_at);
-}
-
-static void _array_reshape (SLang_Array_Type *ind_at)
-{
- SLang_Array_Type *at;
- SLang_Array_Type *new_at;
-
- if (-1 == SLang_pop_array (&at, 1))
- return;
-
- /* FIXME: Priority=low: duplicate_array could me modified to look at num_refs */
-
- /* Now try to avoid the overhead of creating a new array if possible */
- if (at->num_refs == 1)
- {
- /* Great, we are the sole owner of this array. */
- if ((-1 == do_array_reshape (at, ind_at))
- || (-1 == SLclass_push_ptr_obj (SLANG_ARRAY_TYPE, (VOID_STAR)at)))
- SLang_free_array (at);
- return;
- }
-
- new_at = SLang_duplicate_array (at);
- if (new_at != NULL)
- {
- if (0 == do_array_reshape (new_at, ind_at))
- (void) SLang_push_array (new_at, 0);
-
- SLang_free_array (new_at);
- }
- SLang_free_array (at);
-}
-
-typedef struct
-{
- SLang_Array_Type *at;
- unsigned int increment;
- char *addr;
-}
-Map_Arg_Type;
-/* Usage: array_map (Return-Type, func, args,....); */
-static void array_map (void)
-{
- Map_Arg_Type *args;
- unsigned int num_args;
- unsigned int i, i_control;
- SLang_Name_Type *nt;
- unsigned int num_elements;
- SLang_Array_Type *at;
- char *addr;
- unsigned char type;
-
- at = NULL;
- args = NULL;
- nt = NULL;
-
- if (SLang_Num_Function_Args < 3)
- {
- SLang_verror (SL_INVALID_PARM,
- "Usage: array_map (Return-Type, &func, args...)");
- SLdo_pop_n (SLang_Num_Function_Args);
- return;
- }
-
- num_args = (unsigned int)SLang_Num_Function_Args - 2;
- args = (Map_Arg_Type *) SLmalloc (num_args * sizeof (Map_Arg_Type));
- if (args == NULL)
- {
- SLdo_pop_n (SLang_Num_Function_Args);
- return;
- }
- memset ((char *) args, 0, num_args * sizeof (Map_Arg_Type));
- i = num_args;
- i_control = 0;
- while (i > 0)
- {
- i--;
- if (-1 == SLang_pop_array (&args[i].at, 1))
- {
- SLdo_pop_n (i + 2);
- goto return_error;
- }
- if (args[i].at->num_elements > 1)
- i_control = i;
- }
-
- if (NULL == (nt = SLang_pop_function ()))
- {
- SLdo_pop_n (1);
- goto return_error;
- }
-
- num_elements = args[i_control].at->num_elements;
-
- if (-1 == _SLang_pop_datatype (&type))
- goto return_error;
-
- if (type == SLANG_UNDEFINED_TYPE) /* Void_Type */
- at = NULL;
- else
- {
- at = args[i_control].at;
-
- if (NULL == (at = SLang_create_array (type, 0, NULL, at->dims, at->num_dims)))
- goto return_error;
- }
-
-
- for (i = 0; i < num_args; i++)
- {
- SLang_Array_Type *ati = args[i].at;
- /* FIXME: Priority = low: The actual dimensions should be compared. */
- if (ati->num_elements == num_elements)
- args[i].increment = ati->sizeof_type;
- /* memset already guarantees increment to be zero */
-
- if (ati->num_elements == 0)
- {
- SLang_verror (0, "array_map: function argument %d of %d is an empty array",
- i+1, num_args);
- goto return_error;
- }
-
- args[i].addr = (char *) ati->data;
- }
-
- if (at == NULL)
- addr = NULL;
- else
- addr = (char *)at->data;
-
- for (i = 0; i < num_elements; i++)
- {
- unsigned int j;
-
- if (-1 == SLang_start_arg_list ())
- goto return_error;
-
- for (j = 0; j < num_args; j++)
- {
- if (-1 == push_element_at_addr (args[j].at,
- (VOID_STAR) args[j].addr,
- 1))
- {
- SLdo_pop_n (j);
- goto return_error;
- }
-
- args[j].addr += args[j].increment;
- }
-
- if (-1 == SLang_end_arg_list ())
- {
- SLdo_pop_n (num_args);
- goto return_error;
- }
-
- if (-1 == SLexecute_function (nt))
- goto return_error;
-
- if (at == NULL)
- continue;
-
- if (-1 == at->cl->cl_apop (type, (VOID_STAR) addr))
- goto return_error;
-
- addr += at->sizeof_type;
- }
-
- if (at != NULL)
- (void) SLang_push_array (at, 0);
-
- /* drop */
-
- return_error:
- SLang_free_array (at);
- SLang_free_function (nt);
- if (args != NULL)
- {
- for (i = 0; i < num_args; i++)
- SLang_free_array (args[i].at);
-
- SLfree ((char *) args);
- }
-}
-
-static SLang_Intrin_Fun_Type Array_Table [] =
-{
- MAKE_INTRINSIC_0("array_map", array_map, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_0("array_sort", sort_array, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_1("array_to_bstring", array_to_bstring, SLANG_VOID_TYPE, SLANG_ARRAY_TYPE),
- MAKE_INTRINSIC_1("bstring_to_array", bstring_to_array, SLANG_VOID_TYPE, SLANG_BSTRING_TYPE),
- MAKE_INTRINSIC("init_char_array", init_char_array, SLANG_VOID_TYPE, 0),
- MAKE_INTRINSIC("array_info", array_info, SLANG_VOID_TYPE, 0),
- MAKE_INTRINSIC("where", array_where, SLANG_VOID_TYPE, 0),
- MAKE_INTRINSIC_2("reshape", array_reshape, SLANG_VOID_TYPE, SLANG_ARRAY_TYPE, SLANG_ARRAY_TYPE),
- MAKE_INTRINSIC_1("_reshape", _array_reshape, SLANG_VOID_TYPE, SLANG_ARRAY_TYPE),
- SLANG_END_INTRIN_FUN_TABLE
-};
-
-static char *array_string (unsigned char type, VOID_STAR v)
-{
- SLang_Array_Type *at;
- char buf[512];
- unsigned int i, num_dims;
- int *dims;
-
- at = *(SLang_Array_Type **) v;
- type = at->data_type;
- num_dims = at->num_dims;
- dims = at->dims;
-
- sprintf (buf, "%s[%d", SLclass_get_datatype_name (type), at->dims[0]);
-
- for (i = 1; i < num_dims; i++)
- sprintf (buf + strlen(buf), ",%d", dims[i]);
- strcat (buf, "]");
-
- return SLmake_string (buf);
-}
-
-static void array_destroy (unsigned char type, VOID_STAR v)
-{
- (void) type;
- SLang_free_array (*(SLang_Array_Type **) v);
-}
-
-static int array_push (unsigned char type, VOID_STAR v)
-{
- SLang_Array_Type *at;
-
- (void) type;
- at = *(SLang_Array_Type **) v;
- return SLang_push_array (at, 0);
-}
-
-/* Intrinsic arrays are not stored in a variable. So, the address that
- * would contain the variable holds the array address.
- */
-static int array_push_intrinsic (unsigned char type, VOID_STAR v)
-{
- (void) type;
- return SLang_push_array ((SLang_Array_Type *) v, 0);
-}
-
-int _SLarray_add_bin_op (unsigned char type)
-{
- SL_OOBinary_Type *ab;
- SLang_Class_Type *cl;
-
- cl = _SLclass_get_class (type);
- ab = cl->cl_binary_ops;
-
- while (ab != NULL)
- {
- if (ab->data_type == SLANG_ARRAY_TYPE)
- return 0;
- ab = ab->next;
- }
-
- if ((-1 == SLclass_add_binary_op (SLANG_ARRAY_TYPE, type, array_binary_op, array_binary_op_result))
- || (-1 == SLclass_add_binary_op (type, SLANG_ARRAY_TYPE, array_binary_op, array_binary_op_result)))
- return -1;
-
- return 0;
-}
-
-static SLang_Array_Type *
-do_array_math_op (int op, int unary_type,
- SLang_Array_Type *at, unsigned int na)
-{
- unsigned char a_type, b_type;
- int (*f) (int, unsigned char, VOID_STAR, unsigned int, VOID_STAR);
- SLang_Array_Type *bt;
- SLang_Class_Type *b_cl;
- int no_init;
-
- if (na != 1)
- {
- SLang_verror (SL_NOT_IMPLEMENTED, "Operation restricted to 1 array");
- return NULL;
- }
-
- a_type = at->data_type;
- if (NULL == (f = _SLclass_get_unary_fun (op, at->cl, &b_cl, unary_type)))
- return NULL;
- b_type = b_cl->cl_data_type;
-
- if (-1 == coerse_array_to_linear (at))
- return NULL;
-
- no_init = ((b_cl->cl_class_type == SLANG_CLASS_TYPE_SCALAR)
- || (b_cl->cl_class_type == SLANG_CLASS_TYPE_VECTOR));
-
-#if _SLANG_USE_TMP_OPTIMIZATION
- /* If we are dealing with scalar (or vector) objects, and if the object
- * appears to be owned by the stack, then use it instead of creating a
- * new version. This can happen with code such as:
- * @ x = [1,2,3,4];
- * @ x = UNARY_OP(__tmp(x));
- */
- if (no_init
- && (at->num_refs == 1)
- && (at->data_type == b_cl->cl_data_type))
- {
- bt = at;
- bt->num_refs = 2;
- }
- else
-#endif /* _SLANG_USE_TMP_OPTIMIZATION */
- if (NULL == (bt = SLang_create_array1 (b_type, 0, NULL, at->dims, at->num_dims, no_init)))
- return NULL;
-
- if (1 != (*f)(op, a_type, at->data, at->num_elements, bt->data))
- {
- SLang_free_array (bt);
- return NULL;
- }
- return bt;
-}
-
-static int
-array_unary_op_result (int op, unsigned char a, unsigned char *b)
-{
- (void) op;
- (void) a;
- *b = SLANG_ARRAY_TYPE;
- return 1;
-}
-
-static int
-array_unary_op (int op,
- unsigned char a, VOID_STAR ap, unsigned int na,
- VOID_STAR bp)
-{
- SLang_Array_Type *at;
-
- (void) a;
- at = *(SLang_Array_Type **) ap;
- if (NULL == (at = do_array_math_op (op, _SLANG_BC_UNARY, at, na)))
- {
- if (SLang_Error) return -1;
- return 0;
- }
- *(SLang_Array_Type **) bp = at;
- return 1;
-}
-
-static int
-array_math_op (int op,
- unsigned char a, VOID_STAR ap, unsigned int na,
- VOID_STAR bp)
-{
- SLang_Array_Type *at;
-
- (void) a;
- at = *(SLang_Array_Type **) ap;
- if (NULL == (at = do_array_math_op (op, _SLANG_BC_MATH_UNARY, at, na)))
- {
- if (SLang_Error) return -1;
- return 0;
- }
- *(SLang_Array_Type **) bp = at;
- return 1;
-}
-
-static int
-array_app_op (int op,
- unsigned char a, VOID_STAR ap, unsigned int na,
- VOID_STAR bp)
-{
- SLang_Array_Type *at;
-
- (void) a;
- at = *(SLang_Array_Type **) ap;
- if (NULL == (at = do_array_math_op (op, _SLANG_BC_APP_UNARY, at, na)))
- {
- if (SLang_Error) return -1;
- return 0;
- }
- *(SLang_Array_Type **) bp = at;
- return 1;
-}
-
-int
-_SLarray_typecast (unsigned char a_type, VOID_STAR ap, unsigned int na,
- unsigned char b_type, VOID_STAR bp,
- int is_implicit)
-{
- SLang_Array_Type *at, *bt;
- SLang_Class_Type *b_cl;
- int no_init;
- int (*t) (unsigned char, VOID_STAR, unsigned int, unsigned char, VOID_STAR);
-
- if (na != 1)
- {
- SLang_verror (SL_NOT_IMPLEMENTED, "typecast of multiple arrays not implemented");
- return -1;
- }
-
- at = *(SLang_Array_Type **) ap;
- a_type = at->data_type;
-
- if (a_type == b_type)
- {
- at->num_refs += 1;
- *(SLang_Array_Type **) bp = at;
- return 1;
- }
-
- if (NULL == (t = _SLclass_get_typecast (a_type, b_type, is_implicit)))
- return -1;
-
- if (-1 == coerse_array_to_linear (at))
- return -1;
-
- b_cl = _SLclass_get_class (b_type);
-
- no_init = ((b_cl->cl_class_type == SLANG_CLASS_TYPE_SCALAR)
- || (b_cl->cl_class_type == SLANG_CLASS_TYPE_VECTOR));
-
- if (NULL == (bt = SLang_create_array1 (b_type, 0, NULL, at->dims, at->num_dims, no_init)))
- return -1;
-
- if (1 == (*t) (a_type, at->data, at->num_elements, b_type, bt->data))
- {
- *(SLang_Array_Type **) bp = bt;
- return 1;
- }
-
- SLang_free_array (bt);
- return 0;
-}
-
-SLang_Array_Type *SLang_duplicate_array (SLang_Array_Type *at)
-{
- SLang_Array_Type *bt;
- char *data, *a_data;
- unsigned int i, num_elements, sizeof_type;
- unsigned int size;
- int (*cl_acopy) (unsigned char, VOID_STAR, VOID_STAR);
- unsigned char type;
-
- if (-1 == coerse_array_to_linear (at))
- return NULL;
-
- type = at->data_type;
- num_elements = at->num_elements;
- sizeof_type = at->sizeof_type;
- size = num_elements * sizeof_type;
-
- if (NULL == (data = SLmalloc (size)))
- return NULL;
-
- if (NULL == (bt = SLang_create_array (type, 0, (VOID_STAR)data, at->dims, at->num_dims)))
- {
- SLfree (data);
- return NULL;
- }
-
- a_data = (char *) at->data;
- if (0 == (at->flags & SLARR_DATA_VALUE_IS_POINTER))
- {
- SLMEMCPY (data, a_data, size);
- return bt;
- }
-
- SLMEMSET (data, 0, size);
-
- cl_acopy = at->cl->cl_acopy;
- for (i = 0; i < num_elements; i++)
- {
- if (NULL != *(VOID_STAR *) a_data)
- {
- if (-1 == (*cl_acopy) (type, (VOID_STAR) a_data, (VOID_STAR) data))
- {
- SLang_free_array (bt);
- return NULL;
- }
- }
-
- data += sizeof_type;
- a_data += sizeof_type;
- }
-
- return bt;
-}
-
-static int array_dereference (unsigned char type, VOID_STAR addr)
-{
- SLang_Array_Type *at;
-
- (void) type;
- at = SLang_duplicate_array (*(SLang_Array_Type **) addr);
- if (at == NULL) return -1;
- return SLang_push_array (at, 1);
-}
-
-/* This function gets called via, e.g., @Array_Type (Double_Type, [10,20]);
- */
-static int
-array_datatype_deref (unsigned char type)
-{
- SLang_Array_Type *ind_at;
- SLang_Array_Type *at;
-
-#if 0
- /* The parser generated code for this as if a function call were to be
- * made. However, the interpreter simply called the deref object routine
- * instead of the function call. So, I must simulate the function call.
- * This needs to be formalized to hide this detail from applications
- * who wish to do the same. So...
- * FIXME: Priority=medium
- */
- if (0 == _SL_increment_frame_pointer ())
- (void) _SL_decrement_frame_pointer ();
-#endif
-
- if (-1 == SLang_pop_array (&ind_at, 1))
- return -1;
-
- if ((ind_at->data_type != SLANG_INT_TYPE)
- || (ind_at->num_dims != 1))
- {
- SLang_verror (SL_TYPE_MISMATCH, "Expecting 1-d integer array");
- goto return_error;
- }
-
- if (-1 == _SLang_pop_datatype (&type))
- goto return_error;
-
- if (NULL == (at = SLang_create_array (type, 0, NULL,
- (int *) ind_at->data,
- ind_at->num_elements)))
- goto return_error;
-
- SLang_free_array (ind_at);
- return SLang_push_array (at, 1);
-
- return_error:
- SLang_free_array (ind_at);
- return -1;
-}
-
-static int array_length (unsigned char type, VOID_STAR v, unsigned int *len)
-{
- SLang_Array_Type *at;
-
- (void) type;
- at = *(SLang_Array_Type **) v;
- *len = at->num_elements;
- return 0;
-}
-
-int
-_SLarray_init_slarray (void)
-{
- SLang_Class_Type *cl;
-
- if (-1 == SLadd_intrin_fun_table (Array_Table, NULL))
- return -1;
-
- if (NULL == (cl = SLclass_allocate_class ("Array_Type")))
- return -1;
-
- (void) SLclass_set_string_function (cl, array_string);
- (void) SLclass_set_destroy_function (cl, array_destroy);
- (void) SLclass_set_push_function (cl, array_push);
- cl->cl_push_intrinsic = array_push_intrinsic;
- cl->cl_dereference = array_dereference;
- cl->cl_datatype_deref = array_datatype_deref;
- cl->cl_length = array_length;
-
- if (-1 == SLclass_register_class (cl, SLANG_ARRAY_TYPE, sizeof (VOID_STAR),
- SLANG_CLASS_TYPE_PTR))
- return -1;
-
- if ((-1 == SLclass_add_binary_op (SLANG_ARRAY_TYPE, SLANG_ARRAY_TYPE, array_binary_op, array_binary_op_result))
- || (-1 == SLclass_add_unary_op (SLANG_ARRAY_TYPE, array_unary_op, array_unary_op_result))
- || (-1 == SLclass_add_app_unary_op (SLANG_ARRAY_TYPE, array_app_op, array_unary_op_result))
- || (-1 == SLclass_add_math_op (SLANG_ARRAY_TYPE, array_math_op, array_unary_op_result))
- || (-1 == SLclass_add_math_op (SLANG_ARRAY_TYPE, array_math_op, array_unary_op_result)))
- return -1;
-
- return 0;
-}
-
-int SLang_pop_array (SLang_Array_Type **at_ptr, int convert_scalar)
-{
- if (-1 == pop_array (at_ptr, convert_scalar))
- return -1;
-
- if (-1 == coerse_array_to_linear (*at_ptr))
- {
- SLang_free_array (*at_ptr);
- return -1;
- }
- return 0;
-}
-
-int SLang_pop_array_of_type (SLang_Array_Type **at, unsigned char type)
-{
- if (-1 == SLclass_typecast (type, 1, 1))
- return -1;
-
- return SLang_pop_array (at, 1);
-}
-
-void (*_SLang_Matrix_Multiply)(void);
-
-int _SLarray_matrix_multiply (void)
-{
- if (_SLang_Matrix_Multiply != NULL)
- {
- (*_SLang_Matrix_Multiply)();
- return 0;
- }
- SLang_verror (SL_NOT_IMPLEMENTED, "Matrix multiplication not available");
- return -1;
-}
-
-struct _SLang_Foreach_Context_Type
-{
- SLang_Array_Type *at;
- unsigned int next_element_index;
-};
-
-SLang_Foreach_Context_Type *
-_SLarray_cl_foreach_open (unsigned char type, unsigned int num)
-{
- SLang_Foreach_Context_Type *c;
-
- if (num != 0)
- {
- SLdo_pop_n (num + 1);
- SLang_verror (SL_NOT_IMPLEMENTED,
- "%s does not support 'foreach using' form",
- SLclass_get_datatype_name (type));
- return NULL;
- }
-
- if (NULL == (c = (SLang_Foreach_Context_Type *) SLmalloc (sizeof (SLang_Foreach_Context_Type))))
- return NULL;
-
- memset ((char *) c, 0, sizeof (SLang_Foreach_Context_Type));
-
- if (-1 == pop_array (&c->at, 1))
- {
- SLfree ((char *) c);
- return NULL;
- }
-
- return c;
-}
-
-void _SLarray_cl_foreach_close (unsigned char type, SLang_Foreach_Context_Type *c)
-{
- (void) type;
- if (c == NULL) return;
- SLang_free_array (c->at);
- SLfree ((char *) c);
-}
-
-int _SLarray_cl_foreach (unsigned char type, SLang_Foreach_Context_Type *c)
-{
- SLang_Array_Type *at;
- VOID_STAR data;
-
- (void) type;
-
- if (c == NULL)
- return -1;
-
- at = c->at;
- if (at->num_elements == c->next_element_index)
- return 0;
-
- /* FIXME: Priority = low. The following assumes linear arrays
- * or Integer range arrays. Fixing it right requires a method to get the
- * nth element of a multidimensional array.
- */
-
- if (at->flags & SLARR_DATA_VALUE_IS_RANGE)
- {
- int d = (int) c->next_element_index;
- data = range_get_data_addr (at, &d);
- }
- else
- data = (VOID_STAR) ((char *)at->data + (c->next_element_index * at->sizeof_type));
-
- c->next_element_index += 1;
-
- if ((at->flags & SLARR_DATA_VALUE_IS_POINTER)
- && (*(VOID_STAR *) data == NULL))
- {
- if (-1 == SLang_push_null ())
- return -1;
- }
- else if (-1 == (*at->cl->cl_apush)(at->data_type, data))
- return -1;
-
- /* keep going */
- return 1;
-}
-
diff --git a/mdk-stage1/slang/slarrfun.c b/mdk-stage1/slang/slarrfun.c
deleted file mode 100644
index bfa6ec5e5..000000000
--- a/mdk-stage1/slang/slarrfun.c
+++ /dev/null
@@ -1,464 +0,0 @@
-/* Advanced array manipulation routines for S-Lang */
-/* Copyright (c) 1998, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-static int next_transposed_index (int *dims, int *max_dims, unsigned int num_dims)
-{
- int i;
-
- for (i = 0; i < (int) num_dims; i++)
- {
- int dims_i;
-
- dims_i = dims [i] + 1;
- if (dims_i != (int) max_dims [i])
- {
- dims [i] = dims_i;
- return 0;
- }
- dims [i] = 0;
- }
-
- return -1;
-}
-
-static SLang_Array_Type *allocate_transposed_array (SLang_Array_Type *at)
-{
- unsigned int num_elements;
- SLang_Array_Type *bt;
- VOID_STAR b_data;
-
- num_elements = at->num_elements;
- b_data = (VOID_STAR) SLmalloc (at->sizeof_type * num_elements);
- if (b_data == NULL)
- return NULL;
-
- bt = SLang_create_array (at->data_type, 0, b_data, at->dims, 2);
- if (bt == NULL)
- {
- SLfree ((char *)b_data);
- return NULL;
- }
-
- bt->dims[1] = at->dims[0];
- bt->dims[0] = at->dims[1];
-
- return bt;
-}
-
-#define GENERIC_TYPE float
-#define TRANSPOSE_2D_ARRAY transpose_floats
-#define GENERIC_TYPE_A float
-#define GENERIC_TYPE_B float
-#define GENERIC_TYPE_C float
-#define INNERPROD_FUNCTION innerprod_float_float
-#if SLANG_HAS_COMPLEX
-# define INNERPROD_COMPLEX_A innerprod_complex_float
-# define INNERPROD_A_COMPLEX innerprod_float_complex
-#endif
-#include "slarrfun.inc"
-
-#define GENERIC_TYPE double
-#define TRANSPOSE_2D_ARRAY transpose_doubles
-#define GENERIC_TYPE_A double
-#define GENERIC_TYPE_B double
-#define GENERIC_TYPE_C double
-#define INNERPROD_FUNCTION innerprod_double_double
-#if SLANG_HAS_COMPLEX
-# define INNERPROD_COMPLEX_A innerprod_complex_double
-# define INNERPROD_A_COMPLEX innerprod_double_complex
-#endif
-#include "slarrfun.inc"
-
-#define GENERIC_TYPE_A double
-#define GENERIC_TYPE_B float
-#define GENERIC_TYPE_C double
-#define INNERPROD_FUNCTION innerprod_double_float
-#include "slarrfun.inc"
-
-#define GENERIC_TYPE_A float
-#define GENERIC_TYPE_B double
-#define GENERIC_TYPE_C double
-#define INNERPROD_FUNCTION innerprod_float_double
-#include "slarrfun.inc"
-
-/* Finally pick up the complex_complex multiplication
- * and do the integers
- */
-#if SLANG_HAS_COMPLEX
-# define INNERPROD_COMPLEX_COMPLEX innerprod_complex_complex
-#endif
-#define GENERIC_TYPE int
-#define TRANSPOSE_2D_ARRAY transpose_ints
-#include "slarrfun.inc"
-
-#if SIZEOF_LONG != SIZEOF_INT
-# define GENERIC_TYPE long
-# define TRANSPOSE_2D_ARRAY transpose_longs
-# include "slarrfun.inc"
-#else
-# define transpose_longs transpose_ints
-#endif
-
-#if SIZEOF_SHORT != SIZEOF_INT
-# define GENERIC_TYPE short
-# define TRANSPOSE_2D_ARRAY transpose_shorts
-# include "slarrfun.inc"
-#else
-# define transpose_shorts transpose_ints
-#endif
-
-#define GENERIC_TYPE char
-#define TRANSPOSE_2D_ARRAY transpose_chars
-#include "slarrfun.inc"
-
-/* This routine works only with linear arrays */
-static SLang_Array_Type *transpose (SLang_Array_Type *at)
-{
- int dims [SLARRAY_MAX_DIMS];
- int *max_dims;
- unsigned int num_dims;
- SLang_Array_Type *bt;
- int i;
- unsigned int sizeof_type;
- int is_ptr;
- char *b_data;
-
- max_dims = at->dims;
- num_dims = at->num_dims;
-
- if ((at->num_elements == 0)
- || (num_dims == 1))
- {
- bt = SLang_duplicate_array (at);
- if (num_dims == 1) bt->num_dims = 2;
- goto transpose_dims;
- }
-
- /* For numeric arrays skip the overhead below */
- if (num_dims == 2)
- {
- bt = allocate_transposed_array (at);
- if (bt == NULL) return NULL;
-
- switch (at->data_type)
- {
- case SLANG_INT_TYPE:
- case SLANG_UINT_TYPE:
- return transpose_ints (at, bt);
- case SLANG_DOUBLE_TYPE:
- return transpose_doubles (at, bt);
- case SLANG_FLOAT_TYPE:
- return transpose_floats (at, bt);
- case SLANG_CHAR_TYPE:
- case SLANG_UCHAR_TYPE:
- return transpose_chars (at, bt);
- case SLANG_LONG_TYPE:
- case SLANG_ULONG_TYPE:
- return transpose_longs (at, bt);
- case SLANG_SHORT_TYPE:
- case SLANG_USHORT_TYPE:
- return transpose_shorts (at, bt);
- }
- }
- else
- {
- bt = SLang_create_array (at->data_type, 0, NULL, max_dims, num_dims);
- if (bt == NULL) return NULL;
- }
-
- sizeof_type = at->sizeof_type;
- is_ptr = (at->flags & SLARR_DATA_VALUE_IS_POINTER);
-
- memset ((char *)dims, 0, sizeof(dims));
-
- b_data = (char *) bt->data;
-
- do
- {
- if (-1 == _SLarray_aget_transfer_elem (at, dims, (VOID_STAR) b_data,
- sizeof_type, is_ptr))
- {
- SLang_free_array (bt);
- return NULL;
- }
- b_data += sizeof_type;
- }
- while (0 == next_transposed_index (dims, max_dims, num_dims));
-
- transpose_dims:
-
- num_dims = bt->num_dims;
- for (i = 0; i < (int) num_dims; i++)
- bt->dims[i] = max_dims [num_dims - i - 1];
-
- return bt;
-}
-
-static void array_transpose (SLang_Array_Type *at)
-{
- if (NULL != (at = transpose (at)))
- (void) SLang_push_array (at, 1);
-}
-
-static int get_inner_product_parms (SLang_Array_Type *a, int *dp,
- unsigned int *loops, unsigned int *other)
-{
- int num_dims;
- int d;
-
- d = *dp;
-
- num_dims = (int)a->num_dims;
- if (num_dims == 0)
- {
- SLang_verror (SL_INVALID_PARM, "Inner-product operation requires an array of at least 1 dimension.");
- return -1;
- }
-
- /* An index of -1 refers to last dimension */
- if (d == -1)
- d += num_dims;
- *dp = d;
-
- if (a->num_elements == 0)
- { /* [] # [] ==> [] */
- *loops = *other = 0;
- return 0;
- }
-
- *loops = a->num_elements / a->dims[d];
-
- if (d == 0)
- {
- *other = *loops; /* a->num_elements / a->dims[0]; */
- return 0;
- }
-
- *other = a->dims[d];
- return 0;
-}
-
-/* This routines takes two arrays A_i..j and B_j..k and produces a third
- * via C_i..k = A_i..j B_j..k.
- *
- * If A is a vector, and B is a 2-d matrix, then regard A as a 2-d matrix
- * with 1-column.
- */
-static void do_inner_product (void)
-{
- SLang_Array_Type *a, *b, *c;
- void (*fun)(SLang_Array_Type *, SLang_Array_Type *, SLang_Array_Type *,
- unsigned int, unsigned int, unsigned int, unsigned int,
- unsigned int);
- unsigned char c_type;
- int dims[SLARRAY_MAX_DIMS];
- int status;
- unsigned int a_loops, b_loops, b_inc, a_stride;
- int ai_dims, i, j;
- unsigned int num_dims, a_num_dims, b_num_dims;
- int ai, bi;
-
- /* The result of a inner_product will be either a float, double, or
- * a complex number.
- *
- * If an integer array is used, it will be promoted to a float.
- */
-
- switch (SLang_peek_at_stack1 ())
- {
- case SLANG_DOUBLE_TYPE:
- if (-1 == SLang_pop_array_of_type (&b, SLANG_DOUBLE_TYPE))
- return;
- break;
-
-#if SLANG_HAS_COMPLEX
- case SLANG_COMPLEX_TYPE:
- if (-1 == SLang_pop_array_of_type (&b, SLANG_COMPLEX_TYPE))
- return;
- break;
-#endif
- case SLANG_FLOAT_TYPE:
- default:
- if (-1 == SLang_pop_array_of_type (&b, SLANG_FLOAT_TYPE))
- return;
- break;
- }
-
- switch (SLang_peek_at_stack1 ())
- {
- case SLANG_DOUBLE_TYPE:
- status = SLang_pop_array_of_type (&a, SLANG_DOUBLE_TYPE);
- break;
-
-#if SLANG_HAS_COMPLEX
- case SLANG_COMPLEX_TYPE:
- status = SLang_pop_array_of_type (&a, SLANG_COMPLEX_TYPE);
- break;
-#endif
- case SLANG_FLOAT_TYPE:
- default:
- status = SLang_pop_array_of_type (&a, SLANG_FLOAT_TYPE);
- break;
- }
-
- if (status == -1)
- {
- SLang_free_array (b);
- return;
- }
-
- ai = -1; /* last index of a */
- bi = 0; /* first index of b */
- if ((-1 == get_inner_product_parms (a, &ai, &a_loops, &a_stride))
- || (-1 == get_inner_product_parms (b, &bi, &b_loops, &b_inc)))
- {
- SLang_verror (SL_TYPE_MISMATCH, "Array dimensions are not compatible for inner-product");
- goto free_and_return;
- }
-
- a_num_dims = a->num_dims;
- b_num_dims = b->num_dims;
-
- /* Coerse a 1-d vector to 2-d */
- if ((a_num_dims == 1)
- && (b_num_dims == 2)
- && (a->num_elements))
- {
- a_num_dims = 2;
- ai = 1;
- a_loops = a->num_elements;
- a_stride = 1;
- }
-
- if ((ai_dims = a->dims[ai]) != b->dims[bi])
- {
- SLang_verror (SL_TYPE_MISMATCH, "Array dimensions are not compatible for inner-product");
- goto free_and_return;
- }
-
- num_dims = a_num_dims + b_num_dims - 2;
- if (num_dims > SLARRAY_MAX_DIMS)
- {
- SLang_verror (SL_NOT_IMPLEMENTED,
- "Inner-product result exceed max allowed dimensions");
- goto free_and_return;
- }
-
- if (num_dims)
- {
- j = 0;
- for (i = 0; i < (int)a_num_dims; i++)
- if (i != ai) dims [j++] = a->dims[i];
- for (i = 0; i < (int)b_num_dims; i++)
- if (i != bi) dims [j++] = b->dims[i];
- }
- else
- {
- /* a scalar */
- num_dims = 1;
- dims[0] = 1;
- }
-
- c_type = 0; fun = NULL;
- switch (a->data_type)
- {
- case SLANG_FLOAT_TYPE:
- switch (b->data_type)
- {
- case SLANG_FLOAT_TYPE:
- c_type = SLANG_FLOAT_TYPE;
- fun = innerprod_float_float;
- break;
- case SLANG_DOUBLE_TYPE:
- c_type = SLANG_DOUBLE_TYPE;
- fun = innerprod_float_double;
- break;
-#if SLANG_HAS_COMPLEX
- case SLANG_COMPLEX_TYPE:
- c_type = SLANG_COMPLEX_TYPE;
- fun = innerprod_float_complex;
- break;
-#endif
- }
- break;
- case SLANG_DOUBLE_TYPE:
- switch (b->data_type)
- {
- case SLANG_FLOAT_TYPE:
- c_type = SLANG_DOUBLE_TYPE;
- fun = innerprod_double_float;
- break;
- case SLANG_DOUBLE_TYPE:
- c_type = SLANG_DOUBLE_TYPE;
- fun = innerprod_double_double;
- break;
-#if SLANG_HAS_COMPLEX
- case SLANG_COMPLEX_TYPE:
- c_type = SLANG_COMPLEX_TYPE;
- fun = innerprod_double_complex;
- break;
-#endif
- }
- break;
-#if SLANG_HAS_COMPLEX
- case SLANG_COMPLEX_TYPE:
- c_type = SLANG_COMPLEX_TYPE;
- switch (b->data_type)
- {
- case SLANG_FLOAT_TYPE:
- fun = innerprod_complex_float;
- break;
- case SLANG_DOUBLE_TYPE:
- fun = innerprod_complex_double;
- break;
- case SLANG_COMPLEX_TYPE:
- fun = innerprod_complex_complex;
- break;
- }
- break;
-#endif
- default:
- break;
- }
-
- if (NULL == (c = SLang_create_array (c_type, 0, NULL, dims, num_dims)))
- goto free_and_return;
-
- (*fun)(a, b, c, a_loops, a_stride, b_loops, b_inc, ai_dims);
-
- (void) SLang_push_array (c, 1);
- /* drop */
-
- free_and_return:
- SLang_free_array (a);
- SLang_free_array (b);
-}
-
-
-
-static SLang_Intrin_Fun_Type Array_Fun_Table [] =
-{
- MAKE_INTRINSIC_1("transpose", array_transpose, SLANG_VOID_TYPE, SLANG_ARRAY_TYPE),
- SLANG_END_INTRIN_FUN_TABLE
-};
-
-int SLang_init_array (void)
-{
- if (-1 == SLadd_intrin_fun_table (Array_Fun_Table, "__SLARRAY__"))
- return -1;
-#if SLANG_HAS_FLOAT
- _SLang_Matrix_Multiply = do_inner_product;
-#endif
- return 0;
-}
-
diff --git a/mdk-stage1/slang/slarrfun.inc b/mdk-stage1/slang/slarrfun.inc
deleted file mode 100644
index 348473a6f..000000000
--- a/mdk-stage1/slang/slarrfun.inc
+++ /dev/null
@@ -1,257 +0,0 @@
-/* -*- mode: C -*- */
-
-/* Some "inline" functions for generic scalar types */
-
-#ifdef TRANSPOSE_2D_ARRAY
-static SLang_Array_Type *TRANSPOSE_2D_ARRAY (SLang_Array_Type *at, SLang_Array_Type *bt)
-{
- GENERIC_TYPE *a_data, *b_data;
- int nr, nc, i;
-
- nr = at->dims[0];
- nc = at->dims[1];
-
- a_data = (GENERIC_TYPE *) at->data;
- b_data = (GENERIC_TYPE *) bt->data;
-
- for (i = 0; i < nr; i++)
- {
- GENERIC_TYPE *offset = b_data + i;
- int j;
- for (j = 0; j < nc; j++)
- {
- *offset = *a_data++;
- offset += nr;
- }
- }
- return bt;
-}
-#undef TRANSPOSE_2D_ARRAY
-#endif
-
-
-#ifdef INNERPROD_FUNCTION
-
-static void INNERPROD_FUNCTION
- (SLang_Array_Type *at, SLang_Array_Type *bt, SLang_Array_Type *ct,
- unsigned int a_loops, unsigned int a_stride,
- unsigned int b_loops, unsigned int b_inc,
- unsigned int inner_loops)
-{
- GENERIC_TYPE_A *a;
- GENERIC_TYPE_B *b;
- GENERIC_TYPE_C *c;
-
- c = (GENERIC_TYPE_C *) ct->data;
- b = (GENERIC_TYPE_B *) bt->data;
- a = (GENERIC_TYPE_A *) at->data;
-
- while (a_loops--)
- {
- GENERIC_TYPE_B *bb;
- unsigned int j;
-
- bb = b;
-
- for (j = 0; j < inner_loops; j++)
- {
- double x = (double) a[j];
-
- if (x != 0.0)
- {
- unsigned int k;
-
- for (k = 0; k < b_loops; k++)
- c[k] += x * bb[k];
- }
- bb += b_inc;
- }
- c += b_loops;
- a += a_stride;
- }
-}
-#undef INNERPROD_FUNCTION
-
-#undef GENERIC_TYPE_A
-#undef GENERIC_TYPE_B
-#undef GENERIC_TYPE_C
-#endif
-
-#ifdef INNERPROD_COMPLEX_A
-static void INNERPROD_COMPLEX_A
- (SLang_Array_Type *at, SLang_Array_Type *bt, SLang_Array_Type *ct,
- unsigned int a_loops, unsigned int a_stride,
- unsigned int b_loops, unsigned int b_inc,
- unsigned int inner_loops)
-{
- double *a;
- GENERIC_TYPE *b;
- double *c;
-
- c = (double *) ct->data;
- b = (GENERIC_TYPE *) bt->data;
- a = (double *) at->data;
-
- a_stride *= 2;
-
- while (a_loops--)
- {
- GENERIC_TYPE *bb;
- unsigned int bb_loops;
-
- bb = b;
- bb_loops = b_loops;
-
- while (bb_loops--)
- {
- double real_sum;
- double imag_sum;
- unsigned int iloops;
- double *aa;
- GENERIC_TYPE *bbb;
-
- aa = a;
- bbb = bb;
- iloops = inner_loops;
-
- real_sum = 0.0;
- imag_sum = 0.0;
- while (iloops--)
- {
- real_sum += aa[0] * (double)bbb[0];
- imag_sum += aa[1] * (double)bbb[0];
- aa += 2;
- bbb += b_inc;
- }
-
- *c++ = real_sum;
- *c++ = imag_sum;
- bb++;
- }
-
- a += a_stride;
- }
-}
-
-static void INNERPROD_A_COMPLEX
- (SLang_Array_Type *at, SLang_Array_Type *bt, SLang_Array_Type *ct,
- unsigned int a_loops, unsigned int a_stride,
- unsigned int b_loops, unsigned int b_inc,
- unsigned int inner_loops)
-{
- GENERIC_TYPE *a;
- double *b;
- double *c;
-
- c = (double *) ct->data;
- b = (double *) bt->data;
- a = (GENERIC_TYPE *) at->data;
-
- b_inc *= 2;
-
- while (a_loops--)
- {
- double *bb;
- unsigned int bb_loops;
-
- bb = b;
- bb_loops = b_loops;
-
- while (bb_loops--)
- {
- double real_sum;
- double imag_sum;
- unsigned int iloops;
- GENERIC_TYPE *aa;
- double *bbb;
-
- aa = a;
- bbb = bb;
- iloops = inner_loops;
-
- real_sum = 0.0;
- imag_sum = 0.0;
- while (iloops--)
- {
- real_sum += (double)aa[0] * bbb[0];
- imag_sum += (double)aa[0] * bbb[1];
- aa += 1;
- bbb += b_inc;
- }
-
- *c++ = real_sum;
- *c++ = imag_sum;
- bb += 2;
- }
-
- a += a_stride;
- }
-}
-
-#undef INNERPROD_A_COMPLEX
-#undef INNERPROD_COMPLEX_A
-#endif /* INNERPROD_COMPLEX_A */
-
-
-#ifdef INNERPROD_COMPLEX_COMPLEX
-static void INNERPROD_COMPLEX_COMPLEX
- (SLang_Array_Type *at, SLang_Array_Type *bt, SLang_Array_Type *ct,
- unsigned int a_loops, unsigned int a_stride,
- unsigned int b_loops, unsigned int b_inc,
- unsigned int inner_loops)
-{
- double *a;
- double *b;
- double *c;
-
- c = (double *) ct->data;
- b = (double *) bt->data;
- a = (double *) at->data;
-
- a_stride *= 2;
- b_inc *= 2;
-
- while (a_loops--)
- {
- double *bb;
- unsigned int bb_loops;
-
- bb = b;
- bb_loops = b_loops;
-
- while (bb_loops--)
- {
- double real_sum;
- double imag_sum;
- unsigned int iloops;
- double *aa;
- double *bbb;
-
- aa = a;
- bbb = bb;
- iloops = inner_loops;
-
- real_sum = 0.0;
- imag_sum = 0.0;
- while (iloops--)
- {
- real_sum += aa[0]*bbb[0] - aa[1]*bbb[1];
- imag_sum += aa[0]*bbb[1] + aa[1]*bbb[0];
- aa += 2;
- bbb += b_inc;
- }
-
- *c++ = real_sum;
- *c++ = imag_sum;
- bb += 2;
- }
-
- a += a_stride;
- }
-}
-#undef INNERPROD_COMPLEX_COMPLEX
-#endif
-
-#ifdef GENERIC_TYPE
-# undef GENERIC_TYPE
-#endif
diff --git a/mdk-stage1/slang/slarrmis.c b/mdk-stage1/slang/slarrmis.c
deleted file mode 100644
index 330dcb53f..000000000
--- a/mdk-stage1/slang/slarrmis.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Misc Array Functions */
-/* Copyright (c) 1997, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-int SLang_get_array_element (SLang_Array_Type *at, int *indices, VOID_STAR data)
-{
- int is_ptr;
-
- if ((at == NULL)
- || (indices == NULL)
- || (data == NULL))
- return -1;
-
- is_ptr = (at->flags & SLARR_DATA_VALUE_IS_POINTER);
- if (is_ptr) *(VOID_STAR *) data = NULL;
- return _SLarray_aget_transfer_elem (at, indices, data, at->sizeof_type, is_ptr);
-}
-
-int SLang_set_array_element (SLang_Array_Type *at, int *indices, VOID_STAR data)
-{
- if ((at == NULL)
- || (indices == NULL)
- || (data == NULL))
- return -1;
-
- return _SLarray_aput_transfer_elem (at, indices, data, at->sizeof_type,
- at->flags & SLARR_DATA_VALUE_IS_POINTER);
-}
-
diff --git a/mdk-stage1/slang/slassoc.c b/mdk-stage1/slang/slassoc.c
deleted file mode 100644
index 5997458d2..000000000
--- a/mdk-stage1/slang/slassoc.c
+++ /dev/null
@@ -1,713 +0,0 @@
-/* Copyright (c) 1998, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-#include "slinclud.h"
-
-#define SL_APP_WANTS_FOREACH
-#include "slang.h"
-#include "_slang.h"
-
-#define USE_NEW_ANYTYPE_CODE 1
-
-typedef struct _SLAssoc_Array_Element_Type
-{
- char *key; /* slstring */
- struct _SLAssoc_Array_Element_Type *next;
- SLang_Object_Type value;
-}
-_SLAssoc_Array_Element_Type;
-
-typedef struct
-{
- _SLAssoc_Array_Element_Type *elements[SLASSOC_HASH_TABLE_SIZE];
- SLang_Object_Type default_value;
- unsigned int num_elements;
-#define HAS_DEFAULT_VALUE 1
- unsigned int flags;
- unsigned char type;
-}
-SLang_Assoc_Array_Type;
-
-#define USE_CACHED_STRING 1
-
-#if USE_CACHED_STRING
-static char *Cached_String;
-static SLang_Object_Type *Cached_Obj;
-static SLang_Assoc_Array_Type *Cached_Array;
-#endif
-
-static SLang_Assoc_Array_Type *alloc_assoc_array (unsigned char type, int has_default_value)
-{
- SLang_Assoc_Array_Type *a;
-
- a = (SLang_Assoc_Array_Type *)SLmalloc (sizeof (SLang_Assoc_Array_Type));
- if (a == NULL)
- {
- if (has_default_value)
- SLdo_pop_n (1);
- return NULL;
- }
-
- memset ((char *) a, 0, sizeof (SLang_Assoc_Array_Type));
- a->type = type;
-
- if (has_default_value)
- {
- if (
-#if USE_NEW_ANYTYPE_CODE
- ((type != SLANG_ANY_TYPE) && (-1 == SLclass_typecast (type, 1, 1)))
-#else
- (-1 == SLclass_typecast (type, 1, 1))
-#endif
- || (-1 == SLang_pop (&a->default_value)))
- {
- SLfree ((char *) a);
- return NULL;
- }
-
- a->flags |= HAS_DEFAULT_VALUE;
- }
- return a;
-}
-
-static void free_element (_SLAssoc_Array_Element_Type *e)
-{
- if (e == NULL)
- return;
-
- SLang_free_object (&e->value);
- SLang_free_slstring (e->key);
-#if USE_CACHED_STRING
- if (e->key == Cached_String)
- Cached_String = NULL;
-#endif
- SLfree ((char *)e);
-}
-
-static void delete_assoc_array (SLang_Assoc_Array_Type *a)
-{
- unsigned int i;
-
- if (a == NULL) return;
-
- for (i = 0; i < SLASSOC_HASH_TABLE_SIZE; i++)
- {
- _SLAssoc_Array_Element_Type *e;
-
- e = a->elements[i];
- while (e != NULL)
- {
- _SLAssoc_Array_Element_Type *next_e;
-
- next_e = e->next;
- free_element (e);
- e = next_e;
- }
- }
- if (a->flags & HAS_DEFAULT_VALUE)
- SLang_free_object (&a->default_value);
-
- SLfree ((char *) a);
-}
-
-_INLINE_
-static SLang_Object_Type *
-find_element (SLang_Assoc_Array_Type *a, char *str, unsigned long hash)
-{
- unsigned int h;
- _SLAssoc_Array_Element_Type *e;
-
- h = (unsigned int) (hash % SLASSOC_HASH_TABLE_SIZE);
- e = a->elements[h];
-
- while (e != NULL)
- {
- if (str == e->key) /* slstrings can be compared this way */
- {
-#if USE_CACHED_STRING
- Cached_String = str;
- Cached_Obj = &e->value;
- Cached_Array = a;
-#endif
- return &e->value;
- }
-
- e = e->next;
- }
-
- return NULL;
-}
-
-static _SLAssoc_Array_Element_Type *
-create_element (SLang_Assoc_Array_Type *a, char *str, unsigned long hash)
-{
- unsigned int h;
- _SLAssoc_Array_Element_Type *e;
-
- e = (_SLAssoc_Array_Element_Type *) SLmalloc (sizeof (_SLAssoc_Array_Element_Type));
- if (e == NULL)
- return NULL;
-
- memset ((char *) e, 0, sizeof (_SLAssoc_Array_Element_Type));
- h = (unsigned int) (hash % SLASSOC_HASH_TABLE_SIZE);
-
- if (NULL == (str = _SLstring_dup_hashed_string (str, hash)))
- {
- SLfree ((char *) e);
- return NULL;
- }
-
- e->key = str;
- e->next = a->elements[h];
- a->elements[h] = e;
-
- a->num_elements += 1;
-#if USE_CACHED_STRING
- Cached_String = str;
- Cached_Obj = &e->value;
- Cached_Array = a;
-#endif
- return e;
-}
-
-static int store_object (SLang_Assoc_Array_Type *a, char *s, SLang_Object_Type *obj)
-{
- unsigned long hash;
- SLang_Object_Type *v;
-
-#if USE_CACHED_STRING
- if ((s == Cached_String) && (a == Cached_Array))
- {
- v = Cached_Obj;
- SLang_free_object (v);
- }
- else
- {
-#endif
- hash = _SLcompute_string_hash (s);
- if (NULL != (v = find_element (a, s, hash)))
- SLang_free_object (v);
- else
- {
- _SLAssoc_Array_Element_Type *e;
-
- e = create_element (a, s, hash);
- if (e == NULL)
- return -1;
-
- v = &e->value;
- }
-#if USE_CACHED_STRING
- }
-#endif
-
- *v = *obj;
-
- return 0;
-}
-
-static void assoc_destroy (unsigned char type, VOID_STAR ptr)
-{
- (void) type;
- delete_assoc_array ((SLang_Assoc_Array_Type *) ptr);
-}
-
-static int pop_index (unsigned int num_indices,
- SLang_MMT_Type **mmt,
- SLang_Assoc_Array_Type **a,
- char **str)
-{
- if (NULL == (*mmt = SLang_pop_mmt (SLANG_ASSOC_TYPE)))
- {
- *a = NULL;
- *str = NULL;
- return -1;
- }
-
- if ((num_indices != 1)
- || (-1 == SLang_pop_slstring (str)))
- {
- SLang_verror (SL_NOT_IMPLEMENTED,
- "Assoc_Type arrays require a single string index");
- SLang_free_mmt (*mmt);
- *mmt = NULL;
- *a = NULL;
- *str = NULL;
- return -1;
- }
-
- *a = (SLang_Assoc_Array_Type *) SLang_object_from_mmt (*mmt);
- return 0;
-}
-
-static int assoc_aget (unsigned char type, unsigned int num_indices)
-{
- SLang_MMT_Type *mmt;
- char *str;
- SLang_Assoc_Array_Type *a;
- SLang_Object_Type *obj;
- int ret;
-
- (void) type;
-
- if (-1 == pop_index (num_indices, &mmt, &a, &str))
- return -1;
-
-#if USE_CACHED_STRING
- if ((str == Cached_String) && (a == Cached_Array))
- obj = Cached_Obj;
- else
-#endif
- obj = find_element (a, str, _SLcompute_string_hash (str));
-
- if ((obj == NULL)
- && (a->flags & HAS_DEFAULT_VALUE))
- obj = &a->default_value;
-
- if (obj == NULL)
- {
- SLang_verror (SL_INTRINSIC_ERROR,
- "No such element in Assoc Array: %s", str);
- ret = -1;
- }
- else
- {
-#if _SLANG_OPTIMIZE_FOR_SPEED
- if (SLANG_CLASS_TYPE_SCALAR == _SLclass_Class_Type[obj->data_type])
- ret = SLang_push (obj);
-#endif
- else
- ret = _SLpush_slang_obj (obj);
- }
-
- SLang_free_slstring (str);
- SLang_free_mmt (mmt);
- return ret;
-}
-
-static int assoc_aput (unsigned char type, unsigned int num_indices)
-{
- SLang_MMT_Type *mmt;
- char *str;
- SLang_Assoc_Array_Type *a;
- SLang_Object_Type obj;
- int ret;
-
- (void) type;
-
- if (-1 == pop_index (num_indices, &mmt, &a, &str))
- return -1;
-
- ret = -1;
-
- if (0 == SLang_pop (&obj))
- {
- if ((obj.data_type != a->type)
-#if USE_NEW_ANYTYPE_CODE
- && (a->type != SLANG_ANY_TYPE)
-#endif
- )
- {
- (void) SLang_push (&obj);
- if ((-1 == SLclass_typecast (a->type, 1, 1))
- || (-1 == SLang_pop (&obj)))
- goto the_return;
- }
-
- if (-1 == store_object (a, str, &obj))
- SLang_free_object (&obj);
- else
- ret = 0;
- }
-
- the_return:
- SLang_free_slstring (str);
- SLang_free_mmt (mmt);
- return ret;
-}
-
-static int assoc_anew (unsigned char type, unsigned int num_dims)
-{
- SLang_MMT_Type *mmt;
- SLang_Assoc_Array_Type *a;
- int has_default_value;
-
- has_default_value = 0;
- switch (num_dims)
- {
- case 0:
- type = SLANG_ANY_TYPE;
- break;
- case 2:
- (void) SLreverse_stack (2);
- has_default_value = 1;
- /* drop */
- case 1:
- if (0 == _SLang_pop_datatype (&type))
- break;
- num_dims--;
- /* drop */
- default:
- SLdo_pop_n (num_dims);
- SLang_verror (SL_SYNTAX_ERROR, "Usage: Assoc_Type [DataType_Type]");
- return -1;
- }
-
- a = alloc_assoc_array (type, has_default_value);
- if (a == NULL)
- return -1;
-
- if (NULL == (mmt = SLang_create_mmt (SLANG_ASSOC_TYPE, (VOID_STAR) a)))
- {
- delete_assoc_array (a);
- return -1;
- }
-
- if (-1 == SLang_push_mmt (mmt))
- {
- SLang_free_mmt (mmt);
- return -1;
- }
-
- return 0;
-}
-
-static void assoc_get_keys (SLang_Assoc_Array_Type *a)
-{
- SLang_Array_Type *at;
- int num;
- unsigned int i, j;
- char **data;
-
- /* Note: If support for threads is added, then we need to modify this
- * algorithm to prevent another thread from modifying the array.
- * However, that should be handled in inner_interp.
- */
- num = a->num_elements;
-
- if (NULL == (at = SLang_create_array (SLANG_STRING_TYPE, 0, NULL, &num, 1)))
- return;
-
- data = (char **)at->data;
-
- i = 0;
- for (j = 0; j < SLASSOC_HASH_TABLE_SIZE; j++)
- {
- _SLAssoc_Array_Element_Type *e;
-
- e = a->elements[j];
- while (e != NULL)
- {
- /* Next cannot fail because it is an slstring */
- data [i] = SLang_create_slstring (e->key);
- e = e->next;
- i++;
- }
- }
- (void) SLang_push_array (at, 1);
-}
-
-static int
-transfer_element (SLang_Class_Type *cl, VOID_STAR dest_data,
- SLang_Object_Type *obj)
-{
- unsigned int sizeof_type;
- VOID_STAR src_data;
-
-#if USE_NEW_ANYTYPE_CODE
- if (cl->cl_data_type == SLANG_ANY_TYPE)
- {
- SLang_Any_Type *any;
-
- if ((-1 == _SLpush_slang_obj (obj))
- || (-1 == SLang_pop_anytype (&any)))
- return -1;
-
- *(SLang_Any_Type **)dest_data = any;
- return 0;
- }
-#endif
- /* Optimize for scalar */
- if (cl->cl_class_type == SLANG_CLASS_TYPE_SCALAR)
- {
- sizeof_type = cl->cl_sizeof_type;
- memcpy ((char *) dest_data, (char *)&obj->v, sizeof_type);
- return 0;
- }
-
- src_data = _SLclass_get_ptr_to_value (cl, obj);
-
- if (-1 == (*cl->cl_acopy) (cl->cl_data_type, src_data, dest_data))
- return -1;
-
- return 0;
-}
-
-static void assoc_get_values (SLang_Assoc_Array_Type *a)
-{
- SLang_Array_Type *at;
- int num;
- unsigned int i, j;
- char *dest_data;
- unsigned char type;
- SLang_Class_Type *cl;
- unsigned int sizeof_type;
-
- /* Note: If support for threads is added, then we need to modify this
- * algorithm to prevent another thread from modifying the array.
- * However, that should be handled in inner_interp.
- */
- num = a->num_elements;
- type = a->type;
-
- cl = _SLclass_get_class (type);
- sizeof_type = cl->cl_sizeof_type;
-
- if (NULL == (at = SLang_create_array (type, 0, NULL, &num, 1)))
- return;
-
- dest_data = (char *)at->data;
-
- i = 0;
- for (j = 0; j < SLASSOC_HASH_TABLE_SIZE; j++)
- {
- _SLAssoc_Array_Element_Type *e;
-
- e = a->elements[j];
- while (e != NULL)
- {
- if (-1 == transfer_element (cl, (VOID_STAR) dest_data, &e->value))
- {
- SLang_free_array (at);
- return;
- }
-
- dest_data += sizeof_type;
- e = e->next;
- i++;
- }
- }
- (void) SLang_push_array (at, 1);
-}
-
-static int assoc_key_exists (SLang_Assoc_Array_Type *a, char *key)
-{
- return (NULL != find_element (a, key, _SLcompute_string_hash (key)));
-}
-
-static void assoc_delete_key (SLang_Assoc_Array_Type *a, char *key)
-{
- unsigned int h;
- _SLAssoc_Array_Element_Type *v, *v0;
-
- h = (unsigned int) (_SLcompute_string_hash (key) % SLASSOC_HASH_TABLE_SIZE);
-
- v0 = NULL;
- v = a->elements[h];
- while (v != NULL)
- {
- if (v->key == key)
- {
- if (v0 != NULL)
- v0->next = v->next;
- else
- a->elements[h] = v->next;
-
- free_element (v);
- a->num_elements -= 1;
- return;
- }
- v0 = v;
- v = v->next;
- }
-
- /* No such element. Let it pass with no error. */
-}
-
-#define A SLANG_ASSOC_TYPE
-#define S SLANG_STRING_TYPE
-static SLang_Intrin_Fun_Type Assoc_Table [] =
-{
- MAKE_INTRINSIC_1("assoc_get_keys", assoc_get_keys, SLANG_VOID_TYPE, A),
- MAKE_INTRINSIC_1("assoc_get_values", assoc_get_values, SLANG_VOID_TYPE, A),
- MAKE_INTRINSIC_2("assoc_key_exists", assoc_key_exists, SLANG_INT_TYPE, A, S),
- MAKE_INTRINSIC_2("assoc_delete_key", assoc_delete_key, SLANG_VOID_TYPE, A, S),
-
- SLANG_END_INTRIN_FUN_TABLE
-};
-#undef A
-#undef S
-
-static int assoc_length (unsigned char type, VOID_STAR v, unsigned int *len)
-{
- SLang_Assoc_Array_Type *a;
-
- (void) type;
- a = (SLang_Assoc_Array_Type *) SLang_object_from_mmt (*(SLang_MMT_Type **)v);
- *len = a->num_elements;
- return 0;
-}
-
-struct _SLang_Foreach_Context_Type
-{
- SLang_MMT_Type *mmt;
- SLang_Assoc_Array_Type *a;
- unsigned int this_hash_index;
- unsigned int next_same_hash_index;
-#define CTX_WRITE_KEYS 1
-#define CTX_WRITE_VALUES 2
- unsigned char flags;
-};
-
-static SLang_Foreach_Context_Type *
-cl_foreach_open (unsigned char type, unsigned int num)
-{
- SLang_Foreach_Context_Type *c;
- unsigned char flags;
- SLang_MMT_Type *mmt;
-
- (void) type;
-
- if (NULL == (mmt = SLang_pop_mmt (SLANG_ASSOC_TYPE)))
- return NULL;
-
- flags = 0;
-
- while (num--)
- {
- char *s;
-
- if (-1 == SLang_pop_slstring (&s))
- {
- SLang_free_mmt (mmt);
- return NULL;
- }
-
- if (0 == strcmp (s, "keys"))
- flags |= CTX_WRITE_KEYS;
- else if (0 == strcmp (s, "values"))
- flags |= CTX_WRITE_VALUES;
- else
- {
- SLang_verror (SL_NOT_IMPLEMENTED,
- "using '%s' not supported by SLassoc_Type",
- s);
- SLang_free_slstring (s);
- SLang_free_mmt (mmt);
- return NULL;
- }
-
- SLang_free_slstring (s);
- }
-
- if (NULL == (c = (SLang_Foreach_Context_Type *) SLmalloc (sizeof (SLang_Foreach_Context_Type))))
- {
- SLang_free_mmt (mmt);
- return NULL;
- }
-
- memset ((char *) c, 0, sizeof (SLang_Foreach_Context_Type));
-
- if (flags == 0) flags = CTX_WRITE_VALUES|CTX_WRITE_KEYS;
-
- c->flags = flags;
- c->mmt = mmt;
- c->a = (SLang_Assoc_Array_Type *) SLang_object_from_mmt (mmt);
-
- return c;
-}
-
-static void cl_foreach_close (unsigned char type, SLang_Foreach_Context_Type *c)
-{
- (void) type;
- if (c == NULL) return;
- SLang_free_mmt (c->mmt);
- SLfree ((char *) c);
-}
-
-static int cl_foreach (unsigned char type, SLang_Foreach_Context_Type *c)
-{
- SLang_Assoc_Array_Type *a;
- _SLAssoc_Array_Element_Type *e;
- unsigned int i, j;
-
- (void) type;
-
- if (c == NULL)
- return -1;
-
- a = c->a;
-
- i = c->this_hash_index;
- if (i >= SLASSOC_HASH_TABLE_SIZE)
- return 0;
-
- e = a->elements[i];
-
- j = c->next_same_hash_index;
- c->next_same_hash_index = j + 1;
-
- while ((j > 0) && (e != NULL))
- {
- j--;
- e = e->next;
- }
-
- if (e == NULL)
- {
- do
- {
- i++;
- if (i >= SLASSOC_HASH_TABLE_SIZE)
- return 0; /* no more */
- }
- while (a->elements [i] == NULL);
-
- e = a->elements[i];
- c->this_hash_index = i;
- c->next_same_hash_index = 1;
- }
-
- if ((c->flags & CTX_WRITE_KEYS)
- && (-1 == SLang_push_string (e->key)))
- return -1;
-
- if ((c->flags & CTX_WRITE_VALUES)
- && (-1 == _SLpush_slang_obj (&e->value)))
- return -1;
-
- /* keep going */
- return 1;
-}
-
-int SLang_init_slassoc (void)
-{
- SLang_Class_Type *cl;
-
- if (SLclass_is_class_defined (SLANG_ASSOC_TYPE))
- return 0;
-
- if (NULL == (cl = SLclass_allocate_class ("Assoc_Type")))
- return -1;
-
- (void) SLclass_set_destroy_function (cl, assoc_destroy);
- (void) SLclass_set_aput_function (cl, assoc_aput);
- (void) SLclass_set_aget_function (cl, assoc_aget);
- (void) SLclass_set_anew_function (cl, assoc_anew);
- cl->cl_length = assoc_length;
- cl->cl_foreach_open = cl_foreach_open;
- cl->cl_foreach_close = cl_foreach_close;
- cl->cl_foreach = cl_foreach;
-
- if (-1 == SLclass_register_class (cl, SLANG_ASSOC_TYPE, sizeof (SLang_Assoc_Array_Type), SLANG_CLASS_TYPE_MMT))
- return -1;
-
- if (-1 == SLadd_intrin_fun_table (Assoc_Table, "__SLASSOC__"))
- return -1;
-
- return 0;
-}
-
diff --git a/mdk-stage1/slang/slbstr.c b/mdk-stage1/slang/slbstr.c
deleted file mode 100644
index b4b8c4c51..000000000
--- a/mdk-stage1/slang/slbstr.c
+++ /dev/null
@@ -1,615 +0,0 @@
-/* Copyright (c) 1998, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-struct _SLang_BString_Type
-{
- unsigned int num_refs;
- unsigned int len;
- int ptr_type;
-#define IS_SLSTRING 1
-#define IS_MALLOCED 2
-#define IS_NOT_TO_BE_FREED 3
- union
- {
- unsigned char bytes[1];
- unsigned char *ptr;
- }
- v;
-};
-
-#define BS_GET_POINTER(b) ((b)->ptr_type ? (b)->v.ptr : (b)->v.bytes)
-
-static SLang_BString_Type *create_bstring_of_type (char *bytes, unsigned int len, int type)
-{
- SLang_BString_Type *b;
- unsigned int size;
-
- size = sizeof(SLang_BString_Type);
- if (type == 0)
- size += len;
-
- if (NULL == (b = (SLang_BString_Type *)SLmalloc (size)))
- return NULL;
-
- b->len = len;
- b->num_refs = 1;
- b->ptr_type = type;
-
- switch (type)
- {
- case 0:
- if (bytes != NULL) memcpy ((char *) b->v.bytes, bytes, len);
- /* Now \0 terminate it because we want to also use it as a C string
- * whenever possible. Note that sizeof(SLang_BString_Type) includes
- * space for 1 character and we allocated len extra bytes. Thus, it is
- * ok to add a \0 to the end.
- */
- b->v.bytes[len] = 0;
- break;
-
- case IS_SLSTRING:
- if (NULL == (b->v.ptr = (unsigned char *)SLang_create_nslstring (bytes, len)))
- {
- SLfree ((char *) b);
- return NULL;
- }
- break;
-
- case IS_MALLOCED:
- case IS_NOT_TO_BE_FREED:
- b->v.ptr = (unsigned char *)bytes;
- bytes [len] = 0; /* NULL terminate */
- break;
- }
-
- return b;
-}
-
-SLang_BString_Type *
-SLbstring_create (unsigned char *bytes, unsigned int len)
-{
- return create_bstring_of_type ((char *)bytes, len, 0);
-}
-
-/* Note that ptr must be len + 1 bytes long for \0 termination */
-SLang_BString_Type *
-SLbstring_create_malloced (unsigned char *ptr, unsigned int len, int free_on_error)
-{
- SLang_BString_Type *b;
-
- if (ptr == NULL)
- return NULL;
-
- if (NULL == (b = create_bstring_of_type ((char *)ptr, len, IS_MALLOCED)))
- {
- if (free_on_error)
- SLfree ((char *) ptr);
- }
- return b;
-}
-
-SLang_BString_Type *SLbstring_create_slstring (char *s)
-{
- if (s == NULL)
- return NULL;
-
- return create_bstring_of_type (s, strlen (s), IS_SLSTRING);
-}
-
-SLang_BString_Type *SLbstring_dup (SLang_BString_Type *b)
-{
- if (b != NULL)
- b->num_refs += 1;
-
- return b;
-}
-
-unsigned char *SLbstring_get_pointer (SLang_BString_Type *b, unsigned int *len)
-{
- if (b == NULL)
- {
- *len = 0;
- return NULL;
- }
- *len = b->len;
- return BS_GET_POINTER(b);
-}
-
-void SLbstring_free (SLang_BString_Type *b)
-{
- if (b == NULL)
- return;
-
- if (b->num_refs > 1)
- {
- b->num_refs -= 1;
- return;
- }
-
- switch (b->ptr_type)
- {
- case 0:
- case IS_NOT_TO_BE_FREED:
- default:
- break;
-
- case IS_SLSTRING:
- SLang_free_slstring ((char *)b->v.ptr);
- break;
-
- case IS_MALLOCED:
- SLfree ((char *)b->v.ptr);
- break;
- }
-
- SLfree ((char *) b);
-}
-
-int SLang_pop_bstring (SLang_BString_Type **b)
-{
- return SLclass_pop_ptr_obj (SLANG_BSTRING_TYPE, (VOID_STAR *)b);
-}
-
-int SLang_push_bstring (SLang_BString_Type *b)
-{
- if (b == NULL)
- return SLang_push_null ();
-
- b->num_refs += 1;
-
- if (0 == SLclass_push_ptr_obj (SLANG_BSTRING_TYPE, (VOID_STAR)b))
- return 0;
-
- b->num_refs -= 1;
- return -1;
-}
-
-static int
-bstring_bstring_bin_op_result (int op, unsigned char a, unsigned char b,
- unsigned char *c)
-{
- (void) a;
- (void) b;
- switch (op)
- {
- default:
- return 0;
-
- case SLANG_PLUS:
- *c = SLANG_BSTRING_TYPE;
- break;
-
- case SLANG_GT:
- case SLANG_GE:
- case SLANG_LT:
- case SLANG_LE:
- case SLANG_EQ:
- case SLANG_NE:
- *c = SLANG_CHAR_TYPE;
- break;
- }
- return 1;
-}
-
-static int compare_bstrings (SLang_BString_Type *a, SLang_BString_Type *b)
-{
- unsigned int len;
- int ret;
-
- len = a->len;
- if (b->len < len) len = b->len;
-
- ret = memcmp ((char *)BS_GET_POINTER(b), (char *)BS_GET_POINTER(a), len);
- if (ret != 0)
- return ret;
-
- if (a->len > b->len)
- return 1;
- if (a->len == b->len)
- return 0;
-
- return -1;
-}
-
-static SLang_BString_Type *
-concat_bstrings (SLang_BString_Type *a, SLang_BString_Type *b)
-{
- unsigned int len;
- SLang_BString_Type *c;
- char *bytes;
-
- len = a->len + b->len;
-
- if (NULL == (c = SLbstring_create (NULL, len)))
- return NULL;
-
- bytes = (char *)BS_GET_POINTER(c);
-
- memcpy (bytes, (char *)BS_GET_POINTER(a), a->len);
- memcpy (bytes + a->len, (char *)BS_GET_POINTER(b), b->len);
-
- return c;
-}
-
-static void free_n_bstrings (SLang_BString_Type **a, unsigned int n)
-{
- unsigned int i;
-
- if (a == NULL) return;
-
- for (i = 0; i < n; i++)
- {
- SLbstring_free (a[i]);
- a[i] = NULL;
- }
-}
-
-static int
-bstring_bstring_bin_op (int op,
- unsigned char a_type, VOID_STAR ap, unsigned int na,
- unsigned char b_type, VOID_STAR bp, unsigned int nb,
- VOID_STAR cp)
-{
- char *ic;
- SLang_BString_Type **a, **b, **c;
- unsigned int n, n_max;
- unsigned int da, db;
-
- (void) a_type;
- (void) b_type;
-
- if (na == 1) da = 0; else da = 1;
- if (nb == 1) db = 0; else db = 1;
-
- if (na > nb) n_max = na; else n_max = nb;
-
- a = (SLang_BString_Type **) ap;
- b = (SLang_BString_Type **) bp;
- for (n = 0; n < n_max; n++)
- {
- if ((*a == NULL) || (*b == NULL))
- {
- SLang_verror (SL_VARIABLE_UNINITIALIZED,
- "Binary string element[%u] not initialized for binary operation", n);
- return -1;
- }
- a += da; b += db;
- }
-
- a = (SLang_BString_Type **) ap;
- b = (SLang_BString_Type **) bp;
- ic = (char *) cp;
- c = NULL;
-
- switch (op)
- {
- case SLANG_PLUS:
- /* Concat */
- c = (SLang_BString_Type **) cp;
- for (n = 0; n < n_max; n++)
- {
- if (NULL == (c[n] = concat_bstrings (*a, *b)))
- goto return_error;
-
- a += da; b += db;
- }
- break;
-
- case SLANG_NE:
- for (n = 0; n < n_max; n++)
- {
- ic [n] = (0 != compare_bstrings (*a, *b));
- a += da;
- b += db;
- }
- break;
- case SLANG_GT:
- for (n = 0; n < n_max; n++)
- {
- ic [n] = (compare_bstrings (*a, *b) > 0);
- a += da;
- b += db;
- }
- break;
- case SLANG_GE:
- for (n = 0; n < n_max; n++)
- {
- ic [n] = (compare_bstrings (*a, *b) >= 0);
- a += da;
- b += db;
- }
- break;
- case SLANG_LT:
- for (n = 0; n < n_max; n++)
- {
- ic [n] = (compare_bstrings (*a, *b) < 0);
- a += da;
- b += db;
- }
- break;
- case SLANG_LE:
- for (n = 0; n < n_max; n++)
- {
- ic [n] = (compare_bstrings (*a, *b) <= 0);
- a += da;
- b += db;
- }
- break;
- case SLANG_EQ:
- for (n = 0; n < n_max; n++)
- {
- ic [n] = (compare_bstrings (*a, *b) == 0);
- a += da;
- b += db;
- }
- break;
- }
- return 1;
-
- return_error:
- if (c != NULL)
- {
- free_n_bstrings (c, n);
- while (n < n_max)
- {
- c[n] = NULL;
- n++;
- }
- }
- return -1;
-}
-
-/* If preserve_ptr, then use a[i] as the bstring data. See how this function
- * is called by the binary op routines for why.
- */
-static SLang_BString_Type **
-make_n_bstrings (SLang_BString_Type **b, char **a, unsigned int n, int ptr_type)
-{
- unsigned int i;
- int malloc_flag;
-
- malloc_flag = 0;
- if (b == NULL)
- {
- b = (SLang_BString_Type **) SLmalloc ((n + 1) * sizeof (SLang_BString_Type *));
- if (b == NULL)
- return NULL;
- malloc_flag = 1;
- }
-
- for (i = 0; i < n; i++)
- {
- char *s = a[i];
-
- if (s == NULL)
- {
- b[i] = NULL;
- continue;
- }
-
- if (NULL == (b[i] = create_bstring_of_type (s, strlen(s), ptr_type)))
- {
- free_n_bstrings (b, i);
- if (malloc_flag) SLfree ((char *) b);
- return NULL;
- }
- }
-
- return b;
-}
-
-static int
-bstring_string_bin_op (int op,
- unsigned char a_type, VOID_STAR ap, unsigned int na,
- unsigned char b_type, VOID_STAR bp, unsigned int nb,
- VOID_STAR cp)
-{
- SLang_BString_Type **b;
- int ret;
-
- if (NULL == (b = make_n_bstrings (NULL, (char **)bp, nb, IS_NOT_TO_BE_FREED)))
- return -1;
-
- b_type = SLANG_BSTRING_TYPE;
- ret = bstring_bstring_bin_op (op,
- a_type, ap, na,
- b_type, (VOID_STAR) b, nb,
- cp);
- free_n_bstrings (b, nb);
- SLfree ((char *) b);
- return ret;
-}
-
-static int
-string_bstring_bin_op (int op,
- unsigned char a_type, VOID_STAR ap, unsigned int na,
- unsigned char b_type, VOID_STAR bp, unsigned int nb,
- VOID_STAR cp)
-{
- SLang_BString_Type **a;
- int ret;
-
- if (NULL == (a = make_n_bstrings (NULL, (char **)ap, na, IS_NOT_TO_BE_FREED)))
- return -1;
-
- a_type = SLANG_BSTRING_TYPE;
- ret = bstring_bstring_bin_op (op,
- a_type, (VOID_STAR) a, na,
- b_type, bp, nb,
- cp);
- free_n_bstrings (a, na);
- SLfree ((char *) a);
-
- return ret;
-}
-
-static void bstring_destroy (unsigned char unused, VOID_STAR s)
-{
- (void) unused;
- SLbstring_free (*(SLang_BString_Type **) s);
-}
-
-static int bstring_push (unsigned char unused, VOID_STAR sptr)
-{
- (void) unused;
-
- return SLang_push_bstring (*(SLang_BString_Type **) sptr);
-}
-
-static int string_to_bstring (unsigned char a_type, VOID_STAR ap, unsigned int na,
- unsigned char b_type, VOID_STAR bp)
-{
- char **s;
- SLang_BString_Type **b;
-
- (void) a_type;
- (void) b_type;
-
- s = (char **) ap;
- b = (SLang_BString_Type **) bp;
-
- if (NULL == make_n_bstrings (b, s, na, IS_SLSTRING))
- return -1;
-
- return 1;
-}
-
-static int bstring_to_string (unsigned char a_type, VOID_STAR ap, unsigned int na,
- unsigned char b_type, VOID_STAR bp)
-{
- char **s;
- unsigned int i;
- SLang_BString_Type **a;
-
- (void) a_type;
- (void) b_type;
-
- s = (char **) bp;
- a = (SLang_BString_Type **) ap;
-
- for (i = 0; i < na; i++)
- {
- SLang_BString_Type *ai = a[i];
-
- if (ai == NULL)
- {
- s[i] = NULL;
- continue;
- }
-
- if (NULL == (s[i] = SLang_create_slstring ((char *)BS_GET_POINTER(ai))))
- {
- while (i != 0)
- {
- i--;
- SLang_free_slstring (s[i]);
- s[i] = NULL;
- }
- return -1;
- }
- }
-
- return 1;
-}
-
-static char *bstring_string (unsigned char type, VOID_STAR v)
-{
- SLang_BString_Type *s;
- unsigned char buf[128];
- unsigned char *bytes, *bytes_max;
- unsigned char *b, *bmax;
-
- (void) type;
-
- s = *(SLang_BString_Type **) v;
- bytes = BS_GET_POINTER(s);
- bytes_max = bytes + s->len;
-
- b = buf;
- bmax = buf + (sizeof (buf) - 4);
-
- while (bytes < bytes_max)
- {
- unsigned char ch = *bytes;
-
- if ((ch < 32) || (ch >= 127) || (ch == '\\'))
- {
- if (b + 4 > bmax)
- break;
-
- sprintf ((char *) b, "\\%03o", ch);
- b += 4;
- }
- else
- {
- if (b == bmax)
- break;
-
- *b++ = ch;
- }
-
- bytes++;
- }
-
- if (bytes < bytes_max)
- {
- *b++ = '.';
- *b++ = '.';
- *b++ = '.';
- }
- *b = 0;
-
- return SLmake_string ((char *)buf);
-}
-
-static unsigned int bstrlen_cmd (SLang_BString_Type *b)
-{
- return b->len;
-}
-
-static SLang_Intrin_Fun_Type BString_Table [] = /*{{{*/
-{
- MAKE_INTRINSIC_1("bstrlen", bstrlen_cmd, SLANG_UINT_TYPE, SLANG_BSTRING_TYPE),
- MAKE_INTRINSIC_0("pack", _SLpack, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_2("unpack", _SLunpack, SLANG_VOID_TYPE, SLANG_STRING_TYPE, SLANG_BSTRING_TYPE),
- MAKE_INTRINSIC_1("pad_pack_format", _SLpack_pad_format, SLANG_VOID_TYPE, SLANG_STRING_TYPE),
- MAKE_INTRINSIC_1("sizeof_pack", _SLpack_compute_size, SLANG_UINT_TYPE, SLANG_STRING_TYPE),
- SLANG_END_INTRIN_FUN_TABLE
-};
-
-int _SLang_init_bstring (void)
-{
- SLang_Class_Type *cl;
-
- if (NULL == (cl = SLclass_allocate_class ("BString_Type")))
- return -1;
- (void) SLclass_set_destroy_function (cl, bstring_destroy);
- (void) SLclass_set_push_function (cl, bstring_push);
- (void) SLclass_set_string_function (cl, bstring_string);
-
- if (-1 == SLclass_register_class (cl, SLANG_BSTRING_TYPE, sizeof (char *),
- SLANG_CLASS_TYPE_PTR))
- return -1;
-
- if ((-1 == SLclass_add_typecast (SLANG_BSTRING_TYPE, SLANG_STRING_TYPE, bstring_to_string, 1))
- || (-1 == SLclass_add_typecast (SLANG_STRING_TYPE, SLANG_BSTRING_TYPE, string_to_bstring, 1))
- || (-1 == SLclass_add_binary_op (SLANG_BSTRING_TYPE, SLANG_BSTRING_TYPE, bstring_bstring_bin_op, bstring_bstring_bin_op_result))
- || (-1 == SLclass_add_binary_op (SLANG_STRING_TYPE, SLANG_BSTRING_TYPE, string_bstring_bin_op, bstring_bstring_bin_op_result))
- || (-1 == SLclass_add_binary_op (SLANG_BSTRING_TYPE, SLANG_STRING_TYPE, bstring_string_bin_op, bstring_bstring_bin_op_result)))
-
- return -1;
-
- if (-1 == SLadd_intrin_fun_table (BString_Table, NULL))
- return -1;
-
- return 0;
-}
-
diff --git a/mdk-stage1/slang/slclass.c b/mdk-stage1/slang/slclass.c
deleted file mode 100644
index 733888cb8..000000000
--- a/mdk-stage1/slang/slclass.c
+++ /dev/null
@@ -1,1391 +0,0 @@
-/* User defined objects */
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-#if _SLANG_OPTIMIZE_FOR_SPEED
-unsigned char _SLclass_Class_Type [256];
-#endif
-
-static SLang_Class_Type *Registered_Types[256];
-SLang_Class_Type *_SLclass_get_class (unsigned char type)
-{
- SLang_Class_Type *cl;
-
- cl = Registered_Types [type];
- if (cl == NULL)
- SLang_exit_error ("Application error: Type %d not registered", (int) type);
-
- return cl;
-}
-
-int SLclass_is_class_defined (unsigned char type)
-{
- return (NULL != Registered_Types[type]);
-}
-
-VOID_STAR _SLclass_get_ptr_to_value (SLang_Class_Type *cl,
- SLang_Object_Type *obj)
-{
- VOID_STAR p;
-
- switch (cl->cl_class_type)
- {
- case SLANG_CLASS_TYPE_MMT:
- case SLANG_CLASS_TYPE_PTR:
- case SLANG_CLASS_TYPE_SCALAR:
- p = (VOID_STAR) &obj->v;
- break;
-
- case SLANG_CLASS_TYPE_VECTOR:
- p = obj->v.ptr_val;
- break;
-
- default:
- p = NULL;
- }
- return p;
-}
-
-char *SLclass_get_datatype_name (unsigned char stype)
-{
- SLang_Class_Type *cl;
-
- cl = _SLclass_get_class (stype);
- return cl->cl_name;
-}
-
-static int method_undefined_error (unsigned char type, char *method, char *name)
-{
- if (name == NULL) name = SLclass_get_datatype_name (type);
-
- SLang_verror (SL_TYPE_MISMATCH, "%s method not defined for %s",
- method, name);
- return -1;
-}
-
-static int
-scalar_vector_bin_op_result (int op, unsigned char a, unsigned char b,
- unsigned char *c)
-{
- (void) a; (void) b;
- switch (op)
- {
- case SLANG_NE:
- case SLANG_EQ:
- *c = SLANG_INT_TYPE;
- return 1;
- }
- return 0;
-}
-
-static int
-scalar_vector_bin_op (int op,
- unsigned char a_type, VOID_STAR ap, unsigned int na,
- unsigned char b_type, VOID_STAR bp, unsigned int nb,
- VOID_STAR cp)
-{
- int *c;
- char *a, *b;
- unsigned int da, db;
- unsigned int n, n_max;
- unsigned int data_type_len;
- SLang_Class_Type *cl;
-
- (void) b_type;
- cl = _SLclass_get_class (a_type);
-
- data_type_len = cl->cl_sizeof_type;
-
- a = (char *) ap;
- b = (char *) bp;
- c = (int *) cp;
-
- if (na == 1) da = 0; else da = data_type_len;
- if (nb == 1) db = 0; else db = data_type_len;
- if (na > nb) n_max = na; else n_max = nb;
-
- switch (op)
- {
- default:
- return 0;
-
- case SLANG_NE:
- for (n = 0; n < n_max; n++)
- {
- c[n] = (0 != SLMEMCMP(a, b, data_type_len));
- a += da; b += db;
- }
- break;
-
- case SLANG_EQ:
- for (n = 0; n < n_max; n++)
- {
- c[n] = (0 == SLMEMCMP(a, b, data_type_len));
- a += da; b += db;
- }
- break;
- }
- return 1;
-}
-
-static int scalar_fread (unsigned char type, FILE *fp, VOID_STAR ptr,
- unsigned int desired, unsigned int *actual)
-{
- unsigned int n;
-
- n = fread ((char *) ptr, _SLclass_get_class (type)->cl_sizeof_type,
- desired, fp);
- *actual = n;
- return 0;
-}
-
-static int scalar_fwrite (unsigned char type, FILE *fp, VOID_STAR ptr,
- unsigned int desired, unsigned int *actual)
-{
- unsigned int n;
-
- n = fwrite ((char *) ptr, _SLclass_get_class (type)->cl_sizeof_type,
- desired, fp);
- *actual = n;
- return 0;
-}
-
-static int vector_apush (unsigned char type, VOID_STAR ptr)
-{
- SLang_Class_Type *cl;
-
- cl = _SLclass_get_class (type);
- return (*cl->cl_push)(type, (VOID_STAR) &ptr);
-}
-
-static int vector_apop (unsigned char type, VOID_STAR ptr)
-{
- SLang_Class_Type *cl;
-
- cl = _SLclass_get_class (type);
- return (*cl->cl_pop)(type, (VOID_STAR) &ptr);
-}
-
-static int default_push_mmt (unsigned char type_unused, VOID_STAR ptr)
-{
- SLang_MMT_Type *ref;
-
- (void) type_unused;
- ref = *(SLang_MMT_Type **) ptr;
- return SLang_push_mmt (ref);
-}
-
-static void default_destroy_simple (unsigned char type_unused, VOID_STAR ptr_unused)
-{
- (void) type_unused;
- (void) ptr_unused;
-}
-
-static void default_destroy_user (unsigned char type, VOID_STAR ptr)
-{
- (void) type;
- SLang_free_mmt (*(SLang_MMT_Type **) ptr);
-}
-
-static int default_pop (unsigned char type, VOID_STAR ptr)
-{
- return SLclass_pop_ptr_obj (type, (VOID_STAR *) ptr);
-}
-
-static int default_datatype_deref (unsigned char type)
-{
- return method_undefined_error (type, "datatype_deref", NULL);
-}
-
-static int default_acopy (unsigned char type, VOID_STAR from, VOID_STAR to)
-{
- SLang_Class_Type *cl;
-
- cl = _SLclass_get_class (type);
- if (-1 == (*cl->cl_apush) (type, from))
- return -1;
- return (*cl->cl_apop) (type, to);
-}
-
-static int default_dereference_object (unsigned char type, VOID_STAR ptr)
-{
- (void) ptr;
- return method_undefined_error (type, "dereference", NULL);
-}
-
-static char *default_string (unsigned char stype, VOID_STAR v)
-{
- char buf [256];
- char *s;
-#if SLANG_HAS_COMPLEX
- double *cplx;
-#endif
- s = buf;
-
- switch (stype)
- {
- case SLANG_STRING_TYPE:
- s = *(char **) v;
- break;
-
- case SLANG_NULL_TYPE:
- s = "NULL";
- break;
-
- case SLANG_DATATYPE_TYPE:
- s = SLclass_get_datatype_name ((unsigned char) *(int *)v);
- break;
-
-#if SLANG_HAS_COMPLEX
- case SLANG_COMPLEX_TYPE:
- cplx = *(double **) v;
- if (cplx[1] < 0)
- sprintf (s, "(%g - %gi)", cplx [0], -cplx [1]);
- else
- sprintf (s, "(%g + %gi)", cplx [0], cplx [1]);
- break;
-#endif
- default:
- s = SLclass_get_datatype_name (stype);
- }
-
- return SLmake_string (s);
-}
-
-static int
-use_cmp_bin_op_result (int op, unsigned char a, unsigned char b,
- unsigned char *c)
-{
- if (a != b)
- return 0;
- switch (op)
- {
- case SLANG_NE:
- case SLANG_EQ:
- case SLANG_LT:
- case SLANG_LE:
- case SLANG_GT:
- case SLANG_GE:
- *c = SLANG_INT_TYPE;
- return 1;
- }
- return 0;
-}
-
-static int
-use_cmp_bin_op (int op,
- unsigned char a_type, VOID_STAR ap, unsigned int na,
- unsigned char b_type, VOID_STAR bp, unsigned int nb,
- VOID_STAR cp)
-{
- int *c;
- char *a, *b;
- unsigned int da, db;
- unsigned int n, n_max;
- unsigned int data_type_len;
- SLang_Class_Type *cl;
- int (*cmp)(unsigned char, VOID_STAR, VOID_STAR, int *);
-
- (void) b_type;
- cl = _SLclass_get_class (a_type);
- cmp = cl->cl_cmp;
- data_type_len = cl->cl_sizeof_type;
-
- a = (char *) ap;
- b = (char *) bp;
- c = (int *) cp;
-
- if (na == 1) da = 0; else da = data_type_len;
- if (nb == 1) db = 0; else db = data_type_len;
- if (na > nb) n_max = na; else n_max = nb;
-
- switch (op)
- {
- int result;
-
- default:
- return 0;
-
- case SLANG_NE:
- for (n = 0; n < n_max; n++)
- {
- if (-1 == (*cmp) (a_type, (VOID_STAR)a, (VOID_STAR)b, &result))
- return -1;
- c[n] = (result != 0);
- a += da; b += db;
- }
- break;
-
- case SLANG_EQ:
- for (n = 0; n < n_max; n++)
- {
- if (-1 == (*cmp) (a_type, (VOID_STAR)a, (VOID_STAR)b, &result))
- return -1;
- c[n] = (result == 0);
- a += da; b += db;
- }
- break;
-
- case SLANG_GT:
- for (n = 0; n < n_max; n++)
- {
- if (-1 == (*cmp) (a_type, (VOID_STAR)a, (VOID_STAR)b, &result))
- return -1;
- c[n] = (result > 0);
- a += da; b += db;
- }
- break;
- case SLANG_GE:
- for (n = 0; n < n_max; n++)
- {
- if (-1 == (*cmp) (a_type, (VOID_STAR)a, (VOID_STAR)b, &result))
- return -1;
- c[n] = (result >= 0);
- a += da; b += db;
- }
- break;
- case SLANG_LT:
- for (n = 0; n < n_max; n++)
- {
- if (-1 == (*cmp) (a_type, (VOID_STAR)a, (VOID_STAR)b, &result))
- return -1;
- c[n] = (result < 0);
- a += da; b += db;
- }
- break;
- case SLANG_LE:
- for (n = 0; n < n_max; n++)
- {
- if (-1 == (*cmp) (a_type, (VOID_STAR)a, (VOID_STAR)b, &result))
- return -1;
- c[n] = (result <= 0);
- a += da; b += db;
- }
- break;
- }
- return 1;
-}
-
-
-int SLclass_get_class_id (SLang_Class_Type *cl)
-{
- if (cl == NULL)
- return -1;
- return (int) cl->cl_data_type;
-}
-
-SLang_Class_Type *SLclass_allocate_class (char *name)
-{
- SLang_Class_Type *cl;
- unsigned int i;
-
- for (i = 0; i < 256; i++)
- {
- cl = Registered_Types [i];
- if ((cl != NULL)
- && (0 == strcmp (cl->cl_name, name)))
- {
- SLang_verror (SL_DUPLICATE_DEFINITION, "Type name %s already exists", name);
- return NULL;
- }
- }
-
- cl = (SLang_Class_Type *) SLmalloc (sizeof (SLang_Class_Type));
- if (cl == NULL) return NULL;
-
- SLMEMSET ((char *) cl, 0, sizeof (SLang_Class_Type));
-
- if (NULL == (cl->cl_name = SLang_create_slstring (name)))
- {
- SLfree ((char *) cl);
- return NULL;
- }
-
- return cl;
-}
-
-static int DataType_Ids [256];
-
-int _SLang_push_datatype (unsigned char data_type)
-{
- /* This data type could be a copy of another type, e.g., short and
- * int if they are the same size (Int16 == Short). So, make sure
- * we push the original and not the copy.
- */
- data_type = _SLclass_get_class (data_type)->cl_data_type;
- return SLclass_push_int_obj (SLANG_DATATYPE_TYPE, (int) data_type);
-}
-
-static int datatype_deref (unsigned char type, VOID_STAR ptr)
-{
- SLang_Class_Type *cl;
- int status;
-
- /* The parser generated code for this as if a function call were to be
- * made. However, we are calling the deref object routine
- * instead of the function call. So, I must simulate the function call.
- */
- if (-1 == _SL_increment_frame_pointer ())
- return -1;
-
- type = (unsigned char) *(int *) ptr;
- cl = _SLclass_get_class (type);
- status = (*cl->cl_datatype_deref) (type);
-
- (void) _SL_decrement_frame_pointer ();
- return status;
-}
-
-static int datatype_push (unsigned char type_unused, VOID_STAR ptr)
-{
- (void) type_unused;
- return _SLang_push_datatype (*(int *) ptr);
-}
-
-int _SLang_pop_datatype (unsigned char *type)
-{
- int i;
-
- if (-1 == SLclass_pop_int_obj (SLANG_DATATYPE_TYPE, &i))
- return -1;
-
- *type = (unsigned char) i;
- return 0;
-}
-
-static int datatype_pop (unsigned char type, VOID_STAR ptr)
-{
- if (-1 == _SLang_pop_datatype (&type))
- return -1;
-
- *(int *) ptr = type;
- return 0;
-}
-
-int _SLclass_init (void)
-{
- SLang_Class_Type *cl;
-
- /* First initialize the container classes. This is so binary operations
- * added later will work with them.
- */
- if (-1 == _SLarray_init_slarray ())
- return -1;
-
- /* DataType_Type */
- if (NULL == (cl = SLclass_allocate_class ("DataType_Type")))
- return -1;
- cl->cl_pop = datatype_pop;
- cl->cl_push = datatype_push;
- cl->cl_dereference = datatype_deref;
- if (-1 == SLclass_register_class (cl, SLANG_DATATYPE_TYPE, sizeof(int),
- SLANG_CLASS_TYPE_SCALAR))
- return -1;
-
- return 0;
-}
-
-static int register_new_datatype (char *name, unsigned char type)
-{
- DataType_Ids [type] = type;
- return SLadd_intrinsic_variable (name, (VOID_STAR) (DataType_Ids + type),
- SLANG_DATATYPE_TYPE, 1);
-}
-
-int SLclass_create_synonym (char *name, unsigned char type)
-{
- if (NULL == _SLclass_get_class (type))
- return -1;
-
- return register_new_datatype (name, type);
-}
-
-int _SLclass_copy_class (unsigned char to, unsigned char from)
-{
- SLang_Class_Type *cl = _SLclass_get_class (from);
-
- if (Registered_Types[to] != NULL)
- SLang_exit_error ("Application error: Class already exists");
-
- Registered_Types[to] = cl;
-
-#if _SLANG_OPTIMIZE_FOR_SPEED
- if (to != SLANG_UNDEFINED_TYPE)
- _SLclass_Class_Type [to] = cl->cl_class_type;
-#endif
- return 0;
-}
-
-int SLclass_register_class (SLang_Class_Type *cl, unsigned char type, unsigned int type_size, unsigned char class_type)
-{
- char *name;
- unsigned int i;
- int can_binop = 1; /* scalar_vector_bin_op should work
- * for all data types.
- */
-
- if (type == SLANG_VOID_TYPE) for (i = 0; i < 256; i++)
- {
- if ((Registered_Types[i] == NULL)
- && (i != SLANG_VOID_TYPE))
- {
- type = (unsigned char) i;
- break;
- }
- }
-
- if ((NULL != Registered_Types [type])
- || (type == SLANG_VOID_TYPE))
- {
- SLang_verror (SL_APPLICATION_ERROR, "Class type %d already in use", (int) type);
- return -1;
- }
-
- cl->cl_data_type = type;
- cl->cl_class_type = class_type;
- name = cl->cl_name;
-
- switch (class_type)
- {
- case SLANG_CLASS_TYPE_MMT:
- if (cl->cl_push == NULL) cl->cl_push = default_push_mmt;
- if (cl->cl_destroy == NULL)
- return method_undefined_error (type, "destroy", name);
- cl->cl_user_destroy_fun = cl->cl_destroy;
- cl->cl_destroy = default_destroy_user;
- type_size = sizeof (VOID_STAR);
- break;
-
- case SLANG_CLASS_TYPE_SCALAR:
- if (cl->cl_destroy == NULL) cl->cl_destroy = default_destroy_simple;
- if ((type_size == 0)
- || (type_size > sizeof (_SL_Object_Union_Type)))
- {
- SLang_verror (SL_INVALID_PARM,
- "Type size for %s not appropriate for SCALAR type",
- name);
- return -1;
- }
- if (cl->cl_pop == NULL)
- return method_undefined_error (type, "pop", name);
- if (cl->cl_fread == NULL) cl->cl_fread = scalar_fread;
- if (cl->cl_fwrite == NULL) cl->cl_fwrite = scalar_fwrite;
-
- can_binop = 1;
- break;
-
- case SLANG_CLASS_TYPE_PTR:
- if (cl->cl_destroy == NULL)
- return method_undefined_error (type, "destroy", name);
- type_size = sizeof (VOID_STAR);
- break;
-
- case SLANG_CLASS_TYPE_VECTOR:
- if (cl->cl_destroy == NULL)
- return method_undefined_error (type, "destroy", name);
- if (cl->cl_pop == NULL)
- return method_undefined_error (type, "pop", name);
- cl->cl_apop = vector_apop;
- cl->cl_apush = vector_apush;
- cl->cl_adestroy = default_destroy_simple;
- if (cl->cl_fread == NULL) cl->cl_fread = scalar_fread;
- if (cl->cl_fwrite == NULL) cl->cl_fwrite = scalar_fwrite;
- can_binop = 1;
- break;
-
- default:
- SLang_verror (SL_INVALID_PARM, "%s: unknown class type (%d)", name, class_type);
- return -1;
- }
-
-#if _SLANG_OPTIMIZE_FOR_SPEED
- if (type != SLANG_UNDEFINED_TYPE)
- _SLclass_Class_Type [type] = class_type;
-#endif
-
- if (type_size == 0)
- {
- SLang_verror (SL_INVALID_PARM, "type size must be non-zero for %s", name);
- return -1;
- }
-
- if (cl->cl_string == NULL) cl->cl_string = default_string;
- if (cl->cl_acopy == NULL) cl->cl_acopy = default_acopy;
- if (cl->cl_datatype_deref == NULL) cl->cl_datatype_deref = default_datatype_deref;
-
- if (cl->cl_pop == NULL) cl->cl_pop = default_pop;
-
- if (cl->cl_push == NULL)
- return method_undefined_error (type, "push", name);
-
- if (cl->cl_byte_code_destroy == NULL)
- cl->cl_byte_code_destroy = cl->cl_destroy;
- if (cl->cl_push_literal == NULL)
- cl->cl_push_literal = cl->cl_push;
-
- if (cl->cl_dereference == NULL)
- cl->cl_dereference = default_dereference_object;
-
- if (cl->cl_apop == NULL) cl->cl_apop = cl->cl_pop;
- if (cl->cl_apush == NULL) cl->cl_apush = cl->cl_push;
- if (cl->cl_adestroy == NULL) cl->cl_adestroy = cl->cl_destroy;
- if (cl->cl_push_intrinsic == NULL) cl->cl_push_intrinsic = cl->cl_push;
-
- if ((cl->cl_foreach == NULL)
- || (cl->cl_foreach_open == NULL)
- || (cl->cl_foreach_close == NULL))
- {
- cl->cl_foreach = _SLarray_cl_foreach;
- cl->cl_foreach_open = _SLarray_cl_foreach_open;
- cl->cl_foreach_close = _SLarray_cl_foreach_close;
- }
-
- cl->cl_sizeof_type = type_size;
-
- if (NULL == (cl->cl_transfer_buf = (VOID_STAR) SLmalloc (type_size)))
- return -1;
-
- Registered_Types[type] = cl;
-
- if (-1 == register_new_datatype (name, type))
- return -1;
-
- if (cl->cl_cmp != NULL)
- {
- if (-1 == SLclass_add_binary_op (type, type, use_cmp_bin_op, use_cmp_bin_op_result))
- return -1;
- }
- else if (can_binop
- && (-1 == SLclass_add_binary_op (type, type, scalar_vector_bin_op, scalar_vector_bin_op_result)))
- return -1;
-
- cl->cl_anytype_typecast = _SLanytype_typecast;
-
- return 0;
-}
-
-int SLclass_add_math_op (unsigned char type,
- int (*handler)(int,
- unsigned char, VOID_STAR, unsigned int,
- VOID_STAR),
- int (*result) (int, unsigned char, unsigned char *))
-{
- SLang_Class_Type *cl = _SLclass_get_class (type);
-
- cl->cl_math_op = handler;
- cl->cl_math_op_result_type = result;
- return 0;
-}
-
-int SLclass_add_binary_op (unsigned char a, unsigned char b,
- int (*f) (int,
- unsigned char, VOID_STAR, unsigned int,
- unsigned char, VOID_STAR, unsigned int,
- VOID_STAR),
- int (*r) (int, unsigned char, unsigned char, unsigned char *))
-{
- SLang_Class_Type *cl;
- SL_OOBinary_Type *ab;
-
- if ((f == NULL) || (r == NULL))
- {
- SLang_verror (SL_INVALID_PARM, "SLclass_add_binary_op");
- return -1;
- }
-
- cl = _SLclass_get_class (a);
- (void) _SLclass_get_class (b);
-
- if (NULL == (ab = (SL_OOBinary_Type *) SLmalloc (sizeof(SL_OOBinary_Type))))
- return -1;
-
- ab->data_type = b;
- ab->binary_function = f;
- ab->binary_result = r;
- ab->next = cl->cl_binary_ops;
- cl->cl_binary_ops = ab;
-
- if ((a != SLANG_ARRAY_TYPE)
- && (b != SLANG_ARRAY_TYPE))
- {
- if ((-1 == _SLarray_add_bin_op (a))
- || (-1 == _SLarray_add_bin_op (b)))
- return -1;
- }
-
- return 0;
-}
-
-int SLclass_add_unary_op (unsigned char type,
- int (*f)(int,
- unsigned char, VOID_STAR, unsigned int,
- VOID_STAR),
- int (*r)(int, unsigned char, unsigned char *))
-{
- SLang_Class_Type *cl;
-
- cl = _SLclass_get_class (type);
- if ((f == NULL) || (r == NULL))
- {
- SLang_verror (SL_INVALID_PARM, "SLclass_add_unary_op");
- return -1;
- }
-
- cl->cl_unary_op = f;
- cl->cl_unary_op_result_type = r;
-
- return 0;
-}
-
-int SLclass_add_app_unary_op (unsigned char type,
- int (*f)(int,
- unsigned char, VOID_STAR, unsigned int,
- VOID_STAR),
- int (*r)(int, unsigned char, unsigned char *))
-{
- SLang_Class_Type *cl;
-
- cl = _SLclass_get_class (type);
- if ((f == NULL) || (r == NULL))
- {
- SLang_verror (SL_INVALID_PARM, "SLclass_add_app_unary_op");
- return -1;
- }
-
- cl->cl_app_unary_op = f;
- cl->cl_app_unary_op_result_type = r;
-
- return 0;
-}
-
-int SLclass_set_pop_function (SLang_Class_Type *cl, int (*f)(unsigned char, VOID_STAR))
-{
- if (cl == NULL) return -1;
- cl->cl_pop = f;
-
- return 0;
-}
-
-int SLclass_set_push_function (SLang_Class_Type *cl, int (*f)(unsigned char, VOID_STAR))
-{
- if (cl == NULL) return -1;
- cl->cl_push = f;
-
- return 0;
-}
-
-int SLclass_set_string_function (SLang_Class_Type *cl, char *(*f)(unsigned char, VOID_STAR))
-{
- if (cl == NULL) return -1;
-
- cl->cl_string = f;
- return 0;
-}
-
-int SLclass_set_destroy_function (SLang_Class_Type *cl, void (*f)(unsigned char, VOID_STAR))
-{
- if (cl == NULL) return -1;
-
- cl->cl_destroy = f;
- return 0;
-}
-
-int SLclass_set_sget_function (SLang_Class_Type *cl, int (*f)(unsigned char, char *))
-{
- if (cl == NULL) return -1;
- cl->cl_sget = f;
- return 0;
-}
-
-int SLclass_set_sput_function (SLang_Class_Type *cl, int (*f)(unsigned char, char *))
-{
- if (cl == NULL) return -1;
- cl->cl_sput = f;
- return 0;
-}
-
-int SLclass_set_aget_function (SLang_Class_Type *cl, int (*f)(unsigned char, unsigned int))
-{
- if (cl == NULL) return -1;
- cl->cl_aget = f;
- return 0;
-}
-
-int SLclass_set_aput_function (SLang_Class_Type *cl, int (*f)(unsigned char, unsigned int))
-{
- if (cl == NULL) return -1;
- cl->cl_aput = f;
- return 0;
-}
-
-int SLclass_set_anew_function (SLang_Class_Type *cl, int (*f)(unsigned char, unsigned int))
-{
- if (cl == NULL) return -1;
- cl->cl_anew = f;
- return 0;
-}
-
-/* Misc */
-void _SLclass_type_mismatch_error (unsigned char a, unsigned char b)
-{
- SLang_verror (SL_TYPE_MISMATCH, "Expecting %s, found %s",
- SLclass_get_datatype_name (a),
- SLclass_get_datatype_name (b));
-}
-
-/* */
-
-static int null_binary_fun (int op,
- unsigned char a, VOID_STAR ap, unsigned int na,
- unsigned char b, VOID_STAR bp, unsigned int nb,
- VOID_STAR cp)
-{
- int *ic;
- unsigned int i;
- int c;
-
- (void) ap; (void) bp;
-
- switch (op)
- {
- case SLANG_EQ:
- c = (a == b);
- break;
-
- case SLANG_NE:
- c = (a != b);
- break;
-
- default:
- return 0;
- }
-
- if (na > nb) nb = na;
- ic = (int *) cp;
- for (i = 0; i < nb; i++)
- ic[i] = c;
-
- return 1;
-}
-
-static char *get_binary_op_string (int op)
-{
- static char *ops[SLANG_MOD] =
- {
- "+", "=", "*", "/", "==", "!=", ">", ">=", "<", "<=", "^",
- "or", "and", "&", "|", "xor", "shl", "shr", "mod"
- };
-
- if ((op > SLANG_MOD) || (op <= 0))
- return "??";
- return ops[op - 1];
-}
-
-int (*_SLclass_get_binary_fun (int op,
- SLang_Class_Type *a_cl, SLang_Class_Type *b_cl,
- SLang_Class_Type **c_cl, int do_error))
-(int,
- unsigned char, VOID_STAR, unsigned int,
- unsigned char, VOID_STAR, unsigned int,
- VOID_STAR)
-{
- SL_OOBinary_Type *bt;
- unsigned char a, b, c;
-
- a = a_cl->cl_data_type;
- b = b_cl->cl_data_type;
-
- if ((a == SLANG_NULL_TYPE) || (b == SLANG_NULL_TYPE))
- {
- *c_cl = _SLclass_get_class (SLANG_INT_TYPE);
- return null_binary_fun;
- }
-
- bt = a_cl->cl_binary_ops;
-
- while (bt != NULL)
- {
- if (bt->data_type == b)
- {
- if (1 != (*bt->binary_result)(op, a, b, &c))
- break;
-
- if (c == a) *c_cl = a_cl;
- else if (c == b) *c_cl = b_cl;
- else *c_cl = _SLclass_get_class (c);
-
- return bt->binary_function;
- }
-
- bt = bt->next;
- }
-
- if (do_error)
- SLang_verror (SL_TYPE_MISMATCH, "%s %s %s is not possible",
- a_cl->cl_name, get_binary_op_string (op), b_cl->cl_name);
-
- *c_cl = NULL;
- return NULL;
-}
-
-int (*_SLclass_get_unary_fun (int op,
- SLang_Class_Type *a_cl,
- SLang_Class_Type **b_cl,
- int utype))
-(int, unsigned char, VOID_STAR, unsigned int, VOID_STAR)
-{
- int (*f)(int, unsigned char, VOID_STAR, unsigned int, VOID_STAR);
- int (*r)(int, unsigned char, unsigned char *);
- unsigned char a;
- unsigned char b;
-
- switch (utype)
- {
- case _SLANG_BC_UNARY:
- f = a_cl->cl_unary_op;
- r = a_cl->cl_unary_op_result_type;
- break;
-
- case _SLANG_BC_MATH_UNARY:
- f = a_cl->cl_math_op;
- r = a_cl->cl_math_op_result_type;
- break;
-
- case _SLANG_BC_APP_UNARY:
- f = a_cl->cl_app_unary_op;
- r = a_cl->cl_app_unary_op_result_type;
- break;
-
- default:
- f = NULL;
- r = NULL;
- }
-
- a = a_cl->cl_data_type;
- if ((f != NULL) && (r != NULL) && (1 == (*r) (op, a, &b)))
- {
- if (a == b)
- *b_cl = a_cl;
- else
- *b_cl = _SLclass_get_class (b);
- return f;
- }
-
- SLang_verror (SL_TYPE_MISMATCH, "undefined unary operation/function on %s",
- a_cl->cl_name);
-
- *b_cl = NULL;
-
- return NULL;
-}
-
-int
-SLclass_typecast (unsigned char to_type, int is_implicit, int allow_array)
-{
- unsigned char from_type;
- SLang_Class_Type *cl_to, *cl_from;
- SLang_Object_Type obj;
- VOID_STAR ap;
- VOID_STAR bp;
- int status;
-
- if (-1 == SLang_pop (&obj))
- return -1;
-
- from_type = obj.data_type;
- if (from_type == to_type)
- {
- SLang_push (&obj);
- return 0;
- }
-
- cl_from = _SLclass_get_class (from_type);
-
- /* Since the typecast functions are designed to work on arrays,
- * get the pointer to the value instead of just &obj.v.
- */
- ap = _SLclass_get_ptr_to_value (cl_from, &obj);
-
- if ((from_type == SLANG_ARRAY_TYPE)
- && (allow_array || (to_type != SLANG_ANY_TYPE)))
- {
- if (allow_array == 0)
- goto return_error;
-
- cl_to = _SLclass_get_class (SLANG_ARRAY_TYPE);
- bp = cl_to->cl_transfer_buf;
- status = _SLarray_typecast (from_type, ap, 1, to_type, bp, is_implicit);
- }
- else
- {
- int (*t) (unsigned char, VOID_STAR, unsigned int, unsigned char, VOID_STAR);
-
- if (NULL == (t = _SLclass_get_typecast (from_type, to_type, is_implicit)))
- {
- SLang_free_object (&obj);
- return -1;
- }
-
- cl_to = _SLclass_get_class (to_type);
- bp = cl_to->cl_transfer_buf;
- status = (*t) (from_type, ap, 1, to_type, bp);
- }
-
- if (1 == status)
- {
- if (-1 == (*cl_to->cl_apush)(to_type, bp))
- {
- (*cl_to->cl_adestroy) (to_type, bp);
- SLang_free_object (&obj);
- return -1;
- }
-
- /* cl_apush will push a copy, so destry this one */
- (*cl_to->cl_adestroy) (to_type, bp);
- SLang_free_object (&obj);
- return 0;
- }
-
- return_error:
-
- SLang_verror (SL_TYPE_MISMATCH, "Unable to typecast %s to %s",
- cl_from->cl_name,
- SLclass_get_datatype_name (to_type));
- SLang_free_object (&obj);
- return -1;
-}
-
-int (*_SLclass_get_typecast (unsigned char from, unsigned char to, int is_implicit))
-(unsigned char, VOID_STAR, unsigned int,
- unsigned char, VOID_STAR)
-{
- SL_Typecast_Type *t;
- SLang_Class_Type *cl_from;
-
- cl_from = _SLclass_get_class (from);
-
- t = cl_from->cl_typecast_funs;
- while (t != NULL)
- {
- if (t->data_type != to)
- {
- t = t->next;
- continue;
- }
-
- if (is_implicit && (t->allow_implicit == 0))
- break;
-
- return t->typecast;
- }
-
- if (to == SLANG_ANY_TYPE)
- return _SLanytype_typecast;
-
- if ((is_implicit == 0)
- && (cl_from->cl_void_typecast != NULL))
- return cl_from->cl_void_typecast;
-
- SLang_verror (SL_TYPE_MISMATCH, "Unable to typecast %s to %s",
- cl_from->cl_name,
- SLclass_get_datatype_name (to));
-
- return NULL;
-}
-
-int
-SLclass_add_typecast (unsigned char from, unsigned char to,
- int (*f)_PROTO((unsigned char, VOID_STAR, unsigned int,
- unsigned char, VOID_STAR)),
- int allow_implicit)
-{
- SL_Typecast_Type *t;
- SLang_Class_Type *cl;
-
- cl = _SLclass_get_class (from);
- if (to == SLANG_VOID_TYPE)
- {
- cl->cl_void_typecast = f;
- return 0;
- }
-
- (void) _SLclass_get_class (to);
-
- if (NULL == (t = (SL_Typecast_Type *) SLmalloc (sizeof (SL_Typecast_Type))))
- return -1;
-
- SLMEMSET((char *) t, 0, sizeof(SL_Typecast_Type));
- t->data_type = to;
- t->next = cl->cl_typecast_funs;
- t->typecast = f;
- t->allow_implicit = allow_implicit;
-
- cl->cl_typecast_funs = t;
-
- return 0;
-}
-
-SLang_MMT_Type *SLang_pop_mmt (unsigned char type) /*{{{*/
-{
- SLang_MMT_Type *mmt;
-
- if (-1 == SLclass_pop_ptr_obj (type, (VOID_STAR *) &mmt))
- mmt = NULL;
- return mmt;
-
-#if 0
- SLang_Object_Type obj;
- SLang_Class_Type *cl;
-
- if (_SLang_pop_object_of_type (type, &obj))
- return NULL;
-
- cl = _SLclass_get_class (type);
- if ((cl->cl_class_type == SLANG_CLASS_TYPE_MMT)
- && (obj.data_type == type))
- {
- return obj.v.ref;
- }
-
- _SLclass_type_mismatch_error (type, obj.data_type);
- SLang_free_object (&obj);
- return NULL;
-#endif
-}
-
-/*}}}*/
-
-int SLang_push_mmt (SLang_MMT_Type *ref) /*{{{*/
-{
- if (ref == NULL)
- return SLang_push_null ();
-
- ref->count += 1;
-
- if (0 == SLclass_push_ptr_obj (ref->data_type, (VOID_STAR) ref))
- return 0;
-
- ref->count -= 1;
- return -1;
-}
-
-/*}}}*/
-
-void SLang_inc_mmt (SLang_MMT_Type *ref)
-{
- if (ref != NULL)
- ref->count += 1;
-}
-
-VOID_STAR SLang_object_from_mmt (SLang_MMT_Type *ref)
-{
- if (ref == NULL)
- return NULL;
-
- return ref->user_data;
-}
-
-SLang_MMT_Type *SLang_create_mmt (unsigned char t, VOID_STAR p)
-{
- SLang_MMT_Type *ref;
-
- (void) _SLclass_get_class (t); /* check to see if it is registered */
-
- if (NULL == (ref = (SLang_MMT_Type *) SLmalloc (sizeof (SLang_MMT_Type))))
- return NULL;
-
- SLMEMSET ((char *) ref, 0, sizeof (SLang_MMT_Type));
-
- ref->data_type = t;
- ref->user_data = p;
- /* FIXME!! To be consistent with other types, the reference count should
- * be set to 1 here. However, doing so will require other code changes
- * involving the use of MMTs. For instance, SLang_free_mmt would have
- * to be called after every push of the MMT.
- */
- return ref;
-}
-
-void SLang_free_mmt (SLang_MMT_Type *ref)
-{
- unsigned char type;
- SLang_Class_Type *cl;
-
- if (ref == NULL)
- return;
-
- /* This can be zero if SLang_create_mmt is called followed
- * by this routine before anything gets a chance to attach itself
- * to it.
- */
- if (ref->count > 1)
- {
- ref->count -= 1;
- return;
- }
-
- type = ref->data_type;
- cl = _SLclass_get_class (type);
- (*cl->cl_user_destroy_fun) (type, ref->user_data);
- SLfree ((char *)ref);
-}
-
-int SLang_push_value (unsigned char type, VOID_STAR v)
-{
- SLang_Class_Type *cl;
-
- cl = _SLclass_get_class (type);
- return (*cl->cl_apush)(type, v);
-}
-
-int SLang_pop_value (unsigned char type, VOID_STAR v)
-{
- SLang_Class_Type *cl;
-
- cl = _SLclass_get_class (type);
- return (*cl->cl_apop)(type, v);
-}
-
-void SLang_free_value (unsigned char type, VOID_STAR v)
-{
- SLang_Class_Type *cl;
-
- cl = _SLclass_get_class (type);
- (*cl->cl_adestroy) (type, v);
-}
-
-/* These routines are very low-level and are designed for application data
- * types to access the stack from their push/pop methods. The int and
- * pointer versions are in slang.c
- */
-#if SLANG_HAS_FLOAT
-int SLclass_push_double_obj (unsigned char type, double x)
-{
- SLang_Object_Type obj;
- obj.data_type = type;
- obj.v.double_val = x;
- return SLang_push (&obj);
-}
-int SLclass_push_float_obj (unsigned char type, float x)
-{
- SLang_Object_Type obj;
- obj.data_type = type;
- obj.v.float_val = x;
- return SLang_push (&obj);
-}
-
-#endif
-
-int SLclass_push_long_obj (unsigned char type, long x)
-{
- SLang_Object_Type obj;
- obj.data_type = type;
- obj.v.long_val = x;
- return SLang_push (&obj);
-}
-
-int SLclass_push_short_obj (unsigned char type, short x)
-{
- SLang_Object_Type obj;
- obj.data_type = type;
- obj.v.short_val = x;
- return SLang_push (&obj);
-}
-
-int SLclass_push_char_obj (unsigned char type, char x)
-{
- SLang_Object_Type obj;
- obj.data_type = type;
- obj.v.char_val = x;
- return SLang_push (&obj);
-}
-
-#if SLANG_HAS_FLOAT
-int SLclass_pop_double_obj (unsigned char type, double *x)
-{
- SLang_Object_Type obj;
-
- if (-1 == _SLang_pop_object_of_type (type, &obj, 0))
- return -1;
-
- *x = obj.v.double_val;
- return 0;
-}
-
-int SLclass_pop_float_obj (unsigned char type, float *x)
-{
- SLang_Object_Type obj;
-
- if (-1 == _SLang_pop_object_of_type (type, &obj, 0))
- return -1;
-
- *x = obj.v.float_val;
- return 0;
-}
-#endif
-
-int SLclass_pop_long_obj (unsigned char type, long *x)
-{
- SLang_Object_Type obj;
-
- if (-1 == _SLang_pop_object_of_type (type, &obj, 0))
- return -1;
-
- *x = obj.v.long_val;
- return 0;
-}
-
-int SLclass_pop_int_obj (unsigned char type, int *x)
-{
- SLang_Object_Type obj;
-
- if (-1 == _SLang_pop_object_of_type (type, &obj, 0))
- return -1;
-
- *x = obj.v.int_val;
- return 0;
-}
-
-int SLclass_pop_short_obj (unsigned char type, short *x)
-{
- SLang_Object_Type obj;
-
- if (-1 == _SLang_pop_object_of_type (type, &obj, 0))
- return -1;
-
- *x = obj.v.short_val;
- return 0;
-}
-
-int SLclass_pop_char_obj (unsigned char type, char *x)
-{
- SLang_Object_Type obj;
-
- if (-1 == _SLang_pop_object_of_type (type, &obj, 0))
- return -1;
-
- *x = obj.v.char_val;
- return 0;
-}
-
-int SLclass_pop_ptr_obj (unsigned char type, VOID_STAR *s)
-{
- SLang_Object_Type obj;
-
- if (-1 == _SLang_pop_object_of_type (type, &obj, 0))
- {
- *s = (VOID_STAR) NULL;
- return -1;
- }
- *s = obj.v.ptr_val;
- return 0;
-}
-
diff --git a/mdk-stage1/slang/slcmd.c b/mdk-stage1/slang/slcmd.c
deleted file mode 100644
index 4a00a90fc..000000000
--- a/mdk-stage1/slang/slcmd.c
+++ /dev/null
@@ -1,351 +0,0 @@
-/* cmd line facility for slang */
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-#include "slinclud.h"
-
-#if SLANG_HAS_FLOAT
-# include <math.h>
-#endif
-
-#include "slang.h"
-#include "_slang.h"
-
-#ifndef HAVE_STDLIB_H
-/* Oh dear. Where is the prototype for atof? If not in stdlib, then
- * I do not know where. Not in math.h onsome systems either.
- */
-extern double atof ();
-#endif
-
-static SLcmd_Cmd_Type *SLcmd_find_command (char *s, SLcmd_Cmd_Type *cmd)
-{
- char *cmdstr;
- char chs = *s++, ch;
-
- while ((cmd->cmdfun != NULL)
- && (NULL != (cmdstr = cmd->cmd))
- && (0 != (ch = *cmdstr++)))
- {
- if ((ch == chs) && !strcmp (s, cmdstr)) return cmd;
- cmd++;
- }
- return NULL;
-}
-
-static int extract_token (char **strptr, char *buf)
-{
- char *s, *b;
- char ch, quote;
-
- *buf = 0;
-
- s = *strptr;
- while (((ch = *s) != 0)
- && ((ch == ' ') || (ch == '\t') || (ch == '\n')))
- s++;
-
- *strptr = s;
-
- if (ch == 0) return 0;
- if (ch == '%') return 0;
-
- b = buf;
-
- *b++ = ch;
- s++;
-
- if ((ch == '\'') || (ch == '"'))
- {
- quote = ch;
- while ((ch = *s) != 0)
- {
- s++;
- *b++ = ch;
- if (ch == quote)
- break;
-
- if (ch == '\\')
- {
- if (0 == (ch = *s))
- break;
- *b++ = ch;
- s++;
- }
- }
- *strptr = s;
- *b = 0;
- return 1;
- }
-
- while (((ch = *s) != 0)
- && (ch != ' ')
- && (ch != '\t')
- && (ch != '\n')
- && (ch != '%'))
- *b++ = *s++;
-
- *strptr = s;
- *b = 0;
- return 1;
-}
-
-static int allocate_arg_space (SLcmd_Cmd_Table_Type *table, int argc, unsigned int *space_ptr)
-{
- unsigned int space = *space_ptr;
- char *p;
-
- if (argc + 1 < (int) space)
- return 0;
-
- if (space > 128)
- {
- if (space > 1024) space += 1024;
- else space += 128;
- }
- else space += 32;
-
- if (NULL == (p = SLrealloc ((char *)table->string_args, space * sizeof (char *))))
- return -1;
- table->string_args = (char **)p;
- table->string_args [argc] = NULL;
-
- if (NULL == (p = SLrealloc ((char *)table->int_args, space * sizeof (int))))
- return -1;
- table->int_args = (int *)p;
-
- if (NULL == (p = SLrealloc ((char *)table->double_args, space * sizeof (double))))
- return -1;
- table->double_args = (double *)p;
-
- if (NULL == (p = SLrealloc ((char *)table->arg_type, space * sizeof (unsigned char))))
- return -1;
- table->arg_type = (unsigned char *)p;
-
- *space_ptr = space;
- return 0;
-}
-
-int SLcmd_execute_string (char *str, SLcmd_Cmd_Table_Type *table)
-{
- char *s, *b = NULL, *arg_type, *last_str, *cmd_name;
- SLcmd_Cmd_Type *cmd;
- char *buf;
- int token_present;
- int i;
- int status;
- unsigned int len;
- int argc;
- unsigned int space;
-
- table->argc = 0;
- table->string_args = NULL;
- table->int_args = NULL;
- table->double_args = NULL;
- table->arg_type = NULL;
-
- buf = SLmake_string (str);
- if (buf == NULL)
- return -1;
-
- status = extract_token (&str, buf);
- if (status <= 0)
- {
- SLfree (buf);
- return status;
- }
-
- if (((len = strlen (buf)) >= 32)
- || (NULL == (cmd = SLcmd_find_command (buf, table->table))))
- {
- SLang_verror (SL_UNDEFINED_NAME,"%s: invalid command", buf);
- SLfree (buf);
- return -1;
- }
-
- if (NULL == (cmd_name = SLmake_string (buf)))
- {
- SLfree (buf);
- return -1;
- }
-
- space = 0;
- argc = 0;
- if (-1 == allocate_arg_space (table, argc, &space))
- {
- SLfree (buf);
- return -1;
- }
- table->arg_type[argc] = SLANG_STRING_TYPE;
- table->string_args[argc++] = cmd_name;
-
- arg_type = cmd->arg_type;
- status = -1;
- while (*arg_type)
- {
- int guess_type = 0;
-
- last_str = str;
-
- if (-1 == allocate_arg_space (table, argc, &space))
- goto error;
-
- if (-1 == (token_present = extract_token (&str, buf)))
- goto error;
-
- table->string_args[argc] = NULL;
-
- if (token_present)
- {
- b = buf;
- len = strlen (b);
-
- if ((*b == '"') && (len > 1))
- {
- b++;
- len -= 2;
- b[len] = 0;
- guess_type = SLANG_STRING_TYPE;
- SLexpand_escaped_string (buf, b, b + len);
- len = strlen (buf);
- }
- else if ((*b == '\'') && (len > 1))
- {
- char ch;
- b++;
- len -= 2;
- b[len] = 0;
- guess_type = SLANG_INT_TYPE;
- ch = *b;
- if (ch == '\\')
- (void) _SLexpand_escaped_char (b, &ch);
- sprintf (buf, "%d", (unsigned char) ch);
- len = strlen (buf);
- }
- else guess_type = SLang_guess_type (buf);
- }
-
- switch (*arg_type++)
- {
- /* variable argument number */
- case 'v':
- if (token_present == 0) break;
- case 'V':
- if (token_present == 0)
- {
- SLang_verror (SL_INVALID_PARM, "%s: Expecting argument", cmd_name);
- goto error;
- }
-
- while (*last_str == ' ') last_str++;
- len = strlen (last_str);
- str = last_str + len;
-
- s = SLmake_nstring (last_str, len);
- if (s == NULL) goto error;
-
- table->arg_type[argc] = SLANG_STRING_TYPE;
- table->string_args[argc++] = s;
- break;
-
- case 's':
- if (token_present == 0) break;
- case 'S':
- if (token_present == 0)
- {
- SLang_verror (SL_TYPE_MISMATCH, "%s: Expecting string argument", cmd_name);
- goto error;
- }
-
- s = SLmake_nstring (buf, len);
- if (s == NULL) goto error;
- table->arg_type[argc] = SLANG_STRING_TYPE;
- table->string_args[argc++] = s;
- break;
-
- /* integer argument */
- case 'i':
- if (token_present == 0) break;
- case 'I':
- if ((token_present == 0) || (SLANG_INT_TYPE != guess_type))
- {
- SLang_verror (SL_TYPE_MISMATCH, "%s: Expecting integer argument", cmd_name);
- goto error;
- }
-
- table->arg_type[argc] = SLANG_INT_TYPE;
- table->int_args[argc++] = SLatoi((unsigned char *) buf);
- break;
-
- /* floating point arg */
-#if SLANG_HAS_FLOAT
- case 'f':
- if (token_present == 0) break;
- case 'F':
- if ((token_present == 0) || (SLANG_STRING_TYPE == guess_type))
- {
- SLang_verror (SL_TYPE_MISMATCH, "%s: Expecting double argument", cmd_name);
- goto error;
- }
- table->arg_type[argc] = SLANG_DOUBLE_TYPE;
- table->double_args[argc++] = atof(buf);
- break;
-#endif
- /* Generic type */
- case 'g':
- if (token_present == 0) break;
- case 'G':
- if (token_present == 0)
- {
- SLang_verror (SL_TYPE_MISMATCH, "%s: Expecting argument", cmd_name);
- goto error;
- }
-
- switch (guess_type)
- {
- case SLANG_INT_TYPE:
- table->arg_type[argc] = SLANG_INT_TYPE;
- table->int_args[argc++] = SLatoi((unsigned char *) buf);
- break;
-
- case SLANG_STRING_TYPE:
- s = SLmake_nstring (buf, len);
- if (s == NULL) goto error;
-
- table->arg_type[argc] = SLANG_STRING_TYPE;
- table->string_args[argc++] = s;
- break;
-#if SLANG_HAS_FLOAT
- case SLANG_DOUBLE_TYPE:
- table->arg_type[argc] = SLANG_DOUBLE_TYPE;
- table->double_args[argc++] = atof(buf);
-#endif
- }
- break;
- }
- }
-
- /* call function */
- status = (*cmd->cmdfun)(argc, table);
-
- error:
- if (table->string_args != NULL) for (i = 0; i < argc; i++)
- {
- if (NULL != table->string_args[i])
- {
- SLfree (table->string_args[i]);
- table->string_args[i] = NULL;
- }
- }
- SLfree ((char *)table->string_args); table->string_args = NULL;
- SLfree ((char *)table->double_args); table->double_args = NULL;
- SLfree ((char *)table->int_args); table->int_args = NULL;
- SLfree ((char *)table->arg_type); table->arg_type = NULL;
-
- SLfree (buf);
- return status;
-}
-
diff --git a/mdk-stage1/slang/slcmplex.c b/mdk-stage1/slang/slcmplex.c
deleted file mode 100644
index b210dfc04..000000000
--- a/mdk-stage1/slang/slcmplex.c
+++ /dev/null
@@ -1,1142 +0,0 @@
-/* Complex Data Type definition for S-Lang */
-/* Copyright (c) 1997, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-/* The rest of the file is enclosed in this #if */
-#if SLANG_HAS_COMPLEX
-
-#if SLANG_HAS_FLOAT
-# include <math.h>
-#endif
-
-#ifdef PI
-# undef PI
-#endif
-#define PI 3.14159265358979323846
-
-int SLang_pop_complex (double *r, double *i)
-{
- double *c;
-
- switch (SLang_peek_at_stack ())
- {
- case SLANG_COMPLEX_TYPE:
- if (-1 == SLclass_pop_ptr_obj (SLANG_COMPLEX_TYPE, (VOID_STAR *)&c))
- return -1;
- *r = c[0];
- *i = c[1];
- SLfree ((char *) c);
- break;
-
- default:
- *i = 0.0;
- if (-1 == SLang_pop_double (r, NULL, NULL))
- return -1;
- break;
-
- case -1:
- return -1;
- }
- return 0;
-}
-
-int SLang_push_complex (double r, double i)
-{
- double *c;
-
- c = (double *) SLmalloc (2 * sizeof (double));
- if (c == NULL)
- return -1;
-
- c[0] = r;
- c[1] = i;
-
- if (-1 == SLclass_push_ptr_obj (SLANG_COMPLEX_TYPE, (VOID_STAR) c))
- {
- SLfree ((char *) c);
- return -1;
- }
- return 0;
-}
-
-double *SLcomplex_times (double *c, double *a, double *b)
-{
- double a_real, b_real, a_imag, b_imag;
-
- a_real = a[0];
- b_real = b[0];
- a_imag = a[1];
- b_imag = b[1];
-
- c[0] = a_real * b_real - a_imag * b_imag;
- c[1] = a_imag * b_real + a_real * b_imag;
-
- return c;
-}
-
-double *SLcomplex_divide (double *c, double *a, double *b)
-{
- double a_real, b_real, a_imag, b_imag;
- double ratio, invden;
-
- a_real = a[0];
- b_real = b[0];
- a_imag = a[1];
- b_imag = b[1];
-
- /* Do it this way to avoid overflow in the denom */
- if (fabs(b_real) > fabs(b_imag))
- {
- ratio = b_imag / b_real;
- invden = 1.0 / (b_real + b_imag * ratio);
- c[0] = (a_real + ratio * a_imag) * invden;
- c[1] = (a_imag - a_real * ratio) * invden;
- }
- else
- {
- ratio = b_real / b_imag;
- invden = 1.0 / (b_real * ratio + b_imag);
- c[0] = (a_real * ratio + a_imag) * invden;
- c[1] = (a_imag * ratio - a_real) * invden;
- }
- return c;
-}
-
-/* a^b = exp (b log a); */
-double *SLcomplex_pow (double *c, double *a, double *b)
-{
- return SLcomplex_exp (c, SLcomplex_times (c, b, SLcomplex_log (c, a)));
-}
-
-static double *complex_dpow (double *c, double *a, double b)
-{
- SLcomplex_log (c, a);
- c[0] *= b;
- c[1] *= b;
- return SLcomplex_exp (c, c);
-}
-
-static double *dcomplex_pow (double *c, double a, double *b)
-{
- a = log (a);
- c[0] = a * b[0];
- c[1] = a * b[1];
- return SLcomplex_exp (c, c);
-}
-
-double SLcomplex_abs (double *z)
-{
- return SLmath_hypot (z[0], z[1]);
-}
-
-/* It appears that FORTRAN assumes that the branch cut for the log function
- * is along the -x axis. So, use this for atan2:
- */
-static double my_atan2 (double y, double x)
-{
- double val;
-
- val = atan (y/x);
-
- if (x >= 0)
- return val; /* I, IV */
-
- if (y <= 0) /* III */
- return val - PI;
-
- return PI + val; /* II */
-}
-
-static void polar_form (double *r, double *theta, double *z)
-{
- double x, y;
-
- *r = SLcomplex_abs (z);
-
- x = z[0];
- y = z[1];
-
- if (x == 0.0)
- {
- if (y >= 0)
- *theta = 0.5 * PI;
- else
- *theta = 1.5 * PI;
- }
- else *theta = my_atan2 (y, x);
-}
-
-double *SLcomplex_sin (double *sinz, double *z)
-{
- double x, y;
-
- x = z[0]; y = z[1];
- sinz[0] = sin (x) * cosh (y);
- sinz[1] = cos (x) * sinh (y);
- return sinz;
-}
-
-double *SLcomplex_cos (double *cosz, double *z)
-{
- double x, y;
-
- x = z[0]; y = z[1];
- cosz[0] = cos (x) * cosh (y);
- cosz[1] = -sin (x) * sinh (y);
- return cosz;
-}
-
-double *SLcomplex_exp (double *expz, double *z)
-{
- double r, i;
-
- r = exp (z[0]);
- i = z[1];
- expz[0] = r * cos (i);
- expz[1] = r * sin (i);
- return expz;
-}
-
-double *SLcomplex_log (double *logz, double *z)
-{
- double r, theta;
-
- polar_form (&r, &theta, z); /* log R.e^(ix) = log R + ix */
- logz[0] = log(r);
- logz[1] = theta;
- return logz;
-}
-
-double *SLcomplex_log10 (double *log10z, double *z)
-{
- double l10 = log (10.0);
- (void) SLcomplex_log (log10z, z);
- log10z[0] = log10z[0] / l10;
- log10z[1] = log10z[1] / l10;
- return log10z;
-}
-
-double *SLcomplex_sqrt (double *sqrtz, double *z)
-{
- double r, x, y;
-
- x = z[0];
- y = z[1];
-
- r = SLmath_hypot (x, y);
-
- if (r == 0.0)
- {
- sqrtz [0] = sqrtz [1] = 0.0;
- return sqrtz;
- }
-
- if (x >= 0.0)
- {
- x = sqrt (0.5 * (r + x));
- y = 0.5 * y / x;
- }
- else
- {
- r = sqrt (0.5 * (r - x));
- x = 0.5 * y / r;
- y = r;
-
- if (x < 0.0)
- {
- x = -x;
- y = -y;
- }
- }
-
- sqrtz[0] = x;
- sqrtz[1] = y;
-
- return sqrtz;
-}
-
-double *SLcomplex_tan (double *tanz, double *z)
-{
- double x, y, invden;
-
- x = 2 * z[0];
- y = 2 * z[1];
- invden = 1.0 / (cos (x) + cosh (y));
- tanz[0] = invden * sin (x);
- tanz[1] = invden * sinh (y);
- return tanz;
-}
-
-/* Utility Function */
-static void compute_alpha_beta (double *z, double *alpha, double *beta)
-{
- double x, y, a, b;
-
- x = z[0];
- y = z[1];
- a = 0.5 * SLmath_hypot (x + 1, y);
- b = 0.5 * SLmath_hypot (x - 1, y);
-
- *alpha = a + b;
- *beta = a - b;
-}
-
-double *SLcomplex_asin (double *asinz, double *z)
-{
- double alpha, beta;
-
- compute_alpha_beta (z, &alpha, &beta);
- asinz[0] = asin (beta);
- asinz[1] = log (alpha + sqrt (alpha * alpha - 1));
- return asinz;
-}
-
-double *SLcomplex_acos (double *acosz, double *z)
-{
- double alpha, beta;
-
- compute_alpha_beta (z, &alpha, &beta);
- acosz[0] = acos (beta);
- acosz[1] = -log (alpha + sqrt (alpha * alpha - 1));
- return acosz;
-}
-
-double *SLcomplex_atan (double *atanz, double *z)
-{
- double x, y;
- double z1[2], z2[2];
-
- x = z[0]; y = z[1];
- z1[0] = x;
- z1[1] = 1 + y;
- z2[0] = -x;
- z2[1] = 1 - y;
-
- SLcomplex_log (z1, SLcomplex_divide (z2, z1, z2));
- atanz[0] = -0.5 * z1[1];
- atanz[1] = 0.5 * z1[0];
-
- return atanz;
-}
-
-double *SLcomplex_sinh (double *sinhz, double *z)
-{
- double x, y;
- x = z[0]; y = z[1];
- sinhz[0] = sinh (x) * cos (y);
- sinhz[1] = cosh (x) * sin (y);
- return sinhz;
-}
-
-double *SLcomplex_cosh (double *coshz, double *z)
-{
- double x, y;
- x = z[0]; y = z[1];
- coshz[0] = cosh (x) * cos (y);
- coshz[1] = sinh (x) * sin (y);
- return coshz;
-}
-
-double *SLcomplex_tanh (double *tanhz, double *z)
-{
- double x, y, invden;
- x = 2 * z[0];
- y = 2 * z[1];
- invden = 1.0 / (cosh (x) + cos (y));
- tanhz[0] = invden * sinh (x);
- tanhz[1] = invden * sin (y);
- return tanhz;
-}
-#if 0
-static double *not_implemented (char *fun, double *p)
-{
- SLang_verror (SL_NOT_IMPLEMENTED, "%s for complex numbers has not been implemented",
- fun);
- *p = -1.0;
- return p;
-}
-#endif
-/* Use: asinh(z) = -i asin(iz) */
-double *SLcomplex_asinh (double *asinhz, double *z)
-{
- double iz[2];
-
- iz[0] = -z[1];
- iz[1] = z[0];
-
- (void) SLcomplex_asin (iz, iz);
- asinhz[0] = iz[1];
- asinhz[1] = -iz[0];
-
- return asinhz;
-}
-
-/* Use: acosh (z) = i acos(z) */
-double *SLcomplex_acosh (double *acoshz, double *z)
-{
- double iz[2];
-
- (void) SLcomplex_acos (iz, z);
- acoshz[0] = -iz[1];
- acoshz[1] = iz[0];
-
- return acoshz;
-}
-
-/* Use: atanh(z) = -i atan(iz) */
-double *SLcomplex_atanh (double *atanhz, double *z)
-{
- double iz[2];
-
- iz[0] = -z[1];
- iz[1] = z[0];
-
- (void) SLcomplex_atan (iz, iz);
- atanhz[0] = iz[1];
- atanhz[1] = -iz[0];
-
- return atanhz;
-}
-
-static int complex_binary_result (int op, unsigned char a, unsigned char b,
- unsigned char *c)
-{
- (void) a; (void) b;
-
- switch (op)
- {
- default:
- case SLANG_POW:
- case SLANG_PLUS:
- case SLANG_MINUS:
- case SLANG_TIMES:
- case SLANG_DIVIDE:
- *c = SLANG_COMPLEX_TYPE;
- break;
-
- case SLANG_EQ:
- case SLANG_NE:
- *c = SLANG_CHAR_TYPE;
- break;
- }
- return 1;
-}
-
-static int complex_complex_binary (int op,
- unsigned char a_type, VOID_STAR ap, unsigned int na,
- unsigned char b_type, VOID_STAR bp, unsigned int nb,
- VOID_STAR cp)
-{
- char *ic;
- double *a, *b, *c;
- unsigned int n, n_max;
- unsigned int da, db;
-
- (void) a_type;
- (void) b_type;
-
- a = (double *) ap;
- b = (double *) bp;
- c = (double *) cp;
- ic = (char *) cp;
-
- if (na == 1) da = 0; else da = 2;
- if (nb == 1) db = 0; else db = 2;
-
- if (na > nb) n_max = na; else n_max = nb;
- n_max = 2 * n_max;
-
- switch (op)
- {
- default:
- return 0;
-
- case SLANG_PLUS:
- for (n = 0; n < n_max; n += 2)
- {
- c[n] = a[0] + b[0];
- c[n + 1] = a[1] + b[1];
- a += da; b += db;
- }
- break;
-
- case SLANG_MINUS:
- for (n = 0; n < n_max; n += 2)
- {
- c[n] = a[0] - b[0];
- c[n + 1] = a[1] - b[1];
- a += da; b += db;
- }
- break;
-
- case SLANG_TIMES:
- for (n = 0; n < n_max; n += 2)
- {
- SLcomplex_times (c + n, a, b);
- a += da; b += db;
- }
- break;
-
- case SLANG_DIVIDE: /* / */
- for (n = 0; n < n_max; n += 2)
- {
- if ((b[0] == 0.0) && (b[1] == 0.0))
- {
- SLang_Error = SL_DIVIDE_ERROR;
- return -1;
- }
- SLcomplex_divide (c + n, a, b);
- a += da; b += db;
- }
- break;
-
- case SLANG_EQ: /* == */
- for (n = 0; n < n_max; n += 2)
- {
- ic[n/2] = ((a[0] == b[0]) && (a[1] == b[1]));
- a += da; b += db;
- }
- break;
-
- case SLANG_NE: /* != */
- for (n = 0; n < n_max; n += 2)
- {
- ic[n/2] = ((a[0] != b[0]) || (a[1] != b[1]));
- a += da; b += db;
- }
- break;
-
- case SLANG_POW:
- for (n = 0; n < n_max; n += 2)
- {
- SLcomplex_pow (c + n, a, b);
- a += da; b += db;
- }
- break;
-
- }
-
- return 1;
-}
-
-static int complex_double_binary (int op,
- unsigned char a_type, VOID_STAR ap, unsigned int na,
- unsigned char b_type, VOID_STAR bp, unsigned int nb,
- VOID_STAR cp)
-{
- char *ic;
- double *a, *b, *c;
- unsigned int n, n_max;
- unsigned int da, db;
-
- (void) a_type;
- (void) b_type;
-
- a = (double *) ap;
- b = (double *) bp;
- c = (double *) cp;
- ic = (char *) cp;
-
- if (na == 1) da = 0; else da = 2;
- if (nb == 1) db = 0; else db = 1;
-
- if (na > nb) n_max = na; else n_max = nb;
- n_max = 2 * n_max;
-
- switch (op)
- {
- default:
- return 0;
-
- case SLANG_PLUS:
- for (n = 0; n < n_max; n += 2)
- {
- c[n] = a[0] + b[0];
- c[n + 1] = a[1];
- a += da; b += db;
- }
- break;
-
- case SLANG_MINUS:
- for (n = 0; n < n_max; n += 2)
- {
- c[n] = a[0] - b[0];
- c[n + 1] = a[1];
- a += da; b += db;
- }
- break;
-
- case SLANG_TIMES:
- for (n = 0; n < n_max; n += 2)
- {
- double b0 = b[0];
- c[n] = a[0] * b0;
- c[n + 1] = a[1] * b0;
- a += da; b += db;
- }
- break;
-
- case SLANG_DIVIDE: /* / */
- for (n = 0; n < n_max; n += 2)
- {
- double b0 = b[0];
- if (b0 == 0.0)
- {
- SLang_Error = SL_DIVIDE_ERROR;
- return -1;
- }
- c[n] = a[0] / b0;
- c[n + 1] = a[1] / b0;
- a += da; b += db;
- }
- break;
-
- case SLANG_EQ: /* == */
- for (n = 0; n < n_max; n += 2)
- {
- ic[n/2] = ((a[0] == b[0]) && (a[1] == 0.0));
- a += da; b += db;
- }
- break;
-
- case SLANG_NE: /* != */
- for (n = 0; n < n_max; n += 2)
- {
- ic[n/2] = ((a[0] != b[0]) || (a[1] != 0.0));
- a += da; b += db;
- }
- break;
-
- case SLANG_POW:
- for (n = 0; n < n_max; n += 2)
- {
- complex_dpow (c + n, a, b[0]);
- a += da; b += db;
- }
- break;
- }
-
- return 1;
-}
-
-static int double_complex_binary (int op,
- unsigned char a_type, VOID_STAR ap, unsigned int na,
- unsigned char b_type, VOID_STAR bp, unsigned int nb,
- VOID_STAR cp)
-{
- char *ic;
- double *a, *b, *c;
- unsigned int n, n_max;
- unsigned int da, db;
-
- (void) a_type;
- (void) b_type;
-
- a = (double *) ap;
- b = (double *) bp;
- c = (double *) cp;
- ic = (char *) cp;
-
- if (na == 1) da = 0; else da = 1;
- if (nb == 1) db = 0; else db = 2;
-
- if (na > nb) n_max = na; else n_max = nb;
- n_max = 2 * n_max;
-
- switch (op)
- {
- default:
- return 0;
-
- case SLANG_PLUS:
- for (n = 0; n < n_max; n += 2)
- {
- c[n] = a[0] + b[0];
- c[n + 1] = b[1];
- a += da; b += db;
- }
- break;
-
- case SLANG_MINUS:
- for (n = 0; n < n_max; n += 2)
- {
- c[n] = a[0] - b[0];
- c[n + 1] = -b[1];
- a += da; b += db;
- }
- break;
-
- case SLANG_TIMES:
- for (n = 0; n < n_max; n += 2)
- {
- double a0 = a[0];
- c[n] = a0 * b[0];
- c[n + 1] = a0 * b[1];
- a += da; b += db;
- }
- break;
-
- case SLANG_DIVIDE: /* / */
- for (n = 0; n < n_max; n += 2)
- {
- double z[2];
- if ((b[0] == 0.0) && (b[1] == 0.0))
- {
- SLang_Error = SL_DIVIDE_ERROR;
- return -1;
- }
- z[0] = a[0];
- z[1] = 0.0;
- SLcomplex_divide (c + n, z, b);
- a += da; b += db;
- }
- break;
-
- case SLANG_EQ: /* == */
- for (n = 0; n < n_max; n += 2)
- {
- ic[n/2] = ((a[0] == b[0]) && (0.0 == b[1]));
- a += da; b += db;
- }
- break;
-
- case SLANG_NE: /* != */
- for (n = 0; n < n_max; n += 2)
- {
- ic[n/2] = ((a[0] != b[0]) || (0.0 != b[1]));
- a += da; b += db;
- }
- break;
-
- case SLANG_POW:
- for (n = 0; n < n_max; n += 2)
- {
- dcomplex_pow (c + n, a[0], b);
- a += da; b += db;
- }
- break;
- }
-
- return 1;
-}
-
-static int complex_generic_binary (int op,
- unsigned char a_type, VOID_STAR ap, unsigned int na,
- unsigned char b_type, VOID_STAR bp, unsigned int nb,
- VOID_STAR cp)
-{
- char *ic;
- char *b;
- double *a, *c;
- unsigned int n, n_max;
- unsigned int da, db;
- unsigned int sizeof_b;
- SLang_To_Double_Fun_Type to_double;
-
- if (NULL == (to_double = SLarith_get_to_double_fun (b_type, &sizeof_b)))
- return 0;
-
- (void) a_type;
-
- a = (double *) ap;
- b = (char *) bp;
- c = (double *) cp;
- ic = (char *) cp;
-
- if (na == 1) da = 0; else da = 2;
- if (nb == 1) db = 0; else db = sizeof_b;
-
- if (na > nb) n_max = na; else n_max = nb;
- n_max = 2 * n_max;
-
- switch (op)
- {
- default:
- return 0;
-
- case SLANG_POW:
- for (n = 0; n < n_max; n += 2)
- {
- complex_dpow (c + n, a, to_double((VOID_STAR)b));
- a += da; b += db;
- }
- break;
-
- case SLANG_PLUS:
- for (n = 0; n < n_max; n += 2)
- {
- c[n] = a[0] + to_double((VOID_STAR)b);
- c[n + 1] = a[1];
- a += da; b += db;
- }
- break;
-
- case SLANG_MINUS:
- for (n = 0; n < n_max; n += 2)
- {
- c[n] = a[0] - to_double((VOID_STAR)b);
- c[n + 1] = a[1];
- a += da; b += db;
- }
- break;
-
- case SLANG_TIMES:
- for (n = 0; n < n_max; n += 2)
- {
- double b0 = to_double((VOID_STAR)b);
- c[n] = a[0] * b0;
- c[n + 1] = a[1] * b0;
- a += da; b += db;
- }
- break;
-
- case SLANG_DIVIDE: /* / */
- for (n = 0; n < n_max; n += 2)
- {
- double b0 = to_double((VOID_STAR)b);
- if (b0 == 0)
- {
- SLang_Error = SL_DIVIDE_ERROR;
- return -1;
- }
- c[n] = a[0] / b0;
- c[n + 1] = a[1] / b0;
- a += da; b += db;
- }
- break;
-
- case SLANG_EQ: /* == */
- for (n = 0; n < n_max; n += 2)
- {
- ic[n/2] = ((a[0] == to_double((VOID_STAR)b)) && (a[1] == 0.0));
- a += da; b += db;
- }
- break;
-
- case SLANG_NE: /* != */
- for (n = 0; n < n_max; n += 2)
- {
- ic[n/2] = ((a[0] != to_double((VOID_STAR)b)) || (a[1] != 0.0));
- a += da; b += db;
- }
- break;
- }
-
- return 1;
-}
-
-static int generic_complex_binary (int op,
- unsigned char a_type, VOID_STAR ap, unsigned int na,
- unsigned char b_type, VOID_STAR bp, unsigned int nb,
- VOID_STAR cp)
-{
- double *b, *c;
- char *a, *ic;
- unsigned int n, n_max;
- unsigned int da, db;
- unsigned int sizeof_a;
- SLang_To_Double_Fun_Type to_double;
-
- if (NULL == (to_double = SLarith_get_to_double_fun (a_type, &sizeof_a)))
- return 0;
-
- (void) b_type;
-
- a = (char *) ap;
- b = (double *) bp;
- c = (double *) cp;
- ic = (char *) cp;
-
- if (na == 1) da = 0; else da = sizeof_a;
- if (nb == 1) db = 0; else db = 2;
-
- if (na > nb) n_max = na; else n_max = nb;
- n_max = 2 * n_max;
-
- switch (op)
- {
- default:
- return 0;
- case SLANG_POW:
- for (n = 0; n < n_max; n += 2)
- {
- dcomplex_pow (c + n, to_double((VOID_STAR)a), b);
- a += da; b += db;
- }
- break;
-
- case SLANG_PLUS:
- for (n = 0; n < n_max; n += 2)
- {
- c[n] = to_double((VOID_STAR)a) + b[0];
- c[n + 1] = b[1];
- a += da; b += db;
- }
- break;
-
- case SLANG_MINUS:
- for (n = 0; n < n_max; n += 2)
- {
- c[n] = to_double((VOID_STAR)a) - b[0];
- c[n + 1] = -b[1];
- a += da; b += db;
- }
- break;
-
- case SLANG_TIMES:
- for (n = 0; n < n_max; n += 2)
- {
- double a0 = to_double((VOID_STAR)a);
- c[n] = a0 * b[0];
- c[n + 1] = a0 * b[1];
- a += da; b += db;
- }
- break;
-
- case SLANG_DIVIDE: /* / */
- for (n = 0; n < n_max; n += 2)
- {
- double z[2];
- if ((b[0] == 0.0) && (b[1] == 0.0))
- {
- SLang_Error = SL_DIVIDE_ERROR;
- return -1;
- }
- z[0] = to_double((VOID_STAR)a);
- z[1] = 0.0;
- SLcomplex_divide (c + n, z, b);
- a += da; b += db;
- }
- break;
-
- case SLANG_EQ: /* == */
- for (n = 0; n < n_max; n += 2)
- {
- ic[n/2] = ((to_double((VOID_STAR)a) == b[0]) && (0.0 == b[1]));
- a += da; b += db;
- }
- break;
-
- case SLANG_NE: /* != */
- for (n = 0; n < n_max; n += 2)
- {
- ic[n/2] = ((to_double((VOID_STAR)a) != b[0]) || (0.0 != b[1]));
- a += da; b += db;
- }
- break;
- }
-
- return 1;
-}
-
-static int complex_unary_result (int op, unsigned char a, unsigned char *b)
-{
- (void) a;
-
- switch (op)
- {
- default:
- return 0;
-
- case SLANG_PLUSPLUS:
- case SLANG_MINUSMINUS:
- case SLANG_CHS:
- case SLANG_MUL2:
- *b = SLANG_COMPLEX_TYPE;
- break;
-
- case SLANG_SQR: /* |Real|^2 + |Imag|^2 ==> double */
- case SLANG_ABS: /* |z| ==> double */
- *b = SLANG_DOUBLE_TYPE;
- break;
-
- case SLANG_SIGN:
- *b = SLANG_INT_TYPE;
- break;
- }
- return 1;
-}
-
-static int complex_unary (int op,
- unsigned char a_type, VOID_STAR ap, unsigned int na,
- VOID_STAR bp)
-{
- unsigned int n;
- double *a, *b;
- int *ic;
-
- (void) a_type;
-
- a = (double *) ap;
- b = (double *) bp;
- ic = (int *) bp;
-
- na = 2 * na;
-
- switch (op)
- {
- default:
- return 0;
-
- case SLANG_PLUSPLUS:
- for (n = 0; n < na; n += 2) b[n] = (a[n] + 1);
- break;
- case SLANG_MINUSMINUS:
- for (n = 0; n < na; n += 2) b[n] = (a[n] - 1);
- break;
- case SLANG_CHS:
- for (n = 0; n < na; n += 2)
- {
- b[n] = -(a[n]);
- b[n + 1] = -(a[n + 1]);
- }
- break;
- case SLANG_SQR: /* |Real|^2 + |Imag|^2 ==> double */
- for (n = 0; n < na; n += 2)
- b[n/2] = (a[n] * a[n] + a[n + 1] * a[n + 1]);
- break;
-
- case SLANG_MUL2:
- for (n = 0; n < na; n += 2)
- {
- b[n] = (2 * a[n]);
- b[n + 1] = (2 * a[n + 1]);
- }
- break;
-
- case SLANG_ABS: /* |z| ==> double */
- for (n = 0; n < na; n += 2)
- b[n/2] = SLcomplex_abs (a + n);
- break;
-
- case SLANG_SIGN:
- /* Another creative extension. Lets return an integer which indicates
- * whether the complex number is in the upperhalf plane or not.
- */
- for (n = 0; n < na; n += 2)
- {
- if (a[n + 1] < 0.0) ic[n/2] = -1;
- else if (a[n + 1] > 0.0) ic[n/2] = 1;
- else ic[n/2] = 0;
- }
- break;
- }
-
- return 1;
-}
-
-static int
-complex_typecast (unsigned char from_type, VOID_STAR from, unsigned int num,
- unsigned char to_type, VOID_STAR to)
-{
- double *z;
- double *d;
- char *i;
- unsigned int n;
- unsigned int sizeof_i;
- SLang_To_Double_Fun_Type to_double;
-
- (void) to_type;
-
- z = (double *) to;
-
- switch (from_type)
- {
- default:
- if (NULL == (to_double = SLarith_get_to_double_fun (from_type, &sizeof_i)))
- return 0;
- i = (char *) from;
- for (n = 0; n < num; n++)
- {
- *z++ = to_double ((VOID_STAR) i);
- *z++ = 0.0;
-
- i += sizeof_i;
- }
- break;
-
- case SLANG_DOUBLE_TYPE:
- d = (double *) from;
- for (n = 0; n < num; n++)
- {
- *z++ = d[n];
- *z++ = 0.0;
- }
- break;
- }
-
- return 1;
-}
-
-static void complex_destroy (unsigned char type, VOID_STAR ptr)
-{
- (void) type;
- SLfree ((char *)*(double **) ptr);
-}
-
-static int complex_push (unsigned char type, VOID_STAR ptr)
-{
- double *z;
-
- (void) type;
- z = *(double **) ptr;
- return SLang_push_complex (z[0], z[1]);
-}
-
-static int complex_pop (unsigned char type, VOID_STAR ptr)
-{
- double *z;
-
- (void) type;
- z = *(double **) ptr;
- return SLang_pop_complex (&z[0], &z[1]);
-}
-
-int _SLinit_slcomplex (void)
-{
- SLang_Class_Type *cl;
- unsigned char *types;
-
- if (NULL == (cl = SLclass_allocate_class ("Complex_Type")))
- return -1;
-
- (void) SLclass_set_destroy_function (cl, complex_destroy);
- (void) SLclass_set_push_function (cl, complex_push);
- (void) SLclass_set_pop_function (cl, complex_pop);
-
- if (-1 == SLclass_register_class (cl, SLANG_COMPLEX_TYPE, 2 * sizeof (double),
- SLANG_CLASS_TYPE_VECTOR))
- return -1;
-
- types = _SLarith_Arith_Types;
- while (*types != SLANG_DOUBLE_TYPE)
- {
- unsigned char t = *types++;
-
- if ((-1 == SLclass_add_binary_op (t, SLANG_COMPLEX_TYPE, generic_complex_binary, complex_binary_result))
- || (-1 == SLclass_add_binary_op (SLANG_COMPLEX_TYPE, t, complex_generic_binary, complex_binary_result))
- || (-1 == (SLclass_add_typecast (t, SLANG_COMPLEX_TYPE, complex_typecast, 1))))
- return -1;
- }
-
- if ((-1 == (SLclass_add_binary_op (SLANG_COMPLEX_TYPE, SLANG_COMPLEX_TYPE, complex_complex_binary, complex_binary_result)))
- || (-1 == (SLclass_add_binary_op (SLANG_COMPLEX_TYPE, SLANG_DOUBLE_TYPE, complex_double_binary, complex_binary_result)))
- || (-1 == (SLclass_add_binary_op (SLANG_DOUBLE_TYPE, SLANG_COMPLEX_TYPE, double_complex_binary, complex_binary_result)))
- || (-1 == (SLclass_add_unary_op (SLANG_COMPLEX_TYPE, complex_unary, complex_unary_result)))
- || (-1 == (SLclass_add_typecast (SLANG_DOUBLE_TYPE, SLANG_COMPLEX_TYPE, complex_typecast, 1))))
- return -1;
-
- return 0;
-}
-
-#endif /* if SLANG_HAS_COMPLEX */
-
diff --git a/mdk-stage1/slang/slcompat.c b/mdk-stage1/slang/slcompat.c
deleted file mode 100644
index 5aa122483..000000000
--- a/mdk-stage1/slang/slcompat.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* These functions are provided for backward compatibility and are obsolete.
- * Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-/* Compatibility */
-int SLang_init_slunix (void)
-{
- if ((-1 == SLang_init_posix_dir ())
- || (-1 == SLang_init_posix_process ())
- || (-1 == SLdefine_for_ifdef ("__SLUNIX__")))
- return -1;
-
- return 0;
-}
-
-int SLang_init_slfile (void)
-{
- if ((-1 == SLang_init_stdio ())
- || (-1 == SLang_init_posix_dir ())
- || (-1 == SLdefine_for_ifdef("__SLFILE__")))
- return -1;
-
- return 0;
-}
-
diff --git a/mdk-stage1/slang/slcurses.c b/mdk-stage1/slang/slcurses.c
deleted file mode 100644
index f1212afc8..000000000
--- a/mdk-stage1/slang/slcurses.c
+++ /dev/null
@@ -1,972 +0,0 @@
-/* Copyright (c) 1998, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-#include "slinclud.h"
-
-#include <signal.h>
-#include <errno.h>
-
-#include "slang.h"
-#include "_slang.h"
-#include "slcurses.h"
-
-/* This file is meant to implement a primitive curses implementation in
- * terms of SLsmg calls. The fact is that the interfaces are sufficiently
- * different that a 100% emulation is not possible.
- */
-
-SLcurses_Window_Type *SLcurses_Stdscr;
-int SLcurses_Esc_Delay = 150; /* 0.15 seconds */
-SLtt_Char_Type SLcurses_Acs_Map [128];
-int SLcurses_Is_Endwin = 1;
-int SLcurses_Num_Colors = 8;
-
-static void blank_line (SLsmg_Char_Type *b, unsigned int len, SLsmg_Char_Type color)
-{
- SLsmg_Char_Type *bmax;
-
- bmax = b + len;
- color = SLSMG_BUILD_CHAR(' ', color);
-
- while (b < bmax) *b++ = color;
-}
-
-static int va_mvprintw (SLcurses_Window_Type *w, int r, int c, int do_move,
- char *fmt, va_list ap)
-{
- char buf[1024];
-
- if (do_move) SLcurses_wmove (w, r, c);
-
- (void) _SLvsnprintf (buf, sizeof(buf), fmt, ap);
-
- SLcurses_waddnstr (w, buf, -1);
- return 0;
-}
-
-int SLcurses_mvprintw (int r, int c, char *fmt, ...)
-{
- va_list ap;
-
- va_start(ap, fmt);
- va_mvprintw (SLcurses_Stdscr, r, c, 1, fmt, ap);
- va_end(ap);
-
- return 0;
-}
-
-int SLcurses_mvwprintw (SLcurses_Window_Type *w, int r, int c, char *fmt, ...)
-{
- va_list ap;
-
- va_start(ap, fmt);
- va_mvprintw (w, r, c, 1, fmt, ap);
- va_end(ap);
-
- return 0;
-}
-
-int SLcurses_wprintw (SLcurses_Window_Type *w, char *fmt, ...)
-{
- va_list ap;
-
- va_start(ap, fmt);
- va_mvprintw (w, 0, 0, 0, fmt, ap);
- va_end(ap);
-
- return 0;
-}
-
-int SLcurses_printw (char *fmt, ...)
-{
- va_list ap;
-
- va_start(ap, fmt);
- va_mvprintw (SLcurses_Stdscr, 0, 0, 0, fmt, ap);
- va_end(ap);
-
- return 0;
-}
-
-int SLcurses_nil (void)
-{
- return 0;
-}
-
-int SLcurses_has_colors(void)
-{
- return SLtt_Use_Ansi_Colors;
-}
-
-int SLcurses_nodelay (SLcurses_Window_Type *w, int onoff)
-{
- w->delay_off = (onoff ? 0 : -1);
- return 0;
-}
-
-int SLcurses_wgetch (SLcurses_Window_Type *w)
-{
- if (w == NULL)
- return ERR;
-
- SLcurses_wrefresh (w);
-
- if ((w->delay_off == -1) ||
- SLang_input_pending (w->delay_off))
- {
- if (w->use_keypad)
- {
- int ch = SLang_getkey ();
- if (ch == '\033')
- {
- if (0 == SLang_input_pending (ESCDELAY / 100))
- return ch;
- }
- else if (ch == 0xFFFF) return ERR;
- SLang_ungetkey (ch);
- return SLkp_getkey ();
- }
- return SLang_getkey ();
- }
-
- return ERR;
-}
-
-int SLcurses_getch (void)
-{
- return SLcurses_wgetch (SLcurses_Stdscr);
-}
-
-/* This is a super hack. That fact is that SLsmg and curses
- * are incompatible.
- */
-static unsigned char Color_Objects[256];
-
-static unsigned int map_attr_to_object (SLtt_Char_Type attr)
-{
- unsigned int obj;
- SLtt_Char_Type at;
-
- obj = (attr >> 8) & 0xFF;
-
- if (SLtt_Use_Ansi_Colors)
- {
- if (Color_Objects[obj] != 0) return obj;
-
- at = SLtt_get_color_object (obj & 0xF);
-
- if (attr & A_BOLD) at |= SLTT_BOLD_MASK;
- if (attr & A_UNDERLINE) at |= SLTT_ULINE_MASK;
- if (attr & A_REVERSE) at |= SLTT_REV_MASK;
-
- SLtt_set_color_object (obj, at);
-
- Color_Objects[obj] = 1;
- }
- else obj = obj & 0xF0;
-
- return obj;
-
-}
-
-int SLcurses_start_color (void)
-{
- int f, b;
- int obj;
-
- if (SLtt_Use_Ansi_Colors == 0) return -1;
-
- obj = 0;
- for (f = 0; f < 16; f++)
- {
- for (b = 0; b < 16; b++)
- {
- obj++;
- SLtt_set_color_fgbg (obj, f, b);
- }
- }
- return 0;
-}
-
-#ifdef SIGINT
-static void sigint_handler (int sig)
-{
- SLang_reset_tty ();
- SLsmg_reset_smg ();
- exit (sig);
-}
-#endif
-
-/* Values are assumed to be 0, 1, 2. This fact is exploited */
-static int TTY_State;
-
-static int init_tty (int suspend_ok)
-{
- if (-1 == SLang_init_tty (-1, 1, 0))
- return -1;
-
-#ifdef REAL_UNIX_SYSTEM
- if (suspend_ok) SLtty_set_suspend_state (1);
-#endif
- return 0;
-}
-
-int SLcurses_raw (void)
-{
- TTY_State = 1;
- return init_tty (0);
-}
-
-int SLcurses_cbreak (void)
-{
- TTY_State = 2;
- return init_tty (1);
-}
-
-#if defined(SIGTSTP) && defined(SIGSTOP)
-static void sigtstp_handler (int sig)
-{
- sig = errno;
-
- SLsmg_suspend_smg ();
-
- if (TTY_State)
- SLang_reset_tty ();
-
- kill(getpid(),SIGSTOP);
-
- SLsmg_resume_smg ();
-
- if (TTY_State) init_tty (TTY_State - 1);
-
- signal (SIGTSTP, sigtstp_handler);
- errno = sig;
-}
-#endif
-
-SLcurses_Window_Type *SLcurses_initscr (void)
-{
- SLcurses_Is_Endwin = 0;
- SLsmg_Newline_Behavior = SLSMG_NEWLINE_MOVES;
- SLtt_get_terminfo ();
-
-#if !defined(IBMPC_SYSTEM) && !defined(VMS)
- if (-1 == (SLcurses_Num_Colors = SLtt_tgetnum ("Co")))
-#endif
- SLcurses_Num_Colors = 8;
-
- if ((-1 == SLkp_init ())
- || (-1 == SLcurses_cbreak ())
- || (NULL == (SLcurses_Stdscr = SLcurses_newwin (0, 0, 0, 0)))
- || (-1 == SLsmg_init_smg ()))
- {
- SLang_doerror (NULL);
- SLang_exit_error ("SLcurses_initscr: init failed\n");
- return NULL;
- }
-
-#ifdef SIGINT
- signal (SIGINT, sigint_handler);
-#endif
-
-#if defined(SIGTSTP) && defined(SIGSTOP)
- signal (SIGTSTP, sigtstp_handler);
-#endif
-
- SLtt_set_mono (A_BOLD >> 8, NULL, SLTT_BOLD_MASK);
- SLtt_set_mono (A_UNDERLINE >> 8, NULL, SLTT_ULINE_MASK);
- SLtt_set_mono (A_REVERSE >> 8, NULL, SLTT_REV_MASK);
- /* SLtt_set_mono (A_BLINK >> 8, NULL, SLTT_BLINK_MASK); */
- SLtt_set_mono ((A_BOLD|A_UNDERLINE) >> 8, NULL, SLTT_ULINE_MASK|SLTT_BOLD_MASK);
- SLtt_set_mono ((A_REVERSE|A_UNDERLINE) >> 8, NULL, SLTT_ULINE_MASK|SLTT_REV_MASK);
-
- if (SLtt_Has_Alt_Charset)
- {
- SLcurses_Acs_Map[SLSMG_ULCORN_CHAR] = SLSMG_ULCORN_CHAR | A_ALTCHARSET;
- SLcurses_Acs_Map[SLSMG_URCORN_CHAR] = SLSMG_URCORN_CHAR | A_ALTCHARSET;
- SLcurses_Acs_Map[SLSMG_LLCORN_CHAR] = SLSMG_LLCORN_CHAR | A_ALTCHARSET;
- SLcurses_Acs_Map[SLSMG_LRCORN_CHAR] = SLSMG_LRCORN_CHAR | A_ALTCHARSET;
- SLcurses_Acs_Map[SLSMG_UTEE_CHAR] = SLSMG_UTEE_CHAR | A_ALTCHARSET;
- SLcurses_Acs_Map[SLSMG_DTEE_CHAR] = SLSMG_DTEE_CHAR | A_ALTCHARSET;
- SLcurses_Acs_Map[SLSMG_LTEE_CHAR] = SLSMG_LTEE_CHAR | A_ALTCHARSET;
- SLcurses_Acs_Map[SLSMG_RTEE_CHAR] = SLSMG_RTEE_CHAR | A_ALTCHARSET;
- SLcurses_Acs_Map[SLSMG_VLINE_CHAR] = SLSMG_VLINE_CHAR | A_ALTCHARSET;
- SLcurses_Acs_Map[SLSMG_HLINE_CHAR] = SLSMG_HLINE_CHAR | A_ALTCHARSET;
- SLcurses_Acs_Map[SLSMG_PLUS_CHAR] = SLSMG_PLUS_CHAR | A_ALTCHARSET;
- SLcurses_Acs_Map[SLSMG_CKBRD_CHAR] = SLSMG_CKBRD_CHAR | A_ALTCHARSET;
- }
- else
- {
- /* ugly defaults to use on terminals which don't support graphics */
- SLcurses_Acs_Map[SLSMG_ULCORN_CHAR] = '+';
- SLcurses_Acs_Map[SLSMG_URCORN_CHAR] = '+';
- SLcurses_Acs_Map[SLSMG_LLCORN_CHAR] = '+';
- SLcurses_Acs_Map[SLSMG_LRCORN_CHAR] = '+';
- SLcurses_Acs_Map[SLSMG_UTEE_CHAR] = '+';
- SLcurses_Acs_Map[SLSMG_DTEE_CHAR] = '+';
- SLcurses_Acs_Map[SLSMG_LTEE_CHAR] = '+';
- SLcurses_Acs_Map[SLSMG_RTEE_CHAR] = '+';
- SLcurses_Acs_Map[SLSMG_VLINE_CHAR] = '|';
- SLcurses_Acs_Map[SLSMG_HLINE_CHAR] = '-';
- SLcurses_Acs_Map[SLSMG_PLUS_CHAR] = '+';
- SLcurses_Acs_Map[SLSMG_CKBRD_CHAR] = '#';
- }
-
- return SLcurses_Stdscr;
-}
-
-int SLcurses_wattrset (SLcurses_Window_Type *w, SLtt_Char_Type ch)
-{
- unsigned int obj;
-
- obj = map_attr_to_object (ch);
- w->color = obj;
- w->attr = ch;
- return 0;
-}
-
-int SLcurses_wattroff (SLcurses_Window_Type *w, SLtt_Char_Type ch)
-{
- if (SLtt_Use_Ansi_Colors)
- return SLcurses_wattrset (w, 0);
-
- w->attr &= ~ch;
- return SLcurses_wattrset (w, w->attr);
-}
-
-int SLcurses_wattron (SLcurses_Window_Type *w, SLtt_Char_Type ch)
-{
- if (SLtt_Use_Ansi_Colors)
- return SLcurses_wattrset (w, ch);
-
- w->attr |= ch;
- return SLcurses_wattrset (w, w->attr);
-}
-
-int SLcurses_delwin (SLcurses_Window_Type *w)
-{
- if (w == NULL) return 0;
- if (w->lines != NULL)
- {
- SLsmg_Char_Type **lines = w->lines;
- if (w->is_subwin == 0)
- {
- unsigned int r, rmax;
-
- rmax = w->nrows;
- for (r = 0; r < rmax; r++)
- {
- SLfree ((char *)lines[r]);
- }
- }
-
- SLfree ((char *)lines);
- }
-
- SLfree ((char *)w);
- if (w == SLcurses_Stdscr)
- SLcurses_Stdscr = NULL;
- return 0;
-}
-
-SLcurses_Window_Type *SLcurses_newwin (unsigned int nrows, unsigned int ncols,
- unsigned int r, unsigned int c)
-{
- SLcurses_Window_Type *win;
- SLsmg_Char_Type **lines;
-
- if (r >= (unsigned int) SLtt_Screen_Rows)
- return NULL;
- if (c >= (unsigned int) SLtt_Screen_Cols)
- return NULL;
-
- if (NULL == (win = (SLcurses_Window_Type *) SLmalloc (sizeof (SLcurses_Window_Type))))
- return NULL;
-
- SLMEMSET ((char *) win, 0, sizeof (SLcurses_Window_Type));
-
- if (nrows == 0)
- nrows = (unsigned int) SLtt_Screen_Rows - r;
- if (ncols == 0)
- ncols = (unsigned int) SLtt_Screen_Cols - c;
-
- lines = (SLsmg_Char_Type **) SLmalloc (nrows * sizeof (SLsmg_Char_Type *));
- if (lines == NULL)
- {
- SLcurses_delwin (win);
- return NULL;
- }
-
- SLMEMSET ((char *) lines, 0, nrows * sizeof (SLsmg_Char_Type *));
-
- win->lines = lines;
- win->scroll_max = win->nrows = nrows;
- win->ncols = ncols;
- win->_begy = r;
- win->_begx = c;
- win->_maxx = (c + ncols) - 1;
- win->_maxy = (r + nrows) - 1;
- win->modified = 1;
- win->delay_off = -1;
-
- for (r = 0; r < nrows; r++)
- {
- SLsmg_Char_Type *b;
-
- b = (SLsmg_Char_Type *) SLmalloc (ncols * sizeof (SLsmg_Char_Type));
- if (b == NULL)
- {
- SLcurses_delwin (win);
- return NULL;
- }
- lines [r] = b;
- blank_line (b, ncols, 0);
- }
-
- return win;
-}
-
-int SLcurses_wmove (SLcurses_Window_Type *win, unsigned int r, unsigned int c)
-{
- if (win == NULL) return -1;
- win->_cury = r;
- win->_curx = c;
- win->modified = 1;
- return 0;
-}
-
-static int do_newline (SLcurses_Window_Type *w)
-{
- w->_curx = 0;
- w->_cury += 1;
- if (w->_cury >= w->scroll_max)
- {
- w->_cury = w->scroll_max - 1;
- if (w->scroll_ok)
- SLcurses_wscrl (w, 1);
- }
-
- return 0;
-}
-
-int SLcurses_waddch (SLcurses_Window_Type *win, SLtt_Char_Type attr)
-{
- SLsmg_Char_Type *b, ch;
- SLsmg_Char_Type color;
-
- if (win == NULL) return -1;
-
- if (win->_cury >= win->nrows)
- {
- /* Curses seems to move current postion to top of window. */
- win->_cury = win->_curx = 0;
- return -1;
- }
-
- win->modified = 1;
-
- ch = SLSMG_EXTRACT_CHAR(attr);
-
- if (attr == ch)
- color = win->color;
- else
- {
- /* hack to pick up the default color for graphics chars */
- if (((attr & A_COLOR) == 0) && ((attr & A_ALTCHARSET) != 0))
- {
- /* FIXME: priority=medium: Use SLSMG_?? instead of << */
- attr |= win->color << 8;
- }
- color = map_attr_to_object (attr);
- }
-
- if (ch < ' ')
- {
- if (ch == '\n')
- {
- SLcurses_wclrtoeol (win);
- return do_newline (win);
- }
-
- if (ch == '\r')
- {
- win->_curx = 0;
- return 0;
- }
-
- if (ch == '\b')
- {
- if (win->_curx > 0)
- win->_curx--;
-
- return 0;
- }
-
- /* HACK HACK!!!! */
- if (ch == '\t') ch = ' ';
- }
-
- if (win->_curx >= win->ncols)
- do_newline (win);
-
- b = win->lines[win->_cury] + win->_curx;
- *b = SLSMG_BUILD_CHAR(ch,color);
- win->_curx++;
-
- return 0;
-}
-
-int SLcurses_wnoutrefresh (SLcurses_Window_Type *w)
-{
- unsigned int len;
- unsigned int r, c;
- unsigned int i, imax;
-
- if (SLcurses_Is_Endwin)
- {
- if (TTY_State) init_tty (TTY_State - 1);
- SLsmg_resume_smg ();
- SLcurses_Is_Endwin = 0;
- }
-
- if (w == NULL)
- {
- SLsmg_refresh ();
- return -1;
- }
-
- if (w->modified == 0)
- return 0;
-
- r = w->_begy;
- c = w->_begx;
-
- len = w->ncols;
- imax = w->nrows;
-
- for (i = 0; i < imax; i++)
- {
- SLsmg_gotorc (r, c);
- SLsmg_write_color_chars (w->lines[i], len);
- r++;
- }
-
- if (w->has_box)
- SLsmg_draw_box(w->_begy, w->_begx, w->nrows, w->ncols);
-
- SLsmg_gotorc (w->_begy + w->_cury, w->_begx + w->_curx);
- w->modified = 0;
- return 0;
-}
-
-int SLcurses_wrefresh (SLcurses_Window_Type *w)
-{
- if (w == NULL)
- return -1;
-
- if (w->modified == 0)
- return 0;
-
- SLcurses_wnoutrefresh (w);
- SLsmg_refresh ();
- return 0;
-}
-
-int SLcurses_wclrtoeol (SLcurses_Window_Type *w)
-{
- SLsmg_Char_Type *b, *bmax;
- SLsmg_Char_Type blank;
-
- if (w == NULL) return -1;
- if (w->_cury >= w->nrows)
- return 0;
-
- w->modified = 1;
-
- blank = SLSMG_BUILD_CHAR(' ',w->color);
-
- b = w->lines[w->_cury];
- bmax = b + w->ncols;
- b += w->_curx;
-
- while (b < bmax) *b++ = blank;
- return 0;
-}
-
-int SLcurses_wclrtobot (SLcurses_Window_Type *w)
-{
- SLsmg_Char_Type *b, *bmax;
- SLsmg_Char_Type blank;
- unsigned int r;
-
- if (w == NULL) return -1;
-
- w->modified = 1;
- blank = SLSMG_BUILD_CHAR(' ',w->color);
- SLcurses_wclrtoeol (w);
- for (r = w->_cury + 1; r < w->nrows; r++)
- {
- b = w->lines [r];
- bmax = b + w->ncols;
-
- while (b < bmax) *b++ = blank;
- }
-
- return 0;
-}
-
-int SLcurses_wscrl (SLcurses_Window_Type *w, int n)
-{
- SLsmg_Char_Type **lines;
- unsigned int r, rmax, rmin, ncols;
- SLsmg_Char_Type color;
-
- if ((w == NULL) || (w->scroll_ok == 0))
- return -1;
-
- w->modified = 1;
-#if 0
- if (w->is_subwin)
- {
- SLang_reset_tty ();
- SLsmg_reset_smg ();
- fprintf (stderr, "\rAttempt to scroll a subwindow\n");
- exit (1);
- }
-#endif
-
- color = w->color;
- ncols = w->ncols;
- lines = w->lines;
- rmax = w->scroll_max;
- rmin = w->scroll_min;
- if (rmax > w->nrows)
- rmax = w->nrows;
- if (rmin >= rmax)
- return 0;
-
- while (n > 0)
- {
- for (r = rmin + 1; r < rmax; r++)
- {
- /* lines[r - 1] = lines[r]; */
- memcpy ((char *)lines[r - 1], (char *)lines[r],
- sizeof (SLsmg_Char_Type) * ncols);
- }
- blank_line (lines[rmax - 1], ncols, color);
- n--;
- }
-
- rmax--;
- while (n < 0)
- {
- for (r = rmax; r > rmin; r--)
- {
- memcpy ((char *)lines[r], (char *)lines[r - 1],
- sizeof (SLsmg_Char_Type) * ncols);
- }
- blank_line (lines[rmin], ncols, color);
- n++;
- }
-
- /* wmove (w, w->nrows - 1, 0); */
- /* wclrtobot (w); */
- return 0;
-}
-
-/* Note: if len is < 0, entire string will be used.
- */
-int SLcurses_waddnstr (SLcurses_Window_Type *w, char *str, int len)
-{
- SLsmg_Char_Type *b;
- SLsmg_Char_Type color;
- unsigned char ch;
- unsigned int nrows, ncols, crow, ccol;
-
- if ((w == NULL)
- || (str == NULL))
- return -1;
-
- w->modified = 1;
- nrows = w->nrows;
- ncols = w->ncols;
- crow = w->_cury;
- ccol = w->_curx;
- color = w->color;
-
- if (w->scroll_max <= nrows)
- nrows = w->scroll_max;
-
- if (crow >= nrows)
- crow = 0; /* wrap back to top */
-
- b = w->lines [crow] + ccol;
-
- while (len && ((ch = (unsigned char) *str++) != 0))
- {
- len--;
-
- if (ch == '\n')
- {
- w->_cury = crow;
- w->_curx = ccol;
- SLcurses_wclrtoeol (w);
- do_newline (w);
- crow = w->_cury;
- ccol = w->_curx;
- b = w->lines[crow];
- continue;
- }
-
- if (ccol >= ncols)
- {
- ccol = 0;
- crow++;
- if (crow >= nrows)
- {
- w->_curx = 0;
- w->_cury = crow;
- do_newline (w);
- crow = w->_cury;
- ccol = w->_curx;
- }
-
- b = w->lines [crow];
- }
-
- if (ch == '\t')
- {
- unsigned int n = ccol;
- n += SLsmg_Tab_Width;
- n = SLsmg_Tab_Width - (n % SLsmg_Tab_Width);
- if (ccol + n > ncols) n = ncols - len;
- ccol += n;
- while (n--)
- *b++ = SLSMG_BUILD_CHAR(' ',color);
- continue;
- }
-
- *b++ = SLSMG_BUILD_CHAR(ch, color);
- ccol++;
- }
-
- w->_curx = ccol;
- w->_cury = crow;
-
- return 0;
-}
-
-/* This routine IS NOT CORRECT. It needs to compute the proper overlap
- * and copy accordingly. Here, I just assume windows are same size.
- */
-#if 0
-int SLcurses_overlay (SLcurses_Window_Type *swin, SLcurses_Window_Type *dwin)
-{
- SLsmg_Char_Type *s, *smax, *d, *dmax;
-
- if ((swin == NULL) || (dwin == NULL))
- return -1;
-
- s = swin->buf;
- smax = swin->bufmax;
- d = dwin->buf;
- dmax = dwin->bufmax;
-
- while ((s < smax) && (d < dmax))
- {
- SLsmg_Char_Type ch = *s++;
- if (SLSMG_EXTRACT_CHAR(ch) != ' ')
- *d = ch;
- d++;
- }
-
- return -1; /* not implemented */
-}
-
-#endif
-
-SLcurses_Window_Type *SLcurses_subwin (SLcurses_Window_Type *orig,
- unsigned int nlines, unsigned int ncols,
- unsigned int begin_y, unsigned int begin_x)
-{
- SLcurses_Window_Type *sw;
- int r, c;
- unsigned int i;
-
- if (orig == NULL)
- return NULL;
-
- sw = (SLcurses_Window_Type *) SLmalloc (sizeof (SLcurses_Window_Type));
- if (sw == NULL)
- return NULL;
-
- SLMEMSET ((char *)sw, 0, sizeof (SLcurses_Window_Type));
-#if 1
- r = begin_y - orig->_begy;
-#else
- r = 1 + ((int)orig->nrows - (int)nlines) / 2;
-#endif
- if (r < 0) r = 0;
- if (r + nlines > orig->nrows) nlines = orig->nrows - r;
-
- c = ((int)orig->ncols - (int)ncols) / 2;
- if (c < 0) c = 0;
- if (c + ncols > orig->ncols) ncols = orig->ncols - c;
-
- sw->scroll_min = 0;
- sw->scroll_max = sw->nrows = nlines;
- sw->ncols = ncols;
- sw->_begy = begin_y;
- sw->_begx = begin_x;
- sw->_maxx = (begin_x + ncols) - 1;
- sw->_maxy = (begin_y + nlines) - 1;
-
- sw->lines = (SLsmg_Char_Type **) SLmalloc (nlines * sizeof (SLsmg_Char_Type *));
- if (sw->lines == NULL)
- {
- SLcurses_delwin (sw);
- return NULL;
- }
-
- for (i = 0; i < nlines; i++)
- {
- sw->lines [i] = orig->lines [r + i] + c;
- }
-
- sw->is_subwin = 1;
- return sw;
-}
-
-int SLcurses_wclear (SLcurses_Window_Type *w)
-{
- unsigned int i;
-
- if (w != NULL) w->modified = 1;
- for (i=0; i < w->nrows; i++)
- blank_line (w->lines[i], w->ncols, w->color);
- return 0;
-}
-
-int SLcurses_wdelch (SLcurses_Window_Type *w)
-{
- SLsmg_Char_Type *p, *p1, *pmax;
-
- p = w->lines[w->_cury];
- pmax = p + w->ncols;
- p += w->_curx;
- p1 = p + 1;
-
- while (p1 < pmax)
- {
- *p = *p1;
- p = p1;
- p1++;
- }
-
- if (p < pmax)
- *p = SLSMG_BUILD_CHAR(' ',w->color);
-
- w->modified = 1;
- return 0;
-}
-
-int SLcurses_winsch (SLcurses_Window_Type *w, int ch)
-{
- SLsmg_Char_Type *p, *p1, *pmax;
-
- p = w->lines[w->_cury];
- pmax = p + w->ncols;
- p += w->_curx;
- p1 = pmax - 1;
-
- while (pmax > p)
- {
- *pmax = *p1;
- pmax = p1;
- p1--;
- }
-
- if (p < pmax)
- *p = SLSMG_BUILD_CHAR(ch, w->color);
-
- w->modified = 1;
- return 0;
-}
-
-int SLcurses_endwin (void)
-{
- SLcurses_Is_Endwin = 1;
- SLsmg_suspend_smg ();
- SLang_reset_tty ();
- return 0;
-}
-
-#if 0
-int SLcurses_mvwscanw (SLcurses_Window_Type *w, unsigned int r, unsigned int c,
- char *fmt, ...)
-{
-#if HAVE_VFSCANF
- int ret;
- va_list ap;
-
- SLcurses_wmove (w, r, c);
- SLcurses_wrefresh (w);
-
- va_start(ap, fmt);
- ret = vfscanf (stdin, fmt, ap);
- va_end(ap);
- return ret;
-#else
- return 0;
-#endif
-}
-
-int SLcurses_wscanw (SLcurses_Window_Type *w, char *fmt, ...)
-{
-#if HAVE_VFSCANF
- va_list ap;
- int ret;
-
- SLcurses_wrefresh (w);
-
- va_start(ap, fmt);
- ret = vfscanf (stdin, fmt, ap);
- va_end(ap);
-
- return ret;
-#else
- return 0;
-#endif
-}
-
-int SLcurses_scanw (char *fmt, ...)
-{
-#ifdef HAVE_VFSCANF
- va_list ap;
- int ret;
-
- SLcurses_wrefresh (SLcurses_Stdscr);
-
- va_start(ap, fmt);
- ret = vfscanf (stdin, fmt, ap);
- va_end(ap);
-
- return ret;
-#else
- return 0;
-#endif
-}
-#endif
-
-int SLcurses_clearok (SLcurses_Window_Type *w, int bf)
-{
- if (bf)
- {
- SLsmg_cls ();
- w->modified = 1;
- }
- return 0;
-}
diff --git a/mdk-stage1/slang/slcurses.h b/mdk-stage1/slang/slcurses.h
deleted file mode 100644
index fa082304f..000000000
--- a/mdk-stage1/slang/slcurses.h
+++ /dev/null
@@ -1,353 +0,0 @@
-/* Copyright (c) 1998, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-#include <stdio.h>
-
-#ifndef SLANG_VERSION
-# include <slang.h>
-#endif
-
-/* This is a temporary hack until lynx is fixed to not include this file. */
-#ifndef LYCURSES_H
-
-typedef struct
-{
- unsigned int _begy, _begx, _maxy, _maxx;
- unsigned int _curx, _cury;
- unsigned int nrows, ncols;
- unsigned int scroll_min, scroll_max;
- SLsmg_Char_Type **lines;
- SLsmg_Char_Type color;
- int is_subwin;
- SLtt_Char_Type attr;
- int delay_off;
- int scroll_ok;
- int modified;
- int has_box;
- int use_keypad;
-}
-SLcurses_Window_Type;
-
-extern int SLcurses_wclrtobot (SLcurses_Window_Type *);
-extern int SLcurses_wscrl (SLcurses_Window_Type *, int);
-extern int SLcurses_wrefresh (SLcurses_Window_Type *);
-extern int SLcurses_delwin (SLcurses_Window_Type *);
-extern int SLcurses_wprintw (SLcurses_Window_Type *, char *, ...);
-extern SLcurses_Window_Type *SLcurses_newwin (unsigned int, unsigned int,
- unsigned int, unsigned int);
-
-extern SLcurses_Window_Type *SLcurses_subwin (SLcurses_Window_Type *,
- unsigned int, unsigned int,
- unsigned int, unsigned int);
-
-extern int SLcurses_wnoutrefresh (SLcurses_Window_Type *);
-extern int SLcurses_wclrtoeol (SLcurses_Window_Type *);
-
-extern int SLcurses_wmove (SLcurses_Window_Type *, unsigned int, unsigned int);
-extern int SLcurses_waddch (SLcurses_Window_Type *, SLtt_Char_Type);
-extern int SLcurses_waddnstr (SLcurses_Window_Type *, char *, int);
-
-#define waddnstr SLcurses_waddnstr
-#define waddch SLcurses_waddch
-#define waddstr(w,s) waddnstr((w),(s),-1)
-#define addstr(x) waddstr(stdscr, (x))
-#define addnstr(s,n) waddnstr(stdscr,(s),(n))
-#define addch(ch) waddch(stdscr,(ch))
-
-#define mvwaddnstr(w,y,x,s,n) \
- (-1 == wmove((w),(y),(x)) ? -1 : waddnstr((w),(s),(n)))
-#define mvwaddstr(w,y,x,s) \
- (-1 == wmove((w),(y),(x)) ? -1 : waddnstr((w),(s), -1))
-#define mvaddnstr(y,x,s,n) mvwaddnstr(stdscr,(y),(x),(s),(n))
-#define mvaddstr(y,x,s) mvwaddstr(stdscr,(y),(x),(s))
-#define mvwaddch(w,y,x,c) \
- ((-1 == wmove((w),(y),(x))) ? -1 : waddch((w),(c)))
-#define mvaddch(y,x,c) mvwaddch(stdscr,(y),(x),(c))
-
-extern int SLcurses_wclear (SLcurses_Window_Type *w);
-extern int SLcurses_printw (char *, ...);
-
-#if 0
-/* Why are these functions part of curses??? */
-extern int SLcurses_mvwscanw (SLcurses_Window_Type *, unsigned int, unsigned int,
- char *, ...);
-extern int SLcurses_wscanw (SLcurses_Window_Type *, char *, ...);
-extern int SLcurses_scanw (char *, ...);
-#define mvwscanw SLcurses_mvwscanw
-#define wscanw SLcurses_wscanw
-#define scanw SLcurses_scanw
-#endif
-
-extern SLcurses_Window_Type *SLcurses_Stdscr;
-#define WINDOW SLcurses_Window_Type
-#define stdscr SLcurses_Stdscr
-
-#define subwin SLcurses_subwin
-#define wclrtobot SLcurses_wclrtobot
-#define wscrl SLcurses_wscrl
-#define scrl(n) wscrl(stdscr,(n))
-#define scroll(w) wscrl((w),1)
-#define wrefresh SLcurses_wrefresh
-#define delwin SLcurses_delwin
-#define wmove SLcurses_wmove
-#define newwin SLcurses_newwin
-#define wnoutrefresh SLcurses_wnoutrefresh
-#define werase(w) SLcurses_wmove((w),0,0); SLcurses_wclrtobot(w)
-#define wclear(w) SLcurses_wmove((w),0,0); SLcurses_wclrtobot(w)
-#define wprintw SLcurses_wprintw
-#define mvwprintw SLcurses_mvwprintw
-
-#define winch(w) \
- ((((w)->_cury < (w)->nrows) && ((w)->_curx < (w)->ncols)) \
- ? ((w)->lines[(w)->_cury][(w)->_curx]) : 0)
-
-#define inch() winch(stdscr)
-#define mvwinch(w,x,y) \
- ((-1 != wmove((w),(x),(y))) ? winch(w) : (-1))
-#define doupdate SLsmg_refresh
-
-#define mvwin(w,a,b) ((w)->_begy = (a), (w)->_begx = (b))
-
-extern int SLcurses_mvprintw (int, int, char *, ...);
-extern int SLcurses_mvwprintw (SLcurses_Window_Type *, int, int, char *, ...);
-extern int SLcurses_has_colors(void);
-extern int SLcurses_nil (void);
-extern int SLcurses_wgetch (SLcurses_Window_Type *);
-extern int SLcurses_getch (void);
-
-extern int SLcurses_wattrset (SLcurses_Window_Type *, SLtt_Char_Type);
-extern int SLcurses_wattron (SLcurses_Window_Type *, SLtt_Char_Type);
-extern int SLcurses_wattroff (SLcurses_Window_Type *, SLtt_Char_Type);
-#define attrset(x) SLcurses_wattrset(stdscr, (x))
-#define attron(x) SLcurses_wattron(stdscr, (x))
-#define attroff(x) SLcurses_wattroff(stdscr, (x))
-#define wattrset(w, x) SLcurses_wattrset((w), (x))
-#define wattron(w, x) SLcurses_wattron((w), (x))
-#define wattroff(w, x) SLcurses_wattroff((w), (x))
-#define wattr_get(w) ((w)->color << 8)
-#define attr_get() wattr_get(stdscr)
-
-#define COLOR_PAIR(x) ((x) << 8)
-
-extern int SLcurses_start_color (void);
-#define start_color SLcurses_start_color
-
-#define ERR 0xFFFF
-#define wgetch SLcurses_wgetch
-#define getch SLcurses_getch
-
-extern int SLcurses_nodelay (SLcurses_Window_Type *, int);
-extern SLcurses_Window_Type *SLcurses_initscr (void);
-#define initscr SLcurses_initscr
-
-extern int SLcurses_cbreak (void);
-extern int SLcurses_raw (void);
-#define cbreak SLcurses_cbreak
-#define crmode SLcurses_cbreak
-#define raw SLcurses_raw
-#define noraw SLang_reset_tty
-#define nocbreak SLang_reset_tty
-
-#define mvprintw SLcurses_mvprintw
-#define has_colors SLcurses_has_colors
-#define nodelay SLcurses_nodelay
-
-#define ungetch SLang_ungetkey
-
-#define COLS SLtt_Screen_Cols
-#define LINES SLtt_Screen_Rows
-
-#define move(x,y) SLcurses_wmove(stdscr, (x), (y))
-#define wclrtoeol SLcurses_wclrtoeol
-#define clrtoeol() SLcurses_wclrtoeol(stdscr)
-#define clrtobot() SLcurses_wclrtobot(stdscr)
-
-#define printw SLcurses_printw
-#define mvprintw SLcurses_mvprintw
-#define wstandout(w) SLcurses_wattrset((w),A_STANDOUT)
-#define wstandend(w) SLcurses_wattrset((w),A_NORMAL)
-#define standout() SLcurses_wattrset(stdscr,A_STANDOUT)
-#define standend() SLcurses_wattrset(stdscr,A_NORMAL)
-
-#define refresh() SLcurses_wrefresh(stdscr)
-#define clear() SLcurses_wclear(stdscr)
-#define erase() werase(stdscr)
-#define touchline SLsmg_touch_lines
-#define resetterm SLang_reset_tty
-
-extern int SLcurses_endwin (void);
-#define endwin SLcurses_endwin
-extern int SLcurses_Is_Endwin;
-#define isendwin() SLcurses_Is_Endwin
-
-#define keypad(w,x) ((w)->use_keypad = (x))
-
-#define KEY_MIN SL_KEY_UP
-#define KEY_DOWN SL_KEY_DOWN
-#define KEY_UP SL_KEY_UP
-#define KEY_LEFT SL_KEY_LEFT
-#define KEY_RIGHT SL_KEY_RIGHT
-#define KEY_A1 SL_KEY_A1
-#define KEY_B1 SL_KEY_B1
-#define KEY_C1 SL_KEY_C1
-#define KEY_A2 SL_KEY_A2
-#define KEY_B2 SL_KEY_B2
-#define KEY_C2 SL_KEY_C2
-#define KEY_A3 SL_KEY_A3
-#define KEY_B3 SL_KEY_B3
-#define KEY_C3 SL_KEY_C3
-#define KEY_REDO SL_KEY_REDO
-#define KEY_UNDO SL_KEY_UNDO
-#define KEY_BACKSPACE SL_KEY_BACKSPACE
-#define KEY_PPAGE SL_KEY_PPAGE
-#define KEY_NPAGE SL_KEY_NPAGE
-#define KEY_HOME SL_KEY_HOME
-#define KEY_END SL_KEY_END
-#define KEY_F0 SL_KEY_F0
-#define KEY_F SL_KEY_F
-#define KEY_ENTER SL_KEY_ENTER
-#define KEY_MAX 0xFFFF
-
-/* Ugly Hacks that may not work */
-#define flushinp SLcurses_nil
-#define winsertln(w) \
- ((w)->scroll_min=(w)->_cury, \
- (w)->scroll_max=(w)->nrows, \
- wscrl((w), -1))
-
-extern SLtt_Char_Type SLcurses_Acs_Map [128];
-#define acs_map SLcurses_Acs_Map
-
-#define ACS_ULCORNER (acs_map[SLSMG_ULCORN_CHAR])
-#define ACS_URCORNER (acs_map[SLSMG_URCORN_CHAR])
-#define ACS_LRCORNER (acs_map[SLSMG_LRCORN_CHAR])
-#define ACS_LLCORNER (acs_map[SLSMG_LLCORN_CHAR])
-#define ACS_TTEE (acs_map[SLSMG_UTEE_CHAR])
-#define ACS_LTEE (acs_map[SLSMG_LTEE_CHAR])
-#define ACS_RTEE (acs_map[SLSMG_RTEE_CHAR])
-#define ACS_BTEE (acs_map[SLSMG_DTEE_CHAR])
-#define ACS_PLUS (acs_map[SLSMG_PLUS_CHAR])
-#define ACS_VLINE (acs_map[SLSMG_VLINE_CHAR])
-#define ACS_HLINE (acs_map[SLSMG_HLINE_CHAR])
-#define ACS_S1 '-'
-#define ACS_S9 '-'
-#define ACS_DIAMOND '&'
-#define ACS_CKBOARD (acs_map[SLSMG_CKBRD_CHAR])
-#define ACS_DEGREE 'o'
-#define ACS_PLMINUS '+'
-#define ACS_BULLET '*'
-#define ACS_LARROW '<'
-#define ACS_RARROW '>'
-#define ACS_DARROW 'v'
-#define ACS_UARROW '^'
-#define ACS_BOARD '#'
-#define ACS_LANTERN '#'
-#define ACS_BLOCK '#'
-
-#if 1
-#define hline(x,y) SLcurses_nil ()
-#define vline(x,y) SLcurses_nil ()
-#endif
-
-#define A_CHARTEXT 0x00FF
-#define A_NORMAL 0
-#define A_BOLD 0x1000
-#define A_REVERSE 0x2000
-#define A_STANDOUT A_REVERSE
-#define A_UNDERLINE 0x4000
-#define A_BLINK 0
-#define A_COLOR 0x0700
-#define A_ALTCHARSET 0x8000
-#define A_DIM 0
-#define A_PROTECT 0
-#define A_INVIS 0
-
-#define COLOR_BLACK SLSMG_COLOR_BLACK
-#define COLOR_RED SLSMG_COLOR_RED
-#define COLOR_GREEN SLSMG_COLOR_GREEN
-#define COLOR_YELLOW SLSMG_COLOR_BROWN
-#define COLOR_BLUE SLSMG_COLOR_BLUE
-#define COLOR_MAGENTA SLSMG_COLOR_MAGENTA
-#define COLOR_CYAN SLSMG_COLOR_CYAN
-#define COLOR_WHITE SLSMG_COLOR_LGRAY
-
-extern int SLcurses_Num_Colors;
-#define COLORS SLcurses_Num_Colors
-#define COLOR_PAIRS (SLcurses_Num_Colors*SLcurses_Num_Colors)
-
-#define init_pair(_x,_f,_b) \
- SLtt_set_color_object((_x), ((_f) == (_b) ? 0x0700 : ((_f) | ((_b) << 8)) << 8))
-
-#define scrollok(a,b) ((a)->scroll_ok = (b))
-#define getyx(a,y,x) (y=(a)->_cury, x=(a)->_curx)
-#define getmaxyx(a,y,x) (y=(a)->nrows, x=(a)->ncols)
-#define napms(x) usleep(1000 * (x))
-typedef SLtt_Char_Type chtype;
-#define beep SLtt_beep
-#define curs_set(x) SLtt_set_cursor_visibility(x)
-#define touchwin(x) SLsmg_touch_lines((x)->_begy, (x)->nrows)
-#define flash SLtt_beep
-
-#define wsetscrreg(w,a,b) ((w)->scroll_min = (a), (w)->scroll_max = (b))
-
-#define wtimeout(a,b) (a)->delay_off = ((b >= 0) ? (b) / 100 : -1)
-#define timeout(a) wtimeout(stdscr, a)
-extern int SLcurses_wdelch (SLcurses_Window_Type *);
-#define wdelch SLcurses_wdelch
-#define delch() wdelch(stdscr)
-
-extern int SLcurses_winsch (SLcurses_Window_Type *, int);
-#define winsch SLcurses_winsch
-
-extern int SLcurses_Esc_Delay;/* ESC expire time in milliseconds (ncurses compatible) */
-#define ESCDELAY SLcurses_Esc_Delay
-
-extern int SLcurses_clearok (SLcurses_Window_Type *, int);
-#define clearok SLcurses_clearok
-
-/* Functions that have not been implemented. */
-#define copywin(w,v,a,b,c,d,e,f,g) SLcurses_nil()
-#define wdeleteln(win) SLcurses_nil()
-#define resetty SLcurses_nil
-#define savetty SLcurses_nil
-#define overlay(u,v) SLcurses_nil()
-
-/* These functions do nothing */
-#define savetty SLcurses_nil
-#define nonl SLcurses_nil
-#define echo SLcurses_nil
-#define noecho SLcurses_nil
-#define saveterm SLcurses_nil
-#define box(w,y,z) ((w)->has_box = 1, (w)->modified = 1)
-#define leaveok(a,b) SLcurses_nil()
-#define nl() SLcurses_nil()
-#define trace(x) SLcurses_nil()
-#define tigetstr(x) NULL
-
-/* These have no place in C */
-#define TRUE 1
-#define FALSE 0
-#define bool int
-
-/* Lynx compatability */
-#else
-
-#define stdscr NULL
-#define COLS SLtt_Screen_Cols
-#define LINES SLtt_Screen_Rows
-#define move SLsmg_gotorc
-#define addstr SLsmg_write_string
-#define clear SLsmg_cls
-#define standout SLsmg_reverse_video
-#define standend SLsmg_normal_video
-#define clrtoeol SLsmg_erase_eol
-#define scrollok(a,b) SLsmg_Newline_Moves = ((b) ? 1 : -1)
-#define addch SLsmg_write_char
-#define echo()
-#define printw SLsmg_printf
-#define endwin SLsmg_reset_smg(),SLang_reset_tty
-
-#endif
diff --git a/mdk-stage1/slang/sldisply.c b/mdk-stage1/slang/sldisply.c
deleted file mode 100644
index 1e1161774..000000000
--- a/mdk-stage1/slang/sldisply.c
+++ /dev/null
@@ -1,2596 +0,0 @@
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-#include "slinclud.h"
-
-#include <time.h>
-#include <ctype.h>
-
-#if !defined(VMS) || (__VMS_VER >= 70000000)
-# include <sys/time.h>
-# ifdef __QNX__
-# include <sys/select.h>
-# endif
-# include <sys/types.h>
-#endif
-
-#ifdef __BEOS__
-/* Prototype for select */
-# include <net/socket.h>
-#endif
-
-#ifdef HAVE_TERMIOS_H
-# include <termios.h>
-#endif
-
-#ifdef VMS
-# include <unixlib.h>
-# include <unixio.h>
-# include <dvidef.h>
-# include <descrip.h>
-# include <lib$routines.h>
-# include <starlet.h>
-#else
-# if !defined(sun)
-# include <sys/ioctl.h>
-# endif
-#endif
-
-#ifdef SYSV
-# include <sys/termio.h>
-# include <sys/stream.h>
-# include <sys/ptem.h>
-# include <sys/tty.h>
-#endif
-
-#if defined (_AIX) && !defined (FD_SET)
-# include <sys/select.h> /* for FD_ISSET, FD_SET, FD_ZERO */
-#endif
-
-#include <errno.h>
-
-#if defined(__DECC) && defined(VMS)
-/* These get prototypes for write an sleep */
-# include <unixio.h>
-#endif
-#include <signal.h>
-
-#include "slang.h"
-#include "_slang.h"
-
-/* Colors: These definitions are used for the display. However, the
- * application only uses object handles which get mapped to this
- * internal representation. The mapping is performed by the Color_Map
- * structure below. */
-
-#define CHAR_MASK 0x000000FF
-#define FG_MASK 0x0000FF00
-#define BG_MASK 0x00FF0000
-#define ATTR_MASK 0x1F000000
-#define BGALL_MASK 0x0FFF0000
-
-/* The 0x10000000 bit represents the alternate character set. BGALL_MASK does
- * not include this attribute.
- */
-
-#define GET_FG(color) ((color & FG_MASK) >> 8)
-#define GET_BG(color) ((color & BG_MASK) >> 16)
-#define MAKE_COLOR(fg, bg) (((fg) | ((bg) << 8)) << 8)
-
-int SLtt_Screen_Cols;
-int SLtt_Screen_Rows;
-int SLtt_Term_Cannot_Insert;
-int SLtt_Term_Cannot_Scroll;
-int SLtt_Use_Ansi_Colors;
-int SLtt_Blink_Mode = 1;
-int SLtt_Use_Blink_For_ACS = 0;
-int SLtt_Newline_Ok = 0;
-int SLtt_Has_Alt_Charset = 0;
-int SLtt_Force_Keypad_Init = 0;
-
-void (*_SLtt_color_changed_hook)(void);
-
-#if SLTT_HAS_NON_BCE_SUPPORT
-static int Bce_Color_Offset = 0;
-#endif
-static int Can_Background_Color_Erase = 1;
-
-/* -1 means unknown */
-int SLtt_Has_Status_Line = -1; /* hs */
-int SLang_TT_Write_FD = -1;
-
-static int Automatic_Margins;
-/* static int No_Move_In_Standout; */
-static int Worthless_Highlight;
-#define HP_GLITCH_CODE
-#ifdef HP_GLITCH_CODE
-/* This glitch is exclusive to HP term. Basically it means that to clear
- * attributes, one has to erase to the end of the line.
- */
-static int Has_HP_Glitch;
-#endif
-
-static char *Reset_Color_String;
-static int Is_Color_Terminal = 0;
-
-static int Linux_Console;
-
-/* It is crucial that JMAX_COLORS must be less than 128 since the high bit
- * is used to indicate a character from the ACS (alt char set). The exception
- * to this rule is if SLtt_Use_Blink_For_ACS is true. This means that of
- * the highbit is set, we interpret that as a blink character. This is
- * exploited by DOSemu.
- */
-#define JMAX_COLORS 256
-#define JNORMAL_COLOR 0
-
-typedef struct
-{
- SLtt_Char_Type fgbg;
- SLtt_Char_Type mono;
- char *custom_esc;
-}
-Ansi_Color_Type;
-
-#define RGB1(r, g, b) ((r) | ((g) << 1) | ((b) << 2))
-#define RGB(r, g, b, br, bg, bb) ((RGB1(r, g, b) << 8) | (RGB1(br, bg, bb) << 16))
-
-static Ansi_Color_Type Ansi_Color_Map[JMAX_COLORS] =
-{
- {RGB(1, 1, 1, 0, 0, 0), 0x00000000, NULL}, /* white/black */
- {RGB(0, 1, 0, 0, 0, 0), SLTT_REV_MASK, NULL}, /* green/black */
- {RGB(1, 0, 1, 0, 0, 0), SLTT_REV_MASK, NULL}, /* magenta/black */
- {RGB(0, 1, 1, 0, 0, 0), SLTT_REV_MASK, NULL}, /* cyan/black */
- {RGB(1, 0, 0, 0, 0, 0), SLTT_REV_MASK, NULL},
- {RGB(0, 1, 0, 0, 0, 1), SLTT_REV_MASK, NULL},
- {RGB(1, 0, 0, 0, 0, 1), SLTT_REV_MASK, NULL},
- {RGB(1, 0, 0, 0, 1, 0), SLTT_REV_MASK, NULL},
- {RGB(0, 0, 1, 1, 0, 0), SLTT_REV_MASK, NULL},
- {RGB(0, 1, 0, 1, 0, 0), SLTT_REV_MASK, NULL},
- {RGB(0, 1, 1, 1, 1, 1), SLTT_REV_MASK, NULL},
- {RGB(1, 1, 0, 1, 1, 1), SLTT_REV_MASK, NULL},
- {RGB(1, 0, 1, 1, 1, 1), SLTT_REV_MASK, NULL},
- {RGB(0, 0, 0, 0, 1, 1), SLTT_REV_MASK, NULL},
- {RGB(0, 1, 0, 1, 1, 1), SLTT_REV_MASK, NULL},
- {RGB(0, 1, 0, 1, 1, 1), SLTT_REV_MASK, NULL},
- {RGB(0, 1, 0, 1, 1, 1), SLTT_REV_MASK, NULL},
- {RGB(0, 1, 0, 1, 1, 1), SLTT_REV_MASK, NULL}
-};
-
-static char *Color_Fg_Str = "\033[3%dm";
-static char *Color_Bg_Str = "\033[4%dm";
-static char *Default_Color_Fg_Str = "\033[39m";
-static char *Default_Color_Bg_Str = "\033[49m";
-
-static int Max_Terminfo_Colors = 8; /* termcap Co */
-
-char *SLtt_Graphics_Char_Pairs; /* ac termcap string -- def is vt100 */
-
-/* 1 if terminal lacks the ability to go into insert mode or into delete
- mode. Currently controlled by S-Lang but later perhaps termcap. */
-
-static char *UnderLine_Vid_Str;
-static char *Blink_Vid_Str;
-static char *Bold_Vid_Str;
-static char *Ins_Mode_Str; /* = "\033[4h"; */ /* ins mode (im) */
-static char *Eins_Mode_Str; /* = "\033[4l"; */ /* end ins mode (ei) */
-static char *Scroll_R_Str; /* = "\033[%d;%dr"; */ /* scroll region */
-static char *Cls_Str; /* = "\033[2J\033[H"; */ /* cl termcap STR for ansi terminals */
-static char *Rev_Vid_Str; /* = "\033[7m"; */ /* mr,so termcap string */
-static char *Norm_Vid_Str; /* = "\033[m"; */ /* me,se termcap string */
-static char *Del_Eol_Str; /* = "\033[K"; */ /* ce */
-static char *Del_Bol_Str; /* = "\033[1K"; */ /* cb */
-static char *Del_Char_Str; /* = "\033[P"; */ /* dc */
-static char *Del_N_Lines_Str; /* = "\033[%dM"; */ /* DL */
-static char *Add_N_Lines_Str; /* = "\033[%dL"; */ /* AL */
-static char *Rev_Scroll_Str;
-static char *Curs_Up_Str;
-static char *Curs_F_Str; /* RI termcap string */
-static char *Cursor_Visible_Str; /* ve termcap string */
-static char *Cursor_Invisible_Str; /* vi termcap string */
-#if 0
-static char *Start_Mouse_Rpt_Str; /* Start mouse reporting mode */
-static char *End_Mouse_Rpt_Str; /* End mouse reporting mode */
-#endif
-static char *Start_Alt_Chars_Str; /* as */
-static char *End_Alt_Chars_Str; /* ae */
-static char *Enable_Alt_Char_Set; /* eA */
-
-static char *Term_Init_Str;
-static char *Keypad_Init_Str;
-static char *Term_Reset_Str;
-static char *Keypad_Reset_Str;
-
-/* status line functions */
-static char *Disable_Status_line_Str; /* ds */
-static char *Return_From_Status_Line_Str; /* fs */
-static char *Goto_Status_Line_Str; /* ts */
-static int Num_Status_Line_Columns; /* ws */
-/* static int Status_Line_Esc_Ok; */ /* es */
-
-/* static int Len_Curs_F_Str = 5; */
-
-/* cm string has %i%d since termcap numbers columns from 0 */
-/* char *CURS_POS_STR = "\033[%d;%df"; ansi-- hor and vert pos */
-static char *Curs_Pos_Str; /* = "\033[%i%d;%dH";*/ /* cm termcap string */
-
-/* scrolling region */
-static int Scroll_r1 = 0, Scroll_r2 = 23;
-static int Cursor_r, Cursor_c; /* 0 based */
-
-/* current attributes --- initialized to impossible value */
-static SLtt_Char_Type Current_Fgbg = 0xFFFFFFFFU;
-
-static int Cursor_Set; /* 1 if cursor position known, 0
- * if not. -1 if only row is known
- */
-
-#define MAX_OUTPUT_BUFFER_SIZE 4096
-
-static unsigned char Output_Buffer[MAX_OUTPUT_BUFFER_SIZE];
-static unsigned char *Output_Bufferp = Output_Buffer;
-
-unsigned long SLtt_Num_Chars_Output;
-
-int _SLusleep (unsigned long usecs)
-{
-#if !defined(VMS) || (__VMS_VER >= 70000000)
- struct timeval tv;
- tv.tv_sec = usecs / 1000000;
- tv.tv_usec = usecs % 1000000;
- return select(0, NULL, NULL, NULL, &tv);
-#else
- return 0;
-#endif
-}
-
-int SLtt_flush_output (void)
-{
- int nwrite = 0;
- unsigned int total;
- int n = (int) (Output_Bufferp - Output_Buffer);
-
- SLtt_Num_Chars_Output += n;
-
- total = 0;
- while (n > 0)
- {
- nwrite = write (SLang_TT_Write_FD, (char *) Output_Buffer + total, n);
- if (nwrite == -1)
- {
- nwrite = 0;
-#ifdef EAGAIN
- if (errno == EAGAIN)
- {
- _SLusleep (100000); /* 1/10 sec */
- continue;
- }
-#endif
-#ifdef EWOULDBLOCK
- if (errno == EWOULDBLOCK)
- {
- _SLusleep (100000);
- continue;
- }
-#endif
-#ifdef EINTR
- if (errno == EINTR) continue;
-#endif
- break;
- }
- n -= nwrite;
- total += nwrite;
- }
- Output_Bufferp = Output_Buffer;
- return n;
-}
-
-int SLtt_Baud_Rate;
-static void tt_write(char *str, unsigned int n)
-{
- static unsigned long last_time;
- static int total;
- unsigned long now;
- unsigned int ndiff;
-
- if ((str == NULL) || (n == 0)) return;
- total += n;
-
- while (1)
- {
- ndiff = MAX_OUTPUT_BUFFER_SIZE - (int) (Output_Bufferp - Output_Buffer);
- if (ndiff < n)
- {
- SLMEMCPY ((char *) Output_Bufferp, (char *) str, ndiff);
- Output_Bufferp += ndiff;
- SLtt_flush_output ();
- n -= ndiff;
- str += ndiff;
- }
- else
- {
- SLMEMCPY ((char *) Output_Bufferp, str, n);
- Output_Bufferp += n;
- break;
- }
- }
-
- if (((SLtt_Baud_Rate > 150) && (SLtt_Baud_Rate <= 9600))
- && (10 * total > SLtt_Baud_Rate))
- {
- total = 0;
- if ((now = (unsigned long) time(NULL)) - last_time <= 1)
- {
- SLtt_flush_output ();
- sleep((unsigned) 1);
- }
- last_time = now;
- }
-}
-
-static void tt_write_string (char *str)
-{
- if (str != NULL) tt_write(str, strlen(str));
-}
-
-void SLtt_write_string (char *str)
-{
- tt_write_string (str);
- Cursor_Set = 0;
-}
-
-void SLtt_putchar (char ch)
-{
- SLtt_normal_video ();
- if (Cursor_Set == 1)
- {
- if (ch >= ' ') Cursor_c++;
- else if (ch == '\b') Cursor_c--;
- else if (ch == '\r') Cursor_c = 0;
- else Cursor_Set = 0;
-
- if ((Cursor_c + 1 == SLtt_Screen_Cols)
- && Automatic_Margins) Cursor_Set = 0;
- }
-
- if (Output_Bufferp < Output_Buffer + MAX_OUTPUT_BUFFER_SIZE)
- {
- *Output_Bufferp++ = (unsigned char) ch;
- }
- else tt_write (&ch, 1);
-}
-
-static unsigned int tt_sprintf(char *buf, char *fmt, int x, int y)
-{
- char *fmt_max;
- register unsigned char *b, ch;
- int offset;
- int z, z1, parse_level;
- int zero_pad;
- int field_width;
- int variables [26];
- int stack [64];
- unsigned int stack_len;
- int parms [10];
-#define STACK_POP (stack_len ? stack[--stack_len] : 0)
-
- if (fmt == NULL)
- {
- *buf = 0;
- return 0;
- }
-
- stack [0] = y; /* pushed for termcap */
- stack [1] = x;
- stack_len = 2;
-
- parms [1] = x; /* p1 */
- parms [2] = y; /* p2 */
-
- offset = 0;
- zero_pad = 0;
- field_width = 0;
-
- b = (unsigned char *) buf;
- fmt_max = fmt + strlen (fmt);
-
- while (fmt < fmt_max)
- {
- ch = *fmt++;
-
- if (ch != '%')
- {
- *b++ = ch;
- continue;
- }
-
- if (fmt == fmt_max) break;
- ch = *fmt++;
-
- switch (ch)
- {
- default:
- *b++ = ch;
- break;
-
- case 'p':
-
- if (fmt == fmt_max) break;
- ch = *fmt++;
- if ((ch >= '0') && (ch <= '9'))
- stack [stack_len++] = parms [ch - '0'];
- break;
-
- case '\'': /* 'x' */
- if (fmt == fmt_max) break;
- stack [stack_len++] = *fmt++;
- if (fmt < fmt_max) fmt++; /* skip ' */
- break;
-
- case '{': /* literal constant, e.g. {30} */
- z = 0;
- while ((fmt < fmt_max) && ((ch = *fmt) <= '9') && (ch >= '0'))
- {
- z = z * 10 + (ch - '0');
- fmt++;
- }
- stack [stack_len++] = z;
- if ((ch == '}') && (fmt < fmt_max)) fmt++;
- break;
-
- case '0':
- if (fmt == fmt_max) break;
- ch = *fmt;
- if ((ch != '2') && (ch != '3'))
- break;
- zero_pad = 1;
- fmt++;
- /* drop */
-
- case '2':
- case '3':
- if (fmt == fmt_max)
- if (*fmt == 'x')
- {
- char x_fmt_buf [4];
- char *x_fmt_buf_ptr;
-
- x_fmt_buf_ptr = x_fmt_buf;
- if (zero_pad) *x_fmt_buf_ptr++ = '0';
- *x_fmt_buf_ptr++ = ch;
- *x_fmt_buf_ptr++ = 'X';
- *x_fmt_buf_ptr = 0;
-
- z = STACK_POP;
- z += offset;
-
- sprintf ((char *)b, x_fmt_buf, z);
- b += strlen ((char *)b);
- zero_pad = 0;
- break;
- }
-
- field_width = (ch - '0');
- /* drop */
-
- case 'd':
- z = STACK_POP;
- z += offset;
- if (z >= 100)
- {
- *b++ = z / 100 + '0';
- z = z % 100;
- zero_pad = 1;
- field_width = 2;
- }
- else if (zero_pad && (field_width == 3))
- *b++ = '0';
-
- if (z >= 10)
- {
- *b++ = z / 10 + '0';
- z = z % 10;
- }
- else if (zero_pad && (field_width >= 2))
- *b++ = '0';
-
- *b++ = z + '0';
- field_width = zero_pad = 0;
- break;
-
- case 'x':
- z = STACK_POP;
- z += offset;
- sprintf ((char *) b, "%X", z);
- b += strlen ((char *)b);
- break;
-
- case 'i':
- offset = 1;
- break;
-
- case '+':
- /* Handling this depends upon whether or not we are parsing
- * terminfo. Terminfo requires the stack so use it as an
- * indicator.
- */
- if (stack_len > 2)
- {
- z = STACK_POP;
- stack [stack_len - 1] += z;
- }
- else if (fmt < fmt_max)
- {
- ch = *fmt++;
- if ((unsigned char) ch == 128) ch = 0;
- ch = ch + (unsigned char) STACK_POP;
- if (ch == '\n') ch++;
- *b++ = ch;
- }
- break;
-
- /* Binary operators */
- case '-':
- case '*':
- case '/':
- case 'm':
- case '&':
- case '|':
- case '^':
- case '=':
- case '>':
- case '<':
- case 'A':
- case 'O':
- z1 = STACK_POP;
- z = STACK_POP;
- switch (ch)
- {
- case '-': z = (z - z1); break;
- case '*': z = (z * z1); break;
- case '/': z = (z / z1); break;
- case 'm': z = (z % z1); break;
- case '&': z = (z & z1); break;
- case '|': z = (z | z1); break;
- case '^': z = (z ^ z1); break;
- case '=': z = (z == z1); break;
- case '>': z = (z > z1); break;
- case '<': z = (z < z1); break;
- case 'A': z = (z && z1); break;
- case 'O': z = (z || z1); break;
- }
- stack [stack_len++] = z;
- break;
-
- /* unary */
- case '!':
- z = STACK_POP;
- stack [stack_len++] = !z;
- break;
-
- case '~':
- z = STACK_POP;
- stack [stack_len++] = ~z;
- break;
-
- case 'r': /* termcap -- swap parameters */
- z = stack [0];
- stack [0] = stack [1];
- stack [1] = z;
- break;
-
- case '.': /* termcap */
- case 'c':
- ch = (unsigned char) STACK_POP;
- if (ch == '\n') ch++;
- *b++ = ch;
- break;
-
- case 'g':
- if (fmt == fmt_max) break;
- ch = *fmt++;
- if ((ch >= 'a') && (ch <= 'z'))
- stack [stack_len++] = variables [ch - 'a'];
- break;
-
- case 'P':
- if (fmt == fmt_max) break;
- ch = *fmt++;
- if ((ch >= 'a') && (ch <= 'z'))
- variables [ch - 'a'] = STACK_POP;
- break;
-
- /* If then else parsing. Actually, this is rather easy. The
- * key is to notice that 'then' does all the work. 'if' simply
- * there to indicate the start of a test and endif indicates
- * the end of tests. If 'else' is seen, then skip to
- * endif.
- */
- case '?': /* if */
- case ';': /* endif */
- break;
-
- case 't': /* then */
- z = STACK_POP;
- if (z != 0)
- break; /* good. Continue parsing. */
-
- /* z == 0 and test has failed. So, skip past this entire if
- * expression to the matching else or matching endif.
- */
- /* drop */
- case 'e': /* else */
-
- parse_level = 0;
- while (fmt < fmt_max)
- {
- unsigned char ch1;
-
- ch1 = *fmt++;
- if ((ch1 != '%') || (fmt == fmt_max))
- continue;
-
- ch1 = *fmt++;
-
- if (ch1 == '?') parse_level++; /* new if */
- else if (ch1 == 'e')
- {
- if ((ch != 'e') && (parse_level == 0))
- break;
- }
- else if (ch1 == ';')
- {
- if (parse_level == 0)
- break;
- parse_level--;
- }
- }
- break;
- }
- }
- *b = 0;
- return (unsigned int) (b - (unsigned char *) buf);
-}
-
-static void tt_printf(char *fmt, int x, int y)
-{
- char buf[1024];
- unsigned int n;
- if (fmt == NULL) return;
- n = tt_sprintf(buf, fmt, x, y);
- tt_write(buf, n);
-}
-
-void SLtt_set_scroll_region (int r1, int r2)
-{
- Scroll_r1 = r1;
- Scroll_r2 = r2;
- tt_printf (Scroll_R_Str, Scroll_r1, Scroll_r2);
- Cursor_Set = 0;
-}
-
-void SLtt_reset_scroll_region (void)
-{
- SLtt_set_scroll_region(0, SLtt_Screen_Rows - 1);
-}
-
-int SLtt_set_cursor_visibility (int show)
-{
- if ((Cursor_Visible_Str == NULL) || (Cursor_Invisible_Str == NULL))
- return -1;
-
- tt_write_string (show ? Cursor_Visible_Str : Cursor_Invisible_Str);
- return 0;
-}
-
-/* the goto_rc function moves to row relative to scrolling region */
-void SLtt_goto_rc(int r, int c)
-{
- char *s = NULL;
- int n;
- char buf[6];
-
- if ((c < 0) || (r < 0))
- {
- Cursor_Set = 0;
- return;
- }
-
- /* if (No_Move_In_Standout && Current_Fgbg) SLtt_normal_video (); */
- r += Scroll_r1;
-
- if ((Cursor_Set > 0) || ((Cursor_Set < 0) && !Automatic_Margins))
- {
- n = r - Cursor_r;
- if ((n == -1) && (Cursor_Set > 0) && (Cursor_c == c)
- && (Curs_Up_Str != NULL))
- {
- s = Curs_Up_Str;
- }
- else if ((n >= 0) && (n <= 4))
- {
- if ((n == 0) && (Cursor_Set == 1)
- && ((c > 1) || (c == Cursor_c)))
- {
- if (Cursor_c == c) return;
- if (Cursor_c == c + 1)
- {
- s = buf;
- *s++ = '\b'; *s = 0;
- s = buf;
- }
- }
- else if (c == 0)
- {
- s = buf;
- if ((Cursor_Set != 1) || (Cursor_c != 0)) *s++ = '\r';
- while (n--) *s++ = '\n';
-#ifdef VMS
- /* Need to add this after \n to start a new record. Sheesh. */
- *s++ = '\r';
-#endif
- *s = 0;
- s = buf;
- }
- /* Will fail on VMS */
-#ifndef VMS
- else if (SLtt_Newline_Ok && (Cursor_Set == 1) &&
- (Cursor_c >= c) && (c + 3 > Cursor_c))
- {
- s = buf;
- while (n--) *s++ = '\n';
- n = Cursor_c - c;
- while (n--) *s++ = '\b';
- *s = 0;
- s = buf;
- }
-#endif
- }
- }
- if (s != NULL) tt_write_string(s);
- else tt_printf(Curs_Pos_Str, r, c);
- Cursor_c = c; Cursor_r = r;
- Cursor_Set = 1;
-}
-
-void SLtt_begin_insert (void)
-{
- tt_write_string(Ins_Mode_Str);
-}
-
-void SLtt_end_insert (void)
-{
- tt_write_string(Eins_Mode_Str);
-}
-
-void SLtt_delete_char (void)
-{
- SLtt_normal_video ();
- tt_write_string(Del_Char_Str);
-}
-
-void SLtt_erase_line (void)
-{
- tt_write_string("\r");
- Cursor_Set = 1; Cursor_c = 0;
- SLtt_del_eol();
-}
-
-/* It appears that the Linux console, and most likely others do not
- * like scrolling regions that consist of one line. So I have to
- * resort to this stupidity to make up for that stupidity.
- */
-static void delete_line_in_scroll_region (void)
-{
- SLtt_goto_rc (Cursor_r - Scroll_r1, 0);
- SLtt_del_eol ();
-}
-
-void SLtt_delete_nlines (int n)
-{
- int r1, curs;
- char buf[132];
-
- if (n <= 0) return;
- SLtt_normal_video ();
-
- if (Scroll_r1 == Scroll_r2)
- {
- delete_line_in_scroll_region ();
- return;
- }
-
- if (Del_N_Lines_Str != NULL) tt_printf(Del_N_Lines_Str,n, 0);
- else
- /* get a new terminal */
- {
- r1 = Scroll_r1;
- curs = Cursor_r;
- SLtt_set_scroll_region(curs, Scroll_r2);
- SLtt_goto_rc(Scroll_r2 - Scroll_r1, 0);
- SLMEMSET(buf, '\n', (unsigned int) n);
- tt_write(buf, (unsigned int) n);
- /* while (n--) tt_putchar('\n'); */
- SLtt_set_scroll_region(r1, Scroll_r2);
- SLtt_goto_rc(curs, 0);
- }
-}
-
-void SLtt_cls (void)
-{
- /* If the terminal is a color terminal but the user wants black and
- * white, then make sure that the colors are reset. This appears to be
- * necessary.
- */
- if ((SLtt_Use_Ansi_Colors == 0) && Is_Color_Terminal)
- {
- if (Reset_Color_String != NULL)
- tt_write_string (Reset_Color_String);
- else
- tt_write_string ("\033[0m\033[m");
- }
-
- SLtt_normal_video();
- SLtt_reset_scroll_region ();
- tt_write_string(Cls_Str);
-}
-
-void SLtt_reverse_index (int n)
-{
- if (!n) return;
-
- SLtt_normal_video();
-
- if (Scroll_r1 == Scroll_r2)
- {
- delete_line_in_scroll_region ();
- return;
- }
-
- if (Add_N_Lines_Str != NULL) tt_printf(Add_N_Lines_Str,n, 0);
- else
- {
- while(n--) tt_write_string(Rev_Scroll_Str);
- }
-}
-
-int SLtt_Ignore_Beep = 1;
-static char *Visible_Bell_Str;
-
-void SLtt_beep (void)
-{
- if (SLtt_Ignore_Beep & 0x1) SLtt_putchar('\007');
-
- if (SLtt_Ignore_Beep & 0x2)
- {
- if (Visible_Bell_Str != NULL) tt_write_string (Visible_Bell_Str);
-#ifdef __linux__
- else if (Linux_Console)
- {
- tt_write_string ("\033[?5h");
- SLtt_flush_output ();
- _SLusleep (50000);
- tt_write_string ("\033[?5l");
- }
-#endif
- }
- SLtt_flush_output ();
-}
-
-static void del_eol (void)
-{
- int c;
-
- if (Del_Eol_Str != NULL)
- {
- tt_write_string(Del_Eol_Str);
- return;
- }
-
- c = Cursor_c;
- /* Avoid writing to the lower right corner. If the terminal does not
- * have Del_Eol_Str, then it probably does not have what it takes to play
- * games with insert for for a space into that corner.
- */
- if (Cursor_r + 1 < SLtt_Screen_Rows)
- c++;
-
- while (c < SLtt_Screen_Cols)
- {
- tt_write (" ", 1);
- c++;
- }
-}
-
-void SLtt_del_eol (void)
-{
- if (Current_Fgbg != 0xFFFFFFFFU) SLtt_normal_video ();
- del_eol ();
-}
-
-typedef struct
-{
- char *name;
- SLtt_Char_Type color;
-}
-Color_Def_Type;
-
-#define MAX_COLOR_NAMES 17
-static Color_Def_Type Color_Defs [MAX_COLOR_NAMES] =
-{
- {"black", SLSMG_COLOR_BLACK},
- {"red", SLSMG_COLOR_RED},
- {"green", SLSMG_COLOR_GREEN},
- {"brown", SLSMG_COLOR_BROWN},
- {"blue", SLSMG_COLOR_BLUE},
- {"magenta", SLSMG_COLOR_MAGENTA},
- {"cyan", SLSMG_COLOR_CYAN},
- {"lightgray", SLSMG_COLOR_LGRAY},
- {"gray", SLSMG_COLOR_GRAY},
- {"brightred", SLSMG_COLOR_BRIGHT_RED},
- {"brightgreen", SLSMG_COLOR_BRIGHT_GREEN},
- {"yellow", SLSMG_COLOR_BRIGHT_BROWN},
- {"brightblue", SLSMG_COLOR_BRIGHT_BLUE},
- {"brightmagenta", SLSMG_COLOR_BRIGHT_CYAN},
- {"brightcyan", SLSMG_COLOR_BRIGHT_MAGENTA},
- {"white", SLSMG_COLOR_BRIGHT_WHITE},
-#define SLSMG_COLOR_DEFAULT 0xFF
- {"default", SLSMG_COLOR_DEFAULT}
-};
-
-void SLtt_set_mono (int obj, char *what, SLtt_Char_Type mask)
-{
- (void) what;
- if ((obj < 0) || (obj >= JMAX_COLORS))
- {
- return;
- }
- Ansi_Color_Map[obj].mono = mask & ATTR_MASK;
-}
-
-static char *check_color_for_digit_form (char *color)
-{
- unsigned int i, ich;
- char *s = color;
-
- i = 0;
- while ((ich = (int) *s) != 0)
- {
- if ((ich < '0') || (ich > '9'))
- return color;
-
- i = i * 10 + (ich - '0');
- s++;
- }
-
- if (i < MAX_COLOR_NAMES)
- color = Color_Defs[i].name;
-
- return color;
-}
-
-static int get_default_colors (char **fgp, char **bgp)
-{
- static char fg_buf[16], bg_buf[16], *bg, *fg;
- static int already_parsed;
- char *p, *pmax;
-
- if (already_parsed == -1)
- return -1;
-
- if (already_parsed)
- {
- *fgp = fg;
- *bgp = bg;
- return 0;
- }
-
- already_parsed = -1;
-
- bg = getenv ("COLORFGBG");
-
- if (bg == NULL)
- {
- bg = getenv ("DEFAULT_COLORS");
- if (bg == NULL)
- return -1;
- }
-
- p = fg_buf;
- pmax = p + (sizeof (fg_buf) - 1);
-
- while ((*bg != 0) && (*bg != ';'))
- {
- if (p < pmax) *p++ = *bg;
- bg++;
- }
- *p = 0;
-
- if (*bg) bg++;
-
- p = bg_buf;
- pmax = p + (sizeof (bg_buf) - 1);
-
- /* Mark suggested allowing for extra spplication specific stuff following
- * the background color. That is what the check for the semi-colon is for.
- */
- while ((*bg != 0) && (*bg != ';'))
- {
- if (p < pmax) *p++ = *bg;
- bg++;
- }
- *p = 0;
-
- if (!strcmp (fg_buf, "default") || !strcmp(bg_buf, "default"))
- {
- *fgp = *bgp = fg = bg = "default";
- }
- else
- {
- *fgp = fg = check_color_for_digit_form (fg_buf);
- *bgp = bg = check_color_for_digit_form (bg_buf);
- }
- already_parsed = 1;
- return 0;
-}
-
-static unsigned char FgBg_Stats[JMAX_COLORS];
-
-static int Color_0_Modified = 0;
-
-void SLtt_set_color_object (int obj, SLtt_Char_Type attr)
-{
- char *cust_esc;
-
- if ((obj < 0) || (obj >= JMAX_COLORS)) return;
-
- cust_esc = Ansi_Color_Map[obj].custom_esc;
- if (cust_esc != NULL)
- {
- SLfree (cust_esc);
- FgBg_Stats[(Ansi_Color_Map[obj].fgbg >> 8) & 0x7F] -= 1;
- Ansi_Color_Map[obj].custom_esc = NULL;
- }
-
- Ansi_Color_Map[obj].fgbg = attr;
- if (obj == 0) Color_0_Modified = 1;
-
- if (_SLtt_color_changed_hook != NULL)
- (*_SLtt_color_changed_hook)();
-}
-
-SLtt_Char_Type SLtt_get_color_object (int obj)
-{
- if ((obj < 0) || (obj >= JMAX_COLORS)) return 0;
- return Ansi_Color_Map[obj].fgbg;
-}
-
-void SLtt_add_color_attribute (int obj, SLtt_Char_Type attr)
-{
- if ((obj < 0) || (obj >= JMAX_COLORS)) return;
-
- Ansi_Color_Map[obj].fgbg |= (attr & ATTR_MASK);
- if (obj == 0) Color_0_Modified = 1;
- if (_SLtt_color_changed_hook != NULL)
- (*_SLtt_color_changed_hook)();
-}
-
-static SLtt_Char_Type fb_to_fgbg (SLtt_Char_Type f, SLtt_Char_Type b)
-{
- SLtt_Char_Type attr;
-
- if (Max_Terminfo_Colors != 8)
- {
- if (f != SLSMG_COLOR_DEFAULT) f %= Max_Terminfo_Colors;
- if (b != SLSMG_COLOR_DEFAULT) b %= Max_Terminfo_Colors;
- return ((f << 8) | (b << 16));
- }
-
- /* Otherwise we have 8 ansi colors. Try to get bright versions
- * by using the BOLD and BLINK attributes.
- */
-
- attr = 0;
-
- /* Note: If f represents default, it will have the value 0xFF */
- if (f != SLSMG_COLOR_DEFAULT)
- {
- if (f & 0x8) attr = SLTT_BOLD_MASK;
- f &= 0x7;
- }
-
- if (b != SLSMG_COLOR_DEFAULT)
- {
- if (b & 0x8) attr |= SLTT_BLINK_MASK;
- b &= 0x7;
- }
-
- return ((f << 8) | (b << 16) | attr);
-}
-
-/* This looks for colors with name form 'colorN'. If color is of this
- * form, N is passed back via paramter list.
- */
-static int parse_color_digit_name (char *color, SLtt_Char_Type *f)
-{
- unsigned int i;
- unsigned char ch;
-
- if (strncmp (color, "color", 5))
- return -1;
-
- color += 5;
- if (*color == 0)
- return -1;
-
- i = 0;
- while (1)
- {
- ch = (unsigned char) *color++;
- if (ch == 0)
- break;
- if ((ch > '9') || (ch < '0'))
- return -1;
- i = 10 * i + (ch - '0');
- }
-
- *f = (SLtt_Char_Type) i;
- return 0;
-}
-
-static int make_color_fgbg (char *fg, char *bg, SLtt_Char_Type *fgbg)
-{
- SLtt_Char_Type f = 0xFFFFFFFFU, b = 0xFFFFFFFFU;
- char *dfg, *dbg;
- unsigned int i;
-
- if ((fg != NULL) && (*fg == 0)) fg = NULL;
- if ((bg != NULL) && (*bg == 0)) bg = NULL;
-
- if ((fg == NULL) || (bg == NULL))
- {
- if (-1 == get_default_colors (&dfg, &dbg))
- return -1;
-
- if (fg == NULL) fg = dfg;
- if (bg == NULL) bg = dbg;
- }
-
- if (-1 == parse_color_digit_name (fg, &f))
- {
- for (i = 0; i < MAX_COLOR_NAMES; i++)
- {
- if (strcmp(fg, Color_Defs[i].name)) continue;
- f = Color_Defs[i].color;
- break;
- }
- }
-
- if (-1 == parse_color_digit_name (bg, &b))
- {
- for (i = 0; i < MAX_COLOR_NAMES; i++)
- {
- if (strcmp(bg, Color_Defs[i].name)) continue;
- b = Color_Defs[i].color;
- break;
- }
- }
-
- if ((f == 0xFFFFFFFFU) || (b == 0xFFFFFFFFU))
- return -1;
-
- *fgbg = fb_to_fgbg (f, b);
- return 0;
-}
-
-void SLtt_set_color (int obj, char *what, char *fg, char *bg)
-{
- SLtt_Char_Type fgbg;
-
- (void) what;
- if ((obj < 0) || (obj >= JMAX_COLORS))
- return;
-
- if (-1 != make_color_fgbg (fg, bg, &fgbg))
- SLtt_set_color_object (obj, fgbg);
-}
-
-void SLtt_set_color_fgbg (int obj, SLtt_Char_Type f, SLtt_Char_Type b)
-{
- SLtt_set_color_object (obj, fb_to_fgbg (f, b));
-}
-
-void SLtt_set_color_esc (int obj, char *esc)
-{
- char *cust_esc;
- SLtt_Char_Type fgbg = 0;
- int i;
-
- if ((obj < 0) || (obj >= JMAX_COLORS))
- {
- return;
- }
-
- cust_esc = Ansi_Color_Map[obj].custom_esc;
- if (cust_esc != NULL)
- {
- SLfree (cust_esc);
- FgBg_Stats[(Ansi_Color_Map[obj].fgbg >> 8) & 0x7F] -= 1;
- }
-
- cust_esc = (char *) SLmalloc (strlen(esc) + 1);
- if (cust_esc != NULL) strcpy (cust_esc, esc);
-
- Ansi_Color_Map[obj].custom_esc = cust_esc;
- if (cust_esc == NULL) fgbg = 0;
- else
- {
- /* The whole point of this is to generate a unique fgbg */
- for (i = 0; i < JMAX_COLORS; i++)
- {
- if (FgBg_Stats[i] == 0) fgbg = i;
-
- if (obj == i) continue;
- if ((Ansi_Color_Map[i].custom_esc) == NULL) continue;
- if (!strcmp (Ansi_Color_Map[i].custom_esc, cust_esc))
- {
- fgbg = (Ansi_Color_Map[i].fgbg >> 8) & 0x7F;
- break;
- }
- }
- FgBg_Stats[fgbg] += 1;
- }
-
- fgbg |= 0x80;
- Ansi_Color_Map[obj].fgbg = (fgbg | (fgbg << 8)) << 8;
- if (obj == 0) Color_0_Modified = 1;
- if (_SLtt_color_changed_hook != NULL)
- (*_SLtt_color_changed_hook)();
-}
-
-void SLtt_set_alt_char_set (int i)
-{
- static int last_i;
- if (SLtt_Has_Alt_Charset == 0) return;
- if (i == last_i) return;
- tt_write_string (i ? Start_Alt_Chars_Str : End_Alt_Chars_Str );
- last_i = i;
-}
-
-static void write_attributes (SLtt_Char_Type fgbg)
-{
- int bg0, fg0;
- int unknown_attributes;
-
- if (Worthless_Highlight) return;
- if (fgbg == Current_Fgbg) return;
-
- unknown_attributes = 0;
-
- /* Before spitting out colors, fix attributes */
- if ((fgbg & ATTR_MASK) != (Current_Fgbg & ATTR_MASK))
- {
- if (Current_Fgbg & ATTR_MASK)
- {
- tt_write_string(Norm_Vid_Str);
- /* In case normal video turns off ALL attributes: */
- if (fgbg & SLTT_ALTC_MASK)
- Current_Fgbg &= ~SLTT_ALTC_MASK;
- SLtt_set_alt_char_set (0);
- }
-
- if ((fgbg & SLTT_ALTC_MASK)
- != (Current_Fgbg & SLTT_ALTC_MASK))
- {
- SLtt_set_alt_char_set ((int) (fgbg & SLTT_ALTC_MASK));
- }
-
- if (fgbg & SLTT_ULINE_MASK) tt_write_string (UnderLine_Vid_Str);
- if (fgbg & SLTT_BOLD_MASK) SLtt_bold_video ();
- if (fgbg & SLTT_REV_MASK) tt_write_string (Rev_Vid_Str);
- if (fgbg & SLTT_BLINK_MASK)
- {
- /* Someday Linux will have a blink mode that set high intensity
- * background. Lets be prepared.
- */
- if (SLtt_Blink_Mode) tt_write_string (Blink_Vid_Str);
- }
- unknown_attributes = 1;
- }
-
- if (SLtt_Use_Ansi_Colors)
- {
- fg0 = (int) GET_FG(fgbg);
- bg0 = (int) GET_BG(fgbg);
-
- if (unknown_attributes
- || (fg0 != (int)GET_FG(Current_Fgbg)))
- {
- if (fg0 == SLSMG_COLOR_DEFAULT)
- tt_write_string (Default_Color_Fg_Str);
- else
- tt_printf (Color_Fg_Str, fg0, 0);
- }
-
- if (unknown_attributes
- || (bg0 != (int)GET_BG(Current_Fgbg)))
- {
- if (bg0 == SLSMG_COLOR_DEFAULT)
- tt_write_string (Default_Color_Bg_Str);
- else
- tt_printf (Color_Bg_Str, bg0, 0);
- }
- }
-
- Current_Fgbg = fgbg;
-}
-
-static int Video_Initialized;
-
-void SLtt_reverse_video (int color)
-{
- SLtt_Char_Type fgbg;
- char *esc;
-
- if (Worthless_Highlight) return;
- if ((color < 0) || (color >= JMAX_COLORS)) return;
-
- if (Video_Initialized == 0)
- {
- if (color == JNORMAL_COLOR)
- {
- tt_write_string (Norm_Vid_Str);
- }
- else tt_write_string (Rev_Vid_Str);
- Current_Fgbg = 0xFFFFFFFFU;
- return;
- }
-
- if (SLtt_Use_Ansi_Colors)
- {
- fgbg = Ansi_Color_Map[color].fgbg;
- if ((esc = Ansi_Color_Map[color].custom_esc) != NULL)
- {
- if (fgbg != Current_Fgbg)
- {
- Current_Fgbg = fgbg;
- tt_write_string (esc);
- return;
- }
- }
- }
- else fgbg = Ansi_Color_Map[color].mono;
-
- if (fgbg == Current_Fgbg) return;
- write_attributes (fgbg);
-}
-
-void SLtt_normal_video (void)
-{
- SLtt_reverse_video(JNORMAL_COLOR);
-}
-
-void SLtt_narrow_width (void)
-{
- tt_write_string("\033[?3l");
-}
-
-void SLtt_wide_width (void)
-{
- tt_write_string("\033[?3h");
-}
-
-/* Highest bit represents the character set. */
-#define COLOR_MASK 0x7F00
-
-#if SLTT_HAS_NON_BCE_SUPPORT
-static int bce_color_eqs (unsigned int a, unsigned int b)
-{
- a = (a & COLOR_MASK) >> 8;
- b = (b & COLOR_MASK) >> 8;
-
- if (a == b)
- return 1;
-
- if (SLtt_Use_Ansi_Colors == 0)
- return Ansi_Color_Map[a].mono == Ansi_Color_Map[b].mono;
-
- if (Bce_Color_Offset == 0)
- return Ansi_Color_Map[a].fgbg == Ansi_Color_Map[b].fgbg;
-
- /* If either are color 0, then we do not know what that means since the
- * terminal does not support BCE */
- if ((a == 0) || (b == 0))
- return 0;
-
- return Ansi_Color_Map[a-1].fgbg == Ansi_Color_Map[b-1].fgbg;
-}
-#define COLOR_EQS(a,b) bce_color_eqs (a,b)
-#else
-# define COLOR_OF(x) (((unsigned int)(x) & COLOR_MASK) >> 8)
-# define COLOR_EQS(a, b) \
- (SLtt_Use_Ansi_Colors \
- ? (Ansi_Color_Map[COLOR_OF(a)].fgbg == Ansi_Color_Map[COLOR_OF(b)].fgbg)\
- : (Ansi_Color_Map[COLOR_OF(a)].mono == Ansi_Color_Map[COLOR_OF(b)].mono))
-#endif
-
-#define CHAR_EQS(a, b) (((a) == (b))\
- || ((((a) & ~COLOR_MASK) == ((b) & ~COLOR_MASK))\
- && COLOR_EQS((a), (b))))
-
-/* The whole point of this routine is to prevent writing to the last column
- * and last row on terminals with automatic margins.
- */
-static void write_string_with_care (char *str)
-{
- unsigned int len;
-
- if (str == NULL) return;
-
- len = strlen (str);
- if (Automatic_Margins && (Cursor_r + 1 == SLtt_Screen_Rows))
- {
- if (len + (unsigned int) Cursor_c >= (unsigned int) SLtt_Screen_Cols)
- {
- /* For now, just do not write there. Later, something more
- * sophisticated will be implemented.
- */
- if (SLtt_Screen_Cols > Cursor_c)
- len = SLtt_Screen_Cols - Cursor_c - 1;
- else
- len = 0;
- }
- }
- tt_write (str, len);
-}
-
-static void send_attr_str (SLsmg_Char_Type *s)
-{
- unsigned char out[256], ch, *p;
- register SLtt_Char_Type attr;
- register SLsmg_Char_Type sh;
- int color, last_color = -1;
-
- p = out;
- while (0 != (sh = *s++))
- {
- ch = sh & 0xFF;
- color = ((int) sh & 0xFF00) >> 8;
-
-#if SLTT_HAS_NON_BCE_SUPPORT
- if (Bce_Color_Offset
- && (color >= Bce_Color_Offset))
- color -= Bce_Color_Offset;
-#endif
-
- if (color != last_color)
- {
- if (SLtt_Use_Ansi_Colors) attr = Ansi_Color_Map[color & 0x7F].fgbg;
- else attr = Ansi_Color_Map[color & 0x7F].mono;
-
- if (sh & 0x8000) /* alternate char set */
- {
- if (SLtt_Use_Blink_For_ACS)
- {
- if (SLtt_Blink_Mode) attr |= SLTT_BLINK_MASK;
- }
- else attr |= SLTT_ALTC_MASK;
- }
-
- if (attr != Current_Fgbg)
- {
- if ((ch != ' ') ||
- /* it is a space so only consider it different if it
- * has different attributes.
- */
- (attr & BGALL_MASK) != (Current_Fgbg & BGALL_MASK))
- {
- if (p != out)
- {
- *p = 0;
- write_string_with_care ((char *) out);
- Cursor_c += (int) (p - out);
- p = out;
- }
-
- if (SLtt_Use_Ansi_Colors && (NULL != Ansi_Color_Map[color & 0x7F].custom_esc))
- {
- tt_write_string (Ansi_Color_Map[color & 0x7F].custom_esc);
- /* Just in case the custom escape sequence screwed up
- * the alt character set state...
- */
- if ((attr & SLTT_ALTC_MASK) != (Current_Fgbg & SLTT_ALTC_MASK))
- SLtt_set_alt_char_set ((int) (attr & SLTT_ALTC_MASK));
- Current_Fgbg = attr;
- }
- else write_attributes (attr);
-
- last_color = color;
- }
- }
- }
- *p++ = ch;
- }
- *p = 0;
- if (p != out) write_string_with_care ((char *) out);
- Cursor_c += (int) (p - out);
-}
-
-static void forward_cursor (unsigned int n, int row)
-{
- char buf [1024];
-
- if (n <= 4)
- {
- SLtt_normal_video ();
- SLMEMSET (buf, ' ', n);
- buf[n] = 0;
- write_string_with_care (buf);
- Cursor_c += n;
- }
- else if (Curs_F_Str != NULL)
- {
- Cursor_c += n;
- n = tt_sprintf(buf, Curs_F_Str, (int) n, 0);
- tt_write(buf, n);
- }
- else SLtt_goto_rc (row, (int) (Cursor_c + n));
-}
-
-
-void SLtt_smart_puts(SLsmg_Char_Type *neww, SLsmg_Char_Type *oldd, int len, int row)
-{
- register SLsmg_Char_Type *p, *q, *qmax, *pmax, *buf;
- SLsmg_Char_Type buffer[256];
- unsigned int n_spaces;
- SLsmg_Char_Type *space_match, *last_buffered_match;
-#ifdef HP_GLITCH_CODE
- int handle_hp_glitch = 0;
-#endif
- SLsmg_Char_Type space_char;
-#define SLTT_USE_INSERT_HACK 1
-#if SLTT_USE_INSERT_HACK
- SLsmg_Char_Type insert_hack_prev = 0;
- SLsmg_Char_Type insert_hack_char = 0;
-
- if ((row + 1 == SLtt_Screen_Rows)
- && (len == SLtt_Screen_Cols)
- && (len > 1)
- && (SLtt_Term_Cannot_Insert == 0)
- && Automatic_Margins)
- {
- insert_hack_char = neww[len-1];
- if (oldd[len-1] == insert_hack_char)
- insert_hack_char = 0;
- else
- insert_hack_prev = neww[len-2];
- }
-#endif
-
- q = oldd; p = neww;
- qmax = oldd + len;
- pmax = p + len;
-
- /* Find out where to begin --- while they match, we are ok */
- while (1)
- {
- if (q == qmax) return;
-#if SLANG_HAS_KANJI_SUPPORT
- if (*p & 0x80)
- { /* new is kanji */
- if ((*q & 0x80) && ((q + 1) < qmax))
- { /* old is also kanji */
- if (((0xFF & *q) != (0xFF & *p))
- || ((0xFF & q[1]) != (0xFF & p[1])))
- break; /* both kanji, but not match */
-
- else
- { /* kanji match ! */
- if (!COLOR_EQS(*q, *p)) break;
- q++; p++;
- if (!COLOR_EQS(*q, *p)) break;
- /* really match! */
- q++; p++;
- continue;
- }
- }
- else break; /* old is not kanji */
- }
- else
- { /* new is not kanji */
- if (*q & 0x80) break; /* old is kanji */
- }
-#endif
- if (!CHAR_EQS(*q, *p)) break;
- q++; p++;
- }
-
-#ifdef HP_GLITCH_CODE
- if (Has_HP_Glitch)
- {
- SLsmg_Char_Type *qq = q;
-
- SLtt_goto_rc (row, (int) (p - neww));
-
- while (qq < qmax)
- {
- if (*qq & 0xFF00)
- {
- SLtt_normal_video ();
- SLtt_del_eol ();
- qmax = q;
- handle_hp_glitch = 1;
- break;
- }
- qq++;
- }
- }
-#endif
- /* Find where the last non-blank character on old/new screen is */
-
- space_char = ' ';
- if ((*(pmax-1) & 0xFF) == ' ')
- {
- /* If we get here, then we can erase to the end of the line to create
- * the final space. However, this will only work _if_ erasing will
- * get us the correct color. If the terminal supports BCE, then this
- * is easy. If it does not, then we can only perform this operation
- * if the color is known via something like COLORFGBG. For now,
- * I just will not perform the optimization for such terminals.
- */
- if ((Can_Background_Color_Erase)
- && SLtt_Use_Ansi_Colors)
- space_char = *(pmax - 1);
-
- while (pmax > p)
- {
- pmax--;
- if (!CHAR_EQS(*pmax, space_char))
- {
- pmax++;
- break;
- }
- }
- }
-
- while (qmax > q)
- {
- qmax--;
- if (!CHAR_EQS(*qmax, space_char))
- {
- qmax++;
- break;
- }
- }
-
- last_buffered_match = buf = buffer; /* buffer is empty */
-
-#ifdef HP_GLITCH_CODE
- if (handle_hp_glitch)
- {
- while (p < pmax)
- {
- *buf++ = *p++;
- }
- }
-#endif
-
-#ifdef HP_GLITCH_CODE
- if (Has_HP_Glitch == 0)
- {
-#endif
- /* Try use use erase to bol if possible */
- if ((Del_Bol_Str != NULL) && ((*neww & 0xFF) == 32))
- {
- SLsmg_Char_Type *p1;
- SLsmg_Char_Type blank;
-
- p1 = neww;
- if ((Can_Background_Color_Erase)
- && SLtt_Use_Ansi_Colors)
- blank = *p1;
- /* black+white attributes do not support bce */
- else
- blank = 32;
-
- while ((p1 < pmax) && (CHAR_EQS (*p1, blank)))
- p1++;
-
- /* Is this optimization worth it? Assume Del_Bol_Str is ESC [ 1 K
- * It costs 4 chars + the space needed to properly position the
- * cursor, e.g., ESC [ 10;10H. So, it costs at least 13 characters.
- */
- if ((p1 > neww + 13)
- && (p1 >= p)
- /* Avoid erasing from the end of the line */
- && ((p1 != pmax) || (pmax < neww + len)))
- {
- int ofs = (int) (p1 - neww);
- q = oldd + ofs;
- p = p1;
- SLtt_goto_rc (row, ofs - 1);
- SLtt_reverse_video (blank >> 8);
- tt_write_string (Del_Bol_Str);
- tt_write (" ", 1);
- Cursor_c += 1;
- }
- else
- SLtt_goto_rc (row, (int) (p - neww));
- }
- else
- SLtt_goto_rc (row, (int) (p - neww));
-#ifdef HP_GLITCH_CODE
- }
-#endif
-
-
- /* loop using overwrite then skip algorithm until done */
- while (1)
- {
- /* while they do not match and we do not hit a space, buffer them up */
- n_spaces = 0;
- while (p < pmax)
- {
- if (CHAR_EQS(*q, 32) && CHAR_EQS(*p, 32))
- {
- /* If *q is not a space, we would have to overwrite it.
- * However, if *q is a space, then while *p is also one,
- * we only need to skip over the blank field.
- */
- space_match = p;
- p++; q++;
- while ((p < pmax)
- && CHAR_EQS(*q, 32)
- && CHAR_EQS(*p, 32))
- {
- p++;
- q++;
- }
- n_spaces = (unsigned int) (p - space_match);
- break;
- }
-#if SLANG_HAS_KANJI_SUPPORT
- if ((*p & 0x80) && ((p + 1) < pmax))
- { /* new is kanji */
- if (*q & 0x80)
- { /* old is also kanji */
- if (((0xFF & *q) != (0xFF & *p))
- || ((0xFF & q[1]) != (0xFF & p[1])))
- {
- /* both kanji, but not match */
- *buf++ = *p++;
- *buf++ = *p++;
- q += 2;
- continue;
- }
- else
- { /* kanji match ? */
- if (!COLOR_EQS(*q, *p) || !COLOR_EQS(*(q+1), *(p+1)))
- {
- /* code is match, but color is diff */
- *buf++ = *p++;
- *buf++ = *p++;
- q += 2;
- continue;
- }
- /* really match ! */
- break;
- }
- }
- else
- { /* old is not kanji */
- *buf++ = *p++;
- *buf++ = *p++;
- q += 2;
- continue;
- }
- }
- else
- { /* new is not kanji */
- if (*q & 0x80)
- { /* old is kanji */
- *buf++ = *p++;
- q++;
- continue;
- }
- }
-#endif
-
- if (CHAR_EQS(*q, *p)) break;
- *buf++ = *p++;
- q++;
- }
- *buf = 0;
-
- if (buf != buffer) send_attr_str (buffer);
- buf = buffer;
-
- if (n_spaces
- && ((p < pmax) /* erase to eol will achieve this effect*/
- || (space_char != 32)))/* unless space_char is not a simple space */
- {
- forward_cursor (n_spaces, row);
- }
-
- /* Now we overwrote what we could and cursor is placed at position
- * of a possible match of new and old. If this is the case, skip
- * some more.
- */
-#if !SLANG_HAS_KANJI_SUPPORT
- while ((p < pmax) && CHAR_EQS(*p, *q))
- {
- *buf++ = *p++;
- q++;
- }
-#else
- /* Kanji */
- while (p < pmax)
- {
- if ((*p & 0x80) && ((p + 1) < pmax))
- { /* new is kanji */
- if (*q & 0x80)
- { /* old is also kanji */
- if (((0xFF & *q) == (0xFF & *p))
- && ((0xFF & q[1]) == (0xFF & p[1])))
- {
- /* kanji match ? */
- if (!COLOR_EQS(*q, *p)
- || !COLOR_EQS(q[1], p[1]))
- break;
-
- *buf++ = *p++;
- q++;
- if (p >= pmax)
- {
- *buf++ = 32;
- p++;
- break;
- }
- else
- {
- *buf++ = *p++;
- q++;
- continue;
- }
- }
- else break; /* both kanji, but not match */
- }
- else break; /* old is not kanji */
- }
- else
- { /* new is not kanji */
- if (*q & 0x80) break; /* old is kanji */
- if (!CHAR_EQS(*q, *p)) break;
- *buf++ = *p++;
- q++;
- }
- }
-#endif
- last_buffered_match = buf;
- if (p >= pmax) break;
-
- /* jump to new position is it is greater than 5 otherwise
- * let it sit in the buffer and output it later.
- */
- if ((int) (buf - buffer) >= 5)
- {
- forward_cursor ((unsigned int) (buf - buffer), row);
- last_buffered_match = buf = buffer;
- }
- }
-
- if (buf != buffer)
- {
- if (q < qmax)
- {
- if ((buf == last_buffered_match)
- && ((int) (buf - buffer) >= 5))
- {
- forward_cursor ((unsigned int) (buf - buffer), row);
- }
- else
- {
- *buf = 0;
- send_attr_str (buffer);
- }
- }
- }
-
- if (q < qmax)
- {
- SLtt_reverse_video (space_char >> 8);
- del_eol ();
- }
-
-#if SLTT_USE_INSERT_HACK
- else if (insert_hack_char)
- {
- SLtt_goto_rc (SLtt_Screen_Rows-1, SLtt_Screen_Cols-2);
- buffer[0] = insert_hack_char;
- buffer[1] = 0;
- send_attr_str (buffer);
- SLtt_goto_rc (SLtt_Screen_Rows-1, SLtt_Screen_Cols-2);
- buffer[0] = insert_hack_prev;
- SLtt_begin_insert ();
- send_attr_str (buffer);
- SLtt_end_insert ();
- }
-#endif
-
- if (Automatic_Margins && (Cursor_c + 1 >= SLtt_Screen_Cols)) Cursor_Set = 0;
-}
-
-static void get_color_info (void)
-{
- char *fg, *bg;
-
- /* Allow easy mechanism to override inadequate termcap/terminfo files. */
- if (SLtt_Use_Ansi_Colors == 0)
- SLtt_Use_Ansi_Colors = (NULL != getenv ("COLORTERM"));
-
- if (SLtt_Use_Ansi_Colors)
- Is_Color_Terminal = 1;
-
-#if SLTT_HAS_NON_BCE_SUPPORT
- if (Can_Background_Color_Erase == 0)
- Can_Background_Color_Erase = (NULL != getenv ("COLORTERM_BCE"));
-#endif
-
- if (-1 == get_default_colors (&fg, &bg))
- return;
-
- /* Check to see if application has already set them. */
- if (Color_0_Modified)
- return;
-
- SLtt_set_color (0, NULL, fg, bg);
- SLtt_set_color (1, NULL, bg, fg);
-}
-
-/* termcap stuff */
-
-#ifdef __unix__
-
-static int Termcap_Initalized = 0;
-
-#ifdef USE_TERMCAP
-/* Termcap based system */
-static char Termcap_Buf[4096];
-static char Termcap_String_Buf[4096];
-static char *Termcap_String_Ptr;
-extern char *tgetstr(char *, char **);
-extern int tgetent(char *, char *);
-extern int tgetnum(char *);
-extern int tgetflag(char *);
-#else
-/* Terminfo */
-static SLterminfo_Type *Terminfo;
-#endif
-
-#define TGETFLAG(x) (SLtt_tgetflag(x) > 0)
-
-static char *fixup_tgetstr (char *what)
-{
- register char *w, *w1;
- char *wsave;
-
- if (what == NULL)
- return NULL;
-
- /* Check for AIX brain-damage */
- if (*what == '@')
- return NULL;
-
- /* lose pad info --- with today's technology, term is a loser if
- it is really needed */
- while ((*what == '.') ||
- ((*what >= '0') && (*what <= '9'))) what++;
- if (*what == '*') what++;
-
- /* lose terminfo padding--- looks like $<...> */
- w = what;
- while (*w) if ((*w++ == '$') && (*w == '<'))
- {
- w1 = w - 1;
- while (*w && (*w != '>')) w++;
- if (*w == 0) break;
- w++;
- wsave = w1;
- while ((*w1++ = *w++) != 0);
- w = wsave;
- }
-
- if (*what == 0) what = NULL;
- return what;
-}
-
-char *SLtt_tgetstr (char *s)
-{
- if (Termcap_Initalized == 0)
- return NULL;
-
-#ifdef USE_TERMCAP
- s = tgetstr (s, &Termcap_String_Ptr);
-#else
- s = _SLtt_tigetstr (Terminfo, s);
-#endif
- return fixup_tgetstr (s);
-}
-
-int SLtt_tgetnum (char *s)
-{
- if (Termcap_Initalized == 0)
- return -1;
-#ifdef USE_TERMCAP
- return tgetnum (s);
-#else
- return _SLtt_tigetnum (Terminfo, s);
-#endif
-}
-
-int SLtt_tgetflag (char *s)
-{
- if (Termcap_Initalized == 0)
- return -1;
-#ifdef USE_TERMCAP
- return tgetflag (s);
-#else
- return _SLtt_tigetflag (Terminfo, s);
-#endif
-}
-
-static int Vt100_Like = 0;
-
-void SLtt_get_terminfo (void)
-{
- char *term;
- int status;
-
- term = getenv ("TERM");
- if (term == NULL)
- SLang_exit_error("TERM environment variable needs set.");
-
- if (0 == (status = SLtt_initialize (term)))
- return;
-
- if (status == -1)
- {
- SLang_exit_error ("Unknown terminal: %s\n\
-Check the TERM environment variable.\n\
-Also make sure that the terminal is defined in the terminfo database.\n\
-Alternatively, set the TERMCAP environment variable to the desired\n\
-termcap entry.",
- term);
- }
-
- if (status == -2)
- {
- SLang_exit_error ("\
-Your terminal lacks the ability to clear the screen or position the cursor.\n");
- }
-}
-
-/* Returns 0 if all goes well, -1 if terminal capabilities cannot be deduced,
- * or -2 if terminal cannot position the cursor.
- */
-int SLtt_initialize (char *term)
-{
- char *t, ch;
- int is_xterm;
- int almost_vtxxx;
-
- if (SLang_TT_Write_FD == -1)
- {
- /* Apparantly, this cannot fail according to the man pages. */
- SLang_TT_Write_FD = fileno (stdout);
- }
-
- if (term == NULL)
- {
- term = getenv ("TERM");
- if (term == NULL)
- return -1;
- }
-
- Linux_Console = (!strncmp (term, "linux", 5)
-# ifdef linux
- || !strncmp(term, "con", 3)
-# endif
- );
-
- t = term;
-
- if (strcmp(t, "vt52") && (*t++ == 'v') && (*t++ == 't')
- && (ch = *t, (ch >= '1') && (ch <= '9'))) Vt100_Like = 1;
-
- is_xterm = ((0 == strncmp (term, "xterm", 5))
- || (0 == strncmp (term, "rxvt", 4))
- || (0 == strncmp (term, "Eterm", 5)));
-
- almost_vtxxx = (Vt100_Like
- || Linux_Console
- || is_xterm
- || !strcmp (term, "screen"));
-
-# ifndef USE_TERMCAP
- if (NULL == (Terminfo = _SLtt_tigetent (term)))
- {
- if (almost_vtxxx) /* Special cases. */
- {
- int vt102 = 1;
- if (!strcmp (term, "vt100")) vt102 = 0;
- get_color_info ();
- SLtt_set_term_vtxxx (&vt102);
- return 0;
- }
- return -1;
- }
-# else /* USE_TERMCAP */
- if (1 != tgetent(Termcap_Buf, term))
- return -1;
- Termcap_String_Ptr = Termcap_String_Buf;
-# endif /* NOT USE_TERMCAP */
-
- Termcap_Initalized = 1;
-
- Cls_Str = SLtt_tgetstr ("cl");
- Curs_Pos_Str = SLtt_tgetstr ("cm");
-
- if ((NULL == (Ins_Mode_Str = SLtt_tgetstr("im")))
- || ( NULL == (Eins_Mode_Str = SLtt_tgetstr("ei")))
- || ( NULL == (Del_Char_Str = SLtt_tgetstr("dc"))))
- SLtt_Term_Cannot_Insert = 1;
-
- Visible_Bell_Str = SLtt_tgetstr ("vb");
- Curs_Up_Str = SLtt_tgetstr ("up");
- Rev_Scroll_Str = SLtt_tgetstr("sr");
- Del_N_Lines_Str = SLtt_tgetstr("DL");
- Add_N_Lines_Str = SLtt_tgetstr("AL");
-
- /* Actually these are used to initialize terminals that use cursor
- * addressing. Hard to believe.
- */
- Term_Init_Str = SLtt_tgetstr ("ti");
- Term_Reset_Str = SLtt_tgetstr ("te");
-
- /* If I do this for vtxxx terminals, arrow keys start sending ESC O A,
- * which I do not want. This is mainly for HP terminals.
- */
- if ((almost_vtxxx == 0) || SLtt_Force_Keypad_Init)
- {
- Keypad_Init_Str = SLtt_tgetstr ("ks");
- Keypad_Reset_Str = SLtt_tgetstr ("ke");
- }
-
- /* Make up for defective termcap/terminfo databases */
- if ((Vt100_Like && (term[2] != '1'))
- || Linux_Console
- || is_xterm
- )
- {
- if (Del_N_Lines_Str == NULL) Del_N_Lines_Str = "\033[%dM";
- if (Add_N_Lines_Str == NULL) Add_N_Lines_Str = "\033[%dL";
- }
-
- Scroll_R_Str = SLtt_tgetstr("cs");
-
- SLtt_get_screen_size ();
-
- if ((Scroll_R_Str == NULL)
- || (((NULL == Del_N_Lines_Str) || (NULL == Add_N_Lines_Str))
- && (NULL == Rev_Scroll_Str)))
- {
- if (is_xterm
- || Linux_Console
- )
- {
- /* Defective termcap mode!!!! */
- SLtt_set_term_vtxxx (NULL);
- }
- else SLtt_Term_Cannot_Scroll = 1;
- }
-
- Del_Eol_Str = SLtt_tgetstr("ce");
- Del_Bol_Str = SLtt_tgetstr("cb");
- if (is_xterm && (Del_Bol_Str == NULL))
- Del_Bol_Str = "\033[1K";
- if (is_xterm && (Del_Eol_Str == NULL))
- Del_Bol_Str = "\033[K";
-
- Rev_Vid_Str = SLtt_tgetstr("mr");
- if (Rev_Vid_Str == NULL) Rev_Vid_Str = SLtt_tgetstr("so");
-
- Bold_Vid_Str = SLtt_tgetstr("md");
-
- /* Although xterm cannot blink, it does display the blinking characters
- * as bold ones. Some Rxvt will display the background as high intensity.
- */
- if ((NULL == (Blink_Vid_Str = SLtt_tgetstr("mb")))
- && is_xterm)
- Blink_Vid_Str = "\033[5m";
-
- UnderLine_Vid_Str = SLtt_tgetstr("us");
-
- Start_Alt_Chars_Str = SLtt_tgetstr ("as"); /* smacs */
- End_Alt_Chars_Str = SLtt_tgetstr ("ae"); /* rmacs */
- Enable_Alt_Char_Set = SLtt_tgetstr ("eA"); /* enacs */
- SLtt_Graphics_Char_Pairs = SLtt_tgetstr ("ac");
-
- if (NULL == SLtt_Graphics_Char_Pairs)
- {
- /* make up for defective termcap/terminfo */
- if (Vt100_Like)
- {
- Start_Alt_Chars_Str = "\016";
- End_Alt_Chars_Str = "\017";
- Enable_Alt_Char_Set = "\033)0";
- }
- }
-
- /* aixterm added by willi */
- if (is_xterm || !strncmp (term, "aixterm", 7))
- {
- Start_Alt_Chars_Str = "\016";
- End_Alt_Chars_Str = "\017";
- Enable_Alt_Char_Set = "\033(B\033)0";
- }
-
- if ((SLtt_Graphics_Char_Pairs == NULL) &&
- ((Start_Alt_Chars_Str == NULL) || (End_Alt_Chars_Str == NULL)))
- {
- SLtt_Has_Alt_Charset = 0;
- Enable_Alt_Char_Set = NULL;
- }
- else SLtt_Has_Alt_Charset = 1;
-
-#ifdef AMIGA
- Enable_Alt_Char_Set = Start_Alt_Chars_Str = End_Alt_Chars_Str = NULL;
-#endif
-
- /* status line capabilities */
- if ((SLtt_Has_Status_Line == -1)
- && (0 != (SLtt_Has_Status_Line = TGETFLAG ("hs"))))
- {
- Disable_Status_line_Str = SLtt_tgetstr ("ds");
- Return_From_Status_Line_Str = SLtt_tgetstr ("fs");
- Goto_Status_Line_Str = SLtt_tgetstr ("ts");
- /* Status_Line_Esc_Ok = TGETFLAG("es"); */
- Num_Status_Line_Columns = SLtt_tgetnum ("ws");
- if (Num_Status_Line_Columns < 0) Num_Status_Line_Columns = 0;
- }
-
- if (NULL == (Norm_Vid_Str = SLtt_tgetstr("me")))
- {
- Norm_Vid_Str = SLtt_tgetstr("se");
- }
-
- Cursor_Invisible_Str = SLtt_tgetstr("vi");
- Cursor_Visible_Str = SLtt_tgetstr("ve");
-
- Curs_F_Str = SLtt_tgetstr("RI");
-
-# if 0
- if (NULL != Curs_F_Str)
- {
- Len_Curs_F_Str = strlen(Curs_F_Str);
- }
- else Len_Curs_F_Str = strlen(Curs_Pos_Str);
-# endif
-
- Automatic_Margins = TGETFLAG ("am");
- /* No_Move_In_Standout = !TGETFLAG ("ms"); */
-# ifdef HP_GLITCH_CODE
- Has_HP_Glitch = TGETFLAG ("xs");
-# else
- Worthless_Highlight = TGETFLAG ("xs");
-# endif
-
- if (Worthless_Highlight == 0)
- { /* Magic cookie glitch */
- Worthless_Highlight = (SLtt_tgetnum ("sg") > 0);
- }
-
- if (Worthless_Highlight)
- SLtt_Has_Alt_Charset = 0;
-
- Reset_Color_String = SLtt_tgetstr ("op");
- Color_Fg_Str = SLtt_tgetstr ("AF"); /* ANSI setaf */
- Color_Bg_Str = SLtt_tgetstr ("AB"); /* ANSI setbf */
- if ((Color_Fg_Str == NULL) || (Color_Bg_Str == NULL))
- {
- Color_Fg_Str = SLtt_tgetstr ("Sf"); /* setf */
- Color_Bg_Str = SLtt_tgetstr ("Sb"); /* setb */
- }
-
- if ((Max_Terminfo_Colors = SLtt_tgetnum ("Co")) < 0)
- Max_Terminfo_Colors = 8;
-
- if ((Color_Bg_Str != NULL) && (Color_Fg_Str != NULL))
- SLtt_Use_Ansi_Colors = 1;
- else
- {
-#if 0
- Color_Fg_Str = "%?%p1%{7}%>%t\033[1;3%p1%{8}%m%dm%e\033[3%p1%dm%;";
- Color_Bg_Str = "%?%p1%{7}%>%t\033[5;4%p1%{8}%m%dm%e\033[4%p1%dm%;";
- Max_Terminfo_Colors = 16;
-#else
- Color_Fg_Str = "\033[3%dm";
- Color_Bg_Str = "\033[4%dm";
- Max_Terminfo_Colors = 8;
-#endif
- }
-
-#if SLTT_HAS_NON_BCE_SUPPORT
- Can_Background_Color_Erase = TGETFLAG ("ut"); /* bce */
- /* Modern xterms have the BCE capability as well as the linux console */
- if (Can_Background_Color_Erase == 0)
- {
- Can_Background_Color_Erase = (Linux_Console
-# if SLTT_XTERM_ALWAYS_BCE
- || is_xterm
-# endif
- );
- }
-#endif
- get_color_info ();
-
-
- if ((Cls_Str == NULL)
- || (Curs_Pos_Str == NULL))
- return -2;
-
- return 0;
-}
-
-#endif
-/* Unix */
-
-/* specific to vtxxx only */
-void SLtt_enable_cursor_keys (void)
-{
-#ifdef __unix__
- if (Vt100_Like)
-#endif
- tt_write_string("\033=\033[?1l");
-}
-
-#ifdef VMS
-int SLtt_initialize (char *term)
-{
- SLtt_get_terminfo ();
- return 0;
-}
-
-void SLtt_get_terminfo ()
-{
- int zero = 0;
-
- Color_Fg_Str = "\033[3%dm";
- Color_Bg_Str = "\033[4%dm";
- Max_Terminfo_Colors = 8;
-
- get_color_info ();
-
- SLtt_set_term_vtxxx(&zero);
- Start_Alt_Chars_Str = "\016";
- End_Alt_Chars_Str = "\017";
- SLtt_Has_Alt_Charset = 1;
- SLtt_Graphics_Char_Pairs = "aaffgghhjjkkllmmnnooqqssttuuvvwwxx";
- Enable_Alt_Char_Set = "\033(B\033)0";
- SLtt_get_screen_size ();
-}
-#endif
-
-/* This sets term for vt102 terminals it parameter vt100 is 0. If vt100
- * is non-zero, set terminal appropriate for a only vt100
- * (no add line capability). */
-
-void SLtt_set_term_vtxxx(int *vt100)
-{
- Norm_Vid_Str = "\033[m";
-
- Scroll_R_Str = "\033[%i%d;%dr";
- Cls_Str = "\033[2J\033[H";
- Rev_Vid_Str = "\033[7m";
- Bold_Vid_Str = "\033[1m";
- Blink_Vid_Str = "\033[5m";
- UnderLine_Vid_Str = "\033[4m";
- Del_Eol_Str = "\033[K";
- Del_Bol_Str = "\033[1K";
- Rev_Scroll_Str = "\033M";
- Curs_F_Str = "\033[%dC";
- /* Len_Curs_F_Str = 5; */
- Curs_Pos_Str = "\033[%i%d;%dH";
- if ((vt100 == NULL) || (*vt100 == 0))
- {
- Ins_Mode_Str = "\033[4h";
- Eins_Mode_Str = "\033[4l";
- Del_Char_Str = "\033[P";
- Del_N_Lines_Str = "\033[%dM";
- Add_N_Lines_Str = "\033[%dL";
- SLtt_Term_Cannot_Insert = 0;
- }
- else
- {
- Del_N_Lines_Str = NULL;
- Add_N_Lines_Str = NULL;
- SLtt_Term_Cannot_Insert = 1;
- }
- SLtt_Term_Cannot_Scroll = 0;
- /* No_Move_In_Standout = 0; */
-}
-
-int SLtt_init_video (void)
-{
- /* send_string_to_term("\033[?6h"); */
- /* relative origin mode */
- tt_write_string (Term_Init_Str);
- tt_write_string (Keypad_Init_Str);
- SLtt_reset_scroll_region();
- SLtt_end_insert();
- tt_write_string (Enable_Alt_Char_Set);
- Video_Initialized = 1;
- return 0;
-}
-
-int SLtt_reset_video (void)
-{
- SLtt_goto_rc (SLtt_Screen_Rows - 1, 0);
- Cursor_Set = 0;
- SLtt_normal_video (); /* MSKermit requires this */
- tt_write_string(Norm_Vid_Str);
-
- Current_Fgbg = 0xFFFFFFFFU;
- SLtt_set_alt_char_set (0);
- if (SLtt_Use_Ansi_Colors)
- {
- if (Reset_Color_String == NULL)
- {
- SLtt_Char_Type attr;
- if (-1 != make_color_fgbg (NULL, NULL, &attr))
- write_attributes (attr);
- else tt_write_string ("\033[0m\033[m");
- }
- else tt_write_string (Reset_Color_String);
- Current_Fgbg = 0xFFFFFFFFU;
- }
- SLtt_erase_line ();
- tt_write_string (Keypad_Reset_Str);
- tt_write_string (Term_Reset_Str);
- SLtt_flush_output ();
- Video_Initialized = 0;
- return 0;
-}
-
-void SLtt_bold_video (void)
-{
- tt_write_string (Bold_Vid_Str);
-}
-
-int SLtt_set_mouse_mode (int mode, int force)
-{
- char *term;
-
- if (force == 0)
- {
- if (NULL == (term = (char *) getenv("TERM"))) return -1;
- if (strncmp ("xterm", term, 5))
- return -1;
- }
-
- if (mode)
- tt_write_string ("\033[?9h");
- else
- tt_write_string ("\033[?9l");
-
- return 0;
-}
-
-void SLtt_disable_status_line (void)
-{
- if (SLtt_Has_Status_Line > 0)
- {
- tt_write_string (Disable_Status_line_Str);
- SLtt_flush_output ();
- }
-}
-
-int SLtt_write_to_status_line (char *s, int col)
-{
- if ((SLtt_Has_Status_Line <= 0)
- || (Goto_Status_Line_Str == NULL)
- || (Return_From_Status_Line_Str == NULL))
- return -1;
-
- tt_printf (Goto_Status_Line_Str, col, 0);
- tt_write_string (s);
- tt_write_string (Return_From_Status_Line_Str);
- return 0;
-}
-
-void SLtt_get_screen_size (void)
-{
-#ifdef VMS
- int status, code;
- unsigned short chan;
- $DESCRIPTOR(dev_dsc, "SYS$INPUT:");
-#endif
- int r = 0, c = 0;
-
-#ifdef TIOCGWINSZ
- struct winsize wind_struct;
-
- do
- {
- if ((ioctl(1,TIOCGWINSZ,&wind_struct) == 0)
- || (ioctl(0, TIOCGWINSZ, &wind_struct) == 0)
- || (ioctl(2, TIOCGWINSZ, &wind_struct) == 0))
- {
- c = (int) wind_struct.ws_col;
- r = (int) wind_struct.ws_row;
- break;
- }
- }
- while (errno == EINTR);
-
-#endif
-
-#ifdef VMS
- status = sys$assign(&dev_dsc,&chan,0,0,0);
- if (status & 1)
- {
- code = DVI$_DEVBUFSIZ;
- status = lib$getdvi(&code, &chan,0, &c, 0,0);
- if (!(status & 1))
- c = 80;
- code = DVI$_TT_PAGE;
- status = lib$getdvi(&code, &chan,0, &r, 0,0);
- if (!(status & 1))
- r = 24;
- sys$dassgn(chan);
- }
-#endif
-
- if (r <= 0)
- {
- char *s = getenv ("LINES");
- if (s != NULL) r = atoi (s);
- }
-
- if (c <= 0)
- {
- char *s = getenv ("COLUMNS");
- if (s != NULL) c = atoi (s);
- }
-
- if (r <= 0) r = 24;
- if (c <= 0) c = 80;
-#if 0
- if ((r <= 0) || (r > 200)) r = 24;
- if ((c <= 0) || (c > 250)) c = 80;
-#endif
- SLtt_Screen_Rows = r;
- SLtt_Screen_Cols = c;
-}
-
-#if SLTT_HAS_NON_BCE_SUPPORT
-int _SLtt_get_bce_color_offset (void)
-{
- if ((SLtt_Use_Ansi_Colors == 0)
- || Can_Background_Color_Erase
- || SLtt_Use_Blink_For_ACS) /* in this case, we cannot lose a color */
- Bce_Color_Offset = 0;
- else
- {
- if (GET_BG(Ansi_Color_Map[0].fgbg) == SLSMG_COLOR_DEFAULT)
- Bce_Color_Offset = 0;
- else
- Bce_Color_Offset = 1;
- }
-
- return Bce_Color_Offset;
-}
-#endif
diff --git a/mdk-stage1/slang/slerr.c b/mdk-stage1/slang/slerr.c
deleted file mode 100644
index 139b3859b..000000000
--- a/mdk-stage1/slang/slerr.c
+++ /dev/null
@@ -1,181 +0,0 @@
-/* error handling common to all routines. */
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-void (*SLang_VMessage_Hook) (char *, va_list);
-void (*SLang_Error_Hook)(char *);
-void (*SLang_Exit_Error_Hook)(char *, va_list);
-volatile int SLang_Error = 0;
-char *SLang_Error_Message;
-volatile int SLKeyBoard_Quit = 0;
-
-static char *get_error_string (void)
-{
- char *str;
-
- if (!SLang_Error) SLang_Error = SL_UNKNOWN_ERROR;
- if (SLang_Error_Message != NULL) str = SLang_Error_Message;
- else switch(SLang_Error)
- {
- case SL_NOT_IMPLEMENTED: str = "Not Implemented"; break;
- case SL_APPLICATION_ERROR: str = "Application Error"; break;
- case SL_VARIABLE_UNINITIALIZED: str = "Variable Uninitialized"; break;
- case SL_MALLOC_ERROR : str = "Malloc Error"; break;
- case SL_INTERNAL_ERROR: str = "Internal Error"; break;
- case SL_STACK_OVERFLOW: str = "Stack Overflow"; break;
- case SL_STACK_UNDERFLOW: str = "Stack Underflow"; break;
- case SL_INTRINSIC_ERROR: str = "Intrinsic Error"; break;
- case SL_USER_BREAK: str = "User Break"; break;
- case SL_UNDEFINED_NAME: str = "Undefined Name"; break;
- case SL_SYNTAX_ERROR: str = "Syntax Error"; break;
- case SL_DUPLICATE_DEFINITION: str = "Duplicate Definition"; break;
- case SL_TYPE_MISMATCH: str = "Type Mismatch"; break;
- case SL_READONLY_ERROR: str = "Variable is read-only"; break;
- case SL_DIVIDE_ERROR: str = "Divide by zero"; break;
- case SL_OBJ_NOPEN: str = "Object not opened"; break;
- case SL_OBJ_UNKNOWN: str = "Object unknown"; break;
- case SL_INVALID_PARM: str = "Invalid Parameter"; break;
- case SL_TYPE_UNDEFINED_OP_ERROR:
- str = "Operation not defined for datatype"; break;
- case SL_USER_ERROR:
- str = "User Error"; break;
- case SL_USAGE_ERROR:
- str = "Illegal usage of function";
- break;
- case SL_FLOATING_EXCEPTION:
- str = "Floating Point Exception";
- break;
- case SL_UNKNOWN_ERROR:
- default: str = "Unknown Error Code";
- }
-
- SLang_Error_Message = NULL;
- return str;
-}
-
-void SLang_doerror (char *error)
-{
- char *str = NULL;
- char *err;
- char *malloced_err_buf;
- char err_buf [1024];
-
- malloced_err_buf = NULL;
-
- if (((SLang_Error == SL_USER_ERROR)
- || (SLang_Error == SL_USAGE_ERROR))
- && (error != NULL) && (*error != 0))
- err = error;
- else
- {
- char *sle = "S-Lang Error: ";
- unsigned int len;
- char *fmt;
-
- str = get_error_string ();
-
- fmt = "%s%s%s";
- if ((error == NULL) || (*error == 0))
- error = "";
- else if (SLang_Error == SL_UNKNOWN_ERROR)
- /* Do not display an unknown error message if error is non-NULL */
- str = "";
- else
- fmt = "%s%s: %s";
-
- len = strlen (sle) + strlen (str) + strlen(error) + 1;
-
- err = err_buf;
- if (len >= sizeof (err_buf))
- {
- if (NULL == (malloced_err_buf = SLmalloc (len)))
- err = NULL;
- else
- err = malloced_err_buf;
- }
-
- if (err != NULL) sprintf (err, fmt, sle, str, error);
- else err = "Out of memory";
- }
-
- if (SLang_Error_Hook == NULL)
- {
- fputs (err, stderr);
- fputs("\r\n", stderr);
- fflush (stderr);
- }
- else
- (*SLang_Error_Hook)(err);
-
- SLfree (malloced_err_buf);
-}
-
-void SLang_verror (int err_code, char *fmt, ...)
-{
- va_list ap;
- char err [1024];
-
- if (err_code == 0) err_code = SL_INTRINSIC_ERROR;
- if (SLang_Error == 0) SLang_Error = err_code;
-
- if (fmt != NULL)
- {
- va_start(ap, fmt);
- (void) _SLvsnprintf (err, sizeof (err), fmt, ap);
- fmt = err;
- va_end(ap);
- }
-
- SLang_doerror (fmt);
-}
-
-void SLang_exit_error (char *fmt, ...)
-{
- va_list ap;
-
- va_start (ap, fmt);
- if (SLang_Exit_Error_Hook != NULL)
- {
- (*SLang_Exit_Error_Hook) (fmt, ap);
- exit (1);
- }
-
- if (fmt != NULL)
- {
- vfprintf (stderr, fmt, ap);
- fputs ("\r\n", stderr);
- fflush (stderr);
- }
- va_end (ap);
-
- exit (1);
-}
-
-void SLang_vmessage (char *fmt, ...)
-{
- va_list ap;
-
- if (fmt == NULL)
- return;
-
- va_start (ap, fmt);
-
- if (SLang_VMessage_Hook != NULL)
- (*SLang_VMessage_Hook) (fmt, ap);
- else
- {
- vfprintf (stdout, fmt, ap);
- fputs ("\r\n", stdout);
- }
-
- va_end (ap);
-}
diff --git a/mdk-stage1/slang/slerrno.c b/mdk-stage1/slang/slerrno.c
deleted file mode 100644
index 662fadde1..000000000
--- a/mdk-stage1/slang/slerrno.c
+++ /dev/null
@@ -1,219 +0,0 @@
-/* The point of this file is to handle errno values in a system independent
- * way so that they may be used in slang scripts.
- */
-/* Copyright (c) 1998, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-#include "slinclud.h"
-
-#include <errno.h>
-#include "slang.h"
-#include "_slang.h"
-
-typedef struct
-{
- char *msg;
- int sys_errno;
- char *symbolic_name;
-}
-Errno_Map_Type;
-
-static Errno_Map_Type Errno_Map [] =
-{
-#ifndef EPERM
-# define EPERM -1
-#endif
- {"Not owner", EPERM, "EPERM"},
-#ifndef ENOENT
-# define ENOENT -1
-#endif
- {"No such file or directory", ENOENT, "ENOENT"},
-#ifndef ESRCH
-# define ESRCH -1
-#endif
- {"No such process", ESRCH, "ESRCH"},
-#ifndef EINTR
-# define EINTR -1
-#endif
- {"Interrupted system call", EINTR, "EINTR"},
-#ifndef EIO
-# define EIO -1
-#endif
- {"I/O error", EIO, "EIO"},
-#ifndef ENXIO
-# define ENXIO -1
-#endif
- {"No such device or address", ENXIO, "ENXIO"},
-#ifndef E2BIG
-# define E2BIG -1
-#endif
- {"Arg list too long", E2BIG, "E2BIG"},
-#ifndef ENOEXEC
-# define ENOEXEC -1
-#endif
- {"Exec format error", ENOEXEC,"ENOEXEC"},
-#ifndef EBADF
-# define EBADF -1
-#endif
- {"Bad file number", EBADF, "EBADF"},
-#ifndef ECHILD
-# define ECHILD -1
-#endif
- {"No children", ECHILD, "ECHILD"},
-#ifndef EAGAIN
-# define EAGAIN -1
-#endif
- {"Try again", EAGAIN, "EAGAIN"},
-#ifndef ENOMEM
-# define ENOMEM -1
-#endif
- {"Not enough core", ENOMEM, "ENOMEM"},
-#ifndef EACCES
-# define EACCES -1
-#endif
- {"Permission denied", EACCES, "EACCES"},
-#ifndef EFAULT
-# define EFAULT -1
-#endif
- {"Bad address", EFAULT, "EFAULT"},
-#ifndef ENOTBLK
-# define ENOTBLK -1
-#endif
- {"Block device required", ENOTBLK, "ENOTBLK"},
-#ifndef EBUSY
-# define EBUSY -1
-#endif
- {"Mount device busy", EBUSY, "EBUSY"},
-#ifndef EEXIST
-# define EEXIST -1
-#endif
- {"File exists", EEXIST, "EEXIST"},
-#ifndef EXDEV
-# define EXDEV -1
-#endif
- {"Cross-device link", EXDEV, "EXDEV"},
-#ifndef ENODEV
-# define ENODEV -1
-#endif
- {"No such device", ENODEV, "ENODEV"},
-#ifndef ENOTDIR
-# define ENOTDIR -1
-#endif
- {"Not a directory", ENOTDIR, "ENOTDIR"},
-#ifndef EISDIR
-# define EISDIR -1
-#endif
- {"Is a directory", EISDIR, "EISDIR"},
-#ifndef EINVAL
-# define EINVAL -1
-#endif
- {"Invalid argument", EINVAL, "EINVAL"},
-#ifndef ENFILE
-# define ENFILE -1
-#endif
- {"File table overflow", ENFILE, "ENFILE"},
-#ifndef EMFILE
-# define EMFILE -1
-#endif
- {"Too many open files", EMFILE, "EMFILE"},
-#ifndef ENOTTY
-# define ENOTTY -1
-#endif
- {"Not a typewriter", ENOTTY, "ENOTTY"},
-#ifndef ETXTBSY
-# define ETXTBSY -1
-#endif
- {"Text file busy", ETXTBSY, "ETXTBSY"},
-#ifndef EFBIG
-# define EFBIG -1
-#endif
- {"File too large", EFBIG, "EFBIG"},
-#ifndef ENOSPC
-# define ENOSPC -1
-#endif
- {"No space left on device", ENOSPC, "ENOSPC"},
-#ifndef ESPIPE
-# define ESPIPE -1
-#endif
- {"Illegal seek", ESPIPE, "ESPIPE"},
-#ifndef EROFS
-# define EROFS -1
-#endif
- {"Read-only file system", EROFS, "EROFS"},
-#ifndef EMLINK
-# define EMLINK -1
-#endif
- {"Too many links", EMLINK, "EMLINK"},
-#ifndef EPIPE
-# define EPIPE -1
-#endif
- {"Broken pipe", EPIPE, "EPIPE"},
-#ifndef ELOOP
-# define ELOOP -1
-#endif
- {"Too many levels of symbolic links",ELOOP, "ELOOP"},
-#ifndef ENAMETOOLONG
-# define ENAMETOOLONG -1
-#endif
- {"File name too long", ENAMETOOLONG, "ENAMETOOLONG"},
-
- {NULL, 0, NULL}
-};
-
-int _SLerrno_errno;
-
-int SLerrno_set_errno (int sys_errno)
-{
- _SLerrno_errno = sys_errno;
- return 0;
-}
-
-char *SLerrno_strerror (int sys_errno)
-{
- Errno_Map_Type *e;
-
- e = Errno_Map;
- while (e->msg != NULL)
- {
- if (e->sys_errno == sys_errno)
- return e->msg;
-
- e++;
- }
-
- if (sys_errno == SL_ERRNO_NOT_IMPLEMENTED)
- return "System call not available for this platform";
-
- return "Unknown error";
-}
-
-static char *intrin_errno_string (int *sys_errno)
-{
- return SLerrno_strerror (*sys_errno);
-}
-
-int _SLerrno_init (void)
-{
- static Errno_Map_Type *e;
-
- if (e != NULL) /* already initialized */
- return 0;
-
- if ((-1 == SLadd_intrinsic_function ("errno_string", (FVOID_STAR) intrin_errno_string,
- SLANG_STRING_TYPE, 1, SLANG_INT_TYPE))
- || (-1 == SLadd_intrinsic_variable ("errno", (VOID_STAR)&_SLerrno_errno, SLANG_INT_TYPE, 1)))
- return -1;
-
- e = Errno_Map;
- while (e->msg != NULL)
- {
- if (-1 == SLadd_intrinsic_variable (e->symbolic_name, (VOID_STAR) &e->sys_errno, SLANG_INT_TYPE, 1))
- return -1;
- e++;
- }
-
- return 0;
-}
diff --git a/mdk-stage1/slang/slgetkey.c b/mdk-stage1/slang/slgetkey.c
deleted file mode 100644
index 2f2914f07..000000000
--- a/mdk-stage1/slang/slgetkey.c
+++ /dev/null
@@ -1,306 +0,0 @@
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-unsigned int SLang_Input_Buffer_Len = 0;
-unsigned char SLang_Input_Buffer [SL_MAX_INPUT_BUFFER_LEN];
-
-int SLang_Abort_Char = 7;
-int SLang_Ignore_User_Abort = 0;
-
-/* This has the effect of mapping all characters in the range 128-169 to
- * ESC [ something
- */
-
-unsigned int SLang_getkey (void)
-{
- unsigned int imax;
- unsigned int ch;
-
- if (SLang_Input_Buffer_Len)
- {
- ch = (unsigned int) *SLang_Input_Buffer;
- SLang_Input_Buffer_Len--;
- imax = SLang_Input_Buffer_Len;
-
- SLMEMCPY ((char *) SLang_Input_Buffer,
- (char *) (SLang_Input_Buffer + 1), imax);
- }
- else if (SLANG_GETKEY_ERROR == (ch = _SLsys_getkey ())) return ch;
-
-#if _SLANG_MAP_VTXXX_8BIT
-# if !defined(IBMPC_SYSTEM)
- if (ch & 0x80)
- {
- unsigned char i;
- i = (unsigned char) (ch & 0x7F);
- if (i < ' ')
- {
- i += 64;
- SLang_ungetkey (i);
- ch = 27;
- }
- }
-# endif
-#endif
- return(ch);
-}
-
-int SLang_ungetkey_string (unsigned char *s, unsigned int n)
-{
- register unsigned char *bmax, *b, *b1;
- if (SLang_Input_Buffer_Len + n + 3 > SL_MAX_INPUT_BUFFER_LEN)
- return -1;
-
- b = SLang_Input_Buffer;
- bmax = (b - 1) + SLang_Input_Buffer_Len;
- b1 = bmax + n;
- while (bmax >= b) *b1-- = *bmax--;
- bmax = b + n;
- while (b < bmax) *b++ = *s++;
- SLang_Input_Buffer_Len += n;
- return 0;
-}
-
-int SLang_buffer_keystring (unsigned char *s, unsigned int n)
-{
-
- if (n + SLang_Input_Buffer_Len + 3 > SL_MAX_INPUT_BUFFER_LEN) return -1;
-
- SLMEMCPY ((char *) SLang_Input_Buffer + SLang_Input_Buffer_Len,
- (char *) s, n);
- SLang_Input_Buffer_Len += n;
- return 0;
-}
-
-int SLang_ungetkey (unsigned char ch)
-{
- return SLang_ungetkey_string(&ch, 1);
-}
-
-int SLang_input_pending (int tsecs)
-{
- int n;
- unsigned char c;
- if (SLang_Input_Buffer_Len) return (int) SLang_Input_Buffer_Len;
-
- n = _SLsys_input_pending (tsecs);
-
- if (n <= 0) return 0;
-
- c = (unsigned char) SLang_getkey ();
- SLang_ungetkey_string (&c, 1);
-
- return n;
-}
-
-void SLang_flush_input (void)
-{
- int quit = SLKeyBoard_Quit;
-
- SLang_Input_Buffer_Len = 0;
- SLKeyBoard_Quit = 0;
- while (_SLsys_input_pending (0) > 0)
- {
- (void) _SLsys_getkey ();
- /* Set this to 0 because _SLsys_getkey may stuff keyboard buffer if
- * key sends key sequence (OS/2, DOS, maybe VMS).
- */
- SLang_Input_Buffer_Len = 0;
- }
- SLKeyBoard_Quit = quit;
-}
-
-#ifdef IBMPC_SYSTEM
-static int Map_To_ANSI;
-int SLgetkey_map_to_ansi (int enable)
-{
- Map_To_ANSI = enable;
- return 0;
-}
-
-static int convert_scancode (unsigned int scan,
- unsigned int shift,
- int getkey,
- unsigned int *ret_key)
-{
- unsigned char buf[16];
- unsigned char *b;
- unsigned char end;
- int is_arrow;
-
- shift &= (_SLTT_KEY_ALT|_SLTT_KEY_SHIFT|_SLTT_KEY_CTRL);
-
- b = buf;
- if (_SLTT_KEY_ALT == shift)
- {
- shift = 0;
- *b++ = 27;
- }
- *b++ = 27;
- *b++ = '[';
-
- is_arrow = 0;
- end = '~';
- if (shift)
- {
- if (shift == _SLTT_KEY_CTRL)
- end = '^';
- else if (shift == _SLTT_KEY_SHIFT)
- end = '$';
- else shift = 0;
- }
-
- /* These mappings correspond to what rxvt produces under Linux */
- switch (scan & 0xFF)
- {
- default:
- return -1;
-
- case 0x47: /* home */
- *b++ = '1';
- break;
- case 0x48: /* up */
- end = 'A';
- is_arrow = 1;
- break;
- case 0x49: /* PgUp */
- *b++ = '5';
- break;
- case 0x4B: /* Left */
- end = 'D';
- is_arrow = 1;
- break;
- case 0x4D: /* Right */
- end = 'C';
- is_arrow = 1;
- break;
- case 0x4F: /* End */
- *b++ = '4';
- break;
- case 0x50: /* Down */
- end = 'B';
- is_arrow = 1;
- break;
- case 0x51: /* PgDn */
- *b++ = '6';
- break;
- case 0x52: /* Insert */
- *b++ = '2';
- break;
- case 0x53: /* Delete */
- *b++ = '3';
- break;
- case ';': /* F1 */
- *b++ = '1';
- *b++ = '1';
- break;
- case '<': /* F2 */
- *b++ = '1';
- *b++ = '2';
- break;
- case '=': /* F3 */
- *b++ = '1';
- *b++ = '3';
- break;
-
- case '>': /* F4 */
- *b++ = '1';
- *b++ = '4';
- break;
-
- case '?': /* F5 */
- *b++ = '1';
- *b++ = '5';
- break;
-
- case '@': /* F6 */
- *b++ = '1';
- *b++ = '7';
- break;
-
- case 'A': /* F7 */
- *b++ = '1';
- *b++ = '8';
- break;
-
- case 'B': /* F8 */
- *b++ = '1';
- *b++ = '9';
- break;
-
- case 'C': /* F9 */
- *b++ = '2';
- *b++ = '0';
- break;
-
- case 'D': /* F10 */
- *b++ = '2';
- *b++ = '1';
- break;
-
- case 0x57: /* F11 */
- *b++ = '2';
- *b++ = '3';
- break;
-
- case 0x58: /* F12 */
- *b++ = '2';
- *b++ = '4';
- break;
- }
-
- if (is_arrow && shift)
- {
- if (shift == _SLTT_KEY_CTRL)
- end &= 0x1F;
- else
- end |= 0x20;
- }
- *b++ = end;
-
- if (getkey)
- {
- (void) SLang_buffer_keystring (buf + 1, (unsigned int) (b - (buf + 1)));
- *ret_key = buf[0];
- return 0;
- }
-
- (void) SLang_buffer_keystring (buf, (unsigned int) (b - buf));
- return 0;
-}
-
-
-unsigned int _SLpc_convert_scancode (unsigned int scan,
- unsigned int shift,
- int getkey)
-{
- unsigned char buf[16];
-
- if (Map_To_ANSI)
- {
- if (0 == convert_scancode (scan, shift, getkey, &scan))
- return scan;
- }
-
- if (getkey)
- {
- buf[0] = scan & 0xFF;
- SLang_buffer_keystring (buf, 1);
- return (scan >> 8) & 0xFF;
- }
- buf[0] = (scan >> 8) & 0xFF;
- buf[1] = scan & 0xFF;
- (void) SLang_buffer_keystring (buf, 2);
- return 0;
-}
-
-#endif
diff --git a/mdk-stage1/slang/slimport.c b/mdk-stage1/slang/slimport.c
deleted file mode 100644
index 44b4b25e1..000000000
--- a/mdk-stage1/slang/slimport.c
+++ /dev/null
@@ -1,281 +0,0 @@
-/* Copyright (c) 1998, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-#define SLANG_HAS_DYNAMIC_LINKING 1
-
-#ifndef HAVE_DLFCN_H
-# undef SLANG_HAS_DYNAMIC_LINKING
-# define SLANG_HAS_DYNAMIC_LINKING 0
-#endif
-
-/* The rest of this file is in the if block */
-#if SLANG_HAS_DYNAMIC_LINKING
-
-#ifdef HAVE_DLFCN_H
-# include <dlfcn.h>
-#endif
-
-static char *Module_Path;
-#define MODULE_PATH_ENV_NAME "SLANG_MODULE_PATH"
-#ifndef MODULE_INSTALL_DIR
-# define MODULE_INSTALL_DIR "/usr/local/lib/slang/modules"
-#endif
-
-typedef struct _Handle_Type
-{
- struct _Handle_Type *next;
- char *name;
- VOID_STAR handle;
- void (*deinit_fun) (void);
-}
-Handle_Type;
-
-static Handle_Type *Handle_List;
-
-static void delete_handles (void)
-{
- while (Handle_List != NULL)
- {
- Handle_Type *next = Handle_List->next;
-
- if (Handle_List->deinit_fun != NULL)
- Handle_List->deinit_fun ();
- (void) dlclose (Handle_List->handle);
- SLang_free_slstring (Handle_List->name);
- SLfree ((char *)Handle_List);
- Handle_List = next;
- }
-}
-
-static Handle_Type *save_handle (char *name, VOID_STAR h, void (*df)(void))
-{
- Handle_Type *l;
-
- l = (Handle_Type *) SLmalloc (sizeof (Handle_Type));
- if (l == NULL)
- return NULL;
- memset ((char *) l, 0, sizeof(Handle_Type));
- if (NULL == (l->name = SLang_create_slstring (name)))
- {
- SLfree ((char *) l);
- return NULL;
- }
- l->handle = h;
- l->next = Handle_List;
- l->deinit_fun = df;
- Handle_List = l;
-
- return l;
-}
-
-static Handle_Type *find_handle (char *name)
-{
- Handle_Type *l;
-
- l = Handle_List;
- while (l != NULL)
- {
- if (0 == strcmp (l->name, name))
- break;
- l = l->next;
- }
- return l;
-}
-
-static int import_from_library (char *name,
- char *init_fun_name, char *deinit_fun_name,
- char *file,
- char *ns,
- char *ns_init_fun_name)
-{
- VOID_STAR handle;
- int (*init_fun) (void);
- int (*ns_init_fun) (char *);
- void (*deinit_fun) (void);
- char *err;
- char filebuf[1024];
- char *fun_name;
-
- if (NULL != find_handle (name))
- return 0; /* already loaded */
-
- while (1)
- {
-#ifndef RTLD_GLOBAL
-# define RTLD_GLOBAL 0
-#endif
-#ifdef RTLD_NOW
- handle = (VOID_STAR) dlopen (file, RTLD_NOW | RTLD_GLOBAL);
-#else
- handle = (VOID_STAR) dlopen (file, RTLD_LAZY | RTLD_GLOBAL);
-#endif
-
- if (handle != NULL)
- break;
-
- if (NULL == strchr (file, '/'))
- {
- _SLsnprintf (filebuf, sizeof (filebuf), "./%s", file);
- file = filebuf;
- continue;
- }
-
- if (NULL == (err = (char *) dlerror ()))
- err = "UNKNOWN";
-
- SLang_verror (SL_INTRINSIC_ERROR,
- "Error linking to %s: %s", file, err);
- return -1;
- }
-
- fun_name = ns_init_fun_name;
- ns_init_fun = (int (*)(char *)) dlsym (handle, fun_name);
- if (ns_init_fun == NULL)
- {
- if ((ns != NULL)
- && (0 != strcmp (ns, "Global")))
- goto return_error;
-
- fun_name = init_fun_name;
- init_fun = (int (*)(void)) dlsym (handle, fun_name);
- if (init_fun == NULL)
- goto return_error;
-
- if (-1 == (*init_fun) ())
- {
- dlclose (handle);
- return -1;
- }
- }
- else if (-1 == (*ns_init_fun) (ns))
- {
- dlclose (handle);
- return -1;
- }
-
-
- deinit_fun = (void (*)(void)) dlsym (handle, deinit_fun_name);
-
- (void) save_handle (name, handle, deinit_fun);
- return 0;
-
- return_error:
-
- if (NULL == (err = (char *) dlerror ()))
- err = "UNKNOWN";
-
- dlclose (handle);
- SLang_verror (SL_INTRINSIC_ERROR,
- "Unable to get symbol %s from %s: %s",
- name, file, err);
- return -1;
-}
-
-static void import_module (void)
-{
- char module_name[256];
- char symbol_name[256];
- char deinit_name[256];
- char ns_init_name[256];
- char *path;
- char *file;
- char *module;
- char *ns = NULL;
-
- if (SLang_Num_Function_Args == 2)
- {
- if (-1 == SLang_pop_slstring (&ns))
- return;
- }
-
- if (-1 == SLang_pop_slstring (&module))
- {
- SLang_free_slstring (ns); /* NULL ok */
- return;
- }
-
- _SLsnprintf (symbol_name, sizeof(symbol_name), "init_%s_module", module);
- _SLsnprintf (module_name, sizeof(module_name), "%s-module.so", module);
- _SLsnprintf (deinit_name, sizeof(deinit_name), "deinit_%s_module", module);
- _SLsnprintf (ns_init_name, sizeof (ns_init_name), "init_%s_module_ns", module);
-
- if (Module_Path != NULL)
- file = SLpath_find_file_in_path (Module_Path, module_name);
- else file = NULL;
-
- if ((file == NULL)
- && (NULL != (path = getenv (MODULE_PATH_ENV_NAME))))
- file = SLpath_find_file_in_path (path, module_name);
-
- if (file == NULL)
- file = SLpath_find_file_in_path (MODULE_INSTALL_DIR, module_name);
-
- if (file != NULL)
- {
- (void) import_from_library (symbol_name, symbol_name, deinit_name, file, ns, ns_init_name);
- SLfree (file);
- }
- else
- {
- /* Maybe the system loader can find it in LD_LIBRARY_PATH */
- (void) import_from_library (symbol_name, symbol_name, deinit_name, module_name, ns, ns_init_name);
- }
-}
-
-static void set_import_module_path (char *path)
-{
- (void) SLang_set_module_load_path (path);
-}
-
-static char *get_import_module_path (void)
-{
- char *path;
- if (Module_Path != NULL)
- return Module_Path;
- if (NULL != (path = getenv (MODULE_PATH_ENV_NAME)))
- return path;
- return MODULE_INSTALL_DIR;
-}
-
-static SLang_Intrin_Fun_Type Module_Intrins [] =
-{
- MAKE_INTRINSIC_0("import", import_module, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_S("set_import_module_path", set_import_module_path, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_0("get_import_module_path", get_import_module_path, SLANG_STRING_TYPE),
- SLANG_END_INTRIN_FUN_TABLE
-};
-
-#endif /* SLANG_HAS_DYNAMIC_LINKING */
-
-int SLang_set_module_load_path (char *path)
-{
-#if SLANG_HAS_DYNAMIC_LINKING
- if (NULL == (path = SLang_create_slstring (path)))
- return -1;
- SLang_free_slstring (Module_Path);
- Module_Path = path;
- return 0;
-#else
- (void) path;
- return -1;
-#endif
-}
-
-int SLang_init_import (void)
-{
-#if SLANG_HAS_DYNAMIC_LINKING
- (void) SLang_add_cleanup_function (delete_handles);
- return SLadd_intrin_fun_table (Module_Intrins, "__IMPORT__");
-#else
- return 0;
-#endif
-}
diff --git a/mdk-stage1/slang/slinclud.h b/mdk-stage1/slang/slinclud.h
deleted file mode 100644
index d60a4423e..000000000
--- a/mdk-stage1/slang/slinclud.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef _SLANG_INCLUDE_H_
-#define _SLANG_INCLUDE_H_
-
-#include "config.h"
-#include "sl-feat.h"
-
-#include <stdio.h>
-#include <string.h>
-
-#ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
-
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#ifdef HAVE_MALLOC_H
-# include <malloc.h>
-#endif
-
-#ifdef HAVE_MEMORY_H
-# include <memory.h>
-#endif
-
-#endif /* _SLANG_INCLUDE_H_ */
diff --git a/mdk-stage1/slang/slintall.c b/mdk-stage1/slang/slintall.c
deleted file mode 100644
index a66b9d6d2..000000000
--- a/mdk-stage1/slang/slintall.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (c) 1998, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-int SLang_init_all (void)
-{
- if ((-1 == SLang_init_slang ())
- || (-1 == SLang_init_slmath ())
- || (-1 == SLang_init_posix_dir ())
- || (-1 == SLang_init_posix_process ())
- || (-1 == SLang_init_stdio ())
- || (-1 == SLang_init_array ())
- || (-1 == SLang_init_posix_io ())
- || (-1 == SLang_init_ospath ())
- )
- return -1;
-
- return 0;
-}
-
diff --git a/mdk-stage1/slang/slistruc.c b/mdk-stage1/slang/slistruc.c
deleted file mode 100644
index 06b8fd6ff..000000000
--- a/mdk-stage1/slang/slistruc.c
+++ /dev/null
@@ -1,218 +0,0 @@
-/* Intrinsic Structure type implementation */
-/* Copyright (c) 1998, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-/* Intrinsic structures */
-
-typedef struct
-{
- char *name;
- VOID_STAR addr;
- SLang_IStruct_Field_Type *fields;
-}
-_SLang_IStruct_Type;
-
-static SLang_IStruct_Field_Type *istruct_pop_field (char *name, int no_readonly, VOID_STAR *addr)
-{
- _SLang_IStruct_Type *s;
- SLang_IStruct_Field_Type *f;
- char *struct_addr;
-
- /* Note: There is no need to free this object */
- if (-1 == SLclass_pop_ptr_obj (SLANG_ISTRUCT_TYPE, (VOID_STAR *) &s))
- return NULL;
-
- if (NULL == (struct_addr = *(char **)s->addr))
- {
- SLang_verror (SL_INTRINSIC_ERROR,
- "%s is NULL. Unable to access field", s->name);
- return NULL;
- }
-
- f = s->fields;
- while (f->field_name != NULL)
- {
- /* Since both these are slstrings, just test pointers */
- if (f->field_name != name)
- {
- f++;
- continue;
- }
-
- if (no_readonly && f->read_only)
- {
- SLang_verror (SL_READONLY_ERROR,
- "%s.%s is read-only", s->name, name);
- return NULL;
- }
-
- *addr = (VOID_STAR) (struct_addr + f->offset);
- return f;
- }
-
- SLang_verror (SL_TYPE_MISMATCH,
- "%s has no field called %s", s->name, name);
- return NULL;
-}
-
-static int istruct_sget (unsigned char type, char *name)
-{
- SLang_IStruct_Field_Type *f;
- VOID_STAR addr;
- SLang_Class_Type *cl;
-
- if (NULL == (f = istruct_pop_field (name, 0, &addr)))
- return -1;
-
- type = f->type;
- cl = _SLclass_get_class (type);
-
- return (cl->cl_push_intrinsic)(f->type, addr);
-}
-
-static int istruct_sput (unsigned char type, char *name)
-{
- SLang_IStruct_Field_Type *f;
- VOID_STAR addr;
- SLang_Class_Type *cl;
-
- if (NULL == (f = istruct_pop_field (name, 1, &addr)))
- return -1;
-
- type = f->type;
- cl = _SLclass_get_class (type);
-
- return (*cl->cl_pop) (type, addr);
-}
-
-static int istruct_push (unsigned char type, VOID_STAR ptr)
-{
- _SLang_IStruct_Type *s;
-
- s = *(_SLang_IStruct_Type **) ptr;
- if ((s == NULL)
- || (s->addr == NULL)
- || (*(char **) s->addr == NULL))
- return SLang_push_null ();
-
- return SLclass_push_ptr_obj (type, (VOID_STAR) s);
-}
-
-static int istruct_pop (unsigned char type, VOID_STAR ptr)
-{
- return SLclass_pop_ptr_obj (type, (VOID_STAR *)ptr);
-}
-
-static void istruct_destroy (unsigned char type, VOID_STAR ptr)
-{
- (void) type;
- (void) ptr;
-}
-
-/* Intrinsic struct objects are not stored in a variable. So, the address that
- * is passed here is actually a pointer to the struct. So, pass its address
- * to istruct_push since v is a variable. Confusing, n'est pas?
- */
-static int istruct_push_intrinsic (unsigned char type, VOID_STAR v)
-{
- return istruct_push (type, (VOID_STAR) &v);
-}
-
-static int init_intrin_struct (void)
-{
- SLang_Class_Type *cl;
- static int initialized;
-
- if (initialized)
- return 0;
-
- if (NULL == (cl = SLclass_allocate_class ("IStruct_Type")))
- return -1;
-
- cl->cl_pop = istruct_pop;
- cl->cl_push = istruct_push;
- cl->cl_sget = istruct_sget;
- cl->cl_sput = istruct_sput;
- cl->cl_destroy = istruct_destroy;
- cl->cl_push_intrinsic = istruct_push_intrinsic;
-
- if (-1 == SLclass_register_class (cl, SLANG_ISTRUCT_TYPE, sizeof (_SLang_IStruct_Type *),
- SLANG_CLASS_TYPE_PTR))
- return -1;
-
- initialized = 1;
- return 0;
-}
-
-int SLadd_istruct_table (SLang_IStruct_Field_Type *fields, VOID_STAR addr, char *name)
-{
- _SLang_IStruct_Type *s;
- SLang_IStruct_Field_Type *f;
-
- if (-1 == init_intrin_struct ())
- return -1;
-
- if (addr == NULL)
- {
- SLang_verror (SL_INVALID_PARM,
- "SLadd_istruct_table: address must be non-NULL");
- return -1;
- }
-
- if (fields == NULL)
- return -1;
-
- /* Make the field names slstrings so that only the pointers need to be
- * compared. However, this table may have been already been added for
- * another instance of the intrinsic object. So, check for the presence
- * of an slstring.
- */
- f = fields;
- while (f->field_name != NULL)
- {
- char *fname;
-
- fname = SLang_create_slstring (f->field_name);
- if (fname == NULL)
- return -1;
-
- /* Here is the check for the slstring */
- if (f->field_name == fname)
- SLang_free_slstring (fname);
- else /* replace string literal with slstring */
- f->field_name = fname;
-
- f++;
- }
-
- s = (_SLang_IStruct_Type *)SLmalloc (sizeof (_SLang_IStruct_Type));
- if (s == NULL)
- return -1;
-
- memset ((char *)s, 0, sizeof (_SLang_IStruct_Type));
- if (NULL == (s->name = SLang_create_slstring (name)))
- {
- SLfree ((char *) s);
- return -1;
- }
-
- s->addr = addr;
- s->fields = fields;
-
- if (-1 == SLadd_intrinsic_variable (name, (VOID_STAR) s, SLANG_ISTRUCT_TYPE, 1))
- {
- SLang_free_slstring (s->name);
- SLfree ((char *) s);
- return -1;
- }
-
- return 0;
-}
diff --git a/mdk-stage1/slang/slkeymap.c b/mdk-stage1/slang/slkeymap.c
deleted file mode 100644
index dff65433e..000000000
--- a/mdk-stage1/slang/slkeymap.c
+++ /dev/null
@@ -1,596 +0,0 @@
-/* Keymap routines for SLang. The role of these keymap routines is simple:
- * Just read keys from the tty and return a pointer to a keymap structure.
- * That is, a keymap is simple a mapping of strings (keys from tty) to
- * structures. Also included are routines for managing the keymaps.
- */
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-/* We need a define a rule for upperand lower case chars that user cannot
- change! This could be a problem for international chars! */
-
-#define UPPER_CASE_KEY(x) (((x) >= 'a') && ((x) <= 'z') ? (x) - 32 : (x))
-#define LOWER_CASE_KEY(x) (((x) >= 'A') && ((x) <= 'Z') ? (x) + 32 : (x))
-
-int SLang_Key_TimeOut_Flag = 0; /* true if more than 1 sec has elapsed
- without key in multikey sequence */
-
-int SLang_Last_Key_Char;
-
-SLKeyMap_List_Type SLKeyMap_List[SLANG_MAX_KEYMAPS];
-
-static SLang_Key_Type *malloc_key(unsigned char *str)
-{
- SLang_Key_Type *neew;
-
- if (NULL == (neew = (SLang_Key_Type *) SLmalloc(sizeof(SLang_Key_Type))))
- return NULL;
-
- SLMEMSET ((char *) neew, 0, sizeof (SLang_Key_Type));
- SLMEMCPY((char *) neew->str, (char *) str, (unsigned int) *str);
- return(neew);
-}
-
-static SLKeyMap_List_Type *add_keymap (char *name, SLang_Key_Type *map)
-{
- int i;
-
- for (i = 0; i < SLANG_MAX_KEYMAPS; i++)
- {
- if (SLKeyMap_List[i].keymap == NULL)
- {
- if (NULL == (name = SLang_create_slstring (name)))
- return NULL;
-
- SLKeyMap_List[i].keymap = map;
- SLKeyMap_List[i].name = name;
- return &SLKeyMap_List[i];
- }
- }
- SLang_Error = SL_UNKNOWN_ERROR;
- /* SLang_doerror ("Keymap quota exceeded."); */
- return NULL;
-}
-
-FVOID_STAR SLang_find_key_function(char *name, SLKeyMap_List_Type *keymap)
-{
- SLKeymap_Function_Type *fp = keymap -> functions;
- char ch = *name;
-
- while ((fp != NULL) && (fp->name != NULL))
- {
- if ((ch == *fp->name)
- && (0 == strcmp(fp->name, name)))
- return (FVOID_STAR) fp->f;
-
- fp++;
- }
- return NULL;
-}
-
-#ifdef REAL_UNIX_SYSTEM
-/* Expand termcap string specified by s. s as passed will have the format:
- * "XY)..." where XY represents a termcap keyname.
- */
-static char *process_termcap_string (char *s, char *str, int *ip, int imax)
-{
- char c[3], *val;
- int i;
-
- if ((0 == (c[0] = s[0]))
- || (0 == (c[1] = s[1]))
- || (s[2] != ')'))
- {
- SLang_verror (SL_SYNTAX_ERROR, "setkey: ^(%s is badly formed", s);
- return NULL;
- }
- s += 3;
-
- c[2] = 0;
- if ((NULL == (val = SLtt_tgetstr (c)))
- || (*val == 0))
- return NULL;
-
- i = *ip;
- while ((i < imax) && (*val != 0))
- {
- str[i++] = *val++;
- }
- *ip = i;
-
- return s;
-}
-#endif
-
-/* convert things like "^A" to 1 etc... The 0th char is the strlen INCLUDING
- * the length character itself.
- */
-char *SLang_process_keystring(char *s)
-{
- /* FIXME: v2.0, make this thread safe */
- static char str[32];
- unsigned char ch;
- int i;
-
- i = 1;
- while (*s != 0)
- {
- ch = (unsigned char) *s++;
- if (ch == '^')
- {
- ch = *s++;
- if (ch == 0)
- {
- if (i < 32)
- str[i++] = '^';
- break;
- }
-#ifdef REAL_UNIX_SYSTEM
- if (ch == '(')
- {
- s = process_termcap_string (s, str, &i, 32);
- if (s == NULL)
- {
- str[0] = 1;
- return str;
- }
- continue;
- }
-#endif
- ch = UPPER_CASE_KEY(ch);
- if (ch == '?') ch = 127; else ch = ch - 'A' + 1;
- }
-
- if (i >= 32) break;
- str[i++] = ch;
- }
-
- if (i > SLANG_MAX_KEYMAP_KEY_SEQ)
- {
- SLang_verror (SL_INVALID_PARM, "Key sequence is too long");
- return NULL;
- }
-
- str[0] = i;
- return(str);
-}
-
-static int key_string_compare (unsigned char *a, unsigned char *b, unsigned int len)
-{
- unsigned char *amax = a + len;
- int cha, chb, cha_up, chb_up;
-
- while (a < amax)
- {
- cha = *a++;
- chb = *b++;
-
- if (cha == chb) continue;
-
- cha_up = UPPER_CASE_KEY(cha);
- chb_up = UPPER_CASE_KEY(chb);
-
- if (cha_up == chb_up)
- {
- /* Use case-sensitive result. */
- return cha - chb;
- }
- /* Use case-insensitive result. */
- return cha_up - chb_up;
- }
- return 0;
-}
-
-static char *Define_Key_Error = "Inconsistency in define key.";
-
-/* This function also performs an insertion in an ordered way. */
-static int find_the_key (char *s, SLKeyMap_List_Type *kml, SLang_Key_Type **keyp)
-{
- unsigned char ch;
- unsigned int str_len;
- SLang_Key_Type *key, *last, *neew;
- unsigned char *str;
-
- *keyp = NULL;
-
- if (NULL == (str = (unsigned char *) SLang_process_keystring(s)))
- return -2;
-
- if (1 == (str_len = str[0]))
- return 0;
-
- ch = str[1];
- key = kml->keymap + ch;
-
- if (str_len == 2)
- {
- if (key->next != NULL)
- {
- SLang_doerror (Define_Key_Error);
- return -2;
- }
-
- if (key->type == SLKEY_F_INTERPRET)
- SLang_free_slstring (key->f.s);
-
- key->str[0] = str_len;
- key->str[1] = ch;
-
- *keyp = key;
- return 0;
- }
-
- /* insert the key definition */
- while (1)
- {
- int cmp;
- unsigned int key_len, len;
-
- last = key;
- key = key->next;
-
- if ((key != NULL) && (key->str != NULL))
- {
- len = key_len = key->str[0];
- if (len > str_len) len = str_len;
-
- cmp = key_string_compare (str + 1, key->str + 1, len - 1);
-
- if (cmp > 0)
- continue;
-
- if (cmp == 0)
- {
- if (key_len != str_len)
- {
- SLang_doerror (Define_Key_Error);
- return -2;
- }
-
- if (key->type == SLKEY_F_INTERPRET)
- SLang_free_slstring (key->f.s);
-
- *keyp = key;
- return 0;
- }
- /* Drop to cmp < 0 case */
- }
-
- if (NULL == (neew = malloc_key(str))) return -1;
-
- neew -> next = key;
- last -> next = neew;
-
- *keyp = neew;
- return 0;
- }
-}
-
-/* returns -2 if inconsistent, -1 if malloc error, 0 upon success */
-int SLkm_define_key (char *s, FVOID_STAR f, SLKeyMap_List_Type *kml)
-{
- SLang_Key_Type *key;
- unsigned int type = SLKEY_F_INTRINSIC;
- int ret;
-
- ret = find_the_key (s, kml, &key);
- if ((ret != 0) || (key == NULL))
- return ret;
-
- key->type = type;
- key->f.f = f;
- return 0;
-}
-
-int SLang_define_key (char *s, char *funct, SLKeyMap_List_Type *kml)
-{
- SLang_Key_Type *key;
- FVOID_STAR f;
- int ret;
-
- ret = find_the_key (s, kml, &key);
- if ((ret != 0) || (key == NULL))
- return ret;
-
- f = SLang_find_key_function(funct, kml);
-
- if (f == NULL) /* assume interpreted */
- {
- char *str = SLang_create_slstring (funct);
- if (str == NULL) return -1;
- key->type = SLKEY_F_INTERPRET;
- key->f.s = str;
- }
- else
- {
- key->type = SLKEY_F_INTRINSIC;
- key->f.f = f;
- }
- return 0;
-}
-
-int SLkm_define_keysym (char *s, unsigned int keysym, SLKeyMap_List_Type *kml)
-{
- SLang_Key_Type *key;
- int ret;
-
- ret = find_the_key (s, kml, &key);
-
- if ((ret != 0) || (key == NULL))
- return ret;
-
- key->type = SLKEY_F_KEYSYM;
- key->f.keysym = keysym;
- return 0;
-}
-
-SLang_Key_Type *SLang_do_key(SLKeyMap_List_Type *kml, int (*getkey)(void))
-{
- register SLang_Key_Type *key, *next, *kmax;
- unsigned int len;
- unsigned char input_ch;
- register unsigned char chup, chlow;
- unsigned char key_ch = 0;
-
- SLang_Last_Key_Char = (*getkey)();
- SLang_Key_TimeOut_Flag = 0;
-
- if (SLANG_GETKEY_ERROR == (unsigned int) SLang_Last_Key_Char)
- return NULL;
-
- input_ch = (unsigned char) SLang_Last_Key_Char;
-
- key = (SLang_Key_Type *) &((kml->keymap)[input_ch]);
-
- /* if the next one is null, then we know this MAY be it. */
- while (key->next == NULL)
- {
- if (key->type != 0)
- return key;
-
- /* Try its opposite case counterpart */
- chlow = LOWER_CASE_KEY(input_ch);
- if (input_ch == chlow)
- input_ch = UPPER_CASE_KEY(input_ch);
-
- key = kml->keymap + input_ch;
- if (key->type == 0)
- return NULL;
- }
-
- /* It appears to be a prefix character in a key sequence. */
-
- len = 1; /* already read one character */
- key = key->next; /* Now we are in the key list */
- kmax = NULL; /* set to end of list */
-
- while (1)
- {
- SLang_Key_TimeOut_Flag = 1;
- SLang_Last_Key_Char = (*getkey)();
- SLang_Key_TimeOut_Flag = 0;
-
- len++;
-
- if ((SLANG_GETKEY_ERROR == (unsigned int) SLang_Last_Key_Char)
- || SLKeyBoard_Quit)
- break;
-
- input_ch = (unsigned char) SLang_Last_Key_Char;
-
- chup = UPPER_CASE_KEY(input_ch); chlow = LOWER_CASE_KEY(input_ch);
-
- while (key != kmax)
- {
- if (key->str[0] > len)
- {
- key_ch = key->str[len];
- if (chup == UPPER_CASE_KEY(key_ch))
- break;
- }
- key = key->next;
- }
-
- if (key == kmax) break;
-
- /* If the input character is lowercase, check to see if there is
- * a lowercase match. If so, set key to it. Note: the
- * algorithm assumes the sorting performed by key_string_compare.
- */
- if (input_ch != key_ch)
- {
- next = key->next;
- while (next != kmax)
- {
- if (next->str[0] > len)
- {
- unsigned char next_ch = next->str[len];
- if (next_ch == input_ch)
- {
- key = next;
- break;
- }
- if (next_ch != chup)
- break;
- }
- next = next->next;
- }
- }
-
- /* Ok, we found the first position of a possible match. If it
- * is exact, we are done.
- */
- if ((unsigned int) key->str[0] == len + 1)
- return key;
-
- /* Apparantly, there are some ambiguities. Read next key to resolve
- * the ambiguity. Adjust kmax to encompass ambiguities.
- */
-
- next = key->next;
- while (next != kmax)
- {
- if ((unsigned int) next->str[0] > len)
- {
- key_ch = next->str[len];
- if (chup != UPPER_CASE_KEY(key_ch))
- break;
- }
- next = next->next;
- }
- kmax = next;
- }
-
- return NULL;
-}
-
-void SLang_undefine_key(char *s, SLKeyMap_List_Type *kml)
-{
- int n, i;
- SLang_Key_Type *key, *next, *last, *key_root, *keymap;
- unsigned char *str;
-
- keymap = kml -> keymap;
- if (NULL == (str = (unsigned char *) SLang_process_keystring(s)))
- return;
-
- if (0 == (n = *str++ - 1)) return;
- i = *str;
-
- last = key_root = (SLang_Key_Type *) &(keymap[i]);
- key = key_root->next;
-
- while (key != NULL)
- {
- next = key->next;
- if (0 == SLMEMCMP ((char *)(key->str + 1), (char *) str, n))
- {
- if (key->type == SLKEY_F_INTERPRET)
- SLang_free_slstring (key->f.s);
-
- SLfree((char *) key);
- last->next = next;
- }
- else last = key;
- key = next;
- }
-
- if (n == 1)
- {
- *key_root->str = 0;
- key_root->f.f = NULL;
- key_root->type = 0;
- }
-}
-
-char *SLang_make_keystring(unsigned char *s)
-{
- static char buf [3 * SLANG_MAX_KEYMAP_KEY_SEQ + 1];
- char *b;
- int n;
-
- n = *s++ - 1;
-
- if (n > SLANG_MAX_KEYMAP_KEY_SEQ)
- {
- SLang_verror (SL_INVALID_PARM, "Key sequence is too long");
- return NULL;
- }
-
- b = buf;
- while (n--)
- {
- if (*s < 32)
- {
- *b++ = '^';
- *b++ = *s + 'A' - 1;
- }
- else *b++ = *s;
- s++;
- }
- *b = 0;
- return(buf);
-}
-
-static SLang_Key_Type *copy_keymap(SLKeyMap_List_Type *kml)
-{
- int i;
- SLang_Key_Type *neew, *old, *new_root, *km;
-
- if (NULL == (new_root = (SLang_Key_Type *) SLcalloc(256, sizeof(SLang_Key_Type))))
- return NULL;
-
- if (kml == NULL) return new_root;
- km = kml->keymap;
-
- for (i = 0; i < 256; i++)
- {
- old = &(km[i]);
- neew = &(new_root[i]);
-
- if (old->type == SLKEY_F_INTERPRET)
- neew->f.s = SLang_create_slstring (old->f.s);
- else
- neew->f.f = old->f.f;
-
- neew->type = old->type;
- SLMEMCPY((char *) neew->str, (char *) old->str, (unsigned int) *old->str);
-
- old = old->next;
- while (old != NULL)
- {
- neew->next = malloc_key((unsigned char *) old->str);
- neew = neew->next;
-
- if (old->type == SLKEY_F_INTERPRET)
- neew->f.s = SLang_create_slstring (old->f.s);
- else
- neew->f.f = old->f.f;
-
- neew->type = old->type;
- old = old->next;
- }
- neew->next = NULL;
- }
- return(new_root);
-}
-
-SLKeyMap_List_Type *SLang_create_keymap(char *name, SLKeyMap_List_Type *map)
-{
- SLang_Key_Type *neew;
- SLKeyMap_List_Type *new_map;
-
- if ((NULL == (neew = copy_keymap(map)))
- || (NULL == (new_map = add_keymap(name, neew)))) return NULL;
-
- if (map != NULL) new_map -> functions = map -> functions;
-
- return new_map;
-}
-
-SLKeyMap_List_Type *SLang_find_keymap(char *name)
-{
- SLKeyMap_List_Type *kmap, *kmap_max;
-
- kmap = SLKeyMap_List;
- kmap_max = kmap + SLANG_MAX_KEYMAPS;
-
- while (kmap < kmap_max)
- {
- if ((kmap->name != NULL)
- && (0 == strcmp (kmap->name, name)))
- return kmap;
-
- kmap++;
- }
- return NULL;
-}
diff --git a/mdk-stage1/slang/slkeypad.c b/mdk-stage1/slang/slkeypad.c
deleted file mode 100644
index 524dc80fa..000000000
--- a/mdk-stage1/slang/slkeypad.c
+++ /dev/null
@@ -1,163 +0,0 @@
-/* Copyright (c) 1998, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-static SLKeyMap_List_Type *Keymap_List;
-
-int SLkp_init (void)
-{
- char esc_seq[10];
- int i;
-
- if (NULL == (Keymap_List = SLang_create_keymap ("_SLKeypad", NULL)))
- return -1;
-
- esc_seq[1] = 0;
- for (i = 1; i < 256; i++)
- {
- esc_seq[0] = (char) i;
- SLkm_define_keysym (esc_seq, i, Keymap_List);
- }
-
- /* Now add most common ones. */
-#ifndef IBMPC_SYSTEM
- SLkm_define_keysym ("^@", 0, Keymap_List);
-
- SLkm_define_keysym ("\033[A", SL_KEY_UP, Keymap_List);
- SLkm_define_keysym ("\033OA", SL_KEY_UP, Keymap_List);
- SLkm_define_keysym ("\033[B", SL_KEY_DOWN, Keymap_List);
- SLkm_define_keysym ("\033OB", SL_KEY_DOWN, Keymap_List);
- SLkm_define_keysym ("\033[C", SL_KEY_RIGHT, Keymap_List);
- SLkm_define_keysym ("\033OC", SL_KEY_RIGHT, Keymap_List);
- SLkm_define_keysym ("\033[D", SL_KEY_LEFT, Keymap_List);
- SLkm_define_keysym ("\033OD", SL_KEY_LEFT, Keymap_List);
- SLkm_define_keysym ("\033[2~", SL_KEY_IC, Keymap_List);
- SLkm_define_keysym ("\033[7~", SL_KEY_HOME, Keymap_List);
- SLkm_define_keysym ("\033[5~", SL_KEY_PPAGE, Keymap_List);
- SLkm_define_keysym ("\033[6~", SL_KEY_NPAGE, Keymap_List);
- SLkm_define_keysym ("\033[8~", SL_KEY_END, Keymap_List);
- SLkm_define_keysym ("\033[3~", SL_KEY_DELETE, Keymap_List);
-#else
- /* Note: This will not work if SLgetkey_map_to_ansi (1) has
- * been called.
- */
- SLkm_define_keysym ("^@\x48", SL_KEY_UP, Keymap_List );
- SLkm_define_keysym ("^@\x50", SL_KEY_DOWN, Keymap_List );
- SLkm_define_keysym ("^@\x4d", SL_KEY_RIGHT, Keymap_List );
- SLkm_define_keysym ("^@\x4b", SL_KEY_LEFT, Keymap_List );
- SLkm_define_keysym ("^@\x47", SL_KEY_HOME, Keymap_List );
- SLkm_define_keysym ("^@\x49", SL_KEY_PPAGE, Keymap_List );
- SLkm_define_keysym ("^@\x51", SL_KEY_NPAGE, Keymap_List );
- SLkm_define_keysym ("^@\x4f", SL_KEY_END, Keymap_List );
- SLkm_define_keysym ("^@\x52", SL_KEY_IC, Keymap_List );
- SLkm_define_keysym ("^@\x53", SL_KEY_DELETE, Keymap_List );
-
- SLkm_define_keysym ("\xE0\x48", SL_KEY_UP, Keymap_List );
- SLkm_define_keysym ("\xE0\x50", SL_KEY_DOWN, Keymap_List );
- SLkm_define_keysym ("\xE0\x4d", SL_KEY_RIGHT, Keymap_List );
- SLkm_define_keysym ("\xE0\x4b", SL_KEY_LEFT, Keymap_List );
- SLkm_define_keysym ("\xE0\x47", SL_KEY_HOME, Keymap_List );
- SLkm_define_keysym ("\xE0\x49", SL_KEY_PPAGE, Keymap_List );
- SLkm_define_keysym ("\xE0\x51", SL_KEY_NPAGE, Keymap_List );
- SLkm_define_keysym ("\xE0\x4f", SL_KEY_END, Keymap_List );
- SLkm_define_keysym ("\xE0\x52", SL_KEY_IC, Keymap_List );
- SLkm_define_keysym ("\xE0\x53", SL_KEY_DELETE, Keymap_List );
-
- strcpy (esc_seq, "^@ "); /* guarantees esc_seq[3] = 0. */
-
- for (i = 0x3b; i < 0x45; i++)
- {
- esc_seq [2] = i;
- SLkm_define_keysym (esc_seq, SL_KEY_F(i - 0x3a), Keymap_List);
- }
- esc_seq[2] = 0x57; SLkm_define_keysym (esc_seq, SL_KEY_F(11), Keymap_List);
- esc_seq[2] = 0x58; SLkm_define_keysym (esc_seq, SL_KEY_F(12), Keymap_List);
-#endif
-
-#ifdef REAL_UNIX_SYSTEM
- strcpy (esc_seq, "^(kX)");
- for (i = 0; i <= 9; i++)
- {
- esc_seq[3] = '0' + i;
- SLkm_define_keysym (esc_seq, SL_KEY_F(i), Keymap_List);
- }
- SLkm_define_keysym ("^(k;)", SL_KEY_F(10), Keymap_List);
-
- SLkm_define_keysym ("^(ku)", SL_KEY_UP, Keymap_List);
- SLkm_define_keysym ("^(kd)", SL_KEY_DOWN, Keymap_List);
- SLkm_define_keysym ("^(kl)", SL_KEY_LEFT, Keymap_List);
- SLkm_define_keysym ("^(kr)", SL_KEY_RIGHT, Keymap_List);
- SLkm_define_keysym ("^(kP)", SL_KEY_PPAGE, Keymap_List);
- SLkm_define_keysym ("^(kN)", SL_KEY_NPAGE, Keymap_List);
- SLkm_define_keysym ("^(kh)", SL_KEY_HOME, Keymap_List);
- SLkm_define_keysym ("^(@7)", SL_KEY_END, Keymap_List);
- SLkm_define_keysym ("^(K1)", SL_KEY_A1, Keymap_List);
- SLkm_define_keysym ("^(K3)", SL_KEY_A3, Keymap_List);
- SLkm_define_keysym ("^(K2)", SL_KEY_B2, Keymap_List);
- SLkm_define_keysym ("^(K4)", SL_KEY_C1, Keymap_List);
- SLkm_define_keysym ("^(K5)", SL_KEY_C3, Keymap_List);
- SLkm_define_keysym ("^(%0)", SL_KEY_REDO, Keymap_List);
- SLkm_define_keysym ("^(&8)", SL_KEY_UNDO, Keymap_List);
- SLkm_define_keysym ("^(kb)", SL_KEY_BACKSPACE, Keymap_List);
- SLkm_define_keysym ("^(@8)", SL_KEY_ENTER, Keymap_List);
- SLkm_define_keysym ("^(kD)", SL_KEY_DELETE, Keymap_List);
-#endif
-
- if (SLang_Error)
- return -1;
- return 0;
-}
-
-int SLkp_getkey (void)
-{
- SLang_Key_Type *key;
-
- key = SLang_do_key (Keymap_List, (int (*)(void)) SLang_getkey);
- if ((key == NULL) || (key->type != SLKEY_F_KEYSYM))
- {
- SLang_flush_input ();
- return SL_KEY_ERR;
- }
-
- return key->f.keysym;
-}
-
-int SLkp_define_keysym (char *keystr, unsigned int keysym)
-{
- if (SLkm_define_keysym (keystr, keysym, Keymap_List) < 0)
- return -1;
-
- return 0;
-}
-
-#if 0
-int main (int argc, char **argv)
-{
- int ch;
-
- SLtt_get_terminfo ();
-
- if (-1 == SLkp_init ())
- return 1;
-
- SLang_init_tty (-1, 0, 0);
-
- while ('q' != (ch = SLkp_getkey ()))
- {
- fprintf (stdout, "Keycode = %d\r\n", ch);
- fflush (stdout);
- }
-
- SLang_reset_tty ();
-
- return 0;
-}
-#endif
-
diff --git a/mdk-stage1/slang/sllimits.h b/mdk-stage1/slang/sllimits.h
deleted file mode 100644
index c4ae03b83..000000000
--- a/mdk-stage1/slang/sllimits.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Copyright (c) 1998, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-/* sllimits.h */
-
-/* slstring.c: Size of the hash table used for strings (prime numbers) */
-#ifdef __MSDOS_16BIT__
-# define SLSTRING_HASH_TABLE_SIZE 601
-# define SLASSOC_HASH_TABLE_SIZE 601
-#else
-# define SLSTRING_HASH_TABLE_SIZE 2909
-# define SLASSOC_HASH_TABLE_SIZE 2909
-#endif
-
-/* slang.c: maximum size of run time stack */
-#ifdef __MSDOS_16BIT__
-# define SLANG_MAX_STACK_LEN 500
-#else
-# define SLANG_MAX_STACK_LEN 2500
-#endif
-
-/* slang.c: This sets the size on the depth of function calls */
-#ifdef __MSDOS_16BIT__
-# define SLANG_MAX_RECURSIVE_DEPTH 50
-#else
-# define SLANG_MAX_RECURSIVE_DEPTH 250
-#endif
-
-/* slang.c: Size of the stack used for local variables */
-#ifdef __MSDOS_16BIT__
-# define SLANG_MAX_LOCAL_STACK 200
-#else
-# define SLANG_MAX_LOCAL_STACK 1024
-#endif
-
-/* slang.c: The size of the hash table used for local and global objects.
- * These should be prime numbers.
- */
-#define SLGLOBALS_HASH_TABLE_SIZE 2909
-#define SLLOCALS_HASH_TABLE_SIZE 73
-#define SLSTATIC_HASH_TABLE_SIZE 73
-
-/* Size of the keyboard buffer use by the ungetkey routines */
-#ifdef __MSDOS_16BIT__
-# define SL_MAX_INPUT_BUFFER_LEN 40
-#else
-# define SL_MAX_INPUT_BUFFER_LEN 1024
-#endif
-
-/* Maximum number of nested switch statements */
-#define SLANG_MAX_NESTED_SWITCH 10
-
-/* Size of the block stack (used in byte-compiling) */
-#define SLANG_MAX_BLOCK_STACK_LEN 50
-
-/* slfile.c: Max number of open file pointers */
-#ifdef __MSDOS_16BIT__
-# define SL_MAX_FILES 32
-#else
-# define SL_MAX_FILES 256
-#endif
diff --git a/mdk-stage1/slang/slmalloc.c b/mdk-stage1/slang/slmalloc.c
deleted file mode 100644
index be4ed6cae..000000000
--- a/mdk-stage1/slang/slmalloc.c
+++ /dev/null
@@ -1,165 +0,0 @@
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-#include "slinclud.h"
-
-#ifdef SL_MALLOC_DEBUG
-# undef SL_MALLOC_DEBUG
-#endif
-
-#include "slang.h"
-#include "_slang.h"
-
-#ifdef __alpha
-# define Chunk 8
-#else
-# define Chunk 4
-#endif
-
-static long Total_Allocated;
-static long Max_Single_Allocation;
-static long Max_Allocated;
-/* #define SLDEBUG_DOUT */
-
-#ifdef SLDEBUG_DOUT
-static FILE *dout;
-#endif
-
-void SLmalloc_dump_statistics (void)
-{
-#ifdef SLDEBUG_DOUT
- fflush (dout);
-#endif
- fprintf (stderr, "Total Allocated: %ld\nHighest single allocation: %ld\nHighest Total Allocated:%ld\n",
- Total_Allocated, Max_Single_Allocation, Max_Allocated);
-}
-
-static void register_at_exit_fun (void)
-{
- static int is_registered = 0;
- if (is_registered)
- return;
- is_registered = 1;
-
-#ifdef SLDEBUG_DOUT
- if (dout == NULL) dout = fopen ("malloc.out", "w");
-#endif
- SLang_add_cleanup_function (SLmalloc_dump_statistics);
-}
-
-static void fixup (unsigned char *p, unsigned long n, char *what)
-{
- register_at_exit_fun ();
-
- p += Chunk;
- *(p - 4)= (unsigned char) ((n >> 24) & 0xFF);
- *(p - 3) = (unsigned char) ((n >> 16) & 0xFF);
- *(p - 2) = (unsigned char) ((n >> 8) & 0xFF);
- *(p - 1) = (unsigned char) (n & 0xFF);
- *(p + (int) n) = 27;
- *(p + (int) (n + 1)) = 182;
- *(p + (int) (n + 2)) = 81;
- *(p + (int) (n + 3)) = 86;
- Total_Allocated += (long) n;
- if (Total_Allocated > Max_Allocated) Max_Allocated = Total_Allocated;
- if ((long) n > Max_Single_Allocation)
- Max_Single_Allocation = (long) n;
-
-#ifdef SLDEBUG_DOUT
- fprintf (dout, "ALLOC: %s\t%p %ld\n", what, p, (long) n);
-#else
- (void) what;
-#endif
-}
-
-static void SLmalloc_doerror (char *buf)
-{
- SLang_doerror (buf);
-}
-
-static int check_memory (unsigned char *p, char *what)
-{
- char buf[128];
- unsigned long n;
-
- register_at_exit_fun ();
-
- n = ((unsigned long) *(p - 4)) << 24;
- n |= ((unsigned long) *(p - 3)) << 16;
- n |= ((unsigned long) *(p - 2)) << 8;
- n |= (unsigned long) *(p - 1);
-
- if (n == 0xFFFFFFFFUL)
- {
- sprintf (buf, "%s: %p: Already FREE! Abort NOW.", what, (void*)p - Chunk);
- SLmalloc_doerror (buf);
- return -1;
- }
-
- if ((*(p + (int) n) != 27)
- || (*(p + (int) (n + 1)) != 182)
- || (*(p + (int) (n + 2)) != 81)
- || (*(p + (int) (n + 3)) != 86))
- {
- sprintf (buf, "\007%s: %p: Memory corrupt! Abort NOW.", what, (void*)p);
- SLmalloc_doerror (buf);
- return -1;
- }
-
- *(p - 4) = *(p - 3) = *(p - 2) = *(p - 1) = 0xFF;
-
- Total_Allocated -= (long) n;
- if (Total_Allocated < 0)
- {
- sprintf (buf, "\007%s: %p\nFreed %ld, Allocated is: %ld!\n",
- what, (void*)p, (long) n, Total_Allocated);
- SLang_doerror (buf);
- }
-#ifdef SLDEBUG_DOUT
- fprintf (dout, "FREE: %s:\t%p %ld\n", what, p, (long) n);
-#endif
- return 0;
-}
-
-void SLdebug_free (char *p)
-{
- if (p == NULL) return;
- if (-1 == check_memory ((unsigned char *) p, "FREE")) return;
-
- SLFREE (p - Chunk);
-}
-
-char *SLdebug_malloc (unsigned long n)
-{
- char *p;
-
- if ((p = (char *) SLMALLOC (n + 2 * Chunk)) == NULL) return NULL;
-
- fixup ((unsigned char *) p, n, "MALLOC");
- return p + Chunk;
-}
-
-char *SLdebug_realloc (char *p, unsigned long n)
-{
- if (-1 == check_memory ((unsigned char *) p, "REALLOC")) return NULL;
- if ((p = (char *) SLREALLOC (p - Chunk, n + 2 * Chunk)) == NULL) return NULL;
- fixup ((unsigned char *) p, n, "REALLOC");
- return p + Chunk;
-}
-
-char *SLdebug_calloc (unsigned long n, unsigned long size)
-{
- char *p;
- int m;
-
- /* This is tough -- hope this is a good assumption!! */
- if (size >= Chunk) m = 1; else m = Chunk;
-
- if ((p = (char *) SLCALLOC (n + m + m, size)) == NULL) return NULL;
- fixup ((unsigned char *) p, size * n, "CALLOC");
- return p + Chunk;
-}
-
diff --git a/mdk-stage1/slang/slmath.c b/mdk-stage1/slang/slmath.c
deleted file mode 100644
index 1d61e14d3..000000000
--- a/mdk-stage1/slang/slmath.c
+++ /dev/null
@@ -1,565 +0,0 @@
-/* sin, cos, etc, for S-Lang */
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#include <math.h>
-
-#include "slang.h"
-#include "_slang.h"
-
-#ifdef PI
-# undef PI
-#endif
-#define PI 3.14159265358979323846264338327950288
-
-#if defined(__unix__)
-#include <signal.h>
-#include <errno.h>
-
-#define SIGNAL SLsignal
-
-static void math_floating_point_exception (int sig)
-{
- sig = errno;
- if (SLang_Error == 0) SLang_Error = SL_FLOATING_EXCEPTION;
- (void) SIGNAL (SIGFPE, math_floating_point_exception);
- errno = sig;
-}
-#endif
-
-double SLmath_hypot (double x, double y)
-{
- double fr, fi, ratio;
-
- fr = fabs(x);
- fi = fabs(y);
-
- if (fr > fi)
- {
- ratio = y / x;
- x = fr * sqrt (1.0 + ratio * ratio);
- }
- else if (fi == 0.0) x = 0.0;
- else
- {
- ratio = x / y;
- x = fi * sqrt (1.0 + ratio * ratio);
- }
-
- return x;
-}
-
-/* usage here is a1 a2 ... an n x ==> a1x^n + a2 x ^(n - 1) + ... + an */
-static double math_poly (void)
-{
- int n;
- double xn = 1.0, sum = 0.0;
- double an, x;
-
- if ((SLang_pop_double(&x, NULL, NULL))
- || (SLang_pop_integer(&n))) return(0.0);
-
- while (n-- > 0)
- {
- if (SLang_pop_double(&an, NULL, NULL)) break;
- sum += an * xn;
- xn = xn * x;
- }
- return (double) sum;
-}
-
-static int double_math_op_result (int op, unsigned char a, unsigned char *b)
-{
- (void) op;
-
- if (a != SLANG_FLOAT_TYPE)
- *b = SLANG_DOUBLE_TYPE;
- else
- *b = a;
-
- return 1;
-}
-
-#ifdef HAVE_ASINH
-# define ASINH_FUN asinh
-#else
-# define ASINH_FUN my_asinh
-static double my_asinh (double x)
-{
- return log (x + sqrt (x*x + 1));
-}
-#endif
-#ifdef HAVE_ACOSH
-# define ACOSH_FUN acosh
-#else
-# define ACOSH_FUN my_acosh
-static double my_acosh (double x)
-{
- return log (x + sqrt(x*x - 1)); /* x >= 1 */
-}
-#endif
-#ifdef HAVE_ATANH
-# define ATANH_FUN atanh
-#else
-# define ATANH_FUN my_atanh
-static double my_atanh (double x)
-{
- return 0.5 * log ((1.0 + x)/(1.0 - x)); /* 0 <= x^2 < 1 */
-}
-#endif
-
-static int double_math_op (int op,
- unsigned char type, VOID_STAR ap, unsigned int na,
- VOID_STAR bp)
-{
- double *a, *b;
- unsigned int i;
- double (*fun) (double);
-
- (void) type;
- a = (double *) ap;
- b = (double *) bp;
-
- switch (op)
- {
- default:
- return 0;
-
- case SLMATH_SINH:
- fun = sinh;
- break;
- case SLMATH_COSH:
- fun = cosh;
- break;
- case SLMATH_TANH:
- fun = tanh;
- break;
- case SLMATH_TAN:
- fun = tan;
- break;
- case SLMATH_ASIN:
- fun = asin;
- break;
- case SLMATH_ACOS:
- fun = acos;
- break;
- case SLMATH_ATAN:
- fun = atan;
- break;
- case SLMATH_EXP:
- fun = exp;
- break;
- case SLMATH_LOG:
- fun = log;
- break;
- case SLMATH_LOG10:
- fun = log10;
- break;
- case SLMATH_SQRT:
- fun = sqrt;
- break;
- case SLMATH_SIN:
- fun = sin;
- break;
- case SLMATH_COS:
- fun = cos;
- break;
-
- case SLMATH_ASINH:
- fun = ASINH_FUN;
- break;
- case SLMATH_ATANH:
- fun = ATANH_FUN;
- break;
- case SLMATH_ACOSH:
- fun = ACOSH_FUN;
- break;
-
- case SLMATH_CONJ:
- case SLMATH_REAL:
- for (i = 0; i < na; i++)
- b[i] = a[i];
- return 1;
- case SLMATH_IMAG:
- for (i = 0; i < na; i++)
- b[i] = 0.0;
- return 1;
- }
-
- for (i = 0; i < na; i++)
- b[i] = (*fun) (a[i]);
-
- return 1;
-}
-
-static int float_math_op (int op,
- unsigned char type, VOID_STAR ap, unsigned int na,
- VOID_STAR bp)
-{
- float *a, *b;
- unsigned int i;
- double (*fun) (double);
-
- (void) type;
- a = (float *) ap;
- b = (float *) bp;
-
-
- switch (op)
- {
- default:
- return 0;
-
- case SLMATH_SINH:
- fun = sinh;
- break;
- case SLMATH_COSH:
- fun = cosh;
- break;
- case SLMATH_TANH:
- fun = tanh;
- break;
- case SLMATH_TAN:
- fun = tan;
- break;
- case SLMATH_ASIN:
- fun = asin;
- break;
- case SLMATH_ACOS:
- fun = acos;
- break;
- case SLMATH_ATAN:
- fun = atan;
- break;
- case SLMATH_EXP:
- fun = exp;
- break;
- case SLMATH_LOG:
- fun = log;
- break;
- case SLMATH_LOG10:
- fun = log10;
- break;
- case SLMATH_SQRT:
- fun = sqrt;
- break;
- case SLMATH_SIN:
- fun = sin;
- break;
- case SLMATH_COS:
- fun = cos;
- break;
-
- case SLMATH_ASINH:
- fun = ASINH_FUN;
- break;
- case SLMATH_ATANH:
- fun = ATANH_FUN;
- break;
- case SLMATH_ACOSH:
- fun = ACOSH_FUN;
- break;
-
- case SLMATH_CONJ:
- case SLMATH_REAL:
- for (i = 0; i < na; i++)
- b[i] = a[i];
- return 1;
- case SLMATH_IMAG:
- for (i = 0; i < na; i++)
- b[i] = 0.0;
- return 1;
- }
-
- for (i = 0; i < na; i++)
- b[i] = (float) (*fun) ((double) a[i]);
-
- return 1;
-}
-
-static int generic_math_op (int op,
- unsigned char type, VOID_STAR ap, unsigned int na,
- VOID_STAR bp)
-{
- double *b;
- unsigned int i;
- SLang_To_Double_Fun_Type to_double;
- double (*fun) (double);
- unsigned int da;
- char *a;
-
- if (NULL == (to_double = SLarith_get_to_double_fun (type, &da)))
- return 0;
-
- b = (double *) bp;
- a = (char *) ap;
-
- switch (op)
- {
- default:
- return 0;
-
- case SLMATH_SINH:
- fun = sinh;
- break;
- case SLMATH_COSH:
- fun = cosh;
- break;
- case SLMATH_TANH:
- fun = tanh;
- break;
- case SLMATH_TAN:
- fun = tan;
- break;
- case SLMATH_ASIN:
- fun = asin;
- break;
- case SLMATH_ACOS:
- fun = acos;
- break;
- case SLMATH_ATAN:
- fun = atan;
- break;
- case SLMATH_EXP:
- fun = exp;
- break;
- case SLMATH_LOG:
- fun = log;
- break;
- case SLMATH_LOG10:
- fun = log10;
- break;
- case SLMATH_SQRT:
- fun = sqrt;
- break;
- case SLMATH_SIN:
- fun = sin;
- break;
- case SLMATH_COS:
- fun = cos;
- break;
-
- case SLMATH_ASINH:
- fun = ASINH_FUN;
- break;
- case SLMATH_ATANH:
- fun = ATANH_FUN;
- break;
- case SLMATH_ACOSH:
- fun = ACOSH_FUN;
- break;
-
-
- case SLMATH_CONJ:
- case SLMATH_REAL:
- for (i = 0; i < na; i++)
- {
- b[i] = to_double((VOID_STAR) a);
- a += da;
- }
- return 1;
-
- case SLMATH_IMAG:
- for (i = 0; i < na; i++)
- b[i] = 0.0;
- return 1;
- }
-
- for (i = 0; i < na; i++)
- {
- b[i] = (*fun) (to_double ((VOID_STAR) a));
- a += da;
- }
-
- return 1;
-}
-
-#if SLANG_HAS_COMPLEX
-static int complex_math_op_result (int op, unsigned char a, unsigned char *b)
-{
- (void) a;
- switch (op)
- {
- default:
- *b = SLANG_COMPLEX_TYPE;
- break;
-
- case SLMATH_REAL:
- case SLMATH_IMAG:
- *b = SLANG_DOUBLE_TYPE;
- break;
- }
- return 1;
-}
-
-static int complex_math_op (int op,
- unsigned char type, VOID_STAR ap, unsigned int na,
- VOID_STAR bp)
-{
- double *a, *b;
- unsigned int i;
- unsigned int na2 = na * 2;
- double *(*fun) (double *, double *);
-
- (void) type;
- a = (double *) ap;
- b = (double *) bp;
-
- switch (op)
- {
- default:
- return 0;
-
- case SLMATH_REAL:
- for (i = 0; i < na; i++)
- b[i] = a[2 * i];
- return 1;
-
- case SLMATH_IMAG:
- for (i = 0; i < na; i++)
- b[i] = a[2 * i + 1];
- return 1;
-
- case SLMATH_CONJ:
- for (i = 0; i < na2; i += 2)
- {
- b[i] = a[i];
- b[i+1] = -a[i+1];
- }
- return 1;
-
- case SLMATH_ATANH:
- fun = SLcomplex_atanh;
- break;
- case SLMATH_ACOSH:
- fun = SLcomplex_acosh;
- break;
- case SLMATH_ASINH:
- fun = SLcomplex_asinh;
- break;
- case SLMATH_EXP:
- fun = SLcomplex_exp;
- break;
- case SLMATH_LOG:
- fun = SLcomplex_log;
- break;
- case SLMATH_LOG10:
- fun = SLcomplex_log10;
- break;
- case SLMATH_SQRT:
- fun = SLcomplex_sqrt;
- break;
- case SLMATH_SIN:
- fun = SLcomplex_sin;
- break;
- case SLMATH_COS:
- fun = SLcomplex_cos;
- break;
- case SLMATH_SINH:
- fun = SLcomplex_sinh;
- break;
- case SLMATH_COSH:
- fun = SLcomplex_cosh;
- break;
- case SLMATH_TANH:
- fun = SLcomplex_tanh;
- break;
- case SLMATH_TAN:
- fun = SLcomplex_tan;
- break;
- case SLMATH_ASIN:
- fun = SLcomplex_asin;
- break;
- case SLMATH_ACOS:
- fun = SLcomplex_acos;
- break;
- case SLMATH_ATAN:
- fun = SLcomplex_atan;
- break;
- }
-
- for (i = 0; i < na2; i += 2)
- (void) (*fun) (b + i, a + i);
-
- return 1;
-}
-#endif
-
-static SLang_DConstant_Type DConst_Table [] =
-{
- MAKE_DCONSTANT("E", 2.718281828459045),
- MAKE_DCONSTANT("PI", 3.14159265358979323846264338327950288),
- SLANG_END_DCONST_TABLE
-};
-
-static SLang_Math_Unary_Type SLmath_Table [] =
-{
- MAKE_MATH_UNARY("sinh", SLMATH_SINH),
- MAKE_MATH_UNARY("asinh", SLMATH_ASINH),
- MAKE_MATH_UNARY("cosh", SLMATH_COSH),
- MAKE_MATH_UNARY("acosh", SLMATH_ACOSH),
- MAKE_MATH_UNARY("tanh", SLMATH_TANH),
- MAKE_MATH_UNARY("atanh", SLMATH_ATANH),
- MAKE_MATH_UNARY("sin", SLMATH_SIN),
- MAKE_MATH_UNARY("cos", SLMATH_COS),
- MAKE_MATH_UNARY("tan", SLMATH_TAN),
- MAKE_MATH_UNARY("atan", SLMATH_ATAN),
- MAKE_MATH_UNARY("acos", SLMATH_ACOS),
- MAKE_MATH_UNARY("asin", SLMATH_ASIN),
- MAKE_MATH_UNARY("exp", SLMATH_EXP),
- MAKE_MATH_UNARY("log", SLMATH_LOG),
- MAKE_MATH_UNARY("sqrt", SLMATH_SQRT),
- MAKE_MATH_UNARY("log10", SLMATH_LOG10),
-#if SLANG_HAS_COMPLEX
- MAKE_MATH_UNARY("Real", SLMATH_REAL),
- MAKE_MATH_UNARY("Imag", SLMATH_IMAG),
- MAKE_MATH_UNARY("Conj", SLMATH_CONJ),
-#endif
- SLANG_END_MATH_UNARY_TABLE
-};
-
-static SLang_Intrin_Fun_Type SLang_Math_Table [] =
-{
- MAKE_INTRINSIC_0("polynom", math_poly, SLANG_DOUBLE_TYPE),
- SLANG_END_INTRIN_FUN_TABLE
-};
-
-int SLang_init_slmath (void)
-{
- unsigned char *int_types;
-
-#if defined(__unix__)
- (void) SIGNAL (SIGFPE, math_floating_point_exception);
-#endif
-
- int_types = _SLarith_Arith_Types;
-
- while (*int_types != SLANG_FLOAT_TYPE)
- {
- if (-1 == SLclass_add_math_op (*int_types, generic_math_op, double_math_op_result))
- return -1;
- int_types++;
- }
-
- if ((-1 == SLclass_add_math_op (SLANG_FLOAT_TYPE, float_math_op, double_math_op_result))
- || (-1 == SLclass_add_math_op (SLANG_DOUBLE_TYPE, double_math_op, double_math_op_result))
-#if SLANG_HAS_COMPLEX
- || (-1 == SLclass_add_math_op (SLANG_COMPLEX_TYPE, complex_math_op, complex_math_op_result))
-#endif
- )
- return -1;
-
- if ((-1 == SLadd_math_unary_table (SLmath_Table, "__SLMATH__"))
- || (-1 == SLadd_intrin_fun_table (SLang_Math_Table, NULL))
- || (-1 == SLadd_dconstant_table (DConst_Table, NULL)))
- return -1;
-
- return 0;
-}
-
diff --git a/mdk-stage1/slang/slmemchr.c b/mdk-stage1/slang/slmemchr.c
deleted file mode 100644
index 1417bc549..000000000
--- a/mdk-stage1/slang/slmemchr.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-/* These routines are fast memcpy, memset routines. When available, I
- use system rouines. For msdos, I use inline assembly. */
-
-/* The current versions only work in the forward direction only!! */
-
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-char *SLmemchr(register char *p, register char c, register int n)
-{
- int n2;
- register char *pmax;
-
- pmax = p + (n - 32);
-
- while (p <= pmax)
- {
- if ((*p == c) || (*++p == c) || (*++p == c) || (*++p == c)
- || (*++p == c) || (*++p == c) || (*++p == c) || (*++p == c)
- || (*++p == c) || (*++p == c) || (*++p == c) || (*++p == c)
- || (*++p == c) || (*++p == c) || (*++p == c) || (*++p == c)
- || (*++p == c) || (*++p == c) || (*++p == c) || (*++p == c)
- || (*++p == c) || (*++p == c) || (*++p == c) || (*++p == c)
- || (*++p == c) || (*++p == c) || (*++p == c) || (*++p == c)
- || (*++p == c) || (*++p == c) || (*++p == c) || (*++p == c))
- return p;
- p++;
- }
-
- n2 = n % 32;
-
- while (n2--)
- {
- if (*p == c) return p;
- p++;
- }
- return(NULL);
-}
diff --git a/mdk-stage1/slang/slmemcmp.c b/mdk-stage1/slang/slmemcmp.c
deleted file mode 100644
index c5ed50095..000000000
--- a/mdk-stage1/slang/slmemcmp.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-/* These routines are fast memcpy, memset routines. When available, I
- use system rouines. For msdos, I use inline assembly. */
-
-/* The current versions only work in the forward direction only!! */
-
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-/* This is an UNSIGNED comparison designed for systems that either do not have
-* this function or performed a signed comparison (SunOS)
-*/
-int SLmemcmp(register char *s1, register char *s2, int n)
-{
- register int cmp;
- register char *s1max;
-
- s1max = s1 + (n - 32);
-
- while (s1 <= s1max)
- {
- if (*s1 != *s2) return ((unsigned char) *s1 - (unsigned char) *s2);
- if (*(s1 + 1) != *(s2 + 1)) return ((unsigned char) *(s1 + 1) - (unsigned char) *(s2 + 1));
- if (*(s1 + 2) != *(s2 + 2)) return ((unsigned char) *(s1 + 2) - (unsigned char) *(s2 + 2));
- if (*(s1 + 3) != *(s2 + 3)) return ((unsigned char) *(s1 + 3) - (unsigned char) *(s2 + 3));
- if (*(s1 + 4) != *(s2 + 4)) return ((unsigned char) *(s1 + 4) - (unsigned char) *(s2 + 4));
- if (*(s1 + 5) != *(s2 + 5)) return ((unsigned char) *(s1 + 5) - (unsigned char) *(s2 + 5));
- if (*(s1 + 6) != *(s2 + 6)) return ((unsigned char) *(s1 + 6) - (unsigned char) *(s2 + 6));
- if (*(s1 + 7) != *(s2 + 7)) return ((unsigned char) *(s1 + 7) - (unsigned char) *(s2 + 7));
- if (*(s1 + 8) != *(s2 + 8)) return ((unsigned char) *(s1 + 8) - (unsigned char) *(s2 + 8));
- if (*(s1 + 9) != *(s2 + 9)) return ((unsigned char) *(s1 + 9) - (unsigned char) *(s2 + 9));
- if (*(s1 + 10) != *(s2 + 10)) return ((unsigned char) *(s1 + 10) - (unsigned char) *(s2 + 10));
- if (*(s1 + 11) != *(s2 + 11)) return ((unsigned char) *(s1 + 11) - (unsigned char) *(s2 + 11));
- if (*(s1 + 12) != *(s2 + 12)) return ((unsigned char) *(s1 + 12) - (unsigned char) *(s2 + 12));
- if (*(s1 + 13) != *(s2 + 13)) return ((unsigned char) *(s1 + 13) - (unsigned char) *(s2 + 13));
- if (*(s1 + 14) != *(s2 + 14)) return ((unsigned char) *(s1 + 14) - (unsigned char) *(s2 + 14));
- if (*(s1 + 15) != *(s2 + 15)) return ((unsigned char) *(s1 + 15) - (unsigned char) *(s2 + 15));
- if (*(s1 + 16) != *(s2 + 16)) return ((unsigned char) *(s1 + 16) - (unsigned char) *(s2 + 16));
- if (*(s1 + 17) != *(s2 + 17)) return ((unsigned char) *(s1 + 17) - (unsigned char) *(s2 + 17));
- if (*(s1 + 18) != *(s2 + 18)) return ((unsigned char) *(s1 + 18) - (unsigned char) *(s2 + 18));
- if (*(s1 + 19) != *(s2 + 19)) return ((unsigned char) *(s1 + 19) - (unsigned char) *(s2 + 19));
- if (*(s1 + 20) != *(s2 + 20)) return ((unsigned char) *(s1 + 20) - (unsigned char) *(s2 + 20));
- if (*(s1 + 21) != *(s2 + 21)) return ((unsigned char) *(s1 + 21) - (unsigned char) *(s2 + 21));
- if (*(s1 + 22) != *(s2 + 22)) return ((unsigned char) *(s1 + 22) - (unsigned char) *(s2 + 22));
- if (*(s1 + 23) != *(s2 + 23)) return ((unsigned char) *(s1 + 23) - (unsigned char) *(s2 + 23));
- if (*(s1 + 24) != *(s2 + 24)) return ((unsigned char) *(s1 + 24) - (unsigned char) *(s2 + 24));
- if (*(s1 + 25) != *(s2 + 25)) return ((unsigned char) *(s1 + 25) - (unsigned char) *(s2 + 25));
- if (*(s1 + 26) != *(s2 + 26)) return ((unsigned char) *(s1 + 26) - (unsigned char) *(s2 + 26));
- if (*(s1 + 27) != *(s2 + 27)) return ((unsigned char) *(s1 + 27) - (unsigned char) *(s2 + 27));
- if (*(s1 + 28) != *(s2 + 28)) return ((unsigned char) *(s1 + 28) - (unsigned char) *(s2 + 28));
- if (*(s1 + 29) != *(s2 + 29)) return ((unsigned char) *(s1 + 29) - (unsigned char) *(s2 + 29));
- if (*(s1 + 30) != *(s2 + 30)) return ((unsigned char) *(s1 + 30) - (unsigned char) *(s2 + 30));
- if (*(s1 + 31) != *(s2 + 31)) return ((unsigned char) *(s1 + 31) - (unsigned char) *(s2 + 31));
- s1 += 32; s2 += 32;
- }
-
- s1max = s1 + (n % 32);
-
- while (s1 < s1max)
- {
- cmp = (unsigned char) *s1 - (unsigned char) *s2;
- if (cmp) return(cmp);
- s1++;
- s2++;
- }
-
- return(0);
-}
diff --git a/mdk-stage1/slang/slmemcpy.c b/mdk-stage1/slang/slmemcpy.c
deleted file mode 100644
index e8665e4c6..000000000
--- a/mdk-stage1/slang/slmemcpy.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-/* These routines are fast memcpy, memset routines. When available, I
- use system rouines. For msdos, I use inline assembly. */
-
-/* The current versions only work in the forward direction only!! */
-
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-char *SLmemcpy(char *s1, char *s2, int n)
-{
-#if defined(__BORLANDC__) && defined(__MSDOS__)
- asm mov ax, ds
- asm mov bx, si
- asm mov dx, di
- asm mov cx, n
- asm les di, s1
- asm lds si, s2
- asm cld
- asm rep movsb
- asm mov ds, ax
- asm mov si, bx
- asm mov di, dx
- return(s1);
-
-#else
- register char *smax, *s = s1;
- int n2;
-
- n2 = n % 4;
- smax = s + (n - 4);
- while (s <= smax)
- {
- *s = *s2; *(s + 1) = *(s2 + 1); *(s + 2) = *(s2 + 2); *(s + 3) = *(s2 + 3);
- s += 4;
- s2 += 4;
- }
- while (n2--) *s++ = *s2++;
- return(s1);
-#endif
-}
diff --git a/mdk-stage1/slang/slmemset.c b/mdk-stage1/slang/slmemset.c
deleted file mode 100644
index 3851663c5..000000000
--- a/mdk-stage1/slang/slmemset.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-/* These routines are fast memcpy, memset routines. When available, I
- use system rouines. For msdos, I use inline assembly. */
-
-/* The current versions only work in the forward direction only!! */
-
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-void SLmemset(char *p, char space, int n)
-{
-#if defined(__BORLANDC__) && defined(__MSDOS__)
- asm mov al, space
- asm mov dx, di
- asm mov cx, n
- asm les di, p
- asm cld
- asm rep stosb
- asm mov di, dx
-#else
- register char *pmax;
-
- pmax = p + (n - 4);
- n = n % 4;
- while (p <= pmax)
- {
- *p++ = space; *p++ = space; *p++ = space; *p++= space;
- }
- while (n--) *p++ = space;
-#endif
-}
diff --git a/mdk-stage1/slang/slmisc.c b/mdk-stage1/slang/slmisc.c
deleted file mode 100644
index ccc7a9bdf..000000000
--- a/mdk-stage1/slang/slmisc.c
+++ /dev/null
@@ -1,330 +0,0 @@
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-#define DEBUG_MALLOC 0
-
-#if DEBUG_MALLOC
-# define SLREALLOC_FUN SLdebug_realloc
-# define SLMALLOC_FUN SLdebug_malloc
-# define SLFREE_FUN SLdebug_free
-#else
-# define SLREALLOC_FUN SLREALLOC
-# define SLMALLOC_FUN SLMALLOC
-# define SLFREE_FUN SLFREE
-#endif
-
-/* Version information goes here since this file is always needed. */
-int SLang_Version = SLANG_VERSION;
-char *SLang_Version_String = SLANG_VERSION_STRING;
-
-char *SLmake_string(char *str)
-{
- return SLmake_nstring(str, strlen (str));
-}
-
-char *SLmake_nstring (char *str, unsigned int n)
-{
- char *ptr;
-
- if (NULL == (ptr = SLmalloc(n + 1)))
- {
- return NULL;
- }
- SLMEMCPY (ptr, str, n);
- ptr[n] = 0;
- return(ptr);
-}
-
-void SLmake_lut (unsigned char *lut, unsigned char *range, unsigned char reverse)
-{
- register unsigned char *l = lut, *lmax = lut + 256;
- int i, r1, r2;
-
- while (l < lmax) *l++ = reverse;
- reverse = !reverse;
-
- r1 = *range++;
- while (r1)
- {
- r2 = *range++;
- if ((r2 == '-') && (*range != 0))
- {
- r2 = *range++;
- for (i = r1; i <= r2; i++) lut[i] = reverse;
- r1 = *range++;
- continue;
- }
- lut[r1] = reverse;
- r1 = r2;
- }
-}
-
-char *SLmalloc (unsigned int len)
-{
- char *p;
-
- p = (char *) SLMALLOC_FUN (len);
- if (p == NULL)
- SLang_Error = SL_MALLOC_ERROR;
-
- return p;
-}
-
-void SLfree (char *p)
-{
- if (p != NULL) SLFREE_FUN (p);
-}
-
-char *SLrealloc (char *p, unsigned int len)
-{
- if (len == 0)
- {
- SLfree (p);
- return NULL;
- }
-
- if (p == NULL) p = SLmalloc (len);
- else
- {
- p = (char *)SLREALLOC_FUN (p, len);
- if (p == NULL)
- SLang_Error = SL_MALLOC_ERROR;
- }
- return p;
-}
-
-char *SLcalloc (unsigned int nelems, unsigned int len)
-{
- char *p;
-
- len = nelems * len;
- p = SLmalloc (len);
- if (p != NULL) SLMEMSET (p, 0, len);
- return p;
-}
-
-/* p and ch may point to the same buffer */
-char *_SLexpand_escaped_char(char *p, char *ch)
-{
- int i = 0;
- int max = 0, num, base = 0;
- char ch1;
-
- ch1 = *p++;
-
- switch (ch1)
- {
- default: num = ch1; break;
- case 'n': num = '\n'; break;
- case 't': num = '\t'; break;
- case 'v': num = '\v'; break;
- case 'b': num = '\b'; break;
- case 'r': num = '\r'; break;
- case 'f': num = '\f'; break;
- case 'E': case 'e': num = 27; break;
- case 'a': num = 7;
- break;
-
- /* octal */
- case '0': case '1': case '2': case '3':
- case '4': case '5': case '6': case '7':
- max = '7';
- base = 8; i = 2; num = ch1 - '0';
- break;
-
- case 'd': /* decimal -- S-Lang extension */
- base = 10;
- i = 3;
- max = '9';
- num = 0;
- break;
-
- case 'x': /* hex */
- base = 16;
- max = '9';
- i = 2;
- num = 0;
- break;
- }
-
- while (i--)
- {
- ch1 = *p;
-
- if ((ch1 <= max) && (ch1 >= '0'))
- {
- num = base * num + (ch1 - '0');
- }
- else if (base == 16)
- {
- ch1 |= 0x20;
- if ((ch1 < 'a') || ((ch1 > 'f'))) break;
- num = base * num + 10 + (ch1 - 'a');
- }
- else break;
- p++;
- }
-
- *ch = (char) num;
- return p;
-}
-
-/* s and t could represent the same space */
-void SLexpand_escaped_string (register char *s, register char *t,
- register char *tmax)
-{
- char ch;
-
- while (t < tmax)
- {
- ch = *t++;
- if (ch == '\\')
- {
- t = _SLexpand_escaped_char (t, &ch);
- }
- *s++ = ch;
- }
- *s = 0;
-}
-
-int SLextract_list_element (char *list, unsigned int nth, char delim,
- char *elem, unsigned int buflen)
-{
- char *el, *elmax;
- char ch;
-
- while (nth > 0)
- {
- while ((0 != (ch = *list)) && (ch != delim))
- list++;
-
- if (ch == 0) return -1;
-
- list++;
- nth--;
- }
-
- el = elem;
- elmax = el + (buflen - 1);
-
- while ((0 != (ch = *list)) && (ch != delim) && (el < elmax))
- *el++ = *list++;
- *el = 0;
-
- return 0;
-}
-
-#ifndef HAVE_VSNPRINTF
-int _SLvsnprintf (char *buf, unsigned int buflen, char *fmt, va_list ap)
-{
-#if 1
- unsigned int len;
-
- /* On some systems vsprintf returns useless information. So, punt */
- vsprintf (buf, fmt, ap);
- len = strlen (buf);
- if (len >= buflen)
- {
- SLang_exit_error ("\
-Your system lacks the vsnprintf system call and vsprintf overflowed a buffer.\n\
-The integrity of this program has been violated.\n");
- return EOF; /* NOT reached */
- }
- return (int)len;
-#else
- int status;
-
- status = vsprintf (buf, fmt, ap);
- if (status >= (int) buflen)
- {
- /* If we are lucky, we will get this far. The real solution is to
- * provide a working version of vsnprintf
- */
- SLang_exit_error ("\
-Your system lacks the vsnprintf system call and vsprintf overflowed a buffer.\n\
-The integrity of this program has been violated.\n");
- return EOF; /* NOT reached */
- }
- return status;
-#endif
-}
-#endif
-
-#ifndef HAVE_SNPRINTF
-int _SLsnprintf (char *buf, unsigned int buflen, char *fmt, ...)
-{
- int status;
-
- va_list ap;
-
- va_start (ap, fmt);
- status = _SLvsnprintf (buf, buflen, fmt, ap);
- va_end (ap);
-
- return status;
-}
-#endif
-
-typedef struct _Cleanup_Function_Type
-{
- struct _Cleanup_Function_Type *next;
- void (*f)(void);
-}
-Cleanup_Function_Type;
-
-static Cleanup_Function_Type *Cleanup_Function_List;
-
-static void cleanup_slang (void)
-{
- while (Cleanup_Function_List != NULL)
- {
- Cleanup_Function_Type *next = Cleanup_Function_List->next;
- (*Cleanup_Function_List->f)();
- SLFREE_FUN ((char *) Cleanup_Function_List);
- Cleanup_Function_List = next;
- }
-}
-
-#ifndef HAVE_ATEXIT
-# ifdef HAVE_ON_EXIT
-static void on_exit_cleanup_slang (int arg_unused)
-{
- (void) arg_unused;
- cleanup_slang ();
-}
-# endif
-#endif
-
-int SLang_add_cleanup_function (void (*f)(void))
-{
- Cleanup_Function_Type *l;
-
- l = (Cleanup_Function_Type *) SLMALLOC_FUN (sizeof (Cleanup_Function_Type));
- if (l == NULL)
- return -1;
-
- l->f = f;
- l->next = Cleanup_Function_List;
-
- if (Cleanup_Function_List == NULL)
- {
-#ifdef HAVE_ATEXIT
- (void) atexit (cleanup_slang);
-#else
-# ifdef HAVE_ON_EXIT
- (void) on_exit (on_exit_cleanup_slang, 0);
-# endif
-#endif
- }
- Cleanup_Function_List = l;
- return 0;
-}
-
diff --git a/mdk-stage1/slang/slnspace.c b/mdk-stage1/slang/slnspace.c
deleted file mode 100644
index 174ba7c81..000000000
--- a/mdk-stage1/slang/slnspace.c
+++ /dev/null
@@ -1,242 +0,0 @@
-/* -*- mode: C; mode: fold; -*- */
-/* slnspace.c --- Name Space implementation */
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-static SLang_NameSpace_Type *Namespace_Tables;
-
-static SLang_NameSpace_Type *find_name_table (char *name)
-{
- SLang_NameSpace_Type *table_list;
-
- table_list = Namespace_Tables;
- while (table_list != NULL)
- {
- if (0 == strcmp (table_list->name, name))
- break;
- table_list = table_list->next;
- }
- return table_list;
-}
-
-SLang_NameSpace_Type *_SLns_find_namespace (char *name)
-{
- SLang_NameSpace_Type *table_list;
-
- table_list = Namespace_Tables;
- while (table_list != NULL)
- {
- if ((table_list->namespace_name != NULL)
- && (0 == strcmp (table_list->namespace_name, name)))
- break;
- table_list = table_list->next;
- }
- return table_list;
-}
-
-SLang_NameSpace_Type *_SLns_allocate_namespace (char *name, unsigned int size)
-{
- SLang_NameSpace_Type *table_list;
- SLang_Name_Type **nt;
-
- if (NULL != (table_list = find_name_table (name)))
- return table_list;
-
- if (NULL == (name = SLang_create_slstring (name)))
- return NULL;
-
- if (NULL == (table_list = (SLang_NameSpace_Type *)
- SLmalloc (sizeof (SLang_NameSpace_Type))))
- {
- SLang_free_slstring (name);
- return NULL;
- }
-
- if (NULL == (nt = (SLang_Name_Type **) SLmalloc (sizeof (SLang_Name_Type *) * size)))
- {
- SLang_free_slstring (name);
- SLfree ((char *)table_list);
- return NULL;
- }
-
- memset ((char *)nt, 0, size * sizeof (SLang_Name_Type *));
- memset ((char *) table_list, 0, sizeof (SLang_NameSpace_Type));
-
- table_list->name = name;
- table_list->table = nt;
- table_list->table_size = size;
-
- table_list->next = Namespace_Tables;
- Namespace_Tables = table_list;
-
- return table_list;
-}
-
-int _SLns_set_namespace_name (SLang_NameSpace_Type *t, char *name)
-{
- SLang_NameSpace_Type *t1;
-
- t1 = _SLns_find_namespace (name);
- if (t1 == NULL)
- t1 = t;
-
- if ((t != t1) || (*name == 0))
- {
- SLang_verror (SL_INTRINSIC_ERROR, "Namespace \"%s\" already exists",
- name);
- return -1;
- }
-
- if (NULL == (name = SLang_create_slstring (name)))
- return -1;
-
- SLang_free_slstring (t->namespace_name); /* NULL ok */
- t->namespace_name = name;
-
- return 0;
-}
-
-SLang_Array_Type *_SLnspace_apropos (SLang_NameSpace_Type *ns, char *pat, unsigned int what)
-{
- SLang_Array_Type *at;
- unsigned int table_size;
- SLang_Name_Type *t, **table;
- int num_matches;
- unsigned int i;
- SLRegexp_Type rexp;
- unsigned char rbuf[512];
- unsigned int two;
-
- at = NULL;
-
- if ((ns == NULL)
- || ((table = ns->table) == NULL))
- return NULL;
-
- memset ((char *) &rexp, 0, sizeof (SLRegexp_Type));
- rexp.case_sensitive = 1;
- rexp.buf = rbuf;
- rexp.buf_len = sizeof (rbuf);
- rexp.pat = (unsigned char *)pat;
-
- if (0 != SLang_regexp_compile (&rexp))
- {
- SLang_verror (SL_INVALID_PARM, "Invalid regular expression: %s", pat);
- return NULL;
- }
-
- table_size = ns->table_size;
-
- two = 2;
- while (two != 0)
- {
- two--;
-
- num_matches = 0;
- for (i = 0; i < table_size; i++)
- {
- t = table[i];
- while (t != NULL)
- {
- unsigned int flags;
- char *name = t->name;
-
- switch (t->name_type)
- {
- case SLANG_GVARIABLE:
- flags = 8;
- break;
-
- case SLANG_ICONSTANT:
- case SLANG_DCONSTANT:
- case SLANG_RVARIABLE:
- case SLANG_IVARIABLE:
- flags = 4;
- break;
-
- case SLANG_INTRINSIC:
- case SLANG_MATH_UNARY:
- case SLANG_APP_UNARY:
- flags = 1;
- break;
-
- case SLANG_FUNCTION:
- flags = 2;
- break;
-
- default:
- flags = 0;
- break;
- }
-
- if ((flags & what)
- && (NULL != SLang_regexp_match ((unsigned char *)name, strlen (name), &rexp)))
- {
- if (at != NULL)
- {
- if (-1 == SLang_set_array_element (at, &num_matches, (VOID_STAR)&name))
- goto return_error;
- }
- num_matches++;
- }
- t = t->next;
- }
- }
-
- if (at == NULL)
- {
- at = SLang_create_array (SLANG_STRING_TYPE, 0, NULL, &num_matches, 1);
- if (at == NULL)
- goto return_error;
- }
- }
-
- return at;
-
- return_error:
- SLang_free_array (at);
- return NULL;
-}
-
-SLang_NameSpace_Type *SLns_create_namespace (char *namespace_name)
-{
- SLang_NameSpace_Type *ns;
- static int num;
- char name[64];
-
- if (namespace_name == NULL)
- namespace_name = "Global";
-
- ns = _SLns_find_namespace (namespace_name);
- if (ns != NULL)
- return ns;
-
- sprintf (name, " *** internal ns <%d> *** ", num);
-
- if (NULL == (ns = _SLns_allocate_namespace (name, SLSTATIC_HASH_TABLE_SIZE)))
- return NULL;
-
- num++;
- if (-1 == _SLns_set_namespace_name (ns, namespace_name))
- {
- SLns_delete_namespace (ns);
- return NULL;
- }
-
- return ns;
-}
-
-void SLns_delete_namespace (SLang_NameSpace_Type *ns)
-{
- (void) ns;
- /* V2.0 */
-}
diff --git a/mdk-stage1/slang/slospath.c b/mdk-stage1/slang/slospath.c
deleted file mode 100644
index 644931e81..000000000
--- a/mdk-stage1/slang/slospath.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Pathname intrinsic functions */
-/* Copyright (c) 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-static void path_concat (char *a, char *b)
-{
- SLang_push_malloced_string (SLpath_dircat (a,b));
-}
-
-static void path_extname (char *path)
-{
-#ifdef VMS
- char *p;
-#endif
-
- path = SLpath_extname (path);
-#ifndef VMS
- SLang_push_string (path);
-#else
- p = strchr (path, ';');
- if (p == NULL)
- (void)SLang_push_string (p);
- else
- (void)SLang_push_malloced_string (SLmake_nstring (path, (unsigned int)(p - path)));
-#endif
-}
-
-static void path_basename (char *path)
-{
- (void) SLang_push_string (SLpath_basename (path));
-}
-
-static void path_dirname (char *path)
-{
- (void) SLang_push_malloced_string (SLpath_dirname (path));
-}
-
-static void path_sans_extname (char *path)
-{
- (void) SLang_push_malloced_string (SLpath_pathname_sans_extname (path));
-}
-
-
-
-static SLang_Intrin_Fun_Type Path_Name_Table [] =
-{
- MAKE_INTRINSIC_SS("path_concat", path_concat, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_S("path_extname", path_extname, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_S("path_dirname", path_dirname, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_S("path_basename", path_basename, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_S("path_sans_extname", path_sans_extname, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_S("path_is_absolute", SLpath_is_absolute_path, SLANG_INT_TYPE),
- SLANG_END_INTRIN_FUN_TABLE
-};
-
-int SLang_init_ospath (void)
-{
- if (-1 == SLadd_intrin_fun_table(Path_Name_Table, "__OSPATH__"))
- return -1;
-
- return 0;
-}
-
-
diff --git a/mdk-stage1/slang/slpack.c b/mdk-stage1/slang/slpack.c
deleted file mode 100644
index 53ef63643..000000000
--- a/mdk-stage1/slang/slpack.c
+++ /dev/null
@@ -1,785 +0,0 @@
-/* Pack objects as a binary string */
-/* Copyright (c) 1998, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-#include "slinclud.h"
-
-#include <ctype.h>
-
-#include "slang.h"
-#include "_slang.h"
-
-#ifndef isdigit
-# define isdigit(c) (((c)>='0')&&((c)<= '9'))
-#endif
-#ifndef isspace
-# define isspace(c) (((c)==' ') || ((c)=='\t') || ((c)=='\n'))
-#endif
-
-/* format description:
- *
- * s = string (null padded)
- * S = string (space padded)
- * c = signed char
- * C = unsigned char
- * h = short
- * H = unsigned short
- * i = int
- * I = unsigned int
- * l = long
- * L = unsigned long
- * j = 16 bit signed integer (short)
- * J = 16 bit unsigned integer (short)
- * k = 32 bit signed integer (long)
- * K = 32 bit unsigned integer (long)
- * f = float (native format)
- * F = 32 bit double
- * d = double (native format)
- * D = 64 bit double
- * x = null pad byte
- * > = big-endian mode
- * < = little-endian mode
- * = = native mode
- */
-
-#define NATIVE_ORDER 0
-#define BIGENDIAN_ORDER 1
-#define LILENDIAN_ORDER 2
-static int Native_Byte_Order = NATIVE_ORDER;
-
-typedef struct
-{
- char format_type;
- unsigned char data_type;
- unsigned int repeat;
- unsigned int sizeof_type;
- char pad;
- int byteorder;
- int is_scalar;
-}
-Format_Type;
-
-static int get_int_type_for_size (unsigned int size, unsigned char *s, unsigned char *u)
-{
- if (sizeof (int) == size)
- {
- if (s != NULL) *s = SLANG_INT_TYPE;
- if (u != NULL) *u = SLANG_UINT_TYPE;
- return 0;
- }
-
- if (sizeof (short) == size)
- {
- if (s != NULL) *s = SLANG_SHORT_TYPE;
- if (u != NULL) *u = SLANG_USHORT_TYPE;
- return 1;
- }
-
- if (sizeof (long) == size)
- {
- if (s != NULL) *s = SLANG_LONG_TYPE;
- if (u != NULL) *u = SLANG_ULONG_TYPE;
- return 1;
- }
-
- if (s != NULL) *s = 0;
- if (u != NULL) *u = 0;
- SLang_verror (SL_NOT_IMPLEMENTED,
- "This OS does not support a %u byte int", size);
- return -1;
-}
-
-static int get_float_type_for_size (unsigned int size, unsigned char *s)
-{
- if (sizeof (float) == size)
- {
- *s = SLANG_FLOAT_TYPE;
- return 0;
- }
-
- if (sizeof (double) == size)
- {
- *s = SLANG_DOUBLE_TYPE;
- return 0;
- }
-
- SLang_verror (SL_NOT_IMPLEMENTED,
- "This OS does not support a %u byte float", size);
- return -1;
-}
-
-static int parse_a_format (char **format, Format_Type *ft)
-{
- char *f;
- char ch;
- unsigned repeat;
-
- f = *format;
-
- while (((ch = *f++) != 0)
- && isspace (ch))
- ;
-
- switch (ch)
- {
- default:
- ft->byteorder = NATIVE_ORDER;
- break;
-
- case '=':
- ft->byteorder = NATIVE_ORDER;
- ch = *f++;
- break;
-
- case '>':
- ft->byteorder = BIGENDIAN_ORDER;
- ch = *f++;
- break;
-
- case '<':
- ft->byteorder = LILENDIAN_ORDER;
- ch = *f++;
- break;
- }
-
- if (ch == 0)
- {
- f--;
- *format = f;
- return 0;
- }
-
- ft->format_type = ch;
- ft->repeat = 1;
-
- if (isdigit (*f))
- {
- repeat = (unsigned int) (*f - '0');
- f++;
-
- while (isdigit (*f))
- {
- unsigned int repeat10 = 10 * repeat + (unsigned int)(*f - '0');
-
- /* Check overflow */
- if (repeat != repeat10 / 10)
- {
- SLang_verror (SL_OVERFLOW,
- "Repeat count too large in [un]pack format");
- return -1;
- }
- repeat = repeat10;
- f++;
- }
- ft->repeat = repeat;
- }
-
- *format = f;
-
- ft->is_scalar = 1;
- ft->pad = 0;
-
- switch (ft->format_type)
- {
- default:
- SLang_verror (SL_NOT_IMPLEMENTED,
- "[un]pack format character '%c' not supported", ft->format_type);
- return -1;
-
- case 'D':
- ft->sizeof_type = 8;
- if (-1 == get_float_type_for_size (8, &ft->data_type))
- return -1;
- break;
-
- case 'd':
- ft->data_type = SLANG_DOUBLE_TYPE;
- ft->sizeof_type = sizeof (double);
- break;
-
- case 'F':
- ft->sizeof_type = 4;
- if (-1 == get_float_type_for_size (4, &ft->data_type))
- return -1;
- break;
- case 'f':
- ft->data_type = SLANG_FLOAT_TYPE;
- ft->sizeof_type = sizeof (float);
- break;
-
- case 'h':
- ft->data_type = SLANG_SHORT_TYPE;
- ft->sizeof_type = sizeof (short);
- break;
- case 'H':
- ft->data_type = SLANG_USHORT_TYPE;
- ft->sizeof_type = sizeof (unsigned short);
- break;
- case 'i':
- ft->data_type = SLANG_INT_TYPE;
- ft->sizeof_type = sizeof (int);
- break;
- case 'I':
- ft->data_type = SLANG_UINT_TYPE;
- ft->sizeof_type = sizeof (unsigned int);
- break;
- case 'l':
- ft->data_type = SLANG_LONG_TYPE;
- ft->sizeof_type = sizeof (long);
- break;
- case 'L':
- ft->data_type = SLANG_ULONG_TYPE;
- ft->sizeof_type = sizeof (unsigned long);
- break;
-
- /* 16 bit ints */
- case 'j':
- ft->sizeof_type = 2;
- if (-1 == get_int_type_for_size (2, &ft->data_type, NULL))
- return -1;
- break;
- case 'J':
- ft->sizeof_type = 2;
- if (-1 == get_int_type_for_size (2, NULL, &ft->data_type))
- return -1;
- break;
-
- /* 32 bit ints */
- case 'k':
- ft->sizeof_type = 4;
- if (-1 == get_int_type_for_size (4, &ft->data_type, NULL))
- return -1;
- break;
- case 'K':
- ft->sizeof_type = 4;
- if (-1 == get_int_type_for_size (4, NULL, &ft->data_type))
- return -1;
- break;
-
- case 'x':
- ft->sizeof_type = 1;
- ft->data_type = 0;
- break;
-
- case 'c':
- ft->sizeof_type = 1;
- ft->data_type = SLANG_CHAR_TYPE;
- break;
-
- case 'C':
- ft->data_type = SLANG_UCHAR_TYPE;
- ft->sizeof_type = 1;
- break;
-
- case 'S':
- case 'A':
- ft->pad = ' ';
- case 'a':
- case 's':
- ft->data_type = SLANG_BSTRING_TYPE;
- ft->sizeof_type = 1;
- ft->is_scalar = 0;
- break;
- }
- return 1;
-}
-
-static int compute_size_for_format (char *format, unsigned int *num_bytes)
-{
- unsigned int size;
- Format_Type ft;
- int status;
-
- *num_bytes = size = 0;
-
- while (1 == (status = parse_a_format (&format, &ft)))
- size += ft.repeat * ft.sizeof_type;
-
- *num_bytes = size;
- return status;
-}
-
-static void byte_swap64 (unsigned char *ss, unsigned int n) /*{{{*/
-{
- unsigned char *p, *pmax, ch;
-
- if (n == 0) return;
- p = (unsigned char *) ss;
- pmax = p + 8 * n;
- while (p < pmax)
- {
- ch = *p;
- *p = *(p + 7);
- *(p + 7) = ch;
-
- ch = *(p + 6);
- *(p + 6) = *(p + 1);
- *(p + 1) = ch;
-
- ch = *(p + 5);
- *(p + 5) = *(p + 2);
- *(p + 2) = ch;
-
- ch = *(p + 4);
- *(p + 4) = *(p + 3);
- *(p + 3) = ch;
-
- p += 8;
- }
-}
-
-/*}}}*/
-static void byte_swap32 (unsigned char *ss, unsigned int n) /*{{{*/
-{
- unsigned char *p, *pmax, ch;
-
- p = (unsigned char *) ss;
- pmax = p + 4 * n;
- while (p < pmax)
- {
- ch = *p;
- *p = *(p + 3);
- *(p + 3) = ch;
-
- ch = *(p + 1);
- *(p + 1) = *(p + 2);
- *(p + 2) = ch;
- p += 4;
- }
-}
-
-/*}}}*/
-static void byte_swap16 (unsigned char *p, unsigned int nread) /*{{{*/
-{
- unsigned char *pmax, ch;
-
- pmax = p + 2 * nread;
- while (p < pmax)
- {
- ch = *p;
- *p = *(p + 1);
- *(p + 1) = ch;
- p += 2;
- }
-}
-
-/*}}}*/
-
-static int byteswap (int order, unsigned char *b, unsigned int size, unsigned int num)
-{
- if (Native_Byte_Order == order)
- return 0;
-
- switch (size)
- {
- case 2:
- byte_swap16 (b, num);
- break;
- case 4:
- byte_swap32 (b, num);
- break;
- case 8:
- byte_swap64 (b, num);
- break;
- default:
- return -1;
- }
-
- return 0;
-}
-
-static void check_native_byte_order (void)
-{
- unsigned short x;
-
- if (Native_Byte_Order != NATIVE_ORDER)
- return;
-
- x = 0xFF;
- if (*(unsigned char *)&x == 0xFF)
- Native_Byte_Order = LILENDIAN_ORDER;
- else
- Native_Byte_Order = BIGENDIAN_ORDER;
-}
-
-static SLang_BString_Type *
-pack_according_to_format (char *format, unsigned int nitems)
-{
- unsigned int size, num;
- unsigned char *buf, *b;
- SLang_BString_Type *bs;
- Format_Type ft;
-
- buf = NULL;
-
- if (-1 == compute_size_for_format (format, &size))
- goto return_error;
-
- if (NULL == (buf = (unsigned char *) SLmalloc (size + 1)))
- goto return_error;
-
- b = buf;
-
- while (1 == parse_a_format (&format, &ft))
- {
- unsigned char *ptr;
- unsigned int repeat;
-
- repeat = ft.repeat;
- if (ft.data_type == 0)
- {
- memset ((char *) b, ft.pad, repeat);
- b += repeat;
- continue;
- }
-
- if (ft.is_scalar)
- {
- unsigned char *bstart;
- num = repeat;
-
- bstart = b;
- while (repeat != 0)
- {
- unsigned int nelements;
- SLang_Array_Type *at;
-
- if (nitems == 0)
- {
- SLang_verror (SL_INVALID_PARM,
- "Not enough items for pack format");
- goto return_error;
- }
-
- if (-1 == SLang_pop_array_of_type (&at, ft.data_type))
- goto return_error;
-
- nelements = at->num_elements;
- if (repeat < nelements)
- nelements = repeat;
- repeat -= nelements;
-
- nelements = nelements * ft.sizeof_type;
- memcpy ((char *)b, (char *)at->data, nelements);
-
- b += nelements;
- SLang_free_array (at);
- nitems--;
- }
-
- if (ft.byteorder != NATIVE_ORDER)
- byteswap (ft.byteorder, bstart, ft.sizeof_type, num);
-
- continue;
- }
-
- /* Otherwise we have a string */
- if (-1 == SLang_pop_bstring (&bs))
- goto return_error;
-
- ptr = SLbstring_get_pointer (bs, &num);
- if (repeat < num) num = repeat;
- memcpy ((char *)b, (char *)ptr, num);
- b += num;
- repeat -= num;
- memset ((char *)b, ft.pad, repeat);
- SLbstring_free (bs);
- b += repeat;
- nitems--;
- }
-
- *b = 0;
- bs = SLbstring_create_malloced (buf, size, 0);
- if (bs == NULL)
- goto return_error;
-
- SLdo_pop_n (nitems);
- return bs;
-
- return_error:
- SLdo_pop_n (nitems);
- if (buf != NULL)
- SLfree ((char *) buf);
-
- return NULL;
-}
-
-void _SLpack (void)
-{
- SLang_BString_Type *bs;
- char *fmt;
- int nitems;
-
- check_native_byte_order ();
-
- nitems = SLang_Num_Function_Args;
- if (nitems <= 0)
- {
- SLang_verror (SL_SYNTAX_ERROR,
- "pack: not enough arguments");
- return;
- }
-
- if ((-1 == SLreverse_stack (nitems))
- || (-1 == SLang_pop_slstring (&fmt)))
- bs = NULL;
- else
- {
- bs = pack_according_to_format (fmt, (unsigned int)nitems - 1);
- SLang_free_slstring (fmt);
- }
-
- SLang_push_bstring (bs);
- SLbstring_free (bs);
-}
-
-void _SLunpack (char *format, SLang_BString_Type *bs)
-{
- Format_Type ft;
- unsigned char *b;
- unsigned int len;
- unsigned int num_bytes;
-
- check_native_byte_order ();
-
- if (-1 == compute_size_for_format (format, &num_bytes))
- return;
-
- b = SLbstring_get_pointer (bs, &len);
- if (b == NULL)
- return;
-
- if (len < num_bytes)
- {
- SLang_verror (SL_INVALID_PARM,
- "unpack format %s is too large for input string",
- format);
- return;
- }
-
- while (1 == parse_a_format (&format, &ft))
- {
- char *str, *s;
-
- if (ft.repeat == 0)
- continue;
-
- if (ft.data_type == 0)
- { /* skip padding */
- b += ft.repeat;
- continue;
- }
-
- if (ft.is_scalar)
- {
- SLang_Array_Type *at;
- int dims;
-
- if (ft.repeat == 1)
- {
- SLang_Class_Type *cl;
-
- cl = _SLclass_get_class (ft.data_type);
- memcpy ((char *)cl->cl_transfer_buf, (char *)b, ft.sizeof_type);
- if (ft.byteorder != NATIVE_ORDER)
- byteswap (ft.byteorder, (unsigned char *)cl->cl_transfer_buf, ft.sizeof_type, 1);
-
- if (-1 == (cl->cl_apush (ft.data_type, cl->cl_transfer_buf)))
- return;
- b += ft.sizeof_type;
- continue;
- }
-
- dims = (int) ft.repeat;
- at = SLang_create_array (ft.data_type, 0, NULL, &dims, 1);
- if (at == NULL)
- return;
-
- num_bytes = ft.repeat * ft.sizeof_type;
- memcpy ((char *)at->data, (char *)b, num_bytes);
- if (ft.byteorder != NATIVE_ORDER)
- byteswap (ft.byteorder, (unsigned char *)at->data, ft.sizeof_type, ft.repeat);
-
- if (-1 == SLang_push_array (at, 1))
- return;
-
- b += num_bytes;
- continue;
- }
-
- len = ft.repeat;
- str = SLmalloc (len + 1);
- if (str == NULL)
- return;
-
- memcpy ((char *) str, (char *)b, len);
- str [len] = 0;
-
- if (ft.pad == ' ')
- {
- unsigned int new_len;
-
- s = str + len;
- while (s > str)
- {
- s--;
- if ((*s != ' ') && (*s != 0))
- {
- s++;
- break;
- }
- *s = 0;
- }
- new_len = (unsigned int) (s - str);
-
- if (new_len != len)
- {
- s = SLrealloc (str, new_len + 1);
- if (s == NULL)
- {
- SLfree (str);
- return;
- }
- str = s;
- len = new_len;
- }
- }
-
- /* Avoid a bstring if possible */
- s = SLmemchr (str, 0, len);
- if (s == NULL)
- {
- if (-1 == SLang_push_malloced_string (str))
- return;
- }
- else
- {
- SLang_BString_Type *new_bs;
-
- new_bs = SLbstring_create_malloced ((unsigned char *)str, len, 1);
- if (new_bs == NULL)
- return;
-
- if (-1 == SLang_push_bstring (new_bs))
- {
- SLfree (str);
- return;
- }
- SLbstring_free (new_bs);
- }
-
- b += ft.repeat;
- }
-}
-
-unsigned int _SLpack_compute_size (char *format)
-{
- unsigned int n;
-
- n = 0;
- (void) compute_size_for_format (format, &n);
- return n;
-}
-
-void _SLpack_pad_format (char *format)
-{
- unsigned int len, max_len;
- Format_Type ft;
- char *buf, *b;
-
- check_native_byte_order ();
-
- /* Just check the syntax */
- if (-1 == compute_size_for_format (format, &max_len))
- return;
-
- /* This should be sufficient to handle any needed xyy padding characters.
- * I cannot see how this will be overrun
- */
- max_len = 4 * (strlen (format) + 1);
- if (NULL == (buf = SLmalloc (max_len + 1)))
- return;
-
- b = buf;
- len = 0;
- while (1 == parse_a_format (&format, &ft))
- {
- struct { char a; short b; } s_h;
- struct { char a; int b; } s_i;
- struct { char a; long b; } s_l;
- struct { char a; float b; } s_f;
- struct { char a; double b; } s_d;
- unsigned int pad;
-
- if (ft.repeat == 0)
- continue;
-
- if (ft.data_type == 0)
- { /* pad */
- sprintf (b, "x%u", ft.repeat);
- b += strlen (b);
- len += ft.repeat;
- continue;
- }
-
- switch (ft.data_type)
- {
- default:
- case SLANG_STRING_TYPE:
- case SLANG_BSTRING_TYPE:
- case SLANG_CHAR_TYPE:
- case SLANG_UCHAR_TYPE:
- pad = 0;
- break;
-
- case SLANG_SHORT_TYPE:
- case SLANG_USHORT_TYPE:
- pad = ((unsigned int) ((char *)&s_h.b - (char *)&s_h.a));
- break;
-
- case SLANG_INT_TYPE:
- case SLANG_UINT_TYPE:
- pad = ((unsigned int) ((char *)&s_i.b - (char *)&s_i.a));
- break;
-
- case SLANG_LONG_TYPE:
- case SLANG_ULONG_TYPE:
- pad = ((unsigned int) ((char *)&s_l.b - (char *)&s_l.a));
- break;
-
- case SLANG_FLOAT_TYPE:
- pad = ((unsigned int) ((char *)&s_f.b - (char *)&s_f.a));
- break;
-
- case SLANG_DOUBLE_TYPE:
- pad = ((unsigned int) ((char *)&s_d.b - (char *)&s_d.a));
- break;
- }
-
- /* Pad to a length that is an integer multiple of pad. */
- if (pad)
- pad = pad * ((len + pad - 1)/pad) - len;
-
- if (pad)
- {
- sprintf (b, "x%u", pad);
- b += strlen (b);
- len += pad;
- }
-
- *b++ = ft.format_type;
- if (ft.repeat > 1)
- {
- sprintf (b, "%u", ft.repeat);
- b += strlen (b);
- }
-
- len += ft.repeat * ft.sizeof_type;
- }
- *b = 0;
-
- (void) SLang_push_malloced_string (buf);
-}
diff --git a/mdk-stage1/slang/slparse.c b/mdk-stage1/slang/slparse.c
deleted file mode 100644
index bc709d1fb..000000000
--- a/mdk-stage1/slang/slparse.c
+++ /dev/null
@@ -1,1970 +0,0 @@
-/* Copyright (c) 1998, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-static SLang_Load_Type *LLT;
-int _SLang_Compile_Line_Num_Info;
-
-static void free_token (_SLang_Token_Type *t)
-{
- register unsigned int nrefs = t->num_refs;
-
- if (nrefs == 0)
- return;
-
- if (nrefs == 1)
- {
- if (t->free_sval_flag)
- {
- if (t->type == BSTRING_TOKEN)
- SLbstring_free (t->v.b_val);
- else
- _SLfree_hashed_string (t->v.s_val, strlen (t->v.s_val), t->hash);
- t->v.s_val = NULL;
- }
- }
-
- t->num_refs = nrefs - 1;
-}
-
-static void init_token (_SLang_Token_Type *t)
-{
- memset ((char *) t, 0, sizeof (_SLang_Token_Type));
-#if _SLANG_HAS_DEBUG_CODE
- t->line_number = -1;
-#endif
-}
-
-/* Allow room for one push back of a token. This is necessary for
- * multiple assignment.
- */
-static unsigned int Use_Next_Token;
-static _SLang_Token_Type Next_Token;
-#if _SLANG_HAS_DEBUG_CODE
-static int Last_Line_Number = -1;
-#endif
-
-static int unget_token (_SLang_Token_Type *ctok)
-{
- if (SLang_Error)
- return -1;
- if (Use_Next_Token != 0)
- {
- _SLparse_error ("unget_token failed", ctok, 0);
- return -1;
- }
-
- Use_Next_Token++;
- Next_Token = *ctok;
- init_token (ctok);
- return 0;
-}
-
-static int get_token (_SLang_Token_Type *ctok)
-{
- if (ctok->num_refs)
- free_token (ctok);
-
- if (Use_Next_Token)
- {
- Use_Next_Token--;
- *ctok = Next_Token;
- return ctok->type;
- }
-
- return _SLget_token (ctok);
-}
-
-static int compile_token (_SLang_Token_Type *t)
-{
-#if _SLANG_HAS_DEBUG_CODE
- if (_SLang_Compile_Line_Num_Info
- && (t->line_number != Last_Line_Number)
- && (t->line_number != -1))
- {
- _SLang_Token_Type tok;
- tok.type = LINE_NUM_TOKEN;
- tok.v.long_val = Last_Line_Number = t->line_number;
- (*_SLcompile_ptr) (&tok);
- }
-#endif
- (*_SLcompile_ptr) (t);
- return 0;
-}
-
-typedef struct
-{
-#define USE_PARANOID_MAGIC 0
-#if USE_PARANOID_MAGIC
- unsigned long magic;
-#endif
- _SLang_Token_Type *stack;
- unsigned int len;
- unsigned int size;
-}
-Token_List_Type;
-
-#define MAX_TOKEN_LISTS 16
-static Token_List_Type Token_List_Stack [MAX_TOKEN_LISTS];
-static unsigned int Token_List_Stack_Depth = 0;
-static Token_List_Type *Token_List = NULL;
-
-static void init_token_list (Token_List_Type *t)
-{
- t->size = 0;
- t->len = 0;
- t->stack = NULL;
-#if USE_PARANOID_MAGIC
- t->magic = 0xABCDEF12;
-#endif
-}
-
-static void free_token_list (Token_List_Type *t)
-{
- _SLang_Token_Type *s;
-
- if (t == NULL)
- return;
-#if USE_PARANOID_MAGIC
- if (t->magic != 0xABCDEF12)
- {
- SLang_doerror ("Magic error.");
- return;
- }
-#endif
- s = t->stack;
- if (s != NULL)
- {
- _SLang_Token_Type *smax = s + t->len;
- while (s != smax)
- {
- if (s->num_refs) free_token (s);
- s++;
- }
-
- SLfree ((char *) t->stack);
- }
-
- memset ((char *) t, 0, sizeof (Token_List_Type));
-}
-
-static Token_List_Type *push_token_list (void)
-{
- if (Token_List_Stack_Depth == MAX_TOKEN_LISTS)
- {
- _SLparse_error ("Token list stack size exceeded", NULL, 0);
- return NULL;
- }
-
- Token_List = Token_List_Stack + Token_List_Stack_Depth;
- Token_List_Stack_Depth++;
- init_token_list (Token_List);
- return Token_List;
-}
-
-static int pop_token_list (int do_free)
-{
- if (Token_List_Stack_Depth == 0)
- {
- if (SLang_Error == 0)
- _SLparse_error ("Token list stack underflow", NULL, 0);
- return -1;
- }
- Token_List_Stack_Depth--;
-
- if (do_free) free_token_list (Token_List);
-
- if (Token_List_Stack_Depth != 0)
- Token_List = Token_List_Stack + (Token_List_Stack_Depth - 1);
- else
- Token_List = NULL;
-
- return 0;
-}
-
-static int check_token_list_space (Token_List_Type *t, unsigned int delta_size)
-{
- _SLang_Token_Type *st;
- unsigned int len;
-#if USE_PARANOID_MAGIC
- if (t->magic != 0xABCDEF12)
- {
- SLang_doerror ("Magic error.");
- return -1;
- }
-#endif
- len = t->len + delta_size;
- if (len <= t->size) return 0;
-
- if (delta_size < 4)
- {
- delta_size = 4;
- len = t->len + delta_size;
- }
-
- st = (_SLang_Token_Type *) SLrealloc((char *) t->stack,
- len * sizeof(_SLang_Token_Type));
- if (st == NULL)
- {
- _SLparse_error ("Malloc error", NULL, 0);
- return -1;
- }
-
- memset ((char *) (st + t->len), 0, delta_size);
-
- t->stack = st;
- t->size = len;
- return 0;
-}
-
-static int append_token (_SLang_Token_Type *t)
-{
- if (-1 == check_token_list_space (Token_List, 1))
- return -1;
-
- Token_List->stack [Token_List->len] = *t;
- Token_List->len += 1;
- t->num_refs = 0; /* stealing it */
- return 0;
-}
-
-static int append_token_of_type (unsigned char t)
-{
- _SLang_Token_Type *tok;
-
- if (-1 == check_token_list_space (Token_List, 1))
- return -1;
-
- /* The memset when the list was created ensures that the other fields
- * are properly initialized.
- */
- tok = Token_List->stack + Token_List->len;
- init_token (tok);
- tok->type = t;
- Token_List->len += 1;
- return 0;
-}
-
-static _SLang_Token_Type *get_last_token (void)
-{
- unsigned int len;
-
- if ((Token_List == NULL)
- || (0 == (len = Token_List->len)))
- return NULL;
-
- len--;
- return Token_List->stack + len;
-}
-
-/* This function does NOT free the list. */
-static int compile_token_list_with_fun (int dir, Token_List_Type *list,
- int (*f)(_SLang_Token_Type *))
-{
- _SLang_Token_Type *t0, *t1;
-
- if (list == NULL)
- return -1;
-
- if (f == NULL)
- f = compile_token;
-
- t0 = list->stack;
- t1 = t0 + list->len;
-
- if (dir < 0)
- {
- /* backwards */
-
- while ((SLang_Error == 0) && (t1 > t0))
- {
- t1--;
- (*f) (t1);
- }
- return 0;
- }
-
- /* forward */
- while ((SLang_Error == 0) && (t0 < t1))
- {
- (*f) (t0);
- t0++;
- }
- return 0;
-}
-
-static int compile_token_list (void)
-{
- if (Token_List == NULL)
- return -1;
-
- compile_token_list_with_fun (1, Token_List, NULL);
- pop_token_list (1);
- return 0;
-}
-
-/* Take all elements in the list from pos2 to the end and exchange them
- * with the elements at pos1, e.g.,
- * ...ABCDEabc ==> ...abcABCDE
- * where pos1 denotes A and pos2 denotes a.
- */
-static int token_list_element_exchange (unsigned int pos1, unsigned int pos2)
-{
- _SLang_Token_Type *s, *s1, *s2;
- unsigned int len, nloops;
-
- if (Token_List == NULL)
- return -1;
-
- s = Token_List->stack;
- len = Token_List->len;
-
- if ((s == NULL) || (len == 0)
- || (pos2 >= len))
- return -1;
-
- /* This may not be the most efficient algorithm but the number to swap
- * is most-likely going to be small, e.g, 3
- * The algorithm is to rotate the list. The particular rotation
- * direction was chosen to make insert_token fast.
- * It works like:
- * @ ABCabcde --> BCabcdeA --> CabcdeAB --> abcdefAB
- * which is optimal for Abcdef sequence produced by function calls.
- *
- * Profiling indicates that nloops is almost always 1, whereas the inner
- * loop can loop many times (e.g., 9 times).
- */
-
- s2 = s + (len - 1);
- s1 = s + pos1;
- nloops = pos2 - pos1;
-
- while (nloops)
- {
- _SLang_Token_Type save;
-
- s = s1;
- save = *s;
-
- while (s < s2)
- {
- *s = *(s + 1);
- s++;
- }
- *s = save;
-
- nloops--;
- }
- return 0;
-}
-
-#if 0
-static int insert_token (_SLang_Token_Type *t, unsigned int pos)
-{
- if (-1 == append_token (t))
- return -1;
-
- return token_list_element_exchange (pos, Token_List->len - 1);
-}
-#endif
-static void compile_token_of_type (unsigned char t)
-{
- _SLang_Token_Type tok;
-
-#if _SLANG_HAS_DEBUG_CODE
- tok.line_number = -1;
-#endif
- tok.type = t;
- compile_token(&tok);
-}
-
-static void statement (_SLang_Token_Type *);
-static void compound_statement (_SLang_Token_Type *);
-static void expression_with_parenthesis (_SLang_Token_Type *);
-static void handle_semicolon (_SLang_Token_Type *);
-static void statement_list (_SLang_Token_Type *);
-static void variable_list (_SLang_Token_Type *, unsigned char);
-static void struct_declaration (_SLang_Token_Type *);
-static void define_function_args (_SLang_Token_Type *);
-static void typedef_definition (_SLang_Token_Type *);
-static void function_args_expression (_SLang_Token_Type *, int);
-static void expression (_SLang_Token_Type *);
-static void expression_with_commas (_SLang_Token_Type *, int);
-static void simple_expression (_SLang_Token_Type *);
-static void unary_expression (_SLang_Token_Type *);
-static void postfix_expression (_SLang_Token_Type *);
-static int check_for_lvalue (unsigned char, _SLang_Token_Type *);
-/* static void primary_expression (_SLang_Token_Type *); */
-static void block (_SLang_Token_Type *);
-static void inline_array_expression (_SLang_Token_Type *);
-static void array_index_expression (_SLang_Token_Type *);
-static void do_multiple_assignment (_SLang_Token_Type *);
-static void try_multiple_assignment (_SLang_Token_Type *);
-#if 0
-static void not_implemented (char *what)
-{
- char err [256];
- sprintf (err, "Expression not implemented: %s", what);
- _SLparse_error (err, NULL, 0);
-}
-#endif
-static void rpn_parse_line (_SLang_Token_Type *tok)
-{
- do
- {
- /* multiple RPN tokens possible when the file looks like:
- * . <end of line>
- * . <end of line>
- */
- if (tok->type != RPN_TOKEN)
- compile_token (tok);
- free_token (tok);
- }
- while (EOF_TOKEN != _SLget_rpn_token (tok));
-}
-
-static int get_identifier_token (_SLang_Token_Type *tok)
-{
- if (IDENT_TOKEN == get_token (tok))
- return IDENT_TOKEN;
-
- _SLparse_error ("Expecting identifier", tok, 0);
- return tok->type;
-}
-
-static void define_function (_SLang_Token_Type *ctok, unsigned char type)
-{
- _SLang_Token_Type fname;
-
- switch (type)
- {
- case STATIC_TOKEN:
- type = DEFINE_STATIC_TOKEN;
- break;
-
- case PUBLIC_TOKEN:
- type = DEFINE_PUBLIC_TOKEN;
- break;
-
- case PRIVATE_TOKEN:
- type = DEFINE_PRIVATE_TOKEN;
- }
-
- init_token (&fname);
- if (IDENT_TOKEN != get_identifier_token (&fname))
- {
- free_token (&fname);
- return;
- }
-
- compile_token_of_type(OPAREN_TOKEN);
- get_token (ctok);
- define_function_args (ctok);
- compile_token_of_type(FARG_TOKEN);
-
- if (ctok->type == OBRACE_TOKEN)
- compound_statement(ctok);
-
- else if (ctok->type != SEMICOLON_TOKEN)
- {
- _SLparse_error("Expecting {", ctok, 0);
- free_token (&fname);
- return;
- }
-
- fname.type = type;
- compile_token (&fname);
- free_token (&fname);
-}
-
-/* statement:
- * compound-statement
- * if ( expression ) statement
- * if ( expression ) statement else statement
- * !if ( expression ) statement
- * loop ( expression ) statement
- * _for ( expression ) statement
- * foreach ( expression ) statement
- * foreach (expression ) using (expression-list) statement
- * while ( expression ) statement
- * do statement while (expression) ;
- * for ( expressionopt ; expressionopt ; expressionopt ) statement
- * ERROR_BLOCK statement
- * EXIT_BLOCK statement
- * USER_BLOCK0 statement
- * USER_BLOCK1 statement
- * USER_BLOCK2 statement
- * USER_BLOCK3 statement
- * USER_BLOCK4 statement
- * forever statement
- * break ;
- * continue ;
- * return expressionopt ;
- * variable variable-list ;
- * struct struct-decl ;
- * define identifier function-args ;
- * define identifier function-args compound-statement
- * switch ( expression ) statement
- * rpn-line
- * at-line
- * push ( expression )
- * ( expression ) = expression ;
- * expression ;
- * expression :
- */
-
-/* Note: This function does not return with a new token. It is up to the
- * calling routine to handle that.
- */
-static void statement (_SLang_Token_Type *ctok)
-{
- unsigned char type;
-
- if (SLang_Error)
- return;
-
- LLT->parse_level += 1;
-
- switch (ctok->type)
- {
- case OBRACE_TOKEN:
- compound_statement (ctok);
- break;
-
- case IF_TOKEN:
- case IFNOT_TOKEN:
- type = ctok->type;
- get_token (ctok);
- expression_with_parenthesis (ctok);
- block (ctok);
-
- if (ELSE_TOKEN != get_token (ctok))
- {
- compile_token_of_type (type);
- unget_token (ctok);
- break;
- }
- get_token (ctok);
- block (ctok);
- if (type == IF_TOKEN) type = ELSE_TOKEN; else type = NOTELSE_TOKEN;
- compile_token_of_type (type);
- break;
-
- /* case IFNOT_TOKEN: */
- case LOOP_TOKEN:
- case _FOR_TOKEN:
- type = ctok->type;
- get_token (ctok);
- expression_with_parenthesis (ctok);
- block (ctok);
- compile_token_of_type (type);
- break;
-
- case FOREACH_TOKEN:
- get_token (ctok);
- expression_with_parenthesis (ctok);
-
- if (NULL == push_token_list ())
- break;
-
- append_token_of_type (ARG_TOKEN);
- if (ctok->type == USING_TOKEN)
- {
- if (OPAREN_TOKEN != get_token (ctok))
- {
- _SLparse_error ("Expected 'using ('", ctok, 0);
- break;
- }
- get_token (ctok);
- function_args_expression (ctok, 0);
- }
- append_token_of_type (EARG_TOKEN);
-
- compile_token_list ();
-
- block (ctok);
- compile_token_of_type (FOREACH_TOKEN);
- break;
-
- case WHILE_TOKEN:
- get_token (ctok);
- compile_token_of_type (OBRACE_TOKEN);
- expression_with_parenthesis (ctok);
- compile_token_of_type (CBRACE_TOKEN);
- block (ctok);
- compile_token_of_type (WHILE_TOKEN);
- break;
-
- case DO_TOKEN:
- get_token (ctok);
- block (ctok);
-
- if (WHILE_TOKEN != get_token (ctok))
- {
- _SLparse_error("Expecting while", ctok, 0);
- break;
- }
-
- get_token (ctok);
-
- compile_token_of_type (OBRACE_TOKEN);
- expression_with_parenthesis (ctok);
- compile_token_of_type (CBRACE_TOKEN);
- compile_token_of_type (DOWHILE_TOKEN);
- handle_semicolon (ctok);
- break;
-
- case FOR_TOKEN:
-
- /* Look for (exp_opt ; exp_opt ; exp_opt ) */
-
- if (OPAREN_TOKEN != get_token (ctok))
- {
- _SLparse_error("Expecting (.", ctok, 0);
- break;
- }
-
- if (NULL == push_token_list ())
- break;
-
- append_token_of_type (OBRACE_TOKEN);
- if (SEMICOLON_TOKEN != get_token (ctok))
- {
- expression (ctok);
- if (ctok->type != SEMICOLON_TOKEN)
- {
- _SLparse_error("Expecting ;", ctok, 0);
- break;
- }
- }
- append_token_of_type (CBRACE_TOKEN);
-
- append_token_of_type (OBRACE_TOKEN);
- if (SEMICOLON_TOKEN != get_token (ctok))
- {
- expression (ctok);
- if (ctok->type != SEMICOLON_TOKEN)
- {
- _SLparse_error("Expecting ;", ctok, 0);
- break;
- }
- }
- append_token_of_type (CBRACE_TOKEN);
-
- append_token_of_type (OBRACE_TOKEN);
- if (CPAREN_TOKEN != get_token (ctok))
- {
- expression (ctok);
- if (ctok->type != CPAREN_TOKEN)
- {
- _SLparse_error("Expecting ).", ctok, 0);
- break;
- }
- }
- append_token_of_type (CBRACE_TOKEN);
-
- compile_token_list ();
-
- get_token (ctok);
- block (ctok);
- compile_token_of_type (FOR_TOKEN);
- break;
-
- case ERRBLK_TOKEN:
- case EXITBLK_TOKEN:
- case USRBLK0_TOKEN:
- case USRBLK1_TOKEN:
- case USRBLK2_TOKEN:
- case USRBLK3_TOKEN:
- case USRBLK4_TOKEN:
- case FOREVER_TOKEN:
- type = ctok->type;
- get_token (ctok);
- block (ctok);
- compile_token_of_type (type);
- break;
-
- case BREAK_TOKEN:
- case CONT_TOKEN:
- compile_token_of_type (ctok->type);
- get_token (ctok);
- handle_semicolon (ctok);
- break;
-
- case RETURN_TOKEN:
- if (SEMICOLON_TOKEN != get_token (ctok))
- {
- if (NULL == push_token_list ())
- break;
-
- expression (ctok);
-
- if (ctok->type != SEMICOLON_TOKEN)
- {
- _SLparse_error ("Expecting ;", ctok, 0);
- break;
- }
- compile_token_list ();
- }
- compile_token_of_type (RETURN_TOKEN);
- handle_semicolon (ctok);
- break;
-
- case STATIC_TOKEN:
- case PRIVATE_TOKEN:
- case PUBLIC_TOKEN:
- type = ctok->type;
- get_token (ctok);
- if (ctok->type == VARIABLE_TOKEN)
- {
- get_token (ctok);
- variable_list (ctok, type);
- handle_semicolon (ctok);
- break;
- }
- if (ctok->type == DEFINE_TOKEN)
- {
- define_function (ctok, type);
- break;
- }
- _SLparse_error ("Expecting 'variable' or 'define'", ctok, 0);
- break;
-
- case VARIABLE_TOKEN:
- get_token (ctok);
- variable_list (ctok, OBRACKET_TOKEN);
- handle_semicolon (ctok);
- break;
-
- case TYPEDEF_TOKEN:
- get_token (ctok);
- if (NULL == push_token_list ())
- break;
- typedef_definition (ctok);
- compile_token_list ();
-
- handle_semicolon (ctok);
- break;
-
- case DEFINE_TOKEN:
- define_function (ctok, DEFINE_TOKEN);
- break;
-
- case SWITCH_TOKEN:
- get_token (ctok);
- expression_with_parenthesis (ctok);
-
- while ((SLang_Error == 0)
- && (OBRACE_TOKEN == ctok->type))
- {
- compile_token_of_type (OBRACE_TOKEN);
- compound_statement (ctok);
- compile_token_of_type (CBRACE_TOKEN);
- get_token (ctok);
- }
- compile_token_of_type (SWITCH_TOKEN);
- unget_token (ctok);
- break;
-
- case EOF_TOKEN:
- break;
-#if 0
- case PUSH_TOKEN:
- get_token (ctok);
- expression_list_with_parenthesis (ctok);
- handle_semicolon (ctok);
- break;
-#endif
-
- case SEMICOLON_TOKEN:
- handle_semicolon (ctok);
- break;
-
- case RPN_TOKEN:
- if (POUND_TOKEN == get_token (ctok))
- _SLcompile_byte_compiled ();
- else if (ctok->type != EOF_TOKEN)
- rpn_parse_line (ctok);
- break;
-
- case OPAREN_TOKEN: /* multiple assignment */
- try_multiple_assignment (ctok);
- if (ctok->type == COLON_TOKEN)
- compile_token_of_type (COLON_TOKEN);
- else handle_semicolon (ctok);
- break;
-
- default:
-
- if (NULL == push_token_list ())
- break;
-
- expression (ctok);
- compile_token_list ();
-
- if (ctok->type == COLON_TOKEN)
- compile_token_of_type (COLON_TOKEN);
- else handle_semicolon (ctok);
- break;
- }
-
- LLT->parse_level -= 1;
-}
-
-static void block (_SLang_Token_Type *ctok)
-{
- compile_token_of_type (OBRACE_TOKEN);
- statement (ctok);
- compile_token_of_type (CBRACE_TOKEN);
-}
-
-/*
- * statement-list:
- * statement
- * statement-list statement
- */
-static void statement_list (_SLang_Token_Type *ctok)
-{
- while ((SLang_Error == 0)
- && (ctok->type != CBRACE_TOKEN)
- && (ctok->type != EOF_TOKEN))
- {
- statement(ctok);
- get_token (ctok);
- }
-}
-
-/* compound-statement:
- * { statement-list }
- */
-static void compound_statement (_SLang_Token_Type *ctok)
-{
- /* ctok->type is OBRACE_TOKEN here */
- get_token (ctok);
- statement_list(ctok);
- if (CBRACE_TOKEN != ctok->type)
- {
- _SLparse_error ("Expecting '}'", ctok, 0);
- return;
- }
-}
-
-/* This function is only called from statement. */
-static void expression_with_parenthesis (_SLang_Token_Type *ctok)
-{
- if (ctok->type != OPAREN_TOKEN)
- {
- _SLparse_error("Expecting (", ctok, 0);
- return;
- }
-
- if (NULL == push_token_list ())
- return;
-
- get_token (ctok);
- expression (ctok);
-
- if (ctok->type != CPAREN_TOKEN)
- _SLparse_error("Expecting )", ctok, 0);
-
- compile_token_list ();
-
- get_token (ctok);
-}
-
-static void handle_semicolon (_SLang_Token_Type *ctok)
-{
- if ((ctok->type == SEMICOLON_TOKEN)
- || (ctok->type == EOF_TOKEN))
- return;
-
- _SLparse_error ("Expecting ;", ctok, 0);
-}
-
-void _SLparse_start (SLang_Load_Type *llt)
-{
- _SLang_Token_Type ctok;
- SLang_Load_Type *save_llt;
- unsigned int save_use_next_token;
- _SLang_Token_Type save_next_token;
- Token_List_Type *save_list;
-#if _SLANG_HAS_DEBUG_CODE
- int save_last_line_number = Last_Line_Number;
-
- Last_Line_Number = -1;
-#endif
- save_use_next_token = Use_Next_Token;
- save_next_token = Next_Token;
- save_list = Token_List;
- save_llt = LLT;
- LLT = llt;
-
- init_token (&Next_Token);
- Use_Next_Token = 0;
- init_token (&ctok);
- get_token (&ctok);
-
- llt->parse_level = 0;
- statement_list (&ctok);
-
- if ((SLang_Error == 0)
- && (ctok.type != EOF_TOKEN))
- _SLparse_error ("Parse ended prematurely", &ctok, 0);
-
-
- if (SLang_Error)
- {
- if (SLang_Error < 0) /* severe error */
- save_list = NULL;
-
- while (Token_List != save_list)
- {
- if (-1 == pop_token_list (1))
- break; /* ??? when would this happen? */
- }
- }
-
- free_token (&ctok);
- LLT = save_llt;
- if (Use_Next_Token)
- free_token (&Next_Token);
- Use_Next_Token = save_use_next_token;
- Next_Token = save_next_token;
-#if _SLANG_HAS_DEBUG_CODE
- Last_Line_Number = save_last_line_number;
-#endif
-}
-
-/* variable-list:
- * variable-decl
- * variable-decl variable-list
- *
- * variable-decl:
- * identifier
- * identifier = simple-expression
- */
-static void variable_list (_SLang_Token_Type *name_token, unsigned char variable_type)
-{
- int declaring;
- _SLang_Token_Type tok;
-
- if (name_token->type != IDENT_TOKEN)
- {
- _SLparse_error ("Expecting a variable name", name_token, 0);
- return;
- }
-
- declaring = 0;
- do
- {
- if (declaring == 0)
- {
- declaring = 1;
- compile_token_of_type (variable_type);
- }
-
- compile_token (name_token);
-
- init_token (&tok);
- if (ASSIGN_TOKEN == get_token (&tok))
- {
- compile_token_of_type (CBRACKET_TOKEN);
- declaring = 0;
-
- get_token (&tok);
-
- push_token_list ();
- simple_expression (&tok);
- compile_token_list ();
-
- name_token->type = _SCALAR_ASSIGN_TOKEN;
- compile_token (name_token);
- }
-
- free_token (name_token);
- *name_token = tok;
- }
- while ((name_token->type == COMMA_TOKEN)
- && (IDENT_TOKEN == get_token (name_token)));
-
- if (declaring) compile_token_of_type (CBRACKET_TOKEN);
-}
-
-/* struct-declaration:
- * struct { struct-field-list };
- *
- * struct-field-list:
- * struct-field-name , struct-field-list
- * struct-field-name
- *
- * Generates code: "field-name-1" ... "field-name-N" N STRUCT_TOKEN
- */
-static void struct_declaration (_SLang_Token_Type *ctok)
-{
- int n;
- _SLang_Token_Type num_tok;
-
- if (ctok->type != OBRACE_TOKEN)
- {
- _SLparse_error ("Expecting {", ctok, 0);
- return;
- }
-
- n = 0;
- while (IDENT_TOKEN == get_token (ctok))
- {
- n++;
- ctok->type = STRING_TOKEN;
- append_token (ctok);
- if (COMMA_TOKEN != get_token (ctok))
- break;
- }
-
- if (ctok->type != CBRACE_TOKEN)
- {
- _SLparse_error ("Expecting }", ctok, 0);
- return;
- }
- if (n == 0)
- {
- _SLparse_error ("struct requires at least 1 field", ctok, 0);
- return;
- }
-
- init_token (&num_tok);
- num_tok.type = INT_TOKEN;
- num_tok.v.long_val = n;
- append_token (&num_tok);
- append_token_of_type (STRUCT_TOKEN);
-
- get_token (ctok);
-}
-
-/* struct-declaration:
- * typedef struct { struct-field-list } Type_Name;
- *
- * struct-field-list:
- * struct-field-name , struct-field-list
- * struct-field-name
- *
- * Generates code: "field-name-1" ... "field-name-N" N STRUCT_TOKEN typedef
- */
-static void typedef_definition (_SLang_Token_Type *t)
-{
-
- if (t->type != STRUCT_TOKEN)
- {
- _SLparse_error ("Expecting `struct'", t, 0);
- return;
- }
- get_token (t);
-
- struct_declaration (t);
- if (t->type != IDENT_TOKEN)
- {
- _SLparse_error ("Expecting identifier", t, 0);
- return;
- }
-
- t->type = STRING_TOKEN;
- append_token (t);
- append_token_of_type (TYPEDEF_TOKEN);
-
- get_token (t);
-}
-
-/* function-args:
- * ( args-dec-opt )
- *
- * args-decl-opt:
- * identifier
- * args-decl , identifier
- */
-static void define_function_args (_SLang_Token_Type *ctok)
-{
- if (CPAREN_TOKEN == get_token (ctok))
- {
- get_token (ctok);
- return;
- }
-
- compile_token_of_type(OBRACKET_TOKEN);
-
- while ((SLang_Error == 0)
- && (ctok->type == IDENT_TOKEN))
- {
- compile_token (ctok);
- if (COMMA_TOKEN != get_token (ctok))
- break;
-
- get_token (ctok);
- }
-
- if (CPAREN_TOKEN != ctok->type)
- {
- _SLparse_error("Expecting )", ctok, 0);
- return;
- }
- compile_token_of_type(CBRACKET_TOKEN);
-
- get_token (ctok);
-}
-
-void try_multiple_assignment (_SLang_Token_Type *ctok)
-{
- /* This is called with ctok->type == OPAREN_TOKEN. We have no idea
- * what follows this. There are various possibilities such as:
- * @ () = x;
- * @ ( expression ) = x;
- * @ ( expression ) ;
- * @ ( expression ) OP expression;
- * @ ( expression ) [expression] = expression;
- * and only the first two constitute a multiple assignment. The last
- * two forms create the difficulty.
- *
- * Here is the plan. First parse (expression) and then check next token.
- * If it is an equal operator, then it will be parsed as a multiple
- * assignment. In fact, that is the easy part.
- *
- * The hard part stems from the fact that by parsing (expression), we
- * have effectly truncated the parse if (expression) is part of a binary
- * or unary expression. Somehow, the parsing must be resumed. The trick
- * here is to use a dummy literal that generates no code: NO_OP_LITERAL
- * Using it, we just call 'expression' and proceed.
- */
-
- if (NULL == push_token_list ())
- return;
-
- get_token (ctok);
-
- if (ctok->type != CPAREN_TOKEN)
- {
- expression_with_commas (ctok, 1);
- if (ctok->type != CPAREN_TOKEN)
- {
- _SLparse_error ("Expecting )", ctok, 0);
- return;
- }
- }
-
- switch (get_token (ctok))
- {
- case ASSIGN_TOKEN:
- case PLUSEQS_TOKEN:
- case MINUSEQS_TOKEN:
- case TIMESEQS_TOKEN:
- case DIVEQS_TOKEN:
- case BOREQS_TOKEN:
- case BANDEQS_TOKEN:
- do_multiple_assignment (ctok);
- pop_token_list (1);
- break;
-
- default:
- unget_token (ctok);
- ctok->type = NO_OP_LITERAL;
- expression (ctok);
- compile_token_list ();
- break;
- }
-}
-
-/* Note: expression never gets compiled directly. Rather, it gets
- * appended to the token list and then compiled by a calling
- * routine.
- */
-
-/* expression:
- * simple_expression
- * simple-expression , expression
- * <none>
- */
-static void expression_with_commas (_SLang_Token_Type *ctok, int save_comma)
-{
- while (SLang_Error == 0)
- {
- if (ctok->type != COMMA_TOKEN)
- {
- if (ctok->type == CPAREN_TOKEN)
- return;
-
- simple_expression (ctok);
-
- if (ctok->type != COMMA_TOKEN)
- break;
- }
- if (save_comma) append_token (ctok);
- get_token (ctok);
- }
-}
-
-static void expression (_SLang_Token_Type *ctok)
-{
- expression_with_commas (ctok, 0);
-}
-
-/* priority levels of binary operations */
-static unsigned char Binop_Level[] =
-{
-/* ADD_TOKEN */ 2,
-/* SUB_TOKEN */ 2,
-/* MUL_TOKEN */ 1,
-/* DIV_TOKEN */ 1,
-/* LT_TOKEN */ 4,
-/* LE_TOKEN */ 4,
-/* GT_TOKEN */ 4,
-/* GE_TOKEN */ 4,
-/* EQ_TOKEN */ 5,
-/* NE_TOKEN */ 5,
-/* AND_TOKEN */ 9,
-/* OR_TOKEN */ 10,
-/* MOD_TOKEN */ 1,
-/* BAND_TOKEN */ 6,
-/* SHL_TOKEN */ 3,
-/* SHR_TOKEN */ 3,
-/* BXOR_TOKEN */ 7,
-/* BOR_TOKEN */ 8,
-/* POUND_TOKEN */ 1 /* Matrix Multiplication */
-};
-
-/* % Note: simple-expression groups operators OP1 at same level. The
- * % actual implementation will not do this.
- * simple-expression:
- * unary-expression
- * binary-expression BINARY-OP unary-expression
- * andelse xxelse-expression-list
- * orelse xxelse-expression-list
- *
- * xxelse-expression-list:
- * { expression }
- * xxelse-expression-list { expression }
- * binary-expression:
- * unary-expression
- * unary-expression BINARY-OP binary-expression
- */
-static void simple_expression (_SLang_Token_Type *ctok)
-{
- unsigned char type;
- unsigned char op_stack [64];
- unsigned char level_stack [64];
- unsigned char level;
- unsigned int op_num;
-
- switch (ctok->type)
- {
- case ANDELSE_TOKEN:
- case ORELSE_TOKEN:
- type = ctok->type;
- if (OBRACE_TOKEN != get_token (ctok))
- {
- _SLparse_error ("Expecting '{'", ctok, 0);
- return;
- }
-
- while (ctok->type == OBRACE_TOKEN)
- {
- append_token (ctok);
- get_token (ctok);
- expression (ctok);
- if (CBRACE_TOKEN != ctok->type)
- {
- _SLparse_error("Expecting }", ctok, 0);
- return;
- }
- append_token (ctok);
- get_token (ctok);
- }
- append_token_of_type (type);
- return;
-
- /* avoid unary-expression if possible */
- case STRING_TOKEN:
- append_token (ctok);
- get_token (ctok);
- break;
-
- default:
- unary_expression (ctok);
- break;
- }
-
- if (SEMICOLON_TOKEN == (type = ctok->type))
- return;
-
- op_num = 0;
-
- while ((SLang_Error == 0)
- && (IS_BINARY_OP(type)))
- {
- level = Binop_Level[type - FIRST_BINARY_OP];
-
- while ((op_num > 0) && (level_stack [op_num - 1] <= level))
- append_token_of_type (op_stack [--op_num]);
-
- if (op_num >= sizeof (op_stack) - 1)
- {
- _SLparse_error ("Binary op stack overflow", ctok, 0);
- return;
- }
-
- op_stack [op_num] = type;
- level_stack [op_num] = level;
- op_num++;
-
- get_token (ctok);
- unary_expression (ctok);
- type = ctok->type;
- }
-
- while (op_num > 0)
- append_token_of_type(op_stack[--op_num]);
-}
-
-/* unary-expression:
- * postfix-expression
- * ++ postfix-expression
- * -- postfix-expression
- * case unary-expression
- * OP3 unary-expression
- * (OP3: + - ~ & not @)
- *
- * Note: This grammar permits: case case case WHATEVER
- */
-static void unary_expression (_SLang_Token_Type *ctok)
-{
- unsigned char save_unary_ops [16];
- unsigned int num_unary_ops;
- unsigned char type;
- _SLang_Token_Type *last_token;
-
- num_unary_ops = 0;
- while (SLang_Error == 0)
- {
- type = ctok->type;
-
- switch (type)
- {
- case PLUSPLUS_TOKEN:
- case MINUSMINUS_TOKEN:
- get_token (ctok);
- postfix_expression (ctok);
- check_for_lvalue (type, NULL);
- goto out_of_switch;
-
- case ADD_TOKEN:
- get_token (ctok); /* skip it-- it's unary here */
- break;
-
- case SUB_TOKEN:
- (void) get_token (ctok);
- if (IS_INTEGER_TOKEN (ctok->type))
- {
- ctok->v.long_val = -ctok->v.long_val;
- break;
- }
-
- if (num_unary_ops == 16)
- goto stack_overflow_error;
- save_unary_ops [num_unary_ops++] = CHS_TOKEN;
- break;
-
- case DEREF_TOKEN:
- case BNOT_TOKEN:
- case NOT_TOKEN:
- case CASE_TOKEN:
- if (num_unary_ops == 16)
- goto stack_overflow_error;
-
- save_unary_ops [num_unary_ops++] = type;
- get_token (ctok);
- break;
-
- /* Try to avoid ->postfix_expression->primary_expression
- * subroutine calls.
- */
- case STRING_TOKEN:
- append_token (ctok);
- get_token (ctok);
- goto out_of_switch;
-
- default:
- postfix_expression (ctok);
- goto out_of_switch;
- }
- }
-
- out_of_switch:
- if (num_unary_ops == 0)
- return;
-
- if ((DEREF_TOKEN == save_unary_ops[num_unary_ops - 1])
- && (NULL != (last_token = get_last_token ()))
- && (IS_ASSIGN_TOKEN(last_token->type)))
- {
- /* FIXME: Priority=medium
- * This needs generalized so that things like @a.y = 1 will work properly.
- */
- if ((num_unary_ops != 1)
- || (last_token->type != _SCALAR_ASSIGN_TOKEN))
- {
- SLang_verror (SL_NOT_IMPLEMENTED,
- "Only derefence assignments to simple variables are possible");
- return;
- }
-
- last_token->type += (_DEREF_ASSIGN_TOKEN - _SCALAR_ASSIGN_TOKEN);
- return;
- }
-
- while (num_unary_ops)
- {
- num_unary_ops--;
- append_token_of_type (save_unary_ops [num_unary_ops]);
- }
- return;
-
- stack_overflow_error:
- _SLparse_error ("Too many unary operators.", ctok, 0);
-}
-
-static int combine_namespace_tokens (_SLang_Token_Type *a, _SLang_Token_Type *b)
-{
- char *sa, *sb, *sc;
- unsigned int lena, lenb;
- unsigned long hash;
-
- /* This is somewhat of a hack. Combine the TWO identifier names
- * (NAMESPACE) and (name) into the form NAMESPACE->name. Then when the
- * byte compiler compiles the object it will not be found. It will then
- * check for this hack and make the appropriate namespace lookup.
- */
-
- sa = a->v.s_val;
- sb = b->v.s_val;
-
- lena = strlen (sa);
- lenb = strlen (sb);
-
- sc = SLmalloc (lena + lenb + 3);
- if (sc == NULL)
- return -1;
-
- strcpy (sc, sa);
- strcpy (sc + lena, "->");
- strcpy (sc + lena + 2, sb);
-
- sb = _SLstring_make_hashed_string (sc, lena + lenb + 2, &hash);
- SLfree (sc);
- if (sb == NULL)
- return -1;
-
- /* I can free this string because no other token should be referencing it.
- * (num_refs == 1).
- */
- _SLfree_hashed_string (sa, lena, a->hash);
- a->v.s_val = sb;
- a->hash = hash;
-
- return 0;
-}
-
-static void append_identifier_token (_SLang_Token_Type *ctok)
-{
- _SLang_Token_Type *last_token;
-
- append_token (ctok);
-
- if (NAMESPACE_TOKEN != get_token (ctok))
- return;
-
- if (IDENT_TOKEN != get_token (ctok))
- {
- _SLparse_error ("Expecting name-space identifier", ctok, 0);
- return;
- }
-
- last_token = get_last_token ();
- if (-1 == combine_namespace_tokens (last_token, ctok))
- return;
-
- (void) get_token (ctok);
-}
-
-static int get_identifier_expr_token (_SLang_Token_Type *ctok)
-{
- _SLang_Token_Type next_token;
-
- if (IDENT_TOKEN != get_identifier_token (ctok))
- return -1;
-
- init_token (&next_token);
- if (NAMESPACE_TOKEN != get_token (&next_token))
- {
- unget_token (&next_token);
- return IDENT_TOKEN;
- }
-
- if (IDENT_TOKEN != get_identifier_token (&next_token))
- {
- free_token (&next_token);
- return -1;
- }
-
- if (-1 == combine_namespace_tokens (ctok, &next_token))
- {
- free_token (&next_token);
- return -1;
- }
- free_token (&next_token);
- return IDENT_TOKEN;
-}
-
-/* postfix-expression:
- * primary-expression
- * postfix-expression [ expression ]
- * postfix-expression ( function-args-expression )
- * postfix-expression . identifier
- * postfix-expression ^ unary-expression
- * postfix-expression ++
- * postfix-expression --
- * postfix-expression = simple-expression
- * postfix-expression += simple-expression
- * postfix-expression -= simple-expression
- *
- * primary-expression:
- * literal
- * identifier-expr
- * ( expression_opt )
- * [ inline-array-expression ]
- * &identifier-expr
- * struct-definition
- * __tmp(identifier-expr)
- *
- * identifier-expr:
- * identifier
- * identifier->identifier
- */
-static void postfix_expression (_SLang_Token_Type *ctok)
-{
- unsigned int start_pos, end_pos;
- unsigned char type;
-
- if (Token_List == NULL)
- return;
-
- start_pos = Token_List->len;
-
- switch (ctok->type)
- {
- case IDENT_TOKEN:
- append_identifier_token (ctok);
- break;
-
- case CHAR_TOKEN:
- case SHORT_TOKEN:
- case INT_TOKEN:
- case LONG_TOKEN:
- case UCHAR_TOKEN:
- case USHORT_TOKEN:
- case UINT_TOKEN:
- case ULONG_TOKEN:
- case STRING_TOKEN:
- case BSTRING_TOKEN:
-#ifdef SLANG_HAS_FLOAT
- case DOUBLE_TOKEN:
- case FLOAT_TOKEN:
-#endif
-#ifdef SLANG_HAS_COMPLEX
- case COMPLEX_TOKEN:
-#endif
- append_token (ctok);
- get_token (ctok);
- break;
-
- case OPAREN_TOKEN:
- if (CPAREN_TOKEN != get_token (ctok))
- {
- expression (ctok);
- if (ctok->type != CPAREN_TOKEN)
- _SLparse_error("Expecting )", ctok, 0);
- }
- get_token (ctok);
- break;
-
- case BAND_TOKEN:
- if (IDENT_TOKEN != get_identifier_expr_token (ctok))
- break;
-
- ctok->type = _REF_TOKEN;
- append_token (ctok);
- get_token (ctok);
- break;
-
- case OBRACKET_TOKEN:
- get_token (ctok);
- inline_array_expression (ctok);
- break;
-
- case NO_OP_LITERAL:
- /* This token was introduced by try_multiple_assignment. There,
- * a new token_list was pushed and (expression) was evaluated.
- * NO_OP_LITERAL represents the result of expression. However,
- * we need to tweak the start_pos variable to point to the beginning
- * of the token list to complete the equivalence.
- */
- start_pos = 0;
- get_token (ctok);
- break;
-
- case STRUCT_TOKEN:
- get_token (ctok);
- struct_declaration (ctok);
- break;
-
- case TMP_TOKEN:
- get_token (ctok);
- if (ctok->type == OPAREN_TOKEN)
- {
- if (IDENT_TOKEN == get_identifier_expr_token (ctok))
- {
- ctok->type = TMP_TOKEN;
- append_token (ctok);
- get_token (ctok);
- if (ctok->type == CPAREN_TOKEN)
- {
- get_token (ctok);
- break;
- }
- }
- }
- _SLparse_error ("Expecting form __tmp(NAME)", ctok, 0);
- break;
-
- default:
- if (IS_INTERNAL_FUNC(ctok->type))
- {
- append_token (ctok);
- get_token (ctok);
- }
- else
- _SLparse_error("Expecting a PRIMARY", ctok, 0);
- }
-
- while (SLang_Error == 0)
- {
- end_pos = Token_List->len;
- type = ctok->type;
- switch (type)
- {
- case OBRACKET_TOKEN: /* X[args] ==> [args] X ARRAY */
- get_token (ctok);
- append_token_of_type (ARG_TOKEN);
- if (ctok->type != CBRACKET_TOKEN)
- array_index_expression (ctok);
-
- if (ctok->type != CBRACKET_TOKEN)
- {
- _SLparse_error ("Expecting ']'", ctok, 0);
- return;
- }
- get_token (ctok);
- /* append_token_of_type (EARG_TOKEN); -- ARRAY_TOKEN implicitely does this */
- token_list_element_exchange (start_pos, end_pos);
- append_token_of_type (ARRAY_TOKEN);
- break;
-
- case OPAREN_TOKEN:
- /* f(args) ==> args f */
- if (CPAREN_TOKEN != get_token (ctok))
- {
- function_args_expression (ctok, 1);
- token_list_element_exchange (start_pos, end_pos);
- }
- else get_token (ctok);
- break;
-
- case DOT_TOKEN:
- /* S.a ==> "a" S DOT
- * This means that if S is X[b], then X[b].a ==> a b X ARRAY DOT
- * and f(a).X[b].c ==> "c" b "X" a f . ARRAY .
- * Also, f(a).X[b] = g(x); ==> x g b "X" a f .
- */
- if (IDENT_TOKEN != get_identifier_token (ctok))
- return;
-
- ctok->type = DOT_TOKEN;
- append_token (ctok);
- get_token (ctok);
- break;
-
- case PLUSPLUS_TOKEN:
- case MINUSMINUS_TOKEN:
- check_for_lvalue (type, NULL);
- get_token (ctok);
- break;
-
- case ASSIGN_TOKEN:
- case PLUSEQS_TOKEN:
- case MINUSEQS_TOKEN:
- case TIMESEQS_TOKEN:
- case DIVEQS_TOKEN:
- case BOREQS_TOKEN:
- case BANDEQS_TOKEN:
- check_for_lvalue (type, NULL);
- get_token (ctok);
- simple_expression (ctok);
- token_list_element_exchange (start_pos, end_pos);
- break;
-
- case POW_TOKEN:
- get_token (ctok);
- unary_expression (ctok);
- append_token_of_type (POW_TOKEN);
- break;
-
- default:
- return;
- }
- }
-}
-
-static void function_args_expression (_SLang_Token_Type *ctok, int handle_num_args)
-{
- unsigned char last_type, this_type;
-
- if (handle_num_args) append_token_of_type (ARG_TOKEN);
-
- last_type = COMMA_TOKEN;
-
- while (SLang_Error == 0)
- {
- this_type = ctok->type;
-
- switch (this_type)
- {
- case COMMA_TOKEN:
- if (last_type == COMMA_TOKEN)
- append_token_of_type (_NULL_TOKEN);
- get_token (ctok);
- break;
-
- case CPAREN_TOKEN:
- if (last_type == COMMA_TOKEN)
- append_token_of_type (_NULL_TOKEN);
- if (handle_num_args) append_token_of_type (EARG_TOKEN);
- get_token (ctok);
- return;
-
- default:
- simple_expression (ctok);
- if ((ctok->type != COMMA_TOKEN)
- && (ctok->type != CPAREN_TOKEN))
- {
- _SLparse_error ("Expecting ')'", ctok, 0);
- break;
- }
- }
- last_type = this_type;
- }
-}
-
-static int check_for_lvalue (unsigned char eqs_type, _SLang_Token_Type *ctok)
-{
- unsigned char type;
-
- if ((ctok == NULL)
- && (NULL == (ctok = get_last_token ())))
- return -1;
-
- type = ctok->type;
-
- eqs_type -= ASSIGN_TOKEN;
-
- if (type == IDENT_TOKEN)
- eqs_type += _SCALAR_ASSIGN_TOKEN;
- else if (type == ARRAY_TOKEN)
- eqs_type += _ARRAY_ASSIGN_TOKEN;
- else if (type == DOT_TOKEN)
- eqs_type += _STRUCT_ASSIGN_TOKEN;
- else
- {
- _SLparse_error ("Expecting LVALUE", ctok, 0);
- return -1;
- }
-
- ctok->type = eqs_type;
- return 0;
-}
-
-static void array_index_expression (_SLang_Token_Type *ctok)
-{
- unsigned int num_commas;
-
- num_commas = 0;
- while (1)
- {
- switch (ctok->type)
- {
- case COLON_TOKEN:
- if (num_commas)
- _SLparse_error ("Misplaced ':'", ctok, 0);
- return;
-
- case TIMES_TOKEN:
- append_token_of_type (_INLINE_WILDCARD_ARRAY_TOKEN);
- get_token (ctok);
- break;
-
- case COMMA_TOKEN:
- _SLparse_error ("Misplaced ','", ctok, 0);
- return;
-
- default:
- simple_expression (ctok);
- }
-
- if (ctok->type != COMMA_TOKEN)
- return;
- num_commas++;
- get_token (ctok);
- }
-}
-
-/* inline-array-expression:
- * array_index_expression
- * simple_expression : simple_expression
- * simple_expression : simple_expression : simple_expression
- */
-static void inline_array_expression (_SLang_Token_Type *ctok)
-{
- int num_colons = 0;
-
- append_token_of_type (ARG_TOKEN);
-
- if (ctok->type == COLON_TOKEN) /* [:...] */
- append_token_of_type (_NULL_TOKEN);
- else if (ctok->type != CBRACKET_TOKEN)
- array_index_expression (ctok);
-
- if (ctok->type == COLON_TOKEN)
- {
- num_colons++;
- if ((COLON_TOKEN == get_token (ctok))
- || (ctok->type == CBRACKET_TOKEN))
- append_token_of_type (_NULL_TOKEN);
- else
- simple_expression (ctok);
-
- if (ctok->type == COLON_TOKEN)
- {
- num_colons++;
- get_token (ctok);
- simple_expression (ctok);
- }
- }
-
- if (ctok->type != CBRACKET_TOKEN)
- {
- _SLparse_error ("Expecting ']'", ctok, 0);
- return;
- }
-
- /* append_token_of_type (EARG_TOKEN); */
- if (num_colons)
- append_token_of_type (_INLINE_IMPLICIT_ARRAY_TOKEN);
- else
- append_token_of_type (_INLINE_ARRAY_TOKEN);
- get_token (ctok);
-}
-
-static void do_multiple_assignment (_SLang_Token_Type *ctok)
-{
- _SLang_Token_Type *s;
- unsigned int i, k, len;
- unsigned char assign_type;
-
- assign_type = ctok->type;
-
- /* The LHS token list has already been pushed. Here we do the RHS
- * so push to another token list, process it, then come back to
- * LHS for assignment.
- */
- if (NULL == push_token_list ())
- return;
-
- get_token (ctok);
- expression (ctok);
- compile_token_list ();
-
- if (SLang_Error)
- return;
-
- /* Finally compile the LHS of the assignment expression
- * that has been saved.
- */
- s = Token_List->stack;
- len = Token_List->len;
-
- if (len == 0)
- {
- compile_token_of_type (POP_TOKEN);
- return;
- }
-
- while (len > 0)
- {
- /* List is of form:
- * a , b, c d e, f , g , , , h ,
- * The missing expressions will be replaced by a POP
- * ,,a
- */
-
- /* Start from back looking for a COMMA */
- k = len - 1;
- if (s[k].type == COMMA_TOKEN)
- {
- compile_token_of_type (POP_TOKEN);
- len = k;
- continue;
- }
-
- if (-1 == check_for_lvalue (assign_type, s + k))
- return;
-
- i = 0;
- while (1)
- {
- if (s[k].type == COMMA_TOKEN)
- {
- i = k + 1;
- break;
- }
-
- if (k == 0)
- break;
-
- k--;
- }
-
- while (i < len)
- {
- compile_token (s + i);
- i++;
- }
-
- len = k;
- }
-
- if (s[0].type == COMMA_TOKEN)
- compile_token_of_type (POP_TOKEN);
-}
-
diff --git a/mdk-stage1/slang/slpath.c b/mdk-stage1/slang/slpath.c
deleted file mode 100644
index 831bd34df..000000000
--- a/mdk-stage1/slang/slpath.c
+++ /dev/null
@@ -1,344 +0,0 @@
-/* Pathname and filename functions */
-/* Copyright (c) 1998, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#ifdef HAVE_IO_H
-# include <io.h>
-#endif
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <signal.h>
-#include <time.h>
-
-#include <errno.h>
-#include <string.h>
-
-#include "slang.h"
-#include "_slang.h"
-
-/* In this file, all file names are assumed to be specified in the Unix
- * format, or in the native format.
- *
- * Aboout VMS:
- * VMS pathnames are a mess. In general, they look like
- * node::device:[dir.dir]file.ext;version
- * and I do not know of a well-defined Unix representation for them. So,
- * I am going to punt and encourage users to stick to the native
- * representation.
- */
-
-#if defined(IBMPC_SYSTEM)
-# define PATH_SEP '\\'
-# define DRIVE_SPECIFIER ':'
-# define SEARCH_PATH_DELIMITER ';'
-# define THIS_DIR_STRING "."
-#else
-# if defined(VMS)
-# define PATH_SEP ']'
-# define DRIVE_SPECIFIER ':'
-# define SEARCH_PATH_DELIMITER ' '
-# define THIS_DIR_STRING "[]" /* Is this correct?? */
-# else
-# define PATH_SEP '/'
-# define UNIX_PATHNAMES_OK
-# define SEARCH_PATH_DELIMITER ':'
-# define THIS_DIR_STRING "."
-# endif
-#endif
-
-#ifdef UNIX_PATHNAMES_OK
-# define IS_PATH_SEP(x) ((x) == PATH_SEP)
-#else
-# define IS_PATH_SEP(x) (((x) == PATH_SEP) || ((x) == '/'))
-#endif
-
-/* If file is /a/b/c/basename, this function returns a pointer to basename */
-char *SLpath_basename (char *file)
-{
- char *b;
-
- if (file == NULL) return NULL;
- b = file + strlen (file);
-
- while (b != file)
- {
- b--;
- if (IS_PATH_SEP(*b))
- return b + 1;
-#ifdef DRIVE_SPECIFIER
- if (*b == DRIVE_SPECIFIER)
- return b + 1;
-#endif
- }
-
- return b;
-}
-
-/* Returns a malloced string */
-char *SLpath_pathname_sans_extname (char *file)
-{
- char *b;
-
- file = SLmake_string (file);
- if (file == NULL)
- return NULL;
-
- b = file + strlen (file);
-
- while (b != file)
- {
- b--;
- if (*b == '.')
- {
- *b = 0;
- return file;
- }
- }
-
- return file;
-}
-
-/* If path looks like: A/B/C/D/whatever, it returns A/B/C/D as a malloced
- * string.
- */
-char *SLpath_dirname (char *file)
-{
- char *b;
-
- if (file == NULL) return NULL;
- b = file + strlen (file);
-
- while (b != file)
- {
- b--;
- if (IS_PATH_SEP(*b))
- {
- if (b == file) b++;
- break;
- }
-
-#ifdef DRIVE_SPECIFIER
- if (*b == DRIVE_SPECIFIER)
- {
- b++;
- break;
- }
-#endif
- }
-
- if (b == file)
- return SLmake_string (THIS_DIR_STRING);
-
- return SLmake_nstring (file, (unsigned int) (b - file));
-}
-
-/* Note: VMS filenames also contain version numbers. The caller will have
- * to deal with that.
- *
- * The extension includes the '.'. If no extension is present, "" is returned.
- */
-char *SLpath_extname (char *file)
-{
- char *b;
-
- if (NULL == (file = SLpath_basename (file)))
- return NULL;
-
- b = file + strlen (file);
- while (b != file)
- {
- b--;
- if (*b == '.')
- return b;
- }
-
- if (*b == '.')
- return b;
-
- /* Do not return a literal "" */
- return file + strlen (file);
-}
-
-#ifdef IBMPC_SYSTEM
-static void convert_slashes (char *f)
-{
- while (*f)
- {
- if (*f == '/') *f = PATH_SEP;
- f++;
- }
-}
-#endif
-
-int SLpath_is_absolute_path (char *name)
-{
-#ifdef UNIX_PATHNAMES_OK
- return (*name == '/');
-#else
- if (IS_PATH_SEP (*name))
- return 1;
-
-# ifdef DRIVE_SPECIFIER
- /* Look for a drive specifier */
- while (*name)
- {
- if (*name == DRIVE_SPECIFIER)
- return 1;
-
- name++;
- }
-# endif
-
- return 0;
-#endif
-}
-
-/* This returns a MALLOCED string */
-char *SLpath_dircat (char *dir, char *name)
-{
- unsigned int len, dirlen;
- char *file;
-#ifndef VMS
- int requires_fixup;
-#endif
-
- if (name == NULL)
- name = "";
-
- if ((dir == NULL) || (SLpath_is_absolute_path (name)))
- dir = "";
-
- /* Both VMS and MSDOS have default directories associated with each drive.
- * That is, the meaning of something like C:X depends upon more than just
- * the syntax of the string. Since this concept has more power under VMS
- * it will be honored here. However, I am going to treat C:X as C:\X
- * under MSDOS.
- *
- * Note!!!
- * VMS has problems of its own regarding path names, so I am simply
- * going to strcat. Hopefully the VMS RTL is smart enough to deal with
- * the result.
- */
- dirlen = strlen (dir);
-#ifndef VMS
- requires_fixup = (dirlen && (0 == IS_PATH_SEP(dir[dirlen - 1])));
-#endif
-
- len = dirlen + strlen (name) + 2;
- if (NULL == (file = SLmalloc (len)))
- return NULL;
-
- strcpy (file, dir);
-
-#ifndef VMS
- if (requires_fixup)
- file[dirlen++] = PATH_SEP;
-#endif
-
- strcpy (file + dirlen, name);
-
-#if defined(IBMPC_SYSTEM)
- convert_slashes (file);
-#endif
-
- return file;
-}
-
-int SLpath_file_exists (char *file)
-{
- struct stat st;
- int m;
-
-#if defined(__os2__) && !defined(S_IFMT)
-/* IBM VA3 doesn't declare S_IFMT */
-# define S_IFMT (S_IFDIR | S_IFCHR | S_IFREG)
-#endif
-
-#ifdef _S_IFDIR
-# ifndef S_IFDIR
-# define S_IFDIR _S_IFDIR
-# endif
-#endif
-
-#ifndef S_ISDIR
-# ifdef S_IFDIR
-# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
-# else
-# define S_ISDIR(m) 0
-# endif
-#endif
-
- if (file == NULL)
- return -1;
-
- if (stat(file, &st) < 0) return 0;
- m = st.st_mode;
-
- if (S_ISDIR(m)) return (2);
- return 1;
-}
-
-char *SLpath_find_file_in_path (char *path, char *name)
-{
- unsigned int max_path_len;
- unsigned int this_path_len;
- char *file, *dir;
- char *p;
- unsigned int nth;
-
- if ((path == NULL) || (*path == 0)
- || (name == NULL) || (*name == 0))
- return NULL;
-
- max_path_len = 0;
- this_path_len = 0;
- p = path;
- while (*p != 0)
- {
- if (*p++ == SEARCH_PATH_DELIMITER)
- {
- if (this_path_len > max_path_len) max_path_len = this_path_len;
- this_path_len = 0;
- }
- else this_path_len++;
- }
- if (this_path_len > max_path_len) max_path_len = this_path_len;
- max_path_len++;
-
- if (NULL == (dir = SLmalloc (max_path_len)))
- return NULL;
-
- nth = 0;
- while (-1 != SLextract_list_element (path, nth, SEARCH_PATH_DELIMITER,
- dir, max_path_len))
- {
- nth++;
- if (*dir == 0)
- continue;
-
- if (NULL == (file = SLpath_dircat (dir, name)))
- {
- SLfree (dir);
- return NULL;
- }
-
- if (1 == SLpath_file_exists (file))
- {
- SLfree (dir);
- return file;
- }
-
- SLfree (file);
- }
-
- SLfree (dir);
- return NULL;
-}
-
diff --git a/mdk-stage1/slang/slposdir.c b/mdk-stage1/slang/slposdir.c
deleted file mode 100644
index 33799e574..000000000
--- a/mdk-stage1/slang/slposdir.c
+++ /dev/null
@@ -1,1057 +0,0 @@
-/* file intrinsics for S-Lang */
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#if defined(__unix__) || (defined (__os2__) && defined (__EMX__))
-# include <sys/types.h>
-#endif
-
-#ifdef HAVE_IO_H
-# include <io.h> /* for chmod */
-#endif
-
-#if defined(__BORLANDC__)
-# include <process.h>
-# include <dos.h>
-#endif
-
-#ifdef HAVE_FCNTL_H
-# include <fcntl.h>
-#endif
-#ifdef HAVE_SYS_FCNTL_H
-# include <sys/fcntl.h>
-#endif
-
-#ifdef __unix__
-# include <sys/file.h>
-#endif
-
-#if defined(__BORLANDC__)
-# include <dir.h>
-#endif
-
-#if defined(_MSC_VER)
-# include <io.h>
-#endif
-
-#if defined(__DECC) && defined(VMS)
-# include <unixio.h>
-# include <unixlib.h>
-#endif
-
-#ifdef VMS
-# include <stat.h>
-#else
-# include <sys/stat.h>
-#endif
-
-#if defined(VMS)
-# define USE_LISTDIR_INTRINSIC 0
-#else
-# define USE_LISTDIR_INTRINSIC 1
-#endif
-
-#if USE_LISTDIR_INTRINSIC
-
-#if defined(__WIN32__)
-# include <windows.h>
-#else
-# if defined(__OS2__) && defined(__IBMC__)
-# define INCL_DOS
-# define INCL_ERRORS
-# include <os2.h>
-# include <direct.h>
-# include <ctype.h>
-# else
-# ifdef HAVE_DIRENT_H
-# include <dirent.h>
-# else
-# ifdef HAVE_DIRECT_H
-# include <direct.h>
-# else
-# define dirent direct
-# define NEED_D_NAMLEN
-# if HAVE_SYS_NDIR_H
-# include <sys/ndir.h>
-# endif
-# if HAVE_SYS_DIR_H
-# include <sys/dir.h>
-# endif
-# if HAVE_NDIR_H
-# include <ndir.h>
-# endif
-# endif
-# endif
-# endif
-#endif
-
-#endif /* USE_LISTDIR_INTRINSIC */
-
-#include <errno.h>
-
-#include "slang.h"
-#include "_slang.h"
-
-static int push_stat_struct (struct stat *st, int opt_attrs)
-{
- char *field_names [12];
- unsigned char field_types[12];
- VOID_STAR field_values [12];
- int int_values [12];
- unsigned int i;
-
- field_names [0] = "st_dev"; int_values [0] = (int) st->st_dev;
- field_names [1] = "st_ino"; int_values [1] = (int) st->st_ino;
- field_names [2] = "st_mode"; int_values [2] = (int) st->st_mode;
- field_names [3] = "st_nlink"; int_values [3] = (int) st->st_nlink;
- field_names [4] = "st_uid"; int_values [4] = (int) st->st_uid;
- field_names [5] = "st_gid"; int_values [5] = (int) st->st_gid;
- field_names [6] = "st_rdev"; int_values [6] = (int) st->st_rdev;
- field_names [7] = "st_size"; int_values [7] = (int) st->st_size;
- field_names [8] = "st_atime"; int_values [8] = (int) st->st_atime;
- field_names [9] = "st_mtime"; int_values [9] = (int) st->st_mtime;
- field_names [10] = "st_ctime"; int_values [10] = (int) st->st_ctime;
-
- field_names [11] = "st_opt_attrs"; int_values[11] = opt_attrs;
-
- for (i = 0; i < 12; i++)
- {
- field_types [i] = SLANG_INT_TYPE;
- field_values [i] = (VOID_STAR) (int_values + i);
- }
-
- return SLstruct_create_struct (12, field_names, field_types, field_values);
-}
-
-static void stat_cmd (char *file)
-{
- struct stat st;
- int status;
- int opt_attrs;
-
- status = stat (file, &st);
-
-#if defined(__MSDOS__) || defined(__WIN32__)
- if (status == -1)
- {
- unsigned int len = strlen (file);
- if (len && ((file[len-1] == '\\') || (file[len-1] == '/')))
- {
- file = SLmake_nstring (file, len-1);
- if (file == NULL)
- return;
-
- status = stat (file, &st);
- SLfree (file);
- }
- }
-#endif
- if (status == -1)
- {
- _SLerrno_errno = errno;
- SLang_push_null ();
- return;
- }
-
-#ifdef __WIN32__
- opt_attrs = GetFileAttributes (file);
-#else
- opt_attrs = 0;
-#endif
-
- push_stat_struct (&st, opt_attrs);
-}
-
-static void lstat_cmd (char *file)
-{
-#ifdef HAVE_LSTAT
- struct stat st;
- int opt_attrs;
-
- if (-1 == lstat (file, &st))
- {
- _SLerrno_errno = errno;
- SLang_push_null ();
- return;
- }
-
-#ifdef __WIN32__
- opt_attrs = GetFileAttributes (file);
-#else
- opt_attrs = 0;
-#endif
-
- push_stat_struct (&st, opt_attrs);
-#else
- stat_cmd (file);
-#endif
-}
-
-/* Well, it appears that on some systems, these are not defined. Here I
- * provide them. These are derived from the Linux stat.h file.
- */
-
-#ifdef __os2__
-# ifdef __IBMC__
-/* IBM VA3 doesn't declare S_IFMT */
-# define S_IFMT (S_IFDIR | S_IFCHR | S_IFREG)
-# endif
-#endif
-
-#ifndef S_ISLNK
-# ifdef S_IFLNK
-# define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
-# else
-# define S_ISLNK(m) 0
-# endif
-#endif
-
-#ifndef S_ISREG
-# ifdef S_IFREG
-# define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
-# else
-# define S_ISREG(m) 0
-# endif
-#endif
-
-#ifndef S_ISDIR
-# ifdef S_IFDIR
-# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
-# else
-# define S_ISDIR(m) 0
-# endif
-#endif
-
-#ifndef S_ISCHR
-# ifdef S_IFCHR
-# define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
-# else
-# define S_ISCHR(m) 0
-# endif
-#endif
-
-#ifndef S_ISBLK
-# ifdef S_IFBLK
-# define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
-# else
-# define S_ISBLK(m) 0
-# endif
-#endif
-
-#ifndef S_ISFIFO
-# ifdef S_IFIFO
-# define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
-# else
-# define S_ISFIFO(m) 0
-# endif
-#endif
-
-#ifndef S_ISSOCK
-# ifdef S_IFSOCK
-# define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
-# else
-# define S_ISSOCK(m) 0
-# endif
-#endif
-
-static char stat_is_cmd (char *what, int *mode_ptr)
-{
- int ret;
- int st_mode = *mode_ptr;
-
- if (!strcmp (what, "sock")) ret = S_ISSOCK(st_mode);
- else if (!strcmp (what, "fifo")) ret = S_ISFIFO(st_mode);
- else if (!strcmp (what, "blk")) ret = S_ISBLK(st_mode);
- else if (!strcmp (what, "chr")) ret = S_ISCHR(st_mode);
- else if (!strcmp (what, "dir")) ret = S_ISDIR(st_mode);
- else if (!strcmp (what, "reg")) ret = S_ISREG(st_mode);
- else if (!strcmp (what, "lnk")) ret = S_ISLNK(st_mode);
- else
- {
- SLang_verror (SL_INVALID_PARM, "stat_is: Unrecognized type: %s", what);
- return -1;
- }
-
- return (char) (ret != 0);
-}
-
-#ifdef HAVE_READLINK
-static void readlink_cmd (char *s)
-{
- char buf[2048];
- int n;
-
- n = readlink (s, buf, sizeof (buf)-1);
- if (n == -1)
- {
- _SLerrno_errno = errno;
- s = NULL;
- }
- else
- {
- buf[n] = 0;
- s = buf;
- }
-
- (void) SLang_push_string (s);
-}
-#endif
-
-static int chmod_cmd (char *file, int *mode)
-{
- if (-1 == chmod(file, (mode_t) *mode))
- {
- _SLerrno_errno = errno;
- return -1;
- }
- return 0;
-}
-
-#ifdef HAVE_CHOWN
-static int chown_cmd (char *file, int *owner, int *group)
-{
- int ret;
-
- if (-1 == (ret = chown(file, (uid_t) *owner, (gid_t) *group)))
- _SLerrno_errno = errno;
- return ret;
-}
-#endif
-
-/* add trailing slash to dir */
-static void fixup_dir (char *dir)
-{
-#ifndef VMS
- int n;
-
- if ((n = strlen(dir)) > 1)
- {
- n--;
-#if defined(IBMPC_SYSTEM)
- if ( dir[n] != '/' && dir[n] != '\\' )
- strcat(dir, "\\" );
-#else
- if (dir[n] != '/' )
- strcat(dir, "/" );
-#endif
- }
-#endif /* !VMS */
-}
-
-static void slget_cwd (void)
-{
- char cwd[1024];
- char *p;
-
-#ifndef HAVE_GETCWD
- p = getwd (cwd);
-#else
-# if defined (__EMX__)
- p = _getcwd2(cwd, 1022); /* includes drive specifier */
-# else
- p = getcwd(cwd, 1022); /* djggp includes drive specifier */
-# endif
-#endif
-
- if (p == NULL)
- {
- _SLerrno_errno = errno;
- SLang_push_null ();
- return;
- }
-
-#ifndef VMS
-#ifdef __GO32__
- /* You never know about djgpp since it favors unix */
- {
- char ch;
- p = cwd;
- while ((ch = *p) != 0)
- {
- if (ch == '/') *p = '\\';
- p++;
- }
- }
-#endif
- fixup_dir (cwd);
-#endif
- SLang_push_string (cwd);
-}
-
-static int chdir_cmd (char *s)
-{
- int ret;
-
- while (-1 == (ret = chdir (s)))
- {
-#ifdef EINTR
- if (errno == EINTR)
- continue;
-#endif
- _SLerrno_errno = errno;
- break;
- }
- return ret;
-}
-
-#ifdef VMS
-static int remove_cmd (char *);
-/* If the file looks like xxx, then change it to xxx.dir. If
- * it looks like A:[B.xxx] then change it to A:[B]xxx.dir.
- */
-
-static char *vms_convert_dirspec_to_vms_dir (char *str)
-{
- char *s;
- char *version;
- unsigned int len;
- char *dot;
-
- len = strlen (str);
-
- version = strchr (str, ';');
- if (version == NULL)
- version = str + len;
- /* version points to the version of the input string */
-
-
- if (NULL == (s = SLmalloc (len + 8)))/* allow extra space to work with */
- return NULL;
-
- len = (unsigned int) (version - str);
- strncpy (s, str, len);
- s[len] = 0;
- str = s;
-
- /* Lowercase the whole thing */
- while (*s != 0)
- {
- *s = LOWER_CASE(*s);
- s++;
- }
-
- if ((s > str)
- && (s[-1] != ']'))
- {
- if ((s >= str + 4)
- && (0 == strcmp (s - 4, ".dir")))
- s -= 4;
- goto add_dir_version;
- }
-
- /* Check for one of two possibilities:
- *
- * dev:[x] --> dev:x
- * dev:[a.x] --> dev:[a]x
- */
-
- if (NULL == (dot = strchr (str, '.')))
- {
- /* First possibility */
- if (NULL == (s = strchr (str, '[')))
- return str; /* let someone else figure this out */
- while (s[1] != ']')
- {
- s[0] = s[1];
- s++;
- }
- *s = 0;
- goto add_dir_version;
- }
-
- while (NULL != (s = strchr (dot + 1, '.')))
- dot = s;
-
- *dot = ']';
- s = str + (len - 1);
-
- /* Drop */
-
- add_dir_version:
- strcpy (s, ".dir");
- strcpy (s+4, version);
- return str;
-}
-#endif
-
-static int rmdir_cmd (char *s)
-{
-#ifdef VMS
- int status;
-
- if (NULL == (s = vms_convert_dirspec_to_vms_dir (s)))
- return -1;
-
- status = remove_cmd (s);
- SLfree (s);
-
- return status;
-
-#else
- int ret;
-
- while (-1 == (ret = rmdir (s)))
- {
-#ifdef EINTR
- if (errno == EINTR)
- continue;
-#endif
- _SLerrno_errno = errno;
- break;
- }
- return ret;
-#endif
-}
-
-static int remove_cmd (char *s)
-{
- int ret;
-#ifdef VMS
-# define REMOVE delete
-#else
-# ifdef REAL_UNIX_SYSTEM
-# define REMOVE unlink
-# else
-# define REMOVE remove
-# endif
-#endif
-
- while (-1 == (ret = REMOVE (s)))
- {
-#ifdef EINTR
- if (errno == EINTR)
- continue;
-#endif
- _SLerrno_errno = errno;
- break;
- }
- return ret;
-}
-
-static int rename_cmd (char *oldpath, char *newpath)
-{
- int ret;
- while (-1 == (ret = rename (oldpath, newpath)))
- {
-#ifdef EINTR
- if (errno == EINTR)
- continue;
-#endif
- _SLerrno_errno = errno;
- break;
- }
- return ret;
-}
-
-static int mkdir_cmd (char *s, int *mode_ptr)
-{
- int ret;
-
- (void) mode_ptr;
- errno = 0;
-
-#if defined (__MSDOS__) && !defined(__GO32__)
-# define MKDIR(x,y) mkdir(x)
-#else
-# if defined (__os2__) && !defined (__EMX__)
-# define MKDIR(x,y) mkdir(x)
-# else
-# if defined (__WIN32__) && !defined (__CYGWIN32__)
-# define MKDIR(x,y) mkdir(x)
-# else
-# define MKDIR mkdir
-# endif
-# endif
-#endif
-
- while (-1 == (ret = MKDIR(s, *mode_ptr)))
- {
-#ifdef EINTR
- if (errno == EINTR)
- continue;
-#endif
- _SLerrno_errno = errno;
- break;
- }
- return ret;
-}
-
-#ifdef HAVE_MKFIFO
-static int mkfifo_cmd (char *path, int *mode)
-{
- if (-1 == mkfifo (path, *mode))
- {
- _SLerrno_errno = errno;
- return -1;
- }
- return 0;
-}
-#endif
-
-#if USE_LISTDIR_INTRINSIC
-
-static void free_dir_list (char **list, unsigned int num)
-{
- unsigned int i;
-
- if (list == NULL)
- return;
-
- for (i = 0; i < num; i++)
- SLang_free_slstring (list[i]);
- SLfree ((char *) list);
-}
-
-#if defined(__WIN32__) || defined(__os2__) && defined(__IBMC__)
-static int build_dirlist (char *file, char *opt, char ***listp, unsigned int *nump, unsigned int *maxnum)
-{
-# ifdef __WIN32__
- DWORD status;
- HANDLE h;
- WIN32_FIND_DATA fd;
-# else
- APIRET rc;
- FILESTATUS3 status;
- HDIR h;
- FILEFINDBUF3 fd;
- ULONG cFileNames;
-# endif
- char *pat;
- unsigned int len;
- char **list;
- unsigned int num;
- unsigned int max_num;
- int hok;
-
- /* If an option is present, assume ok to list hidden files. Later
- * I will formalize this.
- */
- hok = (opt != NULL);
-
-# ifdef __WIN32__
- status = GetFileAttributes (file);
-# else
- rc = DosQueryPathInfo(file, FIL_STANDARD, &status, sizeof(FILESTATUS3));
-# endif
-
-
-# ifdef __WIN32__
- if (status == (DWORD)-1)
- {
- _SLerrno_errno = ENOENT;
- return -1;
- }
- if (0 == (status & FILE_ATTRIBUTE_DIRECTORY))
- {
- _SLerrno_errno = ENOTDIR;
- return -1;
- }
-# else
- if ((rc != 0) || (status.attrFile & FILE_DIRECTORY) == 0)
- {
- /* ENOTDIR isn't defined in VA3. */
- _SLerrno_errno = ENOENT;
- return -1;
- }
-# endif
-
- len = strlen (file);
- pat = SLmalloc (len + 3);
- if (pat == NULL)
- return -1;
-
- strcpy (pat, file);
- file = pat;
- while (*file != 0)
- {
- if (*file == '/') *file = '\\';
- file++;
- }
-
- if (len && (pat[len-1] != '\\'))
- {
- pat[len] = '\\';
- len++;
- }
- pat[len++] = '*';
- pat[len] = 0;
-
- num = 0;
- max_num = 50;
- list = (char **)SLmalloc (max_num * sizeof(char *));
- if (list == NULL)
- {
- SLfree (pat);
- return -1;
- }
-
-# ifdef __WIN32__
- h = FindFirstFile(pat, &fd);
- if (h == INVALID_HANDLE_VALUE)
- {
- if (ERROR_NO_MORE_FILES != GetLastError())
- {
- SLfree (pat);
- SLfree ((char *)list);
- return -1;
- }
- }
-# else
- h = HDIR_CREATE;
- cFileNames = 1;
- rc = DosFindFirst(pat, &h, FILE_READONLY | FILE_DIRECTORY |
- FILE_ARCHIVED, &fd, sizeof(fd), &cFileNames, FIL_STANDARD);
- if (rc != 0)
- {
- if (rc != ERROR_NO_MORE_FILES)
- {
- SLfree (pat);
- SLfree ((char *)list);
- return -1;
- }
- }
-# endif
- else while (1)
- {
- /* Do not include hidden files in the list. Also, do not
- * include "." and ".." entries.
- */
-#ifdef __WIN32__
- file = fd.cFileName;
-#else
- file = fd.achName;
-#endif
- if (
-#ifdef __WIN32__
- (hok || (0 == (fd.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN)))
-#else
- (hok || (0 == (fd.attrFile & FILE_HIDDEN)))
-#endif
- && ((*file != '.')
- || ((0 != strcmp (file, "."))
- && (0 != strcmp (file, "..")))))
- {
- if (num == max_num)
- {
- char **new_list;
-
- max_num += 100;
- new_list = (char **)SLrealloc ((char *)list, max_num * sizeof (char *));
- if (new_list == NULL)
- goto return_error;
-
- list = new_list;
- }
-
- file = SLang_create_slstring (file);
- if (file == NULL)
- goto return_error;
-
- list[num] = file;
- num++;
- }
-
-#ifdef __WIN32__
- if (FALSE == FindNextFile(h, &fd))
- {
- if (ERROR_NO_MORE_FILES == GetLastError())
- {
- FindClose (h);
- break;
- }
-
- _SLerrno_errno = errno;
- FindClose (h);
- goto return_error;
- }
-#else
- cFileNames = 1;
- rc = DosFindNext(h, &fd, sizeof(fd), &cFileNames);
- if (rc != 0)
- {
- if (rc == ERROR_NO_MORE_FILES)
- {
- DosFindClose (h);
- break;
- }
-
- _SLerrno_errno = errno;
- DosFindClose (h);
- goto return_error;
- }
-#endif
- }
-
- SLfree (pat);
- *maxnum = max_num;
- *nump = num;
- *listp = list;
- return 0;
-
- return_error:
- free_dir_list (list, num);
- SLfree (pat);
- return -1;
-}
-
-#else /* NOT __WIN32__ */
-
-static int build_dirlist (char *dir, char *opt, char ***listp, unsigned int *nump, unsigned int *maxnum)
-{
- DIR *dp;
- struct dirent *ep;
- unsigned int num_files;
- unsigned int max_num_files;
- char **list;
-
- (void) opt;
-
- if (NULL == (dp = opendir (dir)))
- {
- _SLerrno_errno = errno;
- return -1;
- }
-
- num_files = max_num_files = 0;
- list = NULL;
- while (NULL != (ep = readdir (dp)))
- {
- unsigned int len;
- char *name;
-
- name = ep->d_name;
-# ifdef NEED_D_NAMLEN
- len = ep->d_namlen;
-# else
- len = strlen (name);
-# endif
- if ((*name == '.') && (len <= 2))
- {
- if (len == 1) continue;
- if (name [1] == '.') continue;
- }
-
- if (num_files == max_num_files)
- {
- char **new_list;
-
- max_num_files += 100;
- if (NULL == (new_list = (char **) SLrealloc ((char *)list, max_num_files * sizeof(char *))))
- goto return_error;
-
- list = new_list;
- }
-
- if (NULL == (list[num_files] = SLang_create_nslstring (name, len)))
- goto return_error;
-
- num_files++;
- }
-
- closedir (dp);
- *nump = num_files;
- *maxnum = max_num_files;
- *listp = list;
- return 0;
-
- return_error:
- if (dp != NULL)
- closedir (dp);
- free_dir_list (list, num_files);
- return -1;
-}
-# endif /* NOT __WIN32__ */
-
-static void listdir_cmd (char *dir, char *opt)
-{
- SLang_Array_Type *at;
- unsigned int num_files;
- unsigned int max_num_files;
- int inum_files;
- char **list;
-
- if (-1 == build_dirlist (dir, opt, &list, &num_files, &max_num_files))
- {
- SLang_push_null ();
- return;
- }
- /* If max_num_files == 0, then num_files == 0 and list == NULL.
- * The realloc step below will malloc list for us.
- */
- if (num_files + 1 < max_num_files)
- {
- char **new_list;
- if (NULL == (new_list = (char **) SLrealloc ((char *)list, (num_files + 1)* sizeof(char*))))
- {
- free_dir_list (list, num_files);
- SLang_push_null ();
- return;
- }
- list = new_list;
- }
-
- inum_files = (int) num_files;
- if (NULL == (at = SLang_create_array (SLANG_STRING_TYPE, 0, (VOID_STAR) list, &inum_files, 1)))
- {
- free_dir_list (list, num_files);
- SLang_push_null ();
- return;
- }
-
- /* Allow the array to free this list if push fails */
- if (-1 == SLang_push_array (at, 1))
- SLang_push_null ();
-}
-
-static void listdir_cmd_wrap (void)
-{
- char *s, *sopt;
-
- sopt = NULL;
- switch (SLang_Num_Function_Args)
- {
- case 2:
- if (-1 == SLang_pop_slstring (&sopt))
- return;
- case 1:
- if (-1 == SLang_pop_slstring (&s))
- {
- SLang_free_slstring (sopt);
- return;
- }
- break;
- default:
- SLang_verror (SL_INVALID_PARM, "usage: listdir (string, [opt-string]");
- return;
- }
-
- listdir_cmd (s, sopt);
- SLang_free_slstring (s);
- SLang_free_slstring (sopt);
-}
-
-#endif /* USE_LISTDIR_INTRINSIC */
-
-#ifdef HAVE_UMASK
-static int umask_cmd (int *u)
-{
- return umask (*u);
-}
-#endif
-
-static SLang_Intrin_Fun_Type PosixDir_Name_Table [] =
-{
-#ifdef HAVE_READLINK
- MAKE_INTRINSIC_S("readlink", readlink_cmd, SLANG_VOID_TYPE),
-#endif
- MAKE_INTRINSIC_S("lstat_file", lstat_cmd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_S("stat_file", stat_cmd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_SI("stat_is", stat_is_cmd, SLANG_CHAR_TYPE),
-#ifdef HAVE_MKFIFO
- MAKE_INTRINSIC_SI("mkfifo", mkfifo_cmd, SLANG_INT_TYPE),
-#endif
-#ifdef HAVE_CHOWN
- MAKE_INTRINSIC_SII("chown", chown_cmd, SLANG_INT_TYPE),
-#endif
- MAKE_INTRINSIC_SI("chmod", chmod_cmd, SLANG_INT_TYPE),
-#ifdef HAVE_UMASK
- MAKE_INTRINSIC_I("umask", umask_cmd, SLANG_INT_TYPE),
-#endif
- MAKE_INTRINSIC_0("getcwd", slget_cwd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_SI("mkdir", mkdir_cmd, SLANG_INT_TYPE),
- MAKE_INTRINSIC_S("chdir", chdir_cmd, SLANG_INT_TYPE),
- MAKE_INTRINSIC_S("rmdir", rmdir_cmd, SLANG_INT_TYPE),
- MAKE_INTRINSIC_S("remove", remove_cmd, SLANG_INT_TYPE),
- MAKE_INTRINSIC_SS("rename", rename_cmd, SLANG_INT_TYPE),
-#if USE_LISTDIR_INTRINSIC
- MAKE_INTRINSIC("listdir", listdir_cmd_wrap, SLANG_VOID_TYPE, 0),
-#endif
- SLANG_END_INTRIN_FUN_TABLE
-};
-
-static SLang_IConstant_Type PosixDir_Consts [] =
-{
-#ifndef S_IRWXU
-# define S_IRWXU 00700
-#endif
- MAKE_ICONSTANT("S_IRWXU", S_IRWXU),
-#ifndef S_IRUSR
-# define S_IRUSR 00400
-#endif
- MAKE_ICONSTANT("S_IRUSR", S_IRUSR),
-#ifndef S_IWUSR
-# define S_IWUSR 00200
-#endif
- MAKE_ICONSTANT("S_IWUSR", S_IWUSR),
-#ifndef S_IXUSR
-# define S_IXUSR 00100
-#endif
- MAKE_ICONSTANT("S_IXUSR", S_IXUSR),
-#ifndef S_IRWXG
-# define S_IRWXG 00070
-#endif
- MAKE_ICONSTANT("S_IRWXG", S_IRWXG),
-#ifndef S_IRGRP
-# define S_IRGRP 00040
-#endif
- MAKE_ICONSTANT("S_IRGRP", S_IRGRP),
-#ifndef S_IWGRP
-# define S_IWGRP 00020
-#endif
- MAKE_ICONSTANT("S_IWGRP", S_IWGRP),
-#ifndef S_IXGRP
-# define S_IXGRP 00010
-#endif
- MAKE_ICONSTANT("S_IXGRP", S_IXGRP),
-#ifndef S_IRWXO
-# define S_IRWXO 00007
-#endif
- MAKE_ICONSTANT("S_IRWXO", S_IRWXO),
-#ifndef S_IROTH
-# define S_IROTH 00004
-#endif
- MAKE_ICONSTANT("S_IROTH", S_IROTH),
-#ifndef S_IWOTH
-# define S_IWOTH 00002
-#endif
- MAKE_ICONSTANT("S_IWOTH", S_IWOTH),
-#ifndef S_IXOTH
-# define S_IXOTH 00001
-#endif
- MAKE_ICONSTANT("S_IXOTH", S_IXOTH),
-#ifdef __WIN32__
- MAKE_ICONSTANT("FILE_ATTRIBUTE_ARCHIVE", FILE_ATTRIBUTE_ARCHIVE),
- MAKE_ICONSTANT("FILE_ATTRIBUTE_COMPRESSED", FILE_ATTRIBUTE_COMPRESSED),
- MAKE_ICONSTANT("FILE_ATTRIBUTE_NORMAL", FILE_ATTRIBUTE_NORMAL),
- MAKE_ICONSTANT("FILE_ATTRIBUTE_DIRECTORY", FILE_ATTRIBUTE_DIRECTORY),
- MAKE_ICONSTANT("FILE_ATTRIBUTE_HIDDEN", FILE_ATTRIBUTE_HIDDEN),
- MAKE_ICONSTANT("FILE_ATTRIBUTE_READONLY", FILE_ATTRIBUTE_READONLY),
- MAKE_ICONSTANT("FILE_ATTRIBUTE_SYSTEM", FILE_ATTRIBUTE_SYSTEM),
- MAKE_ICONSTANT("FILE_ATTRIBUTE_TEMPORARY", FILE_ATTRIBUTE_TEMPORARY),
-#endif
- SLANG_END_ICONST_TABLE
-};
-
-static int Initialized;
-
-int SLang_init_posix_dir (void)
-{
- if (Initialized)
- return 0;
-
- if ((-1 == SLadd_intrin_fun_table(PosixDir_Name_Table, "__POSIX_DIR__"))
- || (-1 == SLadd_iconstant_table (PosixDir_Consts, NULL))
- || (-1 == _SLerrno_init ()))
- return -1;
-
- Initialized = 1;
-
- return 0;
-}
-
diff --git a/mdk-stage1/slang/slposio.c b/mdk-stage1/slang/slposio.c
deleted file mode 100644
index ab1e9f689..000000000
--- a/mdk-stage1/slang/slposio.c
+++ /dev/null
@@ -1,568 +0,0 @@
-/* This module implements an interface to posix system calls */
-/* file stdio intrinsics for S-Lang */
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#if defined(__unix__) || (defined (__os2__) && defined (__EMX__))
-# include <sys/types.h>
-#endif
-
-#ifdef HAVE_FCNTL_H
-# include <fcntl.h>
-#endif
-#ifdef HAVE_SYS_FCNTL_H
-# include <sys/fcntl.h>
-#endif
-
-#ifdef __unix__
-# include <sys/file.h>
-#endif
-
-#ifdef HAVE_IO_H
-# include <io.h>
-#endif
-
-#if defined(__BORLANDC__)
-# include <dir.h>
-#endif
-
-#if defined(__DECC) && defined(VMS)
-# include <unixio.h>
-# include <unixlib.h>
-#endif
-
-#ifdef VMS
-# include <stat.h>
-#else
-# include <sys/stat.h>
-#endif
-
-#include <errno.h>
-
-#include "slang.h"
-#include "_slang.h"
-
-struct _SLFile_FD_Type
-{
- char *name;
- unsigned int num_refs; /* reference counting */
- int fd;
- SLang_MMT_Type *stdio_mmt; /* fdopen'd stdio object */
-
- /* methods */
- int (*close)(int);
- int (*read) (int, char *, unsigned int *);
- int (*write)(int, char *, unsigned int *);
-};
-
-static int close_method (int fd)
-{
- return close (fd);
-}
-
-static int write_method (int fd, char *buf, unsigned int *nump)
-{
- int num;
-
- if (-1 == (num = write (fd, buf, *nump)))
- {
- *nump = 0;
- return -1;
- }
-
- *nump = (unsigned int) num;
- return 0;
-}
-
-static int read_method (int fd, char *buf, unsigned int *nump)
-{
- int num;
-
- num = read (fd, buf, *nump);
- if (num == -1)
- {
- *nump = 0;
- return -1;
- }
- *nump = (unsigned int) num;
- return 0;
-}
-
-static int check_fd (int fd)
-{
- if (fd == -1)
- {
-#ifdef EBADF
- _SLerrno_errno = EBADF;
-#endif
- return -1;
- }
-
- return 0;
-}
-
-static int posix_close (SLFile_FD_Type *f)
-{
- if (-1 == check_fd (f->fd))
- return -1;
-
- if ((f->close != NULL)
- && (-1 == f->close (f->fd)))
- {
- _SLerrno_errno = errno;
- return -1;
- }
-
- if (f->stdio_mmt != NULL)
- {
- SLang_free_mmt (f->stdio_mmt);
- f->stdio_mmt = NULL;
- }
-
- f->fd = -1;
- return 0;
-}
-
-/* Usage: Uint write (f, buf); */
-static void posix_write (SLFile_FD_Type *f, SLang_BString_Type *bstr)
-{
- unsigned int len;
- char *p;
-
- if ((-1 == check_fd (f->fd))
- || (NULL == (p = (char *)SLbstring_get_pointer (bstr, &len))))
- {
- SLang_push_integer (-1);
- return;
- }
-
- if (-1 == f->write (f->fd, p, &len))
- {
- _SLerrno_errno = errno;
- SLang_push_integer (-1);
- return;
- }
-
- (void) SLang_push_uinteger (len);
-}
-
-/* Usage: nn = read (f, &buf, n); */
-static void posix_read (SLFile_FD_Type *f, SLang_Ref_Type *ref, unsigned int *nbytes)
-{
- unsigned int len;
- char *b;
- SLang_BString_Type *bstr;
-
- b = NULL;
-
- len = *nbytes;
- if ((-1 == check_fd (f->fd))
- || (NULL == (b = SLmalloc (len + 1))))
- goto return_error;
-
- if (-1 == f->read (f->fd, b, &len))
- {
- _SLerrno_errno = errno;
- goto return_error;
- }
-
- if (len != *nbytes)
- {
- char *b1 = SLrealloc (b, len + 1);
- if (b1 == NULL)
- goto return_error;
- b = b1;
- }
-
- bstr = SLbstring_create_malloced ((unsigned char *) b, len, 0);
- if (bstr != NULL)
- {
- if ((-1 != SLang_assign_to_ref (ref, SLANG_BSTRING_TYPE, (VOID_STAR)&bstr))
- && (-1 != SLang_push_uinteger (len)))
- return;
-
- SLbstring_free (bstr);
- b = NULL;
- /* drop */
- }
-
- return_error:
- if (b != NULL) SLfree ((char *)b);
- (void) SLang_assign_to_ref (ref, SLANG_NULL_TYPE, NULL);
- (void) SLang_push_integer (-1);
-}
-
-SLFile_FD_Type *SLfile_create_fd (char *name, int fd)
-{
- SLFile_FD_Type *f;
-
- if (NULL == (f = (SLFile_FD_Type *) SLmalloc (sizeof (SLFile_FD_Type))))
- return NULL;
-
- memset ((char *) f, 0, sizeof (SLFile_FD_Type));
- if (NULL == (f->name = SLang_create_slstring (name)))
- {
- SLfree ((char *)f);
- return NULL;
- }
-
- f->fd = fd;
- f->num_refs = 1;
-
- f->close = close_method;
- f->read = read_method;
- f->write = write_method;
-
- return f;
-}
-
-SLFile_FD_Type *SLfile_dup_fd (SLFile_FD_Type *f0)
-{
- SLFile_FD_Type *f;
- int fd0, fd;
-
- if (f0 == NULL)
- return NULL;
- fd0 = f0->fd;
- if (-1 == check_fd (fd0))
- return NULL;
-
- while (-1 == (fd = dup (fd0)))
- {
-#ifdef EINTR
- if (errno == EINTR)
- continue;
-#endif
- _SLerrno_errno = errno;
- return NULL;
- }
-
- if (NULL == (f = SLfile_create_fd (f0->name, fd)))
- {
- f0->close (fd);
- return NULL;
- }
-
- return f;
-}
-
-int SLfile_get_fd (SLFile_FD_Type *f, int *fd)
-{
- if (f == NULL)
- return -1;
-
- *fd = f->fd;
- if (-1 == check_fd (*fd))
- return -1;
-
- return 0;
-}
-
-void SLfile_free_fd (SLFile_FD_Type *f)
-{
- if (f == NULL)
- return;
-
- if (f->num_refs > 1)
- {
- f->num_refs -= 1;
- return;
- }
-
- if (f->fd != -1)
- {
- if (f->close != NULL)
- (void) f->close (f->fd);
-
- f->fd = -1;
- }
-
- if (f->stdio_mmt != NULL)
- SLang_free_mmt (f->stdio_mmt);
-
- SLfree ((char *) f);
-}
-
-static int pop_string_int (char **s, int *i)
-{
- *s = NULL;
- if ((-1 == SLang_pop_integer (i))
- || (-1 == SLang_pop_slstring (s)))
- return -1;
-
- return 0;
-}
-
-static int pop_string_int_int (char **s, int *a, int *b)
-{
- *s = NULL;
- if ((-1 == SLang_pop_integer (b))
- || (-1 == pop_string_int (s, a)))
- return -1;
-
- return 0;
-}
-
-static void posix_open (void)
-{
- char *file;
- int mode, flags;
- SLFile_FD_Type *f;
-
- switch (SLang_Num_Function_Args)
- {
- case 3:
- if (-1 == pop_string_int_int (&file, &flags, &mode))
- {
- SLang_push_null ();
- return;
- }
- break;
-
- case 2:
- default:
- if (-1 == pop_string_int (&file, &flags))
- return;
- mode = 0777;
- break;
- }
-
- f = SLfile_create_fd (file, -1);
- if (f == NULL)
- {
- SLang_free_slstring (file);
- SLang_push_null ();
- return;
- }
- SLang_free_slstring (file);
-
- if (-1 == (f->fd = open (f->name, flags, mode)))
- {
- _SLerrno_errno = errno;
- SLfile_free_fd (f);
- SLang_push_null ();
- return;
- }
-
- if (-1 == SLfile_push_fd (f))
- SLang_push_null ();
- SLfile_free_fd (f);
-}
-
-static void posix_fileno (void)
-{
- FILE *fp;
- SLang_MMT_Type *mmt;
- int fd;
- SLFile_FD_Type *f;
- char *name;
-
- if (-1 == SLang_pop_fileptr (&mmt, &fp))
- {
- SLang_push_null ();
- return;
- }
- name = SLang_get_name_from_fileptr (mmt);
- fd = fileno (fp);
-
- f = SLfile_create_fd (name, fd);
- if (f != NULL)
- f->close = NULL; /* prevent fd from being closed
- * when it goes out of scope
- */
- SLang_free_mmt (mmt);
-
- if (-1 == SLfile_push_fd (f))
- SLang_push_null ();
- SLfile_free_fd (f);
-}
-
-static void posix_fdopen (SLFile_FD_Type *f, char *mode)
-{
- if (f->stdio_mmt == NULL)
- {
- if (-1 == _SLstdio_fdopen (f->name, f->fd, mode))
- return;
-
- if (NULL == (f->stdio_mmt = SLang_pop_mmt (SLANG_FILE_PTR_TYPE)))
- return;
- }
-
- (void) SLang_push_mmt (f->stdio_mmt);
-}
-
-static long posix_lseek (SLFile_FD_Type *f, long ofs, int whence)
-{
- long status;
-
- if (-1 == (status = lseek (f->fd, ofs, whence)))
- _SLerrno_errno = errno;
-
- return status;
-}
-
-static int posix_isatty (void)
-{
- int ret;
- SLFile_FD_Type *f;
-
- if (SLang_peek_at_stack () == SLANG_FILE_PTR_TYPE)
- {
- SLang_MMT_Type *mmt;
- FILE *fp;
-
- if (-1 == SLang_pop_fileptr (&mmt, &fp))
- return 0; /* invalid descriptor */
-
- ret = isatty (fileno (fp));
- SLang_free_mmt (mmt);
- return ret;
- }
-
- if (-1 == SLfile_pop_fd (&f))
- return 0;
-
- ret = isatty (f->fd);
- SLfile_free_fd (f);
-
- return ret;
-}
-
-static void posix_dup (SLFile_FD_Type *f)
-{
- if ((NULL == (f = SLfile_dup_fd (f)))
- || (-1 == SLfile_push_fd (f)))
- SLang_push_null ();
-
- SLfile_free_fd (f);
-}
-
-#define I SLANG_INT_TYPE
-#define V SLANG_VOID_TYPE
-#define F SLANG_FILE_FD_TYPE
-#define B SLANG_BSTRING_TYPE
-#define R SLANG_REF_TYPE
-#define U SLANG_UINT_TYPE
-#define S SLANG_STRING_TYPE
-#define L SLANG_LONG_TYPE
-static SLang_Intrin_Fun_Type Fd_Name_Table [] =
-{
- MAKE_INTRINSIC_0("fileno", posix_fileno, V),
- MAKE_INTRINSIC_0("isatty", posix_isatty, I),
- MAKE_INTRINSIC_0("open", posix_open, V),
- MAKE_INTRINSIC_3("read", posix_read, V, F, R, U),
- MAKE_INTRINSIC_3("lseek", posix_lseek, L, F, L, I),
- MAKE_INTRINSIC_2("fdopen", posix_fdopen, V, F, S),
- MAKE_INTRINSIC_2("write", posix_write, V, F, B),
- MAKE_INTRINSIC_1("dup_fd", posix_dup, V, F),
- MAKE_INTRINSIC_1("close", posix_close, I, F),
- SLANG_END_INTRIN_FUN_TABLE
-};
-#undef I
-#undef V
-#undef F
-#undef B
-#undef R
-#undef S
-#undef L
-#undef U
-
-static SLang_IConstant_Type PosixIO_Consts [] =
-{
-#ifdef O_RDONLY
- MAKE_ICONSTANT("O_RDONLY", O_RDONLY),
-#endif
-#ifdef O_WRONLY
- MAKE_ICONSTANT("O_WRONLY", O_WRONLY),
-#endif
-#ifdef O_RDWR
- MAKE_ICONSTANT("O_RDWR", O_RDWR),
-#endif
-#ifdef O_APPEND
- MAKE_ICONSTANT("O_APPEND", O_APPEND),
-#endif
-#ifdef O_CREAT
- MAKE_ICONSTANT("O_CREAT", O_CREAT),
-#endif
-#ifdef O_EXCL
- MAKE_ICONSTANT("O_EXCL", O_EXCL),
-#endif
-#ifdef O_NOCTTY
- MAKE_ICONSTANT("O_NOCTTY", O_NOCTTY),
-#endif
-#ifdef O_NONBLOCK
- MAKE_ICONSTANT("O_NONBLOCK", O_NONBLOCK),
-#endif
-#ifdef O_TRUNC
- MAKE_ICONSTANT("O_TRUNC", O_TRUNC),
-#endif
-#ifndef O_BINARY
-# define O_BINARY 0
-#endif
- MAKE_ICONSTANT("O_BINARY", O_BINARY),
-#ifndef O_TEXT
-# define O_TEXT 0
-#endif
- MAKE_ICONSTANT("O_TEXT", O_TEXT),
-
- SLANG_END_ICONST_TABLE
-};
-
-int SLfile_push_fd (SLFile_FD_Type *f)
-{
- if (f == NULL)
- return SLang_push_null ();
-
- f->num_refs += 1;
-
- if (0 == SLclass_push_ptr_obj (SLANG_FILE_FD_TYPE, (VOID_STAR) f))
- return 0;
-
- f->num_refs -= 1;
-
- return -1;
-}
-
-int SLfile_pop_fd (SLFile_FD_Type **f)
-{
- return SLclass_pop_ptr_obj (SLANG_FILE_FD_TYPE, (VOID_STAR *) f);
-}
-
-static void destroy_fd_type (unsigned char type, VOID_STAR ptr)
-{
- (void) type;
- SLfile_free_fd (*(SLFile_FD_Type **) ptr);
-}
-
-static int fd_push (unsigned char type, VOID_STAR v)
-{
- (void) type;
- return SLfile_push_fd (*(SLFile_FD_Type **)v);
-}
-
-int SLang_init_posix_io (void)
-{
- SLang_Class_Type *cl;
-
- if (NULL == (cl = SLclass_allocate_class ("FD_Type")))
- return -1;
- cl->cl_destroy = destroy_fd_type;
- (void) SLclass_set_push_function (cl, fd_push);
-
- if (-1 == SLclass_register_class (cl, SLANG_FILE_FD_TYPE, sizeof (SLFile_FD_Type), SLANG_CLASS_TYPE_PTR))
- return -1;
-
- if ((-1 == SLadd_intrin_fun_table(Fd_Name_Table, "__POSIXIO__"))
- || (-1 == SLadd_iconstant_table (PosixIO_Consts, NULL))
- || (-1 == _SLerrno_init ()))
- return -1;
-
- return 0;
-}
-
diff --git a/mdk-stage1/slang/slprepr.c b/mdk-stage1/slang/slprepr.c
deleted file mode 100644
index 358eeb874..000000000
--- a/mdk-stage1/slang/slprepr.c
+++ /dev/null
@@ -1,427 +0,0 @@
-/* Copyright (c) 1996, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-/*--------------------------------*-C-*---------------------------------*
- * File: slprepr.c
- *
- * preprocessing routines
- */
-/*{{{ notes: */
-/*
- * various preprocessing tokens supported
- *
- * #ifdef TOKEN1 TOKEN2 ...
- * - True if any of TOKEN1 TOKEN2 ... are defined
- *
- * #ifndef TOKEN1 TOKEN2 ...
- * - True if none of TOKEN1 TOKEN2 ... are defined
- *
- * #iftrue
- * #ifnfalse
- * - always True
- *
- * #iffalse
- * #ifntrue
- * - always False
- *
- * #if$ENV
- * - True if the enviroment variable ENV is set
- *
- * #ifn$ENV
- * - True if the enviroment variable ENV is not set
- *
- * #if$ENV TOKEN1 TOKEN2 ...
- * - True if the contents of enviroment variable ENV match
- * any of TOKEN1 TOKEN2 ...
- *
- * #ifn$ENV TOKEN1 TOKEN2 ...
- * - True if the contents of enviroment variable ENV do not match
- * any of TOKEN1 TOKEN2 ...
- *
- * NB: For $ENV, the tokens may contain wildcard characters:
- * '?' - match any single character
- * '*' - match any number of characters
- *
- * #elif...
- * #else
- * #endif
- *
- *
- * mj olesen
- *----------------------------------------------------------------------*/
-/*}}}*/
-/*{{{ includes: */
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-/*}}}*/
-
-int (*SLprep_exists_hook) (char *, char);
-int (*_SLprep_eval_hook) (char *);
-
-/*{{{ SLprep_open_prep (), SLprep_close_prep () */
-int SLprep_open_prep (SLPreprocess_Type *pt)
-{
- pt->this_level = 0;
- pt->exec_level = 0;
- pt->prev_exec_level = 0;
- pt->comment_char = '%';
- pt->preprocess_char = '#';
- pt->flags = 0;
- return 0;
-}
-
-void SLprep_close_prep (SLPreprocess_Type *pt)
-{
- (void) pt;
-}
-/*}}}*/
-
-/*{{{ SLwildcard () */
-/*----------------------------------------------------------------------*
- * Does `string' match `pattern' ?
- *
- * '*' in pattern matches any sub-string (including the null string)
- * '?' matches any single char.
- *
- * Code taken from that donated by Paul Hudson <paulh@harlequin.co.uk>
- * to the fvwm project.
- * It is public domain, no strings attached. No guarantees either.
- *----------------------------------------------------------------------*/
-static int SLwildcard (char *pattern, char *string)
-{
- if (pattern == NULL || *pattern == '\0' || !strcmp (pattern, "*"))
- return 1;
- else if (string == NULL)
- return 0;
-
- while (*pattern && *string) switch (*pattern)
- {
- case '?':
- /* match any single character */
- pattern++;
- string++;
- break;
-
- case '*':
- /* see if rest of pattern matches any trailing */
- /* substring of the string. */
- if (*++pattern == '\0')
- return 1; /* trailing * must match rest */
-
- while (*string)
- {
- if (SLwildcard (pattern, string)) return 1;
- string++;
- }
- return 0;
-
- /* break; */
-
- default:
- if (*pattern == '\\')
- {
- if (*++pattern == '\0')
- pattern--; /* don't skip trailing backslash */
- }
- if (*pattern++ != *string++) return 0;
- break;
- }
-
- return ((*string == '\0')
- && ((*pattern == '\0') || !strcmp (pattern, "*")));
-}
-/*}}}*/
-
-#if defined(__16_BIT_SYSTEM__)
-# define MAX_DEFINES 10
-#else
-# define MAX_DEFINES 128
-#endif
-
-/* The extra one is for NULL termination */
-char *_SLdefines [MAX_DEFINES + 1];
-
-int SLdefine_for_ifdef (char *s) /*{{{*/
-{
- unsigned int i;
-
- for (i = 0; i < MAX_DEFINES; i++)
- {
- char *s1 = _SLdefines [i];
-
- if (s1 == s)
- return 0; /* already defined (hashed string) */
-
- if (s1 != NULL)
- continue;
-
- s = SLang_create_slstring (s);
- if (s == NULL)
- return -1;
-
- _SLdefines[i] = s;
- return 0;
- }
- return -1;
-}
-/*}}}*/
-
-/*{{{ static functions */
-static int is_any_defined(char *buf, char comment) /*{{{*/
-{
- char *sys;
- unsigned int i;
-
- while (1)
- {
- register char ch;
-
- /* Skip whitespace */
- while (((ch = *buf) == ' ') || (ch == '\t'))
- buf++;
-
- if ((ch == '\n') || (ch == 0) || (ch == comment))
- return 0;
-
- i = 0;
- while (NULL != (sys = _SLdefines [i++]))
- {
- unsigned int n;
-
- if (*sys != ch)
- continue;
-
- n = strlen (sys);
- if (0 == strncmp (buf, sys, n))
- {
- char ch1 = *(buf + n);
-
- if ((ch1 == '\n') || (ch1 == 0) ||
- (ch1 == ' ') || (ch1 == '\t') || (ch1 == comment))
- return 1;
- }
- }
-
- /* Skip past word */
- while (((ch = *buf) != ' ')
- && (ch != '\n')
- && (ch != 0)
- && (ch != '\t')
- && (ch != comment))
- buf++;
- }
-}
-/*}}}*/
-
-static unsigned char *tokenize (unsigned char *buf, char *token, unsigned int len)
-{
- register char *token_end;
-
- token_end = token + (len - 1); /* allow room for \0 */
-
- while ((token < token_end) && (*buf > ' '))
- *token++ = *buf++;
-
- if (*buf > ' ') return NULL; /* token too long */
-
- *token = '\0';
-
- while ((*buf == ' ') || (*buf == '\t')) buf++;
-
- return buf;
-}
-
-static int is_env_defined (char *buf, char comment) /*{{{*/
-{
- char * env, token [32];
-
- if ((*buf <= ' ') || (*buf == comment)) return 0; /* no token */
-
- if (NULL == (buf = (char *) tokenize ((unsigned char *) buf,
- token, sizeof (token))))
- return 0;
-
- if (NULL == (env = getenv (token)))
- return 0; /* ENV not defined */
-
- if ((*buf == '\0') || (*buf == '\n') || (*buf == comment))
- return 1; /* no tokens, but getenv() worked */
-
- do
- {
- buf = (char *) tokenize ((unsigned char *) buf, token, sizeof (token));
- if (buf == NULL) return 0;
-
- if (SLwildcard (token, env))
- return 1;
- }
- while (*buf && (*buf != '\n') && (*buf != comment));
-
- return 0;
-}
-/*}}}*/
-/*}}}*/
-
-int SLprep_line_ok (char *buf, SLPreprocess_Type *pt) /*{{{*/
-{
- int level, prev_exec_level, exec_level;
-
- if ((buf == NULL) || (pt == NULL)) return 1;
-
- if (*buf != pt->preprocess_char)
- {
- if (pt->this_level != pt->exec_level)
- return 0;
-
- if (*buf == '\n') return pt->flags & SLPREP_BLANK_LINES_OK;
- if (*buf == pt->comment_char) return pt->flags & SLPREP_COMMENT_LINES_OK;
-
- return 1;
- }
-
- level = pt->this_level;
- exec_level = pt->exec_level;
- prev_exec_level = pt->prev_exec_level;
-
- buf++;
-
- /* Allow '#!' to pass. This could be a shell script with something
- like '#! /local/bin/slang' */
- if ((*buf == '!') && (pt->preprocess_char == '#'))
- return 0;
-
- /* Allow whitespace as in '# ifdef' */
- while ((*buf == ' ') || (*buf == '\t')) buf++;
- if (*buf < 'a') return (level == exec_level);
-
- if (!strncmp(buf, "endif", 5))
- {
- if (level == exec_level)
- {
- exec_level--;
- prev_exec_level = exec_level;
- }
- level--;
- if (level < prev_exec_level) prev_exec_level = level;
- goto done;
- }
-
- if ((buf[0] == 'e') && (buf[1] == 'l')) /* else, elifdef, ... */
- {
- if ((level == exec_level + 1)
- && (prev_exec_level != level))
- {
- /* We are in position to execute */
- buf += 2;
- if ((buf[0] == 's') && (buf[1] == 'e'))
- {
- /* "else" */
- exec_level = level;
- goto done;
- }
-
- /* drop through to ifdef testing. First set variable
- * to values appropriate for ifdef testing.
- */
- level--; /* now == to exec level */
- }
- else
- {
- if (level == exec_level)
- {
- exec_level--;
- }
- goto done;
- }
- }
-
- if ((buf[0] == 'i') && (buf[1] == 'f'))
- {
- int truth;
-
- if (level != exec_level)
- {
- /* Not interested */
- level++;
- goto done;
- }
-
- level++;
-
- buf += 2;
- if (buf[0] == 'n')
- {
- truth = 0;
- buf++;
- }
- else truth = 1;
-
- if (!strncmp (buf, "def", 3))
- truth = (truth == is_any_defined(buf + 3, pt->comment_char));
-
- else if (!strncmp (buf, "false", 5))
- truth = !truth;
-
- else if (*buf == '$')
- truth = (truth == is_env_defined (buf + 1, pt->comment_char));
-
- else if (!strncmp (buf, "exists", 6)
- && (SLprep_exists_hook != NULL))
- truth = (truth == (*SLprep_exists_hook)(buf + 6, pt->comment_char));
-
- else if (!strncmp (buf, "eval", 4)
- && (_SLprep_eval_hook != NULL))
- truth = (truth == (*_SLprep_eval_hook) (buf + 4));
-
- else if (0 != strncmp (buf, "true", 4))
- return 1; /* let it bomb */
-
- if (truth)
- {
- exec_level = level;
- prev_exec_level = exec_level;
- }
- }
- else return 1; /* let it bomb. */
-
- done:
-
- if (exec_level < 0) return 1;
-
- pt->this_level = level;
- pt->exec_level = exec_level;
- pt->prev_exec_level = prev_exec_level;
- return 0;
-}
-/*}}}*/
-
-/*{{{ main() - for testing only */
-#if 0
-int main ()
-{
- char buf[1024];
- SLPreprocess_Type pt;
-
- SLprep_open_prep (&pt);
-
- SLdefine_for_ifdef ("UNIX");
-
- while (NULL != fgets (buf, sizeof (buf) - 1, stdin))
- {
- if (SLprep_line_ok (buf, &pt))
- {
- fputs (buf, stdout);
- }
- }
-
- SLprep_close_prep (&pt);
- return 0;
-}
-#endif
-/*}}}*/
diff --git a/mdk-stage1/slang/slproc.c b/mdk-stage1/slang/slproc.c
deleted file mode 100644
index 8b266f28f..000000000
--- a/mdk-stage1/slang/slproc.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/* Process specific system calls */
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#ifdef HAVE_IO_H
-# include <io.h> /* for chmod */
-#endif
-
-#ifdef HAVE_PROCESS_H
-# include <process.h> /* for getpid */
-#endif
-
-#if defined(__BORLANDC__)
-# include <dos.h>
-#endif
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <signal.h>
-#include <time.h>
-
-#include <errno.h>
-
-#include "slang.h"
-#include "_slang.h"
-
-#ifdef HAVE_KILL
-static int kill_cmd (int *pid, int *sig)
-{
- int ret;
-
- if (-1 == (ret = kill ((pid_t) *pid, *sig)))
- _SLerrno_errno = errno;
- return ret;
-}
-#endif
-
-static int getpid_cmd (void)
-{
- return getpid ();
-}
-
-#ifdef HAVE_GETPPID
-static int getppid_cmd (void)
-{
- return getppid ();
-}
-#endif
-
-#ifdef HAVE_GETGID
-static int getgid_cmd (void)
-{
- return getgid ();
-}
-#endif
-
-#ifdef HAVE_GETEGID
-static int getegid_cmd (void)
-{
- return getegid ();
-}
-#endif
-
-#ifdef HAVE_GETEUID
-static int geteuid_cmd (void)
-{
- return geteuid ();
-}
-#endif
-
-#ifdef HAVE_GETUID
-static int getuid_cmd (void)
-{
- return getuid ();
-}
-#endif
-
-#ifdef HAVE_SETGID
-static int setgid_cmd (int *gid)
-{
- if (0 == setgid (*gid))
- return 0;
- _SLerrno_errno = errno;
- return -1;
-}
-#endif
-
-#ifdef HAVE_SETPGID
-static int setpgid_cmd (int *pid, int *pgid)
-{
- if (0 == setpgid (*pid, *pgid))
- return 0;
- _SLerrno_errno = errno;
- return -1;
-}
-#endif
-
-#ifdef HAVE_SETUID
-static int setuid_cmd (int *uid)
-{
- if (0 == setuid (*uid))
- return 0;
- _SLerrno_errno = errno;
- return -1;
-}
-#endif
-
-static SLang_Intrin_Fun_Type Process_Name_Table[] =
-{
- MAKE_INTRINSIC_0("getpid", getpid_cmd, SLANG_INT_TYPE),
-
-#ifdef HAVE_GETPPID
- MAKE_INTRINSIC_0("getppid", getppid_cmd, SLANG_INT_TYPE),
-#endif
-#ifdef HAVE_GETGID
- MAKE_INTRINSIC_0("getgid", getgid_cmd, SLANG_INT_TYPE),
-#endif
-#ifdef HAVE_GETEGID
- MAKE_INTRINSIC_0("getegid", getegid_cmd, SLANG_INT_TYPE),
-#endif
-#ifdef HAVE_GETEUID
- MAKE_INTRINSIC_0("geteuid", geteuid_cmd, SLANG_INT_TYPE),
-#endif
-#ifdef HAVE_GETUID
- MAKE_INTRINSIC_0("getuid", getuid_cmd, SLANG_INT_TYPE),
-#endif
-#ifdef HAVE_SETGID
- MAKE_INTRINSIC_I("setgid", setgid_cmd, SLANG_INT_TYPE),
-#endif
-#ifdef HAVE_SETPGID
- MAKE_INTRINSIC_II("setpgid", setpgid_cmd, SLANG_INT_TYPE),
-#endif
-#ifdef HAVE_SETUID
- MAKE_INTRINSIC_I("setuid", setuid_cmd, SLANG_INT_TYPE),
-#endif
-
-#ifdef HAVE_KILL
- MAKE_INTRINSIC_II("kill", kill_cmd, SLANG_INT_TYPE),
-#endif
- SLANG_END_INTRIN_FUN_TABLE
-};
-
-int SLang_init_posix_process (void)
-{
- if ((-1 == SLadd_intrin_fun_table (Process_Name_Table, "__POSIX_PROCESS__"))
- || (-1 == _SLerrno_init ()))
- return -1;
- return 0;
-}
diff --git a/mdk-stage1/slang/slregexp.c b/mdk-stage1/slang/slregexp.c
deleted file mode 100644
index 6592a5a63..000000000
--- a/mdk-stage1/slang/slregexp.c
+++ /dev/null
@@ -1,935 +0,0 @@
-/* ed style regular expressions */
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-#define SET_BIT(b, n) b[(unsigned int) (n) >> 3] |= 1 << ((unsigned int) (n) % 8)
-#define TEST_BIT(b, n) (b[(unsigned int)(n) >> 3] & (1 << ((unsigned int) (n) % 8)))
-#define LITERAL 1
-#define RANGE 2 /* [...] */
-#define ANY 3 /* . */
-#define BOL 4 /* ^ */
-#define EOL 5 /* $ */
-#define NTH_MATCH 6 /* \1 \2 ... \9 */
-#define OPAREN 7 /* \( */
-#define CPAREN 0x8 /* \) */
-#define ANY_DIGIT 0x9 /* \d */
-#define BOW 0xA /* \< */
-#define EOW 0xB /* \> */
-#if 0
-#define NOT_LITERAL 0xC /* \~ */
-#endif
-#define STAR 0x80 /* * */
-#define LEAST_ONCE 0x40 /* + */
-#define MAYBE_ONCE 0x20 /* ? */
-#define MANY 0x10 /* {n,m} */
-/* The rest are additions */
-#define YES_CASE (STAR | BOL)
-#define NO_CASE (STAR | EOL)
-
-#define UPPERCASE(x) (cs ? (x) : UPPER_CASE(x))
-#define LOWERCASE(x) (cs ? (x) : LOWER_CASE(x))
-
-static unsigned char Word_Chars[256];
-#define IS_WORD_CHAR(x) Word_Chars[(unsigned int) (x)]
-
-#if 0
-static int ctx->open_paren_number;
-static char Closed_Paren_Matches[10];
-
-static SLRegexp_Type *This_Reg;
-static unsigned char *This_Str;
-#endif
-
-typedef struct
-{
- SLRegexp_Type *reg;
- unsigned char *str;
- unsigned int len;
- char closed_paren_matches[10];
- int open_paren_number;
-}
-Re_Context_Type;
-
-static unsigned char *do_nth_match (Re_Context_Type *ctx, int n, unsigned char *str, unsigned char *estr)
-{
- unsigned char *bpos;
-
- if (ctx->closed_paren_matches[n] == 0)
- return NULL;
-
- bpos = ctx->reg->beg_matches[n] + ctx->str;
- n = ctx->reg->end_matches[n];
- if (n == 0) return(str);
- if (n > (int) (estr - str)) return (NULL);
-
- /* This needs fixed for case sensitive match */
- if (0 != strncmp((char *) str, (char *) bpos, (unsigned int) n)) return (NULL);
- str += n;
- return (str);
-}
-
-/* returns pointer to the end of regexp or NULL */
-static unsigned char *regexp_looking_at (Re_Context_Type *ctx, register unsigned char *str, unsigned char *estr, unsigned char *buf, register int cs)
-{
- register unsigned char p, p1;
- unsigned char *save_str, *tmpstr;
- int n, n0, n1;
- int save_num_open;
- char save_closed_matches[10];
-
- p = *buf++;
-
- while (p != 0)
- {
- /* p1 = UPPERCASE(*buf); */
- /* if (str < estr) c = UPPERCASE(*str); */
-
- switch((unsigned char) p)
- {
- case BOW:
- if ((str != ctx->str)
- && ((str >= estr)
- || IS_WORD_CHAR(*(str - 1))
- || (0 == IS_WORD_CHAR(*str)))) return NULL;
- break;
-
- case EOW:
- if ((str < estr)
- && IS_WORD_CHAR (*str)) return NULL;
- break;
-
- case YES_CASE: cs = 1; break;
- case NO_CASE: cs = 0; break;
-
- case OPAREN:
- ctx->open_paren_number++;
- ctx->reg->beg_matches[ctx->open_paren_number] = (int) (str - ctx->str);
- break;
- case CPAREN:
- n = ctx->open_paren_number;
- while (n > 0)
- {
- if (ctx->closed_paren_matches[n] != 0)
- {
- n--;
- continue;
- }
- ctx->closed_paren_matches[n] = 1;
- ctx->reg->end_matches[n] = (unsigned int) (str - (ctx->str + ctx->reg->beg_matches[n]));
- break;
- }
- break;
-#ifdef NOT_LITERAL
- case NOT_LITERAL:
- if ((str >= estr) || (*buf == UPPERCASE(*str))) return (NULL);
- str++; buf++;
- break;
-
- case MAYBE_ONCE | NOT_LITERAL:
- save_str = str;
- if ((str < estr) && (*buf != UPPERCASE(*str))) str++;
- buf++;
- goto match_rest;
-
- case NOT_LITERAL | LEAST_ONCE: /* match at least once */
- if ((str >= estr) || (UPPERCASE(*str) == UPPERCASE(*buf))) return (NULL);
- str++;
- /* drop */
- case STAR | NOT_LITERAL:
- save_str = str; p1 = *buf;
- while ((str < estr) && (UPPERCASE(*str) != p1)) str++;
- buf++;
- goto match_rest;
-
- /* this type consists of the expression + two bytes that
- determine number of matches to perform */
- case MANY | NOT_LITERAL:
- p1 = *buf; buf++;
- n = n0 = (int) (unsigned char) *buf++;
- /* minimum number to match--- could be 0 */
- n1 = (int) (unsigned char) *buf++;
- /* maximum number to match */
-
- while (n && (str < estr) && (p1 != *str))
- {
- n--;
- str++;
- }
- if (n) return (NULL);
-
- save_str = str;
- n = n1 - n0;
- while (n && (str < estr) && (p1 != *str))
- {
- n--;
- str++;
- }
- goto match_rest;
-#endif /* NOT_LITERAL */
- case LITERAL:
- if ((str >= estr) || (*buf != UPPERCASE(*str))) return (NULL);
- str++; buf++;
- break;
-
- case MAYBE_ONCE | LITERAL:
- save_str = str;
- if ((str < estr) && (*buf == UPPERCASE(*str))) str++;
- buf++;
- goto match_rest;
-
- case LITERAL | LEAST_ONCE: /* match at least once */
- if ((str >= estr) || (UPPERCASE(*str) != UPPERCASE(*buf))) return (NULL);
- str++;
- /* drop */
- case STAR | LITERAL:
- save_str = str; p1 = *buf;
- while ((str < estr) && (UPPERCASE(*str) == p1)) str++;
- buf++;
- goto match_rest;
-
- /* this type consists of the expression + two bytes that
- determine number of matches to perform */
- case MANY | LITERAL:
- p1 = *buf; buf++;
- n = n0 = (int) (unsigned char) *buf++;
- /* minimum number to match--- could be 0 */
- n1 = (int) (unsigned char) *buf++;
- /* maximum number to match */
-
- while (n && (str < estr) && (p1 == *str))
- {
- n--;
- str++;
- }
- if (n) return (NULL);
-
- save_str = str;
- n = n1 - n0;
- while (n && (str < estr) && (p1 == *str))
- {
- n--;
- str++;
- }
- goto match_rest;
-
- case NTH_MATCH:
- if ((str = do_nth_match(ctx, (int) (unsigned char) *buf, str, estr)) == NULL) return(NULL);
- buf++;
- break;
-
- case MAYBE_ONCE | NTH_MATCH:
- save_str = str;
- tmpstr = do_nth_match (ctx, (int) (unsigned char) *buf, str, estr);
- buf++;
- if (tmpstr != NULL)
- {
- str = tmpstr;
- goto match_rest;
- }
- continue;
-
- case LEAST_ONCE | NTH_MATCH:
- if ((str = do_nth_match(ctx, (int) (unsigned char) *buf, str, estr)) == NULL) return(NULL);
- /* drop */
- case STAR | NTH_MATCH:
- save_str = str;
- while (NULL != (tmpstr = do_nth_match(ctx, (int) (unsigned char) *buf, str, estr)))
- {
- str = tmpstr;
- }
- buf++;
- goto match_rest;
-
- case MANY | NTH_MATCH: return(NULL);
- /* needs done */
-
- case RANGE:
- if (str >= estr) return (NULL);
- if (TEST_BIT(buf, UPPERCASE(*str)) == 0) return (NULL);
- buf += 32; str++;
- break;
-
- case MAYBE_ONCE | RANGE:
- save_str = str;
- if ((str < estr) && TEST_BIT(buf, UPPERCASE(*str))) str++;
- buf += 32;
- goto match_rest;
-
- case LEAST_ONCE | RANGE:
- if ((str >= estr) || (0 == TEST_BIT(buf, UPPERCASE(*str)))) return NULL;
- str++;
- /* drop */
- case STAR | RANGE:
- save_str = str;
- while ((str < estr) && TEST_BIT(buf, UPPERCASE(*str))) str++;
- buf += 32;
- goto match_rest;
-
- /* The first 32 bytes correspond to the range and the two
- * following bytes indicate the min and max number of matches.
- */
- case MANY | RANGE:
- /* minimum number to match--- could be 0 */
- n = n0 = (int) (unsigned char) *(buf + 32);
- /* maximum number to match */
- n1 = (int) (unsigned char) *(buf + 33);
-
- while (n && (str < estr) && (TEST_BIT(buf, UPPERCASE(*str))))
- {
- n--;
- str++;
- }
- if (n) return (NULL);
- save_str = str;
- n = n1 - n0;
- while (n && (str < estr) && (TEST_BIT(buf, UPPERCASE(*str))))
- {
- n--;
- str++;
- }
- buf += 34; /* 32 + 2 */
- goto match_rest;
-
- case ANY_DIGIT:
- if ((str >= estr) || (*str > '9') || (*str < '0')) return (NULL);
- str++;
- break;
-
- case MAYBE_ONCE | ANY_DIGIT:
- save_str = str;
- if ((str < estr) && ((*str > '9') || (*str < '0'))) str++;
- goto match_rest;
-
- case LEAST_ONCE | ANY_DIGIT:
- if ((str >= estr) || ((*str > '9') || (*str < '0'))) return NULL;
- str++;
- /* drop */
- case STAR | ANY_DIGIT:
- save_str = str;
- while ((str < estr) && ((*str <= '9') && (*str >= '0'))) str++;
- goto match_rest;
-
- case MANY | ANY_DIGIT:
- /* needs finished */
- return (NULL);
-
- case ANY:
- if ((str >= estr) || (*str == '\n')) return (NULL);
- str++;
- break;
-
- case MAYBE_ONCE | ANY:
- save_str = str;
- if ((str < estr) && (*str != '\n')) str++;
- goto match_rest;
-
- case LEAST_ONCE | ANY:
- if ((str >= estr) || (*str == '\n')) return (NULL);
- str++;
- /* drop */
- case STAR | ANY:
- save_str = str;
- while ((str < estr) && (*str != '\n')) str++;
- goto match_rest;
-
- case MANY | ANY:
- return (NULL);
- /* needs finished */
-
- case EOL:
- if ((str >= estr) || (*str == '\n')) return (str);
- return(NULL);
-
- default: return (NULL);
- }
- p = *buf++;
- continue;
-
- match_rest:
- if (save_str == str)
- {
- p = *buf++;
- continue;
- }
-
- /* if (p == EOL)
- * {
- * if (str < estr) return (NULL); else return (str);
- * }
- */
-
- SLMEMCPY(save_closed_matches, ctx->closed_paren_matches, sizeof(save_closed_matches));
- save_num_open = ctx->open_paren_number;
- while (str >= save_str)
- {
- tmpstr = regexp_looking_at (ctx, str, estr, buf, cs);
- if (tmpstr != NULL) return(tmpstr);
- SLMEMCPY(ctx->closed_paren_matches, save_closed_matches, sizeof(ctx->closed_paren_matches));
- ctx->open_paren_number = save_num_open;
- str--;
- }
- return NULL;
- }
- if ((p != 0) && (p != EOL)) return (NULL); else return (str);
-}
-
-static void
-fixup_beg_end_matches (Re_Context_Type *ctx, SLRegexp_Type *r, unsigned char *str, unsigned char *epos)
-{
- int i;
-
- if (str == NULL)
- {
- r->beg_matches[0] = -1;
- r->end_matches[0] = 0;
- SLMEMSET(ctx->closed_paren_matches, 0, sizeof(ctx->closed_paren_matches));
- }
- else
- {
- r->beg_matches[0] = (int) (str - ctx->str);
- r->end_matches[0] = (unsigned int) (epos - str);
- }
-
- for (i = 1; i < 10; i++)
- {
- if (ctx->closed_paren_matches [i] == 0)
- {
- r->beg_matches[i] = -1;
- r->end_matches[i] = 0;
- }
- }
-}
-
-static void init_re_context (Re_Context_Type *ctx, SLRegexp_Type *reg,
- unsigned char *str, unsigned int len)
-{
- memset ((char *) ctx, 0, sizeof (Re_Context_Type));
- ctx->reg = reg;
- ctx->str = str;
- ctx->len = len;
-}
-
-unsigned char *SLang_regexp_match(unsigned char *str,
- unsigned int len, SLRegexp_Type *reg)
-{
- register unsigned char c = 0, *estr = str + len;
- int cs = reg->case_sensitive, lit = 0;
- unsigned char *buf = reg->buf, *epos = NULL;
- Re_Context_Type ctx_buf;
-
- if (reg->min_length > len) return NULL;
-
- init_re_context (&ctx_buf, reg, str, len);
-
- if (*buf == BOL)
- {
- if (NULL == (epos = regexp_looking_at (&ctx_buf, str, estr, buf + 1, cs)))
- str = NULL;
-
- fixup_beg_end_matches (&ctx_buf, reg, str, epos);
- return str;
- }
-
- if (*buf == NO_CASE)
- {
- buf++; cs = 0;
- }
-
- if (*buf == YES_CASE)
- {
- buf++; cs = 1;
- }
-
- if (*buf == LITERAL)
- {
- lit = 1;
- c = *(buf + 1);
- }
- else if ((*buf == OPAREN) && (*(buf + 1) == LITERAL))
- {
- lit = 1;
- c = *(buf + 2);
- }
-
- while (str < estr)
- {
- ctx_buf.open_paren_number = 0;
- memset (ctx_buf.closed_paren_matches, 0, sizeof(ctx_buf.closed_paren_matches));
- /* take care of leading chars */
- if (lit)
- {
- while ((str < estr) && (c != UPPERCASE(*str))) str++;
- if (str >= estr)
- break; /* failed */
- }
-
- if (NULL != (epos = regexp_looking_at(&ctx_buf, str, estr, buf, cs)))
- {
- fixup_beg_end_matches (&ctx_buf, reg, str, epos);
- return str;
- }
- str++;
- }
- fixup_beg_end_matches (&ctx_buf, reg, NULL, epos);
- return NULL;
-}
-
-static unsigned char *convert_digit(unsigned char *pat, int *nn)
-{
- int n = 0, m = 0;
- unsigned char c;
- while (c = (unsigned char) *pat, (c <= '9') && (c >= '0'))
- {
- pat++;
- n = 10 * n + (c - '0');
- m++;
- }
- if (m == 0)
- {
- return (NULL);
- }
- *nn = n;
- return pat;
-}
-
-#define ERROR return (int) (pat - reg->pat)
-
-/* Returns 0 if successful or offset in pattern of error */
-int SLang_regexp_compile (SLRegexp_Type *reg)
-{
- register unsigned char *buf, *ebuf, *pat;
- unsigned char *last = NULL, *tmppat;
- register unsigned char c;
- int i, reverse = 0, n, cs;
- int oparen = 0, nparen = 0;
- /* substring stuff */
- int count, last_count, this_max_mm = 0, max_mm = 0, ordinary_search,
- no_osearch = 0, min_length = 0;
- unsigned char *mm_p = NULL, *this_mm_p = NULL;
- static int already_initialized;
-
- reg->beg_matches[0] = reg->end_matches[0] = 0;
- buf = reg->buf;
- ebuf = (reg->buf + reg->buf_len) - 2; /* make some room */
- pat = reg->pat;
- cs = reg->case_sensitive;
-
- if (already_initialized == 0)
- {
- SLang_init_case_tables ();
-#ifdef IBMPC_SYSTEM
- SLmake_lut (Word_Chars, (unsigned char *) "_0-9a-zA-Z\200-\232\240-\245\341-\353", 0);
-#else
- SLmake_lut (Word_Chars, (unsigned char *) "_0-9a-zA-Z\277-\326\330-\336\340-\366\370-\376", 0);
-#endif
- already_initialized = 1;
- }
-
- i = 1; while (i < 10)
- {
- reg->beg_matches[i] = -1;
- reg->end_matches[i] = 0;
- i++;
- }
-
- if (*pat == '\\')
- {
- if (pat[1] == 'c')
- {
- cs = 1;
- pat += 2;
- no_osearch = 1;
- }
- else if (pat[1] == 'C')
- {
- cs = 0;
- pat += 2;
- no_osearch = 1;
- }
- }
-
- if (*pat == '^')
- {
- pat++;
- *buf++ = BOL;
- reg->must_match_bol = 1;
- }
- else reg->must_match_bol = 0;
-
- if (cs != reg->case_sensitive)
- {
- if (cs) *buf++ = YES_CASE;
- else *buf++ = NO_CASE;
- }
-
- *buf = 0;
-
- last_count = count = 0;
- while ((c = *pat++) != 0)
- {
- if (buf >= ebuf - 3)
- {
- SLang_doerror ("Pattern too large to be compiled.");
- ERROR;
- }
-
- count++;
- switch (c)
- {
- case '$':
- if (*pat != 0) goto literal_char;
- *buf++ = EOL;
- break;
-
- case '\\':
- c = *pat++;
- no_osearch = 1;
- switch(c)
- {
- case 'e': c = 033; goto literal_char;
- case 'n': c = '\n'; goto literal_char;
- case 't': c = '\t'; goto literal_char;
- case 'C': cs = 0; *buf++ = NO_CASE; break;
- case 'c': cs = 1; *buf++ = YES_CASE; break;
- case '1': case '2': case '3': case '4': case '5':
- case '6': case '7': case '8': case '9':
- c = c - '0';
- if ((int) c > nparen) ERROR;
- last = buf;
- *buf++ = NTH_MATCH; *buf++ = c;
- break;
-#ifdef NOT_LITERAL
- case '~': /* slang extension */
- if ((c = *pat) == 0) ERROR;
- pat++;
- last = buf;
- *buf++ = NOT_LITERAL;
- *buf++ = c;
- min_length++;
- break;
-#endif
- case 'd': /* slang extension */
- last = buf;
- *buf++ = ANY_DIGIT;
- min_length++;
- break;
-
- case '<':
- last = NULL;
- *buf++ = BOW;
- break;
-
- case '>':
- last = NULL;
- *buf++ = EOW;
- break;
-
- case '{':
- if (last == NULL) goto literal_char;
- *last |= MANY;
- tmppat = convert_digit(pat, &n);
- if (tmppat == NULL) ERROR;
- pat = tmppat;
- *buf++ = n;
-
- min_length += (n - 1);
-
- if (*pat == '\\')
- {
- *buf++ = n;
- }
- else if (*pat == ',')
- {
- pat++;
- if (*pat == '\\')
- {
- n = 255;
- }
- else
- {
- tmppat = convert_digit(pat, &n);
- if (tmppat == NULL) ERROR;
- pat = tmppat;
- if (*pat != '\\') ERROR;
- }
- *buf++ = n;
- }
- else ERROR;
- last = NULL;
- pat++;
- if (*pat != '}') ERROR;
- pat++;
- break; /* case '{' */
-
- case '(':
- oparen++;
- if (oparen > 9) ERROR;
- *buf++ = OPAREN;
- break;
- case ')':
- if (oparen == 0) ERROR;
- oparen--;
- nparen++;
- *buf++ = CPAREN;
- break;
-
- case 0: ERROR;
- default:
- goto literal_char;
- }
- break;
-
- case '[':
-
- *buf = RANGE;
- last = buf++;
-
- if (buf + 32 >= ebuf) ERROR;
-
- for (i = 0; i < 32; i++) buf[i] = 0;
- c = *pat++;
- if (c == '^')
- {
- reverse = 1;
- SET_BIT(buf, '\n');
- c = *pat++;
- }
-
- if (c == ']')
- {
- SET_BIT(buf, c);
- c = *pat++;
- }
- while (c && (c != ']'))
- {
- if (c == '\\')
- {
- c = *pat++;
- switch(c)
- {
- case 'n': c = '\n'; break;
- case 't': c = '\t'; break;
- case 0: ERROR;
- }
- }
-
- if (*pat == '-')
- {
- pat++;
- while (c < *pat)
- {
- if (cs == 0)
- {
- SET_BIT(buf, UPPERCASE(c));
- SET_BIT(buf, LOWERCASE(c));
- }
- else SET_BIT(buf, c);
- c++;
- }
- }
- if (cs == 0)
- {
- SET_BIT(buf, UPPERCASE(c));
- SET_BIT(buf, LOWERCASE(c));
- }
- else SET_BIT(buf, c);
- c = *pat++;
- }
- if (c != ']') ERROR;
- if (reverse) for (i = 0; i < 32; i++) buf[i] = buf[i] ^ 0xFF;
- reverse = 0;
- buf += 32;
- min_length++;
- break;
-
- case '.':
- last = buf;
- *buf++ = ANY;
- min_length++;
- break;
-
- case '*':
- if (last == NULL) goto literal_char;
- *last |= STAR;
- min_length--;
- last = NULL;
- break;
-
- case '+':
- if (last == NULL) goto literal_char;
- *last |= LEAST_ONCE;
- last = NULL;
- break;
-
- case '?':
- if (last == NULL) goto literal_char;
- *last |= MAYBE_ONCE;
- last = NULL;
- min_length--;
- break;
-
- literal_char:
- default:
- /* This is to keep track of longest substring */
- min_length++;
- this_max_mm++;
- if (last_count + 1 == count)
- {
- if (this_max_mm == 1)
- {
- this_mm_p = buf;
- }
- else if (max_mm < this_max_mm)
- {
- mm_p = this_mm_p;
- max_mm = this_max_mm;
- }
- }
- else
- {
- this_mm_p = buf;
- this_max_mm = 1;
- }
-
- last_count = count;
-
- last = buf;
- *buf++ = LITERAL;
- *buf++ = UPPERCASE(c);
- }
- }
- *buf = 0;
- /* Check for ordinary search */
- ebuf = buf;
- buf = reg->buf;
-
- if (no_osearch) ordinary_search = 0;
- else
- {
- ordinary_search = 1;
- while (buf < ebuf)
- {
- if (*buf != LITERAL)
- {
- ordinary_search = 0;
- break;
- }
- buf += 2;
- }
- }
-
- reg->osearch = ordinary_search;
- reg->must_match_str[15] = 0;
- reg->min_length = (min_length > 0) ? (unsigned int) min_length : 0;
- if (ordinary_search)
- {
- strncpy((char *) reg->must_match_str, (char *) reg->pat, 15);
- reg->must_match = 1;
- return(0);
- }
- /* check for longest substring of pattern */
- reg->must_match = 0;
- if ((mm_p == NULL) && (this_mm_p != NULL)) mm_p = this_mm_p;
- if (mm_p == NULL)
- {
- return (0);
- }
- n = 15;
- pat = reg->must_match_str;
- buf = mm_p;
- while (n--)
- {
- if (*buf++ != LITERAL) break;
- *pat++ = *buf++;
- }
- *pat = 0;
- if (pat != reg->must_match_str) reg->must_match = 1;
- return(0);
-}
-
-char *SLregexp_quote_string (char *re, char *buf, unsigned int buflen)
-{
- char ch;
- char *b, *bmax;
-
- if (re == NULL) return NULL;
-
- b = buf;
- bmax = buf + buflen;
-
- while (b < bmax)
- {
- switch (ch = *re++)
- {
- case 0:
- *b = 0;
- return buf;
-
- case '$':
- case '\\':
- case '[':
- case ']':
- case '.':
- case '^':
- case '*':
- case '+':
- case '?':
- *b++ = '\\';
- if (b == bmax) break;
- /* drop */
-
- default:
- *b++ = ch;
- }
- }
- return NULL;
-}
-
-#if 0
-#define MAX_EXP 4096
-int main(int argc, char **argv)
-{
- FILE *fp;
- char *regexp, *file;
- char expbuf[MAX_EXP], buf[512];
- SLRegexp_Type reg;
-
- file = argv[2];
- regexp = argv[1];
-
- if (NULL == (fp = fopen(file, "r")))
- {
- fprintf(stderr, "File not open\n");
- return(1);
- }
-
- reg.buf = expbuf;
- reg.buf_len = MAX_EXP;
- reg.pat = regexp;
- reg.case_sensitive = 1;
-
- if (!regexp_compile(&reg)) while (NULL != fgets(buf, 511, fp))
- {
- if (reg.osearch)
- {
- if (NULL == strstr(buf, reg.pat)) continue;
- }
- else
- {
- if (reg.must_match && (NULL == strstr(buf, reg.must_match_str))) continue;
- if (0 == regexp_match(buf, buf + strlen(buf), &reg)) continue;
- }
-
- fputs(buf, stdout);
- }
- return (0);
-}
-#endif
diff --git a/mdk-stage1/slang/slrline.c b/mdk-stage1/slang/slrline.c
deleted file mode 100644
index 1874be0bb..000000000
--- a/mdk-stage1/slang/slrline.c
+++ /dev/null
@@ -1,836 +0,0 @@
-/* SLang_read_line interface --- uses SLang tty stuff */
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-#ifdef REAL_UNIX_SYSTEM
-int SLang_RL_EOF_Char = 4;
-#else
-int SLang_RL_EOF_Char = 26;
-#endif
-
-int SLang_Rline_Quit;
-static SLang_RLine_Info_Type *This_RLI;
-
-static unsigned char Char_Widths[256];
-static void position_cursor (int);
-
-static void rl_beep (void)
-{
- putc(7, stdout);
- fflush (stdout);
-}
-
-/* editing functions */
-static int rl_bol (void)
-{
- if (This_RLI->point == 0) return 0;
- This_RLI->point = 0;
- return 1;
-}
-
-static int rl_eol (void)
-{
- if (This_RLI->point == This_RLI->len) return 0;
- This_RLI->point = This_RLI->len;
- return 1;
-}
-
-static int rl_right (void)
-{
- if (This_RLI->point == This_RLI->len) return 0;
- This_RLI->point++;
- return 1;
-}
-
-static int rl_left (void)
-{
- if (This_RLI->point == 0) return 0;
- This_RLI->point--;
- return 1;
-}
-
-static int rl_self_insert (void)
-{
- unsigned char *pmin, *p;
-
- if (This_RLI->len == This_RLI->buf_len)
- {
- rl_beep ();
- return 0;
- }
-
- pmin = This_RLI->buf + This_RLI->point;
- p = This_RLI->buf + This_RLI->len;
- while (p > pmin)
- {
- *p = *(p - 1);
- p--;
- }
- *pmin = SLang_Last_Key_Char;
-
- This_RLI->len++;
- This_RLI->point++;
- if ((This_RLI->curs_pos + 2 >= This_RLI->edit_width)
- || (This_RLI->tt_insert == NULL)
- || (Char_Widths[SLang_Last_Key_Char] != 1)) return 1;
-
- (*This_RLI->tt_insert)((char) SLang_Last_Key_Char);
- /* update screen buf */
- p = This_RLI->old_upd + (This_RLI->len - 1);
- pmin = This_RLI->old_upd + (This_RLI->point - 1);
- while (p > pmin)
- {
- *p = *(p - 1);
- p--;
- }
- *pmin = SLang_Last_Key_Char;
- return 0;
-}
-
-int SLang_rline_insert (char *s)
-{
- unsigned char *pmin, *p;
- int n;
-
- n = strlen (s);
- if (n > This_RLI->buf_len - This_RLI->len)
- n = This_RLI->buf_len - This_RLI->len;
-
- if (n == 0) return 0;
-
- pmin = This_RLI->buf + This_RLI->point;
- p = This_RLI->buf + (This_RLI->len - 1);
-
- while (p >= pmin)
- {
- *(p + n) = *p;
- p--;
- }
- SLMEMCPY ((char *) pmin, s, n);
-
- This_RLI->len += n;
- This_RLI->point += n;
- return n;
-}
-
-static int rl_deln (int n)
-{
- unsigned char *pmax, *p;
-
- p = This_RLI->buf + This_RLI->point;
- pmax = This_RLI->buf + This_RLI->len;
-
- if (p + n > pmax) n = (int) (pmax - p);
- while (p < pmax)
- {
- *p = *(p + n);
- p++;
- }
- This_RLI->len -= n;
- return n;
-}
-
-static int rl_del (void)
-{
- return rl_deln(1);
-}
-
-static int rl_quote_insert (void)
-{
- int err = SLang_Error;
- SLang_Error = 0;
- SLang_Last_Key_Char = (*This_RLI->getkey)();
- rl_self_insert ();
- if (SLang_Error == SL_USER_BREAK) SLang_Error = 0;
- else SLang_Error = err;
- return 1;
-}
-
-static int rl_trim (void)
-{
- unsigned char *p, *pmax, *p1;
- p = This_RLI->buf + This_RLI->point;
- pmax = This_RLI->buf + This_RLI->len;
-
- if (p == pmax)
- {
- if (p == This_RLI->buf) return 0;
- p--;
- }
-
- if ((*p != ' ') && (*p != '\t')) return 0;
- p1 = p;
- while ((p1 < pmax) && ((*p1 == ' ') || (*p1 == '\t'))) p1++;
- pmax = p1;
- p1 = This_RLI->buf;
-
- while ((p >= p1) && ((*p == ' ') || (*p == '\t'))) p--;
- if (p == pmax) return 0;
- p++;
-
- This_RLI->point = (int) (p - p1);
- return rl_deln ((int) (pmax - p));
-}
-
-static int rl_bdel (void)
-{
- if (rl_left()) return rl_del();
- return 0;
-}
-
-static int rl_deleol (void)
-{
- if (This_RLI->point == This_RLI->len) return 0;
- *(This_RLI->buf + This_RLI->point) = 0;
- This_RLI->len = This_RLI->point;
- return 1;
-}
-
-static int rl_delete_line (void)
-{
- This_RLI->point = 0;
- *(This_RLI->buf + This_RLI->point) = 0;
- This_RLI->len = 0;
- return 1;
-}
-
-static int rl_enter (void)
-{
- *(This_RLI->buf + This_RLI->len) = 0;
- SLang_Rline_Quit = 1;
- return 1;
-}
-
-static SLKeyMap_List_Type *RL_Keymap;
-
-/* This update is designed for dumb terminals. It assumes only that the
- * terminal can backspace via ^H, and move cursor to start of line via ^M.
- * There is a hook so the user can provide a more sophisticated update if
- * necessary.
- */
-
-static void position_cursor (int col)
-{
- unsigned char *p, *pmax;
- int dc;
-
- if (col == This_RLI->curs_pos)
- {
- fflush (stdout);
- return;
- }
-
- if (This_RLI->tt_goto_column != NULL)
- {
- (*This_RLI->tt_goto_column)(col);
- This_RLI->curs_pos = col;
- fflush (stdout);
- return;
- }
-
- dc = This_RLI->curs_pos - col;
- if (dc < 0)
- {
- p = This_RLI->new_upd + This_RLI->curs_pos;
- pmax = This_RLI->new_upd + col;
- while (p < pmax) putc((char) *p++, stdout);
- }
- else
- {
- if (dc < col)
- {
- while (dc--) putc(8, stdout);
- }
- else
- {
- putc('\r', stdout);
- p = This_RLI->new_upd;
- pmax = This_RLI->new_upd + col;
- while (p < pmax) putc((char) *p++, stdout);
- }
- }
- This_RLI->curs_pos = col;
- fflush (stdout);
-}
-
-static void erase_eol (SLang_RLine_Info_Type *rli)
-{
- unsigned char *p, *pmax;
-
- p = rli->old_upd + rli->curs_pos;
- pmax = rli->old_upd + rli->old_upd_len;
-
- while (p++ < pmax) putc(' ', stdout);
-
- rli->curs_pos = rli->old_upd_len;
-}
-
-static unsigned char *spit_out(SLang_RLine_Info_Type *rli, unsigned char *p)
-{
- unsigned char *pmax;
- position_cursor ((int) (p - rli->new_upd));
- pmax = rli->new_upd + rli->new_upd_len;
- while (p < pmax) putc((char) *p++, stdout);
- rli->curs_pos = rli->new_upd_len;
- return pmax;
-}
-
-static void really_update (SLang_RLine_Info_Type *rli, int new_curs_position)
-{
- unsigned char *b = rli->old_upd, *p = rli->new_upd, chb, chp;
- unsigned char *pmax;
-
- if (rli->update_hook != NULL)
- {
- (*rli->update_hook)(p, rli->edit_width, new_curs_position);
- }
- else
- {
- pmax = p + rli->edit_width;
- while (p < pmax)
- {
- chb = *b++; chp = *p++;
- if (chb == chp) continue;
-
- if (rli->old_upd_len <= rli->new_upd_len)
- {
- /* easy one */
- (void) spit_out (rli, p - 1);
- break;
- }
- spit_out(rli, p - 1);
- erase_eol (rli);
- break;
- }
- position_cursor (new_curs_position);
- }
-
- /* update finished, so swap */
-
- rli->old_upd_len = rli->new_upd_len;
- p = rli->old_upd;
- rli->old_upd = rli->new_upd;
- rli->new_upd = p;
-}
-
-static void RLupdate (SLang_RLine_Info_Type *rli)
-{
- int len, dlen, start_len = 0, prompt_len = 0, tw = 0, count;
- int want_cursor_pos;
- unsigned char *b, chb, *b_point, *p;
- int no_echo;
-
- no_echo = rli->flags & SL_RLINE_NO_ECHO;
-
- b_point = (unsigned char *) (rli->buf + rli->point);
- *(rli->buf + rli->len) = 0;
-
- /* expand characters for output buffer --- handle prompt first.
- * Do two passes --- first to find out where to begin upon horiz
- * scroll and the second to actually fill the buffer. */
- len = 0;
- count = 2; /* once for prompt and once for buf */
-
- b = (unsigned char *) rli->prompt;
- while (count--)
- {
- if ((count == 0) && no_echo)
- break;
-
- /* The prompt could be NULL */
- if (b != NULL) while ((chb = *b) != 0)
- {
- /* This will ensure that the screen is scrolled a third of the edit
- * width each time */
- if (b_point == b) break;
- dlen = Char_Widths[chb];
- if ((chb == '\t') && tw)
- {
- dlen = tw * ((len - prompt_len) / tw + 1) - (len - prompt_len);
- }
- len += dlen;
- b++;
- }
- tw = rli->tab;
- b = (unsigned char *) rli->buf;
- if (count == 1) want_cursor_pos = prompt_len = len;
- }
-
- if (len < rli->edit_width - rli->dhscroll) start_len = 0;
- else if ((rli->start_column > len)
- || (rli->start_column + rli->edit_width <= len))
- {
- start_len = len - (rli->edit_width - rli->dhscroll);
- if (start_len < 0) start_len = 0;
- }
- else start_len = rli->start_column;
- rli->start_column = start_len;
-
- want_cursor_pos = len - start_len;
-
- /* second pass */
- p = rli->new_upd;
-
- len = 0;
- count = 2;
- b = (unsigned char *) rli->prompt;
- if (b == NULL) b = (unsigned char *) "";
-
- while ((len < start_len) && (*b))
- {
- len += Char_Widths[*b++];
- }
-
- tw = 0;
- if (*b == 0)
- {
- b = (unsigned char *) rli->buf;
- while (len < start_len)
- {
- len += Char_Widths[*b++];
- }
- tw = rli->tab;
- count--;
- }
-
- len = 0;
- while (count--)
- {
- if ((count == 0) && (no_echo))
- break;
-
- while ((len < rli->edit_width) && ((chb = *b++) != 0))
- {
- dlen = Char_Widths[chb];
- if (dlen == 1) *p++ = chb;
- else
- {
- if ((chb == '\t') && tw)
- {
- dlen = tw * ((len + start_len - prompt_len) / tw + 1) - (len + start_len - prompt_len);
- len += dlen; /* ok since dlen comes out 0 */
- if (len > rli->edit_width) dlen = len - rli->edit_width;
- while (dlen--) *p++ = ' ';
- dlen = 0;
- }
- else
- {
- if (dlen == 3)
- {
- chb &= 0x7F;
- *p++ = '~';
- }
-
- *p++ = '^';
- if (chb == 127) *p++ = '?';
- else *p++ = chb + '@';
- }
- }
- len += dlen;
- }
- /* if (start_len > prompt_len) break; */
- tw = rli->tab;
- b = (unsigned char *) rli->buf;
- }
-
- rli->new_upd_len = (int) (p - rli->new_upd);
- while (p < rli->new_upd + rli->edit_width) *p++ = ' ';
- really_update (rli, want_cursor_pos);
-}
-
-void SLrline_redraw (SLang_RLine_Info_Type *rli)
-{
- unsigned char *p = rli->new_upd;
- unsigned char *pmax = p + rli->edit_width;
- while (p < pmax) *p++ = ' ';
- rli->new_upd_len = rli->edit_width;
- really_update (rli, 0);
- RLupdate (rli);
-}
-
-static int rl_eof_insert (void)
-{
- if (This_RLI->len == 0)
- {
- SLang_Last_Key_Char = SLang_RL_EOF_Char;
- /* rl_self_insert (); */
- return rl_enter ();
- }
- return 0;
-}
-
-/* This is very naive. It knows very little about nesting and nothing
- * about quoting.
- */
-static void blink_match (SLang_RLine_Info_Type *rli)
-{
- unsigned char bra, ket;
- unsigned int delta_column;
- unsigned char *p, *pmin;
- int dq_level, sq_level;
- int level;
-
- pmin = rli->buf;
- p = pmin + rli->point;
- if (pmin == p)
- return;
-
- ket = SLang_Last_Key_Char;
- switch (ket)
- {
- case ')':
- bra = '(';
- break;
- case ']':
- bra = '[';
- break;
- case '}':
- bra = '{';
- break;
- default:
- return;
- }
-
- level = 0;
- sq_level = dq_level = 0;
-
- delta_column = 0;
- while (p > pmin)
- {
- char ch;
-
- p--;
- delta_column++;
- ch = *p;
-
- if (ch == ket)
- {
- if ((dq_level == 0) && (sq_level == 0))
- level++;
- }
- else if (ch == bra)
- {
- if ((dq_level != 0) || (sq_level != 0))
- continue;
-
- level--;
- if (level == 0)
- {
- rli->point -= delta_column;
- RLupdate (rli);
- (*rli->input_pending)(10);
- rli->point += delta_column;
- RLupdate (rli);
- break;
- }
- if (level < 0)
- break;
- }
- else if (ch == '"') dq_level = !dq_level;
- else if (ch == '\'') sq_level = !sq_level;
- }
-}
-
-int SLang_read_line (SLang_RLine_Info_Type *rli)
-{
- unsigned char *p, *pmax;
- SLang_Key_Type *key;
-
- SLang_Rline_Quit = 0;
- This_RLI = rli;
- p = rli->old_upd; pmax = p + rli->edit_width;
- while (p < pmax) *p++ = ' ';
-
- /* Sanity checking */
- rli->len = strlen ((char *) rli->buf);
- if (rli->len >= rli->buf_len)
- {
- rli->len = 0;
- *rli->buf = 0;
- }
- if (rli->point > rli->len) rli->point = rli->len;
- if (rli->point < 0) rli->point = 0;
-
- rli->curs_pos = rli->start_column = 0;
- rli->new_upd_len = rli->old_upd_len = 0;
-
- This_RLI->last_fun = NULL;
- if (rli->update_hook == NULL)
- putc ('\r', stdout);
-
- RLupdate (rli);
-
- while (1)
- {
- key = SLang_do_key (RL_Keymap, (int (*)(void)) rli->getkey);
-
- if ((key == NULL) || (key->f.f == NULL))
- rl_beep ();
- else
- {
- if ((SLang_Last_Key_Char == SLang_RL_EOF_Char)
- && (*key->str == 2)
- && (This_RLI->len == 0))
- rl_eof_insert ();
- else if (key->type == SLKEY_F_INTRINSIC)
- {
- if ((key->f.f)())
- RLupdate (rli);
-
- if ((rli->flags & SL_RLINE_BLINK_MATCH)
- && (rli->input_pending != NULL))
- blink_match (rli);
- }
-
- if (SLang_Rline_Quit)
- {
- This_RLI->buf[This_RLI->len] = 0;
- if (SLang_Error == SL_USER_BREAK)
- {
- SLang_Error = 0;
- return -1;
- }
- return This_RLI->len;
- }
- }
- if (key != NULL)
- This_RLI->last_fun = key->f.f;
- }
-}
-
-static int rl_abort (void)
-{
- rl_delete_line ();
- return rl_enter ();
-}
-
-/* TTY interface --- ANSI */
-
-static void ansi_goto_column (int n)
-{
- putc('\r', stdout);
- if (n) fprintf(stdout, "\033[%dC", n);
-}
-
-static void rl_select_line (SLang_Read_Line_Type *p)
-{
- This_RLI->last = p;
- strcpy ((char *) This_RLI->buf, (char *) p->buf);
- This_RLI->point = This_RLI->len = strlen((char *) p->buf);
-}
-static int rl_next_line (void);
-static int rl_prev_line (void)
-{
- SLang_Read_Line_Type *prev;
-
- if (((This_RLI->last_fun != (FVOID_STAR) rl_prev_line)
- && (This_RLI->last_fun != (FVOID_STAR) rl_next_line))
- || (This_RLI->last == NULL))
- {
- prev = This_RLI->tail;
- }
- else prev = This_RLI->last->prev;
-
- if (prev == NULL)
- {
- rl_beep ();
- return 0;
- }
-
- rl_select_line (prev);
- return 1;
-}
-static int rl_redraw (void)
-{
- SLrline_redraw (This_RLI);
- return 1;
-}
-
-static int rl_next_line (void)
-{
- SLang_Read_Line_Type *next;
-
- if (((This_RLI->last_fun != (FVOID_STAR) rl_prev_line)
- && (This_RLI->last_fun != (FVOID_STAR) rl_next_line))
- || (This_RLI->last == NULL))
- {
- rl_beep ();
- return 0;
- }
-
- next = This_RLI->last->next;
-
- if (next == NULL)
- {
- This_RLI->len = This_RLI->point = 0;
- *This_RLI->buf = 0;
- This_RLI->last = NULL;
- }
- else rl_select_line (next);
- return 1;
-}
-
-static SLKeymap_Function_Type SLReadLine_Functions[] =
-{
- {"up", rl_prev_line},
- {"down", rl_next_line},
- {"bol", rl_bol},
- {"eol", rl_eol},
- {"right", rl_right},
- {"left", rl_left},
- {"self_insert", rl_self_insert},
- {"bdel", rl_bdel},
- {"del", rl_del},
- {"deleol", rl_deleol},
- {"enter", rl_enter},
- {"trim", rl_trim},
- {"quoted_insert", rl_quote_insert},
- {(char *) NULL, NULL}
-};
-
-int SLang_init_readline (SLang_RLine_Info_Type *rli)
-{
- int ch;
- char simple[2];
-
- if (RL_Keymap == NULL)
- {
- simple[1] = 0;
- if (NULL == (RL_Keymap = SLang_create_keymap ("ReadLine", NULL)))
- return -1;
-
- RL_Keymap->functions = SLReadLine_Functions;
-
- /* This breaks under some DEC ALPHA compilers (scary!) */
-#ifndef __DECC
- for (ch = ' '; ch < 256; ch++)
- {
- simple[0] = (char) ch;
- SLkm_define_key (simple, (FVOID_STAR) rl_self_insert, RL_Keymap);
- }
-#else
- ch = ' ';
- while (1)
- {
- simple[0] = (char) ch;
- SLkm_define_key (simple, (FVOID_STAR) rl_self_insert, RL_Keymap);
- ch = ch + 1;
- if (ch == 256) break;
- }
-#endif /* NOT __DECC */
-
- simple[0] = SLang_Abort_Char;
- SLkm_define_key (simple, (FVOID_STAR) rl_abort, RL_Keymap);
- simple[0] = SLang_RL_EOF_Char;
- SLkm_define_key (simple, (FVOID_STAR) rl_eof_insert, RL_Keymap);
-
-#ifndef IBMPC_SYSTEM
- SLkm_define_key ("^[[A", (FVOID_STAR) rl_prev_line, RL_Keymap);
- SLkm_define_key ("^[[B", (FVOID_STAR) rl_next_line, RL_Keymap);
- SLkm_define_key ("^[[C", (FVOID_STAR) rl_right, RL_Keymap);
- SLkm_define_key ("^[[D", (FVOID_STAR) rl_left, RL_Keymap);
- SLkm_define_key ("^[OA", (FVOID_STAR) rl_prev_line, RL_Keymap);
- SLkm_define_key ("^[OB", (FVOID_STAR) rl_next_line, RL_Keymap);
- SLkm_define_key ("^[OC", (FVOID_STAR) rl_right, RL_Keymap);
- SLkm_define_key ("^[OD", (FVOID_STAR) rl_left, RL_Keymap);
-#else
- SLkm_define_key ("^@H", (FVOID_STAR) rl_prev_line, RL_Keymap);
- SLkm_define_key ("^@P", (FVOID_STAR) rl_next_line, RL_Keymap);
- SLkm_define_key ("^@M", (FVOID_STAR) rl_right, RL_Keymap);
- SLkm_define_key ("^@K", (FVOID_STAR) rl_left, RL_Keymap);
- SLkm_define_key ("^@S", (FVOID_STAR) rl_del, RL_Keymap);
- SLkm_define_key ("^@O", (FVOID_STAR) rl_eol, RL_Keymap);
- SLkm_define_key ("^@G", (FVOID_STAR) rl_bol, RL_Keymap);
-
- SLkm_define_key ("\xE0H", (FVOID_STAR) rl_prev_line, RL_Keymap);
- SLkm_define_key ("\xE0P", (FVOID_STAR) rl_next_line, RL_Keymap);
- SLkm_define_key ("\xE0M", (FVOID_STAR) rl_right, RL_Keymap);
- SLkm_define_key ("\xE0K", (FVOID_STAR) rl_left, RL_Keymap);
- SLkm_define_key ("\xE0S", (FVOID_STAR) rl_del, RL_Keymap);
- SLkm_define_key ("\xE0O", (FVOID_STAR) rl_eol, RL_Keymap);
- SLkm_define_key ("\xE0G", (FVOID_STAR) rl_bol, RL_Keymap);
-#endif
- SLkm_define_key ("^C", (FVOID_STAR) rl_abort, RL_Keymap);
- SLkm_define_key ("^E", (FVOID_STAR) rl_eol, RL_Keymap);
- SLkm_define_key ("^G", (FVOID_STAR) rl_abort, RL_Keymap);
- SLkm_define_key ("^I", (FVOID_STAR) rl_self_insert, RL_Keymap);
- SLkm_define_key ("^A", (FVOID_STAR) rl_bol, RL_Keymap);
- SLkm_define_key ("\r", (FVOID_STAR) rl_enter, RL_Keymap);
- SLkm_define_key ("\n", (FVOID_STAR) rl_enter, RL_Keymap);
- SLkm_define_key ("^K", (FVOID_STAR) rl_deleol, RL_Keymap);
- SLkm_define_key ("^L", (FVOID_STAR) rl_deleol, RL_Keymap);
- SLkm_define_key ("^V", (FVOID_STAR) rl_del, RL_Keymap);
- SLkm_define_key ("^D", (FVOID_STAR) rl_del, RL_Keymap);
- SLkm_define_key ("^F", (FVOID_STAR) rl_right, RL_Keymap);
- SLkm_define_key ("^B", (FVOID_STAR) rl_left, RL_Keymap);
- SLkm_define_key ("^?", (FVOID_STAR) rl_bdel, RL_Keymap);
- SLkm_define_key ("^H", (FVOID_STAR) rl_bdel, RL_Keymap);
- SLkm_define_key ("^P", (FVOID_STAR) rl_prev_line, RL_Keymap);
- SLkm_define_key ("^N", (FVOID_STAR) rl_next_line, RL_Keymap);
- SLkm_define_key ("^R", (FVOID_STAR) rl_redraw, RL_Keymap);
- SLkm_define_key ("`", (FVOID_STAR) rl_quote_insert, RL_Keymap);
- SLkm_define_key ("\033\\", (FVOID_STAR) rl_trim, RL_Keymap);
- if (SLang_Error) return -1;
- }
-
- if (rli->prompt == NULL) rli->prompt = "";
- if (rli->keymap == NULL) rli->keymap = RL_Keymap;
- rli->old_upd = rli->upd_buf1;
- rli->new_upd = rli->upd_buf2;
- *rli->buf = 0;
- rli->point = 0;
-
- if (rli->flags & SL_RLINE_USE_ANSI)
- {
- if (rli->tt_goto_column == NULL) rli->tt_goto_column = ansi_goto_column;
- }
-
- if (Char_Widths[0] == 2) return 0;
-
- for (ch = 0; ch < 32; ch++) Char_Widths[ch] = 2;
- for (ch = 32; ch < 256; ch++) Char_Widths[ch] = 1;
- Char_Widths[127] = 2;
-#ifndef IBMPC_SYSTEM
- for (ch = 128; ch < 160; ch++) Char_Widths[ch] = 3;
-#endif
-
- return 0;
-}
-
-SLang_Read_Line_Type *SLang_rline_save_line (SLang_RLine_Info_Type *rli)
-{
- SLang_Read_Line_Type *rl = NULL;
- unsigned char *buf;
-
- if ((rli == NULL) || (rli->buf == NULL))
- return NULL;
-
- if (NULL == (rl = (SLang_Read_Line_Type *) SLmalloc (sizeof (SLang_Read_Line_Type)))
- || (NULL == (buf = (unsigned char *) SLmake_string ((char *)rli->buf))))
- {
- SLfree ((char *)rl);
- return NULL;
- }
- rl->buf = buf;
- rl->buf_len = strlen ((char *)buf);
- rl->num = rl->misc = 0;
- rl->next = rl->prev = NULL;
-
- if (rli->tail != NULL)
- {
- rli->tail->next = rl;
- rl->prev = rli->tail;
- }
- rli->tail = rl;
-
- return rl;
-}
diff --git a/mdk-stage1/slang/slscanf.c b/mdk-stage1/slang/slscanf.c
deleted file mode 100644
index 5bd93ff41..000000000
--- a/mdk-stage1/slang/slscanf.c
+++ /dev/null
@@ -1,718 +0,0 @@
-/* sscanf function for S-Lang */
-/* Copyright (c) 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-#include <ctype.h>
-#include <math.h>
-#include <errno.h>
-
-#include "slang.h"
-#include "_slang.h"
-
-static char *skip_whitespace (char *s)
-{
- while (isspace (*s))
- s++;
-
- return s;
-}
-
-static void init_map (unsigned char map[256], int base)
-{
- memset ((char *) map, 0xFF, 256);
-
- map['0'] = 0; map['1'] = 1; map['2'] = 2; map['3'] = 3;
- map['4'] = 4; map['5'] = 5; map['6'] = 6; map['7'] = 7;
- if (base == 8)
- return;
-
- map['8'] = 8; map['9'] = 9;
- if (base == 10)
- return;
-
- map['A'] = 10; map['B'] = 11; map['C'] = 12; map['D'] = 13;
- map['E'] = 14; map['F'] = 15; map['a'] = 10; map['b'] = 11;
- map['c'] = 12; map['d'] = 13; map['e'] = 14; map['f'] = 15;
-}
-
-static char *get_sign (char *s, char *smax, int *sign)
-{
- *sign = 1;
- if (s + 1 < smax)
- {
- if (*s == '+') s++;
- else if (*s == '-')
- {
- s++;
- *sign = -1;
- }
- }
- return s;
-}
-
-
-static int parse_long (char **sp, char *smax, long *np,
- long base, unsigned char map[256])
-{
- char *s, *s0;
- long n;
- int sign;
-
- s = s0 = get_sign (*sp, smax, &sign);
-
- n = 0;
- while (s < smax)
- {
- unsigned char value;
-
- value = map [(unsigned char) *s];
- if (value == 0xFF)
- break;
-
- n = base * n + value;
- s++;
- }
-
- *sp = s;
- if (s == s0)
- return 0;
-
- *np = n * sign;
-
- return 1;
-}
-
-
-static int parse_int (char **sp, char *smax, int *np,
- long base, unsigned char map[256])
-{
- long n;
- int status;
-
- if (1 == (status = parse_long (sp, smax, &n, base, map)))
- *np = (int) n;
- return status;
-}
-
-static int parse_short (char **sp, char *smax, short *np,
- long base, unsigned char map[256])
-{
- long n;
- int status;
-
- if (1 == (status = parse_long (sp, smax, &n, base, map)))
- *np = (short) n;
- return status;
-}
-
-static int parse_ulong (char **sp, char *smax, unsigned long *np,
- long base, unsigned char map[256])
-{
- return parse_long (sp, smax, (long *) np, base, map);
-}
-
-static int parse_uint (char **sp, char *smax, unsigned int *np,
- long base, unsigned char map[256])
-{
- return parse_int (sp, smax, (int *) np, base, map);
-}
-
-static int parse_ushort (char **sp, char *smax, unsigned short *np,
- long base, unsigned char map[256])
-{
- return parse_short (sp, smax, (short *) np, base, map);
-}
-
-#if SLANG_HAS_FLOAT
-/*
- * In an ideal world, strtod would be the correct function to use. However,
- * there may be problems relying on this function because some systems do
- * not support and some that do get it wrong. So, I will handle the parsing
- * of the string and let atof or strtod handle the arithmetic.
- */
-static int parse_double (char **sp, char *smax, double *d)
-{
- char *s, *s0;
- int sign;
- int expon;
- unsigned char map[256];
- char buf[128];
- int has_leading_zeros;
- char *start_pos, *sign_pos;
- char *b, *bmax;
-
- start_pos = *sp;
- s = get_sign (start_pos, smax, &sign);
- if (s >= smax)
- {
- errno = _SLerrno_errno = EINVAL;
- return 0;
- }
-
- /* Prepare the buffer that will be passed to strtod */
- /* Allow the exponent to be 5 significant digits: E+xxxxx\0 */
- bmax = buf + (sizeof (buf) - 8);
- buf[0] = '0'; buf[1] = '.';
- b = buf + 2;
-
- init_map (map, 10);
-
- /* Skip leading 0s */
- s0 = s;
- while ((s < smax) && (*s == '0'))
- s++;
- has_leading_zeros = (s != s0);
-
- expon = 0;
- while (s < smax)
- {
- unsigned char value = map [(unsigned char) *s];
-
- if (value == 0xFF)
- break;
-
- if (b < bmax)
- *b++ = *s;
-
- expon++;
- s++;
- }
-
- if ((s < smax) && (*s == '.'))
- {
- s++;
- if (b == buf + 2) /* nothing added yet */
- {
- while ((s < smax) && (*s == '0'))
- {
- expon--;
- s++;
- }
- }
-
- while (s < smax)
- {
- unsigned char value = map [(unsigned char) *s];
-
- if (value == 0xFF)
- break;
-
- if (b < bmax)
- *b++ = *s;
- s++;
- }
- }
-
- if ((b == buf + 2)
- && (has_leading_zeros == 0))
- {
- *sp = start_pos;
- errno = EINVAL;
- return 0;
- }
-
- if ((s + 1 < smax) && ((*s == 'E') || (*s == 'e')))
- {
- int e;
- int esign;
-
- s0 = s;
- s = get_sign (s + 1, smax, &esign);
- sign_pos = s;
- e = 0;
- while (s < smax)
- {
- unsigned char value = map [(unsigned char) *s];
- if (value == 0xFF)
- break;
- if (e < 25000) /* avoid overflow if 16 bit */
- e = 10 * e + value;
- s++;
- }
-#ifdef ERANGE
- if (e >= 25000)
- errno = ERANGE;
-#endif
- if (s == sign_pos)
- s = s0; /* ...E-X */
- else
- {
- e = esign * e;
- expon += e;
- }
- }
-
- if (expon != 0)
- sprintf (b, "e%d", expon);
- else
- *b = 0;
-
- *sp = s;
-#if HAVE_STRTOD
- *d = sign * strtod (buf, NULL);
-#else
- *d = sign * atof (buf);
-#endif
- return 1;
-}
-
-static int parse_float (char **sp, char *smax, float *d)
-{
- double x;
- if (1 == parse_double (sp, smax, &x))
- {
- *d = (float) x;
- return 1;
- }
- return 0;
-}
-#endif /* SLANG_HAS_FLOAT */
-
-static int parse_string (char **sp, char *smax, char **str)
-{
- char *s, *s0;
-
- s0 = s = *sp;
- while (s < smax)
- {
- if (isspace (*s))
- break;
- s++;
- }
- if (NULL == (*str = SLang_create_nslstring (s0, (unsigned int) (s - s0))))
- return -1;
-
- *sp = s;
- return 1;
-}
-
-static int parse_bstring (char **sp, char *smax, char **str)
-{
- char *s;
-
- s = *sp;
- if (NULL == (*str = SLang_create_nslstring (s, (unsigned int) (smax - s))))
- return -1;
-
- *sp = smax;
- return 1;
-}
-
-static int parse_range (char **sp, char *smax, char **fp, char **str)
-{
- char *s, *s0;
- char *range;
- char *f;
- unsigned char map[256];
- unsigned char reverse;
-
- /* How can one represent a range with just '^'? The naive answer is
- * is [^]. However, this may be interpreted as meaning any character
- * but ']' and others. Let's assume that the user will not use a range
- * to match '^'.
- */
- f = *fp;
- /* f is a pointer to (one char after) [...]. */
- if (*f == '^')
- {
- f++;
- reverse = 1;
- }
- else reverse = 0;
-
- s0 = f;
- if (*f == ']')
- f++;
-
- while (1)
- {
- char ch = *f;
-
- if (ch == 0)
- {
- SLang_verror (SL_INVALID_PARM, "Unexpected end of range in format");
- return -1;
- }
- if (ch == ']')
- break;
- f++;
- }
- if (NULL == (range = SLmake_nstring (s0, (unsigned int) (f - s0))))
- return -1;
- *fp = f + 1; /* skip ] */
-
- SLmake_lut (map, (unsigned char *) range, reverse);
- SLfree (range);
-
- s0 = s = *sp;
- while ((s < smax) && map [(unsigned char) *s])
- s++;
-
- if (NULL == (*str = SLang_create_nslstring (s0, (unsigned int) (s - s0))))
- return -1;
-
- *sp = s;
- return 1;
-}
-
-
-int _SLang_sscanf (void)
-{
- int num;
- unsigned int num_refs;
- char *format;
- char *input_string, *input_string_max;
- char *f, *s;
- unsigned char map8[256], map10[256], map16[256];
-
- if (SLang_Num_Function_Args < 2)
- {
- SLang_verror (SL_INVALID_PARM, "Int_Type sscanf (str, format, ...)");
- return -1;
- }
-
- num_refs = (unsigned int) SLang_Num_Function_Args;
- if (-1 == SLreverse_stack (num_refs))
- return -1;
- num_refs -= 2;
-
- if (-1 == SLang_pop_slstring (&input_string))
- return -1;
-
- if (-1 == SLang_pop_slstring (&format))
- {
- SLang_free_slstring (input_string);
- return -1;
- }
-
- f = format;
- s = input_string;
- input_string_max = input_string + strlen (input_string);
-
- init_map (map8, 8);
- init_map (map10, 10);
- init_map (map16, 16);
-
- num = 0;
-
- while (num_refs != 0)
- {
- SLang_Object_Type obj;
- SLang_Ref_Type *ref;
- char *smax;
- unsigned char *map;
- int base;
- int no_assign;
- int is_short;
- int is_long;
- int status;
- char chf;
- unsigned int width;
- int has_width;
-
- chf = *f++;
-
- if (chf == 0)
- {
- /* Hmmm.... what is the most useful thing to do?? */
-#if 1
- break;
-#else
- SLang_verror (SL_INVALID_PARM, "sscanf: format not big enough for output list");
- goto return_error;
-#endif
- }
-
- if (isspace (chf))
- {
- s = skip_whitespace (s);
- continue;
- }
-
- if ((chf != '%')
- || ((chf = *f++) == '%'))
- {
- if (*s != chf)
- break;
- s++;
- continue;
- }
-
- no_assign = 0;
- is_short = 0;
- is_long = 0;
- width = 0;
- smax = input_string_max;
-
- /* Look for the flag character */
- if (chf == '*')
- {
- no_assign = 1;
- chf = *f++;
- }
-
- /* Width */
- has_width = isdigit (chf);
- if (has_width)
- {
- f--;
- (void) parse_uint (&f, f + strlen(f), &width, 10, map10);
- chf = *f++;
- }
-
- /* Now the type modifier */
- switch (chf)
- {
- case 'h':
- is_short = 1;
- chf = *f++;
- break;
-
- case 'L': /* not implemented */
- case 'l':
- is_long = 1;
- chf = *f++;
- break;
- }
-
- status = -1;
-
- if ((chf != 'c') && (chf != '['))
- s = skip_whitespace (s);
-
- if (has_width)
- {
- if (width > (unsigned int) (input_string_max - s))
- width = (unsigned int) (input_string_max - s);
- smax = s + width;
- }
-
- /* Now the format descriptor */
-
- map = map10;
- base = 10;
-
- try_again: /* used by i, x, and o, conversions */
- switch (chf)
- {
- case 0:
- SLang_verror (SL_INVALID_PARM, "sscanf: Unexpected end of format");
- goto return_error;
- case 'D':
- is_long = 1;
- case 'd':
- if (is_short)
- {
- obj.data_type = SLANG_SHORT_TYPE;
- status = parse_short (&s, smax, &obj.v.short_val, base, map);
- }
- else if (is_long)
- {
- obj.data_type = SLANG_LONG_TYPE;
- status = parse_long (&s, smax, &obj.v.long_val, base, map);
- }
- else
- {
- obj.data_type = SLANG_INT_TYPE;
- status = parse_int (&s, smax, &obj.v.int_val, base, map);
- }
- break;
-
-
- case 'U':
- is_long = 1;
- case 'u':
- if (is_short)
- {
- obj.data_type = SLANG_USHORT_TYPE;
- status = parse_ushort (&s, smax, &obj.v.ushort_val, base, map);
- }
- else if (is_long)
- {
- obj.data_type = SLANG_ULONG_TYPE;
- status = parse_ulong (&s, smax, &obj.v.ulong_val, base, map);
- }
- else
- {
- obj.data_type = SLANG_INT_TYPE;
- status = parse_uint (&s, smax, &obj.v.uint_val, base, map);
- }
- break;
-
- case 'I':
- is_long = 1;
- case 'i':
- if ((s + 1 >= smax)
- || (*s != 0))
- chf = 'd';
- else if (((s[1] == 'x') || (s[1] == 'X'))
- && (s + 2 < smax))
- {
- s += 2;
- chf = 'x';
- }
- else chf = 'o';
- goto try_again;
-
- case 'O':
- is_long = 1;
- case 'o':
- map = map8;
- base = 8;
- chf = 'd';
- goto try_again;
-
- case 'X':
- is_long = 1;
- case 'x':
- base = 16;
- map = map16;
- chf = 'd';
- goto try_again;
-
- case 'E':
- case 'F':
- is_long = 1;
- case 'e':
- case 'f':
- case 'g':
-#if SLANG_HAS_FLOAT
- if (is_long)
- {
- obj.data_type = SLANG_DOUBLE_TYPE;
- status = parse_double (&s, smax, &obj.v.double_val);
- }
- else
- {
- obj.data_type = SLANG_FLOAT_TYPE;
- status = parse_float (&s, smax, &obj.v.float_val);
- }
-#else
- SLang_verror (SL_NOT_IMPLEMENTED,
- "This version of the S-Lang does not support floating point");
- status = -1;
-#endif
- break;
-
- case 's':
- obj.data_type = SLANG_STRING_TYPE;
- status = parse_string (&s, smax, &obj.v.s_val);
- break;
-
- case 'c':
- if (has_width == 0)
- {
- obj.data_type = SLANG_UCHAR_TYPE;
- obj.v.uchar_val = *s++;
- status = 1;
- break;
- }
- obj.data_type = SLANG_STRING_TYPE;
- status = parse_bstring (&s, smax, &obj.v.s_val);
- break;
-
- case '[':
- obj.data_type = SLANG_STRING_TYPE;
- status = parse_range (&s, smax, &f, &obj.v.s_val);
- break;
-
- case 'n':
- obj.data_type = SLANG_UINT_TYPE;
- obj.v.uint_val = (unsigned int) (s - input_string);
- status = 1;
- break;
-
- default:
- status = -1;
- SLang_verror (SL_NOT_IMPLEMENTED, "format specifier '%c' is not supported", chf);
- break;
- }
-
- if (status == 0)
- break;
-
- if (status == -1)
- goto return_error;
-
- if (no_assign)
- {
- SLang_free_object (&obj);
- continue;
- }
-
- if (-1 == SLang_pop_ref (&ref))
- {
- SLang_free_object (&obj);
- goto return_error;
- }
-
- if (-1 == SLang_push (&obj))
- {
- SLang_free_object (&obj);
- SLang_free_ref (ref);
- goto return_error;
- }
-
- if (-1 == _SLang_deref_assign (ref))
- {
- SLang_free_ref (ref);
- goto return_error;
- }
- SLang_free_ref (ref);
-
- num++;
- num_refs--;
- }
-
- if (-1 == SLdo_pop_n (num_refs))
- goto return_error;
-
- SLang_free_slstring (format);
- SLang_free_slstring (input_string);
- return num;
-
- return_error:
- /* NULLS ok */
- SLang_free_slstring (format);
- SLang_free_slstring (input_string);
- return -1;
-}
-
-
-# if SLANG_HAS_FLOAT
-
-#ifndef HAVE_STDLIB_H
-/* Oh dear. Where is the prototype for atof? If not in stdlib, then
- * I do not know where. Not in math.h on some systems either.
- */
-extern double atof ();
-#endif
-
-double _SLang_atof (char *s)
-{
- double x;
-
- s = skip_whitespace (s);
- errno = 0;
-
- if (1 != parse_double (&s, s + strlen (s), &x))
- {
- if ((0 == strcmp ("NaN", s))
- || (0 == strcmp ("-Inf", s))
- || (0 == strcmp ("Inf", s)))
- return atof (s); /* let this deal with it */
-#ifdef EINVAL
- errno = _SLerrno_errno = EINVAL;
-#endif
- return 0.0;
- }
- if (errno)
- _SLerrno_errno = errno;
- return x;
-}
-#endif
diff --git a/mdk-stage1/slang/slscroll.c b/mdk-stage1/slang/slscroll.c
deleted file mode 100644
index 358296116..000000000
--- a/mdk-stage1/slang/slscroll.c
+++ /dev/null
@@ -1,450 +0,0 @@
-/* SLang Scrolling Window Routines */
-/* Copyright (c) 1996, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-static void find_window_bottom (SLscroll_Window_Type *win)
-{
- unsigned int nrows;
- unsigned int hidden_mask;
- SLscroll_Type *bot, *cline, *last_bot;
- unsigned int row;
-
- nrows = win->nrows;
- hidden_mask = win->hidden_mask;
- cline = win->current_line;
-
- win->window_row = row = 0;
- last_bot = bot = win->top_window_line;
-
- while (row < nrows)
- {
- if (bot == cline)
- win->window_row = row;
-
- last_bot = bot;
-
- if (bot == NULL)
- break;
-
- bot = bot->next;
-
- if (hidden_mask)
- {
- while ((bot != NULL) && (bot->flags & hidden_mask))
- bot = bot->next;
- }
-
- row++;
- }
-
- win->bot_window_line = last_bot;
-}
-
-static int find_top_to_recenter (SLscroll_Window_Type *win)
-{
- unsigned int nrows;
- unsigned int hidden_mask;
- SLscroll_Type *prev, *last_prev, *cline;
-
- nrows = win->nrows;
- cline = win->current_line;
- hidden_mask = win->hidden_mask;
-
- nrows = nrows / 2;
-
- last_prev = prev = cline;
-
- while (nrows && (prev != NULL))
- {
- nrows--;
- last_prev = prev;
- do
- {
- prev = prev->prev;
- }
- while (hidden_mask
- && (prev != NULL)
- && (prev->flags & hidden_mask));
- }
-
- if (prev == NULL) prev = last_prev;
-
- win->top_window_line = prev;
- find_window_bottom (win);
-
- return 0;
-}
-
-#define HAS_BORDER_CODE 1
-int SLscroll_find_top (SLscroll_Window_Type *win)
-{
- unsigned int i;
- SLscroll_Type *cline, *prev, *next;
- SLscroll_Type *top_window_line;
- unsigned int nrows;
- unsigned int hidden_mask;
- int scroll_mode;
- unsigned int border;
-
- cline = win->current_line;
- nrows = win->nrows;
- scroll_mode = win->cannot_scroll;
- border = win->border;
- if (scroll_mode == 2)
- border = 0;
-
- if ((cline == NULL) || (nrows <= 1))
- {
- win->top_window_line = cline;
- find_window_bottom (win);
- return 0;
- }
-
- hidden_mask = win->hidden_mask;
-
- /* Note: top_window_line might be a bogus pointer. This means that I cannot
- * access it unless it really corresponds to a pointer in the buffer.
- */
- top_window_line = win->top_window_line;
-
- if (top_window_line == NULL)
- return find_top_to_recenter (win);
-
- /* Chances are that the current line is visible in the window. This means
- * that the top window line should be above it.
- */
- prev = cline;
-
- i = 0;
-
- while ((i < nrows) && (prev != NULL))
- {
- if (prev == top_window_line)
- {
- SLscroll_Type *twl = top_window_line;
- int dir = 0;
-
- if (i < border) dir = -1; else if (i + border >= nrows) dir = 1;
-
- if (dir) while (border)
- {
- if (dir < 0) twl = twl->prev;
- else twl = twl->next;
-
- if (twl == NULL)
- {
- twl = top_window_line;
- break;
- }
- if ((hidden_mask == 0)
- || (0 == (twl->flags & hidden_mask)))
- border--;
- }
-
- win->top_window_line = twl;
- find_window_bottom (win);
- return 0;
- }
-
- do
- {
- prev = prev->prev;
- }
- while (hidden_mask
- && (prev != NULL)
- && (prev->flags & hidden_mask));
- i++;
- }
-
- /* Now check the borders of the window. Perhaps the current line lies
- * outsider the border by a line. Only do this if terminal can scroll.
- */
-
- if (scroll_mode == 1)
- return find_top_to_recenter (win);
- else if (scroll_mode == -1)
- scroll_mode = 0;
-
- next = cline->next;
- while (hidden_mask
- && (next != NULL)
- && (next->flags & hidden_mask))
- next = next->next;
-
- if ((next != NULL)
- && (next == top_window_line))
- {
- /* The current line is one line above the window. This means user
- * has moved up past the top of the window. If scroll_mode is set
- * to scroll by pages, we need to do a page up.
- */
-
- win->top_window_line = cline;
- find_window_bottom (win);
-
- if (scroll_mode) return SLscroll_pageup (win);
-
- return 0;
- }
-
- prev = cline->prev;
-
- while (hidden_mask
- && (prev != NULL)
- && (prev->flags & hidden_mask))
- prev = prev->prev;
-
- if ((prev == NULL)
- || (prev != win->bot_window_line))
- return find_top_to_recenter (win);
-
- /* It looks like cline is below window by one line. See what line should
- * be at top to scroll it into view. Only do this unless we are scrolling
- * by pages.
- */
- if (scroll_mode)
- {
- win->top_window_line = cline;
- find_window_bottom (win);
- return 0;
- }
-
- i = 2;
- while ((i < nrows) && (prev != NULL))
- {
- do
- {
- prev = prev->prev;
- }
- while (hidden_mask
- && (prev != NULL)
- && (prev->flags & hidden_mask));
- i++;
- }
-
- if (prev != NULL)
- {
- win->top_window_line = prev;
- find_window_bottom (win);
- return 0;
- }
-
- return find_top_to_recenter (win);
-}
-
-int SLscroll_find_line_num (SLscroll_Window_Type *win)
-{
- SLscroll_Type *cline, *l;
- unsigned int n;
- unsigned int hidden_mask;
-
- if (win == NULL) return -1;
-
- hidden_mask = win->hidden_mask;
- cline = win->current_line;
-
- n = 1;
-
- l = win->lines;
- while (l != cline)
- {
- if ((hidden_mask == 0)
- || (0 == (l->flags & hidden_mask)))
- n++;
-
- l = l->next;
- }
-
- win->line_num = n;
- n--;
-
- while (l != NULL)
- {
- if ((hidden_mask == 0)
- || (0 == (l->flags & hidden_mask)))
- n++;
- l = l->next;
- }
- win->num_lines = n;
-
- return 0;
-}
-
-unsigned int SLscroll_next_n (SLscroll_Window_Type *win, unsigned int n)
-{
- unsigned int i;
- unsigned int hidden_mask;
- SLscroll_Type *l, *cline;
-
- if ((win == NULL)
- || (NULL == (cline = win->current_line)))
- return 0;
-
- hidden_mask = win->hidden_mask;
- l = cline;
- i = 0;
- while (i < n)
- {
- l = l->next;
- while (hidden_mask
- && (l != NULL) && (l->flags & hidden_mask))
- l = l->next;
-
- if (l == NULL)
- break;
-
- i++;
- cline = l;
- }
-
- win->current_line = cline;
- win->line_num += i;
- return i;
-}
-
-unsigned int SLscroll_prev_n (SLscroll_Window_Type *win, unsigned int n)
-{
- unsigned int i;
- unsigned int hidden_mask;
- SLscroll_Type *l, *cline;
-
- if ((win == NULL)
- || (NULL == (cline = win->current_line)))
- return 0;
-
- hidden_mask = win->hidden_mask;
- l = cline;
- i = 0;
- while (i < n)
- {
- l = l->prev;
- while (hidden_mask
- && (l != NULL) && (l->flags & hidden_mask))
- l = l->prev;
-
- if (l == NULL)
- break;
-
- i++;
- cline = l;
- }
-
- win->current_line = cline;
- win->line_num -= i;
- return i;
-}
-
-int SLscroll_pageup (SLscroll_Window_Type *win)
-{
- SLscroll_Type *l, *top;
- unsigned int nrows, hidden_mask;
- unsigned int n;
-
- if (win == NULL)
- return -1;
-
- (void) SLscroll_find_top (win);
-
- nrows = win->nrows;
-
- if ((NULL != (top = win->top_window_line))
- && (nrows > 2))
- {
- n = 0;
- hidden_mask = win->hidden_mask;
- l = win->current_line;
- while ((l != NULL) && (l != top))
- {
- l = l->prev;
- if ((hidden_mask == 0)
- || ((l != NULL) && (0 == (l->flags & hidden_mask))))
- n++;
- }
-
- if (l != NULL)
- {
- unsigned int save_line_num;
- int ret = 0;
-
- win->current_line = l;
- win->line_num -= n;
-
- /* Compute a new top/bottom header */
- save_line_num = win->line_num;
-
- if ((0 == SLscroll_prev_n (win, nrows - 1))
- && (n == 0))
- ret = -1;
-
- win->top_window_line = win->current_line;
- win->current_line = l;
- win->line_num = save_line_num;
-
- find_window_bottom (win);
- return ret;
- }
- }
-
- if (nrows < 2) nrows++;
- if (0 == SLscroll_prev_n (win, nrows - 1))
- return -1;
- return 0;
-}
-
-int SLscroll_pagedown (SLscroll_Window_Type *win)
-{
- SLscroll_Type *l, *bot;
- unsigned int nrows, hidden_mask;
- unsigned int n;
-
- if (win == NULL)
- return -1;
-
- (void) SLscroll_find_top (win);
-
- nrows = win->nrows;
-
- if ((NULL != (bot = win->bot_window_line))
- && (nrows > 2))
- {
- n = 0;
- hidden_mask = win->hidden_mask;
- l = win->current_line;
- while ((l != NULL) && (l != bot))
- {
- l = l->next;
- if ((hidden_mask == 0)
- || ((l != NULL) && (0 == (l->flags & hidden_mask))))
- n++;
- }
-
- if (l != NULL)
- {
- win->current_line = l;
- win->top_window_line = l;
- win->line_num += n;
-
- find_window_bottom (win);
-
- if (n || (bot != win->bot_window_line))
- return 0;
-
- return -1;
- }
- }
-
- if (nrows < 2) nrows++;
- if (0 == SLscroll_next_n (win, nrows - 1))
- return -1;
- return 0;
-}
-
diff --git a/mdk-stage1/slang/slsearch.c b/mdk-stage1/slang/slsearch.c
deleted file mode 100644
index a9a427a7d..000000000
--- a/mdk-stage1/slang/slsearch.c
+++ /dev/null
@@ -1,239 +0,0 @@
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-#ifdef upcase
-# undef upcase
-#endif
-
-#define upcase(ch) (cs ? ch : UPPER_CASE(ch))
-
-static unsigned char *search_forward (register unsigned char *beg,
- unsigned char *end,
- unsigned char *key,
- register int key_len, int cs, int *ind)
-{
- register unsigned char char1;
- unsigned char *pos;
- int j, str_len;
- register unsigned char ch;
- register int db;
-
- str_len = (int) (end - beg);
- if (str_len < key_len) return (NULL);
-
- if (key_len == 0)
- return NULL;
-
- char1 = key[key_len - 1];
- beg += (key_len - 1);
-
- while(1)
- {
- if (cs) while (beg < end)
- {
- ch = *beg;
- db = ind[(unsigned char) ch];
- if ((db < key_len) && (ch == char1)) break;
- beg += db; /* ind[(unsigned char) ch]; */
- }
- else while (beg < end)
- {
- ch = *beg;
- db = ind[(unsigned char) ch];
- if ((db < key_len) &&
- (UPPER_CASE(ch) == char1)) break;
- beg += db; /* ind[(unsigned char) ch]; */
- }
-
- if (beg >= end) return(NULL);
-
- pos = beg - (key_len - 1);
- for (j = 0; j < key_len; j++)
- {
- ch = upcase(pos[j]);
- if (ch != (unsigned char) key[j]) break;
- }
-
- if (j == key_len) return(pos);
- beg += 1;
- }
-}
-
-static unsigned char *search_backward (unsigned char *beg,unsigned char *end,
- unsigned char *key, int key_len,
- int cs, int *ind)
-{
- unsigned char ch, char1;
- int j, str_len, ofs;
-
- str_len = (int) (end - beg);
- if (str_len < key_len) return (NULL);
-
- if (key_len == 0)
- return NULL;
-
- /* end -= (key_len - 1); */
- end -= key_len;
-
- char1 = key[0];
-
- while(1)
- {
- while ((beg <= end) && (ch = *end, ch = upcase(ch), ch != char1))
- {
- ofs = ind[(unsigned char) ch];
-#ifdef __MSDOS__
- /* This is needed for msdos segment wrapping problems */
- if (beg + ofs > end) return(NULL);
-#endif
- end -= ofs;
- }
- if (beg > end) return(NULL);
- for (j = 1; j < key_len; j++)
- {
- ch = upcase(end[j]);
- if (ch != key[j]) break;
- }
- if (j == key_len) return(end);
- end--;
- }
-}
-
-unsigned char *SLsearch (unsigned char *pmin, unsigned char *pmax,
- SLsearch_Type *st)
-{
- if (st->dir > 0) return search_forward (pmin, pmax, st->key,
- st->key_len, st->cs, st->ind);
- else return search_backward (pmin, pmax, st->key,
- st->key_len, st->cs, st->ind);
-}
-
-static int Case_Tables_Ok;
-
-int SLsearch_init (char *str, int dir, int cs, SLsearch_Type *st)
-{
- int i, maxi;
- register int max = strlen(str);
- unsigned char *w, *work = st->key;
- register int *indp, *indpm;
- int *ind = st->ind;
-
- if (max >= (int) sizeof (st->key))
- {
- SLang_doerror ("Search string too long.");
- return -1;
- }
-
- st->dir = dir; st->cs = cs;
-
- if (!Case_Tables_Ok) SLang_init_case_tables ();
-
- if (dir > 0)
- {
- w = work;
- }
- else
- {
- maxi = max - 1;
- str = str + maxi;
- w = work + maxi;
- }
-
- /* for (i = 0; i < 256; i++) ind[i] = max; */
- indp = ind; indpm = ind + 256;
- while (indp < indpm)
- {
- *indp++ = max;
- *indp++ = max;
- *indp++ = max;
- *indp++ = max;
- }
-
- i = 0;
- if (cs) while (i < max)
- {
- i++;
- maxi = max - i;
- *w = *str;
- ind[(unsigned char) *str] = maxi;
- str += dir; w += dir;
- }
- else while (i < max)
- {
- i++;
- maxi = max - i;
- *w = UPPER_CASE(*str);
- ind[(unsigned char) *w] = maxi;
- ind[(unsigned char) LOWER_CASE(*str)] = maxi;
- str += dir; w += dir;
- }
-
- work[max] = 0;
- st->key_len = max;
- return max;
-}
-
-/* 8bit clean upper and lowercase macros */
-unsigned char _SLChg_LCase_Lut[256];
-unsigned char _SLChg_UCase_Lut[256];
-
-void SLang_define_case (int *u, int *l)
-{
- unsigned char up = (unsigned char) *u, dn = (unsigned char) *l;
-
- _SLChg_LCase_Lut[up] = dn;
- _SLChg_LCase_Lut[dn] = dn;
- _SLChg_UCase_Lut[dn] = up;
- _SLChg_UCase_Lut[up] = up;
-}
-
-void SLang_init_case_tables (void)
-{
- int i, j;
- if (Case_Tables_Ok) return;
-
- for (i = 0; i < 256; i++)
- {
- _SLChg_UCase_Lut[i] = i;
- _SLChg_LCase_Lut[i] = i;
- }
-
- for (i = 'A'; i <= 'Z'; i++)
- {
- j = i + 32;
- _SLChg_UCase_Lut[j] = i;
- _SLChg_LCase_Lut[i] = j;
- }
-#ifdef PC_SYSTEM
- /* Initialize for DOS code page 437. */
- _SLChg_UCase_Lut[135] = 128; _SLChg_LCase_Lut[128] = 135;
- _SLChg_UCase_Lut[132] = 142; _SLChg_LCase_Lut[142] = 132;
- _SLChg_UCase_Lut[134] = 143; _SLChg_LCase_Lut[143] = 134;
- _SLChg_UCase_Lut[130] = 144; _SLChg_LCase_Lut[144] = 130;
- _SLChg_UCase_Lut[145] = 146; _SLChg_LCase_Lut[146] = 145;
- _SLChg_UCase_Lut[148] = 153; _SLChg_LCase_Lut[153] = 148;
- _SLChg_UCase_Lut[129] = 154; _SLChg_LCase_Lut[154] = 129;
- _SLChg_UCase_Lut[164] = 165; _SLChg_LCase_Lut[165] = 164;
-#else
- /* ISO Latin */
- for (i = 192; i <= 221; i++)
- {
- j = i + 32;
- _SLChg_UCase_Lut[j] = i;
- _SLChg_LCase_Lut[i] = j;
- }
- _SLChg_UCase_Lut[215] = 215; _SLChg_LCase_Lut[215] = 215;
- _SLChg_UCase_Lut[223] = 223; _SLChg_LCase_Lut[223] = 223;
- _SLChg_UCase_Lut[247] = 247; _SLChg_LCase_Lut[247] = 247;
- _SLChg_UCase_Lut[255] = 255; _SLChg_LCase_Lut[255] = 255;
-#endif
- Case_Tables_Ok = 1;
-}
diff --git a/mdk-stage1/slang/slsignal.c b/mdk-stage1/slang/slsignal.c
deleted file mode 100644
index 30707dea5..000000000
--- a/mdk-stage1/slang/slsignal.c
+++ /dev/null
@@ -1,336 +0,0 @@
-/* Copyright (c) 1998, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-#include "slinclud.h"
-
-#include <signal.h>
-
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_WAIT_H
-# include <sys/wait.h>
-#endif
-
-#include <errno.h>
-
-#include "slang.h"
-#include "_slang.h"
-
-/* Do not trust these environments */
-#if defined(__CYGWIN32__) || defined(__MINGW32__) || defined(AMIGA)
-# ifdef SLANG_POSIX_SIGNALS
-# undef SLANG_POSIX_SIGNALS
-# endif
-#endif
-
-/* This function will cause system calls to be restarted after signal if possible */
-SLSig_Fun_Type *SLsignal (int sig, SLSig_Fun_Type *f)
-{
-#if defined(SLANG_POSIX_SIGNALS)
- struct sigaction old_sa, new_sa;
-
-# ifdef SIGALRM
- /* We want system calls to be interrupted by SIGALRM. */
- if (sig == SIGALRM) return SLsignal_intr (sig, f);
-# endif
-
- sigemptyset (&new_sa.sa_mask);
- new_sa.sa_handler = f;
-
- new_sa.sa_flags = 0;
-# ifdef SA_RESTART
- new_sa.sa_flags |= SA_RESTART;
-# endif
-
- if (-1 == sigaction (sig, &new_sa, &old_sa))
- return (SLSig_Fun_Type *) SIG_ERR;
-
- return old_sa.sa_handler;
-#else
- /* Not POSIX. */
- return signal (sig, f);
-#endif
-}
-
-/* This function will NOT cause system calls to be restarted after
- * signal if possible
- */
-SLSig_Fun_Type *SLsignal_intr (int sig, SLSig_Fun_Type *f)
-{
-#ifdef SLANG_POSIX_SIGNALS
- struct sigaction old_sa, new_sa;
-
- sigemptyset (&new_sa.sa_mask);
- new_sa.sa_handler = f;
-
- new_sa.sa_flags = 0;
-# ifdef SA_INTERRUPT
- new_sa.sa_flags |= SA_INTERRUPT;
-# endif
-
- if (-1 == sigaction (sig, &new_sa, &old_sa))
- return (SLSig_Fun_Type *) SIG_ERR;
-
- return old_sa.sa_handler;
-#else
- /* Not POSIX. */
- return signal (sig, f);
-#endif
-}
-
-/* We are primarily interested in blocking signals that would cause the
- * application to reset the tty. These include suspend signals and
- * possibly interrupt signals.
- */
-#ifdef SLANG_POSIX_SIGNALS
-static sigset_t Old_Signal_Mask;
-#endif
-
-static volatile unsigned int Blocked_Depth;
-
-int SLsig_block_signals (void)
-{
-#ifdef SLANG_POSIX_SIGNALS
- sigset_t new_mask;
-#endif
-
- Blocked_Depth++;
- if (Blocked_Depth != 1)
- {
- return 0;
- }
-
-#ifdef SLANG_POSIX_SIGNALS
- sigemptyset (&new_mask);
-# ifdef SIGQUIT
- sigaddset (&new_mask, SIGQUIT);
-# endif
-# ifdef SIGTSTP
- sigaddset (&new_mask, SIGTSTP);
-# endif
-# ifdef SIGINT
- sigaddset (&new_mask, SIGINT);
-# endif
-# ifdef SIGTTIN
- sigaddset (&new_mask, SIGTTIN);
-# endif
-# ifdef SIGTTOU
- sigaddset (&new_mask, SIGTTOU);
-# endif
-# ifdef SIGWINCH
- sigaddset (&new_mask, SIGWINCH);
-# endif
-
- (void) sigprocmask (SIG_BLOCK, &new_mask, &Old_Signal_Mask);
- return 0;
-#else
- /* Not implemented. */
- return -1;
-#endif
-}
-
-int SLsig_unblock_signals (void)
-{
- if (Blocked_Depth == 0)
- return -1;
-
- Blocked_Depth--;
-
- if (Blocked_Depth != 0)
- return 0;
-
-#ifdef SLANG_POSIX_SIGNALS
- (void) sigprocmask (SIG_SETMASK, &Old_Signal_Mask, NULL);
- return 0;
-#else
- return -1;
-#endif
-}
-
-#ifdef MSWINDOWS
-int SLsystem (char *cmd)
-{
- SLang_verror (SL_NOT_IMPLEMENTED, "system not implemented");
- return -1;
-}
-
-#else
-int SLsystem (char *cmd)
-{
-#ifdef SLANG_POSIX_SIGNALS
- pid_t pid;
- int status;
- struct sigaction ignore;
-# ifdef SIGINT
- struct sigaction save_intr;
-# endif
-# ifdef SIGQUIT
- struct sigaction save_quit;
-# endif
-# ifdef SIGCHLD
- sigset_t child_mask, save_mask;
-# endif
-
- if (cmd == NULL) return 1;
-
- ignore.sa_handler = SIG_IGN;
- sigemptyset (&ignore.sa_mask);
- ignore.sa_flags = 0;
-
-# ifdef SIGINT
- if (-1 == sigaction (SIGINT, &ignore, &save_intr))
- return -1;
-# endif
-
-# ifdef SIGQUIT
- if (-1 == sigaction (SIGQUIT, &ignore, &save_quit))
- {
- (void) sigaction (SIGINT, &save_intr, NULL);
- return -1;
- }
-# endif
-
-# ifdef SIGCHLD
- sigemptyset (&child_mask);
- sigaddset (&child_mask, SIGCHLD);
- if (-1 == sigprocmask (SIG_BLOCK, &child_mask, &save_mask))
- {
-# ifdef SIGINT
- (void) sigaction (SIGINT, &save_intr, NULL);
-# endif
-# ifdef SIGQUIT
- (void) sigaction (SIGQUIT, &save_quit, NULL);
-# endif
- return -1;
- }
-# endif
-
- pid = fork();
-
- if (pid == -1)
- status = -1;
- else if (pid == 0)
- {
- /* Child */
-# ifdef SIGINT
- (void) sigaction (SIGINT, &save_intr, NULL);
-# endif
-# ifdef SIGQUIT
- (void) sigaction (SIGQUIT, &save_quit, NULL);
-# endif
-# ifdef SIGCHLD
- (void) sigprocmask (SIG_SETMASK, &save_mask, NULL);
-# endif
-
- execl ("/bin/sh", "sh", "-c", cmd, NULL);
- _exit (127);
- }
- else
- {
- /* parent */
- while (-1 == waitpid (pid, &status, 0))
- {
-# ifdef EINTR
- if (errno == EINTR)
- continue;
-# endif
-# ifdef ERESTARTSYS
- if (errno == ERESTARTSYS)
- continue;
-# endif
- status = -1;
- break;
- }
- }
-# ifdef SIGINT
- if (-1 == sigaction (SIGINT, &save_intr, NULL))
- status = -1;
-# endif
-# ifdef SIGQUIT
- if (-1 == sigaction (SIGQUIT, &save_quit, NULL))
- status = -1;
-# endif
-# ifdef SIGCHLD
- if (-1 == sigprocmask (SIG_SETMASK, &save_mask, NULL))
- status = -1;
-# endif
-
- return status;
-
-#else /* No POSIX Signals */
-# ifdef SIGINT
- void (*sint)(int);
-# endif
-# ifdef SIGQUIT
- void (*squit)(int);
-# endif
- int status;
-
-# ifdef SIGQUIT
- squit = SLsignal (SIGQUIT, SIG_IGN);
-# endif
-# ifdef SIGINT
- sint = SLsignal (SIGINT, SIG_IGN);
-# endif
- status = system (cmd);
-# ifdef SIGINT
- SLsignal (SIGINT, sint);
-# endif
-# ifdef SIGQUIT
- SLsignal (SIGQUIT, squit);
-# endif
- return status;
-#endif /* POSIX_SIGNALS */
-}
-#endif
-
-#if 0
-#include <windows.h>
-static int msw_system (char *cmd)
-{
- STARTUPINFO startup_info;
- PROCESS_INFORMATION process_info;
- int status;
-
- if (cmd == NULL) return -1;
-
- memset ((char *) &startup_info, 0, sizeof (STARTUPINFO));
- startup_info.cb = sizeof(STARTUPINFO);
- startup_info.dwFlags = STARTF_USESHOWWINDOW;
- startup_info.wShowWindow = SW_SHOWDEFAULT;
-
- if (FALSE == CreateProcess (NULL,
- cmd,
- NULL,
- NULL,
- FALSE,
- NORMAL_PRIORITY_CLASS|CREATE_NEW_CONSOLE,
- NULL,
- NULL,
- &startup_info,
- &process_info))
- {
- SLang_verror (0, "%s: CreateProcess failed.", cmd);
- return -1;
- }
-
- status = -1;
-
- if (0xFFFFFFFFUL != WaitForSingleObject (process_info.hProcess, INFINITE))
- {
- DWORD exit_code;
-
- if (TRUE == GetExitCodeProcess (process_info.hProcess, &exit_code))
- status = (int) exit_code;
- }
-
- CloseHandle (process_info.hThread);
- CloseHandle (process_info.hProcess);
-
- return status;
-}
-#endif
diff --git a/mdk-stage1/slang/slsmg.c b/mdk-stage1/slang/slsmg.c
deleted file mode 100644
index 088557f27..000000000
--- a/mdk-stage1/slang/slsmg.c
+++ /dev/null
@@ -1,1584 +0,0 @@
-/* SLang Screen management routines */
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-typedef struct Screen_Type
- {
- int n; /* number of chars written last time */
- int flags; /* line untouched, etc... */
- SLsmg_Char_Type *old, *neew;
-#ifndef IBMPC_SYSTEM
- unsigned long old_hash, new_hash;
-#endif
- }
-Screen_Type;
-
-#define TOUCHED 0x1
-#define TRASHED 0x2
-static int Screen_Trashed;
-
-#if !defined(__MSDOS_16BIT__)
-# define MAX_SCREEN_SIZE 256
-#else
-# define MAX_SCREEN_SIZE 75
-#endif
-
-Screen_Type SL_Screen[MAX_SCREEN_SIZE];
-static int Start_Col, Start_Row;
-static int Screen_Cols, Screen_Rows;
-static int This_Row, This_Col;
-static int This_Color; /* only the first 8 bits of this
- * are used. The highest bit is used
- * to indicate an alternate character
- * set. This leaves 127 userdefineable
- * color combination.
- */
-
-#ifndef IBMPC_SYSTEM
-#define ALT_CHAR_FLAG 0x80
-#else
-#define ALT_CHAR_FLAG 0x00
-#endif
-
-#if SLTT_HAS_NON_BCE_SUPPORT && !defined(IBMPC_SYSTEM)
-#define REQUIRES_NON_BCE_SUPPORT 1
-static int Bce_Color_Offset;
-#endif
-
-int SLsmg_Newline_Behavior = 0;
-int SLsmg_Backspace_Moves = 0;
-/* Backward compatibility. Not used. */
-/* int SLsmg_Newline_Moves; */
-
-static void (*tt_normal_video)(void) = SLtt_normal_video;
-static void (*tt_goto_rc)(int, int) = SLtt_goto_rc;
-static void (*tt_cls) (void) = SLtt_cls;
-static void (*tt_del_eol) (void) = SLtt_del_eol;
-static void (*tt_smart_puts) (SLsmg_Char_Type *, SLsmg_Char_Type *, int, int) = SLtt_smart_puts;
-static int (*tt_flush_output) (void) = SLtt_flush_output;
-static int (*tt_reset_video) (void) = SLtt_reset_video;
-static int (*tt_init_video) (void) = SLtt_init_video;
-static int *tt_Screen_Rows = &SLtt_Screen_Rows;
-static int *tt_Screen_Cols = &SLtt_Screen_Cols;
-
-#ifndef IBMPC_SYSTEM
-static void (*tt_set_scroll_region)(int, int) = SLtt_set_scroll_region;
-static void (*tt_reverse_index)(int) = SLtt_reverse_index;
-static void (*tt_reset_scroll_region)(void) = SLtt_reset_scroll_region;
-static void (*tt_delete_nlines)(int) = SLtt_delete_nlines;
-#endif
-
-#ifndef IBMPC_SYSTEM
-static int *tt_Term_Cannot_Scroll = &SLtt_Term_Cannot_Scroll;
-static int *tt_Has_Alt_Charset = &SLtt_Has_Alt_Charset;
-static char **tt_Graphics_Char_Pairs = &SLtt_Graphics_Char_Pairs;
-static int *tt_Use_Blink_For_ACS = &SLtt_Use_Blink_For_ACS;
-#endif
-
-static int Smg_Inited;
-
-static void blank_line (SLsmg_Char_Type *p, int n, unsigned char ch)
-{
- register SLsmg_Char_Type *pmax = p + n;
- register SLsmg_Char_Type color_ch;
-
- color_ch = SLSMG_BUILD_CHAR(ch,This_Color);
-
- while (p < pmax)
- {
- *p++ = color_ch;
- }
-}
-
-static void clear_region (int row, int n)
-{
- int i;
- int imax = row + n;
-
- if (imax > Screen_Rows) imax = Screen_Rows;
- for (i = row; i < imax; i++)
- {
- if (i >= 0)
- {
- blank_line (SL_Screen[i].neew, Screen_Cols, ' ');
- SL_Screen[i].flags |= TOUCHED;
- }
- }
-}
-
-void SLsmg_erase_eol (void)
-{
- int r, c;
-
- if (Smg_Inited == 0) return;
-
- c = This_Col - Start_Col;
- r = This_Row - Start_Row;
-
- if ((r < 0) || (r >= Screen_Rows)) return;
- if (c < 0) c = 0; else if (c >= Screen_Cols) return;
- blank_line (SL_Screen[This_Row].neew + c , Screen_Cols - c, ' ');
- SL_Screen[This_Row].flags |= TOUCHED;
-}
-
-static void scroll_up (void)
-{
- unsigned int i, imax;
- SLsmg_Char_Type *neew;
-
- neew = SL_Screen[0].neew;
- imax = Screen_Rows - 1;
- for (i = 0; i < imax; i++)
- {
- SL_Screen[i].neew = SL_Screen[i + 1].neew;
- SL_Screen[i].flags |= TOUCHED;
- }
- SL_Screen[i].neew = neew;
- SL_Screen[i].flags |= TOUCHED;
- blank_line (neew, Screen_Cols, ' ');
- This_Row--;
-}
-
-void SLsmg_gotorc (int r, int c)
-{
- This_Row = r;
- This_Col = c;
-}
-
-int SLsmg_get_row (void)
-{
- return This_Row;
-}
-
-int SLsmg_get_column (void)
-{
- return This_Col;
-}
-
-void SLsmg_erase_eos (void)
-{
- if (Smg_Inited == 0) return;
-
- SLsmg_erase_eol ();
- clear_region (This_Row + 1, Screen_Rows);
-}
-
-static int This_Alt_Char;
-
-void SLsmg_set_char_set (int i)
-{
-#ifdef IBMPC_SYSTEM
- (void) i;
-#else
- if ((tt_Use_Blink_For_ACS != NULL)
- && (*tt_Use_Blink_For_ACS != 0))
- return;/* alt chars not used and the alt bit
- * is used to indicate a blink.
- */
-
- if (i) This_Alt_Char = ALT_CHAR_FLAG;
- else This_Alt_Char = 0;
-
- This_Color &= 0x7F;
- This_Color |= This_Alt_Char;
-#endif
-}
-
-void SLsmg_set_color (int color)
-{
- if (color < 0) return;
-#ifdef REQUIRES_NON_BCE_SUPPORT
- color += Bce_Color_Offset;
-#endif
- This_Color = color | This_Alt_Char;
-}
-
-void SLsmg_reverse_video (void)
-{
- SLsmg_set_color (1);
-}
-
-void SLsmg_normal_video (void)
-{
- SLsmg_set_color (0);
-}
-
-static int point_visible (int col_too)
-{
- return ((This_Row >= Start_Row) && (This_Row < Start_Row + Screen_Rows)
- && ((col_too == 0)
- || ((This_Col >= Start_Col)
- && (This_Col < Start_Col + Screen_Cols))));
-}
-
-void SLsmg_write_string (char *str)
-{
- SLsmg_write_nchars (str, strlen (str));
-}
-
-void SLsmg_write_nstring (char *str, unsigned int n)
-{
- unsigned int width;
- char blank = ' ';
-
- /* Avoid a problem if a user accidently passes a negative value */
- if ((int) n < 0)
- return;
-
- if (str == NULL) width = 0;
- else
- {
- width = strlen (str);
- if (width > n) width = n;
- SLsmg_write_nchars (str, width);
- }
- while (width++ < n) SLsmg_write_nchars (&blank, 1);
-}
-
-void SLsmg_write_wrapped_string (char *s, int r, int c,
- unsigned int dr, unsigned int dc,
- int fill)
-{
- register char ch, *p;
- int maxc = (int) dc;
-
- if ((dr == 0) || (dc == 0)) return;
- p = s;
- dc = 0;
- while (1)
- {
- ch = *p++;
- if ((ch == 0) || (ch == '\n'))
- {
- int diff;
-
- diff = maxc - (int) dc;
-
- SLsmg_gotorc (r, c);
- SLsmg_write_nchars (s, dc);
- if (fill && (diff > 0))
- {
- while (diff--) SLsmg_write_char (' ');
- }
- if ((ch == 0) || (dr == 1)) break;
-
- r++;
- dc = 0;
- dr--;
- s = p;
- }
- else if ((int) dc == maxc)
- {
- SLsmg_gotorc (r, c);
- SLsmg_write_nchars (s, dc + 1);
- if (dr == 1) break;
-
- r++;
- dc = 0;
- dr--;
- s = p;
- }
- else dc++;
- }
-}
-
-int SLsmg_Tab_Width = 8;
-
-/* Minimum value for which eight bit char is displayed as is. */
-
-#ifndef IBMPC_SYSTEM
-int SLsmg_Display_Eight_Bit = 160;
-static unsigned char Alt_Char_Set[129];/* 129th is used as a flag */
-#else
-int SLsmg_Display_Eight_Bit = 128;
-#endif
-
-void SLsmg_write_nchars (char *str, unsigned int n)
-{
- register SLsmg_Char_Type *p, old, neew, color;
- unsigned char ch;
- unsigned int flags;
- int len, start_len, max_len;
- char *str_max;
- int newline_flag;
-#ifndef IBMPC_SYSTEM
- int alt_char_set_flag;
-
- alt_char_set_flag = ((This_Color & ALT_CHAR_FLAG)
- && ((tt_Use_Blink_For_ACS == NULL)
- || (*tt_Use_Blink_For_ACS == 0)));
-#endif
-
- if (Smg_Inited == 0) return;
-
- str_max = str + n;
- color = This_Color;
-
- top: /* get here only on newline */
-
- newline_flag = 0;
- start_len = Start_Col;
-
- if (point_visible (0) == 0) return;
-
- len = This_Col;
- max_len = start_len + Screen_Cols;
-
- p = SL_Screen[This_Row - Start_Row].neew;
- if (len > start_len) p += (len - start_len);
-
- flags = SL_Screen[This_Row - Start_Row].flags;
- while ((len < max_len) && (str < str_max))
- {
- ch = (unsigned char) *str++;
-
-#ifndef IBMPC_SYSTEM
- if (alt_char_set_flag)
- ch = Alt_Char_Set [ch & 0x7F];
-#endif
- if (((ch >= ' ') && (ch < 127))
- || (ch >= (unsigned char) SLsmg_Display_Eight_Bit)
-#ifndef IBMPC_SYSTEM
- || alt_char_set_flag
-#endif
- )
- {
- len += 1;
- if (len > start_len)
- {
- old = *p;
- neew = SLSMG_BUILD_CHAR(ch,color);
- if (old != neew)
- {
- flags |= TOUCHED;
- *p = neew;
- }
- p++;
- }
- }
-
- else if ((ch == '\t') && (SLsmg_Tab_Width > 0))
- {
- n = len;
- n += SLsmg_Tab_Width;
- n = SLsmg_Tab_Width - (n % SLsmg_Tab_Width);
- if ((unsigned int) len + n > (unsigned int) max_len)
- n = (unsigned int) (max_len - len);
- neew = SLSMG_BUILD_CHAR(' ',color);
- while (n--)
- {
- len += 1;
- if (len > start_len)
- {
- if (*p != neew)
- {
- flags |= TOUCHED;
- *p = neew;
- }
- p++;
- }
- }
- }
- else if ((ch == '\n')
- && (SLsmg_Newline_Behavior != SLSMG_NEWLINE_PRINTABLE))
- {
- newline_flag = 1;
- break;
- }
- else if ((ch == 0x8) && SLsmg_Backspace_Moves)
- {
- if (len != 0) len--;
- }
- else
- {
- if (ch & 0x80)
- {
- neew = SLSMG_BUILD_CHAR('~',color);
- len += 1;
- if (len > start_len)
- {
- if (*p != neew)
- {
- *p = neew;
- flags |= TOUCHED;
- }
- p++;
- if (len == max_len) break;
- ch &= 0x7F;
- }
- }
-
- len += 1;
- if (len > start_len)
- {
- neew = SLSMG_BUILD_CHAR('^',color);
- if (*p != neew)
- {
- *p = neew;
- flags |= TOUCHED;
- }
- p++;
- if (len == max_len) break;
- }
-
- if (ch == 127) ch = '?'; else ch = ch + '@';
- len++;
- if (len > start_len)
- {
- neew = SLSMG_BUILD_CHAR(ch,color);
- if (*p != neew)
- {
- *p = neew;
- flags |= TOUCHED;
- }
- p++;
- }
- }
- }
-
- SL_Screen[This_Row - Start_Row].flags = flags;
- This_Col = len;
-
- if (SLsmg_Newline_Behavior == 0)
- return;
-
- if (newline_flag == 0)
- {
- while (str < str_max)
- {
- if (*str == '\n') break;
- str++;
- }
- if (str == str_max) return;
- str++;
- }
-
- This_Row++;
- This_Col = 0;
- if (This_Row == Start_Row + Screen_Rows)
- {
- if (SLsmg_Newline_Behavior == SLSMG_NEWLINE_SCROLLS) scroll_up ();
- }
- goto top;
-}
-
-void SLsmg_write_char (char ch)
-{
- SLsmg_write_nchars (&ch, 1);
-}
-
-static int Cls_Flag;
-
-void SLsmg_cls (void)
-{
- int tac;
- if (Smg_Inited == 0) return;
-
- tac = This_Alt_Char; This_Alt_Char = 0;
- SLsmg_set_color (0);
- clear_region (0, Screen_Rows);
- This_Alt_Char = tac;
- SLsmg_set_color (0);
- Cls_Flag = 1;
-}
-#if 0
-static void do_copy (SLsmg_Char_Type *a, SLsmg_Char_Type *b)
-{
- SLsmg_Char_Type *amax = a + Screen_Cols;
-
- while (a < amax) *a++ = *b++;
-}
-#endif
-
-#ifndef IBMPC_SYSTEM
-int SLsmg_Scroll_Hash_Border = 0;
-static unsigned long compute_hash (SLsmg_Char_Type *s, int n)
-{
- register unsigned long h = 0, g;
- register unsigned long sum = 0;
- register SLsmg_Char_Type *smax, ch;
- int is_blank = 2;
-
- s += SLsmg_Scroll_Hash_Border;
- smax = s + (n - SLsmg_Scroll_Hash_Border);
- while (s < smax)
- {
- ch = *s++;
- if (is_blank && (SLSMG_EXTRACT_CHAR(ch) != 32)) is_blank--;
-
- sum += ch;
-
- h = sum + (h << 3);
- if ((g = h & 0xE0000000UL) != 0)
- {
- h = h ^ (g >> 24);
- h = h ^ g;
- }
- }
- if (is_blank) return 0;
- return h;
-}
-
-static unsigned long Blank_Hash;
-
-static int try_scroll_down (int rmin, int rmax)
-{
- int i, r1, r2, di, j;
- unsigned long hash;
- int did_scroll;
- int color;
- SLsmg_Char_Type *tmp;
- int ignore;
-
- did_scroll = 0;
- for (i = rmax; i > rmin; i--)
- {
- hash = SL_Screen[i].new_hash;
- if (hash == Blank_Hash) continue;
-
- if ((hash == SL_Screen[i].old_hash)
-#if 0
- || ((i + 1 < Screen_Rows) && (hash == SL_Screen[i + 1].old_hash))
- || ((i - 1 > rmin) && (SL_Screen[i].old_hash == SL_Screen[i - 1].new_hash))
-#endif
- )
- continue;
-
- for (j = i - 1; j >= rmin; j--)
- {
- if (hash == SL_Screen[j].old_hash) break;
- }
- if (j < rmin) continue;
-
- r2 = i; /* end scroll region */
-
- di = i - j;
- j--;
- ignore = 0;
- while ((j >= rmin) && (SL_Screen[j].old_hash == SL_Screen[j + di].new_hash))
- {
- if (SL_Screen[j].old_hash == Blank_Hash) ignore++;
- j--;
- }
- r1 = j + 1;
-
- /* If this scroll only scrolls this line into place, don't do it.
- */
- if ((di > 1) && (r1 + di + ignore == r2)) continue;
-
- /* If there is anything in the scrolling region that is ok, abort the
- * scroll.
- */
-
- for (j = r1; j <= r2; j++)
- {
- if ((SL_Screen[j].old_hash != Blank_Hash)
- && (SL_Screen[j].old_hash == SL_Screen[j].new_hash))
- {
- /* See if the scroll is happens to scroll this one into place. */
- if ((j + di > r2) || (SL_Screen[j].old_hash != SL_Screen[j + di].new_hash))
- break;
- }
- }
- if (j <= r2) continue;
-
- color = This_Color; This_Color = 0;
- did_scroll = 1;
- (*tt_normal_video) ();
- (*tt_set_scroll_region) (r1, r2);
- (*tt_goto_rc) (0, 0);
- (*tt_reverse_index) (di);
- (*tt_reset_scroll_region) ();
- /* Now we have a hole in the screen.
- * Make the virtual screen look like it.
- *
- * Note that if the terminal does not support BCE, then we have
- * no idea what color the hole is. So, for this case, we do not
- * want to add Bce_Color_Offset to This_Color since if Bce_Color_Offset
- * is non-zero, then This_Color = 0 does not match any valid color
- * obtained by adding Bce_Color_Offset.
- */
- for (j = r1; j <= r2; j++) SL_Screen[j].flags = TOUCHED;
-
- while (di--)
- {
- tmp = SL_Screen[r2].old;
- for (j = r2; j > r1; j--)
- {
- SL_Screen[j].old = SL_Screen[j - 1].old;
- SL_Screen[j].old_hash = SL_Screen[j - 1].old_hash;
- }
- SL_Screen[r1].old = tmp;
- blank_line (SL_Screen[r1].old, Screen_Cols, ' ');
- SL_Screen[r1].old_hash = Blank_Hash;
- r1++;
- }
- This_Color = color;
- }
-
- return did_scroll;
-}
-
-static int try_scroll_up (int rmin, int rmax)
-{
- int i, r1, r2, di, j;
- unsigned long hash;
- int did_scroll;
- int color;
- SLsmg_Char_Type *tmp;
- int ignore;
-
- did_scroll = 0;
- for (i = rmin; i < rmax; i++)
- {
- hash = SL_Screen[i].new_hash;
- if (hash == Blank_Hash) continue;
- if (hash == SL_Screen[i].old_hash)
- continue;
- /* find a match further down screen */
- for (j = i + 1; j <= rmax; j++)
- {
- if (hash == SL_Screen[j].old_hash) break;
- }
- if (j > rmax) continue;
-
- r1 = i; /* beg scroll region */
- di = j - i; /* number of lines to scroll */
- j++; /* since we know this is a match */
-
- /* find end of scroll region */
- ignore = 0;
- while ((j <= rmax) && (SL_Screen[j].old_hash == SL_Screen[j - di].new_hash))
- {
- if (SL_Screen[j].old_hash == Blank_Hash) ignore++;
- j++;
- }
- r2 = j - 1; /* end of scroll region */
-
- /* If this scroll only scrolls this line into place, don't do it.
- */
- if ((di > 1) && (r1 + di + ignore == r2)) continue;
-
- /* If there is anything in the scrolling region that is ok, abort the
- * scroll.
- */
-
- for (j = r1; j <= r2; j++)
- {
- if ((SL_Screen[j].old_hash != Blank_Hash)
- && (SL_Screen[j].old_hash == SL_Screen[j].new_hash))
- {
- if ((j - di < r1) || (SL_Screen[j].old_hash != SL_Screen[j - di].new_hash))
- break;
- }
-
- }
- if (j <= r2) continue;
-
- did_scroll = 1;
-
- /* See the above comments about BCE */
- color = This_Color; This_Color = 0;
- (*tt_normal_video) ();
- (*tt_set_scroll_region) (r1, r2);
- (*tt_goto_rc) (0, 0); /* relative to scroll region */
- (*tt_delete_nlines) (di);
- (*tt_reset_scroll_region) ();
- /* Now we have a hole in the screen. Make the virtual screen look
- * like it.
- */
- for (j = r1; j <= r2; j++) SL_Screen[j].flags = TOUCHED;
-
- while (di--)
- {
- tmp = SL_Screen[r1].old;
- for (j = r1; j < r2; j++)
- {
- SL_Screen[j].old = SL_Screen[j + 1].old;
- SL_Screen[j].old_hash = SL_Screen[j + 1].old_hash;
- }
- SL_Screen[r2].old = tmp;
- blank_line (SL_Screen[r2].old, Screen_Cols, ' ');
- SL_Screen[r2].old_hash = Blank_Hash;
- r2--;
- }
- This_Color = color;
- }
- return did_scroll;
-}
-
-static void try_scroll (void)
-{
- int r1, rmin, rmax;
- int num_up, num_down;
- /* find region limits. */
-
- for (rmax = Screen_Rows - 1; rmax > 0; rmax--)
- {
- if (SL_Screen[rmax].new_hash != SL_Screen[rmax].old_hash)
- {
- r1 = rmax - 1;
- if ((r1 == 0)
- || (SL_Screen[r1].new_hash != SL_Screen[r1].old_hash))
- break;
-
- rmax = r1;
- }
- }
-
- for (rmin = 0; rmin < rmax; rmin++)
- {
- if (SL_Screen[rmin].new_hash != SL_Screen[rmin].old_hash)
- {
- r1 = rmin + 1;
- if ((r1 == rmax)
- || (SL_Screen[r1].new_hash != SL_Screen[r1].old_hash))
- break;
-
- rmin = r1;
- }
- }
-
- /* Below, we have two scrolling algorithms. The first has the effect of
- * scrolling lines down. This is usually appropriate when one moves
- * up the display, e.g., with the UP arrow. The second algorithm is
- * appropriate for going the other way. It is important to choose the
- * correct one.
- */
-
- num_up = 0;
- for (r1 = rmin; r1 < rmax; r1++)
- {
- if (SL_Screen[r1].new_hash == SL_Screen[r1 + 1].old_hash)
- num_up++;
- }
-
- num_down = 0;
- for (r1 = rmax; r1 > rmin; r1--)
- {
- if (SL_Screen[r1 - 1].old_hash == SL_Screen[r1].new_hash)
- num_down++;
- }
-
- if (num_up > num_down)
- {
- if (try_scroll_up (rmin, rmax))
- return;
-
- (void) try_scroll_down (rmin, rmax);
- }
- else
- {
- if (try_scroll_down (rmin, rmax))
- return;
-
- (void) try_scroll_up (rmin, rmax);
- }
-}
-#endif /* NOT IBMPC_SYSTEM */
-
-
-#ifdef REQUIRES_NON_BCE_SUPPORT
-static void adjust_colors (void)
-{
- int bce;
- int i;
-
- bce = Bce_Color_Offset;
- Bce_Color_Offset = _SLtt_get_bce_color_offset ();
- if (bce == Bce_Color_Offset)
- return;
-
- if ((tt_Use_Blink_For_ACS != NULL)
- && (*tt_Use_Blink_For_ACS != 0))
- return; /* this mode does not support non-BCE
- * terminals.
- */
-
- for (i = 0; i < Screen_Rows; i++)
- {
- SLsmg_Char_Type *s, *smax;
-
- SL_Screen[i].flags |= TRASHED;
- s = SL_Screen[i].neew;
- smax = s + Screen_Cols;
-
- while (s < smax)
- {
- int color = (int) SLSMG_EXTRACT_COLOR(*s);
- int acs;
-
- if (color < 0)
- {
- s++;
- continue;
- }
-
- acs = color & 0x80;
- color = (color & 0x7F) - bce;
- color += Bce_Color_Offset;
- if (color >= 0)
- {
- unsigned char ch = SLSMG_EXTRACT_CHAR(*s);
- *s = SLSMG_BUILD_CHAR(ch, ((color&0x7F)|acs));
- }
- s++;
- }
- }
-}
-#endif
-
-void SLsmg_refresh (void)
-{
- int i;
-#ifndef IBMPC_SYSTEM
- int trashed = 0;
-#endif
-
- if (Smg_Inited == 0) return;
-
- if (Screen_Trashed)
- {
- Cls_Flag = 1;
- for (i = 0; i < Screen_Rows; i++)
- SL_Screen[i].flags |= TRASHED;
-#ifdef REQUIRES_NON_BCE_SUPPORT
- adjust_colors ();
-#endif
- }
-
-#ifndef IBMPC_SYSTEM
- for (i = 0; i < Screen_Rows; i++)
- {
- if (SL_Screen[i].flags == 0) continue;
- SL_Screen[i].new_hash = compute_hash (SL_Screen[i].neew, Screen_Cols);
- trashed = 1;
- }
-#endif
-
- if (Cls_Flag)
- {
- (*tt_normal_video) (); (*tt_cls) ();
- }
-#ifndef IBMPC_SYSTEM
- else if (trashed && (*tt_Term_Cannot_Scroll == 0)) try_scroll ();
-#endif
-
- for (i = 0; i < Screen_Rows; i++)
- {
- if (SL_Screen[i].flags == 0) continue;
-
- if (Cls_Flag || SL_Screen[i].flags & TRASHED)
- {
- int color = This_Color;
-
- if (Cls_Flag == 0)
- {
- (*tt_goto_rc) (i, 0);
- (*tt_del_eol) ();
- }
- This_Color = 0;
- blank_line (SL_Screen[i].old, Screen_Cols, ' ');
- This_Color = color;
- }
-
- SL_Screen[i].old[Screen_Cols] = 0;
- SL_Screen[i].neew[Screen_Cols] = 0;
-
- (*tt_smart_puts) (SL_Screen[i].neew, SL_Screen[i].old, Screen_Cols, i);
-
- SLMEMCPY ((char *) SL_Screen[i].old, (char *) SL_Screen[i].neew,
- Screen_Cols * sizeof (SLsmg_Char_Type));
-
- SL_Screen[i].flags = 0;
-#ifndef IBMPC_SYSTEM
- SL_Screen[i].old_hash = SL_Screen[i].new_hash;
-#endif
- }
-
- if (point_visible (1)) (*tt_goto_rc) (This_Row - Start_Row, This_Col - Start_Col);
- (*tt_flush_output) ();
- Cls_Flag = 0;
- Screen_Trashed = 0;
-}
-
-static int compute_clip (int row, int n, int box_start, int box_end,
- int *rmin, int *rmax)
-{
- int row_max;
-
- if (n < 0) return 0;
- if (row >= box_end) return 0;
- row_max = row + n;
- if (row_max <= box_start) return 0;
-
- if (row < box_start) row = box_start;
- if (row_max >= box_end) row_max = box_end;
- *rmin = row;
- *rmax = row_max;
- return 1;
-}
-
-void SLsmg_touch_lines (int row, unsigned int n)
-{
- int i;
- int r1, r2;
-
- /* Allow this function to be called even when we are not initialied.
- * Calling this function is useful after calling SLtt_set_color
- * to force the display to be redrawn
- */
-
- if (Smg_Inited == 0)
- return;
-
- if (0 == compute_clip (row, (int) n, Start_Row, Start_Row + Screen_Rows, &r1, &r2))
- return;
-
- r1 -= Start_Row;
- r2 -= Start_Row;
- for (i = r1; i < r2; i++)
- {
- SL_Screen[i].flags |= TRASHED;
- }
-}
-
-void SLsmg_touch_screen (void)
-{
- Screen_Trashed = 1;
-}
-
-
-#ifndef IBMPC_SYSTEM
-static char Fake_Alt_Char_Pairs [] = "a:j+k+l+m+q-t+u+v+w+x|n+`+f\\g#~o,<+>.v-^h#0#";
-
-static void init_alt_char_set (void)
-{
- int i;
- unsigned char *p, *pmax, ch;
-
- if (Alt_Char_Set[128] == 128) return;
-
- i = 32;
- memset ((char *)Alt_Char_Set, ' ', i);
- while (i <= 128)
- {
- Alt_Char_Set [i] = i;
- i++;
- }
-
- /* Map to VT100 */
- if (*tt_Has_Alt_Charset)
- {
- if (tt_Graphics_Char_Pairs == NULL) p = NULL;
- else p = (unsigned char *) *tt_Graphics_Char_Pairs;
- if (p == NULL) return;
- }
- else p = (unsigned char *) Fake_Alt_Char_Pairs;
- pmax = p + strlen ((char *) p);
-
- /* Some systems have messed up entries for this */
- while (p < pmax)
- {
- ch = *p++;
- ch &= 0x7F; /* should be unnecessary */
- Alt_Char_Set [ch] = *p;
- p++;
- }
-}
-#endif
-
-#ifndef IBMPC_SYSTEM
-# define BLOCK_SIGNALS SLsig_block_signals ()
-# define UNBLOCK_SIGNALS SLsig_unblock_signals ()
-#else
-# define BLOCK_SIGNALS (void)0
-# define UNBLOCK_SIGNALS (void)0
-#endif
-
-static int Smg_Suspended;
-int SLsmg_suspend_smg (void)
-{
- BLOCK_SIGNALS;
-
- if (Smg_Suspended == 0)
- {
- (*tt_reset_video) ();
- Smg_Suspended = 1;
- }
-
- UNBLOCK_SIGNALS;
- return 0;
-}
-
-int SLsmg_resume_smg (void)
-{
- BLOCK_SIGNALS;
-
- if (Smg_Suspended == 0)
- {
- UNBLOCK_SIGNALS;
- return 0;
- }
-
- Smg_Suspended = 0;
-
- if (-1 == (*tt_init_video) ())
- {
- UNBLOCK_SIGNALS;
- return -1;
- }
-
- Cls_Flag = 1;
- SLsmg_touch_screen ();
- SLsmg_refresh ();
-
- UNBLOCK_SIGNALS;
- return 0;
-}
-
-
-static void reset_smg (void)
-{
- int i;
- if (Smg_Inited == 0)
- return;
-
- for (i = 0; i < Screen_Rows; i++)
- {
- SLfree ((char *)SL_Screen[i].old);
- SLfree ((char *)SL_Screen[i].neew);
- SL_Screen[i].old = SL_Screen[i].neew = NULL;
- }
- This_Alt_Char = This_Color = 0;
- Smg_Inited = 0;
-}
-
-
-static int init_smg (void)
-{
- int i, len;
- SLsmg_Char_Type *old, *neew;
-
- Smg_Inited = 0;
-
-#ifdef REQUIRES_NON_BCE_SUPPORT
- Bce_Color_Offset = _SLtt_get_bce_color_offset ();
-#endif
-
- Screen_Rows = *tt_Screen_Rows;
- if (Screen_Rows > MAX_SCREEN_SIZE)
- Screen_Rows = MAX_SCREEN_SIZE;
-
- Screen_Cols = *tt_Screen_Cols;
-
- This_Col = This_Row = Start_Col = Start_Row = 0;
-
- This_Alt_Char = 0;
- SLsmg_set_color (0);
- Cls_Flag = 1;
-#ifndef IBMPC_SYSTEM
- init_alt_char_set ();
-#endif
- len = Screen_Cols + 3;
- for (i = 0; i < Screen_Rows; i++)
- {
- if ((NULL == (old = (SLsmg_Char_Type *) SLmalloc (sizeof(SLsmg_Char_Type) * len)))
- || ((NULL == (neew = (SLsmg_Char_Type *) SLmalloc (sizeof(SLsmg_Char_Type) * len)))))
- {
- SLfree ((char *) old);
- return -1;
- }
- blank_line (old, len, ' ');
- blank_line (neew, len, ' ');
- SL_Screen[i].old = old;
- SL_Screen[i].neew = neew;
- SL_Screen[i].flags = 0;
-#ifndef IBMPC_SYSTEM
- Blank_Hash = compute_hash (old, Screen_Cols);
- SL_Screen[i].new_hash = SL_Screen[i].old_hash = Blank_Hash;
-#endif
- }
-
- _SLtt_color_changed_hook = SLsmg_touch_screen;
- Screen_Trashed = 1;
- Smg_Inited = 1;
- return 0;
-}
-
-
-int SLsmg_init_smg (void)
-{
- int ret;
-
- BLOCK_SIGNALS;
-
- if (Smg_Inited)
- SLsmg_reset_smg ();
-
- if (-1 == (*tt_init_video) ())
- {
- UNBLOCK_SIGNALS;
- return -1;
- }
-
- if (-1 == (ret = init_smg ()))
- (void) (*tt_reset_video)();
-
- UNBLOCK_SIGNALS;
- return ret;
-}
-
-int SLsmg_reinit_smg (void)
-{
- int ret;
-
- if (Smg_Inited == 0)
- return SLsmg_init_smg ();
-
- BLOCK_SIGNALS;
- reset_smg ();
- ret = init_smg ();
- UNBLOCK_SIGNALS;
- return ret;
-}
-
-void SLsmg_reset_smg (void)
-{
- if (Smg_Inited == 0)
- return;
-
- BLOCK_SIGNALS;
-
- reset_smg ();
- (*tt_reset_video)();
-
- UNBLOCK_SIGNALS;
-}
-
-SLsmg_Char_Type SLsmg_char_at (void)
-{
- if (Smg_Inited == 0) return 0;
-
- if (point_visible (1))
- {
- return SL_Screen[This_Row - Start_Row].neew[This_Col - Start_Col];
- }
- return 0;
-}
-
-void SLsmg_vprintf (char *fmt, va_list ap)
-{
- char buf[1024];
-
- if (Smg_Inited == 0) return;
-
- (void) _SLvsnprintf (buf, sizeof (buf), fmt, ap);
- SLsmg_write_string (buf);
-}
-
-void SLsmg_printf (char *fmt, ...)
-{
- va_list ap;
- unsigned int len;
- char *f;
-
- if (Smg_Inited == 0) return;
-
- va_start(ap, fmt);
-
- f = fmt;
- while (*f && (*f != '%'))
- f++;
- len = (unsigned int) (f - fmt);
- if (len) SLsmg_write_nchars (fmt, len);
-
- if (*f != 0)
- SLsmg_vprintf (f, ap);
-
- va_end (ap);
-}
-
-void SLsmg_set_screen_start (int *r, int *c)
-{
- int orow = Start_Row, oc = Start_Col;
-
- if (Smg_Inited == 0) return;
-
- if (c == NULL) Start_Col = 0;
- else
- {
- Start_Col = *c;
- *c = oc;
- }
- if (r == NULL) Start_Row = 0;
- else
- {
- Start_Row = *r;
- *r = orow;
- }
-}
-
-void SLsmg_draw_object (int r, int c, unsigned char object)
-{
- This_Row = r; This_Col = c;
-
- if (Smg_Inited == 0) return;
-
- if (point_visible (1))
- {
- int color = This_Color;
- This_Color |= ALT_CHAR_FLAG;
- SLsmg_write_char (object);
- This_Color = color;
- }
-
- This_Col = c + 1;
-}
-
-void SLsmg_draw_hline (unsigned int n)
-{
- static unsigned char hbuf[16];
- int count;
- int cmin, cmax;
- int final_col = This_Col + (int) n;
- int save_color;
-
- if (Smg_Inited == 0) return;
-
- if ((This_Row < Start_Row) || (This_Row >= Start_Row + Screen_Rows)
- || (0 == compute_clip (This_Col, n, Start_Col, Start_Col + Screen_Cols,
- &cmin, &cmax)))
- {
- This_Col = final_col;
- return;
- }
-
- if (hbuf[0] == 0)
- {
- SLMEMSET ((char *) hbuf, SLSMG_HLINE_CHAR, 16);
- }
-
- n = (unsigned int)(cmax - cmin);
- count = n / 16;
-
- save_color = This_Color;
- This_Color |= ALT_CHAR_FLAG;
- This_Col = cmin;
-
- SLsmg_write_nchars ((char *) hbuf, n % 16);
- while (count-- > 0)
- {
- SLsmg_write_nchars ((char *) hbuf, 16);
- }
-
- This_Color = save_color;
- This_Col = final_col;
-}
-
-void SLsmg_draw_vline (int n)
-{
- unsigned char ch = SLSMG_VLINE_CHAR;
- int c = This_Col, rmin, rmax;
- int final_row = This_Row + n;
- int save_color;
-
- if (Smg_Inited == 0) return;
-
- if (((c < Start_Col) || (c >= Start_Col + Screen_Cols)) ||
- (0 == compute_clip (This_Row, n, Start_Row, Start_Row + Screen_Rows,
- &rmin, &rmax)))
- {
- This_Row = final_row;
- return;
- }
-
- save_color = This_Color;
- This_Color |= ALT_CHAR_FLAG;
-
- for (This_Row = rmin; This_Row < rmax; This_Row++)
- {
- This_Col = c;
- SLsmg_write_nchars ((char *) &ch, 1);
- }
-
- This_Col = c; This_Row = final_row;
- This_Color = save_color;
-}
-
-void SLsmg_draw_box (int r, int c, unsigned int dr, unsigned int dc)
-{
- if (Smg_Inited == 0) return;
-
- if (!dr || !dc) return;
- This_Row = r; This_Col = c;
- dr--; dc--;
- SLsmg_draw_hline (dc);
- SLsmg_draw_vline (dr);
- This_Row = r; This_Col = c;
- SLsmg_draw_vline (dr);
- SLsmg_draw_hline (dc);
- SLsmg_draw_object (r, c, SLSMG_ULCORN_CHAR);
- SLsmg_draw_object (r, c + (int) dc, SLSMG_URCORN_CHAR);
- SLsmg_draw_object (r + (int) dr, c, SLSMG_LLCORN_CHAR);
- SLsmg_draw_object (r + (int) dr, c + (int) dc, SLSMG_LRCORN_CHAR);
- This_Row = r; This_Col = c;
-}
-
-void SLsmg_fill_region (int r, int c, unsigned int dr, unsigned int dc, unsigned char ch)
-{
- static unsigned char hbuf[16];
- int count;
- int dcmax, rmax;
-
- if (Smg_Inited == 0) return;
-
- SLsmg_gotorc (r, c);
- r = This_Row; c = This_Col;
-
- dcmax = Screen_Cols - This_Col;
- if (dcmax < 0)
- return;
-
- if (dc > (unsigned int) dcmax) dc = (unsigned int) dcmax;
-
- rmax = This_Row + dr;
- if (rmax > Screen_Rows) rmax = Screen_Rows;
-
-#if 0
- ch = Alt_Char_Set[ch];
-#endif
- if (ch != hbuf[0]) SLMEMSET ((char *) hbuf, (char) ch, 16);
-
- for (This_Row = r; This_Row < rmax; This_Row++)
- {
- This_Col = c;
- count = dc / 16;
- SLsmg_write_nchars ((char *) hbuf, dc % 16);
- while (count-- > 0)
- {
- SLsmg_write_nchars ((char *) hbuf, 16);
- }
- }
-
- This_Row = r;
-}
-
-void SLsmg_forward (int n)
-{
- This_Col += n;
-}
-
-void SLsmg_write_color_chars (SLsmg_Char_Type *s, unsigned int len)
-{
- SLsmg_Char_Type *smax, sh;
- char buf[32], *b, *bmax;
- int color, save_color;
-
- if (Smg_Inited == 0) return;
-
- smax = s + len;
- b = buf;
- bmax = b + sizeof (buf);
-
- save_color = This_Color;
-
- while (s < smax)
- {
- sh = *s++;
-
- color = SLSMG_EXTRACT_COLOR(sh);
-
-#if REQUIRES_NON_BCE_SUPPORT
- if (Bce_Color_Offset)
- {
- if (color & 0x80)
- color = ((color & 0x7F) + Bce_Color_Offset) | 0x80;
- else
- color = ((color & 0x7F) + Bce_Color_Offset) & 0x7F;
- }
-#endif
-
- if ((color != This_Color) || (b == bmax))
- {
- if (b != buf)
- {
- SLsmg_write_nchars (buf, (int) (b - buf));
- b = buf;
- }
- This_Color = color;
- }
- *b++ = (char) SLSMG_EXTRACT_CHAR(sh);
- }
-
- if (b != buf)
- SLsmg_write_nchars (buf, (unsigned int) (b - buf));
-
- This_Color = save_color;
-}
-
-unsigned int SLsmg_read_raw (SLsmg_Char_Type *buf, unsigned int len)
-{
- unsigned int r, c;
-
- if (Smg_Inited == 0) return 0;
-
- if (0 == point_visible (1)) return 0;
-
- r = (unsigned int) (This_Row - Start_Row);
- c = (unsigned int) (This_Col - Start_Col);
-
- if (c + len > (unsigned int) Screen_Cols)
- len = (unsigned int) Screen_Cols - c;
-
- memcpy ((char *) buf, (char *) (SL_Screen[r].neew + c), len * sizeof (SLsmg_Char_Type));
- return len;
-}
-
-unsigned int SLsmg_write_raw (SLsmg_Char_Type *buf, unsigned int len)
-{
- unsigned int r, c;
- SLsmg_Char_Type *dest;
-
- if (Smg_Inited == 0) return 0;
-
- if (0 == point_visible (1)) return 0;
-
- r = (unsigned int) (This_Row - Start_Row);
- c = (unsigned int) (This_Col - Start_Col);
-
- if (c + len > (unsigned int) Screen_Cols)
- len = (unsigned int) Screen_Cols - c;
-
- dest = SL_Screen[r].neew + c;
-
- if (0 != memcmp ((char *) dest, (char *) buf, len * sizeof (SLsmg_Char_Type)))
- {
- memcpy ((char *) dest, (char *) buf, len * sizeof (SLsmg_Char_Type));
- SL_Screen[r].flags |= TOUCHED;
- }
- return len;
-}
-
-void
-SLsmg_set_color_in_region (int color, int r, int c, unsigned int dr, unsigned int dc)
-{
- int cmax, rmax;
- SLsmg_Char_Type char_mask;
-
- if (Smg_Inited == 0) return;
-
- c -= Start_Col;
- r -= Start_Row;
-
- cmax = c + (int) dc;
- rmax = r + (int) dr;
-
- if (cmax > Screen_Cols) cmax = Screen_Cols;
- if (rmax > Screen_Rows) rmax = Screen_Rows;
-
- if (c < 0) c = 0;
- if (r < 0) r = 0;
-
-#if REQUIRES_NON_BCE_SUPPORT
- if (Bce_Color_Offset)
- {
- if (color & 0x80)
- color = ((color & 0x7F) + Bce_Color_Offset) | 0x80;
- else
- color = ((color & 0x7F) + Bce_Color_Offset) & 0x7F;
- }
-#endif
- color = color << 8;
-
- char_mask = 0xFF;
-
-#ifndef IBMPC_SYSTEM
- if ((tt_Use_Blink_For_ACS == NULL)
- || (0 == *tt_Use_Blink_For_ACS))
- char_mask = 0x80FF;
-#endif
-
- while (r < rmax)
- {
- SLsmg_Char_Type *s, *smax;
-
- SL_Screen[r].flags |= TOUCHED;
- s = SL_Screen[r].neew;
- smax = s + cmax;
- s += c;
-
- while (s < smax)
- {
- *s = (*s & char_mask) | color;
- s++;
- }
- r++;
- }
-}
-
-void SLsmg_set_terminal_info (SLsmg_Term_Type *tt)
-{
- if (tt == NULL) /* use default */
- return;
-
- if ((tt->tt_normal_video == NULL)
- || (tt->tt_goto_rc == NULL)
- || (tt->tt_cls == NULL)
- || (tt->tt_del_eol == NULL)
- || (tt->tt_smart_puts == NULL)
- || (tt->tt_flush_output == NULL)
- || (tt->tt_reset_video == NULL)
- || (tt->tt_init_video == NULL)
-#ifndef IBMPC_SYSTEM
- || (tt->tt_set_scroll_region == NULL)
- || (tt->tt_reverse_index == NULL)
- || (tt->tt_reset_scroll_region == NULL)
- || (tt->tt_delete_nlines == NULL)
- /* Variables */
- || (tt->tt_term_cannot_scroll == NULL)
- || (tt->tt_has_alt_charset == NULL)
-#if 0 /* These can be NULL */
- || (tt->tt_use_blink_for_acs == NULL)
- || (tt->tt_graphic_char_pairs == NULL)
-#endif
- || (tt->tt_screen_cols == NULL)
- || (tt->tt_screen_rows == NULL)
-#endif
- )
- SLang_exit_error ("Terminal not powerful enough for SLsmg");
-
- tt_normal_video = tt->tt_normal_video;
- tt_goto_rc = tt->tt_goto_rc;
- tt_cls = tt->tt_cls;
- tt_del_eol = tt->tt_del_eol;
- tt_smart_puts = tt->tt_smart_puts;
- tt_flush_output = tt->tt_flush_output;
- tt_reset_video = tt->tt_reset_video;
- tt_init_video = tt->tt_init_video;
-
-#ifndef IBMPC_SYSTEM
- tt_set_scroll_region = tt->tt_set_scroll_region;
- tt_reverse_index = tt->tt_reverse_index;
- tt_reset_scroll_region = tt->tt_reset_scroll_region;
- tt_delete_nlines = tt->tt_delete_nlines;
-
- tt_Term_Cannot_Scroll = tt->tt_term_cannot_scroll;
- tt_Has_Alt_Charset = tt->tt_has_alt_charset;
- tt_Use_Blink_For_ACS = tt->tt_use_blink_for_acs;
- tt_Graphics_Char_Pairs = tt->tt_graphic_char_pairs;
-#endif
-
- tt_Screen_Cols = tt->tt_screen_cols;
- tt_Screen_Rows = tt->tt_screen_rows;
-}
-
diff --git a/mdk-stage1/slang/slstd.c b/mdk-stage1/slang/slstd.c
deleted file mode 100644
index b05dfcddb..000000000
--- a/mdk-stage1/slang/slstd.c
+++ /dev/null
@@ -1,724 +0,0 @@
-/* -*- mode: C; mode: fold; -*- */
-/* Standard intrinsic functions for S-Lang. Included here are string
- and array operations */
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-/*{{{ Include Files */
-
-#include <time.h>
-
-#ifndef __QNX__
-# if defined(__GO32__) || defined(__WATCOMC__)
-# include <dos.h>
-# include <bios.h>
-# endif
-#endif
-
-#if SLANG_HAS_FLOAT
-# include <math.h>
-#endif
-
-#include "slang.h"
-#include "_slang.h"
-
-/*}}}*/
-
-/* builtin stack manipulation functions */
-int SLdo_pop(void) /*{{{*/
-{
- return SLdo_pop_n (1);
-}
-
-/*}}}*/
-
-int SLdo_pop_n (unsigned int n)
-{
- SLang_Object_Type x;
-
- while (n--)
- {
- if (SLang_pop(&x)) return -1;
- SLang_free_object (&x);
- }
-
- return 0;
-}
-
-static void do_dup(void) /*{{{*/
-{
- (void) SLdup_n (1);
-}
-
-/*}}}*/
-
-static int length_cmd (void)
-{
- SLang_Class_Type *cl;
- SLang_Object_Type obj;
- VOID_STAR p;
- unsigned int length;
- int len;
-
- if (-1 == SLang_pop (&obj))
- return -1;
-
- cl = _SLclass_get_class (obj.data_type);
- p = _SLclass_get_ptr_to_value (cl, &obj);
-
- len = 1;
- if (cl->cl_length != NULL)
- {
- if (0 == (*cl->cl_length)(obj.data_type, p, &length))
- len = (int) length;
- else
- len = -1;
- }
-
- SLang_free_object (&obj);
- return len;
-}
-
-/* convert integer to a string of length 1 */
-static void char_cmd (int *x) /*{{{*/
-{
- char ch, buf[2];
-
- ch = (char) *x;
- buf[0] = ch;
- buf[1] = 0;
- SLang_push_string (buf);
-}
-
-/*}}}*/
-
-/* format object into a string and returns slstring */
-char *_SLstringize_object (SLang_Object_Type *obj) /*{{{*/
-{
- SLang_Class_Type *cl;
- unsigned char stype;
- VOID_STAR p;
- char *s, *s1;
-
- stype = obj->data_type;
- p = (VOID_STAR) &obj->v.ptr_val;
-
- cl = _SLclass_get_class (stype);
-
- s = (*cl->cl_string) (stype, p);
- if (s != NULL)
- {
- s1 = SLang_create_slstring (s);
- SLfree (s);
- s = s1;
- }
- return s;
-}
-/*}}}*/
-
-int SLang_run_hooks(char *hook, unsigned int num_args, ...)
-{
- unsigned int i;
- va_list ap;
-
- if (SLang_Error) return -1;
-
- if (0 == SLang_is_defined (hook))
- return 0;
-
- (void) SLang_start_arg_list ();
- va_start (ap, num_args);
- for (i = 0; i < num_args; i++)
- {
- char *arg;
-
- arg = va_arg (ap, char *);
- if (-1 == SLang_push_string (arg))
- break;
- }
- va_end (ap);
- (void) SLang_end_arg_list ();
-
- if (SLang_Error) return -1;
- return SLang_execute_function (hook);
-}
-
-static void intrin_getenv_cmd (char *s)
-{
- SLang_push_string (getenv (s));
-}
-
-#ifdef HAVE_PUTENV
-static void intrin_putenv (void) /*{{{*/
-{
- char *s;
-
- /* Some putenv implementations required malloced strings. */
- if (SLpop_string(&s)) return;
-
- if (putenv (s))
- {
- SLang_Error = SL_INTRINSIC_ERROR;
- SLfree (s);
- }
-
- /* Note that s is NOT freed */
-}
-
-/*}}}*/
-
-#endif
-
-static void lang_print_stack (void) /*{{{*/
-{
- char buf[32];
- unsigned int n;
-
- n = (unsigned int) (_SLStack_Pointer - _SLRun_Stack);
- while (n)
- {
- n--;
- sprintf (buf, "(%u)", n);
- _SLdump_objects (buf, _SLRun_Stack + n, 1, 1);
- }
-}
-
-/*}}}*/
-
-static void byte_compile_file (char *f, int *m)
-{
- SLang_byte_compile_file (f, *m);
-}
-
-static void intrin_type_info1 (void)
-{
- SLang_Object_Type obj;
- unsigned int type;
-
- if (-1 == SLang_pop (&obj))
- return;
-
- type = obj.data_type;
- if (type == SLANG_ARRAY_TYPE)
- type = obj.v.array_val->data_type;
-
- SLang_free_object (&obj);
-
- _SLang_push_datatype (type);
-}
-
-static void intrin_type_info (void)
-{
- SLang_Object_Type obj;
-
- if (-1 == SLang_pop (&obj))
- return;
-
- _SLang_push_datatype (obj.data_type);
- SLang_free_object (&obj);
-}
-
-void _SLstring_intrinsic (void) /*{{{*/
-{
- SLang_Object_Type x;
- char *s;
-
- if (SLang_pop (&x)) return;
- if (NULL != (s = _SLstringize_object (&x)))
- _SLang_push_slstring (s);
-
- SLang_free_object (&x);
-}
-
-/*}}}*/
-
-static void intrin_typecast (void)
-{
- unsigned char to_type;
- if (0 == _SLang_pop_datatype (&to_type))
- (void) SLclass_typecast (to_type, 0, 1);
-}
-
-#if SLANG_HAS_FLOAT
-static void intrin_double (void)
-{
- (void) SLclass_typecast (SLANG_DOUBLE_TYPE, 0, 1);
-}
-
-#endif
-
-static void intrin_int (void) /*{{{*/
-{
- (void) SLclass_typecast (SLANG_INT_TYPE, 0, 1);
-}
-
-/*}}}*/
-
-static char *
-intrin_function_name (void)
-{
- if (NULL == _SLang_Current_Function_Name)
- return "";
- return _SLang_Current_Function_Name;
-}
-
-static void intrin_message (char *s)
-{
- SLang_vmessage ("%s", s);
-}
-
-static void intrin_error (char *s)
-{
- SLang_verror (SL_USER_ERROR, "%s", s);
-}
-
-static void intrin_pop_n (int *n)
-{
- SLdo_pop_n ((unsigned int) *n);
-}
-
-static void intrin_reverse_stack (int *n)
-{
- SLreverse_stack (*n);
-}
-
-static void intrin_roll_stack (int *n)
-{
- SLroll_stack (*n);
-}
-
-static void usage (void)
-{
- char *msg;
-
- _SLstrops_do_sprintf_n (SLang_Num_Function_Args - 1); /* do not include format */
-
- if (-1 == SLang_pop_slstring (&msg))
- return;
-
- SLang_verror (SL_USAGE_ERROR, "Usage: %s", msg);
- SLang_free_slstring (msg);
-}
-
-/* Convert string to integer */
-static int intrin_integer (char *s)
-{
- int i;
-
- i = SLatoi ((unsigned char *) s);
-
- if (SLang_Error)
- SLang_verror (SL_TYPE_MISMATCH, "Unable to convert string to integer");
- return i;
-}
-/*}}}*/
-
-static void guess_type (char *s)
-{
- _SLang_push_datatype (SLang_guess_type(s));
-}
-
-static int load_file (char *s)
-{
- if (-1 == SLang_load_file (s))
- return 0;
- return 1;
-}
-
-static void get_doc_string (char *file, char *topic)
-{
- FILE *fp;
- char line[1024];
- unsigned int topic_len, str_len;
- char *str;
- char ch;
-
- if (NULL == (fp = fopen (file, "r")))
- {
- SLang_push_null ();
- return;
- }
-
- topic_len = strlen (topic);
- ch = *topic;
-
- while (1)
- {
- if (NULL == fgets (line, sizeof(line), fp))
- {
- fclose (fp);
- (void) SLang_push_null ();
- return;
- }
-
- if ((ch == *line)
- && (0 == strncmp (line, topic, topic_len))
- && ((line[topic_len] == '\n') || (line [topic_len] == 0)
- || (line[topic_len] == ' ') || (line[topic_len] == '\t')))
- break;
- }
-
- if (NULL == (str = SLmake_string (line)))
- {
- fclose (fp);
- (void) SLang_push_null ();
- return;
- }
- str_len = strlen (str);
-
- while (NULL != fgets (line, sizeof (line), fp))
- {
- unsigned int len;
- char *new_str;
-
- ch = *line;
- if (ch == '#') continue;
- if (ch == '-') break;
-
- len = strlen (line);
- if (NULL == (new_str = SLrealloc (str, str_len + len + 1)))
- {
- SLfree (str);
- str = NULL;
- break;
- }
- str = new_str;
- strcpy (str + str_len, line);
- str_len += len;
- }
-
- fclose (fp);
-
- (void) SLang_push_malloced_string (str);
-}
-
-static int push_string_array_elements (SLang_Array_Type *at)
-{
- char **strs;
- unsigned int num;
- unsigned int i;
-
- if (at == NULL)
- return -1;
-
- strs = (char **)at->data;
- num = at->num_elements;
- for (i = 0; i < num; i++)
- {
- if (-1 == SLang_push_string (strs[i]))
- {
- SLdo_pop_n (i);
- return -1;
- }
- }
- SLang_push_integer ((int) num);
- return 0;
-}
-
-
-static void intrin_apropos (void)
-{
- int num_args;
- char *pat;
- char *namespace_name;
- unsigned int flags;
- SLang_Array_Type *at;
-
- num_args = SLang_Num_Function_Args;
-
- if (-1 == SLang_pop_uinteger (&flags))
- return;
- if (-1 == SLang_pop_slstring (&pat))
- return;
-
- namespace_name = NULL;
- at = NULL;
- if (num_args == 3)
- {
- if (-1 == SLang_pop_slstring (&namespace_name))
- goto free_and_return;
- }
-
- at = _SLang_apropos (namespace_name, pat, flags);
- if (num_args == 3)
- {
- (void) SLang_push_array (at, 0);
- goto free_and_return;
- }
-
- /* Maintain compatibility with old version of the function. That version
- * did not take three arguments and returned everything to the stack.
- * Yuk.
- */
- (void) push_string_array_elements (at);
-
- free_and_return:
- /* NULLs ok */
- SLang_free_slstring (namespace_name);
- SLang_free_slstring (pat);
- SLang_free_array (at);
-}
-
-static int intrin_get_defines (void)
-{
- int n = 0;
- char **s = _SLdefines;
-
- while (*s != NULL)
- {
- if (-1 == SLang_push_string (*s))
- {
- SLdo_pop_n ((unsigned int) n);
- return -1;
- }
- s++;
- n++;
- }
- return n;
-}
-
-static void intrin_get_reference (char *name)
-{
- _SLang_push_ref (1, (VOID_STAR) _SLlocate_name (name));
-}
-
-#ifdef HAVE_SYS_UTSNAME_H
-# include <sys/utsname.h>
-#endif
-
-static void uname_cmd (void)
-{
-#ifdef HAVE_UNAME
- struct utsname u;
- char *field_names [6];
- unsigned char field_types[6];
- VOID_STAR field_values [6];
- char *ptrs[6];
- int i;
-
- if (-1 == uname (&u))
- (void) SLang_push_null ();
-
- field_names[0] = "sysname"; ptrs[0] = u.sysname;
- field_names[1] = "nodename"; ptrs[1] = u.nodename;
- field_names[2] = "release"; ptrs[2] = u.release;
- field_names[3] = "version"; ptrs[3] = u.version;
- field_names[4] = "machine"; ptrs[4] = u.machine;
-
- for (i = 0; i < 5; i++)
- {
- field_types[i] = SLANG_STRING_TYPE;
- field_values[i] = (VOID_STAR) &ptrs[i];
- }
-
- if (0 == SLstruct_create_struct (5, field_names, field_types, field_values))
- return;
-#endif
-
- SLang_push_null ();
-}
-
-static void uninitialize_ref_intrin (SLang_Ref_Type *ref)
-{
- (void) _SLang_uninitialize_ref (ref);
-}
-
-static SLang_Intrin_Fun_Type SLang_Basic_Table [] = /*{{{*/
-{
- MAKE_INTRINSIC_1("__is_initialized", _SLang_is_ref_initialized, SLANG_INT_TYPE, SLANG_REF_TYPE),
- MAKE_INTRINSIC_S("__get_reference", intrin_get_reference, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_1("__uninitialize", uninitialize_ref_intrin, SLANG_VOID_TYPE, SLANG_REF_TYPE),
- MAKE_INTRINSIC_SS("get_doc_string_from_file", get_doc_string, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_SS("autoload", SLang_autoload, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_S("is_defined", SLang_is_defined, SLANG_INT_TYPE),
- MAKE_INTRINSIC_0("string", _SLstring_intrinsic, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_0("uname", uname_cmd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_S("getenv", intrin_getenv_cmd, SLANG_VOID_TYPE),
-#ifdef HAVE_PUTENV
- MAKE_INTRINSIC_0("putenv", intrin_putenv, SLANG_VOID_TYPE),
-#endif
- MAKE_INTRINSIC_S("evalfile", load_file, SLANG_INT_TYPE),
- MAKE_INTRINSIC_I("char", char_cmd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_S("eval", SLang_load_string, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_0("dup", do_dup, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_S("integer", intrin_integer, SLANG_INT_TYPE),
- MAKE_INTRINSIC_S("system", SLsystem, SLANG_INT_TYPE),
- MAKE_INTRINSIC_0("_apropos", intrin_apropos, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_S("_trace_function", _SLang_trace_fun, SLANG_VOID_TYPE),
-#if SLANG_HAS_FLOAT
- MAKE_INTRINSIC_S("atof", _SLang_atof, SLANG_DOUBLE_TYPE),
- MAKE_INTRINSIC_0("double", intrin_double, SLANG_VOID_TYPE),
-#endif
- MAKE_INTRINSIC_0("int", intrin_int, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_0("typecast", intrin_typecast, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_0("_stkdepth", _SLstack_depth, SLANG_INT_TYPE),
- MAKE_INTRINSIC_I("_stk_reverse", intrin_reverse_stack, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_0("typeof", intrin_type_info, VOID_TYPE),
- MAKE_INTRINSIC_0("_typeof", intrin_type_info1, VOID_TYPE),
- MAKE_INTRINSIC_I("_pop_n", intrin_pop_n, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_0("_print_stack", lang_print_stack, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_I("_stk_roll", intrin_roll_stack, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_SI("byte_compile_file", byte_compile_file, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_0("_clear_error", _SLang_clear_error, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_0("_function_name", intrin_function_name, SLANG_STRING_TYPE),
-#if SLANG_HAS_FLOAT
- MAKE_INTRINSIC_S("set_float_format", _SLset_double_format, SLANG_VOID_TYPE),
-#endif
- MAKE_INTRINSIC_S("_slang_guess_type", guess_type, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_S("error", intrin_error, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_S("message", intrin_message, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_0("__get_defined_symbols", intrin_get_defines, SLANG_INT_TYPE),
- MAKE_INTRINSIC_I("__pop_args", _SLstruct_pop_args, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_1("__push_args", _SLstruct_push_args, SLANG_VOID_TYPE, SLANG_ARRAY_TYPE),
- MAKE_INTRINSIC_0("usage", usage, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_S("implements", _SLang_implements_intrinsic, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_S("use_namespace", _SLang_use_namespace_intrinsic, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_0("current_namespace", _SLang_cur_namespace_intrinsic, SLANG_STRING_TYPE),
- MAKE_INTRINSIC_0("length", length_cmd, SLANG_INT_TYPE),
- SLANG_END_INTRIN_FUN_TABLE
-};
-
-/*}}}*/
-
-#ifdef SLANG_DOC_DIR
-char *SLang_Doc_Dir = SLANG_DOC_DIR;
-#else
-char *SLang_Doc_Dir = "";
-#endif
-
-static SLang_Intrin_Var_Type Intrin_Vars[] =
-{
- MAKE_VARIABLE("_debug_info", &_SLang_Compile_Line_Num_Info, SLANG_INT_TYPE, 0),
- MAKE_VARIABLE("_auto_declare", &_SLang_Auto_Declare_Globals, SLANG_INT_TYPE, 0),
- MAKE_VARIABLE("_traceback", &SLang_Traceback, SLANG_INT_TYPE, 0),
- MAKE_VARIABLE("_slangtrace", &_SLang_Trace, SLANG_INT_TYPE, 0),
- MAKE_VARIABLE("_slang_version", &SLang_Version, SLANG_INT_TYPE, 1),
- MAKE_VARIABLE("_slang_version_string", &SLang_Version_String, SLANG_STRING_TYPE, 1),
- MAKE_VARIABLE("_NARGS", &SLang_Num_Function_Args, SLANG_INT_TYPE, 1),
- MAKE_VARIABLE("_slang_doc_dir", &SLang_Doc_Dir, SLANG_STRING_TYPE, 1),
- MAKE_VARIABLE("NULL", NULL, SLANG_NULL_TYPE, 1),
- SLANG_END_INTRIN_VAR_TABLE
-};
-
-int SLang_init_slang (void) /*{{{*/
-{
- char name[3];
- unsigned int i;
- char **s;
- static char *sys_defines [] =
- {
-#if defined(__os2__)
- "OS2",
-#endif
-#if defined(__MSDOS__)
- "MSDOS",
-#endif
-#if defined(__WIN16__)
- "WIN16",
-#endif
-#if defined (__WIN32__)
- "WIN32",
-#endif
-#if defined(__NT__)
- "NT",
-#endif
-#if defined (VMS)
- "VMS",
-#endif
-#ifdef REAL_UNIX_SYSTEM
- "UNIX",
-#endif
-#if SLANG_HAS_FLOAT
- "SLANG_DOUBLE_TYPE",
-#endif
- NULL
- };
-
- if (-1 == _SLregister_types ()) return -1;
-
- if ((-1 == SLadd_intrin_fun_table(SLang_Basic_Table, NULL))
- || (-1 == SLadd_intrin_var_table (Intrin_Vars, NULL))
- || (-1 == _SLang_init_slstrops ())
- || (-1 == _SLang_init_sltime ())
- || (-1 == _SLstruct_init ())
-#if SLANG_HAS_COMPLEX
- || (-1 == _SLinit_slcomplex ())
-#endif
-#if SLANG_HAS_ASSOC_ARRAYS
- || (-1 == SLang_init_slassoc ())
-#endif
- )
- return -1;
-
- SLadd_global_variable (SLANG_SYSTEM_NAME);
-
- s = sys_defines;
- while (*s != NULL)
- {
- if (-1 == SLdefine_for_ifdef (*s)) return -1;
- s++;
- }
-
- /* give temp global variables $0 --> $9 */
- name[2] = 0; name[0] = '$';
- for (i = 0; i < 10; i++)
- {
- name[1] = (char) (i + '0');
- SLadd_global_variable (name);
- }
-
- SLang_init_case_tables ();
-
- /* Now add a couple of macros */
- SLang_load_string (".(_NARGS 1 - Sprintf error)verror");
- SLang_load_string (".(_NARGS 1 - Sprintf message)vmessage");
-
- if (SLang_Error)
- return -1;
-
- return 0;
-}
-
-/*}}}*/
-
-int SLang_set_argc_argv (int argc, char **argv)
-{
- static int this_argc;
- static char **this_argv;
- int i;
-
- if (argc < 0) argc = 0;
- this_argc = argc;
-
- if (NULL == (this_argv = (char **) SLmalloc ((argc + 1) * sizeof (char *))))
- return -1;
- memset ((char *) this_argv, 0, sizeof (char *) * (argc + 1));
-
- for (i = 0; i < argc; i++)
- {
- if (NULL == (this_argv[i] = SLang_create_slstring (argv[i])))
- goto return_error;
- }
-
- if (-1 == SLadd_intrinsic_variable ("__argc", (VOID_STAR)&this_argc,
- SLANG_INT_TYPE, 1))
- goto return_error;
-
- if (-1 == SLang_add_intrinsic_array ("__argv", SLANG_STRING_TYPE, 1,
- (VOID_STAR) this_argv, 1, argc))
- goto return_error;
-
- return 0;
-
- return_error:
- for (i = 0; i < argc; i++)
- SLang_free_slstring (this_argv[i]); /* NULL ok */
- SLfree ((char *) this_argv);
-
- return -1;
-}
diff --git a/mdk-stage1/slang/slstdio.c b/mdk-stage1/slang/slstdio.c
deleted file mode 100644
index 05db1af77..000000000
--- a/mdk-stage1/slang/slstdio.c
+++ /dev/null
@@ -1,1050 +0,0 @@
-/* file stdio intrinsics for S-Lang */
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#if defined(__unix__) || (defined (__os2__) && defined (__EMX__))
-# include <sys/types.h>
-#endif
-
-#ifdef HAVE_FCNTL_H
-# include <fcntl.h>
-#endif
-#ifdef HAVE_SYS_FCNTL_H
-# include <sys/fcntl.h>
-#endif
-
-#ifdef __unix__
-# include <sys/file.h>
-#endif
-
-#if defined(__BORLANDC__)
-# include <io.h>
-# include <dir.h>
-#endif
-
-#if defined(__DECC) && defined(VMS)
-# include <unixio.h>
-# include <unixlib.h>
-#endif
-
-#ifdef VMS
-# include <stat.h>
-#else
-# include <sys/stat.h>
-#endif
-
-#include <errno.h>
-
-#define SL_APP_WANTS_FOREACH
-#include "slang.h"
-#include "_slang.h"
-
-typedef struct
-{
- FILE *fp; /* kind of obvious */
- char *file; /* file name associated with pointer */
-
- unsigned int flags; /* modes, etc... */
-#define SL_READ 0x0001
-#define SL_WRITE 0x0002
-#define SL_BINARY 0x0004
-#define SL_FDOPEN 0x2000
-#define SL_PIPE 0x4000
-#define SL_INUSE 0x8000
-}
-SL_File_Table_Type;
-
-static SL_File_Table_Type *SL_File_Table;
-
-static SL_File_Table_Type *get_free_file_table_entry (void)
-{
- SL_File_Table_Type *t = SL_File_Table, *tmax;
-
- tmax = t + SL_MAX_FILES;
- while (t < tmax)
- {
- if (t->flags == 0)
- {
- memset ((char *) t, 0, sizeof (SL_File_Table_Type));
- return t;
- }
- t++;
- }
-
- return NULL;
-}
-
-static unsigned int file_process_flags (char *mode)
-{
- char ch;
- unsigned int flags = 0;
-
- while (1)
- {
- ch = *mode++;
- switch (ch)
- {
- case 'r': flags |= SL_READ;
- break;
- case 'w':
- case 'a':
- case 'A':
- flags |= SL_WRITE;
- break;
- case '+': flags |= SL_WRITE | SL_READ;
- break;
- case 'b': flags |= SL_BINARY;
- break;
- case 0:
- return flags;
-
- default:
- SLang_verror (SL_INVALID_PARM, "File flag %c is not supported", ch);
- return 0;
- }
- }
-}
-
-static int open_file_type (char *file, int fd, char *mode,
- FILE *(*open_fun)(char *, char *),
- int (*close_fun)(FILE *),
- unsigned int xflags)
-{
- FILE *fp;
- SL_File_Table_Type *t;
- unsigned int flags;
- SLang_MMT_Type *mmt;
-
- fp = NULL;
- t = NULL;
- mmt = NULL;
-
- if ((NULL == (t = get_free_file_table_entry ()))
- || (0 == (flags = file_process_flags(mode))))
- goto return_error;
-
- if (fd != -1)
- fp = fdopen (fd, mode);
- else
- fp = open_fun (file, mode);
-
- if (fp == NULL)
- {
- _SLerrno_errno = errno;
- goto return_error;
- }
-
- if (NULL == (mmt = SLang_create_mmt (SLANG_FILE_PTR_TYPE, (VOID_STAR) t)))
- goto return_error;
-
- t->fp = fp;
- t->flags = flags | xflags;
- fp = NULL; /* allow free_mmt to close fp */
-
- if ((NULL != (t->file = SLang_create_slstring (file)))
- && (0 == SLang_push_mmt (mmt)))
- return 0;
-
- /* drop */
-
- return_error:
- if (fp != NULL) (*close_fun) (fp);
- if (mmt != NULL) SLang_free_mmt (mmt);
- (void) SLang_push_null ();
- return -1;
-}
-
-/* Since some compilers do not have popen/pclose prototyped and in scope,
- * and pc compilers sometimes have silly prototypes involving PASCAL, etc.
- * use wrappers around the function to avoid compilation errors.
- */
-
-static FILE *fopen_fun (char *f, char *m)
-{
- return fopen (f, m);
-}
-static int fclose_fun (FILE *fp)
-{
- return fclose (fp);
-}
-
-static void stdio_fopen (char *file, char *mode)
-{
- (void) open_file_type (file, -1, mode, fopen_fun, fclose_fun, 0);
-}
-
-int _SLstdio_fdopen (char *file, int fd, char *mode)
-{
- if (fd == -1)
- {
- _SLerrno_errno = EBADF;
- (void) SLang_push_null ();
- return -1;
- }
-
- return open_file_type (file, fd, mode, NULL, fclose_fun, SL_FDOPEN);
-}
-
-#ifdef HAVE_POPEN
-static int pclose_fun (FILE *fp)
-{
- return pclose (fp);
-}
-
-static FILE *popen_fun (char *file, char *mode)
-{
- return popen (file, mode);
-}
-
-static void stdio_popen (char *file, char *mode)
-{
- (void) open_file_type (file, -1, mode, popen_fun, pclose_fun, SL_PIPE);
-}
-#endif
-
-/* returns pointer to file entry if it is open and consistent with
- flags. Returns NULL otherwise */
-static SLang_MMT_Type *pop_fp (unsigned int flags, FILE **fp_ptr)
-{
- SL_File_Table_Type *t;
- SLang_MMT_Type *mmt;
-
- *fp_ptr = NULL;
-
- if (NULL == (mmt = SLang_pop_mmt (SLANG_FILE_PTR_TYPE)))
- return NULL;
-
- t = (SL_File_Table_Type *) SLang_object_from_mmt (mmt);
- if ((t->flags & flags)
- && (NULL != (*fp_ptr = t->fp)))
- return mmt;
-
- SLang_free_mmt (mmt);
- return NULL;
-}
-
-static FILE *check_fp (SL_File_Table_Type *t, unsigned flags)
-{
- if ((t != NULL) && (t->flags & flags))
- return t->fp;
-
- return NULL;
-}
-
-char *SLang_get_name_from_fileptr (SLang_MMT_Type *mmt)
-{
- SL_File_Table_Type *ft;
-
- ft = (SL_File_Table_Type *) SLang_object_from_mmt (mmt);
- if (ft == NULL)
- return NULL;
- return ft->file;
-}
-
-int SLang_pop_fileptr (SLang_MMT_Type **mmt, FILE **fp)
-{
- if (NULL == (*mmt = pop_fp (0xFFFF, fp)))
- {
-#ifdef EBADF
- _SLerrno_errno = EBADF;
-#endif
- return -1;
- }
-
- return 0;
-}
-
-static int close_file_type (SL_File_Table_Type *t)
-{
- int ret = 0;
- FILE *fp;
-
- if (t == NULL)
- return -1;
-
- fp = t->fp;
-
- if (NULL == fp) ret = -1;
- else
- {
- if (0 == (t->flags & SL_PIPE))
- {
- if (EOF == (ret = fclose (fp)))
- _SLerrno_errno = errno;
- }
-#ifdef HAVE_POPEN
- else
- {
- if (-1 == (ret = pclose (fp)))
- _SLerrno_errno = errno;
- }
-#endif
- }
-
- if (t->file != NULL) SLang_free_slstring (t->file);
- memset ((char *) t, 0, sizeof (SL_File_Table_Type));
- return ret;
-}
-
-static int stdio_fclose (SL_File_Table_Type *t)
-{
- int ret;
-
- if (NULL == check_fp (t, 0xFFFF))
- return -1;
-
- ret = close_file_type (t);
-
- t->flags = SL_INUSE;
- return ret;
-}
-
-static int read_one_line (FILE *fp, char **strp, unsigned int *lenp)
-{
- char buf[512];
- char *str;
- unsigned int len;
-
- *strp = NULL;
- len = 0;
- str = NULL;
-
- while (NULL != fgets (buf, sizeof (buf), fp))
- {
- unsigned int dlen;
- char *new_str;
- int done_flag;
-
- dlen = strlen (buf);
- /* Note: If the file contains embedded \0 characters, then this
- * fails to work properly since dlen will not be correct.
- */
- done_flag = ((dlen + 1 < sizeof (buf))
- || (buf[dlen - 1] == '\n'));
-
- if (done_flag && (str == NULL))
- {
- /* Avoid the malloc */
- str = buf;
- len = dlen;
- break;
- }
-
- if (NULL == (new_str = SLrealloc (str, len + dlen + 1)))
- {
- SLfree (str);
- return -1;
- }
-
- str = new_str;
- strcpy (str + len, buf);
- len += dlen;
-
- if (done_flag) break;
- }
-
- if (str == NULL)
- return 0;
-
- *strp = SLang_create_nslstring (str, len);
- if (str != buf) SLfree (str);
-
- if (*strp == NULL) return -1;
-
- *lenp = len;
- return 1;
-}
-
-/* returns number of characters read and pushes the string to the stack.
- If it fails, it returns -1 */
-static int stdio_fgets (SLang_Ref_Type *ref, SL_File_Table_Type *t)
-{
- char *s;
- unsigned int len;
- FILE *fp;
- int status;
-
- if (NULL == (fp = check_fp (t, SL_READ)))
- return -1;
-
- status = read_one_line (fp, &s, &len);
- if (status <= 0)
- return -1;
-
- status = SLang_assign_to_ref (ref, SLANG_STRING_TYPE, (VOID_STAR)&s);
- SLang_free_slstring (s);
-
- if (status == -1)
- return -1;
-
- return (int) len;
-}
-
-static void stdio_fgetslines_internal (FILE *fp, unsigned int n)
-{
- unsigned int num_lines, max_num_lines;
- char **list;
- SLang_Array_Type *at;
- int inum_lines;
-
- if (n > 1024)
- max_num_lines = 1024;
- else
- {
- max_num_lines = n;
- if (max_num_lines == 0)
- max_num_lines++;
- }
-
- list = (char **) SLmalloc (sizeof (char *) * max_num_lines);
- if (list == NULL)
- return;
-
- num_lines = 0;
- while (num_lines < n)
- {
- int status;
- char *line;
- unsigned int len;
-
- status = read_one_line (fp, &line, &len);
- if (status == -1)
- goto return_error;
-
- if (status == 0)
- break;
-
- if (max_num_lines == num_lines)
- {
- char **new_list;
-
- if (max_num_lines + 4096 > n)
- max_num_lines = n;
- else
- max_num_lines += 4096;
-
- new_list = (char **) SLrealloc ((char *)list, sizeof (char *) * max_num_lines);
- if (new_list == NULL)
- {
- SLang_free_slstring (line);
- goto return_error;
- }
- list = new_list;
- }
-
- list[num_lines] = line;
- num_lines++;
- }
-
- if (num_lines != max_num_lines)
- {
- char **new_list;
-
- new_list = (char **)SLrealloc ((char *)list, sizeof (char *) * (num_lines + 1));
- if (new_list == NULL)
- goto return_error;
-
- list = new_list;
- }
-
- inum_lines = (int) num_lines;
- if (NULL == (at = SLang_create_array (SLANG_STRING_TYPE, 0, (VOID_STAR) list, &inum_lines, 1)))
- goto return_error;
-
- if (-1 == SLang_push_array (at, 1))
- SLang_push_null ();
- return;
-
- return_error:
- while (num_lines > 0)
- {
- num_lines--;
- SLfree (list[num_lines]);
- }
- SLfree ((char *)list);
- SLang_push_null ();
-}
-
-static void stdio_fgetslines (void)
-{
- unsigned int n;
- FILE *fp;
- SLang_MMT_Type *mmt;
-
- n = (unsigned int)-1;
-
- if (SLang_Num_Function_Args == 2)
- {
- if (-1 == SLang_pop_uinteger (&n))
- return;
- }
-
- if (NULL == (mmt = pop_fp (SL_READ, &fp)))
- {
- SLang_push_null ();
- return;
- }
-
- stdio_fgetslines_internal (fp, n);
- SLang_free_mmt (mmt);
-}
-
-
-static int stdio_fputs (char *s, SL_File_Table_Type *t)
-{
- FILE *fp;
-
- if (NULL == (fp = check_fp (t, SL_WRITE)))
- return -1;
-
- if (EOF == fputs(s, fp)) return -1;
- return (int) strlen (s);
-}
-
-static int stdio_fflush (SL_File_Table_Type *t)
-{
- FILE *fp;
-
- if (NULL == (fp = check_fp (t, SL_WRITE)))
- return -1;
-
- if (EOF == fflush (fp))
- {
- _SLerrno_errno = errno;
- return -1;
- }
-
- return 0;
-}
-
-/* Usage: n = fread (&str, data-type, nelems, fp); */
-static void stdio_fread (SLang_Ref_Type *ref, int *data_typep, unsigned int *num_elemns, SL_File_Table_Type *t)
-{
- char *s;
- FILE *fp;
- int ret;
- unsigned int num_read, num_to_read;
- unsigned int nbytes;
- SLang_Class_Type *cl;
- unsigned int sizeof_type;
- int data_type;
-
- ret = -1;
- s = NULL;
- cl = NULL;
-
- if (NULL == (fp = check_fp (t, SL_READ)))
- goto the_return;
-
- /* FIXME: priority = low : I should add some mechanism to support
- * other types.
- */
- data_type = *data_typep;
-
- cl = _SLclass_get_class ((unsigned char) data_type);
-
- if (cl->cl_fread == NULL)
- {
- SLang_verror (SL_NOT_IMPLEMENTED,
- "fread does not support %s objects",
- cl->cl_name);
- goto the_return;
- }
-
- sizeof_type = cl->cl_sizeof_type;
-
- num_to_read = *num_elemns;
- nbytes = (unsigned int) num_to_read * sizeof_type;
-
- s = SLmalloc (nbytes + 1);
- if (s == NULL)
- goto the_return;
-
- ret = cl->cl_fread (data_type, fp, (VOID_STAR)s, num_to_read, &num_read);
-
- if ((num_read == 0)
- && (num_read != num_to_read))
- ret = -1;
-
- if ((ret == -1) && ferror (fp))
- _SLerrno_errno = errno;
-
- if ((ret == 0)
- && (num_read != num_to_read))
- {
- char *new_s;
-
- nbytes = num_read * sizeof_type;
- new_s = SLrealloc (s, nbytes + 1);
- if (new_s == NULL)
- ret = -1;
- else
- s = new_s;
- }
-
- if (ret == 0)
- {
- if (num_read == 1)
- {
- ret = SLang_assign_to_ref (ref, data_type, (VOID_STAR)s);
- SLfree (s);
- }
- else if ((data_type == SLANG_CHAR_TYPE)
- || (data_type == SLANG_UCHAR_TYPE))
- {
- SLang_BString_Type *bs;
-
- bs = SLbstring_create_malloced ((unsigned char *)s, num_read, 1);
- ret = SLang_assign_to_ref (ref, SLANG_BSTRING_TYPE, (VOID_STAR)&bs);
- SLbstring_free (bs);
- }
- else
- {
- SLang_Array_Type *at;
- int inum_read = (int) num_read;
- at = SLang_create_array (data_type, 0, (VOID_STAR)s, &inum_read, 1);
- ret = SLang_assign_to_ref (ref, SLANG_ARRAY_TYPE, (VOID_STAR)&at);
- SLang_free_array (at);
- }
- s = NULL;
- }
-
- the_return:
-
- if (s != NULL)
- SLfree (s);
-
- if (ret == -1)
- SLang_push_integer (ret);
- else
- SLang_push_uinteger (num_read);
-}
-
-/* Usage: n = fwrite (str, fp); */
-static void stdio_fwrite (SL_File_Table_Type *t)
-{
- FILE *fp;
- unsigned char *s;
- unsigned int num_to_write, num_write;
- int ret;
- SLang_BString_Type *b;
- SLang_Array_Type *at;
- SLang_Class_Type *cl;
-
- ret = -1;
- b = NULL;
- at = NULL;
-
- switch (SLang_peek_at_stack ())
- {
- case SLANG_BSTRING_TYPE:
- case SLANG_STRING_TYPE:
- if (-1 == SLang_pop_bstring (&b))
- goto the_return;
-
- if (NULL == (s = SLbstring_get_pointer (b, &num_to_write)))
- goto the_return;
-
- cl = _SLclass_get_class (SLANG_UCHAR_TYPE);
- break;
-
- default:
- if (-1 == SLang_pop_array (&at, 1))
- goto the_return;
-
- cl = at->cl;
- num_to_write = at->num_elements;
- s = (unsigned char *) at->data;
- }
-
- if (NULL == (fp = check_fp (t, SL_WRITE)))
- goto the_return;
-
- if (cl->cl_fwrite == NULL)
- {
- SLang_verror (SL_NOT_IMPLEMENTED,
- "fwrite does not support %s objects", cl->cl_name);
- goto the_return;
- }
-
- ret = cl->cl_fwrite (cl->cl_data_type, fp, s, num_to_write, &num_write);
-
- if ((ret == -1) && ferror (fp))
- _SLerrno_errno = errno;
-
- /* drop */
- the_return:
- if (b != NULL)
- SLbstring_free (b);
- if (at != NULL)
- SLang_free_array (at);
-
- if (ret == -1)
- SLang_push_integer (ret);
- else
- SLang_push_uinteger (num_write);
-}
-
-static int stdio_fseek (SL_File_Table_Type *t, int *ofs, int *whence)
-{
- FILE *fp;
-
- if (NULL == (fp = check_fp (t, 0xFFFF)))
- return -1;
-
- if (-1 == fseek (fp, (long) *ofs, *whence))
- {
- _SLerrno_errno = errno;
- return -1;
- }
-
- return 0;
-}
-
-static int stdio_ftell (SL_File_Table_Type *t)
-{
- FILE *fp;
- long ofs;
-
- if (NULL == (fp = check_fp (t, 0xFFFF)))
- return -1;
-
- if (-1L == (ofs = ftell (fp)))
- {
- _SLerrno_errno = errno;
- return -1;
- }
-
- return (int) ofs;
-}
-
-static int stdio_feof (SL_File_Table_Type *t)
-{
- FILE *fp;
-
- if (NULL == (fp = check_fp (t, 0xFFFF)))
- return -1;
-
- return feof (fp);
-}
-
-static int stdio_ferror (SL_File_Table_Type *t)
-{
- FILE *fp;
-
- if (NULL == (fp = check_fp (t, 0xFFFF)))
- return -1;
-
- return ferror (fp);
-}
-
-static void stdio_clearerr (SL_File_Table_Type *t)
-{
- FILE *fp;
-
- if (NULL != (fp = check_fp (t, 0xFFFF)))
- clearerr (fp);
-}
-
-/* () = fprintf (fp, "FORMAT", arg...); */
-static int stdio_fprintf (void)
-{
- char *s;
- FILE *fp;
- SLang_MMT_Type *mmt;
- int status;
-
- if (-1 == _SLstrops_do_sprintf_n (SLang_Num_Function_Args - 2))
- return -1;
-
- if (-1 == SLang_pop_slstring (&s))
- return -1;
-
- if (NULL == (mmt = pop_fp (SL_WRITE, &fp)))
- {
- SLang_free_slstring (s);
- return -1;
- }
-
- if (EOF == fputs(s, fp))
- status = -1;
- else
- status = (int) strlen (s);
-
- SLang_free_mmt (mmt);
- SLang_free_slstring (s);
- return status;
-}
-
-static int stdio_printf (void)
-{
- char *s;
- int status;
-
- if (-1 == _SLstrops_do_sprintf_n (SLang_Num_Function_Args - 1))
- return -1;
-
- if (-1 == SLang_pop_slstring (&s))
- return -1;
-
- if (EOF == fputs(s, stdout))
- status = -1;
- else
- status = (int) strlen (s);
-
- SLang_free_slstring (s);
- return status;
-}
-
-
-#define F SLANG_FILE_PTR_TYPE
-#define R SLANG_REF_TYPE
-#define I SLANG_INT_TYPE
-#define V SLANG_VOID_TYPE
-#define S SLANG_STRING_TYPE
-#define B SLANG_BSTRING_TYPE
-#define U SLANG_UINT_TYPE
-#define D SLANG_DATATYPE_TYPE
-static SLang_Intrin_Fun_Type Stdio_Name_Table[] =
-{
- MAKE_INTRINSIC_0("fgetslines", stdio_fgetslines, V),
- MAKE_INTRINSIC_SS("fopen", stdio_fopen, V),
- MAKE_INTRINSIC_1("feof", stdio_feof, I, F),
- MAKE_INTRINSIC_1("ferror", stdio_ferror, I, F),
- MAKE_INTRINSIC_1("fclose", stdio_fclose, I, F),
- MAKE_INTRINSIC_2("fgets", stdio_fgets, I, R, F),
- MAKE_INTRINSIC_1("fflush", stdio_fflush, I, F),
- MAKE_INTRINSIC_2("fputs", stdio_fputs, I, S, F),
- MAKE_INTRINSIC_0("fprintf", stdio_fprintf, I),
- MAKE_INTRINSIC_0("printf", stdio_printf, I),
- MAKE_INTRINSIC_3("fseek", stdio_fseek, I, F, I, I),
- MAKE_INTRINSIC_1("ftell", stdio_ftell, I, F),
- MAKE_INTRINSIC_1("clearerr", stdio_clearerr, V, F),
- MAKE_INTRINSIC_4("fread", stdio_fread, V, R, D, U, F),
- MAKE_INTRINSIC_1("fwrite", stdio_fwrite, V, F),
-#ifdef HAVE_POPEN
- MAKE_INTRINSIC_SS("popen", stdio_popen, V),
- MAKE_INTRINSIC_1("pclose", stdio_fclose, I, F),
-#endif
- SLANG_END_INTRIN_FUN_TABLE
-};
-#undef F
-#undef I
-#undef R
-#undef V
-#undef S
-#undef B
-#undef U
-#undef D
-
-#ifndef SEEK_SET
-# define SEEK_SET 0
-#endif
-#ifndef SEEK_CUR
-# define SEEK_CUR 1
-#endif
-#ifndef SEEK_END
-# define SEEK_END 2
-#endif
-
-static SLang_IConstant_Type Stdio_Consts [] =
-{
- MAKE_ICONSTANT("SEEK_SET", SEEK_SET),
- MAKE_ICONSTANT("SEEK_END", SEEK_END),
- MAKE_ICONSTANT("SEEK_CUR", SEEK_CUR),
- SLANG_END_ICONST_TABLE
-};
-
-static void destroy_file_type (unsigned char type, VOID_STAR ptr)
-{
- (void) type;
- (void) close_file_type ((SL_File_Table_Type *) ptr);
-}
-
-
-struct _SLang_Foreach_Context_Type
-{
- SLang_MMT_Type *mmt;
- FILE *fp;
-#define CTX_USE_LINE 1
-#define CTX_USE_CHAR 2
- unsigned char type;
-};
-
-
-static SLang_Foreach_Context_Type *
-cl_foreach_open (unsigned char type, unsigned int num)
-{
- SLang_Foreach_Context_Type *c;
- SLang_MMT_Type *mmt;
- FILE *fp;
-
- if (NULL == (mmt = pop_fp (SL_READ, &fp)))
- return NULL;
-
- type = CTX_USE_LINE;
-
- switch (num)
- {
- char *s;
-
- case 0:
- type = CTX_USE_LINE;
- break;
-
- case 1:
- if (-1 == SLang_pop_slstring (&s))
- {
- SLang_free_mmt (mmt);
- return NULL;
- }
- if (0 == strcmp (s, "char"))
- type = CTX_USE_CHAR;
- else if (0 == strcmp (s, "line"))
- type = CTX_USE_LINE;
- else
- {
- SLang_verror (SL_NOT_IMPLEMENTED,
- "using '%s' not supported by File_Type",
- s);
- SLang_free_slstring (s);
- SLang_free_mmt (mmt);
- return NULL;
- }
- SLang_free_slstring (s);
- break;
-
- default:
- SLdo_pop_n (num);
- SLang_verror (SL_NOT_IMPLEMENTED,
- "Usage: foreach (File_Type) using ([line|char])");
- SLang_free_mmt (mmt);
- return NULL;
- }
-
- if (NULL == (c = (SLang_Foreach_Context_Type *) SLmalloc (sizeof (SLang_Foreach_Context_Type))))
- {
- SLang_free_mmt (mmt);
- return NULL;
- }
- memset ((char *) c, 0, sizeof (SLang_Foreach_Context_Type));
-
- c->type = type;
- c->mmt = mmt;
- c->fp = fp;
-
- return c;
-}
-
-static void cl_foreach_close (unsigned char type, SLang_Foreach_Context_Type *c)
-{
- (void) type;
- if (c == NULL) return;
- SLang_free_mmt (c->mmt);
- SLfree ((char *) c);
-}
-
-static int cl_foreach (unsigned char type, SLang_Foreach_Context_Type *c)
-{
- int status;
- int ch;
- unsigned int len;
- char *s;
-
- (void) type;
-
- if (c == NULL)
- return -1;
-
- switch (c->type)
- {
- case CTX_USE_CHAR:
- if (EOF == (ch = getc (c->fp)))
- return 0;
- if (-1 == SLang_push_uchar ((unsigned char) ch))
- return -1;
- return 1;
-
- case CTX_USE_LINE:
- status = read_one_line (c->fp, &s, &len);
- if (status <= 0)
- return status;
- if (0 == _SLang_push_slstring (s))
- return 1;
- return -1;
- }
-
- return -1;
-}
-
-static int Stdio_Initialized;
-static SLang_MMT_Type *Stdio_Mmts[3];
-
-int SLang_init_stdio (void)
-{
- unsigned int i;
- SL_File_Table_Type *s;
- SLang_Class_Type *cl;
- char *names[3];
-
- if (Stdio_Initialized)
- return 0;
-
- SL_File_Table = (SL_File_Table_Type *)SLcalloc(sizeof (SL_File_Table_Type), SL_MAX_FILES);
- if (SL_File_Table == NULL)
- return -1;
-
- if (NULL == (cl = SLclass_allocate_class ("File_Type")))
- return -1;
- cl->cl_destroy = destroy_file_type;
- cl->cl_foreach_open = cl_foreach_open;
- cl->cl_foreach_close = cl_foreach_close;
- cl->cl_foreach = cl_foreach;
-
-
- if (-1 == SLclass_register_class (cl, SLANG_FILE_PTR_TYPE, sizeof (SL_File_Table_Type), SLANG_CLASS_TYPE_MMT))
- return -1;
-
- if ((-1 == SLadd_intrin_fun_table(Stdio_Name_Table, "__STDIO__"))
- || (-1 == SLadd_iconstant_table (Stdio_Consts, NULL))
- || (-1 == _SLerrno_init ()))
- return -1;
-
- names[0] = "stdin";
- names[1] = "stdout";
- names[2] = "stderr";
-
- s = SL_File_Table;
- s->fp = stdin; s->flags = SL_READ;
-
- s++;
- s->fp = stdout; s->flags = SL_WRITE;
-
- s++;
- s->fp = stderr; s->flags = SL_WRITE|SL_READ;
-
- s = SL_File_Table;
- for (i = 0; i < 3; i++)
- {
- if (NULL == (s->file = SLang_create_slstring (names[i])))
- return -1;
-
- if (NULL == (Stdio_Mmts[i] = SLang_create_mmt (SLANG_FILE_PTR_TYPE, (VOID_STAR) s)))
- return -1;
- SLang_inc_mmt (Stdio_Mmts[i]);
-
- if (-1 == SLadd_intrinsic_variable (s->file, (VOID_STAR)&Stdio_Mmts[i], SLANG_FILE_PTR_TYPE, 1))
- return -1;
- s++;
- }
-
- Stdio_Initialized = 1;
- return 0;
-}
-
diff --git a/mdk-stage1/slang/slstring.c b/mdk-stage1/slang/slstring.c
deleted file mode 100644
index 529c41827..000000000
--- a/mdk-stage1/slang/slstring.c
+++ /dev/null
@@ -1,546 +0,0 @@
-/* Copyright (c) 1998, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-typedef struct _SLstring_Type
-{
- struct _SLstring_Type *next;
- unsigned int ref_count;
- char bytes [1];
-}
-SLstring_Type;
-
-static SLstring_Type *String_Hash_Table [SLSTRING_HASH_TABLE_SIZE];
-static char Single_Char_Strings [256 * 2];
-
-#if _SLANG_OPTIMIZE_FOR_SPEED
-#define MAX_FREE_STORE_LEN 32
-static SLstring_Type *SLS_Free_Store [MAX_FREE_STORE_LEN];
-
-# define NUM_CACHED_STRINGS 601
-typedef struct
-{
- unsigned long hash;
- SLstring_Type *sls;
- unsigned int len;
-}
-Cached_String_Type;
-static Cached_String_Type Cached_Strings [NUM_CACHED_STRINGS];
-
-#define GET_CACHED_STRING(s) \
- (Cached_Strings + (unsigned int)(((unsigned long) (s)) % NUM_CACHED_STRINGS))
-
-_INLINE_
-static void cache_string (SLstring_Type *sls, unsigned int len, unsigned long hash)
-{
- Cached_String_Type *cs;
-
- cs = GET_CACHED_STRING(sls->bytes);
- cs->sls = sls;
- cs->hash = hash;
- cs->len = len;
-}
-
-_INLINE_
-static void uncache_string (char *s)
-{
- Cached_String_Type *cs;
-
- cs = GET_CACHED_STRING(s);
- if ((cs->sls != NULL)
- && (cs->sls->bytes == s))
- cs->sls = NULL;
-}
-#endif
-
-
-
-_INLINE_
-unsigned long _SLstring_hash (unsigned char *s, unsigned char *smax)
-{
- register unsigned long h = 0;
- register unsigned long sum = 0;
- unsigned char *smax4;
-
- smax4 = smax - 4;
-
- while (s < smax4)
- {
- sum += s[0];
- h = sum + (h << 1);
- sum += s[1];
- h = sum + (h << 1);
- sum += s[2];
- h = sum + (h << 1);
- sum += s[3];
- h = sum + (h << 1);
-
- s += 4;
- }
-
- while (s < smax)
- {
- sum += *s++;
- h ^= sum + (h << 3); /* slightly different */
- }
-
- return h;
-}
-
-unsigned long _SLcompute_string_hash (char *s)
-{
-#if _SLANG_OPTIMIZE_FOR_SPEED
- Cached_String_Type *cs;
- SLstring_Type *sls;
-
- cs = GET_CACHED_STRING(s);
- if (((sls = cs->sls) != NULL)
- && (sls->bytes == s))
- return cs->hash;
-#endif
- return _SLstring_hash ((unsigned char *) s, (unsigned char *) s + strlen (s));
-}
-
-_INLINE_
-/* This routine works with any (long) string */
-static SLstring_Type *find_string (char *s, unsigned int len, unsigned long hash)
-{
- SLstring_Type *sls;
- char ch;
-
- sls = String_Hash_Table [(unsigned int)(hash % SLSTRING_HASH_TABLE_SIZE)];
-
- if (sls == NULL)
- return NULL;
-
- ch = s[0];
- do
- {
- char *bytes = sls->bytes;
-
- /* Note that we need to actually make sure that bytes[len] == 0.
- * In this case, it is not enough to just compare pointers. In fact,
- * this is called from create_nstring, etc... It is unlikely that the
- * pointer is a slstring
- */
- if ((/* (s == bytes) || */ ((ch == bytes[0])
- && (0 == strncmp (s, bytes, len))))
- && (bytes [len] == 0))
- break;
-
- sls = sls->next;
- }
- while (sls != NULL);
-
- return sls;
-}
-
-_INLINE_
-static SLstring_Type *find_slstring (char *s, unsigned long hash)
-{
- SLstring_Type *sls;
-
- sls = String_Hash_Table [(unsigned int)(hash % SLSTRING_HASH_TABLE_SIZE)];
- while (sls != NULL)
- {
- if (s == sls->bytes)
- return sls;
-
- sls = sls->next;
- }
- return sls;
-}
-
-_INLINE_
-static SLstring_Type *allocate_sls (unsigned int len)
-{
- SLstring_Type *sls;
-
-#if _SLANG_OPTIMIZE_FOR_SPEED
- if ((len < MAX_FREE_STORE_LEN)
- && (NULL != (sls = SLS_Free_Store [len])))
- {
- SLS_Free_Store[len] = NULL;
- return sls;
- }
-#endif
- /* FIXME: use structure padding */
- return (SLstring_Type *) SLmalloc (len + sizeof (SLstring_Type));
-}
-
-_INLINE_
-static void free_sls (SLstring_Type *sls, unsigned int len)
-{
-#if _SLANG_OPTIMIZE_FOR_SPEED
- if ((len < MAX_FREE_STORE_LEN)
- && (SLS_Free_Store[len] == NULL))
- {
- SLS_Free_Store [len] = sls;
- return;
- }
-#else
- (void) len;
-#endif
- SLfree ((char *)sls);
-}
-
-_INLINE_
-static char *create_long_string (char *s, unsigned int len, unsigned long hash)
-{
- SLstring_Type *sls;
-
- sls = find_string (s, len, hash);
-
- if (sls != NULL)
- {
- sls->ref_count++;
- s = sls->bytes;
-
-#if _SLANG_OPTIMIZE_FOR_SPEED
- cache_string (sls, len, hash);
-#endif
- return s;
- }
-
- sls = allocate_sls (len);
- if (sls == NULL)
- return NULL;
-
- strncpy (sls->bytes, s, len);
- sls->bytes[len] = 0;
- sls->ref_count = 1;
-
-#if _SLANG_OPTIMIZE_FOR_SPEED
- cache_string (sls, len, hash);
-#endif
-
- hash = hash % SLSTRING_HASH_TABLE_SIZE;
- sls->next = String_Hash_Table [(unsigned int)hash];
- String_Hash_Table [(unsigned int)hash] = sls;
-
- return sls->bytes;
-}
-
-_INLINE_
-static char *create_short_string (char *s, unsigned int len)
-{
- char ch;
-
- /* Note: if len is 0, then it does not matter what *s is. This is
- * important for SLang_create_nslstring.
- */
- if (len) ch = *s; else ch = 0;
-
- len = 2 * (unsigned int) ((unsigned char) ch);
- Single_Char_Strings [len] = ch;
- Single_Char_Strings [len + 1] = 0;
- return Single_Char_Strings + len;
-}
-
-/* s cannot be NULL */
-_INLINE_
-static char *create_nstring (char *s, unsigned int len, unsigned long *hash_ptr)
-{
- unsigned long hash;
-
- if (len < 2)
- return create_short_string (s, len);
-
- hash = _SLstring_hash ((unsigned char *) s, (unsigned char *) (s + len));
- *hash_ptr = hash;
-
- return create_long_string (s, len, hash);
-}
-
-char *SLang_create_nslstring (char *s, unsigned int len)
-{
- unsigned long hash;
- return create_nstring (s, len, &hash);
-}
-
-char *_SLstring_make_hashed_string (char *s, unsigned int len, unsigned long *hashptr)
-{
- unsigned long hash;
-
- if (s == NULL) return NULL;
-
- hash = _SLstring_hash ((unsigned char *) s, (unsigned char *) s + len);
- *hashptr = hash;
-
- if (len < 2)
- return create_short_string (s, len);
-
- return create_long_string (s, len, hash);
-}
-
-char *_SLstring_dup_hashed_string (char *s, unsigned long hash)
-{
- unsigned int len;
-#if _SLANG_OPTIMIZE_FOR_SPEED
- Cached_String_Type *cs;
- SLstring_Type *sls;
-
- if (s == NULL) return NULL;
- if (s[0] == 0)
- return create_short_string (s, 0);
- if (s[1] == 0)
- return create_short_string (s, 1);
-
- cs = GET_CACHED_STRING(s);
- if (((sls = cs->sls) != NULL)
- && (sls->bytes == s))
- {
- sls->ref_count += 1;
- return s;
- }
-#else
- if (s == NULL) return NULL;
-#endif
-
- len = strlen (s);
-#if !_SLANG_OPTIMIZE_FOR_SPEED
- if (len < 2) return create_short_string (s, len);
-#endif
-
- return create_long_string (s, len, hash);
-}
-
-char *_SLstring_dup_slstring (char *s)
-{
- SLstring_Type *sls;
- unsigned int len;
- unsigned long hash;
-#if _SLANG_OPTIMIZE_FOR_SPEED
- Cached_String_Type *cs;
-
- cs = GET_CACHED_STRING(s);
- if (((sls = cs->sls) != NULL)
- && (sls->bytes == s))
- {
- sls->ref_count += 1;
- return s;
- }
-#endif
-
- if ((s == NULL) || ((len = strlen (s)) < 2))
- return s;
-
- hash = _SLstring_hash ((unsigned char *)s, (unsigned char *)(s + len));
-
- sls = find_slstring (s, hash);
- if (sls == NULL)
- {
- SLang_Error = SL_INTERNAL_ERROR;
- return NULL;
- }
-
- sls->ref_count++;
-#if _SLANG_OPTIMIZE_FOR_SPEED
- cache_string (sls, len, hash);
-#endif
- return s;
-}
-
-static void free_sls_string (SLstring_Type *sls, char *s, unsigned int len,
- unsigned long hash)
-{
- SLstring_Type *sls1, *prev;
-
-#if _SLANG_OPTIMIZE_FOR_SPEED
- uncache_string (s);
-#endif
-
- hash = hash % SLSTRING_HASH_TABLE_SIZE;
-
- sls1 = String_Hash_Table [(unsigned int) hash];
-
- prev = NULL;
-
- /* This should not fail. */
- while (sls1 != sls)
- {
- prev = sls1;
- sls1 = sls1->next;
- }
-
- if (prev != NULL)
- prev->next = sls->next;
- else
- String_Hash_Table [(unsigned int) hash] = sls->next;
-
- free_sls (sls, len);
-}
-
-_INLINE_
-static void free_long_string (char *s, unsigned int len, unsigned long hash)
-{
- SLstring_Type *sls;
-
- if (NULL == (sls = find_slstring (s, hash)))
- {
- SLang_doerror ("Application internal error: invalid attempt to free string");
- return;
- }
-
- sls->ref_count--;
- if (sls->ref_count != 0)
- {
-#if _SLANG_OPTIMIZE_FOR_SPEED
- /* cache_string (sls, len, hash); */
-#endif
- return;
- }
-
-
- free_sls_string (sls, s, len, hash);
-}
-
-/* This routine may be passed NULL-- it is not an error. */
-void SLang_free_slstring (char *s)
-{
- unsigned long hash;
- unsigned int len;
-#if _SLANG_OPTIMIZE_FOR_SPEED
- Cached_String_Type *cs;
- SLstring_Type *sls;
-
- cs = GET_CACHED_STRING(s);
- if (((sls = cs->sls) != NULL)
- && (sls->bytes == s))
- {
- if (sls->ref_count <= 1)
- free_sls_string (sls, s, cs->len, cs->hash);
- else
- sls->ref_count -= 1;
- return;
- }
-#endif
-
- if (s == NULL) return;
-
- if ((len = strlen (s)) < 2)
- return;
-
- hash = _SLstring_hash ((unsigned char *)s, (unsigned char *) s + len);
- free_long_string (s, len, hash);
-}
-
-char *SLang_create_slstring (char *s)
-{
- unsigned long hash;
-#if _SLANG_OPTIMIZE_FOR_SPEED
- Cached_String_Type *cs;
- SLstring_Type *sls;
-
- cs = GET_CACHED_STRING(s);
- if (((sls = cs->sls) != NULL)
- && (sls->bytes == s))
- {
- sls->ref_count += 1;
- return s;
- }
-#endif
-
- if (s == NULL) return NULL;
- return create_nstring (s, strlen (s), &hash);
-}
-
-void _SLfree_hashed_string (char *s, unsigned int len, unsigned long hash)
-{
- if ((s == NULL) || (len < 2)) return;
- free_long_string (s, len, hash);
-}
-
-
-char *_SLallocate_slstring (unsigned int len)
-{
- SLstring_Type *sls = allocate_sls (len);
- if (sls == NULL)
- return NULL;
-
- return sls->bytes;
-}
-
-void _SLunallocate_slstring (char *s, unsigned int len)
-{
- SLstring_Type *sls;
-
- if (s == NULL)
- return;
-
- sls = (SLstring_Type *) (s - offsetof(SLstring_Type,bytes[0]));
- free_sls (sls, len);
-}
-
-char *_SLcreate_via_alloced_slstring (char *s, unsigned int len)
-{
- unsigned long hash;
- SLstring_Type *sls;
-
- if (s == NULL)
- return NULL;
-
- if (len < 2)
- {
- char *s1 = create_short_string (s, len);
- _SLunallocate_slstring (s, len);
- return s1;
- }
-
- /* s is not going to be in the cache because when it was malloced, its
- * value was unknown. This simplifies the coding.
- */
- hash = _SLstring_hash ((unsigned char *)s, (unsigned char *)s + len);
- sls = find_string (s, len, hash);
- if (sls != NULL)
- {
- sls->ref_count++;
- _SLunallocate_slstring (s, len);
- s = sls->bytes;
-
-#if _SLANG_OPTIMIZE_FOR_SPEED
- cache_string (sls, len, hash);
-#endif
- return s;
- }
-
- sls = (SLstring_Type *) (s - offsetof(SLstring_Type,bytes[0]));
- sls->ref_count = 1;
-
-#if _SLANG_OPTIMIZE_FOR_SPEED
- cache_string (sls, len, hash);
-#endif
-
- hash = hash % SLSTRING_HASH_TABLE_SIZE;
- sls->next = String_Hash_Table [(unsigned int)hash];
- String_Hash_Table [(unsigned int)hash] = sls;
-
- return s;
-}
-
-/* Note, a and b may be ordinary strings. The result is an slstring */
-char *SLang_concat_slstrings (char *a, char *b)
-{
- unsigned int lena, len;
- char *c;
-
- lena = strlen (a);
- len = lena + strlen (b);
-
- c = _SLallocate_slstring (len);
- if (c == NULL)
- return NULL;
-
- strcpy (c, a);
- strcpy (c + lena, b);
-
- return _SLcreate_via_alloced_slstring (c, len);
-}
-
diff --git a/mdk-stage1/slang/slstrops.c b/mdk-stage1/slang/slstrops.c
deleted file mode 100644
index a57ef6389..000000000
--- a/mdk-stage1/slang/slstrops.c
+++ /dev/null
@@ -1,1686 +0,0 @@
-/* -*- mode: C; mode: fold; -*- */
-/* string manipulation functions for S-Lang. */
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-/*{{{ Include Files */
-
-#include <time.h>
-
-#ifndef __QNX__
-# if defined(__GO32__) || defined(__WATCOMC__)
-# include <dos.h>
-# include <bios.h>
-# endif
-#endif
-
-#if SLANG_HAS_FLOAT
-#include <math.h>
-#endif
-
-#include <string.h>
-#include <stdarg.h>
-#include <ctype.h>
-
-#ifndef isdigit
-# define isdigit(x) (((x) >= '0') && ((x) <= '9'))
-#endif
-
-#include "slang.h"
-#include "_slang.h"
-
-/*}}}*/
-
-#define USE_ALLOC_STSTRING 1
-
-/*{{{ Utility Functions */
-
-static char Utility_Char_Table [256];
-static unsigned char WhiteSpace_Lut[256];
-
-static void set_utility_char_table (char *pos) /*{{{*/
-{
- register char *t = Utility_Char_Table, *tmax;
- register unsigned char ch;
-
- tmax = t + 256;
- while (t < tmax) *t++ = 0;
-
- t = Utility_Char_Table;
- while ((ch = (unsigned char) *pos++) != 0) t[ch] = 1;
-}
-
-/*}}}*/
-
-_INLINE_
-static unsigned char *make_whitespace_lut (void)
-{
- if (WhiteSpace_Lut[' '] != 1)
- {
- WhiteSpace_Lut[' '] = WhiteSpace_Lut['\r']
- = WhiteSpace_Lut ['\n'] = WhiteSpace_Lut['\t']
- = WhiteSpace_Lut ['\f'] = 1;
- }
- return WhiteSpace_Lut;
-}
-
-static unsigned char *make_lut (unsigned char *s, unsigned char *lut)
-{
- int reverse = 0;
-
- if (*s == '^')
- {
- reverse = 1;
- s++;
- }
- SLmake_lut (lut, s, reverse);
- return lut;
-}
-
-static unsigned int do_trim (char **beg, int do_beg,
- char **end, int do_end,
- char *white) /*{{{*/
-{
- unsigned int len;
- char *a, *b;
-
- set_utility_char_table (white);
-
- a = *beg;
- len = strlen (a);
- b = a + len;
-
- if (do_beg)
- while (Utility_Char_Table[(unsigned char) *a]) a++;
-
- if (do_end)
- {
- b--;
- while ((b >= a) && (Utility_Char_Table[(unsigned char) *b])) b--;
- b++;
- }
-
- len = (unsigned int) (b - a);
- *beg = a;
- *end = b;
- return len;
-}
-
-/*}}}*/
-
-/*}}}*/
-
-static int pop_3_strings (char **a, char **b, char **c)
-{
- *a = *b = *c = NULL;
- if (-1 == SLpop_string (c))
- return -1;
-
- if (-1 == SLpop_string (b))
- {
- SLfree (*c);
- *c = NULL;
- return -1;
- }
-
- if (-1 == SLpop_string (a))
- {
- SLfree (*b);
- SLfree (*c);
- *b = *c = NULL;
- return -1;
- }
-
- return 0;
-}
-
-static void free_3_strings (char *a, char *b, char *c)
-{
- SLfree (a);
- SLfree (b);
- SLfree (c);
-}
-
-static void strcat_cmd (void) /*{{{*/
-{
- char *c, *c1;
- int nargs;
- int i;
- char **ptrs;
- unsigned int len;
-#if !USE_ALLOC_STSTRING
- char buf[256];
-#endif
- nargs = SLang_Num_Function_Args;
- if (nargs <= 0) nargs = 2;
-
- if (NULL == (ptrs = (char **)SLmalloc (nargs * sizeof (char *))))
- return;
-
- memset ((char *) ptrs, 0, sizeof (char *) * nargs);
-
- c = NULL;
- i = nargs;
- len = 0;
- while (i != 0)
- {
- char *s;
-
- i--;
- if (-1 == SLang_pop_slstring (&s))
- goto free_and_return;
- ptrs[i] = s;
- len += strlen (s);
- }
-#if USE_ALLOC_STSTRING
- if (NULL == (c = _SLallocate_slstring (len)))
- goto free_and_return;
-#else
- len++; /* \0 char */
- if (len <= sizeof (buf))
- c = buf;
- else if (NULL == (c = SLmalloc (len)))
- goto free_and_return;
-#endif
-
- c1 = c;
- for (i = 0; i < nargs; i++)
- {
- strcpy (c1, ptrs[i]);
- c1 += strlen (c1);
- }
-
- free_and_return:
- for (i = 0; i < nargs; i++)
- SLang_free_slstring (ptrs[i]);
- SLfree ((char *) ptrs);
-
-#if USE_ALLOC_STSTRING
- (void) _SLpush_alloced_slstring (c, len);
-#else
- if (c != buf)
- (void) SLang_push_malloced_string (c); /* NULL ok */
- else
- (void) SLang_push_string (c);
-#endif
-}
-
-/*}}}*/
-
-static int _SLang_push_nstring (char *a, unsigned int len)
-{
- a = SLang_create_nslstring (a, len);
- if (a == NULL)
- return -1;
-
- return _SLang_push_slstring (a);
-}
-
-
-static void strtrim_cmd_internal (char *str, int do_beg, int do_end)
-{
- char *beg, *end, *white;
- int free_str;
- unsigned int len;
-
- /* Go through SLpop_string to get a private copy since it will be
- * modified.
- */
-
- free_str = 0;
- if (SLang_Num_Function_Args == 2)
- {
- white = str;
- if (-1 == SLang_pop_slstring (&str))
- return;
- free_str = 1;
- }
- else white = " \t\f\r\n";
-
- beg = str;
- len = do_trim (&beg, do_beg, &end, do_end, white);
-
- (void) _SLang_push_nstring (beg, len);
- if (free_str)
- SLang_free_slstring (str);
-}
-
-
-static void strtrim_cmd (char *str)
-{
- strtrim_cmd_internal (str, 1, 1);
-}
-
-static void strtrim_beg_cmd (char *str)
-{
- strtrim_cmd_internal (str, 1, 0);
-}
-
-static void strtrim_end_cmd (char *str)
-{
- strtrim_cmd_internal (str, 0, 1);
-}
-
-
-static void strcompress_cmd (void) /*{{{*/
-{
- char *str, *white, *c;
- unsigned char *s, *beg, *end;
- unsigned int len;
- char pref_char;
-
- if (SLpop_string (&white)) return;
- if (SLpop_string (&str))
- {
- SLfree (white);
- return;
- }
-
- /* The first character of white is the preferred whitespace character */
- pref_char = *white;
-
- beg = (unsigned char *) str;
- (void) do_trim ((char **) &beg, 1, (char **) &end, 1, white);
- SLfree (white);
-
- /* Determine the effective length */
- len = 0;
- s = (unsigned char *) beg;
- while (s < end)
- {
- len++;
- if (Utility_Char_Table[*s++])
- {
- while ((s < end) && Utility_Char_Table[*s]) s++;
- }
- }
-
-#if USE_ALLOC_STSTRING
- c = _SLallocate_slstring (len);
-#else
- c = SLmalloc (len + 1);
-#endif
- if (c == NULL)
- {
- SLfree (str);
- return;
- }
-
- s = (unsigned char *) c;
-
- while (beg < end)
- {
- unsigned char ch = *beg++;
-
- if (0 == Utility_Char_Table[ch])
- {
- *s++ = ch;
- continue;
- }
-
- *s++ = (unsigned char) pref_char;
-
- while ((beg < end) && Utility_Char_Table[*beg])
- beg++;
- }
-
- *s = 0;
-
-#if USE_ALLOC_STSTRING
- (void) _SLpush_alloced_slstring (c, len);
-#else
- SLang_push_malloced_string(c);
-#endif
-
- SLfree(str);
-}
-
-/*}}}*/
-
-static int str_replace_cmd_1 (char *orig, char *match, char *rep, unsigned int max_num_replaces,
- char **new_strp) /*{{{*/
-{
- char *s, *t, *new_str;
- unsigned int rep_len, match_len, new_len;
- unsigned int num_replaces;
-
- *new_strp = NULL;
-
- match_len = strlen (match);
-
- if (match_len == 0)
- return 0;
-
- num_replaces = 0;
- s = orig;
- while (num_replaces < max_num_replaces)
- {
- s = strstr (s, match);
- if (s == NULL)
- break;
- s += match_len;
- num_replaces++;
- }
-
- if (num_replaces == 0)
- return 0;
-
- max_num_replaces = num_replaces;
-
- rep_len = strlen (rep);
-
- new_len = (strlen (orig) - num_replaces * match_len) + num_replaces * rep_len;
- new_str = SLmalloc (new_len + 1);
- if (new_str == NULL)
- return -1;
-
- s = orig;
- t = new_str;
-
- for (num_replaces = 0; num_replaces < max_num_replaces; num_replaces++)
- {
- char *next_s;
- unsigned int len;
-
- next_s = strstr (s, match); /* cannot be NULL */
- len = (unsigned int) (next_s - s);
- strncpy (t, s, len);
- t += len;
- strcpy (t, rep);
- t += rep_len;
-
- s = next_s + match_len;
- }
- strcpy (t, s);
- *new_strp = new_str;
-
- return (int) num_replaces;
-}
-
-/*}}}*/
-
-static void reverse_string (char *a)
-{
- char *b;
-
- b = a + strlen (a);
- while (b > a)
- {
- char ch;
-
- b--;
- ch = *a;
- *a++ = *b;
- *b = ch;
- }
-}
-
-static int strreplace_cmd (int *np)
-{
- char *orig, *match, *rep;
- char *new_str;
- int max_num_replaces;
- int ret;
-
- max_num_replaces = *np;
-
- if (-1 == pop_3_strings (&orig, &match, &rep))
- return -1;
-
- if (max_num_replaces < 0)
- {
- reverse_string (orig);
- reverse_string (match);
- reverse_string (rep);
- ret = str_replace_cmd_1 (orig, match, rep, -max_num_replaces, &new_str);
- if (ret > 0) reverse_string (new_str);
- else if (ret == 0)
- reverse_string (orig);
- }
- else ret = str_replace_cmd_1 (orig, match, rep, max_num_replaces, &new_str);
-
- if (ret == 0)
- {
- if (-1 == SLang_push_malloced_string (orig))
- ret = -1;
- orig = NULL;
- }
- else if (ret > 0)
- {
- if (-1 == SLang_push_malloced_string (new_str))
- ret = -1;
- }
-
- free_3_strings (orig, match, rep);
- return ret;
-}
-
-static int str_replace_cmd (char *orig, char *match, char *rep)
-{
- char *s;
- int ret;
-
- ret = str_replace_cmd_1 (orig, match, rep, 1, &s);
- if (ret == 1)
- (void) SLang_push_malloced_string (s);
- return ret;
-}
-
-
-
-static void strtok_cmd (char *str)
-{
- _SLString_List_Type sl;
- unsigned char white_buf[256];
- char *s;
- unsigned char *white;
-
- if (SLang_Num_Function_Args == 1)
- white = make_whitespace_lut ();
- else
- {
- white = white_buf;
- make_lut ((unsigned char *)str, white);
- if (-1 == SLang_pop_slstring (&str))
- return;
- }
-
- if (-1 == _SLstring_list_init (&sl, 256, 1024))
- goto the_return;
-
- s = str;
- while (*s != 0)
- {
- char *s0;
-
- s0 = s;
- /* Skip whitespace */
- while ((*s0 != 0) && (0 != white[(unsigned char)*s0]))
- s0++;
-
- if (*s0 == 0)
- break;
-
- s = s0;
- while ((*s != 0) && (0 == white[(unsigned char) *s]))
- s++;
-
- /* sl deleted upon failure */
- if (-1 == _SLstring_list_append (&sl, SLang_create_nslstring (s0, (unsigned int) (s - s0))))
- goto the_return;
- }
-
- /* Deletes sl */
- (void) _SLstring_list_push (&sl);
-
- the_return:
- if (white == white_buf)
- SLang_free_slstring (str);
-}
-
-/* This routine returns the string with text removed between single character
- comment delimiters from the set b and e. */
-
-static void str_uncomment_string_cmd (char *str, char *b, char *e) /*{{{*/
-{
- unsigned char chb, che;
- unsigned char *s, *cbeg, *mark;
-
- if (strlen(b) != strlen(e))
- {
- SLang_doerror ("Comment delimiter length mismatch.");
- return;
- }
-
- set_utility_char_table (b);
-
- if (NULL == (str = (char *) SLmake_string(str))) return;
-
- s = (unsigned char *) str;
-
- while ((chb = *s++) != 0)
- {
- if (Utility_Char_Table [chb] == 0) continue;
-
- mark = s - 1;
-
- cbeg = (unsigned char *) b;
- while (*cbeg != chb) cbeg++;
-
- che = (unsigned char) *(e + (int) (cbeg - (unsigned char *) b));
-
- while (((chb = *s++) != 0) && (chb != che));
-
- if (chb == 0)
- {
- /* end of string and end not found. Just truncate it a return; */
- *mark = 0;
- break;
- }
-
- strcpy ((char *) mark, (char *)s);
- s = mark;
- }
- SLang_push_malloced_string (str);
-}
-
-/*}}}*/
-
-static void str_quote_string_cmd (char *str, char *quotes, int *slash_ptr) /*{{{*/
-{
- char *q;
- int slash;
- unsigned int len;
- register char *t, *s, *q1;
- register unsigned char ch;
-
- slash = *slash_ptr;
-
- if ((slash > 255) || (slash < 0))
- {
- SLang_Error = SL_INVALID_PARM;
- return;
- }
-
- /* setup the utility table to have 1s at quote char postitions. */
- set_utility_char_table (quotes);
-
- t = Utility_Char_Table;
- t[(unsigned int) slash] = 1;
-
- /* calculate length */
- s = str;
- len = 0;
- while ((ch = (unsigned char) *s++) != 0) if (t[ch]) len++;
- len += (unsigned int) (s - str);
-
- if (NULL != (q = SLmalloc(len)))
- {
- s = str; q1 = q;
- while ((ch = (unsigned char) *s++) != 0)
- {
- if (t[ch]) *q1++ = slash;
- *q1++ = (char) ch;
- }
- *q1 = 0;
- SLang_push_malloced_string(q);
- }
-}
-
-/*}}}*/
-
-/* returns the position of substrin in a string or null */
-static int issubstr_cmd (char *a, char *b) /*{{{*/
-{
- char *c;
-
- if (NULL == (c = (char *) strstr(a, b)))
- return 0;
-
- return 1 + (int) (c - a);
-}
-
-/*}}}*/
-
-/* returns to stack string at pos n to n + m of a */
-static void substr_cmd (char *a, int *n_ptr, int *m_ptr) /*{{{*/
-{
- int n, m;
- int lena;
-
- n = *n_ptr;
- m = *m_ptr;
-
- lena = strlen (a);
- if (n > lena) n = lena + 1;
- if (n < 1)
- {
- SLang_Error = SL_INVALID_PARM;
- return;
- }
-
- n--;
- if (m < 0) m = lena;
- if (n + m > lena) m = lena - n;
-
- (void) _SLang_push_nstring (a + n, (unsigned int) m);
-}
-
-/*}}}*/
-
-/* substitute char m at positin string n in string*/
-static void strsub_cmd (int *nptr, int *mptr) /*{{{*/
-{
- char *a;
- int n, m;
- unsigned int lena;
-
- if (-1 == SLpop_string (&a))
- return;
-
- n = *nptr;
- m = *mptr;
-
- lena = strlen (a);
-
- if ((n <= 0) || (lena < (unsigned int) n))
- {
- SLang_Error = SL_INVALID_PARM;
- SLfree(a);
- return;
- }
-
- a[n - 1] = (char) m;
-
- SLang_push_malloced_string (a);
-}
-
-/*}}}*/
-
-static void strup_cmd(void) /*{{{*/
-{
- unsigned char c, *a;
- char *str;
-
- if (SLpop_string (&str))
- return;
-
- a = (unsigned char *) str;
- while ((c = *a) != 0)
- {
- /* if ((*a >= 'a') && (*a <= 'z')) *a -= 32; */
- *a = UPPER_CASE(c);
- a++;
- }
-
- SLang_push_malloced_string (str);
-}
-
-/*}}}*/
-
-static int isdigit_cmd (char *what) /*{{{*/
-{
- return isdigit((unsigned char)*what);
-}
-
-/*}}}*/
-static int toupper_cmd (int *ch) /*{{{*/
-{
- return UPPER_CASE(*ch);
-}
-
-/*}}}*/
-
-static int tolower_cmd (int *ch) /*{{{*/
-{
- return LOWER_CASE(*ch);
-}
-
-/*}}}*/
-
-static void strlow_cmd (void) /*{{{*/
-{
- unsigned char c, *a;
- char *str;
-
- if (SLpop_string(&str)) return;
- a = (unsigned char *) str;
- while ((c = *a) != 0)
- {
- /* if ((*a >= 'a') && (*a <= 'z')) *a -= 32; */
- *a = LOWER_CASE(c);
- a++;
- }
-
- SLang_push_malloced_string ((char *) str);
-}
-
-/*}}}*/
-
-static SLang_Array_Type *do_strchop (char *str, int delim, int quote)
-{
- int count;
- char *s0, *elm;
- register char *s1;
- register unsigned char ch;
- int quoted;
- SLang_Array_Type *at;
- char **data;
-
- if ((quote < 0) || (quote > 255)
- || (delim <= 0) || (delim > 255))
- {
- SLang_Error = SL_INVALID_PARM;
- return NULL;
- }
-
- s1 = s0 = str;
-
- quoted = 0;
- count = 1; /* at least 1 */
- while (1)
- {
- ch = (unsigned char) *s1++;
- if ((ch == quote) && quote)
- {
- if (*s1 == 0)
- break;
-
- s1++;
- continue;
- }
-
- if (ch == delim)
- {
- count++;
- continue;
- }
-
- if (ch == 0)
- break;
- }
-
- if (NULL == (at = SLang_create_array (SLANG_STRING_TYPE, 0, NULL, &count, 1)))
- return NULL;
-
- data = (char **)at->data;
-
- count = 0;
- s1 = s0;
-
- while (1)
- {
- ch = (unsigned char) *s1;
-
- if ((ch == quote) && quote)
- {
- s1++;
- if (*s1 != 0) s1++;
- quoted = 1;
- continue;
- }
-
- if ((ch == delim) || (ch == 0))
- {
- if (quoted == 0)
- elm = SLang_create_nslstring (s0, (unsigned int) (s1 - s0));
- else
- {
- register char ch1, *p, *p1;
- char *tmp;
-
- tmp = SLmake_nstring (s0, (unsigned int)(s1 - s0));
- if (tmp == NULL)
- break;
-
- /* Now unquote it */
- p = p1 = tmp;
- do
- {
- ch1 = *p1++;
- if (ch1 == '\\') ch1 = *p1++;
- *p++ = ch1;
- }
- while (ch1 != 0);
- quoted = 0;
-
- elm = SLang_create_slstring (tmp);
- SLfree (tmp);
- }
-
- if (elm == NULL)
- break;
-
- data[count] = elm;
- count++;
-
- if (ch == 0)
- return at;
-
- s1++; /* skip past delim */
- s0 = s1; /* and reset */
- }
- else s1++;
- }
-
- SLang_free_array (at);
- return NULL;
-}
-
-static void strchop_cmd (char *str, int *q, int *d)
-{
- (void) SLang_push_array (do_strchop (str, *q, *d), 1);
-}
-
-static void strchopr_cmd (char *str, int *q, int *d)
-{
- SLang_Array_Type *at;
-
- if (NULL != (at = do_strchop (str, *q, *d)))
- {
- char **d0, **d1;
-
- d0 = (char **) at->data;
- d1 = d0 + (at->num_elements - 1);
-
- while (d0 < d1)
- {
- char *tmp;
-
- tmp = *d0;
- *d0 = *d1;
- *d1 = tmp;
- d0++;
- d1--;
- }
- }
- SLang_push_array (at, 1);
-}
-
-static int strcmp_cmd (char *a, char *b) /*{{{*/
-{
- return strcmp(a, b);
-}
-
-/*}}}*/
-
-static int strncmp_cmd (char *a, char *b, int *n) /*{{{*/
-{
- return strncmp(a, b, (unsigned int) *n);
-}
-
-/*}}}*/
-
-static int strlen_cmd (char *s) /*{{{*/
-{
- return (int) strlen (s);
-}
-/*}}}*/
-
-static void extract_element_cmd (char *list, int *nth_ptr, int *delim_ptr)
-{
- char buf[1024], *b;
-
- b = buf;
- if (-1 == SLextract_list_element (list, *nth_ptr, *delim_ptr, buf, sizeof(buf)))
- b = NULL;
-
- SLang_push_string (b);
-}
-
-/* sprintf functionality for S-Lang */
-
-static char *SLdo_sprintf (char *fmt) /*{{{*/
-{
- register char *p = fmt, ch;
- char *out = NULL, *outp = NULL;
- char dfmt[1024]; /* used to hold part of format */
- char *f;
- VOID_STAR varp;
- int want_width, width, precis, use_varp, int_var;
- long long_var;
- unsigned int len = 0, malloc_len = 0, dlen;
- int do_free, guess_size;
-#if SLANG_HAS_FLOAT
- int tmp1, tmp2, use_double;
- double x;
-#endif
- int use_long = 0;
-
- while (1)
- {
- while ((ch = *p) != 0)
- {
- if (ch == '%')
- break;
- p++;
- }
-
- /* p points at '%' or 0 */
-
- dlen = (unsigned int) (p - fmt);
-
- if (len + dlen >= malloc_len)
- {
- malloc_len = len + dlen;
- if (out == NULL) outp = SLmalloc(malloc_len + 1);
- else outp = SLrealloc(out, malloc_len + 1);
- if (NULL == outp)
- return out;
- out = outp;
- outp = out + len;
- }
-
- strncpy(outp, fmt, dlen);
- len += dlen;
- outp = out + len;
- *outp = 0;
- if (ch == 0) break;
-
- /* bump it beyond '%' */
- ++p;
- fmt = p;
-
- f = dfmt;
- *f++ = ch;
- /* handle flag char */
- ch = *p++;
-
- /* Make sure cases such as "% #g" can be handled. */
- if ((ch == '-') || (ch == '+') || (ch == ' ') || (ch == '#'))
- {
- *f++ = ch;
- ch = *p++;
- if ((ch == '-') || (ch == '+') || (ch == ' ') || (ch == '#'))
- {
- *f++ = ch;
- ch = *p++;
- }
- }
-
-
- /* width */
- /* I have got to parse it myself so that I can see how big it needs
- * to be.
- */
- want_width = width = 0;
- if (ch == '*')
- {
- if (SLang_pop_integer(&width)) return (out);
- want_width = 1;
- ch = *p++;
- }
- else
- {
- if (ch == '0')
- {
- *f++ = '0';
- ch = *p++;
- }
-
- while ((ch <= '9') && (ch >= '0'))
- {
- width = width * 10 + (ch - '0');
- ch = *p++;
- want_width = 1;
- }
- }
-
- if (want_width)
- {
- sprintf(f, "%d", width);
- f += strlen (f);
- }
- precis = 0;
- /* precision -- also indicates max number of chars from string */
- if (ch == '.')
- {
- *f++ = ch;
- ch = *p++;
- want_width = 0;
- if (ch == '*')
- {
- if (SLang_pop_integer(&precis)) return (out);
- ch = *p++;
- want_width = 1;
- }
- else while ((ch <= '9') && (ch >= '0'))
- {
- precis = precis * 10 + (ch - '0');
- ch = *p++;
- want_width = 1;
- }
- if (want_width)
- {
- sprintf(f, "%d", precis);
- f += strlen (f);
- }
- else precis = 0;
- }
-
- long_var = 0;
- int_var = 0;
- varp = NULL;
- guess_size = 32;
-#if SLANG_HAS_FLOAT
- use_double = 0;
-#endif
- use_long = 0;
- use_varp = 0;
- do_free = 0;
-
- if (ch == 'l')
- {
- use_long = 1;
- ch = *p++;
- }
- else if (ch == 'h') ch = *p++; /* not supported */
-
- /* Now the actual format specifier */
- switch (ch)
- {
- case 'S':
- _SLstring_intrinsic ();
- ch = 's';
- /* drop */
- case 's':
- if (SLang_pop_slstring((char **) &varp)) return (out);
- do_free = 1;
- guess_size = strlen((char *) varp);
- use_varp = 1;
- break;
-
- case '%':
- guess_size = 1;
- do_free = 0;
- use_varp = 1;
- varp = (VOID_STAR) "%";
- break;
-
- case 'c': guess_size = 1;
- use_long = 0;
- /* drop */
- case 'd':
- case 'i':
- case 'o':
- case 'u':
- case 'X':
- case 'x':
- if (SLang_pop_long (&long_var)) return(out);
- if (use_long == 0)
- int_var = (int) long_var;
- else
- *f++ = 'l';
- break;
-
- case 'f':
- case 'e':
- case 'g':
- case 'E':
- case 'G':
-#if SLANG_HAS_FLOAT
- if (SLang_pop_double(&x, &tmp1, &tmp2)) return (out);
- use_double = 1;
- guess_size = 256;
- (void) tmp1; (void) tmp2;
- use_long = 0;
- break;
-#endif
- case 'p':
- guess_size = 32;
- /* Pointer type?? Why?? */
- if (-1 == SLdo_pop ())
- return out;
- varp = (VOID_STAR) _SLStack_Pointer;
- use_varp = 1;
- use_long = 0;
- break;
-
- default:
- SLang_doerror("Invalid Format.");
- return(out);
- }
- *f++ = ch; *f = 0;
-
- width = width + precis;
- if (width > guess_size) guess_size = width;
-
- if (len + guess_size > malloc_len)
- {
- outp = (char *) SLrealloc(out, len + guess_size + 1);
- if (outp == NULL)
- {
- SLang_Error = SL_MALLOC_ERROR;
- return (out);
- }
- out = outp;
- outp = out + len;
- malloc_len = len + guess_size;
- }
-
- if (use_varp)
- {
- sprintf(outp, dfmt, varp);
- if (do_free) SLang_free_slstring ((char *)varp);
- }
-#if SLANG_HAS_FLOAT
- else if (use_double) sprintf(outp, dfmt, x);
-#endif
- else if (use_long) sprintf (outp, dfmt, long_var);
- else sprintf(outp, dfmt, int_var);
-
- len += strlen(outp);
- outp = out + len;
- fmt = p;
- }
-
- if (out != NULL)
- {
- outp = SLrealloc (out, (unsigned int) (outp - out) + 1);
- if (outp != NULL) out = outp;
- }
-
- return (out);
-}
-
-/*}}}*/
-
-int _SLstrops_do_sprintf_n (int n) /*{{{*/
-{
- char *p;
- char *fmt;
- SLang_Object_Type *ptr;
- int ofs;
-
- if (-1 == (ofs = SLreverse_stack (n + 1)))
- return -1;
-
- ptr = _SLRun_Stack + ofs;
-
- if (SLang_pop_slstring(&fmt))
- return -1;
-
- p = SLdo_sprintf (fmt);
- SLang_free_slstring (fmt);
-
- while (_SLStack_Pointer > ptr)
- SLdo_pop ();
-
- if (SLang_Error)
- {
- SLfree (p);
- return -1;
- }
-
- return SLang_push_malloced_string (p);
-}
-
-/*}}}*/
-
-static void sprintf_n_cmd (int *n)
-{
- _SLstrops_do_sprintf_n (*n);
-}
-
-static void sprintf_cmd (void)
-{
- _SLstrops_do_sprintf_n (SLang_Num_Function_Args - 1); /* do not include format */
-}
-
-/* converts string s to a form that can be used in an eval */
-static void make_printable_string(char *s) /*{{{*/
-{
- unsigned int len;
- register char *s1 = s, ch, *ss1;
- char *ss;
-
- /* compute length */
- len = 3;
- while ((ch = *s1++) != 0)
- {
- if ((ch == '\n') || (ch == '\\') || (ch == '"')) len++;
- len++;
- }
-
- if (NULL == (ss = SLmalloc(len)))
- return;
-
- s1 = s;
- ss1 = ss;
- *ss1++ = '"';
- while ((ch = *s1++) != 0)
- {
- if (ch == '\n')
- {
- ch = 'n';
- *ss1++ = '\\';
- }
- else if ((ch == '\\') || (ch == '"'))
- {
- *ss1++ = '\\';
- }
- *ss1++ = ch;
- }
- *ss1++ = '"';
- *ss1 = 0;
- if (-1 == SLang_push_string (ss))
- SLfree (ss);
-}
-
-/*}}}*/
-
-static int is_list_element_cmd (char *list, char *elem, int *d_ptr)
-{
- char ch;
- int d, n;
- unsigned int len;
- char *lbeg, *lend;
-
- d = *d_ptr;
-
- len = strlen (elem);
-
- n = 1;
- lend = list;
-
- while (1)
- {
- lbeg = lend;
- while ((0 != (ch = *lend)) && (ch != (char) d)) lend++;
-
- if ((lbeg + len == lend)
- && (0 == strncmp (elem, lbeg, len)))
- break;
-
- if (ch == 0)
- {
- n = 0;
- break;
- }
- lend++; /* skip delim */
- n++;
- }
-
- return n;
-}
-
-/*}}}*/
-
-/* Regular expression routines for strings */
-static SLRegexp_Type regexp_reg;
-
-static int string_match_cmd (char *str, char *pat, int *nptr) /*{{{*/
-{
- int n;
- unsigned int len;
- unsigned char rbuf[512], *match;
-
- n = *nptr;
-
- regexp_reg.case_sensitive = 1;
- regexp_reg.buf = rbuf;
- regexp_reg.pat = (unsigned char *) pat;
- regexp_reg.buf_len = sizeof (rbuf);
-
- if (SLang_regexp_compile (&regexp_reg))
- {
- SLang_verror (SL_INVALID_PARM, "Unable to compile pattern");
- return -1;
- }
-
- n--;
- len = strlen(str);
- if ((n < 0) || ((unsigned int) n >= len))
- {
- /* SLang_Error = SL_INVALID_PARM; */
- return 0;
- }
-
- str += n;
- len -= n;
-
- if (NULL == (match = SLang_regexp_match((unsigned char *) str, len, &regexp_reg)))
- return 0;
-
- /* adjust offsets */
- regexp_reg.offset = n;
-
- return (1 + (int) ((char *) match - str));
-}
-
-/*}}}*/
-
-static int string_match_nth_cmd (int *nptr) /*{{{*/
-{
- int n, beg;
-
- n = *nptr;
-
- if ((n < 0) || (n > 9) || (regexp_reg.pat == NULL)
- || ((beg = regexp_reg.beg_matches[n]) == -1))
- {
- SLang_Error = SL_INVALID_PARM;
- return -1;
- }
- SLang_push_integer(beg + regexp_reg.offset);
- return regexp_reg.end_matches[n];
-}
-
-/*}}}*/
-
-static char *create_delimited_string (char **list, unsigned int n,
- char *delim)
-{
- unsigned int len, dlen;
- unsigned int i;
- unsigned int num;
- char *str, *s;
-
- len = 1; /* allow room for \0 char */
- num = 0;
- for (i = 0; i < n; i++)
- {
- if (list[i] == NULL) continue;
- len += strlen (list[i]);
- num++;
- }
-
- dlen = strlen (delim);
- if (num > 1)
- len += (num - 1) * dlen;
-
- if (NULL == (str = SLmalloc (len)))
- return NULL;
-
- *str = 0;
- s = str;
- i = 0;
-
- while (num > 1)
- {
- while (list[i] == NULL)
- i++;
-
- strcpy (s, list[i]);
- s += strlen (list[i]);
- strcpy (s, delim);
- s += dlen;
- i++;
- num--;
- }
-
- if (num)
- {
- while (list[i] == NULL)
- i++;
-
- strcpy (s, list[i]);
- }
-
- return str;
-}
-
-static void create_delimited_string_cmd (int *nptr)
-{
- unsigned int n, i;
- char **strings;
- char *str;
-
- str = NULL;
-
- n = 1 + (unsigned int) *nptr; /* n includes delimiter */
-
- if (NULL == (strings = (char **)SLmalloc (n * sizeof (char *))))
- {
- SLdo_pop_n (n);
- return;
- }
- memset((char *)strings, 0, n * sizeof (char *));
-
- i = n;
- while (i != 0)
- {
- i--;
- if (-1 == SLang_pop_slstring (strings + i))
- goto return_error;
- }
-
- str = create_delimited_string (strings + 1, (n - 1), strings[0]);
- /* drop */
- return_error:
- for (i = 0; i < n; i++) SLang_free_slstring (strings[i]);
- SLfree ((char *)strings);
-
- (void) SLang_push_malloced_string (str); /* NULL Ok */
-}
-
-static void strjoin_cmd (char *delim)
-{
- SLang_Array_Type *at;
- char *str;
-
- if (-1 == SLang_pop_array_of_type (&at, SLANG_STRING_TYPE))
- return;
-
- str = create_delimited_string ((char **)at->data, at->num_elements, delim);
- SLang_free_array (at);
- (void) SLang_push_malloced_string (str); /* NULL Ok */
-}
-
-static void str_delete_chars_cmd (char *s, char *d)
-{
- unsigned char lut[256];
- unsigned char *s1, *s2;
- unsigned char ch;
-
- make_lut ((unsigned char *)d, lut);
- if (NULL == (s = SLmake_string (s)))
- return;
-
- s1 = s2 = (unsigned char *) s;
- while ((ch = *s2++) != 0)
- {
- if (0 == lut[ch])
- *s1++ = ch;
- }
- *s1 = 0;
-
- (void) SLang_push_malloced_string (s);
-}
-
-static unsigned char *make_lut_string (unsigned char *s)
-{
- unsigned char lut[256];
- unsigned char *l;
- unsigned int i;
-
- /* Complement-- a natural order is imposed */
- make_lut (s, lut);
- l = lut;
- for (i = 1; i < 256; i++)
- {
- if (lut[i])
- *l++ = (unsigned char) i;
- }
- *l = 0;
- return (unsigned char *) SLmake_string ((char *)lut);
-}
-
-static unsigned char *make_str_range (unsigned char *s)
-{
- unsigned char *s1, *range;
- unsigned int num;
- unsigned char ch;
- int len;
-
- if (*s == '^')
- return make_lut_string (s);
-
- num = 0;
- s1 = s;
- while ((ch = *s1++) != 0)
- {
- unsigned char ch1;
-
- ch1 = *s1;
- if (ch1 == '-')
- {
- s1++;
- ch1 = *s1;
- len = (int)ch1 - (int)ch;
- if (len < 0)
- len = -len;
-
- num += (unsigned int) len;
- if (ch1 != 0)
- s1++;
- }
-
- num++;
- }
-
- range = (unsigned char *)SLmalloc (num + 1);
- if (range == NULL)
- return NULL;
-
- s1 = s;
- s = range;
- while ((ch = *s1++) != 0)
- {
- unsigned char ch1;
- unsigned int i;
-
- ch1 = *s1;
- if (ch1 != '-')
- {
- *s++ = ch;
- continue;
- }
-
- s1++;
- ch1 = *s1;
-
- if (ch > ch1)
- {
- if (ch1 == 0)
- ch1 = 1;
-
- for (i = (unsigned int) ch; i >= (unsigned int) ch1; i--)
- *s++ = (unsigned char) i;
-
- if (*s1 == 0)
- break;
- }
- else
- {
- for (i = (unsigned int) ch; i <= (unsigned int) ch1; i++)
- *s++ = (unsigned char) i;
- }
- s1++;
- }
-
-#if 0
- if (range + num != s)
- SLang_verror (SL_INTERNAL_ERROR, "make_str_range: num wrong");
-#endif
- *s = 0;
-
- return range;
-}
-
-static void strtrans_cmd (char *s, unsigned char *from, unsigned char *to)
-{
- unsigned char map[256];
- char *s1;
- unsigned int i;
- unsigned char ch;
- unsigned char last_to;
- unsigned char *from_range, *to_range;
-
- for (i = 0; i < 256; i++) map[i] = (unsigned char) i;
-
- if (*to == 0)
- {
- str_delete_chars_cmd (s, (char *)from);
- return;
- }
-
- from_range = make_str_range (from);
- if (from_range == NULL)
- return;
- to_range = make_str_range (to);
- if (to_range == NULL)
- {
- SLfree ((char *)from_range);
- return;
- }
-
- from = from_range;
- to = to_range;
-
- last_to = 0;
- while ((ch = *from++) != 0)
- {
- unsigned char to_ch;
-
- if (0 == (to_ch = *to++))
- {
- do
- {
- map[ch] = last_to;
- }
- while (0 != (ch = *from++));
- break;
- }
-
- last_to = map[ch] = to_ch;
- }
-
- SLfree ((char *)from_range);
- SLfree ((char *)to_range);
-
- s = SLmake_string (s);
- if (s == NULL)
- return;
-
- s1 = s;
- while ((ch = (unsigned char) *s1) != 0)
- *s1++ = (char) map[ch];
-
- (void) SLang_push_malloced_string (s);
-}
-
-
-static SLang_Intrin_Fun_Type Strops_Table [] = /*{{{*/
-{
- MAKE_INTRINSIC_I("create_delimited_string", create_delimited_string_cmd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_SS("strcmp", strcmp_cmd, SLANG_INT_TYPE),
- MAKE_INTRINSIC_SSI("strncmp", strncmp_cmd, SLANG_INT_TYPE),
- MAKE_INTRINSIC_0("strcat", strcat_cmd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_S("strlen", strlen_cmd, SLANG_INT_TYPE),
- MAKE_INTRINSIC_SII("strchop", strchop_cmd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_SII("strchopr", strchopr_cmd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_I("strreplace", strreplace_cmd, SLANG_INT_TYPE),
- MAKE_INTRINSIC_SSS("str_replace", str_replace_cmd, SLANG_INT_TYPE),
- MAKE_INTRINSIC_SII("substr", substr_cmd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_SS("is_substr", issubstr_cmd, SLANG_INT_TYPE),
- MAKE_INTRINSIC_II("strsub", strsub_cmd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_SII("extract_element", extract_element_cmd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_SSI("is_list_element", is_list_element_cmd, SLANG_INT_TYPE),
- MAKE_INTRINSIC_SSI("string_match", string_match_cmd, SLANG_INT_TYPE),
- MAKE_INTRINSIC_I("string_match_nth", string_match_nth_cmd, SLANG_INT_TYPE),
- MAKE_INTRINSIC_0("strlow", strlow_cmd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_I("tolower", tolower_cmd, SLANG_INT_TYPE),
- MAKE_INTRINSIC_I("toupper", toupper_cmd, SLANG_INT_TYPE),
- MAKE_INTRINSIC_0("strup", strup_cmd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_S("isdigit", isdigit_cmd, SLANG_INT_TYPE),
- MAKE_INTRINSIC_S("strtrim", strtrim_cmd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_S("strtrim_end", strtrim_end_cmd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_S("strtrim_beg", strtrim_beg_cmd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_0("strcompress", strcompress_cmd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_I("Sprintf", sprintf_n_cmd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_0("sprintf", sprintf_cmd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_0("sscanf", _SLang_sscanf, SLANG_INT_TYPE),
- MAKE_INTRINSIC_S("make_printable_string", make_printable_string, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_SSI("str_quote_string", str_quote_string_cmd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_SSS("str_uncomment_string", str_uncomment_string_cmd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_II("define_case", SLang_define_case, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_S("strtok", strtok_cmd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_S("strjoin", strjoin_cmd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_SSS("strtrans", strtrans_cmd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_SS("str_delete_chars", str_delete_chars_cmd, SLANG_VOID_TYPE),
-
- SLANG_END_INTRIN_FUN_TABLE
-};
-
-/*}}}*/
-
-int _SLang_init_slstrops (void)
-{
- return SLadd_intrin_fun_table (Strops_Table, NULL);
-}
diff --git a/mdk-stage1/slang/slstruct.c b/mdk-stage1/slang/slstruct.c
deleted file mode 100644
index 33d182373..000000000
--- a/mdk-stage1/slang/slstruct.c
+++ /dev/null
@@ -1,932 +0,0 @@
-/* Structure type implementation */
-/* Copyright (c) 1998, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-#include "slinclud.h"
-
-#define SL_APP_WANTS_FOREACH
-#include "slang.h"
-#include "_slang.h"
-
-void _SLstruct_delete_struct (_SLang_Struct_Type *s)
-{
- _SLstruct_Field_Type *field, *field_max;
-
- if (s == NULL) return;
-
- if (s->num_refs > 1)
- {
- s->num_refs -= 1;
- return;
- }
-
- field = s->fields;
- if (field != NULL)
- {
- field_max = field + s->nfields;
-
- while (field < field_max)
- {
- SLang_free_object (&field->obj);
- SLang_free_slstring (field->name); /* could be NULL */
- field++;
- }
- SLfree ((char *) s->fields);
- }
- SLfree ((char *) s);
-}
-
-static _SLang_Struct_Type *allocate_struct (unsigned int nfields)
-{
- _SLang_Struct_Type *s;
- _SLstruct_Field_Type *f;
- unsigned int i, size;
-
- s = (_SLang_Struct_Type *) SLmalloc (sizeof (_SLang_Struct_Type));
- if (s == NULL) return NULL;
-
- SLMEMSET((char *) s, 0, sizeof (_SLang_Struct_Type));
-
- size = nfields * sizeof(_SLstruct_Field_Type);
- if (NULL == (f = (_SLstruct_Field_Type *) SLmalloc (size)))
- {
- SLfree ((char *) s);
- return NULL;
- }
- SLMEMSET ((char *) f, 0, size);
- s->nfields = nfields;
- s->fields = f;
-
- /* By default, all structs will be created with elements set to NULL. I
- * do not know whether or not it is better to use SLANG_UNDEFINED_TYPE.
- */
- for (i = 0; i < nfields; i++)
- f[i].obj.data_type = SLANG_NULL_TYPE;
-
- return s;
-}
-
-static int push_struct_of_type (unsigned char type, _SLang_Struct_Type *s)
-{
- SLang_Object_Type obj;
-
- obj.data_type = type;
- obj.v.struct_val = s;
- s->num_refs += 1;
-
- if (0 == SLang_push (&obj))
- return 0;
-
- s->num_refs -= 1;
- return -1;
-}
-
-int _SLang_push_struct (_SLang_Struct_Type *s)
-{
- return push_struct_of_type (SLANG_STRUCT_TYPE, s);
-}
-
-int _SLang_pop_struct (_SLang_Struct_Type **sp)
-{
- SLang_Object_Type obj;
- SLang_Class_Type *cl;
- unsigned char type;
-
- if (0 != SLang_pop (&obj))
- return -1;
-
- type = obj.data_type;
- if (type != SLANG_STRUCT_TYPE)
- {
- cl = _SLclass_get_class (type);
- if (cl->cl_struct_def == NULL)
- {
- *sp = NULL;
- SLang_free_object (&obj);
- SLang_verror (SL_TYPE_MISMATCH,
- "Expecting struct type object. Found %s",
- cl->cl_name);
- return -1;
- }
- }
-
- *sp = obj.v.struct_val;
- return 0;
-}
-
-static void struct_destroy (unsigned char type, VOID_STAR vs)
-{
- (void) type;
- _SLstruct_delete_struct (*(_SLang_Struct_Type **) vs);
-}
-
-static int struct_push (unsigned char type, VOID_STAR ptr)
-{
- return push_struct_of_type (type, *(_SLang_Struct_Type **) ptr);
-}
-
-static _SLstruct_Field_Type *find_field (_SLang_Struct_Type *s, char *name)
-{
- _SLstruct_Field_Type *f, *fmax;
-
- f = s->fields;
- fmax = f + s->nfields;
-
- while (f < fmax)
- {
- /* Since both these are slstrings, only compare pointer */
- if (name == f->name)
- return f;
-
- f++;
- }
-
- return NULL;
-}
-
-static _SLstruct_Field_Type *pop_field (_SLang_Struct_Type *s, char *name)
-{
- _SLstruct_Field_Type *f;
-
- f = find_field (s, name);
- if (f == NULL)
- SLang_verror (SL_SYNTAX_ERROR, "struct has no field named %s", name);
- return f;
-}
-
-int SLstruct_create_struct (unsigned int nfields,
- char **field_names,
- unsigned char *field_types,
- VOID_STAR *field_values)
-{
- _SLang_Struct_Type *s;
- _SLstruct_Field_Type *f;
- unsigned int i;
-
- if (NULL == (s = allocate_struct (nfields)))
- return -1;
-
- f = s->fields;
- for (i = 0; i < nfields; i++)
- {
- unsigned char type;
- SLang_Class_Type *cl;
- VOID_STAR value;
- char *name = field_names [i];
-
- if (name == NULL)
- {
- SLang_verror (SL_INVALID_PARM, "A struct field name cannot be NULL");
- goto return_error;
- }
-
- if (NULL == (f->name = SLang_create_slstring (name)))
- goto return_error;
-
- if ((field_values == NULL)
- || (NULL == (value = field_values [i])))
- {
- f++;
- continue;
- }
-
- type = field_types[i];
- cl = _SLclass_get_class (type);
-
- if ((-1 == (cl->cl_push (type, value)))
- || (-1 == SLang_pop (&f->obj)))
- goto return_error;
-
- f++;
- }
-
- if (0 == _SLang_push_struct (s))
- return 0;
- /* drop */
-
- return_error:
- _SLstruct_delete_struct (s);
- return -1;
-}
-
-/* Interpreter interface */
-
-int _SLstruct_define_struct (void)
-{
- int nfields;
- _SLang_Struct_Type *s;
- _SLstruct_Field_Type *f;
-
- if (-1 == SLang_pop_integer (&nfields))
- return -1;
-
- if (nfields <= 0)
- {
- SLang_verror (SL_INVALID_PARM, "Number of struct fields must be > 0");
- return -1;
- }
-
- if (NULL == (s = allocate_struct (nfields)))
- return -1;
-
- f = s->fields;
- while (nfields)
- {
- char *name;
-
- nfields--;
- if (-1 == SLang_pop_slstring (&name))
- {
- _SLstruct_delete_struct (s);
- return -1;
- }
- f[nfields].name = name;
- }
-
- if (-1 == _SLang_push_struct (s))
- {
- _SLstruct_delete_struct (s);
- return -1;
- }
- return 0;
-}
-
-/* Simply make a struct that contains the same fields as struct s. Do not
- * duplicate the field values.
- */
-static _SLang_Struct_Type *make_struct_shell (_SLang_Struct_Type *s)
-{
- _SLang_Struct_Type *new_s;
- _SLstruct_Field_Type *new_f, *old_f;
- unsigned int i, nfields;
-
- nfields = s->nfields;
- if (NULL == (new_s = allocate_struct (nfields)))
- return NULL;
-
- new_f = new_s->fields;
- old_f = s->fields;
-
- for (i = 0; i < nfields; i++)
- {
- if (NULL == (new_f[i].name = SLang_create_slstring (old_f[i].name)))
- {
- _SLstruct_delete_struct (new_s);
- return NULL;
- }
- }
- return new_s;
-}
-
-static int struct_init_array_object (unsigned char type, VOID_STAR addr)
-{
- SLang_Class_Type *cl;
- _SLang_Struct_Type *s;
-
- cl = _SLclass_get_class (type);
- if (NULL == (s = make_struct_shell (cl->cl_struct_def)))
- return -1;
-
- s->num_refs = 1;
- *(_SLang_Struct_Type **) addr = s;
- return 0;
-}
-
-static int
-typedefed_struct_datatype_deref (unsigned char type)
-{
- SLang_Class_Type *cl;
- _SLang_Struct_Type *s;
-
- cl = _SLclass_get_class (type);
- if (NULL == (s = make_struct_shell (cl->cl_struct_def)))
- return -1;
-
- if (-1 == push_struct_of_type (type, s))
- {
- _SLstruct_delete_struct (s);
- return -1;
- }
-
- return 0;
-}
-
-static _SLang_Struct_Type *duplicate_struct (_SLang_Struct_Type *s)
-{
- _SLang_Struct_Type *new_s;
- _SLstruct_Field_Type *new_f, *f, *fmax;
-
- new_s = make_struct_shell (s);
-
- if (new_s == NULL)
- return NULL;
-
- f = s->fields;
- fmax = f + s->nfields;
- new_f = new_s->fields;
-
- while (f < fmax)
- {
- SLang_Object_Type *obj;
-
- obj = &f->obj;
- if (obj->data_type != SLANG_UNDEFINED_TYPE)
- {
- if ((-1 == _SLpush_slang_obj (obj))
- || (-1 == SLang_pop (&new_f->obj)))
- {
- _SLstruct_delete_struct (new_s);
- return NULL;
- }
- }
- new_f++;
- f++;
- }
-
- return new_s;
-}
-
-static int struct_dereference (unsigned char type, VOID_STAR addr)
-{
- _SLang_Struct_Type *s;
-
- if (NULL == (s = duplicate_struct (*(_SLang_Struct_Type **) addr)))
- return -1;
-
- if (-1 == push_struct_of_type (type, s))
- {
- _SLstruct_delete_struct (s);
- return -1;
- }
-
- return 0;
-}
-
-/*{{{ foreach */
-
-struct _SLang_Foreach_Context_Type
-{
- _SLang_Struct_Type *s;
- char *next_field_name;
-};
-
-static SLang_Foreach_Context_Type *
-struct_foreach_open (unsigned char type, unsigned int num)
-{
- SLang_Foreach_Context_Type *c;
- _SLang_Struct_Type *s;
- char *next_name;
-
- (void) type;
-
- if (-1 == _SLang_pop_struct (&s))
- return NULL;
-
- switch (num)
- {
- case 0:
- next_name = SLang_create_slstring ("next");
- break;
-
- case 1:
- if (-1 == SLang_pop_slstring (&next_name))
- next_name = NULL;
- break;
-
- default:
- next_name = NULL;
- SLang_verror (SL_NOT_IMPLEMENTED,
- "'foreach (Struct_Type) using' requires single control value");
- SLdo_pop_n (num);
- break;
- }
-
- if (next_name == NULL)
- {
- _SLstruct_delete_struct (s);
- return NULL;
- }
-
- c = (SLang_Foreach_Context_Type *)SLmalloc (sizeof (SLang_Foreach_Context_Type));
- if (c == NULL)
- {
- _SLstruct_delete_struct (s);
- SLang_free_slstring (next_name);
- return NULL;
- }
- memset ((char *) c, 0, sizeof (SLang_Foreach_Context_Type));
-
- c->next_field_name = next_name;
- c->s = s;
-
- return c;
-}
-
-static void struct_foreach_close (unsigned char type, SLang_Foreach_Context_Type *c)
-{
- (void) type;
- if (c == NULL) return;
-
- SLang_free_slstring (c->next_field_name);
- if (c->s != NULL) _SLstruct_delete_struct (c->s);
- SLfree ((char *) c);
-}
-
-static int struct_foreach (unsigned char type, SLang_Foreach_Context_Type *c)
-{
- _SLstruct_Field_Type *f;
- _SLang_Struct_Type *next_s;
-
- (void) type;
-
- if (c == NULL)
- return -1;
-
- if (c->s == NULL)
- return 0; /* done */
-
- if (-1 == _SLang_push_struct (c->s))
- return -1;
-
- /* Now get the next one ready for the next foreach loop */
-
- next_s = NULL;
- if (NULL != (f = find_field (c->s, c->next_field_name)))
- {
- SLang_Class_Type *cl;
-
- cl = _SLclass_get_class (f->obj.data_type);
- /* Note that I cannot simply look for SLANG_STRUCT_TYPE since the
- * user may have typedefed another struct type. So, look at the
- * class methods.
- */
- if (cl->cl_foreach_open == struct_foreach_open)
- {
- next_s = f->obj.v.struct_val;
- next_s->num_refs += 1;
- }
- }
-
- _SLstruct_delete_struct (c->s);
- c->s = next_s;
-
- /* keep going */
- return 1;
-}
-
-/*}}}*/
-
-static int struct_sput (unsigned char type, char *name)
-{
- _SLang_Struct_Type *s;
- _SLstruct_Field_Type *f;
- SLang_Object_Type obj;
-
- (void) type;
-
- if (-1 == _SLang_pop_struct (&s))
- return -1;
-
- if ((NULL == (f = pop_field (s, name)))
- || (-1 == SLang_pop (&obj)))
- {
- _SLstruct_delete_struct (s);
- return -1;
- }
-
- SLang_free_object (&f->obj);
- f->obj = obj;
- _SLstruct_delete_struct (s);
- return 0;
-}
-
-static int struct_sget (unsigned char type, char *name)
-{
- _SLang_Struct_Type *s;
- _SLstruct_Field_Type *f;
- int ret;
-
- (void) type;
-
- if (-1 == _SLang_pop_struct (&s))
- return -1;
-
- if (NULL == (f = pop_field (s, name)))
- {
- _SLstruct_delete_struct (s);
- return -1;
- }
-
- ret = _SLpush_slang_obj (&f->obj);
- _SLstruct_delete_struct (s);
- return ret;
-}
-
-static int struct_typecast
- (unsigned char a_type, VOID_STAR ap, unsigned int na,
- unsigned char b_type, VOID_STAR bp)
-{
- _SLang_Struct_Type **a, **b;
- unsigned int i;
-
- (void) a_type;
- (void) b_type;
-
- a = (_SLang_Struct_Type **) ap;
- b = (_SLang_Struct_Type **) bp;
- for (i = 0; i < na; i++)
- {
- b[i] = a[i];
- if (a[i] != NULL)
- a[i]->num_refs += 1;
- }
-
- return 1;
-}
-
-int _SLstruct_define_typedef (void)
-{
- char *type_name;
- _SLang_Struct_Type *s, *s1;
- SLang_Class_Type *cl;
-
- if (-1 == SLang_pop_slstring (&type_name))
- return -1;
-
- if (-1 == _SLang_pop_struct (&s))
- {
- SLang_free_slstring (type_name);
- return -1;
- }
-
- if (NULL == (s1 = make_struct_shell (s)))
- {
- SLang_free_slstring (type_name);
- _SLstruct_delete_struct (s);
- return -1;
- }
-
- _SLstruct_delete_struct (s);
-
- if (NULL == (cl = SLclass_allocate_class (type_name)))
- {
- SLang_free_slstring (type_name);
- _SLstruct_delete_struct (s1);
- return -1;
- }
- SLang_free_slstring (type_name);
-
- cl->cl_struct_def = s1;
- cl->cl_init_array_object = struct_init_array_object;
- cl->cl_datatype_deref = typedefed_struct_datatype_deref;
- cl->cl_destroy = struct_destroy;
- cl->cl_push = struct_push;
- cl->cl_dereference = struct_dereference;
- cl->cl_foreach_open = struct_foreach_open;
- cl->cl_foreach_close = struct_foreach_close;
- cl->cl_foreach = struct_foreach;
-
- cl->cl_sget = struct_sget;
- cl->cl_sput = struct_sput;
-
- if (-1 == SLclass_register_class (cl,
- SLANG_VOID_TYPE, /* any open slot */
- sizeof (_SLang_Struct_Type),
- SLANG_CLASS_TYPE_PTR))
- {
- /* FIXME: Priority=low */
- /* There is a memory leak here if this fails... */
- return -1;
- }
- /* Note: typecast from a user type struct type allowed but not the other
- * way.
- */
- if (-1 == SLclass_add_typecast (cl->cl_data_type, SLANG_STRUCT_TYPE, struct_typecast, 1))
- return -1;
-
- return 0;
-}
-
-static int
-struct_datatype_deref (unsigned char stype)
-{
- (void) stype;
-
- if (SLang_peek_at_stack () == SLANG_ARRAY_TYPE)
- {
- SLang_Array_Type *at;
- int status;
-
- if (-1 == SLang_pop_array_of_type (&at, SLANG_STRING_TYPE))
- return -1;
-
- status = SLstruct_create_struct (at->num_elements,
- (char **) at->data, NULL, NULL);
-
- SLang_free_array (at);
- return status;
- }
-
- SLang_push_integer (SLang_Num_Function_Args);
- return _SLstruct_define_struct ();
-}
-
-static int register_struct (void)
-{
- SLang_Class_Type *cl;
-
- if (NULL == (cl = SLclass_allocate_class ("Struct_Type")))
- return -1;
-
- (void) SLclass_set_destroy_function (cl, struct_destroy);
- (void) SLclass_set_push_function (cl, struct_push);
- cl->cl_dereference = struct_dereference;
- cl->cl_datatype_deref = struct_datatype_deref;
-
- cl->cl_foreach_open = struct_foreach_open;
- cl->cl_foreach_close = struct_foreach_close;
- cl->cl_foreach = struct_foreach;
-
- cl->cl_sget = struct_sget;
- cl->cl_sput = struct_sput;
-
- if (-1 == SLclass_register_class (cl, SLANG_STRUCT_TYPE, sizeof (_SLang_Struct_Type),
- SLANG_CLASS_TYPE_PTR))
- return -1;
-
- return 0;
-}
-
-static void get_struct_field_names (_SLang_Struct_Type *s)
-{
- SLang_Array_Type *a;
- char **data;
- int i, nfields;
- _SLstruct_Field_Type *f;
-
- nfields = (int) s->nfields;
-
- if (NULL == (a = SLang_create_array (SLANG_STRING_TYPE, 0, NULL, &nfields, 1)))
- return;
-
- f = s->fields;
- data = (char **) a->data;
- for (i = 0; i < nfields; i++)
- {
- /* Since we are dealing with hashed strings, the next call should not
- * fail. If it does, the interpreter will handle it at some other
- * level.
- */
- data [i] = SLang_create_slstring (f[i].name);
- }
-
- SLang_push_array (a, 1);
-}
-
-static int push_struct_fields (_SLang_Struct_Type *s)
-{
- _SLstruct_Field_Type *f, *fmax;
- int num;
-
- f = s->fields;
- fmax = f + s->nfields;
-
- num = 0;
- while (fmax > f)
- {
- fmax--;
- if (-1 == _SLpush_slang_obj (&fmax->obj))
- break;
-
- num++;
- }
-
- return num;
-}
-
-/* Syntax: set_struct_field (s, name, value); */
-static void struct_set_field (void)
-{
- _SLang_Struct_Type *s;
- _SLstruct_Field_Type *f;
- SLang_Object_Type obj;
- char *name;
-
- if (-1 == SLang_pop (&obj))
- return;
-
- if (-1 == SLang_pop_slstring (&name))
- {
- SLang_free_object (&obj);
- return;
- }
-
- if (-1 == _SLang_pop_struct (&s))
- {
- SLang_free_slstring (name);
- SLang_free_object (&obj);
- return;
- }
-
- if (NULL == (f = pop_field (s, name)))
- {
- _SLstruct_delete_struct (s);
- SLang_free_slstring (name);
- SLang_free_object (&obj);
- return;
- }
-
- SLang_free_object (&f->obj);
- f->obj = obj;
-
- _SLstruct_delete_struct (s);
- SLang_free_slstring (name);
-}
-
-/* Syntax: set_struct_fields (s, values....); */
-static void set_struct_fields (void)
-{
- unsigned int n;
- _SLang_Struct_Type *s;
- _SLstruct_Field_Type *f;
-
- n = (unsigned int) SLang_Num_Function_Args;
-
- if (-1 == SLreverse_stack (n))
- return;
-
- n--;
- if (-1 == _SLang_pop_struct (&s))
- {
- SLdo_pop_n (n);
- return;
- }
-
- if (n > s->nfields)
- {
- SLdo_pop_n (n);
- SLang_verror (SL_INVALID_PARM, "Too many values for structure");
- _SLstruct_delete_struct (s);
- return;
- }
-
- f = s->fields;
- while (n > 0)
- {
- SLang_Object_Type obj;
-
- if (-1 == SLang_pop (&obj))
- break;
-
- SLang_free_object (&f->obj);
- f->obj = obj;
-
- f++;
- n--;
- }
-
- _SLstruct_delete_struct (s);
-}
-
-static void get_struct_field (char *name)
-{
- (void) struct_sget (0, name);
-}
-
-static int is_struct_type (void)
-{
- SLang_Object_Type obj;
- unsigned char type;
- int status;
-
- if (-1 == SLang_pop (&obj))
- return -1;
-
- type = obj.data_type;
- if (type == SLANG_STRUCT_TYPE)
- status = 1;
- else
- status = (NULL != _SLclass_get_class (type)->cl_struct_def);
- SLang_free_object (&obj);
- return status;
-}
-
-
-static SLang_Intrin_Fun_Type Struct_Table [] =
-{
- MAKE_INTRINSIC_1("get_struct_field_names", get_struct_field_names, SLANG_VOID_TYPE, SLANG_STRUCT_TYPE),
- MAKE_INTRINSIC_1("get_struct_field", get_struct_field, SLANG_VOID_TYPE, SLANG_STRING_TYPE),
- MAKE_INTRINSIC_1("_push_struct_field_values", push_struct_fields, SLANG_INT_TYPE, SLANG_STRUCT_TYPE),
- MAKE_INTRINSIC_0("set_struct_field", struct_set_field, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_0("set_struct_fields", set_struct_fields, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_0("is_struct_type", is_struct_type, SLANG_INT_TYPE),
- /* MAKE_INTRINSIC_I("_create_struct", create_struct, SLANG_VOID_TYPE), */
- SLANG_END_INTRIN_FUN_TABLE
-};
-
-int _SLstruct_init (void)
-{
- if ((-1 == SLadd_intrin_fun_table (Struct_Table, NULL))
- || (-1 == register_struct ()))
- return -1;
-
- return 0;
-}
-
-void _SLstruct_pop_args (int *np)
-{
- SLang_Array_Type *at;
- int i, n;
- _SLang_Struct_Type **data;
-
- n = *np;
-
- if (n < 0)
- {
- SLang_Error = SL_INVALID_PARM;
- return;
- }
-
- data = (_SLang_Struct_Type **) SLmalloc ((n + 1) * sizeof (_SLang_Struct_Type *));
- if (data == NULL)
- {
- SLdo_pop_n (n);
- return;
- }
-
- memset ((char *)data, 0, n * sizeof (_SLang_Struct_Type *));
-
- i = n;
- while (i > 0)
- {
- _SLang_Struct_Type *s;
- _SLstruct_Field_Type *f;
-
- i--;
-
- if (NULL == (s = allocate_struct (1)))
- goto return_error;
-
- data[i] = s;
- s->num_refs += 1; /* keeping a copy */
-
- f = s->fields;
- if (NULL == (f->name = SLang_create_slstring ("value")))
- goto return_error;
-
- if (-1 == SLang_pop (&f->obj))
- goto return_error;
- }
-
- if (NULL == (at = SLang_create_array (SLANG_STRUCT_TYPE, 0,
- (VOID_STAR) data, &n, 1)))
- goto return_error;
-
- (void) SLang_push_array (at, 1);
- return;
-
- return_error:
- for (i = 0; i < n; i++)
- {
- _SLang_Struct_Type *s;
-
- s = data[i];
- if (s != NULL)
- _SLstruct_delete_struct (s);
- }
-
- SLfree ((char *) data);
-}
-
-void _SLstruct_push_args (SLang_Array_Type *at)
-{
- _SLang_Struct_Type **sp;
- unsigned int num;
-
- if (at->data_type != SLANG_STRUCT_TYPE)
- {
- SLang_Error = SL_TYPE_MISMATCH;
- return;
- }
-
- sp = (_SLang_Struct_Type **) at->data;
- num = at->num_elements;
-
- while ((SLang_Error == 0) && (num > 0))
- {
- _SLang_Struct_Type *s;
-
- num--;
- if (NULL == (s = *sp++))
- {
- SLang_push_null ();
- continue;
- }
-
- /* I should check to see if the value field is present, but... */
- (void) _SLpush_slang_obj (&s->fields->obj);
- }
-}
diff --git a/mdk-stage1/slang/sltermin.c b/mdk-stage1/slang/sltermin.c
deleted file mode 100644
index f9c64f0b2..000000000
--- a/mdk-stage1/slang/sltermin.c
+++ /dev/null
@@ -1,1155 +0,0 @@
-/* This file contains enough terminfo reading capabilities sufficient for
- * the slang SLtt interface.
- */
-
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-/*
- * The majority of the comments found in the file were taken from the
- * term(4) man page on an SGI.
- */
-
-/* Short integers are stored in two 8-bit bytes. The first byte contains
- * the least significant 8 bits of the value, and the second byte contains
- * the most significant 8 bits. (Thus, the value represented is
- * 256*second+first.) The value -1 is represented by 0377,0377, and the
- * value -2 is represented by 0376,0377; other negative values are illegal.
- * The -1 generally means that a capability is missing from this terminal.
- * The -2 means that the capability has been cancelled in the terminfo
- * source and also is to be considered missing.
- */
-
-static int make_integer (unsigned char *buf)
-{
- register int lo, hi;
- lo = (int) *buf++; hi = (int) *buf;
- if (hi == 0377)
- {
- if (lo == 0377) return -1;
- if (lo == 0376) return -2;
- }
- return lo + 256 * hi;
-}
-
-/*
- * The compiled file is created from the source file descriptions of the
- * terminals (see the -I option of infocmp) by using the terminfo compiler,
- * tic, and read by the routine setupterm [see curses(3X).] The file is
- * divided into six parts in the following order: the header, terminal
- * names, boolean flags, numbers, strings, and string table.
- *
- * The header section begins the file. This section contains six short
- * integers in the format described below. These integers are (1) the magic
- * number (octal 0432); (2) the size, in bytes, of the names section; (3)
- * the number of bytes in the boolean section; (4) the number of short
- * integers in the numbers section; (5) the number of offsets (short
- * integers) in the strings section; (6) the size, in bytes, of the string
- * table.
- */
-
-#define MAGIC 0432
-
-/* In this structure, all char * fields are malloced EXCEPT if the
- * structure is SLTERMCAP. In that case, only terminal_names is malloced
- * and the other fields are pointers into it.
- */
-struct _SLterminfo_Type
-{
-#define SLTERMINFO 1
-#define SLTERMCAP 2
- unsigned int flags;
-
- unsigned int name_section_size;
- char *terminal_names;
-
- unsigned int boolean_section_size;
- unsigned char *boolean_flags;
-
- unsigned int num_numbers;
- unsigned char *numbers;
-
- unsigned int num_string_offsets;
- unsigned char *string_offsets;
-
- unsigned int string_table_size;
- char *string_table;
-
-};
-
-static char *tcap_getstr (char *, SLterminfo_Type *);
-static int tcap_getnum (char *, SLterminfo_Type *);
-static int tcap_getflag (char *, SLterminfo_Type *);
-static int tcap_getent (char *, SLterminfo_Type *);
-
-static FILE *open_terminfo (char *file, SLterminfo_Type *h)
-{
- FILE *fp;
- unsigned char buf[12];
-
- /* Alan Cox reported a security problem here if the application using the
- * library is setuid. So, I need to make sure open the file as a normal
- * user. Unfortunately, there does not appear to be a portable way of
- * doing this, so I am going to use 'setfsgid' and 'setfsuid', which
- * are not portable.
- *
- * I will also look into the use of setreuid, seteuid and setregid, setegid.
- * FIXME: Priority=medium
- */
- fp = fopen (file, "rb");
- if (fp == NULL) return NULL;
-
- if ((12 == fread ((char *) buf, 1, 12, fp) && (MAGIC == make_integer (buf))))
- {
- h->name_section_size = make_integer (buf + 2);
- h->boolean_section_size = make_integer (buf + 4);
- h->num_numbers = make_integer (buf + 6);
- h->num_string_offsets = make_integer (buf + 8);
- h->string_table_size = make_integer (buf + 10);
- }
- else
- {
- fclose (fp);
- fp = NULL;
- }
- return fp;
-}
-
-/*
- * The terminal names section comes next. It contains the first line of the
- * terminfo description, listing the various names for the terminal,
- * separated by the bar ( | ) character (see term(5)). The section is
- * terminated with an ASCII NUL character.
- */
-
-/* returns pointer to malloced space */
-static unsigned char *read_terminfo_section (FILE *fp, unsigned int size)
-{
- char *s;
-
- if (NULL == (s = (char *) SLmalloc (size))) return NULL;
- if (size != fread (s, 1, size, fp))
- {
- SLfree (s);
- return NULL;
- }
- return (unsigned char *) s;
-}
-
-static char *read_terminal_names (FILE *fp, SLterminfo_Type *t)
-{
- return t->terminal_names = (char *) read_terminfo_section (fp, t->name_section_size);
-}
-
-/*
- * The boolean flags have one byte for each flag. This byte is either 0 or
- * 1 as the flag is present or absent. The value of 2 means that the flag
- * has been cancelled. The capabilities are in the same order as the file
- * <term.h>.
- */
-
-static unsigned char *read_boolean_flags (FILE *fp, SLterminfo_Type *t)
-{
- /* Between the boolean section and the number section, a null byte is
- * inserted, if necessary, to ensure that the number section begins on an
- * even byte offset. All short integers are aligned on a short word
- * boundary.
- */
-
- unsigned int size = (t->name_section_size + t->boolean_section_size) % 2;
- size += t->boolean_section_size;
-
- return t->boolean_flags = read_terminfo_section (fp, size);
-}
-
-/*
- * The numbers section is similar to the boolean flags section. Each
- * capability takes up two bytes, and is stored as a short integer. If the
- * value represented is -1 or -2, the capability is taken to be missing.
- */
-
-static unsigned char *read_numbers (FILE *fp, SLterminfo_Type *t)
-{
- return t->numbers = read_terminfo_section (fp, 2 * t->num_numbers);
-}
-
-/* The strings section is also similar. Each capability is stored as a
- * short integer, in the format above. A value of -1 or -2 means the
- * capability is missing. Otherwise, the value is taken as an offset from
- * the beginning of the string table. Special characters in ^X or \c
- * notation are stored in their interpreted form, not the printing
- * representation. Padding information ($<nn>) and parameter information
- * (%x) are stored intact in uninterpreted form.
- */
-
-static unsigned char *read_string_offsets (FILE *fp, SLterminfo_Type *t)
-{
- return t->string_offsets = (unsigned char *) read_terminfo_section (fp, 2 * t->num_string_offsets);
-}
-
-/* The final section is the string table. It contains all the values of
- * string capabilities referenced in the string section. Each string is
- * null terminated.
- */
-
-static char *read_string_table (FILE *fp, SLterminfo_Type *t)
-{
- return t->string_table = (char *) read_terminfo_section (fp, t->string_table_size);
-}
-
-/*
- * Compiled terminfo(4) descriptions are placed under the directory
- * /usr/share/lib/terminfo. In order to avoid a linear search of a huge
- * UNIX system directory, a two-level scheme is used:
- * /usr/share/lib/terminfo/c/name where name is the name of the terminal,
- * and c is the first character of name. Thus, att4425 can be found in the
- * file /usr/share/lib/terminfo/a/att4425. Synonyms for the same terminal
- * are implemented by multiple links to the same compiled file.
- */
-
-#define MAX_TI_DIRS 7
-static char *Terminfo_Dirs [MAX_TI_DIRS] =
-{
- NULL, /* $HOME/.terminfo */
- NULL, /* $TERMINFO */
- "/usr/share/terminfo",
- "/usr/lib/terminfo",
- "/usr/share/lib/terminfo",
- "/etc/terminfo",
- "/usr/local/lib/terminfo"
-};
-
-SLterminfo_Type *_SLtt_tigetent (char *term)
-{
- char *tidir;
- int i;
- FILE *fp = NULL;
- char file[1024];
- static char home_ti [1024];
- char *home;
- SLterminfo_Type *ti;
-
- if (
- (term == NULL)
-#ifdef SLANG_UNTIC
- && (SLang_Untic_Terminfo_File == NULL)
-#endif
- )
- return NULL;
-
- if (NULL == (ti = (SLterminfo_Type *) SLmalloc (sizeof (SLterminfo_Type))))
- {
- return NULL;
- }
-
-#ifdef SLANG_UNTIC
- if (SLang_Untic_Terminfo_File != NULL)
- {
- fp = open_terminfo (SLang_Untic_Terminfo_File, ti);
- goto fp_open_label;
- }
- else
-#endif
- /* If we are on a termcap based system, use termcap */
- if (0 == tcap_getent (term, ti)) return ti;
-
- if (NULL != (home = getenv ("HOME")))
- {
- strncpy (home_ti, home, sizeof (home_ti) - 11);
- home_ti [sizeof(home_ti) - 11] = 0;
- strcat (home_ti, "/.terminfo");
- Terminfo_Dirs [0] = home_ti;
- }
-
- Terminfo_Dirs[1] = getenv ("TERMINFO");
- i = 0;
- while (i < MAX_TI_DIRS)
- {
- tidir = Terminfo_Dirs[i];
- if ((tidir != NULL)
- && (sizeof (file) > strlen (tidir) + 2 + strlen (term)))
- {
- sprintf (file, "%s/%c/%s", tidir, *term, term);
- if (NULL != (fp = open_terminfo (file, ti)))
- break;
- }
- i++;
- }
-#ifdef SLANG_UNTIC
- fp_open_label:
-#endif
-
- if (fp != NULL)
- {
- if (NULL != read_terminal_names (fp, ti))
- {
- if (NULL != read_boolean_flags (fp, ti))
- {
- if (NULL != read_numbers (fp, ti))
- {
- if (NULL != read_string_offsets (fp, ti))
- {
- if (NULL != read_string_table (fp, ti))
- {
- /* success */
- fclose (fp);
- ti->flags = SLTERMINFO;
- return ti;
- }
- SLfree ((char *)ti->string_offsets);
- }
- SLfree ((char *)ti->numbers);
- }
- SLfree ((char *)ti->boolean_flags);
- }
- SLfree ((char *)ti->terminal_names);
- }
- fclose (fp);
- }
-
- SLfree ((char *)ti);
- return NULL;
-}
-
-#ifdef SLANG_UNTIC
-# define UNTIC_COMMENT(x) ,x
-#else
-# define UNTIC_COMMENT(x)
-#endif
-
-typedef struct
-{
- char name[3];
- int offset;
-#ifdef SLANG_UNTIC
- char *comment;
-#endif
-}
-Tgetstr_Map_Type;
-
-/* I need to add: K1-5, %0-5(not important), @8, &8... */
-static Tgetstr_Map_Type Tgetstr_Map [] =
-{
- {"!1", 212 UNTIC_COMMENT("shifted key")},
- {"!2", 213 UNTIC_COMMENT("shifted key")},
- {"!3", 214 UNTIC_COMMENT("shifted key")},
- {"#1", 198 UNTIC_COMMENT("shifted key")},
- {"#2", 199 UNTIC_COMMENT("Key S-Home")},
- {"#3", 200 UNTIC_COMMENT("Key S-Insert")},
- {"#4", 201 UNTIC_COMMENT("Key S-Left")},
- {"%0", 177 UNTIC_COMMENT("redo key")},
- {"%1", 168 UNTIC_COMMENT("help key")},
- {"%2", 169 UNTIC_COMMENT("mark key")},
- {"%3", 170 UNTIC_COMMENT("message key")},
- {"%4", 171 UNTIC_COMMENT("move key")},
- {"%5", 172 UNTIC_COMMENT("next key")},
- {"%6", 173 UNTIC_COMMENT("open key")},
- {"%7", 174 UNTIC_COMMENT("options key")},
- {"%8", 175 UNTIC_COMMENT("previous key")},
- {"%9", 176 UNTIC_COMMENT("print key")},
- {"%a", 202 UNTIC_COMMENT("shifted key")},
- {"%b", 203 UNTIC_COMMENT("shifted key")},
- {"%c", 204 UNTIC_COMMENT("Key S-Next")},
- {"%d", 205 UNTIC_COMMENT("shifted key")},
- {"%e", 206 UNTIC_COMMENT("Key S-Previous")},
- {"%f", 207 UNTIC_COMMENT("shifted key")},
- {"%g", 208 UNTIC_COMMENT("shifted key")},
- {"%h", 209 UNTIC_COMMENT("shifted key")},
- {"%i", 210 UNTIC_COMMENT("Key S-Right")},
- {"%j", 211 UNTIC_COMMENT("shifted key")},
- {"&0", 187 UNTIC_COMMENT("shifted key")},
- {"&1", 178 UNTIC_COMMENT("reference key")},
- {"&2", 179 UNTIC_COMMENT("refresh key")},
- {"&3", 180 UNTIC_COMMENT("replace key")},
- {"&4", 181 UNTIC_COMMENT("restart key")},
- {"&5", 182 UNTIC_COMMENT("resume key")},
- {"&6", 183 UNTIC_COMMENT("save key")},
- {"&7", 184 UNTIC_COMMENT("suspend key")},
- {"&8", 185 UNTIC_COMMENT("undo key")},
- {"&9", 186 UNTIC_COMMENT("shifted key")},
- {"*0", 197 UNTIC_COMMENT("shifted key")},
- {"*1", 188 UNTIC_COMMENT("shifted key")},
- {"*2", 189 UNTIC_COMMENT("shifted key")},
- {"*3", 190 UNTIC_COMMENT("shifted key")},
- {"*4", 191 UNTIC_COMMENT("Key S-Delete")},
- {"*5", 192 UNTIC_COMMENT("shifted key")},
- {"*6", 193 UNTIC_COMMENT("select key")},
- {"*7", 194 UNTIC_COMMENT("Key S-End")},
- {"*8", 195 UNTIC_COMMENT("shifted key")},
- {"*9", 196 UNTIC_COMMENT("shifted key")},
- {"@0", 167 UNTIC_COMMENT("find key")},
- {"@1", 158 UNTIC_COMMENT("begin key")},
- {"@2", 159 UNTIC_COMMENT("cancel key")},
- {"@3", 160 UNTIC_COMMENT("close key")},
- {"@4", 161 UNTIC_COMMENT("command key")},
- {"@5", 162 UNTIC_COMMENT("copy key")},
- {"@6", 163 UNTIC_COMMENT("create key")},
- {"@7", 164 UNTIC_COMMENT("Key End")},
- {"@8", 165 UNTIC_COMMENT("enter/send key")},
- {"@9", 166 UNTIC_COMMENT("exit key")},
- {"AB", 360 UNTIC_COMMENT("set ANSI color background")},
- {"AF", 359 UNTIC_COMMENT("set ANSI color foreground")},
- {"AL", 110 UNTIC_COMMENT("parm_insert_line")},
- {"CC", 9 UNTIC_COMMENT("terminal settable cmd character in prototype !?")},
- {"CM", 15 UNTIC_COMMENT("memory relative cursor addressing")},
- {"CW", 277 UNTIC_COMMENT("define a window #1 from #2, #3 to #4, #5")},
- {"DC", 105 UNTIC_COMMENT("delete #1 chars")},
- {"DI", 280 UNTIC_COMMENT("dial number #1")},
- {"DK", 275 UNTIC_COMMENT("display clock at (#1,#2)")},
- {"DL", 106 UNTIC_COMMENT("parm_delete_line")},
- {"DO", 107 UNTIC_COMMENT("down #1 lines")},
- {"F1", 216 UNTIC_COMMENT("key_f11")},
- {"F2", 217 UNTIC_COMMENT("key_f12")},
- {"F3", 218 UNTIC_COMMENT("key_f13")},
- {"F4", 219 UNTIC_COMMENT("key_f14")},
- {"F5", 220 UNTIC_COMMENT("key_f15")},
- {"F6", 221 UNTIC_COMMENT("key_f16")},
- {"F7", 222 UNTIC_COMMENT("key_f17")},
- {"F8", 223 UNTIC_COMMENT("key_f18")},
- {"F9", 224 UNTIC_COMMENT("key_f19")},
- {"FA", 225 UNTIC_COMMENT("key_f20")},
- {"FB", 226 UNTIC_COMMENT("F21 function key")},
- {"FC", 227 UNTIC_COMMENT("F22 function key")},
- {"FD", 228 UNTIC_COMMENT("F23 function key")},
- {"FE", 229 UNTIC_COMMENT("F24 function key")},
- {"FF", 230 UNTIC_COMMENT("F25 function key")},
- {"FG", 231 UNTIC_COMMENT("F26 function key")},
- {"FH", 232 UNTIC_COMMENT("F27 function key")},
- {"FI", 233 UNTIC_COMMENT("F28 function key")},
- {"FJ", 234 UNTIC_COMMENT("F29 function key")},
- {"FK", 235 UNTIC_COMMENT("F30 function key")},
- {"FL", 236 UNTIC_COMMENT("F31 function key")},
- {"FM", 237 UNTIC_COMMENT("F32 function key")},
- {"FN", 238 UNTIC_COMMENT("F33 function key")},
- {"FO", 239 UNTIC_COMMENT("F34 function key")},
- {"FP", 240 UNTIC_COMMENT("F35 function key")},
- {"FQ", 241 UNTIC_COMMENT("F36 function key")},
- {"FR", 242 UNTIC_COMMENT("F37 function key")},
- {"FS", 243 UNTIC_COMMENT("F38 function key")},
- {"FT", 244 UNTIC_COMMENT("F39 function key")},
- {"FU", 245 UNTIC_COMMENT("F40 function key")},
- {"FV", 246 UNTIC_COMMENT("F41 function key")},
- {"FW", 247 UNTIC_COMMENT("F42 function key")},
- {"FX", 248 UNTIC_COMMENT("F43 function key")},
- {"FY", 249 UNTIC_COMMENT("F44 function key")},
- {"FZ", 250 UNTIC_COMMENT("F45 function key")},
- {"Fa", 251 UNTIC_COMMENT("F46 function key")},
- {"Fb", 252 UNTIC_COMMENT("F47 function key")},
- {"Fc", 253 UNTIC_COMMENT("F48 function key")},
- {"Fd", 254 UNTIC_COMMENT("F49 function key")},
- {"Fe", 255 UNTIC_COMMENT("F50 function key")},
- {"Ff", 256 UNTIC_COMMENT("F51 function key")},
- {"Fg", 257 UNTIC_COMMENT("F52 function key")},
- {"Fh", 258 UNTIC_COMMENT("F53 function key")},
- {"Fi", 259 UNTIC_COMMENT("F54 function key")},
- {"Fj", 260 UNTIC_COMMENT("F55 function key")},
- {"Fk", 261 UNTIC_COMMENT("F56 function key")},
- {"Fl", 262 UNTIC_COMMENT("F57 function key")},
- {"Fm", 263 UNTIC_COMMENT("F58 function key")},
- {"Fn", 264 UNTIC_COMMENT("F59 function key")},
- {"Fo", 265 UNTIC_COMMENT("F60 function key")},
- {"Fp", 266 UNTIC_COMMENT("F61 function key")},
- {"Fq", 267 UNTIC_COMMENT("F62 function key")},
- {"Fr", 268 UNTIC_COMMENT("F63 function key")},
- {"G1", 400 UNTIC_COMMENT("single upper right")},
- {"G2", 398 UNTIC_COMMENT("single upper left")},
- {"G3", 399 UNTIC_COMMENT("single lower left")},
- {"G4", 401 UNTIC_COMMENT("single lower right")},
- {"GC", 408 UNTIC_COMMENT("single intersection")},
- {"GD", 405 UNTIC_COMMENT("tee pointing down")},
- {"GH", 406 UNTIC_COMMENT("single horizontal line")},
- {"GL", 403 UNTIC_COMMENT("tee pointing left")},
- {"GR", 402 UNTIC_COMMENT("tee pointing right")},
- {"GU", 404 UNTIC_COMMENT("tee pointing up")},
- {"GV", 407 UNTIC_COMMENT("single vertical line")},
- {"Gm", 358 UNTIC_COMMENT("Curses should get button events")},
- {"HU", 279 UNTIC_COMMENT("hang-up phone")},
- {"IC", 108 UNTIC_COMMENT("insert #1 chars")},
- {"Ic", 299 UNTIC_COMMENT("initialize color #1 to (#2,#3,#4)")},
- {"Ip", 300 UNTIC_COMMENT("Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7)")},
- {"K1", 139 UNTIC_COMMENT("upper left of keypad")},
- {"K2", 141 UNTIC_COMMENT("center of keypad")},
- {"K3", 140 UNTIC_COMMENT("upper right of keypad")},
- {"K4", 142 UNTIC_COMMENT("lower left of keypad")},
- {"K5", 143 UNTIC_COMMENT("lower right of keypad")},
- {"Km", 355 UNTIC_COMMENT("Mouse event has occurred")},
- {"LE", 111 UNTIC_COMMENT("move #1 chars to the left")},
- {"LF", 157 UNTIC_COMMENT("turn off soft labels")},
- {"LO", 156 UNTIC_COMMENT("turn on soft labels")},
- {"Lf", 273 UNTIC_COMMENT("label format")},
- {"MC", 270 UNTIC_COMMENT("clear right and left soft margins")},
- {"ML", 271 UNTIC_COMMENT("set left soft margin")},
- {"ML", 368 UNTIC_COMMENT("Set both left and right margins to #1, #2")},
- {"MR", 272 UNTIC_COMMENT("set right soft margin")},
- {"MT", 369 UNTIC_COMMENT("Sets both top and bottom margins to #1, #2")},
- {"Mi", 356 UNTIC_COMMENT("Mouse status information")},
- {"PA", 285 UNTIC_COMMENT("pause for 2-3 seconds")},
- {"PU", 283 UNTIC_COMMENT("select pulse dialling")},
- {"QD", 281 UNTIC_COMMENT("dial number #1 without checking")},
- {"RA", 152 UNTIC_COMMENT("turn off automatic margins")},
- {"RC", 276 UNTIC_COMMENT("remove clock")},
- {"RF", 215 UNTIC_COMMENT("send next input char (for ptys)")},
- {"RI", 112 UNTIC_COMMENT("parm_right_cursor")},
- {"RQ", 357 UNTIC_COMMENT("Request mouse position")},
- {"RX", 150 UNTIC_COMMENT("turn off xon/xoff handshaking")},
- {"S1", 378 UNTIC_COMMENT("Display PC character")},
- {"S2", 379 UNTIC_COMMENT("Enter PC character display mode")},
- {"S3", 380 UNTIC_COMMENT("Exit PC character display mode")},
- {"S4", 381 UNTIC_COMMENT("Enter PC scancode mode")},
- {"S5", 382 UNTIC_COMMENT("Exit PC scancode mode")},
- {"S6", 383 UNTIC_COMMENT("PC terminal options")},
- {"S7", 384 UNTIC_COMMENT("Escape for scancode emulation")},
- {"S8", 385 UNTIC_COMMENT("Alternate escape for scancode emulation")},
- {"SA", 151 UNTIC_COMMENT("turn on automatic margins")},
- {"SC", 274 UNTIC_COMMENT("set clock, #1 hrs #2 mins #3 secs")},
- {"SF", 109 UNTIC_COMMENT("scroll forward #1 lines")},
- {"SR", 113 UNTIC_COMMENT("scroll back #1 lines")},
- {"SX", 149 UNTIC_COMMENT("turn on xon/xoff handshaking")},
- {"Sb", 303 UNTIC_COMMENT("set background (color)")},
- {"Sf", 302 UNTIC_COMMENT("set foreground (color)")},
- {"TO", 282 UNTIC_COMMENT("select touch tone dialing")},
- {"UP", 114 UNTIC_COMMENT("up #1 lines")},
- {"WA", 286 UNTIC_COMMENT("wait for dial-tone")},
- {"WG", 278 UNTIC_COMMENT("go to window #1")},
- {"XF", 154 UNTIC_COMMENT("XOFF character")},
- {"XN", 153 UNTIC_COMMENT("XON character")},
- {"Xh", 386 UNTIC_COMMENT("Enter horizontal highlight mode")},
- {"Xl", 387 UNTIC_COMMENT("Enter left highlight mode")},
- {"Xo", 388 UNTIC_COMMENT("Enter low highlight mode")},
- {"Xr", 389 UNTIC_COMMENT("Enter right highlight mode")},
- {"Xt", 390 UNTIC_COMMENT("Enter top highlight mode")},
- {"Xv", 391 UNTIC_COMMENT("Enter vertical highlight mode")},
- {"Xy", 370 UNTIC_COMMENT("Repeat bit image cell #1 #2 times")},
- {"YZ", 377 UNTIC_COMMENT("Set page length to #1 lines")},
- {"Yv", 372 UNTIC_COMMENT("Move to beginning of same row")},
- {"Yw", 373 UNTIC_COMMENT("Give name for color #1")},
- {"Yx", 374 UNTIC_COMMENT("Define rectangualar bit image region")},
- {"Yy", 375 UNTIC_COMMENT("End a bit-image region")},
- {"Yz", 376 UNTIC_COMMENT("Change to ribbon color #1")},
- {"ZA", 304 UNTIC_COMMENT("Change number of characters per inch")},
- {"ZB", 305 UNTIC_COMMENT("Change number of lines per inch")},
- {"ZC", 306 UNTIC_COMMENT("Change horizontal resolution")},
- {"ZD", 307 UNTIC_COMMENT("Change vertical resolution")},
- {"ZE", 308 UNTIC_COMMENT("Define a character")},
- {"ZF", 309 UNTIC_COMMENT("Enter double-wide mode")},
- {"ZG", 310 UNTIC_COMMENT("Enter draft-quality mode")},
- {"ZH", 311 UNTIC_COMMENT("Enter italic mode")},
- {"ZI", 312 UNTIC_COMMENT("Start leftward carriage motion")},
- {"ZJ", 313 UNTIC_COMMENT("Start micro-motion mode")},
- {"ZK", 314 UNTIC_COMMENT("Enter NLQ mode")},
- {"ZL", 315 UNTIC_COMMENT("Wnter normal-quality mode")},
- {"ZM", 316 UNTIC_COMMENT("Enter shadow-print mode")},
- {"ZN", 317 UNTIC_COMMENT("Enter subscript mode")},
- {"ZO", 318 UNTIC_COMMENT("Enter superscript mode")},
- {"ZP", 319 UNTIC_COMMENT("Start upward carriage motion")},
- {"ZQ", 320 UNTIC_COMMENT("End double-wide mode")},
- {"ZR", 321 UNTIC_COMMENT("End italic mode")},
- {"ZS", 322 UNTIC_COMMENT("End left-motion mode")},
- {"ZT", 323 UNTIC_COMMENT("End micro-motion mode")},
- {"ZU", 324 UNTIC_COMMENT("End shadow-print mode")},
- {"ZV", 325 UNTIC_COMMENT("End subscript mode")},
- {"ZW", 326 UNTIC_COMMENT("End superscript mode")},
- {"ZX", 327 UNTIC_COMMENT("End reverse character motion")},
- {"ZY", 328 UNTIC_COMMENT("Like column_address in micro mode")},
- {"ZZ", 329 UNTIC_COMMENT("Like cursor_down in micro mode")},
- {"Za", 330 UNTIC_COMMENT("Like cursor_left in micro mode")},
- {"Zb", 331 UNTIC_COMMENT("Like cursor_right in micro mode")},
- {"Zc", 332 UNTIC_COMMENT("Like row_address in micro mode")},
- {"Zd", 333 UNTIC_COMMENT("Like cursor_up in micro mode")},
- {"Ze", 334 UNTIC_COMMENT("Match software bits to print-head pins")},
- {"Zf", 335 UNTIC_COMMENT("Like parm_down_cursor in micro mode")},
- {"Zg", 336 UNTIC_COMMENT("Like parm_left_cursor in micro mode")},
- {"Zh", 337 UNTIC_COMMENT("Like parm_right_cursor in micro mode")},
- {"Zi", 338 UNTIC_COMMENT("Like parm_up_cursor in micro mode")},
- {"Zj", 339 UNTIC_COMMENT("Select character set")},
- {"Zk", 340 UNTIC_COMMENT("Set bottom margin at current line")},
- {"Zl", 341 UNTIC_COMMENT("Set bottom margin at line #1 or #2 lines from bottom")},
- {"Zm", 342 UNTIC_COMMENT("Set left (right) margin at column #1 (#2)")},
- {"Zn", 343 UNTIC_COMMENT("Set right margin at column #1")},
- {"Zo", 344 UNTIC_COMMENT("Set top margin at current line")},
- {"Zp", 345 UNTIC_COMMENT("Set top (bottom) margin at row #1 (#2)")},
- {"Zq", 346 UNTIC_COMMENT("Start printing bit image braphics")},
- {"Zr", 347 UNTIC_COMMENT("Start character set definition")},
- {"Zs", 348 UNTIC_COMMENT("Stop printing bit image graphics")},
- {"Zt", 349 UNTIC_COMMENT("End definition of character aet")},
- {"Zu", 350 UNTIC_COMMENT("List of subscriptable characters")},
- {"Zv", 351 UNTIC_COMMENT("List of superscriptable characters")},
- {"Zw", 352 UNTIC_COMMENT("Printing any of these chars causes CR")},
- {"Zx", 353 UNTIC_COMMENT("No motion for subsequent character")},
- {"Zy", 354 UNTIC_COMMENT("List of character set names")},
- {"Zz", 371 UNTIC_COMMENT("Move to next row of the bit image")},
- {"ac", 146 UNTIC_COMMENT("acs_chars")},
- {"ae", 38 UNTIC_COMMENT("exit_alt_charset_mode")},
- {"al", 53 UNTIC_COMMENT("insert line")},
- {"as", 25 UNTIC_COMMENT("enter_alt_charset_mode")},
- {"bc", 395 UNTIC_COMMENT("move left, if not ^H")},
- {"bl", 1 UNTIC_COMMENT("audible signal (bell)")},
- {"bt", 0 UNTIC_COMMENT("back tab")},
- {"bx", 411 UNTIC_COMMENT("box chars primary set")},
- {"cb", 269 UNTIC_COMMENT("Clear to beginning of line")},
- {"cd", 7 UNTIC_COMMENT("clear to end of screen")},
- {"ce", 6 UNTIC_COMMENT("clr_eol")},
- {"ch", 8 UNTIC_COMMENT("horizontal position #1, absolute")},
- {"ci", 363 UNTIC_COMMENT("Init sequence for multiple codesets")},
- {"cl", 5 UNTIC_COMMENT("clear screen and home cursor")},
- {"cm", 10 UNTIC_COMMENT("move to row #1 columns #2")},
- {"cr", 2 UNTIC_COMMENT("carriage return")},
- {"cs", 3 UNTIC_COMMENT("change region to line #1 to line #2")},
- {"ct", 4 UNTIC_COMMENT("clear all tab stops")},
- {"cv", 127 UNTIC_COMMENT("vertical position #1 absolute")},
- {"dc", 21 UNTIC_COMMENT("delete character")},
- {"dl", 22 UNTIC_COMMENT("delete line")},
- {"dm", 29 UNTIC_COMMENT("enter delete mode")},
- {"do", 11 UNTIC_COMMENT("down one line")},
- {"ds", 23 UNTIC_COMMENT("disable status line")},
- {"dv", 362 UNTIC_COMMENT("Indicate language/codeset support")},
- {"eA", 155 UNTIC_COMMENT("enable alternate char set")},
- {"ec", 37 UNTIC_COMMENT("erase #1 characters")},
- {"ed", 41 UNTIC_COMMENT("end delete mode")},
- {"ei", 42 UNTIC_COMMENT("exit insert mode")},
- {"ff", 46 UNTIC_COMMENT("hardcopy terminal page eject")},
- {"fh", 284 UNTIC_COMMENT("flash switch hook")},
- {"fs", 47 UNTIC_COMMENT("return from status line")},
- {"hd", 24 UNTIC_COMMENT("half a line down")},
- {"ho", 12 UNTIC_COMMENT("home cursor (if no cup)")},
- {"hu", 137 UNTIC_COMMENT("half a line up")},
- {"i1", 48 UNTIC_COMMENT("initialization string")},
- {"i2", 392 UNTIC_COMMENT("secondary initialization string")},
- {"i3", 50 UNTIC_COMMENT("initialization string")},
- {"iP", 138 UNTIC_COMMENT("path name of program for initialization")},
- {"ic", 52 UNTIC_COMMENT("insert character")},
- {"if", 51 UNTIC_COMMENT("name of initialization file")},
- {"im", 31 UNTIC_COMMENT("enter insert mode")},
- {"ip", 54 UNTIC_COMMENT("insert padding after inserted character")},
- {"is", 49 UNTIC_COMMENT("initialization string")},
- {"k0", 65 UNTIC_COMMENT("F0 function key")},
- {"k1", 66 UNTIC_COMMENT("F1 function key")},
- {"k2", 68 UNTIC_COMMENT("F2 function key")},
- {"k3", 69 UNTIC_COMMENT("F3 function key")},
- {"k4", 70 UNTIC_COMMENT("F4 function key")},
- {"k5", 71 UNTIC_COMMENT("F5 function key")},
- {"k6", 72 UNTIC_COMMENT("F6 function key")},
- {"k7", 73 UNTIC_COMMENT("F7 function key")},
- {"k8", 74 UNTIC_COMMENT("F8 fucntion key")},
- {"k9", 75 UNTIC_COMMENT("F9 function key")},
- {"k;", 67 UNTIC_COMMENT("F10 function key")},
- {"kA", 78 UNTIC_COMMENT("insert-line key")},
- {"kB", 148 UNTIC_COMMENT("back-tab key")},
- {"kC", 57 UNTIC_COMMENT("clear-screen or erase key")},
- {"kD", 59 UNTIC_COMMENT("delete-character key")},
- {"kE", 63 UNTIC_COMMENT("clear-to-end-of-line key")},
- {"kF", 84 UNTIC_COMMENT("scroll-forward key")},
- {"kH", 80 UNTIC_COMMENT("last-line key")},
- {"kI", 77 UNTIC_COMMENT("insert-character key")},
- {"kL", 60 UNTIC_COMMENT("delete-line key")},
- {"kM", 62 UNTIC_COMMENT("sent by rmir or smir in insert mode")},
- {"kN", 81 UNTIC_COMMENT("next-page key")},
- {"kP", 82 UNTIC_COMMENT("prev-page key")},
- {"kR", 85 UNTIC_COMMENT("scroll-backward key")},
- {"kS", 64 UNTIC_COMMENT("clear-to-end-of-screen key")},
- {"kT", 86 UNTIC_COMMENT("set-tab key")},
- {"ka", 56 UNTIC_COMMENT("clear-all-tabs key")},
- {"kb", 55 UNTIC_COMMENT("backspace key")},
- {"kd", 61 UNTIC_COMMENT("down-arrow key")},
- {"ke", 88 UNTIC_COMMENT("leave 'keyboard_transmit' mode")},
- {"kh", 76 UNTIC_COMMENT("home key")},
- {"kl", 79 UNTIC_COMMENT("left-arrow key")},
- {"ko", 396 UNTIC_COMMENT("list of self-mapped keycaps")},
- {"kr", 83 UNTIC_COMMENT("right-arrow key")},
- {"ks", 89 UNTIC_COMMENT("enter 'keyboard_transmit' mode")},
- {"kt", 58 UNTIC_COMMENT("clear-tab key")},
- {"ku", 87 UNTIC_COMMENT("up-arrow key")},
- {"l0", 90 UNTIC_COMMENT("label on function key f0 if not f0")},
- {"l1", 91 UNTIC_COMMENT("label on function key f1 if not f1")},
- {"l2", 93 UNTIC_COMMENT("label on function key f2 if not f2")},
- {"l3", 94 UNTIC_COMMENT("label on function key f3 if not f3")},
- {"l4", 95 UNTIC_COMMENT("label on function key f4 if not f4")},
- {"l5", 96 UNTIC_COMMENT("lable on function key f5 if not f5")},
- {"l6", 97 UNTIC_COMMENT("label on function key f6 if not f6")},
- {"l7", 98 UNTIC_COMMENT("label on function key f7 if not f7")},
- {"l8", 99 UNTIC_COMMENT("label on function key f8 if not f8")},
- {"l9", 100 UNTIC_COMMENT("label on function key f9 if not f9")},
- {"la", 92 UNTIC_COMMENT("label on function key f10 if not f10")},
- {"le", 14 UNTIC_COMMENT("move left one space")},
- {"ll", 18 UNTIC_COMMENT("last line, first column (if no cup)")},
- {"ma", 397 UNTIC_COMMENT("map arrow keys rogue(1) motion keys")},
- {"mb", 26 UNTIC_COMMENT("turn on blinking")},
- {"md", 27 UNTIC_COMMENT("turn on bold (extra bright) mode")},
- {"me", 39 UNTIC_COMMENT("turn off all attributes")},
- {"mh", 30 UNTIC_COMMENT("turn on half-bright mode")},
- {"mk", 32 UNTIC_COMMENT("turn on blank mode (characters invisible)")},
- {"ml", 409 UNTIC_COMMENT("memory lock above")},
- {"mm", 102 UNTIC_COMMENT("turn on meta mode (8th-bit on)")},
- {"mo", 101 UNTIC_COMMENT("turn off meta mode")},
- {"mp", 33 UNTIC_COMMENT("turn on protected mode")},
- {"mr", 34 UNTIC_COMMENT("turn on reverse video mode")},
- {"mu", 410 UNTIC_COMMENT("memory unlock")},
- {"nd", 17 UNTIC_COMMENT("move right one space")},
- {"nl", 394 UNTIC_COMMENT("use to move down")},
- {"nw", 103 UNTIC_COMMENT("newline (behave like cr followed by lf)")},
- {"oc", 298 UNTIC_COMMENT("Set all color pairs to the original ones")},
- {"op", 297 UNTIC_COMMENT("Set default pair to its original value")},
- {"pO", 144 UNTIC_COMMENT("turn on printer for #1 bytes")},
- {"pc", 104 UNTIC_COMMENT("padding char (instead of null)")},
- {"pf", 119 UNTIC_COMMENT("turn off printer")},
- {"pk", 115 UNTIC_COMMENT("program function key #1 to type string #2")},
- {"pl", 116 UNTIC_COMMENT("program function key #1 to execute string #2")},
- {"pn", 147 UNTIC_COMMENT("program label #1 to show string #2")},
- {"po", 120 UNTIC_COMMENT("turn on printer")},
- {"ps", 118 UNTIC_COMMENT("print contents of screen")},
- {"px", 117 UNTIC_COMMENT("program function key #1 to transmit string #2")},
- {"r1", 122 UNTIC_COMMENT("reset string")},
- {"r2", 123 UNTIC_COMMENT("reset string")},
- {"r3", 124 UNTIC_COMMENT("reset string")},
- {"rP", 145 UNTIC_COMMENT("like ip but when in insert mode")},
- {"rc", 126 UNTIC_COMMENT("restore cursor to last position of sc")},
- {"rf", 125 UNTIC_COMMENT("name of reset file")},
- {"rp", 121 UNTIC_COMMENT("repeat char #1 #2 times")},
- {"rs", 393 UNTIC_COMMENT("terminal reset string")},
- {"s0", 364 UNTIC_COMMENT("Shift to code set 0 (EUC set 0, ASCII)")},
- {"s1", 365 UNTIC_COMMENT("Shift to code set 1")},
- {"s2", 366 UNTIC_COMMENT("Shift to code set 2")},
- {"s3", 367 UNTIC_COMMENT("Shift to code set 3")},
- {"sa", 131 UNTIC_COMMENT("define video attributes #1-#9 (PG9)")},
- {"sc", 128 UNTIC_COMMENT("save current cursor position")},
- {"se", 43 UNTIC_COMMENT("exit standout mode")},
- {"sf", 129 UNTIC_COMMENT("scroll text up")},
- {"so", 35 UNTIC_COMMENT("begin standout mode")},
- {"sp", 301 UNTIC_COMMENT("Set current color pair to #1")},
- {"sr", 130 UNTIC_COMMENT("scroll text down")},
- {"st", 132 UNTIC_COMMENT("set a tab in every row, current columns")},
- {"ta", 134 UNTIC_COMMENT("tab to next 8-space hardware tab stop")},
- {"te", 40 UNTIC_COMMENT("strings to end programs using cup")},
- {"ti", 28 UNTIC_COMMENT("string to start programs using cup")},
- {"ts", 135 UNTIC_COMMENT("move to status line")},
- {"u0", 287 UNTIC_COMMENT("User string #0")},
- {"u1", 288 UNTIC_COMMENT("User string #1")},
- {"u2", 289 UNTIC_COMMENT("User string #2")},
- {"u3", 290 UNTIC_COMMENT("User string #3")},
- {"u4", 291 UNTIC_COMMENT("User string #4")},
- {"u5", 292 UNTIC_COMMENT("User string #5")},
- {"u6", 293 UNTIC_COMMENT("User string #6")},
- {"u7", 294 UNTIC_COMMENT("User string #7")},
- {"u8", 295 UNTIC_COMMENT("User string #8")},
- {"u9", 296 UNTIC_COMMENT("User string #9")},
- {"uc", 136 UNTIC_COMMENT("underline char and move past it")},
- {"ue", 44 UNTIC_COMMENT("exit underline mode")},
- {"up", 19 UNTIC_COMMENT("up one line")},
- {"us", 36 UNTIC_COMMENT("begin underline mode")},
- {"vb", 45 UNTIC_COMMENT("visible bell (may not move cursor)")},
- {"ve", 16 UNTIC_COMMENT("make cursor appear normal (undo civis/cvvis)")},
- {"vi", 13 UNTIC_COMMENT("make cursor invisible")},
- {"vs", 20 UNTIC_COMMENT("make cursor very visible")},
- {"wi", 133 UNTIC_COMMENT("current window is lines #1-#2 cols #3-#4")},
- {"xl", 361 UNTIC_COMMENT("Program function key #1 to type string #2 and show string #3")},
- {"", -1 UNTIC_COMMENT(NULL)}
-};
-
-static int compute_cap_offset (char *cap, SLterminfo_Type *t, Tgetstr_Map_Type *map, unsigned int max_ofs)
-{
- char cha, chb;
-
- (void) t;
- cha = *cap++; chb = *cap;
-
- while (*map->name != 0)
- {
- if ((cha == *map->name) && (chb == *(map->name + 1)))
- {
- if (map->offset >= (int) max_ofs) return -1;
- return map->offset;
- }
- map++;
- }
- return -1;
-}
-
-char *_SLtt_tigetstr (SLterminfo_Type *t, char *cap)
-{
- int offset;
-
- if (t == NULL)
- return NULL;
-
- if (t->flags == SLTERMCAP) return tcap_getstr (cap, t);
-
- offset = compute_cap_offset (cap, t, Tgetstr_Map, t->num_string_offsets);
- if (offset < 0) return NULL;
- offset = make_integer (t->string_offsets + 2 * offset);
- if (offset < 0) return NULL;
- return t->string_table + offset;
-}
-
-static Tgetstr_Map_Type Tgetnum_Map[] =
-{
- {"BT", 30 UNTIC_COMMENT("number of buttons on mouse")},
- {"Co", 13 UNTIC_COMMENT("maximum numbers of colors on screen")},
- {"MW", 12 UNTIC_COMMENT("maxumum number of defineable windows")},
- {"NC", 15 UNTIC_COMMENT("video attributes that can't be used with colors")},
- {"Nl", 8 UNTIC_COMMENT("number of labels on screen")},
- {"Ya", 16 UNTIC_COMMENT("numbers of bytes buffered before printing")},
- {"Yb", 17 UNTIC_COMMENT("spacing of pins vertically in pins per inch")},
- {"Yc", 18 UNTIC_COMMENT("spacing of dots horizontally in dots per inch")},
- {"Yd", 19 UNTIC_COMMENT("maximum value in micro_..._address")},
- {"Ye", 20 UNTIC_COMMENT("maximum value in parm_..._micro")},
- {"Yf", 21 UNTIC_COMMENT("character size when in micro mode")},
- {"Yg", 22 UNTIC_COMMENT("line size when in micro mode")},
- {"Yh", 23 UNTIC_COMMENT("numbers of pins in print-head")},
- {"Yi", 24 UNTIC_COMMENT("horizontal resolution in units per line")},
- {"Yj", 25 UNTIC_COMMENT("vertical resolution in units per line")},
- {"Yk", 26 UNTIC_COMMENT("horizontal resolution in units per inch")},
- {"Yl", 27 UNTIC_COMMENT("vertical resolution in units per inch")},
- {"Ym", 28 UNTIC_COMMENT("print rate in chars per second")},
- {"Yn", 29 UNTIC_COMMENT("character step size when in double wide mode")},
- {"Yo", 31 UNTIC_COMMENT("number of passed for each bit-image row")},
- {"Yp", 32 UNTIC_COMMENT("type of bit-image device")},
- {"co", 0 UNTIC_COMMENT("number of columns in aline")},
- {"dB", 36 UNTIC_COMMENT("padding required for ^H")},
- {"dC", 34 UNTIC_COMMENT("pad needed for CR")},
- {"dN", 35 UNTIC_COMMENT("pad needed for LF")},
- {"dT", 37 UNTIC_COMMENT("padding required for ^I")},
- {"it", 1 UNTIC_COMMENT("tabs initially every # spaces")},
- {"kn", 38 UNTIC_COMMENT("count of function keys")},
- {"lh", 9 UNTIC_COMMENT("rows in each label")},
- {"li", 2 UNTIC_COMMENT("number of lines on screen or page")},
- {"lm", 3 UNTIC_COMMENT("lines of memory if > line. 0 => varies")},
- {"lw", 10 UNTIC_COMMENT("columns in each label")},
- {"ma", 11 UNTIC_COMMENT("maximum combined attributes terminal can handle")},
- {"pa", 14 UNTIC_COMMENT("maximum number of color-pairs on the screen")},
- {"pb", 5 UNTIC_COMMENT("lowest baud rate where padding needed")},
- {"sg", 4 UNTIC_COMMENT("number of blank chars left by smso or rmso")},
- {"ug", 33 UNTIC_COMMENT("number of blanks left by ul")},
- {"vt", 6 UNTIC_COMMENT("virtual terminal number (CB/unix)")},
- {"ws", 7 UNTIC_COMMENT("columns in status line")},
- {"", -1 UNTIC_COMMENT(NULL)}
-};
-
-int _SLtt_tigetnum (SLterminfo_Type *t, char *cap)
-{
- int offset;
-
- if (t == NULL)
- return -1;
-
- if (t->flags == SLTERMCAP) return tcap_getnum (cap, t);
-
- offset = compute_cap_offset (cap, t, Tgetnum_Map, t->num_numbers);
- if (offset < 0) return -1;
- return make_integer (t->numbers + 2 * offset);
-}
-
-static Tgetstr_Map_Type Tgetflag_Map[] =
-{
- {"5i", 22 UNTIC_COMMENT("printer won't echo on screen")},
- {"HC", 23 UNTIC_COMMENT("cursor is hard to see")},
- {"MT", 40 UNTIC_COMMENT("has meta key")},
- {"ND", 26 UNTIC_COMMENT("scrolling region is non-destructive")},
- {"NL", 41 UNTIC_COMMENT("move down with \n")},
- {"NP", 25 UNTIC_COMMENT("pad character does not exist")},
- {"NR", 24 UNTIC_COMMENT("smcup does not reverse rmcup")},
- {"YA", 30 UNTIC_COMMENT("only positive motion for hpa/mhpa caps")},
- {"YB", 31 UNTIC_COMMENT("using cr turns off micro mode")},
- {"YC", 32 UNTIC_COMMENT("printer needs operator to change character set")},
- {"YD", 33 UNTIC_COMMENT("only positive motion for vpa/mvpa caps")},
- {"YE", 34 UNTIC_COMMENT("printing in last column causes cr")},
- {"YF", 35 UNTIC_COMMENT("changing character pitch changes resolution")},
- {"YG", 36 UNTIC_COMMENT("changing line pitch changes resolution")},
- {"am", 1 UNTIC_COMMENT("terminal has automatic margins")},
- {"bs", 37 UNTIC_COMMENT("uses ^H to move left")},
- {"bw", 0 UNTIC_COMMENT("cub1 wraps from column 0 to last column")},
- {"cc", 27 UNTIC_COMMENT("terminal can re-define existing colors")},
- {"da", 11 UNTIC_COMMENT("display may be retained above the screen")},
- {"db", 12 UNTIC_COMMENT("display may be retained below the screen")},
- {"eo", 5 UNTIC_COMMENT("can erase overstrikes with a blank")},
- {"es", 16 UNTIC_COMMENT("escape can be used on the status line")},
- {"gn", 6 UNTIC_COMMENT("generic line type")},
- {"hc", 7 UNTIC_COMMENT("hardcopy terminal")},
- {"hl", 29 UNTIC_COMMENT("terminal uses only HLS color notation (tektronix)")},
- {"hs", 9 UNTIC_COMMENT("has extra status line")},
- {"hz", 18 UNTIC_COMMENT("can't print ~'s (hazeltine)")},
- {"in", 10 UNTIC_COMMENT("insert mode distinguishes nulls")},
- {"km", 8 UNTIC_COMMENT("Has a meta key, sets msb high")},
- {"mi", 13 UNTIC_COMMENT("safe to move while in insert mode")},
- {"ms", 14 UNTIC_COMMENT("safe to move while in standout mode")},
- {"nc", 39 UNTIC_COMMENT("no way to go to start of line")},
- {"ns", 38 UNTIC_COMMENT("crt cannot scroll")},
- {"nx", 21 UNTIC_COMMENT("padding won't work, xon/xoff required")},
- {"os", 15 UNTIC_COMMENT("terminal can overstrike")},
- {"pt", 42 UNTIC_COMMENT("has 8-char tabs invoked with ^I")},
- {"ul", 19 UNTIC_COMMENT("underline character overstrikes")},
- {"ut", 28 UNTIC_COMMENT("screen erased with background color")},
- {"xb", 2 UNTIC_COMMENT("beehive (f1=escape, f2=ctrl C)")},
- {"xn", 4 UNTIC_COMMENT("newline ignored after 80 cols (concept)")},
- {"xo", 20 UNTIC_COMMENT("terminal uses xon/xoff handshaking")},
- {"xr", 43 UNTIC_COMMENT("return clears the line")},
- {"xs", 3 UNTIC_COMMENT("standout not erased by overwriting (hp)")},
- {"xt", 17 UNTIC_COMMENT("tabs destructive, magic so char (t1061)")},
- {"", -1 UNTIC_COMMENT(NULL)}
-};
-
-int _SLtt_tigetflag (SLterminfo_Type *t, char *cap)
-{
- int offset;
-
- if (t == NULL) return -1;
-
- if (t->flags == SLTERMCAP) return tcap_getflag (cap, t);
-
- offset = compute_cap_offset (cap, t, Tgetflag_Map, t->boolean_section_size);
-
- if (offset < 0) return -1;
- return (int) *(t->boolean_flags + offset);
-}
-
-/* These are my termcap routines. They only work with the TERMCAP environment
- * variable. This variable must contain the termcap entry and NOT the file.
- */
-
-static int tcap_getflag (char *cap, SLterminfo_Type *t)
-{
- char a, b;
- char *f = (char *) t->boolean_flags;
- char *fmax;
-
- if (f == NULL) return 0;
- fmax = f + t->boolean_section_size;
-
- a = *cap;
- b = *(cap + 1);
- while (f < fmax)
- {
- if ((a == f[0]) && (b == f[1]))
- return 1;
- f += 2;
- }
- return 0;
-}
-
-static char *tcap_get_cap (unsigned char *cap, unsigned char *caps, unsigned int len)
-{
- unsigned char c0, c1;
- unsigned char *caps_max;
-
- c0 = cap[0];
- c1 = cap[1];
-
- if (caps == NULL) return NULL;
- caps_max = caps + len;
- while (caps < caps_max)
- {
- if ((c0 == caps[0]) && (c1 == caps[1]))
- {
- return (char *) caps + 3;
- }
- caps += (int) caps[2];
- }
- return NULL;
-}
-
-static int tcap_getnum (char *cap, SLterminfo_Type *t)
-{
- cap = tcap_get_cap ((unsigned char *) cap, t->numbers, t->num_numbers);
- if (cap == NULL) return -1;
- return atoi (cap);
-}
-
-static char *tcap_getstr (char *cap, SLterminfo_Type *t)
-{
- return tcap_get_cap ((unsigned char *) cap, (unsigned char *) t->string_table, t->string_table_size);
-}
-
-static int tcap_extract_field (unsigned char *t0)
-{
- register unsigned char ch, *t = t0;
- while (((ch = *t) != 0) && (ch != ':')) t++;
- if (ch == ':') return (int) (t - t0);
- return -1;
-}
-
-int SLtt_Try_Termcap = 1;
-static int tcap_getent (char *term, SLterminfo_Type *ti)
-{
- unsigned char *termcap, ch;
- unsigned char *buf, *b;
- unsigned char *t;
- int len;
-
- if (SLtt_Try_Termcap == 0) return -1;
-#if 1
- /* XFREE86 xterm sets the TERMCAP environment variable to an invalid
- * value. Specifically, it lacks the tc= string.
- */
- if (!strncmp (term, "xterm", 5))
- return -1;
-#endif
- termcap = (unsigned char *) getenv ("TERMCAP");
- if ((termcap == NULL) || (*termcap == '/')) return -1;
-
- /* We have a termcap so lets use it provided it does not have a reference
- * to another terminal via tc=. In that case, use terminfo. The alternative
- * would be to parse the termcap file which I do not want to do right now.
- * Besides, this is a terminfo based system and if the termcap were parsed
- * terminfo would almost never get a chance to run. In addition, the tc=
- * thing should not occur if tset is used to set the termcap entry.
- */
- t = termcap;
- while ((len = tcap_extract_field (t)) != -1)
- {
- if ((len > 3) && (t[0] == 't') && (t[1] == 'c') && (t[2] == '='))
- return -1;
- t += (len + 1);
- }
-
- /* malloc some extra space just in case it is needed. */
- len = strlen ((char *) termcap) + 256;
- if (NULL == (buf = (unsigned char *) SLmalloc ((unsigned int) len))) return -1;
-
- b = buf;
-
- /* The beginning of the termcap entry contains the names of the entry.
- * It is terminated by a colon.
- */
-
- ti->terminal_names = (char *) b;
- t = termcap;
- len = tcap_extract_field (t);
- if (len < 0)
- {
- SLfree ((char *)buf);
- return -1;
- }
- strncpy ((char *) b, (char *) t, (unsigned int) len);
- b[len] = 0;
- b += len + 1;
- ti->name_section_size = len;
-
- /* Now, we are really at the start of the termcap entries. Point the
- * termcap variable here since we want to refer to this a number of times.
- */
- termcap = t + (len + 1);
-
- /* Process strings first. */
- ti->string_table = (char *) b;
- t = termcap;
- while (-1 != (len = tcap_extract_field (t)))
- {
- unsigned char *b1;
- unsigned char *tmax;
-
- /* We are looking for: XX=something */
- if ((len < 4) || (t[2] != '=') || (*t == '.'))
- {
- t += len + 1;
- continue;
- }
- tmax = t + len;
- b1 = b;
-
- while (t < tmax)
- {
- ch = *t++;
- if ((ch == '\\') && (t < tmax))
- {
- t = (unsigned char *) _SLexpand_escaped_char ((char *) t, (char *) &ch);
- }
- else if ((ch == '^') && (t < tmax))
- {
- ch = *t++;
- if (ch == '?') ch = 127;
- else ch = (ch | 0x20) - ('a' - 1);
- }
- *b++ = ch;
- }
- /* Null terminate it. */
- *b++ = 0;
- len = (int) (b - b1);
- b1[2] = (unsigned char) len; /* replace the = by the length */
- /* skip colon to next field. */
- t++;
- }
- ti->string_table_size = (int) (b - (unsigned char *) ti->string_table);
-
- /* Now process the numbers. */
-
- t = termcap;
- ti->numbers = b;
- while (-1 != (len = tcap_extract_field (t)))
- {
- unsigned char *b1;
- unsigned char *tmax;
-
- /* We are looking for: XX#NUMBER */
- if ((len < 4) || (t[2] != '#') || (*t == '.'))
- {
- t += len + 1;
- continue;
- }
- tmax = t + len;
- b1 = b;
-
- while (t < tmax)
- {
- *b++ = *t++;
- }
- /* Null terminate it. */
- *b++ = 0;
- len = (int) (b - b1);
- b1[2] = (unsigned char) len; /* replace the # by the length */
- t++;
- }
- ti->num_numbers = (int) (b - ti->numbers);
-
- /* Now process the flags. */
- t = termcap;
- ti->boolean_flags = b;
- while (-1 != (len = tcap_extract_field (t)))
- {
- /* We are looking for: XX#NUMBER */
- if ((len != 2) || (*t == '.') || (*t <= ' '))
- {
- t += len + 1;
- continue;
- }
- b[0] = t[0];
- b[1] = t[1];
- t += 3;
- b += 2;
- }
- ti->boolean_section_size = (int) (b - ti->boolean_flags);
- ti->flags = SLTERMCAP;
- return 0;
-}
-
-
-/* These routines are provided only for backward binary compatability.
- * They will vanish in V2.x
- */
-char *SLtt_tigetent (char *s)
-{
- return (char *) _SLtt_tigetent (s);
-}
-
-extern char *SLtt_tigetstr (char *s, char **p)
-{
- if (p == NULL)
- return NULL;
- return _SLtt_tigetstr ((SLterminfo_Type *) *p, s);
-}
-
-extern int SLtt_tigetnum (char *s, char **p)
-{
- if (p == NULL)
- return -1;
- return _SLtt_tigetnum ((SLterminfo_Type *) *p, s);
-}
-
-
diff --git a/mdk-stage1/slang/sltime.c b/mdk-stage1/slang/sltime.c
deleted file mode 100644
index 14fc6ec16..000000000
--- a/mdk-stage1/slang/sltime.c
+++ /dev/null
@@ -1,310 +0,0 @@
-/* time related system calls */
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#include <sys/types.h>
-#include <time.h>
-
-#if defined(__BORLANDC__)
-# include <dos.h>
-#endif
-#if defined(__GO32__) || defined(__WATCOMC__)
-# include <dos.h>
-# include <bios.h>
-#endif
-
-#include <errno.h>
-
-#include "slang.h"
-#include "_slang.h"
-
-#ifdef __WIN32__
-#include <windows.h>
-/* Sleep is defined badly in MSVC... */
-# ifdef _MSC_VER
-# define sleep(n) _sleep((n)*1000)
-# else
-# ifdef sleep
-# undef sleep
-# endif
-# define sleep(x) if(x)Sleep((x)*1000)
-# endif
-#endif
-
-
-#if defined(IBMPC_SYSTEM)
-/* For other system (Unix and VMS), _SLusleep is in sldisply.c */
-int _SLusleep (unsigned long s)
-{
- sleep (s/1000000L);
- s = s % 1000000L;
-
-# if defined(__WIN32__)
- Sleep (s/1000);
-#else
-# if defined(__IBMC__)
- DosSleep(s/1000);
-# else
-# if defined(_MSC_VER)
- _sleep (s/1000);
-# endif
-# endif
-#endif
- return 0;
-}
-#endif
-
-#if defined(__IBMC__) && !defined(_AIX)
-/* sleep is not a standard function in VA3. */
-unsigned int sleep (unsigned int seconds)
-{
- DosSleep(1000L * ((long)seconds));
- return 0;
-}
-#endif
-
-static char *ctime_cmd (unsigned long *tt)
-{
- char *t;
-
- t = ctime ((time_t *) tt);
- t[24] = 0; /* knock off \n */
- return (t);
-}
-
-static void sleep_cmd (void)
-{
- unsigned int secs;
-#if SLANG_HAS_FLOAT
- unsigned long usecs;
- double x;
-
- if (-1 == SLang_pop_double (&x, NULL, NULL))
- return;
-
- if (x < 0.0)
- x = 0.0;
- secs = (unsigned int) x;
- sleep (secs);
- x -= (double) secs;
- usecs = (unsigned long) (1e6 * x);
- if (usecs > 0) _SLusleep (usecs);
-#else
- if (-1 == SLang_pop_uinteger (&secs))
- return;
- if (secs != 0) sleep (secs);
-#endif
-}
-
-static unsigned long _time_cmd (void)
-{
- return (unsigned long) time (NULL);
-}
-
-#if defined(__GO32__)
-static char *djgpp_current_time (void) /*{{{*/
-{
- union REGS rg;
- unsigned int year;
- unsigned char month, day, weekday, hour, minute, sec;
- char days[] = "SunMonTueWedThuFriSat";
- char months[] = "JanFebMarAprMayJunJulAugSepOctNovDec";
- static char the_date[26];
-
- rg.h.ah = 0x2A;
-#ifndef __WATCOMC__
- int86(0x21, &rg, &rg);
- year = rg.x.cx & 0xFFFF;
-#else
- int386(0x21, &rg, &rg);
- year = rg.x.ecx & 0xFFFF;
-#endif
-
- month = 3 * (rg.h.dh - 1);
- day = rg.h.dl;
- weekday = 3 * rg.h.al;
-
- rg.h.ah = 0x2C;
-
-#ifndef __WATCOMC__
- int86(0x21, &rg, &rg);
-#else
- int386(0x21, &rg, &rg);
-#endif
-
- hour = rg.h.ch;
- minute = rg.h.cl;
- sec = rg.h.dh;
-
- /* we want this form: Thu Apr 14 15:43:39 1994\n */
- sprintf(the_date, "%.3s %.3s%3d %02d:%02d:%02d %d\n",
- days + weekday, months + month,
- day, hour, minute, sec, year);
- return the_date;
-}
-
-/*}}}*/
-
-#endif
-
-char *SLcurrent_time_string (void) /*{{{*/
-{
- char *the_time;
-#ifndef __GO32__
- time_t myclock;
-
- myclock = time((time_t *) 0);
- the_time = (char *) ctime(&myclock);
-#else
- the_time = djgpp_current_time ();
-#endif
- /* returns the form Sun Sep 16 01:03:52 1985\n\0 */
- the_time[24] = '\0';
- return(the_time);
-}
-
-/*}}}*/
-
-static int push_tm_struct (struct tm *tms)
-{
- char *field_names [9];
- unsigned char field_types[9];
- VOID_STAR field_values [9];
- int int_values [9];
- unsigned int i;
-
- if (tms == NULL)
- return SLang_push_null ();
-
- field_names [0] = "tm_sec"; int_values [0] = tms->tm_sec;
- field_names [1] = "tm_min"; int_values [1] = tms->tm_min;
- field_names [2] = "tm_hour"; int_values [2] = tms->tm_hour;
- field_names [3] = "tm_mday"; int_values [3] = tms->tm_mday;
- field_names [4] = "tm_mon"; int_values [4] = tms->tm_mon;
- field_names [5] = "tm_year"; int_values [5] = tms->tm_year;
- field_names [6] = "tm_wday"; int_values [6] = tms->tm_wday;
- field_names [7] = "tm_yday"; int_values [7] = tms->tm_yday;
- field_names [8] = "tm_isdst"; int_values [8] = tms->tm_isdst;
-
- for (i = 0; i < 9; i++)
- {
- field_types [i] = SLANG_INT_TYPE;
- field_values [i] = (VOID_STAR) (int_values + i);
- }
-
- return SLstruct_create_struct (9, field_names, field_types, field_values);
-}
-
-
-static void localtime_cmd (long *t)
-{
- time_t tt = (time_t) *t;
- (void) push_tm_struct (localtime (&tt));
-}
-
-static void gmtime_cmd (long *t)
-{
-#ifdef HAVE_GMTIME
- time_t tt = (time_t) *t;
- (void) push_tm_struct (gmtime (&tt));
-#else
- localtime_cmd (t);
-#endif
-}
-
-#ifdef HAVE_TIMES
-
-# ifdef HAVE_SYS_TIMES_H
-# include <sys/times.h>
-# endif
-
-#include <limits.h>
-
-#ifdef CLK_TCK
-# define SECS_PER_TICK (1.0/(double)CLK_TCK)
-#else
-# ifdef CLOCKS_PER_SEC
-# define SECS_PER_TICK (1.0/(double)CLOCKS_PER_SEC)
-# else
-# define SECS_PER_TICK (1.0/60.0)
-# endif
-#endif
-
-static void times_cmd (void)
-{
- double dvals[4];
- struct tms t;
- VOID_STAR field_values[4];
- char *field_names[4];
- unsigned int i;
- unsigned char field_types[4];
-
- (void) times (&t);
-
- field_names[0] = "tms_utime"; dvals[0] = (double)t.tms_utime;
- field_names[1] = "tms_stime"; dvals[1] = (double)t.tms_stime;
- field_names[2] = "tms_cutime"; dvals[2] = (double)t.tms_cutime;
- field_names[3] = "tms_cstime"; dvals[3] = (double)t.tms_cstime;
-
- for (i = 0; i < 4; i++)
- {
- dvals[i] *= SECS_PER_TICK;
- field_values[i] = (VOID_STAR) &dvals[i];
- field_types[i] = SLANG_DOUBLE_TYPE;
- }
- (void) SLstruct_create_struct (4, field_names, field_types, field_values);
-}
-
-static struct tms Tic_TMS;
-
-static void tic_cmd (void)
-{
- (void) times (&Tic_TMS);
-}
-
-static double toc_cmd (void)
-{
- struct tms t;
- double d;
-
- (void) times (&t);
- d = ((t.tms_utime - Tic_TMS.tms_utime)
- + (t.tms_stime - Tic_TMS.tms_stime)) * SECS_PER_TICK;
- Tic_TMS = t;
- return d;
-}
-
-#endif /* HAVE_TIMES */
-
-
-static SLang_Intrin_Fun_Type Time_Funs_Table [] =
-{
- MAKE_INTRINSIC_1("ctime", ctime_cmd, SLANG_STRING_TYPE, SLANG_ULONG_TYPE),
- MAKE_INTRINSIC_0("sleep", sleep_cmd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_0("_time", _time_cmd, SLANG_ULONG_TYPE),
- MAKE_INTRINSIC_0("time", SLcurrent_time_string, SLANG_STRING_TYPE),
- MAKE_INTRINSIC_1("localtime", localtime_cmd, SLANG_VOID_TYPE, SLANG_LONG_TYPE),
- MAKE_INTRINSIC_1("gmtime", gmtime_cmd, SLANG_VOID_TYPE, SLANG_LONG_TYPE),
-
-#ifdef HAVE_TIMES
- MAKE_INTRINSIC_0("times", times_cmd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_0("tic", tic_cmd, SLANG_VOID_TYPE),
- MAKE_INTRINSIC_0("toc", toc_cmd, SLANG_DOUBLE_TYPE),
-#endif
- SLANG_END_INTRIN_FUN_TABLE
-};
-
-int _SLang_init_sltime (void)
-{
-#ifdef HAVE_TIMES
- (void) tic_cmd ();
-#endif
- return SLadd_intrin_fun_table (Time_Funs_Table, NULL);
-}
-
diff --git a/mdk-stage1/slang/sltoken.c b/mdk-stage1/slang/sltoken.c
deleted file mode 100644
index c9852e68a..000000000
--- a/mdk-stage1/slang/sltoken.c
+++ /dev/null
@@ -1,1702 +0,0 @@
-/* Copyright (c) 1998, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-#include "slinclud.h"
-
-#include "slang.h"
-#include "_slang.h"
-
-#define MAX_TOKEN_LEN 254
-#define MAX_FILE_LINE_LEN 256
-
-static char Empty_Line[1] = {0};
-
-static int Default_Compile_Line_Num_Info;
-static char *Input_Line = Empty_Line;
-static char *Input_Line_Pointer;
-
-static SLPreprocess_Type *This_SLpp;
-
-static SLang_Load_Type *LLT;
-
-static char *map_token_to_string (_SLang_Token_Type *tok)
-{
- char *s;
- static char numbuf [32];
- unsigned char type;
- s = NULL;
-
- if (tok != NULL) type = tok->type;
- else type = 0;
-
- switch (type)
- {
- case 0:
- s = "??";
- break;
-
- case CHAR_TOKEN:
- case SHORT_TOKEN:
- case INT_TOKEN:
- case LONG_TOKEN:
- s = numbuf;
- sprintf (s, "%ld", tok->v.long_val);
- break;
-
- case UCHAR_TOKEN:
- case USHORT_TOKEN:
- case UINT_TOKEN:
- case ULONG_TOKEN:
- s = numbuf;
- sprintf (s, "%lu", (unsigned long)tok->v.long_val);
- break;
-
- case OBRACKET_TOKEN: s = "["; break;
- case CBRACKET_TOKEN: s = "]"; break;
- case OPAREN_TOKEN: s = "("; break;
- case CPAREN_TOKEN: s = ")"; break;
- case OBRACE_TOKEN: s = "{"; break;
- case CBRACE_TOKEN: s = "}"; break;
- case DEREF_TOKEN: s = "@"; break;
- case POUND_TOKEN: s = "#"; break;
- case COMMA_TOKEN: s = ","; break;
- case SEMICOLON_TOKEN: s = ";"; break;
- case COLON_TOKEN: s = ":"; break;
-
-#if SLANG_HAS_FLOAT
- case FLOAT_TOKEN:
- case DOUBLE_TOKEN:
- case COMPLEX_TOKEN:
-#endif
- case IDENT_TOKEN:
- if ((tok->free_sval_flag == 0) || (tok->num_refs == 0))
- break;
- /* drop */
- default:
- s = tok->v.s_val;
- break;
- }
-
- if (s == NULL)
- {
- s = numbuf;
- sprintf (s, "(0x%02X)", type);
- }
-
- return s;
-}
-
-static char *make_line_file_error (char *buf, unsigned int buflen,
- _SLang_Token_Type *tok, char *dsc, int line, char *file)
-{
-#if _SLANG_HAS_DEBUG_CODE
- if (tok != NULL) line = tok->line_number;
-#endif
- if (file == NULL) file = "??";
-
- (void) _SLsnprintf (buf, buflen, "%s: found '%s', line %d, file: %s",
- dsc, map_token_to_string (tok), line, file);
-
- return buf;
-}
-
-void _SLparse_error(char *str, _SLang_Token_Type *tok, int flag)
-{
- char buf [1024];
-
- if (str == NULL)
- str = "Parse Error";
-
- make_line_file_error (buf, sizeof (buf), tok, str, LLT->line_num, (char *) LLT->name);
-
- if ((flag == 0) && SLang_Error)
- return;
-
- SLang_verror (SL_SYNTAX_ERROR, "%s", buf);
-}
-
-static void do_line_file_error (int line, char *file)
-{
- SLang_verror (SL_SYNTAX_ERROR,
- "called from line %d, file: %s", line, file);
-}
-
-#define ALPHA_CHAR 1
-#define DIGIT_CHAR 2
-#define EXCL_CHAR 3
-#define SEP_CHAR 4
-#define OP_CHAR 5
-#define DOT_CHAR 6
-#define BOLDOT_CHAR 7
-#define DQUOTE_CHAR 8
-#define QUOTE_CHAR 9
-#define COMMENT_CHAR 10
-#define NL_CHAR 11
-#define BAD_CHAR 12
-#define WHITE_CHAR 13
-
-#define CHAR_EOF 255
-
-#define CHAR_CLASS(c) (Char_Type_Table[(c)][0])
-#define CHAR_DATA(c) (Char_Type_Table[(c)][1])
-
-/* In this table, if a single character can represent an operator, e.g.,
- * '&' (BAND_TOKEN), then it must be placed before multiple-character
- * operators that begin with the same character, e.g., "&=". See
- * get_op_token to see how this is exploited.
- *
- * The third character null terminates the operator string. This is for
- * the token structure.
- */
-static char Operators [29][4] =
-{
-#define OFS_EXCL 0
- {'!', '=', 0, NE_TOKEN},
-#define OFS_POUND 1
- {'#', 0, 0, POUND_TOKEN},
-#define OFS_BAND 2
- {'&', 0, 0, BAND_TOKEN},
- {'&', '&', 0, EOF_TOKEN},
- {'&', '=', 0, BANDEQS_TOKEN},
-#define OFS_STAR 5
- {'*', 0, 0, TIMES_TOKEN},
- {'*', '=', 0, TIMESEQS_TOKEN},
-#define OFS_PLUS 7
- {'+', 0, 0, ADD_TOKEN},
- {'+', '+', 0, PLUSPLUS_TOKEN},
- {'+', '=', 0, PLUSEQS_TOKEN},
-#define OFS_MINUS 10
- {'-', 0, 0, SUB_TOKEN},
- {'-', '-', 0, MINUSMINUS_TOKEN},
- {'-', '=', 0, MINUSEQS_TOKEN},
- {'-', '>', 0, NAMESPACE_TOKEN},
-#define OFS_DIV 14
- {'/', 0, 0, DIV_TOKEN},
- {'/', '=', 0, DIVEQS_TOKEN},
-#define OFS_LT 16
- {'<', 0, 0, LT_TOKEN},
- {'<', '=', 0, LE_TOKEN},
-#define OFS_EQS 18
- {'=', 0, 0, ASSIGN_TOKEN},
- {'=', '=', 0, EQ_TOKEN},
-#define OFS_GT 20
- {'>', 0, 0, GT_TOKEN},
- {'>', '=', 0, GE_TOKEN},
-#define OFS_AT 22
- {'@', 0, 0, DEREF_TOKEN},
-#define OFS_POW 23
- {'^', 0, 0, POW_TOKEN},
-#define OFS_BOR 24
- {'|', 0, 0, BOR_TOKEN},
- {'|', '|', 0, EOF_TOKEN},
- {'|', '=', 0, BOREQS_TOKEN},
-#define OFS_BNOT 27
- {'~', 0, 0, BNOT_TOKEN},
- { 0, 0, 0, EOF_TOKEN}
-};
-
-static unsigned char Char_Type_Table[256][2] =
-{
- { NL_CHAR, 0 }, /* 0x0 */ { BAD_CHAR, 0 }, /* 0x1 */
- { BAD_CHAR, 0 }, /* 0x2 */ { BAD_CHAR, 0 }, /* 0x3 */
- { BAD_CHAR, 0 }, /* 0x4 */ { BAD_CHAR, 0 }, /* 0x5 */
- { BAD_CHAR, 0 }, /* 0x6 */ { BAD_CHAR, 0 }, /* 0x7 */
- { WHITE_CHAR, 0 }, /* 0x8 */ { WHITE_CHAR, 0 }, /* 0x9 */
- { NL_CHAR, 0 }, /* \n */ { WHITE_CHAR, 0 }, /* 0xb */
- { WHITE_CHAR, 0 }, /* 0xc */ { WHITE_CHAR, 0 }, /* \r */
- { BAD_CHAR, 0 }, /* 0xe */ { BAD_CHAR, 0 }, /* 0xf */
- { BAD_CHAR, 0 }, /* 0x10 */ { BAD_CHAR, 0 }, /* 0x11 */
- { BAD_CHAR, 0 }, /* 0x12 */ { BAD_CHAR, 0 }, /* 0x13 */
- { BAD_CHAR, 0 }, /* 0x14 */ { BAD_CHAR, 0 }, /* 0x15 */
- { BAD_CHAR, 0 }, /* 0x16 */ { BAD_CHAR, 0 }, /* 0x17 */
- { BAD_CHAR, 0 }, /* 0x18 */ { BAD_CHAR, 0 }, /* 0x19 */
- { BAD_CHAR, 0 }, /* 0x1a */ { BAD_CHAR, 0 }, /* 0x1b */
- { BAD_CHAR, 0 }, /* 0x1c */ { BAD_CHAR, 0 }, /* 0x1d */
- { BAD_CHAR, 0 }, /* 0x1e */ { BAD_CHAR, 0 }, /* 0x1f */
- { WHITE_CHAR, 0 }, /* 0x20 */ { EXCL_CHAR, OFS_EXCL }, /* ! */
- { DQUOTE_CHAR, 0 }, /* " */ { OP_CHAR, OFS_POUND }, /* # */
- { ALPHA_CHAR, 0 }, /* $ */ { NL_CHAR, 0 },/* % */
- { OP_CHAR, OFS_BAND }, /* & */ { QUOTE_CHAR, 0 }, /* ' */
- { SEP_CHAR, OPAREN_TOKEN }, /* ( */ { SEP_CHAR, CPAREN_TOKEN }, /* ) */
- { OP_CHAR, OFS_STAR }, /* * */ { OP_CHAR, OFS_PLUS}, /* + */
- { SEP_CHAR, COMMA_TOKEN }, /* , */ { OP_CHAR, OFS_MINUS }, /* - */
- { DOT_CHAR, 0 }, /* . */ { OP_CHAR, OFS_DIV }, /* / */
- { DIGIT_CHAR, 0 }, /* 0 */ { DIGIT_CHAR, 0 }, /* 1 */
- { DIGIT_CHAR, 0 }, /* 2 */ { DIGIT_CHAR, 0 }, /* 3 */
- { DIGIT_CHAR, 0 }, /* 4 */ { DIGIT_CHAR, 0 }, /* 5 */
- { DIGIT_CHAR, 0 }, /* 6 */ { DIGIT_CHAR, 0 }, /* 7 */
- { DIGIT_CHAR, 0 }, /* 8 */ { DIGIT_CHAR, 0 }, /* 9 */
- { SEP_CHAR, COLON_TOKEN }, /* : */ { SEP_CHAR, SEMICOLON_TOKEN }, /* ; */
- { OP_CHAR, OFS_LT }, /* < */ { OP_CHAR, OFS_EQS }, /* = */
- { OP_CHAR, OFS_GT }, /* > */ { BAD_CHAR, 0 }, /* ? */
- { OP_CHAR, OFS_AT}, /* @ */ { ALPHA_CHAR, 0 }, /* A */
- { ALPHA_CHAR, 0 }, /* B */ { ALPHA_CHAR, 0 }, /* C */
- { ALPHA_CHAR, 0 }, /* D */ { ALPHA_CHAR, 0 }, /* E */
- { ALPHA_CHAR, 0 }, /* F */ { ALPHA_CHAR, 0 }, /* G */
- { ALPHA_CHAR, 0 }, /* H */ { ALPHA_CHAR, 0 }, /* I */
- { ALPHA_CHAR, 0 }, /* J */ { ALPHA_CHAR, 0 }, /* K */
- { ALPHA_CHAR, 0 }, /* L */ { ALPHA_CHAR, 0 }, /* M */
- { ALPHA_CHAR, 0 }, /* N */ { ALPHA_CHAR, 0 }, /* O */
- { ALPHA_CHAR, 0 }, /* P */ { ALPHA_CHAR, 0 }, /* Q */
- { ALPHA_CHAR, 0 }, /* R */ { ALPHA_CHAR, 0 }, /* S */
- { ALPHA_CHAR, 0 }, /* T */ { ALPHA_CHAR, 0 }, /* U */
- { ALPHA_CHAR, 0 }, /* V */ { ALPHA_CHAR, 0 }, /* W */
- { ALPHA_CHAR, 0 }, /* X */ { ALPHA_CHAR, 0 }, /* Y */
- { ALPHA_CHAR, 0 }, /* Z */ { SEP_CHAR, OBRACKET_TOKEN }, /* [ */
- { BAD_CHAR, 0 }, /* \ */ { SEP_CHAR, CBRACKET_TOKEN }, /* ] */
- { OP_CHAR, OFS_POW }, /* ^ */ { ALPHA_CHAR, 0 }, /* _ */
- { BAD_CHAR, 0 }, /* ` */ { ALPHA_CHAR, 0 }, /* a */
- { ALPHA_CHAR, 0 }, /* b */ { ALPHA_CHAR, 0 }, /* c */
- { ALPHA_CHAR, 0 }, /* d */ { ALPHA_CHAR, 0 }, /* e */
- { ALPHA_CHAR, 0 }, /* f */ { ALPHA_CHAR, 0 }, /* g */
- { ALPHA_CHAR, 0 }, /* h */ { ALPHA_CHAR, 0 }, /* i */
- { ALPHA_CHAR, 0 }, /* j */ { ALPHA_CHAR, 0 }, /* k */
- { ALPHA_CHAR, 0 }, /* l */ { ALPHA_CHAR, 0 }, /* m */
- { ALPHA_CHAR, 0 }, /* n */ { ALPHA_CHAR, 0 }, /* o */
- { ALPHA_CHAR, 0 }, /* p */ { ALPHA_CHAR, 0 }, /* q */
- { ALPHA_CHAR, 0 }, /* r */ { ALPHA_CHAR, 0 }, /* s */
- { ALPHA_CHAR, 0 }, /* t */ { ALPHA_CHAR, 0 }, /* u */
- { ALPHA_CHAR, 0 }, /* v */ { ALPHA_CHAR, 0 }, /* w */
- { ALPHA_CHAR, 0 }, /* x */ { ALPHA_CHAR, 0 }, /* y */
- { ALPHA_CHAR, 0 }, /* z */ { SEP_CHAR, OBRACE_TOKEN }, /* { */
- { OP_CHAR, OFS_BOR }, /* | */ { SEP_CHAR, CBRACE_TOKEN }, /* } */
- { OP_CHAR, OFS_BNOT }, /* ~ */ { BAD_CHAR, 0 }, /* 0x7f */
-
- { ALPHA_CHAR, 0 }, /* € */ { ALPHA_CHAR, 0 }, /*  */
- { ALPHA_CHAR, 0 }, /* ‚ */ { ALPHA_CHAR, 0 }, /* ƒ */
- { ALPHA_CHAR, 0 }, /* „ */ { ALPHA_CHAR, 0 }, /* … */
- { ALPHA_CHAR, 0 }, /* † */ { ALPHA_CHAR, 0 }, /* ‡ */
- { ALPHA_CHAR, 0 }, /* ˆ */ { ALPHA_CHAR, 0 }, /* ‰ */
- { ALPHA_CHAR, 0 }, /* Š */ { ALPHA_CHAR, 0 }, /* ‹ */
- { ALPHA_CHAR, 0 }, /* Œ */ { ALPHA_CHAR, 0 }, /*  */
- { ALPHA_CHAR, 0 }, /* Ž */ { ALPHA_CHAR, 0 }, /*  */
- { ALPHA_CHAR, 0 }, /*  */ { ALPHA_CHAR, 0 }, /* ‘ */
- { ALPHA_CHAR, 0 }, /* ’ */ { ALPHA_CHAR, 0 }, /* “ */
- { ALPHA_CHAR, 0 }, /* ” */ { ALPHA_CHAR, 0 }, /* • */
- { ALPHA_CHAR, 0 }, /* – */ { ALPHA_CHAR, 0 }, /* — */
- { ALPHA_CHAR, 0 }, /* ˜ */ { ALPHA_CHAR, 0 }, /* ™ */
- { ALPHA_CHAR, 0 }, /* š */ { ALPHA_CHAR, 0 }, /* › */
- { ALPHA_CHAR, 0 }, /* œ */ { ALPHA_CHAR, 0 }, /*  */
- { ALPHA_CHAR, 0 }, /* ž */ { ALPHA_CHAR, 0 }, /* Ÿ */
- { ALPHA_CHAR, 0 }, /*   */ { ALPHA_CHAR, 0 }, /* ¡ */
- { ALPHA_CHAR, 0 }, /* ¢ */ { ALPHA_CHAR, 0 }, /* £ */
- { ALPHA_CHAR, 0 }, /* ¤ */ { ALPHA_CHAR, 0 }, /* ¥ */
- { ALPHA_CHAR, 0 }, /* ¦ */ { ALPHA_CHAR, 0 }, /* § */
- { ALPHA_CHAR, 0 }, /* ¨ */ { ALPHA_CHAR, 0 }, /* © */
- { ALPHA_CHAR, 0 }, /* ª */ { ALPHA_CHAR, 0 }, /* « */
- { ALPHA_CHAR, 0 }, /* ¬ */ { ALPHA_CHAR, 0 }, /* ­ */
- { ALPHA_CHAR, 0 }, /* ® */ { ALPHA_CHAR, 0 }, /* ¯ */
- { ALPHA_CHAR, 0 }, /* ° */ { ALPHA_CHAR, 0 }, /* ± */
- { ALPHA_CHAR, 0 }, /* ² */ { ALPHA_CHAR, 0 }, /* ³ */
- { ALPHA_CHAR, 0 }, /* ´ */ { ALPHA_CHAR, 0 }, /* µ */
- { ALPHA_CHAR, 0 }, /* ¶ */ { ALPHA_CHAR, 0 }, /* · */
- { ALPHA_CHAR, 0 }, /* ¸ */ { ALPHA_CHAR, 0 }, /* ¹ */
- { ALPHA_CHAR, 0 }, /* º */ { ALPHA_CHAR, 0 }, /* » */
- { ALPHA_CHAR, 0 }, /* ¼ */ { ALPHA_CHAR, 0 }, /* ½ */
- { ALPHA_CHAR, 0 }, /* ¾ */ { ALPHA_CHAR, 0 }, /* ¿ */
- { ALPHA_CHAR, 0 }, /* À */ { ALPHA_CHAR, 0 }, /* Á */
- { ALPHA_CHAR, 0 }, /* Â */ { ALPHA_CHAR, 0 }, /* Ã */
- { ALPHA_CHAR, 0 }, /* Ä */ { ALPHA_CHAR, 0 }, /* Å */
- { ALPHA_CHAR, 0 }, /* Æ */ { ALPHA_CHAR, 0 }, /* Ç */
- { ALPHA_CHAR, 0 }, /* È */ { ALPHA_CHAR, 0 }, /* É */
- { ALPHA_CHAR, 0 }, /* Ê */ { ALPHA_CHAR, 0 }, /* Ë */
- { ALPHA_CHAR, 0 }, /* Ì */ { ALPHA_CHAR, 0 }, /* Í */
- { ALPHA_CHAR, 0 }, /* Î */ { ALPHA_CHAR, 0 }, /* Ï */
- { ALPHA_CHAR, 0 }, /* Ð */ { ALPHA_CHAR, 0 }, /* Ñ */
- { ALPHA_CHAR, 0 }, /* Ò */ { ALPHA_CHAR, 0 }, /* Ó */
- { ALPHA_CHAR, 0 }, /* Ô */ { ALPHA_CHAR, 0 }, /* Õ */
- { ALPHA_CHAR, 0 }, /* Ö */ { ALPHA_CHAR, 0 }, /* × */
- { ALPHA_CHAR, 0 }, /* Ø */ { ALPHA_CHAR, 0 }, /* Ù */
- { ALPHA_CHAR, 0 }, /* Ú */ { ALPHA_CHAR, 0 }, /* Û */
- { ALPHA_CHAR, 0 }, /* Ü */ { ALPHA_CHAR, 0 }, /* Ý */
- { ALPHA_CHAR, 0 }, /* Þ */ { ALPHA_CHAR, 0 }, /* ß */
- { ALPHA_CHAR, 0 }, /* à */ { ALPHA_CHAR, 0 }, /* á */
- { ALPHA_CHAR, 0 }, /* â */ { ALPHA_CHAR, 0 }, /* ã */
- { ALPHA_CHAR, 0 }, /* ä */ { ALPHA_CHAR, 0 }, /* å */
- { ALPHA_CHAR, 0 }, /* æ */ { ALPHA_CHAR, 0 }, /* ç */
- { ALPHA_CHAR, 0 }, /* è */ { ALPHA_CHAR, 0 }, /* é */
- { ALPHA_CHAR, 0 }, /* ê */ { ALPHA_CHAR, 0 }, /* ë */
- { ALPHA_CHAR, 0 }, /* ì */ { ALPHA_CHAR, 0 }, /* í */
- { ALPHA_CHAR, 0 }, /* î */ { ALPHA_CHAR, 0 }, /* ï */
- { ALPHA_CHAR, 0 }, /* ð */ { ALPHA_CHAR, 0 }, /* ñ */
- { ALPHA_CHAR, 0 }, /* ò */ { ALPHA_CHAR, 0 }, /* ó */
- { ALPHA_CHAR, 0 }, /* ô */ { ALPHA_CHAR, 0 }, /* õ */
- { ALPHA_CHAR, 0 }, /* ö */ { ALPHA_CHAR, 0 }, /* ÷ */
- { ALPHA_CHAR, 0 }, /* ø */ { ALPHA_CHAR, 0 }, /* ù */
- { ALPHA_CHAR, 0 }, /* ú */ { ALPHA_CHAR, 0 }, /* û */
- { ALPHA_CHAR, 0 }, /* ü */ { ALPHA_CHAR, 0 }, /* ý */
- { ALPHA_CHAR, 0 }, /* þ */ { ALPHA_CHAR, 0 }, /* ÿ */
-};
-
-int _SLcheck_identifier_syntax (char *name)
-{
- unsigned char *p;
-
- p = (unsigned char *) name;
- if (ALPHA_CHAR == Char_Type_Table[*p][0]) while (1)
- {
- unsigned ch;
- unsigned char type;
-
- ch = *++p;
-
- type = Char_Type_Table [ch][0];
- if ((type != ALPHA_CHAR) && (type != DIGIT_CHAR))
- {
- if (ch == 0)
- return 0;
- break;
- }
- }
-
- SLang_verror (SL_SYNTAX_ERROR,
- "Name %s contains an illegal character", name);
- return -1;
-}
-
-static unsigned char prep_get_char (void)
-{
- register unsigned char ch;
-
- if (0 != (ch = *Input_Line_Pointer++))
- return ch;
-
- Input_Line_Pointer--;
- return 0;
-}
-
-static void unget_prep_char (unsigned char ch)
-{
- if ((Input_Line_Pointer != Input_Line)
- && (ch != 0))
- Input_Line_Pointer--;
- /* *Input_Line_Pointer = ch; -- Do not modify the Input_Line */
-}
-
-#include "keywhash.c"
-
-static int get_ident_token (_SLang_Token_Type *tok, unsigned char *s, unsigned int len)
-{
- unsigned char ch;
- unsigned char type;
- Keyword_Table_Type *table;
-
- while (1)
- {
- ch = prep_get_char ();
- type = CHAR_CLASS (ch);
- if ((type != ALPHA_CHAR) && (type != DIGIT_CHAR))
- {
- unget_prep_char (ch);
- break;
- }
- s [len++] = ch;
- }
-
- s[len] = 0;
-
- /* check if keyword */
- table = is_keyword ((char *) s, len);
- if (table != NULL)
- {
- tok->v.s_val = table->name;
- return (tok->type = table->type);
- }
-
- tok->v.s_val = _SLstring_make_hashed_string ((char *)s, len, &tok->hash);
- tok->free_sval_flag = 1;
- return (tok->type = IDENT_TOKEN);
-}
-
-static int get_number_token (_SLang_Token_Type *tok, unsigned char *s, unsigned int len)
-{
- unsigned char ch;
- unsigned char type;
-
- /* Look for pattern [0-9.xX]*([eE][-+]?[digits])?[ijfhul]? */
- while (1)
- {
- ch = prep_get_char ();
-
- type = CHAR_CLASS (ch);
- if ((type != DIGIT_CHAR) && (type != DOT_CHAR))
- {
- if ((ch != 'x') && (ch != 'X'))
- break;
- /* It must be hex */
- do
- {
- if (len == (MAX_TOKEN_LEN - 1))
- goto too_long_return_error;
-
- s[len++] = ch;
- ch = prep_get_char ();
- type = CHAR_CLASS (ch);
- }
- while ((type == DIGIT_CHAR) || (type == ALPHA_CHAR));
- break;
- }
- if (len == (MAX_TOKEN_LEN - 1))
- goto too_long_return_error;
- s [len++] = ch;
- }
-
- /* At this point, type and ch are synchronized */
-
- if ((ch == 'e') || (ch == 'E'))
- {
- if (len == (MAX_TOKEN_LEN - 1))
- goto too_long_return_error;
- s[len++] = ch;
- ch = prep_get_char ();
- if ((ch == '+') || (ch == '-'))
- {
- if (len == (MAX_TOKEN_LEN - 1))
- goto too_long_return_error;
- s[len++] = ch;
- ch = prep_get_char ();
- }
-
- while (DIGIT_CHAR == (type = CHAR_CLASS(ch)))
- {
- if (len == (MAX_TOKEN_LEN - 1))
- goto too_long_return_error;
- s[len++] = ch;
- ch = prep_get_char ();
- }
- }
-
- while (ALPHA_CHAR == type)
- {
- if (len == (MAX_TOKEN_LEN - 1))
- goto too_long_return_error;
- s[len++] = ch;
- ch = prep_get_char ();
- type = CHAR_CLASS(ch);
- }
-
- unget_prep_char (ch);
- s[len] = 0;
-
- switch (SLang_guess_type ((char *) s))
- {
- default:
- tok->v.s_val = (char *) s;
- _SLparse_error ("Not a number", tok, 0);
- return (tok->type = EOF_TOKEN);
-
-#if SLANG_HAS_FLOAT
- case SLANG_FLOAT_TYPE:
- tok->v.s_val = _SLstring_make_hashed_string ((char *)s, len, &tok->hash);
- tok->free_sval_flag = 1;
- return (tok->type = FLOAT_TOKEN);
-
- case SLANG_DOUBLE_TYPE:
- tok->v.s_val = _SLstring_make_hashed_string ((char *)s, len, &tok->hash);
- tok->free_sval_flag = 1;
- return (tok->type = DOUBLE_TOKEN);
-#endif
-#if SLANG_HAS_COMPLEX
- case SLANG_COMPLEX_TYPE:
- tok->v.s_val = _SLstring_make_hashed_string ((char *)s, len, &tok->hash);
- tok->free_sval_flag = 1;
- return (tok->type = COMPLEX_TOKEN);
-#endif
- case SLANG_CHAR_TYPE:
- tok->v.long_val = (char)SLatol (s);
- return tok->type = CHAR_TOKEN;
- case SLANG_UCHAR_TYPE:
- tok->v.long_val = (unsigned char)SLatol (s);
- return tok->type = UCHAR_TOKEN;
- case SLANG_SHORT_TYPE:
- tok->v.long_val = (short)SLatol (s);
- return tok->type = SHORT_TOKEN;
- case SLANG_USHORT_TYPE:
- tok->v.long_val = (unsigned short)SLatoul (s);
- return tok->type = USHORT_TOKEN;
- case SLANG_INT_TYPE:
- tok->v.long_val = (int)SLatol (s);
- return tok->type = INT_TOKEN;
- case SLANG_UINT_TYPE:
- tok->v.long_val = (unsigned int)SLatoul (s);
- return tok->type = UINT_TOKEN;
- case SLANG_LONG_TYPE:
- tok->v.long_val = SLatol (s);
- return tok->type = LONG_TOKEN;
- case SLANG_ULONG_TYPE:
- tok->v.long_val = SLatoul (s);
- return tok->type = ULONG_TOKEN;
- }
-
- too_long_return_error:
- _SLparse_error ("Number too long for buffer", NULL, 0);
- return (tok->type == EOF_TOKEN);
-}
-
-static int get_op_token (_SLang_Token_Type *tok, char ch)
-{
- unsigned int offset;
- char second_char;
- unsigned char type;
- char *name;
-
- /* operators are: + - / * ++ -- += -= = == != > < >= <= | etc..
- * These lex to the longest valid operator token.
- */
-
- offset = CHAR_DATA((unsigned char) ch);
- if (0 == Operators [offset][1])
- {
- name = Operators [offset];
- type = name [3];
- }
- else
- {
- type = EOF_TOKEN;
- name = NULL;
- }
-
- second_char = prep_get_char ();
- do
- {
- if (second_char == Operators[offset][1])
- {
- name = Operators [offset];
- type = name [3];
- break;
- }
- offset++;
- }
- while (ch == Operators[offset][0]);
-
- tok->type = type;
-
- if (type == EOF_TOKEN)
- {
- _SLparse_error ("Operator not supported", NULL, 0);
- return type;
- }
-
- tok->v.s_val = name;
-
- if (name[1] == 0)
- unget_prep_char (second_char);
-
- return type;
-}
-
-/* If this returns non-zero, then it is a binary string */
-static int expand_escaped_string (register char *s,
- register char *t, register char *tmax,
- unsigned int *lenp)
-{
- char *s0;
- int is_binary = 0;
- char ch;
-
- s0 = s;
- while (t < tmax)
- {
- ch = *t++;
- if (ch == '\\')
- {
- t = _SLexpand_escaped_char (t, &ch);
- if (ch == 0) is_binary = 1;
- }
- *s++ = ch;
- }
- *s = 0;
-
- *lenp = (unsigned char) (s - s0);
- return is_binary;
-}
-
-static int get_string_token (_SLang_Token_Type *tok, unsigned char quote_char,
- unsigned char *s)
-{
- unsigned char ch;
- unsigned int len = 0;
- int has_quote = 0;
- int is_binary;
-
- while (1)
- {
- ch = prep_get_char ();
- if (ch == 0)
- {
- _SLparse_error("Expecting quote-character", NULL, 0);
- return (tok->type = EOF_TOKEN);
- }
- if (ch == quote_char) break;
-
- s[len++] = ch;
-
- if (len == (MAX_TOKEN_LEN - 1))
- {
- _SLparse_error ("String too long for buffer", NULL, 0);
- return (tok->type == EOF_TOKEN);
- }
-
- if (ch == '\\')
- {
- has_quote = 1;
- ch = prep_get_char ();
- s[len++] = ch;
- }
- }
-
- s[len] = 0;
-
- if (has_quote)
- is_binary = expand_escaped_string ((char *) s, (char *)s, (char *)s + len, &len);
- else is_binary = 0;
-
- if ('"' == quote_char)
- {
- tok->free_sval_flag = 1;
- if (is_binary)
- {
- tok->v.b_val = SLbstring_create (s, len);
- return tok->type = BSTRING_TOKEN;
- }
- else
- {
- tok->v.s_val = _SLstring_make_hashed_string ((char *)s,
- len,
- &tok->hash);
- tok->free_sval_flag = 1;
- return (tok->type = STRING_TOKEN);
- }
- }
-
- /* else single character */
- if (s[1] != 0)
- {
- _SLparse_error("Single char expected", NULL, 0);
- return (tok->type = EOF_TOKEN);
- }
-
- tok->v.long_val = s[0];
- return (tok->type = UCHAR_TOKEN);
-}
-
-static int extract_token (_SLang_Token_Type *tok, unsigned char ch, unsigned char t)
-{
- unsigned char s [MAX_TOKEN_LEN];
- unsigned int slen;
-
- s[0] = (char) ch;
- slen = 1;
-
- switch (t)
- {
- case ALPHA_CHAR:
- return get_ident_token (tok, s, slen);
-
- case OP_CHAR:
- return get_op_token (tok, ch);
-
- case DIGIT_CHAR:
- return get_number_token (tok, s, slen);
-
- case EXCL_CHAR:
- ch = prep_get_char ();
- s [slen++] = ch;
- t = CHAR_CLASS(ch);
- if (t == ALPHA_CHAR) return get_ident_token (tok, s, slen);
- if (t == OP_CHAR)
- {
- unget_prep_char (ch);
- return get_op_token (tok, '!');
- }
- _SLparse_error("Misplaced !", NULL, 0);
- return -1;
-
- case DOT_CHAR:
- ch = prep_get_char ();
- if (DIGIT_CHAR == CHAR_CLASS(ch))
- {
- s [slen++] = ch;
- return get_number_token (tok, s, slen);
- }
- unget_prep_char (ch);
- return (tok->type = DOT_TOKEN);
-
- case SEP_CHAR:
- return (tok->type = CHAR_DATA(ch));
-
- case DQUOTE_CHAR:
- case QUOTE_CHAR:
- return get_string_token (tok, ch, s);
-
- default:
- _SLparse_error("Invalid character", NULL, 0);
- return (tok->type = EOF_TOKEN);
- }
-}
-
-int _SLget_rpn_token (_SLang_Token_Type *tok)
-{
- unsigned char ch;
-
- tok->v.s_val = "??";
- while ((ch = *Input_Line_Pointer) != 0)
- {
- unsigned char t;
-
- Input_Line_Pointer++;
- if (WHITE_CHAR == (t = CHAR_CLASS(ch)))
- continue;
-
- if (NL_CHAR == t)
- break;
-
- return extract_token (tok, ch, t);
- }
- Input_Line_Pointer = Empty_Line;
- return EOF_TOKEN;
-}
-
-int _SLget_token (_SLang_Token_Type *tok)
-{
- unsigned char ch;
- unsigned char t;
-
- tok->num_refs = 1;
- tok->free_sval_flag = 0;
- tok->v.s_val = "??";
-#if _SLANG_HAS_DEBUG_CODE
- tok->line_number = LLT->line_num;
-#endif
- if (SLang_Error || (Input_Line == NULL))
- return (tok->type = EOF_TOKEN);
-
- while (1)
- {
- ch = *Input_Line_Pointer++;
- if (WHITE_CHAR == (t = CHAR_CLASS (ch)))
- continue;
-
- if (t != NL_CHAR)
- return extract_token (tok, ch, t);
-
- do
- {
- LLT->line_num++;
-#if _SLANG_HAS_DEBUG_CODE
- tok->line_number++;
-#endif
- Input_Line = LLT->read(LLT);
- if ((NULL == Input_Line) || SLang_Error)
- {
- Input_Line_Pointer = Input_Line = NULL;
- return (tok->type = EOF_TOKEN);
- }
- }
- while (0 == SLprep_line_ok(Input_Line, This_SLpp));
-
- Input_Line_Pointer = Input_Line;
- if (*Input_Line_Pointer == '.')
- {
- Input_Line_Pointer++;
- return tok->type = RPN_TOKEN;
- }
- }
-}
-
-static int prep_exists_function (char *line, char comment)
-{
- char buf[MAX_FILE_LINE_LEN], *b, *bmax;
- unsigned char ch;
-
- bmax = buf + (sizeof (buf) - 1);
-
- while (1)
- {
- /* skip whitespace */
- while ((ch = (unsigned char) *line),
- ch && (ch != '\n') && (ch <= ' '))
- line++;
-
- if ((ch <= '\n')
- || (ch == (unsigned char) comment)) break;
-
- b = buf;
- while ((ch = (unsigned char) *line) > ' ')
- {
- if (b < bmax) *b++ = (char) ch;
- line++;
- }
- *b = 0;
-
- if (SLang_is_defined (buf))
- return 1;
- }
-
- return 0;
-}
-
-static int prep_eval_expr (char *expr)
-{
- int ret;
-
- if (0 != SLang_load_string (expr))
- return -1;
- if (-1 == SLang_pop_integer (&ret))
- return -1;
- return (ret != 0);
-}
-
-
-int SLang_load_object (SLang_Load_Type *x)
-{
- SLPreprocess_Type this_pp;
- SLPreprocess_Type *save_this_pp;
- SLang_Load_Type *save_llt;
- char *save_input_line, *save_input_line_ptr;
-#if _SLANG_HAS_DEBUG_CODE
- int save_compile_line_num_info;
-#endif
- int save_auto_declare_variables;
-
- if (SLprep_exists_hook == NULL)
- SLprep_exists_hook = prep_exists_function;
-
- if (_SLprep_eval_hook == NULL)
- _SLprep_eval_hook = prep_eval_expr;
-
- if (-1 == SLprep_open_prep (&this_pp)) return -1;
-
- if (-1 == _SLcompile_push_context (x))
- return -1;
-
-#if _SLANG_HAS_DEBUG_CODE
- save_compile_line_num_info = _SLang_Compile_Line_Num_Info;
-#endif
- save_this_pp = This_SLpp;
- save_input_line = Input_Line;
- save_input_line_ptr = Input_Line_Pointer;
- save_llt = LLT;
- save_auto_declare_variables = _SLang_Auto_Declare_Globals;
-
- This_SLpp = &this_pp;
- Input_Line_Pointer = Input_Line = Empty_Line;
- LLT = x;
-
- x->line_num = 0;
- x->parse_level = 0;
- _SLang_Auto_Declare_Globals = x->auto_declare_globals;
-
-#if _SLANG_HAS_DEBUG_CODE
- _SLang_Compile_Line_Num_Info = Default_Compile_Line_Num_Info;
-#endif
-
- _SLparse_start (x);
- if (SLang_Error)
- do_line_file_error (x->line_num, x->name);
-
- _SLang_Auto_Declare_Globals = save_auto_declare_variables;
-
- if (SLang_Error) SLang_restart (0);
-
- (void) _SLcompile_pop_context ();
-
- Input_Line = save_input_line;
- Input_Line_Pointer = save_input_line_ptr;
- LLT = save_llt;
- This_SLpp = save_this_pp;
-
-#if _SLANG_HAS_DEBUG_CODE
- _SLang_Compile_Line_Num_Info = save_compile_line_num_info;
-#endif
-
- if (SLang_Error) return -1;
- return 0;
-}
-
-SLang_Load_Type *SLallocate_load_type (char *name)
-{
- SLang_Load_Type *x;
-
- if (NULL == (x = (SLang_Load_Type *)SLmalloc (sizeof (SLang_Load_Type))))
- return NULL;
- memset ((char *) x, 0, sizeof (SLang_Load_Type));
-
- if (name == NULL) name = "";
-
- x->name = SLang_create_slstring (name);
- if (x->name == NULL)
- {
- SLfree ((char *) x);
- return NULL;
- }
- return x;
-}
-
-void SLdeallocate_load_type (SLang_Load_Type *x)
-{
- if (x != NULL)
- {
- SLang_free_slstring (x->name);
- SLfree ((char *) x);
- }
-}
-
-typedef struct
-{
- char *string;
- char *ptr;
-}
-String_Client_Data_Type;
-
-static char *read_from_string (SLang_Load_Type *x)
-{
- String_Client_Data_Type *data;
- char *s, *s1, ch;
-
- data = (String_Client_Data_Type *)x->client_data;
- s1 = s = data->ptr;
-
- if (*s == 0)
- return NULL;
-
- while ((ch = *s) != 0)
- {
- s++;
- if (ch == '\n')
- break;
- }
-
- data->ptr = s;
- return s1;
-}
-
-int SLang_load_string (char *string)
-{
- SLang_Load_Type *x;
- String_Client_Data_Type data;
- int ret;
-
- if (string == NULL)
- return -1;
-
- /* Grab a private copy in case loading modifies string */
- if (NULL == (string = SLang_create_slstring (string)))
- return -1;
-
- /* To avoid creating a static data space for every string loaded,
- * all string objects will be regarded as identical. So, identify
- * all of them by ***string***
- */
- if (NULL == (x = SLallocate_load_type ("***string***")))
- {
- SLang_free_slstring (string);
- return -1;
- }
-
- x->client_data = (VOID_STAR) &data;
- x->read = read_from_string;
-
- data.ptr = data.string = string;
- if (-1 == (ret = SLang_load_object (x)))
- SLang_verror (SLang_Error, "called from eval: %s", string);
-
- SLang_free_slstring (string);
- SLdeallocate_load_type (x);
- return ret;
-}
-
-typedef struct
-{
- char *buf;
- FILE *fp;
-}
-File_Client_Data_Type;
-
-char *SLang_User_Prompt;
-static char *read_from_file (SLang_Load_Type *x)
-{
- FILE *fp;
- File_Client_Data_Type *c;
-
- c = (File_Client_Data_Type *)x->client_data;
- fp = c->fp;
-
- if ((fp == stdin) && (SLang_User_Prompt != NULL))
- {
- fputs (SLang_User_Prompt, stdout);
- fflush (stdout);
- }
-
- return fgets (c->buf, MAX_FILE_LINE_LEN, c->fp);
-}
-
-/* Note that file could be freed from Slang during run of this routine
- * so get it and store it !! (e.g., autoloading)
- */
-int (*SLang_Load_File_Hook) (char *);
-int SLang_load_file (char *f)
-{
- File_Client_Data_Type client_data;
- SLang_Load_Type *x;
- char *name, *buf;
- FILE *fp;
-
- if (SLang_Load_File_Hook != NULL)
- return (*SLang_Load_File_Hook) (f);
-
- if (f == NULL) name = "<stdin>"; else name = f;
-
- name = SLang_create_slstring (name);
- if (name == NULL)
- return -1;
-
- if (NULL == (x = SLallocate_load_type (name)))
- {
- SLang_free_slstring (name);
- return -1;
- }
-
- buf = NULL;
-
- if (f != NULL)
- fp = fopen (f, "r");
- else
- fp = stdin;
-
- if (fp == NULL)
- SLang_verror (SL_OBJ_NOPEN, "Unable to open %s", name);
- else if (NULL != (buf = SLmalloc (MAX_FILE_LINE_LEN + 1)))
- {
- client_data.fp = fp;
- client_data.buf = buf;
- x->client_data = (VOID_STAR) &client_data;
- x->read = read_from_file;
-
- (void) SLang_load_object (x);
- }
-
- if ((fp != NULL) && (fp != stdin))
- fclose (fp);
-
- SLfree (buf);
- SLang_free_slstring (name);
- SLdeallocate_load_type (x);
-
- if (SLang_Error)
- return -1;
-
- return 0;
-}
-
-int SLang_guess_type (char *t)
-{
- char *p;
- register char ch;
- int modifier = 0;
-
- if (*t == '-') t++;
- p = t;
-
-#if SLANG_HAS_FLOAT
- if (*p != '.')
- {
-#endif
- modifier = 0;
- while ((*p >= '0') && (*p <= '9')) p++;
- if (t == p) return (SLANG_STRING_TYPE);
- if ((*p == 'x') && (p == t + 1)) /* 0x?? */
- {
- modifier |= 8;
- p++;
- while (ch = *p,
- ((ch >= '0') && (ch <= '9'))
- || (((ch | 0x20) >= 'a') && ((ch | 0x20) <= 'f'))) p++;
- }
-
- /* Now look for UL, LU, UH, HU, L, H modifiers */
- while ((ch = *p) != 0)
- {
- ch |= 0x20;
- if (ch == 'h') modifier |= 1;
- else if (ch == 'l') modifier |= 2;
- else if (ch == 'u') modifier |= 4;
- else break;
- p++;
- }
- if ((1|2) == (modifier & (1|2))) /* hl present */
- return SLANG_STRING_TYPE;
-
- if (ch == 0)
- {
- if ((modifier & 0x7) == 0) return SLANG_INT_TYPE;
- if (modifier & 4)
- {
- if (modifier & 1) return SLANG_USHORT_TYPE;
- if (modifier & 2) return SLANG_ULONG_TYPE;
- return SLANG_UINT_TYPE;
- }
- if (modifier & 1) return SLANG_SHORT_TYPE;
- if (modifier & 2) return SLANG_LONG_TYPE;
- return SLANG_INT_TYPE;
- }
-
- if (modifier) return SLANG_STRING_TYPE;
-#if SLANG_HAS_FLOAT
- }
-
- /* now down to double case */
- if (*p == '.')
- {
- p++;
- while ((*p >= '0') && (*p <= '9')) p++;
- }
- if (*p == 0) return(SLANG_DOUBLE_TYPE);
- if ((*p != 'e') && (*p != 'E'))
- {
-# if SLANG_HAS_COMPLEX
- if (((*p == 'i') || (*p == 'j'))
- && (p[1] == 0))
- return SLANG_COMPLEX_TYPE;
-# endif
- if (((*p | 0x20) == 'f') && (p[1] == 0))
- return SLANG_FLOAT_TYPE;
-
- return SLANG_STRING_TYPE;
- }
-
- p++;
- if ((*p == '-') || (*p == '+')) p++;
- while ((*p >= '0') && (*p <= '9')) p++;
- if (*p != 0)
- {
-# if SLANG_HAS_COMPLEX
- if (((*p == 'i') || (*p == 'j'))
- && (p[1] == 0))
- return SLANG_COMPLEX_TYPE;
-# endif
- if (((*p | 0x20) == 'f') && (p[1] == 0))
- return SLANG_FLOAT_TYPE;
-
- return SLANG_STRING_TYPE;
- }
- return SLANG_DOUBLE_TYPE;
-#else
- return SLANG_STRING_TYPE;
-#endif /* SLANG_HAS_FLOAT */
-}
-
-static int hex_atoul (unsigned char *s, unsigned long *ul)
-{
- register unsigned char ch;
- register unsigned long value;
- register int base;
-
- s++; /* skip the leading 0 */
-
- /* look for 'x' which indicates hex */
- if ((*s | 0x20) == 'x')
- {
- base = 16;
- s++;
- if (*s == 0)
- {
- SLang_Error = SL_SYNTAX_ERROR;
- return -1;
- }
- }
- else base = 8;
-
- value = 0;
- while ((ch = *s++) != 0)
- {
- char ch1 = ch | 0x20;
- switch (ch1)
- {
- default:
- SLang_Error = SL_SYNTAX_ERROR;
- break;
-
- case 'u':
- case 'l':
- case 'h':
- *ul = value;
- return 0;
-
- case '8':
- case '9':
- if (base != 16) SLang_Error = SL_SYNTAX_ERROR;
- /* drop */
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- ch1 -= '0';
- break;
-
- case 'a':
- case 'b':
- case 'c':
- case 'd':
- case 'e':
- case 'f':
- if (base != 16) SLang_Error = SL_SYNTAX_ERROR;
- ch1 = (ch1 - 'a') + 10;
- break;
- }
- value = value * base + ch1;
- }
- *ul = value;
- return 0;
-}
-
-/* Note: These routines do not check integer overflow. I would use the C
- * library functions atol and atoul but some implementations check overflow
- * and some do not. The following implementations provide a consistent
- * behavior.
- */
-unsigned long SLatoul (unsigned char *s)
-{
- int sign;
- unsigned long value;
-
- if (*s == '-') sign = -1;
- else
- {
- sign = 1;
- if (*s == '+') s++;
- }
-
- if (*s == '0')
- {
- if (-1 == hex_atoul (s, &value))
- return (unsigned long) -1;
- }
- else
- {
- while (WHITE_CHAR == CHAR_CLASS(*s))
- s++;
-
- value = 0;
- while (DIGIT_CHAR == CHAR_CLASS(*s))
- {
- value = value * 10 + (unsigned long) (*s - '0');
- s++;
- }
- }
-
- if (sign == -1)
- value = (unsigned long)-1L * value;
-
- return value;
-}
-
-long SLatol (unsigned char *s)
-{
- while (WHITE_CHAR == CHAR_CLASS(*s))
- s++;
-
- if (*s == '-')
- {
- long value = (long) SLatoul (s+1);
- return -value;
- }
- return (long) SLatoul (s);
-}
-
-int SLatoi (unsigned char *s)
-{
- return (int) SLatol (s);
-}
-
-static char *check_byte_compiled_token (char *buf)
-{
- unsigned int len_lo, len_hi, len;
-
- len_lo = (unsigned char) *Input_Line_Pointer++;
- if ((len_lo < 32)
- || ((len_hi = (unsigned char)*Input_Line_Pointer++) < 32)
- || ((len = (len_lo - 32) | ((len_hi - 32) << 7)) >= MAX_TOKEN_LEN))
- {
- SLang_doerror ("Byte compiled file appears corrupt");
- return NULL;
- }
-
- SLMEMCPY (buf, Input_Line_Pointer, len);
- buf += len;
- Input_Line_Pointer += len;
- *buf = 0;
- return buf;
-}
-
-void _SLcompile_byte_compiled (void)
-{
- unsigned char type;
- _SLang_Token_Type tok;
- char buf[MAX_TOKEN_LEN];
- char *ebuf;
- unsigned int len;
-
- memset ((char *) &tok, 0, sizeof (_SLang_Token_Type));
-
- while (SLang_Error == 0)
- {
- top_of_switch:
- type = (unsigned char) *Input_Line_Pointer++;
- switch (type)
- {
- case '\n':
- case 0:
- if (NULL == (Input_Line = LLT->read(LLT)))
- {
- Input_Line_Pointer = Input_Line = NULL;
- return;
- }
- Input_Line_Pointer = Input_Line;
- goto top_of_switch;
-
- case LINE_NUM_TOKEN:
- case CHAR_TOKEN:
- case UCHAR_TOKEN:
- case SHORT_TOKEN:
- case USHORT_TOKEN:
- case INT_TOKEN:
- case UINT_TOKEN:
- case LONG_TOKEN:
- case ULONG_TOKEN:
- if (NULL == check_byte_compiled_token (buf))
- return;
- tok.v.long_val = atol (buf);
- break;
-
- case COMPLEX_TOKEN:
- case FLOAT_TOKEN:
- case DOUBLE_TOKEN:
- if (NULL == check_byte_compiled_token (buf))
- return;
- tok.v.s_val = buf;
- break;
-
- case ESC_STRING_TOKEN:
- if (NULL == (ebuf = check_byte_compiled_token (buf)))
- return;
- tok.v.s_val = buf;
- if (expand_escaped_string (buf, buf, ebuf, &len))
- {
- tok.hash = len;
- type = _BSTRING_TOKEN;
- }
- else
- {
- tok.hash = _SLstring_hash ((unsigned char *)buf, (unsigned char *)buf + len);
- type = STRING_TOKEN;
- }
- break;
-
- case TMP_TOKEN:
- case DEFINE_TOKEN:
- case DEFINE_STATIC_TOKEN:
- case DEFINE_PRIVATE_TOKEN:
- case DEFINE_PUBLIC_TOKEN:
- case DOT_TOKEN:
- case STRING_TOKEN:
- case IDENT_TOKEN:
- case _REF_TOKEN:
- case _DEREF_ASSIGN_TOKEN:
- case _SCALAR_ASSIGN_TOKEN:
- case _SCALAR_PLUSEQS_TOKEN:
- case _SCALAR_MINUSEQS_TOKEN:
- case _SCALAR_TIMESEQS_TOKEN:
- case _SCALAR_DIVEQS_TOKEN:
- case _SCALAR_BOREQS_TOKEN:
- case _SCALAR_BANDEQS_TOKEN:
- case _SCALAR_PLUSPLUS_TOKEN:
- case _SCALAR_POST_PLUSPLUS_TOKEN:
- case _SCALAR_MINUSMINUS_TOKEN:
- case _SCALAR_POST_MINUSMINUS_TOKEN:
- case _STRUCT_ASSIGN_TOKEN:
- case _STRUCT_PLUSEQS_TOKEN:
- case _STRUCT_MINUSEQS_TOKEN:
- case _STRUCT_TIMESEQS_TOKEN:
- case _STRUCT_DIVEQS_TOKEN:
- case _STRUCT_BOREQS_TOKEN:
- case _STRUCT_BANDEQS_TOKEN:
- case _STRUCT_POST_MINUSMINUS_TOKEN:
- case _STRUCT_MINUSMINUS_TOKEN:
- case _STRUCT_POST_PLUSPLUS_TOKEN:
- case _STRUCT_PLUSPLUS_TOKEN:
- if (NULL == (ebuf = check_byte_compiled_token (buf)))
- return;
- tok.v.s_val = buf;
- tok.hash = _SLstring_hash ((unsigned char *)buf, (unsigned char *)ebuf);
- break;
-
- default:
- break;
- }
- tok.type = type;
-
- (*_SLcompile_ptr) (&tok);
- }
-}
-
-static int escape_string (unsigned char *s, unsigned char *smax,
- unsigned char *buf, unsigned char *buf_max,
- int *is_escaped)
-{
- unsigned char ch;
-
- *is_escaped = 0;
- while (buf < buf_max)
- {
- if (s == smax)
- {
- *buf = 0;
- return 0;
- }
-
- ch = *s++;
- switch (ch)
- {
- default:
- *buf++ = ch;
- break;
-
- case 0:
- *buf++ = '\\';
- if (buf < buf_max) *buf++ = 'x';
- if (buf < buf_max) *buf++ = '0';
- if (buf < buf_max) *buf++ = '0';
- *is_escaped = 1;
- break; /* return 0; */
-
- case '\n':
- *buf++ = '\\';
- if (buf < buf_max) *buf++ = 'n';
- *is_escaped = 1;
- break;
-
- case '\r':
- *buf++ = '\\';
- if (buf < buf_max) *buf++ = 'r';
- *is_escaped = 1;
- break;
-
- case 0x1A: /* ^Z */
- *buf++ = '\\';
- if (buf < buf_max) *buf++ = 'x';
- if (buf < buf_max) *buf++ = '1';
- if (buf < buf_max) *buf++ = 'A';
- *is_escaped = 1;
- break;
-
- case '\\':
- *buf++ = ch;
- if (buf < buf_max) *buf++ = ch;
- *is_escaped = 1;
- break;
- }
- }
- _SLparse_error ("String too long to byte-compile", NULL, 0);
- return -1;
-}
-
-static FILE *Byte_Compile_Fp;
-static unsigned int Byte_Compile_Line_Len;
-
-static int bytecomp_write_data (char *buf, unsigned int len)
-{
- char *err = "Write Error";
-
- if ((Byte_Compile_Line_Len + len + 1) >= MAX_FILE_LINE_LEN)
- {
- if (EOF == fputs ("\n", Byte_Compile_Fp))
- {
- SLang_doerror (err);
- return -1;
- }
- Byte_Compile_Line_Len = 0;
- }
-
- if (EOF == fputs (buf, Byte_Compile_Fp))
- {
- SLang_doerror (err);
- return -1;
- }
- Byte_Compile_Line_Len += len;
- return 0;
-}
-
-static void byte_compile_token (_SLang_Token_Type *tok)
-{
- unsigned char buf [MAX_TOKEN_LEN + 4], *buf_max;
- unsigned int len;
- char *b3;
- int is_escaped;
- unsigned char *s;
-
- if (SLang_Error) return;
-
- buf [0] = (unsigned char) tok->type;
- buf [1] = 0;
-
- buf_max = buf + sizeof(buf);
- b3 = (char *) buf + 3;
-
- switch (tok->type)
- {
- case LINE_NUM_TOKEN:
- case CHAR_TOKEN:
- case SHORT_TOKEN:
- case INT_TOKEN:
- case LONG_TOKEN:
- sprintf (b3, "%ld", tok->v.long_val);
- break;
-
- case UCHAR_TOKEN:
- case USHORT_TOKEN:
- case UINT_TOKEN:
- case ULONG_TOKEN:
- sprintf (b3, "%lu", tok->v.long_val);
- break;
-
- case _BSTRING_TOKEN:
- s = (unsigned char *) tok->v.s_val;
- len = (unsigned int) tok->hash;
-
- if (-1 == escape_string (s, s + len,
- (unsigned char *)b3, buf_max,
- &is_escaped))
- return;
-
- buf[0] = ESC_STRING_TOKEN;
- break;
-
- case BSTRING_TOKEN:
- if (NULL == (s = SLbstring_get_pointer (tok->v.b_val, &len)))
- return;
-
- if (-1 == escape_string (s, s + len,
- (unsigned char *)b3, buf_max,
- &is_escaped))
- return;
- buf[0] = ESC_STRING_TOKEN;
- break;
-
- case STRING_TOKEN:
- s = (unsigned char *)tok->v.s_val;
-
- if (-1 == escape_string (s, s + strlen ((char *)s),
- (unsigned char *)b3, buf_max,
- &is_escaped))
- return;
-
- if (is_escaped)
- buf[0] = ESC_STRING_TOKEN;
- break;
-
- /* a _SCALAR_* token is attached to an identifier. */
- case _DEREF_ASSIGN_TOKEN:
- case _SCALAR_ASSIGN_TOKEN:
- case _SCALAR_PLUSEQS_TOKEN:
- case _SCALAR_MINUSEQS_TOKEN:
- case _SCALAR_TIMESEQS_TOKEN:
- case _SCALAR_DIVEQS_TOKEN:
- case _SCALAR_BOREQS_TOKEN:
- case _SCALAR_BANDEQS_TOKEN:
- case _SCALAR_PLUSPLUS_TOKEN:
- case _SCALAR_POST_PLUSPLUS_TOKEN:
- case _SCALAR_MINUSMINUS_TOKEN:
- case _SCALAR_POST_MINUSMINUS_TOKEN:
- case DOT_TOKEN:
- case TMP_TOKEN:
- case DEFINE_TOKEN:
- case DEFINE_STATIC_TOKEN:
- case DEFINE_PRIVATE_TOKEN:
- case DEFINE_PUBLIC_TOKEN:
- case FLOAT_TOKEN:
- case DOUBLE_TOKEN:
- case COMPLEX_TOKEN:
- case IDENT_TOKEN:
- case _REF_TOKEN:
- case _STRUCT_ASSIGN_TOKEN:
- case _STRUCT_PLUSEQS_TOKEN:
- case _STRUCT_MINUSEQS_TOKEN:
- case _STRUCT_TIMESEQS_TOKEN:
- case _STRUCT_DIVEQS_TOKEN:
- case _STRUCT_BOREQS_TOKEN:
- case _STRUCT_BANDEQS_TOKEN:
- case _STRUCT_POST_MINUSMINUS_TOKEN:
- case _STRUCT_MINUSMINUS_TOKEN:
- case _STRUCT_POST_PLUSPLUS_TOKEN:
- case _STRUCT_PLUSPLUS_TOKEN:
- strcpy (b3, tok->v.s_val);
- break;
-
- default:
- b3 = NULL;
- }
-
- if (b3 != NULL)
- {
- len = strlen (b3);
- buf[1] = (unsigned char) ((len & 0x7F) + 32);
- buf[2] = (unsigned char) (((len >> 7) & 0x7F) + 32);
- len += 3;
- }
- else len = 1;
-
- (void) bytecomp_write_data ((char *)buf, len);
-}
-
-int SLang_byte_compile_file (char *name, int method)
-{
- char file [1024];
-
- (void) method;
- if (strlen (name) + 2 >= sizeof (file))
- {
- SLang_verror (SL_INVALID_PARM, "Filename too long");
- return -1;
- }
- sprintf (file, "%sc", name);
- if (NULL == (Byte_Compile_Fp = fopen (file, "w")))
- {
- SLang_verror(SL_OBJ_NOPEN, "%s: unable to open", file);
- return -1;
- }
-
- Byte_Compile_Line_Len = 0;
- if (-1 != bytecomp_write_data (".#", 2))
- {
- _SLcompile_ptr = byte_compile_token;
- (void) SLang_load_file (name);
- _SLcompile_ptr = _SLcompile;
-
- (void) bytecomp_write_data ("\n", 1);
- }
-
- if (EOF == fclose (Byte_Compile_Fp))
- SLang_doerror ("Write Error");
-
- if (SLang_Error)
- {
- SLang_verror (0, "Error processing %s", name);
- return -1;
- }
- return 0;
-}
-
-int SLang_generate_debug_info (int x)
-{
- int y = Default_Compile_Line_Num_Info;
- Default_Compile_Line_Num_Info = x;
- return y;
-}
diff --git a/mdk-stage1/slang/sltypes.c b/mdk-stage1/slang/sltypes.c
deleted file mode 100644
index 05b8741b1..000000000
--- a/mdk-stage1/slang/sltypes.c
+++ /dev/null
@@ -1,966 +0,0 @@
-/* Basic type operations for S-Lang */
-/* Copyright (c) 1992, 1996, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#if SLANG_HAS_FLOAT
-# include <math.h>
-#endif
-
-#define SL_APP_WANTS_FOREACH /* for String_Type */
-#include "slang.h"
-#include "_slang.h"
-
-int SLpop_string (char **s) /*{{{*/
-{
- char *sls;
-
- *s = NULL;
-
- if (-1 == SLang_pop_slstring (&sls))
- return -1;
-
- if (NULL == (*s = SLmake_string (sls)))
- {
- SLang_free_slstring (sls);
- return -1;
- }
-
- SLang_free_slstring (sls);
- return 0;
-}
-
-/*}}}*/
-
-int SLang_pop_slstring (char **s) /*{{{*/
-{
- return SLclass_pop_ptr_obj (SLANG_STRING_TYPE, (VOID_STAR *)s);
-}
-
-/*}}}*/
-
-/* if *data != 0, string should be freed upon use. */
-int SLang_pop_string(char **s, int *data) /*{{{*/
-{
- if (SLpop_string (s))
- return -1;
-
- *data = 1;
- return 0;
-}
-
-/*}}}*/
-
-int _SLang_push_slstring (char *s)
-{
- if (0 == SLclass_push_ptr_obj (SLANG_STRING_TYPE, (VOID_STAR)s))
- return 0;
-
- SLang_free_slstring (s);
- return -1;
-}
-
-int _SLpush_alloced_slstring (char *s, unsigned int len)
-{
- if (NULL == (s = _SLcreate_via_alloced_slstring (s, len)))
- return -1;
-
- return _SLang_push_slstring (s);
-}
-
-int SLang_push_string (char *t) /*{{{*/
-{
- if (t == NULL)
- return SLang_push_null ();
-
- if (NULL == (t = SLang_create_slstring (t)))
- return -1;
-
- return _SLang_push_slstring (t);
-}
-
-/*}}}*/
-
-int _SLang_dup_and_push_slstring (char *s)
-{
- if (NULL == (s = _SLstring_dup_slstring (s)))
- return SLang_push_null ();
-
- return _SLang_push_slstring (s);
-}
-
-
-/* This function _always_ frees the malloced string */
-int SLang_push_malloced_string (char *c) /*{{{*/
-{
- int ret;
-
- ret = SLang_push_string (c);
- SLfree (c);
-
- return ret;
-}
-
-/*}}}*/
-
-#if 0
-static int int_int_power (int a, int b)
-{
- int r, s;
-
- if (a == 0) return 0;
- if (b < 0) return 0;
- if (b == 0) return 1;
-
- s = 1;
- if (a < 0)
- {
- if ((b % 2) == 1) s = -1;
- a = -a;
- }
-
- /* FIXME: Priority=low
- * This needs optimized
- */
- r = 1;
- while (b)
- {
- r = r * a;
- b--;
- }
- return r * s;
-}
-#endif
-
-static int
-string_string_bin_op_result (int op, unsigned char a, unsigned char b,
- unsigned char *c)
-{
- (void) a;
- (void) b;
- switch (op)
- {
- default:
- return 0;
-
- case SLANG_PLUS:
- *c = SLANG_STRING_TYPE;
- break;
-
- case SLANG_GT:
- case SLANG_GE:
- case SLANG_LT:
- case SLANG_LE:
- case SLANG_EQ:
- case SLANG_NE:
- *c = SLANG_CHAR_TYPE;
- break;
- }
- return 1;
-}
-
-static int
-string_string_bin_op (int op,
- unsigned char a_type, VOID_STAR ap, unsigned int na,
- unsigned char b_type, VOID_STAR bp, unsigned int nb,
- VOID_STAR cp)
-{
- char *ic;
- char **a, **b, **c;
- unsigned int n, n_max;
- unsigned int da, db;
-
- (void) a_type;
- (void) b_type;
-
- if (na == 1) da = 0; else da = 1;
- if (nb == 1) db = 0; else db = 1;
-
- if (na > nb) n_max = na; else n_max = nb;
-
- a = (char **) ap;
- b = (char **) bp;
- for (n = 0; n < n_max; n++)
- {
- if ((*a == NULL) || (*b == NULL))
- {
- SLang_verror (SL_VARIABLE_UNINITIALIZED, "String element[%u] not initialized for binary operation", n);
- return -1;
- }
- a += da; b += db;
- }
-
- a = (char **) ap;
- b = (char **) bp;
- ic = (char *) cp;
- c = NULL;
-
- switch (op)
- {
- case SLANG_DIVIDE:
- case SLANG_MINUS:
- default:
- return 0;
-
- case SLANG_PLUS:
- /* Concat */
- c = (char **) cp;
- for (n = 0; n < n_max; n++)
- {
- if (NULL == (c[n] = SLang_concat_slstrings (*a, *b)))
- goto return_error;
-
- a += da; b += db;
- }
- break;
-
- case SLANG_NE:
- for (n = 0; n < n_max; n++)
- {
- ic [n] = (0 != strcmp (*a, *b));
- a += da;
- b += db;
- }
- break;
- case SLANG_GT:
- for (n = 0; n < n_max; n++)
- {
- ic [n] = (strcmp (*a, *b) > 0);
- a += da;
- b += db;
- }
- break;
- case SLANG_GE:
- for (n = 0; n < n_max; n++)
- {
- ic [n] = (strcmp (*a, *b) >= 0);
- a += da;
- b += db;
- }
- break;
- case SLANG_LT:
- for (n = 0; n < n_max; n++)
- {
- ic [n] = (strcmp (*a, *b) < 0);
- a += da;
- b += db;
- }
- break;
- case SLANG_LE:
- for (n = 0; n < n_max; n++)
- {
- ic [n] = (strcmp (*a, *b) <= 0);
- a += da;
- b += db;
- }
- break;
- case SLANG_EQ:
- for (n = 0; n < n_max; n++)
- {
- ic [n] = (strcmp (*a, *b) == 0);
- a += da;
- b += db;
- }
- break;
- }
- return 1;
-
- return_error:
- if (c != NULL)
- {
- unsigned int nn;
- for (nn = 0; nn < n; nn++)
- {
- SLang_free_slstring (c[nn]);
- c[nn] = NULL;
- }
- for (nn = n; nn < n_max; nn++)
- c[nn] = NULL;
- }
- return -1;
-}
-
-static void string_destroy (unsigned char unused, VOID_STAR s)
-{
- (void) unused;
- SLang_free_slstring (*(char **) s);
-}
-
-static int string_push (unsigned char unused, VOID_STAR sptr)
-{
- (void) unused;
- return SLang_push_string (*(char **) sptr);
-}
-
-static int string_cmp (unsigned char unused, VOID_STAR ap, VOID_STAR bp, int *c)
-{
- char *a, *b;
- (void) unused;
-
- a = *(char **) ap;
- b = *(char **) bp;
- if (a != b)
- {
- if (a == NULL) *c = -1;
- else if (b == NULL) *c = 1;
- else *c = strcmp (a, b);
- return 0;
- }
- *c = 0;
- return 0;
-}
-
-static int string_to_int (unsigned char a_type, VOID_STAR ap, unsigned int na,
- unsigned char b_type, VOID_STAR bp)
-{
- char **s;
- unsigned int i;
- int *b;
-
- (void) a_type;
- (void) b_type;
-
- s = (char **) ap;
- b = (int *) bp;
- for (i = 0; i < na; i++)
- {
- if (s[i] == NULL) b[i] = 0;
- else b[i] = s[i][0];
- }
- return 1;
-}
-
-struct _SLang_Foreach_Context_Type
-{
- char *string;
- unsigned int n;
-};
-
-static SLang_Foreach_Context_Type *
-string_foreach_open (unsigned char type, unsigned int num)
-{
- char *s;
- SLang_Foreach_Context_Type *c;
-
- (void) type;
- if (num != 0)
- {
- SLang_verror (SL_NOT_IMPLEMENTED,
- "'foreach using' form not supported by String_Type");
- SLdo_pop_n (num + 1);
- return NULL;
- }
- if (-1 == SLang_pop_slstring (&s))
- return NULL;
-
- c = (SLang_Foreach_Context_Type *)SLmalloc (sizeof (SLang_Foreach_Context_Type));
- if (c == NULL)
- {
- SLang_free_slstring (s);
- return NULL;
- }
-
- memset ((char *) c, 0, sizeof (SLang_Foreach_Context_Type));
- c->string = s;
-
- return c;
-}
-
-static void string_foreach_close (unsigned char type, SLang_Foreach_Context_Type *c)
-{
- (void) type;
- if (c == NULL) return;
- SLang_free_slstring (c->string);
- SLfree ((char *) c);
-}
-
-static int string_foreach (unsigned char type, SLang_Foreach_Context_Type *c)
-{
- char ch;
-
- (void) type;
- ch = c->string[c->n];
- if (ch == 0)
- return 0; /* done */
-
- c->n += 1;
-
- if (-1 == SLclass_push_int_obj (SLANG_INT_TYPE, ch))
- return -1;
-
- return 1;
-}
-
-int _SLstring_list_push (_SLString_List_Type *p)
-{
- unsigned int num;
- int inum;
- SLang_Array_Type *at;
- char **buf;
-
- if ((buf = p->buf) == NULL)
- return SLang_push_null ();
-
- num = p->num;
- inum = (int) num;
-
- if (num == 0) num++;
- if (num != p->max_num)
- {
- if (NULL == (buf = (char **)SLrealloc ((char *) buf, sizeof (char *) * num)))
- {
- _SLstring_list_delete (p);
- return -1;
- }
- p->max_num = num;
- p->buf = buf;
- }
-
- if (NULL == (at = SLang_create_array (SLANG_STRING_TYPE, 0, (VOID_STAR) buf, &inum, 1)))
- {
- _SLstring_list_delete (p);
- return -1;
- }
- p->buf = NULL;
- _SLstring_list_delete (p);
- return SLang_push_array (at, 1);
-}
-
-int _SLstring_list_init (_SLString_List_Type *p, unsigned int max_num, unsigned int delta_num)
-{
- if (NULL == (p->buf = (char **) SLmalloc (max_num * sizeof (char *))))
- return -1;
-
- p->max_num = max_num;
- p->num = 0;
- p->delta_num = delta_num;
- return 0;
-}
-
-int _SLstring_list_append (_SLString_List_Type *p, char *s)
-{
- if (s == NULL)
- {
- _SLstring_list_delete (p);
- return -1;
- }
-
- if (p->max_num == p->num)
- {
- char **b;
- unsigned int max_num = p->num + p->delta_num;
- b = (char **)SLrealloc ((char *)p->buf, max_num * sizeof (char *));
- if (b == NULL)
- {
- _SLstring_list_delete (p);
- SLang_free_slstring (s);
- return -1;
- }
- p->buf = b;
- p->max_num = max_num;
- }
-
- p->buf[p->num] = s;
- p->num++;
- return 0;
-}
-
-void _SLstring_list_delete (_SLString_List_Type *p)
-{
- if (p->buf != NULL)
- {
- unsigned int i, imax;
- char **buf = p->buf;
- imax = p->num;
- for (i = 0; i < imax; i++)
- SLang_free_slstring (buf[i]);
- SLfree ((char *)buf);
- p->buf = NULL;
- }
-}
-
-/* Ref type */
-int SLang_pop_ref (SLang_Ref_Type **ref)
-{
- return SLclass_pop_ptr_obj (SLANG_REF_TYPE, (VOID_STAR *)ref);
-}
-
-/* Note: This is ok if ptr is NULL. Some routines rely on this behavior */
-int _SLang_push_ref (int is_global, VOID_STAR ptr)
-{
- SLang_Ref_Type *r;
-
- if (ptr == NULL)
- return SLang_push_null ();
-
- r = (SLang_Ref_Type *) SLmalloc (sizeof (SLang_Ref_Type));
- if (r == NULL) return -1;
-
- r->is_global = is_global;
- r->v.nt = (SLang_Name_Type *) ptr;
-
- if (-1 == SLclass_push_ptr_obj (SLANG_REF_TYPE, (VOID_STAR) r))
- {
- SLfree ((char *) r);
- return -1;
- }
- return 0;
-}
-
-static void ref_destroy (unsigned char type, VOID_STAR ptr)
-{
- (void) type;
- SLfree ((char *) *(SLang_Ref_Type **)ptr);
-}
-
-void SLang_free_ref (SLang_Ref_Type *ref)
-{
- SLfree ((char *) ref);
-}
-
-static int ref_push (unsigned char type, VOID_STAR ptr)
-{
- SLang_Ref_Type *ref;
-
- (void) type;
-
- ref = *(SLang_Ref_Type **) ptr;
-
- if (ref == NULL)
- return SLang_push_null ();
-
- return _SLang_push_ref (ref->is_global, (VOID_STAR) ref->v.nt);
-}
-
-int SLang_assign_to_ref (SLang_Ref_Type *ref, unsigned char type, VOID_STAR v)
-{
- SLang_Object_Type *stkptr;
- SLang_Class_Type *cl;
-
- cl = _SLclass_get_class (type);
-
- /* Use apush since this function is passing ``array'' bytes rather than the
- * address of the data. I need to somehow make this more consistent. To
- * see what I mean, consider:
- *
- * double z[2];
- * char *s = "silly";
- * int i;
- *
- * SLang_assign_to_ref (ref, SLANG_INT_TYPE, &i);
- * SLang_assign_to_ref (ref, SLANG_STRING_TYPE, &s);
- * SLang_assign_to_ref (ref, SLANG_COMPLEX_TYPE, z);
- *
- * That is, all external routines that take a VOID_STAR argument need to
- * be documented such that how the function should be called with the
- * various class_types.
- */
- if (-1 == (*cl->cl_apush) (type, v))
- return -1;
-
- stkptr = _SLStack_Pointer;
- if (0 == _SLang_deref_assign (ref))
- return 0;
-
- if (stkptr != _SLStack_Pointer)
- SLdo_pop ();
-
- return -1;
-}
-
-static char *ref_string (unsigned char type, VOID_STAR ptr)
-{
- SLang_Ref_Type *ref;
-
- (void) type;
- ref = *(SLang_Ref_Type **) ptr;
- if (ref->is_global)
- {
- char *name, *s;
-
- name = ref->v.nt->name;
- if ((name != NULL)
- && (NULL != (s = SLmalloc (strlen(name) + 2))))
- {
- *s = '&';
- strcpy (s + 1, name);
- return s;
- }
-
- return NULL;
- }
- return SLmake_string ("Local Variable Reference");
-}
-
-static int ref_dereference (unsigned char unused, VOID_STAR ptr)
-{
- (void) unused;
- return _SLang_dereference_ref (*(SLang_Ref_Type **) ptr);
-}
-
-static int ref_cmp (unsigned char type, VOID_STAR a, VOID_STAR b, int *c)
-{
- SLang_Ref_Type *ra, *rb;
-
- (void) type;
-
- ra = *(SLang_Ref_Type **)a;
- rb = *(SLang_Ref_Type **)b;
-
- if (ra == NULL)
- {
- if (rb == NULL) *c = 0;
- else *c = -1;
- return 0;
- }
- if (rb == NULL)
- {
- *c = 1;
- return 0;
- }
-
- if (ra->v.nt == rb->v.nt)
- *c = 0;
- else *c = strcmp (ra->v.nt->name, rb->v.nt->name);
- return 0;
-}
-
-
-SLang_Name_Type *SLang_pop_function (void)
-{
- SLang_Ref_Type *ref;
- SLang_Name_Type *f;
-
- if (SLang_peek_at_stack () == SLANG_STRING_TYPE)
- {
- char *name;
-
- if (-1 == SLang_pop_slstring (&name))
- return NULL;
-
- if (NULL == (f = SLang_get_function (name)))
- {
- SLang_verror (SL_UNDEFINED_NAME, "Function %s does not exist", name);
- SLang_free_slstring (name);
- return NULL;
- }
- SLang_free_slstring (name);
- return f;
- }
-
- if (-1 == SLang_pop_ref (&ref))
- return NULL;
-
- f = SLang_get_fun_from_ref (ref);
- SLang_free_ref (ref);
- return f;
-}
-
-/* This is a placeholder for version 2 */
-void SLang_free_function (SLang_Name_Type *f)
-{
- (void) f;
-}
-
-/* NULL type */
-int SLang_push_null (void)
-{
- return SLclass_push_ptr_obj (SLANG_NULL_TYPE, NULL);
-}
-
-int SLang_pop_null (void)
-{
- SLang_Object_Type obj;
- return _SLang_pop_object_of_type (SLANG_NULL_TYPE, &obj, 0);
-}
-
-static int null_push (unsigned char unused, VOID_STAR ptr_unused)
-{
- (void) unused; (void) ptr_unused;
- return SLang_push_null ();
-}
-
-static int null_pop (unsigned char type, VOID_STAR ptr)
-{
- (void) type;
-
- if (-1 == SLang_pop_null ())
- return -1;
-
- *(char **) ptr = NULL;
- return 0;
-}
-
-/* Implement foreach (NULL) using (whatever) to do nothing. This is useful
- * because suppose that X is a list but is NULL in some situations. Then
- * when it is NULL, we want foreach(X) to do nothing.
- */
-static SLang_Foreach_Context_Type *
-null_foreach_open (unsigned char type, unsigned int num)
-{
- (void) type;
- SLdo_pop_n (num + 1);
- return (SLang_Foreach_Context_Type *)1;
-}
-
-static void null_foreach_close (unsigned char type, SLang_Foreach_Context_Type *c)
-{
- (void) type;
- (void) c;
-}
-
-static int null_foreach (unsigned char type, SLang_Foreach_Context_Type *c)
-{
- (void) type;
- (void) c;
- return 0;
-}
-
-static int null_to_bool (unsigned char type, int *t)
-{
- (void) type;
- *t = 0;
- return SLang_pop_null ();
-}
-
-/* AnyType */
-int _SLanytype_typecast (unsigned char a_type, VOID_STAR ap, unsigned int na,
- unsigned char b_type, VOID_STAR bp)
-{
- SLang_Class_Type *cl;
- SLang_Any_Type **any;
- unsigned int i;
- unsigned int sizeof_type;
-
- (void) b_type;
-
- any = (SLang_Any_Type **) bp;
-
- cl = _SLclass_get_class (a_type);
- sizeof_type = cl->cl_sizeof_type;
-
- for (i = 0; i < na; i++)
- {
- if ((-1 == (*cl->cl_apush) (a_type, ap))
- || (-1 == SLang_pop_anytype (&any[i])))
- {
- while (i != 0)
- {
- i--;
- SLang_free_anytype (any[i]);
- any[i] = NULL;
- }
- return -1;
- }
- ap = (VOID_STAR)((char *)ap + sizeof_type);
- }
-
- return 1;
-}
-
-int SLang_pop_anytype (SLang_Any_Type **any)
-{
- SLang_Object_Type *obj;
-
- *any = NULL;
-
- if (NULL == (obj = (SLang_Object_Type *) SLmalloc (sizeof (SLang_Object_Type))))
- return -1;
-
- if (-1 == SLang_pop (obj))
- {
- SLfree ((char *) obj);
- return -1;
- }
- *any = (SLang_Any_Type *)obj;
- return 0;
-}
-
-/* This function will result in an object that is represented by the
- * anytype object.
- */
-int SLang_push_anytype (SLang_Any_Type *any)
-{
- return _SLpush_slang_obj ((SLang_Object_Type *)any);
-}
-
-/* After this call, the stack will contain an Any_Type object */
-static int anytype_push (unsigned char type, VOID_STAR ptr)
-{
- SLang_Any_Type *obj;
-
- /* Push the object onto the stack, then pop it back off into our anytype
- * container. That way, any memory managing associated with the type
- * will be performed automatically. Another way to think of it is that
- * pushing an Any_Type onto the stack will create another copy of the
- * object represented by it.
- */
- if (-1 == _SLpush_slang_obj (*(SLang_Object_Type **)ptr))
- return -1;
-
- if (-1 == SLang_pop_anytype (&obj))
- return -1;
-
- /* There is no need to reference count the anytype objects since every
- * push results in a new anytype container.
- */
- if (-1 == SLclass_push_ptr_obj (type, (VOID_STAR) obj))
- {
- SLang_free_anytype (obj);
- return -1;
- }
-
- return 0;
-}
-
-static void anytype_destroy (unsigned char type, VOID_STAR ptr)
-{
- SLang_Object_Type *obj;
-
- (void) type;
- obj = *(SLang_Object_Type **)ptr;
- SLang_free_object (obj);
- SLfree ((char *) obj);
-}
-
-void SLang_free_anytype (SLang_Any_Type *any)
-{
- if (any != NULL)
- anytype_destroy (SLANG_ANY_TYPE, (VOID_STAR) &any);
-}
-
-static int anytype_dereference (unsigned char unused, VOID_STAR ptr)
-{
- (void) unused;
- return _SLpush_slang_obj (*(SLang_Object_Type **) ptr);
-}
-
-/* SLANG_INTP_TYPE */
-static int intp_push (unsigned char unused, VOID_STAR ptr)
-{
- (void) unused;
- return SLclass_push_int_obj (SLANG_INT_TYPE, **(int **)ptr);
-}
-
-static int intp_pop (unsigned char unused, VOID_STAR ptr)
-{
- (void) unused;
- return SLang_pop_integer (*(int **) ptr);
-}
-
-static int undefined_push (unsigned char t, VOID_STAR p)
-{
- (void) t; (void) p;
- if (SLang_Error == 0)
- SLang_Error = SL_VARIABLE_UNINITIALIZED;
- return -1;
-}
-
-int _SLregister_types (void)
-{
- SLang_Class_Type *cl;
-
- /* A good compiler should optimize this code away. */
- if ((sizeof(short) != SIZEOF_SHORT)
- || (sizeof(int) != SIZEOF_INT)
- || (sizeof(long) != SIZEOF_LONG)
- || (sizeof(float) != SIZEOF_FLOAT)
- || (sizeof(double) != SIZEOF_DOUBLE))
- SLang_exit_error ("S-Lang Library not built properly. Fix SIZEOF_* in config.h and recompile");
-
- if (-1 == _SLclass_init ())
- return -1;
-
- /* Undefined Type */
- if (NULL == (cl = SLclass_allocate_class ("Undefined_Type")))
- return -1;
- (void) SLclass_set_push_function (cl, undefined_push);
- (void) SLclass_set_pop_function (cl, undefined_push);
- if (-1 == SLclass_register_class (cl, SLANG_UNDEFINED_TYPE, sizeof (int),
- SLANG_CLASS_TYPE_SCALAR))
- return -1;
- /* Make Void_Type a synonym for Undefined_Type. Note that this does
- * not mean that Void_Type represents SLANG_VOID_TYPE. Void_Type is
- * used by array_map to indicate no array is to be created.
- */
- if (-1 == SLclass_create_synonym ("Void_Type", SLANG_UNDEFINED_TYPE))
- return -1;
-
- if (-1 == _SLarith_register_types ())
- return -1;
-
- /* SLANG_INTP_TYPE */
- if (NULL == (cl = SLclass_allocate_class ("_IntegerP_Type")))
- return -1;
- (void) SLclass_set_push_function (cl, intp_push);
- (void) SLclass_set_pop_function (cl, intp_pop);
- if (-1 == SLclass_register_class (cl, SLANG_INTP_TYPE, sizeof (int),
- SLANG_CLASS_TYPE_SCALAR))
- return -1;
-
- /* String Type */
-
- if (NULL == (cl = SLclass_allocate_class ("String_Type")))
- return -1;
- (void) SLclass_set_destroy_function (cl, string_destroy);
- (void) SLclass_set_push_function (cl, string_push);
- cl->cl_foreach_open = string_foreach_open;
- cl->cl_foreach_close = string_foreach_close;
- cl->cl_foreach = string_foreach;
- cl->cl_cmp = string_cmp;
- if (-1 == SLclass_register_class (cl, SLANG_STRING_TYPE, sizeof (char *),
- SLANG_CLASS_TYPE_PTR))
- return -1;
-
- /* ref Type */
- if (NULL == (cl = SLclass_allocate_class ("Ref_Type")))
- return -1;
- cl->cl_dereference = ref_dereference;
- cl->cl_push = ref_push;
- cl->cl_destroy = ref_destroy;
- cl->cl_string = ref_string;
- cl->cl_cmp = ref_cmp;
- if (-1 == SLclass_register_class (cl, SLANG_REF_TYPE,
- sizeof (SLang_Ref_Type *),
- SLANG_CLASS_TYPE_PTR))
- return -1;
-
- /* NULL Type */
-
- if (NULL == (cl = SLclass_allocate_class ("Null_Type")))
- return -1;
- cl->cl_push = null_push;
- cl->cl_pop = null_pop;
- cl->cl_foreach_open = null_foreach_open;
- cl->cl_foreach_close = null_foreach_close;
- cl->cl_foreach = null_foreach;
- cl->cl_to_bool = null_to_bool;
- if (-1 == SLclass_register_class (cl, SLANG_NULL_TYPE, sizeof (char *),
- SLANG_CLASS_TYPE_SCALAR))
- return -1;
-
- /* AnyType */
- if (NULL == (cl = SLclass_allocate_class ("Any_Type")))
- return -1;
- (void) SLclass_set_push_function (cl, anytype_push);
- (void) SLclass_set_destroy_function (cl, anytype_destroy);
- cl->cl_dereference = anytype_dereference;
- if (-1 == SLclass_register_class (cl, SLANG_ANY_TYPE, sizeof (VOID_STAR),
- SLANG_CLASS_TYPE_PTR))
- return -1;
-
- if (-1 == _SLang_init_bstring ())
- return -1;
-
- if ((-1 == SLclass_add_typecast (SLANG_STRING_TYPE, SLANG_INT_TYPE, string_to_int, 0))
- || (-1 == SLclass_add_binary_op (SLANG_STRING_TYPE, SLANG_STRING_TYPE, string_string_bin_op, string_string_bin_op_result)))
- return -1;
-
- return 0;
-}
-
diff --git a/mdk-stage1/slang/slutty.c b/mdk-stage1/slang/slutty.c
deleted file mode 100644
index 636c1bb90..000000000
--- a/mdk-stage1/slang/slutty.c
+++ /dev/null
@@ -1,596 +0,0 @@
-/* slutty.c --- Unix Low level terminal (tty) functions for S-Lang */
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-#include "slinclud.h"
-
-#include <signal.h>
-/* sequent support thanks to Kenneth Lorber <keni@oasys.dt.navy.mil> */
-/* SYSV (SYSV ISC R3.2 v3.0) provided by iain.lea@erlm.siemens.de */
-
-#if defined (_AIX) && !defined (_ALL_SOURCE)
-# define _ALL_SOURCE /* so NBBY is defined in <sys/types.h> */
-#endif
-
-#include <sys/time.h>
-#include <sys/types.h>
-
-#ifdef SYSV
-# include <fcntl.h>
-# ifndef CRAY
-# include <sys/termio.h>
-# include <sys/stream.h>
-# include <sys/ptem.h>
-# include <sys/tty.h>
-# endif
-#endif
-
-#ifdef __BEOS__
-/* Prototype for select */
-# include <net/socket.h>
-#endif
-
-#include <sys/file.h>
-
-#ifndef sun
-# include <sys/ioctl.h>
-#endif
-
-#ifdef __QNX__
-# include <sys/select.h>
-#endif
-
-#include <sys/stat.h>
-#include <errno.h>
-
-#if defined (_AIX) && !defined (FD_SET)
-# include <sys/select.h> /* for FD_ISSET, FD_SET, FD_ZERO */
-#endif
-
-#ifndef O_RDWR
-# include <fcntl.h>
-#endif
-
-#include "slang.h"
-#include "_slang.h"
-
-int SLang_TT_Read_FD = -1;
-int SLang_TT_Baud_Rate;
-
-#ifdef HAVE_TERMIOS_H
-# if !defined(HAVE_TCGETATTR) || !defined(HAVE_TCSETATTR)
-# undef HAVE_TERMIOS_H
-# endif
-#endif
-
-#ifndef HAVE_TERMIOS_H
-
-# if !defined(CBREAK) && defined(sun)
-# ifndef BSD_COMP
-# define BSD_COMP 1
-# endif
-# include <sys/ioctl.h>
-# endif
-
-typedef struct
- {
- struct tchars t;
- struct ltchars lt;
- struct sgttyb s;
- }
-TTY_Termio_Type;
-#else
-# include <termios.h>
-typedef struct termios TTY_Termio_Type;
-#endif
-
-static TTY_Termio_Type Old_TTY;
-
-#ifdef HAVE_TERMIOS_H
-typedef struct
-{
- unsigned int key;
- unsigned int value;
-} Baud_Rate_Type;
-
-static Baud_Rate_Type Baud_Rates [] =
-{
-#ifdef B0
- {B0, 0},
-#endif
-#ifdef B50
- {B50, 50},
-#endif
-#ifdef B75
- {B75, 75},
-#endif
-#ifdef B110
- {B110, 110},
-#endif
-#ifdef B134
- {B134, 134},
-#endif
-#ifdef B150
- {B150, 150},
-#endif
-#ifdef B200
- {B200, 200},
-#endif
-#ifdef B300
- {B300, 300},
-#endif
-#ifdef B600
- {B600, 600},
-#endif
-#ifdef B1200
- {B1200, 1200},
-#endif
-#ifdef B1800
- {B1800, 1800},
-#endif
-#ifdef B2400
- {B2400, 2400},
-#endif
-#ifdef B4800
- {B4800, 4800},
-#endif
-#ifdef B9600
- {B9600, 9600},
-#endif
-#ifdef B19200
- {B19200, 19200},
-#endif
-#ifdef B38400
- {B38400, 38400},
-#endif
-#ifdef B57600
- {B57600, 57600},
-#endif
-#ifdef B115200
- {B115200, 115200},
-#endif
-#ifdef B230400
- {B230400, 230400},
-#endif
- {0, 0}
-};
-
-static void
-set_baud_rate (TTY_Termio_Type *tty)
-{
-#ifdef HAVE_CFGETOSPEED
- unsigned int speed;
- Baud_Rate_Type *b, *bmax;
-
- if (SLang_TT_Baud_Rate)
- return; /* already set */
-
- speed = (unsigned int) cfgetospeed (tty);
-
- b = Baud_Rates;
- bmax = b + (sizeof (Baud_Rates)/sizeof(Baud_Rates[0]));
- while (b < bmax)
- {
- if (b->key == speed)
- {
- SLang_TT_Baud_Rate = b->value;
- return;
- }
- b++;
- }
-#else
- (void) tty;
-#endif
-}
-
-#endif /* HAVE_TERMIOS_H */
-
-#ifdef HAVE_TERMIOS_H
-# define GET_TERMIOS(fd, x) tcgetattr(fd, x)
-# define SET_TERMIOS(fd, x) tcsetattr(fd, TCSADRAIN, x)
-#else
-# ifdef TCGETS
-# define GET_TERMIOS(fd, x) ioctl(fd, TCGETS, x)
-# define SET_TERMIOS(fd, x) ioctl(fd, TCSETS, x)
-# else
-# define X(x,m) &(((TTY_Termio_Type *)(x))->m)
-# define GET_TERMIOS(fd, x) \
- ((ioctl(fd, TIOCGETC, X(x,t)) || \
- ioctl(fd, TIOCGLTC, X(x,lt)) || \
- ioctl(fd, TIOCGETP, X(x,s))) ? -1 : 0)
-# define SET_TERMIOS(fd, x) \
- ((ioctl(fd, TIOCSETC, X(x,t)) ||\
- ioctl(fd, TIOCSLTC, X(x,lt)) || \
- ioctl(fd, TIOCSETP, X(x,s))) ? -1 : 0)
-# endif
-#endif
-
-static int TTY_Inited = 0;
-static int TTY_Open = 0;
-
-#ifdef ultrix /* Ultrix gets _POSIX_VDISABLE wrong! */
-# define NULL_VALUE -1
-#else
-# ifdef _POSIX_VDISABLE
-# define NULL_VALUE _POSIX_VDISABLE
-# else
-# define NULL_VALUE 255
-# endif
-#endif
-
-int SLang_init_tty (int abort_char, int no_flow_control, int opost)
-{
- TTY_Termio_Type newtty;
-
- SLsig_block_signals ();
-
- if (TTY_Inited)
- {
- SLsig_unblock_signals ();
- return 0;
- }
-
- TTY_Open = 0;
-
- if ((SLang_TT_Read_FD == -1)
- || (1 != isatty (SLang_TT_Read_FD)))
- {
-#ifdef O_RDWR
-# ifndef __BEOS__ /* I have been told that BEOS will HANG if passed /dev/tty */
- if ((SLang_TT_Read_FD = open("/dev/tty", O_RDWR)) >= 0)
- {
- TTY_Open = 1;
- }
-# endif
-#endif
- if (TTY_Open == 0)
- {
- SLang_TT_Read_FD = fileno (stderr);
- if (1 != isatty (SLang_TT_Read_FD))
- {
- SLang_TT_Read_FD = fileno (stdin);
- if (1 != isatty (SLang_TT_Read_FD))
- {
- fprintf (stderr, "Failed to open terminal.");
- return -1;
- }
- }
- }
- }
-
- SLang_Abort_Char = abort_char;
-
- /* Some systems may not permit signals to be blocked. As a result, the
- * return code must be checked.
- */
- while (-1 == GET_TERMIOS(SLang_TT_Read_FD, &Old_TTY))
- {
- if (errno != EINTR)
- {
- SLsig_unblock_signals ();
- return -1;
- }
- }
-
- while (-1 == GET_TERMIOS(SLang_TT_Read_FD, &newtty))
- {
- if (errno != EINTR)
- {
- SLsig_unblock_signals ();
- return -1;
- }
- }
-
-#ifndef HAVE_TERMIOS_H
- newtty.s.sg_flags &= ~(ECHO);
- newtty.s.sg_flags &= ~(CRMOD);
- /* if (Flow_Control == 0) newtty.s.sg_flags &= ~IXON; */
- newtty.t.t_eofc = 1;
- if (abort_char == -1) SLang_Abort_Char = newtty.t.t_intrc;
- newtty.t.t_intrc = SLang_Abort_Char; /* ^G */
- newtty.t.t_quitc = 255;
- newtty.lt.t_suspc = 255; /* to ignore ^Z */
- newtty.lt.t_dsuspc = 255; /* to ignore ^Y */
- newtty.lt.t_lnextc = 255;
- newtty.s.sg_flags |= CBREAK; /* do I want cbreak or raw????? */
-#else
-
- /* get baud rate */
-
- newtty.c_iflag &= ~(ECHO | INLCR | ICRNL);
-#ifdef ISTRIP
- /* newtty.c_iflag &= ~ISTRIP; */
-#endif
- if (opost == 0) newtty.c_oflag &= ~OPOST;
-
- set_baud_rate (&newtty);
-
- if (no_flow_control) newtty.c_iflag &= ~IXON; else newtty.c_iflag |= IXON;
-
- newtty.c_cc[VEOF] = 1;
- newtty.c_cc[VMIN] = 1;
- newtty.c_cc[VTIME] = 0;
- newtty.c_lflag = ISIG | NOFLSH;
- if (abort_char == -1) SLang_Abort_Char = newtty.c_cc[VINTR];
- newtty.c_cc[VINTR] = SLang_Abort_Char; /* ^G */
- newtty.c_cc[VQUIT] = NULL_VALUE;
- newtty.c_cc[VSUSP] = NULL_VALUE; /* to ignore ^Z */
-#ifdef VDSUSP
- newtty.c_cc[VDSUSP] = NULL_VALUE; /* to ignore ^Y */
-#endif
-#ifdef VLNEXT
- newtty.c_cc[VLNEXT] = NULL_VALUE; /* to ignore ^V ? */
-#endif
-#ifdef VSWTCH
- newtty.c_cc[VSWTCH] = NULL_VALUE; /* to ignore who knows what */
-#endif
-#endif /* NOT HAVE_TERMIOS_H */
-
- while (-1 == SET_TERMIOS(SLang_TT_Read_FD, &newtty))
- {
- if (errno != EINTR)
- {
- SLsig_unblock_signals ();
- return -1;
- }
- }
-
- TTY_Inited = 1;
- SLsig_unblock_signals ();
- return 0;
-}
-
-void SLtty_set_suspend_state (int mode)
-{
- TTY_Termio_Type newtty;
-
- SLsig_block_signals ();
-
- if (TTY_Inited == 0)
- {
- SLsig_unblock_signals ();
- return;
- }
-
- while ((-1 == GET_TERMIOS (SLang_TT_Read_FD, &newtty))
- && (errno == EINTR))
- ;
-
-#ifndef HAVE_TERMIOS_H
- /* I do not know if all systems define the t_dsuspc field */
- if (mode == 0)
- {
- newtty.lt.t_suspc = 255;
- newtty.lt.t_dsuspc = 255;
- }
- else
- {
- newtty.lt.t_suspc = Old_TTY.lt.t_suspc;
- newtty.lt.t_dsuspc = Old_TTY.lt.t_dsuspc;
- }
-#else
- if (mode == 0)
- {
- newtty.c_cc[VSUSP] = NULL_VALUE;
-#ifdef VDSUSP
- newtty.c_cc[VDSUSP] = NULL_VALUE;
-#endif
- }
- else
- {
- newtty.c_cc[VSUSP] = Old_TTY.c_cc[VSUSP];
-#ifdef VDSUSP
- newtty.c_cc[VDSUSP] = Old_TTY.c_cc[VDSUSP];
-#endif
- }
-#endif
-
- while ((-1 == SET_TERMIOS (SLang_TT_Read_FD, &newtty))
- && (errno == EINTR))
- ;
-
- SLsig_unblock_signals ();
-}
-
-void SLang_reset_tty (void)
-{
- SLsig_block_signals ();
-
- if (TTY_Inited == 0)
- {
- SLsig_unblock_signals ();
- return;
- }
-
- while ((-1 == SET_TERMIOS(SLang_TT_Read_FD, &Old_TTY))
- && (errno == EINTR))
- ;
-
- if (TTY_Open)
- {
- while ((-1 == close (SLang_TT_Read_FD))
- && (errno == EINTR))
- ;
-
- TTY_Open = 0;
- SLang_TT_Read_FD = -1;
- }
-
- TTY_Inited = 0;
- SLsig_unblock_signals ();
-}
-
-static void default_sigint (int sig)
-{
- sig = errno; /* use parameter */
-
- SLKeyBoard_Quit = 1;
- if (SLang_Ignore_User_Abort == 0) SLang_Error = SL_USER_BREAK;
- SLsignal_intr (SIGINT, default_sigint);
- errno = sig;
-}
-
-int SLang_set_abort_signal (void (*hand)(int))
-{
- int save_errno = errno;
- SLSig_Fun_Type *f;
-
- if (hand == NULL) hand = default_sigint;
- f = SLsignal_intr (SIGINT, hand);
-
- errno = save_errno;
-
- if (f == (SLSig_Fun_Type *) SIG_ERR)
- return -1;
-
- return 0;
-}
-
-#ifndef FD_SET
-#define FD_SET(fd, tthis) *(tthis) = 1 << (fd)
-#define FD_ZERO(tthis) *(tthis) = 0
-#define FD_ISSET(fd, tthis) (*(tthis) & (1 << fd))
-typedef int fd_set;
-#endif
-
-static fd_set Read_FD_Set;
-
-/* HACK: If > 0, use 1/10 seconds. If < 0, use 1/1000 seconds */
-
-int _SLsys_input_pending(int tsecs)
-{
- struct timeval wait;
- long usecs, secs;
-
- if (TTY_Inited == 0) return -1;
-
- if (tsecs >= 0)
- {
- secs = tsecs / 10;
- usecs = (tsecs % 10) * 100000;
- }
- else
- {
- tsecs = -tsecs;
- secs = tsecs / 1000;
- usecs = (tsecs % 1000) * 1000;
- }
-
- wait.tv_sec = secs;
- wait.tv_usec = usecs;
-
- FD_ZERO(&Read_FD_Set);
- FD_SET(SLang_TT_Read_FD, &Read_FD_Set);
-
- return select(SLang_TT_Read_FD + 1, &Read_FD_Set, NULL, NULL, &wait);
-}
-
-int (*SLang_getkey_intr_hook) (void);
-
-static int handle_interrupt (void)
-{
- if (SLang_getkey_intr_hook != NULL)
- {
- int save_tty_fd = SLang_TT_Read_FD;
-
- if (-1 == (*SLang_getkey_intr_hook) ())
- return -1;
-
- if (save_tty_fd != SLang_TT_Read_FD)
- return -1;
- }
-
- return 0;
-}
-
-unsigned int _SLsys_getkey (void)
-{
- unsigned char c;
-
- if (TTY_Inited == 0)
- {
- int ic = fgetc (stdin);
- if (ic == EOF) return SLANG_GETKEY_ERROR;
- return (unsigned int) ic;
- }
-
- while (1)
- {
- int ret;
-
- if (SLKeyBoard_Quit)
- return SLang_Abort_Char;
-
- if (0 == (ret = _SLsys_input_pending (100)))
- continue;
-
- if (ret != -1)
- break;
-
- if (SLKeyBoard_Quit)
- return SLang_Abort_Char;
-
- if (errno == EINTR)
- {
- if (-1 == handle_interrupt ())
- return SLANG_GETKEY_ERROR;
-
- continue;
- }
-
- break; /* let read handle it */
- }
-
- while (1)
- {
- int status = read(SLang_TT_Read_FD, (char *) &c, 1);
-
- if (status > 0)
- break;
-
- if (status == 0)
- {
- /* We are at the end of a file. Let application handle it. */
- return SLANG_GETKEY_ERROR;
- }
-
- if (errno == EINTR)
- {
- if (-1 == handle_interrupt ())
- return SLANG_GETKEY_ERROR;
-
- if (SLKeyBoard_Quit)
- return SLang_Abort_Char;
-
- continue;
- }
-#ifdef EAGAIN
- if (errno == EAGAIN)
- {
- sleep (1);
- continue;
- }
-#endif
-#ifdef EWOULDBLOCK
- if (errno == EWOULDBLOCK)
- {
- sleep (1);
- continue;
- }
-#endif
-#ifdef EIO
- if (errno == EIO)
- {
- SLang_exit_error ("_SLsys_getkey: EIO error.");
- }
-#endif
- return SLANG_GETKEY_ERROR;
- }
-
- return((unsigned int) c);
-}
-
diff --git a/mdk-stage1/slang/slxstrng.c b/mdk-stage1/slang/slxstrng.c
deleted file mode 100644
index 3f8a4dffa..000000000
--- a/mdk-stage1/slang/slxstrng.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright (c) 1992, 1999, 2001 John E. Davis
- * This file is part of the S-Lang library.
- *
- * You may distribute under the terms of either the GNU General Public
- * License or the Perl Artistic License.
- */
-
-/* These routines are simple and inefficient. They were designed to work on
- * SunOS when using Electric Fence.
- */
-
-#include "slang.h"
-#include "_slang.h"
-char *SLstrcpy(register char *aa, register char *b)
-{
- char *a = aa;
- while ((*a++ = *b++) != 0);
- return aa;
-}
-
-int SLstrcmp(register char *a, register char *b)
-{
- while (*a && (*a == *b))
- {
- a++;
- b++;
- }
- if (*a) return((unsigned char) *a - (unsigned char) *b);
- else if (*b) return ((unsigned char) *a - (unsigned char) *b);
- else return 0;
-}
-
-char *SLstrncpy(char *a, register char *b,register int n)
-{
- register char *aa = a;
- while ((n > 0) && *b)
- {
- *aa++ = *b++;
- n--;
- }
- while (n-- > 0) *aa++ = 0;
- return (a);
-}
diff --git a/mdk-stage1/stage1.c b/mdk-stage1/stage1.c
index 505bf655c..94bb1e0df 100644
--- a/mdk-stage1/stage1.c
+++ b/mdk-stage1/stage1.c
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (was gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000-2004 Mandrakesoft
+ * Copyright 2000-2004 Mandriva
*
*
* This software may be freely redistributed under the terms of the GNU
@@ -34,6 +34,7 @@
#include <stdarg.h>
#include <signal.h>
#include <linux/unistd.h>
+#include <libldetect.h>
#include "stage1.h"
@@ -120,7 +121,7 @@ static pid_t shell_pid = 0;
static void spawn_shell(void)
{
int fd;
- char * shell_name[] = { "/sbin/sh", NULL };
+ char * shell_name[] = { "/bin/sh", NULL };
log_message("spawning a shell");
@@ -218,22 +219,18 @@ static void spawn_interactive(void)
static void handle_pcmcia(void)
{
char * pcmcia_adapter;
- if (kernel_version() == 2) {
- stg1_error_message("We now use kernel pcmcia support and this won't work with a 2.2 kernel.");
- return;
- }
pcmcia_adapter = pcmcia_probe();
if (!pcmcia_adapter) {
log_message("no pcmcia adapter found");
return;
}
- my_insmod("pcmcia_core", ANY_DRIVER_TYPE, NULL, 0);
- my_insmod(pcmcia_adapter, ANY_DRIVER_TYPE, NULL, 0);
+ my_modprobe("pcmcia_core", ANY_DRIVER_TYPE, NULL);
+ my_modprobe(pcmcia_adapter, ANY_DRIVER_TYPE, NULL);
/* ds is an alias for pcmcia in recent 2.6 kernels
but we don't have modules.alias in install, so try to load both */
- my_insmod("ds", ANY_DRIVER_TYPE, NULL, 0);
- my_insmod("pcmcia", ANY_DRIVER_TYPE, NULL, 0);
+ my_modprobe("ds", ANY_DRIVER_TYPE, NULL);
+ my_modprobe("pcmcia", ANY_DRIVER_TYPE, NULL);
/* setup a dynamic resource database for non statically mapped PCMCIA sockets */
pcmcia_socket_startup(-1);
@@ -242,6 +239,20 @@ static void handle_pcmcia(void)
}
#endif
+#ifndef ENABLE_NETWORK_STANDALONE
+static void handle_hid(void)
+{
+ struct hid_entries entry_list;
+ unsigned int i;
+
+ entry_list = hid_probe();
+ for (i = 0; i < entry_list.nb; i++) {
+ if (entry_list.entries[i].module != NULL)
+ my_modprobe(entry_list.entries[i].module, ANY_DRIVER_TYPE, NULL);
+ }
+ my_modprobe("hid_generic", ANY_DRIVER_TYPE, NULL);
+}
+
/************************************************************
*/
@@ -331,47 +342,19 @@ static void method_select_and_prepare(void)
/* try to find third party modules on the install media */
thirdparty_load_media_modules();
}
-
-static enum return_type create_initial_fs_symlinks(char* symlinks)
-{
- FILE *f;
- char buf[5000];
-
- if (scall(!(f = fopen(symlinks, "rb")), "fopen"))
- return RETURN_ERROR;
- while (fgets(buf, sizeof(buf), f)) {
- char oldpath[500], newpath[500];
- buf[strlen(buf)-1] = '\0'; // trim \n
- if (sscanf(buf, "%s %s", oldpath, newpath) != 2) {
- sprintf(oldpath, "%s%s", STAGE2_LOCATION, buf);
- sprintf(newpath, "%s", buf);
- }
- recursiveRemove_if_it_exists(newpath);
- log_message("creating symlink %s -> %s", oldpath, newpath);
- if (scall(symlink(oldpath, newpath), "symlink"))
- return RETURN_ERROR;
- }
- fclose(f);
- return RETURN_OK;
-}
+#endif
void finish_preparing(void)
{
- recursiveRemove("/init");
-
- if (create_initial_fs_symlinks(STAGE2_LOCATION "/usr/share/symlinks") != RETURN_OK)
- stg1_fatal_message("Fatal error finishing initialization.");
-
- /* /tmp/syslog is used by the second init, so it must be copied now, not in stage2 */
- /* we remove it to ensure the old one is not copied over it in stage2 */
-
#ifdef SPAWN_SHELL
if (shell_pid != 0) {
- int fd;
+ int fd;
+ const char *clear = "\033[H\033[J";
kill(shell_pid, 9);
+ log_message("killed shell");
fd = open("/dev/tty2", O_RDWR);
- write(fd, "Killed\n", 7);
- close(fd);
+ write(fd, clear, strlen(clear));
+ close(fd);
}
#endif
}
@@ -408,6 +391,8 @@ int main(int argc __attribute__ ((unused)), char **argv __attribute__ ((unused))
init_modules_insmoding();
init_frontend("Welcome to " DISTRIB_DESCR ", " __DATE__ " " __TIME__);
+ probe_that_type(VIRTIO_DEVICES, BUS_ANY);
+
/* load usb interface as soon as possible, helps usb mouse detection in stage2 */
probe_that_type(USB_CONTROLLERS, BUS_USB);
@@ -419,6 +404,8 @@ int main(int argc __attribute__ ((unused)), char **argv __attribute__ ((unused))
handle_pcmcia();
#endif
+ handle_hid();
+
if (IS_CHANGEDISK)
stg1_info_message("You are starting the installation with an alternate booting method. "
"Please change your disk, and insert the Installation disk.");
@@ -450,7 +437,7 @@ int main(int argc __attribute__ ((unused)), char **argv __attribute__ ((unused))
if (IS_RESCUE)
return 66; /* ask init to exec new init */
- else
- return 0x35; /* ask init to run stage2 binary */
+
+ return 0;
#endif
}
diff --git a/mdk-stage1/stage1.h b/mdk-stage1/stage1.h
index f21c6ab07..575241323 100644
--- a/mdk-stage1/stage1.h
+++ b/mdk-stage1/stage1.h
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
diff --git a/mdk-stage1/stdio-frontend.c b/mdk-stage1/stdio-frontend.c
index bf6d5abfc..8c09330b5 100644
--- a/mdk-stage1/stdio-frontend.c
+++ b/mdk-stage1/stdio-frontend.c
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -53,7 +53,7 @@ static void get_any_response(void)
while (read(0, &t, 1) > 0);
fcntl(0, F_SETFL, 0);
}
-
+
static int get_int_response(void)
{
char s[50];
@@ -76,7 +76,6 @@ static char * get_string_response(char * initial_string)
/* I won't use a scanf/%s since I also want the null string to be accepted -- also, I want the initial_string */
char s[500];
int i = 0;
- char buf[10];
int b_index = 0;
char b;
@@ -89,7 +88,7 @@ static char * get_string_response(char * initial_string)
strcpy(s, initial_string);
i = strlen(s);
}
-
+
/* from ncurses/tinfo/lib_raw.c:(cbreak) */
tcgetattr(0, &t);
t.c_lflag &= ~ICANON;
@@ -108,7 +107,6 @@ static char * get_string_response(char * initial_string)
if (read(0, &b, 1) > 0) {
if (b_index == 1) {
if (b == 91) {
- buf[b_index] = b;
b_index++;
continue;
}
@@ -131,7 +129,7 @@ static char * get_string_response(char * initial_string)
b_index = 0;
continue;
}
-
+
if (b == 13)
break;
if (b == 127) {
@@ -146,7 +144,6 @@ static char * get_string_response(char * initial_string)
i--;
}
} else if (b == 27) {
- buf[b_index] = b;
b_index++;
} else {
printf("%c", b);
@@ -226,7 +223,7 @@ void update_progression_raw(int current_size)
}
} else
printf("\033[GStatus: [%8d] bytes loaded...", current_size);
-
+
fflush(stdout);
}
@@ -275,7 +272,7 @@ enum return_type ask_from_list_index(char *msg, char ** elems, char ** elems_com
}
if (j == 4)
j = 0;
-
+
if (elems_comments)
elems_comments++;
i++;
@@ -328,7 +325,7 @@ enum return_type ask_from_entries(char *msg, char ** questions, char *** answers
}
if (*answers == NULL)
- *answers = (char **) malloc(sizeof(char *) * i);
+ *answers = (char **) calloc(1, sizeof(char *) * i);
else
already_answers = *answers;
diff --git a/mdk-stage1/sysfs/Makefile b/mdk-stage1/sysfs/Makefile
deleted file mode 100644
index 5cab07408..000000000
--- a/mdk-stage1/sysfs/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
- #******************************************************************************
- #
- # Guillaume Cottenceau (gc@mandrakesoft.com)
- # Olivier Blin (blino@mandriva.com)
- #
- # Copyright 2006 Mandriva
- #
- # This software may be freely redistributed under the terms of the GNU
- # public license.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program; if not, write to the Free Software
- # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- #
- #*****************************************************************************
-
-# minimal sysfs library ripped from sysfsutils-2.0.0
-
-top_dir = ..
-
-include $(top_dir)/Makefile.common
-
-TARGET = libsysfs.a
-
-all: $(TARGET)
-
-clean:
- rm -f *.o $(TARGET)
-
-FLAGS = -D__linux__ -Wall -Werror -Wno-deprecated-declarations -Os -fomit-frame-pointer -pipe -c -I.. -D_BSD_SOURCE
-
-OBJS = sysfs_attr.o sysfs_utils.o
-
-$(TARGET): $(OBJS)
- ar -cru $@ $^
- ranlib $@
-
-$(OBJS): %.o: %.c
- $(DIET) gcc $(FLAGS) $(INCLUDES) -c $< -o $@
diff --git a/mdk-stage1/sysfs/libsysfs.h b/mdk-stage1/sysfs/libsysfs.h
deleted file mode 100644
index 7bdf54fea..000000000
--- a/mdk-stage1/sysfs/libsysfs.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * libsysfs.h
- *
- * Header Definitions for libsysfs
- *
- * Copyright (C) IBM Corp. 2004-2005
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-#ifndef _LIBSYSFS_H_
-#define _LIBSYSFS_H_
-
-#include <sys/types.h>
-#include <string.h>
-
-#define SYSFS_FSTYPE_NAME "sysfs"
-#define SYSFS_PROC_MNTS "/proc/mounts"
-#define SYSFS_BUS_NAME "bus"
-#define SYSFS_CLASS_NAME "class"
-#define SYSFS_BLOCK_NAME "block"
-#define SYSFS_DEVICES_NAME "devices"
-#define SYSFS_DRIVERS_NAME "drivers"
-#define SYSFS_MODULE_NAME "module"
-#define SYSFS_NAME_ATTRIBUTE "name"
-#define SYSFS_MOD_PARM_NAME "parameters"
-#define SYSFS_MOD_SECT_NAME "sections"
-#define SYSFS_UNKNOWN "unknown"
-#define SYSFS_PATH_ENV "SYSFS_PATH"
-
-#define SYSFS_PATH_MAX 256
-#define SYSFS_NAME_LEN 64
-#define SYSFS_BUS_ID_SIZE 32
-
-/* mount path for sysfs, can be overridden by exporting SYSFS_PATH */
-#define SYSFS_MNT_PATH "/sys"
-
-enum sysfs_attribute_method {
- SYSFS_METHOD_SHOW = 0x01, /* attr can be read by user */
- SYSFS_METHOD_STORE = 0x02, /* attr can be changed by user */
-};
-
-/*
- * NOTE:
- * 1. We have the statically allocated "name" as the first element of all
- * the structures. This feature is used in the "sorter" function for dlists
- * 2. As is the case with attrlist
- * 3. As is the case with path
- */
-struct sysfs_attribute {
- char name[SYSFS_NAME_LEN];
- char path[SYSFS_PATH_MAX];
- char *value;
- unsigned short len; /* value length */
- enum sysfs_attribute_method method; /* show and store */
-};
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Function Prototypes
- */
-extern int sysfs_get_name_from_path(const char *path, char *name, size_t len);
-
-/* sysfs directory and file access */
-extern void sysfs_close_attribute(struct sysfs_attribute *sysattr);
-extern struct sysfs_attribute *sysfs_open_attribute(const char *path);
-extern int sysfs_read_attribute(struct sysfs_attribute *sysattr);
-extern int sysfs_write_attribute(struct sysfs_attribute *sysattr,
- const char *new_value, size_t len);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _LIBSYSFS_H_ */
diff --git a/mdk-stage1/sysfs/sysfs.h b/mdk-stage1/sysfs/sysfs.h
deleted file mode 100644
index 76754a421..000000000
--- a/mdk-stage1/sysfs/sysfs.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * sysfs.h
- *
- * Internal Header Definitions for libsysfs
- *
- * Copyright (C) IBM Corp. 2003-2005
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-#ifndef _SYSFS_H_
-#define _SYSFS_H_
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <ctype.h>
-#include <dirent.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <errno.h>
-
-#define safestrcpy(to, from) strncpy(to, from, sizeof(to)-1)
-#define safestrcat(to, from) strncat(to, from, sizeof(to) - strlen(to)-1)
-
-#define safestrcpymax(to, from, max) \
-do { \
- to[max-1] = '\0'; \
- strncpy(to, from, max-1); \
-} while (0)
-
-#define safestrcatmax(to, from, max) \
-do { \
- to[max-1] = '\0'; \
- strncat(to, from, max - strlen(to)-1); \
-} while (0)
-
-extern struct sysfs_attribute *get_attribute(void *dev, const char *name);
-extern struct dlist *read_dir_subdirs(const char *path);
-extern struct dlist *read_dir_links(const char *path);
-extern struct dlist *get_dev_attributes_list(void *dev);
-extern struct dlist *get_attributes_list(struct dlist *alist, const char *path);
-
-/* Debugging */
-#ifdef DEBUG
-#define dprintf(format, arg...) fprintf(stderr, format, ## arg)
-#else
-#define dprintf(format, arg...) do { } while (0)
-#endif
-
-#endif /* _SYSFS_H_ */
diff --git a/mdk-stage1/sysfs/sysfs_attr.c b/mdk-stage1/sysfs/sysfs_attr.c
deleted file mode 100644
index 6d6771188..000000000
--- a/mdk-stage1/sysfs/sysfs_attr.c
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- * sysfs_dir.c
- *
- * Directory utility functions for libsysfs
- *
- * Copyright (C) IBM Corp. 2003-2005
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-#include "libsysfs.h"
-#include "sysfs.h"
-
-/**
- * sysfs_close_attribute: closes and cleans up attribute
- * @sysattr: attribute to close.
- */
-void sysfs_close_attribute(struct sysfs_attribute *sysattr)
-{
- if (sysattr) {
- if (sysattr->value)
- free(sysattr->value);
- free(sysattr);
- }
-}
-
-/**
- * alloc_attribute: allocates and initializes attribute structure
- * returns struct sysfs_attribute with success and NULL with error.
- */
-static struct sysfs_attribute *alloc_attribute(void)
-{
- return (struct sysfs_attribute *)
- calloc(1, sizeof(struct sysfs_attribute));
-}
-
-/**
- * sysfs_open_attribute: creates sysfs_attribute structure
- * @path: path to attribute.
- * returns sysfs_attribute struct with success and NULL with error.
- */
-struct sysfs_attribute *sysfs_open_attribute(const char *path)
-{
- struct sysfs_attribute *sysattr = NULL;
- struct stat fileinfo;
-
- if (!path) {
- errno = EINVAL;
- return NULL;
- }
- sysattr = alloc_attribute();
- if (!sysattr) {
- dprintf("Error allocating attribute at %s\n", path);
- return NULL;
- }
- if (sysfs_get_name_from_path(path, sysattr->name,
- SYSFS_NAME_LEN) != 0) {
- dprintf("Error retrieving attrib name from path: %s\n", path);
- sysfs_close_attribute(sysattr);
- return NULL;
- }
- safestrcpy(sysattr->path, path);
- if ((stat(sysattr->path, &fileinfo)) != 0) {
- dprintf("Stat failed: No such attribute?\n");
- sysattr->method = 0;
- free(sysattr);
- sysattr = NULL;
- } else {
- if (fileinfo.st_mode & S_IRUSR)
- sysattr->method |= SYSFS_METHOD_SHOW;
- if (fileinfo.st_mode & S_IWUSR)
- sysattr->method |= SYSFS_METHOD_STORE;
- }
-
- return sysattr;
-}
-
-/**
- * sysfs_read_attribute: reads value from attribute
- * @sysattr: attribute to read
- * returns 0 with success and -1 with error.
- */
-int sysfs_read_attribute(struct sysfs_attribute *sysattr)
-{
- char *fbuf = NULL;
- char *vbuf = NULL;
- ssize_t length = 0;
- long pgsize = 0;
- int fd;
-
- if (!sysattr) {
- errno = EINVAL;
- return -1;
- }
- if (!(sysattr->method & SYSFS_METHOD_SHOW)) {
- dprintf("Show method not supported for attribute %s\n",
- sysattr->path);
- errno = EACCES;
- return -1;
- }
- pgsize = getpagesize();
- fbuf = (char *)calloc(1, pgsize+1);
- if (!fbuf) {
- dprintf("calloc failed\n");
- return -1;
- }
- if ((fd = open(sysattr->path, O_RDONLY)) < 0) {
- dprintf("Error reading attribute %s\n", sysattr->path);
- free(fbuf);
- return -1;
- }
- length = read(fd, fbuf, pgsize);
- if (length < 0) {
- dprintf("Error reading from attribute %s\n", sysattr->path);
- close(fd);
- free(fbuf);
- return -1;
- }
- if (sysattr->len > 0) {
- if ((sysattr->len == length) &&
- (!(strncmp(sysattr->value, fbuf, length)))) {
- close(fd);
- free(fbuf);
- return 0;
- }
- free(sysattr->value);
- }
- sysattr->len = length;
- close(fd);
- vbuf = (char *)realloc(fbuf, length+1);
- if (!vbuf) {
- dprintf("realloc failed\n");
- free(fbuf);
- return -1;
- }
- sysattr->value = vbuf;
-
- return 0;
-}
-
-/**
- * sysfs_write_attribute: write value to the attribute
- * @sysattr: attribute to write
- * @new_value: value to write
- * @len: length of "new_value"
- * returns 0 with success and -1 with error.
- */
-int sysfs_write_attribute(struct sysfs_attribute *sysattr,
- const char *new_value, size_t len)
-{
- int fd;
- int length;
-
- if (!sysattr || !new_value || len == 0) {
- errno = EINVAL;
- return -1;
- }
-
- if (!(sysattr->method & SYSFS_METHOD_STORE)) {
- dprintf ("Store method not supported for attribute %s\n",
- sysattr->path);
- errno = EACCES;
- return -1;
- }
- if (sysattr->method & SYSFS_METHOD_SHOW) {
- /*
- * read attribute again to see if we can get an updated value
- */
- if ((sysfs_read_attribute(sysattr))) {
- dprintf("Error reading attribute\n");
- return -1;
- }
- if ((strncmp(sysattr->value, new_value, sysattr->len)) == 0 &&
- (len == sysattr->len)) {
- dprintf("Attr %s already has the requested value %s\n",
- sysattr->name, new_value);
- return 0;
- }
- }
- /*
- * open O_WRONLY since some attributes have no "read" but only
- * "write" permission
- */
- if ((fd = open(sysattr->path, O_WRONLY)) < 0) {
- dprintf("Error reading attribute %s\n", sysattr->path);
- return -1;
- }
-
- length = write(fd, new_value, len);
- if (length < 0) {
- dprintf("Error writing to the attribute %s - invalid value?\n",
- sysattr->name);
- close(fd);
- return -1;
- } else if ((unsigned int)length != len) {
- dprintf("Could not write %zd bytes to attribute %s\n",
- len, sysattr->name);
- /*
- * since we could not write user supplied number of bytes,
- * restore the old value if one available
- */
- if (sysattr->method & SYSFS_METHOD_SHOW) {
- length = write(fd, sysattr->value, sysattr->len);
- close(fd);
- return -1;
- }
- }
-
- /*
- * Validate length that has been copied. Alloc appropriate area
- * in sysfs_attribute. Verify first if the attribute supports reading
- * (show method). If it does not, do not bother
- */
- if (sysattr->method & SYSFS_METHOD_SHOW) {
- if (length != sysattr->len) {
- sysattr->value = (char *)realloc
- (sysattr->value, length);
- sysattr->len = length;
- safestrcpymax(sysattr->value, new_value, length);
- } else {
- /*"length" of the new value is same as old one */
- safestrcpymax(sysattr->value, new_value, length);
- }
- }
-
- close(fd);
- return 0;
-}
-
diff --git a/mdk-stage1/sysfs/sysfs_utils.c b/mdk-stage1/sysfs/sysfs_utils.c
deleted file mode 100644
index a0354a8f8..000000000
--- a/mdk-stage1/sysfs/sysfs_utils.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * sysfs_utils.c
- *
- * System utility functions for libsysfs
- *
- * Copyright (C) IBM Corp. 2003-2005
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-#include "libsysfs.h"
-#include "sysfs.h"
-
-/**
- * sysfs_get_name_from_path: returns last name from a "/" delimited path
- * @path: path to get name from
- * @name: where to put name
- * @len: size of name
- */
-int sysfs_get_name_from_path(const char *path, char *name, size_t len)
-{
- char tmp[SYSFS_PATH_MAX];
- char *n = NULL;
-
- if (!path || !name || len == 0) {
- errno = EINVAL;
- return -1;
- }
- memset(tmp, 0, SYSFS_PATH_MAX);
- safestrcpy(tmp, path);
- n = strrchr(tmp, '/');
- if (n == NULL) {
- errno = EINVAL;
- return -1;
- }
- if (*(n+1) == '\0') {
- *n = '\0';
- n = strrchr(tmp, '/');
- if (n == NULL) {
- errno = EINVAL;
- return -1;
- }
- }
- n++;
- safestrcpymax(name, n, len);
- return 0;
-}
diff --git a/mdk-stage1/thirdparty.c b/mdk-stage1/thirdparty.c
index dcdb77062..78bbf485a 100644
--- a/mdk-stage1/thirdparty.c
+++ b/mdk-stage1/thirdparty.c
@@ -1,8 +1,8 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
- * Olivier Blin (oblin@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
+ * Olivier Blin (oblin)
*
- * Copyright 2005 Mandrakesoft
+ * Copyright 2005 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -68,7 +68,7 @@ static enum return_type thirdparty_choose_device(char ** device, int probe_only)
#endif
floppy_dev = floppy_device();
- if (strstr(floppy_dev, "/dev/") == floppy_dev) {
+ if (floppy_dev && strstr(floppy_dev, "/dev/") == floppy_dev) {
floppy_dev = floppy_dev + 5;
}
if (floppy_dev)
@@ -132,7 +132,7 @@ static enum return_type thirdparty_choose_device(char ** device, int probe_only)
return results;
}
- if (streq(*device, floppy_dev)) {
+ if (floppy_dev && streq(*device, floppy_dev)) {
/* a floppy is selected, don't try to list partitions */
return RETURN_OK;
}
@@ -244,7 +244,7 @@ static void thirdparty_load_pcitable(const char *modules_location)
char pcitable_filename[100];
FILE * f = NULL;
- sprintf(pcitable_filename, "%s/pcitable", modules_location);
+ snprintf(pcitable_filename, sizeof(pcitable_filename), "%s/pcitable", modules_location);
if (!(f = fopen(pcitable_filename, "rb"))) {
log_message("third_party: no external pcitable found");
return;
@@ -333,7 +333,7 @@ static enum return_type thirdparty_autoload_modules(const char *modules_location
entry++;
}
if (!entry || !*entry) {
- enum insmod_return ret = my_insmod(module, ANY_DRIVER_TYPE, options, 0);
+ enum insmod_return ret = my_modprobe(module, ANY_DRIVER_TYPE, options);
if (ret != INSMOD_OK) {
log_message("\t%s (marfile): failed", module);
stg1_error_message("Insmod %s (marfile) failed.", module);
diff --git a/mdk-stage1/thirdparty.h b/mdk-stage1/thirdparty.h
index c999d6a58..1c2ac2a05 100644
--- a/mdk-stage1/thirdparty.h
+++ b/mdk-stage1/thirdparty.h
@@ -1,8 +1,8 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
- * Olivier Blin (oblin@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
+ * Olivier Blin (oblin)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
diff --git a/mdk-stage1/tools.c b/mdk-stage1/tools.c
index 6a024eedd..2e27688ea 100644
--- a/mdk-stage1/tools.c
+++ b/mdk-stage1/tools.c
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -148,65 +148,6 @@ enum return_type copy_file(char * from, char * to, void (*callback_func)(int ove
}
}
-enum return_type recursiveRemove(char *file)
-{
- struct stat sb;
-
- if (lstat(file, &sb) != 0) {
- log_message("failed to stat %s: %d", file, errno);
- return RETURN_ERROR;
- }
-
- /* only descend into subdirectories if device is same as dir */
- if (S_ISDIR(sb.st_mode)) {
- char * strBuf = alloca(strlen(file) + 1024);
- DIR * dir;
- struct dirent * d;
-
- if (!(dir = opendir(file))) {
- log_message("error opening %s: %d", file, errno);
- return RETURN_ERROR;
- }
- while ((d = readdir(dir))) {
- if (!strcmp(d->d_name, ".") || !strcmp(d->d_name, ".."))
- continue;
-
- strcpy(strBuf, file);
- strcat(strBuf, "/");
- strcat(strBuf, d->d_name);
-
- if (recursiveRemove(strBuf) != 0) {
- closedir(dir);
- return RETURN_ERROR;
- }
- }
- closedir(dir);
-
- if (rmdir(file)) {
- log_message("failed to rmdir %s: %d", file, errno);
- return RETURN_ERROR;
- }
- } else {
- if (unlink(file) != 0) {
- log_message("failed to remove %s: %d", file, errno);
- return RETURN_ERROR;
- }
- }
- return RETURN_OK;
-}
-
-enum return_type recursiveRemove_if_it_exists(char *file)
-{
- struct stat sb;
-
- if (lstat(file, &sb) != 0) {
- /* if file doesn't exist, simply return OK */
- return RETURN_OK;
- }
-
- return recursiveRemove(file);
-}
-
enum return_type mount_compressed_image(char *compressed_image, char *location_mount)
{
if (lomount(compressed_image, location_mount, NULL, 1)) {
@@ -272,13 +213,7 @@ int try_mount(char * dev, char * location)
char device_fullname[50];
snprintf(device_fullname, sizeof(device_fullname), "/dev/%s", dev);
- if (my_mount(device_fullname, location, "ext2", 0) == -1 &&
- my_mount(device_fullname, location, "vfat", 0) == -1 &&
- my_mount(device_fullname, location, "ntfs", 0) == -1 &&
- my_mount(device_fullname, location, "reiserfs", 0) == -1 &&
- my_mount(device_fullname, location, "jfs", 0) == -1 &&
- my_mount(device_fullname, location, "xfs", 0) == -1 &&
- my_mount(device_fullname, location, "iso9660", 0) == -1) {
+ if (my_mount(device_fullname, location, "auto", 0) == -1) {
return 1;
}
@@ -291,8 +226,8 @@ int get_disks(char *** names, char *** models)
char ** ptr;
int count = 0;
- my_insmod("ide_disk", ANY_DRIVER_TYPE, NULL, 0);
- my_insmod("sd_mod", ANY_DRIVER_TYPE, NULL, 0);
+ my_modprobe("ide_disk", ANY_DRIVER_TYPE, NULL);
+ my_modprobe("sd_mod", ANY_DRIVER_TYPE, NULL);
get_medias(DISK, names, models, BUS_ANY);
@@ -312,8 +247,8 @@ int get_cdroms(char *** names, char *** models)
char ** ptr;
int count = 0;
- my_insmod("ide_cd", ANY_DRIVER_TYPE, NULL, 0);
- my_insmod("sr_mod", ANY_DRIVER_TYPE, NULL, 0);
+ my_modprobe("ide_cd_mod", ANY_DRIVER_TYPE, NULL);
+ my_modprobe("sr_mod", ANY_DRIVER_TYPE, NULL);
get_medias(CDROM, names, models, BUS_ANY);
@@ -331,7 +266,7 @@ char * floppy_device(void)
{
char ** names, ** models;
int fd;
- my_insmod("floppy", ANY_DRIVER_TYPE, NULL, 0);
+ my_modprobe("floppy", ANY_DRIVER_TYPE, NULL);
fd = open("/dev/fd0", O_RDONLY|O_NONBLOCK);
if (fd != -1) {
char drivtyp[17];
@@ -351,10 +286,10 @@ char * floppy_device(void)
close(fd);
}
log_message("seems that you don't have a regular floppy drive");
- my_insmod("sd_mod", ANY_DRIVER_TYPE, NULL, 0);
+ my_modprobe("sd_mod", ANY_DRIVER_TYPE, NULL);
get_medias(FLOPPY, &names, &models, BUS_ANY);
if (names && *names)
return asprintf_("/dev/%s", *names);
else
- return "/dev/fd0";
+ return NULL;
}
diff --git a/mdk-stage1/tools.h b/mdk-stage1/tools.h
index 85ff42196..87c0c1d49 100644
--- a/mdk-stage1/tools.h
+++ b/mdk-stage1/tools.h
@@ -1,8 +1,8 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -24,14 +24,11 @@
#define _TOOLS_H_
#include <stdlib.h>
-#include "bootsplash.h"
int image_has_stage2();
enum return_type create_IMAGE_LOCATION(char *location_full);
int ramdisk_possible(void);
enum return_type copy_file(char * from, char * to, void (*callback_func)(int overall));
-enum return_type recursiveRemove(char *file);
-enum return_type recursiveRemove_if_it_exists(char *file);
enum return_type preload_mount_compressed_fd(int compressed_fd, int image_size, char *image_name, char *location_mount);
enum return_type mount_compressed_image(char *compressed_image, char *location_mount);
enum return_type mount_compressed_image_may_preload(char *image_name, char *location_mount, int preload);
diff --git a/mdk-stage1/pci-resource/update-pci-ids.pl b/mdk-stage1/update-pci-ids.pl
index 118cfb31d..1b084ea80 100755
--- a/mdk-stage1/pci-resource/update-pci-ids.pl
+++ b/mdk-stage1/update-pci-ids.pl
@@ -6,12 +6,13 @@ use MDK::Common;
my %t = (
- network => 'network/main|gigabit|tokenring|wireless|pcmcia',
- medias => 'disk/ide|scsi|hardware_raid|sata',
+ network => 'network/main|gigabit|pcmcia|virtual|wireless',
+ medias_ide => 'disk/ide',
+ medias_other => 'disk/scsi|hardware_raid|sata|virtual bus/firewire',
);
foreach my $type (keys %t) {
- my @modules = chomp_(`perl ../../kernel/modules.pl pci_modules4stage1 "$t{$type}"`)
+ my @modules = chomp_(`perl ../kernel/modules.pl pci_modules4stage1 "$t{$type}"`)
or die "unable to get PCI modules";
print "#ifndef DISABLE_".uc($type)."
diff --git a/mdk-stage1/pcmcia-resource/update-pcmcia-ids.pl b/mdk-stage1/update-pcmcia-ids.pl
index 67e0ca9a7..9eb25c66e 100755
--- a/mdk-stage1/pcmcia-resource/update-pcmcia-ids.pl
+++ b/mdk-stage1/update-pcmcia-ids.pl
@@ -25,7 +25,7 @@ my %t = (
);
foreach my $type (keys %t) {
- my @modules = chomp_(`perl ../../kernel/modules.pl pci_modules4stage1 "$t{$type}"`)
+ my @modules = chomp_(`perl ../kernel/modules.pl pci_modules4stage1 "$t{$type}"`)
or die "unable to get PCMCIA modules";
print "#ifndef DISABLE_".uc($type)."
diff --git a/mdk-stage1/usb-resource/update-usb-ids.pl b/mdk-stage1/update-usb-ids.pl
index 9d6ca1cfc..1ea45f9df 100755
--- a/mdk-stage1/usb-resource/update-usb-ids.pl
+++ b/mdk-stage1/update-usb-ids.pl
@@ -4,7 +4,7 @@ use lib '../kernel';
use strict;
use MDK::Common;
-my @modules = chomp_(`perl ../../kernel/modules.pl pci_modules4stage1 "bus/usb"`)
+my @modules = chomp_(`perl ../kernel/modules.pl pci_modules4stage1 "bus/usb"`)
or die "unable to get USB controller modules";
print "char *usb_controller_modules[] = {
";
@@ -13,7 +13,7 @@ print "};
unsigned int usb_controller_modules_len = sizeof(usb_controller_modules) / sizeof(char *);
";
-@modules = chomp_(`perl ../../kernel/modules.pl pci_modules4stage1 "network/usb disk/usb"`)
+@modules = chomp_(`perl ../kernel/modules.pl pci_modules4stage1 "network/usb disk/usb"`)
or die "unable to get USB modules";
print "char *usb_modules[] = {
diff --git a/mdk-stage1/url.c b/mdk-stage1/url.c
index 77233847e..14f1e25d6 100644
--- a/mdk-stage1/url.c
+++ b/mdk-stage1/url.c
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -398,9 +398,10 @@ char *str_ftp_error(int error)
}
-static int _http_download_file(char * hostname, char * remotename, int * size, char * proxyprotocol, char * proxyname, char * proxyport, int recursion)
+static int _http_download_file(char * hostport, char * remotename, int * size, char * proxyprotocol, char * proxyname, char * proxyport, int recursion)
{
char * buf;
+ char * hostname = strdup(hostport);
char headers[4096];
char * nextChar = headers;
int statusCode;
@@ -418,8 +419,15 @@ static int _http_download_file(char * hostname, char * remotename, int * size, c
http_server_name = proxyname;
http_server_port = atoi(proxyport);
} else {
- http_server_name = hostname;
- http_server_port = 80;
+ char *port = strchr(hostname, ':');
+ if (port) {
+ *port = '\0';
+ http_server_name = hostname;
+ http_server_port = atoi(++port);
+ } else {
+ http_server_name = hostname;
+ http_server_port = 80;
+ }
}
log_message("HTTP: connecting to server %s:%i (%s)",
@@ -430,6 +438,7 @@ static int _http_download_file(char * hostname, char * remotename, int * size, c
sock = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
if (sock < 0) {
+ free(hostname);
return FTPERR_FAILED_CONNECT;
}
@@ -439,6 +448,7 @@ static int _http_download_file(char * hostname, char * remotename, int * size, c
if (connect(sock, (struct sockaddr *) &destPort, sizeof(destPort))) {
close(sock);
+ free(hostname);
return FTPERR_FAILED_CONNECT;
}
@@ -446,6 +456,7 @@ static int _http_download_file(char * hostname, char * remotename, int * size, c
: asprintf_("GET %s HTTP/1.0\r\nHost: %s\r\n\r\n", remotename, hostname);
write(sock, buf, strlen(buf));
+ free(hostname);
/* This is fun; read the response a character at a time until we:
diff --git a/mdk-stage1/url.h b/mdk-stage1/url.h
index 7a9dcfb4b..2c80e4432 100644
--- a/mdk-stage1/url.h
+++ b/mdk-stage1/url.h
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
diff --git a/mdk-stage1/usb-resource/Makefile b/mdk-stage1/usb-resource/Makefile
deleted file mode 100644
index 5b6806b84..000000000
--- a/mdk-stage1/usb-resource/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
- #******************************************************************************
- #
- # $Id$
- #
- # Guillaume Cottenceau (gc@mandrakesoft.com)
- #
- # Copyright 2000 Mandrakesoft
- #
- # This software may be freely redistributed under the terms of the GNU
- # public license.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program; if not, write to the Free Software
- # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- #
- #*****************************************************************************
-
-
-all: usb-ids.h
-
-usb-ids.h: /usr/share/ldetect-lst/usbtable.gz update-usb-ids.pl
- perl update-usb-ids.pl > $@ || rm -f $@
-
-clean:
- rm -f usb-ids.h
diff --git a/mdk-stage1/utils.c b/mdk-stage1/utils.c
index 4846a0aea..6ad3a8f6f 100644
--- a/mdk-stage1/utils.c
+++ b/mdk-stage1/utils.c
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -14,12 +14,14 @@
#include <stdlib.h>
#include <stdio.h>
+#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <ctype.h>
#include <dirent.h>
+#include <sys/sysinfo.h>
#include <sys/utsname.h>
#include "utils.h"
@@ -82,16 +84,19 @@ int line_counts(const char * buf) {
int total_memory(void)
{
int value;
-
- /* drakx powered: use /proc/kcore and rounds every 4 Mbytes */
- value = 4 * ((int)((float)file_size("/proc/kcore") / 1024 / 1024 / 4 + 0.5));
+ struct sysinfo sys_info;
+ if (sysinfo(&sys_info) < 0) {
+ log_perror("sysinfo");
+ return 0;
+ }
+ value = sys_info.totalram * sys_info.mem_unit / 1024 / 1024;
log_message("Total Memory: %d Mbytes", value);
return value;
}
/* pixel's */
-void * memdup(void *src, size_t size)
+void * _memdup(void *src, size_t size)
{
void * r;
r = malloc(size);
@@ -127,7 +132,7 @@ char ** list_directory(char * direct)
if (dp)
closedir(dp);
tmp[i] = NULL;
- return memdup(tmp, sizeof(char*) * (i+1));
+ return _memdup(tmp, sizeof(char*) * (i+1));
}
@@ -143,16 +148,6 @@ int string_array_length(char ** a)
return i;
}
-int kernel_version(void)
-{
- struct utsname val;
- if (uname(&val)) {
- log_perror("uname failed");
- return -1;
- }
- return charstar_to_int(val.release + 2);
-}
-
char * asprintf_(const char *msg, ...)
{
int n;
@@ -171,14 +166,6 @@ char * asprintf_(const char *msg, ...)
return strdup("");
}
-int scall_(int retval, char * msg, char * file, int line)
-{
- char tmp[5000];
- sprintf(tmp, "%s(%s:%d) failed", msg, file, line);
- if (retval)
- log_perror(tmp);
- return retval;
-}
void lowercase(char *s)
{
@@ -188,3 +175,17 @@ void lowercase(char *s)
i++;
}
}
+
+char *my_dirname(char *path) {
+ char *p = strrchr (path, '/');
+ char *tmp;
+ int len;
+ if (!p)
+ return path;
+ len = p-path+1;
+ tmp = malloc(len);
+ strncpy(tmp, path, len-1);
+ tmp[len-1] = '\0';
+ return tmp;
+}
+
diff --git a/mdk-stage1/utils.h b/mdk-stage1/utils.h
index 3270fda70..b8a77b0ad 100644
--- a/mdk-stage1/utils.h
+++ b/mdk-stage1/utils.h
@@ -1,7 +1,7 @@
/*
- * Guillaume Cottenceau (gc@mandrakesoft.com)
+ * Guillaume Cottenceau (gc)
*
- * Copyright 2000 Mandrakesoft
+ * Copyright 2000 Mandriva
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -15,19 +15,19 @@
#ifndef _UTILS_H_
#define _UTILS_H_
+#include <sys/stat.h>
+
int charstar_to_int(const char * s);
off_t file_size(const char * path);
char * cat_file(const char * file, struct stat * s);
int line_counts(const char * buf);
int total_memory(void);
-void * memdup(void *src, size_t size);
+void * _memdup(void *src, size_t size);
void add_to_env(char * name, char * value);
char ** list_directory(char * direct);
int string_array_length(char ** a);
-int kernel_version(void);
char * asprintf_(const char *msg, ...);
-int scall_(int retval, char * msg, char * file, int line);
-#define scall(retval, msg) scall_(retval, msg, __FILE__, __LINE__)
+char *my_dirname(char *path);
void lowercase(char *s);
#define ptr_begins_static_str(pointer,static_str) (!strncmp(pointer,static_str,sizeof(static_str)-1))
diff --git a/mdk-stage1/wireless.c b/mdk-stage1/wireless.c
index ca0387fce..2fde04f84 100644
--- a/mdk-stage1/wireless.c
+++ b/mdk-stage1/wireless.c
@@ -1,7 +1,9 @@
/*
- * Olivier Blin (oblin@mandriva.com)
+ * Olivier Blin (oblin)
+ * Martin Whitaker (martinw)
*
* Copyright 2005 Mandriva
+ * Copyright 2020 Mageia
*
* This software may be freely redistributed under the terms of the GNU
* public license.
@@ -16,7 +18,9 @@
#include <sys/types.h>
#include <sys/socket.h>
#include <errno.h>
+#include <signal.h>
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <linux/types.h>
@@ -29,11 +33,10 @@
#include "utils.h"
#include "wireless.h"
-static int wireless_ioctl(int socket, const char *ifname, int request, struct iwreq *wrq);
-static int wireless_set_mode_managed(int socket, const char *ifname);
-static int wireless_disable_key(int socket, const char *ifname);
-static int wireless_set_restricted_key(int socket, const char *ifname, const char *key);
-static int wireless_set_essid(int socket, const char *ifname, const char *essid);
+#define WPA_SUPPLICANT_CONF "/etc/wpa_supplicant.conf"
+#define WPA_SUPPLICANT_CTRL "/var/run/wpa_supplicant"
+#define WPA_SUPPLICANT_LOG "/var/log/wpa_supplicant.log"
+#define WPA_SUPPLICANT_PID "/var/run/wpa_supplicant.pid"
int wireless_open_socket()
{
@@ -57,104 +60,101 @@ int wireless_is_aware(int socket, const char *ifname)
return wireless_ioctl(socket, ifname, SIOCGIWNAME, &wrq) == 0;
}
-static int wireless_set_mode_managed(int socket, const char *ifname)
-{
- struct iwreq wrq;
-
- wrq.u.mode = IW_MODE_INFRA; /* managed */
-
- return wireless_ioctl(socket, ifname, SIOCSIWMODE, &wrq) == 0;
-}
-
-static int wireless_set_essid(int socket, const char *ifname, const char *essid)
-{
- struct iwreq wrq;
-
- wrq.u.essid.flags = 1;
- wrq.u.essid.pointer = (void *) essid;
- wrq.u.essid.length = strlen(essid) + 1;
-
- return wireless_ioctl(socket, ifname, SIOCSIWESSID, &wrq) == 0;
-}
-
-static int wireless_disable_key(int socket, const char *ifname)
-{
- struct iwreq wrq;
-
- wrq.u.data.flags = IW_ENCODE_DISABLED;
- wrq.u.data.pointer = NULL;
- wrq.u.data.length = 0;
-
- return wireless_ioctl(socket, ifname, SIOCSIWENCODE, &wrq) == 0;
-}
-
-static int wireless_set_restricted_key(int socket, const char *ifname, const char *key)
-{
- struct iwreq wrq;
- char real_key[IW_ENCODING_TOKEN_MAX];
- int key_len = 0;
- unsigned int tmp;
-
- while (sscanf(key + 2*key_len, "%2X", &tmp) == 1)
- real_key[key_len++] = (char) tmp;
-
- wrq.u.data.flags = IW_ENCODE_RESTRICTED;
- wrq.u.data.pointer = (char *) real_key;
- wrq.u.data.length = key_len;
-
- return wireless_ioctl(socket, ifname, SIOCSIWENCODE, &wrq) == 0;
-}
-
enum return_type configure_wireless(const char *ifname)
{
enum return_type results;
- char * questions[] = { "ESSID", "WEP key", NULL };
- char * questions_auto[] = { "essid", "wep_key" };
+ char * security[] = { "No security", "WEP", "WPA/WPA2 Personal", NULL };
+ char * security_auto[] = { "none", "wep", "wpa_psk", NULL };
+ char * choice = NULL;
+ char * message = NULL;
+ char * questions[] = { "ESSID", "", NULL };
+ char * questions_auto[] = { "essid", "" };
+ char * key_mgmt = NULL;
static char ** answers = NULL;
- int wsock = wireless_open_socket();
+ FILE * fd;
+ char cmd[256];
+ int status;
+ int wsock = wireless_open_socket();
if (!wireless_is_aware(wsock, ifname)) {
log_message("interface %s doesn't support wireless", ifname);
wireless_close_socket(wsock);
return RETURN_OK;
}
+ wireless_close_socket(wsock);
- results = ask_from_entries_auto("Please enter your wireless settings. "
- "The ESSID is your wireless network identifier. "
- "The WEP key must be entered in hexadecimal, without any separator.",
- questions, &answers, 32, questions_auto, NULL);
+ results = ask_from_list_auto("Please select your wireless security mode.",
+ security, &choice, "wireless_security", security_auto);
if (results != RETURN_OK) {
- wireless_close_socket(wsock);
return RETURN_BACK;
}
- if (!wireless_set_mode_managed(wsock, ifname)) {
- stg1_error_message("unable to set mode Managed on device \"%s\": %s", ifname, strerror(errno));
- wireless_close_socket(wsock);
- return RETURN_ERROR;
+ if (streq(choice, security[2])) {
+ message = "Please enter your wireless settings. "
+ "The ESSID is your wireless network identifier. "
+ "The passphrase must be a string of between 8 and 63 ASCII characters.";
+ questions[1] = "passphrase";
+ questions_auto[1] = "wpa_psk";
+ key_mgmt = "WPA-PSK";
+ } else if (streq(choice, security[1])) {
+ message = "Please enter your wireless settings. "
+ "The ESSID is your wireless network identifier. "
+ "The WEP key must be either a string of 10 or 26 hexadecimal digits, without any separators, "
+ "or a string of 5 or 13 ASCII characters enclosed in double quote marks (e.g. \"12345\").";
+ questions[1] = "WEP key";
+ questions_auto[1] = "wep_key";
+ key_mgmt = "NONE";
+ } else {
+ message = "Please enter your wireless settings. "
+ "The ESSID is your wireless network identifier.";
+ questions[1] = NULL;
+ questions_auto[1] = NULL;
+ key_mgmt = "NONE";
+ }
+ results = ask_from_entries_auto(message, questions, &answers, 32, questions_auto, NULL);
+ if (results != RETURN_OK) {
+ return RETURN_BACK;
}
- if (answers[1] && !streq(answers[1], "")) {
- log_message("setting WEP key \"%s\" on device \"%s\"", answers[1], ifname);
- if (!wireless_set_restricted_key(wsock, ifname, answers[1])) {
- stg1_error_message("unable to set WEP key \"%s\" on device \"%s\": %s", answers[1], ifname, strerror(errno));
- return RETURN_ERROR;
- }
- } else {
- log_message("disabling WEP key on device \"%s\"", ifname);
- if (!wireless_disable_key(wsock, ifname)) {
- stg1_error_message("unable to disable WEP key on device \"%s\": %s", ifname, strerror(errno));
- return RETURN_ERROR;
+ fd = fopen(WPA_SUPPLICANT_PID, "r");
+ if (fd) {
+ unsigned pid = 0;
+ unsigned count = fscanf(fd, "%u", &pid);
+ fclose(fd);
+ if (count == 1 && pid > 1) {
+ log_message("terminating wpa_supplicant (pid %u)", pid);
+ kill(pid, SIGQUIT);
+ sleep(1);
}
}
- /* most devices perform discovery when ESSID is set, it needs to be last */
- log_message("setting ESSID \"%s\" on device \"%s\"", answers[0], ifname);
- if (!wireless_set_essid(wsock, ifname, answers[0])) {
- stg1_error_message("unable to set ESSID \"%s\" on device \"%s\": %s", answers[0], ifname, strerror(errno));
+ fd = fopen(WPA_SUPPLICANT_CONF, "w");
+ if (fd == NULL) {
+ stg1_error_message("unable to create " WPA_SUPPLICANT_CONF ": %s", strerror(errno));
+ return RETURN_ERROR;
+ }
+ fprintf(fd, "ctrl_interface=" WPA_SUPPLICANT_CTRL "\n");
+ fprintf(fd, "ap_scan=1\n");
+ fprintf(fd, "network={\n");
+ fprintf(fd, " key_mgmt=%s\n", key_mgmt);
+ fprintf(fd, " scan_ssid=1\n");
+ fprintf(fd, " ssid=\"%s\"\n", answers[0]);
+ if (streq(choice, security[2])) {
+ fprintf(fd, " psk=\"%s\"\n", answers[1]);
+ } else if (streq(choice, security[1])) {
+ fprintf(fd, " wep_key0=%s\n", answers[1]);
+ }
+ fprintf(fd, "}\n");
+ fclose(fd);
+
+ snprintf(cmd, sizeof(cmd), "/usr/sbin/wpa_supplicant -D nl80211,wext -B -i %s -c %s -f %s -P %s",
+ ifname, WPA_SUPPLICANT_CONF, WPA_SUPPLICANT_LOG, WPA_SUPPLICANT_PID);
+ log_message("running %s", cmd);
+ status = system(cmd);
+ if (status != 0) {
+ stg1_error_message("unable to start wpa_supplicant daemon for interface \"%s\": %d", ifname, status);
return RETURN_ERROR;
}
- wireless_close_socket(wsock);
return RETURN_OK;
}
diff --git a/mdk-stage1/wireless.h b/mdk-stage1/wireless.h
index 3e5bb7790..7443f5c99 100644
--- a/mdk-stage1/wireless.h
+++ b/mdk-stage1/wireless.h
@@ -1,5 +1,5 @@
/*
- * Olivier Blin (oblin@mandriva.com)
+ * Olivier Blin (oblin)
*
* Copyright 2005 Mandriva
*
diff --git a/mdk-stage1/zlibsupport.c b/mdk-stage1/zlibsupport.c
index ecbe7a5ef..2b171e72d 100644
--- a/mdk-stage1/zlibsupport.c
+++ b/mdk-stage1/zlibsupport.c
@@ -11,23 +11,210 @@
#include <stdlib.h>
#include <unistd.h>
#include <sys/mman.h>
+#include <stdio.h>
+#include <errno.h>
#include "zlibsupport.h"
+#define CONFIG_USE_LIBLZMA
#ifdef CONFIG_USE_ZLIB
#include <zlib.h>
+#ifdef CONFIG_USE_LIBLZMA
+#include <lzma.h>
-void *grab_contents(gzFile *gzfd, unsigned long *size)
+typedef struct lzma_file {
+ uint8_t buf[1<<14];
+ lzma_stream strm;
+ FILE *fp;
+ lzma_bool eof;
+} lzma_FILE;
+#else
+typedef unsigned char lzma_bool;
+typedef int lzma_ret;
+#define LZMA_OK 0
+#endif
+
+typedef enum xFile_e {
+ XF_NONE,
+ XF_GZIP,
+ XF_XZ,
+ XF_FAIL
+} xFile_t;
+
+typedef struct xFile_s {
+ xFile_t type;
+ lzma_bool eof;
+ union {
+ gzFile gz;
+#ifdef CONFIG_USE_LIBLZMA
+ lzma_FILE *xz;
+#endif
+ } f;
+ FILE *fp;
+} xFile;
+
+#ifdef CONFIG_USE_LIBLZMA
+static lzma_FILE *lzma_open(lzma_ret *lzma_error, FILE *fp)
+{
+ lzma_ret *ret = lzma_error;
+ lzma_FILE *lzma_file;
+ lzma_stream tmp = LZMA_STREAM_INIT;
+
+ lzma_file = calloc(1, sizeof(*lzma_file));
+
+ lzma_file->fp = fp;
+ lzma_file->eof = 0;
+ lzma_file->strm = tmp;
+
+ *ret = lzma_auto_decoder(&lzma_file->strm, -1, 0);
+
+ if (*ret != LZMA_OK) {
+ (void) fclose(lzma_file->fp);
+ free(lzma_file);
+ return NULL;
+ }
+ return lzma_file;
+}
+
+static ssize_t lzma_read(lzma_ret *lzma_error, lzma_FILE *lzma_file, void *buf, size_t len)
+{
+ lzma_ret *ret = lzma_error;
+ lzma_bool eof = 0;
+
+ if (!lzma_file)
+ return -1;
+ if (lzma_file->eof)
+ return 0;
+
+ lzma_file->strm.next_out = buf;
+ lzma_file->strm.avail_out = len;
+ for (;;) {
+ if (!lzma_file->strm.avail_in) {
+ lzma_file->strm.next_in = (uint8_t *)lzma_file->buf;
+ lzma_file->strm.avail_in = fread(lzma_file->buf, 1, sizeof(lzma_file->buf), lzma_file->fp);
+ if (!lzma_file->strm.avail_in)
+ eof = 1;
+ }
+ *ret = lzma_code(&lzma_file->strm, LZMA_RUN);
+ if (*ret == LZMA_STREAM_END) {
+ lzma_file->eof = 1;
+ return len - lzma_file->strm.avail_out;
+ }
+ if (*ret != LZMA_OK)
+ return -1;
+ if (!lzma_file->strm.avail_out)
+ return len;
+ if (eof)
+ return -1;
+ }
+}
+#endif
+
+static xFile xOpen(int fd, const char *filename) {
+ xFile xF = {XF_FAIL, 0, {NULL}, NULL};
+ lzma_ret ret = LZMA_OK;
+ unsigned char buf[8];
+
+ if (fd == -1 && filename != NULL)
+ if ((fd = open(filename, O_RDONLY)) < 0)
+ return xF;
+ if (read(fd, buf, sizeof(buf)) < 0)
+ return xF;
+ lseek(fd, 0, SEEK_SET);
+ if (filename != NULL) {
+ close(fd);
+ fd = -1;
+ }
+ if (buf[0] == 0xFD && buf[1] == '7' && buf[2] == 'z' &&
+ buf[3] == 'X' && buf[4] == 'Z' && buf[5] == 0x00)
+ xF.type = XF_XZ;
+ else if (buf[0] == 0x1F && buf[1] == 0x8B)
+ xF.type = XF_GZIP;
+ else
+ xF.type = XF_NONE;
+
+ switch(xF.type) {
+ case XF_GZIP:
+ xF.f.gz = (fd == -1 && filename != NULL) ? gzopen(filename, "rb") : gzdopen(fd, "rb");
+ if(xF.f.gz == NULL)
+ xF.type = XF_FAIL;
+ break;
+ case XF_NONE:
+ xF.fp = (fd == -1 && filename != NULL) ? fopen(filename, "rb") : fdopen(fd, "rb");
+ break;
+#ifdef CONFIG_USE_LIBLZMA
+ case XF_XZ:
+ xF.fp = (fd == -1 && filename != NULL) ? fopen(filename, "rb") : fdopen(fd, "rb");
+ if(xF.fp == NULL)
+ xF.type = XF_FAIL;
+ if(xF.type == XF_NONE || xF.type == XF_FAIL) break;
+ xF.f.xz = lzma_open(&ret, xF.fp);
+ if(ret != LZMA_OK)
+ xF.type = XF_FAIL;
+ break;
+#endif
+ default:
+ break;
+ }
+
+ return xF;
+}
+
+static int xClose(xFile *xF) {
+ int ret = -1;
+ switch(xF->type) {
+ case XF_GZIP:
+ ret = gzclose(xF->f.gz);
+ break;
+#ifdef CONFIG_USE_LIBLZMA
+ case XF_XZ:
+ lzma_end(&xF->f.xz->strm);
+ free(xF->f.xz);
+#endif
+ case XF_NONE:
+ ret = fclose(xF->fp);
+ break;
+ default:
+ break;
+ }
+ return ret;
+}
+
+static ssize_t xRead(xFile *xF, lzma_ret *ret, void *buf, size_t len) {
+ ssize_t sz;
+ switch(xF->type) {
+ case XF_GZIP:
+ sz = gzread(xF->f.gz, buf, len);
+ xF->eof = gzeof(xF->f.gz);
+ break;
+#ifdef CONFIG_USE_LIBLZMA
+ case XF_XZ:
+ sz = lzma_read(ret, xF->f.xz, buf, len);
+ xF->eof = xF->f.xz->eof;
+ break;
+#endif
+ case XF_NONE:
+ sz = fread(buf, 1, len, xF->fp);
+ xF->eof = feof(xF->fp);
+ break;
+ default:
+ sz = -1;
+ break;
+ }
+ return sz;
+}
+
+void *grab_contents(xFile *xF, unsigned long *size)
{
unsigned int max = 16384;
- void *buffer = malloc(max);
- int ret;
+ void *buffer = calloc(1, max);
+ lzma_ret ret;
if (!buffer)
return NULL;
*size = 0;
- while ((ret = gzread(gzfd, buffer + *size, max - *size)) > 0) {
+ while ((ret = xRead(xF, &ret, buffer + *size, max - *size)) > 0) {
*size += ret;
if (*size == max) {
void *p;
@@ -49,31 +236,17 @@ out_err:
return NULL;
}
-void *grab_fd(int fd, unsigned long *size)
-{
- gzFile gzfd;
-
- gzfd = gzdopen(fd, "rb");
- if (!gzfd)
- return NULL;
-
- /* gzclose(gzfd) would close fd, which would drop locks.
- Don't blame zlib: POSIX locking semantics are so horribly
- broken that they should be ripped out. */
- return grab_contents(gzfd, size);
-}
-
/* gzopen handles uncompressed files transparently. */
void *grab_file(const char *filename, unsigned long *size)
{
- gzFile gzfd;
+ xFile xF;
void *buffer;
- gzfd = gzopen(filename, "rb");
- if (!gzfd)
+ xF = xOpen(-1, filename);
+ if (xF.type == XF_FAIL)
return NULL;
- buffer = grab_contents(gzfd, size);
- gzclose(gzfd);
+ buffer = grab_contents(&xF, size);
+ xClose(&xF);
return buffer;
}
diff --git a/perl-install/.gitattributes b/perl-install/.gitattributes
new file mode 100644
index 000000000..d5b5e4c1c
--- /dev/null
+++ b/perl-install/.gitattributes
@@ -0,0 +1 @@
+unused export-ignore
diff --git a/perl-install/.perl_checker b/perl-install/.perl_checker
index 39f4692e4..ba1263215 100644
--- a/perl-install/.perl_checker
+++ b/perl-install/.perl_checker
@@ -1,64 +1,6 @@
-Carp
-Carp::Heavy
-Compress::Zlib
-Config::IniFiles
-Cwd
-Data::DumpXML
-Data::DumpXML::Parser
-Date::Manip
-Digest::MD5
-File::Find
-File::FnMatch
-File::Glob
-File::Path
-File::Temp
-Gtk2::Gdk::Keysyms
-Gtk2::Helper
-Gtk2::Pango
-Gtk2::SimpleList
-I18N::Langinfo
-IO::Handle
-IO::Select
-IO::Socket::INET
-IPC::Open2
-Image::Magick
-Libconf
-Libconf::Glueconf::NUT::Ups_conf
-Libconf::Glueconf::Samba::Smb_conf
-Libconf::Templates::Generic::KeyValueSections
-Libconf::Templates::Samba
-Locale::gettext
-Net::DBus
-Net::DBus::Binding::Watch
-Net::LDAP
-RS::Handy
-Scalar::Util
-Sys::Syslog
-Term::ReadKey
-Time::HiRes
-URI::Escape
-XML::LibXML
-XML::LibXML::Boolean
-XML::LibXML::Common
-XML::LibXML::Literal
-XML::LibXML::NodeList
-XML::LibXML::Number
-XML::Parser
-base
-constant
-encoding
handle_configs
-move
-open
-overload
-printer::cups
-printer::hpoj
-printer::main
-printer::printerdrake
scanner
+Net::DBus::Service
urpm::ldap
urpm::parallel_ka_run
urpm::parallel_ssh
-utf8
-warnings
-warnings::register
diff --git a/perl-install/Makefile b/perl-install/Makefile
index df75a1820..0fe946485 100644
--- a/perl-install/Makefile
+++ b/perl-install/Makefile
@@ -23,11 +23,12 @@ clean:
for i in $(DIRS) share/po install/help/po install/share/po; do $(MAKE) -C $$i clean; done;:
rm -rf auto drakxtools*.tar* *.bak
find . -name "*~" -o -name ".#*" -o -name "TAGS" -o -name "*.old" | xargs rm -f
+ rm -rf $(PACKAGE)-$(PKGVERSION)*
check_pms_encoding:
@for i in $(ALLPMS); do charset=ascii; grep -q 'use utf8' $$i && charset=utf8; iconv -f $$charset -t $$charset $$i >/dev/null || { echo "bad $$charset character in $$i"; exit 1; }; done
-check: check_pms_encoding
+check_full: check_pms_encoding
perl -I. -Mlang -e 'lang::check'
check2:
@@ -52,21 +53,22 @@ install_pms stage2 full_stage2:
mo_files : $(MOFILES)
# rules to build tarball
-localcopy: clean
- rm -rf $(PACKAGE)-$(PKGVERSION)*
+dist: tar
+
+tar: clean
+ rm -rf $(PACKAGE)*.tar* $(PACKAGE)-$(PKGVERSION)
mkdir -p $(PACKAGE)-$(PKGVERSION)/tools
- svn export -q -rBASE . $(PACKAGE)-$(PKGVERSION)/perl-install
- for i in $(OTHERS); do svn export -q ../$$i $(PACKAGE)-$(PKGVERSION)/$$i; done
+ (cd ..; git archive HEAD "perl-install/" $(OTHERS) kernel/list_modules.pm Makefile.config) | tar xC $(PACKAGE)-$(PKGVERSION)
rm -rf $(PACKAGE)-$(PKGVERSION)/perl-install/{install,unused,list_modules.pm}
cp -f ../kernel/list_modules.pm $(PACKAGE)-$(PKGVERSION)/perl-install
cd $(PACKAGE)-$(PKGVERSION)/perl-install ; mv -f Makefile.drakxtools Makefile
@make nuke_perl
-
-localdist: tar
-
-tar: localcopy
- tar cfj $(PACKAGE)-$(PKGVERSION).tar.bz2 $(PACKAGE)-$(PKGVERSION)
+ tar cfa $(PACKAGE)-$(PKGVERSION).tar.xz $(PACKAGE)-$(PKGVERSION)
rm -rf $(PACKAGE)-$(PKGVERSION)
+ $(info $(PACKAGE)-$(PKGVERSION).tar.xz is ready)
+
+tag:
+ git tag -a $(VERSION) -m "$(VERSION)"
# rules to build a distributable rpm
@@ -79,3 +81,13 @@ pixel_standalone_links:
rm -rf .standalone_apps.swa
mkdir .standalone_apps.swa
for i in $(STANDALONEPMS_); do ln -sf ../standalone/$$i .standalone_apps.swa/$$i.pm; done
+
+check_perl_checker:
+ rm -f share/po/libDrakX.pot install/share/po/DrakX.pot
+ @make -C share/po libDrakX.pot
+ @make -C install/share/po DrakX.pot
+
+list_firmwares.pm:
+ ../tools/find-drivers-needing-nonfree-firmware
+
+.PHONY: list_firmwares.pm
diff --git a/perl-install/Makefile.config b/perl-install/Makefile.config
index aa39bc2b7..b522c643e 100644
--- a/perl-install/Makefile.config
+++ b/perl-install/Makefile.config
@@ -1,21 +1,20 @@
# -*- Makefile -*-
-VERSION:=10.4.227
+VERSION:=18.69
SUDO = sudo
TMPDIR = /tmp
-SO_FILES = c/blib/arch/auto/c/c.so
+SO_FILES = c/blib/arch/auto/c/c.so
# PMS_DIRS is used only in drakxtools
PMS_DIRS = c diskdrake harddrake interactive modules partition_table resize_fat security fs fs/remote
PMS = *.pm $(PMS_DIRS:%=%/*.pm) install/*.pm install/help/*.pm install/commands install/install2
-STANDALONEPMS_ = adduserdrake bootloader-config diskdrake drakauth drakboot drakbug drakbug_report drakclock drakedm drakfont drakhelp drakperm draksec draksound draksplash drakupdate_fstab drakups drakxservices drakxtv fileshareset finish-install harddrake2 localedrake logdrake lsnetdrake scannerdrake service_harddrake service_harddrake_confirm
+STANDALONEPMS_ = adduserdrake bootloader-config display_help display_release_notes.pl diskdrake drakauth drakautologin drakboot drakbug drakbug_report drakclock drakedm drakdvb drakfont drakhelp drakperm draksec draksound drakupdate_fstab drakups drakxservices drakxtv fileshareset finish-install harddrake2 localedrake logdrake lsnetdrake notify-x11-free-driver-switch remove-unused-packages scannerdrake service_harddrake service_harddrake_confirm
STANDALONEPMS = $(STANDALONEPMS_:%=standalone/%)
ALLPMS = $(PMS) $(STANDALONEPMS)
PERL = perl
-LOCALFILES = $(patsubst %, ../tools/%,serial_probe/serial_probe xhost+)
-DIRS = c resize_fat #po
+LOCALFILES = $(patsubst %, ../tools/%,serial_probe/serial_probe)
+DIRS = c resize_fat #po
CFLAGS = -Wall
override CFLAGS += -pipe
-
diff --git a/perl-install/Makefile.drakxtools b/perl-install/Makefile.drakxtools
index bad4c7731..431f3a85d 100644
--- a/perl-install/Makefile.drakxtools
+++ b/perl-install/Makefile.drakxtools
@@ -1,11 +1,14 @@
# -*- Makefile -*-
include Makefile.config
-INLIBDEST_DIRS = c resize_fat xf86misc
-HAVEINST_DIRS = share/po standalone/po standalone/interactive_http standalone/menu
-DIRS = $(INLIBDEST_DIRS) $(HAVEINST_DIRS) harddrake printer ../tools/serial_probe standalone/menu
+.PHONY: install
+
+INLIBDEST_DIRS = c resize_fat
+HAVEINST_DIRS = share/po standalone/po standalone/interactive_http standalone/menu standalone/polkit
+DIRS = $(INLIBDEST_DIRS) $(HAVEINST_DIRS) harddrake ../tools/serial_probe
NAME = libDrakX
XSETUPLEVEL=40
+XSETUPLEVEL_HARDDRAKE=00
PREFIX =
LIBDIR = $(PREFIX)/usr/lib
MENUDIR= $(LIBDEST)/menu
@@ -13,6 +16,7 @@ DATADIR = $(PREFIX)/usr/share
ICONSDIR= $(DATADIR)/icons
BINDEST = $(PREFIX)/usr/bin
SBINDEST = $(PREFIX)/usr/sbin
+LIBEXECDEST = $(PREFIX)/usr/libexec
ETCDEST = $(PREFIX)/etc/gtk
LIBDEST = $(LIBDIR)/$(NAME)
PIXDIR = $(DATADIR)/$(NAME)/pixmaps
@@ -27,26 +31,41 @@ $(DIRS):
install:
perl -pi -e "s/\"VER\"(; # version)/\"$(VERSION)\"\1/" standalone.pm
- mkdir -p $(BINDEST) $(ETCDEST) $(SBINDEST) $(DATADIR)/{applications,harddrake,pixmaps,icons/{large,mini},autostart} $(PIXDIR) $(INITDIR) $(MENUDIR)
+ mkdir -p $(BINDEST) $(ETCDEST) $(SBINDEST) $(DATADIR)/{applications,harddrake,pixmaps,icons/{large,mini},autostart} $(PIXDIR) $(INITDIR) $(MENUDIR) $(LIBEXECDEST)
install -d $(INLIBDEST_DIRS:%=$(LIBDEST)/%)
- install $(STANDALONEPMS) standalone/service_harddrake.sh standalone/convert $(SBINDEST)
+ install $(STANDALONEPMS) standalone/convert $(SBINDEST)
install -s ../tools/rpcinfo-flushed ../tools/serial_probe/serial_probe $(SBINDEST)
- ln -s XFdrake $(SBINDEST)/Xdrakres
ln -s fileshareset $(SBINDEST)/filesharelist
mv -f $(SBINDEST)/lsnetdrake $(BINDEST)
mv -f $(SBINDEST)/drakbug $(BINDEST)
+ mv -f $(SBINDEST)/drakdvb $(BINDEST)
mv -f $(SBINDEST)/drakhelp $(BINDEST)
+ mv -f $(SBINDEST)/display_help $(BINDEST)
+ mv -f $(SBINDEST)/display_release_notes.pl $(BINDEST)
mv -f $(SBINDEST)/localedrake $(BINDEST)
+ # All the things handled by polkit
+ mv -f $(SBINDEST)/drak{autologin,auth,boot,clock,font,perm,sec,ups,xservices} $(LIBEXECDEST)
+ mv -f $(SBINDEST)/logdrake $(LIBEXECDEST)/draklog
+ mv -f $(SBINDEST)/drakedm $(LIBEXECDEST)/drakdm
+ mv -f $(SBINDEST)/harddrake2 $(LIBEXECDEST)/drakhardware
+ mv -f $(SBINDEST)/scannerdrake $(LIBEXECDEST)/drakscanner
+ # diskdrake is called by the drakdisk wrapper
+ mv -f $(SBINDEST)/diskdrake $(LIBEXECDEST)
+ install -D standalone/drakdisk $(LIBEXECDEST)
+
install -m 644 *.pm $(LIBDEST)
for i in $(PMS_DIRS); do install -d $(LIBDEST)/$$i ; install -m 644 $$i/*.pm $(LIBDEST)/$$i/;done
install -m 644 pixmaps/*.* $(PIXDIR)
- install -m 644 share/diskdrake.rc $(DATADIR)/$(NAME)
+ install -m 644 share/*.rc $(DATADIR)/$(NAME)
+ install -m 644 share/*.css $(DATADIR)/$(NAME)
install -d $(PREFIX)/etc/security
echo 'RESTRICT=yes' > $(PREFIX)/etc/security/fileshare.conf
+ install -D standalone/drakdoc $(BINDEST)/
install -D standalone/finish-install.xsetup $(PREFIX)/etc/X11/xsetup.d/$(XSETUPLEVEL)finish-install.xsetup
+ install -D standalone/notify-x11-free-driver-switch.xsetup $(PREFIX)/etc/X11/xsetup.d/$(XSETUPLEVEL_HARDDRAKE)notify-x11-free-driver-switch.xsetup
install -d $(PREFIX)/etc/sysconfig
echo 'FINISH_INSTALL=yes' > $(PREFIX)/etc/sysconfig/finish-install
@@ -62,19 +81,28 @@ install:
mv $(LIBDEST)/icons/localedrake-32.png $(ICONSDIR)/localedrake.png
mv $(LIBDEST)/icons/localedrake-48.png $(ICONSDIR)/large/localedrake.png
mv $(LIBDEST)/icons/localedrake-16.png $(ICONSDIR)/mini/localedrake.png
- rmdir $(LIBDEST)/icons/harddrake2/menu
+ rm -rf $(LIBDEST)/icons/harddrake2/menu
install -m 644 standalone/menu/*.desktop $(DATADIR)/applications
mv $(LIBDEST)/icons/harddrake2/ $(DATADIR)/pixmaps/
- mv $(SBINDEST)/service_harddrake.sh $(INITDIR)/harddrake
mv $(SBINDEST)/convert $(DATADIR)/harddrake
mv $(SBINDEST)/service_harddrake $(DATADIR)/harddrake/
- ln -s {XFdrake,$(SBINDEST)/drakx11}
- ln -s {diskdrake,$(SBINDEST)/drakdisk}
- ln -s {drakclock,$(SBINDEST)/clock.pl}
- ln -s {harddrake2,$(SBINDEST)/drakhardware}
- ln -s {keyboarddrake,$(SBINDEST)/drakkeyboard}
- ln -s {localedrake,$(BINDEST)/draklocale}
- ln -s {logdrake,$(SBINDEST)/draklog}
- ln -s {mousedrake,$(SBINDEST)/drakmouse}
- ln -s {printerdrake,$(SBINDEST)/drakprinter}
- ln -s {scannerdrake,$(SBINDEST)/drakscanner}
+ mv $(SBINDEST)/notify-x11-free-driver-switch $(DATADIR)/harddrake/
+ # Better public names
+ mv $(BINDEST)/localedrake $(BINDEST)/draklocale
+ # Compatibility names/links
+ # (ideally everything would be in /usr/bin...)
+ ln -s ../bin/drakdm $(SBINDEST)/drakedm
+ ln -s ../bin/drakdisk $(SBINDEST)/diskdrake
+ ln -s ../bin/drakhardware $(SBINDEST)/harddrake2
+ ln -s ../bin/drakscanner $(SBINDEST)/scannerdrake
+ ln -s drakclock $(BINDEST)/clock.pl
+ ln -s draklocale $(BINDEST)/localedrake
+ ln -s draklog $(BINDEST)/logdrake
+
+check:
+ rm -f share/po/libDrakX.pot standalone/po/libDrakX-standalone.pot
+ @make -C share/po libDrakX.pot
+ @make -C standalone/po libDrakX-standalone.pot
+
+../tools/rpcinfo-flushed:
+ cd ../tools; gcc -Wall $(shell pkg-config libtirpc --cflags --libs) rpcinfo-flushed.c -o rpcinfo-flushed
diff --git a/perl-install/NEWS b/perl-install/NEWS
index d29680975..22339bd87 100644
--- a/perl-install/NEWS
+++ b/perl-install/NEWS
@@ -1,3 +1,3853 @@
+- use task-plasma-minimal instead of task-plasma5-minimal
+- fix bugs in any::sessions() (mga#33738)
+
+Version 18.69 - 07 June 2025
+- Updated translations
+- drakautologin now detects and manage Wayland sessions (mga#33738)
+- bytes_heavy.pl was merged into bytes.pm
+- Agafari-16 console font support was dropped from kbd
+- fix glob for svg pixbuf loader
+- Don't use mdadm --chunk option when creating level 1 RAID (mga#33767)
+- Detect legacy (non-PCI) Intel SST audio DSP devices (mga#33145)
+- install rpm's /usr/lib/rpm/sysusers.sh to stage2 image by default
+- Drop i586 bits
+
+Version 18.68 - 28 April 2024
+- Updated translations
+
+Version 18.67 - 5 January 2024
+
+- Updated translations
+
+Version 18.66 - 19 August 2023
+
+Version 18.65 - 11 July 2023
+
+- diskdrake: remove deprecated GtkPaned:handle-size style property (mga#32063)
+- add ntfs3 to isFat_or_NTFS()
+- sync list of modules needing firmware with kernel-desktop-6.4.2-2.mga9
+- Sync list_modules with kernel 6.4
+
+Version 18.64 - 24 June 2023
+
+- Updated translations
+
+Version 18.63 - 6 June 2023
+
+- rescue: mount efivars in chroot on UEFI systems (mga#31844)
+- Updated translations
+- Fix total_memory() by using sysinfo()
+- Add nvidia-newfeature.ko to nvidia modules supported list
+- drakclock: set to checked if ntpd is started.
+
+Version 18.62 - 28 April 2023
+
+- Update file list for changes in Adwaita icon locations
+
+Version 18.61 - 28 April 2023
+
+- service_harddrake: add nvidia470.ko to nvidia driver module list
+- Updated translations
+
+Version 18.60 - 17 April 2023
+
+- Manage isodumper with draksec
+- Updated translations
+
+Version 18.59 - 14 April 2023
+
+- Don't force pavucontrol when there is already pavucontrol-qt in plasma-desktop enviroment
+- Updated translations
+
+Version 18.58 - 8 April 2023
+
+- Modify draksound GUI to add support for switching to pipewire.
+
+Version 18.57 - 29 March 2023
+
+- Recognize new kernel 6.0 drivers
+- Updated translations
+
+Version 18.56 - 9 February 2023
+
+- update list of kernel modules needing firmware
+- Recognize new kernel 5.19 drivers
+- Recognize new kernel 6.0 drivers
+- Recognize new kernel 6.1 drivers
+
+Version 18.55 - 18 January 2023
+
+- diskdrake: fix partitions not being displayed initially on systems with a
+ single disk (mga#31396)
+
+Version 18.52 - 3 December 2022
+
+- run_program:
+ o add optional callback when waiting for program to terminate
+ * this allows GUI applications to respond to check-alive pings (mga#31105)
+ o add helper routine to terminate/kill a process
+- make installer routines for selecting a mirror and downloader available
+ for use by draklive-install
+- use better algorithm for determining nearest mirror (uses urpmi::mirrors)
+- finish-install:
+ o when renaming a user, update the name in any network config files
+ o detect and adapt to systems using NetworkManager
+- updated translations
+
+Version 18.51 - 29 October 2022
+
+- drakboot: ensure efivars are mounted before installing a UEFI bootloader (mga#31008)
+
+Version 18.50 - 17 September 2022
+
+- drakboot: add options to change the rEFInd background (mga#28073)
+
+Version 18.49.1 - 9 June 2022
+
+- lsnetdrake: do not crash if nmap or nmblookup are not installed (mga#12579)
+
+Version 18.49 - 8 June 2022
+
+- Recognize new kernel 5.17 drivers
+- Recognize new kernel 5.18 drivers
+
+Version 18.45 - 21 February 2021
+
+- Fix step-categories color to make it visible in the installer (mga#28375)
+- updated translations
+
+Version 18.43 - 31 January 2021
+
+- updated translations
+- drakboot: don't remove os-prober before user makes choice (mga#28223)
+
+Version 18.42 - 26 January 2021
+
+- updated translations
+- when running monitor-edid, don't use --try-in-console as
+ it can cause a GNOME session to die (mga#28124)
+- prefer using UUID for mmcblk and nvme devices (mga#28111)
+- service_harddrake:
+ o support switching between free and proprietary drivers when
+ using Live ISOs with persistence
+
+Version 18.40 - 11 January 2021
+
+- updated translations
+- drakbug_report:
+ o fail quietly when trying journalctl for system log
+- fix handling of TYPE"64bit" flags when reading rpmsrate
+- Fix syntax of 51-mageia-resume.conf (mga#28055)
+
+Version 18.39 - 04 January 2021
+
+- translations update
+
+Version 18.38 - 29 December 2020
+
+- drakboot:
+ o fix false detection of GRUB2 when installed in ESP but not in /boot (mga#27816)
+ o add option to configure rEFInd to not use EFI NVRAM (mga#27838)
+- diskdrake:
+ o fix adding parts to extended partition on hybrid ISO (mga#27862)
+ o erase iso9660 signature when clearing hybrid ISO disk (mga#27864)
+ o restrict line length when displaying base device info
+ to avoid excessive window expansion (mga#27882)
+- drakbug_report:
+ o also try journalctl for system log
+ o include draklive-install.log
+
+Version 18.37 - 5 December 2020
+
+- recognize more rtw88_*
+- recognize new kernel 5.10 drivers
+
+Version 18.36 - 25 November 2020
+
+- fix compiling tools/rpcinfo-flushed with glibc-2.32
+
+Version 18.35 - 20 November 2020
+
+- diskdrake:
+ o fix crash when a mdadm RAID array has been created outside diskdrake using
+ raw devices (mga#26707)
+- remove-unused-packages:
+ o disable timeout - it can corrupt the rpm database (mga#27580)
+- drakhardware:
+ o fix hardware support package detection (mga#27122)
+
+Version 18.34 - 14 September 2020
+
+- drakservices:
+ o include systemd sockets and timers
+- drakscanner:
+ o fix enabling saned (systemd socket, not xinetd)
+- drakboot:
+ o keep timeout value when it's 0 (mga#27158)
+- recognize new kernel 5.9 drivers
+
+Version 18.33 - 19 August 2020
+
+- fix failure to update grub2 config when service_harddrake attempts to
+ add/remove the nokmsboot option
+- add --plain to systemctl list-units, else it adds some characters at
+ the beginning of the line since systemd 246 (mga#27046)
+- recognize new kernel 5.5 - 5.8 drivers
+
+Version 18.32 - 27 June 2020
+
+- diskdrake: fix a crash when a disk has a filesystem directly without a
+ partition table (mga#26849)
+- drakboot:
+ o detect GRUB2 if it is installed in \EFI\BOOT
+ o fix switching between GRUB2 and rEFInd when installed in \EFI\BOOT
+
+Version 18.31 - 18 June 2020
+
+- drakboot: add option to install GRUB2 bootloader in \EFI\BOOT (mga#24282)
+- diskdrake: remove partition from /etc/crypttab when deleted (mga#25891)
+
+Version 18.28 - 29 May 2020
+
+- drakboot: don't die in write_grub2 if grub.cfg doesn't exist (mga#26676)
+- translation updates
+
+Version 18.27.1 - 8 May 2020
+
+- bootloader:
+ fix typo x86 -> x64 for matching 64bit grub2-efi(x86-64)
+
+Version 18.27 - 1 May 2020
+
+- diskdrake:
+ o it's now possible to set labels on exfat
+- drakboot:
+ o do not try to enable non existing acpi service
+ o rename /boot/efi as /boot/EFI if needed (mga#22395)
+- fix services::running_systemd()
+- service_harddrake: recognise noxconf boot command line option
+ (disables creation of xorg.conf, allowing X server to configure itself)
+- cache results from detect_devices::getInputDevices()
+ (significantly speeds up service_harddrake, and hence Live ISO boot)
+
+Version 18.26 - 20 March 2020
+
+- diskdrake:
+ o add minimal support for exFAT
+- drakboot: copy instead of renaming grub.cfg (mga#25542)
+- remove no more existing modules from various/crypto
+ (so that rescue system display less "module xxx not found")
+
+Version 18.25 - 18 March 2020
+
+- update list for modules needing firmware
+- recognize new kernel 5.2 - 5.5 drivers
+- diskdrake:
+ o add support for F2FS
+ o enable to inspect NILFS2 formated partitions
+ o enable to resize NILFS2
+ o enable to resize XFS even if not on LVM
+ o enhanced internal doc
+ o make reformating nilfs2 fses to work
+ o support adding partitions to Live ISOs on USB sticks (mga#25224)
+- drakfont:
+ o don't crash when fonts.cache-1 to delete doesn't exist anymore (mga#21086)
+- drakboot: initial support for setting up uefi on aarch64
+
+Version 18.21 - 23 June 2019
+
+- update left-background for Mageia 7 final
+
+Version 18.20 - 18 June 2019
+
+- translation updates
+- update list for modules needing firmware
+- recognize 8821ce (mga#24605)
+
+Version 18.18 - 20 May 2019
+
+- translation updates
+
+Version 18.17 - 12 May 2019
+
+- drakautologin: add new functions get_session_file and get_session_file_with_extension
+
+Version 18.16 - 11 May 2019
+
+- Mageia 7 Artwork
+- drakautologin: add session support for lightdm
+- update list of modules needing firmware
+
+Version 18.15 - 3 May 2019
+
+- recognize new kernel 5.1 drivers
+
+Version 18.13 - 21 April 2019
+
+- diskdrake: speed up partition table read and write (mga#15752)
+- localedrake: store country code in /etc/locale.conf (mga#24671)
+- diskdrake: fix resize of encrypted partitions (mga#22032)
+- translation updates
+
+Version 18.11 - 16 March 2019
+
+- recognize new kernel 5.0 drivers
+- translation updates
+
+Version 18.10 - 3 Feb 2019
+
+- translation updates
+
+Version 18.9 - 17 Dec 2018
+
+- drakboot:
+ o only prefer rEFInd if it is installed in the root fs (mga#23944)
+ o support 32-bit UEFI with 64-bit O/S
+- desktop kernels are now PAE, for PTI security fixes to work properly,
+ so if cpu is not supporting it, install the desktop586 kernel
+- translation updates
+
+Version 18.7 - 27 Nov 2018
+
+- drakdm: fix DM preference when none is selected (don't default to XDM)
+- fix some DE name/capitalisation inconsistencies (mga#23634 + others)
+
+Version 18.5 - 19 Nov 2018
+
+- recognize new kernel 4.1[89] drivers
+
+Version 18.4 - 4 Nov 2018
+
+- adapt drakdm and set_autologin for display-manager service, not prefdm (mga#22593)
+- translation updates
+
+Version 18.3 - 12 Oct 2018
+
+- drakboot:
+ o handle extra white space when reading rEFInd config file
+ o don't simplify label when writing rEFInd config file
+
+Version 18.2 - 5 Oct 2018
+
+- drakboot:
+ o add support for the rEFInd boot manager (mga#15153)
+ o include the "Mageia" entry in the gub2 Default choices (mga#23393)
+- mdadm raid:
+ o raid10 can be created with just 2 disks as a high-performance raid1
+ o raid10: use layout f2 with 2 disks for performance
+ o raid6 can be used with 3 disks and up
+- finish-install: remove current media before adding online media (mga#19742)
+- recognize smartpqi driver (mga#23305)
+- service_harddrake: recognize new nvidia390 driver
+
+Version 17.98 - 22 June 2018
+
+- recognize new kernel 4.1[5-7] drivers
+
+Version 17.97 - 5 June 2018
+
+- harddrake2:
+ o don't list HDA "input" devices as keyboards (mga#9986)
+- drakboot:
+ o read/write extlinux.conf in U-Boot backend for ARM
+ o build initrd for ARM arch
+ o create /usr/lib/linux symlink for devicee tree files
+ o add specific boot options for Raspberry Pi serial console, I/O scheduler, CMA
+
+Version 17.96 - 13 March 2018
+
+- drakboot: detect 32-bit UEFI GRUB2 bootloader when probing
+- remove leftover debug message when listing systemd services
+- translation updates
+
+Version 17.95 - 10 February 2018
+
+- recognize more new kernel-4.14 drivers
+
+Version 17.93 - 19 January 2018
+
+- bootloader:
+ o Combine bootloader perImageAppend and default_append keys
+ (mga#21263, mga#21250)
+ o Fix drakboot video mode selection when using grub2 (mga#21246)
+ o Fix parsing of grub2 menu entries to support 16-bit mode (mga#21247).
+- diskdrake:
+ o ensure device major/minor numbers are reread after writing the
+ partition table (mga#22032)
+- iwlwifi-agn-ucode is renamed to iwlwifi-firmware (mga#22316)
+- update list of modules needing firmware
+- sync with kernel 4.14
+
+Version 17.90 - 18 September 2017
+
+- drakboot:
+ o better read back config
+ o fix undefined labels when eg: Xen is installed (mga#19014)
+ drakboot crashed with "undefined value for mandatory argument 'text''
+
+Version 17.88 - 7 July 2017
+
+- translation updates
+
+Version 17.85 - 22 June 2017
+
+- don't overwrite custom grub2 settings when updating (mga#20596)
+- recognize 8812au (mga#21043)
+
+Version 17.84 - 5 June 2017
+
+- translation updates
+
+Version 17.83 - 4 June 2017
+
+- drakclock:
+ o fix crash introduced in 17.77 (mga#20956)
+- translation updates
+
+Version 17.82 - 6 May 2017
+
+- drakboot:
+ o add "please wait" message when running update-grub2
+- service_harddrake:
+ o require reboot if nokmsboot option changed (mga#20455).
+
+Version 17.80 - 3 May 2017
+
+- updated DE selection and advertising artwork for Mageia 6
+
+Version 17.79 - 26 April 2017
+
+- updated translation snapshot
+
+Version 17.77 - 4 April 2017
+
+- diskdrake:
+ o don't require a BIOS boot partition when performing an upgrade (mga#20338)
+ o make partitioning more robust with "Use entire disk" option (mga#20619):
+ * add safety net for informing the kernel after writing a DOS partition
+ table.
+ * speed up proc_partitions::compare() and avoid unwanted udev events.
+ o force reinitialisation of partition suggestions after wiping disk
+ (mga#20621)
+- various fixes to do_pkgs during Live installs (mga#20620):
+ o fix do_pkgs_standalone::are_installed() for Live install
+ o fix do_pkgs_standalone::remove() for Live install
+ o fix fast path for do_pkgs::ensure_is_installed()
+- drakclock:
+ o fix the display of the clock (mga#11776)
+
+Version 17.75 - 17 March 2017
+
+- diskdrake:
+ o allow a BIOS boot partition to be located on any disk (mga#20161)
+ o ensure kernel is informed when a MBR partition table is cleared
+ o clearing GPT partitions:
+ * delay thus fix clearing GPT partitions (mga#20264)
+ ("failed to del partition #1 on /dev/...")
+ * don't send separate events to the kernel about removing/adding GPT partitions,
+ just tell it to reread the whole newly cleared & allocated partition table
+ o tell the kernel all actions at once on GPT partitions instead of telling it
+ separatly about removing partitions A, B & C, then adding partition E, F &G
+
+Version 17.74 - 9 March 2017
+
+- recognize LXQt (Razor-qt is now LXQt)
+- fix Enlightenment (e21) recognition
+
+Version 17.73 - 8 March 2017
+
+- recognize new kernel-4.8 drivers
+
+Version 17.72 - 25 February 2017
+
+- inhibit udisks2 when running drakdisk (mga#20247)
+- explicitely probe LVMs in live install (mga#14699)
+- exclude x11-driver-video-vmware from unneeded packages (mga#19979)
+- partitioning_wizard:
+ o allow a BIOS boot partition to be located on any disk (mga#20161)
+ o fix auto-allocation of BIOS boot partitions (mga#20161, mga#19888)
+ o don't suggest mountpoint for ESP when doing a legacy boot install (mga#20164)
+- diskdrake:
+ o fix bugs in sync'ing the kernel's partition table cache (mga#20074)
+ o detect and handle DOS "Empty" partition types (mga#20074)
+- sync nonfree firmware list with kernel-4.9
+
+Version 17.71 - 18 January 2017
+
+- partitioning_wizard:
+ o fix bug in detecting whether a BIOS boot partition is required (mga#19935)
+- fix inserting extended partition in the middle
+
+Version 17.69 - 12 January 2017
+
+- bootloader:
+ o disable audit logging as it floods the logs
+- diskdrake:
+ o fix exception when clearing all partitions on !UEFI (mga#20083)
+- recognize new kernel-4.9 drivers
+- rely on Gtk+ for checking if we can connect to Xserver (mga#19498)
+ (meaning relying on xwayland under Wayland)
+
+Version 17.65 - 12 December 2016
+
+- drakboot:
+ o describe what skipping os-prober does (mga#18538)
+ o show generic help too when using grub2
+
+Version 17.63 - 9 December 2016
+
+- drakedm:
+ o allow disabling autologin on LXDM (mga#17616)
+
+Version 17.60 - 15 November 2016
+
+- diskdrake:
+ o fix being unable to format a newly part (mga#19172)
+ o offer to format unmounted parts that have a defined mount point
+
+Version 17.59 - 8 November 2016
+
+- any.pm: Fix support of plasma under X and wayland in running_window_manager()
+- mygtk3:
+ o adapt to WebKit2 for disabling context menu (eg: in mcc)
+
+Version 17.58 - 24 October 2016
+
+- drakboot:
+ o make kernel server default if installed
+ (we were only checking for long dead flavors such as enterprise, ...)
+
+Version 17.56 - 19 September 2016
+
+- detect ovirt too (mga#19308)
+- fix gtk+3.22 regression (mga#19406)
+- sync nonfree firmware list with kernel-4.7
+
+Version 17.54 - 13 August 2016
+
+- drakautologin:
+ o add support for LXDM (mga#17616)
+ o add support for SDDM (mga#17913)
+- drakedm:
+ o translate SDDM instead of KDM
+- filesharelist:
+ o fix checking package is installed (mga#13353)
+ o fix Samba package name (samba-server -> samba)
+- harddrake2:
+ o em28xx drives TV cards, not webcam (mga#18995)
+
+Version 17.53 - 31 July 2016
+
+- diskdrake:
+ o first usable sector is LBA34 for GPT
+ o respect used scheme when clearing a disk
+ (ie do not switch from gpt to dos scheme on small disk)
+- drakboot:
+ o fix .old backup for grub2's grub.cfg
+- authentication: add support for sha256/sha512 and default to sha512
+
+Version 17.52 - 17 July 2016
+
+- drakboot:
+ o fix not being able to edit default grub2 cmdline (mga#18952)
+
+Version 17.51 - 12 July 2016
+
+- diskdrake:
+ o don't offer to format RAID or BIOS boot partition
+ o fix clearing an already filled GPT disk
+ o make clear a BIOS boot partition cannot have a mount point
+ o make error about BIOS boot partition more explicit about
+ its purpose and that it must be created (mga#18923)
+
+Version 17.50 - 8 July 2016
+
+- diskdrake:
+ o display a wait message when adding a PV to VG
+
+Version 17.49 - 6 July 2016
+
+- diskdrake:
+ o GPT: prevent geometry issue on last partition (mga#18666, mga#17796)
+- recognize new kernel-4.7 drivers
+
+Version 17.48 - 4 July 2016
+
+- diskdrake:
+ o do not offer to check for bad blocks on btrfs (mga#12393)
+ o do not warn about no bootloader can boot LVM as grub2 can (mga#9426)
+ o do not warn about no bootloader can boot RAID[^1] as grub2 can (mga#11324)
+ o enable bad blocks checking on JFS
+- drakboot:
+ o allow installing grub2 on XFS /
+ o make clear grub2 is installed on ESP under UEFI
+- finish-install:
+ o drop reload-dm hack
+ o drop gnome-reboot hack
+
+Version 17.47 - 30 June 2016
+
+- recognize some missing wireless drivers (mga#16768)
+- diskdrake:
+ o fix being able to create vfat on UEFI (mga#15698)
+
+Version 17.46 - 24 June 2016
+
+- drakboot:
+ o do not alter /etc/default/grub on kernel updates, only when running
+ drakboot (mga#18783)
+
+Version 17.45 - 24 June 2016
+
+- diskdrake:
+ o keep UUID when formatting btrfs (mga#18673)
+
+Version 17.44 - 24 June 2016
+
+- diskdrake:
+ o fix preserving UUID when formatting jfs/nilfs/xfs
+- drakboot:
+ o add a "Do not touch ESP or MBR" option (mga#18770)
+ o do not offer to pick the disk where to install grub2 on UEFI
+ o filter GPT disks w/o a BIOS boot part (mga#18770)
+ o warn if grub2 is not installed on MBR/ESP
+
+Version 17.42 - 22 June 2016
+
+- drakboot:
+ o add support for encrypted grub2 passwords (mga#15930)
+ o grub2: do not overwrite ESP if not installing on it (mga#15583)
+ o grub2: fix setting default entry when in a submenu (mga#18560)
+
+Version 17.41 - 20 June 2016
+
+- drakboot:
+ o fix the grub2 post-install check (mga#18739)
+
+Version 17.40 - 20 June 2016
+
+- drakboot:
+ o ensure we've the right grub2 flavor (mga#18739)
+
+Version 17.39 - 18 June 2016
+
+- diskdrake:
+ o fix ESP tagging in some cases
+
+Version 17.38 - 16 June 2016
+
+- diskdrake:
+ o fix offering to create a GRUB_BIOS partition in custom mode (mga#18656)
+ o fix inverted test when checking need for a GRUB_BIOS partition (mga#18704)
+
+Version 17.37 - 12 June 2016
+
+- diskdrake:
+ o try harder to guess if we need a GRUB_BIOS partition (mga#18656)
+
+Version 17.36 - 11 June 2016
+
+- diskdrake:
+ o add a GRUB_BIOS partition if needed (mga#18656)
+ o MBR limit really is 2TiB, not 4, so use GPT for disks > 2TiB
+
+Version 17.34 - 6 June 2016
+
+- drakboot:
+ o enable to (un)install os-prober (mga#16010, mga#18538)
+ o fix reading back last grub2 entry
+ o only overwrite GRUB_CMDLINE_LINUX_DEFAULT on first install (mga#18112)
+ o only overwrite install.sh when actually installing boot loader (mga#17455)
+ o set GRUB_DEFAULT + GRUB_SAVEDEFAULT (mga#9627, mga#16059)
+ o stop offering grub legacy & lilo on new installs (mga#18583)
+- running commands as user:
+ o fix the fallback when the helper didn't provide the real UID (mga#18288)
+ o guess the right user after the switch to polkit (mga#18288)
+
+Version 17.33 - 27 May 2016
+
+- list all drivers needing a proprietary driver
+- localedrake:
+ o install the right IM packages on Plasma when using fcitx
+
+Version 17.30 - 7 May 2016
+
+- install nonfree firmware for amdgpu, i915, nouveau
+
+Version 17.29 - 4 May 2016
+
+- localedrake:
+ o install the right IM packages on Plasma
+- harddrake2:
+ o don't class Logitech wired kbd+mouse as unknown (mga#3510)
+
+Version 17.28 - 26 April 2016
+
+- recognize new kernel-4.6 drivers
+
+Version 17.25 - 1 April 2016
+
+- diskdrake:
+ o fix detecting nvme devices as block devices
+ o fix displaying partitions when there's only one disk
+ (and the resulting crash: mga#18076)
+
+Version 17.24 - 23 March 2016
+
+- use systemd-detect-virt for detecting virtualization technology
+
+Version 17.22 - 21 March 2016
+
+- display_help:
+ o port from WebKit1 to WebKit2 (mga#15031)
+
+Version 17.20 - 18 March 2016
+
+- diskdrake:
+ o fix partitions not initially displayed (mga#17564)
+
+Version 17.19 - 24 February 2016
+
+- detect nvme devices as block devices (mga#17743)
+- detect partitions on nvme devices (mga#17743)
+- enable to use WebKit2 with mygtk3
+- drakboot:
+ o partial fix for removing kernel from grub2 config (mga#16268)
+
+Version 17.18.1 - 10 February 2016
+
+- drakboot:
+ o add support for grub2-text too (mga#9431)
+- library (for draklive-install):
+ o check ESP has the right fs type (mga#16246)
+ o check that ESP mount point actually is an ESP
+
+Version 17.16 - 25 January 2016
+
+- detect_devices:
+ o fix a crash on non x86
+
+Version 17.15 - 16 January 2016
+
+- diskdrake:
+ o fix crash (mga#17484)
+
+Version 17.12 - 2 January 2016
+
+- misc cleanups
+- diskdrake:
+ o auto fill LV name from mntpnt (mga#5407)
+ o suggest "lv_foo" instead of just "foo" for LVname
+- drakboot:
+ o skip swap in the list of partitions (mga#15767)
+ o split drakautologin from drakboot (mga#7160)
+- draksound:
+ o drop support for ISApnp sound cards
+ o drop support for picking an arbitrary driver
+ o drop support for switching between OSS <-> ALSA
+ o make troubleshooting not an advanced setting
+
+Version 17.8 - 22 December 2015
+
+- recognize new kernel-4.3 drivers
+- use sddm instead of kdm
+- use task-plasma5 instead of task-kde4
+
+Version 17.3 - 4 December 2015
+
+- recognize new kernel-4.3 drivers
+- drakboot:
+ o fix lightdm support after upstream config file change
+
+Version 17.1 - 27 August 2015
+
+- recognize new kernel-4.1 drivers
+
+Version 16.104 - 13 June 2015
+
+- diskdrake:
+ o prevent errors when telling kernel to reread partition table
+
+Version 16.103 - 4 June 2015
+
+- drakfont:
+ o fix moving fonts (mga#16074)
+- diskdrake, partitioning_wizard:
+ o only use current disk when auto partitioning, wiping disk,
+ using free space (mga#16055)
+
+Version 16.102 - 29 May 2015
+
+- diskdrake:
+ o ignore special 'Packard_Bell' and 'Push_Button_Reset' partitions (mga#15999)
+ o run udevadm settle after actions that trigger device reload (mga#15999)
+- harddrake2:
+ o set min width for left panel (mga#16026)
+
+Version 16.101 - 25 May 2015
+
+- library (for draklive-install):
+ o fix not always suggesting /boot/ESP mount point (mga#15689)
+- diskdrake:
+ o set pt_type according to fs_type before flag cases (mga#16029)
+- localedrake:
+ o fix reading back IM config (mga#15761)
+
+Version 16.99 - 20 May 2015
+
+- diskdrake:
+ o display cosmetics when reading back GPT partitions
+ o fix mnt point for FAT partitions on GTP (mga#15987)
+ o set the proper GUID for FAT partitions on GPT
+- drakboot:
+ o do not detect grub2 on UEFI when there's no bootloader
+ o fix default grub2 kernel parameters (mga#15984)
+
+Version 16.98 - 19 May 2015
+
+- all tools:
+ o fix banner icon being cliped (mga#12358)
+- drakfont:
+ o fix crash (mga#13627)
+ o fix crash with --windows_import (mga9347)
+ o fix an error with --testing (mga#13363)
+- localedrake:
+ o don't try to install non existant scim-googlepinyin (mga#6681)
+
+Version 16.97 - 18 May 2015
+
+- library (for draklive-install):
+ o enables to get raw available space (mga15257)
+
+Version 16.96 - 17 May 2015
+
+- library (for draklive-install):
+ o fix regression refusing FAT for ESP (mga#15962)
+
+Version 16.95 - 14 May 2015
+
+- library (for draklive-install):
+ o fix a crash after "insufficient space" error (mga#15919)
+- diskdrake:
+ o fix a gtk+3 regression crash with --dav (mga#13204)
+
+Version 16.94 - 10 May 2015
+
+- remove_unused_packages():
+ * dont remove crda, iw, wireless-regdb, usb_modeswitch, usb_modeswitch-data
+ (they are needed to be able to support hotplugged wireless hw)
+ this also fixes mga#15875 that got broken by mga#10647
+
+Version 16.93 - 9 May 2015
+
+- drakboot:
+ o do use vga value for grub2
+ o fix setting default grub2 entry
+
+Version 16.92 - 9 May 2015
+
+- drakx-net:
+ o recognize r8723bs (mga#15874)
+- diskdrake:
+ o do not set noauto for /boot/EFI (mga#15627)
+- drakboot:
+ o add a dedicate step for grub2 (mga#9627)
+ o backup grub2 files before configuring
+- harddrake2:
+ o fix detecting AHCI as SATA (mga#9992)
+ o fix detecting some memory chips (mga#5810)
+ o fix not listing uvccideo managed devices as wecams (mga#9992)
+
+Version 16.90 - 28 April 2015
+
+- localedrake:
+ o write input methods to /etc/locale.conf (mga#15464)
+- run vgchange before updating the list of LVMs, not after, and even if not
+ in install (should help with mga#7578).
+
+Version 16.89 - 25 April 2015
+
+- Ignore special partitions on mmc (mga#15759)
+
+Version 16.88 - 25 April 2015
+
+- ensure country/timezone locale is kept when removing unused locale
+ packages (mga#3723)
+
+Version 16.87 - 22 April 2015
+
+- partitioning_wizard:
+ o improve the display box (mga#15728)
+
+Version 16.86 - 20 April 2015
+
+- bootloader:
+ o dont override 'splash' and/or 'quiet' when adding 'noiswmd' (mga#15666)
+- partitioning_wizard:
+ o use the windows partition with the most available space on current
+ disk, not the last one across all disks (mga#15589)
+ o suggest up to 20GB/20% of the windows partition (whichever is larger),
+ previously 6GB/10% (mga#15589)
+ o hide empty space < 2MB, we have such holes due to alignment (mga#15733)
+- ugtk2, ugtk3, harddrake2:
+ o do not "restore" mouse cursor on the root window, we haven't set it to
+ 'wait' since 2005 and this causes a crash if we don't own it (mga#15729).
+- speed up reading of flags from GPT partition table (mga#15621).
+
+Version 16.85 - 15 April 2015
+
+- reuse ESP with "use free space" in live (mga#15690)
+
+Version 16.84 - 14 April 2015
+
+- drakboot:
+ o do not pass useless parameters to grub2 under UEFI (mga#15692)
+ o fix kernel booting in blind mode (mga#15291)
+
+Version 16.82 - 13 April 2015
+
+- diskdrake:
+ o detect Lenovo recovery & 'SYSTEM_DRV' as such (mga#1371)
+ o do add a ESP if it was removed by "Clear All"
+ o ignore ESP for "use free space on MS"
+- drakboot:
+ o default to GRUB_DISABLE_RECOVERY=falss for 'failsafe' entry (mga#15675)
+
+Version 16.81 - 12 April 2015
+
+- dont force 'p' for dmraid partitions, it's conditional depending
+ on device naming like dmraid, kpartx and kernel handles it
+- diskdrake:
+ o don't guess a drive letter for ESP partitions
+
+Version 16.80 - 9 April 2015
+
+- diskdrake:
+ o don't guess a drive letter for recovery partitions (mga15636)
+- drakboot:
+ o check there's still some place on /boot with grub2 too
+ o generate core.img for UEFI
+ o fix detecting grub2 on UEFI
+ o write /boot/grub2/install.sh like for grub instead of drakboot.conf
+
+Version 16.79 - 7 April 2015
+
+- drakboot:
+ o keep vga= parameter when switching to grub2 (mga#9888)
+
+Version 16.78 - 7 April 2015
+
+- drakboot:
+ o fix installing grub2 on MBR (mga#15640)
+ (regression introduced in 16.76)
+
+Version 16.77 - 7 April 2015
+
+- bootloader:
+ o add 'noiswmd' to kernel command line to manage isw_ bios
+ fakeraids with dmraid for now (instead of mdadm) (mga#11289, mga#14330)
+ o allow btrfs for / without separate /boot with grub2 (mga#15374)
+- partitioning wizard:
+ o do not offer to select RAID as it result in a crash (mga#5800)
+
+Version 16.76 - 3 April 2015
+
+- drakboot:
+ o fix grub2 rescue (mga#13408, mga#13901)
+ o log grub2-install failures (mga#15439)
+- diskdrake:
+ o really try to detect recovery partitions on GPT
+
+Version 16.75 - 30 March 2015
+
+- diskdrake:
+ o better fix for fail to read too corrupted partition table
+ o fix getting ESP with "use free space":
+ make sure to not override /boot/EFI mount point with /media/win_X
+ o make sure to check for existing ESP on all disks
+ o relax checks for ESP
+ o try to detect recovery partitions on GPT
+- stage2:
+ o revert changes made in 16.70 for a better fix to mga#13894
+
+Version 16.74 - 27 March 2015
+
+- diskdrake (GPT):
+ o fix retrieving ntfs partitions as ntfs-3g instead of ntfs
+ o really fix retrieving swap partition type
+
+Version 16.73 - 27 March 2015
+
+- diskdrake (GPT):
+ o fix creating RAID devices (mga#15400)
+ o fix "I cannot read the partition table of device XXX, it is too corrupted"
+ o fix retrieving LVM/RAID/swap partition type
+ o fix tagging lvm/raid as "linux filesystem"
+ o fix tagging ntfs-3g as "linux filesystem"
+ o fix tagging swap as "linux filesystem"
+
+Version 16.71 - 25 March 2015
+
+- diskdrake:
+ o fix retrieving ESP partition type on GPT (mga#15366)
+ o log which GPT partition we fail to add/del
+ o set proper GUID to ESP partitions with GPT layout
+- bump max_nb() to 131 to cover mdadm managed imsm and ddf1 bios
+ fakeraids (containers defaults to >= 127 and partitions <=126)
+
+Version 16.70 - 21 March 2015
+
+- better fix for the scrollbar in the package installation details
+ window (Martin Whitaker, mga#13894)
+
+Version 16.69 - 20 March 2015
+
+- efi partitioning fixes from tv
+- diskdrake & package install gtk fixes from Martin Whitaker
+
+Version 16.68 - 17 March 2015
+
+- drakboot:
+ o log mkinitrd faillures (mga#9201)
+- fix mis-detecting some mobile broadband modems (mga#12492)
+
+Version 16.66 - 5 March 2015
+
+- diskdrake:
+ o add "nofail" option to "foreign" mountpoints to avoid unwanted recovery mode (#10179)
+
+Version 16.63 - 27 February 2015
+
+- diskdrake:
+ o fix too wide buttons (mga#12422, mga#13471, mga#14839, mga#15379)
+
+Version 16.62 - 19 February 2015
+
+- diskdrake (mga#12422, mga#11988, mga#14839, mga#15272, mga#15264):
+ o use an horizontal scrolling bar when needed
+ o workaround too wide togglebuttons with empty label with gtk+3 and/or Adwaita
+- library (for draklive-install):
+ o use a vertical scrolling bar when needed (mga#15272)
+
+Version 16.56 - 10 February 2015
+
+- service_harddrake:
+ * add support for the new nvidia340 driver (mga#15255)
+ * drop references to old unsupported nVidia drivers
+
+Version 16.55 - 9 February 2015
+
+- drakclock: Ensure that /etc/localtime is a symlink (mga#14888)
+- users: Make sure to restart accounts-daemon after adding users (mga#15113, mga#14476)
+- i18n: Write the desired console font to /etc/vconsole.conf
+- i18n: Use the x-distro /etc/locale.conf file instead of /etc/sysconfig/i18n
+- drakedm: Do not use ancient dm init script to restart DM
+
+Version 16.53 - 6 February 2015
+
+- switch from oxygen-gtk to Adwaita theme
+
+Version 16.52 - 5 February 2015
+
+- libDrakX/fsedit.pm: new "simple" partitioning scheme
+ o create separate /home only when more than 50G are available
+ o in such case, / is 6/19th of the available space up to 50G,
+ swap is 1/19th up to 4G and /home is the rest (12/19th)
+ o https://ml.mageia.org/l/arc/dev/2014-12/msg00330.html
+- recognize new kernel-3.19 drivers
+- fix GPT initialization on empty disk
+
+Version 16.50 - 9 January 2015
+
+- add UEFI support
+
+Version 16.49 - 20 December 2014
+
+- recognize new kernel-3.18 drivers (mga#14799)
+
+Version 16.47 - 5 December 2014
+
+- drakboot:
+ o do not crash if fstab contains a bind mount on a file (mga#14657)
+
+Version 16.46 - 25 November 2014
+
+- harddrake:
+ o recognize e17/lxde/mate/razor (mga#12495, Luc Menut)
+- split drakbug support in its own module (mga#14565)
+
+Version 16.44 - 23 October 2014
+
+- fix drakxservices not showing all services due to systemctl output change
+- draksound
+ o adapt to the switch to systemd for spawning PulseAudio
+
+Version 16.42 - 18 September 2014
+
+- only allow GRUB2 when booting on btrfs
+- don't include display_installer_help in drakxtools, it can not run outside
+ install
+
+Version 16.41 - 31 August 2014
+
+- add packages to wanted_hardware_packages list to prevent them being removed:
+ * b43-fwcutter, b43-openfwwf, atmel-firmware, speedtouch-firmware
+ * zd1211-firmware, isdn4k-utils, rfkill, x11-driver-input-wacom
+- allow /boot on btrfs
+- recognize new kernel-3.17 drivers
+
+Version 16.39 - 17 August 2014
+
+- mygtk3:
+ o add support for gtkset() on 'ComboBoxText' widgets for drakpxelinux
+- recognize new kernel-3.16 drivers
+- switch uid/gid boundary to 1000+
+
+Version 16.37 - 3 July 2014
+
+- diskdrake:
+ o improve fs sorting in combo box (mga#13640)
+
+Version 16.36 - 1 July 2014
+
+- hide /boot/efi check for now (mga#13638)
+- fix not being able to select packages when list contains only one (mga#13492)
+
+Version 16.34 - 26 June 2014
+
+- do_pkgs:
+ o fix a warning in mousedrake
+- drakclock:
+ o fix crash on clicking "Cancel" after TZ selection (mga#13534)
+ o fix loosing TZ choice when canceling TZ selection (mga#13534)
+- drakfont:
+ o fix installing fonts (Frdric Buclin, mga#11849)
+
+Version 16.33 - 18 June 2014
+
+- stop creating some /dev entries that are managed by udev
+
+Version 16.32 - 15 June 2014
+
+- recognize new kernel-3.15 drivers
+
+Version 16.30 - 4 June 2014
+
+- add some POD documentation
+- drop (broken) support for Alpha, PPC, Sparc & IA64
+- fix detecting some UPS devices (mga#13424)
+- drakbug:
+ o fix some package names after the mdv->mga fork
+- localedrake:
+ o stop configuring HAL
+ o update locales list
+
+Version 16.28 - 28 April 2014
+
+- recognize new kernel-3.14 drivers
+
+Version 16.27 - 18 February 2014
+
+- nuke create_link_source(), as we haven't supported building against an
+ unprepared source for ages, and currently also can trigger wrong symlinks
+ when kernel-source is installed before for example kernel-linus as found
+ out during QA for mga#12518 and debugging the issue on irc
+
+Version 16.26.8 - 4 February 2014
+
+- harddrake:
+ o fix untranslated "Help" entry in menu (mga#12497)
+
+Version 16.26.7 - 25 January 2014
+
+- do not exec pkexec but run it so it has a parent process to fix double fork
+ issues mga#11184 mga#12364
+
+Version 16.26.1 - 20 January 2014
+
+- diskdrake:
+ o increase back minimum partition width for Oxygen (mga#11977)
+
+Version 16.26 - 20 January 2014
+
+- diskdrake:
+ o fix sizing partition widgets
+ o revert minimum partition width to its pre-gtk3 value
+
+Version 16.23 - 16 January 2014
+
+- dont remove pulseaudio-module-bluetooth (mga#12323)
+- fix a rpmdrake crash (mga#12331)
+
+Version 16.22 - 15 January 2014
+
+- services:
+ o use --no-block with chkconfig and systemctl enable to prevent systemd reload
+ and potential crash (especially during first/live boot)
+- harddrake:
+ o fix detecting some wireless devices as scanners (mga#9895)
+ o fix random order of fields with perl-5.18
+
+Version 16.21 - 13 January 2014
+
+- diskdrake:
+ o do not propose check bad blocks for btrfs (Manuel Hiebel, mga#10116)
+ o increase minimum partition width for Oxygen (mga#11977)
+ (if not enough, we will disable labels on partitions buttons again)
+- drakboot:
+ o add minimal/experimental lightdm autologin support (mga#11746)
+- harddrake, logdrake:
+ o fix menu accelerators
+- --version option:
+ o display mga copyright too (mga#10289)
+
+Version 16.18 - 28 December 2013
+
+- detecting input devices:
+ o display the real accessed /dev/input/eventX file (mga#8232)
+ o do not crash if /dev/input/eventX doesn't exist (mga#10296)
+ o do not fill logs with "Cannot open /dev/input/eventX" (mga#8232)
+- draksec:
+ o use expanders for clarity
+
+Version 16.17 - 20 December 2013
+
+- drakfont:
+ o fix a crash (mga#12057)
+
+Version 16.16 - 16 December 2013
+
+- fix a drakx crash (mga#6031)
+
+Version 16.15 - 12 December 2013
+
+- workaround a gtk+3 issue resulting in blacked embbeded tools with some
+ locales (eg: pl/uk) (mga#11969)
+
+Version 16.13 - 10 December 2013
+
+- localedrake:
+ o fix crash when selecting an input method (mga#11939)
+
+Version 16.12 - 9 December 2013
+
+- partitioning wizard:
+ o log failures (mga#11924)
+ o workaround a crash (mga#11924)
+
+Version 16.11 - 6 December 2013
+
+- fix a crash in rpmdrake when package list is empty (mga#11901)
+
+Version 16.8 - 5 December 2013
+
+- prevent drakxtools-backend to require Glib::Object::Introspection (mga#11842)
+
+Version 16.7 - 5 December 2013
+
+- diskdrake:
+ o fix a crash when creating partitions (mga#11876)
+
+Version 16.6 - 4 December 2013
+
+- fix blue background behind left panel text (mga#11866)
+ (for not yet released gtk3 mcc)
+
+Version 16.5 - 3 December 2013
+
+- diskdrake:
+ o detect eMMc block devices (Luc Menut, mga#11812)
+ o fix a crash in partitioning wizard (mga#11820)
+ o show labels on partition buttons again but ellipsized (mga#11858)
+
+Version 16.4 - 2 December 2013
+
+- fix banners not being blue anymore with Oxygen-gtk theme (kbo#328270)
+- diskdrake:
+ o fix diskdrake colorized partition tabs with Adwaita (bgo#719624)
+
+Version 16.3 - 30 November 2013
+
+- harddrake:
+ o fix starting after draksound drop OSS/ALSA switch
+
+Version 16.2 - 29 November 2013
+
+- diskdrake:
+ o fix dialog keeping growing when switching tabs (mga#11822):
+ move partition labels to toolips
+- draksound:
+ o do not offer to switch to OSS
+ o do not offer to switch to another driver if there's none
+ o do not offer to pick a random driver when we've a default one
+- finish-install:
+ o no more run urpmi.update when adding media
+ (uneeded with urpmi-7.27+)
+- mygtk3 layer:
+ o add support for RadioMenuItems for rpmdrake
+- ugtk3 layer:
+ o make shrinking window work again (eg: draknfs)
+
+Version 16.1 - 28 November 2013
+
+- mcc:
+ o restore galaxy RC file, thus fixing left panel text color (mga#11773)
+ o fix Gtk2 banners' text position (mga#11778)
+- Banners:
+ o align text to left instead of centering it
+ o text is rendered as blue again
+- diskdrake:
+ o prevent looping forever when sizing partition tabs
+- logdrake:
+ o fix Gtk3::TextView::get_window() passed too few parameters (mga#11807)
+
+Version 16.0 - 23 November 2013
+
+- switch from Gtk+-2 to Gtk+-3:
+ o Banners: most themes work OK but Oxygen-gtk3...
+ o diskdrake: most themes work OK but Oxygen-gtk3...
+ o drakclock cannot temporary changes the clock
+ o notifications work again for net_applet
+- detect_devices:
+ fix ids to be numeric
+- drakxservices:
+ o simplify: just use tooltips for service descriptions"
+- drakclock:
+ o assume chrony rather than ntp when neither is installed
+- draksec:
+ o make sure to restart polkitd after writing rules
+ o support polkit rules editing for permissions overrides
+
+Version 15.73.1 - 19 November 2013
+
+- add chrony support to drakclock mga#11092
+
+Version 15.73 - 12 November 2013
+
+- polkit: fix wrappers to properly escape arguments when calling the binary
+
+Version 15.72 - 9 November 2013
+
+- dont remove radeon-firmware or any network related firmwares as we dont
+ know when some hw gets plugged that needs it
+
+Version 15.68 - 14 October 2013
+
+- fix path to urpmi.update (so it works without mgaonline installed mga#11125)
+- recognize new kernel-3.12 drivers
+- wrap more standalone tools in polkit (mga#11125, mga#11418)
+
+Version 15.67 - 10 October 2013
+
+- recognize new kernel-3.11 drivers
+
+Version 15.66 - 3 October 2013
+
+- HW detection:
+ o fix detecting some soft RAID (mga#11139 and the like)
+ o detect wifi cards managed by ssb driver (mga#9378)
+- remove symlinks during install that are now handled in drakx-kbd-mouse-x11
+- diskdrake:
+ o enable to format already formated btrfs partitions (mga#11256)
+- use polkit for authorisation (mga#11125)
+- drakauth:
+ o fix ldap configuration (mga#10005)
+- ensure files are installed for nfs (mga#10301)
+
+Version 15.57 - 16 July 2013
+
+- adapt to latest btrfs utils for resizing
+
+Version 15.56 - 16 July 2013
+
+- detect wifi cards managed by bcma driver (mga#9378)
+- detect new kernel-3.10 drivers
+
+Version 15.55 - 12 June 2013
+
+- drakfirewall: fix config not applied (#9941)
+- drakboot:
+ o fix displaying need to install acpi* packages when they're already installed
+ o read/save choosen default entry
+- finish-install:
+ kbluetooth is replaced by bluedevil, (#10082)
+- harddrake2:
+ o detect more radio devices
+
+Version 15.54 - 17 May 2013
+
+- fix offering to install shorewall & shorewall-ipv6 when already installed
+
+Version 15.53 - 15 May 2013
+
+- logdrake:
+ o fix rsyslog<->syslog-ng install loop (mga#10086)
+
+Version 15.51 - 13 May 2013
+
+- drop support for fetching release-notes.ARCH.html
+- finish-install: enable Nonfree/Tainted repositories if a package
+ having a matching name is installed (#8379)
+- detect_devices: check for phy80211 sysfs directory as well to detect
+ wireless devices
+
+Version 15.50 - 7 May 2013
+
+- harddrake service:
+ o do not disable bluetooth service if adapter disappears
+ (for example if disabled by Fn keys)
+ systemd will automatically disable the service if needed
+ o install ethernet/wireless packages when a new device is detected,
+ this shoud help for Broadcom devices
+
+Version 15.47 - 30 April 2013
+
+- skip comments in /etc/crypttab (Colin, mga#9905)
+
+Version 15.46 - 29 April 2013
+
+- logdrake:
+ o ensure syslog-daemon is installed (stopgap to full journal support)
+
+Version 15.45 - 27 April 2013
+
+- diskdrake:
+ o only allow 'acl' option for extX & reiserfs (mga#9884)
+- drakboot:
+ o try harder to get a label for other OSes (mga#9849,9681)
+
+Version 15.44 - 23 April 2013
+
+- diskdrake:
+ o fix a crash when reloading partition table (mga#9838)
+ o fix a crash when trying to create a encrypted LVM partition (mga#9837)
+
+Version 15.42 - 21 April 2013
+
+- diskdrake (mga#5661):
+ o ensure LVMs on top of dmcrypt are activated after unlocking
+ o fix UI redraw issue after unlocking dmcrypt partition
+
+Version 15.41 - 21 April 2013
+
+- popup dialog confirming to quit when clicking "X" (mga#8476):
+ o do not enable it by default
+ o enable apps to enable it on demand
+- updated translations
+
+Version 15.40 - 19 April 2013
+
+- diskdrake (mga#5661):
+ o fix losing crypt key when detecting LVMs on top of dmcrypt
+ o fix losing crypt key when re-reading partition tables
+- drakauth:
+ o 'nss-pam-ldapd' obsoletes 'pam_ldap' (mga#9769)
+- drakups:
+ o do not rely on legacy initscript for install test (mga#9474)
+
+Version 15.37 - 9 April 2013
+
+- library:
+ o fix detecting some USB devices due to not reporting their class (mga#9674)
+- finish-install:
+ o configure urpmi media even if local media are configured, and only if
+ online media are not setup (for live, mga #8379#c7)
+- diskdrake:
+ o allow to choose btrfs in normal mode (mga#65)
+- harddrake:
+ o fix displayed PCI/USB ids (spot in mga#9674)
+ o list HID USB devices with keyboards
+
+Version 15.36 - 6 April 2013
+
+- library (for draklive-install):
+ o bind mount /run in chroot, thus fixing dracut runs (Dave Hodgins, mga#9213)
+- drakboot:
+ o fix other Mga OS names in menu (mga#8710)
+
+Version 15.35 - 5 April 2013
+
+- diskdrake:
+ o fix removing LVM entries when saving /etc/fstab (mga#5811)
+- drakboot:
+ o assume grub2.cfg is UTF-8 encoded
+ o read back xen conf from grub2
+ o set entries type when reading back grub2 conf, thus fixing
+ switching back to grub-legacy (mga#9563)
+- draksound
+ o update draksound troubleshooting text (mga#4162)
+
+Version 15.33 - 4 April 2013
+
+- bootloader-config:
+ o fix adding bogus bootloader entries (root=/dev/) when silently
+ failing to lookup / partition (mga#8717)
+ o try harder to lookup / partition y looking at mounted points (mga#8717)
+
+Version 15.32 - 31 March 2013
+
+- fix detecting Xen hard disks (mga#9546)
+
+Version 15.31 - 21 March 2013
+
+- do not show notification bubble in net_applet as they make it to
+ segfault (mga#9102)
+- recognize more webcam & bluetooth devices (might help mga#5841)
+
+Version 15.28 - 21 March 2013
+
+- bootloader-config:
+ o do not build initrd if no bootloader is detected and
+ --no-initd argument is supplied
+- diskdrake:
+ o actually preserve UUID when formatting (mga#9428)
+- drakauth:
+ o install nss-pam-ldapd instead of nss_ldap (mga#9375)
+
+Version 15.27 - 12 March 2013
+
+- fix mounting NFS server (Derek Jennings, mga#207)
+- drakboot:
+ o install grub2-efi instead of grub2 if using UEFI (mga#8886)
+
+Version 15.26 - 5 March 2013
+
+- include display_installer_help
+
+Version 15.25 - 5 March 2013
+
+- finish-install:
+ o prevent displaying twice release notes
+
+Version 15.24.1 - 1 March 2013
+
+- harddrake:
+ o add nvidia304 to service_harddrake (Luc Menut, mga #9216)
+
+Version 15.24 - 28 February 2013
+
+- drakboot:
+ o allow installing grub2 on a partition (mga#8742)
+ o try harder not to have duplicate stuff on grub2 cmd line
+
+Version 15.23 - 27 February 2013
+
+- drakboot:
+ o fix detecting grub2 if there's a remaining grub-legacy signature
+ o read more of grub2 config
+ o read & save timeout value (mga#8850)
+ o set default parameters in grub2 config (mga#9177)
+
+Version 15.21 - 26 February 2013
+
+- bootloader-config:
+ o add proper support for grub2 (detectloader, ...)
+- drakboot:
+ o add basic support for reading back grub2 config
+ o read & write /boot/grub2/drakboot.conf
+ o prevent installing grub2 somewhere else than MBR
+- always bypass blkid cache (the cache only includes a subset of the data we need)
+
+Version 15.19 - 16 January 2013
+
+- update translations
+- do not bypass blkid cache
+
+Version 15.14 - 17 December 2012
+
+- ugtk2: use new exceptions management
+- drakboot:
+ o fix installing grub2 from live session (blino)
+
+Version 15.13 - 15 December 2012
+
+- fix checking grub2 installation (mga#8390)
+
+Version 15.12 - 14 December 2012
+
+- "enhance" fake grub2 conf reading (mga#8366)
+
+Version 15.11 - 13 December 2012
+
+- interactive layer:
+ o fix quitting app when closing "advanced" dialog (mga#1812)
+- mygtk2 layer:
+ o add register_main_window() for tracking main windows
+ o popup a dialog confirming to quit when clicking "X" (mga#1812)
+- drakboot:
+ o install grub2 if needed
+
+Version 15.10 - 11 December 2012
+
+- revert rosa crap that breaks generating initrd (mga#8357)
+
+Version 15.9 - 11 December 2012
+
+- library:
+ o if a partition has been manually formated, don't offer to format
+ it again (for draklive-install, mga#7822)
+
+Version 15.3 - 9 December 2012
+
+- finish-install:
+ o fix a crash by lazy loading services when needed
+ (Dave Hodgins, mga#8335)
+
+Version 15.2 - 7 December 2012
+
+- drakboot:
+ o add fake grub2 conf reading
+
+Version 15.1 - 7 December 2012
+
+- add basic support for grub2 (mga#416)
+ (based on rosa work but fixed and completed)
+
+Version 14.50 - 6 November 2012
+
+- adapt to new reboot path
+- include FIRMWARE packages from Cards+ in detected graphical drivers,
+ not to remove radeon-firmware if a matching card is present (#6438, #7641)
+
+Version 14.47 - 12 October 2012
+
+- diskdrake:
+ o offer resizing NTFS again (broken by ntfsprogs -> ntfs-3g switch)
+- drakclock:
+ o do not crash if timezones cannot be listed (mga#6787)
+- drakfont:
+ o fix a crash
+ o fix ttmkfdir path
+
+Version 14.45 - 20 September 2012
+
+- do not crash when trying to guess homedir before running another
+ process (mga#7403)
+- drakfont:
+ o fix moving font files with space in their names (mga#2689)
+- harddrake2:
+ o remove useless "Autodetect printers" option
+
+Version 14.44 - 14 September 2012
+
+- drakbug:
+ o fix preselecting "RPM package" (Manuel Hiebel, mga#7380)
+- finish-install:
+ o advertize new doc license & licenser (mga#7347)
+
+Version 14.43 - 4 September 2012
+
+- fix crashing when a banner icon doesn't exist (mga#5223)
+- recognize new drivers:
+ o input: hid-aureal synaptics_usb
+ o wifi: qmi_wwan, mwifiex_usb
+
+Version 14.40 - 3 September 2012
+
+- boodloader:
+ o ensure initrds used in combination with kernels with vga= arguments
+ are regenerated when needed
+- adapt to usbfs death
+- drakxservices:
+ o fix checking systemd presence after systemd merge of subpackages
+
+Version 14.33 - 7 August 2012
+
+- autologin:
+ o support lxdm & slim too (#3715, Derek Jennings)
+ o install autologin for lxdm & slim too
+- drakboot:
+ o do not crash if trying to build initrd from unknown partitions (mga#4290)
+ o do not crash if a foreign partition is not mounted (mga#6966)
+ o install acpi & acpid at once
+- drakxservices:
+ o when listing services ensure disabled services that can be enabled are
+ shown (mga#6843)
+
+Version 14.31 - 24 July 2012
+
+- drakauth: don't update UsePAM option in sshd configuration
+- diskdrake: install nfs-utils instead of nfs-utils-clients
+ (#6570, merged back in nfs-utils)
+
+Version 14.21 - 11 May 2012
+
+- harddrake2: allow writing 0 as module option, and forbid options
+ with spaces (#5839, from Colin)
+- export res_init function to perl lib
+
+Version 14.20 - 6 May 2012
+
+- diskdrake:
+ o drop support for reiser4 (mga#5680)
+- harddrake service:
+ o do not disable cpufreq on non-laptops
+ o remove double apmd check
+
+Version 14.16 - 29 April 2012
+
+- harddrake service:
+ o use non-blocking mode for service restart (mga#4772)
+
+Version 14.11 - 25 April 2012
+
+- finish-install: make sure sbin is added to PATH
+- harddrake:
+ o list "zc3xx" driven as webcams (mga#5449)
+- interactive::curses:
+ o make sure ranges are always within limits (mga#646)
+- ensure swap partition is activated in dracut (e.g. for swap on LVM, RAID etc)
+- drakboot:
+ o display mountpoint if available, and size+fs_type if we have nothing
+ else (mga#5460)
+- diskdrake:
+ o do not set fs_type to ext4 for raw LVM/RAID/LUKS
+ o detect LVM on top on Encrypted partitions (mga#5330)
+- drakxservices:
+ o systemd support (mga#3253, mga#3740, mga#4910, mga#5122)
+
+Version 14.3 - 7 April 2012
+
+- diskdrake:
+ o fix partition numbering on GPT (mga#3091)
+
+Version 14.2 - 5 April 2012
+
+- harddrake service:
+ o cpufreq performance governor is no longer a module
+ o reduce default timeout from 10 to 2mn (mga#4772)
+
+Version 14.1 - 23 March 2012
+
+- drakauth:
+ o fix actually displaying "Domain Windows for authentication"
+- drakboot:
+ o use "splash" on the kernel command line vs. "splash=silent" as per upstream
+ code (e.g. plymouth, systemd and others)
+ o support the "quiet" kernel command line argument to hide kernel text
+- drakbug, draksec, drakxhelp, logdrake:
+ o fix displaying "Mageia"
+- harddrake:
+ o fix detecting bluetooth devices
+
+Version 13.93 - 12 March 2012
+
+- fix mgaapplet crashing on live migration when there's a new major version of
+ perl (mga#3042)
+- reduce resident memory of net_applet (5Mb aka 11%) & mgapplet (7Mb aka 14%)
+
+Version 13.92 - 11 March 2012
+
+- english message improvement (mga#456)
+- diskdrake:
+ o fix error on removing LVs
+ o fix resizing LVs (mga#4666)
+
+Version 13.89.1 - 02 March 2012
+
+- service_harddrake:
+ o recognize XZ compressed proprietary driver modules properly (mga#4767)
+
+Version 13.86 - 29 February 2012
+
+- load 'xts' module for crypted fses (Dave Hodgins, mga#3749)
+- recognize more HID drivers (mga#4129)
+
+Version 13.81 - 13 February 2012
+
+- localedrake:
+ o add hime
+ o remove chinput, kinput2, oxim, xcin
+- make drakclock systemd compatible
+- fix crashing on parsing garbaged DMI info (mga#4329)
+- diskdrake:
+ o use better cipher for encrypted fses (mga#3092)
+
+Version 13.79 - 25 January 2012
+
+- silent failure to extract gz modules (for rescue)
+- diskdrake:
+ o better default name for new VG (vg-mga, vg-mga1, ...
+ instead of vg-0, vg-1, ...)
+
+Version 13.77 - 23 January 2012
+
+- add support for XZ modules
+- diskdrake:
+ o enable to set LV names when not in expert mode
+ o enable to set label on btrfs & nilfs fses as well as on swap
+ o preserve UUID when reformatting a nilfs fs
+ o report back error from lvm2
+ o suggest better LV names based on the mount point rather than numbers
+
+Version 13.74 - 24 December 2011
+
+- version sync with stage2
+
+Version 13.73 - 24 December 2011
+
+- drakboot:
+ o display partition labels in list instead of just disk names in "boot
+ device" choice
+ o display partition labels when adding a foreign OS
+- harddrake: fix missing names (mga#3745)
+- interactive::curses: default to 80x25 (fixes serial)
+- dont force init=/bin/systemd (#3856, already fixed in svn by blino)
+
+Version 13.72.1 - 11 December 2011
+
+- fix $HOME for all when runing as another user instead of root (mga#287)
+- harddrake: fix crash after mismerge (mga#3696)
+
+Version 13.72 - 10 December 2011
+
+- drakhelp: make it work somewhat despite lack of doc
+- prevent net_applet to crash on notifications without icons (mga#2876)
+- harddrake:
+ o do not display some bluetooth stuff as unknown (mga#1460)
+ o prevent detecting some soft modems as scanners (mga#2753)
+
+Version 13.71 - 04 December 2011
+
+- service_harddrake:
+ o better notification message when the driver has been automatically
+ switched
+ o show a correct warning message when a proprietary driver is loaded while
+ a free driver is configured
+ o fix driver switch failing to alter xorg.conf when the Driver line doesn't
+ contain default whitespacing (reported by Barry Jackson)
+
+Version 13.70.2 - 27 November 2011
+
+- fix crashing on creating temp file if temp dir doesn't exist (mga#1396)
+
+Version 13.70.1 - 22 November 2011
+
+- drakbug:
+ o do not keep around the segfaulted process once we collected all needed data
+ when running drakbug
+ o regroup misc data in bugzilla
+
+Version 13.70 - 22 November 2011
+
+- drakbug:
+ o report the gtk+ theme in use (#3414) which explain some crashes (eg: #2679)
+ o include better C traces in reports (mga#3415)
+ o remove top of traces that is inside bug handler from report
+ o no more run GDB (too late & faster)
+- Add initial Systemd support
+- sync with kernel-3.1.0-1.mga2
+ * add hid devices:
+ hid-keytouch, hid-uclogic
+ * add sas/raid driver:
+ isci
+ * add sound devices:
+ snd-lola, snd-firewire-speakers snd-isight, snd-usb-6fire
+ * add usb/storage:
+ ums-eneub6250, ums-realtek
+ * add wireless drivers:
+ brcmsmac, rtl8187se, rtusb, rtl8192se, rtl8192cu, rtl8192de
+
+Version 13.63 - 07 September 2011
+
+- finish-install:
+ o "Multi languages" => "Multiple languages" (mga#1011)
+- diskdrake:
+ o always align partitions to start at megabyte boundaries to avoid
+ performance issues with drives with 4k physical sectors (mga#1215)
+
+Version 13.61 - 01 August 2011
+
+- disdrake:
+ o spaces are not allowed between options in /etc/fstab (#2271)
+- drakfont:
+ o rename Ooo as LibreOffice (#461)
+ o enable support for LibreOffice/gs/... only if available (#461)
+- fix bootloader entries names
+
+Version 13.60 - 27 July 2011
+
+- any.pm:
+ o Add lxsession to the wm list, and add lxde-logout as the
+ ask_window_manager_to_logout command (mga#1395)
+ o share some kernel check's code for drakx-net (#1266)
+
+Version 13.59 - 14 June 2011
+
+- fix libnotify API ( mga #1780)
+
+Version 13.58 - 26 May 2011
+
+- update translations
+- fix top banner
+
+Version 13.55 - 20 May 2011
+
+- finish-install: do not try to replace home path for device files
+ after live install (#1148)
+- add ums-* (USB mass storage) modules in disk/usb category
+
+Version 13.54 - 19 May 2011
+
+- draksound:
+ o Robustify the PulseAudio configs (don't try and write files if they
+ do not exists. Doing so previously would result in blank files that then
+ causes problems when installing PulseAudio as the "config" files are not
+ overwritten properly which can result in broken PA startup)
+ o Remove the "Enable 5.1..." option. This is now done via card profiles
+ in native GUIs for GNOME and KDE (or pavucontrol)
+ o Remove the "Enable user switching..." option as it relies on HAL
+ which is deprecated.
+- scannerdrake: use skanlite instead of kooka
+- any.pm: fix faces icons paths (mga#1315)
+- fix reading security level with new msec (mga#332)
+
+Version 13.52 - 14 May 2011
+
+- diskdrake: disbale encryption option for /boot
+- match partitions when one of them as device_alias to the device of the other
+ one (Fixes Mageia bug #1041)
+
+Version 13.51 - 12 May 2011
+
+- harddrake: update icons
+
+Version 13.50 - 06 May 2011
+
+- bind more pciutils/libldetect for stage1
+- localedrake:
+ o use proper locales-XX packages for Albanian (#1036)
+
+Version 13.49 - 26 April 2011
+
+- add sdhci-pci to card-reader list
+- add xhci-hcd (usb3 support)
+- replace Mageia Linux with Mageia
+- fix fd leak in EVIOCGBIT code
+- fix the bugzilla url generated by drakbug by changing 'classificaiton=Mageia'
+ to 'product=Mageia' (mga#831)
+- service_harddrake:
+ o load new drivers or ask for reboot also if the driver is switched due to
+ a hardware change instead of an ldetect-lst change
+ o show yes/no buttons instead of ok/cancel when asking about running a
+ config tool
+ o show a dialog about having to use nokmsboot if we couldn't automatically
+ reconfigure the boot loader (e.g. when booted directly from a foreign
+ bootloader) (Mageia bug #893)
+
+Version 13.48 - 17 April 2011
+
+- service_harddrake:
+ o adapt splash handling for plymouth (for showing dialogs)
+ o add/remove nokmsboot boot option if needed
+ o ask for a reboot after a driver switch if needed, and load the new driver
+ if no reboot is needed
+ o do not switch a display driver if speedboot has already started X server,
+ in that case simply disable speedboot for next boot
+- add nokmsboot boot option also if the bootloader is installed after setting
+ up a conflicting display driver (e.g. draklive-install)
+
+Version 13.47
+- modify a string in partitioning_wizard.pm to be more grammatically correct
+ (spotted by Sigrid Carrera, on mageia-i18n ML)
+- update modules list needed for md raid456 and dm-raid 4/5/6 target
+
+- arm/mips support
+- use EVIOCGBIT ioctl instead of parsing /proc/bus/input/devices
+
+- finish-install: touch reload-dm lock file
+ (used in live systems to restart gdm with new defaults )
+
+Version 13.43
+
+- Change text to grey
+- Remove mandriva occurencies
+- Rename $mandrake_release and mandrake_release_info() functions
+- cpufreq: add support for Athlon/Phenom II processors (#58477)
+- handle new drivers:
+ o ethernet: cx82310_eth
+ o 10g ethernet: bna, pch_gbe, stmmac
+ o modem: ft1000
+ o usb storage: keucr, uas
+ o wifi: ath6kl, bcm_wimax, brcm80211, carl9170, r8712u
+
+Version 13.39 - 24 November 2010
+- fix use of arrays as a reference
+- install static device symlinks under /lib/udev/devices (Andrey Borzenkov)
+
+Version 13.35 - 22 June 2010
+
+- add scrollbar to partitioning wizard if needed
+- user management: focus on first entry in dialog, root password if
+ superuser is asked, user real name otherwise (#54910)
+- timezone.pm: change India default timezone name from Asia/Calcutta to
+ Asia/Kolkata (#59715)
+- timezone/mirror.pm: change Brazil/East entries to America/Sao_Paulo,
+ Brazil/East is the deprecated/old time zone name
+
+Version 13.34 - 5 June 2010
+
+- drakauth:
+ o fix installing lib64sasl2-plug-gssapi instead of
+ libsasl2-plug-gssapi on 64bit machines when 32bit media are
+ available (#57728)
+- harddrake:
+ o fix displaying encoded reason
+ o fix translating reasons for 2nd stage warning
+- localedrake:
+ o fix listing locales only providing UTF8 metadata (#59634, Herton
+ Ronaldo Krzesinski)
+ o further fix listing locales (#58543)
+
+Version 13.33 - 4 June 2010
+
+- lookup major:minor of devices outside $::prefix
+- display lock icon for not enabled dmcrypt too
+- disable dmcrypt before deleting partition, evin if inside lvm/raid
+- fix loading of btrfs module
+
+Version 13.32 - 2 June 2010
+
+- don't lose mountpoint if suggested partition was swap (#59510)
+- copy all devices to target
+
+Version 13.31 - 26 May 2010
+
+- service_harddrake: reconfigure X server after distro upgrades when video
+ driver has changed (#53753)
+
+Version 13.30 - 26 May 2010
+
+- task-kde3-minimal is dead, and there is now task-gnome-minimal
+- do not remove important networking packages even if they seem unused (#49668)
+
+Version 13.29 - 24 May 2010
+
+- display_release_notes.pl: don't use ::isInstall to position the release not
+ window on top of everything (doesn't work on the Ones), use
+ any::set_wm_hints_if_needed instead (#59155)
+- handle raid metadata version
+- force raid metadata to be 0.90 if /boot is on raid 1
+- fix detection of /var partition
+- fix raid 0 to be handled as raid
+
+Version 13.28 - 19 May 2010
+
+- display_help: allow scripts to close window, for first time wizard
+ (by default webkit only allows it for first page in history or for
+ pages opened by DOM, requires webkit-1.2.0-3mdv2010.1)
+- always set resume= when a swap is available, regardless of its size (#34681)
+
+Version 13.26 - 17 May 2010
+
+- enable acl by default on ext2/3/4 fs
+- enable user_xattr on home for ext2 too
+- allow setting acl option in diskdrake
+- default to defaultFS in LVM, not ext2
+
+Version 13.25 - 11 May 2010
+
+- bugfix for draklive-install: use "short" locale name when matching
+ locales-* packages to detect unused locales (fixes bug #44270)
+- diskdrake:
+ o don't ask to reboot after resize if not needed
+ o do not ask to reboot after resizing LUKS if not mounted
+- workaround mapper/* being symlinks in dmraid support
+
+Version 13.24 - 9 May 2010
+
+- devices:
+ o get major/minor of device mapper correctly now that they are links
+- fix creation of device mapper devices in fs::any::prepare_minimal_root
+ (this fixes initrd creation from one if using lvm)
+
+Version 13.23 - 30 April 2010
+
+- diskdrake:
+ o fix the crypto mountpoint checks for the create case
+ o partially fix resize of active encrypted volumes
+ o fix race when creating encrypted partition out of install
+
+Version 13.22 - 29 April 2010
+
+- diskdrake:
+ o correctly set mountpoint on included partition, not encrypted one
+ o refuse to have /boot encrypted
+
+Version 13.21 - 27 April 2010
+
+- finish-install:
+ o wait for network-up before trying to configure it (blino)
+- diskdrake:
+ o do not warn about data loss when changing type of unformatted partition
+ o do not write partition table after creation if not needed
+ o handle deleting encrypted partitions
+ o display lock icon on encrypted partitions
+ o fix loading of dmcrypt info now that /dev/mapper/* are symlinks
+ o fix creating encrypted LVM
+ o fix display of non unlocked encrypted partitions
+ o re-use existing strings
+
+Version 13.20 - 21 April 2010
+
+- diskdrake:
+ o allow resizing empty FAT (#58770)
+ o offer encryption in a more visible way when creating a partition
+ o remove cryptoloop from diskdrake interface and transparently use dm-crypt
+ o support having dm-crypt partition with non default FS
+ o do not display dm-crypt partitions in separate tab, display included
+ partition directly in-place
+
+Version 13.19 - 13 April 2010
+
+- service_harddrake:
+ o remove 'Disable "dri"' from xorg.conf if nouveau is being used
+- drakxservices:
+ o translate more service descriptions (#46640)
+- detect "Rack Mount" Chassis as server
+- diskdrake:
+ o use device label even if it was not changed (#47456)
+ o allow resizing btrfs
+ o allow creating btrfs and nilfs2
+- drakboot
+ o remove "restricted" option from general advanced options (wasn't doing
+ anything with grub, and wasn't really useful with lilo)
+ o add per-boot-entry "lock" checkbox in advanced options to be able to
+ protect booting these entries with a password
+
+Version 13.15 - 17 March 2010
+
+- include 'mpt2sas' SCSI driver (#57833)
+- add mdadm raid10 support
+- package display_release_notes.pl so that "release notes" button works in Ones
+ & Flash live media (#58199) (broken since version 12.48 - 7 September 2009)
+- harddrake:
+ o identify HECI controllers as system devices (#58215)
+
+Version 13.12 - 25 February 2010
+
+- handle new drivers:
+ o webcam: stv06xx (#53940)
+- run_program:
+ use home and logname of user we are dropping privileges to, not 501
+- harddrake:
+ o display info about cores
+ o do not display 2 decades old CPU bugs
+ o try harder to match webcams (#53940)
+- detect_devices:
+ o fix merging PCI devices info from sysfs which resulted in
+ ill-informed devices matching (#57711)
+
+Version 13.11 - 10 February 2010
+
+- add support for asturian (#56990)
+- drakboot:
+ o fix crypted password detection
+
+Version 13.10 - 4 February 2010
+
+- handle new drivers:
+ o ATA: pata_atp867x, pata_piccolo, pata_rdc
+ o DVB: dvb-usb-ec168, dvb-usb-friio, earth-pt1
+ o ISDN: avmfritz, mISDNinfineon, netjet, speedfax, w6692
+ o network: vmxnet3
+ o radio: radio-miropcm20, radio-usb-si470x
+ o RAID: 3w-sas, hpsa, pmcraid
+ o SCSI: be2iscsi, bfa, pm8001, vmw_pvscsi
+ o TV: cx25821, saa7164
+ o wifi: r8187se, r8192_pci, r8192u_usb, rt2800pci, vt6655_stage, vt6656_stage
+- drakboot:
+ o default to always crypt grub passwords
+ o ensure /boot/grub/menu.lst permissions are 0600 since it can
+ contains a password
+ o fix support for crypted grub passwords
+
+Version 13.9 - 4 February 2010
+
+- drakboot:
+ o add support for crypted grub passwords
+ o always display security settings
+ o allow timeout to be '0'
+
+Version 13.5 - 26 January 2010
+
+- drakboot:
+ o fix reading security level
+ o enable to set bootloader password in high security level
+- harddrake
+ o detect "Hitachi" & "Maxtor" vendors for more hard discs
+ o fix displaying empty info for USB discs
+ o fix detecting firewire controllers with newer kernels
+ o guess real vendor names for SCSI discs like we do for IDE devices
+- booloader:
+ o fix bootloader entry name for rc kernels
+ o remove mnb from bootloader entry name like we do for mdv
+- diskdrake:
+ o support ddf1 dmraid
+
+Version 13.4 - 7 January 2010
+
+- installation mount points: reset unknown partitions types to default
+ fs (ext4) instead of hardcoded ext3
+- detect_devices:
+ o fix detecting pcmcia serial devices
+- diskdrake:
+ o show Ext4 instead of Ext3 in the gtk filesystems button box
+- harddrake:
+ o fix detecting some cameras
+
+Version 13.2 - 14 December 2009
+
+- fix creating devices
+ (really "fix handling hdX/sdX devices (#53107)")
+
+Version 13.1 - 10 December 2009
+
+- diskdrake
+ o fix setting volume label instead of MBR's one for FAT fses (#52853)
+- localedrake
+ o drop support for configuring KDE3
+ o fix configuring ibus (#56130, #56311)
+ o install 'ibus-qt4' if configuring ibus under KDE4 (#56311)
+
+Version 13.0 - 1 December 2009
+
+- bugfix for draklive-install: use ::prefix in pkgs::remove_unused_packages
+- devices detection:
+ o fix reading USB details (#55690)
+ o fix SCSI driver module name
+ o fix sysfs device path from usb devices
+- partitioning wizard:
+ o unmount swap too when unmounting all partitions
+ o do not suggest Windows mountpoint for mounted partitions
+ (breaks install if the Win partition is the installer media)
+ o suggest non-removable disks first
+- harddrake:
+ o do not display bogus "0" ids for hard disks
+ o fix detecting some mice
+- bootloader:
+ o do not add removable drives as "Windows" entry in bootloader
+ o do not pass deprecated --ifneeded option anymore to mkinitrd
+- detect better invalid dos partition table (fixes a crash in harddrake)
+- mygtk2:
+ o allow labels to be set selectable
+- diskdrake:
+ o allow copying disk and partition infos (#55886)
+- localedrake:
+ o do not warn about already installed packages when run as user
+
+Version 12.78 - 18 November 2009
+
+- kill draksplash
+- bootloader-config:
+ o fix migrating swap to UUID
+- drakboot
+ o remove CONSOLE_LOGO support
+ o rework UI layout to account for CONSOLE_LOGO support removal
+- diskdrake:
+ o allow to convert ext2/3 to ext4 but do not enable flags
+ o don't request ntfs-3g on target not yet installed system if we are
+ run inside draklive-install (#55160)
+ o fix detecting hidden partitions as recovery
+ o fix handling hdX/sdX devices (#53107)
+- display_help:
+ o handle window.close() events (#55099)
+ o hide Gtk+ "close" button when displaying first time wizard that
+ now has a HTML "close" button again
+- harddrake:
+ o use actual package name to check for libalsa-plugins-pulseaudio
+ availability instead of using the name of a provide
+- partitioning wizard:
+ o only display Help button in install
+
+Version 12.77 - 30 October 2009
+
+- harddrake service: do not try to reconfigure xorg driver and crash
+ if /etc/X11/xorg does not exist (breaks One startup)
+- bootloader suggestion fixes (to fix removal of vga= option when
+ updating with the installer):
+ o make sure we use long name when adding second kernel with same
+ extension than preferred one
+ o do not add again kernels that are already in bootloader config file
+ o add vga= option for kernels that are not the preferred one as well
+ o remove previous linux-nonfb entries (like done for failsafe),
+ not to add them twice or more
+
+Version 12.74.2 - 29 October 2009
+
+- notify-x11-free-driver-switch, service_harddrake:
+ o explain why xorg driver was reconfigured
+
+Version 12.74.1 - 29 October 2009
+
+- service_harddrake:
+ o fix detecting nvidia71xx and nvidia96xx nvidia proprietary driver
+ when checking if current xorg driver still supports current card
+
+Version 12.74 - 28 October 2009
+
+- partitioning wizard (Windows resize):
+ o fix partition size computing (fixing pixel/sectors ratio)
+ o improve default resizing suggestion:
+ * try to keep at least 1GB free for Windows
+ * try to use from 6GB to 10% free space for Linux
+ o use same windows partition size suggestion for gtk and text installs
+ o really ensure keeping free space for Linux partition
+ o really ensure keeping free space for Windows partition
+- service_harddrake:
+ o auto reconfigure x11 only on first time default driver have changed
+ o do not auto reconfigure if more than one graphic card
+ o do not reconfigure to default driver if driver is not installed
+ o enable to disable reconfiguring to default driver through
+ /etc/sysconfig/harddrake2/service.conf
+ o fix detecting nvidia proprietary driver when checking if current
+ xorg driver still supports current card (#54943)
+ o reconfigure X11 driver if current X11 driver is neither one of
+ currently supported driver for the card for drivers other than ATI
+ & NVidia too (eg: poulsbo)
+
+Version 12.72 - 27 October 2009
+
+- drakboot:
+ o drop support for --splash
+- service_harddrake:
+ o explain why we switch driver in explanations
+ o reconfigure X11 driver if current X11 driver is neither one of
+ currently supported driver for the card, nor a legacy driver
+ ('fbdev' or 'vesa') (#53753)
+
+Version 12.71 - 23 October 2009
+
+- cpufreq: load e_powersaver for VIA C7 (#41377)
+
+Version 12.70 - 22 October 2009
+
+- curses backend: do not crash when resuming interface
+
+Version 12.68 - 19 October 2009
+
+- avoid error messages when using lvm in draklive-install (#36415)
+- partitioning wizard:
+ o use mandriva logo on blue background for mandriva partition
+ o fix option selection when using keyboard
+
+Version 12.67 - 18 October 2009
+
+- service_harddrake: allow to force screen resolution using
+ RESOLUTION_WANTED=XxY in /etc/sysconfig/harddrake2/service.conf
+- partitioning wizard:
+ o use a different color for newly created partition
+ o add legend for the colors
+ o display mount point if known
+ o display ext2 like ext3/4
+ o allow setting new windows size with keyboard (#54691)
+ o use available space
+
+Version 12.66 - 15 October 2009
+
+- finish-install: do not offer to configure 3D desktop if none is
+ installed (requires drak3d >= 1.27)
+- mount windows partitions under /media instead of /mnt (#53392)
+- partitioning wizard:
+ o initialize correctly labels for windows resizing
+ o fix labels for windows resizing when getting back to the screen
+ o offer to resize last big enough windows partition instead
+ of the first one, until user can chose
+- resize disk graphical description when resizing diskdrake
+
+Version 12.65 - 14 October 2009
+
+- partitioning wizard:
+ o allow using existing partition on all disks (#54478)
+ o reduce drawings height
+ o fix windows resize width
+- use UTF-8 for zh_TW (#53976)
+- bootloader:
+ o use initrd-2.6.30.2-xen-5mdv.img instead of initrd-xen-2.6.30.2-xen-5mdv.img
+ o do not link /boot/vmlinuz to xen while allowing a unversioned /boot/vmlinuz-xen
+
+Version 12.64 - 12 October 2009
+
+- run_program layer:
+ o keep a copy of the X11 cookie
+ o try harder to drop privileges
+- partitioning wizard:
+ o put back "previous" button on actions (#54475)
+ o fix typo in message
+ o fix testing interactive::gtk in standalone mode
+ o fix displaying help
+- drakups
+ o fix crash (#54399)
+
+Version 12.63 - 9 October 2009
+
+- drakboot:
+ o fix displaying arrows
+
+Version 12.62 - 9 October 2009
+
+- autologin/desktop configuration (shared code):
+ o fix guessing dm name from lookupdm
+ o abort configuration if dm install fails
+
+Version 12.61 - 8 October 2009
+
+- partitioning_wizard:
+ o do not fail when a windows partition is corrupted
+ o add separator between solutions
+ o give more space between header and solutions
+ o prevent cursor to go under needed size because of rounding
+ o chose windows resizing when clicking on the resize handle (not perfect)
+ o improve resizing captions layout
+- autologin/desktop configuration (shared code):
+ o fix /etc/X11/lookupdm usage during install (for default dm selection)
+ o use gdm for xfce4 and LXDE
+
+Version 12.59 - 7 October 2009
+
+- add back ram devices support (used by draklive)
+- do not set mountpoints for rescue partitions (#53504)
+- factorize default FS definition
+- switch to ext4 by default
+
+Version 12.58 - 5 October 2009
+
+- display_help
+ o block right click contextual menu
+ o do not display "Help" title for first time wizard
+
+Version 12.57 - 5 October 2009
+
+- drakboot:
+ o fix crash on clicking Up/Down buttons (#54077)
+
+Version 12.56 - 30 September 2009
+
+- harddrake:
+ o better check for PCI Express capability
+ o nicer display of PCI Express name
+
+Version 12.55 - 23 September 2009
+
+- harddrake:
+ o display PCI revision (#42576)
+ o report if devices are PCI or PCI Express (#28479)
+
+Version 12.54 - 23 September 2009
+
+- drakboot:
+ o don't detect disks if we are not in bootloader or splash mode
+- autologin/desktop configuration (drakboot/finish-install):
+ o when detecting default desktop, use first session
+ (instead of using hacks with dm config files)
+ o guess display manager from /etc/sysconfig/desktop,
+ or default session, or /etc/X11/lookupdm
+ o read autologin settings from /etc/sysconfig/autologin as fallback
+ o read kdm config file only if kdm is to be used
+ o always ensure dm is installed before configuring autologin/desktop
+ o test display manager instead of desktop when configuring autologin
+ o always write /etc/sysconfig/desktop
+ o write DISPLAYMANAGER in /etc/sysconfig/desktop too
+ o only write dm conf files if they exist before
+
+Version 12.53 - 22 September 2009
+
+- drakxtools_http:
+ o use LSB-compliant init script
+- drakboot:
+ o use stock icons for up & down buttons in order to pack them
+ horizontaly so that we fit in default sizing(#53703)
+- drakhelp
+ o fix check for missing help
+- diskdrake
+ o suggest a LVM name and refuse empty or existing one (#53769)
+ o prefer UUID on VirtIO too
+ o don't consider lvm named md* as raid (#53767)
+ o allow resizing ext4
+- fix touchscreen module list
+- list asix module in network/usb group
+
+Version 12.51 - 8 September 2009
+
+- display_help
+ o new small webkit based browser for rendering help and for FTW
+- harddrake:
+ o fix detecting some memory card readers as unknown
+ o allow to skip XFdrake framebuffer setup (and thus splash removal)
+ if SETUP_FB is set to "no" in /etc/sysconfig/harddrake2/service.conf
+ (requires drakx-kbd-mouse-x11 >= 0.79)
+
+Version 12.49 - 8 September 2009
+
+- mygtk2:
+ o created 'WeaknessCheckEntry' widget
+- adduserdrake:
+ o added tooltip text to weakness icon
+ o now use 'WeaknessCheckEntry' widget
+
+Version 12.48 - 7 September 2009
+
+- mygtk2:
+ o HScale widget: added digits and ref_value options
+ o HScale widget: fix for value option
+- adduserdrake:
+ o use icons to display password weakness
+- added security-{low,medium,strong}.png pixmaps used for
+ password weakness display
+- authentication:
+ o reduced password weakness check level
+- draksound:
+ o Fix soundprofile alternatives setting by using a more appropriate subroutine
+
+Version 12.46 - 28 August 2009
+
+- handle new drivers:
+ o DVB: dvb-usb-ce6230
+ o sound: snd-indigodjx, snd-indigoiox, snd-lx6464es
+ o wireless: ar9170usb, mwl8k, r8192s_usb, rt2800usb, rt3070sta
+- adduserdrake
+ o added weakness check for root password
+- drakboot:
+ o fix crash bug #52997
+- diskdrake:
+ o fix for libparted 1.9 (#52991)
+- detect_devices:
+ o fix VirtIO devices support
+
+Version 12.45 - 18 August 2009
+
+- drakbug
+ o Top textbox shrinked
+ o Added browse button
+- drakhelp
+ o fix firefox launch bug #29775
+- added the ability to add up/down buttons in add_modify_remove list
+ of interactive
+- drakboot :
+ o user is now able to re-order bootloader entries
+- diskdrake
+ o never pass username/password as options with davfs2
+ o store credentials in davfs2 secret file before mounting
+ o when user does not specify user/pass with davfs2, fallback to nobody/nobody
+ o Fix a crash with regexp when a /etc/davfs2/secrets line is
+ finished with one or more blank characters without comments
+ o added the ability to exit the davfs2 mountpoint settings panel
+ o added delete mountpoint support for davfs2
+- adduserdrake
+ o now use password weakness display
+- added password weakness display feature in interactive
+- handle new drivers:
+ o sound: snd_ctxfi
+- draksound
+ o fix enabling and disabling with udev-detect properly (new PA)
+ o introduce the concept of soundprofiles for enabling/disabling PA
+ o remove alsa->pulse routing option (enabling pulse but not alsa redirection is a niche setup)
+
+Version 12.44 - 13 August 2009
+
+- fix parsing dmidecode output (broken since we use dmidecode-2.10,
+ aka since November 24 2008) (#50106)
+- localedrake
+ o add "English (South Africa)" (#51057)
+- fix window creation (#52812)
+- don't add useless install lines in modprobe.conf
+
+Version 12.43 - 10 August 2009
+
+- draksound
+ o handle udev-detect module too (new PA)
+- diskdrake
+ o do not display nmblookup usage when there is no samba server
+ o do not crash when /etc/davfs2/secrets contains empty lines (like
+ the default one) (#52305)
+ o do not crash when trying to create a partition on a device with
+ no cylinder_size
+ o fix two crashes on handling devices
+- use gtk instead of X to focus window
+
+Version 12.40 - 22 July 2009
+
+- lookup unlisted devices in /sys (or /proc) when looking for
+ major/minor of a device (#49339)
+- don't log the links we ignore when looking for scsi devices (#49406)
+
+Version 12.39 - 16 Jun 2009
+
+- properly handle hidden variables in installer and diskdrake.
+
+Version 12.38 - 12 Jun 2009
+
+- use Hal list of recovery partitions (#51532)
+- use blkid instead of vol_id which we no longer ship
+
+Version 12.37 - 02 Jun 2009
+
+- fixed crash when trying to get input devices (#51308)
+
+Version 12.36 - 29 May 2009
+
+- added support for toggling 'hidden' parameter on widgets.
+- ide-disk module is now named ide-gd_mod
+- add new 'touchpad' TYPE to rpmsrate
+- add support for ElanTech touchpads (found on EEEPCs)
+- harddrake:
+ o adding sierra module to network/cellular.
+ o fix detecting scanners
+- scannerdrake:
+ o do not reject scanners handled by 'usbcore' driver
+- detect_devices:
+ o don't ignore FB-DIMM memory
+
+Version 12.32 - 23 April 2009
+
+- don't set umask=0 by default on windows partitions in 'secure' level.
+- handle virtio block devices
+
+Version 12.31 - 22 April 2009
+
+- diskdrake:
+ o handle partition starting after 1To
+
+Version 12.30 - 21 April 2009
+
+- add a basic testsuite (ensuring it compiles) in order to prevent
+ future crashes like #50009
+- diskdrake:
+ o display a progress bar while formatting an ext4 partition
+ o render ext4 partition as red like ext3 ones
+- finish-install:
+ o ensure ntp package is installed when configuring ntp
+- harddrake:
+ o fix wrongly selecting some 32bits packages on x86_64 (#50148)
+- service_harddrake:
+ o do not crash if loading new drivers fails
+ (happened with amd64_agp wrongly listed in pcitable, #43870)
+
+Version 12.29 - 21 April 2009
+
+- finish-install:
+ o handle both "ll_CC" and "ll" locales parameter (#49914)
+- harddrake:
+ o do not offer to install java plugin (#48520)
+
+Version 12.28.2 - 19 April 2009
+
+- harddrake:
+ o always detect PCI modems (even when (slow) detecting serial modems
+ is disabled) (#48017)
+ o do not offer to install KDE packages on GNOME or LXDE (#49671)
+
+Version 12.28.1 - 16 April 2009
+
+- diskdrake:
+ o fix crash (#50009)
+
+Version 12.28 - 15 April 2009
+
+- diskdrake:
+ o handle md devices not called md\d+, like md_d127
+ o display an error when mount fails during View action
+- bootloader:
+ o keep grub entries which refer to unknown devices verbatim instead
+ of crashing (#48728)
+
+Version 12.27 - 14 April 2009
+
+- diskdrake:
+ o Only write raid config into $::prefix if we are in install mode,
+ this fixes draklive-install which should write to /etc directly as
+ $::prefix does not yet exist (#49632)
+- draksound:
+ o enable to enable/disable glitch-free feature of PA
+- harddrake:
+ o do not open branches by default
+ o fix listing some ATA (eg: pata_marvell) devices as unknown
+
+Version 12.25 - 08 April 2009
+
+- harddrake service:
+ o do not try to add media to /etc/fstab (#49621)
+ o do not check anymore for disks on startup
+- harddrake:
+ o list card readers as system components instead of unknows devices
+ o when device has no description, use vendor string
+- bootloader: add large-memory option to lilo
+
+Version 12.24 - 03 April 2009
+
+- fixed crypto module names when arch is not i586 (#46814)
+- drakauth:
+ o handling winbind configuration when REALM != DNS (#49189)
+- handle new drivers:
+ o gigabit: be2net, slicoss
+ o wireless: agnx, arusb_lnx
+ o dvb: dvb-usb-dtv5100
+
+Version 12.20 - 30 March 2009
+
+- draksec:
+ o added support for drakroam authentication (#29566).
+- changed X server restart routing not to rely on ctrl-alt-del (#49059).
+- fixed a typo in list_modules for virtio modules
+- diskdrake:
+ o updated list of filesystems not handling bad blocks checking
+ o display label in the graphical view when no mountpoint is set
+ o always display label in partition info
+- handle new drivers:
+ o wireless: iwlagn
+
+Version 12.18 - 25 March 2009
+
+- add new Entry infrastructure for rpmdrake
+- detect_devices:
+ o only look at valid scsi devices in /sys
+
+Version 12.17.1 - 21 March 2009
+
+- fix syntax error in nb translation file
+
+Version 12.17 - 21 March 2009
+
+- add infrastucture for detecting vmware
+- diskdrake:
+ o allow LVM in non expert mode
+ o allow Encrypted partition inside LVM
+
+Version 12.16 - 18 March 2009
+
+- handle new drivers:
+ o wireless: wl
+- diskdrake:
+ o don't crash when creating a partition in LVM with the partition type
+ buttons (#38078)
+ o write partition table if needed before setting label
+ o fix setting label on not yet formatted partition
+- drakbug:
+ o add error to summary when crashing in order to help sort duplicates
+
+Version 12.5 - 5 March 2009
+
+- handle new drivers
+ o dvb: dm1105, dvb-usb-af9015, dvb-usb-cinergyT2, firedtv
+ o ethernet: smsc9420
+ o gigabit: atl1c
+ o pata: cs5536, it8172, it821x
+ o ISDN: hfcpci, hfcmulti, hfcsusb, solos-pci
+ o USB controllers: hwa-hc, whci-hcd
+ o wireless: ath9k, i2400m-usb, rt2860, rt2870 and rtl8187se
+- drakauth:
+ o only install and enable pam_ccreds when required (#44027)
+- finish-install:
+ o finit support
+ o give console rights for current session when renaming user
+- drakdvb:
+ o install w_scan if needed (#48242)
+- harddrake:
+ o all "gpsca*" driven devices are webcam
+- localdrake/finish-install:
+ o fix reading default input method setting
+- remove extents options on ext4 when updating fstab
+
+Version 11.91 - 25 February 2009
+
+- harddrake:
+ o hide module configuration button if needed (#16678)
+ o remove empty module parameter instead of writing them (#40581)
+- harddrake service:
+ o prevent wrongly notifying we switched from proprietary to free
+ driver (anssi, #41969)
+ (regression introduced in 11.70 on 16 October 2008)
+
+Version 11.90 - 25 February 2009
+
+- drakboot
+ o do not crash b/c ext4 was forbidden for /boot (#47853)
+- diskdrake
+ o really don't set extents option for ext4
+- drakdvb:
+ o sort channels list
+ o prefer vlc if present
+ o kill running vlc if configured with one-instance by default
+ (it does not use DVB options from new command line)
+
+Version 11.88 - 16 February 2009
+
+- mygtk2 layer:
+ o make references usable for entries
+- reorganized modules in fs section of list_modules and added reiser4
+- diskdrake:
+ o limit partition type list to 2 colmuns instead of 4
+ o don't offer to format LVM
+
+Version 11.87 - 14 February 2009
+
+- diskdrake:
+ o allow resizing on lvm for mounted ext3/4 and not mounted xfs
+ o use a list instead of combo in the partition type selection window
+ o don't crash on invalid partition table
+
+Version 11.86 - 12 February 2009
+
+- diskdrake:
+ o forget the changed label when the user cancels
+ o fix preserving UUID when formatting ext* and swap, and handle more FS (#39913)
+ o don't set useless extents option for ext4 mounts
+- localedrake:
+ o set scim-thai as default IM for Thai
+- drakboot:
+ o when installing to a removable device, put boot sector there, else
+ put it into first non removable drive (#47106)
+- do_pkgs:
+ o add ensure_files_are_installed
+- load cbc for encrypted loop
+
+Version 11.81 - 3 February 2009
+
+- interactive::curses:
+ o use a real file selector in curses too
+- diskdrake:
+ o don't rewrite label when it did not change (#47186)
+ o rewrite gpt support with libparted
+ o allow browsing partitions content to easily select the ones to destroy
+- drakdvb: introduce new DVB channels scanning tool
+ (from Pascal Terjan)
+- draksound:
+ o disable auto spawning when diasbling PA (#47258)
+
+Version 11.80 - 21 January 2009
+
+- diskdrake:
+ o don't use label for mounting partitions on lvm (#47024)
+- draksec:
+ o changed draksec functionality to prevent overlapping with msecgui.
+- use "ComboBoxEntry" gtk2 widget instead of "Combo" (which is deprecated),
+ this also workarounds gtk2 bug with "hidden" Entry + "Combo"
+
+Version 11.79 - 16 January 2009
+
+- drakbug:
+ o ask to attach blkid output as well as /etc/fstab & the like when
+ debugging a boot issue
+ o do not ask to include kernel version & /proc/cpuinfo since this is
+ done automatically
+ o request to attach lspcidrake's output rather than include it
+ (smaller descriptions)
+- diskdrake:
+ o disable resizing ext4 since resize2fs is known to be broken regarding extents
+ o --smb: fix netbios name resolution (#42483, thanks to Derek Jennings)
+- scannerdrake:
+ o fix a crash when installing firmware (#40738)
+
+Version 11.77 - 15 January 2008
+
+- diskdrake:
+ o --smb: cifs must be used instead of smbfs (#42483)
+ o ext4dev is now stable and called ext4 in 2.6.28+
+ o allow editing partition label without formatting (bootloader config is not
+ yet updated)
+ o allow setting label on NTFS and reiser4 partitions
+ o don't suggest mountpoint outside install (#39596)
+- harddrake:
+ o fix displaying in proper category sound coprocessor & misc ACPI event keys
+- prevent mdkapplet from crashing (#46477)
+
+Version 11.76 - 18 December 2008
+
+- diskdrake:
+ o use sysfs in order to discover major/minor for SCSI like devices
+ since they're dynamic with kernel-2.6.28+
+
+Version 11.75 - 17 December 2008
+
+- handle new driver:
+ o network: sxg, w35und
+- bootloader-config:
+ o do not modify /boot/vmlinuz symlinks before doing mkinitrd in case
+ mkinitrd fails (#44862)
+- diskdrake:
+ o --nfs: handle "host:/" (#44320)
+ o --nfs: handle domainname not set
+ o kernel-2.6.28+ supports more than 15 partitions on SATA & SCSI devices
+
+Version 11.73 - 15 December 2008
+
+- diskdrake:
+ o fix crashing on writing fstab when using SMB (#46084)
+ o fix racing with udev (#41832)
+- drakboot:
+ o enable to disable SMP support (#31339)
+- scannerdrake:
+ o install task-scanning (so that xsane-gimp got installed)
+
+Version 11.72 - 9 December 2008
+
+- handle new driver:
+ o network: et131x, smsc95xx
+- drakbug:
+ o write distro release in bug description
+- finish-install:
+ o use /dev/urandom instead of /dev/random to generate salt for passwords
+ (since reading on /dev/random can block boot process)
+ o show only installed 3D desktops
+ o adapt to new Xconfig::glx API (drak3d 1.21)
+- harddrake:
+ o do not list PATA controllers as SATA
+ (else we could just list all ATA controllers together)
+ o do not show duplicated hardware as unknown (#46242):
+ * list PC Speaker as sound card
+ * track duplicated input devices
+ * try harder to find duplicates
+- ugtk2:
+ o allow showing Skip button instead of Cancel in wizards
+- diskdrake:
+ o lookup for Samba master browsers too
+
+Version 11.71 - 6 November 2008
+
+- diskdrake
+ o --dav: handle davfs2 credentials in /etc/davfs2/secrets (#44190)
+ o --dav: handle https
+
+Version 11.70 - 16 October 2008
+
+- handle new driver:
+ o ide: tx4939ide
+- libDrakX:
+ o share infrastructure so that rpmdrake can get rid of some gray
+ windows
+- harddrake service:
+ o do not backup xorg.conf if we won't change the driver
+
+Version 11.67 - 2 October 2008
+
+- detect_devices:
+ o allow detection of low resources systems (extracted
+ from compssUsers.pl) and netbooks/nettops
+ o do not detect pan* devices as ethernet devices for now
+ (network configuration tools do not fully support them)
+
+Version 11.63 - 1 October 2008
+
+- bootloader-config (and other tools): handle /dev/mapper/xxx1 instead of
+ /dev/mapper/xxxp1 (#44182)
+- service_harddrake: enable/disable apmd if needed
+- adapt ask_window_manager_to_logout() to make it work (need usermode changes)
+
+Version 11.62 - 1 October 2008
+
+- fix dithering regression (introduced on 2008-09-29)
+- render banner background with dithering
+ (smoother on 16bpp displays)
+
+Version 11.61 - 30 September 2008
+
+- bootloader-config:
+ o --action migrate-to-uuids:
+ o do not migrate non sdx/hdx to UUID (bootloader config)
+ o do migrate dmraid device names to UUID
+ (because of xxx1 vs xxxp1 device name issue, cf #44182)
+ o fix dropping "chainloader" and "configfile" entries (#44045)
+- reduce banner font size
+
+Version 11.60 - 30 September 2008
+
+- libDrakX:
+ o fix rpmdrake crashing when description begins by "Gtk2::.."
+ (#43802)
+- drakperm:
+ o show banner when not embedded
+ o use Gtk+2's FileChooserDialog
+
+Version 11.59 - 29 September 2008
+
+- libDrakX:
+ o add support for Gtk+2's FileChooserDialog for draksnapashot
+- drakbug:
+ o handle strange DBus errors
+
+Version 11.58 - 29 September 2008
+
+- libDrakX:
+ o add spacing between radio buttons for readability (#44332)
+ o render left background of MCC with dithering (looks better on
+ 16bit displays)
+
+Version 11.57 - 29 September 2008
+
+- libDrakX:
+ o better positionning of mcc selection bar
+- draksplash:
+ o fix crashing when altering read-only combo boxes
+ (regression introduced in 11.37 on 2008-09-08)
+ o improved layout
+ o increase default width so that translated widgets fit in
+ o make it fit in 800x600 resolution (#36105)
+
+Version 11.56 - 26 September 2008
+
+- dmraid devices: use isw_xxxxp1 instead of isw_xxxx1 (see #42542, #44182)
+- do not display Help buttons in standalone mode since we do not have
+ any contents
+- factorize WebKit code with mcc
+
+Version 11.54.2 - 26 September 2008
+
+- bootloader-config:
+ o --action migrate-to-uuids: be more precautious when modifying /etc/fstab
+ (especially do not drop unrecognised entries) (#43548)
+
+Version 11.54.1 - 25 September 2008
+
+- make gray background gradient available to mcc
+
+Version 11.54 - 25 September 2008
+
+- enable mcc to not display any shadow around HTML view when using
+ scrollbars
+- make sure mcc always have fillers
+
+Version 11.53 - 25 September 2008
+
+- add support for new MCC style
+- fix icon alignment in banners
+
+Version 11.52.1 - 24 September 2008
+
+- libDrakX:
+ o add support for new mcc style
+
+Version 11.52 - 23 September 2008
+
+- drakbug:
+ o enable to disable it trough the DISABLE_DRAKBUG environment variable
+ o fix sizing some labels (workarounding infamous 6 years old gnome
+ bug #101968)
+- harddrake service:
+ o auto-configure floppies
+ (may require to load floppy module at first boot on a new system)
+ o do not try to run drakbug
+
+Version 11.51 - 23 September 2008
+
+- finish-install:
+ o set dialog hint if drakx-matchbox-window-manager is used
+ (not to maximize windows)
+- kill drakprinter link (#44115)
+
+Version 11.50 - 22 September 2008
+
+- restore support for right alignement for simple widgets
+ (regression introduced in 11.46 - 17 September 2008)
+- bootloader-config:
+ o fix handling fd0 (regression introduced in 11.44) (#44049)
+
+Version 11.49.2 - 22 September 2008
+
+- fix crash (#44053)
+- localedrake:
+ o add support for ibus
+
+Version 11.49.1 - 20 September 2008
+
+- install banner images in the proper directory (#44038)
+
+Version 11.49 - 19 September 2008
+
+- handle new driver:
+ o ethernet: enic, qlge
+- remove harddrake service (now run by mandrake_everytime)
+
+Version 11.48 - 18 September 2008
+
+- libDrakx:
+ o new banner style
+- bootloader-config, drakboot:
+ o handle /boot/grub/install.sh with no "root (hd...)" line
+ (this is the case for grub's installed prior to 2005-06-16)
+ (#43786, #43431)
+
+Version 11.47.1 - 17 September 2008
+
+- bug fix: add mandatory new modules for dm-crypt
+
+Version 11.47 - 17 September 2008
+
+- handle new driver:
+ o ethernet: jme
+- diskdrake:
+ o handle partitions encrypted with cryptsetup
+ o fix file system type drop down list showing most types as "..." in
+ "Change partition type" dialog in expert mode due to ellipsizing
+- harddrake2:
+ o detect network and graphical driver packages too
+- harddrake2 / remove-unused-packages:
+ o fix network packages detection
+- list btusb instead of hci_usb in bus/bluetooth (renamed in 2.6.27)
+
+Version 11.46 - 17 September 2008
+
+- scannerdrake:
+ o change all printerdrake references to system-config-printer
+- libdrakX:
+ o better layout for right aligned widgets
+- bootloader-config:
+ o --action migrate-to-uuids: do not migrate software raid to UUID (#43928)
+- license: put focus back on Refuse button by default
+
+Version 11.44 - 16 September 2008
+
+- bootloader-config:
+ o --action migrate-to-uuids: add UUID to swap v.2 in case the swap was
+ created long ago when mkswap didn't do it by default
+ o fix reading existing grub conf in present of /dev/mapper/xxxx0p1
+ partitions (which was causing bootloader-config to drop correct entries,
+ cf #37722)
+
+Version 11.43 - 16 September 2008
+
+- diskdrake:
+ o fix check for mdadm in live install (#43785)
+ o refresh GUI
+- harddrake:
+ o do not use anymore printerdrake and thus do not detect printers anymore
+
+Version 11.41 - 11 September 2008
+
+- fix default spacing between GUI elements
+- "Help" dialogs:
+ o add a separator before "Close" button
+ o put "Close" button of help at right end
+- finish-install:
+ o fix setting utf8 when using lang=xx from /proc/cmdline (#43566)
+- services (thanks to spuk):
+ o list ip6tables in "Internet" category
+ o list nfs-common and nfs-server in "File sharing" category
+ o list rpcbind in "System" category
+
+Version 11.40 - 10 September 2008
+
+- libdrakX:
+ o make advanced popup display the same title as their parents
+- drakboot
+ o fix nolapic/lapic logic due to altered kernel settings
+- fix input devices detection in rpmsrate (broken for 3 years, #43721)
+- finish-install:
+ o always ask timezone (#23303, #42368)
+ o extract a "country" step out of the "language" one
+ o guess country from timezone when possible (#23303)
+ o call "country" and "keyboard" steps after "timezone" (#23303)
+ o guess country from timezone without asking if COUNTRY is set to
+ "simplified" in the configuration file (#23303)
+ o behave nicely when a window manager is running (for debugging)
+
+Version 11.38 - 8 September 2008
+
+- libDrakX:
+ o fix missing maximize & minimize buttons with gnome WM (#43540) by
+ reverting change from 2008-09-01: "make all windows are "dialog",
+ so that gurpmi.addmedia during install displays nicely"
+ o make all windows be "dialog" during install, so that
+ gurpmi.addmedia during install displays nicely
+- diskdrake
+ o keep current UUID when formatting ext2/ext3 (was already done for swap),
+ so that fstab on other distros continue to work (#39913)
+ (requires e2fsprogs-1.41.1-2mnb2)
+- drakboot --boot
+ o drop the ability to set mem=xxx (#42329)
+ o allow UTF8 in /boot/grub/menu.lst (#43714)
+
+Version 11.38 - 8 September 2008
+
+- diskdrake
+ o fix file system type drop down list showing most types as "..." in expert
+ mode due to ellipsizing (#43611)
+ o fix too large partition bar (#43073)
+ o improved GUI
+
+Version 11.37 - 8 September 2008
+
+- add descriptions to menu entries (#26106)
+- do not size radio button that have a label (eg: drakauth) thus preventing
+ uneeded horizontal scrollbar to appear
+- drakauth:
+ o new look
+- drakboot:
+ o update /etc/sysconfig/desktop since we read it in order to display
+ previous setting
+- draksplash:
+ o make it fit better in 1024x768
+ o make it working again due to focus issue with two top windows (#43696)
+ o make some pull down menus not editable
+
+Version 11.36 - 5 September 2008
+
+- bootloader-config:
+ o --action migrate-to-uuids: backup conf file prior to migration with suffix
+ .before-migrate-to-uuids
+- libDrakX:
+ o fix handling KDE4 in running_window_manager() and ask_window_manager_to_logout()
+- merge remove-unused-hardware-packages and remove-unselected-locales
+ helpers into a new remove-unused-packages tool (and make it reusable)
+
+Version 11.35 - 4 September 2008
+
+- bootloader-config:
+ o add --action migrate-to-uuids
+- fix sizing some label (workarounding infamous 6 years old gnome bug #101968)
+
+Version 11.33.1 - 2 September 2008
+
+- libDrakX:
+ o handle KDE4 in running_window_manager() and ask_window_manager_to_logout()
+
+Version 11.30 - 1 September 2008
+
+- service_harddrake: adapt kernel modaliases that are not valid
+ anymore in modprobe.conf when booting a new kernel, this should fix
+ migration from e1000 to e1000e and from iwl4965 to iwlagn (#41248)
+- libDrakX:
+ o make all windows are "dialog", so that gurpmi.addmedia during install
+ displays nicely
+ o fix alignment of check buttons
+ o fix size of right aligned labels
+ o fix sizing radio buttons' labels (infamous 6 years old gnome bug
+ #101968)
+ o prevent big combo boxes to cause an horizontall scrollbar to appear by
+ using the "ellipsize" property
+ o no relief on 'advanced' buttons
+
+Version 11.29 - 29 August 2008
+
+- finish-install:
+ o use gurpmi.addmedia when available to configure urpmi media
+- diskdrake: use udevadm settle instead of udevsettle
+
+Version 11.26.1 - 28 August 2008
+
+- fix asterisk in titles
+
+Version 11.26 - 27 August 2008
+
+- fix "probe floppies only once" (#43216)
+- bootloader-config:
+ o call mkinitrd without "-v" to make it silent (#42992)
+- harddrake service:
+ o fix setting locales (#43224)
+- misc GUI improvements
+ o misc changes
+ o properly size some labels (infamous 6 years old gnome bug #101968)
+ o refresh "user management" step
+
+Version 11.22 - 21 August 2008
+
+- probe floppies only once
+- do not bother probing /dev/fd0 and loading floppy device uselessly,
+ it takes time and it is already done by boot process
+ (just check /proc/devices)
+- do not let MCC crashes if an icon is missing (#37651)
+
+Version 11.21 - 21 August 2008
+
+- diskdrake
+ o ensure we initialize only once but at least one, thus fixing crash
+ when embedded or in installer (#43011)
+- localedrake
+ o install proper qtX package for gcin
+
+Version 11.20 - 20 August 2008
+
+- diskdrake
+ o fix sizing partitions bar (#24410)
+ o increase default width of buttons so that they fit in expert mode
+- drakauth:
+ o handle pam_tcb instead of (deprecated) pam_unix (#42471)
+
+Version 11.16 - 19 August 2008
+
+- share new advanced icon with standalone tools
+
+Version 11.14 - 19 August 2008
+
+- authentication: enable network-auth meta-service if auth is not local
+
+Version 11.13 - 18 August 2008
+
+- do_pkgs: do not reload urpmi media at every check for package availability
+- finish-install: set locale at first step when language is selected
+ in gfxmenu (#42299)
+- move hardware packages detection code from installer to drakxtools
+- add helpers to remove unused localization and hardware packages
+ (remove-unselected-locales, remove-unused-hardware-packages)
+
+Version 11.10.2 - 18 August 2008
+
+- really fix another focus bug (#42750)
+
+Version 11.10.1 - 18 August 2008
+
+- fix another focus bug (#42750)
+
+Version 11.10 - 14 August 2008
+
+- diskdrake:
+ o refreshed GUI
+- localedrake:
+ o default to UTF-8 for chinese simplified (#42137)
+
+Version 11.6 - 8 August 2008
+
+- add product type to URL when fetching mirror list
+- enable to share code between draksnapshot, mdkonline & net_applet
+
+Version 11.5 - 6 August 2008
+
+- fix more strange focus bugs
+
+Version 11.4 - 5 August 2008
+
+- fix strange focus bugs
+
+Version 11.3 - 4 August 2008
+
+- drakedm:
+ o adapt to dm.d files being moved to /usr/share (#41879)
+ o do not try to configure an undefined dm
+
+Version 10.47 - 10 July 2008
+
+- fix reading and setting kdmrc (by resolving alternative in chroot)
+
+Version 10.46 - 10 July 2008
+
+- authentication:
+ o add back fix to force the password to be utf8 (#23273)
+ o fix reading md5/shadow options in /etc/pam.d/system-auth
+- finish-install: log in syslog
+
+Version 10.45 - 09 July 2008
+
+- update autologin file path for kdm4
+- default to KDE4 (instead of KDE) if kdm config exists when reading
+ autologin configuration
+- change default authentication to local (instead of ldap)
+
+Version 10.43 - 04 July 2008
+
+- detect KDE4 when configuring autologin
+
+Version 10.39 - 25 June 2008
+
+- bootloader-config:
+ o fix handling xen kernels: it should not replace an existing 'linux'
+ entry (#40865)
+- service_harddrake:
+ o handle nvidia173.ko (new legacy series of the proprietary driver)
+
+Version 10.37 - 18 June 2008
+
+- handle jpeg icons (needed for next rpmdrake)
+- draksound:
+ o do not set snd-ac97-codec's "power_save=1" options on MIPS
+
+Version 10.34 - 12 June 2008
+
+- partitioning wizard:
+ o do not propose to resize "hidden" fat partitions
+ o do not say "the Windows partition" when there can be more than one
+- allow mounting ntfs-3g partitions
+ (also fixes detection of Windows partitions during live installation)
+- service_harddrake:
+ o do not allow fbdev if /proc/fb is empty
+ o fix kbluetooth config path
+ o fix autoconfiguration of harddisks
+- drakupdate_fstab: make sure removable disks are not fs-checked on boot
+ (regression introduced in 10.6.3)
+- handle renamed drivers:
+ o ide-cd is now named ide-cd_mod
+ o generic is now named ide-pci-generic
+- authentication:
+ o add Kerberos Support
+ o add disconnected mode for Ldap, Kerberos, Windows auth
+ o add more options in Ldap configuration: Fetch DN, TLS
+ o remove Active Directory SFU
+ o change Winbind authentification to enable domain model choice (NT4 or AD)
+
+Version 10.33 - 29 May 2008
+
+- drakboot:
+ o only read bootloader configuration when configuring it
+ (usefull in chroots)
+- draksound:
+ o be more robust when managing /etc/alsa/pulse-default.conf
+- drakbug:
+ o automatically report CPU name & kernel version
+ o prefill the platform field
+- list hso driver in network/cellular
+
+Version 10.32 - 13 May 2008
+
+- draksound:
+ o advise to log out if PA is enabled/disabled
+ o disable PA routing when PA is disabled (#40219)
+ o grey PA routing & 5.1 sound if PA is disabled
+ o make sure that switch alsa-plugins-pulseaudio is installed when
+ enabling PA routing (#40533)
+- localedrake:
+ o advise to restart when changing system wide settings too
+- handle new drivers:
+ o pata: pata_sch
+
+Version 10.31 - 24 April 2008
+
+- bootloader-config:
+ o do not detect device.map inconsistency when "/boot" (or "/") is on Linux
+ software raid (/dev/mdX), cf #28309 and #35714
+
+Version 10.30 - 23 April 2008
+
+- bootloader-config:
+ o fix detecting device.map inconsistency when "/boot" and "/" are not on
+ same "drive" (esp. when "/" is LVM and "/boot" is not, #39229)
+- diskdrake:
+ o ensure no "division by zero" runtime error (#34931)
+- drakupdate_fstab:
+ o only add formatted partitions in fstab (or else it will make
+ subsequent boot fail)
+- fix file descriptor leak when detecting network driver
+ (mostly notable in network center and drakroam)
+- list generic module in disk/ide
+
+Version 10.29 - 3 April 2008
+
+- service_harddrake:
+ o fix detecting modules installed in new dkms locations (/dkms and
+ /dkms-binary) instead of /kernel
+- drakclock: write UTC setting in /etc/adjtime (#36522)
+
+Version 10.27 - 3 April 2008
+
+- drakboot:
+ o stop workarounding glibc misconfiguration when listing users
+ (#38116), it is now handled in MDK::Common (see #34279)
+- draksplash:
+ o do not write decimal values in theme config (#38271)
+- finish-install:
+ o configure urpmi media if network is up and no media are configured
+ (#38202)
+
+Version 10.25 - 1 April 2008
+
+- DBus framework improvement
+
+Version 10.24 - 1 April 2008
+
+- drakups:
+ o fix crash while removing an item (#34413)
+- harddrake:
+ o offer again to run drakxtv for TV cards (#39609)
+- diskdrake:
+ o allow relatime on ntfs-3g (#39666)
+- diskdrake --fileshare:
+ o do not ask to install nautilus-filesharing if already installed (#39544)
+
+Version 10.22 - 27 March 2008
+
+- partitioning wizard lirary:
+ o allow "Use free space" if there is an extended
+ partition even if all primary partitions are used (#38804)
+ (*old* bug!)
+- draksplash:
+ o fix reading grub conf (#39346)
+- services backend:
+ o handle services with "-" as default chkconfig level in more places
+- mygtk2:
+ o allow to create buttons with stock icons (for drakguard)
+- finish-install:
+ o really set the superuser password when using simplified user+root
+ dialog (#39218)
+
+Version 10.20 - 25 March 2008
+
+- do not run main_quit if not in a main loop (eg: while loading GUI)
+ but block window deletion instead (#39230)
+- adduserdrake
+ o force the password to be utf8 (#23273)
+- diskdrake --nfs
+ o ensure "nfs-common" is started (#34103)
+
+Version 10.19 - 21 March 2008
+
+- bootloader-config, drakboot:
+ o fix device.map if it is not consistent with the system
+ (eg: it says hd0 in sdb whereas it now is sda) (#39160)
+- diskdrake:
+ o fix setting mount point of a /dev/mdX (#39142)
+ (regression introduced in 10.8)
+- list gspca, ov51x-jpeg and qc-usb-messenger in webcam modules group
+- harddrake:
+ o recommend using insensitive search (#39136)
+ o notify at X11 startup when we switched to free video driver (#39164)
+- drakupdate_fstab:
+ o do not print added/removed mountpoints with --auto (when run from
+ harddrake, like in Mandriva One), but add a --verbose option instead
+
+Version 10.18 - 21 March 2008
+
+- drakfont:
+ o fix importing fonts without chkfontpath (#37604)
+ o stop restarting XFS server
+- diskdrake:
+ o keep existing swap UUID (#38877)
+- partitioning wizard: do not show error message in wizard mode when
+ cancel is clicked (clean wizard window instead)
+- finish-install:
+ o allow to ask both root and user accounts in the same step
+ o replace home path in user config files when renaming a user (#30380)
+
+Version 10.17 - 20 March 2008
+
+- use UUID by default (for diskdrake and draklive-install)
+- finish-install:
+ o write modprobe.conf after configuring network
+ o do not configure network if already up
+ o allow to use a simplified time step
+ (no timezone selection, ntp settings as advanced)
+- move functions to get available space from installer
+ (to be used in draklive-install)
+- localedrake: update OpenOffice/BrOffice alternative according to
+ selected lang (#37820)
+
+Version 10.16.1 - 18 March 2008
+
+- handle position for paned widgets (needed for rpmdrake, #38762)
+
+Version 10.16 - 18 March 2008
+
+- adduserdrake:
+ o display kdm/gdm icon again (was disabled on year ago)
+- do not write aliases for asus_acpi and thinkpad_acpi in
+ modprobe.preload, the modules are now handled by coldplug
+- draksec
+ o do not continue if installing msec crashed or was canceled (#38911)
+- localdrake:
+ o do not make /etc/sysconfig/i18n readable only by root in high
+ security level (#39027)
+- scannerdrake:
+ o use provides instead of package name now that gurpmi handle them
+
+Version 10.15 - 14 March 2008
+
+- fix changing UID on forking
+- scannerdrake: use package name instead of Provides.
+- create Gtk2::Notify::Queue out of Gtk2::NotificationBubble::Queue
+ for libnotify support in net_applet (#37509)
+
+Version 10.12 - 13 March 2008
+
+- fix gurpmi path (#38679)
+- diskdrake:
+ o graphical error message when "No hard drives found" (#38699)
+ (otherwise drakbug will catch it and suggest to report a bug...)
+- draksound:
+ o enable to set 5.1 channels (#38796)
+- scannerdrake: fix undefined variable $in (#36387, #37039)
+
+Version 10.11 - 11 March 2008
+
+- diskdrake:
+ o really fix partition device name for some dmraid (missing "p", cf #38363)
+- draksound (#37826):
+ o add support to enable/disable ALSA to PA routing (#37826)
+ o add support to enable/disable PulseAudio
+ o add support to enable/disable user switching
+ o display trouble shooting when there's no driver too
+ o enable to reset the sound mixer to default values
+- cpufreq: fix gsx-suspmod probe
+- scannerdrake: fix to open usbtable.gz instead of usbtable
+
+Version 10.10 - 6 March 2008
+
+- finish-install:
+ o do not show broken Cancel button in license step (#38195)
+- diskdrake:
+ o fix resizing/formatting ntfs (broken because of ntfs-3g switch in previous
+ release)
+ o fix partition device name for some dmraid (missing "p", cf #38363)
+ o do not timeout after 10 minutes when resizing NTFS partition
+- detect_devices:
+ o provide sysfs device path on Firewire and PCMCIA bus
+ (to be able to fix #33950 in drakx-net)
+
+Version 10.9 - 5 March 2008
+
+- adapt to new kernel-2.6.25's sysfs layout (Eric Pielbug, #38235)
+- diskdrake: use ntfs-3g by default for ntfs partitions
+- draksplash: do not re-install grub, only modify grub's config file
+- select proper padlock module for Via CPU (#38311)
+
+Version 10.7 - 3 March 2008
+
+- bootloader-config:
+ o have a nicer name for "mnb" kernels
+- drakbug:
+ o do not catch exception if $^S is undef
+ (occurs when "eval { require foo }" and foo.pm do "use not_available")
+- use gurpmi when installing packages if possible (#24044)
+
+Version 10.6.25 - 28 February 2008
+
+- harddrake:
+ o do not assign a mount point to partitions of type "Compaq diagnostics"
+- API changes for drakx-net and rescue
+
+Version 10.6.23 - 25 February 2008
+
+- drakboot:
+ o make sure users are not listed twice (#38116)
+- drakfont:
+ o fix crashing when encountering file names with meta characters on
+ windows partitions (#36482)
+- diskdrake:
+ o jfsprogs is now jfsutils
+- drop support for arch now that rpmdrake-4.3 dropped it
+
+Version 10.6.22 - 18 February 2008
+
+- diskdrake:
+ o fix switching from LABEL=xxx to /dev/yyy in fstab (#37914)
+- add support for snd-aw2
+- drakboot --boot:
+ o fix dropping grub "configfile" entries when switching to lilo
+- draksound:
+ o move all driver list & troubleshooting in an advanced expander
+
+Version 10.6.20 - 18 February 2008
+
+- diskdrake:
+ o final fix for resizing's failures due to udev's race
+ (when writing the partition, do not del/add the same partition)
+- harddrake GUI:
+ o install linuxwacom if needed
+- harddrake service:
+ o use acpi-cpufreq for Mobile PIII/Celeron
+ (family 6 model 11, for example Toshiba Portg 3500)
+ o use speedstep-centrino only for supported models
+ and prefer acpi-cpufreq (patch from Herton, #30208)
+ o use p4-clockmod for some Intel family 6 processors not supporting EST
+
+Version 10.6.18 - 12 February 2008
+
+- handle 'icon-pressed' signal of Gtk2::Sexy::IconEntry
+
+Version 10.6.17 - 11 February 2008
+
+- add support for Gtk2::Sexy::IconEntry (needed for rpmdrake)
+- drakperm:
+ o warning dialogs are confusing since OK/cancel both ends in cancel,
+ let's offer only a cancel button
+
+Version 10.6.15 - 7 February 2008
+
+- harddrake:
+ o do not try to install openoffice64 on x86_64 (#37318)
+
+Version 10.6.14 - 5 February 2008
+
+- bootloader-config:
+ o never use "vmlinuz-desktop" or "initrd-desktop.img", always use "vmlinuz"
+ or "initrd.img" (#35721)
+- drakfont:
+ o fix crashing on file names with meta characters (#36482)
+- enhance the logout dialog (ok/cancel instead of yes/no)
+- short-circuit exit once drakbug was run on crash
+
+Version 10.6.11 - 31 January 2008
+
+- drakbug:
+ o autoselect distro version in bugzilla
+ o explain what is the usefull part of the gdb trace
+ o open help as user
+ o stop translating program name in bugzilla (#35241)
+
+Version 10.6.10 - 28 January 2008
+
+- handle new drivers:
+ o ethernet: cpmac
+ o gigabit: ipg
+ o pata/sata: pata_bf54x, sata_fsl
+ o sound: snd-at73c213
+ o tv cards: cx23885
+ o webcams: tcm825x
+- detect raid partitions based on either type 0xfd or vol_id detecting
+ linux_raid_member (#35684)
+- bootloader-config:
+ o fix handling LVM VGs with "-" in the name (#37267)
+ o do not drop "lock" in chainload entries from grub's menu.lst (#36398)
+- diskdrake --fileshare:
+ o adapt to nfs-utils service rename (nfs-server instead of nfs) (#37069)
+
+Version 10.6.9 - 25 January 2008
+
+- harddrake:
+ o class more sensors as biometric
+- drakbug:
+ o do not display twice "Cannot be run in console mode." message
+- finish-install:
+ o do ask again language (got wrongly disabled in 10.6.8)
+- harddrake service:
+ o backup xorg.conf before falling back to safe driver (#37182)
+
+Version 10.6.8 - 24 January 2008
+
+- bootloader-config, diskdrake:
+ o look for LVM PV on non partitioned disk before looking for DOS
+ partition_table (esp. for lilo which puts the DOS magic)
+- drakbug:
+ o make "Please describe what you were doing when it crashed" more
+ visible and force people to write something in before opening
+ bugzilla
+- mygtk2: make sure users of ::no_ugtk_init (eg: drakbug) do catch
+ exceptions in callbacks
+
+Version 10.6.6 - 22 January 2008
+
+- bootloader-config:
+ o fix root=xxx parameter for "/" on lvm using UUID= in fstab (#36542)
+- adapt to perl 5.10.0
+
+Version 10.6.5 - 14 January 2008
+
+- drakboot:
+ o fix handling root=UUID=xxx when modifying a bootloader entry (#36788)
+
+Version 10.6.4 - 14 January 2008
+
+- localedrake, drakx-finish-install:
+ o fix proposing Belgium when lang is "nl" and locales-fr is not installed
+ (same for Canada with lang "fr" and locales-en not installed) (#36413)
+
+Version 10.6.3 - 9 January 2008, by Thierry Vignaud
+
+- handle new drivers: atl2 (ethernet), snd-virtuoso
+- bootloader-config:
+ o fix regression introduced in 10.5.7: do not create alt_xxx entries when
+ adding a new entry in bootloader
+- harddrake:
+ o allow to set zero values in module options (#26515)
+ o make "Run config tool" available again (#34794)
+ o mark the service as interactive, so that package requests are
+ displayed with parallell init
+ o check that media are not USB keys before auto-configuring them (#34568)
+- drakupdate_fstab:
+ o never set "sync" option, use default fs options from drakx (#35204)
+ o remove --no-flag option, the "kudzu" option has not been written for ages
+- drakbug:
+ o report crash messages in the bug report only when --incident is used
+ (and not when tools explicitely run drakbug with --report)
+
+Version 10.6 - 11 December 2007, by Thierry Vignaud
+
+- handle new drivers:
+ o ethernet: fec_mpc52xx, niu
+ o gigabit: tehuti
+ o pata: pata_cs5536
+ o sata: sata_fsl
+ o wireless: b43, b43legacy, iwlwifi, libertas_cs, p54pci, p54usb
+- localedrake:
+ o adjust Uzbek locale (cf locales-uz change)
+
+Version 10.5.7 - 6 December 2007, by Thierry Vignaud
+
+- handle new drivers: e1000e, snd-oxygen, snd-pcsp
+- bootloader-config:
+ o do not drop entries "failsafe" and "linux-nonfb" when removing a kernel
+- localedrake:
+ o adapt to cooker: scim-tables-skim is now skim-scim-tables
+ o restrict the proposed input-methods for each language
+- bootloader:
+ o when reading existing menu.lst, keep verbatim entries for which the device
+ has no mount-point
+ o handle "alien" grub entries that will be kept verbatim (#23591)
+ o handle "root (hd...)" for menu.lst entries (#23591)
+ (nb: when writing, "root ..." will not be used)
+- diskdrake:
+ o drop "Undo", "Restore partition table", "Save partition table"
+ (preparing to switch to libparted)
+ o fix garbaged error messages when umounting fs
+ o disallow "Use for loopback" when the partition used for loopback is
+ not formatted (#35535)
+ o always display the {info} field of the drive (not only in expert mode)
+
+Version 10.5.3 - 9 November 2007, by Pascal "Pixel" Rigaux
+
+- bootloader-config:
+ o do not create "linux" entries for xen kernels, but "xen" entries instead
+- localedrake:
+ o fix handling variant together with charset (eg: uz.UTF-8@Latn) (#35090)
+- drakbug:
+ o prevent altering tool and the like when catching a bug (#35241)
+
+Version 10.5.2 - 6 November 2007, by Thierry Vignaud
+
+- diskdrake:
+ o add support for ext4
+- drakbug:
+ o keep buggy process around so that we can run gdb on it (if perl segfaulted)
+ o report gdb trace if possible
+- harddrake: detect storage and various controllers before anything else
+ (so that storage devices get detected at first boot on live)
+
+Version 10.5.1 - 31 October 2007, by Thierry Vignaud
+
+- bootloader-config:
+ o bootloader-config must not need network::network from libdrakx-net
+ o if drakx-kbd-mouse-x11 is not installed, simply don't add bootsplash
+ instead of dying
+- fix buttons order under KDE when using compiz (by detecting kde-window-decorator)
+- drakclock/finish-install: disable DPMS and screensaver when setting time,
+ not to blank monitor (#17031)
+
+Version 10.5.0 - 15 October 2007, by Thierry Vignaud
+
+- localedrake:
+ o do propose "Suisse" after selecting french language (#34675)
+- draksec:
+ o fix switching from "no_password" to "_password" (#34490)
+
+Version 10.4.239 - 5 October 2007, by Thierry Vignaud
+
+- finish-install: fix release notes window size
+
+Version 10.4.237 - 5 October 2007, by Olivier "blino" Blin
+
+- fix installed modules detection (#34478)
+- fix version reported by drakfont & harddrake
+- when checking dkms module packages, check that modules are either
+ available in urpmi media, or already installed (fix detection in live)
+- add shadow 'in' around Gtk2::SimpleList widgets
+
+Version 10.4.235 - 4 October 2007, by Thierry Vignaud
+
+- diskdrake --fileshare
+ o install nautilus-filesharing if nautilus is installed (#34262)
+- finish-install: use translations for network step
+
+Version 10.4.234 - 4 October 2007, by Olivier "blino" Blin
+
+- finish-install: use translations for keyboard and 3D steps
+
+Version 10.4.232 - 4 October 2007, by Olivier "blino" Blin
+
+- add helper to get kernel module path (to be used in draklive)
+
+Version 10.4.231 - 3 October 2007, by Nicolas Vigier
+
+- wizards :
+ o don't report a crash when an error prevent the wizard from
+ running (#34371)
+
+Version 10.4.230 - 3 October 2007, by Thierry Vignaud
+
- drakboot --boot:
o if there is a /boot, check /boot instead of "/" to allow grub or not
diff --git a/perl-install/PORTING b/perl-install/PORTING
new file mode 100644
index 000000000..68f3d5e9f
--- /dev/null
+++ b/perl-install/PORTING
@@ -0,0 +1,4 @@
+This file list the API changes done in mageia:
+
+The function mandrake_release_info() is now called mageia_release_info().
+The function mandrake_release is now called mageia_release().
diff --git a/perl-install/any.pm b/perl-install/any.pm
index c19402ac9..ab93036dc 100644
--- a/perl-install/any.pm
+++ b/perl-install/any.pm
@@ -9,6 +9,7 @@ use strict;
use common;
use detect_devices;
use partition_table;
+use fs::proc_partitions;
use fs::type;
use lang;
use run_program;
@@ -19,7 +20,7 @@ use fs;
use c;
sub facesdir() {
- "$::prefix/usr/share/mdk/faces/";
+ "$::prefix/usr/share/mga/faces/";
}
sub face2png {
my ($face) = @_;
@@ -48,7 +49,7 @@ sub alloc_user_faces {
}
sub create_user {
- my ($u, $isMD5) = @_;
+ my ($u, $authentication) = @_;
my @existing = stat("$::prefix/home/$u->{name}");
@@ -72,7 +73,7 @@ sub create_user {
my $symlink_home_from = $u->{rename_from} && (getpwnam($u->{rename_from}))[7];
run_program::raw({ root => $::prefix, sensitive_arguments => 1 },
($u->{rename_from} ? 'usermod' : 'adduser'),
- '-p', authentication::user_crypted_passwd($u, $isMD5),
+ '-p', authentication::user_crypted_passwd($u, $authentication),
if_($uid, '-u', $uid), if_($gid, '-g', $gid),
if_($u->{realname}, '-c', $u->{realname}),
if_($u->{home}, '-d', $u->{home}, if_($u->{rename_from}, '-m')),
@@ -81,6 +82,7 @@ sub create_user {
? ('-l', $u->{name}, $u->{rename_from})
: $u->{name}));
symlink($u->{home}, $symlink_home_from) if $symlink_home_from;
+ eval { run_program::rooted($::prefix, 'systemctl', 'try-restart', 'accounts-daemon.service') };
}
my (undef, undef, $uid, $gid, undef, undef, undef, $home) = getpwnam($u->{name});
@@ -97,23 +99,29 @@ sub add_users {
alloc_user_faces($users);
foreach (@$users) {
- create_user($_, $authentication->{md5});
+ create_user($_, $authentication);
run_program::rooted($::prefix, "usermod", "-G", join(",", @{$_->{groups}}), $_->{name}) if !is_empty_array_ref($_->{groups});
addKdmIcon($_->{name}, delete $_->{auto_icon} || $_->{icon});
}
}
+sub install_bootloader_pkgs {
+ my ($do_pkgs, $b) = @_;
+
+ bootloader::ensure_pkg_is_installed($do_pkgs, $b);
+ install_acpi_pkgs($do_pkgs, $b);
+}
+
sub install_acpi_pkgs {
my ($do_pkgs, $b) = @_;
my $acpi = bootloader::get_append_with_key($b, 'acpi');
my $use_acpi = !member($acpi, 'off', 'ht');
if ($use_acpi) {
- $do_pkgs->ensure_is_installed('acpi', '/usr/bin/acpi', $::isInstall);
- $do_pkgs->ensure_is_installed('acpid', '/usr/sbin/acpid', $::isInstall);
+ $do_pkgs->ensure_files_are_installed([ [ qw(acpi acpi) ], [ qw(acpid acpid) ] ], $::isInstall);
}
require services;
- services::set_status($_, $use_acpi, $::isInstall) foreach qw(acpi acpid);
+ services::set_status($_, $use_acpi, $::isInstall) foreach qw(acpid);
}
sub setupBootloaderBeforeStandalone {
@@ -123,12 +131,13 @@ sub setupBootloaderBeforeStandalone {
my $allow_fb = listlength(cat_("/proc/fb"));
my $cmdline = cat_('/proc/cmdline');
my $vga_fb = first($cmdline =~ /\bvga=(\S+)/);
- my $quiet = $cmdline =~ /\bsplash=silent\b/;
- setupBootloaderBefore($do_pkgs, $b, $all_hds, $fstab, $keyboard, $allow_fb, $vga_fb, $quiet);
+ my $splash = $cmdline =~ /\bsplash\b/;
+ my $quiet = $cmdline =~ /\bquiet\b/;
+ setupBootloaderBefore($do_pkgs, $b, $all_hds, $fstab, $keyboard, $allow_fb, $vga_fb, $splash, $quiet);
}
sub setupBootloaderBefore {
- my ($do_pkgs, $bootloader, $all_hds, $fstab, $keyboard, $allow_fb, $vga_fb, $quiet) = @_;
+ my ($do_pkgs, $bootloader, $all_hds, $fstab, $keyboard, $allow_fb, $vga_fb, $splash, $quiet) = @_;
require bootloader;
#- auto_install backward compatibility
@@ -137,12 +146,6 @@ sub setupBootloaderBefore {
$bootloader->{message_text} = delete $bootloader->{message};
}
- #- remove previous ide-scsi lines
- bootloader::modify_append($bootloader, sub {
- my ($_simple, $dict) = @_;
- @$dict = grep { $_->[1] ne 'ide-scsi' } @$dict;
- });
-
if (cat_("/proc/cmdline") =~ /mem=nopentium/) {
bootloader::set_append_with_key($bootloader, mem => 'nopentium');
}
@@ -167,15 +170,19 @@ sub setupBootloaderBefore {
bootloader::set_append_simple($bootloader, 'noresume');
} elsif (bootloader::get_append_simple($bootloader, 'noresume')) {
} else {
- my ($MemTotal) = cat_("/proc/meminfo") =~ /^MemTotal:\s*(\d+)/m;
if (my ($biggest_swap) = sort { $b->{size} <=> $a->{size} } grep { isSwap($_) } @$fstab) {
- log::l("MemTotal: $MemTotal < ", $biggest_swap->{size} / 2);
- if ($MemTotal < $biggest_swap->{size} / 2) {
- bootloader::set_append_with_key($bootloader, resume => devices::make($biggest_swap->{device}));
- }
+ my $biggest_swap_dev = fs::wild_device::from_part('', $biggest_swap);
+ bootloader::set_append_with_key($bootloader, resume => $biggest_swap_dev);
+ mkdir_p("$::prefix/etc/dracut.conf.d");
+ output("$::prefix/etc/dracut.conf.d/51-mageia-resume.conf", qq(add_device+=" $biggest_swap_dev "\n));
}
}
+ #- set nokmsboot if a conflicting driver is configured.
+ if (-x "$::prefix/sbin/display_driver_helper" && !run_program::rooted($::prefix, "/sbin/display_driver_helper", "--is-kms-allowed")) {
+ bootloader::set_append_simple($bootloader, 'nokmsboot');
+ }
+
#- check for valid fb mode to enable a default boot with frame buffer.
my $vga = $allow_fb && (!detect_devices::matching_desc__regexp('3D Rage LT') &&
!detect_devices::matching_desc__regexp('Rage Mobility [PL]') &&
@@ -195,13 +202,26 @@ sub setupBootloaderBefore {
detect_devices::matching_desc__regexp('GeForce.*Integrated') #- needed for fbdev driver (hack).
);
- #- propose the default fb mode for kernel fb, if aurora or bootsplash is installed.
- my $need_fb = $do_pkgs->are_installed('bootsplash');
+ #- propose the default fb mode for kernel fb, if bootsplash is installed.
+ my $need_fb = -e "$::prefix/usr/share/bootsplash/scripts/make-boot-splash";
bootloader::suggest($bootloader, $all_hds,
vga_fb => ($force_vga || $vga && $need_fb) && $vga_fb,
+ splash => $splash,
quiet => $quiet);
+ if (is_uefi()) {
+ if (my @esp = grep { $_->{mntpoint} eq '/boot/EFI' } @$fstab) {
+ $bootloader->{removable} = $esp[0]{is_removable};
+ }
+ } else {
+ if (my $root_part = fs::get::root($fstab)) {
+ $bootloader->{removable} = $root_part->{is_removable};
+ }
+ }
+ $bootloader->{default_to_no_probe} = 1 if $bootloader->{removable};
+
$bootloader->{keytable} ||= keyboard::keyboard2kmap($keyboard);
+ log::l("setupBootloaderBefore end");
}
sub setupBootloader {
@@ -216,7 +236,11 @@ sub setupBootloader {
setupBootloader__boot_bios_drive($in, $b, $all_hds->{hds}) or goto general;
{
local $::Wizard_finished = 1 if $::isStandalone;
- setupBootloader__entries($in, $b, $all_hds, $fstab) or goto general;
+ if (bootloader::main_method($b->{method}) eq 'grub2') {
+ setupBootloader__grub2($in, $b, $all_hds, $fstab) or goto general;
+ } else {
+ setupBootloader__entries($in, $b, $all_hds, $fstab) or goto general;
+ }
}
1;
}
@@ -227,7 +251,9 @@ sub setupBootloaderUntilInstalled {
my $before = fs::fstab_to_string($all_hds);
setupBootloader($in, $b, $all_hds, $fstab, $security) or $in->exit;
if ($before ne fs::fstab_to_string($all_hds)) {
- #- for /tmp using tmpfs when "clean /tmp" is chosen
+ #- ovitters: This fstab comparison was needed for optionally
+ #- setting up /tmp using tmpfs. That code was removed. Not removing
+ #- this code as I'm not sure if something still relies on this
fs::write_fstab($all_hds);
}
} while !installBootloader($in, $b, $all_hds);
@@ -236,9 +262,10 @@ sub setupBootloaderUntilInstalled {
sub installBootloader {
my ($in, $b, $all_hds) = @_;
return if detect_devices::is_xbox();
- install_acpi_pkgs($in->do_pkgs, $b);
- eval { run_program::rooted($::prefix, 'echo | lilo -u') } if $::isInstall && !$::o->{isUpgrade} && -e "$::prefix/etc/lilo.conf" && glob("$::prefix/boot/boot.*");
+ return 1 if arch() =~ /arm/;
+
+ install_bootloader_pkgs($in->do_pkgs, $b);
retry:
eval {
@@ -267,11 +294,6 @@ Assign a new Volume ID?", $dev)))) {
$in->ask_warn('', [ N("Installation of bootloader failed. The following error occurred:"), $err ]);
return;
}
- } elsif (arch() =~ /ppc/) {
- if (detect_devices::get_mac_model() !~ /IBM/) {
- my $of_boot = bootloader::dev2yaboot($b->{boot});
- $in->ask_warn('', N("You may need to change your Open Firmware boot-device to\n enable the bootloader. If you do not see the bootloader prompt at\n reboot, hold down Command-Option-O-F at reboot and enter:\n setenv boot-device %s,\\\\:tbxi\n Then type: shut-down\nAt your next boot you should see the bootloader prompt.", $of_boot));
- }
}
1;
}
@@ -282,13 +304,10 @@ sub setupBootloader_simple {
my $hds = $all_hds->{hds};
require bootloader;
- my $mixed_kind_of_disks = bootloader::mixed_kind_of_disks($hds);
- #- full expert questions when there is 2 kind of disks
- #- it would need a semi_auto asking on which drive the bios boots...
-
- $mixed_kind_of_disks || $b->{bootUnsafe} || arch() =~ /ppc/ or return 1; #- default is good enough
+ bootloader::ensafe_first_bios_drive($hds)
+ || $b->{bootUnsafe} or return 1; #- default is good enough
- if (!$mixed_kind_of_disks && arch() !~ /ia64/) {
+ if (arch() !~ /ia64/) {
setupBootloader__mbr_or_not($in, $b, $hds, $fstab) or return 0;
} else {
general:
@@ -302,14 +321,18 @@ sub setupBootloader_simple {
sub setupBootloader__boot_bios_drive {
my ($in, $b, $hds) = @_;
- bootloader::mixed_kind_of_disks($hds) &&
- $b->{boot} =~ /\d$/ && #- on a partition
- is_empty_hash_ref($b->{bios}) && #- some bios mapping already there
- arch() !~ /ppc/ or return 1;
+ if (!is_empty_hash_ref($b->{bios})) {
+ #- some bios mapping already there
+ return 1;
+ } elsif (bootloader::mixed_kind_of_disks($hds) && $b->{boot} =~ /\d$/) { #- on a partition
+ # see below
+ } else {
+ return 1;
+ }
- log::l("mixed_kind_of_disks");
+ log::l("_ask_boot_bios_drive");
my $hd = $in->ask_from_listf('', N("You decided to install the bootloader on a partition.
-This implies you already have a bootloader on the hard drive you boot (eg: System Commander).
+This implies you already have a bootloader on the hard disk drive you boot (eg: System Commander).
On which drive are you booting?"), \&partition_table::description, $hds) or return 0;
log::l("mixed_kind_of_disks chosen $hd->{device}");
@@ -317,21 +340,32 @@ On which drive are you booting?"), \&partition_table::description, $hds) or retu
1;
}
+sub _ask_mbr_or_not {
+ my ($in, $default, @l) = @_;
+ $in->ask_from_({ title => N("Bootloader Installation"),
+ interactive_help_id => 'setupBootloaderBeginner',
+ },
+ [
+ { label => N("Where do you want to install the bootloader?"), title => 1 },
+ { val => \$default, list => \@l, format => sub { $_[0][0] }, type => 'list' },
+ ]
+ );
+ $default;
+}
+
sub setupBootloader__mbr_or_not {
my ($in, $b, $hds, $fstab) = @_;
- if (arch() =~ /ppc/) {
- if (defined $partition_table::mac::bootstrap_part) {
- $b->{boot} = $partition_table::mac::bootstrap_part;
- log::l("set bootstrap to $b->{boot}");
- } else {
- die "no bootstrap partition - yaboot.conf creation failed";
- }
- } else {
+ log::l("setupBootloader__mbr_or_not");
+
my $floppy = detect_devices::floppy();
my @l = (
+ bootloader::ensafe_first_bios_drive($hds) ?
+ (map { [ N("First sector (MBR) of drive %s", partition_table::description($_)) => '/dev/' . $_->{device} ] } @$hds)
+ :
[ N("First sector of drive (MBR)") => '/dev/' . $hds->[0]{device} ],
+
[ N("First sector of the root partition") => '/dev/' . fs::get::root($fstab, 'boot')->{device} ],
if_($floppy,
[ N("On Floppy") => "/dev/$floppy" ],
@@ -340,92 +374,77 @@ sub setupBootloader__mbr_or_not {
);
my $default = find { $_->[1] eq $b->{boot} } @l;
- $in->ask_from_({ title => N("LILO/grub Installation"),
- icon => 'banner-bootL',
- messages => N("Where do you want to install the bootloader?"),
- interactive_help_id => 'setupBootloaderBeginner',
- },
- [ { val => \$default, list => \@l, format => sub { $_[0][0] }, type => 'list' } ]);
- my $new_boot = $default->[1] or return;
+ if (!$::isInstall) {
+ $default = _ask_mbr_or_not($in, $default, @l);
+ }
+ my $new_boot = $default->[1];
#- remove bios mapping if the user changed the boot device
- delete $b->{bios} if $new_boot ne $b->{boot};
- $b->{boot} = $new_boot;
- }
+ delete $b->{bios} if $new_boot && $new_boot ne $b->{boot};
+ $b->{boot} = $new_boot or return;
1;
}
sub setupBootloader__general {
- my ($in, $b, $all_hds, $fstab, $security) = @_;
+ my ($in, $b, $all_hds, $fstab, $_security) = @_;
return if detect_devices::is_xbox();
my @method_choices = bootloader::method_choices($all_hds);
my $prev_force_acpi = my $force_acpi = bootloader::get_append_with_key($b, 'acpi') !~ /off|ht/;
my $prev_enable_apic = my $enable_apic = !bootloader::get_append_simple($b, 'noapic');
my $prev_enable_lapic = my $enable_lapic = !bootloader::get_append_simple($b, 'nolapic');
- my $memsize = bootloader::get_append_memsize($b);
- my $prev_clean_tmp = my $clean_tmp = any { $_->{mntpoint} eq '/tmp' } @{$all_hds->{special} ||= []};
+ my $prev_enable_smp = my $enable_smp = !bootloader::get_append_simple($b, 'nosmp');
my $prev_boot = $b->{boot};
my $prev_method = $b->{method};
$b->{password2} ||= $b->{password} ||= '';
$::Wizard_title = N("Boot Style Configuration");
- if (arch() !~ /ppc/) {
- my (@boot_devices, %boot_devices);
+ my (@boot_devices, %boot_devices);
+ if (is_uefi()) {
+ @boot_devices = 'ESP';
+ %boot_devices = (ESP => N("EFI System Partition"));
+ } else {
foreach (bootloader::allowed_boot_parts($b, $all_hds)) {
my $dev = "/dev/$_->{device}";
push @boot_devices, $dev;
- $boot_devices{$dev} = $_->{info} ? "$dev ($_->{info})" : $dev;
+ my $name = $_->{mntpoint} || $_->{info} || $_->{device_LABEL};
+ unless ($name) {
+ $name = formatXiB($_->{size}*512) . " " if $_->{size};
+ $name .= $_->{fs_type};
+ }
+ $boot_devices{$dev} = $name ? "$dev ($name)" : $dev;
}
+ }
- $in->ask_from_({ #messages => N("Bootloader main options"),
- title => N("Bootloader main options"),
- icon => 'banner-bootL',
- interactive_help_id => 'setupBootloader',
- }, [
+ $in->ask_from_({ #messages => N("Bootloader main options"),
+ title => N("Bootloader main options"),
+ interactive_help_id => 'setupBootloader',
+ }, [
#title => N("Bootloader main options"),
{ label => N("Bootloader"), title => 1 },
- { label => N("Bootloader to use"), val => \$b->{method}, list => \@method_choices, format => \&bootloader::method2text },
- if_(arch() !~ /ia64/,
- { label => N("Boot device"), val => \$b->{boot}, list => \@boot_devices, format => sub { $boot_devices{$_[0]} } },
- ),
+ { label => N("Bootloader to use"), val => \$b->{method},
+ list => \@method_choices, format => \&bootloader::method2text },
+ { label => N("Boot device"), val => \$b->{boot}, list => \@boot_devices, allow_empty_list => 1,
+ format => sub { $boot_devices{$_[0]} } },
{ label => N("Main options"), title => 1 },
{ label => N("Delay before booting default image"), val => \$b->{timeout} },
- { text => N("Enable ACPI"), val => \$force_acpi, type => 'bool' },
- { text => N("Enable APIC"), val => \$enable_apic, type => 'bool', advanced => 1, disabled => sub { !$enable_lapic } },
+ { text => N("Enable ACPI"), val => \$force_acpi, type => 'bool', advanced => 1 },
+ { text => N("Enable SMP"), val => \$enable_smp, type => 'bool', advanced => 1 },
+ { text => N("Enable APIC"), val => \$enable_apic, type => 'bool', advanced => 1,
+ disabled => sub { !$enable_lapic } },
{ text => N("Enable Local APIC"), val => \$enable_lapic, type => 'bool', advanced => 1 },
- if_($security >= 4 || $b->{password} || $b->{restricted},
+ { label => N("Security"), title => 1 },
{ label => N("Password"), val => \$b->{password}, hidden => 1,
validate => sub {
- my $ok = $b->{password} eq $b->{password2} or $in->ask_warn('', [ N("The passwords do not match"), N("Please try again") ]);
- my $ok2 = !($b->{password} && $b->{method} eq 'grub-graphic') or $in->ask_warn('', N("You can not use a password with %s", bootloader::method2text($b->{method})));
+ my $ok = $b->{password} eq $b->{password2}
+ or $in->ask_warn('', [ N("The passwords do not match"), N("Please try again") ]);
+ my $ok2 = !($b->{password} && $b->{method} eq 'grub-graphic')
+ or $in->ask_warn('', N("You cannot use a password with %s",
+ bootloader::method2text($b->{method})));
$ok && $ok2;
} },
{ label => N("Password (again)"), val => \$b->{password2}, hidden => 1 },
- { text => N("Restrict command line options"), val => \$b->{restricted}, type => "bool", text => N("restrict"),
- validate => sub { my $ok = !$b->{restricted} || $b->{password} or $in->ask_warn('', N("Option ``Restrict command line options'' is of no use without a password")); $ok } },
- ),
- { text => N("Clean /tmp at each boot"), val => \$clean_tmp, type => 'bool', advanced => 1 },
- { label => N("Precise RAM size if needed (found %d MB)", availableRamMB()), val => \$memsize, advanced => 1,
- validate => sub { my $ok = !$memsize || $memsize =~ /^\d+K$/ || $memsize =~ s/^(\d+)M?$/$1M/i or $in->ask_warn('', N("Give the ram size in MB")); $ok } },
]) or return 0;
- } else {
- $b->{boot} = $partition_table::mac::bootstrap_part;
- $in->ask_from_({ messages => N("Bootloader main options"),
- title => N("Bootloader main options"),
- icon => 'banner-bootL',
- interactive_help_id => 'setupYabootGeneral',
- }, [
- { label => N("Bootloader to use"), val => \$b->{method}, list => \@method_choices, format => \&bootloader::method2text },
- { label => N("Init Message"), val => \$b->{'init-message'} },
- { label => N("Boot device"), val => \$b->{boot}, list => [ map { "/dev/$_" } (map { $_->{device} } (grep { isAppleBootstrap($_) } @$fstab)) ] },
- { label => N("Open Firmware Delay"), val => \$b->{delay} },
- { label => N("Kernel Boot Timeout"), val => \$b->{timeout} },
- { label => N("Enable CD Boot?"), val => \$b->{enablecdboot}, type => "bool" },
- { label => N("Enable OF Boot?"), val => \$b->{enableofboot}, type => "bool" },
- { label => N("Default OS?"), val => \$b->{defaultos}, list => [ 'linux', 'macos', 'macosx', 'darwin' ] },
- ]) or return 0;
- }
#- remove bios mapping if the user changed the boot device
delete $b->{bios} if $b->{boot} ne $prev_boot;
@@ -440,23 +459,21 @@ sub setupBootloader__general {
bootloader::suggest_message_text($b) if ! -e "$::prefix/boot/message-text"; #- in case we switch from grub to lilo
- bootloader::set_append_memsize($b, $memsize);
if ($prev_force_acpi != $force_acpi) {
bootloader::set_append_with_key($b, acpi => ($force_acpi ? '' : 'ht'));
}
+
+ if ($prev_enable_smp != $enable_smp) {
+ ($enable_smp ? \&bootloader::remove_append_simple : \&bootloader::set_append_simple)->($b, 'nosmp');
+ }
+
if ($prev_enable_apic != $enable_apic) {
($enable_apic ? \&bootloader::remove_append_simple : \&bootloader::set_append_simple)->($b, 'noapic');
+ ($enable_apic ? \&bootloader::set_append_simple : \&bootloader::remove_append_simple)->($b, 'apic');
}
if ($prev_enable_lapic != $enable_lapic) {
($enable_lapic ? \&bootloader::remove_append_simple : \&bootloader::set_append_simple)->($b, 'nolapic');
- }
-
- if ($prev_clean_tmp != $clean_tmp) {
- if ($clean_tmp && !fs::get::has_mntpoint('/tmp', $all_hds)) {
- push @{$all_hds->{special}}, { device => 'none', mntpoint => '/tmp', fs_type => 'tmpfs' };
- } else {
- @{$all_hds->{special}} = grep { $_->{mntpoint} ne '/tmp' } @{$all_hds->{special}};
- }
+ ($enable_lapic ? \&bootloader::set_append_simple : \&bootloader::remove_append_simple)->($b, 'lapic');
}
if (bootloader::main_method($prev_method) eq 'lilo' &&
@@ -464,6 +481,105 @@ sub setupBootloader__general {
log::l("switching for lilo to grub, ensure we don't read lilo.conf anymore");
renamef("$::prefix/etc/lilo.conf", "$::prefix/etc/lilo.conf.unused");
}
+ if ($prev_method eq 'refind' && $b->{method} ne 'refind') {
+ log::l("switching from rEFInd, ensure we don't detect refind as the active boot method");
+ renamef("$::prefix/boot/refind_linux.conf", "$::prefix/boot/refind_linux.conf.unused");
+ }
+ if ($b->{method} eq 'refind') {
+ if (bootloader::main_method($prev_method) eq 'grub2') {
+ #- grub2 doesn't provide any entries we can use, so revert to the defaults
+ %$b = ();
+ setupBootloaderBeforeStandalone($in->do_pkgs, $b, $all_hds, $fstab);
+ $b->{method} = 'refind';
+ $b->{boot} = 'ESP';
+ undef $b->{default};
+ }
+ setupBootloader__refind($in, $b, $fstab);
+ } else {
+ 1;
+ }
+}
+
+sub setupBootloader__refind {
+ my ($in, $b, $fstab) = @_;
+
+ my $already_in_refind = -e "$::prefix/boot/EFI/EFI/refind/refind.conf";
+ my $already_in_default = -e "$::prefix/boot/EFI/EFI/BOOT/refind.conf";
+ my $already_installed = $already_in_refind || $already_in_default;
+
+ my $update_esp = !$already_installed;
+ my $as_default = $already_in_default || $b->{removable};
+
+ if (!defined $b->{banner_path}) {
+ #- We haven't yet read any existing configuration, either because we are doing a clean
+ #- install or because we are switching from a different bootloader. Try to read it now.
+ #- Even if we are doing a clean install, rEFInd may already be installed in the ESP.
+ bootloader::read_refind_config($b);
+ }
+
+ my $use_nvram = $b->{use_nvram};
+ my $banner_path = $b->{banner_path};
+ my $banner_scale = $b->{banner_scale};
+ my $banner_type = $banner_path eq 'refind_banner.png' ? 'banner'
+ : $banner_path eq 'mageia_theme.png' ? 'theme'
+ : 'custom';
+ $in->ask_from_(
+ {
+ title => N("Bootloader Configuration"),
+ interactive_help_id => 'setupBootloader',
+ },
+ [
+ { label => N("Install Options"), title => 1, },
+ { text => N("Install or update rEFInd in the EFI system partition"),
+ val => \$update_esp, type => 'bool', disabled => sub { !$already_installed } },
+ { text => N("Install in /EFI/BOOT (removable device or workaround for some BIOSs)"),
+ val => \$as_default, type => 'bool', disabled => sub { !$update_esp } },
+ { text => N("Configure rEFInd to store its variables in the EFI NVRAM"),
+ val => \$use_nvram, type => 'bool' },
+ { label => N("Background"), title => 1, },
+ { val => \$banner_type, type => 'combo', list => [ 'banner', 'theme', 'custom' ],
+ format => sub {
+ my ($choice) = @_;
+ +{
+ 'banner' => N("rEFInd banner"),
+ 'theme' => N("Mageia theme"),
+ 'custom' => N("Custom"),
+ }->{$choice};
+ },
+ changed => sub {
+ if ($banner_type eq 'banner') {
+ $banner_path = 'refind_banner.png';
+ $banner_scale = 'noscale';
+ } elsif ($banner_type eq 'theme') {
+ $banner_path = 'mageia_theme.png';
+ $banner_scale = 'fillscreen';
+ }
+ }
+ },
+ { val => \$banner_path, type => 'entry', disabled => sub { $banner_type ne 'custom' } },
+ { val => \$banner_scale, type => 'combo', list => [ 'noscale', 'fillscreen' ],
+ format => sub {
+ my ($choice) = @_;
+ +{
+ 'noscale' => N("No scaling"),
+ 'fillscreen' => N("Scale to fit"),
+ }->{$choice};
+ }
+ },
+ ]
+ ) or return 0;
+
+ if ($update_esp) {
+ $b->{install_mode} = $as_default ? 'as_default' : 'as_refind';
+ } else {
+ $b->{install_mode} = $as_default ? 'no_install' : 'nvram_only';
+ }
+ $b->{use_nvram} = $use_nvram;
+ $b->{banner_path} = $banner_path;
+ $b->{banner_scale} = $banner_scale;
+ if (my @esp = grep { $_->{mntpoint} eq '/boot/EFI' } @$fstab) {
+ $b->{esp_device} = $esp[0]{real_device} || fs::wild_device::from_part('', $esp[0]);
+ }
1;
}
@@ -483,21 +599,29 @@ sub setupBootloader__entries {
my %root_descr = map {
my $info = delete $hd_infos{$_->{rootDevice}};
my $dev = "/dev/$_->{device}";
- $dev => $info ? "$dev ($info)" : $dev;
+ my $hint = $info || $_->{info} || $_->{device_LABEL};
+ my $info_ = $hint ? "$dev ($hint)" : $dev;
+ ($dev => $info_, fs::wild_device::from_part('', $_) => $info_);
} @$fstab;
my @l;
- if ($e->{type} eq "image") {
+ if ($b->{method} eq 'refind') {
+ @l = (
+ { label => N("Label"), val => \$e->{label} },
+ { label => N("Append"), val => \$append },
+ { label => N("Video mode"), val => \$vga, list => [ '', Xconfig::resolution_and_depth::bios_vga_modes() ],
+ format => \&Xconfig::resolution_and_depth::to_string, advanced => 1 },
+ );
+ } elsif ($e->{type} eq "image") {
@l = (
{ label => N("Image"), val => \$e->{kernel_or_dev}, list => [ map { "/boot/$_" } bootloader::installed_vmlinuz() ], not_edit => 0 },
-{ label => N("Root"), val => \$e->{root}, list => [ map { "/dev/$_->{device}" } @$fstab ], format => sub { $root_descr{$_[0]} } },
+{ label => N("Root"), val => \$e->{root}, list => [ map { fs::wild_device::from_part('', $_) } grep { !isSwap($_) } @$fstab ], format => sub { $root_descr{$_[0]} } },
{ label => N("Append"), val => \$append },
if_($e->{xen},
{ label => N("Xen append"), val => \$e->{xen_append} }
),
- if_(arch() !~ /ppc|ia64/,
+ if_($b->{password}, { label => N("Requires password to boot"), val => \$e->{lock}, type => "bool" }),
{ label => N("Video mode"), val => \$vga, list => [ '', Xconfig::resolution_and_depth::bios_vga_modes() ], format => \&Xconfig::resolution_and_depth::to_string, advanced => 1 },
-),
{ label => N("Initrd"), val => \$e->{initrd}, list => [ map { if_(/^initrd/, "/boot/$_") } all("$::prefix/boot") ], not_edit => 0, advanced => 1 },
{ label => N("Network profile"), val => \$netprofile, list => [ sort(uniq('', $netprofile, network::network::netprofile_list())) ], advanced => 1 },
);
@@ -506,26 +630,16 @@ sub setupBootloader__entries {
{ label => N("Root"), val => \$e->{kernel_or_dev}, list => [ map { "/dev/$_->{device}" } @$fstab, detect_devices::floppies() ] },
);
}
- if (arch() !~ /ppc/) {
+ if ($b->{method} ne 'refind') {
@l = (
{ label => N("Label"), val => \$e->{label} },
@l,
{ text => N("Default"), val => \$default, type => 'bool' },
);
- } else {
- unshift @l, { label => N("Label"), val => \$e->{label}, list => ['macos', 'macosx', 'darwin'] };
- if ($e->{type} eq "image") {
- @l = ({ label => N("Label"), val => \$e->{label} },
- (@l[1..2], { label => N("Append"), val => \$append }),
- { label => N("NoVideo"), val => \$e->{novideo}, type => 'bool' },
- { text => N("Default"), val => \$default, type => 'bool' }
- );
- }
}
-
$in->ask_from_(
{
- interactive_help_id => arch() =~ /ppc/ ? 'setupYabootAddEntry' : 'setupBootloaderAddEntry',
+ interactive_help_id => 'setupBootloaderAddEntry',
callbacks => {
complete => sub {
$e->{label} or $in->ask_warn('', N("Empty label not allowed")), return 1;
@@ -548,17 +662,22 @@ sub setupBootloader__entries {
my $Add = sub {
my @labels = map { $_->{label} } @{$b->{entries}};
my ($e, $prefix);
- if ($in->ask_from_list_('', N("Which type of entry do you want to add?"),
- [ N_("Linux"), arch() =~ /sparc/ ? N_("Other OS (SunOS...)") : arch() =~ /ppc/ ?
- N_("Other OS (MacOS...)") : N_("Other OS (Windows...)") ]
- ) eq "Linux") {
+ if ($b->{method} eq 'refind') {
+ $e = { type => 'image',
+ kernel_or_dev => '/boot/vmlinuz',
+ root => '/dev/' . fs::get::root($fstab)->{device}, #- assume a good default.
+ };
+ $prefix = "linux";
+ } elsif ($in->ask_from_list_('', N("Which type of entry do you want to add?"),
+ [ N_("Linux"), N_("Other OS (Windows...)") ]
+ ) eq "Linux") {
$e = { type => 'image',
root => '/dev/' . fs::get::root($fstab)->{device}, #- assume a good default.
};
$prefix = "linux";
} else {
$e = { type => 'other' };
- $prefix = arch() =~ /sparc/ ? "sunos" : arch() =~ /ppc/ ? "macos" : "windows";
+ $prefix = "windows";
}
$e->{label} = $prefix;
for (my $nb = 0; member($e->{label}, @labels); $nb++) {
@@ -576,17 +695,49 @@ sub setupBootloader__entries {
1;
};
+ my $Up = sub {
+ my ($e) = @_;
+ my @entries = @{$b->{entries}};
+ my ($index) = grep { $entries[$_]{label} eq $e->{label} } 0..$#entries;
+ if ($index > 0) {
+ ($b->{entries}[$index - 1], $b->{entries}[$index]) = ($b->{entries}[$index], $b->{entries}[$index - 1]);
+ }
+ 1;
+ };
+
+ my $Down = sub {
+ my ($e) = @_;
+ my @entries = @{$b->{entries}};
+ my ($index) = grep { $entries[$_]{label} eq $e->{label} } 0..$#entries;
+ if ($index < $#entries) {
+ ($b->{entries}[$index + 1], $b->{entries}[$index]) = ($b->{entries}[$index], $b->{entries}[$index + 1]);
+ }
+ 1;
+ };
+
my @prev_entries = @{$b->{entries}};
- if ($in->ask_from__add_modify_remove('',
+
+ #- the rEFInd configuration file just provides alternative kernel command lines
+ #- so we only want to display entries that relate to the default kernel.
+ if ($b->{method} eq 'refind') {
+ @{$b->{entries}} =
+ grep {
+ my $pb = $_->{type} ne 'image' || $_->{kernel_or_dev} ne '/boot/vmlinuz';
+ log::l("dropping bootloader entry $_->{label} because it is not needed by rEFInd") if $pb;
+ !$pb;
+ } @{$b->{entries}};
+ }
+
+ if ($in->ask_from__add_modify_remove(N("Bootloader Configuration"),
N("Here are the entries on your boot menu so far.
You can create additional entries or change the existing ones."), [ {
format => sub {
my ($e) = @_;
ref($e) ?
- ($b->{default} eq $e->{label} ? " * " : " ") . "$e->{label} ($e->{kernel_or_dev})" :
+ ($b->{default} eq $e->{label} ? " * " : " ") . "$e->{label} ($e->{kernel_or_dev})" :
translate($e);
}, list => $b->{entries},
- } ], Add => $Add, Modify => $Modify, Remove => $Remove)) {
+ } ], Add => $Add, Modify => $Modify, Remove => $Remove, Up => $Up, Down => $Down)) {
1;
} else {
@{$b->{entries}} = @prev_entries;
@@ -594,52 +745,214 @@ You can create additional entries or change the existing ones."), [ {
}
}
+sub setupBootloader__grub2 {
+ my ($in, $b, $_all_hds, $_fstab) = @_;
+
+ # update entries (so that we can display their list below):
+ my $error;
+ # grub2-update can take many minutes on some systems (mga#18538)
+ # FIXME: change the message to be more informative
+ my $_w = $in->wait_message(N("Please wait"), N("Please wait"));
+ run_program::rooted($::prefix, 'update-grub2', '2>', \$error) or die "update-grub2 failed: $error";
+ undef $_w;
+
+ # read grub2 auto-generated entries (instead of keeping eg: grub/lilo ones):
+ my $b2 = bootloader::read_grub2();
+
+ # get default parameters:
+ my $append = $b->{perImageAppend} || bootloader::get_grub2_append($b2);
+ my $default = $b2->{default};
+
+ require Xconfig::resolution_and_depth;
+
+ require network::network; #- to list network profiles
+ my $vga = Xconfig::resolution_and_depth::from_bios($b->{default_vga});
+ my $os_prober = $in->do_pkgs->is_installed('os-prober', '/usr/bin/os-prober') && !$b->{default_to_no_probe};
+
+ my $res = $in->ask_from_(
+ {
+ title => N("Bootloader Configuration"),
+ interactive_help_id => 'setupBootloaderAddEntry',
+ },
+ [
+ { label => N("Default"), val => \$default,
+ list => [ map { $_->{label} } @{$b2->{entries}} ] },
+ { label => N("Append"), val => \$append },
+ { label => N("Video mode"), val => \$vga, list => [ '', Xconfig::resolution_and_depth::bios_vga_modes() ],
+ format => \&Xconfig::resolution_and_depth::to_string, advanced => 1 },
+ { text => N("Do not touch ESP or MBR"), val => \$b->{no_esp_or_mbr}, type => 'bool', advanced => 1,
+ validate => sub {
+ $b->{no_esp_or_mbr} and $in->ask_warn(N("Warning"),
+ N("Not installing on ESP or MBR means that the installation is not bootable unless chain loaded from another OS!"));
+ 1;
+ },
+ },
+ { text => N("Probe Foreign OS"), val => \$os_prober, type => 'bool',
+ help => N("Unselect this option to stop grub2 scanning for other operating systems, which will prevent them from being included in the grub2 boot menu. The option may also be unselected after installation, removing the other operating systems from the grub2 boot menu, but reducing the time needed for installing kernel updates"),
+ },
+ if_(is_uefi(),
+ { text => N("Install in /EFI/BOOT (removable device or workaround for some BIOSs)"),
+ val => \$b->{removable}, type => 'bool' },
+ ),
+ ]);
+ if ($res) {
+ $b->{entries} = $b2->{entries};
+ $b->{default} = $default;
+ $b->{default_vga} = ref($vga) ? $vga->{bios} : $vga;
+ $b->{perImageAppend} = $append;
+ if ($os_prober) {
+ $in->do_pkgs->ensure_is_installed('os-prober', '/usr/bin/os-prober');
+ } else {
+ $in->do_pkgs->remove('os-prober');
+ }
+ 1;
+ } else {
+ '';
+ }
+}
+
+sub get_session_file {
+ my ($desktop) = @_;
+ my @dir_wm = qw(xsessions wayland-sessions);
+ my $xsession_file;
+ foreach my $dwm (@dir_wm) {
+ my $xs_file = find {
+ my %xsession = read_gnomekderc($_, 'Desktop Entry');
+ $xsession{Name} =~ s/\s+//g;
+ $xsession{Name} eq ${desktop};
+ } glob("$::prefix/usr/share/$dwm/*.desktop");
+ $xsession_file = $xs_file unless $xsession_file;
+ }
+ $xsession_file =~ s!\.[^.]+$!!;
+ $xsession_file =~ s!.*/!!;
+ $xsession_file ||= $desktop;
+ return $xsession_file;
+}
+
+sub get_session_file_with_extension {
+ return get_session_file(@_) . '.desktop';
+}
+
+sub available_dms() {
+ my @l;
+ foreach (glob("$::prefix/usr/share/X11/dm.d/*.conf")) {
+ my %dm = getVarsFromSh($_);
+ push @l, $dm{EXEC} if $dm{EXEC} && -x "$::prefix/$dm{EXEC}";
+ }
+ @l;
+}
+
sub get_autologin() {
my %desktop = getVarsFromSh("$::prefix/etc/sysconfig/desktop");
- my $gdm_file= "$::prefix/etc/X11/gdm/custom.conf";
- my $kdm_file = "$::prefix/etc/kde/kdm/kdmrc";
- my $desktop = $desktop{DESKTOP} || (! -e $kdm_file && -e $gdm_file ? 'GNOME' : 'KDE');
- my $autologin = do {
- if (($desktop{DISPLAYMANAGER} || $desktop) eq 'GNOME') {
- my %conf = read_gnomekderc($gdm_file, 'daemon');
- text2bool($conf{AutomaticLoginEnable}) && $conf{AutomaticLogin};
- } else { # KDM / MdkKDM
- my %conf = read_gnomekderc($kdm_file, 'X-:0-Core');
- text2bool($conf{AutoLoginEnable}) && $conf{AutoLoginUser};
- }
- };
- { autologin => $autologin, desktop => $desktop };
+ my $gdm_file = "$::prefix/etc/X11/gdm/custom.conf";
+ my $sddm_file = "$::prefix/etc/sddm.conf";
+ my $lightdm_conffile = "$::prefix/etc/lightdm/lightdm.conf.d/50-mageia-autologin.conf";
+ my $lxdm_conffile = "$::prefix/etc/lxdm/lxdm.conf";
+ my $autologin_file = "$::prefix/etc/sysconfig/autologin";
+ my $desktop = $desktop{DESKTOP} || first(sessions());
+ my %desktop_to_dm = (
+ GNOME => 'gdm',
+ Plasma => 'sddm',
+ Xfce => 'lightdm',
+ LXDE => 'lxdm',
+ );
+ my $dm =
+ basename(readlink("$::prefix/etc/systemd/system/display-manager.service")) =~ s/(.*)\.service/$1/r ||
+ $desktop_to_dm{$desktop} ||
+ basename(first(available_dms()));
+
+ my $autologin_user;
+ if ($dm eq "gdm") {
+ my %conf = read_gnomekderc($gdm_file, 'daemon');
+ $autologin_user = text2bool($conf{AutomaticLoginEnable}) && $conf{AutomaticLogin};
+ } elsif ($dm eq "sddm") {
+ my %conf = read_gnomekderc($sddm_file, 'Autologin');
+ $autologin_user = $conf{User};
+ } elsif ($dm eq "lightdm") {
+ my %conf = read_gnomekderc($lightdm_conffile, 'Seat:*');
+ $autologin_user = text2bool($conf{'#dummy-autologin'}) && $conf{"autologin-user"};
+ } elsif ($dm eq "lxdm") {
+ my %conf = read_gnomekderc($lxdm_conffile, 'base');
+ $autologin_user = $conf{autologin};
+ $autologin_user =~ s/^.//;
+ } else {
+ my %conf = getVarsFromSh($autologin_file);
+ $autologin_user = text2bool($conf{AUTOLOGIN}) && $conf{USER};
+ }
+
+ { user => $autologin_user, desktop => $desktop, dm => $dm };
+}
+
+sub is_standalone_autologin_needed {
+ my ($dm) = @_;
+ return member($dm, qw(slim xdm));
}
sub set_autologin {
- my ($do_pkgs, $o_user, $o_wm) = @_;
- log::l("set_autologin $o_user $o_wm");
- my $autologin = bool2text($o_user);
+ my ($do_pkgs, $autologin, $o_auto) = @_;
+ log::l("set_autologin $autologin->{user} $autologin->{desktop}");
+ my $do_autologin = bool2text($autologin->{user});
+
+ $autologin->{dm} ||= 'xdm';
+ $do_pkgs->ensure_is_installed($autologin->{dm}, undef, $o_auto)
+ or return;
+ if ($autologin->{user} && is_standalone_autologin_needed($autologin->{dm})) {
+ $do_pkgs->ensure_is_installed('autologin', '/usr/bin/startx.autologin', $o_auto)
+ or return;
+ }
- #- Configure KDM / MDKKDM
- eval { common::update_gnomekderc_no_create("$::prefix/etc/kde/kdm/kdmrc", 'X-:0-Core' => (
- AutoLoginEnable => $autologin,
- AutoLoginUser => $o_user,
- )) };
+ #- Configure SDDM
+ my $sddm_conffile = "$::prefix/etc/sddm.conf";
+ eval { common::update_gnomekderc_no_create($sddm_conffile, 'Autologin' => (
+ Session => get_session_file_with_extension($autologin->{desktop}),
+ User => $autologin->{user},
+ )) } if -e $sddm_conffile;
#- Configure GDM
- eval { update_gnomekderc("$::prefix/etc/X11/gdm/custom.conf", daemon => (
- AutomaticLoginEnable => $autologin,
- AutomaticLogin => $o_user,
- )) };
-
+ my $gdm_conffile = "$::prefix/etc/X11/gdm/custom.conf";
+ eval { update_gnomekderc($gdm_conffile, daemon => (
+ AutomaticLoginEnable => $do_autologin,
+ AutomaticLogin => $autologin->{user},
+ )) } if -e $gdm_conffile;
+
+ #- Configure LIGHTDM
+ my $lightdm_conffile = "$::prefix/etc/lightdm/lightdm.conf.d/50-mageia-autologin.conf";
+ eval { update_gnomekderc($lightdm_conffile, 'Seat:*' => (
+ '#dummy-autologin' => $do_autologin,
+ 'autologin-user' => $autologin->{user},
+ 'autologin-session' => get_session_file($autologin->{desktop}),
+ )) } if -e $lightdm_conffile;
+
+ #- Configure LXDM
+ my $lxdm_conffile = "$::prefix/etc/lxdm/lxdm.conf";
+ eval { update_gnomekderc($lxdm_conffile, 'base' => (
+ 'autologin' => $autologin->{user} ? '@' . $autologin->{user} : ''
+ ));
+ if ($autologin->{user} && $autologin->{desktop} && !member($autologin->{desktop}, qw(default failsafe))) {
+ update_gnomekderc($lxdm_conffile, $autologin->{user} => (
+ 'user' => $autologin->{user},
+ 'session' => get_session_file($autologin->{desktop}),
+ )) } } if -e $lxdm_conffile;
+
+ #- Configure XDM
my $xdm_autologin_cfg = "$::prefix/etc/sysconfig/autologin";
- if (member($o_wm, 'KDE', 'GNOME')) {
- unlink $xdm_autologin_cfg;
- } else {
- $do_pkgs->ensure_is_installed('autologin', '/usr/bin/startx.autologin') if $o_user;
+ if (is_standalone_autologin_needed($autologin->{dm})) {
setVarsInShMode($xdm_autologin_cfg, 0644,
- { USER => $o_user, AUTOLOGIN => bool2yesno($o_user), EXEC => '/usr/bin/startx.autologin' });
+ { USER => $autologin->{user}, AUTOLOGIN => bool2yesno($autologin->{user}), EXEC => '/usr/bin/startx.autologin' });
+ } else {
+ unlink $xdm_autologin_cfg;
}
- if ($o_user) {
- my $home = (getpwnam($o_user))[7];
- set_window_manager($home, $o_wm);
+ my $sys_conffile = "$::prefix/etc/sysconfig/desktop";
+ my %desktop = getVarsFromSh($sys_conffile);
+ $desktop{DESKTOP} = $autologin->{desktop};
+ $desktop{DISPLAYMANAGER} = $autologin->{dm};
+ setVarsInSh($sys_conffile, \%desktop);
+ symlinkf("/usr/lib/systemd/system/$autologin->{dm}.service", "$::prefix/etc/systemd/system/display-manager.service");
+
+ if ($autologin->{user}) {
+ my $home = (getpwnam($autologin->{user}))[7];
+ set_window_manager($home, $autologin->{desktop});
}
}
sub set_window_manager {
@@ -672,7 +985,7 @@ sub rotate_log {
}
sub rotate_logs {
my ($prefix) = @_;
- rotate_log("$prefix/root/drakx/$_") foreach qw(ddebug.log install.log);
+ rotate_log("$prefix/root/drakx/$_") foreach qw(stage1.log ddebug.log install.log updates.log);
}
sub writeandclean_ldsoconf {
@@ -681,7 +994,7 @@ sub writeandclean_ldsoconf {
my @l = chomp_(cat_($file));
my @default = ('/lib', '/usr/lib'); #- no need to have /lib and /usr/lib in ld.so.conf
- my @suggest = ('/usr/X11R6/lib', '/usr/lib/qt3/lib'); #- needed for upgrade where package renaming can cause this to disappear
+ my @suggest = ('/usr/lib/qt3/lib'); #- needed for upgrade where package renaming can cause this to disappear
if (arch() =~ /x86_64/) {
@default = map { $_, $_ . '64' } @default;
@@ -730,11 +1043,18 @@ sub ask_user {
ask_user_and_root($in, undef, $users, $security, %options);
}
+sub is_xguest_installed() {
+ -e "$::prefix/etc/security/namespace.d/xguest.conf";
+}
+
sub ask_user_and_root {
my ($in, $superuser, $users, $security, %options) = @_;
+ my $xguest = is_xguest_installed();
+
$options{needauser} ||= $security >= 3;
+ my @icons = facesnames();
my @suggested_names = $::isInstall ? do {
my @l = grep { !/^\./ && $_ ne 'lost+found' && -d "$::prefix/home/$_" } all("$::prefix/home");
grep { ! defined getpwnam($_) } @l;
@@ -759,7 +1079,7 @@ sub ask_user_and_root {
require authentication;
my $validate_name = sub {
$u->{name} or $in->ask_warn('', N("Please give a user name")), return;
- $u->{name} =~ /^[a-z]+?[a-z0-9_-]*?$/ or $in->ask_warn('', N("The user name must contain only lower cased letters, numbers, `-' and `_'")), return;
+ $u->{name} =~ /^[a-z]+[a-z0-9_-]*$/ or $in->ask_warn('', N("The user name must start with a lower case letter followed by only lower cased letters, numbers, `-' and `_'")), return;
length($u->{name}) <= 32 or $in->ask_warn('', N("The user name is too long")), return;
defined getpwnam($u->{name}) || member($u->{name}, map { $_->{name} } @$users) and $in->ask_warn('', N("This user name has already been added")), return;
'ok';
@@ -769,40 +1089,59 @@ sub ask_user_and_root {
my $id = $u->{$field} or return 'ok';
my $name = $field eq 'uid' ? N("User ID") : N("Group ID");
$id =~ /^\d+$/ or $in->ask_warn('', N("%s must be a number", $name)), return;
- $id >= 500 or $in->ask_yesorno('', N("%s should be above 500. Accept anyway?", $name)) or return;
+ $id >= 1000 or $in->ask_yesorno('', N("%s should be above 1000. Accept anyway?", $name)) or return;
'ok';
};
my $ret = $in->ask_from_(
{ title => N("User management"),
- icon => 'banner-adduser',
interactive_help_id => 'addUser',
if_($::isInstall && $superuser, cancel => ''),
- focus_first => 1,
}, [
$superuser ? (
+ if_(0,
+ { text => N("Enable guest account"), val => \$xguest, type => 'bool', advanced => 1 },
+ ),
{ label => N("Set administrator (root) password"), title => 1 },
- { label => N("Password"), val => \$superuser->{password}, hidden => 1,
+ { label => N("Password"), val => \$superuser->{password}, hidden => 1, alignment => 'right', weakness_check => 1,
+ focus => sub { 1 },
validate => sub { authentication::check_given_password($in, $superuser, 2 * $security) } },
- { label => N("Password (again)"), val => \$superuser->{password2}, hidden => 1 },
+ { label => N("Password (again)"), val => \$superuser->{password2}, hidden => 1, alignment => 'right' },
) : (),
{ label => N("Enter a user"), title => 1 }, if_($names, { label => $names }),
- { label => N("Real name"), val => \$u->{realname}, focus_out => sub {
- $u->{name} ||= lc first($u->{realname} =~ /([a-zA-Z0-9_-]+)/);
- } },
- { label => N("Login name"), val => \$u->{name}, list => \@suggested_names, not_edit => 0, validate => $validate_name },
- { label => N("Password"),val => \$u->{password}, hidden => 1,
+ if_($security <= 3 && !$options{noicons} && @icons,
+ { label => N("Icon"), val => \ ($u->{icon} ||= 'default'), list => \@icons, icon2f => \&face2png,
+ alignment => 'right', format => \&translate },
+ ),
+ { label => N("Real name"), val => \$u->{realname}, alignment => 'right', focus_out => sub {
+ $u->{name} ||= lc(Locale::gettext::iconv($u->{realname}, "utf-8", "ascii//TRANSLIT"));
+ $u->{name} =~ s/[^a-zA-Z0-9_-]//g; # drop any character that would break login program
+ },
+ focus => sub { !$superuser },
+ },
+
+ { label => N("Login name"), val => \$u->{name}, list => \@suggested_names, alignment => 'right',
+ not_edit => 0, validate => $validate_name },
+ { label => N("Password"),val => \$u->{password}, hidden => 1, alignment => 'right', weakness_check => 1,
validate => sub { authentication::check_given_password($in, $u, $security > 3 ? 6 : 0) } },
- { label => N("Password (again)"), val => \$u->{password2}, hidden => 1 },
+ { label => N("Password (again)"), val => \$u->{password2}, hidden => 1, alignment => 'right' },
{ label => N("Shell"), val => \$u->{shell}, list => [ shells() ], advanced => 1 },
{ label => N("User ID"), val => \$u->{uid}, advanced => 1, validate => sub { $validate_uid_gid->('uid') } },
{ label => N("Group ID"), val => \$u->{gid}, advanced => 1, validate => sub { $validate_uid_gid->('gid') } },
- if_($security > 3,
+ if_($security >= 1,
+ { label => N("Extra Groups:"), advanced => 1, title => 1 },
map {
- { label => $_, val => \$groups{$_}, text => $high_security_groups{$_}, type => 'bool' };
+ { label => $_, val => \$groups{$_}, text => $high_security_groups{$_}, type => 'bool', advanced => 1 };
} keys %high_security_groups,
),
],
);
+
+ if ($xguest && !is_xguest_installed()) {
+ $in->do_pkgs->ensure_is_installed('xguest', '/etc/security/namespace.d/xguest.conf');
+ } elsif (!$xguest && is_xguest_installed()) {
+ $in->do_pkgs->remove('xguest') or return;
+ }
+
$u->{groups} = [ grep { $groups{$_} } keys %groups ];
push @$users, $u if $u->{name};
@@ -811,21 +1150,104 @@ sub ask_user_and_root {
}
sub sessions() {
- split(' ', run_program::rooted_get_stdout($::prefix, '/usr/sbin/chksession', '-l'));
+ my @l;
+ my @dir_wm = qw(xsessions wayland-sessions);
+ foreach my $dwm (@dir_wm) {
+ push @l, map { s/.desktop$//; basename($_) } glob("$::prefix/usr/share/$dwm/*.desktop");
+ }
+ @l;
}
sub sessions_with_order() {
my %h = map { /(.*)=(.*)/ } split(' ', run_program::rooted_get_stdout($::prefix, '/usr/sbin/chksession', '-L'));
\%h;
}
+sub urpmi_add_all_media {
+ my ($in, $o_previous_release, $o_mirror_url) = @_;
+
+ $o_mirror_url = undef if $o_mirror_url eq '$MIRRORLIST';
+
+ my $binary = find { whereis_binary($_, $::prefix) } if_(check_for_xserver(), 'gurpmi.addmedia'), 'urpmi.addmedia';
+ if (!$binary) {
+ log::l("urpmi.addmedia not found!");
+ return;
+ }
+
+ #- configure urpmi media if network is up
+ require network::tools;
+ if (!network::tools::has_network_connection()) {
+ log::l("no network connexion!");
+ return;
+ }
+ # First remove all media:
+ run_program::rooted($::prefix, 'urpmi.removemedia', '-a');
+ # Then add online media:
+ my $wait;
+ my @options = $o_mirror_url ? ( '--distrib', $o_mirror_url) : ('--distrib', '--mirrorlist', '$MIRRORLIST');
+ if ($binary eq 'urpmi.addmedia') {
+ $wait = $in->wait_message(N("Please wait"), N("Please wait, adding media..."));
+ } elsif ($in->isa('interactive::gtk')) {
+ push @options, '--silent-success';
+ mygtk3::flush();
+ }
+
+ my $reason = join(',', $o_previous_release ?
+ ('reason=upgrade', 'upgrade_by=drakx', "upgrade_from=$o_previous_release->{version}") :
+ 'reason=install');
+ log::l("URPMI_ADDMEDIA_REASON $reason");
+ local $ENV{URPMI_ADDMEDIA_REASON} = $reason;
+
+ my $log_file = '/root/drakx/updates.log';
+ my $val = run_program::rooted($::prefix, $binary, '>>', $log_file, '2>>', $log_file, @options);
+
+ undef $wait;
+ $val;
+}
+
+sub urpmi_set_downloader {
+ my ($in, $urpm, $downloader) = @_;
+
+ if ($urpm->{global_config}{downloader} ne $downloader) {
+ my $binary = $downloader eq 'aria2' ? 'aria2c' : $downloader;
+ if ($in->do_pkgs->ensure_binary_is_installed($downloader, $binary, 1)) {
+ log::l("Setting urpmi downloader to '$downloader'");
+ $urpm->{global_config}{downloader} = $downloader;
+ urpm::media::write_config($urpm);
+ } else {
+ return;
+ }
+ }
+ 1;
+}
+
+sub format_wm {
+ my ($wm) = @_;
+ return {
+ cinnamon => 'Cinnamon',
+ enlightenment => 'Enlightenment',
+ 'gnome-classic' => 'GNOME Classic',
+ gnome => 'GNOME',
+ i3 => 'I3',
+ 'i3-with-shmlog' => 'I3 with shmlog',
+ lxqt => 'LxQt',
+ mate => 'Mate',
+ openbox => 'OpenBox',
+ 'plasma-mediacenter' => 'Plasma Mediacenter',
+ '01plasma' => 'Plasma',
+ sugar => 'Sugar',
+ xfce => 'Xfce',
+ }->{$wm};
+}
+
sub autologin {
my ($o, $in) = @_;
my @wm = sessions();
my @users = map { $_->{name} } @{$o->{users} || []};
- if (member('KDE', @wm) && @users == 1 && $o->{meta_class} eq 'desktop') {
- $o->{desktop} = 'KDE';
+ my $kde_desktop = find { member($_, 'KDE', 'KDE4') } @wm;
+ if ($kde_desktop && @users == 1 && $o->{meta_class} eq 'desktop') {
+ $o->{desktop} = $kde_desktop;
$o->{autologin} = $users[0];
} elsif (@wm > 1 && @users && !$o->{authentication}{NIS} && $o->{security} <= 2) {
my $use_autologin = @users == 1;
@@ -835,7 +1257,7 @@ sub autologin {
messages => N("I can set up your computer to automatically log on one user.") },
[ { text => N("Use this feature"), val => \$use_autologin, type => 'bool' },
{ label => N("Choose the default user:"), val => \$o->{autologin}, list => \@users, disabled => sub { !$use_autologin } },
- { label => N("Choose the window manager to run:"), val => \$o->{desktop}, list => \@wm, disabled => sub { !$use_autologin } } ]
+ { label => N("Choose the window manager to run:"), val => \$o->{desktop}, list => \@wm, disabled => sub { !$use_autologin }, format => \&format_wm } ]
);
delete $o->{autologin} if !$use_autologin;
} else {
@@ -844,91 +1266,115 @@ sub autologin {
}
sub display_release_notes {
- my ($o) = @_;
- require Gtk2::Html2;
- require ugtk2;
- ugtk2->import(':all');
- require mygtk2;
- mygtk2->import('gtknew');
- my $view = Gtk2::Html2::View->new;
- my $document = Gtk2::Html2::Document->new;
- $view->set_document($document);
-
- $document->clear;
- $document->open_stream("text/html");
- $document->write_stream($o->{release_notes});
+ my ($in, $release_notes) = @_;
+ if (!$in->isa('interactive::gtk')) {
+ $in->ask_from_({ title => N("Release Notes"),
+ messages => $release_notes,
+ }, [ {} ]);
+ return;
+ }
+
+ require Gtk3::WebKit2;
+ Gtk3::WebKit2->import;
+ require ugtk3;
+ ugtk3->import(':all');
+ require mygtk3;
+ mygtk3->import('gtknew');
+ my $view = gtknew('WebKit2_WebView', no_popup_menu => 1);
+ $view->load_html($release_notes, '/');
- my $w = ugtk2->new(N("Release Notes"), transient => $::main_window, modal => 1);
+ my $w = ugtk3->new(N("Release Notes"), transient => $::main_window, modal => 1, pop_it => 1);
gtkadd($w->{rwindow},
- gtkpack_(Gtk2::VBox->new,
- 1, create_scrolled_window(ugtk2::gtkset_border_width($view, 5),
+ gtkpack_(Gtk3::VBox->new,
+ 1, create_scrolled_window(ugtk3::gtkset_border_width($view, 5),
[ 'never', 'automatic' ],
),
- 0, gtkpack(create_hbox('edge'),
+ 0, gtkpack(create_hbox('end'),
gtknew('Button', text => N("Close"),
- clicked => sub { Gtk2->main_quit })
+ clicked => sub { Gtk3->main_quit })
),
),
);
- # make parent visible still visible:
- local ($::real_windowwidth, $::real_windowheight) = ($::real_windowwidth - 50, $::real_windowheight - 50);
- mygtk2::set_main_window_size($w->{rwindow});
+ mygtk3::set_main_window_size($w->{rwindow});
$w->{real_window}->grab_focus;
$w->{real_window}->show_all;
$w->main;
return;
}
-sub acceptLicense {
- my ($o) = @_;
- require messages;
+sub get_release_notes {
+ my ($in) = @_;
+ my $ext = $in->isa('interactive::gtk') ? '.html' : '.txt';
+ my $separator = $in->isa('interactive::gtk') ? "\n\n" : '';
- $o->{release_notes} = join("\n\n", grep { $_ } map {
+ my $release_notes = join($separator, grep { $_ } map {
if ($::isInstall) {
- my $f = install::any::getFile_($o->{stage2_phys_medium}, $_);
+ my $f = install::any::getFile_($::o->{stage2_phys_medium}, $_);
$f && cat__($f);
} else {
my $file = $_;
my $d = find { -e "$_/$file" } glob_("/usr/share/doc/*-release-*");
$d && cat_("$d/$file");
}
- } 'release-notes.html', 'release-notes.' . arch() . '.html');
+ } "release-notes$ext", 'release-notes.' . $ext);
# we do not handle links:
- $o->{release_notes} =~ s!<a href=".*?">(.*?)</a>!$1!g;
+ $release_notes =~ s!<a href=".*?">(.*?)</a>!$1!g;
+ $release_notes;
+}
+
+sub run_display_release_notes {
+ my ($release_notes) = @_;
+ output('/tmp/release_notes.html', $release_notes);
+ local $ENV{LC_ALL} = $::o->{locale}{lang} || 'C';
+ run_program::raw({ detach => 1 }, '/usr/bin/display_release_notes.pl');
+}
- return if $o->{useless_thing_accepted};
+sub acceptLicense {
+ my ($in) = @_;
+ require messages;
+
+ my $release_notes = get_release_notes($in);
my $r = $::testing ? 'Accept' : 'Refuse';
- $o->ask_from_({ title => N("License agreement"),
- icon => 'banner-license',
+ $in->ask_from_({ title => N("License agreement"),
focus_first => 1,
cancel => N("Quit"),
- messages => formatAlaTeX(messages::main_license() . "\n\n\n" . messages::warning_about_patents()),
+ messages => formatAlaTeX(messages::main_license()),
interactive_help_id => 'acceptLicense',
- if_($o->{release_notes},
- more_buttons => [ [ N("Release Notes"), sub { display_release_notes($o) }, 1 ] ]),
callbacks => { ok_disabled => sub { $r eq 'Refuse' } },
},
- [ { list => [ N_("Accept"), N_("Refuse") ], val => \$r, type => 'list', format => sub { translate($_[0]) } } ])
- or do {
- # when refusing license in finish-install:
- exec("/sbin/reboot") if !$::isInstall;
- install::media::umount_phys_medium($o->{stage2_phys_medium});
- install::media::openCdromTray($o->{stage2_phys_medium}{device}) if !detect_devices::is_xbox() && $o->{method} eq 'cdrom';
- $o->exit;
- };
+ [
+ { label => N("Do you accept this license ?"), title => 1, alignment => 'right' },
+ { list => [ N_("Accept"), N_("Refuse") ], val => \$r, type => 'list', alignment => 'right',
+ format => sub { translate($_[0]) } },
+ if_($release_notes,
+ { clicked => sub { run_display_release_notes($release_notes) }, do_not_expand => 1,
+ val => \ (my $_t1 = N("Release Notes")), install_button => 1, no_indent => 1 }
+ ),
+ ])
+ or reboot();
}
+sub reboot() {
+ if ($::isInstall) {
+ my $o = $::o;
+ install::media::umount_phys_medium($o->{stage2_phys_medium});
+ install::media::openCdromTray($o->{stage2_phys_medium}{device}) if !detect_devices::is_xbox() && $o->{method} eq 'cdrom';
+ $o->exit;
+ } else {
+ # when refusing license in finish-install:
+ exec("/bin/reboot");
+ }
+}
sub selectLanguage_install {
my ($in, $locale) = @_;
- my $common = { messages => N("Please choose a language to use."),
- title => N("Language choice"),
- icon => 'banner-languages.png',
+ my $common = {
+ title => N("Please choose a language to use"),
interactive_help_id => 'selectLanguage' };
my $lang = $locale->{lang};
@@ -954,25 +1400,22 @@ sub selectLanguage_install {
}
my $non_utf8 = 0;
- my $utf8_forced;
add2hash($common, { cancel => '',
focus_first => 1,
- advanced_messages => formatAlaTeX(N("Mandriva Linux can support multiple languages. Select
+ advanced_messages => formatAlaTeX(N("%s can support multiple languages. Select
the languages you would like to install. They will be available
-when your installation is complete and you restart your system.")),
- advanced_label => N("Multi languages"),
+when your installation is complete and you restart your system.", N("Mageia"))),
+ advanced_label => N("Multiple languages"),
+ advanced_title => N("Select Additional Languages"),
});
$in->ask_from_($common, [
{ val => \$lang, separator => '|',
if_($using_images, image2f => sub { $name2l{$_[0]} =~ /^[a-z]/ && "langs/lang-$name2l{$_[0]}" }),
format => sub { $_[0] =~ /(.*\|)(.*)/ ? $1 . lang::l2name($2) : lang::l2name($_[0]) },
- list => \@langs, sort => 0, changed => sub {
- #- very special cases for langs which do not like UTF-8
- $non_utf8 = $lang =~ /\bzh/ if !$utf8_forced;
- }, focus_out => sub { $langs->{$listval2val->($lang)} = 1 } },
- { val => \$non_utf8, type => 'bool', text => N("Old compatibility (non UTF-8) encoding"),
- advanced => 1, changed => sub { $utf8_forced = 1 } },
+ list => \@langs, sort => !$in->isa('interactive::gtk'),
+ focus_out => sub { $langs->{$listval2val->($lang)} = 1 } },
+ { val => \$non_utf8, type => 'bool', text => N("Old compatibility (non UTF-8) encoding"), advanced => 1 },
{ val => \$langs->{all}, type => 'bool', text => N("All languages"), advanced => 1 },
map {
{ val => \$langs->{$_->[0]}, type => 'bool', disabled => sub { $langs->{all} },
@@ -987,12 +1430,14 @@ when your installation is complete and you restart your system.")),
#- convert to the default locale for asked language
$locale->{lang} = $listval2val->($lang);
+ lang::lang_changed($locale);
}
sub selectLanguage_standalone {
my ($in, $locale) = @_;
- my $common = { messages => N("Please choose a language to use."),
+ my $old_lang = $locale->{lang};
+ my $common = { messages => N("Please choose a language to use"),
title => N("Language choice"),
interactive_help_id => 'selectLanguage' };
@@ -1005,7 +1450,8 @@ sub selectLanguage_standalone {
]);
$locale->{utf8} = !$non_utf8;
lang::set($locale);
- Gtk2->set_locale if $in->isa('interactive::gtk');
+ c::init_setlocale() if $in->isa('interactive::gtk');
+ lang::lang_changed($locale) if $old_lang ne $locale->{lang};
}
sub selectLanguage_and_more_standalone {
@@ -1015,9 +1461,7 @@ sub selectLanguage_and_more_standalone {
language:
# keep around previous settings so that selectLanguage can keep UTF-8 flag:
local $::Wizard_no_previous = 1;
- my $old_lang = $locale->{lang};
selectLanguage_standalone($in, $locale);
- lang::lang_changed($locale) if $old_lang ne $locale->{lang};
undef $::Wizard_no_previous;
selectCountry($in, $locale) or goto language;
};
@@ -1034,10 +1478,12 @@ sub selectCountry {
my ($in, $locale) = @_;
my $country = $locale->{country};
- my @countries = lang::list_countries(exclude_non_installed => !$::isInstall);
+ my $country2locales = lang::countries_to_locales(exclude_non_installed => !$::isInstall);
+ my @countries = keys %$country2locales;
my @best = grep {
- my $h = lang::analyse_locale_name(lang::c2locale($_));
- $h->{main} eq lang::locale_to_main_locale($locale->{lang});
+ find {
+ $_->{main} eq lang::locale_to_main_locale($locale->{lang});
+ } @{$country2locales->{$_}};
} @countries;
@best == 1 and @best = ();
@@ -1047,9 +1493,8 @@ sub selectCountry {
$in->ask_from_(
{ title => N("Country / Region"),
- icon => 'banner-languages',
- messages => N("Please choose your country."),
- interactive_help_id => 'selectCountry',
+ messages => N("Please choose your country"),
+ interactive_help_id => 'selectCountry.html',
if_(@best, advanced_messages => N("Here is the full list of available countries")),
advanced_label => @best ? N("Other Countries") : N("Advanced"),
},
@@ -1059,7 +1504,7 @@ sub selectCountry {
list => [ @countries ], advanced => scalar(@best), changed => sub { $other = 1 } },
{ val => \$locale->{IM}, type => 'combo', label => N("Input method:"),
sort => 0, separator => '|',
- list => [ '', sort(lang::get_ims()) ],
+ list => [ '', lang::get_ims($locale->{lang}) ],
format => sub { $_[0] ? uc($_[0] =~ /(.*)\+(.*)/ ? "$1|$1+$2" : $_[0]) : N("None") },
advanced => !$locale->{IM},
},
@@ -1075,43 +1520,64 @@ sub set_login_serial_console {
substInFile { s/^s$port:.*//; $_ = $line if eof } "$::prefix/etc/inittab";
}
-sub report_bug {
- my (@other) = @_;
-
- sub header { "
+sub header { "
********************************************************************************
* $_[0]
********************************************************************************";
- }
+}
+
+sub fdisk() {
+ my @devs = grep { !m!^/dev/(loop|ram)\d+! && !/\d$/ } map { "/dev/$_->{dev}" } fs::proc_partitions::read_raw();
+ `fdisk -l @devs`;
+
+}
+
+sub report_bug {
+ my (@other) = @_;
join '', map { chomp; "$_\n" }
header("lspci"), detect_devices::stringlist(),
+ header("hid_devices"), (map { sprintf("%-16s: %s", $_->{driver} || "unknown", $_->{description}) } c::hid_probe()),
+ header("input devices"), cat_("/proc/bus/input/devices"),
+ header("libinput devices"), `libinput list-devices`,
header("pci_devices"), cat_("/proc/bus/pci/devices"),
- header("dmidecode"), `dmidecode`,
- header("fdisk"), arch() =~ /ppc/ ? `pdisk -l` : `fdisk -l`,
+ header("dmidecode"), arch() =~ /86/ ? `dmidecode` : (),
+ header("fdisk"), fdisk(),
header("scsi"), cat_("/proc/scsi/scsi"),
header("/sys/bus/scsi/devices"), -d '/sys/bus/scsi/devices' ? `ls -l /sys/bus/scsi/devices` : (),
header("lsmod"), cat_("/proc/modules"),
header("cmdline"), cat_("/proc/cmdline"),
header("pcmcia: stab"), cat_("$::prefix/var/lib/pcmcia/stab") || cat_("$::prefix/var/run/stab"),
- header("usb"), cat_("/proc/bus/usb/devices"),
+ header("usb"), cat_("/sys/kernel/debug/usb/devices"),
header("partitions"), cat_("/proc/partitions"),
+ header("PVs"), `pvs`,
+ header("VGs"), `vgs`,
+ header("LVs"), `lvs`,
+ header("dmsetup info"), `dmsetup info`,
+ header("dmsetup table"), `dmsetup table`,
+ header("dmsetup ls"), `dmsetup ls`,
header("cpuinfo"), cat_("/proc/cpuinfo"),
- header("syslog"), cat_("/tmp/syslog") || cat_("$::prefix/var/log/syslog"),
+ header("syslog"), cat_("/tmp/syslog") || cat_("$::prefix/var/log/syslog") || `journalctl -q -D $::prefix/var/log/journal -b`,
+ header("Xorg.log"), cat_("/var/log/Xorg.0.log"),
header("monitor_full_edid"), monitor_full_edid(),
header("stage1.log"), cat_("/tmp/stage1.log") || cat_("$::prefix/root/drakx/stage1.log"),
header("ddebug.log"), cat_("/tmp/ddebug.log") || cat_("$::prefix/root/drakx/ddebug.log"),
header("install.log"), cat_("$::prefix/root/drakx/install.log"),
+ header("draklive-install.log"), cat_("/tmp/draklive-install.log") || cat_("$::prefix/root/drakx/draklive-install.log"),
header("fstab"), cat_("$::prefix/etc/fstab"),
header("modprobe.conf"), cat_("$::prefix/etc/modprobe.conf"),
header("lilo.conf"), cat_("$::prefix/etc/lilo.conf"),
header("grub: menu.lst"), join('', map { s/^(\s*password)\s+(.*)/$1 xxx/; $_ } cat_("$::prefix/boot/grub/menu.lst")),
header("grub: install.sh"), cat_("$::prefix/boot/grub/install.sh"),
header("grub: device.map"), cat_("$::prefix/boot/grub/device.map"),
+ header("grub2: grub"), cat_("$::prefix/etc/default/grub"),
+ header("grub2: grub.cfg"), join('', map { s/^(\s*password_pbkdf2)\s+grub.pbkdf2.*/$1 xxx/; $_ } cat_("$::prefix/boot/grub2/grub.cfg")),
+ header("grub2: install.sh"), cat_("$::prefix/boot/grub2/install.sh"),
header("xorg.conf"), cat_("$::prefix/etc/X11/xorg.conf"),
header("urpmi.cfg"), cat_("$::prefix/etc/urpmi/urpmi.cfg"),
header("modprobe.preload"), cat_("$::prefix/etc/modprobe.preload"),
header("sysconfig/i18n"), cat_("$::prefix/etc/sysconfig/i18n"),
+ header("locale.conf"), cat_("$::prefix/etc/locale.conf"),
header("/proc/iomem"), cat_("/proc/iomem"),
header("/proc/ioport"), cat_("/proc/ioports"),
map_index { even($::i) ? header($_) : $_ } @other;
@@ -1155,10 +1621,10 @@ Allowing this will permit users to simply click on \"Share\" in konqueror and na
if ($r ne $l[0]) {
require services;
my %types = (
- nfs => [ 'nfs-utils', 'nfs',
+ nfs => [ 'nfs-utils', 'nfs-server',
N("NFS: the traditional Unix file sharing system, with less support on Mac and Windows.")
],
- smb => [ 'samba-server', 'smb',
+ smb => [ 'samba', 'smb',
N("SMB: a file sharing system used by Windows, Mac OS X and many modern Linux systems.")
],
);
@@ -1174,7 +1640,7 @@ Allowing this will permit users to simply click on \"Share\" in konqueror and na
}
foreach (keys %types) {
my ($pkg, $service, $_descr) = @{$types{$_}};
- my $file = "/etc/init.d/$service";
+ my $file = "/usr/lib/systemd/system/${service}.service";
if ($l{$_}) {
$in->do_pkgs->ensure_is_installed($pkg, $file) or return;
services::start($service);
@@ -1184,6 +1650,9 @@ Allowing this will permit users to simply click on \"Share\" in konqueror and na
services::do_not_start_service_on_boot($service);
}
}
+ if ($in->do_pkgs->is_installed('nautilus')) {
+ $in->do_pkgs->ensure_is_installed('nautilus-filesharing') or return;
+ }
}
$conf{RESTRICT} = bool2yesno($restrict);
setVarsInSh($file, \%conf);
@@ -1203,13 +1672,18 @@ You can use userdrake to add a user to this group.")
}
sub monitor_full_edid() {
- return if $::noauto;
+ return if $::noauto || $::local_install;
- devices::make('zero');
my ($vbe, $edid);
- run_program::raw({ timeout => 20 },
- 'monitor-edid', '>', \$edid, '2>', \$vbe,
- '-v', '--perl', if_($::isStandalone, '--try-in-console'));
+ {
+ # prevent warnings in install's logs:
+ local $ENV{LC_ALL} = 'C';
+ # don't use --try-in-console as it can cause a GNOME session to die (mga#28124)
+ # with most DMs the DE is running in vt1, so it does nothing anyway
+ run_program::raw({ timeout => 20 },
+ 'monitor-edid', '>', \$edid, '2>', \$vbe,
+ '-v', '--perl');
+ }
if ($::isInstall) {
foreach (['edid', \$edid], ['vbe', \$vbe]) {
my ($name, $val) = @$_;
@@ -1228,8 +1702,9 @@ sub monitor_full_edid() {
($edid, $vbe);
}
+# FIXME: is buggy regarding multiple sessions
sub running_window_manager() {
- my @window_managers = qw(kwin gnome-session icewm wmaker afterstep fvwm fvwm2 fvwm95 mwm twm enlightenment xfce blackbox sawfish olvwm fluxbox compiz);
+ my @window_managers = qw(drakx-matchbox-window-manager ksmserver kwin kwin_x11 kwin_wayland gnome-session icewm wmaker afterstep fvwm fvwm2 fvwm95 mwm twm enlightenment xfce4-session blackbox sawfish olvwm fluxbox compiz lxsession);
foreach (@window_managers) {
my @pids = fuzzy_pidofs(qr/\b$_\b/) or next;
@@ -1238,22 +1713,32 @@ sub running_window_manager() {
undef;
}
+sub set_wm_hints_if_needed {
+ my ($o_in) = @_;
+ my $wm = any::running_window_manager();
+ $o_in->{no_Window_Manager} = !$wm if $o_in;
+ $::set_dialog_hint = $wm eq 'drakx-matchbox-window-manager';
+}
+
sub ask_window_manager_to_logout {
my ($wm) = @_;
my %h = (
+ 'ksmserver' => '/usr/lib/qt4/bin/qdbus org.kde.ksmserver /KSMServer logout 1 0 0',
'kwin' => "dcop kdesktop default logout",
'gnome-session' => "gnome-session-save --kill",
'icewm' => "killall -QUIT icewm",
+ 'xfce4-session' => "xfce4-session-logout --logout",
+ 'lxsession' => "lxde-logout",
);
my $cmd = $h{$wm} or return;
- if ($wm eq 'gnome-session') {
- #- NB: consolehelper does not destroy $HOME whereas kdesu does
- #- for gnome, we use consolehelper, so below works
- $ENV{ICEAUTHORITY} ||= "$ENV{HOME}/.ICEauthority";
- } elsif ($wm eq 'kwin' && $> == 0) {
- #- we can not use dcop when we are root
- $cmd = "su $ENV{USER} -c '$cmd'";
+ if (member($wm, 'ksmserver', 'kwin', 'gnome-session') && $> == 0) {
+ #- we cannot use dcop when we are root
+ if (my $user = $ENV{USERHELPER_UID} && getpwuid($ENV{USERHELPER_UID})) {
+ $cmd = "su $user -c '$cmd'";
+ } else {
+ log::l('missing or unknown $USERHELPER_UID');
+ }
}
system($cmd);
1;
@@ -1286,13 +1771,14 @@ sub ask_for_X_restart {
my ($wm, $pid) = running_window_manager();
if (!$wm) {
- $in->ask_warn('', N("Please log out and then use Ctrl-Alt-BackSpace"));
- return;
+ # no window manager, ctrl-alt-del may not be supported, but we still have to restart X..
+ $in->ask_okcancel('', N("You need to logout and back in again for changes to take effect. Press OK to logout now."), 1) or return;
+ system('killall', 'Xorg');
+ }
+ else {
+ $in->ask_okcancel('', N("You need to log out and back in again for changes to take effect"), 1) or return;
+ ask_window_manager_to_logout_then_do($wm, $pid, 'killall Xorg');
}
-
- $in->ask_okcancel('', N("You need to log out and back in again for changes to take effect"), 1) or return;
-
- ask_window_manager_to_logout_then_do($wm, $pid, 'killall X');
}
sub alloc_raw_device {
@@ -1322,10 +1808,20 @@ sub config_mtools {
}
sub configure_timezone {
- my ($in, $timezone, $ask_gmt) = @_;
+ my ($in, $timezone, $ask_gmt, $o_hide_ntp) = @_;
require timezone;
- $timezone->{timezone} = $in->ask_from_treelist(N("Timezone"), N("Which is your timezone?"), '/', [ timezone::getTimeZones() ], $timezone->{timezone}) or return;
+ my $selected_timezone = $in->ask_from_treelist(N("Timezone"), N("Which is your timezone?"), '/', [ timezone::getTimeZones() ], $timezone->{timezone}) or return;
+ $timezone->{timezone} = $selected_timezone;
+
+ configure_time_more($in, $timezone, $o_hide_ntp)
+ or goto &configure_timezone if $ask_gmt || to_bool($timezone->{ntp});
+
+ 1;
+}
+
+sub configure_time_more {
+ my ($in, $timezone, $o_hide_ntp) = @_;
my $ntp = to_bool($timezone->{ntp});
my $servers = timezone::ntp_servers();
@@ -1334,9 +1830,10 @@ sub configure_timezone {
require POSIX;
use POSIX qw(strftime);
my $time_format = "%H:%M:%S";
- local $ENV{TZ} = $timezone->{timezone};
+ my $tz_prefix = timezone::get_timezone_prefix();
+ local $ENV{TZ} = ':' . $tz_prefix . '/' . $timezone->{timezone};
- $in->ask_from_({ interactive_help_id => 'configureTimezoneGMT',
+ $in->ask_from_({ interactive_help_id => 'configureTimezoneUTC',
title => N("Date, Clock & Time Zone Settings"),
}, [
{ label => N("Date, Clock & Time Zone Settings"), title => 1 },
@@ -1347,16 +1844,182 @@ sub configure_timezone {
N("%s (hardware clock set to UTC)", POSIX::strftime($time_format, localtime())) :
N("%s (hardware clock set to local time)", POSIX::strftime($time_format, gmtime()));
} },
- { label => N("NTP Server"), title => 1 },
- { text => N("Automatic time synchronization (using NTP)"), val => \$ntp, type => 'bool' },
- { val => \$timezone->{ntp}, disabled => sub { !$ntp },
+ { label => N("NTP Server"), title => 1, advanced => $o_hide_ntp },
+ { text => N("Automatic time synchronization (using NTP)"), val => \$ntp, type => 'bool',
+ advanced => $o_hide_ntp },
+ { val => \$timezone->{ntp}, disabled => sub { !$ntp }, advanced => $o_hide_ntp,
type => "list", separator => '|',
list => [ keys %$servers ], format => sub { $servers->{$_[0]} } },
- ]) or goto &configure_timezone if $ask_gmt || $ntp;
+ ]) or return;
$timezone->{ntp} = '' if !$ntp;
1;
}
+sub disable_x_screensaver() {
+ run_program::run("xset", "s", "off");
+ run_program::run("xset", "-dpms");
+}
+
+sub enable_x_screensaver() {
+ run_program::run("xset", "+dpms");
+ run_program::run("xset", "s", "on");
+ run_program::run("xset", "s", "reset");
+}
+
+=item ask_url($in, $o_url)
+
+Asks URL of the mirror
+
+=cut
+
+sub ask_url {
+ my ($in, $o_url) = @_;
+
+ my $url = $o_url;
+ $in->ask_from_({ messages => N("URL of the mirror?"), focus_first => 1 }, [
+ { val => \$url,
+ validate => sub {
+ if ($url =~ m!^(https?|ftp)://!) {
+ 1;
+ } else {
+ $in->ask_warn('', N("URL must start with ftp:// or http:// or https://"));
+ 0;
+ }
+ } } ]) && $url;
+}
+
+=item ask_mirror($in, $type, $o_url)
+
+Retrieves list of mirrors and offers to pick one
+
+=cut
+
+sub ask_mirror {
+ my ($in, $type, $o_url) = @_;
+
+ require mirror;
+
+ my $mirrors = eval {
+ my $_w = $in->wait_message('', N("Contacting %s web site to get the list of available mirrors...", N("Mageia")));
+ mirror::list($in->{product_id}, $type);
+ };
+ my $err = $@;
+ if (!$mirrors) {
+ $in->ask_warn('', N("Failed contacting %s web site to get the list of available mirrors", N("Mageia")) . "\n$err");
+ return ask_url($in, $o_url);
+ }
+
+ my $give_url = { country => '-', host => 'URL' };
+
+ my $mirror;
+ if ($o_url) {
+ $mirror = (find { $_->{url} eq $o_url } @$mirrors) || $give_url;
+ } else {
+ #- use current time zone to select best mirror
+ require urpm::mirrors;
+ my $urpm = $in->{packages} || { log => \&log::l };
+ urpm::mirrors::add_proximity_and_sort($urpm, $mirrors);
+ $mirror = @$mirrors[0] || $give_url;
+ }
+ $in->ask_from_({ messages => N("Choose a mirror from which to get the packages"),
+ cancel => N("Cancel"),
+ }, [ { separator => '|',
+ format => \&mirror::mirror2text,
+ list => [ @$mirrors, $give_url ],
+ val => \$mirror,
+ },
+ ]) or return;
+
+ my $url;
+ if ($mirror eq $give_url) {
+ $url = ask_url($in, $o_url) or goto &ask_mirror;
+ } else {
+ $url = $mirror->{url};
+ }
+ $url =~ s!/main/?$!!;
+ log::l("chosen mirror: $url");
+ $url;
+}
+
+=item ask_mirror_and_downloader($in, $options, $o_downloader_only)
+
+Asks whether to automatically select the mirror (using $MIRRORLIST) or use
+one specified by the user. Also asks whether to use the default downloader
+or to use one specified by the user.
+
+Default values are supplied and user-entered values are returned in $options
+which should be a reference to a hash containing the following fields:
+
+=over 4
+
+=item * B<mirror_url>: the currently selected mirror URL ('$MIRRORLIST' for automatic selection)
+
+=item * B<downloader>: the currently selected downloader (undefined when using the default downloader)
+
+=back
+
+If $o_downloader_only is true, the mirror selection choice is not displayed.
+
+=cut
+
+sub ask_mirror_and_downloader {
+ my ($in, $options, $o_downloader_only) = @_;
+
+ my $mirror_url = $options->{mirror_url} || '';
+ my $downloader = $options->{downloader} || 'default';
+
+ my $mirror_choice = $mirror_url eq '$MIRRORLIST' ? 'automatic' : 'specific';
+
+ my $enable_aria2 = $::isInstall || $in->do_pkgs->is_installed('aria2', '/usr/bin/aria2c');
+ my $enable_curl = $::isInstall || $in->do_pkgs->is_installed('curl', '/usr/bin/curl');
+ my $enable_wget = $::isInstall || $in->do_pkgs->is_installed('wget', '/usr/bin/wget');
+
+ $in->ask_from_(
+ {
+ },
+ [
+ if_(!$o_downloader_only,
+ { label => N("Mirror choice"), val => \$mirror_choice,
+ type => 'combo', list => [ 'automatic', 'specific' ],
+ format => sub {
+ my ($choice) = @_;
+ +{
+ 'automatic' => N("Automatic"),
+ 'specific' => N("Specific"),
+ }->{$choice};
+ },
+ },
+ ),
+ { label => N("Downloader"), val => \$downloader,
+ type => 'combo', list => [ 'default', 'aria2', 'curl', 'wget' ],
+ format => sub {
+ my ($choice) = @_;
+ +{
+ 'default' => N("Default"),
+ if_($enable_aria2, 'aria2' => 'aria2'),
+ if_($enable_curl, 'curl' => 'curl'),
+ if_($enable_wget, 'wget' => 'wget'),
+ }->{$choice};
+ },
+ },
+ ]
+ ) or return;
+
+ if ($mirror_choice eq 'automatic') {
+ $mirror_url = '$MIRRORLIST';
+ } elsif ($mirror_url eq '$MIRRORLIST') {
+ $mirror_url = undef;
+ }
+ if ($downloader eq 'default') {
+ $downloader = undef;
+ }
+
+ $options->{mirror_url} = $mirror_url;
+ $options->{downloader} = $downloader;
+
+ 1;
+}
+
1;
diff --git a/perl-install/authentication.pm b/perl-install/authentication.pm
index 53b965c5d..55491edfb 100644
--- a/perl-install/authentication.pm
+++ b/perl-install/authentication.pm
@@ -1,21 +1,20 @@
-package authentication; # $Id$
+package authentication;
use common;
-my $lib = arch() =~ /x86_64/ ? 'lib64' : 'lib';
+my $authentication;
sub kinds {
my $no_para = @_ == 0;
- my ($do_pkgs) = @_;
+ my ($do_pkgs, $_meta_class) = @_;
my $allow_SmartCard = $no_para || $do_pkgs->is_available('castella-pam');
- my $allow_AD = 1;
(
- 'local',
'LDAP',
+ 'KRB5',
+ 'winbind',
'NIS',
if_($allow_SmartCard, 'SmartCard'),
- 'winbind',
- if_($allow_AD, 'AD', 'SMBKRB'),
+ 'local',
);
}
@@ -27,8 +26,7 @@ sub kind2name {
NIS => N("NIS"),
SmartCard => N("Smart Card"),
winbind => N("Windows Domain"),
- AD => N("Active Directory with SFU"),
- SMBKRB => N("Active Directory with Winbind") }}{$kind};
+ KRB5 => N("Kerberos 5") }}{$kind};
}
my %kind2pam_kind = (
@@ -36,9 +34,8 @@ my %kind2pam_kind = (
SmartCard => ['castella'],
LDAP => ['ldap'],
NIS => [],
- AD => ['krb5'],
+ KRB5 => ['krb5'],
winbind => ['winbind'],
- SMBKRB => ['winbind'],
);
my %kind2nsswitch = (
@@ -46,34 +43,39 @@ my %kind2nsswitch = (
SmartCard => [],
LDAP => ['ldap'],
NIS => ['nis'],
- AD => ['ldap'],
+ KRB5 => ['ldap'],
winbind => ['winbind'],
- SMBKRB => ['winbind'],
);
+my $lib = get_libdir();
+
my %kind2packages = (
local => [],
SmartCard => [ 'castella-pam' ],
- LDAP => [ 'openldap-clients', 'nss_ldap', 'pam_ldap', 'autofs' ],
- AD => [ 'nss_ldap', 'pam_krb5', $lib . 'sasl2-plug-gssapi' ],
+ LDAP => [ 'openldap-clients', 'nss-pam-ldapd', 'autofs', 'nss_updatedb' ],
+ KRB5 => [ 'nss-pam-ldapd', 'pam_krb5', "${lib}sasl2-plug-gssapi", 'nss_updatedb' ],
NIS => [ 'ypbind', 'autofs' ],
- winbind => [ 'samba-winbind' ],
- SMBKRB => [ 'samba-winbind', 'pam_krb5', 'samba-server', 'samba-client' ],
+ winbind => [ 'samba-winbind', 'nss-pam-ldapd', 'pam_krb5', "${lib}sasl2-plug-gssapi" ],
);
-sub kind2description {
+sub kind2description_raw {
my (@kinds) = @_;
my %kind2description = (
- local => [ N("Local file:"), N("Use information stored in local files for all authentication"), ],
+ local => [ N("Local file:"), N("Use local for all authentication and information user tell in local file"), ],
LDAP => [ N("LDAP:"), N("Tells your computer to use LDAP for some or all authentication. LDAP consolidates certain types of information within your organization."), ],
NIS => [ N("NIS:"), N("Allows you to run a group of computers in the same Network Information Service domain with a common password and group file."), ],
winbind => [ N("Windows Domain:"), N("Winbind allows the system to retrieve information and authenticate users in a Windows domain."), ],
- AD => [ N("Active Directory with SFU:"), N("With Kerberos and Ldap for authentication in Active Directory Server "), ],
- SMBKRB => [ N("Active Directory with Winbind:"), N("Winbind allows the system to authenticate users in a Windows Active Directory Server.") ],
+ KRB5 => [ N("Kerberos 5 :"), N("With Kerberos and LDAP for authentication in Active Directory Server "), ],
);
- join('', map { $_ ? qq($_->[0]\n$_->[1]\n\n) : '' } map { $kind2description{$_} } @kinds);
+ join('', map { $_ ? qq($_->[0]\n$_->[1]) : '' } map { $kind2description{$_} } @kinds);
+}
+
+sub kind2description {
+ my (@kinds) = @_;
+ join('', map { $_ ? qq($_\n\n) : '' } map { kind2description_raw($_) } @kinds);
}
+
sub to_kind {
my ($authentication) = @_;
(find { exists $authentication->{$_} } kinds()) || 'local';
@@ -91,98 +93,147 @@ sub ask_parameters {
foreach (kinds()) {
delete $authentication->{$_} if $_ ne $kind;
}
+ # do not enable ccreds unless required
+ undef $authentication->{ccreds};
if ($kind eq 'LDAP') {
$authentication->{LDAPDOMAIN} ||= domain_to_ldap_domain($net->{resolv}{DOMAINNAME});
- $in->ask_from('',
- N("Authentication LDAP"),
- [ { label => N("LDAP Base dn"), val => \$authentication->{LDAPDOMAIN} },
- { label => N("LDAP Server"), val => \$authentication->{LDAP_server} },
+ $authentication->{ccreds} = 1;
+
+ # this package must be installed for 'Fetch DN' button to actually work
+ $in->do_pkgs->ensure_are_installed([ 'openldap-clients' ], 1) or return;
+
+ $in->ask_from('', N(" "),
+ [ { label => N("Welcome to the Authentication Wizard"), title => 1 },
+ {},
+ { label => N("You have selected LDAP authentication. Please review the configuration options below "), },
+ {},
+ { label => N("LDAP Server"), val => \$authentication->{LDAP_server} },
+ { label => N("Base dn"), val => \$authentication->{LDAPDOMAIN} },
+ { val => N("Fetch base Dn "), type => 'button' , clicked_may_quit => sub { $authentication->{LDAPDOMAIN} = fetch_dn($authentication->{LDAP_server}); 0 } },
+ {},
+ { text => N("Use encrypt connection with TLS "), val => \$authentication->{cafile}, type => 'bool' },
+ { val => N("Download CA Certificate "), type => 'button' , disabled => sub { !$authentication->{cafile} }, clicked_may_quit => sub { $authentication->{file} = add_cafile(); 0 } },
+
+ { text => N("Use Disconnect mode "), val => \$authentication->{ccreds}, type => 'bool' },
+ { text => N("Use anonymous BIND "), val => \$authentication->{anonymous}, type => 'bool' , advanced => 1 },
+ { text => N(" "), advanced => 1 },
+ { label => N("Bind DN "), val => \$authentication->{LDAP_binddn}, disabled => sub { !$authentication->{anonymous} }, advanced => 1 },
+ { label => N("Bind Password "), val => \$authentication->{LDAP_bindpwd}, disabled => sub { !$authentication->{anonymous} }, advanced => 1 },
+ { text => N(" "), advanced => 1 },
+ { text => N("Advanced path for group "), val => \$authentication->{nssgrp}, type => 'bool' , advanced => 1 },
+ { text => N(" "), advanced => 1 },
+ { label => N("Password base"), val => \$authentication->{nss_pwd}, disabled => sub { !$authentication->{nssgrp} }, advanced => 1 },
+ { label => N("Group base"), val => \$authentication->{nss_grp}, disabled => sub { !$authentication->{nssgrp} }, advanced => 1 },
+ { label => N("Shadow base"), val => \$authentication->{nss_shadow}, disabled => sub { !$authentication->{nssgrp} }, advanced => 1 },
+ { text => N(" "), advanced => 1 },
]) or return;
- } elsif ($kind eq 'AD') {
+ } elsif ($kind eq 'KRB5') {
$authentication->{AD_domain} ||= $net->{resolv}{DOMAINNAME};
- $authentication->{AD_users_db} ||= 'cn=users,' . domain_to_ldap_domain($authentication->{AD_domain});
-
$in->do_pkgs->ensure_are_installed([ 'perl-Net-DNS' ], 1) or return;
-
- my @srvs = query_srv_names($authentication->{AD_domain});
+ my @srvs = query_srv_names($authentication->{AD_domain}); #FIXME: update this list if the REALM has changed
$authentication->{AD_server} ||= $srvs[0] if @srvs;
-
- my %sub_kinds = (
- simple => N("simple"),
- tls => N("TLS"),
- ssl => N("SSL"),
- kerberos => N("security layout (SASL/Kerberos)"),
- );
-
my $AD_user = $authentication->{AD_user} =~ /(.*)\@\Q$authentication->{AD_domain}\E$/ ? $1 : $authentication->{AD_user};
- my $anonymous = $AD_user;
-
- $in->ask_from('',
- N("Authentication Active Directory"),
- [ { label => N("Domain"), val => \$authentication->{AD_domain} },
- #{ label => N("Server"), val => \$authentication->{AD_server} },
- { label => N("Server"), type => 'combo', val => \$authentication->{AD_server}, list => \@srvs , not_edit => 0 },
- { label => N("LDAP users database"), val => \$authentication->{AD_users_db} },
- { label => N("Use Anonymous BIND "), val => \$anonymous, type => 'bool' },
- { label => N("LDAP user allowed to browse the Active Directory"), val => \$AD_user, disabled => sub { $anonymous } },
- { label => N("Password for user"), val => \$authentication->{AD_password}, hidden => 1, disabled => sub { $anonymous } },
- #{ label => N("Encryption"), val => \$authentication->{sub_kind}, list => [ map { $_->[0] } group_by2(@sub_kinds) ], format => sub { $sub_kinds{$_[0]} } },
+ $authentication->{ccreds} = 1;
+
+ $in->ask_from('', N(" "),
+ [ { label => N("Welcome to the Authentication Wizard"), title => 1 },
+ {},
+ { label => N("You have selected Kerberos 5 authentication. Please review the configuration options below "), },
+ {},
+ { label => N("Realm "), val => \$authentication->{AD_domain} },
+ {},
+ { label => N("KDCs Servers"), title => 1, val => \$authentication->{AD_server} , list => \@srvs , not_edit => 0, title => 1 },
+ {},
+ { text => N("Use DNS to locate KDC for the realm"), val => \$authentication->{KRB_host_lookup}, type => 'bool' },
+ { text => N("Use DNS to locate realms"), val => \$authentication->{KRB_dns_lookup}, type => 'bool' },
+ { text => N("Use Disconnect mode "), val => \$authentication->{ccreds}, type => 'bool' },
]) or return;
+
+my %level = (
+ 1 => N("Use local file for users information"),
+ 2 => N("Use LDAP for users information"),
+ );
+
+ $in->ask_from('', N(" "),
+ [ { label => N(" "), title => 1 },
+ {},
+ { label => N("You have selected Kerberos 5 for authentication, now you must choose the type of users information "), },
+ {},
+ { label => "" , val => \$authentication->{nsskrb}, type => 'list', list => [ keys %level ], format => sub { $level{$_[0]} } },
+ {},
+ { label => N("LDAP Server"), val => \$authentication->{LDAP_server}, disabled => sub { $authentication->{nsskrb} eq "1" } },
+ { label => N("Base dn"), val => \$authentication->{LDAPDOMAIN} , disabled => sub { $authentication->{nsskrb} eq "1" } },
+ { val => N("Fetch base DN "), type => 'button' , clicked_may_quit => sub { $authentication->{LDAPDOMAIN} = fetch_dn($authentication->{LDAP_server}); 0 }, disabled => sub { $authentication->{nsskrb} eq "1" } },
+ {},
+ { text => N("Use encrypt connection with TLS "), val => \$authentication->{cafile}, type => 'bool',, disabled => sub { $authentication->{nsskrb} eq "1" } },
+ { val => N("Download CA Certificate "), type => 'button' , disabled => sub { !$authentication->{cafile} }, clicked_may_quit => sub { $authentication->{file} = add_cafile(); 0 } },
+ { text => N("Use anonymous BIND "), val => \$authentication->{anonymous}, type => 'bool', disabled => sub { $authentication->{nsskrb} eq "1" } },
+ { label => N("Bind DN "), val => \$authentication->{LDAP_binddn}, disabled => sub { !$authentication->{anonymous} } },
+ { label => N("Bind Password "), val => \$authentication->{LDAP_bindpwd}, disabled => sub { !$authentication->{anonymous} } },
+ {},
+ ]) or return;
+
$authentication->{AD_user} = !$AD_user || $authentication->{sub_kind} eq 'anonymous' ? '' :
$AD_user =~ /@/ ? $AD_user : "$AD_user\@$authentication->{AD_domain}";
$authentication->{AD_password} = '' if !$authentication->{AD_user};
- } elsif ($kind eq 'NIS') {
+ } elsif ($kind eq 'NIS') {
$authentication->{NIS_server} ||= 'broadcast';
$net->{network}{NISDOMAIN} ||= $net->{resolv}{DOMAINNAME};
- $in->ask_from('',
- N("Authentication NIS"),
- [ { label => N("NIS Domain"), val => \$net->{network}{NISDOMAIN} },
- { label => N("NIS Server"), val => \$authentication->{NIS_server}, list => ["broadcast"], not_edit => 0 },
+ $in->ask_from('', N(" "),
+ [ { label => N("Welcome to the Authentication Wizard"), title => 1 },
+ {},
+ { label => N("You have selected NIS authentication. Please review the configuration options below "), },
+ {},
+ { label => N("NIS Domain"), val => \$net->{network}{NISDOMAIN} },
+ { label => N("NIS Server"), val => \$authentication->{NIS_server}, list => ["broadcast"], not_edit => 0 },
+ {},
]) or return;
- } elsif ($kind eq 'winbind' || $kind eq 'SMBKRB') {
+ } elsif ($kind eq 'winbind') {
#- maybe we should browse the network like diskdrake --smb and get the 'doze server names in a list
#- but networking is not setup yet necessarily
- $in->ask_warn('', N("For this to work for a W2K PDC, you will probably need to have the admin run: C:\\>net localgroup \"Pre-Windows 2000 Compatible Access\" everyone /add and reboot the server.
-You will also need the username/password of a Domain Admin to join the machine to the Windows(TM) domain.
-If networking is not yet enabled, Drakx will attempt to join the domain after the network setup step.
-Should this setup fail for some reason and domain authentication is not working, run 'smbpasswd -j DOMAIN -U USER%%PASSWORD' using your Windows(tm) Domain, and Admin Username/Password, after system boot.
-The command 'wbinfo -t' will test whether your authentication secrets are good."))
- if $kind eq 'winbind';
-
- $authentication->{AD_domain} ||= $net->{resolv}{DOMAINNAME} if $kind eq 'SMBKRB';
- $authentication->{AD_users_idmap} ||= 'ou=idmap,' . domain_to_ldap_domain($authentication->{AD_domain}) if $kind eq 'SMBKRB';
- $authentication->{WINDOMAIN} ||= $net->{resolv}{DOMAINNAME};
+ #
+ my @sec_domain = (
+ "Windows Active Directory Domain",
+ "Windows NT4 Domain",
+);
- $in->ask_from('',
- $kind eq 'SMBKRB' ? N("Authentication Active Directory") : N("Authentication Windows Domain"),
- [ if_($kind eq 'SMBKRB',
- { label => N("Active Directory Realm "), val => \$authentication->{AD_domain} }
- ),
- { label => N("Windows Domain"), val => \$authentication->{WINDOMAIN} },
- { label => N("Domain Admin User Name"), val => \$authentication->{winuser} },
- { label => N("Domain Admin Password"), val => \$authentication->{winpass}, hidden => 1 },
- #{ label => N("Use Idmap for store UID/SID "), val => \$anonymous, type => 'bool' },
- #{ label => N("Default Idmap "), val => \$authentication->{AD_users_idmap}, disabled => sub { $anonymous } },
+
+ $authentication->{DNS_domain} ||= $net->{resolv}{DOMAINNAME};
+ $authentication->{WINDOMAIN} ||= $net->{resolv}{DOMAINNAME};
+ $in->do_pkgs->ensure_are_installed([ 'samba-client' ], 1) or return;
+ my @domains=list_domains();
+
+ $in->ask_from('', N(" "),
+ [ { label => N("Welcome to the Authentication Wizard"), title => 1 },
+ {},
+ { label => N("You have selected Windows Domain authentication. Please review the configuration options below "), },
+ {},
+ { label => N("Windows Domain"), val => \$authentication->{WINDOMAIN}, list => \@domains, not_edit => 1 },
+ {},
+ { label => N("Domain Model "), val => \$authentication->{model}, list => \@sec_domain , not_edit => 1 },
+ {},
+ { label => N("Active Directory Realm "), val => \$authentication->{AD_domain} , disabled => sub { $authentication->{model} eq "Windows NT4 Domain" } },
+ { label => N("DNS Domain"), val => \$authentication->{DNS_domain} , disabled => sub { $authentication->{model} eq "Windows NT4 Domain" } },
+ { label => N("DC Server"), val => \$authentication->{AD_server} , disabled => sub { $authentication->{model} eq "Windows NT4 Domain" } },
+ {},
]) or return;
}
$authentication->{$kind} ||= 1;
1;
}
-
sub ask_root_password_and_authentication {
- my ($in, $net, $superuser, $authentication, $_meta_class, $security) = @_;
+ my ($in, $net, $superuser, $authentication, $meta_class, $security) = @_;
my $kind = to_kind($authentication);
- my @kinds = kinds($in->do_pkgs);
+ my @kinds = kinds($in->do_pkgs, $meta_class);
$in->ask_from_({
title => N("Authentication"),
messages => N("Set administrator (root) password"),
- icon => 'banner-pw',
advanced_label => N("Authentication method"),
advanced_messages => kind2description(@kinds),
interactive_help_id => "setRootPassword",
@@ -218,8 +269,12 @@ sub check_given_password {
sub get() {
my $system_auth = cat_("/etc/pam.d/system-auth");
- my $authentication = {
- md5 => $system_auth =~ /md5/, shadow => $system_auth =~ /shadow/,
+ my $authentication = {
+ blowfish => to_bool($system_auth =~ /\$2a\$/),
+ md5 => to_bool($system_auth =~ /md5/),
+ sha256 => to_bool($system_auth =~ /sha256/),
+ sha512 => to_bool($system_auth =~ /sha512/),
+ shadow => to_bool($system_auth =~ /shadow/),
};
my @pam_kinds = get_pam_authentication_kinds();
@@ -236,8 +291,10 @@ sub get() {
}
sub install_needed_packages {
- my ($do_pkgs, $kind) = @_;
+ my ($do_pkgs, $kind, $ccreds) = @_;
if (my $pkgs = $kind2packages{$kind}) {
+ # install ccreds if required
+ $ccreds and push(@$pkgs, 'pam_ccreds');
#- automatic during install
$do_pkgs->ensure_are_installed($pkgs, $::isInstall) or return;
} else {
@@ -249,13 +306,17 @@ sub install_needed_packages {
sub set {
my ($in, $net, $authentication, $o_when_network_is_up) = @_;
- install_needed_packages($in->do_pkgs, to_kind($authentication)) or return;
+ install_needed_packages($in->do_pkgs, to_kind($authentication), $authentication->{ccreds}) or return;
set_raw($net, $authentication, $o_when_network_is_up);
+
+ require services;
+ services::set_status('network-auth', to_kind($authentication) ne 'local', 'dont_apply');
}
sub set_raw {
my ($net, $authentication, $o_when_network_is_up) = @_;
+ my $conf_file = "$::prefix/etc/sysconfig/drakauth";
my $when_network_is_up = $o_when_network_is_up || sub { my ($f) = @_; $f->() };
enable_shadow() if $authentication->{shadow};
@@ -266,91 +327,52 @@ sub set_raw {
my $pam_modules = $kind2pam_kind{$kind} or log::l("kind2pam_kind does not know $kind");
$pam_modules ||= [];
- sshd_config_UsePAM(@$pam_modules > 0);
- set_pam_authentication(@$pam_modules);
+ set_pam_authentication($pam_modules, $authentication->{ccreds});
my $nsswitch = $kind2nsswitch{$kind} or log::l("kind2nsswitch does not know $kind");
$nsswitch ||= [];
- set_nsswitch_priority(@$nsswitch);
+ set_nsswitch_priority($nsswitch, $authentication->{ccreds});
if ($kind eq 'local') {
+
+ output($conf_file, <<EOF);
+auth=Local File
+server=none
+realm=none
+EOF
+
+
+
} elsif ($kind eq 'SmartCard') {
} elsif ($kind eq 'LDAP') {
- my $domain = $authentication->{LDAPDOMAIN} || do {
- my $s = run_program::rooted_get_stdout($::prefix, 'ldapsearch', '-x', '-h', $authentication->{LDAP_server}, '-b', '', '-s', 'base', '+');
- first($s =~ /namingContexts: (.+)/);
- } or log::l("no ldap domain found on server $authentication->{LDAP_server}"), return;
- update_ldap_conf(
- host => $authentication->{LDAP_server},
- base => $domain,
- nss_base_shadow => $domain . "?sub",
- nss_base_passwd => $domain . "?sub",
- nss_base_group => $domain . "?sub",
- );
- } elsif ($kind eq 'AD') {
- my $port = "389";
-
- my $ssl = {
- anonymous => 'off',
- simple => 'off',
- tls => 'start_tls',
- ssl => 'on',
- kerberos => 'off',
- }->{$authentication->{sub_kind}};
-
- if ($ssl eq 'on') {
- $port = '636';
- }
-
-
-
- update_ldap_conf(
- host => $authentication->{AD_server},
- base => domain_to_ldap_domain($authentication->{AD_domain}),
- nss_base_shadow => "$authentication->{AD_users_db}?sub",
- nss_base_passwd => "$authentication->{AD_users_db}?sub",
- nss_base_group => "$authentication->{AD_users_db}?sub",
-
- ssl => $ssl,
- sasl_mech => $authentication->{sub_kind} eq 'kerberos' ? 'GSSAPI' : '',
- port => $port,
-
- binddn => $authentication->{AD_user},
- bindpw => $authentication->{AD_password},
-
- (map_each { "nss_map_objectclass_$::a" => $::b }
- posixAccount => 'User',
- shadowAccount => 'User',
- posixGroup => 'Group',
- ),
-
-
- scope => 'sub',
- pam_login_attribute => 'sAMAccountName',
- pam_filter => 'objectclass=User',
- pam_password => 'ad',
-
-
- (map_each { "nss_map_attribute_$::a" => $::b }
- uid => 'sAMAccountName',
- uidNumber => 'msSFU30UidNumber',
- gidNumber => 'msSFU30GidNumber',
- cn => 'sAMAccountName',
- uniqueMember => 'member',
- userPassword => 'msSFU30Password',
- homeDirectory => 'msSFU30HomeDirectory',
- loginShell => 'msSFU30LoginShell',
- gecos => 'name',
- ),
- );
+ configure_nss_ldap($authentication);
+
+ output($conf_file, <<EOF);
+auth=LDAP Directory
+server=$authentication->{LDAP_server}
+realm=$authentication->{LDAPDOMAIN}
+EOF
+
+ if ($authentication->{ccreds}) {
+ run_program::rooted($::prefix, '/usr/sbin/nss_updatedb.cron'); # updates offline cache.
+ }
+
+ } elsif ($kind eq 'KRB5') {
configure_krb5_for_AD($authentication);
+ configure_nss_ldap($authentication);
+
+ output($conf_file, <<EOF);
+auth=Kerberos 5
+server=$authentication->{AD_server}
+realm=$authentication->{AD_domain}
+EOF
} elsif ($kind eq 'NIS') {
my $domain = $net->{network}{NISDOMAIN};
my $NIS_server = $authentication->{NIS_server};
- $domain || $NIS_server ne "broadcast" or die N("Can not use broadcast with no NIS domain");
+ $domain || $NIS_server ne "broadcast" or die N("Cannot use broadcast with no NIS domain");
my $t = $domain ?
($NIS_server eq 'broadcast' ?
"domain $domain broadcast" :
@@ -372,12 +394,20 @@ sub set_raw {
run_program::rooted($::prefix, 'nisdomainname', $domain);
run_program::rooted($::prefix, 'service', 'ypbind', 'restart');
});
-# } elsif ($kind eq 'winbind' || $kind eq 'AD' && $authentication->{subkind} eq 'winbind') {
+
+ output($conf_file, <<EOF);
+auth=$kind
+server=$NIS_server
+realm=$domain
+EOF
} elsif ($kind eq 'winbind') {
my $domain = uc $authentication->{WINDOMAIN};
-
+ ($authentication->{winuser}, $authentication->{winpass}) = auth();
+
+ if ($authentication->{model} eq "Windows NT4 Domain") {
+
require fs::remote::smb;
fs::remote::smb::write_smb_conf($domain);
run_program::rooted($::prefix, "chkconfig", "--level", "35", "winbind", "on");
@@ -389,13 +419,25 @@ sub set_raw {
$when_network_is_up->(sub {
run_program::raw({ root => $::prefix, sensitive_arguments => 1 },
- 'net', 'join', $domain, '-U', $authentication->{winuser} . '%' . $authentication->{winpass});
+ #'net', 'join', $domain, '-U', $authentication->{winuser} . '%' . $authentication->{winpass});
+ 'echo', '"', 'net', 'join', $domain, '-U', $authentication->{winuser} . '%' . $authentication->{winpass}, '"');
});
- } elsif ($kind eq 'SMBKRB') {
- $authentication->{AD_server} ||= 'ads.' . $authentication->{AD_domain};
+
+ output($conf_file, <<EOF);
+auth=Windows NT4 Domain
+server= none
+realm=$domain
+EOF
+
+
+
+
+ } else {
+ # FIXME: the DC isn't named ads.domain... try to do reserve lookup?
+ $authentication->{AD_server} ||= 'ads.' . $authentication->{AD_domain};
my $domain = uc $authentication->{WINDOMAIN};
my $realm = $authentication->{AD_domain};
-
+ ($authentication->{winuser}, $authentication->{winpass}) = auth();
configure_krb5_for_AD($authentication);
require fs::remote::smb;
@@ -404,19 +446,26 @@ sub set_raw {
mkdir_p("$::prefix/home/$domain");
run_program::rooted($::prefix, 'net', 'time', 'set', '-S', $authentication->{AD_server});
run_program::rooted($::prefix, 'service', 'smb', 'restart');
- run_program::rooted($::prefix, 'service', 'winbind', 'restart');
$when_network_is_up->(sub {
run_program::raw({ root => $::prefix, sensitive_arguments => 1 },
'net', 'ads', 'join', '-U', $authentication->{winuser} . '%' . $authentication->{winpass});
+ run_program::rooted($::prefix, 'service', 'winbind', 'restart');
});
- }
+
+ #FIXME: perhaps save the defaults values ?
+ output($conf_file, <<EOF);
+auth=Windows Active Directory Domain
+server= none
+realm=$realm
+EOF
+ } }
1;
}
sub pam_modules() {
- 'pam_ldap', 'pam_castella', 'pam_winbind', 'pam_krb5', 'pam_mkhomedir';
+ 'pam_ldap', 'pam_castella', 'pam_winbind', 'pam_krb5', 'pam_mkhomedir', 'pam_ccreds', 'pam_deny' , 'pam_permit';
}
sub pam_module_from_path {
$_[0] && $_[0] =~ m|(/lib/security/)?(pam_.*)\.so| && $2;
@@ -432,9 +481,10 @@ sub pam_format_line {
sub get_raw_pam_authentication() {
my %before_deny;
foreach (cat_("$::prefix/etc/pam.d/system-auth")) {
- my ($type, $control, $module, @para) = split;
+ my ($type, $_control, $other) = /(\S+)\s+(\[.*?\]|\S+)\s+(.*)/;
+ my ($module, @para) = split(' ', $other);
if ($module = pam_module_from_path($module)) {
- $before_deny{$type}{$module} = \@para if $control eq 'sufficient' && member($module, pam_modules());
+ $before_deny{$type}{$module} = \@para if member($module, pam_modules());
}
}
\%before_deny;
@@ -445,66 +495,106 @@ sub get_pam_authentication_kinds() {
map { s/pam_//; $_ } keys %{$before_deny->{auth}};
}
+sub sufficient {
+ my ($ccreds, $module, $type) = @_;
+
+ $ccreds && member($module, 'pam_tcb' , 'pam_winbind') ?
+ 'sufficient' :
+ $ccreds && member($module, 'pam_ldap', 'pam_krb5') && $type eq 'account' ?
+ '[authinfo_unavail=ignore default=done]' :
+ $ccreds && member($module, 'pam_ldap', 'pam_krb5') && $type eq 'password' ?
+ 'sufficient' :
+ $ccreds && member($module, 'pam_ldap', 'pam_krb5') ?
+ '[authinfo_unavail=ignore user_unknown=ignore success=1 default=2]' :
+ 'sufficient';
+}
+
+sub pam_sufficient_line {
+ my ($ccreds, $type, $module, @para) = @_;
+ my $control = sufficient($ccreds, $module, $type);
+ if ($module eq 'pam_winbind') {
+ push @para, 'cached_login';
+ }
+ pam_format_line($type, $control, $module, @para);
+}
+
+
+
+
+
+
sub set_pam_authentication {
- my (@authentication_kinds) = @_;
+ my ($authentication_kinds, $o_ccreds) = @_;
my %special = (
- auth => [ difference2(\@authentication_kinds,, [ 'mount' ]) ],
- account => [ difference2(\@authentication_kinds, [ 'castella', 'mount' ]) ],
- password => [ intersection(\@authentication_kinds, [ 'ldap', 'krb5' ]) ],
+ auth => [ difference2($authentication_kinds,, [ 'mount' ]) ],
+ account => [ difference2($authentication_kinds, [ 'castella', 'mount', 'ccreds' ]) ],
+ password => [ intersection($authentication_kinds, [ 'ldap', 'krb5', 'ccreds' ]) ],
);
my %before_first = (
- auth => member('mount', @authentication_kinds) ? pam_format_line('auth', 'required', 'pam_mount') : '',
+ auth => member('mount', @$authentication_kinds) ? pam_format_line('auth', 'required', 'pam_mount') : '',
session =>
- intersection(\@authentication_kinds, [ 'winbind', 'krb5', 'ldap' ])
+ intersection($authentication_kinds, [ 'winbind', 'krb5', 'ldap' ])
? pam_format_line('session', 'optional', 'pam_mkhomedir', 'skel=/etc/skel/', 'umask=0022') :
- member('castella', @authentication_kinds)
+ member('castella', @$authentication_kinds)
? pam_format_line('session', 'optional', 'pam_castella') : '',
);
my %after_deny = (
session =>
- member('krb5', @authentication_kinds)
+ member('krb5', @$authentication_kinds)
? pam_format_line('session', 'optional', 'pam_krb5') :
- member('mount', @authentication_kinds)
+ member('mount', @$authentication_kinds)
? pam_format_line('session', 'optional', 'pam_mount') : '',
);
substInFile {
- my ($type, $control, $module, @para) = split;
+ my ($type, $control, $other) = /(\S+)\s+(\[.*?\]|\S+)\s+(.*)/;
+ my ($module, @para) = split(' ', $other);
if ($module = pam_module_from_path($module)) {
if (member($module, pam_modules())) {
#- first removing previous config
$_ = '';
}
- if ($module eq 'pam_unix' && $special{$type}) {
+ if ($module eq 'pam_tcb' && $special{$type}) {
my @para_for_last =
member($type, 'auth', 'account') ? qw(use_first_pass) : @{[]};
@para = difference2(\@para, \@para_for_last);
my ($before_noask, $ask) = partition { $_ eq 'castella' } @{$special{$type}};
- my ($before, $after) = partition { $_ eq 'krb5' } @$ask;
if (!@$ask) {
@para_for_last = grep { $_ ne 'use_first_pass' } @para_for_last;
}
- my @l = ((map { [ "pam_$_" ] } @$before_noask, @$before),
- [ 'pam_unix', @para ],
- (map { [ "pam_$_" ] } @$after),
+ my @l = ((map { [ "pam_$_" ] } @$before_noask),
+ [ 'pam_tcb', @para ],
+ (map { [ "pam_$_" ] } @$ask),
);
push @{$l[-1]}, @para_for_last;
- $_ = join('', map { pam_format_line($type, 'sufficient', @$_) } @l);
+
+ $_ = join('', map { pam_sufficient_line($o_ccreds, $type, @$_) } @l);
if ($control eq 'required') {
- #- ensure a pam_deny line is there
- ($control, $module, @para) = ('required', 'pam_deny');
- $_ .= pam_format_line($type, $control, $module);
+ #- ensure a pam_deny line is there. it will be added below
+ ($module, @para) = ('pam_deny');
+ }
+
+ if ($type eq 'auth' && $o_ccreds) {
+ $_ .= pam_format_line('auth', '[default=done]', 'pam_ccreds', 'action=validate use_first_pass');
+ $_ .= pam_format_line('auth', '[default=done]', 'pam_ccreds', 'action=store');
+ $_ .= pam_format_line('auth', '[default=bad]', 'pam_ccreds', 'action=update');
}
}
+
+
+ if (member($module, 'pam_deny', 'pam_permit')) {
+ $_ .= pam_format_line($type, $control,
+ $type eq 'account' && $o_ccreds ? 'pam_permit' : 'pam_deny');
+ }
if (my $s = delete $before_first{$type}) {
$_ = $s . $_;
}
- if ($control eq 'required' && member($module, 'pam_deny', 'pam_unix')) {
+ if ($control eq 'required' && member($module, 'pam_deny', 'pam_permit', 'pam_tcb')) {
if (my $s = delete $after_deny{$type}) {
$_ .= $s;
}
@@ -514,13 +604,22 @@ sub set_pam_authentication {
}
sub set_nsswitch_priority {
- my (@kinds) = @_;
- my @known = qw(nis ldap winbind);
+ my ($kinds, $connected) = @_;
+ my @known = qw(nis ldap winbind compat);
substInFile {
if (my ($database, $l) = /^(\s*(?:passwd|shadow|group|automount):\s*)(.*)/) {
my @l = difference2([ split(' ', $l) ], \@known);
- $_ = $database . join(' ', uniq('files', @kinds, @l)) . "\n";
- }
+ $_ = $database . join(' ', uniq('files', @$kinds, @l)) . "\n";
+ }
+ if (/^\s*(?:passwd|group):/) {
+ my $option = '[NOTFOUND=return] db';
+ if ($connected) {
+ s/$/ $option/ if !/\Q$option/;
+ } else {
+ s/\s*\Q$option//;
+ }
+}
+
} "$::prefix/etc/nsswitch.conf";
}
@@ -552,7 +651,7 @@ sub read_ldap_conf() {
my %conf = map {
s/^\s*#.*//;
if_(_after_read_ldap_line($_) =~ /(\S+)\s+(.*)/, $1 => $2);
- } cat_("$::prefix/etc/ldap.conf");
+ } cat_("$::prefix/etc/nslcd.conf");
\%conf;
}
@@ -572,7 +671,7 @@ sub update_ldap_conf {
$_ .= _pre_write_ldap_line("$cmd $val\n");
}
}
- } "$::prefix/etc/ldap.conf";
+ } "$::prefix/etc/nslcd.conf";
}
sub configure_krb5_for_AD {
@@ -584,8 +683,8 @@ sub configure_krb5_for_AD {
krb5_conf_update($krb5_conf_file,
libdefaults => (
default_realm => $uc_domain,
- dns_lookup_realm => $authentication->{AD_server} ? 'false' : 'true',
- dns_lookup_kdc => $authentication->{AD_server} ? 'false' : 'true',
+ dns_lookup_realm => $authentication->{KRB_dns_lookup} ? 'true' : 'false',
+ dns_lookup_kdc => $authentication->{KRB_host_lookup} ? 'true' : 'false',
default_tgs_enctypes => undef,
default_tkt_enctypes => undef,
permitted_enctypes => undef,
@@ -601,6 +700,7 @@ sub configure_krb5_for_AD {
EOF
domain_realm => <<EOF,
.$authentication->{AD_domain} = $uc_domain
+ $authentication->{AD_domain} = $uc_domain
EOF
kdc => <<'EOF',
profile = /etc/kerberos/krb5kdc/kdc.conf
@@ -682,18 +782,6 @@ sub krb5_conf_update {
}
-sub sshd_config_UsePAM {
- my ($UsePAM) = @_;
- my $sshd = "$::prefix/etc/ssh/sshd_config";
- -e $sshd or return;
-
- my $val = "UsePAM " . bool2yesno($UsePAM);
- substInFile {
- $val = '' if s/^#?UsePAM.*/$val/;
- $_ .= "$val\n" if eof && $val;
- } $sshd;
-}
-
sub query_srv_names {
my ($domain) = @_;
@@ -711,7 +799,7 @@ sub enable_shadow() {
sub salt {
my ($nb) = @_;
require devices;
- open(my $F, devices::make("random")) or die "missing random";
+ open(my $F, "/dev/urandom") or die "missing urandom";
my $s; read $F, $s, $nb;
$s = pack("b8" x $nb, unpack "b6" x $nb, $s);
$s =~ tr|\0-\x3f|0-9a-zA-Z./|;
@@ -719,9 +807,28 @@ sub salt {
}
sub user_crypted_passwd {
- my ($u, $isMD5) = @_;
+ my ($u, $authentication) = @_;
if ($u->{password}) {
- crypt($u->{password}, $isMD5 ? '$1$' . salt(8) : salt(2));
+ require utf8;
+ utf8::encode($u->{password}); #- we don't want perl to do "smart" things in crypt()
+
+ # Default to sha512
+ $authentication = { sha512 => 1 } unless $authentication;
+
+ my $salt;
+ if ($authentication->{blowfish}) {
+ $salt = '$2a$08$' . salt(60);
+ } elsif ($authentication->{md5}) {
+ $salt = '$1$' . salt(8);
+ } elsif ($authentication->{sha256}) {
+ $salt = '$5$' . salt(32);
+ } elsif ($authentication->{sha512}) {
+ $salt = '$6$' . salt(64);
+ } else {
+ $salt = salt(2);
+ }
+
+ crypt($u->{password}, $salt);
} else {
$u->{pw} || '';
}
@@ -730,14 +837,14 @@ sub user_crypted_passwd {
sub set_root_passwd {
my ($superuser, $authentication) = @_;
$superuser->{name} = 'root';
- write_passwd_user($superuser, $authentication->{md5});
+ write_passwd_user($superuser, $authentication);
delete $superuser->{name};
}
sub write_passwd_user {
- my ($u, $isMD5) = @_;
+ my ($u, $authentication) = @_;
- $u->{pw} = user_crypted_passwd($u, $isMD5);
+ $u->{pw} = user_crypted_passwd($u, $authentication);
$u->{shell} ||= '/bin/bash';
substInFile {
@@ -764,5 +871,113 @@ sub pack_passwd {
join(':', @$l{@etc_pass_fields}) . "\n";
}
-1;
+sub add_cafile() {
+ my $in = interactive->vnew;
+ $in->ask_filename({ title => N("Select file") }) or return;
+}
+
+sub auth() {
+ my $in = interactive->vnew;
+ $in->ask_from('', N(" "), [
+ { label => N("Domain Windows for authentication : ") . $authentication->{WINDOMAIN} },
+ {},
+ { label => N("Domain Admin User Name"), val => \$authentication->{winuser} },
+ { label => N("Domain Admin Password"), val => \$authentication->{winpass}, hidden => 1 },
+ ]);
+ return $authentication->{winuser}, $authentication->{winpass};
+}
+
+require fs::remote::smb;
+sub list_domains() {
+ my $smb = fs::remote::smb->new;
+ my %domains;
+ foreach my $server ($smb->find_servers) {
+ $domains{$server->{group}} = 1;
+ }
+ return sort keys %domains;
+}
+sub get_server_for_domain {
+ my $smb = fs::remote::smb->new;
+ foreach my $server ($smb->find_servers) {
+ return $server->{name} if $server->{group} == $_[0];
+ }
+}
+
+sub fetch_dn {
+ my ($srv) = @_;
+ my $s = run_program::rooted_get_stdout($::prefix, 'ldapsearch', '-x', '-h', $srv, '-b', '', '-s', 'base', '+');
+ $authentication->{LDAPDOMAIN} = first($s =~ /namingContexts: (.+)/);
+ return $authentication->{LDAPDOMAIN};
+}
+
+sub configure_nss_ldap {
+ my ($authentication) = @_;
+ update_ldap_conf(
+ uri => $authentication->{cafile} eq '1' ? "ldaps://" . $authentication->{LDAP_server} . "/" : "ldap://" . $authentication->{LDAP_server} . "/",
+ base => $authentication->{LDAPDOMAIN},
+ );
+
+ if ($authentication->{nssgrp} eq '1') {
+
+ update_ldap_conf(
+ 'base shadow' => $authentication->{nss_shadow},
+ 'base passwd' => $authentication->{nss_pwd},
+ 'base group' => $authentication->{nss_grp},
+ scope => "sub",
+ );
+ } else {
+
+ update_ldap_conf(
+ 'base shadow' => $authentication->{LDAPDOMAIN},
+ 'base passwd' => $authentication->{LDAPDOMAIN},
+ 'base group' => $authentication->{LDAPDOMAIN},
+ scope => "sub",
+ );
+ }
+ if ($authentication->{anonymous} eq '1') {
+ update_ldap_conf(
+ binddn => $authentication->{LDAP_binddn},
+ bindpw => $authentication->{LDAP_bindpwd},
+ );
+ }
+
+ if ($authentication->{cafile} eq '1') {
+ update_ldap_conf(
+ ssl => "on",
+ tls_reqcert => "allow",
+ tls_cacertfile => $authentication->{file},
+ );
+ }
+ }
+
+ sub compute_password_weakness {
+ my ($password) = @_;
+ my $score = 0;
+ my $len = length($password);
+
+ return 0 if $len == 0;
+
+ $score = $len < 5 ? 3 :
+ $len > 4 && $len < 8 ? 6 :
+ $len > 7 && $len < 16 ? 12 : 18;
+
+ $score += 1 if $password =~ /[a-z]/;
+ $score += 5 if $password =~ /[A-Z]/;
+ $score += 5 if $password =~ /\d+/;
+ $score += 5 if $password =~ /(.*[0-9].*[0-9].*[0-9])/;
+ $score += 5 if $password =~ /.[!@#$%^&*?_~,]/;
+ $score += 5 if $password =~ /(.*[!@#$%^&*?_~,].*[!@#$%^&*?_~,])/;
+ $score += 2 if $password =~ /([a-z].*[A-Z])|([A-Z].*[a-z])/;
+ $score += 2 if $password =~ /([a-zA-Z])/ && $password =~ /([0-9])/;
+ $score += 2 if $password =~ /([a-z].*[A-Z])|([A-Z].*[a-z])/;
+ $score += 2 if $password =~ /([a-zA-Z0-9].*[!@#$%^&*?_~])|([!@#$%^&*?_~,].*[a-zA-Z0-9])/;
+
+ my $level = $score < 11 ? 1 :
+ $score > 10 && $score < 20 ? 2 :
+ $score > 19 && $score < 30 ? 3 :
+ $score > 29 && $score < 40 ? 4 : 5;
+
+ return $level;
+ }
+1;
diff --git a/perl-install/bootloader.pm b/perl-install/bootloader.pm
index ae99ad69f..d1d757c3d 100644
--- a/perl-install/bootloader.pm
+++ b/perl-install/bootloader.pm
@@ -1,4 +1,4 @@
-package bootloader; # $Id$
+package bootloader;
use diagnostics;
use strict;
@@ -19,11 +19,73 @@ use partition_table::raw;
use run_program;
use modules;
-#-#####################################################################################
-#- Functions
-#-#####################################################################################
-my $vmlinuz_regexp = 'vmlinuz|win4lin';
+=head1 SYNOPSYS
+
+B<bootloader> enables to configure various boot loaders (LILO, GRUB Legacy, GRUB2, ...)
+
+Example of usage:
+
+ $all_hds = fsedit::get_hds();
+ fs::get_raw_hds('', $all_hds);
+ fs::get_info_from_fstab($all_hds);
+ $fstab = [ fs::get::fstab($all_hds) ];
+ $bootloader = bootloader::read($all_hds);
+ (...)
+ bootloader::action($bootloader, 'write', $all_hds);
+
+A particular bootloader is handled in separate typical functions that can be called by action() by /sbin/bootloader-config:
+
+
+=head1 VFS aka how to support a bootloader
+
+Most of the code is generic.
+
+A particular bootloader implementation/support is done through a couple functions:
+
+=over 4
+
+=item * read_FOOBAR()
+
+read the config file(s) of the FOOBAR bootloader, returning a $bootloader object
+
+=item * install_FOOBAR($bootloader, $all_hds)
+
+usually call write_FOOBAR() & install_raw_FOOBAR() if existing, aka:
+
+=over 4
+
+=item * updating config files
+
+=item * then reinstalling the bootloader
+
+=back
+
+=item * install_raw_FOOBAR()
+
+Optionnal: Low level installation of the stage1 of the bootloader, usually embedding it in MBR or on ESP, ... (eg: running lilo or /boot/grub*/install.sh)
+
+=item * write_FOOBAR($bootloader, $all_hds)
+
+update the config files, ie when a kernel was installed or removed.
+when_config_changed_FOOBAR() is called right after in case something is needed when config is done (eg: lilo needs to be reinstalled)
+
+=item * when_config_changed_FOOBAR()
+
+Run needed action when config has changed or when initrds were regenerated, ...
+Usually nothing for intelligent bootloaders such as grub-legacy or grub2.
+But eg: lilo needs to rewrite its stage1 (thus it needs to rerun lilo).
+
+=back
+
+=head1 Functions
+
+=over
+
+=cut
+
+my $vmlinuz_regexp = 'vmlinu[xz]|win4lin|uImage';
my $decompose_vmlinuz_name = qr/((?:$vmlinuz_regexp).*?)-(\d+\.\d+.*)/;
+my $liblinux_path = '/usr/lib/linux';
sub expand_vmlinuz_symlink {
my ($vmlinuz) = @_;
@@ -43,16 +105,21 @@ sub vmlinuz2kernel_str {
{
basename => $basename,
version => $version,
- $version =~ /(.*)-(\D.*)-(\d+md[kv])$/ ? #- eg: 2.6.22.5-server-1mdv
+ $version =~ /([\d.]*)-(\D.*)-((\d+|0\.rc\d+.*)\.mga.*)$/ ? #- eg: 3.0.0-1.mga2
(ext => $2, version_no_ext => "$1-$3") :
- $version =~ /(.*md[kv])-?(.*)/ ? #- (old) eg: 2.6.17-13mdventerprise
+ $version =~ /(.*mga)-?(.*)/ ? #- (old) eg: 2.6.17-13mdventerprise
(ext => $2, version_no_ext => $1) : (version_no_ext => $version),
};
}
+sub kernel_str2short_name {
+ my ($kernel) = @_;
+ $kernel->{basename};
+}
+
sub basename2initrd_basename {
my ($basename) = @_;
- $basename =~ s!vmlinuz-?!!; #- here we do not use $vmlinuz_regexp since we explictly want to keep all that is not "vmlinuz"
+ $basename =~ s!(vmlinu[zx]|uImage)-?!!; #- here we do not use $vmlinuz_regexp since we explicitly want to keep all that is not "vmlinuz"
'initrd' . ($basename ? "-$basename" : '');
}
sub kernel_str2vmlinuz_long {
@@ -61,15 +128,18 @@ sub kernel_str2vmlinuz_long {
}
sub kernel_str2initrd_long {
my ($kernel) = @_;
- basename2initrd_basename($kernel->{basename}) . '-' . $kernel->{version} . '.img';
+ basename2initrd_basename(kernel_str2short_name($kernel)) . '-' . $kernel->{version} . '.img';
+}
+sub kernel_str2liblinux_long {
+ my ($kernel) = @_;
+ $liblinux_path . '-' . $kernel->{version};
}
sub kernel_str2vmlinuz_short {
my ($kernel) = @_;
if ($kernel->{use_long_name}) {
kernel_str2vmlinuz_long($kernel);
} else {
- my $ext = $kernel->{ext} ? "-$kernel->{ext}" : '';
- $kernel->{basename} . $ext;
+ kernel_str2short_name($kernel);
}
}
sub kernel_str2initrd_short {
@@ -77,16 +147,21 @@ sub kernel_str2initrd_short {
if ($kernel->{use_long_name}) {
kernel_str2initrd_long($kernel);
} else {
- my $ext = $kernel->{ext} ? "-$kernel->{ext}" : '';
- basename2initrd_basename($kernel->{basename}) . $ext . '.img';
+ basename2initrd_basename(kernel_str2short_name($kernel)) . '.img';
}
}
+sub kernel_str2liblinux_short() {
+ $liblinux_path;
+}
sub kernel_str2label {
my ($kernel, $o_use_long_name) = @_;
- my $base = $kernel->{basename} eq 'vmlinuz' ? 'linux' : $kernel->{basename};
- $o_use_long_name || $kernel->{use_long_name} ?
- sanitize_ver($base, $kernel) : $base;
+ if ($o_use_long_name || $kernel->{use_long_name}) {
+ _sanitize_ver($kernel);
+ } else {
+ my $short_name = kernel_str2short_name($kernel);
+ $kernel->{ext} =~ /^xen/ ? 'xen' : ($short_name eq 'vmlinuz' ? 'linux' : $short_name);
+ }
}
sub get {
@@ -100,21 +175,44 @@ sub get_label {
undef;
}
+=item mkinitrd($kernel_version, $bootloader, $entry, $initrd)
+
+Regenerates kernel's initrd.
+
+=cut
+
sub mkinitrd {
my ($kernel_version, $bootloader, $entry, $initrd) = @_;
- $::testing || -e "$::prefix/$initrd" and return $initrd;
-
+ my $dir = dirname($initrd);
+ if ($::testing) {
+ log::l("Skipping initrd generation: testing mode");
+ return $initrd;
+ } elsif (-e "$::prefix/$initrd") {
+ log::l("Skipping initrd generation: already exists");
+ return $initrd;
+ } elsif ($initrd =~ /\(hd/) {
+ log::l("Skipping initrd generation: unrecognized partition");
+ return $initrd;
+ } elsif (!-d "$::prefix/$dir") {
+ log::l("Skipping initrd generation: dir doesn't exist (probably !mounted foreign part)");
+ return $initrd;
+ }
+
+ # for /boot on dos partitions when installing on loopback file on dos partition
my $loop_boot = fs::loopback::prepare_boot();
modules::load('loop');
my @options = (
- "-v", "-f", $initrd, "--ifneeded", $kernel_version,
+ if_($::isInstall, "-v"), "-f", $initrd, $kernel_version,
if_($entry->{initrd_options}, split(' ', $entry->{initrd_options})),
);
- if (!run_program::rooted($::prefix, 'mkinitrd', @options)) {
+
+ my $err;
+ if (!run_program::rooted($::prefix, 'mkinitrd', '2>', \$err, @options)) {
unlink("$::prefix/$initrd");
- die "mkinitrd failed:\n(mkinitrd @options))";
+ log::explanations("mkinitrd failed:\n(mkinitrd @options)\nError: <$err>");
+ die "mkinitrd failed:\n(mkinitrd @options)\nError: $err";
}
add_boot_splash($initrd, $entry->{vga} || $bootloader->{vga});
@@ -123,6 +221,13 @@ sub mkinitrd {
-e "$::prefix/$initrd" && $initrd;
}
+=item rebuild_initrd($kernel_version, $bootloader, $entry, $initrd)
+
+Saves the old initrd then regenerate it.
+If it fails, restore the old initrd.
+
+=cut
+
sub rebuild_initrd {
my ($kernel_version, $bootloader, $entry, $initrd) = @_;
@@ -144,7 +249,7 @@ sub add_boot_splash {
$vga or return;
- require Xconfig::resolution_and_depth;
+ eval { require Xconfig::resolution_and_depth } or return;
if (my $res = Xconfig::resolution_and_depth::from_bios($vga)) {
run_program::rooted($::prefix, '/usr/share/bootsplash/scripts/make-boot-splash', $initrd, $res->{X});
} else {
@@ -154,11 +259,25 @@ sub add_boot_splash {
sub update_splash {
my ($bootloader) = @_;
+ my %real_initrd_entries;
foreach (@{$bootloader->{entries}}) {
- bootloader::add_boot_splash($_->{initrd}, $_->{vga} || $bootloader->{vga}) if $_->{initrd};
+ if ($_->{initrd} && $_->{vga}) {
+ my $initrd = expand_symlinks($_->{initrd});
+ $real_initrd_entries{$initrd} = $_;
+ }
+ }
+ foreach (values %real_initrd_entries) {
+ log::l("add boot splash to $_->{initrd}\n");
+ add_boot_splash($_->{initrd}, $_->{vga} || $bootloader->{vga});
}
}
+=item read($all_hds)
+
+Reads bootloader config by calling the proper read_XYZ function.
+
+=cut
+
sub read {
my ($all_hds) = @_;
my $fstab = [ fs::get::fstab($all_hds) ];
@@ -166,8 +285,9 @@ sub read {
my $f = $bootloader::{"read_$main_method"} or die "unknown bootloader method $main_method (read)";
my $bootloader = $f->($fstab);
- cleanup_entries($bootloader);
+ cleanup_entries($bootloader) if $main_method ne 'refind';
+ # handle raid-extra-boot (lilo)
my @devs = $bootloader->{boot};
if ($bootloader->{'raid-extra-boot'} =~ /mbr/ &&
(my $md = fs::get::device2part($bootloader->{boot}, $all_hds->{raids}))) {
@@ -176,11 +296,21 @@ sub read {
@devs = split(',', $bootloader->{'raid-extra-boot'});
}
+ #- if $bootloader->{boot} is undefined, @devs contains a single undef element
my ($type) = map {
- if (m!/fd\d+$!) {
+ if (is_uefi()) {
+ if (-e "$::prefix/boot/refind_linux.conf") {
+ 'refind';
+ } elsif (-f "$::prefix/boot/EFI/EFI/mageia/grub" . uefi_type() . ".efi" ||
+ $main_method eq 'grub2' && $bootloader->{removable} && -f "$::prefix/boot/EFI/EFI/BOOT/BOOT" . uc(uefi_type()) . ".EFI") {
+ 'grub2';
+ } else {
+ ()
+ }
+ } elsif (m!/fd\d+$!) {
warn "not checking the method on floppy, assuming $main_method is right\n";
$main_method;
- } elsif (member($main_method, qw(yaboot cromwell silo))) {
+ } elsif (member($main_method, qw(cromwell uboot))) {
#- not checking, there's only one bootloader anyway :)
$main_method;
} elsif (my $type = partition_table::raw::typeOfMBR($_)) {
@@ -190,74 +320,229 @@ sub read {
} @devs;
if ($type eq $main_method) {
+ return $bootloader if read_($bootloader);
+ }
+ }
+}
+
+sub read_ {
+ my ($bootloader) = @_;
my @prefered_entries = map { get_label($_, $bootloader) } $bootloader->{default}, 'linux';
if (my $default = find { $_ && $_->{type} eq 'image' } (@prefered_entries, @{$bootloader->{entries}})) {
$bootloader->{default_options} = $default;
$bootloader->{perImageAppend} ||= $default->{append};
log::l("perImageAppend is now $bootloader->{perImageAppend}");
+ $bootloader->{default_vga} ||= $default->{vga};
+ log::l("default_vga is now $bootloader->{default_vga}");
} else {
$bootloader->{default_options} = {};
}
return $bootloader;
+}
+
+
+=item is_grub2_already_crypted($password)
+
+Returns whether grub2 password is already encrypted or not
+
+=cut
+
+sub is_grub2_already_crypted {
+ my ($password) = @_;
+ $password =~ /grub.pbkdf2.sha512/;
+}
+
+=item read_grub2 ($o_fstab)
+
+Read back GRUB2 config
+
+=cut
+
+sub read_grub2() {
+ my %bootloader = read_grub2_install_sh() if -e get_grub2_install_sh();
+ return if is_empty_hash_ref(\%bootloader) & !-s "$::prefix/boot/grub2/grub.cfg";
+ my %h = getVarsFromSh("$::prefix/etc/default/grub");
+ $bootloader{timeout} = $h{GRUB_TIMEOUT};
+ # keep suggested perImageAppend and default_vga on first run (during installer) or when migrating from grub-legacy or lilo:
+ my ($vga, $other) = partition { /^vga=/ } split(' ', $h{GRUB_CMDLINE_LINUX_DEFAULT});
+ $bootloader{perImageAppend} ||= join(' ', @$other) if @$other;
+ $bootloader{default_vga} ||= $vga->[0] =~ /vga=(.*)/ && $1 if @$vga;
+ $bootloader{entries} = [];
+ my $entry;
+ my $f = "$::prefix/boot/grub2/grub.cfg";
+ my @menus;
+ foreach (cat_utf8($f)) {
+ next if /^#/;
+ if (/menuentry\s+['"]([^']+)["']/) {
+ $entry = { label => $1, real_label => join('>', @menus, $1) };
+ } elsif (/linux(?:16)?\s+([^-]\S+)\s+(.*)?/ || /module\s+(\S+vmlinu\S+)\s+(.*)?/) {
+ $entry->{type} = 'image';
+ @$entry{qw(kernel_or_dev append)} = ($1, $2);
+ my ($vga, $other) = partition { /^vga=/ } split(' ', $entry->{append});
+ if (@$vga) {
+ $entry->{vga} = $vga->[0] =~ /vga=(.*)/ && $1;
+ $entry->{append} = join(' ', @$other);
+ }
+ } elsif (/initrd(?:16)?\s+(\S+)/ || /module\s+(\S+initrd\S+)\s+(.*)?/) {
+ $entry->{initrd} = $1;
+ } elsif (/submenu\s+['"]([^']+)["']/) {
+ push @menus, $1;
+ } elsif (/^\s*}/) {
+ if ($entry) {
+ push @{$bootloader{entries}}, $entry;
+ undef $entry;
+ } else {
+ pop @menus;
+ }
}
}
+
+ # get default entry:
+ foreach (run_program::rooted_get_stdout($::prefix, qw(grub2-editenv list))) {
+ $bootloader{default} = $1 if /saved_entry=(.*)/;
+ $bootloader{default} =~ s/.*>//; # strip full menu entry path
+ }
+
+ # Get password prior to run update-grub2:
+ $bootloader{password} = { getVarsFromSh(get_grub2_users()) }->{GRUB2_PASSWORD};
+
+ $bootloader{method} = cat_($f) =~ /set theme=.*maggy/ ? 'grub2-graphic' : 'grub2';
+ \%bootloader;
+}
+
+sub read_grub2_install_sh() {
+ my $s = cat_(get_grub2_install_sh());
+ my %h;
+ if ($s =~ m!(/dev/\S+)!m) {
+ $h{boot} = $1;
+ }
+ $h{no_esp_or_mbr} = $s =~ m!--grub-setup=/bin/true!;
+ $h{removable} = $s =~ m!--removable!;
+ %h;
}
+=item read_grub($fstab)
+
+Reads back Grub Legacy config.
+
+=cut
+
sub read_grub {
my ($fstab) = @_;
my $grub2dev = read_grub_device_map();
+ my $boot_root = read_grub_install_sh();
+ _may_fix_grub2dev($fstab, $grub2dev, $boot_root->{boot_part});
my $bootloader = read_grub_menu_lst($fstab, $grub2dev) or return;
- read_grub_install_sh($bootloader, $grub2dev);
+ if ($boot_root->{boot}) {
+ $bootloader->{boot} = grub2dev($boot_root->{boot}, $grub2dev);
+ }
$bootloader;
}
-sub read_grub_install_sh {
- my ($bootloader, $grub2dev) = @_;
+
+=item _may_fix_grub2dev($fstab, $grub2dev, $boot_part)
+
+Adapts device.map (aka $grub2dev) when for example hda is now sda.
+nb:
+
+=over 4
+
+=item * $boot_part comes from C</boot/grub/install.sh> C<root (hd...)> line
+
+=item * $grub2dev is C</boot/grub/device.map>
+
+=back
+
+=cut
+
+sub _may_fix_grub2dev {
+ my ($fstab, $grub2dev, $boot_part) = @_;
+
+ $boot_part or log::l("install.sh does not contain 'root (hd...)' line, no way to magically adapt device.map"), return;
+
+ my $real_boot_part = fs::get::root_($fstab, 'boot') or
+ log::l("argh... the fstab given is useless, it doesn't contain '/'"), return;
+
+ my $real_boot_dev = $real_boot_part->{rootDevice} or return; # if /boot is on Linux RAID 1, hope things are all right...
+
+ if (my $prev_boot_part = fs::get::device2part(grub2dev($boot_part, $grub2dev), $fstab)) { # the boot_device as far as grub config files say
+ $real_boot_part == $prev_boot_part and return;
+ }
+
+ log::l("WARNING: we have detected that device.map is inconsistent with the system");
+
+ my ($hd_grub, undef, undef) = parse_grub_file($boot_part); # extract hdX
+ if (my $prev_hd_grub = find { $grub2dev->{$_} eq $real_boot_dev } keys %$grub2dev) {
+ $grub2dev->{$prev_hd_grub} = $grub2dev->{$hd_grub};
+ log::l("swapping result: $hd_grub/$real_boot_dev and $prev_hd_grub/$grub2dev->{$hd_grub}");
+ } else {
+ log::l("argh... can't swap, setting $hd_grub to $real_boot_dev anyway");
+ }
+ $grub2dev->{$hd_grub} = $real_boot_dev;
+}
+
+=item read_grub_install_sh() {
+
+Reads "config" from /boot/grub/install.sh (mainly used partitions)
+
+=cut
+
+sub read_grub_install_sh() {
+ my $s = cat_("$::prefix/boot/grub/install.sh");
+ my %h;
#- matches either:
#- setup (hd0)
#- install (hd0,0)/boot/grub/stage1 d (hd0) (hd0,0)/boot/grub/stage2 p (hd0,0)/boot/grub/menu.lst
- if (cat_("$::prefix/boot/grub/install.sh") =~ /^(?:setup.*|install\s.*\sd)\s+(\(.*?\))/m) {
- $bootloader->{boot} = grub2dev($1, $grub2dev);
+ if ($s =~ /^(?:setup.*|install\s.*\sd)\s+(\(.*?\))/m) {
+ $h{boot} = $1;
}
+ if ($s =~ /^root\s+(\(.*?\))/m) {
+ $h{boot_part} = $1;
+ }
+ \%h;
}
-sub read_grub_menu_lst {
- my ($fstab, $grub2dev) = @_;
+sub _parse_grub_menu_lst() {
my $global = 1;
my ($e, %b);
my $menu_lst_file = "$::prefix/boot/grub/menu.lst";
-e $menu_lst_file or return;
- foreach (cat_($menu_lst_file)) {
+ foreach (MDK::Common::File::cat_utf8($menu_lst_file)) {
+ my $verbatim = $_;
chomp;
s/^\s*//; s/\s*$//;
next if /^#/ || /^$/;
my ($keyword, $v) = split('[ \t=]+', $_, 2) or
warn qq(unknown line in /boot/grub/menu.lst: "$_"\n), next;
+ if ($keyword eq 'root') {
+ #- rename to avoid name conflict
+ $keyword = 'grub_root';
+ }
+
if ($keyword eq 'title') {
push @{$b{entries}}, $e = { label => $v };
$global = 0;
} elsif ($global) {
- $b{$keyword} = $v eq '' ? 1 : grub2file($v, $grub2dev, $fstab);
+ $b{$keyword} = $v;
} else {
if ($keyword eq 'kernel') {
$e->{type} = 'image';
$e->{kernel} = $v;
- } elsif ($keyword eq 'root' || $keyword eq 'rootnoverify') {
+ } elsif ($keyword eq 'chainloader') {
$e->{type} = 'other';
- $e->{grub_noverify} = 1 if $keyword eq 'rootnoverify';
- $e->{kernel_or_dev} = grub2dev($v, $grub2dev);
$e->{append} = "";
- } elsif ($keyword eq 'initrd') {
- $e->{initrd} = grub2file($v, $grub2dev, $fstab);
+ } elsif ($keyword eq 'configfile') {
+ $e->{type} = 'grub_configfile';
+ $e->{configfile} = $v;
} elsif ($keyword eq 'map') {
$e->{mapdrive}{$2} = $1 if $v =~ m/\((.*)\) \((.*)\)/;
} elsif ($keyword eq 'module') {
@@ -266,21 +551,66 @@ sub read_grub_menu_lst {
$e->{$keyword} = $v eq '' ? 1 : $v;
}
}
+ $e and $e->{verbatim} .= $verbatim;
+ }
+
+ %b;
+}
+
+
+=item is_already_crypted($password)
+
+Returns whether grub password is already encrypted or not
+
+=cut
+
+sub is_already_crypted {
+ my ($password) = @_;
+ $password =~ /^--md5 (.*)/;
+}
+
+=item read_grub_menu_lst($fstab, $grub2dev)
+
+Read config from /boot/grub/menu.lst
+
+=cut
+
+sub read_grub_menu_lst {
+ my ($fstab, $grub2dev) = @_;
+
+ my %b = _parse_grub_menu_lst();
+
+ foreach my $keyword (grep { $_ ne 'entries' } keys %b) {
+ $b{$keyword} = $b{$keyword} eq '' ? 1 : grub2file($b{$keyword}, $grub2dev, $fstab, \%b);
}
#- sanitize
foreach my $e (@{$b{entries}}) {
- if ($e->{kernel} =~ /xen/ && @{$e->{modules}} == 2 && $e->{modules}[1] =~ /initrd/) {
+ if (member($e->{type}, 'other', 'grub_configfile')) {
+ eval { $e->{kernel_or_dev} = grub2dev($e->{rootnoverify} || $e->{grub_root}, $grub2dev) };
+ $e->{keep_verbatim} = 1 unless $e->{kernel_or_dev};
+ } elsif ($e->{initrd}) {
+ my $initrd;
+ eval { $initrd = grub2file($e->{initrd}, $grub2dev, $fstab, $e) };
+ if ($initrd) {
+ $e->{initrd} = $initrd;
+ } else {
+ $e->{keep_verbatim} = 1;
+ }
+ }
+
+ if ($e->{kernel} =~ /xen/ && @{$e->{modules} || []} == 2 && $e->{modules}[1] =~ /initrd/) {
(my $xen, $e->{xen_append}) = split(' ', $e->{kernel}, 2);
($e->{kernel}, my $initrd) = @{delete $e->{modules}};
- $e->{xen} = grub2file($xen, $grub2dev, $fstab);
- $e->{initrd} = grub2file($initrd, $grub2dev, $fstab);
+ $e->{xen} = grub2file($xen, $grub2dev, $fstab, $e);
+ $e->{initrd} = grub2file($initrd, $grub2dev, $fstab, $e);
}
if (my $v = delete $e->{kernel}) {
(my $kernel, $e->{append}) = split(' ', $v, 2);
$e->{append} = join(' ', grep { !/^BOOT_IMAGE=/ } split(' ', $e->{append}));
$e->{root} = $1 if $e->{append} =~ s/root=(\S*)\s*//;
- $e->{kernel_or_dev} = grub2file($kernel, $grub2dev, $fstab);
+ eval { $e->{kernel_or_dev} = grub2file($kernel, $grub2dev, $fstab, $e) };
+ $e->{keep_verbatim} = 1 if !$e->{kernel_or_dev} || dirname($e->{kernel_or_dev}) ne '/boot';
}
my ($vga, $other) = partition { /^vga=/ } split(' ', $e->{append});
if (@$vga) {
@@ -300,42 +630,122 @@ sub read_grub_menu_lst {
\%b;
}
-sub yaboot2dev {
- my ($of_path) = @_;
- find { dev2yaboot($_) eq $of_path } map { "/dev/$_->{dev}" } fs::proc_partitions::read_raw();
+sub _parse_extlinux_conf() {
+ my $global = 1;
+ my ($e, %b);
+
+ my $f = "$::prefix/boot/extlinux/extlinux.conf";
+ -e $f or return;
+
+ foreach (cat_utf8($f)) {
+ chomp;
+ s/^\s*//; s/\s*$//;
+ next if /^#/ || /^$/;
+ my ($keyword, $v) = split('[ \t=]+', $_, 2) or
+ warn qq(unknown line in $f: "$_"\n), next;
+
+ $keyword = lc($keyword);
+
+ if ($keyword eq 'label') {
+ push @{$b{entries}}, $e = { label => $v };
+ $global = 0;
+ } elsif ($global) {
+ $b{$keyword} = $v;
+ } else {
+ if ($keyword eq 'kernel') {
+ $e->{type} = 'image';
+ $e->{kernel_or_dev} = $v;
+ } else {
+ $e->{$keyword} = $v;
+ }
+ }
+ }
+
+ %b;
+}
+
+sub read_uboot() {
+ my %b = _parse_extlinux_conf();
+
+ $b{method} = 'uboot';
+ $b{timeout} //= 30;
+
+ my $is_raspberry = cat_("/proc/device-tree/model") =~ /^Raspberry Pi/;
+ if ($is_raspberry) {
+ $b{perImageAppend} //= "8250.nr_uarts=1 console=ttyS0,115200 console=tty1 elevator=deadline cma=256M\@512M";
+ }
+
+ $b{perImageAppend} //= $b{entries}[0]{append};
+
+ \%b;
+}
+
+=item read_refind ($fstab)
+
+Read back rEFInd config + C</boot/refind_linux.conf>
+
+=cut
+
+sub read_refind() {
+ my %bootloader = (entries => []);
+ foreach (cat_utf8("$::prefix/boot/refind_linux.conf")) {
+ next if /^#/;
+ my ($label, $append) = /"(.*)"\s*"(.*)"/;
+ my $root = $1 if $append =~ s/root=(\S*)\s*//;
+ my $vga = $1 if $append =~ s/vga=(\S*)\s*//;
+ if ($label && $root) {
+ push @{$bootloader{entries}}, {
+ type => 'image',
+ kernel_or_dev => '/boot/vmlinuz',
+ label => $label,
+ root => $root,
+ append => $append,
+ vga => $vga
+ };
+ }
+ }
+ $bootloader{method} = 'refind';
+ read_refind_config(\%bootloader);
+ \%bootloader;
}
-# assumes file is in /boot
-# to do: use yaboot2dev for files as well
-#- example of of_path: /pci@f4000000/ata-6@d/disk@0:3,/initrd-2.6.8.1-8mdk.img
-sub yaboot2file {
- my ($of_path) = @_;
-
- if ($of_path =~ /,/) {
- "$::prefix/boot/" . basename($of_path);
+sub read_refind_config {
+ my ($bootloader) = @_;
+
+ #- These are the rEFInd default values.
+ $bootloader->{use_nvram} = 1;
+ $bootloader->{banner_path} = '';
+ $bootloader->{banner_scale} = 'noscale';
+
+ if (-r "$::prefix/boot/EFI/EFI/refind/refind.conf") {
+ read_refind_conf($bootloader, "$::prefix/boot/EFI/EFI/refind/refind.conf");
+ } elsif (-r "$::prefix/boot/EFI/EFI/BOOT/refind.conf") {
+ read_refind_conf($bootloader, "$::prefix/boot/EFI/EFI/BOOT/refind.conf");
} else {
- yaboot2dev($of_path);
+ #- This is the preferred value if rEFInd is not yet installed,
+ $bootloader->{banner_path} = 'refind_banner.png';
}
}
-sub read_silo() {
- my $bootloader = read_lilo_like("/boot/silo.conf", sub {
- my ($f) = @_;
- "/boot$f";
- });
- $bootloader->{method} = 'silo';
- $bootloader;
+sub read_refind_conf {
+ my ($bootloader, $config_file) = @_;
+ foreach (cat_utf8($config_file)) {
+ if ($_ =~ /^\s*use_nvram\s+(false|off|0)/) {
+ $bootloader->{use_nvram} = 0;
+ } elsif ($_ =~ /^\s*banner\s+(\S*)/) {
+ $bootloader->{banner_path} = $1;
+ } elsif ($_ =~ /^\s*banner_scale\s+(\S*)/) {
+ $bootloader->{banner_scale} = $1;
+ }
+ }
}
+
+# FIXME: actually read back previous conf
sub read_cromwell() {
- my %b;
- $b{method} = 'cromwell';
- \%b;
-}
-sub read_yaboot() {
- my $bootloader = read_lilo_like("/etc/yaboot.conf", \&yaboot2file);
- $bootloader->{method} = 'yaboot';
- $bootloader;
+ +{ method => 'cromwell' };
}
+
+
sub read_lilo() {
my $bootloader = read_lilo_like("/etc/lilo.conf", sub { $_[0] });
@@ -426,7 +836,7 @@ sub cleanup_entries {
#- cleanup bad entries (in case file is corrupted)
@{$bootloader->{entries}} =
grep {
- my $pb = $_->{type} eq 'image' && dirname($_->{kernel_or_dev}) eq '/boot' && ! -e "$::prefix$_->{kernel_or_dev}";
+ my $pb = $_->{type} eq 'image' && !$_->{keep_verbatim} && ! -e "$::prefix$_->{kernel_or_dev}";
log::l("dropping bootloader entry $_->{label} since $_->{kernel_or_dev} doesn't exist") if $pb;
!$pb;
} @{$bootloader->{entries}};
@@ -440,7 +850,7 @@ sub suggest_onmbr {
if (my $type = partition_table::raw::typeOfMBR($hd->{device})) {
if (member($type, qw(dos dummy empty))) {
$unsafe = 0;
- } elsif (!member($type, qw(lilo grub))) {
+ } elsif (!member($type, qw(lilo grub grub2))) {
$onmbr = 0;
}
log::l("bootloader::suggest_onmbr: type $type, onmbr $onmbr, unsafe $unsafe");
@@ -448,14 +858,41 @@ sub suggest_onmbr {
($onmbr, $unsafe);
}
+
+=item allowed_boot_disks($bootloader, $all_hds)
+
+Returns list of disks where we can install the bootloader when not in UEFI mode
+(accounting for misssing BIOS boot partitions on GPT disks)
+in UEFI mode, grub2 automatically look for the ESP).
+
+=cut
+
+sub allowed_boot_disks {
+ my ($all_hds) = @_;
+ # GPT disks w/o a BIOS boot partition do not have free space for grub2 to embed:
+ grep { $_->{pt_table_type} ne 'gpt' ||
+ any { isBIOS_GRUB($_) } map { partition_table::get_normal_parts($_) } $_;
+ } @{$all_hds->{hds}};
+}
+
+=item allowed_boot_parts($bootloader, $all_hds)
+
+Returns list of places where we can install the bootloader when not in UEFI mode
+(in UEFI mode, grub2 automatically look for the ESP).
+
+=cut
+
sub allowed_boot_parts {
my ($bootloader, $all_hds) = @_;
(
- @{$all_hds->{hds}},
+ allowed_boot_disks($all_hds), # MBR
+
if_($bootloader->{method} =~ /lilo/,
grep { $_->{level} eq '1' } @{$all_hds->{raids}}
),
- (grep { !isFat_or_NTFS($_) } fs::get::hds_fstab(@{$all_hds->{hds}})),
+ (if_(main_method($bootloader->{method}) ne 'grub2',
+ grep { !isFat_or_NTFS($_) } fs::get::fstab($all_hds)), # filesystems except those who do not leave space for our bootloaders
+ ),
detect_devices::floppies(),
);
}
@@ -464,7 +901,10 @@ sub same_entries {
my ($a, $b) = @_;
foreach (uniq(keys %$a, keys %$b)) {
- if (member($_, 'label', 'append', 'mapdrive', 'readonly', 'makeactive')) {
+ if (member($_, 'label', 'append', 'mapdrive', 'readonly', 'makeactive', 'verbatim')) {
+ next;
+ } elsif ($_ eq 'grub_root' && (!$a->{$_} || !$b->{$_})) {
+ #- grub_root is mostly internal stuff. if it misses, it's ok
next;
} else {
next if $a->{$_} eq $b->{$_};
@@ -484,7 +924,7 @@ sub add_entry {
my $to_add = $v;
my $label = $v->{label};
- for (my $i = 0; $i < 10;) {
+ for (my $i = 0; $i < 100;) {
my $conflicting = get_label($label, $bootloader);
$to_add->{label} = $label;
@@ -555,18 +995,7 @@ sub _do_the_symlink {
or cp_af("$::prefix/boot/$long_name", "$::prefix$link");
}
-sub cmp_kernel_versions {
- my ($va, $vb) = @_;
- my $rel_a = $va =~ s/-(.*)$// && $1;
- my $rel_b = $vb =~ s/-(.*)$// && $1;
- ($va, $vb) = map { [ split /[.-]/ ] } $va, $vb;
- my $r = 0;
- mapn_ {
- $r ||= $_[0] <=> $_[1];
- } $va, $vb;
- $r || $rel_a <=> $rel_b || $rel_a cmp $rel_b;
-}
-
+# for lilo & xen
sub get_mbootpack_filename {
my ($entry) = @_;
my $mbootpack_file = $entry->{initrd};
@@ -574,6 +1003,7 @@ sub get_mbootpack_filename {
$entry->{xen} && $mbootpack_file;
}
+# for lilo & xen
sub build_mbootpack {
my ($entry) = @_;
@@ -625,39 +1055,53 @@ sub add_kernel {
#- perImageAppend contains resume=/dev/xxx which we don't want
@$dict = grep { $_->[0] ne 'resume' } @$dict;
}
- if (-e "$::prefix/sbin/udev" && cmp_kernel_versions($kernel_str->{version_no_ext}, '2.6.8') >= 0) {
- log::l("it is a recent kernel, so we remove any existing devfs= kernel option to enable udev");
- @$dict = grep { $_->[0] ne 'devfs' } @$dict;
- }
$v->{append} = pack_append($simple, $dict);
}
- #- new versions of yaboot do not handle symlinks
- $b_nolink ||= arch() =~ /ppc/;
-
$b_nolink ||= $kernel_str->{use_long_name};
+ #- do not link /boot/vmlinuz to xen
+ $b_nolink ||= $v->{xen};
+
my $vmlinuz_long = kernel_str2vmlinuz_long($kernel_str);
+ my $initrd_long = kernel_str2initrd_long($kernel_str);
$v->{kernel_or_dev} = "/boot/$vmlinuz_long";
-e "$::prefix$v->{kernel_or_dev}" or log::l("unable to find kernel image $::prefix$v->{kernel_or_dev}"), return;
- if (!$b_nolink) {
- $v->{kernel_or_dev} = '/boot/' . kernel_str2vmlinuz_short($kernel_str);
- _do_the_symlink($bootloader, $v->{kernel_or_dev}, $vmlinuz_long);
- }
log::l("adding $v->{kernel_or_dev}");
if (!$b_no_initrd) {
- my $initrd_long = kernel_str2initrd_long($kernel_str);
$v->{initrd} = mkinitrd($kernel_str->{version}, $bootloader, $v, "/boot/$initrd_long");
- if ($v->{initrd} && !$b_nolink) {
+ }
+
+ my $liblinux_long = kernel_str2liblinux_long($kernel_str);
+ if (-d "$::prefix$liblinux_long") {
+ $v->{liblinux} = $v->{fdtdir} = $liblinux_long;
+ }
+
+ if (!$b_nolink) {
+ $v->{kernel_or_dev} = '/boot/' . kernel_str2vmlinuz_short($kernel_str);
+ _do_the_symlink($bootloader, $v->{kernel_or_dev}, $vmlinuz_long);
+
+ if ($v->{initrd}) {
$v->{initrd} = '/boot/' . kernel_str2initrd_short($kernel_str);
- _do_the_symlink($bootloader, $v->{initrd}, $initrd_long);
+ _do_the_symlink($bootloader, $v->{initrd}, $initrd_long);
+ }
+
+ if ($v->{liblinux}) {
+ $v->{liblinux} = kernel_str2liblinux_short();
+ _do_the_symlink($bootloader, $v->{liblinux}, basename($liblinux_long));
}
}
add_entry($bootloader, $v);
}
+=item rebuild_initrds($bootloader)
+
+Rebuilds all initrds
+
+=cut
+
sub rebuild_initrds {
my ($bootloader) = @_;
@@ -671,6 +1115,7 @@ sub rebuild_initrds {
}
}
+# unused (?)
sub duplicate_kernel_entry {
my ($bootloader, $new_label) = @_;
@@ -680,7 +1125,7 @@ sub duplicate_kernel_entry {
add_entry($bootloader, $entry);
}
-my $uniq_dict_appends = join('|', qw(devfs acpi pci resume PROFILE XFree));
+my $uniq_dict_appends = join('|', qw(acpi pci resume PROFILE XFree));
sub unpack_append {
my ($s) = @_;
@@ -703,7 +1148,7 @@ sub pack_append {
sub modify_append {
my ($b, $f) = @_;
- my @l = grep { $_->{type} eq 'image' && !($::isStandalone && $_->{label} eq 'failsafe') } @{$b->{entries}};
+ my @l = grep { $_->{type} eq 'image' && !$_->{keep_verbatim} && !($::isStandalone && $_->{label} eq 'failsafe') } @{$b->{entries}};
foreach (\$b->{perImageAppend}, map { \$_->{append} } @l) {
my ($simple, $dict) = unpack_append($$_);
@@ -713,8 +1158,6 @@ sub modify_append {
}
}
-sub append__mem_is_memsize { $_[0] =~ /^\d+[kM]?$/i }
-
sub get_append_simple {
my ($b, $key) = @_;
my ($simple, $_dict) = unpack_append($b->{perImageAppend});
@@ -761,24 +1204,6 @@ sub may_append_with_key {
set_append_with_key($b, $key, $val) if !get_append_with_key($b, $key);
}
-sub get_append_memsize {
- my ($b) = @_;
- my ($_simple, $dict) = unpack_append($b->{perImageAppend});
- my $e = find { $_->[0] eq 'mem' && append__mem_is_memsize($_->[1]) } @$dict;
- $e && $e->[1];
-}
-
-sub set_append_memsize {
- my ($b, $memsize) = @_;
-
- modify_append($b, sub {
- my ($_simple, $dict) = @_;
-
- @$dict = grep { $_->[0] ne 'mem' || !append__mem_is_memsize($_->[1]) } @$dict;
- push @$dict, [ mem => $memsize ] if $memsize;
- });
-}
-
sub get_append_netprofile {
my ($e) = @_;
my ($simple, $dict) = unpack_append($e->{append});
@@ -792,6 +1217,12 @@ sub set_append_netprofile {
$e->{append} = pack_append($simple, $dict);
}
+=item configure_entry($bootloader, $entry)
+
+Used when a bootloader $entry has been modified (eg: $entry->{vga})
+
+=cut
+
sub configure_entry {
my ($bootloader, $entry) = @_;
$entry->{type} eq 'image' or return;
@@ -809,26 +1240,18 @@ sub get_kernels_and_labels_before_kernel_remove {
map { kernel_str2label($_) => $_ } get_kernel_labels(\@kernels);
}
-sub get_kernels_and_labels {
- my ($b_prefer_24) = @_;
- get_kernel_labels([ installed_vmlinuz() ], $b_prefer_24);
+sub get_kernels_and_labels() {
+ get_kernel_labels([ installed_vmlinuz() ]);
}
sub get_kernel_labels {
- my ($kernels, $b_prefer_24) = @_;
+ my ($kernels) = @_;
my @kernels_str =
- sort { cmp_kernel_versions($b->{version_no_ext}, $a->{version_no_ext}) }
+ sort { common::cmp_kernel_versions($b->{version_no_ext}, $a->{version_no_ext}) }
grep { -d "$::prefix/lib/modules/$_->{version}" }
map { vmlinuz2kernel_str($_) } @$kernels;
- if ($b_prefer_24) {
- my ($kernel_24, $other) = partition { $_->{ext} eq '' && $_->{version} =~ /^\Q2.4/ } @kernels_str;
- @kernels_str = (@$kernel_24, @$other);
- }
-
- $kernels_str[0]{ext} = '';
-
my %labels;
foreach (@kernels_str) {
if ($labels{$_->{ext}}) {
@@ -837,6 +1260,9 @@ sub get_kernel_labels {
$labels{$_->{ext}} = 1;
}
}
+
+ $kernels_str[0]{ext} = '';
+
@kernels_str;
}
@@ -844,39 +1270,38 @@ sub short_ext {
my ($kernel_str) = @_;
my $short_ext = {
- 'i586-up-1GB' => 'i586',
- 'i686-up-4GB' => '4GB',
'xen0' => 'xen',
}->{$kernel_str->{ext}};
$short_ext || $kernel_str->{ext};
}
-sub sanitize_ver {
- my ($name, $kernel_str) = @_;
- $name = '' if $name eq 'linux';
+sub _sanitize_ver {
+ my ($kernel_str) = @_;
+
+ my $name = $kernel_str->{basename};
+ $name = '' if $name eq 'vmlinuz';
my $v = $kernel_str->{version_no_ext};
- if ($v =~ s/-\d+\.mm\././) {
- $name = join(' ', grep { $_ } $name, 'multimedia');
- }
- $v =~ s!md[kv]$!!;
+ $v =~ s!(md[kv]|mnb)$!!;
$v =~ s!-0\.(pre|rc)(\d+)\.!$1$2-!;
my $return = join(' ', grep { $_ } $name, short_ext($kernel_str), $v);
- length($return) < 30 or $return =~ s!secure!sec!;
- length($return) < 30 or $return =~ s!enterprise!ent!;
- length($return) < 30 or $return =~ s!multimedia!mm!;
-
$return;
}
+=item suggest_message_text($bootloader)
+
+Provides a description text for Lilo
+
+=cut
+
sub suggest_message_text {
my ($bootloader) = @_;
- if (!$bootloader->{message} && !$bootloader->{message_text} && arch() !~ /ia64/) {
+ if (!$bootloader->{message} && !$bootloader->{message_text}) {
my $msg_en =
#-PO: these messages will be displayed at boot time in the BIOS, use only ASCII (7bit)
N_("Welcome to the operating system chooser!
@@ -886,7 +1311,7 @@ wait for default boot.
");
my $msg = translate($msg_en);
- #- use the english version if more than 40% of 8bits chars
+ #- use the English version if more than 40% of 8bits chars
#- else, use the translation but force a conversion to ascii
#- to be sure there won't be undisplayable characters
if (int(grep { $_ & 0x80 } unpack "c*", $msg) / length($msg) > 0.4) {
@@ -904,36 +1329,28 @@ sub suggest {
my $root_part = fs::get::root($fstab);
my $root = isLoopback($root_part) ? '/dev/loop7' : fs::wild_device::from_part('', $root_part);
my $boot = fs::get::root($fstab, 'boot')->{device};
- #- PPC xfs module requires enlarged initrd
- my $xfsroot = $root_part->{fs_type} eq 'xfs';
+ my $mbr;
+
+ # If installing onto an USB drive, put the MBR there, else on the first non removable drive
+ if ($root_part->{is_removable}) {
+ $mbr = fs::get::part2hd($root_part, $all_hds);
+ } else {
+ $mbr = find { !$_->{is_removable} } allowed_boot_disks($all_hds);
+ }
- my ($onmbr, $unsafe) = $bootloader->{crushMbr} ? (1, 0) : suggest_onmbr($all_hds->{hds}[0]);
- add2hash_($bootloader, arch() =~ /ppc/ ?
- {
- defaultos => "linux",
- entries => [],
- 'init-message' => "Welcome to Mandriva Linux!",
- delay => 30, #- OpenFirmware delay
- timeout => 50,
- enableofboot => 1,
- enablecdboot => 1,
- if_(detect_devices::get_mac_model() =~ /IBM/,
- boot => "/dev/sda1",
- ),
- xfsroot => $xfsroot,
- } :
+ my ($onmbr, $unsafe) = $bootloader->{crushMbr} ? (1, 0) : suggest_onmbr($mbr);
+ add2hash_($bootloader,
{
bootUnsafe => $unsafe,
entries => [],
timeout => $onmbr && 10,
nowarn => 1,
- if_(arch() !~ /ia64/,
- boot => "/dev/" . ($onmbr ? $all_hds->{hds}[0]{device} : $boot),
+ boot => "/dev/" . ($onmbr ? $mbr->{device} : $boot),
map => "/boot/map",
compact => 1,
+ 'large-memory' => 1,
color => 'black/cyan yellow/cyan',
'menu-scheme' => 'wb:bw:wb:bw'
- ),
});
suggest_message_text($bootloader);
@@ -946,13 +1363,23 @@ sub suggest {
}
my @kernels = get_kernels_and_labels() or die "no kernel installed";
+ log::l("found kernels: ", join(', ', map { $_->{version} } @kernels));
+
+ my %old_kernels = map { vmlinuz2version($_->{kernel_or_dev}) => 1 } @{$bootloader->{entries}};
+ @kernels = grep { !$old_kernels{$_->{version}} } @kernels;
+
+ #- remove existing failsafe and linux-nonfb, do not care if the previous one was modified by the user?
+ #- but only if we are going to add new ones.
+ @{$bootloader->{entries}} = grep { !member($_->{label}, qw(failsafe linux-nonfb)) } @{$bootloader->{entries}}
+ if @kernels;
foreach my $kernel (@kernels) {
my $e = add_kernel($bootloader, $kernel,
{
root => $root,
- if_($options{vga_fb} && $kernel->{ext} eq '', vga => $options{vga_fb}), #- using framebuffer
- if_($options{vga_fb} && $options{quiet}, append => "splash=silent"),
+ if_($options{vga_fb}, vga => $options{vga_fb}), #- using framebuffer
+ if_($options{vga_fb} && $options{splash}, append => "splash noiswmd audit=0"),
+ if_($options{quiet}, append => "splash quiet noiswmd audit=0"),
});
if ($options{vga_fb} && $e->{label} eq 'linux') {
@@ -960,26 +1387,16 @@ sub suggest {
}
}
- #- remove existing failsafe, do not care if the previous one was modified by the user?
- @{$bootloader->{entries}} = grep { $_->{label} ne 'failsafe' } @{$bootloader->{entries}};
-
add_kernel($bootloader, $kernels[0],
- { root => $root, label => 'failsafe', append => 'failsafe' });
+ { root => $root, label => 'failsafe', append => 'failsafe noiswmd audit=0' })
+ if @kernels;
- if (arch() =~ /ppc/) {
- #- if we identified a MacOS partition earlier - add it
- if (defined $partition_table::mac::macos_part) {
- add_entry($bootloader,
- {
- type => "macos",
- kernel_or_dev => $partition_table::mac::macos_part
- });
- }
- } elsif (arch() !~ /ia64/) {
#- search for dos (or windows) boot partition. Do not look in extended partitions!
my @windows_boot_parts =
- grep { isFat_or_NTFS($_) && member(fs::type::fs_type_from_magic($_), 'vfat', 'ntfs')
- && fs::type::part2type_name($_) !~ /^Hidden/;
+ grep { $_->{active}
+ && isFat_or_NTFS($_) && member(fs::type::fs_type_from_magic($_), qw(vfat ntfs ntfs-3g))
+ && !$_->{is_removable}
+ && !isRecovery($_);
}
map { @{$_->{primary}{normal}} } @{$all_hds->{hds}};
each_index {
@@ -992,14 +1409,42 @@ sub suggest {
makeactive => 1,
});
} @windows_boot_parts;
- }
- my @preferred = map { "linux-$_" } 'p3-smp-64GB', 'secure', 'enterprise', 'smp', 'i686-up-4GB';
+ my @preferred = map { "linux-$_" } 'server';
if (my $preferred = find { get_label($_, $bootloader) } @preferred) {
$bootloader->{default} ||= $preferred;
}
$bootloader->{default} ||= "linux";
- $bootloader->{method} ||= first(method_choices($all_hds, 1));
+ $bootloader->{method} ||= first(method_choices($all_hds, 1), # best installed
+ method_choices($all_hds, 0)); # or best if no valid one is installed
+
+ $bootloader->{perImageAppend} = $bootloader->{entries}[0]{append};
+ $bootloader->{default_vga} = $options{vga_fb};
+
+ if (main_method($bootloader->{method}) eq 'grub') {
+ my %processed_entries = {};
+ foreach my $c (find_other_distros_grub_conf($fstab)) {
+ my %h = (
+ type => 'grub_configfile',
+ label => $c->{name},
+ kernel_or_dev => "/dev/$c->{bootpart}{device}",
+ configfile => $c->{grub_conf},
+ );
+ if ($c->{root}) {
+ my $key = "$c->{name} - $c->{linux} - $c->{initrd}";
+ next if $processed_entries{$key};
+ $processed_entries{$key} = 1;
+ add_entry($bootloader, {
+ %h,
+ linux => $c->{linux},
+ initrd => $c->{initrd},
+ root => $c->{root},
+ });
+ } else {
+ add_entry($bootloader, \%h);
+ }
+ }
+ }
}
sub detect_main_method {
@@ -1018,6 +1463,7 @@ sub config_files() {
lilo => '/etc/lilo.conf',
grub => '/boot/grub/menu.lst',
grub_install => '/boot/grub/install.sh',
+ uboot => '/boot/extlinux/extlinux.conf',
);
map_each {
@@ -1030,26 +1476,53 @@ sub method2text {
my ($method) = @_;
+{
'lilo-menu' => N("LILO with text menu"),
+ 'grub2-graphic' => N("GRUB2 with graphical menu"),
+ 'grub2' => N("GRUB2 with text menu"),
'grub-graphic' => N("GRUB with graphical menu"),
'grub-menu' => N("GRUB with text menu"),
- 'yaboot' => N("Yaboot"),
- 'silo' => N("SILO"),
+ 'refind' => N("rEFInd with graphical menu"),
+ 'uboot' => N("U-Boot/Extlinux with text menu"),
}->{$method};
}
+
+=item method_choices_raw($b_prefix_mounted)
+
+Returns list of bootloaders.
+
+method_choices_raw(1) will return the list of installed boot loaders.
+
+method_choices_raw(0) will return the list of all boot loaders supported by drakboot.
+
+Returns: ("grub2", "grub2-graphic")
+
+=cut
+
sub method_choices_raw {
my ($b_prefix_mounted) = @_;
detect_devices::is_xbox() ? 'cromwell' :
- arch() =~ /ppc/ ? 'yaboot' :
- arch() =~ /ia64/ ? 'lilo' :
- arch() =~ /sparc/ ? 'silo' :
- (
- if_(!$b_prefix_mounted || whereis_binary('grub', $::prefix),
+ arch() =~ /arm/ ? 'uboot' :
+ if_(!$b_prefix_mounted || whereis_binary('grub2-reboot', $::prefix),
+ 'grub2-graphic', 'grub2'),
+ if_(uefi_type() eq kernel_uefi_type() && (!$b_prefix_mounted || whereis_binary('refind-install', $::prefix)), 'refind'),
+ # only grub2 & rEFInd work on UEFI:
+ # lilo & grub-legacy do not suppport new ext4/xfs format and are unmainted so only allow them on upgrade:
+ if_(!is_uefi() && !($::isInstall && !$::o->{isUpgrade} || $::isLiveInstall), (
+ if_(!$b_prefix_mounted || whereis_binary('grub', $::prefix) && -f "$::prefix/boot/grub/install.sh",
'grub-graphic', 'grub-menu'),
- if_(!$b_prefix_mounted || whereis_binary('lilo', $::prefix),
+ if_(!$b_prefix_mounted || whereis_binary('lilo', $::prefix) && -f "$::prefix/etc/lilo.conf",
'lilo-menu'),
- );
+ ));
}
+
+=item method_choices($all_hds, $b_prefix_mounted)
+
+Returns list of supported bootloaders according to what is detected.
+
+Like method_choices_raw(), the $b_prefix_mounted parameter enables to return the list of either installed supported methods or the list of all supported boot loaders.
+
+=cut
+
sub method_choices {
my ($all_hds, $b_prefix_mounted) = @_;
my $fstab = [ fs::get::fstab($all_hds) ];
@@ -1058,11 +1531,20 @@ sub method_choices {
my $have_dmraid = find { fs::type::is_dmraid($_) } @{$all_hds->{hds}};
grep {
- !(/lilo/ && (isLoopback($root_part) || $have_dmraid))
- && !(/grub/ && isRAID($boot_part))
- && !(/grub-graphic/ && cat_("/proc/cmdline") =~ /console=ttyS/);
+ !(/lilo/ && (isLoopback($root_part) || $have_dmraid)) # LILO doesn't work fake raid
+ && (/grub2/ || $boot_part->{fs_type} ne 'btrfs') # Only grub2 works on btrfs
+ && !(/grub2?-graphic/ && cat_("/proc/cmdline") =~ /console=ttyS/); # No Gfx mode on console
} method_choices_raw($b_prefix_mounted);
}
+
+=item main_method_choices($b_prefix_mounted)
+
+Returns list of supported bootloaders, not distinging text/gfx mode.
+
+Like method_choices_raw(), the $b_prefix_mounted parameter enables to return the list of either installed supported methods or the list of all supported boot loaders.
+
+=cut
+
sub main_method_choices {
my ($b_prefix_mounted) = @_;
uniq(map { main_method($_) } method_choices_raw($b_prefix_mounted));
@@ -1072,6 +1554,7 @@ sub configured_main_methods() {
difference2([ main_method_choices(1) ], \@bad_main_methods);
}
+# for lilo
sub keytable {
my ($f) = @_;
$f or return;
@@ -1084,125 +1567,59 @@ sub keytable {
-r "$::prefix/$f" && $f;
}
-
-sub create_link_source() {
- #- we simply do it for all kernels :)
- #- so this can be used in %post of kernel and also of kernel-source
- foreach (all("$::prefix/usr/src")) {
- my ($version) = /^linux-(\d+\.\d+.*)/ or next;
- foreach (glob("$::prefix/lib/modules/$version*")) {
- -d $_ or next;
- log::l("creating symlink $_/build");
- symlink "/usr/src/linux-$version", "$_/build";
- log::l("creating symlink $_/source");
- symlink "/usr/src/linux-$version", "$_/source";
- }
- }
-}
-
-sub dev2yaboot {
- my ($dev) = @_;
-
- devices::make("$::prefix$dev"); #- create it in the chroot
-
- my $of_dev;
- run_program::rooted_or_die($::prefix, "/usr/sbin/ofpath", ">", \$of_dev, $dev);
- chomp($of_dev);
- log::l("OF Device: $of_dev");
- $of_dev;
-}
-
sub check_enough_space() {
my $e = "$::prefix/boot/.enough_space";
output $e, 1; -s $e or die N("not enough room in /boot");
unlink $e;
}
-sub write_yaboot {
+sub install_uboot {
my ($bootloader, $all_hds) = @_;
+ write_uboot($bootloader, $all_hds);
+ when_config_changed_uboot($bootloader);
+}
- my $fstab = [ fs::get::fstab($all_hds) ];
-
- my $file2yaboot = sub {
- my ($part, $file) = fs::get::file2part($fstab, $_[0]);
- dev2yaboot('/dev/' . $part->{device}) . "," . $file;
- };
-
- #- do not write yaboot.conf for old-world macs
- my $mac_type = detect_devices::get_mac_model();
- return if $mac_type =~ /Power Macintosh/;
-
- $bootloader->{prompt} ||= $bootloader->{timeout};
-
- if ($bootloader->{message_text}) {
- eval { output("$::prefix/boot/message", $bootloader->{message_text}) }
- and $bootloader->{message} = '/boot/message';
- }
-
- my @conf;
+sub _write_extlinux_conf {
+ my ($bootloader, $_all_hds) = @_;
if (!get_label($bootloader->{default}, $bootloader)) {
log::l("default bootloader entry $bootloader->{default} is invalid, choosing another one");
$bootloader->{default} = $bootloader->{entries}[0]{label};
}
- push @conf, "# yaboot.conf - generated by DrakX/drakboot";
- push @conf, "# WARNING: do not forget to run ybin after modifying this file\n";
- push @conf, "default=" . make_label_lilo_compatible($bootloader->{default}) if $bootloader->{default};
- push @conf, sprintf('init-message="\n%s\n"', $bootloader->{'init-message'}) if $bootloader->{'init-message'};
- if ($bootloader->{boot}) {
- push @conf, "boot=$bootloader->{boot}";
- push @conf, "ofboot=" . dev2yaboot($bootloader->{boot}) if $mac_type !~ /IBM/;
- } else {
- die "no bootstrap partition defined.";
- }
+ my @conf;
+ push @conf, "# File generated by DrakX/drakboot";
+ push @conf, "default " . $bootloader->{default} if $bootloader->{default};
+ push @conf, "timeout " . $bootloader->{timeout} if $bootloader->{timeout};
+ # needed to show boot menu and enable timeout
+ push @conf, "menu title Boot Menu" if $bootloader->{timeout};
- push @conf, map { "$_=$bootloader->{$_}" } grep { $bootloader->{$_} } (qw(delay timeout), if_($mac_type !~ /IBM/, 'defaultos'));
- push @conf, "install=/usr/lib/yaboot/yaboot";
- if ($mac_type =~ /IBM/) {
- push @conf, 'nonvram';
- } else {
- push @conf, 'magicboot=/usr/lib/yaboot/ofboot';
- push @conf, grep { $bootloader->{$_} } qw(enablecdboot enableofboot);
- }
foreach my $entry (@{$bootloader->{entries}}) {
+ push @conf, "\nlabel $entry->{label}";
+ push @conf, " kernel $entry->{kernel_or_dev}";
+ push @conf, " initrd $entry->{initrd}" if $entry->{initrd};
+ push @conf, " fdtdir $entry->{fdtdir}" if $entry->{fdtdir};
- if ($entry->{type} eq "image") {
- push @conf, "$entry->{type}=" . $file2yaboot->($entry->{kernel_or_dev});
- my @entry_conf;
- push @entry_conf, "label=" . make_label_lilo_compatible($entry->{label});
- push @entry_conf, "root=$entry->{root}";
- push @entry_conf, "initrd=" . $file2yaboot->($entry->{initrd}) if $entry->{initrd};
- #- xfs module on PPC requires larger initrd - say 6MB?
- push @entry_conf, "initrd-size=6144" if $bootloader->{xfsroot};
- push @entry_conf, qq(append=" $entry->{append}") if $entry->{append};
- push @entry_conf, grep { $entry->{$_} } qw(read-write read-only);
- push @conf, map { "\t$_" } @entry_conf;
- } else {
- my $of_dev = dev2yaboot($entry->{kernel_or_dev});
- push @conf, "$entry->{type}=$of_dev";
- }
+ my @append;
+ push @append, "root=" . $entry->{root} if $entry->{root};
+ push @append, $entry->{append} if $entry->{append};
+ push @conf, " append " . join(' ', @append) if @append;
}
- my $f = "$::prefix/etc/yaboot.conf";
- log::l("writing yaboot config to $f");
- renamef($f, "$f.old");
- output($f, map { "$_\n" } @conf);
+
+ my $f = "$::prefix/boot/extlinux/extlinux.conf";
+ log::l("writing extlinux config to $f");
+ renamef($f, $f . '.old');
+ output_with_perm($f, 0600, map { "$_\n" } @conf);
}
-sub install_yaboot {
+sub write_uboot {
my ($bootloader, $all_hds) = @_;
- log::l("Installing boot loader...");
- write_yaboot($bootloader, $all_hds);
- when_config_changed_yaboot($bootloader);
+ _write_extlinux_conf($bootloader, $all_hds);
}
-sub when_config_changed_yaboot {
- my ($bootloader) = @_;
- $::testing and return;
- if (defined $partition_table::mac::new_bootstrap) {
- run_program::run("hformat", $bootloader->{boot}) or die "hformat failed";
- }
- my $error;
- run_program::rooted($::prefix, "/usr/sbin/ybin", "2>", \$error) or die "ybin failed: $error";
+
+sub when_config_changed_uboot {
+ my ($_bootloader) = @_;
+ #- do not do anything
}
sub install_cromwell {
@@ -1215,7 +1632,7 @@ sub write_cromwell {
}
sub when_config_changed_cromwell {
my ($_bootloader) = @_;
- log::l("XBox/Cromwell - nothing to do...");
+ #- do not do anything
}
sub simplify_label {
@@ -1234,7 +1651,7 @@ sub make_label_lilo_compatible {
}
sub write_lilo {
- my ($bootloader, $all_hds) = @_;
+ my ($bootloader, $all_hds, $o_backup_extension) = @_;
$bootloader->{prompt} ||= $bootloader->{timeout};
my $file2fullname = sub {
@@ -1274,9 +1691,17 @@ sub write_lilo {
my @conf;
- #- normalize: RESTRICTED is only valid if PASSWORD is set
- delete $bootloader->{restricted} if !$bootloader->{password};
+ #- normalize: RESTRICTED and MANDATORY are only valid if PASSWORD is set
+ if ($bootloader->{password}) {
+ # lilo defaults to mandatory, use restricted by default to have
+ # the same behaviour as with grub
+ $bootloader->{restricted} = 1;
+ } else {
+ delete $bootloader->{mandatory} if !$bootloader->{password};
+ delete $bootloader->{restricted} if !$bootloader->{password};
+ }
foreach my $entry (@{$bootloader->{entries}}) {
+ delete $entry->{mandatory} if !$entry->{password} && !$bootloader->{password};
delete $entry->{restricted} if !$entry->{password} && !$bootloader->{password};
}
if (get_append_with_key($bootloader, 'console') =~ /ttyS(.*)/) {
@@ -1291,7 +1716,7 @@ sub write_lilo {
push @conf, "# WARNING: do not forget to run lilo after modifying this file\n";
push @conf, "default=" . make_label_lilo_compatible($bootloader->{default}) if $bootloader->{default};
push @conf, map { $_ . '=' . $quotes_if_needed->($bootloader->{$_}) } grep { $bootloader->{$_} } qw(boot root map install serial vga keytable raid-extra-boot menu-scheme vmdefault);
- push @conf, grep { $bootloader->{$_} } qw(linear geometric compact prompt nowarn restricted static-bios-codes);
+ push @conf, grep { $bootloader->{$_} } qw(linear geometric compact prompt mandatory nowarn restricted static-bios-codes large-memory);
push @conf, "append=" . $quotes->($bootloader->{append}) if $bootloader->{append};
push @conf, "password=" . $bootloader->{password} if $bootloader->{password}; #- also done by msec
push @conf, "timeout=" . round(10 * $bootloader->{timeout}) if $bootloader->{timeout};
@@ -1308,6 +1733,9 @@ sub write_lilo {
warn "mbootpack is required for xen but unavailable, skipping\n";
next;
}
+ if ($entry->{type} eq 'grub_configfile') {
+ next;
+ }
push @conf, "$entry->{type}=" . $file2fullname->($mbootpack_file || $entry->{kernel_or_dev});
my @entry_conf;
@@ -1322,6 +1750,7 @@ sub write_lilo {
push @entry_conf, "append=" . $quotes->($append) if $append;
push @entry_conf, "vga=$entry->{vga}" if $entry->{vga};
push @entry_conf, grep { $entry->{$_} } qw(read-write read-only optional);
+ push @entry_conf, "mandatory" if $entry->{lock};
} else {
delete $entry->{unsafe} if $entry->{table}; #- we can't have both
push @entry_conf, map { "$_=$entry->{$_}" } grep { $entry->{$_} } qw(table boot-as);
@@ -1342,14 +1771,14 @@ sub write_lilo {
}
}
push @entry_conf, "password=$entry->{password}" if $entry->{password};
- push @entry_conf, grep { $entry->{$_} } qw(restricted vmwarn vmdisable);
+ push @entry_conf, grep { $entry->{$_} } qw(mandatory vmwarn vmdisable);
push @conf, map { "\t$_" } @entry_conf;
}
my $f = arch() =~ /ia64/ ? "$::prefix/boot/efi/elilo.conf" : "$::prefix/etc/lilo.conf";
log::l("writing lilo config to $f");
- renamef($f, "$f.old");
+ renamef($f, $f . ($o_backup_extension || '.old'));
output_with_perm($f, $bootloader->{password} ? 0600 : 0644, map { "$_\n" } @conf);
}
@@ -1392,7 +1821,7 @@ sub install_raw_lilo {
sub when_config_changed_lilo {
my ($bootloader) = @_;
- if (!$::testing && arch() !~ /ia64/ && $bootloader->{method} =~ /lilo/) {
+ if (!$::testing && $bootloader->{method} =~ /lilo/) {
log::l("Installing boot loader on $bootloader->{boot}...");
install_raw_lilo($bootloader->{force_lilo_answer});
}
@@ -1404,10 +1833,19 @@ sub hd2bios_kind {
lc(join('_', $hd->{bus}, $hd->{host}));
}
+sub ensafe_first_bios_drive {
+ my ($hds) = @_;
+ mixed_kind_of_disks($hds) || @$hds > 1 && _not_first_bios_drive($hds->[0]);
+}
sub mixed_kind_of_disks {
my ($hds) = @_;
(uniq_ { hd2bios_kind($_) } @$hds) > 1;
}
+sub _not_first_bios_drive {
+ my ($hd) = @_;
+ my $bios = $hd && $hd->{bios_from_edd};
+ $bios && $bios ne '80';
+}
sub sort_hds_according_to_bios {
my ($bootloader, $all_hds) = @_;
@@ -1466,26 +1904,76 @@ sub write_grub_device_map {
(map_index { "(hd$::i) /dev/$_->{device}\n" } @$sorted_hds));
}
-sub grub2dev_and_file {
- my ($grub_file, $grub2dev, $o_block_device) = @_;
+=item parse_grub_file($grub_file)
+
+Parses things like C<(hd0,4)/boot/vmlinuz>
+
+Returns: ("hd0", 4, "boot/vmlinuz")
+
+=cut
+
+sub parse_grub_file {
+ my ($grub_file) = @_;
my ($grub_dev, $rel_file) = $grub_file =~ m!\((.*?)\)/?(.*)! or return;
my ($hd, $part) = split(',', $grub_dev);
+ ($hd, $part, $rel_file);
+}
+
+=item grub2dev_and_file($grub_file, $grub2dev, $o_block_device)
+
+Takes things like C<(hd0,4)/boot/vmlinuz>
+
+Returns: ("/dev/sda5", "boot/vmlinuz")
+
+=cut
+
+sub grub2dev_and_file {
+ my ($grub_file, $grub2dev, $o_block_device) = @_;
+ my ($hd, $part, $rel_file) = parse_grub_file($grub_file) or return;
$grub2dev->{$hd} or internal_error("$hd has no mapping in device.map (when translating $grub_file)");
$part = $o_block_device ? '' : defined $part && $part + 1; #- grub wants "(hdX,Y)" where lilo just want "hdY+1"
- my $device = '/dev/' . $grub2dev->{$hd} . $part;
+ my $device = '/dev/' . ($part eq '' ? $grub2dev->{$hd} : devices::prefix_for_dev($grub2dev->{$hd}) . $part);
$device, $rel_file;
}
+
+=item grub2devd($grub_file, $grub2dev, $o_block_device)
+
+Takes things like C<(hd0,4)/boot/vmlinuz>
+
+Returns: "/dev/sda5"
+
+=cut
+
sub grub2dev {
my ($grub_file, $grub2dev, $o_block_device) = @_;
first(grub2dev_and_file($grub_file, $grub2dev, $o_block_device));
}
-# replace dummy "(hdX,Y)" in "(hdX,Y)/boot/vmlinuz..." by appropriate path if needed
+=item grub2file($grub_file, $grub2dev, $fstab, $o_entry)
+
+Replaces
+
+=over 4
+
+=item * C</vmlinuz> with C</boot/vmlinuz> when "root" or "rootnoverify" is set for the entry
+
+=item * C<(hdX,Y)> in C<(hdX,Y)/boot/vmlinuz...> by appropriate path if possible/needed
+
+=back
+
+=cut
+
sub grub2file {
- my ($grub_file, $grub2dev, $fstab) = @_;
+ my ($grub_file, $grub2dev, $fstab, $o_entry) = @_;
+
+ if ($grub_file =~ m!^/!) {
+ my $root = $o_entry && ($o_entry->{rootnoverify} || $o_entry->{grub_root});
+ $root and $grub_file = "$root$grub_file";
+ }
+
if (my ($device, $rel_file) = grub2dev_and_file($grub_file, $grub2dev)) {
- if (my $part = fs::get::device2part($device, $fstab)) {
- my $mntpoint = $part->{mntpoint} || '';
+ my $part = fs::get::device2part($device, $fstab);
+ if (my $mntpoint = $part && $part->{mntpoint}) {
($mntpoint eq '/' ? '' : $mntpoint) . '/' . $rel_file;
} else {
log::l("ERROR: unknown device $device (computed from $grub_file)");
@@ -1524,8 +2012,172 @@ sub update_copy_in_boot {
}
}
+sub crypt_grub_password {
+ my ($password) = @_;
+ require IPC::Open2;
+ local $ENV{LC_ALL} = 'C';
+ my ($his_out, $his_in);
+ my $cmd = ($::prefix ? "chroot $::prefix " : "") . "/sbin/grub-md5-crypt";
+
+ my $pid = IPC::Open2::open2($his_out, $his_in, $cmd);
+
+ my ($line, $res);
+ while (sysread($his_out, $line, 100)) {
+ if ($line =~ /Password/i) {
+ syswrite($his_in, "$password\n");
+ } else {
+ $res = $line;
+ }
+ }
+ waitpid($pid, 0);
+ my $status = $? >> 8;
+ die "failed to encrypt password (status=$status)" if $status != 0;
+ chomp_($res);
+}
+
+sub get_grub2_first_entry {
+ my ($bootloader) = @_;
+ # set default parameters:
+ my ($entry) = grep { $_->{kernel_or_dev} =~ /vmlin/ } @{$bootloader->{entries}};
+ $entry;
+}
+
+sub get_grub2_append {
+ my ($bootloader) = @_;
+ # get default parameters from first entry:
+ my ($entry) = get_grub2_first_entry($bootloader);
+ my $append = $entry->{append};
+ if (my $vga = $entry->{vga} || $bootloader->{vga}) {
+ $append .= " vga=$vga";
+ }
+ $append =~ s/root=\S+//g;
+ $append =~ s/\bro\b//g;
+ $append =~ s/\s+/ /g;
+ $append;
+}
+
+sub crypt_grub2_password {
+ my ($password) = @_;
+ require IPC::Open2;
+ local $ENV{LC_ALL} = 'C';
+ my ($his_out, $his_in);
+ my $pid = IPC::Open2::open2($his_out, $his_in, "$::prefix/bin/grub2-mkpasswd-pbkdf2");
+
+ my ($line, $res);
+ while (sysread($his_out, $line, 100)) {
+ if ($line =~ /enter.*password:/i) {
+ syswrite($his_in, "$password\n");
+ } else {
+ chomp($line);
+ $res .= $line if $line;
+ }
+ }
+ $res =~ s/^PBKDF2 hash of your password is //;
+ waitpid($pid, 0);
+ my $status = $? >> 8;
+ die "failed to encrypt password (status=$status)" if $status != 0;
+ chomp_($res);
+}
+
+sub write_grub2_sysconfig {
+ my ($bootloader, $_all_hds, $o_backup_extension) = @_;
+
+ # Set password prior to run update-grub2:
+ my $pw_f = get_grub2_users();
+ if ($bootloader->{password}) {
+ if (!is_grub2_already_crypted($bootloader->{password})) {
+ $bootloader->{password} = crypt_grub2_password($bootloader->{password});
+ }
+ output_with_perm($pw_f, 0600, "GRUB2_PASSWORD=$bootloader->{password}");
+ } else {
+ unlink($pw_f);
+ }
+
+ my $f = "$::prefix/etc/default/grub";
+ my %conf = getVarsFromSh($f);
+
+ my $append = $bootloader->{perImageAppend} || get_grub2_append($bootloader);
+ my $vga = $bootloader->{default_vga};
+ $append .= " vga=$vga" if $append !~ /vga=/ && $vga && $vga ne "normal";
+
+ $conf{GRUB_CMDLINE_LINUX_DEFAULT} = $append;
+ $conf{GRUB_GFXPAYLOAD_LINUX} = 'auto' if is_uefi();
+ $conf{GRUB_DISABLE_RECOVERY} = 'false'; # for 'failsafe' entry
+ $conf{GRUB_DEFAULT} //= 'saved'; # for default entry but do not overwrite user choice
+ $conf{GRUB_SAVEDEFAULT} //= 'true'; # for default entry but do not overwrite user choice
+ # special case so that setVarsInSh() doesn't emit the line when timeout is 0
+ $conf{GRUB_TIMEOUT} = $bootloader->{timeout} eq 0 ? "0 " : $bootloader->{timeout};
+ renamef($f, $f . ($o_backup_extension || '.old'));
+ setVarsInSh($f, \%conf);
+}
+
+sub write_grub2_default_entry {
+ my ($bootloader, $_all_hds, $o_backup_extension) = @_;
+
+ my $default = $bootloader->{default};
+ # menu entry must be identified by its full path. eg: "submenu1>submenu2>title":
+ if (my $def = find { $_->{label} eq $bootloader->{default} } @{$bootloader->{entries}}) {
+ $default = $def->{real_label} if $def->{real_label};
+ }
+
+ # set default entry:
+ eval {
+ my $f2 = "$::prefix/boot/grub2/grubenv";
+ cp_af($f2, $f2 . ($o_backup_extension || '.old'));
+ my $error;
+ run_program::rooted($::prefix, 'grub2-set-default', '2>', \$error, $default) or die "grub2-set-default failed: $error";
+ };
+ if (my $err = $@) {
+ log::l("error while running grub2-set-default: $err");
+ }
+}
+
+sub write_grub2 {
+ my ($bootloader, $o_all_hds, $o_backup_extension) = @_;
+ my $error;
+
+ write_grub2_sysconfig($bootloader, $o_all_hds, $o_backup_extension);
+
+ my $f1 = "$::prefix/boot/grub2/grub.cfg";
+ #- we won't just rename as grub2-mkconfig (more likely os-prober) may fail:
+ cp_af($f1, $f1 . '.old') if -e $f1;
+ #- don't use the update-grub2 script here, it hangs when run by service_harddrake
+ #- during boot because it causes systemd to try to start a user session
+ run_program::rooted($::prefix, 'grub2-mkconfig', '2>', \$error, '-o', '/boot/grub2/grub.cfg') or die "grub2-mkconfig failed: $error";
+ log::l("grub2-mkconfig logs: $error");
+
+ write_grub2_default_entry($bootloader, $o_all_hds, $o_backup_extension);
+ check_enough_space();
+}
+
+sub get_grub2_users() {
+ "$::prefix/boot/grub2/user.cfg";
+}
+
+sub get_grub2_install_sh() {
+ "$::prefix/boot/grub2/install.sh";
+}
+
+sub write_grub2_install_sh {
+ my ($bootloader, $o_backup_extension) = @_;
+ my $f = get_grub2_install_sh();
+ my $boot = $bootloader->{boot};
+ my @options;
+ if (is_uefi()) {
+ if ($bootloader->{no_esp_or_mbr}) {
+ push @options, qw(--bootloader-id=tmp --no-nvram);
+ } elsif ($bootloader->{removable}) {
+ push @options, '--removable';
+ }
+ } else {
+ @options = $bootloader->{no_esp_or_mbr} ? ('--grub-setup=/bin/true', $boot) : $boot;
+ }
+ renamef($f, $f . ($o_backup_extension || '.old'));
+ output_with_perm($f, 0755, join(' ', 'grub2-install', @options));
+}
+
sub write_grub {
- my ($bootloader, $all_hds) = @_;
+ my ($bootloader, $all_hds, $o_backup_extension) = @_;
my $fstab = [ fs::get::fstab($all_hds) ];
my @legacy_floppies = detect_devices::floppies();
@@ -1555,7 +2207,7 @@ sub write_grub {
$bootloader->{terminal} ||= "--timeout=" . ($bootloader->{timeout} || 0) . " console serial";
} elsif ($bootloader->{method} eq 'grub-graphic') {
my $bin = '/usr/sbin/grub-gfxmenu';
- if ($bootloader->{gfxmenu} eq '' && -x "$::prefix/usr/sbin/grub-gfxmenu") {
+ if ($bootloader->{gfxmenu} eq '' && -x "$::prefix$bin") {
my $locale = $::o->{locale} || do { require lang; lang::read() };
run_program::rooted($::prefix, $bin, '--lang', $locale->{lang}, '--update-gfxmenu');
$bootloader->{gfxmenu} ||= '/boot/gfxmenu';
@@ -1566,10 +2218,21 @@ sub write_grub {
delete $bootloader->{gfxmenu};
}
+ my $format = sub { map { "$_ $bootloader->{$_}" } @_ };
+
{
my @conf;
- push @conf, map { "$_ $bootloader->{$_}" } grep { $bootloader->{$_} } qw(timeout color password serial shade terminal viewport background foreground);
+ if ($bootloader->{password}) {
+ if (!is_already_crypted($bootloader->{password})) {
+ my $encrypted = crypt_grub_password($bootloader->{password});
+ $bootloader->{password} = "--md5 $encrypted";
+ }
+ }
+
+ push @conf, $format->(grep { defined $bootloader->{$_} } qw(timeout));
+ push @conf, $format->(grep { $bootloader->{$_} } qw(color password serial shade terminal viewport background foreground));
+
push @conf, map { $_ . ' ' . $file2grub->($bootloader->{$_}) } grep { $bootloader->{$_} } qw(gfxmenu);
eval {
@@ -1579,7 +2242,9 @@ sub write_grub {
foreach my $entry (@{$bootloader->{entries}}) {
my $title = "\ntitle $entry->{label}";
- if ($entry->{type} eq "image") {
+ if ($entry->{keep_verbatim}) {
+ push @conf, '', $entry->{verbatim};
+ } elsif ($entry->{type} eq "image") {
push @conf, $title;
push @conf, grep { $entry->{$_} } 'lock';
push @conf, join(' ', 'kernel', $file2grub->($entry->{xen}), $entry->{xen_append}) if $entry->{xen};
@@ -1587,13 +2252,24 @@ sub write_grub {
my $vga = $entry->{vga} || $bootloader->{vga};
push @conf, join(' ', $entry->{xen} ? 'module' : 'kernel',
$file2grub->($entry->{kernel_or_dev}),
- $entry->{xen} ? '' : 'BOOT_IMAGE=' . simplify_label($entry->{label}),
+ $entry->{xen} ? () : 'BOOT_IMAGE=' . simplify_label($entry->{label}),
if_($entry->{root}, $entry->{root} =~ /loop7/ ? "root=707" : "root=$entry->{root}"), #- special to workaround bug in kernel (see #ifdef CONFIG_BLK_DEV_LOOP)
$entry->{append},
if_($entry->{'read-write'}, 'rw'),
if_($vga && $vga ne "normal", "vga=$vga"));
push @conf, "module " . $_ foreach @{$entry->{modules} || []};
- push @conf, join(' ', $entry->{xen} ? 'module' : 'initrd', $file2grub->($entry->{initrd})) if $entry->{initrd};
+ if ($entry->{initrd}) {
+ # split partition from initrd path and place
+ # it to a separate 'root' entry.
+ # Grub2's mkconfig takes initrd entry 'as is',
+ # but grub2 fails to load smth like '(hd0,1)/boot/initrd' taken from grub-legacy
+ my $initrd_path = $file2grub->($entry->{initrd});
+ if ($initrd_path =~ /^(\([^\)]+\))/) {
+ push @conf, "root $1";
+ $initrd_path =~ s/^(\([^\)]+\))//;
+ }
+ push @conf, join(' ', $entry->{xen} ? 'module' : 'initrd', $initrd_path);
+ }
} else {
my $dev = eval { device_string2grub($entry->{kernel_or_dev}, \@legacy_floppies, \@sorted_hds) };
if (!$dev) {
@@ -1601,7 +2277,10 @@ sub write_grub {
next;
}
push @conf, $title;
- push @conf, join(' ', $entry->{grub_noverify} ? 'rootnoverify' : 'root', $dev);
+ push @conf, grep { $entry->{$_} } 'lock';
+ if ($entry->{type} ne 'grub_configfile' || $entry->{configfile} !~ /grub\.cfg/ || !$entry->{root}) {
+ push @conf, join(' ', $entry->{rootnoverify} ? 'rootnoverify' : 'root', $dev);
+ }
if ($entry->{table}) {
if (my $hd = fs::get::device2part($entry->{table}, \@sorted_hds)) {
@@ -1616,19 +2295,27 @@ sub write_grub {
push @conf, map_each { "map ($::b) ($::a)" } %{$entry->{mapdrive}};
}
push @conf, "makeactive" if $entry->{makeactive};
- push @conf, "chainloader +1";
+ # grub.cfg is grub2 config, can't use it as configfile for grub-legacy
+ if ($entry->{type} eq 'grub_configfile' && $entry->{configfile} !~ /grub\.cfg/) {
+ push @conf, "configfile $entry->{configfile}";
+ } elsif ($entry->{linux}) {
+ push @conf, "root $entry->{root}", "kernel $entry->{linux}";
+ push @conf, "initrd $entry->{initrd}" if $entry->{initrd};
+ } else {
+ push @conf, "chainloader +1";
+ }
}
}
my $f = "$::prefix/boot/grub/menu.lst";
log::l("writing grub config to $f");
- renamef($f, "$f.old");
- output($f, map { "$_\n" } @conf);
+ renamef($f, $f . ($o_backup_extension || '.old'));
+ output_with_perm($f, 0600, map { "$_\n" } @conf);
}
{
my $f = "$::prefix/boot/grub/install.sh";
my $boot_dev = device_string2grub($bootloader->{boot}, \@legacy_floppies, \@sorted_hds);
my $files_dev = device2grub(fs::get::root_($fstab, 'boot'), \@sorted_hds);
- renamef($f, "$f.old");
+ renamef($f, $f . ($o_backup_extension || '.old'));
output_with_perm($f, 0755,
"grub --device-map=/boot/grub/device.map --batch <<EOF
root $files_dev
@@ -1659,12 +2346,65 @@ sub sync_partition_data_to_disk {
}
}
+sub _dev_to_MBR_backup {
+ my ($dev) = @_;
+ $dev =~ s!/dev/!!;
+ $dev =~ s!/!_!g;
+ "$::prefix/boot/boot.backup.$dev";
+}
+
+sub save_previous_MBR_bootloader {
+ my ($dev) = @_;
+ my $t;
+ open(my $F, $dev);
+ CORE::read($F, $t, 0x1b8); #- up to disk magic
+ output(_dev_to_MBR_backup($dev), $t);
+}
+
+sub restore_previous_MBR_bootloader {
+ my ($dev) = @_;
+ log::l("restoring previous bootloader on $dev");
+ output($dev, scalar cat_(_dev_to_MBR_backup($dev)));
+}
+
+sub install_grub2 {
+ my ($bootloader, $all_hds) = @_;
+ write_grub2($bootloader, $all_hds);
+ write_grub2_install_sh($bootloader, '.old');
+ install_raw_grub2();
+}
+
+sub install_raw_grub2() {
+ my $error;
+ my $f = '/boot/grub2/install.sh';
+ my ($right_dir, $bad_dir) = ("$::prefix/boot/EFI/EFI/", "$::prefix/boot/EFI/efi/");
+ if (-e $bad_dir && ! -e $right_dir) {
+ renamef($bad_dir, $right_dir);
+ }
+ if (!run_program::rooted($::prefix, "sh", "2>", \$error, $f)) {
+ log::explanations("grub2-install failed:\n(" . cat_($f) . ")\nError: <$error>");
+ die "grub2-install failed: $error";
+ }
+}
+
sub install_grub {
my ($bootloader, $all_hds) = @_;
write_grub($bootloader, $all_hds);
if (!$::testing) {
+ if ($bootloader->{previous_boot} && $bootloader->{previous_boot} eq $bootloader->{boot}) {
+ # nothing to do (already installed in {boot})
+ } else {
+ if ($bootloader->{previous_boot}) {
+ restore_previous_MBR_bootloader(delete $bootloader->{previous_boot});
+ }
+ if (fs::get::device2part($bootloader->{boot}, [ fs::get::hds($all_hds) ])) {
+ save_previous_MBR_bootloader($bootloader->{boot});
+ $bootloader->{previous_boot} = $bootloader->{boot};
+ }
+ }
+
my @files = grep { /(stage1|stage2|_stage1_5)$/ } glob("$::prefix/lib/grub/*/*");
cp_af(@files, "$::prefix/boot/grub");
sync_partition_data_to_disk(fs::get::root([ fs::get::fstab($all_hds) ], 'boot'));
@@ -1679,6 +2419,11 @@ sub install_raw_grub() {
run_program::rooted($::prefix, "sh", "2>", \$error, '/boot/grub/install.sh') or die "grub failed: $error";
}
+sub when_config_changed_grub2 {
+ my ($_bootloader) = @_;
+ #- do not do anything
+}
+
sub when_config_changed_grub {
my ($_bootloader) = @_;
#- do not do anything
@@ -1686,6 +2431,187 @@ sub when_config_changed_grub {
update_copy_in_boot($_) foreach glob($::prefix . boot_copies_dir() . '/*.link');
}
+sub write_refind {
+ my ($bootloader, $_all_hds, $o_backup_extension) = @_;
+
+ my @config;
+
+ foreach my $entry (@{$bootloader->{entries}}) {
+ if ($entry->{type} eq 'image' && $entry->{kernel_or_dev} eq '/boot/vmlinuz') {
+ my $vga = $entry->{vga} || $bootloader->{vga};
+ my $boot_params = join(' ',
+ "root=$entry->{root}",
+ $entry->{append},
+ if_($entry->{'read-write'}, 'rw'),
+ if_($vga && $vga ne "normal", "vga=$vga")
+ );
+ push @config, '"' . $entry->{label} . '" "' . $boot_params . '"';
+ }
+ }
+ if (@config) {
+ my $f = "$::prefix/boot/refind_linux.conf";
+ log::l("writing rEFInd config to $f");
+ renamef($f, $f . ($o_backup_extension || '.old'));
+ output_with_perm($f, 0600, map { "$_\n" } @config);
+ check_enough_space();
+ } else {
+ log::l("config has no entries - rEFInd config file not written");
+ }
+
+ my $default_kernel = readlink("$::prefix/boot/vmlinuz");
+ if ($default_kernel) {
+ if ($bootloader->{use_nvram}) {
+ write_refind_previous_boot_var($default_kernel);
+ } else {
+ write_refind_previous_boot_file($default_kernel, "$::prefix/boot/EFI/EFI/refind");
+ write_refind_previous_boot_file($default_kernel, "$::prefix/boot/EFI/EFI/BOOT");
+ }
+ }
+}
+
+sub write_refind_previous_boot_var {
+ my ($kernel) = @_;
+ my ($efivars, $already_mounted) = mount_efivars();
+ my $previous_boot = "$efivars/PreviousBoot-36d08fa7-cf0b-42f5-8f14-68df73ed3740";
+ run_program::run('chattr', '-i', $previous_boot) if -e $previous_boot;
+ if (open(my $efivar, '>:raw', $previous_boot)) {
+ require Encode;
+ log::l("writing rEFInd PreviousBoot variable");
+ print $efivar "\x07\x00\x00\x00";
+ print $efivar Encode::encode('UTF16-LE', $kernel);
+ print $efivar "\x00\x00";
+ close($efivar);
+ } else {
+ log::l("failed to write rEFInd PreviousBoot variable: $@ ($!)");
+ }
+ run_program::run('umount', $efivars) if !$already_mounted;
+}
+
+sub write_refind_previous_boot_file {
+ my ($kernel, $base_path) = @_;
+ return if ! -e "$base_path/refind.conf" || ! mkdir_p("$base_path/vars");
+ if (open(my $f, '>:raw', "$base_path/vars/PreviousBoot")) {
+ require Encode;
+ log::l("writing rEFInd $base_path/vars/PreviousBoot file");
+ print $f Encode::encode('UTF16-LE', "Boot boot\\$kernel");
+ print $f "\x00\x00";
+ close($f);
+ } else {
+ log::l("failed to write rEFInd $base_path/vars/PreviousBoot file");
+ }
+}
+
+sub install_refind {
+ my ($bootloader, $all_hds) = @_;
+
+ if ($bootloader->{install_mode} ne 'no_install') {
+ my (@options, $error);
+ if ($bootloader->{install_mode} eq 'as_default') {
+ $bootloader->{esp_device} or die "ESP device is unknown";
+ push @options, '--usedefault';
+ push @options, $bootloader->{esp_device};
+ #- refind_install uses lower case file names. If a default bootloader was previously
+ #- created with an upper case file name, Linux won't overwrite it.
+ my $default_fn = "$::prefix/boot/EFI/EFI/BOOT/BOOT" . uc(uefi_type()) . ".EFI";
+ unlink($default_fn) if -e $default_fn;
+ } elsif ($bootloader->{install_mode} eq 'nvram_only') {
+ push @options, '--nvramonly';
+ }
+ run_program::rooted($::prefix, '/sbin/refind-install', '2>', \$error, @options)
+ or die "refind-install failed: $error";
+ }
+
+ #- This file is not used by rEFInd itself. It just defines the paths to the image
+ #- files used for the standard banner choices.
+ my %h = getVarsFromSh("$::prefix/etc/sysconfig/refind");
+
+ my $banner_source;
+ if ($bootloader->{banner_path} eq 'refind_banner.png') {
+ $banner_source = "$::prefix" . $h{REFIND_BANNER};
+ } elsif ($bootloader->{banner_path} eq 'mageia_theme.png') {
+ $banner_source = "$::prefix" . $h{MAGEIA_THEME};
+ }
+ if (defined $banner_source && ! (-f $banner_source && -r $banner_source)) {
+ log::l("$banner_source does not exist or is not readable");
+ $bootloader->{banner_path} = '';
+ $bootloader->{banner_scale} = 'noscale';
+ undef $banner_source;
+ }
+
+ #- Try both possible locations for the main config file.
+ modify_refind_config($bootloader, $banner_source, "$::prefix/boot/EFI/EFI/refind");
+ modify_refind_config($bootloader, $banner_source, "$::prefix/boot/EFI/EFI/BOOT");
+
+ write_refind($bootloader, $all_hds);
+}
+
+sub modify_refind_config {
+ my ($bootloader, $banner_source, $esp_dir) = @_;
+
+ my $config_file = "$esp_dir/refind.conf";
+ return if ! -f $config_file || ! -w $config_file;
+
+ my $use_nvram = $bootloader->{use_nvram} ? 'true' : 'false';
+
+ my $banner_path = $bootloader->{banner_path};
+ cp_f($banner_source, "$esp_dir/$banner_path") if (defined $banner_source);
+
+ my $banner_scale = $bootloader->{banner_scale};
+
+ my @config;
+
+ my %done;
+ foreach (cat_utf8($config_file)) {
+ if ($_ =~ /^#?use_nvram\s/) {
+ if (! $done{use_nvram}) {
+ push @config, "use_nvram $use_nvram\n" ;
+ $done{use_nvram} = 1;
+ }
+ } elsif ($_ =~ /^#?banner\s/) {
+ if (! $done{banner_path}) {
+ if ($banner_path eq '') {
+ push @config, "#banner my_banner.png\n";
+ } else {
+ push @config, "banner $banner_path\n";
+ }
+ $done{banner_path} = 1;
+ }
+ } elsif ($_ =~ /^#?banner_scale\s/) {
+ if (! $done{banner_scale}) {
+ push @config, "banner_scale $banner_scale\n";
+ $done{banner_scale} = 1;
+ }
+ } else {
+ push @config, $_;
+ }
+ }
+
+ if (@config) {
+ log::l("writing rEFInd config to $config_file");
+ renamef($config_file, $config_file . '.old');
+ output_with_perm($config_file, 0600, @config);
+ } else {
+ log::l("config has no entries - rEFInd config file not written");
+ }
+}
+
+sub when_config_changed_refind {
+ my ($_bootloader) = @_;
+ #- do not do anything
+}
+
+=item action($bootloader, $action, @para)
+
+Calls the C<$action> function with @para parameters:
+
+ $actions->($bootloader, @para)
+
+If needed, the function name will be resolved to call a boot loader specific function (eg: for LILO/GRUB/...)
+
+This Swiss army knife function is heavily used by eg /sbin/bootloader-config
+
+=cut
+
sub action {
my ($bootloader, $action, @para) = @_;
@@ -1694,30 +2620,181 @@ sub action {
$f->($bootloader, @para);
}
+=item install($bootloader, $all_hds)
+
+Writes back the boot loader config. Calls the proper write_XYZ() function.
+
+=cut
+
sub install {
my ($bootloader, $all_hds) = @_;
- if (my $part = fs::get::device2part($bootloader->{boot}, [ fs::get::fstab($all_hds) ])) {
- die N("You can not install the bootloader on a %s partition\n", $part->{fs_type})
- if $part->{fs_type} eq 'xfs';
- }
- $bootloader->{keytable} = keytable($bootloader->{keytable});
+ my ($efivars, $already_mounted) = mount_efivars() if is_uefi();
+
+ $bootloader->{keytable} = keytable($bootloader->{keytable}) if $bootloader->{method} eq 'lilo';
action($bootloader, 'install', $all_hds);
+
+ run_program::run('umount', $efivars) if is_uefi() && !$already_mounted;
+}
+
+sub get_grub2_pkg() {
+ my ($prefix, $pkg);
+ if (is_uefi()) {
+ my %convert = (ia32 => 'i386', aa64 => 'arm64', x64 => 'x86_64');
+ my %pkgs = (ia32 => 'x86-32', aa64 => 'aarch-64', x64 => 'x86-64');
+ $prefix = $convert{uefi_type()} . "-efi";
+ $pkg = "grub2-efi(" . $pkgs{uefi_type()} . ")";
+ } else {
+ $prefix = 'i386-pc';
+ $pkg = 'grub2';
+ }
+ ($prefix, $pkg);
}
sub ensure_pkg_is_installed {
my ($do_pkgs, $bootloader) = @_;
- my $main_method = bootloader::main_method($bootloader->{method});
- if ($main_method eq 'grub' || $main_method eq 'lilo') {
+ my %suppl = (
+ # method => [ 'pkg_name', 'file_to_test' ],
+ 'grub-graphic' => [ qw(mageia-gfxboot-theme /usr/share/gfxboot/themes/Mageia/boot/message) ],
+ 'grub2-graphic' => [ qw(grub2-mageia-theme /boot/grub2/themes/maggy/theme.txt) ],
+ );
+ my $main_method = main_method($bootloader->{method});
+ if ($main_method eq 'grub2') {
+ my ($prefix, $pkg) = get_grub2_pkg();
+ $do_pkgs->ensure_is_installed($pkg, "/usr/lib/grub/$prefix/ext2.mod", 1) or return 0;
+ } elsif ($main_method eq 'refind') {
+ $do_pkgs->ensure_is_installed('refind', '/sbin/refind-install', 1) or return 0;
+ } elsif (member($main_method, qw(grub grub2 lilo))) {
$do_pkgs->ensure_binary_is_installed($main_method, $main_method, 1) or return 0;
- if ($bootloader->{method} eq 'grub-graphic') {
- $do_pkgs->ensure_is_installed('mandriva-gfxboot-theme', '/usr/share/gfxboot/themes/Mandriva/boot/message', 1) or return 0;
- }
+ }
+ # Install gfx theme if needed:
+ if (my $pkg = $suppl{$bootloader->{method}}) {
+ $do_pkgs->ensure_is_installed(@$pkg, 1) or return 0;
}
1;
}
+sub parse_grub2_config {
+ my ($l, $grubcfg, $part) = @_;
+
+ my ($linux, $menuentry, $root, $root_dev, $initrd);
+
+ foreach (cat_($grubcfg)) {
+ chomp;
+ if (/^menuentry\s+['"]([^']+)["']/) {
+ if ($menuentry && $root) {
+ my $parttype = partition_table::raw::typeOfMBR($root_dev);
+ if ((!$parttype || $parttype eq "empty") && $linux) {
+ push @$l, { menuentry => $menuentry, bootpart => $part, root => $root, linux => $linux, initrd => $initrd, grub_conf => $grubcfg };
+ }
+ }
+ $menuentry = $1;
+ $root = $linux = undef;
+ } elsif (/set root='(\([^\)]+\))'/) {
+ $root = $1;
+
+ if ($root =~ /\(([^,]+),msdos(\d+)\)/) {
+ my $dev_title = "/" . $1;
+ my $part_num = $2;
+ my $dec_part_num = $part_num-1;
+ $dev_title =~ s!hd!dev/sd!;
+ $dev_title =~ tr/0123456789/abcdefghi/;
+
+ $root_dev = $part_num ? $dev_title . $part_num : $dev_title;
+ $root =~ s/msdos$part_num/$dec_part_num/;
+ }
+ } elsif (/^\s+linux\s+(.+)/) {
+ $linux = $1;
+ } elsif (/^\s+initrd\s+(.+)/) {
+ $initrd = $1;
+ }
+ }
+}
+
+=item find_other_distros_grub_conf($fstab)
+
+Returns a list of other distros' grub.conf
+
+=cut
+
+sub find_other_distros_grub_conf {
+ my ($fstab) = @_;
+
+ my @unknown_true_fs =
+ grep { isTrueLocalFS($_) &&
+ (!$_->{mntpoint} || !member($_->{mntpoint}, '/home', fs::type::directories_needed_to_boot()));
+ } @$fstab;
+
+ log::l("looking for configured grub on partitions " . join(' ', map { $_->{device} } @unknown_true_fs));
+
+ my @l;
+ foreach my $part (@unknown_true_fs) {
+ my $handle = any::inspect($part, $::prefix) or next;
+
+ foreach my $bootdir ('', '/boot') {
+ my $f = find { -e "$handle->{dir}$bootdir/$_" } 'grub.conf', 'grub/menu.lst' or next;
+ push @l, { bootpart => $part, bootdir => $bootdir, grub_conf => "$bootdir/$f" };
+ }
+ foreach my $bootdir ('', '/boot', '/boot/grub', '/boot/grub2') {
+ my $f = find { -e "$handle->{dir}$bootdir/$_" } 'grub.cfg' or next;
+ my $parttype = partition_table::raw::typeOfMBR($part->{device});
+ if (!$parttype || $parttype eq "empty") {
+ parse_grub2_config(\@l, "$handle->{dir}/$bootdir/$f", $part);
+ } else {
+ push @l, { bootpart => $part, bootdir => $bootdir, grub_conf => "$bootdir/$f" };
+ }
+ }
+ if (my $f = common::release_file($handle->{dir})) {
+ my $h = common::parse_release_file($handle->{dir}, $f, $part);
+ $h->{name} = $h->{release};
+ push @l, $h;
+ } elsif ($handle && -e "$handle->{dir}/etc/issue") {
+ my ($s, $dropped) = cat_("$handle->{dir}/etc/issue") =~ /^([^\\\n]*)(.*)/;
+ log::l("found /etc/issue: $s (removed: $dropped)");
+ push @l, { name => $s, part => $part };
+ }
+ }
+ my $root;
+ my $set_root = sub {
+ my ($v) = @_;
+ $root and log::l("don't know what to do with $root->{name} ($root->{part}{device})");
+ $root = $v;
+ };
+ my @found;
+ while (my $e = shift @l) {
+ if ($e->{name}) {
+ $set_root->($e);
+ } else {
+ if (@l && $l[0]{name}) {
+ $set_root->(shift @l);
+ }
+
+ my $ok;
+ if ($root && $root->{part} == $e->{bootpart} && $e->{bootdir}) {
+ # easy case: /boot is not a separate partition
+ $ok = 1;
+ } elsif ($root && $root->{part} != $e->{bootpart} && !$e->{bootdir}) {
+ log::l("associating '/' $root->{part}{device} with '/boot' $e->{bootpart}{device}");
+ $ok = 1;
+ }
+ if ($ok) {
+ add2hash($e, $root);
+ undef $root;
+ } elsif ($root) {
+ log::l("weird case for grub conf in $e->{bootpart}{device}, keeping '/' from $root->{part}{device}");
+ } else {
+ log::l("could not recognise the distribution for $e->{grub_conf} in $e->{bootpart}{device}");
+ }
+ $e->{name} ||= "Linux $e->{bootpart}{device}";
+ push @found, $e;
+ }
+ }
+ $set_root->(undef);
+
+ @found;
+}
+
sub update_for_renumbered_partitions {
my ($in, $renumbering, $all_hds) = @_;
@@ -1764,10 +2841,14 @@ sub update_for_renumbered_partitions {
} $main_method ? $main_method : ('lilo', 'grub');
if (intersection(\@needed, [ map { $_->{name} } @changed_configs ])) {
- $in->ask_warn('', N("The bootloader can not be installed correctly. You have to boot rescue and choose \"%s\"",
+ $in->ask_warn('', N("The bootloader cannot be installed correctly. You have to boot rescue and choose \"%s\"",
N("Re-install Boot Loader")));
}
1;
}
+=back
+
+=cut
+
1;
diff --git a/perl-install/bootsplash.pm b/perl-install/bootsplash.pm
deleted file mode 100644
index 6507e46ef..000000000
--- a/perl-install/bootsplash.pm
+++ /dev/null
@@ -1,259 +0,0 @@
-package bootsplash;
-
-use common;
-use Xconfig::resolution_and_depth;
-
-
-my $themes_dir = "/usr/share/bootsplash/themes";
-my $themes_config_dir = "/etc/bootsplash/themes";
-my $sysconfig_file = "/etc/sysconfig/bootsplash";
-my $bootsplash_scripts = "/usr/share/bootsplash/scripts";
-my $default_theme = 'Mandrivalinux';
-our $default_thumbnail = '/usr/share/libDrakX/pixmaps/nosplash_thumb.png';
-our @resolutions = uniq(map { "$_->{X}x$_->{Y}" } Xconfig::resolution_and_depth::bios_vga_modes());
-
-sub get_framebuffer_resolution() {
- require bootloader;
- require fsedit;
- my $bootloader = bootloader::read(fsedit::get_hds());
- my $x_res = Xconfig::resolution_and_depth::from_bios($bootloader->{default_options}{vga});
- $x_res ?
- ($x_res->{X} . 'x' . $x_res->{Y}, 1) :
- (first(@resolutions), 0);
-}
-
-sub themes_read_sysconfig {
- my ($res) = @_;
- my %theme = (
- name => $default_theme,
- enabled => 1,
- keep_logo => 1
- );
- if (-r $::prefix . $sysconfig_file) {
- local $_;
- foreach (cat_($::prefix . $sysconfig_file)) {
- /^SPLASH=no/ and $theme{enabled} = 0;
- /^THEME=(.*)/ && -f theme_get_image_for_resolution($1, $res) and $theme{name} = $1;
- /^LOGO_CONSOLE=(.*)/ and $theme{keep_logo} = $1 ne "no";
- }
- }
- \%theme;
-}
-
-sub theme_get_image_for_resolution {
- my ($theme, $res) = @_;
- $::prefix . $themes_dir . '/' . $theme . '/images/bootsplash-' . $res . ".jpg";
-}
-
-sub theme_get_config_for_resolution {
- my ($theme, $res) = @_;
- $::prefix . $themes_config_dir . '/' . $theme . '/config/bootsplash-' . $res . ".cfg";
-}
-
-sub theme_exists_for_resolution {
- my ($theme, $res) = @_;
- -f theme_get_image_for_resolution($theme, $res) && -f theme_get_config_for_resolution($theme, $res);
-}
-
-sub themes_list() {
- grep { !/^\./ && -d $::prefix . $themes_dir . '/' . $_ } sort(all($::prefix . $themes_dir));
-}
-
-sub themes_list_for_resolution {
- my ($res) = @_;
- grep { theme_exists_for_resolution($_, $res) } themes_list();
-}
-
-sub switch {
- my ($theme) = @_;
- if ($::testing) {
- print "enabling bootsplash theme $theme\n";
- } else {
- #- theme scripts will update SPLASH value in sysconfig file
- system($::prefix . $bootsplash_scripts . '/switch-themes', $theme);
- }
-}
-
-sub remove() {
- if ($::testing) {
- print "disabling bootsplash theme\n";
- } else {
- system($::prefix . $bootsplash_scripts . '/remove-theme');
- }
-}
-
-sub set_logo_console {
- my ($keep_logo) = @_;
- my $logo_console = $keep_logo ? 'theme' : 'no';
- substInFile { s/^LOGO_CONSOLE=.*/LOGO_CONSOLE=$logo_console/ } $::prefix . $sysconfig_file;
-}
-
-sub create_path {
- my ($file) = @_;
- mkdir_p(dirname($file));
-}
-
-sub theme_set_image_for_resolution {
- my ($name, $res, $source_image) = @_;
- my $dest_image = theme_get_image_for_resolution($name, $res);
- create_path($dest_image);
- #- Append an exclamation point to the geometry to force the image size to exactly the size you specify.
- system('convert', '-geometry', $res . '!', $source_image, $dest_image);
- system($::prefix . $bootsplash_scripts . '/rewritejpeg', $dest_image);
-}
-
-sub theme_read_config_for_resolution {
- my ($theme, $res) = @_;
- my $file = theme_get_config_for_resolution($theme, $res);
- my $contents = cat_($file);
- my ($pb_x1, $pb_y1, $pb_x2, $pb_y2, $pbg_c, $ptransp) = $contents =~ /^box\s+silent\s+noover\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(#\w{6})(\w{2})/m;
- my ($tb_x1, $tb_y1, $tb_x2, $tb_y2, $tc, $transp) = $contents =~ /^box\s+noover\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(#\w{6})(\w{2})/m;
- my ($pc1, $pc2, $pc3, $_pc4) = $contents =~ /^box\s+silent\s+inter\s+\d+\s+\d+\s+\d+\s+\d+\s+(#\w+)\s+(#\w+)\s+(#\w+)\s+(#\w+)/m;
- my ($text_color) = $contents =~ /^text_color=0x(\w+)/m;
- my $gradient;
- if ($pc1 eq $pc2) {
- $gradient = 'vertical';
- $pc2 = $pc3;
- }
- { pc1 => $pc1, pc2 => $pc2, gradient => $gradient, transp => hex $transp, ptransp => hex $ptransp,
- tb_x => $tb_x1, tb_y => $tb_y1, tb_w => $tb_x2 - $tb_x1, tb_h => $tb_y2 - $tb_y1, tc => $tc, pbg_c => $pbg_c,
- px => $pb_x1, pw => $pb_x2 - $pb_x1, py => $pb_y1, ph => $pb_y2 - $pb_y1,
- getVarsFromSh($file), text_color => "#$text_color" };
-}
-
-sub theme_write_config_for_resolution {
- my ($name, $res, $conf) = @_;
-
- my $config = theme_get_config_for_resolution($name, $res);
- create_path($config);
- my $jpeg = theme_get_image_for_resolution($name, $res);
-
- # progress/text rectangles border/inter coordinates
- my ($pb_x1, $pb_x2, $pb_y1, $pb_y2) = ($conf->{px}, $conf->{px} + $conf->{pw}, $conf->{py}, $conf->{py} + $conf->{ph});
- my ($pi_y1, $pi_y2) = ($pb_y1 + 1, $pb_y2 - 1);
- my ($tb_x1, $tb_y1, $tb_x2, $tb_y2) = ($conf->{tb_x}, $conf->{tb_y}, $conf->{tb_x} + $conf->{tb_w}, $conf->{tb_y} + $conf->{tb_h});
- my ($tx, $ty, $tw, $th) = ($tb_x1 + 10, $tb_y1 + 5, $conf->{tb_w} - 20 , $conf->{tb_h} - 10);
- my ($ti_x1, $ti_x2, $ti_y1, $ti_y2) = ($tb_x1 - 1, $tb_x2 + 1, $tb_y1 + 1, $tb_y2 + 1);
- my ($pc1, $pc2, $pc3, $pc4);
- if ($conf->{gradient} eq 'vertical') {
- ($pc1, $pc2, $pc3, $pc4) = ($conf->{pc1}, $conf->{pc1}, $conf->{pc2}, $conf->{pc2});
- } else {
- ($pc1, $pc2, $pc3, $pc4) = ($conf->{pc1}, $conf->{pc2}, $conf->{pc1}, $conf->{pc2});
- }
- if (!$pc1) { ($pc1, $pc2, $pc3, $pc4) = ('#ffffff', '#ffffff', '#000000', '#000000') }
- my $ptransp = sprintf '%02x', $conf->{ptransp};
- my $transp = sprintf '%02x', $conf->{transp};
- $conf->{pbg_c} ||= '#aaaaaa';
- $conf->{tc} ||= '#ffffff';
- my $text_color = $conf->{text_color} ? "0x$conf->{text_color}" : '0xaaaaaa';
- $text_color =~ s/#//;
- output($config,
- qq(# This is the configuration file for the $res bootsplash picture
-# this file is necessary to specify the coordinates of the text box on the
-# splash screen.
-
-# config file version
-version=3
-
-# should the picture be displayed?
-state=1
-
-# fgcolor is the text forground color.
-# bgcolor is the text background (i.e. transparent) color.
-fgcolor=$conf->{fgcolor}
-bgcolor=$conf->{bgcolor}
-
-# (tx, ty) are the (x, y) coordinates of the text window in pixels.
-# tw/th is the width/height of the text window in pixels.
-tx=$tx
-ty=$ty
-tw=$tw
-th=$th
-
-# ttf message output parameters
-text_x=$conf->{text_x}
-text_y=$conf->{text_y}
-text_size=$conf->{text_size}
-text_color=$text_color
-
-# name of the picture file (full path recommended)
-jpeg=$jpeg
-silentjpeg=$jpeg
-
-progress_enable=1
-
-# background
-# b(order) or i(nter)
-box silent noover $pb_x1 $pb_y1 $pb_x2 $pb_y2 $conf->{pbg_c}$ptransp
-# progress bar
-box silent inter $pb_x1 $pi_y1 $pb_x1 $pi_y2 $pc1 $pc2 $pc3 $pc4
-box silent $pb_x1 $pi_y1 $pb_x2 $pi_y2 $pc1 $pc2 $pc3 $pc4
-# black border (top, bottom, left, right)
-box silent $pb_x1 $pb_y1 $pb_x2 $pb_y1 #313234
-box silent $pb_x1 $pb_y2 $pb_x2 $pb_y2 #889499
-box silent $pb_x1 $pb_y1 $pb_x1 $pb_y2 #313234
-box silent $pb_x2 $pb_y1 $pb_x2 $pb_y2 #889499
-
-# text box
-box noover $tb_x1 $tb_y1 $tb_x2 $tb_y2 $conf->{tc}$transp
-# black border (top, bottom, left, right)
-box $ti_x1 $tb_y1 $ti_x1 $ti_y2 #313234
-box $tb_x1 $tb_y1 $ti_x2 $tb_y1 #313234
-box $ti_x2 $ti_y1 $ti_x2 $ti_y2 #889499
-box $tb_x1 $ti_y2 $ti_x2 $ti_y2 #889499
-
-overpaintok=1
-
-LOGO_CONSOLE=$conf->{LOGO_CONSOLE}
-));
-}
-
-sub rectangle2xywh {
- my ($rect) = @_;
-
- my $x = min($rect->[0]{X} , $rect->[1]{X});
- my $y = min($rect->[0]{Y} , $rect->[1]{Y});
- my $w = abs($rect->[0]{X} - $rect->[1]{X});
- my $h = abs($rect->[0]{Y} - $rect->[1]{Y});
- ($x, $y, $w, $h);
-}
-
-sub xywh2rectangle {
- my ($x, $y, $w, $h) = @_;
- [ { X => $x, Y => $y }, { X => $x+$w, Y => $y+$h } ];
-}
-
-sub distance {
- my ($p1, $p2) = @_;
- sqr($p1->{X} - $p2->{X}) + sqr($p1->{Y} - $p2->{Y});
-}
-
-sub farthest {
- my ($point, @others) = @_;
- my $dist = 0;
- my $farthest;
- foreach (@others) {
- my $d = distance($point, $_);
- if ($d >= $dist) {
- $dist = $d;
- $farthest = $_;
- }
- }
- $farthest;
-}
-
-sub nearest {
- my ($point, @others) = @_;
- my $dist;
- my $nearest;
- foreach (@others) {
- my $d = distance($point, $_);
- if (! defined $dist || $d < $dist) {
- $dist = $d;
- $nearest = $_;
- }
- }
- $nearest;
-}
-
-1;
diff --git a/perl-install/c.pm b/perl-install/c.pm
index f1904ebc4..8312c0d79 100644
--- a/perl-install/c.pm
+++ b/perl-install/c.pm
@@ -1,4 +1,4 @@
-package c; # $Id$
+package c;
use vars qw($AUTOLOAD);
@@ -7,13 +7,42 @@ use MDK::Common;
sub AUTOLOAD() {
$AUTOLOAD =~ /::(.*)/ or return;
- my @l = eval { &{$c::stuff::{$1}} };
+ my $fct = $1;
+ my @l = eval { &{$c::stuff::{$fct}} };
if (my $err = $@) {
$err =~ /Undefined subroutine &main::/ ?
- die("can not find function $AUTOLOAD\n" . backtrace()) :
- die($err);
+ die("cannot find function $AUTOLOAD\n" . backtrace()) :
+ die("$fct: " . $err);
}
wantarray() ? @l : $l[0];
}
1;
+
+
+=head1 SYNOPSYS
+
+The C module is glue code between the Perl & the C worlds that enable drakx to:
+
+=over
+
+=item *
+
+access various C libraries, mainly libldetect
+
+=item *
+
+bind some C functions (eg: syslog(), ...)
+
+=item *
+
+implement in C some helper functions
+
+=back
+
+It is autogenerated from perl-install/c/stuff.xs.pl.
+One needs to run "perl Makefile.PL"
+
+It's used quite a lot by L<detect_devices>.
+
+=cut
diff --git a/perl-install/c/Makefile.PL b/perl-install/c/Makefile.PL
index 405c02ecc..f776d27f2 100644..100755
--- a/perl-install/c/Makefile.PL
+++ b/perl-install/c/Makefile.PL
@@ -6,13 +6,13 @@ use Config;
my $lib = arch() =~ /x86_64/ ? 'lib64' : 'lib';
-my $libs = '-lldetect';
+my $libs = '-lldetect -lparted';
my $pcmcia_probe_o = "/usr/$lib/drakx-installer-binaries/pcmcia_probe.o";
WriteMakefile(
'NAME' => 'stuff',
- 'OPTIMIZE' => '-Os',
+ 'OPTIMIZE' => '-Os -Wall',
'MAKEFILE' => 'Makefile_c',
'OBJECT' => "stuff.o " . (-e $pcmcia_probe_o && " $pcmcia_probe_o"),
'VERSION_FROM' => 'stuff.pm', # finds $VERSION
diff --git a/perl-install/c/README b/perl-install/c/README
deleted file mode 100644
index 2453a5121..000000000
--- a/perl-install/c/README
+++ /dev/null
@@ -1 +0,0 @@
-md5.c, md5_crypt.c and md5.h are taken from pam (dir modules/pam_pwdb)
diff --git a/perl-install/c/stuff.pm b/perl-install/c/stuff.pm
index 37e0c9a3b..72b5b0bd3 100644
--- a/perl-install/c/stuff.pm
+++ b/perl-install/c/stuff.pm
@@ -1,4 +1,4 @@
-package c::stuff; # $Id$
+package c::stuff;
use strict;
use vars qw($VERSION @ISA);
diff --git a/perl-install/c/stuff.xs.pl b/perl-install/c/stuff.xs.pl
index 4b8ca36f4..1a148b497 100644..100755
--- a/perl-install/c/stuff.xs.pl
+++ b/perl-install/c/stuff.xs.pl
@@ -36,14 +36,9 @@ print '
#include <net/route.h>
#include <netinet/in.h>
#include <linux/sockios.h>
-
-// for ethtool structs:
-typedef unsigned long long u64;
-typedef __uint32_t u32;
-typedef __uint16_t u16;
-typedef __uint8_t u8;
-
#include <linux/ethtool.h>
+#include <linux/input.h>
+#include <execinfo.h>
// for UPS on USB:
# define HID_MAX_USAGES 1024
@@ -55,6 +50,7 @@ typedef __uint8_t u8;
#define SECTORSIZE 512
+#include <parted/parted.h>
';
$Config{archname} =~ /i.86/ and print '
@@ -92,6 +88,18 @@ void log_perror(const char *msg) {
log_message("%s: %s", msg, strerror(errno));
}
+HV* common_pciusb_hash_init(struct pciusb_entry *e) {
+ HV *rh = (HV *)sv_2mortal((SV *)newHV());
+ hv_store(rh, "vendor", 6, newSViv(e->vendor), 0);
+ hv_store(rh, "subvendor", 9, newSViv(e->subvendor), 0);
+ hv_store(rh, "id", 2, newSViv(e->device), 0);
+ hv_store(rh, "subid", 5, newSViv(e->subdevice), 0);
+ hv_store(rh, "driver", 6, newSVpv(e->module ? e->module : "unknown", 0), 0);
+ hv_store(rh, "description", 11, newSVpv(e->text, 0), 0);
+ hv_store(rh, "pci_bus", 7, newSViv(e->pci_bus), 0);
+ hv_store(rh, "pci_device", 10, newSViv(e->pci_device), 0);
+ return rh;
+}
';
@@ -103,6 +111,31 @@ int length_of_space_padded(char *str, int len) {
return len;
}
+PedPartitionFlag string_to_pedpartflag(char*type) {
+ PedPartitionFlag flag = 0;
+ if (!strcmp(type, "ESP")) {
+ flag = PED_PARTITION_ESP;
+ } else if (!strcmp(type, "BIOS_GRUB")) {
+ flag = PED_PARTITION_BIOS_GRUB;
+ } else if (!strcmp(type, "LVM")) {
+ flag = PED_PARTITION_LVM;
+ } else if (!strcmp(type, "RAID")) {
+ flag = PED_PARTITION_RAID;
+ } else {
+ printf("set_partition_flag: unknown type: %s\n", type);
+ }
+ return flag;
+}
+
+int is_recovery_partition(PedPartition*part) {
+ /* FIXME: not sure everything is covered ... */
+ return ped_partition_get_flag(part, PED_PARTITION_HPSERVICE) // HP-UX service partition
+ || ped_partition_get_flag(part, PED_PARTITION_MSFT_RESERVED) // Microsoft Reserved Partition -> LDM metadata, ...
+ || ped_partition_get_flag(part, PED_PARTITION_DIAG) // ==> PARTITION_MSFT_RECOVERY (Windows Recovery Environment)
+ || ped_partition_get_flag(part, PED_PARTITION_APPLE_TV_RECOVERY)
+ || ped_partition_get_flag(part, PED_PARTITION_HIDDEN);
+}
+
MODULE = c::stuff PACKAGE = c::stuff
';
@@ -163,14 +196,14 @@ init_setlocale()
setlocale(LC_NUMERIC, "C"); /* otherwise eval "1.5" returns 1 in fr_FR for example */
char *
-setlocale(category, locale = 0)
+setlocale(category, locale = NULL)
int category
char * locale
int
lseek_sector(fd, sector, offset)
int fd
- long sector
+ unsigned long sector
long offset
CODE:
RETVAL = lseek64(fd, (off64_t) sector * SECTORSIZE + offset, SEEK_SET) >= 0;
@@ -251,21 +284,43 @@ void
usleep(microseconds)
unsigned long microseconds
+
+char*
+get_pci_description(int vendor_id,int device_id)
+
+void
+hid_probe()
+ PPCODE:
+ struct hid_entries entries = hid_probe();
+ int i;
+
+ EXTEND(SP, entries.nb);
+ for (i = 0; i < entries.nb; i++) {
+ struct hid_entry *e = &entries.entries[i];
+ HV *rh = (HV *)sv_2mortal((SV *)newHV());
+ hv_store(rh, "description", 11, newSVpv(e->text, 0), 0);
+ hv_store(rh, "driver", 6, newSVpv(e->module, 0), 0);
+ PUSHs(newRV((SV *)rh));
+ }
+ hid_entries_free(&entries);
+
void
pci_probe()
PPCODE:
- //proc_pci_path = "/tmp/pci";
struct pciusb_entries entries = pci_probe();
- char buf[2048];
int i;
EXTEND(SP, entries.nb);
for (i = 0; i < entries.nb; i++) {
struct pciusb_entry *e = &entries.entries[i];
- snprintf(buf, sizeof(buf), "%04x\t%04x\t%04x\t%04x\t%d\t%d\t%d\t%d\t%s\t%s\t%s\t%s",
- e->vendor, e->device, e->subvendor, e->subdevice, e->pci_domain, e->pci_bus, e->pci_device, e->pci_function,
- pci_class2text(e->class_id), e->class, e->module ? e->module : "unknown", e->text);
- PUSHs(sv_2mortal(newSVpv(buf, 0)));
+ HV * rh = common_pciusb_hash_init(e);
+ hv_store(rh, "pci_domain", 10, newSViv(e->pci_domain), 0);
+ hv_store(rh, "pci_function", 12, newSViv(e->pci_function), 0);
+ hv_store(rh, "pci_revision", 12, newSViv(e->pci_revision), 0);
+ hv_store(rh, "is_pciexpress", 13, newSViv(e->is_pciexpress), 0);
+ hv_store(rh, "nice_media_type", 15, newSVpv(e->class, 0), 0);
+ hv_store(rh, "media_type", 10, newSVpv(pci_class2text(e->class_id), 0), 0);
+ PUSHs(newRV((SV *)rh));
}
pciusb_free(&entries);
@@ -280,9 +335,11 @@ usb_probe()
for (i = 0; i < entries.nb; i++) {
struct pciusb_entry *e = &entries.entries[i];
struct usb_class_text class_text = usb_class2text(e->class_id);
- snprintf(buf, sizeof(buf), "%04x\t%04x\t%s|%s|%s\t%s\t%s\t%d\t%d",
- e->vendor, e->device, class_text.usb_class_text, class_text.usb_sub_text, class_text.usb_prot_text, e->module ? e->module : "unknown", e->text, e->pci_bus, e->pci_device);
- PUSHs(sv_2mortal(newSVpv(buf, 0)));
+ snprintf(buf, sizeof(buf), "%s|%s|%s", class_text.usb_class_text, class_text.usb_sub_text, class_text.usb_prot_text);
+ HV * rh = common_pciusb_hash_init(e);
+ hv_store(rh, "usb_port", 8, newSViv(e->usb_port), 0);
+ hv_store(rh, "media_type", 10, newSVpv(buf, 0), 0);
+ PUSHs(newRV((SV *)rh));
}
pciusb_free(&entries);
@@ -293,14 +350,14 @@ dmi_probe()
//dmidecode_file = "../../soft/ldetect-lst/test/dmidecode.Laptop.Sony-Vaio-GRX316MP";
struct dmi_entries entries = dmi_probe();
- char buf[2048];
int i;
EXTEND(SP, entries.nb);
for (i = 0; i < entries.nb; i++) {
- snprintf(buf, sizeof(buf), "%s\t%s",
- entries.entries[i].module, entries.entries[i].constraints);
- PUSHs(sv_2mortal(newSVpv(buf, 0)));
+ HV * rh = (HV *)sv_2mortal((SV *)newHV());
+ hv_store(rh, "driver", 6, newSVpv(entries.entries[i].module, 0), 0);
+ hv_store(rh, "description", 11, newSVpv(entries.entries[i].constraints, 0), 0);
+ PUSHs(newRV((SV *)rh));
}
dmi_entries_free(entries);
@@ -322,6 +379,9 @@ get_usb_ups_name(int fd)
int
+res_init()
+
+int
isNetDeviceWirelessAware(device)
char * device
CODE:
@@ -354,6 +414,7 @@ get_netdevices()
if (ioctl(s, SIOCGIFCONF, &ifc) < 0) {
perror("SIOCGIFCONF");
+ close(s);
return;
}
if (ifc.ifc_len == sizeof(struct ifreq) * numreqs) {
@@ -400,6 +461,7 @@ getNetDriver(char* device)
break;
}
} else { perror("SIOCETHTOOL"); RETVAL = strdup(""); }
+ close(s);
OUTPUT:
RETVAL
@@ -479,7 +541,41 @@ strftime(fmt, sec, min, hour, mday, mon, year, wday = -1, yday = -1, isdst = -1)
}
}
+#define BITS_PER_LONG (sizeof(long) * 8)
+#define NBITS(x) ((((x)-1)/BITS_PER_LONG)+1)
+#define OFF(x) ((x)%BITS_PER_LONG)
+#define BIT(x) (1UL<<OFF(x))
+#define LONG(x) ((x)/BITS_PER_LONG)
+#define test_bit(bit, array) ((array[LONG(bit)] >> OFF(bit)) & 1)
+void
+EVIocGBitKey (char *file)
+ PPCODE:
+ int fd;
+ int i;
+ long bitmask[NBITS(KEY_MAX)];
+
+ fd = open (file, O_RDONLY);
+ if (fd < 0) {
+ warn("Cannot open %s: %s\n", file, strerror(errno));
+ return;
+ }
+
+ if (ioctl (fd, EVIOCGBIT(EV_KEY, sizeof (bitmask)), bitmask) < 0) {
+ perror ("ioctl EVIOCGBIT failed");
+ close (fd);
+ return;
+ }
+
+ close (fd);
+ for (i = NBITS(KEY_MAX) - 1; i > 0; i--)
+ if (bitmask[i])
+ break;
+
+ for (; i >= 0; i--) {
+ EXTEND(sp, 1);
+ PUSHs(sv_2mortal(newSViv(bitmask[i])));
+ }
char *
kernel_version()
@@ -503,15 +599,230 @@ get_iso_volume_ids(int fd)
lseek(fd, 16 * ISOFS_BLOCK_SIZE, SEEK_SET);
if (read(fd, &voldesc, sizeof(struct iso_primary_descriptor)) == sizeof(struct iso_primary_descriptor)) {
if (voldesc.type[0] == ISO_VD_PRIMARY && !strncmp(voldesc.id, ISO_STANDARD_ID, sizeof(voldesc.id))) {
- XPUSHs(sv_2mortal(newSVpv(voldesc.volume_id, length_of_space_padded(voldesc.volume_id, sizeof(voldesc.volume_id)))));
- XPUSHs(sv_2mortal(newSVpv(voldesc.application_id, length_of_space_padded(voldesc.application_id, sizeof(voldesc.application_id)))));
+ size_t vol_id_len = length_of_space_padded(voldesc.volume_id, sizeof(voldesc.volume_id));
+ size_t app_id_len = length_of_space_padded(voldesc.application_id, sizeof(voldesc.application_id));
+ XPUSHs(vol_id_len != -1 ? sv_2mortal(newSVpv(voldesc.volume_id, vol_id_len)) : newSVpvs(""));
+ XPUSHs(app_id_len != -1 ? sv_2mortal(newSVpv(voldesc.application_id, app_id_len)) : newSVpvs(""));
+ }
+ }
+
+';
+
+print '
+
+TYPEMAP: <<HERE
+PedDisk* T_PTROBJ
+HERE
+
+
+
+int
+set_partition_flag(PedDisk *disk, int part_number, char * type)
+ CODE:
+ RETVAL = 0;
+ PedPartition* part = ped_disk_get_partition(disk, part_number);
+ if (!part) {
+ printf("set_partition_flag: failed to find partition\n");
+ } else {
+ PedPartitionFlag flag = string_to_pedpartflag(type);
+ if (flag) {
+ RETVAL = ped_partition_set_flag(part, flag, 1);
+ }
+ }
+ OUTPUT:
+ RETVAL
+
+
+const char *
+get_disk_type(char * device_path)
+ CODE:
+ PedDevice *dev = ped_device_get(device_path);
+ RETVAL = NULL;
+ if(dev) {
+ PedDiskType* type = ped_disk_probe(dev);
+ if(type) {
+ RETVAL = type->name;
+ }
+ }
+ OUTPUT:
+ RETVAL
+
+void
+get_disk_partitions(char * device_path)
+ PPCODE:
+ PedDevice *dev = ped_device_get(device_path);
+ if(dev) {
+ PedDisk* disk = ped_disk_new(dev);
+ PedPartition *part = NULL, *first_part = NULL;
+ int count = 1;
+ if(!disk)
+ return;
+ first_part = part = ped_disk_next_partition(disk, NULL);
+ while(part) {
+ part = ped_disk_next_partition(disk, part);
+ count++;
}
+ EXTEND(SP, count);
+ part = first_part;
+ while(part) {
+ if(part->num == -1) {
+ part = ped_disk_next_partition(disk, part);
+ continue;
+ }
+ char *path = ped_partition_get_path(part);
+ char *flag = "";
+ if (ped_partition_get_flag(part, PED_PARTITION_ESP)) {
+ flag = "ESP";
+ } else if (ped_partition_get_flag(part, PED_PARTITION_BIOS_GRUB)) {
+ flag = "BIOS_GRUB";
+ } else if (ped_partition_get_flag(part, PED_PARTITION_LVM)) {
+ flag = "LVM";
+ } else if (ped_partition_get_flag(part, PED_PARTITION_RAID)) {
+ flag = "RAID";
+ } else if (is_recovery_partition(part)) {
+ flag = "RECOVERY";
+ }
+ HV * rh = (HV *)sv_2mortal((SV *)newHV());
+ hv_store(rh, "part_number", 11, newSViv(part->num), 0);
+ hv_store(rh, "real_device", 11, newSVpv(path, 0), 0);
+ hv_store(rh, "start", 5, newSViv(part->geom.start), 0);
+ hv_store(rh, "size", 4, newSViv(part->geom.length), 0);
+ hv_store(rh, "pt_type", 7, newSViv(0xba), 0);
+ hv_store(rh, "flag", 4, newSVpv(flag, 0), 0);
+ free(path);
+ if(part->fs_type)
+ hv_store(rh, "fs_type", 7, newSVpv(part->fs_type->name, 0), 0);
+ PUSHs(newRV((SV *)rh));
+ part = ped_disk_next_partition(disk, part);
+ }
+ ped_disk_destroy(disk);
+ }
+
+PedDisk*
+disk_open(char * device_path, const char * type_name = NULL)
+ CODE:
+ PedDevice *dev = ped_device_get(device_path);
+ RETVAL = NULL;
+ if(dev) {
+ if(type_name) {
+ PedDiskType* type = ped_disk_type_get(type_name);
+ if(type) {
+ RETVAL = ped_disk_new_fresh(dev, type);
+ }
+ } else {
+ RETVAL = ped_disk_new(dev);
+ }
+ }
+ OUTPUT:
+ RETVAL
+
+int
+disk_delete_all(PedDisk* disk)
+ CODE:
+ RETVAL = 0;
+ if (ped_disk_delete_all(disk)) {
+ RETVAL = 1;
+ }
+ OUTPUT:
+ RETVAL
+
+int
+disk_del_partition(PedDisk* disk, int part_number)
+ CODE:
+ RETVAL = 0;
+ PedPartition* part = ped_disk_get_partition(disk, part_number);
+ if(!part) {
+ printf("disk_del_partition: failed to find partition\n");
+ } else {
+ RETVAL = ped_disk_delete_partition(disk, part);
}
+ OUTPUT:
+ RETVAL
+
+int
+disk_add_partition(PedDisk* disk, double start, double length, const char * fs_type)
+ CODE:
+ RETVAL=0;
+ PedGeometry* geom = ped_geometry_new(disk->dev, (long long)start, (long long)length);
+ PedPartition* part = ped_partition_new (disk, PED_PARTITION_NORMAL, ped_file_system_type_get(fs_type), (long long)start, (long long)start+length-1);
+ PedConstraint* constraint = ped_constraint_new_from_max(geom);
+ if(!part) {
+ printf("ped_partition_new failed\n");
+ } else {
+ RETVAL = ped_disk_add_partition (disk, part, constraint);
+ }
+ ped_geometry_destroy(geom);
+ ped_constraint_destroy(constraint);
+ OUTPUT:
+ RETVAL
+
+int
+disk_commit(PedDisk *disk)
+ CODE:
+ RETVAL = 0;
+ /* As done in ped_disk_commit(), open the device here, so that the underlying
+ file descriptor is not closed between the call to ped_disk_commit_to_dev()
+ and the call to ped_disk_commit_to_os(). This avoids unwanted udev events. */
+ if (ped_device_open(disk->dev)) {
+ if (ped_disk_commit_to_dev(disk)) {
+ RETVAL = 1;
+ if (ped_disk_commit_to_os(disk)) {
+ RETVAL = 2;
+ }
+ }
+ ped_device_close(disk->dev);
+ }
+ ped_disk_destroy(disk);
+ OUTPUT:
+ RETVAL
+
+int
+tell_kernel_to_reread_partition_table(char * device_path)
+ CODE:
+ PedDevice *dev = ped_device_get(device_path);
+ RETVAL=0;
+ if(dev) {
+ PedDisk* disk = ped_disk_new(dev);
+ if (disk) {
+ if (ped_disk_commit_to_os (disk))
+ RETVAL=1;
+ ped_disk_destroy(disk);
+ }
+ }
+ OUTPUT:
+ RETVAL
+
+#define BACKTRACE_DEPTH 20
+
+
+char*
+C_backtrace()
+ CODE:
+ static char buf[1024];
+ int nAddresses, i;
+ unsigned long idx = 0;
+ void * addresses[BACKTRACE_DEPTH];
+ char ** symbols = NULL;
+ nAddresses = backtrace(addresses, BACKTRACE_DEPTH);
+ symbols = backtrace_symbols(addresses, nAddresses);
+ if (symbols == NULL) {
+ idx += sprintf(buf+idx, "ERROR: Retrieving symbols failed.\n");
+ } else {
+ /* dump stack trace */
+ for (i = 0; i < nAddresses; ++i)
+ idx += sprintf(buf+idx, "%d: %s\n", i, symbols[i]);
+ }
+ RETVAL = strdup(buf);
+ OUTPUT:
+ RETVAL
+
+
+
';
@macros = (
- [ qw(int S_IFCHR S_IFBLK S_IFIFO KDSKBENT K_NOSUCHMAP NR_KEYS MAX_NR_KEYMAPS BLKRRPART TIOCSCTTY
+ [ qw(int S_IFCHR S_IFBLK S_IFIFO S_IFMT KDSKBENT K_NOSUCHMAP NR_KEYS MAX_NR_KEYMAPS BLKRRPART TIOCSCTTY
HDIO_GETGEO LOOP_GET_STATUS
MS_MGC_VAL O_WRONLY O_RDWR O_CREAT O_NONBLOCK F_SETFL F_GETFL WNOHANG
VT_ACTIVATE VT_WAITACTIVE VT_GETSTATE
@@ -544,4 +855,3 @@ print '
PROTOTYPES: DISABLE
';
-
diff --git a/perl-install/common.pm b/perl-install/common.pm
index a249f72b7..508e6b31f 100644
--- a/perl-install/common.pm
+++ b/perl-install/common.pm
@@ -1,4 +1,4 @@
-package common; # $Id$
+package common;
use MDK::Common;
use diagnostics;
@@ -10,11 +10,16 @@ use run_program;
use Exporter;
our @ISA = qw(Exporter);
-our @EXPORT = qw($SECTORSIZE N P N_ check_for_xserver files_exist formatTime MB formatXiB get_parent_uid makedev mandrake_release mandrake_release_info removeXiBSuffix require_root_capability setVirtual set_alternative set_l10n_sort set_permissions translate unmakedev);
+our @EXPORT = qw($SECTORSIZE N P N_ check_for_xserver files_exist formatTime MB formatXiB get_libdir get_parent_uid is_running is_uefi kernel_uefi_type makedev mageia_release mageia_release_info mount_efivars removeXiBSuffix require_root_capability setVirtual set_alternative set_l10n_sort set_permissions to_utf8 translate uefi_type unmakedev);
# perl_checker: RE-EXPORT-ALL
push @EXPORT, @MDK::Common::EXPORT;
+=head1 SYNOPSYS
+
+B<common> re-export L<MDK::Common> and offers a couple widely used functions.
+
+=cut
$::prefix ||= ""; # no warning
@@ -23,24 +28,55 @@ $::prefix ||= ""; # no warning
#-#####################################################################################
our $SECTORSIZE = 512;
-#-#####################################################################################
-#- Functions
-#-#####################################################################################
+=head1 Functions
-sub P {
- my ($s_singular, $s_plural, $nb, @para) = @_;
- sprintf(translate($s_singular, $s_plural, $nb), @para);
-}
+=head2 Translating
+
+=over
+
+=item N($format, ...)
+
+translate a message by calling gettext(). eg:
+
+ N("Summary")
+ N("File %s is on %s", "/etc/passwd", "/dev/sda2")
+
+It must B<not> be used called before L<ugtk3> is initialized, otherwise the gettext is not forced to UTF-8.
+
+=cut
sub N {
my ($s, @para) = @_;
sprintf(translate($s), @para);
}
+
+=item N_($format, @param)
+
+Similar to C<N()>, but message is not actually translated.
+It tags the message as translatable so that it will end in the
+translation catalogs.
+
+In order for the message to be translated, C<translate()> must be called
+before using the message.
+
+=cut
+
sub N_ { $_[0] }
+=item P($s_singular, $s_plural, $nb, @extra_para)
-sub makedev { ($_[0] << 8) | $_[1] }
-sub unmakedev { $_[0] >> 8, $_[0] & 0xff }
+Similar to C<N()>, but two messages are provided: one for the singular case, one for the
+plural case. At runtime, a number is provided in order to choose the message to use.
+eg:
+
+ P("%d package", "%d packages", $nb, $nb)
+
+=cut
+
+sub P {
+ my ($s_singular, $s_plural, $nb, @para) = @_;
+ sprintf(translate($s_singular, $s_plural, $nb), @para);
+}
sub translate_real {
my ($s, $o_plural, $o_nb) = @_;
@@ -54,29 +90,68 @@ sub translate_real {
}
# when utf8 pragma is in use, Locale::gettext() returns an utf8 string not tagged as such:
c::set_tagged_utf8($s2) if !utf8::is_utf8($s2) && utf8::is_utf8($s);
- return $s2 if $s ne $s2 && $s2 ne $o_plural;
+ return $s2 if !member($s2, $s, $o_plural);
}
# didn't lookup anything or locale is "C":
$s2;
}
+=item remove_translate_context($string)
+
+Remove an ala-KDE context message. eg:
+
+ "_: this is verb\nOpen"
+ "_: Keep these entry short\nNetworking"
+
+=cut
+
sub remove_translate_context {
my ($s) = @_;
#- translation with context, kde-like
- $s =~ s/^_:.*\n//;
+ $s =~ s/^_:.*(?:\n)?//g;
$s;
}
+=item translate($string)
+
+Translate the message according to the current locale.
+The string is B<not> tagged as translatable and will B<not> end in
+translations catalogs.
+
+perl_checker only extracts strings tagged by C<N()>, C<N_()> or C<P()>.
+
+=cut
+
sub translate {
my $s = translate_real(@_);
- $::one_message_has_been_translated ||= join(':', (caller(1))[1,2]); #- see mygtk2.pm
+ $::one_message_has_been_translated ||= join(':', (caller(1))[1,2]); #- see mygtk3.pm
remove_translate_context($s);
}
+=back
+
+=head2 Conversion
+
+=over
+
+=item from_utf8($s)
+
+Convert an UTF-8 string into current locale's encoding.
+
+=cut
+
sub from_utf8 {
my ($s) = @_;
Locale::gettext::iconv($s, "utf-8", undef); #- undef = locale charmap = nl_langinfo(CODESET)
}
+
+=item to_utf8($s)
+
+The reverse of C<from_utf8()>: convert a string from current locale's encoding to UTF-8.
+Also make sure the string is properly tagged as UTF-8 as concerning Perl
+
+=cut
+
sub to_utf8 {
my ($s) = @_;
my $str = Locale::gettext::iconv($s, undef, "utf-8"); #- undef = locale charmap = nl_langinfo(CODESET)
@@ -84,10 +159,15 @@ sub to_utf8 {
$str;
}
-#- This is needed because text printed by Gtk2 will always be encoded
-#- in UTF-8;
-#- we first check if LC_ALL is defined, because if it is, changing
-#- only LC_COLLATE will have no effect.
+=item set_l10n_sort()
+
+This is needed because text printed by L<Gtk3> will always be encoded
+in UTF-8;
+we first check if LC_ALL is defined, because if it is, changing
+only LC_COLLATE will have no effect.
+
+=cut
+
sub set_l10n_sort() {
my $collation_locale = $ENV{LC_ALL};
if (!$collation_locale) {
@@ -109,16 +189,51 @@ sub setVirtual {
sub nonblock {
my ($F) = @_;
- fcntl($F, c::F_SETFL(), fcntl($F, c::F_GETFL(), 0) | c::O_NONBLOCK()) or die "can not fcntl F_SETFL: $!";
+ fcntl($F, c::F_SETFL(), fcntl($F, c::F_GETFL(), 0) | c::O_NONBLOCK()) or die "cannot fcntl F_SETFL: $!";
}
-#- return a size in sector
-#- ie MB(1) is 2048 sectors, which is 1MB
+=item makedev($major, $minor)
+
+Given major and minor device IDs, makedev() combines these to return a device ID
+(eg for mknod())
+
+=cut
+
+sub makedev { ($_[0] << 8) | $_[1] }
+
+=item unmakedev($device_id)
+
+The reverse of C<makedev()>: given a device ID, it will return both major and minor device IDs.
+
+=cut
+
+sub unmakedev { $_[0] >> 8, $_[0] & 0xff }
+
+=item MB($suffixed_number)
+
+return a size in sector
+ie C<MB(1)> is 2048 sectors, which is 1MB
+
+eg:
+
+ MB("10") => 20480
+
+=cut
+
sub MB {
my ($nb_MB) = @_;
$nb_MB * 2048;
}
+=item removeXiBSuffix($string)
+
+Remove the XiB suffix and return the number. eg:
+
+ "10k" => 10240
+ "2M" => 2097152
+
+=cut
+
sub removeXiBSuffix {
local $_ = shift;
@@ -128,6 +243,20 @@ sub removeXiBSuffix {
/(\d+)\s*TB?$/i and return $1 * 1024 * 1024 * 1024 * 1024;
$_;
}
+
+=item formatXiB($number [, $base])
+
+The reverse of C<removeXiBSuffix()>, returns a nicely human size. eg:
+
+ 2097152 => "2MB"
+
+The optional parameter enables to provide the unit size (default is one).
+eg for a 2000 512 sized sectors:
+
+ formatXiB(2000, 512)
+
+=cut
+
sub formatXiB {
my ($newnb, $o_newbase) = @_;
my $newbase = $o_newbase || 1;
@@ -154,7 +283,9 @@ sub formatXiB {
sub formatTime {
my ($s, $m, $h) = gmtime($_[0]);
if ($h) {
- sprintf "%02d:%02d", $h, $m;
+ sprintf
+ #-PO: here, "2:30" is remaining installation time (eg: "2:30" == 2 hour & 30 minutes)
+ N("%02d:%02d", $h, $m);
} elsif ($m > 1) {
N("%d minutes", $m);
} elsif ($m == 1) {
@@ -164,6 +295,21 @@ sub formatTime {
}
}
+sub expand_symlinks_with_absolute_symlinks_in_prefix {
+ my ($prefix, $link) = @_;
+
+ my ($first, @l) = split '/', $link;
+ $first eq '' or die "expand_symlinks: $link is relative\n";
+ my ($f, $l);
+ foreach (@l) {
+ $f .= "/$_";
+ while ($l = readlink "$prefix$f") {
+ $f = $l =~ m!^/! ? $l : MDK::Common::File::concat_symlink($f, "../$l");
+ }
+ }
+ "$prefix$f";
+}
+
sub expand_symlinks_but_simple {
my ($f) = @_;
my $link = readlink($f);
@@ -185,6 +331,12 @@ sub formatError {
&MDK::Common::String::formatError($err);
}
+=item group_by($f, @list)
+
+Group the elements of @list in array references according to the $f comparison function.
+
+=cut
+
sub group_by(&@) {
my $f = shift;
@_ or return;
@@ -201,7 +353,14 @@ sub group_by(&@) {
@l;
}
-# Group the list by n. Returns a reference of lists of length n
+=item group_n_lm($n, @list)
+
+Group the list by n. Returns a reference of lists of length n
+
+See also C<group_by2(LIST)> from L<MDK::Common::DataStructure>
+
+=cut
+
sub group_n_lm {
my $n = shift;
my @l;
@@ -209,6 +368,12 @@ sub group_n_lm {
@l;
}
+=item join_lines(@strings)
+
+Concatenate adjacent strings if laters begin with spaces.
+
+=cut
+
sub join_lines {
my @l;
my $s;
@@ -224,10 +389,16 @@ sub join_lines {
}
+sub read_alternative {
+ my ($name) = @_;
+ my $alt = readlink("$::prefix/etc/alternatives/$name");
+ $alt && $::prefix . $alt;
+}
+
sub set_alternative {
my ($command, $executable) = @_;
- #- check the existance of $executable as an alternative for $command
+ #- check the existence of $executable as an alternative for $command
#- (is this needed???)
run_program::rooted_get_stdout($::prefix, 'update-alternatives', '--display', $command) =~ /^\Q$executable /m or return;
@@ -240,16 +411,57 @@ sub files_exist { and_(map { -f "$::prefix$_" } @_) }
sub open_file {
my ($file) = @_;
my $F;
- open($F, $file) ? $F : do { log::l("Can not open $file: $!"); undef };
+ open($F, $file) ? $F : do { log::l("Cannot open $file: $!"); undef };
}
+=item secured_file($f)
+
+A wrapper around c::is_secure_file().
+
+Callers should probably just use C<mkstemp()> in /tmp.
+=cut
+
+# FIXME: callers should just use mkstemp in /tmp instead of relying on $TMPDIR || $ENV{HOME}/tmp
+# or we should just move the choice of directory from callers to here:
+# my $tmpdir = find { -d $_ } $ENV{TMPDIR}, "$ENV{HOME}/tmp", "$::prefix/tmp";
sub secured_file {
my ($f) = @_;
- c::is_secure_file($f) or die "can not ensure a safe $f";
+ my $d = dirname($f);
+ if (! -d $d) {
+ mkdir_p($d);
+ if ($d =~ /^$ENV{HOME}/) {
+ my ($user) = grep { $_->[7] eq $ENV{HOME} } list_passwd();
+ chown($user->[2], $user->[3], $d);
+ }
+ }
+ c::is_secure_file($f) or die "cannot ensure a safe $f";
$f;
}
+sub unwind_protect {
+ my ($to_do, $cleanup) = @_;
+ my @l = eval { $to_do->() };
+ my $err = $@;
+ $cleanup->();
+ $err and die $err;
+ wantarray() ? @l : $l[0];
+}
+
+sub with_private_tmp_file {
+ my ($file, $content, $f) = @_;
+
+ my $prev_umask = umask 077;
+
+ unwind_protect(sub {
+ MDK::Common::File::secured_output($file, $content);
+ $f->($file);
+ }, sub {
+ umask $prev_umask;
+ unlink $file;
+ });
+}
+
sub chown_ {
my ($b_recursive, $name, $group, @files) = @_;
@@ -279,16 +491,61 @@ sub set_permissions {
chmod(oct($perms), $file) or die "chmod of file $file failed: $!\n";
}
+sub is_running {
+ my ($name, $o_user) = @_;
+ my $user = $o_user || $ENV{USER};
+ foreach (`ps -o '%P %p %c' -u $user`) {
+ my ($ppid, $pid, $n) = /^\s*(\d+)\s+(\d+)\s+(.*)/;
+ return $pid if $ppid != 1 && $pid != $$ && $n eq $name;
+ }
+}
+
+=back
+
+=head2 Release files
+
+=over
+
+=item parse_release_file($prefix, $f, $part)
+
+Parses the $f release file in $prefix from the $part device.
+
+Returns a hash containing C<release>, C<version>, C<release_file>, C<part> & C<arch> fields.
+
+=cut
+
+sub parse_release_file {
+ my ($prefix, $f, $part) = @_;
+ chomp(my $s = cat_("$prefix$f"));
+ my $version = $s =~ s/\s+release\s+(\S+)// && $1;
+ my $arch = $s =~ s/\s+for\s+(\S+)// && $1;
+ log::l("find_root_parts found $part->{device}: $s for $arch" . ($f !~ m!/etc/! ? " in special release file $f" : ''));
+ { release => $s, version => $version,
+ release_file => $f, part => $part, 'arch' => $arch };
+}
+
+=item release_file($o_dir)
+
+Returns the release file name.
+
+=cut
+
sub release_file {
my ($o_dir) = @_;
- my @names = ('mandrakelinux-release', 'mandrake-release', 'conectiva-release', 'release', 'redhat-release');
+ my @names = ('mageia-release', 'mandriva-release', 'mandrakelinux-release', 'mandrake-release', 'conectiva-release', 'release', 'redhat-release', 'fedora-release', 'SuSE-release');
find { -r "$o_dir$_" } (
(map { "/root/drakx/$_.upgrading" } @names),
(map { "/etc/$_" } @names),
);
}
-sub mandrake_release_info() {
+=item mageia_release_info()
+
+Parses C</etc/product.id> and returns a hash.
+
+=cut
+
+sub mageia_release_info() {
parse_LDAP_namespace_structure(cat_('/etc/product.id'));
}
@@ -298,45 +555,81 @@ sub parse_LDAP_namespace_structure {
\%h;
}
-sub mandrake_release {
+=item mageia_release($o_dir)
+
+returns the content of Mageia release file from given directory (optional).
+
+=cut
+
+sub mageia_release {
my ($o_dir) = @_;
my $f = release_file($o_dir);
$f && chomp_(cat_("$o_dir$f"));
}
+=back
+
+=head2 Misc
+
+=over
+
+
+=item get_parent_uid()
+
+Returns UID of the parent process.
+
+=cut
+
sub get_parent_uid() {
cat_('/proc/' . getppid() . '/status') =~ /Uid:\s*(\d+)/ ? $1 : undef;
}
-sub wrap_command_for_root {
- my ($name, @args) = @_;
- ([ 'consolehelper', $name ], @args);
-}
+=item require_root_capability()
+
+Ensure we are running as root.
+
+=cut
sub require_root_capability() {
return if $::testing || !$>; # we're already root
- my ($command, @args) = wrap_command_for_root($0, @ARGV);
- exec { $command->[0] } $command->[1], @args or die N("command %s missing", $command->[0]);
-
- # still not root ?
- die "you must be root to run this program" if $>;
+ die "you must be root to run this program";
}
+=item check_for_xserver()
+
+Test if we have access to X11.
+This eg enables interactive to use the proper backend (either text mode or
+GUI)
+
+=cut
+
sub check_for_xserver() {
if (!defined $::xtest) {
$::xtest = 0;
eval {
- require xf86misc::main;
- $::xtest = xf86misc::main::Xtest($ENV{DISPLAY});
+ require Gtk3;
+ Gtk3->import;
+ $::xtest = Gtk3::init_check();
} if $ENV{DISPLAY};
}
return $::xtest;
}
-#- special unpack
-#- - returning an array refs for each element like "s10"
-#- - handling things like s10* at the end of the format
+=item unpack_with_refs($format, $s)
+
+special unpack:
+
+=over 4
+
+=item * returning an array refs for each element like C<s10>
+
+=item * handling things like C<s10*> at the end of the format
+
+=back
+
+=cut
+
sub unpack_with_refs {
my ($format, $s) = @_;
my $initial_format = $format;
@@ -356,6 +649,12 @@ sub unpack_with_refs {
@r;
}
+=item md5file(@files)
+
+Returns the MD5 signatures of @files in list context or signature of the first one in scalar context.
+
+=cut
+
#- used in userdrake and mdkonline
sub md5file {
require Digest::MD5;
@@ -386,7 +685,7 @@ sub load_modules_from_base {
sub get_alternatives {
my ($name) = @_;
- my $dir = '/var/lib/rpm/alternatives';
+ my $dir = $::prefix . '/var/lib/rpm/alternatives';
my ($state, $main_link, @l) = chomp_(cat_("$dir/$name")) or return;
my @slaves;
while (@l && $l[0] ne '') {
@@ -415,4 +714,83 @@ sub update_gnomekderc_no_create {
}
}
+sub get_libdir() {
+ arch() =~ /x86_64/ ? "lib64" : "lib";
+}
+
+=item is_uefi()
+
+Checks if we are on an uefi system
+
+=cut
+
+sub is_uefi() { -e "/sys/firmware/efi" }
+
+=item kernel_uefi_type()
+
+Returns the short name of the UEFI machine type supported by the kernel stub loader
+
+=cut
+
+sub kernel_uefi_type() {
+ my $arch = arch();
+ if ($arch eq 'aarch64') {
+ return 'aa64';
+ }
+ $arch =~ /i.86/ ? 'ia32' : 'x64';
+}
+
+=item uefi_type()
+
+Returns the UEFI machine type short name
+
+=cut
+
+sub uefi_type() {
+ if (arch() eq 'aarch64') {
+ return 'aa64';
+ }
+ if (-e '/sys/firmware/efi/fw_platform_size') {
+ cat_('/sys/firmware/efi/fw_platform_size') =~ /32/ ? 'ia32' : 'x64';
+ } else {
+ 'none';
+ }
+}
+
+=item mount_efivars()
+
+Ensures the efivarfs pseudo-filesystem is mounted in the default location
+and returns the mount point and whether it was already mounted.
+
+=cut
+
+sub mount_efivars {
+ my $mount_point = "$::prefix/sys/firmware/efi/efivars";
+ my $already_mounted = cat_("$::prefix/proc/mounts") =~ /\s$mount_point\s/;
+ run_program::run('mount', '-t', 'efivarfs', 'none', $mount_point) if !$already_mounted;
+ ($mount_point, $already_mounted);
+}
+
+=item cmp_kernel_versions($va, $vb)
+
+Compare two kernel versions
+
+=cut
+
+sub cmp_kernel_versions {
+ my ($va, $vb) = @_;
+ my $rel_a = $va =~ s/-(.*)$// && $1;
+ my $rel_b = $vb =~ s/-(.*)$// && $1;
+ ($va, $vb) = map { [ split /[.-]/ ] } $va, $vb;
+ my $r = 0;
+ mapn_ {
+ $r ||= $_[0] <=> $_[1];
+ } $va, $vb;
+ $r || $rel_a <=> $rel_b || $rel_a cmp $rel_b;
+}
+
+=back
+
+=cut
+
1;
diff --git a/perl-install/cpufreq.pm b/perl-install/cpufreq.pm
index 8fa9b5a17..bbcf56700 100644
--- a/perl-install/cpufreq.pm
+++ b/perl-install/cpufreq.pm
@@ -41,18 +41,24 @@ sub find_pci_device {
sub probe_acpi_cpufreq() {
any {
get_vendor($_) eq "Intel" &&
- has_flag($_, 'est') &&
$_->{'cpu family'} == 6 &&
- $_->{model} == 15;
+ (
+ has_flag($_, 'est') ||
+ $_->{model} == 11
+ );
} get_cpus();
}
+# see cpuid.c (from cpuid package) for a list of family/models
sub probe_centrino() {
any {
get_vendor($_) eq "Intel" &&
has_flag($_, 'est') && (
- $_->{'cpu family'} == 6 && member($_->{model}, 9, 13, 14) ||
- $_->{'cpu family'} == 15 && member($_->{model}, 3, 4)
+ ($_->{'cpu family'} == 6 && $_->{model} == 9 && $_->{stepping} == 5 &&
+ $_->{'model name'} =~ /^Intel\(R\) Pentium\(R\) M processor ( 900|1[0-7]00)MHz$/) ||
+ ($_->{'cpu family'} == 6 && $_->{model} == 13 && member($_->{stepping}, 1, 2, 6)) ||
+ ($_->{'cpu family'} == 15 && $_->{model} == 3 && $_->{stepping} == 4) ||
+ ($_->{'cpu family'} == 15 && $_->{model} == 4 && $_->{stepping} == 1)
);
} get_cpus();
}
@@ -64,23 +70,16 @@ sub probe_smi() { find_pci_device([ 0x8086, 0x7190 ]) }
sub probe_nforce2() { find_pci_device([ 0x10de, 0x01e0 ]) }
sub probe_gsx() {
- any { member(get_vendor($_), "Cyrix", "NSC") } get_cpus() &&
+ (any { member(get_vendor($_), "Cyrix", "NSC") } get_cpus()) &&
find_pci_device([ 0x1078, 0x0100 ], [ 0x1078, 0x0002 ], [ 0x1078, 0x0000 ]);
}
-sub probe_powerpc() {
- arch() =~ /ppc/ && any {
- member($_->{motherboard}, ('PowerBook3,4', 'PowerBook3,5', 'PowerBook4,1', 'PowerBook3,2', 'MacRISC3')) &&
- # Kernel contains a special case for the supported 750FX,
- # not sure if the cpu name can be used, so use same test as kernel
- first($_->{revision} =~ /\bpvr\s+(\d+)\b/) == 7000;
- } get_cpus();
-}
-
sub probe_p4() {
any {
- get_vendor($_) eq "Intel" &&
- $_->{'cpu family'} == 15;
+ get_vendor($_) eq "Intel" && (
+ $_->{'cpu family'} == 15 ||
+ ($_->{'cpu family'} == 6 && !has_flag($_, 'est') && member($_->{model}, 9, 13, 14, 15))
+ );
} get_cpus();
}
@@ -101,9 +100,11 @@ sub probe_powernow_k7() {
sub probe_powernow_k8() {
any {
- get_vendor($_) eq "AMD" &&
- $_->{'cpu family'} == 15 &&
- ($_->{'power management'} =~ /\bfid\b/ || has_flag($_, 'fid')); # frequency ID control
+ get_vendor($_) eq "AMD" && (
+ ($_->{'cpu family'} == 15 && ($_->{'power management'} =~ /\bfid\b/ || has_flag($_, 'fid'))) # frequency ID control)
+ ||
+ $_->{'cpu family'} == 16 && ($_->{'power management'} =~ /\bhwpstate\b/) # support for Athlon/Phenom II processors (#58477))
+ );
} get_cpus();
}
@@ -115,6 +116,15 @@ sub probe_longhaul() {
} get_cpus();
}
+sub probe_e_powersaver() {
+ any {
+ get_vendor($_) eq "Centaur" &&
+ has_flag($_, 'est') &&
+ $_->{'cpu family'} == 6 &&
+ member($_->{model}, 10, 13);
+ } get_cpus();
+}
+
sub probe_longrun() {
any {
get_vendor($_) eq "Transmeta" &&
@@ -123,10 +133,10 @@ sub probe_longrun() {
}
my @modules = (
- [ "acpi-cpufreq", \&probe_acpi_cpufreq ],
# probe centrino first, it will get detected on ICH chipset and
# speedstep-ich doesn't work with it
[ "speedstep-centrino", \&probe_centrino ],
+ [ "acpi-cpufreq", \&probe_acpi_cpufreq ],
# try to find cpufreq compliant northbridge
[ "speedstep-ich", \&probe_ich ],
[ "speedstep-smi", \&probe_smi ],
@@ -138,6 +148,7 @@ my @modules = (
[ "powernow-k7", \&probe_powernow_k7 ],
[ "powernow-k8", \&probe_powernow_k8 ],
[ "longhaul", \&probe_longhaul ],
+ [ "e_powersaver", \&probe_e_powersaver ],
[ "longrun", \&probe_longrun ],
);
@@ -146,11 +157,11 @@ sub find_driver() {
$m && $m->[0];
}
-my @governor_modules = map { "cpufreq_$_" } qw(performance powersave conservative ondemand);
+my @governor_modules = map { "cpufreq_$_" } qw(powersave conservative ondemand);
sub get_modules() {
my $module;
- if (probe_powerpc() || ($module = find_driver())) {
+ if ($module = find_driver()) {
return if_($module, $module), @governor_modules;
}
();
diff --git a/perl-install/dbus_object.pm b/perl-install/dbus_object.pm
index 1b4a4264e..5c59de7e0 100644
--- a/perl-install/dbus_object.pm
+++ b/perl-install/dbus_object.pm
@@ -1,8 +1,10 @@
package dbus_object;
-sub system_bus() {
+sub system_bus {
+ my %params = @_;
+ #- use nomainloop => 1 to disable Net::DBus::Reactor main loop
require Net::DBus;
- Net::DBus->system;
+ Net::DBus->system(%params);
}
sub new {
@@ -42,20 +44,20 @@ sub safe_call_method {
@ret;
}
-sub set_gtk2_watch {
+sub set_gtk3_watch {
my ($o) = @_;
- set_gtk2_watch_helper($o->{bus});
+ set_gtk3_watch_helper($o->{bus});
}
-sub set_gtk2_watch_helper {
+sub set_gtk3_watch_helper {
my ($bus) = @_;
$bus->{connection}->set_watch_callbacks(sub {
my ($con, $watch) = @_;
my $flags = $watch->get_flags;
require Net::DBus::Binding::Watch;
- require Gtk2::Helper;
+ require Gtk3::Helper;
if ($flags & &Net::DBus::Binding::Watch::READABLE) {
- Gtk2::Helper->add_watch($watch->get_fileno, 'in', sub {
+ Gtk3::Helper->add_watch($watch->get_fileno, 'in', sub {
$watch->handle(&Net::DBus::Binding::Watch::READABLE);
$con->dispatch;
1;
diff --git a/perl-install/detect_devices.pm b/perl-install/detect_devices.pm
index acfaab9c7..48dadadbb 100644
--- a/perl-install/detect_devices.pm
+++ b/perl-install/detect_devices.pm
@@ -1,4 +1,4 @@
-package detect_devices; # $Id$
+package detect_devices;
use diagnostics;
use strict;
@@ -8,11 +8,46 @@ use vars qw($pcitable_addons $usbtable_addons);
#- misc imports
#-######################################################################################
use log;
+use MDK::Common; # help perl_checker
use common;
use devices;
use run_program;
use modules;
use c;
+use feature 'state';
+
+
+=head1 SYNOPSYS
+
+The B<detect_devices> modules offers a high level API for detecting devices.*
+It mostly relies on the L<c> modules for gluing libldetect back into the Perl world, and thus
+being able to enumerate DMI/HID/PCI/USB devices.
+
+Other devices are mostly detected through C</proc> & C</sys>.
+
+Then the L<list_modules> enables to map modules into categories such as:
+
+=over 4
+
+=item * C<network/ethernet,>
+
+=item * C<network/wireless,>
+
+=item * C<network/wifi,>
+
+=item * C<disk/sata,>
+
+=item * C<disk/scsi,>
+
+=item * ...
+
+=back
+
+This enables to detect a category by mapping drivers to categories.
+
+=head1 Listing block devices
+
+=cut
#-#####################################################################################
#- Globals
@@ -23,6 +58,14 @@ my %serialprobe;
#- Functions
#-######################################################################################
+=over
+
+=item get()
+
+Returns a list of all block devices (IDE, SCSI, SATA, virtual, RAID, ...)
+
+=cut
+
sub get() {
#- Detect the default BIOS boot harddrive is kind of tricky. We may have IDE,
#- SCSI and RAID devices on the same machine. From what I see so far, the default
@@ -31,7 +74,7 @@ sub get() {
#- 2. The first SCSI device if SCSI exists. Or
#- 3. The first RAID device if RAID exists.
- getIDE(), getSCSI(), getDAC960(), getCompaqSmartArray(), getATARAID();
+ getIDE(), getSCSI(), getMmcBlk(), getNVMe(), getXenBlk(), getVirtIO(), getDAC960(), getCompaqSmartArray();
}
sub hds() { grep { may_be_a_hd($_) } get() }
sub tapes() { grep { $_->{media_type} eq 'tape' } get() }
@@ -50,12 +93,24 @@ sub zips() {
sub floppies {
my ($o_not_detect_legacy_floppies) = @_;
require modules;
- my @fds;
- if (!$o_not_detect_legacy_floppies) {
- eval { modules::load("floppy") if $::isInstall };
- if (!is_xbox()) {
+ state @fds;
+ state $legacy_already_detected;
+
+ $o_not_detect_legacy_floppies = 1 if arch() =~ /arm/;
+
+ if (!$o_not_detect_legacy_floppies && !$legacy_already_detected) {
+ $legacy_already_detected = 1;
+ if ($::isInstall) {
+ eval { modules::load("floppy") };
+ system(qw(udevadm settle)) if !$@;
+ }
+ #- do not bother probing /dev/fd0 and loading floppy device uselessly,
+ #- it takes time and it is already done by boot process (if not in install):
+ #- /dev/fd0 is created by start_udev (/etc/udev/devices.d/default.nodes)
+ #- then hal probes /dev/fd0 and triggers floppy module loading through kernel's kmod
+ if (any { (split)[1] eq 'fd' } cat_("/proc/devices")) {
@fds = map {
- my $info = c::floppy_info(devices::make("fd$_"));
+ my $info = c::floppy_info("/dev/fd$_");
if_($info && $info ne '(null)', { device => "fd$_", media_type => 'fd', info => $info });
} qw(0 1);
}
@@ -113,10 +168,11 @@ sub complete_usb_storage_info {
if (my $e = find { !$_->{found} && $_->{usb_vendor} == $usb->{vendor} && $_->{usb_id} == $usb->{id} } @usb) {
my $host = get_sysfs_usbpath_for_block($e->{device});
if ($host) {
- $e->{info} = chomp_(cat_("/sys/block/$e->{device}/$host/../serial"));
+ my $file = "/sys/block/$host/../serial";
+ $e->{info} = chomp_(cat_($file)) if -e $file;
$e->{usb_description} = join('|',
- chomp_(cat_("/sys/block/$e->{device}/$host/../manufacturer")),
- chomp_(cat_("/sys/block/$e->{device}/$host/../product")));
+ chomp_(cat_("/sys/block/$host/../manufacturer")),
+ chomp_(cat_("/sys/block/$host/../product")));
}
local $e->{found} = 1;
$e->{"usb_$_"} ||= $usb->{$_} foreach keys %$usb;
@@ -162,7 +218,7 @@ sub get_sysfs_field_from_link {
sub get_sysfs_usbpath_for_block {
my ($device) = @_;
- my $host = readlink("/sys/block/$device/device");
+ my $host = readlink("/sys/block/$device");
$host =~ s!/host.*!!;
$host;
}
@@ -173,10 +229,17 @@ sub get_scsi_driver {
foreach (@l) {
next if $_->{driver};
my $host = get_sysfs_usbpath_for_block($_->{device});
- $_->{driver} = get_sysfs_field_from_link("/sys/block/$_->{device}/$host", 'driver');
+ require list_modules;
+ $_->{driver} = list_modules::filename2modname(get_sysfs_field_from_link("/sys/block/$host", 'driver'));
}
}
+=item getSCSI()
+
+Returns a list of all SCSI device.
+
+=cut
+
sub getSCSI() {
my $dev_dir = '/sys/bus/scsi/devices';
@@ -195,15 +258,20 @@ sub getSCSI() {
my @l;
foreach (all($dev_dir)) {
- my ($host, $channel, $id, $lun) = split ':' or log::l("bad entry in $dev_dir: $_"), next;
+ my ($host, $channel, $id, $lun) = split ':';
+ defined $lun or next;
+
my $dir = "$dev_dir/$_";
# handle both old and new kernels:
my $node = find { -e $_ } "$dir/block", top(glob_("$dir/block*")), "$dir/tape", top(glob_("$dir/scsi_generic*"));
my ($device) = readlink($node) =~ m!/(?:scsi_(?:generic|tape)|block)/(.*)!;
+ if (!$device) {
+ ($device) = top(glob_("$node/*")) =~ m!/(?:scsi_(?:generic|tape)|block)/(.*)!;
+ }
warn("cannot get info for device ($_)"), next if !$device;
- my $usb_dir = readlink("$node/device") =~ m!/usb! && "$node/device/../../../..";
+ my $usb_dir = readlink($dir) =~ m!/usb! && "$dir/../../../..";
my $get_usb = sub { chomp_(cat_("$usb_dir/$_[0]")) };
my $get = sub {
@@ -212,15 +280,20 @@ sub getSCSI() {
$s;
};
- # Old hp scanners report themselves as "Processor"s
+ # Old HP scanners report themselves as "Processor"s
# (see linux/include/scsi/scsi.h and sans-find-scanner.1)
my $raw_type = $scsi_types[$get->('type')];
my $media_type = ${{ st => 'tape', sr => 'cdrom', sd => 'hd', sg => 'generic' }}{substr($device, 0, 2)} ||
$raw_type =~ /Scanner|Processor/ && 'scanner';
- push @l, { info => $get->('vendor') . ' ' . $get->('model'), host => $host, channel => $channel, id => $id, lun => $lun,
- description => join('|', $get->('vendor'), $get->('model')),
+ my ($vendor, $model) = ($get->('vendor'), $get->('model'));
+ my ($v, $m) = _get_hd_vendor($model);
+ if ($v && $m) {
+ ($vendor, $model) = ($v, $m);
+ }
+ push @l, { info => $vendor . ' ' . $model, host => $host, channel => $channel, id => $id, lun => $lun,
+ description => join('|', $vendor, $model),
bus => 'SCSI', media_type => $media_type, device => $device,
$usb_dir ? (
usb_vendor => hex($get_usb->('idVendor')), usb_id => hex($get_usb->('idProduct')),
@@ -242,13 +315,15 @@ sub getSCSI() {
}
-my %eide_hds = (
+my %hd_vendors = (
"ASUS" => "Asus",
+ "ATA Maxtor" => "Maxtor",
"CD-ROM CDU" => "Sony",
"CD-ROM Drive/F5D" => "ASUSTeK",
"Compaq" => "Compaq",
"CONNER" => "Conner Peripherals",
"IBM" => "IBM",
+ "INTEL" => "Intel",
"FUJITSU" => "Fujitsu",
"HITACHI" => "Hitachi",
"Lite-On" => "Lite-On Technology Corp.",
@@ -269,6 +344,21 @@ my %eide_hds = (
"WDC" => "Western Digital Corp.",
);
+# return ($vendor, $model)
+sub _get_hd_vendor {
+ my ($info) = @_;
+ foreach my $name (keys %hd_vendors) {
+ next if !$name;
+ return ($hd_vendors{$name}, $2) if $info =~ /^$name(-|\s)*(.*)/;
+ }
+ return ("Hitachi", $info) if $info =~ /^HD[ST][0-9]/;
+}
+
+=item getIDE()
+
+Returns a list of all IDE device.
+
+=cut
sub getIDE() {
my @idi;
@@ -278,15 +368,12 @@ sub getIDE() {
#- Great. 2.2 kernel, things are much easier and less error prone.
foreach my $d (sort @{[glob_('/proc/ide/hd*')]}) {
- cat_("$d/driver") =~ /ide-scsi/ and next; #- already appears in /proc/scsi/scsi
my $t = chomp_(cat_("$d/media"));
my $type = ${{ disk => 'hd', cdrom => 'cdrom', tape => 'tape', floppy => 'fd' }}{$t} or next;
my $info = chomp_(cat_("$d/model")) || "(none)";
my $num = ord(($d =~ /(.)$/)[0]) - ord 'a';
- my ($vendor, $model) = map {
- if_($info =~ /^$_(-|\s)*(.*)/, $eide_hds{$_}, $2);
- } keys %eide_hds;
+ my ($vendor, $model) = _get_hd_vendor($info);
my $host = $num;
($host, my $id) = divide($host, 2);
@@ -306,13 +393,17 @@ sub block_devices() {
: map { $_->{dev} } do { require fs::proc_partitions; fs::proc_partitions::read_raw() };
}
+=item getCompaqSmartArray()
+
+Returns a list of all CCISS devices (Compaq Smart Array).
+
+=cut
+
sub getCompaqSmartArray() {
my (@idi, $f);
foreach ('array/ida', 'cpqarray/ida', 'cciss/cciss') {
- my $prefix = "/proc/driver/$_"; #- kernel 2.4 places it here
- $prefix = "/proc/$_" if !-e "${prefix}0"; #- kernel 2.2
-
+ my $prefix = "/proc/driver/$_";
my ($name) = m|/(.*)|;
for (my $i = 0; -r ($f = "${prefix}$i"); $i++) {
my @raw_devices = cat_($f) =~ m|^\s*($name/.*?):|gm;
@@ -341,30 +432,60 @@ sub getDAC960() {
#- /dev/rd/c0d0: RAID-7, Online, 17928192 blocks, Write Thru0123456790123456789012
foreach (syslog()) {
my ($device, $info) = m|/dev/(rd/.*?): (.*?),| or next;
- $idi{$device} = { info => $info, media_type => 'hd', device => $device, prefix => $device . 'p', bus => 'dac960' };
+ $idi{$device} = { info => $info, media_type => 'hd', device => $device, bus => 'dac960' };
}
values %idi;
}
-sub getATARAID() {
- my %l;
- foreach (syslog()) {
- my ($device) = m|^\s*(ataraid/d\d+):| or next;
- $l{$device} = { info => 'ATARAID block device', media_type => 'hd', device => $device, prefix => $device . 'p', bus => 'ataraid' };
- log::l("ATARAID: $device");
+=item getXenBlk()
+
+Returns a list of all Xen block devices (C</dev/xvd*>).
+
+=cut
+
+sub getXenBlk() {
+ -d '/sys/bus/xen/devices' or return;
+ map {
+ s/block://;
+ { device => basename($_), info => "Xen block device", media_type => 'hd', bus => 'xen' };
+ } glob("/sys/block/xvd*");
+}
+
+=item getVirtIO()
+
+Returns a list of all VirtIO block devices (/dev/C<vd*>).
+
+=cut
+
+sub getVirtIO() {
+ -d '/sys/bus/virtio/devices' or return;
+ map {
+ { device => basename($_), info => "VirtIO block device", media_type => 'hd', bus => 'virtio' };
}
- values %l;
+ glob("/sys/bus/virtio/devices/*/block/*");
}
+sub getMmcBlk() {
+ -d '/sys/bus/mmc/devices' or return;
+ map {
+ { device => basename($_), info => "MMC block device", media_type => 'hd', bus => 'mmc' };
+ }
+ glob("/sys/bus/mmc/devices/*/block/*");
+}
+
+sub getNVMe() {
+ -d '/sys/class/nvme' or return;
+ map {
+ { device => basename($_), info => "NVMe block device", media_type => 'hd', bus => 'pci_express' };
+ }
+ glob("/sys/block/nvme*");
+}
-# cpu_name : arch() =~ /^alpha/ ? "cpu " :
-# arch() =~ /^ppc/ ? "processor" : "vendor_id"
+=item getCPUs()
-# cpu_model : arch() =~ /^alpha/ ? "cpu model" :
-# arch() =~ /^ppc/ ? "cpu " : "model name"
+Returns a list of all CPUs.
-# cpu_freq = arch() =~ /^alpha/ ? "cycle frequency [Hz]" :
-# arch() =~ /^ppc/ ? "clock" : "cpu MHz"
+=cut
sub getCPUs() {
my (@cpus, $cpu);
@@ -384,15 +505,20 @@ sub ix86_cpu_frequency() {
cat_('/proc/cpuinfo') =~ /cpu MHz\s*:\s*(\d+)/ && $1;
}
+=item probe_category($category)
+
+Returns a list of devices which drivers are in the asked category. eg:
+
+ my @eth_cards = probe_category('network/ethernet');
+
+=cut
+
sub probe_category {
my ($category) = @_;
require list_modules;
my @modules = list_modules::category2modules($category);
- if_($category =~ /sound/ && arch() =~ /ppc/ && get_mac_model() !~ /IBM/,
- { driver => 'snd_powermac', description => 'Macintosh built-in' },
- ),
grep {
if ($category eq 'network/isdn') {
my $b = $_->{driver} =~ /ISDN:([^,]*),?([^,]*)(?:,firmware=(.*))?/;
@@ -419,7 +545,10 @@ sub isTVcardConfigurable { member($_[0]{driver}, qw(bttv cx88 saa7134)) }
sub getTVcards() { probe_category('multimedia/tv') }
sub getInputDevices() {
+ state @input_devices;
+ return @input_devices if @input_devices;
my (@devices, $device);
+ my $event;
foreach (cat_('/proc/bus/input/devices')) {
if (/^I:/) {
$device = {};
@@ -471,13 +600,25 @@ sub getInputDevices() {
#- B: KEY=1c43 0 70000 0 0 0 0 0 0 0 0 #=> BTN_LEFT BTN_RIGHT BTN_MIDDLE TOOL_PEN TOOL_RUBBER TOOL_FINGER TOOL_MOUSE TOUCH STYLUS STYLUS2
#- B: ABS=100 3000003 #=> X Y PRESSURE DISTANCE MISC
+ #I: Bus=0003 Vendor=049f Product=0024 Version=0001
+ #N: Name="Compaq Compaq Numeric Keypad"
+ #P: Phys=usb-0000:00:03.2-2/input0
+ #S: Sysfs=/class/input/input7
+ #H: Handlers=kbd event3
+ #B: EV=120003
+ #B: KEY=10000 7 ff800000 7ff febeffdf ffefffff ffffffff fffffffe
+ #B: LED=1f
+
$device->{Synaptics} = $descr eq 'SynPS/2 Synaptics TouchPad';
$device->{ALPS} = $descr =~ m!^AlpsPS/2 ALPS!;
+ $device->{Elantech} = $descr eq 'ETPS/2 Elantech Touchpad';
+ $device->{Numpad} = $descr =~ /Numeric Keypad/;
} elsif (/H: Handlers=(.*)/) {
my @l = split(' ', $1);
$device->{driver} = $l[0]; #- keep it for compatibility
$device->{Handlers} = +{ map { (/^(.*?)\d*$/ ? $1 : $_, $_) } split(' ', $1) };
+ $event = $device->{Handlers}{event};
} elsif (/S: Sysfs=(.+)/) {
$device->{sysfs_path} = $1;
} elsif (/P: Phys=(.*)/) {
@@ -500,15 +641,23 @@ sub getInputDevices() {
#- KEY=30000 0 0 0 0 0 0 0 0 #=> BTN_LEFT BTN_RIGHT
#- KEY=70000 0 0 0 0 0 0 0 0 #=> BTN_LEFT BTN_RIGHT BTN_MIDDLE
#- KEY=1f0000 0 0 0 0 0 0 0 0 #=> BTN_LEFT BTN_RIGHT BTN_MIDDLE BTN_SIDE BTN_EXTRA
- my $KEY = hex($1);
- $device->{SIDE} = 1 if $KEY & (1 << 0x13);
+ if (!$> && ! -f "/dev/input/$event") {
+ devices::make("/dev/input/$event");
+ }
+ if (-r "/dev/input/$event") {
+ my @KEYS = c::EVIocGBitKey("/dev/input/$event");
+ $device->{SIDE} = 1 if $KEYS[0] & (1 << 0x13);
+ } else {
+ my $KEY = hex($1);
+ $device->{SIDE} = 1 if $KEY & (1 << 0x13);
+ }
} elsif (/^\s*$/) {
push @devices, $device if $device;
undef $device;
}
}
- @devices;
+ @input_devices = @devices;
}
sub getInputDevices_and_usb() {
@@ -523,17 +672,31 @@ sub getInputDevices_and_usb() {
@l;
}
+sub serialPorts() { map { "ttyS$_" } 0..7 }
+sub serialPort2text {
+ $_[0] =~ /ttyS(\d+)/ ? "$_[0] / COM" . ($1 + 1) : $_[0];
+}
+
+=back
+
+=head1 Network
+
+=over
+
+=cut
+
sub getSerialModem {
- my ($modules_conf, $o_mouse) = @_;
+ my ($_modules_conf, $o_mouse) = @_;
my $mouse = $o_mouse || {};
$mouse->{device} = readlink "/dev/mouse";
- my $serdev = arch() =~ /ppc/ ? "macserial" : "serial";
+ my $serdev = "serial";
+
eval { modules::load($serdev) };
my @modems;
probeSerialDevices();
- foreach my $port (map { "ttyS$_" } (0..7)) {
+ foreach my $port (serialPorts()) {
next if $mouse->{device} =~ /$port/;
my $device = "/dev/$port";
next if !-e $device || !hasModem($device);
@@ -542,16 +705,20 @@ sub getSerialModem {
}
my @devs = pcmcia_probe();
foreach my $modem (@modems) {
- #- add an alias for macserial on PPC
- $modules_conf->set_alias('serial', $serdev) if arch() =~ /ppc/ && $modem->{device};
foreach (@devs) { $_->{device} and $modem->{device} = $_->{device} }
}
@modems;
}
+=item getModem()
+
+Return list of modems (serial, WinModems)
+=cut
+
+our $detect_serial_modem = 1;
sub getModem {
my ($modules_conf) = @_;
- getSerialModem($modules_conf, {}), get_winmodems();
+ ($detect_serial_modem ? getSerialModem($modules_conf, {}) : ()), get_winmodems();
}
sub get_winmodems() {
@@ -596,6 +763,12 @@ sub getECI() {
grep { member(sprintf("%04x%04x%04x%04x", $_->{vendor}, $_->{id}, $_->{subvendor}, $_->{subid}), @ids) } usb_probe();
}
+=item get_xdsl_usb_devices()
+
+Return list of xDSL devices.
+
+=cut
+
sub get_xdsl_usb_devices() {
my @bewan = detect_devices::getBewan();
$_->{driver} = $_->{bus} eq 'USB' ? 'unicorn_usb_atm' : 'unicorn_pci_atm' foreach @bewan;
@@ -607,26 +780,46 @@ sub get_xdsl_usb_devices() {
@usb, @bewan, @eci;
}
+=item is_lan_interface($device)
+
+Is it a LAN interface (blacklist some interfaces (PPP, ...)?
+
+=cut
+
sub is_lan_interface {
- # we want LAN like interfaces here (eg: ath|br|eth|fddi|plip|ra|tr|usb|wlan).
- # there's also bnep%d for bluetooth, bcp%d...
- # we do this by blacklisting the following interfaces:
- # - ippp|isdn|plip|ppp (initscripts suggest that isdn%d can be created but kernel sources claim not)
- # ippp%d are created by drivers/isdn/i4l/isdn_ppp.c
- # plip%d are created by drivers/net/plip.c
- # ppp%d are created by drivers/net/ppp_generic.c
+ #- we want LAN like interfaces here (eg: ath|br|eth|fddi|plip|ra|tr|usb|wlan).
+ #- there's also bnep%d for bluetooth, bcp%d...
+ #- we do this by blacklisting the following interfaces:
+ #- hso%d are created by drivers/net/usb/hso.c
+ #- ippp|isdn|plip|ppp (initscripts suggest that isdn%d can be created but kernel sources claim not)
+ #- ippp%d are created by drivers/isdn/i4l/isdn_ppp.c
+ #- plip%d are created by drivers/net/plip.c
+ #- ppp%d are created by drivers/net/ppp_generic.c
+ #- pan%d are created by bnep
is_useful_interface($_[0]) &&
- $_[0] !~ /^(?:ippp|isdn|plip|ppp)/;
+ $_[0] !~ /^(?:hso|ippp|isdn|plip|ppp|pan)/;
}
+=item is_useful_interface($device)
+
+Is it a usefull interface (blacklist some interfaces (loopback, sit, wifi, ...)?
+
+=cut
+
sub is_useful_interface {
- # - sit0 which is *always* created by net/ipv6/sit.c, thus is always created since net.agent loads ipv6 module
- # - wifi%d are created by 3rdparty/hostap/hostap_hw.c (pseudo statistics devices, #14523)
- # - wmaster%d are created by net/mac80211/ieee80211.c ("master" 802.11 device)
- # ax*, rose*, nr*, bce* and scc* are Hamradio devices (#28776)
+ #- sit0 which is *always* created by net/ipv6/sit.c, thus is always created since net.agent loads ipv6 module
+ #- wifi%d are created by 3rdparty/hostap/hostap_hw.c (pseudo statistics devices, #14523)
+ #- wmaster%d are created by net/mac80211/ieee80211.c ("master" 802.11 device)
+ #- ax*, rose*, nr*, bce* and scc* are Hamradio devices (#28776)
$_[0] !~ /^(?:lo|sit0|wifi|wmaster|ax|rose|nr|bce|scc)/;
}
+=item is_wireless_interface($device)
+
+Is it a WiFi interface?
+
+=cut
+
sub is_wireless_interface {
my ($interface) = @_;
#- some wireless drivers don't always support the SIOCGIWNAME ioctl
@@ -634,35 +827,77 @@ sub is_wireless_interface {
#- wlan-ng (prism2_*) need some special tweaks to support it
#- use sysfs as fallback to detect wireless interfaces,
#- i.e interfaces for which get_wireless_stats() is available
- c::isNetDeviceWirelessAware($interface) || -e "/sys/class/net/$interface/wireless";
+ c::isNetDeviceWirelessAware($interface)
+ || -e "/sys/class/net/$interface/wireless"
+ || -e "/sys/class/net/$interface/phy80211";
}
+=item get_all_net_devices()
+
+Returns list of all network devices
+
+=cut
+
sub get_all_net_devices() {
- # we need both detection schemes since:
- # - get_netdevices() use the SIOCGIFCONF ioctl that does not list interfaces that are down
- # - /proc/net/dev does not list VLAN and IP aliased interfaces
+ #- we need both detection schemes since:
+ #- get_netdevices() use the SIOCGIFCONF ioctl that does not list interfaces that are down
+ #- /proc/net/dev does not list VLAN and IP aliased interfaces
uniq(
(map { if_(/^\s*([A-Za-z0-9:\.]*):/, $1) } cat_("/proc/net/dev")),
c::get_netdevices(),
);
}
+=item get_lan_interfaces()
+
+Returns list of all LAN devices
+
+=cut
+
sub get_lan_interfaces() { grep { is_lan_interface($_) } get_all_net_devices() }
+
+=item get_net_interfaces()
+
+Returns list of all useful network devices
+
+=cut
+
sub get_net_interfaces() { grep { is_useful_interface($_) } get_all_net_devices() }
+
+=item get_wireless_interface()
+
+Returns list of all Wireless devices
+
+=cut
+
sub get_wireless_interface() { find { is_wireless_interface($_) } get_lan_interfaces() }
+=item is_bridge_interface($interface)
+
+Is it a bridge?
+
+=cut
+
sub is_bridge_interface {
my ($interface) = @_;
-f "/sys/class/net/$interface/bridge/bridge_id";
}
+=back
+
+=head1 Enumerating devices
+
+=over
+
+=cut
+
sub get_ids_from_sysfs_device {
my ($dev_path) = @_;
my $dev_cat = sub { chomp_(cat_("$dev_path/$_[0]")) };
my $usb_root = -f "$dev_path/bInterfaceNumber" && "../" || -f "$dev_path/idVendor" && "";
my $is_pcmcia = -f "$dev_path/card_id";
my $sysfs_ids;
- my $bus = get_sysfs_field_from_link($dev_path, "bus");
+ my $bus = get_sysfs_field_from_link($dev_path, "subsystem");
#- FIXME: use $bus
if ($is_pcmcia) {
$sysfs_ids = { modalias => $dev_cat->('modalias') };
@@ -680,7 +915,7 @@ sub get_ids_from_sysfs_device {
if ($bus eq 'pci') {
my $device = basename(readlink $dev_path);
my @ids = $device =~ /^(.{4}):(.{2}):(.{2})\.(.+)$/;
- @{$sysfs_ids}{qw(pci_domain pci_bus pci_device pci_function)} = map { hex($_) } @ids if @ids;
+ @$sysfs_ids{qw(pci_domain pci_bus pci_device pci_function)} = map { hex($_) } @ids if @ids;
}
}
$sysfs_ids;
@@ -696,10 +931,6 @@ sub device_matches_sysfs_device {
device_matches_sysfs_ids($device, get_ids_from_sysfs_device($dev_path));
}
-#sub getISDN() {
-# mapgrep(sub {member (($_[0] =~ /\s*(\w*):/), @netdevices), $1 }, split(/\n/, cat_("/proc/net/dev")));
-#}
-
sub getUPS() {
# MGE serial PnP devices:
(map {
@@ -714,7 +945,7 @@ sub getUPS() {
# USB UPSs;
(map { ($_->{name} = $_->{description}) =~ s/.*\|//; $_ }
map {
- if ($_->{description} =~ /^American Power Conversion\|Back-UPS/ && $_->{driver} eq 'usbhid') {
+ if ($_->{description} =~ /Back-UPS/ && $_->{driver} eq 'usbhid') {
#- FIXME: should not be hardcoded, use $_->{sysfs_device} . */usb:(hiddev\d+)
#- the device should also be assigned to the ups user
$_->{port} = "/dev/hiddev0";
@@ -771,35 +1002,58 @@ sub add_addons {
@l;
}
+sub get_pci_sysfs_path {
+ my ($l) = @_;
+ sprintf('%04x:%02x:%02x.%d', $l->{pci_domain}, $l->{pci_bus}, $l->{pci_device}, $l->{pci_function});
+}
+
+
my (@pci, @usb);
+
sub pci_probe__real() {
add_addons($pcitable_addons, map {
- my %l;
- @l{qw(vendor id subvendor subid pci_domain pci_bus pci_device pci_function media_type nice_media_type driver description)} = split "\t";
- $l{$_} = hex $l{$_} foreach qw(vendor id subvendor subid);
- $l{bus} = 'PCI';
- $l{sysfs_device} = sprintf('/sys/bus/pci/devices/%04x:%02x:%02x.%d', $l{pci_domain}, $l{pci_bus}, $l{pci_device}, $l{pci_function});
- \%l;
+ my $l = $_;
+ $l->{bus} = 'PCI';
+ $l->{sysfs_device} = '/sys/bus/pci/devices/' . get_pci_sysfs_path($l);
+ $l;
} c::pci_probe());
}
+
+=item pci_probe()
+
+Cache the result of C<c::pci_probe()> and return the list of items in the PCI devices.
+
+=cut
+
sub pci_probe() {
- @pci = pci_probe__real() if !@pci;
+ state $done;
+ if (!$done) {
+ @pci = pci_probe__real() if !@pci;
+ foreach (@pci) {
+ $_->{nice_bus} = $_->{is_pciexpress} ? "PCI Express" : "PCI";
+ }
+ }
@pci;
}
sub usb_probe__real() {
- -e "/proc/bus/usb/devices" or return;
+ -e "/sys/kernel/debug/usb/devices" or return;
add_addons($usbtable_addons, map {
- my %l;
- @l{qw(vendor id media_type driver description pci_bus pci_device)} = split "\t";
- $l{media_type} = join('|', grep { $_ ne '(null)' } split('\|', $l{media_type}));
- $l{$_} = hex $l{$_} foreach qw(vendor id);
- $l{sysfs_device} = "/sys/class/usb_device/usbdev$l{pci_bus}.$l{pci_device}/device";
- $l{bus} = 'USB';
- \%l;
+ my $l = $_;
+ $l->{media_type} = join('|', grep { $_ ne '(null)' } split('\|', $l->{media_type}));
+ $l->{sysfs_device} = "/sys/bus/usb/devices/$l->{pci_bus}-" . ($l->{usb_port} + 1);
+ $l->{bus} = 'USB';
+ $l;
} c::usb_probe());
}
+
+=item usb_probe()
+
+Cache the result of C<c::usb_probe()> and return the list of items in the USB devices.
+
+=cut
+
sub usb_probe() {
if ($::isStandalone && @usb) {
@usb;
@@ -808,6 +1062,12 @@ sub usb_probe() {
}
}
+=item firewire_probe()
+
+Return list of Firewire controllers
+
+=cut
+
sub firewire_probe() {
my $dev_dir = '/sys/bus/ieee1394/devices';
my @l = map {
@@ -818,6 +1078,7 @@ sub firewire_probe() {
specifier_id => hex($get->("$dir/specifier_id")),
specifier_version => hex($get->("$dir/version")),
bus => 'Firewire',
+ sysfs_device => $dir,
};
} grep { -f "$dev_dir/$_/specifier_id" } all($dev_dir);
@@ -846,6 +1107,12 @@ sub firewire_probe() {
@l;
}
+=item pcmcia_controller_probe()
+
+Return list of PCMCIA controllers
+
+=cut
+
sub pcmcia_controller_probe() {
my ($controller) = probe_category('bus/pcmcia');
if (!$controller && !$::testing && !$::noauto && arch() =~ /i.86/) {
@@ -855,6 +1122,12 @@ sub pcmcia_controller_probe() {
$controller;
}
+=item pcmcia_probe()
+
+Return list of PCMCIA devices (eg: Ethernet PCMCIA cards, ...)
+
+=cut
+
sub pcmcia_probe() {
require modalias;
require modules;
@@ -862,8 +1135,8 @@ sub pcmcia_probe() {
map {
my $dir = "$dev_dir/$_";
my $get = sub { chomp_(cat_("$dir/$_[0]")) };
- my $class_dev = first(glob_("$dir/tty*"));
- my $device = $class_dev && get_sysfs_field_from_link($dir, basename($class_dev));
+ my $class_dev = first(glob_("$dir/tty/tty*"));
+ my $device = $class_dev && basename($class_dev);
my $modalias = $get->('modalias');
my $driver = get_sysfs_field_from_link($dir, 'driver');
#- fallback on modalias result
@@ -877,28 +1150,70 @@ sub pcmcia_probe() {
if_($modalias, modalias => $modalias),
if_($device, device => $device),
bus => 'PCMCIA',
+ sysfs_device => $dir,
};
} all($dev_dir);
}
-my $dmi_probe;
+=item dmi_probe()
+
+Cache the result of c::dmi_probe() (aka C<dmidecode>) and return the list of items in the DMI table
+
+=cut
+
sub dmi_probe() {
- $dmi_probe ||= [ map {
- /(.*?)\t(.*)/ && { bus => 'DMI', driver => $1, description => $2 };
- } $> ? () : c::dmi_probe() ];
+ state $dmi_probe;
+ return if arch() !~ /86/;
+ $dmi_probe ||= $> ? [] : [ c::dmi_probe() ];
@$dmi_probe;
}
+=item acpi_probe()
+
+Return list of devices that are only discoverable via ACPI
+
+=cut
+
+my %acpi_device_info = (
+ "80860F28" => { vendor => 0x8086, id => 0x0f28, description => 'Intel Corporation|Bay Trail SST Audio DSP',
+ nice_media_type => 'Audio device', driver => 'snd_sof_acpi_intel_byt' },
+ "808622A8" => { vendor => 0x8086, id => 0x22a8, description => 'Intel Corporation|Cherry Trail SST Audio DSP',
+ nice_media_type => 'Audio device', driver => 'snd_sof_acpi_intel_byt' },
+ "INT3438" => { vendor => 0x8086, id => 0x3438, description => 'Intel Corporation|Broadwell SST Audio DSP',
+ nice_media_type => 'Audio device', driver => 'snd_sof_acpi_intel_bdw' }
+);
+
+sub acpi_probe() {
+ my $dev_dir = '/sys/bus/acpi/devices';
+ my @l;
+ foreach (glob("$dev_dir/*")) {
+ my $dev_name = basename($_);
+ my ($prefix, $suffix) = split(':', $dev_name);
+ my $e = $acpi_device_info{$prefix};
+ if ($e) {
+ add2hash($e, { bus => 'ACPI', sysfs_device => "$dev_dir/$dev_name" });
+ push @l, $e;
+ }
+ }
+ @l;
+}
+
+=item probeall()
+
+Returns a list of all PCI/USB/Firewire/PCMCIA/DMI/HID devices.
+It's usually called through a higher level filtering function.
+
+=cut
+
# pcmcia_probe provides field "device", used in network.pm
-# => probeall with $probe_type is unsafe
sub probeall() {
return if $::noauto;
- pci_probe(), usb_probe(), firewire_probe(), pcmcia_probe(), dmi_probe();
+ pci_probe(), usb_probe(), firewire_probe(), pcmcia_probe(), dmi_probe(), acpi_probe(), getInputDevices_and_usb();
}
-sub probeall__real() {
+sub probeall_update_cache() {
return if $::noauto;
- pci_probe__real(), usb_probe__real(), firewire_probe(), pcmcia_probe(), dmi_probe();
+ @pci = pci_probe__real(), @usb = usb_probe__real(), firewire_probe(), pcmcia_probe(), dmi_probe();
}
sub matching_desc__regexp {
my ($regexp) = @_;
@@ -961,7 +1276,7 @@ sub syslog() {
}
sub get_mac_model() {
- my $mac_model = cat_("/proc/device-tree/model") || die "Can not open /proc/device-tree/model";
+ my $mac_model = cat_("/proc/device-tree/model") || die "Cannot open /proc/device-tree/model";
log::l("Mac model: $mac_model");
$mac_model;
}
@@ -973,32 +1288,34 @@ sub get_mac_generation() {
sub hasSMP() {
return if $::testing;
(any { /NR_CPUS limit of 1 reached/ } syslog()) ||
+ (any { /^processor\s*:\s*(\d+)/ && $1 > 0 } cat_('/proc/cpuinfo')) ||
any { /\bProcessor #(\d+)\s+(\S*)/ && $1 > 0 && $2 ne 'invalid' } syslog();
}
-sub hasPCMCIA() { $::o->{pcmcia} } #- because /proc/pcmcia seems not to be present on 2.4 at least (or use /var/run/stab)
+sub hasPCMCIA() { $::o->{pcmcia} }
my (@dmis, $dmidecode_already_runned);
+=item dmidecode()
+
+Return list of DMI categories from DMI table
+
+=cut
# we return a list b/c several DMIs have the same name:
sub dmidecode() {
return @dmis if $dmidecode_already_runned;
return if $>;
- my ($ver, @l) = run_program::get_stdout('dmidecode');
-
- my $tab = "\t";
- if ($ver =~ /(\d+\.\d+)/ && $1 >= 2.7) {
- #- new dmidecode output is less indented
- $tab = '';
- #- drop header
- shift @l while @l && $l[0] ne "\n";
- }
+ my ($_ver, @l) = arch() =~ /86/ ? run_program::get_stdout('dmidecode') : ();
+
+ #- drop header
+ shift @l while @l && $l[0] ne "\n";
foreach (@l) {
- if (/^$tab\t(.*)/) {
+ next if /TRUNCATED/;
+ if (/^\t(.*)/) {
$dmis[-1]{string} .= "$1\n";
- $dmis[-1]{$1} = $2 if /^$tab\t(.*): (.*)$/;
- } elsif (my ($s) = /^$tab(.*)/) {
+ $dmis[-1]{$1} = $2 if /^\t(.*): (.*)$/;
+ } elsif (my ($s) = /^(.*)/) {
next if $s =~ /^$/ || $s =~ /\bDMI type \d+/;
$s =~ s/ Information$//;
push @dmis, { name => $s };
@@ -1007,21 +1324,45 @@ sub dmidecode() {
$dmidecode_already_runned = 1;
@dmis;
}
+
+=item dmi_detect_memory($category)
+
+Return only one category from DMI table
+
+=cut
+
sub dmidecode_category {
my ($cat) = @_;
my @l = grep { $_->{name} eq $cat } dmidecode();
wantarray() ? @l : $l[0] || {};
}
-#- size in MB
+=item dmi_detect_memory()
+
+Return RAM size in MB according to DMI table
+
+=cut
+
sub dmi_detect_memory() {
my @l1 = map { $_->{'Enabled Size'} =~ /(\d+) MB/ && $1 } dmidecode_category('Memory Module');
- my @l2 = map { $_->{'Form Factor'} =~ /^(SIMM|SIP|DIP|DIMM|RIMM|SODIMM|SRIMM)$/ &&
+ my @l2 = map { $_->{'Form Factor'} =~ /^(SIMM|SIP|DIP|DIMM|FB-DIMM|RIMM|SODIMM|SRIMM)$/ &&
($_->{Size} =~ /(\d+) MB/ && $1 || $_->{Size} =~ /(\d+) kB/ && $1 * 1024);
} dmidecode_category('Memory Device');
max(sum(@l1), sum(@l2));
}
+=back
+
+=head1 Test helpers
+
+=over
+
+=item computer_info()
+
+Analyse "Chassis" & "Bios" in dmidecode output and return a hash of flags/values (isLaptop, isServer, BIOS_Year)
+
+=cut
+
sub computer_info() {
my $Chassis = dmidecode_category('Chassis')->{Type} =~ /(\S+)/ && $1;
@@ -1031,59 +1372,265 @@ sub computer_info() {
+{
isLaptop => member($Chassis, 'Portable', 'Laptop', 'Notebook', 'Hand Held', 'Sub Notebook', 'Docking Station'),
+ isServer => member($Chassis, 'Pizza Box', 'Main Server Chassis', 'Rack Mount Chassis', 'Blade'),
if_($BIOS_Year, BIOS_Year => $BIOS_Year),
};
}
-#- try to detect a laptop, we assume pcmcia service is an indication of a laptop or
-#- the following regexp to match graphics card apparently only used for such systems.
+=item isLaptop()
+
+try to detect a laptop. We assume the following is an indication of a laptop:
+
+=over 4
+
+=item *
+
+pcmcia service
+
+=item *
+
+C<computer_info()> (really C<dmidecode>) telling us it's a laptop
+
+=item *
+
+ACPI lid button
+
+=item *
+
+a regexp to match graphics card apparently only used for such systems.
+
+=item *
+
+Mobility CPU
+
+=item *
+
+having Type as Laptop in some device
+
+=item *
+
+Intel ipw2100/2200/3945 Wireless
+
+=back
+
+=cut
+
sub isLaptop() {
- arch() =~ /ppc/ ?
- get_mac_model() =~ /Book/ :
computer_info()->{isLaptop}
+ || glob_("/sys/bus/acpi/devices/PNP0C0D:*") #- ACPI lid button
|| (matching_desc__regexp('C&T.*655[45]\d') || matching_desc__regexp('C&T.*68554') ||
matching_desc__regexp('Neomagic.*Magic(Media|Graph)') ||
matching_desc__regexp('ViRGE.MX') || matching_desc__regexp('S3.*Savage.*[IM]X') ||
matching_desc__regexp('Intel Corporation\|Mobile') ||
- matching_desc__regexp('ATI.*(Mobility|LT)'))
- || cat_('/proc/cpuinfo') =~ /\bmobile\b/i
+ matching_desc__regexp('\bATI\b.*(Mobility|\bLT\b)'))
+ || (any { $_->{'model name'} =~ /\b(mobile|C7-M)\b/i } getCPUs())
|| probe_unique_name("Type") eq 'laptop'
#- ipw2100/2200/3945 are Mini-PCI (Express) adapters
|| (any { member($_->{driver}, qw(ipw2100 ipw2200 ipw3945)) } pci_probe());
}
+=item isServer()
+
+Is it a server?
+
+=cut
+
+sub isServer() {
+ computer_info()->{isServer}
+ || (any { $_->{Type} =~ /ECC/ } dmidecode_category('Memory Module'))
+ || dmidecode_category('System Information')->{Manufacturer} =~ /Supermicro/i
+ || dmidecode_category('System Information')->{'Product Name'} =~ /NetServer|Proliant|PowerEdge|eServer|IBM System x|ThinkServer/i
+ || matching_desc__regexp('LSI Logic.*SCSI')
+ || matching_desc__regexp('MegaRAID')
+ || matching_desc__regexp('NetServer')
+ || (any { $_->{'model name'} =~ /(Xeon|Opteron)/i } getCPUs());
+}
+
sub BIGMEM() {
- arch() !~ /x86_64|ia64/ && $> == 0 && dmi_detect_memory() > 4 * 1024;
+ arch() !~ /x86_64/ && $> == 0 && dmi_detect_memory() > 4 * 1024;
+}
+
+sub is_arm_openrd_client() {
+ to_bool(cat_('/proc/cpuinfo') =~ /OpenRD Client/);
+}
+
+sub is_arm_versatile() {
+ to_bool(cat_('/proc/cpuinfo') =~ /ARM-Versatile/);
}
-sub is_i586() {
- my $cpuinfo = cat_('/proc/cpuinfo');
- $cpuinfo =~ /^cpu family\s*:\s*(\d+)/m && $1 < 6 ||
- !has_cpu_flag('cmov');
+sub is_arm_efikamix() {
+ to_bool(cat_('/proc/cpuinfo') =~ /Efika MX/);
}
sub is_xbox() {
any { $_->{vendor} == 0x10de && $_->{id} == 0x02a5 } pci_probe();
}
+=item virt_technology()
+
+Returns the virtualization technology (eg: kvm, oracle, ...)
+
+=cut
+
+sub virt_technology() {
+ state $tech;
+ $tech ||= chomp_(run_program::get_stdout('systemd-detect-virt'));
+}
+
+=item is_hyperv()
+
+Are we running under Hyper-V hypervisor?
+
+=cut
+
+sub is_hyperv() {
+ virt_technology() eq 'microsoft';
+}
+
+=item is_qemu()
+
+Are we running under Qemu hypervisor?
+
+=cut
+
+sub is_qemu() {
+ member(virt_technology(), qw(kvm qemu));
+}
+
+=item is_virtualbox()
+
+Are we running under VirtualBox hypervisor?
+
+=cut
+
sub is_virtualbox() {
- any { $_->{driver} eq 'vboxadd' } detect_devices::pci_probe();
+ virt_technology() eq 'oracle';
+}
+
+=item is_vmware()
+
+Are we running under VMware hypervisor?
+
+=cut
+
+sub is_vmware() {
+ virt_technology() eq 'vmware';
}
+=item is_netbook_nettop()
+
+Is it a NetBook?
+
+=cut
+
+sub is_netbook_nettop() {
+ my @cpus = getCPUs();
+ (any { $_->{'model name'} =~ /(\bIntel\(R\) Atom\(TM\)\B)/i } @cpus) ||
+ (any { $_->{'model name'} =~ /(\bIntel\(R\) Celeron\(R\) M processor\b|\bVIA C7-M Processor\b|\bGeode\(TM\)\B)/i && $_->{'cpu MHz'} < 1500 } @cpus);
+}
+
+=item has_low_resources()
+
+Is it a low resource machine?
+
+=cut
+
+sub has_low_resources() {
+ availableRamMB() < 100 || arch() =~ /i.86/ && ix86_cpu_frequency() < 350;
+}
+
+=item need_light_desktop()
+
+Does it need a light desktop (netbook or low resources machine)?
+
+=cut
+
+sub need_light_desktop() {
+ has_low_resources() || is_netbook_nettop();
+}
+
+=item has_cpu_flag($flag)
+
+Does CPU has this flag
+
+=cut
+
sub has_cpu_flag {
my ($flag) = @_;
cat_('/proc/cpuinfo') =~ /^flags.*\b$flag\b/m;
}
+=item sub matching_types()
+
+Returns a hash of flags (laptop, hyperv, touchpad, 64bit, wireless, ...)
+
+=cut
+
sub matching_types() {
+{
- laptop => isLaptop(),
'64bit' => to_bool(arch() =~ /64/),
+ hyperv => is_hyperv(),
+ laptop => isLaptop(),
+ numpad => hasNumpad(),
+ touchpad => hasTouchpad(),
+ qemu => is_qemu(),
+ virtualbox => is_virtualbox(),
+ vmware => is_vmware(),
wireless => to_bool(get_wireless_interface() || probe_category('network/wireless')),
};
}
+=item sub hasCPUMicrocode()
+
+Does CPU need microcode updates?
+
+=cut
+
+sub hasCPUMicrocode() {
+ state $hasCPUMicrocode;
+ if (!defined $hasCPUMicrocode) {
+ $hasCPUMicrocode = to_bool(find { 'microcode' } modules::loaded_modules());
+ }
+ return $hasCPUMicrocode;
+}
+
+=item sub hasCPUFreq()
+
+Does CPU support cpufreq?
+
+=cut
+
+sub hasCPUFreq() {
+ require cpufreq;
+ to_bool(cpufreq::get_modules())
+ || cat_('/proc/cpuinfo') =~ /AuthenticAMD/ && arch() =~ /x86_64/
+ || cat_('/proc/cpuinfo') =~ /model name.*Intel\(R\) Core\(TM\)2 CPU/;
+}
+
+=item sub hasWacom()
+
+is there a Wacom tablet?
+
+=cut
+
sub hasWacom() { find { $_->{vendor} == 0x056a || $_->{driver} =~ /wacom/ } usb_probe() }
+
+=item sub hasTouchpad()
+
+is there a touchpad?
+
+=cut
+
+sub hasTouchpad() { any { $_->{Synaptics} || $_->{ALPS} || $_->{Elantech} } getInputDevices() }
+
+=item sub hasNumpad()
+
+is there a numeric pad?
+
+=cut
+
+sub hasNumpad() { any { $_->{Numpad} } getInputDevices() }
+
sub usbWacom() { grep { $_->{vendor} eq '056a' } getInputDevices() }
sub usbKeyboards() { grep { $_->{media_type} =~ /\|Keyboard/ } usb_probe() }
sub usbStorage() { grep { $_->{media_type} =~ /Mass Storage\|/ } usb_probe() }
@@ -1093,6 +1640,7 @@ sub has_53c94() { find { /53c94/ } all_files_rec("/proc/device-tree") }
sub usbKeyboard2country_code {
my ($usb_kbd) = @_;
my ($F, $tmp);
+ # FIXME: usbfs is dead! we should poke somewhere in /sys/ !!!!
sysopen($F, sprintf("/proc/bus/usb/%03d/%03d", $usb_kbd->{pci_bus}, $usb_kbd->{pci_device}), 0) and
sysseek $F, 0x28, 0 and
sysread $F, $tmp, 1 and
@@ -1147,18 +1695,18 @@ sub hasMousePS2 {
my $t; sysread(tryOpen($_[0]) || return, $t, 256) != 1 || $t ne "\xFE";
}
-sub probeall_unavailable_modules {
+sub probeall_unavailable_modules() {
map {
my $driver = $_->{driver};
$driver !~ /:/ &&
- !member($driver, 'hub', 'unknown', 'md64_agp') &&
+ !member($driver, 'hub', 'unknown', 'amd64_agp') &&
!modules::module_is_available($driver) ?
$driver :
- ();
+ @{[]};
} probeall();
}
-sub probeall_dkms_modules {
+sub probeall_dkms_modules() {
my @unavailable_modules = probeall_unavailable_modules() or return;
require modalias;
my $dkms_modules = modalias::parse_file_modules($::prefix . "/usr/share/ldetect-lst/dkms-modules.alias");
@@ -1205,6 +1753,14 @@ sub suggest_mount_point {
$name;
}
+=back
+
+=head1 SEE ALSO
+
+See L<hardware_detection> for the overall view.
+
+=cut
+
1;
#- Local Variables:
diff --git a/perl-install/devices.pm b/perl-install/devices.pm
index 197127cd0..7ac79dcce 100644
--- a/perl-install/devices.pm
+++ b/perl-install/devices.pm
@@ -1,4 +1,4 @@
-package devices; # $Id$
+package devices;
use diagnostics;
use strict;
@@ -28,7 +28,7 @@ sub set_loop {
my $dev = find_free_loop();
if ($o_encrypt_key && $o_encryption) {
- eval { modules::load('cryptoloop', arch() =~ /i.86/ ? 'aes-i586' : 'aes') };
+ eval { modules::load('cryptoloop', list_modules::category2modules('various/crypto')) };
my $cmd = "losetup -p 0 -e $o_encryption $dev $file";
log::l("calling $cmd");
open(my $F, "|$cmd");
@@ -52,22 +52,9 @@ sub find_compressed_image {
undef;
}
-sub get_dynamic_major {
- my ($name) = @_;
- cat_('/proc/devices') =~ /^(\d+) \Q$name\E$/m && $1;
-}
-
sub init_device_mapper() {
require modules;
eval { modules::load('dm-mod') };
- make('urandom');
- my $control = '/dev/mapper/control';
- if (! -e $control) {
- my ($major) = get_dynamic_major('misc') or return;
- my ($minor) = cat_('/proc/misc') =~ /(\d+) device-mapper$/m or return;
- mkdir_p(dirname($control));
- syscall_('mknod', $control, c::S_IFCHR() | 0600, makedev($major, $minor)) or die "mknod $control failed: $!";
- }
}
sub entry {
@@ -77,25 +64,6 @@ sub entry {
if (/^0x([\da-f]{3,4})$/i) {
$type = c::S_IFBLK();
($major, $minor) = unmakedev(hex $1);
- } elsif (/^sd(.)(\d{0,2})/) {
- $type = c::S_IFBLK();
- $major = 8;
- $minor = 16 * (ord($1) - ord('a')) + ($2 || 0);
- } elsif (/^hd(.)(\d{0,2})/) {
- $type = c::S_IFBLK();
- ($major, $minor) =
- @{ ${{'a' => [3, 0], 'b' => [3, 64],
- 'c' => [22,0], 'd' => [22,64],
- 'e' => [33,0], 'f' => [33,64],
- 'g' => [34,0], 'h' => [34,64],
- 'i' => [56,0], 'j' => [56,64],
- 'k' => [57,0], 'l' => [57,64],
- 'm' => [88,0], 'n' => [88,64],
- 'o' => [89,0], 'p' => [89,64],
- 'q' => [90,0], 'r' => [90,64],
- 's' => [91,0], 't' => [91,64],
- }}{$1} or internal_error("unknown device $_") };
- $minor += $2 || 0;
} elsif (/^ram(.*)/) {
$type = c::S_IFBLK();
$major = 1;
@@ -110,62 +78,57 @@ sub entry {
$type = c::S_IFBLK();
$major = ($1 eq 'ida' ? 72 : 104) + $2;
$minor = 16 * $3 + ($4 || 0);
- } elsif (m,(ataraid)/d(\d+)(?:p(\d+))?,) {
- # ATA raid "ataraid/d0{p1}"
- $type = c::S_IFBLK();
- $major = 114;
- $minor = 16 * $1 + ($2 || 0);
} elsif (my ($prefix, $nb) = /(.*?)(\d+)$/) {
- my $f = ${{"fd" => sub { c::S_IFBLK(), 2, 0 },
- "hidbp-mse-" => sub { c::S_IFCHR(), 10, 32 },
- "lp" => sub { c::S_IFCHR(), 6, 0 },
- "usb/lp" => sub { c::S_IFCHR(), 180, 0 },
- "input/event" => sub { c::S_IFCHR(), 13, 64 },
- "loop" => sub { c::S_IFBLK(), 7, 0 },
+ my $f = ${{
"md" => sub { c::S_IFBLK(), 9, 0 },
- "nst" => sub { c::S_IFCHR(), 9, 128 },
- "sr" => sub { c::S_IFBLK(), 11, 0 },
- "tty" => sub { c::S_IFCHR(), 4, 0 },
- "ttyS" => sub { c::S_IFCHR(), 4, 64 },
"ubd/" => sub { c::S_IFBLK(), 98, 0 },
- "dm-" => sub { c::S_IFBLK(), get_dynamic_major('device-mapper'), 0 },
- }}{$prefix} or internal_error("unknown device $prefix $nb");
- ($type, $major, $minor) = $f->();
- $minor += $nb;
+ }}{$prefix};
+ if ($f) {
+ ($type, $major, $minor) = $f->();
+ $minor += $nb;
+ }
}
unless ($type) {
($type, $major, $minor) =
- @{ ${{"aztcd" => [ c::S_IFBLK(), 29, 0 ],
- "bpcd" => [ c::S_IFBLK(), 41, 0 ],
- "cdu31a" => [ c::S_IFBLK(), 15, 0 ],
- "cdu535" => [ c::S_IFBLK(), 24, 0 ],
- "cm206cd" => [ c::S_IFBLK(), 32, 0 ],
- "gscd" => [ c::S_IFBLK(), 16, 0 ],
- "mcd" => [ c::S_IFBLK(), 23, 0 ],
- "mcdx" => [ c::S_IFBLK(), 20, 0 ],
- "mem" => [ c::S_IFCHR(), 1, 1 ],
- "optcd" => [ c::S_IFBLK(), 17, 0 ],
- "kbd" => [ c::S_IFCHR(), 11, 0 ],
- "psaux" => [ c::S_IFCHR(), 10, 1 ],
+ @{ ${{
"atibm" => [ c::S_IFCHR(), 10, 3 ],
- "random" => [ c::S_IFCHR(), 1, 8 ],
- "urandom" => [ c::S_IFCHR(), 1, 9 ],
- "sbpcd" => [ c::S_IFBLK(), 25, 0 ],
- "sjcd" => [ c::S_IFBLK(), 18, 0 ],
- "tty" => [ c::S_IFCHR(), 5, 0 ],
- "input/mice"
- => [ c::S_IFCHR(), 13, 63 ],
- "adbmouse" => [ c::S_IFCHR(), 10, 10 ], #- PPC
- "vcsa" => [ c::S_IFCHR(), 7, 128 ],
- "zero" => [ c::S_IFCHR(), 1, 5 ],
- "null" => [ c::S_IFCHR(), 1, 3 ],
-
- "initrd" => [ c::S_IFBLK(), 1, 250 ],
- "console" => [ c::S_IFCHR(), 5, 1 ],
- "systty" => [ c::S_IFCHR(), 4, 0 ],
- "lvm" => [ c::S_IFBLK(), 109, 0 ],
- }}{$_} or internal_error("unknown device $_") };
+ }}{$_} || [] };
+ }
+ # Lookup non listed devices in /sys
+ unless ($type) {
+ my $sysdev;
+ if (m!input/(.*)! && -e "/sys/class/input/$1/dev") {
+ $sysdev = "/sys/class/input/$1/dev";
+ $type = c::S_IFCHR();
+ } elsif (-e "/sys/block/$_/dev") {
+ $sysdev = "/sys/block/$_/dev";
+ $type = c::S_IFBLK();
+ } elsif (/^(.+)(\d+)$/ && -e "/sys/block/$1/$_/dev") {
+ $sysdev = "/sys/block/$1/$_/dev";
+ $type = c::S_IFBLK();
+ }
+ ($major, $minor) = split(':', chomp_(cat_($sysdev)));
+ }
+ # Lookup partitions in /proc/partitions in case /sys was not available
+ unless ($type) {
+ if (-e "/proc/partitions") {
+ if (cat_("/proc/partitions") =~ /^\s*(\d+)\s+(\d+)\s+\d+\s+$_$/m) {
+ ($major, $minor) = ($1, $2);
+ $type = c::S_IFBLK();
+ }
+ }
+ }
+ # Try to access directly the device
+ # Now device mapper devices are links and do not appear in /proc or /sys
+ unless ($type) {
+ if (-e "/dev/$_") {
+ my (undef, undef, $mode, undef, undef, undef, $rdev, undef) = stat("/dev/$_");
+ ($major, $minor) = unmakedev($rdev);
+ $type = $mode & c::S_IFMT();
+ }
}
+
+ $type or internal_error("unknown device $_");
($type, $major, $minor);
}
@@ -185,14 +148,16 @@ sub make($) {
#- make a directory for this inode if needed.
mkdir_p(dirname($file));
- syscall_('mknod', $file, $type | 0600, makedev($major, $minor)) or die "mknod failed (dev $_): $!";
+ syscall_('mknod', $file, $type | 0600, makedev($major, $minor)) or do {
+ die "mknod failed (dev $_): $!" if ! -e $file; # we may have raced with udev
+ };
$file;
}
sub simple_partition_scan {
my ($part) = @_;
- $part->{device} =~ /([hs]d[a-z])(\d+)$/;
+ $part->{device} =~ /((?:[hsv]|xv)d[a-z]|mmcblk|(nvme\d+n)\d+p)(\d+)$/;
}
sub part_number {
my ($part) = @_;
@@ -203,15 +168,25 @@ sub part_prefix {
(simple_partition_scan($part))[0];
}
+sub prefix_for_dev {
+ my ($dev) = @_;
+ $dev . ($dev =~ /\d$/ ? 'p' : '');
+}
+
+sub should_prefer_UUID {
+ my ($dev) = @_;
+ $dev =~ /^((?:[hsv]|xv)d|mmcblk|nvme)/;
+}
+
sub symlink_now_and_register {
my ($if_struct, $of) = @_;
my $if = $if_struct->{device};
- #- add a specific udev script, we can't do it with a udev rule,
+ #- add a static udev device node, we can't do it with a udev rule,
#- eg, ttySL0 is a symlink created by a daemon
- output_with_perm("$::prefix/etc/udev/devices.d/$of.nodes", 0644, "L $of $if\n");
+ symlinkf($if, "$::prefix/usr/lib/udev/devices/$of");
- symlinkf($if, "$::prefix/dev/$of");
+ symlinkf($if, "/dev/$of");
}
diff --git a/perl-install/diskdrake/dav.pm b/perl-install/diskdrake/dav.pm
index 4950b2bb0..9036596b3 100644
--- a/perl-install/diskdrake/dav.pm
+++ b/perl-install/diskdrake/dav.pm
@@ -1,4 +1,4 @@
-package diskdrake::dav; # $Id$
+package diskdrake::dav;
use diagnostics;
use strict;
@@ -33,10 +33,11 @@ points, select \"New\".")) },
sub create {
my ($in, $all_hds) = @_;
- my $dav = { fs_type => 'davfs2' };
+ my $dav = { fs_type => 'davfs2', mntpoint => 'none' };
ask_server($in, $dav, $all_hds) or return;
push @{$all_hds->{davs}}, $dav;
config($in, $dav, $all_hds);
+ return;
}
sub config {
@@ -45,11 +46,12 @@ sub config {
my $dav = { %$dav_ }; #- working on a local copy so that "Cancel" works
my $action;
- while ($action ne 'Done') {
+ my $exit;
+ while (!$exit && $action ne 'Done') {
my %actions = my @actions = actions($dav);
$action = $in->ask_from_list_('', format_dav_info($dav),
[ map { $_->[0] } group_by2 @actions ], 'Done') or return;
- $actions{$action}->($in, $dav, $all_hds);
+ $exit = $actions{$action}->($in, $dav, $all_hds);
}
%$dav_ = %$dav; #- applying
}
@@ -63,6 +65,7 @@ sub actions {
N_("Server") => \&ask_server,
N_("Mount point") => \&mount_point,
N_("Options") => \&options,
+ N_("Remove") => \&remove,
N_("Done") => sub {},
);
}
@@ -95,11 +98,23 @@ sub ask_server {
sub options {
my ($in, $dav, $all_hds) = @_;
diskdrake::interactive::Options($in, {}, $dav, $all_hds);
+ return;
}
+
+sub remove {
+ my ($in, $dav, $all_hds) = @_;
+ if ($in->ask_yesorno(N("Warning"), N("Are you sure you want to delete this mount point?"))) {
+ @{$all_hds->{davs}} = grep { $_->{mntpoint} ne $dav->{mntpoint} } @{$all_hds->{davs}};
+ return 1;
+ }
+ return;
+}
+
sub mount_point {
my ($in, $dav, $all_hds) = @_;
my $proposition = $dav->{device} =~ /(\w+)/ ? "/mnt/$1" : "/mnt/dav";
diskdrake::interactive::Mount_point_raw_hd($in, $dav, $all_hds, $proposition);
+ return;
}
sub format_dav_info {
diff --git a/perl-install/diskdrake/diskdrake.html b/perl-install/diskdrake/diskdrake.html
deleted file mode 100644
index cba732084..000000000
--- a/perl-install/diskdrake/diskdrake.html
+++ /dev/null
@@ -1,139 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
- <head>
- <title>DiskDrake</title>
- </head>
- <body bgcolor="#ffffff">
-
-<center>
-<table width=80% border=0 cellpadding=10 cellspacing=10>
-<tr>
-<td bgcolor=#ffffff>
-
- <p>
- <img src="images/diskdrake1-def.jpg" alt="diskdrake logo" width=400 height=100>
- <p>
-
- <H2>I- What's it?</H2>
-
- The purpose of the DiskDrake project is to make easier the hard disk
- partitionning. It is graphical, simple and powerful. The license is
- the GPL (General Public License).
- <BR>
- Different skill levels will be available (newbie, advanced user, expert).
- <BR>
- It's written entirely in Perl and Perl/Gtk. It uses resize_fat which is
- a perl rewrite of the work of Andrew Clausen (libresize).
- <P>
- DiskDrake is a project from Mandrakesoft, the company behind the popular
- <a href="http://www.linux-mandrake.com">Linux-Mandrake</a>
- operating-system.
- <P>
- A <A href="http://www.eatel.net/~john/diskdrake/faq.html">FAQ</A> is in construction.
-
- <H2>II - What's available now</H2>
-
- DiskDrake should be usable now...
-
- it can:
- <UL>
- <LI> create partitions
- <LI> delete partitions
- <LI> change type of partition
- <LI> format partitions
- <LI> assign a mount point (<IMG SRC="/images/updated.gif" ALT="updated"><SMALL>(21/07/99)</SMALL> propose a list
- of classic mount points and verify the mount point is valid)
- <LI> mount partitions
- <LI> resize fat partitions
- <LI> resize partitions (when not caring loosing its data)
- <LI> clear partition table
- <LI> auto allocation (usefull for install)
- <LI> write fstab
- </UL>
-
-with nice contextual menu (shortcuts available, but dangerous as all actions are
-available, whereas with the contextual menu these actions are hidden. This will
-change)
-
- <P><IMG SRC="/images/updated.gif" ALT="updated"><SMALL>(25/07/99)</SMALL>
- A new Expert button appear now. It toggles between
- expert and normal mode. Some changes in information displayed:
- <UL>
- <LI> when you click (or focus) the drive tab (eg: hda), you get
- information about your drive: size, geometry
- (cylinders/sectors/heads number), type (eg: IBM DDRS-39130D), and bus/id.
- In normal mode you have only the size.
- <LI> the windows drive letter (eg: C: D: ...)
- <LI> the `start sector' information from normal mode, it still appears in
- expert mode
- <LI> the start&end cylinder of each partition is now displayed in expert
- mode
- <LI> the type is displayed numerically in expert mode
- </UL>
-
- <P><IMG SRC="/images/updated.gif" ALT="updated"><SMALL>(25/07/99)</SMALL>
- The mount point in the `Create' window and `Change type' window is now a
- combo box. It lets you choose between classical mount points (/ /usr /var
- ...) but with already allocated mount points removed.
-
- <H2>III - Actual developpment</H2>
-
- We need people!!!
-
- <UL>
- <LI><B>Tests</B> and remove bugs (no known yet :)
- <LI>integrate ext2resize (which has been release in version 1.0.0 <IMG
- SRC="/images/updated.gif" ALT="updated"><SMALL>(26/07/99)</SMALL>)
- <LI>add possibility to move partition without loosing data (by copying all
- data) <IMG SRC="/images/updated.gif" ALT="updated">
- <LI>Improve the look
- <LI>Add a text-only version
- <LI>Help text, tutorial...
- <LI>Internationalization
- <LI>Add some features...
- <LI>Packaging (rpm, deb, slp...)
- </UL>
-
- <H2>IV- ScreenShot</H2>
-
- Warning: features was the main focus, so don't be too hard :)
-
- <P>
- <CENTER><IMG SRC="1.gif"></IMG></CENTER>
- <CENTER>DiskDrake main interface</CENTER>
-
- <BR>
- <CENTER><IMG SRC="3.gif"></IMG></CENTER>
- <CENTER>create dialog box</CENTER>
-
- <H2>V - Contacts</H2>
-
- A Mailing List has been created to allow developpers to discuss about DiskDrake.<BR>
-
- <P>
- Send a mail to: <A HREF="mailto:sympa@linux-mandrake.com">sympa@linux-mandrake.com</A>
-
- <BR>Put in the subject: subscribe diskdrake
- <BR>When you're subscribed, send your messages to: <A HREF="mailto:diskdrake@linux-mandrake.com">diskdrake@linux-mandrake.com</A>
-
- <P>Otherwise you can contact directly the <A HREF="mailto:pixel@linux-mandrake.com">project leader</A>.
-
- <H2>VI - Download</H2>
-
- Warning: You must have <a href="http://www.perl.com/CPAN/modules/by-module/Gtk/Gtk-Perl-0.5121.tar.gz">Gtk-Perl</a>.
- You can get the rpm from the <a href="http://linux-mandrake.com/cooker/">Cooker</a> distribution.
-
- <P>You also need perl version 5.00503 or better
-
- <P> Here you can find the plain tgz or a rpm:
- <a href="ftp://ftp.phys.ttu.edu/pub/mandrake-devel/contrib/others/diskdrake/">diskdrake</a> (Other mirrors in <a href="http://linux-mandrake.com/cooker/">Cooker</a>)
-
-</td>
-</tr>
-</table>
-<p>
-<a href="/en/fpowerpack.php3"><img src="/images/mandrake6.0-loop.gif" width=468 height=60 alt="Mandrake 6.0 PowerPack"></a>
-</center>
- </body>
- <address><a href="mailto:pixel@linux-mandrake.com"></a></address>
-</html>
diff --git a/perl-install/diskdrake/hd_gtk.pm b/perl-install/diskdrake/hd_gtk.pm
index 38f9f01c6..ed3955ea7 100644
--- a/perl-install/diskdrake/hd_gtk.pm
+++ b/perl-install/diskdrake/hd_gtk.pm
@@ -1,11 +1,11 @@
-package diskdrake::hd_gtk; # $Id$
+package diskdrake::hd_gtk;
use diagnostics;
use strict;
use common;
-use mygtk2 qw(gtknew);
-use ugtk2 qw(:helpers :wrappers :create);
+use mygtk3 qw(gtknew);
+use ugtk3 qw(:helpers :wrappers :create);
use partition_table;
use fs::type;
use detect_devices;
@@ -14,22 +14,21 @@ use run_program;
use devices;
use log;
use fsedit;
+use feature qw(state);
-my ($width, $height, $minwidth) = (400, 50, 5);
+my ($width, $height, $minwidth) = (400, 50, 16);
my ($all_hds, $in, $do_force_reload, $current_kind, $current_entry, $update_all);
my ($w, @notebook, $done_button);
-=begin
-
=head1 SYNOPSYS
-struct {
+ struct {
string name # which is displayed in tab of the notebook
bool no_auto # wether the kind can disappear after creation
- string type # one of { 'hd', 'raid', 'lvm', 'loopback', 'removable', 'nfs', 'smb' }
- hd | hd_lvm | part_raid[] | part_loopback[] | raw_hd[] val
-
+ string type # one of { 'hd', 'raid', 'lvm', 'loopback', 'removable', 'nfs', 'smb', 'dmcrypt' }
+ hd | hd_lvm | part_raid[] | part_dmcrypt[] | part_loopback[] | raw_hd[] val
+
#
widget main_box
widget display_box
@@ -37,12 +36,21 @@ struct {
widget info_box
} current_kind
-part current_entry
+ part current_entry
-notebook current_kind[]
+ notebook current_kind[]
=cut
+sub load_theme() {
+ my $css = "/usr/share/libDrakX/diskdrake.css";
+ -r $css or $css = dirname(__FILE__) . "/../diskdrake.css";
+ -r $css or $css = dirname(__FILE__) . "/../share/diskdrake.css";
+ my $pl = Gtk3::CssProvider->new;
+ $pl->load_from_path($css);
+ Gtk3::StyleContext::add_provider_for_screen(Gtk3::Gdk::Screen::get_default(), $pl, Gtk3::STYLE_PROVIDER_PRIORITY_APPLICATION);
+}
+
sub main {
($in, $all_hds, $do_force_reload) = @_;
@@ -50,27 +58,35 @@ sub main {
local $in->{grab} = 1;
- $w = ugtk2->new(N("Partitioning"), icon => 'banner-part');
- $::main_window = $w->{real_window} if !$::isEmbedded && !$::isInstall;
- my $rc = "/usr/share/libDrakX/diskdrake.rc";
- -r $rc or $rc = dirname(__FILE__) . "/../diskdrake.rc";
- -r $rc or $rc = dirname(__FILE__) . "/../share/diskdrake.rc";
- Gtk2::Rc->parse($rc);
+ $w = ugtk3->new(N("Partitioning"));
+ mygtk3::register_main_window($w->{real_window}) if !$::isEmbedded && !$::isInstall;
+
+ load_theme();
+ $w->{window}->signal_connect('style-updated' => \&load_theme);
# TODO
# is_empty_array_ref($all_hds->{raids}) or raid::stopAll;
# updateLoopback();
gtkadd($w->{window},
- gtkpack_(Gtk2::VBox->new(0,7),
- 0, filesystems_button_box(),
- 1, (my $notebook_widget = Gtk2::Notebook->new),
- 0, (my $per_kind_action_box = Gtk2::HBox->new(0,0)),
- 0, (my $general_action_box = Gtk2::HBox->new(0,0)),
+ gtkpack_(Gtk3::VBox->new(0,7),
+ 0, gtknew(($::isInstall ? ('Title1', 'label') : ('Label_Left', 'text'))
+ => N("Click on a partition, choose a filesystem type then choose an action"),
+ # workaround infamous 6 years old gnome bug #101968:
+ width => mygtk3::get_label_width()
+ ),
+ 1, (my $notebook_widget = Gtk3::Notebook->new),
+ 0, (my $per_kind_action_box = gtknew('HButtonBox', layout => 'edge')),
+ 0, Gtk3::HSeparator->new,
+ 0, (my $general_action_box = gtknew('HBox', spacing => 5)),
),
);
- my $lock;
+ my ($lock, $initializing) = (undef, 1);
$update_all = sub {
+ my ($o_refresh_gui) = @_;
+ state $not_first;
+ return if $initializing && $not_first;
+ $not_first = 1;
$lock and return;
$lock = 1;
partition_table::assign_device_numbers($_) foreach fs::get::hds($all_hds);
@@ -80,6 +96,11 @@ sub main {
current_kind_changed($in, $current_kind);
current_entry_changed($current_kind, $current_entry);
$lock = 0;
+ if ($o_refresh_gui) {
+ my $new_page = $o_refresh_gui > 1 ? $notebook_widget->get_current_page : 0;
+ $notebook_widget->set_current_page(-1);
+ $notebook_widget->set_current_page($new_page);
+ }
};
create_automatic_notebooks($notebook_widget);
@@ -88,14 +109,32 @@ sub main {
$current_entry = '';
$update_all->();
});
+ # ensure partitions bar is properly sized on first display:
+ $notebook_widget->signal_connect(realize => $update_all);
$w->sync;
+ # add a bogus tab so that gtk+ displayed everything when there's only one disk:
+ $notebook_widget->prepend_page(Gtk3::Label->new, Gtk3::Label->new);
+ $notebook_widget->set_current_page(0);
+ # there's always at least one child (at least a button for create a new part on empty discs):
+ my @children = $current_kind->{display_box} ? $current_kind->{display_box}->get_children : ();
+ # workaround for $notebook_widget being realized too early:
+ if (!@children ||!$done_button) {
+ $notebook_widget->set_current_page(-1);
+ $notebook_widget->set_current_page(0);
+ undef $initializing;
+ $update_all->(2);
+ }
+ undef $initializing;
+ # remove bogus tab we added just to be sure gtk+ displayed everything:
+ $notebook_widget->remove_page(0);
+ # restore position when there's several disks:
+ $notebook_widget->set_current_page(0);
$done_button->grab_focus;
- $in->ask_from_list_(N("Read carefully!"), N("Please make a backup of your data first"),
- [ N_("Exit"), N_("Continue") ], N_("Continue")) eq N_("Continue") or return
- if $::isStandalone;
- $in->ask_warn('',
-N("If you plan to use aboot, be careful to leave a free space (2048 sectors is enough)
-at the beginning of the disk")) if arch() eq 'alpha' && !$::isEmbedded;
+ if (!$::testing) {
+ $in->ask_from_list_(N("Read carefully"), N("Please make a backup of your data first"),
+ [ N_("Exit"), N_("Continue") ], N_("Continue")) eq N_("Continue") or return
+ if $::isStandalone;
+ }
$w->main;
}
@@ -108,20 +147,33 @@ sub try {
sub try_ {
my ($name, $f, @args) = @_;
- diskdrake::interactive::undo_prepare($all_hds) if $name ne 'Undo';
-
+ my $dm_active_before = ($current_entry && $current_entry->{dm_active} && $current_entry->{dm_name});
my $v = eval { $f->($in, @args, $all_hds) };
if (my $err = $@) {
+ warn $err, "\n", backtrace() if $in->isa('interactive::gtk');
$in->ask_warn(N("Error"), formatError($err));
}
+ my $refresh = 0;
if ($v eq 'force_reload') {
$all_hds = $do_force_reload->();
+ $refresh = 1;
}
- $current_entry = '' if !diskdrake::interactive::is_part_existing($current_entry, $all_hds);
- $update_all->();
+ if (!diskdrake::interactive::is_part_existing($current_entry, $all_hds)) {
+ $current_entry = '';
+ } elsif (!$dm_active_before && $current_entry->{dm_active} && $current_entry->{dm_name}) {
+ if (my $mapped_part = fs::get::device2part("mapper/$current_entry->{dm_name}", $all_hds->{dmcrypts})) {
+ $current_entry = $mapped_part;
+ $refresh = 2;
+ }
+ }
+ $update_all->($refresh);
+
+ Gtk3->main_quit if $v && member($name, 'Done');
+}
- Gtk2->main_quit if $v && member($name, 'Done');
+sub get_action_box_size() {
+ $::isStandalone ? 200 : 150, $::isEmbedded ? 150 : 180;
}
################################################################################
@@ -131,24 +183,26 @@ sub add_kind2notebook {
my ($notebook_widget, $kind) = @_;
die if $kind->{main_box};
- $kind->{display_box} = gtkset_size_request(Gtk2::HBox->new(0,0), $width, $height);
- $kind->{action_box} = gtkset_size_request(Gtk2::VBox->new(0,0), $::isStandalone ? 165 : 150, $::isEmbedded ? 150 : 180);
- $kind->{info_box} = Gtk2::VBox->new(0,0);
- $kind->{main_box} =
- gtkpack_(Gtk2::VBox->new(0,7),
- 0, $kind->{display_box},
- 1, gtkpack_(Gtk2::HBox->new(0,7),
- 0, $kind->{action_box},
- 1, $kind->{info_box}));
- ugtk2::add2notebook($notebook_widget, $kind->{name}, $kind->{main_box});
+ $kind->{display_box} = gtkset_size_request(Gtk3::HBox->new(0,0), $width, $height);
+ $kind->{action_box} = gtkset_size_request(Gtk3::VBox->new, get_action_box_size());
+ $kind->{info_box} = Gtk3::VBox->new(0,0);
+ my $box =
+ gtkpack_(Gtk3::VBox->new(0,7),
+ 0, create_scrolled_window($kind->{display_box}, [ 'automatic', 'never' ]),
+ 0, filesystems_button_box(),
+ 1, $kind->{info_box});
+ $kind->{main_box} = gtknew('HBox', spacing => 5, children => [
+ 1, $box,
+ 0, $kind->{action_box},
+ ]);
+ ugtk3::add2notebook($notebook_widget, $kind->{name}, $kind->{main_box});
push @notebook, $kind;
$kind;
}
sub interactive_help() {
if ($::isInstall) {
- my $func = $in->interactive_help_sub_display_id('partition_with_diskdrake');
- $func and $func->();
+ $in->display_help({ interactive_help_id => 'diskdrake' });
} else {
require run_program;
run_program::raw({ detach => 1 }, 'drakhelp', '--id', 'diskdrake');
@@ -159,28 +213,34 @@ sub general_action_box {
my ($box) = @_;
$_->destroy foreach $box->get_children;
- gtkadd($box, gtksignal_connect(Gtk2::Button->new(N("Help")), clicked => \&interactive_help));
+ my $box_start = gtknew('HButtonBox', layout => 'start', children_tight => [
+ gtknew('Install_Button', text => N("Help"), clicked => \&interactive_help)
+ ]);
my @actions = (
diskdrake::interactive::general_possible_actions($in, $all_hds),
N_("Done"));
+ my $box_end = gtknew('HButtonBox', layout => 'end', spacing => 5);
foreach my $s (@actions) {
- my $button = Gtk2::Button->new(translate($s));
+ my $button = Gtk3::Button->new(translate($s));
$done_button = $button if $s eq 'Done';
- gtkadd($box, gtksignal_connect($button, clicked => sub { try($s) }));
+ gtkadd($box_end, gtksignal_connect($button, clicked => sub { try($s) }));
}
+ gtkadd($box, $box_start, $box_end);
}
sub per_kind_action_box {
my ($box, $kind) = @_;
$_->destroy foreach $box->get_children;
- $kind->{type} =~ /hd|lvm/ or return;
-
- foreach my $s (diskdrake::interactive::hd_possible_actions($in, kind2hd($kind), $all_hds)) {
+ my @actions = (if_($kind->{type} =~ /hd|lvm/, diskdrake::interactive::hd_possible_actions_base($in)),
+ diskdrake::interactive::hd_possible_actions_extra($in));
+ foreach my $s (@actions) {
gtkadd($box,
- gtksignal_connect(Gtk2::Button->new(translate($s)),
+ gtksignal_connect(Gtk3::Button->new(translate($s)),
clicked => sub { try($s, kind2hd($kind)) }));
}
+ # make sure a big translations window to resize (as by default all buttons have the same size):
+ $box->set_child_non_homogeneous($_, Glib::TRUE), "\n" foreach $box->get_children;
}
sub per_entry_action_box {
my ($box, $kind, $entry) = @_;
@@ -189,19 +249,18 @@ sub per_entry_action_box {
if ($entry) {
my @buttons = map {
my $s = $_;
- my $w = Gtk2::Button->new(translate($s));
+ my $w = Gtk3::Button->new(translate($s));
$w->signal_connect(clicked => sub { try($s, kind2hd($kind), $entry) });
$w;
} diskdrake::interactive::part_possible_actions($in, kind2hd($kind), $entry, $all_hds);
- gtkadd($box, gtkadd(Gtk2::Frame->new(N("Choose action")),
- create_scrolled_window(gtkpack__(Gtk2::VBox->new(0,0), @buttons)))) if @buttons;
+ gtkadd($box, create_scrolled_window(gtkpack__(Gtk3::VBox->new, @buttons), undef, 'none')) if @buttons;
} else {
my $txt = !$::isStandalone && fsedit::is_one_big_fat_or_NT($all_hds->{hds}) ?
N("You have one big Microsoft Windows partition.
I suggest you first resize that partition
(click on it, then click on \"Resize\")") : N("Please click on a partition");
- gtkpack($box, gtktext_insert(Gtk2::TextView->new, $txt));
+ gtkpack($box, gtktext_insert(Gtk3::TextView->new, $txt));
}
}
@@ -216,20 +275,16 @@ sub per_entry_info_box {
}
gtkpack($box, gtkadd(gtkcreate_frame(N("Details")),
gtknew('HBox', border_width => 5, children_loose => [
- gtkset_alignment(gtkset_justify(Gtk2::Label->new($info), 'left'), 0, 0) ])));
+ gtkset_alignment(gtkset_justify(gtknew('Label', selectable => 1, text => $info), 'left'), 0, 0) ])));
}
sub current_kind_changed {
my ($_in, $kind) = @_;
+ return if !$kind->{display_box};
$_->destroy foreach $kind->{display_box}->get_children;
-
- my $v = $kind->{val};
- my @parts =
- $kind->{type} eq 'raid' ? grep { $_ } @$v :
- $kind->{type} eq 'loopback' ? @$v : fs::get::hds_fstab_and_holes($v);
- my $totalsectors =
- $kind->{type} =~ /raid|loopback/ ? sum(map { $_->{size} } @parts) : $v->{totalsectors};
+ my @parts = kind2parts($kind);
+ my $totalsectors = kind2sectors($kind, @parts);
create_buttons4partitions($kind, $totalsectors, @parts);
}
@@ -258,23 +313,37 @@ sub create_automatic_notebooks {
$may_add->(raid2kind()) if @{$all_hds->{raids}};
$may_add->(loopback2kind()) if @{$all_hds->{loopbacks}};
- @notebook = grep_index {
- my $b = $_->{marked} or $notebook_widget->remove_page($::i);
- $b;
+ my $i = 0;
+ @notebook = grep {
+ if ($_->{marked}) {
+ $i++;
+ 1;
+ } else {
+ $notebook_widget->remove_page($i);
+ 0;
+ }
} @notebook;
- @notebook or die N("No hard drives found");
+ @notebook or $in->ask_warn(N("Error"), N("No hard disk drives found")), $in->exit(1);
}
################################################################################
# parts: helpers
################################################################################
sub create_buttons4partitions {
- my ($kind, $totalsectors, @parts) = @_;
+ my ($kind, $totalsectors, @all_parts) = @_;
- $width = max($width, 0.9 * second($w->{window}->window->get_size)) if $w->{window}->window;
+ if ($w->{window}->get_window) {
+ my $windowwidth = $w->{window}->get_allocated_width;
+ $windowwidth = $::real_windowwidth if $windowwidth <= 1;
+ $width = $windowwidth - first(get_action_box_size()) - 25;
+ }
+
+ my @parts = grep { $_->{size} > MB(2) || !isEmpty($_) } @all_parts;
my $ratio = $totalsectors ? ($width - @parts * $minwidth) / $totalsectors : 1;
- while (1) {
+ my $i = 1;
+ while ($i < 30) {
+ $i++;
my $totalwidth = sum(map { $_->{size} * $ratio + $minwidth } @parts);
$totalwidth <= $width and last;
$ratio /= $totalwidth / $width * 1.1;
@@ -288,9 +357,15 @@ sub create_buttons4partitions {
};
foreach my $entry (@parts) {
- my $info = $entry->{mntpoint};
+ if (isRawLUKS($entry) && $entry->{dm_active}) {
+ my $p = find { $entry->{dm_name} eq $_->{dmcrypt_name} } @{$all_hds->{dmcrypts}};
+ $entry = $p if $p;
+ }
+ my $info = $entry->{mntpoint} || $entry->{device_LABEL} || '';
$info .= "\n" . ($entry->{size} ? formatXiB($entry->{size}, 512) : N("Unknown")) if $info;
- my $w = Gtk2::ToggleButton->new_with_label($info) or internal_error('new_with_label');
+ my $w = ($info ? Gtk3::ToggleButton->new_with_label($info) : Gtk3::ToggleButton->new) or internal_error('new_with_label');
+ $info and $w->get_child->set_ellipsize('end');
+ $w->set_tooltip_text($info);
$w->signal_connect(clicked => sub {
$current_button != $w or return;
current_entry_changed($kind, $entry);
@@ -314,12 +389,15 @@ sub create_buttons4partitions {
last;
}
});
- my @colorized_fs_types = qw(ext3 xfs swap vfat ntfs ntfs-3g);
+ if (isLUKS($entry) || isRawLUKS($entry)) {
+ $w->set_image(gtknew("Image", file => "security-strong"));
+ }
+ my @colorized_fs_types = qw(ext3 ext4 xfs swap vfat ntfs ntfs-3g exfat);
$w->set_name("PART_" . (isEmpty($entry) ? 'empty' :
$entry->{fs_type} && member($entry->{fs_type}, @colorized_fs_types) ? $entry->{fs_type} :
'other'));
$w->set_size_request($entry->{size} * $ratio + $minwidth, 0);
- gtkpack__($kind->{display_box}, $w);
+ gtkpack($kind->{display_box}, $w);
if ($current_entry && fsedit::are_same_partitions($current_entry, $entry)) {
$set_current_button->($w);
$w->grab_focus;
@@ -332,7 +410,7 @@ sub create_buttons4partitions {
# disks: helpers
################################################################################
sub current_hd() {
- $current_kind->{type} eq 'hd' or die 'current_hd called but $current_kind is not an hd';
+ $current_kind->{type} =~ /hd|lvm/ or die 'current_hd called but $current_kind is not an hd (' . $current_kind->{type} . ')';
$current_kind->{val};
}
sub current_part() {
@@ -351,17 +429,17 @@ sub hd2kind {
}
sub filesystems_button_box() {
- my @types = (N_("Ext3"), N_("XFS"), N_("Swap"), arch() =~ /sparc/ ? N_("SunOS") : arch() eq "ppc" ? N_("HFS") : N_("Windows"),
+ my @types = (N_("Ext4"), N_("XFS"), N_("Swap"), N_("Windows"),
N_("Other"), N_("Empty"));
- my %name2fs_type = (Ext3 => 'ext3', 'XFS' => 'xfs', Swap => 'swap', Other => 'other', "Windows" => 'vfat', HFS => 'hfs');
+ my %name2fs_type = (Ext3 => 'ext3', Ext4 => 'ext4', 'XFS' => 'xfs', Swap => 'swap', Other => 'other', "Windows" => 'vfat', HFS => 'hfs');
- gtkpack(Gtk2::HBox->new(0,0),
- N("Filesystem types:"),
- map { my $w = Gtk2::Button->new(translate($_));
+ gtkpack(Gtk3::HBox->new,
+ map {
my $t = $name2fs_type{$_};
- $w->signal_connect(clicked => sub { try_('', \&createOrChangeType, $t, current_hd(), current_part()) });
- $w->can_focus(0);
- $w->set_name('PART_' . ($t || 'empty'));
+ my $w = gtknew('Button', text => translate($_), widget_name => 'PART_' . ($t || 'empty'),
+ tip => N("Filesystem types:"),
+ clicked => sub { try_('', \&createOrChangeType, $t, current_hd(), current_part()) });
+ $w->set_can_focus(0);
$w;
} @types);
}
@@ -389,10 +467,25 @@ sub createOrChangeType {
diskdrake::interactive::Create($in, $hd, $part, $all_hds);
} else {
return if $fs_type eq $part->{fs_type};
- $in->ask_warn('', isBusy($part) ? N("Use ``Unmount'' first") : N("Use ``%s'' instead", N("Type")));
+ $in->ask_warn('', isBusy($part) ? N("Use ``Unmount'' first") : N("Use ``%s'' instead (in expert mode)", N("Type")));
}
}
+sub kind2parts {
+ my ($kind) = @_;
+ my $v = $kind->{val};
+ my @parts =
+ $kind->{type} eq 'raid' ? grep { $_ } @$v :
+ $kind->{type} eq 'loopback' ? @$v : fs::get::hds_fstab_and_holes($v);
+ @parts;
+}
+
+sub kind2sectors {
+ my ($kind, @parts) = @_;
+ my $v = $kind->{val};
+ $kind->{type} =~ /raid|loopback/ ? sum(map { $_->{size} } @parts) : $v->{totalsectors};
+}
+
################################################################################
# lvms: helpers
################################################################################
@@ -408,6 +501,11 @@ sub raid2kind() {
{ type => 'raid', name => 'raid', val => $all_hds->{raids} };
}
+sub raid2real_kind {
+ my ($raid) = @_;
+ { type => 'raid', name => 'raid', val => $raid };
+}
+
################################################################################
# loopbacks: helpers
################################################################################
diff --git a/perl-install/diskdrake/interactive.pm b/perl-install/diskdrake/interactive.pm
index 2b513dd4b..59e79782c 100644
--- a/perl-install/diskdrake/interactive.pm
+++ b/perl-install/diskdrake/interactive.pm
@@ -1,9 +1,11 @@
-package diskdrake::interactive; # $Id$
+package diskdrake::interactive;
use diagnostics;
use strict;
use utf8;
+use lib qw(/usr/lib/libDrakX); # for perl_checker
+use MDK::Common; # for perl_checker
use common;
use fs::type;
use fs::loopback;
@@ -20,18 +22,16 @@ use raid;
use any;
use log;
-
-=begin
-
=head1 SYNOPSYS
-struct part {
+ struct part {
int active # one of { 0 | 0x80 } x86 only, primary only
int start # in sectors
int size # in sectors
int pt_type # 0x82, 0x83, 0x6 ...
string fs_type # 'ext2', 'nfs', ...
-
+ string type_name # 'Linux RAID', 'Linux Logical Volume Manager', ...
+
int part_number # 1 for hda1...
string device # 'hda5', 'sdc1' ...
string device_LABEL # volume label. LABEL=xxx or /dev/disk/by-label/xxx can be used in fstab instead of the device
@@ -40,7 +40,8 @@ struct part {
bool prefer_device_UUID # should the {device_UUID} or the {device} be used in fstab
bool prefer_device # should the {device} be used in fstab
bool faked_device # false if {device} is a real device, true for nfs/smb/dav/none devices. If the field does not exist, we do not know
-
+ bool device_LABEL_changed # true if device_LABEL is different from the one on the disk
+
string rootDevice # 'sda', 'hdc' ... (can also be a VG_name)
string real_mntpoint # directly on real /, '/tmp/hdimage' ...
string mntpoint # '/', '/usr' ...
@@ -48,132 +49,145 @@ struct part {
string device_windobe # 'C', 'D' ...
string encrypt_key # [0-9A-Za-z./]{20,}
string comment # comment to have in fstab
- string volume_label #
-
+ string volume_label #
+
bool is_removable # is the partition on a removable drive
bool isMounted
-
+
bool isFormatted
- bool notFormatted
+ bool notFormatted
# isFormatted means the device is formatted
# !isFormatted && notFormatted means the device is not formatted
# !isFormatted && !notFormatted means we do not know which state we're in
-
+
string raid # for partitions of type isRawRAID and which isPartOfRAID, the raid device
string lvm # partition used as a PV for the VG with {lvm} as VG_name #-#
loopback loopback[] # loopback living on this partition
-
+
+ string dmcrypt_key
+ string dm_name
+ bool dm_active
+
# internal
string real_device # '/dev/loop0', '/dev/loop1' ... (used for encrypted loopback)
-
+
# internal CHS (Cylinder/Head/Sector)
- int start_cyl, start_head, start_sec, end_cyl, end_head, end_sec,
+ int start_cyl, start_head, start_sec, end_cyl, end_head, end_sec,
}
-struct part_allocate inherits part {
+ struct part_allocate inherits part {
int maxsize # in sectors (alike "size")
- int ratio #
+ int min_hd_size # in sectors (do not allocate if the drive is smaller than the given size)
+ int ratio #
string hd # 'hda', 'hdc'
string parts # for creating raid partitions. eg: 'foo bar' where 'foo' and 'bar' are mntpoint
}
-struct part_raid inherits part {
+ struct part_raid inherits part {
string chunk-size # in KiB, usually '64'
string level # one of { 0, 1, 4, 5, 'linear' }
string UUID
-
+
part disks[]
-
+
# invalid: active, start, rootDevice, device_windobe?, CHS
}
-struct part_loopback inherits part {
+ struct part_dmcrypt inherits part {
+ string dmcrypt_name
+
+ # rootDevice is special here: it is the device hosting the dm
+}
+
+ struct part_loopback inherits part {
string loopback_file # absolute file name which is relative to the partition
part loopback_device # where the loopback file live
-
+
# device is special here: it is the absolute filename of the loopback file.
-
+
# invalid: active, start, rootDevice, device_windobe, CHS
}
-struct part_lvm inherits part {
+ struct part_lvm inherits part {
# invalid: active, start, device_windobe, CHS
string lv_name
}
-struct partition_table_elem {
+ struct partition_table_elem {
part normal[] #
part extended # the main/next extended
part raw[4] # primary partitions
}
-struct geom {
- int heads
+ struct geom {
+ int heads
int sectors
int cylinders
int totalcylinders # for SUN, forget it
int start # always 0, forget it
}
-struct hd {
+ struct hd {
int totalsectors # size in sectors
string device # 'hda', 'sdc' ...
string device_alias # 'cdrom', 'floppy' ...
string media_type # one of { 'hd', 'cdrom', 'fd', 'tape' }
string capacity # contain of the strings of { 'burner', 'DVD' }
string info # name of the hd, eg: 'QUANTUM ATLAS IV 9 WLS'
-
+
bool readonly # is it allowed to modify the partition table
bool getting_rid_of_readonly_allowed # is it forbidden to write because the partition table is badly handled, or is it because we MUST not change the partition table
- bool isDirty # does it need to be written to the disk
+ bool isDirty # does it need to be written to the disk
list will_tell_kernel # list of actions to tell to the kernel so that it knows the new partition table
- bool hasBeenDirty # for undo
bool rebootNeeded # happens when a kernel reread failed
list partitionsRenumbered # happens when you
# - remove an extended partition which is not the last one
# - add an extended partition which is the first extended partition
list allPartitionsRenumbered # used to update bootloader configuration
int bus, id
-
+
+ bool is_removable # is it a removable drive
+
partition_table_elem primary
partition_table_elem extended[]
-
+
geom geom
-
+
# internal
string prefix # for some RAID arrays device=>c0d0 and prefix=>c0d0p
string file # '/dev/hda' ...
}
-struct hd_lvm inherits hd {
+ struct hd_lvm inherits hd {
int PE_size # block size (granularity, similar to cylinder size on x86)
string VG_name # VG name
-
+
part_lvm disks[]
-
+
# invalid: bus, id, extended, geom
}
-struct raw_hd inherits hd {
+ struct raw_hd inherits hd {
string fs_type # 'ext2', 'nfs', ...
string mntpoint # '/', '/usr' ...
string options # 'defaults', 'noauto'
-
- # invalid: isDirty, will_tell_kernel, hasBeenDirty, rebootNeeded, primary, extended
+
+ # invalid: isDirty, will_tell_kernel, rebootNeeded, primary, extended
}
-struct all_hds {
+ struct all_hds {
hd hds[]
hd_lvm lvms[]
part_raid raids[]
+ part_dmcrypt dmcrypts[]
part_loopback loopbacks[]
raw_hd raw_hds[]
raw_hd nfss[]
raw_hd smbs[]
raw_hd davs[]
raw_hd special[]
-
+
# internal: if fstab_to_string($all_hds) eq current_fstab then no need to save
string current_fstab
}
@@ -191,12 +205,12 @@ sub main {
}
my ($current_part, $current_hd);
-
+
while (1) {
my $choose_txt = $current_part ? N_("Choose another partition") : N_("Choose a partition");
my $parts_and_holes = [ fs::get::fstab_and_holes($all_hds) ];
my $choose_part = sub {
- $current_part = $in->ask_from_listf('diskdrake', translate($choose_txt),
+ $current_part = $in->ask_from_listf('diskdrake', translate($choose_txt),
sub {
my $hd = fs::get::part2hd($_[0] || return, $all_hds);
format_part_info_short($hd, $_[0]);
@@ -208,33 +222,33 @@ sub main {
return if !$current_part;
my %actions = my @actions = (
- if_($current_part,
+ if_($current_part,
(map { my $s = $_; $_ => sub { $diskdrake::interactive::{$s}($in, $current_hd, $current_part, $all_hds) } } part_possible_actions($in, $current_hd, $current_part, $all_hds)),
'____________________________' => sub {},
),
if_(@$parts_and_holes > 1, $choose_txt => $choose_part),
if_($current_hd,
(map { my $s = $_; $_ => sub { $diskdrake::interactive::{$s}($in, $current_hd, $all_hds) } } hd_possible_actions_interactive($in, $current_hd, $all_hds)),
- ),
+ ),
(map { my $s = $_; $_ => sub { $diskdrake::interactive::{$s}($in, $all_hds) } } general_possible_actions($in, $all_hds)),
);
my ($actions) = list2kv(@actions);
my $a;
if ($current_part) {
$in->ask_from_({
- cancel => N("Exit"),
+ cancel => N("Exit"),
title => 'diskdrake',
messages => format_part_info($current_hd, $current_part),
},
[ { val => \$a, list => $actions, format => \&translate, type => 'list', sort => 0, gtk => { use_boxradio => 0 } } ]) or last;
my $v = eval { $actions{$a}() };
if (my $err = $@) {
- $in->ask_warn(N("Error"), formatError($err));
+ $in->ask_warn(N("Error"), formatError($err));
}
if ($v eq 'force_reload') {
$all_hds = $do_force_reload->();
}
- $current_hd = $current_part = '' if !is_part_existing($current_part, $all_hds);
+ $current_hd = $current_part = '' if !is_part_existing($current_part, $all_hds);
} else {
$choose_part->();
}
@@ -255,13 +269,7 @@ sub main {
################################################################################
sub general_possible_actions {
my ($_in, $_all_hds) = @_;
- N_("Undo"), ($::expert ? N_("Toggle to normal mode") : N_("Toggle to expert mode"));
-}
-
-
-sub Undo {
- my ($_in, $all_hds) = @_;
- undo($all_hds);
+ if_($::isInstall, N_("More"));
}
sub Done {
@@ -277,16 +285,19 @@ sub Done {
$in->ask_yesorno(N("Quit without saving"), N("Quit without writing the partition table?"), 1) or return;
}
}
+ foreach (@{$all_hds->{raids}}) {
+ raid::make($all_hds->{raids}, $_);
+ }
if (!$::isInstall) {
my $new = fs::fstab_to_string($all_hds);
- if ($new ne $all_hds->{current_fstab} && $in->ask_yesorno(N("Confirmation"), N("Do you want to save /etc/fstab modifications"), 1)) {
+ if ($new ne $all_hds->{current_fstab} && $in->ask_yesorno(N("Confirmation"), N("Do you want to save the /etc/fstab modifications?"), 1)) {
$all_hds->{current_fstab} = $new;
fs::write_fstab($all_hds);
}
update_bootloader_for_renumbered_partitions($in, $all_hds);
if (any { $_->{rebootNeeded} } @{$all_hds->{hds}}) {
- $in->ask_warn(N("Partitioning"), N("You need to reboot for the partition table modifications to take place"), icon => 'banner-part');
+ $in->ask_warn(N("Partitioning"), N("You need to reboot for the partition table modifications to take effect"));
tell_wm_and_reboot();
}
}
@@ -301,17 +312,29 @@ Quit anyway?", $part->{device}, $part->{mntpoint})) or return if $::isStandalone
################################################################################
# per-hd actions
################################################################################
-sub hd_possible_actions {
- my ($_in, $hd, $_all_hds) = @_;
- (
- if_(!$hd->{readonly} || $hd->{getting_rid_of_readonly_allowed}, N_("Clear all")),
+sub hd_possible_actions_base {
+ my ($hd) = @_;
+ (
+ if_(!$hd->{readonly} || $hd->{getting_rid_of_readonly_allowed}, N_("Clear all")),
if_(!$hd->{readonly} && $::isInstall, N_("Auto allocate")),
- N_("More"),
);
}
+
+sub hd_possible_actions_extra {
+ my ($_hd) = @_;
+ $::expert ? N_("Normal mode") : N_("Expert mode");
+}
+
+
+sub hd_possible_actions {
+ my ($_in, $hd, $_all_hds) = @_;
+ hd_possible_actions_base($hd);
+ hd_possible_actions_extra($hd);
+}
+
sub hd_possible_actions_interactive {
my ($_in, $_hd, $_all_hds) = @_;
- &hd_possible_actions, N_("Hard drive information");
+ &hd_possible_actions, N_("Hard disk drive information");
}
sub Clear_all {
@@ -321,6 +344,7 @@ sub Clear_all {
foreach (@parts) {
RemoveFromLVM($in, $hd, $_, $all_hds) if isPartOfLVM($_);
RemoveFromRAID($in, $hd, $_, $all_hds) if isPartOfRAID($_);
+ RemoveFromDm($in, $hd, $_, $all_hds) if $_->{dm_active};
}
if (isLVM($hd)) {
lvm::lv_delete($hd, $_) foreach @parts;
@@ -329,85 +353,39 @@ sub Clear_all {
$hd->{getting_rid_of_readonly_allowed} = 0; #- we don't need this flag anymore
fsedit::partition_table_clear_and_initialize($all_hds->{lvms}, $hd, $in);
}
+ fsedit::init_mntpnt_suggestions($all_hds, $hd, 1);
}
sub Auto_allocate {
my ($in, $hd, $all_hds) = @_;
- my $suggestions = partitions_suggestions($in) or return;
+ my $suggestions = partitions_suggestions($in, $all_hds, $hd) or return;
my %all_hds_ = %$all_hds;
$all_hds_{hds} = [ sort { $a == $hd ? -1 : 1 } fs::get::hds($all_hds) ];
- eval { fsedit::auto_allocate(\%all_hds_, $suggestions) };
+ eval { fsedit::auto_allocate(\%all_hds_, $suggestions, $hd) };
if ($@) {
$@ =~ /partition table already full/ or die;
- $in->ask_warn("", [
+ $in->ask_warn("", [
N("All primary partitions are used"),
- N("I can not add any more partitions"),
+ N("I cannot add any more partitions"),
N("To have more partitions, please delete one to be able to create an extended partition"),
]);
}
}
sub More {
- my ($in, $hd) = @_;
+ my ($in, $_hd) = @_;
my $r;
$in->ask_from(N("More"), '',
[
- { val => N("Save partition table"), clicked_may_quit => sub { SaveInFile($in, $hd); 1 } },
- { val => N("Restore partition table"), clicked_may_quit => sub { ReadFromFile($in, $hd); 1 } },
- if_($::isInstall,
- { val => N("Reload partition table"), clicked_may_quit => sub { $r = 'force_reload'; 1 } }),
+ { val => N("Reload partition table"), clicked_may_quit => sub { $r = 'force_reload'; 1 } },
],
) && $r;
}
-sub ReadFromFile {
- my ($in, $hd) = @_;
-
- my ($h, $file, $fh);
- if ($::isStandalone) {
- $file = $in->ask_filename({ title => N("Select file") }) or return;
- } else {
- undef $h; #- help perl_checker
- my $name = $hd->{device}; $name =~ s!/!_!g;
- ($h, $fh) = install::any::media_browser($in, '', "part_$name") or return;
- }
-
- eval {
- catch_cdie { partition_table::load($hd, $file || $fh) }
- sub {
- $@ =~ /bad totalsectors/ or return;
- $in->ask_yesorno(N("Warning"),
-N("The backup partition table has not the same size
-Still continue?"), 0);
- };
- };
- if (my $err = $@) {
- $in->ask_warn(N("Error"), formatError($err));
- }
-}
-
-sub SaveInFile {
- my ($in, $hd) = @_;
-
- my ($h, $file) = ('', '');
- if ($::isStandalone) {
- $file = $in->ask_filename({ save => 1, title => N("Select file") }) or return;
- } else {
- undef $h; #- help perl_checker
- my $name = $hd->{device}; $name =~ s!/!_!g;
- ($h, $file) = install::any::media_browser($in, 'save', "part_$name") or return;
- }
-
- eval { partition_table::save($hd, $file) };
- if (my $err = $@) {
- $in->ask_warn(N("Error"), formatError($err));
- }
-}
-
sub Hd_info {
my ($in, $hd) = @_;
$in->ask_warn(N("Warning"), [ N("Detailed information"), format_hd_info($hd) ]);
@@ -417,56 +395,76 @@ sub Hd_info {
# per-part actions
################################################################################
+sub is_LVM_resizable {
+ my ($part) = @_;
+ member($part->{fs_type}, qw(btrfs ext3 ext4 nilfs2 reiserfs xfs));
+}
sub part_possible_actions {
my ($_in, $hd, $part, $all_hds) = @_;
$part or return;
my %actions = my @l = (
+ N_("View") => '!isSwap && !isNonMountable && maybeFormatted',
N_("Mount point") => '$part->{real_mntpoint} || (!isBusy && !isSwap && !isNonMountable)',
N_("Type") => '!isBusy && $::expert && (!readonly || $part->{pt_type} == 0x83)',
N_("Options") => '!isSwap($part) && !isNonMountable && $::expert',
- N_("Label") => '!isNonMountable && $::expert',
- N_("Resize") => '!isBusy && !readonly && !isSpecial || isLVM($hd) && LVM_resizable',
- N_("Format") => '!isBusy && !readonly && ($::expert || $::isStandalone)',
+ N_("Label") => '!isNonMountable && $::expert && fs::format::canEditLabel($part)',
+ N_("Resize") => '!isBusy && !readonly && !isSpecial || isLVM($hd) && is_LVM_resizable',
+ N_("Format") => '!isBusy && isFormatable && (!readonly && ($::expert || $::isStandalone) || fs::type::isRawLUKS($part))',
N_("Mount") => '!isBusy && (hasMntpoint || isSwap) && maybeFormatted && ($::expert || $::isStandalone)',
N_("Add to RAID") => '!isBusy && isRawRAID && (!isSpecial || isRAID)',
N_("Add to LVM") => '!isBusy && isRawLVM',
+ N_("Use") => '!isBusy && fs::type::isRawLUKS($part) && !$part->{notFormatted}',
N_("Unmount") => '!$part->{real_mntpoint} && isMounted',
N_("Delete") => '!isBusy && !readonly',
N_("Remove from RAID") => 'isPartOfRAID',
N_("Remove from LVM") => 'isPartOfLVM',
+ N_("Remove from dm") => '$part->{dm_active}',
N_("Modify RAID") => 'canModifyRAID',
- N_("Use for loopback") => '!$part->{real_mntpoint} && isMountableRW && !isSpecial && hasMntpoint && $::expert',
+ N_("Use for loopback") => '!$part->{real_mntpoint} && isMountableRW && !isSpecial && hasMntpoint && maybeFormatted && $::expert',
);
my ($actions_names) = list2kv(@l);
my $_all_hds = $all_hds; #- help perl_checker know the $all_hds *is* used in the macro below
my %macros = (
readonly => '$hd->{readonly}',
hasMntpoint => '$part->{mntpoint}',
- LVM_resizable => '$part->{fs_type} eq "reiserfs" || (isMounted ? $part->{fs_type} eq "xfs" : $part->{fs_type} eq "ext3")',
canModifyRAID => 'isPartOfRAID($part) && !isMounted(fs::get::device2part($part->{raid}, $all_hds->{raids}))',
);
if (isEmpty($part)) {
if_(!$hd->{readonly}, N_("Create"));
} elsif ($part->{pt_type} == 0xbf && detect_devices::is_xbox()) {
#- XBox OS partitions, do not allow anything
- return;
+ return;
} else {
- grep {
+ grep {
my $cond = $actions{$_};
while (my ($k, $v) = each %macros) {
$cond =~ s/$k/qq(($v))/e;
}
$cond =~ s/(^|[^:\$]) \b ([a-z]\w{3,}) \b ($|[\s&\)])/$1 . $2 . '($part)' . $3/exg;
- eval $cond;
+ my $res = eval $cond;
+ if (my $err = $@) {
+ warn "ERROR: Bogus condition for '$actions{$_}': $err\n";
+ }
+ $res;
} @$actions_names;
}
}
-#- in case someone use diskdrake only to create partitions,
+sub View {
+ my ($in, $_hd, $part, $_all_hds) = @_;
+ my $handle = any::inspect($part, $::prefix);
+ if ($handle) {
+ $in->ask_directory({ 'directory' => $handle->{dir} });
+ } else {
+ $in->ask_warn(N("Error"), N("Failed to mount partition"));
+ }
+}
+
+#- in case someone use diskdrake only to create partitions,
#- ie without assigning a mount point,
#- do not suggest mount points anymore
-my $do_suggest_mount_point = 1;
+my $do_suggest_mount_point = $::isInstall;
sub Create {
my ($in, $hd, $part, $all_hds) = @_;
@@ -477,7 +475,7 @@ sub Create {
$part->{mntpoint} = '' if !$do_suggest_mount_point;
} else {
$part->{size} = $part->{maxsize};
- fs::type::suggest_fs_type($part, 'ext3');
+ fs::type::suggest_fs_type($part, defaultFS());
}
if (isLVM($hd)) {
lvm::suggest_lv_name($hd, $part);
@@ -490,46 +488,69 @@ sub Create {
my $type_name = fs::type::part2type_name($part);
my $mb_size = to_Mb($part->{size});
my $has_startsector = ($::expert || arch() !~ /i.86/) && !isLVM($hd);
+ my $use_dmcrypt;
+ my $requested_type;
$in->ask_from(N("Create a new partition"), '',
[
{ label => N("Create a new partition"), title => 1 },
if_($has_startsector,
- { label => N("Start sector: "), val => \$part->{start}, min => $def_start, max => ($max - min_partition_size($hd)),
+ { label => N("Start sector: "), val => \$part->{start}, min => $def_start, max => ($max - min_partition_size($hd)),
type => 'range', SpinButton => $::expert, changed => sub { $mb_size = min($mb_size, to_Mb($max - $part->{start})) } },
),
- { label => N("Size in MB: "), val => \$mb_size, min => to_Mb(min_partition_size($hd)), max => to_Mb($def_size),
+ { label => N("Size in MB: "), val => \$mb_size, min => to_Mb(min_partition_size($hd)), max => to_Mb($def_size),
type => 'range', SpinButton => $::expert, changed => sub { $part->{start} = min($part->{start}, $max - $mb_size * 2048) } },
- { label => N("Filesystem type: "), val => \$type_name, list => [ fs::type::type_names($::expert, $hd) ],
- sort => 0, if_($::expert, gtk => { wrap_width => 4 }) },
+ { label => N("Filesystem type: "), val => \$type_name, list => [ fs::type::type_names($::expert, $hd) ],
+ sort => 0, if_($::expert, gtk => { wrap_width => 2 }, do_not_ellipsize => 1) },
{ label => N("Mount point: "), val => \$part->{mntpoint}, list => [ fsedit::suggestions_mntpoint($all_hds), '' ],
+ if_(isLVM($hd), changed => sub {
+ undef $part->{lv_name};
+ lvm::suggest_lv_name($hd, $part);
+ }), type => 'combo', not_edit => 0,
disabled => sub { my $p = fs::type::type_name2subpart($type_name); isSwap($p) || isNonMountable($p) }, type => 'combo', not_edit => 0,
},
if_($::expert && $hd->hasExtended,
{ label => N("Preference: "), val => \$primaryOrExtended, list => [ '', "Extended", "Primary", if_($::expert, "Extended_0x85") ] },
),
- if_($::expert && isLVM($hd),
+ if_(isLVM($hd),
{ label => N("Logical volume name "), val => \$part->{lv_name}, list => [ qw(root swap usr home var), '' ], sort => 0, not_edit => 0 },
),
+ { label => N("Encrypt partition"), type => 'bool', val => \$use_dmcrypt, disabled => sub { $part->{mntpoint} eq "/boot" } },
+ { label => N("Encryption key "), val => \$part->{dmcrypt_key}, disabled => sub { !$use_dmcrypt }, hidden => 1, weakness_check => 1 },
+ { label => N("Encryption key (again)"), val => \$part->{dmcrypt_key2}, disabled => sub { !$use_dmcrypt }, hidden => 1 },
], complete => sub {
$part->{size} = from_Mb($mb_size, min_partition_size($hd), $max - $part->{start}); #- need this to be able to get back the approximation of using MB
- put_in_hash($part, fs::type::type_name2subpart($type_name));
$do_suggest_mount_point = 0 if !$part->{mntpoint};
+ put_in_hash($part, fs::type::type_name2subpart($type_name));
$part->{mntpoint} = '' if isNonMountable($part);
$part->{mntpoint} = 'swap' if isSwap($part);
fs::mount_options::set_default($part, ignore_is_removable => 1);
+ # if user asked to encrypt the partition, use dm-crypt and create requested fs inside
+ if ($use_dmcrypt) {
+ my $err;
+ $err = N("The encryption keys do not match") unless $part->{dmcrypt_key} eq $part->{dmcrypt_key2};
+ $err = N("Missing encryption key") unless $part->{dmcrypt_key};
+ if ($err) {
+ $in->ask_warn(N("Error"), $err);
+ return 1;
+ }
+ $requested_type = $type_name;
+ $type_name = 'Encrypted';
+ }
+
+ put_in_hash($part, fs::type::type_name2subpart($type_name));
check($in, $hd, $part, $all_hds) or return 1;
$migrate_files = need_migration($in, $part->{mntpoint}) or return 1;
-
+
my $seen;
- eval {
+ eval {
catch_cdie { fsedit::add($hd, $part, $all_hds, { force => 1, primaryOrExtended => $primaryOrExtended }) }
sub { $seen = 1; $in->ask_okcancel('', formatError($@)) };
};
if (my $err = $@) {
if ($err =~ /raw_add/ && $hd->hasExtended && !$hd->{primary}{extended}) {
- $in->ask_warn(N("Error"), N("You can not create a new partition
+ $in->ask_warn(N("Error"), N("You cannot create a new partition
(since you reached the maximal number of primary partitions).
First remove a primary partition and create an extended partition."));
return 0;
@@ -542,9 +563,26 @@ First remove a primary partition and create an extended partition."));
},
) or return;
+ if ($use_dmcrypt) {
+ write_partitions($in, $hd) or return;
+ # Initialize it and format it
+ dmcrypt_format($in, $hd, $part, $all_hds);
+ my $p = find { $part->{dm_name} eq $_->{dmcrypt_name} } @{$all_hds->{dmcrypts}};
+ my $p2 = fs::type::type_name2subpart($requested_type);
+ $p->{fs_type} = $p2->{fs_type};
+ $p->{type_name} = $requested_type;
+ $p->{mntpoint} = $part->{mntpoint};
+ $part->{mntpoint} = '';
+ if ($::isStandalone) {
+ fs::format::check_package_is_installed_format($in->do_pkgs, $p->{fs_type}) or log::l("Missing package");
+ }
+ _format_raw($in, $p, $all_hds, isRawLVM($p));
+ }
+
warn_if_renumbered($in, $hd);
if ($migrate_files eq 'migrate') {
+ # FIXME check encrypt case
format_($in, $hd, $part, $all_hds) or return;
migrate_files($in, $hd, $part);
fs::mount::part($part);
@@ -553,6 +591,11 @@ First remove a primary partition and create an extended partition."));
sub Delete {
my ($in, $hd, $part, $all_hds) = @_;
+ if (fs::type::isLUKS($part)) {
+ my $p = find { $_->{dm_name} eq $part->{dmcrypt_name} } partition_table::get_normal_parts($hd);
+ RemoveFromDm($in, $hd, $p, $all_hds);
+ $part = $p;
+ }
if (isRAID($part)) {
raid::delete($all_hds->{raids}, $part);
} elsif (isLVM($hd)) {
@@ -567,9 +610,6 @@ sub Delete {
delete $part->{loopback_device}{loopback} if @$l == 0;
fsedit::recompute_loopbacks($all_hds);
} else {
- if (arch() =~ /ppc/) {
- undef $partition_table::mac::bootstrap_part if isAppleBootstrap($part) && ($part->{device} = $partition_table::mac::bootstrap_part);
- }
partition_table::remove($hd, $part);
warn_if_renumbered($in, $hd);
}
@@ -579,41 +619,50 @@ sub Type {
my ($in, $hd, $part) = @_;
my $warned;
- my $warn = sub {
- $warned = 1;
- ask_alldatawillbelost($in, $part, N_("After changing type of partition %s, all data on this partition will be lost"));
+ my $warn = sub {
+ $warned = 1;
+ if (maybeFormatted($part)) {
+ ask_alldatawillbelost($in, $part, N_("After changing type of partition %s, all data on this partition will be lost"));
+ } else {
+ 1;
+ }
};
- #- for ext2, warn after choosing as ext2->ext3 can be achieved without loosing any data :)
- $part->{fs_type} eq 'ext2' || $part->{fs_type} =~ /ntfs/ or $warn->() or return;
+ #- for ext2/ext3, warn after choosing as ext2->ext3 and ext*->ext4 can be achieved without loosing any data :)
+ member($part->{fs_type}, qw(ext2 ext3)) || $part->{fs_type} =~ /ntfs/ or $warn->() or return;
my @types = fs::type::type_names($::expert, $hd);
#- when readonly, Type() is allowed only when changing {fs_type} but not {pt_type}
- #- eg: switching between ext2, ext3, reiserfs...
+ #- eg: switching between ext2, ext3, ext4, reiserfs...
@types = grep { fs::type::type_name2pt_type($_) == $part->{pt_type} } @types if $hd->{readonly};
my $type_name = fs::type::part2type_name($part);
$in->ask_from_({ title => N("Change partition type") },
[
{ label => N("Which filesystem do you want?"), title => 1 },
- { label => N("Type"), val => \$type_name, list => \@types, sort => 0,
- focus => sub { 1 }, not_edit => 1, gtk => { wrap_width => 4 } } ]) or return;
+ { label => N("Type"), val => \$type_name, type => 'list', list => \@types, sort => 1, do_not_ellipsize => 1,
+ focus => sub { 1 }, not_edit => 1, gtk => { wrap_width => 2 } } ]) or return;
my $type = $type_name && fs::type::type_name2subpart($type_name);
- if (member($type->{fs_type}, 'ext2', 'ext3')) {
- my $_w = $in->wait_message(N("Please wait"), N("Switching from ext2 to ext3"));
+ if ($part->{fs_type} eq 'ext2' && $type->{fs_type} eq 'ext3') {
+ my $_w = $in->wait_message(N("Please wait"), N("Switching from %s to %s", 'ext2', $type->{fs_type}));
if (run_program::run("tune2fs", "-j", devices::make($part->{device}))) {
put_in_hash($part, $type);
set_isFormatted($part, 1); #- assume that if tune2fs works, partition is formatted
#- disable the fsck (do not do it together with -j in case -j fails?)
- fs::format::disable_forced_fsck($part->{device});
+ fs::format::disable_forced_fsck($part->{device});
return;
}
+ } elsif (member($part->{fs_type}, qw(ext2 ext3)) && $type->{fs_type} eq 'ext4') {
+ # FIXME enable some nice flags
+ put_in_hash($part, $type);
+ return;
} elsif ($type->{fs_type} =~ /ntfs/ && $part->{fs_type} =~ /ntfs/) {
if ($type->{fs_type} eq 'ntfs-3g') {
+ local $::prefix = ''; # For draklive-install
$in->do_pkgs->ensure_binary_is_installed('ntfs-3g', 'mount.ntfs-3g') or return;
}
put_in_hash($part, $type);
@@ -628,13 +677,26 @@ sub Type {
}
sub Label {
- my ($in, $_hd, $part) = @_;
- $in->ask_from(N("Which volume label?"), '',
+ my ($in, $hd, $part) = @_;
+ my $new_label = $part->{device_LABEL} || "";
- [
+ write_partitions($in, $hd) or return;
+
+ $in->ask_from(N("Set volume label"),
+ maybeFormatted($part) ?
+ N("Beware, this will be written to disk as soon as you validate!")
+ : N("Beware, this will be written to disk only after formatting!"),
+ [
{ label => N("Which volume label?"), title => 1 },
- { label => N("Label:"), val => \$part->{device_LABEL} } ]) or return;
- $part->{prefer_device_LABEL} = to_bool($part->{device_LABEL});
+ { label => N("Label:"), val => \$new_label } ]) or return;
+
+ fs::format::check_package_is_installed_label($in->do_pkgs, $part->{fs_type}) or return;
+ $part->{prefer_device_LABEL} = to_bool($part->{device_LABEL}) && !isLVM($part);
+ return if $new_label eq $part->{device_LABEL};
+ $part->{device_LABEL} = $new_label;
+ $part->{device_LABEL_changed} = 1;
+ fs::format::clean_label($part);
+ fs::format::write_label($part);
}
sub Mount_point {
@@ -652,8 +714,8 @@ sub Mount_point {
$in->ask_from_({
callbacks => {
complete => sub {
- !isPartOfLoopback($part) || $mntpoint or $in->ask_warn(N("Error"),
-N("Can not unset mount point as this partition is used for loop back.
+ !isPartOfLoopback($part) || $mntpoint or $in->ask_warn(N("Error"),
+N("Cannot unset mount point as this partition is used for loop back.
Remove the loopback first")), return 1;
$part->{mntpoint} eq $mntpoint || check_mntpoint($in, $mntpoint, $part, $all_hds) or return 1;
$migrate_files = need_migration($in, $mntpoint) or return 1;
@@ -662,8 +724,8 @@ Remove the loopback first")), return 1;
},
[
{ label => $msg, title => 1 },
- { label => N("Mount point"), val => \$mntpoint,
- list => [ uniq(if_($mntpoint, $mntpoint), fsedit::suggestions_mntpoint($all_hds), '') ],
+ { label => N("Mount point"), val => \$mntpoint,
+ list => [ uniq(if_($mntpoint, $mntpoint), fsedit::suggestions_mntpoint($all_hds), '') ],
focus => sub { 1 },
not_edit => 0 } ],
) or return;
@@ -684,8 +746,8 @@ sub Mount_point_raw_hd {
'',
[
{ label => N("Where do you want to mount %s?", $part->{device}), title => 1 },
- { label => N("Mount point"), val => \$mntpoint,
- list => [ if_($mntpoint, $mntpoint), '', @propositions ],
+ { label => N("Mount point"), val => \$mntpoint,
+ list => [ if_($mntpoint, $mntpoint), '', @propositions ],
not_edit => 0 } ],
complete => sub {
$part->{mntpoint} eq $mntpoint || check_mntpoint($in, $mntpoint, $part, $all_hds) or return 1;
@@ -695,10 +757,36 @@ sub Mount_point_raw_hd {
$part->{mntpoint} = $mntpoint;
}
+#- side-effects: mounts the fs
+sub _get_dir_for_online_resize {
+ my ($part) = @_;
+ my $dir = "/tmp/tmp_resize_" . $part->{fs_type} . ".$$";
+ if ($part->{isMounted}) {
+ $dir = ($::prefix || '') . $part->{mntpoint};
+ } else {
+ mkdir_p($dir);
+ fs::mount::mount(devices::make($part->{device}), $dir, $part->{fs_type});
+ }
+ return $dir;
+}
+
+sub _set_min_size_from_avail_space {
+ my ($part, $min) = @_;
+ if (defined(my $free = fs::df($part))) {
+ $$min = max($$min, $part->{size} - $free);
+ }
+}
+
sub Resize {
my ($in, $hd, $part) = @_;
- my (%nice_resize);
- my ($min, $max) = (min_partition_size($hd), max_partition_resize($hd, $part));
+ my (%nice_resize, $online_resize);
+ my $low_part = $part;
+
+ if (isLUKS($part)) {
+ $low_part = find { $_->{dm_name} eq $part->{dmcrypt_name} } partition_table::get_normal_parts($hd);
+ }
+
+ my ($min, $max) = (min_partition_size($hd), max_partition_resize($hd, $low_part));
if (maybeFormatted($part)) {
# here we may have a non-formatted or a formatted partition
@@ -712,8 +800,8 @@ sub Resize {
require resize_fat::main;
$nice_resize{fat} = resize_fat::main->new($part->{device}, devices::make($part->{device}));
$min = max($min, $nice_resize{fat}->min_size);
- $max = min($max, $nice_resize{fat}->max_size);
- } elsif (member($part->{fs_type}, 'ext2', 'ext3')) {
+ $max = min($max, $nice_resize{fat}->max_size);
+ } elsif (member($part->{fs_type}, qw(ext2 ext3 ext4))) {
write_partitions($in, $hd) or return;
require diskdrake::resize_ext2;
if ($nice_resize{ext2} = diskdrake::resize_ext2->new($part->{device}, devices::make($part->{device}))) {
@@ -721,7 +809,10 @@ sub Resize {
} else {
delete $nice_resize{ext2};
}
- } elsif ($part->{fs_type} eq 'ntfs') {
+ } elsif ($part->{fs_type} eq 'f2fs') {
+ $min = $part->{size}; #- ensure the user can only increase
+ $nice_resize{f2fs} = 1;
+ } elsif ($part->{fs_type} =~ /ntfs/) {
write_partitions($in, $hd) or return;
require diskdrake::resize_ntfs;
diskdrake::resize_ntfs::check_prog($in) or return;
@@ -729,17 +820,27 @@ sub Resize {
$min = $nice_resize{ntfs}->min_size or delete $nice_resize{ntfs};
} elsif ($part->{fs_type} eq 'reiserfs') {
write_partitions($in, $hd) or return;
+ $nice_resize{reiserfs} = 1;
if ($part->{isMounted}) {
- $nice_resize{reiserfs} = 1;
$min = $part->{size}; #- ensure the user can only increase
- } elsif (defined(my $free = fs::df($part))) {
- $nice_resize{reiserfs} = 1;
- $min = max($min, $part->{size} - $free);
+ } else {
+ _set_min_size_from_avail_space($part, \$min);
}
- } elsif ($part->{fs_type} eq 'xfs' && isLVM($hd) && $::isStandalone && $part->{isMounted}) {
+ } elsif ($part->{fs_type} eq 'xfs') {
$min = $part->{size}; #- ensure the user can only increase
- $nice_resize{xfs} = 1;
+ $online_resize = $part->{fs_type};
+ } elsif (member($part->{fs_type}, qw(btrfs nilfs2))) {
+ $online_resize = $part->{fs_type};
+ }
+
+ # Btrf, nilfs2 && XFS only support online resizing
+ # (Ext3/4 too but we can resize it offline so we don't care - though growing online is interesting)
+ if ($online_resize) {
+ write_partitions($in, $hd) or return;
+ $nice_resize{$online_resize} = 1;
+ _set_min_size_from_avail_space($part, \$min);
}
+
#- make sure that even after normalizing the size to cylinder boundaries, the minimun will be saved,
#- this save at least a cylinder (less than 8Mb).
$min += partition_table::raw::cylinder_size($hd);
@@ -748,7 +849,7 @@ sub Resize {
#- for these, we have tools to resize partition table
#- without losing data (or at least we hope so :-)
if (%nice_resize) {
- ask_alldatamaybelost($in, $part, N_("All data on this partition should be backed-up")) or return;
+ ask_alldatamaybelost($in, $part, N_("All data on this partition should be backed up")) or return;
} else {
ask_alldatawillbelost($in, $part, N_("After resizing partition %s, all data on this partition will be lost")) or return;
}
@@ -756,7 +857,7 @@ sub Resize {
my $mb_size = to_Mb($part->{size});
my ($gmin, $gmax) = (to_Mb($min), to_Mb($max));
- $in->ask_from(N("Resize"), '', [
+ $in->ask_from(N("Resize"), '', [
{ label => N("Choose the new size"), title => 1 },
{ label => N("New size in MB: "), val => \$mb_size, min => $gmin, max => $gmax, type => 'range', SpinButton => $::expert },
{ label => N("Minimum size: %s MB", $gmin) },
@@ -768,8 +869,8 @@ sub Resize {
$part->{size} == $size and return;
my $oldsize = $part->{size};
- $part->{size} = $size;
- $hd->adjustEnd($part);
+ $low_part->{size} = $part->{size} = $size;
+ $hd->adjustEnd($low_part);
undef $@;
my $_b = before_leaving { $@ and $part->{size} = $oldsize };
@@ -778,12 +879,19 @@ sub Resize {
my ($write_partitions) = @_;
if (isLVM($hd)) {
- lvm::lv_resize($part, $oldsize);
+ lvm::lv_resize($low_part, $oldsize);
} else {
- partition_table::will_tell_kernel($hd, resize => $part);
- partition_table::adjust_local_extended($hd, $part);
+ if ($write_partitions && isLUKS($part)) {
+ run_program::run('cryptsetup', 'luksClose', $part->{dmcrypt_name}) or die("Failed to resize partition, maybe it is mounted");
+ }
+ partition_table::will_tell_kernel($hd, resize => $low_part);
+ partition_table::adjust_local_extended($hd, $low_part);
partition_table::adjust_main_extended($hd);
- write_partitions($in, $hd) or return if $write_partitions && %nice_resize;
+ write_partitions($in, $hd) or return if $write_partitions && (%nice_resize || isLUKS($part));
+ if ($write_partitions && isLUKS($part)) {
+ require fs::dmcrypt;
+ fs::dmcrypt::open_part([], $low_part);
+ }
}
1;
};
@@ -801,14 +909,34 @@ sub Resize {
log::l("ntfs resize to $part->{size} sectors");
$nice_resize{ntfs}->resize($part->{size});
$wait = undef;
- $in->ask_warn(N("Warning"), N("To ensure data integrity after resizing the partition(s),
+ $in->ask_warn(N("Warning"), N("To ensure data integrity after resizing the partition(s),
filesystem checks will be run on your next boot into Microsoft Windows®"));
} elsif ($nice_resize{reiserfs}) {
log::l("reiser resize to $part->{size} sectors");
run_program::run_or_die('resize_reiserfs', '-f', '-q', '-s' . int($part->{size}/2) . 'K', devices::make($part->{device}));
- } elsif ($nice_resize{xfs}) {
- #- happens only with mounted LVM, see above
- run_program::run_or_die("xfs_growfs", $part->{mntpoint});
+ } elsif ($online_resize) {
+ my $dir = _get_dir_for_online_resize($part);
+ my @cmd;
+ if ($nice_resize{btrfs}) {
+ # FIXME: only works for a FS on a single device. Multi-device FS would need to specify the device to enlarge
+ @cmd = (qw(btrfs filesystem resize), $part->{size}*512, $dir);
+ } elsif ($nice_resize{nilfs2}) {
+ @cmd = ('nilfs-resize', devices::make($part->{device}), $part->{size}*512);
+ } elsif ($nice_resize{xfs}) {
+ @cmd = ("xfs_growfs", $dir);
+ } else {
+ die("I don't know how to proceed");
+ }
+ if (!run_program::run(@cmd)) {
+ $nice_resize{$part->{fs_type}} = undef;
+ }
+ # umount after online resize if it was mounted on demand:
+ if (!$part->{isMounted}) {
+ fs::mount::umount($dir);
+ unlink($dir);
+ }
+ } elsif ($nice_resize{f2fs}) {
+ run_program::run_or_die("resize.f2fs", devices::make($part->{device}));
}
if (%nice_resize) {
@@ -816,11 +944,12 @@ filesystem checks will be run on your next boot into Microsoft Windows®"));
} else {
set_isFormatted($part, 0);
partition_table::verifyParts($hd) if !isLVM($hd);
- $part->{mntpoint} = '' if isNonMountable($part); #- mainly for ntfs, which we can not format
+ $part->{mntpoint} = '' if isNonMountable($part); #- mainly for ntfs, which we cannot format
}
$adjust->(0) if $size < $oldsize;
}
+
sub Format {
my ($in, $hd, $part, $all_hds) = @_;
format_($in, $hd, $part, $all_hds);
@@ -838,6 +967,45 @@ sub Mount {
$w->set($msg);
});
}
+
+sub dmcrypt_open {
+ my ($in, $_hd, $part, $all_hds) = @_;
+ $part->{dm_name} ||= do {
+ my $s = $part->{device};
+ $s =~ s/\W/_/g;
+ "crypt_$s";
+ };
+
+ if (!$part->{dmcrypt_key}) {
+ $in->ask_from_({
+ title => N("Filesystem encryption key"),
+ messages => N("Enter your filesystem encryption key"),
+ }, [ { label => N("Encryption key"), val => \$part->{dmcrypt_key},
+ hidden => 1, focus => sub { 1 } } ]) or return;
+ }
+
+ eval { require fs::dmcrypt; fs::dmcrypt::open_part($all_hds->{dmcrypts}, $part) };
+ if ($@) {
+ delete $part->{dmcrypt_key};
+ die(($? >> 8) == 255 ? N("Invalid key") : $@);
+ }
+ detect_lvms_on_dmcrypt($all_hds);
+}
+
+# Detect LVMs on top of dmcrypt
+sub detect_lvms_on_dmcrypt {
+ my ($all_hds) = @_,
+ require File::Temp;
+ require fs::dmcrypt;
+ my (undef, $tmp_file) = File::Temp::mkstemp('/tmp/crypttab.XXXXXXX');
+ fs::dmcrypt::save_crypttab_($all_hds, $tmp_file);
+ require lvm;
+ lvm::detect_during_install();
+ $all_hds->{lvms} = [ fsedit::lvms($all_hds) ];
+ fs::dmcrypt::read_crypttab_($all_hds, $tmp_file);
+ rm_rf($tmp_file);
+}
+
sub Add2RAID {
my ($in, $_hd, $part, $all_hds) = @_;
my $raids = $all_hds->{raids};
@@ -858,6 +1026,7 @@ sub Add2RAID {
sub Add2LVM {
my ($in, $hd, $part, $all_hds) = @_;
my $lvms = $all_hds->{lvms};
+ my @lvm_names = map { $_->{VG_name} } @$lvms;
write_partitions($in, $_) or return foreach isRAID($part) ? @{$all_hds->{hds}} : $hd;
my $lvm = $in->ask_from_listf_(N("Add to LVM"), N("Choose an existing LVM to add to"),
@@ -866,11 +1035,27 @@ sub Add2LVM {
require lvm;
if (!ref $lvm) {
# create new lvm
- # FIXME: when mdv2006 is out: remove the question mark from the dialog title
- my $name = $in->ask_from_entry(N("LVM name?"), N("LVM name?")) or return;
+ my $n; my $str = "vg-mga";
+ while (member("$str$n", @lvm_names)) {
+ $n++;
+ }
+
+ my $name = "$str$n";
+ $in->ask_from_({ title => N("LVM name"),
+ messages => N("Enter a name for the new LVM volume group"),
+ focus_first => 1,
+ ok_disabled => sub { !$name },
+ validate => sub {
+ member($name, @lvm_names) or return 1;
+ $in->ask_warn(N("Error"), N("\"%s\" already exists", $name));
+ return 0;
+ } },
+ [ { label => N("LVM name"), val => \$name } ]) or return;
+
$lvm = new lvm($name);
push @$lvms, $lvm;
}
+ my $_w = $in->wait_message(N("Please wait"), N("Setting up LVM"));
raid::make($all_hds->{raids}, $part) if isRAID($part);
lvm::check($in->do_pkgs) if $::isStandalone;
lvm::add_to_VG($part, $lvm);
@@ -879,10 +1064,15 @@ sub Unmount {
my ($_in, $_hd, $part) = @_;
fs::mount::umount_part($part);
}
-sub RemoveFromRAID {
+sub RemoveFromRAID {
my ($_in, $_hd, $part, $all_hds) = @_;
raid::removeDisk($all_hds->{raids}, $part);
}
+sub RemoveFromDm {
+ my ($_in, $_hd, $part, $all_hds) = @_;
+ require fs::dmcrypt;
+ fs::dmcrypt::close_part($all_hds->{dmcrypts}, $part);
+}
sub RemoveFromLVM {
my ($in, $_hd, $part, $all_hds) = @_;
isPartOfLVM($part) or die;
@@ -901,7 +1091,7 @@ Do you want to move used physical extents on this volume to other volumes?", $pa
$all_hds->{lvms} = $other_lvms;
}
}
-sub ModifyRAID {
+sub ModifyRAID {
my ($in, $_hd, $part, $all_hds) = @_;
modifyRAID($in, $all_hds->{raids}, fs::get::device2part($part->{raid}, $all_hds->{raids}));
}
@@ -910,14 +1100,14 @@ sub Loopback {
write_partitions($in, $hd) or return;
- my $handle = any::inspect($real_part) or $in->ask_warn(N("Error"), N("This partition can not be used for loopback")), return;
+ my $handle = any::inspect($real_part) or $in->ask_warn(N("Error"), N("This partition cannot be used for loopback")), return;
my ($min, $max) = (1, fs::loopback::getFree($handle->{dir}, $real_part));
$max = min($max, 1 << (31 - 9)) if $real_part->{fs_type} eq 'vfat'; #- FAT does not handle file size bigger than 2GB
my $part = { maxsize => $max, size => 0, loopback_device => $real_part, notFormatted => 1 };
if (!fsedit::suggest_part($part, $all_hds)) {
$part->{size} = $part->{maxsize};
- fs::type::suggest_fs_type($part, 'ext3');
+ fs::type::suggest_fs_type($part, defaultFS());
}
delete $part->{mntpoint}; # we do not want the suggested mntpoint
@@ -947,7 +1137,7 @@ sub Loopback {
}
sub Options {
- my ($in, $hd, $part, $all_hds) = @_;
+ my ($in, $_hd, $part, $_all_hds) = @_;
my @simple_options = qw(users noauto username= password=);
@@ -963,13 +1153,13 @@ sub Options {
relatime => sub { $options->{noatime} = 0 },
noatime => sub { $options->{relatime} = 0 },
);
-
+
$in->ask_from(N("Mount options"),
'',
- [
+ [
{ label => N("Mount options"), title => 1 },
- (map {
+ (map {
{ label => $_, text => scalar warp_text(formatAlaTeX($help{$_}), 60), val => \$options->{$_}, hidden => scalar(/password/),
advanced => !$part->{rootDevice} && !member($_, @simple_options), if_(!/=$/, type => 'bool'),
if_($callbacks{$_}, changed => $callbacks{$_}),
@@ -981,27 +1171,6 @@ sub Options {
if (($options->{usrquota} || $options->{grpquota}) && !$::isInstall) {
$in->do_pkgs->ensure_binary_is_installed('quota', 'quotacheck');
}
- if ($options->{encrypted}) {
- # modify $part->{options} for the check
- local $part->{options};
- fs::mount_options::pack($part, $options, $unknown);
- if (!check($in, $hd, $part, $all_hds)) {
- $options->{encrypted} = 0;
- } elsif (!$part->{encrypt_key} && !isSwap($part)) {
- if (my ($encrypt_key, $encrypt_algo) = choose_encrypt_key($in, $options, '')) {
- $options->{'encryption='} = $encrypt_algo;
- $part->{encrypt_key} = $encrypt_key;
- } else {
- $options->{encrypted} = 0;
- }
- }
- #- don't be sure of anything
- set_isFormatted($part, 0);
- $part->{notFormatted} = 0;
- } else {
- delete $options->{'encryption='};
- delete $part->{encrypt_key};
- }
}) or return;
fs::mount_options::pack($part, $options, $unknown);
@@ -1009,20 +1178,22 @@ sub Options {
}
-{
- no strict;
- *{'Toggle to normal mode'} = sub() { $::expert = 0 };
- *{'Toggle to expert mode'} = sub() { $::expert = 1 };
+{
+ no strict;
+ *{'Normal mode'} = sub() { $::expert = 0 };
+ *{'Expert mode'} = sub() { $::expert = 1 };
*{'Clear all'} = \&Clear_all;
*{'Auto allocate'} = \&Auto_allocate;
*{'Mount point'} = \&Mount_point;
*{'Modify RAID'} = \&ModifyRAID;
*{'Add to RAID'} = \&Add2RAID;
- *{'Remove from RAID'} = \&RemoveFromRAID;
+ *{'Remove from RAID'} = \&RemoveFromRAID;
+ *{Use} = \&dmcrypt_open;
+ *{'Remove from dm'} = \&RemoveFromDm;
*{'Add to LVM'} = \&Add2LVM;
- *{'Remove from LVM'} = \&RemoveFromLVM;
+ *{'Remove from LVM'} = \&RemoveFromLVM;
*{'Use for loopback'} = \&Loopback;
- *{'Hard drive information'} = \&Hd_info;
+ *{'Hard disk drive information'} = \&Hd_info;
}
@@ -1041,7 +1212,7 @@ sub modifyRAID {
$in->ask_from(N("Options"), '',
[
{ label => N("device"), val => \$new_device, list => [ $md_part->{device}, raid::free_mds($raids) ], sort => 0 },
-{ label => N("level"), val => \$md_part->{level}, list => [ qw(0 1 4 5 6 linear) ] },
+{ label => N("level"), val => \$md_part->{level}, list => [ qw(0 1 4 5 6 10 linear) ] },
{ label => N("chunk size in KiB"), val => \$md_part->{'chunk-size'} },
],
) or return;
@@ -1059,7 +1230,7 @@ sub ask_alldatamaybelost {
#- here we may have a non-formatted or a formatted partition
#- -> doing as if it was formatted
- $in->ask_okcancel(N("Read carefully!"),
+ $in->ask_okcancel(N("Read carefully"),
[ N("Be careful: this operation is dangerous."), sprintf(translate($msg), $part->{device}) ], 1);
}
sub ask_alldatawillbelost {
@@ -1069,13 +1240,14 @@ sub ask_alldatawillbelost {
#- here we may have a non-formatted or a formatted partition
#- -> doing as if it was formatted
- $in->ask_okcancel(N("Read carefully!"), sprintf(translate($msg), $part->{device}), 1);
+ $in->ask_okcancel(N("Read carefully"), sprintf(translate($msg), $part->{device}), 1);
}
sub partitions_suggestions {
- my ($in) = @_;
- my $t = $::expert ?
- $in->ask_from_list_(N("Type"), N("What type of partitioning?"), [ keys %fsedit::suggestions ]) :
+ my ($in, $all_hds, $hd) = @_;
+ fsedit::init_mntpnt_suggestions($all_hds, $hd);
+ my $t = $::expert ?
+ $in->ask_from_list_(N("Partitioning Type"), N("What type of partitioning?"), [ keys %fsedit::suggestions ]) :
'simple';
$fsedit::suggestions{$t};
}
@@ -1088,14 +1260,14 @@ sub check_type {
return;
}
if ($::isStandalone && $type->{fs_type} && fs::format::known_type($type)) {
- fs::format::check_package_is_installed($in->do_pkgs, $type->{fs_type}) or return;
+ fs::format::check_package_is_installed_format($in->do_pkgs, $type->{fs_type}) or return;
}
1;
}
sub check_mntpoint {
my ($in, $mntpoint, $part, $all_hds) = @_;
my $seen;
- eval {
+ eval {
catch_cdie { fsedit::check_mntpoint($mntpoint, $part, $all_hds) }
sub { $seen = 1; $in->ask_okcancel(N("Error"), formatError($@)) };
};
@@ -1113,7 +1285,7 @@ sub check {
sub check_rebootNeeded {
my ($_in, $hd) = @_;
- $hd->{rebootNeeded} and die N("You'll need to reboot before the modification can take place");
+ $hd->{rebootNeeded} and die N("You'll need to reboot before the modification can take effect");
}
sub write_partitions {
@@ -1122,26 +1294,32 @@ sub write_partitions {
$hd->{isDirty} or return 1;
isLVM($hd) and return 1;
- $in->ask_okcancel(N("Read carefully!"), N("Partition table of drive %s is going to be written to disk!", $hd->{device}), 1) or return;
+ $in->ask_okcancel(N("Read carefully"), N("Partition table of drive %s is going to be written to disk", $hd->{device}), 1) or return;
partition_table::write($hd) if !$::testing;
check_rebootNeeded($in, $hd) if !$b_skip_check_rebootNeeded;
- # fix resizing's faillures due to udev's race when writing the partition table
- # (deleting then recreating the nodes leaves a race window...)
- run_program::run('udevsettle');
+ # fix resizing's failures due to udev's race when writing the partition table
+ run_program::run('udevadm', 'settle');
1;
}
sub ensure_we_have_encrypt_key_if_needed {
my ($in, $part) = @_;
- if ($part->{options} =~ /encrypted/ && !$part->{encrypt_key}) {
- my ($options, $unknown) = fs::mount_options::unpack($part);
- $part->{encrypt_key} = choose_encrypt_key($in, $options, 'skip_encrypt_algo') or return;
- fs::mount_options::pack($part, $options, $unknown);
+ if (fs::type::isRawLUKS($part)) {
+ $part->{dmcrypt_key} ||= choose_encrypt_key($in, {}, 'skip_encrypt_algo') or return;
}
1;
}
+sub dmcrypt_format {
+ my ($in, $_hd, $part, $_all_hds) = @_;
+ my $_wait = $in->wait_message(N("Please wait"), N("Formatting partition %s", $part->{device}));
+ require fs::dmcrypt;
+ fs::dmcrypt::format_part($part);
+ # we open it now:
+ &dmcrypt_open;
+}
+
sub format_ {
my ($in, $hd, $part, $all_hds) = @_;
@@ -1149,15 +1327,25 @@ sub format_ {
write_partitions($in, $_) or return foreach isRAID($part) ? @{$all_hds->{hds}} : $hd;
ask_alldatawillbelost($in, $part, N_("After formatting partition %s, all data on this partition will be lost")) or return;
+
+ if (fs::type::isRawLUKS($part)) {
+ return &dmcrypt_format;
+ }
if ($::isStandalone) {
- fs::format::check_package_is_installed($in->do_pkgs, $part->{fs_type}) or return;
+ fs::format::check_package_is_installed_format($in->do_pkgs, $part->{fs_type}) or return;
}
- if ($::expert && !member($part->{fs_type}, 'reiserfs', 'xfs')) {
- $part->{toFormatCheck} = $in->ask_yesorno(N("Confirmation"), N("Check bad blocks?"));
+ _format_raw($in, $part, $all_hds);
+}
+
+sub _format_raw {
+ my ($in, $part, $all_hds, $o_skip) = @_;
+ if ($::expert && isBlockCheckable($part)) {
+ $part->{toFormatCheck} = $in->ask_yesorno(N("Confirmation"), N("Check for bad blocks?"));
}
$part->{isFormatted} = 0; #- force format;
+ # Wait for the newly created device to appear before formatting it
my ($_w, $wait_message) = $in->wait_message_with_progress_bar;
- fs::format::part($all_hds, $part, $wait_message);
+ fs::format::part($all_hds, $part, $wait_message) if !$o_skip;
1;
}
@@ -1172,12 +1360,12 @@ sub need_migration {
(%s)
You can either choose to move the files into the partition that will be mounted there or leave them where they are (which results in hiding them by the contents of the mounted partition)",
- $mntpoint, formatList(5, @l)),
+ $mntpoint, formatList(5, @l)),
[ { val => \$choice, list => \@choices, type => 'list', format => sub { translate($_[0]) } } ]) or return;
$choice eq $choices[0] ? 'migrate' : 'hide';
} else {
'hide';
- }
+ }
}
sub migrate_files {
@@ -1187,11 +1375,11 @@ sub migrate_files {
my $handle = any::inspect($part, '', 'rw');
my @l = glob_("$part->{mntpoint}/*");
foreach (@l) {
- $wait->set(N("Copying %s", $_));
+ $wait->set(N("Copying %s", $_));
system("cp", "-a", $_, $handle->{dir}) == 0 or die "copying failed";
}
foreach (@l) {
- $wait->set(N("Removing %s", $_));
+ $wait->set(N("Removing %s", $_));
system("rm", "-rf", $_) == 0 or die "removing files failed";
}
}
@@ -1203,7 +1391,7 @@ sub warn_if_renumbered {
push @{$hd->{allPartitionsRenumbered}}, @$l;
- my @l = map {
+ my @l = map {
my ($old, $new) = @$_;
N("partition %s is now known as %s", $old, $new) } @$l;
$in->ask_warn(N("Warning"), join("\n", N("Partitions have been renumbered: "), @l));
@@ -1232,34 +1420,36 @@ sub format_part_info {
$info .= N("Mount point: ") . "$part->{mntpoint}\n" if $part->{mntpoint};
$info .= N("Device: ") . "$part->{device}\n" if $part->{device} && !isLoopback($part);
- $info .= N("Volume label: ") . "$part->{device_LABEL}\n" if $part->{device_LABEL} && $::expert;
+ $info .= N("Volume label: ") . "$part->{device_LABEL}\n" if $part->{device_LABEL};
$info .= N("UUID: ") . "$part->{device_UUID}\n" if $::expert && $part->{device_UUID};
$info .= N("DOS drive letter: %s (just a guess)\n", $part->{device_windobe}) if $part->{device_windobe};
- if (arch() eq "ppc") {
- my $pType = $part->{pType};
- $pType =~ s/[^A-Za-z0-9_]//g;
- $info .= N("Type: ") . $pType . ($::expert ? sprintf " (0x%x)", $part->{pt_type} : '') . "\n";
- if (defined $part->{pName}) {
- my $pName = $part->{pName};
- $pName =~ s/[^A-Za-z0-9_]//g;
- $info .= N("Name: ") . $pName . "\n";
- }
- } elsif (isEmpty($part)) {
+ if (isEmpty($part)) {
$info .= N("Empty") . "\n";
} else {
$info .= N("Type: ") . (fs::type::part2type_name($part) || $part->{fs_type}) . ($::expert ? sprintf " (0x%x)", $part->{pt_type} : '') . "\n";
}
$info .= N("Start: sector %s\n", $part->{start}) if $::expert && !isSpecial($part) && !isLVM($hd);
- $info .= N("Size: %s", formatXiB($part->{size}, 512));
- $info .= sprintf " (%s%%)", int 100 * $part->{size} / $hd->{totalsectors} if $hd->{totalsectors};
+ if ($hd->{totalsectors}) {
+ $info .= N("Size: %s (%s%% of disk)", formatXiB($part->{size}, 512), int 100 * $part->{size} / $hd->{totalsectors});
+ } else {
+ $info .= N("Size: %s", formatXiB($part->{size}, 512));
+ }
$info .= N(", %s sectors", $part->{size}) if $::expert;
$info .= "\n";
- $info .= N("Cylinder %d to %d\n", $part->{start} / $hd->cylinder_size, ($part->{start} + $part->{size} - 1) / $hd->cylinder_size) if ($::expert || isEmpty($part)) && !isSpecial($part) && !isLVM($hd);
+ $info .= N("Cylinder %d to %d\n", $part->{start} / $hd->cylinder_size, ($part->{start} + $part->{size} - 1) / $hd->cylinder_size) if ($::expert || isEmpty($part)) && !isSpecial($part) && !isLVM($hd) && $hd->cylinder_size;
$info .= N("Number of logical extents: %d\n", $part->{size} / $hd->cylinder_size) if $::expert && isLVM($hd);
$info .= N("Formatted\n") if $part->{isFormatted};
$info .= N("Not formatted\n") if !$part->{isFormatted} && $part->{notFormatted};
$info .= N("Mounted\n") if $part->{isMounted};
$info .= N("RAID %s\n", $part->{raid}) if isPartOfRAID($part);
+ if (fs::type::isRawLUKS($part) || fs::type::isLUKS($part)) {
+ $info .= N("Encrypted") . "\n";
+ if (fs::type::isRawLUKS($part)) {
+ $info .= ($part->{dm_active} && $part->{dm_name} ? N(" (mapped on %s)", $part->{dm_name}) :
+ $part->{dm_name} ? N(" (to map on %s)", $part->{dm_name}) :
+ N(" (inactive)")) . "\n";
+ }
+ }
if (isPartOfLVM($part)) {
$info .= sprintf "LVM %s\n", $part->{lvm};
$info .= sprintf "Used physical extents %d / %d\n", lvm::pv_physical_extents($part);
@@ -1284,7 +1474,7 @@ sub format_part_info {
$info;
}
-sub format_part_info_short {
+sub format_part_info_short {
my ($hd, $part) = @_;
isEmpty($part) ? N("Free space on %s (%s)", $hd->{device}, formatXiB($part->{size}, 512))
: partition_table::description($part);
@@ -1298,10 +1488,13 @@ sub format_hd_info {
$info .= N("Read-only") . "\n" if $hd->{readonly};
$info .= N("Size: %s\n", formatXiB($hd->{totalsectors}, 512)) if $hd->{totalsectors};
$info .= N("Geometry: %s cylinders, %s heads, %s sectors\n", $hd->{geom}{cylinders}, $hd->{geom}{heads}, $hd->{geom}{sectors}) if $::expert && $hd->{geom};
- $info .= N("Info: ") . ($hd->{info} || $hd->{media_type}) . "\n" if $::expert && ($hd->{info} || $hd->{media_type});
+ $info .= N("Name: ") . $hd->{info} . "\n" if $hd->{info};
+ $info .= N("Medium type: ") . $hd->{media_type} . "\n" if $hd->{media_type} && $::expert;
$info .= N("LVM-disks %s\n", join ", ", map { $_->{device} } @{$hd->{disks}}) if isLVM($hd) && $hd->{disks};
$info .= N("Partition table type: %s\n", $1) if $::expert && ref($hd) =~ /_([^_]+)$/;
$info .= N("on channel %d id %d\n", $hd->{channel}, $hd->{id}) if $::expert && exists $hd->{channel};
+ # restrict the length of the lines
+ $info =~ s/(.{60}).*/$1.../mg;
$info;
}
@@ -1344,15 +1537,15 @@ sub choose_encrypt_key {
$in->ask_from_(
{
- title => N("Filesystem encryption key"),
+ title => N("Filesystem encryption key"),
messages => N("Choose your filesystem encryption key"),
- callbacks => {
+ callbacks => {
complete => sub {
length $encrypt_key < 6 and $in->ask_warn(N("Warning"), N("This encryption key is too simple (must be at least %d characters long)", 6)), return 1,0;
$encrypt_key eq $encrypt_key2 or $in->ask_warn(N("Error"), [ N("The encryption keys do not match"), N("Please try again") ]), return 1,1;
return 0;
} } }, [
-{ label => N("Encryption key"), val => \$encrypt_key, hidden => 1 },
+{ label => N("Encryption key"), val => \$encrypt_key, hidden => 1, focus => sub { 1 } },
{ label => N("Encryption key (again)"), val => \$encrypt_key2, hidden => 1 },
if_(!$skip_encrypt_algo,
{ label => N("Encryption algorithm"), type => 'list', val => \$encrypt_algo, list => \@algorithms },
@@ -1368,7 +1561,7 @@ sub tell_wm_and_reboot() {
if (!$wm) {
system('reboot');
- } else {
+ } else {
any::ask_window_manager_to_logout_then_do($wm, $pid, 'reboot');
}
}
@@ -1380,26 +1573,3 @@ sub update_bootloader_for_renumbered_partitions {
require bootloader;
bootloader::update_for_renumbered_partitions($in, \@renumbering, $all_hds);
}
-
-sub undo_prepare {
- my ($all_hds) = @_;
- require Data::Dumper;
- $Data::Dumper::Purity = 1;
- foreach (@{$all_hds->{hds}}) {
- my @h = @$_{@partition_table::fields2save};
- push @{$_->{undo}}, Data::Dumper->Dump([\@h], ['$h']);
- }
-}
-sub undo {
- my ($all_hds) = @_;
- foreach (@{$all_hds->{hds}}) {
- my $code = pop @{$_->{undo}} or next;
- my $h; eval $code;
- @$_{@partition_table::fields2save} = @$h;
-
- if ($_->{hasBeenDirty}) {
- partition_table::will_tell_kernel($_, 'force_reboot'); #- next action needing write_partitions will force it. We can not do it now since more undo may occur, and we must not needReboot now
- }
- }
-
-}
diff --git a/perl-install/diskdrake/removable.pm b/perl-install/diskdrake/removable.pm
index a4d225475..f3b73ed4b 100644
--- a/perl-install/diskdrake/removable.pm
+++ b/perl-install/diskdrake/removable.pm
@@ -1,4 +1,4 @@
-package diskdrake::removable; # $Id$
+package diskdrake::removable;
use diagnostics;
use strict;
diff --git a/perl-install/diskdrake/resize_ext2.pm b/perl-install/diskdrake/resize_ext2.pm
index 9bf113f90..a09cdb542 100644
--- a/perl-install/diskdrake/resize_ext2.pm
+++ b/perl-install/diskdrake/resize_ext2.pm
@@ -1,4 +1,4 @@
-package diskdrake::resize_ext2; # $Id$
+package diskdrake::resize_ext2;
use diagnostics;
use strict;
diff --git a/perl-install/diskdrake/resize_ntfs.pm b/perl-install/diskdrake/resize_ntfs.pm
index ab99ce627..db591e968 100644
--- a/perl-install/diskdrake/resize_ntfs.pm
+++ b/perl-install/diskdrake/resize_ntfs.pm
@@ -5,7 +5,7 @@ use strict;
use run_program;
use common;
-
+# perl_checker: require interactive
sub new {
my ($type, $_device, $dev) = @_;
@@ -13,16 +13,16 @@ sub new {
}
sub check_prog {
- my ($in) = @_;
- #- ensure_binary_is_installed checks binary chrooted, whereas we run the binary non-chrooted (pb for Mandriva One)
- $::isInstall || whereis_binary('ntfsresize') || $in->do_pkgs->ensure_binary_is_installed('ntfsprogs', 'ntfsresize');
+ my ($in) = @_; # perl_checker: $in = interactive->new
+ #- ensure_binary_is_installed checks binary chrooted, whereas we run the binary non-chrooted (pb for Mageia One)
+ $::isInstall || whereis_binary('ntfsresize') || $in->do_pkgs->ensure_binary_is_installed('ntfs-3g', 'ntfsresize');
}
sub min_size {
my ($o) = @_;
my $r;
run_program::run('ntfsresize', '>', \$r, '-f', '-i', $o->{dev}) or die "ntfsresize failed:\n$r\n";
- $r =~ /minimal size: (\d+) KiB/ && $1 * 2;
+ $r =~ /You might resize at (\d+) bytes or / && $1 / 512;
}
sub resize {
@@ -30,7 +30,7 @@ sub resize {
my @l = ('-ff', '-s' . int($size / 2) . 'ki', $o->{dev});
my $r;
run_program::run('ntfsresize', '>', \$r, '-n', @l) or die "ntfsresize failed: $r\n";
- run_program::run('ntfsresize', '>', \$r, @l) or die "ntfsresize failed: $r\n";
+ run_program::raw({ timeout => 'never' }, 'ntfsresize', '>', \$r, @l) or die "ntfsresize failed: $r\n";
}
1;
diff --git a/perl-install/diskdrake/smbnfs_gtk.pm b/perl-install/diskdrake/smbnfs_gtk.pm
index dcb6e6c40..b2417ce83 100644
--- a/perl-install/diskdrake/smbnfs_gtk.pm
+++ b/perl-install/diskdrake/smbnfs_gtk.pm
@@ -1,4 +1,4 @@
-package diskdrake::smbnfs_gtk; # $Id$
+package diskdrake::smbnfs_gtk;
use diagnostics;
use strict;
@@ -9,8 +9,8 @@ use common;
use interactive;
use fs::remote::smb;
use fs::remote::nfs;
-use mygtk2 qw(gtknew gtkset);
-use ugtk2 qw(:helpers :wrappers :create);
+use mygtk3 qw(gtknew gtkset);
+use ugtk3 qw(:helpers :wrappers :create);
my ($all_hds, $in, $tree_model, $current_entry, $current_leaf, %icons);
@@ -19,7 +19,7 @@ sub main {
my ($kind) = $type eq 'smb' ? smb2kind() : nfs2kind();
$kind->check($in) or return;
- my $w = ugtk2->new(N("Partitioning"), icon => 'banner-part');
+ my $w = ugtk3->new(N("Partitioning"));
add_smbnfs($w->{window}, $kind);
$w->{rwindow}->set_default_size(400, 300) if $w->{rwindow}->can('set_default_size');
@@ -42,7 +42,7 @@ sub try_ {
$in->ask_warn(N("Error"), formatError($err));
}
update($kind);
- Gtk2->main_quit if member($name, 'Cancel', 'Done');
+ Gtk3->main_quit if member($name, 'Cancel', 'Done');
}
sub raw_hd_options {
@@ -87,7 +87,7 @@ sub per_entry_action_box {
: gtknew('Label', text => "");
} group_by2(@l);
- gtkadd($box, gtknew('HBox', children_loose => [ @buttons]));
+ gtkadd($box, gtknew('HBox', children_loose => \@buttons));
}
sub done {
@@ -127,14 +127,14 @@ sub import_tree {
my ($kind, $info_box) = @_;
my (%servers_displayed, %wservers, %wexports);
- $tree_model = Gtk2::TreeStore->new("Gtk2::Gdk::Pixbuf", "Glib::String");
- my $tree = Gtk2::TreeView->new_with_model($tree_model);
+ $tree_model = Gtk3::TreeStore->new("Gtk3::Gdk::Pixbuf", "Glib::String");
+ my $tree = Gtk3::TreeView->new_with_model($tree_model);
$tree->get_selection->set_mode('browse');
- my $col = Gtk2::TreeViewColumn->new;
- $col->pack_start(my $pixrender = Gtk2::CellRendererPixbuf->new, 0);
+ my $col = Gtk3::TreeViewColumn->new;
+ $col->pack_start(my $pixrender = Gtk3::CellRendererPixbuf->new, 0);
$col->add_attribute($pixrender, 'pixbuf', 0);
- $col->pack_start(my $texrender = Gtk2::CellRendererText->new, 1);
+ $col->pack_start(my $texrender = Gtk3::CellRendererText->new, 1);
$col->add_attribute($texrender, 'text', 1);
$tree->append_column($col);
@@ -161,7 +161,7 @@ sub import_tree {
return @l if !$@;
if ($server->{username}) {
- $in->ask_warn('', N("Can not login using username %s (bad password?)", $server->{username}));
+ $in->ask_warn('', N("Cannot login using username %s (bad password?)", $server->{username}));
fs::remote::smb::remove_bad_credentials($server);
} else {
if (my @l = fs::remote::smb::authentications_available($server)) {
@@ -194,7 +194,7 @@ sub import_tree {
my $path = $tree_model->get_path($node);
$tree->expand_row($path, 0);
- foreach ($find_exports->($wservers{$tree_model->get_path_str($node)} || return)) { #- can not die here since insert_node provoque a tree_select_row before the %wservers is filled
+ foreach ($find_exports->($wservers{$tree_model->get_path_str($node)} || return)) { #- cannot die here since insert_node provoque a tree_select_row before the %wservers is filled
my $s = $kind->to_string($_);
my $w = $tree_model->append_set($node, [ 0 => export_icon(find_fstab_entry($kind, $_)),
1 => $s ]);
@@ -208,7 +208,7 @@ sub import_tree {
gtksignal_connect($search,
clicked => sub {
$add_server->($_) foreach sort { $a->{name} cmp $b->{name} } $kind->find_servers;
- gtkset($search, text => N("Search new servers"));
+ gtkset($search, text => N("Search for new servers"));
}));
}
@@ -226,10 +226,10 @@ sub import_tree {
$current_entry = find_fstab_entry($kind, $wexports{$tree_model->get_path_str($curr)} || die(''), 'add');
} else {
if (!$tree_model->iter_has_child($curr)) {
- gtkset_mousecursor_wait($tree->window);
- ugtk2::flush();
+ gtkset_mousecursor_wait($tree->get_window);
+ ugtk3::flush();
$add_exports->($curr);
- gtkset_mousecursor_normal($tree->window);
+ gtkset_mousecursor_normal($tree->get_window);
}
$current_entry = undef;
}
@@ -249,7 +249,7 @@ sub add_smbnfs {
gtknew('VBox', spacing => 7, children => [
1, gtknew('HBox', spacing => 7, children_loose => [
gtkset($kind->{display_box}, width => 200),
- $kind->{info_box}]),
+ $kind->{info_box} ]),
0, $kind->{action_box},
]);
diff --git a/perl-install/do_pkgs.pm b/perl-install/do_pkgs.pm
index 6bed053d8..ba9283000 100644
--- a/perl-install/do_pkgs.pm
+++ b/perl-install/do_pkgs.pm
@@ -1,4 +1,22 @@
-package do_pkgs; # $Id$
+package do_pkgs;
+
+=head1 SYNOPSYS
+
+B<do_pkgs> enables to install packages (through urpmi) from our tools.
+It works both during installer and in standalone tools by using dedicate sub packages (B<do_pkgs_standalone> and B<do_pkgs_during_install>), both relying onrelying on do_pkgs_common.
+
+
+=head1 Functions
+
+=over
+
+=cut
+
+=item do_pkgs($in)
+
+Returns a new B<do_pkgs> object from a L<interactive> object.
+
+=cut
sub do_pkgs {
my ($in) = @_;
@@ -9,17 +27,29 @@ sub do_pkgs {
package do_pkgs_common;
use common;
+=item ensure_is_installed($do, $pkg, $o_file, $b_auto)
+
+Makes sure that the $pkg package is installed.
+If $o_file is provided, the already installed check is I<way> faster.
+If $b_auto is set, (g)urpmi will not ask any questions.
+
+=cut
+
sub ensure_is_installed {
my ($do, $pkg, $o_file, $b_auto) = @_;
- if (! $o_file || ! -e "$::prefix$o_file") {
+ if ($do->is_installed($pkg, $o_file)) {
+ return 1;
+ }
+
$do->in->ask_okcancel(N("Warning"), N("The package %s needs to be installed. Do you want to install it?", $pkg), 1)
or return if !$b_auto && $do->in;
+
if (!$do->install($pkg)) {
$do->in->ask_warn(N("Error"), N("Could not install the %s package!", $pkg)) if $do->in;
return;
}
- }
+
if ($o_file && ! -e "$::prefix$o_file") {
$do->in->ask_warn(N("Error"), N("Mandatory package %s is missing", $pkg)) if $do->in;
return;
@@ -27,6 +57,15 @@ sub ensure_is_installed {
1;
}
+=item ensure_are_installed($do, $pkgs, $b_auto)
+
+Makes sure that the packages listed in $pkgs array ref are installed.
+If $b_auto is set, (g)urpmi will not ask any questions.
+
+It's quite costly, so it's better to use the B<ensure_files_are_installed> instead.
+
+=cut
+
sub ensure_are_installed {
my ($do, $pkgs, $b_auto) = @_;
@@ -46,6 +85,14 @@ sub ensure_are_installed {
1;
}
+=item ensure_binary_is_installed($do, $pkg, $binary, $b_auto)
+
+Makes sure that the $pkg package is installed.
+$binary is looked for in $PATH. If not found, the package is installed.
+If $b_auto is set, (g)urpmi will not ask any questions.
+
+=cut
+
sub ensure_binary_is_installed {
my ($do, $pkg, $binary, $b_auto) = @_;
@@ -64,6 +111,49 @@ sub ensure_binary_is_installed {
1;
}
+sub _find_file {
+ my ($file) = @_;
+ if ($file =~ m!/!) {
+ -e "$::prefix$file";
+ } else {
+ # assume it's a binary to search in $PATH:
+ whereis_binary($file, $::prefix);
+ }
+}
+
+=item ensure_files_are_installed($do, $pkgs, $b_auto)
+
+Takes a list of [ "package", "file" ] and installs package if file is not there.
+If $b_auto is set, (g)urpmi will not ask any questions.
+
+=cut
+
+sub ensure_files_are_installed {
+ my ($do, $pkgs, $b_auto) = @_;
+
+ my @not_installed = map { my ($package, $file) = @$_; if_(!_find_file($file), $package) } @$pkgs;
+ return 1 if !@not_installed;
+
+ $do->in->ask_okcancel(N("Warning"), N("The following packages need to be installed:\n") . join(', ', @not_installed), 1)
+ or return if !$b_auto && $do->in;
+
+ if (!$do->install(@not_installed)) {
+ if ($do->in) {
+ $do->in->ask_warn(N("Error"), N("Could not install the %s package!", $not_installed[0]));
+ } else {
+ log::l("Could not install packages: " . join(' ', @not_installed));
+ }
+ return;
+ }
+ 1;
+}
+
+=item ensure_is_installed_if_available($do, $pkg, $file) = @_;
+
+Install $pkg if $file is not present and if $pkg is actually known to urpmi.
+
+=cut
+
sub ensure_is_installed_if_available {
my ($do, $pkg, $file) = @_;
if (-e "$::prefix$file" || $::testing) {
@@ -73,29 +163,59 @@ sub ensure_is_installed_if_available {
}
}
+=item is_available($do, $name)
+
+=item are_available($do, @names)
+
+Returns name(s) of package(s) that are available (aka known to urpmi).
+This is somewhat costly (needs to parse urpmi synthesis...)
+
+=cut
+
sub is_available {
my ($do, $name) = @_;
$do->are_available($name);
}
+=item is_installed($do, $name)
+
+=item are_installed($do, @names)
+
+Returns name(s) of package(s) that are already installed on the system.
+This is less costly (needs to query RPM DB)
+
+=cut
+
sub is_installed {
- my ($do, $name) = @_;
- $do->are_installed($name);
+ my ($do, $name, $o_file) = @_;
+ $o_file ? -e "$::prefix$o_file" : $do->are_installed($name);
}
-#- takes something like "ati-kernel"
-#- returns:
-#- - the various ati-kernel-2.6.XX-XXmdk available for the installed kernels
-#- - dkms-ati if available
+=item check_kernel_module_packages($do, $base_name)
+
+Takes something like C<ati-kernel> and returns:
+
+=over 4
+
+=item * the various C<ati-kernel-3.Y.XX-ZZmga> available for the installed kernels
+
+=item * C<dkms-ati> if available
+
+=back
+
+=cut
+
sub check_kernel_module_packages {
my ($do, $base_name) = @_;
require bootloader;
- my @rpms = (
+ my @test_rpms = (
'dkms-' . $base_name,
map { $base_name . '-kernel-' . bootloader::vmlinuz2version($_) } bootloader::installed_vmlinuz()
);
- @rpms = $do->are_available(@rpms) or return;
+ my @rpms = $do->are_available(@test_rpms);
+ @rpms = $do->are_installed(@test_rpms) if !@rpms;
+ @rpms or return;
log::l("those kernel module packages can be installed: " . join(' ', @rpms));
@@ -109,6 +229,12 @@ use common;
our @ISA = qw(do_pkgs_common);
+=item new($type, $in)
+
+Returns a C<do_pkg> object.
+
+=cut
+
sub new {
my ($type, $in) = @_;
@@ -183,6 +309,7 @@ package do_pkgs_standalone;
use run_program;
use common;
use log;
+use feature qw(state);
our @ISA = qw(do_pkgs_common);
@@ -206,12 +333,18 @@ sub install {
return 1;
}
- my $_wait = $do->in && $do->in->wait_message(N("Please wait"), N("Installing packages..."));
- $do->in->suspend if $do->in;
- log::explanations("installing packages @l");
- #- --expect-install added in urpmi 4.6.11
- my $ret = system('urpmi', '--allow-medium-change', '--auto', '--no-verify-rpm', '--gui', '--expect-install', @l) == 0;
- $do->in->resume if $do->in;
+ my @wrapper = $::isLiveInstall && $::prefix ? ('chroot', $::prefix) : ();
+ my @options = ('--allow-medium-change', '--auto', '--no-verify-rpm', '--expect-install', @l);
+ my $ret;
+ if (check_for_xserver() && -x '/usr/bin/gurpmi') {
+ $ret = system(@wrapper, 'gurpmi', @options) == 0;
+ } else {
+ my $_wait = $do->in && $do->in->wait_message(N("Please wait"), N("Installing packages..."));
+ $do->in->suspend if $do->in;
+ log::explanations("installing packages @l");
+ $ret = system(@wrapper, 'urpmi', @options) == 0;
+ $do->in->resume if $do->in;
+ }
$ret;
}
@@ -219,14 +352,17 @@ sub are_available {
my ($_do, @pkgs) = @_;
my %pkgs = map { $_ => 1 } @pkgs;
+ require urpm::media;
+ state $urpm;
eval {
- require urpm::media;
- my $urpm = urpm->new;
- $urpm->{log} = \&log::l;
- urpm::media::configure($urpm,
- nocheck_access => 1,
- no_skiplist => 1,
- no_second_pass => 1);
+ if (!$urpm) {
+ $urpm = urpm->new;
+ $urpm->{log} = \&log::l;
+ urpm::media::configure($urpm,
+ nocheck_access => 1,
+ no_skiplist => 1,
+ no_second_pass => 1);
+ }
map { $_->name } grep { $pkgs{$_->name} } @{$urpm->{depslist} || []};
};
}
@@ -241,8 +377,10 @@ sub are_installed {
@l or return;
my @l2;
- run_program::run('/bin/rpm', '>', \@l2, '-q', '--qf', "%{name}\n", @l); #- do not care about the return value
- intersection(\@l, [ chomp_(@l2) ]); #- can not return directly @l2 since it contains things like "package xxx is not installed"
+ my $query_all = (any { /\*/ } @l) ? 'a' : '';
+ my $rooted = $::isLiveInstall && $::prefix ? { root => $::prefix } : {};
+ run_program::raw($rooted, '/bin/rpm', '>', \@l2, '-q' . $query_all, '--qf', "%{name}\n", @l); #- do not care about the return value
+ $query_all ? chomp_(@l2) : intersection(\@l, [ chomp_(@l2) ]); #- cannot return directly @l2 since it contains things like "package xxx is not installed"
}
sub remove {
@@ -250,7 +388,8 @@ sub remove {
my $_wait = $do->in && $do->in->wait_message(N("Please wait"), N("Removing packages..."));
$do->in->suspend if $do->in;
log::explanations("removing packages @l");
- my $ret = system('rpm', '-e', @l) == 0;
+ my @wrapper = $::isLiveInstall && $::prefix ? ('chroot', $::prefix) : ();
+ my $ret = system(@wrapper, 'rpm', '-e', @l) == 0;
$do->in->resume if $do->in;
$ret;
}
@@ -259,3 +398,7 @@ sub remove_nodeps {
my ($do, @l) = @_;
remove($do, '--nodeps', @l) == 0;
}
+
+=back
+
+=cut
diff --git a/perl-install/drakbug.pm b/perl-install/drakbug.pm
new file mode 100644
index 000000000..ded09d5d2
--- /dev/null
+++ b/perl-install/drakbug.pm
@@ -0,0 +1,45 @@
+package drakbug;
+
+use c;
+use strict;
+use common qw(backtrace if_);
+
+
+sub bug_handler {
+ my ($error, $is_signal) = @_;
+
+ # exceptions in eval are OK:
+ return if $error && $^S ne '0' && !$is_signal;
+
+ # exceptions with "\n" are normal ways to quit:
+ if (!$is_signal && eval { $error eq MDK::Common::String::formatError($error) }) {
+ warn $error;
+ exit(255);
+ }
+
+ # we want the full backtrace:
+ if ($is_signal) {
+ my $ctrace = c::C_backtrace();
+ $ctrace =~ s/0:.*(\d+:[^:]*Perl_sighandler)/$1/sig;
+ $error .= "\nGlibc's trace:\n$ctrace\n";
+ }
+ $error .= "Perl's trace:\n" . common::backtrace() if $error;
+
+ my $progname = $0;
+
+ # do not loop if drakbug crashes and do not complain about wizcancel:
+ if ($progname =~ /drakbug/ || $error =~ /wizcancel/ || !-x '/usr/bin/drakbug') {
+ warn $error;
+ exit(1);
+ }
+ $progname =~ s|.*/||;
+ exec('drakbug', if_($error, '--error', $error), '--incident', $progname);
+ c::_exit(1);
+}
+
+if (!$ENV{DISABLE_DRAKBUG}) {
+ $SIG{SEGV} = sub { bug_handler(@_, 1) };
+ $SIG{__DIE__} = \&bug_handler;
+}
+
+1;
diff --git a/perl-install/fs.pm b/perl-install/fs.pm
index e672d2c98..76cce10e7 100644
--- a/perl-install/fs.pm
+++ b/perl-install/fs.pm
@@ -1,4 +1,4 @@
-package fs; # $Id$
+package fs;
use diagnostics;
use strict;
@@ -49,32 +49,12 @@ sub read_fstab {
$options = 'defaults' if $options eq 'rw'; # clean-up for mtab read
- if ($fs_type eq 'supermount') {
- log::l("dropping supermount");
- $options = join(",", grep {
- if (/fs=(.*)/) {
- $fs_type = $1;
-
- #- with supermount, the type could be something like ext2:vfat
- #- but this can not be done without supermount, so switching to "auto"
- $fs_type = 'auto' if $fs_type =~ /:/;
-
- 0;
- } elsif (/dev=(.*)/) {
- $dev = $1;
- 0;
- } elsif ($_ eq '--') {
- 0;
- } else {
- 1;
- }
- } split(',', $options));
- } elsif ($fs_type eq 'smb') {
- # prefering type "smbfs" over "smb"
- $fs_type = 'smbfs';
- }
s/\\040/ /g foreach $mntpoint, $dev, $options;
+ if ($fs_type eq 'ext4') {
+ $options = join(",", grep { !/extents/ } split(',', $options)) || 'defaults';
+ }
+
my $h = {
mntpoint => $mntpoint, fs_type => $fs_type,
options => $options, comment => $comment,
@@ -102,6 +82,13 @@ sub read_fstab {
$options->{"$_="} = $credentials->{$_} foreach qw(username password domain);
fs::mount_options::pack($h, $options, $unknown);
}
+ } elsif ($h->{fs_type} eq 'davfs2' && !member('verbatim_credentials', @reading_options)) {
+ require fs::remote::davfs;
+ if (my $credentials = fs::remote::davfs::read_credentials($h->{mntpoint})) {
+ my ($options, $unknown) = fs::mount_options::unpack($h);
+ $options->{"$_="} = $credentials->{$_} foreach qw(username password);
+ fs::mount_options::pack($h, $options, $unknown);
+ }
}
$h;
@@ -121,7 +108,7 @@ sub merge_fstabs {
if (!$loose) {
$p->{fs_type} = $p2->{fs_type} if $p2->{fs_type};
$p->{options} = $p2->{options} if $p2->{options};
- add2hash($p, $p2);
+ add2hash_($p, $p2);
} else {
$p->{isMounted} ||= $p2->{isMounted};
$p->{real_mntpoint} ||= $p2->{real_mntpoint};
@@ -143,7 +130,7 @@ sub add2all_hds {
foreach (@l) {
my $s =
$_->{fs_type} eq 'nfs' ? 'nfss' :
- $_->{fs_type} eq 'smbfs' ? 'smbs' :
+ $_->{fs_type} eq 'cifs' ? 'smbs' :
$_->{fs_type} eq 'davfs2' ? 'davs' :
isTrueLocalFS($_) || isSwap($_) || isOtherAvailableFS($_) ? '' :
'special';
@@ -157,7 +144,7 @@ sub get_major_minor {
eval {
my (undef, $major, $minor) = devices::entry($_->{device});
($_->{major}, $_->{minor}) = ($major, $minor);
- } if !$_->{major};
+ };
}
}
@@ -190,7 +177,7 @@ sub merge_info_from_fstab {
my @l = grep {
if ($uniq) {
my $part = fs::get::mntpoint2part($_->{mntpoint}, $fstab);
- !$part || fs::get::is_same_hd($part, $_); #- keep it only if it is the mountpoint AND the same device
+ !$part || fs::get::is_same_hd($part, $_); #- keep it only if it is the mount point AND the same device
} else {
1;
}
@@ -206,11 +193,11 @@ sub get_info_from_fstab {
}
sub prepare_write_fstab {
- my ($fstab, $o_prefix, $b_keep_smb_credentials) = @_;
+ my ($fstab, $o_prefix, $b_keep_credentials) = @_;
$o_prefix ||= '';
my %new;
- my @smb_credentials;
+ my (@smb_credentials, @davfs_credentials);
my @l = map {
my $device =
isLoopback($_) ?
@@ -222,13 +209,16 @@ sub prepare_write_fstab {
$comment ||= "# Entry for /dev/$_->{device} :\n" if $device =~ /^(UUID|LABEL)=/;
my $real_mntpoint = $_->{mntpoint} || ${{ '/tmp/hdimage' => '/mnt/hd' }}{$_->{real_mntpoint}};
- mkdir_p("$o_prefix$real_mntpoint") if $real_mntpoint =~ m|^/|;
+ if (!member('bind', split(',', $_->{options}))) {
+ mkdir_p("$o_prefix$real_mntpoint") if $real_mntpoint =~ m|^/|;
+ }
my $mntpoint = fs::type::carry_root_loopback($_) ? '/initrd/loopfs' : $real_mntpoint;
+ my $needed_to_boot = member($_->{mntpoint}, fs::type::directories_needed_to_boot());
my ($freq, $passno) =
exists $_->{freq} ?
($_->{freq}, $_->{passno}) :
- isTrueLocalFS($_) && $_->{options} !~ /encryption=/ && (!$_->{is_removable} || member($_->{mntpoint}, fs::type::directories_needed_to_boot())) ?
+ isTrueLocalFS($_) && !$_->{dmcrypt_name} && $_->{options} !~ /encryption=/ && (!$_->{is_removable} || $needed_to_boot) ?
(1, $_->{mntpoint} eq '/' ? 1 : fs::type::carry_root_loopback($_) ? 0 : 2) :
(0, 0);
@@ -238,13 +228,22 @@ sub prepare_write_fstab {
$new{$mntpoint} = 1;
my $options = $_->{options} || 'defaults';
+ if (($_->{is_removable} || member($_->{fs_type}, qw(ntfs ntfs-3g))) && !$needed_to_boot && $_->{options} !~ /nofail/) {
+ $options .= ',nofail';
+ }
- if ($_->{fs_type} eq 'smbfs' && $options =~ /password=/ && !$b_keep_smb_credentials) {
+ if ($_->{fs_type} eq 'cifs' && $options =~ /password=/ && !$b_keep_credentials) {
require fs::remote::smb;
if (my ($opts, $smb_credentials) = fs::remote::smb::fstab_entry_to_credentials($_)) {
$options = $opts;
push @smb_credentials, $smb_credentials;
}
+ } elsif ($_->{fs_type} eq 'davfs2' && !$b_keep_credentials) {
+ require fs::remote::davfs;
+ if (my ($opts, $davfs_credentials) = fs::remote::davfs::fstab_entry_to_credentials($_)) {
+ $options = $opts || 'defaults';
+ push @davfs_credentials, $davfs_credentials;
+ }
}
my $fs_type = $_->{fs_type} || 'auto';
@@ -276,13 +275,13 @@ sub prepare_write_fstab {
}
@l = sort_it(@l);
- join('', map { $_->[2] } @l), \@smb_credentials;
+ join('', map { $_->[2] } @l), \@smb_credentials, \@davfs_credentials;
}
sub fstab_to_string {
my ($all_hds, $o_prefix) = @_;
my $fstab = [ fs::get::really_all_fstab($all_hds), @{$all_hds->{special}} ];
- my ($s, undef) = prepare_write_fstab($fstab, $o_prefix, 'keep_smb_credentials');
+ my ($s, undef) = prepare_write_fstab($fstab, $o_prefix, 'keep_credentials');
$s;
}
@@ -290,9 +289,13 @@ sub write_fstab {
my ($all_hds, $o_prefix) = @_;
log::l("writing $o_prefix/etc/fstab");
my $fstab = [ fs::get::really_all_fstab($all_hds), @{$all_hds->{special}} ];
- my ($s, $smb_credentials) = prepare_write_fstab($fstab, $o_prefix, '');
+ my ($s, $smb_credentials, $davfs_credentials) = prepare_write_fstab($fstab, $o_prefix, '');
+ renamef("$o_prefix/etc/fstab", "$o_prefix/etc/fstab.old");
output("$o_prefix/etc/fstab", $s);
+ require fs::remote::davfs;
fs::remote::smb::save_credentials($_) foreach @$smb_credentials;
+ fs::remote::davfs::save_credentials($davfs_credentials);
+ fs::dmcrypt::save_crypttab($all_hds) if @{$all_hds->{dmcrypts}};
}
sub set_removable_mntpoints {
@@ -301,7 +304,7 @@ sub set_removable_mntpoints {
my %names;
foreach (@{$all_hds->{raw_hds}}) {
my $name = detect_devices::suggest_mount_point($_) or next;
- $name eq 'zip' and next;
+ member($name, qw(zip cdrom)) and next;
my $s = ++$names{$name};
$_->{mntpoint} ||= "/media/$name" . ($s == 1 ? '' : $s);
@@ -318,7 +321,7 @@ sub get_raw_hds {
my @fstab = read_fstab($prefix, '/etc/fstab', 'keep_default');
$all_hds->{nfss} = [ grep { $_->{fs_type} eq 'nfs' } @fstab ];
- $all_hds->{smbs} = [ grep { $_->{fs_type} eq 'smbfs' } @fstab ];
+ $all_hds->{smbs} = [ grep { $_->{fs_type} eq 'cifs' } @fstab ];
$all_hds->{davs} = [ grep { $_->{fs_type} eq 'davfs2' } @fstab ];
$all_hds->{special} = [
(grep { $_->{fs_type} eq 'tmpfs' } @fstab),
diff --git a/perl-install/fs/any.pm b/perl-install/fs/any.pm
index 03abd0573..ce4de2ca3 100644
--- a/perl-install/fs/any.pm
+++ b/perl-install/fs/any.pm
@@ -1,11 +1,15 @@
-package fs::any; # $Id$
+package fs::any;
use diagnostics;
use strict;
+use c;
use common;
use fsedit;
+use fs::get;
use fs::mount_point;
+use fs::type;
+use run_program;
sub get_hds {
my ($all_hds, $fstab, $manual_fstab, $partitioning_flags, $skip_mtab, $o_in) = @_;
@@ -50,17 +54,123 @@ sub write_hds {
@$fstab = fs::get::fstab($all_hds);
}
+sub set_cdrom_symlink {
+ my ($raw_hds) = @_;
+
+ foreach (grep { $_->{media_type} eq 'cdrom' } @$raw_hds) {
+ next if $_->{device_alias};
+ my $alias = basename($_->{mntpoint}) or next;
+ log::l("using alias $alias for $_->{device}");
+ $_->{device_alias} = $alias;
+ symlink($_->{device}, "/dev/$alias");
+ }
+}
+
sub check_hds_boot_and_root {
- my ($all_hds, $fstab) = @_;
+ my ($all_hds, $fstab, $isUpgrade, $o_match_all_hardware) = @_;
fs::get::root_($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);
+ return if $o_match_all_hardware || $::local_install;
+
+ if (is_uefi()) {
+ if (!fs::get::has_mntpoint("/boot/EFI", $all_hds)) {
+ die N("You must have a ESP FAT32 partition mounted in /boot/EFI");
+ }
+ } else {
+ # if we are doing an upgrade, the user may still be using a legacy bootloader
+ return if $isUpgrade;
+ if (is_boot_bios_part_needed($all_hds)) {
+ die N("You must have a BIOS boot partition for non-UEFI GPT-partitioned disks. Please create one before continuing.");
+ }
}
+}
+
+sub create_minimal_files() {
+ mkdir "$::prefix/$_", 0755 foreach
+ qw(dev etc etc/profile.d etc/rpm etc/sysconfig etc/sysconfig/console
+ etc/sysconfig/network-scripts etc/sysconfig/console/consolefonts
+ etc/sysconfig/console/consoletrans
+ home mnt run tmp var var/tmp var/lib var/lib/rpm var/lib/urpmi);
+ mkdir "$::prefix/$_", 0700 foreach qw(root root/tmp root/drakx);
+}
+
+sub prepare_minimal_root() {
+
+ create_minimal_files();
+
+ # ensure we've all needed devices, for bootloader install and mkinitrd:
+ run_program::run('mount', '--bind', '/dev', "$::prefix/dev");
+ run_program::run('mount', '--bind', '/run', "$::prefix/run");
+ eval { fs::mount::mount('none', "$::prefix/proc", 'proc') };
+ eval { fs::mount::mount('none', "$::prefix/sys", 'sysfs') };
+ eval { fs::mount::sys_kernel_debug($::prefix) };
+}
+
+sub getNeededMinSpace {
+ my ($n) = @_;
+
+ #- make sure of this place to be available for installation, this could help a lot.
+ #- currently doing a very small install use 36Mb of postinstall-rpm, but installing
+ #- these packages may eat up to 90Mb (of course not all the server may be installed!).
+ #- 65mb may be a good choice to avoid almost all problem of insuficient space left...
+ my $minAvailableSize = 65 * sqr(1024);
+
+ max(0.1 * $n, $minAvailableSize);
+}
- if (arch() =~ /ia64/ && !fs::get::has_mntpoint("/boot/efi", $all_hds)) {
- die N("You must have a FAT partition mounted in /boot/efi");
+sub getAvailableSpace {
+ my ($fstab, $o_skip_mounted, $o_skip_min_space) = @_;
+
+ my $n = !$::testing && !$o_skip_mounted && getAvailableSpace_mounted($::prefix) ||
+ getAvailableSpace_raw($fstab) * 512 / 1.07;
+ $o_skip_min_space ? $n : $n - getNeededMinSpace($n);
+}
+
+sub getAvailableSpace_mounted {
+ my ($prefix) = @_;
+ my $dir = -d "$prefix/usr" ? "$prefix/usr" : $prefix;
+ my (undef, $free) = MDK::Common::System::df($dir) or return;
+ log::l("getAvailableSpace_mounted $free KB");
+ $free * 1024 || 1;
+}
+sub getAvailableSpace_raw {
+ my ($fstab) = @_;
+
+ do { $_->{mntpoint} eq '/usr' and return $_->{size} } foreach @$fstab;
+ do { $_->{mntpoint} eq '/' and return $_->{size} } foreach @$fstab;
+
+ if ($::testing) {
+ my $nb = 450;
+ log::l("taking ${nb}MB for testing");
+ return MB($nb);
+ }
+ die "missing root partition";
+}
+
+=head3 is_boot_bios_part_needed($all_hds)
+
+Returns whether a Boot BIOS Partition is needed
+
+Returns true if all of the following are true:
+ - legacy boot (not UEFI)
+ - all disks are (or will be) GPT
+ - no disks have a BIOS boot partition
+
+=cut
+
+sub is_boot_bios_part_needed {
+ my ($all_hds) = @_;
+ # never needed for UEFI boot
+ return if is_uefi();
+ # do we already have one?
+ my @parts = map { partition_table::get_normal_parts($_) } fs::get::hds($all_hds);
+ return if any { isBIOS_GRUB($_) } @parts;
+ # do we have any non-GPT disks?
+ foreach my $hd (@{$all_hds->{hds}}) {
+ my $type = $hd->{pt_table_type} || partition_table::default_type($hd);
+ return if $type ne 'gpt';
}
+ 1;
}
1;
diff --git a/perl-install/fs/dmcrypt.pm b/perl-install/fs/dmcrypt.pm
new file mode 100644
index 000000000..a78a495d1
--- /dev/null
+++ b/perl-install/fs/dmcrypt.pm
@@ -0,0 +1,216 @@
+package fs::dmcrypt;
+
+use diagnostics;
+use strict;
+
+#-######################################################################################
+#- misc imports
+#-######################################################################################
+use common;
+use fs::type;
+use fs::get;
+use run_program;
+
+=head1 SYNOPSYS
+
+Manage encrypted file systems using cryptsetup
+
+=head1 Functions
+
+=over
+
+=cut
+
+sub _crypttab() { "$::prefix/etc/crypttab" }
+
+=item init()
+
+Load kernel modules and init device mapper.
+
+=cut
+
+sub init() {
+ whereis_binary('cryptsetup') or die "cryptsetup not installed";
+
+ eval { modules::load('dm-crypt', list_modules::category2modules('various/crypto')) };
+ devices::init_device_mapper();
+ 1;
+}
+my $initialized;
+sub _ensure_initialized() {
+ $initialized++ or init();
+}
+
+sub read_crypttab_ {
+ my ($all_hds, $crypttab) = @_;
+
+ -e $crypttab or return;
+
+ my @raw_parts = grep { fs::type::isRawLUKS($_) } fs::get::really_all_fstab($all_hds);
+
+ foreach (cat_($crypttab)) {
+ next if /^#/;
+ my ($dm_name, $dev) = split;
+
+ my $raw_part = fs::get::device2part($dev, \@raw_parts)
+ or log::l("crypttab: unknown device $dev for $dm_name"), next;
+
+ $raw_part->{dm_name} = $dm_name;
+ _get_existing_one_with_state($raw_part);
+ }
+}
+
+=item read_crypttab($all_hds)
+
+Read /etc/crypttab
+
+=cut
+
+sub read_crypttab {
+ my ($all_hds) = @_;
+ read_crypttab_($all_hds, _crypttab());
+}
+
+sub save_crypttab_ {
+ my ($all_hds, $crypttab) = @_;
+
+ my @raw_parts = grep { $_->{dm_name} } fs::get::really_all_fstab($all_hds) or return;
+
+ my %names = map { $_->{dm_name} => fs::wild_device::from_part('', $_) } @raw_parts;
+
+ substInFile {
+ my ($name, $_dev) = split;
+ if (my $new_dev = delete $names{$name}) {
+ $_ = "$name $new_dev\n";
+ }
+ if (eof) {
+ $_ .= join('', map { "$_ $names{$_}\n" } sort keys %names);
+ }
+ } $crypttab;
+}
+
+=item save_crypttab($all_hds)
+
+Save /etc/crypttab
+
+=cut
+
+sub save_crypttab {
+ my ($all_hds) = @_;
+ save_crypttab_($all_hds, _crypttab());
+}
+
+sub format_part {
+ my ($part) = @_;
+
+ my $tmp_key_file = "/tmp/.dmcrypt_key-$$";
+ common::with_private_tmp_file($tmp_key_file, $part->{dmcrypt_key}, sub {
+ _run_or_die('--cipher=aes-xts-benbi', '--key-size=512', 'luksFormat', '--batch-mode', devices::make($part->{device}), $_[0]);
+ });
+ fs::format::after_formatting($part);
+}
+
+sub open_part {
+ my ($dmcrypts, $part) = @_;
+
+ my $tmp_key_file = "/tmp/.dmcrypt_key-$$";
+ common::with_private_tmp_file($tmp_key_file, $part->{dmcrypt_key}, sub {
+ _run_or_die('luksOpen', devices::make($part->{device}),
+ $part->{dm_name}, '--key-file', $_[0]);
+ });
+ run_program::run('udevadm', 'settle');
+
+ push @$dmcrypts, _get_existing_one_with_state($part);
+}
+
+
+sub _get_existing_one_with_state {
+ my ($part) = @_;
+ my $active_dmcrypt = _parse_dmsetup_table($part->{dm_name},
+ run_program::get_stdout('dmsetup', 'table', $part->{dm_name}));
+ _get_existing_one([$part], $active_dmcrypt);
+}
+
+sub close_part {
+ my ($dmcrypts, $part) = @_;
+ my $dm_part = fs::get::device2part("mapper/$part->{dm_name}", $dmcrypts);
+ _run_or_die('luksClose', devices::make($dm_part->{device}));
+ $part->{dm_active} = 0;
+ @$dmcrypts = grep { $_ != $dm_part } @$dmcrypts;
+ # remove partition from /etc/crypttab when deleted (mga#25891)
+ substInFile {
+ my ($name, $_dev) = split;
+ undef $_ if $name eq $part->{dm_name};
+ } _crypttab();
+}
+
+sub _run_or_die {
+ my ($command, @para) = @_;
+
+ _ensure_initialized();
+
+ run_program::run_or_die('cryptsetup', $command, @para);
+}
+
+sub get_existing {
+ my $fstab = \@_;
+ map { _get_existing_one($fstab, $_) } active_dmcrypts();
+}
+
+sub _get_existing_one {
+ my ($fstab, $active_dmcrypt) = @_;
+
+ my $p = fs::wild_device::to_subpart("/dev/mapper/$active_dmcrypt->{name}");
+
+ my $part = { device => "mapper/$active_dmcrypt->{name}", size => $active_dmcrypt->{size},
+ options => 'noatime', dmcrypt_name => $active_dmcrypt->{name},
+ major => $p->{major}, minor => $p->{minor} };
+
+ if (my $raw_part = find { fs::get::is_same_hd($active_dmcrypt, $_) } @$fstab) {
+ $part->{rootDevice} = $raw_part->{device};
+ $raw_part->{dm_name} = $active_dmcrypt->{name};
+ $raw_part->{dm_active} = 1;
+ } else {
+ log::l("could not find the device $active_dmcrypt->{major}:$active_dmcrypt->{minor} for $part->{device}");
+ }
+
+ if (my $type = fs::type::type_subpart_from_magic($part)) {
+ put_in_hash($part, $type);
+ }
+ fs::type::set_isFormatted($part, to_bool($part->{fs_type}));
+
+ unless (fs::type::cannotBeMountable($part)) {
+ $part->{fs_type} or fs::type::set_fs_type($part, defaultFS());
+ }
+
+ log::l("dmcrypt: found $part->{device} type $part->{fs_type} with rootDevice $part->{rootDevice}");
+
+ $part;
+}
+
+sub active_dmcrypts() {
+ grep { $_->{type} eq 'crypt' } active_dm();
+}
+
+sub _parse_dmsetup_table {
+ my ($name, $s) = @_;
+
+ my @l = split(' ', $s);
+ my ($major, $minor) = split(':', $l[6]);
+ { name => $name, size => $l[1], type => $l[2], major => $major, minor => $minor };
+}
+
+sub active_dm() {
+ run_program::run('udevadm', 'settle');
+
+ map {
+ my $name = s/(.*?):\s*// && $1;
+ _parse_dmsetup_table($name, $_);
+ } run_program::get_stdout('dmsetup', 'table');
+}
+
+=back
+
+=cut
+
+1;
diff --git a/perl-install/fs/dmraid.pm b/perl-install/fs/dmraid.pm
index 9520837b1..7a279abc7 100644
--- a/perl-install/fs/dmraid.pm
+++ b/perl-install/fs/dmraid.pm
@@ -1,4 +1,4 @@
-package fs::dmraid; # $Id$
+package fs::dmraid;
use diagnostics;
use strict;
@@ -14,23 +14,54 @@ use fs::wild_device;
use run_program;
+=head1 SYNOPSYS
+
+Manage fake RAIDs using dmraid
+
+=head1 Functions
+
+=over
+
+=item init()
+
+Load kernel modules, init device mapper then scan for fake RAIDs.
+
+=cut
+
sub init() {
whereis_binary('dmraid') or die "dmraid not installed";
eval { modules::load('dm-mirror', 'dm-zero') };
devices::init_device_mapper();
if ($::isInstall) {
- call_dmraid('-ay');
+ foreach my $name (call_dmraid('-s', '-c', '-i')) {
+ chomp($name);
+ log::l("got: $name");
+ call_dmraid('-ay', '-i', '--rm_partitions', '-p', $name);
+ run_program::run('/sbin/kpartx', '-u', '-a', '/dev/mapper/' . $name);
+ }
}
1;
}
-#- call_dmraid is overloaded when debugging, see the end of this file
+=item call_dmraid($option, @args)
+
+Runs dmraid with $option & @args.
+It is overloaded when debugging, see the end of this file.
+
+=cut
+
sub call_dmraid {
my ($option, @args) = @_;
run_program::get_stdout('dmraid', $option, @args);
}
+=item check($in)
+
+Ensures dmraid is installed. If yes, calls init().
+
+=cut
+
sub check {
my ($in) = @_;
@@ -39,13 +70,36 @@ sub check {
1;
}
+=item _raid_devices_raw()
+
+Get the real VG names, needed for ddf1, and safer than begins_with for raid10
+
+=cut
+
sub _raid_devices_raw() {
+ log::l("_raid_devices_raw");
+ my %vgs;
+ my %pv2vg = map {
+ chomp();
+ log::l("got: $_");
+ my %l; @l{qw(name size stride level status subsets devs spares)} = split(':');
+ $vgs{$l{name}} = 1 if defined $l{spares};
+ if (/freeing device "(.*)", path "(.*)"/ && defined $vgs{$1}) {
+ log::l("$2 => $1");
+ $2 => $1;
+ }
+ } call_dmraid(qw(-d -s -c -c));
+
map {
chomp;
log::l("got: $_");
my %l; @l{qw(pv format vg level status size)} = split(':');
+ if (defined $l{size} && defined $l{vg} && defined $pv2vg{$l{pv}} && !defined $vgs{$l{vg}}) {
+ log::l("using $pv2vg{$l{pv}} instead of $l{vg}");
+ $l{vg} = $pv2vg{$l{pv}};
+ }
if_(defined $l{size}, \%l);
- } call_dmraid('-r', '-c', '-c');
+ } call_dmraid(qw(-r -c -c));
}
sub _raid_devices() {
@@ -92,15 +146,26 @@ sub _sets() {
@sets;
}
+=item vgs()
+
+Returns the list of VGs corresponding to dmraid
+
+=cut
+
sub vgs() {
map {
my $dev = "mapper/$_->{name}";
my $vg = fs::wild_device::to_subpart("/dev/$dev");
- add2hash($vg, { media_type => 'hd', prefix => $dev, bus => "dmraid_$_->{format}", disks => $_->{disks} });
+ add2hash($vg, { media_type => 'hd', bus => "dmraid_$_->{format}", disks => $_->{disks} });
#- device should exist, created by dmraid(8) using libdevmapper
#- if it doesn't, we suppose it's not in use
- if_(-e "/dev/$dev", $vg);
+ if (-e "/dev/$dev") {
+ $vg;
+ } else {
+ log::l("ignoring $dev as /dev/$dev doesn't exist");
+ ();
+ }
} grep {
if ($_->{status} eq 'ok') {
@@ -112,6 +177,38 @@ sub vgs() {
} _sets();
}
+=item migrate_device_names ($vg)
+
+Handles migration from /dev/mapper/xxx1 to /dev/mapper/xxxp1, as used by initrd/nash.
+dmraid has been patched to follow xxxp1 device names.
+So until the box has rebooted on new initrd/dmraid, we must cope with /dev/mapper/xxx1 device names
+(cf mdk#44182)
+
+=cut
+
+sub migrate_device_names {
+ my ($vg) = @_;
+
+ my $dev_name = basename($vg->{device});
+ foreach (all('/dev/mapper')) {
+ my ($nb) = /^\Q$dev_name\E(\d+)$/ or next;
+ my $new = $dev_name . 'p' . $nb;
+ if (! -e "/dev/mapper/$new") {
+ log::l("migrating to $new, creating a compat symlink $_");
+ rename "/dev/mapper/$_", "/dev/mapper/$new";
+ symlink $new, "/dev/mapper/$_";
+ }
+ }
+}
+
+=back
+
+=head1 Debugging
+
+If $ENV{DRAKX_DEBUG_DMRAID} is set, debugging dmraid is done.
+The C<call_dmraid()> function is overloaded and will spit out warnings.
+=cut
+
if ($ENV{DRAKX_DEBUG_DMRAID}) {
eval(<<'EOF');
my %debug_data = (
diff --git a/perl-install/fs/format.pm b/perl-install/fs/format.pm
index 91b470964..1fa90c29e 100644
--- a/perl-install/fs/format.pm
+++ b/perl-install/fs/format.pm
@@ -1,4 +1,4 @@
-package fs::format; # $Id$
+package fs::format;
use diagnostics;
use strict;
@@ -10,23 +10,56 @@ use fs::type;
use fs::loopback;
use log;
+=head1 SYNOPSYS
+
+B<fs::format> enables to format filesystems.
+
+=head1 Variables
+
+=over
+
+=item %cmds
+
+Commands to format filesystem:
+
+For each filesystem, list: [ package_name, command_to_use, options_to_use ]
+
+=cut
+
my %cmds = (
ext2 => [ 'e2fsprogs', 'mkfs.ext2', '-F' ],
ext3 => [ 'e2fsprogs', 'mkfs.ext3', '-F' ],
+ ext4 => [ 'e2fsprogs', 'mkfs.ext4', '-F' ],
+ f2fs => [ 'f2fs-tools', 'mkfs.f2fs', '-f' ],
reiserfs => [ 'reiserfsprogs', 'mkfs.reiserfs', '-ff' ],
- reiser4 => [ 'reiser4progs', 'mkfs.reiser4', '-f', '-y' ],
xfs => [ 'xfsprogs', 'mkfs.xfs', '-f', '-q' ],
- jfs => [ 'jfsprogs', 'mkfs.jfs', '-f' ],
+ jfs => [ 'jfsutils', 'mkfs.jfs', '-f' ],
hfs => [ 'hfsutils', 'hformat' ],
- dos => [ 'dosfstools', 'mkdosfs' ],
- vfat => [ 'dosfstools', 'mkdosfs', '-F', '32' ],
- swap => [ 'util-linux-ng', 'mkswap' ],
- ntfs => [ 'ntfsprogs', 'mkntfs', '--fast' ],
+ dos => [ 'dosfstools', 'mkfs.fat' ],
+ vfat => [ 'dosfstools', 'mkfs.fat', '-F', '32' ],
+ exfat => [ 'exfatprogs', 'mkfs.exfat' ],
+ swap => [ 'util-linux', 'mkswap' ],
+ ntfs => [ 'ntfs-3g', 'mkfs.ntfs', '--fast' ],
+ 'ntfs-3g' => [ 'ntfs-3g', 'mkfs.ntfs', '--fast' ],
+ btrfs => [ 'btrfs-progs', 'mkfs.btrfs', '-f' ],
+ nilfs2 => [ 'nilfs-utils', 'mkfs.nilfs2', '-f' ],
);
-my %LABELs = ( #- option, length, handled_by_mount
+
+=item %LABELs
+
+mkfs option to use in order to set the label + label specs.
+
+For each filesystem, list: [ option, max_length, handled_by_mount ]
+
+=cut
+
+my %LABELs = (
ext2 => [ '-L', 16, 1 ],
ext3 => [ '-L', 16, 1 ],
+ ext4 => [ '-L', 16, 1 ],
+ exfat => [ '-L', 16, 1 ],
+ f2fs => [ '-l', 16, 1 ],
reiserfs => [ '-l', 16, 1 ],
xfs => [ '-L', 12, 1 ],
jfs => [ '-L', 16, 1 ],
@@ -34,8 +67,69 @@ my %LABELs = ( #- option, length, handled_by_mount
dos => [ '-n', 11, 0 ],
vfat => [ '-n', 11, 0 ],
swap => [ '-L', 15, 1 ],
+ ntfs => [ '-L', 128, 0 ],
+ 'ntfs-3g' => [ '-L', 128, 0 ],
+ btrfs => [ '-L', 256, 1 ],
+ nilfs2 => [ '-L', 16, 1 ],
);
+=item %edit_LABEL
+
+Commands to set the file system label.
+
+For each filesystem, list: [ package, command, option ]
+
+If option is defined, run <command> <option> <label> <device>
+
+If no option, run <command> <device> <label>
+
+=cut
+
+my %edit_LABEL = ( #
+ ext2 => [ 'e2fsprogs', 'tune2fs', '-L' ],
+ ext3 => [ 'e2fsprogs', 'tune2fs', '-L' ],
+ ext4 => [ 'e2fsprogs', 'tune2fs', '-L' ],
+ reiserfs => [ 'reiserfsprogs', 'reiserfstune', '-l' ],
+ xfs => [ 'xfsprogs', 'xfs_admin', '-L' ],
+ jfs => [ 'jfsutils', 'jfs_tune', '-L' ],
+# hfs
+ dos => [ 'mtools', 'mlabel', '-i' ],
+ exfat => [ 'exfatprogs', 'tune.exfat', '-L' ],
+ vfat => [ 'mtools', 'mlabel', '-i' ],
+ swap => [ 'util-linux', 'swaplabel', '-L' ],
+ ntfs => [ 'ntfs-3g', 'ntfslabel' ],
+ 'ntfs-3g' => [ 'ntfs-3g', 'ntfslabel' ],
+ btrfs => [ 'btrfs-progs', 'btrfs', 'filesystem', 'label' ],
+ nilfs2 => [ 'nilfs-utils', 'nilfs-tune', '-L' ],
+);
+
+=item %preserve_UUID
+
+For each filesystem, list: [ option, max_length, handled_by_mount ]
+
+Those are used in order to preserve UUID on fs where we couldn't enforce it while formatting.
+
+=cut
+
+my %preserve_UUID = ( # package, command
+ jfs => [ 'jfsutils', 'jfs_tune', ],
+ xfs => [ 'xfsprogs', 'xfs_admin' ],
+ nilfs2 => [ 'nilfs-utils', 'nilfs-tune' ],
+);
+
+
+=back
+
+=head1 Functions
+
+=over
+
+=item package_needed_for_partition_type($part)
+
+Return the package needed for that partition's type.
+
+=cut
+
sub package_needed_for_partition_type {
my ($part) = @_;
my $l = $cmds{$part->{fs_type}} or return;
@@ -47,13 +141,31 @@ sub known_type {
to_bool($cmds{$part->{fs_type}});
}
-sub check_package_is_installed {
+sub check_package_is_installed_format {
my ($do_pkgs, $fs_type) = @_;
my ($pkg, $binary) = @{$cmds{$fs_type} || return};
- whereis_binary($binary) || $do_pkgs->ensure_binary_is_installed($pkg, $binary); #- ensure_binary_is_installed checks binary chrooted, whereas we run the binary non-chrooted (pb for Mandriva One)
+ whereis_binary($binary) || $do_pkgs->ensure_binary_is_installed($pkg, $binary); #- ensure_binary_is_installed checks binary chrooted, whereas we run the binary non-chrooted (pb for Mageia One)
+}
+
+sub check_package_is_installed_label {
+ my ($do_pkgs, $fs_type) = @_;
+
+ my ($pkg, $binary) = @{$edit_LABEL{$fs_type} || return};
+ whereis_binary($binary) || $do_pkgs->ensure_binary_is_installed($pkg, $binary); #- ensure_binary_is_installed checks binary chrooted, whereas we run the binary non-chrooted (pb for Mageia One)
+}
+
+sub canEditLabel {
+ my ($part) = @_;
+ to_bool($edit_LABEL{$part->{fs_type}});
}
+=item part($all_hds, $part, $wait_message)
+
+Frontend to part_raw()
+
+=cut
+
sub part {
my ($all_hds, $part, $wait_message) = @_;
if (isRAID($part)) {
@@ -67,8 +179,72 @@ sub part {
$wait_message->(N("Formatting partition %s", $part->{device})) if $wait_message;
part_raw($part, $wait_message);
}
+ undef $part->{toFormat};
}
+=item write_label($part)
+
+Set the label on the filesystem hold in $part.
+
+=cut
+
+sub write_label {
+ my ($part) = @_;
+
+ $part->{device_LABEL_changed} or return;
+ maybeFormatted($part) or return;
+
+ if ($part->{encrypt_key}) {
+ fs::mount::set_loop($part);
+ }
+
+ my $dev = $part->{real_device} || $part->{device};
+ my ($_pkg, $cmd, @first_options) = @{$edit_LABEL{$part->{fs_type}} || die N("I do not know how to set label on %s with type %s", $part->{device}, $part->{fs_type})};
+ my @args;
+ if ($cmd eq 'mlabel') {
+ @args = ($cmd, @first_options, devices::make($dev), '::' . $part->{device_LABEL});
+ } elsif ($cmd eq 'btrfs') {
+ # btrfs needs reverse ordering
+ @args = ($cmd, @first_options, devices::make($dev), $part->{device_LABEL});
+ } elsif (defined $first_options[0]) {
+ @args = ($cmd, @first_options, $part->{device_LABEL}, devices::make($dev));
+ } else {
+ @args = ($cmd, devices::make($dev), $part->{device_LABEL});
+ }
+ run_program::raw({ timeout => 'never' }, @args) or die N("setting label on %s failed, is it formatted?", $dev);
+ delete $part->{device_LABEL_changed};
+}
+
+sub write_btrfs_uuid {
+ my ($UUID, $dev) = @_;
+ $dev = devices::make($dev);
+ my $status = system("echo y|btrfstune -U $UUID $dev") == 0;
+ die "failed to set UUID to '$UUID' on $dev (status=$status)" if !$status;
+}
+
+=item sub option_to_preserve_UUID_while_formating($part, $fs_type)
+
+Return the options needed to preserve UUID while formating
+
+=cut
+
+sub option_to_preserve_UUID_while_formating {
+ my ($part, $fs_type) = @_;
+ if (member($fs_type, qw(swap ext2 ext3 ext4))) {
+ return '-U', $part->{device_UUID} if $part->{device_UUID};
+ } elsif ($fs_type eq 'reiserfs') {
+ return '-u', $part->{device_UUID} if $part->{device_UUID};
+ }
+ return ();
+}
+
+=item part_raw($part, $wait_message)
+
+Actually format the $part partition disk. $wait_message is only used when formating ext3/4.
+If not set, ext[3-4] will be formated without any progression bar, like other fses...
+
+=cut
+
sub part_raw {
my ($part, $wait_message) = @_;
@@ -85,7 +261,7 @@ sub part_raw {
my $fs_type = $part->{fs_type};
- if ($fs_type eq 'ext2' || $fs_type eq 'ext3') {
+ if (member($fs_type, qw(ext2 ext3 ext4))) {
push @options, "-m", "0" if $part->{mntpoint} =~ m|^/home|;
} elsif (isDos($part)) {
$fs_type = 'dos';
@@ -95,45 +271,70 @@ sub part_raw {
push @options, '-l', 'bootstrap';
}
+ push @options, option_to_preserve_UUID_while_formating($part, $fs_type);
+
if ($part->{device_LABEL}) {
- if ($LABELs{$fs_type}) {
- my ($option, $length, $handled_by_mount) = @{$LABELs{$fs_type}};
- if (length $part->{device_LABEL} > $length) {
- my $short = substr($part->{device_LABEL}, 0, $length);
- log::l("shortening LABEL $part->{device_LABEL} to $short");
- $part->{device_LABEL} = $short;
- }
- delete $part->{prefer_device_LABEL}
- if !$handled_by_mount || $part->{mntpoint} eq '/' && !member($fs_type, 'ext2', 'ext3');
-
- push @options, $option, $part->{device_LABEL};
- } else {
- log::l("dropping LABEL=$part->{device_LABEL} since we don't know how to set labels for fs_type $part->{fs_type}");
- delete $part->{device_LABEL};
- delete $part->{prefer_device_LABEL};
- }
+ push @options, @{$LABELs{$fs_type}}[0], $part->{device_LABEL};
}
my ($_pkg, $cmd, @first_options) = @{$cmds{$fs_type} || die N("I do not know how to format %s in type %s", $part->{device}, $part->{fs_type})};
my @args = ($cmd, @first_options, @options, devices::make($dev));
- if ($cmd eq 'mkfs.ext3' && $wait_message) {
+ if ($cmd =~ /^mkfs.ext[34]$/ && $wait_message) {
mkfs_ext3($wait_message, @args) or die N("%s formatting of %s failed", $fs_type, $dev);
} else {
run_program::raw({ timeout => 'never' }, @args) or die N("%s formatting of %s failed", $fs_type, $dev);
}
- if ($fs_type eq 'ext3') {
+ delete $part->{device_LABEL_changed};
+
+ preserve_UUID_after_format($dev, $part, $fs_type);
+
+ if (member($fs_type, qw(ext3 ext4))) {
disable_forced_fsck($dev);
}
+ after_formatting($part);
+}
+
+=item preserve_UUID_after_format($dev, $part, $fs_type)
+
+Preserve UUID on fs where we couldn't enforce it while formatting
+
+=cut
+
+sub preserve_UUID_after_format {
+ my ($dev, $part, $fs_type) = @_;
+ if (my $uuid_cmd = $preserve_UUID{$fs_type}) {
+ my (undef, $cmd) = @$uuid_cmd;
+ run_program::raw({}, $cmd, '-U', $part->{device_UUID}, devices::make($dev)) if $cmd;
+ } elsif ($fs_type eq 'btrfs' && $part->{device_UUID}) {
+ write_btrfs_uuid($part->{device_UUID}, $dev);
+ }
+}
+
+=item after_formatting($part)
+
+Misc post formating tags (rereading UUID & setting state)
+
+=cut
+
+sub after_formatting {
+ my ($part) = @_;
+
my $p = fs::type::type_subpart_from_magic($part);
$part->{device_UUID} = $p && $p->{device_UUID};
set_isFormatted($part, 1);
}
+=item mkfs_ext3($wait_message, @args)
+
+Display a progression bar whike formating ext3/4
+
+=cut
+
sub mkfs_ext3 {
my ($wait_message, @args) = @_;
@@ -150,11 +351,39 @@ sub mkfs_ext3 {
return close($F);
}
+=item disable_forced_fsck($dev)
+
+Disable automatic fsck on extX (infinite number of mounts & duration between 2 fsck runs)
+
+=cut
+
sub disable_forced_fsck {
my ($dev) = @_;
run_program::run("tune2fs", "-c0", "-i0", devices::make($dev));
}
+sub clean_label {
+ my ($part) = @_;
+ if ($part->{device_LABEL}) {
+ my $fs_type = $part->{fs_type};
+ if ($LABELs{$fs_type}) {
+ my ($_option, $length, $handled_by_mount) = @{$LABELs{$fs_type}};
+ if (length $part->{device_LABEL} > $length) {
+ my $short = substr($part->{device_LABEL}, 0, $length);
+ log::l("shortening LABEL $part->{device_LABEL} to $short");
+ $part->{device_LABEL} = $short;
+ }
+ delete $part->{prefer_device_LABEL}
+ if !$handled_by_mount || $part->{mntpoint} eq '/' && !member($fs_type, qw(ext2 ext3 ext4));
+ } else {
+ log::l("dropping LABEL=$part->{device_LABEL} since we don't know how to set labels for fs_type $fs_type");
+ delete $part->{device_LABEL};
+ delete $part->{prefer_device_LABEL};
+ delete $part->{device_LABEL_changed};
+ }
+ }
+}
+
sub formatMount_part {
my ($part, $all_hds, $fstab, $wait_message) = @_;
@@ -164,12 +393,17 @@ sub formatMount_part {
if (my $p = fs::get::up_mount_point($part->{mntpoint}, $fstab)) {
formatMount_part($p, $all_hds, $fstab, $wait_message) if !fs::type::carry_root_loopback($part);
}
+
+ clean_label($part);
+
if ($part->{toFormat}) {
fs::format::part($all_hds, $part, $wait_message);
+ } else {
+ fs::format::write_label($part);
}
#- setting user_xattr on /home (or "/" if no /home)
- if (!$part->{isMounted} && $part->{fs_type} eq 'ext3'
+ if (!$part->{isMounted} && member($part->{fs_type}, qw(ext2 ext3 ext4))
&& ($part->{mntpoint} eq '/home' ||
!fs::get::has_mntpoint('/home', $all_hds) && $part->{mntpoint} eq '/')) {
run_program::run('tune2fs', '-o', 'user_xattr', devices::make($part->{real_device} || $part->{device}));
@@ -180,7 +414,7 @@ sub formatMount_part {
sub formatMount_all {
my ($all_hds, $fstab, $wait_message) = @_;
- formatMount_part($_, $all_hds, $fstab, $wait_message)
+ formatMount_part($_, $all_hds, $fstab, $wait_message)
foreach sort { isLoopback($a) ? 1 : isSwap($a) ? -1 : 0 } grep { $_->{mntpoint} } @$fstab;
#- ensure the link is there
@@ -194,5 +428,8 @@ sub formatMount_all {
};
}
+=back
+
+=cut
1;
diff --git a/perl-install/fs/get.pm b/perl-install/fs/get.pm
index aa23d1c61..00c807738 100644
--- a/perl-install/fs/get.pm
+++ b/perl-install/fs/get.pm
@@ -1,4 +1,4 @@
-package fs::get; # $Id$
+package fs::get;
use diagnostics;
use strict;
@@ -11,24 +11,35 @@ use fs;
use common;
use log;
+
+=head1 SYNOPSYS
+
+B<fs::get>
+
+=head1 Functions
+
+=over
+
+=cut
+
sub empty_all_hds() {
- { hds => [], lvms => [], raids => [], loopbacks => [], raw_hds => [], nfss => [], smbs => [], davs => [], special => [] };
+ { hds => [], lvms => [], raids => [], dmcrypts => [], loopbacks => [], raw_hds => [], nfss => [], smbs => [], davs => [], special => [] };
}
sub fstab {
my ($all_hds) = @_;
my @parts = map { partition_table::get_normal_parts($_) } hds($all_hds);
- @parts, @{$all_hds->{raids}}, @{$all_hds->{loopbacks}};
+ @parts, @{$all_hds->{raids}}, @{$all_hds->{dmcrypts}}, @{$all_hds->{loopbacks}};
}
sub really_all_fstab {
my ($all_hds) = @_;
my @l = fstab($all_hds);
- @l, @{$all_hds->{raw_hds}}, @{$all_hds->{nfss}}, @{$all_hds->{smbs}}, @{$all_hds->{davs}};
+ @l, (grep { !$_->{is_removable} } @{$all_hds->{raw_hds}}), @{$all_hds->{nfss}}, @{$all_hds->{smbs}}, @{$all_hds->{davs}};
}
sub fstab_and_holes {
my ($all_hds, $b_non_readonly) = @_;
my @hds = grep { !($b_non_readonly && $_->{readonly}) } hds($all_hds);
- hds_fstab_and_holes(@hds), @{$all_hds->{raids}}, @{$all_hds->{loopbacks}};
+ hds_fstab_and_holes(@hds), @{$all_hds->{raids}}, @{$all_hds->{dmcrypts}}, @{$all_hds->{loopbacks}};
}
sub holes {
@@ -51,7 +62,12 @@ sub hds {
(@{$all_hds->{hds}}, @{$all_hds->{lvms}});
}
-#- get all normal partition including special ones as found on sparc.
+=item hds_fstab(@hds)
+
+Get all normal partition.
+
+=cut
+
sub hds_fstab {
map { partition_table::get_normal_parts($_) } @_;
}
@@ -119,6 +135,15 @@ sub has_mntpoint {
my ($mntpoint, $all_hds) = @_;
mntpoint2part($mntpoint, [ really_all_fstab($all_hds) ]);
}
+
+sub root_from_mounted() {
+ foreach (`df -P`) {
+ next if m!^[^/]!; # ignore tootfs
+ my ($fs, undef, undef, undef, undef, $mntpnt) = split(/\s+/);
+ return $fs if $mntpnt eq '/';
+ }
+}
+
sub root_ {
my ($fstab, $o_boot) = @_;
$o_boot && mntpoint2part("/boot", $fstab) || mntpoint2part("/", $fstab);
@@ -144,7 +169,10 @@ sub is_same_hd {
} else {
$hd1->{device_LABEL} && $hd2->{device_LABEL} && $hd1->{device_LABEL} eq $hd2->{device_LABEL}
|| $hd1->{device_UUID} && $hd2->{device_UUID} && $hd1->{device_UUID} eq $hd2->{device_UUID}
- || $hd1->{device} && $hd2->{device} && $hd1->{device} eq $hd2->{device};
+ || $hd1->{device} && $hd2->{device} && $hd1->{device} eq $hd2->{device}
+ || $hd1->{device} && $hd2->{device_alias} && $hd1->{device} eq $hd2->{device_alias}
+ || $hd1->{device_alias} && $hd2->{device} && $hd1->{device_alias} eq $hd2->{device}
+ || $hd1->{device_alias} && $hd2->{device_alias} && $hd1->{device_alias} eq $hd2->{device_alias};
}
}
@@ -153,4 +181,8 @@ sub mntpoint_prefixed {
$::prefix . $part->{mntpoint};
}
+=back
+
+=cut
+
1;
diff --git a/perl-install/fs/loopback.pm b/perl-install/fs/loopback.pm
index 572c79f67..8d0c729ec 100644
--- a/perl-install/fs/loopback.pm
+++ b/perl-install/fs/loopback.pm
@@ -1,4 +1,4 @@
-package fs::loopback; # $Id$
+package fs::loopback;
use diagnostics;
use strict;
@@ -86,7 +86,7 @@ sub getFree {
}
#- returns the size of the loopback file if it already exists
-#- returns -1 is the loopback file can not be used
+#- returns -1 is the loopback file cannot be used
sub verifFile {
my ($dir, $file, $part) = @_;
-e "$dir$file" and return -s "$dir$file";
diff --git a/perl-install/fs/mount.pm b/perl-install/fs/mount.pm
index 950eb1715..6afaa9260 100644
--- a/perl-install/fs/mount.pm
+++ b/perl-install/fs/mount.pm
@@ -1,4 +1,4 @@
-package fs::mount; # $Id$
+package fs::mount;
use diagnostics;
use strict;
@@ -35,10 +35,10 @@ sub mount {
$fs or log::l("not mounting $dev partition"), return;
{
- my @fs_modules = qw(ext3 hfs jfs nfs ntfs romfs reiserfs ufs xfs vfat);
- my @types = (qw(ext2 proc sysfs usbfs usbdevfs iso9660 devfs devpts), @fs_modules);
+ my @fs_modules = qw(btrfs ext3 ext4 f2fs hfs jfs nilfs2 nfs ntfs romfs reiserfs ufs xfs vfat);
+ my @types = (qw(ext2 proc sysfs iso9660 devpts auto ntfs-3g), @fs_modules);
- push @types, 'smb', 'smbfs', 'davfs2' if !$::isInstall;
+ push @types, 'smb', 'cifs', 'davfs2' if !$::isInstall;
if (!member($fs, @types)) {
log::l("skipping mounting $dev partition ($fs)");
@@ -72,11 +72,18 @@ sub mount {
fsck_jfs($dev, $o_wait_message);
} elsif ($fs eq 'ext2' && !$b_rdonly) {
fsck_ext2($dev, $o_wait_message);
+ } elsif ($fs eq 'davfs2') {
+ require fs::remote::davfs;
+ # We have to store credentials in davfs2 secret file before mounting
+ fs::remote::davfs::mountpoint_credentials_save($where, \@mount_opt);
+ # username and password options should be handled by /etc/davfs2/secrets file
+ @mount_opt = grep { !/^(username|password)=/ } @mount_opt;
}
push @mount_opt, 'ro' if $b_rdonly;
$o_wait_message->(N("Mounting partition %s", $dev)) if $o_wait_message;
+ modules::load("fuse") if $::isInstall && $fs eq 'ntfs-3g' && ! -e '/dev/fuse';
run_program::run('mount', '-t', $fs, $dev, $where, if_(@mount_opt, '-o', join(',', @mount_opt))) or die N("mounting partition %s in directory %s failed", $dev, $where);
}
@@ -116,10 +123,10 @@ sub umount {
run_program::run('umount', $mntpoint) or do {
kill 15, fuzzy_pidofs('^fam\b');
my $err;
- run_program::run('umount', '2>', \$err, $mntpoint) or die N("error unmounting %s: %s", $mntpoint, $err);
+ run_program::run('umount', '2>', \$err, $mntpoint) or die N("error unmounting %s: %s", $mntpoint, common::to_utf8($err));
};
- substInFile { $_ = '' if /(^|\s)$mntpoint\s/ } '/etc/mtab'; #- do not care about error, if we can not read, we will not manage to write... (and mess mtab)
+ substInFile { $_ = '' if /(^|\s)$mntpoint\s/ } '/etc/mtab'; #- do not care about error, if we cannot read, we will not manage to write... (and mess mtab)
}
sub part {
@@ -154,8 +161,6 @@ sub part {
set_loop($part);
$options = join(',', grep { !/^(encryption=|encrypted$|loop$)/ } split(',', $options)); #- we take care of this, don't let it mount see it
} elsif (isLoopback($part)) {
- #- mount will take care, but we must help it
- devices::make("loop$_") foreach 0 .. 7;
$options = join(',', uniq('loop', split(',', $options))); #- ensure the loop options is used
} elsif ($part->{options} =~ /encrypted/) {
log::l("skip mounting $part->{device} since we do not have the encrypt_key");
@@ -167,16 +172,25 @@ sub part {
my $fs_type = $part->{fs_type};
if ($fs_type eq 'auto' && $part->{media_type} eq 'cdrom' && $::isInstall) {
$fs_type = 'iso9660';
+ } elsif ($fs_type eq 'ntfs-3g' && $::isInstall) {
+ $fs_type = 'ntfs';
}
mount($dev, $mntpoint, $fs_type, $b_rdonly, $options, $o_wait_message);
- if ($options =~ /usrquota|grpquota/ && $part->{fs_type} eq 'ext3') {
+ if ($options =~ /usrquota|grpquota/ && member($part->{fs_type}, qw(ext3 ext4))) {
if (! find { -e "$mntpoint/$_" } qw(aquota.user aquota.group quota.user quota.group)) {
#- quotacheck will create aquota.user and/or aquota.group,
- #- needed for quotas on ext3.
+ #- needed for quotas on ext3/ext4.
run_program::run('quotacheck', $mntpoint);
}
}
+ if (isLoopback($part) && $::isInstall) {
+ #- since /etc/mtab is symlinked to /proc/mounts, umount will
+ #- not be able to know it needs to do losetup -d
+ #- TODO: drop this and have a real /etc/mtab
+ $part->{real_device} = cat_("/proc/mounts") =~ m!(/dev/\S+)\s+\Q$mntpoint\E\s! && $1;
+ log::l("XXX $part->{real_device}");
+ }
}
}
$part->{isMounted} = 1;
@@ -207,16 +221,15 @@ sub umount_all {
log::l("unmounting all filesystems");
foreach (sort { $b->{mntpoint} cmp $a->{mntpoint} }
- grep { $_->{mntpoint} && !$_->{real_mntpoint} } @$fstab) {
+ grep { $_->{mntpoint} && !$_->{real_mntpoint} || isSwap($_) } @$fstab) {
umount_part($_);
}
}
-sub usbfs {
+sub sys_kernel_debug {
my ($prefix) = @_;
- my $fs = cat_('/proc/filesystems') =~ /usbfs/ ? 'usbfs' : 'usbdevfs';
- mount('none', "$prefix/proc/bus/usb", $fs);
+ mount('none', "$prefix/sys/kernel/debug/usb", 'debugfs');
}
1;
diff --git a/perl-install/fs/mount_options.pm b/perl-install/fs/mount_options.pm
index b1dea9b42..0b63f7260 100644
--- a/perl-install/fs/mount_options.pm
+++ b/perl-install/fs/mount_options.pm
@@ -1,4 +1,4 @@
-package fs::mount_options; # $Id$
+package fs::mount_options;
use diagnostics;
use strict;
@@ -30,19 +30,19 @@ sub unpack {
vfat => [ qw(flush umask=0 umask=0022) ],
ntfs => [ qw(umask=0 umask=0022) ],
nfs => [ qw(rsize=8192 wsize=8192) ],
- smbfs => [ qw(username= password=) ],
+ cifs => [ qw(username= password=) ],
davfs2 => [ qw(username= password= uid= gid=) ],
reiserfs => [ 'notail' ],
);
- push @{$per_fs{$_}}, 'usrquota', 'grpquota' foreach 'ext2', 'ext3', 'xfs';
+ push @{$per_fs{$_}}, 'usrquota', 'grpquota' foreach 'ext2', 'ext3', 'ext4', 'xfs';
+ push @{$per_fs{$_}}, 'acl' foreach 'ext2', 'ext3', 'ext4', 'reiserfs';
while (my ($fs, $l) = each %per_fs) {
- $part->{fs_type} eq $fs || $part->{fs_type} eq 'auto' && member($fs, @auto_fs) or next;
+ member($part->{fs_type}, $fs, 'auto') && member($fs, @auto_fs) or next;
$non_defaults->{$_} = 1 foreach @$l;
}
- $non_defaults->{relatime} = 1 if isTrueLocalFS($part);
- $non_defaults->{encrypted} = 1;
+ $non_defaults->{relatime} = 1 if isTrueLocalFS($part) || $part->{fs_type} eq 'ntfs-3g';
my $defaults = { reverse %$non_defaults };
my %options = map { $_ => '' } keys %$non_defaults;
@@ -103,6 +103,7 @@ sub pack_ {
}
sub pack {
my ($part, $options, $unknown) = @_;
+ $unknown =~ s/ /,/g;
$part->{options} = pack_($part, $options, $unknown) || 'defaults';
noreturn();
}
@@ -110,39 +111,38 @@ sub pack {
# update me on each util-linux new release:
sub help() {
(
-
- 'encrypted' => N("Use an encrypted file system"),
+ 'acl' => N("Enable POSIX Access Control Lists"),
'flush' => N("Flush write cache on file close"),
'grpquota' => N("Enable group disk quota accounting and optionally enforce limits"),
- 'noatime' => N("Do not update inode access times on this file system
+ 'noatime' => N("Do not update inode access times on this filesystem
(e.g, for faster access on the news spool to speed up news servers)."),
'relatime' => N("Update inode access times on this filesystem in a more efficient way
(e.g, for faster access on the news spool to speed up news servers)."),
'noauto' => N("Can only be mounted explicitly (i.e.,
-the -a option will not cause the file system to be mounted)."),
+the -a option will not cause the filesystem to be mounted)."),
- 'nodev' => N("Do not interpret character or block special devices on the file system."),
+ 'nodev' => N("Do not interpret character or block special devices on the filesystem."),
'noexec' => N("Do not allow execution of any binaries on the mounted
-file system. This option might be useful for a server that has file systems
+filesystem. This option might be useful for a server that has filesystems
containing binaries for architectures other than its own."),
'nosuid' => N("Do not allow set-user-identifier or set-group-identifier
bits to take effect. (This seems safe, but is in fact rather unsafe if you
have suidperl(1) installed.)"),
- 'ro' => N("Mount the file system read-only."),
+ 'ro' => N("Mount the filesystem read-only."),
- 'sync' => N("All I/O to the file system should be done synchronously."),
+ 'sync' => N("All I/O to the filesystem should be done synchronously."),
- 'users' => N("Allow every user to mount and umount the file system."),
+ 'users' => N("Allow every user to mount and umount the filesystem."),
- 'user' => N("Allow an ordinary user to mount the file system."),
+ 'user' => N("Allow an ordinary user to mount the filesystem."),
'usrquota' => N("Enable user disk quota accounting, and optionally enforce limits"),
@@ -163,7 +163,7 @@ sub rationalize {
if ($part->{fs_type} ne 'reiserfs') {
$options->{notail} = 0;
}
- if (!fs::type::can_be_one_of_those_fs_types($part, 'vfat', 'smbfs', 'iso9660', 'udf')) {
+ if (!fs::type::can_be_one_of_those_fs_types($part, 'vfat', 'cifs', 'iso9660', 'udf')) {
delete $options->{'codepage='};
}
if (member($part->{mntpoint}, fs::type::directories_needed_to_boot())) {
@@ -187,7 +187,6 @@ sub set_default {
if (!$opts{ignore_is_removable} && $part->{is_removable}
&& !member($part->{mntpoint}, fs::type::directories_needed_to_boot())
&& (!$part->{fs_type} || $part->{fs_type} eq 'auto' || $part->{fs_type} =~ /:/)) {
- $options->{supermount} = 0; #- always disable supermount
$part->{fs_type} = 'auto';
$options->{flush} = 1 if $part->{media_type} ne 'cdrom';
}
@@ -205,17 +204,17 @@ sub set_default {
#- noatime on laptops (do not wake up the hd)
#- otherwise relatime (wake up the hd less often / better performances)
#- Do not update inode access times on this
- #- file system (e.g, for faster access on the
+ #- filesystem (e.g, for faster access on the
#- news spool to speed up news servers).
$options->{relatime} = $options->{noatime} = 0;
- $options->{detect_devices::isLaptop() ? 'noatime': 'relatime'} = 1;
+ $options->{ detect_devices::isLaptop() ? 'noatime' : 'relatime' } = 1 if !$opts{force_atime};
}
if ($part->{fs_type} eq 'nfs') {
put_in_hash($options, {
nosuid => 1, 'rsize=8192,wsize=8192' => 1, soft => 1,
});
}
- if ($part->{fs_type} eq 'smbfs') {
+ if ($part->{fs_type} eq 'cifs') {
add2hash($options, { 'username=' => '%' }) if !$options->{'credentials='};
}
if (fs::type::can_be_this_fs_type($part, 'vfat')) {
@@ -225,13 +224,13 @@ sub set_default {
}) if $part->{is_removable};
put_in_hash($options, {
- 'umask=0' => $opts{security} < 3, 'umask=0022' => $opts{security} < 4,
+ 'umask=0' => $opts{security} <= 1 && !isESP($part),
'iocharset=' => $opts{iocharset}, 'codepage=' => $opts{codepage},
});
}
if ($part->{fs_type} eq 'ntfs') {
put_in_hash($options, { ro => 1, 'nls=' => $opts{iocharset},
- 'umask=0' => $opts{security} < 3, 'umask=0022' => $opts{security} < 4,
+ 'umask=0' => $opts{security} < 1, 'umask=0022' => $opts{security} < 2,
});
}
if (fs::type::can_be_this_fs_type($part, 'iso9660')) {
@@ -241,6 +240,9 @@ sub set_default {
$options->{notail} = 1;
$options->{user_xattr} = 1;
}
+ if (member($part->{fs_type}, qw(ext2 ext3 ext4))) {
+ $options->{acl} = 1;
+ }
if (isLoopback($part) && !isSwap($part)) { #- no need for loop option for swap files
$options->{loop} = 1;
}
diff --git a/perl-install/fs/mount_point.pm b/perl-install/fs/mount_point.pm
index b21a37b62..56f2405e9 100644
--- a/perl-install/fs/mount_point.pm
+++ b/perl-install/fs/mount_point.pm
@@ -1,4 +1,4 @@
-package fs::mount_point; # $Id$
+package fs::mount_point;
use diagnostics;
use strict;
@@ -13,16 +13,21 @@ sub guess_mount_point {
my %l = (
'/' => 'etc/fstab',
'/boot' => 'vmlinuz',
+ '/boot' => 'vmlinux',
+ '/boot' => 'uImage',
'/tmp' => '.X11-unix',
'/usr' => 'src',
- '/var' => 'catman',
+ '/var' => 'spool',
);
my $handle = any::inspect($part, $prefix) or return;
my $d = $handle->{dir};
my $mnt = find { -e "$d/$l{$_}" } keys %l;
$mnt ||= (stat("$d/.bashrc"))[4] ? '/root' : '/home/user' . ++$$user if -e "$d/.bashrc";
- $mnt ||= (any { -d $_ && (stat($_))[4] >= 500 && -e "$_/.bashrc" } glob_($d)) ? '/home' : '';
+ $mnt ||= (any { -d $_ && (stat($_))[4] >= 1000 && -e "$_/.bashrc" } glob_($d)) ? '/home' : '';
+ # Keep uid 500 here for guesswork, but base it on .bash_history to increase
+ # changes it's a real user.
+ $mnt ||= (any { -d $_ && (stat($_))[4] >= 500 && -e "$_/.bash_history" } glob_($d)) ? '/home' : '';
($mnt, $handle);
}
@@ -41,30 +46,32 @@ sub suggest_mount_points {
#- try to find other mount points via fstab
fs::merge_info_from_fstab($fstab, $handle->{dir}, $uniq, 'loose') if $mnt eq '/';
}
+ # reuse existing ESP under UEFI:
+ my @ESP = if_(is_uefi(), grep { isESP($_) } @$fstab);
+ if (@ESP) {
+ $ESP[0]{mntpoint} = '/boot/EFI';
+ delete $ESP[0]{unsafeMntpoint};
+ }
$_->{mntpoint} and log::l("suggest_mount_points: $_->{device} -> $_->{mntpoint}") foreach @$fstab;
}
sub suggest_mount_points_always {
my ($fstab) = @_;
- my @win = grep { isFat_or_NTFS($_) && maybeFormatted($_) && !$_->{is_removable} } @$fstab;
+ my @ESP = if_(is_uefi(), grep { isESP($_) && maybeFormatted($_) && !$_->{is_removable} } @$fstab);
+ if (@ESP) {
+ $ESP[0]{mntpoint} = "/boot/EFI";
+ }
+ my @win = grep { isnormal_Fat_or_NTFS($_) && !$_->{isMounted} && maybeFormatted($_) && !$_->{is_removable} } @$fstab;
log::l("win parts: ", join ",", map { $_->{device} } @win) if @win;
if (@win == 1) {
- #- Suggest /boot/efi on ia64.
- $win[0]{mntpoint} = arch() =~ /ia64/ ? "/boot/efi" : "/mnt/windows";
+ $win[0]{mntpoint} = "/media/windows";
} else {
my %w; foreach (@win) {
my $v = $w{$_->{device_windobe}}++;
- $_->{mntpoint} = $_->{unsafeMntpoint} = "/mnt/win_" . lc($_->{device_windobe}) . ($v ? $v+1 : ''); #- lc cuz of StartOffice(!) cf dadou
+ $_->{mntpoint} = $_->{unsafeMntpoint} = "/media/win_" . lc($_->{device_windobe}) . ($v ? $v+1 : ''); #- lc cuz of StartOffice(!) cf dadou
}
}
-
- my @sunos = grep { $_->{pt_type} == 2 } @$fstab; #- take only into account root partitions.
- if (@sunos) {
- my $v = '';
- map { $_->{mntpoint} = $_->{unsafeMntpoint} = "/mnt/sunos" . ($v && ++$v) } @sunos;
- }
- #- a good job is to mount SunOS root partition, and to use mount point described here in /etc/vfstab.
}
sub validate_mount_points {
@@ -80,8 +87,8 @@ sub validate_mount_points {
$m{$m} and die N("Duplicate mount point %s", $m);
$m{$m} = 1;
- #- in case the type does not correspond, force it to ext3
- fs::type::set_fs_type($_, 'ext3') if !isTrueFS($_) && !isOtherAvailableFS($_);
+ #- in case the type does not correspond, force it to default fs (ext4 currently)
+ fs::type::set_fs_type($_, defaultFS()) if !isTrueFS($_) && !isOtherAvailableFS($_);
}
1;
}
@@ -104,7 +111,6 @@ sub ask_mount_points {
} else {
$in->ask_from_({ messages => N("Choose the mount points"),
title => N("Partitioning"),
- icon => 'banner-part',
interactive_help_id => 'ask_mntpoint_s',
callbacks => {
complete => sub {
diff --git a/perl-install/fs/partitioning.pm b/perl-install/fs/partitioning.pm
index 16a07cb5b..18fa7e114 100644
--- a/perl-install/fs/partitioning.pm
+++ b/perl-install/fs/partitioning.pm
@@ -1,18 +1,20 @@
-package fs::partitioning; # $Id$
+package fs::partitioning;
use diagnostics;
use strict;
use common;
use fs::format;
+use fs::get;
use fs::type;
sub guess_partitions_to_format {
my ($fstab) = @_;
+ my $root_part = fs::get::root($fstab);
foreach (@$fstab) {
- $_->{mntpoint} = "swap" if isSwap($_);
+ $_->{mntpoint} = "swap" if isSwap($_) && ($_->{rootDevice} eq $root_part->{rootDevice} || !$_->{is_removable} && !$root_part->{is_removable});
$_->{mntpoint} or next;
-
+
add2hash_($_, { toFormat => $_->{notFormatted} }) if $_->{fs_type}; #- eg: do not set toFormat for isRawRAID (0xfd)
$_->{toFormatUnsure} ||= member($_->{mntpoint}, '/', '/usr');
@@ -44,16 +46,15 @@ sub choose_partitions_to_format {
$in->ask_from_(
{ messages => N("Choose the partitions you want to format"),
- icon => 'banner-part',
interactive_help_id => 'formatPartitions',
- advanced_messages => N("Check bad blocks?"),
+ advanced_messages => N("Check for bad blocks?"),
},
[ map {
my $e = $_;
({
text => partition_table::description($e), type => 'bool',
val => \$e->{toFormatTmp}
- }, if_(!isLoopback($_) && !member($_->{fs_type}, 'reiserfs', 'xfs', 'jfs'), {
+ }, if_(!isLoopback($_) && isBlockCheckable($_), {
text => partition_table::description($e), type => 'bool', advanced => 1,
disabled => sub { !$e->{toFormatTmp} },
val => \$e->{toFormatCheck}
diff --git a/perl-install/fs/partitioning_wizard.pm b/perl-install/fs/partitioning_wizard.pm
index 3c4ba602e..6e77f3eff 100644
--- a/perl-install/fs/partitioning_wizard.pm
+++ b/perl-install/fs/partitioning_wizard.pm
@@ -1,4 +1,4 @@
-package fs::partitioning_wizard; # $Id$
+package fs::partitioning_wizard;
use diagnostics;
use strict;
@@ -11,13 +11,29 @@ use fs::type;
use fs::mount_point;
use partition_table;
use partition_table::raw;
+use partition_table::dos;
+use POSIX qw(ceil);
+
+
+=head1 SYNOPSYS
+
+B<fs::partitioning_wizard> implements the partitioning wizard.
+
+=head1 Functions
+
+=over
+
+=item from_Mb($mb, $min, $max)
+
+This function is used to convert back to sectors count the size of
+a partition ($mb) given from the interface (on Resize or Create).
+modified to take into account a true bounding with min and max.
+Unit of $mb is mega bytes, min and max are in sectors.
+
+=cut
-#- unit of $mb is mega bytes, min and max are in sectors, this
-#- function is used to convert back to sectors count the size of
-#- a partition ($mb) given from the interface (on Resize or Create).
-#- modified to take into account a true bounding with min and max.
sub from_Mb {
- my ($mb, $min, $max) = @_;
+ emy ($mb, $min, $max) = @_;
$mb <= to_Mb($min) and return $min;
$mb >= to_Mb($max) and return $max;
MB($mb);
@@ -28,15 +44,28 @@ sub to_Mb {
}
sub partition_with_diskdrake {
- my ($in, $all_hds, $fstab, $manual_fstab, $partitions, $partitioning_flags, $skip_mtab) = @_;
- my $ok;
+ my ($in, $all_hds, $fstab, $manual_fstab, $_partitions, $partitioning_flags, $skip_mtab) = @_;
+ my $ok;
+
+ # The classic installer sets $skip_mtab to either undef or 1. The live
+ # installer sets it to 'skip_mtab'. If $skip_mtab is not set, this has
+ # already been done by fs::any::get_hds.
+ if ($skip_mtab eq 'skip_mtab') {
+ fs::mount_point::suggest_mount_points_always($fstab);
+ }
do {
$ok = 1;
my $do_force_reload = sub {
+ require File::Temp;
+ require fs::dmcrypt;
+ my (undef, $tmp_file) = File::Temp::mkstemp('/tmp/crypttab.XXXXXXX');
+ fs::dmcrypt::save_crypttab_($all_hds, $tmp_file);
my $new_hds = fs::get::empty_all_hds();
fs::any::get_hds($new_hds, $fstab, $manual_fstab, $partitioning_flags, $skip_mtab, $in);
%$all_hds = %$new_hds;
+ fs::dmcrypt::read_crypttab_($all_hds, $tmp_file);
+ rm_rf($tmp_file);
$all_hds;
};
require diskdrake::interactive;
@@ -45,43 +74,59 @@ sub partition_with_diskdrake {
diskdrake::interactive::main($in, $all_hds, $do_force_reload);
}
my @fstab = fs::get::fstab($all_hds);
-
+
unless (fs::get::root_(\@fstab)) {
$ok = 0;
$in->ask_okcancel(N("Partitioning"), N("You must have a root partition.
-For this, create a partition (or click on an existing one).
-Then choose action ``Mount point'' and set it to `/'"), 1, 'banner-part') or return;
+To accomplish this, create a partition (or click on an existing one).
+Then choose action ``Mount point'' and set it to `/'"), 1) or return;
}
+
if (!any { isSwap($_) } @fstab) {
$ok &&= $in->ask_okcancel('', N("You do not have a swap partition.\n\nContinue anyway?"));
}
- if (arch() =~ /ia64/ && !fs::get::has_mntpoint("/boot/efi", $all_hds)) {
- $in->ask_warn('', N("You must have a FAT partition mounted in /boot/efi"));
+ if (is_uefi()) {
+ my $part = fs::get::has_mntpoint("/boot/EFI", $all_hds);
+ if (!$part || !isESP($part)) {
+ $in->ask_warn('', N("You must have a ESP FAT32 partition mounted in /boot/EFI"));
$ok = '';
+ }
+ } else {
+ if (fs::any::is_boot_bios_part_needed($all_hds)) {
+ $in->ask_warn('', N("You must have a BIOS boot partition for non-UEFI GPT-partitioned disks. Please create one before continuing."));
+ $ok = '';
+ }
}
} until $ok;
1;
}
sub partitionWizardSolutions {
- my ($in, $all_hds, $all_fstab, $manual_fstab, $partitions, $partitioning_flags, $skip_mtab) = @_;
+ my ($in, $all_hds, $all_fstab, $manual_fstab, $partitions, $partitioning_flags, $skip_mtab, $o_target) = @_;
my $hds = $all_hds->{hds};
- my $fstab = [ fs::get::fstab($all_hds) ];
+ my $fstab;
+ my $full_fstab = [ fs::get::fstab($all_hds) ];
+ if ($o_target) {
+ $hds = [ $o_target ];
+ $fstab = [ grep { $_->{rootDevice} eq $o_target->{device} } fs::get::fstab($all_hds) ];
+ } else {
+ $fstab = $full_fstab;
+ }
+
my @wizlog;
my (%solutions);
- my $min_linux = MB(400);
- my $max_linux = MB(2000);
+ my $min_linux = MB(600);
my $min_swap = MB(50);
- my $max_swap = MB(300);
my $min_freewin = MB(100);
+ fsedit::init_mntpnt_suggestions($all_hds, $o_target);
# each solution is a [ score, text, function ], where the function retunrs true if succeeded
my @hds_rw = grep { !$_->{readonly} } @$hds;
- my @hds_can_add = grep { $_->can_raw_add } @hds_rw;
+ my @hds_can_add = grep { $_->{type} ne 'hd' || $_->can_add } @hds_rw;
if (fs::get::hds_free_space(@hds_can_add) > $min_linux) {
- $solutions{free_space} = [ 20, N("Use free space"), sub { fsedit::auto_allocate($all_hds, $partitions); 1 } ];
+ $solutions{free_space} = [ 30, N("Use free space"), sub { fsedit::auto_allocate($all_hds, $partitions, $o_target); 1 } ];
} else {
push @wizlog, N("Not enough free space to allocate new partitions") . ": " .
(@hds_can_add ?
@@ -91,66 +136,88 @@ sub partitionWizardSolutions {
if (my @truefs = grep { isTrueLocalFS($_) } @$fstab) {
#- value twice the ext2 partitions
- $solutions{existing_part} = [ 6 + @truefs + @$fstab, N("Use existing partitions"), sub { fs::mount_point::ask_mount_points($in, $fstab, $all_hds) } ];
+ $solutions{existing_part} = [ 20 + @truefs + @$fstab, N("Use existing partitions"), sub { fs::mount_point::ask_mount_points($in, $full_fstab, $all_hds) } ];
} else {
push @wizlog, N("There is no existing partition to use");
}
- my @fats = grep { $_->{fs_type} eq 'vfat' } @$fstab;
- fs::df($_) foreach @fats;
- if (my @ok_forloopback = sort { $b->{free} <=> $a->{free} } grep { $_->{free} > $min_linux + $min_swap + $min_freewin } @fats) {
- $solutions{loopback} =
- [ -10 - @fats, N("Use the Microsoft Windows® partition for loopback"),
- sub {
- my ($s_root, $s_swap);
- my $part = $in->ask_from_listf('', N("Which partition do you want to use for Linux4Win?"), \&partition_table::description, \@ok_forloopback) or return;
- $max_swap = $min_swap + 1 if $part->{free} - $max_swap < $min_linux;
- $in->ask_from('', N("Choose the sizes"), [
- { label => N("Root partition size in MB: "), val => \$s_root, min => to_Mb($min_linux), max => to_Mb(min($part->{free} - $max_swap, $max_linux)), type => 'range' },
- { label => N("Swap partition size in MB: "), val => \$s_swap, min => to_Mb($min_swap), max => to_Mb($max_swap), type => 'range' },
- ]) or return;
- push @{$part->{loopback}},
- { fs_type => 'ext3', loopback_file => '/lnx4win/linuxsys.img', mntpoint => '/', size => $s_root * 2048, loopback_device => $part, notFormatted => 1 },
- { fs_type => 'swap', loopback_file => '/lnx4win/swapfile', mntpoint => 'swap', size => $s_swap * 2048, loopback_device => $part, notFormatted => 1 };
- fsedit::recompute_loopbacks($all_hds);
- 1;
- } ];
- } else {
- push @wizlog, N("There is no FAT partition to use as loopback (or not enough space left)") .
- (@fats ? "\nFAT partitions:" . join('', map { "\n $_->{device} $_->{free} (" . ($min_linux + $min_swap + $min_freewin) . ")" } @fats) : '');
- }
-
-
- if (my @ok_for_resize_fat = grep { isFat_or_NTFS($_) && !fs::get::part2hd($_, $all_hds)->{readonly} } @$fstab) {
- $solutions{resize_fat} =
- [ 6 - @ok_for_resize_fat, N("Use the free space on the Microsoft Windows® partition"),
- sub {
- my $part = $in->ask_from_listf_raw({ messages => N("Which partition do you want to resize?"),
- interactive_help_id => 'resizeFATChoose',
- }, \&partition_table::description, \@ok_for_resize_fat) or return;
- my $hd = fs::get::part2hd($part, $all_hds);
- my $resize_fat = eval {
- my $pkg = $part->{fs_type} eq 'vfat' ? do {
- require resize_fat::main;
- 'resize_fat::main';
- } : do {
- require diskdrake::resize_ntfs;
- 'diskdrake::resize_ntfs';
- };
- $pkg->new($part->{device}, devices::make($part->{device}));
- };
- $@ and die N("The FAT resizer is unable to handle your partition,
-the following error occurred: %s", formatError($@));
- my $min_win = do {
- my $_w = $in->wait_message(N("Resizing"), N("Computing the size of the Microsoft Windows® partition"));
- $resize_fat->min_size;
- };
- #- make sure that even after normalizing the size to cylinder boundaries, the minimun will be saved,
- #- this save at least a cylinder (less than 8Mb).
- $min_win += partition_table::raw::cylinder_size($hd);
-
- $part->{size} > $min_linux + $min_swap + $min_freewin + $min_win or die N("Your Microsoft Windows® partition is too fragmented. Please reboot your computer under Microsoft Windows®, run the ``defrag'' utility, then restart the Mandriva Linux installation.");
- $in->ask_okcancel('', formatAlaTeX(
+ if (my @ok_for_resize_fat = grep { isnormal_Fat_or_NTFS($_) && !fs::get::part2hd($_, $all_hds)->{readonly}
+ && $_->{size} > $min_linux + $min_swap + $min_freewin } @$fstab) {
+ @ok_for_resize_fat = map {
+ my $part = $_;
+ my $hd = fs::get::part2hd($part, $all_hds);
+ my $resize_fat = eval {
+ my $pkg = $part->{fs_type} eq 'vfat' ? do {
+ require resize_fat::main;
+ 'resize_fat::main';
+ } : do {
+ require diskdrake::resize_ntfs;
+ 'diskdrake::resize_ntfs';
+ };
+ $pkg->new($part->{device}, devices::make($part->{device}));
+ };
+ if ($@) {
+ log::l("The FAT resizer is unable to handle $part->{device} partition%s", formatError($@));
+ undef $part;
+ }
+ if ($part) {
+ my $min_win = eval {
+ my $_w = $in->wait_message(N("Resizing"), N("Computing the size of the Microsoft Windows® partition"));
+ $resize_fat->min_size + $min_freewin;
+ };
+ if ($@) {
+ log::l("The FAT resizer is unable to get minimal size for $part->{device} partition %s", formatError($@));
+ undef $part;
+ } else {
+ my $min_linux_all = $min_linux + $min_swap;
+ #- make sure that even after normalizing the size to cylinder boundaries, the minimun will be saved,
+ #- this save at least a cylinder (less than 8Mb).
+ $min_win += partition_table::raw::cylinder_size($hd);
+
+ if ($part->{size} <= $min_linux_all + $min_win) {
+# die N("Your Microsoft Windows® partition is too fragmented. Please reboot your computer under Microsoft Windows®, run the ``defrag'' utility, then restart the %s installation.", N("Mageia"));
+ undef $part;
+ } else {
+ $part->{resize_fat} = $resize_fat;
+ $part->{min_win} = $min_win;
+ $part->{min_linux} = $min_linux_all;
+ #- try to keep at least 1GB free for Windows
+ #- try to use from 20GB to 20% free space for Linux
+ my $suggested_size = max(
+ $part->{min_win} + 1 * MB(1024),
+ min(
+ $part->{size} - int(0.2 * ($part->{size} - $part->{min_win})),
+ $part->{size} - 20 * MB(1024),
+ ),
+ );
+ $part->{req_size} = max(min($suggested_size, $part->{size} - $part->{min_linux}), $part->{min_win});
+ }
+ }
+ }
+ $part || ();
+ } @ok_for_resize_fat;
+ if (@ok_for_resize_fat) {
+ $solutions{resize_fat} =
+ [ 20 - @ok_for_resize_fat, N("Use the free space on a Microsoft Windows® partition"),
+ sub {
+ my $part;
+ if (!$in->isa('interactive::gtk')) {
+ $part = $in->ask_from_listf_raw({ messages => N("Which partition do you want to resize?"),
+ interactive_help_id => 'resizeFATChoose',
+ }, \&partition_table::description, \@ok_for_resize_fat) or return;
+ $part->{size} > $part->{min_linux} + $part->{min_win} or die N("Your Microsoft Windows® partition is too fragmented. Please reboot your computer under Microsoft Windows®, run the ``defrag'' utility, then restart the %s installation.", N("Mageia"));
+ } else {
+ my @selected = grep {
+ $_->{selected_for_resize} &&
+ $o_target->{device} eq $_->{rootDevice}; # Not needed but let's be safe
+ } @ok_for_resize_fat;
+ my $nb_parts = @selected;
+ die N("Failed to find the partition to resize (%d choices)", $nb_parts) unless $nb_parts == 1;
+ $part = $selected[0];
+ }
+ my $resize_fat = $part->{resize_fat};
+ my $hd = fs::get::part2hd($part, $all_hds);
+ $in->ask_okcancel('', formatAlaTeX(
#-PO: keep the double empty lines between sections, this is formatted a la LaTeX
N("WARNING!
@@ -163,56 +230,66 @@ Be careful: this operation is dangerous. If you have not already done so, you fi
When sure, press %s.", N("Next")))) or return;
- my $mb_size = to_Mb($part->{size});
- $in->ask_from(N("Partitionning"), N("Which size do you want to keep for Microsoft Windows® on partition %s?", partition_table::description($part)), [
- { label => N("Size"), val => \$mb_size, min => to_Mb($min_win), max => to_Mb($part->{size} - $min_linux - $min_swap), type => 'range' },
- ]) or return;
-
- my $oldsize = $part->{size};
- $part->{size} = from_Mb($mb_size, $min_win, $part->{size});
-
- $hd->adjustEnd($part);
-
- eval {
- my $_w = $in->wait_message(N("Resizing"), N("Resizing Microsoft Windows® partition"));
- $resize_fat->resize($part->{size});
- };
- if (my $err = $@) {
- $part->{size} = $oldsize;
- die N("FAT resizing failed: %s", formatError($err));
- }
-
- $in->ask_warn('', N("To ensure data integrity after resizing the partition(s),
+ my $oldsize = $part->{size};
+ if (!$in->isa('interactive::gtk')) {
+ my $mb_size = to_Mb($part->{req_size});
+ my $max_win = $part->{size} - $part->{min_linux};
+ $in->ask_from(N("Partitionning"), N("Which size do you want to keep for Microsoft Windows® on partition %s?", partition_table::description($part)), [
+ { label => N("Size"), val => \$mb_size, min => to_Mb($part->{min_win}), max => to_Mb($max_win), type => 'range' },
+ ]) or return;
+ $part->{req_size} = from_Mb($mb_size, $part->{min_win}, $part->{max_win});
+ }
+ $part->{size} = $part->{req_size};
+
+ $hd->adjustEnd($part);
+
+ eval {
+ my $_w = $in->wait_message(N("Resizing"), N("Resizing Microsoft Windows® partition"));
+ $resize_fat->resize($part->{size});
+ };
+ if (my $err = $@) {
+ $part->{size} = $oldsize;
+ die N("FAT resizing failed: %s", formatError($err));
+ }
+
+ $in->ask_warn('', N("To ensure data integrity after resizing the partition(s),
filesystem checks will be run on your next boot into Microsoft Windows®")) if $part->{fs_type} ne 'vfat';
- set_isFormatted($part, 1);
- partition_table::will_tell_kernel($hd, resize => $part); #- down-sizing, write_partitions is not needed
- partition_table::adjust_local_extended($hd, $part);
- partition_table::adjust_main_extended($hd);
+ set_isFormatted($part, 1);
+ partition_table::will_tell_kernel($hd, resize => $part); #- down-sizing, write_partitions is not needed
+ partition_table::adjust_local_extended($hd, $part);
+ partition_table::adjust_main_extended($hd);
- fsedit::auto_allocate($all_hds, $partitions);
- 1;
- } ];
+ fsedit::auto_allocate($all_hds, $partitions, $hd);
+ 1;
+ }, \@ok_for_resize_fat ];
+ }
} else {
push @wizlog, N("There is no FAT partition to resize (or not enough space left)");
}
if (@$fstab && @hds_rw) {
$solutions{wipe_drive} =
- [ 10, fsedit::is_one_big_fat_or_NT($hds) ? N("Remove Microsoft Windows®") : N("Erase and use entire disk"),
+ [ 10, fsedit::is_one_big_fat_or_NT($hds) ? N("Remove Microsoft Windows®") : N("Erase and use entire disk"),
sub {
- my $hd = $in->ask_from_listf_raw({ messages => N("You have more than one hard drive, which one do you install linux on?"),
- title => N("Partitioning"),
- icon => 'banner-part',
- interactive_help_id => 'takeOverHdChoose',
- },
- \&partition_table::description, \@hds_rw) or return;
+ my $hd;
+ if (!$in->isa('interactive::gtk')) {
+ $hd = $in->ask_from_listf_raw({ messages => N("You have more than one hard disk drive, which one do you want the installer to use?"),
+ title => N("Partitioning"),
+ interactive_help_id => 'takeOverHdChoose',
+ },
+ \&partition_table::description, \@hds_rw) or return;
+ } else {
+ $hd = $o_target;
+ }
$in->ask_okcancel_({ messages => N("ALL existing partitions and their data will be lost on drive %s", partition_table::description($hd)),
title => N("Partitioning"),
- icon => 'banner-part',
interactive_help_id => 'takeOverHdConfirm' }) or return;
fsedit::partition_table_clear_and_initialize($all_hds->{lvms}, $hd, $in);
- fsedit::auto_allocate($all_hds, $partitions);
+ # FIXME: reread all_hds:
+ # re add suggestions if needed (as we might just have erased eg Boot BIOS partition):
+ fsedit::init_mntpnt_suggestions($all_hds, $hd, 1);
+ fsedit::auto_allocate($all_hds, $partitions, $hd);
1;
} ];
}
@@ -224,18 +301,14 @@ filesystem checks will be run on your next boot into Microsoft Windows®")) if $
}
$solutions{fdisk} =
- [ -10, N("Use fdisk"), sub {
+ [ -10, N("Use fdisk"), sub {
$in->enter_console;
foreach (@$hds) {
print "\n" x 10, N("You can now partition %s.
When you are done, do not forget to save using `w'", partition_table::description($_));
print "\n\n";
my $pid = 0;
- if (arch() =~ /ppc/) {
- $pid = fork() or exec "pdisk", devices::make($_->{device});
- } else {
- $pid = fork() or exec "fdisk", devices::make($_->{device});
- }
+ $pid = fork() or exec "fdisk", devices::make($_->{device});
waitpid($pid, 0);
}
$in->leave_console;
@@ -248,40 +321,335 @@ When you are done, do not forget to save using `w'", partition_table::descriptio
sub warn_reboot_needed {
my ($in) = @_;
- $in->ask_warn(N("Partitioning"), N("You need to reboot for the partition table modifications to take place"), icon => 'banner-part');
+ $in->ask_warn(N("Partitioning"), N("You need to reboot for the partition table modifications to take effect"));
}
-sub main {
- my ($o, $all_hds, $fstab, $manual_fstab, $partitions, $partitioning_flags, $skip_mtab, $b_nodiskdrake) = @_;
+sub create_display_box {
+ my ($kind, $resize, $fill_empty, $button) = @_;
+
+ # Hide empty space < 2MB, wehave such holes due to alignment
+ my @parts = grep { $_->{size} > MB(2) || !isEmpty($_) } diskdrake::hd_gtk::kind2parts($kind);
+
+ my $totalsectors = diskdrake::hd_gtk::kind2sectors($kind, @parts);
+
+ my $width = 520;
+ my $minwidth = 40;
+
+ my $display_box = ugtk3::gtkset_size_request(Gtk3::HBox->new(0,0), -1, 26);
+ $display_box->set_spacing(1);
+
+ my $sep_count = @parts - 1;
+ #- ratio used to compute initial partition pixel width (each partition should be > min_width)
+ #- though, the pixel/sectors ratio cannot be the same for all the partitions
+ my $initial_ratio = $totalsectors ? ($width - @parts * $minwidth - $sep_count) / $totalsectors : 1;
- my %solutions = partitionWizardSolutions($o, $all_hds, $fstab, $manual_fstab, $partitions, $partitioning_flags, $skip_mtab);
+ my $vbox = Gtk3::VBox->new;
+
+ my $desc;
+
+ if ($resize) {
+ my %resizable_parts;
+ foreach my $entry (@$resize) {
+ # selected_for_resize may have been set on another disk, clear it
+ $entry->{selected_for_resize} = 0;
+ $resizable_parts{$entry->{device}} = $entry;
+ }
+ # find resizable parts on this disk
+ my @choices = grep { $resizable_parts{$_->{device}} } @parts;
+ my @sorted_resize = sort {
+ $a->{size} - $a->{req_size} <=> $b->{size} - $b->{req_size};
+ } @choices;
+ $sorted_resize[-1]{selected_for_resize} = 1;
+ }
+
+ foreach my $entry (@parts) {
+ my $part_info = Gtk3::Label->new($entry->{device_LABEL});
+ my @colorized_fs_types = qw(ext2 ext3 ext4 xfs swap vfat ntfs ntfs-3g);
+ my $part_widget = Gtk3::EventBox->new;
+ $entry->{width} = int($entry->{size} * $initial_ratio) + $minwidth;
+ if ($resize && $entry->{selected_for_resize}) {
+ my $ratio;
+ my $update_ratio = sub { $ratio = $entry->{width} / $entry->{size} };
+ $update_ratio->();
+
+ $part_widget->set_name("PART_vfat");
+ $part_info->set_size_request(ceil($ratio * $entry->{min_win}), 0);
+
+ my $mdv_widget = gtkadd(gtkset_name(Gtk3::EventBox->new, "PART_new"),
+ gtkset_size_request(gtknew("Image", file => "small-logo"),
+ $ratio * MB(600), 0));
+
+ my $hpane = Gtk3::HPaned->new;
+ $hpane->pack1($part_widget, 1, 0);
+ $hpane->pack2($mdv_widget, 1, 0);
+ $hpane->set_position(ceil($ratio * $entry->{req_size}));
+ ugtk3::gtkset_size_request($hpane, $entry->{width}, 0);
+ ugtk3::gtkpack__($display_box, $hpane);
+
+ my $add_part_size_info = sub {
+ my ($name, $label) = @_;
+ ugtk3::gtkpack__($desc,
+ gtkadd(gtkset_name(Gtk3::EventBox->new, $name),
+ Gtk3::Label->new(" " x 4)),
+ gtkset_size_request(gtkset_alignment($label, 0, 0.5),
+ 150, 20));
+ };
+ $desc = Gtk3::HBox->new(0,0);
+
+ my $win_size_label = Gtk3::Label->new;
+ $add_part_size_info->("PART_vfat", $win_size_label);
+
+ my $mdv_size_label = Gtk3::Label->new;
+ $add_part_size_info->("PART_new", $mdv_size_label);
+
+ my $update_size_labels = sub {
+ $win_size_label->set_label(" Windows (" . formatXiB($entry->{req_size}, 512) . ")");
+ $mdv_size_label->set_label(" Mageia (" . formatXiB($entry->{size} - $entry->{req_size}, 512) . ")");
+ 0;
+ };
+ my $update_req_size = sub {
+ $entry->{req_size} = int($hpane->get_position / $ratio);
+ $update_size_labels->();
+ };
+ my $button_activate = sub {
+ $button->activate;
+ 0;
+ };
+ $hpane->signal_connect('size-allocate' => sub {
+ my (undef, $alloc) = @_;
+ $entry->{width} = $alloc->{width};
+ $update_ratio->();
+ 0;
+ });
+ $update_size_labels->();
+ $hpane->signal_connect('motion-notify-event' => $update_req_size);
+ $hpane->signal_connect('move-handle' => $update_req_size);
+ $hpane->signal_connect('button-press-event' => $button_activate);
+ $vbox->signal_connect('button-press-event' => $button_activate);
+ $button->signal_connect('focus-in-event' => sub {
+ $hpane->grab_focus;
+ 0;
+ });
+ } else {
+ if ($fill_empty && isEmpty($entry)) {
+ $part_info = gtknew("Image", file => "small-logo");
+ $part_widget->set_name("PART_new");
+ } else {
+ $part_widget->set_name("PART_" . (isEmpty($entry) ? 'empty' :
+ $entry->{fs_type} && member($entry->{fs_type}, @colorized_fs_types) ? $entry->{fs_type} :
+ 'other'));
+ }
+ $part_widget->set_size_request($entry->{width}, 0);
+ ugtk3::gtkpack($display_box, $part_widget);
+ }
+ $part_widget->add($part_info);
+ }
+ unless ($resize || $fill_empty) {
+ my @types = (N_("Ext2/3/4"), N_("XFS"), N_("Swap"), N_("Windows"),
+ N_("Other"), N_("Empty"));
+ my %name2fs_type = ('Ext2/3/4' => 'ext3', 'XFS' => 'xfs', Swap => 'swap', Other => 'other', "Windows" => 'vfat', HFS => 'hfs');
+ $desc = ugtk3::gtkpack(Gtk3::HBox->new,
+ map {
+ my $t = $name2fs_type{$_};
+ my $ev = Gtk3::EventBox->new;
+ my $w = Gtk3::Label->new(translate($_));
+ $ev->add($w);
+ $ev->set_name('PART_' . ($t || 'empty'));
+ $ev;
+ } @types);
+ }
- delete $solutions{diskdrake} if $b_nodiskdrake;
+ $vbox->add($display_box);
+ $vbox->add($desc) if $desc;
- my @solutions = sort { $b->[0] <=> $a->[0] } values %solutions;
+ $vbox;
+}
- my @sol = grep { $_->[0] >= 0 } @solutions;
+sub display_choices {
+ my ($o, $contentbox, $mainw, %solutions) = @_;
+ my @solutions = sort { $solutions{$b}[0] <=> $solutions{$a}[0] } keys %solutions;
+ my @sol = grep { $solutions{$_}[0] >= 0 } @solutions;
- log::l('' . "solutions found: " . join('', map { $_->[1] } @sol) .
- " (all solutions found: " . join('', map { $_->[1] } @solutions) . ")");
+ log::l('' . "solutions found: " . join(', ', map { $solutions{$_}[1] } @sol) .
+ " (all solutions found: " . join(', ', map { $solutions{$_}[1] } @solutions) . ")");
@solutions = @sol if @sol > 1;
log::l("solutions: ", int @solutions);
- @solutions or $o->ask_warn(N("Partitioning"), N("I can not find any room for installing"), icon => 'banner-part'), die 'already displayed';
+ @solutions or $o->ask_warn(N("Partitioning"), N("I cannot find any room for installing")), die 'already displayed';
+
+ log::l('HERE: ', join(',', map { $solutions{$_}[1] } @solutions));
+
+ $contentbox->foreach(sub { $contentbox->remove($_[0]) });
+
+ $mainw->{kind}{display_box} ||= create_display_box($mainw->{kind});
+ ugtk3::gtkpack2__($contentbox, $mainw->{kind}{display_box});
+ ugtk3::gtkpack__($contentbox, gtknew('Label',
+ text => N("The DrakX Partitioning wizard found the following solutions:"),
+ alignment => [0, 0]));
+
+ my $choicesbox = gtknew('VBox');
+ my $oldbutton;
+ my $sep;
+ foreach my $s (@solutions) {
+ my $item;
+ my $vbox = gtknew('VBox');
+ my $button = gtknew('RadioButton', child => $vbox);
+ if ($s eq 'free_space') {
+ $item = create_display_box($mainw->{kind}, undef, 1);
+ } elsif ($s eq 'resize_fat') {
+ $item = create_display_box($mainw->{kind}, $solutions{$s}[3], undef, $button);
+ } elsif ($s eq 'existing_part') {
+ } elsif ($s eq 'wipe_drive') {
+ $item = Gtk3::EventBox->new;
+ my $b2 = gtknew("Image", file => "small-logo");
+ $item->add($b2);
+ $item->set_size_request(520,26);
+ $item->set_name("PART_new");
+ } elsif ($s eq 'diskdrake') {
+ } else {
+ log::l($s);
+ next;
+ }
+ ugtk3::gtkpack($vbox,
+ gtknew('Label',
+ text => $solutions{$s}[1],
+ alignment => [0, 0]));
+ ugtk3::gtkpack($vbox, $item) if defined($item);
+ $button->join_group($oldbutton) if $oldbutton;
+ $oldbutton = $button;
+ $button->signal_connect('toggled', sub { $mainw->{sol} = $solutions{$s} if $_[0]->get_active });
+ ugtk3::gtkpack2__($choicesbox, $button);
+ $sep = gtknew('HSeparator');
+ ugtk3::gtkpack2__($choicesbox, $sep);
+ }
+ $choicesbox->remove($sep);
+ ugtk3::gtkadd($contentbox, $choicesbox);
+ $mainw->{sol} = $solutions{@solutions[0]};
+}
+
+sub main {
+ my ($o, $all_hds, $fstab, $manual_fstab, $partitions, $partitioning_flags, $skip_mtab, $b_nodiskdrake) = @_;
- log::l('HERE: ', join(',', map { $_->[1] } @solutions));
my $sol;
- $o->ask_from_({ messages => N("The DrakX Partitioning wizard found the following solutions:"),
- title => N("Partitioning"),
- icon => 'banner-part',
- interactive_help_id => 'doPartitionDisks',
- },
- [ { val => \$sol, list => \@solutions, format => sub { $_[0][1] }, type => 'list' } ]);
+
+ if ($o->isa('interactive::gtk')) {
+ require mygtk3;
+ mygtk3->import(qw(gtknew));
+ require ugtk3;
+ ugtk3->import(qw(:wrappers));
+
+ my $mainw = ugtk3->new(N("Partitioning"), %$o, if__($::main_window, transient => $::main_window));
+ $mainw->{box_allow_grow} = 1;
+
+ mygtk3::set_main_window_size($mainw->{rwindow});
+
+ require diskdrake::hd_gtk;
+ diskdrake::hd_gtk::load_theme();
+
+ my $mainbox = Gtk3::VBox->new;
+
+ my @kinds = map { diskdrake::hd_gtk::hd2kind($_) } sort { $a->{is_removable} <=> $b->{is_removable} } @{ $all_hds->{hds} };
+ #push @kinds, diskdrake::hd_gtk::raid2real_kind($_) foreach @{$all_hds->{raids}};
+ push @kinds, map { diskdrake::hd_gtk::lvm2kind($_) } @{$all_hds->{lvms}};
+
+ my $hdchoice = Gtk3::HBox->new;
+
+ my $hdchoicelabel = Gtk3::Label->new(N("Here is the content of your disk drive "));
+
+ my $combobox = Gtk3::ComboBoxText->new;
+ foreach (@kinds) {
+ my $info = $_->{val}{info} || $_->{val}{device};
+ $info =~ s|^(?:.*/)?(.{24}).*|$1|;
+ $info .= " (" . formatXiB($_->{val}{totalsectors}, 512) . ")" if $_->{val}{totalsectors};
+ $combobox->append_text($info);
+ }
+ $combobox->set_active(0);
+
+ ugtk3::gtkpack2__($hdchoice, $hdchoicelabel);
+ $hdchoice->add($combobox);
+
+ ugtk3::gtkpack2__($mainbox, $hdchoice);
+
+ my $contentbox = Gtk3::VBox->new(0, 12);
+
+ my $scroll = Gtk3::ScrolledWindow->new;
+ $scroll->set_policy('automatic', 'automatic'),
+ my $vp = Gtk3::Viewport->new;
+ $vp->set_shadow_type('none');
+ $vp->add($contentbox);
+ $scroll->add($vp);
+ $mainbox->add($scroll);
+
+ my $kind = $kinds[$combobox->get_active];
+ my %solutions = partitionWizardSolutions($o, $all_hds, $fstab, $manual_fstab, $partitions, $partitioning_flags, $skip_mtab, diskdrake::hd_gtk::kind2hd($kind));
+ delete $solutions{diskdrake} if $b_nodiskdrake;
+ $mainw->{kind} = $kind;
+ display_choices($o, $contentbox, $mainw, %solutions);
+
+ $combobox->signal_connect("changed", sub {
+ my $curr = $kinds[$combobox->get_active];
+ return if !$curr;
+ $mainw->{kind} = $curr;
+ my %solutions = partitionWizardSolutions($o, $all_hds, $fstab, $manual_fstab, $partitions, $partitioning_flags, $skip_mtab, diskdrake::hd_gtk::kind2hd($mainw->{kind}));
+ delete $solutions{diskdrake} if $b_nodiskdrake;
+ display_choices($o, $contentbox, $mainw, %solutions);
+ $mainw->{window}->show_all;
+ });
+
+ my @more_buttons = (
+ if_($::isInstall,
+ [ gtknew('Install_Button',
+ text => N("Help"),
+ clicked => sub { interactive::gtk::display_help($o, {interactive_help_id => 'doPartitionDisks' }) }),
+ undef, 1 ]),
+ );
+ my $buttons_pack = $mainw->create_okcancel(N("Next"), undef, '', @more_buttons);
+ $mainbox->pack_end($buttons_pack, 0, 0, 0);
+ ugtk3::gtkadd($mainw->{window}, $mainbox);
+ $mainw->{window}->show_all;
+
+ $mainw->main;
+
+ $sol=$mainw->{sol};
+ } else {
+ my %solutions = partitionWizardSolutions($o, $all_hds, $fstab, $manual_fstab, $partitions, $partitioning_flags, $skip_mtab);
+
+ delete $solutions{diskdrake} if $b_nodiskdrake;
+
+ my @solutions = sort { $b->[0] <=> $a->[0] } values %solutions;
+
+ my @sol = grep { $_->[0] >= 0 } @solutions;
+ log::l('' . "solutions found: " . join(', ', map { $_->[1] } @sol) .
+ " (all solutions found: " . join(', ', map { $_->[1] } @solutions) . ")");
+ @solutions = @sol if @sol > 1;
+ log::l("solutions: ", int @solutions);
+ @solutions or $o->ask_warn(N("Partitioning"), N("I cannot find any room for installing")), die 'already displayed';
+ log::l('HERE: ', join(',', map { $_->[1] } @solutions));
+ $o->ask_from_({
+ title => N("Partitioning"),
+ interactive_help_id => 'doPartitionDisks',
+ },
+ [
+ { label => N("The DrakX Partitioning wizard found the following solutions:"), title => $::isInstall },
+ { val => \$sol, list => \@solutions, format => sub { $_[0][1] }, type => 'list' },
+ ]);
+ }
log::l("partitionWizard calling solution $sol->[1]");
my $ok = eval { $sol->[2]->() };
- $@ and $o->ask_warn('', N("Partitioning failed: %s", formatError($@)));
+ if (my $err = $@) {
+ if ($err =~ /wizcancel/) {
+ $_->destroy foreach $::WizardTable->get_children;
+ } else {
+ log::l("Partitioning failed: $err");
+ $o->ask_warn('', N("Partitioning failed: %s", formatError($err)));
+ }
+ }
$ok or goto &main;
1;
}
+=back
+
+=cut
+
1;
diff --git a/perl-install/fs/proc_partitions.pm b/perl-install/fs/proc_partitions.pm
index c0fc8efc4..ea714ca5b 100644
--- a/perl-install/fs/proc_partitions.pm
+++ b/perl-install/fs/proc_partitions.pm
@@ -1,4 +1,4 @@
-package fs::proc_partitions; # $Id$
+package fs::proc_partitions;
use common;
@@ -6,8 +6,12 @@ use common;
sub read_raw() {
my (undef, undef, @all) = cat_("/proc/partitions");
grep {
- $_->{size} != 1 && # skip main extended partition
- $_->{size} != 0x3fffffff; # skip cdroms (otherwise stops cd-audios)
+ $_->{size} != 1 && # skip main extended partition
+ $_->{size} != 0x3fffffff && # skip cdroms (otherwise stops cd-audios)
+ $_->{dev} !~ /mmcblk\d+[^p]/; # only keep partitions like mmcblk0p0
+ # not mmcblk0rpmb or mmcblk0boot0 as they
+ # are not in the partition table and
+ # things will break (mga#15759)
} map {
my %l;
@l{qw(major minor size dev)} = split;
@@ -16,7 +20,7 @@ sub read_raw() {
}
sub read {
- my ($hds) = @_;
+ my ($hds, $o_ignore_fstype) = @_;
my @all = read_raw();
my ($parts, $_disks) = partition { $_->{dev} =~ /\d$/ && $_->{dev} !~ /^(sr|scd)/ } @all;
@@ -36,7 +40,7 @@ sub read {
$part->{size} *= 2; # from KB to sectors
$part->{start} = $prev_part ? $prev_part->{start} + $prev_part->{size} : 0;
require fs::type;
- put_in_hash($part, fs::type::type_subpart_from_magic($part));
+ put_in_hash($part, fs::type::type_subpart_from_magic($part)) if !$o_ignore_fstype;
$prev_part = $part;
delete $part->{dev}; # cleanup
}
@@ -46,8 +50,11 @@ sub read {
sub compare {
my ($hd) = @_;
+ eval { $hd->isa('partition_table::lvm') } and return;
+
+
my @l1 = partition_table::get_normal_parts($hd);
- my @l2 = grep { $_->{rootDevice} eq $hd->{device} } &read([$hd]);
+ my @l2 = grep { $_->{rootDevice} eq $hd->{device} } &read([$hd], 1);
#- /proc/partitions includes partition with type "empty" and a non-null size
#- so add them for comparison
@@ -58,7 +65,7 @@ sub compare {
log::l("not using /proc/partitions because of the presence of solaris extended partition"); #- cf #33866
} else {
die sprintf(
- "/proc/partitions does not agree with drakx %d != %d:\n%s\n", $len1, $len2,
+ "/proc/partitions does not agree with drakx %d != %d for %s:\n%s\n", $len1, $len2, $hd->{device},
"/proc/partitions: " . join(", ", map { "$_->{device} ($_->{rootDevice})" } @l2));
}
}
diff --git a/perl-install/fs/remote.pm b/perl-install/fs/remote.pm
index ea22a04af..ea5944a25 100644
--- a/perl-install/fs/remote.pm
+++ b/perl-install/fs/remote.pm
@@ -1,4 +1,4 @@
-package fs::remote; # $Id$
+package fs::remote;
use strict;
use diagnostics;
diff --git a/perl-install/fs/remote/davfs.pm b/perl-install/fs/remote/davfs.pm
new file mode 100644
index 000000000..890530cb9
--- /dev/null
+++ b/perl-install/fs/remote/davfs.pm
@@ -0,0 +1,99 @@
+package fs::remote::davfs;
+
+use strict;
+use diagnostics;
+
+use common;
+use fs::mount_options;
+
+sub secrets_file() { "$::prefix/etc/davfs2/secrets" }
+
+sub fstab_entry_to_credentials {
+ my ($part) = @_;
+
+ my ($options, $unknown) = fs::mount_options::unpack($part);
+ my %h = map { $_ => delete $options->{"$_="} } qw(username password);
+ foreach (qw(username password)) {
+ $h{$_} ||= 'nobody';
+ }
+ $h{mntpoint} = $part->{mntpoint} or return;
+ fs::mount_options::pack_($part, $options, $unknown), \%h;
+}
+
+sub save_credentials {
+ my ($credentials) = @_;
+ @$credentials or return;
+
+ output_with_perm(secrets_file(), 0600,
+ map { to_double_quoted($_->{mntpoint}, $_->{username}, $_->{password}) . "\n" } @$credentials);
+}
+
+sub mountpoint_credentials_save {
+ my ($mntpoint, $mount_opt) = @_;
+ my @entries = read_credentials_raw();
+ my $entry = find { $mntpoint eq $_->{mntpoint} } @entries;
+ die "mountpoint not found" if !$entry;
+ my %h;
+ foreach (@$mount_opt) {
+ my @var = split(/=/);
+ $h{$var[0]} = $var[1];
+ }
+ foreach my $key (qw(username password)) {
+ $entry->{$key} = $h{$key};
+ }
+ save_credentials(\@entries);
+}
+
+
+sub read_credentials_raw() {
+ from_double_quoted(cat_(secrets_file()));
+}
+
+sub read_credentials {
+ my ($mntpoint) = @_;
+ find { $mntpoint eq $_->{mntpoint} } read_credentials_raw();
+}
+
+# Comments are indicated by a '#' character and the rest of the line
+# is ignored. Empty lines are ignored too.
+#
+# Each line consists of two or three items separated by spaces or tabs.
+# If an item contains one of the characters space, tab, #, \ or ", this
+# character must be escaped by a preceding \. Alternatively, the item
+# may be enclosed in double quotes.
+
+sub from_double_quoted {
+ my ($file) = @_;
+ my @l;
+ my @lines = split("\n",$file);
+ foreach (@lines) {
+ my ($mnt, $user, $pass, $comment);
+ if (/^\s*(#.*)?$/) {
+ $comment = $1;
+ } else {
+ if (/^(?:"((?:\\.|[^"])*)"|((?:\\.|[^"\s#])+))\s+(?:"((?:\\.|[^"])*)"|((?:\\.|[^"\s#])+))(?:\s+(?:"((?:\\.|[^"])*)"|((?:\\.|[^"\s#])+)))?(?:\s*|\s*(#.*))?$/) {
+ $mnt = "$1$2";
+ $mnt =~ s/\\(.)/$1/g;
+ $user = "$3$4";
+ $user =~ s/\\(.)/$1/g;
+ $pass = "$5$6";
+ $pass =~ s/\\(.)/$1/g;
+ $comment=$7;
+ } else {
+ die "bad entry $_";
+ }
+ }
+ push @l, { 'mntpoint' => $mnt, 'username' => $user, 'password' => $pass, 'comment' => $comment };
+ }
+ @l;
+}
+
+sub to_double_quoted {
+ my (@l) = @_;
+ join(' ', map {
+ s/(["\\])/\\$1/g;
+ /\s/ ? qq("$_") : $_;
+ } @l);
+}
+
+1;
diff --git a/perl-install/fs/remote/nfs.pm b/perl-install/fs/remote/nfs.pm
index f946a4323..f7a98cb69 100644
--- a/perl-install/fs/remote/nfs.pm
+++ b/perl-install/fs/remote/nfs.pm
@@ -1,10 +1,11 @@
-package fs::remote::nfs; # $Id$
+package fs::remote::nfs;
use strict;
use diagnostics;
use common;
use fs::remote;
+use network::tools;
use log;
our @ISA = 'fs::remote';
@@ -28,31 +29,36 @@ sub to_dev_raw {
sub check {
my ($_class, $in) = @_;
- $in->do_pkgs->ensure_binary_is_installed('nfs-utils-clients', 'showmount') or return;
- system('/etc/init.d/portmap start') if system('/etc/init.d/portmap status') != 0;
+ $in->do_pkgs->ensure_files_are_installed([ [ qw(nfs-utils showmount) ] , [ qw(nmap nmap) ] ]);
+ require services;
+ services::start_not_running_service('rpcbind');
+ services::start('nfs-common'); #- TODO: once nfs-common is fixed, it could use start_not_running_service()
1;
}
sub find_servers {
- open(my $F2, "rpcinfo-flushed -b mountd 2 |");
- open(my $F3, "rpcinfo-flushed -b mountd 3 |");
-
- common::nonblock($F2);
- common::nonblock($F3);
- my $domain = chomp_(`domainname`);
- my ($s, %servers);
- my $quit;
- while (!$quit) {
- $quit = 1;
- sleep 1;
- while ($s = <$F2> || <$F3>) {
- $quit = 0;
- my ($ip, $name) = $s =~ /(\S+)\s+(\S+)/ or log::explanations("bad line in rpcinfo output"), next;
- $name =~ s/\.$//;
- $name =~ s/\Q.$domain\E$//;
- $servers{$ip} ||= { ip => $ip, if_($name ne '(unknown)', name => $name) };
+ my @hosts;
+ my %servers;
+ my @routes = cat_("/proc/net/route");
+ @routes = reverse(@routes) if common::cmp_kernel_versions(c::kernel_version(), "2.6.39") >= 0;
+ foreach (@routes) {
+ if (/^(\S+)\s+([0-9A-F]+)\s+([0-9A-F]+)\s+[0-9A-F]+\s+\d+\s+\d+\s+(\d+)\s+([0-9A-F]+)/) {
+ my $net = network::tools::host_hex_to_dotted($2);
+ my $gateway = $3;
+ # get the netmask in binary and remove leading zeros
+ my $mask = unpack('B*', pack('h*', $5));
+ $mask =~ s/^0*//;
+ push @hosts, $net . "/" . length($mask) if $gateway eq '00000000' && $net ne '169.254.0.0';
}
+ }
+ # runs the nmap command on the local subnet
+ my $cmd = "/usr/bin/nmap -p 111 --open --system-dns -oG - " . (join ' ',@hosts);
+ open my $FH, "$cmd |" or die "Could not perform nmap scan - $!";
+ foreach (<$FH>) {
+ my ($ip, $name) = /^H\S+\s(\S+)\s+\((\S*)\).+Port/ or next;
+ $servers{$ip} ||= { ip => $ip, name => $name || $ip };
}
+ close $FH;
values %servers;
}
diff --git a/perl-install/fs/remote/smb.pm b/perl-install/fs/remote/smb.pm
index 933941326..d440fc174 100644
--- a/perl-install/fs/remote/smb.pm
+++ b/perl-install/fs/remote/smb.pm
@@ -1,11 +1,10 @@
-package fs::remote::smb; # $Id$
+package fs::remote::smb;
use strict;
use diagnostics;
use common;
use fs::mount_options;
-use network::network;
use fs::remote;
@@ -13,7 +12,7 @@ our @ISA = 'fs::remote';
sub to_fstab_entry {
my ($class, $e) = @_;
- my $part = $class->to_fstab_entry_raw($e, 'smbfs');
+ my $part = $class->to_fstab_entry_raw($e, 'cifs');
if ($e->{server}{username}) {
my ($options, $unknown) = fs::mount_options::unpack($part);
$options->{"$_="} = $e->{server}{$_} foreach qw(username password domain);
@@ -54,9 +53,11 @@ sub smbclient {
}
sub find_servers {
- my (undef, @l) = `nmblookup "*"`;
+ my (undef, @l) = `nmblookup "*"; nmblookup -M -- -`;
s/\s.*\n// foreach @l;
+ require network::network;
my @servers = grep { network::network::is_ip($_) } @l;
+ return unless @servers;
my %servers;
$servers{$_}{ip} = $_ foreach @servers;
my ($ip, $browse);
@@ -124,7 +125,7 @@ sub fstab_entry_to_credentials {
my ($options, $unknown) = fs::mount_options::unpack($part);
$options->{'username='} && $options->{'password='} or return;
- my %h = map { $_ => delete $options->{"$_="} } qw(username domain password);
+ my %h = map { $_ => delete $options->{"$_="} } qw(username password);
$h{file} = $options->{'credentials='} = to_credentials($server_name, $h{username});
fs::mount_options::pack_($part, $options, $unknown), \%h;
}
@@ -137,7 +138,7 @@ sub remove_bad_credentials {
sub save_credentials {
my ($credentials) = @_;
my $file = $credentials->{file};
- output_with_perm("$::prefix$file", 0640, map { "$_ = $credentials->{$_}\n" } qw(username domain password));
+ output_with_perm("$::prefix$file", 0640, map { "$_=$credentials->{$_}\n" } qw(username password));
}
diff --git a/perl-install/fs/type.pm b/perl-install/fs/type.pm
index 610802ac8..141d5b5e2 100644
--- a/perl-install/fs/type.pm
+++ b/perl-install/fs/type.pm
@@ -1,4 +1,4 @@
-package fs::type; # $Id$
+package fs::type;
use diagnostics;
use strict;
@@ -6,11 +6,20 @@ use strict;
use common;
use devices;
+=head1 SYNOPSYS
+
+B<fs::type> enables to perform various tests on filesystem types.
+
+=head1 Functions
+
+=over
+
+=cut
our @ISA = qw(Exporter);
our @EXPORT = qw(
- isEmpty isExtended isTrueLocalFS isTrueFS isDos isSwap isOtherAvailableFS isRawLVM isRawRAID isRAID isLVM isMountableRW isNonMountable isPartOfLVM isPartOfRAID isPartOfLoopback isLoopback isMounted isBusy isSpecial isApple isAppleBootstrap isWholedisk isFat_or_NTFS
- maybeFormatted set_isFormatted
+ isBlockCheckable isEmpty isExtended isFormatable isTrueLocalFS isTrueFS isDos isSwap isOtherAvailableFS isRawLVM isRawRAID isRawLUKS isRAID isLVM isLUKS isMountableRW isNonMountable isPartOfLVM isPartOfRAID isPartOfLoopback isLoopback isMounted isBusy isSpecial isApple isAppleBootstrap isBIOS_GRUB isESP isFat_or_NTFS isnormal_Fat_or_NTFS isRecovery
+ maybeFormatted set_isFormatted defaultFS
);
@@ -22,26 +31,25 @@ my (%type_name2pt_type, %type_name2fs_type, %fs_type2pt_type, %pt_type2fs_type,
0x82 => 'swap', 'Linux swap',
0x83 => 'ext2', 'Linux native',
0x83 => 'ext3', 'Journalised FS: ext3',
- 0x83 => 'reiserfs', 'Journalised FS: ReiserFS',
-if_(arch() =~ /ppc|i.86|ia64|x86_64/,
- 0x83 => 'xfs', 'Journalised FS: XFS',
+ 0x83 => 'ext4', 'Journalised FS: ext4',
+ 0x83 => 'btrfs', 'Journalised FS: Btrfs',
+(is_uefi() ?
+ (0xef => 'vfat', 'EFI System Partition') :
+ ('BIOS_GRUB' => 'BIOS_GRUB', 'BIOS boot or Empty partition')
),
-if_(arch() =~ /ppc|i.86|x86_64/,
+if_(arch() =~ /i.86|x86_64/,
+ 0x83 => 'xfs', 'Journalised FS: XFS',
0x83 => 'jfs', 'Journalised FS: JFS',
-),
-if_(arch() =~ /i.86|ia64|x86_64/,
0x0b => 'vfat', 'FAT32',
- 0x07 => 'ntfs', 'NTFS',
0x07 => 'ntfs-3g', 'NTFS-3G',
-),
-if_(arch() =~ /ppc/,
- 0x401 => '', 'Apple Bootstrap',
- 0x402 => 'hfs', 'Apple HFS Partition',
- 0x41 => '', 'PPC PReP Boot',
+ 0x07 => 'ntfs', 'NTFS',
+ 0x07 => 'ntfs3', 'NTFS3',
+ 0x07 => 'exfat', 'exFAT',
),
],
non_fs_type => [
+ 0x83 => '', 'Encrypted',
0x8e => '', 'Linux Logical Volume Manager',
0xfd => '', 'Linux RAID',
],
@@ -54,20 +62,7 @@ if_(arch() =~ /ppc/,
],
other => [
- if_(arch() =~ /^ia64/,
- 0x100 => '', 'Various',
-), if_(arch() =~ /^ppc/,
- 0x401 => 'apple', 'Apple Partition',
-), if_(arch() =~ /^sparc/,
- 0x01 => 'ufs', 'SunOS boot',
- 0x02 => 'ufs', 'SunOS root',
- 0x03 => '', 'SunOS swap',
- 0x04 => 'ufs', 'SunOS usr',
- 0x05 => '', 'Whole disk',
- 0x06 => 'ufs', 'SunOS stand',
- 0x07 => 'ufs', 'SunOS var',
- 0x08 => 'ufs', 'SunOS home',
-), if_(arch() =~ /^i.86|x86_64/,
+ if_(arch() =~ /^i.86|x86_64/,
0x01 => 'vfat', 'FAT12',
0x02 => '', 'XENIX root',
0x03 => '', 'XENIX usr',
@@ -94,9 +89,7 @@ if_(arch() =~ /ppc/,
0x39 => '', 'Plan 9',
0x3c => '', 'PartitionMagic recovery',
0x40 => '', 'Venix 80286',
-if_(arch() !~ /ppc/,
0x41 => '', 'PPC PReP Boot',
-),
0x42 => '', 'SFS',
0x4d => '', 'QNX4.x',
0x4e => '', 'QNX4.x 2nd part',
@@ -117,9 +110,9 @@ if_(arch() !~ /ppc/,
0x75 => '', 'PC/IX',
0x80 => '', 'Old Minix',
0x81 => '', 'Minix / old Linux',
- if_(!$::isInstall,
- 0x83 => 'reiser4', 'Journalised FS: Reiser4',
- ),
+ 0x83 => 'f2fs', 'Journalised FS: F2FS',
+ 0x83 => 'reiserfs', 'Journalised FS: ReiserFS',
+ 0x83 => 'nilfs2', 'Journalised FS: NILFS2',
0x84 => '', 'OS/2 hidden C: drive',
0x86 => '', 'NTFS volume set (0x86)',
0x87 => '', 'NTFS volume set (0x87)',
@@ -151,7 +144,6 @@ if_(arch() !~ /ppc/,
0xe4 => '', 'SpeedStor (FAT-16)',
0xeb => 'befs', 'BeOS fs',
0xee => '', 'EFI GPT',
- 0xef => 'vfat', 'EFI (FAT-12/16/32)',
0xf0 => '', 'Linux/PA-RISC boot',
0xf4 => '', 'SpeedStor (large part.)',
0xf2 => '', 'DOS secondary',
@@ -181,11 +173,12 @@ if_(arch() !~ /ppc/,
sub type_names {
my ($expert, $o_hd) = @_;
my @l = @{$type_names{important}};
- push @l, @{$type_names{non_fs_type}}, sort @{$type_names{other}} if $expert;
- if ($o_hd && !$o_hd->use_pt_type) {
- warn "$_ => $type_name2fs_type{$_}\n" foreach @l;
+ push @l, grep { $_ ne 'Encrypted' } @{$type_names{non_fs_type}};
+ push @l, sort @{$type_names{other}} if $expert;
+ # not show partition types which have no associated filesystem for LVM LV:
+ if ($o_hd && isLVM($o_hd)) {
@l = grep { $type_name2fs_type{$_} } @l;
- @l = uniq_ { $type_name2fs_type{$_[0]} } @l;
+ @l = uniq_ { $type_name2fs_type{$_} } @l;
(@l, @{$type_names{non_fs_type}});
} else {
@l;
@@ -195,7 +188,8 @@ sub type_names {
sub type_name2subpart {
my ($name) = @_;
exists $type_name2fs_type{$name} &&
- { fs_type => $type_name2fs_type{$name}, pt_type => $type_name2pt_type{$name} };
+ { type_name => $name,
+ fs_type => $type_name2fs_type{$name}, pt_type => $type_name2pt_type{$name} };
}
sub part2type_name {
@@ -266,19 +260,20 @@ sub fs_type_from_magic {
}
}
-sub call_vol_id {
+sub call_blkid {
my ($part) = @_;
+ # IMPORTANT: Always use the -p argument with blkid. See r7324 commit msg
my %h = map {
if_(/(.*?)=(.*)/, $1 => $2);
- } run_program::get_stdout('vol_id', devices::make($part->{device}));
+ } run_program::get_stdout_raw({ timeout => 30 }, 'blkid', '2>', '/dev/null', '-o', 'udev', '-p', devices::make($part->{device}));
\%h;
}
sub type_subpart_from_magic {
my ($part) = @_;
- my $ids = call_vol_id($part);
+ my $ids = call_blkid($part);
my $p;
if ($ids->{ID_FS_USAGE} eq 'raid') {
@@ -289,54 +284,118 @@ sub type_subpart_from_magic {
}->{$ids->{ID_FS_TYPE}};
$p = type_name2subpart($name) if $name;
- } elsif ($ids->{ID_FS_TYPE}) {
- $p = fs_type2subpart($ids->{ID_FS_TYPE}) or log::l("unknown filesystem $ids->{ID_FS_TYPE} returned by vol_id");
+ } elsif ($ids->{ID_FS_USAGE} eq 'crypto') {
+ $p = type_name2subpart('Encrypted');
+ } elsif (my $fs_type = $ids->{ID_FS_TYPE}) {
+ $fs_type = 'ntfs-3g' if $fs_type eq 'ntfs';
+ $p = fs_type2subpart($fs_type) or log::l("unknown filesystem $fs_type returned by blkid");
}
if ($p) {
+ $p->{fs_type} = '' if $part->{pt_type} eq 'BIOS_GRUB' && $p->{fs_type} ne 'iso9660';
$part->{fs_type_from_magic} = $p->{fs_type};
$p->{device_LABEL} = $ids->{ID_FS_LABEL} if $ids->{ID_FS_LABEL};
$p->{device_UUID} = $ids->{ID_FS_UUID} if $ids->{ID_FS_UUID};
+ log::l("blkid gave: $p->{fs_type} $p->{device_UUID} $p->{device_LABEL}");
}
$p;
}
-sub true_local_fs_types() { qw(ext3 ext2 reiserfs reiser4 xfs jfs) }
-
-sub isEmpty { !$_[0]{fs_type} && $_[0]{pt_type} == 0 }
-sub isEfi { arch() =~ /ia64/ && $_[0]{pt_type} == 0xef }
-sub isWholedisk { arch() =~ /^sparc/ && $_[0]{pt_type} == 5 }
-sub isExtended { arch() !~ /^sparc/ && ($_[0]{pt_type} == 5 || $_[0]{pt_type} == 0xf || $_[0]{pt_type} == 0x85) }
-sub isRawLVM { $_[0]{pt_type} == 0x8e }
-sub isRawRAID { $_[0]{pt_type} == 0xfd }
+# helpers
+sub defaultFS() { 'ext4' }
+sub true_local_fs_types() { qw(btrfs ext3 ext2 ext4 f2fs reiserfs xfs jfs) }
+
+sub isEmpty { !$_[0]{fs_type} && !$_[0]{pt_type} }
+sub isBIOS_GRUB { $_[0]{pt_type} eq 'BIOS_GRUB' }
+sub isESP { $_[0]{pt_type} == 0xef && member($_[0]{fs_type}, qw(fat32 vfat)) }
+sub isExtended { $_[0]{pt_type} == 5 || $_[0]{pt_type} == 0xf || $_[0]{pt_type} == 0x85 }
+sub isBlockCheckable { !member($_[0]{fs_type}, qw(btrfs hfs ntfs ntfs-3g reiserfs xfs)) }
+sub isRawLVM { $_[0]{pt_type} == 0x8e || $_[0]{type_name} eq 'Linux Logical Volume Manager' }
+sub isRawRAID { $_[0]{pt_type} == 0xfd || $_[0]{type_name} eq 'Linux RAID' }
+sub isRawLUKS { $_[0]{type_name} eq 'Encrypted' }
sub isSwap { $_[0]{fs_type} eq 'swap' }
-sub isDos { arch() !~ /^sparc/ && ${{ 1 => 1, 4 => 1, 6 => 1 }}{$_[0]{pt_type}} }
-sub isFat_or_NTFS { member($_[0]{fs_type}, 'vfat', 'ntfs', 'ntfs-3g') }
+sub isDos { ${{ 1 => 1, 4 => 1, 6 => 1 }}{$_[0]{pt_type}} }
+sub isFat_or_NTFS { member($_[0]{fs_type}, qw(vfat ntfs ntfs3 ntfs-3g)) }
+sub isnormal_Fat_or_NTFS { grep { isFat_or_NTFS($_) && !isESP($_) && !isRecovery($_) } @_ }
sub isApple { $_[0]{pt_type} == 0x401 && defined $_[0]{isDriver} }
sub isAppleBootstrap { $_[0]{pt_type} == 0x401 && defined $_[0]{isBoot} }
+sub isRecovery {
+ isFat_or_NTFS($_[0]) && ($_[0]{type_name} =~ /^Hidden/ ||
+ $_[0]{pt_type} == 0x12 || # "Compaq diagnostics"
+ member($_[0]{device_LABEL} ,
+ # Extracted from /usr/lib/udev/rules.d/80-udisks2.rules
+ # Hopefuly we'll ask to udev/udisk2 someday
+ # generated by grep Recovery /usr/lib/udev/rules.d/80-udisks2.rules :
+ qw(Recovery RECOVERY Lenovo_Recovery HP_RECOVERY Recovery_Partition DellUtility DellRestore IBM_SERVICE SERVICEV001 SERVICEV002 SYSTEM_RESERVED System_Reserved WINRE_DRV DIAGS IntelRST),
+ # gathered over the years (Hald, mga#1371, mga#15999):
+ qw(PQSERVICE Packard_Bell Push_Button_Reset SYSTEM_DRV))
+ );
+}
+
+=item isTrueLocalFS($part)
+
+Like isTrueFS(), to make a distinction between ext3/reiserfs/... and NFS
+ => allow /home on NFS
+
+=cut
+
+sub isTrueFS { isTrueLocalFS($_[0]) || $_[0]{fs_type} eq 'nfs' }
+
+=item isTrueFS($part)
+
+Is is a general purpose file system with the right Unix properties
+
+=cut
-sub isTrueFS { isTrueLocalFS($_[0]) || member($_[0]{fs_type}, qw(nfs)) }
sub isTrueLocalFS { member($_[0]{fs_type}, true_local_fs_types()) }
-sub isOtherAvailableFS { isEfi($_[0]) || isFat_or_NTFS($_[0]) || member($_[0]{fs_type}, 'ufs', 'hfs', 'iso9660') } #- other OS that linux can access its filesystem
+=item isOtherAvailableFS($part)
+
+Is it another OS that linux can access its filesystem
+
+=cut
+
+sub isOtherAvailableFS { isESP($_[0]) || isFat_or_NTFS($_[0]) || member($_[0]{fs_type}, 'ufs', 'hfs', 'iso9660', 'nilfs2', 'exfat') }
sub isMountableRW { (isTrueFS($_[0]) || isOtherAvailableFS($_[0])) && $_[0]{fs_type} ne 'ntfs' }
+sub cannotBeMountable {
+ my ($part) = @_;
+ isRawRAID($part) || isRawLUKS($part) || isRawLVM($part) || isBIOS_GRUB($part);
+}
+
+=item isFormatable($part)
+
+Is not a special sg that cannot be mounted/formatted (parts of RAID/LVM, BIOS_GRUB). Basically the reverse of cannotBeMountable().
+
+=cut
+
+sub isFormatable {
+ my ($part) = @_;
+ !cannotBeMountable($part);
+}
+
sub isNonMountable {
my ($part) = @_;
- isRawRAID($part) || isRawLVM($part) || $part->{fs_type} eq 'ntfs' && !$part->{isFormatted} && $part->{notFormatted};
+ cannotBeMountable($part) || $part->{fs_type} eq 'ntfs' && !$part->{isFormatted} && $part->{notFormatted};
}
sub isPartOfLVM { defined $_[0]{lvm} }
sub isPartOfRAID { defined $_[0]{raid} }
sub isPartOfLoopback { defined $_[0]{loopback} }
-sub isRAID { $_[0]{device} =~ /^md/ }
+sub isRAID { $_[0]{device} =~ /^md/ && defined $_[0]{level} }
sub isUBD { $_[0]{device} =~ /^ubd/ } #- should be always true during an $::uml_install
sub isLVM { $_[0]{VG_name} || $_[0]{lv_name} }
+sub isLUKS { defined $_[0]{dmcrypt_name} }
sub isLoopback { defined $_[0]{loopback_file} }
sub isMounted { $_[0]{isMounted} }
-sub isBusy { isMounted($_[0]) || isPartOfRAID($_[0]) || isPartOfLVM($_[0]) || isPartOfLoopback($_[0]) }
+sub isBusy { isMounted($_[0]) || isPartOfRAID($_[0]) || isPartOfLVM($_[0]) || $_[0]{dm_active} || isPartOfLoopback($_[0]) }
sub isSpecial { isRAID($_[0]) || isLVM($_[0]) || isLoopback($_[0]) || isUBD($_[0]) }
-#- not for partitions, but for hds:
+=item is_dmraid($hd)
+
+Check that a disk (not a partition) is in a fake/soft RAID
+
+=cut
+
sub is_dmraid { $_[0]{bus} =~ /^dmraid_/ }
sub can_be_this_fs_type {
@@ -361,24 +420,37 @@ sub set_isFormatted {
delete $part->{fs_type_from_magic};
}
-#- do this before modifying $part->{fs_type}
+=item check($fs_type, $_hd, $part)
+
+Called before before modifying $part->{fs_type}
+
+=cut
+
sub check {
my ($fs_type, $_hd, $part) = @_;
- $fs_type eq "jfs" && $part->{size} < MB(16) and die N("You can not use JFS for partitions smaller than 16MB");
- $fs_type eq "reiserfs" && $part->{size} < MB(32) and die N("You can not use ReiserFS for partitions smaller than 32MB");
+ $fs_type eq "jfs" && $part->{size} < MB(16) and die N("You cannot use JFS for partitions smaller than 16MB");
+ $fs_type eq "reiserfs" && $part->{size} < MB(32) and die N("You cannot use ReiserFS for partitions smaller than 32MB");
+ $fs_type eq "btrfs" && $part->{size} < MB(256) and die N("You cannot use btrfs for partitions smaller than 256MB");
}
sub guessed_by_mount() {
grep { $_ && !/nodev/ } chomp_(cat_('/etc/filesystems'));
}
-sub directories_needed_to_boot() {
+sub directories_needed_to_boot_not_ESP() {
qw(/ /usr /var /boot /tmp);
}
+sub directories_needed_to_boot() {
+ directories_needed_to_boot_not_ESP(), '/boot/EFI';
+}
sub carry_root_loopback {
my ($part) = @_;
any { $_->{mntpoint} eq '/' } @{$part->{loopback} || []};
}
+=back
+
+=cut
+
1;
diff --git a/perl-install/fs/wild_device.pm b/perl-install/fs/wild_device.pm
index 5d6ea5e86..ff5a32253 100644
--- a/perl-install/fs/wild_device.pm
+++ b/perl-install/fs/wild_device.pm
@@ -1,8 +1,8 @@
-package fs::wild_device; # $Id$
+package fs::wild_device;
use diagnostics;
use strict;
-
+use devices;
use common;
@@ -11,19 +11,19 @@ sub analyze {
if ($dev =~ m!^/u?dev/(.*)!) {
'dev', $dev;
- } elsif ($dev !~ m!^/! && (-e "/dev/$dev" || -e "$::prefix/dev/$dev")) {
+ } elsif ($dev !~ m!^/! && (-e "/dev/$dev" || -e "/dev/$dev")) {
'dev', "/dev/$dev";
} elsif ($dev =~ /^LABEL=(.*)/) {
'label', $1;
} elsif ($dev =~ /^UUID=(.*)/) {
'uuid', $1;
- } elsif ($dev eq 'none' || $dev eq 'rootfs') {
+ } elsif (member($dev, qw(none rootfs))) {
'virtual';
- } elsif ($dev =~ m!^(\S+):/\w!) {
+ } elsif ($dev =~ m!^(\S+):/(\w|$)!) {
'nfs';
} elsif ($dev =~ m!^//\w!) {
'smb';
- } elsif ($dev =~ m!^http://!) {
+ } elsif ($dev =~ m!^https?://!) {
'dav';
}
}
@@ -40,16 +40,16 @@ sub to_subpart {
$part->{device_UUID} = $val;
} elsif ($kind eq 'dev') {
my %part = (faked_device => 0);
- if (my $rdev = (stat "$::prefix$dev")[6]) {
+ if (my $rdev = (stat "$dev")[6]) {
($part{major}, $part{minor}) = unmakedev($rdev);
}
- my $symlink = readlink("$::prefix$dev");
+ my $symlink = $dev !~ m!mapper/! ? readlink("$dev") : undef;
$dev =~ s!/u?dev/!!;
if ($symlink && $symlink !~ m!^/!) {
my $keep = 1;
- if ($symlink =~ m!/!) {
+ if ($symlink =~ m!/! || $dev =~ m!/!) {
$symlink = MDK::Common::File::concat_symlink("/dev/" . dirname($dev), $symlink);
$symlink =~ s!^/dev/!! or $keep = 0;
}
@@ -67,7 +67,7 @@ sub to_subpart {
return \%part;
}
} else {
- if ($dev =~ m!^/! && -f "$::prefix$dev") {
+ if ($dev =~ m!^/! && -f "$dev") {
#- it must be a loopback file or directory to bind
} else {
log::l("part_from_wild_device_name: unknown device $dev");
@@ -76,6 +76,12 @@ sub to_subpart {
$part;
}
+sub _prefer_device_UUID {
+ my ($part) = @_;
+ $part->{prefer_device_UUID} ||
+ !$::no_uuid_by_default && devices::should_prefer_UUID($part->{device});
+}
+
sub from_part {
my ($prefix, $part) = @_;
@@ -83,7 +89,7 @@ sub from_part {
'LABEL=' . $part->{device_LABEL};
} elsif ($part->{device_alias}) {
"/dev/$part->{device_alias}";
- } elsif (!$part->{prefer_device} && ($part->{prefer_device_UUID} || $::isInstall && $::o->{uuid_by_default}) && $part->{device_UUID}) {
+ } elsif (!$part->{prefer_device} && $part->{device_UUID} && _prefer_device_UUID($part)) {
'UUID=' . $part->{device_UUID};
} else {
my $faked_device = exists $part->{faked_device} ?
diff --git a/perl-install/fsedit.pm b/perl-install/fsedit.pm
index bb6f3210a..d209b0196 100644
--- a/perl-install/fsedit.pm
+++ b/perl-install/fsedit.pm
@@ -1,8 +1,9 @@
-package fsedit; # $Id$
+package fsedit;
use diagnostics;
use strict;
use vars qw(%suggestions);
+use feature 'state';
#-######################################################################################
#- misc imports
@@ -19,34 +20,56 @@ use devices;
use log;
use fs;
+# min_hd_size: only suggest this partition if the hd size is bigger than that
%suggestions = (
N_("simple") => [
- { mntpoint => "/", size => MB(300), fs_type => 'ext3', ratio => 5, maxsize => MB(8000) },
- { mntpoint => "swap", size => MB(64), fs_type => 'swap', ratio => 1, maxsize => MB(4000) },
- { mntpoint => "/home", size => MB(300), fs_type => 'ext3', ratio => 3 },
+ { mntpoint => "/", size => MB(300), fs_type => defaultFS(), ratio => 6, maxsize => MB(51500) },
+ { mntpoint => "swap", size => MB(256), fs_type => 'swap', ratio => 1, maxsize => MB(4096) },
+ { mntpoint => "/home", size => MB(300), fs_type => defaultFS(), ratio => 12, min_hd_size => MB(51200) },
], N_("with /usr") => [
- { mntpoint => "/", size => MB(250), fs_type => 'ext3', ratio => 1, maxsize => MB(4000) },
+ { mntpoint => "/", size => MB(250), fs_type => defaultFS(), ratio => 1, maxsize => MB(8000) },
{ mntpoint => "swap", size => MB(64), fs_type => 'swap', ratio => 1, maxsize => MB(4000) },
- { mntpoint => "/usr", size => MB(300), fs_type => 'ext3', ratio => 4, maxsize => MB(8000) },
- { mntpoint => "/home", size => MB(100), fs_type => 'ext3', ratio => 3 },
+ { mntpoint => "/usr", size => MB(300), fs_type => defaultFS(), ratio => 4, maxsize => MB(8000) },
+ { mntpoint => "/home", size => MB(100), fs_type => defaultFS(), ratio => 3, min_hd_size => MB(10000) },
], N_("server") => [
- { mntpoint => "/", size => MB(150), fs_type => 'ext3', ratio => 1, maxsize => MB(4000) },
+ { mntpoint => "/", size => MB(150), fs_type => defaultFS(), ratio => 1, maxsize => MB(8000) },
{ mntpoint => "swap", size => MB(64), fs_type => 'swap', ratio => 2, maxsize => MB(4000) },
- { mntpoint => "/usr", size => MB(300), fs_type => 'ext3', ratio => 4, maxsize => MB(8000) },
- { mntpoint => "/var", size => MB(200), fs_type => 'ext3', ratio => 3 },
- { mntpoint => "/home", size => MB(150), fs_type => 'ext3', ratio => 3 },
- { mntpoint => "/tmp", size => MB(150), fs_type => 'ext3', ratio => 2, maxsize => MB(4000) },
+ { mntpoint => "/usr", size => MB(300), fs_type => defaultFS(), ratio => 4, maxsize => MB(8000) },
+ { mntpoint => "/var", size => MB(200), fs_type => defaultFS(), ratio => 3 },
+ { mntpoint => "/home", size => MB(150), fs_type => defaultFS(), ratio => 3, min_hd_size => MB(10000) },
+ { mntpoint => "/tmp", size => MB(150), fs_type => defaultFS(), ratio => 2, maxsize => MB(4000) },
],
);
-foreach (values %suggestions) {
- if (arch() =~ /ia64/) {
- @$_ = ({ mntpoint => "/boot/efi", size => MB(50), pt_type => 0xef, ratio => 1, maxsize => MB(150) }, @$_);
+my %bck_suggestions = %suggestions;
+
+sub init_mntpnt_suggestions {
+ my ($all_hds, $o_target, $o_force) = @_;
+
+ my $device = $o_target ? $o_target->{device} : 'all';
+ state $last_device;
+ return if $device eq $last_device && !$o_force;
+ $last_device = $device;
+
+ #- If installing on a removable device, assume that the user wants that device to be self-bootable.
+ my $is_removable = $o_target && $o_target->{is_removable};
+ my @fstab = $is_removable ? partition_table::get_normal_parts($o_target) : fs::get::fstab($all_hds);
+
+ my $mntpoint;
+ # only suggests /boot/EFI if there's not already one:
+ require fs::any;
+ if (is_uefi()) {
+ if (!any { isESP($_) } @fstab) {
+ $mntpoint = { mntpoint => "/boot/EFI", size => MB(100), pt_type => 0xef, ratio => 1, maxsize => MB(300) };
+ }
+ }
+ foreach (keys %suggestions) {
+ $suggestions{$_} = [ if_($mntpoint, $mntpoint), @{$bck_suggestions{$_}} ];
}
}
my @suggestions_mntpoints = (
"/var/ftp", "/var/www", "/boot", '/usr/local', '/opt',
- arch() =~ /sparc/ ? "/mnt/sunos" : arch() =~ /ppc/ ? "/mnt/macos" : "/mnt/windows",
+ "/mnt/windows",
);
#-######################################################################################
@@ -59,11 +82,11 @@ sub recompute_loopbacks {
}
sub raids {
- my ($hds) = @_;
+ my ($hds, $raw_hds) = @_;
my @parts = fs::get::hds_fstab(@$hds);
- my @l = grep { isRawRAID($_) } @parts or return [];
+ my @l = grep { isRawRAID($_) } ( @parts, @$raw_hds ) or return [];
log::l("looking for raids in " . join(' ', map { $_->{device} } @l));
@@ -72,9 +95,29 @@ sub raids {
raid::get_existing(@l);
}
+sub dmcrypts {
+ my ($all_hds) = @_;
+
+ my @parts = fs::get::fstab($all_hds);
+
+ my @l = grep { fs::type::isRawLUKS($_) } @parts or return;
+
+ log::l("using dm-crypt from " . join(' ', map { $_->{device} } @l));
+
+ require fs::dmcrypt;
+ fs::dmcrypt::read_crypttab($all_hds);
+
+ fs::dmcrypt::get_existing(@l);
+}
+
sub lvms {
my ($all_hds) = @_;
my @pvs = grep { isRawLVM($_) } fs::get::fstab($all_hds) or return;
+ scan_pvs(@pvs);
+}
+
+sub scan_pvs {
+ my (@pvs) = @_;
log::l("looking for vgs in " . join(' ', map { $_->{device} } @pvs));
@@ -119,6 +162,9 @@ sub handle_dmraid {
return;
};
}
+ if (!$::isInstall) {
+ fs::dmraid::migrate_device_names($_) foreach @vgs;
+ }
log::l("using dmraid on " . join(' ', map { $_->{device} } @vgs));
my @used_hds = map {
@@ -143,7 +189,6 @@ sub get_hds {
foreach my $hd (@drives) {
$hd->{file} = devices::make($hd->{device});
- $hd->{prefix} ||= $hd->{device};
}
@drives = partition_table::raw::get_geometries(@drives);
@@ -152,6 +197,20 @@ sub get_hds {
foreach my $hd (@drives) {
$hd->{readonly} = $flags->{readonly};
+ #- We only create RAID components in disk partitions, but users may have used
+ #- mdadm directly to create them on raw disk devices. Detect that now, before
+ #- looking for a partition table (which is likely to fail badly - mga#26707).
+ if (my $type = fs::type::type_subpart_from_magic($hd)) {
+ if (isRawRAID($type)) {
+ #- Add the necessary information to the raw device to allow the RAID
+ #- array to be properly characterised in diskdrake.
+ put_in_hash($hd, $type);
+ $hd->{size} = $hd->{totalsectors};
+ push @raw_hds, $hd;
+ next;
+ }
+ }
+
eval { partition_table::raw::test_for_bad_drives($hd) if !$flags->{no_bad_drives} };
if (my $err = $@) {
log::l("test_for_bad_drives returned $err");
@@ -168,7 +227,7 @@ sub get_hds {
if ($flags->{clearall} || member($hd->{device}, @{$flags->{clear} || []})) {
my $lvms = []; #- temporary one, will be re-created later in get_hds()
- partition_table_initialize($lvms, $hd, $o_in);
+ partition_table_clear_and_initialize($lvms, $hd, $o_in);
} else {
my $handle_die_and_cdie = sub {
if (my $type = fs::type::type_subpart_from_magic($hd)) {
@@ -203,7 +262,7 @@ sub get_hds {
die sprintf(q(bad dmraid (missing partition %s), you may try rebooting install with option "nodmraid"), $p->{device});
}
} else {
- fs::proc_partitions::compare($hd) if !detect_devices::is_xbox() && arch() ne 'ppc';
+ fs::proc_partitions::compare($hd) if !detect_devices::is_xbox();
}
}
} sub {
@@ -221,7 +280,7 @@ sub get_hds {
#- already handled in cdie handler above
} elsif ($handle_die_and_cdie->()) {
} elsif ($o_in && $o_in->ask_yesorno(N("Error"),
-N("I can not read the partition table of device %s, it's too corrupted for me :(
+N("I cannot read the partition table of device %s, it's too corrupted for me :(
I can try to go on, erasing over bad partitions (ALL DATA will be lost!).
The other solution is to not allow DrakX to modify the partition table.
(the error is %s)
@@ -243,6 +302,9 @@ Do you agree to lose all the partitions?
my @parts = partition_table::get_normal_parts($hd);
+ # fix installer failures due to udev's race when run too early:
+ run_program::run('udevadm', 'settle');
+
# checking the magic of the filesystem, do not rely on pt_type
foreach (@parts) {
if (my $type = fs::type::type_subpart_from_magic($_)) {
@@ -254,6 +316,7 @@ Do you agree to lose all the partitions?
}
if ($hd->{usb_media_type}) {
+ $hd->{is_removable} = 1;
$_->{is_removable} = 1 foreach @parts;
}
@@ -261,13 +324,20 @@ Do you agree to lose all the partitions?
}
#- detect raids before LVM allowing LVM on raid
- my $raids = raids(\@hds);
+ my $raids = raids(\@hds, \@raw_hds);
my $all_hds = { %{ fs::get::empty_all_hds() }, hds => \@hds, raw_hds => \@raw_hds, lvms => [], raids => $raids };
$all_hds->{lvms} = [ lvms($all_hds) ];
fs::get_major_minor([ fs::get::fstab($all_hds) ]);
+ # must be done after getting major/minor
+ $all_hds->{dmcrypts} = [ dmcrypts($all_hds) ];
+ # allow lvm on dmcrypt
+ $all_hds->{lvms} = [ lvms($all_hds) ];
+
+ $_->{faked_device} = 0 foreach fs::get::fstab($all_hds);
+
$all_hds;
}
@@ -290,7 +360,7 @@ sub is_one_big_fat_or_NT {
sub computeSize {
- my ($part, $best, $all_hds, $suggestions) = @_;
+ my ($part, $best, $all_hds, $suggestions, $o_target) = @_;
my $max = $part->{maxsize} || $part->{size};
return min($max, $best->{size}) unless $best->{ratio};
@@ -305,7 +375,7 @@ sub computeSize {
1;
} else { 0 } } @$suggestions;
- my $free_space = $best->{hd} && $free_space{$best->{hd}} || sum(values %free_space);
+ my $free_space = $o_target && $free_space{$o_target->{device}} || $best->{hd} && $free_space{$best->{hd}} || sum(values %free_space);
my $cylinder_size_maxsize_adjusted;
my $tot_ratios = 0;
@@ -336,7 +406,7 @@ sub computeSize {
}
sub suggest_part {
- my ($part, $all_hds, $o_suggestions) = @_;
+ my ($part, $all_hds, $o_suggestions, $o_target) = @_;
my $suggestions = $o_suggestions || $suggestions{server} || $suggestions{simple};
#- suggestions now use {fs_type}, but still keep compatibility
@@ -344,10 +414,14 @@ sub suggest_part {
fs::type::set_pt_type($_, $_->{pt_type}) if !exists $_->{fs_type};
}
- my $has_swap = any { isSwap($_) } fs::get::fstab($all_hds);
+ my $hd = fs::get::part2hd($part, $all_hds);
+ my $hd_size = $hd && $hd->{totalsectors}; # nb: no $hd if $part is /dev/mdX
+ my @fstab = $hd->{is_removable} ? partition_table::get_normal_parts($hd) : fs::get::fstab($all_hds);
+ my $has_swap = any { isSwap($_) } @fstab;
my @local_suggestions =
- grep { !$_->{mntpoint} && !$_->{VG_name} || !fs::get::has_mntpoint($_->{mntpoint}, $all_hds) || isSwap($_) && !$has_swap }
+ grep { $::auto_install || !$_->{mntpoint} && !$_->{VG_name} || !fs::get::has_mntpoint($_->{mntpoint}, $all_hds) || isSwap($_) && !$has_swap }
+ grep { !$_->{min_hd_size} || !$hd_size || $_->{min_hd_size} <= $hd_size }
grep { !$_->{hd} || $_->{hd} eq $part->{rootDevice} }
@$suggestions;
@@ -355,7 +429,7 @@ sub suggest_part {
#- one should rather use {ratio} instead
foreach (@local_suggestions) {
if ($_->{percent_size} && $_->{percent_size} =~ /(.+?)%?$/) {
- $_->{size} = $1 / 100 * fs::get::part2hd($part, $all_hds)->{totalsectors};
+ $_->{size} = $1 / 100 * $hd_size;
log::l("in suggestion, setting size=$_->{size} for percent_size=$_->{percent_size}");
}
}
@@ -370,7 +444,7 @@ sub suggest_part {
$part->{mntpoint} = $best->{mntpoint};
fs::type::set_type_subpart($part, $best) if !isTrueFS($best) || !isTrueFS($part);
- $part->{size} = computeSize($part, $best, $all_hds, \@local_suggestions);
+ $part->{size} = computeSize($part, $best, $all_hds, \@local_suggestions, $o_target);
foreach ('options', 'lv_name', 'encrypt_key', 'primaryOrExtended',
'device_LABEL', 'prefer_device_LABEL', 'device_UUID', 'prefer_device_UUID', 'prefer_device') {
$part->{$_} = $best->{$_} if $best->{$_};
@@ -394,29 +468,25 @@ sub check_mntpoint {
$mntpoint =~ m|[\x7f-\xff]| and cdie N("Mount points should contain only alphanumerical characters");
fs::get::mntpoint2part($mntpoint, [ grep { $_ ne $part } fs::get::really_all_fstab($all_hds) ]) and die N("There is already a partition with mount point %s\n", $mntpoint);
- if ($mntpoint eq "/" && isRAID($part) && !fs::get::has_mntpoint("/boot", $all_hds)) {
- my $md_part = fs::get::device2part($part->{raid}, $all_hds->{raids});
- cdie N("You've selected a software RAID partition as root (/).
+ if ($mntpoint eq "/" && (isLUKS($part) || isRawLUKS($part)) && !fs::get::has_mntpoint("/boot", $all_hds)) {
+ cdie N("You've selected an encrypted partition as root (/).
No bootloader is able to handle this without a /boot partition.
-Please be sure to add a /boot partition") if $md_part->{level} ne '1'; # lilo handles / on RAID1
+Please be sure to add a separate /boot partition");
}
- #- NB: if the LV doesn't exist, lv_nb_pvs returns 0
- die N("You can not use the LVM Logical Volume for mount point %s since it spans physical volumes", $mntpoint)
- if $mntpoint eq '/boot' && isLVM($part) && lvm::lv_nb_pvs($part) > 1;
- cdie N("You've selected the LVM Logical Volume as root (/).
-The bootloader is not able to handle this when the volume spans physical volumes.
-You should create a /boot partition first") if $mntpoint eq "/" && isLVM($part) && lvm::lv_nb_pvs($part) != 1 && !fs::get::has_mntpoint("/boot", $all_hds);
+ if ($mntpoint eq "/boot" && (isLUKS($part) || isRawLUKS($part))) {
+ die N("You cannot use an encrypted filesystem for mount point %s", "/boot");
+ }
cdie N("This directory should remain within the root filesystem")
if member($mntpoint, qw(/root));
die N("This directory should remain within the root filesystem")
if member($mntpoint, qw(/bin /dev /etc /lib /sbin /mnt /media));
- die N("You need a true filesystem (ext2/ext3, reiserfs, xfs, or jfs) for this mount point\n")
+ die N("You need a true filesystem (ext2/3/4, reiserfs, xfs, or jfs) for this mount point\n")
if !isTrueLocalFS($part) && $mntpoint eq '/';
- die N("You need a true filesystem (ext2/ext3, reiserfs, xfs, or jfs) for this mount point\n")
- if !isTrueFS($part) && member($mntpoint, '/home', fs::type::directories_needed_to_boot());
- die N("You can not use an encrypted file system for mount point %s", $mntpoint)
+ die N("You need a true filesystem (ext2/3/4, reiserfs, xfs, or jfs) for this mount point\n") . $mntpoint
+ if !isTrueFS($part) && member($mntpoint, '/home', fs::type::directories_needed_to_boot_not_ESP());
+ die N("You cannot use an encrypted filesystem for mount point %s", $mntpoint)
if $part->{options} =~ /encrypted/ && member($mntpoint, qw(/ /usr /var /boot));
local $part->{mntpoint} = $mntpoint;
@@ -437,18 +507,20 @@ sub add {
} else {
partition_table::add($hd, $part, $options->{primaryOrExtended});
}
+ fs::get_major_minor([ $part ]);
}
sub allocatePartitions {
- my ($all_hds, $to_add) = @_;
+ my ($all_hds, $to_add, $o_hd) = @_;
my @to_add = @$to_add;
foreach my $part_ (fs::get::holes($all_hds, 'non_readonly')) {
my ($start, $size, $dev) = @$part_{"start", "size", "rootDevice"};
+ next if $o_hd && (($o_hd->{device} || $o_hd->{VG_name}) ne $dev);
my ($part, $suggested);
while ($suggested = suggest_part($part = { start => $start, size => 0, maxsize => $size, rootDevice => $dev },
- $all_hds, \@to_add)) {
+ $all_hds, \@to_add, $o_hd)) {
my $hd = fs::get::part2hd($part, $all_hds);
add($hd, $part, $all_hds, { primaryOrExtended => $part->{primaryOrExtended} });
$size -= $part->{size} + $part->{start} - $start;
@@ -459,11 +531,18 @@ sub allocatePartitions {
}
sub auto_allocate {
- my ($all_hds, $o_suggestions) = @_;
+ my ($all_hds, $o_suggestions, $o_target) = @_;
my $before = listlength(fs::get::fstab($all_hds));
+ #- Make sure we don't finish with more than one /boot/EFI mount point
+ if (is_uefi()) {
+ delete $_->{mntpoint} foreach grep { $_->{mntpoint} eq '/boot/EFI' } fs::get::fstab($all_hds);
+ }
+
+ auto_allocate_bios_boot_parts($all_hds, $o_target) if !is_uefi();
+
my $suggestions = $o_suggestions || $suggestions{simple};
- allocatePartitions($all_hds, $suggestions);
+ allocatePartitions($all_hds, $suggestions, $o_target);
if ($o_suggestions) {
auto_allocate_raids($all_hds, $suggestions);
@@ -485,6 +564,28 @@ sub auto_allocate {
die N("Nothing to do");
}
}
+
+ #- Don't suggest mount points on other drives when installing on a removable disk
+ return if $o_target && $o_target->{is_removable};
+
+ my @fstab = fs::get::fstab($all_hds);
+ fs::mount_point::suggest_mount_points_always(\@fstab);
+}
+
+sub auto_allocate_bios_boot_parts {
+ my ($all_hds, $o_hd) = @_;
+ foreach my $hd (@{$all_hds->{hds}}) {
+ # skip if not the selected device
+ next if $o_hd && ($o_hd->{device} ne $hd->{device});
+ # skip non-GPT disks
+ next if ($hd->{pt_table_type} || partition_table::default_type($hd)) ne 'gpt';
+ # check if a BIOS boot partition already exists
+ my @parts = map { partition_table::get_normal_parts($_) } $hd;
+ next if any { isBIOS_GRUB($_) } @parts;
+ # try to allocate a BIOS boot partition
+ my $suggest = { mntpoint => "", size => MB(1), pt_type => 'BIOS_GRUB', ratio => 1, maxsize => MB(2) };
+ allocatePartitions($all_hds, [ $suggest ], $hd);
+ }
}
sub auto_allocate_raids {
@@ -543,23 +644,25 @@ sub change_type {
my ($type, $hd, $part) = @_;
$type->{pt_type} != $part->{pt_type} || $type->{fs_type} ne $part->{fs_type} or return;
fs::type::check($type->{fs_type}, $hd, $part);
+ delete $part->{device_UUID};
$hd->{isDirty} = 1;
$part->{mntpoint} = '' if isSwap($part) && $part->{mntpoint} eq "swap";
- $part->{mntpoint} = '' if isRawLVM($type) || isRawRAID($type);
+ $part->{mntpoint} = '' if fs::type::cannotBeMountable($part);
set_isFormatted($part, 0);
fs::type::set_type_subpart($part, $type);
fs::mount_options::rationalize($part);
1;
}
+=item partition_table_clear_and_initialize($lvms, $hd, $o_in, $o_type, $b_warn) = @_;
+
+wrapper around partition_table::initialize() but which also create a singleton VG
+automatically (so that it's easier for the user)
+
+=cut
+
sub partition_table_clear_and_initialize {
my ($lvms, $hd, $o_in, $o_type, $b_warn) = @_;
- $hd->clear_existing;
- partition_table_initialize($lvms, $hd, $o_in, $o_type, $b_warn);
-}
-
-sub partition_table_initialize {
- my ($lvms, $hd, $o_in, $b_warn, $o_type) = @_;
partition_table::initialize($hd, $o_type);
if ($hd->isa('partition_table::lvm')) {
if ($b_warn && $o_in) {
diff --git a/perl-install/handle_configs.pm b/perl-install/handle_configs.pm
index 7d6e5c6e9..97011f1f6 100644
--- a/perl-install/handle_configs.pm
+++ b/perl-install/handle_configs.pm
@@ -1,6 +1,5 @@
package handle_configs;
-# $Id$
use diagnostics;
use strict;
diff --git a/perl-install/harddrake/TODO b/perl-install/harddrake/TODO
deleted file mode 100644
index 29c28cb77..000000000
--- a/perl-install/harddrake/TODO
+++ /dev/null
@@ -1,169 +0,0 @@
--*- outline -*-
-
-* drakxtools
-** drakxtools* need XF-{75,100}fonts that requires XFree86
-
-* Harddrake TODO:
-** ui
-*** more usb mice infos
-*** enable the user to force a module (isa, isapnp, ...)
-*** print "(not loaded)" if module isn't loaded
-*** add bus_position to make unique id in ui (check it does not confuse hw service)
-*** cdrom (must be done by diskdrake):
-**** ide-scsi / ide-cd switch (humm, the future (aka 2.6.x kernel) is ide-cd only)
-*** use fbgtk+2 when booting on fbcon for smoother GUI => interactive::fbgtk
-*** help:
-**** print fields in black and their description in blue as for information fields
-*** check there's at least one config option before showing the "condigure module" button
-*** s/module/driver/ ?
-** fixes
-*** configure at boot-time (hw hooks shared by both harddrake & drakx ?):
- all /etc/modules aliases
-**** usb-interfaces (or rewrite usb service in perl for speed)
-**** switch nvidia/nv in /etc/X11/XF86Config
- if [[ -e /lib/modules/`uname -r`/kernel/drivers/video/NVdriver ]]; then
- perl -pi -e 's!Driver "nv.*"!Driver "nvidia"!g;s!#HARDDRAKE (Load.*glx)!\1!g' /etc/X11/XF86Config-4
- else
- perl -pi -e 's!Driver "nv.*"!Driver "nv"!g;s!(Load.*glx)!#HARDDRAKE \1!g' /etc/X11/XF86Config-4
- fi
-*** non needed stuff to run X must be posponed after X11 startup
-**** eg: scanner/audio/printer/floppy/cdrom/tape/tv/webcam/joystick/ ...
-** packaging : separate version for harddrake & drakxtool
-** configurators
-*** new cd burner: offer to install cdrecord and one of its gui frontends
-*** new dvd driver : offer to install xine||mplayer
-*** draksound :
-**** add a dialog so that the user choose its wavetable.
-**** list all availables drivers, defaulting to first alternative, prepending old one with '*'
-**** add 'ALSA/OSS': tag to modules list
-** detect engine:
-*** detect isapnp devices
-*** set more field for fscking 0x0000:0x0000 usb controllers
-
-** move all drakx tools into just a small one-liner that uses real <tool>.pm
- so that harddrake and mcc reduces their memory usage pattern and
- be faster (the next fast step will be to use perl6/parrot)
-
- drawback : this would level down quite a lot the global mcc/harddrake robustness
-
-** check there're enough parameters in module config
-** for to send a message for unknown hardware to install@mandrakesoft.com
-
- Subject: [UNKNOW HARDWARE] or a new other ml
- -> do you konw how to configure it under linux ?
- -> description
-
-
-* ####################################################################
-* ####################################################################
-
-* / no hope / useless :
-** enable a string to be passed as detector; in that case, do ourself the =~
-** alter detect_devices in order to only probe one time
-** detect *ALL* mouses if more than one (mousedrake?)
-
-** deeper data structure in Mandrake 9.2 ?
-
- "Mass storage" => (Floppy,
- Disk,
- Cdrom,
- Tape)
-
- "Network" => (Ethernetcard,
- Modem,
- Isdn)
- "Multimedia" => (Videocard,
- Tvcard,
- Soundcard,
- Webcam)
- "System" => (Bridge,
- Cpu,
- Memory)
-
-
- "Publishing" => (Printer,
- Scanner)
-
- "Pointing" => (Mouse,
- Joystick)
-
- "Buses" => (Ideinterface,
- Scsiinterface,
- Usbinterface,
- );
-
- "Unknown/Others",
-
-* ####################################################################
-
-* Suggestions
-** various
-Subject: Re: [Cooker] Optional ALSA Support for SB Live!
-From: Fabrice FACORAT <f.faber@netcourrier.com>
-To: cooker@linux-mandrake.com
-In-Reply-To: <m2ofhvtpaq.fsf@vador.mandrakesoft.com>
-References: <20020311051222.47DC087CA5@yavin.mandrax.org>
- <m2ofhvtpaq.fsf@vador.mandrakesoft.com>
-Date: 11 Mar 2002 11:12:31 +0100
-Message-Id: <1015841551.3895.31.camel@bastard.localdomain>
-
-Le lun 11/03/2002 à 10:41, Thierry Vignaud a écrit :
-
-> > In Mandrake 8.1 rerunning Harddrake post-setup would switch over
-> > to ALSA (which supports MIDI synth), however in 8.2 the only way to
-> > get ALSA support is to manually edit the modules.conf file. This
-> > would be disasterous for someone who isn't familar with
-> > modules.conf, but had been instructed on the mandrake-expert/newbie
-> > lists (as many had been) to simply rerun Harddrake on the sound card
-> > to get ALSA (and hence MIDI synth support).
->
-> give me the result of lspcidrake -f -v so that i switch your card
-> from oss to alsa.
-
-no please.
-just one month ago you switch SBLive from Alsa to OSS ( cause drakX
-set it as OSS and harddrake as Alsa ).
-There were also a discussion concerning the fact that Alsa doesn't
-support emu-tools and so all available options.
-Last but not least, several peoples report pbs with Alsa ( is sound is
-too high you have disturbances ). So someone is going to ask you for
-OSS as it want to use some features os SBLive, etc ...
-
-To my mind the best way for this ( but too late for 8.2 ) will be to
-have a tool called soundrake. Thanks to this tools, you choose at the
-beginning if you want to use OSS or alsa and then try to correctly
-configure your sound card. This tool should be able to work in
-embended mo in harddrake or harddrake2 ( infos concerning this so long
-awaiting harddrake 2 ? ).
-
-In order to make this tool be a perfect tool, it should be able to
-advice user concerning the advantage and the disadvantage of each
-driver ( indeed alsa sometimes is better than OSS as it support full
-duplex and wave mixing on more sound cards ).
-It's also disturbing is harddrake set alsa by default and XrakX set
-OSS by default as sometimes by lanching harddrake ( just to see what
-happen ) you lose ( or seems to lose ) your sound card ( mute mixer )
-
-For example :
-+ launch harddrake
-+ use autodetection : yes/no
-+ if auto detects enable, it detects a SBLive.
-+ explanations text concerning the fact that :
- if I use OSS I will be able to use sounds effects, live drive and
-others things ( AC-3 passthrough ) thanks to the emu10k1-tools packages
-( available on CD sets and installable via Software Manager )
- if I use Alsa, I won't be able to use emu10k1-tools but at the
-contrary I will be able to use midi software as alsa module support midi
-+ ask user which one he wants to use : OSS / Alsa ?
-+ set the sound card drivers and modules.conf according to user wishes
-+ <mode= dream> if I select OSS, installed emu10k1-tools and provide a
-GUI to configure them </mode = dream>
-+ <mode= dream> if I select Alsa unmute at least PCM and Vol or display
-a warning saying that by default Alsa mute everything ( configure alsa
-service so that it save mixer settings )
-+ test the sound ( mandrake sound theme )
-+ do you hear something ?
-+ yes -> your sound card have been properly set.
-+ if no -> try the others drivers set or send lspcidrake -v to
-somebody@somewhere.org to check for support for your sound card
-+ Do you ahave another sound card ?
diff --git a/perl-install/harddrake/autoconf.pm b/perl-install/harddrake/autoconf.pm
index 791185b67..fba5078cd 100644
--- a/perl-install/harddrake/autoconf.pm
+++ b/perl-install/harddrake/autoconf.pm
@@ -3,7 +3,7 @@ package harddrake::autoconf;
use common;
sub xconf {
- my ($modules_conf, $o) = @_;
+ my ($modules_conf, $o, $o_skip_fb_setup, $o_resolution_wanted) = @_;
log::l('automatic XFree configuration');
@@ -12,8 +12,10 @@ sub xconf {
my $do_pkgs = do_pkgs_standalone->new;
$o->{raw_X} = Xconfig::default::configure($do_pkgs);
+ my $old_x = { if_($o_resolution_wanted, resolution_wanted => $o_resolution_wanted) };
+
require Xconfig::main;
- Xconfig::main::configure_everything_auto_install($o->{raw_X}, $do_pkgs, {}, { allowFB => 1 });
+ Xconfig::main::configure_everything_auto_install($o->{raw_X}, $do_pkgs, $old_x, { allowFB => listlength(cat_("/proc/fb")), skip_fb_setup => $o_skip_fb_setup });
#- always disable compositing desktop effects when configuring a new video card
require Xconfig::glx;
@@ -22,10 +24,43 @@ sub xconf {
modules::load_category($modules_conf, 'various/agpgart');
}
+sub setup_ethernet_device {
+ my ($in, $device) = @_;
+
+ require network::connection;
+ require network::connection::ethernet;
+ require network::connection::wireless;
+ my @connection_types = qw(network::connection::ethernet network::connection::wireless);
+ my @all_connections = map { $_->get_connections(automatic_only => 1) } @connection_types;
+ my $interface = network::connection::ethernet::device_to_interface($device)
+ or return;
+ my $connection = find { $_->get_interface eq $interface } @all_connections
+ or return;
+
+ require network::connection_manager;
+ my $net = {};
+ network::network::read_net_conf($net);
+ my $cmanager = network::connection_manager->new($in, $net);
+ $cmanager->set_connection($connection);
+
+ # this will installed required packages
+ $cmanager->setup_connection;
+}
+
sub network_conf {
- my ($obj) = @_;
- require network::network;
- network::network::easy_dhcp($obj->{net}, $obj->{modules_conf});
+ my ($modules_conf, $in, $added) = @_;
+ $modules_conf->remove_alias_regexp('^(wlan|eth)[0-9]*$');
+ modules::load_category($modules_conf, 'network/main|gigabit|usb|wireless|firewire|pcmcia');
+
+ setup_ethernet_device($in, $_) foreach @{$added || {}};
+
+ require network::connection::ethernet;
+ network::connection::ethernet::configure_eth_aliases($modules_conf);
+ require network::rfswitch;
+ network::rfswitch::configure();
+ require network::shorewall;
+ network::shorewall::update_interfaces_list();
+ $modules_conf->write;
}
sub mouse_conf {
@@ -44,6 +79,11 @@ sub pcmcia {
sub bluetooth {
my ($enable) = @_;
+ # do not disable bluetooth service if adapter disappears
+ # (for example if disabled by Fn keys)
+ # systemd will automatically disable the service if needed
+ return if !$enable;
+
#- FIXME: make sure these packages are installed when needed
# if ($enable) {
# require do_pkgs;
@@ -52,7 +92,7 @@ sub bluetooth {
# }
require services;
services::set_status("bluetooth", $enable);
- my $kbluetoothd_cfg = '/etc/kde/kbluetoothdrc';
+ my $kbluetoothd_cfg = '/etc/kde/kbluetoothrc';
update_gnomekderc($kbluetoothd_cfg,
'General',
'AutoStart' => bool2text($enable)) if -f $kbluetoothd_cfg;
@@ -72,8 +112,7 @@ sub laptop {
# $do_pkgs->ensure_is_installed("numlock", "/etc/rc.d/init.d/numlock");
# }
require services;
- services::set_status("cpufreq", $on_laptop);
- services::set_status("apmd", $on_laptop);
+ services::set_status("apmd", -e "/proc/apm");
services::set_status("laptop-mode", $on_laptop);
services::set_status("numlock", !$on_laptop);
}
@@ -83,4 +122,34 @@ sub cpufreq() {
modules::set_preload_modules("cpufreq", cpufreq::get_modules());
}
+sub floppy() {
+ require detect_devices;
+ modules::set_preload_modules("floppy", if_(detect_devices::floppy(), "floppy"));
+}
+
+sub fix_aliases {
+ my ($modules_conf) = @_;
+ require modalias;
+ my %new_aliases;
+ #- first pass: find module targets whose modalias is not valid anymore
+ foreach my $module ($modules_conf->modules) {
+ if (my $aliased_to = $modules_conf->get_alias($module)) {
+ my @valid_modaliases = modalias::get_modules($module, 'skip_config') or next;
+ my ($found, $others) = partition { $_ eq $aliased_to } @valid_modaliases;
+ $new_aliases{$aliased_to} = @{$others || []} == 1 && $others->[0] if is_empty_array_ref($found);
+ }
+ }
+ #- second pass: adapt module targets that are not valid anymore
+ foreach my $module ($modules_conf->modules) {
+ if (my $aliased_to = $modules_conf->get_alias($module)) {
+ if (my $new = exists $new_aliases{$aliased_to} && $new_aliases{$aliased_to}) {
+ $modules_conf->set_alias($module, $new);
+ } else {
+ $modules_conf->remove_alias($module);
+ }
+ }
+ }
+ $modules_conf->write;
+}
+
1;
diff --git a/perl-install/harddrake/check_snd.pl b/perl-install/harddrake/check_snd.pl
index dfa007b80..4721bed40 100755
--- a/perl-install/harddrake/check_snd.pl
+++ b/perl-install/harddrake/check_snd.pl
@@ -10,7 +10,7 @@ use list_modules;
my @listed_modules = @{$list_modules::l{multimedia}{sound}};
my @drivers = (keys %harddrake::sound::oss2alsa, keys %harddrake::sound::alsa2oss);
-my @alternatives = uniq map { @{$_} } values %harddrake::sound::oss2alsa, values %harddrake::sound::alsa2oss;
+my @alternatives = uniq map { @$_ } values %harddrake::sound::oss2alsa, values %harddrake::sound::alsa2oss;
# check harddrake::sound's data structures're coherent
print "unknown alternative drivers : [", join(', ', difference2(\@alternatives, \@drivers)), "]\n";
diff --git a/perl-install/harddrake/data.pm b/perl-install/harddrake/data.pm
index 10893da45..8d4d4de21 100644
--- a/perl-install/harddrake/data.pm
+++ b/perl-install/harddrake/data.pm
@@ -11,11 +11,20 @@ our ($version, $sbindir, $bindir) = ("10", "/usr/sbin", "/usr/bin");
my @devices = (detect_devices::probeall(), detect_devices::getSCSI());
+foreach my $dev (@devices) {
+ # normalize device IDs for devices that came from mouse.pm:
+ next if !defined $dev->{Synaptics};
+ foreach my $field (qw(vendor id subvendor subid)) {
+ next if !defined $dev->{$field};
+ $dev->{$field} = hex($dev->{$field});
+ }
+}
+
# Update me each time you handle one more devices class (aka configurator)
sub unknown() {
- grep { $_->{media_type} !~ /BRIDGE|class\|Mouse|DISPLAY|Hub|MEMORY_RAM|MULTIMEDIA_(VIDEO|AUDIO|OTHER)|NETWORK|Printer|SERIAL_(USB|SMBUS)|STORAGE_(IDE|OTHER|RAID|SCSI)|SYSTEM_OTHER|tape|UPS/
+ grep { $_->{media_type} !~ /BRIDGE|class\|Mouse|DISPLAY|Hub|MEMORY_RAM|MULTIMEDIA_(VIDEO|AUDIO|OTHER)|NETWORK|Printer|SERIAL_(USB|SMBUS)|STORAGE_(IDE|OTHER|RAID|SCSI)|SYSTEM_(OTHER|SDHCI)|tape|UPS/
&& !member($_->{driver}, qw(cpia_usb cyber2000fb forcedeth ibmcam megaraid mod_quickcam nvnet ohci1394 ov511 ov518_decomp scanner ultracam usbvideo usbvision))
- && $_->{driver} !~ /^ISDN|Mouse:USB|Removable:zip|class\|Mouse|sata|www.linmodems.org/
+ && $_->{driver} !~ /^ISDN|Mouse:USB|Removable:zip|class\|Mouse|sata|www.linmodems.org|kbd|mouse|sysrq|usbhid/
&& $_->{type} ne 'network'
&& $_->{description} !~ /Alcatel|ADSL Modem/;
} @devices;
@@ -36,29 +45,125 @@ sub f {
# FIXME: add translated items
sub is_removable { member($_[0], qw(FLOPPY ZIP DVDROM CDROM BURNER)) }
-sub is_auto_configurable_media { is_removable($_[0]) || member($_[0], qw(HARDDISK)) }
+sub is_auto_configurable_media { !detect_devices::isKeyUsb($_[0]) }
sub set_removable_configurator {
my ($class, $device) = @_;
- return "/usr/sbin/diskdrake --removable=$device->{device}" if is_removable($class);
+ is_removable($class) ? "/usr/sbin/diskdrake --removable=$device->{device}" : undef;
}
-sub set_media_auto_configurator {
- my ($class, $device) = @_;
- return "/usr/sbin/drakupdate_fstab --no-flag --auto --add $device->{device}" if is_auto_configurable_media($class);
-}
-
-sub set_media_remover {
- my ($class, $device) = @_;
- return "/usr/sbin/drakupdate_fstab --no-flag --del $device->{device}" if is_auto_configurable_media($class);
-}
-
my $modules_conf = modules::any_conf->read;
# Format is (HW class ID, l18n class name, icon, config tool , is_to_be_detected_on_boot)
our @tree =
(
{
+ class => "SATA_STORAGE",
+ string => N("SATA controllers"),
+ icon => "ide_hd.png",
+ configurator => "",
+ detector => sub { f(grep { $_->{driver} !~ /^pata/ } detect_devices::probe_category('disk/sata')),
+ f(grep { $_->{description} =~ /AHCI/ } @devices) },
+ checked_on_boot => 1,
+ },
+
+ {
+ class => "RAID_STORAGE",
+ string => N("RAID controllers"),
+ icon => "ide_hd.png",
+ configurator => "",
+ detector => sub { f(detect_devices::probe_category('disk/hardware_raid')),
+ f(grep { $_->{media_type} =~ /STORAGE_RAID/ } @devices) },
+ checked_on_boot => 1,
+ },
+
+ {
+ class => "ATA_STORAGE",
+ string => N("(E)IDE/ATA controllers"),
+ icon => "ide_hd.png",
+ configurator => "",
+ detector => sub { f(detect_devices::probe_category('disk/ide')),
+ f(grep { $_->{driver} =~ /^pata/ && $_->{media_type} =~ /IDE|STORAGE_SATA/ } @devices),
+ f(grep { $_->{media_type} =~ /STORAGE_(IDE|OTHER)/ } @devices) },
+ checked_on_boot => 1,
+ },
+
+ {
+ class => "CARD_READER",
+ string => N("Card readers"),
+ icon => "ide_hd.png",
+ configurator => "",
+ detector => sub { f(detect_devices::probe_category('disk/card_reader')) },
+ checked_on_boot => 1,
+ },
+
+ {
+ class => "FIREWIRE_CONTROLLER",
+ string => N("Firewire controllers"),
+ icon => "usb.png",
+ configurator => "",
+ detector => sub { f(grep { $_->{driver} =~ /firewire_ohci|ohci1394/ } @devices) },
+ checked_on_boot => 1,
+ },
+
+ {
+ class => "PCMCIA_CONTROLLER",
+ string => N("PCMCIA controllers"),
+ icon => "hw-pcmcia.png",
+ configurator => "",
+ detector => sub { f(detect_devices::pcmcia_controller_probe()) },
+ checked_on_boot => 1,
+ },
+
+ {
+ class => "SCSI_CONTROLLER",
+ string => N("SCSI controllers"),
+ icon => "scsi.png",
+ configurator => "",
+ detector => sub { f(detect_devices::probe_category('disk/scsi'), grep { $_->{media_type} =~ /STORAGE_SCSI/ } @devices) },
+ checked_on_boot => 1,
+ },
+
+ {
+ class => "USB_CONTROLLER",
+ string => N("USB controllers"),
+ icon => "usb.png",
+ configurator => "",
+ detector => sub { f(grep { $_->{media_type} eq 'SERIAL_USB' } @devices) },
+ checked_on_boot => 1,
+ },
+
+ {
+ class => "USB_HUB",
+ string => N("USB ports"),
+ icon => "hw-usb.png",
+ configurator => "",
+ detector => sub { f(grep { $_->{media_type} =~ /Hub/ } @devices) },
+ checked_on_boot => 0,
+ },
+
+ {
+ class => "SMB_CONTROLLER",
+ string => N("SMBus controllers"),
+ icon => "hw-smbus.png",
+ configurator => "",
+ detector => sub { f(grep { $_->{media_type} =~ /SERIAL_SMBUS/ } @devices) },
+ checked_on_boot => 0,
+ },
+
+ {
+ class => "BRIDGE",
+ string => N("Bridges and system controllers"),
+ icon => "memory.png",
+ configurator => "",
+ detector => sub { f(grep { $_->{media_type} =~ /BRIDGE|MEMORY_RAM|SYSTEM_(OTHER|SDHCI)|MEMORY_OTHER|SYSTEM_PIC|COMMUNICATION_OTHER/
+ || $_->{description} =~ /Parallel Port Adapter/;
+ } @devices) },
+ checked_on_boot => 0,
+ },
+
+
+ {
class => "FLOPPY",
string => N("Floppy"),
icon => "floppy.png",
@@ -90,11 +195,20 @@ our @tree =
icon => "harddisk.png",
configurator => "$sbindir/diskdrake",
detector => sub { f(detect_devices::hds()) },
- checked_on_boot => 1,
+ checked_on_boot => 0,
automatic => 1,
},
{
+ class => "USB_STORAGE",
+ string => N("USB Mass Storage Devices"),
+ icon => "usb.png",
+ configurator => "",
+ detector => sub { f(grep { member($_->{driver}, qw(usb_storage ub Removable:memory_card)) } @devices) },
+ checked_on_boot => 0,
+ },
+
+ {
class => "CDROM",
string => N("CDROM"),
icon => "cd.png",
@@ -165,6 +279,7 @@ our @tree =
class => "TV",
string => N("Tvcard"),
icon => "tv.png",
+ configurator => "/usr/sbin/drakxtv",
detector => sub { f(detect_devices::probe_category('multimedia/tv')),
f(grep { $_->{media_type} =~ /MULTIMEDIA_VIDEO/ && $_->{bus} eq 'PCI' } @devices) },
checked_on_boot => 1,
@@ -187,7 +302,8 @@ our @tree =
detector => sub {
require list_modules;
my @modules = list_modules::category2modules('multimedia/sound');
- f(grep { $_->{media_type} =~ /MULTIMEDIA_AUDIO/ || member($_->{driver}, @modules) } @devices);
+ f(grep { $_->{media_type} =~ /MULTIMEDIA_AUDIO|PROCESSOR_CO/ || member($_->{driver}, @modules)
+ || $_->{description} =~ /^\|?HDA |PC Speaker/ } @devices);
},
checked_on_boot => 1,
},
@@ -200,7 +316,8 @@ our @tree =
detector => sub {
require list_modules;
my @modules = (list_modules::category2modules('multimedia/webcam'), 'Removable:camera');
- f(grep { $_->{media_type} =~ /MULTIMEDIA_VIDEO|Video\|Video Control/ && $_->{bus} ne 'PCI' || member($_->{driver}, @modules) } @devices);
+ f(grep { $_->{media_type} =~ /MULTIMEDIA_VIDEO|Video\|Video Control|Imaging|Camera/ && $_->{bus} ne 'PCI'
+ || member($_->{driver}, @modules) || $_->{driver} =~ /^gpsca/ } @devices);
},
# managed by hotplug:
checked_on_boot => 0,
@@ -268,7 +385,7 @@ our @tree =
string => N("Bluetooth devices"),
icon => "hw_network.png",
configurator => "",
- detector => sub { f(detect_devices::probe_category('bus/bluetooth')) },
+ detector => sub { f(detect_devices::probe_category('bus/bluetooth')), f(grep { $_->{description} =~ /Bluetooth Dongle/ } @devices) },
checked_on_boot => 1,
},
@@ -283,7 +400,8 @@ our @tree =
f(grep {
$_->{media_type} && $_->{media_type} =~ /^NETWORK/
|| $_->{type} && $_->{type} eq 'network'
- || member($_->{driver}, @net_modules);
+ || member($_->{driver}, @net_modules)
+ || $_->{description} =~ /WLAN/;
} @devices);
},
checked_on_boot => 1,
@@ -294,7 +412,7 @@ our @tree =
string => N("Modem"),
icon => "modem.png",
configurator => "$sbindir/drakconnect",
- detector => sub { f(detect_devices::getModem($modules_conf)) },
+ detector => sub { f(detect_devices::getModem($modules_conf)), f(grep { $_->{description} =~ /SoftModem/ } @devices) },
# we do not check these b/c this need user interaction (auth, ...):
checked_on_boot => 0,
},
@@ -316,7 +434,7 @@ our @tree =
string => N("Memory"),
icon => "hw-memory.png",
configurator => "",
- detector => sub { grep { member($_->{name}, 'Cache', 'Memory Module') } detect_devices::dmidecode() },
+ detector => sub { grep { member($_->{name}, 'Cache', 'Memory Module') || $_->{name} eq 'Memory Device' && $_->{Size} ne 'No Module Installed' } detect_devices::dmidecode() },
checked_on_boot => 0,
},
@@ -325,7 +443,7 @@ our @tree =
string => N("Printer"),
icon => "hw_printer.png",
configurator => "$sbindir/printerdrake",
- detector => sub { require printer::detect; printer::detect::local_detect() },
+ detector => sub {},
# we do not check these b/c this need user interaction (auth, ...):
checked_on_boot => 0,
},
@@ -354,126 +472,15 @@ our @tree =
{
- class => "SATA_STORAGE",
- string => N("SATA controllers"),
- icon => "ide_hd.png",
- configurator => "",
- detector => sub { f(detect_devices::probe_category('disk/sata')) },
- checked_on_boot => 1,
- },
-
- {
- class => "RAID_STORAGE",
- string => N("RAID controllers"),
- icon => "ide_hd.png",
- configurator => "",
- detector => sub { f(detect_devices::probe_category('disk/hardware_raid')),
- f(grep { $_->{media_type} =~ /STORAGE_RAID/ } @devices) },
- checked_on_boot => 1,
- },
-
- {
- class => "ATA_STORAGE",
- string => N("(E)IDE/ATA controllers"),
- icon => "ide_hd.png",
- configurator => "",
- detector => sub { f(detect_devices::probe_category('disk/ide')),
- f(grep { $_->{media_type} =~ /STORAGE_(IDE|OTHER)/ } @devices) },
- checked_on_boot => 1,
- },
-
- {
- class => "USB_STORAGE",
- string => N("USB Mass Storage Devices"),
- icon => "usb.png",
- configurator => "",
- detector => sub { f(grep { member($_->{driver}, qw(usb_storage ub)) } @devices) },
- checked_on_boot => 0,
- },
-
- {
- class => "CARD_READER",
- string => N("Card readers"),
- icon => "ide_hd.png",
- configurator => "",
- detector => sub { f(detect_devices::probe_category('disk/card_reader')) },
- checked_on_boot => 1,
- },
-
- {
- class => "FIREWIRE_CONTROLLER",
- string => N("Firewire controllers"),
- icon => "usb.png",
- configurator => "",
- detector => sub { f(grep { $_->{driver} =~ /ohci1394/ } @devices) },
- checked_on_boot => 1,
- },
-
- {
- class => "PCMCIA_CONTROLLER",
- string => N("PCMCIA controllers"),
- icon => "hw-pcmcia.png",
- configurator => "",
- detector => sub { f(detect_devices::pcmcia_controller_probe()) },
- checked_on_boot => 1,
- },
-
- {
- class => "SCSI_CONTROLLER",
- string => N("SCSI controllers"),
- icon => "scsi.png",
- configurator => "",
- detector => sub { f(detect_devices::probe_category('disk/scsi'), grep { $_->{media_type} =~ /STORAGE_SCSI/ } @devices) },
- checked_on_boot => 1,
- },
-
- {
- class => "USB_CONTROLLER",
- string => N("USB controllers"),
- icon => "usb.png",
- configurator => "",
- detector => sub { f(grep { $_->{media_type} eq 'SERIAL_USB' } @devices) },
- checked_on_boot => 1,
- },
-
- {
- class => "USB_HUB",
- string => N("USB ports"),
- icon => "hw-usb.png",
- configurator => "",
- detector => sub { f(grep { $_->{media_type} =~ /Hub/ } @devices) },
- checked_on_boot => 0,
- },
-
- {
- class => "SMB_CONTROLLER",
- string => N("SMBus controllers"),
- icon => "hw-smbus.png",
- configurator => "",
- detector => sub { f(grep { $_->{media_type} =~ /SERIAL_SMBUS/ } @devices) },
- checked_on_boot => 0,
- },
-
- {
- class => "BRIDGE",
- string => N("Bridges and system controllers"),
- icon => "memory.png",
- configurator => "",
- detector => sub { f(grep { $_->{media_type} =~ /BRIDGE|MEMORY_RAM|SYSTEM_OTHER|MEMORY_OTHER|SYSTEM_PIC/
- || $_->{description} =~ /Parallel Port Adapter/;
- } @devices) },
- checked_on_boot => 0,
- },
-
- {
class => "KEYBOARD",
string => N("Keyboard"),
icon => "hw-keyboard.png",
configurator => "$sbindir/keyboarddrake",
detector => sub {
- f(grep { $_->{description} =~ /Keyboard/i || $_->{media_type} =~ /Subclass\|Keyboard/i } @devices),
- # USB devices are filtered out since we already catch them through probeall():
- grep { $_->{bus} ne 'usb' && $_->{driver} eq 'kbd' && $_->{description} !~ /PC Speaker/ } detect_devices::getInputDevices();
+ f(grep { $_->{description} =~ /Keyboard/i || $_->{media_type} =~ /Keyboard/i ||
+ # USB devices are filtered out since we already catch them through probeall():
+ $_->{bus} ne 'usb' && $_->{driver} =~ /^event|kbd|^usbhid/ && $_->{description} !~ /PC Speaker/;
+ } @devices);
},
checked_on_boot => 0,
},
@@ -493,9 +500,10 @@ our @tree =
icon => "hw_mouse.png",
configurator => "$sbindir/mousedrake",
detector => sub {
- f(grep { $_->{driver} =~ /^Mouse:|^Tablet:/ || $_->{media_type} =~ /class\|Mouse/ } @devices),
- # USB devices are filtered out since we already catch them through probeall():
- grep { $_->{bus} ne 'usb' && $_->{Handlers}{mouse} } detect_devices::getInputDevices();
+ f(grep { $_->{driver} =~ /^Mouse:|^Tablet:|^mouse/ || $_->{media_type} =~ /class\|Mouse/ ||
+ # USB devices are filtered out since we already catch them through probeall():
+ $_->{bus} ne 'usb' && $_->{Handlers}{mouse};
+ } @devices);
},
checked_on_boot => 1,
automatic => 1,
@@ -505,7 +513,7 @@ our @tree =
class => "BIOMETRIC",
string => N("Biometry"),
icon => "ups.png",
- detector => sub { f(grep { $_->{description} =~ /fingerprint/i } @devices) },
+ detector => sub { f(grep { $_->{description} =~ /fingerprint|biometric/i } @devices) },
checked_on_boot => 0,
},
@@ -524,7 +532,7 @@ our @tree =
icon => "scanner.png",
configurator => "$sbindir/scannerdrake",
detector => sub {
- require scanner; f(map { $_->{drakx_device} } f(scanner::detect()));
+ require scanner; f(map { $_->{val}{drakx_device} } f(scanner::detect()));
},
checked_on_boot => 0,
},
@@ -550,7 +558,9 @@ sub pciusb_id {
pci_device => 'usb_pci_device',
vendor => 'usb_vendor',
);
- join(':', map { $dev->{$alt{$_}} || $dev->{$_} } qw(bus pci_bus pci_device vendor id subvendor subid description));
+ my @fields = ('bus', if_($dev->{bus} =~ /pci/, qw(pci_bus pci_device)), qw(vendor id subvendor subid),
+ if_($dev->{bus} !~ /usb/i, 'description'));
+ join(':', map { uc($dev->{$alt{$_}} || $dev->{$_}) } @fields);
}
@@ -562,9 +572,7 @@ sub custom_id {
N("cpu # ") . $device->{processor} . ": " . $device->{'model name'} :
$device->{"Socket Designation"} ?
"$device->{name} (" . $device->{"Socket Designation"} . ")" :
- $device->{name} ? $device->{name} :
- (defined($device->{description}) ? $device->{description} :
- (defined($device->{Vendor}) ? $device->{Vendor} : $str)));
+ $device->{name} || $device->{description} || $device->{Vendor} || $str);
}
1;
diff --git a/perl-install/harddrake/sound.pm b/perl-install/harddrake/sound.pm
index 8ce19880a..cdf24c219 100644
--- a/perl-install/harddrake/sound.pm
+++ b/perl-install/harddrake/sound.pm
@@ -1,14 +1,4 @@
package harddrake::sound;
-# lists filled with Danny Tholen help, enhanced by Thierry Vignaud
-#
-# No ALSA for OSS's
-# o isa cards: msnd_pinnacle, pas2,
-# o pci cards: ad1889, sam9407
-# No OSS for ALSA's
-# o pci cards: snd_als4000, snd_es968, snd_hdsp
-# o isa cards: snd_azt2320, snd_cs4231, snd_cs4236,
-# snd_dt0197h, snd_korg1212, snd_rme32
-# o pcmcia cards: snd_vxp440 snd_vxpocket
# TODO:
# o ensure sound is not user (either dsp/midi/sequencer/mixer)
@@ -22,343 +12,636 @@ use list_modules;
use detect_devices;
use log;
+sub is_pulseaudio_enabled {
+ my ($in) = @_;
+ my $soundprofile = common::read_alternative('soundprofile');
+ return $in->do_pkgs->is_installed('task-pulseaudio') && $soundprofile =~ /pulse$/;
+}
+
+sub set_pulseaudio {
+ my ($val) = @_;
+
+ my $alterative = '/etc/sound/profiles/' . ($val ? 'pulse' : 'alsa');
+ return if ! -d $alterative;
+
+ common::symlinkf_update_alternatives('soundprofile', $alterative);
+
+ # (cg) This config file will eventually be dropped, but it is still needed for now
+ # as several packages/patches depend on it.
+ my $config_file = "$::prefix/etc/sysconfig/pulseaudio";
+ $val = 'PULSE_SERVER_TYPE=' . ($val ? 'personal' : 'none') . "\n";
+ my $done;
+ substInFile {
+ if (/^PULSE_SERVER_TYPE=/) {
+ $_ = $val;
+ $done = 1;
+ }
+ } $config_file;
+ append_to_file($config_file, $val) if !$done;
+}
+
-our %alsa2oss =
- (
- if_(arch() =~ /ppc/, "snd_powermac" => [ "dmasound_pmac" ]),
- if_(arch() =~ /sparc/,
- "snd_sun_amd7930" => [ "unknown" ],
- "snd_sun_cs4231" => [ "unknown" ],
- "snd_sun_dbri" => [ "unknown" ],
- ),
- "snd_ad1816a" => [ "ad1816" ], # isa
- "snd_ad1848" => [ "ad1848", "pss" ], # isa
- "snd_ad1889" => [ "ad1889" ],
- "snd_ali5451" => [ "trident" ],
- "snd_als100" => [ "sb" ], # isa
- "snd_als300" => [ "unknown" ],
- "snd_als4000" => [ "unknown" ],
- "snd_aoa" => [ "unknown" ],
- "snd_asihpi" => [ "unknown" ],
- "snd_atiixp" => [ "unknown" ],
- "snd_au8810" => [ "unknown" ],
- "snd_au8820" => [ "unknown" ],
- "snd_au8830" => [ "unknown" ],
- "snd_audigyls" => [ "unknown" ], # pci, renamed as snd_ca0106
- "snd_azt2320" => [ "unknown" ], # isa
- "snd_azt3328" => [ "unknown" ], # isa
- "snd_azx" => [ "unknown" ],
- "snd_bt87x" => [ "btaudio" ],
- "snd_ca0106" => [ "unknown" ], # pci
- "snd_cmi8330" => [ "sb" ], # isa
- "snd_cmi8788" => [ "unknown" ], # pci
- "snd_cmipci" => [ "cmpci" ],
- "snd_cs4231" => [ "unknown" ], # isa
- "snd_cs4232" => [ "cs4232" ], # isa
- "snd_cs4236" => [ "ad1848" ], # isa
- "snd_cs4281" => [ "cs4281" ],
- "snd_cs46xx" => [ "cs46xx" ],
- "snd_cs5530" => [ "unknown" ],
- "snd_cs5535audio" => [ "unknown" ],
- "snd_darla20" => [ "unknown" ],
- "snd_darla24" => [ "unknown" ],
- "snd_dt0197h" => [ "unknown" ], # isa
- "snd_dt019x" => [ "unknown" ], # isa
- "snd_echo3g" => [ "unknown" ],
- "snd_emu10k1" => [ "audigy", "emu10k1" ],
- "snd_emu10k1x" => [ "unknown" ],
- "snd_ens1370" => [ "es1370" ],
- "snd_ens1371" => [ "es1371" ],
- "snd_es1688" => [ "sb" ], # isa
- "snd_es18xx" => [ "sb" ], # isa
- "snd_es1938" => [ "esssolo1" ],
- "snd_es1968" => [ "maestro" ], # isa
- "snd_es968" => [ "sb" ],
- "snd_fm801" => [ "forte" ],
- "snd_gina20" => [ "unknown" ],
- "snd_gina24" => [ "unknown" ],
- "snd_gina3g" => [ "unknown" ],
- "snd_gusclassic" => [ "gus" ], # isa
- "snd_gusextreme" => [ "gus" ], # isa
- "snd_gusmax" => [ "gus" ], # isa
- "snd_hda_intel" => [ "unknown" ],
- "snd_hdspm" => [ "unknown" ],
- "snd_hdsp" => [ "unknown" ],
- "snd_ice1712" => [ "unknown" ], # isa
- "snd_ice1724" => [ "unknown" ], # isa
- "snd_indi" => [ "unknown" ], # pci
- "snd_indigo" => [ "unknown" ], # pci
- "snd_indigodj" => [ "unknown" ], # pci
- "snd_indigoio" => [ "unknown" ], # pci
- "snd_intel8x0" => [ "ali5455", "i810_audio", "nvaudio" ],
- "snd_interwave" => [ "gus" ], # isa
- "snd_interwave_stb" => [ "unknown" ], # isa
- "snd_korg1212" => [ "unknown" ], # isa
- "snd_layla20" => [ "unknown" ],
- "snd_layla24" => [ "unknown" ],
- "snd_layla3g" => [ "unknown" ],
- "snd_maestro3" => [ "maestro3" ],
- "snd_mia" => [ "unknown" ],
- "snd_mixart" => [ "unknown" ],
- "snd_mona" => [ "unknown" ],
- "snd_mpu401" => [ "mpu401" ],
- "snd_nm256" => [ "nm256_audio" ],
- "snd_opl3sa2" => [ "opl3", "opl3sa", "opl3sa2" ], # isa
- "snd_opti92x_ad1848" => [ "unknown" ], # isa
- "snd_opti92x_cs4231" => [ "unknown" ], # isa
- "snd_opti93x" => [ "mad16" ],
- "snd_pcxhr" => [ "unknown" ], # pci
- "snd_riptide" => [ "unknown" ],
- "snd_rme32" => [ "unknown" ], # isa
- "snd_rme96" => [ "rme96xx" ], # pci
- "snd_rme9652" => [ "rme96xx" ], # pci
- "snd_sb16" => ["sscape", "sb"],
- "snd_sb8" => [ "sb" ],
- "snd_sbawe" => [ "awe_wave" ],
- "snd_sgalaxy" => [ "sgalaxy" ], # isa
- "snd_sonicvibes" => [ "sonicvibes" ],
- "snd_sscape" => [ "sscape" ], # isa
- "snd_trident" => [ "trident" ],
- "snd_usb_audio" => [ "audio" ], # usb
- "snd_usb_caiaq" => [ "unknown" ],
- "snd_usb_usx2y" => [ "unknown" ],
- "snd_via82xx" => [ "via82cxxx_audio" ],
- "snd_vx222" => [ "unknown" ],
- "snd_vxp440" => [ "unknown" ], # pcmcia
- "snd_vxpocket" => [ "unknown" ], # pcmcia
- "snd_wavefront" => [ "wavefront" ], # isa
- "snd_ymfpci" => [ "ymfpci" ],
- );
-
-
-our %oss2alsa =
- (
- if_(arch() =~ /ppc/, "dmasound_pmac" => [ "snd_powermac" ]),
- "ad1816" => [ "snd_ad1816a" ],
- "ad1848" => [ "snd_ad1848", "snd_cs4236" ],
- "ad1889" => [ "snd_ad1889" ],
- "ali5455" => [ "snd_intel8x0" ],
- "audigy" => [ "snd_emu10k1" ],
- "audio" => [ "snd_usb_audio" ], # usb
- "awe_wave" => [ "snd_sbawe" ],
- "btaudio" => [ "snd_bt87x" ],
- "cmpci" => [ "snd_cmipci" ],
- "cs4232" => [ "snd_cs4232" ],
- "cs4281" => [ "snd_cs4281" ],
- "cs46xx" => [ "snd_cs46xx" ],
- "emu10k1" => [ "snd_emu10k1" ],
- "es1370" => [ "snd_ens1370" ],
- "es1371" => [ "snd_ens1371" ],
- "esssolo1" => [ "snd_es1938" ],
- "forte" => [ "snd_fm801" ],
- "gus" => ["snd_interwave", "snd_gusclassic", "snd_gusmax", "snd_gusextreme"],
- "i810_audio" => [ "snd_intel8x0" ],
- "ice1712" => [ "snd_ice1712" ],
- "mad16" => [ "snd_opti93x" ],
- "maestro" => [ "snd_es1968" ],
- "maestro3" => [ "snd_maestro3" ],
- "mpu401" => [ "snd_mpu401" ],
- "msnd_pinnacle" => [ "unknown" ],
- "nm256_audio" => [ "snd_nm256" ],
- "nvaudio" => [ "snd_intel8x0" ],
- "opl3" => [ "snd_opl3sa2" ],
- "opl3sa" => [ "snd_opl3sa2" ],
- "opl3sa2" => [ "snd_opl3sa2" ],
- "pas2" => [ "unknown" ],
- "pss" => [ "snd_ad1848" ],
- "rme96xx" => [ "snd_rme96", "snd_rme9652" ],
- "sam9407" => [ "unknown" ],
- "sb" => [ "snd_als100", "snd_cmi8330", "snd_es1688", "snd_es18xx", "snd_es968", "snd_sb8", "snd_sb16" ],
- "sgalaxy" => [ "snd_sgalaxy" ],
- "sonicvibes" => [ "snd_sonicvibes" ],
- "sscape" => [ "snd_sb16", "snd_sscape" ],
- "trident" => [ "snd_ali5451", "snd_trident" ],
- "via82cxxx_audio" => [ "snd_via82xx" ],
- "wavefront" => [ "snd_wavefront" ],
- "ymfpci" => [ "snd_ymfpci" ],
- );
-
-my @blacklist = qw(cs46xx cs4281);
-my $blacklisted = 0;
-
-sub rooted { run_program::rooted($::prefix, @_) }
-
-sub unload { modules::unload(@_) if $::isStandalone || $blacklisted }
+my $pa_startup_scriptfile = "$::prefix/etc/pulse/default.pa";
+
+sub is_pulseaudio_glitchfree_enabled() {
+ return -f $pa_startup_scriptfile &&
+ cat_($pa_startup_scriptfile) !~ /^load-module\s+module-(udev|hal)-detect\s+tsched=0/m;
+}
+
+sub set_pulseaudio_glitchfree {
+ my ($val) = @_;
+
+ return if ! -f $pa_startup_scriptfile;
+
+ substInFile {
+ if ($val) {
+ s/^(load-module\s+module-(udev|hal)-detect)\s+tsched=0/$1/;
+ } else {
+ s/^(load-module\s+module-(udev|hal)-detect).*/$1 tsched=0/;
+ }
+ } $pa_startup_scriptfile;
+}
+
+sub is_pipewire_wireplumber_enabled {
+ my ($in) = @_;
+ return $in->do_pkgs->is_installed('pipewire') && $in->do_pkgs->is_installed('wireplumber');
+}
+
+sub is_pipewire_media_session_enabled {
+ my ($in) = @_;
+ return $in->do_pkgs->is_installed('pipewire') && $in->do_pkgs->is_installed('pipewire-media-session');
+}
+
+sub rooted {
+ run_program::rooted($::prefix, @_);
+}
+
+sub unload { modules::unload(@_) if $::isStandalone }
sub load {
my ($modules_conf, $name) = @_;
- modules::load_and_configure($modules_conf, $name) if $::isStandalone || $blacklisted;
+ modules::load_and_configure($modules_conf, $name) if $::isStandalone;
}
-sub get_alternative {
- my ($driver) = @_;
- my $list = $alsa2oss{$driver} || $oss2alsa{$driver};
- $list ? @$list : "unknown";
+sub _pidof {
+ my ($name) = @_;
+ rooted('/usr/bin/pidof', $name);
}
-sub do_switch {
- my ($in, $modules_conf, $old_driver, $new_driver, $index) = @_;
- return if $old_driver eq $new_driver;
- my $_wait = $in->wait_message(N("Please wait"), N("Please Wait... Applying the configuration"));
- log::explanations("removing old $old_driver\n");
- if ($::isStandalone) {
- rooted("service sound stop") unless $blacklisted;
- rooted("service alsa stop") if $old_driver =~ /^snd_/ && !$blacklisted;
- unload($old_driver); # run_program("/sbin/modprobe -r $driver"); # just in case ...
- }
- $modules_conf->remove_module($old_driver);
- configure_one_sound_slot($modules_conf, $index, $new_driver);
- $modules_conf->write;
- if ($new_driver =~ /^snd_/) { # new driver is an alsa one
- $in->do_pkgs->ensure_binary_is_installed(qw(alsa-utils alsactl), 1);
- $in->do_pkgs->ensure_binary_is_installed(qw(aoss aoss), 1);
- rooted("service alsa start") if $::isStandalone && !$blacklisted;
- rooted("/sbin/chkconfig --add alsa") if $::isStandalone;
- load($modules_conf, $new_driver) if $::isStandalone; # service alsa is buggy
- } else { rooted("/sbin/chkconfig --del alsa") }
- log::explanations("loading new $new_driver\n");
- rooted("/sbin/chkconfig --add sound"); # just in case ...
- rooted("service sound start") if $::isStandalone && !$blacklisted;
+# return the pid of a running command
+sub _pidof_pid {
+ my ($name) = @_;
+ my ($pid) = chomp_(run_program::rooted_get_stdout($::prefix, '/usr/bin/pidof', $name));
+
+ return $pid;
}
-sub switch {
+# return the username of a running command
+sub _user_pid {
+ my ($name) = @_;
+ my ($pid) = _pidof_pid($name);
+ my $user;
+
+ if ($pid) {
+ ($user) = chomp_(run_program::rooted_get_stdout($::prefix, '/usr/bin/ps', '-o', 'uname=', '-p', $pid));
+ }
+
+ return $user;
+}
+
+# stop pulseaudio for the running user
+sub stop_pulseaudio {
+ my ($pulseaudio_user) = _user_pid('/usr/bin/pulseaudio');
+
+ if ($pulseaudio_user) {
+ if (-x $::prefix . '/usr/bin/pulseaudio') {
+ rooted('/usr/bin/su', '-l', $pulseaudio_user, '-c', '/usr/bin/pulseaudio --kill');
+ }
+ }
+
+ # try stopping again (in case the /usr/bin/pulseaudio process is still running, but the executable no longer available)
+ my ($pulseaudio_user) = _user_pid('/usr/bin/pulseaudio');
+ if ($pulseaudio_user) {
+ my ($pulseaudio_pid) = _pidof_pid('/usr/bin/pulseaudio');
+ if ($pulseaudio_pid) {
+ rooted('/usr/bin/su', '-l', $pulseaudio_user, '-c', '/usr/bin/kill -TERM ' . $pulseaudio_pid);
+ }
+ }
+ return $pulseaudio_user;
+}
+
+# stop pipewire services for the running user
+sub stop_pipewire {
+ my ($pipewire_user) = _user_pid('/usr/bin/pipewire');
+
+ if ($pipewire_user) {
+ rooted('/usr/bin/systemctl', '--machine=' . $pipewire_user . '@.host', '--user', 'stop', 'pipewire-pulse.service', 'pipewire-pulse.socket', 'pipewire.service', 'pipewire.socket');
+ }
+
+ return $pipewire_user;
+}
+
+# start pulseaudio for the specified user
+sub start_pulseaudio {
+ my ($pulseaudio_user) = @_;
+
+ if ($pulseaudio_user) {
+ rooted('/usr/bin/su', '-l', $pulseaudio_user, '-c', '/usr/bin/pulseaudio --start');
+ }
+}
+
+# start pipewire services for the specified user
+sub start_pipewire {
+ my ($pipewire_user) = @_;
+
+ if ($pipewire_user) {
+ rooted('/usr/bin/systemctl', '--machine=' . $pipewire_user . '@.host', '--user', 'start', 'pipewire.socket', 'pipewire.service', 'pipewire-pulse.socket', 'pipewire-pulse.service');
+ }
+}
+
+# stop wireplumber services for the running user
+sub stop_wireplumber {
+ my ($pipewire_user) = _user_pid('/usr/bin/wireplumber');
+
+ if ($pipewire_user) {
+ rooted('/usr/bin/systemctl', '--machine=' . $pipewire_user . '@.host', '--user', 'stop', 'wireplumber.service');
+ }
+
+ return $pipewire_user;
+}
+
+# start wireplumber
+sub start_wireplumber {
+ my ($pipewire_user) = @_;
+
+ if ($pipewire_user) {
+ rooted('/usr/bin/systemctl', '--machine=' . $pipewire_user . '@.host', '--user', 'start', 'wireplumber.service');
+ }
+}
+
+# stop pipewire-media-session services for the running user
+sub stop_pipewire_media_session {
+ my ($pipewire_user) = _user_pid('/usr/bin/pipewire-media-session');
+
+ if ($pipewire_user) {
+ rooted('/usr/bin/systemctl', '--machine=' . $pipewire_user . '@.host', '--user', 'stop', 'pipewire-media-session.service');
+ }
+
+ return $pipewire_user;
+}
+
+# start pipewire-media-session services for the specified user
+sub start_pipewire_media_session {
+ my ($pipewire_user) = @_;
+
+ if ($pipewire_user) {
+ rooted('/usr/bin/systemctl', '--machine=' . $pipewire_user . '@.host', '--user', 'start', 'pipewire-media-session.service');
+ }
+}
+
+sub configure_pipewire_wireplumber {
+ my ($in) = @_;
+ my ($pipewire_wp_user);
+
+ # preserve pulseaudio user
+ my ($pulseaudio_user) = _user_pid('/usr/bin/pulseaudio');
+
+ # stop pipewire and pipewire-media-session services (if any) before removing any packages
+ # and preserve pipewire-media-session user
+ $pipewire_wp_user = stop_pipewire_media_session();
+ stop_pipewire();
+
+ my $plasma_installed = $in->do_pkgs->is_installed('plasma-desktop');
+ my @pkgs = (
+ 'task-pipewire',
+ 'wireplumber',
+ );
+ if (!$in->do_pkgs->is_installed('pavucontrol-qt')) {
+ if ($plasma_installed) {
+ push(@pkgs, 'pavucontrol-qt');
+ }
+ else {
+ push(@pkgs, 'pavucontrol');
+ }
+ }
+
+
+ my $required_installed = $in->do_pkgs->ensure_are_installed(
+ \@pkgs
+ );
+
+ if (!$required_installed)
+ {
+ $in->ask_warn(N("Couldn't install the required packages"),
+ N("Please check the repositories are correctly configured")
+ );
+ return;
+ }
+
+ set_pulseaudio(0);
+
+ # first of all disabling what has to be disabled to avoid conflicts
+ if ($in->do_pkgs->is_installed('pipewire-media-session')) {
+ rooted('/usr/bin/systemctl', '--global', 'disable', 'pipewire-media-session.service');
+ }
+
+ if ($in->do_pkgs->is_installed('pipewire')) {
+ foreach ('pipewire.socket', 'pipewire.service') {
+ rooted('/usr/bin/systemctl', '--global', 'enable', $_);
+ }
+ }
+
+ if ($in->do_pkgs->is_installed('pipewire-pulseaudio')) {
+ foreach ('pipewire-pulse.socket', 'pipewire-pulse.service') {
+ rooted('/usr/bin/systemctl', '--global', 'enable', $_);
+ }
+ }
+
+ if ($in->do_pkgs->is_installed('wireplumber')) {
+ rooted('/usr/bin/systemctl', '--global', 'enable', 'wireplumber.service');
+ }
+
+
+ # stop pulseaudio process if still floating after the switch
+ stop_pulseaudio();
+
+ if ($pulseaudio_user) {
+ # restart pipewire and wireplumber with the same user as initial pulseaudio
+ start_pipewire($pulseaudio_user);
+ start_wireplumber($pulseaudio_user);
+ }
+ else {
+ if ($pipewire_wp_user) {
+ # restart pipewire and wireplumber with the same user as pipewire-media-session
+ start_pipewire($pipewire_wp_user);
+ start_wireplumber($pipewire_wp_user);
+ }
+ }
+
+ #Plasma tricks
+ if ($plasma_installed) {
+ $in->do_pkgs->ensure_is_installed('kpipewire');
+ }
+}
+
+sub configure_pipewire_media_session {
+ my ($in) = @_;
+ my ($pipewire_ms_user);
+
+ # preserve pulseaudio user
+ my ($pulseaudio_user) = _user_pid('/usr/bin/pulseaudio');
+
+ # stop pipewire and wireplumber services (if any) before removing any package
+ # and preserve wireplumber user
+ $pipewire_ms_user = stop_wireplumber();
+ stop_pipewire();
+
+
+ my $plasma_installed = $in->do_pkgs->is_installed('plasma-desktop');
+ my @pkgs = (
+ 'task-pipewire',
+ 'pipewire-media-session',
+ );
+ if (!$in->do_pkgs->is_installed('pavucontrol-qt')) {
+ if ($plasma_installed) {
+ push(@pkgs, 'pavucontrol-qt');
+ }
+ else {
+ push(@pkgs, 'pavucontrol');
+ }
+ }
+
+ my $required_installed = $in->do_pkgs->ensure_are_installed(
+ \@pkgs
+ );
+
+ if (!$required_installed)
+ {
+ $in->ask_warn(N("Couldn't install the required packages"),
+ N("Please check the repositories are correctly configured")
+ );
+ return;
+ }
+
+ set_pulseaudio(0);
+
+ # first of all disabling what has to be disabled to avoid conflicts
+ if ($in->do_pkgs->is_installed('wireplumber')) {
+ rooted('/usr/bin/systemctl', '--global', 'disable', 'wireplumber.service');
+ }
+
+ if ($in->do_pkgs->is_installed('pipewire')) {
+ foreach ('pipewire.socket', 'pipewire.service') {
+ rooted('/usr/bin/systemctl', '--global', 'enable', $_);
+ }
+ }
+
+ if ($in->do_pkgs->is_installed('pipewire-pulseaudio')) {
+ foreach ('pipewire-pulse.socket', 'pipewire-pulse.service') {
+ rooted('/usr/bin/systemctl', '--global', 'enable', $_);
+ }
+ }
+
+ if ($in->do_pkgs->is_installed('pipewire-media-session')) {
+ rooted('/usr/bin/systemctl', '--global', 'enable', 'pipewire-media-session.service');
+ }
+
+ # stop pulseaudio process if still floating after the switch
+ stop_pulseaudio();
+
+ if ($pulseaudio_user) {
+ # restart pipewire and wireplumber with the same user as initial pulseaudio
+ start_pipewire($pulseaudio_user);
+ start_pipewire_media_session($pulseaudio_user);
+ }
+ else {
+ if ($pipewire_ms_user) {
+ # restart pipewire and wireplumber with the same user as pipewire-media-session
+ start_pipewire($pipewire_ms_user);
+ start_pipewire_media_session($pipewire_ms_user);
+ }
+ }
+
+ #Plasma tricks
+ if ($plasma_installed) {
+ $in->do_pkgs->ensure_is_installed('kpipewire');
+ }
+}
+
+sub disable_all_pipewire {
+ my ($in) = @_;
+
+ if ($in->do_pkgs->is_installed('wireplumber')) {
+ rooted('/usr/bin/systemctl', '--global', 'disable', 'wireplumber.service');
+ }
+
+ if ($in->do_pkgs->is_installed('pipewire-media-session')) {
+ rooted('/usr/bin/systemctl', '--global', 'disable', 'pipewire-media-session.service');
+ }
+
+ if ($in->do_pkgs->is_installed('pipewire-pulseaudio')) {
+ foreach ('pipewire-pulse.socket', 'pipewire-pulse.service') {
+ rooted('/usr/bin/systemctl', '--global', 'disable', $_);
+ }
+ }
+
+ if ($in->do_pkgs->is_installed('pipewire')) {
+ foreach ('pipewire.socket', 'pipewire.service') {
+ rooted('/usr/bin/systemctl', '--global', 'disable', $_);
+ }
+ }
+}
+
+sub configure_pulseaudio {
+ my ($in) = @_;
+
+ # preserve pipewire running user
+ my ($pipewire_user) = _user_pid('/usr/bin/pipewire');
+
+ # stop pipewire, wireplumber and pipewire-media-session services (if any) before removing any packages
+ my ($wireplumber_user) = stop_wireplumber();
+ my ($pipewire_media_session_user) = stop_pipewire_media_session();
+ my ($pipewire_user_preserve) = stop_pipewire();
+
+ # now packages
+ $in->do_pkgs->remove('pipewire-alsa');
+
+ my $plasma_installed = $in->do_pkgs->is_installed('plasma-desktop');
+ my @pkgs = 'task-pulseaudio';
+ if (!$in->do_pkgs->is_installed('pavucontrol-qt')) {
+ if ($plasma_installed) {
+ push(@pkgs, 'pavucontrol-qt');
+ }
+ else {
+ push(@pkgs, 'pavucontrol');
+ }
+ }
+
+ my $required_installed = $in->do_pkgs->ensure_are_installed(
+ \@pkgs
+ );
+
+ if (!$required_installed)
+ {
+ $in->ask_warn(N("Couldn't install the required packages"),
+ N("Please check the repositories are correctly configured")
+ );
+
+ # restore previous pipewire (if any) processes if something goes wrong with pulseaudio installation
+ if ($pipewire_user_preserve) {
+ start_pipewire($pipewire_user_preserve);
+ }
+
+ if ($wireplumber_user) {
+ start_wireplumber($wireplumber_user);
+ }
+
+ if ($pipewire_media_session_user) {
+ start_pipewire_media_session($pipewire_media_session_user);
+ }
+
+ return;
+ }
+
+
+ # disable all the pipewire stuff before managing packages
+ disable_all_pipewire($in);
+
+ # start pulseaudio with same pipewire preserved user
+ if ($pipewire_user) {
+ start_pulseaudio($pipewire_user);
+ }
+}
+
+sub config {
my ($in, $modules_conf, $device) = @_;
my $driver = $device->{current_driver} || $device->{driver};
- foreach (@blacklist) { $blacklisted = 1 if $driver eq $_ }
- my @alternative = $driver ne 'unknown' ? get_alternative($driver) : ();
- unless ($driver eq $device->{driver} || member($device->{driver}, @alternative)) {
- push @alternative, get_alternative($device->{driver}), $device->{driver};
- }
- if (@alternative) {
- my $new_driver = $driver;
+ my @alternative = $driver ne $device->{driver} ? $device->{driver} : ();
+ if ($driver eq "unknown") {
+ $in->ask_warn(N("No known driver"),
+ N("There's no known driver for your sound card (%s)",
+ $device->{description}));
+ } else {
push @alternative, $driver;
my %des = modules::category2modules_and_description('multimedia/sound');
+
+ my $is_pulseaudio_enabled_val = is_pulseaudio_enabled($in);
+ my $is_pulseaudio_glitchfree_enabled_val = is_pulseaudio_glitchfree_enabled();
+
+ my $audiosystem = 'None';
+ if ($is_pulseaudio_enabled_val && $is_pulseaudio_glitchfree_enabled_val) {
+ $audiosystem = 'PulseAudioGF';
+ } elsif ($is_pulseaudio_enabled_val) {
+ $audiosystem = 'PulseAudio';
+ } elsif (is_pipewire_wireplumber_enabled($in) || _pidof('/usr/bin/wireplumber')) {
+ $audiosystem = 'PipeWireWP';
+ } elsif (is_pipewire_media_session_enabled($in) || _pidof('/usr/bin/pipewire-media-session')) {
+ $audiosystem = 'PipeWireMS';
+ }
+
+ my $write_config = sub {
+ if ($audiosystem eq 'None') {
+ #### ALSA alone
+ disable_all_pipewire($in);
+ set_pulseaudio(0);
+ set_pulseaudio_glitchfree(0);
+ # TODO check if adding autospawn = no to /etc/pulse/client.conf is needed
+ } elsif ($audiosystem eq 'PulseAudio') {
+ #### PulseAudio
+ configure_pulseaudio($in);
+ set_pulseaudio(1);
+ set_pulseaudio_glitchfree(0);
+ my $lib = get_libdir();
+ $in->do_pkgs->ensure_is_installed($lib . 'alsa-plugins-pulseaudio',
+ '/usr/' . $lib . '/alsa-lib/libasound_module_pcm_pulse.so');
+ } elsif ($audiosystem eq 'PulseAudioGF') {
+ #### PulseAudio with Glitch-Free mode
+ configure_pulseaudio($in);
+ set_pulseaudio(1);
+ set_pulseaudio_glitchfree(1);
+ my $lib = get_libdir();
+ $in->do_pkgs->ensure_is_installed($lib . 'alsa-plugins-pulseaudio',
+ '/usr/' . $lib . '/alsa-lib/libasound_module_pcm_pulse.so');
+ } elsif ($audiosystem eq 'PipeWireWP') {
+ #### PipeWire with WirePlumber
+ configure_pipewire_wireplumber($in);
+ } elsif ($audiosystem eq 'PipeWireMS') {
+ #### PipeWire with PipeWire Media Session
+ configure_pipewire_media_session($in);
+ } else {
+ #### Unmanaged value
+ #TODO Error here
+ }
+
+ $in->ask_warn('', N("You need to reboot for changes to take effect")) if $::isStandalone;
+
+ };
+
+ my $warn_both = ($in->do_pkgs->is_installed('pipewire') && $in->do_pkgs->is_installed('pulseaudio') && (-e $::prefix . '/etc/systemd/user/sockets.target.wants/pipewire.socket' || -e $::prefix . '/etc/systemd/user/sockets.target.wants/pipewire.service')) ?
+ N("Warning: both pulseaudio and pipewire are installed and can conflict each other. Please fix your config by applying a choice") :
+ "";
+
+ my $is_pipewire_available = $in->do_pkgs->is_available('task-pipewire');
+ my $warn_pipewire_unavailable = !$is_pipewire_available ?
+ N("Warning: task-pipewire is not available in any media sources, so only pulseaudio could be set up. Please fix your repo configuration.") :
+ "";
- if ($new_driver eq 'unknown') {
- $in->ask_from(N("No alternative driver"),
- N("There's no known OSS/ALSA alternative driver for your sound card (%s) which currently uses \"%s\"",
- $device->{description}, $driver),
- [
- get_any_driver_entry($in, $modules_conf, $driver, $device),
- ]
- );
+ my @service_list = (
+ 'None',
+ 'PulseAudio',
+ 'PulseAudioGF',
+ );
+ if ($is_pipewire_available) {
+ push @service_list, 'PipeWireWP';
+ push @service_list, 'PipeWireMS';
+ }
+ my @common = (
+ {
+ label => N("Select the sound server"),
+ title => 1,
+ },
+ {
+ val => \$audiosystem,
+ list => \@service_list,
+ format => sub {
+ my ($choice) = @_;
+ +{
+ 'None' => N("None"),
+ 'PulseAudio' => N("PulseAudio"),
+ 'PulseAudioGF' => N("PulseAudio with Glitch-Free mode"),
+ 'PipeWireWP' => N("PipeWire with WirePlumber"),
+ 'PipeWireMS' => N("PipeWire with PipeWire Media Session"),
+ }->{$choice};
+ },
+ type => 'list',
+ },
+ {
+ advanced => 1,
+ val => N("Reset sound mixer to default values"),
+ clicked => sub { run_program::run('reset_sound') }
+ },
+ {
+ val => N("Troubleshooting"), disabled => sub {},
+ clicked => sub { &trouble($in) }
+ },
+ );
+
+ my @messages = ("<b><i>" . $device->{description} . "</i></b>",
+ N("Your card uses the <b>\"%s\"</b> driver\n", $driver));
+
+ if ($warn_both) {
+ push @messages, ("<b>" . $warn_both . "</b>");
+ }
+ if (!$is_pipewire_available) {
+ push @messages, "<b>" . $warn_pipewire_unavailable . "</b>";
+ }
+ if ($driver eq 'unknown') {
+ if ($in->ask_from_({
+ title => N("No alternative driver"),
+ messages => N("There's no known OSS/ALSA alternative driver for your sound card (%s) which currently uses \"%s\"",
+ $device->{description}, $driver),
+ },
+ \@common,
+ )) {
+ $write_config->();
+ }
} elsif ($in->ask_from_({ title => N("Sound configuration"),
- messages =>
- N("Here you can select an alternative driver (either OSS or ALSA) for your sound card (%s).",
- $device->{description}) .
- #-PO: here the first %s is either "OSS" or "ALSA",
- #-PO: the second %s is the name of the current driver
- #-PO: and the third %s is the name of the default driver
- N("\n\nYour card currently use the %s\"%s\" driver (default driver for your card is \"%s\")", ($driver =~ /^snd_/ ? "ALSA " : "OSS "), $driver, $device->{driver}),
- interactive_help => sub {
- N("OSS (Open Sound System) was the first sound API. It's an OS independent sound API (it's available on most UNIX(tm) systems) but it's a very basic and limited API.
-What's more, OSS drivers all reinvent the wheel.
-
-ALSA (Advanced Linux Sound Architecture) is a modularized architecture which
-supports quite a large range of ISA, USB and PCI cards.\n
-It also provides a much higher API than OSS.\n
-To use alsa, one can either use:
-- the old compatibility OSS api
-- the new ALSA api that provides many enhanced features but requires using the ALSA library.
-");
- },
+ interactive_help_id => 'soundConfig',
+ messages => \@messages
},
- [
- {
- label => N("Driver:"), val => \$new_driver, list => \@alternative, default => $new_driver, sort =>1,
- allow_empty_list => 1,
- format => sub { my ($drv) = @_;
- $drv eq 'unknown' ? $drv :
- sprintf(($des{$drv} ? "$des{$drv} (%s [%s])"
- : "%s [%s]"), $drv, $drv =~ /^snd_/ ? 'ALSA' : 'OSS');
- }
- },
- {
- val => N("Trouble shooting"), disabled => sub {},
- clicked => sub { &trouble($in) }
- },
- get_any_driver_entry($in, $modules_conf, $driver, $device),
- ]))
+ \@common,
+ ))
{
- return if $new_driver eq $device->{current_driver};
- log::explanations("switching audio driver from '" . $device->{current_driver} . "' to '$new_driver'\n");
- $in->ask_warn(N("Warning"), N("The old \"%s\" driver is blacklisted.\n
-It has been reported to oops the kernel on unloading.\n
-The new \"%s\" driver will only be used on next bootstrap.", $device->{current_driver}, $new_driver)) if $blacklisted;
- do_switch($in, $modules_conf, $device->{current_driver}, $new_driver, $device->{sound_slot_index});
- $device->{current_driver} = $new_driver;
+ $write_config->();
}
- } elsif ($driver =~ /^Bad:/) {
- $driver =~ s/^Bad://;
- $in->ask_warn(N("No open source driver"),
- N("There's no free driver for your sound card (%s), but there's a proprietary driver at \"%s\".",
- $device->{description}, $driver));
- } elsif ($driver eq "unknown") {
- $in->ask_from(N("No known driver"),
- N("There's no known driver for your sound card (%s)",
- $device->{description}),
- [ get_any_driver_entry($in, $modules_conf, $driver, $device) ]);
}
- end:
-}
-
-sub config {
- my ($in, $modules_conf, $device) = @_;
- switch($in, $modules_conf, $device);
}
-
sub trouble {
my ($in) = @_;
- $in->ask_warn(N("Sound trouble shooting"),
+ $in->ask_warn(N("Sound troubleshooting"),
formatAlaTeX(
#-PO: keep the double empty lines between sections, this is formatted a la LaTeX
- N("The classic bug sound tester is to run the following commands:
+ N("Below are some basic tips to help debug audio problems, but for accurate and up-to-date tips and tricks, please see:
+https://wiki.mageia.org/en/Support:DebuggingSoundProblems
-- \"lspcidrake -v | fgrep AUDIO\" will tell you which driver your card uses
-by default
-- \"grep sound-slot /etc/modprobe.conf\" will tell you what driver it
-currently uses
-- \"/sbin/lsmod\" will enable you to check if its module (driver) is
-loaded or not
+- General Recommendation: Enable PulseAudio. If you have opted to not to use PulseAudio, we would strongly advise you enable it. For the vast majority of desktop use cases, PulseAudio is the recommended and best supported option.
-- \"/sbin/chkconfig --list sound\" and \"/sbin/chkconfig --list alsa\" will
-tell you if sound and alsa services're configured to be run on
-initlevel 3
-- \"aumix -q\" will tell you if the sound volume is muted or not
-- \"/sbin/fuser -v /dev/dsp\" will tell which program uses the sound card.
-")));
-}
+- \"kmix\" (KDE), \"gnome-control-center sound\" (GNOME) and \"pavucontrol\" (generic) will launch graphical applications to allow you to view your sound devices and adjust volume levels
-sub get_any_driver_entry {
- my ($in, $modules_conf, $driver, $device) = @_;
- return () if $::isInstall;
- +{
- val => N("Let me pick any driver"), disabled => sub {},
- clicked => sub {
- my $old_driver = $driver;
- if ($in->ask_from(N("Choosing an arbitrary driver"),
- formatAlaTeX(
- #-PO: keep the double empty lines between sections, this is formatted a la LaTeX
- N("If you really think that you know which driver is the right one for your card
-you can pick one in the above list.
-
-The current driver for your \"%s\" sound card is \"%s\" ", $device->{description}, $driver)),
- [
- { label => N("Driver:"), val => \$driver, list => [ category2modules("multimedia/sound") ], type => 'combo', default => $driver, sort =>1, separator => '|' },
- ]
- )) {
- do_switch($in, $modules_conf, $old_driver, $driver, $device->{sound_slot_index});
- goto end;
- }
- }
- };
+
+- \"ps aux | grep pulseaudio\" will check that PulseAudio is running.
+
+
+- \"pactl stat\" will check that you can connect to the PulseAudio daemon correctly.
+
+
+- \"pactl list sink-inputs\" will tell you which programs are currently playing sound via PulseAudio.
+
+
+- \"systemctl status osspd.service\" will tell you the current state of the OSS Proxy Daemon. This is used to enable sound from legacy applications which use the OSS sound API. You should install the \"ossp\" package if you need this functionality.
+
+
+- \"pacmd ls\" will give you a LOT of debug information about the current state of your audio.
+
+
+- \"lspcidrake -v | grep -i audio\" will tell you which low-level driver your card uses by default.
+
+
+- \"/usr/sbin/lsmod | grep snd\" will enable you to check which sound related kernel modules (drivers) are loaded.
+
+
+- \"alsamixer -c 0\" will give you a text-based mixer to the low level ALSA mixer controls for first sound card
+
+
+- \"/usr/sbin/fuser -v /dev/snd/pcm* /dev/dsp\" will tell which programs are currently using the sound card directly (normally this should only show PulseAudio)
+")));
}
sub configure_one_sound_slot {
@@ -373,7 +656,7 @@ sub configure_sound_slots {
my $altered = 0;
each_index {
my $default_driver = $modules_conf->get_alias("sound-slot-$::i");
- if (!member($default_driver, get_alternative($_->{driver}), $_->{driver})) {
+ if (!member($default_driver, $_->{driver})) {
$altered ||= $default_driver;
configure_one_sound_slot($modules_conf, $::i, $_->{driver});
}
diff --git a/perl-install/harddrake/v4l.pm b/perl-install/harddrake/v4l.pm
index 7711c250a..bd7c649bb 100644
--- a/perl-install/harddrake/v4l.pm
+++ b/perl-install/harddrake/v4l.pm
@@ -473,7 +473,7 @@ sub config {
if ($in->ask_from("BTTV configuration", N("For most modern TV cards, the bttv module of the GNU/Linux kernel just auto-detect the rights parameters.
-If your card is misdetected, you can force the right tuner and card types here. Just select your tv card parameters if needed."),
+If your card is misdetected, you can force the right tuner and card types here. Just select your TV card parameters if needed."),
[
{ label => N("Card model:"), val => \$conf{card}, list => [ keys %cards_list ], default => -1, sort =>1, separator => '|' },
{ label => N("Tuner type:"), val => \$conf{tuner}, list => [keys %tuners_lst], format => sub { $tuners_lst{$_[0]} }, sort => 1, separator => '|' },
@@ -483,7 +483,7 @@ If your card is misdetected, you can force the right tuner and card types here.
$conf{card} = $cards_list{$conf{card}};
if (my $options = join(' ', if_($driver eq 'bttv', 'radio=' . ($conf{radio} ? 1 : 0)), map { if_($conf{$_} ne -1, "$_=$conf{$_}") } qw(card pll tuner gbuffers))) {
log::l(qq([harddrake::v4l] set "$options" options for $driver));
-# log::explanations("modified file /etc/modules.conf ($options)") if $::isStandalone;
+# log::explanations("modified file /etc/modprobe.conf ($options)") if $::isStandalone;
$modules_conf->set_options($driver, $options);
}
return 1;
diff --git a/perl-install/install/Makefile b/perl-install/install/Makefile
index 050730689..69b46e7be 100644
--- a/perl-install/install/Makefile
+++ b/perl-install/install/Makefile
@@ -15,15 +15,20 @@ all: xs
clean xs:
make -C .. $@
+dist: tar
+
tar:
rm -rf $(PRODUCT)*.tar* $(PRODUCT)-$(VERSION)
- mkdir -p $(PRODUCT)-$(VERSION)
- svn export -q -rBASE .. $(PRODUCT)-$(VERSION)/perl-install
- svn export -q -rBASE ../../tools $(PRODUCT)-$(VERSION)/tools
- svn export -q -rBASE ../../kernel $(PRODUCT)-$(VERSION)/kernel
- cp ../../Makefile.config $(PRODUCT)-$(VERSION)/
- tar cfj $(PRODUCT)-$(VERSION).tar.bz2 $(PRODUCT)-$(VERSION)
+ mkdir -p $(PRODUCT)-$(VERSION)/perl-install/install/share/
+ (cd ../..; git archive HEAD kernel perl-install tools Makefile.config) | tar xC $(PRODUCT)-$(VERSION)
+ rm -fr $(PRODUCT)-$(VERSION)/perl-install/standalone/po
+ svn export svn://svn.mageia.org/svn/packages/cauldron/meta-task/current/SOURCES $(PRODUCT)-$(VERSION)/perl-install/install/share/meta-task
+ tar cfa $(PRODUCT)-$(VERSION).tar.xz $(PRODUCT)-$(VERSION)
rm -rf $(PRODUCT)-$(VERSION)
+ $(info $(PRODUCT)-$(VERSION).tar.xz is ready)
+
+tag:
+ git tag -a $(VERSION) -m "$(VERSION)"
install:
$(MAKE) full_stage2
@@ -32,39 +37,48 @@ install:
install_pms:
[ -d $(DEST) ] || ../../tools/mdkinst_stage2_tool --uncompress $(STAGE2_DEST)
- for i in `perl -ne 's/sub (\w+?)_?(\(\))? {.*/$$1/ and print' commands.pm` sync; do ln -sf commands $(DEST)/usr/bin/$$i; done
+# commands implemented in perl:
+ for i in `perl -ne 's/sub (\w+?)_?(\(\))? \{.*/$$1/ and print' commands.pm` sync; do if [ ! -x $(DEST)/usr/bin/$$i ]; then ln -sf commands $(DEST)/usr/bin/$$i; fi; done
+# install & clean perl modules:
install -d $(DESTREP4PMS)
cd .. ; for i in $(PMS); do \
dest=$(DESTREP4PMS)/`dirname $$i`; \
install -d $$dest; \
- perl -pe 's/#[-+].*//; $$_ = "\n" if (/^=(head|begin)/ .. /^=cut/) || /use (diagnostics|strict|vars|warnings)/' $$i > $(DESTREP4PMS)/$$i; \
+ perl -pe 's/#[-+].*//; $$_ = "\n" if (/^=(back|begin|head|item|over|pod)/ .. /^=cut/) || /use (diagnostics|strict|vars|warnings)/' $$i > $(DESTREP4PMS)/$$i; \
done
- cp ../share/*.rc share/*.rc $(DESTREP4PMS)
chmod a+x $(DESTREP4PMS)/install/install2
chmod a+x $(DESTREP4PMS)/install/commands
get_needed_files: xs
+# generate installer system:
+ mkdir -p $(DEST)/{usr/,}{,s}bin
+ mkdir -p $(DEST)/etc
+ for dir in /lib /lib64; do [[ -d $$dir ]] && mkdir -p $(DEST){,/usr}$$dir; done || :
+ /usr/lib/dracut/modules.d/30convertfs/convertfs.sh $(DEST)
REP4PMS=$(REP4PMS) ../../tools/install-xml-file-list share/list.xml $(DEST)
chmod u-s -R $(DEST) # for mount/umount
share/generate-xlocales $(DEST)
- mv -f $(DEST)/usr/$(LIB)/*.so* $(DEST)/$(LIB)
../../tools/simplify-drakx-modules $(DEST)/usr/*/*/*/utf8_heavy.pl
perl -I.. -Mlang -e 'symlink "UTF-8", "$(DEST)/usr/share/locale/$$_" foreach lang::list_langs()'
+# various needed soft links (eg for ndiswrapper):
perl -ane 'symlink "$$F[1]", "$(DEST)$$F[0]"' share/aliases
+# default shell:
ifeq (ia64,$(ARCH))
ln -sf bash $(DEST)/bin/sh
else
ln -sf ash $(DEST)/bin/sh
endif
+# X11 font caches:
mkfontdir $(DEST)/usr/share/fonts
fc-cache -f $(DEST)/usr/share/fonts
+# drakx translations:
$(MAKE) -C ../share/po install SUDO= LOCALEDIR=$(DEST)/usr/share/locale_special
$(MAKE) -C help/po install SUDO= LOCALEDIR=$(DEST)/usr/share/locale_special
$(MAKE) -C share/po install SUDO= LOCALEDIR=$(DEST)/usr/share/locale_special
@@ -75,6 +89,7 @@ endif
full_stage2:
$(MAKE) stage2
+ @if [ "$${DEBUG_INSTALL+xxx}" ]; then make dont_run_directly_stage2; else : ; fi
$(MAKE) compress
compress:
@@ -82,14 +97,14 @@ compress:
stage2:
rm -rf $(DEST)
- mkdir -p $(DEST)
+ mkdir -p $(DEST)/usr
$(MAKE) get_needed_files
$(MAKE) install_pms
dont_run_directly_stage2:
[ -d $(DEST) ] || ../../tools/mdkinst_stage2_tool --uncompress $(STAGE2_DEST)
- echo -e '#!/bin/sh\n\nexec /usr/bin/busybox sh' > $(DEST)/usr/bin/runinstall2.sh
- chmod a+x $(DEST)/usr/bin/runinstall2.sh
+ install -m 755 share/runinstall2.sh share/gdb-inst $(DEST)/usr/bin/
+ [ -n $$DEBUG_INSTALL_LANG ] && perl -pi -e '$$_ = "loadkeys '$$DEBUG_INSTALL_LANG'\n$$_" if / sh/' $(DEST)/usr/bin/runinstall2.sh
ln -sf runinstall2.sh $(DEST)/usr/bin/runinstall2
trace_stage2:
diff --git a/perl-install/install/NEWS b/perl-install/install/NEWS
index 6a25fc227..9a6552f2a 100644
--- a/perl-install/install/NEWS
+++ b/perl-install/install/NEWS
@@ -1,3 +1,4494 @@
+- use task-plasma-minimal instead of task-plasma5-minimal
+- use mutter with X11 backend
+- Create /etc while creating installer system
+- Adapt to latest gdk-pixbuf changes and use glycin to load images
+- fix bugs in any::sessions() (mga#33738)
+
+Version 18.69 - 07 June 2025
+- Updated translations
+- bytes_heavy.pl was merged into bytes.pm
+- Agafari-16 console font support was dropped from kbd
+- fix glob for svg pixbuf loader
+- Don't use mdadm --chunk option when creating level 1 RAID (mga#33767)
+- Detect legacy (non-PCI) Intel SST audio DSP devices (mga#33145)
+- install rpm's /usr/lib/rpm/sysusers.sh to stage2 image by default
+- Drop i586 bits
+
+Version 18.68 - 28 April 2024
+- Adapt to rpm-4.19.1
+- Fix debug build
+- Updated translations
+
+Version 18.67 - 5 January 2024
+
+- Fix grub2-efi package name on aarch64 (mga#32686)
+- Updated translations
+
+Version 18.66 - 19 August 2023
+
+- Revert change of default DHCP client to dhcpcd (mga#30938)
+
+Version 18.65 - 11 July 2023
+
+- add ntfs3 to isFat_or_NTFS()
+- sync list of modules needing firmware with kernel-desktop-6.4.2-2.mga9
+- Sync list_modules with kernel 6.4
+
+Version 18.64 - 24 June 2023
+
+- Change default DHCP client to dhcpcd (mga#30938)
+- Updated translations
+
+Version 18.63 - 6 June 2023
+
+- rescue: mount efivars in chroot on UEFI systems (mga#31844)
+- Updated translations
+- Fix total_memory() by using sysinfo()
+- Add nvidia-newfeature.ko to nvidia modules supported list
+- drakclock: set to checked if ntpd is started.
+
+Version 18.62 - 28 April 2023
+
+- Update file list for changes in Adwaita icon locations
+
+Version 18.61 - 28 April 2023
+
+- Include ModemManager and NetworkManager in Networking services category
+- Updated translations
+
+Version 18.60 - 17 April 2023
+
+- New artwork for Mageia 9
+
+Version 18.59 - 14 April 2023
+
+- Don't force pavucontrol when there is already pavucontrol-qt in plasma-desktop enviroment
+- Updated translations
+
+Version 18.58 - 8 April 2023
+
+- Modify draksound GUI to add support for switching to pipewire
+
+Version 18.57 - 29 March 2023
+
+- Use OK/Cancel as button names when asking whether to retry
+ after failing to add on-line media
+- Recognize new kernel 6.0 drivers
+- Updated translations
+
+Version 18.56 - 9 February 2023
+
+- Recognize new kernel 5.19 drivers
+- Recognize new kernel 6.0 drivers
+- Recognize new kernel 6.1 drivers
+
+Version 18.54 - 6 January 2023
+
+- Apply workaround to fix display of release notes (mga#31294)
+
+Version 18.53 - 29 December 2022
+
+- Add openssl config file needed when running cryptsetup (mga#31315)
+- updated translations
+
+Version 18.52 - 3 December 2022
+
+- support https URLs for online media
+- allow user to specify the downloader used for online supplementary media
+- allow user to specify a specific mirror and downloader when applying updates
+ at the end of installation
+- updated translations
+
+Version 18.51 - 29 October 2022
+
+- Include rpm & rpmdb to allow database to be converted to sqlite (mga#31024)
+- Adapt to WebKit2 4.1
+- bootloader: ensure efivars are mounted before installing a UEFI bootloader (mga#31008)
+
+Version 18.50 - 17 September 2022
+
+- bootloader: don't remove existing failsafe/nonfb entries on upgrade
+ if we aren't replacing them with new ones
+- bootloader: add options to change the rEFInd background (mga#28073)
+- Update the list of drivers that need a nonfree firmware against kernel-5.18
+
+Version 18.49 - 8 June 2022
+
+- Adapt to perl 5.28
+- package installation:
+ o retry downloading packages in case of error (mga#28539)
+- Recognize new kernel 5.17 drivers
+- Recognize new kernel 5.18 drivers
+
+Version 18.48 - 17 January 2022
+
+- Enable to alter default downloader (mga#28539)
+ eg: " downloader=wget"
+
+Version 18.47 - 30 October 2021
+
+- Adapt to xserver-21.1
+- Debug mode:
+ o Adapt to the fact that gdb-11.1 uses guile-3
+ o Adapt to gdb-11.1 (missing scm files)
+ o Add a wrapper to easily debug Xorg
+
+Version 18.46 - 6 June 2021
+
+- Adjust to x11-data-xkbdata-2.32
+- Adapt to gdk_pixbuf 2.42.6
+
+Version 18.45 - 21 february 2021
+
+- Fix step-categories color to make it visible in the installer (mga#28375)
+- Adjust logo colours on left background
+- translation updates
+
+Version 18.44 - 14 February 2021
+
+- Set left background to release and improve colours
+
+Version 18.43 - 31 January 2021
+
+- updated translations
+- bootloader: don't remove os-prober before user makes choice (mga#28223)
+
+Version 18.42 - 26 January 2021
+
+- updated translations
+- prefer using UUID for mmcblk and nvme devices (mga#28111)
+
+Version 18.41 - 11 January 2021
+
+- Artwork for Mageia 8
+- Left background set to rc1
+
+Version 18.40 - 11 January 2021
+
+- updated translations
+- fix handling of TYPE"64bit" flags when reading rpmsrate
+ o ensure 32-bit packages are not pre-selected on 64-bit systems
+
+Version 18.39 - 04 January 2021
+
+- Update translations
+- disable timeout when installing updates (mga#27981)
+ o this can take a long time when there are many updates
+
+Version 18.38 - 29 December 2020
+
+- bootloader:
+ o fix false detection of GRUB2 when installed in ESP but not in /boot,
+ which caused boot method to default to non-graphical GRUB2 (mga#27816)
+ o add option to configure rEFInd to not use EFI NVRAM (mga#27838)
+- partitioning:
+ o erase iso9660 signature when clearing hybrid ISO disk (mga#27864)
+ o restrict line length when displaying base device info
+ to prevent window extending off screen (mga#27882)
+- support https in media URL (mga#27776)
+
+Version 18.37 - 5 December 2020
+
+- recognize more rtw88_*
+- recognize new kernel 5.10 drivers
+- sync list for modules needing firmware with kernel 5.9
+
+Version 18.35 - 20 November 2020
+
+- partitioning:
+ o do not mount ESP with umask=0 under UEFI (mga#27415)
+ o fix "partition table is too corrupt for me" error when a mdadm RAID array
+ has been created outside Mageia tools using raw devices (mga#26707)
+ o include tools for exfat
+
+Version 18.34 - 14 September 2020
+
+- services:
+ o include systemd sockets and timers
+- bootloader:
+ o keep timeout value when it's 0 (mga#27158)
+- recognize new kernel 5.9 drivers
+
+Version 18.33 - 19 August 2020
+
+- recognize new kernel 5.5 - 5.8 drivers
+- support loading auto_install file from https url
+- report.bug:
+ o log data about LVM
+ o log data about dmsetup
+
+Version 18.31 - 18 June 2020
+
+- restore flat list option for individual package selection
+- add option to install GRUB2 bootloader in \EFI\BOOT (mga#24282)
+- improved behaviour when installing on a removable device (mga#26761)
+ o only use swap partitions on that device
+ o default to installing bootloader on that device
+ (in \EFI\BOOT for UEFI bootloaders)
+ o default to not including other OSs in GRUB2 boot menu
+- fix free space calculation when auto-allocating partitions
+
+Version 18.30 - 9 June 2020
+
+- don't show hardware in summary screen when match_all_hardware flag is set
+
+Version 18.29 - 6 June 2020
+
+- partitioning: exclude ISO installer medium from available disks (mga#26714)
+
+Version 18.28 - 29 May 2020
+
+- bootloader: don't die in write_grub2 if grub.cfg doesn't exist (mga#26676)
+- translation updates
+
+Version 18.27.1 - 8 May 2020
+
+- bootloader:
+ fix typo x86 -> x64 for matching 64bit grub2-efi(x86-64)
+
+Version 18.27 - 1 May 2020
+
+- bootloader config:
+ o do not try to enable non existing acpi service
+ o rename /boot/efi as /boot/EFI if needed (mga#22395)
+- partitioning:
+ o it's now possible to set labels on exfat
+- select only once needed fs tools
+
+Version 18.26 - 20 March 2020
+
+- bootloader config: copy instead of renaming grub.cfg (mga#25542)
+- install dmsetup when encrypting "/" (thus workarounding unbootable minimal
+ system as dracut's crypt module depends on it)
+- partitioning:
+ o add minimal support for exFAT
+
+Version 18.25 - 18 March 2020
+
+- adjust debug build to current python
+- partitioning:
+ o enable to inspect NILFS2 formated partitions
+ o enable to install on F2FS formated partitions
+ o enable to resize NILFS2
+ o enable to resize XFS during install
+ o fix online resizing not always umounting fs after resizing
+- recognize new kernel 5.5 drivers
+
+Version 18.24 - 15 March 2020
+
+- fix tracking of installed packages (mga#26284)
+- include plugin for supporting Windows 10 NTFS "Compact OS"
+- drakx-in-chroot:
+ o skip disk ESP & BIOS boot partition checks
+- partitioning:
+ o make reformating nilfs2 fses to work
+- sync list for modules needing firmware with kernel 5.5
+- write ISO label and date to installer log
+
+Version 18.23 - 25 January 2020
+
+- adapt to libinput-1.15.0
+- recognize new kernel 5.3 drivers
+
+Version 18.22 - 13 September 2019
+
+- adapt to libinput 1.4
+- adjust to new rpm-mageia-setup
+- new Gtk3 needs GdkPixdata-2.0
+
+Version 18.21 - 23 June 2019
+
+- update left-background for Mageia 7 final
+
+Version 18.20 - 18 June 2019
+
+- translation updates
+- update list for modules needing firmware
+- recognize 8821ce (mga#24605)
+
+Version 18.19 - 27 May 2019
+
+- preselect Core 32bit media on 32-bit EFI platforms
+- include all of /usr/lib/udev/hwdb.d (mga#20327)
+
+Version 18.18 - 20 May 2019
+
+- translation updates
+
+Version 18.16 - 11 May 2019
+
+- Mageia 7 Artwork
+- add AMD PCIe MP2 I2C detection
+
+Version 18.15 - 3 May 2019
+
+- recognize new kernel 5.1 drivers
+
+Version 18.14 - 26 April 2019
+
+- include libinput model quirks rules (mga#20327)
+
+Version 18.13 - 21 April 2019
+
+- partitioning: speed up partition table read and write (mga#15752)
+- preserve existing locale settings on upgrade (mga#24671)
+- store country code in /etc/locale.conf (mga#24671)
+- don't automatically change time zone on upgrade (mga#24670)
+- partitioning: fix resize of encrypted partitions (mga#22032)
+- translation updates
+
+Version 18.12 - 16 March 2019
+
+- don't preselect Nonfree 32bit media (mga#23927)
+- fix paths to Adwaita icons (changed in adwaita-icon-theme)
+
+Version 18.11 - 16 March 2019
+
+- recognize new kernel 5.0 drivers
+- fix screen layout when the framebuffer is > 1024x768 (mga#23904)
+- translation updates
+
+Version 18.10 - 3 Feb 2019
+
+- skip setupSCSI step when run with --local_install (mga#24278)
+- don't install nonfree graphics drivers when not wanted (mga#24172)
+- don't select default bootloader when building Live ISOs
+- improve exitInstall message (mga#24046)
+- translation updates
+
+Version 18.9 - 17 Dec 2018
+
+- avoid resetting keyboard layout at end of formatting step (mga#23877)
+- bootloader:
+ o only prefer rEFInd if it is installed in the root fs (mga#23944)
+ o support 32-bit UEFI with 64-bit O/S
+- translation updates
+
+Version 18.8.1 - 1 Dec 2018
+
+- desktop kernels are now PAE, for PTI security fixes to work properly,
+ so if cpu is not supporting it, install the desktop586 kernel
+- dont select server kernel anymore on 32bit x86 with RAM > 3.8GB
+
+Version 18.8 - 28 Nov 2018
+
+- only install radeon-firmware if needed (mga#23911)
+- sync list of drivers needing a firmware with kernel 4.19
+
+Version 18.7 - 27 Nov 2018
+
+- bootloader: display "ESP" in summary under UEFI
+- check DM really is installed, not just present in /usr/share/X11.dm.d
+- packages selection:
+ o open-vm-tools is handled through rpmsrate
+
+Version 18.6 - 21 Nov 2018
+
+- fix DM preference when none is selected (don't default to XDM)
+- fix some DE name/capitalisation inconsistencies (mga#23634 + others)
+- remove version from Enlightenment DE name strings (mga#19341)
+
+Version 18.5 - 19 Nov 2018
+
+- bootloader: ignore GPT disk w/o BIOS boot part (mga#23844) in automatic mode
+- recognize new kernel 4.1[89] drivers
+
+Version 18.4 - 4 Nov 2018
+
+- adapt set_autologin for display-manager service, not prefdm (mga#22593)
+- drakx-in-chroot:
+ o allow monitor-edid to be suppressed in post-install scriptlets
+- translation updates
+
+Version 18.3 - 15 Oct 2018
+
+- drakboot: add support for the rEFInd boot manager (mga#15153)
+- include Encode::Unicode module (needed by bootloader::write_refind)
+
+Version 18.1 - 14 September 2018
+
+- drakx-in-chroot:
+ o do not run monitor-edid with drakx-in-chroot (timeout)
+- fix regression due to rpm-4.14.2 where drakx report pkgs failing to install
+ (mga#23531)
+
+Version 18.0 - 25 August 2018
+
+- mdadm raid:
+ o raid10 can be created with just 2 disks as a high-performance raid1
+ o raid10: use layout f2 with 2 disks for performance
+ o raid6 can be used with 3 disks and up
+- remove current media before adding online media for updates (mga#19742)
+- bootloader: include the "Mageia" entry in the gub2 Default choices (mga#23393)
+- include mode modules for Encode (mga#23481)
+
+Version 17.99 - 9 August 2018
+
+- adapt to libinput 1.12 RC1
+- adapt to perl 5.28
+- recognize smartpqi driver (mga#23305)
+
+Version 17.98 - 22 June 2018
+
+- recognize new kernel 4.1[5-7] drivers
+
+Version 17.97 - 5 June 2018
+
+- libinput-list-devices is no more
+
+Version 17.96 - 13 March 2018
+
+- support ChooseMedia in auto-install interactiveSteps
+- fix spurious error messages when installing network driver packages
+- translation updates
+
+Version 17.95 - 10 February 2018
+
+- include sensors in udev's HWDB
+- debug mode:
+ o include rpm & urpmi tools
+- recognize more new kernel-4.14 drivers
+
+Version 17.94 - 9 February 2018
+
+- add input rules from new systemd (mga#21886)
+- debug mode:
+ o adjust for python-3.6
+ o include chroot & partprobe too
+- fix including libinput tool
+- fix local install on systems without usb
+
+Version 17.93 - 19 January 2018
+
+- sync with kernel 4.14
+- include more input HWDB entries
+- diskdrake:
+ o ensure device major/minor numbers are reread after writing the
+ partition table (mga#22032)
+ o ensure soft links in /dev/disk/by-uuid are updated so that valid
+ UUIDs are embedded in the initrd (mga#22059)
+
+Version 17.92 - 4 January 2018
+
+- fix perl escaping causing commands to not get linked
+- fix some error handling in mdkinst_stage2_tool
+
+Version 17.91 - 4 October 2017
+
+- do not include libnss3 anymore as rpm now uses OpenSSL
+- do not include some hwdb files from uneeded pkgs
+
+Version 17.90 - 18 September 2017
+
+- bootloader:
+ o better read back config
+ o fix undefined labels when eg: Xen is installed (mga#19014)
+ crash with "undefined value for mandatory argument 'text''
+
+Version 17.89 - 7 September 2017
+
+- include part of udev's hwdb (mga#20327)
+- adapt to perl-5.26
+- adapt to URPM-5.14 (using perl native ints)
+
+Version 17.88 - 7 July 2017
+
+- translation updates
+
+Version 17.87 - 25 June 2017
+
+- left background image for Mageia 6 final
+
+Version 17.86 - 23 June 2017
+
+- increase the default window size of the installer to 1024x768 (mga#20624)
+
+Version 17.85 - 22 June 2017
+
+- don't overwrite custom grub2 settings when upgrading (mga#20596)
+- recognize 8812au (mga#21043)
+
+Version 17.84 - 5 June 2017
+
+- translation updates
+
+Version 17.83 - 4 June 2017
+
+- log output of libinput-list-devices in report.bug (mga#20327)
+- translation updates
+
+Version 17.82 - 6 May 2017
+
+- add "please wait" message when running update-grub2
+
+Version 17.81 - 5 May 2017
+
+- fix missing "Configure Supplemental Installation Media" screen (mga#20484)
+
+Version 17.80 - 3 May 2017
+
+- updated DE selection and advertising artwork for Mageia 6
+
+Version 17.79 - 26 April 2017
+
+- updated translation snapshot
+
+Version 17.78 - 4 April 2017
+
+- new left background for Mageia 6 rc
+
+Version 17.77 - 4 April 2017
+
+- partitioning:
+ o don't require a BIOS boot partition when performing an upgrade (mga#20338)
+ o make partitioning more robust with "Use entire disk" option (mga#20619):
+ * add safety net for informing the kernel after writing a DOS partition
+ table.
+ * speed up proc_partitions::compare() and avoid unwanted udev events.
+ o force reinitialisation of partition suggestions after wiping disk
+ (mga#20621)
+- various fixes to do_pkgs during Live installs (mga#20620):
+ o fix do_pkgs_standalone::are_installed() for Live install
+ o fix do_pkgs_standalone::remove() for Live install
+ o fix fast path for do_pkgs::ensure_is_installed()
+
+Version 17.76 - 24 March 2017
+
+- installer options handling:
+ o ignore case for options line in previous releases
+ o fix default value for 'compssListLevel' (mga#20551)
+ (both being post mga5 regression)
+
+Version 17.75 - 17 March 2017
+
+- partitioning:
+ o fix too big window due to too big translations (mga#20360)
+ o allow a BIOS boot partition to be located on any disk (mga#20161)
+ o ensure kernel is informed when a MBR partition table is cleared
+ o clearing GPT partitions:
+ * delay thus fix clearing GPT partitions (mga#20264)
+ ("failed to del partition #1 on /dev/...")
+ * don't send separate events to the kernel about removing/adding GPT partitions,
+ just tell it to reread the whole newly cleared & allocated partition table
+ o tell the kernel all actions at once on GPT partitions instead of telling it
+ separatly about removing partitions A, B & C, then adding partition E, F &G
+
+Version 17.74 - 9 March 2017
+
+- update translations (e17 -> e21)
+
+Version 17.73 - 8 March 2017
+
+- debug mode:
+ o add example how to include debuginfo
+ o make it work with gdb-7.12
+ o preset keyboard if DEBUG_INSTALL_LANG is set during build
+- list input & HID devices in report.bug (mga#20327)
+- recognize new kernel-4.8 drivers
+
+Version 17.72 - 25 February 2017
+
+- partitioning:
+ o allow a BIOS boot partition to be located on any disk (mga#20161)
+ o fix auto-allocation of BIOS boot partitions (mga#20161, mga#19888)
+ o don't suggest mountpoint for ESP when doing a legacy boot install (mga#20164)
+ o fix bugs in sync'ing the kernel's partition table cache (mga#20074)
+ o detect and handle DOS "Empty" partition types (mga#20074)
+- sync nonfree firmware list with kernel-4.9
+- use SHA-512 instead of blowfish as the default password encryption (mga#20342)
+
+Version 17.71 - 18 January 2017
+
+- partitioning_wizard:
+ o fix bug in detecting whether a BIOS boot partition is required (mga#19935)
+- fix inserting extended partition in the middle
+
+Version 17.70 - 17 January 2017
+
+- new left background for Mageia 6
+
+Version 17.69 - 12 January 2017
+
+- bootloader:
+ o disable audit logging as it floods the logs
+- partitioning:
+ o fix exception when clearing all partitions on !UEFI (mga#20083)
+- recognize new kernel-4.9 drivers
+
+Version 17.68 - 14 December 2016
+
+- fix progress bar on i586 (mga#19930)
+
+Version 17.67 - 13 December 2016
+
+- fix a crash introduced in 17.66
+
+Version 17.66 - 13 December 2016
+
+- fix more i586 problems with int64 (mga#19933, mga#19930)
+
+Version 17.65 - 12 December 2016
+
+- bootloader configuration:
+ o describe what skipping os-prober does (mga#18538)
+ o show generic help too when using grub2
+- fix i586 installation broken by int64 (mga#19895)
+
+Version 17.64 - 11 December 2016
+
+- more int64 init (mga#19895)
+
+Version 17.63 - 9 December 2016
+
+- force use of int64 for installed package size on i586 (mga#19895)
+
+Version 17.62 - 1 December 2016
+
+- left background for Mageia 6 sta2
+- add grub2-editenv in list.xml
+
+Version 17.61 - 26 November 2016
+
+- screenshots:
+ o use scrot instead of fb2png as the later doesn't work with vesa (mga#19810)
+
+Version 17.60 - 15 November 2016
+
+- partitioning:
+ o fix being unable to format a newly part (mga#19172)
+ o offer to format unmounted parts that have a defined mount point
+
+Version 17.58 - 24 October 2016
+
+- bootloader configuration:
+ o make kernel server default if installed
+ (we were only checking for long dead flavors such as enterprise, ...)
+- fix build with latest URPM aka include perl-Math-Int64 (mga#19640)
+
+Version 17.57 - 21 September 2016
+
+- use new CSS syntax for font (mga#19430)
+
+Version 17.56 - 19 September 2016
+
+- detect ovirt too (mga#19308)
+- fix gtk+3.22 regression (mga#19406)
+- sync nonfree firmware list with kernel-4.7
+
+Version 17.55 - 13 August 2016
+
+- New left background for Mageia 6 RC
+
+Version 17.54 - 13 August 2016
+
+- autologin/desktop configuration (shared code):
+ o add support for LXDM (mga#17616)
+ o add support for SDDM (mga#17913)
+
+Version 17.53 - 31 July 2016
+
+- bootloader configuration:
+ o fix .old backup for grub2's grub.cfg
+- partitioning:
+ o first usable sector is LBA34 for GPT
+ o respect used scheme when clearing a disk
+ (ie do not switch from gpt to dos scheme on small disk)
+
+Version 17.52 - 17 July 2016
+
+- do not preinstall mageia-gfxboot-theme
+- bootloader configuration:
+ o fix not being able to edit default grub2 cmdline (mga#18952)
+
+Version 17.51 - 12 July 2016
+
+- fix starting spice-vdagentd
+- partitioning:
+ o auto_inst: fix clearing an already filled GPT disk
+ o don't offer to format RAID or BIOS boot partition
+ o make clear a BIOS boot partition cannot have a mount point
+ o make error about BIOS boot partition more explicit about
+ its purpose and that it must be created (mga#18923)
+
+Version 17.50 - 8 July 2016
+
+- include pvs/vgs/lvs symlinks
+- partitioning:
+ o display a wait message when adding a PV to VG
+- libvirt integration:
+ o start spice-vdagent{d,} (Qemu guest agent)
+
+Version 17.49 - 6 July 2016
+
+- autoinst:
+ e enable to set several swap partitions (mga#9874)
+ o enable to select media (mga#12299)
+- partitioning:
+ o GPT: prevent geometry issue on last partition (mga#18666, mga#17796)
+ o restrict fdisk -l output to useful disks
+- recognize new kernel-4.7 drivers
+- try to get patch from ext[2-4] removable media instead of just ext2
+
+Version 17.48 - 4 July 2016
+
+- bootloader configuration:
+ o allow installing grub2 on XFS /
+ o make clear grub2 is installed on ESP under UEFI
+ o make sure we only offer lilo/grub choice on upgrades only
+- partitioning:
+ o do not offer to check for bad blocks on btrfs (mga#12393)
+ o do not warn about no bootloader can boot LVM as grub2 can (mga#9426)
+ o do not warn about no bootloader can boot RAID[^1] as grub2 can (mga#11324)
+ o enable bad blocks checking on JFS
+- summary:
+ o add help link for sound (mga#11824)
+
+Version 17.47 - 30 June 2016
+
+- partitioning:
+ o fix being able to create vfat on UEFI (mga#15698)
+- recognize some missing wireless drivers (mga#16768)
+- users:
+ o offer again to add user to admin group (mga#17720)
+
+Version 17.46 - 24 June 2016
+
+- library:
+ o enable compssUsers.pl to pick the right lsb-core-lib(64) flavor
+
+Version 17.45 - 24 June 2016
+
+- partitioning:
+ o keep UUID when formatting btrfs (mga#18673)
+
+Version 17.44 - 24 June 2016
+
+- bootloader configuration:
+ o add a "Do not touch ESP or MBR" option (mga#18770)
+ o do not offer to pick the disk where to install grub2 on UEFI
+ o filter GPT disks w/o a BIOS boot part (mga#18770)
+ o warn if grub2 is not installed on MBR/ESP
+- logs:
+ o fix found kernel names
+ o log if were running under UEFI
+- partitioning:
+ o fix preserving UUID when formatting jfs/nilfs/xfs
+- package selection:
+ o display a wait dialog when choosing custom choice (mga#11041)
+- summary:
+ o sort service categories, putting "Other" at end (mga#6286)
+
+Version 17.43 - 22 June 2016
+
+- summary:
+ o fix not listing some services (mga#17288)
+ o fix updating firewall status after configuration (mga#17288)
+
+Version 17.42 - 22 June 2016
+
+- bootloader configuration:
+ o add support for crypted grub2 passwords (mga#15930)
+ o grub2: do not overwite ESP if not installing on it (mga#15583)
+ o grub2: fix setting default entry when in a submenu (mga#18560)
+
+Version 17.41 - 20 June 2016
+
+- bootloader:
+ o fix the grub2 post-install check (mga#18739)
+
+Version 17.40 - 20 June 2016
+
+- bootloader:
+ o ensure we've the right grub2 flavor (mga#18739)
+- no more include vmmouse driver
+
+Version 17.39 - 18 June 2016
+
+- partitioning:
+ o fix ESP tagging in some cases
+- services:
+ o update service category lists
+
+Version 17.38 - 16 June 2016
+
+- partitioning:
+ o fix offering to create a GRUB_BIOS partition in custom mode (mga#18656)
+ o fix inverted test when checking need for a GRUB_BIOS partition (mga#18704)
+
+Version 17.37 - 12 June 2016
+
+- partitioning:
+ o try harder to guess if we need a GRUB_BIOS partition (mga#18656)
+- rename desktop image KDE -> Plasma (mga#18687)
+
+Version 17.36.1 - 11 June 2016
+
+- fix selecting Plasma (mga#18687)
+
+Version 17.36 - 11 June 2016
+
+- do not override bootloader on upgrade (mga#18638)
+- fix running with nss 3.24
+- debug build:
+ o gdb needs python3 instead of python2 (and guile as well)
+ o fix loadkeys in debug mode on tty1
+ o include cfdisk too
+- partitioning:
+ o add a GRUB_BIOS partition if needed (mga#18656)
+ o MBR limit really is 2TiB, not 4, so use GPT for disks > 2TiB
+
+Version 17.35.1 - 7 June 2016
+
+- fix selecting grub2 on !UEFI
+
+Version 17.35 - 7 June 2016
+
+- fix selecting grub2-efi on UEFI (mga#18646)
+
+Version 17.34.1 - 6 June 2016
+
+- fix displaying release notes with WebKit2
+
+Version 17.34 - 6 June 2016
+
+- bootloader:
+ o enable to (un)install os-prober (mga#16010, mga#18538)
+ o fix reading back last grub2 entry
+ o only overwrite GRUB_CMDLINE_LINUX_DEFAULT on first install (mga#18112)
+ o only overwrite install.sh when actually installing boot loader (mga#17455)
+ o set GRUB_DEFAULT + GRUB_SAVEDEFAULT (mga#9627, mga#16059)
+ o stop offering grub legacy & lilo on new installs (mga#18583)
+
+Version 17.33 - 27 May 2016
+
+- adjust to latest gdb
+- list all drivers needing a proprietary driver
+- only use vesa on x86
+
+Version 17.32 - 17 May 2016
+
+- remove KDE occurrence after revert of the previous commit
+
+Version 17.31 - 9 May 2016
+
+- replace last KDE occurence with Plasma
+- left background for sta1
+- list all drivers needing a proprietary driver
+- install the right IM packages on Plasma when using fcitx
+
+Version 17.30 - 7 May 2016
+
+- install nonfree firmware for amdgpu, i915, nouveau
+- CSD:
+ o make corners round like gtk+/Adwaita does
+ o nicer decoration
+
+Version 17.29 - 4 May 2016
+
+- install the right IM packages on Plasma
+- make CSD support available to forked processes (mga#18332)
+
+Version 17.28 - 26 April 2016
+
+- adapt to new brltty
+- drop support for MIPS
+- fix detecting running under Qemu
+- fix installing packages when having a numeric pad
+- recognize new kernel-4.6 drivers
+
+Version 17.27 - 23 April 2016
+
+- add 'qemu' flag for rpmsrate
+- exclude 2 Xorg libraries on ARM
+
+Version 17.26.1 - 8 April 2016
+
+- just ignore kernel options
+- drakx-in-chroot:
+ o enable to control strace behaviour
+
+Version 17.26 - 3 April 2016
+
+- add minimal CSD support (mga#17702)
+
+Version 17.25 - 1 April 2016
+
+- partitioning:
+ o fix detecting nvme devices as block devices
+ o fix displaying partitions when there's only one disk
+ (and the resulting crash: mga#18076)
+
+Version 17.24 - 23 March 2016
+
+- fix build on ia32
+- add 'virtualbox' & 'vmware' flags for rpmsrate
+- use systemd-detect-virt for detecting virtualization technology
+
+Version 17.23 - 22 March 2016
+
+- do not include twice webkit2gtk library
+- prevent usrmove files to remain
+- remove swrast (too big just to fix a gtk+ warning...)
+
+Version 17.21 - 21 March 2016
+
+- load evdev (thus fixing a crash)
+- load psmouse (it is now modular)
+- use WebKit2 instead of WebKit1 for displaying help content (mga#15031)
+
+Version 17.20 - 18 March 2016
+
+- prevent slow boot on first boot (mga#16684)
+- partitioning:
+ o fix partitions not initially displayed (mga#17564)
+
+Version 17.19 - 24 February 2016
+
+- detect nvme devices as block devices (mga#17743)
+- detect partitions on nvme devices (mga#17743)
+
+Version 17.18.1 - 10 February 2016
+
+- bootloader:
+ o add support for grub2-text too (mga#9431)
+- partitioning:
+ o check ESP has the right fs type (mga#16246)
+ o check that ESP mount point actually is an ESP
+
+Version 17.17 - 29 January 2016
+
+- fix hidden cursor (mga#17470)
+
+Version 17.16 - 21 January 2016
+
+- Add ARM support in perl-install
+- options:
+ o silent a warning bout BOOT_IMAGE option
+- partitioning:
+ o fix crash (mga#17484)
+
+Version 17.14 - 11 January 2016
+
+- do not warn about kernel options when parsing drakx options
+- include libinput udev helpers (mga#17470)
+
+Version 17.13 - 9 January 2016
+
+- regressions from 17.11:
+ o fix ignoring options from isolinux
+ o fix parsing stage1's automatic option (mga#17441)
+- silent a perl-5.22 warning
+
+Version 17.12 - 2 January 2016
+
+- bootloader:
+ o log found kernels (mga#16128)
+ o skip swap in the list of partitions (mga#15767)
+- partitioning:
+ o auto fill LV name from mntpnt (mga#5407)
+ o suggest "lv_foo" instead of just "foo" for LVname
+- summary:
+ o drop support for ISApnp sound cards
+- fix a message (mga#15414)
+- misc cleanups
+
+Version 17.11 - 1 January 2016
+
+- make report.bug.xz more reproducible
+- misc cleanups
+- drakx-in-chroot:
+ o use GetOpt::Long for options
+ (thus allowing eg "--flang fr" instead of just "--flang=fr")
+
+Version 17.10 - 24 December 2015
+
+- use mutter instead of matchbox (fix black screen)
+
+Version 17.9 - 24 December 2015
+
+- include 60-evdev.rules instead of no more existing 60-keyboard.rules
+- silent gtk+ warnings about swrast driver
+
+Version 17.8 - 22 December 2015
+
+- recognize new kernel-4.3 drivers
+
+Version 17.7.1 - 17 December 2015
+
+- include one more file for new X.org wrapper (mga#17348)
+
+Version 17.7 - 17 December 2015
+
+- adapt to new X.org wrapper (mga#17348)
+
+Version 17.6 - 12 December 2015
+
+- drakx-in-chroot:
+ o fix running with xserver-1.18
+
+Version 17.5 - 8 december 2015
+
+- more substitution for task-plasma5
+- use sddm instead of kdm
+
+Version 17.4 - 6 December 2015
+
+- use task-plasma5-minimal instead of task-kde4-minimal
+
+Version 17.3 - 4 December 2015
+
+- recognize new kernel-4.3 drivers
+
+Version 17.2 - 26 November 2015
+
+- left background for Mageia 6 dev1
+
+Version 17.1 - 27 August 2015
+
+- recognize new kernel-4.1 drivers
+
+Version 17.0 - 24 June 2015
+
+- adapt to pango 1.37.x
+- adapt to perl-5.22
+- switch from evdev+synaptics to libinput driver
+
+Version 16.105 - 15 June 2015
+
+- really fix urpmi media when installing from USB (mga#5690)
+
+Version 16.104 - 13 June 2015
+
+- diskdrake:
+ o prevent errors when telling kernel to reread partition table
+
+Version 16.103 - 4 June 2015
+
+- partitioning wizard:
+ o only use current disk when auto partitioning, wiping disk,
+ using free space (mga#16055)
+
+Version 16.102 - 29 May 2015
+
+- diskdrake:
+ o ignore special 'Packard_Bell' and 'Push_Button_Reset' partitions (mga#15999)
+ o run udevadm settle after actions that trigger device reload (mga#15999)
+
+Version 16.101 - 25 May 2015
+
+- do not die if network cannot be started for updates (mga#8819),
+ just log the faillure and offer to either retry or abort
+- do not offer to add a CD-ROM as supplement media (mga#13671)
+- fix urpmi media when installing from USB (mga#5690)
+- locale setting
+ o fix reading back IM config (mga#15761)
+- partitioning:
+ o set pt_type according to fs_type before flag cases (mga#16029)
+
+Version 16.100 - 20 May 2015
+
+- add online media at installation end (mga#8819)
+
+Version 16.99 - 20 May 2015
+
+- bootloader:
+ o do not detect grub2 on UEFI when there's no bootloader
+ o fix default grub2 kernel parameters (mga#15984)
+- partitioning:
+ o display cosmetics when reading back GPT partitions
+ o fix mnt point for FAT partitions on GTP (mga#15987)
+ o set the proper GUID for FAT partitions on GPT
+- don't try to install non existant scim-googlepinyin (mga#6681)
+
+Version 16.97 - 18 May 2015
+
+(just to be sure draklive-install fix for mga15257 doesn't break anything)
+
+Version 16.96 - 17 May 2015
+
+- partitioning:
+ o fix regression refusing FAT for ESP (mga#15962)
+
+Version 16.95 - 14 May 2015
+
+- better dialog title (mga#9648)
+- partitioning:
+ o fix a crash after "insufficient space" error (mga#15919)
+
+Version 16.93 - 9 May 2015
+
+- bootloader:
+ o do use vga value for grub2
+ o fix setting default grub2 entry
+
+Version 16.92 - 9 May 2015
+
+- bootloader:
+ o add a dedicate step for grub2 (mga#9627)
+ o always log update-grub2 output (mga#15857)
+ o backup grub2 files before configuring
+- log grub2 install.sh in report.bug like for grub (mga#15857)
+- networking:
+ o recognize r8723bs (mga#15874)
+- partitioning:
+ o do not set noauto for /boot/EFI (mga#15627)
+
+Version 16.91 - 3 May 2015
+
+- final left-background
+
+Version 16.90 - 28 April 2015
+
+- localedrake:
+ o write input methods to /etc/locale.conf (mga#15464)
+- run vgchange before updating the list of LVMs, not after, and even if not
+ in install (should help with mga#7578).
+
+Version 16.89 - 25 April 2015
+
+- Ignore special partitions on mmc (mga#15759)
+
+Version 16.87 - 21 April 2015
+
+- partitioning:
+ o improve the display box (mga#15728)
+
+Version 16.86 - 20 April 2015
+
+- bootloader:
+ o dont override 'splash' and/or 'quiet' when adding 'noiswmd' (mga#15666)
+- partitioning:
+ o use the windows partition with the most available space on current
+ disk, not the last one across all disks (mga#15589)
+ o suggest up to 20GB/20% of the windows partition (whichever is larger),
+ previously 6GB/10% (mga#15589)
+ o hide empty space < 2MB, we have such holes due to alignment (mga#15733)
+- speed up reading of flags from GPT partition table (mga#15621).
+
+Version 16.84 - 14 April 2015
+
+- bootloader config:
+ o do not pass useless parameters to grub2 under UEFI (mga#15692)
+ o fix kernel booting in blind mode (mga#15291)
+
+Version 16.83 - 13 April 2015
+
+- enable firmware raids with dmraid/kpartx like we do on
+ live medias and on fully installed systems
+
+Version 16.82 - 13 April 2015
+
+- partitioning:
+ o detect Lenovo recovery & 'SYSTEM_DRV' as such (mga#1371)
+ o do add a ESP if it was removed by "Clear All"
+ o ignore ESP for "use free space on MS"
+- bootloader config:
+ o default to GRUB_DISABLE_RECOVERY=falss for 'failsafe' entry (mga#15675)
+
+Version 16.81 - 12 April 2015
+
+- add kpartx for dmraid activation
+- fix upgrade when package's in several media (mga#15350)
+ (need URPM-5.06 too)
+- support loading patches from NTFS USB keys
+- partitioning:
+ o don't guess a drive letter for ESP partitions
+
+Version 16.80 - 9 April 2015
+
+- bootloader config:
+ o check there's still some place on /boot with grub2 too
+ o generate core.img for UEFI
+ o fix detecting grub2 on UEFI
+ o write /boot/grub2/install.sh like for grub instead of drakboot.conf
+- log grub2 config in report.bug like for grub/lilo
+- partitionning:
+ o don't guess a drive letter for recovery partitions (mga15636)
+
+Version 16.79 - 7 April 2015
+
+- bootloader config:
+ o keep vga= parameter when switching to grub2 (mga#9888)
+
+Version 16.78 - 7 April 2015
+
+- bootloader:
+ o fix installing grub2 on MBR (mga#15640)
+ (regression introduced in 16.76)
+
+Version 16.77 - 7 April 2015
+
+- bootloader:
+ o add 'noiswmd' to kernel command line to manage isw_ bios
+ fakeraids with dmraid for now (instead of mdadm) (mga#11289, mga#14330)
+ o allow btrfs for / without separate /boot with grub2 (mga#15374)
+- partitioning wizard:
+ o do not offer to select RAID as it result in a crash (mga#5800)
+
+Version 16.76 - 3 April 2015
+
+- bootloader config:
+ o log grub2-install failures (mga#15439)
+- partitionning:
+ o log fdisk -l output before/after partitionning
+ o really try to detect recovery partitions on GPT
+
+Version 16.75 - 30 March 2015
+
+- partitionning:
+ o better fix for fail to read too corrupted partition table
+ o fix getting ESP with "use free space":
+ make sure to not override /boot/EFI mount point with /media/win_X
+ o make sure to check for existing ESP on all disks
+ o relax checks for ESP
+ o try to detect recovery partitions on GPT
+
+Version 16.74 - 27 March 2015
+
+- GPT partitionning:
+ o fix retrieving ntfs partitions as ntfs-3g instead of ntfs
+ o really fix retrieving swap partition type
+
+Version 16.73 - 27 March 2015
+
+- GPT partitionning:
+ o fix creating RAID devices (mga#15400)
+ (regression from 16.33)
+ o fix "I cannot read the partition table of device XXX, it is too corrupted"
+ o fix retrieving LVM/RAID/swap partition type
+ o fix retrieving ntfs partitions as ntfs-3g instead of ntfs
+ o fix tagging lvm/raid as "linux filesystem"
+ o fix tagging ntfs-3g as "linux filesystem"
+ o fix tagging swap as "linux filesystem"
+- tell users to ignore Gtk3 warnings
+
+Version 16.72 - 26 March 2015
+
+- fix a crash in auto install (mga#15573)
+
+Version 16.71 - 25 March 2015
+
+- bump max_nb() to 131 to cover mdadm managed imsm and ddf1 bios
+ fakeraids (containers defaults to >= 127 and partitions <=126)
+- partitionning:
+ o fix retrieving ESP partition type on GPT (mga#15366)
+ o log which GPT partition we fail to add/del
+ o set proper GUID to ESP partitions with GPT layout
+- pre-install grub2-efi on UEFI
+
+Version 16.69 - 20 March 2015
+
+- efi partitioning fixes from tv
+- diskdrake & package install gtk fixes from Martin Whitaker
+
+Version 16.68 - 17 March 2015
+
+- fix mis-detecting some mobile broadband modems (mga#12492)
+- add 'deploops' option for debugging (mga#15350)
+- log mkinitrd faillures (mga#9201)
+
+Version 16.67 - 5 March 2015
+
+- auto_install:
+ o ignore firmwares within draklive
+ o log step errors
+- drakx-in-chroot:
+ o unbreak draklive
+
+Version 16.66 - 5 March 2015
+
+- diskdrake:
+ o add "nofail" option to "foreign" mountpoints to avoid unwanted recovery mode (#10179)
+
+Version 16.65 - 27 February 2015
+
+- Mageia 5 RC
+- include udev rule for Synaptics
+
+Version 16.64 - 27 February 2015
+
+- partitioning:
+ o add missing button icons (mga#15264)
+
+Version 16.63 - 27 February 2015
+
+- partitioning:
+ o fix too wide buttons (mga#12422, mga#13471, mga#14839, mga#15379)
+
+Version 16.62 - 19 February 2015
+
+- partitioning (mga#12422, mga#11988, mga#14839, mga#15272, mga#15264):
+ o use an horizontal scrolling bar when needed
+ o use a vertical scrolling bar when needed (mga#15272)
+ o workaround too wide togglebuttons with empty label with gtk+3 and/or Adwaita
+
+Version 16.61 - 18 February 2015
+
+- ensure we install radeon-firmware too if needed (mga#15203)
+
+Version 16.60 - 18 February 2015
+
+- ensure we install kernel-firmware-nonfree if needed (mga#15203)
+
+Version 16.59 - 18 February 2015
+
+- bug:
+ o display a nicer message when no removable medium is found (mga#14435)
+
+Version 16.57 - 11 February 2015
+
+- fix taking screenshots on UEFI 24bit bpp framebuffer (mga#13684)
+
+Version 16.55 - 9 February 2015
+
+- drakclock: Ensure that /etc/localtime is a symlink (mga#14888)
+- users: Make sure to restart accounts-daemon after adding users (mga#15113)
+- finish-install: Ensure i18n settings are loaded
+- Create a symlink instead a hard copy to localtime see issue #14888
+- i18n: Write the desired console font to /etc/vconsole.conf
+- i18n: Use the x-distro /etc/locale.conf file instead of /etc/sysconfig/i18n
+- drakedm: Don't run ancient dm init script (which no longer exists)
+- Update traslations
+
+Version 16.54 - 6 February 2015
+
+- fix left background size
+
+Version 16.53 - 6 February 2015
+
+- switch from oxygen-gtk to Adwaita theme
+ o remove oxygen-gtk
+ o add missing icons (mga#13673, mga#14355, mga#14840, mga#14844)
+ o add libpixbufloader-svg.so for Adwaita svg icons
+ o add gtk.css
+
+Version 16.52 - 5 February 2015
+
+- default to GPT on disks larger than 4TB, not LVM
+- fix GPT initialization on empty disk
+- fix failure to delete partitions after switching to GPT
+- fix stage2 loading graphical installer in efi mode
+
+Version 16.51 - 3 February 2015
+
+- Mageia 5 beta 3
+- recognize new kernel-3.19 drivers
+
+Version 16.50 - 9 January 2015
+
+- initial uefi support
+
+Version 16.49 - 31 December 2014
+
+- translation updates
+- refer to MageiaWelcome instead of to something we do not have (mga#10901)
+- drakx-in-chroot:
+ o pre-create /dev/null & co before mounting devtmpfs
+- recognize new kernel-3.18 drivers (mga#14799)
+
+Version 16.48 - 16 December 2014
+
+- Mageia 5 artwork integration (with beta2 mention on left-background)
+- do not load hyper-v modules (already done by udev in stage1)
+
+Version 16.47 - 5 December 2014
+
+- do not crash loading stage2 in Virtual PC (mga#14117)
+- bootloader config:
+ o do not crash if fstab contains a bind mount on a file (mga#14657)
+
+Version 16.45 - 26 October 2014
+
+- drakx-in-chroot:
+ o pre-create /dev/null & co again (for draklive)
+- fix selecting of uneeded locales (mga#3723)
+
+Version 16.44 - 23 October 2014
+
+- drakx-in-chroot:
+ o document --stage2-update in --help
+ o mount /dev -o ro
+ o try harder to umount everything when sg went havroc
+
+Version 16.43 - 20 October 2014
+
+- drakx-in-chroot:
+ o adapt to the fact that stage2 expects a /dev fully populated by udev
+- package installation:
+ o adapt to URPM-5
+ o rename "no_suggests" option as "no_recommends"
+
+Version 16.42 - 18 September 2014
+
+- only allow GRUB2 when booting on btrfs
+
+Version 16.41 - 31 August 2014
+
+- adapt to latest systemd
+- allow /boot on btrfs
+- recognize new kernel-3.17 drivers
+
+Version 16.40 - 22 August 2014
+
+- adwaita-gtk3-theme no longer provides a settings.ini file
+- log X.org server logs when it fails to start up (mga#13471, ...)
+- recognize hyper-v paravirtual network driver
+
+Version 16.39 - 17 August 2014
+
+- recognize new kernel-3.16 drivers
+
+Version 16.38 - 22 July 2014
+
+- Mageia 5 alpha 2 left background
+
+Version 16.37 - 3 July 2014
+
+- fix /etc/fstab writing (mga#13114, also reported by Joseph Wang)
+- partitioning:
+ o improve fs sorting in combo box (mga#13640)
+
+Version 16.36 - 1 July 2014
+
+- hide /boot/efi check for now (mga#13638)
+
+Version 16.35 - 29 June 2014
+
+- Mageia 5 alpha 1 left background
+- let udev handle floppies
+
+Version 16.33 - 18 June 2014
+
+- stop creating some /dev entries that are managed by udev
+
+Version 16.32 - 15 June 2014
+
+- include platform driver autoload udev rules
+- recognize new kernel-3.15 drivers
+
+Version 16.31.1 - 6 June 2014
+
+- include udev rule for VMmouse
+
+Version 16.31 - 6 June 2014
+
+- xorg config:
+ o rely on evdev/udev for input devices
+ o Wacom tablets should work better
+ (we now load the wacom driver again)
+ o Synaptics touchpads should now work during install (mga#11524)
+
+Version 16.30 - 4 June 2014
+
+- adapt to perl-5.20
+- add some POD documentation
+- do not unavailable kernel-xbox
+- drop (broken) support for Alpha, PPC, Sparc & IA64
+- locale setting
+ o stop configuring HAL
+ o update locales list
+
+Version 16.29 - 3 May 2014
+
+- gnome-icon-theme is now adwaita-icon-theme
+
+Version 16.28 - 28 April 2014
+
+- recognize new kernel-3.14 drivers
+
+Version 16.27 - 18 February 2014
+
+- fix crash when choosing a RTL language (mga#12793)
+- Ensure uid/gid extraction works when adding users via summary page
+ (fixes chown'ing user to root when adding existing user on upgrade mga#12375)
+
+Version 16.26.6 - 23 January 2014
+
+- fix hidden icon in individual package selection (mga#12397)
+
+Version 16.26.5 - 22 January 2014
+
+- release notes dialog:
+ o fix untranslated button
+
+Version 16.26.4 - 22 January 2014
+
+- debug image:
+ o add a warning about QWERTY keyboard
+- help dialogs:
+ o do warn on first screenshot (mga#11176)
+ o fix lost help screenshots (mga#11176)
+
+Version 16.26.3 - 21 January 2014
+
+- help dialogs:
+ o do not warn if a screenshot already has been taked (mga#11176)
+
+Version 16.26.2 - 20 January 2014
+
+- left background for final release of Mageia 4
+
+Version 16.26.1 - 20 January 2014
+
+- partitioning:
+ o increase back minimum partition width for Oxygen (mga#11977)
+
+Version 16.26 - 20 January 2014
+
+- fix detecting if basesystem is installed (mga#10722)
+ thus fixing "basesystem package not selected"
+- partitioning:
+ o fix sizing partition widgets
+ o fix not moving window (mga#11790, mga#11988, mga#11977)
+ o revert minimum partition width to its pre-gtk3 value
+ o show labels on partition buttons
+
+Version 16.25 - 19 January 2014
+
+- add Mageia 4 desktop images
+
+Version 16.24 - 18 January 2014
+
+- help dialogs:
+ o make screenshots work (mga#11176)
+ o fix untranslated button & title (mga#9828)
+
+Version 16.23 - 16 January 2014
+
+- partitioning:
+ o do not show labels on partition buttons (mga#11988)
+
+Version 16.22 - 15 January 2014
+
+- partitioning:
+ o fix "No GSettings schemas are installed on the system" error when
+ inspecting partitions (mga#12279)
+- services:
+ o use --no-block with chkconfig and systemctl enable to prevent systemd reload
+ and potential crash (especially during first/live boot)
+
+Version 16.21 - 13 January 2014
+
+- partitioning:
+ o do not propose check bad blocks for btrfs (Manuel Hiebel, mga#10116)
+ o increase minimum partition width for Oxygen (mga#11977)
+ (if not enough, we will disable labels on partitions buttons again)
+- revert back to matchbox instead of mutter as it doesn't fix
+ diskdrake issues (mga#11977)
+ (thus fixing missing window decorations (mga#12218))
+
+Version 16.20 - 6 January 2014
+
+- Mageia 4 artwork
+
+Version 16.19 - 4 January 2014
+
+- Mageia 4 RC left background
+
+Version 16.17 - 20 December 2013
+
+- media step:
+ o hint that nonfree is needed if a CPU needs a microcode
+- install:
+ o fix pausing installing while displaying release notes
+- drakx-in-chroot:
+ o advise to install xephyr if missing
+- use mutter instead of matchbox in order to try to workaround
+ diskdrake issues (mga#11790, mga#11988, ...)
+ as a side effect, stage2 shrinks by 3Mb...
+
+Version 16.14 - 10 December 2013
+
+- Mageia 4 beta 2 left background
+
+Version 16.13 - 10 December 2013
+
+- fix crash when selecting an input method (mga#11939)
+
+Version 16.10 - 6 December 2013
+
+- package group selection:
+ o make bottom buttons always available
+ (by puting the scrolling window only around the package group check boxes)
+
+Version 16.9 - 6 December 2013
+
+- fix retrieving network info from stage2 after dracut migration (mga#11504)
+
+Version 16.7 - 5 December 2013
+
+- partitioning:
+ o fix a crash when creating partitions (mga#11876)
+
+Version 16.6 - 4 December 2013
+
+- fix blue background behind left panel text (mga#11866)
+
+Version 16.5 - 3 December 2013
+
+- partitioning:
+ o detect eMMc block devices (Luc Menut, mga#11812)
+ o fix a crash in partitioning wizard (mga#11820)
+ o show labels on partition buttons again but ellipsized (mga#11858)
+
+Version 16.4 - 2 December 2013
+
+- fix partitioning wizard moving the main window to left (mga#11790)
+- fix titles not being blue anymore
+
+Version 16.2 - 29 November 2013
+
+- no more run urpmi.update when adding media
+ (uneeded with urpmi-7.27+)
+
+Version 16.1 - 28 November 2013
+
+- fix a warning: include dialog-warning-symbolic
+- fix left panel text being black instead of white (mga#11792)
+- fix calling "child1_shrink" via package "Gtk3::HPaned" (mga#11797)
+- fix using old toolbar API that is no more available (mga#11791)
+- wrap too big labels in summary dialog (mga#11793)
+
+Version 16.0 - 23 November 2013
+
+- switch from Gtk+-2 to Gtk+-3:
+ o Banners: most themes work OK but Oxygen-gtk3...
+ o diskdrake: most themes work OK but Oxygen-gtk3...
+- detect_devices:
+ fix ids to be numeric
+- drakx-in-chroot:
+ o add --depth in order to force 16bit colors mode
+
+Version 15.73.1 - 19 November 2013
+
+- debug image:
+ o include enough python in order to generate a stack trace from within stage2
+ o fix passing arguments from drakx-in-chroot
+- do not compile/include xhost+ anymore (unused for years)
+- log why updates were not applied
+
+Version 15.73 - 12 November 2013
+
+- polkit: fix wrappers to properly escape arguments when calling the binary
+
+Version 15.72.2 - 11 November 2013
+
+- properly escape $$UID
+- use $$UID instead of $$(id -u)
+
+Version 15.72.1 - 9 November 2013
+
+- fix typo in last Makefile change
+
+Version 15.72 - 9 November 2013
+
+- use /usr/libexec/drakrpm-addmedia directly in stage2 (colin, #11319)
+- debug image:
+ o add missing python modules for latest gdb
+ o fix building with latest gdb
+
+Version 15.71 - 8 November 2013
+
+- do not use automatically gdm for xfce
+- do not include anymore packdrake module
+
+Version 15.70 - 3 November 2013
+
+- Mageia 4 beta 1 left background
+
+Version 15.69 - 29 October 2013
+
+- adapt to a dracut based stage1
+
+Version 15.68.1 - 14 October 2013
+
+- adapt to latest mdadm
+
+Version 15.68 - 14 October 2013
+
+- drop /etc/termcap as it's no longer part of our build
+- make urpmi install check more reliable (polkit related path change mga#11125)
+- recognize new kernel-3.12 drivers
+
+Version 15.67 - 10 October 2013
+
+- log when user reject applying updates (mga#11319)
+- recognize new kernel-3.11 drivers
+
+Version 15.66 - 3 October 2013
+
+- include another network interface name udev rule (mga#10947)
+- diskdrake:
+ o enable to format already formated btrfs partitions (mga#11256)
+
+Version 15.65 - 28 September 2013
+
+- mageia 4 alpha 3 left background
+- fix detecting some soft RAID (mga#11139 and the like)
+
+Version 15.64 - 4 September 2013
+
+- rebuild
+
+Version 15.63 - 4 September 2013
+
+- revert multi selection for desktops
+
+Version 15.62 - 3 September 2013
+
+- Mageia 4 alpha 2 left background
+- updated translations for desktop install
+- add Independently install Desktop environments
+- install open-vm-tools on VMware hypervisor
+
+Version 15.61 - 8 August 2013
+
+- include network interface name udev rule (mga#10947)
+
+Version 15.60 - 4 August 2013
+
+- Mageia 4 alpha 1 left background
+
+Version 15.59 - 4 August 2013
+
+- add missing re.so for utf8_heavy.pl (mga#10893)
+- detect wifi cards managed by ssb driver (mga#9378)
+
+Version 15.58 - 19 July 2013
+
+- fix a lang pixmap (mga#10795)
+
+Version 15.57 - 16 July 2013
+
+- adapt to latest btrfs utils for resizing
+
+Version 15.56 - 16 July 2013
+
+- bootloader:
+ o fix displaying need to install acpi* packages when they're already installed
+ o read/save choosen default entry
+- detect wifi cards managed by bcma driver (mga#9378)
+- detect new kernel-3.10 drivers
+
+Version 15.54 - 17 May 2013
+
+- do not enable legacy sysvinit scripts that no longer exist (mga#10084)
+- do not enable to pick xguest (mga#9750)
+- fix offering to install shorewall & shorewall-ipv6 when already installed
+- media step:
+ o hint that nonfree is needed if a driver needs a nonfree firmware
+ o preselect nonfree if needed
+
+Version 15.52 - 15 May 2013
+
+- fix displaying release notes while installing (mga#10087)
+
+Version 15.51 - 13 May 2013
+
+- drop support for fetching release-notes.ARCH.html
+- enable Nonfree/Tainted repositories when adding update media if a
+ package having a matching name is installed (similar to #8379)
+- detect_devices: check for phy80211 sysfs directory as well to detect
+ wireless devices
+
+Version 15.49 - 2 May 2013
+
+- fix displaying ads (mga#9939)
+
+Version 15.48 - 1 May 2013
+
+- include mount options in auto_inst.pl
+- install 'basesystem-minimal' instead of 'basesystem' prior to add extra media
+ thus fixing "basesystem package not selected" (mga#9611)
+- make xdm installation automatic in auto_inst mode (mga#9875)
+
+Version 15.47 - 30 April 2013
+
+- include more partition fields in auto_inst.pl (mga#9784)
+- skip comments in /etc/crypttab (Colin, mga#9905)
+- services:
+ o list 'shorewall-ipv6' along 'shorewall'
+
+Version 15.45 - 27 april 2013
+
+- fix doble logging of 'filesystem' installation (mga#7758)
+- install shorewall-ipv6 along shorewall (mga#9401)
+- bootloader:
+ o try harder to get a label for other OSes (mga#9849,9681)
+- partitioning:
+ o only allow 'acl' option for extX & reiserfs (mga#9884)
+
+Version 15.44 - 23 april 2013
+
+- partitioning:
+ o fix a crash when reloading partition table (mga#9838)
+ o fix a crash when trying to create a encrypted LVM partition (mga#9837)
+
+Version 15.43 - 22 april 2013
+
+- prepare final release: left background
+
+Version 15.42 - 21 April 2013
+
+- partitioning (mga#5661):
+ o ensure LVMs on top of dmcrypt are activated after unlocking
+ o fix UI redraw issue after unlocking dmcrypt partition
+
+Version 15.41 - 21 April 2013
+
+- add support for new help
+- updated translations
+
+Version 15.40 - 19 April 2013
+
+- authentication:
+ o 'nss-pam-ldapd' obsoletes 'pam_ldap' (mga#9769)
+- partitioning (mga#5661):
+ o fix losing crypt key when detecting LVMs on top of dmcrypt
+ o fix losing crypt key when re-reading partition tables
+
+Version 15.39 - 15 April 2013
+
+- bump min size for spliting /home fs (Eugeni, mga#3189):
+ o from 8 to 12Gb if simple partitioning
+ o from 7 to 10Gb if /usr is split or for servers
+
+Version 15.38 - 14 April 2013
+
+- Mageia 3 RC banner
+
+Version 15.37 - 9 April 2013
+
+- library:
+ o fix detecting some USB devices due to not reporting their class (mga#9674)
+- partitioning:
+ o allow to choose btrfs in normal mode (mga#65)
+
+Version 15.36 - 6 April 2013
+
+- bind mount /run in chroot, thus fixing dracut runs (Dave Hodgins, mga#9213)
+- bootloader:
+ o fix other Mga OS names in menu (mga#8710)
+
+Version 15.35 - 5 April 2013
+
+- bootloader:
+ o assume grub2.cfg is UTF-8 encoded
+ o read back more conf from grub2
+ o set entries type when reading back grub2 conf, thus fixing
+ switching back to grub-legacy (mga#9563)
+- fix finding translated help (mga#9619)
+
+Version 15.34 - 4 April 2013
+
+- force loading NSS modules (mga#9326)
+- log ignored dmraid devices (might help mga#9467)
+- drakx-in-chroot:
+ o always copy /etc/resolv.conf again
+
+Version 15.33 - 4 April 2013
+
+- drakx-in-chroot:
+ o do not copy /etc/resolv.conf in chroot if not using either remote
+ display or remote repository (thus fixing goup lookups, mga#9326)
+
+Version 15.32 - 31 March 2013
+
+- fix detecting Xen hard disks (mga#9546)
+
+Version 15.31 - 25 March 2013
+
+- recognize more webcam & bluetooth devices (might help mga#5841)
+
+Version 15.30 - 25 March 2013
+
+- Mageia 3 new design
+
+Version 15.29 - 22 March 2013
+
+- Mageia 3 beta 4 background
+
+Version 15.28 - 21 March 2013
+
+- do not disable module autoloading (mga#9428)
+- bootloader-config:
+ o do not build initrd if no bootloader is detected and
+ --no-initd argument is supplied
+- authentication:
+ o install nss-pam-ldapd instead of nss_ldap (mga#9375)
+- partitioning:
+ o actually preserve UUID when formatting (mga#9428)
+
+Version 15.27 - 12 March 2013
+
+- bootloader:
+ o install grub2-efi instead of grub2 if using UEFI (mga#8886)
+- fix permissions of help displayer (mga#9340)
+- fix dialogs popup with drakx-in-chroot
+
+Version 15.26 - 5 March 2013
+
+- include display_installer_help
+- show all errors at once at end of installation
+
+Version 15.25 - 5 March 2013
+
+- fork displaying help, thus workarounding a webkit segfault (mga#9124)
+- prevent displaying twice release notes
+
+Version 15.24.1 - 2 March 2013
+
+- rebuild with updated list_modules
+
+Version 15.24 - 28 February 2013
+
+- bootloader:
+ o allow installing grub2 on a partition (mga#8742)
+ o try harder not to have duplicate stuff on grub2 cmd line
+- do not put entry for CD/DVD in /etc/fstab (mga#7657)
+
+Version 15.23 - 27 February 2013
+
+- bootloader:
+ o fix detecting grub2 if there's a remaining grub-legacy signature
+ o read more of grub2 config
+ o read & save timeout value (mga#8850)
+ o set default parameters in grub2 config (mga#9177)
+- do not attempt to use gurpmi.addmedia or gurpmi if in text mode
+
+Version 15.22 - 26 February 2013
+
+- Mageia 3 beta 3 left background
+
+Version 15.21 - 26 February 2013
+
+- summary:
+ o prevent installing grub2 somewhere else than MBR
+ o read & write /boot/grub2/drakboot.conf
+ o suggests MBR by default for grub2 too (Manuel Hiebel, #8851)
+- always bypass blkid cache (the cache only includes a subset of the data we need)
+
+Version 15.20 - 21 January 2013
+
+- use modprobe instead of insmod (mga#8676)
+
+Version 15.19 - 14 January 2013
+
+- Mageia 3 beta 2 left background
+
+Version 15.18 - 5 January 2013
+
+- include more utils for raid (mga#8484)
+
+Version 15.17 - 28 December 2012
+
+- do not bypass blkid cache
+- include kmod's modprobe
+- drakx-in-chroot:
+ o export blkid cache
+
+Version 15.16 - 28 December 2012
+
+- adapt to new help layout (mga#5634)
+
+Version 15.15 - 24 December 2012
+
+- drakx-in-chroot:
+ o add --strace option, enabling to pinpoint missing modules
+- include missing module for upcasing UTF-8 characters (mga#8475)
+- media step:
+ o prevent selecting an update medium without its parent medium
+
+Version 15.14 - 17 December 2012
+
+- ugtk2: use new exceptions management
+- fix installing grub2 from live session (blino)
+
+Version 15.13 - 15 December 2012
+
+- fix checking grub2 installation (mga#8390)
+
+Version 15.12 - 14 December 2012
+
+- "enhance" fake grub2 conf reading (mga#8366)
+- time steps in logs
+- media step:
+ o fix dialogs title
+ o show which media are disabled when offering to pick supplementary ones
+
+Version 15.11 - 13 December 2012
+
+- install grub2 if needed
+- media choice step:
+ o display tooltips describing media
+
+Version 15.10 - 11 December 2012
+
+- revert rosa crap that breaks generating initrd (mga#8357)
+
+Version 15.9 - 11 December 2012
+
+- fix network set up for adding network media if not up by stage1
+ (aka DVD/CD case, mga#8282)
+- partitioning:
+ o if a partition has been manually formated, don't offer to format
+ it again (mga#7822)
+
+Version 15.8 - 11 December 2012
+
+- fix installing basesystem prior to adding a supplementary network
+ medium
+
+Version 15.7 - 10 December 2012
+
+- media choice step:
+ o blacklist unwanted media instead of whitelisting wanted ones
+ (fix dual cd where media names are not the regular ones)
+ o no media is a critical error
+- updates step:
+ o add all media instead of only update ones (mga#7959)
+
+Version 15.6 - 10 December 2012
+
+- language choise:
+ o change title of of "Multiple languages" dialog box from "Please Choose A
+ Language To Use" to "Select Additional Languages" (mga#7648)
+- set font familly & size system wide, thus fixing font size in gurpmi
+ & release notes (mga#67)
+
+Version 15.5 - 10 December 2012
+
+- recognize new drivers:
+ o input: hid-sensor-hub
+ o PHY: at803x
+
+Version 15.4 - 9 December 2012
+
+- put grub-legacy before grub2
+
+Version 15.2 - 7 December 2012
+
+- add fake gru2 conf reading
+- skip media screen in auto install
+
+Version 15.1 - 7 December 2012
+
+- add basic support for grub2 (mga#416)
+ (based on rosa work but fixed and completed)
+
+Version 15.0 - 6 December 2012
+
+- enable to skip keyboard step with keyboard option
+- enable to enable other media
+ (such as 'nonfree', 'tainted' which are disabled by default)
+
+Version 14.52 - 4 December 2012
+
+- Mageia 3 beta 1 left background
+- fix missing command links (mga#8289)
+- fix initializing urpm object (mga#8160)
+- fix offering "selecting individual packages" when pressing "previous" after
+ selecting package groups
+
+Version 14.51 - 16 November 2012
+
+- retrieve package descriptions from XML meta-data instead of from huge hdlists
+ (fix not displaying packages description in network installs) (mga#549)
+- fix a crash when pressing "previous" after selecting package groups
+
+Version 14.50.1 - 15 November 2012
+
+- include Parse::EDID for monitor-parse-edid (mga#8076)
+
+Version 14.50 - 6 November 2012
+
+- prevent a horizontal scrollbar to appear in some dialogs (mga#7374)
+
+Version 14.49 - 3 November 2012
+
+- Mageia 3 alpha 3 banner
+- prefer real binaries over the lightweight perl wrappers
+- convert filesystem for usrmove during upgrades
+- show a 'please wait' dialog while processing usrmove
+
+Version 14.48 - 22 October 2012
+
+- fix detecting if udev is already running
+- include FIRMWARE packages from Cards+ in detected graphical drivers,
+ to install radeon-firmware during install (#6438, #7641)
+- properly generate stage2 with a usrmove-esque fs layout
+
+Version 14.47 - 12 October 2012
+
+- offer resizing NTFS again (broken by ntfsprogs -> ntfs-3g switch)
+
+Version 14.46.3 - 5 October 2012
+
+- load 'microcode' asynchronously, preventing big wait when not supported
+ (mga#7671)
+
+Version 14.46.2 - 3 October 2012
+
+- adapt to latest dash-static
+- fix comment in license text
+
+Version 14.46.1 - 2 October 2012
+
+- fix build with latest pango
+
+Version 14.46 - 27 September 2012
+
+- left background for Mageia 3 alpha 2
+
+Version 14.45 - 20 September 2012
+
+- load fuse module automatically when trying to mount NTFS-3G (mga#5685)
+
+Version 14.44.1 - 16 September 2012
+
+- add spacing between license paragraphs
+
+Version 14.44 - 14 September 2012
+
+- adapt to xserver 1.13
+- advertize new doc license & licenser (mga#7347)
+- install cpupower instead of cpufreq
+- package group selection:
+ o remove "select all" button (not as usefull as "unselect all" & it
+ takes too much place when translated)
+
+Version 14.43 - 4 September 2012
+
+- compress report with xz instead of gzip
+- fix crash when clicking previous in minimal install step (mga#7345)
+- include swaplabel (mga#7334)
+
+Version 14.42 - 4 September 2012
+
+- load 'aesni_intel' crypto module for newer Intel CPUs (mga#7333)
+- recognize new drivers:
+ o input: hid-aureal synaptics_usb
+ o wifi: qmi_wwan, mwifiex_usb
+
+Version 14.41 - 3 September 2012
+
+- include back Ia Ora files for matchbox (mga#6451)
+
+Version 14.40 - 3 September 2012
+
+- prevent going further if some transactions failed (mga#7016)
+- summary: fix displayed network type (mga#4959)
+
+Version 14.39 - 3 September 2012
+
+- rely on stage1 for mounting /dev
+
+Version 14.38 - 2 September 2012
+
+- Mageia 3 alpha 1 banner
+
+Version 14.37 - 1 September 2012
+
+- Fix prefix checking in foreign partition check (mkinitrd)
+- More logging on why initrd generation is skipped
+
+Version 14.36 - 30 August 2012
+
+- adapt to urpmi-7.5
+
+Version 14.35 - 30 August 2012
+
+- adapt to usbfs death
+
+Version 14.34 - 30 August 2012
+
+- adapt to perl-5.16.1
+- services:
+ o fix checking systemd presence after systemd merge of subpackages
+
+Version 14.32 - 28 July 2012
+
+- package group selection:
+ o add a scrollbar
+ (due to Oxygen theme eating more space than Ia Ora one)
+ o add "select all" & "unselect all" buttons
+- stop fixing the raid udev rule now that it has been fixed
+
+Version 14.31 - 24 July 2012
+
+- adapt to latest GDB
+- adapt to latest systemd/udevd
+- adapt to /usr move
+- nfs install: install nfs-utils instead of nfs-utils-clients
+ (#6570, merged back in nfs-utils)
+
+Version 14.30 - 23 June 2012
+
+- show all errors at once when setting media
+- fix settings 'suggests' properly according to 'no_suggests'
+ (aka default to suggests enabled)
+ regression intoduced in 14.23
+
+Version 14.29 - 17 June 2012
+
+- adapt to perl-URPM >= 4.2
+
+Version 14.28 - 11 June 2012
+
+- fix upgrade with rpm-4.10.0
+- really fix build with brltty-4.3
+
+Version 14.27 - 7 June 2012
+
+- debug mode:
+ o do not start udev twice
+ o just start the installer if one quits the shell
+ o spawn a shell like in regular mode
+- fix build with brltty-4.3
+
+Version 14.26 - 5 June 2012
+
+- fix detecting if Xorg started successfully
+
+Version 14.25 - 4 June 2012
+
+- fix fallbacking on curses install aka abort gtk install startup if X
+ failed to start
+- switch from Ia Ora to Oxygen Gtk theme
+- use proper design from original author
+
+Version 14.24 - 31 May 2012
+
+- adapt to latest xkb
+- fix build with perl-5.16.0
+
+Version 14.23.1 - 29 May 2012
+
+- include newly needed module
+
+Version 14.23 - 28 May 2012
+
+- do not create /dev/ entries created by udev
+- kill last remanents of kernel-2.4.x support
+- package group selection:
+ o remember minimal install values when clicking "previous"
+- packages installation:
+ o add support for 'justdb' option
+ o enable to go fast with 'tune-rpm'...
+- partitioning:
+ o first attempt at supporting XenBlk discs
+ o reduce blkid timeout to 30 seconds (mga#5979)
+- refactoring
+
+Version 14.22 - 15 May 2012
+
+- final banner
+- fix detecting if adding update media succeeded
+- authentication:
+ o don't update UsePAM option in sshd configuration
+
+Version 14.21 - 11 May 2012
+
+- export res_init function to perl lib
+
+Version 14.20.1 - 10 May 2012
+
+- drakx-in-chroot: unmount /dev in chroot
+
+Version 14.20 - 6 May 2012
+
+- bind mount /dev inside chroot rather than copy nodes (mga#5730)
+
+Version 14.19 - 3 May 2012
+
+- fix displaying urpmi fatal errors (mga#5725)
+
+Version 14.18 - 2 May 2012
+
+- add missing libfuse.so.2 for mount.ntfs-3g (#5685)
+
+Version 14.17 - 30 April 2012
+
+- fix noarch handling/search on 64bit as they're in 32 and 64 bit
+ media and in some cases it may return the not-installed rpm while the other is.
+- autoinstall:
+ o fix rebooting on autoinstall by using a "wider" regexp (otherwise udevd was
+ not found by fuzzy_pidofs) and gives some time to udevd process to disappear.
+ o don't try to unmount /dev as it's still used by other processes
+ o allow to set urpm curl options in order to be able to make curl quiet
+ when running an autoinstall in text mode. This can be set throught
+ the new option "curl_options" in the auto_inst file.
+ o use quiet mode by default when downloading VERSION and auto_inst file
+- partitioning:
+ o drop support for reiser4 (mga#5680)
+
+Version 14.16 - 29 April 2012
+
+- add btrfsck
+- partitioning:
+ o forbid having /boot as btrfs (mga#5627)
+
+Version 14.15 - 27 april 2012
+
+- partitioning:
+ o fix partitions not being shown after clicking on "Reload partition table"
+ (mga#3260)
+ o run udevadm in installer too
+ (might fix unnecessary reboot (mga#4439))
+
+Version 14.14 - 26 april 2012
+
+- Mageia 2 RC banner
+
+Version 14.13 - 25 April 2012
+
+- include needed symlinks for ndiswrapper (mdv#44416)
+
+Version 14.12 - 25 April 2012
+
+- update desktops images
+
+Version 14.11 - 25 April 2012
+
+- fix offering desktop choice (DVD has task-kde4-minimal instead of task-kde4)
+ (mga#5574)
+- partitioning:
+ o do not set fs_type to ext4 for raw LVM/RAID/LUKS
+ o detect LVM on top on Encrypted partitions (mga#5330)
+- services:
+ o systemd support (mga#3253, mga#3740, mga#4910, mga#5122)
+- partitioning wizard:
+ o fix removing several notebook pages
+ o reuse code from hd_gtk, fixes display of "Use free space" solution
+
+Version 14.10 - 23 April 2012
+
+- do not offer to upgrade mdv 201[1-9] (mga#5004)
+- do not try to update KDE3 to KDE4 anymore
+- individual package selection:
+ o fix a crash
+ o honor "no suggests" option (mga#3467)
+
+Version 14.9 - 23 April 2012
+
+- include missing perl modules (mga#5528)
+
+Version 14.8 - 20 April 2012
+
+- partitioning wizard:
+ o do not crash on selecting a RAID device
+ o fix displaying empty info about RAID devices
+ o fix listing RAID devices
+
+Version 14.7 - 19 April 2012
+
+- fix a crash when package state is empty (mga#5487)
+- fix not offering to upgrade RAID installs (mga#4902)
+ (udev was enabling RAIDs early but leaved them in inactive mode
+ due to not yet loaded personality modules)
+- when selecting where ro install bootloader, display mountpoint if
+ available, and size+fs_type if we have nothing (mga#5460)
+
+Version 14.6 - 18 April 2012
+
+- individual package selection:
+ o fix "invisible" lock icon (mga#5424)
+ o show again package descriptions (mga#549)
+- package installation:
+ o fix assuming "no" to continue on bad signatures once "do not ask
+ again" has been checked in
+ o offer to not ask again about missing packages
+ o unselect already suggested packages when performing a minimal
+ install if "no suggests" option was chosen (mga#5209)
+
+Version 14.5 - 12 April 2012
+
+- fix color for menu categories
+- add missing udev programs needed for persistant storage rules.
+
+Version 14.4 - 12 April 2012
+
+- fix quiet option for bootloader
+- install btrfs-progs if needed (mga#5274)
+- make sure ranges are always within limits in text mode (mga#646)
+- allow generation of host-only initrd during install
+- include persistant storage udev rules needed to see new uuids during install
+
+Version 14.3 - 7 April 2012
+
+- Mageia 2 beta 3 banner
+- diskdrake:
+ o fix partition numbering on GPT (mga#3091)
+
+Version 14.2 - 5 April 2012
+
+- add boot splash to initrd only once
+- log install settings (mga#3467 & mga#5209)
+- do not set security level to its own value on upgrade (mga#5147)
+- do not crash if msec isn't installed
+- do not offer to select the security level in summary if msec is not installed
+- text installer:
+ o include "screen" terminfo (mga#4894)
+
+Version 14.1 - 23 March 2012
+
+- better "bootloader" message (mga#484)
+- fix displaying "Mageia" in some messages
+
+Version 14.0 - 13 March 2012
+
+- disk install: handle bogus ISOs when looking for install image (mga#4919)
+- step column: hide so called "bootlader" step since we do _not_ actually
+ install bootloader at this stage but later in summary (mga#484)
+- make "Preparing bootloader" less intimidating (mga#484)
+
+Version 13.95 - 13 March 2012
+
+- recognize more HID drivers (mga#4905)
+
+Version 13.94 - 13 March 2012
+
+- actually use new installer help
+
+Version 13.93 - 12 March 2012
+
+- recognize c67x00, imx21-hcd, fhci, isp1362-hcd, oxu210hp-hcd & renesas-usbhs
+ USB host drivers (mga#4905)
+- use lxdm for LXDE
+
+Version 13.92 - 11 March 2012
+
+- explain why acpi, acpid & mageia-gfxboot-theme packages are selected
+- install more packages earlier (shorewall & mandi), preventing useless
+ installing steps later at summary stage
+- partitioning:
+ o fix error on removing LVs
+ o fix resizing LVs (mga#4666)
+
+Version 13.91.1 - 08 March 2012
+
+- add a wrapper for running GDB in installer a simpler way
+
+Version 13.91 - 08 March 2012
+
+- Mageia 2 beta 2 banner
+- summary:
+ o list mandi with iptables* & shorewall in services
+ o list dm, mdadm, messagebus, microcode_ctl, netconsole & partmon services in system
+ o list network, network-auth, network-up & resolvconf into new 'networking' category
+- debug build:
+ o don't run directly stage2
+ o include busybox
+ o include needed python files for GDB
+ o start udev since we fork a shell prior to running stage2
+
+Version 13.90 - 06 March 2012
+
+- fix crashing if we failed to initialize Curses
+- fix double segfault when text installer fails to init
+- fix stopping udev
+- set geometry for text installer
+
+Version 13.89 - 02 March 2012
+
+- fix RAID udev rule
+
+Version 13.88 - 02 March 2012
+
+- install mdadm for fake RAID too (mga#4750)
+
+Version 13.87 - 01 March 2012
+
+- include more udev rules for RAID (mga#4750)
+
+Version 13.86 - 01 March 2012
+
+- include libdmraid-events-isw.so for dmraid (mga#4750)
+- tty stty are needed for text mode installer (mga#2038)
+
+Version 13.85 - 26 February 2012
+
+- load 'xts' module for crypted fses (Dave Hodgins, mga#3749)
+
+Version 13.84 - 24 February 2012
+
+- recognize more HID drivers (mga#4129)
+
+Version 13.83 - 19 February 2012
+
+- log more stuff regarding packages installation (mga#4565)
+
+Version 13.82 - 14 February 2012
+
+- Mageia 2 beta 1 banner
+
+Version 13.81 - 13 February 2012
+
+- diskdrake:
+ o use better cipher for encrypted fses (mga#3092)
+
+Version 13.80 - 26 January 2012
+
+- kill old gtk+ warnings that confuse people
+- include back urpmi translations
+- do not display errors when loading a driver that is already loaded (mga#1146)
+
+Version 13.78 - 24 January 2012
+
+- log packages selected b/c of HW, fs, install method, ...
+- summary:
+ o list shorewall with iptables* in services
+- diskdrake:
+ o better default name for new VG (vg-mga, vg-mga1, ...
+ instead of vg-0, vg-1, ...)
+
+Version 13.77 - 23 January 2012
+
+- diskdrake:
+ o allow using nilfs2 during install
+ o enable to set label on btrfs & nilfs fses as well as on swap
+ o preserve UUID when reformatting a nilfs fs
+- do not install shorewall & mandi if firefwall is not configured
+
+Version 13.76 - 20 January 2012
+
+- add support for XZ modules
+- faster & safer waiting for end of USB modules
+- include gtk20 translations (caps lock & the like)
+- diskdrake:
+ o enable to set LV names when not in expert mode
+ o report back error from lvm2
+ o suggest better LV names based on the mount point rather than numbers
+
+Version 13.75.1 - 19 January 2012
+
+- fix mounting /dev/pts & /dev/shm
+- include DM/MD udev rules so that install on LVM works again
+- drakx-in-chroot:
+ o add support for --gdb
+
+Version 13.75 - 29 December 2011
+
+- stop udev at end of install
+- Mageia 2 Alpha 3 banner
+
+Version 13.74.1 - 29 December 2011
+
+- rebuild with updated list_modules.pm for kernel-3.2.0-0.rc7.2.mga2
+
+Version 13.74 - 24 December 2011
+
+- use udev
+- call udevadm in installer too
+- do not hardcode systemd default through kernel command line, it
+ should be easily overridable by just picking the proper init package
+- include xfs_freeze (needed for setup grub on XFS, mga#1536)
+- interactive::curses: default to 80x25 (fixes serial)
+
+Version 13.73 - 11 December 2011
+
+- Mageia 2 Alpha 2 banner
+
+Version 13.69 - 14 November 2011
+
+- fix testing network (missing Net::Ping)
+
+Version 13.68 - 10 November 2011
+
+- Mageia 2 Alpha 1 banner
+
+Version 13.67 - 07 November 2011
+
+- Add initial systemd support
+
+Version 13.66 - 20 October 2011
+
+- fix missing "Mageia" instances
+- include png loader from gdk_pixbuf2.0_0-loaders-png15
+
+Version 13.65 - 19 September 2011
+
+- only favor packages with mga extension, we don't have packages with mdv or
+ mnb in release tag
+- always favor packages with 'mga' extension when upgrading anything else
+ than Mageia
+- install perl-Hal-Cdroms for urpmi when needed
+- default to systemd (through "init=/bin/systemd")
+- offer not to ask again about bad signatures
+
+Version 13.64 - 08 September 2011
+
+- install more packages earlier (acpi{,d}, dhcp client, firewall & bootloader
+ stuff), preventing useless installing steps later at summary stage & also
+ fixing "program not found: grub-gfxmenu" error message while installing
+- only retrieve release notes once during installation
+- util-linux-ng was renamed util-linux (fix installation error)
+
+Version 13.63 - 07 September 2011
+
+- better microcode_ctl management
+- fix cpufreq detection corrupting other types
+- install cpufreq on more cases
+
+Version 13.62 - 22 August 2011
+
+- always align partitions to start at megabyte boundaries to avoid
+ performance issues with drives with 4k physical sectors (mga#1215)
+- add support to detect if CPU microcode is upgradable in order to
+ install microcode_ctl
+
+Version 13.61.1 - 05 August 2011
+
+- do not crash if there's no mirror cache to erase
+- "Multi languages" => "Multiple languages" (mga#1011)
+
+Version 13.61 - 01 August 2011
+
+- clear the mirror cache before upgrading (#1557)
+- fix bootloader entries names
+- fix build with perl-5.14.x
+- detect (at least some (eg: Compaq USB numpad) (#1099)
+- detect machines needing cpufreq
+- spaces are not allowed between options in /etc/fstab (#2271)
+
+Version 13.58 - 27 May 2011
+
+- fix default level being 'standard' when /etc/security/msec/security.conf
+ doesn't containt BASE_LEVEL
+ (broken since msec config file format was gratuitously changed)
+
+Version 13.57 - 25 May 2011
+
+- update translations
+- update design for final release
+
+Version 13.56 - 24 May 2011
+
+- forbid selecting kernel-server if not having PAE since PAE support is
+ mandatory for kernel-server (#1414)
+
+Version 13.54 - 19 May 2011
+
+- advertize LibreOffice instead of OpenOffice.org (mga#1323)
+- fix build with brltty-4.2-1.mga1
+- fix reading security level with new msec (mga#332)
+
+Version 13.53 - 16 May 2011
+
+- left background for RC
+
+Version 13.52 - 14 May 2011
+
+- disable encryption option for /boot
+- match partitions when one of them as device_alias to the device of the other one
+
+Version 13.50 - 06 May 2011
+
+- use proper locales-XX packages for Albanian (#1036)
+
+Version 13.49 - 25 May 2011
+- add nokmsboot boot option also if the bootloader is installed after setting
+ up a conflicting display driver (e.g. draklive-install)
+- embed more of unicore, fixes \d on strings collected from Gtk2 (#39)
+- add sdhci-pci to card-reader list
+- add xhci-hcd (usb3 support)
+
+Version 13.47
+- update modules list needed for md raid456 and dm-raid 4/5/6 target
+
+Version 13.46
+
+- new design for beta1
+- update temporary piece of design
+
+Version 13.45
+
+- fix incorrect meta-task directory, it should be an svn:externals
+- switch from scim to ibus
+
+Version 13.44
+
+- clean installer design for Mageia
+
+Version 13.43
+
+- handle new drivers:
+ o ethernet: cx82310_eth
+ o 10g ethernet: bna, pch_gbe, stmmac
+ o modem: ft1000
+ o usb storage: keucr, uas
+ o wifi: ath6kl, bcm_wimax, brcm80211, carl9170, r8712u
+
+Version 13.42
+
+- alpha1 banner
+
+Version 13.41
+
+- correct licence management and remove Google one
+
+Version 13.40
+
+- new version for Mageia
+- fix building with new libX11
+- fix building with xserver-1.9
+- include missing perl modules (#60720)
+
+Version 13.39 - 5 August 2010
+
+- adapt to gtk and gdk change in 2.22
+- adapt to perl-5.12
+
+Version 13.38 - 2 July 2010
+
+- create symlink for /etc/pki to have it usable in stage2
+
+Version 13.37 - 2 July 2010
+
+- accept https URL in install::http
+- include ca-bundle.crt
+
+Version 13.36 - 30 June 2010
+
+- final banner
+
+Version 13.35 - 22 June 2010
+
+- user management: focus on first entry in dialog, root password if
+ superuser is asked, user real name otherwise (#54910)
+- auto_install: when distrib media contains selected_names list, apply
+ it only to the concerned media, and not to previously added media
+
+Version 13.33 - 4 June 2010
+
+- lookup major:minor of devices outside $::prefix
+- display lock icon for not enabled dmcrypt too
+- disable dmcrypt before deleting partition, evin if inside lvm/raid
+- don't crash when starting stage2 with an RTL locale
+- fix loading of btrfs module
+
+Version 13.32 - 2 June 2010
+
+- copy all devices to target
+
+Version 13.31 - 28 May 2010
+
+- update banner to RC2
+- don't lose mountpoint if suggested partition was swap (#59510)
+
+Version 13.30 - 26 May 2010
+
+- final banner
+
+Version 13.29 - 24 June 2010
+
+- fix detection of /var partition
+- force raid metadata to be 0.90 if /boot is on raid 1
+- fix raid 0 to be handled as raid
+
+Version 13.27 - 18 May 2010
+
+- always set resume= when a swap is available, regardless of its size (#34681)
+- update banner
+
+Version 13.26 - 17 May 2010
+
+- enable acl by default on ext2/3/4 fs
+- enable user_xattr on home for ext2 too
+- allow setting acl option in diskdrake
+- default to defaultFS in LVM, not ext2
+- don't ask to reboot after resize if not needed
+- do not ask to reboot after resizing LUKS if not mounted
+- workaround mapper/* being symlinks in dmraid support
+
+Version 13.24 - 9 May 2010
+
+- include btrfs and crc32c modules in install (#59068)
+- include /etc/netconfig (needed by mount.nfs)
+- diskdrake:
+ o fix the crypto mountpoint checks for the create case
+ o fix resize of active encrypted volumes
+
+Version 13.22 - 29 April 2010
+
+- diskdrake:
+ o correctly set mountpoint on included partition, not encrypted one
+ o refuse to have /boot encrypted
+ o enable gtk-button-images to have the lock displayed during install
+
+Version 13.21 - 27 April 2010
+
+- diskdrake:
+ o allow resizing empty FAT (#58770)
+ o offer encryption in a more visible way when creating a partition
+ o remove cryptoloop from diskdrake interface and transparently use dm-crypt
+ o support having dm-crypt partition with non default FS
+ o do not display dm-crypt partitions in separate tab, display included
+ partition directly in-place
+ o do not warn about data loss when changing type of unformatted partition
+ o display lock icon on encrypted partitions
+ o fix loading of dmcrypt info now that /dev/mapper/* are symlinks
+ o fix creating encrypted LVM
+- install plymouth if / is encrypted, to ask for password
+- beta2 banner
+
+Version 13.19 - 14 April 2010
+
+- detect "Rack Mount" Chassis as server
+- diskdrake:
+ o use device label even if it was not changed (#47456)
+ o allow creating and resizing btrfs
+
+Version 13.18 - 2 April 2010
+
+- compute dependencies on full list of packages from rpmsrate levels instead
+ of doing it individually. This avoids getting kdm in GNOME install.
+
+Version 13.17 - 31 March 2010
+
+- services management:
+ o translate more service descriptions (#46640)
+- detect "Rack Mount" Chassis as server
+- use device label even if it was not changed (#47456)
+
+Version 13.16 - 19 March 2010
+
+- bootloader:
+ o do not apply bootloader settings before giving user the option to change
+ them (#57471)
+
+Version 13.15 - 17 March 2010
+
+- summary:
+ o enhanced services status message (#58194)
+
+Version 13.14 - 3 March 2010
+
+- devices:
+ o handle creation of mmcblk devices (useful on Efika MX)
+- alpha3
+
+Version 13.13 - 28 February 2010
+
+- handle new SCSI driver: mpt2sas (#57833)
+- detect_devices:
+ o fix merging PCI devices info from sysfs which resulted in
+ ill-informed devices matching (#57711)
+
+Version 13.11 - 10 February 2010
+
+- add support for asturian (#56990)
+- partitioning wizard:
+ o display lvm/dmraid name in combo box
+ o allow reusing existing partitions in lvm
+ o fix a crash on empty disk
+ o fix using empty dmraid
+- drakboot:
+ o fix crypted password detection
+ o fix invocation of grub-md5-crypt from within installer (#57461)
+
+Version 13.10 - 4 February 2010
+
+- handle new drivers:
+ o ATA: pata_atp867x, pata_piccolo, pata_rdc
+ o DVB: dvb-usb-ec168, dvb-usb-friio, earth-pt1
+ o ISDN: avmfritz, mISDNinfineon, netjet, speedfax, w6692
+ o network: vmxnet3
+ o radio: radio-miropcm20, radio-usb-si470x
+ o RAID: 3w-sas, hpsa, pmcraid
+ o SCSI: be2iscsi, bfa, pm8001, vmw_pvscsi
+ o TV: cx25821, saa7164
+ o wifi: r8187se, r8192_pci, r8192u_usb, rt2800pci, vt6655_stage, vt6656_stage
+- bootloader configuration:
+ o add support for crypted grub passwords
+ o always display security settings
+ o allow timeout to be '0'
+ o default to always crypt grub passwords
+ o ensure /boot/grub/menu.lst permissions are 0600 since it can
+ contains a password
+- partitioning wizard:
+ o offer to install on dmraid (instead of crashing if no other disk)
+ o offer to install on existing lvm
+
+Version 13.8 - 3 February 2010
+
+- fixed logo
+
+Version 13.7 - 2 February 2010
+
+- alpha2 logo
+
+Version 13.6 - 1 February 2010
+
+- do not ask for bootloader location (still available in summary)
+- try to get better initial estimation of install time
+- fix bootloader entry name for rc kernels
+- remove mnb from bootloader entry name like we do for mdv
+- support ddf1 dmraid
+
+Version 13.4 - 7 January 2010
+
+- alpha1 logo
+- detect_devices:
+ o fix detecting pcmcia serial devices
+
+Version 13.3 - 21 December 2009
+
+- mount points: reset unknown partitions types to default
+ fs (ext4) instead of hardcoded ext3
+- diskdrake: show Ext4 instead of Ext3 in the gtk filesystems button box
+- include /usr/share/X11/xkb/rules/base.lst (do we need xorg.* ?)
+
+Version 13.2 - 14 December 2009
+
+- fix creating devices
+ (really "fix handling hdX/sdX devices (#53107)")
+
+Version 13.1 - 10 December 2009
+
+- fix crash introduced by 'do not stay chdired in /mnt/var/cache/urpmi'
+- locale setting
+ o drop support for configuring KDE3
+ o fix configuring ibus (#56130, #56311)
+ o install 'ibus-qt4' if configuring ibus under KDE4 (#56311)
+- partitioning wizard:
+ o fix setting volume label instead of MBR's one for FAT fses (#52853)
+
+Version 13.0 - 1 December 2009
+
+- do not offer to upgrade/install in restore mode
+- fix detecting hidden partitions as recovery
+- allow to convert ext2/3 to ext4 but do not enable flags
+- fix using stdin and stdout in builtin dd command
+- devices detection:
+ o fix reading USB details (#55690)
+ o fix SCSI driver module name
+- partitioning wizard:
+ o unmount swap too when unmounting all partitions
+ o do not suggest Windows mountpoint for mounted partitions
+ (breaks install if the Win partition is the installer media)
+ o suggest non-removable disks first
+- do not stay chdired in /mnt/var/cache/urpmi when download fails
+ (workaround urpmi bug)
+- bootloader:
+ o do not add removable drives as "Windows" entry in bootloader
+- fix adding additional media with type media_cfg (for auto_install)
+
+Version 12.77 - 30 October 2009
+
+- fallback on most generic kernel if the suitable one is not available
+ (only kernel-desktop586-latest is available on Dual ISO for i586)
+
+Version 12.76 - 30 October 2009
+
+- test existence of /usr/share/bootsplash/scripts/make-boot-splash
+ file instead of install status of bootsplash package to enable vga
+ in bootloader
+ (package check is not working during upgrade on x86_64)
+
+Version 12.75 - 30 October 2009
+
+- bootloader suggestion fixes (to fix removal of vga= option when
+ updating with the installer):
+ o make sure we use long name when adding second kernel with same
+ extension than preferred one
+ o do not add again kernels that are already in bootloader config file
+ o add vga= option for kernels that are not the preferred one as well
+ o remove previous linux-nonfb entries (like done for failsafe),
+ not to add them twice or more
+
+Version 12.74.1 - 29 October 2009
+
+- disable X11 support for dpms
+
+Version 12.74 - 28 October 2009
+
+- partitioning wizard (Windows resize):
+ o fix partition size computing (fixing pixel/sectors ratio)
+ o improve default resizing suggestion:
+ * try to keep at least 1GB free for Windows
+ * try to use from 6GB to 10% free space for Linux
+ o use same windows partition size suggestion for gtk and text installs
+ o really ensure keeping free space for Linux partition
+ o really ensure keeping free space for Windows partition
+
+Version 12.73 - 28 October 2009
+
+- final banner for 2010
+
+Version 12.72 - 27 October 2009
+
+- fix ftp URL parsing when using user + pass (#49898)
+
+Version 12.71 - 23 October 2009
+
+- minimal install: install packages with higher rpmsrate level only
+ (level 5, and not level 4 + 5) when suggests are disabled
+ (it was only done for truly minimal install before)
+- cpufreq: load e_powersaver for VIA C7 (#41377)
+
+Version 12.70 - 22 October 2009
+
+- curses backend: do not crash when resuming interface
+- minimal install: install packages with higher rpmsrate level only
+ (level 5, and not level 4 + 5)
+
+Version 12.69 - 21 October 2009
+
+- user management:
+ o enable to install/deinstall xguest
+
+Version 12.68 - 19 October 2009
+
+- fix raid initialisation during install (#54706)
+- fix raid detection during install (#54706)
+- allow to set preferred packages list in auto_install
+ (comma-separated list in $o->{preferred_packages})
+- partitioning wizard:
+ o use mandriva logo on blue background for mandriva partition
+ o fix option selection when using keyboard
+
+Version 12.67 - 18 October 2009
+
+- partitioning wizard:
+ o use a different color for newly created partition
+ o add legend for the colors
+ o display mount point if known
+ o display ext2 like ext3/4
+ o allow setting new windows size with keyboard (#54691)
+ o use available space
+
+Version 12.66 - 15 October 2009
+
+- mount windows partitions under /media instead of /mnt (#53392)
+- partitioning wizard:
+ o initialize correctly labels for windows resizing
+ o fix labels for windows resizing when getting back to the screen
+ o offer to resize last big enough windows partition instead
+ of the first one, until user can chose
+
+Version 12.65 - 14 October 2009
+
+- do not call obsolete Xconfig::default::config_keyboard function (#54541)
+- improve button layout while installing
+- partitioning wizard:
+ o allow using existing partition on all disks (#54478)
+ o reduce drawings height
+ o fix windows resize width
+- make sure suggests are disabled in truly minimal install
+- do not attempt to configure autologin if CAT_X is not selected
+- use UTF-8 for zh_TW (#53976)
+- enable using newly created raid devices (#54295)
+
+Version 12.64 - 12 October 2009
+
+- partitioning wizard:
+ o put back "previous" button on actions (#54475)
+ o fix typo in message
+ o fix testing interactive::gtk in standalone mode
+ o fix displaying help
+
+Version 12.63 - 9 October 2009
+
+- bootloader configuration:
+ o fix displaying arrows
+
+Version 12.62 - 9 October 2009
+
+- autologin/desktop configuration (shared code):
+ o fix guessing dm name from lookupdm
+ o abort configuration if dm install fails
+
+Version 12.61 - 8 October 2009
+
+- partitioning_wizard:
+ o do not fail when a windows partition is corrupted
+ o add separator between solutions
+ o give more space between header and solutions
+ o prevent cursor to go under needed size because of rounding
+ o chose windows resizing when clicking on the resize handle (not perfect)
+ o improve resizing captions layout
+- autologin/desktop configuration (shared code):
+ o fix /etc/X11/lookupdm usage during install (for default dm selection)
+ o use gdm for xfce4 and LXDE
+
+Version 12.60.1 - 7 October 2009
+
+- use FileHandle before XML::Parser, else XML::Parser breaks if
+ File::Sync is used...
+- include File::Sync in install
+
+Version 12.60 - 7 October 2009
+
+- RC2 banner
+
+Version 12.59 - 07 October 2009
+
+- do not set mountpoints for rescue partitions (#53504)
+- switch to ext4 by default
+
+Version 12.58 - 05 October 2009
+
+- better describe what usernames we allow (#44783)
+- rewrite partitioning wizard to look better in gtk (not perfect yet)
+
+Version 12.54 - 23 September 2009
+
+- autologin/desktop configuration (shared code):
+ o when detecting default desktop, use first session
+ (instead of using hacks with dm config files)
+ o guess display manager from /etc/sysconfig/desktop,
+ or default session, or /etc/X11/lookupdm
+ o read autologin settings from /etc/sysconfig/autologin as fallback
+ o read kdm config file only if kdm is to be used
+ o always ensure dm is installed before configuring autologin/desktop
+ o test display manager instead of desktop when configuring autologin
+ o always write /etc/sysconfig/desktop
+ o write DISPLAYMANAGER in /etc/sysconfig/desktop too
+ o only write dm conf files if they exist before
+- autologin/desktop configuration (installer specific):
+ o allow to specify display manager in $o->{dm}
+ o use shared code to read autologin settings (and thus get default dm)
+
+Version 12.53 - 22 September 2009
+
+- include usb.ids
+- don't consider lvm named md* as raid (#53767)
+- allow resizing ext4
+
+Version 12.52 - 15 September 2009
+
+- RC1 logo
+- allow to set preferred kernel extension in $o->{kernel_extension}
+
+Version 12.49 - 8 September 2009
+
+- mygtk2:
+ o created 'WeaknessCheckEntry' widget
+- adduserdrake:
+ o added tooltip text to weakness icon
+ o now use 'WeaknessCheckEntry' widget
+
+Version 12.48 - 7 September 2009
+
+- mygtk2:
+ o HScale widget: added digits and ref_value options
+ o HScale widget: fix for value option
+- adduserdrake:
+ o use icons to display password weakness
+- added security-{low,medium,strong}.png pixmaps used for
+ password weakness display
+- authentication:
+ o reduced password weakness check level
+- allow minimal install without suggests (#45665)
+- install the right kernel-XXX-devel-latest flavor instead of
+ hardcoding 'kernel-desktop-devel-latest'
+- fix existing raid detection during install (#53159)
+- enable to see release notes while installing packages (#34576)
+
+Version 12.47 - 1 September 2009
+
+- use https to grab mirrorlist from api.mandriva.com
+- fix stage2 image files for perl 5.10.1 (#53266)
+
+Version 12.46 - 28 August 2009
+
+- handle new drivers:
+ o DVB: dvb-usb-ce6230
+ o sound: snd-indigodjx, snd-indigoiox, snd-lx6464es
+ o wireless: ar9170usb, mwl8k, r8192s_usb, rt2800usb, rt3070sta
+- adduserdrake
+ o added weakness check for root password
+- drakboot
+ o fix crash bug #52997
+- detect_devices:
+ o fix VirtIO devices support
+
+Version 12.45 - 18 August 2009
+
+- added the ability to add up/down buttons in add_modify_remove list
+ of interactive
+- drakboot :
+ o user is now able to re-order bootloader entries
+- 2010.1 logo
+- adduserdrake
+ o now use password weakness display
+- added password weakness display feature in interactive
+- handle new drivers:
+ o sound: snd_ctxfi
+- set virtio/xen block modules in a section actually offered
+
+Version 12.44 - 13 August 2009
+
+- fix parsing dmidecode output (broken since we use dmidecode-2.10,
+ aka since November 24 2008)
+- prevent urpmi messages from garbaging text installer (#50776)
+- locales
+ o add "English (South Africa)" (#51057)
+ o fix sorting South Africa languages (#51055)
+ o fix displayed names of some South Africa languages (#51055)
+
+Version 12.43 - 10 August 2009
+
+- do not write /etc/fstab in local_install mode
+- fix two crashes on handling devices
+
+Version 12.42 - 7 Aug 2009
+
+- use gtk instead of X to focus window and revert workaround
+
+Version 12.41 - 7 Aug 2009
+
+- do not crash when trying to create a partition on a device with
+ no cylinder_size
+- workaround gtk crashes by running in sync mode
+
+Version 12.39 - 12 Jun 2009
+
+- use Hal list of recovery partitions (#51532)
+- use blkid instead of vol_id which we no longer ship
+- properly handle hidden variables
+
+Version 12.36 - 29 May 2009
+
+- ide-disk module is now named ide-gd_mod
+- add new 'touchpad' TYPE to rpmsrate
+- add support for ElanTech touchpads (found on EEEPCs)
+- don't ignore FB-DIMM memory
+
+Version 12.35 - 24 April 2009
+
+- remove unused parameter in installPackages
+ (fix passing interactive setting)
+
+Version 12.34 - 24 April 2009
+
+- do not set urpmi in automatic mode for gtk installs
+ (was set correctly for plain interactive installs only)
+
+Version 12.33 - 23 April 2009
+
+- fix not offering to upgrade 32 bit installations
+ (regression introduced in 12.22 on 2009-03-31)
+- handle virtio block devices
+
+Version 12.32 - 23 April 2009
+
+- fix cdrom path in urpmi.cfg for dual arch ISOs
+- advanced partitioning step:
+ o fix displaying help at install time
+
+Version 12.31 - 22 April 2009
+
+- fix final banner
+- handle partition starting after 1To
+- package installation:
+ o use --force like older installer
+- set mouse driver as 'vmmouse' for vmware (#49654)
+- update XFCE preview
+
+Version 12.30 - 21 April 2009
+
+- final banner
+- add a basic testsuite (ensuring it compiles) in order to prevent
+ future crashes like #50009
+- do not offer to stop the install when kde3 is installed since kde3
+ to kde4 upgrade is now done
+- fix checking for kde3 (which is now in /opt)
+- diskdrake:
+ o display a progress bar while formatting an ext4 partition
+ o do not run udevadm in install mode
+ o render ext4 partition as red like ext3 ones
+
+Version 12.29 - 21 April 2009
+
+- do not log perl warnings about missing/not-yet-installed locales
+ while installing and while probing EDID
+- updated translations
+
+Version 12.28.1 - 16 April 2009
+
+- diskdrake:
+ o fix crash
+- windows boot partition is the active one (#49483)
+
+Version 12.28 - 15 April 2009
+
+- include mount.ntfs-3g in install
+- display an error when mount fails during View action
+- do not crash when encountering bad signatures in automatic install
+
+Version 12.27 - 14 April 2009
+
+- handle firmware loading in stage2 too
+
+Version 12.26.2 - 08 April 2009
+
+- media management:
+ o be more compatible with older http code for error management
+ o fix crashing when using urpmi early to download stuff for network installs
+
+Version 12.26.1 - 08 April 2009
+
+- media management:
+ o handle supplementary NFS & CDROM media with arched directory (aka 'i586/')
+
+Version 12.26 - 08 April 2009
+
+- include vmmouse driver (#49654)
+- media management:
+ o just use curl instead of using our own http stack to retrieve
+ files from network (thus fixing #48887)
+ o fix mount point for NFS & disk media for both main & suppl media
+ o tell urpmi to read synthesis before adding supplementary network
+ media in order to be able to install the 'basesystem' package
+- log where we segfaulted
+
+Version 12.25.1 - 07 April 2009
+
+- fix mount point for CD-ROM media (#49613)
+
+Version 12.25 - 06 April 2009
+
+- media management:
+ o fix path of NFS media after installation
+ o use urpmi in order to add supplementary media
+- put distro version after release because release contains "Mandriva Linux"
+
+Version 12.24.1 - 05 April 2009
+
+- ensure login is lowercase when transliterating from real name
+ (#49573)
+
+Version 12.24 - 03 April 2009
+
+- handle new drivers:
+ o gigabit: be2net, slicoss
+ o wireless: agnx, arusb_lnx
+ o dvb: dvb-usb-dtv5100
+- include draksnapshot translations (for restore option)
+- theming:
+ o include all Ia Ora themes
+ o drop metacity images
+
+Version 12.23 - 02 April 2009
+
+- RC2 banner
+- fix crypto module names when arch is not i586 (#46814)
+
+Version 12.22 - 31 March 2009
+
+- don't list installed distros with other archs as upgrading between
+ archs is not supported
+- display the version of the distro in the install/upgrade screen (#44602)
+- log (g|)urpmi.addmedia and (g|)urpmi output into
+ /root/drakx/updates.log (#47107)
+- make button name match text when inserting a CD ("cancel" rather
+ than "previous")
+- rotate /root/drakx/install1.log too
+- tell urpmi to stop transactions when clicking on "cancel" (needs
+ urpmi >= 6.25)
+
+Version 12.21 - 30 March 2009
+
+- fix writing urpmi.cfg as cdrom:// for NFS (#49316)
+- in order to guess the login name, just transliterate the real name into
+ ascii rather than truncate it on first non ascii character (#47322)
+
+Version 12.20 - 30 March 2009
+
+- media management:
+ o always trust stage1 (fix ISO on NFS installation as well as NFS
+ installation from cooker/ instead of eg cooker/i586 (#48874)
+ o fix not ejecting DVD at end of installation (#48779)
+- diskdrake:
+ o always display label in partition info
+ o display label of partitions in the graphical view when no mountpoint
+ is set
+ o update list of filesystems not handling bad blocks checking
+
+Version 12.19 - 26 March 2009
+
+- adjust partition size suggestion
+ o increase / size to 12GB (instead of 8)
+ o create separate /home starting at 13GB drives (instead of 7)
+- fix support for disk installation
+- include & use urpmi translations
+- when setting update media, make gurpmi.addmedia auto close instead
+ of waiting for user pressing "close" button on "media added with
+ success" dialogs
+
+Version 12.18 - 24 March 2009
+
+- log packages' scripts output (perl-URPM/urpmi aren't fixed regarding
+ script fd leak but older installer was leaking one fd per
+ transaction too)
+
+Version 12.17.3 - 23 March 2009
+
+- fix empty tree at "Individual package selection" step (#48672)
+
+Version 12.17.2 - 23 March 2009
+
+- fix buid due to to broken Estonian translation
+- unbreak installer due to new X.org server using alternatives
+- diskdrake:
+ o allow LVM in non expert mode
+ o allow Encrypted partition inside LVM
+
+Version 12.16 - 18 March 2009
+
+- fix doble clicking on 'accept' on license screen
+
+Version 12.15 - 17 March 2009
+
+- fix support for iso-on-disk installation (#48661)
+ (regression introduced when installer switched to urpmi)
+- drakx-in-chroot:
+ o enable to emulate iso-on-disk installation
+
+Version 12.14 - 11 March 2009
+
+- fix displaying help (same webkit regression that affected mcc (#47840))
+- include virtio modules (#45518)
+
+Version 12.13 - 10 March 2009
+
+- fix selecting packages on cdroms
+- don't crash when creating a partition in LVM with the partition type
+ buttons (#38078)
+
+Version 12.12 - 9 March 2009
+
+- use new urpmi API in order to fix detecting whether installing
+ packages succedded or not
+
+Version 12.11 - 9 March 2009
+
+- fix accessing CD-ROM based media on x86_64
+
+Version 12.10 - 9 March 2009
+
+- fix CD-ROM based media path for post-installation usage (for 32bit)
+
+Version 12.9 - 9 March 2009
+
+- adjust media path for 32 bit DVD/CD installations
+- package installation:
+ o ask for retry
+ o log bogus signatures
+ o log failed transactions summary
+
+Version 12.8 - 6 March 2009
+
+- RC1 banner
+
+Version 12.7 - 6 March 2009
+
+- fix setting urpmi media for CDROM installation whose tree differ
+ from other types of installation
+
+Version 12.6 - 6 March 2009
+
+- make sure to popup errors
+
+Version 12.5 - 5 March 2009
+
+- handle new drivers
+ o dvb: dm1105, dvb-usb-af9015, dvb-usb-cinergyT2, firedtv
+ o ethernet: smsc9420
+ o gigabit: atl1c
+ o pata: cs5536, it8172, it821x
+ o ISDN: hfcpci, hfcmulti, hfcsusb, solos-pci
+ o USB controllers: hwa-hc, whci-hcd
+ o wireless: ath9k, i2400m-usb
+
+Version 12.4 - 5 March 2009
+
+- check package signatures like urpmi does (new feature)
+- log extra debugging messages if passing the 'debug_urpmi' option
+
+Version 12.3 - 4 March 2009
+
+- honor 'selected_names' for auto_install
+- make sure we don't try to reslect already selected packages
+
+Version 12.2 - 4 March 2009
+
+- only warn if a transaction failed (no more a fata error for auto
+ installs)
+- prevent urpmi from leaking a log file descriptor per transaction
+- really set urpmi in automatic mode for non-interactive installs
+ (and not vice-versa)
+- use package summary translations once 'mdv-rpm-summary' is installed
+
+Version 12.1 - 3 March 2009
+
+- set urpmi in automatic mode for non-interactive installs
+- media management & package installation:
+ o do not try to install again already installed packages
+ o fix progress bar
+
+Version 12.0 - 3 March 2009
+
+- media management & package installation:
+ o drop support for parsing the "media_info/hdlists" file
+ o do not download and use hdlists anymore ; only use smaller synthesis files
+ o make install uses urpmi code to set up media & install packages
+ * FTP/HTTP/cdroms tested OK
+ * temporary issues:
+ + /etc/urpmi.cfg may look strange (eg: after CD-ROM installation)
+ + isos-on-disk installations are broken
+ + media deselection is not offered
+ + package browsing doesn't work
+ + progress bar has issues
+ + signature checking are not performed
+
+Version 11.89 - 17 February 2009
+
+- enable having /boot as ext4
+- don't set extents option for ext4
+
+Version 11.88.1 - 16 February 2009
+
+- correctly handle new msec-based settings during installation (#47822)
+- fix crash
+
+Version 11.88 - 16 February 2009
+
+- don't crash on invalid partition table
+- fix paths for installer (#47871)
+- limit partition type list to 2 colmuns instead of 4
+- don't offer to format LVM
+
+Version 11.86 - 12 February 2009
+
+- upload a fully updated version
+
+Version 11.85 - 12 February 2009
+
+- fix a crash when boot device is not removable
+
+Version 11.84 - 12 February 2009
+
+- handle newer module-init-tools which can put relative path in modules.dep
+- when installing to a removable device, put boot sector there, else
+ put it into first non removable drive (#47106)
+- fix preserving UUID when formatting ext* and swap, and handle more FS (#39913)
+- load cbc module for encrypted loop
+
+Version 11.83 - 6 February 2009
+
+- update banner for Beta 1
+- set scim-thai as default IM for Thai
+
+Version 11.82 - 5 February 2009
+
+- include /usr/share/mime/mime.cache in stage2
+ (gdk-pixbuf does not guess anymore image format from file extension,
+ which makes it check MIME cache now)
+
+Version 11.81 - 3 February 2009
+
+- allow browsing partitions content to easily select the ones to destroy
+- do not warn about "servers which open ports on outside by default"
+ (the list of servers is not maintained, and the policy for those servers has changed)
+- use a file selector in text mode too
+- include mke2fs.conf from e2fsprogs-1.41.3-3mdb
+- media management:
+ o better layout for DVD/CD copy & media selection
+
+Version 11.80.1 - 21 January 2008
+
+- include perl-Pango
+
+Version 11.80 - 21 January 2008
+
+- use "ComboBoxEntry" gtk2 widget instead of "Combo" (which is deprecated),
+ this also workarounds gtk2 bug with "hidden" Entry + "Combo"
+
+Version 11.79 - 16 January 2008
+
+- disable resizing ext4 since resize2fs is known to be broken regarding extents
+
+Version 11.78 - 15 January 2008
+
+- alpha2 logo
+
+Version 11.77 - 15 January 2008
+
+- do not install kernel-server on x86_64 when there's more than 4Gb of
+ RAM (#44709) ; use better heuristics
+- propose ext4 filesystem during install now that it is stable
+- include tools to edit partition labels
+
+Version 11.76 - 18 December 2008
+
+- partitioning:
+ o use sysfs in order to discover major/minor for SCSI like devices
+ since they're dynamic with kernel-2.6.28+
+- adapt to cooker: librpm4.6 uses libnss3 which needs its modules
+
+Version 11.75 - 17 December 2008
+
+- force to use static input devices again
+ (since the default in xorg has changed)
+- handle new driver:
+ o network: sxg, w35und
+- partitioning:
+ o kernel-2.6.28+ supports more than 15 partitions on SATA & SCSI devices
+
+Version 11.74 - 16 December 2008
+
+- fix build with latest X.org
+
+Version 11.72 - 9 December 2008
+
+- do allow to upgrade Mandrakelinux (regression introduced in 10.14)
+- handle new driver:
+ o network: et131x, smsc95xx
+- fix detecting SMP (was broken we relied on install kernel being non-smp) (#44825)
+- fix reading compssUsers.pl if rpmsrate is forced (for example with drakx-in-chroot)
+
+Version 11.69 - 11 October 2008
+
+- really fix setting lilo when needed (#39878)
+- handle new driver:
+ o ide: tx4939ide
+- drakx-in-chroot:
+ o do not start an X server if using --text
+- text mode installer:
+ o display a separator before step name
+ o properly handle big text in list such as security level
+ descriptions (#43561)
+- continue installing if an advertising image is corrupted (#37674)
+- warn that "preparing bootloader" can take some time (eg: under vbox) (#43036)
+
+Version 11.68 - 3 October 2008
+
+- final logo
+
+Version 11.67 - 2 October 2008
+
+- when upgrading a kde3 box, force installation of task-kde4
+- adjust some help IDs
+- log activation of light desktop mode
+- gtk and interactive install:
+ o find default desktop choice according to compssUsers.pl
+ (useful for netbook/nettop systems)
+ o preselect proper default desktop choice
+
+Version 11.66.1 - 2 October 2008
+
+- fix typo in rpmsrate level setting
+
+Version 11.66 - 2 October 2008
+
+- detect_devices: allow detection of low resources systems (extracted
+ from compssUsers.pl) and netbooks/nettops
+- use a minimum rpmsrate level of 5 when netbook/nettop/low_resources
+ systems are detected
+- set LIGHT rpmsrate flag for netbook/nettop/low_resources systems
+
+Version 11.65 - 2 October 2008
+
+- add help button to desktop selection & minimal installation steps
+- keep soft links in HTML help directory
+- handle anchors in HTML help IDs
+
+Version 11.64 - 1 October 2008
+
+- when upgrading a kde3 box and task-kde3 is not on the CDs, propose to reboot
+ and upgrade through Mandriva update applet
+- add help button for media selection step
+- ensure proper centering of popped windows
+- fix/adjust some help pages (#42986)
+- fix dithering regression (introduced on 2008-09-29)
+- install apmd if /proc/apm exists
+ (rpmsrate does not list apmd anymore, and apm is a kernel builtin)
+- use HTML help for RPM group selection
+- when mounting cdrom fails, retry a few times since mount will now fail
+ instead of waiting for the drive to recognise the CD (cf #43230)
+
+Version 11.58 - 29 September 2008
+
+- ask_deselect_media__copy_on_disk:
+ o do not select all media by default (eg: debug media)
+ (nb: this dialog occurs when user chooses "Go back to media and packages
+ selection" on pkg install error)
+ o replace scrolled window around everything
+ with a scrolled window around the list of checkboxes
+- adapt to fonts-ttf-gurmukhi => fonts-ttf-lohit switch
+- add spacing between radio buttons for readability (#44332)
+- better positionning of sidepanel's selection bar
+- render background of sidepanel with dithering (looks better on 16bit
+ displays)
+
+Version 11.56 - 26 September 2008
+
+- dmraid devices: use isw_xxxxp1 instead of isw_xxxx1 (see #42542, #44182)
+- disable contextual menu on release notes
+
+Version 11.55 - 26 September 2008
+
+- never add usb-storage to scsi_hostadapter
+ (never needed, and when wrongly added, it slows the boot)
+- ensure DPMS screensaver is not triggered during install
+ (it interacts badly with matchbox/compositing) (#44021)
+- generate /root/drakx/package_list.pl at end of install
+ (since we don't propose "Save packages selection" at end of install)
+- generate /var/lib/rpm/installed-through-deps.list
+ (to initialize urpmi orphans)
+- drakx-in-chroot: do not require running kernel to be installed,
+ generate empty modules.dep and modules.alias files instead
+ (useful when running drakx-in-chroot from a chroot)
+
+Version 11.53.2 - 25 September 2008
+
+- actually use better rendering for background gradient
+
+Version 11.53 - 25 September 2008
+
+- better rendering for background gradient
+
+Version 11.52.2 - 24 September 2008
+
+- clean_rpmdb_shared_regions before and after calling gurpmi.addmedia/gurpmi2
+ in chroot
+
+Version 11.52 - 23 September 2008
+
+- auto-configure floppies (in /etc/modprobe.preload.d/floppy)
+- allow setting compssListLevel from command line
+- install cpufreq (defaulting to ondemand governor) instead of
+ powernowd (#43769)
+
+Version 11.50.3 - 22 September 2008
+
+- fix/workaround crash when setting banner background
+ (Can't call method "get_width" on an undefined value)
+
+Version 11.50.2 - 22 September 2008
+
+- RC2 logo
+
+Version 11.50.1 - 22 September 2008
+
+- fix 1024x768 background
+
+Version 11.50 - 22 September 2008
+
+- handle new driver:
+ o ethernet: enic, qlge
+- i18n:
+ o add support for ibus
+- new sidepanel style
+- restore support for right alignement for simple widgets
+ (regression introduced in 11.46 - 17 September 2008)
+
+Version 11.48 - 18 September 2008
+
+- add a special license for google programs (only for "Powerpack" product)
+- install "cryptsetup" when needed
+
+Version 11.47.1 - 17 September 2008
+
+- bug fix: add mandatory new modules for dm-crypt
+
+Version 11.47 - 17 September 2008
+
+- handle new driver:
+ o ethernet: jme
+- partitioning step
+ o handle partitions encrypted with cryptsetup
+ o fix file system type drop down list showing most types as "..." in
+ "Change partition type" dialog in expert mode due to ellipsizing
+- list btusb instead of hci_usb in bus/bluetooth (renamed in 2.6.27)
+
+Version 11.46 - 17 September 2008
+
+- libdrakX:
+ o better layout for right aligned widgets
+- license: put focus back on Refuse button by default
+
+Version 11.45 - 16 September 2008
+
+- allow to prefer kernel-server on x86_64 too
+- enable relative links in HTML help
+- enhanced 'desktop' & 'package selection' steps
+- switch from perl-Gtk2-Html2 to perl-Gtk2-WebKit in order to display release
+ notes & help
+- use HTML help for package selection, services & summary step
+
+Version 11.43 - 16 September 2008
+
+- enhanced 'desktop' & 'package selection' steps
+- fix berber language image's transparency
+- fix displaying current security level in GUI
+ (regression introduced on 2008-08-29)
+- increase default window height b/c of package selection step
+- refresh partitioning step
+- size most labels (workaround infamous 6 years old gnome bug #101968)
+ (eg: in advanced language selection)
+- update icons for packages/services selection
+
+Version 11.42 - 12 September 2008
+
+- increase default window height
+- stop claim selecting LSB group will install 2.4.x kernel (#39220)
+- desktop step
+ o move progress bar on its own line
+ o add a separator between buttons & progress bar
+ o pack together time label & value
+
+Version 11.41 - 11 September 2008
+
+- bump titles' size by 1 (eg: from 12 to 13 for default font settings)
+- do not render "Advanced" & "Help" buttons as blue
+- fix default spacing between GUI elements
+- fix parsing error messages ar markups
+- "Help" dialogs:
+ o add a separator before "Close" button
+ o fix displaying "Help" Button for HTML help (#42986)
+ o put "Close" button of help at right end
+- small improvements in many steps (desktop, ...)
+- services (thanks to spuk):
+ o list ip6tables in "Internet" category
+ o list nfs-common and nfs-server in "File sharing" category
+ o list rpcbind in "System" category
+
+Version 11.40 - 10 September 2008
+
+- libdrakX:
+ o fix position of cancel button in popups
+ o make advanced popup display the same title as their parents
+ o make all popup titles be upcase
+- drakboot
+ o fix nolapic/lapic logic due to altered kernel settings
+- fix input devices detection in rpmsrate (broken for 3 years, #43721)
+
+Version 11.39 - 9 September 2008
+
+- do not use UUID for software raid, only for hdx and sdx
+- keep current UUID when formatting ext2/ext3 (was already done for swap),
+ so that fstab on other distros continue to work (#39913)
+ (requires e2fsprogs-1.41.1-2mnb2)
+- drop the ability to set mem=xxx in bootloader configuration
+
+Version 11.38 - 8 September 2008
+
+- do not size radio button that have a label thus preventing uneeded horizontal
+ scrollbars to appear
+- partitioning step
+ o fix file system type drop down list showing most types as "..." in expert
+ mode due to ellipsizing (#43611)
+ o fix too large partition bar (#43073)
+ o improved GUI
+
+Version 11.34 - 2 September 2008
+
+- fix buggy blocking wait_message occuring in diskdrake
+ (using a more powerful strategy to ensure such blocking wait_message won't
+ bother us anymore) (#43527)
+- fix sizing some label (workarounding infamous 6 years old gnome bug #101968)
+- increase help popup size when browsing services or packages
+
+Version 11.33.1 - 2 September 2008
+
+- make "ask_warn" dialogs be centered
+
+Version 11.33 - 2 September 2008
+
+- further improve layout of media selection step
+- "media selection" step: fix position of button (#29367)
+- refresh "Summary" step
+
+Version 11.32 - 2 September 2008
+
+- fix buggy blocking wait_message occuring in summary (#42062)
+- fix layout of media selection step (#29367)
+
+Version 11.31.2 - 2 September 2008
+
+- adjust sizing in order to prevent horizontal scrollbar to appear
+- do not size right aligned radio buttons
+
+Version 11.31 - 2 September 2008
+
+- fix "INTERNAL ERROR: ask_from_normalize" at end of installation
+
+Version 11.30 - 1 September 2008
+
+- keep in $o->{previous_release} the info about upgraded /etc/release,
+ and pass "reason" and version to urpmi.addmedia
+- 2009.0 RC 1 logo
+- hack /tmp/.X11-unix to allow accessing X in chroot
+- if network access, configure urpmi with --mirrorlist --distrib,
+ and install updates. This replaces the previous "Install Updates" step.
+- fix alignment of check buttons
+- fix size of right aligned labels
+- fix sizing radio buttons' labels (infamous 6 years old gnome bug #101968)
+- further improvements to the "bootloader", "desktop" & "partitioning" steps
+- prevent big combo boxes to cause an horizontall scrollbar to appear by
+ using the "ellipsize" property
+- remove "Generate auto install floppy" & "Save packages selection"
+ options at end of installation
+- update package managment icons
+- use pcmcia-socket-startup from /lib/udev for latest pcmciautils
+
+Version 11.29 - 29 August 2008
+
+- do not try starting graphical installer on early i810 (which is is
+ not supported), thus prevent waiting several minutes needlessly
+- refresh "Individual package selection" step
+- refresh "Security" step
+
+Version 11.28 - 28 August 2008
+
+- fix buggy blocking wait_message occuring in summary (#42062)
+- diskdrake: use udevadm settle instead of udevsettle
+- refresh "Package Group Selection" step
+
+Version 11.27 - 28 August 2008
+
+- configure vga=785 (640x480) when vga=788 (800x600) fails during install
+ (useful on 800x480 netbooks)
+- text mode:
+ o fix displaying release notes (#43263)
+
+Version 11.26.1 - 28 August 2008
+
+- fix asterisk in titles
+
+Version 11.26 - 27 August 2008
+
+- better layout in 640x480 (#43231)
+- fix "probe floppies only once" (#43216)
+- misc GUI improvements
+ o misc changes
+ o properly size some labels (infamous 6 years old gnome bug #101968)
+ o refresh "user management" step
+ o render some titles as blue
+ o set some wait messages' titles
+
+Version 11.25 - 25 August 2008
+
+- left sidepanel:
+ o align category titles like step ones
+
+Version 11.24 - 25 August 2008
+
+- handle blowfish password encryption and use it by default (#42426)
+- allow to install bootloader on md0 (#42999)
+ (regression introduced on 2004-08-05)
+- minor GUI tweaks
+
+Version 11.23 - 22 August 2008
+
+- pop wait_messages and ensure same window is used for next wait_messages
+ (to ensure the background is not greyed,ungreyed,greyed,...)
+- improved license step
+- install lilo when needed (#39878)
+- render some message titles as blue
+
+Version 11.21 - 21 August 2008
+
+- ensure we don't default on the first keyboard layout when upgrading french
+ box in english lang (#41103)
+- do not set $HOME while installing packages (#18088)
+- install proper qtX package for gcin
+- partitioning step
+ o ensure we initialize only once but at least one, thus fixing crash
+ when embedded or in installer (#43011)
+
+Version 11.20 - 20 August 2008
+
+- do not uselessly install kernel-server on x86_64 if more than 3.8Gb
+ are availlable
+- diskdrake
+ o fix sizing partitions bar (#24410)
+
+Version 11.19 - 20 August 2008
+
+- usbkbd is dead, using usbhid instead
+- allow passing suppl=0 to disable "additional installation media" question
+- drakx-in-chroot:
+ o fix using remote repositories
+- set title for advanced dialogs
+- small GUI improvements
+
+Version 11.18 - 19 August 2008
+
+- center sub dialogs
+- prevent flickering of big windows by:
+ o ignoring bogus size-allocate events
+ o properly computing window position
+- stop reducing help & release notes dialogs' size
+
+Version 11.17 - 19 August 2008
+
+- drakx-in-chroot:
+ o enable to choose resolution of Xvfb
+ o enable to use a package repository different from installer one
+- use new style popup button for 'help' & 'release notes' buttons
+
+Version 11.15 - 19 August 2008
+
+- fix crash with advanced widgets
+- fix crashing on some buttons
+- fix bogus popup of 'desktop choice' dialog
+- authentication: enable network-auth meta-service if auth is not local
+
+Version 11.13 - 18 August 2008
+
+- move hardware packages detection code from installer to drakxtools
+
+Version 11.12 - 18 August 2008
+
+- align titles to the left
+- display a separator below titles
+- justify big texts
+- popup advanced settings in dialogs
+- refresh:
+ o language step
+ o license step
+
+Version 11.11 - 18 August 2008
+
+- 2009.0 beta 2 logo
+- l10n:
+ o fix selecting locales-XX for locales that specify scripting (#42663)
+ o update list of locales
+ o update list of KDE languages for KDE4
+
+Version 11.9.1 - 13 August 2008
+
+- fix left panel in 1024x768
+
+Version 11.9 - 13 August 2008
+
+- new title style
+- partition wizard:
+ o refreshed GUI
+
+Version 11.8.1 - 13 August 2008
+
+- really add deskop images
+
+Version 11.8 - 12 August 2008
+
+- default to UTF-8 for chinese simplified (#42137)
+- new desktop choice screen
+
+Version 11.7 - 11 August 2008
+
+- handle new drivers:
+ o ethernet: r6040
+ o gigabit: atl1e, bnx2x, sfc
+ o PATA: pata_ninja32, pata_ns87415
+ o SCSI: mvsas
+ o USB host controller: isp1760
+ o WAN: lapbether
+ o wireless: rndis_wlan, rtl8180
+- add product type to URL when fetching mirror list
+
+Version 11.3 - 4 August 2008
+
+- fix spacing around buttons
+
+Version 11.2 - 31 July 2008
+
+- include extmod Xorg module (for SHAPE extension)
+
+Version 11.1 - 31 July 2008
+
+- do not require matchbox gconf schema (not provided by drakx-installer-matchbox)
+
+Version 11.0 - 30 July 2008
+
+- first steps toward new installer style
+
+Version 10.48 - 28 July 2008
+
+- 2009.0 beta 1 logo
+- drakx-in-chroot: prefer Xephyr over Xnest since Xnest lacks many
+ extensions needed by matchbox-window-manager
+
+Version 10.47 - 10 July 2008
+
+- load disk/scsi before disk/ide since libata is now the default
+ (to prevent modules::load_category from loading ide-generic too early)
+- fix reading and setting kdmrc (by resolving alternative in chroot)
+
+Version 10.46 - 10 July 2008
+
+- authentication:
+ o add back fix to force the password to be utf8 (#23273)
+ o fix reading md5/shadow options in /etc/pam.d/system-auth
+
+Version 10.45 - 9 July 2008
+
+- update autologin file path for kdm4
+- default to KDE4 (instead of KDE) if kdm config exists when reading
+ autologin configuration
+- change default authentication to local (instead of ldap)
+
+Version 10.44 - 8 July 2008
+
+- 2009.0 alpha 2 logo
+
+Version 10.43 - 4 July 2008
+
+- detect KDE4 when configuring autologin
+
+Version 10.42 - 26 June 2008
+
+- fix reading rpm macros from /etc/macros.d/ (esp. %_filetriggers_dir)
+
+Version 10.41 - 26 June 2008
+
+- 2009.0 alpha 1 logo
+
+Version 10.40 - 25 June 2008
+
+- add support for dm-raid4-5 (tmb)
+- add back desktop choice window (by checking task-kde4 instead of task-kde)
+
+Version 10.38 - 20 June 2008
+
+- force back 75dpi to get back previous font sizes
+- adapt to cooker file changes
+- do not let authentication module (used for ask_user_and_root) mess window size
+
+Version 10.36 - 12 June 2008
+
+- fix authentication configuration
+
+Version 10.35 - 12 June 2008
+
+- adapt to xserver/SecurityPolicy being in /usr
+
+Version 10.34 - 12 June 2008
+
+- partitioning wizard:
+ o do not propose to resize "hidden" fat partitions
+ o do not say "the Windows partition" when there can be more than one
+- use UUID for resume= kernel parameter
+- handle new drivers:
+ o pata: pata_sch
+- handle renamed drivers:
+ o ide-cd is now named ide-cd_mod
+ o generic is now named ide-pci-generic
+- kernel-laptop is no more
+- authentication:
+ o add Kerberos Support
+ o add disconnected mode for Ldap, Kerberos, Windows auth
+ o add more options in Ldap configuration: Fetch DN, TLS
+ o remove Active Directory SFU
+ o change Winbind authentification to enable domain model choice (NT4 or AD)
+
+Version 10.30 - 23 April 2008
+
+- /sbin/usb_id is needed by mouse.pm to generate /dev/input/by-id/xxx (#39868)
+ (and not /LIB/udev/usb_id since drakx-kbd-mouse-x11 0.42)
+- list generic module in disk/ide
+
+Version 10.29 - 3 April 2008
+
+- time: write UTC setting in /etc/adjtime (#36522)
+
+Version 10.28 - 3 April 2008
+
+- fix computed install size in group selection (#39303)
+ (it didn't take suggests into account)
+
+Version 10.27 - 3 April 2008
+
+- 2008.1 logo (the good one)
+- enable to restore the system through rsnapshot if giving "restore"
+ on cmdline
+- fix broken help because of s/pt_BR/pt_br/ change in file names (#36774)
+
+Version 10.26 - 2 April 2008
+
+- 2008.1 logo
+- fix crash when detecting network connection with supplementary media
+
+Version 10.23 - 31 March 2008
+
+- ensure umount on loopback-mounted-file doesn't leak /dev/loop
+ (otherwise it breaks install from isos on disk) (#36992)
+- warn the user and propose to install/quit-install before upgrading from a
+ partition where "/" is ext3 with block-size 1KB to avoid kernel bug (#37583)
+- detect as laptop systems with ACPI lid button
+ (i.e. if /sys/bus/acpi/devices/PNP0C0D:* exists)
+- fix computing time according to timezone in local/UTC dialog
+ (by using zoneinfo files from the installed prefix)
+
+Version 10.21 - 25 March 2008
+
+- partitioning wizard: allow "Use free space" if there is an extended
+ partition even if all primary partitions are used (#38804)
+ (*old* bug!)
+- fix errors while setting PA preferences (#39270)
+- use umask=0 by default on vfat (#39315)
+- root/user password:
+ o force the password to be utf8 (#23273)
+
+Version 10.19 - 21 March 2008
+
+- diskdrake:
+ o fix setting mount point of a /dev/mdX (#39142)
+ (regression introduced in 10.8)
+- when skipping bootloader installation, correctly say "None" in summary
+ (#39101)
+- correctly set country when given lang=xxx on /proc/cmdline
+ (regression introduced in 10.16) (#39104)
+
+Version 10.18 - 21 March 2008
+
+- when reformatting swap, keep existing UUID (#38877)
+- ask which drive to install bootloader if we don't really know which is first
+ bios drive (cf #38829)
+- fix reading alternatives in install
+- add Xorg.0.log to report.bug.gz (to help diagnose why X failed)
+
+Version 10.17 - 20 March 2008
+
+- do not unconfigure timezone if timezone screen is canceled (#33565)
+- update OpenOffice/BrOffice alternative according to selected lang (#37820)
+
+Version 10.16 - 18 March 2008
+
+- adduserdrake:
+ o display kdm/gdm icon again (was disabled on year ago)
+- do not write aliases for asus_acpi and thinkpad_acpi in
+ modprobe.preload, the modules are now handled by coldplug
+- fix setting default lang (which is given by gfxboot)
+
+Version 10.15 - 14 March 2008
+
+- 2008.1 RC2 logo
+
+Version 10.14 - 14 March 2008
+
+- adapt to cooker:
+ o brltty libraries are now correctly in /lib64 on x86_64
+- mount ntfs-3g as ntfs during install
+ (fixes adding "windows" entry in bootloader)
+- really fix partition device name for some dmraid (missing "p", cf #38363)
+- cpufreq: fix gsx-suspmod probe
+- do not propose to upgrade non-mandriva and non-conectiva distros (#38408)
+
+Version 10.10 - 6 March 2008
+
+- fix resizing/formatting ntfs, and create "Windows" entry in bootloader
+ (broken because of ntfs-3g switch in previous release)
+- install kernel586 on Transmeta Crusoe TM5800 (#37866)
+- do not load i810fb, rely on vesa xorg drive instead (it may help #37772)
+- restore correct configuration of nfs/hd media in urpmi.cfg
+ (regression introduced in 10.8)
+- fix partition device name for some dmraid (missing "p", cf #38363)
+- do not timeout after 10 minutes when resizing NTFS partition
+
+Version 10.8 - 4 March 2008
+
+- adapt code to upgrade from redhat for mdv extensions (& for Manbo
+ Core by the way)
+- auto allocate: do not create /home if drive is smaller than 7GB
+- do not propose to deselect media if none can be deselected
+- no more /media/cdrom in fstab by default (#35055)
+ (not needed anymore by urpmi)
+- use cdrom:// instead of removable:// in urpmi.cfg (urpmi 5.7)
+- use and install ntfs-3g by default for ntfs partitions (#37823)
+
+Version 10.6.25 - 28 February 2008
+
+- API changes for draklive-install
+
+Version 10.6.24 - 28 February 2008
+
+- do not assign a mount point to partitions of type "Compaq diagnostics"
+- 2008.1 RC1 logo
+
+Version 10.6.23 - 25 February 2008
+
+- adapt to cooker:
+ o jfsprogs is now jfsutils
+- change background color
+
+Version 10.6.21 - 19 February 2008
+
+- adapt to cooker rpm macros new locations
+
+Version 10.6.20 - 18 February 2008
+
+- do not create alt_windows unless needed
+ (regression introduced on 2007-11-26) (#37722)
+- install linuxwacom if needed
+- load disk/ide before disk/scsi, or else sata_sis may be loaded for a
+ SATA controller and trigger pata_sis loading before sis5513 is loaded,
+ which would defeat an eventual alias to sis5513 for a PATA controller
+- cpufreq:
+ o use acpi-cpufreq for Mobile PIII/Celeron
+ (family 6 model 11, for example Toshiba Portg 3500)
+ o use speedstep-centrino only for supported models
+ and prefer acpi-cpufreq (patch from Herton, #30208)
+ o use p4-clockmod for some Intel family 6 processors not supporting EST
+
+Version 10.6.19 - 12 February 2008
+
+- do not propose "KDE, GNOME or Custom" profiles if the partition is small
+ (< 2.5GB) otherwise the installer will not be able to install the full profile
+- auto partitioning: ensure the "/" is bigger on small drives
+
+Version 10.6.18 - 12 February 2008
+
+- adapt to modules being in /lib/modules/`uname -r`
+
+Version 10.6.16 - 11 February 2008
+
+- Xorg needs xkb/rules/base, otherwise it can go crazy (#35912)
+- add mkntfs (#37462)
+- detect systems with C7-M processor as laptop (like Belinea s.book)
+
+Version 10.6.13 - 5 February 2008
+
+- add "vesa" X driver to use when framebuffer fails
+ (useful for boxes which work with vga=785 which is not the default, in that
+ case "vesa" should work)
+
+Version 10.6.12 - 28 January 2008
+
+- 2008.1 beta2 logo
+- set $::isInstall soon enough for fs::type data-structure creation:
+ fixes reiser4 appearing in diskdrake during install (#36999)
+- add grub entries to allow booting other installed distros
+ (using grub "configfile") (see #16604)
+
+Version 10.6.10 - 28 January 2008
+
+- handle new drivers:
+ o ethernet: cpmac
+ o gigabit: ipg
+ o pata/sata: pata_bf54x, sata_fsl
+ o sound: snd-at73c213
+ o tv cards: cx23885
+ o webcams: tcm825x
+- fix detecting existing LVMs (#31228)
+ (regression introduced in 10.4.204 (?))
+- fix ensuring X is launched on tty7 (cf #37087)
+- fix handling LVM VGs with "-" in the name (#37267)
+- call X with -nolisten tcp to avoid "security" issues (#18320)
+ (nb: this implies "xhost+" helper prog is not useful anymore)
+- do not propose ext4dev filesystem during install (#37157)
+
+Version 10.6.8 - 24 January 2008
+
+- 2008.1 beta1 logo
+- look for LVM PV on non partitioned disk before looking for DOS
+ partition_table (esp. for lilo which puts the DOS magic)
+
+Version 10.6.7 - 22 January 2008
+
+- add xkb/symbols/inet (which is now needed by default for pc105)
+- adapt to perl 5.10.0
+- create /dev/cdrom symlink for installer (#36703)
+- do not put "windows" entry in bootloader for partitions where Windows is not
+ present (#8086)
+
+Version 10.6.5 - 14 January 2008
+
+- do not sort languages in "choose language" step in graphical mode, since the
+ sort is done on the non-translated strings (eg: we display "Espanol" but we
+ sort on Spanish )
+
+Version 10.6.3 - 9 January 2008, by Pascal "Pixel" Rigaux
+
+- 2008.1 alpha2 logo
+- adapt to cooker:
+ o DejaVuSans-Bold*.ttf instead of DejaVuSansBold*.ttf (again!)
+ o /usr/lib/gconv/KOI8-K.so is no more, take KOI8-*.so
+ o no more /etc/rpm/platform (for rpm 4.4.2.2)
+- install SMP packages when "match_all_hardware" option is set
+
+Version 10.6.1 - 12 December 2007, by Pascal "Pixel" Rigaux
+
+- ensure failing to build mdkinst.sqfs is a fatal error
+- drakx-in-chroot:
+ o just like stage1, handle <root of distrib> ending with current arch() so
+ that we can access main32 on x86_64
+- do not rebuild rpmdb if it is ok
+ (will workaround #32547) (need perl-URPM 3.01)
+- adapt to perl-URPM 3.00 API to parse pubkey files
+- adjust Uzbek locale (cf locales-uz change)
+- sort languages in "choose language" step in text mode
+- diskdrake:
+ o drop "Undo", "Restore partition table", "Save partition table"
+ (preparing to switch to libparted)
+- don't check /proc/partitions for a partition_table::lvm
+ (ie PV on non partitioned drive)
+
+Version 10.5.6 - 30 November 2007, by Pascal "Pixel" Rigaux
+
+- restrict the proposed input-methods for each language
+- /dev/<vg> may not exist if LVs have not been created, it must not be an error (#31478)
+- use xkb instead of xmodmap
+- save bootloader on MBR when calling grub/install.sh, and restore it before
+ calling it again (#35255) (ie implement "lilo -u" for grub)
+- ensure /etc/sysconfig/console/default.kmap is generated with installed
+ keymaps, not installer simplified (?) .bkmap (#35376)
+- fix wrongly detecting some devices as laptop specific (#35759)
+- add /etc/mke2fs.conf symlink so that mke2fs can use it (cf #27377)
+
+Version 10.5.5 - 14 November 2007, by Pascal "Pixel" Rigaux
+
+- adapt to cooker:
+ o kbd_drv.so instead of keyboard_drv.so
+ o DejaVuSansBold*.ttf instead of DejaVuSans-Bold*.ttf
+
+Version 10.5.4 - 13 November 2007, by Pascal "Pixel" Rigaux
+
+- use UUID by default (in fstab, bootloader)
+- localedrake:
+ o fix handling variant together with charset (eg: uz.UTF-8@Latn) (#35090)
+- partitioning wizard: ensure existing_part and resize_fat are proposed before
+ wipe_drive
+- in case of ftp/http media, we select basesystem before doing
+ bestKernelPackage so we must ensure the choice callback selects the good
+ kernel (reported by Thomas Spuhler on cooker mailing list)
+- do propose "Suisse" after selecting french language (#34675)
+- use time() to know when to timeout (when launching installer X server)
+ since the loop may be slower than 1 second (xf86misc::main::Xtest takes time
+ on a failing X server on i810). Also print a message telling user to wait
+ after 8 seconds.
+
+Version 10.4.238 - 5 October 2007, by Pascal "Pixel" Rigaux
+
+- do not use pseudo Protocol "vboxmouse" during install, use "IMPS/2" instead
+
+Version 10.4.236 - 4 October 2007, by Pascal "Pixel" Rigaux
+
+- fix copying of ../../i586/media/main medium
+ (for dual_arch CDs sharing the i586 medium)
+- fix configuring kdeglobals (was broken because of /etc/kderc using
+ udpate-alternatives which use absolute symlinks)
+
+Version 10.4.233 - 4 October 2007, by Pascal "Pixel" Rigaux
+
+- use /dev/cdrom in fstab, but do not write corresponding udev rule
+ (the rules will be generated at boot time otherwise it won't catch the
+ hdX/srX switch)
+
+Version 10.4.232 - 4 October 2007, by Olivier "blino" Blin
+
+- add helper to get kernel module path (to be used in draklive)
+
+Version 10.4.228 - 3 October 2007, by Pascal "Pixel" Rigaux
+
+- use /dev/cdrom in fstab, and write corresponding udev rule
+ (the rules were generated at boot time but here we ensure consistent naming)
+- 2008 logo
- bootloader:
o if there is a /boot, check /boot instead of "/" to allow grub or not
@@ -314,7 +4805,7 @@ Version 10.4.164 - 9 August 2007, by Pascal "Pixel" Rigaux
- cache PCI probe results
- use Xconfig::proprietary::pkgs_for_Driver2 from drakx-kbd-mouse-X11 0.21
-Version 10.4.162 - 08 August 2007, by Thierry Vignaud
+Version 10.4.162 - 8 August 2007, by Thierry Vignaud
- drakboot:
o allow choosing another bootloader method when a package cannot be
diff --git a/perl-install/install/any.pm b/perl-install/install/any.pm
index 7586932e2..4ea2ce45d 100644
--- a/perl-install/install/any.pm
+++ b/perl-install/install/any.pm
@@ -1,4 +1,4 @@
-package install::any; # $Id$
+package install::any;
use strict;
@@ -8,6 +8,7 @@ our @EXPORT_OK = qw(addToBeDone);
#-######################################################################################
#- misc imports
#-######################################################################################
+use feature 'state';
use common;
use run_program;
use fs::type;
@@ -22,8 +23,24 @@ use lang;
use any;
use log;
+=head1 SYNOPSYS
+
+Misc installer specific functions
+
+=head1 Functions
+
+=over
+
+=cut
+
our @advertising_images;
+=item drakx_version($o)
+
+Returns DrakX version as stored in C<install/stage2/VERSION> file
+
+=cut
+
sub drakx_version {
my ($o) = @_;
@@ -38,29 +55,25 @@ sub dont_run_directly_stage2() {
readlink("/usr/bin/runinstall2") eq "runinstall2.sh";
}
+=item is_network_install($o)
+
+Is it a network install?
+
+=cut
+
sub is_network_install {
my ($o) = @_;
member($o->{method}, qw(ftp http nfs));
}
+=item spawnShell()
-sub start_i810fb() {
- my ($vga) = cat_('/proc/cmdline') =~ /vga=(\S+)/;
- return if !$vga || listlength(cat_('/proc/fb'));
-
- my %vga_to_xres = (0x311 => '640', 0x314 => '800', 0x317 => '1024');
- my $xres = $vga_to_xres{$vga} || '800';
+Starts a shell on tty2
- log::l("trying to load i810fb module with xres <$xres> (vga was <$vga>)");
- eval { modules::load('intel_agp') };
- eval {
- my $opt = "xres=$xres hsync1=32 hsync2=48 vsync1=50 vsync2=70 vram=2 bpp=16 accel=1 mtrr=1"; #- this sucking i810fb does not accept floating point numbers in hsync!
- modules::load_with_options([ 'i810fb' ], { i810fb => $opt });
- };
-}
+=cut
sub spawnShell() {
- return if $::local_install || $::testing || dont_run_directly_stage2();
+ return if $::local_install || $::testing;
my $shellpid_file = '/var/run/drakx_shell.pid';
return if -e $shellpid_file && -d '/proc/' . chomp_(cat_($shellpid_file));
@@ -70,7 +83,8 @@ sub spawnShell() {
return;
}
- $ENV{DISPLAY} ||= ":0"; #- why not :pp
+ #- why not :pp
+ $ENV{DISPLAY} ||= ":0" if $::o->{interactive} eq "gtk";
local *F;
sysopen F, "/dev/tty2", 2 or log::l("cannot open /dev/tty2 -- no shell will be provided: $!"), goto cant_spawn;
@@ -98,46 +112,22 @@ cant_spawn:
c::_exit(1);
}
-sub getAvailableSpace {
- my ($o) = @_;
-
- #- make sure of this place to be available for installation, this could help a lot.
- #- currently doing a very small install use 36Mb of postinstall-rpm, but installing
- #- these packages may eat up to 90Mb (of course not all the server may be installed!).
- #- 65mb may be a good choice to avoid almost all problem of insuficient space left...
- my $minAvailableSize = 65 * sqr(1024);
-
- my $n = !$::testing && getAvailableSpace_mounted($::prefix) ||
- getAvailableSpace_raw($o->{fstab}) * 512 / 1.07;
- $n - max(0.1 * $n, $minAvailableSize);
-}
+=item getAvailableSpace($o)
-sub getAvailableSpace_mounted {
- my ($prefix) = @_;
- my $dir = -d "$prefix/usr" ? "$prefix/usr" : $prefix;
- my (undef, $free) = MDK::Common::System::df($dir) or return;
- log::l("getAvailableSpace_mounted $free KB");
- $free * 1024 || 1;
-}
-sub getAvailableSpace_raw {
- my ($fstab) = @_;
+Returns available space
- do { $_->{mntpoint} eq '/usr' and return $_->{size} } foreach @$fstab;
- do { $_->{mntpoint} eq '/' and return $_->{size} } foreach @$fstab;
+=cut
- if ($::testing) {
- my $nb = 450;
- log::l("taking ${nb}MB for testing");
- return MB($nb);
- }
- die "missing root partition";
+sub getAvailableSpace {
+ my ($o) = @_;
+ fs::any::getAvailableSpace($o->{fstab});
}
sub preConfigureTimezone {
my ($o) = @_;
require timezone;
- #- can not be done in install cuz' timeconfig %post creates funny things
+ #- cannot be done in install cuz' timeconfig %post creates funny things
add2hash($o->{timezone}, timezone::read()) if $o->{isUpgrade};
$o->{timezone}{timezone} ||= timezone::bestTimezone($o->{locale}{country});
@@ -145,8 +135,29 @@ sub preConfigureTimezone {
my $utc = every { !isFat_or_NTFS($_) } @{$o->{fstab}};
my $ntp = timezone::ntp_server();
add2hash_($o->{timezone}, { UTC => $utc, ntp => $ntp });
+
+ #- Make the timezone available to urpm::mirrors.
+ write_installer_timezone($o->{timezone});
+}
+
+=item write_installer_timezone($timezone)
+
+Writes a minimal version of $timezone to /etc/sysconfig/clock for use by urpm::mirrors
+
+=cut
+
+sub write_installer_timezone {
+ my ($timezone) = @_;
+ mkdir_p('/etc/sysconfig/');
+ setVarsInSh('/etc/sysconfig/clock', { ZONE => $timezone->{timezone} });
}
+=item ask_suppl_media_method($o)
+
+Enables to add supplementary media
+
+=cut
+
sub ask_suppl_media_method {
my ($o) = @_;
our $suppl_already_asked;
@@ -159,18 +170,18 @@ sub ask_suppl_media_method {
Do you have a supplementary installation medium to configure?",
- join(", ", map { $_->{name} } install::media::allMediums($o->{packages}))));
+ "\n\n\n" . join(",\n\n", map { "- $_->{name}" . ($_->{ignore} ? " (disabled)" : '') } install::media::allMediums($o->{packages}))));
my %l = my @l = (
'' => N("None"),
- 'cdrom' => N("CD-ROM"),
'http' => N("Network (HTTP)"),
'ftp' => N("Network (FTP)"),
'nfs' => N("Network (NFS)"),
);
- $o->ask_from(
- '', $msg,
+ $o->ask_from_({ messages => $msg,
+ interactive_help_id => 'add_supplemental_media',
+ },
[ {
val => \my $suppl,
list => [ map { $_->[0] } group_by2(@l) ],
@@ -183,20 +194,30 @@ Do you have a supplementary installation medium to configure?",
$suppl;
}
-#- if the supplementary media is networked, but not the main one, network
-#- support must be installed and network started.
+=item prep_net_suppl_media($o)
+
+If the supplementary media is networked, but not the main one, network
+support must be installed and network started.
+
+=cut
+
sub prep_net_suppl_media {
my ($o) = @_;
require network::tools;
- my (undef, $is_up, undef) = network::tools::get_internet_connection($o->{net});
-
- return if our $net_suppl_media_configured && $is_up;
+ return if our $net_suppl_media_configured && network::tools::has_network_connection();
$net_suppl_media_configured = 1;
- #- install basesystem now
- $o->do_pkgs->ensure_is_installed('basesystem', undef, 1);
+ # needed so that one can install basesystem-minimal before adding suppl network media:
+ install::media::update_media($o->{packages});
+ require urpm::media;
+ urpm::media::configure($o->{packages});
+
+ #- install basesystem-minimal now
+ $o->do_pkgs->ensure_is_installed('basesystem-minimal', undef, 1);
+ # in case of no network install:
+ $o->{net} ||= {};
require network::netconnect;
network::netconnect::real_main($o->{net}, $o, $o->{modules_conf});
require install::interactive;
@@ -204,69 +225,14 @@ sub prep_net_suppl_media {
sleep(3);
}
-sub ask_url {
- my ($in, $o_url) = @_;
-
- my $url = $o_url;
- $in->ask_from_({ messages => N("URL of the mirror?"), focus_first => 1 }, [
- { val => \$url,
- validate => sub {
- if ($url =~ m!^(http|ftp)://!) {
- 1;
- } else {
- $in->ask_warn('', N("URL must start with ftp:// or http://"));
- 0;
- }
- } } ]) && $url;
-}
-sub ask_mirror {
- my ($o, $type, $o_url) = @_;
-
- require mirror;
-
- my $mirrors = eval {
- my $_w = $o->wait_message('', N("Contacting Mandriva Linux web site to get the list of available mirrors..."));
- mirror::list($o->{product_id}, $type);
- };
- my $err = $@;
- if (!$mirrors) {
- $o->ask_warn('', N("Failed contacting Mandriva Linux web site to get the list of available mirrors") . "\n$err");
- return ask_url($o, $o_url);
- }
-
- my $give_url = { country => '-', host => 'URL' };
-
- my $mirror = $o_url ? (find { $_->{url} eq $o_url } @$mirrors) || $give_url
- #- use current time zone to select best mirror
- : mirror::nearest($o->{timezone}{timezone}, $mirrors);
-
- $o->ask_from_({ messages => N("Choose a mirror from which to get the packages"),
- cancel => N("Cancel"),
- }, [ { separator => '|',
- format => \&mirror::mirror2text,
- list => [ @$mirrors, $give_url ],
- val => \$mirror,
- },
- ]) or return;
-
- my $url;
- if ($mirror eq $give_url) {
- $url = ask_url($o, $o_url) or goto &ask_mirror;
- } else {
- $url = $mirror->{url};
- }
- $url =~ s!/main/?$!!;
- log::l("chosen mirror: $url");
- $url;
-}
-
sub ask_suppl_media_url {
my ($o, $method, $o_url) = @_;
- if ($method eq 'ftp' || $method eq 'http') {
- install::any::ask_mirror($o, 'distrib', $o_url);
- } elsif ($method eq 'cdrom') {
- 'cdrom://';
+ if (member($method, qw(ftp http))) {
+ preConfigureTimezone($o);
+ any::ask_mirror_and_downloader($o, $o->{options}, 'downloader_only');
+ $o->{packages}{options}{downloader} = $o->{options}{downloader};
+ any::ask_mirror($o, 'distrib', $o_url);
} elsif ($method eq 'nfs') {
my ($host, $dir) = $o_url ? $o_url =~ m!nfs://(.*?)(/.*)! : ();
$o->ask_from_(
@@ -288,6 +254,14 @@ sub ask_suppl_media_url {
"nfs://$host$dir";
} else { internal_error("bad method $method") }
}
+
+
+=item selectSupplMedia($o)
+
+Offers to add a supplementary media. If yes, ask which mirror to use, ...
+
+=cut
+
sub selectSupplMedia {
my ($o) = @_;
my $url;
@@ -296,7 +270,7 @@ sub selectSupplMedia {
my $method = ask_suppl_media_method($o) or return;
#- configure network if needed
- if (!scalar keys %{$o->{net}{ifcfg}} && $method !~ /^(?:cdrom|disk)/ && !$::local_install) {
+ if (!scalar keys %{$o->{net}{ifcfg}} && $method !~ /^(?:disk)/ && !$::local_install) {
prep_net_suppl_media($o);
}
@@ -342,73 +316,284 @@ sub selectSupplMedia {
goto ask_url;
}
+=item load_rate_files($o)
+
+Loads the package rates file (C<rpmsrate>) as well as the C<compssUsers.pl>
+file which contains the package groups GUI.
+
+Both files came from the C<meta-task> package.
+
+=cut
+
sub load_rate_files {
my ($o) = @_;
#- must be done after getProvides
- install::pkgs::read_rpmsrate($o->{packages}, $o->{rpmsrate_flags_chosen}, '/tmp/rpmsrate', $o->{match_all_hardware});
+ require pkgs;
+ pkgs::read_rpmsrate($o->{packages}, $o->{rpmsrate_flags_chosen}, '/tmp/rpmsrate', $o->{match_all_hardware});
($o->{compssUsers}, $o->{gtk_display_compssUsers}) = install::pkgs::readCompssUsers('/tmp/compssUsers.pl');
defined $o->{compssUsers} or die "Can't read compssUsers.pl file, aborting installation\n";
}
+sub _core_medium() { N("Core Release") }
+
+sub _tainted_medium() { N("Tainted Release") }
+
+sub _nonfree_medium() { N("Nonfree Release") }
+
+# FIXME: move me in ../any.pm or in harddrake::*, might be needed by rpmdrake/harddrake:
+sub is_firmware_needed_ {
+ my ($o) = @_;
+ require list_firmwares;
+ my @l = map { $_->{driver} } detect_devices::probeall();
+ my @need = intersection(\@l, \@list_firmwares::modules_with_nonfree_firmware);
+ log::l("the following driver(s) need nonfree firmware(s): " . join(', ', @need)) if @need;
+
+ require pkgs;
+ my @xpkgs = pkgs::detect_graphical_drivers($o->do_pkgs, undef, 'firmware-only');
+ log::l("the following nonfree firmware(s) are needed for X.org: " . join(', ', @xpkgs)) if @xpkgs;
+
+ my $need_microcode = detect_devices::hasCPUMicrocode();
+ log::l("nonfree firmware is needed for the CPU (microcode)") if $need_microcode;
+
+ if_(@need, 'kernel-firmware-nonfree'), @xpkgs, if_($need_microcode, 'microcode');
+}
+
+=item is_firmware_needed($o)
+
+Is a firmware needed by some HW?
+
+=cut
+
+sub is_firmware_needed {
+ my ($o) = @_;
+ state $res;
+ $res = is_firmware_needed_($o) if !defined $res;
+ $res;
+}
+
+sub msg_if_firmware_needed {
+ my ($o) = @_;
+ return if !is_firmware_needed($o);
+ join("\n",
+ # FIXME: actually can be proprietary drivers (same medium eventually):
+ N("Some hardware on your machine needs some non free firmwares in order for the free software drivers to work."),
+ N("You should enable \"%s\"", _nonfree_medium()),
+ );
+}
+
+=item enable_nonfree_media($medium)
+
+Enable a disabled Nonfree medium.
+
+=cut
+
+sub enable_nonfree_media {
+ my ($medium) = @_;
+ return if $medium->{name} !~ /Nonfree/ || $medium->{name} =~ /32bit/ || !$medium->{ignore};
+ log::l("preselecting $medium->{name}");
+ $medium->{temp_enabled} = 1;
+}
+
+=item enable_core_32bit_media($medium)
+
+Enable a disabled Core 32bit medium.
+
+=cut
+
+sub enable_core_32bit_media {
+ my ($medium) = @_;
+ return if $medium->{name} !~ /Core/ || $medium->{name} !~ /32bit/ || !$medium->{ignore};
+ log::l("preselecting $medium->{name}");
+ $medium->{temp_enabled} = 1;
+}
+
+=item media_screen($o)
+
+Lists available media with their status (enabled/disabled).
+Suggests to enable Nonfree media if needed.
+
+=cut
+
+sub media_screen {
+ my ($o) = @_;
+
+ my $urpm = $o->{packages};
+ # FIXME:
+ # - nice info
+ # - ignore already failed media (such as 32bit media on NFS)
+ # - detect if non-free/tainted were selected previously / are now needed
+ # rpm -qa |grep tainted/non-free
+ # - use red color in that case (gtk+ version? interactive::gtk version?)
+ # - present media as trees (eg 3 main branches (core/nonfree/tainted and sub medium below (release/updates/...)
+ # - enable to add media from the media screen
+ # - introduce 'mandatory' keyword for guessing media that can *not* be disabled
+ my %descriptions = (
+ 'Core Release' => N("\"%s\" contains the various pieces of the systems and its applications", _core_medium()),
+ 'Nonfree Release' => N("\"%s\" contains non free software.\n", _nonfree_medium()) . " " .
+ N("It also contains firmwares needed for certain devices to operate (eg: some ATI/AMD graphic cards, some network cards, some RAID cards, ...)"),
+ 'Tainted Release' => N("\"%s\" contains software that can not be distributed in every country due to software patents.", _tainted_medium()) . " " .
+ N("It also contains software from \"%s\" rebuild with additional capabilities.", _core_medium()),
+ );
+
+ my $nonfree_is_needed = is_firmware_needed($o);
+
+ $o->ask_from_({ messages => join("\n",
+ N("Here you can enable more media if you want."),
+ msg_if_firmware_needed($o)
+ ),
+ interactive_help_id => 'media_selection',
+ focus_first => sub { 1 } }, [
+ map {
+ my $medium = $_;
+ $medium->{temp_enabled} = !$medium->{ignore};
+ my $name = $medium->{name};
+ my ($distribconf, $medium_path) = @{$_->{mediacfg}};
+ my @media_types = split(':', $distribconf->getvalue($medium_path, 'media_type'));
+ my $parent = $distribconf->getvalue($distribconf->getvalue($medium_path, 'updates_for'), 'name');
+ my $non_regular_medium = intersection(\@media_types, [ qw(backports debug source testing) ]);
+ enable_nonfree_media($medium) if $nonfree_is_needed && !$non_regular_medium;
+ enable_core_32bit_media($medium) if arch() eq 'x86_64' && uefi_type() eq 'ia32' && !$non_regular_medium;
+ $non_regular_medium ? () :
+ +{
+ val => \$medium->{temp_enabled}, type => 'bool', text => $name,
+ help => $medium->{update} ? N("This medium provides package updates for medium \"%s\"", $parent) : $descriptions{$name},
+ # 'Core Release' cannot be unselected:
+ disabled => sub {
+ state $parent_media = $parent && urpm::media::name2medium($urpm, $parent);
+ $name =~ /^(?:Core|Main) Release$/ || $parent_media ? !$parent_media->{temp_enabled} : 0;
+ },
+ };
+ } @{$urpm->{media}},
+ ]);
+}
+
+sub enable_choosen_media {
+ my ($o) = @_;
+ my $urpm = $o->{packages};
+
+ # is there some media to enable?
+ my $todo;
+ foreach my $medium (@{$urpm->{media}}) {
+ if ($medium->{temp_enabled} == $medium->{ignore}) {
+ $medium->{ignore} = !$medium->{temp_enabled};
+ if (!$medium->{ignore}) {
+ delete $medium->{ignore};
+ log::l("Medium '$medium->{name}' needs to be updated to be usable");
+ urpm::media::select_media($urpm, $medium->{name});
+ $todo = 1;
+ }
+ }
+ delete $medium->{temp_enabled};
+ }
+ return if !$todo;
+ urpm::media::update_media($urpm, allow_failures => 1, nolock => 1, noclean => 1,
+ callback => \&urpm::download::sync_logger
+ );
+}
+
+=item setPackages($o)
+
+=over 4
+
+=item * Initialize urpmi
+
+=item * Retrieves media.cfg
+
+=item * Offers to add supplementary media (according to the install method)
+
+=item * Offers to enable some disabled media
+
+=item * Ensure we have a kernel and basesystem
+
+=item * Flags package rates
+
+=item * Select default packages according to the computer
+
+=back
+
+=cut
+
sub setPackages {
my ($o) = @_;
+ my $urpm;
require install::pkgs;
{
- $o->{packages} = install::pkgs::empty_packages($o->{keep_unrequested_dependencies});
+ #- clean shared regions very early
+ # (update_media will open rpmdb for listing existing pubkeys,
+ # which may fail when rpm version mistmatches between drakx & chrooted env)
+ install::pkgs::clean_rpmdb_shared_regions();
+ $urpm = $o->{packages} = install::pkgs::empty_packages($o->{keep_unrequested_dependencies});
my $media = $o->{media} || [ { type => 'media_cfg', url => 'drakx://media' } ];
+ my ($suppl_method, $copy_rpms_on_disk);
- my ($suppl_method, $copy_rpms_on_disk) = install::media::get_media($o, $media, $o->{packages});
+ {
+ install::pkgs::start_pushing_error();
+ ($suppl_method, $copy_rpms_on_disk) = install::media::get_media($o, $media, $urpm);
- if ($suppl_method) {
- 1 while $o->selectSupplMedia;
+ if ($suppl_method) {
+ 1 while $o->selectSupplMedia;
+ }
+ install::media::update_media($urpm);
+ install::pkgs::popup_errors();
}
- #- open rpm db according to right mode needed (ie rebuilding database if upgrading)
- $o->{packages}{rpmdb} ||= install::pkgs::rpmDbOpen($o->{isUpgrade}, $o->{rpm_dbapi});
+ install::pkgs::start_pushing_error();
+
+ # in auto-install mode, we enforce selected media, else we respect media.cfg's default:
+ if ($::auto_install && !is_empty_array_ref($o->{enabled_media})) {
+ # respect enabled/disabled media selection:
+ foreach my $medium (@{$urpm->{media}}) {
+ $medium->{temp_enabled} = member($medium->{name}, @{$o->{enabled_media}});
+ }
+ }
+ media_screen($o) if !$::auto_install || member('chooseMedia', @{$::o->{interactiveSteps}});
+ enable_choosen_media($o);
+ my @choosen_media = map { $_->{name} } grep { !$_->{ignore} } @{$urpm->{media}};
+ log::l("choosen media: ", join(', ', @choosen_media));
+ die "no choosen media" if !@choosen_media;
+
+ # actually read synthesis now we have all the ones we want:
+ require urpm::media;
+ urpm::media::configure($urpm);
+
+ install::pkgs::popup_errors();
+
+ install::media::adjust_paths_in_urpmi_cfg($urpm);
+ log::l('urpmi completely set up');
+
+ #- open rpm db according to right mode needed
+ $urpm->{rpmdb} ||= install::pkgs::rpmDbOpen('rebuild_if_needed');
{
my $_wait = $o->wait_message('', N("Looking at packages already installed..."));
- install::pkgs::selectPackagesAlreadyInstalled($o->{packages});
+ install::pkgs::selectPackagesAlreadyInstalled($urpm);
}
- if (my $extension = $o->{upgrade_by_removing_pkgs_matching}) {
- my $time = time();
- my ($_w, $wait_message) = $o->wait_message_with_progress_bar;
- $wait_message->(N("Removing packages prior to upgrade..."));
- my ($current, $total);
- my $callback = sub {
- my (undef, $type, $_id, $subtype, $amount) = @_;
- if ($type eq 'user') {
- ($current, $total) = (0, $amount);
- } elsif ($type eq 'uninst' && $subtype eq 'stop') {
- $wait_message->('', $current++, $total);
- }
- };
- push @{$o->{default_packages}}, install::pkgs::upgrade_by_removing_pkgs($o->{packages}, $callback, $extension, $o->{isUpgrade});
- log::l("Removing packages took: ", formatTimeRaw(time() - $time));
- }
+ remove_package_for_upgrade($o);
mark_skipped_packages($o);
#- always try to select basic kernel (else on upgrade, kernel will never be updated provided a kernel is already
#- installed and provides what is necessary).
- my $kernel_pkg = install::pkgs::bestKernelPackage($o->{packages}, $o->{match_all_hardware});
- install::pkgs::selectPackage($o->{packages}, $kernel_pkg, 1);
- if ($o->{isUpgrade} && $o->{packages}{sizes}{dkms}) {
- log::l("selecting kernel-desktop-devel-latest (since dkms was installed)");
- install::pkgs::select_by_package_names($o->{packages}, ['kernel-desktop-devel-latest'], 1);
+ my $kernel_pkg = install::pkgs::bestKernelPackage($urpm, $o->{match_all_hardware});
+ install::pkgs::selectPackage($urpm, $kernel_pkg, 1);
+ if ($o->{isUpgrade} && $urpm->{sizes}{dkms} && $kernel_pkg =~ /(.*)-latest/) {
+ my $devel_kernel_pkg = "$1-devel-latest";
+ log::l("selecting $devel_kernel_pkg (since dkms was installed)");
+ install::pkgs::select_by_package_names($urpm, [ $devel_kernel_pkg ], 1);
}
- install::pkgs::select_by_package_names_or_die($o->{packages}, ['basesystem'], 1);
+ install::pkgs::select_by_package_names_or_die($urpm, default_bootloader(), 1) if !$o->{isUpgrade} && !$o->{match_all_hardware};
+ install::pkgs::select_by_package_names_or_die($urpm, ['basesystem'], 1);
my $rpmsrate_flags_was_chosen = $o->{rpmsrate_flags_chosen};
- put_in_hash($o->{rpmsrate_flags_chosen} ||= {}, rpmsrate_always_flags($o)); #- must be done before install::pkgs::read_rpmsrate()
+ put_in_hash($o->{rpmsrate_flags_chosen} ||= {}, rpmsrate_always_flags($o)); #- must be done before pkgs::read_rpmsrate()
load_rate_files($o);
install::media::copy_rpms_on_disk($o) if $copy_rpms_on_disk;
@@ -420,29 +605,45 @@ sub setPackages {
}
if ($o->{isUpgrade}) {
- {
- my $_w = $o->wait_message('', N("Finding packages to upgrade..."));
- install::pkgs::selectPackagesToUpgrade($o->{packages});
- }
- if ($o->{packages}{sizes}{'kdebase-progs'}) {
- log::l("selecting task-kde (since kdebase-progs was installed)");
- install::pkgs::select_by_package_names($o->{packages}, ['task-kde']);
- }
+ my $_w = $o->wait_message('', N("Finding packages to upgrade..."));
+ install::pkgs::selectPackagesToUpgrade($urpm);
}
}
-sub create_minimal_files() {
- mkdir "$::prefix/$_", 0755 foreach
- qw(dev etc etc/profile.d etc/rpm etc/sysconfig etc/sysconfig/console
- etc/sysconfig/network-scripts etc/sysconfig/console/consolefonts
- etc/sysconfig/console/consoletrans
- home mnt tmp var var/tmp var/lib var/lib/rpm var/lib/urpmi);
- mkdir "$::prefix/$_", 0700 foreach qw(root root/tmp root/drakx);
+=item remove_package_for_upgrade($o)
- devices::make("$::prefix/dev/null");
- chmod 0666, "$::prefix/dev/null";
+Removes packages that must be uninstalled prior to upgrade
+
+=cut
+
+sub remove_package_for_upgrade {
+ my ($o) = @_;
+ my $extension = $o->{upgrade_by_removing_pkgs_matching};
+
+ return if !$extension;
+
+ my $time = time();
+ my ($_w, $wait_message) = $o->wait_message_with_progress_bar;
+ $wait_message->(N("Removing packages prior to upgrade..."));
+ my ($current, $total);
+ my $callback = sub {
+ my (undef, $type, $_id, $subtype, $amount) = @_;
+ if ($type eq 'user') {
+ ($current, $total) = (0, $amount);
+ } elsif ($type eq 'uninst' && $subtype eq 'stop') {
+ $wait_message->('', $current++, $total);
+ }
+ };
+ push @{$o->{default_packages}}, install::pkgs::upgrade_by_removing_pkgs($o->{packages}, $callback, $extension, $o->{isUpgrade});
+ log::l("Removing packages took: ", formatTimeRaw(time() - $time));
}
+=item count_files($dir)
+
+Returns the number of files in $dir
+
+=cut
+
sub count_files {
my ($dir) = @_;
-d $dir or return 0;
@@ -459,7 +660,7 @@ sub count_files {
sub cp_with_progress {
my $wait_message = shift;
- my $current = shift;
+ my $_current = shift;
my $total = shift;
my $dest = pop @_;
cp_with_progress_({ keep_special => 1 }, $wait_message, $total, \@_, $dest);
@@ -536,10 +737,14 @@ sub rpmsrate_always_flags {
$rpmsrate_flags_chosen->{DVD} = 1 if $o->{match_all_hardware} || detect_devices::dvdroms();
$rpmsrate_flags_chosen->{USB} = 1 if $o->{match_all_hardware} || $o->{modules_conf}->get_probeall("usb-interface");
$rpmsrate_flags_chosen->{PCMCIA} = 1 if $o->{match_all_hardware} || detect_devices::hasPCMCIA();
- $rpmsrate_flags_chosen->{HIGH_SECURITY} = 1 if $o->{security} > 3;
+ $rpmsrate_flags_chosen->{HIGH_SECURITY} = 1 if $o->{security} > 1;
$rpmsrate_flags_chosen->{BIGMEM} = 1 if detect_devices::BIGMEM();
- $rpmsrate_flags_chosen->{SMP} = 1 if detect_devices::hasSMP();
- $rpmsrate_flags_chosen->{CDCOM} = 1 if any { $_->{name} =~ /commercial/i } install::media::allMediums($o->{packages});
+ $rpmsrate_flags_chosen->{SMP} = 1 if $o->{match_all_hardware} || detect_devices::hasSMP();
+ if (!$o->{match_all_hardware} && !defined $o->{compssListLevel} && detect_devices::need_light_desktop()) {
+ log::l("activation light desktop mode (for low resources systems or netbook/nettops)");
+ $rpmsrate_flags_chosen->{LIGHT} = 1;
+ }
+ # FIXME: to be updated!!!
$rpmsrate_flags_chosen->{'3D'} = 1 if
$o->{match_all_hardware} ||
detect_devices::matching_desc__regexp('Matrox.* G[245][05]0') ||
@@ -565,18 +770,54 @@ sub rpmsrate_always_flags {
$rpmsrate_flags_chosen;
}
+sub default_bootloader() {
+ require bootloader;
+ my (undef, $p) = bootloader::get_grub2_pkg();
+ if (is_uefi()) {
+ log::l("defaulting to grub2-efi");
+ } else {
+ log::l("defaulting to grub2");
+ }
+ [ $p ];
+}
+
+=item default_packages($o)
+
+Selects default packages to install according to configuration (FS, HW, ...)
+
+=cut
+
sub default_packages {
my ($o) = @_;
my @l;
- push @l, "brltty" if cat_("/proc/cmdline") =~ /brltty=/;
- push @l, "nfs-utils-clients" if $o->{method} eq "nfs";
- push @l, "mdadm" if !is_empty_array_ref($o->{all_hds}{raids});
- push @l, "lvm2" if !is_empty_array_ref($o->{all_hds}{lvms});
- push @l, "dmraid" if any { fs::type::is_dmraid($_) } @{$o->{all_hds}{hds}};
- push @l, 'powernowd' if cat_('/proc/cpuinfo') =~ /AuthenticAMD/ && arch() =~ /x86_64/
- || cat_('/proc/cpuinfo') =~ /model name.*Intel\(R\) Core\(TM\)2 CPU/;
- push @l, detect_devices::probe_name('Pkg');
+ sub add_n_log {
+ my ($reason, @packages) = @_;
+ if (@packages) {
+ log::l("selecting " . join(',', @packages) . " because of $reason");
+ push @l, @packages;
+ }
+ }
+
+ add_n_log("/proc/cmdline=~/brltty=/", "brltty") if cat_("/proc/cmdline") =~ /brltty=/;
+ add_n_log("method==nfs", "nfs-utils") if $o->{method} eq "nfs";
+ add_n_log("have RAID", "mdadm") if !is_empty_array_ref($o->{all_hds}{raids});
+ add_n_log("have LVM", "lvm2") if !is_empty_array_ref($o->{all_hds}{lvms});
+ add_n_log("have crypted DM", qw(cryptsetup dmsetup)) if !is_empty_array_ref($o->{all_hds}{dmcrypts});
+ add_n_log("some disks are fake RAID", qw(mdadm dmraid)) if any { fs::type::is_dmraid($_) } @{$o->{all_hds}{hds}};
+ add_n_log("CPU needs microcode", "microcode_ctl") if detect_devices::hasCPUMicrocode();
+ add_n_log("either CPU or GFX needs firmware", is_firmware_needed($o)) if is_firmware_needed($o);
+ add_n_log("CPU needs cpupower", 'cpupower') if detect_devices::hasCPUFreq();
+ add_n_log("APM support needed", 'apmd') if -e "/proc/apm";
+ add_n_log("needed by hardware", detect_devices::probe_name('Pkg'));
+ my @ltmp = map { $_->{BOOTPROTO} eq 'dhcp' ? $_->{DHCP_CLIENT} || 'dhcp-client' : () } values %{$o->{net}{ifcfg}};
+ add_n_log("needed by networking", @ltmp) if @ltmp;
+ # will get auto selected at summary stage for bootloader:
+ add_n_log("needed later at summary stage", qw(acpi acpid));
+ # will get auto selected at summary stage for firewall:
+ add_n_log("needed for firewall/security", qw(shorewall shorewall-ipv6 mandi-ifw));
+ # only needed for CDs/DVDs installations:
+ add_n_log("method='cdrom'", 'perl-Hal-Cdroms') if $o->{method} eq 'cdrom';
my $dmi_BIOS = detect_devices::dmidecode_category('BIOS');
my $dmi_Base_Board = detect_devices::dmidecode_category('Base Board');
@@ -586,13 +827,16 @@ sub default_packages {
modules::append_to_modules_loaded_at_startup_for_all_kernels('acerhk');
}
- push @l, 'quota' if any { $_->{options} =~ /usrquota|grpquota/ } @{$o->{fstab}};
- push @l, uniq(grep { $_ } map { fs::format::package_needed_for_partition_type($_) } @{$o->{fstab}});
+ add_n_log("some fs is mounted with quota options", 'quota') if any { $_->{options} =~ /usrquota|grpquota/ } @{$o->{fstab}};
+ @ltmp = uniq(grep { $_ } map { fs::format::package_needed_for_partition_type($_) } @{$o->{fstab}});
+ add_n_log("needed by some fs", @ltmp) if @ltmp;
- my @locale_pkgs = map { URPM::packages_providing($o->{packages}, 'locales-' . $_) } lang::langsLANGUAGE($o->{locale}{langs});
+ # handle locales with specified scripting:
+ my @languages = map { s/\@.*//; $_ } lang::langsLANGUAGE($o->{locale}{langs});
+ my @locale_pkgs = map { URPM::packages_providing($o->{packages}, 'locales-' . $_) } @languages;
unshift @l, uniq(map { $_->name } @locale_pkgs);
- @l;
+ uniq(@l);
}
sub mark_skipped_packages {
@@ -611,29 +855,6 @@ sub unselectMostPackages {
select_default_packages($o);
}
-sub warnAboutNaughtyServers {
- my ($o) = @_;
- my @naughtyServers = install::pkgs::naughtyServers($o->{packages}) or return 1;
- my $r = $o->ask_from_list_('',
-formatAlaTeX(
- #-PO: keep the double empty lines between sections, this is formatted a la LaTeX
- N("You have selected the following server(s): %s
-
-
-These servers are activated by default. They do not have any known security
-issues, but some new ones could be found. In that case, you must make sure
-to upgrade as soon as possible.
-
-
-Do you really want to install these servers?
-", join(", ", @naughtyServers))), [ N_("Yes"), N_("No") ], 'Yes') or return;
- if ($r ne 'Yes') {
- log::l("unselecting naughty servers: " . join(' ', @naughtyServers));
- install::pkgs::unselectPackage($o->{packages}, install::pkgs::packageByName($o->{packages}, $_)) foreach @naughtyServers;
- }
- 1;
-}
-
sub warnAboutRemovedPackages {
my ($o, $packages) = @_;
my @removedPackages = keys %{$packages->{state}{ask_remove} || {}} or return;
@@ -688,6 +909,13 @@ sub kdemove_desktop_file {
}
}
+sub log_system_info {
+ my ($o) = @_;
+ log::l("second stage install running (", drakx_version($o), ")");
+ log::l(sprintf("Virtualization=%s", detect_devices::virt_technology() || "none"));
+ log::l(sprintf("Is UEFI=%s", bool2yesno(is_uefi())));
+}
+
#-###############################################################################
#- auto_install stuff
@@ -703,16 +931,16 @@ sub g_auto_install {
my $o = {};
require install::pkgs;
- $o->{default_packages} = install::pkgs::selected_leaves($::o->{packages});
+ $o->{default_packages} = [ sort @{ install::pkgs::selected_leaves($::o->{packages}) } ];
- my @fields = qw(mntpoint fs_type size);
+ my @fields = qw(fs_type hd level mntpoint options parts size VG_name);
$o->{partitions} = [ map {
my %l; @l{@fields} = @$_{@fields}; \%l;
} grep {
$_->{mntpoint} && fs::format::known_type($_);
} @{$::o->{fstab}} ];
- exists $::o->{$_} and $o->{$_} = $::o->{$_} foreach qw(locale authentication mouse net timezone superuser keyboard users partitioning isUpgrade manualFstab nomouseprobe crypto security security_user libsafe autoExitInstall X services postInstall postInstallNonRooted); #- TODO modules bootloader
+ exists $::o->{$_} and $o->{$_} = $::o->{$_} foreach qw(locale authentication mouse net timezone superuser keyboard users partitioning isUpgrade manualFstab nomouseprobe crypto security security_user autoExitInstall X services postInstall postInstallNonRooted); #- TODO modules bootloader
local $o->{partitioning}{auto_allocate} = !$b_replay;
$o->{autoExitInstall} = !$b_replay;
@@ -721,6 +949,9 @@ sub g_auto_install {
#- deep copy because we're modifying it below
$o->{users} = $b_respect_privacy ? [] : [ @{$o->{users} || []} ];
+ # remember selected media:
+ local $o->{enabled_media} = [ map { $_->{name} } grep { !$_->{ignore} } @{$::o->{packages}{media}} ];
+
my @user_info_to_remove = (
if_($b_respect_privacy, qw(realname pw)),
qw(oldu oldg password password2),
@@ -755,9 +986,6 @@ sub getAndSaveAutoInstallFloppies {
eval { modules::load('loop') };
- if (arch() =~ /ia64/) {
- #- nothing yet
- } else {
my $mountdir = "$::prefix/root/aif-mount"; -d $mountdir or mkdir $mountdir, 0755;
my $param = 'kickstart=floppy ' . generate_automatic_stage1_params($o);
@@ -765,7 +993,7 @@ sub getAndSaveAutoInstallFloppies {
{
my $dev = devices::set_loop($img) or log::l("couldn't set loopback device"), return;
- find { eval { fs::mount::mount($dev, $mountdir, $_, 0); 1 } } qw(ext2 vfat) or return;
+ find { eval { fs::mount::mount($dev, $mountdir, $_, 0); 1 } } qw(ext2 vfat ntfs-3g) or return;
if (-e "$mountdir/menu.lst") {
# hd_grub boot disk is different than others
@@ -800,7 +1028,6 @@ sub getAndSaveAutoInstallFloppies {
}
rmdir $mountdir;
$img;
- }
}
@@ -808,14 +1035,19 @@ sub g_default_packages {
my ($o) = @_;
my ($_h, $file) = media_browser($o, 'save', 'package_list.pl') or return;
+ output($file, selected_leaves_pl($o));
+}
+
+sub selected_leaves_pl {
+ my ($o) = @_;
require Data::Dumper;
my $str = Data::Dumper->Dump([ { default_packages => install::pkgs::selected_leaves($o->{packages}) } ], ['$o']);
$str =~ s/ {8}/\t/g;
- output($file,
- "# You should always check the syntax with 'perl -cw auto_inst.cfg.pl'\n" .
- "# before testing. To use it, boot with ``linux defcfg=floppy''\n" .
- $str);
+
+ "# You should always check the syntax with 'perl -cw auto_inst.cfg.pl'\n" .
+ "# before testing. To use it, boot with ``linux defcfg=floppy''\n" .
+ $str;
}
sub loadO {
@@ -825,7 +1057,7 @@ sub loadO {
my $o;
foreach (removable_media__early_in_install()) {
my $dev = devices::make($_->{device});
- foreach my $fs (arch() =~ /sparc/ ? 'romfs' : ('ext2', 'vfat')) {
+ foreach my $fs (qw(ext4 vfat ntfs-3g)) {
eval { fs::mount::mount($dev, '/mnt', $fs, 'readonly'); 1 } or next;
if (my $abs_f = find { -e $_ } "/mnt/$f", "/mnt/$f.pl") {
$o = loadO_($O, $abs_f);
@@ -931,10 +1163,11 @@ sub generate_automatic_stage1_params {
$method = $1; #- in stage1, FTP via HTTP proxy is available through FTP config, not HTTP
@ks = (server => $2, directory => $3);
} elsif ($o->{method} eq 'ftp') {
+ require install::ftp;
my @l = install::ftp::parse_ftp_url($ENV{URLPREFIX});
@ks = (server => $l[0], directory => $l[1], user => $l[2], pass => $l[3]);
} elsif ($o->{method} eq 'nfs') {
- cat_("/proc/mounts") =~ m|(\S+):(\S+)\s+/tmp/media| or internal_error("can not find nfsimage");
+ cat_("/proc/mounts") =~ m|(\S+):(\S+)\s+/tmp/media| or internal_error("cannot find nfsimage");
@ks = (server => $1, directory => $2);
}
@ks = (method => $method, @ks);
@@ -967,23 +1200,22 @@ sub generate_automatic_stage1_params {
sub find_root_parts {
my ($fstab, $prefix) = @_;
- my $extract = sub {
- my ($prefix, $f, $part) = @_;
- chomp(my $s = cat_("$prefix$f"));
- my $arch = $s =~ s/\s+for\s+(\S+)// && $1;
- log::l("find_root_parts found $part->{device}: $s for $arch" . ($f !~ m!/etc/! ? " in special release file $f" : ''));
- { release => $s, release_file => $f, part => $part, arch => $arch };
- };
+ grep { $_->{release} =~ /\b(mandrake|mandrakelinux|mandriva|conectiva|mageia)\b/i }
+ _find_root_parts($fstab, $prefix);
+}
+
+sub _find_root_parts {
+ my ($fstab, $prefix) = @_;
if ($::local_install) {
my $f = common::release_file('/mnt') or return;
- return $extract->('/mnt', $f, {});
+ return common::parse_release_file('/mnt', $f, {});
}
map {
my $handle = any::inspect($_, $prefix);
if (my $f = $handle && common::release_file($handle->{dir})) {
- $extract->($handle->{dir}, $f, $_);
+ common::parse_release_file($handle->{dir}, $f, $_);
} else { () }
} grep { isTrueLocalFS($_) } @$fstab;
}
@@ -1043,7 +1275,7 @@ sub migrate_device_names {
goto found_one;
}
- #- we can not find one and only one matching hd
+ #- we cannot find one and only one matching hd
my @from_fstab_not_handled = map { @$_ } @from_fstab_per_hds;
log::l("we still do not know what to do with: " . join(' ', map { $_->{device} } @from_fstab_not_handled));
@@ -1260,9 +1492,10 @@ sub screenshot_dir__and_move() {
if (-e $dir0 && ! -e '/root/non-chrooted-marker.DrakX') {
($dir0, 'nowarn'); #- it occurs during pkgs install when we are chrooted
} elsif (-e $dir1) {
- if (-e "$dir2/DrakX-screenshots") {
- cp_af("$dir2/DrakX-screenshots", $dir1);
- rm_rf("$dir2/DrakX-screenshots");
+ my $path = "$dir2/DrakX-screenshots";
+ if (-e $path) {
+ cp_af($path, $dir1);
+ rm_rf($path);
}
$dir1;
} else {
@@ -1276,11 +1509,14 @@ sub take_screenshot {
my ($base_dir, $nowarn) = screenshot_dir__and_move();
my $dir = "$base_dir/DrakX-screenshots";
if (!-e $dir) {
- mkdir $dir or $in->ask_warn('', N("Can not make screenshots before partitioning")), return;
+ mkdir $dir or $in->ask_warn('', N("Cannot make screenshots before partitioning")), return;
}
my $nb = 1;
$nb++ while -e "$dir/$nb.png";
- system("fb2png /dev/fb0 $dir/$nb.png 0");
+ run_program::run('scrot', "$dir/$nb.png");
+
+ # help doesn't remember warning has been shown (one shot processes):
+ $warned ||= -e "$dir/2.png";
if (!$warned && !$nowarn) {
$warned = 1;
@@ -1319,28 +1555,39 @@ sub remove_advertising() {
}
sub disable_user_view() {
- substInFile { s/^UserView=.*/UserView=true/ } "$::prefix/etc/kde/kdm/kdmrc";
substInFile { s/^Browser=.*/Browser=0/ } "$::prefix/etc/X11/gdm/custom.conf";
+ #TODO: Needed for sddm ?
}
sub set_security {
my ($o) = @_;
require security::various;
+ return if !-x "$::prefix/usr/sbin/msec";
security::level::set($o->{security});
- security::various::config_libsafe($::prefix, $o->{libsafe});
security::various::config_security_user($::prefix, $o->{security_user});
}
sub write_fstab {
my ($o) = @_;
- fs::write_fstab($o->{all_hds}, $::prefix)
- if !$o->{isUpgrade} || $o->{isUpgrade} =~ /redhat|conectiva/ || $o->{migrate_device_names};
+ return if $::local_install || $o->{isUpgrade} && $o->{isUpgrade} !~ /redhat|conectiva/ && !$o->{migrate_device_names};
+ fs::write_fstab($o->{all_hds}, $::prefix);
}
-sub adjust_files_mtime_to_timezone() {
- #- to ensure linuxconf does not cry against those files being in the future
- #- to ensure fc-cache works correctly on fonts installed after reboot
+=item adjust_files_mtime_to_timezone() {
+
+Fixes mtime of a couple important files according to timezone in order to:
+
+=over 4
+
+=item * to ensure linuxconf does not cry against those files being in the future
+
+=item * to ensure fc-cache works correctly on fonts installed after reboot
+=back
+
+=cut
+
+sub adjust_files_mtime_to_timezone() {
my $timezone_shift = run_program::rooted_get_stdout($::prefix, 'date', '+%z');
my ($h, $m) = $timezone_shift =~ /\+(..)(..)/ or return;
my $now = time() - ($h * 60 + $m * 60) * 60;
@@ -1433,7 +1680,11 @@ sub configure_pcmcia {
log::l("configuring PCMCIA controller ($o->{pcmcia})");
symlink "/tmp/stage2/$_", $_ foreach "/etc/pcmcia";
eval { modules::load($o->{pcmcia}, 'pcmcia') };
- run_program::run("pcmcia-socket-startup");
+ run_program::run("/lib/udev/pcmcia-socket-startup");
}
+=back
+
+=cut
+
1;
diff --git a/perl-install/install/commands.pm b/perl-install/install/commands.pm
index 982667d20..79f49b980 100644
--- a/perl-install/install/commands.pm
+++ b/perl-install/install/commands.pm
@@ -1,11 +1,11 @@
-package install::commands; # $Id$
+package install::commands;
#-########################################################################
#- This file implement many common shell commands:
-#- true, false, cat, which, dirname, basename, rmdir, lsmod, grep, tr,
+#- true, false, cat, which, dirname, basename, rmdir, grep, tr,
#- mount, mkdir, mknod, ln, rm, chmod, chown, swapon,
#- swapoff, ls, cp, ps, dd, head, tail, strings, hexdump, more,
-#- modprobe, route, df, kill, lspci, lssbus, dmesg, sort, du,
+#- route, df, kill, lspci, lssbus, dmesg, sort, du,
#-########################################################################
use diagnostics;
@@ -37,8 +37,7 @@ sub false() { exit 1 }
sub cat { @ARGV = @_; print while <> }
sub dirname_ { print dirname(@_), "\n" }
sub basename_ { print basename(@_), "\n" }
-sub rmdir_ { foreach (@_) { rmdir $_ or die "rmdir: can not remove $_\n" } }
-sub lsmod() { print "Module Size Used by\n"; cat("/proc/modules") }
+sub rmdir_ { foreach (@_) { rmdir $_ or die "rmdir: cannot remove $_\n" } }
sub which {
ARG: foreach (@_) { foreach my $c (split /:/, $ENV{PATH}) { -x "$c/$_" and print("$c/$_\n"), next ARG } }
}
@@ -97,7 +96,7 @@ sub rm {
if (!-l $_ && -d $_) {
$rec or die "$_ is a directory\n";
&$rm(glob_($_));
- rmdir $_ or die "can not remove directory $_: $!\n";
+ rmdir $_ or die "cannot remove directory $_: $!\n";
} else { unlink $_ or die "rm of $_ failed: $!\n" }
}
};
@@ -160,7 +159,7 @@ sub ls {
@_ == 1 && -d $_[0] and @_ = glob_($_[0]);
foreach (sort @_) {
if ($l) {
- my @s = lstat or warn("can not stat file $_\n"), next;
+ my @s = lstat or warn("cannot stat file $_\n"), next;
formline(
"@<<<<<<<<< @<<<<<<< @<<<<<<< @>>>>>>>> @>>>>>>>>>>>>>>> @*\n",
rights($s[2]), getpwuid $s[4] || $s[4], getgrgid $s[5] || $s[5],
@@ -208,21 +207,21 @@ sub dd {
my $u = "usage: dd [-h] [-p] [if=<file>] [of=<file>] [bs=<number>] [count=<number>]\n";
my ($help, $percent) = getopts(\@_, qw(hp));
die $u if $help;
- my %h = (if => *STDIN, of => *STDOUT, bs => 512, count => undef);
+ my %h = (if => \*STDIN, of => \*STDOUT, bs => 512, count => undef);
foreach (@_) {
/(.*?)=(.*)/ && exists $h{$1} or die $u;
$h{$1} = $2;
}
local (*IF, *OF); my ($tmp, $nb, $read);
- ref($h{if}) eq 'GLOB' ? (*IF = $h{if}) : sysopen(IF, $h{if}, 0) || die "error: can not open file $h{if}\n";
- ref($h{of}) eq 'GLOB' ? (*OF = $h{of}) : sysopen(OF, $h{of}, c::O_CREAT()|c::O_WRONLY()) || die "error: can not open file $h{of}\n";
+ ref($h{if}) eq 'GLOB' ? (*IF = $h{if}) : sysopen(IF, $h{if}, 0) || die "error: cannot open file $h{if}\n";
+ ref($h{of}) eq 'GLOB' ? (*OF = $h{of}) : sysopen(OF, $h{of}, c::O_CREAT()|c::O_WRONLY()) || die "error: cannot open file $h{of}\n";
$h{bs} = removeXiBSuffix($h{bs});
for ($nb = 0; !$h{count} || $nb < $h{count}; $nb++) {
printf "\r%02.1d%%", 100 * $nb / $h{count} if $h{count} && $percent;
- $read = sysread(IF, $tmp, $h{bs}) or ($h{count} ? die "error: can not read block $nb\n" : last);
- syswrite(OF, $tmp) or die "error: can not write block $nb\n";
+ $read = sysread(IF, $tmp, $h{bs}) or ($h{count} ? die "error: cannot read block $nb\n" : last);
+ syswrite(OF, $tmp) or die "error: cannot write block $nb\n";
$read < $h{bs} and $read = 1, last;
}
print STDERR "\r$nb+$read records in\n";
@@ -233,7 +232,7 @@ sub head_tail {
my ($h, $n) = getopts(\@_, qw(hn));
$h || @_ < to_bool($n) and die "usage: $0 [-h] [-n lines] [<file>]\n";
$n = $n ? shift : 10;
- my $fh = @_ ? common::open_file($_[0]) || die "error: can not open file $_[0]\n" : *STDIN;
+ my $fh = @_ ? common::open_file($_[0]) || die "error: cannot open file $_[0]\n" : *STDIN;
if ($0 eq 'head') {
local $_;
@@ -276,9 +275,9 @@ sub hexdump {
sub more {
@ARGV = @_;
require devices;
- my $tty = devices::make('tty');
+ my $tty = '/dev/tty';
my $n = 0;
- open(my $IN, $tty) or die "can not open $tty\n";
+ open(my $IN, $tty) or die "cannot open $tty\n";
local $_;
while (<>) {
if (++$n == 25) {
@@ -290,15 +289,6 @@ sub more {
}
}
-sub modprobe {
- my ($h) = getopts(\@_, qw(h));
- $h || @_ == 0 and die "usage: modprobe <module> [options]\n";
- my $name = shift;
- require modules;
- modules::load_dependencies("/modules/modules.dep");
- modules::load_with_options([ $name ], { $name => join(' ', @_) });
-}
-
sub route {
@_ == 0 or die "usage: route\nsorry, no modification handled\n";
my ($titles, @l) = cat_("/proc/net/route");
@@ -373,7 +363,7 @@ sub dmesg() { print cat_("/tmp/syslog") }
sub sort {
my ($n, $h) = getopts(\@_, qw(nh));
$h and die "usage: sort [-n] [<file>]\n";
- my $fh = @_ ? common::open_file($_[0]) || die "error: can not open file $_[0]\n" : *STDIN;
+ my $fh = @_ ? common::open_file($_[0]) || die "error: cannot open file $_[0]\n" : *STDIN;
if ($n) {
print(sort { $a <=> $b } <$fh>);
} else {
@@ -401,7 +391,7 @@ sub bug {
require any;
require modules;
- modules::load_dependencies("/modules/modules.dep");
+ list_modules::load_default_moddeps();
my $part;
if ($o_part_device) {
@@ -411,8 +401,11 @@ sub bug {
my $in = interactive::stdio->new;
require install::any;
+ my @devs = install::any::removable_media__early_in_install();
+ @devs or die "You need to plug a removable medium (USB key, floppy, ...)\n";
+
$part = $in->ask_from_listf('', "Which device?", \&partition_table::description,
- [ install::any::removable_media__early_in_install() ] ) or return;
+ \@devs) or return;
}
warn "putting file report.bug on $part->{device}\n";
diff --git a/perl-install/install/ftp.pm b/perl-install/install/ftp.pm
index 292fd2d3d..c69cdab25 100644
--- a/perl-install/install/ftp.pm
+++ b/perl-install/install/ftp.pm
@@ -1,4 +1,4 @@
-package install::ftp; # $Id$
+package install::ftp;
use Net::FTP;
diff --git a/perl-install/install/gtk.pm b/perl-install/install/gtk.pm
index b12245ac9..f878e42d9 100644
--- a/perl-install/install/gtk.pm
+++ b/perl-install/install/gtk.pm
@@ -1,18 +1,20 @@
-package install::gtk; # $Id$
+package install::gtk;
use diagnostics;
use strict;
-use ugtk2;
-use mygtk2;
+use ugtk3;
+use mygtk3;
use common;
use lang;
use devices;
+use detect_devices;
#-#####################################################################################
#-INTERN CONSTANT
#-#####################################################################################
+# FIXME: either drop 'doc' option or convert this to CSS!
#- if we're running for the doc team, we want screenshots with
#- a good B&W contrast: we'll override values of our theme
my $theme_overriding_for_doc = q(style "galaxy-default"
@@ -52,13 +54,15 @@ widget "*logo*" style "background-logo"
);
#------------------------------------------------------------------------------
-sub load_rc {
+sub load_css {
my ($o, $name) = @_;
my $f = $name;
- -r $name or $f = find { -r $_ } map { "$_/themes-$name.rc" } ("share", $ENV{SHARE_PATH}, dirname(__FILE__) . '/..');
+ -r $name or $f = find { -r $_ } map { "$_/themes-$name.css" } ("share", $ENV{SHARE_PATH}, dirname(__FILE__) . '/..');
if ($f) {
- Gtk2::Rc->parse_string($o->{doc} ? $theme_overriding_for_doc : scalar cat_($f));
+ my $pl = Gtk3::CssProvider->new;
+ $pl->load_from_data($o->{doc} ? $theme_overriding_for_doc : scalar cat_($f));
+ Gtk3::StyleContext::add_provider_for_screen(Gtk3::Gdk::Screen::get_default(), $pl, Gtk3::STYLE_PROVIDER_PRIORITY_APPLICATION);
}
}
@@ -66,20 +70,21 @@ sub load_rc {
sub load_font {
my ($o) = @_;
- if (lang::text_direction_rtl()) {
- Gtk2::Widget->set_default_direction('rtl');
+ if (defined($::WizardWindow) && lang::text_direction_rtl()) {
+ Gtk3::Widget::set_default_direction('rtl');
my ($x, $y) = $::WizardWindow->get_position;
my ($width) = $::WizardWindow->get_size;
$::WizardWindow->move($::rootwidth - $width - $x, $y);
}
- Gtk2::Rc->parse_string(q(
-style "default-font"
-{
- font_name = ") . lang::l2pango_font($o->{locale}{lang}) . q("
-}
-widget "*" style "default-font"
-
+ my $font = lang::l2pango_font($o->{locale}{lang});
+ my $s = qq(gtk-font-name = $font);
+ my $pl = Gtk3::CssProvider->new;
+ $pl->load_from_data(sprintf("GtkWindow { %s }", lang::l2css_font($o->{locale}{lang})));
+ Gtk3::StyleContext::add_provider_for_screen(Gtk3::Gdk::Screen::get_default(), $pl, Gtk3::STYLE_PROVIDER_PRIORITY_APPLICATION);
+ # FIXME: this should be done in /mnt too for forked app such as gurpmi{,.addmedia} (mga#67):
+ output("/.config/gtk-3.0/settings.ini", qq([Settings]
+$s
));
}
@@ -89,15 +94,25 @@ sub default_theme {
$o->{simple_themes} || $o->{vga16} ? 'blue' : 'galaxy';
}
+my $root_window;
+
sub install_theme {
my ($o) = @_;
- load_rc($o, $o->{theme} ||= default_theme($o));
+ load_css($o, $o->{theme} ||= default_theme($o));
load_font($o);
- my $win = gtknew('Window', widget_name => 'background');
- $win->realize;
- mygtk2::set_root_window_background_with_gc($win->style->bg_gc('normal'));
+ my $win = gtknew('Window', widget_name => 'background', title => 'root window');
+ $win->set_type_hint('desktop'); # for matchbox window manager
+ $win->realize;
+ $root_window = $win;
+}
+
+sub create_step_box {
+ gtknew('HBox', spacing => 0, children => [
+ @_,
+ 0, gtknew('Alignment', width => 24),
+ ]);
}
#------------------------------------------------------------------------------
@@ -105,34 +120,52 @@ my %steps;
sub create_steps_window {
my ($o) = @_;
- return if $::stepswidth == 0;
-
$o->{steps_window} and $o->{steps_window}->destroy;
$steps{$_} ||= gtknew('Pixbuf', file => "steps_$_") foreach qw(on off done);
+
my $category = sub {
- gtknew('HBox', children_tight => [
- gtknew('Label', text_markup => '<b>' . $_[0] . '</b>', widget_name => 'Step-categories')
- ]);
+ create_step_box(
+ 1, gtknew('Label_Right', text_markup => '<b>' . uc($_[0]) . '</b>', widget_name => 'Step-categories'),
+ );
};
- my @l = $category->(N("Installation"));
+ my @l = (
+ $category->(N("Installation"))
+ );
foreach (grep { !eval $o->{steps}{$_}{hidden} } @{$o->{orderedSteps}}) {
if ($_ eq 'setRootPassword_addUser') {
push @l, '', $category->(N("Configuration"));
}
my $img = gtknew('Image', file => 'steps_off.png');
$steps{steps}{$_}{img} = $img;
- $steps{steps}{$_}{raw_text} = translate($o->{steps}{$_}{text});
- push @l, gtknew('HBox', spacing => 7, children_tight => [ '', '', $img, $steps{steps}{$_}{text} = gtknew('Label', text => $steps{steps}{$_}{raw_text}) ]);
+ push @l, create_step_box(
+ 1, $steps{steps}{$_}{text} = gtknew('Label_Right', text => translate($o->{steps}{$_}{text})),
+ 0, gtknew('Alignment', width => 6),
+ 0, $img,
+ );
}
- my $offset = 20;
- $o->{steps_window} =
- gtknew('Window', width => ($::stepswidth - $offset), widget_name => 'Steps',
- position => [ lang::text_direction_rtl() ? $::rootwidth - $::stepswidth : $offset, 150 ],
- child => gtknew('VBox', spacing => 6, children_tight => \@l));
- $o->{steps_window}->show;
+ my $offset = 10;
+ $o->{steps_widget} =
+ gtknew('MDV_Notebook', widget_name => 'Steps', children => [
+ # 145 is the vertical offset in order to be below the actual logo:
+ [ gtknew('VBox', spacing => 6, width => ($::stepswidth - $offset), children_tight => \@l), 0, 145 ]
+ ]);
+
+ $root_window->add(
+ $o->{steps_window} =
+ gtknew('HBox',
+ children =>
+ [
+ if_($::stepswidth != 0, 0, $o->{steps_widget}),
+ 1, gtknew('Label', width => -1, height => -1),
+ ],
+ )
+ );
+
+ $root_window->set_position('GTK_WIN_POS_CENTER_ALWAYS');
+ $root_window->show_all;
}
sub update_steps_position {
@@ -142,43 +175,30 @@ sub update_steps_position {
foreach (@{$o->{orderedSteps}}) {
exists $steps{steps}{$_} or next;
if ($o->{steps}{$_}{entered} && !$o->{steps}{$_}{done}) {
- $steps{steps}{$_}{img}->set_from_pixbuf($steps{on});
- $steps{steps}{$_}{text}->set_markup('<b><i>' . $steps{steps}{$_}{raw_text} . '</i></b>');
- if ($last_step) {
- $steps{steps}{$last_step}{img}->set_from_pixbuf($steps{done});
- $steps{steps}{$last_step}{text}->set_markup('<b>' . $steps{steps}{$last_step}{raw_text} . '</b>');
- }
+ # we need to flush the X queue since else we got a temporary Y position of -1 when switching locales:
+ mygtk3::flush(); #- for auto_installs which never go through the Gtk3 main loop
+ $o->{steps_widget}->move_selection($steps{steps}{$_}{text});
+
+ if ($last_step) {
+ $steps{steps}{$last_step}{img}->set_from_pixbuf($steps{done});
+ }
return;
}
- $last_step = $_;
+ $last_step = $_;
}
- mygtk2::flush(); #- for auto_installs which never go through the Gtk2 main loop
-}
-
-#------------------------------------------------------------------------------
-sub create_logo_window {
- my ($o) = @_;
-
- return if $::logowidth == 0;
-
- mygtk2::may_destroy($o->{logo_window});
-
- my $file = "logo-mandriva.png";
-
- $o->{logo_window} =
- gtknew('Window',
- width => $::logowidth, height => $::logoheight,
- widget_name => 'logo',
- child => gtknew('Image', file => $file),
- );
- $o->{logo_window}->show;
+ mygtk3::flush(); #- for auto_installs which never go through the Gtk3 main loop
}
#------------------------------------------------------------------------------
sub init_gtk {
my ($o) = @_;
- symlink("/tmp/stage2/etc/$_", "/etc/$_") foreach qw(gtk-2.0 pango fonts);
+ symlink("/tmp/stage2/etc/$_", "/etc/$_") foreach qw(gtk-3.0 pango fonts);
+
+ # Custom _global_ CSS:
+ mkdir_p("/.config/gtk-3.0"); # TODO/FIXME: set ENV{HOME} ?
+ # FIXME: this should be done in /mnt too for forked app such as gurpmi{,.addmedia} (mga#67):
+ symlinkf('/usr/lib/libDrakX/gtk.css', '/.config/gtk-3.0/gtk.css');
if ($o->{vga16}) {
#- inactivate antialias in VGA16 because it makes fonts look worse
@@ -191,18 +211,19 @@ q(<fontconfig>
$ENV{FONTCONFIG_FILE} = '/tmp/fonts.conf';
}
- Gtk2->init;
- Gtk2->set_locale;
+ Gtk3->init;
+ c::init_setlocale();
}
#------------------------------------------------------------------------------
sub init_sizes {
my ($o) = @_;
- ($::rootwidth, $::rootheight) = (Gtk2::Gdk->screen_width, Gtk2::Gdk->screen_height);
- $::stepswidth = $::rootwidth <= 640 ? 0 : 200;
- ($::logowidth, $::logoheight) = $::rootwidth <= 640 ? (0, 0) : (800, 75);
- ($o->{windowwidth}, $o->{windowheight}) = ($::rootwidth - $::stepswidth, $::rootheight - $::helpheight - $::logoheight);
- ($::real_windowwidth, $::real_windowheight) = (576, 418);
+ ($::rootwidth, $::rootheight) = (Gtk3::Gdk::Screen::width, Gtk3::Gdk::Screen::height);
+ $::stepswidth = $::rootwidth <= 640 ? 0 : 196;
+ ($o->{windowwidth}, $o->{windowheight}) = ($::rootwidth - $::stepswidth, $::rootheight);
+ # Adapt the window size to available screen width and height.
+ $::real_windowwidth = $::rootwidth > 800 ? 800 : 576;
+ $::real_windowheight = $::rootheight > 600 ? 633 : 465;
}
sub handle_unsafe_mouse {
@@ -220,49 +241,39 @@ sub handle_unsafe_mouse {
sub special_shortcuts {
my (undef, $event) = @_;
- my $d = ${{ $Gtk2::Gdk::Keysyms{F2} => 'screenshot', $Gtk2::Gdk::Keysyms{Home} => 'restart' }}{$event->keyval};
+ my $d = ${{ Gtk3::Gdk::KEY_F2 => 'screenshot', Gtk3::Gdk::KEY_Home => 'restart' }}{$event->keyval};
if ($d eq 'screenshot') {
+ # FIXME: should handle the fact it doesn't work when chrooted by urpmi during transaction:
install::any::take_screenshot($::o);
} elsif ($d eq 'restart' && member('control-mask', @{$event->state}) && member('mod1-mask', @{$event->state})) {
log::l("restarting install");
- ugtk2->exit(0x35);
+ ugtk3->exit(0x35);
}
0;
}
#------------------------------------------------------------------------------
sub createXconf {
- my ($file, $mouse_type, $mouse_dev, $_wacom_dev, $Driver) = @_;
-
- symlinkf(devices::make($mouse_dev), "/dev/mouse") if $mouse_dev ne 'none';
-
- #- needed for imlib to start on 8-bit depth visual.
- symlink("/tmp/stage2/etc/imrc", "/etc/imrc");
- symlink("/tmp/stage2/etc/im_palette.pal", "/etc/im_palette.pal");
+ my ($file, $Driver) = @_;
#- remove "error opening security policy file" warning
symlink("/tmp/stage2/etc/X11", "/etc/X11");
-if ($Driver) {
- output($file, sprintf(<<'END', 'Option "XkbDisable"', $mouse_type, $Driver, $Driver eq 'fbdev' ? '"default"' : '"800x600" "640x480"'));
-Section "Files"
- FontPath "/usr/share/fonts:unscaled"
+ return if !$Driver;
+
+ # grub2-efi init framebuffer in 1024x768, we must stay in sync or loading fails
+ my $resolution = $Driver eq 'fbdev' ? is_uefi() ? '"1024x768"' : '"default"' : '"800x600" "640x480"';
+ # efi framebuffer wants 24 bit
+ my $depth = is_uefi() ? '24' : '16';
+ output($file, qq(Section "ServerFlags"
EndSection
-Section "InputDevice"
- Identifier "Keyboard"
- Driver "keyboard"
- %s
- Option "XkbModel" "pc105"
- Option "XkbLayout" ""
+Section "Module"
+ Disable "glx"
EndSection
-Section "InputDevice"
- Identifier "Mouse"
- Driver "mouse"
- Option "Protocol" "%s"
- Option "Device" "/dev/mouse"
- Option "ZAxisMapping" "4 5"
+Section "Files"
+ FontPath "/usr/share/fonts:unscaled"
EndSection
Section "Monitor"
@@ -273,29 +284,29 @@ EndSection
Section "Device"
Identifier "device"
- Driver "%s"
+ Driver "$Driver"
EndSection
Section "Screen"
Identifier "screen"
Device "device"
Monitor "monitor"
- DefaultColorDepth 16
+ DefaultColorDepth $depth
Subsection "Display"
- Depth 16
- Modes %s
+ Depth $depth
+ Modes $resolution
EndSubsection
EndSection
Section "ServerLayout"
+ Option "BlankTime" "0"
+ Option "StandbyTime" "0"
+ Option "SuspendTime" "0"
+ Option "OffTime" "0"
Identifier "layout"
Screen "screen"
- InputDevice "Mouse" "CorePointer"
- InputDevice "Keyboard" "CoreKeyboard"
EndSection
-
-END
- }
+));
}
1;
diff --git a/perl-install/install/help/Makefile b/perl-install/install/help/Makefile
index cca58ff11..54fee2180 100644
--- a/perl-install/install/help/Makefile
+++ b/perl-install/install/help/Makefile
@@ -1,7 +1,7 @@
help:
@if [ ! -d doc ]; then \
echo "Checking out doc stuff now ..."; \
- cvs -d :ext:cvs.mandriva.com:/cooker co doc/manualB/{entities,manuals,modules}; \
+ cvs -d :ext:svn.mageia.org:/cauldron co doc/manualB/{entities,manuals,modules}; \
else \
echo "Updating doc stuff now ..."; \
cd doc ; cvs update manualB/{entities,manuals,modules}; \
diff --git a/perl-install/install/help/help.pm b/perl-install/install/help/help.pm
index 70aa3a785..e2e5e8f06 100644
--- a/perl-install/install/help/help.pm
+++ b/perl-install/install/help/help.pm
@@ -8,11 +8,11 @@ push @::textdomains, 'DrakX-help';
# IMPORTANT: Do not edit this File - It is automatically generated
# from the manuals !!!
-# Write a mail to <documentation@mandriva.com> if
+# Write a mail to <contact@mageia.org> if
# you want it changed.
sub acceptLicense() {
N("Before continuing, you should carefully read the terms of the license. It
-covers the entire Mandriva Linux distribution. If you agree with all the
+covers the entire Mageia distribution. If you agree with all the
terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"
button will reboot your computer.", N("Accept"), N("Quit"));
}
@@ -54,7 +54,7 @@ security), choose the desired user and window manager, then click on
\"%s\". If you're not interested in this feature, uncheck the \"%s\" box.", N("User name"), N("Accept user"), N("Next"), N("Advanced"), N("Next"), N("Do you want to use this feature?"));
}
sub ask_mntpoint_s() {
- N("Listed here are the existing Linux partitions detected on your hard drive.
+ N("Listed here are the existing Linux partitions detected on your hard disk drive.
You can keep the choices made by the wizard, since they are good for most
common installations. If you make any changes, you must at least define a
root partition (\"/\"). Do not choose too small a partition or you will not
@@ -64,40 +64,40 @@ separate partition, you will also need to create a \"/home\" partition
Each partition is listed as follows: \"Name\", \"Capacity\".
-\"Name\" is structured: \"hard drive type\", \"hard drive number\",
+\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number\",
\"partition number\" (for example, \"hda1\").
-\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and
-\"sd\" if it is a SCSI hard drive.
+\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard disk drive and
+\"sd\" if it is a SCSI hard disk drive.
-\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE
-hard drives:
+\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For IDE
+hard disk drives:
- * \"a\" means \"master hard drive on the primary IDE controller\";
+ * \"a\" means \"master hard disk drive on the primary IDE controller\";
- * \"b\" means \"slave hard drive on the primary IDE controller\";
+ * \"b\" means \"slave hard disk drive on the primary IDE controller\";
- * \"c\" means \"master hard drive on the secondary IDE controller\";
+ * \"c\" means \"master hard disk drive on the secondary IDE controller\";
- * \"d\" means \"slave hard drive on the secondary IDE controller\".
+ * \"d\" means \"slave hard disk drive on the secondary IDE controller\".
-With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means
+With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means
\"second lowest SCSI ID\", etc.");
}
sub chooseCd() {
- N("The Mandriva Linux installation is distributed on several CD-ROMs. If a
+ N("The Mageia installation is distributed on several CD-ROMs. If a
selected package is located on another CD-ROM, DrakX will eject the current
CD and ask you to insert the required one. If you do not have the requested
CD at hand, just click on \"%s\", the corresponding packages will not be
-installed.", N("Cancel"));
+installed.", N("Mageia"), N("Cancel"));
}
sub choosePackages() {
N("It's now time to specify which programs you wish to install on your system.
-There are thousands of packages available for Mandriva Linux, and to make it
+There are thousands of packages available for Mageia, and to make it
simpler to manage, they have been placed into groups of similar
applications.
-Mandriva Linux sorts package groups in four categories. You can mix and
+Mageia sorts package groups in four categories. You can mix and
match applications from the various categories, so a ``Workstation''
installation can still have applications from the ``Server'' category
installed.
@@ -110,8 +110,7 @@ appropriate groups from that category. The special \"LSB\" group will
configure your system so that it complies as much as possible with the
Linux Standard Base specifications.
- Selecting the \"LSB\" group will also install the \"2.4\" kernel series,
-instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance
+ Selecting the \"LSB\" group will ensure 100%%-LSB compliance
of the system. However, if you do not select the \"LSB\" group you will
still have a system which is nearly 100%% LSB-compliant.
@@ -160,10 +159,10 @@ right to let you know the purpose of that package.
!! If a server package has been selected, either because you specifically
chose the individual package or because it was part of a group of packages,
you'll be asked to confirm that you really want those servers to be
-installed. By default Mandriva Linux will automatically start any installed
+installed. By default Mageia will automatically start any installed
services at boot time. Even if they are safe and have no known issues at
the time the distribution was shipped, it is entirely possible that
-security holes were discovered after this version of Mandriva Linux was
+security holes were discovered after this version of Mageia was
finalized. If you do not know what a particular service is supposed to do or
why it's being installed, then click \"%s\". Clicking \"%s\" will install
the listed services and they will be started automatically at boot time. !!
@@ -227,7 +226,7 @@ best suits your needs.");
sub configureX_chooser() {
N("X (for X Window System) is the heart of the GNU/Linux graphical interface
on which all the graphical environments (KDE, GNOME, AfterStep,
-WindowMaker, etc.) bundled with Mandriva Linux rely upon.
+WindowMaker, etc.) bundled with Mageia rely upon.
You'll see a list of different parameters to change to get an optimal
graphical display.
@@ -310,39 +309,39 @@ want to check \"%s\" if your machine is to act as a server, or if you were
not successful in getting the display configured.", N("No"));
}
sub doPartitionDisks() {
- N("You now need to decide where you want to install the Mandriva Linux
-operating system on your hard drive. If your hard drive is empty or if an
+ N("You now need to decide where you want to install the Mageia
+operating system on your hard disk drive. If your hard disk drive is empty or if an
existing operating system is using all the available space you will have to
-partition the drive. Basically, partitioning a hard drive means to
+partition the drive. Basically, partitioning a hard disk drive means to
logically divide it to create the space needed to install your new
-Mandriva Linux system.
+Mageia system.
-Because the process of partitioning a hard drive is usually irreversible
+Because the process of partitioning a hard disk drive is usually irreversible
and can lead to data losses, partitioning can be intimidating and stressful
for the inexperienced user. Fortunately, DrakX includes a wizard which
simplifies this process. Before continuing with this step, read through the
rest of this section and above all, take your time.
-Depending on the configuration of your hard drive, several options are
+Depending on the configuration of your hard disk drive, several options are
available:
* \"%s\". This option will perform an automatic partitioning of your blank
drive(s). If you use this option there will be no further prompts.
* \"%s\". The wizard has detected one or more existing Linux partitions on
-your hard drive. If you want to use them, choose this option. You will then
+your hard disk drive. If you want to use them, choose this option. You will then
be asked to choose the mount points associated with each of the partitions.
The legacy mount points are selected by default, and for the most part it's
a good idea to keep them.
- * \"%s\". If Microsoft Windows is installed on your hard drive and takes
+ * \"%s\". If Microsoft Windows is installed on your hard disk drive and takes
all the space available on it, you will have to create free space for
GNU/Linux. To do so, you can delete your Microsoft Windows partition and
data (see ``Erase entire disk'' solution) or resize your Microsoft Windows
FAT or NTFS partition. Resizing can be performed without the loss of any
data, provided you've previously defragmented the Windows partition.
Backing up your data is strongly recommended. Using this option is
-recommended if you want to use both Mandriva Linux and Microsoft Windows on
+recommended if you want to use both Mageia and Microsoft Windows on
the same computer.
Before choosing this option, please understand that after this
@@ -351,13 +350,13 @@ than when you started. You'll have less free space under Microsoft Windows
to store your data or to install new software.
* \"%s\". If you want to delete all data and all partitions present on
-your hard drive and replace them with your new Mandriva Linux system, choose
+your hard disk drive and replace them with your new Mageia system, choose
this option. Be careful, because you will not be able to undo this operation
after you confirm.
!! If you choose this option, all data on your disk will be deleted. !!
- * \"%s\". This option appears when the hard drive is entirely taken by
+ * \"%s\". This option appears when the hard disk drive is entirely taken by
Microsoft Windows. Choosing this option will simply erase everything on the
drive and begin fresh, partitioning everything from scratch.
@@ -368,7 +367,8 @@ drive. Be careful -- it is a powerful but dangerous choice and you can very
easily lose all your data. That's why this option is really only
recommended if you have done something like this before and have some
experience. For more instructions on how to use the DiskDrake utility,
-refer to the ``Managing Your Partitions'' section in the ``Starter Guide''.", N("Use free space"), N("Use existing partition"), N("Use the free space on the Microsoft Windows® partition"), N("Erase entire disk"), N("Remove Microsoft Windows®"), N("Custom disk partitioning"));
+refer to the ``Managing Your Partitions'' section in the ``Starter Guide''.",
+N("Mageia"), N("Use free space"), N("Use existing partition"), N("Use the free space on the Microsoft Windows® partition"), N("Erase entire disk"), N("Remove Microsoft Windows®"), N("Custom disk partitioning"));
}
sub exitInstall() {
N("There you are. Installation is now complete and your GNU/Linux system is
@@ -422,13 +422,13 @@ will not be able to recover it.
Click on \"%s\" when you're ready to format the partitions.
Click on \"%s\" if you want to choose another partition for your new
-Mandriva Linux operating system installation.
+Mageia operating system installation.
Click on \"%s\" if you wish to select partitions which will be checked for
bad blocks on the disk.", N("Next"), N("Previous"), N("Advanced"));
}
sub installUpdates() {
- N("By the time you install Mandriva Linux, it's likely that some packages will
+ N("By the time you install Mageia, it's likely that some packages will
have been updated since the initial release. Bugs may have been fixed,
security issues resolved. To allow you to benefit from these updates,
you're now able to download them from the Internet. Check \"%s\" if you
@@ -438,7 +438,7 @@ updated packages later.
Choosing \"%s\" will display a list of web locations from which updates can
be retrieved. You should choose one near to you. A package-selection tree
will appear: review the selection, and press \"%s\" to retrieve and install
-the selected package(s), or \"%s\" to abort.", N("Yes"), N("No"), N("Yes"), N("Install"), N("Cancel"));
+the selected package(s), or \"%s\" to abort.", N("Mageia"), N("Yes"), N("No"), N("Yes"), N("Install"), N("Cancel"));
}
sub miscellaneous() {
N("At this point, DrakX will allow you to choose the security level you desire
@@ -448,7 +448,7 @@ exposed to the Internet. The trade-off that a higher security level is
generally obtained at the expense of ease of use.
If you do not know what to choose, keep the default option. You'll be able
-to change it later with the draksec tool, which is part of Mandriva Linux
+to change it later with the draksec tool, which is part of Mageia
Control Center.
Fill the \"%s\" field with the e-mail address of the person responsible for
@@ -456,21 +456,21 @@ security. Security messages will be sent to that address.", N("Security Administ
}
sub partition_with_diskdrake() {
N("At this point, you need to choose which partition(s) will be used for the
-installation of your Mandriva Linux system. If partitions have already been
+installation of your Mageia system. If partitions have already been
defined, either from a previous installation of GNU/Linux or by another
-partitioning tool, you can use existing partitions. Otherwise, hard drive
+partitioning tool, you can use existing partitions. Otherwise, hard disk drive
partitions must be defined.
-To create partitions, you must first select a hard drive. You can select
+To create partitions, you must first select a hard disk drive. You can select
the disk for partitioning by clicking on ``hda'' for the first IDE drive,
``hdb'' for the second, ``sda'' for the first SCSI drive and so on.
-To partition the selected hard drive, you can use these options:
+To partition the selected hard disk drive, you can use these options:
- * \"%s\": this option deletes all partitions on the selected hard drive
+ * \"%s\": this option deletes all partitions on the selected hard disk drive
- * \"%s\": this option enables you to automatically create ext3 and swap
-partitions in the free space of your hard drive
+ * \"%s\": this option enables you to automatically create ext4 and swap
+partitions in the free space of your hard disk drive
\"%s\": gives access to additional features:
@@ -486,21 +486,21 @@ using this option. Please be careful and remember that it does not always
work.
* \"%s\": discards all changes and reloads the partition table that was
-originally on the hard drive.
+originally on the hard disk drive.
* \"%s\": un-checking this option will force users to manually mount and
unmount removable media such as floppies and CD-ROMs.
* \"%s\": use this option if you wish to use a wizard to partition your
-hard drive. This is recommended if you do not have a good understanding of
+hard disk drive. This is recommended if you do not have a good understanding of
partitioning.
* \"%s\": use this option to cancel your changes.
* \"%s\": allows additional actions on partitions (type, options, format)
-and gives more information about the hard drive.
+and gives more information about the hard disk drive.
- * \"%s\": when you are finished partitioning your hard drive, this will
+ * \"%s\": when you are finished partitioning your hard disk drive, this will
save your changes back to disk.
When defining the size of a partition, you can finely set the partition
@@ -517,44 +517,39 @@ When a partition is selected, you can use:
* Ctrl-m to set the mount point
-To get information about the different file system types available, please
+To get information about the different filesystem types available, please
read the ext2FS chapter from the ``Reference Manual''.
-
-If you are installing on a PPC machine, you will want to create a small HFS
-``bootstrap'' partition of at least 1MB which will be used by the yaboot
-bootloader. If you opt to make the partition a bit larger, say 50MB, you
-may find it a useful place to store a spare kernel and ramdisk images for
-emergency boot situations.", N("Clear all"), N("Auto allocate"), N("More"), N("Save partition table"), N("Restore partition table"), N("Rescue partition table"), N("Reload partition table"), N("Removable media auto-mounting"), N("Wizard"), N("Undo"), N("Toggle between normal/expert mode"), N("Done"));
+", N("Clear all"), N("Auto allocate"), N("More"), N("Save partition table"), N("Restore partition table"), N("Rescue partition table"), N("Reload partition table"), N("Removable media auto-mounting"), N("Wizard"), N("Undo"), N("Toggle between normal/expert mode"), N("Done"));
}
sub resizeFATChoose() {
- N("More than one Microsoft partition has been detected on your hard drive.
+ N("More than one Microsoft partition has been detected on your hard disk drive.
Please choose the one which you want to resize in order to install your new
-Mandriva Linux operating system.
+Mageia operating system.
Each partition is listed as follows: \"Linux name\", \"Windows name\"
\"Capacity\".
-\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",
+\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive number\",
\"partition number\" (for example, \"hda1\").
-\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and
-\"sd\" if it is a SCSI hard drive.
+\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk drive and
+\"sd\" if it is a SCSI hard disk drive.
-\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE
-hard drives:
+\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With IDE
+hard disk drives:
- * \"a\" means \"master hard drive on the primary IDE controller\";
+ * \"a\" means \"master hard disk drive on the primary IDE controller\";
- * \"b\" means \"slave hard drive on the primary IDE controller\";
+ * \"b\" means \"slave hard disk drive on the primary IDE controller\";
- * \"c\" means \"master hard drive on the secondary IDE controller\";
+ * \"c\" means \"master hard disk drive on the secondary IDE controller\";
- * \"d\" means \"slave hard drive on the secondary IDE controller\".
+ * \"d\" means \"slave hard disk drive on the secondary IDE controller\".
-With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means
+With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means
\"second lowest SCSI ID\", etc.
-\"Windows name\" is the letter of your hard drive under Windows (the first
+\"Windows name\" is the letter of your hard disk drive under Windows (the first
disk or partition is called \"C:\").");
}
sub selectCountry() {
@@ -567,22 +562,22 @@ sub selectInstallClass() {
found on your machine.
DrakX now needs to know if you want to perform a new installation or an
-upgrade of an existing Mandriva Linux system:
+upgrade of an existing Mageia system:
* \"%s\". For the most part, this completely wipes out the old system.
However, depending on your partitioning scheme, you can prevent some of
your existing data (notably \"home\" directories) from being over-written.
-If you wish to change how your hard drives are partitioned, or to change
-the file system, you should use this option.
+If you wish to change how your hard disk drives are partitioned, or to change
+the filesystem, you should use this option.
* \"%s\". This installation class allows you to update the packages
-currently installed on your Mandriva Linux system. Your current partitioning
+currently installed on your Mageia system. Your current partitioning
scheme and user data will not be altered. Most of the other configuration
steps remain available and are similar to a standard installation.
-Using the ``Upgrade'' option should work fine on Mandriva Linux systems
+Using the ``Upgrade'' option should work fine on Mageia systems
running version \"8.1\" or later. Performing an upgrade on versions prior
-to Mandriva Linux version \"8.1\" is not recommended.", N("Install"), N("Upgrade"));
+to Mageia version \"8.1\" is not recommended.", N("Install"), N("Upgrade"));
}
sub selectKeyboard() {
N("Depending on the language you chose (), DrakX will automatically select a
@@ -617,7 +612,7 @@ the tree view and \"%s\" in the Advanced section.
About UTF-8 (unicode) support: Unicode is a new character encoding meant to
cover all existing languages. However full support for it in GNU/Linux is
-still under development. For that reason, Mandriva Linux's use of UTF-8 will
+still under development. For that reason, Mageia's use of UTF-8 will
depend on the user's choices:
* If you choose a language with a strong legacy encoding (latin1
@@ -693,14 +688,14 @@ OS installed on your machine.
* if a GRUB or LILO boot sector is found, it'll replace it with a new one.
-If DrakX can not determine where to place the boot sector, it'll ask you
+If DrakX cannot determine where to place the boot sector, it'll ask you
where it should place it. Generally, the \"%s\" is the safest place.
Choosing \"%s\" will not install any boot loader. Use this option only if you
know what you're doing.", N("First sector of drive (MBR)"), N("Skip"));
}
sub setupDefaultSpooler() {
N("Now, it's time to select a printing system for your computer. Other
-operating systems may offer you one, but Mandriva Linux offers two. Each of
+operating systems may offer you one, but Mageia offers two. Each of
the printing systems is best suited to particular types of configuration.
* \"%s\" -- which is an acronym for ``print, do not queue'', is the choice
@@ -721,7 +716,7 @@ emulate a \"lpd\" server, make sure you turn on the \"cups-lpd\" daemon.
options and for managing the printer.
If you make a choice now, and later find that you do not like your printing
-system you may change it by running PrinterDrake from the Mandriva Linux
+system you may change it by running PrinterDrake from the Mageia
Control Center and clicking on the \"%s\" button.", N("pdq"), N("pdq"), N("CUPS"), N("CUPS"), N("Expert"));
}
sub setupSCSI() {
@@ -730,7 +725,7 @@ also scan for one or more PCI SCSI cards on your system. If a SCSI card is
found, DrakX will automatically install the appropriate driver.
Because hardware detection is not foolproof, DrakX may fail in detecting
-your hard drives. If so, you'll have to specify your hardware by hand.
+your hard disk drives. If so, you'll have to specify your hardware by hand.
If you had to manually specify your PCI SCSI adapter, DrakX will ask if you
want to configure options for it. You should allow DrakX to probe the
@@ -786,7 +781,7 @@ the card if you feel the configuration is wrong.
* \"%s\": if you wish to configure your Internet or local network access,
you can do so now. Refer to the printed documentation or use the
-Mandriva Linux Control Center after the installation has finished to benefit
+Mageia Control Center after the installation has finished to benefit
from full in-line help.
* \"%s\": allows to configure HTTP and FTP proxy addresses if the machine
@@ -803,23 +798,23 @@ firewall settings.
* \"%s\": if you wish to change your bootloader configuration, click this
button. This should be reserved to advanced users. Refer to the printed
documentation or the in-line help about bootloader configuration in the
-Mandriva Linux Control Center.
+Mageia Control Center.
* \"%s\": through this entry you can fine tune which services will be run
on your machine. If you plan to use this machine as a server it's a good
idea to review this setup.", N("Configure"), N("Keyboard"), N("Country / Region"), N("Configure"), N("More"), N("Timezone"), N("Configure"), N("Mouse"), N("Sound card"), N("TV card"), N("Configure"), N("ISDN card"), N("Configure"), N("Graphical Interface"), N("Configure"), N("Network"), N("Proxies"), N("Security Level"), N("Firewall"), N("Bootloader"), N("Services"));
}
sub takeOverHdChoose() {
- N("Choose the hard drive you want to erase in order to install your new
-Mandriva Linux partition. Be careful, all data on this drive will be lost
+ N("Choose the hard disk drive you want to erase in order to install your new
+Mageia partition. Be careful, all data on this drive will be lost
and will not be recoverable!");
}
sub takeOverHdConfirm() {
N("Click on \"%s\" if you want to delete all data and partitions present on
-this hard drive. Be careful, after clicking on \"%s\", you will not be able
-to recover any data and partitions present on this hard drive, including
+this hard disk drive. Be careful, after clicking on \"%s\", you will not be able
+to recover any data and partitions present on this hard disk drive, including
any Windows data.
Click on \"%s\" to quit this operation without losing data and partitions
-present on this hard drive.", N("Next ->"), N("Next ->"), N("<- Previous"));
+present on this hard disk drive.", N("Next ->"), N("Next ->"), N("<- Previous"));
}
diff --git a/perl-install/install/help/help_xml2pm.pl b/perl-install/install/help/help_xml2pm.pl
index 742bd9b78..e0402fd6c 100755
--- a/perl-install/install/help/help_xml2pm.pl
+++ b/perl-install/install/help/help_xml2pm.pl
@@ -46,7 +46,7 @@ EOF
foreach my $id (keys %{$helps{$lang}}) {
# warn "Writing id=$id in lang=$lang\n";
$base->{$id} or warn "$lang:$id doesn't exist in english\n", next;
- print $F qq(# DO NOT BOTHER TO MODIFY HERE, SEE:\n# cvs.mandriva.com:/cooker/$dir/$lang/drakx-chapter.xml\n);
+ print $F qq(# DO NOT BOTHER TO MODIFY HERE, SEE:\n# svn.mageia.org:/cauldron/$dir/$lang/drakx-chapter.xml\n);
print_in_PO($F, $base->{$id}[0], $helps{$lang}{$id}[0]);
}
}
diff --git a/perl-install/install/help/po/.gitignore b/perl-install/install/help/po/.gitignore
new file mode 100644
index 000000000..cd1f2c943
--- /dev/null
+++ b/perl-install/install/help/po/.gitignore
@@ -0,0 +1 @@
+*.mo
diff --git a/perl-install/install/help/po/.tx/config b/perl-install/install/help/po/.tx/config
new file mode 100644
index 000000000..1e41c0d04
--- /dev/null
+++ b/perl-install/install/help/po/.tx/config
@@ -0,0 +1,8 @@
+[main]
+host = https://www.transifex.com
+
+[o:MageiaLinux:p:mageia:r:drakx_help]
+file_filter = <lang>.po
+source_file = DrakX-help.pot
+source_lang = en
+type = PO
diff --git a/perl-install/install/help/po/DrakX-help.pot b/perl-install/install/help/po/DrakX-help.pot
index 3b1f3f647..48524b132 100644
--- a/perl-install/install/help/po/DrakX-help.pot
+++ b/perl-install/install/help/po/DrakX-help.pot
@@ -8,19 +8,19 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../help.pm:14
#, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
@@ -68,13 +68,23 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr ""
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -84,31 +94,31 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
#: ../help.pm:88
#, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
@@ -119,12 +129,12 @@ msgstr ""
#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
+"There are thousands of packages available for Mageia, and to make "
"it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -137,8 +147,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -205,10 +214,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -234,16 +243,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr ""
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -281,7 +281,12 @@ msgid ""
"server which can be used by other machines on your local network as well."
msgstr ""
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr ""
@@ -305,7 +310,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -403,39 +408,39 @@ msgstr ""
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -444,7 +449,7 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
+"your hard disk drive and replace them with your new Mageia system, "
"choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
@@ -452,7 +457,7 @@ msgid ""
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -471,7 +476,12 @@ msgstr ""
msgid "Use existing partition"
msgstr ""
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr ""
@@ -519,7 +529,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr ""
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -539,7 +564,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -548,7 +573,7 @@ msgstr ""
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -571,7 +596,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -587,21 +612,21 @@ msgstr ""
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -617,21 +642,21 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -648,22 +673,41 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr ""
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr ""
@@ -671,34 +715,34 @@ msgstr ""
#: ../help.pm:536
#, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the first\n"
"disk or partition is called \"C:\")."
msgstr ""
@@ -718,23 +762,23 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
+"currently installed on your Mageia system. Your current "
"partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
#: ../help.pm:594
@@ -775,7 +819,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
+"still under development. For that reason, Mageia's use of UTF-8 "
"will\n"
"depend on the user's choices:\n"
"\n"
@@ -808,7 +852,12 @@ msgstr ""
msgid "Espanol"
msgstr ""
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -862,53 +911,7 @@ msgid ""
"Windows is named \"ttyS0\" under GNU/Linux."
msgstr ""
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr ""
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -922,7 +925,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -933,7 +936,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -954,7 +957,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
@@ -963,7 +966,12 @@ msgstr ""
msgid "pdq"
msgstr ""
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr ""
@@ -976,7 +984,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1021,11 +1029,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1043,7 +1046,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
+"Mageia Control Center after the installation has finished to "
"benefit\n"
"from full in-line help.\n"
"\n"
@@ -1061,14 +1064,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-#: ../help.pm:858
+#: ../help.pm:809
+#, c-format
+msgid "TV card"
+msgstr ""
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr ""
@@ -1081,8 +1089,8 @@ msgstr ""
#: ../help.pm:861
#, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
@@ -1090,12 +1098,12 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be able\n"
+"to recover any data and partitions present on this hard disk drive, including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
#: ../help.pm:872
diff --git a/perl-install/install/help/po/af.po b/perl-install/install/help/po/af.po
index 828c570a4..66b9f7757 100644
--- a/perl-install/install/help/po/af.po
+++ b/perl-install/install/help/po/af.po
@@ -11,10 +11,11 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX-af\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2005-04-21 17:33+0200\n"
"Last-Translator: Dirk van der Walt <dirkvanderwalt@webmail.co.za>\n"
"Language-Team: Afrikaans\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -22,15 +23,15 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Voordat u voortgaan, lees asb die lisensieterme noukeurig deur. Dit dek\n"
-"die hele Mandriva Linux distribusie. Indien u saamstem met al die\n"
+"die hele Mageia distribusie. Indien u saamstem met al die\n"
"voorwaardes daarin, merk die \"%s\" boksie. Indien nie, kan u op die\n"
"\"%s\" knoppie druk om teherlaai."
@@ -123,13 +124,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Wil u hierdie funksie gebruik?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -139,24 +151,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Hier is 'n lys van die bestaande Linux partisies wat opgespoor is.\n"
@@ -193,13 +209,13 @@ msgstr ""
#: ../help.pm:88
#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Die Mandriva Linux installasie is versprei oor 'n aantal CD-ROMs.DrakX\n"
+"Die Mageia installasie is versprei oor 'n aantal CD-ROMs.DrakX\n"
"weet wanneer 'n gekose pakket op 'n ander CD-ROM is. DrakX sal in so\n"
"geval die huidige CD uitskop en aandui watter een benodig word."
@@ -207,12 +223,11 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -225,8 +240,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -264,12 +278,12 @@ msgid ""
"megabytes."
msgstr ""
"Nou moet u spesifiseer watter programme u op die rekenaar wil\n"
-"installeer. Daar is duisende pakkette beskikbaar vir Mandriva Linux, en\n"
+"installeer. Daar is duisende pakkette beskikbaar vir Mageia, en\n"
"om alles meer eenvoudig te maak, is die pakkette gegroepeer onder\n"
"groepe van selfde tipe programme.\n"
"\n"
"Die groepe is so saamgestel dat dit saamval met die tipe gebruik van u\n"
-"rekenaar. Mandriva Linux het vier vooraf gespesifseerde installasies\n"
+"rekenaar. Mageia het vier vooraf gespesifseerde installasies\n"
"beskikbaar. Dink aan hierdie tipes as houers met verskillende pakkette.\n"
"U kan wel uit die verskillende houers, verskillende pakkette kies.\n"
"Dus kan u \"Werkstasie\" ook programme uit die \"Ontwikkeling\"\n"
@@ -336,10 +350,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -369,7 +383,7 @@ msgstr ""
"\n"
"Indien u 'n diensprogram kies, of dit nou deel is van 'n groepe pakkette of\n"
"'n enkel een, sal u gevra word om die installasie daarvan te bevestig.\n"
-"Mandriva Linux sal by verstek alle bediener-programme afskop nadat u die\n"
+"Mageia sal by verstek alle bediener-programme afskop nadat u die\n"
"rekenaar aangeskakel het. Hierdie bediener-programme is verpak sonder\n"
"enige probleme bekend. Dit kon intussen verander het, nadat sekuriteits-"
"gate\n"
@@ -398,19 +412,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Outomatiese-afhanklikhede"
-#: ../help.pm:186
-#, fuzzy, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": deur op die \"%s\" knoppie te klik, sal u toegang tot die 'printer\n"
-"configuration wizard' kry. Gaan gerus die ooreenstemde hoofstuk in die\n"
-"\"Starter Guide\" na vir meer inligting. Dit stem baie ooreen met die een."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, fuzzy, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -467,7 +469,12 @@ msgstr ""
"Internetkonneksie daarvoor benodig. Kies 'n bediener naby u. Hierdie opsie\n"
"laat u toe om hierdie rekenaar self as 'n tyd-bediener te gebruik."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Outotydsinkronisasie"
@@ -500,7 +507,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -668,39 +675,43 @@ msgstr ""
#: ../help.pm:319
#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -709,15 +720,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -730,11 +741,11 @@ msgid ""
"experience. For more instructions on how to use the DiskDrake utility,\n"
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
-"Op hierdie tydstip moet u besluit waar op die hardeskyf u Mandriva Linux\n"
+"Op hierdie tydstip moet u besluit waar op die hardeskyf u Mageia\n"
"wil installeer. Indien u 'n leë hardeskyf het, of indien 'n bestaande\n"
"bedryfstelsel al die beskikbare spasie gebruik, sal u partisies moet\n"
"skep. Om 'n partisie te skep veroorsaak dat u die hardeskyf logies\n"
-"verdeel, om spasie te skep vir u nuwe Mandriva Linux bedryfstelsel.\n"
+"verdeel, om spasie te skep vir u nuwe Mageia bedryfstelsel.\n"
"\n"
"Indien u 'n onervare gebruiker is, kan die skep van partisies vreemd en\n"
"intimiderend wees.\n"
@@ -764,14 +775,14 @@ msgstr ""
"geskied\n"
"sonner verlies van data, mits u die partisie gedefragmenteer het.Ons beveel "
"ten sterkste aan dat u 'n rugsteun maak van u data. Hierdie is\n"
-"die beste metode indien u beide Mandriva Linux en Microsoft Windows op die\n"
+"die beste metode indien u beide Mageia en Microsoft Windows op die\n"
"rekenaar wil gebruik.\n"
"\n"
"Neem tog kennis dat dit die beskikbare oop spasie in Microsoft Windows sal\n"
"verminder, aangesien ons plek moet maak vir Linux op die hardeskyf.\n"
"\n"
" * \"%s\": Indien u alle data op alle partisies op u hardeskyf wil uitwis,\n"
-"en dit dan vervang met Mandriva Linux, kan u hierdie opsie kies.\n"
+"en dit dan vervang met Mageia, kan u hierdie opsie kies.\n"
"Wees versigtig die opsie is onomkeerbaar!\n"
"\n"
" !! Net weer waarsku: alle data op die skyf sal vernietig word. !! \n"
@@ -791,7 +802,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Gebruik bestaande partisies"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Wis hele skyf"
@@ -868,7 +884,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Skep outo-installasieskyf"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -888,7 +919,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -919,7 +950,7 @@ msgstr ""
#: ../help.pm:437
#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -931,7 +962,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Teen die tyd wat u Mandriva Linux installeer, is dit hoogs waarskynlik\n"
+"Teen die tyd wat u Mageia installeer, is dit hoogs waarskynlik\n"
"dat van die pakkette intussen opgedateer is. Foute kom reggestel wees,\n"
"of sekuriteits probleme is dalk opgelos. Om voordeel hieruit te put, kan\n"
"u hulle nou van die Internet aflaai. Merk \"%s\" indien u 'n werkende\n"
@@ -952,7 +983,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -965,8 +996,7 @@ msgstr ""
"dit algemene gebruik op die rekenaar moeiliker maak.\n"
"\n"
"Indien u onseker is oor wat om te kies, bly by die verstek opsie. U\n"
-"kan altyd later die vlak verander deur draksec in die Mandriva Linux "
-"Control\n"
+"kan altyd later die vlak verander deur draksec in die Mageia Control\n"
"Center te grbruik.\n"
"\n"
"Die \"%s\" veld kan boodskappe stuur na 'n gekose persoon wat\n"
@@ -979,24 +1009,27 @@ msgid "Security Administrator"
msgstr "Sekuriteits-admin:"
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1012,21 +1045,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1043,17 +1078,11 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"Nou moet u asseblief besluit watter partisie(s) u gaan gebruik vir die\n"
-"installasie van u Mandriva Linux rekenaar.Indien die partisies reeds\n"
+"installasie van u Mageia rekenaar.Indien die partisies reeds\n"
"geskep is gedurende 'n vorige GNU/Linux installasie of deur 'n ander\n"
"partisie-program, kan u hulle gebruik.Indien nie, moet u eerstens\n"
"partisies skep.\n"
@@ -1066,7 +1095,7 @@ msgstr ""
"\n"
" * \"%s\": hierdie opsie wis alle partisies op die gekose skyf uit.\n"
"\n"
-" * \"%s\": hierdie opsie sal outomaties 'ext3' en 'swap' partisies in die\n"
+" * \"%s\": hierdie opsie sal outomaties 'ext4' en 'swap' partisies in die\n"
"vrye spasie op die hardeskyf skep.\n"
"\n"
"\"%s\": gee u toegang tot verdere keuses:\n"
@@ -1116,58 +1145,84 @@ msgstr ""
"Om inligting rakende die verskillende beskikbare lêerstelsels te bekom, "
"lees\n"
"asseblief die ext2FS hoofstuk in die \"Reference Manual\".\n"
-"\n"
-"Indien u op 'n PPC masjien installeer, sal u 'n klien HFS 'bootstrap'\n"
-"partisie van ten minste 1MB wil skep. Dit sal deur 'yaboot' herlaai-\n"
-" stelsel gebruik word. Maak dit bietjie groter vir spaar 'kernel' en\n"
-"'ramdisk' beelde vir hulp in nood situasies."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Outoheg van verwyderbare media"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Skakel tussen normale/kenner modus"
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Ons het meer as een Microsoft-partisie op u hardeskyf gevind.\n"
"Kies dan nou die een wie se grootte u wil verander, om plek te maak\n"
-"vir u nuwe Mandriva Linux bedryfstelsel.\n"
+"vir u nuwe Mageia bedryfstelsel.\n"
"\n"
"Elke partisie is as volg gelys: \"Linux-naam\", \"Windows-naam\"\n"
"\"Kapasiteit\".\n"
@@ -1216,29 +1271,29 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Hierdie stap word slegs gedoen indien ou GNU/Linux partisies op die\n"
"rekenaar gevind is.\n"
"\n"
"DrakX moet nou weet of u 'n nuwe installasie of 'n opgradering van 'n\n"
-"bestaande Mandriva Linux wil doen:\n"
+"bestaande Mageia wil doen:\n"
"\n"
" * \"%s\": Hierdie deel word grootliks gebruik vir 'n hele nuwe "
"installasie.\n"
@@ -1247,7 +1302,7 @@ msgstr ""
"van u partisies se data wil behou.\n"
"\n"
" * \"%s\": hierdie tipe installasie laat u toe om pakkette op te dateer\n"
-"wat deel uitmaak van u huidige Mandriva Linux installasie. Die partisies\n"
+"wat deel uitmaak van u huidige Mageia installasie. Die partisies\n"
"en gebruiker se data bly onveranderd. Ander stappe is baie dieselfde as\n"
"'n normale installasie.\n"
"\n"
@@ -1306,8 +1361,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1365,7 +1419,12 @@ msgstr ""
msgid "Espanol"
msgstr "Espanol"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, fuzzy, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1448,81 +1507,7 @@ msgstr ""
"Kies asb. die korrekte poort. Onthou dat COM1 onder MS Windows \n"
"ttyS0 onder GNU/Linux is."
-#: ../help.pm:691
-#, fuzzy, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Hierdie is die belangrikste oomblik vir u GNU/Linux-rekenaar se sekuriteit:\n"
-"u moet 'n wagwoord voorsien vir \"root\". \"Root\" is die supergebruiker "
-"wat\n"
-"dinge doen soos om die sagteware op te dateer, gebruikers by te voeg,\n"
-"en die konfigurasie te verander. \"Root\" kan alles doen! Hieroor moet\n"
-"u 'n deeglike wagwoord vir \"root\" kies - (DrakX sal jou tune as die wag-\n"
-"woord nie op spec is nie.) U kan wel die wagwoord uitlaat, maar dit word\n"
-"te sterkste afgeraai. GNU/Linux is net so vatbaar vir foute soos enige\n"
-"ander bedryfstelsel. Aangesien \"root\" geen perke het nie, kan hy/sy\n"
-"maklik skade aanrig as die persoon roekeloos handel. Dit moet dus\n"
-"moeilik wees vir 'n persoon om \"root\" te word.\n"
-"\n"
-"Die wagwoord behoort 'n mengsel van letters en syfers te wees en ten minste\n"
-"8 karakters lank te wees. Moet dit nie neerskryf nie, dit veroorsaak 'n\n"
-"swak skakel\n"
-"\n"
-"Moet dit ook nie te vreemd maak nie, u moet dit tog kan onthou!\n"
-"\n"
-"Indien u gebruik maak van 'n eksterne bediener wat die toegang beheer,\n"
-"klik op die \"%s\"-knoppie.\n"
-"\n"
-"Indien u netwerk gebruik maak van LDAP, NIS of 'n Windows PDC, moet\n"
-"u die gepaste diens vir \"%s\" kies. Vra u administrateur indien u nie weet\n"
-"watter een om te kies nie.\n"
-"\n"
-"Indien u probleme ondervind om wagwoorde te onthou, en die rekenaar is\n"
-"ver van die Internet af, en u vertrou almal wat die masjien gebruik, kan u\n"
-"kies om \"%s\" te gebruik. -once & heavy!-"
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "magtiging"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, fuzzy, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1536,7 +1521,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1561,7 +1546,7 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1582,11 +1567,11 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Dit is nou tyd om u drukkerstelsel te kies. Ander bedryfstelsels sal\n"
-"seker net een aan u bied, maar Mandriva Linux gee twee. Elk van hulle\n"
+"seker net een aan u bied, maar Mageia gee twee. Elk van hulle\n"
"is beter as die ander in sekere gevalle.\n"
"\n"
" * \"%s\" -- wat vir \"print, do not queue\" staan. Kies dit indien u\n"
@@ -1605,14 +1590,19 @@ msgstr ""
"opsies te keis en drukkers te bestuur.\n"
"\n"
"Sou u die keuse nou, later wil verander, gaan gerus na 'PrinterDrake'\n"
-"in die 'Mandriva Linux Control Center' en klik op die \"Kenner\" knoppie."
+"in die 'Mageia Control Center' en klik op die \"Kenner\" knoppie."
#: ../help.pm:768
#, c-format
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Ervare"
@@ -1625,7 +1615,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1690,11 +1680,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1712,8 +1697,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1730,7 +1714,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1787,7 +1771,12 @@ msgstr ""
" * \"%s\": hier kan u fyner verstellings maak op die dienste wat sal afskop\n"
"Ondersoek dit gerus indien u die rekenaar as bediener gaan gebruik."
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "ISDN-kaart"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN-kaart"
@@ -1798,13 +1787,13 @@ msgid "Graphical Interface"
msgstr "Grafiese koppelvlak"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
-"Kies die hardeskyf wat u wil wis, om u nuwe Mandriva Linux\n"
+"Kies die hardeskyf wat u wil wis, om u nuwe Mageia\n"
"te kan installeer. Wees tog versigtig, alle huidige data op daardie\n"
"partisie sal vernietig word!"
@@ -1812,12 +1801,14 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Klik op \"%s\" sou u al die data an al die partisies wat tans op hierdie\n"
"hardeskyf is wil uitwis. Wees versigtig! Na u \"%s\" geklik het, sal u nie\n"
@@ -1836,4 +1827,106 @@ msgstr "Volgende ->"
msgid "<- Previous"
msgstr "<- Vorige"
-#
+#, fuzzy
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": deur op die \"%s\" knoppie te klik, sal u toegang tot die "
+#~ "'printer\n"
+#~ "configuration wizard' kry. Gaan gerus die ooreenstemde hoofstuk in die\n"
+#~ "\"Starter Guide\" na vir meer inligting. Dit stem baie ooreen met die een."
+
+#, fuzzy
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "Hierdie is die belangrikste oomblik vir u GNU/Linux-rekenaar se "
+#~ "sekuriteit:\n"
+#~ "u moet 'n wagwoord voorsien vir \"root\". \"Root\" is die supergebruiker "
+#~ "wat\n"
+#~ "dinge doen soos om die sagteware op te dateer, gebruikers by te voeg,\n"
+#~ "en die konfigurasie te verander. \"Root\" kan alles doen! Hieroor moet\n"
+#~ "u 'n deeglike wagwoord vir \"root\" kies - (DrakX sal jou tune as die "
+#~ "wag-\n"
+#~ "woord nie op spec is nie.) U kan wel die wagwoord uitlaat, maar dit word\n"
+#~ "te sterkste afgeraai. GNU/Linux is net so vatbaar vir foute soos enige\n"
+#~ "ander bedryfstelsel. Aangesien \"root\" geen perke het nie, kan hy/sy\n"
+#~ "maklik skade aanrig as die persoon roekeloos handel. Dit moet dus\n"
+#~ "moeilik wees vir 'n persoon om \"root\" te word.\n"
+#~ "\n"
+#~ "Die wagwoord behoort 'n mengsel van letters en syfers te wees en ten "
+#~ "minste\n"
+#~ "8 karakters lank te wees. Moet dit nie neerskryf nie, dit veroorsaak 'n\n"
+#~ "swak skakel\n"
+#~ "\n"
+#~ "Moet dit ook nie te vreemd maak nie, u moet dit tog kan onthou!\n"
+#~ "\n"
+#~ "Indien u gebruik maak van 'n eksterne bediener wat die toegang beheer,\n"
+#~ "klik op die \"%s\"-knoppie.\n"
+#~ "\n"
+#~ "Indien u netwerk gebruik maak van LDAP, NIS of 'n Windows PDC, moet\n"
+#~ "u die gepaste diens vir \"%s\" kies. Vra u administrateur indien u nie "
+#~ "weet\n"
+#~ "watter een om te kies nie.\n"
+#~ "\n"
+#~ "Indien u probleme ondervind om wagwoorde te onthou, en die rekenaar is\n"
+#~ "ver van die Internet af, en u vertrou almal wat die masjien gebruik, kan "
+#~ "u\n"
+#~ "kies om \"%s\" te gebruik. -once & heavy!-"
+
+#~ msgid "authentication"
+#~ msgstr "magtiging"
diff --git a/perl-install/install/help/po/am.po b/perl-install/install/help/po/am.po
index a13e3c08c..4d4d94e65 100644
--- a/perl-install/install/help/po/am.po
+++ b/perl-install/install/help/po/am.po
@@ -6,10 +6,11 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\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"
+"Language: am\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -18,7 +19,7 @@ msgstr ""
#, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
@@ -66,13 +67,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "ይህንን ሁኔታ መጠቀም ይፈልጋሉ?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -82,31 +94,35 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
#: ../help.pm:88
#, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
@@ -117,12 +133,11 @@ msgstr ""
#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -135,8 +150,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -203,10 +217,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -232,16 +246,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "ራስ-ገዛዊ ራስን መቻል"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -279,7 +284,12 @@ msgid ""
"server which can be used by other machines on your local network as well."
msgstr ""
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, fuzzy, c-format
msgid "Automatic time synchronization"
msgstr "ቀን እና ሰዓት"
@@ -303,7 +313,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -401,39 +411,43 @@ msgstr ""
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -442,15 +456,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -469,7 +483,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "የነበረውን ክፋይ ተጠቀም"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "ዲስኩን እንዳለ ደምስስ"
@@ -517,7 +536,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr ""
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -537,7 +571,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -546,7 +580,7 @@ msgstr ""
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -569,7 +603,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -585,21 +619,24 @@ msgstr "የደህንነት ተቆጣጣሪ"
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -615,21 +652,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -646,22 +685,41 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr ""
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr ""
@@ -669,34 +727,40 @@ msgstr ""
#: ../help.pm:536
#, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
@@ -716,23 +780,23 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
#: ../help.pm:594
@@ -773,8 +837,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -806,7 +869,12 @@ msgstr ""
msgid "Espanol"
msgstr "ስፓኒሽ"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -860,53 +928,7 @@ msgid ""
"Windows is named \"ttyS0\" under GNU/Linux."
msgstr ""
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr ""
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -920,7 +942,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -931,7 +953,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -952,7 +974,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
@@ -961,7 +983,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, fuzzy, c-format
msgid "Expert"
msgstr "የመሸፈኛ ዘዴ"
@@ -974,7 +1001,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1019,11 +1046,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1041,8 +1063,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1059,14 +1080,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "የISDN ካርድ"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "የISDN ካርድ"
@@ -1079,8 +1105,8 @@ msgstr "ንድፋዊ እይታ"
#: ../help.pm:861
#, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
@@ -1088,12 +1114,14 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
#: ../help.pm:872
@@ -1105,4 +1133,3 @@ msgstr "የሚቀጥለው ->"
#, c-format
msgid "<- Previous"
msgstr "<- የቀድሞው"
-
diff --git a/perl-install/install/help/po/ar.po b/perl-install/install/help/po/ar.po
index a33dab8c8..308fda099 100644
--- a/perl-install/install/help/po/ar.po
+++ b/perl-install/install/help/po/ar.po
@@ -10,10 +10,11 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2005-03-03 01:06+0300\n"
"Last-Translator: Ossama M. Khayat <okhayat@yahoo.com>\n"
"Language-Team: Arabic <support@arabeyes.org>\n"
+"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -22,10 +23,10 @@ msgstr ""
"3\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
@@ -115,13 +116,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "هل تريد استخدام هذه الميزة؟"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -131,24 +143,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"في الأعلى ستجد تجزيئات لينكس الموجودة والتي عثر عليها على القرص الصلب الخاص "
@@ -181,9 +197,9 @@ msgstr ""
"يعني \"ثاني أقل معرف SCSI\"، الخ."
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
@@ -195,15 +211,14 @@ msgstr ""
"فقط اضغط على \"%s\"، ولن يتمّ تثبيت تلك الحزم.."
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -216,8 +231,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -324,7 +338,7 @@ msgid "Truly minimal install"
msgstr "تثبيت مصغّر جداً"
#: ../help.pm:152
-#, c-format
+#, fuzzy, c-format
msgid ""
"If you choose to install packages individually, the installer will present\n"
"a tree containing all packages classified by groups and subgroups. While\n"
@@ -337,10 +351,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -400,21 +414,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "مُعتمدات آلية"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": الضغط على \"%s\" سيفتح معالج تهيئة\n"
-"الطابعة. اقرأ الفصل المختص في ``دليل المبتدئ''\n"
-"لمزيد من المعلومات عن كيفية تهيئة طابعة جديدة. الواجهة\n"
-"المقدمة في دليلنا\n"
-"هي مماثلة لتلك المستخدمة أثناء التثبيت."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -479,7 +479,12 @@ msgstr ""
"الأقرب إليك. في الحقيقة يُثبت هذا الخيار خادم وقت يمكن استخدامه\n"
"من قبل الأجهزة الأخرى على الشبكة المحلية أيضاً."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "تزامن وقت آلي"
@@ -508,11 +513,11 @@ msgstr ""
"يناسب احتياجاتك أكثر."
#: ../help.pm:234
-#, c-format
+#, fuzzy, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -684,41 +689,45 @@ msgstr ""
"بشكل صحيح."
#: ../help.pm:319
-#, c-format
+#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -727,15 +736,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -814,7 +823,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "استخدام التجزيء الموجود"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "مسح كل القرص"
@@ -893,8 +907,23 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "إنشاء قرص تثبيت آلي"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
+#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -913,7 +942,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -941,9 +970,9 @@ msgstr ""
"الكتل السّيئة على القرص."
#: ../help.pm:437
-#, c-format
+#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -968,7 +997,7 @@ msgstr ""
"الحزم المختارة، أو \"%s\" لإلغاء التّحديث."
#: ../help.pm:450
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -977,7 +1006,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1003,24 +1032,27 @@ msgid "Security Administrator"
msgstr "مدير الأمن"
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1036,21 +1068,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1067,14 +1101,8 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"عند هذه النقطة، تحتاج لاختيار أي التجزيئات ستستخدم\n"
"لتثبيت نظام ماندريبا لينكس. إن كانت التجزيئات بالفعل\n"
@@ -1090,7 +1118,7 @@ msgstr ""
"\n"
" * \"%s\": هذا الخيار يحذف كل التجزيئات على القرص الصّلب المحدّد\n"
"\n"
-" * \"%s\": هذا الخيار يمكّنك من إنشاء تجزيئات ext3 والذّاكرة البديلة آليّاً\n"
+" * \"%s\": هذا الخيار يمكّنك من إنشاء تجزيئات ext4 والذّاكرة البديلة آليّاً\n"
"في المساحة الشّاغرة لقرصك الصّلب\n"
"\n"
" * %s: يعطي حقّ الوصول إلى مزايا إضافيّة:\n"
@@ -1141,55 +1169,79 @@ msgstr ""
"\n"
"لتحصل على معلومات حول أنواع أنظمة الملفّات المختلفة المتوفّرة، رجاءً\n"
"اقرا فَصْل ext2FS من ``الدّليل المرجعي``.\n"
-"\n"
-"إن كنت تقوم بالتّثبيت على ماكينة PPC، ستحتاج أن تنشئ تجزيء HFS\n"
-"``bootstrap`` صغير بحجم 1 ميجابايت على الأقلّ والذي سيستخدم بواسطة مُحمّل "
-"الإقلاع yaboot.\n"
-"إن اخترت أن تجعل التجزيء أكبر قليلاً، لنقل 50 ميجابايت، قد تجده\n"
-"مفيد لتخزين نواة احتياطية وصور ramdisk من أجل\n"
-"أوضاع الإقلاع الطّارئة."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "التركيب الآلي للوسائط القابلة للإزالة"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "التغيير إلى الوضع العادي/وضع الخبير"
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"تمّ اكتشاف أكثر من تجزيء ميكروسوفت على قرصك الصّلب.\n"
@@ -1235,29 +1287,29 @@ msgstr ""
"بالبلدان."
#: ../help.pm:572
-#, c-format
+#, fuzzy, c-format
msgid ""
"This step is activated only if an existing GNU/Linux partition has been\n"
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"يتم تنشيط هذه الخطوة فقط إذا عُثر على تجزيء جنو/لينكس موجود\n"
"على ماكينتك.\n"
@@ -1319,7 +1371,7 @@ msgstr ""
"ستبدل وضع لوحة المفاتيح بين الحروف اللاتينية والغير لاتينية."
#: ../help.pm:612
-#, c-format
+#, fuzzy, c-format
msgid ""
"The first step is to choose your preferred language.\n"
"\n"
@@ -1335,8 +1387,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1408,7 +1459,12 @@ msgstr ""
msgid "Espanol"
msgstr "الأسبانية"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1497,89 +1553,7 @@ msgstr ""
"الرجاء اختيار المنفذ الصحيح. مثلاً لمنفذ \"COM1\" في\n"
"ويندوز اسمه \"ttys0\" في لينكس."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"هذه هي أهم خطوة تتخذها لأمن نظام جنو/لينكس الخاصّ بك:\n"
-"عليك إدخال كلمة مرور المستخدم \"root\". \"Root\" هو\n"
-"مدير النظام والمستخدم الوحيد المخوّل بتحديث النظام، وإضافة المستخدمين،\n"
-"وتغيير تهيئة النظام بشكل عام، الخ. باختصار يمكن للمستخدم \"root\" أن يفعل\n"
-"كل شئ! لذا عليك اختيار كلمة مرور صعبة\n"
-"التّخمين: سيخبرك DrakX إذا كانت كلمة المرور التي تستخدمها سهلة. كما\n"
-"ترى، لست مجبراً على إدخال كلمة مرور، لكننا ننصح بشدة ألا تفعل هذا. جنو/لينكس "
-"مُعرّص لأخطاء المُشغّل كأيّ\n"
-"نظام تشغيل آخر. وحيث أن \"الجذر\" يمكنه تعدي كل الحدود\n"
-"و قد يحذف كل البيانات عن غير قصد بالوصول إلى التجزيئات بلا مبالاة\n"
-"فإنّه من المهمّ أن يكون من الصّعب أن تصبح المستخدم\n"
-"\"root\".\n"
-"\n"
-"يجب أن تكون كلمة المرور خليطاً من الحروف والأرقام كما يجب أن تحتوي\n"
-"على 8 حروف على الأقل. لا تكتب كلمة مرور \"الجذر\" على ورق -- هذا يسهّل\n"
-"اختراق النظام إذا رأى أحد كلمة المرور.\n"
-"\n"
-"نصيحة أخرى -- لا تجعل كلمة المرور طويلة جداً أو معقّدة لأنك يجب أن تكون\n"
-"قادراً على تذكرها!\n"
-"\n"
-"لن يتم عرض كلمة المرور على الشاشة عند كتابتها. لتقليل فرصة حدوث\n"
-"خطأ أثناء الكتابة، ستحتاج إلى إدخال كلمة المرور مرتين.\n"
-"إذا أخطأت في الكتابة في المرتين، فسيجب استخدام كلمة\n"
-"المرور \"الخاطئة\" في المرة الأولى التي ستحاول فيها الاتصال كمستخدم \"جذر"
-"\".\n"
-"\n"
-"إذا أردت أن يكون الوصول إلى هذا الحاسب يتحكّم به\n"
-"خادم مواثقة، اضغط \"%s\".\n"
-"\n"
-"إذا كانت شبكتك تستخدم LDAP، أوNIS، أو خدمات PDC مواثقة نطاق ويندوز، اختر "
-"الخيار المناسب لـ\"%s\". إن لم تعرف أيّها تريد\n"
-"استخدامه، اسأل مدير الشبكة لديك.\n"
-"\n"
-"إذا كانت لديك مشكلة في تذكر كلمات المرور، يمكنك اختيار\n"
-"\"%s\" إذا لم يكن الحاسب الخاص بك متصلاً بالإنترنت،\n"
-"أو أنك تثق في جميع من يستخدمون حاسبك."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "المواثقة"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1593,7 +1567,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1617,10 +1591,10 @@ msgstr ""
"إن كنت تعرف ماذا تفعل."
#: ../help.pm:745
-#, c-format
+#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1641,7 +1615,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"الآن، حان وقت اختيار نظام الطباعة لحاسبك. قد توفّر أنظمة التشغيل الأخرى\n"
@@ -1676,7 +1650,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "وضعية الخبير"
@@ -1689,7 +1668,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1730,7 +1709,7 @@ msgstr ""
"آخر."
#: ../help.pm:794
-#, c-format
+#, fuzzy, c-format
msgid ""
"As a review, DrakX will present a summary of information it has gathered\n"
"about your system. Depending on the hardware installed on your machine, you\n"
@@ -1753,11 +1732,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1775,8 +1749,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1793,7 +1766,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1867,7 +1840,12 @@ msgstr ""
"على ماكينتك. إن نويت استخدام هذه الماكنية كخادم فإنّها لفكرة جيّدة\n"
"أن تُراجع هذه الخطوة."
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "بطاقة ISDN"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "بطاقة ISDN"
@@ -1878,10 +1856,10 @@ msgid "Graphical Interface"
msgstr "الواجهة الرسومية"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"اختر القرص الصلب الذي تريد محوه لتثبيت تجزيء\n"
@@ -1892,12 +1870,14 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"اضغط \"%s\" إن كنت تريد حذف كل التجزيئات الموجودة على القرص\n"
"الصلب. خذ حذرك، بعد ضغطك لزر \"%s\" لن تتمكن من استعادة\n"
@@ -1917,3 +1897,109 @@ msgstr "التالي ->"
msgid "<- Previous"
msgstr "<- السابق "
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": الضغط على \"%s\" سيفتح معالج تهيئة\n"
+#~ "الطابعة. اقرأ الفصل المختص في ``دليل المبتدئ''\n"
+#~ "لمزيد من المعلومات عن كيفية تهيئة طابعة جديدة. الواجهة\n"
+#~ "المقدمة في دليلنا\n"
+#~ "هي مماثلة لتلك المستخدمة أثناء التثبيت."
+
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "هذه هي أهم خطوة تتخذها لأمن نظام جنو/لينكس الخاصّ بك:\n"
+#~ "عليك إدخال كلمة مرور المستخدم \"root\". \"Root\" هو\n"
+#~ "مدير النظام والمستخدم الوحيد المخوّل بتحديث النظام، وإضافة المستخدمين،\n"
+#~ "وتغيير تهيئة النظام بشكل عام، الخ. باختصار يمكن للمستخدم \"root\" أن "
+#~ "يفعل\n"
+#~ "كل شئ! لذا عليك اختيار كلمة مرور صعبة\n"
+#~ "التّخمين: سيخبرك DrakX إذا كانت كلمة المرور التي تستخدمها سهلة. كما\n"
+#~ "ترى، لست مجبراً على إدخال كلمة مرور، لكننا ننصح بشدة ألا تفعل هذا. جنو/"
+#~ "لينكس مُعرّص لأخطاء المُشغّل كأيّ\n"
+#~ "نظام تشغيل آخر. وحيث أن \"الجذر\" يمكنه تعدي كل الحدود\n"
+#~ "و قد يحذف كل البيانات عن غير قصد بالوصول إلى التجزيئات بلا مبالاة\n"
+#~ "فإنّه من المهمّ أن يكون من الصّعب أن تصبح المستخدم\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "يجب أن تكون كلمة المرور خليطاً من الحروف والأرقام كما يجب أن تحتوي\n"
+#~ "على 8 حروف على الأقل. لا تكتب كلمة مرور \"الجذر\" على ورق -- هذا يسهّل\n"
+#~ "اختراق النظام إذا رأى أحد كلمة المرور.\n"
+#~ "\n"
+#~ "نصيحة أخرى -- لا تجعل كلمة المرور طويلة جداً أو معقّدة لأنك يجب أن تكون\n"
+#~ "قادراً على تذكرها!\n"
+#~ "\n"
+#~ "لن يتم عرض كلمة المرور على الشاشة عند كتابتها. لتقليل فرصة حدوث\n"
+#~ "خطأ أثناء الكتابة، ستحتاج إلى إدخال كلمة المرور مرتين.\n"
+#~ "إذا أخطأت في الكتابة في المرتين، فسيجب استخدام كلمة\n"
+#~ "المرور \"الخاطئة\" في المرة الأولى التي ستحاول فيها الاتصال كمستخدم \"جذر"
+#~ "\".\n"
+#~ "\n"
+#~ "إذا أردت أن يكون الوصول إلى هذا الحاسب يتحكّم به\n"
+#~ "خادم مواثقة، اضغط \"%s\".\n"
+#~ "\n"
+#~ "إذا كانت شبكتك تستخدم LDAP، أوNIS، أو خدمات PDC مواثقة نطاق ويندوز، اختر "
+#~ "الخيار المناسب لـ\"%s\". إن لم تعرف أيّها تريد\n"
+#~ "استخدامه، اسأل مدير الشبكة لديك.\n"
+#~ "\n"
+#~ "إذا كانت لديك مشكلة في تذكر كلمات المرور، يمكنك اختيار\n"
+#~ "\"%s\" إذا لم يكن الحاسب الخاص بك متصلاً بالإنترنت،\n"
+#~ "أو أنك تثق في جميع من يستخدمون حاسبك."
+
+#~ msgid "authentication"
+#~ msgstr "المواثقة"
diff --git a/perl-install/install/help/po/ast.po b/perl-install/install/help/po/ast.po
new file mode 100644
index 000000000..4478b0e7a
--- /dev/null
+++ b/perl-install/install/help/po/ast.po
@@ -0,0 +1,1138 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
+"PO-Revision-Date: 2024-09-04 17:33+0000\n"
+"Language-Team: Asturian (https://app.transifex.com/MageiaLinux/teams/9361/"
+"ast/)\n"
+"Language: ast\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../help.pm:14
+#, c-format
+msgid ""
+"Before continuing, you should carefully read the terms of the license. It\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
+"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
+"button will reboot your computer."
+msgstr ""
+
+#: ../help.pm:20
+#, c-format
+msgid ""
+"GNU/Linux is a multi-user system which means each user can have his or her\n"
+"own preferences, own files and so on. But unlike \"root\", who is the\n"
+"system administrator, the users you add at this point will not be "
+"authorized\n"
+"to change anything except their own files and their own configurations,\n"
+"protecting the system from unintentional or malicious changes which could\n"
+"impact on the system as a whole. You'll have to create at least one regular\n"
+"user for yourself -- this is the account which you should use for routine,\n"
+"day-to-day usage. Although it's very easy to log in as \"root\" to do\n"
+"anything and everything, it may also be very dangerous! A very simple\n"
+"mistake could mean that your system will not work any more. If you make a\n"
+"serious mistake as a regular user, the worst that can happen is that you'll\n"
+"lose some information, but you will not affect the entire system.\n"
+"\n"
+"The first field asks you for a real name. Of course, this is not mandatory\n"
+"-- you can actually enter whatever you like. DrakX will use the first word\n"
+"you type in this field and copy it to the \"%s\" one, which is the name\n"
+"this user will enter to log onto the system. If you like, you may override\n"
+"the default and change the user name. The next step is to enter a password.\n"
+"From a security point of view, a non-privileged (regular) user password is\n"
+"not as crucial as the \"root\" password, but that's no reason to neglect it\n"
+"by making it blank or too simple: after all, your files could be the ones\n"
+"at risk.\n"
+"\n"
+"Once you click on \"%s\", you can add other users. Add a user for each one\n"
+"of your friends, your father, your sister, etc. Click \"%s\" when you're\n"
+"finished adding users.\n"
+"\n"
+"Clicking the \"%s\" button allows you to change the default \"shell\" for\n"
+"that user (bash by default).\n"
+"\n"
+"When you're finished adding users, you'll be asked to choose a user who\n"
+"will be automatically logged into the system when the computer boots up. If\n"
+"you're interested in that feature (and do not care much about local\n"
+"security), choose the desired user and window manager, then click on\n"
+"\"%s\". If you're not interested in this feature, uncheck the \"%s\" box."
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Do you want to use this feature?"
+msgstr ""
+
+#: ../help.pm:57
+#, c-format
+msgid ""
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
+"You can keep the choices made by the wizard, since they are good for most\n"
+"common installations. If you make any changes, you must at least define a\n"
+"root partition (\"/\"). Do not choose too small a partition or you will not\n"
+"be able to install enough software. If you want to store your data on a\n"
+"separate partition, you will also need to create a \"/home\" partition\n"
+"(only possible if you have more than one Linux partition available).\n"
+"\n"
+"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
+"\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
+"\"partition number\" (for example, \"hda1\").\n"
+"\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
+"\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
+"\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
+"\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
+"\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
+"\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
+"\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
+"\"second lowest SCSI ID\", etc."
+msgstr ""
+
+#: ../help.pm:88
+#, c-format
+msgid ""
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
+"selected package is located on another CD-ROM, DrakX will eject the current\n"
+"CD and ask you to insert the required one. If you do not have the requested\n"
+"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
+"installed."
+msgstr ""
+
+#: ../help.pm:95
+#, c-format
+msgid ""
+"It's now time to specify which programs you wish to install on your system.\n"
+"There are thousands of packages available for Mageia, and to make it\n"
+"simpler to manage, they have been placed into groups of similar\n"
+"applications.\n"
+"\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
+"match applications from the various categories, so a ``Workstation''\n"
+"installation can still have applications from the ``Server'' category\n"
+"installed.\n"
+"\n"
+" * \"%s\": if you plan to use your machine as a workstation, select one or\n"
+"more of the groups in the workstation category.\n"
+"\n"
+" * \"%s\": if you plan on using your machine for programming, select the\n"
+"appropriate groups from that category. The special \"LSB\" group will\n"
+"configure your system so that it complies as much as possible with the\n"
+"Linux Standard Base specifications.\n"
+"\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
+"of the system. However, if you do not select the \"LSB\" group you will\n"
+"still have a system which is nearly 100%% LSB-compliant.\n"
+"\n"
+" * \"%s\": if your machine is intended to be a server, select which of the\n"
+"more common services you wish to install on your machine.\n"
+"\n"
+" * \"%s\": this is where you will choose your preferred graphical\n"
+"environment. At least one must be selected if you want to have a graphical\n"
+"interface available.\n"
+"\n"
+"Moving the mouse cursor over a group name will display a short explanatory\n"
+"text about that group.\n"
+"\n"
+"You can check the \"%s\" box, which is useful if you're familiar with the\n"
+"packages being offered or if you want to have total control over what will\n"
+"be installed.\n"
+"\n"
+"If you start the installation in \"%s\" mode, you can deselect all groups\n"
+"and prevent the installation of any new packages. This is useful for\n"
+"repairing or updating an existing system.\n"
+"\n"
+"If you deselect all groups when performing a regular installation (as\n"
+"opposed to an upgrade), a dialog will pop up suggesting different options\n"
+"for a minimal installation:\n"
+"\n"
+" * \"%s\": install the minimum number of packages possible to have a\n"
+"working graphical desktop.\n"
+"\n"
+" * \"%s\": installs the base system plus basic utilities and their\n"
+"documentation. This installation is suitable for setting up a server.\n"
+"\n"
+" * \"%s\": will install the absolute minimum number of packages necessary\n"
+"to get a working Linux system. With this installation you will only have a\n"
+"command-line interface. The total size of this installation is about 65\n"
+"megabytes."
+msgstr ""
+
+#: ../help.pm:149 ../help.pm:591
+#, c-format
+msgid "Upgrade"
+msgstr ""
+
+#: ../help.pm:149
+#, c-format
+msgid "With basic documentation"
+msgstr ""
+
+#: ../help.pm:149
+#, c-format
+msgid "Truly minimal install"
+msgstr ""
+
+#: ../help.pm:152
+#, c-format
+msgid ""
+"If you choose to install packages individually, the installer will present\n"
+"a tree containing all packages classified by groups and subgroups. While\n"
+"browsing the tree, you can select entire groups, subgroups, or individual\n"
+"packages.\n"
+"\n"
+"Whenever you select a package on the tree, a description will appear on the\n"
+"right to let you know the purpose of that package.\n"
+"\n"
+"!! If a server package has been selected, either because you specifically\n"
+"chose the individual package or because it was part of a group of packages,\n"
+"you'll be asked to confirm that you really want those servers to be\n"
+"installed. By default Mageia will automatically start any installed\n"
+"services at boot time. Even if they are safe and have no known issues at\n"
+"the time the distribution was shipped, it is entirely possible that\n"
+"security holes were discovered after this version of Mageia was\n"
+"finalized. If you do not know what a particular service is supposed to do "
+"or\n"
+"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
+"the listed services and they will be started automatically at boot time. !!\n"
+"\n"
+"The \"%s\" option is used to disable the warning dialog which appears\n"
+"whenever the installer automatically selects a package to resolve a\n"
+"dependency issue. Some packages depend on others and the installation of\n"
+"one particular package may require the installation of another package. The\n"
+"installer can determine which packages are required to satisfy a dependency\n"
+"to successfully complete the installation.\n"
+"\n"
+"The tiny floppy disk icon at the bottom of the list allows you to load a\n"
+"package list created during a previous installation. This is useful if you\n"
+"have a number of machines that you wish to configure identically. Clicking\n"
+"on this icon will ask you to insert the floppy disk created at the end of\n"
+"another installation. See the second tip of the last step on how to create\n"
+"such a floppy."
+msgstr ""
+
+#: ../help.pm:183
+#, c-format
+msgid "Automatic dependencies"
+msgstr ""
+
+#: ../help.pm:185
+#, c-format
+msgid ""
+"This dialog is used to select which services you wish to start at boot\n"
+"time.\n"
+"\n"
+"DrakX will list all services available on the current installation. Review\n"
+"each one of them carefully and uncheck those which are not needed at boot\n"
+"time.\n"
+"\n"
+"A short explanatory text will be displayed about a service when it is\n"
+"selected. However, if you're not sure whether a service is useful or not,\n"
+"it is safer to leave the default behavior.\n"
+"\n"
+"!! At this stage, be very careful if you intend to use your machine as a\n"
+"server: you probably do not want to start any services which you do not "
+"need.\n"
+"Please remember that some services can be dangerous if they're enabled on a\n"
+"server. In general, select only those services you really need. !!"
+msgstr ""
+
+#: ../help.pm:209
+#, c-format
+msgid ""
+"GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it to\n"
+"local time according to the time zone you selected. If the clock on your\n"
+"motherboard is set to local time, you may deactivate this by unselecting\n"
+"\"%s\", which will let GNU/Linux know that the system clock and the\n"
+"hardware clock are in the same time zone. This is useful when the machine\n"
+"also hosts another operating system.\n"
+"\n"
+"The \"%s\" option will automatically regulate the system clock by\n"
+"connecting to a remote time server on the Internet. For this feature to\n"
+"work, you must have a working Internet connection. We recommend that you\n"
+"choose a time server located near you. This option actually installs a time\n"
+"server which can be used by other machines on your local network as well."
+msgstr ""
+
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
+#, c-format
+msgid "Automatic time synchronization"
+msgstr ""
+
+#: ../help.pm:223
+#, c-format
+msgid ""
+"Graphic Card\n"
+"\n"
+" The installer will normally automatically detect and configure the\n"
+"graphic card installed on your machine. If this is not correct, you can\n"
+"choose from this list the card you actually have installed.\n"
+"\n"
+" In the situation where different servers are available for your card,\n"
+"with or without 3D acceleration, you're asked to choose the server which\n"
+"best suits your needs."
+msgstr ""
+
+#: ../help.pm:234
+#, c-format
+msgid ""
+"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
+"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
+"\n"
+"You'll see a list of different parameters to change to get an optimal\n"
+"graphical display.\n"
+"\n"
+"Graphic Card\n"
+"\n"
+" The installer will normally automatically detect and configure the\n"
+"graphic card installed on your machine. If this is not correct, you can\n"
+"choose from this list the card you actually have installed.\n"
+"\n"
+" In the situation where different servers are available for your card,\n"
+"with or without 3D acceleration, you're asked to choose the server which\n"
+"best suits your needs.\n"
+"\n"
+"\n"
+"\n"
+"Monitor\n"
+"\n"
+" Normally the installer will automatically detect and configure the\n"
+"monitor connected to your machine. If it is not correct, you can choose\n"
+"from this list the monitor which is connected to your computer.\n"
+"\n"
+"\n"
+"\n"
+"Resolution\n"
+"\n"
+" Here you can choose the resolutions and color depths available for your\n"
+"graphics hardware. Choose the one which best suits your needs (you will be\n"
+"able to make changes after the installation). A sample of the chosen\n"
+"configuration is shown in the monitor picture.\n"
+"\n"
+"\n"
+"\n"
+"Test\n"
+"\n"
+" Depending on your hardware, this entry might not appear.\n"
+"\n"
+" The system will try to open a graphical screen at the desired\n"
+"resolution. If you see the test message during the test and answer \"%s\",\n"
+"then DrakX will proceed to the next step. If you do not see it, then it\n"
+"means that some part of the auto-detected configuration was incorrect and\n"
+"the test will automatically end after 12 seconds and return you to the\n"
+"menu. Change settings until you get a correct graphical display.\n"
+"\n"
+"\n"
+"\n"
+"Options\n"
+"\n"
+" This steps allows you to choose whether you want your machine to\n"
+"automatically switch to a graphical interface at boot. Obviously, you may\n"
+"want to check \"%s\" if your machine is to act as a server, or if you were\n"
+"not successful in getting the display configured."
+msgstr ""
+
+#: ../help.pm:291
+#, c-format
+msgid ""
+"Monitor\n"
+"\n"
+" Normally the installer will automatically detect and configure the\n"
+"monitor connected to your machine. If it is not correct, you can choose\n"
+"from this list the monitor which is connected to your computer."
+msgstr ""
+
+#: ../help.pm:298
+#, c-format
+msgid ""
+"Resolution\n"
+"\n"
+" Here you can choose the resolutions and color depths available for your\n"
+"graphics hardware. Choose the one which best suits your needs (you will be\n"
+"able to make changes after the installation). A sample of the chosen\n"
+"configuration is shown in the monitor picture."
+msgstr ""
+
+#: ../help.pm:306
+#, c-format
+msgid ""
+"In the situation where different servers are available for your card, with\n"
+"or without 3D acceleration, you're asked to choose the server which best\n"
+"suits your needs."
+msgstr ""
+
+#: ../help.pm:311
+#, c-format
+msgid ""
+"Options\n"
+"\n"
+" This steps allows you to choose whether you want your machine to\n"
+"automatically switch to a graphical interface at boot. Obviously, you may\n"
+"want to check \"%s\" if your machine is to act as a server, or if you were\n"
+"not successful in getting the display configured."
+msgstr ""
+
+#: ../help.pm:319
+#, c-format
+msgid ""
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
+"existing operating system is using all the available space you will have to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
+"logically divide it to create the space needed to install your new\n"
+"Mageia system.\n"
+"\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
+"and can lead to data losses, partitioning can be intimidating and stressful\n"
+"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
+"simplifies this process. Before continuing with this step, read through the\n"
+"rest of this section and above all, take your time.\n"
+"\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
+"available:\n"
+"\n"
+" * \"%s\". This option will perform an automatic partitioning of your blank\n"
+"drive(s). If you use this option there will be no further prompts.\n"
+"\n"
+" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
+"be asked to choose the mount points associated with each of the partitions.\n"
+"The legacy mount points are selected by default, and for the most part it's\n"
+"a good idea to keep them.\n"
+"\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
+"all the space available on it, you will have to create free space for\n"
+"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
+"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
+"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
+"data, provided you've previously defragmented the Windows partition.\n"
+"Backing up your data is strongly recommended. Using this option is\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
+"the same computer.\n"
+"\n"
+" Before choosing this option, please understand that after this\n"
+"procedure, the size of your Microsoft Windows partition will be smaller\n"
+"than when you started. You'll have less free space under Microsoft Windows\n"
+"to store your data or to install new software.\n"
+"\n"
+" * \"%s\". If you want to delete all data and all partitions present on\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
+"this option. Be careful, because you will not be able to undo this "
+"operation\n"
+"after you confirm.\n"
+"\n"
+" !! If you choose this option, all data on your disk will be deleted. !!\n"
+"\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
+"Microsoft Windows. Choosing this option will simply erase everything on the\n"
+"drive and begin fresh, partitioning everything from scratch.\n"
+"\n"
+" !! If you choose this option, all data on your disk will be lost. !!\n"
+"\n"
+" * \"%s\". Choose this option if you want to manually partition your hard\n"
+"drive. Be careful -- it is a powerful but dangerous choice and you can very\n"
+"easily lose all your data. That's why this option is really only\n"
+"recommended if you have done something like this before and have some\n"
+"experience. For more instructions on how to use the DiskDrake utility,\n"
+"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
+msgstr ""
+
+#: ../help.pm:377
+#, c-format
+msgid "Use existing partition"
+msgstr ""
+
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
+#, c-format
+msgid "Erase entire disk"
+msgstr ""
+
+#: ../help.pm:380
+#, c-format
+msgid ""
+"There you are. Installation is now complete and your GNU/Linux system is\n"
+"ready to be used. Just click on \"%s\" to reboot the system. Do not forget\n"
+"to remove the installation media (CD-ROM or floppy). The first thing you\n"
+"should see after your computer has finished doing its hardware tests is the\n"
+"boot-loader menu, giving you the choice of which operating system to start.\n"
+"\n"
+"The \"%s\" button shows two more buttons to:\n"
+"\n"
+" * \"%s\": enables you to create an installation floppy disk which will\n"
+"automatically perform a whole installation without the help of an operator,\n"
+"similar to the installation you've just configured.\n"
+"\n"
+" Note that two different options are available after clicking on that\n"
+"button:\n"
+"\n"
+" * \"%s\". This is a partially automated installation. The partitioning\n"
+"step is the only interactive procedure.\n"
+"\n"
+" * \"%s\". Fully automated installation: the hard disk is completely\n"
+"rewritten, all data is lost.\n"
+"\n"
+" This feature is very handy when installing on a number of similar\n"
+"machines. See the Auto install section on our web site for more\n"
+"information.\n"
+"\n"
+" * \"%s\"(*): saves a list of the packages selected in this installation.\n"
+"To use this selection with another installation, insert the floppy and\n"
+"start the installation. At the prompt, press the [F1] key, type >>linux\n"
+"defcfg=\"floppy\"<< and press the [Enter] key.\n"
+"\n"
+"(*) You need a FAT-formatted floppy. To create one under GNU/Linux, type\n"
+"\"mformat a:\", or \"fdformat /dev/fd0\" followed by \"mkfs.vfat\n"
+"/dev/fd0\"."
+msgstr ""
+
+#: ../help.pm:412
+#, c-format
+msgid "Generate auto-install floppy"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
+#, c-format
+msgid ""
+"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
+"reformat some of them and erase any data they contain. To do so, please\n"
+"select those partitions as well.\n"
+"\n"
+"Please note that it's not necessary to reformat all pre-existing\n"
+"partitions. You must reformat the partitions containing the operating\n"
+"system (such as \"/\", \"/usr\" or \"/var\") but you do not have to "
+"reformat\n"
+"partitions containing data that you wish to keep (typically \"/home\").\n"
+"\n"
+"Please be careful when selecting partitions. After the formatting is\n"
+"completed, all data on the selected partitions will be deleted and you\n"
+"will not be able to recover it.\n"
+"\n"
+"Click on \"%s\" when you're ready to format the partitions.\n"
+"\n"
+"Click on \"%s\" if you want to choose another partition for your new\n"
+"Mageia operating system installation.\n"
+"\n"
+"Click on \"%s\" if you wish to select partitions which will be checked for\n"
+"bad blocks on the disk."
+msgstr ""
+
+#: ../help.pm:437
+#, c-format
+msgid ""
+"By the time you install Mageia, it's likely that some packages will\n"
+"have been updated since the initial release. Bugs may have been fixed,\n"
+"security issues resolved. To allow you to benefit from these updates,\n"
+"you're now able to download them from the Internet. Check \"%s\" if you\n"
+"have a working Internet connection, or \"%s\" if you prefer to install\n"
+"updated packages later.\n"
+"\n"
+"Choosing \"%s\" will display a list of web locations from which updates can\n"
+"be retrieved. You should choose one near to you. A package-selection tree\n"
+"will appear: review the selection, and press \"%s\" to retrieve and install\n"
+"the selected package(s), or \"%s\" to abort."
+msgstr ""
+
+#: ../help.pm:450
+#, c-format
+msgid ""
+"At this point, DrakX will allow you to choose the security level you desire\n"
+"for your machine. As a rule of thumb, the security level should be set\n"
+"higher if the machine is to contain crucial data, or if it's to be directly\n"
+"exposed to the Internet. The trade-off that a higher security level is\n"
+"generally obtained at the expense of ease of use.\n"
+"\n"
+"If you do not know what to choose, keep the default option. You'll be able\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
+"Control Center.\n"
+"\n"
+"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
+"security. Security messages will be sent to that address."
+msgstr ""
+
+#: ../help.pm:461
+#, c-format
+msgid "Security Administrator"
+msgstr ""
+
+#: ../help.pm:464
+#, c-format
+msgid ""
+"At this point, you need to choose which partition(s) will be used for the\n"
+"installation of your Mageia system. If partitions have already been\n"
+"defined, either from a previous installation of GNU/Linux or by another\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
+"partitions must be defined.\n"
+"\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
+"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
+"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
+"\n"
+"To partition the selected hard disk drive, you can use these options:\n"
+"\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
+"\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
+"\n"
+"\"%s\": gives access to additional features:\n"
+"\n"
+" * \"%s\": saves the partition table to a floppy. Useful for later\n"
+"partition-table recovery if necessary. It is strongly recommended that you\n"
+"perform this step.\n"
+"\n"
+" * \"%s\": allows you to restore a previously saved partition table from a\n"
+"floppy disk.\n"
+"\n"
+" * \"%s\": if your partition table is damaged, you can try to recover it\n"
+"using this option. Please be careful and remember that it does not always\n"
+"work.\n"
+"\n"
+" * \"%s\": discards all changes and reloads the partition table that was\n"
+"originally on the hard disk drive.\n"
+"\n"
+" * \"%s\": un-checking this option will force users to manually mount and\n"
+"unmount removable media such as floppies and CD-ROMs.\n"
+"\n"
+" * \"%s\": use this option if you wish to use a wizard to partition your\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
+"partitioning.\n"
+"\n"
+" * \"%s\": use this option to cancel your changes.\n"
+"\n"
+" * \"%s\": allows additional actions on partitions (type, options, format)\n"
+"and gives more information about the hard disk drive.\n"
+"\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
+"save your changes back to disk.\n"
+"\n"
+"When defining the size of a partition, you can finely set the partition\n"
+"size by using the Arrow keys of your keyboard.\n"
+"\n"
+"Note: you can reach any option using the keyboard. Navigate through the\n"
+"partitions using [Tab] and the [Up/Down] arrows.\n"
+"\n"
+"When a partition is selected, you can use:\n"
+"\n"
+" * Ctrl-c to create a new partition (when an empty partition is selected)\n"
+"\n"
+" * Ctrl-d to delete a partition\n"
+"\n"
+" * Ctrl-m to set the mount point\n"
+"\n"
+"To get information about the different filesystem types available, please\n"
+"read the ext2FS chapter from the ``Reference Manual''.\n"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Removable media auto-mounting"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Toggle between normal/expert mode"
+msgstr ""
+
+#: ../help.pm:536
+#, c-format
+msgid ""
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
+"Please choose the one which you want to resize in order to install your new\n"
+"Mageia operating system.\n"
+"\n"
+"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
+"\"Capacity\".\n"
+"\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
+"\"partition number\" (for example, \"hda1\").\n"
+"\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
+"\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
+"\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
+"\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
+"\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
+"\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
+"\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
+"\"second lowest SCSI ID\", etc.\n"
+"\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
+"disk or partition is called \"C:\")."
+msgstr ""
+
+#: ../help.pm:567
+#, c-format
+msgid ""
+"\"%s\": check the current country selection. If you're not in this country,\n"
+"click on the \"%s\" button and choose another. If your country is not in "
+"the\n"
+"list shown, click on the \"%s\" button to get the complete country list."
+msgstr ""
+
+#: ../help.pm:572
+#, c-format
+msgid ""
+"This step is activated only if an existing GNU/Linux partition has been\n"
+"found on your machine.\n"
+"\n"
+"DrakX now needs to know if you want to perform a new installation or an\n"
+"upgrade of an existing Mageia system:\n"
+"\n"
+" * \"%s\". For the most part, this completely wipes out the old system.\n"
+"However, depending on your partitioning scheme, you can prevent some of\n"
+"your existing data (notably \"home\" directories) from being over-written.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
+"\n"
+" * \"%s\". This installation class allows you to update the packages\n"
+"currently installed on your Mageia system. Your current partitioning\n"
+"scheme and user data will not be altered. Most of the other configuration\n"
+"steps remain available and are similar to a standard installation.\n"
+"\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
+"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
+"to Mageia version \"8.1\" is not recommended."
+msgstr ""
+
+#: ../help.pm:594
+#, c-format
+msgid ""
+"Depending on the language you chose (), DrakX will automatically select a\n"
+"particular type of keyboard configuration. Check that the selection suits\n"
+"you or choose another keyboard layout.\n"
+"\n"
+"Also, you may not have a keyboard which corresponds exactly to your\n"
+"language: for example, if you are an English-speaking Swiss native, you may\n"
+"have a Swiss keyboard. Or if you speak English and are located in Quebec,\n"
+"you may find yourself in the same situation where your native language and\n"
+"country-set keyboard do not match. In either case, this installation step\n"
+"will allow you to select an appropriate keyboard from a list.\n"
+"\n"
+"Click on the \"%s\" button to be shown a list of supported keyboards.\n"
+"\n"
+"If you choose a keyboard layout based on a non-Latin alphabet, the next\n"
+"dialog will allow you to choose the key binding which will switch the\n"
+"keyboard between the Latin and non-Latin layouts."
+msgstr ""
+
+#: ../help.pm:612
+#, c-format
+msgid ""
+"The first step is to choose your preferred language.\n"
+"\n"
+"Your choice of preferred language will affect the installer, the\n"
+"documentation, and the system in general. First select the region you're\n"
+"located in, then the language you speak.\n"
+"\n"
+"Clicking on the \"%s\" button will allow you to select other languages to\n"
+"be installed on your workstation, thereby installing the language-specific\n"
+"files for system documentation and applications. For example, if Spanish\n"
+"users are to use your machine, select English as the default language in\n"
+"the tree view and \"%s\" in the Advanced section.\n"
+"\n"
+"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
+"cover all existing languages. However full support for it in GNU/Linux is\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
+"depend on the user's choices:\n"
+"\n"
+" * If you choose a language with a strong legacy encoding (latin1\n"
+"languages, Russian, Japanese, Chinese, Korean, Thai, Greek, Turkish, most\n"
+"iso-8859-2 languages), the legacy encoding will be used by default;\n"
+"\n"
+" * Other languages will use unicode by default;\n"
+"\n"
+" * If two or more languages are required, and those languages are not using\n"
+"the same encoding, then unicode will be used for the whole system;\n"
+"\n"
+" * Finally, unicode can also be forced for use throughout the system at a\n"
+"user's request by selecting the \"%s\" option independently of which\n"
+"languages were been chosen.\n"
+"\n"
+"Note that you're not limited to choosing a single additional language. You\n"
+"may choose several, or even install them all by selecting the \"%s\" box.\n"
+"Selecting support for a language means translations, fonts, spell checkers,\n"
+"etc. will also be installed for that language.\n"
+"\n"
+"To switch between the various languages installed on your system, you can\n"
+"launch the \"localedrake\" command as \"root\" to change the language used\n"
+"by the entire system. Running the command as a regular user will only\n"
+"change the language settings for that particular user."
+msgstr ""
+
+#: ../help.pm:650
+#, c-format
+msgid "Espanol"
+msgstr ""
+
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
+#, c-format
+msgid ""
+"Usually, DrakX has no problems detecting the number of buttons on your\n"
+"mouse. If it does, it assumes you have a two-button mouse and will\n"
+"configure it for third-button emulation. The third-button mouse button of a\n"
+"two-button mouse can be obtained by simultaneously clicking the left and\n"
+"right mouse buttons. DrakX will automatically know whether your mouse uses\n"
+"a PS/2, serial or USB interface.\n"
+"\n"
+"If you have a 3-button mouse without a wheel, you can choose a \"%s\"\n"
+"mouse. DrakX will then configure your mouse so that you can simulate the\n"
+"wheel with it: to do so, press the middle button and move your mouse\n"
+"pointer up and down.\n"
+"\n"
+"If for some reason you wish to specify a different type of mouse, select it\n"
+"from the list provided.\n"
+"\n"
+"You can select the \"%s\" entry to chose a ``generic'' mouse type which\n"
+"will work with nearly all mice.\n"
+"\n"
+"If you choose a mouse other than the default one, a test screen will be\n"
+"displayed. Use the buttons and wheel to verify that the settings are\n"
+"correct and that the mouse is working correctly. If the mouse is not\n"
+"working well, press the space bar or [Return] key to cancel the test and\n"
+"you will be returned to the mouse list.\n"
+"\n"
+"Occasionally wheel mice are not detected automatically, so you will need to\n"
+"select your mouse from a list. Be sure to select the one corresponding to\n"
+"the port that your mouse is attached to. After selecting a mouse and\n"
+"pressing the \"%s\" button, a mouse image will be displayed on-screen.\n"
+"Scroll the mouse wheel to ensure that it is activating correctly. As you\n"
+"scroll your mouse wheel, you will see the on-screen scroll wheel moving.\n"
+"Test the buttons and check that the mouse pointer moves on-screen as you\n"
+"move your mouse about."
+msgstr ""
+
+#: ../help.pm:684
+#, c-format
+msgid "with Wheel emulation"
+msgstr ""
+
+#: ../help.pm:684
+#, c-format
+msgid "Universal | Any PS/2 & USB mice"
+msgstr ""
+
+#: ../help.pm:687
+#, c-format
+msgid ""
+"Please select the correct port. For example, the \"COM1\" port under\n"
+"Windows is named \"ttyS0\" under GNU/Linux."
+msgstr ""
+
+#: ../help.pm:684
+#, c-format
+msgid ""
+"A boot loader is a little program which is started by the computer at boot\n"
+"time. It's responsible for starting up the whole system. Normally, the boot\n"
+"loader installation is totally automated. DrakX will analyze the disk boot\n"
+"sector and act according to what it finds there:\n"
+"\n"
+" * if a Windows boot sector is found, it will replace it with a GRUB/LILO\n"
+"boot sector. This way you'll be able to load either GNU/Linux or any other\n"
+"OS installed on your machine.\n"
+"\n"
+" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
+"\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
+"where it should place it. Generally, the \"%s\" is the safest place.\n"
+"Choosing \"%s\" will not install any boot loader. Use this option only if "
+"you\n"
+"know what you're doing."
+msgstr ""
+
+#: ../help.pm:745
+#, c-format
+msgid ""
+"Now, it's time to select a printing system for your computer. Other\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
+"the printing systems is best suited to particular types of configuration.\n"
+"\n"
+" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
+"if you have a direct connection to your printer, you want to be able to\n"
+"panic out of printer jams, and you do not have networked printers. (\"%s\"\n"
+"will handle only very simple network cases and is somewhat slow when used\n"
+"within networks.) It's recommended that you use \"pdq\" if this is your\n"
+"first experience with GNU/Linux.\n"
+"\n"
+" * \"%s\" stands for `` Common Unix Printing System'' and is an excellent\n"
+"choice for printing to your local printer or to one halfway around the\n"
+"planet. It's simple to configure and can act as a server or a client for\n"
+"the ancient \"lpd\" printing system, so it's compatible with older\n"
+"operating systems which may still need print services. While quite\n"
+"powerful, the basic setup is almost as easy as \"pdq\". If you need to\n"
+"emulate a \"lpd\" server, make sure you turn on the \"cups-lpd\" daemon.\n"
+"\"%s\" includes graphical front-ends for printing or choosing printer\n"
+"options and for managing the printer.\n"
+"\n"
+"If you make a choice now, and later find that you do not like your printing\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
+"Control Center and clicking on the \"%s\" button."
+msgstr ""
+
+#: ../help.pm:768
+#, c-format
+msgid "pdq"
+msgstr ""
+
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
+#, c-format
+msgid "Expert"
+msgstr ""
+
+#: ../help.pm:771
+#, c-format
+msgid ""
+"DrakX will first detect any IDE devices present in your computer. It will\n"
+"also scan for one or more PCI SCSI cards on your system. If a SCSI card is\n"
+"found, DrakX will automatically install the appropriate driver.\n"
+"\n"
+"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
+"\n"
+"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
+"want to configure options for it. You should allow DrakX to probe the\n"
+"hardware for the card-specific options which are needed to initialize the\n"
+"adapter. Most of the time, DrakX will get through this step without any\n"
+"issues.\n"
+"\n"
+"If DrakX is not able to probe for the options to automatically determine\n"
+"which parameters need to be passed to the hardware, you'll need to manually\n"
+"configure the driver."
+msgstr ""
+
+#: ../help.pm:789
+#, c-format
+msgid ""
+"\"%s\": if a sound card is detected on your system, it'll be displayed\n"
+"here. If you notice the sound card is not the one actually present on your\n"
+"system, you can click on the button and choose a different driver."
+msgstr ""
+
+#: ../help.pm:794
+#, c-format
+msgid ""
+"As a review, DrakX will present a summary of information it has gathered\n"
+"about your system. Depending on the hardware installed on your machine, you\n"
+"may have some or all of the following entries. Each entry is made up of the\n"
+"hardware item to be configured, followed by a quick summary of the current\n"
+"configuration. Click on the corresponding \"%s\" button to make the change.\n"
+"\n"
+" * \"%s\": check the current keyboard map configuration and change it if\n"
+"necessary.\n"
+"\n"
+" * \"%s\": check the current country selection. If you're not in this\n"
+"country, click on the \"%s\" button and choose another. If your country\n"
+"is not in the list shown, click on the \"%s\" button to get the complete\n"
+"country list.\n"
+"\n"
+" * \"%s\": by default, DrakX deduces your time zone based on the country\n"
+"you have chosen. You can click on the \"%s\" button here if this is not\n"
+"correct.\n"
+"\n"
+" * \"%s\": verify the current mouse configuration and click on the button\n"
+"to change it if necessary.\n"
+"\n"
+" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
+"here. If you notice the sound card is not the one actually present on your\n"
+"system, you can click on the button and choose a different driver.\n"
+"\n"
+" * \"%s\": if you have a TV card, this is where information about its\n"
+"configuration will be displayed. If you have a TV card and it is not\n"
+"detected, click on \"%s\" to try to configure it manually.\n"
+"\n"
+" * \"%s\": you can click on \"%s\" to change the parameters associated with\n"
+"the card if you feel the configuration is wrong.\n"
+"\n"
+" * \"%s\": by default, DrakX configures your graphical interface in\n"
+"\"800x600\" or \"1024x768\" resolution. If that does not suit you, click on\n"
+"\"%s\" to reconfigure your graphical interface.\n"
+"\n"
+" * \"%s\": if you wish to configure your Internet or local network access,\n"
+"you can do so now. Refer to the printed documentation or use the\n"
+"Mageia Control Center after the installation has finished to benefit\n"
+"from full in-line help.\n"
+"\n"
+" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
+"you're installing on is to be located behind a proxy server.\n"
+"\n"
+" * \"%s\": this entry allows you to redefine the security level as set in a\n"
+"previous step ().\n"
+"\n"
+" * \"%s\": if you plan to connect your machine to the Internet, it's a good\n"
+"idea to protect yourself from intrusions by setting up a firewall. Consult\n"
+"the corresponding section of the ``Starter Guide'' for details about\n"
+"firewall settings.\n"
+"\n"
+" * \"%s\": if you wish to change your bootloader configuration, click this\n"
+"button. This should be reserved to advanced users. Refer to the printed\n"
+"documentation or the in-line help about bootloader configuration in the\n"
+"Mageia Control Center.\n"
+"\n"
+" * \"%s\": through this entry you can fine tune which services will be run\n"
+"on your machine. If you plan to use this machine as a server it's a good\n"
+"idea to review this setup."
+msgstr ""
+
+#: ../help.pm:809
+#, c-format
+msgid "TV card"
+msgstr ""
+
+#: ../help.pm:809
+#, c-format
+msgid "ISDN card"
+msgstr ""
+
+#: ../help.pm:858
+#, c-format
+msgid "Graphical Interface"
+msgstr ""
+
+#: ../help.pm:861
+#, c-format
+msgid ""
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
+"and will not be recoverable!"
+msgstr ""
+
+#: ../help.pm:866
+#, c-format
+msgid ""
+"Click on \"%s\" if you want to delete all data and partitions present on\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
+"any Windows data.\n"
+"\n"
+"Click on \"%s\" to quit this operation without losing data and partitions\n"
+"present on this hard disk drive."
+msgstr ""
+
+#: ../help.pm:872
+#, c-format
+msgid "Next ->"
+msgstr ""
+
+#: ../help.pm:872
+#, c-format
+msgid "<- Previous"
+msgstr ""
diff --git a/perl-install/install/help/po/az.po b/perl-install/install/help/po/az.po
index f8948da00..48844f4d9 100644
--- a/perl-install/install/help/po/az.po
+++ b/perl-install/install/help/po/az.po
@@ -10,10 +10,11 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX-az\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2005-03-31 14:21+0200\n"
"Last-Translator: Mətin Əmirov <metin@karegen.com>\n"
"Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n"
+"Language: az\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -24,12 +25,12 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Davam etmədən əvvəl, diqqətlə lisenziyanın qaydalarını oxumalısınız. O,\n"
-"bütün Mandriva Linux distribusiyasını əhatə edir. Əgər lisenziyadakı bütün\n"
+"bütün Mageia distribusiyasını əhatə edir. Əgər lisenziyadakı bütün\n"
"qaydalarla razısınızsa, qutusunu \"%s\" işarələyin. Əgər razı deyilsəniz, "
"sadəcə olaraq kompüterinizi bağlayın."
@@ -124,13 +125,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Bu xüsusiyyəti istifadə etmək istəyirsiniz?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -140,24 +152,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Burada sürücünüzdə tapılan Linuks bölmələri sıralanıb.\n"
@@ -195,15 +211,15 @@ msgstr ""
"\"b\"nin mə'nası \"ikinci ən düşük SCSİ ID\"dir, vs..."
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Mandriva Linux qurulumu müxtəlif CD-lər üstündə gəlir. DrakX\n"
+"Mageia qurulumu müxtəlif CD-lər üstündə gəlir. DrakX\n"
"seçili paketlərin hansı CD'də olduğunu bilir ona görə də lazım olanda\n"
"hazırkı CD-ni çıxardıb sizdən lazım olan CD-ni daxil etməyi istəyəcək.\n"
"Əgər əlinizin altında istənən CD yoxdursa \"%s\" düyməsinə basın və istənən\n"
@@ -213,12 +229,11 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -231,8 +246,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -270,11 +284,11 @@ msgid ""
"megabytes."
msgstr ""
"İndi sisteminizə qurmaq istədiyiniz proqramları müəyyən etmə vaxtıdır.\n"
-"Mandriva Linux daxilində minlərcə proqram mövcuddur və idarələrinin\n"
+"Mageia daxilində minlərcə proqram mövcuddur və idarələrinin\n"
"asan olması üçün onlar bənzər paketlər qruplarına ayrılıblar.\n"
"\n"
"Paketlər sisteminizin xüsusui istifadə sahəsinə görə qruplanıb.\n"
-"Mandriva Linuxda dörd əvvəldən müəyyən edilmiş qurulum növü mövcuddur.\n"
+"Mageiada dörd əvvəldən müəyyən edilmiş qurulum növü mövcuddur.\n"
"Yalnız siz bu qrupları yenə də qarışdıra bilərsiniz və istədiyiniz əlavə.\n"
"proqramları seçə bilərsiniz. Misal üçün ''İş Stansiyası'' qurulumu\n"
"``İnkişaf'' qurulumundakı proqramları daxil edə bilər.\n"
@@ -344,10 +358,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -379,8 +393,7 @@ msgstr ""
"verici\n"
"seçilsə, sizə bu vericini həqiqətən də qurmaq istədiyinizi soruşan və "
"sizdən\n"
-"təsdiq istəyən pəncərə göstəriləcək. Əsas olaraq Mandriva Linux bütün "
-"qurulu\n"
+"təsdiq istəyən pəncərə göstəriləcək. Əsas olaraq Mageia bütün qurulu\n"
"olan xidmətləri açılışda fəal edir. Distribusiyanın çıxdığı vaxt onların "
"bilinən heç bir\n"
"xətası ya da təhlükəli yanı olmasa da, mümkündür ki, müəyyən vaxt sonra\n"
@@ -391,7 +404,7 @@ msgstr ""
"xidmət sisteminizə qurulacaq və sisteminizin açılışında fəal hala "
"gətiriləcək.\n"
"Qeyd: Xidmətlərin açılışda fəal olub olmamasını qurulum bitdikdən sonra da\n"
-"Mandriva Linux İdarə Mərkəzindən quraşdıra bilərsiniz!!\n"
+"Mageia İdarə Mərkəzindən quraşdıra bilərsiniz!!\n"
"\n"
"\"%s\" seçimi, bir proqramı seçdiyiniz zaman qurulum proqramının o proqram "
"ilə\n"
@@ -417,17 +430,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Avtomatik asıllılıqlar"
-#: ../help.pm:186
-#, fuzzy, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": \"%s\" düyməsinə basmaq çapçı quraşdırma sehirbazını başladacaq."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, fuzzy, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -499,7 +502,12 @@ msgstr ""
"Bu seçim əslində yerli şəbəkənizdəki başqa kompüterlərin də istifadə edə\n"
"biləcəyi zaman vericisini qurur."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Avtomatik zaman sinxronlaşdırılması"
@@ -533,7 +541,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -588,7 +596,7 @@ msgid ""
"not successful in getting the display configured."
msgstr ""
"X (X Pəncərə Sistemi) GNU/Linuks qrafiki ara üzünün qəlbidir.\n"
-"Mandriva Linuxla bərabər gələn qrafiki mühitlərin hamısı (KDE, \n"
+"Mageiala bərabər gələn qrafiki mühitlərin hamısı (KDE, \n"
"GNOME, AfterStep, WindowMaker, vs.) buna bağlıdır.\n"
"\n"
"Optimal görünüşü almaq üçün sizə dəyişdiriləcək fərqli parametrlər\n"
@@ -708,39 +716,43 @@ msgstr ""
#: ../help.pm:319
#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -749,15 +761,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -770,10 +782,10 @@ msgid ""
"experience. For more instructions on how to use the DiskDrake utility,\n"
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
-"Bu nöqtədə Mandriva Linuxi sabit diskinizdə haraya quracağınıza\n"
+"Bu nöqtədə Mageiai sabit diskinizdə haraya quracağınıza\n"
"qərar verəcəksiniz. Əgər diskiniz boş isə və ya bir başqa sistem\n"
-"bütün yeri doldurmuş isə, o zaman diskinizdə Mandriva Linux üçün\n"
-"yer açmalısınız. Bölmələndirmə əsasən diskinizdə Mandriva Linuxu\n"
+"bütün yeri doldurmuş isə, o zaman diskinizdə Mageia üçün\n"
+"yer açmalısınız. Bölmələndirmə əsasən diskinizdə Mageiau\n"
"qurmaqməntiqi sürücülər yaratmaqdan ibarətdir.\n"
"\n"
"Ümumiyyətlə bölmələndirmənin təsiri geri dönülməzdir və mə'lumat\n"
@@ -808,8 +820,7 @@ msgstr ""
"'Scandisk' və\n"
"'Defraq' əmrlərinin icra edilməsinir. Eyni zamanda mə'lumatlarınızın ehtiyat "
"nüsxəsini almayı\n"
-"da qətiyyən unutmayın. Kompüteriniz üstündə həm Mandriva Linux həm də "
-"Microsoft\n"
+"da qətiyyən unutmayın. Kompüteriniz üstündə həm Mageia həm də Microsoft\n"
"Windows ƏS'lərini işlətmək istəyirsinizsə bu seçənəyi seçin. Unutmayın ki "
"Microsoft\n"
"Windows bölmənizin böyüklüyünü Windows altında da bəzi (PartitionMagic) "
@@ -821,7 +832,7 @@ msgstr ""
"bölməniz əvvəlkindən daha kiçik olacaq.\n"
"\n"
" * \"%s\": əgər sisteminizdəki bütün mövcud bölmələri silmək və yerinə\n"
-"Mandriva Linux sistemini qurmaq istəyirsinizsə bu seçənəyi seçin.\n"
+"Mageia sistemini qurmaq istəyirsinizsə bu seçənəyi seçin.\n"
"Diqqətli olun, ona görə ki seçiminizi təsdiqlədikdən sonra geri ala "
"bilməyəcəksiniz.\n"
"\n"
@@ -848,7 +859,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Mövcud bölməni işlət"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Bütün diski sil"
@@ -928,7 +944,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Avtomatik qurulum disketi hazırla"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -948,7 +979,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -971,7 +1002,7 @@ msgstr ""
"\n"
"Bölmələri şəkilləndirməyə hazır olanda \"%s\" düyməsini basın.\n"
"\n"
-"Yeni Mandriva Linux sisteminizi qurmaq üçün başqa bölmə seçmək\n"
+"Yeni Mageia sisteminizi qurmaq üçün başqa bölmə seçmək\n"
"istəyirsinizsə \"%s\" düyməsinə basın.\n"
"\n"
"Üstündəki xəsərli blokların yoxlanmasını istədiyiniz bölmələri seçmək\n"
@@ -980,7 +1011,7 @@ msgstr ""
#: ../help.pm:437
#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -992,7 +1023,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Mandriva Linuxu qurduğunuz vaxtda çox güman ki bə'zi paketlər \n"
+"Mageiau qurduğunuz vaxtda çox güman ki bə'zi paketlər \n"
"ilk çıxışlarından sonra yenilənmiş ola bilər. Bunlarla bir çox xəta "
"düzəldilmiş\n"
"ya da təhlükəsizlik qüvvətləndirilmiş ola bilər. Bu yeniləmələrdən istifadə\n"
@@ -1016,7 +1047,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1040,21 +1071,24 @@ msgstr "Təhlükəsizlik İdarəçisi"
#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1070,21 +1104,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1101,16 +1137,10 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-"Bu nöqtədə siz Mandriva Linux yüklənəcək bölmə(lər)i seçməlisiniz. Əgər\n"
+"Bu nöqtədə siz Mageia yüklənəcək bölmə(lər)i seçməlisiniz. Əgər\n"
"bölmələr əvvəldən mövcuddursa (sistemdə əvvəllər qurulu olan GNU/Linuks \n"
"bölmələri və ya başqa bölmələndirmə vasitələri ilə hazırladığınız "
"bölmələr),\n"
@@ -1126,7 +1156,7 @@ msgstr ""
" * \"%s\": Bu seçim seçili sabit disk üstündəki bütün bölmələri silər\n"
"\n"
" * \"%s\": Bu seçim sizə avtomatik olaraq sabit diskinizin boş sahəsində\n"
-"ext3 və dəyiş-toqquş sahəsi yaratma imkanı verəcək\n"
+"ext4 və dəyiş-toqquş sahəsi yaratma imkanı verəcək\n"
"\n"
"\"%s\": Əlavə xüsusiyyətlərə yetişmə imkanı verir\n"
"\n"
@@ -1183,19 +1213,38 @@ msgstr ""
"Fərqli fayl sistem növləri haqqında daha ətraflı mə'lumat üçün, xahiş "
"edirik,\n"
"``Reference Manual'' kitabının ext2FS bölümünü oxuyun.\n"
-"\n"
-"Əgər PPC kompüterdə qurulum aparırsınızsa, ən az 1 MBlıq balaca bir HFS \n"
-"``bootstrap'' bölməsini yaboot açılış yükləyicisi üçün seçmək "
-"istəyəcəksiniz.\n"
-"Əgər daha çox yeriniz varsa, məsələn 50 MB, onda bütün kernel və ramdisk \n"
-"açılış əkslərinizi təcili hallar üçün burada saxlaya bilərsiniz."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Sökülə bilən avadanlıqların avtomatik bağlanması"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Normal modla mütəxəssis modu arasında keç"
@@ -1203,38 +1252,44 @@ msgstr "Normal modla mütəxəssis modu arasında keç"
#: ../help.pm:536
#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Sürücünüzdə bir və ya daha çox Microsoft bölməsi tapıldı.\n"
-"Xahiş edirik, Mandriva Linuxi qurmaq üçün onlardan hansını\n"
+"Xahiş edirik, Mageiai qurmaq üçün onlardan hansını\n"
"yenidən ölçüləndirmək istədiyinizi seçin.\n"
"\n"
"Hər bölmə bu cür sıralanıb; \"Linuks adı\",\"Windows adı\"\n"
@@ -1283,28 +1338,28 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Bu addım, yalnız sisteminizdə daha əvvəldən qurulu olan GNU/Linuks bölməsi\n"
"tapılanda fəal olur.\n"
"\n"
-"DrakX indi mövcud Mandriva Linux sisteminizi yeniləmək mi, yoxsa yenidən\n"
+"DrakX indi mövcud Mageia sisteminizi yeniləmək mi, yoxsa yenidən\n"
"qurmaq mı istədiyinizi bilməlidir.\n"
"\n"
" * \"%s\": Bu seçim köhnə sistemi tamamilə siləcək. Əgər sabit "
@@ -1314,13 +1369,12 @@ msgstr ""
"bu seçimi seçin. Yalnız, bölmələndirmə sxeminizdən aslı olaraq bə'zi mövcud\n"
"mə'lumatlarınızın üstündən yazılmasının qabağını ala bilərsiniz.\n"
"\n"
-" * \"%s\": Hazırkı Mandriva Linux sisteminizdə qurulu olan paketləri "
-"yeniləmə\n"
+" * \"%s\": Hazırkı Mageia sisteminizdə qurulu olan paketləri yeniləmə\n"
"imkanı verir. Qurulum hazırkı bölmələmə sxemi və istifadəçi mə'lumat və "
"sənədlərinə\n"
"dəyməyəcək və dəyişdirməyəcək. Digər qurulum addımlarının çoxu isə standart\n"
"qurulumdakının eynisi olacaq. Bu seçimi \"8.1\" versiyasından əvvəlki "
-"Mandriva Linuxlarda\n"
+"Mageialarda\n"
"tədbiq etmək uyğun görülmür."
#: ../help.pm:594
@@ -1379,8 +1433,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1430,7 +1483,12 @@ msgstr ""
msgid "Espanol"
msgstr "İspanca"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, fuzzy, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1508,90 +1566,7 @@ msgstr ""
"Xahiş edirik, doğru qapını seçin. Məsələn, Windows'dakı COM1\n"
"GNU/Linuks'da ttyS0'dır."
-#: ../help.pm:691
-#, fuzzy, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Bu, GNU/Linuks sisteminizin təhlükəsizliyi üçün ən əsas mərhələdir.\n"
-"\"Ali istifadəçi (root)\" şifərsini daxil edəcəksiniz. \"Ali istifadəçi\" "
-"sistemin\n"
-"idarəçisidir və yalnız o yeniləmələri, istifadəçiləri əlavə edib/silməyi\n"
-"sistemin bütün qurğularını dəyişdirə bilər. Qısaca, \"ali istifadəçi\" hər\n"
-"şeyi edə bilər! Buna görə də tapılması çətin olan bir şifrə seçməlisiniz.\n"
-"DrakX seçdiyiniz şifrənin asan olub olmadığını sizə bildirəcək. Görüdüyünüz\n"
-"kimi, şifrə müəyyən etməkdə məcbur deyilsiniz, yalnız bunu sizə şiddətlə\n"
-"məsləhət etmirik. GNU/Linuks da diqər əməliyyat sistemləri kimi "
-"istifadəçinin\n"
-"xətasından çox tə'sir ala bilər. \"Ali istifadəçi\" bütün həddləri keçərək\n"
-"bütün bölmələrdəki bütün mə'lumatları silə bilər. Ona görə də ali "
-"istifadəçi\n"
-"olma imkanını olduqca çətinləşdirməlisiniz.\n"
-"\n"
-"Şifrəniz ədəd və hərflərin qarışığı olmalıdır və 8 hərfdən qısa "
-"olmamalıdır.\n"
-"Şifrəni heçvaxt başqa bir yerə qeyd etməyin.\n"
-"\n"
-"Yalnız şifrəni çox uzun ya da çətin də seçməyin ona görə ki onu əzbərləmək\n"
-"məcburiyyətindəsiniz!\n"
-"\n"
-"Şifrənizi yazarkən ekranda göstərilməyəcək. Xəta riskini azaltmaq üçün\n"
-"şifrəni iki dəfə daxil edəcəksiniz. Burada diqqətli olun və eyni xətanı\n"
-"iki dəfə etməyin.\n"
-"\n"
-"Əgər bu kompüterə yetişmənin səlahiyyət vericisi tərəfindən idarə "
-"edilməsini\n"
-"istəyirsinizsə, \"%s\" düyməsinə basın.\n"
-"\n"
-"Əgər şəbəkəniz LDAP, NIS, ya da PDC Windows Domain authentication\n"
-"xidmətlərindən birisini işlədirsə, \"%s\" üçün uyğun gələnini seçin. Əgər\n"
-"hansını işlədəcəyinizi bilmirsinizsə, şəbəkə idarəçinizdən soruşun.\n"
-"\n"
-"Əgər şifrələri yadda saxlamaqda çətinlik çəkirsinizsə, internetə heç\n"
-"vaxt bağlanmayacaqsanızsa ya da kompüterini işlədən hamıya e'tibar\n"
-"edirsinizsə \"%s\" seçimini seçə bilərsiniz."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "səlahiyyətləndirmə"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, fuzzy, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1605,7 +1580,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1634,7 +1609,7 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1655,12 +1630,12 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"İndi kompüteriniz üçün çap sistemini seçmə vaxtı gəldi. Digər ƏS'ləri sizə "
"bir\n"
-"dənəsini təqdim edə bilərlər, yalnız Mandriva Linux ikisini təqdim edir.\n"
+"dənəsini təqdim edə bilərlər, yalnız Mageia ikisini təqdim edir.\n"
"Hər çap sistemi xüsusi quraşdırma növləri üçün uyğundur.\n"
"\n"
" * \"%s\" -- bu seçim``çap et, növbəyə alma'' mə'nasına gəlir.\n"
@@ -1687,7 +1662,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Usta"
@@ -1700,7 +1680,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1763,11 +1743,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1785,8 +1760,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1803,7 +1777,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1874,7 +1848,12 @@ msgstr ""
"bilərsiniz.\n"
"Əgər sisteminizi verici olaraq işlətəcəksəniz, bu qurğuları gözdən keçirin."
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "ISDN kartı"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN kartı"
@@ -1887,11 +1866,11 @@ msgstr "Qrafiki Ara Üz"
#: ../help.pm:861
#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
-"Yeni Mandriva Linux'izi qurmaq üçün silmək istədiyiniz sürücünü seçin.\n"
+"Yeni Mageia'izi qurmaq üçün silmək istədiyiniz sürücünü seçin.\n"
"Diqqətli olun, sürücüdəki bütün mə'lumatlar silinəcək\n"
"və geri gəlməyəcək!"
@@ -1899,12 +1878,14 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Sürücüdəki bütün mə'lumatları və bölmələri silmək üçün\n"
"\"%s\" düyməsinə basın. Diqqətli olun,\"%s\" düyməsinə basdıqdan sonra\n"
@@ -1924,3 +1905,113 @@ msgstr "Sonrakı ->"
msgid "<- Previous"
msgstr "<- Əvvəlki"
+#, fuzzy
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": \"%s\" düyməsinə basmaq çapçı quraşdırma sehirbazını başladacaq."
+
+#, fuzzy
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "Bu, GNU/Linuks sisteminizin təhlükəsizliyi üçün ən əsas mərhələdir.\n"
+#~ "\"Ali istifadəçi (root)\" şifərsini daxil edəcəksiniz. \"Ali istifadəçi\" "
+#~ "sistemin\n"
+#~ "idarəçisidir və yalnız o yeniləmələri, istifadəçiləri əlavə edib/silməyi\n"
+#~ "sistemin bütün qurğularını dəyişdirə bilər. Qısaca, \"ali istifadəçi\" "
+#~ "hər\n"
+#~ "şeyi edə bilər! Buna görə də tapılması çətin olan bir şifrə "
+#~ "seçməlisiniz.\n"
+#~ "DrakX seçdiyiniz şifrənin asan olub olmadığını sizə bildirəcək. "
+#~ "Görüdüyünüz\n"
+#~ "kimi, şifrə müəyyən etməkdə məcbur deyilsiniz, yalnız bunu sizə şiddətlə\n"
+#~ "məsləhət etmirik. GNU/Linuks da diqər əməliyyat sistemləri kimi "
+#~ "istifadəçinin\n"
+#~ "xətasından çox tə'sir ala bilər. \"Ali istifadəçi\" bütün həddləri "
+#~ "keçərək\n"
+#~ "bütün bölmələrdəki bütün mə'lumatları silə bilər. Ona görə də ali "
+#~ "istifadəçi\n"
+#~ "olma imkanını olduqca çətinləşdirməlisiniz.\n"
+#~ "\n"
+#~ "Şifrəniz ədəd və hərflərin qarışığı olmalıdır və 8 hərfdən qısa "
+#~ "olmamalıdır.\n"
+#~ "Şifrəni heçvaxt başqa bir yerə qeyd etməyin.\n"
+#~ "\n"
+#~ "Yalnız şifrəni çox uzun ya da çətin də seçməyin ona görə ki onu "
+#~ "əzbərləmək\n"
+#~ "məcburiyyətindəsiniz!\n"
+#~ "\n"
+#~ "Şifrənizi yazarkən ekranda göstərilməyəcək. Xəta riskini azaltmaq üçün\n"
+#~ "şifrəni iki dəfə daxil edəcəksiniz. Burada diqqətli olun və eyni xətanı\n"
+#~ "iki dəfə etməyin.\n"
+#~ "\n"
+#~ "Əgər bu kompüterə yetişmənin səlahiyyət vericisi tərəfindən idarə "
+#~ "edilməsini\n"
+#~ "istəyirsinizsə, \"%s\" düyməsinə basın.\n"
+#~ "\n"
+#~ "Əgər şəbəkəniz LDAP, NIS, ya da PDC Windows Domain authentication\n"
+#~ "xidmətlərindən birisini işlədirsə, \"%s\" üçün uyğun gələnini seçin. "
+#~ "Əgər\n"
+#~ "hansını işlədəcəyinizi bilmirsinizsə, şəbəkə idarəçinizdən soruşun.\n"
+#~ "\n"
+#~ "Əgər şifrələri yadda saxlamaqda çətinlik çəkirsinizsə, internetə heç\n"
+#~ "vaxt bağlanmayacaqsanızsa ya da kompüterini işlədən hamıya e'tibar\n"
+#~ "edirsinizsə \"%s\" seçimini seçə bilərsiniz."
+
+#~ msgid "authentication"
+#~ msgstr "səlahiyyətləndirmə"
diff --git a/perl-install/install/help/po/be.po b/perl-install/install/help/po/be.po
index 681952245..265ccde90 100644
--- a/perl-install/install/help/po/be.po
+++ b/perl-install/install/help/po/be.po
@@ -6,10 +6,11 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2000-09-24 12:30 +0100\n"
"Last-Translator: Alexander Bokovoy <ab@avilink.net>\n"
"Language-Team: be\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -18,7 +19,7 @@ msgstr ""
#, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
@@ -65,6 +66,16 @@ msgid ""
msgstr ""
#: ../help.pm:54
+#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
#, fuzzy, c-format
msgid "Do you want to use this feature?"
msgstr "Вы жадаеце выкарыстоўваць aboot?"
@@ -72,7 +83,8 @@ msgstr "Вы жадаеце выкарыстоўваць aboot?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -82,31 +94,35 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
#: ../help.pm:88
#, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
@@ -117,12 +133,11 @@ msgstr ""
#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -135,8 +150,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -203,10 +217,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -232,16 +246,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Аўтаматычнае вызначэнне"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -279,7 +284,12 @@ msgid ""
"server which can be used by other machines on your local network as well."
msgstr ""
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, fuzzy, c-format
msgid "Automatic time synchronization"
msgstr "Аўтаматычнае вызначэнне"
@@ -303,7 +313,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -401,39 +411,43 @@ msgstr ""
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -442,15 +456,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -469,7 +483,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Выкарыстоўваць існуючы раздзел"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Сцёрці дадзеныя на ўсім дыску"
@@ -517,7 +536,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Стварэнне дыскеты для ўсталявання"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -537,7 +571,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -546,7 +580,7 @@ msgstr ""
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -569,7 +603,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -585,21 +619,24 @@ msgstr "Сістэмнае адміністраваньне"
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -615,21 +652,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -646,22 +685,41 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr ""
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, fuzzy, c-format
msgid "Toggle between normal/expert mode"
msgstr "Звычайны рэжым"
@@ -669,34 +727,40 @@ msgstr "Звычайны рэжым"
#: ../help.pm:536
#, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
@@ -716,23 +780,23 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
#: ../help.pm:594
@@ -773,8 +837,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -806,7 +869,12 @@ msgstr ""
msgid "Espanol"
msgstr "Эсперанто:"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -860,53 +928,7 @@ msgid ""
"Windows is named \"ttyS0\" under GNU/Linux."
msgstr ""
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-
-#: ../help.pm:725
-#, fuzzy, c-format
-msgid "authentication"
-msgstr "Аўтэнтыфікацыя"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -920,7 +942,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -931,7 +953,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -952,7 +974,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
@@ -961,7 +983,12 @@ msgstr ""
msgid "pdq"
msgstr ""
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, fuzzy, c-format
msgid "Expert"
msgstr "/Графік"
@@ -974,7 +1001,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1019,11 +1046,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1041,8 +1063,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1059,14 +1080,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "Унутраная ISDN карта"
+
+#: ../help.pm:809
#, fuzzy, c-format
msgid "ISDN card"
msgstr "Унутраная ISDN карта"
@@ -1079,8 +1105,8 @@ msgstr "Запуск X пры старце сістэмы"
#: ../help.pm:861
#, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
@@ -1088,12 +1114,14 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
#: ../help.pm:872
@@ -1106,3 +1134,6 @@ msgstr "Далей ->"
msgid "<- Previous"
msgstr "<- прылада"
+#, fuzzy
+#~ msgid "authentication"
+#~ msgstr "Аўтэнтыфікацыя"
diff --git a/perl-install/install/help/po/bg.po b/perl-install/install/help/po/bg.po
index 3c1d84745..ed19a7912 100644
--- a/perl-install/install/help/po/bg.po
+++ b/perl-install/install/help/po/bg.po
@@ -10,10 +10,11 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX-bg\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2004-09-15 13:27+0200\n"
"Last-Translator: Boyan Ivanov <boyan17@bulgaria.com>\n"
"Language-Team: Bulgarian <dict@linux.zonebg.com>\n"
+"Language: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -24,14 +25,13 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Преди да продължите, трябва внимателно да прочетете условията на лиценза. "
"Той\n"
-"покрива цялата Mandriva Linux дистрибуция, и, ако сте съгласни с всички "
-"условия\n"
+"покрива цялата Mageia дистрибуция, и, ако сте съгласни с всички условия\n"
"в него, сложете отметка на \"%s\".Ако не сте съгласни,просто спрете "
"компютъра си."
@@ -121,13 +121,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Искате ли да използвате тази особеност?"
#: ../help.pm:57
#, fuzzy, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -137,24 +148,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"По-горе са изброени засечените Linux дялове съществуващи\n"
@@ -195,13 +210,13 @@ msgstr ""
#: ../help.pm:88
#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Инсталацията на Mandriva Linux е разположена на няколко CDROM-а. DrakX\n"
+"Инсталацията на Mageia е разположена на няколко CDROM-а. DrakX\n"
"знае дали избран пакет не се намира на друг CDROM,така че ще извади "
"текущото\n"
"CD и ще ви остави да вкарате това, от което има нужда."
@@ -210,12 +225,11 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -228,8 +242,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -267,7 +280,7 @@ msgid ""
"megabytes."
msgstr ""
"Сега е моментът да определите кои програми искате да бъдат инсталирани на\n"
-"системата ви. В Mandriva Linux дистрибуцията има хиляди пакети, но не е\n"
+"системата ви. В Mageia дистрибуцията има хиляди пакети, но не е\n"
"задължително да ги знаете наизуст.\n"
"\n"
"Ако извършвате стандартна инстлация от CDROM, първо ще бъдете попитани кои\n"
@@ -337,10 +350,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -376,11 +389,10 @@ msgstr ""
"\n"
"!! Ако е избран сървърен пакет, било то умишлено или защото е част от цяла\n"
"група, ще бъдете помолени за потвърждение, че наистина искате този сървър\n"
-"да бъде инсталиран. В Mandriva Linux, всички сървъри тръгват по "
-"подразбиране\n"
+"да бъде инсталиран. В Mageia, всички сървъри тръгват по подразбиране\n"
"при зареждане.Даже ако са сигурни и нямат известни проблеми, когато\n"
"дистрибуцията се разпространява, може да се случи така, че да се появят\n"
-"дупки в сигурността, след като версията на Mandriva Linux е завършена. Ако\n"
+"дупки в сигурността, след като версията на Mageia е завършена. Ако\n"
"не знаете за какво служи определена услуга или защо е инсталирана, цъкнете\n"
"\"Не\". С цъкане на \"Да\" ще инсталирате изброени услуги и те ще бъдат\n"
"стартирани автоматично по подразбиране. !!\n"
@@ -402,16 +414,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr ""
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-
-#: ../help.pm:192
+#: ../help.pm:185
#, fuzzy, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -468,7 +471,12 @@ msgid ""
"server which can be used by other machines on your local network as well."
msgstr ""
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Автоматична синхронизация на времето"
@@ -492,7 +500,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -595,39 +603,43 @@ msgstr ""
#: ../help.pm:319
#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -636,15 +648,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -659,12 +671,12 @@ msgid ""
msgstr ""
"В този момент трябва изберете къде на твърдия си диска да инсталирате "
"вашата\n"
-"Mandriva Linux операционна система. Ако твърдият ви диск е празен или друга\n"
+"Mageia операционна система. Ако твърдият ви диск е празен или друга\n"
"операционна система използва цялото пространство, ще трябва да го "
"разделите.\n"
"Казано простичко, разделянето на твърдия диск се състои в логическо "
"разделяне\n"
-"цел да се създаде място за инсталация на новата Mandriva Linux система.\n"
+"цел да се създаде място за инсталация на новата Mageia система.\n"
"\n"
"Тъй като процесът на разделяне обикновено е необратим, разделянето може да\n"
"изглежда плашещ и стряскащ, ако сте неопитен потребител. Слава Богу, има\n"
@@ -673,7 +685,7 @@ msgstr ""
"с ръководството и не бързайте.\n"
"\n"
"Ако пускате инсталацията в Експертен режим, ще бъдете въведени в DiskDrake,\n"
-"разделящия инструмент на Mandriva Linux, който ви позволява да донастроите\n"
+"разделящия инструмент на Mageia, който ви позволява да донастроите\n"
"дяловете си. Вижте главата DiskDrake от ръководството. От инсталационния\n"
"интерфейс можете да използвате магьосниците, като натиснете бутона\n"
"\"Магьосник\" на диалога.\n"
@@ -701,7 +713,7 @@ msgstr ""
"решенията \"Изтрий целия диск\" или \"Екпертен режим\") или да промените\n"
"големината на Microsoft Windows дяла. Промяната на големината може да бъде\n"
"извършена без загуба на данни. Това решение се препоръчва, ако искате\n"
-"едновременно Mandriva Linux и Microsoft Windows на един и същи компютър.\n"
+"едновременно Mageia и Microsoft Windows на един и същи компютър.\n"
"\n"
" Преди да изберете тази опция, моля, разберете, че след тази процедура,\n"
"големината на Microsoft Windows дяла ще бъде по-малка, отколкото преди "
@@ -711,7 +723,7 @@ msgstr ""
"инсталира на нов софтуер.\n"
"\n"
" * \"%s\": ако искате да изтриете всички данни и дялове, които\n"
-"съществуват на вашия твърд диск и да ги замените с новата Mandriva Linux\n"
+"съществуват на вашия твърд диск и да ги замените с новата Mageia\n"
"система, изберете тази опция. Бъдете внимателни с това решения, защото няма\n"
"да можете да върнете обратно избора си, след като потвърдите.\n"
"\n"
@@ -734,7 +746,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Изпозване на съществуващ дял"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Изтрий целия диск"
@@ -815,7 +832,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Подготвя дискета за автоматична инсталация"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -835,7 +867,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -865,7 +897,7 @@ msgstr ""
"\n"
"Цъкнете \"Отказ\", ако искате да изберете други дялове за инсталация на "
"новата\n"
-"си Mandriva Linux операционна система.\n"
+"си Mageia операционна система.\n"
"\n"
"Цъкнете \"Напредничав\", ако искате да изберете дялове, които да бъдат\n"
"проверени за лоши блокове от диска."
@@ -873,7 +905,7 @@ msgstr ""
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -896,7 +928,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -923,21 +955,24 @@ msgstr "Администратор по защита:"
#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -953,21 +988,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -984,18 +1021,12 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"В този момент трябва да изберете кой дялове да бъдат използвани за "
"инсталация\n"
-"на вашата Mandriva Linux система. Ако дяловете вече са определени, дали от\n"
+"на вашата Mageia система. Ако дяловете вече са определени, дали от\n"
"предишна инсталация на GNU/Linux или от друг инструмент за разделяне, "
"можете\n"
"да използвате съществуващите далове. В противен случай трябва да определите\n"
@@ -1052,20 +1083,38 @@ msgstr ""
" * Ctrl-d, за да изтриете дял;\n"
"\n"
" * Ctrl-m, за да установите точка на монтиране.\n"
-"\n"
-"Ако инсталите на PPC машина, сигурно ще искате да създадете малък HFS\n"
-"\"bootstrap\" дял от поне 1 МБ, който ще бъде използват от boot loader-ът\n"
-"yaboot. Ако смятате да направите дяла по-голям, например 50 МБ, можете да "
-"го\n"
-"намерите за полезно място, където да съхранявате някое ядро или image на\n"
-"ramdisk в случай на извънредни ситуации."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, fuzzy, c-format
msgid "Removable media auto-mounting"
msgstr "Автоматично монтиране на сменяем носител"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Премини в нормален/експертен режим"
@@ -1073,40 +1122,46 @@ msgstr "Премини в нормален/експертен режим"
#: ../help.pm:536
#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Беше засечен повече от един Microsoft Windows дял\n"
"на твърдия ви диска. Изберете този, чиято дължина искате да промените, за "
"да\n"
-"инсталирате Mandriva Linux операционна система.\n"
+"инсталирате Mageia операционна система.\n"
"\n"
"\n"
"За информация, всеки дял е изброен както следва: \"Linux име\", \"Windows име"
@@ -1154,23 +1209,23 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
#: ../help.pm:594
@@ -1232,8 +1287,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1276,7 +1330,12 @@ msgstr ""
msgid "Espanol"
msgstr ""
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, fuzzy, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1344,53 +1403,7 @@ msgstr ""
"Моля, изберете верния порт. Например, портът COM1 под Windows под GNU/Linux\n"
"се нарича ttyS0."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "идентификация"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1404,7 +1417,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1415,7 +1428,7 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1436,7 +1449,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Дойде времето да изберете система за печат за вашия компютър.Другите\n"
@@ -1471,7 +1484,12 @@ msgstr ""
msgid "pdq"
msgstr ""
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Трудно"
@@ -1484,7 +1502,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1532,11 +1550,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1554,8 +1567,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1572,14 +1584,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "ISDN карта"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN карта"
@@ -1592,25 +1609,27 @@ msgstr "Графичен интерфейс"
#: ../help.pm:861
#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"Изберете твърдия диск, който искате да изтриете, за да\n"
-"инсталирам новия ви Mandriva Linux дял. Внимание, всички данни на него ще "
-"бъдат загубени\n"
+"инсталирам новия ви Mageia дял. Внимание, всички данни на него ще бъдат "
+"загубени\n"
"и няма да могат да се възстановят."
#: ../help.pm:866
#, fuzzy, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Цъкнете на \"%s\", ако искате да изтриете всички данни и\n"
"дялове съществуващи на този твърд диск. Внимание, след цъкане на \"%s\", "
@@ -1631,3 +1650,5 @@ msgstr "Следващ ->"
msgid "<- Previous"
msgstr "<- Предишен"
+#~ msgid "authentication"
+#~ msgstr "идентификация"
diff --git a/perl-install/install/help/po/bn.po b/perl-install/install/help/po/bn.po
index 608c3b016..3aa3fd073 100644
--- a/perl-install/install/help/po/bn.po
+++ b/perl-install/install/help/po/bn.po
@@ -9,20 +9,21 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX HEAD\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2005-03-19 23:18+0600\n"
"Last-Translator: Samia <mailsamia2001@yahoo.com>\n"
"Language-Team: Bangla <mdk-translation@bengalinux.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
@@ -117,6 +118,16 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "এই সুবিধাটি কি আপনি ব্যবহার করতে চান?"
@@ -125,7 +136,8 @@ msgstr "এই সুবিধাটি কি আপনি ব্যবহা
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -135,24 +147,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"আপনার হার্ড ড্রাইভে বর্তমানে নিম্নলিখিত লিনাক্স পার্টিশনগুলো বিদ্যমান।\n"
@@ -188,9 +204,9 @@ msgstr ""
"\"দ্বিতীয় সর্বনিম্ন SCSI ID\", ইত্যাদি।"
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
@@ -206,15 +222,14 @@ msgstr ""
# সাম:
# documentation = ডকুমেন্টেশন
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -227,8 +242,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -266,11 +280,10 @@ msgid ""
"megabytes."
msgstr ""
"এখন আপনাকে নির্বাচন করতে হবে আপনি কোন কোন প্রোগ্রাম সিস্টেমে ইনস্টল করতে চান।\n"
-"Mandriva Linux এর জন্য কয়েক হাজার প্যাকেজ রয়েছে, এবং ব্যাবস্থাপনার সুবিধার্থে "
-"সেগুলোকে\n"
+"Mageia এর জন্য কয়েক হাজার প্যাকেজ রয়েছে, এবং ব্যাবস্থাপনার সুবিধার্থে সেগুলোকে\n"
"অ্যাপ্লিকেশনের ধরন অনুযায়ী ভাগ করা হয়েছে।\n"
"\n"
-"Mandriva Linux সব প্যাকেজগ্রুপসমূহ চারটি শ্রেণীতে ভাগ করে। আপনি বিভিন্ন শ্রেণীর\n"
+"Mageia সব প্যাকেজগ্রুপসমূহ চারটি শ্রেণীতে ভাগ করে। আপনি বিভিন্ন শ্রেণীর\n"
"অ্যাপ্লিকেশনমিলিয়ে ও মিশিয়ে ইনস্টল করতে পারেন, যেমন একটি ``Workstation''\n"
"ইনস্টলেশনে আপনি ''Server'' শ্রেণী থেকে অ্যাপ্লিকেশন ইনস্টল\n"
"করতে পারেন।\n"
@@ -352,10 +365,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -381,22 +394,8 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "সয়ংক্রিয় নির্ভরতা"
-# sam
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": \"%s\" বাটনে ক্লিক করলে প্রিন্টার কনফিগারেশন উইজার্ড খুলবে।\n"
-"প্রিন্টার কনফিগারেশন সম্বন্ধে আরো জানতে, \"স্টার্টার গাইড\" এর যথাযথ\n"
-"অধ্যায়ের পরামর্শ নিন। আমাদের সহায়িকাতে দেখানো ইন্টারফেসটি, ইনস্টলেশনে\n"
-"ব্যবহৃত ইন্টারফেসের অনুরুপ। "
-
# সাম
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -449,7 +448,12 @@ msgid ""
"server which can be used by other machines on your local network as well."
msgstr ""
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "সয়ংক্রিয় সময় মেলানো"
@@ -482,7 +486,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -602,39 +606,43 @@ msgstr ""
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -643,15 +651,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -670,7 +678,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "উপস্থিত পার্টিশন ব্যবহার করো"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "সম্পূর্ণ ডিস্ক মুছে ফেলো"
@@ -718,9 +731,24 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "সয়ংক্রিয়-ইনস্টল ফ্লপি তৈরী করো"
-# সাম
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+# সাম
+#: ../help.pm:408
+#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -739,7 +767,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -758,17 +786,17 @@ msgstr ""
"\n"
"পার্টিশন ফরম্যাট শুরু করতে \"%s\" চাপুন।\n"
"\n"
-"আপনার নতুন Mandriva Linux অপারেটিং সিস্টেম ইনস্টেশনের জন্য আপনি যদি অন্য একটি "
-"পার্টিশন নির্বাচন করতে, তবে \"%s\" ক্লিক করুন।\n"
+"আপনার নতুন Mageia অপারেটিং সিস্টেম ইনস্টেশনের জন্য আপনি যদি অন্য একটি পার্টিশন "
+"নির্বাচন করতে, তবে \"%s\" ক্লিক করুন।\n"
"\n"
"যদি আপনি পার্টিশনের জন্য ডিস্কের খারাপ ব্লক সনাক্ত করাতে চান তাহলে \"%s\" ক্লিক "
"করুন।"
# সাম
#: ../help.pm:437
-#, c-format
+#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -780,7 +808,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"আপনি যখন Mandriva Linux ইনস্টল করবেন, সম্ভবত প্রথম রিলিজ থেকে কিছু\n"
+"আপনি যখন Mageia ইনস্টল করবেন, সম্ভবত প্রথম রিলিজ থেকে কিছু\n"
"প্যাকেজ আপডেট হয়ে গেছে। কোন সাধারন বা নিরাপত্তা ত্রুটি সমাধান করা হয়েছে।\n"
"আপনাকে এই সুবিধাগুলি দেয়ার লক্ষ্যে এই আপডেটগুলো ইন্টারনেট থেকে ডাউনলোড\n"
"করার সুযোগ দেয়া হয়েছে। যদি আপনার সক্রিয় ইন্টারনেট সংযোগ থাকে, \"%s\" চেক\n"
@@ -794,7 +822,7 @@ msgstr ""
# সাম
# নিরাপত্তা স্তর
#: ../help.pm:450
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -803,7 +831,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -815,7 +843,7 @@ msgstr ""
"হয়। নিরাপত্তা যত বেশী, ব্যবহারের স্বাচ্ছন্দ্য তত কমে যায়।\n"
"\n"
"আপনি যদি নিশ্চিত না হন কোন অপশনটি রাখবেন তবে ডিফল্ট অপশনটিই রাখুন।\n"
-"পরবর্তীতে আপনি এটি draksec টুল (যেটি Mandriva Linux নিয়ন্ত্রন কেন্দ্রের একটি অংশ)\n"
+"পরবর্তীতে আপনি এটি draksec টুল (যেটি Mageia নিয়ন্ত্রন কেন্দ্রের একটি অংশ)\n"
"দিয়ে পরিবর্তন করতে পারবেন।\n"
"\n"
"\"%s\" ক্ষেত্রটিতে যিনি নিরাপত্তার দায়িত্বে নিয়োজিত তার ই-মেইল অ্যাড্রেস দিন।\n"
@@ -828,24 +856,27 @@ msgstr "সিকিউরিটি এ্যডমিনিস্ট্রে
# সাম
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -861,21 +892,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -892,16 +925,10 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-"এই সময়ে আপনাকে Mandriva Linux যে পার্টিশনে ইনস্টল হবে তা নির্বাচন\n"
+"এই সময়ে আপনাকে Mageia যে পার্টিশনে ইনস্টল হবে তা নির্বাচন\n"
"করতে হবে। যদি আগে থেকেই পার্টিশন তৈরী থাকে, (GNU/Linux এর পুর্বের\n"
"কোন ইনস্টলেশনের কারনে বা অন্য কোন পার্টিশন টুল দিয়ে তৈরী করা) আপনি\n"
"সেগুলো ব্যবহার করতে পারেন। অন্যথায় হার্ডড্রাইভ পার্টিশন তৈরী করতে হবে।\n"
@@ -914,7 +941,7 @@ msgstr ""
"\n"
" * \"%s\": এই অপশনটি নির্বাচিত ড্রাইভের সব পার্টিশন মুছে দিবে\n"
"\n"
-" * \"%s\": এই অপশনটি আপনার হার্ডড্রাইভের খালি অংশে স্বয়ংক্রিয়ভাবে ext3 এবং\n"
+" * \"%s\": এই অপশনটি আপনার হার্ডড্রাইভের খালি অংশে স্বয়ংক্রিয়ভাবে ext4 এবং\n"
"swap পার্টিশন তৈরী করতে দিবে।\n"
"\n"
"\"%s\": আরও ফিচার ব্যবহার করার সুযোগ দেয়:\n"
@@ -962,56 +989,114 @@ msgstr ""
"\n"
"বিদ্যমান ফাইল সিস্টেমের ধরন সম্পর্কে জানতে হলে \"Reference Manual\" এর\n"
"ext2FS অধ্যায়টি পড়ুন।\n"
-"\n"
-"আপনি যদি PPC মেশিনে ইনস্টল করেন, তাহলে আপনাকে yaboot বুটলোডারের\n"
-"ব্যবহারের জন্য একটি ছোট অন্তত ১ এমবি এর HFS \"বুটস্ট্র্যাপ\" পার্টিশন তৈরী করতে "
-"হবে।\n"
-"আপনি যদি পার্টিশনটি আরও বড় করতে চান, যেমন ৫০ MB, আপনি কোন জরুরী বুট সমস্যার\n"
-"জন্য একটি আলাদা কার্নেল এবং ramdisk তৈরী করে এই পার্টিশনে রাখতে পারেন।"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "রিমুভযোগ্য মিডিয়া সয়ংক্রিয়ভাবে মাউন্ট করা হচ্ছে"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "সাধারণ/দক্ষ মোডের মধ্যে পরিবর্তন"
+# সাম:
+# secondary = সহকারী?
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
+"আপনার হার্ড ড্রাইভে বর্তমানে নিম্নলিখিত লিনাক্স পার্টিশনগুলো বিদ্যমান।\n"
+"আপনি উইজার্ড কর্তৃক বাছাইকৃত সেটিংসমূহ রাখতে পারেন কারণ বেশীরভাগ\n"
+"সাধারণ ইনস্টলেশনের ক্ষেত্রে এটিই যথেষ্ট। যদি পরিবর্তন করতে চান, আপনাকে অন্তত একটি\n"
+"রুট পার্টিশন তৈরী করতে হবে (\"/\")। পার্টিশনের সাইজ খুব ছোট না হওয়া জরুরী, কারন\n"
+"অন্যথা আপনি যথেষ্ট সফ্টওয়্যার ইনস্টল করতে পারবেন না। আপনার তথ্যসমূহ আলাদা\n"
+"পার্টিশনে রাখতে চাইলে, আপনাকে আরও একটি \"/home\" পার্টিশন তৈরী করতে হবে\n"
+"(যা কিনা একাধিক লিনাক্স পার্টিশন থাকলেই সম্ভব)।\n"
+"\n"
+"পার্টিশনগুলো তালিকায় এভাবে দেখানো হয়েছে: \"নাম\", \"ধারণক্ষমতা\".\n"
+"\n"
+"\"নাম\" এর কাঠামো হচ্ছে: \"হার্ড ড্রাইভের ধরন\", \"হার্ড ড্রাইভ নাম্বার\",\n"
+"\"পার্টিশন নাম্বার\" (যেমন, \"hda1\").\n"
+"\n"
+"যদি আপনার হার্ড ড্রাইভটি IDE হার্ড ড্রাইভ হলে \"হার্ড ড্রাইভের ধরন\" হবে \"hd\", "
+"আর\n"
+" SCSI হার্ড ড্রাইভ হলে হবে \"sd\"।\n"
+"\n"
+"\"হার্ড ড্রাইভ নাম্বার\", হচ্ছে \"hd\" বা \"sd\" এর পরের একটি অক্ষর। IDE হার্ড "
+"ড্রাইভের\n"
+"জন্য:\n"
+"\n"
+" * \"a\" অর্থ \"প্রাথমিক IDE কনট্রোলারে মাস্টার হার্ড ড্রাইভ\";\n"
+"\n"
+" * \"b\" অর্থ \"প্রাথমিক IDE কনট্রোলারে স্লেভ হার্ড ড্রাইভ\";\n"
+"\n"
+" * \"c\" অর্থ \"সহকারী IDE কনট্রোলারে মাস্টার হার্ড ড্রাইভ\";\n"
+"\n"
+" * \"d\" অর্থ \"সহকারী IDE কনট্রোলারে স্লেভ হার্ড ড্রাইভ\".\n"
+"\n"
+"SCSI হার্ড ড্রাইভের জন্য, \"a\" অর্থ \"সর্বনিম্ন SCSI ID\", \"b\" অর্থ\n"
+"\"দ্বিতীয় সর্বনিম্ন SCSI ID\", ইত্যাদি।"
#: ../help.pm:567
#, c-format
@@ -1033,23 +1118,23 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
# সাম
@@ -1108,8 +1193,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1141,7 +1225,12 @@ msgstr ""
msgid "Espanol"
msgstr "স্পেনীয়"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1197,53 +1286,7 @@ msgstr ""
"সঠিক পোর্টটি নির্বাচন করুন। যেমন, উইন্ডোজের \"COM1\" পোর্টটি GNU/Linux-এ\n"
"\"ttyS0\" নামে পরিচিত।"
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "অনুমোদন"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1257,7 +1300,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1267,10 +1310,10 @@ msgstr ""
# সাম
# emulate = এমুলেট?
#: ../help.pm:745
-#, c-format
+#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1291,11 +1334,11 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"এখন সময় আপনার কম্পিউটারের জন্য একটি প্রিন্টিং সিস্টেম নির্বাচন করার। অনান্য\n"
-"অপারেটিং সিস্টেম আপনাকে একটি অপশন দিতে পারে কিন্তু Mandriva Linux দেবে দুটি।\n"
+"অপারেটিং সিস্টেম আপনাকে একটি অপশন দিতে পারে কিন্তু Mageia দেবে দুটি।\n"
"প্রিন্টিং সিস্টেমগুলো বিভিন্ন কনফিগারেশনের জন্য প্রযোজ্য।\n"
"\n"
" * \"%s\" -- অর্থ হচ্ছে \"প্রিন্ট করো, সারিতে রাখবেনা\". এটি নির্বাচন করুন যদি "
@@ -1322,8 +1365,7 @@ msgstr ""
"ইন্টারফেস রয়েছে।\n"
"\n"
"আপনার বাছাইকৃত প্রিন্টিং সিস্টেমটি যদি আপনার পরে পছন্দ না হয়,\n"
-"তবে আপনি Mandriva Linux নিয়ন্ত্রন কেন্দ্র থেকে PrinterDrake চালিয়ে ও \"%s\" বাটন "
-"ক্লিক\n"
+"তবে আপনি Mageia নিয়ন্ত্রন কেন্দ্র থেকে PrinterDrake চালিয়ে ও \"%s\" বাটন ক্লিক\n"
"করে তা বদল করতে পারেন।"
#: ../help.pm:768
@@ -1331,7 +1373,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "দক্ষ"
@@ -1346,7 +1393,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1410,11 +1457,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1432,8 +1474,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1450,14 +1491,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "ISDN কার্ড"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN কার্ড"
@@ -1468,10 +1514,10 @@ msgid "Graphical Interface"
msgstr "গ্রাফিকাল ইন্টারফেস"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"হার্ড ড্রাইভ বেছে নিন যেটি আপনি আপনার নতুন ম্যান্ড্রিব লিনাক্স পার্টিশন ইনস্টল করার "
@@ -1483,12 +1529,14 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"যদি এই হার্ড ড্রাইভে থাকা সব ডাটা এবং পার্টিশন মুছে ফেলতে চান তাহলে আপনি\n"
"\"%s\"তে ক্লিক করুন। সাবধান, \"%s\"তে ক্লিক করার পর, উইন্ডোজ ডাটাসহ,\n"
@@ -1508,3 +1556,20 @@ msgstr "পরবর্তী ->"
msgid "<- Previous"
msgstr "<- পূর্ববর্তী"
+# sam
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": \"%s\" বাটনে ক্লিক করলে প্রিন্টার কনফিগারেশন উইজার্ড খুলবে।\n"
+#~ "প্রিন্টার কনফিগারেশন সম্বন্ধে আরো জানতে, \"স্টার্টার গাইড\" এর যথাযথ\n"
+#~ "অধ্যায়ের পরামর্শ নিন। আমাদের সহায়িকাতে দেখানো ইন্টারফেসটি, ইনস্টলেশনে\n"
+#~ "ব্যবহৃত ইন্টারফেসের অনুরুপ। "
+
+#~ msgid "authentication"
+#~ msgstr "অনুমোদন"
diff --git a/perl-install/install/help/po/br.po b/perl-install/install/help/po/br.po
index df8901d60..62a4b0104 100644
--- a/perl-install/install/help/po/br.po
+++ b/perl-install/install/help/po/br.po
@@ -1,15 +1,15 @@
# DrakX e Brezhoneg.
# Copyright (C) 1999-2005 Mandriva
-# Thierry Vignaud <tvignaud@mandriva.com>, 1999-2005
+# Thierry Vignaud <thierry.vignaud.com>, 1999-2005
# Jañ-Mai Drapier <jan-mai.drapier@mail.dotcom.fr>, 1999-2000
#
msgid ""
msgstr ""
"Project-Id-Version: DrakX 10.2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2006-04-06 19:37+0200\n"
-"Last-Translator: Thierry Vignaud <tvignaud@mandriva.com>\n"
+"Last-Translator: Thierry Vignaud <thierry.vignaud.com>\n"
"Language-Team: Brezhoneg <ofisk@wanadoo.fr>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -20,7 +20,7 @@ msgstr ""
#, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
@@ -68,13 +68,23 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Mennout a rit implijout an arc'hwel-mañ ?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -84,31 +94,31 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
#: ../help.pm:88
#, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
@@ -119,12 +129,11 @@ msgstr ""
#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -137,8 +146,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -205,10 +213,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -234,16 +242,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr ""
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-
-#: ../help.pm:192
+#: ../help.pm:185
#, fuzzy, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -289,7 +288,12 @@ msgid ""
"server which can be used by other machines on your local network as well."
msgstr ""
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr ""
@@ -313,7 +317,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -411,39 +415,39 @@ msgstr ""
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -452,15 +456,14 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -479,7 +482,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Impliji parzhadur o vezañ"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Chetañ an holl planedenn"
@@ -527,7 +535,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Krouiñ ur bladennig staliañ emgefreek"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -547,7 +570,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -556,7 +579,7 @@ msgstr ""
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -579,7 +602,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -595,21 +618,21 @@ msgstr "Melestradur an surentez"
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -625,21 +648,21 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -656,22 +679,41 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Emvarc'hañ ar skoroù lem/laka"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Tremen er mod boas/mailh"
@@ -679,34 +721,34 @@ msgstr "Tremen er mod boas/mailh"
#: ../help.pm:536
#, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the first\n"
"disk or partition is called \"C:\")."
msgstr ""
@@ -726,23 +768,22 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
#: ../help.pm:594
@@ -783,8 +824,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -816,7 +856,12 @@ msgstr ""
msgid "Espanol"
msgstr "Spagnoleg"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -872,53 +917,7 @@ msgstr ""
"Dibabit ar porzh a zere mar plij. Da skouer, porzh « COM1 » dindan MS\n"
"Windows a vez anvet « ttyS0 » gant Linux."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "dilesadur"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -932,7 +931,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -943,7 +942,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -964,7 +963,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
@@ -973,7 +972,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Mod mailh"
@@ -986,7 +990,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1031,11 +1035,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1053,8 +1052,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1071,14 +1069,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "Kartenn ISDN"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "Kartenn ISDN"
@@ -1091,8 +1094,8 @@ msgstr "Ketal Kevregañ"
#: ../help.pm:861
#, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
@@ -1100,12 +1103,12 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be able\n"
+"to recover any data and partitions present on this hard disk drive, including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
#: ../help.pm:872
@@ -1118,3 +1121,5 @@ msgstr "A heul ->"
msgid "<- Previous"
msgstr "<- Diaraog"
+#~ msgid "authentication"
+#~ msgstr "dilesadur"
diff --git a/perl-install/install/help/po/bs.po b/perl-install/install/help/po/bs.po
index 6a3a81143..9e40d9b94 100644
--- a/perl-install/install/help/po/bs.po
+++ b/perl-install/install/help/po/bs.po
@@ -8,26 +8,28 @@ msgid ""
msgstr ""
"Project-Id-Version: bs\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2005-02-26 11:13+0100\n"
"Last-Translator: Vedran Ljubovic <vljubovic@smartnet.ba>\n"
"Language-Team: Bosanski <lokal@lugbih.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.3\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Prije nego što nastavimo, trebate pažljivo pročitati uvjete licence. Ona\n"
-"pokriva cijelu Mandriva Linux distribuciju. Ako se slažete sa svim\n"
+"pokriva cijelu Mageia distribuciju. Ako se slažete sa svim\n"
"uvjetima u njoj, izaberite opciju \"%s\". Ako ne, klikom na \"%s\" ćete\n"
"restartovati vaš računar."
@@ -121,13 +123,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Da li želite koristiti ovu mogućnost?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -137,24 +150,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Ovdje su navedene Linux particije koje već postoje na vašem hard disku.\n"
@@ -191,29 +208,28 @@ msgstr ""
"je \"drugi najniži SCSI ID\", itd."
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Mandriva Linux instalacija se prostire na nekoliko CDova. Ako je neki\n"
+"Mageia instalacija se prostire na nekoliko CDova. Ako je neki\n"
"paket smješten na drugom CDu, DrakX će izbaciti trenutni CD i zamoliti vas\n"
"da ubacite neki drugi po potrebi. Ako nemate potreban CD pri ruci,\n"
"samo kliknite na \"%s\", odgovarajući paketi neće biti instalirani."
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -226,8 +242,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -265,12 +280,12 @@ msgid ""
"megabytes."
msgstr ""
"Sada je vrijeme da izaberete koje programe želite instalirati na vaš\n"
-"sistem. Za Mandriva Linux su dostupne hiljade paketa, pa da bi\n"
+"sistem. Za Mageia su dostupne hiljade paketa, pa da bi\n"
"njihovo upravljanje bilo lakše, organizovani su u grupe slične\n"
"primjene.\n"
"\n"
"Paketi su sortirani u grupe ovisno o tipičnoj namjeni vašeg računara.\n"
-"U Mandriva Linuxu date su četiri predefinisane kategorije. Možete\n"
+"U Mageiau date su četiri predefinisane kategorije. Možete\n"
"miješati i poklapati programe iz raznih grupa, pa tako instalacija ``Radna\n"
"stanica'' može sadržavati programe iz grupe ``Programiranje''.\n"
"\n"
@@ -337,7 +352,7 @@ msgid "Truly minimal install"
msgstr "Stvarno minimalna instalacija"
#: ../help.pm:152
-#, c-format
+#, fuzzy, c-format
msgid ""
"If you choose to install packages individually, the installer will present\n"
"a tree containing all packages classified by groups and subgroups. While\n"
@@ -350,10 +365,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -383,11 +398,11 @@ msgstr ""
"\n"
"!! Ako izaberete neki serverski paket, zato što ste specifično izabrali taj\n"
"paket ili zato što je on dio grupe paketa, bićete zamoljeni da potvrdite da\n"
-"zaista želite da taj server bude instaliran. Mandriva Linux obično\n"
+"zaista želite da taj server bude instaliran. Mageia obično\n"
"automatski pokreće sve instalirane servise prilikom pokretanja sistema.\n"
"Čak i ako su sigurni i nemaju poznatih problema u trenutku pakovanja\n"
"distribucije, sasvim je moguće da su neke sigurnosne rupe otkrivene\n"
-"nakon što je dovršena ova verzija Mandriva Linuxa. Ako niste sigurni\n"
+"nakon što je dovršena ova verzija Mageiaa. Ako niste sigurni\n"
"čemu tačno služi taj paket ili zašto ga treba instalirati, kliknite na \"%s"
"\".\n"
"Klikom na \"%s\" instalirate navedene servise i oni će biti automatski\n"
@@ -414,21 +429,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Automatske ovisnosti"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": klikanjem na dugme \"%s\" otvorićete čarobnjak za\n"
-"podešavanje štampača. Konsultujte odgovarajuće poglavlje ``Vodiča za\n"
-"početnike'' za više informacija o tome kako podesiti novi štampač.\n"
-"Interfejs koji je tamo prikazan je vrlo sličan onom koji se koristi\n"
-"prilikom instalacije."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -499,7 +500,12 @@ msgstr ""
"vašoj\n"
"lokalnoj mreži."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Automatska sinhronizacija vremena"
@@ -528,11 +534,11 @@ msgstr ""
"vašim potrebama."
#: ../help.pm:234
-#, c-format
+#, fuzzy, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -588,7 +594,7 @@ msgid ""
msgstr ""
"X (skraćeno od X Window System) je srce GNU/Linux grafičkog interfejsa\n"
"o kojem ovise sve grafičke okoline (KDE, GNOME, AfterStep,\n"
-"WindowMaker itd.) uključene u Mandriva Linux.\n"
+"WindowMaker itd.) uključene u Mageia.\n"
"\n"
"Biće vam predstavljena lista različitih parametara koje možete promijeniti\n"
"da biste dobili optimalan grafički prikaz.\n"
@@ -703,41 +709,45 @@ msgstr ""
"podešavanjem ekrana."
#: ../help.pm:319
-#, c-format
+#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -746,15 +756,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -767,12 +777,12 @@ msgid ""
"experience. For more instructions on how to use the DiskDrake utility,\n"
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
-"Na ovom mjestu trebate izabrati gdje želite instalirati Mandriva Linux\n"
+"Na ovom mjestu trebate izabrati gdje želite instalirati Mageia\n"
"operativni sistem na vašem hard disku. Ako je disk prazan ili ako postojeći\n"
"operativni sistem koristi sav prostor na njemu, potrebno je da ga\n"
"particionirate. U biti, particioniranje hard diska predstavlja logičko\n"
"organiziranje kako bi se stvorio prostor za instaliranje vašeg novog\n"
-"Mandriva Linux sistema.\n"
+"Mageia sistema.\n"
"\n"
"Pošto su efekti particioniranja obično nepovratni, i mogu voditi do gubitka\n"
"podataka na eventualnom postojećem operativnom sistemu, particioniranje\n"
@@ -804,7 +814,7 @@ msgstr ""
"podataka, pod uslovom da prethodno defragmentirate Windows particiju\n"
"i da ona koristi FAT format. Backupovanje vaših podataka je strogo\n"
"preporučeno. Ova mogućnost je preporučena ako namjeravate koristiti i\n"
-"Mandriva Linux i Microsoft Windows na istom računaru.\n"
+"Mageia i Microsoft Windows na istom računaru.\n"
"\n"
" Prije izbora ove opcije, molim da imate na umu da će, nakon ove\n"
"procedure, veličina vaše Microsoft Windows particije biti manja nego\n"
@@ -840,7 +850,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Koristi postojeću particiju"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Pobriši čitav disk"
@@ -917,8 +932,23 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Napravi auto-instalacijsku disketu"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
+#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -937,7 +967,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -959,15 +989,15 @@ msgstr ""
"Kliknite na \"%s\" kada budete spremni za formatiranje particija.\n"
"\n"
"Kliknite na \"%s\" ako želite da izaberete druge particije za instalaciju\n"
-"vašeg novog Mandriva Linux operativnog sistema.\n"
+"vašeg novog Mageia operativnog sistema.\n"
"\n"
"Kliknite na \"%s\" da izaberete particije koje želite provjeriti radi\n"
"loših blokova."
#: ../help.pm:437
-#, c-format
+#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -979,7 +1009,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Kada završite instalaciju Mandriva Linuxa, moguće je da su neki paketi\n"
+"Kada završite instalaciju Mageiaa, moguće je da su neki paketi\n"
"ažurirani od zadnjeg izdanja. Moguće je da su ispravljeni bugovi ili\n"
"rješena neka sigurnosna pitanja. Ako želite iskoristiti ova unaprjeđenja,\n"
"možete ih sada dobaviti sa Interneta. Izaberite \"%s\" ako imate ispravnu\n"
@@ -992,7 +1022,7 @@ msgstr ""
"instalirate izabrane pakete, ili \"%s\" za prekid."
#: ../help.pm:450
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -1001,7 +1031,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1014,7 +1044,7 @@ msgstr ""
"jednostavnosti korištenja.\n"
"\n"
"Ako ne znate šta izabrati, zadržite ponuđenu opciju. Možete promijeniti\n"
-"nivo sigurnosti naknadno koristeći program draksec iz Mandriva Linux\n"
+"nivo sigurnosti naknadno koristeći program draksec iz Mageia\n"
"Kontrolnog centra.\n"
"\n"
"Polje \"%s\" obavještava sistem o korisniku koji će biti odgovoran za\n"
@@ -1026,24 +1056,27 @@ msgid "Security Administrator"
msgstr "Sigurnosni administrator"
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1059,21 +1092,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1090,17 +1125,11 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"Sada trebate izabrati koje particije želite koristiti za instalaciju vašeg\n"
-"Mandriva Linux sistema. Ako su particije već definisane, iz prijašnje\n"
+"Mageia sistema. Ako su particije već definisane, iz prijašnje\n"
"GNU/Linux instalacije ili nekim drugim alatom za particioniranje, možete\n"
"koristiti postojeće particije. U suprotnom, sada morate definisati\n"
"particije vašeg hard diska.\n"
@@ -1114,7 +1143,7 @@ msgstr ""
"\n"
" * \"%s\": ova opcija briše sve particije na izabranom hard disku\n"
"\n"
-" * \"%s\": ova opcija vam omogućuje da automatski napravite ext3\n"
+" * \"%s\": ova opcija vam omogućuje da automatski napravite ext4\n"
"i swap particije u slobodnom prostoru vašeg hard diska\n"
"\n"
"\"%s\" omogućuje pristup dodatnim mogućnostima:\n"
@@ -1165,59 +1194,84 @@ msgstr ""
"\n"
"Da biste dobili informacije o raznim tipovima datotečnog sistema koji\n"
"su dostupni, pročitajte poglavlje o ext2FS iz ''Referentnog priručnika''.\n"
-"\n"
-"Ako instalirate na PPC računar, trebate napraviti malu HFS ''bootstrap''\n"
-"particiju od najmanje 1 MB koju će koristiti yaboot bootloader. Ako se\n"
-"odlučite da ovu particiju učinite nešto većom, npr. 50 MB, primjetićete\n"
-"da je ona korisno mjesto za čuvanje rezervnog kernela ili ramdisk slika\n"
-"za hitne slučajeve."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Automatsko montiranje izmjenjivog medija"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Prekidač normalnog/ekspertnog moda"
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Na vašem hard disku ustanovljeno je više od jedne Microsoft particije.\n"
"Molim izaberite onu koju želite smanjiti kako biste instalirali vaš\n"
-"Mandriva Linux operativni sistem.\n"
+"Mageia operativni sistem.\n"
"\n"
"Svaka particija je navedena ovako: \"Linux ime\", \"Windows ime\",\n"
"\"Kapacitet\".\n"
@@ -1259,35 +1313,35 @@ msgstr ""
"listu svih država."
#: ../help.pm:572
-#, c-format
+#, fuzzy, c-format
msgid ""
"This step is activated only if an existing GNU/Linux partition has been\n"
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Ovaj korak se aktivira samo ako je na vašem računaru pronađena postojeća\n"
"GNU/Linux particija.\n"
"\n"
"DrakX sada treba znati da li želite izvršiti novu instalaciju ili\n"
-"nadogradnju postojećeg Mandriva Linux sistema:\n"
+"nadogradnju postojećeg Mageia sistema:\n"
"\n"
" * \"%s\". Najčešće ovo će u potpunosti obrisati stari sistem. Ipak,\n"
"ovisno o vašoj šemi particioniranja, možete spriječiti da neki od vaših\n"
@@ -1296,14 +1350,14 @@ msgstr ""
"datotečni sistem, trebate koristiti ovu opciju.\n"
"\n"
" * \"%s\". Ova vrsta instalacije vam omogućuje da ažurirate pakete\n"
-"koji su trenutno instalirani na vašem Mandriva Linux sistemu. Vaša trenutna\n"
+"koji su trenutno instalirani na vašem Mageia sistemu. Vaša trenutna\n"
"šema particioniranja i korisnički podaci neće biti izmijenjeni. Većina\n"
"ostalih koraka konfiguracije ostaju kao što jesu, slično običnoj "
"instalaciji.\n"
"\n"
-"Opcija ''Nadogradi'' bi trebala raditi ispravno na Mandriva Linux sistemima\n"
+"Opcija ''Nadogradi'' bi trebala raditi ispravno na Mageia sistemima\n"
"koji koriste verziju \"8.1\" ili kasniju. Obavljanje nadogradnje na ranijim\n"
-"verzijama Mandriva Linuxa, prije verzije \"8.1\", nije preporučeno."
+"verzijama Mageiaa, prije verzije \"8.1\", nije preporučeno."
#: ../help.pm:594
#, c-format
@@ -1345,7 +1399,7 @@ msgstr ""
"prebaciti tastaturu između latiničnog i ne-latiničnog rasporeda."
#: ../help.pm:612
-#, c-format
+#, fuzzy, c-format
msgid ""
"The first step is to choose your preferred language.\n"
"\n"
@@ -1361,8 +1415,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1402,7 +1455,7 @@ msgstr ""
"\n"
"O UTF-8 (Unicode) podršci. Unicode je novi način kodiranja znakova čiji\n"
"je cilj da obuhvati sve postojeće jezike. Ipak puna podrška za njega pod\n"
-"GNU/Linuxom je još uvijek u razvoju. Iz tog razloga, Mandriva Linux će ga\n"
+"GNU/Linuxom je još uvijek u razvoju. Iz tog razloga, Mageia će ga\n"
"koristiti ovisno o drugim izborima korisnika:\n"
"\n"
" * Ako izaberete jezike sa raširenim starim kodiranjem (latin1 jezici, "
@@ -1435,7 +1488,12 @@ msgstr ""
msgid "Espanol"
msgstr "Espanol"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1521,89 +1579,7 @@ msgstr ""
"Molim izaberite ispravan port. Na primjer, \"COM1\" port pod Windows\n"
"operativnim sistemom, pod GNU/Linuxom se zove \"ttyS0\" ."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Ovo je najvažnija odluka za sigurnost vašeg GNU/Linux sistema: trebate\n"
-"unijeti \"root\" šifru, \"Root\" je sistemski administrator i jedini\n"
-"korisnik kojem je dozvoljeno da updatuje sistem, dodaje druge korisnike,\n"
-"mijenja konfiguraciju sistema itd. Ukratko, \"root\" može raditi sve! Stoga\n"
-"trebate izabrati šifru koju je teško pogoditi - DrakX će vam reći da li je "
-"šifra\n"
-"koju ste odabrali prejednostavna. Kao što možete vidjeti, niste prisiljeni "
-"da\n"
-"unesete šifru, ali vam savjetujemo da to uradite. GNU/Linux je podložan\n"
-"operatorskim greškama kao i bilo koji drugi operativni sistem. Pošto\n"
-"\"root\" može prevazići sva ograničenja i nenamjerno pobrisati sve podatke\n"
-"na particijama neoprezno im pristupajući, važno je da je teško postati \"root"
-"\".\n"
-"\n"
-"Šifra treba biti kombinacija alfanumeričkih znakova i biti barem 8 znakova\n"
-"duga. Nikad ne zapisujte \"root\" šifru -- time vaš sistem postaje lagano\n"
-"kompromitovati.\n"
-"\n"
-"Jedan izuzetak: ne dozvolite da šifra bude preduga ili prekomplikovana\n"
-"pošto ćete je morati zapamtiti!\n"
-"\n"
-"Šifra neće biti prikazana na ekranu dok je unosite. Da bismo smanjili\n"
-"mogućnost greške zbog kucanja naslijepo, moraćete unijeti šifru dva puta.\n"
-"Ako nekim slučajem ponovite istu grešku dva puta, ovu ''neispravnu'' šifru\n"
-"trebate koristiti prilikom prve prijave kao \"root\".\n"
-"\n"
-"Ako želite da pristup ovom računaru bude kontroliran pomoću servera za\n"
-"provjeru identiteta (authentication), kliknite na dugme \"%s\".\n"
-"\n"
-"Ako vaša mreža koristi LDAP, NIS ili PDC Windows domen servise za\n"
-"provjeru identiteta, izaberite odgovarajući kao \"%s\". Ako ne znate koji\n"
-"koristiti, pitajte vašeg mrežnog administratora.\n"
-"\n"
-"Ako imate problema sa pamćenjem šifara, ako vaš računar neće biti spojen\n"
-"na Internet i ako apsolutno vjerujete svakome ko mu ima fizički pristup,\n"
-"možete izabrati opciju \"%s\"."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "provjera autentičnosti"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1617,7 +1593,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1640,10 +1616,10 @@ msgstr ""
"šta radite."
#: ../help.pm:745
-#, c-format
+#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1664,11 +1640,11 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Sada je vrijeme da izaberete sistem štampe za vaš računar. Drugi\n"
-"operativni sistemi vam možda nude jedan, ali Mandriva Linux nudi\n"
+"operativni sistemi vam možda nude jedan, ali Mageia nudi\n"
"dva. Svaki od ovih sistema je najbolji za određenu vrstu konfiguracije.\n"
"\n"
"* \"%s\" -- skraćeno za ``štampaj i nemoj stavljati u red'' (print, do not\n"
@@ -1695,14 +1671,19 @@ msgstr ""
"\n"
"Ako sada napravite izbor, pa kasnije zaključite da vam se ne sviđa izabrani\n"
"sistem štampe, možete ga promijeniti pokretanjem PrinterDrake iz\n"
-"Mandriva Linux Kontrolnog centra i klikanjem na dugme \"%s\"."
+"Mageia Kontrolnog centra i klikanjem na dugme \"%s\"."
#: ../help.pm:768
#, c-format
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Ekspert"
@@ -1715,7 +1696,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1757,7 +1738,7 @@ msgstr ""
"drugi drajver."
#: ../help.pm:794
-#, c-format
+#, fuzzy, c-format
msgid ""
"As a review, DrakX will present a summary of information it has gathered\n"
"about your system. Depending on the hardware installed on your machine, you\n"
@@ -1780,11 +1761,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1802,8 +1778,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1820,7 +1795,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1872,7 +1847,7 @@ msgstr ""
"\n"
"* \"%s\": ako želite, možete podesiti vaš Internet pristup ili pristup\n"
"lokalnoj mreži. Pogledajte štampanu dokumentaciju ili koristite\n"
-"Mandriva Linux Kontrolni centar nakon što je završena instalacija\n"
+"Mageia Kontrolni centar nakon što je završena instalacija\n"
"kako biste koristili ugrađenu pomoć. \n"
" * \"%s\": omogućuje vam da podesite adrese HTTP i FTP proxyja ako\n"
"se računar na koji instalirate nalazi iza proxy servera.\n"
@@ -1887,13 +1862,18 @@ msgstr ""
"* \"%s\": ako želite promijeniti postavke bootloadera, kliknite na to\n"
"dugme. Ovo bi trebalo biti rezervisano za napredne korisnike. Pogledajte\n"
"štampanu dokumentaciju ili pomoć za bootloader konfiguraciju uključenu\n"
-"u Mandriva Linux Kontrolni centar.\n"
+"u Mageia Kontrolni centar.\n"
"\n"
"* \"%s\": ovdje možete fino podešavati koji servisi će biti pokrenuti\n"
"na vašem računaru. Ako planirate koristiti ovaj računar kao server,\n"
"dobra je ideja još jednom pregledati ove postavke."
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "ISDN kartica"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN kartica"
@@ -1904,26 +1884,28 @@ msgid "Graphical Interface"
msgstr "Grafički interfejs"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"Izaberite hard disk koji želite obrisati kako biste instalirali vašu novu\n"
-"Mandriva Linux particiju. Budite pažljivi, svi podaci koji se nalaze na\n"
+"Mageia particiju. Budite pažljivi, svi podaci koji se nalaze na\n"
"njemu će biti izgubljeni i neće se moći vratiti!"
#: ../help.pm:866
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Kliknite na \"%s\" ako želite obrisati sve podatke i particije koje\n"
"su prisutne na ovom hard disku. Budite oprezni, jer nakon klikanja na\n"
@@ -1943,3 +1925,115 @@ msgstr "Dalje ->"
msgid "<- Previous"
msgstr "<- Nazad"
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": klikanjem na dugme \"%s\" otvorićete čarobnjak za\n"
+#~ "podešavanje štampača. Konsultujte odgovarajuće poglavlje ``Vodiča za\n"
+#~ "početnike'' za više informacija o tome kako podesiti novi štampač.\n"
+#~ "Interfejs koji je tamo prikazan je vrlo sličan onom koji se koristi\n"
+#~ "prilikom instalacije."
+
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "Ovo je najvažnija odluka za sigurnost vašeg GNU/Linux sistema: trebate\n"
+#~ "unijeti \"root\" šifru, \"Root\" je sistemski administrator i jedini\n"
+#~ "korisnik kojem je dozvoljeno da updatuje sistem, dodaje druge korisnike,\n"
+#~ "mijenja konfiguraciju sistema itd. Ukratko, \"root\" može raditi sve! "
+#~ "Stoga\n"
+#~ "trebate izabrati šifru koju je teško pogoditi - DrakX će vam reći da li "
+#~ "je šifra\n"
+#~ "koju ste odabrali prejednostavna. Kao što možete vidjeti, niste "
+#~ "prisiljeni da\n"
+#~ "unesete šifru, ali vam savjetujemo da to uradite. GNU/Linux je podložan\n"
+#~ "operatorskim greškama kao i bilo koji drugi operativni sistem. Pošto\n"
+#~ "\"root\" može prevazići sva ograničenja i nenamjerno pobrisati sve "
+#~ "podatke\n"
+#~ "na particijama neoprezno im pristupajući, važno je da je teško postati "
+#~ "\"root\".\n"
+#~ "\n"
+#~ "Šifra treba biti kombinacija alfanumeričkih znakova i biti barem 8 "
+#~ "znakova\n"
+#~ "duga. Nikad ne zapisujte \"root\" šifru -- time vaš sistem postaje "
+#~ "lagano\n"
+#~ "kompromitovati.\n"
+#~ "\n"
+#~ "Jedan izuzetak: ne dozvolite da šifra bude preduga ili prekomplikovana\n"
+#~ "pošto ćete je morati zapamtiti!\n"
+#~ "\n"
+#~ "Šifra neće biti prikazana na ekranu dok je unosite. Da bismo smanjili\n"
+#~ "mogućnost greške zbog kucanja naslijepo, moraćete unijeti šifru dva "
+#~ "puta.\n"
+#~ "Ako nekim slučajem ponovite istu grešku dva puta, ovu ''neispravnu'' "
+#~ "šifru\n"
+#~ "trebate koristiti prilikom prve prijave kao \"root\".\n"
+#~ "\n"
+#~ "Ako želite da pristup ovom računaru bude kontroliran pomoću servera za\n"
+#~ "provjeru identiteta (authentication), kliknite na dugme \"%s\".\n"
+#~ "\n"
+#~ "Ako vaša mreža koristi LDAP, NIS ili PDC Windows domen servise za\n"
+#~ "provjeru identiteta, izaberite odgovarajući kao \"%s\". Ako ne znate "
+#~ "koji\n"
+#~ "koristiti, pitajte vašeg mrežnog administratora.\n"
+#~ "\n"
+#~ "Ako imate problema sa pamćenjem šifara, ako vaš računar neće biti spojen\n"
+#~ "na Internet i ako apsolutno vjerujete svakome ko mu ima fizički pristup,\n"
+#~ "možete izabrati opciju \"%s\"."
+
+#~ msgid "authentication"
+#~ msgstr "provjera autentičnosti"
diff --git a/perl-install/install/help/po/ca.po b/perl-install/install/help/po/ca.po
index fc6d9a848..ed1b8b6be 100644
--- a/perl-install/install/help/po/ca.po
+++ b/perl-install/install/help/po/ca.po
@@ -1,38 +1,41 @@
-# translation of ca.po to Catalan
-# translation of DrakX.po to Catalan
-# Copyright (C) 2000-2004, 2005 Free Software Foundation, Inc.
-# Softcatala, softcatala.org, 2000-2003
-# Albert Astals Cid <astals11@terra.es>, 2003-2004, 2005.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
+# Translators:
+# Yuri Chornoivan <yurchor@ukr.net>, 2024
+# Davidmp <medipas@gmail.com>, 2024
#
+#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: ca\n"
+"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
-"PO-Revision-Date: 2005-09-13 23:24+0200\n"
-"Last-Translator: Albert Astals Cid <astals11@terra.es>\n"
-"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
+"PO-Revision-Date: 2024-09-04 17:33+0000\n"
+"Last-Translator: Davidmp <medipas@gmail.com>, 2024\n"
+"Language-Team: Catalan (https://app.transifex.com/MageiaLinux/teams/9361/"
+"ca/)\n"
+"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.9.1\n"
-"Plural-Forms: nplurals=2; plural=n!=1;\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../help.pm:14
#, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Abans de continuar, llegiu atentament les clàusules de la llicència. "
"Cobreix\n"
-"tota la distribució Mandriva Linux. Si esteu d'acord amb tots els termes de "
-"la\n"
-"llicència, feu clic al quadre \"%s\"; si no, prémer el botó \"%s\"\n"
-"reiniciarà el vostre ordinador."
+"tota la distribució de Mageia. Si esteu d'acord en tots els termes de la\n"
+"llicència, feu clic al quadre %s; si no, si premeu el botó %s\n"
+"es reiniciarà l'ordinador."
#: ../help.pm:20
#, c-format
@@ -75,67 +78,73 @@ msgid ""
"\"%s\". If you're not interested in this feature, uncheck the \"%s\" box."
msgstr ""
"El GNU/Linux és un sistema multiusuari; això vol dir que cada usuari pot\n"
-"tenir les seves pròpies preferències, els seus propis fitxers, etc. Podeu "
-"llegir\n"
-"la ``Guia d'iniciació''\n"
-" per aprendre més coses sobre els sistemes\n"
-"multiusuari. Però, a diferència del \"root\", que és l'administrador del "
+"tenir les pròpies preferències, els propis fitxers, etc. Podeu llegir-ne\n"
+"la Guia d'iniciació\n"
+"per aprendre més coses sobre els sistemes\n"
+"multiusuari. Però, a diferència de root (arrel), que és l'administrador del "
"sistema,\n"
-"als usuaris que afegiu aquí no se'ls permetrà modificar res tret dels seus "
+"als usuaris que afegiu aquí no se'ls permetrà modificar res tret dels "
"propis\n"
-"fitxers i configuracions, protegint així el sistema de canvis, intencionats "
-"o no, \n"
-" que tenen efecte sobre tot el sistema . Cal que us creeu, com a mínim, un "
+"fitxers i configuracions, i així el sistema es protegeix de canvis, "
+"intencionats o no, \n"
+"que tenen efecte sobre tot el sistema . Cal que us creeu, com a mínim, un "
"usuari\n"
-"normal, i és aquest compte el que heu d'utilitzar per a l'ús quotidià. Tot i "
-"que\n"
-"és molt fàcil entrar com a \"root\" per a tot, també pot ser molt perillós: "
-"la més\n"
+"normal, i és aquest compte el que heu d'usar per a l'ús quotidià. Tot i que\n"
+"és molt fàcil entrar com a arrel per a tot, també pot ser molt perillós: la "
+"més\n"
"petita errada podria significar que el sistema deixés de funcionar. Si "
"cometeu\n"
"una errada greu com a usuari normal el pitjor que pot passar és que perdeu\n"
-"algunes daDES, però sense afectar a tot el sistema.\n"
-"\n"
-"Primer, heu d'introduir el vostre nom real. Per suposat, això no és "
-"obligatori,\n"
-"ja que podeu introduir el que vulgueu. DrakX agafarà la primera paraula\n"
-"que heu introduït en aquest camp i la copiarà en el camp \"%s\", que serà "
-"el\n"
-"nom que utilitzarà aquest usuari per entrar al sistema (ho podeu canviar si\n"
+"algunes dades, però sense que això afecti tot el sistema.\n"
+"\n"
+"Primer, heu d'introduir el nom real. Per descomptat, això no és obligatori,\n"
+"ja que podeu introduir-hi el que vulgueu. El DrakX agafarà la primera "
+"paraula\n"
+"que heu introduït en aquest camp i la copiarà al camp %s, que serà el\n"
+"nom que usarà aquest usuari per entrar al sistema (ho podeu canviar si\n"
"voleu). Després cal que introduïu una contrasenya. Des del punt de vista de\n"
"la seguretat, una contrasenya d'un usuari no privilegiat (habitual) no és "
"tan\n"
-"important com la del \"root\" des del punt de vista de la seguretat, però no "
-"hi\n"
-"ha cap raó per menystenir-la, deixant-la en blanc o fent-la massa senzilla: "
+"important com la d'arrel des del punt de vista de la seguretat, però no hi\n"
+"ha cap raó per menystenir-la deixant-la en blanc o fent-la massa senzilla: "
"al\n"
-"cap i a la fi, els vostres fitxers poden estar en joc.\n"
+"cap i a la fi, els vostres fitxers poden estar en risc.\n"
"\n"
-"Un cop hagueu fet clic a \"%s\" podreu afegir altres usuaris. Afegiu-ne un\n"
-"per a tothom que hagi de fer servir l'ordinador. Feu clic a \"%s\" quan "
-"hagueu\n"
-"acabat d'afegir-ne.\n"
+"Un cop hàgiu fet clic a %s podreu afegir-hi altres usuaris. Afegiu-ne un\n"
+"per a cada persona que hagi de fer servir l'ordinador. Feu clic a %s quan "
+"hàgiu\n"
+"acabat.\n"
"\n"
-"Feu clic al botó \"%s\" per canviar l'intèrpret d'ordres (\"shell\") per "
-"defecte\n"
+"Feu clic al botó %s per canviar l'intèrpret d'ordres (shell) per defecte\n"
"(bash) de l'usuari seleccionat. \n"
"\n"
-"Quan hagueu acabat d'afegir usuaris, se us proposarà decidir quin usuari\n"
-"entrarà automàticament en el sistema en arrencar l'ordinador. Si us\n"
+"Quan hàgiu acabat d'afegir-hi usuaris, se us proposarà decidir quin usuari\n"
+"entrarà automàticament al sistema en arrencar l'ordinador. Si us\n"
"interessa aquesta característica (i no us importa gaire la seguretat "
"local), \n"
-"trieu l'usuari i el gestor de finestres desitjat i feu clic a \"%s\".\n"
-"Si no hi esteu interessat, desactiveu el quadre \"%s\"."
+"trieu l'usuari i el gestor de finestres desitjat i feu clic a %s.\n"
+"Si no hi esteu interessats, desactiveu el quadre %s."
+
+#: ../help.pm:54
+#, c-format
+msgid "User name"
+msgstr "Nom d'usuari"
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr "Accepta l'usuari"
#: ../help.pm:54
#, c-format
msgid "Do you want to use this feature?"
-msgstr "Voleu utilitzar aquesta característica?"
+msgstr "Voleu usar aquesta funció?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -145,24 +154,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Aquestes són les particions de Linux existents que s'han detectat al disc "
@@ -171,65 +184,59 @@ msgstr ""
"adequades\n"
"per a les instal·lacions més habituals. Si hi feu algun canvi, com a mínim "
"heu\n"
-"de definir una partició arrel (\"/\"). No trieu una partició massa petita "
+"de definir una partició d'arrel (/). No trieu una partició massa petita "
"perquè\n"
"no podríeu instal·lar-hi prou programari. Si voleu emmagatzemar les dades en "
"una\n"
-"altra partició, us caldrà crear una partició \"/home\" (això només serà "
+"altra partició, us caldrà crear una partició /home (això només serà "
"possible\n"
"si hi ha més d'una partició de Linux disponible).\n"
"\n"
-"Cada partició està identificada d'aquesta manera: \"Nom\", \"Capacitat\".\n"
+"Cada partició està identificada d'aquesta manera: nom, capacitat.\n"
"\n"
-"\"Nom\" es compon de: \"tipus d'unitat de disc\", \"número d'unitat de disc"
-"\",\n"
-"\"número de la partició\" (per exemple, \"hda1\").\n"
+"El nom es compon del tipus d'unitat de disc, el número d'unitat de disc i\n"
+"el número de la partició (per exemple, hda1).\n"
"\n"
-"El \"Tipus d'unitat de disc\" és \"hd\" si la vostre unitat de disc és IDE i "
-"\"sd\" si és SCSI.\n"
+"El tipus d'unitat de disc és hd si la unitat de disc és IDE i sd si és "
+"SCSI.\n"
"\n"
-"El \"Número de la unitat de disc\" és sempre una lletra després d'\"hd\" o "
-"\"sd\".\n"
+"El número de la unitat de disc és sempre una lletra després d'hd o sd.\n"
"Per a unitats de disc IDE:\n"
"\n"
-" * \"a\" significa \"unitat de disc mestra en el controlador IDE primari\",\n"
+" * \"a\" significa 'unitat de disc mestra al controlador IDE primari',\n"
"\n"
-" * \"b\" significa \"unitat de disc esclava en el controlador IDE primari"
-"\",\n"
+" * \"b\" significa 'unitat de disc esclava al controlador IDE primari',\n"
"\n"
-" * \"c\" significa \"unitat de disc mestra en el controlador IDE secundari"
-"\",\n"
+" * \"c\" significa 'unitat de disc mestra al controlador IDE secundari',\n"
"\n"
-" * \"d\" significa \"unitat de disc esclava en el controlador IDE secundari"
-"\".\n"
+" * \"d\" significa 'unitat de disc esclava al controlador IDE secundari'.\n"
"\n"
-"Amb unitats de disc SCSI, una \"a\" significa \"ID SCSI més baixa\",\n"
-"una \"b\" significa \"segona ID SCSI més baixa\", etc."
+"Amb unitats de disc SCSI, una a significa 'ID SCSI més baixa',\n"
+"una b significa 'segona ID SCSI més baixa', etc."
#: ../help.pm:88
#, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"La instal·lació del Mandriva Linux està repartida en diversos CD-ROM. Si\n"
-"un dels paquets escollits està en un altre CD-ROM, DrakX expulsarà el CD\n"
+"La instal·lació del Mageia està repartida en diversos CD-ROM. Si\n"
+"un dels paquets triats és en un altre CD-ROM, el DrakX expulsarà el CD\n"
"actual i us demanarà que n'inseriu un altre. Si no teniu el CD necessari a\n"
-"mà, premeu \"%s\" i els paquets corresponents no s'instal·laran."
+"mà, premeu %s i els paquets corresponents no s'instal·laran."
#: ../help.pm:95
#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -242,8 +249,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -281,25 +287,25 @@ msgid ""
"megabytes."
msgstr ""
"Ha arribat el moment d'indicar els programes que voleu instal·lar en el\n"
-"sistema. Mandriva Linux té milers de paquets, i per facilitar-ne la\n"
+"sistema. Mageia té milers de paquets, i per a facilitar-ne la\n"
"gestió s'han distribuït en grups d'aplicacions similars.\n"
"\n"
-"Mandriva Linux agrupa els paquets en quatre categories. Podeu mesclar i fer\n"
+"Mageia agrupa els paquets en quatre categories. Podeu mesclar i fer\n"
"coincidir aplicacions de grups diversos, de manera que una instal·lació\n"
-"d'``Estació de treball'' pot perfectament tenir instal·lades aplicacions\n"
-"de la categoria ``Servidor'' \n"
+"d'«Estació de treball» pot perfectament tenir instal·lades aplicacions\n"
+"de la categoria «Servidor» \n"
+"\n"
" * \"%s\": si voleu utilitzar l'ordinador com a estació de treball,\n"
"seleccioneu un o més grups de la categoria estació de treball.\n"
"\n"
-" * \"%s\": si penseu utilitzar la vostra màquina per programar, escolliu\n"
-"els grups adients d'aquesta categoria. El grup especial \"LSB\"\n"
+" * \"%s\": si penseu utilitzar la vostra màquina per a programar, escolliu\n"
+"els grups adients d'aquesta categoria. El grup especial «LSB»\n"
"configurarà el vostre sistema per tal que compleixi tant com sigui\n"
-"possible amb les especificacions Linux Standard Base.\n"
+"possible les especificacions Linux Standard Base.\n"
"\n"
-" Seleccionar el grup \"LSB\" també instal·larà un kernel \"2.4\",\n"
-"en comptes del \"2.6\". Això es fa per assegurar que els sistema\n"
-"compleixi al 100%% amb LSB. Si no seleccioneu el grup \"LSB\"\n"
-"encara tindreu un sistema que compleix la LSB quasi al 100%%.\n"
+" Si seleccioneu el grup «LSB» s'assegura que els sistema\n"
+"compleix al 100%% amb LSB. Si no seleccioneu el grup «LSB»\n"
+"encara tindreu un sistema que compleix la LSB gairebé al 100%%.\n"
"\n"
" * \"%s\": si l'ordinador s'ha d'utilitzar com a servidor, seleccioneu\n"
"quins dels serveis més habituals voleu instal·lar\n"
@@ -311,28 +317,29 @@ msgstr ""
"Si moveu el cursor per sobre d'un nom de grup veureu una breu explicació\n"
"d'aquest grup.\n"
"\n"
-"Podeu marcar la casella \"%s\", que és útil si esteu familiaritzat amb els\n"
-"diversos paquets o si voleu tenir un control total sobre el que "
+"Podeu marcar la casella «%s», que és útil si esteu familiaritzats amb els\n"
+"diversos paquets o si voleu tenir un control total sobre allò que "
"s'instal·larà.\n"
"\n"
-"Si heu començat la instal·lació en el mode \"%s\", podeu desseleccionar \n"
+"Si comenceu la instal·lació en el mode «%s», podeu desseleccionar \n"
"tots els grups si voleu evitar que s'instal·li cap paquet nou. Això és\n"
"útil per reparar o actualitzar un sistema existent.\n"
+"\n"
"Si desseleccioneu tots els grups quan estigueu fent una\n"
"instal·lació normal (i no una actualització), se us presentarà un diàleg \n"
"proposant-vos diferents opcions per a una instal·lació mínima:\n"
"\n"
-" * \"%s\": instal·la els mínims paquets necessaris per tenir un\n"
+" * «%s»: instal·la els mínims paquets necessaris per a tenir un\n"
"entorn gràfic funcional\n"
"\n"
-" * \"%s\": instal·la el sistema base i les utilitats bàsiques amb la seva\n"
-"documentació. Aquesta instal·lació és adequada per configurar un servidor;\n"
+" * «%s»: instal·la el sistema base i les utilitats bàsiques amb la seva\n"
+"documentació. Aquesta instal·lació és adequada per a configurar un "
+"servidor;\n"
"\n"
-" * \"%s\": instal·la el nombre mínim de paquets necessari per aconseguir un\n"
+" * «%s»: instal·la el nombre mínim de paquets necessari per a aconseguir un\n"
"sistema Linux operatiu, només amb una interfície de línia d'ordres. Aquesta\n"
"instal·lació ocupa uns 65 MB."
-#
#: ../help.pm:149 ../help.pm:591
#, c-format
msgid "Upgrade"
@@ -343,11 +350,10 @@ msgstr "Actualitza"
msgid "With basic documentation"
msgstr "Amb la documentació bàsica"
-#
#: ../help.pm:149
#, c-format
msgid "Truly minimal install"
-msgstr "Instal·lació mínima real"
+msgstr "Instal·lació realment mínima"
#: ../help.pm:152
#, c-format
@@ -363,10 +369,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -395,19 +401,19 @@ msgstr ""
"Cada cop que seleccioneu un paquet de l'arbre, apareixerà una descripció a \n"
"la dreta que us informarà de la finalitat del paquet.\n"
"\n"
-"!! Si heu seleccionat un paquet de servidor, intencionadament o perquè\n"
+"Atenció! Si heu seleccionat un paquet de servidor, intencionadament o "
+"perquè\n"
"formava part d'un grup, se us demanarà que confirmeu si realment voleu\n"
-"instal·lar aquests servidors. Per defecte, Mandriva Linux "
-"iniciaràautomàticament qualsevol servidor durant l'arrencada. Tot i que\n"
+"instal·lar aquests servidors. Per defecte, Mageia iniciarà \n"
+"automàticament qualsevol servidor durant l'arrencada. Tot i que\n"
"siguin segurs i no tinguin cap problema conegut quan es publica la\n"
"distribució, és totalment possible que es descobreixin forats de seguretat\n"
-"després que aquesta versió de Mandriva Linux quedi finalitzada.\n"
-"Si no sabeu què se suposa que fa un servei en particular, o per què s'està\n"
-"instal·lant, feu clic a \"%s\". Per defecte, si feu clic a \"%s\" els "
-"serveis\n"
-"llistats s'instal·laran i s'iniciaran automàticament durant l'arrencada. !!\n"
+"després que aquesta versió de Mageia quedi acabada.\n"
+"Si no sabeu què se suposa que fa un servei particular, o per què s'està\n"
+"instal·lant, feu clic a %s. Per defecte, si feu clic a %s els serveis\n"
+"llistats s'instal·laran i s'iniciaran automàticament durant l'arrencada.\n"
"\n"
-"L'opció \"%s\" s'utilitza per inhabilitar el diàleg d'advertència que\n"
+"L'opció %s s'usa per inhabilitar el diàleg d'advertència que\n"
"apareix quan l'instal·lador selecciona automàticament un paquet per "
"resoldre\n"
"dependències. Alguns paquets estan relacionats els uns amb els\n"
@@ -416,36 +422,22 @@ msgstr ""
"calen\n"
"per satisfer una dependència i completar la instal·lació satisfactòriament.\n"
"\n"
-"La diminuta icona d'un disquet al peu de la llista us permet carregar una\n"
+"La icona diminuta d'un disquet al peu de la llista us permet carregar una\n"
"llista de paquets creada en una instal·lació anterior. Això és útil si "
"teniu\n"
"un cert nombre d'ordinadors que voleu configurar de manera idèntica. Si feu\n"
-"clic a aquesta icona se us demanarà que inseriu un disquet creat "
+"clic en aquesta icona se us demanarà que inseriu un disquet creat "
"anteriorment\n"
"al final d'una altra instal·lació. Vegeu el segon suggeriment de l'últim "
"pas\n"
-"per saber com crear aquest disquet."
+"per a saber com crear aquest disquet."
#: ../help.pm:183
#, c-format
msgid "Automatic dependencies"
msgstr "Dependències automàtiques"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": feu clic al botó \"%s\" per obrir l'auxiliar de configuració de la\n"
-"impressora. Consulteu el capítol corresponent de la ``Guia d'iniciació''\n"
-"per tenir més informació en quant a la configuració de noves impressores.\n"
-"La interfície que apareix és similar a la que s'utilitza durant la "
-"instal·lació."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -468,22 +460,21 @@ msgstr ""
"En aquest diàleg escollireu els serveis que voleu que s'iniciïn durant "
"l'arrencada.\n"
"\n"
-"DrakX farà una llista de tots els serveis disponibles en la instal·lació "
+"El DrakX farà una llista de tots els serveis disponibles a la instal·lació "
"actual.\n"
-"Reviseu-los amb cura i desmarqueu aquells que no siguin necessaris durant "
+"Reviseu-los amb cura i desmarqueu els que no siguin necessaris durant "
"l'arrencada.\n"
"\n"
"Podeu obtenir una explicació breu sobre un servei si el seleccioneu. Si no\n"
-"esteu segur de la utilitat d'un servei, el més segur és deixar el "
-"comportament\n"
+"teniu clara la utilitat d'un servei, el més segur és deixar el comportament\n"
"per defecte.\n"
"\n"
-"!! Aneu especialment amb cura en aquest pas si penseu utilitzar l'ordinador "
+"Atenció! Aneu especialment amb cura en aquest pas si penseu usar l'ordinador "
"com\n"
"a servidor: segurament no voldreu iniciar serveis que no necessiteu.\n"
"Recordeu que hi ha diversos serveis que poden ser perillosos si s'habiliten\n"
"en un servidor. En general, seleccioneu només els serveis que realment "
-"necessiteu. !!"
+"necessiteu."
#: ../help.pm:209
#, c-format
@@ -501,23 +492,26 @@ msgid ""
"choose a time server located near you. This option actually installs a time\n"
"server which can be used by other machines on your local network as well."
msgstr ""
-"GNU/Linux gestiona l'hora en GMT (Greenwich Mean Time) i el tradueix a\n"
+"El GNU / Linux gestiona l'hora en GMT (Greenwich Mean Time) i el tradueix a\n"
"l'hora local d'acord amb la zona horària seleccionada. Si el rellotge de la\n"
-"placa base indica l'hora local, podeu desactivar-ho desseleccionant \"%s\", "
-"i\n"
-"això informarà a GNU/Linux que el rellotge del sistema i el rellotge del\n"
+"placa base indica l'hora local, podeu desactivar-ho desmarcant %s, i\n"
+"això informarà al GNU / Linux que el rellotge del sistema i el rellotge del\n"
"maquinari són a la mateixa zona horària. Això és convenient quan la màquina\n"
"també té instal·lat un altre sistema operatiu.\n"
"\n"
-"L'opció \"%s\" regularà automàticament l'hora connectant-se a un servidor\n"
+"L'opció %s regularà automàticament l'hora connectant-se a un servidor\n"
"horari remot d'Internet. Per tal que funcioni aquesta funció us caldrà "
"tenir\n"
-"connexió a Internet. És millor triar un servidor que estigui ubicat a prop\n"
-"vostre. De fet, aquesta opció instal·la un servidor d'hora que altres "
-"màquines\n"
-"de la vostra xarxa local també podran utilitzar."
+"connexió a Internet. És millor triar un servidor que estigui ubicat a prop.\n"
+"De fet, aquesta opció instal·la un servidor d'hora que altres màquines\n"
+"de la vostra xarxa local també podran usar."
+
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr "Rellotge de maquinari establert a GMT"
-#: ../help.pm:220
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Sincronització automàtica de la hora"
@@ -539,7 +533,7 @@ msgstr ""
"\n"
" Normalment, l'instal·lador detectarà automàticament i configurarà la\n"
"targeta gràfica que tingueu instal·lada a l'ordinador. Si no fos així, la\n"
-"podeu seleccionar d'aquesta llista.\n"
+"podeu seleccionar en aquesta llista.\n"
"\n"
" Cas que hi hagi diferents servidors per a la targeta, amb o sense\n"
"acceleració 3D, se us demanarà que trieu el servidor que us sigui\n"
@@ -550,7 +544,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -604,9 +598,9 @@ msgid ""
"want to check \"%s\" if your machine is to act as a server, or if you were\n"
"not successful in getting the display configured."
msgstr ""
-"X (per sistema X Window) és el cor de la interfície gràfica de GNU/Linux\n"
+"X (el sistema X Window) és el cor de la interfície gràfica de GNU / Linux\n"
"de què depenen tots els entorns gràfics (KDE, GNOME, AfterStep, \n"
-"WindowMaker, etc.) que venen amb Mandriva Linux.\n"
+"WindowMaker, etc.) que venen amb Mageia.\n"
"\n"
"Veureu una relació de diferents paràmetres que podeu canviar per aconseguir\n"
"una visualització gràfica òptima.\n"
@@ -614,11 +608,11 @@ msgstr ""
"Targeta gràfica\n"
"\n"
" Normalment, l'instal·lador detectarà i configurarà automàticament la\n"
-"targeta gràfica instal·lada a l'ordinador. Si no fos així, podeu escollir\n"
-"de la llista la targeta que realment tingueu instal·lada.\n"
+"targeta gràfica instal·lada a l'ordinador. Si no fos així, podeu triar a\n"
+"la llista la targeta que realment tingueu instal·lada.\n"
"\n"
" En cas que hi hagi diferents servidors disponibles per a la vostra\n"
-"targeta, amb o sense acceleració 3D, se us demanarà que escolliu el que\n"
+"targeta, amb acceleració 3D o sense, se us demanarà que trieu el que\n"
"més us convingui.\n"
"\n"
"\n"
@@ -634,7 +628,7 @@ msgstr ""
"Resolució\n"
"\n"
" Aquí podeu triar les resolucions i profunditats de color disponibles per\n"
-"al vostre maquinari. Trieu la que us vagi més bé (tot i que podreu\n"
+"al maquinari. Trieu la que us vagi més bé (tot i que podreu\n"
"canviar-la després de la instal·lació). Al monitor veureu una mostra de la\n"
"configuració triada.\n"
"\n"
@@ -642,21 +636,21 @@ msgstr ""
"\n"
"Prova\n"
"\n"
-" Depenent del maquinari aquesta entrada pot no aparèixer.\n"
+" Segons el maquinari aquesta entrada pot no aparèixer.\n"
"\n"
" El sistema intentarà obrir una pantalla gràfica amb la resolució\n"
-"desitjada. Si podeu veure el missatge durant la prova i responeu \"%s\",\n"
-"DrakX passarà al pas següent. Si no el podeu veure, vol dir que la\n"
+"desitjada. Si podeu veure el missatge durant la prova i responeu %s,\n"
+"el DrakX passarà al pas següent. Si no el podeu veure, vol dir que la\n"
"configuració detectada automàticament no era del tot correcta i la prova\n"
-"finalitzarà automàticament al cap de 12 segons, portant-vos de nou al menú.\n"
-"Canvieu els paràmetres fins que obtingueu una pantalla gràfica correcta.\n"
+"acabarà automàticament al cap de 12 segons, i us tornarà al menú.\n"
+"Canvieu els paràmetres fins que obtingueu una visulització correcta.\n"
"\n"
"\n"
"\n"
"Opcions\n"
"\n"
" Aquí podeu decidir si voleu que l'ordinador canviï automàticament a una\n"
-"interfície gràfica en arrencar. Òbviament, voldreu activar \"%s\" si\n"
+"interfície gràfica en arrencar. Òbviament, voldreu activar %s si\n"
"l'ordinador ha d'actuar com a servidor, o si no heu aconseguit\n"
"configurar la pantalla."
@@ -688,7 +682,7 @@ msgstr ""
"Resolució\n"
"\n"
" Aquí podeu triar les resolucions i profunditats de color disponibles per\n"
-"al vostre maquinari. Trieu la que us vagi més bé (tot i que podreu\n"
+"al maquinari. Trieu la que us vagi més bé (tot i que podreu\n"
"canviar-la després de la instal·lació). Al monitor veureu una mostra de la\n"
"configuració triada."
@@ -700,7 +694,7 @@ msgid ""
"suits your needs."
msgstr ""
"En cas que hi hagi diferents servidors disponibles per a la vostra\n"
-"targeta, amb o sense acceleració 3D, se us demanarà que escolliu\n"
+"targeta, amb o sense acceleració 3D, se us demanarà que trieu\n"
"el servidor que més us convingui."
#: ../help.pm:311
@@ -716,45 +710,49 @@ msgstr ""
"Opcions\n"
"\n"
" Aquí podeu decidir si voleu que l'ordinador canviï automàticament a una\n"
-"interfície gràfica en arrencar. Òbviament, activareu \"%s\" si l'ordinador\n"
+"interfície gràfica en arrencar. Òbviament, activareu %s si l'ordinador\n"
"ha de ser un servidor, o si no heu pogut configurar la pantalla."
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -763,15 +761,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -785,74 +783,80 @@ msgid ""
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
"Ara és quan heu de decidir en quin lloc del vostre disc dur voleu\n"
-"instal·lar el sistema operatiu Mandriva Linux. Si el disc és buit,\n"
-"o si un sistema operatiu existent n'utilitza tot l'espai disponible,\n"
+"instal·lar el sistema operatiu Mageia. Si el disc és buit,\n"
+"o si un sistema operatiu existent n'usa tot l'espai disponible,\n"
"us caldrà particionar-lo. Bàsicament, particionar un disc dur\n"
"consisteix a dividir-lo de manera lògica per crear espai on\n"
-"instal·lar el nou sistema Mandriva Linux.\n"
+"instal·lar el nou sistema.\n"
"\n"
"Atès que els efectes d'aquest procés solen ser irreversibles i poden\n"
-"implicar pèrdua de dades si ja teniu un sistema operatiu instal·lat, el\n"
-"particionament us pot espantar si sou un usuari sense experiència.\n"
-"Per sort, DrakX inclou un auxiliar que simplifica aquest procés.\n"
+"implicar pèrdua de dades si ja teniu un sistema operatiu instal·lat,\n"
+"fer particions us pot espantar si sou un usuari sense experiència.\n"
+"Per sort, el DrakX inclou un auxiliar que simplifica aquest procés.\n"
"Abans de continuar, però, llegiu la resta d'aquesta secció i,\n"
"sobre tot, preneu-vos el temps que calgui.\n"
"\n"
-"Segons la configuració del vostre disc dur, hi ha diverses opcions\n"
+"Segons la configuració del disc dur, hi ha diverses opcions\n"
"possibles:\n"
"\n"
-" * \"%s\": aquesta opció particionarà automàticament les unitats buides.\n"
+" * %s: aquesta opció particionarà automàticament les unitats buides.\n"
"Amb aquesta opció no se us farà cap pregunta més.\n"
"\n"
-" * \"%s\": l'auxiliar ha detectat una o més particions de Linux al vostre\n"
-"disc dur. Si voleu utilitzar-les, escolliu aquesta opció. Se us demanarà\n"
+" * %s: l'auxiliar ha detectat una o més particions de Linux al\n"
+"disc dur. Si voleu usar-les, trieu aquesta opció. Se us demanarà\n"
"que trieu els punts de muntatge associats a cadascuna de les particions.\n"
"Els punts de muntatge existents se seleccionen per defecte, i en la\n"
"majoria dels casos és bona idea conservar-los.\n"
"\n"
-" * \"%s\" Si teniu el Microsoft Windows instal·lat al disc dur i n'ocupa\n"
-"tot l'espai disponible, caldrà crear espai lliure per a GNU/Linux. Per\n"
+" * %s: si teniu el Microsoft Windows instal·lat al disc dur i n'ocupa\n"
+"tot l'espai disponible, caldrà crear espai lliure per a GNU / Linux. Per\n"
"fer-ho, podeu suprimir la partició i les dades del Windows\n"
-"(consulteu la solució ``Esborrar completament el disc'') o canviar\n"
+"(consulteu la solució Esborrar completament el disc) o canviar\n"
"la mida de la partició FAT o NTFS de Windows. Aquest canvi de mida\n"
"es pot dur a terme sense cap pèrdua de dades, sempre que la\n"
"partició de Windows hagi estat desfragmentada prèviament.\n"
-"És molt recomanable, fer una còpia de seguretat de les dades.\n"
-"Aquesta opció és la més recomanable si voleu utilitzar tant\n"
-"Mandriva Linux com Microsoft Windows al mateix ordinador.\n"
+"És molt recomanable fer una còpia de seguretat de les dades.\n"
+"Aquesta opció és la més recomanable si voleu usar tant\n"
+"Mageia com Microsoft Windows al mateix ordinador.\n"
"\n"
" Abans de decidir-vos per aquesta opció, penseu que en acabar la partició\n"
-"de Microsoft Windows serà més petita que anteriorment. Tindreu menys espai\n"
+"de Microsoft Windows serà més petita que abans. Tindreu menys espai\n"
"lliure a Microsoft Windows per emmagatzemar-hi dades o instal·lar-hi més "
"programari.\n"
"\n"
-" *\"%s\": si voleu suprimir totes les dades i particions que teniu al disc\n"
-"dur i substituir-les pel sistema Mandriva Linux, podeu escollir aquesta\n"
+" *%s: si voleu suprimir totes les dades i particions que teniu al disc\n"
+"dur i substituir-les pel sistema Mageia, podeu triar aquesta\n"
"opció. Aneu amb compte, però, perquè, un cop la confirmeu, no podreu\n"
"fer-vos enrere.\n"
"\n"
-" ¡¡ Si trieu aquesta opció, totes les dades del disc s'esborraran !!.\n"
+" Atenció! Si trieu aquesta opció, totes les dades del disc s'esborraran.\n"
"\n"
-" *\"%s\": aquesta opció apareix quan el disc dur està completament ple\n"
-"per Microsoft Windows. Escollir aquest opció esborrarà tot el contingut del "
+" *%s: aquesta opció apareix quan el disc dur està completament ocupat\n"
+"pel Microsoft Windows. Triar aquest opció esborrarà tot el contingut del "
"disc i\n"
-"començarà de nou, particionant des de zero.\n"
-" ¡¡ Si trieu aquesta opció, totes les dades del disc s'esborraran !!.\n"
+"començarà de nou i es faran les particions des de zero.\n"
+" Atenció! Si trieu aquesta opció, totes les dades del disc s'esborraran.\n"
"\n"
-" * \"%s\": si voleu particionar el disc dur manualment, podeu triar aquesta\n"
+" * %s: si voleu fer les particions del disc dur manualment, podeu triar "
+"aquesta\n"
"opció. Aneu amb compte: és una opció molt potent però també perillosa, ja\n"
-"que podeu perdre fàcilment totes les dades. Per tant, aquesta opció només "
+"que podeu perdre'n fàcilment totes les dades. Per tant, aquesta opció només "
"és\n"
"recomanable si heu fet abans alguna cosa similar i teniu una mica\n"
"d'experiència. Trobareu més instruccions sobre la utilitat DiskDrake a la\n"
-"secció ``Gestió de les particions'' de la ``Guia d'iniciació''."
+"secció Gestió de les particions de la Guia d'iniciació."
#: ../help.pm:377
#, c-format
msgid "Use existing partition"
-msgstr "Utilitza les particions existents"
+msgstr "Usa les particions existents"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr "Usa l'espai lliure a la partició Microsoft Windows®"
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Esborra tot el disc"
@@ -894,48 +898,64 @@ msgid ""
"\"mformat a:\", or \"fdformat /dev/fd0\" followed by \"mkfs.vfat\n"
"/dev/fd0\"."
msgstr ""
-"Ja ho teniu. S'ha completat la instal·lació i el vostre sistema GNU/Linux\n"
-"està preparat per fer-se servir. Simplement premeu \"%s\" per reiniciar el\n"
+"Ja ho teniu. S'ha completat la instal·lació i el sistema GNU / Linux\n"
+"està preparat per funcionar. Simplement premeu %s per reiniciar el\n"
"sistema. No oblideu treure la font d'instal·lació (CD-ROM o disquet).\n"
-"La primera cosa que veureu, després que l'ordinador hagi finalitzat les\n"
+"La primera cosa que veureu, després que l'ordinador hagi acabat les\n"
"comprovacions de maquinari, és el menú del carregador d'arrencada, que us\n"
"deixa triar el sistema operatiu amb què voleu iniciar.\n"
"\n"
-"El botó \"%s\" mostra dos botons més per:\n"
+"El botó %s mostra dos botons més:\n"
"\n"
-" * \"%s\": per crear un disquet d'instal·lació que realitzarà\n"
+" * %s: per crear un disquet d'instal·lació que farà\n"
"automàticament una instal·lació completa sense l'ajuda d'un operador,\n"
"semblant a la instal·lació que acabeu de configurar.\n"
"\n"
" Tingueu en compte que hi ha dues opcions diferents després de fer clic al "
"botó:\n"
"\n"
-" * \"%s\". Aquesta és una instal·lació parcialment automatitzada; el pas\n"
-"de particionament és l'únic procediment interactiu.\n"
+" * %s: aquesta és una instal·lació parcialment automatitzada; el pas\n"
+"de fer les particions és l'únic procediment interactiu.\n"
"\n"
-" * \"%s\". Instal·lació completament automatitzada: el disc dur es\n"
+" * %s: instal·lació completament automatitzada: el disc dur es\n"
"reescriu completament i totes les dades es perden.\n"
"\n"
-" Aquesta característica és força útil quan es fa una instal·lació a un\n"
+" Aquesta característica és força útil quan es fa una instal·lació en un\n"
"cert nombre d'ordinadors similars. En trobareu més informació a la secció\n"
"d'instal·lació automàtica del nostre lloc web.\n"
"\n"
-" * \"%s\": desa una llista dels paquets seleccionats en aquesta\n"
-"instal·lació. Per utilitzar aquesta selecció en una altra instal·lació,\n"
+" * %s: desa una llista dels paquets seleccionats en aquesta\n"
+"instal·lació. Per usar aquesta selecció en una altra instal·lació,\n"
"inseriu el disquet i inicieu la instal·lació. A l'indicador, premeu la\n"
-"tecla F1, i escriviu >>linux defcfg=\"floppy\"<< i premeu la tecla [Enter].\n"
+"tecla F1, i escriviu >>linux defcfg=\"floppy\"<< i premeu la tecla de "
+"retorn.\n"
"\n"
-"(*) Cal un disquet formatejat amb FAT. Per crear-ne un a GNU/Linux, \n"
-"escriviu \"mformat a:\", o \"fdformat /dev/fd0\" seguit de\n"
+"(*) Cal un disquet formatat amb FAT. Per crear-ne un a GNU / Linux, \n"
+"escriviu \"mformat a:\" o \"fdformat /dev/fd0\" seguit de\n"
"\"mkfs.vfat /dev/fd0\"."
#: ../help.pm:412
#, c-format
msgid "Generate auto-install floppy"
-msgstr "Genera un disquet per a la instal·lació automàtica"
+msgstr "Genera un disquet per a instal·lació automàtica"
+
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr "Repeteix"
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr "Automatitzat"
-#: ../help.pm:415
-#, fuzzy, c-format
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr "Desa la selecció de paquets"
+
+#: ../help.pm:408
+#, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -954,38 +974,35 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
msgstr ""
-"Per poder utilitzar les particions que s'acaben de definir cal formatar-les\n"
-"(la formatació consisteix a crear-hi un sistema de fitxers).\n"
-"\n"
-"En aquest punt, potser voldreu tornar a formatar algunes de les particions\n"
-"existents per eliminar les dades que contenen. Si és així, seleccioneu\n"
-"també aquestes particions.\n"
+"Si heu triat la reutilització d'algunes de les particions de GNU / Linux,\n"
+"potser voleu reformatar-ne algunes i esborrar les dades que contenen.\n"
+"Per a fer-ho, seleccioneu també aquestes particions.\n"
"\n"
"Tingueu en compte que no cal tornar a formatar totes les particions que ja\n"
"existien; heu de tornar a formatar les particions que continguin el sistema\n"
-"operatiu (com ara \"/\", \"/usr\" o \"/var\"), però no les que contenen\n"
-"dades que voleu conservar (habitualment, \"/home\").\n"
+"operatiu (com ara /, /usr o /var), però no les que contenen\n"
+"dades que voleu conservar (habitualment /home).\n"
"\n"
-"Aneu amb compte en seleccionar les particions; després de la formatació,\n"
+"Aneu amb compte a l'hora de seleccionar les particions; després de la "
+"formatació,\n"
"totes les dades s'hauran suprimit i no en podreu recuperar cap.\n"
"\n"
-"Feu clic a \"%s\" quan estigueu a punt per formatar les particions.\n"
+"Feu clic a %s quan estigueu a punt per formatar les particions.\n"
"\n"
-"Feu clic a \"%s\" si voleu seleccionar una altra partició per instal·lar\n"
-"el nou sistema Mandriva Linux.\n"
+"Feu clic a %s si voleu seleccionar una altra partició per instal·lar\n"
+"el nou sistema Mageia.\n"
"\n"
-"Feu clic a \"%s\" si voleu seleccionar particions on cercar-hi blocs "
-"defectuosos."
+"Feu clic a %s si voleu seleccionar particions on cercar-hi blocs defectuosos."
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -997,17 +1014,18 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Ara esteu instal·lant Mandriva Linux, és probable que alguns paquets\n"
+"En el moment d'instal·lar Mageia, és probable que alguns paquets\n"
"hagin estat actualitzats des de la data de llançament. Alguns errors poden\n"
-"haver estat resolts, i problemes de seguretat poden estar ja corregits.\n"
+"haver estat resolts, i alguns problemes de seguretat poden estar ja "
+"corregits.\n"
"Per beneficiar-vos d'aquestes actualitzacions, les podeu baixar d'Internet.\n"
-"Trieu \"%s\" si teniu una connexió a Internet operativa, o \"%s\" si\n"
+"Marqueu %s si teniu una connexió a Internet operativa, o bé %s si\n"
"preferiu instal·lar-les més tard.\n"
"\n"
-"Si trieu \"%s\" apareixerà una llista de llocs des d'on podeu baixar les\n"
-"actualitzacions. Escolliu la ubicació més propera. Aleshores, apareixerà\n"
-"un arbre de selecció de paquets: comproveu la selecció i premeu \"%s\" per\n"
-"baixar i instal·lar els paquets seleccionats, o \"%s\" per abandonar."
+"Si trieu %s apareixerà una llista de llocs des d'on podeu baixar les\n"
+"actualitzacions. Trieu la ubicació més propera. Aleshores, apareixerà\n"
+"un arbre de selecció de paquets: comproveu la selecció i premeu %s per\n"
+"baixar i instal·lar els paquets seleccionats, o bé %s per sortir-ne."
#: ../help.pm:450
#, c-format
@@ -1019,7 +1037,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1031,11 +1049,11 @@ msgstr ""
"Tanmateix, un nivell alt de seguretat sovint comporta una disminució de la\n"
"facilitat d'ús.\n"
"\n"
-"Si no sabeu quin escollir, deixeu l'opció per defecte.. Podreu canviar\n"
+"Si no sabeu quin triar, deixeu l'opció per defecte.. Podreu canviar\n"
"el nivell de seguretat més tard amb l'eina draksec del\n"
-"Centre de Control Mandriva Linux.\n"
+"Centre de Control Mageia.\n"
"\n"
-"Ompliu el camp \"%s\" amb l'adreça electrònica de la persona responsable\n"
+"Ompliu el camp %s amb l'adreça electrònica de la persona responsable\n"
"de la seguretat. Els missatges de seguretat s'enviaran a aquesta adreça."
#: ../help.pm:461
@@ -1047,21 +1065,24 @@ msgstr "Administrador de seguretat"
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1077,21 +1098,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1108,98 +1131,109 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-"Ara és quan heu de decidir quina(es) partició(ns) voleu utilitzar per\n"
-"instal·lar el sistema Mandriva Linux. Si ja s'han definit les particions\n"
-"en una instal·lació anterior de GNU/Linux o mitjançant una altra eina de\n"
-"particionament, podeu utilitzar les particions existents. En cas contrari,\n"
-"s'han de definir particions al disc dur.\n"
+"Ara és quan heu de decidir quines particions voleu usar per\n"
+"instal·lar el sistema Mageia. Si ja s'han definit les particions\n"
+"en una instal·lació anterior de GNU / Linux o mitjançant una altra eina de\n"
+"partiment, podeu usar les particions existents. En cas contrari,\n"
+"cal definir particions al disc dur.\n"
"\n"
"Per crear particions, primer heu de seleccionar un disc dur. Podeu\n"
-"seleccionar el disc que s'ha de particionar fent clic a ``hda'' per a la\n"
-"primera unitat IDE, ``hdb'' per a la segona, ``sda'' per a la primera "
-"unitat\n"
+"seleccionar el disc que s'ha de particionar fent clic a hda per a la\n"
+"primera unitat IDE, hdb per a la segona, sda per a la primera unitat\n"
"SCSI, etc.\n"
"\n"
-"Per particionar el disc dur seleccionat, podeu utilitzar aquestes opcions:\n"
+"Per particionar el disc dur seleccionat, podeu usar aquestes opcions:\n"
"\n"
-" * \"%s\": aquesta opció suprimeix totes les particions que hi ha al\n"
+" * %s: aquesta opció suprimeix totes les particions que hi ha al\n"
"disc dur seleccionat.\n"
"\n"
-" * \"%s\": aquesta opció us permet crear automàticament les particions\n"
-"ext3 i d'intercanvi en l'espai lliure del disc dur.\n"
+" * %s: aquesta opció us permet crear automàticament les particions\n"
+"ext4 i d'intercanvi en l'espai lliure del disc dur.\n"
"\n"
-"\"%s\": dóna accés a funcions addicionals:\n"
+"*%s: dóna accés a funcions addicionals:\n"
"\n"
-" * \"%s\": desa la taula de particions en un disquet. És útil per a una\n"
+" * %s: desa la taula de particions en un disquet. És útil per a una\n"
"recuperació posterior de la taula de particions si fos necessari. És molt\n"
-"recomanable que efectueu aquesta operació.\n"
+"recomanable que feu aquesta operació.\n"
"\n"
-" * \"%s\": permet restaurar d'un disquet una taula de particions que hi\n"
+" * %s: permet restaurar d'un disquet una taula de particions que hi\n"
"hagueu desat prèviament.\n"
"\n"
-" * \"%s\": si la taula de particions està malmesa, podeu provar de\n"
-"recuperar-la utilitzant aquesta opció. Aneu amb compte i recordeu que no\n"
+" * %s: si la taula de particions està malmesa, podeu provar de\n"
+"recuperar-la usant aquesta opció. Aneu amb compte i recordeu que no\n"
"sempre funciona.\n"
"\n"
-" * \"%s\": descarta tots els canvis fets i torna a carregar la taula\n"
+" * %s: descarta tots els canvis fets i torna a carregar la taula\n"
"de particions original.\n"
"\n"
-" * \"%s\": si desseleccioneu aquesta opció fareu que els usuaris hagin\n"
+" * %s: si desseleccioneu aquesta opció fareu que els usuaris hagin\n"
"de muntar i desmuntar manualment les unitats de suports extraïbles, com ara\n"
"els disquets i els CD-ROM.\n"
"\n"
-" * \"%s\": utilitzeu aquesta opció si voleu utilitzar un auxiliar per\n"
-"particionar el vostre disc dur. Es recomana que l'utilitzeu si no teniu\n"
-"sòlids coneixements sobre particionament.\n"
+" * %s: useu aquesta opció si voleu un auxiliar per\n"
+"particionar el disc dur. Es recomana que l'useu si no teniu\n"
+"coneixements sòlids sobre particions.\n"
"\n"
-" * \"%s\": utilitzeu aquesta opció per cancel·lar els canvis.\n"
+" * %s: useu aquesta opció per cancel·lar els canvis.\n"
"\n"
-" * \"%s\": permet accions addicionals en les particions (tipus,\n"
+" * %s: permet accions addicionals en les particions (tipus,\n"
"opcions, format) i dóna més informació sobre el disc dur.\n"
"\n"
-" * \"%s\": quan hagueu acabat de particionar el disc dur, aquesta opció\n"
+" * %s: quan hàgiu acabat de partir el disc dur, aquesta opció\n"
"desarà els canvis al disc.\n"
"\n"
"En definir la mida d'una partició, podeu acabar d'afinar-la mitjançant\n"
-"les tecles de fletxa del teclat.\n"
+"les tecles de fletxes del teclat.\n"
" \n"
"Nota: podeu accedir a qualsevol opció mitjançant el teclat. Moveu-vos per\n"
-"les particions amb les tecles Tab i Fletxa amunt/Fletxa avall.\n"
-"\n"
-"Quan seleccioneu una partició, podeu utilitzar:\n"
+"les particions amb les tecles Tab i Fletxa amunt / Fletxa avall.\n"
"\n"
-" * Ctrl+c per crear una nova partició (quan se n'ha seleccionat una de "
-"buida)\n"
+"Quan seleccioneu una partició, podeu usar el següent:\n"
"\n"
-" * Ctrl+d per suprimir una partició\n"
+" * Ctrl+c per crear una partició nova (quan se n'ha seleccionat una de "
+"buida).\n"
"\n"
-" * Ctrl+m per definir el punt de muntatge\n"
+" * Ctrl+d per suprimir una partició.\n"
"\n"
-"Per a més informació sobre els diferents sistemes de fitxers disponibles,\n"
-"llegiu el capítol sobre ext2FS del ``Manual de Referència''.\n"
+" * Ctrl+m per definir el punt de muntatge.\n"
"\n"
-"Si esteu fent la instal·lació en un ordinador PPC, voldreu crear una\n"
-"petita partició ``bootstrap'' HFS d'un mínim d'1 MB per a ús del carregador\n"
-"d'arrencada yaboot. Si decidiu fer-la una mica més gran, per exemple de\n"
-"50 MB, us serà d'utilitat per emmagatzemar un nucli de recanvi i imatges\n"
-"del disc RAM per a situacions d'emergència durant l'arrencada."
+"Per a més informació sobre els diversos sistemes de fitxers disponibles,\n"
+"llegiu el capítol sobre ext2FS del Manual de Referència.\n"
-#
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr "Desa la taula de particions"
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr "Recupera la taula de particions"
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr "Rescata la taula de particions"
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Muntatge automàtic dels dispositius extraïbles"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr "Auxiliar"
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr "Desfés"
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Commuta entre els modes normal i expert"
@@ -1207,69 +1241,72 @@ msgstr "Commuta entre els modes normal i expert"
#: ../help.pm:536
#, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"S'ha detectat més d'una partició de Microsoft a la unitat de disc.\n"
-"Si us plau, trieu quina d'elles voleu redimensionar per instal·lar el nou\n"
-"sistema operatiu Mandriva Linux.\n"
+"Si us plau, trieu quina voleu canviar de mida per instal·lar-hi el nou\n"
+"sistema operatiu Mageia.\n"
"\n"
-"Cada partició està identificada d'aquesta manera: \"Nom Linux\",\n"
-"\"Nom Windows\" \"Capacitat\".\n"
+"Cada partició està identificada d'aquesta manera: nom de Linux,\n"
+"nom de Windows, capacitat.\n"
"\n"
-"\"Nom Linux\" es compon de: \"tipus d'unitat de disc dur\",\n"
-"\"número d'unitat de disc dur\", \"número de la partició\"\n"
-"(per exemple, \"hda1\").\n"
+"El Nom Linux es compon del tipus d'unitat de disc dur,\n"
+"el número d'unitat de disc dur i el número de la partició\n"
+"(per exemple: hda1).\n"
"\n"
-"\"Tipus d'unitat de disc dur\" és \"hd\" si la vostre unitat de disc dur és\n"
-"IDE i \"sd\" si és SCSI.\n"
+"El tipus d'unitat de disc dur és hd si la unitat de disc dur és\n"
+"IDE i sd si és SCSI.\n"
"\n"
-"\"Número de la unitat de disc dur\" és sempre una lletra després d'\"hd\" o\n"
-"\"sd\". Amb unitats de disc IDE:\n"
+"El número de la unitat de disc dur és sempre una lletra després d'hd o\n"
+"bé sd. Amb unitats de disc IDE:\n"
"\n"
-" * \"a\" significa \"unitat de disc mestra en el controlador IDE primari\",\n"
+" * «a» significa 'unitat de disc mestra al controlador IDE primari',\n"
"\n"
-" * \"b\" significa \"unitat de disc esclava en el controlador IDE primari"
-"\",\n"
+" * «b» significa 'unitat de disc esclava al controlador IDE primari',\n"
"\n"
-" * \"c\" significa \"unitat de disc mestra en el controlador IDE secundari"
-"\",\n"
+" * «c» significa 'unitat de disc mestra al controlador IDE secundari',\n"
"\n"
-" * \"d\" significa \"unitat de disc esclava en el controlador IDE secundari"
-"\".\n"
+" * «d» significa 'unitat de disc esclava al controlador IDE secundari'.\n"
"\n"
-"Amb les unitats de disc SCSI, una \"a\" significa \"ID SCSI més baixa\",\n"
-"una \"b\" significa \"segona ID SCSI més baixa\", etc.\n"
+"Amb les unitats de disc SCSI, una a significa 'ID SCSI més baixa',\n"
+"una b significa 'segona ID SCSI més baixa', etc.\n"
"\n"
-"\"Nom Windows\" és la lletra de la vostra unitat de disc sota Windows (el\n"
-"primer disc o partició s'anomena \"C:\")."
+"El nom de Windows és la lletra de la vostra unitat de disc a Windows (el\n"
+"primer disc o partició s'anomena C:)."
#: ../help.pm:567
#, c-format
@@ -1279,9 +1316,9 @@ msgid ""
"the\n"
"list shown, click on the \"%s\" button to get the complete country list."
msgstr ""
-"\"%s\": comproveu que la selecció del país és correcta. Si no sou a\n"
-"aquest país, feu clic al botó \"%s\" i seleccioneu-ne un altre.\n"
-"Si el vostre país no és a la primera llista, feu clic al botó \"%s\" per\n"
+"%s: comproveu que la selecció del país és correcta. Si no sou en\n"
+"aquest país, feu clic al botó %s i seleccioneu-ne un altre.\n"
+"Si el país no és a la primera llista, feu clic al botó %s per\n"
"obtenir una llista de països completa."
#: ../help.pm:572
@@ -1291,48 +1328,48 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
-"Aquest pas només s'activa si s'ha trobat una partició GNU/Linux antiga\n"
-"al vostre ordinador.\n"
+"Aquest pas només s'activa si s'ha trobat una partició GNU / Linux existent\n"
+"a l'ordinador.\n"
"\n"
-"DrakX necessita saber si voleu realitzar una instal·lació nova o\n"
-"una actualització d'un sistema Mandriva Linux existent:\n"
+"El DrakX necessita saber si voleu fer una instal·lació nova o bé\n"
+"una actualització d'un sistema Mageia existent:\n"
"\n"
-" * \"%s\": aquesta opció destrueix gairebé del tot el sistema antic. Si\n"
+" * %s: aquesta opció destrueix gairebé del tot el sistema existent. Si\n"
"voleu canviar les particions dels discs durs, o el sistema de fitxers,\n"
-"heu d'utilitzar aquesta opció. No obstant això, i depenent de l'esquema de\n"
-"particionament que tingueu, podeu evitar que part de les dades existents\n"
-"(per exemple els directoris \"home\") se sobreescriguin.\n"
+"heu d'usar aquesta opció. No obstant això, i depenent de l'esquema de\n"
+"particions que tingueu, podeu evitar que part de les dades existents\n"
+"(per exemple els directoris home) se sobreescriguin.\n"
"\n"
-" * \"%s\": aquest tipus d'instal·lació us permet actualitzar els paquets\n"
-"que ja estan instal·lats al sistema Mandriva Linux. L'esquema de\n"
-"particionament actual i les dades d'usuari no queden afectades. La\n"
+" * %s: aquest tipus d'instal·lació us permet actualitzar els paquets\n"
+"que ja estan instal·lats al sistema Mageia. L'esquema de\n"
+"particions actual i les dades d'usuari no queden afectades. La\n"
"majoria de les altres fases de configuració queden disponibles, de\n"
"manera similar a una instal·lació estàndard.\n"
"\n"
-"L'opció “Actualitza” ha de funcionar correctament en sistemes Mandriva\n"
-"Linux amb la versió \"8.1\" o posteriors. No es recomana realitzar una\n"
-"actualització en versions de Mandriva Linux anteriors a la \"8.1\"."
+"L'opció Actualitza hauria de funcionar correctament en sistemes Mandriva\n"
+"Linux amb la versió 8.1 o posteriors. No es recomana fer una\n"
+"actualització en versions de Mandriva anteriors a la 8.1."
#: ../help.pm:594
-#, fuzzy, c-format
+#, c-format
msgid ""
"Depending on the language you chose (), DrakX will automatically select a\n"
"particular type of keyboard configuration. Check that the selection suits\n"
@@ -1351,28 +1388,26 @@ msgid ""
"dialog will allow you to choose the key binding which will switch the\n"
"keyboard between the Latin and non-Latin layouts."
msgstr ""
-"DrakX seleccionarà automàticament la configuració de teclat correcta\n"
-"segons l'idioma que hagueu escollit a Secció. Comproveu que la selecció\n"
-"us vagi bé o escolliu una altra configuració de teclat.\n"
-"\n"
-"Tanmateix, pot ser que tingueu un teclat que no correspongués exactament al\n"
-"vostre idioma: per exemple, si sou un suís que parla anglès, potser teniu "
-"un\n"
-"teclat suís. O, si parleu anglès però viviu al Quebec, us podeu trobar en "
-"la\n"
-"mateixa situació i el vostre teclat no coincidirà amb el vostre idioma. En\n"
-"tots dos casos, aquesta fase de la instal·lació us permetrà triar un teclat\n"
+"El DrakX seleccionarà automàticament la configuració de teclat correcta\n"
+"segons la llengua que hàgiu triat. Comproveu que la selecció\n"
+"us vagi bé o trieu una altra configuració de teclat.\n"
+"\n"
+"Tanmateix, pot ser que tingueu un teclat que no correspongui exactament\n"
+"amb la llengua: per exemple, si sou un suís que parla anglès, potser teniu\n"
+"un teclat suís. O, si parleu anglès però viviu al Quebec, us podeu trobar\n"
+"en la mateixa situació i el teclat no coincidirà amb la llengua. En tots "
+"dos\n"
+"casos, aquesta fase de la instal·lació us permetrà triar un teclat\n"
"adequat d'una llista.\n"
"\n"
-"Feu clic al botó \"%s\" per veure la llista completa de teclats "
-"disponibles.\n"
+"Feu clic al botó %s per veure la llista completa de teclats disponibles.\n"
"\n"
"Si trieu una disposició de teclat basada en un alfabet no llatí, el diàleg\n"
-"següent us permetrà escollir la tecla que servirà per canviar entre les\n"
+"següent us permetrà triar la tecla que servirà per canviar entre les\n"
"configuracions llatina i no llatina."
#: ../help.pm:612
-#, fuzzy, c-format
+#, c-format
msgid ""
"The first step is to choose your preferred language.\n"
"\n"
@@ -1388,8 +1423,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1415,43 +1449,43 @@ msgid ""
"by the entire system. Running the command as a regular user will only\n"
"change the language settings for that particular user."
msgstr ""
-"L'idioma preferit que trieu afectarà a l'idioma de la documentació,\n"
-"l'instal·lador i a tot el sistema en general. Seleccioneu primer la\n"
-"regió on us trobeu i després l'idioma que parleu.\n"
+"El primer pas consisteix a triar la llengua preferida.\n"
+"\n"
+"La llengua que trieu afectarà la llengua de la documentació,\n"
+"l'instal·lador i tot el sistema en general. Seleccioneu primer la\n"
+"regió on us trobeu i després la llengua que parleu.\n"
"\n"
-"Si feu clic al botó \"%s\" podreu seleccionar altres idiomes que vulgueu\n"
-"instal·lar a la vostra estació de treball. S'instal·laran els fitxers\n"
-"d'idioma específics de la documentació i de les aplicacions. Per exemple,\n"
+"Si feu clic al botó %s podreu seleccionar altres llengües que vulgueu\n"
+"instal·lar a l'estació de treball. S'instal·laran els fitxers de llengua\n"
+"específics de la documentació i de les aplicacions. Per exemple,\n"
"si heu de tenir usuaris espanyols a l'ordinador, podeu triar l'anglès com a\n"
-"idioma per defecte a la vista d'arbre i marcar \"%s\" a la secció Avançat.\n"
+"llengua per defecte a la vista d'arbre i %s a la secció Avançat.\n"
"\n"
-"En quant al suport UTF-8 (unicode): Unicode és una nova codificació de\n"
-"caràcters que cobreix tots els idiomes existents. El suport complet a\n"
-"GNU/Linux encara està sota desenvolupament. Per aquesta raó, Mandriva Linux\n"
+"Quant al suport UTF-8 (unicode): Unicode és una codificació nova de\n"
+"caràcters que cobreix totes les llengües existents. El suport complet a\n"
+"GNU / Linux encara està en desenvolupament. Per aquesta raó, Mageia\n"
"l'usarà o no depenent de les opcions que esculli l'usuari:\n"
"\n"
-" * Si escolliu un idioma amb una codificació existent forta(idiomes\n"
-"llatins, rus, japonès, xinès, coreà, thai, grec, turc, la majoria dels\n"
-"idiomes iso-8859-2), la codificació existent s'usarà per defecte;\n"
+" * Si trieu una llengua amb una codificació existent forta (llengües\n"
+"llatines, rus, japonès, xinès, coreà, thai, grec, turc, la majoria de les\n"
+"llengües iso-8859-2), la codificació existent s'usarà per defecte.\n"
"\n"
-" * La resta d'idiomes usaran unicode per defecte;\n"
+" * La resta de llengües usaran unicode per defecte.\n"
"\n"
-" * Si s'instal·len dos o més idiomes i aquests idiomes no usen la mateixa\n"
-"codificació, llavors s'usarà unicode per tot el sistema;\n"
+" * Si s'instal·len dues o més llengües i no usen la mateixa\n"
+"codificació, llavors s'usarà unicode per a tot el sistema.\n"
"\n"
-" * Finalment, es pot forçar l'ús de unicode si s'escull la opció\"%s\"\n"
-"independentment dels idiomes escollits.\n"
+" * Finalment, es pot forçar l'ús d'unicode si es tria la opció %s\n"
+"independentment de les llengües triades.\n"
"\n"
-"Noteu que no esteu limitats a escollir només un idioma addicional. Podeu\n"
-"triar diversos idiomes addicionals, i fins i tot instal·lar-los tots\n"
-"activant la casella \"%s\". Si habiliteu un idioma esteu instal·lant les\n"
-"traduccions, els tipus de lletra, els verificadors ortogràfics, etc. "
-"d'aquest idioma.\n"
+"Noteu que no esteu limitats a escollir només una llengua addicional. Podeu\n"
+"triar-ne diverses, i fins i tot instal·lar-les totes activant la casella\n"
+"%s. Si habiliteu una llengua n'esteu instal·lant les\n"
+"traduccions, els tipus de lletra, els verificadors ortogràfics, etc.\n"
"\n"
-"Per passar d'un dels idiomes a un altre, podeu executar com a \"root\"\n"
-"l'ordre \"/usr/sbin/localedrake\" per canviar l'idioma de tot el sistema. "
-"Si\n"
-"l'executeu com a usuari normal, només es canviarà l'idioma d'aquest\n"
+"Per passar d'una llengua a una altra, podeu executar com a arrel\n"
+"l'ordre /usr/sbin/localedrake per canviar la llengua de tot el sistema.\n"
+"Si l'executeu com a usuari normal, només es canviarà la d'aquest\n"
"usuari concret."
#: ../help.pm:650
@@ -1459,8 +1493,13 @@ msgstr ""
msgid "Espanol"
msgstr "Espanyol"
-#: ../help.pm:653
-#, fuzzy, c-format
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr "Usa unicode per defecte"
+
+#: ../help.pm:646
+#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
"mouse. If it does, it assumes you have a two-button mouse and will\n"
@@ -1495,32 +1534,34 @@ msgid ""
"Test the buttons and check that the mouse pointer moves on-screen as you\n"
"move your mouse about."
msgstr ""
-"DrakX generalment detecta el nombre de botons que té el vostre ratolí.\n"
+"El DrakX generalment detecta el nombre de botons que té el ratolí.\n"
"Si no pot, assumeix que teniu un ratolí de dos botons i el configurarà per\n"
-"emular el tercer botó. Es pot ``prémer' ' el tercer botó d'un ratolí de dos\n"
-"botons fent clic simultàniament als botons dret i esquerre. DrakX\n"
-"detectarà automàticament si el ratolí utilitza la interfície PS/2, sèrie o "
-"USB.\n"
+"emular el tercer botó. Es pot prémer el tercer botó d'un ratolí de dos\n"
+"botons fent clic simultàniament als botons dret i esquerre. El DrakX\n"
+"detectarà automàticament si el ratolí usa la interfície PS/2, sèrie o USB.\n"
"\n"
"En cas que tingueu un ratolí de 3 botons sense rodeta, podeu escollir\n"
-"\"%s\". DrakX configurarà el ratolí per tal de simular la rodeta,\n"
+"%s. El DrakX configurarà el ratolí per tal de simular la rodeta,\n"
"per fer-ho premeu el botó central i moveu el ratolí a dalt i a baix.\n"
"\n"
"Si per alguna raó voleu especificar un altre tipus de ratolí,\n"
"seleccioneu-lo a la llista.\n"
"\n"
-"Si escolliu un ratolí diferent del ratolí per defecte, es mostrarà una\n"
-"pantalla de prova. Utilitzeu els botons i la roda per verificar que la\n"
+"Podeu seleccionar l'entrada %s per a triar un ratolí de tipus\n"
+"genèric, que funcionarà amb gairebé qualsevol ratolí.\n"
+"\n"
+"Si trieu un ratolí diferent del ratolí per defecte, es mostrarà una\n"
+"pantalla de prova. Useu els botons i la roda per verificar que la\n"
"configuració és correcta i que el ratolí funciona bé. Si el ratolí no\n"
-"funciona bé, premeu la barra d'espai o la tecla [Intro] per cancel·lar la\n"
+"funciona bé, premeu la barra d'espai o la tecla de retorn per cancel·lar la\n"
"prova i tornar a la llista.\n"
"\n"
-"De vegaDES, la roda del ratolí no es detecta automàticament. En aquest cas,\n"
+"De vegades, la roda del ratolí no es detecta automàticament. En aquest cas,\n"
"haureu de seleccionar-lo a la llista. Assegureu-vos de triar el que\n"
-"correspon al port a què esta connectat el ratolí. Després de seleccionar un\n"
-"ratolí i prémer el botó \"%s\", a la pantalla apareixerà un ratolí. Mogueu "
-"la\n"
-"roda del ratolí per assegurar-vos que s'ha activat correctament, comprovant\n"
+"correspon al port on està connectat el ratolí. Després de seleccionar un\n"
+"ratolí i prémer el botó %s, a la pantalla apareixerà un ratolí. Moveu la\n"
+"roda del ratolí per assegurar-vos que s'ha activat correctament, i "
+"comproveu\n"
"que es mou també a la pantalla; després comproveu els botons i que el "
"cursor\n"
"de la pantalla es mou quan moveu el ratolí."
@@ -1541,93 +1582,11 @@ msgid ""
"Please select the correct port. For example, the \"COM1\" port under\n"
"Windows is named \"ttyS0\" under GNU/Linux."
msgstr ""
-"Si us plau, seleccioneu el port correcte. Per exemple, el port \"COM1\" a\n"
-"Windows s'anomena \"ttyS0\" a GNU/Linux."
+"Si us plau, seleccioneu el port correcte. Per exemple, el port COM1 a\n"
+"Windows s'anomena ttyS0 a GNU / Linux."
-#: ../help.pm:691
-#, fuzzy, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Aquesta és la decisió més important quant a la seguretat del vostre sistema\n"
-"GNU/Linux: heu d'introduir la contrasenya de l'usuari \"root\". El \"root\"\n"
-"és l'administrador del sistema i és l'únic autoritzat a fer "
-"actualitzacions,\n"
-"afegir usuaris, canviar la configuració del tot el sistema, etc. En poques\n"
-"paraules, el \"root\" ho pot fer tot! És per això que heu d'escollir una\n"
-"contrasenya que sigui difícil d'endevinar; DrakX us avisarà si és massa\n"
-"fàcil. Com veieu, podeu optar per no introduir cap contrasenya, però us\n"
-"aconsellem vivament que no ho feu. GNU/Linux és tan vulnerable als errors\n"
-"de l'operador com qualsevol altre sistema operatiu. Com que l'usuari\n"
-"\"root\" pot superar totes les limitacions i esborrar accidentalment totes\n"
-"les dades de qualsevol partició com a conseqüència d'accedir-hi sense\n"
-"precaucions, és molt important que sigui difícil esdevenir \"root\".\n"
-"\n"
-"La contrasenya ha de ser una mescla de caràcters alfanumèrics i, com a\n"
-"mínim, de 8 caràcters de longitud. No apunteu enlloc la contrasenya de\n"
-"\"root\" ja que és molt fàcil comprometre el sistema si ho feu.\n"
-"\n"
-"Tot i això, no feu la contrasenya massa llarga o complicada perquè heu de\n"
-"poder recordar-la!\n"
-"\n"
-"La contrasenya no es mostrarà per pantalla quan la teclegeu. Per tant,\n"
-"haureu d'escriure-la dues vegades per reduir la probabilitat d'errors en\n"
-"l'escriptura. Si, malauradament, feu el mateix error dues vegaDES, haureu\n"
-"d'usar aquesta contrasenya ``incorrecta'' el primer cop que us connecteu.\n"
-"\n"
-"Si voleu que aquest ordinador sigui controlat per un servidor\n"
-"d'autenticació, feu clic al botó \"%s\".\n"
-"\n"
-"Si la vostra xarxa usa els serveis d'autenticació LDAP, NIS o Windows\n"
-"Domain, seleccioneu l'adient per a \"%s\" . Si no sabeu quin utilitzar,\n"
-"pregunteu-ho al vostre administrador de xarxa.\n"
-"\n"
-"Si teniu problemes per recordar les contrasenyes, si l'ordinador mai no es\n"
-"connectarà a Internet o si confieu absolutament en tothom que utilitza\n"
-"l'ordinador, podeu triar tenir \"%s\"."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "autenticació"
-
-#: ../help.pm:728
-#, fuzzy, c-format
+#: ../help.pm:684
+#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
"time. It's responsible for starting up the whole system. Normally, the boot\n"
@@ -1640,33 +1599,35 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
"know what you're doing."
msgstr ""
-"LILO i GRUB són carregadors d'arrencada de GNU/Linux. Normalment,\n"
-"aquesta fase es realitza de manera totalment automàtica. DrakX analitzarà\n"
-"el sector d'arrencada del disc i actuarà conforme al que hi trobi:\n"
-"\n"
-" * si troba un sector d'arrencada del Windows, el reemplaçarà amb un sector\n"
-"d'arrencada de GRUB/LILO. D'aquesta manera podreu carregar GNU/Linux\n"
-"o un altre SO.\n"
-"\n"
-" * si troba un sector d'arrencada grub o LILO, el reemplaçarà amb un nou.\n"
-"\n"
-"Si no pot prendre una decisió, DrakX us preguntarà on ha de col·locar el\n"
-"carregador d'arrencada. Normalment, \"%s\" és el lloc més segur. Si "
-"escolliu\n"
-"\"%s\" no s'instal·larà cap carregador d'arrencada. Utilitzeu-lo només si\n"
-"sabeu que esteu fent."
+"Un carregador d'arrencada és un petit programa que l'ordinador executa\n"
+"durant l'arrencada. És l'encarregat d'iniciar tot el sistema. Normalment, \n"
+"la instal·lació del carregador d'arrencada es fa de manera \n"
+"totalment automàtica. El DrakX analitzarà el sector d'arrencada del disc \n"
+"i actuarà conforme al que hi trobi:\n"
+"\n"
+" * si troba un sector d'arrencada de Windows, el reemplaçarà amb un sector\n"
+"d'arrencada de GRUB/LILO. D'aquesta manera podreu carregar GNU / Linux\n"
+"o bé un altre SO.\n"
+"\n"
+" * si troba un sector d'arrencada GRUB o LILO, el reemplaçarà amb un de "
+"nou.\n"
+"\n"
+"Si no pot prendre una decisió, el DrakX us preguntarà on ha de col·locar el\n"
+"carregador d'arrencada. Normalment, %s és el lloc més segur. Si escolliu\n"
+"%s no s'instal·larà cap carregador d'arrencada. Trieu-ho només si\n"
+"sabeu què feu."
#: ../help.pm:745
-#, fuzzy, c-format
+#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1687,45 +1648,49 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
-"Ara cal seleccionar el sistema d'impressió del vostre ordinador. Altres\n"
-"sistemes operatius us poden oferir un, però el Mandriva Linux n'ofereix\n"
+"Ara cal seleccionar el sistema d'impressió de l'ordinador. Altres\n"
+"sistemes operatius us en poden oferir un, però el Mageia n'ofereix\n"
"dos. Cada sistema d'impressió és el més convenient per a un tipus de\n"
"configuració determinat.\n"
"\n"
-" * \"%s\", acrònim de \"print, do not queue\" (imprimeix, no facis cua), és\n"
+" * %s, acrònim de «print, do not queue» (imprimeix, no facis cua), és\n"
"la millor opció si teniu una connexió directa amb la impressora i voleu\n"
"evitar els embussos a l'hora d'imprimir, i no teniu impressores de xarxa.\n"
-"(\"%s\" només gestionarà xarxes molt senzilles i és una mica lenta quan\n"
-"s'usa en xarxa.) Escolliu \"pdq\" si és la vostra primera incursió\n"
-"en GNU/Linux.\n"
+"(%s només gestionarà xarxes molt senzilles i és una mica lenta quan\n"
+"s'usa en xarxa.) Escolliu pdq si és la vostra primera incursió\n"
+"a GNU / Linux.\n"
"\n"
-" * \"%s\" `` Common Unix Printing System'', Sistema d'impressió comú de\n"
-"Unix, és una elecció excel·lent tant si voleu imprimir a la vostra\n"
+" * %s, «Common Unix Printing System» (sistema d'impressió comú\n"
+"d'Unix), és una elecció excel·lent tant si voleu imprimir a la\n"
"impressora local com a l'altra punta del món. És senzilla de configurar i\n"
-"pot actuar com a servidor o client per a l'antic sistema d'impressió \"lpd"
-"\"\n"
+"pot actuar com a servidor o client per a l'antic sistema d'impressió lpd\n"
"i, per tant, és compatible amb sistemes operatius antics que encara\n"
"necessitin serveis d'impressió. És força potent, però la configuració "
"bàsica\n"
-"és gairebé tan senzilla com la de \"pdq\". Si necessiteu emular un servidor\n"
-"\"lpd\", heu d'habilitar el dimoni \"cups-lpd\". \"%s\" inclou frontals\n"
-"gràfics per a la impressió o per escollir les opcions d'impressió\n"
-"i per gestionar la impressora.\n"
+"és gairebé tan senzilla com la de pdq. Si necessiteu emular un servidor\n"
+"lpd, heu d'habilitar el dimoni cups-lpd. %s inclou interfícies\n"
+"gràfiques per a la impressió o per a triar les opcions d'impressió\n"
+"i per a gestionar la impressora.\n"
"\n"
"Si ara feu una tria, i després veieu que el sistema d'impressió no us\n"
"agrada, podeu canviar-lo executant el PrinterDrake des del Centre de "
-"control\n"
-"de Mandriva Linux i fent clic al botó Expert."
+"Control\n"
+"de Mageia i fent clic al botó %s."
#: ../help.pm:768
#, c-format
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr "CUPS"
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Expert"
@@ -1738,7 +1703,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1750,41 +1715,40 @@ msgid ""
"which parameters need to be passed to the hardware, you'll need to manually\n"
"configure the driver."
msgstr ""
-"Primer, DrakX detectarà qualsevol dispositiu IDE en l'ordinador. També\n"
-"cercarà una o més targetes SCSI PCI. Si troba una targeta SCSI, DrakX\n"
+"Primer, el DrakX detectarà qualsevol dispositiu IDE a l'ordinador. També\n"
+"cercarà una o més targetes SCSI PCI. Si troba una targeta SCSI, el DrakX\n"
"instal·larà automàticament el controlador adequat.\n"
"\n"
-"Com que la detecció de maquinari no és infal·lible, pot ser que DrakX no "
+"Com que la detecció de maquinari no és infal·lible, pot ser que el DrakX no "
"trobi\n"
-"els discos durs; si és així, caldrà que indiqueu el vostre maquinari "
-"manualment.\n"
+"els discos durs; si és així, caldrà que indiqueu el maquinari manualment.\n"
"\n"
-"Si heu de seleccionar l'adaptador SCSI PCI manualment, DrakX us preguntarà "
-"si\n"
-"voleu configurar-ne les opcions. Convé que deixeu que DrakX comprovi\n"
+"Si heu de seleccionar l'adaptador SCSI PCI manualment, el DrakX us "
+"preguntarà si\n"
+"voleu configurar-ne les opcions. Convé que deixeu que el DrakX comprovi\n"
"el maquinari per saber les opcions específiques de la targeta que calen per "
"inicialitzar\n"
-"l'adaptador. La majoria de vegaDES, DrakX realitzarà aquest pas sense "
+"l'adaptador. La majoria de vegades, el DrakX farà aquest pas sense "
"problemes.\n"
"\n"
-"Si DrakX no pot comprovar les opcions per determinar automàticament els "
+"Si el DrakX no pot comprovar les opcions per determinar automàticament els "
"paràmetres\n"
"que s'han de passar al maquinari, us caldrà configurar el controlador "
"manualment."
#: ../help.pm:789
-#, fuzzy, c-format
+#, c-format
msgid ""
"\"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver."
msgstr ""
-"\"%s\": si es detecta una targeta de so al vostre sistema, es mostra aquí.\n"
+"%s: si es detecta una targeta de so al sistema, es mostra aquí.\n"
"Si veieu que la targeta de so que es mostra no és la que realment teniu al\n"
-"sistema, podeu fer clic al botó i seleccionar un altre programa de control."
+"sistema, podeu fer clic al botó i seleccionar un altre controlador."
#: ../help.pm:794
-#, fuzzy, c-format
+#, c-format
msgid ""
"As a review, DrakX will present a summary of information it has gathered\n"
"about your system. Depending on the hardware installed on your machine, you\n"
@@ -1807,11 +1771,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1829,8 +1788,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1847,74 +1805,81 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-"Com a revisió, DrakX presentarà un resum de la informació que\n"
+"Com a revisió, el DrakX presentarà un resum de la informació que\n"
"té sobre el vostre sistema. Segons el maquinari instal·lat, podeu\n"
"tenir algunes o totes les entrades següents. Cada entrada consta\n"
"de l'element de configuració que cal configurar, seguit d'un breu\n"
"resum de la configuració actual.\n"
-"Feu clic al botó \"%s\" corresponent per canviar-ho.\n"
+"Feu clic al botó %s corresponent per canviar-ho.\n"
"\n"
-" * \"%s\": comproveu la configuració actual del mapa de teclat i\n"
+" * %s: comproveu la configuració actual del mapa de teclat i\n"
"canvieu-la si és necessari.\n"
"\n"
-" * \"%s\": comproveu la selecció actual de país. Si no sou a aquest\n"
-"país, feu clic al botó \"%s\" i escolliu-ne un altre. Si el vostre\n"
-"país no és a la primera llista que es mostra, feu clic al botó \"%s\"\n"
+" * %s: comproveu la selecció actual de país. Si no sou a aquest\n"
+"país, feu clic al botó %s i escolliu-ne un altre. Si el vostre\n"
+"país no és a la primera llista que es mostra, feu clic al botó %s\n"
"per obtenir una llista de països completa.\n"
"\n"
-" * \"%s\": per defecte, DrakX dedueix la vostra zona horària en\n"
-"funció del país que hagueu escollit. Aquí podeu fer clic al botó \"%s\"\n"
-"si no fos correcta.\n"
+" * %s: per defecte, el DrakX dedueix la zona horària en\n"
+"funció del país que hàgiu triat. Aquí podeu fer clic al botó %s\n"
+"si no és correcta.\n"
"\n"
-" * \"%s\": comproveu la configuració actual del ratolí i feu clic al\n"
+" * %s: comproveu la configuració actual del ratolí i feu clic al\n"
"botó per canviar-la si fos necessari.\n"
"\n"
-" * \"%s\": feu clic al botó \"%s\" per obrir l'auxiliar de configuració\n"
-"de la impressora. Consulteu el capítol corresponent de la ``Guia d'\n"
-"iniciació'' per tenir més informació sobre la configuració d'una nova\n"
-"impressora. Aquesta interfície és similar a la utilitzada durant la\n"
-"instal·lació.\n"
-"\n"
-" * \"%s\": si es detecta una targeta de so al vostre sistema, es\n"
+" * %s: si es detecta una targeta de so al sistema, es\n"
"mostra aquí. Si veieu que que no és la que realment teniu al sistema,\n"
"podeu fer clic al botó per triar un altre controlador.\n"
"\n"
-" * \"%s\": per defecte, DrakX configura la vostra interfície\n"
-"gràfica a una resolució de \"800x600\" or \"1024x768\". Si no us\n"
-"va bé, feu clic a \"%s\" per reconfigurar la interfície gràfica.\n"
-"\n"
-" * \"%s\": si es detecta una targeta de TV al sistema, es mostra\n"
-"aquí. Si en teniu una però no és detectada, feu clic a \"%s\" per\n"
+" * %s: si es detecta una targeta de TV al sistema, es mostra\n"
+"aquí. Si en teniu una però no és detectada, feu clic a %s per\n"
"intentar configurar-la manualment.\n"
"\n"
-" * \"%s\": si es detecta una targeta XDSI al sistema, es mostra\n"
-"aquí. Podeu fer clic a \"%s\" per canviar els paràmetres associats\n"
-"amb la targeta.\n"
+" * %s: feu clic al botó %s per a canviar els paràmetres associats\n"
+"amb la targeta si penseu que la configuració no és correcta.\n"
+"\n"
+" * %s: per defecte, el DrakX configura la vostra interfície\n"
+"gràfica a una resolució de 800x600 o bé 1024x768. Si no us\n"
+"va bé, feu clic a %s per reconfigurar la interfície gràfica.\n"
+"\n"
+" * %s: si voleu configurar ara l'accés a Internet o a la xarxa local.\n"
+"Adreceu-vos a la documentació impresa o feu servir el Centre de Control\n"
+"de Mageia un cop acabada la instal·lació per a gaudir de l'ajuda en\n"
+"línia completa.\n"
"\n"
-" * \"%s\": si voleu configurar ara l'accés a Internet o a la xarxa local.\n"
+" * %s: permet la configuració de les adreces dels servidors intermediaris\n"
+"HTTP i FTP si la màquina que esteu configurant és darrere d'un servidor\n"
+"intermediari.\n"
"\n"
-" * \"%s\": aquesta entrada un permet redefinir el nivell de seguretat\n"
-"definit en un pas anterior ().\n"
+" * %s: aquesta opció us permet redefinir el nivell de seguretat definit\n"
+"en un pas anterior ().\n"
"\n"
-" * \"%s\": si teniu previst connectar-vos a Internet, és bona idea\n"
-"protegir-vos d'intrusions instal·lant un tallafocs. Consulteu-ne\n"
-"els detalls a la secció corresponent de la ``Guia d'iniciació''.\n"
+" * %s: si teniu previst connectar-vos a Internet, és bona idea\n"
+"protegir-vos d'intrusions instal·lant un tallafoc. Consulteu-ne\n"
+"els detalls a la secció corresponent de la Guia d'iniciació.\n"
"\n"
-" * \"%s\": si voleu canviar la configuració del carregador d'arrencada,\n"
-"feu clic a aquest botó. Es recomana que això només ho facin els usuaris\n"
-"avançats.\n"
+" * %s: si voleu canviar la configuració del carregador d'arrencada,\n"
+"feu clic en aquest botó. Es recomana que això només ho facin els usuaris\n"
+"avançats. Adreceu-vos a la documentació impresa o bé l'ajuda en línia\n"
+"sobre la configuració del carregador d'arrencada del Centre de Control\n"
+"de Mageia.\n"
"\n"
-" * \"%s\": aquí podreu acabar d'ajustar els serveis que s'executaran\n"
-"en el vostre ordinador. Si teniu previst utilitzar aquesta màquina com\n"
+" * %s: aquí podreu acabar d'ajustar els serveis que s'executaran\n"
+"a l'ordinador. Si teniu previst usar aquesta màquina com\n"
"a servidor, és aconsellable que reviseu aquesta configuració."
-#: ../help.pm:858
+#: ../help.pm:809
+#, c-format
+msgid "TV card"
+msgstr "Targeta de TV"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "Targeta XDSI"
@@ -1927,31 +1892,33 @@ msgstr "Interfície gràfica"
#: ../help.pm:861
#, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
-"Escolliu el disc dur que voleu buidar per instal·lar la nova partició\n"
-"Mandriva Linux. Aneu amb compte, totes les dades actuals es perdran i no\n"
+"Trieu el disc dur que voleu buidar per instal·lar-hi la nova partició\n"
+"Mageia. Aneu amb compte, totes les dades actuals es perdran i no\n"
"es podran recuperar!"
#: ../help.pm:866
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
-"Feu clic a \"%s\" si voleu suprimir totes les dades i particions\n"
+"Feu clic a %s si voleu suprimir totes les dades i particions\n"
"que hi ha en aquest disc dur. Aneu amb compte perquè, un cop\n"
-"hagueu fet clic a \"%s\", no podreu recuperar cap dada ni partició\n"
-"del disc, incloent les dades del Windows.\n"
+"hàgiu fet clic a %s, no podreu recuperar cap dada ni partició\n"
+"del disc, incloses les dades de Windows.\n"
"\n"
-"Feu clic a \"%s\" per aturar aquesta operació sense perdre cap dada\n"
+"Feu clic a %s per aturar aquesta operació sense perdre cap dada\n"
"ni partició d'aquest disc."
#: ../help.pm:872
@@ -1963,4 +1930,3 @@ msgstr "Següent ->"
#, c-format
msgid "<- Previous"
msgstr "<- Anterior"
-
diff --git a/perl-install/install/help/po/cs.po b/perl-install/install/help/po/cs.po
index fad687c81..60d039484 100644
--- a/perl-install/install/help/po/cs.po
+++ b/perl-install/install/help/po/cs.po
@@ -8,27 +8,28 @@ msgid ""
msgstr ""
"Project-Id-Version: cs\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2005-09-19 00:26+0200\n"
"Last-Translator: Michal Bukovjan <bukm@centrum.cz>\n"
"Language-Team: Czech <cs@li.org>\n"
+"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: KBabel 1.10.2\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Předtím, než budete pokračovat, přečtěte si pozorně licenční podmínky. Ty\n"
-"se vztahují k celé distribuci Mandriva Linux a pokud s nimi souhlasíte,\n"
+"se vztahují k celé distribuci Mageia a pokud s nimi souhlasíte,\n"
"klepněte na tlačítko \"%s\". Pokud ne, klepněte na tlačítko \"%s \" a "
"počítač bude restartován."
@@ -113,13 +114,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Chcete použít tuto vlastnost?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -129,24 +141,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Zde je vypsán seznam již existujících detekovaných oddílů na pevném disku.\n"
@@ -181,30 +197,29 @@ msgstr ""
"nejmenší SCSI ID\" atd."
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Distribuce Mandriva Linux je složena z několika CD. Instalační program ví,\n"
+"Distribuce Mageia je složena z několika CD. Instalační program ví,\n"
"na kterém disku je umístěn jaký balíček a v případě potřeby vysune CD a "
"vyžádá\n"
"si výměnu CD za požadované. Pokud nemáte požadované CD po ruce, klikněte\n"
"na \"%s\" a odpovídající balíčky nebudou nainstalovány."
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -217,8 +232,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -257,7 +271,7 @@ msgid ""
msgstr ""
"V této chvíli je možné vybrat, které programy chcete nainstalovat na váš "
"systém.\n"
-"Mandriva Linux obsahuje tisíce balíčků s programy a pro snadnější orientaci\n"
+"Mageia obsahuje tisíce balíčků s programy a pro snadnější orientaci\n"
"byly rozděleny do skupin, které sdružují podobné aplikace.\n"
"\n"
"Balíčky jsou rozděleny do skupin, které odpovídají tomu, jak je nejčastěji\n"
@@ -329,7 +343,7 @@ msgid "Truly minimal install"
msgstr "Opravdu minimální instalace"
#: ../help.pm:152
-#, c-format
+#, fuzzy, c-format
msgid ""
"If you choose to install packages individually, the installer will present\n"
"a tree containing all packages classified by groups and subgroups. While\n"
@@ -342,10 +356,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -377,7 +391,7 @@ msgstr ""
"!! Pokud se nachází mezi vybranými balíčky serverové programy, ať už "
"vybrané\n"
"záměrně nebo jako součást skupiny, zobrazí se dotaz na to,\n"
-"zda opravdu chcete tyto servery nainstalovat. V distribuci Mandriva Linux\n"
+"zda opravdu chcete tyto servery nainstalovat. V distribuci Mageia\n"
"jsou tyto servery spuštěny při startu systému. I když v době vydání "
"distribuce\n"
"nejsou známy žádné bezpečnostní problémy, mohou se vyskytnout později.\n"
@@ -404,19 +418,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Ošetří automaticky závislosti"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": klepnutím na \"%s\" se otevře průvodce nastavením tiskárny.\n"
-"Jak nastavit tiskárnu se také dozvíte z odpovídající kapitoly z příručky\n"
-"\"Začínáme\". Rozhraní je podobné tomu, které vidíte při instalaci."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -483,7 +485,12 @@ msgstr ""
"k Internetu. Na počítač se také nainstaluje časový server, který mohou\n"
"volitelně používat jiné počítače ve vaší lokální síti."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Automatická synchronizace času"
@@ -512,11 +519,11 @@ msgstr ""
"nejvíce vyhovující vašim potřebám."
#: ../help.pm:234
-#, c-format
+#, fuzzy, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -572,7 +579,7 @@ msgid ""
msgstr ""
"X (X Window System) je srdcem grafického rozhraní pro GNU/Linux, které\n"
"využívají dodávané grafické prostředí (KDE, GNOME, AfterStep, WindowMaker) "
-"se systémem Mandriva Linux.\n"
+"se systémem Mageia.\n"
"\n"
"Nyní bude zobrazen seznam různých parametrů, které je možné změnit pro\n"
"dosažení optimálního grafického zobrazení\n"
@@ -688,41 +695,45 @@ msgstr ""
"kartu."
#: ../help.pm:319
-#, c-format
+#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -731,15 +742,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -753,10 +764,10 @@ msgid ""
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
"V tomto bodě si musíte rozhodnout, na které diskové oddíly budete\n"
-"instalovat nový operační systém Mandriva Linux. Pokud je disk prázdný\n"
+"instalovat nový operační systém Mageia. Pokud je disk prázdný\n"
"nebo existující operační systém používá celý disk, je nutné ho rozdělit.\n"
"Rozdělení disku spočívá ve vytvoření volného prostoru pro instalaci\n"
-"systému Mandriva Linux.\n"
+"systému Mageia.\n"
"\n"
"Protože rozdělení disku je nenávratná operace, je to velmi nebezpečná\n"
"akce pro ty uživatele, kteří nemají žádné zkušenosti.\n"
@@ -785,7 +796,7 @@ msgstr ""
"oddíl ve\n"
"Windows defragmentovali. Je doporučeno zazálohovat vaše data. Tento postup\n"
"je doporučený, pokud chcete na disku provozovat současně systém\n"
-"Mandriva Linux i Microsoft Windows.\n"
+"Mageia i Microsoft Windows.\n"
"\n"
" Před výběrem této volby si prosím uvědomte, že velikost oddílu s "
"Microsoft\n"
@@ -793,7 +804,7 @@ msgstr ""
"uložení dat nebo instalaci programů do Microsoft Windows.\n"
"\n"
" * \"%s\": pokud chcete smazat veškerá data a všechny oddíly na disku\n"
-"a použít je pro instalaci systému Mandriva Linux, vyberte toto řešení.\n"
+"a použít je pro instalaci systému Mageia, vyberte toto řešení.\n"
"Zde postupujte opatrně, po výběru již není možné vzít tuto volbu zpět.\n"
"\n"
" !! Pokud zvolíte tuto možnost, všechna data na disku budou ztracena.!!\n"
@@ -818,7 +829,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Použije existující oddíl"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Smazat celý disk"
@@ -900,8 +916,23 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Vytvoří disketu pro automatickou instalaci"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
+#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -920,7 +951,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -944,16 +975,16 @@ msgstr ""
"\n"
"Pokud je vše připraveno pro formátování, klepněte na \"%s\".\n"
"\n"
-"Pokud chcete vybrat jiné oddíly pro instalaci systému Mandriva Linux,\n"
+"Pokud chcete vybrat jiné oddíly pro instalaci systému Mageia,\n"
"klepněte na \"%s\" \n"
"\n"
"Klepnutím na \"%s\" můžete vybrat, které oddíly budou otestovány\n"
"na vadné bloky."
#: ../help.pm:437
-#, c-format
+#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -965,7 +996,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Pokaždé, když instalujete distribuci Mandriva Linux, je možné, že některé\n"
+"Pokaždé, když instalujete distribuci Mageia, je možné, že některé\n"
"balíčky byly od vydání distribuce aktualizovány. Mohly to být opravy chyb\n"
"či řešení možných bezpečnostních problémů. Pokud chcete využít právě\n"
"této nabídky, je možné tyto balíčky nyní stáhnout z Internetu. Zvolte \"%s"
@@ -981,7 +1012,7 @@ msgstr ""
"a instalace vybraných balíčků. Akci můžete přerušit klepnutím na \"%s\"."
#: ../help.pm:450
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -990,7 +1021,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1015,24 +1046,27 @@ msgid "Security Administrator"
msgstr "Správce zabezpečení"
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1048,21 +1082,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1079,18 +1115,12 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"V této chvíli je potřeba určit, který(é) oddíl(y) budou použity pro "
"instalaci\n"
-"systému Mandriva Linux. Pokud byly oddíly již jednou definovány, buď\n"
+"systému Mageia. Pokud byly oddíly již jednou definovány, buď\n"
"z předchozí instalace GNU/Linux nebo jiným programem na rozdělení disku,\n"
"je možné použít právě tyto oddíly. Jinak musí být oddíly nově definovány.\n"
"\n"
@@ -1156,60 +1186,85 @@ msgstr ""
"\n"
"Více informací o jednotlivých druzích souborových systémů naleznete\n"
"v kapitole o ext2fs v \"Referenční příručce\".\n"
-"\n"
-"Pokud instalujete na počítač PPC, je potřeba vytvořit malý oddíl HFS,\n"
-"tzv. \"bootstrap\" o minimální velikosti 1MB, který bude použit pro zavaděč\n"
-"Yaboot. Pokud vytvoříte tento oddíl větší, např. 50 MB, je to dobré místo "
-"pro\n"
-"uložení ramdisku a jádra pro situace záchrany disku."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Automatické připojování pro vyjímatelná média"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Přepne mezi normální/expertním režimem"
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Instalační program nalezl na disku více než jeden oddíl s Microsoft "
"Windows.\n"
"Prosím vyberte si jeden z nich, který je potřeba pro novu instalaci systému\n"
-"Mandriva Linux zmenšit.\n"
+"Mageia zmenšit.\n"
"\n"
"Každý oddíl je zobrazen následovně: \"Pojmenování v Linuxu\",\n"
"\"Název ve Windows\", \"Velikost\".\n"
@@ -1252,35 +1307,35 @@ msgstr ""
"klepněte na tlačítko \"%s\" a získáte kompletní seznam zemí."
#: ../help.pm:572
-#, c-format
+#, fuzzy, c-format
msgid ""
"This step is activated only if an existing GNU/Linux partition has been\n"
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Tento krok se objeví pouze tehdy, pokud je na vašem počítači nalezen starší\n"
"oddíl GNU/Linuxu.\n"
"\n"
"Instalační program potřebuje vědět, zda má provést instalaci nebo pouze\n"
-"aktualizaci existujícího systému Mandriva Linux.\n"
+"aktualizaci existujícího systému Mageia.\n"
"\n"
" * \"%s\": Nejběžnější volba, provede kompletní výmaz starého systému.\n"
"V závislosti na rozvržení oddílů vašeho starého systému je však možné\n"
@@ -1289,7 +1344,7 @@ msgstr ""
"souborový systém, použijte tuto volbu.\n"
"\n"
" * \"%s\": tato volba provede aktualizaci balíčků instalovaných na vašem\n"
-"systému Mandriva Linux. Aktuální rozmístění diskových oddílů a uživatelská\n"
+"systému Mageia. Aktuální rozmístění diskových oddílů a uživatelská\n"
"data zůstanou zachována. Bude ale provedena většina konfiguračních kroků,\n"
"stejně jako při instalaci.\n"
"\n"
@@ -1341,7 +1396,7 @@ msgstr ""
"rozložení klávesnice mezi latinkou a vámi zvoleným rozložením."
#: ../help.pm:612
-#, c-format
+#, fuzzy, c-format
msgid ""
"The first step is to choose your preferred language.\n"
"\n"
@@ -1357,8 +1412,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1432,7 +1486,12 @@ msgstr ""
msgid "Espanol"
msgstr "Španělské"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1521,98 +1580,7 @@ msgstr ""
"Vyberte prosím správný port. Například \"COM1\" pod MS Windows má\n"
"v Linuxu název \"ttyS0\"."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Následující rozhodnutí je jedním z těch, které ovlivňují celkovou "
-"bezpečnost\n"
-"systému GNU/Linux, tj. volba hesla pro uživatele \"Root\". Root je správcem\n"
-"systému, je jediný odpovědný za provádění aktualizací, přidávání uživatelů a "
-"také\n"
-"za celkové nastavení systému. Zkráceně: \"root\" může úplně všechno!\n"
-"To je také důvodem, proč se heslo volí takové, aby se nedalo lehce uhodnout\n"
-"a instalační program DrakX zkontroluje, zda není příliš jednoduché. Jak "
-"vidíte,\n"
-"je možné heslo nezadat, ale toto velmi důrazně nedoporučujeme, a to z "
-"jednoho\n"
-"důvodu. Nemyslete si, že pokud spustíte systém GNU/Linux, že je vše bezpečné "
-"a že se nemůže nic stát.. Vzhledem k tomu, že na uživatele \"root\" se "
-"nevztahují\n"
-"běžná omezení, může nenávratně poškodit celý systém, smazat data z jiných\n"
-"oddílů na disku a operačních systémů, vymazat potřebné soubory nebo celé\n"
-"oddíly, atd. Proto je důležité, aby nebylo jednoduché se tímto uživatelem "
-"stát.\n"
-"\n"
-"Zvolené heslo by se mělo skládat ze znaků a číslic a mělo by být dlouhé\n"
-"minimálně 8 znaků. Také není dobré si ho kamkoliv poznamenávat - po\n"
-"nalezení vaší poznámky může být velmi jednoduché se do vašeho systému\n"
-"dostat.\n"
-"\n"
-"Nevolte však heslo příliš dlouhé nebo komplikované, bude nutné si jej bez\n"
-"větších potíží zapamatovat.\n"
-"\n"
-"Při zadávání nebude heslo na obrazovce zobrazeno. Proto se heslo zadává\n"
-"dvakrát pro ověření, zda nedošlo k překlepu při prvním pokusu. Tak je možné\n"
-"heslo opravit a zadat dvakrát stejné. Pokud se vám přesto podaří zadat "
-"stejný\n"
-"překlep dvakrát, budete muset toto heslo s překlepem použít při prvním\n"
-"přihlášení.\n"
-"\n"
-"Jestliže chcete použít ověřovací server, klepněte na tlačítko \"%s\".\n"
-"\n"
-"Pokud se ve vaší síti používá pro ověřování uživatelů protokol LDAP, NIS\n"
-"nebo ověřovací doména Windows PDC, vyberte odpovídající protokol pro \"%s"
-"\".\n"
-"Pokud o tom nic nevíte, zeptejte se správce vaší sítě.\n"
-"\n"
-"Pokud máte problémy se zapamatováním si hesel nebo pokud není počítač\n"
-"připojen do žádné spravované sítě a věříte všem, kteří mají k počítači "
-"přístup,\n"
-"můžete vybrat volbu \"%s\"."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "ověření"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1626,7 +1594,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1651,10 +1619,10 @@ msgstr ""
"instalace žádného zavaděče. Použijte to pouze tehdy, pokud víte, co děláte."
#: ../help.pm:745
-#, c-format
+#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1675,12 +1643,12 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Zde si můžete vybrat tiskový systém, který budete používat. Jiné OS "
"nabízejí\n"
-"jeden, Mandriva Linux nabízí dva. Každý z nich je vhodnější pro různé typy\n"
+"jeden, Mageia nabízí dva. Každý z nich je vhodnější pro různé typy\n"
"konfigurací.\n"
"\n"
" * \"%s\" - což znamená 'print, do not queue' a je vhodný tehdy, pokud máte\n"
@@ -1712,7 +1680,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Expert"
@@ -1725,7 +1698,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1766,7 +1739,7 @@ msgstr ""
"máte v počítači, můžete klepnutím na tlačítko vybrat jinou kartu a ovladač."
#: ../help.pm:794
-#, c-format
+#, fuzzy, c-format
msgid ""
"As a review, DrakX will present a summary of information it has gathered\n"
"about your system. Depending on the hardware installed on your machine, you\n"
@@ -1789,11 +1762,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1811,8 +1779,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1829,7 +1796,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1879,7 +1846,7 @@ msgstr ""
" * \"%s\": pokud chcete nyní nastavit připojení k Internetu nebo k lokální\n"
"síti, klepnutím na tlačítko se spustí průvodce. Plnou dokumentaci naleznete\n"
"v tištěné příručce, případně můžete po instalaci využít ovládací centrum\n"
-"Mandriva Linux, kde rovněž naleznete kompletní nápovědu.\n"
+"Mageia, kde rovněž naleznete kompletní nápovědu.\n"
"\n"
" * \"%s\": umožňuje nastavit adresu HTTP a FTP proxy, což je užitečné,\n"
"pokud se počítač nachází za firewallem.\n"
@@ -1896,14 +1863,19 @@ msgstr ""
" * \"%s\": pokud chcete změnit nastavení zavaděče, můžete to provést\n"
"klepnutím na toto tlačítko. Změny by měly provádět pouze zkušení uživatelé.\n"
"Více informací lze nalézt v tištěné dokumentaci nebo online nápověde\n"
-"v ovládacím centru Mandriva Linux.\n"
+"v ovládacím centru Mageia.\n"
"\n"
" * \"%s\": zde si můžete konkrétně určit, které služby budou na vašem "
"počítači\n"
"spuštěny. Pokud bude tento počítač používán jako server, je vhodné provést\n"
"kontrolu toho, co je nastaveno."
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "ISDN karta"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN karta"
@@ -1914,25 +1886,27 @@ msgid "Graphical Interface"
msgstr "Grafické rozhraní"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
-"Vyberte disk, který chcete smazat pro instalaci oddílu Mandriva Linux.\n"
+"Vyberte disk, který chcete smazat pro instalaci oddílu Mageia.\n"
"Pamatujte na to, že všechna data budou ztracena a nelze je již obnovit!"
#: ../help.pm:866
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Klepněte na \"%s\", pokud chcete smazat všechna data a oddíly na tomto\n"
"pevném disku. Buďte opatrní, po odklepnutí tlačítka \"%s\" nelze obnovit "
@@ -1950,3 +1924,120 @@ msgstr "Další ->"
msgid "<- Previous"
msgstr "<- Předchozí"
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": klepnutím na \"%s\" se otevře průvodce nastavením tiskárny.\n"
+#~ "Jak nastavit tiskárnu se také dozvíte z odpovídající kapitoly z příručky\n"
+#~ "\"Začínáme\". Rozhraní je podobné tomu, které vidíte při instalaci."
+
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "Následující rozhodnutí je jedním z těch, které ovlivňují celkovou "
+#~ "bezpečnost\n"
+#~ "systému GNU/Linux, tj. volba hesla pro uživatele \"Root\". Root je "
+#~ "správcem\n"
+#~ "systému, je jediný odpovědný za provádění aktualizací, přidávání "
+#~ "uživatelů a také\n"
+#~ "za celkové nastavení systému. Zkráceně: \"root\" může úplně všechno!\n"
+#~ "To je také důvodem, proč se heslo volí takové, aby se nedalo lehce "
+#~ "uhodnout\n"
+#~ "a instalační program DrakX zkontroluje, zda není příliš jednoduché. Jak "
+#~ "vidíte,\n"
+#~ "je možné heslo nezadat, ale toto velmi důrazně nedoporučujeme, a to z "
+#~ "jednoho\n"
+#~ "důvodu. Nemyslete si, že pokud spustíte systém GNU/Linux, že je vše "
+#~ "bezpečné a že se nemůže nic stát.. Vzhledem k tomu, že na uživatele \"root"
+#~ "\" se nevztahují\n"
+#~ "běžná omezení, může nenávratně poškodit celý systém, smazat data z "
+#~ "jiných\n"
+#~ "oddílů na disku a operačních systémů, vymazat potřebné soubory nebo celé\n"
+#~ "oddíly, atd. Proto je důležité, aby nebylo jednoduché se tímto uživatelem "
+#~ "stát.\n"
+#~ "\n"
+#~ "Zvolené heslo by se mělo skládat ze znaků a číslic a mělo by být dlouhé\n"
+#~ "minimálně 8 znaků. Také není dobré si ho kamkoliv poznamenávat - po\n"
+#~ "nalezení vaší poznámky může být velmi jednoduché se do vašeho systému\n"
+#~ "dostat.\n"
+#~ "\n"
+#~ "Nevolte však heslo příliš dlouhé nebo komplikované, bude nutné si jej "
+#~ "bez\n"
+#~ "větších potíží zapamatovat.\n"
+#~ "\n"
+#~ "Při zadávání nebude heslo na obrazovce zobrazeno. Proto se heslo zadává\n"
+#~ "dvakrát pro ověření, zda nedošlo k překlepu při prvním pokusu. Tak je "
+#~ "možné\n"
+#~ "heslo opravit a zadat dvakrát stejné. Pokud se vám přesto podaří zadat "
+#~ "stejný\n"
+#~ "překlep dvakrát, budete muset toto heslo s překlepem použít při prvním\n"
+#~ "přihlášení.\n"
+#~ "\n"
+#~ "Jestliže chcete použít ověřovací server, klepněte na tlačítko \"%s\".\n"
+#~ "\n"
+#~ "Pokud se ve vaší síti používá pro ověřování uživatelů protokol LDAP, NIS\n"
+#~ "nebo ověřovací doména Windows PDC, vyberte odpovídající protokol pro \"%s"
+#~ "\".\n"
+#~ "Pokud o tom nic nevíte, zeptejte se správce vaší sítě.\n"
+#~ "\n"
+#~ "Pokud máte problémy se zapamatováním si hesel nebo pokud není počítač\n"
+#~ "připojen do žádné spravované sítě a věříte všem, kteří mají k počítači "
+#~ "přístup,\n"
+#~ "můžete vybrat volbu \"%s\"."
+
+#~ msgid "authentication"
+#~ msgstr "ověření"
diff --git a/perl-install/install/help/po/cy.po b/perl-install/install/help/po/cy.po
index b9bdc1582..64e34acb4 100644
--- a/perl-install/install/help/po/cy.po
+++ b/perl-install/install/help/po/cy.po
@@ -6,12 +6,13 @@ msgid ""
msgstr ""
"Project-Id-Version: Mandriva DrakX.cy\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2006-03-08 19:38-0000\n"
"Last-Translator: Rhoslyn Prys <post@meddal.com>\n"
"Language-Team: Cymraeg <post@meddal.com>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Welsh\n"
"X-Poedit-Country: UNITED KINGDOM\n"
@@ -19,15 +20,15 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n == 2) ? 1 : 0;\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Cyn parhau dylech ddarllen amodau'r drwydded yn ofalus. Mae'n ymwneud\n"
-"â holl ddosbarthiad Mandriva Linux. Os ydych yn cytuno â'r holl amodau,\n"
+"â holl ddosbarthiad Mageia. Os ydych yn cytuno â'r holl amodau,\n"
"cliciwch flwch \"%s\". Os nad, bydd clicio ar y botwm \"%s\" yn\n"
"ail gychwyn eich cyfrifiadur."
@@ -119,13 +120,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Ydych chi eisiau defnyddio'r nodwedd?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -135,24 +147,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Dyma'r rhaniadau Linux sydd wedi canfod ar eich disg caled.\n"
@@ -163,30 +179,29 @@ msgstr ""
"fidicon"
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Mae gosodiad Mandriva Linux i'w gael ar nifer o CD-ROMau. Mae DrakX\n"
+"Mae gosodiad Mageia i'w gael ar nifer o CD-ROMau. Mae DrakX\n"
"yn gwybod os yw pecyn penodol wedi ei leoli ar CD-ROM arall a bydd yn bwrw\n"
"allan y CD cyfredol a gofyn am y llall. Os nad yw'r CD angenrheidiol "
"gennych\n"
"wrth law, cliciwch \"%s\", ac ni fydd y pecynnau hynny'n cael eu gosod."
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -199,8 +214,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -238,11 +252,11 @@ msgid ""
"megabytes."
msgstr ""
"Mae'n amser penderfynu pa raglenni rydych am eu gosod ar eich\n"
-"system. Mae yna filoedd o becynnau ar gael ar gyfer Mandriva Linux, ond\n"
+"system. Mae yna filoedd o becynnau ar gael ar gyfer Mageia, ond\n"
"i'w gwneud hi'n haws eu rheoli maent wedi cael eu gosod mewn grwpiau\n"
"o raglenni tebyg.\n"
"\n"
-"Mae Mandriva Linux wedi trefnu'r grwpiau pecynnau i bedwar categori. Mae\n"
+"Mae Mageia wedi trefnu'r grwpiau pecynnau i bedwar categori. Mae\n"
"modd dewis a dethol rhaglenni o'r categorïau gwahanol, fel bo \"Man Gwaith"
"\"\n"
"yn medru cael rhaglenni o'r categori \"Gweinydd\".\n"
@@ -306,7 +320,7 @@ msgid "Truly minimal install"
msgstr "Gosodiad lleiaf posibl"
#: ../help.pm:152
-#, c-format
+#, fuzzy, c-format
msgid ""
"If you choose to install packages individually, the installer will present\n"
"a tree containing all packages classified by groups and subgroups. While\n"
@@ -319,10 +333,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -352,11 +366,11 @@ msgstr ""
"\n"
"!! Os oes pecyn gweinydd wedi ei ddewis, yn fwriadol neu am ei fod yn rhan\n"
"o grwp cyfan, bydd angen i chi gadarnhau eich bod eisiau i'r gweinyddion\n"
-"gael eu gosod. Ym Mandriva Linux mae unrhyw weinydd sydd wedi ei\n"
+"gael eu gosod. Ym Mageia mae unrhyw weinydd sydd wedi ei\n"
"osod yn cael ei gychwyn fel rhagosodiad wrth gychwyn. Hyd yn oed os ydynt\n"
"yn ddiogel a doedd dim materion pryder pan gafodd y dosbarthiad ei ryddhau,\n"
"mae'n bosibl i fylchau diogelwch gael eu darganfod wedi i'r fersiwn hwn o\n"
-"Mandriva Linux gael ei gwblhau. Os nad ydych yn gwybod beth mae\n"
+"Mageia gael ei gwblhau. Os nad ydych yn gwybod beth mae\n"
"gwasanaeth arbennig i fod i'w wneud na pham mae wedi ei osod, yna\n"
"cliciwch\"%s\". Bydd clicio \"%s\" yn gosod y gwasanaethau hynny a\n"
"byddant yncael eu cychwyn yn awtomatig drwy ragosodiad!!\n"
@@ -377,20 +391,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Dibyniaethau awtomatig"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": mae clicio ar y botwm\"%s\" yn agor dewin ffurfweddu argraffydd.\n"
-"Darllenwch y pennawd penodol yn y 'Starter Guide' am ragor o \n"
-"wybodaeth ar sut i osod argraffydd newydd. Mae'r rhyngwyneb yn y llawlyfr\n"
-"yn debyg i'r un welwyd wrth osod y system."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -458,7 +459,12 @@ msgstr ""
"o ddewis yn medru cael ei ddefnyddio gan beiriannau eraill ar eich "
"rhwydwaith."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Cydweddi amser awtomatig"
@@ -487,11 +493,11 @@ msgstr ""
"ar eich cyfer."
#: ../help.pm:234
-#, c-format
+#, fuzzy, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -547,7 +553,7 @@ msgid ""
msgstr ""
"X (sef X Window System) yw calon rhyngwyneb graffigol GNU/Linux a'r\n"
"hyn mae'r holl amgylcheddau graffigol (KDE, Gnome, AterStep,\n"
-"WindowMaker, etc) sy'n dod gyda Mandriva Linux yn dibynnu arno.\n"
+"WindowMaker, etc) sy'n dod gyda Mageia yn dibynnu arno.\n"
"\n"
"Byddwch yn derbyn rhestr o baramedrau gwahanol i'w newid i gael\n"
"y dangosiad graffigol gorau:\n"
@@ -660,41 +666,45 @@ msgstr ""
"llwyddiannus yn cael eich dangosydd i ffurfweddu'n gywir."
#: ../help.pm:319
-#, c-format
+#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -703,15 +713,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -725,7 +735,7 @@ msgid ""
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
"Mae angen i chi nawr ddewis lle ar eich disg caled i osod eich system\n"
-"weithredu Mandriva Linux. Os yw eich disg caled yn wag neu os oes\n"
+"weithredu Mageia. Os yw eich disg caled yn wag neu os oes\n"
"yna system weithredol eisoes yn cymryd yr holl le sydd ar gael, bydd\n"
"angen i chi greu rhaniadau arno. Yn y bôn, mae rhannu disg caled yn\n"
"golygu ei rhannu'n rhesymegol i greu lle i osod eich system Mandriva\n"
@@ -757,14 +767,14 @@ msgstr ""
"Mae modd ail lunio maint y rhaniad heb golli data cyn belled eich bod wedi\n"
"dad-ddarnio rhaniad Windows ac mae'n defnyddio fformat Windows.\n"
"Argymhellir cadw data wrth gefn hefyd. Argymhellir gwneud hyn os ydych\n"
-"am ddefnyddio Mandriva Linux a Microsoft Windows ar yr un cyfrifiadur.\n"
+"am ddefnyddio Mageia a Microsoft Windows ar yr un cyfrifiadur.\n"
"\n"
" Cyn gwneud y dewis hwn, cofiwch y bydd maint eich rhaniad Microsoft\n"
"Windows yn llai nag yw ar hyn o bryd ar ol dilyn y drefn yma. Bydd gennych\n"
"llai o le yn Microsoft Windows i gadw data neu i osod meddalwedd newydd\n"
"\n"
" * \"%s\" os ydych am ddileu'r holl ddata a rhaniadau presennol ar\n"
-"eich disg caled a'u cyfnewid am system Mandriva Linux, yna dewiswch\n"
+"eich disg caled a'u cyfnewid am system Mageia, yna dewiswch\n"
"hwn. Byddwch yn ofalus wrth wneud hyn gan na fydd modd troi nôl\n"
"ar ôl cadarnhau.\n"
"\n"
@@ -787,7 +797,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Defnyddiwch y rhaniadau presennol"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Dileu'r ddisg gyfan"
@@ -867,8 +882,23 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Creu disg meddal awto gosod"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
+#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -887,7 +917,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -909,15 +939,15 @@ msgstr ""
"Cliciwch \"%s\" pan ydych yn barod i fformatio rhaniadau.\n"
"\n"
"Cliciwch \"%s\" os ydych am ddewis rhaniad arall ar gyfer eich gosodiad\n"
-"Mandriva Linux newydd\n"
+"Mageia newydd\n"
"\n"
"Cliciwch \"%s\" os ydych am ddewis rhaniadau i'w gwirio am flociau\n"
"gwallus ar y ddisg."
#: ../help.pm:437
-#, c-format
+#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -929,7 +959,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Erbyn i chi osod Mandriva Linux, mae'n debygol y bydd rhai \n"
+"Erbyn i chi osod Mageia, mae'n debygol y bydd rhai \n"
"pecynnau wedi eu diweddaru ers y rhyddhad cychwynnol. Bydd rhai \n"
"gwallau wedi eu cywiro a materion diogelwch wedi eu datrys. I ganiatáu\n"
"i chi fanteisio ar hyn mae cynnig i chi eu llwytho i lawr o'r rhyngrwyd.\n"
@@ -942,7 +972,7 @@ msgstr ""
"\"%s\" i estyn a gosod y pecynnau hynny neu \"%s\" i beidio."
#: ../help.pm:450
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -951,7 +981,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -977,24 +1007,27 @@ msgid "Security Administrator"
msgstr "Cyfrinair Gweinyddwr"
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1010,21 +1043,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1041,17 +1076,11 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"Yn awr mae angen i chi ddewis pa raniadau i'w defnyddio ar gyfer gosodiad\n"
-"eich system Mandriva Linux. Os oes rhaniadau wedi eu diffinio eisoes, un\n"
+"eich system Mageia. Os oes rhaniadau wedi eu diffinio eisoes, un\n"
"ai drwy osodiad blaenorol o GNU/Linux neu gan offeryn rhannu arall, mae\n"
"modd i chi ddefnyddio'r rhaniadau presennol. Os nad, rhaid i' rhaniadau'r\n"
"ddisg caled gael eu diffinio.\n"
@@ -1112,61 +1141,84 @@ msgstr ""
"I dderbyn gwybodaeth am yr amrywiol systemau ffeil sydd ar gael, darllenwch "
"y\n"
" pennawd ar ext2fs yn y ``Reference Manual''.\n"
-"\n"
-"Os ydych yn gosod ar beiriant PPC, bydd angen i chi greu \"ymlwythwr\" \n"
-" bychan o leiaf 1MB o faint, fydd yn cael ei ddefnyddio gan ymlwythwr "
-"yaboot.\n"
-"Os ydych yn dewis gwneud y rhaniad rhywfaint yn fwy, dyweder tua 50MB, yna\n"
-"gall fod yn le defnyddiol i gadw cnewyllyn sbâr a delweddau ramdisk ar "
-"gyfer\n"
-" sefyllfaoedd cychwyn argyfyngus!"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Awto gosod cyfrwng symudol"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Amnewid rhwng modd arferol/arbenigol"
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Mae mwy nag un rhaniad Microsoft wedi ei ganfod ar eich disg caled.\n"
"Dewiswch ba un rydych am newid ei faint er mwyn gosod eich\n"
-"system weithredu Mandriva Linux newydd\n"
+"system weithredu Mageia newydd\n"
"\n"
"Mae pob rhaniad wedi ei restri fel hyn: \"Enw Linux\", \"Enw Windows\",\n"
"\"Maint\".\n"
@@ -1207,35 +1259,35 @@ msgstr ""
"cliciwch \"%s\" i edrych ar y rhestr gyflawn."
#: ../help.pm:572
-#, c-format
+#, fuzzy, c-format
msgid ""
"This step is activated only if an existing GNU/Linux partition has been\n"
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Mae'r cam hwn yn cael ei weithredu os oes hen raniad GNU/Linux wedi\n"
"ei ganfod ar y cyfrifiadur.\n"
"\n"
"Bydd DrakX angen gwybod a ydych am osod o'r newydd neu uwchraddio\n"
-"system Mandriva Linux presennol.\n"
+"system Mageia presennol.\n"
"\n"
" *\"%s\" Ar y cyfan, mae hwn yn tynnu'r hen system gyfan oddi ar eich\n"
"cyfrifiadur. Er hynny, yn ddibynnol ar eich trefn rhannu, mae modd atal\n"
@@ -1245,13 +1297,13 @@ msgstr ""
"system ffeil, dylech ddewis hwn.\n"
"\n"
" *\"%s\": Mae'r dosbarth gosod hwn yn caniatáu i chi ddiweddaru'r\n"
-"pecynnau sydd wedi eu gosod ar eich system Mandriva Linux. Bydd eich\n"
+"pecynnau sydd wedi eu gosod ar eich system Mageia. Bydd eich\n"
"rhaniadau presenol a'ch data personol yn cael eu cadw. Bydd y rhan fwyaf\n"
"o'r camau ffurfweddu ar gael fel gyda'r gosod arferol.\n"
"\n"
-"Dylai defnyddio \"Diweddaru\" weithio'n iawn ar systemau Mandriva Linux\n"
+"Dylai defnyddio \"Diweddaru\" weithio'n iawn ar systemau Mageia\n"
"sy'n rhedeg systemau \"8.1\" neu'n ddiweddarach. Nid yw uwchraddio\n"
-"fersiynau cyn Mandriva Linux \"8.1\" yn cael ei gymeradwyo."
+"fersiynau cyn Mageia \"8.1\" yn cael ei gymeradwyo."
#: ../help.pm:594
#, c-format
@@ -1298,7 +1350,7 @@ msgstr ""
"bysellfwrdd rhwng cynlluniau Lladin ac an-Lladin."
#: ../help.pm:612
-#, c-format
+#, fuzzy, c-format
msgid ""
"The first step is to choose your preferred language.\n"
"\n"
@@ -1314,8 +1366,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1356,7 +1407,7 @@ msgstr ""
"Ynghylch cefnogaeth UTF-8 (unicode): Amgodiad nod newydd yw Unicode\n"
"sydd i gynnwys pob iaith. Er hynny, mae cefnogaeth i bob iaith o fewn\n"
"GNU/Linux yn dal yn cael ei ddatblygu Oherwydd hynn mae defnydd\n"
-"Mandriva Linux o UTF-8 yn ddibynnol ar ddewis y defnyddiwr:\n"
+"Mageia o UTF-8 yn ddibynnol ar ddewis y defnyddiwr:\n"
"\n"
" * Os ydych yn dewis iaith gyda hen amgodiad cryf (ieithoedd lladin1\n"
"Rwsieg, Siapanëeg, Tsieinëeg, Corëeg, Thai, Groeg, Twrceg, y rhan\n"
@@ -1387,7 +1438,12 @@ msgstr ""
msgid "Espanol"
msgstr "Sbaeneg"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1478,96 +1534,7 @@ msgstr ""
"yn\n"
"\"ttyS0\" yn GNU/Linux, e.e."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Mae hwn yn fan pwysig ynghylch diogelwch eich system GNU/Linux; rhaid\n"
-"rhoi cyfrinair \"root\".\"Root\" yw gweinyddwr y system a'r unig un sydd â'r "
-"hawl\n"
-"i wneud diweddariadau, ychwanegu defnyddwyr, newid ffurfweddiad cyffredinol\n"
-"y system, ac yn y blaen. Yn fyr mae \"root\" yn medru gwneud popeth! Dyna\n"
-"pam mae'n rhaid dewis cyfrinair sy'n anodd ei ddyfalu - bydd DrakX yn dweud\n"
-"wrthych os yw'n rhy hawdd. Fel y gwelwch, mae modd peidio gorfod cynnig\n"
-"cyfrinair, ond rydym yn argymell yn erbyn hyn, hyd yn oed am un rheswm:\n"
-"peidiwch â meddwl bod eich systemau gweithredu eraill yn ddiogel rhag\n"
-"camgymeriadau, gan eich bod wedi cychwyn o GNU/Linux. Gan fod \"root\" yn\n"
-"medru goresgyn unrhyw gyfyngiadau a dileu data'n anfwriadol ar bob rhaniad,\n"
-"drwy fynd at y rhaniadau'n ddi-hid, yna mae'n bwysig ei gwneud hi'n anodd "
-"bod\n"
-"yn \"root\".\n"
-"\n"
-"Dylai'r cyfrinair fod yn gyfuniad o rifau a llythrennau ac o leiaf 8 nod o "
-"hyd.\n"
-"Peidiwch ysgrifennu cyfrinair \"root\" ar bapur - bydd yn ei gwneud hi'n "
-"rhy\n"
-"hawdd gwanhau'r system.\n"
-"\n"
-"Er hynny, peidiwch â gwneud y cyfrinair yn rhy hir neu gymhleth am fod rhaid "
-"i\n"
-"chi fedri ei gofio heb ormod o drafferth.\n"
-"\n"
-"Ni fydd y cyfrinair yn cael ei ddangos ar y sgrin wrth i chi ei deipio. "
-"Felly bydd\n"
-" rhaid i chi deipio'r cyfrinair ddwywaith i leihau'r siawns o deipio gwall. "
-"Os ydych\n"
-"yn digwydd gwneud yr un gwall teipio ddwywaith, bydd rhaid defnyddio'r "
-"cyfrinair\n"
-"\"anghywir\" i gychwyn y tro cyntaf fel \"root\".\n"
-"\n"
-"Os hoffech i fynediad i'r cyfrifiadur gael ei reoli gan wasanaethwr dilysu, "
-"cliciwch\n"
-"y botwm \"%s\".\n"
-"Os yw eich rhwydwaith yn defnyddio protocol gwasanaethau dilysu LDAP, NIS\n"
-"neu PDC Windows Domain, dewiswch un addas fel \"%s\",\n"
-"Os nad ydych yn gwybod, gofynnwch i'ch gweinyddwr rhwydwaith\n"
-"\n"
-"Os ydych yn cael anawsterau atgoffa cyfrineiriau, gallwch ddewis\n"
-"\"%s\", os na fydd eich cyfrifiadur yn cael cyswllt â'r we ac rydych\n"
-"yn ymddiried yn y defnyddiwr."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "dilysu"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1581,7 +1548,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1604,10 +1571,10 @@ msgstr ""
" dewis \"%s\" yn gosod cychwynnydd. Dim ond ar gyfer y gwybodus."
#: ../help.pm:745
-#, c-format
+#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1628,7 +1595,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Yma byddwn yn dewis system argraffu i'ch cyfrifiadur ei ddefnyddio. Efallai\n"
@@ -1665,7 +1632,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Arbenigwr"
@@ -1678,7 +1650,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1721,7 +1693,7 @@ msgstr ""
"gyrrwr arall."
#: ../help.pm:794
-#, c-format
+#, fuzzy, c-format
msgid ""
"As a review, DrakX will present a summary of information it has gathered\n"
"about your system. Depending on the hardware installed on your machine, you\n"
@@ -1744,11 +1716,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1766,8 +1733,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1784,7 +1750,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1833,7 +1799,7 @@ msgstr ""
" \n"
" * \"%s\": os ydych am ffurfweddu eich mynediad i'r Rhyngrwyd neu\n"
"eich rhwydwaith lleol, mae modd gwneud hynny. Darllenwch y deunydd\n"
-"ysgrifenedig neu ddefnyddio Canolfan Reoli Mandriva Linux wedi i'r gosod\n"
+"ysgrifenedig neu ddefnyddio Canolfan Reoli Mageia wedi i'r gosod\n"
"orffen i fanteisio ar gymorth ar-lein llawn.\n"
"\n"
" * \"%s\": os ydych am ffurfweddu cyfeiriadau dirprwyol HTTP ac FTP os\n"
@@ -1850,14 +1816,19 @@ msgstr ""
" * \"%s\": os hoffech newid ffurfweddiad eich cychwynnwr\n"
"cliciwch y botwm yma. Ar gyfer defnyddwyr profiadol. Darllenwch y\n"
"deunydd ysgrifenedig neu'r cymorth ar-lein am ffurfweddiad\n"
-"cychwynwyr yng Nghanolfan Rheoli Mandriva Linux.\n"
+"cychwynwyr yng Nghanolfan Rheoli Mageia.\n"
"\n"
" *\"%s\": yma bydd modd i chi wneud man newidiadau i'r\n"
"gwasanaethau sy'n cael eu rhedeg ar eich cyfrifiadur. Os ydych yn\n"
" bwriadu defnyddio'r cyfrifiadur fel gwasanaethwr mae'n syniad da\n"
"darllen y gosodiadau'n fanwl."
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "Cerdyn ISDN"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "Cerdyn ISDN"
@@ -1868,26 +1839,28 @@ msgid "Graphical Interface"
msgstr "Rhyngwyneb Graffigol"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"Dewiswch y ddisg galed rydych am ei ddileu er mwy n gosod eich rhaniad\n"
-"Mandriva Linux newydd. Byddwch ofalus, bydd yr holl ddata sydd arno'n\n"
+"Mageia newydd. Byddwch ofalus, bydd yr holl ddata sydd arno'n\n"
"cael ei ddileu ac ni fydd modd ei adfer!"
#: ../help.pm:866
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Cliciwch \"%s\" os ydych am ddileu'r holl ddata a rhaniadau sy'n bresennol\n"
"ar y disg. Byddwch ofalus, wedi i chi glicio \"%s\" ni fydd modd i chi\n"
@@ -1907,3 +1880,121 @@ msgstr "Nesaf ->"
msgid "<- Previous"
msgstr "<- Blaenorol"
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": mae clicio ar y botwm\"%s\" yn agor dewin ffurfweddu argraffydd.\n"
+#~ "Darllenwch y pennawd penodol yn y 'Starter Guide' am ragor o \n"
+#~ "wybodaeth ar sut i osod argraffydd newydd. Mae'r rhyngwyneb yn y "
+#~ "llawlyfr\n"
+#~ "yn debyg i'r un welwyd wrth osod y system."
+
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "Mae hwn yn fan pwysig ynghylch diogelwch eich system GNU/Linux; rhaid\n"
+#~ "rhoi cyfrinair \"root\".\"Root\" yw gweinyddwr y system a'r unig un sydd "
+#~ "â'r hawl\n"
+#~ "i wneud diweddariadau, ychwanegu defnyddwyr, newid ffurfweddiad "
+#~ "cyffredinol\n"
+#~ "y system, ac yn y blaen. Yn fyr mae \"root\" yn medru gwneud popeth! "
+#~ "Dyna\n"
+#~ "pam mae'n rhaid dewis cyfrinair sy'n anodd ei ddyfalu - bydd DrakX yn "
+#~ "dweud\n"
+#~ "wrthych os yw'n rhy hawdd. Fel y gwelwch, mae modd peidio gorfod cynnig\n"
+#~ "cyfrinair, ond rydym yn argymell yn erbyn hyn, hyd yn oed am un rheswm:\n"
+#~ "peidiwch â meddwl bod eich systemau gweithredu eraill yn ddiogel rhag\n"
+#~ "camgymeriadau, gan eich bod wedi cychwyn o GNU/Linux. Gan fod \"root\" "
+#~ "yn\n"
+#~ "medru goresgyn unrhyw gyfyngiadau a dileu data'n anfwriadol ar bob "
+#~ "rhaniad,\n"
+#~ "drwy fynd at y rhaniadau'n ddi-hid, yna mae'n bwysig ei gwneud hi'n anodd "
+#~ "bod\n"
+#~ "yn \"root\".\n"
+#~ "\n"
+#~ "Dylai'r cyfrinair fod yn gyfuniad o rifau a llythrennau ac o leiaf 8 nod "
+#~ "o hyd.\n"
+#~ "Peidiwch ysgrifennu cyfrinair \"root\" ar bapur - bydd yn ei gwneud hi'n "
+#~ "rhy\n"
+#~ "hawdd gwanhau'r system.\n"
+#~ "\n"
+#~ "Er hynny, peidiwch â gwneud y cyfrinair yn rhy hir neu gymhleth am fod "
+#~ "rhaid i\n"
+#~ "chi fedri ei gofio heb ormod o drafferth.\n"
+#~ "\n"
+#~ "Ni fydd y cyfrinair yn cael ei ddangos ar y sgrin wrth i chi ei deipio. "
+#~ "Felly bydd\n"
+#~ " rhaid i chi deipio'r cyfrinair ddwywaith i leihau'r siawns o deipio "
+#~ "gwall. Os ydych\n"
+#~ "yn digwydd gwneud yr un gwall teipio ddwywaith, bydd rhaid defnyddio'r "
+#~ "cyfrinair\n"
+#~ "\"anghywir\" i gychwyn y tro cyntaf fel \"root\".\n"
+#~ "\n"
+#~ "Os hoffech i fynediad i'r cyfrifiadur gael ei reoli gan wasanaethwr "
+#~ "dilysu, cliciwch\n"
+#~ "y botwm \"%s\".\n"
+#~ "Os yw eich rhwydwaith yn defnyddio protocol gwasanaethau dilysu LDAP, "
+#~ "NIS\n"
+#~ "neu PDC Windows Domain, dewiswch un addas fel \"%s\",\n"
+#~ "Os nad ydych yn gwybod, gofynnwch i'ch gweinyddwr rhwydwaith\n"
+#~ "\n"
+#~ "Os ydych yn cael anawsterau atgoffa cyfrineiriau, gallwch ddewis\n"
+#~ "\"%s\", os na fydd eich cyfrifiadur yn cael cyswllt â'r we ac rydych\n"
+#~ "yn ymddiried yn y defnyddiwr."
+
+#~ msgid "authentication"
+#~ msgstr "dilysu"
diff --git a/perl-install/install/help/po/da.po b/perl-install/install/help/po/da.po
index d6d4c540f..6126805cb 100644
--- a/perl-install/install/help/po/da.po
+++ b/perl-install/install/help/po/da.po
@@ -11,10 +11,11 @@ msgid ""
msgstr ""
"Project-Id-Version: da\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2006-03-05 18:46+0100\n"
"Last-Translator: Keld Simonsen <keld@rap.dk>\n"
"Language-Team: <da@li.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -22,17 +23,17 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Før du går videre bør du læse betingelserne i licensen omhyggeligt. Den "
-"omfatter hele Mandriva Linux distributionen. Hvis du er enig i alle "
-"betingelserne i den, så klik på '%s'-boksen. Hvis ikke, så vil klikning på "
-"\"%s\"-knappen genstarte din maskine."
+"omfatter hele Mageia distributionen. Hvis du er enig i alle betingelserne i "
+"den, så klik på '%s'-boksen. Hvis ikke, så vil klikning på \"%s\"-knappen "
+"genstarte din maskine."
#: ../help.pm:20
#, c-format
@@ -110,9 +111,19 @@ msgstr ""
"Når du er færdig med at tilføje brugere, vil du blive spurgt om at vælge en "
"bruger som automatisk kan logge ind på systemet når maskinen startes op. "
"Hvis du er interesseret i denne facilitet (og ikke kærer dig synderligt om "
-"lokal sikkerhed), så vælg den ønskede bruger og vindueshåndtering og klik '%"
-"s'. Hvis du ikke er interesseret i denne facilitet, så afmarkér boksen med '%"
-"s'."
+"lokal sikkerhed), så vælg den ønskede bruger og vindueshåndtering og klik "
+"'%s'. Hvis du ikke er interesseret i denne facilitet, så afmarkér boksen med "
+"'%s'."
+
+#: ../help.pm:54
+#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
#: ../help.pm:54
#, c-format
@@ -122,7 +133,8 @@ msgstr "Ønsker du at bruge denne facilitet?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -132,24 +144,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Her er listet de eksisterende Linux-partitioner genkendt på din disk. Du kan "
@@ -181,30 +197,29 @@ msgstr ""
"osv."
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Mandriva Linux installationen bliver distribueret på flere cdrom-er. Hvis en "
-"valgt pakke ligger på en anden cdrom, vil DrakX udskyde den nuværende cd og "
-"bede dig om at isætte den forespurgte cd. Hvis du ikke har den forespurgte "
-"cd ved hånden, så klik bare på '%s' - de tilsvarende pakker vil da ikke "
-"blive installerede."
+"Mageia installationen bliver distribueret på flere cdrom-er. Hvis en valgt "
+"pakke ligger på en anden cdrom, vil DrakX udskyde den nuværende cd og bede "
+"dig om at isætte den forespurgte cd. Hvis du ikke har den forespurgte cd ved "
+"hånden, så klik bare på '%s' - de tilsvarende pakker vil da ikke blive "
+"installerede."
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -217,8 +232,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -256,11 +270,11 @@ msgid ""
"megabytes."
msgstr ""
"Det er nu tid til at angive hvilke pakker du vil installere på dit system. "
-"Der er tusindvis af pakker til dit Mandriva Linux system, og for at gøre det "
-"nemmere at håndtere dem er pakkerne blevet placeret i grupper af lignende "
+"Der er tusindvis af pakker til dit Mageia system, og for at gøre det nemmere "
+"at håndtere dem er pakkerne blevet placeret i grupper af lignende "
"programmer.\n"
"\n"
-"Mandriva Linux opdeler pakkegrupper i fire kategorier. Du kan vælge og vrage "
+"Mageia opdeler pakkegrupper i fire kategorier. Du kan vælge og vrage "
"programmer fra de forskellige grupper, så en installation af "
"'Arbejdsstation' kan også have programmer fra 'Udvikling'-kategorien "
"installeret.\n"
@@ -327,7 +341,7 @@ msgid "Truly minimal install"
msgstr "Virkeligt minimale installation"
#: ../help.pm:152
-#, c-format
+#, fuzzy, c-format
msgid ""
"If you choose to install packages individually, the installer will present\n"
"a tree containing all packages classified by groups and subgroups. While\n"
@@ -340,10 +354,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -374,13 +388,13 @@ msgstr ""
"!! Når en server-pakke er blevet valgt, enten fordi du specielt valgte den "
"individuelle pakke, eller fordi den var en del af en gruppe af pakker, vil "
"du blive spurgt om at bekræfte at du virkelig ønsker at installere disse "
-"servere. Som standard under Mandriva Linux bliver installerede servere "
-"startet op ved opstart af maskinen. Selvom de er sikre og ikke har nogen "
-"kendte problemer på udgivelsestidspunktet for distributionen, er det absolut "
-"muligt at sikkerhedshuller blev opdaget efter at denne version af Mandriva "
-"Linux blev færdiggjort. Hvis du ikke véd hvad en bestemt tjeneste vil gøre "
-"eller hvorfor den skal installeres, så klik '%s' her. Et klik med '%s' her "
-"vil installere de nævnte servere og de vil blive startet automatisk under "
+"servere. Som standard under Mageia bliver installerede servere startet op "
+"ved opstart af maskinen. Selvom de er sikre og ikke har nogen kendte "
+"problemer på udgivelsestidspunktet for distributionen, er det absolut muligt "
+"at sikkerhedshuller blev opdaget efter at denne version af Mandriva Linux "
+"blev færdiggjort. Hvis du ikke véd hvad en bestemt tjeneste vil gøre eller "
+"hvorfor den skal installeres, så klik '%s' her. Et klik med '%s' her vil "
+"installere de nævnte servere og de vil blive startet automatisk under "
"opstarten!!\n"
"\n"
"'%s'-valget deaktiverer advarselsdialogen, som vises hver gang "
@@ -403,20 +417,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Automatiske afhængigheder"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"'%s': Et klik på '%s'-knappen vil åbne vejlederen for printerkonfigurering. "
-"Kig i det tilhørende kapitel i 'Startvejledningen' for mere information om "
-"hvordan man opsætter en ny printer. Grænsefladen\n"
-"præsenteret i vores manual ligner den som bruges på installationstidspunktet."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -481,7 +482,12 @@ msgstr ""
"tidsserver med en placering nær ved dig. Denne mulighed installerer faktisk "
"en tidsserver som også kan bruges af andre maskiner på dit lokalnetværk."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Automatisk tidssynkronisering"
@@ -509,11 +515,11 @@ msgstr ""
"bedst opfylder dine behov."
#: ../help.pm:234
-#, c-format
+#, fuzzy, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -569,7 +575,7 @@ msgid ""
msgstr ""
"X (for X Window System) er hjertet af GNU/Linux' grafiske grænseflade som "
"alle de grafiske miljøer (KDE, GNOME, AfterStep, WindowMaker, mv.) der "
-"kommer sammen med Mandriva Linux afhænger af.\n"
+"kommer sammen med Mageia afhænger af.\n"
"\n"
"Du vil se en liste med forskellige parametre der kan ændres for at få den "
"bedst mulige grafiske fremvisning:\n"
@@ -683,41 +689,45 @@ msgstr ""
"konfigureret."
#: ../help.pm:319
-#, c-format
+#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -726,15 +736,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -747,11 +757,11 @@ msgid ""
"experience. For more instructions on how to use the DiskDrake utility,\n"
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
-"Nu skal du vælge hvor på din harddisk du vil installere dit Mandriva Linux-"
+"Nu skal du vælge hvor på din harddisk du vil installere dit Mageia-"
"operativsystem. Hvis disken er tom eller et eksisterende operativsystem "
"bruger alt pladsen på den, bliver du nødt til at partitionere drevet. "
"Partitionering vil sige at diskdrevet opdeles i logiske dele for at lave den "
-"plads der behøves til at installere dit nye Mandriva Linux-system.\n"
+"plads der behøves til at installere dit nye Mageia-system.\n"
"\n"
"Da partitioneringen af en disk normalt ikke kan fortrydes og kan føre til "
"tab af data, kan det godt være frustrerende og stressende for uøvede "
@@ -777,8 +787,8 @@ msgstr ""
"Windows-FAT- eller NTFS-partition. Størrelsesændringen kan fortages uden tab "
"af data, hvis du i forvejen har defragmenteret Windows-partitionen. Det "
"anbefales på det kraftigste at du laver en sikkerhedskopi først. Denne "
-"mulighed anbefales hvis du vil bruge både Mandriva Linux og Microsoft "
-"Windows på samme maskine.\n"
+"mulighed anbefales hvis du vil bruge både Mageia og Microsoft Windows på "
+"samme maskine.\n"
"\n"
" Før du vælger denne løsning, bør du forstå at størrelsen på din Microsoft "
"Windows partition vil blive mindre end da du startede. Du vil have mindre "
@@ -786,9 +796,9 @@ msgstr ""
"nyt programmel.\n"
"\n"
" * '%s': Hvis du vil slette alle data på alle partitioner på denne disk og "
-"erstatte dem med dit nye Mandriva Linux-system, kan du vælge denne mulighed. "
-"Vær forsigtig, for du vil ikke være i stand til at fortryde denne handling "
-"efter at du har sagt ja.\n"
+"erstatte dem med dit nye Mageia-system, kan du vælge denne mulighed. Vær "
+"forsigtig, for du vil ikke være i stand til at fortryde denne handling efter "
+"at du har sagt ja.\n"
"\n"
" !! Hvis du bruger denne mulighed vil alle eksisterende data på din disk "
"gå tabt. !!\n"
@@ -812,7 +822,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Brug eksisterende partition"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Slet hele disken"
@@ -895,8 +910,23 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Lav autoinstallations-diskette"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
+#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -915,7 +945,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -936,15 +966,15 @@ msgstr ""
"Klik på '%s' når du er klar til at formatere partitionerne.\n"
"\n"
"Klik på '%s' hvis du ønsker at vælge andre partitioner til at installere dit "
-"nye Mandriva Linux operativsystem.\n"
+"nye Mageia operativsystem.\n"
"\n"
"Klik på '%s' for at vælge partitioner som du ønsker at tjekke for dårlige "
"blokke."
#: ../help.pm:437
-#, c-format
+#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -956,13 +986,12 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"På det tidspunkt hvor du installerer Mandriva Linux er det sandsynligt at "
-"nogen af pakkerne er blevet opdaterede siden den oprindelige udgivelse. Fejl "
-"er måske blevet rettet, og sikkerhedsproblemer måske løst. Det er nu muligt "
-"for dig at hente disse ned fra internettet for at disse opdateringer kan "
-"komme dig til gode. Vælg '%s' hvis du har en fungerende internet- "
-"forbindelse eller '%s' hvis du foretrækker at installere opdaterede pakker "
-"senere.\n"
+"På det tidspunkt hvor du installerer Mageia er det sandsynligt at nogen af "
+"pakkerne er blevet opdaterede siden den oprindelige udgivelse. Fejl er måske "
+"blevet rettet, og sikkerhedsproblemer måske løst. Det er nu muligt for dig "
+"at hente disse ned fra internettet for at disse opdateringer kan komme dig "
+"til gode. Vælg '%s' hvis du har en fungerende internet- forbindelse eller "
+"'%s' hvis du foretrækker at installere opdaterede pakker senere.\n"
"\n"
"Valg af '%s' viser en liste af netsteder hvorfra opdateringer kan hentes. Du "
"bør vælge en der er nær ved dig. Så vil et træ med pakkevalg blive vist: "
@@ -970,7 +999,7 @@ msgstr ""
"eller '%s' for at afbryde."
#: ../help.pm:450
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -979,7 +1008,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1004,24 +1033,27 @@ msgid "Security Administrator"
msgstr "Sikkerhedsadministrator"
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1037,21 +1069,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1068,18 +1102,12 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"Nu skal du vælge hvilke partitioner som skal bruges til installering af dit "
-"Mandriva Linux system. Hvis partitionerne allerede er blevet defineret, "
-"enten fra en tidligere installation af GNU/Linux eller med et andet "
+"Mageia system. Hvis partitionerne allerede er blevet defineret, enten fra en "
+"tidligere installation af GNU/Linux eller med et andet "
"partitioneringsværktøj, kan du bruge de eksisterende partitioner. Ellers "
"skal disk-partitionerne defineres først.\n"
"\n"
@@ -1140,59 +1168,84 @@ msgstr ""
"\n"
"For at få information om de forskellige tilgængelige filsystemstyper kan du "
"læse kapitlet ext2fs i 'Referencemanualen'.\n"
-"\n"
-"Hvis du er i gang med at installere på en PPC-maskine skal du lave en lille "
-"HFS-'bootstrap'-partition på mindst 1 MB til Yaboot-systemstarteren. Hvis du "
-"vælger at lave partitionen en smule større, f.eks. 50 MB kan den være nyttig "
-"til at gemme en ekstra kerne og ramdisk-billede for nødsituationer ved "
-"opstart."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Automontering af flytbare medier"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Skift mellem normal og ekspert-tilstand"
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Mere end én Microsoft Windows partition er blevet genkendt på dit diskdrev. "
"Vælg den som du ønsker at ændre størrelse på for at kunne installere dit nye "
-"Mandriva Linux operativsystem.\n"
+"Mageia operativsystem.\n"
"\n"
"Hver partition er listet som følger: 'Linux navn', 'Windows navn', "
"'Kapacitet'.\n"
@@ -1233,35 +1286,35 @@ msgstr ""
"der vistes, så klik på '%s'-knappen for at få den komplette liste over lande."
#: ../help.pm:572
-#, c-format
+#, fuzzy, c-format
msgid ""
"This step is activated only if an existing GNU/Linux partition has been\n"
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Dette trin bliver kun aktiveret hvis der bliver fundet en eksisterende\n"
"GNU/Linux partition på din maskine.\n"
"\n"
"DrakX skal nu vide om du vil udføre en ny installation eller en opgradering\n"
-"af et eksisterende Mandriva Linux-system.\n"
+"af et eksisterende Mageia-system.\n"
"\n"
" * \"%s\": Dette vil stort sét slette hele det gamle system. Dog kan du "
"afhængigt af din partitionsopsætning forhindre at nogen af dine ekisterende "
@@ -1270,14 +1323,14 @@ msgstr ""
"bør du bruge denne mulighed.\n"
"\n"
" * \"%s\": Denne installationsklasse lader dig opgradere pakkene som er "
-"installeret på dit nuværende Mandriva Linux-system. Din nuværende "
+"installeret på dit nuværende Mageia-system. Din nuværende "
"partitionsopsætning og brugerdata bliver ikke berørt. De fleste andre "
"konfigurationstrin forbliver tilgængelige, i lighed med en "
"standardinstallation.\n"
"\n"
-"\"Opgradér\"-valget bør fungere fint på Mandriva Linux-systemer som kører "
-"version '8.1' eller nyere. Udførelse af Opgradér på versioner tidligere end "
-"Mandriva Linux '8.1' er ikke anbefalet."
+"\"Opgradér\"-valget bør fungere fint på Mageia-systemer som kører version "
+"'8.1' eller nyere. Udførelse af Opgradér på versioner tidligere end Mageia "
+"'8.1' er ikke anbefalet."
#: ../help.pm:594
#, c-format
@@ -1316,7 +1369,7 @@ msgstr ""
"vil skifte mellem den latinske og den ikke-latinske udlægning."
#: ../help.pm:612
-#, c-format
+#, fuzzy, c-format
msgid ""
"The first step is to choose your preferred language.\n"
"\n"
@@ -1332,8 +1385,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1373,8 +1425,8 @@ msgstr ""
"\n"
"Om UTF-8 (ISO 10646)-understøttelse. ISO 10646 er en ny tegnkodning som er "
"beregnet til at dække alle eksiterende sprog. Dog er fuld understøttelse for "
-"dette i GNU/Linux stadig under udvikling. Af denne årsag vil Mandriva Linux' "
-"brug af UTF-8 afhænge af brugerens valg:\n"
+"dette i GNU/Linux stadig under udvikling. Af denne årsag vil Mageia' brug af "
+"UTF-8 afhænge af brugerens valg:\n"
"\n"
" * Hvis du vælger et sprog som har en lang tradition for tegnkodning (latin1 "
"sprog, russisk, japansk, kinesisk, koreansk, thai, græsk, tyrkisk, de fleste "
@@ -1404,7 +1456,12 @@ msgstr ""
msgid "Espanol"
msgstr "Spansk"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1490,89 +1547,7 @@ msgstr ""
"Vælg den rigtige port. For eksempel er navnet for COM1-porten under MS "
"Windows 'ttyS0' under GNU/Linux."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Dette er den vanskeligste beslutning omkring sikkerheden af dit GNU/Linux- "
-"system: Du skal indtaste din 'root'-adgangskode. 'Root' er "
-"systemadministratoren og er den eneste bruger, der har lov til at lave "
-"opdateringer, tilføje brugere, ændre i den overordnede systemkonfiguration "
-"og så videre. Kort sagt, 'root' kan gøre alt! Derfor skal du vælge en "
-"adgangskode der er svær at gætte - DrakX vil fortælle dig hvis adgangskoden "
-"du valgte er for simpel. Som du kan se er du ikke tvunget til at indtaste en "
-"adgangskode, men vi advarer på det kraftigste mod dette. GNU/Linux er lige "
-"så udsat for behandlingsfejl som ethvert andet operativsystem. Da 'root' kan "
-"overvinde alle forhindringer og uforvarende slette alle data på partitioner "
-"ved sorgløst at behandle partitionerne selv, er det vigtigt at det er "
-"vanskeligt at blive 'root'.\n"
-"\n"
-"Adgangskoden bør være en blanding af bogstaver og tal og mindst 8 tegn "
-"langt. Skriv aldrig en adgangskode ned for 'root' - det gør det alt for nemt "
-"at bryde ind i dit system.\n"
-"\n"
-"Gør dog ikke adgangskoden for lang eller for kompliceret da du skal være i "
-"stand til at huske den uden for stort besvær!\n"
-"\n"
-"Adgangskoden vil ikke blive vist på skærmen når du indtaster den. Du skal "
-"derfor indtaste adgangskoden to gange, for at begrænse risikoen for "
-"tastefejl. Hvis du kommer til at lave den samme tastefejl to gange, skal du "
-"bruge denne 'ukorrekte' adgangskode den første gang du prøver at koble op "
-"som 'root'.\n"
-"\n"
-"Hvis du ønsker at en autentificerings-server skal styre adgangen til din "
-"maskine, så klik på '%s'-knappen.\n"
-"\n"
-"Hvis dit netværk bruger LDAP, NIS eller PDC Windows domæne-"
-"autentificeringstjenester, vælg da den rigtige som '%s'. Hvis du ikke véd "
-"hvilken der skal bruges, så bør du spørge din systemadministrator.\n"
-"\n"
-"Hvis du har problemer med at huske adgangskoder, så kan du vælge '%s' hvis "
-"din maskine ikke vil være forbundet til Internettet, og du stoler på alle "
-"som kan få adgang til maskinen. "
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "autentifikation"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1586,7 +1561,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1610,10 +1585,10 @@ msgstr ""
"du véd hvad du gør."
#: ../help.pm:745
-#, c-format
+#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1634,7 +1609,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Nu er det tid til at vælge et udskrivningssystem for din maskine. Andre "
@@ -1668,7 +1643,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Ekspert"
@@ -1681,7 +1661,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1721,7 +1701,7 @@ msgstr ""
"systemet, kan du klikke på knappen og vælge en anden driver."
#: ../help.pm:794
-#, c-format
+#, fuzzy, c-format
msgid ""
"As a review, DrakX will present a summary of information it has gathered\n"
"about your system. Depending on the hardware installed on your machine, you\n"
@@ -1744,11 +1724,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1766,8 +1741,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1784,7 +1758,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1827,13 +1801,13 @@ msgstr ""
"hvis du synes at konfigurationen er forkert.\n"
"\n"
" * \"%s\": Som standard vil DrakX opsætte din grafiske grænseflade i "
-"opløsningen 800x600 eller 1024x768. Hvis dette ikke passer dig, så klik på '%"
-"s'-knappen for at ændre på opsætningen.\n"
+"opløsningen 800x600 eller 1024x768. Hvis dette ikke passer dig, så klik på "
+"'%s'-knappen for at ændre på opsætningen.\n"
"\n"
" * \"%s\": Hvis du ønsker at konfigurere din adgang til internet eller "
"lokalnet, kan du gøre dette nu. Kig i den trykte dokumentation eller brug "
-"Mandriva Linux Kontrolcenter efter installationen er afsluttet for at drage "
-"nytte af den fulde indbyggede vejledning. \n"
+"Mageia Kontrolcenter efter installationen er afsluttet for at drage nytte af "
+"den fulde indbyggede vejledning. \n"
"\n"
" * \"%s\": lader dig konfigurere HTTP- og FTP-proxyadresser, hvis maskinen, "
"du installerer på, skal placeres bag en proxyserver.\n"
@@ -1849,13 +1823,18 @@ msgstr ""
" * \"%s\": Hvis du vil ændre på konfigurationen for opstartsindlæseren, så "
"klik på denne knap. Dette bør forbeholdes avancerede brugere. Kig i den "
"trykte dokumentation eller i den indbyggede hjælp om konfiguration af "
-"opstartsindlæser i Mandriva Linux Kontrolcenter.\n"
+"opstartsindlæser i Mageia Kontrolcenter.\n"
"\n"
" * \"%s\": her kan du fininstille hvilke tjenester som skal startes på din "
"maskine. Hvis du skal bruge maskinen som server er det en god idé at "
"gennemse denne opsætning."
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "ISDN-kort"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN-kort"
@@ -1866,13 +1845,13 @@ msgid "Graphical Interface"
msgstr "Grafisk grænseflade"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
-"Vælg det diskdrev som du vil slette for at installere din nye Mandriva Linux "
+"Vælg det diskdrev som du vil slette for at installere din nye Mageia "
"partition. Vær forsigtig, alle data som er på denne partition vil gå tabt og "
"vil ikke kunne genskabes!"
@@ -1880,12 +1859,14 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Klik på '%s' hvis du ønsker at slette alle data og partitioner der ligger på "
"dette diskdrev. Vær omhyggelig, efter klik på '%s' vil du ikke være i stand "
@@ -1904,3 +1885,108 @@ msgstr "Næste ->"
msgid "<- Previous"
msgstr "<- Forrige"
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "'%s': Et klik på '%s'-knappen vil åbne vejlederen for "
+#~ "printerkonfigurering. Kig i det tilhørende kapitel i 'Startvejledningen' "
+#~ "for mere information om hvordan man opsætter en ny printer. Grænsefladen\n"
+#~ "præsenteret i vores manual ligner den som bruges på "
+#~ "installationstidspunktet."
+
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "Dette er den vanskeligste beslutning omkring sikkerheden af dit GNU/"
+#~ "Linux- system: Du skal indtaste din 'root'-adgangskode. 'Root' er "
+#~ "systemadministratoren og er den eneste bruger, der har lov til at lave "
+#~ "opdateringer, tilføje brugere, ændre i den overordnede "
+#~ "systemkonfiguration og så videre. Kort sagt, 'root' kan gøre alt! Derfor "
+#~ "skal du vælge en adgangskode der er svær at gætte - DrakX vil fortælle "
+#~ "dig hvis adgangskoden du valgte er for simpel. Som du kan se er du ikke "
+#~ "tvunget til at indtaste en adgangskode, men vi advarer på det kraftigste "
+#~ "mod dette. GNU/Linux er lige så udsat for behandlingsfejl som ethvert "
+#~ "andet operativsystem. Da 'root' kan overvinde alle forhindringer og "
+#~ "uforvarende slette alle data på partitioner ved sorgløst at behandle "
+#~ "partitionerne selv, er det vigtigt at det er vanskeligt at blive 'root'.\n"
+#~ "\n"
+#~ "Adgangskoden bør være en blanding af bogstaver og tal og mindst 8 tegn "
+#~ "langt. Skriv aldrig en adgangskode ned for 'root' - det gør det alt for "
+#~ "nemt at bryde ind i dit system.\n"
+#~ "\n"
+#~ "Gør dog ikke adgangskoden for lang eller for kompliceret da du skal være "
+#~ "i stand til at huske den uden for stort besvær!\n"
+#~ "\n"
+#~ "Adgangskoden vil ikke blive vist på skærmen når du indtaster den. Du skal "
+#~ "derfor indtaste adgangskoden to gange, for at begrænse risikoen for "
+#~ "tastefejl. Hvis du kommer til at lave den samme tastefejl to gange, skal "
+#~ "du bruge denne 'ukorrekte' adgangskode den første gang du prøver at koble "
+#~ "op som 'root'.\n"
+#~ "\n"
+#~ "Hvis du ønsker at en autentificerings-server skal styre adgangen til din "
+#~ "maskine, så klik på '%s'-knappen.\n"
+#~ "\n"
+#~ "Hvis dit netværk bruger LDAP, NIS eller PDC Windows domæne-"
+#~ "autentificeringstjenester, vælg da den rigtige som '%s'. Hvis du ikke véd "
+#~ "hvilken der skal bruges, så bør du spørge din systemadministrator.\n"
+#~ "\n"
+#~ "Hvis du har problemer med at huske adgangskoder, så kan du vælge '%s' "
+#~ "hvis din maskine ikke vil være forbundet til Internettet, og du stoler på "
+#~ "alle som kan få adgang til maskinen. "
+
+#~ msgid "authentication"
+#~ msgstr "autentifikation"
diff --git a/perl-install/install/help/po/de.po b/perl-install/install/help/po/de.po
index e688af7b3..cccce7edf 100644
--- a/perl-install/install/help/po/de.po
+++ b/perl-install/install/help/po/de.po
@@ -1,46 +1,40 @@
-# translation of de.po to deutsch
-# translation of DrakX-de.po to deutsch
-# translation of de.po to Deutsch
-# translation of DrakX-de.po to german
-# german translation of the MandrivaInstaller.
-# Copyright (C) 2000-2003 Mandriva S.A.
-# Stefan Siegel <siegel@linux-mandrake.com>, 2000, 2001, 2002, 2003.
-# Sebastian Deutscher <sebastian_deutscher@web.de>, 2003,2004.
-# Gerhard Ortner <gerhard.ortner@aon.at>, 2003, 2004.
-# Roy Steuber <roysteuber@mittweida-net.de>, 2004.
-# Marcus Fischer <i18n@marcusfischer.com>, 2004.
-# Frank Köster <frank@dueppel13.de>, 2004, 2005.
-# Ronny Standtke <Ronny.Standtke@gmx.de>, 2003, 2004.
-# Ronny Standtke <Ronny.Standtke@gmx.net>, 2004, 2005.
-# Nicolas Bauer <webmaster@mandrakeusers.de>, 2005.
-# Frank Koester <frank@dueppel13.de>, 2005.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+# Translators:
+# Yuri Chornoivan <yurchor@ukr.net>, 2024
+# psyca, 2024
+#
+#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: DrakX-de\n"
+"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
-"PO-Revision-Date: 2005-09-20 17:12+0200\n"
-"Last-Translator: Frank Koester <frank@dueppel13.de>\n"
-"Language-Team: deutsch\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
+"PO-Revision-Date: 2024-09-04 17:33+0000\n"
+"Last-Translator: psyca, 2024\n"
+"Language-Team: German (https://app.transifex.com/MageiaLinux/teams/9361/"
+"de/)\n"
+"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.10.2\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../help.pm:14
#, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Lesen Sie bitte aufmerksam die Lizenz, bevor Sie fortfahren. Sie umfasst\n"
-"die gesamte Mandriva Linux Distribution. Sollten Sie nicht in allen Punkten\n"
-"zustimmen, betätigen Sie bitte die Schaltfläche „%s“, um die Installation\n"
-"abzubrechen. Um mit der Installation fortzufahren, betätigen Sie die\n"
-"Schaltfläche „%s“."
+"die gesamte Mageia Distribution. Sollten Sie in allen Punkten\n"
+"zustimmen, betätigen Sie bitte die Schaltfläche „%s“. Wenn nicht wird ein\n"
+"Betätigen der Schaltfläche „%s“ ihren Computer neu starten."
#: ../help.pm:20
#, c-format
@@ -124,13 +118,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr "Benutzername"
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr "Benutzer akzeptieren"
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Möchten Sie diese Möglichkeit nutzen?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -140,24 +145,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Sie erhalten die Liste, der auf Ihren Festplatten gefundenen GNU/Linux\n"
@@ -191,36 +200,31 @@ msgstr ""
"Bei SCSI-Platten steht „a“ für „niedrigste SCSI-ID“, „b“ für\n"
"„zweitniedrigste SCSI-ID“, etc."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/de/drakx-chapter.xml
#: ../help.pm:88
#, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Die Mandriva Linux-Distribution wird auf mehreren CD-ROMs ausgeliefert. Es\n"
-"kann daher vorkommen, dass DrakX Pakete von anderen, als der\n"
-"Installations-CD-ROM installieren will. In diesem Fall wird es die aktuelle\n"
-"CD auswerfen und nach einer anderen fragen. Wenn Sie dieses CD nicht haben,\n"
-"klicken Sie einfach auf „%s“. Die entsprechenden Pakete werden in dem Fall\n"
-"nicht installiert."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/de/drakx-chapter.xml
+"Die Mageia-Distribution wird auf mehreren CD-ROMs ausgeliefert. Wenn\n"
+"ein ausgewähltes Paket sich auf einer anderen CD-ROM befindet, wird DrakX\n"
+"die aktuelle CD-ROM auswerfen und nach einer anderen fragen. Wenn Sie diese\n"
+"nicht zur Hand haben sollten, betätigen Sie die Schaltfläche „%s“, die "
+"entsprechenden\n"
+"Pakete werden dann nicht installiert."
+
#: ../help.pm:95
#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -233,8 +237,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -271,25 +274,27 @@ msgid ""
"command-line interface. The total size of this installation is about 65\n"
"megabytes."
msgstr ""
-"Nun ist es Zeit sich zu entscheiden, welche Programme Sie auf Ihrem Rechner\n"
-"installieren wollen. Es gibt tausende von Paketen für Mandriva Linux, und\n"
-"Sie müssen sie nicht alle auswendig kennen.\n"
+"Nun ist es Zeit sich zu entscheiden, welche Programme Sie auf Ihrem Rechner "
+"installieren wollen.\n"
+"Es gibt tausende von Paketen für Mageia, und um die Verwaltung zu "
+"vereinfachen sind diese, zusammen mit ähnlichen Anwendungen, in Kategorien "
+"sortiert.\n"
"\n"
-"Die Pakete sind nach ihrer Verwendung in vier Kategorien eingeteilt. Sie\n"
+"Die Pakete sind in vier Kategorien eingeteilt. Sie\n"
"können Pakete aus verschiedenen Kategorien nach Belieben mischen, sodass\n"
"beispielsweise eine „Workstation“-Installation auch Bestandteile einer\n"
"„Server“-Installation aufweisen kann.\n"
"\n"
" * „%s“: Falls Ihr Rechner als Arbeitsplatzrechner verwendet werden soll,\n"
-"markieren Sie eine oder mehrere Gruppen.\n"
+"markieren Sie eine oder mehrere Gruppen dieser Kategorie.\n"
"\n"
" * „%s“: Falls Sie mit Ihrem Rechner programmieren wollen, sollten Sie\n"
"diese Gruppe markieren. Die spezielle Gruppe „LSB“ wird Ihr System\n"
"möglichst eng an den Vorgaben der Linux Standard Base ausrichten.\n"
"\n"
-" Die Auswahl der „LSB“-Gruppe bewirkt auch, dass der Kernel „2.4“\n"
-"anstelle des standardmäßigen Kernel „2.6“ installiert wird, um die 100%%ige\n"
-"Einhaltung der-LSB-Bedingungen zu garantieren. Allerdings erhalten Sie auch\n"
+" Die Auswahl der „LSB“-Gruppe bewirkt auch, eine 100%%ige\n"
+"Einhaltung der-LSB-Bedingungen des Systems zu garantieren. Allerdings "
+"erhalten Sie auch\n"
"ohne die Auswahl der „LSB“-Gruppe ein nahezu 100%%ig LSB-konformes System.\n"
"\n"
" * „%s“: Wenn Ihre Maschine ein Server werden soll, können Sie hier die\n"
@@ -312,19 +317,22 @@ msgstr ""
"Hierdurch werden nur bereits installierte Pakete aktualisiert oder\n"
"repariert.\n"
"\n"
-"Wenn Sie bei einer normalen Installation alle Gruppen de-markieren\n"
+"Wenn Sie bei einer normalen Installation (im Gegensatz zu einem Upgrade) "
+"alle Gruppen de-markieren\n"
"erscheint ein Dialog, der Ihnen verschiedene Optionen für eine\n"
"Minimal-Installation anbietet:\n"
"\n"
-" * „%s“ Installiert eine rudimentäre grafische Oberfläche;\n"
+" * „%s“ Installiert eine minimale Anzahl an Paketen um mindestens eine "
+"funktionale grafische Oberfläche zu erhalten;\n"
"\n"
" * „%s“ Installiert das Basissystem zuzüglich grundlegender Werkzeuge\n"
"inklusive deren Dokumentation. Dies ist die sinnvollste Wahl für eine\n"
"Serverinstallation.\n"
"\n"
-" * „%s“ Sie erhalten eine komplett „nackte“ 65MB große\n"
-"GNU/Linux-Distribution. Es versteht sich von selbst, dass das nur eine\n"
-"Kommandozeileninstallation sein kann."
+" * „%s“ Installiert das absolute Minimum an Paketen die nötig sind um ein "
+"funktionierendes Linux System zu erhalten. Mit dieser Installation erhalten "
+"Sie nur eine Kommandozeile. Die gesamte Größe dieser Installation beträgt um "
+"die 65 Megabyte."
#: ../help.pm:149 ../help.pm:591
#, c-format
@@ -341,8 +349,6 @@ msgstr "Mit minimaler Dokumentation (Empfohlen)"
msgid "Truly minimal install"
msgstr "Minimal-Installation"
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/de/drakx-chapter.xml
#: ../help.pm:152
#, c-format
msgid ""
@@ -357,10 +363,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -387,31 +393,38 @@ msgstr ""
"Pakete\n"
"auswählen.\n"
"\n"
-"Wenn Sie ein Paket auswählen, erscheint rechts eine kurze Beschreibung.\n"
+"Wenn Sie ein Paket auswählen, erscheint rechts eine kurze Beschreibung, "
+"damit Sie den Zweck des Pakets in Erfahrung bringen können.\n"
"\n"
-"!! Es kommt vor, dass Server- und Dienst-Pakete angewählt wurden - entweder\n"
-"absichtlich, oder als Paket einer ganzen Gruppe; sollte das der Fall sein,\n"
-"werden Sie nun gefragt, ob Sie diese wirklich installiert haben wollen.\n"
-"Unter Mandriva Linux werden installierte Server und Dienste automatisch "
-"beim\n"
+"!! Wenn ein Server-Paket angewählt wurde, entweder\n"
+"absichtlich oder als Paket einer ganzen Gruppe, \n"
+"werden Sie gefragt, ob Sie dieses wirklich installiert haben wollen.\n"
+"Unter Mageia werden installierte Dienste automatisch beim\n"
"Betriebssystemstart gestartet. Selbst wenn zum Zeitpunkt, als die\n"
"Distribution zusammengestellt wurde, keine Sicherheitslücken oder Fehler in\n"
"diesen Paketen bekannt waren, ist natürlich nicht auszuschließen, dass\n"
"später solche Fehler gefunden werden. Sollten Sie also nicht wissen, wovon\n"
"hier die Rede ist, wählen Sie sicherheitshalber lieber „%s“. Falls Sie mit\n"
-"„%s“ antworten, werden die Dienste und Server installiert und stehen Ihnen\n"
+"„%s“ antworten, werden die aufgelisteten Dienste installiert und stehen "
+"Ihnen\n"
"nach der Installation standardmäßig zur Verfügung. !!\n"
"\n"
-"Die Option „%s“ unterdrückt nur die Warnungen, die erscheinen, wenn das\n"
+"Die Option „%s“ unterdrückt die Warnungen, die erscheinen, wenn das\n"
"Installationsprogramm Pakete automatisch markiert, um Paketabhängigkeiten\n"
"aufzulösen, wenn Sie ein Paket auswählen. Einige Pakete hängen von der\n"
"Existenz anderer Pakete ab und die Installation eines Pakets mag die\n"
-"Installation eines anderen voraussetzen. Das Installprogramm ist in der\n"
-"Lage, diese Abhängigkeiten zu erkennen und zu erfüllen.\n"
+"Installation eines anderen voraussetzen. Das Installationsprogramm ist in "
+"der\n"
+"Lage, diese Abhängigkeiten zu erkennen um die Installation vollständig "
+"durchzuführen.\n"
"\n"
"Das kleine Diskettensymbol am unteren Rand der Liste ermöglicht es Ihnen,\n"
"die während einer vorangegangenen Installation gespeicherte Paketauswahl\n"
-"erneut zu verwenden. Durch Betätigen der Schaltfläche öffnen Sie einen\n"
+"erneut zu verwenden. Dies ist nützlich, wenn Sie eine eine größere Anzahl "
+"an\n"
+"Systemen zu installieren haben, welche identisch eingerichtet werden "
+"sollen.\n"
+"Durch Betätigen der Schaltfläche öffnen Sie einen\n"
"Dialog, der Sie auffordert, die Diskette einzulegen, die die Auswahl der\n"
"früheren Installation enthält. Um zu erfahren, wie Sie diese Diskette\n"
"erstellen, lesen Sie bitte den zweiten Tipp des vorangegangenen\n"
@@ -422,20 +435,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Automatische Abhängigkeiten"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"„%s“: Durch Anwahl der Schaltfläche „%s“ startet den Druckerassistenten.\n"
-"Weitere Informationen zu diesem Assistenten erhalten Sie im Drucker-Kapitel\n"
-"des „Starter Handbuch“. Das dort vorgestellte Programm entspricht dem\n"
-"während der Installation angebotenen."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -504,7 +504,12 @@ msgstr ""
"Internetverbindung. Mit dieser Option installieren Sie einen Time-Server,\n"
"der von weiteren Maschinen Ihres lokalen Netzwerks genutzt werden kann."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr "Die Hardware-Uhr ist auf GMZ gestellt"
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Automatische Zeit-Synchronisation (durch NTP)"
@@ -532,14 +537,12 @@ msgstr ""
"und ohne 3D-Beschleunigung, werden Sie gebeten, den zu wählen, der Ihren\n"
"Bedürfnissen am besten entspricht."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/de/drakx-chapter.xml
#: ../help.pm:234
#, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -593,65 +596,6 @@ msgid ""
"want to check \"%s\" if your machine is to act as a server, or if you were\n"
"not successful in getting the display configured."
msgstr ""
-"X (das X Window System) ist das Herz der grafischen Benutzeroberfläche von\n"
-"GNU/Linux. Es bildet die Grundlage für die Vielzahl grafischer\n"
-"Benutzerumgebungen, die Mandriva Linux Ihnen anbietet (wie etwa KDE, GNOME,\n"
-"AfterStep oder WindowMaker).\n"
-"\n"
-"Sie erhalten eine Liste möglicher Parameter, mit deren Hilfe Sie die\n"
-"Grafikausgabe ändern können:\n"
-"\n"
-"Grafikkarte\n"
-"\n"
-" DrakX erkennt normalerweise automatisch Ihre Grafikkarte und richtet sie\n"
-"entsprechend ein. Sollten dabei Probleme auftreten, können Sie in der hier\n"
-"aufgeführten Liste Ihr Modell auswählen.\n"
-"\n"
-" Falls für Ihre Karte verschiedene Server zur Verfügung stehen, etwa mit\n"
-"und ohne 3D-Beschleunigung, werden Sie gebeten, den zu wählen, der Ihren\n"
-"Bedürfnissen am besten entspricht.\n"
-"\n"
-"\n"
-"\n"
-"Monitor\n"
-"\n"
-" DrakX erkennt normalerweise automatisch Ihren Monitor. Sollten dabei\n"
-"Probleme auftreten, können Sie in der hier aufgeführten Liste Ihr Modell\n"
-"auswählen.\n"
-"\n"
-"\n"
-"\n"
-"Auflösung\n"
-"\n"
-" Sie können hier Auflösung und Farbtiefe für Ihre Hardware wählen.\n"
-"Entscheiden Sie sich, welche Variante Ihren Wünschen am ehesten entspricht\n"
-"(Sie können diese Angaben natürlich nach der Installation noch ändern).\n"
-"Anhand des abgebildeten Monitors können Sie sich einen sofortigen Eindruck\n"
-"bilden.\n"
-"\n"
-"\n"
-"\n"
-"Test\n"
-"\n"
-" Je nach Hardware kann es sein, dass dieser Eintrag nicht erscheint.\n"
-"\n"
-" DrakX versucht eine Testbild mit denen von Ihnen gewünschten\n"
-"Einstellungen zu öffnen. Falls Sie während des Tests einen Dialog sehen, in\n"
-"dem Sie gefragt werden, ob sie die getroffenen Einstellungen behalten\n"
-"wollen, antworten Sie mit „%s“, damit DrakX mit dem nächsten\n"
-"Installationsschritt fortfährt. Sollten Sie die Nachricht nicht sehen,\n"
-"bedeutet das, dass eine oder mehrere getroffene Einstellungen nicht korrekt\n"
-"sind. Nach 12 Sekunden sollten Sie wieder das Installationsmenü sehen. Sie\n"
-"können nun die Einstellungen ändern, bis Sie das Testbild sehen.\n"
-"\n"
-"\n"
-"\n"
-"Optionen\n"
-"\n"
-" Sie können direkt bei Betriebssystemstart die grafische Umgebung\n"
-"aktivieren. Durch Betätigen der Schaltfläche „%s“ wird in eine reine\n"
-"Textumgebung gestartet. Das ist sinnvoll für Server oder wenn Sie bei dem\n"
-"Versuch die grafische Umgebung zu konfigurieren erfolglos waren."
#: ../help.pm:291
#, c-format
@@ -713,44 +657,46 @@ msgstr ""
"Textumgebung gestartet. Das ist sinnvoll für Server oder wenn Sie bei dem\n"
"Versuch die grafische Umgebung zu konfigurieren erfolglos waren."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/de/drakx-chapter.xml
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -759,15 +705,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -780,76 +726,18 @@ msgid ""
"experience. For more instructions on how to use the DiskDrake utility,\n"
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
-"Sie müssen nun entscheiden, wo auf Ihrer Festplatte Ihr Mandriva Linux\n"
-"System installiert werden soll. Sofern alles leer ist bzw. ein\n"
-"Betriebssystem alles belegt, muss die Festplatte neu partitioniert werden.\n"
-"Prinzipiell besteht das Partitionieren der Festplatte darin, den\n"
-"Plattenplatz so aufzuteilen, dass Ihr Mandriva Linux darauf installiert\n"
-"werden kann.\n"
-"\n"
-"Da dieser Schritt normalerweise irreversibel ist und auch zu Datenverlusten\n"
-"führen kann, haben manche unerfahrenen Benutzer Hemmungen, diesen Schritt\n"
-"auszuführen. Glücklicherweise enthält DrakX einen Assistenten, der den\n"
-"Prozess sehr vereinfacht. Lesen Sie dennoch vor Beginn im Handbuch die\n"
-"entsprechenden Passagen und lassen Sie sich Zeit mit der Entscheidung.\n"
-"\n"
-"Abhängig vom aktuellen Zustand Ihrer Festplatte haben Sie verschiedene\n"
-"Alternativen:\n"
-"\n"
-" * „%s“: Dies führt einfach dazu, dass Ihre leere(n) Festplatte(n)\n"
-"automatisch partitioniert werden; Sie müssen sich also um nichts weiter\n"
-"kümmern.\n"
-"\n"
-" * „%s“: Der Assistent hat eine oder mehrere existierende Linux-Partitionen\n"
-"auf Ihrer Platte gefunden. Wählen Sie diese Schaltfläche, falls Sie sie\n"
-"behalten wollen. Sie werden dann gebeten, die Einhängpunkte der Partitionen\n"
-"anzugeben. Als Vorgabe erhalten Sie die Einhängpunkte der gefundenen\n"
-"Distribution, normalerweise ist es nicht nötig diese zu ändern.\n"
-"\n"
-" * „%s“: Falls der gesamte Plattenplatz aktuell für Microsoft Windows™\n"
-"verschwendet ist, müssen Sie für GNU/Linux Platz schaffen. Um dies zu\n"
-"erreichen, können Sie entweder Ihre Microsoft Windows™ Partition(en)\n"
-"samt Daten löschen (siehe „Komplette Platte löschen“) oder Ihre Microsoft\n"
-"Windows NTFS oder FAT Partition verkleinern. Letzteres geht ohne\n"
-"Datenverlust, vorausgesetzt Sie haben ihre Windows Partition(en) vorher\n"
-"defragmentiert. Dennoch sollten Sie vor diesem Schritt eine Sicherungskopie\n"
-"Ihrer Daten auf einem anderem Medium als der zu verändernden Festplatte\n"
-"vornehmen. Sie sollten diese Variante wählen, falls Sie beide\n"
-"Betriebssysteme (Microsoft Windows und Mandriva Linux) nebeneinander nutzen\n"
-"wollen.\n"
-"\n"
-" Bevor Sie sich für diese Variante entscheiden, sei hier noch einmal\n"
-"betont, dass das bedeutet, Sie haben weniger Platz für Microsoft Windows\n"
-"als momentan.\n"
-"\n"
-" * „%s“: Falls Sie alle Daten Ihrer Platte verlieren, und sie durch Ihr\n"
-"neues Mandriva Linux System ersetzen wollen, wählen Sie diese Schaltfläche.\n"
-"Beachten Sie, dass dieser Schritt nicht rückgängig gemacht werden kann.\n"
-"\n"
-" !! Wenn Sie diese Variante wählen, werden alle Ihre Daten auf der Platte\n"
-"gelöscht! !!\n"
-"\n"
-" * „%s“: Diese Option erscheint, wenn der gesamte Platz von Microsoft\n"
-"Windows eingenommen wird. Bei der Auswahl der Option wird einfach der\n"
-"gesamte Inhalt der Platte gelöscht und neu partitioniert.\n"
-"\n"
-" !! Wenn Sie diese Variante wählen, werden alle Ihre Daten auf der Platte\n"
-"gelöscht! !!\n"
-"\n"
-" * „%s“: Wenn Sie Ihre Festplatte selbst von Hand partitionieren wollen,\n"
-"dann können Sie diese Option wählen. Seien Sie bitte sehr sorgfältig, wenn\n"
-"Sie diese Lösung wählen, da Sie zwar alle möglichen Einstellungen\n"
-"vornehmen, aber gleichzeitig auch sehr leicht Daten verlieren können. Diese\n"
-"Option ist nur geeignet, wenn Sie wissen, was Sie tun. Um zu erfahren, wie\n"
-"Sie DiskDrake verwenden können, lesen Sie bitte das Kapitel „Ihre\n"
-"Partitionen verwalten“ im „Starter Handbuch“."
#: ../help.pm:377
#, c-format
msgid "Use existing partition"
msgstr "Verwende existierende Partition(en)"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr "Den freien Platz auf der Microsoft-Windows®-Partition nutzen"
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Komplette Platte löschen"
@@ -934,9 +822,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Erstellen einer Autoinstallations-Diskette"
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/de/drakx-chapter.xml
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr "Erneut durchführen"
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr "Automatisch"
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr "Paketauswahl speichern"
+
+#: ../help.pm:408
#, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -956,39 +857,39 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
msgstr ""
-"Sie erhalten hier die Möglichkeit bereits existierende Partitionen neu zu\n"
-"formatieren, um die darauf vorhandenen Daten zu löschen. Markieren Sie\n"
-"diese einfach ebenfalls in der Liste.\n"
+"Wenn Sie auswählen bereits existierende GNU/Linux Partitionen zu verwenden,\n"
+"möchten Sie diese möglicherweise neu formatieren, um die darauf "
+"vorhandenen \n"
+"Daten zu löschen. Markieren Sie diese Partitionen einfach ebenfalls in der "
+"Liste.\n"
"\n"
"Es sei angemerkt, dass nicht alle Partitionen neu formatiert werden müssen.\n"
"Sie sollten normalerweise nur die Partitionen neu formatieren, die\n"
"Systemdateien, jedoch keine Privatdaten enthalten (etwa „/“, „/usr“ oder\n"
-"„/var“). Partitionen wie etwa „/home“ sollten Sie normalerweise nicht neu\n"
+"„/var“). Partitionen wie etwa „/home“ müssen Sie normalerweise nicht neu\n"
"formatieren.\n"
"\n"
"Seien Sie sorgfältig bei der Auswahl der Partitionen. Nach dem Formatieren\n"
"sind alle zuvor darauf existierenden Daten unwiederbringlich verloren.\n"
"\n"
-"Wenn Sie alle Einstellungen vorgenommen haben, betätigen Sie die\n"
-"Schaltfläche „%s“, um mit dem Formatieren der Partitionen zu beginnen.\n"
+"Betätigen Sie die Schaltfläche „%s“, um mit dem Formatieren der \n"
+"Partitionen zu beginnen.\n"
"\n"
"Betätigen Sie „%s“, wenn Sie eine andere Partition für Ihr neues\n"
-"Mandriva Linux vorgesehen haben.\n"
+"Mageia Betriebssystem vorgesehen haben.\n"
"\n"
-"Betätigen Sie die Schaltfläche „%s“, falls Sie Partitionen auf defekte\n"
-"Blöcke untersuchen wollen."
+"Betätigen Sie „%s“, falls Sie Partitionen auswählen möchten, um diese auf \n"
+"defekte Blöcke zu untersuchen."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/de/drakx-chapter.xml
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -1000,25 +901,24 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Es ist sehr wahrscheinlich, dass zum Zeitpunkt Ihrer Mandriva Linux\n"
-"Installation bereits einige Pakete aktualisiert wurden, etwa da noch Fehler\n"
-"entdeckt und beseitigt wurden oder da in Paketen Sicherheitslücken entdeckt\n"
-"wurden, für die bereits Lösungen existieren. Um von diesen aktualisierten\n"
-"Paketen Gebrauch zu machen, wird Ihnen nun angeboten, diese aus dem\n"
-"Internet nachzuladen. Betätigen Sie die Schaltfläche „%s“, wenn Sie einen\n"
-"Internetzugang haben, um die Pakete zu installieren, andernfalls betätigen\n"
-"Sie die Schaltfläche „%s“. Sie können diese Pakete natürlich auch jederzeit\n"
-"nach der Installation noch installieren.\n"
+"Es ist sehr wahrscheinlich, dass zum Zeitpunkt Ihrer Mageia\n"
+"Installation bereits einige Pakete aktualisiert wurden, etwa weil Fehler "
+"beseitigt \n"
+"oder Sicherheitslücken behoben wurden.\n"
+"Um von diesen aktualisierten Paketen Gebrauch zu machen, \n"
+"wird Ihnen nun angeboten, diese aus dem Internet nachzuladen. \n"
+"Betätigen Sie die Schaltfläche „%s“, wenn Sie einen\n"
+"Internetzugang haben, andernfalls betätigen Sie die Schaltfläche „%s“ falls "
+"Sie\n"
+"diese später installieren möchten.\n"
"\n"
"Betätigen der Schaltfläche „%s“ zeigt Ihnen eine Liste von Servern, von\n"
"denen Sie die Aktualisierungen herunterladen können. Wählen Sie einen in\n"
"Ihrer Nähe. Sie erhalten dann einen Paketauswahldialog: Kontrollieren Sie\n"
"die Auswahl und bestätigen Sie diese durch Betätigen von „%s“. Die Pakete\n"
"werden nun angefordert und installiert. Sollten Sie das nicht wünschen,\n"
-"betätigen Sie einfach die Schaltfläche „%s“."
+"betätigen Sie die Schaltfläche „%s“."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/de/drakx-chapter.xml
#: ../help.pm:450
#, c-format
msgid ""
@@ -1029,52 +929,54 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
"security. Security messages will be sent to that address."
msgstr ""
"Nun ist es an der Zeit, mittels DrakX die gewünschte Sicherheitsebene für\n"
-"Ihr System festzulegen. Als Faustregel sollte hier dienen: Je zugänglicher\n"
-"die Maschine ist und je kritischer die auf ihr gesicherten Daten sind,\n"
-"desto höher sollte die Sicherheitsebene sein. Andererseits geht die\n"
+"Ihr System festzulegen. Als Faustregel sollte hier dienen: Je kritischer die "
+"auf ihr gesicherten Daten sind oder wenn diese direkt mit dem Internet "
+"verbunden ist, desto höher sollte die Sicherheitsebene sein. Andererseits "
+"geht die\n"
"gewonnene Sicherheit zulasten der Benutzerfreundlichkeit und Einfachheit.\n"
"\n"
"Sollten Sie sich an dieser Stelle nicht sicher sein, so behalten Sie die\n"
"Standardeinstellung bei. Sie können die Ebene später noch mittels draksec\n"
-"im Mandriva Linux Control Center anpassen.\n"
+"im Mageia Kontrollzentrum anpassen.\n"
"\n"
"Das Feld „%s“ dient dazu, dem System mitzuteilen, wer für die Sicherheit\n"
-"dieses Rechners verantwortlich ist. An dieses Kennzeichen/diese E-Mail\n"
-"Adresse werden sicherheitsrelevante Informationen per E-Mail versandt."
+"dieses Rechners verantwortlich ist. An die dort angegebene E-Mail Adresse "
+"werden sicherheitsrelevante Informationen versandt."
#: ../help.pm:461
#, c-format
msgid "Security Administrator"
msgstr "Sicherheitsadministrator:"
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/de/drakx-chapter.xml
#: ../help.pm:464
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1090,21 +992,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1121,139 +1025,87 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-"Sie müssen nun entscheiden, auf welche(n) Partition(en) Ihr neues Mandriva\n"
-"Linux System installiert werden soll. Falls bereits Partitionen existieren\n"
-"(etwa von einer früheren Installation von GNU/Linux oder durch das Erzeugen\n"
-"mit einem anderen Partitionierungswerkzeug), können Sie diese verwenden.\n"
-"Anderenfalls müssen Sie Partitionen definieren.\n"
-"\n"
-"Um Partitionen zu erzeugen müssen Sie erst eine Festplatte wählen. Sie\n"
-"können die Platte wählen in dem Sie „hda“ für die erste IDE-Platte wählen,\n"
-"„sda“ für die erste SCSI-Platte, usw.\n"
-"\n"
-"Um die gewählte Platte zu partitionieren stehen folgende Möglichkeiten zur\n"
-"Verfügung:\n"
-"\n"
-" * „%s“: Betätigen dieser Schaltfläche löscht alle Partitionen auf der\n"
-"markierten Festplatte.\n"
-"\n"
-" * „%s“: Dieser Punkt aktiviert die automatische ext3- und\n"
-"Swap-Partitionen-Erstellung im ungenutzten Bereich Ihrer Festplatte.\n"
-"\n"
-"„%s“: bietet Zugriff auf weitere Möglichkeiten:\n"
-"\n"
-" * „%s“: Sie können hiermit Ihre aktuelle Partitionstabelle auf Diskette\n"
-"speichern.\n"
-"\n"
-" * „%s“: Mit dieser Schaltfläche können Sie eine vorher auf Diskette\n"
-"gesicherte Partitionstabelle wieder herstellen.\n"
-"\n"
-" * „%s“: Sollte Ihre Partitionstabelle zerstört worden sein, können Sie\n"
-"versuchen, mit dieser Schaltfläche eine Restaurierung vorzunehmen. Seien\n"
-"Sie vorsichtig! Es ist nicht unwahrscheinlich, dass dieser Versuch fehl\n"
-"schlägt.\n"
-"\n"
-" * „%s“: Alle Änderungen verwerfen und mit der ursprünglichen\n"
-"Partitionstabelle neu beginnen.\n"
-"\n"
-" * „%s“: Entfernen dieser Markierung führt dazu, dass die Anwender\n"
-"hinterher die Wechselmedien manuell ein- und aushängen müssen.\n"
-"\n"
-" * „%s“: Falls Sie keine Ahnung haben wie Sie die Festplatte partitionieren\n"
-"sollen, wählen Sie diese Schaltfläche. Sie überlassen damit die gesamte\n"
-"Arbeit unserem Assistenten, der mittels „Abra Kadabra“™ Ihre Platte\n"
-"partitioniert.\n"
-"\n"
-" * „%s“: Mit dieser Schaltfläche können Sie alle Einstellungen rückgängig\n"
-"machen.\n"
-"\n"
-" * „%s“: Anbieten bzw. Maskieren von Zusatzmöglichkeiten.\n"
-"\n"
-" * „%s“: Nachdem Sie das Partitionieren Ihrer Festplatte beendet haben,\n"
-"aktivieren Sie diese Schaltfläche, um Ihre Änderungen zu speichern.\n"
-"\n"
-"Wenn Sie die Größe einer Partition festlegen wollen, können Sie die\n"
-"Feineinstellungen mit den Rechts- / Links-Pfeiltasten Ihrer Tastatur\n"
-"vornehmen.\n"
-"\n"
-"Information: Sie können alle Einstellungen per Tastatur vornehmen. Mittels\n"
-"[Tab] und den Hoch-/Runter-Pfeiltasten können Sie sich bewegen.\n"
-"\n"
-"Wenn eine Partition ausgewählt ist, können Sie mittels:\n"
-"\n"
-" * Strg-C - eine neue Partition erstellen (wenn Sie auf einer leeren\n"
-"Partition sind)\n"
-"\n"
-" * Strg-D - die Partition löschen\n"
-"\n"
-" * Strg-M - den Einhängpunkt festlegen.\n"
-"\n"
-"Um mehr Informationen über die verschiedenen Dateisystemtypen zu erhalten,\n"
-"lesen Sie bitte das Kapitel ext2FS in der „Referenz“.\n"
-"\n"
-"Falls Sie die Installation auf einem PPC-Rechner vornehmen, sollten Sie\n"
-"eine mindestens 1MB, große HFS Start-Partition für den\n"
-"Betriebssystemstarter yaboot erstellen. Wenn Sie diese Partition etwas\n"
-"größer dimensionieren, etwa 50MB, haben Sie einen geeigneten Platz, um\n"
-"einen Rettungskern samt RamDisk abzulegen, um in Notfällen starten zu\n"
-"können."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr "Partitionstabelle speichern"
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr "Partitionstabelle wiederherstellen"
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr "Partitionstabelle retten"
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Wechselmedien automatisch einhängen"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr "Assistent"
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr "Rückgängig machen"
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "In den Normal-Modus wechseln"
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/de/drakx-chapter.xml
#: ../help.pm:536
#, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
-"Es wurde mehr als eine Windows-Partition gefunden. Wählen Sie bitte, welche\n"
-"Sie verkleinern wollen, um Platz für Ihr neues Mandriva Linux zu schaffen.\n"
+"Es wurde mehr als eine Windows-Partition auf Ihrem Laufwerk gefunden.\n"
+"Wählen Sie bitte, welche Sie verkleinern wollen, um Platz für Ihr neues "
+"Mageia Betriebssystem zu schaffen.\n"
"\n"
"Die Partitionen werden folgendermaßen aufgelistet: „Linux-Name“,\n"
"„Windows-Name“, „Kapazität“.\n"
@@ -1261,7 +1113,7 @@ msgstr ""
"„Linux-Name“ hat folgende Struktur: „Festplattentyp“, „Festplattennummer“,\n"
"„Partitionsnummer“ (etwa „hda1“).\n"
"\n"
-"„Festplattentyp“ ist „hd“, falls Ihre Platte eine IDE/ATAPI-Platte ist, und\n"
+"„Festplattentyp“ ist „hd“, falls Ihre Platte eine IDE-Platte ist, und\n"
"„sd“, wenn es sich um eine SCSI-Platte handelt.\n"
"\n"
"„Festplattennummer“ ist immer der Buchstabe hinter dem Festplattentyp. Bei\n"
@@ -1275,11 +1127,12 @@ msgstr ""
"\n"
" * „d“ ist „Slave-Platte am sekundären IDE-Controller“;\n"
"\n"
-"Bei SCSI-Platten steht „a“ für „niedrigste SCSI-ID“, „b“ für\n"
-"„zweitniedrigste SCSI-ID“, etc.\n"
+"Bei SCSI-Platten steht „a“ für die „niedrigste SCSI-ID“, „b“ für\n"
+"die „zweitniedrigste SCSI-ID“, etc.\n"
"\n"
-"„Windows-Name“ ist der Buchstabe, den die Partition (vermutlich) unter\n"
-"Windows erhalten würde (die erste Partition der ersten Platte heißt „C:“)."
+"„Windows-Name“ ist der Buchstabe, den die Partition unter\n"
+"Windows erhalten würde (das erste Laufwerk oder die erste Partition heißt "
+"„C:“)."
#: ../help.pm:567
#, c-format
@@ -1294,8 +1147,6 @@ msgstr ""
"„%s“ und wählen Sie den richtigen. Ist Ihr Staat nicht in der Liste, können\n"
"Sie über die Schaltfläche „%s“ eine vollständigere Liste erzwingen."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/de/drakx-chapter.xml
#: ../help.pm:572
#, c-format
msgid ""
@@ -1303,45 +1154,45 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Dieser Schritt wird nur aufgerufen, wenn mindestens eine GNU/Linux\n"
"Partition auf Ihren Festplatten gefunden wird.\n"
"\n"
"DrakX fragt Sie nun nach der gewünschten Installationsart. Sie haben die\n"
-"Wahl zwischen einer Aktualisierung einer bereits vorhandenen\n"
-"Mandriva Linux-Version oder einer kompletten Neuinstallation:\n"
+"Wahl zwischen einer kompletten Neuinstallation oder der Aktualisierung einer "
+"bereits vorhandenen Mageia-Version :\n"
"\n"
-" * „%s“: Entfernt komplett ältere Versionen von Mandriva Linux, die noch\n"
-"installiert sind - um genau zu sein, können Sie je nach aktuellem Inhalt\n"
-"Ihrer Platte auch einige ältere Linux- oder anderweitige Partitionen\n"
-"unangetastet behalten. Diese Installationsart ist gut, wenn Sie die\n"
+" * „%s“: Entfernt vollständig ältere Versionen, die noch\n"
+"installiert sind. Abhängig vom Partitionsschema Ihres Laufwerks können Sie "
+"das Überschreiben einiger Ihrer bestehenden Dateien (vor allem der \"home\" "
+"Verzeichnisse) verhindern. Diese Installationsart ist gut, wenn Sie die\n"
"Partitionseinteilung auf Ihrer Festplatte sowieso ändern oder das benutzte\n"
-"Dateisystem austauschen wollen\n"
+"Dateisystem austauschen wollen.\n"
"\n"
-" * „%s“: Mit dieser Variante können Sie eine existierende Mandriva Linux\n"
+" * „%s“: Mit dieser Variante können Sie eine existierende Mageia\n"
"Version aktualisieren. Die Partitionstabellen sowie die persönlichen\n"
"Verzeichnisse der Anwender bleiben erhalten. Alle anderen\n"
"Installationsschritte werden wie bei einer Installation ausgeführt.\n"
"\n"
-"Aktualisierungen von Mandriva Linux „8.1“ oder neueren Systemen sollten\n"
-"problemlos funktionieren. Ältere Versionen von Mandriva Linux sollten Sie\n"
+"Aktualisierungen von Mageia „8.1“ oder neueren Systemen sollten\n"
+"problemlos funktionieren. Ältere Versionen von Mageia sollten Sie\n"
"nicht zu aktualisieren versuchen."
#: ../help.pm:594
@@ -1382,8 +1233,6 @@ msgstr ""
"Tastenkombination Sie zwischen dem von Ihnen gewählten und dem lateinischen\n"
"Layout umschalten wollen."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/de/drakx-chapter.xml
#: ../help.pm:612
#, c-format
msgid ""
@@ -1401,8 +1250,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1430,44 +1278,49 @@ msgid ""
msgstr ""
"Als ersten Schritt wählen Sie bitte die gewünschte Sprache.\n"
"\n"
-"Wählen Sie Ihre bevorzugte Sprache für den Installationsvorgang und\n"
-"Systemlaufzeit. Wählen Sie zuerst die Region, in der Sie sich befinden,\n"
+"Diese Auswahl betrifft die Sprache des Installationsvorgangs, der "
+"Dokumentetion und das gesamte System. Wählen Sie zuerst die Region, in der "
+"Sie sich befinden,\n"
"anschließend die Sprache, die Sie sprechen.\n"
"\n"
-"Durch Betätigen der Schaltfläche „%s“ erhalten Sie die Möglichkeit, weitere\n"
-"Sprachen auf Ihrem Rechner zu installieren, um diese später verwenden zu\n"
-"können. Wollen Sie etwa Spaniern muttersprachlichen Zugang zu Ihrem System\n"
+"Durch Betätigen der Schaltfläche „%s“ erhalten Sie die Möglichkeit, weitere "
+"Sprachen auszuwählen, welche auf Ihrem System für die Dokumentationen und "
+"Anwendungen installiert werden sollen. Wollen Sie etwa Spaniern "
+"muttersprachlichen Zugang zu Ihrem System\n"
"erlauben, wählen Sie Deutsch als Hauptsprache in der Liste und im\n"
"Fortgeschrittenen-Bereich „%s“.\n"
"\n"
"Zur UTF-8 (Unicode) Unterstützung: Unicode ist ein Zeichenkodierung, die\n"
"die existierenden Kodierungen ablösen soll und die Zeichen aller\n"
"existierender Sprachen beinhalten. Komplette Unterstützung in GNU/Linux ist\n"
-"leider immer noch nicht gegeben. Daher verwendet Mandriva Linux diese\n"
+"leider immer noch nicht gegeben. Daher verwendet Mageia diese\n"
"Kodierung nur auf Wunsch des Anwenders:\n"
"\n"
-" * Falls Sie eine Sprache nutzen, die eine gut unterstütztes Kodierung\n"
-"verwendet (Sprachen mit Lateinischen Zeichen, Russisch, Griechisch,\n"
-"Japanisch, Chinesisch, Koreanisch, Thailändisch), wird standardmäßig das\n"
+" * Falls Sie eine Sprache nutzen, die eine gut unterstützte Kodierung\n"
+"verwendet (Sprachen mit lateinischen Zeichen - latin1, Russisch, Japanisch, "
+"Chinesisch, Koreanisch, Thailändisch, Griechisch, Türkisch, die meisten "
+"ISO-8859-2 Sprachen), wird standardmäßig die\n"
"klassische Kodierung beibehalten;\n"
"\n"
" * Alle anderen Sprachen verwenden standardmäßig Unicode;\n"
"\n"
-" * Fall Sie zwei oder mehr Sprachen verwenden wollen, die unterschiedliche\n"
-"klassische Kodierungen verwenden, wird ebenfalls Unicode verwendet;\n"
+" * Falls Sie zwei oder mehr Sprachen verwenden wollen, die unterschiedliche\n"
+"klassische Kodierungen verwenden, wird ebenfalls Unicode für das gesamte "
+"System verwendet;\n"
"\n"
" * Schlussendlich kann Unicode vom Anwender auch für Sprachen mit\n"
-"klassischer Kodierung ausgewählt werden, indem er den Punkt „%s“ markiert.\n"
+"klassischer Kodierung festgelegt werden, indem er den Punkt „%s“ markiert.\n"
"\n"
-"Sie sind nicht auf eine weitere Sprache begrenzt. Sie können so viele\n"
-"auswählen, wie Sie wollen, ja sogar alle, indem Sie die Schaltfläche „%s“\n"
+"Beachten Sie, dass Sie nicht auf eine weitere Sprache begrenzt sind. Sie "
+"können so viele zusätzliche Sprachen auswählen, wie Sie wollen oder sogar "
+"alle Sprachen indem Sie die Schaltfläche „%s“\n"
"verwenden. Das Auswählen einer Sprache beeinflusst die installierten\n"
"Übersetzungen der Programme, Schriften, Rechtschreibkorrekturen, etc.\n"
"\n"
"Um die Spracheinstellungen des ganzen Systems zwischen verschiedenen\n"
"Sprachen umzuschalten, starten Sie einfach „localedrake“ unter dem\n"
-"privilegierten Kennzeichen „root“. Wollen Sie die Einstellungen nur für ein\n"
-"Kennzeichen ändern starten Sie denselben Befehl mit eben diesem\n"
+"privilegierten Kennzeichen „root“. Wollen Sie die Einstellungen nur für "
+"einen Zugang ändern starten Sie denselben Befehl mit eben diesem\n"
"Kennzeichen."
#: ../help.pm:650
@@ -1475,9 +1328,12 @@ msgstr ""
msgid "Espanol"
msgstr "Spanisch"
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/de/drakx-chapter.xml
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr "Standardmäßig Unicode benutzen"
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1555,8 +1411,6 @@ msgstr "mit Mausrad Emulation"
msgid "Universal | Any PS/2 & USB mice"
msgstr "Universal | Alle PS/2 & USB-Mäuse"
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/de/drakx-chapter.xml
#: ../help.pm:687
#, c-format
msgid ""
@@ -1566,96 +1420,7 @@ msgstr ""
"Wählen Sie bitte den richtigen Anschluss. So ist etwa der unter Windows\n"
"„COM1“ genannte Anschluss in GNU/Linux unter „ttyS0“ erreichbar."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/de/drakx-chapter.xml
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Dies ist der wichtigste Punkt in der Absicherung Ihres neuen\n"
-"GNU/Linux-Systems: Sie müssen das Passwort für „root“ eingeben. „root“ ist\n"
-"der Systemadministrator. Er ist der einzige der berechtigt ist, neue\n"
-"Software zu installieren, Systemdateien zu ändern oder neue\n"
-"Benutzer anzulegen. Kurz gesagt: „root“ darf alles! Daher müssen\n"
-"Sie auch ein Passwort auswählen, was nicht leicht zu erraten ist; DrakX\n"
-"teilt Ihnen mit, wenn das Passwort zu einfach ist. Sie sehen, dass es auch\n"
-"möglich ist, kein Passwort zu vergeben. Wir raten Ihnen jedoch dringend\n"
-"davon ab! GNU/Linux ist genauso anfällig für Fehler wie jedes andere \n"
-"Betriebssystem. »root« hat keine Beschränkungen. Er könnte beispielsweise\n"
-"unbeabsichtigterweise alle Daten auf allen Partitionen löschen. Also sollte\n"
-"es schwierig gemacht werden, „root“ zu werden!\n"
-"\n"
-"Das Passwort sollte eine Mischung aus alphanumerischen Zeichen sein und\n"
-"mindestens acht Zeichen lang. Es sollte niemals irgendwo aufgeschrieben\n"
-"werden.\n"
-"\n"
-"Machen Sie das Passwort aber nicht zu lang oder zu kompliziert: Sie sollten\n"
-"es sich ohne großen Aufwand merken können.\n"
-"\n"
-"Bei der Eingabe des Passwortes wird nichts angezeigt. Um ein Verschreiben\n"
-"bei dieser „Blindeingabe“ zu vermeiden müssen Sie das Passwort zweimal\n"
-"eingeben - ein Tippfehler beim ersten Versuch könnte sonst zu einem Problem\n"
-"werden, da Sie anschließend das „falsche“ Passwort bei der Verbindung mit\n"
-"dem System eingeben müssten.\n"
-"\n"
-"Wenn Sie wollen, dass der Zugang zu diesem Rechner über einen\n"
-"Authentifizierungsserver verwaltet wird, betätigen Sie die Schaltfläche\n"
-"„%s“.\n"
-"\n"
-"Falls in Ihrem Netzwerk LDAP, NIS oder PDC zur Authentifizierung verwendet\n"
-"wird, wählen Sie bitte den entsprechenden Menüpunkt für „%s“. Falls Sie "
-"nicht\n"
-"wissen, welches Protokoll Sie verwenden sollen, fragen Sie Ihren\n"
-"Netzwerkadministrator.\n"
-"\n"
-"Wenn Sie Probleme haben, sich Passwörter zu merken, oder Ihr Computer nie\n"
-"mit dem Internet verbunden wird und Sie allen Benutzern Ihres Computers\n"
-"absolut vertrauen, können Sie die Option „%s“ wählen."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "Authentifizierung"
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/de/drakx-chapter.xml
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1669,7 +1434,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1695,13 +1460,11 @@ msgstr ""
"kein Starter installiert. Verwenden Sie diese Möglichkeit nur, wenn Sie\n"
"genau wissen was Sie tun."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/de/drakx-chapter.xml
#: ../help.pm:745
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1722,12 +1485,12 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Hier können Sie das Drucksystem für Ihren Rechner wählen. Andere\n"
-"Betriebssysteme bieten Ihnen nur eines, bei Mandriva Linux können Sie\n"
-"zwischen zwei verschiedenen wählen. jedes dieser Systeme ist für eine\n"
+"Betriebssysteme bieten Ihnen nur eines, bei Mageia können Sie\n"
+"zwischen zwei verschiedenen wählen. Jedes dieser Systeme ist für eine\n"
"bestimmte Konfiguration des Systems am besten geeignet.\n"
"\n"
" * „%s“ -- Es steht für „print, do not queue“ (engl. für „Drucken ohne\n"
@@ -1743,14 +1506,14 @@ msgstr ""
"Drucker drucken, wie auf einem Drucker, der an einem Server auf der anderen\n"
"Seite der Welt hängt. Es ist einfach zu bedienen und kann sowohl als Server\n"
"als auch als Klient für das alte „lpd“-Drucksystem verwendet werden - Es\n"
-"ist somit rückwärtskompatibel. Es ist sehr mächtig, in seiner\n"
+"ist somit rückwärtskompatibel zu älteren Betriebssystemen welche "
+"möglicherweise Druckerdienste benötigen. Es ist sehr mächtig, in seiner\n"
"Grundeinstellung verhält es sich jedoch genau wie „pdq“. Wenn Sie einen\n"
"„lpd“ Server benötigen, müssen Sie einfach nur den „cups-lpd“ Dämon\n"
"starten. „%s“ bietet grafische Konfigurations- und Druckmenüs.\n"
"\n"
"Sie können diese Wahl später immer wieder ändern, indem Sie PrinterDrake\n"
-"aus dem Mandriva Linux Control Center starten und dort die Schaltfläche „%"
-"s“\n"
+"aus dem Mageia Kontrollzentrum starten und dort die Schaltfläche „%s“\n"
"betätigen."
#: ../help.pm:768
@@ -1758,13 +1521,16 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr "CUPS"
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Expertenmodus"
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/de/drakx-chapter.xml
#: ../help.pm:771
#, c-format
msgid ""
@@ -1773,7 +1539,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1805,8 +1571,6 @@ msgstr ""
"Adapter erhalten haben oder von den Web-Seiten des Hardware-Anbieters\n"
"(sofern Sie einen WWW-Zugang haben)."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/de/drakx-chapter.xml
#: ../help.pm:789
#, c-format
msgid ""
@@ -1818,8 +1582,6 @@ msgstr ""
"angezeigt. Sollte die von DrakX getroffene Auswahl nicht korrekt sein,\n"
"betätigen Sie einfach die Schaltfläche, um sie zu korrigieren."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/de/drakx-chapter.xml
#: ../help.pm:794
#, c-format
msgid ""
@@ -1844,11 +1606,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1866,8 +1623,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1884,84 +1640,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-"Nun bekommen Sie eine Zusammenfassung verschiedener Informationen Ihres\n"
-"Systems. Je nach vorhandener Hardware sehen Sie hier (oder eben nicht) die\n"
-"folgende Einträge. Jeder Eintrag besteht aus einem konfigurierbaren Gerät\n"
-"gefolgt vom dessen aktuellen Zustand. Durch Betätigen der Schaltfläche „%s“\n"
-"können Sie diesen ändern.\n"
-"\n"
-" * „%s“: Kontrollieren Sie die aktuelle Tastaturvorgabe und wählen Sie die\n"
-"Schaltfläche, falls Sie die Vorgabe ändern wollen.\n"
-"\n"
-" * „%s“: Kontrollieren Sie, ob die Auswahl des Staates, in dem Sie sich\n"
-"befinden korrekt ist. Falls nicht, betätigen Sie bitte die Schaltfläche\n"
-"„%s“ und wählen Sie den richtigen. Ist Ihr Staat nicht in der Liste, können\n"
-"Sie über die Schaltfläche „%s“ eine vollständigere Liste erzwingen.\n"
-"\n"
-" * „%s“: DrakX versucht die Zeitzone anhand des gewählten Staates zu\n"
-"setzen. Sollte diese Auswahl nicht korrekt sein können Sie durch Betätige\n"
-"der Schaltfläche „%s“ Ihre lokale Zeitzone setzen.\n"
-"\n"
-" * „%s“: Kontrollieren Sie die konfigurierte Maus und betätigen Sie, falls\n"
-"notwendig, die Schaltfläche.\n"
-"\n"
-" * „%s“: Durch Anwahl der Schaltfläche „%s“ startet den Druckerassistenten.\n"
-"Weitere Informationen zu diesem Assistenten erhalten Sie im Drucker-Kapitel\n"
-"des „Starter Handbuch“. Das dort vorgestellte Programm entspricht dem\n"
-"während der Installation angebotenen.\n"
-"\n"
-" * „%s“: Falls eine Soundkarte in Ihrem Rechner gefunden wurde, wird sie\n"
-"hier angezeigt. Sollte die von DrakX getroffene Auswahl nicht korrekt sein,\n"
-"betätigen Sie einfach die Schaltfläche, um sie zu korrigieren.\n"
-"\n"
-" * „%s“: Falls eine TV-Karte in Ihrem Rechner gefunden wurde, wird sie hier\n"
-"angezeigt. Falls Sie eine TV-Karte besitzen, die hier nicht richtig erkannt\n"
-"wurde, können Sie versuchen, diese manuell einzurichten. Betätigen Sie\n"
-"einfach die Schaltfläche „%s“.\n"
-"\n"
-" * „%s“: Falls eine ISDN Karte in Ihrem Rechner gefunden wurde, wird sie\n"
-"hier angezeigt. Durch Anwahl der Schaltfläche „%s“ können Sie die Parameter\n"
-"ändern.\n"
-"\n"
-" * „%s“: DrakX richtet Ihre Grafikumgebung normalerweise in der Auflösung\n"
-"„800×600“ bzw. „1024×768“ ein. Sollte Ihnen das nicht zusagen, können Sie\n"
-"es durch betätigen der Schaltfläche „%s“ ändern.\n"
-"\n"
-" * „%s“: Falls Sie Ihren Internetzugang oder Ihr lokales Netzwerk nun\n"
-"einrichten wollen, können Sie das hier tun. Lesen Sie sich dazu die\n"
-"gedruckte Dokumentation durch oder benutzen Sie das Mandriva Linux Control\n"
-"Center nachdem die Installation beendet ist.\n"
-"\n"
-" * „%s“: Hier können Sie HTTP- und FTP-Proxyadressen eintragen falls Ihre\n"
-"Maschine die Verbindung über einen Proxyserver abwickelt.\n"
-"\n"
-" * „%s“: Dieser Eintrag ermöglicht es Ihnen, die Sicherheitsebene Ihres\n"
-"Systems zu ändern, die Sie in einem früheren Installationsschritt ()\n"
-"gewählt haben.\n"
-"\n"
-" * „%s“: Falls Sie Ihren Rechner mit dem Internet verbinden wollen, ist es\n"
-"sinnvoll sich vor ungebetenen Eindringlingen durch Einrichten einer\n"
-"Firewall zu schützen. Weitere Informationen erhalten Sie im „Starter\n"
-"Handbuch“.\n"
-"\n"
-" * „%s“: Falls Sie die Konfiguration Ihres Betriebssystemstarters\n"
-"(„Bootloader“) ändern wollen, wählen Sie diese Schaltfläche. Es sei\n"
-"angemerkt, dass dieser Punkt sich an fortgeschrittenere Nutzer richtet.\n"
-"Hilfe finden Sie in der gedruckten Dokumentation oder im integrierten\n"
-"Hilfeteil des Mandriva Linux Control Center.\n"
-"\n"
-" * „%s“: Sie können hier die Dienste wählen, die ab dem Start von\n"
-"Mandriva Linux zur Verfügung gestellt werden sollen. Wollen Sie den Rechner\n"
-"als Server verwenden, sollten Sie unbedingt einen Blick auf diese Liste\n"
-"werfen."
-#: ../help.pm:858
+#: ../help.pm:809
+#, c-format
+msgid "TV card"
+msgstr "TV-Karte"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN-Karte"
@@ -1971,31 +1662,29 @@ msgstr "ISDN-Karte"
msgid "Graphical Interface"
msgstr "Grafikumgebung"
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/de/drakx-chapter.xml
#: ../help.pm:861
#, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"Bitte wählen Sie die Festplatte, die Sie löschen wollen, um Ihr neues\n"
-"Mandriva Linux zu installieren. Bedenken Sie dabei, dass alle Daten auf\n"
+"Mageia zu installieren. Bedenken Sie dabei, dass alle Daten auf\n"
"dieser Platte nach diesem Schritt unwiederbringlich verloren sind!"
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/de/drakx-chapter.xml
#: ../help.pm:866
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Betätigen Sie die Schaltfläche „%s“, wenn Sie alle Partitionen und die\n"
"darauf befindlichen Daten löschen wollen. Bedenken Sie, dass Sie nach\n"
@@ -2013,4 +1702,3 @@ msgstr "Weiter ->"
#, c-format
msgid "<- Previous"
msgstr "<- Zurück"
-
diff --git a/perl-install/install/help/po/el.po b/perl-install/install/help/po/el.po
index 7269f5adf..7e352e7a6 100644
--- a/perl-install/install/help/po/el.po
+++ b/perl-install/install/help/po/el.po
@@ -1,38 +1,43 @@
-# translation of DrakX-el.po to Greek
-# Greek translation for drakfloppy.
-# Copyright (C) 2001,2003 Free Software Foundation, Inc.
-# Thanos Kyritsis <djart@hellug.gr>, 2001.
-# Νίκος Νύκταρης (Nick Niktaris) <niktarin@yahoo.com>, 2003
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
+# Translators:
+# Yuri Chornoivan <yurchor@ukr.net>, 2024
+# Dimitrios Glentadakis <dglent@free.fr>, 2025
+#
+#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: DrakX-el\n"
+"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
-"PO-Revision-Date: 2004-09-15 13:28+0200\n"
-"Last-Translator: Νίκος Νύκταρης (Nick Niktaris) <niktarin@yahoo.com>\n"
-"Language-Team: Greek <nls@tux.hellug.gr>\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
+"PO-Revision-Date: 2024-09-04 17:33+0000\n"
+"Last-Translator: Dimitrios Glentadakis <dglent@free.fr>, 2025\n"
+"Language-Team: Greek (https://app.transifex.com/MageiaLinux/teams/9361/el/)\n"
+"Language: el\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.0.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../help.pm:14
-#, fuzzy, c-format
+#, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
-"\n"
-" Linux\n"
-" Αποδοχή\n"
-"."
+"Πριν συνεχίσετε θα πρέπει να διαβάσετε προσεκτικά τους όρους της άδειας "
+"χρήσης.\n"
+"Καλύπτουν ολόκληρη την διανομή Mageia. Αν συμφωνείτε, επιλέξτε το πλαίσιο "
+"\"%s\" , \n"
+"διαφορετικά, πιέζοντας το κουμπί \"%s\" θα γίνει επανεκκίνηση του υπολογιστή."
#: ../help.pm:20
-#, fuzzy, c-format
+#, c-format
msgid ""
"GNU/Linux is a multi-user system which means each user can have his or her\n"
"own preferences, own files and so on. But unlike \"root\", who is the\n"
@@ -71,53 +76,86 @@ msgid ""
"security), choose the desired user and window manager, then click on\n"
"\"%s\". If you're not interested in this feature, uncheck the \"%s\" box."
msgstr ""
-"Linux χρήστης χρήστης\n"
-"\n"
-" χρήστης\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" χρήστης\n"
-"\n"
-"\n"
-"\n"
-" χρήστης\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" Χρήστης\n"
-" χρήστης\n"
-" εξ' ορισμού\n"
-" χρήστης\n"
-"\n"
-" απλό\n"
-"\n"
-"\n"
-" Αποδοχή χρήστης Προσθήκη χρήστης\n"
-"\n"
-" Επόμενο\n"
-"\n"
-" Για Προχωρημένους εξ' ορισμού\n"
-" χρήστης εξ' ορισμού\n"
-"\n"
-" Πότε χρήστης\n"
-"\n"
-"\n"
-" χρήστης Επόμενο\n"
-" Ολοκληρώθηκε\n"
-"."
+"GNU/Linux είναι ένα σύστημα πολλαπλών χρηστών, που σημαίνει ότι κάθε "
+"χρήστης\n"
+"μπορεί να έχει τις δικές του προτιμήσεις, τα δικά του αρχεία κλπ. Όμως, εν "
+"αντιθέσει με\n"
+"τον χρήστη \"root\", ο οποίος είναι ο διαχειριστής του συστήματος, οι "
+"χρήστες που προσθέτετε\n"
+"εδώ, δεν θα είναι εξουσιοδοτημένοι να αλλάξουν οτιδήποτε εκτός από τα δικά "
+"τους αρχεία\n"
+"και διαμορφώσεις, προστατεύοντας έτσι το σύστημα από ακούσιες ή κακόβουλες "
+"αλλαγές\n"
+"που θα μπορούσαν να επηρεάσουν ολόκληρο το σύστημα. Θα πρέπει να "
+"δημιουργήσετε\n"
+"τουλάχιστον έναν τυπικό χρήστη για τον εαυτό σας -- αυτός είναι ο "
+"λογαριασμός που θα πρέπει\n"
+"να χρησιμοποιείτε για καθημερινή χρήση. Αν και είναι πολύ εύκολο να "
+"συνδεθείτε ως \"root\"\n"
+"και να κάνετε τα πάντα, μπορεί επίσης να είναι και πολύ επικίνδυνο! Ένα πολύ "
+"απλό λάθος\n"
+"θα μπορούσε να θέσει και εκτός λειτουργίας το σύστημά σας. Αν κάνετε ένα "
+"σοβαρό λάθος ως\n"
+"τυπικός χρήστης, το χειρότερο που μπορεί να συμβεί είναι να χάσετε μερικές "
+"πληροφορίες,\n"
+"αλλά δεν θα επηρεάσετε ολόκληρο το σύστημα.\n"
+"\n"
+"Στο πρώτο πεδίο σας ζητείται το πραγματικό σας όνομα. Φυσικά, αυτό δεν είναι "
+"υποχρεωτικό\n"
+"-- μπορείτε να εισάγετε το όνομα που επιθυμείτε. Το DrakX θα χρησιμοποιήσει "
+"την πρώτη λέξη\n"
+"που πληκτρολογείτε σε αυτό το πεδίο και θα την αντιγράψει στο πεδίο \"%s\", "
+"το οποίο είναι το όνομα\n"
+"που θα χρησιμοποιεί αυτός ο χρήστης για να συνδεθεί στο σύστημα. Εάν θέλετε, "
+"μπορείτε να παρακάμψετε\n"
+"την προεπιλογή αυτή και να αλλάξετε το όνομα χρήστη. Το επόμενο βήμα αφορά "
+"τον κωδικό πρόσβασης.\n"
+"Από άποψη ασφάλειας, ο κωδικός πρόσβασης ενός μη προνομιούχου (τυπικού) "
+"χρήστη δεν είναι τόσο κρίσιμος\n"
+"όσο ο κωδικός πρόσβασης του διαχειριστή \"root\", αλλά αυτό δεν είναι λόγος "
+"να τον παραμελήσετε, αφήνοντάς τον\n"
+"κενό ή πολύ απλό γιατί μπορεί να θέσετε σε κίνδυνο τα αρχεία του "
+"συγκεκριμένου χρήστη.\n"
+"\n"
+"Με κλικ στο κουμπί \"%s\", μπορείτε να προσθέσετε άλλους χρήστες. Προσθέστε "
+"έναν χρήστη\n"
+"για κάθε έναν πχ από τους φίλους σας, τον πατέρα σας, την αδερφή σας κλπ. "
+"Κάντε κλικ\n"
+"στο \"%s\" όταν τελειώσετε την προσθήκη χρηστών.\n"
+"\n"
+"Κάνοντας κλικ στο κουμπί \"%s\", μπορείτε να αλλάξετε το προεπιλεγμένο "
+"\"κέλυφος\" για τον χρήστη\n"
+"(το προκαθορισμένο κέλυφος είναι το bash).\n"
+"\n"
+"Όταν τελειώσετε με την προσθήκη χρηστών, θα σας ζητηθεί να επιλέξετε έναν "
+"χρήστη\n"
+"που θα συνδέεται αυτόματα στο σύστημα κατά την εκκίνηση του υπολογιστή.\n"
+"Εάν σας ενδιαφέρει αυτή η δυνατότητα (και δεν ανησυχείτε ιδιαίτερα για την "
+"τοπική ασφάλεια),\n"
+"επιλέξτε τον επιθυμητό χρήστη και τον διαχειριστή παραθύρων και στη "
+"συνέχεια, κάντε κλικ στο \"%s\".\n"
+"Εάν δεν σας ενδιαφέρει αυτή η δυνατότητα, αποεπιλέξτε το πλαίσιο \"%s\"."
+
+#: ../help.pm:54
+#, c-format
+msgid "User name"
+msgstr "Όνομα χρήστη"
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr "Αποδοχή χρήστη"
#: ../help.pm:54
#, c-format
msgid "Do you want to use this feature?"
-msgstr "Θέλετε να χρησιμοποιήσετε αυτή τη λειτουργία;"
+msgstr "Θέλετε να χρησιμοποιήσετε αυτήν την λειτουργία;"
#: ../help.pm:57
-#, fuzzy, c-format
+#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -127,79 +165,96 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
-"Linux ανιχνεύθηκε\n"
-"\n"
-"\n"
-" Ολοκληρώθηκε\n"
-"\n"
-"\n"
-" Linux\n"
-"\n"
-" Όνομα\n"
-"\n"
-" Όνομα\n"
-"\n"
-"\n"
-" IDE\n"
-"\n"
-"\n"
-" IDE\n"
-"\n"
-"\n"
-" πρωτεύουσα IDE\n"
-"\n"
-" πρωτεύουσα IDE\n"
-"\n"
-" δευτερεύουσα IDE\n"
-"\n"
-" δευτερεύουσα IDE\n"
-"\n"
-"\n"
-"."
+"Παρατίθενται εδώ οι υπάρχουσες κατατμήσεις Linux που ανιχνεύθηκαν στον "
+"σκληρό σας δίσκο.\n"
+"Μπορείτε να διατηρήσετε τις επιλογές που έκανε ο οδηγός, καθώς είναι "
+"κατάλληλες για τις\n"
+"περισσότερες τυπικές εγκαταστάσεις. Εάν κάνετε αλλαγές, πρέπει τουλάχιστον "
+"να ορίσετε\n"
+"μια κατάτμηση root (\"/\"). Μην επιλέξετε μια πολύ μικρή κατάτμηση, διότι "
+"δεν θα μπορέσετε\n"
+"να εγκαταστήσετε αρκετές εφαρμογές. Εάν θέλετε να αποθηκεύσετε τα δεδομένα "
+"σας\n"
+"σε ξεχωριστή κατάτμηση, θα χρειαστεί επίσης να δημιουργήσετε μια κατάτμηση "
+"\"/home\"\n"
+"(εφικτό μόνον εάν έχετε περισσότερες από μία κατατμήσεις Linux διαθέσιμες).\n"
+"\n"
+"Κάθε κατάτμηση παρατίθεται ως εξής: \"Όνομα\", \"Χωρητικότητα\".\n"
+"\n"
+"Το \"Όνομα\" έχει τη δομή: \"τύπος σκληρού δίσκου\", \"αριθμός σκληρού "
+"δίσκου\",\n"
+"\"αριθμός κατάτμησης\" (για παράδειγμα, \"hda1\").\n"
+"\n"
+"Ο \"Τύπος του σκληρού δίσκου\" είναι \"hd\" εάν ο σκληρός σας δίσκος είναι "
+"IDE και\n"
+"\"sd\" εάν είναι SCSI.\n"
+"\n"
+"Ο \"Αριθμός σκληρού δίσκου\" είναι πάντα ένα γράμμα μετά το \"hd\" ή το "
+"\"sd\".\n"
+"Για τους IDE σκληρούς δίσκους:\n"
+"\n"
+" * \"a\" σημαίνει \"κύριος σκληρός δίσκος στον κύριο ελεγκτή IDE\".\n"
+"\n"
+" * \"b\" σημαίνει \"δευτερεύων σκληρός δίσκος στον κύριο ελεγκτή IDE\".\n"
+"\n"
+" * \"c\" σημαίνει \"κύριος σκληρός δίσκος στον δευτερεύοντα ελεγκτή IDE\".\n"
+"\n"
+" * \"d\" σημαίνει \"δευτερεύων σκληρός δίσκος στον δευτερεύοντα ελεγκτή "
+"IDE\".\n"
+"\n"
+"Για τους σκληρούς δίσκους SCSI, το \"a\" σημαίνει \"χαμηλότερο SCSI ID\", το "
+"\"b\"\n"
+"σημαίνει \"δεύτερο χαμηλότερο SCSI ID\", κλπ."
#: ../help.pm:88
-#, fuzzy, c-format
+#, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Η εγκατάσταση του Mandriva Linux είναι μοιρασμένο σε αρκετά CD-ROM. Το \n"
-"DrakX ξέρει αν ένα επιλεγμένο πακέτο υπάρχει σε άλλο CD-ROM, θα εξάγει το \n"
-"τρέχον CD και θα ζητήσει να εισάγετε ένα άλλο όταν αυτό θα χρειαστεί."
+"Η εγκατάσταση της Mageia διανέμεται σε περισσότερα CD-ROM.\n"
+"Εάν ένα επιλεγμένο πακέτο βρίσκεται σε άλλο CD-ROM, το DrakX θα εξαγάγει\n"
+"το τρέχον CD και θα σας ζητήσει να εισαγάγετε το απαιτούμενο. Εάν δεν το "
+"έχετε\n"
+"στη διάθεσή σας, απλώς κάντε κλικ στο \"%s\"· τα πακέτα που αντιστοιχούν δεν "
+"θα εγκατασταθούν."
#: ../help.pm:95
-#, fuzzy, c-format
+#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -212,8 +267,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -250,56 +304,76 @@ msgid ""
"command-line interface. The total size of this installation is about 65\n"
"megabytes."
msgstr ""
-"\n"
-" Linux\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" Linux\n"
-"\n"
-"\n"
-" Σταθμός Εργασίας\n"
-" Ανάπτυξη\n"
-"\n"
-" Σταθμός Εργασίας\n"
-"\n"
-"\n"
-"\n"
-" Ανάπτυξη\n"
-"\n"
-"\n"
-" Εξυπηρετητής εξυπηρετητής\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" Μετακίνηση σε εξέλιξη Ομάδα εργασίας:\n"
-" Ομάδα εργασίας:\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" εξυπηρετητής\n"
-"\n"
-"\n"
-" Linux\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" Αναβάθμιση\n"
-" νέο\n"
-"."
+"Τώρα θα πρέπει να προσδιορίσετε ποια προγράμματα θέλετε να εγκαταστήσετε\n"
+"στο σύστημά σας. Υπάρχουν χιλιάδες διαθέσιμα πακέτα για τη Mageia,\n"
+"τα οποία είναι κατηγοριοποιημένα σε ομάδες εφαρμογών για να διευκολυνθεί η "
+"διαχείρισή τους.\n"
+"\n"
+"Η Mageia ταξινομεί τις ομάδες πακέτων σε τέσσερις κατηγορίες. Μπορείτε να "
+"συνδυάσετε\n"
+"και να ταιριάξετε εφαρμογές μεταξύ των κατηγοριών ούτως ώστε μια εγκατάσταση "
+"«Σταθμού Εργασίας»\n"
+"να μπορεί να περιλαμβάνει εφαρμογές από την κατηγορία «Διακομιστής».\n"
+"\n"
+" * \"%s\": αν σκοπεύετε να χρησιμοποιήσετε το μηχάνημά σας ως σταθμό "
+"εργασίας, επιλέξτε\n"
+"μία ή περισσότερες ομάδες από την κατηγορία σταθμού εργασίας.\n"
+"\n"
+"* \"%s\": αν σκοπεύετε να χρησιμοποιήσετε το μηχάνημά σας για "
+"προγραμματισμό, επιλέξτε\n"
+"τις κατάλληλες ομάδες από αυτήν την κατηγορία. Η ειδική ομάδα \"LSB\" θα "
+"ρυθμίσει\n"
+"το σύστημά σας κατά τρόπο ώστε να συμμορφώνεται όσο το δυνατόν περισσότερο\n"
+"με τις προδιαγραφές του Linux Standard Base.\n"
+"\n"
+" Η επιλογή της ομάδας \"LSB\" θα διασφαλίσει 100%% συμμόρφωση του "
+"συστήματος με το LSB.\n"
+"Ωστόσο, ακόμα και αν δεν επιλέξετε την ομάδα \"LSB\", θα έχετε εξίσου ένα "
+"σύστημα που είναι\n"
+"σχεδόν 100%% συμμορφωμένο με το LSB.\n"
+"* \"%s\": αν το μηχάνημά σας προορίζεται για διακομιστή, επιλέξτε ποιες από "
+"τις\n"
+"πιο κοινές υπηρεσίες θέλετε να εγκαταστήσετε στο μηχάνημά σας.\n"
+"\n"
+"* \"%s\": εδώ θα επιλέξετε το προτιμώμενο γραφικό περιβάλλον σας.\n"
+"Πρέπει να επιλέξετε τουλάχιστον ένα εάν θέλετε να έχετε διαθέσιμη γραφική "
+"διεπαφή.\n"
+"\n"
+"Μετακινώντας τον δρομέα του ποντικιού πάνω από το όνομα μιας ομάδας,\n"
+"θα εμφανιστεί ένα σύντομο επεξηγηματικό κείμενο για την ομάδα αυτή.\n"
+"\n"
+"Μπορείτε να επιλέξετε το πλαίσιο \"%s\", το οποίο είναι χρήσιμο αν είστε "
+"εξοικειωμένοι\n"
+"με τα προσφερόμενα πακέτα ή αν θέλετε να έχετε πλήρη έλεγχο για το τι θα "
+"εγκατασταθεί.\n"
+"\n"
+"Αν ξεκινήσετε την εγκατάσταση σε λειτουργία \"%s\", μπορείτε να "
+"αποεπιλέξετε\n"
+"όλες τις ομάδες και να αποτρέψετε την εγκατάσταση νέων πακέτων.\n"
+"Αυτό είναι χρήσιμο για την επιδιόρθωση ή την ενημέρωση μιας υπάρχουσας "
+"εγκατάστασης.\n"
+"\n"
+"Αν αποεπιλέξετε όλες τις ομάδες κατά την πραγματοποίηση μιας τυπικής "
+"εγκατάστασης\n"
+"(αντί αυτήν της αναβάθμισης), θα εμφανιστεί ένα παράθυρο διαλόγου "
+"προτείνοντας\n"
+"διάφορες επιλογές για μια ελάχιστη εγκατάσταση:\n"
+"\n"
+"* \"%s\": εγκαθιστά τον ελάχιστο αριθμό πακέτων που είναι απαραίτητα για να "
+"έχετε ένα\n"
+"λειτουργικό γραφικό περιβάλλον.\n"
+"\n"
+"* \"%s\": εγκαθιστά το βασικό σύστημα μαζί με βασικά εργαλεία και την "
+"τεκμηρίωσή τους.\n"
+"Αυτή η εγκατάσταση είναι κατάλληλη για τη ρύθμιση ενός διακομιστή.\n"
+"\n"
+"* \"%s\": θα εγκαταστήσει τον απόλυτα ελάχιστο αριθμό πακέτων που "
+"απαιτούνται\n"
+"για να έχετε ένα λειτουργικό σύστημα Linux. Με αυτού του τύπου την "
+"εγκατάσταση θα έχετε\n"
+"μόνο μια διεπαφή γραμμής εντολών. Το συνολικό μέγεθος αυτής της "
+"εγκατάστασης\n"
+"είναι περίπου 65 MB."
#: ../help.pm:149 ../help.pm:591
#, c-format
@@ -307,17 +381,17 @@ msgid "Upgrade"
msgstr "Αναβάθμιση"
#: ../help.pm:149
-#, fuzzy, c-format
+#, c-format
msgid "With basic documentation"
-msgstr "Με την βασική τεκμηρίωση (συνιστάται!)"
+msgstr "Με την βασική τεκμηρίωση"
#: ../help.pm:149
-#, fuzzy, c-format
+#, c-format
msgid "Truly minimal install"
-msgstr "Ελάχιστη Εγκατάσταση"
+msgstr "Πραγματικά ελάχιστη εγκατάσταση"
#: ../help.pm:152
-#, fuzzy, c-format
+#, c-format
msgid ""
"If you choose to install packages individually, the installer will present\n"
"a tree containing all packages classified by groups and subgroups. While\n"
@@ -330,10 +404,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -353,60 +427,64 @@ msgid ""
"another installation. See the second tip of the last step on how to create\n"
"such a floppy."
msgstr ""
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" εξυπηρετητής\n"
-" Ομάδα εργασίας:\n"
-"\n"
-" εξ' ορισμού Linux\n"
-"\n"
-"\n"
-" Linux\n"
-"\n"
-" Όχι Ναι\n"
-"\n"
-" εξ' ορισμού\n"
-"\n"
-" απενεργοποίηση\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"."
+"Αν επιλέξετε να εγκαταστήσετε πακέτα μεμονωμένα, ο εγκαταστάτης θα σας\n"
+"παρουσιάσει ένα δέντρο που περιέχει όλα τα πακέτα ταξινομημένα κατά ομάδες\n"
+"και υποομάδες. Κατά την περιήγησή σας στο δέντρο, μπορείτε να επιλέξετε "
+"ολόκληρες\n"
+"ομάδες, υποομάδες ή μεμονωμένα πακέτα.\n"
+"\n"
+"Κάθε φορά που επιλέγετε ένα πακέτο στο δέντρο, θα εμφανίζεται μια περιγραφή "
+"στα δεξιά\n"
+"για να σας ενημερώνει σχετικά με το συγκεκριμένο πακέτο.\n"
+"\n"
+"!! Αν έχει επιλεγεί κάποιο πακέτο εξυπηρετητή, είτε επειδή το επιλέξατε "
+"εσείς είτε επειδή\n"
+"ήταν μέρος μιας ομάδας πακέτων, θα σας ζητηθεί να επιβεβαιώσετε την "
+"εγκατάσταση\n"
+"αυτών των εξυπηρετητών. Εξ ορισμού, η Mageia θα ξεκινήσει αυτόματα "
+"οποιαδήποτε\n"
+"εγκατεστημένη υπηρεσία κατά την εκκίνηση του συστήματος. Ακόμα και αν είναι "
+"ασφαλείς\n"
+"και δεν υπάρχουν γνωστοποιημένα προβλήματα κατά την κυκλοφορία της "
+"διανομής,\n"
+"είναι πιθανό να ανακαλύφθηκαν προβλήματα ασφαλείας μετά την ολοκλήρωση "
+"αυτής\n"
+"της έκδοσης της Mageia. Αν δεν γνωρίζετε τι ακριβώς κάνει μια συγκεκριμένη "
+"υπηρεσία\n"
+"και γιατί εγκαθίσταται, τότε κάντε κλικ στο \"%s\". Κάνοντας κλικ στο \"%s\" "
+"θα εγκαταστήσετε\n"
+"τις υπηρεσίες στο κατάστιχο και αυτές θα ξεκινήσουν αυτόματα κατά την "
+"εκκίνηση του συστήματος. !!\n"
+"\n"
+"Η επιλογή \"%s\" χρησιμοποιείται για να απενεργοποιηθεί το προειδοποιητικό "
+"μήνυμα που εμφανίζεται\n"
+"κάθε φορά που ο εγκαταστάτης επιλέγει αυτόματα ένα πακέτο για την επίλυση "
+"μιας εξάρτησης.\n"
+"Ορισμένα πακέτα εξαρτώνται από άλλα και η εγκατάσταση ενός συγκεκριμένου "
+"πακέτου μπορεί\n"
+"να απαιτεί την εγκατάσταση κάποιου άλλου πακέτου. Ο εγκαταστάτης μπορεί να "
+"προσδιορίσει\n"
+"ποια πακέτα απαιτούνται για να καλύψουν μια εξάρτηση και να ολοκληρώσει "
+"επιτυχώς την εγκατάσταση.\n"
+"\n"
+"Το μικρό εικονίδιο δισκέτας στη βάση του κατάστιχου σας επιτρέπει να "
+"φορτώσετε ένα κατάστιχο πακέτων\n"
+"που δημιουργήθηκε σε μια προηγούμενη εγκατάσταση. Αυτό είναι χρήσιμο αν "
+"έχετε αρκετούς υπολογιστές\n"
+"που θέλετε να διαμορφώσετε με τον ίδιο τρόπο. Κάνοντας κλικ σε αυτό το "
+"εικονίδιο, θα σας ζητηθεί\n"
+"να εισαγάγετε την δισκέτα που δημιουργήθηκε στο τέλος μιας άλλης "
+"εγκατάστασης.\n"
+"Δείτε τη δεύτερη συμβουλή του τελευταίου βήματος για το πώς να δημιουργήσετε "
+"μια τέτοια δισκέτα."
#: ../help.pm:183
#, c-format
msgid "Automatic dependencies"
-msgstr ""
+msgstr "Αυτόματες εξαρτήσεις"
-#: ../help.pm:186
-#, fuzzy, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"Εκτυπωτής Όχι Εκτυπωτής\n"
-"\n"
-" νέο\n"
-"."
-
-#: ../help.pm:192
-#, fuzzy, c-format
+#: ../help.pm:185
+#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
"time.\n"
@@ -425,24 +503,30 @@ msgid ""
"Please remember that some services can be dangerous if they're enabled on a\n"
"server. In general, select only those services you really need. !!"
msgstr ""
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" εξ' ορισμού\n"
-"\n"
-"\n"
-" εξυπηρετητής\n"
-"\n"
-" εξυπηρετητής\n"
-"!"
+"Αυτός ο διάλογος χρησιμοποιείται για να επιλέξετε τις υπηρεσίες θέλετε\n"
+"να ξεκινούν κατά την εκκίνηση.\n"
+"\n"
+"Το DrakX θα εμφανίσει όλες τις διαθέσιμες υπηρεσίες στην τρέχουσα "
+"εγκατάσταση.\n"
+"Εξετάστε προσεκτικά καθεμία από αυτές και αποεπιλέξτε όσες δεν χρειάζονται "
+"κατά την εκκίνηση.\n"
+"\n"
+"Όταν επιλέγετε μια υπηρεσία, θα εμφανίζεται ένα σύντομο επεξηγηματικό "
+"κείμενο. Ωστόσο,\n"
+"αν δεν είστε σίγουρος-η αν μια υπηρεσία είναι χρήσιμη ή όχι, είναι πιο "
+"ασφαλές να το αφήσετε ως έχει.\n"
+"\n"
+"!! Σε αυτό το στάδιο, να είστε πολύ προσεκτικός-η αν σκοπεύετε να "
+"χρησιμοποιήσετε τον υπολογιστή\n"
+"σας ως διακομιστή: λογικά δεν θέλετε να ξεκινούν υπηρεσίες που δεν "
+"χρειάζεστε.\n"
+"Να θυμάστε ότι ορισμένες υπηρεσίες μπορεί να είναι επικίνδυνες αν είναι "
+"ενεργοποιημένες\n"
+"σε έναν διακομιστή. Γενικά, επιλέξτε μόνο τις υπηρεσίες που πραγματικά "
+"χρειάζεστε. !!"
#: ../help.pm:209
-#, fuzzy, c-format
+#, c-format
msgid ""
"GNU/Linux manages time in GMT (Greenwich Mean Time) and translates it to\n"
"local time according to the time zone you selected. If the clock on your\n"
@@ -457,26 +541,36 @@ msgid ""
"choose a time server located near you. This option actually installs a time\n"
"server which can be used by other machines on your local network as well."
msgstr ""
-"Linux\n"
-"\n"
-"\n"
-" HardDrake Linux\n"
-"\n"
-" Τομέας Windows \n"
-"\n"
-"\n"
-" εξυπηρετητής Διαδίκτυο\n"
-" Διαδίκτυο\n"
-" εξυπηρετητής\n"
-" εξυπηρετητής."
+"Το GNU/Linux διαχειρίζεται τον χρόνο σε GMT (Greenwich Mean Time) και τον\n"
+"μεταφράζει σε τοπική ώρα σύμφωνα με τη ζώνη ώρας που έχετε επιλέξει.\n"
+"Αν η ώρα στη μητρική σας κάρτα είναι ρυθμισμένη στην τοπική ώρα,\n"
+"μπορείτε να απενεργοποιήσετε αυτήν την επιλογή αποεπιλέγοντας το \"%s\",\n"
+"το οποίο θα ενημερώσει το GNU/Linux ότι η ώρα του συστήματος και της "
+"μητρικής κάρτας\n"
+"είναι στην ίδια ζώνη ώρας. Αυτό είναι χρήσιμο επίσης όταν περισσότερα "
+"λειτουργικά\n"
+"συστήματα είναι εγκατεστημένα στο μηχάνημα.\n"
+"\n"
+"Η επιλογή \"%s\" θα ρυθμίσει αυτόματα την ώρα του συστήματος μέσω ενός "
+"απομακρυσμένου\n"
+"διακομιστή ώρας στο διαδίκτυο. Αυτό απαιτεί μια διαδικτυακή σύνδεση.\n"
+"Συνιστάται η επιλογή ενός διακομιστή ώρας που βρίσκεται κοντά σας.\n"
+"Αυτή η επιλογή εγκαθιστά στην πραγματικότητα έναν διακομιστή ώρας, ο οποίος "
+"μπορεί\n"
+"να χρησιμοποιηθεί και από άλλες μηχανές στο τοπικό σας δίκτυο."
+
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr "Το ρολόι του υλικού είναι ρυθμισμένο σε ώρα GMT"
-#: ../help.pm:220
-#, fuzzy, c-format
+#: ../help.pm:213
+#, c-format
msgid "Automatic time synchronization"
-msgstr "Αυτόματος συγχρονισμός ώρας (χρήση NTP)"
+msgstr "Αυτόματος συγχρονισμός της ώρας"
#: ../help.pm:223
-#, fuzzy, c-format
+#, c-format
msgid ""
"Graphic Card\n"
"\n"
@@ -488,22 +582,22 @@ msgid ""
"with or without 3D acceleration, you're asked to choose the server which\n"
"best suits your needs."
msgstr ""
+"Κάρτα γραφικών\n"
"\n"
+"Ο εγκαταστάτης θα εντοπίσει και θα ρυθμίσει αυτόματα την κάρτα γραφικών\n"
+"που είναι εγκατεστημένη στο μηχάνημά σας. Σε περίπτωση που η επιλογή\n"
+"δεν είναι σωστή, μπορείτε να επιλέξετε από αυτό το κατάστιχο την κάρτα σας.\n"
"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" εξυπηρετητής\n"
-"."
+"Σε περίπτωση που διατίθενται διαφορετικοί διακομιστές για την κάρτα σας,\n"
+"με ή χωρίς επιτάχυνση 3D, θα σας ζητηθεί να επιλέξετε τον διακομιστή\n"
+"που ταιριάζει καλύτερα στις ανάγκες σας."
#: ../help.pm:234
-#, fuzzy, c-format
+#, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -557,60 +651,72 @@ msgid ""
"want to check \"%s\" if your machine is to act as a server, or if you were\n"
"not successful in getting the display configured."
msgstr ""
-"Σύστημα Linux\n"
-"\n"
-" Linux\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
+"Το X (X Window System) είναι η καρδιά του γραφικού περιβάλλοντος\n"
+"του GNU/Linux, στην οποία βασίζονται όλα τα γραφικά περιβάλλοντα\n"
+"(KDE, GNOME, AfterStep, WindowMaker, κ.λπ.) που περιλαμβάνονται στη Mageia.\n"
"\n"
+"Θα δείτε ένα κατάστιχο με διάφορες παραμέτρους ώστε να επιτύχετε\n"
+"την βέλτιστη γραφική απεικόνιση.\n"
"\n"
+"Κάρτα γραφικών\n"
"\n"
-" εξυπηρετητής\n"
+" Ο εγκαταστάτης συνήθως ανιχνεύει και ρυθμίζει αυτόματα την κάρτα "
+"γραφικών\n"
+"που είναι εγκατεστημένη στον υπολογιστή σας. Αν η ανίχνευση δεν είναι "
+"σωστή,\n"
+"μπορείτε να επιλέξετε την σωστή κάρτα από το κατάστιχο.\n"
"\n"
+" Στην περίπτωση που υπάρχουν διαφορετικοί διαθέσιμοι εξυπηρετητές για την "
+"κάρτα σας,\n"
+"με ή χωρίς επιτάχυνση 3D, θα σας ζητηθεί να επιλέξετε αυτόν που θεωρείτε τον "
+"πιο κατάλληλο.\n"
"\n"
"\n"
"\n"
-" Οθόνη\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" Ανάλυση\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" Δοκιμή\n"
+"Οθόνη\n"
"\n"
+" Κανονικά, ο εγκαταστάτης θα ανιχνεύσει και θα ρυθμίσει αυτόματα την "
+"οθόνη.\n"
+"Αν η ανίχνευση δεν είναι σωστή, μπορείτε να επιλέξετε την σωστή οθόνη από το "
+"κατάστιχο.\n"
"\n"
-" Ναι\n"
"\n"
"\n"
+"Ανάλυση \n"
+" Εδώ μπορείτε να επιλέξετε τις διαθέσιμες αναλύσεις και βάθη χρώματος για\n"
+"το γραφικό σας υλικό. Επιλέξτε αυτήν που ταιριάζει καλύτερα στις ανάγκες "
+"σας\n"
+"(μπορείτε να την αλλάξετε και μετά την εγκατάσταση). Μια προεπισκόπηση\n"
+"της επιλεγμένης διαμόρφωσης εμφανίζεται στην εικόνα της οθόνης.\n"
"\n"
"\n"
"\n"
+"Δοκιμή \n"
+" Ανάλογα με το υλικό σας, αυτή η επιλογή μπορεί να μην εμφανιστεί.\n"
"\n"
+" Το σύστημα θα προσπαθήσει να ανοίξει μια γραφική οθόνη στη ζητούμενη "
+"ανάλυση.\n"
+"Αν δείτε το δοκιμαστικό μήνυμα κατά τη διάρκεια της δοκιμής και απαντήσετε "
+"\"%s\",\n"
+"τότε το DrakX θα προχωρήσει στο επόμενο βήμα. Αν δεν το δείτε, αυτό "
+"σημαίνει\n"
+"ότι κάποιο μέρος της αυτόματης διαμόρφωσης ήταν λανθασμένο και η δοκιμή\n"
+"θα τερματιστεί αυτόματα μετά από 12 δευτερόλεπτα, επιστρέφοντάς σας στο "
+"μενού.\n"
+"Αλλάξτε τις ρυθμίσεις μέχρι να επιτύχετε την σωστή γραφική απεικόνιση.\n"
"\n"
-" Επιλογές\n"
"\n"
"\n"
+"Επιλογές\n"
"\n"
-" Όχι εξυπηρετητής\n"
-"."
+" Σε αυτό το στάδιο, μπορείτε να επιλέξετε αν θέλετε το σύστημά σας να\n"
+"μεταβαίνει αυτόματα σε γραφικό περιβάλλον κατά την εκκίνηση.\n"
+"Προφανώς, μπορεί να θέλετε να επιλέξετε \"%s\" αν ο υπολογιστής σας\n"
+"προορίζεται να λειτουργήσει ως διακομιστής ή αν δεν καταφέρατε\n"
+"να ρυθμίσετε σωστά την οθόνη."
#: ../help.pm:291
-#, fuzzy, c-format
+#, c-format
msgid ""
"Monitor\n"
"\n"
@@ -620,12 +726,13 @@ msgid ""
msgstr ""
"Οθόνη\n"
"\n"
-"\n"
-"\n"
-"."
+" Κανονικά, ο εγκαταστάτης θα εντοπίσει και θα ρυθμίσει αυτόματα\n"
+"την οθόνη που είναι συνδεδεμένη στο μηχάνημά σας. Αν δεν κάνει την\n"
+"σωστή επιλογή, μπορείτε να επιλέξετε από αυτό το κατάστιχο την\n"
+"οθόνη που είναι συνδεδεμένη στον υπολογιστή σας."
#: ../help.pm:298
-#, fuzzy, c-format
+#, c-format
msgid ""
"Resolution\n"
"\n"
@@ -636,24 +743,25 @@ msgid ""
msgstr ""
"Ανάλυση\n"
"\n"
-"\n"
-"\n"
-"\n"
-"."
+" Εδώ μπορείτε να επιλέξετε τις διαθέσιμες αναλύσεις και τα βάθη χρώματος\n"
+"για το γραφικό σας υλικό. Επιλέξτε αυτό που ταιριάζει καλύτερα στις ανάγκες "
+"σας\n"
+"(θα μπορείτε να κάνετε αλλαγές μετά την εγκατάσταση).\n"
+"Ένα δείγμα της επιλεγμένης διαμόρφωσης εμφανίζεται στην εικόνα της οθόνης."
#: ../help.pm:306
-#, fuzzy, c-format
+#, c-format
msgid ""
"In the situation where different servers are available for your card, with\n"
"or without 3D acceleration, you're asked to choose the server which best\n"
"suits your needs."
msgstr ""
-"\n"
-" εξυπηρετητής\n"
-"."
+"Στην περίπτωση που υπάρχουν διαθέσιμοι διαφορετικοί διακομιστές\n"
+"για την κάρτα σας, με ή χωρίς επιτάχυνση 3D, θα σας ζητηθεί να επιλέξετε\n"
+"τον διακομιστή που εξυπηρετεί καλύτερα τις ανάγκες σας."
#: ../help.pm:311
-#, fuzzy, c-format
+#, c-format
msgid ""
"Options\n"
"\n"
@@ -662,48 +770,54 @@ msgid ""
"want to check \"%s\" if your machine is to act as a server, or if you were\n"
"not successful in getting the display configured."
msgstr ""
+"Επιλογές\n"
"\n"
-"\n"
-" Όχι\n"
-" εξυπηρετητής\n"
-"."
+" Σε αυτό το στάδιο, μπορείτε να επιλέξετε αν θέλετε το σύστημά σας να\n"
+"μεταβαίνει αυτόματα σε γραφικό περιβάλλον κατά την εκκίνηση.\n"
+"Προφανώς, μπορεί να θέλετε να επιλέξετε \"%s\" αν ο υπολογιστής σας\n"
+"προορίζεται να λειτουργήσει ως διακομιστής ή αν δεν καταφέρατε\n"
+"να ρυθμίσετε σωστά την οθόνη."
#: ../help.pm:319
-#, fuzzy, c-format
+#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -712,15 +826,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -733,80 +847,107 @@ msgid ""
"experience. For more instructions on how to use the DiskDrake utility,\n"
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
-"\n"
-" Linux\n"
-"\n"
-"\n"
-" νέο\n"
-" Linux\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" χρήστης\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" ανιχνεύθηκε\n"
-" Linux\n"
-"\n"
-" εξ' ορισμού\n"
-"\n"
-"\n"
-" Τομέας Windows Τομέας Windows \n"
-"\n"
-" Linux Διαγραφή\n"
-" Τομέας Windows \n"
-" Τομέας Windows Αλλαγή μεγέθους\n"
-"\n"
-" Τομέας Windows \n"
-"\n"
-" Linux Τομέας Windows \n"
-"\n"
-"\n"
-" Τομέας Windows \n"
-"\n"
-" Τομέας Windows νέο\n"
-"\n"
-" Διαγραφή\n"
-" νέο Linux\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" Λίστα Αφαίρεσης Τομέας Windows \n"
-" Όλα\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" Προσαρμοσμένο\n"
-"\n"
-"\n"
-" Ολοκληρώθηκε\n"
-"\n"
-"\n"
-"."
+"Τώρα πρέπει να αποφασίσετε πού θέλετε να εγκαταστήσετε το λειτουργικό\n"
+"σύστημα Mageia στον σκληρό σας δίσκο. Αν ο σκληρός σας δίσκος είναι κενός\n"
+"ή αν ένα υπάρχον λειτουργικό σύστημα χρησιμοποιεί όλον τον διαθέσιμο χώρο,\n"
+"θα χρειαστεί να τον διαμερίσετε. Βασικά, η κατάτμηση ενός σκληρού δίσκου "
+"σημαίνει\n"
+"την λογική διαίρεσή του για την δημιουργία του απαραίτητου χώρου για την "
+"εγκατάσταση\n"
+"του νέου σας συστήματος Mageia.\n"
+"\n"
+"Επειδή η διαδικασία της κατάτμησης ενός σκληρού δίσκου είναι συνήθως μη "
+"αναστρέψιμη\n"
+"και μπορεί να οδηγήσει σε απώλεια δεδομένων, μπορεί να φανεί τρομακτική και "
+"αγχωτική\n"
+"για έναν άπειρο χρήστη. Ευτυχώς, το DrakX περιλαμβάνει έναν οδηγό που "
+"απλοποιεί\n"
+"αυτήν την διαδικασία. Πριν προχωρήσετε σε αυτό το βήμα, διαβάστε προσεκτικά\n"
+"την υπόλοιπη ενότητα και, πάνω απ’ όλα, πάρτε τον χρόνο σας.\n"
+"\n"
+"Ανάλογα με τη διαμόρφωση του σκληρού σας δίσκου, υπάρχουν διάφορες "
+"διαθέσιμες επιλογές:\n"
+"\n"
+" *.\"%s\". Αυτή η επιλογή θα εκτελέσει αυτόματη κατάτμηση των κενών σας "
+"δίσκων.\n"
+"Αν επιλέξετε αυτήν την επιλογή, δεν θα εμφανιστούν περαιτέρω προτροπές.\n"
+"\n"
+" *.\"%s\". Ο οδηγός έχει εντοπίσει μία ή περισσότερες υπάρχουσες κατατμήσεις "
+"Linux\n"
+"στον σκληρό σας δίσκο. Αν θέλετε να τις χρησιμοποιήσετε, επιλέξτε αυτήν την "
+"επιλογή.\n"
+"Στη συνέχεια, θα σας ζητηθεί να επιλέξετε τα σημεία προσάρτησης που "
+"σχετίζονται\n"
+"με κάθε κατάτμηση. Τα κληρονομημένα σημεία προσάρτησης είναι ήδη επιλεγμένα\n"
+"και ως επί το πλείστον είναι καλή ιδέα να τα διατηρήσετε.\n"
+"\n"
+" *.\"%s\". Αν τα Microsoft Windows είναι εγκατεστημένα στον σκληρό σας "
+"δίσκο\n"
+"και καταλαμβάνουν όλον τον διαθέσιμο χώρο, θα χρειαστεί να δημιουργήσετε\n"
+"ελεύθερο χώρο για το GNU/Linux. Για να το κάνετε αυτό, μπορείτε είτε να "
+"διαγράψετε\n"
+"την κατάτμηση των Microsoft Windows και όλα τα δεδομένα της\n"
+"(δείτε την επιλογή ``Διαγραφή ολόκληρου του δίσκου\") είτε να αλλάξετε το "
+"μέγεθος\n"
+"της κατάτμησης FAT ή NTFS των Windows. Η αλλαγή μεγέθους μπορεί να γίνει\n"
+"χωρίς απώλεια δεδομένων, εφόσον έχετε προηγουμένως εκτελέσει ανασυγκρότηση\n"
+"του δίσκου στα Windows. Συνιστάται να δημιουργήσετε αντίγραφα ασφαλείας\n"
+"των δεδομένων σας πριν προχωρήσετε. Αυτή η επιλογή προτείνεται αν θέλετε\n"
+"να χρησιμοποιείτε και την Mageia και τα Windows στον ίδιο υπολογιστή.\n"
+"\n"
+" Πριν επιλέξετε αυτήν την επιλογή, κατανοήστε ότι μετά την διαδικασία "
+"αυτή,\n"
+"το μέγεθος της κατάτμησης των Windows θα είναι μικρότερο, οπότε θα έχετε\n"
+"λιγότερο ελεύθερο χώρο για αποθήκευση δεδομένων ή εγκατάσταση νέου "
+"λογισμικού.\n"
+"\n"
+" * \"%s\". Αν θέλετε να διαγράψετε όλα τα δεδομένα και όλες τις κατατμήσεις\n"
+"που υπάρχουν στον σκληρό σας δίσκο και να τον αντικαταστήσετε πλήρως με το "
+"νέο σας\n"
+"σύστημα Mageia, επιλέξτε αυτήν την επιλογή. Προσέξτε διότι δεν θα μπορείτε "
+"να αναιρέσετε\n"
+"αυτήν την διαδικασία μόλις την επιβεβαιώσετε.\n"
+"\n"
+" !! Αν επιλέξετε αυτήν την επιλογή, όλα τα δεδομένα στον δίσκο σας θα "
+"διαγραφούν.!!\n"
+"\n"
+" * \"%s\". Αυτή η επιλογή εμφανίζεται όταν ο σκληρός σας δίσκος "
+"καταλαμβάνεται\n"
+"εξ ολοκλήρου από τα Microsoft Windows. Αν την επιλέξετε, όλα τα δεδομένα\n"
+"στον δίσκο θα διαγραφούν και η διαδικασία εγκατάστασης θα ξεκινήσει από την "
+"αρχή\n"
+"με νέα κατάτμηση.\n"
+"\n"
+" !! Αν επιλέξετε αυτήν την επιλογή, όλα τα δεδομένα στον δίσκο σας θα "
+"χαθούν. !!\n"
+"\n"
+" * \"%s\". Επιλέξτε αυτήν την επιλογή αν θέλετε να διαμερίσετε χειροκίνητα "
+"τον σκληρό σας δίσκο.\n"
+"Προσοχή, αυτή είναι μια ισχυρή αλλά επικίνδυνη επιλογή και μπορεί πολύ "
+"εύκολα\n"
+"να οδηγήσει σε οριστική απώλεια όλων των δεδομένων σας.\n"
+"Συνιστάται μόνο αν έχετε προηγούμενη εμπειρία με διαμερίσεις δίσκων.\n"
+"Για περισσότερες οδηγίες σχετικά με τη χρήση του εργαλείου DiskDrake,\n"
+"ανατρέξτε στην ενότητα ``Διαχείριση των κατατμήσεών σας\" στον ``Οδηγό "
+"Εκκίνησης\"."
#: ../help.pm:377
-#, fuzzy, c-format
+#, c-format
msgid "Use existing partition"
-msgstr "Χρήση υπαρχουσών κατατμήσεων"
+msgstr "Χρήση μιας υπάρχουσας κατάτμησης"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr "Χρήση του ελεύθερου χώρου στην κατάτμηση Microsoft Windows®"
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Διαγραφή ολόκληρου του δίσκου"
#: ../help.pm:380
-#, fuzzy, c-format
+#, c-format
msgid ""
"There you are. Installation is now complete and your GNU/Linux system is\n"
"ready to be used. Just click on \"%s\" to reboot the system. Do not forget\n"
@@ -842,43 +983,76 @@ msgid ""
"\"mformat a:\", or \"fdformat /dev/fd0\" followed by \"mkfs.vfat\n"
"/dev/fd0\"."
msgstr ""
-"Linux\n"
-" Επόμενο\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" Για Προχωρημένους\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" Επαναφόρτωση\n"
-"\n"
-"\n"
-" Αυτόματο\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" Αποθήκευση\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" Linux\n"
+"Η εγκατάσταση ολοκληρώθηκε και το σύστημά σας GNU/Linux είναι\n"
+"έτοιμο προς χρήση. Απλώς κάντε κλικ στο \"%s\" για να επανεκκινήσετε το "
+"σύστημα.\n"
+"Μην ξεχάσετε να αφαιρέσετε το μέσο εγκατάστασης (CD-ROM ή δισκέτα).\n"
+"Το πρώτο πράγμα που θα δείτε αφού ο υπολογιστής σας ολοκληρώσει τις δοκιμές "
+"υλικού\n"
+"είναι το μενού εκκίνησης, το οποίο σας δίνει την επιλογή του λειτουργικού "
+"συστήματος που θέλετε να εκκινήσετε.\n"
+"\n"
+"Το κουμπί \"%s\" εμφανίζει δύο ακόμα κουμπιά για να:\n"
+"\n"
+" * \"%s\": σας επιτρέπει να δημιουργήσετε μια δισκέτα εγκατάστασης η οποία "
+"θα\n"
+"εκτελέσει αυτόματα μια ολόκληρη εγκατάσταση χωρίς τη βοήθεια ενός χειριστή,\n"
+"παρομοίως με την εγκατάσταση που μόλις διαμορφώσατε.\n"
+"\n"
+" Σημειώστε ότι υπάρχουν δύο διαφορετικές επιλογές αφού κάνετε κλικ σε "
+"αυτό\n"
+"το κουμπί:\n"
+"\n"
+" * \"%s\". Αυτή είναι μια ημι-αυτοματοποιημένη εγκατάσταση. Το βήμα της "
+"κατάτμησης\n"
+"είναι η μόνη διαδραστική διαδικασία.\n"
+"\n"
+" * \"%s\". Πλήρως αυτοματοποιημένη εγκατάσταση: ο σκληρός δίσκος "
+"ξαναγράφεται εντελώς,\n"
+"όλα τα δεδομένα χάνονται.\n"
+"\n"
+" Αυτή η δυνατότητα είναι πολύ χρήσιμη όταν εγκαθιστάτε σε πολλές "
+"παρόμοιες\n"
+"μηχανές. Δείτε την ενότητα Auto install στην ιστοσελίδα μας για "
+"περισσότερες\n"
+"πληροφορίες.\n"
+"\n"
+" * \"%s\"(*): αποθηκεύει μια λίστα από τα πακέτα που επιλέχθηκαν σε αυτήν "
+"την εγκατάσταση.\n"
+"Για να χρησιμοποιήσετε αυτήν την επιλογή με άλλη εγκατάσταση, εισαγάγετε τη "
+"δισκέτα και\n"
+"ξεκινήστε την εγκατάσταση. Στην προτροπή, πατήστε το πλήκτρο [F1], "
+"πληκτρολογήστε >>linux\n"
+"defcfg=\"floppy\"<< και πατήστε το πλήκτρο [Enter].\n"
+"\n"
+"(*) Χρειάζεστε μια δισκέτα διαμορφωμένη σε FAT. Για να δημιουργήσετε μία σε "
+"GNU/Linux,\n"
+"πληκτρολογήστε \"mformat a:\", ή \"fdformat /dev/fd0\" ακολουθούμενο από "
+"\"mkfs.vfat\n"
+"/dev/fd0\"."
#: ../help.pm:412
-#, fuzzy, c-format
+#, c-format
msgid "Generate auto-install floppy"
msgstr "Δημιουργία δισκέτας αυτόματης εγκατάστασης"
-#: ../help.pm:415
-#, fuzzy, c-format
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr "Επανάληψη"
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr "Αυτοματοποιημένος"
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr "Αποθήκευση της επιλογής των πακέτων"
+
+#: ../help.pm:408
+#, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -897,40 +1071,45 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
msgstr ""
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" Επόμενο\n"
-"\n"
-" Προηγούμενο\n"
-" νέο Linux\n"
-"\n"
-" Για Προχωρημένους\n"
-"."
+"Αν επιλέξατε να επαναχρησιμοποιήσετε κάποιες παλιές κατατμήσεις GNU/Linux, "
+"ίσως θέλετε να\n"
+"τις επαναμορφοποιήσετε και να διαγράψετε τα δεδομένα που περιέχουν. Για να "
+"το κάνετε, παρακαλώ\n"
+"επιλέξτε και αυτές τις κατατμήσεις.\n"
+"\n"
+"Σημειώστε ότι δεν είναι απαραίτητο να επαναμορφοποιήσετε όλες τις "
+"προϋπάρχουσες\n"
+"κατατμήσεις. Πρέπει να επαναμορφοποιήσετε τις κατατμήσεις που περιέχουν το "
+"λειτουργικό\n"
+"σύστημα (όπως \"/\", \"/usr\" ή \"/var\"), αλλά δεν χρειάζεται να "
+"επαναμορφοποιήσετε\n"
+"κατατμήσεις που περιέχουν δεδομένα που θέλετε να διατηρήσετε (συνήθως \"/"
+"home\").\n"
+"\n"
+"Παρακαλώ να είστε προσεκτικοί κατά την επιλογή των κατατμήσεων. Μετά την "
+"ολοκλήρωση της μορφοποίησης,\n"
+"όλα τα δεδομένα στις επιλεγμένες κατατμήσεις θα διαγραφούν και δεν θα "
+"μπορείτε να τα ανακτήσετε.\n"
+"\n"
+"Κάντε κλικ στο \"%s\" όταν είστε έτοιμοι να μορφοποιήσετε τις κατατμήσεις.\n"
+"\n"
+"Κάντε κλικ στο \"%s\" αν θέλετε να επιλέξετε άλλη κατάτμηση για την "
+"εγκατάσταση του νέου\n"
+"λειτουργικού συστήματος Mageia.\n"
+"\n"
+"Κάντε κλικ στο \"%s\" αν επιθυμείτε να επιλέξετε κατατμήσεις οι οποίες θα "
+"ελεγχθούν για\n"
+"κατεστραμμένα μπλοκ στον δίσκο."
#: ../help.pm:437
-#, fuzzy, c-format
+#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -942,20 +1121,25 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Linux\n"
-"\n"
-"\n"
-" Διαδίκτυο\n"
-" Ναι Διαδίκτυο Όχι\n"
-"\n"
-"\n"
-" Ναι\n"
-"\n"
-" Εγκατάσταση\n"
-" Άκυρο."
+"Μέχρι τη στιγμή που θα εγκαταστήσετε τη Mageia, είναι πιθανό\n"
+"να έχουν γίνει κάποιες ενημερώσεις σε πακέτα από την αρχική έκδοση.\n"
+"Μπορεί να έχουν διορθωθεί σφάλματα και να έχουν επιλυθεί ζητήματα\n"
+"ασφαλείας. Για να μπορέσετε να επωφεληθείτε από αυτές τις ενημερώσεις,\n"
+"μπορείτε να τις λάβετε από το διαδίκτυο. Επιλέξτε \"%s\" αν έχετε μια "
+"λειτουργική\n"
+"σύνδεση στο διαδίκτυο, ή \"%s\" αν προτιμάτε να εγκαταστήσετε τα ενημερωμένα "
+"πακέτα αργότερα.\n"
+"\n"
+"Η επιλογή \"%s\" θα εμφανίσει μια λίστα με τοποθεσίες ιστού από τις οποίες "
+"μπορούν\n"
+"να ληφθούν ενημερώσεις. Θα πρέπει να επιλέξετε μία που να είναι κοντά σας.\n"
+"Θα εμφανιστεί ένα δέντρο επιλογής πακέτων: εξετάστε την επιλογή και πατήστε "
+"\"%s\"\n"
+"για να λάβετε και να εγκαταστήσετε το επιλεγμένο πακέτο(α), ή \"%s\" για να "
+"το ακυρώσετε."
#: ../help.pm:450
-#, fuzzy, c-format
+#, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -964,46 +1148,57 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
"security. Security messages will be sent to that address."
msgstr ""
-"επίπεδο\n"
-" επίπεδο\n"
-"\n"
-" Διαδίκτυο επίπεδο\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" εξ' ορισμού."
+"Σε αυτό το σημείο, το DrakX θα σας επιτρέψει να επιλέξετε το επίπεδο "
+"ασφαλείας\n"
+"που επιθυμείτε για το μηχάνημά σας. Ως γενικός κανόνας, το επίπεδο "
+"ασφαλείας\n"
+"θα πρέπει να είναι υψηλότερο εάν το μηχάνημα πρόκειται να περιέχει κρίσιμα "
+"δεδομένα\n"
+"ή να εκτίθεται απευθείας στο Διαδίκτυο. Ένα υψηλότερο επίπεδο ασφαλείας "
+"επιτυγχάνεται\n"
+"γενικά σε βάρος της ευκολίας χρήσης.\n"
+"\n"
+"Εάν δεν ξέρετε τι να επιλέξετε, κρατήστε την προεπιλεγμένη επιλογή.\n"
+"Θα μπορείτε να την αλλάξετε αργότερα με το εργαλείο draksec,\n"
+"που είναι μέρος του Κέντρου Ελέγχου Mageia.\n"
+"\n"
+"Συμπληρώστε το πεδίο «%s» με τη διεύθυνση ηλεκτρονικού ταχυδρομείου\n"
+"του υπεύθυνου για την ασφάλεια. Τα μηνύματα ασφαλείας θα αποστέλλονται\n"
+"σε αυτήν τη διεύθυνση."
#: ../help.pm:461
-#, fuzzy, c-format
+#, c-format
msgid "Security Administrator"
-msgstr "Διαχειριστής Ασφαλείας:"
+msgstr "Διαχειριστής ασφαλείας"
#: ../help.pm:464
-#, fuzzy, c-format
+#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1019,21 +1214,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1050,222 +1247,267 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
+"Σε αυτό το σημείο, πρέπει να επιλέξετε ποιες κατατμήσεις θα χρησιμοποιηθούν\n"
+"για την εγκατάσταση του συστήματος Mageia. Εάν έχουν ήδη οριστεί οι "
+"κατατμήσεις,\n"
+"είτε από προηγούμενη εγκατάσταση του GNU/Linux είτε από κάποιο άλλο εργαλείο "
+"κατάτμησης,\n"
+"μπορείτε να χρησιμοποιήσετε τις υπάρχουσες κατατμήσεις.\n"
+"Διαφορετικά, πρέπει να ορίσετε τις κατατμήσεις του σκληρού δίσκου.\n"
"\n"
-" Linux\n"
-" Linux\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" IDE\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" Άλλα\n"
-"\n"
-" Αποθήκευση\n"
+"Για την δημιουργία των κατατμήσεων, πρέπει πρώτα να επιλέξετε έναν σκληρό "
+"δίσκο.\n"
+"Μπορείτε να επιλέξετε τον δίσκο για κατάτμηση κάνοντας κλικ στο ``hda'' για "
+"τον πρώτο IDE δίσκο,\n"
+"στο ``hdb'' για τον δεύτερο, ``sda'' για τον πρώτο SCSI δίσκο κ.ο.κ.\n"
"\n"
+"Για την κατάτμηση του επιλεγμένου σκληρού δίσκου, μπορείτε να "
+"χρησιμοποιήσετε τις εξής επιλογές:\n"
"\n"
+" * \"%s\": αυτή η επιλογή διαγράφει όλες τις κατατμήσεις στον επιλεγμένο "
+"σκληρό δίσκο.\n"
"\n"
-" Επαναφορά\n"
+" * \"%s\": αυτή η επιλογή σας επιτρέπει να δημιουργήσετε αυτόματα "
+"κατατμήσεις ext4 και swap\n"
+"στον ελεύθερο χώρο του σκληρού σας δίσκου.\n"
"\n"
+"\"%s\": παρέχει πρόσβαση σε επιπλέον λειτουργίες:\n"
"\n"
+" * \"%s\": αποθηκεύει τον πίνακα κατατμήσεων σε μια δισκέτα. Χρήσιμο για "
+"μελλοντική επαναφορά\n"
+"του πίνακα κατατμήσεων εάν χρειαστεί. Συνιστάται ανεπιφύλακτα να εκτελέσετε "
+"αυτό το βήμα.\n"
"\n"
+" * \"%s\": επιτρέπει την επαναφορά ενός προηγουμένως αποθηκευμένου πίνακα "
+"κατατμήσεων από μια δισκέτα.\n"
"\n"
+" * \"%s\": εάν ο πίνακας κατατμήσεων είναι κατεστραμμένος, μπορείτε να "
+"προσπαθήσετε να τον ανακτήσετε\n"
+"χρησιμοποιώντας αυτήν την επιλογή. Παρακαλώ να είστε προσεκτικοί, καθώς δεν "
+"λειτουργεί πάντα.\n"
"\n"
+" * \"%s\": ακυρώνει όλες τις αλλαγές και επαναφορτώνει τον αρχικό πίνακα "
+"κατατμήσεων του σκληρού δίσκου.\n"
"\n"
+" * \"%s\": αποεπιλέγοντας αυτήν την επιλογή, οι χρήστες θα πρέπει να "
+"προσαρτούν\n"
+"και να αποπροσαρτούν χειροκίνητα τα αφαιρούμενα μέσα, όπως δισκέτες και CD-"
+"ROM.\n"
"\n"
+" * \"%s\": χρησιμοποιήστε αυτήν την επιλογή εάν θέλετε να χρησιμοποιήσετε "
+"έναν οδηγό\n"
+"για την κατάτμηση του σκληρού σας δίσκου. Συνιστάται εάν δεν έχετε καλή "
+"κατανόηση\n"
+"της λειτουργίας κατάτμησης.\n"
"\n"
+" * \"%s\": χρησιμοποιήστε αυτήν την επιλογή για να ακυρώσετε τις αλλαγές "
+"σας.\n"
"\n"
-" μετά βίας\n"
+" * \"%s\": επιτρέπει επιπλέον ενέργειες στις κατατμήσεις (τύπος, επιλογές, "
+"μορφοποίηση)\n"
+"και παρέχει περισσότερες πληροφορίες για τον σκληρό δίσκο.\n"
"\n"
+" * \"%s\": όταν ολοκληρώσετε την κατάτμηση του σκληρού σας δίσκου, αυτή η "
+"επιλογή\n"
+"θα αποθηκεύσει τις αλλαγές σας στον δίσκο.\n"
"\n"
+"Κατά τον ορισμό του μεγέθους μιας κατάτμησης, μπορείτε να καθορίσετε\n"
+"με ακρίβεια το μέγεθός της χρησιμοποιώντας τα πλήκτρα βέλους του "
+"πληκτρολογίου σας.\n"
"\n"
-" Οδηγός\n"
+"Σημείωση: μπορείτε να επιλέξετε οποιαδήποτε επιλογή χρησιμοποιώντας το "
+"πληκτρολόγιο.\n"
+"Περιηγηθείτε στις κατατμήσεις χρησιμοποιώντας το [Tab] και τα βέλη [Πάνω/"
+"Κάτω].\n"
"\n"
+"Όταν μια κατάτμηση είναι επιλεγμένη, μπορείτε να χρησιμοποιήσετε:\n"
"\n"
+" * Ctrl-c για να δημιουργήσετε μια νέα κατάτμηση (όταν έχει επιλεγεί μια "
+"κενή κατάτμηση).\n"
"\n"
-" Αναίρεση\n"
+" * Ctrl-d για να διαγράψετε μια κατάτμηση.\n"
"\n"
+" * Ctrl-m για να ορίσετε το σημείο προσάρτησης.\n"
"\n"
-"\n"
-"\n"
-"\n"
-" Ολοκληρώθηκε\n"
-"\n"
-"\n"
-" Πότε\n"
-"\n"
-"\n"
-"\n"
-" Ολοκληρώθηκε\n"
-"\n"
-" Πότε\n"
-"\n"
-" νέο\n"
-"\n"
-" Διαγραφή\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" HFS\n"
-"\n"
-"\n"
-"\n"
-"."
+"Για να λάβετε πληροφορίες σχετικά με τους διαθέσιμους τύπους συστημάτων "
+"αρχείων,\n"
+"παρακαλώ διαβάστε το κεφάλαιο ext2FS από το ``Εγχειρίδιο Αναφοράς''.\n"
+
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr "Αποθήκευση του πίνακα κατάτμησης"
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr "Επαναφορά του πίνακα κατάτμησης"
-#: ../help.pm:533
-#, fuzzy, c-format
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr "Διάσωση του πίνακα της κατάτμησης"
+
+#: ../help.pm:526
+#, c-format
msgid "Removable media auto-mounting"
-msgstr "Αυτόματη σύνδεση αποσπώμενων μονάδων"
+msgstr "Αυτόματη προσάρτηση του αφαιρουμένου μέσου"
+
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr "Οδηγός"
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr "Αναίρεση"
-#: ../help.pm:533
-#, fuzzy, c-format
+#: ../help.pm:526
+#, c-format
msgid "Toggle between normal/expert mode"
-msgstr "Αλλαγή σε κανονικό τρόπο λειτουργίας"
+msgstr "Εναλλαγή μεταξύ τυπικής/προχωρημένης λειτουργίας"
#: ../help.pm:536
-#, fuzzy, c-format
+#, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
-"Περισσότερες των μία κατατμήσεις Windows βρέθηκαν στον δίσκο σας. Παρακαλώ \n"
-"επιλέξτε ποια θέλετε να συρρικνώσετε για να εγκαταστήσετε το Mandriva "
-"Linux.\n"
+"Έχουν εντοπιστεί περισσότερες από μία κατατμήσεις Microsoft στον σκληρό σας "
+"δίσκο.\n"
+"Παρακαλώ επιλέξτε την κατάτμηση που θέλετε να αλλάξετε μέγεθος για να "
+"εγκαταστήσετε\n"
+"το νέο σας λειτουργικό σύστημα Mageia.\n"
"\n"
-"Κάθε κατάτμηση αναφέρεται ως: \"Όνομα Linux\", \"Όνομα Windows\"\n"
+"Κάθε κατάτμηση παρατίθεται ως εξής: \"Όνομα Linux\", \"Όνομα Windows\", "
"\"Χωρητικότητα\".\n"
"\n"
-"Το όνομα Linux σημαίνει τα εξής: \"Τύπος δίσκου\",\"αριθμός δίσκου\",\n"
-"\"αριθμός κατάτμησης για παράδειγμα, \"hda1\").\n"
-"\n"
-"Ο \"Τύπος δίσκου\" είναι \"hd\" εάν πρόκειται για δίσκο IDE και \"sd\" \n"
-"για SCSI δίσκο.\n"
+"\"Δομή του \"Ονόματος Linux\": \"Τύπος σκληρού δίσκου\", \"Αριθμός σκληρού "
+"δίσκου\", \"Αριθμός κατάτμησης\" (π.χ., hda1).\n"
"\n"
-"Ο \" αριθμός δίσκου\"είναι πάντα ένα γράμμα μετά το \"hd\" ή \"sd\". Για\n"
-"τους IDE δίσκους: \n"
+"Ο \"Τύπος σκληρού δίσκου\" είναι \"hd\" αν είναι IDE σκληρός δίσκος και "
+"\"sd\" αν είναι SCSI σκληρός δίσκος.\n"
"\n"
-" * \"a\" είναι ο \"master δίσκος στον πρώτο ελεγκτή IDE\",\n"
+"\"Αριθμός σκληρού δίσκου: Πρόκειται πάντα για ένα γράμμα μετά το hd ή το "
+"sd.\n"
"\n"
-" * \"b\" είναι ο \"slave δίσκος στον πρώτο ελεγκτή IDE\",\n"
+"Για IDE σκληρούς δίσκους:\n"
+" - \"a\" κύριος δίσκος στον πρωτεύοντα IDE ελεγκτή.\n"
+" - \"b\" βοηθητικός δίσκος στον πρωτεύοντα IDE ελεγκτή.\n"
+" - \"c\" κύριος δίσκος στον δευτερεύοντα IDE ελεγκτή.\n"
+" - \"d\" βοηθητικός δίσκος στον δευτερεύοντα IDE ελεγκτή.\n"
"\n"
-" * \"c\" είναι ο \"master δίσκος στον δεύτερο ελεγκτή IDE\",\n"
+"Για SCSI σκληρούς δίσκους:\n"
+" -\"a\" ο δίσκος με το χαμηλότερο SCSI ID.\n"
+" - \"b\" ο δίσκος με το δεύτερο χαμηλότερο SCSI ID, κ.ο.κ.\n"
"\n"
-" * \"d\" είναι ο \"slave δίσκος στον δεύτερο ελεγκτή IDE\".\n"
-"\n"
-"Για δίσκους SCSI, \"a\" είναι ο πρώτος δίσκος, \"b\" είναι ο δεύτερος "
-"δίσκος\n"
-" κλπ...\n"
-"\n"
-"Το \"Όνομα Windows\" είναι το γράμμα της κατάτμησης όπως φαίνεται από τα\n"
-"Windows (ο πρώτος δίσκος ή κατάτμηση λέγεται \"C:\")."
+"- Όνομα Windows:\n"
+" Είναι το γράμμα που αντιστοιχεί στον σκληρό δίσκο στα Windows (ο πρώτος "
+"δίσκος ή η πρώτη κατάτμηση ονομάζεται \"C:\")."
#: ../help.pm:567
-#, fuzzy, c-format
+#, c-format
msgid ""
"\"%s\": check the current country selection. If you're not in this country,\n"
"click on the \"%s\" button and choose another. If your country is not in "
"the\n"
"list shown, click on the \"%s\" button to get the complete country list."
msgstr ""
-"\"Χώρα\": ελέγξτε την επιλογή χώρας. Αν δεν είστε σε αυτή τη χώρα,\n"
-"κάντε κλικ στο πλήκτρο και επιλέξτε μια άλλη."
+"«%s»: ελέγξτε την τρέχουσα επιλογή χώρας. Αν δεν βρίσκεστε σε αυτήν τη χώρα,"
+"κάντε κλικ στο κουμπί «%s» και επιλέξτε άλλη. Αν η χώρα σας δεν υπάρχει "
+"στοκατάστιχο, κάντε κλικ στο κουμπί «%s» για να δείτε το πλήρες κατάστιχο "
+"χωρών."
#: ../help.pm:572
-#, fuzzy, c-format
+#, c-format
msgid ""
"This step is activated only if an existing GNU/Linux partition has been\n"
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
-"ενεργοποίηση τώρα Linux\n"
-"\n"
-"\n"
-" νέο\n"
-" Linux\n"
-"\n"
-" Εγκατάσταση\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" Αναβάθμιση\n"
-" Linux\n"
-" χρήστης\n"
-"\n"
-"\n"
-" Αναβάθμιση Linux\n"
-" εκτελείται Αναβάθμιση\n"
-" Linux."
+"Αυτό το βήμα ενεργοποιείται μόνο αν έχει εντοπιστεί υπάρχουσα κατάτμηση\n"
+"GNU/Linux στον υπολογιστή σας.\n"
+"\n"
+"Το DrakX χρειάζεται τώρα να γνωρίζει αν επιθυμείτε να πραγματοποιήσετε μια\n"
+"νέα εγκατάσταση ή μια αναβάθμιση ενός υπάρχοντος συστήματος Mageia:\n"
+"\n"
+" * \"%s\". Στις περισσότερες περιπτώσεις, αυτή η επιλογή διαγράφει πλήρως το "
+"παλιό σύστημα.\n"
+"Ωστόσο, ανάλογα με το υπάρχον σχήμα κατάτμησης, μπορείτε να αποτρέψετε τη "
+"διαγραφή\n"
+"ορισμένων δεδομένων σας (ιδίως των προσωπικών καταλόγων home).\n"
+"Αν επιθυμείτε να αλλάξετε τον τρόπο κατάτμησης των σκληρών σας δίσκων ή να "
+"τροποποιήσετε\n"
+"το σύστημα αρχείων, θα πρέπει να επιλέξετε αυτήν την επιλογή.\n"
+"\n"
+" * \"%s\". Αυτή η κλάση εγκατάστασης σας επιτρέπει να ενημερώσετε τα πακέτα\n"
+"που είναι ήδη εγκατεστημένα στο Mageia σύστημά σας.\n"
+"Το υπάρχον σχήμα κατάτμησης και τα προσωπικά δεδομένα σας δεν θα "
+"τροποποιηθούν.\n"
+"Τα περισσότερα από τα υπόλοιπα βήματα ρύθμισης παραμένουν διαθέσιμα\n"
+"και είναι παρόμοια με αυτά μιας κανονικής εγκατάστασης.\n"
+"\n"
+"Η χρήση της επιλογής \"Αναβάθμιση\" συνιστάται μόνο για συστήματα Mageia "
+"έκδοσης 8.1 ή νεότερης.Η αναβάθμιση από παλαιότερες εκδόσεις του Mageia δεν "
+"συνιστάται."
#: ../help.pm:594
-#, fuzzy, c-format
+#, c-format
msgid ""
"Depending on the language you chose (), DrakX will automatically select a\n"
"particular type of keyboard configuration. Check that the selection suits\n"
@@ -1284,24 +1526,32 @@ msgid ""
"dialog will allow you to choose the key binding which will switch the\n"
"keyboard between the Latin and non-Latin layouts."
msgstr ""
-"εξ' ορισμού\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" Άλλα\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"."
+"Ανάλογα με τη γλώσσα που επιλέξατε (), το DrakX θα επιλέξει αυτόματα\n"
+"έναν συγκεκριμένο τύπο ρύθμισης πληκτρολογίου.\n"
+"Ελέγξτε αν η επιλογή σας εξυπηρετεί ή επιλέξτε μια διαφορετική διάταξη "
+"πληκτρολογίου.\n"
+"\n"
+"Επίσης, μπορεί να μην έχετε πληκτρολόγιο που να αντιστοιχεί ακριβώς στη "
+"γλώσσα σας\n"
+"για παράδειγμα, αν είστε Ελβετός που μιλάει αγγλικά, μπορεί να έχετε "
+"ελβετικό πληκτρολόγιο.\n"
+"Ή αν μιλάτε αγγλικά και βρίσκεστε στο Κεμπέκ, μπορεί να βρεθείτε σε παρόμοια "
+"κατάσταση,\n"
+"όπου η μητρική σας γλώσσα και η χώρα στην οποία αντιστοιχεί το πληκτρολόγιό "
+"σας δεν ταιριάζουν.\n"
+"Σε κάθε περίπτωση, αυτό το βήμα της εγκατάστασης σάς επιτρέπει να επιλέξετε "
+"κατάλληλο\n"
+"πληκτρολόγιο από μια λίστα.\n"
+"\n"
+"Κάντε κλικ στο κουμπί «%s» για να εμφανιστεί η λίστα με τα υποστηριζόμενα "
+"πληκτρολόγια.\n"
+"\n"
+"Αν επιλέξετε διάταξη πληκτρολογίου που βασίζεται σε μη λατινικό αλφάβητο,\n"
+"το επόμενο παράθυρο διαλόγου θα σας επιτρέψει να ορίσετε το πλήκτρο που\n"
+"θα αλλάζει τη διάταξη μεταξύ λατινικής και μη λατινικής."
#: ../help.pm:612
-#, fuzzy, c-format
+#, c-format
msgid ""
"The first step is to choose your preferred language.\n"
"\n"
@@ -1317,8 +1567,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1344,33 +1593,66 @@ msgid ""
"by the entire system. Running the command as a regular user will only\n"
"change the language settings for that particular user."
msgstr ""
-"\n"
-"\n"
-"\n"
-"\n"
-" Για Προχωρημένους\n"
-"\n"
-"\n"
-" Ισπανία\n"
-" εξ' ορισμού Για Προχωρημένους\n"
-"\n"
-"\n"
-"\n"
-" Επόμενο\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" χρήστης\n"
-" χρήστης."
+"Το πρώτο βήμα είναι να επιλέξετε τη γλώσσα της προτίμησής σας.\n"
+"\n"
+"Η επιλογή γλώσσας επηρεάζει τον εγκαταστάτη, την τεκμηρίωση και\n"
+"γενικά ολόκληρο το σύστημα. Πρώτα επιλέξτε την περιοχή στην οποία\n"
+"βρίσκεστε και στη συνέχεια τη γλώσσα που μιλάτε.\n"
+"\n"
+"Κάνοντας κλικ στο κουμπί «%s», μπορείτε να επιλέξετε και άλλες γλώσσες\n"
+"για εγκατάσταση στον σταθμό εργασίας σας, ώστε να εγκατασταθούν τα "
+"αντίστοιχα\n"
+"αρχεία για την τεκμηρίωση του συστήματος και τις εφαρμογές.\n"
+"Για παράδειγμα, αν το σύστημά σας πρόκειται να χρησιμοποιηθεί και από\n"
+"ισπανόφωνους χρήστες, επιλέξτε τα αγγλικά ως προεπιλεγμένη γλώσσα\n"
+"από την προβολή δέντρου και το «%s» στην ενότητα για προχωρημένους.\n"
+"\n"
+"Σχετικά με την υποστήριξη UTF-8 (Unicode):\n"
+"Το Unicode είναι μια νέα κωδικοποίηση χαρακτήρων που αποσκοπεί στην κάλυψη\n"
+"όλων των γλωσσών. Ωστόσο, η πλήρης υποστήριξή του στο GNU/Linux εξακολουθεί\n"
+"να βρίσκεται υπό ανάπτυξη. Για τον λόγο αυτό, η χρήση του UTF-8 στο Mageia\n"
+"εξαρτάται από τις επιλογές του χρήστη:\n"
+"\n"
+" * Αν επιλέξετε μια γλώσσα με ισχυρή υποστήριξη παλαιότερης κωδικοποίησης\n"
+"(όπως οι λατινικές γλώσσες με latin1, τα ρωσικά, ιαπωνικά, κινεζικά, "
+"κορεατικά,\n"
+"ταϊλανδέζικα, ελληνικά, τουρκικά, οι περισσότερες γλώσσες του iso-8859-2),\n"
+"θα χρησιμοποιηθεί αυτή η παλαιότερη κωδικοποίηση από προεπιλογή.\n"
+"\n"
+" * Άλλες γλώσσες θα χρησιμοποιούν το Unicode από προεπιλογή.\n"
+"\n"
+" * Αν απαιτούνται δύο ή περισσότερες γλώσσες και αυτές δεν χρησιμοποιούν\n"
+"την ίδια κωδικοποίηση, τότε θα χρησιμοποιηθεί το Unicode για ολόκληρο το "
+"σύστημα.\n"
+"\n"
+" * Τέλος, μπορείτε να επιβάλετε τη χρήση του Unicode σε όλο το σύστημα "
+"επιλέγοντας\n"
+"την επιλογή «%s», ανεξαρτήτως των γλωσσών που έχουν επιλεγεί.\n"
+"\n"
+"Σημειώστε ότι δεν περιορίζεστε στην επιλογή μιας μόνο επιπλέον γλώσσας.\n"
+"Μπορείτε να επιλέξετε περισσότερες ή ακόμα και να τις εγκαταστήσετε όλες,\n"
+"ενεργοποιώντας το πεδίο «%s».\n"
+"Η υποστήριξη για μια γλώσσα περιλαμβάνει μεταφράσεις, γραμματοσειρές,\n"
+"ορθογραφικούς ελέγχους κ.λπ.\n"
+"\n"
+"Για να αλλάξετε τη γλώσσα του συστήματος μεταξύ των γλωσσών που έχουν "
+"εγκατασταθεί,\n"
+"μπορείτε να εκτελέσετε την εντολή localedrake ως root.\n"
+"Αυτό θα αλλάξει τη γλώσσα σε ολόκληρο το σύστημα. Εκτελώντας την εντολή ως\n"
+"απλός χρήστης, η αλλαγή θα ισχύει μόνο για τον συγκεκριμένο λογαριασμό."
#: ../help.pm:650
#, c-format
msgid "Espanol"
-msgstr ""
+msgstr "Ισπανικά"
-#: ../help.pm:653
-#, fuzzy, c-format
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr "Χρήση του Unicode ως προεπιλογή"
+
+#: ../help.pm:646
+#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
"mouse. If it does, it assumes you have a two-button mouse and will\n"
@@ -1405,40 +1687,55 @@ msgid ""
"Test the buttons and check that the mouse pointer moves on-screen as you\n"
"move your mouse about."
msgstr ""
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" σειριακό\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" εξ' ορισμού\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" Με ροδάκι ανιχνεύθηκε\n"
-"\n"
-"\n"
-" Επόμενο\n"
-" ενεργοποίηση τώρα\n"
-"\n"
-"\n"
-"."
+"Συνήθως, το DrakX δεν αντιμετωπίζει πρόβλημα στον εντοπισμό του αριθμού\n"
+"των κουμπιών του ποντικιού σας. Αν δεν τα καταφέρει, θα υποθέσει ότι "
+"διαθέτετε\n"
+"ποντίκι δύο κουμπιών και θα το ρυθμίσει για εξομοίωση τρίτου κουμπιού.\n"
+"Το τρίτο κουμπί σε ένα ποντίκι δύο κουμπιών μπορεί να προσομοιωθεί πατώντας\n"
+"ταυτόχρονα το αριστερό και το δεξί κουμπί. Το DrakX θα αναγνωρίσει αυτόματα\n"
+"αν το ποντίκι σας χρησιμοποιεί διεπαφή PS/2, σειριακή ή USB.\n"
+"\n"
+"Αν έχετε ποντίκι με 3 κουμπιά χωρίς τροχό κύλισης, μπορείτε να επιλέξετε\n"
+"ένα ποντίκι τύπου «%s». Το DrakX θα το ρυθμίσει έτσι ώστε να μπορείτε να\n"
+"προσομοιώσετε τον τροχό κύλισης: για να το κάνετε αυτό, πατήστε το μεσαίο "
+"κουμπί\n"
+"και μετακινήστε τον δείκτη του ποντικιού πάνω και κάτω.\n"
+"\n"
+"Αν για οποιονδήποτε λόγο επιθυμείτε να καθορίσετε διαφορετικό τύπο "
+"ποντικιού,\n"
+"επιλέξτε τον από την παρεχόμενη λίστα.\n"
+"\n"
+"Μπορείτε να επιλέξετε την καταχώριση «%s» για να χρησιμοποιήσετε έναν\n"
+"«γενικό» τύπο ποντικιού, ο οποίος λειτουργεί με σχεδόν όλα τα ποντίκια.\n"
+"\n"
+"Αν επιλέξετε ποντίκι διαφορετικό από το προεπιλεγμένο, θα εμφανιστεί οθόνη "
+"δοκιμής.\n"
+"Χρησιμοποιήστε τα κουμπιά και τον τροχό για να ελέγξετε ότι οι ρυθμίσεις "
+"είναι σωστές\n"
+"και ότι το ποντίκι λειτουργεί κανονικά. Αν το ποντίκι δεν λειτουργεί σωστά,\n"
+"πατήστε το πλήκτρο διαστήματος ή το πλήκτρο [Enter] για να ακυρώσετε\n"
+"τη δοκιμή και θα επιστρέψετε στη λίστα ποντικιών.\n"
+"\n"
+"Ορισμένες φορές τα ποντίκια με τροχό δεν εντοπίζονται αυτόματα, οπότε θα "
+"χρειαστεί\n"
+"να επιλέξετε το ποντίκι σας από τη λίστα. Βεβαιωθείτε ότι επιλέγετε αυτό "
+"που\n"
+"αντιστοιχεί στη θύρα στην οποία είναι συνδεδεμένο το ποντίκι σας.\n"
+"Αφού επιλέξετε ένα ποντίκι και πατήσετε το κουμπί «%s», θα εμφανιστεί\n"
+"μια εικόνα ποντικιού στην οθόνη. Κυλήστε τον τροχό για να βεβαιωθείτε\n"
+"ότι ανταποκρίνεται σωστά. Καθώς γυρίζετε τον τροχό, θα βλέπετε και τον\n"
+"τροχό στην οθόνη να κινείται. Δοκιμάστε και τα κουμπιά και ελέγξτε ότι\n"
+"ο δείκτης κινείται στην οθόνη όταν μετακινείτε το ποντίκι."
#: ../help.pm:684
-#, fuzzy, c-format
+#, c-format
msgid "with Wheel emulation"
-msgstr "Προσομοίωση Κουμπιών"
+msgstr "με προσομοίωση τροχού"
#: ../help.pm:684
#, c-format
msgid "Universal | Any PS/2 & USB mice"
-msgstr ""
+msgstr "Γενικό | Οποιοδήποτε PS/2 & USB ποντίκι"
#: ../help.pm:687
#, c-format
@@ -1447,89 +1744,9 @@ msgid ""
"Windows is named \"ttyS0\" under GNU/Linux."
msgstr ""
"Παρακαλώ επιλέξτε την κατάλληλη θύρα. Για παράδειγμα,\n"
-"η\"COM1\" στα Windows ονομάζεται \"ttyS0\" στο GNU/Linux."
-
-#: ../help.pm:691
-#, fuzzy, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Linux\n"
-" Root\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" Linux\n"
-"\n"
-"\n"
-" σημαντικό\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" εξυπηρετητής Για Προχωρημένους\n"
-"\n"
-" LDAP NIS Τομέας Windows Τομέας\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" Όχι Διαδίκτυο\n"
-"."
+"η \"COM1\" στα Windows ονομάζεται \"ttyS0\" στο GNU/Linux."
-#: ../help.pm:725
-#, fuzzy, c-format
-msgid "authentication"
-msgstr "Πιστοποίηση"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1543,18 +1760,42 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
"know what you're doing."
msgstr ""
+"Ένας φορτωτής εκκίνησης (boot loader) είναι ένα μικρό πρόγραμμα που "
+"εκτελείται\n"
+"από τον υπολογιστή κατά την εκκίνηση. Είναι υπεύθυνος για την εκκίνηση\n"
+"ολόκληρου του συστήματος. Συνήθως, η εγκατάσταση του φορτωτή εκκίνησης\n"
+"γίνεται εντελώς αυτόματα. Το DrakX θα αναλύσει τον τομέα εκκίνησης του "
+"δίσκου\n"
+"και θα ενεργήσει ανάλογα με το τι θα εντοπίσει εκεί:\n"
+"\n"
+" * Αν εντοπιστεί τομέας εκκίνησης των Windows, θα αντικατασταθεί με έναν "
+"τομέα εκκίνησης\n"
+"GRUB ή LILO. Με αυτόν τον τρόπο, θα μπορείτε να εκκινήσετε είτε το GNU/"
+"Linux\n"
+"είτε οποιοδήποτε άλλο λειτουργικό σύστημα είναι εγκατεστημένο στον "
+"υπολογιστή σας.\n"
+"\n"
+" * Αν εντοπιστεί τομέας εκκίνησης GRUB ή LILO, θα αντικατασταθεί με έναν "
+"νέο.\n"
+"\n"
+"Αν το DrakX δεν μπορεί να προσδιορίσει πού να εγκαταστήσει τον τομέα "
+"εκκίνησης,\n"
+"θα σας ρωτήσει πού θέλετε να τον τοποθετήσει. Γενικά, η επιλογή «%s» είναι η "
+"ασφαλέστερη.\n"
+"Η επιλογή «%s» δεν εγκαθιστά κανέναν φορτωτή εκκίνησης.\n"
+"Επιλέξτε την μόνο αν γνωρίζετε τι κάνετε."
#: ../help.pm:745
-#, fuzzy, c-format
+#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1575,53 +1816,70 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
-"Άλλο\n"
-" Linux\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" απλό\n"
-"\n"
-" Linux\n"
-"\n"
-" CUPS Εκτύπωση Σύστημα\n"
-"\n"
-" απλό εξυπηρετητής\n"
-"\n"
-"\n"
-" εξυπηρετητής\n"
-" CUPS\n"
-"\n"
-"\n"
-"\n"
-"\n"
-" εκτελείται\n"
-"."
+"Τώρα είναι η στιγμή να επιλέξετε ένα σύστημα εκτύπωσης για τον υπολογιστή "
+"σας.\n"
+"Άλλα λειτουργικά συστήματα ενδέχεται να σας προσφέρουν ένα μόνο,\n"
+"αλλά το Mageia προσφέρει δύο. Κάθε ένα από τα συστήματα εκτύπωσης\n"
+"είναι καλύτερα προσαρμοσμένο σε συγκεκριμένα είδη ρυθμίσεων.\n"
+"\n"
+" * «%s» -- που είναι ακρωνύμιο του «print, do not queue» (εκτύπωση χωρίς "
+"ουρά),\n"
+"είναι η κατάλληλη επιλογή αν έχετε άμεση σύνδεση με τον εκτυπωτή σας,\n"
+"θέλετε να μπορείτε να διακόπτετε την εκτύπωση σε περίπτωση εμπλοκής χαρτιού\n"
+"και δεν έχετε εκτυπωτές στο δίκτυο.\n"
+" * Το «%s» μπορεί να χειριστεί μόνο πολύ απλές περιπτώσεις δικτύωσης\n"
+"και είναι σχετικά αργό όταν χρησιμοποιείται μέσω δικτύου.\n"
+"Συνιστάται να χρησιμοποιήσετε το pdq αν αυτή είναι η πρώτη σας εμπειρία με "
+"το GNU/Linux.\n"
+"\n"
+" * «%s» σημαίνει Common Unix Printing System και είναι εξαιρετική επιλογή\n"
+"είτε εκτυπώνετε σε τοπικό εκτυπωτή είτε σε κάποιον στην άλλη άκρη του "
+"κόσμου.\n"
+"Είναι εύκολο στη ρύθμιση και μπορεί να λειτουργήσει ως διακομιστής ή "
+"πελάτης\n"
+"για το παλαιότερο σύστημα εκτύπωσης lpd, οπότε είναι συμβατό με παλαιότερα\n"
+"λειτουργικά συστήματα που ίσως εξακολουθούν να χρειάζονται υπηρεσίες "
+"εκτύπωσης.\n"
+"Αν και αρκετά ισχυρό, η βασική ρύθμιση είναι σχεδόν τόσο εύκολη όσο και με "
+"το pdq.\n"
+"Αν χρειάζεται να προσομοιώσετε διακομιστή τύπου lpd, φροντίστε να "
+"ενεργοποιήσετε\n"
+"τον δαίμονα cups-lpd. Το «%s» περιλαμβάνει γραφικές διεπαφές για εκτύπωση,\n"
+"επιλογή ρυθμίσεων εκτυπωτή και διαχείριση εκτυπωτών.\n"
+"\n"
+"Αν κάνετε τώρα μια επιλογή και αργότερα διαπιστώσετε ότι δεν σας ικανοποιεί "
+"το σύστημα\n"
+"εκτύπωσης που χρησιμοποιείτε, μπορείτε να το αλλάξετε εκτελώντας το "
+"PrinterDrake\n"
+"από το Κέντρο Ελέγχου του Mageia και κάνοντας κλικ στο κουμπί «%s»."
#: ../help.pm:768
#, c-format
msgid "pdq"
-msgstr ""
+msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr "CUPS"
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
-msgstr "Εξπέρ"
+msgstr "Ειδήμονας"
#: ../help.pm:771
-#, fuzzy, c-format
+#, c-format
msgid ""
"DrakX will first detect any IDE devices present in your computer. It will\n"
"also scan for one or more PCI SCSI cards on your system. If a SCSI card is\n"
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1633,39 +1891,36 @@ msgid ""
"which parameters need to be passed to the hardware, you'll need to manually\n"
"configure the driver."
msgstr ""
-"IDE\n"
-" PCI\n"
-"\n"
-"\n"
-"\n"
-" PCI Ναι\n"
-" Όχι\n"
-"\n"
-" ανιχνεύθηκε\n"
-" Επόμενο Επόμενο\n"
-"\n"
-"\n"
-" PCI\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"\n"
-"."
+"Το DrakX θα εντοπίσει πρώτα οποιεσδήποτε συσκευές IDE υπάρχουν\n"
+"τον υπολογιστή σας. Θα σαρώσει επίσης για μία ή περισσότερες κάρτες\n"
+"PCI SCSI στο σύστημά σας. Αν εντοπιστεί κάρτα SCSI, το DrakX θα\n"
+"εγκαταστήσει αυτόματα τον κατάλληλο οδηγό.\n"
+"\n"
+"Επειδή ο εντοπισμός υλικού δεν είναι πάντοτε αλάνθαστος, είναι πιθανό το "
+"DrakX\n"
+"να αποτύχει να εντοπίσει τους σκληρούς σας δίσκους. Σε αυτή την περίπτωση,\n"
+"θα χρειαστεί να καθορίσετε το υλικό σας με το χέρι.\n"
+"\n"
+"Αν χρειάστηκε να ορίσετε χειροκίνητα τον PCI SCSI προσαρμογέα σας,\n"
+"το DrakX θα σας ρωτήσει αν θέλετε να ρυθμίσετε επιλογές για αυτόν.\n"
+"Συνιστάται να επιτρέψετε στο DrakX να ελέγξει το υλικό για τις επιλογές που\n"
+"απαιτούνται για την αρχικοποίηση της κάρτας. Τις περισσότερες φορές,\n"
+"το DrakX θα ολοκληρώσει αυτό το βήμα χωρίς προβλήματα.\n"
+"\n"
+"Αν το DrakX δεν μπορέσει να εντοπίσει αυτόματα τις απαραίτητες παραμέτρους\n"
+"για το υλικό, θα χρειαστεί να ρυθμίσετε τον οδηγό χειροκίνητα."
#: ../help.pm:789
-#, fuzzy, c-format
+#, c-format
msgid ""
"\"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver."
msgstr ""
-"ανιχνεύθηκε\n"
-"\n"
-"\n"
-"."
+"«%s»: αν εντοπιστεί κάρτα ήχου στο σύστημά σας, θα εμφανιστεί εδώ.\n"
+"Αν παρατηρήσετε ότι η κάρτα ήχου που εμφανίζεται δεν είναι αυτή που\n"
+"υπάρχει πραγματικά στο σύστημα, μπορείτε να κάνετε κλικ στο κουμπί\n"
+"και να επιλέξετε διαφορετικό οδηγό."
#: ../help.pm:794
#, c-format
@@ -1691,11 +1946,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1713,8 +1963,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1731,53 +1980,137 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
+"Ως ανασκόπηση, το DrakX θα σας παρουσιάσει μια σύνοψη των πληροφοριών\n"
+"που έχει συγκεντρώσει σχετικά με το σύστημά σας. Ανάλογα με το υλικό που "
+"είναι\n"
+"εγκατεστημένο στον υπολογιστή σας, ενδέχεται να δείτε μερικές ή όλες από "
+"τις\n"
+"παρακάτω καταχωρίσεις. Κάθε καταχώριση αποτελείται από το στοιχείο υλικού\n"
+"που πρέπει να ρυθμιστεί και μια σύντομη περίληψη της τρέχουσας ρύθμισης.\n"
+"Κάντε κλικ στο αντίστοιχο κουμπί «%s» για να κάνετε αλλαγές.\n"
+"\n"
+" * «%s»: ελέγξτε την τρέχουσα ρύθμιση του πληκτρολογίου και αλλάξτε την αν "
+"χρειάζεται.\n"
+"\n"
+" * «%s»: ελέγξτε την τρέχουσα επιλογή χώρας. Αν δεν βρίσκεστε σε αυτή τη "
+"χώρα,\n"
+"κάντε κλικ στο κουμπί «%s» και επιλέξτε άλλη. Αν η χώρα σας δεν εμφανίζεται "
+"στη λίστα,\n"
+"κάντε κλικ στο κουμπί «%s» για να δείτε την πλήρη λίστα χωρών.\n"
+"\n"
+" * «%s»: από προεπιλογή, το DrakX προσδιορίζει τη ζώνη ώρας με βάση τη χώρα "
+"που επιλέξατε.\n"
+"Μπορείτε να κάνετε κλικ στο κουμπί «%s» αν αυτό δεν είναι σωστό.\n"
+"\n"
+" * «%s»: ελέγξτε την τρέχουσα ρύθμιση του ποντικιού και κάντε αλλαγές αν "
+"χρειάζεται.\n"
+"\n"
+" * «%s»: αν εντοπιστεί κάρτα ήχου στο σύστημά σας, θα εμφανιστεί εδώ.\n"
+"Αν παρατηρήσετε ότι δεν είναι η σωστή, μπορείτε να κάνετε κλικ στο κουμπί "
+"και να επιλέξετε διαφορετικό οδηγό.\n"
+"\n"
+" * «%s»: αν έχετε κάρτα τηλεόρασης, οι πληροφορίες ρύθμισής της θα "
+"εμφανιστούν εδώ.\n"
+"Αν δεν εντοπιστεί, κάντε κλικ στο «%s» για να προσπαθήσετε να την ρυθμίσετε "
+"χειροκίνητα.\n"
+"\n"
+" * «%s»: μπορείτε να κάνετε κλικ στο «%s» για να αλλάξετε τις παραμέτρους "
+"της κάρτας,\n"
+"αν θεωρείτε ότι η ρύθμιση είναι λανθασμένη.\n"
+"\n"
+" * «%s»: από προεπιλογή, το DrakX ρυθμίζει το γραφικό περιβάλλον σε ανάλυση "
+"«800x600»\n"
+"ή «1024x768». Αν αυτό δεν σας εξυπηρετεί, κάντε κλικ στο «%s» για να "
+"επαναρυθμίσετε τη γραφική διεπαφή.\n"
+"\n"
+" * «%s»: αν επιθυμείτε να ρυθμίσετε τη σύνδεση στο διαδίκτυο ή σε τοπικό "
+"δίκτυο, μπορείτε να το κάνετε τώρα.\n"
+"Συμβουλευτείτε την έντυπη τεκμηρίωση ή χρησιμοποιήστε το Κέντρο Ελέγχου του "
+"Mageia μετά\n"
+"την εγκατάσταση για αναλυτική βοήθεια.\n"
+"\n"
+" * «%s»: σας επιτρέπει να ρυθμίσετε τις διευθύνσεις διαμεσολαβητή (proxy) "
+"για HTTP και FTP,\n"
+"αν ο υπολογιστής σας βρίσκεται πίσω από διακομιστή μεσολάβησης.\n"
+"\n"
+" * «%s»: αυτή η καταχώριση σας επιτρέπει να επανακαθορίσετε το επίπεδο "
+"ασφαλείας,\n"
+"όπως είχε οριστεί σε προηγούμενο βήμα ().\n"
+"\n"
+" * «%s»: αν σκοπεύετε να συνδέσετε τον υπολογιστή σας στο διαδίκτυο,\n"
+"είναι καλή ιδέα να προστατευτείτε από εισβολές ρυθμίζοντας τείχος προστασίας "
+"(firewall).\n"
+"Δείτε τη σχετική ενότητα του «Οδηγού Ξεκινήματος» για λεπτομέρειες σχετικά\n"
+"με τη ρύθμιση του τείχους προστασίας.\n"
+"\n"
+" * «%s»: αν επιθυμείτε να αλλάξετε τις ρυθμίσεις του φορτωτή εκκίνησης "
+"(bootloader),\n"
+"κάντε κλικ σε αυτό το κουμπί. Αυτή η ενέργεια προτείνεται μόνο για "
+"προχωρημένους χρήστες.\n"
+"Συμβουλευτείτε την έντυπη τεκμηρίωση ή τη σχετική ενσωματωμένη βοήθεια στο "
+"Κέντρο Ελέγχου του Mageia.\n"
+"\n"
+" * «%s»: από αυτή την καταχώριση μπορείτε να ρυθμίσετε λεπτομερώς ποιες "
+"υπηρεσίες\n"
+"θα εκτελούνται στον υπολογιστή σας. Αν σκοπεύετε να χρησιμοποιήσετε αυτό το "
+"σύστημα\n"
+"ως διακομιστή, είναι καλό να ελέγξετε προσεκτικά αυτές τις ρυθμίσεις."
-#: ../help.pm:858
-#, fuzzy, c-format
+#: ../help.pm:809
+#, c-format
+msgid "TV card"
+msgstr "Κάρτα τηλεόρασης"
+
+#: ../help.pm:809
+#, c-format
msgid "ISDN card"
-msgstr "Εσωτερική κάρτα ISDN"
+msgstr "Κάρτα ISDN"
#: ../help.pm:858
-#, fuzzy, c-format
+#, c-format
msgid "Graphical Interface"
msgstr "Γραφικό περιβάλλον"
#: ../help.pm:861
-#, fuzzy, c-format
+#, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
-"Επιλέξτε τον δίσκο που θέλετε να διαγράψετε για να εγκαταστήσετε \n"
-"την νέα κατάτμηση Mandriva Linux. ΠΡΟΣΟΧΗ: Όλα τα δεδομένα θα διαγραφούν\n"
-"και θα είναι αδύνατη η επαναφορά τους!"
+"Επιλέξτε τον σκληρό δίσκο που θέλετε να διαγράψετε για να εγκαταστήσετε\n"
+"τη νέα κατάτμηση Mageia. Προσέξτε, όλα τα δεδομένα σε αυτόν τον δίσκο\n"
+"θα χαθούν και δεν θα είναι ανακτήσιμα!"
#: ../help.pm:866
-#, fuzzy, c-format
+#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
-"Κάντε κλικ στο \"Επόμενο ->\" εάν θέλετε να διαγράψετε όλα τα δεδομένα\n"
-"τις κατατμήσεις που βρίσκονται στον σκληρό σας δίσκο. Προσοχή μετά\n"
-"που θα κλικ στο \"Επόμενο ->\"δεν θα μπορείτε να ανακτήσετε τα δεδομένα\n"
-"και τις κατατμήσεις που βρίσκονται στον δίσκο μαζί και τα Windows\n"
-" Επόμενο\n"
-"\n"
-"Κάντε κλικ στο \"<- Προηγούμενο\" για να τερματίσετε τη λειτουργία αυτή\n"
-"χωρίς να χάσετε τα δεδομένα και τις κατατμήσεις σας στο δίσκο."
+"Κάντε κλικ στο «%s» αν θέλετε να διαγράψετε όλα τα δεδομένα και τις "
+"κατατμήσεις\n"
+"που υπάρχουν σε αυτόν τον σκληρό δίσκο. Προσοχή: μετά το πάτημα του «%s»,\n"
+"δεν θα μπορείτε να ανακτήσετε κανένα από τα δεδομένα και τις κατατμήσεις "
+"που\n"
+"βρίσκονταν σε αυτόν τον δίσκο, συμπεριλαμβανομένων των δεδομένων των "
+"Windows.\n"
+"\n"
+"Κάντε κλικ στο «%s» για να ακυρώσετε αυτή τη διαδικασία χωρίς να χαθούν\n"
+"δεδομένα και κατατμήσεις από αυτόν τον σκληρό δίσκο."
#: ../help.pm:872
#, c-format
@@ -1788,4 +2121,3 @@ msgstr "Επόμενο ->"
#, c-format
msgid "<- Previous"
msgstr "<- Προηγούμενο"
-
diff --git a/perl-install/install/help/po/eo.po b/perl-install/install/help/po/eo.po
index 528cfe41a..24b9180c0 100644
--- a/perl-install/install/help/po/eo.po
+++ b/perl-install/install/help/po/eo.po
@@ -8,26 +8,28 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX-help-eo\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2007-03-14 18:27+0100\n"
"Last-Translator: Vilhelmo Lutermano <vlutermano@free.fr>\n"
"Language-Team: <eo@li.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Antaŭ ol daŭrigi, legu zorge la patent-regulojn. Ili kovras la tutan\n"
"eldonaĵon de Mandriva Linukso. Se vi konsentas kun ĉiuj reguloj, kiujn\n"
-"la teksto enhavas, alklaku la keston \"%s\". Se ne, alklakante la butonon \"%s\"\n"
+"la teksto enhavas, alklaku la keston \"%s\". Se ne, alklakante la butonon "
+"\"%s\"\n"
"restartigos vian komputilon."
#: ../help.pm:20
@@ -70,10 +72,14 @@ msgid ""
"security), choose the desired user and window manager, then click on\n"
"\"%s\". If you're not interested in this feature, uncheck the \"%s\" box."
msgstr ""
-"GNU/Linux estas multuzula sistemo, kio signifas, ke ĉiu uzulo povas havi siajn\n"
-"proprajn preferojn, proprajn dosierojn kaj tiel plu. Sed malsame al \"root\", kiu\n"
-"estas la sistem-mastrumanto, la uzuloj kiujn vi aldonas ĉe tiu ĉi punkto, ne rajtos\n"
-"ŝanĝi ion ajn krom siajn proprajn dosierojn kaj siajn proprajn konfiguraĵojn,\n"
+"GNU/Linux estas multuzula sistemo, kio signifas, ke ĉiu uzulo povas havi "
+"siajn\n"
+"proprajn preferojn, proprajn dosierojn kaj tiel plu. Sed malsame al \"root"
+"\", kiu\n"
+"estas la sistem-mastrumanto, la uzuloj kiujn vi aldonas ĉe tiu ĉi punkto, ne "
+"rajtos\n"
+"ŝanĝi ion ajn krom siajn proprajn dosierojn kaj siajn proprajn "
+"konfiguraĵojn,\n"
"per tio la sistemo estas protektita kontraŭ senintencaj aŭ malicaj ŝanĝoj\n"
"kiuj povas tuŝi la tutan sistemon. Vi devas krei almenaŭ unu unu regulan\n"
"uzulon por vi mem -- tiu estas la konto kiun vi normale uzu por\n"
@@ -83,21 +89,27 @@ msgstr ""
"eraron kiel regula uzulo, la plej malbona afero kiu povas okazi estas ke vi\n"
"perdas iajn informojn, sed vi ne detruas la tutan sistemon.\n"
"\n"
-"La unua kampo demandas vin pri reala nomo. Kompreneble, tio ne estas oficiala\n"
-"-- vi povas enigi kion ajn vi ŝatas. DrakX uzos la unuan vorton kiun vi entajpas\n"
+"La unua kampo demandas vin pri reala nomo. Kompreneble, tio ne estas "
+"oficiala\n"
+"-- vi povas enigi kion ajn vi ŝatas. DrakX uzos la unuan vorton kiun vi "
+"entajpas\n"
"en tiun kampon kaj kopios ĝin al la \"%s\", kiu estas la nomo\n"
-"kiun tiu uzulo enigos por ensaluti en la sistemon. Se vi deziras, vi povas surskribi\n"
+"kiun tiu uzulo enigos por ensaluti en la sistemon. Se vi deziras, vi povas "
+"surskribi\n"
"la defaŭltan kaj ŝanĝi la uzulnomon. La venonta paŝo estas enigi pasvorton.\n"
"El sekureca vidpunkto, neprivilegiita (regula) uzul-pasvorto ne\n"
-"estas tiom grava kiel la \"root\"-pasvorto, sed tio ne estas kialo por neglekti ĝin\n"
-"lasante ĝin malplena aŭ fari ĝin tro simpla: ĉiukaze viaj dosieroj povas esti\n"
+"estas tiom grava kiel la \"root\"-pasvorto, sed tio ne estas kialo por "
+"neglekti ĝin\n"
+"lasante ĝin malplena aŭ fari ĝin tro simpla: ĉiukaze viaj dosieroj povas "
+"esti\n"
"elmetitaj al risko.\n"
"\n"
"Se vi alklakas \"%s\", vi povas aldoni kromajn uzulojn. Aldonu uzulon por\n"
"ĉiu de viaj amikoj, via patro, via fratino, ktp. Alklaku \"%s\" kiam\n"
"vi finis la aldonon de uzuloj.\n"
"\n"
-"Alklaki la butonon \"%s\" ebligas al vi ŝanĝi la defaŭltan \"terminalon\" por\n"
+"Alklaki la butonon \"%s\" ebligas al vi ŝanĝi la defaŭltan \"terminalon\" "
+"por\n"
"tiu uzulo (bash estas defaŭlta).\n"
"\n"
"Kiam vi finis la aldonon de uzuloj, vi estos petata elekti uzulon kiu estos\n"
@@ -108,13 +120,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Ĉu vi deziras uzi tiun funkcion?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -124,36 +147,43 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
-"Ĉi tie estas listigitaj la ekzistantaj linuksaj subdiskoj detektitaj sur via fiksdisko.\n"
-"Vi povas konservi la elektojn faritajn de la sorĉilo, ĉar ili taŭgas por la plej multaj\n"
-"normalaj instaloj. Se vi faras iajn ŝanĝojn, vi devas almenaŭ difini subdiskon por\n"
-"root (\"/\"). Ne elektu subdiskon tro malgranda aŭ vi ne povos instali sufiĉe da programoj.\n"
-"Se vi deziras stoki viajnviajn datenojn en"
-"apartan subdiskon,\n"
-"vi devas ankaŭ krei subdiskon \"/home\" (nur ebla se vi povas havi pli ol unu linuksan subdiskon).\n"
-"\n"
-"Ĉiu subdisko estas listigita jene: \"Nomo\", "
-"\"Kapacito\".\n"
+"Ĉi tie estas listigitaj la ekzistantaj linuksaj subdiskoj detektitaj sur via "
+"fiksdisko.\n"
+"Vi povas konservi la elektojn faritajn de la sorĉilo, ĉar ili taŭgas por la "
+"plej multaj\n"
+"normalaj instaloj. Se vi faras iajn ŝanĝojn, vi devas almenaŭ difini "
+"subdiskon por\n"
+"root (\"/\"). Ne elektu subdiskon tro malgranda aŭ vi ne povos instali "
+"sufiĉe da programoj.\n"
+"Se vi deziras stoki viajnviajn datenojn enapartan subdiskon,\n"
+"vi devas ankaŭ krei subdiskon \"/home\" (nur ebla se vi povas havi pli ol "
+"unu linuksan subdiskon).\n"
+"\n"
+"Ĉiu subdisko estas listigita jene: \"Nomo\", \"Kapacito\".\n"
"\n"
"\"Nomo\" estas strukturita: \"fiksdiska tipo\", \"fiksdiska numero\",\n"
"\"subdisko-numero\" (ekzemple, \"hda1\".\n"
@@ -170,34 +200,35 @@ msgstr ""
"\n"
" * \"d\" signifas \"malĉefa fiksdisko sur la sekundara IDE-kontrolilo.\n"
"\n"
-"Kun SCSI-fiksdiskoj, \"a\" signifas \"plej malalta SCSI-ID\", \"b\" signifas\n"
+"Kun SCSI-fiksdiskoj, \"a\" signifas \"plej malalta SCSI-ID\", \"b\" "
+"signifas\n"
"\"dua plej malalta SCSI-ID\", ktp."
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"La instalado de Mandriva Linux estas eldonita sur pluraj KD-ROM-oj. Se elektita\n"
-"pakaĵo troviĝas sur alia KD-ROM-o, DrakX elĵetos la aktualan KD kaj petos vin enigi\n"
+"La instalado de Mageia estas eldonita sur pluraj KD-ROM-oj. Se elektita\n"
+"pakaĵo troviĝas sur alia KD-ROM-o, DrakX elĵetos la aktualan KD kaj petos "
+"vin enigi\n"
"la postulatan. Se vi ne havas la postulatan kompaktdiskon ĉemane,\n"
"alklaku \"%s\", la koncernaj pakaĵoj ne estos\n"
"instalitaj."
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -210,8 +241,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -248,7 +278,8 @@ msgid ""
"command-line interface. The total size of this installation is about 65\n"
"megabytes."
msgstr ""
-"Venis la tempo por difini kiujn programojn vi deziras instali en via sistemo.\n"
+"Venis la tempo por difini kiujn programojn vi deziras instali en via "
+"sistemo.\n"
"Estas miloj da pakaĵoj haveblaj por Mandriva Linukso, kaj por faciligi\n"
"mastrumi ilin, ili estas metitaj en grupoj de similaj\n"
"aplikaĵoj.\n"
@@ -262,13 +293,15 @@ msgstr ""
"plurajn el la grupoj en la kategorio ''laborejo''.\n"
"\n"
" * \"%s\": se vi planas uzi vian maŝinon por programado, selektu la\n"
-"taŭgan grupon el tiu kategorio. La "
-"speciala grupo \"LSB\" [por: Linux Standard Base]\n"
+"taŭgan grupon el tiu kategorio. La speciala grupo \"LSB\" [por: Linux "
+"Standard Base]\n"
"konfiguros vian sistemon tiel ke ĝi kongruas kiom eble plej kun la\n"
"agordoj de Linux Standard Base.\n"
"\n"
-" Selekto de la grupo \"LSB\" instalos ankaŭ la seriojn de la kerno \"2.4\",\n"
-"anstataŭ la defaŭltan \"2.6\". Tio estas por certigi centelcentan LSB-kongruecon\n"
+" Selekto de la grupo \"LSB\" instalos ankaŭ la seriojn de la kerno "
+"\"2.4\",\n"
+"anstataŭ la defaŭltan \"2.6\". Tio estas por certigi centelcentan LSB-"
+"kongruecon\n"
"de la sistemo. Tamen, se vi ne selektas la grupon \"LSB\", vi ja\n"
"havos sistemon kiu estas proksimume centelcente LSB-kongrua.\n"
"\n"
@@ -282,11 +315,13 @@ msgstr ""
"Movi la muso-montrilon super grupnomo montros mallongan klarigan\n"
"tekston pri tiu grupo.\n"
"\n"
-"Vi povas elekti la keston \"%s\", kiu estas utila se vi estas familiara kun la\n"
+"Vi povas elekti la keston \"%s\", kiu estas utila se vi estas familiara kun "
+"la\n"
"disponeblaj pakaĵoj aŭ se vi deziras havi kompletan kontrolon super\n"
"tio kio estas instalota.\n"
"\n"
-"Se vi startigas la instaladon per la maniero \"%s\", vi povas malselekti ĉiujn grupojn\n"
+"Se vi startigas la instaladon per la maniero \"%s\", vi povas malselekti "
+"ĉiujn grupojn\n"
"kaj preventi la instaladon de iaj ajn novaj pakaĵoj. Tio estas utila por\n"
"ripari aŭ ĝisdatigi ekzistantan sistemon.\n"
"\n"
@@ -302,7 +337,8 @@ msgstr ""
"\n"
" * \"%s\": instalos la absolute minimuman nombron da necesaj pakaĵoj\n"
"por akiri funkciantan Linuksan sistemon. Per tiu instalaĵo vi havos nur\n"
-"komandolinian interfacon. La totala grandeco de tiu instalo estas proksimume 65\n"
+"komandolinian interfacon. La totala grandeco de tiu instalo estas proksimume "
+"65\n"
"megabajtoj."
#: ../help.pm:149 ../help.pm:591
@@ -321,7 +357,7 @@ msgid "Truly minimal install"
msgstr "Vere minimuma instalado"
#: ../help.pm:152
-#, c-format
+#, fuzzy, c-format
msgid ""
"If you choose to install packages individually, the installer will present\n"
"a tree containing all packages classified by groups and subgroups. While\n"
@@ -334,10 +370,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -362,17 +398,20 @@ msgstr ""
"tiu arbo, vi povas elekti tutajn grupojn, subgrupojn aŭ individuajn\n"
"pakaĵojn.\n"
"\n"
-"Kiam ajn vi elektas pakaĵon el la arbo, aperos priskribo dekstre kiu informas vin\n"
-"pri la utilo de tiu pakaĵo. "
-"\n"
+"Kiam ajn vi elektas pakaĵon el la arbo, aperos priskribo dekstre kiu "
+"informas vin\n"
+"pri la utilo de tiu pakaĵo. \n"
"\n"
-"!! Se servila pakaĵo estas elektita, ĉu ĉar vi speciale elektis la individuan pakaĵon\n"
+"!! Se servila pakaĵo estas elektita, ĉu ĉar vi speciale elektis la "
+"individuan pakaĵon\n"
"aŭ ĉar ĝi estis parto de grupo da pakaĵoj,\n"
"vi estos petata konfirmi ke vi vere deziras ke la serviloj estu\n"
-"instalitaj. Defaŭlte, Mandriva Linux aŭtomate startigos ĉiajn instalitajn\n"
-"servojn ĉe startotempo. Eĉ se ili estas sekuraj kaj ne havas iajn konatajn problemojn\n"
-"kiam la eldonaĵo estis sendita, tute eblas ke sekureco-truoj estis malkovritaj\n"
-"post kiam tiu ĉi versio de Mandriva Linux estis finita. Se vi ne scias kiun\n"
+"instalitaj. Defaŭlte, Mageia aŭtomate startigos ĉiajn instalitajn\n"
+"servojn ĉe startotempo. Eĉ se ili estas sekuraj kaj ne havas iajn konatajn "
+"problemojn\n"
+"kiam la eldonaĵo estis sendita, tute eblas ke sekureco-truoj estis "
+"malkovritaj\n"
+"post kiam tiu ĉi versio de Mageia estis finita. Se vi ne scias kiun\n"
"apartan servon ĝi donas aŭ kial ĝi estas instalata, tiam alklaku \"%s\".\n"
"Alklakante \"%s\" instalos la listigitajn servojn, kiaj ili estos\n"
"aŭtomate startigataj ĉe la starto de la sistemo.!!\n"
@@ -381,13 +420,16 @@ msgstr ""
"kiam ajn la instalilo aŭtomate selektas pakaĵon por solvi\n"
"dependec-demandon. Kelkaj pakaĵoj dependas de aliaj kaj la instalado de\n"
"unu aparta pakaĵo povas necesigi la instaladon de aliaj pakaĵoj. La\n"
-"instalili povas eltrovi kiuj pakaĵoj estas necesaj por kontentigi dependecon\n"
+"instalili povas eltrovi kiuj pakaĵoj estas necesaj por kontentigi "
+"dependecon\n"
"por sukcese kompletigi la instaladon.\n"
"\n"
"La eta disket-ikono ĉe la fino de la listo permesas al vi ŝarĝi \n"
"pakaĵo-liston kreitan dum antaŭa instalado. Tio estas helpa se vi\n"
-"havas certan nombron da maŝinoj kiujn vi deziras konfiguri idente. Se vi alklakas\n"
-"tiun ikonon, vi estos petata enigi la disketon kreitan fine de alia instalado.\n"
+"havas certan nombron da maŝinoj kiujn vi deziras konfiguri idente. Se vi "
+"alklakas\n"
+"tiun ikonon, vi estos petata enigi la disketon kreitan fine de alia "
+"instalado.\n"
"Vidu la duan konsilon de la lasta paŝo pri kiel krei tian\n"
"disketon."
@@ -396,21 +438,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Aŭtomataj dependecoj"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": klaki sur la butonon \"%s\" malfermos la sorĉilon de la presila\n"
-"konfigurado. Konsultu la tiurilatan ĉapitron de la "
-"''Start-Gvidilo'' por pli da\n"
-"informoj pri kiel agordi novan presilon. La interfaco prezentita en nia\n"
-"manlibro similas al tiu uzata dum instalado."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -442,7 +470,8 @@ msgstr ""
"Tamen, se vi ne estas certa ĉu servo estas utila aŭ ne,\n"
"estas pli sekure lasi la defaŭltan sintenon.\n"
"\n"
-"!!Ege zorgu ĉe ĉi tiu paŝo se vi intencas uzi vian komputilon kiel servilon:\n"
+"!!Ege zorgu ĉe ĉi tiu paŝo se vi intencas uzi vian komputilon kiel "
+"servilon:\n"
"ne startu servojn kiujn vi ne bezonas. Memoru ke certaj servoj povas esti\n"
"danĝeraj se ili estas enŝaltitaj en servilo. Ĝenerale,\n"
"elektu nur tiujn servojn kiujn vi vere bezonas.!!"
@@ -463,7 +492,8 @@ msgid ""
"choose a time server located near you. This option actually installs a time\n"
"server which can be used by other machines on your local network as well."
msgstr ""
-"GNU/Linux mastrumas la tempon en GMT (Grinviĉa meza tempo) kaj tradukas ĝin al\n"
+"GNU/Linux mastrumas la tempon en GMT (Grinviĉa meza tempo) kaj tradukas ĝin "
+"al\n"
"la loka tempo laŭ la horzono kiun vi elektis. Se la horloĝo en via\n"
"ĉefkarto estas metita al loka tempo, prefere elŝaltu tion per malselekto de\n"
"\"%s\", kio sciigos al GNU/Linux ke la sistemhorloĝo kaj la aparathorloĝo\n"
@@ -473,10 +503,16 @@ msgstr ""
"La opcio \"%s\" aŭtomate reguligas la sistemhorloĝon per\n"
"konekto al fora temposervilo en Interreto. Por ebligi tiun opcion funkcii,\n"
"vi devas disponi pri funkcianta interret-konekto. Ni rekomendas ke vi\n"
-"elektu temposervilon lokitan proksime de vi. Tiu opcio instalas temposervilon\n"
+"elektu temposervilon lokitan proksime de vi. Tiu opcio instalas "
+"temposervilon\n"
"kiu estas ankaŭ uzebla de aliaj maŝinoj en via loka reto."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Aŭtomata hor-sinkronizado"
@@ -505,11 +541,11 @@ msgstr ""
"plej bone taŭgas por viaj bezonoj."
#: ../help.pm:234
-#, c-format
+#, fuzzy, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -563,9 +599,10 @@ msgid ""
"want to check \"%s\" if your machine is to act as a server, or if you were\n"
"not successful in getting the display configured."
msgstr ""
-"X (por X-fenestra sistemo) estas la koro de la GNU/Linuksa grafika interfaco\n"
+"X (por X-fenestra sistemo) estas la koro de la GNU/Linuksa grafika "
+"interfaco\n"
"sur kiu funkcias ĉiuj grafikaj medioj (KDE, GNOME, AfterStep,\n"
-"WindowMaker, ktp) kiuj venas kun Mandriva Linux.\n"
+"WindowMaker, ktp) kiuj venas kun Mageia.\n"
"\n"
"Vi vidos liston de diversaj parametroj ŝanĝeblaj por akiri plej bonan\n"
"grafikan vidigon.\n"
@@ -592,7 +629,8 @@ msgstr ""
"\n"
"Distingivo\n"
"\n"
-" Ĉi tie vi povas elekti la distingivojn kaj kolorprofundojn haveblajn por via\n"
+" Ĉi tie vi povas elekti la distingivojn kaj kolorprofundojn haveblajn por "
+"via\n"
"grafika aparato. Elektu iun kiu plej bone taŭgas por viaj bezonoj (vi povas\n"
"fari ŝanĝojn post la instalo). Ekzemplo de la elektita\n"
"konfiguraĵo estas montrata en la ekranbildo.\n"
@@ -646,8 +684,10 @@ msgid ""
msgstr ""
"Distingivo\n"
"\n"
-" Ĉi tie vi povas elekti la distingivon kaj kolorprofundojn haveblajn por via\n"
-"grafika aparato. Elektu tiun kiu plej bone taŭgas por viaj bezonoj (vi povos\n"
+" Ĉi tie vi povas elekti la distingivon kaj kolorprofundojn haveblajn por "
+"via\n"
+"grafika aparato. Elektu tiun kiu plej bone taŭgas por viaj bezonoj (vi "
+"povos\n"
"fari ŝanĝojn post la instalo). Ekzemplo de la elektita\n"
"konfigurado estas montrata en la ekranbildo."
@@ -680,41 +720,45 @@ msgstr ""
"sukcesis konfiguri la grafikan interfacon."
#: ../help.pm:319
-#, c-format
+#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -723,15 +767,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -755,8 +799,7 @@ msgstr ""
"kaj povas perdigi datenojn, subdiskado povas esti timiga kaj stresiga\n"
"por sensperta uzulo. Bonŝance, DrakX enkludas sorĉilon kiu\n"
"simpligas tiun proceson. Antaŭ ol daŭrigi ĉe tiu paŝo, tralegu la\n"
-"reston de tiu ĉi sekcio kaj, antaŭ ĉio, agu sen urĝo. "
-"\n"
+"reston de tiu ĉi sekcio kaj, antaŭ ĉio, agu sen urĝo. \n"
"\n"
"Depende de la konfigurado de via fiksdisko, pluraj opcioj\n"
"disponeblas:\n"
@@ -764,20 +807,25 @@ msgstr ""
" * \"%s\". Tiu opcio faros aŭtomatan subdiskigon de via malplena(j)\n"
"disko(j). Se vi elektas tiun opcion, ne okazos pluaj invitoj.\n"
"\n"
-" * \"%s\". La sorĉilo detektis unu aŭ plurajn ekzistantajn Linuksajn subdiskojn sur\n"
+" * \"%s\". La sorĉilo detektis unu aŭ plurajn ekzistantajn Linuksajn "
+"subdiskojn sur\n"
"via fiksdisko. Se vi deziras uzi ilin, elektu tiun ĉi opcion. Tiam vi\n"
"estos petata elekti la surmetingojn por ĉiu subdisko.\n"
"La necesaj surmetingoj estas selektitaj defaŭlte, kaj plej ofte estas\n"
"bona ideo konservi ilin.\n"
"\n"
-" * \"%s\". Se Vindozo (mikrosofta) estas instalita sur via fiksdisko kaj okupas\n"
+" * \"%s\". Se Vindozo (mikrosofta) estas instalita sur via fiksdisko kaj "
+"okupas\n"
"la tutan haveblan spacon sur ĝi, vi devos krei liberan spacon por\n"
-"GNU/Linukso. Por tion fari, vi povas forviŝi vian Mikrosoft-Vindozan subdiskon kaj\n"
-"datenojn (vidu solvon ''Forviŝi tutan diskon'') aŭ regrandecigi vian Mikrosoft-Vindozan\n"
+"GNU/Linukso. Por tion fari, vi povas forviŝi vian Mikrosoft-Vindozan "
+"subdiskon kaj\n"
+"datenojn (vidu solvon ''Forviŝi tutan diskon'') aŭ regrandecigi vian "
+"Mikrosoft-Vindozan\n"
"FAT- aŭ NTFS-subdiskon. Regrandecigi eblas sen perdi ian\n"
"datenon, kondiĉe ke vi antaŭe malfragmentigis la vindozan subdiskon.\n"
"Sekurkopii viajn datenojn estas forte konsilata. Uzi tiun opcion estas\n"
-"rekomendata se vi deziras uzi ambaŭ, Mandrivan Linukson kaj Mikrosoftan Vindozon sur\n"
+"rekomendata se vi deziras uzi ambaŭ, Mandrivan Linukson kaj Mikrosoftan "
+"Vindozon sur\n"
"la sama komputilo.\n"
"\n"
" Antaŭ ol elekti tiu opcion, bonvole komprenu ke post tiu\n"
@@ -785,22 +833,25 @@ msgstr ""
"ol kiam vi komencis. Vi havos malpli da libera spaco sub Vindozo\n"
"por stoki viajn datenojn aŭ por instali novajn programojn.\n"
"\n"
-" * \"%s\". Se vi deziras forviŝi ĉiujn datenojn kaj ĉiujn subdiskojn troviĝantajn sur\n"
+" * \"%s\". Se vi deziras forviŝi ĉiujn datenojn kaj ĉiujn subdiskojn "
+"troviĝantajn sur\n"
"via fiksdisko kaj anstataŭigi ilin per via nova Mandriva Linuksa sistemo, "
"elektu\n"
-"tiun ĉi opcion. Estu zorgema, ĉar vi ne kapablos malfari tiun "
-"operacion\n"
+"tiun ĉi opcion. Estu zorgema, ĉar vi ne kapablos malfari tiun operacion\n"
"post kiam vi konfirmis.\n"
"\n"
-" !! Se vi elektas tiun opcion, ĉiuj datenoj sur via disko estos detruitaj. !!\n"
+" !! Se vi elektas tiun opcion, ĉiuj datenoj sur via disko estos "
+"detruitaj. !!\n"
"\n"
" * \"%s\". Tiu opcio aperas kiam la fiksdisko estas komplete okupata de\n"
-"Mikrosoft-Vindozo. Elekti tiun opcion simple forviŝos ĉion kio troviĝas sur la\n"
+"Mikrosoft-Vindozo. Elekti tiun opcion simple forviŝos ĉion kio troviĝas sur "
+"la\n"
"disko kaj komencos novan subdiskadon.\n"
"\n"
" !! Se vi elektas tiun opcion, ĉiuj datenoj sur via disko perdiĝos. !!\n"
"\n"
-" * \"%s\". Elektu tiun opcion se vi deziras permane subdiskigi vian fiksdiskon.\n"
+" * \"%s\". Elektu tiun opcion se vi deziras permane subdiskigi vian "
+"fiksdiskon.\n"
"Estu zorgema -- tio estas potenca, sed danĝera elekto, kaj vi povas\n"
"tre facile perdi ĉiujn viajn datenojn. Pro tio, tiu opcio estas vere nur\n"
"rekomendata, se vi jam faris ion similan antaŭe kaj havas ian sperton.\n"
@@ -812,7 +863,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Uzu ekzistantan subdiskon"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Forviŝu la tutan diskon"
@@ -854,11 +910,14 @@ msgid ""
"\"mformat a:\", or \"fdformat /dev/fd0\" followed by \"mkfs.vfat\n"
"/dev/fd0\"."
msgstr ""
-"Jen vi fine. La instalado estas nun kompleta kaj via GNU/Linuksa sistemo estas\n"
+"Jen vi fine. La instalado estas nun kompleta kaj via GNU/Linuksa sistemo "
+"estas\n"
"preta por uzado. Nur alklaku \"%s\" por restartigi la sistemon. Ne forgesu\n"
"elpreni la instal-rimedon (KD-ROM-on aŭ disketon). La unua afero kiun vi\n"
-"devus vidi post kiam via komputilo finis sian testadon de aparataro, estas la\n"
-"startigila menuo, kiu donas al vi la elekton kiun mastruman sistemon vi volas startigi.\n"
+"devus vidi post kiam via komputilo finis sian testadon de aparataro, estas "
+"la\n"
+"startigila menuo, kiu donas al vi la elekton kiun mastruman sistemon vi "
+"volas startigi.\n"
"\n"
"La butono \"%s\" montras du kromajn butonojn por\n"
"\n"
@@ -884,7 +943,8 @@ msgstr ""
"startigu la instaladon. Ĉe la invito, premu la [F1]-klavon, tajpu >>linux\n"
"defcfg=\"floppy\"<< kaj premu la [Enigo]-klavon.\n"
"\n"
-"(*) Vi bezonas disketon formatitan kun FAT. Por krei iun sub GNU/Linux, tajpu\n"
+"(*) Vi bezonas disketon formatitan kun FAT. Por krei iun sub GNU/Linux, "
+"tajpu\n"
"\"mformat a:\", aŭ \"fdformat /dev/fd0\" sekvata de \"mkfs.vfat\"\n"
"/dev/fd0\"."
@@ -893,8 +953,23 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Kreu meminstalan disketon"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
+#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -913,17 +988,20 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
msgstr ""
-"Se vi elektas reuzi kelkajn tradiciajn GNU/Linux-subdiskojn, vi povas deziri\n"
-"reformati kelkajn de ili kaj estingi datenojn kiujn ili enhavas. Por tion fari, bonvolu\n"
+"Se vi elektas reuzi kelkajn tradiciajn GNU/Linux-subdiskojn, vi povas "
+"deziri\n"
+"reformati kelkajn de ili kaj estingi datenojn kiujn ili enhavas. Por tion "
+"fari, bonvolu\n"
"selekti tiujn subdiskojn.\n"
"\n"
"Bonvolu noti ke ne necesas reformati ĉiujn antaŭ-ekzistantajn\n"
-"subdiskojn. Vi devas reformati la subdiskojn kiuj enhavas la mastrum-sistemon\n"
+"subdiskojn. Vi devas reformati la subdiskojn kiuj enhavas la mastrum-"
+"sistemon\n"
"(kiel \"/\", \"/usr\" aŭ \"/var\"), sed vi ne bezonas reformati\n"
"subdiskojn kun datenoj kiujn vi deziras konservi (normale \"/home\").\n"
"\n"
@@ -934,14 +1012,15 @@ msgstr ""
"Alklaku \"%s\" kiam vi pretas formati la subdiskojn.\n"
"\n"
"Alklaku \"%s\" se vi deziras elekti alian subdiskon por instali vian nova\n"
-"Mandriva Linux-mastrum-sistemon.\n"
+"Mageia-mastrum-sistemon.\n"
"\n"
-"Alkalku \"%s\" se vi deziras selekti subdiskojn kiuj estu kontrolataj por malbonaj blokoj sur la disko."
+"Alkalku \"%s\" se vi deziras selekti subdiskojn kiuj estu kontrolataj por "
+"malbonaj blokoj sur la disko."
#: ../help.pm:437
-#, c-format
+#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -966,7 +1045,7 @@ msgstr ""
"la selektitajn pakaĵo(j)n, aŭ \"%s\" por ĉesigi."
#: ../help.pm:450
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -975,7 +1054,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -984,8 +1063,8 @@ msgstr ""
"Ĉe tiu punkto, DrakX ebligos vin elekti la sekurec-nivelon kiun vi deziras\n"
"por via maŝino. Ĝenerale, la sekurec-nivelo estu metita pli alta\n"
"se la maŝino devas enhavi gravegajn datenojn, aŭ se ĝi estos rekte elmetita\n"
-"al Interreto. Ĝenerale, pli alta sekureco-nivelo akireblas koste de facila uzado. "
-"\n"
+"al Interreto. Ĝenerale, pli alta sekureco-nivelo akireblas koste de facila "
+"uzado. \n"
"\n"
"Se vi ne scias kion elekti, konservu la defaŭltan opcion. Vi povos ŝanĝi\n"
"ĝin poste per la draksec-ilo, kiu estas parto de la Mandriva-Linus-\n"
@@ -1000,24 +1079,27 @@ msgid "Security Administrator"
msgstr "Sekurec-mastrumanto"
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1033,21 +1115,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1064,20 +1148,13 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"Nun vi devas elekti kiuj subdisko(j) estu uzata(j) por instalado\n"
"de via Mandriva-Linuksa sistemo. Se jam estas difinitaj subdiskoj,\n"
"ĉu de antaŭa instalo de GNU/Linukso aŭ de alia\n"
-"subdiskilo, vi povas uzi ekzistantajn subdiskojn. "
-"Alie, fiksdiskaj\n"
+"subdiskilo, vi povas uzi ekzistantajn subdiskojn. Alie, fiksdiskaj\n"
"subdiskoj estas difinotaj.\n"
"\n"
"Por krei subdiskojn, vi devas unue elekti fiksdiskon. Vi povas elekti\n"
@@ -1088,13 +1165,12 @@ msgstr ""
"\n"
" * \"%s\": tiu opcio forviŝas ĉiujn subdiskojn sur la selektita fiksdisko.\n"
"\n"
-" * \"%s\": Tiu opcio ebligas vin krei aŭtomate subdiskojn de ext3 kaj swap\n"
+" * \"%s\": Tiu opcio ebligas vin krei aŭtomate subdiskojn de ext4 kaj swap\n"
"en la libera spaco de via fiksdisko\n"
"\n"
"\"%s\": donas aliron al kromaj eblecoj:\n"
"\n"
-"-* \"%s\": sekurkopias la subdisk-tabelon al disketo. "
-"Utila por posta\n"
+"-* \"%s\": sekurkopias la subdisk-tabelon al disketo. Utila por posta\n"
"rehavo de la subdisk-tabelo se necesas. Estas forte konsilate ke vi\n"
"faru tiun paŝon.\n"
"\n"
@@ -1118,13 +1194,13 @@ msgstr ""
" * \"%s\": uzu tiun opcion por malfari viajn ŝanĝojn.\n"
"\n"
" * \"%s\": ebligas kromajn agojn pri subdiskoj (speco, opcioj, formato)\n"
-"kaj donas pliajn informojn pri la fiksdisko. "
-"\n"
+"kaj donas pliajn informojn pri la fiksdisko. \n"
"\n"
" * \"%s\": kiam vi finis subdiskigi vian fiksdiskon, tio\n"
"konservos viajn ŝanĝojn sur la disko.\n"
"\n"
-"Kiam vi difinas la grandecon de subdisko, vi povas fajne agordi la grandecon\n"
+"Kiam vi difinas la grandecon de subdisko, vi povas fajne agordi la "
+"grandecon\n"
"de la subdisko uzante la sago-klavojn sur via klavaro.\n"
"\n"
"Notu: vi povas atingi ĉiun opcion uzante la klavaron. Krozu tra la\n"
@@ -1140,54 +1216,79 @@ msgstr ""
"\n"
"Por akiri informojn pri la diversaj haveblaj dosier-sistem-tipoj, bonvolu\n"
"legi la ĉapitron ext2FS en la ''Referenca Manlibro''.\n"
-"\n"
-"Se vi instalas sur PPC-maŝinon, vi deziros krei malgrandan HFS-\n"
-"''praŝargo''-subdiskon de almenaŭ 1 MB kiu uzotas de la yaboot-\n"
-"startigilo. Se vi volas iomete pligrandigi tiun subdiskon, ni diru 50 MB, vi\n"
-"povas ankaŭ uzi ĝin por stoki tie kromajn kerno- kaj ramdisk-bildojn por\n"
-"paneaj situacioj de startigo."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Aŭtomata kroĉado de demeteblaj aparatoj"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Ŝanĝu inter normala/fakula reĝimo"
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Pli ol unu Microsoft-subdisko estas detektitaj sur via fiksdisko.\n"
@@ -1197,7 +1298,8 @@ msgstr ""
"Ĉiu subdisko estas listigita jene: \"Linux nomo\", \"Vindoza nomo\"\n"
"\"Kapacito\".\n"
"\n"
-"\"Linux nomo\" estas strukturita: \"tipo de fiksdisko\", \"numero de fiksdisko\",\n"
+"\"Linux nomo\" estas strukturita: \"tipo de fiksdisko\", \"numero de "
+"fiksdisko\",\n"
"\"subdisk-numero\" (ekzemple, \"hda1\").\n"
"\n"
"\"Tipo de fiksdisko\" estas \"hd\" se via fiksdisko estas IDE-fiksdisko kaj\n"
@@ -1233,31 +1335,32 @@ msgstr ""
"la videbla listo, alklaku la butonon \"%s\" por havigi la kompletan liston."
#: ../help.pm:572
-#, c-format
+#, fuzzy, c-format
msgid ""
"This step is activated only if an existing GNU/Linux partition has been\n"
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
-"Tiu ĉi paŝo estas aktiva nur se ekzistanta GNU/Linuksa subdisko estas trovita\n"
+"Tiu ĉi paŝo estas aktiva nur se ekzistanta GNU/Linuksa subdisko estas "
+"trovita\n"
"en via maŝino.\n"
"\n"
"DrakX bezonas nun scii ĉu vi deziras fari novan instaladon aŭ\n"
@@ -1270,11 +1373,13 @@ msgstr ""
"aŭ ŝanĝi la dosiersistemon, vi prefere uzu tiun ĉi opcion.\n"
"\n"
" * \"%s\". Tiu instal-klaso ebligas al vi ĝisdatigi la pakaĵojn kiuj estas\n"
-"aktuale instalitaj en via Mandriva-Linuksa sistemo. Viaj nunaj subdisk-sistemo\n"
+"aktuale instalitaj en via Mandriva-Linuksa sistemo. Viaj nunaj subdisk-"
+"sistemo\n"
"kaj uzul-datenoj ne estos tuŝataj. La plej multaj aliaj konfiguraj\n"
"paŝoj restas atingeblaj kaj similas al normala instalado.\n"
"\n"
-"Uzado de la opcio ''Ĝisdatigo'' devus bone funkcii sur Mandriva-Linuksaj sistemoj\n"
+"Uzado de la opcio ''Ĝisdatigo'' devus bone funkcii sur Mandriva-Linuksaj "
+"sistemoj\n"
"kun la versioj \"8.1\" aŭ postaj. Ne estas konsilinde fari ĝisdatigojn\n"
"sur Mandriva-Linuksaj versioj antaŭaj al \"8.1\"."
@@ -1303,7 +1408,8 @@ msgstr ""
"por vi aŭ elektu alian klavar-aranĝon.\n"
"\n"
"Eble vi ankaŭ ne havas klavaron kiu respondas precize al via\n"
-"lingvo: ekzemple, se vi estas angle parolanta sviso naskiĝinta en Svisio, vi eble\n"
+"lingvo: ekzemple, se vi estas angle parolanta sviso naskiĝinta en Svisio, vi "
+"eble\n"
"havas svisan klavaron. Aŭ se vi parolas la anglan kaj loĝas en Kebekio,\n"
"vi povas troviĝi en la sama situacio kie via denaska lingvo kaj\n"
"klavaro laŭ landa agordo ne kongruas. Ĉiukaze, tiu instal-paŝo\n"
@@ -1316,7 +1422,7 @@ msgstr ""
"klavaron inter la latina kaj la nelatinaj arangoj."
#: ../help.pm:612
-#, c-format
+#, fuzzy, c-format
msgid ""
"The first step is to choose your preferred language.\n"
"\n"
@@ -1332,8 +1438,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1362,20 +1467,23 @@ msgstr ""
"La unua paŝo estas elekti vian preferatan lingvon.\n"
"\n"
"Via elekto de la preferata lingvo efikas por la instalilo, la\n"
-"dokumentado, kaj la sistemon ĝenerale. Unue selektu la regionon en kiu vi troviĝas,\n"
+"dokumentado, kaj la sistemon ĝenerale. Unue selektu la regionon en kiu vi "
+"troviĝas,\n"
"poste la lingvon kiun vi parolas.\n"
"\n"
-"Alklaki la butonon \"%s\" ebligos al vi selekti aliajn lingvojn kiujn vi deziras\n"
+"Alklaki la butonon \"%s\" ebligos al vi selekti aliajn lingvojn kiujn vi "
+"deziras\n"
"instali en vian laborstacion, per tio instaliĝas la lingvospecifaj dosieroj\n"
-"por sistem-dokumentaĵoj kaj aplikaĵoj. Ekzemple, se hispanaj uzuloj uzos vian maŝinon,\n"
+"por sistem-dokumentaĵoj kaj aplikaĵoj. Ekzemple, se hispanaj uzuloj uzos "
+"vian maŝinon,\n"
"selektu Anglan kiel defaŭltan lingvon [se via lingvo estas la angla] en\n"
-"la arbeca vido kaj \"%s\" en la progresinta sekcio. "
-"\n"
+"la arbeca vido kaj \"%s\" en la progresinta sekcio. \n"
"\n"
-"Pri subteno de UTF-8 (unikodo): Unikodo estas nova tipar-kodigo destinita por\n"
-"kovri ĉiujn ekzistantajn lingvojn. Tamen, plena subteno por ĝi en GNU/Linux estas\n"
-"daŭre sub evoluigo. Pro tio, la uzo de "
-"UTF-8 fare de Mandriva Linux\n"
+"Pri subteno de UTF-8 (unikodo): Unikodo estas nova tipar-kodigo destinita "
+"por\n"
+"kovri ĉiujn ekzistantajn lingvojn. Tamen, plena subteno por ĝi en GNU/Linux "
+"estas\n"
+"daŭre sub evoluigo. Pro tio, la uzo de UTF-8 fare de Mageia\n"
"dependos de la elektoj kiujn faras la uzulo:\n"
"\n"
" * Se vi elektas lingvon kun forte tradiciaj kodaĵoj (lingvoj de latin1,\n"
@@ -1387,13 +1495,15 @@ msgstr ""
" * Se du aŭ pli da lingvoj estas necesaj, kaj se tiuj lingvoj ne uzas la\n"
"saman kodaĵon, tiam unikodo estos uzata por la tuta sistemo;\n"
"\n"
-" * Fine, oni povas ankaŭ trudi unikodon por la tuta sistemo laŭ decido de uzulo\n"
+" * Fine, oni povas ankaŭ trudi unikodon por la tuta sistemo laŭ decido de "
+"uzulo\n"
"per selekto de la opcio \"%s\" sendepende de kiuj lingvoj\n"
"estas elektitaj.\n"
"\n"
"Notu ke vi ne estas limigita por elekti unu solan kroman lingvon. Vi\n"
"povas elekti plurajn, aŭ eĉ instali ĉiujn per selekto de la kesto \"%s\".\n"
-"Selektante la subtenon por lingvo signifas ke tradukoj, litertiparoj, ortografi-kontroliloj,\n"
+"Selektante la subtenon por lingvo signifas ke tradukoj, litertiparoj, "
+"ortografi-kontroliloj,\n"
"ktp. estos ankaŭ instalitaj por tiu lingvo.\n"
"\n"
"Por ŝalti inter la diversaj instalitaj lingvoj sur via sistemo, vi povas\n"
@@ -1406,7 +1516,12 @@ msgstr ""
msgid "Espanol"
msgstr "Hispana"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1443,15 +1558,17 @@ msgid ""
"move your mouse about."
msgstr ""
"Normale, DrakX ne havas problemojn por detekti la nombron da butono sur via\n"
-"muso. Se tamen ĝi havas, ĝi supozas ke vi havs dubutonan muson kaj konfiguras\n"
-"ĝin por imitado de la tria butono. La tria butono de tributona muso akireblas\n"
+"muso. Se tamen ĝi havas, ĝi supozas ke vi havs dubutonan muson kaj "
+"konfiguras\n"
+"ĝin por imitado de la tria butono. La tria butono de tributona muso "
+"akireblas\n"
"per samtempa klako per la maldekstra kaj\n"
-"la dekstra musbutonoj. DrakX aŭtomate scias ĉu "
-"via muso uzas\n"
+"la dekstra musbutonoj. DrakX aŭtomate scias ĉu via muso uzas\n"
"interfacon PS/2, serian aŭ USB.\n"
"\n"
"Se vi havas 3-butonan muson sen rado, vi povas elekti muson \"%s\".\n"
-"DrakX tiam konfiguros vian muson tiel ke vi povas imiti la radon per ĝi: por tion fari, premu la mezan butonon kaj movu vian\n"
+"DrakX tiam konfiguros vian muson tiel ke vi povas imiti la radon per ĝi: por "
+"tion fari, premu la mezan butonon kaj movu vian\n"
"musmontrilon supren kaj malsupren.\n"
"\n"
"Se pro iu kialo vi deziras difini alian specon de muso, selektu ĝin\n"
@@ -1494,89 +1611,7 @@ msgstr ""
"Bonvolu elekti la ĝustan pordon. Ekzemple, la \"COM1\"-a\n"
"pordo sub MS Vindozo estas nomata \"ttyS0\" sub GNU/Linukso."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Tiu ĉi estas la plej grava decido-punkto por la sekureco de via GNU/Linuksa sistemo: vi devas enigi la pasvorton por \"root\". "
-"\"Root\" estas la sistem-mastrumanto\n"
-"estas la sola uzulo kun la permeso fari ĝisdatigojn, aldoni uzulojn,\n"
-"ŝanĝi la tutan sistem-konfiguraĵon, kaj tiel plu. Mallonge, \"root\" povas\n"
-"fari ĉion! Pro tio vi devas elekti pasvorton kiu estu malfacile divinebla:\n"
-"DrakX diros al vi ĉu la pasvorto de vi elektita estas tro simpla. Kiel vi povas vidi,\n"
-"vi ne estas devigata enigi pasvorton, "
-"sed ni forte malkonsilas tion.\n"
-"GNU/Linukso estas elmetita al eraroj de mastrumanto kiel ĉia alia\n"
-"mastrum-sistemo. Ĉar \"root\" povas superi ĉiuj limojn kaj\n"
-"senintence forviŝi ĉiujn datenojn sur subdiskoj per senzorga aliro al\n"
-"la subdiskoj mem, estas grave ke estu malfacile\n"
-"fariĝi \"root\".\n"
-"\n"
-"La pasvorto estu prefere miksaĵo el alfanumeraj signoj kaj almenaŭ 8\n"
-"signojn longa. Nenima skribu la pasvorton de \"root\" -- tio multe tro\n"
-"faciligus damaĝi vian sistemon.\n"
-"\n"
-"Konsileto: ne faru la pasvorton tro longa aŭ tro komplika, ĉar vi\n"
-"devas esti kapabla memori ĝin!\n"
-"\n"
-"La pasvorto ne aperos sur la ekrano kiam vi entajpas ĝin. Por redukti la\n"
-"eblecon de blinda tajperaro, vi devas enigi la pasvorton dufoje. Se\n"
-"vi hazarde faras la saman tajperaron dufoje, vi devos uzi tiun\n"
-"''malĝustan'' pasvorton por la unua fojo kiam vi provas konektiĝi kiel \"root\".\n"
-"\n"
-"Se vi deziras ke legitimado-servilo kontrolu la aliron al via komputilo,\n"
-"alklaku la butonon \"%s\".\n"
-"\n"
-"Se via reto uzas LDAP, NIS aŭ PDC-Windows Domain legitimadajn servojn,\n"
-"selektu la taŭgan por \"%s\". Se vi ne scias, kiun\n"
-"uzi, vi devus demandi vian ret-mastrumanton.\n"
-"\n"
-"Se vi hazarde havas problemon por memori pasvortojn, aŭ se via\n"
-"komputilo estos neniam konektata al Interreto kaj se vi absolute fidas\n"
-"ĉiun kiu uzas vian komputilon, vi povas elekti \"%s\"."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "legitimado"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1590,34 +1625,36 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
"know what you're doing."
msgstr ""
"Startigilo estas programeto startigata de la komputilo ĉe startado.\n"
-"Ĝi respondecas pri la startado de la tuta sistemo. Normale la instalado de la startigilo\n"
+"Ĝi respondecas pri la startado de la tuta sistemo. Normale la instalado de "
+"la startigilo\n"
"okazas tute aŭtomate. DrakX analizas la sektoron de la disko-starto\n"
"kaj agas laŭ tio kion ĝi trovas tie:\n"
"\n"
-" * se ĝi trovas vindozan startsektoron, ĝi anstataŭigos tiun per startsektoro de GRUB/LILO.\n"
+" * se ĝi trovas vindozan startsektoron, ĝi anstataŭigos tiun per "
+"startsektoro de GRUB/LILO.\n"
"Tiel vi povos ŝargi aŭ GNU/Linukson aŭ alian mastrumsistemon\n"
"instalitan sur via maŝino.\n"
"\n"
" * se ĝi trovas GRUB- aŭ LILO-startsektoron, ĝi anstataŭigos tiun per nova.\n"
"\n"
-"Se DrakX ne povas determini, kiel meti la startsektoron, ĝi demandos vin kien ĝi metu ĝin.\n"
+"Se DrakX ne povas determini, kiel meti la startsektoron, ĝi demandos vin "
+"kien ĝi metu ĝin.\n"
"Ĝenerale, la \"%s\" estas la plej sekura loko.\n"
-"Elekti \"%s\" instalas nenian startigilon. "
-"Uzu tiun opcion nur se vi\n"
+"Elekti \"%s\" instalas nenian startigilon. Uzu tiun opcion nur se vi\n"
"scias kion vi faras."
#: ../help.pm:745
-#, c-format
+#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1638,32 +1675,40 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
-"Nun estas tempo por elekti pressistemon por via komputilo. Aliaj mastrumsistemoj\n"
-"proponas al vi unu, sed Mandriva Linukso proponas du. Ĉiu el la pressistemoj\n"
+"Nun estas tempo por elekti pressistemon por via komputilo. Aliaj "
+"mastrumsistemoj\n"
+"proponas al vi unu, sed Mandriva Linukso proponas du. Ĉiu el la "
+"pressistemoj\n"
"plej taŭgas por aparta tipo de konfigurado.\n"
"\n"
-" * \"%s\" -- kio estas akronimo por \"print, do not queue\" (presu, ne vicigu), elektindas\n"
-"se vi havas rektan konekton kun via presilo, vi ŝatus eskapi el problemoj kun\n"
+" * \"%s\" -- kio estas akronimo por \"print, do not queue\" (presu, ne "
+"vicigu), elektindas\n"
+"se vi havas rektan konekton kun via presilo, vi ŝatus eskapi el problemoj "
+"kun\n"
"aliaj presiloj, kaj vi ne havas retajn presilojn. (\"%s\"\n"
"pritraktos nur tre simplajn retajn kazojn kaj estas iom malrapida se\n"
"uzata en retoj.) Konsilindas uzi \"pdq\" se tio ĉi estas via\n"
"unua sperto kun GNU/Linukso.\n"
"\n"
-" * \"%s\" nomiĝas ''Common Unix Printing System'' kaj estas bonega elekto por\n"
+" * \"%s\" nomiĝas ''Common Unix Printing System'' kaj estas bonega elekto "
+"por\n"
"presigi vian lokan presilon aŭ iun ie tra la planedo. Ĝi estas\n"
"facile konfigurebla kaj povas agi kiel servilo aŭ kiel kliento por la "
"antaŭa\n"
"\"lpd \"-pressistemo, kaj estas kongrua kun pli malnovaj mastrum-sistemoj\n"
-"kiuj eble ankoraŭ bezonas presservojn. Kvankam tre potenca, la baza konfigurado\n"
-"estas preskaŭ same simpla kiel \"pdq\". Se vi bezonas imiti \"lpd\"-servilon,\n"
+"kiuj eble ankoraŭ bezonas presservojn. Kvankam tre potenca, la baza "
+"konfigurado\n"
+"estas preskaŭ same simpla kiel \"pdq\". Se vi bezonas imiti \"lpd\"-"
+"servilon,\n"
"certiĝu ke vi aktivigis la \"cups-lpd\"-demonon. \"%s\" enhavas grafikajn\n"
"'front-ends' por presi aŭ por elekti presil-opciojn kaj por mastrumi\n"
"la presilon.\n"
"\n"
-"Se vi faras vian elekton nun, kaj poste trovas ke vi ne ŝatas vian pressistemon,\n"
+"Se vi faras vian elekton nun, kaj poste trovas ke vi ne ŝatas vian "
+"pressistemon,\n"
"vi povas ŝanĝi ĝin rulante PrinterDrake ekde la Mandriva Regejo kaj\n"
"alklaki la butonon \"%s\"."
@@ -1672,7 +1717,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Spertulo"
@@ -1685,7 +1735,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1702,15 +1752,18 @@ msgstr ""
"estas trovita, DrakX aŭtomate instalos la taŭgan pelilon.\n"
"\n"
"Ĉar detektado de aparataro ne estas absolute senerara, DrakX povas\n"
-"malsukcesi detektante viajn fiksdiskojn. Se tiel, vi devos mem mane entajpivian aparataron.\n"
+"malsukcesi detektante viajn fiksdiskojn. Se tiel, vi devos mem mane "
+"entajpivian aparataron.\n"
"\n"
"Se vi devis mane entajpi vian PCI-SCSI-adaptilon, DrakX demandos ĉu vi\n"
-"deziras konfiguri opciojn por ĝi. Prefere permesu al DrakX provi la aparatojn\n"
+"deziras konfiguri opciojn por ĝi. Prefere permesu al DrakX provi la "
+"aparatojn\n"
"por la kartospecifaj opcioj kiuj estas bezonataj por inici la adaptilon. "
"Plej ofte,\n"
"DrakX trairos tiun paŝon sen ajna problemo.\n"
"\n"
-"Se DrakX ne kapablas provi kiujn parametrojn la opcioj aŭtomate devas doni al la\n"
+"Se DrakX ne kapablas provi kiujn parametrojn la opcioj aŭtomate devas doni "
+"al la\n"
"aparatoj, vi devos mane konfiguri\n"
"la pelilon."
@@ -1721,12 +1774,13 @@ msgid ""
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver."
msgstr ""
-"\"%s\": se sonkarto estas detektita en via sistemo, ĝi estos ĉi tie montrata.\n"
+"\"%s\": se sonkarto estas detektita en via sistemo, ĝi estos ĉi tie "
+"montrata.\n"
"Se vi rimarkas ke la sonkarto ne estas tiu aktuale en via sistemo,\n"
"vi povas alklaki la butonon kaj elekti alian pelilon."
#: ../help.pm:794
-#, c-format
+#, fuzzy, c-format
msgid ""
"As a review, DrakX will present a summary of information it has gathered\n"
"about your system. Depending on the hardware installed on your machine, you\n"
@@ -1749,11 +1803,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1771,8 +1820,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1789,7 +1837,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1797,33 +1845,37 @@ msgid ""
msgstr ""
"Por kontroli, DrakX prezentos resumon de la informoj kolektitaj\n"
"pri via sistemo. Depende de la aparataro instalita en via maŝino, vi\n"
-"havas ĉiujn aŭ kelkajn de ĉiuj viaj enigoj. "
-"Ĉiu enigo montras la\n"
+"havas ĉiujn aŭ kelkajn de ĉiuj viaj enigoj. Ĉiu enigo montras la\n"
"konfigurotan aparaton, sekvatan de mallonga resumo de la aktuala\n"
"konfiguraĵo. Alklaku la respondan butonon \"%s\" por fari la ŝanĝon.\n"
"\n"
-" * \"%s\": kontrolu la aktualan konfiguraĵon de la klavar-mapo kaj ŝanĝu ĝin se\n"
+" * \"%s\": kontrolu la aktualan konfiguraĵon de la klavar-mapo kaj ŝanĝu "
+"ĝin se\n"
"necese.\n"
"\n"
" * \"%s\": kontrolu la aktualan selektond e lando. Se vi ne estas en tiu\n"
"lando, alklaku la butonon \"%s\" kaj elektu alian. Se via lando\n"
-"ne troviĝas en la montrata listo, alklaku la butonon \"%s\" por havi la kompletan\n"
+"ne troviĝas en la montrata listo, alklaku la butonon \"%s\" por havi la "
+"kompletan\n"
"landoliston.\n"
"\n"
" * \"%s\": Defaŭlte DrakX deduktas vian horzonon bazintan sur la lando\n"
"kiun vi elektis. Vi povas alklaki tiun ĉi butonon \"%s\" se tio ne estas\n"
"ĝusta.\n"
"\n"
-" * \"%s\": kontrolu la aktualan konfiguraĵon de la muso kaj alklaku la butonon\n"
+" * \"%s\": kontrolu la aktualan konfiguraĵon de la muso kaj alklaku la "
+"butonon\n"
"por ŝanĝi ĝin se necese.\n"
"\n"
" * \"%s\": alklako al la butono \"%s\" malfermos la sorĉilon por\n"
-"konfigurado de la presilo. Konsultu la respondan ĉapitron de la ''Start-Gvidilo''\n"
+"konfigurado de la presilo. Konsultu la respondan ĉapitron de la ''Start-"
+"Gvidilo''\n"
"por pliaj informoj pri kiel agordi novan presilon. La interfaco\n"
"prezentita en nia manlibro similas al tiu uzata dum la instalado.\n"
"\n"
" * \"%s\": se sonkarto estas detektita en via sistemo, ĝi estos montrata\n"
-"ĉi tie. Se vi rimarkas ke la sonkarto ne estas tiu kiu aktuale troviĝas en via\n"
+"ĉi tie. Se vi rimarkas ke la sonkarto ne estas tiu kiu aktuale troviĝas en "
+"via\n"
"sistemo, vi povas alklaki la butonon kaj elekti alian pelilon.\n"
"\n"
" * \"%s\": se vi havas TV-karton, tiam la informoj pri ĝia konfigurado\n"
@@ -1837,13 +1889,14 @@ msgstr ""
"distingivo de \"800x600\" aŭ \"1024x768\". Se tio ne taŭgas por vi, alklaku\n"
"\"%s\" por rekonfiguri vian grafikan interfacon.\n"
"\n"
-" * \"%s\": se vi deziras konfiguri vian aliron al Interreto aŭ al loka reto,\n"
+" * \"%s\": se vi deziras konfiguri vian aliron al Interreto aŭ al loka "
+"reto,\n"
"vi povas tion fari nun. Konsultu la presitan dokumentaĵon aŭ uzu la\n"
-"Mandriva-Linuksan Regejon post fino de la instalado por "
-"profiti\n"
+"Mandriva-Linuksan Regejon post fino de la instalado por profiti\n"
"komplentan konektitan helpon.\n"
"\n"
-" * \"%s\": ebligas vin konfiguri HTTP- kaj FTP-prokurajn adresojn se la maŝino,\n"
+" * \"%s\": ebligas vin konfiguri HTTP- kaj FTP-prokurajn adresojn se la "
+"maŝino,\n"
"sur kiu vi instalas, estos lokita malantaŭ prokuran servilon.\n"
"\n"
" * \"%s\": tiu punkto ebligas vin redifini la sekurec-nivelon metitan en\n"
@@ -1854,16 +1907,23 @@ msgstr ""
"la respondan sekcion de la ''Start-Gvidilo'' por detaloj pri\n"
"agordado de fajroŝirmilo.\n"
"\n"
-" * \"%s\": se vi deziras ŝanĝi la konfiguraĵon de via startigilo, alklaku tiun\n"
+" * \"%s\": se vi deziras ŝanĝi la konfiguraĵon de via startigilo, alklaku "
+"tiun\n"
"butonon. Tio estu prefere por progresintaj uzuloj. Konsultu la presitan\n"
"dokumentaĵon aŭ la html-helpon pri konfigurado de startigilo en la\n"
"Mandriva-Linuksa Regejo.\n"
"\n"
" * \"%s\": per tiu punkto vi povas detaligi kiuj servoj ruliĝu\n"
-"sur via maŝino. Se vi planas uzi tiun ĉi maŝinon kiel servilon, tiam estus bone\n"
+"sur via maŝino. Se vi planas uzi tiun ĉi maŝinon kiel servilon, tiam estus "
+"bone\n"
"revizii tiun ĉi agordon."
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "ISDN-karto"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN-karto"
@@ -1874,28 +1934,32 @@ msgid "Graphical Interface"
msgstr "Grafika interfaco"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"Elektu la fiksdiskon kiun vi deziras forviŝi por instali vian novan\n"
-"Mandriva-Linuksan subdiskon. Estu zorgema, ĉar ĉiuj datenoj en tiu disko perdiĝos\n"
+"Mandriva-Linuksan subdiskon. Estu zorgema, ĉar ĉiuj datenoj en tiu disko "
+"perdiĝos\n"
"kaj ne rehaveblos!"
#: ../help.pm:866
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
-"Alklaku \"%s\" se vi deziras forviŝi ĉiujn datenojn kaj subdiskojn kiuj troviĝas sur\n"
+"Alklaku \"%s\" se vi deziras forviŝi ĉiujn datenojn kaj subdiskojn kiuj "
+"troviĝas sur\n"
"via fiksdisko. Estu zorgema, ĉar post alklaki sur \"%s\", vi ne kapablos\n"
"rehavi iajn ajn datenojn kaj subdiskojn kiuj troviĝas sur tiu ĉi fiksdisko,\n"
"inkluzive de ĉia ajn vindozaj datenoj.\n"
@@ -1913,3 +1977,112 @@ msgstr "Sekvanta ->"
msgid "<- Previous"
msgstr "<- Antaŭa"
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": klaki sur la butonon \"%s\" malfermos la sorĉilon de la presila\n"
+#~ "konfigurado. Konsultu la tiurilatan ĉapitron de la ''Start-Gvidilo'' por "
+#~ "pli da\n"
+#~ "informoj pri kiel agordi novan presilon. La interfaco prezentita en nia\n"
+#~ "manlibro similas al tiu uzata dum instalado."
+
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "Tiu ĉi estas la plej grava decido-punkto por la sekureco de via GNU/"
+#~ "Linuksa sistemo: vi devas enigi la pasvorton por \"root\". \"Root\" estas "
+#~ "la sistem-mastrumanto\n"
+#~ "estas la sola uzulo kun la permeso fari ĝisdatigojn, aldoni uzulojn,\n"
+#~ "ŝanĝi la tutan sistem-konfiguraĵon, kaj tiel plu. Mallonge, \"root\" "
+#~ "povas\n"
+#~ "fari ĉion! Pro tio vi devas elekti pasvorton kiu estu malfacile "
+#~ "divinebla:\n"
+#~ "DrakX diros al vi ĉu la pasvorto de vi elektita estas tro simpla. Kiel vi "
+#~ "povas vidi,\n"
+#~ "vi ne estas devigata enigi pasvorton, sed ni forte malkonsilas tion.\n"
+#~ "GNU/Linukso estas elmetita al eraroj de mastrumanto kiel ĉia alia\n"
+#~ "mastrum-sistemo. Ĉar \"root\" povas superi ĉiuj limojn kaj\n"
+#~ "senintence forviŝi ĉiujn datenojn sur subdiskoj per senzorga aliro al\n"
+#~ "la subdiskoj mem, estas grave ke estu malfacile\n"
+#~ "fariĝi \"root\".\n"
+#~ "\n"
+#~ "La pasvorto estu prefere miksaĵo el alfanumeraj signoj kaj almenaŭ 8\n"
+#~ "signojn longa. Nenima skribu la pasvorton de \"root\" -- tio multe tro\n"
+#~ "faciligus damaĝi vian sistemon.\n"
+#~ "\n"
+#~ "Konsileto: ne faru la pasvorton tro longa aŭ tro komplika, ĉar vi\n"
+#~ "devas esti kapabla memori ĝin!\n"
+#~ "\n"
+#~ "La pasvorto ne aperos sur la ekrano kiam vi entajpas ĝin. Por redukti la\n"
+#~ "eblecon de blinda tajperaro, vi devas enigi la pasvorton dufoje. Se\n"
+#~ "vi hazarde faras la saman tajperaron dufoje, vi devos uzi tiun\n"
+#~ "''malĝustan'' pasvorton por la unua fojo kiam vi provas konektiĝi kiel "
+#~ "\"root\".\n"
+#~ "\n"
+#~ "Se vi deziras ke legitimado-servilo kontrolu la aliron al via komputilo,\n"
+#~ "alklaku la butonon \"%s\".\n"
+#~ "\n"
+#~ "Se via reto uzas LDAP, NIS aŭ PDC-Windows Domain legitimadajn servojn,\n"
+#~ "selektu la taŭgan por \"%s\". Se vi ne scias, kiun\n"
+#~ "uzi, vi devus demandi vian ret-mastrumanton.\n"
+#~ "\n"
+#~ "Se vi hazarde havas problemon por memori pasvortojn, aŭ se via\n"
+#~ "komputilo estos neniam konektata al Interreto kaj se vi absolute fidas\n"
+#~ "ĉiun kiu uzas vian komputilon, vi povas elekti \"%s\"."
+
+#~ msgid "authentication"
+#~ msgstr "legitimado"
diff --git a/perl-install/install/help/po/es.po b/perl-install/install/help/po/es.po
index 0a14c851b..d1ac36b90 100644
--- a/perl-install/install/help/po/es.po
+++ b/perl-install/install/help/po/es.po
@@ -11,10 +11,11 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX-es\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2005-04-24 11:46+0200\n"
"Last-Translator: José Manuel Pérez <jmprodu@hotmail.com>\n"
"Language-Team: Español <es@li.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -24,15 +25,15 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/es/drakx-chapter.xml
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Antes de continuar, debería leer cuidadosamente los términos de la\n"
-"licencia. La misma cubre a toda la distribución Mandriva Linux. Si está de\n"
+"licencia. La misma cubre a toda la distribución Mageia. Si está de\n"
"acuerdo con todos los términos en la misma, haga clic en el botón \"%s\".\n"
"Si no, haga clic en el botón \"%s\" lo que reiniciará su computadora."
@@ -122,6 +123,16 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "¿Desea usar esta característica?"
@@ -130,7 +141,8 @@ msgstr "¿Desea usar esta característica?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -140,24 +152,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Aquí se listan las particiones Linux existentes que se detectaron en su\n"
@@ -198,15 +214,15 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/es/drakx-chapter.xml
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"La instalación de Mandriva Linux se distribuye en varios CD-ROM. Si un\n"
+"La instalación de Mageia se distribuye en varios CD-ROM. Si un\n"
"paquete seleccionado se encuentra en otro CD-ROM, DrakX expulsará el CD\n"
"corriente y le pedirá que inserte el necesario. Si no tiene el CD necesario\n"
"a mano, simplemente haga clic sobre \"%s\", no se instalarán los paquetes\n"
@@ -215,15 +231,14 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/es/drakx-chapter.xml
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -236,8 +251,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -275,12 +289,11 @@ msgid ""
"megabytes."
msgstr ""
"Ahora es el momento de especificar los programas que desea instalar en su\n"
-"sistema. Hay miles de paquetes disponibles para Mandriva Linux, y para "
-"hacer\n"
+"sistema. Hay miles de paquetes disponibles para Mageia, y para hacer\n"
"más simple el manejo de los paquetes, los mismos se han puesto en grupos de\n"
"aplicaciones similares.\n"
"\n"
-"Mandriva Linux clasifica los grupos de paquetes en cuatro categorías. Puede\n"
+"Mageia clasifica los grupos de paquetes en cuatro categorías. Puede\n"
"mezclar y hacer coincidir aplicaciones de varias categorías, por lo que una\n"
"instalación de \"Estación de trabajo\" puede tener instaladas aplicaciones\n"
"de la categoría \"Desarrollo\".\n"
@@ -349,7 +362,7 @@ msgstr "Instalación realmente mínima"
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/es/drakx-chapter.xml
#: ../help.pm:152
-#, c-format
+#, fuzzy, c-format
msgid ""
"If you choose to install packages individually, the installer will present\n"
"a tree containing all packages classified by groups and subgroups. While\n"
@@ -362,10 +375,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -400,11 +413,11 @@ msgstr ""
"seleccionó específicamente el paquete individual o porque el mismo era\n"
"parte de un grupo de paquetes, se le pedirá que confirme que realmente\n"
"desea que se instalen esos servidores. De manera predeterminada,\n"
-"Mandriva Linux iniciará automáticamente todos los servicios instalados al\n"
+"Mageia iniciará automáticamente todos los servicios instalados al\n"
"momento del arranque. Aunque estos son seguros y no tienen problemas\n"
"conocidos al momento en que se publicó la distribución, es muy posible que\n"
"se descubran vulnerabilidades en la seguridad luego que se terminó con esta\n"
-"versión de Mandriva Linux. Si no sabe que es lo que se supone que hace un\n"
+"versión de Mageia. Si no sabe que es lo que se supone que hace un\n"
"servicio o la razón por la cual se está instalando, entonces haga clic\n"
"sobre \"%s\". Si hace clic sobre \"%s\" se instalarán todos los servicios\n"
"listados y los mismos se iniciarán automáticamente al momento del arranque.\n"
@@ -432,23 +445,7 @@ msgstr "Dependencias automáticas"
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/es/drakx-chapter.xml
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": al hacer clic sobre el botón \"%s\" se abrirá el asistente de\n"
-"configuración de la impresora. Consulte el capítulo correspondiente de la\n"
-"\"Guía de Comienzo\" para más información sobre cómo configurar una\n"
-"impresora nueva. La interfaz presentada allí es similar a la utilizada\n"
-"durante la instalación."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/es/drakx-chapter.xml
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -517,7 +514,12 @@ msgstr ""
"de Usted. En realidad, esta opción instala un servidor de la hora que\n"
"también puede ser utilizado por otras máquinas en su red local."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Sincronización automática de la hora"
@@ -550,11 +552,11 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/es/drakx-chapter.xml
#: ../help.pm:234
-#, c-format
+#, fuzzy, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -610,7 +612,7 @@ msgid ""
msgstr ""
"X (por \"X Window System\") es el corazón de la interfaz gráfica de\n"
"GNU/Linux en el que se apoyan todos los entornos gráficos (KDE, GNOME,\n"
-"AfterStep, WindowMaker, etc.) que se incluyen con Mandriva Linux.\n"
+"AfterStep, WindowMaker, etc.) que se incluyen con Mageia.\n"
"\n"
"Se le presentará la lista de parámetros diferentes a cambiar para obtener\n"
"una presentación gráfica óptima.\n"
@@ -736,41 +738,45 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/es/drakx-chapter.xml
#: ../help.pm:319
-#, c-format
+#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -779,15 +785,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -801,11 +807,11 @@ msgid ""
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
"Ahora necesita elegir el lugar de su disco rígido donde se instalará su\n"
-"sistema operativo Mandriva Linux. Si su disco rígido está vacío o si un\n"
+"sistema operativo Mageia. Si su disco rígido está vacío o si un\n"
"sistema operativo existente está utilizando todo el espacio disponible,\n"
"necesitará particionar el disco. Básicamente, particionar un disco rígido\n"
"consiste en dividirlo lógicamente para crear espacio para instalar su\n"
-"sistema Mandriva Linux nuevo.\n"
+"sistema Mageia nuevo.\n"
"\n"
"Debido a que el proceso de particionado de un disco rígido por lo general\n"
"es irreversible y puede llevar a pérdida de datos, el particionado puede\n"
@@ -835,7 +841,7 @@ msgstr ""
"realizar sin la pérdida de datos, siempre y cuando Usted haya\n"
"desfragmentado con anterioridad la partición Windows. Es altamente\n"
"recomendable hacer una copia de respaldo de sus datos. Se recomienda usar\n"
-"esta solución si desea utilizar tanto Mandriva Linux como Microsoft Windows\n"
+"esta solución si desea utilizar tanto Mageia como Microsoft Windows\n"
"en la misma computadora.\n"
"\n"
" Antes de elegir esta opción, por favor comprenda que después de este\n"
@@ -845,7 +851,7 @@ msgstr ""
"\n"
" * \"%s\". Si desea borrar todos los datos y todas las particiones\n"
"presentes en su disco rígido y reemplazarlos con su nuevo sistema\n"
-"Mandriva Linux, seleccione esta opción. Tenga cuidado con esta solución ya\n"
+"Mageia, seleccione esta opción. Tenga cuidado con esta solución ya\n"
"que no podrá revertir su elección después de confirmarla.\n"
"\n"
" !! Si elige esta opción, se perderán todos los datos en su disco. !!\n"
@@ -869,7 +875,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Usar la partición existente"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Borrar el disco entero"
@@ -953,10 +964,25 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Generar un disquete de instalación automática"
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/es/drakx-chapter.xml
-#: ../help.pm:415
-#, c-format
+#: ../help.pm:408
+#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -975,7 +1001,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -998,7 +1024,7 @@ msgstr ""
"Haga clic sobre \"%s\" cuando esté listo para formatear las particiones.\n"
"\n"
"Haga clic sobre \"%s\" si desea elegir otra partición para la instalación\n"
-"de su sistema operativo Mandriva Linux nuevo.\n"
+"de su sistema operativo Mageia nuevo.\n"
"\n"
"Haga clic sobre \"%s\" si desea seleccionar las particiones del disco en\n"
"las que se buscarán bloques defectuosos."
@@ -1006,9 +1032,9 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/es/drakx-chapter.xml
#: ../help.pm:437
-#, c-format
+#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -1020,7 +1046,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Es probable que cuando instale Mandriva Linux algunos paquetes se hayan\n"
+"Es probable que cuando instale Mageia algunos paquetes se hayan\n"
"actualizado desde la publicación inicial. Se pueden haber corregido errores\n"
"y solucionado problemas de seguridad. Para permitir que Usted se beneficie\n"
"de estas actualizaciones, ahora las puede descargar desde la Internet.\n"
@@ -1036,7 +1062,7 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/es/drakx-chapter.xml
#: ../help.pm:450
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -1045,7 +1071,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1059,7 +1085,7 @@ msgstr ""
"\n"
"Si no sabe cual elegir, mantenga la opción predeterminada. Podrá cambiarla\n"
"más adelante con la herramienta draksec, que es parte del Centro de Control\n"
-"de Mandriva Linux.\n"
+"de Mageia.\n"
"\n"
"Complete el campo \"%s\" con la dirección de correo electrónico de la\n"
"persona responsable de la seguridad. Los mensajes relativos a la seguridad\n"
@@ -1073,24 +1099,27 @@ msgstr "Administrador de seguridad"
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/es/drakx-chapter.xml
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1106,21 +1135,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1137,17 +1168,11 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"Ahora necesita elegir qué particiones se utilizarán para la instalación de\n"
-"su sistema Mandriva Linux. Si ya se han definido particiones, ya sea por\n"
+"su sistema Mageia. Si ya se han definido particiones, ya sea por\n"
"una instalación previa de GNU/Linux o con otra herramienta de particionado,\n"
"puede utilizarlas. De lo contrario, se deben definir particiones en el\n"
"disco rígido.\n"
@@ -1163,7 +1188,7 @@ msgstr ""
" * \"%s\": esta opción borra todas las particiones sobre el disco\n"
"seleccionado.\n"
"\n"
-" * \"%s\": esta opción le permite crear particiones ext3 y swap\n"
+" * \"%s\": esta opción le permite crear particiones ext4 y swap\n"
"automáticamente en el espacio libre de su disco rígido.\n"
"\n"
"\"%s\": le da acceso a características adicionales:\n"
@@ -1217,19 +1242,38 @@ msgstr ""
"Para obtener información sobre los distintos tipos de sistemas de archivos\n"
"disponibles, por favor lea el capítulo acerca de ext2FS del \"Manual de\n"
"Referencia\".\n"
-"\n"
-"Si está instalando en una máquina PPC, querrá crear una pequeña partición\n"
-"HFS de \"bootstrap\" de al menos 1 MB que será utilizada por el cargador de\n"
-"arranque yaboot. Si opta por hacer la partición un poco más grande, digamos\n"
-"50 MB, puede ver que es un lugar útil para almacenar un núcleo y ramdisk\n"
-"alternativos para arrancar en situaciones de emergencia."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Montaje automático de soportes extraíbles"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Cambiar entre el modo normal/experto"
@@ -1237,41 +1281,47 @@ msgstr "Cambiar entre el modo normal/experto"
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/es/drakx-chapter.xml
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Se ha detectado más de una partición Microsoft Windows en su disco rígido.\n"
"Por favor, elija aquella a la cual desea cambiar el tamaño para poder\n"
-"instalar su sistema operativo Mandriva Linux nuevo.\n"
+"instalar su sistema operativo Mageia nuevo.\n"
"\n"
"Cada partición se lista como sigue: \"Nombre Linux\", \"Nombre Windows\",\n"
"\"Capacidad\".\n"
@@ -1321,35 +1371,35 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/es/drakx-chapter.xml
#: ../help.pm:572
-#, c-format
+#, fuzzy, c-format
msgid ""
"This step is activated only if an existing GNU/Linux partition has been\n"
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Este paso se activa sólo si se encontró una partición GNU/Linux existente\n"
"en su máquina.\n"
"\n"
"DrakX ahora necesita saber si desea realizar una instalación nueva o una\n"
-"actualización de un sistema Mandriva Linux existente:\n"
+"actualización de un sistema Mageia existente:\n"
"\n"
" * \"%s\". En gran parte, esta opción borrará por completo el sistema\n"
"anterior. Sin embargo, dependiendo de su esquema de particiones, puede\n"
@@ -1358,17 +1408,15 @@ msgstr ""
"particionan sus discos, debería usar esta opción.\n"
"\n"
" * \"%s\": Esta clase de instalación le permite actualizar los paquetes que\n"
-"en este momento están instalados en su sistema Mandriva Linux. No se "
-"alteran\n"
+"en este momento están instalados en su sistema Mageia. No se alteran\n"
"las particiones corrientes de sus discos ni los datos de los usuarios. La\n"
"mayoría de los otros pasos de configuración permanecen disponibles y son\n"
"similares a una instalación estándar.\n"
"\n"
"El uso de la opción \"Actualizar\" debería funcionar sin problemas para los\n"
-"sistemas Mandriva Linux que corren la versión \"8.1\" o una posterior. No "
-"se\n"
+"sistemas Mageia que corren la versión \"8.1\" o una posterior. No se\n"
"recomienda realizar una actualización sobre versiones anteriores a\n"
-"Mandriva Linux versión \"8.1\"."
+"Mageia versión \"8.1\"."
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/es/drakx-chapter.xml
@@ -1413,7 +1461,7 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/es/drakx-chapter.xml
#: ../help.pm:612
-#, c-format
+#, fuzzy, c-format
msgid ""
"The first step is to choose your preferred language.\n"
"\n"
@@ -1429,8 +1477,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1471,7 +1518,7 @@ msgstr ""
"Acerca del soporte UTF-8 (Unicode): Unicode es una codificación nueva de\n"
"caracteres que pretende cubrir todos los idiomas existentes. Sin embargo,\n"
"el soporte completo para Unicode bajo GNU/Linux todavía está en desarrollo.\n"
-"Por esta razón, Mandriva Linux lo usará o no dependiendo de las elecciones\n"
+"Por esta razón, Mageia lo usará o no dependiendo de las elecciones\n"
"del usuario:\n"
"\n"
" * Si elige un idioma con codificación legada fuerte (idiomas latin1, ruso,\n"
@@ -1505,9 +1552,14 @@ msgstr ""
msgid "Espanol"
msgstr "Français"
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/es/drakx-chapter.xml
-#: ../help.pm:653
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1600,94 +1652,7 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/es/drakx-chapter.xml
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Este es el punto de decisión más crucial para la seguridad de su sistema\n"
-"GNU/Linux: tendrá que ingresar la contraseña de \"root\". El usuario\n"
-"\"root\" es el administrador del sistema y es el único autorizado a hacer\n"
-"actualizaciones, agregar usuarios, cambiar la configuración general del\n"
-"sistema, etc. Resumiendo, ¡\"root\" puede hacer de todo! Es por esto que\n"
-"deberá elegir una contraseña que sea difícil de adivinar - DrakX le dirá si\n"
-"la que eligió es demasiado fácil. Como puede ver, no es forzoso ingresar\n"
-"una contraseña, pero le recomendamos encarecidamente que ingrese una.\n"
-"GNU/Linux es tan propenso a errores del operador como cualquier otro\n"
-"sistema operativo. Es importante que sea difícil convertirse en \"root\"\n"
-"debido a que \"root\" puede sobrepasar todas las limitaciones y borrar, sin\n"
-"intención, todos los datos que se encuentran en las particiones accediendo\n"
-"a las mismas sin el cuidado suficiente.\n"
-"\n"
-"La contraseña debería ser una mezcla de caracteres alfanuméricos y tener al\n"
-"menos una longitud de 8 caracteres. Nunca escriba la contraseña de \"root\"\n"
-"- por ejemplo, en un papel - eso hace que sea muy fácil comprometer su\n"
-"sistema.\n"
-"\n"
-"Sin embargo, no debería hacer la contraseña muy larga o complicada ¡debido\n"
-"a que Usted debe poder recordarla!\n"
-"\n"
-"La contraseña no se mostrará en la pantalla a medida que Usted la teclee.\n"
-"Deberá teclear la contraseña dos veces para reducir la posibilidad de un\n"
-"error de tecleo a ciegas. Si ocurre que Usted comete dos veces el mismo\n"
-"error de tecleo, tendrá que utilizar esta contraseña \"incorrecta\" la\n"
-"primera vez que intente conectarse como \"root\".\n"
-"\n"
-"Si desea utilizar un servidor de autenticación para controlar el acceso a\n"
-"su computadora, haga clic sobre el botón \"%s\".\n"
-"\n"
-"Si su red usa los protocolos LDAP, NIS, o servicios de autenticación de PDC\n"
-"Dominio de Windows, seleccione el apropiado como método de %s.\n"
-"Si no sabe cual utilizar, debería preguntar al administrador de su red.\n"
-"\n"
-"Si ocurre que tiene problemas para recordar contraseñas, o si su\n"
-"computadora nunca estará conectada a la Internet y Usted confía\n"
-"absolutamente en cualquier persona que tenga acceso a la misma, puede\n"
-"elegir el botón \"%s\"."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "autenticación"
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/es/drakx-chapter.xml
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1701,7 +1666,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1728,10 +1693,10 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/es/drakx-chapter.xml
#: ../help.pm:745
-#, c-format
+#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1752,12 +1717,12 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Ahora es el momento de seleccionar un sistema de impresión para su\n"
"computadora. Otros sistemas operativos pueden ofrecerle uno, pero\n"
-"Mandriva Linux le ofrece dos. Cada uno de los sistemas de impresión es más\n"
+"Mageia le ofrece dos. Cada uno de los sistemas de impresión es más\n"
"adecuado para tipos de configuración particulares.\n"
"\n"
" * \"%s\" - \"print, do not queue\" (imprimir sin poner en cola) es la\n"
@@ -1780,14 +1745,19 @@ msgstr ""
"\n"
"Si hace una elección ahora y más tarde encuentra que a Usted no le gusta su\n"
"sistema de impresión, puede cambiarlo ejecutando PrinterDrake desde el\n"
-"Centro de Control de Mandriva Linux y haciendo clic sobre el botón \"%s\"."
+"Centro de Control de Mageia y haciendo clic sobre el botón \"%s\"."
#: ../help.pm:768
#, c-format
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Experto"
@@ -1802,7 +1772,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1850,7 +1820,7 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/es/drakx-chapter.xml
#: ../help.pm:794
-#, c-format
+#, fuzzy, c-format
msgid ""
"As a review, DrakX will present a summary of information it has gathered\n"
"about your system. Depending on the hardware installed on your machine, you\n"
@@ -1873,11 +1843,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1895,8 +1860,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1913,7 +1877,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1965,7 +1929,7 @@ msgstr ""
"\n"
" * \"%s\": si desea configurar ahora el acceso a la Internet o a su red\n"
"local, puede hacerlo ahora. Consulte la documentación impresa o utilice el\n"
-"Centro de Control de Mandriva Linux luego que finalizó la instalación para\n"
+"Centro de Control de Mageia luego que finalizó la instalación para\n"
"aprovechar la ayuda en línea completa.\n"
"\n"
" * \"%s\": permite configurar las direcciones de los proxy HTTP y FTP si la\n"
@@ -1984,13 +1948,18 @@ msgstr ""
"haga clic sobre este botón. Esto debería estar reservado para los usuarios\n"
"avanzados. Consulte la documentación impresa o la ayuda en línea acerca de\n"
"la configuración del cargador de arranque en el Centro de Control de\n"
-"Mandriva Linux.\n"
+"Mageia.\n"
"\n"
" * \"%s\": por medio de esta entrada podrá tener un control fino sobre qué\n"
"servicios correrán en su máquina. Si planifica utilizar esta máquina como\n"
"servidor es una buena idea revisar estos ajustes."
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "Tarjeta RDSI"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "Tarjeta RDSI"
@@ -2003,14 +1972,14 @@ msgstr "Interfaz gráfica"
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/es/drakx-chapter.xml
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"Elija la unidad de disco que desea borrar para instalar su partición\n"
-"Mandriva Linux nueva. Tenga cuidado, ¡se perderán todos los datos presentes\n"
+"Mageia nueva. Tenga cuidado, ¡se perderán todos los datos presentes\n"
"en dicha unidad de disco y no se podrán recuperar!."
# DO NOT BOTHER TO MODIFY HERE, SEE:
@@ -2019,12 +1988,14 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Haga clic sobre \"%s\" si desea borrar todos los datos y particiones\n"
"presentes en esta unidad de disco. Tenga cuidado, luego de hacer clic sobre\n"
@@ -2044,3 +2015,126 @@ msgstr "Siguiente ->"
msgid "<- Previous"
msgstr "<- Anterior"
+# DO NOT BOTHER TO MODIFY HERE, SEE:
+# cvs.mandriva.com:/cooker/doc/manualB/modules/es/drakx-chapter.xml
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": al hacer clic sobre el botón \"%s\" se abrirá el asistente de\n"
+#~ "configuración de la impresora. Consulte el capítulo correspondiente de "
+#~ "la\n"
+#~ "\"Guía de Comienzo\" para más información sobre cómo configurar una\n"
+#~ "impresora nueva. La interfaz presentada allí es similar a la utilizada\n"
+#~ "durante la instalación."
+
+# DO NOT BOTHER TO MODIFY HERE, SEE:
+# cvs.mandriva.com:/cooker/doc/manualB/modules/es/drakx-chapter.xml
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "Este es el punto de decisión más crucial para la seguridad de su sistema\n"
+#~ "GNU/Linux: tendrá que ingresar la contraseña de \"root\". El usuario\n"
+#~ "\"root\" es el administrador del sistema y es el único autorizado a "
+#~ "hacer\n"
+#~ "actualizaciones, agregar usuarios, cambiar la configuración general del\n"
+#~ "sistema, etc. Resumiendo, ¡\"root\" puede hacer de todo! Es por esto que\n"
+#~ "deberá elegir una contraseña que sea difícil de adivinar - DrakX le dirá "
+#~ "si\n"
+#~ "la que eligió es demasiado fácil. Como puede ver, no es forzoso ingresar\n"
+#~ "una contraseña, pero le recomendamos encarecidamente que ingrese una.\n"
+#~ "GNU/Linux es tan propenso a errores del operador como cualquier otro\n"
+#~ "sistema operativo. Es importante que sea difícil convertirse en \"root\"\n"
+#~ "debido a que \"root\" puede sobrepasar todas las limitaciones y borrar, "
+#~ "sin\n"
+#~ "intención, todos los datos que se encuentran en las particiones "
+#~ "accediendo\n"
+#~ "a las mismas sin el cuidado suficiente.\n"
+#~ "\n"
+#~ "La contraseña debería ser una mezcla de caracteres alfanuméricos y tener "
+#~ "al\n"
+#~ "menos una longitud de 8 caracteres. Nunca escriba la contraseña de \"root"
+#~ "\"\n"
+#~ "- por ejemplo, en un papel - eso hace que sea muy fácil comprometer su\n"
+#~ "sistema.\n"
+#~ "\n"
+#~ "Sin embargo, no debería hacer la contraseña muy larga o complicada "
+#~ "¡debido\n"
+#~ "a que Usted debe poder recordarla!\n"
+#~ "\n"
+#~ "La contraseña no se mostrará en la pantalla a medida que Usted la "
+#~ "teclee.\n"
+#~ "Deberá teclear la contraseña dos veces para reducir la posibilidad de un\n"
+#~ "error de tecleo a ciegas. Si ocurre que Usted comete dos veces el mismo\n"
+#~ "error de tecleo, tendrá que utilizar esta contraseña \"incorrecta\" la\n"
+#~ "primera vez que intente conectarse como \"root\".\n"
+#~ "\n"
+#~ "Si desea utilizar un servidor de autenticación para controlar el acceso "
+#~ "a\n"
+#~ "su computadora, haga clic sobre el botón \"%s\".\n"
+#~ "\n"
+#~ "Si su red usa los protocolos LDAP, NIS, o servicios de autenticación de "
+#~ "PDC\n"
+#~ "Dominio de Windows, seleccione el apropiado como método de %s.\n"
+#~ "Si no sabe cual utilizar, debería preguntar al administrador de su red.\n"
+#~ "\n"
+#~ "Si ocurre que tiene problemas para recordar contraseñas, o si su\n"
+#~ "computadora nunca estará conectada a la Internet y Usted confía\n"
+#~ "absolutamente en cualquier persona que tenga acceso a la misma, puede\n"
+#~ "elegir el botón \"%s\"."
+
+#~ msgid "authentication"
+#~ msgstr "autenticación"
diff --git a/perl-install/install/help/po/et.po b/perl-install/install/help/po/et.po
index e1dbfcb70..5346876da 100644
--- a/perl-install/install/help/po/et.po
+++ b/perl-install/install/help/po/et.po
@@ -1,16 +1,17 @@
# Translation of DrakX.po to Estonian.
# Copyright (C) 2003 Free Software Foundation, Inc.
# Riho Kurg <rx@linux.ee>, 1999-2003.
-# Marek Laane <bald@starman.ee>, 2002-2006.
+# Marek Laane <bald@starman.ee>, 2002-2006,2009.
#
msgid ""
msgstr ""
"Project-Id-Version: DrakX-et\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
-"PO-Revision-Date: 2006-03-07 12:20+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
+"PO-Revision-Date: 2009-03-23 16:08+0100\n"
"Last-Translator: Marek Laane <bald@starman.ee>\n"
-"Language-Team: Estonian <et@li.org>\n"
+"Language-Team: Estonian <linux-ee@lists.eenet.ee>\n"
+"Language: et\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -18,15 +19,15 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Enne jätkamist lugege hoolikalt läbi litsentsileping. See kehtib kogu\n"
-"Mandriva Linuxi distributsiooni kohta. Kui Te kõigi selle tingimustega\n"
+"Mageiai distributsiooni kohta. Kui Te kõigi selle tingimustega\n"
"nõus olete, märkige ära kast \"%s\". Kui Teile aga miski ei meeldi, siis\n"
"klõps nupule \"%s\" sooritab arvuti taaskäivitamise."
@@ -71,10 +72,9 @@ msgid ""
"\"%s\". If you're not interested in this feature, uncheck the \"%s\" box."
msgstr ""
"GNU/Linux on mitmekasutajasüsteem, mis tähendab, et igal kasutajal\n"
-"võivad olla oma eelistused, failid jne. Selle kontseptsiooni kohta leiab "
-"lähemat\n"
-"infot \"Kasutaja käsiraamatust\". Kuid erinevalt administraatorist ei ole\n"
-"kasutajal õigust muuta midagi muud kui vaid omaenda faile ja seadistusi.\n"
+"võivad olla oma eelistused, failid jne. Kuid erinevalt administraatorist\n"
+"pole kasutajal õigust muuta midagi muud kui vaid omaenda faile ja "
+"seadistusi.\n"
"Te peaksite looma ka endale vähemalt ühe tavakasutaja konto, millele sisse\n"
"logida igapäevategevuseks. Kuigi võib olla vägagi praktiline logida iga "
"päev\n"
@@ -104,8 +104,8 @@ msgstr ""
"Klõps nupule \"%s\" võimaldab muuta kasutajale määratavat shelli\n"
"(vaikimisi on see bash).\n"
"\n"
-"Kui olete kasutajate lisamise lõpetanud, pakutakse Teile valida kasutaja, "
-"kel on\n"
+"Kui olete kasutajate lisamise lõpetanud, palutakse Teil valida kasutaja, kel "
+"on\n"
"õigus logida süsteemi automaatselt, kui arvuti käivitub. Kui see võimalus\n"
"Teile huvi pakub (ja kohalik turvalisus muret ei valmista), valige "
"meelepärane\n"
@@ -115,13 +115,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr "Kasutajanimi"
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr "Kasutaja kinnitamine"
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Kas soovite seda lubada?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -131,33 +142,38 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
-"Ülal on toodud kõik Teie kõvakettal olemasolevad Linuxi partitsioonid\n"
+"Ülal on toodud kõik Teie kõvakettal olemasolevad Linuxi partitsioonid.\n"
"Vaikimisi on need enamasti üsna mõistlikud. Kui teete nendes muutusi,\n"
"pidage meeles, et kindlasti vajate juurpartitsiooni (\"/\"). Liiga väikeste\n"
"partitsioonide puhul võib tekkida raskusi piisava hulga tarkvara "
"paigaldamisel.\n"
"Kasutajate jaoks on sageli mõistlik luua eraldi \"/home\" partitsioon.\n"
-"(Seda mõistagi juhul, kui tegemist on enam kui ühe Linuxi partitsiooniga).\n"
+"(Seda mõistagi juhul, kui saate kasutada rohkem kui üht Linuxi "
+"partitsiooni.)\n"
"\n"
"Iga partitsiooni juures on toodud abiinfona \"Nimi\" ja \"Mahutavus\".\n"
"\n"
@@ -180,15 +196,15 @@ msgstr ""
"SCSI ketaste puhul on \"a\" esimene, \"b\" teine ja nii edasi."
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Mandriva Linuxi paigalduspaketid on jagatud mitme CD vahel.\n"
+"Mageiai paigalduspaketid on jagatud mitme CD vahel.\n"
"DrakX suudab ära tunda, kui valitud pakett asub muul CD-l,\n"
"ning väljastab siis seesoleva CD ja palub sisestada selle,\n"
"mida parajasti vaja läheb.\n"
@@ -196,15 +212,14 @@ msgstr ""
"ning vastavat tarkvara ei paigaldata."
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -217,8 +232,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -256,7 +270,7 @@ msgid ""
"megabytes."
msgstr ""
"Nüüd on aeg valida rakendused, mida soovite oma süsteemi paigaldada.\n"
-"Mandriva Linux pakub tuhandeid pakette ja mõistagi ei eelda keegi,\n"
+"Mageia pakub tuhandeid pakette ja mõistagi ei eelda keegi,\n"
"et Te neid kõiki juba ette tunneksite.\n"
"\n"
"Paketid on rühmitatud gruppidesse vastavalt nende kasutusalale.\n"
@@ -271,12 +285,9 @@ msgstr ""
"nii,\n"
"et see vastab võimalikult hästi Linux Standard Base'i standardile.\n"
"\n"
-" Grupi \"LSB\" valimine paigaldab Teie arvutisse Linuxi kerneli seeriast "
-"\"2.4\",\n"
-"mitte muidu vaikimisi paigaldatavast seeriast \"2.6\".\n"
-"Seda tehakse täieliku ühilduvuse saavutamiseks LSB standardiga.\n"
-"Kui Te aga jätate grupi \"LSB\" valimata, saate ikkagi süsteemi,\n"
-"mis vastab peaaegu täielikult LSB standardile.\n"
+" Grupi \"LSB\" valimine tagab Teie süsteemi 100-protsendilise\n"
+"ühilduvuse LSB standardiga. Kui Te aga jätate grupi \"LSB\" valimata,\n"
+"saate ikkagi süsteemi, mis vastab peaaegu täielikult LSB standardile.\n"
"\n"
" * \"%s\": kui arvuti peab täitma serveri ülesandeid, saate siit valida,\n"
"milliseid levinumaid teenuseid oma süsteemi paigaldada.\n"
@@ -328,7 +339,7 @@ msgid "Truly minimal install"
msgstr "Tõeliselt minimaalne paigaldus"
#: ../help.pm:152
-#, c-format
+#, fuzzy, c-format
msgid ""
"If you choose to install packages individually, the installer will present\n"
"a tree containing all packages classified by groups and subgroups. While\n"
@@ -341,10 +352,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -372,19 +383,17 @@ msgstr ""
"Kui valite puus mõne paketi, ilmub paremal selle kirjeldus,\n"
"mis annab teada, milline on paketi ülesanne.\n"
"\n"
-"!! Kui tahtlikult või seetõttu, et asi kuulus gruppi,\n"
+"NB! Kui tahtlikult või seetõttu, et asi kuulus gruppi,\n"
"on valitud mõni serveripakett, palutakse Teilt kinnitust,\n"
"et Te ikka tõesti soovite neid servereid paigaldada.\n"
-"Mandriva Linux käivitab kõik paigaldatud serverid vaikimisi alglaadimise "
-"ajal.\n"
+"Mageia käivitab kõik paigaldatud serverid vaikimisi alglaadimise ajal.\n"
"Isegi kui nad olid turvalised ja teadaolevalt probleemivabad ajal,\n"
"mis valmis distributsioon, võib kergesti juhtuda,\n"
-"et pärast Mandriva Linuxi praeguse versiooni valmimist leiti neist "
-"turvaauke.\n"
+"et pärast Mageiai praeguse versiooni valmimist leiti neist turvaauke.\n"
"Kui Te ei tea, mida konkreetne teenus pakub või miks see üldse "
"paigaldatakse,\n"
"klõpsake nupul \"%s\", sest klõps nupul \"%s\" paigaldab loetletud serverid\n"
-"ning nad käivituvad alglaadimise ajal automaatselt. !!\n"
+"ning nad käivituvad alglaadimise ajal automaatselt.\n"
"\n"
"Lisavõimalus \"%s\" lihtsalt keelab hoiatava dialoogi,\n"
"mis ilmub alati, kui paigaldaja valib automaatselt mõne paketi.\n"
@@ -403,20 +412,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Automaatsõltuvused"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": klõps nupul \"%s\" avab printeri seadistamise nõustaja.\n"
-"Uurige lähemalt \"Põhiteadmiste käsiraamatu\" (\"Starter Guide\")\n"
-"vastavast peatükist, kuidas uut printerit häälestada.\n"
-"Siin näidatav sarnaneb sellele, mida võisite näha paigaldamise ajal."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -442,19 +438,15 @@ msgstr ""
"Uurige neid hoolega ja jätke valimata kõik, mida ei ole alglaadimise ajal\n"
"tingimata vajalik käivitada.\n"
"\n"
-"Konkreetset teenust valides näete selle kohta lühikest seletavat teksti. "
-"Kui\n"
-"Te ei ole aga kindel, kas teenus on kasulik või mitte, on mõistlik jätta "
-"kehtima\n"
-"vaikevalik (olgu see siis lubav või mitte).\n"
+"Konkreetset teenust valides näete selle kohta lühikest seletavat teksti.\n"
+"Kui Te ei ole aga kindel, kas teenus on kasulik või mitte, on mõistlik\n"
+"jätta kehtima vaikevalik (olgu see siis lubav või mitte).\n"
"\n"
-"!! Kui kavatsete oma süsteemi kasutada serverina, olge eriti tähelepanelik:\n"
-"tõenäoliselt ei soovi Te käivitada mittevajalikke teenuseid. Pidage meeles, "
-"et\n"
-"mõned teenused võivad serveris kasutatuna olla isegi ohtlikud. Üldiselt "
-"tasub\n"
-"valida ainult neid teenuseid, mida Teil tõesti vaja läheb.\n"
-"!!"
+"NB! Kui kavatsete oma süsteemi kasutada serverina, olge eriti "
+"tähelepanelik:\n"
+"tõenäoliselt ei soovi Te käivitada mittevajalikke teenuseid. Pidage meeles,\n"
+"et mõned teenused võivad serveris kasutatuna olla isegi ohtlikud. Üldiselt\n"
+"tasub valida ainult neid teenuseid, mida Teil tõesti vaja läheb."
#: ../help.pm:209
#, c-format
@@ -473,21 +465,24 @@ msgid ""
"server which can be used by other machines on your local network as well."
msgstr ""
"GNU/Linux kasutab GMT (Greenwichi) aega ning teisendab selle\n"
-"kohalikuks ajaks vastavalt Teie valitud ajavööndile. Seda võib siiski ka "
-"välja\n"
-"lülitada, kui jätta märkimata \"%s\". Sellisel juhul kajastab\n"
-"arvutikell sama aega, mis süsteemi kell. See võib olla kasulik, kui masinas "
-"on\n"
-"veel mõni operatsioonisüsteem, näiteks Windows.\n"
+"kohalikuks ajaks vastavalt Teie valitud ajavööndile. Seda võib siiski\n"
+"ka välja lülitada, kui jätta märkimata \"%s\". Sellisel juhul kajastab\n"
+"arvutikell sama aega, mis süsteemi kell. See võib olla kasulik, kui\n"
+"masinas on veel mõni operatsioonisüsteem, näiteks Windows.\n"
"\n"
"Võimalus \"%s\" võimaldab kellaaega reguleerida,\n"
"ühendudes Internetis mõne ajaserveriga. Pakutavas nimekirjas valige mõni\n"
"lähemal asuv server. Mõistagi peab selle võimaluse kasutamiseks olema ka\n"
-"Internetiühendus. Tegelikult paigaldab see Teie arvutisse ajaserveri, mida "
-"saab\n"
-"kasutada isegi teiste kohtvõrgus olevate masinate aja täpsustamiseks."
+"Internetiühendus. Tegelikult paigaldab see Teie arvutisse ajaserveri,\n"
+"mida saab kasutada isegi teiste kohtvõrgus olevate masinate aja\n"
+"täpsustamiseks."
+
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr "Riistvaraline kell kasutab GMT aega"
-#: ../help.pm:220
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Aja automaatne sünkroniseerimine"
@@ -516,11 +511,11 @@ msgstr ""
"kõige enam vastab."
#: ../help.pm:234
-#, c-format
+#, fuzzy, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -576,7 +571,7 @@ msgid ""
msgstr ""
"X (ehk X Window System) kujutab endast GNU/Linuxi graafilise "
"kasutajaliidese\n"
-"tuuma ja südant, millele toetuvad kõik Mandriva Linuxiga kaasas käivad\n"
+"tuuma ja südant, millele toetuvad kõik Mageiaiga kaasas käivad\n"
"graafilised töökeskkonnad (KDE, GNOME, AfterStep, WindowMaker jne).\n"
"\n"
"Siin näidatakse Teile tervet nimekirja parameetreid, mida saab muuta,\n"
@@ -697,41 +692,45 @@ msgstr ""
"on tegutseda serverina või kui Teid ei kippunud seadistamise ajal edu saatma."
#: ../help.pm:319
-#, c-format
+#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -740,15 +739,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -761,12 +760,12 @@ msgid ""
"experience. For more instructions on how to use the DiskDrake utility,\n"
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
-"Olete jõudnud punkti, kus peate otsustama, kuhu täpselt Mandriva Linux\n"
+"Olete jõudnud punkti, kus peate otsustama, kuhu täpselt Mageia\n"
"oma kõvakettal paigaldada. Kui kõvaketas on tühi või mõni muu\n"
"operatsioonisüsteem seda täielikult kasutab, on vaja see osadeks jagada\n"
"ehk partitsioneerida.\n"
"Partitsioneerimine on tegevus, mille käigus tekitatakse kettale loogilised\n"
-"piirkonnad Teie uue Mandriva Linuxi süsteemi paigaldamiseks.\n"
+"piirkonnad Teie uue Mageiai süsteemi paigaldamiseks.\n"
"\n"
"Kuna kõvaketta jagamine on pöördumatu protsess, siis peab kogemusteta\n"
"kasutaja olema iseäranis ettevaatlik! Selle tegevuse lihtsustamiseks ja\n"
@@ -796,7 +795,7 @@ msgstr ""
"defragmenteerinud. Siiski ei tule kindlasti kahjuks ka andmetest varukoopia\n"
"valmistamine... See lahendus on soovitatav, kui tahate kasutada ühes "
"arvutis\n"
-"nii Mandriva Linuxit kui Microsoft Windowsit.\n"
+"nii Mageiait kui Microsoft Windowsit.\n"
"\n"
" Enne selle valiku kasuks otsustamist pidage silmas, et kirjeldatud "
"protseduuri\n"
@@ -806,19 +805,20 @@ msgstr ""
"paigaldamiseks.\n"
"\n"
" * \"%s\": kui soovite kustutada kõik andmed ja partitsioonid, mis\n"
-"kõvakettal parajasti on, ning asendada need uue Mandriva Linuxi süsteemiga, "
-"on\n"
+"kõvakettal parajasti on, ning asendada need uue Mageiai süsteemiga, on\n"
"see õige valik. Aga tasub olla ettevaatlik, sest pärast selle valiku "
"langetamist\n"
"tagasiteed enam ei ole...\n"
"\n"
-" !! Kui valite selle võimaluse, kaotate kõik kõvakettal olevad andmed. !!\n"
+" NB! Kui valite selle võimaluse, kaotate kõik kõvakettal olevad "
+"andmed. !!\n"
"\n"
" * \"%s\": see puhastab kõvaketta senistest andmetest ja\n"
"käivitab uue paigaldusprotsessi, luues kõik partitsioonid uuesti. Kaovad ka\n"
"kõik kettal olnud andmed.\n"
"\n"
-" !! Kui valite selle võimaluse, kaotate kõik kõvakettal olevad andmed. !!\n"
+" NB! Kui valite selle võimaluse, kaotate kõik kõvakettal olevad "
+"andmed. !!\n"
"\n"
" * \"%s\": valige see, kui soovite ise kontrollida kõvaketta jagamist.\n"
"Kuid olge ettevaatlik - see on küll võimas, aga ohte sisaldav\n"
@@ -833,7 +833,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Olemasolevate partitsioonide kasutamine"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr "Vaba ruumi kasutamine Microsoft Windows® partitsioonil"
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Kogu ketta tühjendamine"
@@ -909,8 +914,8 @@ msgstr ""
">>linux defcfg=\"floppy\"<< ja vajutades seejärel klahvi [Enter].\n"
"\n"
"(*) Teil läheb vaja FAT-vorminduses disketti. Sellise loomiseks GNU/Linuxi\n"
-"keskkonnas andke käsureal korraldus \"mformat a:\" või \"fdformat /dev/fd0"
-"\"\n"
+"keskkonnas andke käsureal korraldus \"mformat a:\" või \"fdformat /dev/"
+"fd0\"\n"
"ning seejärel \"mkfs.vfat /dev/fd0\"."
#: ../help.pm:412
@@ -918,8 +923,23 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Loo kiirpaigaldusdiskett"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr "Kordamine"
+
+#: ../help.pm:405
#, c-format
+msgid "Automated"
+msgstr "Automaatne"
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr "Paketivaliku salvestamine"
+
+#: ../help.pm:408
+#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -938,7 +958,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -960,16 +980,16 @@ msgstr ""
"\n"
"Klõpsake \"%s\", kui olete vormindamiseks valmis.\n"
"\n"
-"Klõpsake \"%s\", kui soovite valida oma uue Mandriva Linuxi süsteemi\n"
+"Klõpsake \"%s\", kui soovite valida oma uue Mageiai süsteemi\n"
"paigaldamiseks mõne muu partitsiooni.\n"
"\n"
"Klõpsake \"%s\", kui soovite valida partitsioone, millel kontrollitaks\n"
"vigaste plokkide olemasolu."
#: ../help.pm:437
-#, c-format
+#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -981,7 +1001,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"On tõenäoline, et praegu, kui Te paigaldate Mandriva Linuxit, on mõned\n"
+"On tõenäoline, et praegu, kui Te paigaldate Mageiait, on mõned\n"
"paketid jõudnud pärast väljalaset juba uuenduskuuri üle elada. Mõnes on ära\n"
"parandatud paar väiksemat viga, mõnes turvaprobleemid. Et võiksite neist\n"
"uuendustest tulu lõigata, on Teil nüüd võimalik need Internetist alla "
@@ -999,7 +1019,7 @@ msgstr ""
"paigaldada, või \"%s\", kui Te ei soovi seda teha."
#: ../help.pm:450
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -1008,7 +1028,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1021,8 +1041,7 @@ msgstr ""
"enamasti kasutamise mõnevõrra keerukamaks.\n"
"\n"
"Kui Te ei tea, mida valida, jätke kehtima vaikimisi pakutud valik. Hiljem\n"
-"saate turvataset muuta Mandriva Linuxi juhtimiskeskuses abivahendiga "
-"Draksec.\n"
+"saate turvataset muuta Mageiai juhtimiskeskuses abivahendiga Draksec.\n"
"\n"
"Väli \"%s\" on mõeldud süsteemi turvalisuse eest vastutava kasutaja\n"
"teavitamiseks. Turvalisusega seotud teated saadetakse sellele aadressile."
@@ -1030,27 +1049,30 @@ msgstr ""
#: ../help.pm:461
#, c-format
msgid "Security Administrator"
-msgstr "Turvaadministraator"
+msgstr "Turvahaldur"
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1066,21 +1088,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1097,16 +1121,10 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-"Nüüd peate valima partitsiooni(d), kuhu soovite Mandriva Linuxi paigaldada.\n"
+"Nüüd peate valima partitsiooni(d), kuhu soovite Mageiai paigaldada.\n"
"Kui need on juba olemas kas GNU/Linuxi varasema paigalduse või mõne muu\n"
"kettajagamisvahendi tegevuse tulemusena, võite kasutada olemasolevaid\n"
"partitsioone. Vastasel juhul tuleb need luua.\n"
@@ -1176,58 +1194,83 @@ msgstr ""
"\n"
"Lähemat infot erinevate failisüsteemitüüpide kohta leiab \"Süvateadmiste\n"
"käsiraamatu\" (\"Reference Manual\") peatükist \"Linuxi failisüsteem\".\n"
-"\n"
-"Kui paigaldamine toimub PPC-masinas, tuleks luua vähemalt 1MB suurune\n"
-"väike HFS \"bootstrap\"-partitsioon, mida kasutab alglaadur yaboot. Kui Te\n"
-"aga teete selle partitsiooni natukene suuremaks (näiteks nii umbes 50MB),\n"
-"on see päris hea koht, kuhu hädaolukorraks paigutada tagavarakernel\n"
-"ja ramdisk-laadepildid."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr "Partitsioonitabeli salvestamine"
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr "Partitsioonitabeli taastamine"
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr "Partitsioonitabeli päästmine"
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Eemaldatava andmekandja automaatne haakimine"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr "Nõustaja"
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr "Tagasi"
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Tava- ja ekspertrežiimi lülitamine"
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Teie arvuti kõvakettal on rohkem kui üks Microsoft Windowsi partitsioon.\n"
-"Palun valige välja see, mille suurust soovite Mandriva Linuxi jaoks muuta.\n"
+"Palun valige välja see, mille suurust soovite Mageiai jaoks muuta.\n"
"\n"
"Teie abistamiseks on igal partitsioonil näidatud \"Nimi Linuxis\", \"Nimi "
"Windowsis\" ja \"Mahutavus\".\n"
@@ -1268,35 +1311,35 @@ msgstr ""
"riikide täisnimekirja."
#: ../help.pm:572
-#, c-format
+#, fuzzy, c-format
msgid ""
"This step is activated only if an existing GNU/Linux partition has been\n"
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Seda sammu on vaja ainult siis, kui masinas leiti varasem\n"
"GNU/Linuxi partitsioon.\n"
"\n"
"DrakX soovib nüüd teada, kas tahate paigaldada uue süsteemi või uuendada\n"
-"olemasolevat Mandriva Linuxi süsteemi:\n"
+"olemasolevat Mageiai süsteemi:\n"
"\n"
" * \"%s\": üldiselt pühib see vana süsteemi täielikult minema. Kui\n"
"soovite muuta praeguseid partitsioone või failisüsteemi, siis võiks seda "
@@ -1305,13 +1348,12 @@ msgstr ""
"ülekirjutamise eest päästa.\n"
"\n"
" * \"%s\": see paigaldamisviis võimaldab uuendada praegu olemasolevasse\n"
-"Mandriva Linuxi süsteemi paigaldatud pakette. Kettajagamisskeemi ega "
-"kasutajate\n"
+"Mageiai süsteemi paigaldatud pakette. Kettajagamisskeemi ega kasutajate\n"
"andmeid ei muudeta. Enamik seadistussamme on kasutatavad sarnaselt "
"tavapärasele\n"
"paigaldamisele.\n"
"\n"
-"Võimalus \"Uuendus\" peaks toimima edukalt Mandriva Linuxi süsteemides\n"
+"Võimalus \"Uuendus\" peaks toimima edukalt Mageiai süsteemides\n"
"alates versioonist 8.1. Uuenduse proovimist varasemate versioonide peal\n"
"me siiski ei soovita."
@@ -1351,7 +1393,7 @@ msgstr ""
"mitte-ladina asetusega klaviatuuri."
#: ../help.pm:612
-#, c-format
+#, fuzzy, c-format
msgid ""
"The first step is to choose your preferred language.\n"
"\n"
@@ -1367,8 +1409,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1406,7 +1447,7 @@ msgstr ""
"\n"
"Mõni sõna UTF-8 (unicode) toetuse kohta. Unicode on uus kodeering, mis\n"
"peaks hõlmama kõiki keeli. Selle täielik toetus ei ole GNU/Linuxis\n"
-"siiski veel täielikult teostatud. Seetõttu lähtub Mandriva Linux selle\n"
+"siiski veel täielikult teostatud. Seetõttu lähtub Mageia selle\n"
"kasutamisel või mittekasutamisel järgmistest asjaoludest:\n"
"\n"
" * Kui valite keele, mis üldreeglina kasutab muud kodeeringut (latin1 \n"
@@ -1434,7 +1475,12 @@ msgstr ""
msgid "Espanol"
msgstr "Hispaania"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr "Vaikimisi Unicode kasutamine"
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1521,94 +1567,7 @@ msgstr ""
"Palun valige õige port. Näiteks MS Windowsi \"COM1\" kannab\n"
"GNU/Linuxis nime \"ttyS0\"."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Nüüd on kätte jõudnud kõige olulisem hetk Teie arvuti turvalisuse "
-"tagamisel:\n"
-"Teil tuleb määrata administraatori (\"root\") parool. Administraator haldab "
-"kogu\n"
-"süsteemi ja ainult temal on õigus seda uuendada, kasutajaid lisada, muuta\n"
-"kogu süsteemi seadistusi ja nii edasi. Ehk teisisõnu - administraator võib "
-"teha\n"
-"kõike! Seepärast tuleks parool valida selline, mida oleks raske ära arvata.\n"
-"DrakX ütleb Teile, kui parool tundub olevat liiga lihtne. Te võite muidugi "
-"jätta\n"
-"ka parooli sisestamata, aga me soovitame väga tungivalt seda siiski teha.\n"
-"Nagu iga muu operatsioonisüsteem, ei ole ka GNU/Linuxi süsteem täielikult\n"
-"kaitstud vigade eest. Kuna administraator võib kõiki piiranguid muuta ning\n"
-"vahel tahtmatultki kustutada oma hooletu tegevusega kõik andmed mingilt\n"
-"partitsioonilt, on päris oluline, et administraatoriks saamine ei oleks\n"
-"eriti lihtne.\n"
-"\n"
-"Parool võib koosneda nii tähtedest kui numbritest ja peab olema vähemalt\n"
-"8 (kaheksa) märki pikk. Ärge pange kunagi administraatori parooli kirja - "
-"see\n"
-"võib muuta ligipääsu Teie süsteemile võõrastele liiga hõlpsaks.\n"
-"\n"
-"Väike soovitus - ärge siiski parooli liiga keeruliseks või pikaks ajage,\n"
-"sest lõppeks peaksite seda ju suutma ka meelde jätta!\n"
-"\n"
-"Kui Te parooli sisestate, seda ekraanil ei näidata. Juhuslike näpuvigade\n"
-"vältimiseks peate selle sisestama kaks korda järjest. Siiski, kui teete\n"
-"mõlemal korral ühesuguse vea, on just see \"vigane\" parool, mida Teilt "
-"oodatakse\n"
-"administraatorina sisselogimisel.\n"
-"\n"
-"Kui soovite, et ligipääsu käesolevale arvutile kontrolliks mõni\n"
-"autentimisserver, klõpsake nupul \"%s\".\n"
-"\n"
-"Kui Teie võrgus on kasutusel LDAP, NIS või PDC Windowsi domeeni autentimise\n"
-"teenused, valige neist sobilik \"%s\". Kui Te aga ei juhtu teadma,\n"
-"mida teha, pöörduge oma võrgu administraatori poole.\n"
-"\n"
-"Kui Teil on probleeme parooli meelespidamisega, Teie arvuti ei ole\n"
-"ühendatud ühtegi administreeritavasse võrku või Te usaldate täielikult\n"
-"kõiki, kes Teie arvutit kasutavad, on mõttekas valida \"%s\"."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "autentimisviis"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1622,7 +1581,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1644,10 +1603,10 @@ msgstr ""
"VÄGA TÄPSELT teate, mida teete!"
#: ../help.pm:745
-#, c-format
+#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1668,12 +1627,12 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Siin saate valida oma arvuti trükkimissüsteemi. Teised "
"operatsioonisüsteemid\n"
-"võivad Teile pakkuda vaid üht süsteemi, kuid Mandriva Linuxi puhul saate\n"
+"võivad Teile pakkuda vaid üht süsteemi, kuid Mageiai puhul saate\n"
"valida tervelt kahe seast.\n"
"\n"
" * \"%s\" - mis tähendab \"trüki kohe\" (\"print, do not queue\") - tuleks "
@@ -1686,7 +1645,7 @@ msgstr ""
"maailma, valige \"pdq\".\n"
"\n"
" * \"%s\" - \"tavaline UNIXi trükkimissüsteem\" (\"Common Unix Printing\n"
-"System\") - on hiilgav valik trükkimiseks Teie kohalikul printeril või ka "
+"System\") - on hiilgav valik trükkimiseks Teie kohalikus printeris või ka "
"mõnel teisel pool maakera asuvas\n"
"printeris. See on lihtne süsteem, mis võib olla nii kliendiks kui serveriks "
"iidsele\n"
@@ -1698,7 +1657,7 @@ msgstr ""
"trükkimiseks või printeri seadistamiseks.\n"
"\n"
"Kui leiate hiljem, et siinkohal langetatud valik polnud vahest kõige parem,\n"
-"siis saate seda muuta Mandriva Linuxi juhtimiskeskuses PrinterDrake abil,\n"
+"siis saate seda muuta Mageiai juhtimiskeskuses PrinterDrake abil,\n"
"klõpsates seal nupule \"%s\"."
#: ../help.pm:768
@@ -1706,7 +1665,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr "CUPS"
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Ekspertrežiim"
@@ -1719,7 +1683,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1764,7 +1728,7 @@ msgstr ""
"Teie teada tegelikult on, klõpsake nuppu ja valige uus draiver."
#: ../help.pm:794
-#, c-format
+#, fuzzy, c-format
msgid ""
"As a review, DrakX will present a summary of information it has gathered\n"
"about your system. Depending on the hardware installed on your machine, you\n"
@@ -1787,11 +1751,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1809,8 +1768,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1827,7 +1785,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1852,11 +1810,6 @@ msgstr ""
"\n"
" * \"%s\": võimaldab kontrollida hiire seadistusi ja neid vajadusel muuta.\n"
"\n"
-" * \"%s\": klõps nupule \"%s\" avab printeri seadistamise nõustaja.\n"
-"Seda, kuidas uut printerit seadistada, vaadake lähemalt \"Põhiteadmiste\n"
-"käsiraamatu\" vastavast peatükist. Siin nähtav on sarnane paigaldamise ajal "
-"nähtuga.\n"
-"\n"
" * \"%s\": kui süsteemis leiti helikaart, näidatakse seda.\n"
"Kui märkate, et siintoodud helikaart pole see, mis tegelikult on\n"
"süsteemi paigaldatud, klõpsake nupule ja valige sobiv draiver.\n"
@@ -1872,10 +1825,10 @@ msgstr ""
"ekraanilahutuseks \"800x600\" või \"1024x768\". Kui see Teile ei sobi,\n"
"klõpsake nupule \"%s\" ja valige mõni muu võimalus.\n"
"\n"
-" * \"%s\": Kui soovite kohe seadistada juurdepääsu Internetti või "
-"kohtvõrku,\n"
-"saate seda teha nupule klõpsates.\n"
-"\n"
+" * \"%s\": Kui soovite kohe seadistada juurdepääsu Internetti või\n"
+"kohtvõrku, saate seda teha nupule klõpsates. Täpsemalt kõnelevad\n"
+"võrgu seadistustest distributsiooniga kaasas olevad trükised või\n"
+"Mageiai juhtimiskeskuse abimaterjalid.\n"
" * \"%s\": siin saab määrata HTTP ja FTP puhverserveri aadressid,\n"
"kui Teie masin asub puhverserveri taga.\n"
"\n"
@@ -1888,13 +1841,18 @@ msgstr ""
"\n"
" * \"%s\": kui soovite muuta alglaaduri seadistusi, klõpsake\n"
"sellele nupule. See on mõeldud siiski vaid kogenud kasutajatele.\n"
-"Täpsemat infot leiab käsiraamatust või Mandriva Linuxi juhtimiskeskusest.\n"
+"Täpsemat infot leiab käsiraamatust või Mageiai juhtimiskeskusest.\n"
"\n"
" * \"%s\": saate täpselt kontrollida, millised teenused Teie\n"
"süsteemis töötavad. Kui kavatsete kasutada oma masinat serverina, kuluks\n"
"ära seadistused üle vaadata."
-#: ../help.pm:858
+#: ../help.pm:809
+#, c-format
+msgid "TV card"
+msgstr "TV-kaart"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN kaart"
@@ -1905,13 +1863,13 @@ msgid "Graphical Interface"
msgstr "Graafiline kasutajaliides"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
-"Valige kõvaketas, mida soovite puhastada oma uue Mandriva Linuxi\n"
+"Valige kõvaketas, mida soovite puhastada oma uue Mageiai\n"
"paigaldamiseks. Ettevaatust, kõik sellel leiduvad andmed hävitatakse\n"
"ja neid ei saa enam taastada."
@@ -1919,12 +1877,14 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Valige \"%s\", kui soovite kustutada kõik sellel kettal asuvad\n"
"partitsioonid. Ettevaatust, pärast \"%s\" klõpsamist ei ole enam\n"
@@ -1943,3 +1903,118 @@ msgstr "Järgmine ->"
msgid "<- Previous"
msgstr "<- Eelmine"
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": klõps nupul \"%s\" avab printeri seadistamise nõustaja.\n"
+#~ "Uurige lähemalt \"Põhiteadmiste käsiraamatu\" (\"Starter Guide\")\n"
+#~ "vastavast peatükist, kuidas uut printerit häälestada.\n"
+#~ "Siin näidatav sarnaneb sellele, mida võisite näha paigaldamise ajal."
+
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "Nüüd on kätte jõudnud kõige olulisem hetk Teie arvuti turvalisuse "
+#~ "tagamisel:\n"
+#~ "Teil tuleb määrata administraatori (\"root\") parool. Administraator "
+#~ "haldab kogu\n"
+#~ "süsteemi ja ainult temal on õigus seda uuendada, kasutajaid lisada, "
+#~ "muuta\n"
+#~ "kogu süsteemi seadistusi ja nii edasi. Ehk teisisõnu - administraator "
+#~ "võib teha\n"
+#~ "kõike! Seepärast tuleks parool valida selline, mida oleks raske ära "
+#~ "arvata.\n"
+#~ "DrakX ütleb Teile, kui parool tundub olevat liiga lihtne. Te võite "
+#~ "muidugi jätta\n"
+#~ "ka parooli sisestamata, aga me soovitame väga tungivalt seda siiski "
+#~ "teha.\n"
+#~ "Nagu iga muu operatsioonisüsteem, ei ole ka GNU/Linuxi süsteem "
+#~ "täielikult\n"
+#~ "kaitstud vigade eest. Kuna administraator võib kõiki piiranguid muuta "
+#~ "ning\n"
+#~ "vahel tahtmatultki kustutada oma hooletu tegevusega kõik andmed mingilt\n"
+#~ "partitsioonilt, on päris oluline, et administraatoriks saamine ei oleks\n"
+#~ "eriti lihtne.\n"
+#~ "\n"
+#~ "Parool võib koosneda nii tähtedest kui numbritest ja peab olema vähemalt\n"
+#~ "8 (kaheksa) märki pikk. Ärge pange kunagi administraatori parooli kirja - "
+#~ "see\n"
+#~ "võib muuta ligipääsu Teie süsteemile võõrastele liiga hõlpsaks.\n"
+#~ "\n"
+#~ "Väike soovitus - ärge siiski parooli liiga keeruliseks või pikaks ajage,\n"
+#~ "sest lõppeks peaksite seda ju suutma ka meelde jätta!\n"
+#~ "\n"
+#~ "Kui Te parooli sisestate, seda ekraanil ei näidata. Juhuslike näpuvigade\n"
+#~ "vältimiseks peate selle sisestama kaks korda järjest. Siiski, kui teete\n"
+#~ "mõlemal korral ühesuguse vea, on just see \"vigane\" parool, mida Teilt "
+#~ "oodatakse\n"
+#~ "administraatorina sisselogimisel.\n"
+#~ "\n"
+#~ "Kui soovite, et ligipääsu käesolevale arvutile kontrolliks mõni\n"
+#~ "autentimisserver, klõpsake nupul \"%s\".\n"
+#~ "\n"
+#~ "Kui Teie võrgus on kasutusel LDAP, NIS või PDC Windowsi domeeni "
+#~ "autentimise\n"
+#~ "teenused, valige neist sobilik \"%s\". Kui Te aga ei juhtu teadma,\n"
+#~ "mida teha, pöörduge oma võrgu administraatori poole.\n"
+#~ "\n"
+#~ "Kui Teil on probleeme parooli meelespidamisega, Teie arvuti ei ole\n"
+#~ "ühendatud ühtegi administreeritavasse võrku või Te usaldate täielikult\n"
+#~ "kõiki, kes Teie arvutit kasutavad, on mõttekas valida \"%s\"."
+
+#~ msgid "authentication"
+#~ msgstr "autentimisviis"
diff --git a/perl-install/install/help/po/eu.po b/perl-install/install/help/po/eu.po
index 4f405031b..e2b20246e 100644
--- a/perl-install/install/help/po/eu.po
+++ b/perl-install/install/help/po/eu.po
@@ -1,7 +1,7 @@
# translation of eu.po to EUSKARA
# translation of DrakX-eu.po to EUSKARA
# translation of DrakX-eu.po to basque
-# EUSKARA: Mandriva Linux translation.
+# EUSKARA: Mageia translation.
# Copyright (C) 2002,2003, 2004, 2005 Free Software Foundation, Inc.
# Iñigo Salvador Azurmendi <xalba@euskalnet.net>, 2001-2002,2003,2004, 2005.
# Hizkuntza Politikarako Sailburuordetza <hizpol@ej-gv.es>, 2004.
@@ -10,26 +10,27 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX-eu\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
-"PO-Revision-Date: 2005-12-31 14:02+0100\n"
-"Last-Translator: Iñigo Salvador Azurmendi <xalba@euskalnet.net>\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
+"PO-Revision-Date: 2014-10-05 15:08+0100\n"
+"Last-Translator: Egoitz Rodriguez Obieta <egoitzro@gmail.com>\n"
"Language-Team: EUSKARA <itzulpena@euskalgnu.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.10.2\n"
+"X-Generator: Poedit 1.5.7\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../help.pm:14
#, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
-"Aurrera jarraitu aurretik lizentziaren baldintzak arretaz irakurri. \n"
-"Mandriva Linux banaketa osoa hartzen du. Baldintza guztiekin ados \n"
+"Aurrera jarraitu aurretik lizentziaren baldintzak arretaz irakurri.\n"
+"Mageia banaketa osoa hartzen du. Baldintza guztiekin ados\n"
"bazaude, hautatu \"%s\" laukia. Onartzen ez badituzu, \"%s\" botoian klik\n"
"egin eta ordenagailua berrabiaraziko da."
@@ -115,6 +116,16 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr "Erabiltzaile izena"
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr "Erabiltzailea onartu"
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Eginbide hau erabili nahi duzu?"
@@ -123,7 +134,8 @@ msgstr "Eginbide hau erabili nahi duzu?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -133,24 +145,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Hemen dituzu zure disko zurrunean detektatutako Linux partizioak.\n"
@@ -193,13 +209,13 @@ msgstr ""
#: ../help.pm:88
#, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Mandriva Linux instalazioa zenbait CD-ROMetan banatuta dago. \n"
+"Mageia instalazioa zenbait CD-ROMetan banatuta dago. \n"
"Hautatutako pakete bat beste CD-ROM batean badago, DrakX-k du\n"
"uneko CDa egotziko eta behar den CDa sartzeko eskatuko dizu.\n"
"Eskatzen zaizun CDa ez badaukazu eskura, sakatu \"%s\",\n"
@@ -211,12 +227,11 @@ msgstr ""
#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -229,8 +244,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -268,10 +282,10 @@ msgid ""
"megabytes."
msgstr ""
"Sisteman zein programa instalatu nahi dituzun zehazteko garaia da.\n"
-"Mandriva Linux-erako milaka pakete dituzu erabilgarri, eta kudeaketa\n"
+"Mageia-erako milaka pakete dituzu erabilgarri, eta kudeaketa\n"
"errazteko, antzeko aplikazioen multzotan kokatu dira.\n"
"\n"
-"Mandriva Linux-ek pakete multzoak lau kategoriatan antolatzen ditu.\n"
+"Mageia-ek pakete multzoak lau kategoriatan antolatzen ditu.\n"
"Kategoria anitzetako aplikazioak nahastu eta bateratu ditzakezu, honela\n"
"\"Lanpostua\" instalazio batek \"Zerbitzari\" kategoriako aplikazioak\n"
"instalatuta izan ditzake.\n"
@@ -353,10 +367,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -388,10 +402,10 @@ msgstr ""
"Zerbitzari pakete bat hautatu bada, pakete hori zehazki hautatu duzulako\n"
"edo pakete-talde bateko zati zelako, zerbitzari horiek instalatu nahi "
"dituzula\n"
-" berresteko eskatuko zaizu. Lehenespenez Mandriva Linux-ek instalatutako\n"
+" berresteko eskatuko zaizu. Lehenespenez Mageia-ek instalatutako\n"
"edozein zerbitzu abioan automatikoki abiaraziko du. Nahiz eta seguruak\n"
" diren eta arazo ezagunik ez duten banaketa kaleratzeko garaian, guztiz\n"
-" posible da Mandriva Linux bertsio hau amaitu eta gero segurtasun zuloak\n"
+" posible da Mageia bertsio hau amaitu eta gero segurtasun zuloak\n"
" aurkitu izana. Ez badakizu zerbitzu zehatz batek zer egiten duen edo "
"zergatik\n"
" instalatu den, klikatu \"%s\". \"%s \" klikatzeak zerrendatutako "
@@ -418,22 +432,9 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Mendekotasun automatikoak"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": \"%s\" botoian klik eginda inprimagailuak konfiguratzeko morroia\n"
-"irekiko da. Begiratu \"Starter Guide\"/\"Hasiberrien Gida\"-n dagokion\n"
-"kapitulua inprimagailu berria nola ezarri jakiteko. Gure eskuliburuan \n"
-"aurkeztutako interfazea instalazio garaian erabilitakoaren antzekoa da."
-
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manual/literal/drakx/eu/drakx-help.xml
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -501,7 +502,12 @@ msgstr ""
" zerbitzaria aukeratzea gomendatzen dizugu. Aukera honek ordu zerbitzari\n"
" bat instalatzen du zure bertako sareko beste makinek ere erabili dezaketena."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr "Hardware-erlojua GMT-an jarri "
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Ordu-sinkronizazio automatikoa"
@@ -534,7 +540,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -589,7 +595,7 @@ msgid ""
"not successful in getting the display configured."
msgstr ""
"X (X Window sistema) GNU/Linux-en interfaze grafikoaren bihotza da,\n"
-" Mandriva Linux-ekin bildutako ingurune grafiko guztiek (KDE, Gnome,\n"
+" Mageia-ekin bildutako ingurune grafiko guztiek (KDE, Gnome,\n"
"Afterstep, WindowMaker...) erabiltzen dutena.\n"
"\n"
"Bistaratze grafiko optimoa lortzeko aldatu daitekeen parametro zerrenda\n"
@@ -712,39 +718,43 @@ msgstr ""
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -753,15 +763,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -774,11 +784,11 @@ msgid ""
"experience. For more instructions on how to use the DiskDrake utility,\n"
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
-"Hona iritsita, Mandriva Linux sistema eragilea disko zurrunean non\n"
+"Hona iritsita, Mageia sistema eragilea disko zurrunean non\n"
"instalatu aukeratu behar duzu. Zure disko zurruna hutsik badago edo\n"
"lehendik dagoen sistema eragile batek leku erabilgarri guztia betetzen\n"
"badu, diska zatikatu beharko duzu. Disko zurruna zatikatzea, funtsean, \n"
-"diskoa logikoki zatitzea da, Mandriva Linux sistema berria instalatzeko\n"
+"diskoa logikoki zatitzea da, Mageia sistema berria instalatzeko\n"
"behar den lekua sortzeko.\n"
"\n"
"Disko zurruna zatikatzeko prozesua normalean itzulbiderik gabea denez\n"
@@ -809,7 +819,7 @@ msgstr ""
" edo NTFS partizioei neurria aldatu. Neurri aldaketa datu galerarik gabe\n"
"gauzatu daiteke baldin eta aurretik Windows partizioa desfragmentatu\n"
" baduzu. Oso gomendagarria da datuen babeskopiak egitea. Aukera hau\n"
-" erabiltzea gomendatzen da Mandriva Linux eta Microsoft Windows, biak,\n"
+" erabiltzea gomendatzen da Mageia eta Microsoft Windows, biak,\n"
" konputagailu berean erabili nahi badituzu.\n"
"\n"
" Aukera hau hautatu aurretik, ulertu ezazu prozedura honen ondoren,\n"
@@ -818,7 +828,7 @@ msgstr ""
"zure datuak gorde edo software berria instalatzeko.\n"
"\n"
" * \"%s\": Disko zurrunean dauden datu eta partizio guztiak ezabatu eta \n"
-"Mandriva Linux sistema berriarekin ordeztu nahi badituzu, hautatu aukera\n"
+"Mageia sistema berriarekin ordeztu nahi badituzu, hautatu aukera\n"
" hau. Kontuz, berretsi ondoren ezingo baituzu eragiketa desegin.\n"
"\n"
" !! Aukera hau hautatzen baduzu, diskoko datu guztiak ezabatuko dira. !!\n"
@@ -842,7 +852,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Erabili lehendik dagoen partizioa"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr "Microsoften Windows-eko ® partizioko espazio librea erabili ezazu"
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Borratu disko osoa"
@@ -928,9 +943,24 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Sortu auto-instalazioko disketea"
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr "Errepikatu"
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr "Automatizatuta"
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr "Pakete-hautaketa gorde ezazu"
+
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manual/literal/drakx/eu/drakx-help.xml
-#: ../help.pm:415
+#: ../help.pm:408
#, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -950,7 +980,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -971,8 +1001,7 @@ msgstr ""
"\n"
"Klikatu \"%s\" partizioak eratzeko prest zaudenean.\n"
"\n"
-"Klikatu \"%s\" Mandriva Linux sistema eragile berria instalatzeko beste "
-"partizio\n"
+"Klikatu \"%s\" Mageia sistema eragile berria instalatzeko beste partizio\n"
" bat aukeratu nahi baduzu.\n"
"\n"
"Klikatu \"%s\" diskoan hondatutako blokeak aurkitzeko egiaztatuko diren\n"
@@ -983,7 +1012,7 @@ msgstr ""
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -995,7 +1024,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Mandriva Linux instalatzen duzunerako, litekeena da pakete batzuk\n"
+"Mageia instalatzen duzunerako, litekeena da pakete batzuk\n"
"hasierako argitalpenetik aldatu izana. Baliteke akatsak zuzendu eta \n"
"segurtasun arazoak konpondu izatea. Eguneratzeez baliatu ahal izan\n"
"zaitezen, orain, Internetetik jaitsi ditzakezu. Markatu \"%s\" dabilen "
@@ -1020,7 +1049,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1033,7 +1062,7 @@ msgstr ""
"ezartzean, normalean erabilera erraztasuna galtzen da.\n"
"\n"
"Zer aukeratu ez badakizu, hautatu aukera lehenetsia. Gero aldatu \n"
-"ahal izango duzu draksec tresnarekin, Mandriva Linux Aginte Gunearen\n"
+"ahal izango duzu draksec tresnarekin, Mageia Aginte Gunearen\n"
"zati bat.\n"
"\n"
"Bete \"%s\" eremua segurtasun arduradunaren postaE helbidearekin.\n"
@@ -1050,21 +1079,24 @@ msgstr "Segurtasun-administratzailea"
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1080,21 +1112,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1111,16 +1145,10 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-"Orain, Mandriva Linux sistema instalatzeko zein partizio erabiliko\n"
+"Orain, Mageia sistema instalatzeko zein partizio erabiliko\n"
"d(ir)en aukeratu behar duzu. Partizioak jadanik definituta badaude,\n"
"(GNU/Linux-en aurreko instalazio batek edo beste partizio-tresna batek\n"
"definituta), lehendik dauden partizioak erabil ditzakezu. Bestela, disko \n"
@@ -1137,7 +1165,7 @@ msgstr ""
" * \"%s\": aukera honek hautatutako disko zurruneko partizio guztiak \n"
"ezabatzen ditu\n"
"\n"
-" * \"%s\": aukera honekin automatikoki sor ditzakezu ext3 eta\n"
+" * \"%s\": aukera honekin automatikoki sor ditzakezu ext4 eta\n"
"swap partizioak disko zurruneko leku librean\n"
"\n"
"\"%s\": eginbide gehiagotarako aukera ematen du:\n"
@@ -1190,19 +1218,38 @@ msgstr ""
"\n"
"Erabil daitezkeen fitxategi-sistema desberdinei buruzko informazioa\n"
"lortzeko, irakurri ``Erreferentzia Eskuliburuko'' ext2FS kapitulua.\n"
-"\n"
-"PPC makina batean instalatu behar baduzu, gutxienez 1 Mbko HFS\n"
-"``bootstrap'' partizio txiki bat sortzea komeni zaizu, yaboot\n"
-"abioko kargatzaileak erabil dezan. Partizioa handixeagoa egitea hautatzen \n"
-"baduzu, adibidez 50 MBkoa, leku egokia izan daiteke ordezko nukleo bat\n"
-"eta ramdisk imajinak biltegiratzeko emergentziazko abioa egin ahal izateko."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr "Partizio taula gorde"
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr "Partizio taula berritu"
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr "Partizio taula berrezkuratu"
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Euskarri aldagarriak automuntatzea"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr "Morroia"
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr "Desegin"
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Aldatu modu normalera/aditu modura"
@@ -1212,38 +1259,44 @@ msgstr "Aldatu modu normalera/aditu modura"
#: ../help.pm:536
#, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Microsoft partizio bat baino gehiago aurkitu dira zure disko zurrunean.\n"
-"Hautatu zeinen tamaina aldatu nahi duzun, Mandriva Linux sistema\n"
+"Hautatu zeinen tamaina aldatu nahi duzun, Mageia sistema\n"
"berria instalatu ahal izateko.\n"
"\n"
"Partizioak honela azaltzen dira: \"Linux izena\", \"Windows izena\"\n"
@@ -1297,43 +1350,43 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Zure makinan GNU/Linux partizio zahar bat aurkitzen bada bakarrik\n"
"aktibatzen da urrats hau.\n"
"\n"
"DrakX-k orain jakin behar du instalazio berri bat egin behar duzun edo\n"
-"lehendik dagoen Mandriva Linux sistema baten bertsioa berritu nahi duzun:\n"
+"lehendik dagoen Mageia sistema baten bertsioa berritu nahi duzun:\n"
"\n"
" * \"%s\": Zatirik handienean, sistema zaharra guztiz ezabatzen du. \n"
"Disko zurruneko partizio-banaketa aldatu nahi baduzu, edo fitxategi-sistema\n"
"aldatu, erabili aukera hau. Nolanahi ere, zure partizio-eskemaren arabera,\n"
"lehendik dauden datu batzuk gainidaztea saihestu dezakezu.\n"
"\n"
-" * \"%s\" instalazio-mota honek unean Mandriva Linux sisteman \n"
+" * \"%s\" instalazio-mota honek unean Mageia sisteman \n"
"instalatuta dituzun paketeak eguneratzeko aukera ematen du. Uneko \n"
"partizio-eskema eta erabiltzaile-datuak ez dira aldatzen. Bestelako \n"
"konfigurazio-urrats gehienak erabilgarri mantentzen dira, instalazio\n"
"estandarretan bezalatsu.\n"
"\n"
-"``Bertsio-berritu'' aukerak ondo funtzionatu behar luke Mandriva Linux\n"
-"sistemaren \"8.1\" bertsioetan edo berriagoetan. Mandriva Linux-en \"8.1\" \n"
+"``Bertsio-berritu'' aukerak ondo funtzionatu behar luke Mageia\n"
+"sistemaren \"8.1\" bertsioetan edo berriagoetan. Mageia-en \"8.1\" \n"
"baino bertsio zaharragoetan ez da gomendatzen Bertsio-berritzea."
# DO NOT BOTHER TO MODIFY HERE, SEE:
@@ -1396,8 +1449,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1439,8 +1491,7 @@ msgstr ""
"UTF-8 (unicode) euskarriari buruz: Unicode karaktere kodeketa berri bat da,\n"
"existitzen diren hizkuntza guztiak hartu nahi dituena. Hala ere, "
"berarentzako\n"
-"erabateko euskarria oraindik garatzen ari da GNU/Linux-en, Mandriva Linux-"
-"en\n"
+"erabateko euskarria oraindik garatzen ari da GNU/Linux-en, Mageia-en\n"
"UTF-8 erabilera erabiltzailearen hautaketen araberakoa da:\n"
"\n"
" * Jatorrizko kodeketa ahaltsua duen hizkuntza bat aukeratzen baduzu \n"
@@ -1473,9 +1524,14 @@ msgstr ""
msgid "Espanol"
msgstr "Gaztelania"
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr "Modu lehenetsian Erabili Unikodea"
+
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manual/literal/drakx/eu/drakx-help.xml
-#: ../help.pm:653
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1564,92 +1620,7 @@ msgstr ""
"Hautatu ataka egokia. Adibidez, Windows-eko \"COM1\" atakak\n"
"\"ttyS0\" izena du GNU/Linux-en."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manual/literal/drakx/eu/drakx-help.xml
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Hau da erabaki puntu garrantzitsuena zure GNU/Linux sistemaren\n"
-" segurtasunerako: \"root\" pasahitza idatzi behar duzu. \"Root\" sistema\n"
-" administratzailea da eta berak bakarrik dauka sistema eguneratu,\n"
-" erabiltzaileak erantsi, konfigurazio orokorra aldatu eta horrelakoetarako\n"
-" baimena. Labur esateko, \"root\"ek guztia egin dezake! Horregatik aukeratu\n"
-"behar duzu asmatzeko zaila den pasahitza. DrakX-k esango dizu aukeratzen\n"
-"duzun pasahitza errazegia den. Ikus dezakezunez ez zaude pasahitz bat\n"
-"sartzera behartuta, baino biziki gomendatzen dizugu horrelakorik ez egitea.\n"
-"GNU/Linux, erabilzaileen akatsetara beste edozein sistema eragilek adina\n"
-" joera dauka. \"root\"-ek muga guztiak gaindi ditzakeenez eta nahi gabe\n"
-" partizioetako datu guztiak ezaba ditzakeenez beraietara behar bezain\n"
-"kontuz ez sartzeagatik, garrantzi handia dauka \"root\" gisa sartzea\n"
-"zaila izatea.\n"
-"\n"
-"Pasahitzak karaktere alfanumerikoen nahasketa izan behar luke, gutxienez\n"
-"8 karakterekoa. Ez idatzi inon \"root\" pasahitza - zure sistema arriskuan\n"
-"jartzea izugarri errazten du.\n"
-"\n"
-"Oharra - ez egin pasahitza luzeegia edo konplexuegia, gero zuk gogoratzeko\n"
-"modukoa izan behar baitu!\n"
-"\n"
-"Pasahitza ez da pantailan bistaratuko zuk idatzi bitartean. Tekleatzean\n"
-"egindako akatsak saihesteko, pasahitza bi aldiz idatzi beharko duzu.\n"
-"Akats tipografiko bera bil aldiz egiten baduzu, pasahitz ``oker'' hori "
-"erabili\n"
-" beharko duzu \"root\" bezela konektatzen zaren lehen aldian.\n"
-"\n"
-"Ordenagailu honen sarbidea autentifikazio-zerbitzari batek kontrolatzea\n"
-"nahi baduzu, egin klik \"%s\" botoian.\n"
-"\n"
-"Zure sareak LDAP, NIS, edo PDC Windows domeinuen autentifikazio\n"
-" zerbitzuak erabiltzen baditu, hautatu \"%s\"ri dagokiona. Zein erabili ez\n"
-" badakizu, galdetu sare-administratzaileari.\n"
-"\n"
-"Pasahitzak gogoratzeko arazoak badituzu, edo zure ordenagailua inoiz ez\n"
-" bada Internetera konektatuta egongo eta konfiantza osoa baduzu\n"
-" ordenagailua erabiltzen duten guztiengan, \"%s\" hauta dezakezu."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "egiaztatzea"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1663,7 +1634,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1692,7 +1663,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1713,12 +1684,11 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Inprimatzeko sistema bat hautatzeko unea da orain.Eeste sistema eragile \n"
-"batzuk bakarra eskainiko dizute, baina Mandriva Linux-ek bi eskaintzen "
-"ditu.\n"
+"batzuk bakarra eskainiko dizute, baina Mageia-ek bi eskaintzen ditu.\n"
"Inprimaketa sistema bakoitza egokiago da konfigurazio mota batzuetarako.\n"
"\n"
" * \"%s\" -- ``print, do not queue'' esapidearen akronimoa da, eta aukera\n"
@@ -1739,7 +1709,7 @@ msgstr ""
"hautatzeko eta inprimagailua kudeatzeko interfaze grafikoak ditu.\n"
"\n"
"Hautapena orain egiten baduzu, eta beranduago ohartzen bazara zure\n"
-" inprimaketa sistema ez zaizula guztoko Mandriva Linux Aginte Guneko\n"
+" inprimaketa sistema ez zaizula guztoko Mageia Aginte Guneko\n"
" PrintDrake exekutatuz eta \"%s\" botoian klik eginez alda zenezake."
#: ../help.pm:768
@@ -1747,7 +1717,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr "CUPS"
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Aditu"
@@ -1762,7 +1737,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1828,11 +1803,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1850,8 +1820,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1868,7 +1837,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1897,11 +1866,6 @@ msgstr ""
" * \"%s\": egiaztatu uneko sagu konfigurazioa eta klikatu botoia aldatzea\n"
"beharrezka bada.\n"
"\n"
-" * \"%s\": \"%s\" botoian klikatzeak inprimagailu konfigurazio morroia\n"
-"irekiko du. Kontsultatu ``Hasiberrien Gida''n dagokion atala inprimagailu\n"
-"berri bat nola ezarri jakiteko. Bertan azaldutako interfazea instalazioan\n"
-" erabiltzen denaren antzekoa da.\n"
-"\n"
" * \"%s\": zure sisteman soinu txartel bat detektatzen bada, hemen\n"
" bistaratuko da. Bistaratutako soinu-txartela zure sisteman instalatuta "
"dagoena ez dela Ikusten baduzu, botoian klikatu eta beste gidari bat\n"
@@ -1936,17 +1900,19 @@ msgstr ""
"\n"
" * \"%s\": abio zamatzailearen konfigurazioa aldatu nahi baduzu, klikatu\n"
"botoi hontan. Erabiltzaile aurreratuek bakarrik erabili behar lukete. Jo\n"
-"inprimatutako dokumentaziora edo Mandriva Linux Aginte Guneko\n"
+"inprimatutako dokumentaziora edo Mageia Aginte Guneko\n"
" abio-zamatzailearen konfigurazioari buruzko lerroko laguntzara.\n"
"\n"
" * \"%s\": sarrera honen bitartez zehatz doitu dezakezu zure makinan\n"
"zein zerbitzu exekutatuko diren. Makina hau zerbitzari moduan erabiltzeko\n"
-"asmoa badaukazu ona litzateke ezarpen hau errepasatzea.zure makinan zein "
-"zerbitzu exekutatuko diren doitasunez \n"
-"kontrola dezakezu hemendik. Makina hau zerbitzari gisa erabiltzeko asmoa \n"
-"baduzu, konfigurazio hau berrikustea komeni zaizu."
+"asmoa badaukazu ona litzateke ezarpen hau errepasatzea."
-#: ../help.pm:858
+#: ../help.pm:809
+#, c-format
+msgid "TV card"
+msgstr "TB txartela"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN txartela"
@@ -1961,11 +1927,11 @@ msgstr "Interfaze grafikoa"
#: ../help.pm:861
#, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
-"Hautatu Mandriva Linux partizio berria instalatu ahal izateko ezabatu nahi\n"
+"Hautatu Mageia partizio berria instalatu ahal izateko ezabatu nahi\n"
"duzun disko zurruna. Kontuz ibili, unitate horretako datu guztiak galdu\n"
"egingo dira eta ezin izango dira berreskuratu!"
@@ -1975,12 +1941,14 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Sakatu \"%s\" disko zurrun honetako datu eta partizio guztiak \n"
"ezabatu nahi badituzu. Kontuz ibili, \"%s\" sakatu ondoren \n"
@@ -2000,4 +1968,3 @@ msgstr "Hurrengoa ->"
#, c-format
msgid "<- Previous"
msgstr "<- Aurrekoa"
-
diff --git a/perl-install/install/help/po/fa.po b/perl-install/install/help/po/fa.po
index 4e321363f..220fd90a2 100644
--- a/perl-install/install/help/po/fa.po
+++ b/perl-install/install/help/po/fa.po
@@ -6,10 +6,11 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX-fa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2005-02-26 06:31+0100\n"
"Last-Translator: Abbas Izad <abbasizad@hotmail.com>\n"
"Language-Team: Persian\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -17,10 +18,10 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
@@ -116,13 +117,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "آیا می‌خواهید از این قابلیت استفاده کنید؟"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -132,24 +144,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"قسمت‌بندی‌های لینوکس شناسائی شده‌ی موجود بر دیسک شما در اینجا فهرست شده‌اند.\n"
@@ -181,9 +197,9 @@ msgstr ""
"\"دومین کمترین شناسه SCSI\"، و غیره."
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
@@ -191,20 +207,19 @@ msgid ""
msgstr ""
"نصب لینوکس ماندریبا در چند سی‌دی پخش شده است. اگر بسته انتخاب شده بر روی\n"
"سی‌دی دیگری قرار دارد DrakX سی‌دی کنونی را بیرون زده و از شما میخواهد که\n"
-"سی‌دی خواسته شده را داخل کنید. اگر آن سی‌دی مورد تقاضا را ندارید فقط بر روی \"%"
-"s\"\n"
+"سی‌دی خواسته شده را داخل کنید. اگر آن سی‌دی مورد تقاضا را ندارید فقط بر روی "
+"\"%s\"\n"
"کلیک کنید و بسته‌های مربوطه نصب نخواهند شد."
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -217,8 +232,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -276,8 +290,8 @@ msgstr ""
"از آن رده انتخاب کنید. گروه مخصوص \"LSB\" سیستمتان را طوری پیکربندی\n"
"خواهد کرد تا هر چه بیشتر با مقررات پایه استاندارد لینوکس مطابقت داشته باشد.\n"
"\n"
-" انتخاب گروه \"LSB\" همچنین سریال هسته \"2.4\" را نیز بجای پیش فرض \"2.6"
-"\" \n"
+" انتخاب گروه \"LSB\" همچنین سریال هسته \"2.4\" را نیز بجای پیش فرض "
+"\"2.6\" \n"
"نصب خواهد کرد. این برای اطمینان ۱۰۰٪٪-مطابقت سیستم است. هر چند، اگر گروه\n"
"\"LSB\" را انتخاب نکنید سیستمی خواهید داشت که تقریبا ۱۰۰٪٪ LSB-تطبیق دارد.\n"
"\n"
@@ -330,7 +344,7 @@ msgid "Truly minimal install"
msgstr "کوچکترین نصب واقعی"
#: ../help.pm:152
-#, c-format
+#, fuzzy, c-format
msgid ""
"If you choose to install packages individually, the installer will present\n"
"a tree containing all packages classified by groups and subgroups. While\n"
@@ -343,10 +357,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -404,20 +418,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "وابستگی‌های خودکار"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": با کلیک بر دکمه‌ی \"%s\" جادوگر پیکربندی چاپگر باز خواهد شد\n"
-"به فصل مربوط در ``Starter Guide'' برای اطلاعات بیشتر برای نصب یک چاپگر\n"
-"جدید مراجعه کنید. ظاهر عرضه شده در آنجا شبیه به آن است که در هنگام\n"
-"نصب استفاده می‌گردد."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -488,7 +489,12 @@ msgstr ""
"کارگزار زمانی را نصب می‌کند که می‌تواند بوسیله‌ی ماشین های دیگر بر روی\n"
"شبکه‌اتان گردد."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "هم‌گاه‌سازی خودکار زمان"
@@ -518,11 +524,11 @@ msgstr ""
"سؤال خواهد شد."
#: ../help.pm:234
-#, c-format
+#, fuzzy, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -695,41 +701,45 @@ msgstr ""
"پیکربندی نمایشگر خود موفق نبوده‌اید."
#: ../help.pm:319
-#, c-format
+#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -738,15 +748,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -825,7 +835,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "استفاده از قسمت‌بندی‌های موجود"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "تمام دیسک پاک شود"
@@ -902,8 +917,23 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "تولید دیسکچه‌ی نصب-خودکار"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
+#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -922,7 +952,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -951,9 +981,9 @@ msgstr ""
"را انتخاب کنید بر %s کلیک کنید."
#: ../help.pm:437
-#, c-format
+#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -979,7 +1009,7 @@ msgstr ""
"دریافت و نصب بسته‌های انتخاب شده، یا \"%s\" را برای ترک فشار دهید."
#: ../help.pm:450
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -988,7 +1018,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1014,24 +1044,27 @@ msgid "Security Administrator"
msgstr "مدیر امنیت"
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1047,21 +1080,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1078,14 +1113,8 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"در این نقطه، شما مجبور به انتخاب قسمت‌بندی(های) که برای نصب سیستم لینوکس \n"
"ماندریبا استفاده خواهد شد هستید.اگر قسمت‌بندی‌هایی که یا از یک نصب قبلی \n"
@@ -1102,7 +1131,7 @@ msgstr ""
" * \"%s\": این گزینه تمام قسمت‌بندی‌های روی دیسک انتخاب شده را حذف می‌کند\n"
"\n"
" * \"%s\": این گزینه بر روی فضای آزاد دیسک شما بطور خودکار قسمت‌بندی‌های\n"
-"ext3 و حافظه مبادله را ایجاد می‌کند\n"
+"ext4 و حافظه مبادله را ایجاد می‌کند\n"
"\n"
"\"%s\": دسترسی به قابلیت‌های دیگر را فراهم می‌سازد\n"
"\n"
@@ -1152,54 +1181,79 @@ msgstr ""
"\n"
"برای دریافت اطلاعات درباره انواع سیستم پرونده موجود، لطفاً فصل ext2FS \n"
"را از ` دستورالعمل مرجع'' بخوانید.\n"
-"\n"
-"اگر شما بر یک ماشین PPC نصب می‌کنید، شما باید یک قسمت‌بندی کوچک HFS \n"
-"``bootstrap'' حداقل ۱ مگابایت که برای بارگذار آغازگر yaboot\n"
-"استفاده می‌شود را ایجاد کنید اگر شما بطور اختیاری آن قسمت‌بندی را بزرگتر\n"
-"بسازید، مثلاً ۵۰ مگابایت، شما آن را برای انبار یک هسته یدک و تصاویر ramdisk\n"
-"در شرایط آغازگری اضطراری مفید خواهید یافت."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "سوارسازی-خودکار رسانه‌ی قابل انتقال"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "تعویض بین حالت عادی/کارشناسی"
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"بیش از یک قسمت‌بندی مایکروسافت بر دیسک شما شناسایی شده است. \n"
@@ -1247,29 +1301,29 @@ msgstr ""
"کامل کشورها کلیک کنید."
#: ../help.pm:572
-#, c-format
+#, fuzzy, c-format
msgid ""
"This step is activated only if an existing GNU/Linux partition has been\n"
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"این گام فقط در صورتی که یک قسمت‌بندی قدیمی لینوکس/گنو بر ماشین شما پیدا شود\n"
"فعال می‌گردد. \n"
@@ -1328,7 +1382,7 @@ msgstr ""
"و غیر لاتین تعویض کنید خواهد داد."
#: ../help.pm:612
-#, c-format
+#, fuzzy, c-format
msgid ""
"The first step is to choose your preferred language.\n"
"\n"
@@ -1344,8 +1398,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1414,7 +1467,12 @@ msgstr ""
msgid "Espanol"
msgstr "اسپانول"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1507,90 +1565,7 @@ msgstr ""
"لطفاً درگاه درست را انتخاب کنید، برای مثال، درگاه \"COM1\" در ویندوز \n"
"بنام \"ttyS0\" در لینوکس خوانده می‌شود."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"این مهمترین نقطه‌ی تصمیم گیری برای امنیت سیستم لینوکس/گنوی شما است.\n"
-"شما باید گذرواژه‌ی \"root\" را وارد کنید. \"Root\" مدیر سیستم است و تنها\n"
-"کاربری است که می‌تواند بروزسازی کرده، کاربران را اضافه کند، پیکربندی همگانی\n"
-"سیستم را تغییر دهد، و همچنین بقیه کارهای از این قبیل را. بطور خلاصه، \"root"
-"\"\n"
-"هر کاری را می‌تواند انجام دهد! برای همین شما باید گذرواژه‌ای را انتخاب کنید "
-"که\n"
-" حدس زدنش سخت باشد - DrakX اگر گذرواژه خیلی ساده باشد به شما تذکر داده\n"
-"خواهد شد. همانطور که مشاهده می‌کنید، شما مجبور به وارد کردن یک گذرواژه "
-"نیستید،\n"
-"ولی ما بشدت برعکس این را به شما نصیحت می‌کنیم. لینوکس/گنو مانند هر سیستم\n"
-"عامل دیگری برای خطاهای کارکنان مستعد است. چون \"root\" هیچ محدودیت اجرایی\n"
-"ندارد و بطور غیر عمدی تمام دادهها بر قسمت بندیها را بوسیله دستیابی بی توجه "
-"به\n"
-"قسمت بندیهای خود پاک کند، این امر مهمی است که بسختی بتوان \"root\" شد.\n"
-"\n"
-"گذرواژه بایستی ترکیبی از نویسه‌های الفبا و حداقل دارای ۸ نویسه باشد. هرگز\n"
-"گذرواژه \"root\" یادداشت نشود-- آن به آسانی سیستم را تسلیم میکند.\n"
-"\n"
-"یک نصیحت -- گذرواژه را طولانی یا پیچیده نسازید برای اینکه باید بتوانید\n"
-"آنرا بخاطر بسپارید!\n"
-"\n"
-"گذرواژه هنگام نگارش آن برصفحه نشان داده نخواهد شد. برای کم کردن احتمال\n"
-"خطای نگارش کورکورانه لازم است که گذرواژه را دوبار وارد کنید. اگر اتفاقی\n"
-"هر دوبار همان خطای نگارشی را انجام دهید، این گذرواژه‌ی نادرست همانی\n"
-"می‌شود که باید بار اول از آن استفاده کنید.\n"
-"\n"
-"اگر می‌خواهید دستیابی به این رایانه از طریق یک کارگزار تأیید هویت کنترل شود،\n"
-"دکمه‌ی \"%s\" را کلیک کنید.\n"
-"\n"
-"اگر شبکه‌اتان نه از LDAP ،NIS، یا سرویس‌های تأیید هویت دامنه‌ی ویندوز PDC\n"
-"استفاده می‌کند، سرویس مناسبی را برای \"%s\" انتخاب کنید. اگر نمی‌دانید از\n"
-"کدام باید استفاده کنید، باید این را از مدیر سیستم شبکه‌اتان سؤال کنید.\n"
-"\n"
-"اگر شما در بخاطر سپردن گذرواژه مشکل دارید، اگر رایانه شما هرگز به اینترنت\n"
-"وصل نخواهد شد یا شما مطلقاً به همه‌ی کسانی که از رایانه‌تان استفاده\n"
-"می‌کنند اطمینان دارید، می‌توانید داشتن \"%s\" را انتخاب کنید."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "تأیید هویت"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1604,7 +1579,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1627,10 +1602,10 @@ msgstr ""
"استفاده کنید."
#: ../help.pm:745
-#, c-format
+#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1651,7 +1626,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"اکنون زمان آن رسیده است که سیستم چاپ را بر روی رایانه خود انتخاب کنید. "
@@ -1692,7 +1667,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "کارشناس"
@@ -1705,7 +1685,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1748,7 +1728,7 @@ msgstr ""
"میتوانید بر دکمه کلیک کرده و راه‌انداز دیگری را انتخاب کنید."
#: ../help.pm:794
-#, c-format
+#, fuzzy, c-format
msgid ""
"As a review, DrakX will present a summary of information it has gathered\n"
"about your system. Depending on the hardware installed on your machine, you\n"
@@ -1771,11 +1751,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1793,8 +1768,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1811,7 +1785,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1886,7 +1860,12 @@ msgstr ""
"خواهند شد را میزان کنید. اگر می‌خواهید از این ماشین مانند یک\n"
"کارگزار استفاده کنید فکر خوبی است که این برپاسازی را مرور کنید."
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "کارت ISDN"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "کارت ISDN"
@@ -1897,10 +1876,10 @@ msgid "Graphical Interface"
msgstr "واسط گرافیکی"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"دستگاه دیسکی را که می‌خواهید برای نصب قسمت‌بندی جدید لینوکس ماندریبا\n"
@@ -1911,12 +1890,14 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"اگر می‌خواهید تمام داده‌ها و قسمت‌بندی‌های موجود بر این دیسک را حذف کنید \n"
"بر \"%s\" کلیک نمایید. دقت کنید که بعد از کلیک بر \"%s\"، دیگر نمی‌توانید\n"
@@ -1936,3 +1917,112 @@ msgstr "بعدی ->"
msgid "<- Previous"
msgstr "<- پیشین"
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": با کلیک بر دکمه‌ی \"%s\" جادوگر پیکربندی چاپگر باز خواهد شد\n"
+#~ "به فصل مربوط در ``Starter Guide'' برای اطلاعات بیشتر برای نصب یک چاپگر\n"
+#~ "جدید مراجعه کنید. ظاهر عرضه شده در آنجا شبیه به آن است که در هنگام\n"
+#~ "نصب استفاده می‌گردد."
+
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "این مهمترین نقطه‌ی تصمیم گیری برای امنیت سیستم لینوکس/گنوی شما است.\n"
+#~ "شما باید گذرواژه‌ی \"root\" را وارد کنید. \"Root\" مدیر سیستم است و تنها\n"
+#~ "کاربری است که می‌تواند بروزسازی کرده، کاربران را اضافه کند، پیکربندی "
+#~ "همگانی\n"
+#~ "سیستم را تغییر دهد، و همچنین بقیه کارهای از این قبیل را. بطور خلاصه، "
+#~ "\"root\"\n"
+#~ "هر کاری را می‌تواند انجام دهد! برای همین شما باید گذرواژه‌ای را انتخاب کنید "
+#~ "که\n"
+#~ " حدس زدنش سخت باشد - DrakX اگر گذرواژه خیلی ساده باشد به شما تذکر داده\n"
+#~ "خواهد شد. همانطور که مشاهده می‌کنید، شما مجبور به وارد کردن یک گذرواژه "
+#~ "نیستید،\n"
+#~ "ولی ما بشدت برعکس این را به شما نصیحت می‌کنیم. لینوکس/گنو مانند هر سیستم\n"
+#~ "عامل دیگری برای خطاهای کارکنان مستعد است. چون \"root\" هیچ محدودیت "
+#~ "اجرایی\n"
+#~ "ندارد و بطور غیر عمدی تمام دادهها بر قسمت بندیها را بوسیله دستیابی بی "
+#~ "توجه به\n"
+#~ "قسمت بندیهای خود پاک کند، این امر مهمی است که بسختی بتوان \"root\" شد.\n"
+#~ "\n"
+#~ "گذرواژه بایستی ترکیبی از نویسه‌های الفبا و حداقل دارای ۸ نویسه باشد. هرگز\n"
+#~ "گذرواژه \"root\" یادداشت نشود-- آن به آسانی سیستم را تسلیم میکند.\n"
+#~ "\n"
+#~ "یک نصیحت -- گذرواژه را طولانی یا پیچیده نسازید برای اینکه باید بتوانید\n"
+#~ "آنرا بخاطر بسپارید!\n"
+#~ "\n"
+#~ "گذرواژه هنگام نگارش آن برصفحه نشان داده نخواهد شد. برای کم کردن احتمال\n"
+#~ "خطای نگارش کورکورانه لازم است که گذرواژه را دوبار وارد کنید. اگر اتفاقی\n"
+#~ "هر دوبار همان خطای نگارشی را انجام دهید، این گذرواژه‌ی نادرست همانی\n"
+#~ "می‌شود که باید بار اول از آن استفاده کنید.\n"
+#~ "\n"
+#~ "اگر می‌خواهید دستیابی به این رایانه از طریق یک کارگزار تأیید هویت کنترل "
+#~ "شود،\n"
+#~ "دکمه‌ی \"%s\" را کلیک کنید.\n"
+#~ "\n"
+#~ "اگر شبکه‌اتان نه از LDAP ،NIS، یا سرویس‌های تأیید هویت دامنه‌ی ویندوز PDC\n"
+#~ "استفاده می‌کند، سرویس مناسبی را برای \"%s\" انتخاب کنید. اگر نمی‌دانید از\n"
+#~ "کدام باید استفاده کنید، باید این را از مدیر سیستم شبکه‌اتان سؤال کنید.\n"
+#~ "\n"
+#~ "اگر شما در بخاطر سپردن گذرواژه مشکل دارید، اگر رایانه شما هرگز به "
+#~ "اینترنت\n"
+#~ "وصل نخواهد شد یا شما مطلقاً به همه‌ی کسانی که از رایانه‌تان استفاده\n"
+#~ "می‌کنند اطمینان دارید، می‌توانید داشتن \"%s\" را انتخاب کنید."
+
+#~ msgid "authentication"
+#~ msgstr "تأیید هویت"
diff --git a/perl-install/install/help/po/fi.po b/perl-install/install/help/po/fi.po
index 87e5f32eb..8f2f5d961 100644
--- a/perl-install/install/help/po/fi.po
+++ b/perl-install/install/help/po/fi.po
@@ -1,39 +1,35 @@
-# DrakX-fi - Finnish Translation
-#
-# Copyright (C) 2002,2003, 2004, 2005 Free Software Foundation, Inc.
-# Copyright (C) 2002 Mandriva
-# Matias Griese <mahagr@utu.fi>, 2001.
-# Taisto Kuikka <69319@batman.jypoly.fi>, 2003,2004.
-# Esa Linna <denzo@mbnet.fi>, 2004.
-# Thomas Backlund <tmb@mandrake.org>, 2002, 2003, 2004, 2005.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
+# Translators:
+# Yuri Chornoivan <yurchor@ukr.net>, 2024
#
+#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: DrakX-fi - LE2005 Release\n"
+"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
-"PO-Revision-Date: 2005-04-03 20:59+0300\n"
-"Last-Translator: Thomas Backlund <tmb@mandrake.org>\n"
-"Language-Team: Finnish <fi@li.org>\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
+"PO-Revision-Date: 2024-09-04 17:33+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>, 2024\n"
+"Language-Team: Finnish (https://app.transifex.com/MageiaLinux/teams/9361/"
+"fi/)\n"
+"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.9.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../help.pm:14
#, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
-"Ennen jatkamista sinun pitäisi lukea huolellisesti lisenssin ehdot.\n"
-"Lisenssi kattaa koko Mandriva Linux jakelun. Jos hyväksyt kaikki\n"
-"ehdot, valitse \"%s\" valinta. Jos et hyväksy ehtoja, painamalla \n"
-"\"%s\" painiketta tietokoneesi käynnistyy uudestaan."
#: ../help.pm:20
#, c-format
@@ -92,8 +88,8 @@ msgstr ""
"kirjoittaa mitä tahansa. DrakX kopioi ensimmäisen kirjoittamasi sanan\n"
"kenttään \"%s\". Tämä on se nimi jolla kyseinen käyttäjä kirjautuu\n"
"järjestelmään. Voit muuttaa sitä halutessasi. Sinun pitää myös syöttää\n"
-"salasana. Tavallisen käyttäjän salasana ei ole niin kriittinen kuin \"root"
-"\"\n"
+"salasana. Tavallisen käyttäjän salasana ei ole niin kriittinen kuin "
+"\"root\"\n"
"-käyttäjän turvallisuusnäkökulmasta, mutta tämä ei ole syy tietoturvan\n"
"laiminlyömiseen: Onhan kysymys tiedostojesi turvasta.\n"
"\n"
@@ -114,13 +110,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Haluatko käyttää tätä ominaisuutta?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -130,24 +137,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Tässä on listaus olemassa olevista tunnistetuista Linux-osioista\n"
@@ -185,28 +196,22 @@ msgstr ""
#: ../help.pm:88
#, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Mandriva Linuxin asennus koostuu useasta CD-ROM-levystä. DrakX tietää,\n"
-"onko valittu paketti toisella CD:llä ja osaa syöttää nykyisen levyn ulos\n"
-"ja pyytää sinua asettamaan oikean levyn tarvittaessa. Jos sinulla ei ole\n"
-"kyseistä CD-levyä käytettävissä, klikkaa vain \"%s\", ja kyseiset paketit\n"
-"ei asenneta."
#: ../help.pm:95
#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -219,8 +224,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -257,64 +261,6 @@ msgid ""
"command-line interface. The total size of this installation is about 65\n"
"megabytes."
msgstr ""
-"Nyt on aika valita mitä ohjelmia haluat asentaa järjestelmääsi. Tarjolla\n"
-"on tuhansia paketteja Mandriva Linux jakelussa, ja pakettien\n"
-"hallinnan helpottamiseksi ne on koottu samanlaisten ohjelmistojen\n"
-"ryhmiin.\n"
-"\n"
-"Paketit on ryhmitelty ryhmiin koneesi käyttötarkoituksen mukaisesti.\n"
-"Mandriva Linux sisältää neljä eri ennakkoon määriteltyä asennustapaa.\n"
-"Voit verrata asennustapoja pakettiryhmiin. Voit tietysti asentaa paketteja\n"
-"eri ryhmistä niin halutessasi, joten ``Työasema''-asennus voi sisältää\n"
-"ohjelmia esimerkiksi ``Kehitysympäristö''-ryhmästä.\n"
-"\n"
-" * \"%s\": Jos aiot käyttää konettasi työasemana, valitse yksi tai useampi\n"
-" ohjelma tästä ryhmästä.\n"
-"\n"
-" * \"%s\": Jos konettasi aiotaan käyttää ohjelmakehitykseen, valitse yksi "
-"tai\n"
-"useampi haluttu paketti tästä ryhmästä. Erillinen \"LSB\" ryhmä asettaa\n"
-"järjestelmäsi seuraamaan Linux Standard Base määritykset \n"
-"mahdollisimman tarkoin.\n"
-"\n"
-" Valitsemalla \"LSB\" ryhmää asentaa myös \"2.4\" sarjan ytimet, vakiona\n"
-"olevien \"2.6\" sarjan ytimien sijasta. Tämä jotta varmistetaan 100%% LSB-\n"
-"yhteensopivuutta järjestelmässä. Huomioi, vaikka jätät \"LSB\" ryhmää\n"
-"valitsematta, sinulla on kummiskin järjestelmä joka on melkein 100%%\n"
-"\"LSB\"-yhteensopiva.\n"
-"\n"
-" * \"%s\": Jos koneesi on tarkoitettu toimimaan palvelimena' valitse yksi "
-"tai\n"
-"useampi haluttu palvelu tai palvelinohjelma tästä ryhmästä.\n"
-"\n"
-" * \"%s\": täältä valitset haluamasi graafisen ympäristön. Ainakin yksi "
-"pitää\n"
-"olla valittu jos haluat graafisen työaseman!\n"
-"\n"
-"Jos siirrät hiiren kohdistinta ryhmänimen yläpuolella, lyhyt selostus "
-"ryhmän\n"
-"sisällöstä tulee näkyviin. Jos poistat kaikki ryhmävalinnat kun teet \n"
-"tavallisen asennuksen (päivityksen sijasta), esille tulee dialogi, joka \n"
-"ehdottaa kolmea eri optiota vähimmäisasennukseen:\n"
-"\n"
-" * \"%s\": asenna vain tarvittavat paketit, joilla saat toimivan graafisen\n"
-"työpöydän;\n"
-"\n"
-" * \"%s\": asentaa perusjärjestelmän ja perustyökalut sekä niiden\n"
-"dokumentaatiot. Tämä valinta sopii palvelinasennukseen;\n"
-"\n"
-" * \"%s\": asentaa ainoastaan tarvittavat osat saadaksesi toimivan\n"
-"komentorivipohjaisen Linux-järjestelmän. Tämä asennus vie vain noin \n"
-"65 Mt tilaa.\n"
-"\n"
-"Voit valita \"%s\" jos tarjolla olevat paketit ovat tuttuja sinulle tai jos "
-"haluat\n"
-"täydellisen hallinnan asennettaviin paketteihin.\n"
-"\n"
-"Jos aloitit asennuksen \"%s\"-tilassa, voit poistaa kaikkien ryhmien "
-"valinnat\n"
-"välttääksesi uusien pakettien asentamisen. Tämä on hyödyllistä jos haluat\n"
-"korjata tai päivittää olemassa olevaa järjestelmää."
#: ../help.pm:149 ../help.pm:591
#, c-format
@@ -326,7 +272,6 @@ msgstr "Päivitä"
msgid "With basic documentation"
msgstr "Perusdokumentaation kanssa"
-# Asennuksen sivuvalikko
#: ../help.pm:149
#, c-format
msgid "Truly minimal install"
@@ -346,10 +291,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -369,59 +314,13 @@ msgid ""
"another installation. See the second tip of the last step on how to create\n"
"such a floppy."
msgstr ""
-"Jos valitsit mahdollisuuden valita yksittäisiä paketteja, sinulle\n"
-"näytetään hakemistopuu, jossa kaikki paketit ovat luokiteltuina\n"
-"ryhmien ja alaryhmien mukaan. Kun selaat puuta, voit valita koko\n"
-"ryhmät, alaryhmät tai yksittäiset paketit.\n"
-"\n"
-"Kun valitset paketin hakemistopuussa, sen kuvaus näkyy oikean-\n"
-"puoleisessa ikkunassa, jotta tietäisit paketin tarkoituksen.\n"
-"\n"
-"!! Jos palvelinpaketti on valittu, joko tarkoituksella tai koska se kuului\n"
-"johonkin valitsemaasi ryhmään, sinulta pyydetään vahvistusta,\n"
-"haluatko varmasti asentaa palvelimen. Oletuksena Mandriva Linux\n"
-"käynnistää jokaisen asennetun palvelin koneen käynnistyksen\n"
-"yhteydessä. Vaikka ne ovat turvallisia eikä niillä ole tunnettuja\n"
-"ongelmia jakelun julkaisuajankohtana, niistä voi löytyä turvallisuus-\n"
-"reikiä jakelun valmistumisen jälkeen. Jos et tiedä mihin joku tietty\n"
-"palvelu on tarkoitettu, tai miksi sitä asennetaan, paina \"%s\". Jos\n"
-"painat \"%s\" listatut palvelut asennetaan sekä käynnistetään\n"
-"automaattisesti oletuksena koneen käynnistyksessä !!\n"
-"\n"
-"Optio \"%s\" estää virhedialogin\n"
-"joka ilmestyy joka kerta kun asennusohjelma automaattisesti\n"
-"valitsee paketin riippuvuuksien täyttämiseksi. Jotkut paketit sisältävät\n"
-"riippuvuuksia jotka vaativat että joku toinen paketti on jo asennettu\n"
-"ennen kuin se voidaan asentaa. Asennusohjelma osaa itse huolehtia\n"
-"siitä että nämä riippuvuudet on täytetty jotta asennus valmistuisi\n"
-"onnistuneesti.\n"
-"\n"
-"Listan alla olevalla levykkeen kuvakkeella voit hakea pakettilistan\n"
-"joka on luotu edellisessä asennuksessa. Tämä on hyödyllistä jos\n"
-"sinulla on monta konetta joihin haluat suorittaa samanlaisen asennuksen.\n"
-"Jos painat tätä kuvaketta, sinua pyydetään asettamaan levyke joka on\n"
-"luotu toisen asennuksen lopussa. Katso edellisen vaiheen toisesta\n"
-"vihjeestä, miten luot sellaisen levykkeen."
#: ../help.pm:183
#, c-format
msgid "Automatic dependencies"
msgstr "Automaattiset riippuvuudet"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": painamalla \"%s\" painiketta avautuu tulostimen\n"
-"asetusvelho. Katso tätä vastaava lukua ``Aloitusoppaasta'' saadaksesi\n"
-"lisätietoa miten asetat uuden tulostimen. Oppaassa näytetty\n"
-"käyttöliittymä on vastaava kuin asennuksen aikana käytetty."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -489,7 +388,12 @@ msgstr ""
"Tämä myös asentaa aikapalvelimen koneeseesi jota muut paikallisverkkosi\n"
"koneet voivat käyttää."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Automaattinen kellon synkronointi"
@@ -521,7 +425,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -575,57 +479,6 @@ msgid ""
"want to check \"%s\" if your machine is to act as a server, or if you were\n"
"not successful in getting the display configured."
msgstr ""
-"X (eli X Ikkunointijärjestelmä) on GNU/Linuxin graafisen käyttöliittymän\n"
-"sydän jota kaikki graafiset ympäristöt (KDE, Gnome, AfterStep,\n"
-"WindowMaker jne.), jotka seuraavat Mandriva Linuxin mukana,\n"
-"käyttävät alustanaan.\n"
-"\n"
-"Sinulle näytetään lista eri parametreista joita voit asettaa saadaksesi\n"
-"optimaalisen graafisen näytön:\n"
-"\n"
-"Näytönohjain\n"
-"\n"
-" Asennusohjelma yleensä tunnistaa ja asettaa koneeseesi asennetun\n"
-"näytönohjaimen. Mikäli tämä ei onnistunut, voit itse valita oikean mallin\n"
-"listasta omistamasi korttisi mukaisesti.\n"
-"\n"
-" Mikäli eri palvelimia on käytettävissä kortillesi, 3D tuella vai ilman,\n"
-"sinua pyydetään valitsemaan palvelin joka parhaiten vastaa tarpeitasi.\n"
-"\n"
-"\n"
-"\n"
-"Näyttö\n"
-"\n"
-" Asennusohjelma normaalisti tunnistaa ja asettaa koneeseesi liitetyn\n"
-"näytön automaattisesti. Jos tunnistus epäonnistuu voit valita oikean\n"
-"näytön listasta.\n"
-"\n"
-"\n"
-"\n"
-"Näyttötila\n"
-"\n"
-" Tässä voit valita näyttötilan ja värisyvyyden jota laitteistosi tukee.\n"
-"Valitse se joka parhaiten vastaa tarpeitasi (voit tietysti vaihtaa sitä\n"
-"asennuksen jälkeenkin). Malli valitusta asetuksesta näytetään näytössä.\n"
-"\n"
-"\n"
-"\n"
-"Testi\n"
-"\n"
-" Järjestelmä yrittää avata graafisen tilan halutussa näyttötilassa.\n"
-"Jos näet viestin testauksen aikana ja vastaat \"%s\", DrakX jatkaa\n"
-"seuraavaan vaiheeseen. Jos et näe viestiä, se tarkoittaa että jokin osa\n"
-"automaattisesti tunnistetusta asetuksesta oli virheellistä, ja testi\n"
-"loppuu automaattisesti 12 sekunnin jälkeen, jolloin pääset takaisin\n"
-"asetusvalikkoon. Muuta asetuksia kunnes saat oikean graafisen näytön.\n"
-"\n"
-"\n"
-"\n"
-"Optiot\n"
-"\n"
-" Täällä voit valita haluatko järjestelmän automaattisesti käynnistävän\n"
-"graafisen käyttöliittymän. Luonnollisesti valitset \"%s\" jos koneesi\n"
-"toimii palvelimena tai jos et pystynyt määrittämään toimivaa graafista tilaa."
#: ../help.pm:291
#, c-format
@@ -688,39 +541,43 @@ msgstr ""
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -729,15 +586,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -750,72 +607,18 @@ msgid ""
"experience. For more instructions on how to use the DiskDrake utility,\n"
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
-"Nyt sinun pitää valita miten haluat asentaa Mandriva Linux käyttö-\n"
-"järjestelmän kiintolevyllesi. Jos kiintolevysi on tyhjä, tai nykyinen\n"
-"käyttöjärjestelmäsi käyttää siltä kaiken vapaan tilan, sinun pitää osioida\n"
-"se. Käytännössä osiointi tarkoittaa kiintolevyn loogista jakamista\n"
-"osiin tehdäksesi tilaa Mandriva Linux-järjestelmän asennukselle.\n"
-"\n"
-"Koska osiointiprosessin muutoksia ei yleensä voi peruuttaa, ja se voi\n"
-"johtaa tietojen häviämiseen jos toinen käyttöjärjestelmä on jo asennettuna,\n"
-"osiointi voi olla pelottavaa ja stressaavaa jos olet kokematon käyttäjä.\n"
-"Onneksi DrakX sisältää velhon, joka yksinkertaistaa tämän prosessin.\n"
-"Ennen kuin aloitat, lue nämä ohjeet rauhassa.\n"
-"\n"
-"Riippuen kiintolevyasetuksistasi, tarjolla on useita eri vaihtoehtoja:\n"
-"\n"
-" * \"%s\": tämä vaihtoehto suorittaa vapaana olevan tilan\n"
-"automaattisen osioinnon. Sinulta ei kysytä mitään muuta.\n"
-"\n"
-" * \"%s\": velho on tunnistanut olemassa olevat\n"
-"Linux-osiot. Jos haluat käyttää niitä, valitse tämä vaihtoehto. Sinua\n"
-"pyydetään seuraavaksi valitsemaan osioiden liitospisteet. Ennestään\n"
-"käytettyjä liitoskohtia ehdotetaan oletuksena ja yleensä niitä ei kannata\n"
-"muuttaa.\n"
-"\n"
-" * \"%s\": jos Microsoft Windows on\n"
-"asennettu kiintolevyllesi ja se vie kaiken tilan, sinun pitää luoda vapaata\n"
-"tilaa Linuxille. Tehdäksesi tämän voit joko poistaa Windows-osion (katso\n"
-"``Tyhjennä koko levy''-vaihtoehto) tai muuttaa FAT-osion kokoa. Osion\n"
-"koon muuttaminen voidaan tehdä ilman tietojen hävittämistä, kunhan olet\n"
-"eheyttänyt sen ja se käyttää FAT-tiedostojärjestelmää. Tietojen varmistus\n"
-"on kuitenkin suotavaa. Tämä vaihtoehto on suositeltu jos haluat käyttää\n"
-"Mandriva Linuxia ja Microsoft Windowsia samassa koneessa.\n"
-"\n"
-" Ennen kuin valitset tämän vaihtoehdon, sinun pitää ymmärtää että tämän\n"
-"toimenpiteen jälkeen Windows-osiosi on pienempi kuin tällä hetkellä.\n"
-"Sinulla tulee olemaan vähemmän vapaata tilaa Windowsille, johon voit\n"
-"tallentaa tietojasi tai asentaa uusia ohjelmia.\n"
-"\n"
-" * \"%s\": valitse tämä jos haluat poistaa kaikki tiedot\n"
-"ja osiot ja asentaa Mandriva Linux -järjestelmäsi niiden tilalle. Ole\n"
-"varovainen tämän valinnan kanssa, koska et pysty peruuttamaan\n"
-"valintaasi kun olet hyväksynyt tämän toimenpiteen.\n"
-"\n"
-" !! Jos valitset tämän vaihtoehdon, kaikki tiedot kiintolevylläsi "
-"tuhoutuu !!\n"
-"\n"
-" * \"%s\": tämä vaihtoehto näkyy ainoastaan jos koko kovalevysi on\n"
-"Microsoft Windowsin käytössä. Tämä yksinkertaisesti poistaa kaikki\n"
-"tiedot kiintolevyltä ja aloittaa puhtaalta levyltä osioimalla kaikki alusta\n"
-"asti. Kaikki tiedot kiintolevylläsi tuhoutuu.\n"
-"\n"
-" !! Jos valitset tämän vaihtoehdon, kaikki tiedot kiintolevylläsi "
-"tuhoutuu !!\n"
-"\n"
-" * \"%s\": valitse tämä vaihtoehto, jos haluat itse\n"
-"määrittää kiintolevysi osioinnin. Ole varovainen - tämä on tehokas mutta\n"
-"vaarallinen vaihtoehto. Voit helposti menettää kaikki tietosi. Eli,\n"
-"älä käytä tätä vaihtoehtoa, jos et tiedä tarkalleen mitä teet. Jos haluat\n"
-"lisätietoja DiskDrake työkalun käytöstä, katso osaa ``Managing Your \n"
-"Partitions'' osiota ``Starter Guidessa''."
#: ../help.pm:377
#, c-format
msgid "Use existing partition"
msgstr "Käytä olemassa olevia osioita"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Tyhjennä koko levy"
@@ -895,7 +698,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Luo automaattinen asennuslevyke"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -915,38 +733,16 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
msgstr ""
-"Kaikki vasta määritellyt osiot täytyy alustaa käyttöä varten (alustaminen\n"
-"tarkoittaa tiedostojärjestelmän luomista).\n"
-"\n"
-"Samalla voit haluta alustaa uudelleen myös olemassaolevia osioita\n"
-"poistaaksesi kaiken niissä olevan tiedon. Jos haluat haluat tehdä niin,\n"
-"valitse myös ne osiot.\n"
-"\n"
-"Huomaa, että sinun ei ole pakko alustaa kaikkia jo olemassa olevia\n"
-"osioita. Sinun pitää alustaa ne osiot, joilla käyttöjärjestelmä\n"
-"sijaitsee (kuten \"/\", \"/usr\" ja \"/var\"), mutta voit säilyttää osiot,\n"
-"joilla henkilökohtaiset tiedostosi sijaitsevat (tavallisesti \"/home\").\n"
-"\n"
-"Ole huolellinen osioita valitessasi. Alustamisen jälkeen kaikki tieto\n"
-"valituilla osioilla on poissa eikä niiden palauttaminen enää onnistu.\n"
-"\n"
-"Valitse \"%s\" kun olet valmis alustamaan osiot.\n"
-"\n"
-"Valitse \"%s\", jos haluat valita toisen osion Mandriva Linuxin\n"
-"asentamiseen.\n"
-"\n"
-"Valitse \"%s\", jos haluat valita osiot, jotka tarkistetaan\n"
-"levyllä olevien viallisten lohkojen varalta."
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -958,18 +754,6 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Tässä vaiheessa, kun asennat Mandriva Linuxia, on todennäköistä että\n"
-"jotkut paketit on päivitetty alkujulkaisun jälkeen. Joitakin virheitä voi "
-"olla\n"
-"korjattu ja turvallisuusaukkoja paikattu. Hyödyntääksesi näitä päivityksiä,\n"
-"sinulla on nyt mahdollisuus hakea ne Internetistä. Valitse \"%s\" jos\n"
-"sinulla on toimiva Internet yhteys, tai \"%s\" jos haluat asentaa\n"
-"päivitykset myöhemmin.\n"
-"\n"
-"Valitsemalla \"%s\" sinulle näytetään lista päivityspalvelimista.\n"
-"Valitse lähin palvelin. Sen jälkeen sinulle näytetään lista päivityksistä:\n"
-"tarkista valinnat ja paina \"%s\" jolloin paketit haetaan ja\n"
-"asennetaan, tai \"%s\" poistuaksesi päivityksestä."
#: ../help.pm:450
#, c-format
@@ -981,25 +765,12 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
"security. Security messages will be sent to that address."
msgstr ""
-"Tässä vaiheessa DrakX antaa sinun valita tietokoneellesi sopivan\n"
-"turvatason. Yleisesti mitä enemmän tärkeää tietoa on tallennettu\n"
-"koneellesi, tai jos se on kytketty Internetiin, sitä korkeampi turvatason\n"
-"pitäisi olla. Huomaa kuitenkin, että korkeampi turvallisuustaso\n"
-"saavutetaan yleensä käytettävyyden kustannuksella.\n"
-"\n"
-"Jos et tiedä mitä valita, käytä oletuksena olevaa vaihtoehtoa. Voit\n"
-"myöhemmin vaihtaa turvatason Mandriva Ohjauskeskuksesta löytyvällä\n"
-"draksec-työkalulla.\n"
-"\n"
-"\"%s\" asetus kertoo järjestelmälle käyttäjän, joka vastaa turvasta.\n"
-"Turvaan liittyvät viestit lähetetään hänelle kyseiseen "
-"sähköpostiosoitteeseen."
#: ../help.pm:461
#, c-format
@@ -1010,21 +781,24 @@ msgstr "Tietoturvan ylläpitäjä:"
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1040,21 +814,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1071,93 +847,41 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-"Tässä vaiheessa sinun pitää määrittää mitkä osiot käytetään Mandriva Linux\n"
-"-järjestelmäsi asennuksessa. Jos osioita on jo määritelty, joko\n"
-"edellisestä GNU/Linux-asennuksesta tai jonkun toisen osiointityökalun\n"
-"tekeminä, niin voit käyttää olemassa olevia osioita. Muussa tapauksissa\n"
-"osiot pitää luoda.\n"
-"\n"
-"Luodaksesi osioita, sinun pitää ensin valita kiintolevy. Voit valita "
-"osioitavan\n"
-"levyn painamalla 'hda' ensimmäiselle IDE-levylle, 'hdb' toiselle, 'sda'\n"
-"ensimmäiselle SCSI-levylle ja niin edelleen.\n"
-"\n"
-"Osioidaksesi valitun levyn voit valita näistä vaihtoehdoista:\n"
-"\n"
-" * \"%s\": tämä toiminto poistaa kaikki osiot kiintolevyllä\n"
-"\n"
-" * \"%s\": tämä toiminto luo automaattisesti\n"
-"tarvittavat ext3-osiot ja sivutusosion levyn tyhjästä tilasta\n"
-"\n"
-"\"%s\": näyttää seuraavat lisätoiminnot:\n"
-"\n"
-" * \"%s\": tallentaa osiotaulun levykkeelle. Tämä on\n"
-"hyödyllinen levyke, jos pitää palauttaa osiotaulu. Suosittelemme\n"
-"tämän levykkeen tekoa\n"
-"\n"
-" * \"%s\": palauttaa aikaisemmin tallennetun osiotaulun\n"
-"levykkeeltä\n"
-"\n"
-" * \"%s\": jos osiotaulusi on viottunut, voit kokeilla sen\n"
-"korjaamista tällä toiminnolla. Ole varovainen, ja muista että tämä\n"
-"voi epäonnistua\n"
-"\n"
-" * \"%s\": hylkää kaikki tekemäsi muutokset ja\n"
-"palauta alkuperäinen osiotaulu\n"
-"\n"
-" * \"%s\": tämän valinnan\n"
-"poistaminen pakottaa käyttäjät itse liittämään ja irrottamaan\n"
-"vaihdettavat levyt, esim. levykkeet ja CD-levyt\n"
-"\n"
-" * \"%s\": valitse tämä vaihtoehto jos haluat velhon osioimaan\n"
-"kiintolevysi. Tämä on suositeltua sinulle jos osiointi ei ole tuttua\n"
-"\n"
-" * \"%s\": tämä vaihtoehto poistaa tekemäsi muutokset\n"
-"\n"
-" * \"%s\": sallii lisätoimintoja\n"
-"osioille (tyyppi, optiot, formaatti) ja näyttää lisätietoja\n"
-"\n"
-" * \"%s\": kun kiintolevyn osiointi on valmis, tämä toiminto\n"
-"tallentaa tekemäsi muutokset levylle ja jatkaa asennusta.\n"
-"\n"
-"Kun määrität osion kokoa, voit hienosäätää kokoa käyttämällä\n"
-"näppäimistön nuolinäppäimiä.\n"
-"\n"
-"Huom!: Voit myös käyttää kaikkia toimintoja näppäimistöllä. Siirry\n"
-"osioiden ja toimintojen välillä käyttämällä [Tab] ja [Ylös/Alas] näppäimiä.\n"
-"\n"
-"Kun osio tai tyhjä tila on valittu voit käyttää:\n"
-"\n"
-" * Ctrl-C luodaksesi uuden osion (kun tyhjä tila on valittu)\n"
-"\n"
-" * Ctrl-D poistaaksesi osion\n"
-"\n"
-" * Ctrl-M valitaksesi liitospisteen\n"
-"\n"
-"Saadaksesi lisätietoja käytettävissä olevista tiedostojärjestelmistä,\n"
-"lue lisää ``Reference Manual'':sta osasta ext2FS.\n"
-"\n"
-"Jos olet asentamassa PPC-koneelle, sinun pitää luoda pieni HFS\n"
-"``bootstrap''-osio kooltaan vähintään 1Mt, joka tulee Yaboot\n"
-"käynnistyslataajan käyttöön. Jos päätät tehdä osiosta vähän suuremman,\n"
-"esim. 50Mt, on hyvä ajatus asentaa ylimääräinen ydin ja ramdisk-kuva\n"
-"virhetilanteiden käynnistystarpeeseen."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Vaihdettavan median automaattinen liittäminen"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Vaihda vakio-/asiantuntijatilan välillä"
@@ -1165,67 +889,42 @@ msgstr "Vaihda vakio-/asiantuntijatilan välillä"
#: ../help.pm:536
#, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
-"Useampi kuin yksi Microsoft-osio on löydetty kiintolevyltäsi. Ole hyvä\n"
-"ja valitse osio jonka kokoa haluat muuttaa asentaaksesi uuden\n"
-"Mandriva Linux -käyttöjärjestelmäsi.\n"
-"\n"
-"Jokainen osio on lueteltu seuraavasti: \"Linux nimi\", Windows nimi\", \"Koko"
-"\".\n"
-"\n"
-"\"Linux nimi\" rakenne on seuraava: \"kiintolevytyyppi\". \"kiintolevynumero"
-"\", \n"
-"\"osionumero\" (esim. \"hda1\").\n"
-"\n"
-"\"kiintolevytyyppi\" on \"hd\" jos kiintolevysi on IDE-tyyppinen ja \"sd\" "
-"jos\n"
-"se on SCSI-tyyppinen.\n"
-"\n"
-"\"kiintolevynumero\" on aina kirjain \"hd\":n tai \"sd\":n perässä.\n"
-"IDE-kiintolevyille: \n"
-"\n"
-" * \"a\" tarkoittaa \"isäntälevy ensisijaisella IDE ohjaimella\";\n"
-"\n"
-" * \"b\" tarkoittaa \"orjalevy ensisijaisella IDE ohjaimella\";\n"
-"\n"
-" * \"c\" tarkoittaa \"isäntälevy toissijaisella IDE ohjaimella\";\n"
-"\n"
-" * \"d\" tarkoittaa \"orjalevy toissijaisella IDE ohjaimella\";\n"
-"\n"
-"SCSI kiintolevyillä \"a\" tarkoittaa \"pienin SCSI ID\", \"b\" tarkoittaa\n"
-"\"toiseksi pienin SCSI ID\", jne.\n"
-"\n"
-"\"Windows nimi\" on Windowsissa näkyvä osiota vastaava kirjain\n"
-"(ensimmäinen osio on \"C:\", seuraava \"D:\" jne.)."
#: ../help.pm:567
#, c-format
@@ -1246,44 +945,24 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
-"Tämä vaihe asennuksesta näytetään ainoastaan jos vanha GNU/Linux-\n"
-"osio on löydetty koneestasi.\n"
-"\n"
-"DrakX haluaa nyt tietää, haluatko suorittaa uuden asennuksen vai vanhan\n"
-"Mandriva Linux -järjestelmän päivityksen:\n"
-"\n"
-" * \"%s\": oletuksena tämä tapa poistaa vanhan asennuksen. Jos haluat\n"
-"muuttaa miten kiintolevysi on osioitu tai vaihtaa tiedostojärjestelmää, "
-"sinun\n"
-"kannattaa valita tämä vaihtoehto. Riippuen nykyisestä osioinnistasi, voit\n"
-"ehkä valita niin ettei kaikkia tietojasi hävitetä.\n"
-"\n"
-" * \"%s\": tämä vaihtoehto sallii sinun päivittää paketteja\n"
-"nykyisessä Mandriva Linux -järjestelmässäsi. Nykyistä osiointiasi\n"
-"eikä käyttäjien tietoja muuteta. Suurin osa muista asennuksen\n"
-"vaiheista on käytössäsi niin kuin ne ovat vakioasennuksessa.\n"
-"\n"
-"``Päivitä''-ominaisuuden pitäisi toimia Mandriva Linux\n"
-"-järjestelmän versiosta \"8.1\" eteenpäin. Vanhemman version\n"
-"kuin \"8.1\" päivittämistä ei suositella."
#: ../help.pm:594
#, c-format
@@ -1342,8 +1021,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1369,51 +1047,18 @@ msgid ""
"by the entire system. Running the command as a regular user will only\n"
"change the language settings for that particular user."
msgstr ""
-"Ensimmäinen askel on valita toivottu kieli.\n"
-"\n"
-"Valitsemasi oletuskieli päättää minkä kielinen dokumentaatio\n"
-"asennetaan, kuten myös asennusohjelman ja järjestelmän\n"
-"kielen. Valitse ensin missä asut ja sitten mitä kieltä käytät.\n"
-"\n"
-"Valitsemalla \"%s\" saat mahdollisuuden valita\n"
-"myös muita kieliä asennettavaksi työasemallesi. Muiden kielten\n"
-"valitseminen asentaa kielikohtaiset tiedostot järjestelmän\n"
-"dokumentoinnista ja ohjelmistoista. Esimerkiksi jos sinulla\n"
-"koneessasi espanjalaisia käyttäjiä, valitse suomi (tai englanti)\n"
-"pääkieleksi ja lisäasetusten puolelta \"%s\".\n"
-"\n"
-"Tietoja UTF-8 (unicode) tuesta: Unicode on uusi kirjasinten \n"
-"määrittelytapa joka on määrä kattaa kaikki olemassa olevat kielet.\n"
-"Huomaa etttä täysi tuki GNU/Linuxissa on viellä työn alla. Tästä syystä\n"
-"Mandriva Linuxin UTF-8 käyttö riippuu käyttäjän valinnasta:\n"
-"\n"
-" * Jos valitset kielen jossa on vahva \"vanhanaikainen\" kirjasinmäärittely\n"
-"(latin1 kielet, Venäjä, Japani, Kiina, Korea, Thai, Kreikka, Turkki, suurin "
-"osa\n"
-"iso-8859-2 kielet), \"vanhanaikainen koodaus käytettään oletuksena.\n"
-"\n"
-" * Muut kielet käyttävät unicode oletuksena.\n"
-"\n"
-" * Jos kaksi (tai enemmän) kieltä tarvitaan, ja ne eivät käytä samaa\n"
-"koodausta, käytetään unicode koko järjestelmälle.\n"
-"\n"
-" * Viimeisenä, voit myös pakottaa järjestelmän käyttämään Unicodea \n"
-"(UTF-8) valitsemalla \"%s\"\n"
-"\n"
-"Huomaa, että voit valita useita ylimääräisiä kieliä tai jopa kaikki\n"
-"valitsemalla \"%s\". Kielituen valinta tarkoittaa käännösten,\n"
-"kirjasinten, oikolukuohjelmien jne. asentamista kyseiselle kielelle.\n"
-"\n"
-"Vaihtaaksesi eri kielten välillä voit suorittaa \"/usr/bin/localedrake\"\n"
-"\"root\"-käyttäjänä, jolloin vaihdat koko järjestelmän kieltä, tai\n"
-"tavallisena käyttäjänä, jolloin vaihdat vain sen käyttäjän vakiokielen."
#: ../help.pm:650
#, c-format
msgid "Espanol"
msgstr "espanja"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1496,88 +1141,7 @@ msgstr ""
"Valitse oikea portti. Esimerkiksi \"COM1\" portti Windowsissa\n"
"on nimetty \"ttyS0\":ksi GNU/Linuxissa."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Tämä on tärkein päätös joka koskee GNU/Linux-järjestelmäsi turvallisuutta:\n"
-"sinun pitää syöttää \"root\" salasana. \"Root\" on järjestelmän ylläpitäjä\n"
-"ja ainoa, jolla on oikeudet päivittää järjestelmää, lisätä käyttäjiä, "
-"muuttaa\n"
-"järjestelmän asetuksia jne. Lyhyesti, \"root\" voi tehdä mitä vain! Tämän\n"
-"vuoksi sinun pitää valita salasana joka on vaikea arvata - DrakX kertoo\n"
-"sinulle jos salasana on liian helppo. Kuten huomaat, voit jättää salasanan\n"
-"syöttämättä, mutta suosittelemme ettet tee niin, ainakin yhdestä syystä:\n"
-"GNU/Linux on yhtä altis käyttäjän virheille kuin muutkin "
-"käyttöjärjestelmät.\n"
-"Koska \"root\" voi ohittaa kaikki rajoitukset ja vahingossa poistaa kaikki\n"
-"tiedot osioilta on tärkeää, että on vaikea päästä \"root\"-käyttäjäksi.\n"
-"\n"
-"Salasanan pitäisi koostua kirjaimista ja numeroista sekä olla vähintään\n"
-"8 merkkiä pitkä. Älä koskaan kirjoita \"root\" salasanaa paperille - se\n"
-"tekisi järjestelmään murtautumisesta liian helppoa.\n"
-"\n"
-"Älä myöskään valitse liian pitkää tai monimutkaista salasanaa koska sinun\n"
-"pitää itse muistaa se ongelmitta.\n"
-"\n"
-"Salasanaa ei näytetä kun syötät sitä ja tästä syystä sinun pitää syöttää\n"
-"se kahdesti, jolla pyritään ehkäisemään kirjoitusvirheitä. Jos sattumalta\n"
-"teet saman kirjoitusvirheen kahdesti, joudut käyttämään tätä ``väärää''\n"
-"salasanaa ensimmäisessä sisäänkirjautumisessa.\n"
-"\n"
-"Jos haluat että pääsyä tähän koneeseen hallitaan tunnistuspalvelimen\n"
-"kautta, paina \"%s\"-painiketta.\n"
-"\n"
-"Jos verkkosi käyttää LDAP, NIS tai PDC Windows verkkoalueen\n"
-"tunnistuspalvelua, valitse oikea \"%s\" vaihtoehto.\n"
-"Jos sinulla ei ole tietoa, kysy verkon ylläpitäjältä.\n"
-"\n"
-"Jos sinulla on ongelmia muistaa salasanoja, jos koneesi ei ole\n"
-"yhteydessä Internetiin tai jos uskot kaikkiin koneesi käyttäjiin,\n"
-"voit valita \"%s\"."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "tunnistustapa"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1591,7 +1155,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1617,7 +1181,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1638,44 +1202,21 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
-"Nyt on aika valita tulostusjärjestelmä tietokoneellesi. Muut "
-"käyttöjärjestelmät\n"
-"saattavat tarjota sinulle yhden järjestelmän, mutta Mandriva Linux tarjoaa\n"
-"kaksi. Kukin tulostusjärjestelmä sopii parhaiten tietyille asetuksille.\n"
-"\n"
-" * \"%s\" -- joka tarkoittaa ``tulosta, älä jonota'' (print, do not "
-"queue).\n"
-"Tämä on sopiva valinta jos sinulla on suora yhteys tulostimeesi ja haluat\n"
-"mahdollisuuden 'hätäkatkaisuun' jos tulostin menee tukkoon, eikä sinulla\n"
-"ole verkkoon liitettyjä tulostimia. (\"%s\" tukee ainoastaan "
-"yksinkertaisimpia\n"
-"verkkoasetelmia ja on hidas verkkokäyttöön.) Valitse \"pdq\" jos tämä on\n"
-"ensimmäinen GNU/Linux tuttavuutesi.\n"
-"\n"
-" * \"%s\" -- ``Common Unix Printing System'', eli Yleinen Unix Tulostus-\n"
-"järjestelmä, on mainio tulostettaessa paikalliseen tulostimeen tai\n"
-"vaikkapa maapallon toiselle puolelle. Se on yksinkertainen järjestelmä\n"
-"ja voi toimia tulostuspalvelimena tai asiakkaana vanhalle \"lpd\"-\n"
-"tulostusjärjestelmälle. Näin ollen, se on yhteensopiva vanhempien\n"
-"järjestelmien kanssa. Se on monitaitoinen, mutta perusasetuksen\n"
-"teko on melkein yhtä helppoa kuin \"pdq\". Jos tarvitset \"lpd\"-palvelimen\n"
-"emulointia, sinun pitää käynnistää \"cups-lpd\" -demoni. \"%s\"\n"
-"sisältää graafisen käyttöliittymän jota voidaan käyttää tulostamiseen\n"
-"tai asetuksien tekoon.\n"
-"\n"
-"Jos teet valinnan nyt, ja myöhemmin huomaat ettet pidä nykyisestä\n"
-"tulostusjärjestelmästä voit muuttaa valintaasi Mandrivan Ohjauskeskuksesta\n"
-"löytyvässä PrinterDrakessa valitsemalla \"%s\"-painikkeen."
#: ../help.pm:768
#, c-format
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Asiantuntija"
@@ -1688,7 +1229,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1753,11 +1294,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1775,8 +1311,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1793,75 +1328,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-"DrakX näyttää yhteenvedon laitteistoasi koskevista tiedoista\n"
-"jotka se on kerännyt. Asennetusta laitteistosta riippuen, näet joitakin\n"
-"tai kaikki seuraavista tietueista. Jokainen tietue koostuu asetettavasta\n"
-"laitteesta ja lyhyestä selostuksesta laitteen asetuksien nykytilasta.\n"
-"Paina tietuetta vastaavaa \"%s\" painiketta jos haluat muuttaa sitä.\n"
-"\n"
-" * \"%s\": tarkista näppäinasettelu ja vaihda sitä tarvittaessa.\n"
-"\n"
-" * \"%s\": tarkista maa-asetukset. Jos et ole maassa, joka on valittu,\n"
-"paina \"%s\"-painiketta ja valitse oikea. Jos maasi ei ole\n"
-"listassa paina \"%s\"-painiketta, jolloin näet listan kaikista maista.\n"
-"\n"
-" * \"%s\": DrakX oletuksena arvioi aikavyöhykkeesi riippuen\n"
-"siitä, minkä kielen olet valinnut. Jos tämä ei ole oikea, voit muuttaa sitä\n"
-"painamalla \"%s\".\n"
-"\n"
-" * \"%s\": tarkista nykyiset hiiriasetukset ja muuta niitä tarvittaessa.\n"
-"\n"
-" * \"%s\": painamalla \"%s\"-painiketta avaat tulostuksen\n"
-"asetusvelhon. Lue lisää asiaa koskevasta luvusta ``Aloitusoppaasta''\n"
-"saadaksesi lisätietoa miten asettaa uusi tulostin. Käyttöliittymä\n"
-"joka oppaassa esitetään on vastaava kuin se jota käytetään asennuksen\n"
-"aikana.\n"
-"\n"
-" * \"%s\": jos äänikortti on tunnistettu järjestelmässäsi, se\n"
-"näytetään täällä. Jos huomaat että näytetty äänikortti ei vastaa sitä\n"
-"joka on asennettu koneeseesi, voit nappia painamalla valita toisen\n"
-"ajurin.\n"
-"\n"
-" * \"%s\": jos TV-kortti on tunnistettu järjestelmässäsi, se\n"
-"näytetään täällä. Jos sinulla on TV-kortti eikä sitä ole tunnistettu,\n"
-"voit painaa \"%s\" ja yrittää asettaa sen itse.\n"
-"\n"
-" * \"%s\": paina \"%s\" jos haluat muuttaa parametreja joka\n"
-"koskee korttia jaka mielestäsi on väärin asetettu.\n"
-"\n"
-" * \"%s\": oletuksena DrakX asettaa graafisen\n"
-"käyttöliittymäsi käyttämään \"800x600\" tai \"1024x768\" näyttötilaa.\n"
-"Jos tämä ei sovi sinulle, paina \"%s\" muuttaaksesi asetuksia.\n"
-"\n"
-" * \"%s\": jos haluat asettaa Internet- tai paikallisverkkoasetuksesi,\n"
-"voit tehdä sen nyt. Katso ohjekirjasta, tai käytä Mandriva Linux\n"
-"Ohjauskeskus asennuksen jälkeen hyödyntääksesi sisäiset ohjeet.\n"
-"\n"
-" * \"%s\": sallii sinua asettamaan HTTP ja FTP välityspalvelimia jos\n"
-"asentamasi kone on välitysåpalvelimen takana.\n"
-"\n"
-" * \"%s\": tässä voit muuttaa asennuksen alussa asettamaasi\n"
-"turvatasoa jos haluat.\n"
-"\n"
-" * \"%s\": Jos aiot yhdistää koneesi Internetiin, kannattaa\n"
-"suojautua verkon vaaroilta asettamalla palomuuri. Katso\n"
-"``Aloitusoppaasta'' tätä aihetta vastaavaa lukua saadaksesi lisätietoa\n"
-"palomuurin asetuksista.\n"
-"\n"
-" * \"%s\": jos haluat muuttaa käynnistyslataajan asetuksia,\n"
-"paina vastaavaa nappia. Tätä ei kannata muuttaa jos et ole asiantuntija.\n"
-"\n"
-" * \"%s\": täällä voit määrittää mitä palveluja järjestelmässäsi\n"
-"toimii. Jos aiot käyttää tätä konetta palvelimena, kannattaa nämä\n"
-"asetukset tarkistaa."
-#: ../help.pm:858
+#: ../help.pm:809
+#, c-format
+msgid "TV card"
+msgstr ""
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN-kortti"
@@ -1874,24 +1353,23 @@ msgstr "Graafinen käyttöliittymä"
#: ../help.pm:861
#, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
-"Valitse kiintolevy, jonka haluat tyhjentää uudelle Mandriva Linux\n"
-"-asennusosiolle. Ole varovainen, koska kaikki asemalla oleva tieto\n"
-"tuhoutuu eikä ole enää palautettavissa!"
#: ../help.pm:866
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Valitse \"%s\" jos haluat tuhota kaiken tällä kiintolevyllä olevan\n"
"tiedon sekä osiot. Ole varovainen, sillä valittuasi \"%s\"\n"
@@ -1911,4 +1389,3 @@ msgstr "Seuraava ->"
#, c-format
msgid "<- Previous"
msgstr "<- Edellinen"
-
diff --git a/perl-install/install/help/po/fr.po b/perl-install/install/help/po/fr.po
index cacfe913c..b6db93b4a 100644
--- a/perl-install/install/help/po/fr.po
+++ b/perl-install/install/help/po/fr.po
@@ -1,5 +1,5 @@
# translation of DrakX-fr.po to Français
-# Translation file of Mandriva Linux graphic install
+# Translation file of Mageia graphic install
# Copyright (C) 1999,2000,2001,2002,2003,2004,2005,2006 Mandriva
#
# Veuillez ne pas mettre à jour ce fichier à moins d'être
@@ -61,27 +61,28 @@
# Pablo Saratxaga <pablo@mandriva.com>, 2001, 2005.
# KAtiOS <katios@nolabel.net>, 2001.
# Guillaume Cottenceau <gc@mandriva.com>, 2001-2002.
-# Thierry Vignaud <tvignaud@mandriva.com>, 2001-2004.
+# Thierry Vignaud <thierry.vignaud.com>, 2001-2004.
# Christophe Combelles <ccomb@free.fr>, 2002,2003.
# Adrien REZER <monsieurdidi@free.fr>, 2003.
# RICHARD Nicolas <richardnicolas22@yahoo.fr>, 2004.
# Lecureuil Nicolas <n1c0l4s.l3@wanadoo.fr>, 2004.
# Teletchéa <steletch@free.fr>, 2004, 2005.
-# Christophe Berthelé <cpjc@free.fr>, 2005, 2006.
+# Christophe Berthelé <cpjc@free.fr>, 2005, 2006, 2008.
# Didier Hérisson <didier.herisson@angstrom.uu.se>, 2005.
# Nicolas Lécureuil <neoclust@mandriva.org>, 2005.
msgid ""
msgstr ""
"Project-Id-Version: DrakX-fr\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
-"PO-Revision-Date: 2006-03-23 02:02+0100\n"
-"Last-Translator: Lécureuil Nicolas <neoclust@mandriva.org>\n"
-"Language-Team: Français <cooker-i18n@mandrivalinux.org>\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
+"PO-Revision-Date: 2013-04-25 17:02+0100\n"
+"Last-Translator: Yann Ciret <mageia@zamiz.net>\n"
+"Language-Team: French <i18n-fr@ml.mageia.org>\n"
+"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11\n"
+"X-Generator: Poedit 1.5.5\n"
"Plural-Forms: nplurals=2;plural=(n>1);\n"
# DO NOT BOTHER TO MODIFY HERE, SEE:
@@ -90,13 +91,13 @@ msgstr ""
#, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Avant d'aller plus loin, il est fortement recommandé de lire attentivement\n"
"les termes et conditions d'utilisation de la licence. Celle-ci régit\n"
-"l'ensemble de la distribution Mandriva Linux. Si vous en acceptez tous les\n"
+"l'ensemble de la distribution Mageia. Si vous en acceptez tous les\n"
"termes, cochez la case « %s », sinon, cliquez sur le bouton « %s » pour\n"
"redémarrer votre ordinateur."
@@ -177,6 +178,16 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr "Nom d'utilisateur"
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr "Accepter l'utilisateur"
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Voulez-vous utiliser cette fonctionnalité ?"
@@ -185,7 +196,8 @@ msgstr "Voulez-vous utiliser cette fonctionnalité ?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -195,24 +207,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"La liste présentée plus haut identifie les partitions GNU/Linux détectées\n"
@@ -257,14 +273,13 @@ msgstr ""
#: ../help.pm:88
#, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Les paquetages requis à l'installation de Mandriva Linux sont distribués "
-"sur\n"
+"Les paquetages requis à l'installation de Mageia sont distribués sur\n"
"plusieurs CD-ROM. Si un paquetage requis se trouve sur un autre CD-ROM,\n"
"DrakX éjectera celui présent dans le lecteur et vous demandera d'insérer le\n"
"CD-ROM approprié. Si vous ne possédez pas le CD demandé, cliquez tout\n"
@@ -277,12 +292,11 @@ msgstr ""
#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -295,8 +309,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -334,11 +347,11 @@ msgid ""
"megabytes."
msgstr ""
"C'est maintenant le moment de choisir les paquetages qui seront installés\n"
-"sur votre système. Sachez que Mandriva Linux contient plusieurs milliers de\n"
+"sur votre système. Sachez que Mageia contient plusieurs milliers de\n"
"paquetages à installer, et ces paquetages ont été rangés par groupes chacun\n"
"correspondant à un usage particulier de l'ordinateur.\n"
"\n"
-"Mandriva Linux range ces groupes en quatre catégories. Vous pouvez mélanger\n"
+"Mageia range ces groupes en quatre catégories. Vous pouvez mélanger\n"
"des groupes de plusieurs catégories de sorte qu'« une station de travail »\n"
"peut toujours proposer des applications pour la catégorie « Serveur ».\n"
"\n"
@@ -347,16 +360,14 @@ msgstr ""
"\n"
" * « %s » : si votre système doit être utilisé pour la programmation,\n"
"choisissez les groupes désirés. Le groupe spécial « LSB » configurera votre\n"
-"système de manière à ce qu'il corresponde le plus possible avec la Linux\n"
-"Standard Base.\n"
+"système de manière à ce qu'il corresponde le plus possible\n"
+"aux spécifications Linux Standard Base.\n"
"\n"
-" Si vous choisissez le groupe « LSB », cela installera aussi les séries\n"
-"de noyau « 2.4 » au lieu de celles par défaut « 2.6 ». Ceci afin d'assurer\n"
-"une compatibilité LSB maximale. Cependant, si vous ne sélectionnez pas ce\n"
-"groupe « LSB » vous aurez quand même un système presque entièrement\n"
-"compatible LSB.\n"
+" Si vous choisissez le groupe « LSB », cela assurera une compatibilité\n"
+"LSB maximale. Cependant, si vous ne sélectionnez pas ce groupe « LSB »\n"
+"vous aurez quand même un système presque entièrement compatible LSB.\n"
"\n"
-" * « %s » : enfin, si votre système doit fonctionner en tant que serveur,\n"
+" * « %s » : si votre système doit fonctionner en tant que serveur,\n"
"vous pourrez sélectionner les services que vous voulez installer.\n"
"\n"
" * « %s » : ce groupe vous permettra de déterminer quel environnement\n"
@@ -366,8 +377,8 @@ msgstr ""
"En plaçant votre souris au-dessus d'un nom de groupe, vous verrez\n"
"apparaître une courte description de ce groupe.\n"
"\n"
-"Vous pouvez enfin cocher l'option « %s ». Cette option est à utiliser si\n"
-"vous connaissez exactement le paquetage désiré ou si vous voulez avoir le\n"
+"Vous pouvez cocher l'option « %s ». Cette option est à utiliser si vous\n"
+"connaissez exactement le paquetage désiré ou si vous voulez avoir le\n"
"contrôle total de votre installation.\n"
"\n"
"Si vous avez démarré l'installation en mode « %s », vous pouvez\n"
@@ -419,10 +430,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -442,7 +453,7 @@ msgid ""
"another installation. See the second tip of the last step on how to create\n"
"such a floppy."
msgstr ""
-"Enfin, si vous avez choisi de sélectionner individuellement les paquetages\n"
+"Si vous avez choisi de sélectionner individuellement les paquetages\n"
"à installer, DrakX vous présentera un arbre contenant tous les paquetages,\n"
"classés par groupes et sous-groupes. En navigant à travers l'arbre, vous\n"
"pouvez sélectionner des groupes, des sous-groupes ou des paquetages\n"
@@ -452,14 +463,14 @@ msgstr ""
"apparaît à droite.\n"
"\n"
"!! Si un paquetage serveur a été sélectionné, vous devrez confirmer que\n"
-"vous voulez vraiment que celui-ci soit installé. Sous Mandriva Linux , par\n"
+"vous voulez vraiment que celui-ci soit installé. Sous Mageia , par\n"
"défaut, tous les services installés sont lancés au démarrage. Malgré tous\n"
"les efforts investis pour vous livrer une distribution Linux sécurisée, il\n"
"est possible que certaines failles de sécurité affectent les serveurs\n"
"installés au-delà de la date de publication. Si vous ne savez pas\n"
"précisément à quoi sert un service en particulier ou pourquoi il est\n"
-"installé, cliquez sur « %s ». En cliquant sur « %s », le serveur sera\n"
-"installé et le service rendu disponible au démarrage. !!\n"
+"installé, cliquez sur « %s ». En cliquant sur « %s », les services listés\n"
+"seront installés et rendus disponible au démarrage. !!\n"
"\n"
"L'option « %s » désactive les avertissements qui apparaissent à chaque fois\n"
"que l'installeur sélectionne un nouveau paquetage. Parfois, pour qu'un\n"
@@ -478,22 +489,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Dépendances automatiques"
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/fr/drakx-chapter.xml
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"« %s » : en cliquant sur « %s », l'outil de configuration d'impression sera\n"
-"démarré. Consultez le chapitre correspondant du « Guide de démarrage » pour\n"
-"plus de renseignements. L'interface qui y est documentée est similaire à\n"
-"celle rencontrée lors de l'installation."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -564,7 +560,12 @@ msgstr ""
"en option, être lui-même utilisé par d'autres machines de votre réseau\n"
"local."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr "Horloge matérielle réglée sur GMT"
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Synchronisation automatique de l'horloge"
@@ -601,7 +602,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -657,7 +658,7 @@ msgid ""
msgstr ""
"X (pour le système X Window) est le coeur de votre interface graphique sous\n"
"GNU/Linux. Tous les environnements graphiques (KDE, GNOME, WindowMaker\n"
-"etc.) présents sur Mandriva Linux dépendent de X.\n"
+"etc.) présents sur Mageia dépendent de X.\n"
"\n"
"Il vous sera présenté une liste de divers paramètres à changer pour obtenir\n"
"un affichage optimal :\n"
@@ -676,10 +677,10 @@ msgstr ""
"\n"
"Moniteur\n"
"\n"
-" Le programme d'installation détecte et configure automatiquement les\n"
-"moniteurs connectés à votre unité centrale. Si ce n'est pas le cas, vous\n"
-"pouvez choisir dans cette liste le moniteur que vous utilisez\n"
-"effectivement.\n"
+" Normalement le programme d'installation détecte et configure\n"
+"automatiquement les moniteurs connectés à votre machine. Si ce\n"
+"n'est pas le cas, vous pouvez choisir dans cette liste le moniteur que\n"
+"vous utilisez effectivement.\n"
"\n"
"\n"
"\n"
@@ -688,7 +689,7 @@ msgstr ""
" Vous pouvez choisir ici la résolution et nombre de couleurs parmi celles\n"
"disponibles pour votre matériel. Choisissez la configuration optimale pour\n"
"votre utilisation (vous pourrez néanmoins modifier cela après\n"
-"l'installation). Un échantillon de la configuration choisie apparaît dans\n"
+"l'installation). Un exemple de la configuration choisie apparaît dans\n"
"le dessin du moniteur.\n"
"\n"
"\n"
@@ -701,14 +702,15 @@ msgstr ""
"choisie. Si vous pouvez voir le message pendant le test, et répondez\n"
"« %s », alors DrakX passera à l'étape suivante. Si vous ne pouvez pas voir\n"
"de message, cela signifie que vos paramètres sont incompatibles, et le test\n"
-"se terminera automatiquement après 12 secondes. Changez la configuration\n"
-"jusqu'à obtenir un affichage correct lors du test.\n"
+"se terminera automatiquement après 12 secondes et vous ramènera au\n"
+"menu. Changez la configuration jusqu'à obtenir un affichage correct lors\n"
+"du test.\n"
"\n"
"\n"
"\n"
"Options\n"
"\n"
-" Vous pourrez également choisir ici de démarrer l'interface graphique au\n"
+" Vous pourrez choisir ici de démarrer l'interface graphique au\n"
"lancement de la machine. Il est préférable de choisir « %s » si vous êtes\n"
"en train d'installer un serveur, ou si vous n'avez pas réussi à configurer\n"
"l'écran correctement."
@@ -786,39 +788,43 @@ msgstr ""
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -827,15 +833,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -849,38 +855,38 @@ msgid ""
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
"Cette étape vous permet de déterminer précisément l'emplacement de votre\n"
-"installation de Mandriva Linux. Si votre disque est vide ou utilisé par un\n"
+"installation de Mageia. Si votre disque est vide ou utilisé par un\n"
"autre système d'exploitation, vous devrez repartitionner votre disque.\n"
"Partitionner un disque désigne l'opération consistant à le diviser\n"
-"précisément afin de créer un espace pour votre installation.\n"
+"logiquement afin de créer un espace pour votre installation.\n"
"\n"
-"Comme les effets du partitionnement sont irréversibles (l'ensemble du\n"
-"disque est effacé), le partitionnement est généralement intimidant et\n"
-"stressant pour un utilisateur inexpérimenté. Heureusement, un assistant a\n"
-"été prévu à cet effet. Avant de commencer, lisez le reste de ce document et\n"
-"surtout, prenez votre temps.\n"
+"Comme les effets du partitionnement sont généralement irréversibles, \n"
+"le partitionnement est généralement intimidant et stressant pour un\n"
+"utilisateur inexpérimenté. Heureusement, un assistant a été prévu à cet\n"
+"effet. Avant de commencer, lisez le reste de ce document et surtout, \n"
+"prenez votre temps.\n"
"\n"
"Selon la configuration de votre disque, plusieurs options sont "
"disponibles :\n"
"\n"
"\n"
-" * « %s » : cette option tentera simplement de partitionner automatiquement\n"
-"l'espace inutilisé sur votre disque. Il n'y aura pas d'autre question.\n"
+" * « %s » : cette option tentera de partitionner automatiquement l'espace\n"
+"inutilisé sur votre disque. Il n'y aura pas d'autre question.\n"
"\n"
" * « %s » : l'assistant a détecté une ou plusieurs partitions Linux\n"
-"existant sur votre disque. Si vous voulez les utiliser, choisissez cette\n"
+"existantes sur votre disque. Si vous voulez les utiliser, choisissez cette\n"
"option. Il vous sera alors demandé de choisir les points de montage\n"
"associés à chacune des partitions. Les anciens points de montage sont\n"
"sélectionnés par défaut, et vous devriez généralement les garder.\n"
"\n"
" * « %s » : si Microsoft Windows est installé sur votre disque et en prend\n"
-"toute la place vous devez faire de la place pour votre installation\n"
+"toute la place, vous devez faire de la place pour votre installation\n"
"GNU/Linux. Pour ce faire, vous pouvez tout effacer (voir « effacer tout le\n"
"disque ») ou vous pouvez redimensionner la partition Windows FAT ou NTFS.\n"
"Le redimensionnement peut être effectué sans pertes de données, à condition\n"
"que vous ayez préalablement défragmenté la partition Windows. Une\n"
"sauvegarde de vos données ne fera pas de mal non plus. Cette solution est\n"
-"recommandée pour faire cohabiter Mandriva Linux et Microsoft Windows sur le\n"
+"recommandée pour faire cohabiter Mageia et Microsoft Windows sur le\n"
"même ordinateur.\n"
"\n"
" Avant de choisir cette option, il faut comprendre qu'après cette\n"
@@ -890,9 +896,9 @@ msgstr ""
"\n"
" * « %s » : si vous voulez effacer toutes les données et les applications\n"
"installées sur votre système et les remplacer par votre nouveau système\n"
-"Mandriva Linux, choisissez cette option. Soyez prudent, car ce choix est\n"
-"irréversible et permanent. Il vous sera impossible de retrouver vos données\n"
-"effacées.\n"
+"Mageia, choisissez cette option. Soyez prudent, car ce choix est\n"
+"irréversible et permanent une fois confirmé. Il vous sera impossible de\n"
+"retrouver vos données effacées.\n"
"\n"
" !! En choisissant cette option, l'ensemble du contenu de votre disque\n"
"sera détruit. !!\n"
@@ -904,7 +910,7 @@ msgstr ""
"programmes présents sur le disque seront effacés.\n"
"\n"
" !! En choisissant cette option, l'ensemble de votre disque sera effacé\n"
-"!!\n"
+"et les données perdues. !!\n"
"\n"
" * « %s » : permet de partitionner manuellement votre disque. Soyez\n"
"prudent, car bien que plus puissante, cette option est dangereuse. Vous\n"
@@ -918,7 +924,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Utiliser une partition existante"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr "Utiliser l'espace libre de la partition Microsoft Windows®"
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Effacer tout le disque"
@@ -960,7 +971,7 @@ msgid ""
"\"mformat a:\", or \"fdformat /dev/fd0\" followed by \"mkfs.vfat\n"
"/dev/fd0\"."
msgstr ""
-"Votre installation de Mandriva Linux est maintenant terminée et votre\n"
+"Votre installation de Mageia est maintenant terminée et votre\n"
"système est prêt à être utilisé. Cliquez sur « %s » pour le redémarrer.\n"
"N'oubliez pas de retirer la source d'installation(CD-ROM ou disquette).\n"
"La première chose que vous verrez alors, après que l'ordinateur ait \n"
@@ -999,7 +1010,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Créer une disquette d'installation automatique"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr "Refaire"
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr "Automatisé"
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr "Sauvegarder la sélection des paquetages"
+
+#: ../help.pm:408
#, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -1019,7 +1045,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -1039,7 +1065,7 @@ msgstr ""
"Cliquez sur « %s » lorsque vous êtes prêt à formater les partitions.\n"
"\n"
"Cliquez sur « %s » pour choisir une autre partition où installer votre\n"
-"nouveau système d'exploitation Mandriva Linux.\n"
+"nouveau système d'exploitation Mageia.\n"
"\n"
"Cliquez sur « %s » si vous désirez sélectionner des partitions pour une\n"
"vérification des secteurs défectueux (« Bad Blocks »)."
@@ -1049,7 +1075,7 @@ msgstr ""
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -1061,7 +1087,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Au moment où vous installez Mandriva Linux, il est possible que certains\n"
+"Au moment où vous installez Mageia, il est possible que certains\n"
"paquetages aient été mis à jour depuis la sortie du produit. Des bogues ont\n"
"pu être corrigés, et des problèmes de sécurité résolus. Pour vous permettre\n"
"de bénéficier de ces mises à jour, il vous est maintenant proposé de les\n"
@@ -1084,7 +1110,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1099,7 +1125,7 @@ msgstr ""
"\n"
"Si vous ne savez pas quel niveau choisir, gardez la sélection par défaut.\n"
"Vous pourrez le modifier ultérieurement avec l'outil draksec, qui se trouve\n"
-"dans le Centre de Contrôle Mandriva Linux\n"
+"dans le Centre de Contrôle Mageia.\n"
"\n"
"Remplissez le champ « %s » avec l'adresse électronique de l'utilisateur qui\n"
"sera responsable de la sécurité. Les messages de sécurité lui seront\n"
@@ -1114,21 +1140,24 @@ msgstr "Administrateur sécurité"
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1144,21 +1173,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1175,20 +1206,14 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"À cette étape, vous devez sélectionner quelle partition sera utilisée pour\n"
-"votre système Mandriva Linux. Si votre disque est déjà partitionné, soit "
-"par\n"
+"votre système Mageia. Si votre disque est déjà partitionné, soit par\n"
"une autre installation GNU/Linux ou par un autre outil de partitionnement,\n"
-"vous pourrez les utiliser. Sinon, les partitions devront être créées.\n"
+"vous pourrez utiliser les partitions existantes. Sinon, elles devront être "
+"créées.\n"
"\n"
"Pour créer une partition, vous devez d'abord sélectionner le disque à\n"
"utiliser. Vous pouvez le sélectionner en cliquant sur « hda » pour le\n"
@@ -1199,16 +1224,16 @@ msgstr ""
"options suivantes :\n"
"\n"
" * « %s » : cette option effacera toutes les partitions sur le disque\n"
-"sélectionné;\n"
+"sélectionné ;\n"
"\n"
-" * « %s » : cette option permet de créer un système de ficher ext3 et\n"
-"« Swap » dans l'espace libre sur votre disque;\n"
+" * « %s » : cette option permet de créer des partitions ext4 et\n"
+"« swap » dans l'espace libre sur votre disque ;\n"
"\n"
"« %s » : permet d'accéder à des fonctionnalités supplémentaires :\n"
"\n"
" * « %s » : sauvegarde la table de partition sur un disque amovible. Cette\n"
"option s'avère particulièrement pratique pour réparer des partitions\n"
-"endommagées. Il est fortement recommandé de procéder ainsi;\n"
+"endommagées. Il est fortement recommandé de procéder ainsi ;\n"
"\n"
" * « %s » : permet de restaurer une table de partition sauvegardée au\n"
"préalable sur une disquette.\n"
@@ -1217,20 +1242,20 @@ msgstr ""
"de la récupérer avec ces options. Soyez prudent et sachez que cela ne\n"
"fonctionne pas à coup sûr.\n"
"\n"
-" * « %s » : écarte les changements et charge la table de partition "
-"initiale;\n"
+" * « %s » : annule les changements et charge la table de partition "
+"initiale ;\n"
"\n"
" * « %s » : en cochant cette case, les CD-ROM et disquettes (et autres\n"
-"supports) seront chargés automatiquement.\n"
+"supports amovibles) seront chargés automatiquement.\n"
"\n"
" * « %s » : utilisez cette option si vous souhaitez utiliser un assistant\n"
"pour partitionner votre disque. Cette option est particulièrement\n"
"recommandée si vous faites vos premiers pas avec les partitions.\n"
"\n"
-" * « %s » : utilisez cette option pour annuler vos changements;\n"
+" * « %s » : utilisez cette option pour annuler vos changements ;\n"
"\n"
" * « %s » : permet des actions supplémentaires sur les partitions (type,\n"
-"options, format) et donne plus d'informations;\n"
+"options, format) et donne plus d'informationssur le disque ;\n"
"\n"
" * « %s » : une fois le partitionnement terminé, ce bouton vous permettra "
"de\n"
@@ -1241,32 +1266,53 @@ msgstr ""
"clavier.\n"
"\n"
"Note : vous pouvez atteindre toutes les options en utilisant le clavier.\n"
-"Naviguer avec les flèches et [Tab].\n"
+"Naviguer avec les flèches [haut/bas] et [Tab].\n"
"\n"
"Une fois la partition sélectionnée, vous pouvez utiliser :\n"
"\n"
" * Ctrl-c pour créer un nouvelle partition (lorsqu'une partition vide est\n"
-"sélectionnée;\n"
-"\n"
-" * Ctrl-d pour effacer une partition;\n"
+"sélectionnée ;\n"
"\n"
-" * Ctrl-m pour définir le « mount point »\n"
+" * Ctrl-d pour effacer une partition ;\n"
"\n"
-"Pour obtenir plus d'information sur les systèmes de fichiers, veuillez lire\n"
-"sur le système de fichier ext2FS dans « Manuel de Référence ».\n"
+" * Ctrl-m pour définir le « point de montage »\n"
"\n"
-"Si vous installez sur un poste PPC, vous devrez créer une petite partition\n"
-"HFS « bootstrap » d'au moins 1 Mo qui sera utilisée par le chargeur de\n"
-"démarrage (« bootloader ») yaboot. Si vous optez pour une partition plus\n"
-"grande, disons 50Mo, vous trouverez utile d'y placer des noyaux et des\n"
-"images « ramdisk » accessibles en cas de problème."
+"Pour obtenir plus d'informations sur les systèmes de fichiers, veuillez "
+"lire\n"
+"le chapitre sur le système de fichier ext2FS dans le « Manuel de\n"
+"Référence ».\n"
+
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr "Sauvegarder la table des partitions"
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr "Restaurer la table des partitions"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr "Dépanner la table des partitions"
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Auto-montage des périphériques amovibles"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr "Assistant"
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr "Défaire"
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Basculer entre les modes expert et normal"
@@ -1276,68 +1322,75 @@ msgstr "Basculer entre les modes expert et normal"
#: ../help.pm:536
#, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Plus d'une partition Windows a été détectée sur votre disque dur. Veuillez\n"
-"choisir celle que vous choisissez pour votre nouvelle installation de\n"
-"Mandriva Linux.\n"
+"choisir celle que vous voulez redimensionner pour votre nouvelle "
+"installation\n"
+"de Mageia.\n"
"\n"
"Chaque partition est identifiée comme suit : « Nom Linux », « Nom "
"Windows »,\n"
"« Capacité ».\n"
"\n"
-"Le « Nom » est structuré ainsi : « type de disque dur », « numéro du disque\n"
-"dur », « numéro de partition ». Par exemple, « hda1 ».\n"
+"Le « Nom Linux » est structuré ainsi : « type de disque dur », « numéro du\n"
+"disque dur », « numéro de partition ». Par exemple, « hda1 ».\n"
"\n"
"Le « Type de disque dur » correspond à « hd » si votre disque est IDE. Pour "
"un\n"
-"disque SCSI, vous lirez « sd ».\n"
+"disque SCSI, vous aurez « sd ».\n"
"\n"
-"Le numéro du disque est toujours listé après le « hd » ou « fd ». Pour les\n"
+"Le numéro du disque est toujours listé après le « hd » ou « sd ». Pour les\n"
"disques IDE :\n"
"\n"
-" * « a » signifie « disque primaire maître sur le premier contrôleur IDE »;\n"
+" * « a » signifie « disque maître sur le premier contrôleur IDE »;\n"
"\n"
-" * « b » signifie « disque primaire esclave sur le premier contrôleur\n"
+" * « b » signifie « disque esclave sur le premier contrôleur\n"
"IDE »;\n"
"\n"
-" * « c » indique « disque primaire maître sur le second contrôleur IDE »;\n"
+" * « c » indique « disque maître sur le second contrôleur IDE »;\n"
"\n"
-" * « d » signifie « disque primaire esclave sur le second contrôleur IDE »;\n"
+" * « d » signifie « disque esclave sur le second contrôleur IDE »;\n"
"\n"
-"Avec les disques SCSI, le « a » indique le plus petit SCSI ID, et ainsi de\n"
+"Avec les disques SCSI, le « a » indique le plus petit ID SCSI, et ainsi de\n"
"suite.\n"
"\n"
-"« Nom Windows » c'est la lettre assignée à votre disque, (le premier\n"
-"disque ou partition « C: »)"
+"Le « Nom Windows » est la lettre assignée à votre disque sous\n"
+"Windows (le premier disque ou partition est appelé « C: »)."
#: ../help.pm:567
#, c-format
@@ -1361,30 +1414,30 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Cette étape ne s'affichera que si une partition GNU/Linux a été détectée\n"
"sur votre disque dur.\n"
"\n"
"DrakX doit maintenant savoir si vous désirez lancer une « Installation » ou "
"une\n"
-"« Mise à jour » d'un système Mandriva Linux déjà installé :\n"
+"« Mise à jour » d'un système Mageia déjà installé :\n"
"\n"
" * « %s » : remplace l'ancien système. Cependant, selon votre table de\n"
"partition, vous pourrez éviter l'effacement de vos données existantes\n"
@@ -1393,14 +1446,13 @@ msgstr ""
"vous devriez utiliser cette option.\n"
"\n"
" * « %s » : cette classe d'installation vous permet de mettre à jour\n"
-"seulement les paquetages qui composent votre système Mandriva Linux. Elle\n"
+"seulement les paquetages qui composent votre système Mageia. Elle\n"
"conserve les partitions existantes, ainsi que la configuration des\n"
"utilisateurs. La plupart des autres étapes d'une installation classique\n"
"sont accessibles.\n"
"\n"
"La mise à jour devrait fonctionner correctement pour les systèmes\n"
-"Mandriva Linux à partir de la version « 8.1 ». Essayer de lancer une mise à\n"
-"jour sur les versions antérieures à « 8.1 » n'est pas recommandé."
+"Mageia à partir de la version « 2 »."
#: ../help.pm:594
#, c-format
@@ -1459,8 +1511,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1497,24 +1548,24 @@ msgstr ""
"choisissant des langues supplémentaires, le programme vous installera toute\n"
"la documentation et les applications nécessaires à l'utilisation de ces\n"
"langues. Par exemple, si vous prévoyez d'accueillir des utilisateurs\n"
-"d'Espagne sur votre machine, choisissez le français comme langue principale\n"
+"espagnols sur votre machine, choisissez le français comme langue principale\n"
"dans l'arborescence, et « %s », dans la section avancée.\n"
"\n"
"À propos de l'encodage UTF-8 (unicode) : Unicode est un nouveau système\n"
-"d'encodage des caractères censé couvrir tous les langues existantes.\n"
+"d'encodage des caractères censé couvrir toutes les langues existantes.\n"
"Cependant son intégration dans GNU/Linux est encore imparfaite. Pour cette\n"
-"raison, Mandriva Linux l'utilisera ou non selon les critères suivants :\n"
+"raison, Mageia l'utilisera ou non selon les critères suivants :\n"
"\n"
" * Si vous choisissez une langue avec un encodage ayant une longue histoire\n"
"(langues associées à « latin1 », Russe, Japonais, Chinois, Coréen, Thaï,\n"
"Grec, Turc, et la plupart des langues « iso-8859-2 »), l'encodage\n"
-"historique sera utilisé;\n"
+"historique sera utilisé ;\n"
"\n"
-" * Les autres langues entraîneront l'utilisation d'unicode par défaut;\n"
+" * Les autres langues entraîneront l'utilisation d'unicode par défaut ;\n"
"\n"
" * Si vous demandez l'installation de plus d'une langue, et que ces langues\n"
"n'utilisent pas le même encodage, alors unicode sera utilisé pour tout le\n"
-"système;\n"
+"système ;\n"
"\n"
" * Enfin, unicode peut aussi être utilisé quelque soit votre configuration\n"
"des langues à utiliser, en sélectionnant l'option « %s ».\n"
@@ -1527,16 +1578,21 @@ msgstr ""
"Pour passer d'une langue à l'autre, vous pouvez lancer l'utilitaire\n"
"« /usr/sbin/localedrake » en tant que « root » pour changer la langue\n"
"utilisée dans tout le système ; connectez-vous en simple utilisateur pour\n"
-"ne changer que la langue de cet utilisateur."
+"changer la langue uniquement pour cet utilisateur."
#: ../help.pm:650
#, c-format
msgid "Espanol"
msgstr "Espagnol"
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr "Utiliser Unicode par défaut"
+
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/fr/drakx-chapter.xml
-#: ../help.pm:653
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1625,92 +1681,7 @@ msgstr ""
"Sélectionnez le bon port. Par exemple : l'équivalent du port « COM1 » sur\n"
"Windows, se nomme « ttyS0 » sous GNU/Linux."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/fr/drakx-chapter.xml
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Vous devez prendre ici une décision cruciale pour la sécurité de votre\n"
-"système GNU/Linux : vous devez entrer un mot de passe « root ».\n"
-"L'utilisateur « root » est l'administrateur du système qui a tous les\n"
-"droits d'accès aux fichiers de configuration, etc. Il est donc impératif de\n"
-"choisir un mot de passe difficile à deviner (pensez aux systèmes prévus à\n"
-"cet effet qui anticipent les combinaisons communes des utilisateurs). DrakX\n"
-"vous avertira si le mot de passe entré est trop facile à deviner. Comme\n"
-"vous pouvez le voir, il est également possible de ne pas entrer de mot de\n"
-"passe. Nous déconseillons fortement cette pratique. Comme l'erreur est\n"
-"humaine, un utilisateur avec tous les droits peut tout détruire sur votre\n"
-"système, c'est pourquoi le mot de passe doit agir comme barrière à\n"
-"l'entrée.\n"
-"\n"
-"Le mot de passe choisi devrait contenir au moins 8 caractères\n"
-"alphanumériques. Ne jamais écrire le mot de passe « root », forcez-vous à\n"
-"vous en souvenir par coeur.\n"
-"\n"
-"Ne choisissez pas de mot de passe trop long ou trop compliqué, ménagez\n"
-"accessibilité et mémoire : un mot de passe de 30 caractères est presque\n"
-"impossible à mémoriser.\n"
-"\n"
-"Afin d'éviter les regards indiscrets, le mot de passe n'apparaîtra pas à\n"
-"l'écran. Il vous faudra donc l'inscrire deux fois afin d'éviter les erreurs\n"
-"de frappe. Évidemment, si vous faites deux fois la même erreur, celle-ci\n"
-"sera sauvegardée et vous devrez la reproduire afin d'accéder à votre\n"
-"système pour la première fois en tant qu'administrateur.\n"
-"\n"
-"Si vous souhaitez que l'accès à cette machine soit contrôlé par un serveur\n"
-"d'authentification, cliquez sur le bouton « %s ».\n"
-"\n"
-"Si votre réseau utilise soit LDAP, NIS, ou un PDC Windows, choisissez-le\n"
-"comme protocole d'%s. En cas de doute, demandez à votre\n"
-"administrateur réseau.\n"
-"\n"
-"Si vous avez des problèmes à vous souvenir de vos mots de passe, vous\n"
-"pouvez choisir « %s », si votre ordinateur ne sera pas connecté à Internet,\n"
-"et si vous avez confiance en tous ceux qui auront accès à cette machine."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "authentification"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1724,7 +1695,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1752,7 +1723,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1773,47 +1744,51 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
-"Maintenant, il faut choisir un système d'impression pour votre ordinateur. "
-"D'autres\n"
-"systèmes d'exploitation en offrent un, mais Mandriva Linux en propose deux. "
-"Chaque système\n"
-"d'impression convient le mieux à un type différent de configuration.\n"
+"Maintenant, il faut choisir un système d'impression pour votre ordinateur.\n"
+"D'autres systèmes d'exploitation en offrent un, mais Mageia en propose\n"
+"deux. Chaque système d'impression convient mieux à un type différent\n"
+"de configuration.\n"
"\n"
" * « %s » - qui veut dire « print, do not queue », (ou, impression sans\n"
"passer par la file d'attente) est un bon choix si votre imprimante est\n"
"branchée directement sur votre poste, que vous voulez pouvoir arrêter\n"
"l'impression directement en cas de problème et que vous n'avez pas\n"
-"d'imprimante réseau. « %s » prendra en charge des configurations simples en "
-"réseau, mais\n"
-"les performances sont plutôt mauvaises dans ces cas. Choisissez «pdq» si "
-"vous\n"
-"débutez sous GNU/Linux.\n"
+"d'imprimante réseau. « %s » prendra en charge des configurations simples\n"
+"en réseau, mais les performances sont plutôt mauvaises dans ces cas.\n"
+"Choisissez « pdq » si vous débutez sous GNU/Linux.\n"
"\n"
" * « %s » - « Common Unix Printing System », est fabuleux autant pour une\n"
"imprimante locale que pour imprimer à l'autre bout du monde. C'est simple\n"
-"et il peut agir comme un serveur ou un client avec l'ancien système "
-"d'impression « lpd », de ce fait il est compatible avec les anciens\n"
-" systèmes d'exploitations qui nécessitent encore un service d'impression. Il "
-"s'agit d'un outil très puissant et les\n"
-"configurations de base sont aussi simples que « pdq ». Pour émuler un "
-"serveur « lpd », lancez le démon (« daemon ») « cups-lpq ». « %s » qui offre "
-"une interface graphique simple pour imprimer sur et administrer les "
-"imprimantes.\n"
-"\n"
-"Si vous choisissez votre système d'impression maintenant et que par la suite "
-"vous n'en êtes pas content, vous pourrez le changer\n"
-"ultérieurement en lançant PrinterDrake depuis le Centre de contrôle\n"
-"Mandriva Linux en cliquant sur le bouton « %s »."
+"à configurer et il peut agir comme un serveur ou un client avec l'ancien\n"
+"système d'impression « lpd ». De ce fait il est compatible avec les anciens\n"
+" systèmes d'exploitations qui nécessitent encore un service d'impression. "
+"Il\n"
+"s'agit d'un outil très puissant et les configurations de base sont aussi "
+"simples\n"
+"que « pdq ». Pour émuler un serveur « lpd », lancez le démon (« daemon »)\n"
+"« cups-lpq ». « %s » offre une interface graphique simple pour imprimer,\n"
+"choisir les options d'impression et administrer les imprimantes.\n"
+"\n"
+"Si vous choisissez votre système d'impression maintenant et que par la "
+"suite\n"
+"vous n'en êtes pas content, vous pourrez le changer ultérieurement en\n"
+"lançant PrinterDrake depuis le Centre de contrôle Mageia en cliquant sur le\n"
+"bouton « %s »."
#: ../help.pm:768
#, c-format
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr "CUPS"
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Expert"
@@ -1828,7 +1803,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1896,11 +1871,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1918,8 +1888,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1936,7 +1905,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1955,18 +1924,13 @@ msgstr ""
"ne se trouve pas dans la première liste, cliquez sur « %s » pour avoir la\n"
"liste complète.\n"
"\n"
-" * « %s » : DrakX, par défaut, configure le fuseau horaire selon le pays\n"
+" * « %s » : par défaut, DrakX configure le fuseau horaire selon le pays\n"
"dans lequel vous vous trouvez. Cliquez sur le bouton « %s » si ce n'est pas\n"
"le bon.\n"
"\n"
" * « %s » : pour vérifier la configuration actuelle de la souris. Cliquez\n"
"sur le bouton pour modifier les options.\n"
"\n"
-" * « %s » : en cliquant sur « %s », l'outil de configuration d'impression\n"
-"sera démarré. Consultez le chapitre correspondant du « Guide de démarrage »\n"
-"pour plus de renseignements. L'interface qui y est documentée est similaire\n"
-"à celle rencontrée lors de l'installation.\n"
-"\n"
" * « %s » : si une carte son a été détectée, elle apparaîtra ici. Si vous\n"
"remarquez que la carte configurée n'est pas celle qui se trouve\n"
"effectivement sur votre système, vous pouvez cliquer sur le bouton pour\n"
@@ -1977,8 +1941,8 @@ msgstr ""
"détectée, cliquez sur « %s » pour la configurer à la main.\n"
"\n"
" * « %s » : si une carte RNIS (ISDN) est détectée, elle apparaîtra ici.\n"
-"Vous pouvez cliquer sur le bouton « %s » pour en modifier les paramètres si\n"
-"vous estimez que la configuration actuelle est inexacte.\n"
+"Vous pouvez cliquer sur le bouton « %s » pour en modifier les paramètres\n"
+"si vous estimez que la configuration actuelle est inexacte.\n"
"\n"
" * « %s » : par défaut, DrakX configure votre interface graphique avec une\n"
"résolution de « 800x600 » ou « 1024x768 ». Si cela ne vous convient pas,\n"
@@ -1987,12 +1951,11 @@ msgstr ""
"\n"
" * « %s » : si vous souhaitez configurer votre accès Internet ou réseau\n"
"local dès maintenant. Lisez la documentation fournie ou exécutez\n"
-"le Centre de Contrôle Mandriva Linux après l'installation pour avoir droit à "
-"une\n"
+"le Centre de Contrôle Mageia après l'installation pour avoir droit à une\n"
"aide complète en ligne.\n"
"\n"
" * « %s » : permet de configurer les adresses proxy HTTP et FTP si la\n"
-"machine que vous installez se trouve derrière un serveur proxy.\n"
+"machine que vous installez se trouve derrière un serveur mandataire.\n"
"\n"
" * « %s » : il vous est ici proposé de redéfinir votre niveau de sécurité\n"
"tel que défini dans une étape précédente ().\n"
@@ -2005,13 +1968,18 @@ msgstr ""
" * « %s » : si vous souhaitez changer la configuration par défaut de votre\n"
"chargeur de démarrage. À réserver aux utilisateurs expérimentés. Lisez la\n"
"documentation fournie ou l'aide en ligne sur la configuration de chargeur\n"
-"de démarrage présente dans le Centre de Contrôle Mandriva Linux.\n"
+"de démarrage présente dans le Centre de Contrôle Mageia.\n"
"\n"
" * « %s » : vous pourrez ici contrôler finement les services disponibles\n"
"sur votre machine. Si vous envisagez de monter un serveur, c'est une bonne\n"
"idée de vérifier cette configuration."
-#: ../help.pm:858
+#: ../help.pm:809
+#, c-format
+msgid "TV card"
+msgstr "Carte TV"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "Carte RNIS"
@@ -2026,13 +1994,13 @@ msgstr "Interface graphique"
#: ../help.pm:861
#, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
-"Choisissez le disque dur à effacer pour installer votre partition\n"
-"GNU/Linux. Soyez prudent, toute l'information stockée sur le disque sera\n"
-"détruite."
+"Choisissez le disque dur à effacer pour installer votre nouvelle partition\n"
+"Mageia. Soyez prudent, toute les informations stockées sur le disque\n"
+"seront détruites."
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/fr/drakx-chapter.xml
@@ -2040,12 +2008,14 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Cliquez sur « %s » si vous voulez vraiment effacer toute l'information et\n"
"les partitions. Soyez prudent, après avoir cliqué sur « %s », vous ne\n"
@@ -2063,4 +2033,3 @@ msgstr "Suivant ->"
#, c-format
msgid "<- Previous"
msgstr "<- Précédent"
-
diff --git a/perl-install/install/help/po/fur.po b/perl-install/install/help/po/fur.po
index 572ae8234..86dfc776d 100644
--- a/perl-install/install/help/po/fur.po
+++ b/perl-install/install/help/po/fur.po
@@ -6,10 +6,11 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2004-06-28 17:41+0200\n"
"Last-Translator: Andrea Gracco <graccoandrea@tin.it>\n"
"Language-Team: furlan <gft@freelists.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -20,7 +21,7 @@ msgstr ""
#, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
@@ -68,13 +69,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Vuelistu doprâ cheste fature?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -84,31 +96,35 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
#: ../help.pm:88
#, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
@@ -119,12 +135,11 @@ msgstr ""
#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -137,8 +152,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -205,10 +219,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -234,16 +248,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr ""
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -281,7 +286,12 @@ msgid ""
"server which can be used by other machines on your local network as well."
msgstr ""
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr ""
@@ -305,7 +315,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -403,39 +413,43 @@ msgstr ""
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -444,15 +458,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -471,7 +485,12 @@ msgstr ""
msgid "Use existing partition"
msgstr ""
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr ""
@@ -519,7 +538,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr ""
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -539,7 +573,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -548,7 +582,7 @@ msgstr ""
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -571,7 +605,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -587,21 +621,24 @@ msgstr ""
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -617,21 +654,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -648,22 +687,41 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr ""
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr ""
@@ -671,34 +729,40 @@ msgstr ""
#: ../help.pm:536
#, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
@@ -718,23 +782,23 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
#: ../help.pm:594
@@ -775,8 +839,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -808,7 +871,12 @@ msgstr ""
msgid "Espanol"
msgstr ""
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -862,53 +930,7 @@ msgid ""
"Windows is named \"ttyS0\" under GNU/Linux."
msgstr ""
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr ""
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -922,7 +944,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -933,7 +955,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -954,7 +976,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
@@ -963,7 +985,12 @@ msgstr ""
msgid "pdq"
msgstr ""
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, fuzzy, c-format
msgid "Expert"
msgstr "Eseguìs"
@@ -976,7 +1003,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1021,11 +1048,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1043,8 +1065,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1061,14 +1082,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-#: ../help.pm:858
+#: ../help.pm:809
+#, c-format
+msgid "TV card"
+msgstr ""
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr ""
@@ -1081,8 +1107,8 @@ msgstr ""
#: ../help.pm:861
#, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
@@ -1090,12 +1116,14 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
#: ../help.pm:872
@@ -1107,4 +1135,3 @@ msgstr "Prossim ->"
#, c-format
msgid "<- Previous"
msgstr "<- Precedent"
-
diff --git a/perl-install/install/help/po/ga.po b/perl-install/install/help/po/ga.po
index 174f4e59e..d2e402780 100644
--- a/perl-install/install/help/po/ga.po
+++ b/perl-install/install/help/po/ga.po
@@ -5,10 +5,11 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2005-09-12 18:04+0200\n"
"Last-Translator: Alastair McKinstry <mckinstry@computer.org>\n"
"Language-Team: Irish <ga@li.org>\n"
+"Language: ga\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -17,7 +18,7 @@ msgstr ""
#, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
@@ -65,13 +66,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "An mian leat an gné seo a úsáid?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -81,31 +93,35 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
#: ../help.pm:88
#, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
@@ -116,12 +132,11 @@ msgstr ""
#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -134,8 +149,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -202,10 +216,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -231,16 +245,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr ""
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -278,7 +283,12 @@ msgid ""
"server which can be used by other machines on your local network as well."
msgstr ""
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, fuzzy, c-format
msgid "Automatic time synchronization"
msgstr "Cumraigh ADSL"
@@ -302,7 +312,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -400,39 +410,43 @@ msgstr ""
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -441,15 +455,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -468,7 +482,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Ag iarraidh an clár-ranna a tarrtháil"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Glan diosca ina iomlán"
@@ -516,7 +535,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Cruthaigh flapach bootáil"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -536,7 +570,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -545,7 +579,7 @@ msgstr ""
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -568,7 +602,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -584,21 +618,24 @@ msgstr "Riarthóir Slándála"
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -614,21 +651,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -645,22 +684,41 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr ""
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr ""
@@ -668,34 +726,40 @@ msgstr ""
#: ../help.pm:536
#, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
@@ -715,23 +779,23 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
#: ../help.pm:594
@@ -772,8 +836,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -805,7 +868,12 @@ msgstr ""
msgid "Espanol"
msgstr "Spáinnis"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -859,53 +927,7 @@ msgid ""
"Windows is named \"ttyS0\" under GNU/Linux."
msgstr ""
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "deimniú"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -919,7 +941,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -930,7 +952,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -951,7 +973,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
@@ -960,7 +982,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Saineolaí"
@@ -973,7 +1000,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1018,11 +1045,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1040,8 +1062,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1058,14 +1079,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "Carta ISDN"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "Carta ISDN"
@@ -1078,8 +1104,8 @@ msgstr "Comhéadan Grafach"
#: ../help.pm:861
#, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
@@ -1087,12 +1113,14 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
#: ../help.pm:872
@@ -1105,3 +1133,5 @@ msgstr "Teacs ->"
msgid "<- Previous"
msgstr "<- feist"
+#~ msgid "authentication"
+#~ msgstr "deimniú"
diff --git a/perl-install/install/help/po/gl.po b/perl-install/install/help/po/gl.po
index 60fdd27a8..7354ed534 100644
--- a/perl-install/install/help/po/gl.po
+++ b/perl-install/install/help/po/gl.po
@@ -6,10 +6,11 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX-help-gl\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2006-07-08 20:57+0100\n"
"Last-Translator: Leandro Regueiro <leandro.regueiro@gmail.com>\n"
"Language-Team: <gl@li.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -18,15 +19,15 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Antes de continuar, debe ler atentamente os termos da licenza. Esta\n"
-"licenza cobre toda a distribución Mandriva Linux. Se está de acordo\n"
+"licenza cobre toda a distribución Mageia. Se está de acordo\n"
"con tódolos termos que contén, marque o cadro \"%s\". Se non o está,\n"
"prema no botón \"%s\" e reiniciarase o seu ordenador."
@@ -111,13 +112,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Desexa usar esta funcionalidade?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -127,24 +139,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"As particións listadas aquí son as particións Linux existentes detectadas\n"
@@ -180,30 +196,29 @@ msgstr ""
"significa \"segundo ID SCSI menor\", etc."
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"A instalación de Mandriva Linux distribúese en varios CD-ROMs. Se un\n"
+"A instalación de Mageia distribúese en varios CD-ROMs. Se un\n"
"paquete dos seleccionados está noutro CD-ROM, DrakX expulsará o CD\n"
"actual e diralle que insira o CD requirido. Se non ten o CD requirido a "
"man,\n"
"prema en \"%s\", e os paquetes correspondentes non se instalarán."
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -216,8 +231,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -255,11 +269,11 @@ msgid ""
"megabytes."
msgstr ""
"Agora terá que especificar que programas desexa instalar no seu sistema.\n"
-"Hai milleiros de paquetes dispoñibles para Mandriva Linux, e para facer que\n"
+"Hai milleiros de paquetes dispoñibles para Mageia, e para facer que\n"
"sexa máis sinxelo manexalos, puxéronse en grupos de aplicacións "
"semellantes.\n"
"\n"
-"Mandriva Linux ordena os grupos de paquetes en catro categorías. Vostede\n"
+"Mageia ordena os grupos de paquetes en catro categorías. Vostede\n"
"pode mesturar aplicacións de varias categorías, de xeito que unha "
"instalación\n"
"``Estación de Traballo'' poida ter instaladas aplicacións da categoría "
@@ -326,7 +340,7 @@ msgid "Truly minimal install"
msgstr "Instalación mínima de verdade"
#: ../help.pm:152
-#, c-format
+#, fuzzy, c-format
msgid ""
"If you choose to install packages individually, the installer will present\n"
"a tree containing all packages classified by groups and subgroups. While\n"
@@ -339,10 +353,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -373,10 +387,10 @@ msgstr ""
"!!Se se selecciona un paquete de servidor, xa sexa porque vostede elixiu\n"
"dito paquete ou porque é parte dun grupo de paquetes, pediráselle que\n"
"confirme que desexa instalar estes servidores. De maneira predeterminada\n"
-"Mandriva Linux iniciará automáticamente ó arrincar o sistema tódolos\n"
+"Mageia iniciará automáticamente ó arrincar o sistema tódolos\n"
"servicios instalados. Incluso se son seguros e non tiñan ningún problema\n"
"coñecido cando se fixo a distribución, é posible que se descubriran buratos\n"
-"de seguridade despois de que se rematara esta versión de Mandriva Linux.\n"
+"de seguridade despois de que se rematara esta versión de Mageia.\n"
"Se non sabe que fai un determinado servicio ou por que se vai instalar,\n"
"prema en \"%s\". Se preme en \"%s\" instalaranse os servicios listados e\n"
"iniciaranse automáticamente ó arrincar o sistema!!\n"
@@ -401,21 +415,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Dependencias automáticas"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": premendo no botón \"%s\" abrirase o asistente de configuración de\n"
-"impresoras. Consulte o capítulo correspondente da ``Guía de Inicio'' para "
-"obter\n"
-"máis información acerca de como configurar unha nova impresora. A interface\n"
-"presente no manual é semellante á que se usa durante a instalación."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -482,7 +482,12 @@ msgstr ""
"opción en realidade instala un servidor de tempo local que tamén poden usar\n"
"outras máquinas da súa rede local."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Sincronización automática da hora"
@@ -511,11 +516,11 @@ msgstr ""
"necesidades."
#: ../help.pm:234
-#, c-format
+#, fuzzy, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -571,7 +576,7 @@ msgid ""
msgstr ""
"As X (por X Window System) son o corazón da interface gráfica de\n"
"GNU/Linux do que dependen tódolos ambientes gráficos (KDE, GNOME,\n"
-"AfterStep, WindowMaker, etc.) proporcionados por Mandriva Linux.\n"
+"AfterStep, WindowMaker, etc.) proporcionados por Mageia.\n"
"\n"
"Vostede verá unha lista dos diferentes parámetros que se poden\n"
"cambiar para obter unha visualización gráfica óptima.\n"
@@ -687,41 +692,45 @@ msgstr ""
"coma un servidor, ou se non tivo éxito configurando o sistema gráfico."
#: ../help.pm:319
-#, c-format
+#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -730,15 +739,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -752,11 +761,11 @@ msgid ""
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
"Agora ten que decidir onde quere instalar o sistema operativo\n"
-"Mandriva Linux no disco duro. Se o seu disco duro está baleiro, ou se\n"
+"Mageia no disco duro. Se o seu disco duro está baleiro, ou se\n"
"outro sistema operativo está usando todo o espacio dispoñible, terá que\n"
"particionalo. Básicamente, particionar un disco duro consiste en dividilo\n"
"lóxicamente para crear o espacio necesario para instalar o seu novo\n"
-"sistema Mandriva Linux.\n"
+"sistema Mageia.\n"
"\n"
"Debido a que o proceso de particionamento é normalmente irreversible\n"
"e pode provocar perdas de datos, o particionamento pode intimidar e\n"
@@ -786,7 +795,7 @@ msgstr ""
"pode levarse a cabo sen a perda de ningún dato, con tal que\n"
"desfragmente previamente a partición Windows. É moi recomendable\n"
"que faga unha copia de seguridade dos seus datos. Recoméndase\n"
-"usar esta opción se desexa usar Mandriva Linux e Microsoft\n"
+"usar esta opción se desexa usar Mageia e Microsoft\n"
"Windows no mesmo ordenador.\n"
"\n"
" Antes de escoller esta opción, debe comprender que despois deste\n"
@@ -795,7 +804,7 @@ msgstr ""
"para almacenar os seus datos ou para instalar novo software.\n"
"\n"
" * \"%s\". Se desexa eliminar tódolos datos e as particións presentes no\n"
-"seu disco duro e remprazalas polo seu novo sistema Mandriva Linux, elixa\n"
+"seu disco duro e remprazalas polo seu novo sistema Mageia, elixa\n"
"esta opción. Teña coidado, porque non poderá desfacer esta operación\n"
"despois de que confirme.\n"
"\n"
@@ -820,7 +829,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Usar partición existente"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Borra-lo disco enteiro"
@@ -903,8 +917,23 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Xerar un disquete de Instalación Automática"
-#: ../help.pm:415
+#: ../help.pm:405
#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
+#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -923,7 +952,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -946,15 +975,15 @@ msgstr ""
"Prema en \"%s\" cando estea preparado para formatar as particións.\n"
"\n"
"Prema en \"%s\" se desexa elixir outra partición para a instalación do seu\n"
-"novo sistema operativo Mandriva Linux.\n"
+"novo sistema operativo Mageia.\n"
"\n"
"Prema en \"%s\" se desexa seleccionar as particións nas que se realizarán\n"
"comprobacións de bloques erróneos."
#: ../help.pm:437
-#, c-format
+#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -966,7 +995,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Cando instale Mandriva Linux é probable que algúns paquetes se\n"
+"Cando instale Mageia é probable que algúns paquetes se\n"
"actualizaran dende a publicación inicial. Pode ser que se solucionaran "
"erros,\n"
"e se resolveran problemas de seguridade. Para beneficiarse destas\n"
@@ -981,7 +1010,7 @@ msgstr ""
"seleccionado(s), ou en \"%s\" para abortar."
#: ../help.pm:450
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -990,7 +1019,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1004,7 +1033,7 @@ msgstr ""
"\n"
"Se non sabe cal escoller, deixe a opción predeterminada. Poderá\n"
"cambiala máis tarde ca ferramenta draksec, a cal é parte do Centro de\n"
-"Control de Mandriva Linux.\n"
+"Control de Mageia.\n"
"\n"
"Complete o campo \"%s\" co enderezo de correo-e (e-mail) da persoa\n"
"responsable da seguridade. As mensaxes de seguridade enviaranse a\n"
@@ -1016,24 +1045,27 @@ msgid "Security Administrator"
msgstr "Administrador de Seguridade"
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1049,21 +1081,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1080,17 +1114,11 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"Neste punto cómpre que escolla que partición(s) se van usar para a\n"
-"instalación do seu sistema Mandriva Linux. Se as particións xa se\n"
+"instalación do seu sistema Mageia. Se as particións xa se\n"
"crearon, xa sexa nunha instalación anterior de GNU/Linux ou con\n"
"outra ferramenta de particionamento, poderá usar as particións\n"
"existentes. Se non é así, débense crear as particións no disco duro.\n"
@@ -1106,7 +1134,7 @@ msgstr ""
"seleccionado\n"
"\n"
" * \"%s\": esta opción permítelle crear automáticamente particións\n"
-"ext3 e swap no espacio baleiro do disco duro\n"
+"ext4 e swap no espacio baleiro do disco duro\n"
"\n"
"\"%s\": dálle acceso a funcionalidades adicionais:\n"
"\n"
@@ -1156,60 +1184,84 @@ msgstr ""
"\n"
"Para obter información sobre os diferentes tipos de sistemas de ficheiros\n"
"dispoñibles, lea o capítulo sobre ext2FS do ``Manual de Referencia''.\n"
-"\n"
-"Se está instalando nunha máquina PPC, quererá crear unha pequena\n"
-"partición HFS para ``bootstrap'' de como mínimo 1MB a cal vai ser usada\n"
-"polo cargador de arrinque yaboot. Se opta por facer a partición un pouco\n"
-"máis grande, digamos de 50MB, podería darse conta de que é un sitio útil\n"
-"para almacenar un kernel de reserva e imaxes ramdisk para situacións de\n"
-"arrinques de emerxencia."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Montar automáticamente os soportes extraíbles"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Cambiar entre modo normal/experto"
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Detectouse máis dunha partición Microsoft no seu disco duro. Elixa a que\n"
"quere redimensionar para poder instalar o seu novo sistema operativo\n"
-"Mandriva Linux.\n"
+"Mageia.\n"
"\n"
"Cada partición está listada do seguinte xeito: \"Nome en Linux\",\n"
"\"Nome en Windows\", \"Capacidade\".\n"
@@ -1250,35 +1302,35 @@ msgstr ""
"que se amosa, prema no botón \"%s\" para obter a lista completa de países."
#: ../help.pm:572
-#, c-format
+#, fuzzy, c-format
msgid ""
"This step is activated only if an existing GNU/Linux partition has been\n"
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Este paso actívase só se se atopou algunha partición GNU/Linux na súa\n"
"máquina.\n"
"\n"
"DrakX necesita saber se desexa facer unha nova instalación ou\n"
-"unha actualización dun sistema Mandriva Linux xa existente:\n"
+"unha actualización dun sistema Mageia xa existente:\n"
"\n"
" * \"%s\". A maioría das veces, isto destrúe completamente o sistema\n"
"antigo. Sen embargo, dependendo de como sexa o seu esquema de\n"
@@ -1288,15 +1340,15 @@ msgstr ""
"o sistema de ficheiros, debe usar esta opción.\n"
"\n"
" * \"%s\". Esta clase de instalación permítelle actualiza-los paquetes que\n"
-"están instalados agora mesmo no seu sistema Mandriva Linux. Non se\n"
+"están instalados agora mesmo no seu sistema Mageia. Non se\n"
"modificarán nin o esquema de particionamento actual nin os datos dos\n"
"usuarios. A maior parte dos outros pasos de configuración estarán\n"
"dispoñibles e serán semellantes ós dunha instalación estándar.\n"
"\n"
"O uso da opción ``Actualizar'' debería funcionar ben en sistemas con\n"
-"Mandriva Linux versión \"8.1\" ou posteriores. Non se recomenda levar\n"
+"Mageia versión \"8.1\" ou posteriores. Non se recomenda levar\n"
"a cabo actualizacións en versións anteriores á versión \"8.1\" de\n"
-"Mandriva Linux."
+"Mageia."
#: ../help.pm:594
#, c-format
@@ -1336,7 +1388,7 @@ msgstr ""
"teclado cambie entre unha disposición Latina e unha non Latina."
#: ../help.pm:612
-#, c-format
+#, fuzzy, c-format
msgid ""
"The first step is to choose your preferred language.\n"
"\n"
@@ -1352,8 +1404,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1396,7 +1447,7 @@ msgstr ""
"Acerca do soporte de UTF-8 (unicode): Unicode é unha nova codificación de\n"
"caracteres pensada para cubrir tódalas linguas existentes. Sen embargo o\n"
"soporte completo para ela en GNU/Linux ainda se está desenvolvendo. Por\n"
-"esta razón, o uso de UTF-8 en Mandriva Linux dependerá das eleccións do\n"
+"esta razón, o uso de UTF-8 en Mageia dependerá das eleccións do\n"
"usuario:\n"
"\n"
" * Se selecciona unha lingua cunha codificación fortemente asociada\n"
@@ -1429,7 +1480,12 @@ msgstr ""
msgid "Espanol"
msgstr "Español"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1517,95 +1573,7 @@ msgstr ""
"Seleccione o porto correcto. Por exemplo, o porto \"COM1\" de\n"
"Windows chámase \"ttyS0\" en GNU/Linux."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Esta é a decisión máis importante para a seguridade do seu sistema\n"
-"GNU/Linux: debe introducir o contrasinal de \"root\". \"Root\" é o\n"
-"administrador do sistema e é o único usuario autorizado para facer\n"
-"actualizacións, engadir usuarios, cambiar a configuración de todo o "
-"sistema,\n"
-"etc. En poucas palabras, \"root\" pode facer de todo! Por isto debe "
-"escoller\n"
-"un contrasinal que sexa difícil de adiviñar: DrakX diralle se o contrasinal "
-"que\n"
-"escolleu é demasiado sinxelo. Como pode ver, non está obrigado a introducir\n"
-"un contrasinal, pero recomendámoslle que introduza un. GNU/Linux é tan\n"
-"propenso ós erros do operador coma calquera outro sistema operativo. Xa\n"
-"que \"root\" pode superar tódalas limitacións e eliminar de xeito non\n"
-"intencionado tódolos datos das particións ó acceder sen coidado ás\n"
-"propias particións, é importante que sexa difícil chegar a ser \"root\".\n"
-"\n"
-"O contrasinal debería ser unha mestura de caracteres alfanuméricos e ter "
-"unha\n"
-"lonxitude mínima de 8 caracteres. Nunca escriba nun papel o contrasinal de\n"
-"\"root\" -- isto fai que sexa moito máis sinxelo comprometer o seu sistema.\n"
-"\n"
-"Un consello: non faga que o contrasinal sexa moi longo ou complicado porque\n"
-"terá que ser capaz de lembrarse del!\n"
-"\n"
-"O contrasinal non se amosará na pantalla mentres o escribe. Para reducir as\n"
-"posibilidades dun erro ó escribilo terá que introducilo contrasinal dúas "
-"veces.\n"
-"Se comete dúas veces o mesmo erro de escritura, terá que usar este "
-"contrasinal\n"
-"``incorrecto'' a primeira vez que entre coma \"root\".\n"
-"\n"
-"Se desexa que un servidor de autenticación controle o acceso ó seu "
-"ordenador,\n"
-"prema no botón \"%s\".\n"
-"\n"
-"Se a súa rede usa servicios de autenticación coma LDAP, NIS, ou un PDC\n"
-"dun Dominio Windows, seleccione o axeitado de \"%s\". Se non sabe cal usar,\n"
-"deberialle preguntar ó administrador da súa rede.\n"
-"\n"
-"Se ten problemas para lembrar o contrasinal, ou se o seu ordenador nunca\n"
-"vai estar conectado á Internet e confía en tódalas persoas que usan o seu\n"
-"ordenador, pode elixir \"%s\"."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "autenticación"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1619,7 +1587,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1643,10 +1611,10 @@ msgstr ""
"opción só se sabe o que está facendo."
#: ../help.pm:745
-#, c-format
+#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1667,12 +1635,12 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Agora é a hora de seleccionar un sistema de impresión para o seu\n"
"ordenador. Pode ser que outros sistemas operativos lle ofrezan un, pero\n"
-"Mandriva Linux ofrécelle dous. Cada un dos sistemas de impresión está\n"
+"Mageia ofrécelle dous. Cada un dos sistemas de impresión está\n"
"máis adaptado a determinados tipos de configuración.\n"
"\n"
" * \"%s\" -- que é un acrónimo de ``print, do not queue'' (imprime, non o\n"
@@ -1696,14 +1664,19 @@ msgstr ""
"\n"
"Se elixe un agora, e máis tarde se da conta de que non lle gusta o seu\n"
"sistema de impresión poderá cambialo executando PrinterDrake dende o\n"
-"Centro de Control de Mandriva Linux e premendo no botón \"%s\"."
+"Centro de Control de Mageia e premendo no botón \"%s\"."
#: ../help.pm:768
#, c-format
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Experto"
@@ -1716,7 +1689,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1761,7 +1734,7 @@ msgstr ""
"pode premer no botón e escoller un driver diferente."
#: ../help.pm:794
-#, c-format
+#, fuzzy, c-format
msgid ""
"As a review, DrakX will present a summary of information it has gathered\n"
"about your system. Depending on the hardware installed on your machine, you\n"
@@ -1784,11 +1757,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1806,8 +1774,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1824,7 +1791,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1872,7 +1839,7 @@ msgstr ""
"\n"
" * \"%s\": se desexa configurar o seu acceso á Internet ou a unha rede\n"
"local, pode facelo agora. Consulte a documentación impresa ou use o\n"
-"Centro de Control de Mandriva Linux despois de rematar a instalación para\n"
+"Centro de Control de Mageia despois de rematar a instalación para\n"
"sacar partido da axuda en liña.\n"
"\n"
" * \"%s\": permítelle configurar os enderezos do proxy HTTP e FTP no\n"
@@ -1897,7 +1864,12 @@ msgstr ""
"executarán na súa máquina. Se ten pensado usar esta máquina coma\n"
"un servidor sería unha boa idea revisar esta configuración."
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "Tarxeta RDSI"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "Tarxeta RDSI"
@@ -1908,26 +1880,28 @@ msgid "Graphical Interface"
msgstr "Interface Gráfica"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"Elixa o disco duro que desexa borrar para poder crear a súa nova partición\n"
-"Mandriva Linux. Teña tino, porque se perderán tódolos datos da unidade e\n"
+"Mageia. Teña tino, porque se perderán tódolos datos da unidade e\n"
"non se poderán volver recuperar!"
#: ../help.pm:866
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Prema en \"%s\" se desexa eliminar tódolos datos e particións presentes\n"
"neste disco duro. Teña tino, despois de premer en \"%s\", non poderá\n"
@@ -1946,3 +1920,124 @@ msgstr "Seguinte ->"
#, c-format
msgid "<- Previous"
msgstr "<- Anterior"
+
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": premendo no botón \"%s\" abrirase o asistente de configuración "
+#~ "de\n"
+#~ "impresoras. Consulte o capítulo correspondente da ``Guía de Inicio'' para "
+#~ "obter\n"
+#~ "máis información acerca de como configurar unha nova impresora. A "
+#~ "interface\n"
+#~ "presente no manual é semellante á que se usa durante a instalación."
+
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "Esta é a decisión máis importante para a seguridade do seu sistema\n"
+#~ "GNU/Linux: debe introducir o contrasinal de \"root\". \"Root\" é o\n"
+#~ "administrador do sistema e é o único usuario autorizado para facer\n"
+#~ "actualizacións, engadir usuarios, cambiar a configuración de todo o "
+#~ "sistema,\n"
+#~ "etc. En poucas palabras, \"root\" pode facer de todo! Por isto debe "
+#~ "escoller\n"
+#~ "un contrasinal que sexa difícil de adiviñar: DrakX diralle se o "
+#~ "contrasinal que\n"
+#~ "escolleu é demasiado sinxelo. Como pode ver, non está obrigado a "
+#~ "introducir\n"
+#~ "un contrasinal, pero recomendámoslle que introduza un. GNU/Linux é tan\n"
+#~ "propenso ós erros do operador coma calquera outro sistema operativo. Xa\n"
+#~ "que \"root\" pode superar tódalas limitacións e eliminar de xeito non\n"
+#~ "intencionado tódolos datos das particións ó acceder sen coidado ás\n"
+#~ "propias particións, é importante que sexa difícil chegar a ser \"root\".\n"
+#~ "\n"
+#~ "O contrasinal debería ser unha mestura de caracteres alfanuméricos e ter "
+#~ "unha\n"
+#~ "lonxitude mínima de 8 caracteres. Nunca escriba nun papel o contrasinal "
+#~ "de\n"
+#~ "\"root\" -- isto fai que sexa moito máis sinxelo comprometer o seu "
+#~ "sistema.\n"
+#~ "\n"
+#~ "Un consello: non faga que o contrasinal sexa moi longo ou complicado "
+#~ "porque\n"
+#~ "terá que ser capaz de lembrarse del!\n"
+#~ "\n"
+#~ "O contrasinal non se amosará na pantalla mentres o escribe. Para reducir "
+#~ "as\n"
+#~ "posibilidades dun erro ó escribilo terá que introducilo contrasinal dúas "
+#~ "veces.\n"
+#~ "Se comete dúas veces o mesmo erro de escritura, terá que usar este "
+#~ "contrasinal\n"
+#~ "``incorrecto'' a primeira vez que entre coma \"root\".\n"
+#~ "\n"
+#~ "Se desexa que un servidor de autenticación controle o acceso ó seu "
+#~ "ordenador,\n"
+#~ "prema no botón \"%s\".\n"
+#~ "\n"
+#~ "Se a súa rede usa servicios de autenticación coma LDAP, NIS, ou un PDC\n"
+#~ "dun Dominio Windows, seleccione o axeitado de \"%s\". Se non sabe cal "
+#~ "usar,\n"
+#~ "deberialle preguntar ó administrador da súa rede.\n"
+#~ "\n"
+#~ "Se ten problemas para lembrar o contrasinal, ou se o seu ordenador nunca\n"
+#~ "vai estar conectado á Internet e confía en tódalas persoas que usan o "
+#~ "seu\n"
+#~ "ordenador, pode elixir \"%s\"."
+
+#~ msgid "authentication"
+#~ msgstr "autenticación"
diff --git a/perl-install/install/help/po/he.po b/perl-install/install/help/po/he.po
index aac596134..4bea8e723 100644
--- a/perl-install/install/help/po/he.po
+++ b/perl-install/install/help/po/he.po
@@ -1,5 +1,5 @@
-# translation of he.po to Hebrew
-# Copyright (C) 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
+# translation of Drakx-help.po to Hebrew
+# Copyright (C) 2003, 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
# This file is distributed under the GNU GPL license.
#
#
@@ -12,12 +12,13 @@
# Dotan Kamber <kamberd@yahoo.com>, 2007.
msgid ""
msgstr ""
-"Project-Id-Version: he\n"
+"Project-Id-Version: Drakx-help\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
-"PO-Revision-Date: 2007-07-18 01:17+0300\n"
-"Last-Translator: Dotan Kamber <kamberd@yahoo.com>\n"
-"Language-Team: Hebrew\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
+"PO-Revision-Date: 2008-02-01 20:34+0200\n"
+"Last-Translator: \n"
+"Language-Team: Hebrew <he@li.org>\n"
+"Language: he\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -25,10 +26,10 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
@@ -77,32 +78,53 @@ msgid ""
"security), choose the desired user and window manager, then click on\n"
"\"%s\". If you're not interested in this feature, uncheck the \"%s\" box."
msgstr ""
-"גנו/לינוקס היא מערכת מרובת משתמשים ומשמעות הדבר שלכל משתמש יכולות להיות העדפות\n"
-"משלו, קבצים משלו וכן הלאה. בשונה מ-\"root\", שמנהל את המערכת, למשתמשים הנוספים\n"
-"בשלב זה לא יהיו הרשאות לשנות מאום פרט לקבצים ולהגדרות שלהם כך שהמערכת תוגן מפני\n"
-"שינויים לא מכוונים או זדוניים העלולים להשפיע על המערכת בכללותה. יהיה עליך ליצור לפחות\n"
-"משתמש רגיל אחד לעצמך -- זהו החשבון בו עליך להשתמש באופן יומיומי. אף כי קל מאוד להכנס\n"
-"כ-\"root\" כדי לעשות כל דבר הרי שהדבר עלול להיות מסוכן! משמעות שגיאה פשוטה עלולה להיות\n"
-"שהמערכת לא תעבוד עוד. אם יקרו שגיאות חמורות מאוד בעבודתך במצב משתמש רגיל הגרוע\n"
+"גנו/לינוקס היא מערכת מרובת משתמשים ומשמעות הדבר שלכל משתמש יכולות להיות "
+"העדפות\n"
+"משלו, קבצים משלו וכן הלאה. בשונה מ-\"root\", שמנהל את המערכת, למשתמשים "
+"הנוספים\n"
+"בשלב זה לא יהיו הרשאות לשנות מאום פרט לקבצים ולהגדרות שלהם כך שהמערכת תוגן "
+"מפני\n"
+"שינויים לא מכוונים או זדוניים העלולים להשפיע על המערכת בכללותה. יהיה עליך "
+"ליצור לפחות\n"
+"משתמש רגיל אחד לעצמך -- זהו החשבון בו עליך להשתמש באופן יומיומי. אף כי קל "
+"מאוד להכנס\n"
+"כ-\"root\" כדי לעשות כל דבר הרי שהדבר עלול להיות מסוכן! משמעות שגיאה פשוטה "
+"עלולה להיות\n"
+"שהמערכת לא תעבוד עוד. אם יקרו שגיאות חמורות מאוד בעבודתך במצב משתמש רגיל "
+"הגרוע\n"
"מכל שיכול לקרות הוא שיאבד לך מידע אבל המערכת עצמה לא תפגע.\n"
"\n"
"בשדה הראשון מבוקש שם אמיתי. כמובן שהדבר אינו הכרחי --\n"
"למעשה באפשרותך להזין כל מחרוזת. DrakX משתמש במילה הראשונה המוקלדת בשדה זה\n"
"ומעתיק אותה אל ה-\"%s\" שהוא השם אותו יצתרך המשתמש להזין כדי להכנס למערכת.\n"
"באפשרותך לבחור שם שונה מברירת מחדל זו. השלב הבא הוא הזנת סיסמה.\n"
-"מבחינת אבטחה סיסמת משתמש חסר הרשאות (משתמש רגיל) אינה כה חשובה כמו זו של \"root\"\n"
+"מבחינת אבטחה סיסמת משתמש חסר הרשאות (משתמש רגיל) אינה כה חשובה כמו זו של "
+"\"root\"\n"
"אבל אין משמעות הדבר שיש להזניחה ולהשאירה ריקה או פשוטה מדי: בסופו של דבר\n"
"אלו הקבצים שלך שיהיו בסכנה\n"
"\n"
-"אחרי לחיצה על \"%s\" ניתן להוסיף משתמשים נוספים. יש להוסיף משתמש לכל אחד מחבריך,\n"
+"אחרי לחיצה על \"%s\" ניתן להוסיף משתמשים נוספים. יש להוסיף משתמש לכל אחד "
+"מחבריך,\n"
"אביך, אחותך וכו'. יש להקיש על \"%s\" בסיום הוספת המשתמשים.\n"
"\n"
"הקשה על כפתור ה-\"%s\" מאפשרת לשנות את \"מעטפת\" ברירת המחדל של המשתמש\n"
"(bash היא ברירת המחדל).\n"
"\n"
"בסיום הוספת המשתמשים תופיע שאלה על המשתמש שלחשבונו תתבצע כניסה אוטומטית.\n"
-"אם ברצונך באפשרות זו (ואין לך דאגות לגבי אבטחה מקומית), יש לבחור את המשתמש הרצוי\n"
-"ואת מנהל החלונות ואז ללחוץ על \"%s\". אם אין לך רצון בכך יש להוריד את הסימון מתיבת ה-\"%s\"."
+"אם ברצונך באפשרות זו (ואין לך דאגות לגבי אבטחה מקומית), יש לבחור את המשתמש "
+"הרצוי\n"
+"ואת מנהל החלונות ואז ללחוץ על \"%s\". אם אין לך רצון בכך יש להוריד את הסימון "
+"מתיבת ה-\"%s\"."
+
+#: ../help.pm:54
+#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
#: ../help.pm:54
#, c-format
@@ -112,7 +134,8 @@ msgstr "האם להפעיל אפשרות זו?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -122,40 +145,50 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"להלן רשומות מחיצות הלינוקס שזוהו בכונן הקשיח שלך. \n"
-"באפשרותך לשמור את האפשרויות שנבחרו על יד האשף היות והן טובות לרוב ההתקנות הרגילות.\n"
-"אם ברצונך לבצע שינויים עליך לכל הפחות להגדיר מחיצת שורש (\"/\"). אין לבחור מחיצה\n"
-"קטנה מדי שמא לא ניתן יהיה להתקין די תוכנות. אם ברצונך לאכסן את המידע שלך על מחיצה\n"
-"נפרדת יהיה עליך ליצור גם מחיצת \"/home\" (אפשרי רק אם יש לך יותר ממחיצת לינוקס\n"
+"באפשרותך לשמור את האפשרויות שנבחרו על יד האשף היות והן טובות לרוב ההתקנות "
+"הרגילות.\n"
+"אם ברצונך לבצע שינויים עליך לכל הפחות להגדיר מחיצת שורש (\"/\"). אין לבחור "
+"מחיצה\n"
+"קטנה מדי שמא לא ניתן יהיה להתקין די תוכנות. אם ברצונך לאכסן את המידע שלך על "
+"מחיצה\n"
+"נפרדת יהיה עליך ליצור גם מחיצת \"/home\" (אפשרי רק אם יש לך יותר ממחיצת "
+"לינוקס\n"
"אחת).\n"
"\n"
"כל מחיצה רשומה באופן הבא: \"שם\", \"גודל\".\n"
"המבנה של \"שם\" הוא \"סוג הכונן הקשיח\", \"מספר הכונן הקשיח\",\n"
"\"מספר המחיצה\" (\"hda1\" לדוגמה).\n"
"\n"
-"\"סוג הכונן הקשיח\" הוא \"hd\" אם הכונן הוא מסוג IDE ו-\"sd\" אם הכונן הוא SCSI.\n"
+"\"סוג הכונן הקשיח\" הוא \"hd\" אם הכונן הוא מסוג IDE ו-\"sd\" אם הכונן הוא "
+"SCSI.\n"
"\n"
-"\"מספר הכונן הקשיח\" הוא תמיד אות הבאה אחרי \"hd\" או \"sd\". עבור כונני IDE:\n"
+"\"מספר הכונן הקשיח\" הוא תמיד אות הבאה אחרי \"hd\" או \"sd\". עבור כונני "
+"IDE:\n"
"\n"
"* \"a\" משמעו הכונן הראשי על בקר ה-IDE הראשון;\n"
"\n"
@@ -165,13 +198,14 @@ msgstr ""
"\n"
"* \"d\" משמעו הכונן המשני על בקר ה-IDE השניוני.\n"
"\n"
-"עם כונני SCSI משמעו של \"a\" היא הכונן עם ה-SCSI ID הנמוך ביותר, משמעו של \"b\"\n"
+"עם כונני SCSI משמעו של \"a\" היא הכונן עם ה-SCSI ID הנמוך ביותר, משמעו של \"b"
+"\"\n"
"היא הכונן השני מתחתית סולם ה-SCSI ID וכן הלאה."
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
@@ -183,15 +217,14 @@ msgstr ""
"עליך ללחוץ על \"%s\" להמשך ללא התקנת החבילה שאינה זמינה."
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -204,8 +237,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -313,7 +345,7 @@ msgid "Truly minimal install"
msgstr "התקנה מינימלית באמת"
#: ../help.pm:152
-#, c-format
+#, fuzzy, c-format
msgid ""
"If you choose to install packages individually, the installer will present\n"
"a tree containing all packages classified by groups and subgroups. While\n"
@@ -326,10 +358,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -387,19 +419,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "תלויות אוטומטיות"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": לחיצה על מקש ה-\"%s\" תפתח את אשף תצורת המדפסות\n\n"
-"יש לפנות אל הפרק המתאים ב''מדריך למתחילים'' למידע נוסף אודות האופן בו יש להגדיר\n"
-"מדפסת חדשה, המנשק המוצג במדריך שלנו זהה לזה בו משתמשים במהלך ההתקנה."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -419,12 +439,13 @@ msgid ""
"Please remember that some services can be dangerous if they're enabled on a\n"
"server. In general, select only those services you really need. !!"
msgstr ""
-"תיבת דו-שיח זו משמשת לבחירת השירותים שברצונך בהפעלתם באיתחול המערכת.\n"
+"תיבת דו-שיח זו משמשת לבחירת השירותים שברצונך בהפעלתם באתחול המערכת.\n"
"\n"
"DrakX ירשום את כל השירותים הזמינים בהתקנה הנוכחית. יש לסקור כל אחד מהם\n"
-"בקפדנות ולהוריד את הסימון מאלו שאינם נחוצים באיתחול.\n"
+"בקפדנות ולהוריד את הסימון מאלו שאינם נחוצים באתחול.\n"
"\n"
-"קטע הסבר קצר אודות השירות יוצג כשזה יבחר אך אף על פי כן אם אין לך מידע אם השירות\n"
+"קטע הסבר קצר אודות השירות יוצג כשזה יבחר אך אף על פי כן אם אין לך מידע אם "
+"השירות\n"
"שימושי או לאו יהיה זה בטוח יותר להשאיר את ברירת המחדל.\n"
"\n"
"!! בשלב זה עליך לנקוט זהירות יתרה אם בכוונתך להשתמש במכונה כשרת:\n"
@@ -448,18 +469,30 @@ msgid ""
"choose a time server located near you. This option actually installs a time\n"
"server which can be used by other machines on your local network as well."
msgstr ""
-"מערכות גנו/לינוקס מנהלות את הזמן לפי GMT (Greenwich Mean Time) ומתרגמות אותו\n"
-"לזמן מקומי לפי אזור הזמן שנבחר. אם השעון על לוח האם שלך מכוון לזמן המקומי באפשרותך\n"
-"לבטל פעילות זו על ידי הסרת הסימון \"%s\" שיאפשר למערכת לדעת כי שעון המערכת ושעון\n"
-"החומרה נמצאים באותו אזור זמן. דבר זה יעיל בעיקר במקרים בהם המכונה מארחת מערכת\n"
+"מערכות גנו/לינוקס מנהלות את הזמן לפי GMT (Greenwich Mean Time) ומתרגמות "
+"אותו\n"
+"לזמן מקומי לפי אזור הזמן שנבחר. אם השעון על לוח האם שלך מכוון לזמן המקומי "
+"באפשרותך\n"
+"לבטל פעילות זו על ידי הסרת הסימון \"%s\" שיאפשר למערכת לדעת כי שעון המערכת "
+"ושעון\n"
+"החומרה נמצאים באותו אזור זמן. דבר זה יעיל בעיקר במקרים בהם המכונה מארחת "
+"מערכת\n"
"הפעלה נוספת.\n"
"\n"
-"האפשרות \"%s\" תבקר באופן אוטומטי את שעון המערכת על ידי התחברות לשרת זמן באינטרנט.\n"
-"לצורך זה עליך להיות עם חיבור פעיל לאינטרנט. אנו ממליצים על בחירת שרת זמן שממוקם\n"
-"קרוב אליך. אפשרות זו למעשה מתקינה שרת זמן שמכונות אחרות יכולות לעשות בו שימוש\n"
+"האפשרות \"%s\" תבקר באופן אוטומטי את שעון המערכת על ידי התחברות לשרת זמן "
+"באינטרנט.\n"
+"לצורך זה עליך להיות עם חיבור פעיל לאינטרנט. אנו ממליצים על בחירת שרת זמן "
+"שממוקם\n"
+"קרוב אליך. אפשרות זו למעשה מתקינה שרת זמן שמכונות אחרות יכולות לעשות בו "
+"שימוש\n"
"ברשת המקומית שלך."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "סינכרון זמן אוטומטי"
@@ -479,18 +512,18 @@ msgid ""
msgstr ""
"כרטיס גרפי\n"
"\n"
-" תוכנית ההתקנה בדרך כלל תזהה ותגדיר את הכרטיס הגרפי במכונה שלך.\n"
+" תכנית ההתקנה בדרך כלל תזהה ותגדיר את הכרטיס הגרפי במכונה שלך.\n"
"אם ההגדרה אינה נכונה באפשרותך לבחור את הכרטיס המתאים מרשימה זו.\n"
"\n"
" במקרה ששרתים שונים זמינים עבור הכרטיס שברשותך, עם או בלי האצת\n"
"תלת-מימד, תוצג לך אפשרות לבחור את השרת שמתאים באופן הטוב ביותר לצרכיך."
#: ../help.pm:234
-#, c-format
+#, fuzzy, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -552,7 +585,7 @@ msgstr ""
"\n"
"כרטיס גרפי\n"
"\n"
-" תוכנית ההתקנה בדרך כלל תזהה ותגדיר באופן אוטומטי את הכרטיס הגרפי\n"
+" תכנית ההתקנה בדרך כלל תזהה ותגדיר באופן אוטומטי את הכרטיס הגרפי\n"
"במכונה שלך. אם ההגדרה אינה נכונה באפשרותך לבחור את הכרטיס המתאים\n"
"מרשימה זו.\n"
"\n"
@@ -563,7 +596,7 @@ msgstr ""
"\n"
"צג\n"
"\n"
-" תוכנית ההתקנה בדרך כלל תזהה ותגדיר באופן אוטומטי את המסך המחובר\n"
+" תכנית ההתקנה בדרך כלל תזהה ותגדיר באופן אוטומטי את המסך המחובר\n"
"למכונה שלך. אם ההגדרה אינה נכונה באפשרותך לבחור את המסך המחובר\n"
"למחשב מרשימה זו.\n"
"\n"
@@ -592,7 +625,7 @@ msgstr ""
"אפשרויות\n"
"\n"
" שלבים אלו מאפשרים לך לבחור אם ברצונך שהמכונה שלך תעבור למצב גרפי\n"
-"באופן אוטומטי עם איתחול המערכת. באופן טבעי כנראה תבחר האפשרות \"%s\" אם\n"
+"באופן אוטומטי עם אתחול המערכת. באופן טבעי כנראה תבחר האפשרות \"%s\" אם\n"
"המכונה שלך משתמשת כשרת או במקרה שלו הצלחת להגדיר את התצוגה כהלכה."
#: ../help.pm:291
@@ -606,7 +639,7 @@ msgid ""
msgstr ""
"צג\n"
"\n"
-" תוכנית ההתקנה בדרך כלל תזהה ותגדיר באופן אוטומטי את המסך המחובר\n"
+" תכנית ההתקנה בדרך כלל תזהה ותגדיר באופן אוטומטי את המסך המחובר\n"
"למכונה שלך. אם ההגדרה אינה נכונה באפשרותך לבחור את המסך המחובר\n"
"למחשב מרשימה זו."
@@ -654,41 +687,45 @@ msgstr ""
"התצוגה כראוי בשלב ההתקנה."
#: ../help.pm:319
-#, c-format
+#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -697,15 +734,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -786,7 +823,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "שימוש במחיצות קיימות"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "מחיקת כל המידע הקיים בכונן הקשיח"
@@ -867,8 +909,23 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "יצירת תקליטון התקנה אוטומטית"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
+#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -887,19 +944,22 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
msgstr ""
-"אם בחרת לעשות שימוש חוזר במחיצות גנו/לינוקס מיושנות ויש לך עניין באיתחולן ומחיקת\n"
+"אם בחרת לעשות שימוש חוזר במחיצות גנו/לינוקס מיושנות ויש לך עניין באתחולן "
+"ומחיקת\n"
"מידע מהן עליך לבחור גם מחיצות אלו.\n"
"\n"
-"לתשומת ליבך - אין חובה לאתחל את כל מחיצות הלינוקס הקיימות. יש לאתחל את המחיצות\n"
-"שיכילו את מערכת ההפעלה (כמו \"/\", \"usr/\" או \"var/\") אבל אין צורך לאתחל מחיצות\n"
+"לתשומת ליבך - אין חובה לאתחל את כל מחיצות הלינוקס הקיימות. יש לאתחל את "
+"המחיצות\n"
+"שיכילו את מערכת ההפעלה (כמו \"/\", \"usr/\" או \"var/\") אבל אין צורך לאתחל "
+"מחיצות\n"
"המכילות מידע שברצונך לשמור (על פי רוב מחיצת ה-\"home/\").\n"
"\n"
-"יש לנקוט משנה זהירות בעת בחירת המחיצות. לאחר סיום איתחול המחיצות שנבחרו\n"
+"יש לנקוט משנה זהירות בעת בחירת המחיצות. לאחר סיום אתחול המחיצות שנבחרו\n"
"כל המידע שהיה עליהן ימחק ולא יהיה באפשרותך לשחזר אותו.\n"
"\n"
"יש להקיש על \"%s\" כשאתה מוכן לאתחל את המחיצות.\n"
@@ -910,9 +970,9 @@ msgstr ""
"יש להקיש על \"%s\" אם ברצונך לבחור מחיצות שיבדקו למציאת קטעים פגועים בכונן."
#: ../help.pm:437
-#, c-format
+#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -924,17 +984,20 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"בזמן שהתקנת את מנדריבה-לינוקס סביר שחבילות שונות כבר עברו עידכון. ייתכן שתוקנו\n"
-"באגים ויכול להיות שנפתרו בעיות אבטחה. כדי לאפשר לך להנות מעידכונים אלו באפשרותך\n"
+"בזמן שהתקנת את מנדריבה-לינוקס סביר שחבילות שונות כבר עברו עידכון. ייתכן "
+"שתוקנו\n"
+"באגים ויכול להיות שנפתרו בעיות אבטחה. כדי לאפשר לך להנות מעידכונים אלו "
+"באפשרותך\n"
"להוריד אותם כעת מהאינטרנט. יש לסמן את \"%s\" אם יש לך קישור פעיל לאינטרנט\n"
"או \"%s\" אם ברצונך להתקין את חבילות העידכון מאוחר יותר.\n"
"\n"
"בחירה ב-\"%s\" תציג רשימת אתרים ברשת מהם ניתן לקבל את העידכונים. יש לבחור\n"
-"את המקור הקרוב אליך. עץ בחירת חבילות יוצג ועליך לסקור את הבחירות וללחוץ \"%s\"\n"
+"את המקור הקרוב אליך. עץ בחירת חבילות יוצג ועליך לסקור את הבחירות וללחוץ \"%s"
+"\"\n"
"כדי להוריד ולהתקין את החבילות שנבחרו או \"%s\" כדי לבטל את הפעולה."
#: ../help.pm:450
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -943,7 +1006,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -969,24 +1032,27 @@ msgid "Security Administrator"
msgstr "מנהל אבטחה"
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1002,21 +1068,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1033,14 +1101,8 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"בשלב זה, עליך לבחור היכן תותקן מערכת מנדריבה לינוקס בכונן הקשיח\n"
"שלך. אם כבר הוגדרו מחיצותמתאימות, בין אם על ידי התקנה קודמת\n"
@@ -1057,7 +1119,7 @@ msgstr ""
"\n"
" * \"%s\": אפשרות זו תמחק את כל המחיצות המוגדרות בכונן הקשיח\n"
"\n"
-" * \"%s\": אפשרות זו מאפשרת לך ליצור באופן אוטומטי מחיצתext3\n"
+" * \"%s\": אפשרות זו מאפשרת לך ליצור באופן אוטומטי מחיצתext4\n"
"ומחיצת החלפה בשטח הפנוי של הכונן הקשיח שלך\n"
"\n"
"\"%s\": מאפשר לך לבחור באפשרויות נוספות:\n"
@@ -1112,47 +1174,78 @@ msgstr ""
"לקבצי kernel ו-ramdisk חלופיים שיאפשרו לך להחלץ ממצבי תקלה\n"
"שימנעו ממך לאתחל את המערכת באופן הרגיל."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "עיגון אוטומטי של התקן-נשלף"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "מעבר בין מצבי רגיל\"מומחה "
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"יותר ממחיצה אחת של מיקרוסופט זוהתה בכונן הקשיח שלך.\n"
@@ -1164,7 +1257,8 @@ msgstr ""
"\"שם בלינוקס\" בנוי באופן הבא: \"סוג הכונן הקשיח\", \"מספםר הכונן הקשיח\",\n"
"\"מספר המחיצה\" (לדוגמה \"hda1\").\n"
"\n"
-"\"מספר הכונן הקשיח\" הוא תמיד אות הבאה אחרי \"hd\" או \"sd\". עבור כונני IDE:\n"
+"\"מספר הכונן הקשיח\" הוא תמיד אות הבאה אחרי \"hd\" או \"sd\". עבור כונני "
+"IDE:\n"
"\n"
"* \"a\" משמעו הכונן הראשי על בקר ה-IDE הראשון;\n"
"\n"
@@ -1174,7 +1268,8 @@ msgstr ""
"\n"
"* \"d\" משמעו הכונן המשני על בקר ה-IDE השניוני.\n"
"\n"
-"עם כונני SCSI משמעו של \"a\" היא הכונן עם ה-SCSI ID הנמוך ביותר, משמעו של \"b\"\n"
+"עם כונני SCSI משמעו של \"a\" היא הכונן עם ה-SCSI ID הנמוך ביותר, משמעו של \"b"
+"\"\n"
"היא הכונן השני מתחתית סולם ה-SCSI ID וכן הלאה.\n"
"\n"
"\"השם בחלונות\" הוא האות של הכונן שלך תחת חלונות (הכונן או המחיצה הראשונים\n"
@@ -1194,29 +1289,29 @@ msgstr ""
"עליך ללחוץ על הכפתור \"%s\" לרשימה מורחבת."
#: ../help.pm:572
-#, c-format
+#, fuzzy, c-format
msgid ""
"This step is activated only if an existing GNU/Linux partition has been\n"
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"שלב זה מופעל רק כאשר זוהתה מחיצת גנו/לינוקס קיימת במחשבך.\n"
"\n"
@@ -1260,24 +1355,24 @@ msgid ""
"keyboard between the Latin and non-Latin layouts."
msgstr ""
"אשף ההתקנה בחר עבורך את פריסות המקלדת המתאימות לשפות שבחרת\n"
-"בשלב קודם. עליך לבחור את פריסת המקלדת מבין האפשרויות המופיעות\n"
+"בשלב קודם. עליך לבחור את פרישת המקלדת מבין האפשרויות המופיעות\n"
"להלן או לאשר את ברירת המחדל.\n"
"\n"
-"במקרים מסויימים, יתכן כי המקלדת שברשותך אינה תואמת בדיוק לשפה בה\n"
-"בחרת. לדוגמה, אם שפת האם שלך היא אנגלית אך מקום מגוריך הוא בשוויץ,\n"
-"ייתכן ויש ברשותך מקלדת שוויצרית. לחילופין, אם מקום מגורייך הוא בקוויבק\n"
-"(קנדה) אך בחרת בשפה האנגלית, ייתכן והשפה בה בחרת ופריסת המקלדת\n"
+"במקרים מסוימים, יתכן כי המקלדת שברשותך אינה תואמת בדיוק לשפה בה\n"
+"בחרת. לדוגמה, אם שפת האם שלך היא אנגלית אך מקום מגוריך הוא בשויץ,\n"
+"ייתכן ויש ברשותך מקלדת שוויצרית. לחלופין, אם מקום מגורייך הוא בקויבק\n"
+"(קנדה) אך בחרת בשפה האנגלית, ייתכן והשפה בה בחרת ופרישת המקלדת\n"
"שברשותך אינם תואמים. בשני המצבים, השלב הנוכחי בהתקנה יאפשר לך\n"
-"לבחור את פריסת המקלדת הרצוייה מתוך רשימה.\n"
+"לבחור את פרישת המקלדת הרצויה מתוך רשימה.\n"
"\n"
"באם המקלדת שברשותך לא מופיעה ברשימה, עליך ללחוץ על הכפתור \"%s\"\n"
"על מנת להציג רשימה מלאה של המקלדות הנתמכות.\n"
"\n"
-"אם פריסת המקלדת הרצוייה אינה מבוססת לאטינית, החלון הבא יאפשר לך\n"
+"אם פרישת המקלדת הרצויה אינה מבוססת לאטינית, החלון הבא יאפשר לך\n"
"לבחור את צרוף המקשים שיאפשר לך להחליף בין פריסות שונות."
#: ../help.pm:612
-#, c-format
+#, fuzzy, c-format
msgid ""
"The first step is to choose your preferred language.\n"
"\n"
@@ -1293,8 +1388,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1322,20 +1416,24 @@ msgid ""
msgstr ""
"הצעד הראשון הוא לבחור את השפה הרצויה.\n"
"\n"
-"הבחירה שלך בשפה תשפיעה על תוכנית ההתקנה, על התיעוד ועל המערכת ככלל. תחילה יש\n"
+"הבחירה שלך בשפה תשפיע על תכנית ההתקנה, על התיעוד ועל המערכת ככלל. תחילה יש\n"
"לבחרו את האזור שלך ואחר כך את השפה.\n"
"\n"
"לחיצה על כפתור ה-\"%s\" תאפשר לך לבחור שפות נוספות להתקנה בתחנת העבודה שלך\n"
-"ומשמע שיותקנו הקבצים היעודיים לתיעוד וישומים באותן שפות. לדוגמה אם משתמשים דוברי\n"
-"ספרדית עומדים להשתמש במכונה שלך ניתן לבחור עברית כברירת מחדל התצוגת העץ\n"
+"ומשמע שיותקנו הקבצים היעודים לתיעוד ויישומים באותן שפות. לדוגמה אם משתמשים "
+"דוברי\n"
+"ספרדית עומדים להשתמש במכונה שלך ניתן לבחור עברית כברירת מחדל בתצוגת העץ\n"
"ו-\"%s\" בחלק המתקדם.\n"
"\n"
-"אודות תמיכה ב-UTF-8 (יוניקוד): יוניקוד הוא קידוד תוים חדש שנועד לכסות את כל השפות\n"
-"הקיימות. תמיכה מלאה ביוניקוד בגנו/לינוקס עדיין נמצאת בשלבי פיתוח. מסיבה זו השימוש\n"
-"של מנדריבה-לינוקס ב-UTF-8 יהיה תלוי בהגדרות השמתמש:\n"
+"אודות תמיכה ב-UTF-8 (יוניקוד): יוניקוד הוא קידוד תווים חדש שנועד לכסות את כל "
+"השפות\n"
+"הקיימות. תמיכה מלאה ביוניקוד בגנו/לינוקס עדיין נמצאת בשלבי פיתוח. מסיבה זו "
+"השימוש\n"
+"של מנדריבה-לינוקס ב-UTF-8 יהיה תלוי בהגדרות המשתמש:\n"
"\n"
" * אם נבחרה שפה שהשימוש בקידוד הישן שלה נפוץ (לדוגמה שפות עם latin1, רוסית,\n"
-"יפנית, סינית, קוראנית, תאילנדית, יוונית, תורכית ורוב השפות שמשתמשות ב-iso-8859-2)\n"
+"יפנית, סינית, קוריאנית, תאילנדית, יוונית, תורכית ורוב השפות שמשתמשות ב-"
+"iso-8859-2)\n"
"יעשה שימוש בקידוד הישן כברירת מחדל;\n"
"\n"
" * עבור שפות אחרות יעשה שימוש ביוניקוד כברירת מחדל;\n"
@@ -1343,10 +1441,11 @@ msgstr ""
" * אם נבחרו שתי שפות או יותר ושתי השפות אינן משתמשות באותו קידוד יעשה שימוש\n"
"ביוניקוד במערכת כולה;\n"
"\n"
-" * לסיום, ניתן להכריח שימוש ביוניקוד במערכת כולה לפי בקשת המשתמש על ידי בחירה\n"
+" * לסיום, ניתן להכריח שימוש ביוניקוד במערכת כולה לפי בקשת המשתמש על ידי "
+"בחירה\n"
"באפשרות \"%s\" באופן בלתי תלוי בשפות שנבחרו.\n"
"\n"
-"לתשומת ליבך - אין מגבלה על בחירת שפה נוספת בודדת. באפשרותך לבחור מספר שפות\n"
+"לתשומת לבך - אין מגבלה על בחירת שפה נוספת בודדת. באפשרותך לבחור מספר שפות\n"
"או אף את כולן על ידי בחירה בתיבת ה-\"%s\".\n"
"בחירה בתמיכה בשפה משמעותה שתרגומים, גופנים, בודקי איות וכיו\"ב גם הם יותקנו\n"
"עבור השפה שנבחרה.\n"
@@ -1360,7 +1459,12 @@ msgstr ""
msgid "Espanol"
msgstr "ספרדית"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1397,27 +1501,35 @@ msgid ""
"move your mouse about."
msgstr ""
"על פי רוב ל-DrakX אין בעיה לזהות את מספר הלחצנים בעכבר שלך.\n"
-"אם בכל זאת היתה בעיה ההנחה היא שיש לך עכבר עם שני לחצנים ויוגדר דימוי של לחצן שלישי\n"
-"דימוי הלחצן השלישי מתקבל על ידי לחיצה בו-זמנית של הלחצן הימני והלחצן השמאלי.\n"
+"אם בכל זאת הייתה בעיה ההנחה היא שיש לך עכבר עם שני לחצנים ויוגדר דימוי של "
+"לחצן שלישי\n"
+"דימוי הלחצן השלישי מתקבל על ידי לחיצה בו-זמנית של הלחצן הימני והלחצן "
+"השמאלי.\n"
"DrakX יזהה אוטומטית אם העכבר משתמש ב-PS/2, חיבור טורי או USB.\n"
"\n"
"אם יש לך עכבר עם שלושה לחצנים ללא גלגלת באפשרותך לבחור בעכבר \"%s\".\n"
-"במקרה זה drakX יגדיר את העכבר כך שניתן לדמות גלגלת באמצעותו. כדי לבצע את ההדמיה\n"
+"במקרה זה drakX יגדיר את העכבר כך שניתן לדמות גלגלת באמצעותו. כדי לבצע את "
+"ההדמיה\n"
"יש ללחוץ על הלחצן האמצעי ולהזיז את מצביע העכבר מלעלה ומטה.\n"
"\n"
-"אם מסיבה כלשהי ברצונך בהגדרת סוג עכבר שונה, ניתן לבחור אותו מהרשימה המסופקת.\n"
+"אם מסיבה כלשהי ברצונך בהגדרת סוג עכבר שונה, ניתן לבחור אותו מהרשימה "
+"המסופקת.\n"
"\n"
-"ניתן לבחור במובאה \"%s\" לבחירה בסוג עכבר \"נפוץ\" וזה יעבוד עם כל העכברים בקירוב.\n"
+"ניתן לבחור במובאה \"%s\" לבחירה בסוג עכבר \"נפוץ\" וזה יעבוד עם כל העכברים "
+"בקירוב.\n"
"\n"
"אם בחרת בעכבר שונה מברירת המחדל מסך בדיקה יוצג. ניתן להשתמש בלחצנים ובגלגלת\n"
-"כדי לודא שההגדרות נכונות ושהעכבר עובד באופן תקין. אם העכבר אינו עובד כיאות יש\n"
+"כדי לוודא שההגדרות נכונות ושהעכבר עובד באופן תקין. אם העכבר אינו עובד כיאות "
+"יש\n"
"ללחוץ על מקש הרווח או ה-Enter כדי לבטל את הבדיקה ולחזור לרשימת העכברים.\n"
"\n"
-"לעיתים עכברים עם גלגלת אינם מזוהים אוטומטית ויהיה עליך לבחור את העכבר מהרשימה.\n"
+"לעתים עכברים עם גלגלת אינם מזוהים אוטומטית ויהיה עליך לבחור את העכבר "
+"מהרשימה.\n"
"חשוב במקרה זה לבחור את העכבר בהתאם לשקע אליו הוא מחובר. אחרי בחירת העכבר\n"
-"ולחיצה על \"%s\" תוצג תמונת עכבר על המסך. יש לגלול את הגלגלת כדי לודא שהיא\n"
-"פועלת כיאות. עם גלילת הגלגלת יוצג כיוון התנועה על גבי המסך. יש לבדוק גם את לחצני\n"
-"העכבר ולודא שהנעתו מזיזה את הסמן."
+"ולחיצה על \"%s\" תוצג תמונת עכבר על המסך. יש לגלול את הגלגלת כדי לוודא שהיא\n"
+"פועלת כיאות. עם גלילת הגלגלת יוצג כיוון התנועה על גבי המסך. יש לבדוק גם את "
+"לחצני\n"
+"העכבר ולוודא שהנעתו מזיזה את הסמן."
#: ../help.pm:684
#, c-format
@@ -1435,85 +1547,11 @@ msgid ""
"Please select the correct port. For example, the \"COM1\" port under\n"
"Windows is named \"ttyS0\" under GNU/Linux."
msgstr ""
-"נא לבחור את היציאה הנכונה. לדוגמה, יציאה \"COM1\" תחת Windows תקרא, \"ttyS0"
-"\"\n"
+"נא לבחור את היציאה הנכונה. לדוגמה, יציאה \"COM1\" תחת Windows תקרא, "
+"\"ttyS0\"\n"
"תחת GNU/Linux."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"זוהי נקודת הבחירה החשובה ביותר לגבי אבטחת מערכת הגנו/לינוקס שלך:\n"
-"עליך להזין סיסמת \"root\". \"Root\" הוא מנהל המערכת והוא המשתמש היחיד שרשאי\n"
-"לבצע עידכונים, להוסיף משתמשים, לשנות את תצורת המערכת וכו'. בקיצור \"root\",\n"
-"המוכר גם כמשתמש העל במערכת, יכול לעשות הכל! זו הסיבה בגללה עליך לבחור סיסמה\n"
-"שיהיה קשה לנחשה. DrakX ינחה אותך אם הסיסמה שבחרת פשוטה מדי. כפי שראית\n"
-"אין עליך חובה להזין סיסמה אבל אנחנו ממליצים בחום רב לעשות כן. מערכת גנו/לינוקס\n"
-"חשופה לטעויות המפעיל כמו כל מערכת הפעלה אחרת. היות ו-\"root\" יכול לעבור כל\n"
-"מגבלה במערכת ועלול, שלא בכוונה תחילה, למחוק את כל המידע ממחיצות, פשוט על ידי\n"
-"גישה בהיסח הדעת למחיצות עצמן, חשוב שיהיה קשה להפוך ל-\"root\".\n"
-"\n"
-"על הסיסמה להיות צירוף של אותיות וספרות ובת לא פחות מ- 8 תווים. לעולם אין לכתוב את\n"
-"סיסמת משתמש העל -- הדבר עלול לסכן את אבטחת המערכת שלך.\n"
-"\n"
-"נקודת כשל חשובה: אין לבחור סיסמה ארוכה או מסובכת מדי היות וחובה עליך לזכור אותה!\n"
-"\n"
-"הסיסמה לא תוצג על המסך בזמן ההקלדה. כדי להקטין את הסיכוי של טעויות הקלדה יש\n"
-"להקליד את הסיסמה פעמיים. אם במקרה חזרת על אותה טעות הקלדה פעמיים יהיה עליך\n"
-"להשתמש באותה סיסמה \"שגויה\" בפעם הראשונה בה תבוצע התחברות כמשתמש-על.\n"
-"\n"
-"אם יש לך עניין בשרת אימות שיפקח על הגישה למשחב שלך שי להקיש על כפתור\n"
-"ה-\"%s\".\n"
-"\n"
-"אם הרשת שלך משתמשת ב-LDAP, NIS או בשירות PDC לזיהוי במתחם של חלונות יש לבחור\n"
-"את האפשרות המתאימה ל-\"%s\". אם אינך יודע באיזו אפשרות להשתמש עליך לשאול\n"
-"את מנהל הרשת שלך.\n"
-"\n"
-"אם יש לך בעיות לזכור סיסמאות או אם המחשב שלך לעולם לא יהיה מחובר לאינטרנט\n"
-"ויש לך ביטחון מלא בכל מי שעובדים איתו באפשרותך לבחור ב-\"%s\"."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "אימות"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1527,31 +1565,34 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
"know what you're doing."
msgstr ""
-"מנהל האתחול היא תוכנה קטנה המופעלת על ידי המחשב בזמן האיתחול. תוכנית זו אחראית\n"
-"לאיתחול המערכת כולה. על פי רוב התקנת מנהל האיתחול היא אוטומטית לחלוטין. DrakX\n"
-"ינתח את מקטע האיתחול בכונן ויפעל בהתאם לנמצא בו:\n"
-"\n"
-" * אם נמצא בו מקטע איתחול של חלונות הוא יוחלף עם מקטע איתחול של GRUB/LINO.\n"
-"באופן זהיהיה באפשרותך לבחור בטעינת גנו/לינוקס או כל מערכת הפעלה אחרת המותקנת\n"
+"מנהל האתחול היא תוכנה קטנה המופעלת על ידי המחשב בזמן האתחול. תכנית זו "
+"אחראית\n"
+"לאתחול המערכת כולה. על פי רוב התקנת מנהל האתחול היא אוטומטית לחלוטין. DrakX\n"
+"ינתח את מקטע האתחול בכונן ויפעל בהתאם לנמצא בו:\n"
+"\n"
+" * אם נמצא בו מקטע אתחול של חלונות הוא יוחלף עם מקטע אתחול של GRUB/LINO.\n"
+"באופן זהיהיה באפשרותך לבחור בטעינת גנו/לינוקס או כל מערכת הפעלה אחרת "
+"המותקנת\n"
"על המחשב שלך.\n"
"\n"
" * אם נמצא בו מקטע של GRUB או LILO הוא יוחלף עם אחד חדש.\n"
"\n"
-"אם DrakX אינו יכול לקבוע איפה למקם את מקטע האיתחול הוא ישאל אותך היכן ברצונך\n"
-"למקמו, על פי רוב ה-\"%s\" הוא המיקום הבטוח ביותר. בחירה ב-\"%s\" לא תתקין כל\n"
-"מנהל איתחול. יש לבחור באפשרות זו רק במקרה שידועות לך ההשלכות."
+"אם DrakX אינו יכול לקבוע איפה למקם את מקטע האתחול הוא ישאל אותך היכן ברצונך\n"
+"למקמו, על פי רוב ה-\"%s\" הוא המיקום הבטוח ביותר. בחירה ב-\"%s\" לא תתקין "
+"כל\n"
+"מנהל אתחול. יש לבחור באפשרות זו רק במקרה שידועות לך ההשלכות."
#: ../help.pm:745
-#, c-format
+#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1572,7 +1613,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"כעת עליך לבחור מנגנון הדפסה במערכת. מערכות הפעלה אחרות אפשרו לך\n"
@@ -1604,7 +1645,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "מצב מומחה"
@@ -1617,7 +1663,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1661,7 +1707,7 @@ msgstr ""
"ללחוץ על הכפתור ולבחור מנהל-התקן אחר."
#: ../help.pm:794
-#, c-format
+#, fuzzy, c-format
msgid ""
"As a review, DrakX will present a summary of information it has gathered\n"
"about your system. Depending on the hardware installed on your machine, you\n"
@@ -1684,11 +1730,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1706,8 +1747,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1724,20 +1764,25 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-"לסיכום DrakX יציג תקציר של המידע אותו הוא אסף אודות המערכת שלך. כתלות בחומרה\n"
-"המותקנת במכונה שלך יהיו לך את חלק או כל המובאות הבאות. כל מובאה בנויה מרכיב החומרה\n"
-"להגדרה ואחריו תקציר התצורה הנוכחית. יש ללחוץ על כפתרו ה-\"%s\" המתאים כדי לשנות.\n"
+"לסיכום DrakX יציג תקציר של המידע אותו הוא אסף אודות המערכת שלך. כתלות "
+"בחומרה\n"
+"המותקנת במכונה שלך יהיו לך את חלק או כל המובאות הבאות. כל מובאה בנויה מרכיב "
+"החומרה\n"
+"להגדרה ואחריו תקציר התצורה הנוכחית. יש ללחוץ על כפתרו ה-\"%s\" המתאים כדי "
+"לשנות.\n"
"\n"
" * \"%s\": בדיקת תצורת מיפוי המקלדת הנוכחית ושינויה במקרה הצורך.\n"
"\n"
-" * \"%s\": בדיקת בחירת המדינה הנוכחית. אם אינך במדינה זו יש להקיש על כפתור ה-\"%s\"\n"
-"ולבחור את המדינה המתאימה. אם המדינה שלך אינה ברשימה המוצגת עליך ללחוץ על כפתור\n"
+" * \"%s\": בדיקת בחירת המדינה הנוכחית. אם אינך במדינה זו יש להקיש על כפתור ה-"
+"\"%s\"\n"
+"ולבחור את המדינה המתאימה. אם המדינה שלך אינה ברשימה המוצגת עליך ללחוץ על "
+"כפתור\n"
"ה-\"%s\" לקבלת רשימת המדינות המלאה.\n"
"\n"
" * \"%s\": כברירת מחדל DrakX מסיק לגבי אזור הזמן לפי הגדרות המדינה שנבחרה.\n"
@@ -1749,7 +1794,8 @@ msgstr ""
"יש להיוועץ בפרק המתאים במדריך למתחילים למידע נוסף אודות האופן בו יש להגדיר\n"
"מדפסת חדשה. המנשק המוצג במדריך שלנו זהה לזה שבשימוש במהלך ההתקנה.\n"
"\n"
-" * \"%s\": אם זוהה כרטיס קולבמערכת שלך הוא יוצג כאן. אם הכרטיס המוצג אינו זה\n"
+" * \"%s\": אם זוהה כרטיס קולבמערכת שלך הוא יוצג כאן. אם הכרטיס המוצג אינו "
+"זה\n"
"שמותקן במערכת באפשרותך ללחוץ על הכפתור ולבחור התקן-הנע אחר.\n"
"\n"
" * \"%s\": אם יש לך כרטיס טלביזיה זהו המקום בו יוצג מידע אודות התצורה שלו.\n"
@@ -1762,16 +1808,20 @@ msgstr ""
"או \"1024x768\". אם הגדרות אלו אינן מתאימות לך יש ללחוץ על \"%s\" להגדרה\n"
"חדשה של המנשק הגרפי.\n"
"\n"
-" * \"%s\": אם ברצונך להגדיר את החיבור שלך לאינטרנט או לרשת המקומית ניתן לעשות\n"
+" * \"%s\": אם ברצונך להגדיר את החיבור שלך לאינטרנט או לרשת המקומית ניתן "
+"לעשות\n"
"זאת כעת. אפשר לפנות לתיעוד המודפס או למרכז הבקרה של מנדריבה-לינוקס אחרי\n"
"שההתקנה הסתימה כדי להנות ממלוא העזרה בתהליך זה.\n"
"\n"
-" * \"%s\": ניתן להגדיר את כתובות השרת המתווך (פרוקסי) ל- HTTP ו- FTP אם המכונה\n"
+" * \"%s\": ניתן להגדיר את כתובות השרת המתווך (פרוקסי) ל- HTTP ו- FTP אם "
+"המכונה\n"
"עליה מבוצעת ההתקנה תמוקם מאחורי שרת מתווך.\n"
"\n"
-" * \"%s\": מובאה זו מאפשרת לך להגדיר מחדש את רמת האבטחה כפי שנבחרה בשלב קודם.\n"
+" * \"%s\": מובאה זו מאפשרת לך להגדיר מחדש את רמת האבטחה כפי שנבחרה בשלב "
+"קודם.\n"
"\n"
-" * \"%s\": אם בכוונתך לחבר את המכונה שלך לאינטרנט יהיה זה רעיון טוב להגן על עצמך\n"
+" * \"%s\": אם בכוונתך לחבר את המכונה שלך לאינטרנט יהיה זה רעיון טוב להגן על "
+"עצמך\n"
"מחדירות על ידי הגדרת חומת-אש. יש להיוועץ בחלק המתאים במדריך למתחילים\n"
"לפרטים אודות הגדרות חומת האש.\n"
"\n"
@@ -1779,10 +1829,16 @@ msgstr ""
"אפשרות זו ראוי שתשמר למשתמשים מנוסים. יש להיוועץ בתיעוד המודפס או בעזרה\n"
"הזמינה לגבי תצורת מנהל האתחול במרכז הבקרה של מנדריבה-לינוקס.\n"
"\n"
-" * \"%s\": דרך מובאה זו באשפרותך לבצע כיוונון עדין של השירותים שיופעלו במכונה שלך.\n"
+" * \"%s\": דרך מובאה זו באשפרותך לבצע כיוונון עדין של השירותים שיופעלו "
+"במכונה שלך.\n"
"אם בכוונתך להשתמש במכונה זו כשרת יהיה זה רעיון טוב לסקור הגדרות אלו בקפדנות."
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "מודם ISDN "
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "מודם ISDN "
@@ -1793,10 +1849,10 @@ msgid "Graphical Interface"
msgstr "ממשק גרפי"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"עליך לבחור את הכונן הקשיח שברצונך למחוק על מנת לפנות מקום\n"
@@ -1807,12 +1863,14 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"עליך ללחוץ על %s אם ברצונך למחוק את כל המחיצות והמידע על כונן קשיח\n"
"זה. זהירות: אחרי לחיצה על \"%s\" אין דרך לשחזר את המחיצות והמידע\n"
@@ -1829,3 +1887,112 @@ msgstr "המשך ->"
msgid "<- Previous"
msgstr "<- קודם"
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": לחיצה על מקש ה-\"%s\" תפתח את אשף תצורת המדפסות\n"
+#~ "\n"
+#~ "יש לפנות אל הפרק המתאים ב''מדריך למתחילים'' למידע נוסף אודות האופן בו יש "
+#~ "להגדיר\n"
+#~ "מדפסת חדשה, המנשק המוצג במדריך שלנו זהה לזה בו משתמשים במהלך ההתקנה."
+
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "זוהי נקודת הבחירה החשובה ביותר לגבי אבטחת מערכת הגנו/לינוקס שלך:\n"
+#~ "עליך להזין סיסמת \"root\". \"Root\" הוא מנהל המערכת והוא המשתמש היחיד "
+#~ "שרשאי\n"
+#~ "לבצע עדכונים, להוסיף משתמשים, לשנות את תצורת המערכת וכו'. בקיצור \"root"
+#~ "\",\n"
+#~ "המוכר גם כמשתמש העל במערכת, יכול לעשות הכל! זו הסיבה בגללה עליך לבחור "
+#~ "סיסמה\n"
+#~ "שיהיה קשה לנחשה. DrakX ינחה אותך אם הסיסמה שבחרת פשוטה מדי. כפי שראית\n"
+#~ "אין עליך חובה להזין סיסמה אבל אנחנו ממליצים בחום רב לעשות כן. מערכת גנו/"
+#~ "לינוקס\n"
+#~ "חשופה לטעויות המפעיל כמו כל מערכת הפעלה אחרת. היות ו-\"root\" יכול לעבור "
+#~ "כל\n"
+#~ "מגבלה במערכת ועלול, שלא בכוונה תחילה, למחוק את כל המידע ממחיצות, פשוט על "
+#~ "ידי\n"
+#~ "גישה בהיסח הדעת למחיצות עצמן, חשוב שיהיה קשה להפוך ל-\"root\".\n"
+#~ "\n"
+#~ "על הסיסמה להיות צירוף של אותיות וספרות ובת לא פחות מ- 8 תווים. לעולם אין "
+#~ "לכתוב את\n"
+#~ "סיסמת משתמש העל -- הדבר עלול לסכן את אבטחת המערכת שלך.\n"
+#~ "\n"
+#~ "נקודת כשל חשובה: אין לבחור סיסמה ארוכה או מסובכת מדי היות וחובה עליך "
+#~ "לזכור אותה!\n"
+#~ "\n"
+#~ "הסיסמה לא תוצג על המסך בזמן ההקלדה. כדי להקטין את הסיכוי של טעויות הקלדה "
+#~ "יש\n"
+#~ "להקליד את הסיסמה פעמיים. אם במקרה חזרת על אותה טעות הקלדה פעמיים יהיה "
+#~ "עליך\n"
+#~ "להשתמש באותה סיסמה \"שגויה\" בפעם הראשונה בה תבוצע התחברות כמשתמש-על.\n"
+#~ "\n"
+#~ "אם יש לך עניין בשרת אימות שיפקח על הגישה למחשב שלך יש להקיש על כפתור\n"
+#~ "ה-\"%s\".\n"
+#~ "\n"
+#~ "אם הרשת שלך משתמשת ב-LDAP, NIS או בשירות PDC לזיהוי במתחם של חלונות יש "
+#~ "לבחור\n"
+#~ "את האפשרות המתאימה ל-\"%s\". אם אינך יודע באיזו אפשרות להשתמש עליך לשאול\n"
+#~ "את מנהל הרשת שלך.\n"
+#~ "\n"
+#~ "אם יש לך בעיות לזכור סיסמאות או אם המחשב שלך לעולם לא יהיה מחובר "
+#~ "לאינטרנט\n"
+#~ "ויש לך ביטחון מלא בכל מי שעובדים אתו באפשרותך לבחור ב-\"%s\"."
+
+#~ msgid "authentication"
+#~ msgstr "אימות"
diff --git a/perl-install/install/help/po/hi.po b/perl-install/install/help/po/hi.po
index 42bd30982..f44d14888 100644
--- a/perl-install/install/help/po/hi.po
+++ b/perl-install/install/help/po/hi.po
@@ -6,10 +6,11 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX-hi\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2004-04-04 21:54+0530\n"
"Last-Translator: धनञ्जय शर्मा (Dhananjaya Sharma) <dysxhi@yahoo.co.in>\n"
"Language-Team: हिन्दी (Hindi) <dysxhi@yahoo.co.in>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -17,10 +18,10 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
@@ -100,8 +101,8 @@ msgstr ""
"\n"
"जब आप \"%s\" पर क्लिक करते है, तब आप अन्य उपयोगकर्ताओं को जोड़ सकते है। अपने मित्रों में "
"से\n"
-"हर एक के लिए, एक उपयोगकर्ता को जोड़ें । उदाहरण हेतु अपने पिता या अपनी बहन के लिए । \"%"
-"s\"\n"
+"हर एक के लिए, एक उपयोगकर्ता को जोड़ें । उदाहरण हेतु अपने पिता या अपनी बहन के लिए । "
+"\"%s\"\n"
"पर क्लिक करें जब आप उपयोगकर्ताओं का जोड़ना समाप्त कर लें ।\n"
"\n"
"\"%s\" बटन पर क्लिक करके आप डिफ़ाल्ट \"shell\" को उस उपयोगकर्ता के लिए\n"
@@ -116,13 +117,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "क्या आप इस लक्षण का उपयोग करना चाहते है?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -132,24 +144,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"आपकी हार्ड डिस्क पर खोजे गये विद्यमान लिनक्स विभाजनों की यह सूची है । \n"
@@ -159,8 +175,8 @@ msgstr ""
" चयन ना करें अन्यथा आप इस पर अधिक सॉफ़्टवेयर को संसाधित नहीं कर पायेगें । यदि आप अपनी\n"
"सूचनाओं को एक अलग विभाजन पर सुरक्षित रखने चाहते है, तो आपको एक होम \"/home\" विभाजन "
"का \n"
-"भी निर्माण करना होगा (तभी सम्भव है यदि आपके पास एक से अधिक लिनक्स विभाजन उपलब्ध हो)"
-"।\n"
+"भी निर्माण करना होगा (तभी सम्भव है यदि आपके पास एक से अधिक लिनक्स विभाजन उपलब्ध "
+"हो)।\n"
"\n"
"प्रत्येक विभाजन निम्न तौर पर सूचीबद्ध है: \"नाम\", \"क्षमता\"।\n"
"\n"
@@ -189,7 +205,7 @@ msgstr ""
#: ../help.pm:88
#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
@@ -203,12 +219,11 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -221,8 +236,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -337,10 +351,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -400,20 +414,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "स्वतः अधिनताऐं"
-#: ../help.pm:186
-#, fuzzy, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": \"%s\" बटन पर क्लिक करने से प्रिंटर संरचना विज़ार्ड खुल जायेगा।\n"
-"एक नवीन प्रिंटर को स्थापित कैसे किया जायें इस विषय में और अधिक \n"
-"जानकारी प्राप्त करने हेतु स्टार्टर निर्देशिका में अनुरूप पाठ को देखें । वहाँ प्रस्तुत \n"
-"किया हुआ इन्टरफ़ेस वही है जिसका की उपयोग संसाधन के दौरान किया गया है।"
-
-#: ../help.pm:192
+#: ../help.pm:185
#, fuzzy, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -483,7 +484,12 @@ msgstr ""
"चयन सबसे अच्छा है । यह विकल्प वास्तव में एक ऐसे समय सर्वर को संसाधित करता है जिसका \n"
"उपयोग आपके स्थानीय नेटवर्क पर स्थित अन्य मशीनों के द्वारा भी किया जा सकता है।"
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "स्वत: समय एकसारीकरण"
@@ -518,7 +524,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -693,39 +699,43 @@ msgstr ""
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -734,15 +744,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -761,7 +771,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "विद्यमान विभाजन को उपयोग करें"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "सम्पूर्ण डिस्क को मिटायें"
@@ -809,7 +824,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "स्वतः-संसाधन फ़्लापी का निर्माण"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -829,7 +859,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -838,7 +868,7 @@ msgstr ""
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -861,7 +891,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -877,21 +907,24 @@ msgstr "सुरक्षा प्रबंधक"
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -907,21 +940,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -938,57 +973,82 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "रीमूव किये जाने जाने योग्य माध्यम का स्वत: आरोहण"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "सामान्य/विशेषज्ञ विधा के मध्य में आना-जाना"
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"आपकी हार्ड डिस्क पर एक से अधिक माइक्रोसाफ़्ट विभाजनों को खोजा गया है । \n"
@@ -1041,23 +1101,23 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
#: ../help.pm:594
@@ -1098,8 +1158,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1131,7 +1190,12 @@ msgstr ""
msgid "Espanol"
msgstr "Espanol"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1187,53 +1251,7 @@ msgstr ""
"कृपया सही पोर्ट का चयन करें । उदाहरण हेतु, विण्डो के अन्तर्गत \"COM1\" पोर्ट को\n"
"जीएनयू/लिनक्स के अन्तर्गत \"ttyS0\" के रूप में जाना जाता है ।"
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "प्रमाणीकरण"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, fuzzy, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1247,7 +1265,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1274,7 +1292,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1295,7 +1313,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
@@ -1304,7 +1322,12 @@ msgstr ""
msgid "pdq"
msgstr "पी०डी०क्यू०"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "विशेषज्ञ"
@@ -1317,7 +1340,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1368,11 +1391,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1390,8 +1408,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1408,14 +1425,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "आई०एस०डी०एन० कार्ड"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "आई०एस०डी०एन० कार्ड"
@@ -1426,10 +1448,10 @@ msgid "Graphical Interface"
msgstr "सचित्र इन्टरफ़ेस"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"उस हार्ड ड्राइव का चयन करें जिसे आप अपने नवीन मैनड्रिव लिनक्स विभाजन के संसाधन के लिए \n"
@@ -1440,12 +1462,14 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"\"%s\" पर क्लिक करें, यदि आप इस हार्ड ड्राइव पर स्थित सभी सूचनाओं व विभाजनों को\n"
"मिटाना चाहते है । सावधान रहें, \"%s\" पर क्लिक करने के उपरान्त, \n"
@@ -1465,3 +1489,20 @@ msgstr "अगला ->"
msgid "<- Previous"
msgstr "<- पिछला"
+#, fuzzy
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": \"%s\" बटन पर क्लिक करने से प्रिंटर संरचना विज़ार्ड खुल जायेगा।\n"
+#~ "एक नवीन प्रिंटर को स्थापित कैसे किया जायें इस विषय में और अधिक \n"
+#~ "जानकारी प्राप्त करने हेतु स्टार्टर निर्देशिका में अनुरूप पाठ को देखें । वहाँ प्रस्तुत \n"
+#~ "किया हुआ इन्टरफ़ेस वही है जिसका की उपयोग संसाधन के दौरान किया गया है।"
+
+#~ msgid "authentication"
+#~ msgstr "प्रमाणीकरण"
diff --git a/perl-install/install/help/po/hr.po b/perl-install/install/help/po/hr.po
index 569f2734c..aacd0c630 100644
--- a/perl-install/install/help/po/hr.po
+++ b/perl-install/install/help/po/hr.po
@@ -5,27 +5,28 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX 0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2005-01-04 21:25+CET\n"
"Last-Translator: auto\n"
"Language-Team: Croatian <lokalizacija@linux.hr>\n"
+"Language: hr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;;\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;;\n"
"X-Generator: TransDict server\n"
#: ../help.pm:14
#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Prije nastavka trebate pažljivo pročitati stavke licence. Ona\n"
-"pokriva cijelu Mandriva Linux distribuciju, i ako se ne slažete u svim\n"
+"pokriva cijelu Mageia distribuciju, i ako se ne slažete u svim\n"
"stavkama sadržanih u njoj, kliknite na \"Odbij\" gumb koji će automatski\n"
"završiti instalaciju. Za nastavak instalacije, kliknite na\n"
"\"Prihvati\" gumb."
@@ -106,6 +107,16 @@ msgstr ""
"korisnika (bash je predodređen)."
#: ../help.pm:54
+#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
#, fuzzy, c-format
msgid "Do you want to use this feature?"
msgstr "Da li želite koristiti aboot?"
@@ -113,7 +124,8 @@ msgstr "Da li želite koristiti aboot?"
#: ../help.pm:57
#, fuzzy, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -123,24 +135,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Gore su popisane postojeće Linux particije pronađene na\n"
@@ -185,13 +201,13 @@ msgstr ""
#: ../help.pm:88
#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Mandriva Linux instalacija je proširena na nekoliko CDROMova. DrakX\n"
+"Mageia instalacija je proširena na nekoliko CDROMova. DrakX\n"
"zna ukoliko se odabrani paket nalazi na drugom CDROMu i izbaciti će\n"
"trenutni CD i pitati vas da ubacite drugi koji je potreban."
@@ -199,12 +215,11 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -217,8 +232,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -346,10 +360,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -389,14 +403,12 @@ msgstr ""
"grupi,\n"
"bit ćete upitani da potvrdite da li želite stvarno instalirati te "
"poslužitelje.\n"
-"Kod Mandriva Linuxa, svi instalirani poslužitelji se pokreću prilikom "
-"podizanja\n"
+"Kod Mageiaa, svi instalirani poslužitelji se pokreću prilikom podizanja\n"
"sustava. Čak iako su sigurni, bez poznatih problema u vrijeme izlaska "
"distribucije,\n"
"može se dogoditi da se otkriju sigurnosne rupe nakon zgotovljenja ove "
"inačice\n"
-"Mandriva Linuxa. Ako ne znate što bi pojedini servis trebao raditi ili "
-"zašto \n"
+"Mageiaa. Ako ne znate što bi pojedini servis trebao raditi ili zašto \n"
"se instalira, pritisnite \"Ne\". Pritiskanjem na \"Da\"instalirat će se "
"navedeni\n"
"servisi i pokretat će se automatski. !!\n"
@@ -420,16 +432,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Automatske ovisnosti"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-
-#: ../help.pm:192
+#: ../help.pm:185
#, fuzzy, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -500,7 +503,12 @@ msgstr ""
"vaše računalo kojeg, opcionalno, mogu koristiti druga računala u vašoj\n"
"lokalnoj mreži."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, fuzzy, c-format
msgid "Automatic time synchronization"
msgstr "Automatska vremenska sinkronizacija (koristeći NTP)"
@@ -535,7 +543,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -640,39 +648,43 @@ msgstr ""
#: ../help.pm:319
#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -681,15 +693,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -703,12 +715,11 @@ msgid ""
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
"U ovom trenutku, trebate izabrati gdje ćete instalirati vaš\n"
-"Mandriva Linux operativni sustav na vašem tvrdom disku. Ukoliko je prazan "
-"ili \n"
+"Mageia operativni sustav na vašem tvrdom disku. Ukoliko je prazan ili \n"
"ako postojeći operativni sustav koristi čitav prostor na disku, trebate ga\n"
"particionirati. Jednostavno, particioniranje hard diska sastoji se od\n"
"logičkog dijeljenja kako bi napravili prostor za instalaciju vašeg novog\n"
-"Mandriva Linux sustava.\n"
+"Mageia sustava.\n"
"\n"
"Zato što su posljedice procesa particioniranja obično nepovratne,\n"
"particioniranje može biti strašno i stresno ukoliko ste korisnik bez "
@@ -717,7 +728,7 @@ msgstr ""
"upute i uzmite vremena koliko vam je potrebno.\n"
"\n"
"Ako ste pokrenuli instalaciju u modu za stručnjake, ući ćete u DiskDrake,\n"
-"Mandriva Linuxov alat za particioniranje, s kojim možete fino podešavati\n"
+"Mageiaov alat za particioniranje, s kojim možete fino podešavati\n"
"particije. Pogledajte DiskDrake odjeljak u ``User Guide''.\n"
"Iz sučelja instalacije možete koristiti čarobnjake koji su ovdje opisani\n"
"pritiskom na \"Čarobnjak\" dugme.\n"
@@ -740,7 +751,7 @@ msgstr ""
" * \"Obriši cijeli disk\": ukoliko želite obrisati sve podatke i sve "
"particije\n"
"koje postoje na vašem hard disku i zamjeniti ih sa\n"
-"vašim novim Mandriva Linux sustavom, možete izabrati ovu opciju. Budite\n"
+"vašim novim Mageia sustavom, možete izabrati ovu opciju. Budite\n"
"pažljivi sa ovim rješenjem, nećete moći\n"
"povratiti vaš izbor nakon potvrde.\n"
"\n"
@@ -755,7 +766,7 @@ msgstr ""
"Microsoft Windows particije. Mijenjanje veličine može se obaviti bez\n"
"gubitka bilo kakvih podataka, ako prethodno defragmentirate Windows "
"particiju.\n"
-"Ovo rješenje je preporučeno ukoliko želite koristiti zajedno Mandriva Linux\n"
+"Ovo rješenje je preporučeno ukoliko želite koristiti zajedno Mageia\n"
"i Microsoft Windows-e na istom računalu.\n"
"\n"
" Prije izabiranja ovog rješenja, molimo shvatite da će veličina vaše "
@@ -780,7 +791,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Koristi postojeće particije"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Obriši cijeli disk"
@@ -865,7 +881,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Napravi auto instalacijsku disketu"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -885,7 +916,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -911,7 +942,7 @@ msgstr ""
"Pritisnite na \"U redu\" kada ste spremni za formatiranje particije.\n"
"\n"
"Pritisnite na \"Odustani\" kada želite izabrati druge particije za\n"
-"instalaciju vašeg novog Mandriva Linux operativnog sustava.\n"
+"instalaciju vašeg novog Mageia operativnog sustava.\n"
"\n"
"Pritisnite na \"Napredno\" ako želite izabrati particije koje će biti\n"
"provjeravane radi loših blokova (bad blocks)."
@@ -919,7 +950,7 @@ msgstr ""
#: ../help.pm:437
#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -931,7 +962,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Dok instalirate Mandriva Linux, moguće je da su neki paketi već nadograđeni\n"
+"Dok instalirate Mageia, moguće je da su neki paketi već nadograđeni\n"
"od prvotne inačice. Neki bugovi su možda uklonjeni, i sigurnost poboljšana.\n"
"Da bi iskoristili prednosti tih nadogradnji, predloženo vam je da ih\n"
"skinete s Interneta. Izaberite \"Da\" ako ste povezani s Internetom, ili \"Ne"
@@ -954,7 +985,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -980,21 +1011,24 @@ msgstr "Udaljeno administriranje"
#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1010,21 +1044,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1041,18 +1077,12 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"U ovoj točki instalacije, trebate izabrati koje partiticije ćete koristiti "
"za\n"
-"instalaciju vašeg novog Mandriva Linux sustava. Ukoliko su\n"
+"instalaciju vašeg novog Mageia sustava. Ukoliko su\n"
"particije već definirane (iz prethodne instalacije GNU/Linux-a ili iz\n"
"drugih particijskih alata), možete koristiti postojeće particije. Inače,\n"
"moraju biti definirane.\n"
@@ -1112,19 +1142,38 @@ msgstr ""
"\n"
"Za informacije o raznim dostupnim datotečnim sustavima, pročitajte ext2fs\n"
"poglavlje u ``Reference Manual''\n"
-"\n"
-"Ukoliko instalirate na PPC računalo, željet ćete napraviti malu HFS\n"
-"'bootstrap' particiju od najmanje 1MB koju će koristiti\n"
-"yaboot bootloader. Ukoliko se odlučite za pravljenje malo veće \n"
-"particije, recimo 50MB, možete ju pronaći korisnom za stavljanje\n"
-"dodatnog kernela i ramdisk slike u slučaju nužde."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, fuzzy, c-format
msgid "Removable media auto-mounting"
msgstr "Automatsko montiranje prenosivog medija"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, fuzzy, c-format
msgid "Toggle between normal/expert mode"
msgstr "Prebaci u normalni mod"
@@ -1132,40 +1181,46 @@ msgstr "Prebaci u normalni mod"
#: ../help.pm:536
#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Više od jedne Microsoft Windows particije su pronađene\n"
"na vašem hard disku. Molimo izaberite jednu kojoj želite promjeniti "
"veličinu\n"
-"kako bi instalirali vaš novi Mandriva Linux operativni sustav.\n"
+"kako bi instalirali vaš novi Mageia operativni sustav.\n"
"\n"
"Svaka je particija popisana kako slijedi; \"Linux ime\", \"Windows ime\"\n"
"\"Kapacitet\".\n"
@@ -1210,23 +1265,23 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
#: ../help.pm:594
@@ -1277,8 +1332,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1325,7 +1379,12 @@ msgstr ""
msgid "Espanol"
msgstr "Espanol"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, fuzzy, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1395,99 +1454,7 @@ msgstr ""
"Molim odaberite ispravni port. Na primjer, COM1 port pod MS Windowsima\n"
"se, pod GNU/Linuxom zove \"ttyS0\"."
-#: ../help.pm:691
-#, fuzzy, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Ovo je najvažnija odluka za sigurnost vašeg GNU/Linux sustava: morate "
-"unijeti\n"
-"\"root\" lozinku. \"root\" je sustavski administrator i jedini koji je "
-"ovlašten\n"
-"da vrši nadogradnje, dodaje korisnike, mijenja cjelokupne postavke sustava, "
-"itd.\n"
-"Ukratko, \"root\" može raditi sve! Stoga morate izabrati lozinku koju je "
-"teško\n"
-"pogoditi, DrakX će vam reći da li je prelagana. Kao što vidite, možete "
-"odabrati\n"
-"da ne unesete lozinku, ali jako vam savjetujemo da to ne činite, barem zbog\n"
-"jednog razloga: nemojte mislite da, zbog tog što ste pokrenuli GNU/Linux, su "
-"vaši\n"
-"ostali operacijski sustavi sigurni od grešaka. Pošto \"root\" može "
-"premostiti\n"
-"sva ograničenja i nenamjerno obrisati sve podatke na particijama nemarnim "
-"pristupanjem,\n"
-"važno je da bude teško postati \"root\".\n"
-"\n"
-"Lozinka bi trebala biti kombinacija alfanumeričkih znakova i barem 8 znakova "
-"duga.\n"
-"Nikad ne zapisujte \"root\" lozinku, prelako dovodite sustav u opasnost.\n"
-"\n"
-"Ipak, nemojte izabrati predugu ili presloženu lozinku, jer ćete je morati "
-"lako\n"
-"zapamtiti.\n"
-"\n"
-"Lozinka se neće pojaviti na ekranu kako je budete upisivali. Zato je morate\n"
-"upisati dvaput da bi smanjili mogućnost greške pri upisu. Ako ipak ponovite "
-"istu\n"
-"grešku dva puta, morat ćete koristiti ovu \"netočnu\" lozinku kada se prvi "
-"put\n"
-"budete prijavljivali.\n"
-"\n"
-"U stručnjak modu, bit ćete zapitani da li ćete se spajati na "
-"autentifikacijski\n"
-"poslužitelj, poput NISa ili LDAPa.\n"
-"\n"
-"Ako vaša mreža koristi LDAP (ili NIS) protokole za autentifikaciju, "
-"izaberite\n"
-"\"LDAP\" (ili \"NIS\") kao autentifikaciju. Ako ne znate kako, pitajte\n"
-"administratora mreže.\n"
-"\n"
-"Ako vaše računalo nije povezano sa administriranom mrežom, morat ćete "
-"izabrati\n"
-"\"Lokalne datoteke\" za autentifikaciju."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "ovjera"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1501,7 +1468,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1512,7 +1479,7 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1533,12 +1500,12 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Ovdje biramo sustav za ispis za vaše računalo. Drugi OSovi možda nude "
"jedan,\n"
-"ali Mandriva Linux nudi tri.\n"
+"ali Mageia nudi tri.\n"
"\n"
" * \"pdq\", što znači ``print, do not queue'' (ispiši, bez stavljanja u "
"red), je\n"
@@ -1578,7 +1545,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Stručnjak"
@@ -1591,7 +1563,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1662,11 +1634,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1684,8 +1651,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1702,14 +1668,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "ISDN kartica"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN kartica"
@@ -1722,24 +1693,26 @@ msgstr "X kod pokretanja sustava"
#: ../help.pm:861
#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"Izaberite hard disk kojeg želite obrisati kako bi instalirali vašu\n"
-"novu Mandriva Linux particiju. Budite pažljivi, svi postojeći podaci\n"
+"novu Mageia particiju. Budite pažljivi, svi postojeći podaci\n"
"biti će izgubljen i neće se moći povratiti!"
#: ../help.pm:866
#, fuzzy, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Izaberite \"U redu\" ukoliko želite obrisati sve podatke i\n"
"postojeće particije na navedenom tvrdom disku. Budite pažljivi, nakon\n"
@@ -1760,3 +1733,106 @@ msgstr "Slijedeće ->"
msgid "<- Previous"
msgstr "<- Prijašnje"
+#, fuzzy
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "Ovo je najvažnija odluka za sigurnost vašeg GNU/Linux sustava: morate "
+#~ "unijeti\n"
+#~ "\"root\" lozinku. \"root\" je sustavski administrator i jedini koji je "
+#~ "ovlašten\n"
+#~ "da vrši nadogradnje, dodaje korisnike, mijenja cjelokupne postavke "
+#~ "sustava, itd.\n"
+#~ "Ukratko, \"root\" može raditi sve! Stoga morate izabrati lozinku koju je "
+#~ "teško\n"
+#~ "pogoditi, DrakX će vam reći da li je prelagana. Kao što vidite, možete "
+#~ "odabrati\n"
+#~ "da ne unesete lozinku, ali jako vam savjetujemo da to ne činite, barem "
+#~ "zbog\n"
+#~ "jednog razloga: nemojte mislite da, zbog tog što ste pokrenuli GNU/Linux, "
+#~ "su vaši\n"
+#~ "ostali operacijski sustavi sigurni od grešaka. Pošto \"root\" može "
+#~ "premostiti\n"
+#~ "sva ograničenja i nenamjerno obrisati sve podatke na particijama nemarnim "
+#~ "pristupanjem,\n"
+#~ "važno je da bude teško postati \"root\".\n"
+#~ "\n"
+#~ "Lozinka bi trebala biti kombinacija alfanumeričkih znakova i barem 8 "
+#~ "znakova duga.\n"
+#~ "Nikad ne zapisujte \"root\" lozinku, prelako dovodite sustav u opasnost.\n"
+#~ "\n"
+#~ "Ipak, nemojte izabrati predugu ili presloženu lozinku, jer ćete je morati "
+#~ "lako\n"
+#~ "zapamtiti.\n"
+#~ "\n"
+#~ "Lozinka se neće pojaviti na ekranu kako je budete upisivali. Zato je "
+#~ "morate\n"
+#~ "upisati dvaput da bi smanjili mogućnost greške pri upisu. Ako ipak "
+#~ "ponovite istu\n"
+#~ "grešku dva puta, morat ćete koristiti ovu \"netočnu\" lozinku kada se "
+#~ "prvi put\n"
+#~ "budete prijavljivali.\n"
+#~ "\n"
+#~ "U stručnjak modu, bit ćete zapitani da li ćete se spajati na "
+#~ "autentifikacijski\n"
+#~ "poslužitelj, poput NISa ili LDAPa.\n"
+#~ "\n"
+#~ "Ako vaša mreža koristi LDAP (ili NIS) protokole za autentifikaciju, "
+#~ "izaberite\n"
+#~ "\"LDAP\" (ili \"NIS\") kao autentifikaciju. Ako ne znate kako, pitajte\n"
+#~ "administratora mreže.\n"
+#~ "\n"
+#~ "Ako vaše računalo nije povezano sa administriranom mrežom, morat ćete "
+#~ "izabrati\n"
+#~ "\"Lokalne datoteke\" za autentifikaciju."
+
+#~ msgid "authentication"
+#~ msgstr "ovjera"
diff --git a/perl-install/install/help/po/hu.po b/perl-install/install/help/po/hu.po
index be666a2c9..dd53fab85 100644
--- a/perl-install/install/help/po/hu.po
+++ b/perl-install/install/help/po/hu.po
@@ -8,10 +8,11 @@ msgid ""
msgstr ""
"Project-Id-Version: hu\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2006-03-05 14:45+0100\n"
"Last-Translator: Arpad Biro\n"
"Language-Team: Hungarian\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -19,15 +20,15 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Mielőtt továbblépne, olvassa át alaposan a licencegyezményt, amely az\n"
-"egész Mandriva Linux disztribúcióra érvényes. Ha elfogadja az abban\n"
+"egész Mageia disztribúcióra érvényes. Ha elfogadja az abban\n"
"szereplő feltételeket, akkor jelölje be a(z) \"%s\" opciót.\n"
"Ha nem fogadja el valamelyik feltételt, akkor kattintson a(z)\n"
"\"%s\" gombra - ezzel újraindítja a számítógépet."
@@ -115,13 +116,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Szeretné használni ezt a lehetőséget?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -131,24 +143,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Itt láthatók a lemezen talált, már létező linuxos partíciók.\n"
@@ -184,31 +200,29 @@ msgstr ""
"SCSI-azonosító\", ..."
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"A Mandriva Linux telepítőanyag több CD-n helyezkedik el. Ha egy "
-"kiválasztott\n"
+"A Mageia telepítőanyag több CD-n helyezkedik el. Ha egy kiválasztott\n"
"csomag egy másik CD-n található, akkor a telepítő kiadja az\n"
"aktuális CD-t, és megkéri Önt, hogy helyezze be a megfelelőt.\n"
"Ha a szóban forgó lemez nincs kéznél, akkor kattintson a(z) \"%s\" gombra,\n"
"így az adott csomagok nem lesznek telepítve."
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -221,8 +235,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -260,10 +273,10 @@ msgid ""
"megabytes."
msgstr ""
"Most meg kell adnia, mely programokat kívánja telepíteni a rendszerére.\n"
-"Több ezer program létezik Mandriva Linuxhoz; a kezelésük megkönnyítése\n"
+"Több ezer program létezik Mageiahoz; a kezelésük megkönnyítése\n"
"érdekében a programok (hasonlóság alapján) csoportokba lettek sorolva.\n"
"\n"
-"A Mandriva Linux rendszerben négy előredefiniált csomagkategória van\n"
+"A Mageia rendszerben négy előredefiniált csomagkategória van\n"
"meghatározva. A különböző kategóriákban levő csomagok keverhetők is,\n"
"tehát egy \"Munkaállomás\" típusú telepítés tartalmazhat olyan\n"
"alkalmazásokat is, amelyek csak a \"Kiszolgáló\" kategóriában vannak\n"
@@ -330,7 +343,7 @@ msgid "Truly minimal install"
msgstr "Valóban minimális telepítés"
#: ../help.pm:152
-#, c-format
+#, fuzzy, c-format
msgid ""
"If you choose to install packages individually, the installer will present\n"
"a tree containing all packages classified by groups and subgroups. While\n"
@@ -343,10 +356,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -377,7 +390,7 @@ msgstr ""
"Ha kiszolgálócsomagok is ki lettek választva - akár közvetlenül, akár\n"
"bizonyos csoportok tagjaként -, a telepítő megerősítést kér Öntől arra\n"
"vonatkozóan, hogy valóban telepíteni kívánja-e azon kiszolgálószoftvereket.\n"
-"A Mandriva Linux rendszerben alapértelmezésben az összes feltelepített\n"
+"A Mageia rendszerben alapértelmezésben az összes feltelepített\n"
"szolgáltatás elindításra kerül a rendszer indulásakor. Még ha azok\n"
"biztonságosak is illetve nem rendelkeznek ismert problémákkal, akkor is\n"
"előfordulhat, hogy utóbb biztonsági problémák merülnek fel velük\n"
@@ -409,20 +422,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Automatikus függőségek"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": a(z) \"%s\" gombra kattintva elindul a nyomtatóbeállítási\n"
-"varázsló. Nyomtatóbeállítással kapcsolatos további információkat a\n"
-"felhasználói kézikönyvből lehet szerezni. Az ott bemutatott felület hasonló\n"
-"ahhoz, ami a telepítéskor megjelenik."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -488,7 +488,12 @@ msgstr ""
"levőt válasszon. Ez a funkció feltelepít az Ön gépére egy időkiszolgálót,\n"
"amelyet a helyi hálózat többi gépe is használhat."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Automatikus időszinkronizáció"
@@ -516,11 +521,11 @@ msgstr ""
"illetve a nélkül -, akkor kiválaszthatja az Önnek leginkább megfelelőt."
#: ../help.pm:234
-#, c-format
+#, fuzzy, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -575,7 +580,7 @@ msgid ""
"not successful in getting the display configured."
msgstr ""
"Az X (teljes néven: X Window System) a Linux grafikus felületét nyújtó\n"
-"rendszer. A Mandriva Linuxban levő grafikus környezetek (KDE, GNOME,\n"
+"rendszer. A Mageiaban levő grafikus környezetek (KDE, GNOME,\n"
"AfterStep, WindowMaker, ...) ezen grafikus rendszert használják.\n"
"\n"
"Egy listát fog látni az elérhető paraméterekről, amelyekkel optimalizálható\n"
@@ -694,41 +699,45 @@ msgstr ""
"lehetőséget érdemes választani."
#: ../help.pm:319
-#, c-format
+#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -737,15 +746,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -758,12 +767,11 @@ msgid ""
"experience. For more instructions on how to use the DiskDrake utility,\n"
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
-"Ebben a lépésben kell megadni, hogy a Mandriva Linux telepítése a "
-"merevlemez\n"
+"Ebben a lépésben kell megadni, hogy a Mageia telepítése a merevlemez\n"
"melyik részére történjen. Ha a lemez még teljesen üres, vagy a korábban\n"
"telepített operációs rendszer(ek) miatt nincs elég szabad hely, akkor újra\n"
"kell partícionálni a lemezt. A partícionálás a lemezterület logikai\n"
-"újrafelosztását jelenti - erre a Mandriva Linux telepítéséhez szükséges\n"
+"újrafelosztását jelenti - erre a Mageia telepítéséhez szükséges\n"
"hely létrehozása érdekében van szükség.\n"
"\n"
"A partícionálás veszélyes művelet. Hiba esetén adatvesztéssel járhat\n"
@@ -795,7 +803,7 @@ msgstr ""
"Az átméretezés végrehajtható a lemezen levő adatok\n"
"elvesztése nélkül - feltéve, hogy azt megelőzően töredezettségmentesítve\n"
"lett a kérdéses partíció. Javasolt továbbá az adatok mentése is.\n"
-"Ezen módszer a javasolt abban az esetben, ha a Mandriva Linuxot és a\n"
+"Ezen módszer a javasolt abban az esetben, ha a Mageiaot és a\n"
"Windowst ugyanazon a gépen szeretné használni.\n"
"\n"
"Ha ezt a lehetőséget választja, ne feledkezzen meg arról, hogy ennek\n"
@@ -830,7 +838,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Már létező partíció használata"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "A teljes lemez törlése"
@@ -895,7 +908,7 @@ msgstr ""
"\n"
"Ez a lehetőség jól használható akkor, amikor nagyobb számú azonos gépre\n"
"kell a rendszert feltelepíteni. Az automatikus telepítéssel\n"
-"kapcsolatban a Mandriva Linux honlapján találhatók további információk.\n"
+"kapcsolatban a Mageia honlapján találhatók további információk.\n"
"\n"
" - \"%s\"(*): elmenti a telepítés során\n"
"kiválasztott csomagok listáját. Ha egy újabb telepítés alkalmával fel\n"
@@ -915,8 +928,23 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Automatikus telepítőfloppy készítése"
-#: ../help.pm:415
+#: ../help.pm:405
#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
+#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -935,7 +963,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -957,15 +985,15 @@ msgstr ""
"Kattintson a(z) \"%s\" gombra a formázások megkezdéséhez.\n"
"\n"
"Kattintson a(z) \"%s\" gombra, ha más partícióra szeretné telepíteni a\n"
-"Mandriva Linux operációs rendszert.\n"
+"Mageia operációs rendszert.\n"
"\n"
"Kattintson a(z) \"%s\" gombra, ha bizonyos partíciókat ellenőriztetni\n"
"kíván (hibás blokkok keresése)."
#: ../help.pm:437
-#, c-format
+#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -977,7 +1005,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Lehetséges, hogy amikor Ön a Mandriva Linux rendszert telepíti, már\n"
+"Lehetséges, hogy amikor Ön a Mageia rendszert telepíti, már\n"
"frissítésre kerültek bizonyos csomagok a rendszer kiadása óta.\n"
"Elképzelhető, hogy bizonyos hibák ki lettek javítva, illetve\n"
"hogy meg lettek oldva bizonyos felmerült biztonsági problémák. Ezeket\n"
@@ -994,7 +1022,7 @@ msgstr ""
"csomagokat telepíteni, akkor a(z) \"%s\" gombot nyomja le."
#: ../help.pm:450
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -1003,7 +1031,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1016,7 +1044,7 @@ msgstr ""
"\n"
"Ha nem biztos benne, hogy mit volna érdemes választani, akkor válassza\n"
"az alapértelmezés szerinti lehetőséget. A biztonsági szint később is\n"
-"módosítható a Mandriva Linux Vezérlőközpontban elérhető \"draksec\"\n"
+"módosítható a Mageia Vezérlőközpontban elérhető \"draksec\"\n"
"eszközzel.\n"
"\n"
"A(z) \"%s\" mezőben megadandó a biztonságért felelős személy email-címe.\n"
@@ -1028,24 +1056,27 @@ msgid "Security Administrator"
msgstr "Biztonsági adminisztrátor"
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1061,21 +1092,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1092,16 +1125,10 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-"Ebben a lépésben kell kiválasztani a Mandriva Linux rendszer telepítéséhez\n"
+"Ebben a lépésben kell kiválasztani a Mageia rendszer telepítéséhez\n"
"használni kívánt partíciókat. Ha a kívánt partíciók már létre lettek hozva\n"
"(egy korábbi Linux-telepítés vagy valamilyen partícionálási segédprogram\n"
"által), akkor felhasználhatók a már létező partíciók. Ha viszont még nem\n"
@@ -1179,52 +1206,83 @@ msgstr ""
"50 MB méretűre), akkor eltárolható lesz rajta például egy tartalék kernel\n"
"illetve RAM-diszk képfájlok (image-ek) esetleges rendszerhibák esetére."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Cserélhető adathordozó automatikus csatolása"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Váltás a normál és a szakértői módok közt"
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Egynél több microsoftos partíció van a lemezen.\n"
"Válassza ki azt, amelyiket át szeretné méretezni, hogy a\n"
-"Mandriva Linux feltelepíthető legyen.\n"
+"Mageia feltelepíthető legyen.\n"
"\n"
"A partíciólista a következő mezőket tartalmazza: \"linuxos név\",\n"
"\"windowsos név\", \"kapacitás\".\n"
@@ -1268,34 +1326,34 @@ msgstr ""
"kattintson a(z) \"%s\" gombra a teljes országlista megjelenítéséhez."
#: ../help.pm:572
-#, c-format
+#, fuzzy, c-format
msgid ""
"This step is activated only if an existing GNU/Linux partition has been\n"
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Erre a lépésre csak akkor kerül sor, ha a gépen már van linuxos partíció.\n"
"\n"
"Most közölnie kell a telepítővel, hogy új telepítést szeretne-e végezni\n"
-"vagy pedig egy meglevő Mandriva Linux-rendszert kíván frissíteni:\n"
+"vagy pedig egy meglevő Mageia-rendszert kíván frissíteni:\n"
"\n"
" - \"%s\": a korábbi rendszer felülírásra kerül. Attól függően, hogy\n"
"milyen partíciók találhatók a gépen, bizonyos partíciók (például a\n"
@@ -1303,13 +1361,13 @@ msgstr ""
"megőrizhetők. Ha szeretné módosítani a merevlemezek partícionálását\n"
"vagy a fájlrendszereket, akkor ezt a lehetőséget használja.\n"
"\n"
-" - \"%s\": lehetővé teszi egy korábbi Mandriva Linux-telepítés\n"
+" - \"%s\": lehetővé teszi egy korábbi Mageia-telepítés\n"
"csomagjainak frissítését. A merevlemezek partícionálása változatlanul\n"
"marad, a felhasználók adatai sem módosulnak. A többi beállítási lépés közül\n"
"a legtöbb elérhető lesz - a folyamat hasonló a normál telepítéshez.\n"
"\n"
"Frissítés használata akkor javasolt, ha a számítógépen\n"
-"Mandriva Linux 8.1 vagy újabb kiadás van."
+"Mageia 8.1 vagy újabb kiadás van."
#: ../help.pm:594
#, c-format
@@ -1351,7 +1409,7 @@ msgstr ""
"majd a latin és a nem-latin kiosztások közt lehet váltani."
#: ../help.pm:612
-#, c-format
+#, fuzzy, c-format
msgid ""
"The first step is to choose your preferred language.\n"
"\n"
@@ -1367,8 +1425,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1411,7 +1468,7 @@ msgstr ""
"Az UTF-8 (Unicode) szabvány támogatásáról: A Unicode egy új\n"
"karakterkódolási szabvány az összes létező nyelv lefedésére.\n"
"A Linux alatti teljes támogatása még fejlesztés alatt áll.\n"
-"A Mandriva Linux UTF-8-használatát befolyásolják a felhasználó\n"
+"A Mageia UTF-8-használatát befolyásolják a felhasználó\n"
"által végzett beállítások:\n"
"\n"
" - ha olyan nyelvet választ, amelyhez erősen kapcsolódik egy\n"
@@ -1447,7 +1504,12 @@ msgstr ""
msgid "Espanol"
msgstr "spanyol"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1537,92 +1599,7 @@ msgstr ""
"Válassza ki a megfelelő portot. Például a windowsos \"COM1\" port\n"
"neve Linux alatt \"ttyS0\"."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Ez a legkritikusabb pont a Linux rendszer biztonságára vonatkozóan:\n"
-"meg kell adni a \"root\" nevű felhasználó jelszavát. A \"root\" azonosító\n"
-"a rendszeradminisztrátort jelöli; ez az egyetlen olyan felhasználó,\n"
-"amelynek joga van rendszerfrissítést végezni, felhasználókat létrehozni,\n"
-"módosítani a rendszerbeállításokat illetve hasonló tevékenységeket végezni.\n"
-"Röviden szólva: a \"root\" felhasználó bármit megtehet a rendszeren.\n"
-"Ez az, amiért a jelszót úgy kell megválasztani, hogy azt minél nehezebb\n"
-"legyen kitalálni. A telepítő jelzi az Ön számára, ha a jelszót könnyen\n"
-"kitalálhatónak tartja. Nem kötelező megadni jelszót, de erősen javasolt.\n"
-"A Linux rendszert - ugyanúgy, mint bármely más rendszert - tönkre lehet\n"
-"tenni rendszeradminisztrátori hibákkal. Mivel a \"root\" felhasználóra\n"
-"nem vonatkoznak a korlátozások, ezért ha például óvatlanul kezeli a\n"
-"partíciókat, akkor akár le is törölheti az azokon levő adatokat - ezért\n"
-"fontos, hogy a rendszeradminisztrátori azonosító védve legyen.\n"
-"\n"
-"A jelszónak betűkből és számokból kell állni, és legalább 8 karakter\n"
-"hosszúságúnak kell lenni. Soha ne írja le a rendszeradminisztrátori\n"
-"jelszót - ez veszélyt jelenthetne a rendszerre.\n"
-"\n"
-"A fentiek ellenére ne válasszon túl hosszú vagy túl bonyolult jelszót, mert\n"
-"Önnek fejben kell tartania azt.\n"
-"\n"
-"A jelszó nem jelenik meg a képernyőn, amikor Ön begépeli azt. Az esetleges\n"
-"gépelési hibák miatti problémák elkerülése érdekében kétszer kell beírni a\n"
-"jelszót. Ha esetleg ugyanazt a gépelési hibát követi el a jelszó első és\n"
-"második megadásánál, akkor ezen - helytelenül írt - jelszóval kell majd\n"
-"bejelentkezni a rendszerbe.\n"
-"\n"
-"Ha szeretné a géphez való hozzáférést azonosítási kiszolgálóval\n"
-"(authentication server) vezérelni, akkor kattintson a(z) \"%s\" gombra.\n"
-"\n"
-"Ha az Ön hálózata LDAP-t, NIS-t vagy PDC-t használ azonosításhoz, akkor\n"
-"válassza az ennek megfelelő tételt a(z) \"%s\" pontban. Ha nem tudja,\n"
-"hogy mit kellene megadni, kérdezze meg a rendszergazdát.\n"
-"\n"
-"Ha Önnek problémája van a jelszavak megjegyzésével kapcsolatban, vagy\n"
-"a számítógép nem fog kapcsolódni az internetre és Ön megbízik\n"
-"mindenkiben, aki elérheti a gépet, abban az esetben elfogadható a(z)\n"
-"\"%s\" lehetőség választása."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "felhasználóazonosítás"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1636,7 +1613,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1662,10 +1639,10 @@ msgstr ""
"akkor használja, ha biztos abban, hogy ezt szeretné."
#: ../help.pm:745
-#, c-format
+#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1686,11 +1663,11 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Itt lehet nyomtatórendszert választani a gép számára. Más operációs\n"
-"rendszerekben általában csak egy van, a Mandriva Linuxban viszont kettő is.\n"
+"rendszerekben általában csak egy van, a Mageiaban viszont kettő is.\n"
"Mindkettőnek megvannak a maga előnyei bizonyos környezetben használva.\n"
"\n"
" - \"%s\": \"print, do not queue\", azaz sorba tevés nélkül történő\n"
@@ -1715,7 +1692,7 @@ msgstr ""
"\n"
"Telepítés után lehetősége lesz a nyomtatórendszer lecserélésére (ha mégsem\n"
"felel meg az itt kiválasztott) - ehhez a PrinterDrake programot kell\n"
-"elindítani a Mandriva Linux Vezérlőközpontban, majd rá kell kattintani a(z)\n"
+"elindítani a Mageia Vezérlőközpontban, majd rá kell kattintani a(z)\n"
"\"%s\" gombra."
#: ../help.pm:768
@@ -1723,7 +1700,12 @@ msgstr ""
msgid "pdq"
msgstr "PDQ"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Szakértő"
@@ -1736,7 +1718,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1776,7 +1758,7 @@ msgstr ""
"akkor kattintson a gombra és válasszon egy másik meghajtóprogramot."
#: ../help.pm:794
-#, c-format
+#, fuzzy, c-format
msgid ""
"As a review, DrakX will present a summary of information it has gathered\n"
"about your system. Depending on the hardware installed on your machine, you\n"
@@ -1799,11 +1781,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1821,8 +1798,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1839,7 +1815,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1890,7 +1866,7 @@ msgstr ""
"\n"
" - \"%s\": ha be szeretné állítani az internet vagy a helyi hálózat\n"
"elérését most, akkor kattintson a gombra. Információkat a nyomtatott\n"
-"dokumentációból szerezhet, vagy telepítés után a Mandriva Linux\n"
+"dokumentációból szerezhet, vagy telepítés után a Mageia\n"
"Vezérlőközpontban.\n"
"\n"
" - \"%s\": lehetővé teszi a HTTP- és FTP-proxyk beállítását arra az\n"
@@ -1907,13 +1883,18 @@ msgstr ""
"beállításait, kattintson a megfelelő gombra. Elsősorban a komolyabb\n"
"ismeretekkel rendelkező felhasználóknak javasolt. Információkat a\n"
"nyomtatott dokumentációból szerezhet, vagy telepítés után a\n"
-"Mandriva Linux Vezérlőközpontban a rendszerindítónál.\n"
+"Mageia Vezérlőközpontban a rendszerindítónál.\n"
"\n"
" - \"%s\": itt részletesen beállítható, hogy mely\n"
"szolgáltatások legyenek működtetve a gépen. Ha kiszolgálóként szeretné\n"
"üzemeltetni a gépet, akkor érdemes átnézni ezt a részt."
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "ISDN-kártya"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN-kártya"
@@ -1924,26 +1905,28 @@ msgid "Graphical Interface"
msgstr "Grafikus felület"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"Válassza ki azt a lemezt, amelyet törölni szeretne a\n"
-"Mandriva Linux-partíció létrehozásához. Figyelem: a lemezen\n"
+"Mageia-partíció létrehozásához. Figyelem: a lemezen\n"
"található adatok elvesznek, és később nem nyerhetők vissza!"
#: ../help.pm:866
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Kattintson a(z) \"%s\" gombra, ha a lemezen található összes adatot\n"
"és partíciót törölni szeretné. Figyelem! A(z) \"%s\" gomb megnyomása\n"
@@ -1963,3 +1946,116 @@ msgstr "Következő ->"
msgid "<- Previous"
msgstr "<- Előző"
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": a(z) \"%s\" gombra kattintva elindul a nyomtatóbeállítási\n"
+#~ "varázsló. Nyomtatóbeállítással kapcsolatos további információkat a\n"
+#~ "felhasználói kézikönyvből lehet szerezni. Az ott bemutatott felület "
+#~ "hasonló\n"
+#~ "ahhoz, ami a telepítéskor megjelenik."
+
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "Ez a legkritikusabb pont a Linux rendszer biztonságára vonatkozóan:\n"
+#~ "meg kell adni a \"root\" nevű felhasználó jelszavát. A \"root\" "
+#~ "azonosító\n"
+#~ "a rendszeradminisztrátort jelöli; ez az egyetlen olyan felhasználó,\n"
+#~ "amelynek joga van rendszerfrissítést végezni, felhasználókat létrehozni,\n"
+#~ "módosítani a rendszerbeállításokat illetve hasonló tevékenységeket "
+#~ "végezni.\n"
+#~ "Röviden szólva: a \"root\" felhasználó bármit megtehet a rendszeren.\n"
+#~ "Ez az, amiért a jelszót úgy kell megválasztani, hogy azt minél nehezebb\n"
+#~ "legyen kitalálni. A telepítő jelzi az Ön számára, ha a jelszót könnyen\n"
+#~ "kitalálhatónak tartja. Nem kötelező megadni jelszót, de erősen javasolt.\n"
+#~ "A Linux rendszert - ugyanúgy, mint bármely más rendszert - tönkre lehet\n"
+#~ "tenni rendszeradminisztrátori hibákkal. Mivel a \"root\" felhasználóra\n"
+#~ "nem vonatkoznak a korlátozások, ezért ha például óvatlanul kezeli a\n"
+#~ "partíciókat, akkor akár le is törölheti az azokon levő adatokat - ezért\n"
+#~ "fontos, hogy a rendszeradminisztrátori azonosító védve legyen.\n"
+#~ "\n"
+#~ "A jelszónak betűkből és számokból kell állni, és legalább 8 karakter\n"
+#~ "hosszúságúnak kell lenni. Soha ne írja le a rendszeradminisztrátori\n"
+#~ "jelszót - ez veszélyt jelenthetne a rendszerre.\n"
+#~ "\n"
+#~ "A fentiek ellenére ne válasszon túl hosszú vagy túl bonyolult jelszót, "
+#~ "mert\n"
+#~ "Önnek fejben kell tartania azt.\n"
+#~ "\n"
+#~ "A jelszó nem jelenik meg a képernyőn, amikor Ön begépeli azt. Az "
+#~ "esetleges\n"
+#~ "gépelési hibák miatti problémák elkerülése érdekében kétszer kell beírni "
+#~ "a\n"
+#~ "jelszót. Ha esetleg ugyanazt a gépelési hibát követi el a jelszó első és\n"
+#~ "második megadásánál, akkor ezen - helytelenül írt - jelszóval kell majd\n"
+#~ "bejelentkezni a rendszerbe.\n"
+#~ "\n"
+#~ "Ha szeretné a géphez való hozzáférést azonosítási kiszolgálóval\n"
+#~ "(authentication server) vezérelni, akkor kattintson a(z) \"%s\" gombra.\n"
+#~ "\n"
+#~ "Ha az Ön hálózata LDAP-t, NIS-t vagy PDC-t használ azonosításhoz, akkor\n"
+#~ "válassza az ennek megfelelő tételt a(z) \"%s\" pontban. Ha nem tudja,\n"
+#~ "hogy mit kellene megadni, kérdezze meg a rendszergazdát.\n"
+#~ "\n"
+#~ "Ha Önnek problémája van a jelszavak megjegyzésével kapcsolatban, vagy\n"
+#~ "a számítógép nem fog kapcsolódni az internetre és Ön megbízik\n"
+#~ "mindenkiben, aki elérheti a gépet, abban az esetben elfogadható a(z)\n"
+#~ "\"%s\" lehetőség választása."
+
+#~ msgid "authentication"
+#~ msgstr "felhasználóazonosítás"
diff --git a/perl-install/install/help/po/id.po b/perl-install/install/help/po/id.po
index 3b241382e..4f1442552 100644
--- a/perl-install/install/help/po/id.po
+++ b/perl-install/install/help/po/id.po
@@ -1,4 +1,4 @@
-# Instalator Grafis Mandriva Linux
+# Instalator Grafis Mageia
# Copyright (C) 1999 Mandriva
# Budi Rachmanto <rac@mandrivalinux.org>, 2001-2003
# Linux Indonesia <http://www.linux.or.id>, 1999-2001
@@ -16,26 +16,27 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX 0.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2006-03-11 10:45+0700\n"
"Last-Translator: Willy Sudiarto Raharjo <willysr@gmail.com>\n"
"Language-Team: Indonesia <mdk-id@yahoogroups.com>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 0.6\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Bacalah lisensi sebelum melanjutkan. Lisensi mencakup seluruh distribusi\n"
-"Mandriva Linux. Jika Anda setuju dengan semua pasal di dalamnya, klik\n"
+"Mageia. Jika Anda setuju dengan semua pasal di dalamnya, klik\n"
"kotak \"%s\". Jika tidak, klik pada tombol \"%s\" akan mereboot komputer "
"Anda."
@@ -124,13 +125,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Apakah Anda ingin menggunakan fitur ini?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -140,27 +152,32 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
-"Berikut adalah daftar partisi Linux yang terdeteksi pada hard drive Anda.\n"
+"Berikut adalah daftar partisi Linux yang terdeteksi pada hard disk drive "
+"Anda.\n"
"Anda dapat memakai pilihan yg dibuatkan, karena itu baik untuk installasi\n"
"umum. Bila Anda mengubah pilihan, setidaknya Anda perlu mendefinisikan\n"
"partisi root (\"/\"). Jangan pilih partisi yang terlalu kecil agar dapat\n"
@@ -171,37 +188,37 @@ msgstr ""
"\n"
"Setiap partisi terdaftar sebagai: \"Nama\", \"Kapasitas\".\n"
"\n"
-"\"Nama\" berstruktur: \"tipe hard drive\", \"nomor hard drive\",\n"
+"\"Nama\" berstruktur: \"tipe hard disk drive\", \"nomor hard disk drive\",\n"
"\"nomor partisi\" (misalnya \"hda1\").\n"
"\n"
-"\"Tipe hard drive\" adalah \"hd\" untuk drive IDE dan \"sd\" untuk drive "
-"SCSI.\n"
+"\"Tipe hard disk drive\" adalah \"hd\" untuk drive IDE dan \"sd\" untuk "
+"drive SCSI.\n"
"\n"
"\"Nomor Hard Drive\", selalu berupa huruf setelah \"hd\" atau \"sd\". Bila "
"berupa IDE, maka:\n"
"\n"
-" *\"a\" berarti \"hard drive master pada kontroller IDE primer\",\n"
+" *\"a\" berarti \"hard disk drive master pada kontroller IDE primer\",\n"
"\n"
-" *\"b\" berarti \"hard drive slave pada kontroler IDE primer\",\n"
+" *\"b\" berarti \"hard disk drive slave pada kontroler IDE primer\",\n"
"\n"
-" *\"c\" berarti \"hard drive master pada kontroler IDE sekunder\",\n"
+" *\"c\" berarti \"hard disk drive master pada kontroler IDE sekunder\",\n"
"\n"
-" *\"d\" berarti \"hard drive slave pada kontroler IDE sekunder\",\n"
+" *\"d\" berarti \"hard disk drive slave pada kontroler IDE sekunder\",\n"
"\n"
"Pada drive SCSI, \"a\" adalah \"ID SCSI terkecil\", \"b\" adalah\"ID SCSI "
"terkecil kedua\", dan seterusnya."
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Installasi Mandriva Linux didistribusikan pada beberapa CDROM. DrakX tahu "
-"jika paket\n"
+"Installasi Mageia didistribusikan pada beberapa CDROM. DrakX tahu jika "
+"paket\n"
"terpilih berada di CDROM lain dan akan mengeluarkan CD yang ada untuk "
"kemudian\n"
"meminta Anda memasukkan CD yg diperlukan. Jika Anda tidak memiliki CD yang "
@@ -209,15 +226,14 @@ msgstr ""
"cukup klik pada \"%s\", maka paket tidak akan diinstal."
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -230,8 +246,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -270,12 +285,10 @@ msgid ""
msgstr ""
"Sekarang waktunya untuk menentukan program yang akan diinstal. Terdapat "
"ribuan \n"
-"pada Mandriva Linux, dan untuk mempermudah, mereka telah diletakkan pada "
-"grup \n"
+"pada Mageia, dan untuk mempermudah, mereka telah diletakkan pada grup \n"
"aplikasi yang sejenis.\n"
"\n"
-"Mandriva Linux mengurutkan paket dalam empat kategori. Anda bisa "
-"menggabungkan \n"
+"Mageia mengurutkan paket dalam empat kategori. Anda bisa menggabungkan \n"
"menyesuaikan aplikasi dari berbagai kategori, sehingga installasi "
"``Workstation''\n"
"tetap dapat memiliki aplikasi pada installasi ``Server''\n"
@@ -344,7 +357,7 @@ msgid "Truly minimal install"
msgstr "Installasi paling minimal"
#: ../help.pm:152
-#, c-format
+#, fuzzy, c-format
msgid ""
"If you choose to install packages individually, the installer will present\n"
"a tree containing all packages classified by groups and subgroups. While\n"
@@ -357,10 +370,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -392,10 +405,9 @@ msgstr ""
"!! Jika paket server terpilih dengan sengaja atau karena merupakan bagian "
"suatu\n"
"grup besar, akan ada pertanyaan konfirmasi installasi paket tersebut. Pada\n"
-"Mandriva Linux, secara default semua server terinstal dijalankan saat boot.\n"
+"Mageia, secara default semua server terinstal dijalankan saat boot.\n"
"Meski aman saat distribusi diluncurkan, ada kemungkinan lubang keamanan\n"
-"ditemukan setelah versi Mandriva Linux ini selesai. Jika Anda tidak tahu "
-"apa\n"
+"ditemukan setelah versi Mageia ini selesai. Jika Anda tidak tahu apa\n"
"yang dilakukan oleh suatu layanan atau mengapa ia diinstal, klik \"%s\".\n"
"Jika Anda menekan \"%s\" layanan terdaftar akan diinstal dan akan "
"dijalankan\n"
@@ -422,22 +434,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Ketergantungan otomatis"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": meng-klik pada \"%s\" untuk membuka konfigurator printer. Baca\n"
-"bab yg bersangkutan di ``Pedoman Pemula'' untuk informasi lebih lanjut "
-"tentang\n"
-"cara setup printer baru. Antarmuka yang ditampilkan di sana sama dengan "
-"yang \n"
-"yang dipakai saat installasi."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -512,7 +509,12 @@ msgstr ""
"server waktu yang dapat digunakan oleh komputer lain pada jaringan lokal "
"Anda."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Sinkronisasi waktu otomatis"
@@ -544,11 +546,11 @@ msgstr ""
"Anda."
#: ../help.pm:234
-#, c-format
+#, fuzzy, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -604,7 +606,7 @@ msgid ""
msgstr ""
"X (untuk X Window System) adalah jantung dari interface grafis GNU/Linux\n"
"yang diperlukan oleh semua lingkungan grafis (KDE, GNOME, AfterStep,\n"
-"WindowMaker, dll.) yang dibundel pada Mandriva Linux.\n"
+"WindowMaker, dll.) yang dibundel pada Mageia.\n"
"\n"
"Anda akan melihat daftar parameter yang berbeda untuk merubah untuk "
"mendapatkan\n"
@@ -732,41 +734,45 @@ msgstr ""
"tidak berhasil mendapatkan konfigurasi tampilan."
#: ../help.pm:319
-#, c-format
+#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -775,15 +781,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -798,11 +804,10 @@ msgid ""
msgstr ""
"Sekarang Anda harus menentukan dimana Anda hendak menginstall sistem "
"operasi\n"
-"Mandriva Linux pada harddisk Anda. Jika harddisk Anda kosong atau jika "
-"sebuah\n"
+"Mageia pada harddisk Anda. Jika harddisk Anda kosong atau jika sebuah\n"
"sistem operasi menggunakan semua tempat, Anda harus mempartisi drive.\n"
"Pada dasarnya, mempartisi harddisk berarti membaginya secara logical\n"
-"untuk membuat ruang yang diperlukan sistem Mandriva Linux baru Anda.\n"
+"untuk membuat ruang yang diperlukan sistem Mageia baru Anda.\n"
"\n"
"Karena proses partisi harddisk biasanya tidak bisa dikembalikan dan bisa \n"
"mengacu pada kehilangan data, partisi bisa menegangkan dan membuat stress\n"
@@ -839,8 +844,7 @@ msgstr ""
"dengan sebelumnya Anda sudah mendefrag partisi Windows.\n"
"Membackup data sangat disarankan. Penggunaan opsi ini sangat "
"direkomendasikan jika Anda\n"
-"ingin menggunakan Mandriva Linux dan Microsoft Windows pada komputer yang "
-"sama.\n"
+"ingin menggunakan Mageia dan Microsoft Windows pada komputer yang sama.\n"
"\n"
" Sebelum memilih opsi ini, harap dipahami bahwa setelah prosedur ini, "
"ukuran partisi \n"
@@ -852,8 +856,8 @@ msgstr ""
"\n"
" * \"%s\". Jika Anda hendak menghapus seluruh data dan semua partisi yang "
"ada pada harddisk\n"
-"Anda dan menggantinya dengan sistem Mandriva Linux yang baru, pilih opsi "
-"ini. Hati-hati, karena\n"
+"Anda dan menggantinya dengan sistem Mageia yang baru, pilih opsi ini. Hati-"
+"hati, karena\n"
"Anda tidak bisa membatalkan opsi ini setelah Anda mengkonfirmasikan.\n"
"\n"
" !! Jika Anda memilih opsi ini, semua data pada harddisk Anda akan "
@@ -881,7 +885,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Gunakan partisi yang sudah ada"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Hapus seluruh disk"
@@ -966,8 +975,23 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Buat disket installasi otomatis"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
+#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -986,7 +1010,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -1008,15 +1032,15 @@ msgstr ""
"Klik pada \"%s\" ketika Anda siap memformat partisi.\n"
"\n"
"Klik pada \"%s\" jika Anda hendak memilih partisi lain untuk \n"
-"installasi sistem operasi Mandriva Linux baru Anda.\n"
+"installasi sistem operasi Mageia baru Anda.\n"
"\n"
"Klik pada \"%s\" jika Anda hendak memilih partisi yang hendak \n"
"diperiksa untuk block rusak pada disk."
#: ../help.pm:437
-#, c-format
+#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -1028,7 +1052,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Saat Mandriva Linux diinstal, mungkin beberapa paket telah diupdate sejak\n"
+"Saat Mageia diinstal, mungkin beberapa paket telah diupdate sejak\n"
"rilis awal. Beberapa kesalahan mungkin telah diperbaiki / masalah keamanan\n"
"dipecahkan. Untuk memanfaatkan update ini Anda dapat men-download-nya dari\n"
"Internet. Pilih \"%s\" jika Anda memiliki koneksi Internet, atau \"%s\" "
@@ -1041,7 +1065,7 @@ msgstr ""
"tekan \"%s\" untuk mengambil/menginstall paket atau \"%s\" untuk membatalkan."
#: ../help.pm:450
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -1050,7 +1074,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1063,7 +1087,7 @@ msgstr ""
"\n"
"Jika Anda tidak tahu apa yang akan dipilih, gunakan opsi default. Anda\n"
"mampu mengubahnya menggunakan perkakas draksec, yang merupakan bagian\n"
-"dari dari Pusat Kontrol Mandriva Linux.\n"
+"dari dari Pusat Kontrol Mageia.\n"
"\n"
"Isi bagian \"%s\" dengan alamat email dari orang yang bertanggung jawab\n"
"atas keaman. Pesan keamanan akan dikirimkan pada alamat tersebut."
@@ -1074,24 +1098,27 @@ msgid "Security Administrator"
msgstr "Administrator Keamanan"
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1107,21 +1134,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1138,17 +1167,11 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"Saat ini, Anda harus memilih partisi yang akan digunakan untuk installasi\n"
-"sistem Mandriva Linux Anda. Jika partisi telah didefinisikan, baik dari\n"
+"sistem Mageia Anda. Jika partisi telah didefinisikan, baik dari\n"
"installasi GNU/Linux sebelumnya atau melalui perkakas partisi lainnya,\n"
"Anda bisa menggunakan partisi yang ada. Jika tidak, partisi harddisk \n"
"harus didefinisikan.\n"
@@ -1161,7 +1184,7 @@ msgstr ""
"\n"
" * \"%s\": opsi ini menghapus seluruh partisi pada drive terpilih\n"
"\n"
-" * \"%s\": opsi ini memungkinkan Anda membuat partisi ext3 dan swap\n"
+" * \"%s\": opsi ini memungkinkan Anda membuat partisi ext4 dan swap\n"
"secara otomatis pada ruang kosong dari hard disk Anda.\n"
"\n"
"\"%s\": memberi akses pada fitur tambahan:\n"
@@ -1211,83 +1234,112 @@ msgstr ""
"\n"
"Untuk mendapatkan informasi tentang jenis sistem file yang ada, \n"
"silahkan membaca bab ext2FS dari ``Referensi Manual''.\n"
-"\n"
-"Jika Anda menginstall pada komputer PPC, Anda harus membuat partisi\n"
-"``bootstrap'' HFS kecil paling tidak 1 MB yang akan digunakan oleh\n"
-"bootloader yaboot. Jika Anda membuatnya lebih besar, misalkan 50MB\n"
-"Anda bisa menyimpan kernel dan citra ramdisk untuk situasi darurat."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Mount otomatis media lepas (removable)"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Ubah ke modus normal/ahli"
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Terdapat lebih dari satu partisi Microsoft yang terdeteksi pada harddisk\n"
"Anda. Pilih partisi yang hendak Anda ubah ukurannya untuk installasi sistem\n"
-"operasi Mandriva Linux.\n"
+"operasi Mageia.\n"
"\n"
"Tiap partisi terdaftar sebagai: \"Nama Linux\",\"Nama windows\",\"Kapasitas"
"\".\n"
"\n"
-"\"Nama Linux\" berstruktur: \"tipe hard drive\", \"nomor hard drive\",\n"
+"\"Nama Linux\" berstruktur: \"tipe hard disk drive\", \"nomor hard disk drive"
+"\",\n"
"\"nomor partisi\" (misalnya \"hda1\").\n"
"\n"
-"\"Tipe hard drive\" adalah \"hd\" bila drive bertipe IDE dan \"sd\" jika\n"
+"\"Tipe hard disk drive\" adalah \"hd\" bila drive bertipe IDE dan \"sd\" "
+"jika\n"
"berupa drive SCSI.\n"
"\n"
"\"Nomor Hard Drive\", selalu berupa huruf setelah \"hd\" atau \"sd\". Jika\n"
"berupa IDE, maka:\n"
"\n"
-" * \"a\" berarti \"hard drive master pada kontroller IDE primer\",\n"
+" * \"a\" berarti \"hard disk drive master pada kontroller IDE primer\",\n"
"\n"
-" * \"b\" berarti \"hard drive slave pada kontroler IDE primer\",\n"
+" * \"b\" berarti \"hard disk drive slave pada kontroler IDE primer\",\n"
"\n"
-" * \"c\" berarti \"hard drive master pada kontroler IDE sekunder\",\n"
+" * \"c\" berarti \"hard disk drive master pada kontroler IDE sekunder\",\n"
"\n"
-" * \"d\" berarti \"hard drive slave pada kontroler IDE sekunder\",\n"
+" * \"d\" berarti \"hard disk drive slave pada kontroler IDE sekunder\",\n"
"\n"
"Pada drive SCSI, \"a\" berarti \"ID SCSI terkecil, \"b\" berarti \"ID SCSI\n"
"terkecil kedua\", dst.\n"
"\n"
-"\"Nama windows\" adalah huruf hard drive Anda pada Windows (disk pertama\n"
+"\"Nama windows\" adalah huruf hard disk drive Anda pada Windows (disk "
+"pertama\n"
"pada partisi disebut \"C:\")."
#: ../help.pm:567
@@ -1303,34 +1355,34 @@ msgstr ""
"klik tombol \"%s\" untuk mendapatkan daftar lengkap."
#: ../help.pm:572
-#, c-format
+#, fuzzy, c-format
msgid ""
"This step is activated only if an existing GNU/Linux partition has been\n"
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Tahap ini hanya aktif jika partisi GNU/Linux lama ditemukan.\n"
"\n"
"DrakX perlu tahu Anda ingin melakukan installasi baru atau upgrade sistem\n"
-"Mandriva Linux yang sudah ada:\n"
+"Mageia yang sudah ada:\n"
"\n"
"* \"%s\": Untuk sebagian besar bagian, opsi ini menghapus sistem lama.\n"
"Namun, bergantung pada skema partisi Anda, Anda bisa mencegah data Anda\n"
@@ -1339,11 +1391,11 @@ msgstr ""
"harus menggunakan opsi ini.\n"
"\n"
"* \"%s\": Kelas installasi ini akan mengupdate paket yang terinstall\n"
-"pada sistem Mandriva Linux Anda. Skema partisi dan data pengguna Anda\n"
+"pada sistem Mageia Anda. Skema partisi dan data pengguna Anda\n"
"tidak akan diubah. Sebagian besar langkah konfigurasi yang tersisa\n"
"serupa pada installasi standar.\n"
"\n"
-"Menggunakan opsi ``Upgrade'' seharusnya berjalan pada Mandriva Linux\n"
+"Menggunakan opsi ``Upgrade'' seharusnya berjalan pada Mageia\n"
"versi \"8.1\" keatas. Melakukan upgrade pada versi sebelum \"8.1\"\n"
"tidak dianjurkan."
@@ -1386,7 +1438,7 @@ msgstr ""
"antara layout Latin dan non-Latin."
#: ../help.pm:612
-#, c-format
+#, fuzzy, c-format
msgid ""
"The first step is to choose your preferred language.\n"
"\n"
@@ -1402,8 +1454,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1444,7 +1495,7 @@ msgstr ""
"Tentang dukungan UTF-8 (unicode): Unicode adalah enkoding karakter yang\n"
"baru yang ditujukan untuk mencakup seluruh bahasa yang ada. Namun \n"
"dukungan penuh pada GNU/Linux sedang dalam pengembangan. Untuk alasan\n"
-"tersebut, penggunaan UTF-8 pada Mandriva Linux bergantung pada pilihan\n"
+"tersebut, penggunaan UTF-8 pada Mageia bergantung pada pilihan\n"
"pengguna:\n"
"\n"
" * Jika Anda memilih menggunakan bahasa dengan enkoding yang kuat (bahasa\n"
@@ -1475,7 +1526,12 @@ msgstr ""
msgid "Espanol"
msgstr "Spanyol"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1560,85 +1616,7 @@ msgstr ""
"Pilih port yang benar. Misalnya \"COM1\" di Windows akan bernama\n"
"\"ttyS0\" di GNU/Linux."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Ini adalah poin terpenting penentuan keamanan sistem GNU/Linux Anda: Anda\n"
-"harus mengisi katasandi \"root\". \"Root\" adalah administrator sistem dan\n"
-"yang berhak melakukan update, menambah pengguna, mengubah konfigurasi\n"
-"sistem. Singkatnya, \"root\" dapat melakukan apapun! Karena itu Anda\n"
-"harus memilih katasandi yang sulit ditebak - DrakX akan memberitahu jika\n"
-"terlalu mudah. Seperti Anda lihat, Anda tidak dipaksa untuk memasukkan\n"
-"katasandi, tapi sangat tidak dianjurkan. GNU/Linux juga rawan kesalahan\n"
-"operator seperti sistem operasi lain. Karena \"root\" bisa melewati\n"
-"semua batasan dan secara tidak sengaja menghapus semua data di partisi,\n"
-"sangatlah penting untuk memperketat usaha menjadi \"root\".\n"
-"\n"
-"Katasandi harus berupa campuran nomor dan huruf minimal 8 karakter. Jangan\n"
-"pernah mencatat katasandi \"root\" - itu membuat sistem mudah dibajak.\n"
-"\n"
-"Katasandi juga jangan terlalu panjang/rumit karena Anda harus mampu \n"
-"mengingatnya.\n"
-"Katasandi tidak muncul di layar ketika diketikkan. Untuk mengurangi "
-"kesalahan\n"
-"pengetikkan Anda harus menuliskan katasandi sebanyak dua kali. Jika Anda\n"
-"melakukan kesalahan penulisan kasatandi sebanyak dua kali, Anda harus\n"
-"memakai katasandi yang ``salah'' ini untuk login sebagai \"root\".\n"
-"\n"
-"Jika Anda ingin sebuah server otentikasi mengontrol akses ke komputer Anda,\n"
-"klik pada tombol \"%s\".\n"
-"\n"
-"Jika jaringan Anda memakai protokol otentikasi LDAP/NIS/PDC Windows Domain,\n"
-"pilih yang cocok untuk \"%s\". Jika Anda tidak tahu yang harus digunakan,\n"
-"tanyalah admin jaringan Anda.\n"
-"\n"
-"Jika Anda mengalami masalah untuk mengingat katasandi, atau jika komputer\n"
-"Anda tidak akan terhubung ke Internet dan Anda mempercayai semua orang\n"
-"yang menggunakan komputer Anda, Anda bisa memilih \"%s\"."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "otentikasi"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1652,7 +1630,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1675,10 +1653,10 @@ msgstr ""
"jika Anda tahu apa yang Anda lakukan."
#: ../help.pm:745
-#, c-format
+#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1699,11 +1677,11 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Sekarang, waktunya memilih sistem pencetakan untuk komputer Anda. Sistem\n"
-"operasi lain mungkin menawarkan satu, tetapi Mandriva Linux menawarkan dua.\n"
+"operasi lain mungkin menawarkan satu, tetapi Mageia menawarkan dua.\n"
"Setiap sistem pencetakan sesuai untuk jenis konfigurasi tertentu.\n"
"\n"
" * \"%s\" - yang merupakan akronim untuk ``print, tidak ada antrian'',\n"
@@ -1731,7 +1709,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Ahli"
@@ -1744,7 +1727,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1785,7 +1768,7 @@ msgstr ""
"sistem, Anda bisa klik pada tombol dan pilih driver lain."
#: ../help.pm:794
-#, c-format
+#, fuzzy, c-format
msgid ""
"As a review, DrakX will present a summary of information it has gathered\n"
"about your system. Depending on the hardware installed on your machine, you\n"
@@ -1808,11 +1791,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1830,8 +1808,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1848,7 +1825,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1899,7 +1876,7 @@ msgstr ""
"\n"
" * \"%s\": jika Anda hendak mengkonfigurasi akses jaringan Internet\n"
"atau lokal Anda, Anda bisa melakukannya sekarang. Lihat dokumentasi\n"
-"cetak atau gunakan Pusat Kontrol Mandriva Linux setelah installasi\n"
+"cetak atau gunakan Pusat Kontrol Mageia setelah installasi\n"
"selesai untuk mengambil keuntungan dari bantuannya.\n"
"\n"
" * \"%s\": mengijinkan Anda mengkonfigurasi alamat proxy HTTP dan\n"
@@ -1916,14 +1893,19 @@ msgstr ""
" * \"%s\": jika Anda hendak merubah konfigurasi bootloader Anda, klik\n"
"tombol ini. Opsi ini ditujukan untuk pengguna tingkat lanjut. Lihat\n"
"dokumentasi cetak atau bantuan tentang konfigurasi bootloader pada \n"
-"Pusat Kontrol Mandriva Linux.\n"
+"Pusat Kontrol Mageia.\n"
"\n"
" * \"%s\": melalui daftar ini Anda bisa menentukan layanan apa yang\n"
"akan dijalankan pada komputer Anda. Jika Anda berencana untuk memakai\n"
"komputer ini sebagai server, merupakan ide bagus untuk mereview setup\n"
"ini."
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "Kartu ISDN"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "Kartu ISDN"
@@ -1934,13 +1916,13 @@ msgid "Graphical Interface"
msgstr "Antarmuka Grafis"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
-"Pilih harddrive yang akan dihapus untuk menginstall partisi Mandriva Linux\n"
+"Pilih harddrive yang akan dihapus untuk menginstall partisi Mageia\n"
"baru Anda. Hati-hati, semua data pada drive ini akan hilang dan\n"
"tidak dapat dikembalikan seperti semula!"
@@ -1948,12 +1930,14 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Klik pada \"%s\" jika Anda ingin menghapus semua data dan partisi yang ada\n"
"pada harddisk ini. Hati-hati, setelah mengklik \"%s\" Anda tidak dapat\n"
@@ -1972,3 +1956,112 @@ msgstr "Berikutnya ->"
msgid "<- Previous"
msgstr "<- Sebelumnya"
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": meng-klik pada \"%s\" untuk membuka konfigurator printer. Baca\n"
+#~ "bab yg bersangkutan di ``Pedoman Pemula'' untuk informasi lebih lanjut "
+#~ "tentang\n"
+#~ "cara setup printer baru. Antarmuka yang ditampilkan di sana sama dengan "
+#~ "yang \n"
+#~ "yang dipakai saat installasi."
+
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "Ini adalah poin terpenting penentuan keamanan sistem GNU/Linux Anda: "
+#~ "Anda\n"
+#~ "harus mengisi katasandi \"root\". \"Root\" adalah administrator sistem "
+#~ "dan\n"
+#~ "yang berhak melakukan update, menambah pengguna, mengubah konfigurasi\n"
+#~ "sistem. Singkatnya, \"root\" dapat melakukan apapun! Karena itu Anda\n"
+#~ "harus memilih katasandi yang sulit ditebak - DrakX akan memberitahu jika\n"
+#~ "terlalu mudah. Seperti Anda lihat, Anda tidak dipaksa untuk memasukkan\n"
+#~ "katasandi, tapi sangat tidak dianjurkan. GNU/Linux juga rawan kesalahan\n"
+#~ "operator seperti sistem operasi lain. Karena \"root\" bisa melewati\n"
+#~ "semua batasan dan secara tidak sengaja menghapus semua data di partisi,\n"
+#~ "sangatlah penting untuk memperketat usaha menjadi \"root\".\n"
+#~ "\n"
+#~ "Katasandi harus berupa campuran nomor dan huruf minimal 8 karakter. "
+#~ "Jangan\n"
+#~ "pernah mencatat katasandi \"root\" - itu membuat sistem mudah dibajak.\n"
+#~ "\n"
+#~ "Katasandi juga jangan terlalu panjang/rumit karena Anda harus mampu \n"
+#~ "mengingatnya.\n"
+#~ "Katasandi tidak muncul di layar ketika diketikkan. Untuk mengurangi "
+#~ "kesalahan\n"
+#~ "pengetikkan Anda harus menuliskan katasandi sebanyak dua kali. Jika Anda\n"
+#~ "melakukan kesalahan penulisan kasatandi sebanyak dua kali, Anda harus\n"
+#~ "memakai katasandi yang ``salah'' ini untuk login sebagai \"root\".\n"
+#~ "\n"
+#~ "Jika Anda ingin sebuah server otentikasi mengontrol akses ke komputer "
+#~ "Anda,\n"
+#~ "klik pada tombol \"%s\".\n"
+#~ "\n"
+#~ "Jika jaringan Anda memakai protokol otentikasi LDAP/NIS/PDC Windows "
+#~ "Domain,\n"
+#~ "pilih yang cocok untuk \"%s\". Jika Anda tidak tahu yang harus "
+#~ "digunakan,\n"
+#~ "tanyalah admin jaringan Anda.\n"
+#~ "\n"
+#~ "Jika Anda mengalami masalah untuk mengingat katasandi, atau jika "
+#~ "komputer\n"
+#~ "Anda tidak akan terhubung ke Internet dan Anda mempercayai semua orang\n"
+#~ "yang menggunakan komputer Anda, Anda bisa memilih \"%s\"."
+
+#~ msgid "authentication"
+#~ msgstr "otentikasi"
diff --git a/perl-install/install/help/po/is.po b/perl-install/install/help/po/is.po
index 4152a72f9..eafd3f1a2 100644
--- a/perl-install/install/help/po/is.po
+++ b/perl-install/install/help/po/is.po
@@ -1,6 +1,6 @@
# translation of DrakX.po to
# translation of DrakX.po to Icelandic
-# Translation file for Mandriva Linux graphic install, DrakX
+# Translation file for Mageia graphic install, DrakX
# Copyright (C) 1999,2003, 2005, 2006 Free Software Foundation, Inc.
# Copyright (C) 1999 Mandriva
# Jóhann Þorvarðarson <johann.torvardarson@lais.is>, 1999-2000.
@@ -12,10 +12,11 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2006-03-07 18:42+0000\n"
"Last-Translator: Pjetur G. Hjaltason <pjetur@pjetur.net>\n"
"Language-Team: <is@li.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -23,15 +24,15 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Áður en þú heldur áfram, ættir þú að lesa vandlega leyfisskilmálana. Þeir\n"
-"taka yfir alla Mandriva Linux dreifinguna. Ef þú er samþykk(ur) öllum þeim\n"
+"taka yfir alla Mageia dreifinguna. Ef þú er samþykk(ur) öllum þeim\n"
"skilmálum sem þar standa, krossaðu þá við í \"%s\" reitinn, ef ekki\n"
"smelltu þá á \"%s\" hnappinn sem mun endurræsa tölvuna þína."
@@ -118,13 +119,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Viltu nota þennan eiginleika?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -134,24 +146,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Hér er listi af núverandi Linux disksneiðum sem fundust á disknum.\n"
@@ -188,15 +204,15 @@ msgstr ""
"\"næst-lægsta SCSI ID\", o.s.frv."
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Mandriva Linux uppsetningunni er dreift á nokkra geisladiska. Ef valinn\n"
+"Mageia uppsetningunni er dreift á nokkra geisladiska. Ef valinn\n"
"pakki er á öðrum geisladiski, þá mun DrakX spýta út núverandi diski\n"
"og biðja þig um að setja inn rétta diskinn. Ef þú hefur ekki rétta diskinn "
"við\n"
@@ -204,15 +220,14 @@ msgstr ""
"settir upp."
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -225,8 +240,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -265,10 +279,10 @@ msgid ""
msgstr ""
"Nú er tími til að skilgreina hvaða forrit þú vilt að séu sett upp á kerfinu "
"þínu.\n"
-"Það eru þúsundir pakka til fyrir Mandriva Linux, og til að einfalda\n"
+"Það eru þúsundir pakka til fyrir Mageia, og til að einfalda\n"
"umsjón pakkanna hafa þeir verið flokkaðir í hópa af svipuðum forritum.\n"
"\n"
-"Mandriva Linux skiptir pökkunum í fjóra flokka. Þú getur blandað saman\n"
+"Mageia skiptir pökkunum í fjóra flokka. Þú getur blandað saman\n"
"pökkum úr mismunandi flokkum svo að ``Vinnustöðvar'' uppsetning\n"
"getur innihaldið forrit úr ``Miðlara'' flokknum.\n"
"\n"
@@ -334,7 +348,7 @@ msgid "Truly minimal install"
msgstr "Alger lágmarksuppsetning"
#: ../help.pm:152
-#, c-format
+#, fuzzy, c-format
msgid ""
"If you choose to install packages individually, the installer will present\n"
"a tree containing all packages classified by groups and subgroups. While\n"
@@ -347,10 +361,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -381,8 +395,7 @@ msgstr ""
"!! Ef miðlara-pakki hefur verið valinn, annað hvort af því að þú valdir "
"stakan\n"
"pakka eða hann var hluti af hóp, verður þú beðinn um að staðfesta að\n"
-"þú viljir fá þessa miðlara uppsetta. Sjálfgefið mun Mandriva Linux ræsa "
-"allar\n"
+"þú viljir fá þessa miðlara uppsetta. Sjálfgefið mun Mageia ræsa allar\n"
"uppsettar þjónustur og miðlara við kerfisræsingu. Jafnvel þó að þeir séu\n"
"öruggir og engar þekktar villur þegar kerfinu var dreift þá er möguleiki að\n"
"öryggisholur hafi uppgötvast eftir að gengið var frá þessari útgáfu af\n"
@@ -411,22 +424,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Uppfylla forkröfur sjálfvirkt"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": smellir þú á \"%s\" hnappinn mun það ræsa prentara-uppsetningar-"
-"ráðgjafann\n"
-"Skoðið viðeigandi kafla í ``Starter Guide'' varðandi meiri upplýsingar um "
-"hvernig\n"
-"á að setja upp nýjan prentara. Viðmótið sem sýnt er í handbókinni okkar er\n"
-"svipað því sem er notað í uppsetningarforritinu."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -493,7 +491,12 @@ msgstr ""
"sem er nálægt þér. Þessi valkostur mun í raun setja upp tímamiðlara\n"
"á vélinni sem þú getur síðan notað af öðrum vélum á staðarnetinu."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Sjálfvirk tímastilling"
@@ -522,11 +525,11 @@ msgstr ""
" miðlara sem best hentar þínum þörfum."
#: ../help.pm:234
-#, c-format
+#, fuzzy, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -582,7 +585,7 @@ msgid ""
msgstr ""
"X (sem stendur fyrir X-glugga-kerfið) er grunnur myndræna viðmótsins\n"
"á GNU/Linux. Á því eru byggð öll gluggakerfin (KDE, GNOME, AfterStep,\n"
-"WindowMaker, o.s.frv. ) sem fylgja Mandriva Linux.\n"
+"WindowMaker, o.s.frv. ) sem fylgja Mageia.\n"
"\n"
"Þú sérð lista af mismunandi breytum til að stilla bestu myndgæði.\n"
"\n"
@@ -695,41 +698,45 @@ msgstr ""
"grafíska skjákortið/upplausnina/skjáinn... rétt."
#: ../help.pm:319
-#, c-format
+#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -738,15 +745,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -759,11 +766,11 @@ msgid ""
"experience. For more instructions on how to use the DiskDrake utility,\n"
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
-"Nú verður þú að ákveða hvar þú vilt setja upp Mandriva Linux\n"
+"Nú verður þú að ákveða hvar þú vilt setja upp Mageia\n"
"stýrikerfið á diskinn þinn. Ef diskurinn þinn er tómur eða núverandi\n"
"stýrikerfi er að nota allt plássið á disknum, þá verður þú að\n"
"Endursníða diskinn. Að sníða diskinn þýðir að skipta disknum\n"
-"í hluta sem þörf er á til að setja upp Mandriva Linux kerfið.\n"
+"í hluta sem þörf er á til að setja upp Mageia kerfið.\n"
"\n"
"Af því að skipting disks í sneiðar er venjulega óafturkræf aðgerð\n"
"og getur leitt til að þú tapir gögnum, þá getur þetta verið erfið og\n"
@@ -800,7 +807,7 @@ msgstr ""
"til að geyma gögn og setja upp hugbúnað.\n"
"\n"
" * \"%s\". Ef þú vilt eyða öllum gögnum og disksneiðum sem nú eru\n"
-"á disknum og skipta þeim út með nýju Mandriva Linux stýrikerfi, veldu\n"
+"á disknum og skipta þeim út með nýju Mageia stýrikerfi, veldu\n"
"þennan valkost. Farðu varlega, því þú getur ekki afturkallað þessar\n"
"breytingar eftir að þú hefur staðfest þær.\n"
"\n"
@@ -825,7 +832,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Nota núverandi disksneið"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Eyða öllu á disknum"
@@ -909,8 +921,23 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Búa til diskling fyrir sjálfvirka uppsetningu"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
+#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -929,7 +956,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -950,16 +977,16 @@ msgstr ""
"\n"
"Smelltu á \"%s\" þegar þú ert tilbúinn, og vilt forsníða disksneiðarnar.\n"
"\n"
-"Smelltu á \"%s\" ef þú vilt velja aðra disksneið fyrir nýja Mandriva Linux\n"
+"Smelltu á \"%s\" ef þú vilt velja aðra disksneið fyrir nýja Mageia\n"
"stýrikerfið þitt.\n"
"\n"
"Smelltu á \"%s\" ef þú vilt velja disksneiðar sem verða skoðaðar\n"
"sérstaklega m.t.t. galla á diskblokkum."
#: ../help.pm:437
-#, c-format
+#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -971,7 +998,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Þegar þú setur upp Mandriva Linux er líklegt að sumir pakkar hafi verið\n"
+"Þegar þú setur upp Mageia er líklegt að sumir pakkar hafi verið\n"
"uppfærðir frá upphaflegri útgáfu. Villur hafa verið lagfærðar, og\n"
"öryggisvandamál leyst. Til að nýta ykkur þessar uppfærslur, þá getið\n"
"þið sótt þær nú um Internetið. Krossaðu við \"%s\" ef þú hefur nú\n"
@@ -983,7 +1010,7 @@ msgstr ""
"til að sækja og setja upp valda pakka, eða \"%s\" til að hætta við."
#: ../help.pm:450
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -992,7 +1019,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1005,7 +1032,7 @@ msgstr ""
"vél og gögnum verður óþjálli.\n"
"\n"
"Ef þú veist ekki hvað á að velja, notaðu þá sjálfgefið öryggisstig. Þú\n"
-"getur breytt því seinna með draksec tólinu, sem er hluti af Mandriva Linux\n"
+"getur breytt því seinna með draksec tólinu, sem er hluti af Mageia\n"
"stjórnborðinu.\n"
"\n"
"Fylltu út í svæðið \"%s\" með netfangi þess aðila sem er ábyrgur fyrir\n"
@@ -1017,24 +1044,27 @@ msgid "Security Administrator"
msgstr "Öryggisfulltrúi"
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1050,21 +1080,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1081,16 +1113,10 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-"Hér þarft þú að ákveða hvaða disksneið þú vilt nota fyrir Mandriva Linux\n"
+"Hér þarft þú að ákveða hvaða disksneið þú vilt nota fyrir Mageia\n"
"stýrikerfið. Ef disksneiðar hafa þegar verið skilgreindar, annað hvort\n"
"frá fyrri uppsetningu á GNU/Linux, eða af öðru forriti til að stilla\n"
"disksneiðar, þá getur þú notað þær. Annars verður þú að skilgreina\n"
@@ -1105,7 +1131,7 @@ msgstr ""
"\n"
" * \"%s\": þessi valkostur eyðir öllum disksneiðum á disknum\n"
"\n"
-" * \"%s\": þessi valkostur býr sjálfkrafa til ext3 og diskminnis-sneið\n"
+" * \"%s\": þessi valkostur býr sjálfkrafa til ext4 og diskminnis-sneið\n"
"á lausu plássi á disknum.\n"
"\n"
"\"%s\": gefur þér aðgang að aukavalkostum:\n"
@@ -1154,60 +1180,85 @@ msgstr ""
"\n"
"Til að fá upplýsingar um mismunandi skráakerfi, vinsamlega lestu\n"
"kaflann um ext2FS í ``Reference Manual''.\n"
-"\n"
-"Ef þú ert að setja upp á PPC tölvu, þá ættir þú að búa til litla HFS\n"
-"``ræsi-disksneið'' sem er að minnsta kosti 1M. Þessi disksneið\n"
-"verður notuð af yaboot ræsistjóranum. Ef þú gerir disksneiðina\n"
-"svolítið stærri t.d. 50MB þá er það góður staður til að geyma auka\n"
-"kjarna og ræsidisk-ímyndir fyrir óvæntar uppákomur."
+
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
# ## skrytid
-#: ../help.pm:533
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Sjálfvirk tenging aukatækja"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Víxla milli venjulegs/sérfræðings-hams"
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Fleiri en ein Microsoft disksneið hefur fundist á disknum.\n"
"Vinsamlega veldu hverri þeirra þú vilt breyta stærðinni á til að geta sett\n"
-"upp nýja Mandriva Linux stýrikerfið.\n"
+"upp nýja Mageia stýrikerfið.\n"
"\n"
"Hver sneið á listanum inniheldur \"Linux nafn\", \"Windows nafn\" \"Diskrýmd"
"\".\n"
@@ -1248,35 +1299,35 @@ msgstr ""
"smelltu þá á \"%s\" hnappinn til að sjá heildalista landa."
#: ../help.pm:572
-#, c-format
+#, fuzzy, c-format
msgid ""
"This step is activated only if an existing GNU/Linux partition has been\n"
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Þetta skref er aðeins virkjað ef GNU/Linux disksneið hefur fundist á\n"
"tölvunni þinni.\n"
"\n"
"DrakX þarf nú að vita hvort þú vilt setja upp nýtt kerfi eða hvort þú\n"
-"vilt uppfæra uppsett Mandriva Linux kerfi:\n"
+"vilt uppfæra uppsett Mageia kerfi:\n"
"\n"
" * \"%s\". Þetta þurkar að mestu út gamla kerfið. En þó fer það\n"
"svolítið eftir diskssneiðum sem þú hefur sett upp, þá getur þú\n"
@@ -1285,13 +1336,13 @@ msgstr ""
"skráakerfinu, þá ættir þú að velja þennan valkost.\n"
"\n"
" * \"%s\". Þessi uppsetning leyfir þér að uppfæra pakkana sem nú\n"
-"eru uppsettir á Mandriva Linux kerfinu þínu. Disksneiðum og gögnum\n"
+"eru uppsettir á Mageia kerfinu þínu. Disksneiðum og gögnum\n"
"verður ekki breytt. Flest uppsetningarþrep eru enn aðgengileg\n"
"og eru svipuð venjulegri uppfærslu.\n"
"\n"
-"Að nota ``Uppfærslu'' aðgerðina ætti að virka vel á Mandriva Linux\n"
+"Að nota ``Uppfærslu'' aðgerðina ætti að virka vel á Mageia\n"
"kerfum sem eru að keyra útgáfu \"8.1\" eða nýrri. Ekki er mælt með\n"
-"uppfærslu á eldri útgáfum en Mandriva Linux \"8.1\"."
+"uppfærslu á eldri útgáfum en Mageia \"8.1\"."
#: ../help.pm:594
#, c-format
@@ -1331,7 +1382,7 @@ msgstr ""
"sem víxlar til og frá latneska lyklaborðinu."
#: ../help.pm:612
-#, c-format
+#, fuzzy, c-format
msgid ""
"The first step is to choose your preferred language.\n"
"\n"
@@ -1347,8 +1398,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1422,7 +1472,12 @@ msgstr ""
msgid "Espanol"
msgstr "Spænska"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1509,88 +1564,7 @@ msgstr ""
"Veldu tengið sem þú vilt nota. Tengið \"COM1\" í Windows er kallað\n"
"\"ttyS0\" í GNU/Linux, \"COM2\" er \"ttyS1\", o.s.frv."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Þetta er ein mest áríðandi ákvörðun sem þú tekur fyrir öryggi GNU/Linux\n"
-"kerfis. Þú verður að gefa upp lykilorð fyrir \"root\". \"root\" er "
-"kerfisstjóri\n"
-"og eini notandinn sem má framkvæma uppfærslur, bæta við notendum,\n"
-"breyta uppsetningu kerfisins, og svo framvegis. Í stuttu máli \"root\" má\n"
-"gera allt!. Þess vegna verður þú að velja lykilorð sem er erfitt að giska "
-"á.\n"
-"DrakX mun segja þér ef lykilorðið er of einfalt. Eins og þú sérð þá þarft\n"
-"þú ekki að slá inn lykilorð, en við ráðleggjum þér alls ekki að hafa það\n"
-"þannig. GNU/Linux er alveg eins viðkvæmt fyrir villum kerfisstjóra og\n"
-"önnur stýrikerfi. Þar sem \"root\" getur farið framhjá öllum takmörkunum\n"
-"og óvart eytt öllum gögnum á disksneiðum með því að vísa kæruleysislega\n"
-"í disksneiðarnar, Það er áríðandi að það sé ekki einfalt að verða \"root\"\n"
-"\n"
-"Lykilorðið ætti að vera blanda af bókstöfum og tölum og að minnsta\n"
-"kosti 8 stafa langt. Aldrei skrifa niður \"root\" lykilorðið -- Þá verður\n"
-"allt of auðvelt að brjótast inn í kerfið.\n"
-"\n"
-"Hafið lykilorðið heldur ekki of langt eða flókið því þú verður að muna það!\n"
-"\n"
-"Lykilorðið verður ekki birt á skjánum þegar þú slærð það inn. Til að\n"
-"minnka hættu á innsláttarvillu ert þú beðinn um að slá lykilorðið tvisvar.\n"
-"Ef þú gerir þá sömu innsláttar villuna tvisvar verður þú að nota þetta\n"
-"``ranga'' lykilorð í fyrsta sinn þegar þú tengist sem \"root\".\n"
-"\n"
-"Ef þú vilt nota auðkenningar-miðlara til að stjórna aðgangi að tölvunni\n"
-"þinni, smelltu þá á \"%s\" hnappinn.\n"
-"\n"
-"Ef þú notar LDAP, NIS eða PDC Windows Domain auðkenningar-\n"
-"þjónustur, veldu réttan valkost fyrir \"%s\". Ef þú veist ekki hvað\n"
-"þú átt að nota spurðu þá net-stjórnandann.\n"
-"\n"
-"Ef þú átt í vandræðum með að muna lykilorð, eða ef tölvan þín verður\n"
-"aldrei tengd Internetinu, og þú treystir algerlega öllum þeim sem koma\n"
-"að tölvunni þinni, þá getur þú valið að hafa \"%s\"."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "auðkenning"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1604,7 +1578,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1628,10 +1602,10 @@ msgstr ""
"það aðeins ef þú veist hvað þú ert að gera."
#: ../help.pm:745
-#, c-format
+#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1652,11 +1626,11 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Nú er komið að því að setja upp prentkerfi fyrir tölvuna þína. Önnur\n"
-"stýrikerfis bjóða þér kannski upp á eitt, en Mandriva Linux býður tvö.\n"
+"stýrikerfis bjóða þér kannski upp á eitt, en Mageia býður tvö.\n"
"Hvort þeirra hefur sína kosti\n"
"\n"
" * \"%s\" -- sem er skammstöfun fyrir ``prenta ekki biðröð'' \n"
@@ -1678,7 +1652,7 @@ msgstr ""
"prentaraval og stjórnun á prentara.\n"
"\n"
"Hvað sem þú velur núna, þá getur þú breytt prentkerfinu með því að\n"
-"keyra PrinterDrake frá Mandriva Linux stjórnborðinu og smella á \"%s\"\n"
+"keyra PrinterDrake frá Mageia stjórnborðinu og smella á \"%s\"\n"
"hnappinn."
#: ../help.pm:768
@@ -1686,7 +1660,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Sérfræðingur"
@@ -1699,7 +1678,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1739,7 +1718,7 @@ msgstr ""
"þá getur þú smellt á hnappinn hér og bent á annan rekil."
#: ../help.pm:794
-#, c-format
+#, fuzzy, c-format
msgid ""
"As a review, DrakX will present a summary of information it has gathered\n"
"about your system. Depending on the hardware installed on your machine, you\n"
@@ -1762,11 +1741,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1784,8 +1758,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1802,7 +1775,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1869,7 +1842,12 @@ msgstr ""
"tölvunni þinni. Ef þú ætlar að nota þessa vél sem miðlara þá er góð\n"
"hugmynd að fara vel yfir þessa uppsetningu."
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "ISDN spjald"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN spjald"
@@ -1880,26 +1858,28 @@ msgid "Graphical Interface"
msgstr "Myndrænt viðmót"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"Veldu diskinn sem þú vilt hreinsa allt af til að setja upp nýja\n"
-"Mandriva Linux disksneið. Varúð, öllum gögnum á disknum verður\n"
+"Mageia disksneið. Varúð, öllum gögnum á disknum verður\n"
"eytt, og það er ekki hægt að sækja þau aftur!"
#: ../help.pm:866
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Smelltu á \"%s\" ef þú vilt eyða öllum gögnum og disksneiðum\n"
"á þessum disk. Varúð! Eftir að þú hefur smellt á \"%s\", getur\n"
@@ -1919,3 +1899,115 @@ msgstr "Næsta ->"
msgid "<- Previous"
msgstr "<- Fyrra"
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": smellir þú á \"%s\" hnappinn mun það ræsa prentara-uppsetningar-"
+#~ "ráðgjafann\n"
+#~ "Skoðið viðeigandi kafla í ``Starter Guide'' varðandi meiri upplýsingar um "
+#~ "hvernig\n"
+#~ "á að setja upp nýjan prentara. Viðmótið sem sýnt er í handbókinni okkar "
+#~ "er\n"
+#~ "svipað því sem er notað í uppsetningarforritinu."
+
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "Þetta er ein mest áríðandi ákvörðun sem þú tekur fyrir öryggi GNU/Linux\n"
+#~ "kerfis. Þú verður að gefa upp lykilorð fyrir \"root\". \"root\" er "
+#~ "kerfisstjóri\n"
+#~ "og eini notandinn sem má framkvæma uppfærslur, bæta við notendum,\n"
+#~ "breyta uppsetningu kerfisins, og svo framvegis. Í stuttu máli \"root\" "
+#~ "má\n"
+#~ "gera allt!. Þess vegna verður þú að velja lykilorð sem er erfitt að giska "
+#~ "á.\n"
+#~ "DrakX mun segja þér ef lykilorðið er of einfalt. Eins og þú sérð þá "
+#~ "þarft\n"
+#~ "þú ekki að slá inn lykilorð, en við ráðleggjum þér alls ekki að hafa það\n"
+#~ "þannig. GNU/Linux er alveg eins viðkvæmt fyrir villum kerfisstjóra og\n"
+#~ "önnur stýrikerfi. Þar sem \"root\" getur farið framhjá öllum takmörkunum\n"
+#~ "og óvart eytt öllum gögnum á disksneiðum með því að vísa kæruleysislega\n"
+#~ "í disksneiðarnar, Það er áríðandi að það sé ekki einfalt að verða \"root"
+#~ "\"\n"
+#~ "\n"
+#~ "Lykilorðið ætti að vera blanda af bókstöfum og tölum og að minnsta\n"
+#~ "kosti 8 stafa langt. Aldrei skrifa niður \"root\" lykilorðið -- Þá "
+#~ "verður\n"
+#~ "allt of auðvelt að brjótast inn í kerfið.\n"
+#~ "\n"
+#~ "Hafið lykilorðið heldur ekki of langt eða flókið því þú verður að muna "
+#~ "það!\n"
+#~ "\n"
+#~ "Lykilorðið verður ekki birt á skjánum þegar þú slærð það inn. Til að\n"
+#~ "minnka hættu á innsláttarvillu ert þú beðinn um að slá lykilorðið "
+#~ "tvisvar.\n"
+#~ "Ef þú gerir þá sömu innsláttar villuna tvisvar verður þú að nota þetta\n"
+#~ "``ranga'' lykilorð í fyrsta sinn þegar þú tengist sem \"root\".\n"
+#~ "\n"
+#~ "Ef þú vilt nota auðkenningar-miðlara til að stjórna aðgangi að tölvunni\n"
+#~ "þinni, smelltu þá á \"%s\" hnappinn.\n"
+#~ "\n"
+#~ "Ef þú notar LDAP, NIS eða PDC Windows Domain auðkenningar-\n"
+#~ "þjónustur, veldu réttan valkost fyrir \"%s\". Ef þú veist ekki hvað\n"
+#~ "þú átt að nota spurðu þá net-stjórnandann.\n"
+#~ "\n"
+#~ "Ef þú átt í vandræðum með að muna lykilorð, eða ef tölvan þín verður\n"
+#~ "aldrei tengd Internetinu, og þú treystir algerlega öllum þeim sem koma\n"
+#~ "að tölvunni þinni, þá getur þú valið að hafa \"%s\"."
+
+#~ msgid "authentication"
+#~ msgstr "auðkenning"
diff --git a/perl-install/install/help/po/it.po b/perl-install/install/help/po/it.po
index 17d962bc1..3d1c9fd98 100644
--- a/perl-install/install/help/po/it.po
+++ b/perl-install/install/help/po/it.po
@@ -13,10 +13,11 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX-it\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2006-02-03 21:33+0100\n"
"Last-Translator: Andrea Celli <a.celli@caltanet.it>\n"
"Language-Team: Italian <kde-i18n-it@kde.org>\n"
+"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -24,15 +25,15 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Prima di proseguire dovresti leggere con attenzione le condizioni d'uso che\n"
-"riguardano l'intera distribuzione Mandriva Linux. Se sei d'accordo con\n"
+"riguardano l'intera distribuzione Mageia. Se sei d'accordo con\n"
"tutti i termini della licenza clicca sul pulsante \"%s\". In caso contrario\n"
"ti basterà un clic sul pulsante \"%s\" per riavviare il computer."
@@ -118,6 +119,16 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Vuoi sfruttare questa possibilità?"
@@ -126,7 +137,8 @@ msgstr "Vuoi sfruttare questa possibilità?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -136,24 +148,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"In alto puoi vedere l'elenco delle partizioni Linux individuate sul\n"
@@ -193,15 +209,15 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/it/drakx-chapter.xml
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"La distribuzione Mandriva Linux è suddivisa su più CD-ROM. Se uno dei\n"
+"La distribuzione Mageia è suddivisa su più CD-ROM. Se uno dei\n"
"pacchetti selezionati si trova su un CD-ROM diverso da quello attualmente\n"
"inserito nel lettore, DrakX provvederà a espellerlo e a chiedervi di\n"
"inserire quello corretto. Se non avete a portata di mano il CD richiesto,\n"
@@ -211,15 +227,14 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/it/drakx-chapter.xml
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -232,8 +247,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -272,7 +286,7 @@ msgid ""
msgstr ""
"Adesso è il momento di indicare i programmi che volete siano installati sul\n"
"vostro sistema. Ci sono migliaia di pacchetti disponibili per\n"
-"Mandriva Linux, e sono stati suddivisi in gruppi in base al loro campo di\n"
+"Mageia, e sono stati suddivisi in gruppi in base al loro campo di\n"
"utilizzo, in modo da facilitarne la gestione.\n"
"\n"
"I gruppi sono a loro volta suddivisi in quattro categorie. Potete\n"
@@ -348,7 +362,7 @@ msgstr "Installazione veramente minimale"
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/it/drakx-chapter.xml
#: ../help.pm:152
-#, c-format
+#, fuzzy, c-format
msgid ""
"If you choose to install packages individually, the installer will present\n"
"a tree containing all packages classified by groups and subgroups. While\n"
@@ -361,10 +375,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -396,11 +410,11 @@ msgstr ""
"!! Se avete selezionato un pacchetto che offre un servizio come server\n"
"(intenzionalmente, oppure perché faceva parte di un gruppo), vi verrà\n"
"chiesta conferma per la sua effettiva installazione. Come opzione\n"
-"predefinita, in Mandriva Linux tutti i servizi installati vengono attivati\n"
+"predefinita, in Mageia tutti i servizi installati vengono attivati\n"
"automaticamente all'avvio. Sebbene si tratti di servizi sicuri ed esenti da\n"
"problemi noti al momento del rilascio della distribuzione, non è escluso\n"
"che possano essere scoperte falle di sicurezza al loro interno dopo la\n"
-"pubblicazione di questa versione di Mandriva Linux. Quindi, se non avete\n"
+"pubblicazione di questa versione di Mageia. Quindi, se non avete\n"
"idea di cosa faccia un particolare servizio o del perché debba essere\n"
"installato, cliccate su \"%s\". Scegliendo \"%s\", invece, i servizi\n"
"elencati saranno installati e attivati in automatico all'avvio del sistema.\n"
@@ -430,23 +444,7 @@ msgstr "Dipendenze automatiche"
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/it/drakx-chapter.xml
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": cliccando sul pulsante \"%s\" sarà avviato l'assistente di\n"
-"configurazione della stampante. Consultate il relativo capitolo della\n"
-"\"Guida introduttiva\" per avere maggiori informazioni su come configurare\n"
-"una nuova stampante. L'interfaccia descritta in tale sede è simile a quella\n"
-"utilizzata nel corso dell'installazione."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/it/drakx-chapter.xml
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -518,7 +516,12 @@ msgstr ""
"essere a sua volta usato anche da altre macchine che si trovino sulla\n"
"stessa rete locale."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Sincronizzazione automatica dell'orario"
@@ -552,11 +555,11 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/it/drakx-chapter.xml
#: ../help.pm:234
-#, c-format
+#, fuzzy, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -612,7 +615,7 @@ msgid ""
msgstr ""
"X (abbreviazione per \"X Window System\") è il cuore dell'interfaccia\n"
"grafica di GNU/Linux, sul quale sono basati tutti gli ambienti grafici\n"
-"inclusi in Mandriva Linux (KDE, GNOME, AfterStep, WindowMaker, etc.).\n"
+"inclusi in Mageia (KDE, GNOME, AfterStep, WindowMaker, etc.).\n"
"\n"
"Vi verrà mostrata una lista dei parametri da configurare in modo da avere\n"
"la miglior visualizzazione possibile:\n"
@@ -738,41 +741,45 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/it/drakx-chapter.xml
#: ../help.pm:319
-#, c-format
+#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -781,15 +788,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -803,12 +810,12 @@ msgid ""
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
"A questo punto dovete scegliere in quali punti del vostro disco rigido\n"
-"installare il sistema operativo Mandriva Linux. Se il disco è vuoto, o se\n"
+"installare il sistema operativo Mageia. Se il disco è vuoto, o se\n"
"tutto lo spazio disponibile è occupato da un altro sistema operativo già\n"
"installato, allora dovrete creare o modificare le partizioni. In breve,\n"
"partizionare un disco rigido consiste nel suddividerlo logicamente in più\n"
"zone in maniera da creare lo spazio necessario all'installazione di\n"
-"Mandriva Linux.\n"
+"Mageia.\n"
"\n"
"Dato che gli effetti del partizionamento sono di solito irreversibili, e\n"
"possono causare la perdita di dati, questa operazione può intimidire e\n"
@@ -839,7 +846,7 @@ msgstr ""
"dati, a patto che prima di procedere la partizione Windows sia stata\n"
"deframmentata. Vi consigliamo caldamente di fare comunque una copia di\n"
"sicurezza dei vostri dati. Questa è la soluzione consigliata se desiderate\n"
-"usare sia Mandriva Linux che Microsoft Windows sullo stesso computer.\n"
+"usare sia Mageia che Microsoft Windows sullo stesso computer.\n"
"\n"
" Prima di scegliere questa opzione, tenete presente che le dimensioni\n"
"della partizione su cui risiede Windows saranno ridotte rispetto a quelle\n"
@@ -848,7 +855,7 @@ msgstr ""
"\n"
" * \"%s\": se desiderate cancellare tutti i dati e tutte le partizioni\n"
"presenti sul vostro disco rigido e rimpiazzarli con il vostro nuovo sistema\n"
-"Mandriva Linux, potete selezionare questa opzione. Fate molta attenzione,\n"
+"Mageia, potete selezionare questa opzione. Fate molta attenzione,\n"
"perché dopo aver dato conferma non potrete più tornare indietro.\n"
"\n"
" !! Se scegliete questa opzione tutti i dati sul vostro disco saranno\n"
@@ -875,7 +882,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Usa partizioni esistenti"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Cancella l'intero disco"
@@ -964,10 +976,25 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Crea il floppy di installazione automatica"
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/it/drakx-chapter.xml
-#: ../help.pm:415
-#, c-format
+#: ../help.pm:408
+#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -986,7 +1013,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -1008,7 +1035,7 @@ msgstr ""
"Cliccate su \"%s\" quando siete pronti ad avviare la formattazione.\n"
"\n"
"Cliccate su \"%s\" se desiderate installare il vostro nuovo sistema\n"
-"operativo Mandriva Linux su partizioni diverse da quelle selezionate.\n"
+"operativo Mageia su partizioni diverse da quelle selezionate.\n"
"\n"
"Cliccate su \"%s\" se desiderate selezionare alcune delle partizioni\n"
"affinché venga controllata la presenza di eventuali blocchi danneggiati su\n"
@@ -1017,9 +1044,9 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/it/drakx-chapter.xml
#: ../help.pm:437
-#, c-format
+#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -1031,7 +1058,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"È molto probabile che, al momento in cui installate Mandriva Linux, alcuni\n"
+"È molto probabile che, al momento in cui installate Mageia, alcuni\n"
"pacchetti siano stati aggiornati rispetto alla versione iniziale;\n"
"potrebbero essere stati corretti degli errori, o risolti eventuali problemi\n"
"relativi alla sicurezza. Per permettervi di beneficiare di questi\n"
@@ -1050,7 +1077,7 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/it/drakx-chapter.xml
#: ../help.pm:450
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -1059,7 +1086,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1074,7 +1101,7 @@ msgstr ""
"\n"
"Se non sapete quale scelta fare, utilizzate l'impostazione predefinita.\n"
"Potrete comunque cambiare in seguito il livello di sicurezza usando\n"
-"draksec, uno strumento del Mandriva Linux Control Center.\n"
+"draksec, uno strumento del Mageia Control Center.\n"
"\n"
"Nel campo \"%s\" inserite l'indirizzo email dell'utente che sarà\n"
"responsabile per la sicurezza: tutti i messaggi relativi alla sicurezza\n"
@@ -1088,24 +1115,27 @@ msgstr "Amministratore per la sicurezza"
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/it/drakx-chapter.xml
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1121,21 +1151,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1152,17 +1184,11 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"A questo punto, dovete decidere quali partizioni devono essere usate per\n"
-"l'installazione del vostro sistema Mandriva Linux. Se sono già state\n"
+"l'installazione del vostro sistema Mageia. Se sono già state\n"
"definite delle partizioni, grazie a una precedente installazione di\n"
"GNU/Linux o usando un altro programma di partizionamento, potete utilizzare\n"
"quelle. In caso contrario, sarà necessario creare o modificare le\n"
@@ -1179,7 +1205,7 @@ msgstr ""
" * \"%s\": questa opzione cancella tutte le partizioni presenti sul disco\n"
"selezionato.\n"
"\n"
-" * \"%s\": vi permette di creare automaticamente partizioni ext3 e di swap\n"
+" * \"%s\": vi permette di creare automaticamente partizioni ext4 e di swap\n"
"nello spazio libero presente sul vostro disco rigido.\n"
"\n"
"\"%s\": permette di accedere a ulteriori funzionalità:\n"
@@ -1233,20 +1259,38 @@ msgstr ""
"\n"
"Per ulteriori informazioni in merito ai diversi tipi di filesystem\n"
"disponibili, consultate il capitolo ext2FS del ''Manuale di riferimento''.\n"
-"\n"
-"Se state effettuando l'installazione su una macchina PPC, sarà meglio\n"
-"creare una piccola partizione HFS di ''bootstrap'' di almeno 1 MB, che\n"
-"verrà utilizzata dal bootloader yaboot. Se decidete di creare una\n"
-"partizione più grande, diciamo sui 50 MB, essa potrebbe rappresentare un\n"
-"utile deposito in cui conservare un kernel di riserva e immagini di avvio\n"
-"da utilizzare in caso di emergenza."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Mount automatico di supporti rimovibili"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Scambio tra modo normale e esperto"
@@ -1254,41 +1298,47 @@ msgstr "Scambio tra modo normale e esperto"
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/it/drakx-chapter.xml
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Sul vostro disco rigido è stata individuata più di una partizione\n"
"Microsoft. Scegliete quella che deve essere ridimensionata in modo da poter\n"
-"installare il vostro nuovo sistema operativo Mandriva Linux.\n"
+"installare il vostro nuovo sistema operativo Mageia.\n"
"\n"
"Ogni partizione è elencata in questo modo: \"nome Linux\", \"nome Windows\"\n"
"\"Dimensione\".\n"
@@ -1334,35 +1384,35 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/it/drakx-chapter.xml
#: ../help.pm:572
-#, c-format
+#, fuzzy, c-format
msgid ""
"This step is activated only if an existing GNU/Linux partition has been\n"
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Questo passo viene eseguito soltanto se sulla vostra macchina viene trovata\n"
"una partizione GNU/Linux preesistente.\n"
"\n"
"A questo punto DrakX ha bisogno di sapere se intendete effettuare una nuova\n"
-"installazione o un aggiornamento di un sistema Mandriva Linux esistente:\n"
+"installazione o un aggiornamento di un sistema Mageia esistente:\n"
"\n"
" * \"%s\": nella maggior parte dei casi cancella completamente il vecchio\n"
"sistema. Tuttavia, in base allo schema di partizionamento usato, potete\n"
@@ -1372,14 +1422,14 @@ msgstr ""
"\n"
" * \"%s\": questo tipo di installazione vi permette di effettuare un\n"
"semplice aggiornamento dei pacchetti già installati sul vostro sistema\n"
-"Mandriva Linux. Tutte le partizioni attuali del disco rigido vengono\n"
+"Mageia. Tutte le partizioni attuali del disco rigido vengono\n"
"conservate, come pure le configurazioni e i dati individuali degli utenti.\n"
"La maggior parte degli altri passi relativi alla configurazione restano\n"
"disponibili, come per una installazione normale.\n"
"\n"
"L'opzione \"Aggiornamento\" non dovrebbe comportare difficoltà per sistemi\n"
-"Mandriva Linux a partire dalla versione \"8.1\", mentre non è consigliabile\n"
-"utilizzarla per aggiornare versioni di Mandriva Linux precedenti la \"8.1\"."
+"Mageia a partire dalla versione \"8.1\", mentre non è consigliabile\n"
+"utilizzarla per aggiornare versioni di Mageia precedenti la \"8.1\"."
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/it/drakx-chapter.xml
@@ -1426,7 +1476,7 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/it/drakx-chapter.xml
#: ../help.pm:612
-#, c-format
+#, fuzzy, c-format
msgid ""
"The first step is to choose your preferred language.\n"
"\n"
@@ -1442,8 +1492,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1487,7 +1536,7 @@ msgstr ""
"Riguardo al supporto UTF-8 (Unicode): Unicode è un nuovo standard per la\n"
"codifica dei caratteri, progettato per supportare tutte le lingue\n"
"esistenti. Il suo supporto su GNU/Linux è ancora in fase di sviluppo, e per\n"
-"questo motivo la sua attivazione su Mandriva Linux dipenderà dalle scelte\n"
+"questo motivo la sua attivazione su Mageia dipenderà dalle scelte\n"
"effettuate dall'utente:\n"
"\n"
" * se scegliete lingue fortemente legate alle vecchie codifiche (lingue del\n"
@@ -1521,9 +1570,14 @@ msgstr ""
msgid "Espanol"
msgstr "Spagnolo"
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/it/drakx-chapter.xml
-#: ../help.pm:653
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1617,95 +1671,7 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/it/drakx-chapter.xml
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Questo è il punto più critico per la sicurezza del vostro sistema\n"
-"GNU/Linux: state per decidere la password di \"root\". \"root\" è\n"
-"l'amministratore del sistema, ed è l'unico utente autorizzato a compiere\n"
-"aggiornamenti, aggiungere altri utenti, cambiare la configurazione globale\n"
-"del sistema, e così via. In breve, \"root\" può fare tutto ciò che vuole!\n"
-"Questo è il motivo per cui dovete scegliere una password che sia difficile\n"
-"da indovinare, e se ne avete scelta una troppo facile DrakX vi avvertirà.\n"
-"Potete anche scegliere di non digitare alcuna password, ma noi vi\n"
-"consigliamo caldamente di farlo, poiché GNU/Linux è vulnerabile a errori da\n"
-"parte dell'utente esattamente come qualsiasi altro sistema operativo.\n"
-"Quindi è molto importante che sia difficile assumere il ruolo di \"root\",\n"
-"potendo quest'ultimo scavalcare ogni limitazione e, magari\n"
-"involontariamente, cancellare tutti i dati presenti sulle partizioni\n"
-"accedendovi in maniera impropria.\n"
-"\n"
-"La password ideale è costituita da un insieme di almeno 8 caratteri\n"
-"alfanumerici. Non appuntate mai da nessuna parte la password di \"root\",\n"
-"renderebbe troppo facile l'accesso al sistema da parte di estranei.\n"
-"\n"
-"Tuttavia, non scegliete una password troppo lunga o complicata, perché\n"
-"dovete essere in grado di ricordarla senza troppo sforzo.\n"
-"\n"
-"La password non verrà mostrata mentre la digitate; quindi, per ridurre il\n"
-"rischio di un errore di battitura, è necessario che venga inserita due\n"
-"volte. Se per caso però commettete lo stesso errore entrambe le volte,\n"
-"questa password \"sbagliata\" sarà quella che verrà richiesta la prima\n"
-"volta che vi connetterete al sistema come \"root\".\n"
-"\n"
-"Se volete che l'accesso al vostro computer sia controllato da un server di\n"
-"autenticazione, cliccate sul pulsante \"%s\".\n"
-"\n"
-"Se la vostra rete utilizza per l'autenticazione i servizi LDAP, NIS, o il\n"
-"PDC di un dominio Windows, selezionate il pulsante \"%s\". Se non\n"
-"siete sicuri sulla scelta da fare, chiedete al vostro amministratore di\n"
-"rete.\n"
-"\n"
-"Se per qualche motivo per voi fosse un problema dovervi ricordare una\n"
-"password, se il vostro computer non sarà mai collegato a Internet, e se\n"
-"avete piena fiducia nelle persone che lo useranno, allora potete ricorrere\n"
-"all'opzione \"%s\"."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "autenticazione"
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/it/drakx-chapter.xml
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1719,7 +1685,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1747,10 +1713,10 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/it/drakx-chapter.xml
#: ../help.pm:745
-#, c-format
+#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1771,12 +1737,11 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Qui potrete scegliere il sistema di stampa da usare con il vostro computer;\n"
-"altri sistemi operativi ve ne offrono uno, ma Mandriva Linux ve ne offre "
-"ben\n"
+"altri sistemi operativi ve ne offrono uno, ma Mageia ve ne offre ben\n"
"due. Ciascuno di essi è adatto a un particolare tipo di configurazione.\n"
"\n"
" * \"%s\" -- che sta per \"\"print, do not queue\"\" (\"stampa, non mettere\n"
@@ -1800,14 +1765,19 @@ msgstr ""
"\n"
"Se fate una scelta adesso e successivamente cambiate idea, potrete sempre\n"
"scegliere un diverso sistema di stampa avviando PrinterDrake dal\n"
-"Mandriva Linux Control Center e cliccando sul pulsante \"%s\"."
+"Mageia Control Center e cliccando sul pulsante \"%s\"."
#: ../help.pm:768
#, c-format
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Esperto"
@@ -1822,7 +1792,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1873,7 +1843,7 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/it/drakx-chapter.xml
#: ../help.pm:794
-#, c-format
+#, fuzzy, c-format
msgid ""
"As a review, DrakX will present a summary of information it has gathered\n"
"about your system. Depending on the hardware installed on your machine, you\n"
@@ -1896,11 +1866,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1918,8 +1883,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1936,7 +1900,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1990,7 +1954,7 @@ msgstr ""
"\n"
" * \"%s\": se desiderate configurare l'accesso a Internet o a una rete\n"
"locale potete farlo adesso. Consultate la documentazione stampata, oppure\n"
-"utilizzate il Mandriva Linux Control Center una volta terminata\n"
+"utilizzate il Mageia Control Center una volta terminata\n"
"l'installazione per avere a vostra disposizione un aiuto in linea completo.\n"
"\n"
" * \"%s\": vi permette di configurare gli indirizzi di proxy HTTP e FTP,\n"
@@ -2008,13 +1972,18 @@ msgstr ""
" * \"%s\": cliccate su questo pulsante per cambiare la configurazione del\n"
"bootloader. Questa opzione dovrebbe essere utilizzata solo dagli utenti più\n"
"esperti. Consultate la documentazione stampata o l'aiuto in linea del\n"
-"Mandriva Linux Control Center riguardo la configurazione del bootloader.\n"
+"Mageia Control Center riguardo la configurazione del bootloader.\n"
"\n"
" * \"%s\": qui potrete stabilire in dettaglio quali servizi saranno\n"
"attivati sul vostro sistema. Se pensate di utilizzare il computer come\n"
"server è senz'altro una buona idea controllare queste impostazioni."
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "Scheda ISDN"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "Scheda ISDN"
@@ -2027,14 +1996,14 @@ msgstr "Interfaccia grafica"
# DO NOT BOTHER TO MODIFY HERE, SEE:
# cvs.mandriva.com:/cooker/doc/manualB/modules/it/drakx-chapter.xml
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"Scegli il disco rigido che vuoi cancellare per poter preparare le nuove\n"
-"partizioni per Mandriva Linux. Attenzione! tutti i dati sul disco andranno\n"
+"partizioni per Mageia. Attenzione! tutti i dati sul disco andranno\n"
"perduti e non saranno più recuperabili!"
# DO NOT BOTHER TO MODIFY HERE, SEE:
@@ -2043,12 +2012,14 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Clicca sul pulsante \"%s\" se vuoi cancellare tutte le partizioni e\n"
"i dati presenti su questo disco rigido. Stai attento, dopo aver\n"
@@ -2068,3 +2039,129 @@ msgstr "Avanti ->"
msgid "<- Previous"
msgstr "<- Indietro"
+# DO NOT BOTHER TO MODIFY HERE, SEE:
+# cvs.mandriva.com:/cooker/doc/manualB/modules/it/drakx-chapter.xml
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": cliccando sul pulsante \"%s\" sarà avviato l'assistente di\n"
+#~ "configurazione della stampante. Consultate il relativo capitolo della\n"
+#~ "\"Guida introduttiva\" per avere maggiori informazioni su come "
+#~ "configurare\n"
+#~ "una nuova stampante. L'interfaccia descritta in tale sede è simile a "
+#~ "quella\n"
+#~ "utilizzata nel corso dell'installazione."
+
+# DO NOT BOTHER TO MODIFY HERE, SEE:
+# cvs.mandriva.com:/cooker/doc/manualB/modules/it/drakx-chapter.xml
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "Questo è il punto più critico per la sicurezza del vostro sistema\n"
+#~ "GNU/Linux: state per decidere la password di \"root\". \"root\" è\n"
+#~ "l'amministratore del sistema, ed è l'unico utente autorizzato a compiere\n"
+#~ "aggiornamenti, aggiungere altri utenti, cambiare la configurazione "
+#~ "globale\n"
+#~ "del sistema, e così via. In breve, \"root\" può fare tutto ciò che "
+#~ "vuole!\n"
+#~ "Questo è il motivo per cui dovete scegliere una password che sia "
+#~ "difficile\n"
+#~ "da indovinare, e se ne avete scelta una troppo facile DrakX vi "
+#~ "avvertirà.\n"
+#~ "Potete anche scegliere di non digitare alcuna password, ma noi vi\n"
+#~ "consigliamo caldamente di farlo, poiché GNU/Linux è vulnerabile a errori "
+#~ "da\n"
+#~ "parte dell'utente esattamente come qualsiasi altro sistema operativo.\n"
+#~ "Quindi è molto importante che sia difficile assumere il ruolo di \"root"
+#~ "\",\n"
+#~ "potendo quest'ultimo scavalcare ogni limitazione e, magari\n"
+#~ "involontariamente, cancellare tutti i dati presenti sulle partizioni\n"
+#~ "accedendovi in maniera impropria.\n"
+#~ "\n"
+#~ "La password ideale è costituita da un insieme di almeno 8 caratteri\n"
+#~ "alfanumerici. Non appuntate mai da nessuna parte la password di \"root"
+#~ "\",\n"
+#~ "renderebbe troppo facile l'accesso al sistema da parte di estranei.\n"
+#~ "\n"
+#~ "Tuttavia, non scegliete una password troppo lunga o complicata, perché\n"
+#~ "dovete essere in grado di ricordarla senza troppo sforzo.\n"
+#~ "\n"
+#~ "La password non verrà mostrata mentre la digitate; quindi, per ridurre "
+#~ "il\n"
+#~ "rischio di un errore di battitura, è necessario che venga inserita due\n"
+#~ "volte. Se per caso però commettete lo stesso errore entrambe le volte,\n"
+#~ "questa password \"sbagliata\" sarà quella che verrà richiesta la prima\n"
+#~ "volta che vi connetterete al sistema come \"root\".\n"
+#~ "\n"
+#~ "Se volete che l'accesso al vostro computer sia controllato da un server "
+#~ "di\n"
+#~ "autenticazione, cliccate sul pulsante \"%s\".\n"
+#~ "\n"
+#~ "Se la vostra rete utilizza per l'autenticazione i servizi LDAP, NIS, o "
+#~ "il\n"
+#~ "PDC di un dominio Windows, selezionate il pulsante \"%s\". Se non\n"
+#~ "siete sicuri sulla scelta da fare, chiedete al vostro amministratore di\n"
+#~ "rete.\n"
+#~ "\n"
+#~ "Se per qualche motivo per voi fosse un problema dovervi ricordare una\n"
+#~ "password, se il vostro computer non sarà mai collegato a Internet, e se\n"
+#~ "avete piena fiducia nelle persone che lo useranno, allora potete "
+#~ "ricorrere\n"
+#~ "all'opzione \"%s\"."
+
+#~ msgid "authentication"
+#~ msgstr "autenticazione"
diff --git a/perl-install/install/help/po/ja.po b/perl-install/install/help/po/ja.po
index c0b825e00..765b07786 100644
--- a/perl-install/install/help/po/ja.po
+++ b/perl-install/install/help/po/ja.po
@@ -9,10 +9,11 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX-help-ja\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2007-03-03 08:00+0900\n"
"Last-Translator: Yukiko Bando <ybando@k6.dion.ne.jp>\n"
"Language-Team: Japanese <cooker-i18n@mandrivalinux.org>\n"
+"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -20,14 +21,14 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
-"先に進む前にライセンスをよくお読みください。これは Mandriva Linux\n"
+"先に進む前にライセンスをよくお読みください。これは Mageia\n"
"全体に適用されます。すべての項目に同意する場合は「%s」を押してください。\n"
"そうでない場合は「%s」をクリックしてコンピュータを再起動してください。"
@@ -107,13 +108,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "この機能を使いますか?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -123,24 +135,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"ハードドライブ内で検出した既存の Linux パーティションのリストです。\n"
@@ -173,29 +189,28 @@ msgstr ""
"\"second lowest SCSI ID\" を意味します。"
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Mandriva Linux のインストールは数枚の CD-ROM から行います。\n"
+"Mageia のインストールは数枚の CD-ROM から行います。\n"
"選択したパッケージが別の CD-ROM の中にあると、DrakX は現在の CD を\n"
"イジェクトして別の CD を入れるよう促します。\n"
"指示された CD をお持ちでない場合は「%s」をクリックしてください。"
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -208,8 +223,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -246,11 +260,11 @@ msgid ""
"command-line interface. The total size of this installation is about 65\n"
"megabytes."
msgstr ""
-"ここではインストールするプログラムを選びます。Mandriva Linux には数千\n"
+"ここではインストールするプログラムを選びます。Mageia には数千\n"
"ものパッケージが用意されています。それらは管理しやすいように類似した\n"
"アプリケーションごとにグループ化されています 。\n"
"\n"
-"Mandriva Linux ではこのグループをさらに四つのカテゴリに分類しています。\n"
+"Mageia ではこのグループをさらに四つのカテゴリに分類しています。\n"
"パッケージの選択に際しては、複数のカテゴリからグループを選ぶことができ\n"
"ます。例えば「ワークステーション」としてのインストールに「サーバ」\n"
"カテゴリのグループを加えることもできます。\n"
@@ -315,7 +329,7 @@ msgid "Truly minimal install"
msgstr "極小インストール"
#: ../help.pm:152
-#, c-format
+#, fuzzy, c-format
msgid ""
"If you choose to install packages individually, the installer will present\n"
"a tree containing all packages classified by groups and subgroups. While\n"
@@ -328,10 +342,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -360,7 +374,7 @@ msgstr ""
"\n"
"注意!! 選択したグループにサーバ用のパッケージが含まれていたり、あるいは\n"
"個別にそれを選択すると、本当にインストールしてよいか確認を求めます。\n"
-"Mandriva Linux のデフォルトの設定では、インストールされたサービスはすべて\n"
+"Mageia のデフォルトの設定では、インストールされたサービスはすべて\n"
"起動時に自動的に開始されます。ディストリビューションがリリースされた時点\n"
"で既知の問題がなく安全だとされていても、リリース後にセキュリティホールが\n"
"発見される可能性はあります。\n"
@@ -386,20 +400,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "自動的に依存関係を解決する"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": 「%s」をクリックするとプリンタ設定ウィザードが開きます。\n"
-"新しいプリンタのセットアップ方法については Starter Guide をご覧ください。\n"
-"マニュアルに掲載されているインターフェースはインストール中に使用したもの\n"
-"とほぼ同じです。"
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -463,7 +464,12 @@ msgstr ""
"です。このオプションを使うと、このマシンをローカルネットワーク内の他の\n"
"マシンのタイムサーバとして機能させることができます。"
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "自動的に時間を合わせる"
@@ -491,11 +497,11 @@ msgstr ""
"目的に適したサーバを選んでください。"
#: ../help.pm:234
-#, c-format
+#, fuzzy, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -550,7 +556,7 @@ msgid ""
"not successful in getting the display configured."
msgstr ""
"X (X ウィンドウシステム) は GNU/Linux のグラフィカルインターフェースの\n"
-"中心となる部分で、Mandriva Linux に収録されている様々なグラフィカル環境\n"
+"中心となる部分で、Mageia に収録されている様々なグラフィカル環境\n"
"(KDE, GNOME, AfterStep, WindowMaker など) はすべてこれに依存しています。\n"
"\n"
"最適なグラフィック表示を得るために調整可能な設定項目がいくつかあります。\n"
@@ -656,41 +662,45 @@ msgstr ""
"できなかった場合は、「%s」を選んでください。"
#: ../help.pm:319
-#, c-format
+#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -699,15 +709,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -720,10 +730,10 @@ msgid ""
"experience. For more instructions on how to use the DiskDrake utility,\n"
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
-"ここでは Mandriva Linux をハードドライブのどこにインストールするかを\n"
+"ここでは Mageia をハードドライブのどこにインストールするかを\n"
"選択します。ハードドライブが空であったり既存の OS がすべての領域を使用\n"
"している場合は、パーティションを設定しなければなりません。\n"
-"基本的に、Mandriva Linux をインストールするには、ハードドライブを\n"
+"基本的に、Mageia をインストールするには、ハードドライブを\n"
"論理分割して領域を確保することが必要です。\n"
"\n"
"パーティションの設定は、たいていの場合復元不可能なうえ、データの消失に\n"
@@ -750,7 +760,7 @@ msgstr ""
"Microsoft Windows の FAT または NTFS パーティションのサイズを変更します。\n"
"サイズ変更は、Windows のパーティションがあらかじめデフラグ (最適化) されて\n"
"いれば、データを失うことなく実行できます。(必ずデータのバックアップを\n"
-"しておいてください) Mandriva Linux と Microsoft Windows を両方使う場合は\n"
+"しておいてください) Mageia と Microsoft Windows を両方使う場合は\n"
"このオプションを選んでください。(Windows を消去する場合は次を参照して\n"
"ください: ディスク全体を消去)\n"
"\n"
@@ -760,7 +770,7 @@ msgstr ""
"注意してください。\n"
"\n"
" * %s: ハードドライブのすべてのデータとパーティション\n"
-"を削除し Mandriva Linux システムに入れ替える場合はこのオプションを選んで\n"
+"を削除し Mageia システムに入れ替える場合はこのオプションを選んで\n"
"ください。確認後は取り消しできませんので十分注意してください。\n"
"\n"
" !! このオプションを選ぶとディスク上の全データが消去されます !!\n"
@@ -782,7 +792,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "既存のパーティションを使う"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "ディスク全体を消去"
@@ -861,8 +876,23 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "自動インストールフロッピーを作成"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
+#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -881,7 +911,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -900,16 +930,16 @@ msgstr ""
"パーティションをフォーマットする準備ができたら「%s」をクリックしてくださ"
"い。\n"
"\n"
-"Mandriva Linux を別のパーティションに新規にインストールする場合は\n"
+"Mageia を別のパーティションに新規にインストールする場合は\n"
"「%s」をクリックしてください。\n"
"\n"
"ディスクの不良ブロックを検証するパーティションを選ぶには\n"
"「%s」をクリックしてください。"
#: ../help.pm:437
-#, c-format
+#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -921,7 +951,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Mandriva Linux のリリース後に、バグの修正、あるいはセキュリティ問題を解決\n"
+"Mageia のリリース後に、バグの修正、あるいはセキュリティ問題を解決\n"
"するために更新されたパッケージがあるかもしれません。これらのパッケージを\n"
"インターネットからダウンロードしてシステムを更新することができます。既に\n"
"インターネットに接続していれば「%s」にチェックを入れてください。\n"
@@ -933,7 +963,7 @@ msgstr ""
"場合は「%s」を押してください。"
#: ../help.pm:450
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -942,7 +972,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -954,7 +984,7 @@ msgstr ""
"しかしセキュリティレベルを高くすると一般的には使い勝手が悪くなります。\n"
"\n"
"何を選択してよいか分からない場合はデフォルトのままにしておいてください。\n"
-"設定は後で変更できます。Mandriva Linux コントロールセンターには draksec\n"
+"設定は後で変更できます。Mageia コントロールセンターには draksec\n"
"というそのためのツールが用意されています。\n"
"\n"
"%s にセキュリティ管理者のメールアドレスを入力してください。\n"
@@ -966,24 +996,27 @@ msgid "Security Administrator"
msgstr "セキュリティ管理者"
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -999,21 +1032,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1030,16 +1065,10 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-"ここでは Mandriva Linux をインストールするパーティションを選びます。\n"
+"ここでは Mageia をインストールするパーティションを選びます。\n"
"以前にインストールした GNU/Linux システムが残っていたり、別のツールを\n"
"使って既にパーティションが定義されている場合は、既存のパーティションを\n"
"利用することができます。そうでない場合はハードドライブのパーティションを\n"
@@ -1053,7 +1082,7 @@ msgstr ""
"\n"
" * %s: 選択したドライブのすべてのパーティションを削除する\n"
"\n"
-" * %s: ハードドライブの空き領域に自動的に ext3 と swap を\n"
+" * %s: ハードドライブの空き領域に自動的に ext4 と swap を\n"
"作成する\n"
"\n"
"%s: ここから拡張機能を利用できます:\n"
@@ -1103,57 +1132,83 @@ msgstr ""
"\n"
"使用可能な他のファイルシステムについては、Reference Manual の\n"
"'ext2FS' の章をお読みください。\n"
-"\n"
-"PPC マシンにインストールする場合は最低 1 MB の HFS bootstrap \n"
-"パーティションを作成してください。yaboot ブートローダが使用します。\n"
-"このパーティションをもう少し大きくしておくと (例えば 50 MB くらい)、\n"
-"スペアカーネルや緊急ブート用の ramdisk イメージを保存するのに利用できます。"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "リムーバブルメディアを自動的にマウント"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "標準/エキスパートモードの切り替え"
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"ハードドライブに Microsoft のパーティションがいくつか検出されました。\n"
-"Mandriva Linux をインストールするためにリサイズするパーティションを\n"
+"Mageia をインストールするためにリサイズするパーティションを\n"
"選んでください。\n"
"\n"
"パーティションは次のように表示されます: \"Linux name\", \"Windows name\"\n"
@@ -1195,35 +1250,34 @@ msgstr ""
"「%s」をクリックするとすべての国名リストが表示されます。"
#: ../help.pm:572
-#, c-format
+#, fuzzy, c-format
msgid ""
"This step is activated only if an existing GNU/Linux partition has been\n"
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"このステップは既存の GNU/Linux パーティションが検出されたときにのみ表示\n"
"されます。\n"
"\n"
-"DrakX は既存の Mandriva Linux システムを更新するかそれとも新規にインストー"
-"ル\n"
+"DrakX は既存の Mageia システムを更新するかそれとも新規にインストール\n"
"するかを尋ねます:\n"
"\n"
" * %s: 基本的には古いシステムを完全に消去してしまいます。\n"
@@ -1231,10 +1285,10 @@ msgstr ""
"\"home\" ディレクトリ) を残すことができます。パーティションの設定やファイル\n"
"システムを変更される場合はこのオプションをお使いください。\n"
"\n"
-" * %s: これは既に Mandriva Linux にインストールされている\n"
+" * %s: これは既に Mageia にインストールされている\n"
"パッケージをアップデートします。現在のパーティションの設定やユーザデータは\n"
"変更されません。その他の設定の大部分は標準のインストールと同様に行えます。\n"
-"「アップグレード」は Mandriva Linux のバージョンが \"8.1\" 以降であれば\n"
+"「アップグレード」は Mageia のバージョンが \"8.1\" 以降であれば\n"
"問題ないはずです。\"8.1\" より古いバージョンにはお勧めできません。"
#: ../help.pm:594
@@ -1270,7 +1324,7 @@ msgstr ""
"切り替えるキーを指定できます。"
#: ../help.pm:612
-#, c-format
+#, fuzzy, c-format
msgid ""
"The first step is to choose your preferred language.\n"
"\n"
@@ -1286,8 +1340,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1326,7 +1379,7 @@ msgstr ""
"\n"
"ユニコード (UTF-8) サポートについて: ユニコードは世界中のすべての言語を\n"
"カバーします。しかしながら、GNU/Linux 環境でのユニコードサポートはまだ開発\n"
-"途上にあります。そのため、Mandriva Linux ではユーザの選択に応じてその使用を\n"
+"途上にあります。そのため、Mageia ではユーザの選択に応じてその使用を\n"
"制限しています:\n"
"\n"
" * レガシーなエンコードを使用する言語 (latin1/ロシア語/日本語/中国語/\n"
@@ -1354,7 +1407,12 @@ msgstr ""
msgid "Espanol"
msgstr "スペイン語"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1437,85 +1495,7 @@ msgstr ""
"正しいポートを選んでください。例えば、Windows での COM1 ポートは\n"
"GNU/Linux では ttyS0 という名前になります。"
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"root パスワードの設定は GNU/Linux システムのセキュリティにとって最も重要な\n"
-"ポイントです。root はシステムの管理者であり、アップデート/ユーザの追加/\n"
-"システム設定の変更を行える唯一の存在です。root の権限があれば、どんなこと\n"
-"でもできるのです。推測されにくいパスワードを選ばなければなりません。極端に\n"
-"簡単なパスワードにすると DrakX が警告を発します。root パスワードは必須では\n"
-"ありませんが、ここで設定しておくことを強くお勧めします。GNU/Linux も他の\n"
-"OS と同様にオペレータの誤操作という危険にさらされています。root はすべての\n"
-"制限を越えて、ちょっとした不注意からパーティションの全データを削除すること\n"
-"もできます。したがって、簡単に root になれないようにしておかなければなりま\n"
-"せん。\n"
-"\n"
-"パスワードには数字とアルファベットが使えます。最低でも 8 文字以上にします。\n"
-"決して root のパスワードを書き留めたりしないでください。システムを危険に\n"
-"さらすことになります。\n"
-"\n"
-"警告: パスワードを長くしすぎたり複雑にしすぎたりしないでください。\n"
-"思い出せなくなります!\n"
-"\n"
-"入力したパスワードは画面には表示されません。打ち間違いを防ぐために\n"
-"パスワードは 2 回入力します。同じ打ち間違いを 2 度してしまうと、最初に\n"
-"root になるにはその「意図に反した」パスワードを入力しなければなりません。\n"
-"\n"
-"あなたのコンピュータへのアクセスを認証サーバに管理させる場合は\n"
-"「%s」を押してください。\n"
-"\n"
-"あなたのネットワークが LDAP/NIS/PDC Windows Domain 認証サービスのいずれか\n"
-"を使用している場合は、「%s」に正しいものを選んでください。\n"
-"不明な場合はネットワーク管理者に確認してください。\n"
-"\n"
-"何らかの理由でパスワードを覚えられない、あるいはインターネットには一切\n"
-"接続しない、または、あなたのコンピュータを使うすべての人を全面的に信頼\n"
-"できる、といった場合には「%s」を選んでもいいでしょう。"
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "認証"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1529,7 +1509,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1552,10 +1532,10 @@ msgstr ""
"このオプションは意味をよく理解されている場合以外は選ばないでください。"
#: ../help.pm:745
-#, c-format
+#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1576,11 +1556,11 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"ここでは、コンピュータの印刷システムを選択します。他の OS には一種類しか\n"
-"ありませんが、Mandriva Linux には二種類の印刷システムがあります。それぞれ\n"
+"ありませんが、Mageia には二種類の印刷システムがあります。それぞれ\n"
"利点と欠点がありますので、より適したものを選んでください。\n"
"\n"
" * %s - 'Print, Do not Queue (印刷する。キューはしない)' の略。\n"
@@ -1598,7 +1578,7 @@ msgstr ""
"ください。「%s」には印刷/プリンタオプションの選択/プリンタの管理などの\n"
"ためのグラフィカルフロントエンドがあります。\n"
"\n"
-"選択した印刷システムを後で変更する場合は、Mandriva Linux コントロール\n"
+"選択した印刷システムを後で変更する場合は、Mageia コントロール\n"
"センターの PrinterDrake で「%s」をクリックしてください。"
#: ../help.pm:768
@@ -1606,7 +1586,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "エキスパート"
@@ -1619,7 +1604,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1660,7 +1645,7 @@ msgstr ""
"別のドライバを選んでください。"
#: ../help.pm:794
-#, c-format
+#, fuzzy, c-format
msgid ""
"As a review, DrakX will present a summary of information it has gathered\n"
"about your system. Depending on the hardware installed on your machine, you\n"
@@ -1683,11 +1668,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1705,8 +1685,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1723,7 +1702,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1769,7 +1748,7 @@ msgstr ""
"は「%s」をクリックして設定し直してください。\n"
"\n"
" * %s: インターネットとローカルネットワークの設定。\n"
-"マニュアルを参照するか、もしくはインストール完了後に Mandriva Linux\n"
+"マニュアルを参照するか、もしくはインストール完了後に Mageia\n"
"コントロールセンターのヘルプに従って行ってください。\n"
"\n"
" * %s: あなたのマシンがプロキシサーバの背後にあれば\n"
@@ -1784,13 +1763,18 @@ msgstr ""
"\n"
" * %s: ブートローダの設定を変更するときはこのボタンを\n"
"押してください。(注意:これは上級者向きです) 印刷されたドキュメントまたは\n"
-"Mandriva Linux コントロールセンターのブートローダに関するヘルプを参照して\n"
+"Mageia コントロールセンターのブートローダに関するヘルプを参照して\n"
"ください。\n"
"\n"
" * %s: ここではどのサービスを有効にするかを細かく設定できます。\n"
"サーバになるマシンであれば設定を見直すことをお勧めします。"
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "ISDN カード"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN カード"
@@ -1801,13 +1785,13 @@ msgid "Graphical Interface"
msgstr "グラフィカルインターフェース"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
-"Mandriva Linux をインストールするためにフォーマットするハードドライブを\n"
+"Mageia をインストールするためにフォーマットするハードドライブを\n"
"選んでください。注意: このドライブのデータはすべて失われ、回復すること\n"
"はできません。"
@@ -1815,12 +1799,14 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"このハードドライブのすべてのデータとパーティションを削除する場合は\n"
"「%s」をクリックしてください。\n"
@@ -1839,3 +1825,115 @@ msgstr "次へ ->"
#, c-format
msgid "<- Previous"
msgstr "<- 戻る"
+
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": 「%s」をクリックするとプリンタ設定ウィザードが開きます。\n"
+#~ "新しいプリンタのセットアップ方法については Starter Guide をご覧くださ"
+#~ "い。\n"
+#~ "マニュアルに掲載されているインターフェースはインストール中に使用したもの\n"
+#~ "とほぼ同じです。"
+
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "root パスワードの設定は GNU/Linux システムのセキュリティにとって最も重要"
+#~ "な\n"
+#~ "ポイントです。root はシステムの管理者であり、アップデート/ユーザの追加/\n"
+#~ "システム設定の変更を行える唯一の存在です。root の権限があれば、どんなこ"
+#~ "と\n"
+#~ "でもできるのです。推測されにくいパスワードを選ばなければなりません。極端"
+#~ "に\n"
+#~ "簡単なパスワードにすると DrakX が警告を発します。root パスワードは必須で"
+#~ "は\n"
+#~ "ありませんが、ここで設定しておくことを強くお勧めします。GNU/Linux も他の\n"
+#~ "OS と同様にオペレータの誤操作という危険にさらされています。root はすべて"
+#~ "の\n"
+#~ "制限を越えて、ちょっとした不注意からパーティションの全データを削除するこ"
+#~ "と\n"
+#~ "もできます。したがって、簡単に root になれないようにしておかなければなり"
+#~ "ま\n"
+#~ "せん。\n"
+#~ "\n"
+#~ "パスワードには数字とアルファベットが使えます。最低でも 8 文字以上にしま"
+#~ "す。\n"
+#~ "決して root のパスワードを書き留めたりしないでください。システムを危険に\n"
+#~ "さらすことになります。\n"
+#~ "\n"
+#~ "警告: パスワードを長くしすぎたり複雑にしすぎたりしないでください。\n"
+#~ "思い出せなくなります!\n"
+#~ "\n"
+#~ "入力したパスワードは画面には表示されません。打ち間違いを防ぐために\n"
+#~ "パスワードは 2 回入力します。同じ打ち間違いを 2 度してしまうと、最初に\n"
+#~ "root になるにはその「意図に反した」パスワードを入力しなければなりませ"
+#~ "ん。\n"
+#~ "\n"
+#~ "あなたのコンピュータへのアクセスを認証サーバに管理させる場合は\n"
+#~ "「%s」を押してください。\n"
+#~ "\n"
+#~ "あなたのネットワークが LDAP/NIS/PDC Windows Domain 認証サービスのいずれ"
+#~ "か\n"
+#~ "を使用している場合は、「%s」に正しいものを選んでください。\n"
+#~ "不明な場合はネットワーク管理者に確認してください。\n"
+#~ "\n"
+#~ "何らかの理由でパスワードを覚えられない、あるいはインターネットには一切\n"
+#~ "接続しない、または、あなたのコンピュータを使うすべての人を全面的に信頼\n"
+#~ "できる、といった場合には「%s」を選んでもいいでしょう。"
+
+#~ msgid "authentication"
+#~ msgstr "認証"
diff --git a/perl-install/install/help/po/ko.po b/perl-install/install/help/po/ko.po
index 72109c560..b1aa3c2ff 100644
--- a/perl-install/install/help/po/ko.po
+++ b/perl-install/install/help/po/ko.po
@@ -8,10 +8,11 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2002-09-09 09:08+0900\n"
"Last-Translator: Jaegeum Cze <baedaron@hanafos.com>\n"
"Language-Team: Korean <beadaron@hanafos.com>\n"
+"Language: ko\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -21,7 +22,7 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
@@ -72,6 +73,16 @@ msgid ""
msgstr ""
#: ../help.pm:54
+#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
#, fuzzy, c-format
msgid "Do you want to use this feature?"
msgstr "aboot를 사용하시겠습니까?"
@@ -79,7 +90,8 @@ msgstr "aboot를 사용하시겠습니까?"
#: ../help.pm:57
#, fuzzy, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -89,24 +101,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"선택된 하드디스크상의 기존 리눅스 파티션이 위에 열거되어 있습니다.\n"
@@ -147,7 +163,7 @@ msgstr ""
#: ../help.pm:88
#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
@@ -162,12 +178,11 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -180,8 +195,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -285,10 +299,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -314,16 +328,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr ""
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-
-#: ../help.pm:192
+#: ../help.pm:185
#, fuzzy, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -375,7 +380,12 @@ msgid ""
"server which can be used by other machines on your local network as well."
msgstr ""
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, fuzzy, c-format
msgid "Automatic time synchronization"
msgstr "자동 시간 동기화 (NTP 사용)"
@@ -399,7 +409,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -503,39 +513,43 @@ msgstr ""
#: ../help.pm:319
#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -544,15 +558,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -640,7 +654,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "기존의 파티션 사용"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "전체 디스크 삭제"
@@ -719,7 +738,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "자동 설치 플로피 디스크 생성"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -739,7 +773,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -771,7 +805,7 @@ msgstr ""
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -794,7 +828,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -821,21 +855,24 @@ msgstr "보안 관리자 (로그인 또는 이메일)"
#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -851,21 +888,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -882,14 +921,8 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"이제 어느 파티션이 맨드리바 리눅스의 설치용으로 사용되어야 할지를\n"
"선택해야 합니다. 이전에 다른 GNU/리눅스를 설치한 적이 있거나, 다른 파티션\n"
@@ -942,20 +975,38 @@ msgstr ""
" ○ 「Ctrl + d」: 파티션 삭제하기.\n"
"\n"
" ○ 「Ctrl + m」: 마운트 위치 지정하기.\n"
-"\n"
-"만약 PPC 컴퓨터에서 설치하고 있는 중이라면, YABOOT 부트로더가 사용할 최소 "
-"1MB\n"
-"의 HFS 「부트스트랩」파티션을 만들 필요가 있습니다. 만약 그 파티션을 보다 크"
-"게\n"
-"(가령, 50MB) 만들면, 응급 상황시에 사용할 여분의 커널과 램디스크 이미지를\n"
-"저장할 수 있는 유용한 장소가 될 것입니다."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, fuzzy, c-format
msgid "Removable media auto-mounting"
msgstr "탈착식 미디어 자동 마운트"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, fuzzy, c-format
msgid "Toggle between normal/expert mode"
msgstr "일반 모드로 전환"
@@ -963,34 +1014,40 @@ msgstr "일반 모드로 전환"
#: ../help.pm:536
#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"둘 이상의 MS 윈도우즈 파티션이 디스크상에서 발견되었습니다.\n"
@@ -1039,23 +1096,23 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
#: ../help.pm:594
@@ -1106,8 +1163,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1151,7 +1207,12 @@ msgstr ""
msgid "Espanol"
msgstr ""
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, fuzzy, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1219,53 +1280,7 @@ msgstr ""
"정확한 포트를 선택하세요. 예를 들어, MS 윈도우즈에서 COM1은\n"
"리눅스에서는 ttyS0로 명명됩니다."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "사용자 인증"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1279,7 +1294,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1290,7 +1305,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1311,7 +1326,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
@@ -1320,7 +1335,12 @@ msgstr ""
msgid "pdq"
msgstr "pDQ"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "전문가"
@@ -1333,7 +1353,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1405,11 +1425,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1427,8 +1442,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1445,14 +1459,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "내장 ISDN 카드"
+
+#: ../help.pm:809
#, fuzzy, c-format
msgid "ISDN card"
msgstr "내장 ISDN 카드"
@@ -1465,8 +1484,8 @@ msgstr "시작시 바로 X 실행"
#: ../help.pm:861
#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"맨드리바 리눅스 파티션을 만들기 위해서 삭제할 하드디스클르 선택하세요.\n"
@@ -1477,12 +1496,14 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"이 하드디스크상의 모든 데이터와 파티션을 삭제하려면, 「확인」을 누르세요.\n"
"!!주의하세요!!일단 「확인」을 누르게 되면, MS 윈도우즈 데이털르 포함하여 이 "
@@ -1502,3 +1523,5 @@ msgstr "다음 ->"
msgid "<- Previous"
msgstr "<- 이전"
+#~ msgid "authentication"
+#~ msgstr "사용자 인증"
diff --git a/perl-install/install/help/po/ky.po b/perl-install/install/help/po/ky.po
index 35d10bc24..61f9a2c4b 100644
--- a/perl-install/install/help/po/ky.po
+++ b/perl-install/install/help/po/ky.po
@@ -7,25 +7,26 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX-ky\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2005-04-20 20:27+0500\n"
"Last-Translator: Nurlan Borubaev <nurlan@tamga.info>\n"
"Language-Team: Kyrgyz\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.3\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Мындан ары улантуу үчүн сиз лицензия шартын көңүл коюп окууңуз керек.\n"
-"Ал Mandriva Linux'тун бардык дистрибутивдерине таратылат. Эгер сиз анын\n"
+"Ал Mageia'тун бардык дистрибутивдерине таратылат. Эгер сиз анын\n"
"ичиндеги бардык шарттарга көнбөсөңүз, \"%s\" рамкасын тандаңыз. Андай\n"
"болбосо, \"%s\" баскычын бассаңыз сиздин компьютер кайра жүктөлөт."
@@ -112,13 +113,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Мындай мүмкүнчүлүктү каалайсызбы?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -128,24 +140,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Жогорудагы тизме сиздин катуу дискиңиздеги табылган Linux бөлүмдөрү.\n"
@@ -181,30 +197,29 @@ msgstr ""
"ал эми \"b\" болсо \"second lowest SCSI ID\", ж.д.у.с. экендигин берет"
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Mandriva Linux орнотулушу бир нече CD-ROMго бөлүнүп жайгаштырылган. Эгерде\n"
+"Mageia орнотулушу бир нече CD-ROMго бөлүнүп жайгаштырылган. Эгерде\n"
"тандалган пакет башка CD-ROMдо жатса, DrakX учурдагы CDни чыгарып\n"
"керектелип жаткан тийишүү CDни салууңузду сурайт. Эгерде Сизде тийиштүү\n"
"CD кол алдыңызда жок болсо, жөн гана \"%s\" түймөсүн чертиңиз, бул учурда\n"
"тиешелүү пакет орнотулбай кала берет."
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -217,8 +232,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -256,12 +270,11 @@ msgid ""
"megabytes."
msgstr ""
"Эми системаңызга кайсы программаларды орнотууну кааларыңызды аныктоого\n"
-"убакыт келип жетти. Mandriva Linux менен кошо миңдеген пакеттер сунуш "
-"кылынат,\n"
+"убакыт келип жетти. Mageia менен кошо миңдеген пакеттер сунуш кылынат,\n"
"тандоону жеңилдетүү үчүн алар жакындыгынакарата топторго бөлүнгөн.\n"
"\n"
"Пакеттер машинаңыздын колдонуу спецификасына дал келе тургандай\n"
-"болуп топторго иреттелген. Mandriva Linux'та пакетер төрт категория\n"
+"болуп топторго иреттелген. Mageia'та пакетер төрт категория\n"
"боюнча иреттелет. Сиз ар түрдүү категорияларда жайгашкан тиркемелерди\n"
"аралаштырып же айкалыштыра аласыз, мисалы ``Иш станциясы'' орнотуу варианты\n"
"``Иштеп түзүү'' категорясындагы тиркемелерди да камтышы мүмкүн.\n"
@@ -340,10 +353,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -373,11 +386,11 @@ msgstr ""
"\n"
"!! Эгерде кандайдыр бир сервердик пакет тандалса, сиз аны атайын\n"
"тандасаңыз же ал башка пакеттин бөлүгү болсо, сиз аны чынында эле\n"
-"ал серверлерди орнотууну каалагандыгыңызды сурайт. Mandriva Linux\n"
+"ал серверлерди орнотууну каалагандыгыңызды сурайт. Mageia\n"
"бардык орнотулган серверлерлерди жүктөө убагында алдынала ишке\n"
"киргизилет. Дистрибутив чыгарылып жаткан убакта алар коопсуздук\n"
"боюнча белгилүү проблемалары жок болгону менен, аларда бул\n"
-"Mandriva Linux версиясы чыгарылгандан кийин да, кооптуу болгон\n"
+"Mageia версиясы чыгарылгандан кийин да, кооптуу болгон\n"
"жылчыктар табылышы мүмкүн. Эгер сиз берилген кызмат эмне үчүн\n"
"колдонорун жана эмне иш кыларын билбесеңиз \"%s\" басыңыз.\n"
"Эгер сиз \"%s\" бассаңыз тизмедеги бардык кызматтар орнотулуп\n"
@@ -402,21 +415,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Автоматтык көз карандылыктар"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": \"%s\" баскычын басуу менен принтерди конфигурацилоо устасы\n"
-"ачылат. Жаңы принтерди кантип орнотуу керектигин билүү үчүн,\n"
-"``Баштоочунун колдонмосундагы'' тийиштүү главаны окуп чыгыңыз.\n"
-"Андагы колдонулган интерфейс орнотуу процессинде колдонулган\n"
-"интерфейске окшош."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, fuzzy, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -483,7 +482,12 @@ msgstr ""
"машинаңызга убакыт серверин орнотуп, аны локалдык тармагыңыздагы башка\n"
"машиналар колдонууга мүмкүндүк берет."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Убакытты автоматтык синхрондоштуруу"
@@ -516,7 +520,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -571,7 +575,7 @@ msgid ""
"not successful in getting the display configured."
msgstr ""
"X (X Window системасы үчүн) GNU/Linux графикалык интерфейсинин\n"
-"жүрөгү, анын негизинде Mandriva Linux-ка кирген бардык графикалык\n"
+"жүрөгү, анын негизинде Mageia-ка кирген бардык графикалык\n"
"чөйрөлөр (KDE, GNOME, AfterStep, WindowMaker, ж.б.д.у.с.) иштейт.\n"
"\n"
"Оптималдык графикалык көрүнүштү алуу үчүн, сизге ар түрдүү\n"
@@ -687,39 +691,43 @@ msgstr ""
#: ../help.pm:319
#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -728,15 +736,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -749,11 +757,11 @@ msgid ""
"experience. For more instructions on how to use the DiskDrake utility,\n"
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
-"Бул кадамда, Mandriva Linux аркеттер системасын сиздин катуу дисктин\n"
+"Бул кадамда, Mageia аркеттер системасын сиздин катуу дисктин\n"
"кайсы жерине орнотууну чечүүңүзгө туура келет. Эгер сиздин катуу диск бош\n"
"болсо же орнотулган аракеттери системасы дисктин бардыгын ээлесе, сизге\n"
"дискиңизди кайра бөлүүгө туура келет. Негизинен дискти бөлүү сиздин\n"
-"жаңы Mandriva Linux системасын орнотуу үчүн дисктен логикалык түрдө\n"
+"жаңы Mageia системасын орнотуу үчүн дисктен логикалык түрдө\n"
"орун бөлүүдө турат.\n"
"\n"
"Эгерде дискте орнотулган аракеттер системасы болсо, дискти бөлүү кайра\n"
@@ -779,7 +787,7 @@ msgstr ""
"Windows FAT же NTFS бөлүмдөрүнүн өлчөмдөрүн өзгөртсөңүз болот.\n"
"Өлчөмүн өзгөртүү процессин маалыматтарды жоготпой жасаса да болот, өзгөчө\n"
"Windows бөлүмү дефрагментация кылынгандан кийин. Маалыматтарыңыздын\n"
-"резервдик копиясын түзүү көптөн-көп сунуш кылынат.Эгер сиз Mandriva Linux\n"
+"резервдик копиясын түзүү көптөн-көп сунуш кылынат.Эгер сиз Mageia\n"
"жана Microsoft Windows бир компьютерде колдонгуңуз келсе, бул опцияны\n"
"тандаңыз.\n"
"\n"
@@ -788,7 +796,7 @@ msgstr ""
"берилиштерин жана жаңы программаларды орнотуу үчүн бош орун азыраак болот.\n"
"\n"
" * \"%s\" эгер сиз катуу дискиңиздеги бардык маалыматтарды жоготуп ордуна\n"
-"Mandriva Linux орнотууну кааласаңыз, бул опцияны тандаңыз. Бул чечимди\n"
+"Mageia орнотууну кааласаңыз, бул опцияны тандаңыз. Бул чечимди\n"
"тандоодо этият болуңуз, себеби муну тастыктаган соң бардыгын мурда\n"
"болгондой кылып калыбына келтире албайсыз.\n"
"\n"
@@ -815,7 +823,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Бар бөлүмдү колдонуу"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Дискти бүт өчүрүү"
@@ -894,7 +907,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Авто-орнотуу флопписин жаратуу"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -914,7 +942,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -939,7 +967,7 @@ msgstr ""
"\n"
"Бөлүмдөрдү форматтого даяр болгондон кийин \"%s\" баскычын басыңыз.\n"
"\n"
-"Эгер сиз Mandriva Linux системасын башка бөлүмгө орноткуңуз келсе \"%s\"\n"
+"Эгер сиз Mageia системасын башка бөлүмгө орноткуңуз келсе \"%s\"\n"
"баскычын басыңыз.\n"
"\n"
"Эгер сиз начар делген блокторду (bad blocks) текшерүүгө бөлүмдөрдү\n"
@@ -948,7 +976,7 @@ msgstr ""
#: ../help.pm:437
#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -960,7 +988,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Mandriva Linux орнотуу убагында баштапкы релиздин кээ бир пакеттерин\n"
+"Mageia орнотуу убагында баштапкы релиздин кээ бир пакеттерин\n"
"жаңы чыкандары менен жаңыласаңыз жакшы болот. Кээ бир багдар\n"
"оңдолушу жана коопсуздук проблемалары чечилиши мүмкүн. Бул\n"
"жаңылоолордон пайда алуу үчүн аларды сиз азыр Интернеттен жүктөп\n"
@@ -983,7 +1011,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1011,21 +1039,24 @@ msgstr "Коопсуздук администратору"
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1041,21 +1072,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1072,59 +1105,115 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Чыгарылма түзүлүштөрдү авто-бириктирүү"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Нормалдык/эксперттик режимдерин алмаштыруу"
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
+"Жогорудагы тизме сиздин катуу дискиңиздеги табылган Linux бөлүмдөрү.\n"
+"Сиз аны уста жасагандай калтырсаңыз болот, анткени ал бардык кадимки\n"
+"инсталляциялар үчүн жарактуу. Эгер сиз кандайдыр бир өзгөртүүлөрдү\n"
+"киргизсеңиз, анда жок эле дегенде түпкү-root (\"/\") бөлүмү болушу керек.\n"
+"Анын көлөмүн өтө эле кичине кылбаңыз, антсеңиз сиз жетиштүү сандагы\n"
+"программалык жабдууларды орното албай каласыз. Эгер сиз өзүңүздүн\n"
+"берилиштерңизди башка бөлүмдө сактооңуз келсе, сизге \"/home\"\n"
+"бөлүмүн да түзүүгө туура келет (бирден көп Linux бөлүмдөрү бар\n"
+"учурда гана мүмкүн).\n"
+"\n"
+"Ар бир бөлүм төмөнкүдөй санап көрсөтүлгөн: \"Аты\", \"Көлөмү\".\n"
+"\n"
+"\"Аты\": \"катуу дисктин тиби\", \"катуу дисктин номери\",\n"
+"\"бөлүм номери\" (мисалы, \"hda1\") катары структураланган.\n"
+"\n"
+"\"Катуу дисктин тиби\": \"hd\"-эгер сиздин катуу диск IDE болсо\n"
+"\"sd\"-эгер ал SCSI болсо.\n"
+"\n"
+"\"Катуу дискти номери\" дайыма тамга жана \"hd\" же \"sd\" уландысы.\n"
+"IDE катуу дисктери үчүн:\n"
+"\n"
+" * \"a\" \"биринчи IDE контроллеринин master катуу дискин\" түшүндүрөт;\n"
+"\n"
+" * \"b\" \"биринчи IDE контроллеринин slave катуу дискин\" түшүндүрөт;\n"
+"\n"
+" * \"c\" \"экинчи IDE контроллеринин master катуу дискин\" түшүндүрөт;\n"
+"\n"
+" * \"d\" \"экинчи IDE контроллеринин slave катуу дискин\" түшүндүрөт;\n"
+"\n"
+"SCSI катуу дисктери үчүн , \"a\" болсо \"lowest SCSI ID\" экендигин,\n"
+"ал эми \"b\" болсо \"second lowest SCSI ID\", ж.д.у.с. экендигин берет"
#: ../help.pm:567
#, c-format
@@ -1142,23 +1231,23 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
#: ../help.pm:594
@@ -1199,8 +1288,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1232,7 +1320,12 @@ msgstr ""
msgid "Espanol"
msgstr "Испанча"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1288,53 +1381,7 @@ msgstr ""
"Туура портту тандаңыз. Мисалы, Windows \"COM1\" портунун\n"
"GNU/Linux'тагы аты \"ttyS0\"."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "аутентификация"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1348,7 +1395,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1359,7 +1406,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1380,7 +1427,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
@@ -1389,7 +1436,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Эксперт"
@@ -1402,7 +1454,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1447,11 +1499,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1469,8 +1516,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1487,14 +1533,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "ISDN картасы"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN картасы"
@@ -1507,8 +1558,8 @@ msgstr "Графикалык интерфейс"
#: ../help.pm:861
#, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
@@ -1516,12 +1567,14 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
#: ../help.pm:872
@@ -1534,3 +1587,20 @@ msgstr "Кийинки ->"
msgid "<- Previous"
msgstr "<- Мурунку"
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": \"%s\" баскычын басуу менен принтерди конфигурацилоо устасы\n"
+#~ "ачылат. Жаңы принтерди кантип орнотуу керектигин билүү үчүн,\n"
+#~ "``Баштоочунун колдонмосундагы'' тийиштүү главаны окуп чыгыңыз.\n"
+#~ "Андагы колдонулган интерфейс орнотуу процессинде колдонулган\n"
+#~ "интерфейске окшош."
+
+#~ msgid "authentication"
+#~ msgstr "аутентификация"
diff --git a/perl-install/install/help/po/lt.po b/perl-install/install/help/po/lt.po
index 92b14d276..4863a095e 100644
--- a/perl-install/install/help/po/lt.po
+++ b/perl-install/install/help/po/lt.po
@@ -5,20 +5,22 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2000-12-23 13:50+0200\n"
"Last-Translator: Mykolas Norvai­as <Myka@centras.lt>\n"
"Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
+"Language: lt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n"
+"%100<10 || n%100>=20) ? 1 : 2);\n"
#: ../help.pm:14
#, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
@@ -65,6 +67,16 @@ msgid ""
msgstr ""
#: ../help.pm:54
+#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
#, fuzzy, c-format
msgid "Do you want to use this feature?"
msgstr "Ar nori naudoti aboot?"
@@ -72,7 +84,8 @@ msgstr "Ar nori naudoti aboot?"
#: ../help.pm:57
#, fuzzy, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -82,24 +95,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Aukščiau yra sąrašas Linux skirsnių, kuriuos pavyko rasti tavo\n"
@@ -146,7 +163,7 @@ msgstr ""
#: ../help.pm:88
#, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
@@ -157,12 +174,11 @@ msgstr ""
#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -175,8 +191,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -243,10 +258,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -272,16 +287,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr ""
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-
-#: ../help.pm:192
+#: ../help.pm:185
#, fuzzy, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -332,7 +338,12 @@ msgid ""
"server which can be used by other machines on your local network as well."
msgstr ""
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, fuzzy, c-format
msgid "Automatic time synchronization"
msgstr "Įdiegimo Tipo Konfiguracija"
@@ -356,7 +367,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -454,39 +465,43 @@ msgstr ""
#: ../help.pm:319
#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -495,15 +510,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -517,10 +532,10 @@ msgid ""
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
"Dabar tu turi nuspręsti, kurioje savo kietojo disko vietoje nori įdiegti\n"
-"Mandriva Linux operacijų sistemą. Jei jis yra tuščias arba jau esanti\n"
+"Mageia operacijų sistemą. Jei jis yra tuščias arba jau esanti\n"
"operacijų sistema naudoja visą vietą jame, tau reikės sudalinti jį. Kietojo\n"
"disko sudalinimas į skirsnius tiesiog yra jo logiškas padalinimas taip, kad\n"
-"atsirastų laisvos vietos įdiegti tavo naujajai Mandriva Linux sistemai.\n"
+"atsirastų laisvos vietos įdiegti tavo naujajai Mageia sistemai.\n"
"\n"
"\n"
"Kadangi sudalinimo skirsniais padariniai dažniausiai yra negrįžtami,\n"
@@ -551,8 +566,8 @@ msgstr ""
"\n"
"* Išvalyti visą diską: jei tu nori sunaikinti visus duomenis ir skirsnius, "
"esančius kietajame diske, ir pakeisti juos\n"
-" nauja Mandriva Linux sistema, gali pasirinkti šį variantą. Būk atsargus su "
-"šiuo sprendimu, nes jei sutiksi,\n"
+" nauja Mageia sistema, gali pasirinkti šį variantą. Būk atsargus su šiuo "
+"sprendimu, nes jei sutiksi,\n"
" nebegalėsi apsigalvoti ir sugrįžti.\n"
"\n"
"\n"
@@ -564,7 +579,7 @@ msgstr ""
"sprendimus) arba pakeisti Windows skirsnio\n"
" dydį. Dydžio pakeitimas gali būti atliktas be duomenų praradimo. Šis "
"sprendimas yra rekomenduojamas, jei\n"
-" tu nori naudoti tiek Mandriva Linux, tiek Microsoft Windows tame pačiame "
+" tu nori naudoti tiek Mageia, tiek Microsoft Windows tame pačiame "
"kompiuteryje.\n"
"\n"
"\n"
@@ -587,7 +602,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Naudoti esamą skirsnį"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Ištrinti visą diską"
@@ -635,7 +655,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Sukurti automatinio įdiegimo diskelį"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -655,7 +690,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -684,12 +719,12 @@ msgstr ""
"\n"
"\n"
"Spausk \"Atšaukti\", jei nori pasirinkti kitus skirsnius, į kuriuos įdiegti\n"
-"Mandriva Linux sistemą."
+"Mageia sistemą."
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -712,7 +747,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -728,21 +763,24 @@ msgstr "Nutolusio lpd spausdintuvo nuostatos"
#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -758,21 +796,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -789,14 +829,8 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"Dabar tu turi pasirinkti, kuriuos skirsnius naudoti tavo naujai Mandriva "
"Linux \n"
@@ -870,12 +904,37 @@ msgstr ""
"\n"
"* Ctrl-m kad nurodytum prijungimą tašką."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, fuzzy, c-format
msgid "Removable media auto-mounting"
msgstr "Išimamų laikmenų automatinis montavimas"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, fuzzy, c-format
msgid "Toggle between normal/expert mode"
msgstr "Pakeisti į normalų režimą"
@@ -883,40 +942,46 @@ msgstr "Pakeisti į normalų režimą"
#: ../help.pm:536
#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Tavo kietajame diske buvo aptiktas vienas ar daugiau Microsoft Windows\n"
"skirsnis. Prašom pasirinkti, kurio iš jų dydį nori pakeisti, kad įdiegtum "
"savo\n"
-"naująją Mandriva Linux operacijų sistemą.\n"
+"naująją Mageia operacijų sistemą.\n"
"\n"
"\n"
"Tavo žiniai, kiekvienas skirsnis sąraše užrašomas pavidalu \"Linux "
@@ -972,23 +1037,23 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
#: ../help.pm:594
@@ -1029,8 +1094,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1062,7 +1126,12 @@ msgstr ""
msgid "Espanol"
msgstr ""
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1118,53 +1187,7 @@ msgstr ""
"Prašom pasirinkti teisingą prievadą. Pavyzdžiui COM1\n"
"MS Windows'uose vadinamas ttyS0 GNU/Linux'e."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-
-#: ../help.pm:725
-#, fuzzy, c-format
-msgid "authentication"
-msgstr "Autentikacija"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1178,7 +1201,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1189,7 +1212,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1210,7 +1233,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
@@ -1219,7 +1242,12 @@ msgstr ""
msgid "pdq"
msgstr ""
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Ekspertas"
@@ -1232,7 +1260,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1303,11 +1331,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1325,8 +1348,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1343,14 +1365,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "Vidinė ISDN plokštė"
+
+#: ../help.pm:809
#, fuzzy, c-format
msgid "ISDN card"
msgstr "Vidinė ISDN plokštė"
@@ -1363,24 +1390,26 @@ msgstr "X paleidžiant"
#: ../help.pm:861
#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"Pasirink kietąjį diską, kurį nori ištuštinti, kad įdiegtum naują\n"
-"Mandriva Linux sistemą. Būk atsargus, visi duomenys, esantys jame, bus\n"
+"Mageia sistemą. Būk atsargus, visi duomenys, esantys jame, bus\n"
"prarasti, ir jų nebebus įmanoma atkurti."
#: ../help.pm:866
#, fuzzy, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Spausk \"Gerai\", jei nori ištrinti visus duomenis ir skirsnius, esančius\n"
"šiame kietajame diske. Būk atsargus, kai paspausi \"Gerai\", tu nebegalėsi\n"
@@ -1401,3 +1430,6 @@ msgstr "Toliau ->"
msgid "<- Previous"
msgstr "<- Ankstesnis"
+#, fuzzy
+#~ msgid "authentication"
+#~ msgstr "Autentikacija"
diff --git a/perl-install/install/help/po/ltg.po b/perl-install/install/help/po/ltg.po
index fbee1d5a9..9f7c78800 100644
--- a/perl-install/install/help/po/ltg.po
+++ b/perl-install/install/help/po/ltg.po
@@ -6,25 +6,25 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2004-02-24 13:01+0200\n"
"Last-Translator: Māris Laureckis <linux@latgola.lv>\n"
"Language-Team: Latgalian <linux@latgola.lv>\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Pyrms turpynuot, jiusim vajadzātu uzmaneigi izlaseit licencis vīnuošonūs. "
"Tei nūsadz\n"
-"vysu Mandriva Linux distribuceju. Ja jius napīkreitit vysim tuos "
+"vysu Mageia distribuceju. Ja jius napīkreitit vysim tuos "
"nūteikumiem,\n"
"puorbaudit \"%s\" kasti, nūspīdit pūgu \"%s\",\n"
"lai jiusu dators puorstarteitu."
@@ -71,6 +71,16 @@ msgid ""
msgstr ""
#: ../help.pm:54
+#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
#, fuzzy, c-format
msgid "Do you want to use this feature?"
msgstr "Vai vēlaties izmantot aboot?"
@@ -78,7 +88,7 @@ msgstr "Vai vēlaties izmantot aboot?"
#: ../help.pm:57
#, fuzzy, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -88,24 +98,24 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Augstāk ir uzskaitītas eksistējošās Linux sadaļas, kas ir atrastas uz jūsu\n"
@@ -142,13 +152,13 @@ msgstr ""
#: ../help.pm:88
#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Mandriva Linux instalācija ir sadalīta pa dažiem CD-ROM diskiem. DrakX\n"
+"Mageia instalācija ir sadalīta pa dažiem CD-ROM diskiem. DrakX\n"
"zin, vai izvēlētā pakotne atrodas uz cita CD-ROM diska, izvirzīs pašreizējo\n"
"kompaktdisku un palūgs ievietot citu pēc nepieciešamības."
@@ -156,12 +166,11 @@ msgstr ""
#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -174,8 +183,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -242,10 +250,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -271,16 +279,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr ""
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-
-#: ../help.pm:192
+#: ../help.pm:185
#, fuzzy, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -330,7 +329,12 @@ msgid ""
"server which can be used by other machines on your local network as well."
msgstr ""
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, fuzzy, c-format
msgid "Automatic time synchronization"
msgstr "Automātiska laika sinhronizācija (izmantojot NTP)"
@@ -354,7 +358,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -460,39 +464,39 @@ msgstr ""
#: ../help.pm:319
#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -501,15 +505,14 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -522,11 +525,11 @@ msgid ""
"experience. For more instructions on how to use the DiskDrake utility,\n"
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
-"Pošlaik jiusim ir juoizavielej, kur iz cītuo diska instalēt Mandriva Linux\n"
+"Pošlaik jiusim ir juoizavielej, kur iz cītuo diska instalēt Mageia\n"
"opereituojsistemu. Ja disks ir tukšs voi cyta opereituojsistema aizjam vysu\n"
"vītu iz diska, jiusim byus juoveic diska sadaleišona. Eisumā, cītuo diska\n"
"sadaleišona nūzeimej tū sadaleit logiskuos daļuos, lai izveiduotu vītu\n"
-"Mandriva Linux sistemys instaleišonai.\n"
+"Mageia sistemys instaleišonai.\n"
"\n"
"Sakarā ar tū, ka diska sadaleišonys process parasti ir naatgrīzenisks,\n"
"napīredziejušam lītuotuojam tys var byut napateikams i stresa pylns.\n"
@@ -555,7 +558,7 @@ msgstr ""
"\n"
"* Izdzēst visu disku: ja vēlaties izdzēst visus uz diska esošos datus un "
"sadaļas un aizstāt tās ar jaunu\n"
-" Mandriva Linux sistēmu, varat izvēlēties šo opciju. Esiet uzmanīgi, "
+" Mageia sistēmu, varat izvēlēties šo opciju. Esiet uzmanīgi, "
"izvēloties šo risinājumu, jo pēc\n"
" apstiprināšanas jūs vairs nevarēsit atteikties no šīs izvēles.\n"
"\n"
@@ -568,7 +571,7 @@ msgstr ""
"vai izmainīt Microsoft\n"
" Windows sadaļas izmēru. Sadaļas izmēru var izmainīt bez datu zaudēšanas. "
"Šis risinājums ir ieteicams, ja\n"
-" jūs savā datorā vēlaties izmantot gan Mandriva Linux, gan Microsoft "
+" jūs savā datorā vēlaties izmantot gan Mageia, gan Microsoft "
"Windows.\n"
"\n"
"\n"
@@ -589,7 +592,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Izmantot jau esošu sadaļu"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Izdzēst vysu disku"
@@ -637,7 +645,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Sagatavot auto instalēšanas disketi"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -657,7 +680,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -681,12 +704,12 @@ msgstr ""
"Noklikšķiniet \"Labi\", kad esat gatavi formatēt sadaļas.\n"
"\n"
"Noklikšķiniet \"Atcelt\", ja jūs gribat izvēlēties citas sadaļas, kur\n"
-"instalēt jauno Mandriva Linux operētājsistēmu."
+"instalēt jauno Mageia operētājsistēmu."
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -709,7 +732,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -733,21 +756,21 @@ msgstr "Drošības administrators:"
#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -763,21 +786,21 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -794,16 +817,10 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-"Pašlaik jums ir jāizvēlas, kurā(s) diska sadaļā(s) instalēt Mandriva Linux\n"
+"Pašlaik jums ir jāizvēlas, kurā(s) diska sadaļā(s) instalēt Mageia\n"
"operētājsistēmu. Ja sadaļas jau ir izveidotas (agrākas GNU/Linux "
"instalēšanas\n"
"laikā vai ar citu diska sadalīšanas rīku), jūs varat izmantot esošās "
@@ -871,12 +888,37 @@ msgstr ""
"\n"
" * Ctrl-m, lai uzstādītu montēšanas punktu"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, fuzzy, c-format
msgid "Removable media auto-mounting"
msgstr "Izņemama datu nesēja automontēšana"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, fuzzy, c-format
msgid "Toggle between normal/expert mode"
msgstr "Pārslēgt normālajā režīmā"
@@ -884,39 +926,39 @@ msgstr "Pārslēgt normālajā režīmā"
#: ../help.pm:536
#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Uz jūsu cietā diska ir atrasta vairāk nekā viena Microsoft Windows sadaļa.\n"
"Lūdzu izvēlieties to sadaļu, kuras izmēru jūs vēlaties izmainīt, lai\n"
-"instalētu jauno Mandriva Linux operētājsistēmu.\n"
+"instalētu jauno Mageia operētājsistēmu.\n"
"\n"
"\n"
"Jūsu zināšanai, katra sadaļa ir uzskaitīta šādā veidā: \"Linux nosaukums\",\n"
@@ -963,23 +1005,22 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
#: ../help.pm:594
@@ -1033,8 +1074,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1066,7 +1106,12 @@ msgstr ""
msgid "Espanol"
msgstr "Spāņu"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1122,53 +1167,7 @@ msgstr ""
"Lyudzu izavielejit pareizu portu. Pīmāram, MS Windows\n"
"ports COM1 GNU/Linux vidē saucas ttyS0."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "autentifikaceja"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1182,7 +1181,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1193,7 +1192,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1214,7 +1213,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
@@ -1223,7 +1222,12 @@ msgstr ""
msgid "pdq"
msgstr ""
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, fuzzy, c-format
msgid "Expert"
msgstr "Eksperta režims"
@@ -1236,7 +1240,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1302,11 +1306,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1324,8 +1323,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1342,14 +1340,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "ISDN karte"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN karte"
@@ -1362,24 +1365,24 @@ msgstr "X pēc startēšanas"
#: ../help.pm:861
#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"Norādiet cieto disku, ko vēlaties izdzēst, lai izveidotu jaunu\n"
-"Mandriva Linux sadaļu. Esiet uzmanīgi, jo visi diskā esošie dati\n"
+"Mageia sadaļu. Esiet uzmanīgi, jo visi diskā esošie dati\n"
"pazudīs un nebūs atjaunojami."
#: ../help.pm:866
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be able\n"
+"to recover any data and partitions present on this hard disk drive, including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Nūspīdit \"%s\", ja gribit izdzēst vysus datus i\n"
"sadalis, kurys atsarūn iz ituo cītuo diska. Esit uzmaneigi, piec \"%s\" "
@@ -1399,3 +1402,5 @@ msgstr "Tuoļuok ->"
msgid "<- Previous"
msgstr "<- Atpakaļ"
+#~ msgid "authentication"
+#~ msgstr "autentifikaceja"
diff --git a/perl-install/install/help/po/lv.po b/perl-install/install/help/po/lv.po
index 815a13930..1e45799d9 100644
--- a/perl-install/install/help/po/lv.po
+++ b/perl-install/install/help/po/lv.po
@@ -6,26 +6,28 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2002-09-27 17:45+0200\n"
"Last-Translator: Raivo Saars <spaiks@inbox.lv>\n"
"Language-Team: Latvian <ll10nt@listes.murds.lv>\n"
+"Language: lv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : "
+"2);\n"
#: ../help.pm:14
#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Pirms turpināt, Jums vajadzētu uzmanīgi izlasīt licences vienošanos. Tā "
"nosedz\n"
-"visu Mandriva Linux distribūciju, un ja Jūs nepiekrītat visiem noteikumiem,\n"
+"visu Mageia distribūciju, un ja Jūs nepiekrītat visiem noteikumiem,\n"
"nospiediet uz pogas \"Noraidīt\", kas nekavējoties pārtrauks instalāciju. "
"Lai turpinātu\n"
"instalācijas procesu, nospiediet pogu \"Pieņemt\"."
@@ -72,6 +74,16 @@ msgid ""
msgstr ""
#: ../help.pm:54
+#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
#, fuzzy, c-format
msgid "Do you want to use this feature?"
msgstr "Vai vēlaties izmantot aboot?"
@@ -79,7 +91,8 @@ msgstr "Vai vēlaties izmantot aboot?"
#: ../help.pm:57
#, fuzzy, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -89,24 +102,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Augstāk ir uzskaitītas eksistējošās Linux sadaļas, kas ir atrastas uz jūsu\n"
@@ -143,13 +160,13 @@ msgstr ""
#: ../help.pm:88
#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Mandriva Linux instalācija ir sadalīta pa dažiem CD-ROM diskiem. DrakX\n"
+"Mageia instalācija ir sadalīta pa dažiem CD-ROM diskiem. DrakX\n"
"zin, vai izvēlētā pakotne atrodas uz cita CD-ROM diska, izvirzīs pašreizējo\n"
"kompaktdisku un palūgs ievietot citu pēc nepieciešamības."
@@ -157,12 +174,11 @@ msgstr ""
#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -175,8 +191,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -243,10 +258,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -272,16 +287,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr ""
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-
-#: ../help.pm:192
+#: ../help.pm:185
#, fuzzy, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -331,7 +337,12 @@ msgid ""
"server which can be used by other machines on your local network as well."
msgstr ""
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, fuzzy, c-format
msgid "Automatic time synchronization"
msgstr "Automātiska laika sinhronizācija (izmantojot NTP)"
@@ -355,7 +366,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -458,39 +469,43 @@ msgstr ""
#: ../help.pm:319
#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -499,15 +514,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -520,11 +535,11 @@ msgid ""
"experience. For more instructions on how to use the DiskDrake utility,\n"
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
-"Pašlaik jums ir jāizvēlas, kur uz cietā diska instalēt Mandriva Linux\n"
+"Pašlaik jums ir jāizvēlas, kur uz cietā diska instalēt Mageia\n"
"operētājsistēmu. Ja disks ir tukšs vai cita operētājsistēma aizņem visu\n"
"vietu uz diska, jums būs jāveic diska sadalīšana. Īsumā, cietā diska\n"
"sadalīšana nozīmē to sadalīt loģiskās daļās, lai izveidotu vietu\n"
-"Mandriva Linux sistēmas instalēšanai.\n"
+"Mageia sistēmas instalēšanai.\n"
"\n"
"\n"
"Sakarā ar to, ka diska sadalīšanas process parasti ir neatgriezenisks,\n"
@@ -553,8 +568,8 @@ msgstr ""
"\n"
"* Izdzēst visu disku: ja vēlaties izdzēst visus uz diska esošos datus un "
"sadaļas un aizstāt tās ar jaunu\n"
-" Mandriva Linux sistēmu, varat izvēlēties šo opciju. Esiet uzmanīgi, "
-"izvēloties šo risinājumu, jo pēc\n"
+" Mageia sistēmu, varat izvēlēties šo opciju. Esiet uzmanīgi, izvēloties šo "
+"risinājumu, jo pēc\n"
" apstiprināšanas jūs vairs nevarēsit atteikties no šīs izvēles.\n"
"\n"
"\n"
@@ -566,8 +581,7 @@ msgstr ""
"vai izmainīt Microsoft\n"
" Windows sadaļas izmēru. Sadaļas izmēru var izmainīt bez datu zaudēšanas. "
"Šis risinājums ir ieteicams, ja\n"
-" jūs savā datorā vēlaties izmantot gan Mandriva Linux, gan Microsoft "
-"Windows.\n"
+" jūs savā datorā vēlaties izmantot gan Mageia, gan Microsoft Windows.\n"
"\n"
"\n"
" Pirms izvēlaties šo risinājumu, ņemiet vērā, ka Microsoft Windows sadaļas "
@@ -587,7 +601,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Izmantot jau esošu sadaļu"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Izdzēst visu disku"
@@ -635,7 +654,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Sagatavot auto instalēšanas disketi"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -655,7 +689,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -679,12 +713,12 @@ msgstr ""
"Noklikšķiniet \"Labi\", kad esat gatavi formatēt sadaļas.\n"
"\n"
"Noklikšķiniet \"Atcelt\", ja jūs gribat izvēlēties citas sadaļas, kur\n"
-"instalēt jauno Mandriva Linux operētājsistēmu."
+"instalēt jauno Mageia operētājsistēmu."
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -707,7 +741,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -731,21 +765,24 @@ msgstr "Drošības administrators:"
#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -761,21 +798,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -792,16 +831,10 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-"Pašlaik jums ir jāizvēlas, kurā(s) diska sadaļā(s) instalēt Mandriva Linux\n"
+"Pašlaik jums ir jāizvēlas, kurā(s) diska sadaļā(s) instalēt Mageia\n"
"operētājsistēmu. Ja sadaļas jau ir izveidotas (agrākas GNU/Linux "
"instalēšanas\n"
"laikā vai ar citu diska sadalīšanas rīku), jūs varat izmantot esošās "
@@ -869,12 +902,37 @@ msgstr ""
"\n"
" * Ctrl-m, lai uzstādītu montēšanas punktu"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, fuzzy, c-format
msgid "Removable media auto-mounting"
msgstr "Izņemama datu nesēja automontēšana"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, fuzzy, c-format
msgid "Toggle between normal/expert mode"
msgstr "Pārslēgt normālajā režīmā"
@@ -882,39 +940,45 @@ msgstr "Pārslēgt normālajā režīmā"
#: ../help.pm:536
#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Uz jūsu cietā diska ir atrasta vairāk nekā viena Microsoft Windows sadaļa.\n"
"Lūdzu izvēlieties to sadaļu, kuras izmēru jūs vēlaties izmainīt, lai\n"
-"instalētu jauno Mandriva Linux operētājsistēmu.\n"
+"instalētu jauno Mageia operētājsistēmu.\n"
"\n"
"\n"
"Jūsu zināšanai, katra sadaļa ir uzskaitīta šādā veidā: \"Linux nosaukums\",\n"
@@ -961,23 +1025,23 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
#: ../help.pm:594
@@ -1031,8 +1095,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1064,7 +1127,12 @@ msgstr ""
msgid "Espanol"
msgstr ""
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1120,53 +1188,7 @@ msgstr ""
"Lūdzu izvēlieties pareizu portu. Piemēram, MS Windows\n"
"ports COM1 GNU/Linux vidē saucas ttyS0."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-
-#: ../help.pm:725
-#, fuzzy, c-format
-msgid "authentication"
-msgstr "Autentifikācija"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1180,7 +1202,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1191,7 +1213,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1212,7 +1234,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
@@ -1221,7 +1243,12 @@ msgstr ""
msgid "pdq"
msgstr ""
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Eksperts"
@@ -1234,7 +1261,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1300,11 +1327,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1322,8 +1344,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1340,14 +1361,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "Iekšēja ISDN karte"
+
+#: ../help.pm:809
#, fuzzy, c-format
msgid "ISDN card"
msgstr "Iekšēja ISDN karte"
@@ -1360,24 +1386,26 @@ msgstr "X pēc startēšanas"
#: ../help.pm:861
#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"Norādiet cieto disku, ko vēlaties izdzēst, lai izveidotu jaunu\n"
-"Mandriva Linux sadaļu. Esiet uzmanīgi, jo visi diskā esošie dati\n"
+"Mageia sadaļu. Esiet uzmanīgi, jo visi diskā esošie dati\n"
"pazudīs un nebūs atjaunojami."
#: ../help.pm:866
#, fuzzy, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Nospiediet \"Labi\", ja vēlaties izdzēst visus datus un\n"
"sadaļas, kas atrodas uz šī cietā diska. Esiet uzmanīgi, pēc \"Labi\" "
@@ -1397,3 +1425,6 @@ msgstr "Tālāk ->"
msgid "<- Previous"
msgstr "<- Atpakaļ"
+#, fuzzy
+#~ msgid "authentication"
+#~ msgstr "Autentifikācija"
diff --git a/perl-install/install/help/po/mk.po b/perl-install/install/help/po/mk.po
index 80049adff..0b6d3065b 100644
--- a/perl-install/install/help/po/mk.po
+++ b/perl-install/install/help/po/mk.po
@@ -11,10 +11,11 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX-help-mk\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2006-09-19 23:36-0700\n"
"Last-Translator: Zoran Dimovski <zoki.dimovski@gmail.com>\n"
"Language-Team: Macedonian\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -22,15 +23,15 @@ msgstr ""
"Plural-Forms: nplurals=2; plural= n==1 || n%10==1 ? 0 : 1\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Пред да продолжите, внимателно прочитајте ѓи условите на лиценцата. Таа\n"
-"ја покрива целата дистрибуција на „Mandriva Linux“, Aко се согласувате\n"
+"ја покрива целата дистрибуција на „Mageia“, Aко се согласувате\n"
"со сите услови во неа, штиклирајте „%s“. Доколку не се согласувате со\n"
"лиценцата притиснете на „%s“ и вашиот компјутер ќе се рестартира."
@@ -122,13 +123,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Дали сакате да ja користите оваа опција?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -138,24 +150,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Горе се наведени постоечките „Linux“ партиции што се откриени на вашиот "
@@ -190,30 +206,29 @@ msgstr ""
"втор најнизок „SCSI ID“, итн."
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Инсталацијата на „Mandriva Linux“ се дистрибуира на повеќе CD-а. Ако некој\n"
+"Инсталацијата на „Mageia“ се дистрибуира на повеќе CD-а. Ако некој\n"
"избран паќет се наоѓа на друго CD, „DrakX“ ќе го исфрли моменталното\n"
"и ќе побара од вас да го внесете потребното CD. Ако потребното CD не ви е\n"
"при рака, само притиснете на „%s“ и соодветниот пакет нема да\n"
"биде инсталиран."
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -226,8 +241,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -266,11 +280,10 @@ msgid ""
msgstr ""
"Сега треба да изберете кои програми сакате да се инсталираат на вашиот "
"систем.\n"
-"Постојат илјадници пакети за „Mandriva Linux“, и за да полесно се снајдете\n"
+"Постојат илјадници пакети за „Mageia“, и за да полесно се снајдете\n"
"тие се поделени во групи со слични апликации.\n"
"\n"
-"„Mandriva Linux“ ги дели групите на пакети во четири категории. Може да "
-"избирате\n"
+"„Mageia“ ги дели групите на пакети во четири категории. Може да избирате\n"
"и да мешате паќети од различни категории, така што инсталација на „Работна "
"станица“\n"
"може да има инсталирано и апликации од категоријата „Сервер“.\n"
@@ -344,7 +357,7 @@ msgid "Truly minimal install"
msgstr "Искрено минимална инсталација"
#: ../help.pm:152
-#, c-format
+#, fuzzy, c-format
msgid ""
"If you choose to install packages individually, the installer will present\n"
"a tree containing all packages classified by groups and subgroups. While\n"
@@ -357,10 +370,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -391,16 +404,16 @@ msgstr ""
"!! Ако е избран серверски пакет, дали вие го имате изберено пакетот или\n"
"затоа што е дел од цела група, ќе бидете запрашани да потврдите дали "
"навистина\n"
-"сакате да се инсталираат тие сервери. Како стандард, во „Mandriva Linux“, "
-"сите инсталирани\n"
+"сакате да се инсталираат тие сервери. Како стандард, во „Mageia“, сите "
+"инсталирани\n"
"сервиси автоматски ќе видат вклучени при подигнување. Дури и ако тие се "
"безбедни\n"
"и немаат проблеми во време на излегување на дистрибуцијата, може да се "
"случи\n"
"да бидат откриени безбедносни дупки по излегувањето на оваа верзија на "
-"„Mandriva Linux“. \n"
-"Ако не знаете што прави одреден сервис или зошто се инсталира, притиснете „%"
-"s“.\n"
+"„Mageia“. \n"
+"Ако не знаете што прави одреден сервис или зошто се инсталира, притиснете "
+"„%s“.\n"
"Со притискање на „%s“ ќе се инсталираат излистаните сервиси и тие\n"
"автоматски ќе се вклучуваат при подигнување. !!\n"
"\n"
@@ -427,21 +440,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Автоматски зависности"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"„%s“: при притискање на копчето „%s“ ќе се вклучи Волшебникот\n"
-"за конфигурирање на принтерот. За повеќе информации како да поставете\n"
-"нов принтер, консултирајте се со соодветното поглавје од „Почетен водич“.\n"
-"Изгледот претставен во нашиот водич е сличен на оној кој се користи при\n"
-"инсталацијата."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -512,7 +511,12 @@ msgstr ""
"оваа опција инсталира временски сервер што дополнително може да\n"
"го користат други машини на вашата локална мрежа."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Автоматска синхронизација на време"
@@ -541,11 +545,11 @@ msgstr ""
"најмногу одговара на вашите потреби."
#: ../help.pm:234
-#, c-format
+#, fuzzy, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -601,7 +605,7 @@ msgid ""
msgstr ""
"X (за „X Window System“) е срцето на графичкиот изглед на „GNU/Linux“\n"
"на кој се изградени сите графички околини („KDE“, „GNOME“, „AfterStep“,\n"
-"„WindowMaker“, и.т.н.) вградени во „Mandriva Linux“\n"
+"„WindowMaker“, и.т.н.) вградени во „Mageia“\n"
"\n"
"Ќе видите листа со различни параметри кои можете да ги менувате\n"
"за да добиете оптимален графички приказ.\n"
@@ -641,8 +645,8 @@ msgstr ""
"Зависно вашиот хардвер, овој внес може и да не се појави.\n"
"\n"
" Системот ќе се обиде да отвори графичкиот екран со бараната\n"
-"резолуција. Ако можете да ја прочитате прикажаната пораката и одговорете „%"
-"s“,\n"
+"резолуција. Ако можете да ја прочитате прикажаната пораката и одговорете "
+"„%s“,\n"
"тогаш „DrakX“ ќе продолжи со следниот чекор. Ако не можете да ја прочитате "
"пораката,\n"
"тогаш нешто не е во ред со конфигурацијата на автоматската детекција и\n"
@@ -721,41 +725,45 @@ msgstr ""
"графичкиот приказ."
#: ../help.pm:319
-#, c-format
+#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -764,15 +772,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -786,11 +794,11 @@ msgid ""
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
"Сега треба да одлучите каде на вашиот диск сакате да се инсталира\n"
-"оперативниот систем „Mandriva Linux“. Ако вашиот хард диск е празен\n"
+"оперативниот систем „Mageia“. Ако вашиот хард диск е празен\n"
"или сето достапно место го користи постоечки оперативен систем, треба\n"
"да го партиционирате дискот. Во основа, партиционирање на хард диск значи\n"
"логичка поделба за создавање на простор потребен за инсталирање на\n"
-"вашиот нов „Mandriva Linux“ систем.\n"
+"вашиот нов „Mageia“ систем.\n"
"\n"
"Бидејќи процесот на партиционирање на хард дискот вообичаено е "
"нереверзибилен\n"
@@ -805,8 +813,8 @@ msgstr ""
"Во зависност од конфигурацијата на вашиот хард диск, достапни се\n"
"повеќе опции:\n"
"\n"
-" * „%s“: оваа опција ќе изведе автоматско партиционирање на празниот(те) диск"
-"(ови).\n"
+" * „%s“: оваа опција ќе изведе автоматско партиционирање на празниот(те) "
+"диск(ови).\n"
"Ако ја користете оваа опција, понатаму нема да сте запрашувани.\n"
"\n"
" * „%s“: волшебникот детектирал една или повеќе постоечки „Linux“ партиции\n"
@@ -833,7 +841,7 @@ msgstr ""
"оваа опција\n"
"се препорачува ако на вашиот компјутер сакате да ѓи користите и двата "
"оперативни системи,\n"
-"и „Mandriva Linux“ и „Microsoft Windows“.\n"
+"и „Mageia“ и „Microsoft Windows“.\n"
"\n"
" Пред да ја изберете оваа опција треба да знаете дека по ова „Microsoft "
"Windows“\n"
@@ -843,8 +851,7 @@ msgstr ""
"\n"
" * „%s“: ако сакате да ги избришете сите податоци и сите партиции присутни "
"на\n"
-"вашиот диск и да ги замените со вашиот нов „Mandriva Linux“ систем, изберете "
-"ја\n"
+"вашиот диск и да ги замените со вашиот нов „Mageia“ систем, изберете ја\n"
"оваа опција. Внимавајте, откако ќе потврдите оваа операција не може да\n"
"биде вратена.\n"
"\n"
@@ -867,8 +874,8 @@ msgstr ""
"правено\n"
"вакво нешто и имате малку искуство. За повеќе инструкции како да ја "
"користите\n"
-"алатката „DiskDrake“, обратете се на секцијата „Менаџирање на вашите партиции"
-"„ во\n"
+"алатката „DiskDrake“, обратете се на секцијата „Менаџирање на вашите "
+"партиции„ во\n"
"„Почетен водич“."
#: ../help.pm:377
@@ -876,7 +883,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Користи ја постоечката партиција"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Избриши го целиот диск"
@@ -962,8 +974,23 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Генерирај дискета за авто-инсталација"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
+#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -982,7 +1009,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -1005,15 +1032,15 @@ msgstr ""
"Ако сте подготвени да ги форматирате партициите, притиснете „%s“.\n"
"\n"
"Ако сакате да изберете друга партиција за системска инсталација на\n"
-"вашиот нов оперативен систем „Mandriva Linux“, притиснете на „%s“.\n"
+"вашиот нов оперативен систем „Mageia“, притиснете на „%s“.\n"
"\n"
"Ако сакате да изберете партиции за проверка на лоши блокови на дискот,\n"
"притиснете на „%s“."
#: ../help.pm:437
-#, c-format
+#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -1025,7 +1052,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Додека го инсталирате „Mandriva Linux“, најверојанто е дека некои пакети\n"
+"Додека го инсталирате „Mageia“, најверојанто е дека некои пакети\n"
"веќе имаат надградби од првичното издание. Можеби се поправени грешки,\n"
"решени се безбедносни проблеми. За да придобиете од овие надградби,\n"
"сега може да ги преземете од Интернет. Ако имате функционална интернет\n"
@@ -1039,7 +1066,7 @@ msgstr ""
"пакети притиснете на „%s“. Во спротивно, притиснете на „%s“."
#: ../help.pm:450
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -1048,7 +1075,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1063,7 +1090,7 @@ msgstr ""
"Ако не знаете што да изберете, задржете ја дадената опција. Нивото на "
"сигурност\n"
"ќе можете подоцна да го смените со алатката „draksec“, која е дел од\n"
-"Конгролниот центар на „Mandriva Linux“.\n"
+"Конгролниот центар на „Mageia“.\n"
"\n"
"Пополнете го полето „%s“ со адресата na е-пошта на личноста која е\n"
"одговорна за сигурноста. Сигурносните пораки ќе се праќаат на таа адреса."
@@ -1074,24 +1101,27 @@ msgid "Security Administrator"
msgstr "Администратор за сигурност"
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1107,21 +1137,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1138,19 +1170,12 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"Во овој момент треба да изберете која партициja или партиции ќе ги користите "
"за\n"
-"инсталација на системот „Mandriva Linux“. Ако партициите се веќе "
-"дефинирани,\n"
+"инсталација на системот „Mageia“. Ако партициите се веќе дефинирани,\n"
"од претходна инсталација на „GNU/Linux“ или од друга алатка за поделба на "
"дискот,\n"
"може да ги користите веќе постоечките партиции. Во спротивно, партициите\n"
@@ -1164,7 +1189,7 @@ msgstr ""
"\n"
" * „%s“: оваа опција ги брише сите партиции на избраниот хард диск\n"
"\n"
-" * „%s“: оваа опција ви овозможува автоматски да создадете „ext3“ и „swap“\n"
+" * „%s“: оваа опција ви овозможува автоматски да создадете „ext4“ и „swap“\n"
"партиции во слободниот простор од вашиот хард диск\n"
"\n"
"„%s“: ви дава пристап до додатни карактеристики: \n"
@@ -1215,62 +1240,84 @@ msgstr ""
"\n"
"За да добиете информации за различните типови на датотечни системи,\n"
"прочитајте го одделот за „ext2FS“ од „Упатство за употреба“.\n"
-"\n"
-"Ако инсталирате на „PPC“ машина, ќе сакате да создадете мала „HFS "
-"bootstrap“\n"
-"партиција од барем 1МБ, која ќе се користи од подигнувачот „yaboot“. Ако "
-"сакате\n"
-"да ја направите партицијата малку поголема, на пример 50МБ, тоа може да "
-"биде\n"
-"корисно како место за чување резервен кернел и „ramdisk“ слики за итни "
-"случаи."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Автоматско монтирање на отстранливи медиуми"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Префрлање помеѓу нормален/експертски режим"
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"На вашиот диск е пронајдено повеќе од една „Microsoft“ партиција.\n"
"Изберете ја онаа што сакате да ја намалите/зголемите за да го\n"
-"инсталирате вашиот нов „Mandriva Linux“ оперативен систем.\n"
+"инсталирате вашиот нов „Mageia“ оперативен систем.\n"
"\n"
"Секоја партиција е излистана со: „Linux име“, „Windows име“\n"
"„Капацитет“.\n"
@@ -1310,35 +1357,35 @@ msgstr ""
"добиете комплетната листа на држави."
#: ../help.pm:572
-#, c-format
+#, fuzzy, c-format
msgid ""
"This step is activated only if an existing GNU/Linux partition has been\n"
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Овој чекор се активира само ако на вашиот компјутер претходно е\n"
"пронајдена постоечка „GNU/Linux“ партиција.\n"
"\n"
"„DrakX“ треба да знае дали сакате да извршите нова инсталација или\n"
-"надградба на постоечкиот „Mandriva Linux“ систем:\n"
+"надградба на постоечкиот „Mageia“ систем:\n"
"\n"
" * „%s“: Во најголем број случаеви, ова комплетно го брише стариот систем.\n"
"Сепак, зависно од шемата на делење на дискот, можете да спречите некои\n"
@@ -1349,17 +1396,16 @@ msgstr ""
"\n"
" * „%s“: Оваа класа на инсталација ви овозможува да ги надградите пакетите "
"кои\n"
-"се тековно инсталирани на вашиот „Mandriva Linux“ систем. Вашата тековна "
-"шема на\n"
+"се тековно инсталирани на вашиот „Mageia“ систем. Вашата тековна шема на\n"
"поделба на дискот и корисничките податоци нема да бидат променети. Повеќето "
"од\n"
"останатите конфигурациски чекори остануваат достапни и се слични со "
"стандардната\n"
"инсталацијата.\n"
"\n"
-"Користењето на опцијата „Надгради“ работи одлично на „Mandriva Linux“ "
-"системи кои имаат\n"
-"верзија „8.1“ или понова. Извршување на надградба на „Mandriva Linux“ верзии "
+"Користењето на опцијата „Надгради“ работи одлично на „Mageia“ системи кои "
+"имаат\n"
+"верзија „8.1“ или понова. Извршување на надградба на „Mageia“ верзии "
"постари\n"
"од верзија „8.1“ е строго непрепорачлива."
@@ -1402,7 +1448,7 @@ msgstr ""
"меѓу Латински и не-Латински распоред."
#: ../help.pm:612
-#, c-format
+#, fuzzy, c-format
msgid ""
"The first step is to choose your preferred language.\n"
"\n"
@@ -1418,8 +1464,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1460,9 +1505,9 @@ msgstr ""
"\n"
"За „UTF-8“ (повеќекодна) подршка: Повеќекодната подршка е ново кодирање\n"
"на знаци наменето да ги покрие сите постоечки јазици. Но, комплетна подршка\n"
-"во „GNU/Linux“ е сеуште во развој. Поради оваа причина, употребата на „UTF-"
-"8“ во\n"
-"„Mandriva Linux“ ќе зависи од изборот на корисникот:\n"
+"во „GNU/Linux“ е сеуште во развој. Поради оваа причина, употребата на "
+"„UTF-8“ во\n"
+"„Mageia“ ќе зависи од изборот на корисникот:\n"
"\n"
" * Ако изберете јазик со силно наследно кодирање („latin1“ јазици,\n"
"Руски, Јапонски, Кинески, Корејски, Тајландски, Грчки, Турски, повеќето\n"
@@ -1495,7 +1540,12 @@ msgstr ""
msgid "Espanol"
msgstr "Шпански"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1587,98 +1637,7 @@ msgstr ""
"Изберете ја вистинската порта. На пример, портата „COM1“ под „Windows“,\n"
"во „GNU/Linux“се вика „ttyS0“."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Ова е многу важна одлука во врска со безбедноста на вашиот „GNU/Linux“ "
-"систем:\n"
-"треба да ја внесете лозинката за „root“. „Root“ е системскиот администратор\n"
-"и е единствениот корисник кој е авторизиран да надградува, додава \n"
-"корисници, ја менува севкупната системска конфигурација, итн. Во кратки "
-"црти,\n"
-"„root“ може да прави сѐ! Затоа мора да изберете лозинка која што е тешка\n"
-"за погодување -- „DrakX“ ќе ви каже ако е премногу лесна. Како што можете "
-"да\n"
-"видите, не сте принудени да внесете лозинка, но ние строго ви препорачуваме "
-"да\n"
-"не го правите ова. „GNU/Linux“ е исто склон на грешки при работа исто како и "
-"било\n"
-"кој друг оперативен систем. Бидејќи „root“ може да ги надмине сите "
-"ограничувања\n"
-"и ненамерно да ги избрише сите податоци на партициите ако невнимателно им\n"
-"пристапува на истите. Многу е важно да некој тешко се најави\n"
-"како „root“.\n"
-"\n"
-"Лозинката треба да е составена од букви и бројки и да е долга барем 8 "
-"знаци.\n"
-"Никогаш не ја запишувајте лозинката на „root“ -- така премногу\n"
-"лесно се загрозува вашиот систем.\n"
-"\n"
-"Еден ризик: немојте да ја направите лозинката премногу долга или,\n"
-"комплицирана, бидејќи е потребно да ја знаете на памет.\n"
-"\n"
-"Лозинката нема да биде прикажана на екранот додека ја внесувате. За да се\n"
-"намали ризикот при грешка на внесување на лозинката потребно е да ја "
-"внесете\n"
-"двапати. Ако погрешно ја напишете лозинката и при двете внесувања,\n"
-"оваа „неточна“ лозинка ќе треба да ја користите при првиот обид да\n"
-"се најавите како „root“.\n"
-"\n"
-"Ако сакате да користите сервер за проверка за контрола на пристапот\n"
-"на вашиот компјутер, притиснете на копчето „%s“\n"
-"\n"
-"Ако вашата мрежа користи некоја од „LDAP“, „NIS“ или „PDC Windows Domain“\n"
-"сервиси за проверка, изберете го вистинскиот за „%s “. Ако не знаете кој од "
-"овие\n"
-"сервиси користите, потребно е да го прашате вашиот мрежен администратор.\n"
-"\n"
-"Доколку имате проблем со паметење на лозинки или ако вашиот компјутер\n"
-"никогаш нема да се поврзи на Интернет и имате потполна доверба во оние\n"
-"кои го користат вашиот компјутер, може да изберете „%s“."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "проверка"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1692,7 +1651,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1720,10 +1679,10 @@ msgstr ""
"само ако знаете што правите."
#: ../help.pm:745
-#, c-format
+#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1744,11 +1703,11 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Сега е време да го изберете системот за печатење за вашиот компјутер.\n"
-"Други оперативни системи може да ви понудат еден, „Mandriva Linux“ нуди\n"
+"Други оперативни системи може да ви понудат еден, „Mageia“ нуди\n"
"два. Секој од системите за печатење најдобро одговара со одредени\n"
"типови на конфигурација.\n"
"\n"
@@ -1771,7 +1730,7 @@ msgstr ""
"\n"
"Ако сега се одлучите за избор и подоцна не ви се допаѓа вашиот\n"
"систем за печатење, можете да го промените со вклучување на\n"
-"„PrinterDrake“ од контролниот центар на „Mandriva Linux“\n"
+"„PrinterDrake“ од контролниот центар на „Mageia“\n"
"со протискање на копчето „%s“."
#: ../help.pm:768
@@ -1779,7 +1738,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Експерт"
@@ -1792,7 +1756,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1842,7 +1806,7 @@ msgstr ""
"може да притиснете на копчето и да изберете друг драјвер."
#: ../help.pm:794
-#, c-format
+#, fuzzy, c-format
msgid ""
"As a review, DrakX will present a summary of information it has gathered\n"
"about your system. Depending on the hardware installed on your machine, you\n"
@@ -1865,11 +1829,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1887,8 +1846,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1905,7 +1863,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1960,7 +1918,7 @@ msgstr ""
"мрежа,\n"
"можете да го направите тоа. Информирајте се од испечатената документација "
"или\n"
-"по инсталацијата користете го Контролниот центар на „Mandriva Linux“ за да\n"
+"по инсталацијата користете го Контролниот центар на „Mageia“ за да\n"
"добиете комплетна помош.\n"
"\n"
" * \"%s\": ви дозволува да конфигурирате адреси за „HTTP“ и „FTP“ адреси, "
@@ -1981,13 +1939,18 @@ msgstr ""
" * \"%s\": ако сакате да ја промените конфигурацијата на подигнувачот,\n"
"притиснете на ова копче. Ова би требало да се зачува за напредни корисници.\n"
"Информирајте се од испечатената документација или од вградената помош за\n"
-"подигнувачот во Контролниот центар на „Mandriva Linux“.\n"
+"подигнувачот во Контролниот центар на „Mageia“.\n"
"\n"
" * \"%s\": преку овој внес може да поставете кои сервиси ќе се вклучуваат\n"
"при вклучување на вашата машина. Ако планирате да ја користите како сервер,\n"
"добро би било да го прегледате ова поставување."
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "„ISDN“ картичка"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "„ISDN“ картичка"
@@ -1998,26 +1961,28 @@ msgid "Graphical Interface"
msgstr "Графички интерфејс"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"Изберете го дискот што сакате да го избришете за да ја инсталирате новата\n"
-"„Mandriva Linux“ партиција. Внимавајте, сите податоци на него ќе бидат\n"
+"„Mageia“ партиција. Внимавајте, сите податоци на него ќе бидат\n"
"изгубени и нема да може да се вратат!"
#: ../help.pm:866
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Ако сакате да ги избришете сите податоци и партиции што се наоѓаат\n"
"на овој диск, притиснете на „%s“. Внимавајте, откако ќе притиснете\n"
@@ -2036,3 +2001,123 @@ msgstr "Следно ->"
#, c-format
msgid "<- Previous"
msgstr "<- Претходно"
+
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "„%s“: при притискање на копчето „%s“ ќе се вклучи Волшебникот\n"
+#~ "за конфигурирање на принтерот. За повеќе информации како да поставете\n"
+#~ "нов принтер, консултирајте се со соодветното поглавје од „Почетен "
+#~ "водич“.\n"
+#~ "Изгледот претставен во нашиот водич е сличен на оној кој се користи при\n"
+#~ "инсталацијата."
+
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "Ова е многу важна одлука во врска со безбедноста на вашиот „GNU/Linux“ "
+#~ "систем:\n"
+#~ "треба да ја внесете лозинката за „root“. „Root“ е системскиот "
+#~ "администратор\n"
+#~ "и е единствениот корисник кој е авторизиран да надградува, додава \n"
+#~ "корисници, ја менува севкупната системска конфигурација, итн. Во кратки "
+#~ "црти,\n"
+#~ "„root“ може да прави сѐ! Затоа мора да изберете лозинка која што е тешка\n"
+#~ "за погодување -- „DrakX“ ќе ви каже ако е премногу лесна. Како што можете "
+#~ "да\n"
+#~ "видите, не сте принудени да внесете лозинка, но ние строго ви "
+#~ "препорачуваме да\n"
+#~ "не го правите ова. „GNU/Linux“ е исто склон на грешки при работа исто "
+#~ "како и било\n"
+#~ "кој друг оперативен систем. Бидејќи „root“ може да ги надмине сите "
+#~ "ограничувања\n"
+#~ "и ненамерно да ги избрише сите податоци на партициите ако невнимателно "
+#~ "им\n"
+#~ "пристапува на истите. Многу е важно да некој тешко се најави\n"
+#~ "како „root“.\n"
+#~ "\n"
+#~ "Лозинката треба да е составена од букви и бројки и да е долга барем 8 "
+#~ "знаци.\n"
+#~ "Никогаш не ја запишувајте лозинката на „root“ -- така премногу\n"
+#~ "лесно се загрозува вашиот систем.\n"
+#~ "\n"
+#~ "Еден ризик: немојте да ја направите лозинката премногу долга или,\n"
+#~ "комплицирана, бидејќи е потребно да ја знаете на памет.\n"
+#~ "\n"
+#~ "Лозинката нема да биде прикажана на екранот додека ја внесувате. За да "
+#~ "се\n"
+#~ "намали ризикот при грешка на внесување на лозинката потребно е да ја "
+#~ "внесете\n"
+#~ "двапати. Ако погрешно ја напишете лозинката и при двете внесувања,\n"
+#~ "оваа „неточна“ лозинка ќе треба да ја користите при првиот обид да\n"
+#~ "се најавите како „root“.\n"
+#~ "\n"
+#~ "Ако сакате да користите сервер за проверка за контрола на пристапот\n"
+#~ "на вашиот компјутер, притиснете на копчето „%s“\n"
+#~ "\n"
+#~ "Ако вашата мрежа користи некоја од „LDAP“, „NIS“ или „PDC Windows "
+#~ "Domain“\n"
+#~ "сервиси за проверка, изберете го вистинскиот за „%s “. Ако не знаете кој "
+#~ "од овие\n"
+#~ "сервиси користите, потребно е да го прашате вашиот мрежен администратор.\n"
+#~ "\n"
+#~ "Доколку имате проблем со паметење на лозинки или ако вашиот компјутер\n"
+#~ "никогаш нема да се поврзи на Интернет и имате потполна доверба во оние\n"
+#~ "кои го користат вашиот компјутер, може да изберете „%s“."
+
+#~ msgid "authentication"
+#~ msgstr "проверка"
diff --git a/perl-install/install/help/po/mn.po b/perl-install/install/help/po/mn.po
index 47f016e19..a0a7aed9f 100644
--- a/perl-install/install/help/po/mn.po
+++ b/perl-install/install/help/po/mn.po
@@ -8,10 +8,11 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2004-01-02 00:35+0100\n"
"Last-Translator: Sanlig Badral <Badral@openmn.org>\n"
"Language-Team: Mongolian <openmn-core@lists.sf.net>\n"
+"Language: mn\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -22,7 +23,7 @@ msgstr ""
#, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
@@ -70,13 +71,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Та энэ чанарыг ашиглахыг хүсэж байна уу?"
#: ../help.pm:57
#, fuzzy, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -86,24 +98,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"вы вы вы вы вы г вы г бол Нэр г г Нэр бол төрөл г г г Erfitt төрөл бол бол г "
@@ -116,7 +132,7 @@ msgstr ""
#: ../help.pm:88
#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
@@ -130,12 +146,11 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -148,8 +163,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -224,10 +238,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -256,16 +270,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Автоматаар"
-#: ../help.pm:186
-#, fuzzy, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr "с с аас шинэ бол."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, fuzzy, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -306,7 +311,12 @@ msgid ""
msgstr ""
"ямх GMT Цаг вы бол вы г с ямх бол Цонхнууд г с Интернэт вы Интернэт бол вы."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, fuzzy, c-format
msgid "Automatic time synchronization"
msgstr "Автоматаар"
@@ -332,7 +342,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -439,39 +449,43 @@ msgstr ""
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -480,15 +494,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -507,7 +521,12 @@ msgstr ""
msgid "Use existing partition"
msgstr ""
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, fuzzy, c-format
msgid "Erase entire disk"
msgstr "Устгах"
@@ -562,7 +581,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Үүсгэж байна"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -582,7 +616,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -591,7 +625,7 @@ msgstr "Бүх г г вы вы г бол Та вы вы г г вы г с вы г
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -614,7 +648,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -630,21 +664,24 @@ msgstr "Хамгаалалт:"
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -660,21 +697,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -691,22 +730,41 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr ""
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Ердийн/мэргэжлийн горимын хооронд шилжих"
@@ -714,34 +772,40 @@ msgstr "Ердийн/мэргэжлийн горимын хооронд шилж
#: ../help.pm:536
#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"вы ямх шинэ г бол нэр Цонхнууд нэр г г г нэр бол төрөл г г г Erfitt төрөл "
@@ -767,23 +831,23 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"бол г вы шинэ г\n"
" с вы вы аас г\n"
@@ -829,8 +893,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -865,7 +928,12 @@ msgstr ""
msgid "Espanol"
msgstr ""
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -919,56 +987,7 @@ msgid ""
"Windows is named \"ttyS0\" under GNU/Linux."
msgstr "бол."
-#: ../help.pm:691
-#, fuzzy, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"бол Цэг аас вы Эзэн бол бол хэрэглэгчид Томоор бол вы бол вы вы вы вы вы бол "
-"бусад бол г г аас Хэзээч үгүй г вы г вы төрөл ямх тийш аас вы вы г вы вы г "
-"вы с г Цонхнууд Домэйн с вы байхгүй вы г вы хэзээ ч вы вы с."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr ""
-
-#: ../help.pm:728
+#: ../help.pm:684
#, fuzzy, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -982,7 +1001,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -996,7 +1015,7 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1017,7 +1036,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"с Бусад вы туг аас аас г\n"
@@ -1029,7 +1048,12 @@ msgstr ""
msgid "pdq"
msgstr ""
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Мэргэжлийн"
@@ -1042,7 +1066,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1087,11 +1111,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1109,8 +1128,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1127,7 +1145,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1149,7 +1167,12 @@ msgstr ""
" с вы хэрэглэгчид г\n"
" с вы вы с."
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "ИСДН(ISDN)"
+
+#: ../help.pm:809
#, fuzzy, c-format
msgid "ISDN card"
msgstr "ИСДН(ISDN)"
@@ -1162,8 +1185,8 @@ msgstr ""
#: ../help.pm:861
#, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
@@ -1171,12 +1194,14 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr "с вы с вы Цонхнууд г с."
#: ../help.pm:872
@@ -1189,3 +1214,69 @@ msgstr "Дараагийн ->"
msgid "<- Previous"
msgstr ""
+#, fuzzy
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr "с с аас шинэ бол."
+
+#, fuzzy
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "бол Цэг аас вы Эзэн бол бол хэрэглэгчид Томоор бол вы бол вы вы вы вы вы "
+#~ "бол бусад бол г г аас Хэзээч үгүй г вы г вы төрөл ямх тийш аас вы вы г вы "
+#~ "вы г вы с г Цонхнууд Домэйн с вы байхгүй вы г вы хэзээ ч вы вы с."
diff --git a/perl-install/install/help/po/ms.po b/perl-install/install/help/po/ms.po
index 2dec49c80..ec4e83d26 100644
--- a/perl-install/install/help/po/ms.po
+++ b/perl-install/install/help/po/ms.po
@@ -6,10 +6,11 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2006-02-19 14:09+0800\n"
"Last-Translator: Sharuzzaman Ahmat Raslan <sharuzzaman@myrealbox.com>\n"
"Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n"
+"Language: ms\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -18,7 +19,7 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr "dalam off."
@@ -69,6 +70,16 @@ msgstr ""
"dalam."
#: ../help.pm:54
+#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
#, fuzzy, c-format
msgid "Do you want to use this feature?"
msgstr "Anda mahu memadam masukan ini dari buku telefon?"
@@ -76,7 +87,8 @@ msgstr "Anda mahu memadam masukan ini dari buku telefon?"
#: ../help.pm:57
#, fuzzy, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -86,24 +98,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"on on Nama Nama dan\n"
@@ -115,7 +131,7 @@ msgstr ""
#: ../help.pm:88
#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
@@ -126,12 +142,11 @@ msgstr "on on dan."
#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -144,8 +159,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -220,10 +234,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -249,16 +263,7 @@ msgstr "dan on on default mula dan tidak dan amaran on."
msgid "Automatic dependencies"
msgstr "Kebergantungan tidak diselesaika"
-#: ../help.pm:186
-#, fuzzy, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr "on on."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, fuzzy, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -298,7 +303,12 @@ msgstr ""
"dalam Masa dan on lokal dan dalam hos Tetingkap on Internet Internet on "
"lokal."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, fuzzy, c-format
msgid "Automatic time synchronization"
msgstr "Segerak sedang berjalan"
@@ -325,7 +335,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -436,39 +446,43 @@ msgstr ""
#: ../help.pm:319
#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -477,15 +491,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -514,7 +528,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Guna partisyen sedia ada (onpart)"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, fuzzy, c-format
msgid "Erase entire disk"
msgstr "Masukkan cakera liut"
@@ -569,7 +588,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Janakan cakera liut Auto Pasang"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -589,7 +623,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -598,7 +632,7 @@ msgstr "fail on dan on on on on."
#: ../help.pm:437
#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -621,7 +655,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -637,21 +671,24 @@ msgstr "Pentadbir Domain:"
#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -667,21 +704,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -698,14 +737,8 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"on dan on\n"
" on\n"
@@ -723,12 +756,37 @@ msgstr ""
" Ctrl\n"
" Ctrl fail on dan."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, fuzzy, c-format
msgid "Removable media auto-mounting"
msgstr " -a - pilih semua media non-removable.\n"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, fuzzy, c-format
msgid "Toggle between normal/expert mode"
msgstr "normal"
@@ -736,34 +794,40 @@ msgstr "normal"
#: ../help.pm:536
#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"on dalam Tetingkap dan\n"
@@ -788,23 +852,23 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"on\n"
" keluar fail on\n"
@@ -848,8 +912,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -883,7 +946,12 @@ msgstr ""
msgid "Espanol"
msgstr ""
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, fuzzy, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -937,55 +1005,7 @@ msgid ""
"Windows is named \"ttyS0\" under GNU/Linux."
msgstr ""
-#: ../help.pm:691
-#, fuzzy, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"dan pengguna dan on Masuk ralat dan on dan Tidak sekali on dalam Kepada "
-"ralat ralat LDAP NIS Tetingkap Domain tiada."
-
-#: ../help.pm:725
-#, fuzzy, c-format
-msgid "authentication"
-msgstr "Pengesahan"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, fuzzy, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -999,7 +1019,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1013,7 +1033,7 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1034,7 +1054,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Lain-lain\n"
@@ -1046,7 +1066,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Mahir"
@@ -1059,7 +1084,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1104,11 +1129,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1126,8 +1146,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1144,7 +1163,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1166,7 +1185,12 @@ msgstr ""
"\n"
"."
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "Kad Video"
+
+#: ../help.pm:809
#, fuzzy, c-format
msgid "ISDN card"
msgstr "Kad Video"
@@ -1179,8 +1203,8 @@ msgstr "Konfigurasi (X) Antaramuka Grafikal"
#: ../help.pm:861
#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr "dalam on dan!"
@@ -1188,12 +1212,14 @@ msgstr "dalam on dan!"
#, fuzzy, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr "on dan on on dan on Tetingkap on dan on."
#: ../help.pm:872
@@ -1206,3 +1232,72 @@ msgstr "Berikut ->"
msgid "<- Previous"
msgstr "Terdahulu"
+#, fuzzy
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr "on on."
+
+#, fuzzy
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "dan pengguna dan on Masuk ralat dan on dan Tidak sekali on dalam Kepada "
+#~ "ralat ralat LDAP NIS Tetingkap Domain tiada."
+
+#, fuzzy
+#~ msgid "authentication"
+#~ msgstr "Pengesahan"
diff --git a/perl-install/install/help/po/mt.po b/perl-install/install/help/po/mt.po
index 82cb97b77..bd5e0e9ea 100644
--- a/perl-install/install/help/po/mt.po
+++ b/perl-install/install/help/po/mt.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: mt\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2004-10-04 18:45+0200\n"
"Last-Translator: Ramon Casha <ramon.casha@linux.org.mt>\n"
"Language-Team: Maltese <mt@li.org>\n"
@@ -18,15 +18,15 @@ msgstr ""
"X-Generator: KBabel 1.3.1\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Qabel tkompli int mitlub taqra sew it-termini ta' din il-liċenzja. Hija\n"
-"tkopri d-distribuzzjoni sħiħa ta' Mandriva Linux. Jekk taqbel mat-termini\n"
+"tkopri d-distribuzzjoni sħiħa ta' Mageia. Jekk taqbel mat-termini\n"
"kollha tagħha, agħfas il-buttuna \"%s\". Jekk ma taqbilx, agħfas \"%s\" "
"biex\n"
"tirributja l-kompjuter."
@@ -107,13 +107,23 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Trid tuża din il-faċilità?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -123,24 +133,24 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Hawn issib il-partizzjonijiet ta' Linux li nstabu fuq id-diska. Tista' \n"
@@ -172,15 +182,15 @@ msgstr ""
"Fuq diski SCSI, \"a\" hija d-diska bl-iżjed ID baxx, \"b\" hija t-tieni, eċċ."
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"L-installazzjoni ta' Mandriva Linux hija maqsuma fuq diversi CD-ROMs. Jekk\n"
+"L-installazzjoni ta' Mageia hija maqsuma fuq diversi CD-ROMs. Jekk\n"
"pakkett qiegħed fuq CD-ROM oħra, DrakX jiftaħ is-CDROM u jitolbok iddaħħal "
"is-\n"
"CD li jmiss. Jekk m'għandekx dik is-CD tista' tikklikkja \"%s\" u l-pakketti "
@@ -188,15 +198,14 @@ msgstr ""
"hemm fuq dik is-CD ma jiġux installati."
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -209,8 +218,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -248,11 +256,11 @@ msgid ""
"megabytes."
msgstr ""
"Issa wasal il-mument fejn tagħżel liema programmi tixtieq tinstalla fuq\n"
-"is-sistema tiegħek. Hemm eluf ta' pakketti disponibbli għal Mandriva Linux,\n"
+"is-sistema tiegħek. Hemm eluf ta' pakketti disponibbli għal Mageia,\n"
"u biex ikun iżjed faċli timmaniġġjahom, qegħdin imqassmin fi gruppi ta'\n"
"programmi simili.\n"
"\n"
-"Mandriva Linux iqassam il-gruppi ta' pakketti fi tlett kategoriji. Tista' \n"
+"Mageia iqassam il-gruppi ta' pakketti fi tlett kategoriji. Tista' \n"
"tagħżel u tħallat programmi minn diversi kategoriji, jiġifieri "
"installazzjoni\n"
"\"workstation\" tista' tinkludi programmi mis-sezzjoni \"server\", eċċ.\n"
@@ -314,7 +322,7 @@ msgid "Truly minimal install"
msgstr "Installazzjoni assolutament minima"
#: ../help.pm:152
-#, c-format
+#, fuzzy, c-format
msgid ""
"If you choose to install packages individually, the installer will present\n"
"a tree containing all packages classified by groups and subgroups. While\n"
@@ -327,10 +335,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -359,7 +367,7 @@ msgstr ""
"li tgħidlek għal xiex jintuża dak il-pakkett.\n"
"!! Jekk pakkett ta' server jiġi installat intenzjonalment jew għax jifforma\n"
"parti minn grupp, int tintalab tikkonferma jekk verament tridx lill dawn\n"
-"is-servizzi jiġu nstallati. Fil-Mandriva Linux, is-servizzi li tinstalla "
+"is-servizzi jiġu nstallati. Fil-Mageia, is-servizzi li tinstalla "
"jiġu\n"
"mtella' awtomatikament meta tixgħel. Għalkemm dawn kienu siguri u ma kien "
"fihom\n"
@@ -387,22 +395,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Dipendenzi awtomatiċi"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": jekk tagħfas il-buttuna \"%s\" jinfetaħ saħħar tal-konfigurazzjoni \n"
-"tal-printer. Ikkonsulta l-kapitlu korrispondenti tal-iStarter Guide għal "
-"iżjed\n"
-"tagħrif dwar kif tissettja printer ġdid. L-interfaċċja preżentata hawn hija "
-"simili\n"
-"għal dik użata waqt l-installazzjoni."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -469,7 +462,12 @@ msgstr ""
"jippermettilu\n"
"li jintuża bħala server tal-ħin għal kompjuters oħra fuq in-network lokali."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Sinkronizzazzjoni tal-ħin awtomatiku"
@@ -499,11 +497,11 @@ msgstr ""
"ħtiġijietek l-aħjar."
#: ../help.pm:234
-#, c-format
+#, fuzzy, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -558,7 +556,7 @@ msgid ""
"not successful in getting the display configured."
msgstr ""
"X (għal Sistema X Window) huwa l-qalb ta' l-interfaċċja grafika GNU/Linux\n"
-"li fuqu huma bbażati l-ambjenti grafiċi kollha inklużi ma' Mandriva Linux "
+"li fuqu huma bbażati l-ambjenti grafiċi kollha inklużi ma' Mageia "
"(KDE,\n"
"GNOME, AfterStep, WindowMaker, eċċ).\n"
"\n"
@@ -671,41 +669,41 @@ msgstr ""
"server, jew jekk ma rnexxielekx tissettja l-X sew."
#: ../help.pm:319
-#, c-format
+#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -714,15 +712,14 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -736,12 +733,12 @@ msgid ""
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
"F'dan il-punt int trid tagħżel fejn, fuq il-ħard disk, trid tinstalla s-\n"
-"sistema operattiva Mandriva Linux. Jekk il-ħard disk huwa vojt, jew jekk\n"
+"sistema operattiva Mageia. Jekk il-ħard disk huwa vojt, jew jekk\n"
"hemm sistema operattiva qed tokkupaha kollha, l-ewwel trid toħloq \n"
"partizzjonijiet. Bażikament, il-partizzjonijiet tal-ħard disk jaqsmu d-"
"diska\n"
"f'partijiet biex ikun hemm sezzjonijiet fejn tiġi nstallata s-sistema ġdida\n"
-"Mandriva Linux.\n"
+"Mageia.\n"
"\n"
"Peress li l-effett ta' partizzjonament tal-ħard disk m'humiex riversibbli,\n"
"u jista' jwassal għal telf ta' informazzjoni, dan il-proċess jista' jidher\n"
@@ -803,7 +800,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Uża partizzjoni eżistenti"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Ħassar kull m'hemm fid-diska"
@@ -883,8 +885,23 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Oħloq flopi awto-installazzjoni"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
+#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -903,7 +920,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -926,15 +943,15 @@ msgstr ""
"Agħfas \"%s\" meta tkun lest biex tifformattja l-partizzjonijiet.\n"
"\n"
"Agħfas \"%s\" jekk trid tagħżel partizzjoni oħra għas-sistema ġdida\n"
-"Mandriva Linux.\n"
+"Mageia.\n"
"\n"
"Agħfas \"%s\" biex tagħżel partizzjonijiet biex jiġu ċċekkjati għal blokki\n"
"ħżiena fuq id-diska."
#: ../help.pm:437
-#, c-format
+#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -946,7 +963,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Fid-data meta tinstalla l-Mandriva Linux, aktarx ikunu ġew aġġornati xi\n"
+"Fid-data meta tinstalla l-Mageia, aktarx ikunu ġew aġġornati xi\n"
"pakketti minn meta ġiet pubblikata. Xi żbalji jistgħu ikunu ġew irranġati,\n"
"u problemi ta' sigurtà ġew riżolti. Sabiex tibbenifika minn dawn l-\n"
"aġġornamenti, jaqbillek tniżżilhom minn fuq l-internet. Agħżel \"%s\" jekk\n"
@@ -960,7 +977,7 @@ msgstr ""
"agħfas \"%s\" biex tniżżilhom u tinstallahom jew \"%s\" biex twaqqaf."
#: ../help.pm:450
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -969,7 +986,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -984,7 +1001,7 @@ msgstr ""
"\n"
"Jekk ma tafx liema tagħżel, żomm l-għażla impliċita. Tkun tista' tibdel dan\n"
"il-livell iżjed 'il quddiem bl-għodda draksex, li jifforma parti miċ-Ċentru\n"
-"ta' Kontroll Mandriva Linux.\n"
+"ta' Kontroll Mageia.\n"
"\n"
"Imla' l-kaxxa \"%s\" bl-indirizz tal-imejl tal-persuna responsabbli mis-"
"sigurtà.\n"
@@ -996,24 +1013,24 @@ msgid "Security Administrator"
msgstr "Amministratur tas-sigurtà"
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1029,21 +1046,21 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1060,17 +1077,11 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"F'dan il-punt trid tagħżel liema partizzjoni(jiet) se jintużaw għall-\n"
-"installazzjoni tas-sistema Mandriva Linux. Jekk diġà ġew definiti xi\n"
+"installazzjoni tas-sistema Mageia. Jekk diġà ġew definiti xi\n"
"partizzjonijiet, jew minn installazzjoni preċedenti ta' GNU/Linux jew minn\n"
"għodda ta' partizzjonament oħra, tista' tuża l-partizzjonijiet eżistenti.\n"
"Altrimenti, l-partizzjonijiet tal-ħard disk iridu jiġu definiti.\n"
@@ -1086,7 +1097,7 @@ msgstr ""
"mill-ħard disk magħżula.\n"
"\n"
" * \"%s\": din l-għażla awtomatikament toħloqlok partizzjonijiet\n"
-"ext3 u swap fl-ispazju vojt tad-diska.\n"
+"ext4 u swap fl-ispazju vojt tad-diska.\n"
"\n"
" * \"%s\" jagħtik aċċess għal iżjed faċilitajiet:\n"
"\n"
@@ -1137,58 +1148,78 @@ msgstr ""
"\n"
"Biex tikseb iżjed informazzjoni dwar il-filesystems differenti disponibbli,\n"
"jekk jogħġbok aqra l-kapitlu ext2fs fil-Manwal ta' Referenza.\n"
-"\n"
-"Jekk qed tinstalla fuq kompjuter PPC, tkun trid toħloq partizzjoni żgħira\n"
-"HFS \"bootstrap\", ta' l-inqas 1MB, li tintuża mill-bootloader yaboot. Jekk\n"
-"tiddeċiedi li tagħmlu ftit ikbar, ngħidu aħna 50MB, tista' ssibu post utli\n"
-"fejn tqiegħed kernel u ramdisk \"spare\" għal emerġenzi."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Awtomuntar ta' diski li jinħarġu"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Aqleb bejn modalità normali u esperta"
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Instabu iżjed minn partizzjoni waħda tal-Microsoft fuq il-ħard disk. Jekk \n"
"jogħġbok agħżel liema minnhom trid iċċekken biex tinstalla s-sistema \n"
-"operattiva Mandriva Linux.\n"
+"operattiva Mageia.\n"
"\n"
"Kull partizzjoni hija mmarkata hekk: \"Isem tal-Linux\", \"Isem fil-Windows"
"\",\n"
@@ -1232,35 +1263,34 @@ msgstr ""
"fil-lista' agħfas il-buttuna \"%s\" għal lista sħiħa ta' pajjiżi."
#: ../help.pm:572
-#, c-format
+#, fuzzy, c-format
msgid ""
"This step is activated only if an existing GNU/Linux partition has been\n"
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Dan il-pass jiġi attivat biss jekk instabet partizzjoni eżistenti GNU/Linux\n"
"fuq il-kompjuter.\n"
"\n"
"DrakX issa għandu bżonn ikun jaf jekk tridx tagħmel installazzjoni ġdida\n"
-"jew aġġornament tas-sistema eżistenti Mandriva Linux:\n"
+"jew aġġornament tas-sistema eżistenti Mageia:\n"
"\n"
" * \"%s\". Fil-parti l-kbira, din tħassar is-sistema antika għal kollox.\n"
"Però, skond l-iskema ta' partizzjonijiet, tista' ma tħallix ċerti \n"
@@ -1269,7 +1299,7 @@ msgstr ""
"fajls, għandek tagħżel din l-għażla.\n"
"\n"
" * \"%s\". Din il-klassi ta' installazzjoni tħallik taġġorna l-pakketti\n"
-"installati bħalissa fuq is-sistema Mandriva Linux. Il-partizzjonijiet "
+"installati bħalissa fuq is-sistema Mageia. Il-partizzjonijiet "
"eżistenti\n"
"u d-data tal-utenti ma jintmessux. Ħafna mill-passi l-oħra tal-"
"konfigurazzjoni\n"
@@ -1278,7 +1308,7 @@ msgstr ""
"L-użu tal-għażla \"Aġġorna\" għandha taħdem tajjeb fuq sistemi Mandriva "
"Linux\n"
"minn verżjoni \"8.1\" 'il fuq. Mhux rakkomandat li tagħmel aġġornament ta'\n"
-"sistema Mandriva Linux qabel 8.1."
+"sistema Mageia qabel 8.1."
#: ../help.pm:594
#, c-format
@@ -1316,7 +1346,7 @@ msgstr ""
"u mhux Latin."
#: ../help.pm:612
-#, c-format
+#, fuzzy, c-format
msgid ""
"The first step is to choose your preferred language.\n"
"\n"
@@ -1332,8 +1362,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1376,7 +1405,7 @@ msgstr ""
"tal-karattri intenzjonata biex tipprovdi sapport għal-lingwi kollha. Però \n"
"s-sapport għaliha fil-Linux għadu qed jiġi żviluppat. Għalhekk, l-użu tal-"
"UTF-8\n"
-"fil-Mandriva Linux jiddependi mill-għażla tal-utent:\n"
+"fil-Mageia jiddependi mill-għażla tal-utent:\n"
"\n"
"* Jekk tagħżel lingwa b'ħafna sapport eżistenti f'kodifika oħra (eż, "
"lingwi \n"
@@ -1405,7 +1434,12 @@ msgstr ""
msgid "Espanol"
msgstr "Espanol"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1498,93 +1532,7 @@ msgstr ""
"Jekk jogħġbok agħżel il-port it-tajjeb. Per eżempju, il-port \"COM1\" fil-\n"
"Windows huwa ekwivalenti għal \"ttyS0\" fil-GNU/Linux."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Dan huwa punt ta' deċiżjoni kruċjali għas-sigurtà tas-sistema GNU/Linux\n"
-"tiegħek: trid tagħżel password għal \"root\". \"root\" huwa l-utent li\n"
-"jintuża bħala amministratur tas-sistema, u huwa l-uniku user awtorizzat\n"
-"li jaġġorna s-sistema, iżid utenti, jibdel il-konfigurazzjoni. eċċ. Fi "
-"kliem\n"
-"ieħor, \"root\" kapaċi jagħmel kollox! Għalhekk huwa importanti li tagħżel\n"
-"password li diffiċli biex taqtagħha: DrakX iwissik jekk tagħżel waħda faċli\n"
-"wisq. Kif tista' tinduna, huwa anke possibbli li ma ddaħħal xejn bħala "
-"password,\n"
-"imma dan huwa perikoluż ĦAFNA u aħna ma nirrikmandawh qatt. Peress li \"root"
-"\"\n"
-"jista' jegħleb kull limitazzjoni, saħansitra jħassar l-informazzjoni u \n"
-"partizzjonijiet kollha, huwa mportanti li jkun diffiċli kemm jista' jkun li\n"
-"nies oħra jidħlu bħala \"root\".\n"
-"\n"
-"Il-password għandu jkun taħlita ta' ittri u numri, u ta' l-inqas twil 8 \n"
-"karattri. M'għandek qatt tikteb il-password ta' \"root\" x'inkien - dan \n"
-"jagħmilha faċli wisq tikkomprometti s-sistema.\n"
-"\n"
-"Fl-istess ħin tagħmilx il-password twil jew kumplikata wisq għax int trid\n"
-"tkun kapaċi tiftakarha.\n"
-"\n"
-"Il-password mhux se jintwera fuq l-iskrin waqt li tittajpjah. Għalhekk trid\n"
-"tittajpjah darbtejn biex jonqos iċ-ċans li tagħmel żball waqt li tittajpja.\n"
-"Jekk tagħmel l-istess żball darbtejn, trid tittajpja l-password b'dan il-"
-"mod\n"
-"sakemm tibdlu.\n"
-"\n"
-"Jekk trid tuża server ta' awtentikazzjoni biex jikkontrolla l-aċċess għall-\n"
-"kompjuter, agħfas il-buttuna \"%s\".\n"
-"Jekk in-network tiegħek juża protokoll LDAP, NIS jew PDC tal-Windows\n"
-"għall-awtentikazzjoni, agħżel dak li jgħodd għal \"%s\". Jekk ma tafx, "
-"staqsi \n"
-"lill-amministratur tan-network.\n"
-"\n"
-"Jekk għandek problema tiftakar il-passwords, jew jekk il-kompjuter qatt "
-"m'hu\n"
-"se jiġi mqabbad ma' l-internet u assolutament tafda lil kull min juża l-"
-"kompjuter,\n"
-"tista' tagħżel \"%s\"."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "awtentikazzjoni"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1598,7 +1546,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1622,10 +1570,10 @@ msgstr ""
"x'qed tagħmel."
#: ../help.pm:745
-#, c-format
+#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1646,11 +1594,11 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Issa wasal il-waqt li tagħżel sistema ta' printjar għall-kompjuter tiegħek.\n"
-"Sistemi operattivi oħra joffrulek waħda, Mandriva Linux jagħtik tnejn.\n"
+"Sistemi operattivi oħra joffrulek waħda, Mageia jagħtik tnejn.\n"
"Kull waħda minn dawn is-sistema hija idejali għal ċirkostanzi differenti.\n"
" * \"%s\" - li jfisser \"printja minngħajr kju\", hija l-aħjar għażla\n"
"jekk għandek konnessjoni diretta mal-printer, trid il-faċilità li twaqqaf\n"
@@ -1670,14 +1618,19 @@ msgstr ""
"\n"
"Jekk tagħmel għażla issa, u wara tiskopri li ma togħġbokx din is-sistema,\n"
"tista' tibdilha billi tħaddem PrinterDrake miċ-ċentru tal-kontroll ta' \n"
-"Mandriva Linux u tikklikkja l-buttuna \"%s\"."
+"Mageia u tikklikkja l-buttuna \"%s\"."
#: ../help.pm:768
#, c-format
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Espert"
@@ -1690,7 +1643,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1730,7 +1683,7 @@ msgstr ""
"tista' tikklikkja fuq il-buttuna u tagħżel drajver differenti."
#: ../help.pm:794
-#, c-format
+#, fuzzy, c-format
msgid ""
"As a review, DrakX will present a summary of information it has gathered\n"
"about your system. Depending on the hardware installed on your machine, you\n"
@@ -1753,11 +1706,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1775,8 +1723,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1793,7 +1740,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1840,7 +1787,7 @@ msgstr ""
"\n"
" * \"%s\": jekk tixtieq tikkonfigura l-aċċess għall-internet jew network\n"
"lokali tista tagħmel dan issa. Irreferi għad-dokumentazzjoni stampata jew\n"
-"uża ċ-Ċentru tal-Kontroll Mandriva Linux wara li tlesti l-installazzjoni "
+"uża ċ-Ċentru tal-Kontroll Mageia wara li tlesti l-installazzjoni "
"biex\n"
"tikseb għajnuna online sħiħa.\n"
"\n"
@@ -1863,13 +1810,18 @@ msgstr ""
"din il-buttuna. Dan għandu jsir minn utenti avvanzati biss. Irreferi għad-\n"
"dokumentazzjoni stampata, jew l-għajnuna online dwar il-konfigurazzjoni "
"tal-\n"
-"bootloader fiċ-Ċentru tal-Kontroll Mandriva Linux.\n"
+"bootloader fiċ-Ċentru tal-Kontroll Mageia.\n"
"\n"
" * \"%s\": permezz ta' dan l-element tista' tirfina liema servizzi se \n"
"jitħaddmu fuq il-kompjuter. Jekk qed tippjana li tuża l-kompjuter bħala \n"
"server hija ideja tajba tirrevedi din is-sezzjoni."
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "Kard ISDN"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "Kard ISDN"
@@ -1880,26 +1832,26 @@ msgid "Graphical Interface"
msgstr "Interfaċċja grafika"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"Agħżel liema ħard disk trid tħassar biex tinstalla l-partizzjonijiet tal-\n"
-"Mandriva Linux fuqha. Oqgħod attent, l-informazzjoni kollha fuq din id-\n"
+"Mageia fuqha. Oqgħod attent, l-informazzjoni kollha fuq din id-\n"
"diska jintilef u ma jkunx jista' jinġab lura!"
#: ../help.pm:866
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be able\n"
+"to recover any data and partitions present on this hard disk drive, including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Klikkja fuq \"%s\" jekk trid tħassar l-informazzjoni u partizzjonijiet \n"
"kollha li hemm fuq dan il-ħard disk. Oqgħod attent, wara li tagħfas \"%s\"\n"
@@ -1919,3 +1871,121 @@ msgstr "Li jmiss ->"
msgid "<- Previous"
msgstr "<- Ta' qabel"
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": jekk tagħfas il-buttuna \"%s\" jinfetaħ saħħar tal-"
+#~ "konfigurazzjoni \n"
+#~ "tal-printer. Ikkonsulta l-kapitlu korrispondenti tal-iStarter Guide għal "
+#~ "iżjed\n"
+#~ "tagħrif dwar kif tissettja printer ġdid. L-interfaċċja preżentata hawn "
+#~ "hija simili\n"
+#~ "għal dik użata waqt l-installazzjoni."
+
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "Dan huwa punt ta' deċiżjoni kruċjali għas-sigurtà tas-sistema GNU/Linux\n"
+#~ "tiegħek: trid tagħżel password għal \"root\". \"root\" huwa l-utent li\n"
+#~ "jintuża bħala amministratur tas-sistema, u huwa l-uniku user awtorizzat\n"
+#~ "li jaġġorna s-sistema, iżid utenti, jibdel il-konfigurazzjoni. eċċ. Fi "
+#~ "kliem\n"
+#~ "ieħor, \"root\" kapaċi jagħmel kollox! Għalhekk huwa importanti li "
+#~ "tagħżel\n"
+#~ "password li diffiċli biex taqtagħha: DrakX iwissik jekk tagħżel waħda "
+#~ "faċli\n"
+#~ "wisq. Kif tista' tinduna, huwa anke possibbli li ma ddaħħal xejn bħala "
+#~ "password,\n"
+#~ "imma dan huwa perikoluż ĦAFNA u aħna ma nirrikmandawh qatt. Peress li "
+#~ "\"root\"\n"
+#~ "jista' jegħleb kull limitazzjoni, saħansitra jħassar l-informazzjoni u \n"
+#~ "partizzjonijiet kollha, huwa mportanti li jkun diffiċli kemm jista' jkun "
+#~ "li\n"
+#~ "nies oħra jidħlu bħala \"root\".\n"
+#~ "\n"
+#~ "Il-password għandu jkun taħlita ta' ittri u numri, u ta' l-inqas twil 8 \n"
+#~ "karattri. M'għandek qatt tikteb il-password ta' \"root\" x'inkien - dan \n"
+#~ "jagħmilha faċli wisq tikkomprometti s-sistema.\n"
+#~ "\n"
+#~ "Fl-istess ħin tagħmilx il-password twil jew kumplikata wisq għax int "
+#~ "trid\n"
+#~ "tkun kapaċi tiftakarha.\n"
+#~ "\n"
+#~ "Il-password mhux se jintwera fuq l-iskrin waqt li tittajpjah. Għalhekk "
+#~ "trid\n"
+#~ "tittajpjah darbtejn biex jonqos iċ-ċans li tagħmel żball waqt li "
+#~ "tittajpja.\n"
+#~ "Jekk tagħmel l-istess żball darbtejn, trid tittajpja l-password b'dan il-"
+#~ "mod\n"
+#~ "sakemm tibdlu.\n"
+#~ "\n"
+#~ "Jekk trid tuża server ta' awtentikazzjoni biex jikkontrolla l-aċċess "
+#~ "għall-\n"
+#~ "kompjuter, agħfas il-buttuna \"%s\".\n"
+#~ "Jekk in-network tiegħek juża protokoll LDAP, NIS jew PDC tal-Windows\n"
+#~ "għall-awtentikazzjoni, agħżel dak li jgħodd għal \"%s\". Jekk ma tafx, "
+#~ "staqsi \n"
+#~ "lill-amministratur tan-network.\n"
+#~ "\n"
+#~ "Jekk għandek problema tiftakar il-passwords, jew jekk il-kompjuter qatt "
+#~ "m'hu\n"
+#~ "se jiġi mqabbad ma' l-internet u assolutament tafda lil kull min juża l-"
+#~ "kompjuter,\n"
+#~ "tista' tagħżel \"%s\"."
+
+#~ msgid "authentication"
+#~ msgstr "awtentikazzjoni"
diff --git a/perl-install/install/help/po/nb.po b/perl-install/install/help/po/nb.po
index d45ce6e0c..2efa2febd 100644
--- a/perl-install/install/help/po/nb.po
+++ b/perl-install/install/help/po/nb.po
@@ -1,46 +1,41 @@
-# translation of nb.po to Norwegian Bokmål
-# translation of nb.po to Norsk Bokmål
-# translation of DrakX-nb.po to Norwegian Bokmål
-# KTranslator Generated File
-# Translation file of Mandriva Linux graphic install
-# Copyright (C) 1999 Mandriva
-# Terje Bjerkelia <terje@bjerkelia.com>, 1999-2000.
-# Andreas Bergstrøm <abergstr@halden.net>, 2000.
-# Kenneth Rørvik <kenneth@argon.no-ip.com>, 2003.
-# Per Øyvind Karlsen <peroyvind@sintrax.net>, 2003, 2004.
-# Keld Simonsen <keld@dkuug.dk>, 2004.
-# Per Øyvind Karlsen <peroyvind@mandrivalinux.org>, 2004, 2005.
-# Eskild Hustvedt <eskild@goldenfiles.com>, 2004.
-# Eskild Hustvedt <zerodogg@skolelinux.no>, 2004, 2005.
-# Per Øyvind Karlsen <pkarlsen@mandriva.com>, 2005.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
+# Translators:
+# Yuri Chornoivan <yurchor@ukr.net>, 2024
+# Karl Morten Ramberg <karl.m.ramberg@gmail.com>, 2024
+#
+#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: nb\n"
+"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
-"PO-Revision-Date: 2005-09-21 23:11+0200\n"
-"Last-Translator: Per Øyvind Karlsen <pkarlsen@mandriva.com>\n"
-"Language-Team: Norwegian Bokmål <cooker-i18n@mandrivalinux.com>\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
+"PO-Revision-Date: 2024-09-04 17:33+0000\n"
+"Last-Translator: Karl Morten Ramberg <karl.m.ramberg@gmail.com>, 2024\n"
+"Language-Team: Norwegian Bokmål (https://app.transifex.com/MageiaLinux/"
+"teams/9361/nb/)\n"
+"Language: nb\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.10.2\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../help.pm:14
#, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
-"Før du går videre bør du lese betingelsene i lisensen nøye. Den dekker hele\n"
-"Mandriva Linux-distribusjonen. Hvis du er enig med alle betingelsene,\n"
-"sjekk av \"%s\"-boksen- Hvis ikke, så vil det år trykke på '%s'k-knappen "
-"starte\n"
-"maskinen din på nytt."
+"Før du fortsetter, bør du lese vilkårene for lisensen nøye. Den\n"
+"dekker hele Mageia-distribusjonen. Hvis du er enig i alle\n"
+"vilkårene den inneholder, merk av for \"%s\"-boksen. Hvis ikke, klikk på "
+"\"%s\"\n"
+"knappen vil starte datamaskinen på nytt."
#: ../help.pm:20
#, c-format
@@ -130,13 +125,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr "Brukernavn"
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr "Godta bruker"
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Ønsker du å bruke denne finessen?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -146,24 +152,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Her er de eksisterende Linux-partisjonene som ble oppdaget på din harddisk.\n"
@@ -204,27 +214,27 @@ msgstr ""
#: ../help.pm:88
#, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Mandriva Linux-installasjonen er spredd ut over flere CD-ROMer. \n"
-"Hvis en valgt pakke er på en annen CDROM, vil DrakX løse ut den nåværende\n"
-"CD og be deg sette i en den rette CDen som kreves. Hvis du ikke har den som\n"
-"trengs nå, bare klikk på «%s», pakken(e) vil da ikke bli installert."
+"Mageia-installasjonen er distribuert på flere CD-ROM-er. Hvis en\n"
+"valgt pakke er plassert på en annen CD-ROM, vil DrakX løse ut strømmen\n"
+"CD og ber deg sette inn den nødvendige. Hvis du ikke har den forespurte\n"
+"CD for hånden, bare klikk på \"%s\", de tilsvarende pakkene vil ikke\n"
+"installeres."
#: ../help.pm:95
#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -237,8 +247,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -275,62 +284,62 @@ msgid ""
"command-line interface. The total size of this installation is about 65\n"
"megabytes."
msgstr ""
-"Det er nå på tide å spesifisere hvilke programmer du ønsker å installere på\n"
-"systemet ditt. Det er tusenvis av pakker tilgjengelig for Mandriva Linux, "
-"for\n"
-"å gjøre det enklere å håndtere pakkene så har de blitt plassert i grupper "
-"med\n"
-"lignende applikasjoner.\n"
+"Det er nå på tide å spesifisere hvilke programmer du ønsker å installere på "
+"systemet ditt.\n"
+"Det er tusenvis av pakker tilgjengelig for Mageia, og for å lage det\n"
+"enklere å administrere, de har blitt plassert i grupper med lignende\n"
+"applikasjoner..\n"
+"\n"
+"Mageia sorterer pakkegrupper i fire kategorier. Du kan blande og\n"
+"matche applikasjoner fra de forskjellige kategoriene, så en "
+"\"arbeidsstasjon\"\n"
+"installasjonen kan fortsatt ha applikasjoner fra kategorien ``Server''\n"
+"installert.\n"
"\n"
-"Pakkene er delt inn i grupper som svarer til forskjellig typisk bruk av din "
-"maskin.\n"
-"Mandriva Linux har fire forhåndsdefinerte installasjoner tilgjengelig.\n"
-"Du kan mikse og matche applikasjoner fra forskjellige grupper, så en\n"
-"``Arbeidsstasjon''-installasjon kan fortsatt ha applikasjoner fra\n"
-"``Utvikling''-gruppa installert.\n"
+" * \"%s\": if you plan to use your machine as a workstation, select one or\n"
+"more of the groups in the workstation category.\n"
"\n"
-" * \"%s\": hvis du planlagger å bruke din maskin som arbeidsstasjon, velg\n"
-"en eller flere av applikasjonene som er i arbeidsstasjon-gruppen.\n"
+" * \"%s\": if you plan on using your machine for programming, select the\n"
+"appropriate groups from that category. The special \"LSB\" group will\n"
+"configure your system so that it complies as much as possible with the\n"
+"Linux Standard Base specifications.\n"
"\n"
-" * \"%s\": hvis du planlegger å bruke maskinen til programmering, velg\n"
-"ønskede grupper fra den kategorien. Den spesielle «LSB»-gruppen vil\n"
-"sette opp systemet ditt slik at den samsvarer mest mulig med\n"
-"Linux Standard Base spesifikasjonene.\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
+"of the system. However, if you do not select the \"LSB\" group you will\n"
+"still have a system which is nearly 100%% LSB-compliant.\n"
+"\n"
+" * \"%s\": if your machine is intended to be a server, select which of the\n"
+"more common services you wish to install on your machine.\n"
"\n"
-" * \"%s\": hvis maskinen skal brukes som tjener, velg hvilke av de mer "
-"vanlige\n"
-"tjenestene som du ønsker installert på din maskin.\n"
+" * \"%s\": this is where you will choose your preferred graphical\n"
+"environment. At least one must be selected if you want to have a graphical\n"
+"interface available.\n"
"\n"
-" * \"%s\": det er her du kan velge ditt ønskede grafiske miljø. Du\n"
-"må velge minst ett hvis du ønsker å ha ett grafisk grensesnitt "
-"tilgjengelig.\n"
+"Moving the mouse cursor over a group name will display a short explanatory\n"
+"text about that group.\n"
"\n"
-"Ved å flytte musepekeren over et gruppenavn vil en kort forklarende tekst\n"
-"dukke opp over den gruppen.\n"
+"You can check the \"%s\" box, which is useful if you're familiar with the\n"
+"packages being offered or if you want to have total control over what will\n"
+"be installed.\n"
"\n"
-"Du kan merke av i «%s»-boksen, som er nyttig hvis du er kjent med\n"
-"pakkene som blir tilbudt, ellr du vil ha total kontroll over hva som vil "
-"bli\n"
-"installert.\n"
-"Hvis du starter installasjonen i «%s»-modus trenger du ikke å velge noen "
-"grupper\n"
-"og hindre installasjon av alle nye pakker. Dette er nyttig for å reparere\n"
-"eller oppdatere et allerede installert system.\n"
+"If you start the installation in \"%s\" mode, you can deselect all groups\n"
+"and prevent the installation of any new packages. This is useful for\n"
+"repairing or updating an existing system.\n"
"\n"
-"Hvis du ikke velger noen grupper når du utfører en normal installasjon (i\n"
-"motsetning til en oppgradering) vil en dialogboks dukke opp og foreslå\n"
-"forskjellige valg for en minimal installasjon:\n"
+"If you deselect all groups when performing a regular installation (as\n"
+"opposed to an upgrade), a dialog will pop up suggesting different options\n"
+"for a minimal installation:\n"
"\n"
-"* \"%s\": installer et minimum av pakker som trengs for å ha et fungerende\n"
-"grafisk skrivebord.\n"
+" * \"%s\": install the minimum number of packages possible to have a\n"
+"working graphical desktop.\n"
"\n"
-" * \"%s\": installerer basesystemet pluss standard verktøy og dokumentasjon\n"
-"for disse. Denne installasjonen passer til å sette opp en server.\n"
+" * \"%s\": installs the base system plus basic utilities and their\n"
+"documentation. This installation is suitable for setting up a server.\n"
"\n"
-" * \"%s\" vil installere det absolutte minimum som er nødvendig for å få\n"
-"Linux systemet opp og gå. Med denne installasjonen så vil du\n"
-"kun ha et kommandolinje-grensesnitt. Denne installasjonen er på rundt 65 "
-"megabyte."
+" * \"%s\": will install the absolute minimum number of packages necessary\n"
+"to get a working Linux system. With this installation you will only have a\n"
+"command-line interface. The total size of this installation is about 65\n"
+"megabytes."
#: ../help.pm:149 ../help.pm:591
#, c-format
@@ -361,10 +370,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -384,63 +393,54 @@ msgid ""
"another installation. See the second tip of the last step on how to create\n"
"such a floppy."
msgstr ""
-"Hvis du fortalte installasjonsrutinen at du ønsket å velge enkeltpakker,\n"
-"så vil du få se ett tre som innholder alle pakkene sortert etter grupper\n"
-"og undergrupper. Når du blar gjennom treet, kan du velge grupper, \n"
-"undergrupper eller individuelle pakker.\n"
-"\n"
-"Når du velger en pakke i treet, vil en beskrivelse dukke opp til høyre\n"
-"side for å la deg vite hva pakkens hensikt er.\n"
-"\n"
-"!! Hvis en tjenerpakke har blitt valgt, enten på grunn av at du valgte den "
-"spesifikt\n"
-"eller fordi den var medlem av en gruppe pakker, vil du bli bedt om å "
-"bekrefte at du\n"
-"virkelig ønsker å installere de valgte tjenerne.\n"
-"Som standard i Mandriva Linux vil alle installerte tjenere bli startet ved "
-"oppstart.\n"
-"Selv om de er sikre og ikke har noen kjente sikkerhetshull når denne "
-"distribusjonen\n"
-"ble sluppet,\n"
-"så kan det være at sikkerhetshull ble oppdaget etter at denne versjonen\n"
-"av Mandriva Linux ble sluppet. Hvis du ikke vet hva en type tjener gjør, "
-"eller\n"
-"hvorfor den blir installert, klikk «%s».\n"
-"«%s» vil installere de listede tjenerene og de vil bli\n"
-"startet automatisk som standard under oppstart. !!\n"
-"\n"
-"«%s»-valget er brukt for å deaktivere advarselsdialogen som vises\n"
-"når installasjonen automatisk velger en pakke for å løse avhengigheter.\n"
-"Noen pakker er avhengig av at andre pakker er installert.\n"
-"Installasjonsprogrammet kan finne ut hvilke pakker som trengs for å\n"
-"oppfylle avhengigheten til en pakke for å utføre en vellykket installasjon.\n"
-"\n"
-"Det lille diskett-ikonet på bunnen av denne listen lar deg laste en\n"
-"pakkeliste lagd under en tidligere installasjon. Dette er nyttig hvis du\n"
-"har flere maskiner som du vil sette opp identisk. Ved å klikke på dette\n"
-"ikonet vil du bli bedt om å sette inn disketten laget ved slutten av\n"
-"en annen installasjon. Se det andre tipset i det siste steget om hvordan du\n"
-"kan lage en slik diskett."
+"Hvis du velger å installere pakker individuelt, vil installasjonsprogrammet "
+"vises\n"
+"et tre som inneholder alle pakker klassifisert etter grupper og "
+"undergrupper. Mens\n"
+"Når du blar gjennom treet, kan du velge hele grupper, undergrupper eller "
+"enkeltpersoner\n"
+"pakker.\n"
+"\n"
+"Hver gang du velger en pakke i treet, vil en beskrivelse vises på\n"
+"høyre side som viser deg formålet med den pakken.\n"
+"\n"
+"!! Hvis en serverpakke er valgt, enten fordi du spesifikt\n"
+"valgte den individuelle pakken eller fordi den er en del av en gruppe av "
+"pakker,\n"
+"vil du bli bedt om å bekrefte at du virkelig vil at disse pakkene skal "
+"installeres. Som standard vil Mageia automatisk starte alle installerte\n"
+"tjenester ved oppstart. Selv om de er trygge og ikke har noen kjente "
+"problemer på\n"
+"den tiden distribusjonen ble sendt, er det fullt mulig at\n"
+"sikkerhetshull ble oppdaget etter at denne versjonen av Mageia ble utgitt. "
+"Hvis du ikke vet hva en bestemt tjeneste skal gjøre eller\n"
+"hvorfor det blir installert, klikk deretter \"%s\". Ved å klikke på \"%s\" "
+"installeres\n"
+"de listede tjenestene, og de vil startes automatisk ved oppstart. !!\n"
+"\n"
+"Alternativet \"%s\" brukes til å deaktivere advarselsdialogen som vises\n"
+"når installasjonsprogrammet automatisk velger en pakke for å løse et\n"
+"avhengighetsproblem. Noen pakker avhenger av andre og installasjonen av\n"
+"én bestemt pakke kan kreve installasjon av en annen pakke. De\n"
+"installasjonsprogrammet kan bestemme hvilke pakker som kreves for å "
+"tilfredsstille en avhengighet for å fullføre installasjonen.\n"
+"\n"
+"Det lille diskettikonet nederst på listen lar deg laste inn en\n"
+"pakkeliste opprettet under en tidligere installasjon. Dette er nyttig hvis "
+"du\n"
+"har en rekke maskiner som du ønsker å konfigurere identisk. Klikker\n"
+"på dette ikonet vil du be deg om å sette inn disketten som ble opprettet på "
+"slutten av\n"
+"en annen installasjon. Se det andre tipset i det siste trinnet om hvordan du "
+"oppretter\n"
+"en slik diskett."
#: ../help.pm:183
#, c-format
msgid "Automatic dependencies"
msgstr "Automatiske avhengigheter"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"«%s»: Klikk på «%s»-knappen for å åpne skriverveiviseren.\n"
-"Konsulter det korresponderende kapitlet i oppstartsguiden for mer\n"
-"informasjon om hvordan du setter opp en skriver. Grensesnittet som\n"
-"brukes her er tilsvarende det som benyttes under installasjon."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -513,7 +513,12 @@ msgstr ""
"valget installerer dessuten en tidstjener som kan brukes av andre maskiner\n"
"på ditt lokale nettverk."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr "Maskinvareklokke satt til GMT"
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Automatisk tidssynkronisering"
@@ -549,7 +554,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -603,72 +608,64 @@ msgid ""
"want to check \"%s\" if your machine is to act as a server, or if you were\n"
"not successful in getting the display configured."
msgstr ""
-"X (for X Window System) er hjertet i GNU/Linux sitt grafiske grensesnitt "
-"som\n"
-"alle de grafiske miljøene (KDE, GNOME Afterstep, Windowmaker osv.)\n"
-"som følger med Mandriva Linux er avhengige av.\n"
+"X (for X Window System) er hjertet i GNU/Linux grafiske grensesnitt\n"
+"der alle de grafiske miljøene (KDE, GNOME, AfterStep,\n"
+"WindowMaker, etc.) sammen med Mageia stole på.\n"
"\n"
-"Du vil få en liste med forkjellige parametre som kan forandres for å få et\n"
-"optimalt grafisk grensesnitt: \n"
+"Du vil se en liste over forskjellige parametere som skal endres for å få en "
+"optimal\n"
+"grafisk visning.\n"
"\n"
-"Skjermkort\n"
+"Grafikkort\n"
"\n"
-" Installasjonsrutinen kan vanligvis automatisk oppdage og sette opp\n"
-"skjermkortet som er installert i din maskin. Dersom dette ikke er tilfellet, "
-"kan\n"
-"du velge det kortet du faktisk har installert, fra denne listen.\n"
+"Installasjonsprogrammet vil normalt automatisk oppdage og konfigurere\n"
+"grafikkortet installert på maskinen din. Hvis dette ikke er riktig, kan du\n"
+"velg fra denne listen kortet du faktisk har installert.\n"
"\n"
-" I tilfelle det er flere tjenere tilgjengelig for ditt kort, med eller "
-"uten\n"
-"3D-akselerasjon, vil du så kunne velge den tjeneren som best passer\n"
-"dine behov.\n"
+"I situasjonen der forskjellige servere er tilgjengelige for kortet ditt,\n"
+"med eller uten 3D-akselerasjon, blir du bedt om å velge hvilken server\n"
+"passer best til dine behov.\n"
"\n"
"\n"
"\n"
-"Skjerm\n"
+"Overvåk\n"
"\n"
-" Installasjonsrutinen kan normalt automatisk oppdage og sette opp "
-"skjermen\n"
-"som er koblet til din maskin. Hvis dette ikke er korrekt, kan du velge "
-"skjermen du\n"
-"faktisk har fra listen.\n"
+"Normalt vil installasjonsprogrammet automatisk oppdage og konfigurere\n"
+"monitor koblet til maskinen din. Hvis det ikke er riktig, kan du velge\n"
+"fra denne listen skjermen som er koblet til datamaskinen.\n"
"\n"
"\n"
"\n"
"Oppløsning\n"
"\n"
-" Her kan du velge hvilke oppløsninger og fargedybder du vil bruke fra de "
-"som\n"
-"er tilgjengelige for din maskinvare. Velg den kombinasjonen som best passer\n"
-"dine behov (Du kan forandre dette etter installasjon). En prøve av det "
-"valgte\n"
-"oppsettet vil vises i skjermen.\n"
+"Her kan du velge oppløsninger og fargedybder som er tilgjengelige for din\n"
+"grafikk maskinvare. Velg den som best passer dine behov (det vil du være\n"
+"kan gjøre endringer etter installasjonen). Et utvalg av de utvalgte\n"
+"konfigurasjonen vises på monitorbildet.\n"
"\n"
"\n"
"\n"
"Test\n"
"\n"
-" Avhengig av din maskinvare vil denne oppføringen kanskje ikke vises.\n"
+"Avhengig av maskinvaren din, kan det hende at denne oppføringen ikke vises.\n"
"\n"
-" systemet vil forsøke å starte en grafisk skjerm med den valgte\n"
-"oppløsningen. Dersom du kan se meldingen som vises under testen og \n"
-"svarer \"%s\" vil DrakX fortsette til neste trinn. Hvis du ikke kan se "
-"meldingen\n"
-"betyr det at en del av oppsettet er gal, og testen vil avsluttes etter 12\n"
-"sekunder. Du vil da bli tatt tilbake til menyen. Forandre innstillingene til "
-"du får\n"
-"et oppsett som fungerer. \n"
+"Systemet vil prøve å åpne en grafisk skjerm på ønsket\n"
+"oppløsning. Hvis du ser testmeldingen under testen og svarer \"%s\",\n"
+"så vil DrakX gå videre til neste trinn. Hvis du ikke ser det, så det\n"
+"betyr at en del av den automatisk oppdagede konfigurasjonen var feil og\n"
+"testen avsluttes automatisk etter 12 sekunder og returnerer deg til\n"
+"meny. Endre innstillinger til du får en korrekt grafisk visning.\n"
"\n"
"\n"
"\n"
-"Valg\n"
+"Alternativer\n"
"\n"
-" Her kan du velge om du vil at maskinen automatisk skal starte det "
-"grafiske\n"
-"grensesnittet når maskinen starter. Du vil selvsagt ønske å sjekke av for \"%"
-"s\"\n"
-"dersom maskinen skal fungere som en tjener, eller om du ikke fikk satt opp\n"
-"det grafiske grensesnittet riktig."
+"Disse trinnene lar deg velge om du vil at maskinen skal gjøre det\n"
+"automatisk bytte til et grafisk grensesnitt ved oppstart. Det er klart du "
+"kan\n"
+"ønsker å sjekke \"%s\" om maskinen din skal fungere som en server, eller om "
+"du var det\n"
+"ikke lykkes med å få skjermen konfigurert."
#: ../help.pm:291
#, c-format
@@ -734,39 +731,43 @@ msgstr ""
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -775,15 +776,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -796,86 +797,75 @@ msgid ""
"experience. For more instructions on how to use the DiskDrake utility,\n"
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
-"Du må nå avgjøre hvor du ønsker å installere Mandriva Linux-"
-"operativsystemet\n"
-"på din harddisk. Hvis din harddisk er tom, eller et eksisterende\n"
-"operativsystem benytter all plassen som er tilgjengelig, vil du bli nødt til "
-"å\n"
-"ompartisjonere disken. Partisjonering av en harddisk vil si å dele den inn "
-"i\n"
-"logiske enheter for å skape plassen som trengs for å installere ditt nye\n"
-"Mandriva Linux-system.\n"
-"\n"
-"Ettersom partisjoneringsprosessen ikke kan tilbakestilles, og kan føre til "
-"tapte\n"
-"data hvis det allerede finnes et operativsystem på disken, kan "
-"partisjonering\n"
-"virke skremmendes dersom du er en uerfaren bruker. Heldigvis har DrakX en\n"
-"veiviser som forenkler denne prosessen. Før du fortsetter installasjonen, "
-"bør\n"
-"du lese gjennom resten av denne teksten, og ikke minst: Ta deg god tid.\n"
-"\n"
-"Avhengig av ditt harddiskoppsett, er flere valg tilgjengelige:\n"
-"\n"
-" *«%s»: dette valget utfører automatisk partisjonering av dine\n"
-"harddisker. Dersom du velger dette, vil det ikke ble stilt flere spørsmål.\n"
-"\n"
-" * «%s»: veiviseren har funnet en eller flere linux-partisjoner på "
-"harddisken\n"
-"din. Hvis du vil bruke disse, velg dette valget. Du vil bli spurt om å angi\n"
-"monteringspunkter for hver partisjon. De allerede oppsatte "
-"monteringspunktene\n"
-"er valgt som standard, og det er normalt lurt å beholde disse.\n"
-"\n"
-" * \"%s\": hvis Microsoft Windows er installert på din harddisk, og tar all "
-"tilgjengelig\n"
-"plass, må du lage ledig plass for GNU/Linux. For å oppnå dette, kan du enten "
-"slette\n"
-"hele Microsoft Windows-partisjonen med tilhørende data (Se ``Slett hele "
-"disken''-valget),\n"
-"eller forandre størrelsen på din Microsoft Windows FAT- eller NTFS-"
-"partisjon.\n"
-"Forandring av diskstørrelse kan utføres uten tap av data forutsatt at du "
-"har\n"
-"defragmentert Windows-partisjonen. Det anbefales sterkt at du tar \n"
-"sikkerhetskopi av dine data. Dette valget er anbefalt, dersom du ønsker \n"
-"å kjøre både Mandriva Linux og Microsoft Windows på samme maskin.\n"
-"\n"
-" Før du velger dette valget, må du være klar over at størrelsen på din\n"
-"Microsoft Windows-partisjon vil være mindre enn når du startet. Du vil \n"
-"dermed ha mindre ledig plass under Microsoft Windows til å lagre data \n"
-"og installere programvare på.\n"
-"\n"
-" * \"%s\": hvis du ønsker å slette alle partisjoner og data, og erstatte dem "
-"med ditt\n"
-"nye Mandriva Linux-system, så velg dette valget. Vær forsiktig, du vil ikke "
-"kunne gjøre\n"
-"om dette etter at du har bekreftet valget.\n"
-"\n"
-" !! Hvis du velger dette valget, vil alle data på harddisken bli "
-"slettet. !!\n"
-"\n"
-" * \"%s\": dette vil enkelt og greit slette alt fra harddisken og starte en "
-"ny partisjonering\n"
-"fra bunn av. Alle data på harddisken vil bli tapt.\n"
-"\n"
-" !! Hvis du velger dette valget, vil du miste alle data på harddisken. !!\n"
-"\n"
-" * \"%s\": velg dette dersom du vil partisjonere disken manuelt.\n"
-"Vær forsiktig -- dette er en kraftig, men farlig operasjon, og du kan lett "
-"miste alle\n"
-"dine eksisterende data. Derfor er dette valget kun anbefalt dersom du har "
-"gjort\n"
-"dette før, og har en del erfaring. For mer veiledning i bruk av DiskDrake-"
-"verktøyet\n"
-"se kapittelet ``Managing Your Partitions''-seksjonen i ``Starter Guide''."
+"Du må nå bestemme hvor på harddisken du vil installere Mageia "
+"operativsystemet. Hvis harddisken er tom eller hvis et eksisterende "
+"operativsystem bruker all tilgjengelig plass må du partisjonere enheten. I "
+"utgangspunktet betyr partisjonering av en harddisk  logisk å dele den for å "
+"skape plassen som trengs for å installere den nye Mageia systemet.\n"
+"\n"
+"Fordi prosessen med å partisjonere en harddisk vanligvis er irreversibel og "
+"kan føre til tap av data, kan partisjoneringen være skremmende og stressende "
+"for en uerfarne bruker. Heldigvis inkluderer DrakX en veiviser som forenkler "
+"denne prosessen. Før du fortsetter med dette trinnet, les gjennom resten av "
+"denne delen og fremfor alt, ta deg god tid.\n"
+"\n"
+"Avhengig av konfigurasjonen av harddisken, er det flere alternativer "
+"tilgjengelig: \n"
+" * \"%s\". Dette alternativet vil utføre en automatisk partisjonering av den "
+"tomme delen disk(er). Hvis du bruker dette alternativet vil det ikke være "
+"flere spørsmål.\n"
+" * \"%s\". Veiviseren har oppdaget en eller flere eksisterende Linux-"
+"partisjoner på harddisken din. Hvis du vil bruke dem, velg dette "
+"alternativet. Du vil da bli bedt om å velge monteringspunktene knyttet til "
+"hver enkelt av partisjonene.\n"
+"De eldre monteringspunktene er valgt som standard, og for det meste er det "
+"det en god idé å beholde dem.\n"
+"* \"%s\". Hvis Microsoft Windows er installert på harddisken og tar all "
+"plassen som er tilgjengelig på den, må du frigjøre ledig plass forGNU/Linux. "
+"For å gjøre det kan du slette Microsoft Windows-partisjonen og data (se "
+"løsningen ``Slett hele disken'') eller endre størrelsen på Microsoft "
+"Windows\n"
+"FAT- eller NTFS-partisjon. Endre størrelse kan utføres uten tap av data, "
+"forutsatt at du tidligere har defragmentert Windows-partisjonen.\n"
+"\n"
+"Det anbefales på det sterkeste å sikkerhetskopiere dataene dine. Å bruke "
+"dette alternativet anbefales hvis du vil bruke både Mageia og Microsoft "
+"Windows på samme datamaskin.\n"
+"\n"
+"Før du velger dette alternativet, vennligst forstå at det etter denne "
+"prosedyren, vil størrelsen på Microsoft Windows-partisjonen være mindre enn "
+"da du startet. Du vil ha mindre ledig plass under Microsoft Windows til å "
+"lagre dataene dine eller for å installere ny programvare.\n"
+"\n"
+" * \"%s\". Hvis du ønsker å slette alle data og alle partisjoner som finnes "
+"på harddisken og erstatte dem med ditt nye Mageia-system, velg dette "
+"alternativet. Vær forsiktig, for du vil ikke kunne angre denne operasjonen "
+"etter at du har bekreftet.\n"
+"\n"
+" !! Hvis du velger dette alternativet, vil alle data på disken slettes. !!\n"
+" * \"%s\". Dette alternativet vises når harddisken er fullstendig tatt av "
+"Microsoft Windows. Å velge dette alternativet vil ganske enkelt slette alt.\n"
+"\n"
+" !! Hvis du velger dette alternativet, vil alle data på disken gå tapt. !!\n"
+"\n"
+" * \"\"%s. Velg dette alternativet hvis du vil manuelt partisjonere disken. "
+"Vær forsiktig - det er et kraftig, men farlig valg, og du kan veldig fort "
+"miste alle dataene dine. Derfor kan dette alternativet egentlig bare "
+"anbefales hvis du har gjort noe slikt før og har erfaring. For flere "
+"instruksjoner om hvordan du bruker DiskDrake-verktøyet, Se avsnittet "
+"``Administrere partisjonene dine'' i ``Starter Guide''."
#: ../help.pm:377
#, c-format
msgid "Use existing partition"
msgstr "Bruk eksisterende partisjon"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr "Bruk den ledige plassen på Microsoft Windows®-partisjonen"
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Slette hele disken"
@@ -961,7 +951,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Generer autoinstallasjonsdiskett"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr "Spill på nytt"
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr "Automatisert"
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr "Lagre pakkevalg"
+
+#: ../help.pm:408
#, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -981,39 +986,37 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
msgstr ""
-"Hvis du valgte å bruke noen gamle GNU/Linux-partisjoner, kan det\n"
-" hende du ønsker å omformatere enkelte\n"
-"eksisterende partisjoner for å slette data på disse. Hvis du ønsker å\n"
-"gjøre dette, kan du velge disse partisjonene også.\n"
-"(å formatere betyr å opprette ett filsystem)\n"
+"Hvis du velger å gjenbruke eldre GNU/Linux-partisjoner, kan det være lurt å "
+"re- formatere de på nytt og slett alle data de inneholder. For å gjøre det, "
+"velg disse partisjonene også.\n"
"\n"
-"Legg merke til at det ikke er nødvendig å formatere alle eksisterende\n"
-"partisjoner. Du må reformatere partisjonene som skal innholde\n"
-"operativsystemet (som «/», «/usr» eller «/var»), men du trenger ikke\n"
-"å omformatere partisjoner som inneholder data du vil beholde\n"
-"(typisk «/home»).\n"
+"Vær oppmerksom på at det ikke er nødvendig å re-formatere alle eksisterende\n"
+"partisjoner. Du må formatere partisjonene som inneholder operativsystemet "
+"(som \"/\", \"/usr\" eller \"/var\"), men du trenger ikke å formatere på "
+"nytt partisjoner som inneholder data du ønsker å beholde (vanligvis \"/"
+"home\").\n"
"\n"
-"Vær forsiktig når du velger partisjoner. Etter formatering vil alle data\n"
-"på de valgte partisjonene bli slettet uten at du kan hente dataene\n"
-"tilbake.\n"
+"Vær forsiktig når du velger partisjoner. Etter formateringen er fullført, "
+"vil alle data på de valgte partisjonene bli slettet og du vil ikke kunne "
+"gjenopprette den.\n"
"\n"
-"Klikk «%s» når du er klar til å formatere partisjonene.\n"
+"Klikk på \"%s\" når du er klar til å formatere partisjonene.\n"
"\n"
-"Klikk «%s» om du vil velge andre partisjoner for din nye\n"
-"Mandriva Linux-operativsysteminstallasjon. \n"
+"Klikk på \"%s\" hvis du vil velge en annen partisjon for din nye "
+"Installasjon av Mageia operativsystemet.\n"
"\n"
-"Klikk på «%s» hvis du ønsker å velge partisjoner som skal sjekkes for\n"
-"ødelagte blokker på disken."
+"Klikk på \"%s\" hvis du ønsker å velge partisjoner som skal sjekkes for "
+"dårlige blokker på disken."
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -1025,17 +1028,17 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Når du installerer Mandriva Linux, er det sannsynlig at enkelte pakker\n"
-"er blitt oppdatert siden denne versjonen ble sluppet. Noen feil kan ha\n"
-"blitt fikset, eller sikkerhetsproblemer løst. For at du skal få utnytte\n"
-"disse forbedringene kan du nå laste dem ned fra internett. Kryss av «%s»\n"
-"dersom du har en fungerende internettforbindelse, eller «%s» dersom\n"
-"du heller vil installere oppdateringene senere.\n"
-"\n"
-"Når du velger «%s» får du en liste over tjenere som oppdateringene kan\n"
-"lastes ned fra. Velg en som er nærmest deg. Et pakkevalgstre vil da\n"
-"dukke opp. Gå gjennom valgene, og klikk «%s» for å hente og installere\n"
-"de(n) valgte pakkene(ne), eller «%s» for å avbryte."
+"Før du installerer Mageia, er det sannsynlig at noen pakker har blitt "
+"oppdatert siden den første utgivelsen. Feil kan ha blitt fikset, "
+"sikkerhetsproblemer løst. For å la deg dra nytte av disse oppdateringene, "
+"kan du nå laste dem ned fra Internett. Sjekk \"%s\" hvis du\n"
+"har en fungerende Internett-tilkobling, eller \"\"%s hvis du foretrekker å "
+"installere oppdaterte pakker senere.\n"
+"\n"
+"Hvis du velger \"%s\" vil du vise en liste over nettplasseringer som "
+"oppdateringer kan fra bli hentet. Du bør velge en nær deg. Et tre for "
+"pakkevalg vil vises: gå gjennom utvalget, og trykk \"%s\" for å hente og "
+"installere den(ne) valgte pakken(e), eller \"%s\" for å avbryte."
#: ../help.pm:450
#, c-format
@@ -1047,25 +1050,24 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
"security. Security messages will be sent to that address."
msgstr ""
-"På dette punktet vil DrakX la deg velge sikkerhetsnivået som er ønsket for\n"
-"maskinen. Som en tommelfingerregel bør sikkerhetsnivået settes høyere,\n"
-"hvis maskinen skal ha viktige data lagret der, eller hvis den skal være\n"
-"direkte tilgjengelig på internettet. Men, et høyere sikkerhetsnivå går \n"
-"gjerne på bekostning av brukervennligheten.\n"
-"\n"
-"Hvis du ikke vet hva du skal velge, behold standardvalget. Du vil kunne\n"
-"endre sikkerhetsnivået senere med verktøyet draksec fra Mandriva Linux\n"
+"På dette tidspunktet lar DrakX deg velge sikkerhetsnivået du ønsker\n"
+"for maskinen din. Som en tommelfingerregel bør sikkerhetsnivået settes "
+"høyere hvis maskinen skal inneholde kritiske data, eller om den skal være "
+"direkte eksponert mot Internett. Avveiningen om et høyere sikkerhetsnivå er "
+"vanligvis oppnådd på bekostning av brukervennlighet.\n"
+"\n"
+"Hvis du ikke vet hva du skal velge, beholder du standardalternativet. Du vil "
+"kunne endre det senere med draksec-verktøyet, som er en del av Mageia "
"Kontrollsenter.\n"
"\n"
-"'%s'-feltet kan informere systemet om den bruker på systemet som\n"
-"vil være ansvarlig for sikkerheten. Sikkerhetsbeskjeder vil bli sendt til\n"
-"denne adressen."
+"Fyll \"%s\"-feltet med e-postadressen til den ansvarlige for sikkerhet. "
+"Sikkerhetsmeldinger vil bli sendt til den adressen."
#: ../help.pm:461
#, c-format
@@ -1076,21 +1078,24 @@ msgstr "Sikkerhetsadministrator"
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1106,21 +1111,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1137,101 +1144,113 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-"På dette punktet må du velge hvilke partisjon(er) som skal brukes til å\n"
-"installere ditt nye Mandriva Linux-system på. Hvis partisjoner allerede har\n"
-"blitt definert enten fra en tidligere installasjon av GNU/Linux eller fra et "
+"På dette tidspunktet må du velge hvilken(e) partisjon(er) som skal brukes "
+"til\n"
+"installasjonen av ditt Mageia-system. Hvis partisjoner allerede har vært\n"
+"definert, enten fra en tidligere installasjon av GNU/Linux eller av et "
"annet\n"
-"partisjoneringsverktøy, kan du bruke eksisterende partisjoner. I andre\n"
-"tilfeller må harddiskpartisjoner defineres.\n"
+"partisjoneringsverktøy, kan du bruke eksisterende partisjoner. Ellers må "
+"disk\n"
+"partisjoner defineres.\n"
"\n"
-"For å opprette partisjoner må du først velge en harddisk. Du kan velge disk\n"
-"for partisjonering ved å klikke på ``hda'' for den første IDE-disken,\n"
-"``hdb'' for den andre eller ``sda'' for den første SCSI-disken osv.\n"
+"For å lage partisjoner må du først velge en harddisk. Du kan velge disken "
+"for partisjonering ved å klikke på ``hda'' for den første IDE-stasjonen,"
+"``hdb'' for den andre, ``sda'' for den første SCSI-stasjonen og så videre.\n"
"\n"
-"For å partisjonere den valgte harddisken kan du bruke disse valgene:\n"
+"For å partisjonere den valgte harddisken kan du bruke disse alternativene:\n"
"\n"
-" * \"%s\": dette valget sletter alle partisjoner tilgjengelig på den valgte "
-"harddisken.\n"
+"* \"%s\": dette alternativet sletter alle partisjoner på den valgte "
+"harddisken\n"
"\n"
-" * \"%s\": dette valget lar deg automatisk opprette ext3 og\n"
-"swappartisjoner på din harddisk's ledige plass.\n"
+"* \"%s\": dette alternativet lar deg automatisk opprette ext4 og bytte\n"
+"partisjoner i den ledige plassen på harddisken\n"
"\n"
-"\"%s\": gir deg tilgang til ekstra finesser:\n"
+"\"%s\": gir tilgang til tilleggsfunksjoner:\n"
"\n"
-" * \"%s\":lagrer partisjonstabellen din på en diskett. Nyttig hvis "
-"partisjonen\n"
-"trengs å gjenopprettes senere. Det anbefales på det sterkeste at du utfører "
-"dette trinn.\n"
+"* \"%s\": lagrer partisjonstabellen til en diskett. Nyttig for senere "
+"gjenoppretting av partisjonstabell om nødvendig. Det anbefales på det "
+"sterkeste at du utfører dette trinnet.\n"
"\n"
-" * \"%s\": gir deg muligheten til å gjenopprette en tidligere lagret "
-"partisjonstabell\n"
-"fra en diskett.\n"
+"* \"%s\": lar deg gjenopprette en tidligere lagret partisjonstabell fra en "
+"diskett.\n"
"\n"
-" * \"%s\": hvis partisjonstabellen din er skadet kan du forsøke å redde den "
-"ved å\n"
-"bruke dette valget. Vær forsiktig og husk at det kan gå galt.\n"
+"* \"%s\": hvis partisjonstabellen din er skadet, kan du prøve å gjenopprette "
+"den\n"
+"ved å bruke dette alternativet. Vær forsiktig og husk at det ikke alltid "
+"fungerer\n"
"\n"
-" * \"%s\": ignorerer alle forandringer og laster inn harddiskens "
-"opprinnelige\n"
-"partisjonstabell på nytt.\n"
+"* \"%s\": forkaster alle endringer og laster inn partisjonstabellen som var\n"
+"opprinnelig på harddisken.\n"
"\n"
-" * \"%s\": ved å sjekke vekk dette valget, så vil brukere bli nødt til å "
-"manuelt montere\n"
-"og avmontere flyttbare medium som disketter og CDer.\n"
+"* \"%s\": fjerner du merket for dette alternativet tvinges brukere til å "
+"montere, og manuelt\n"
+"demonter flyttbare medier som disketter og CD-ROMer.\n"
"\n"
-" * \"%s\": bruk dette valget om du vil bruke en veiviser for å partisjonere\n"
-"harddisken din. Dette er anbefalt om du ikke har gode nok kunnskaper om\n"
+"* \"%s\": bruk dette alternativet hvis du ønsker å bruke en veiviser for å "
+"partisjonere\n"
+"harddisken din. Dette anbefales hvis du ikke har god forståelse for "
"partisjonering.\n"
"\n"
-" * \"%s\": du kan bruke dette valget til å forkaste endringene dine.\n"
+"* \"%s\": bruk dette alternativet for å avbryte endringene.\n"
"\n"
-" * \"%s\": gir deg ekstra valg under partisjoneringen (type, instillinger, "
-"format)\n"
-"og gir deg mere informasjon om harddisken.\n"
+"* \"%s\": tillater flere handlinger på partisjoner (type, alternativer, "
+"format) og gir mer informasjon om harddisken.\n"
"\n"
-" * \"%s\": når du er ferdig med å partisjonere harddisken din, så bruk dette "
-"valget\n"
-"for å lagre endringene dine på disken.\n"
+"* \"%s\": når du er ferdig med å partisjonere harddisken, vil dette\n"
+"lagre endringene tilbake til disken.\n"
"\n"
-"Når du definerer størrelsen på en partisjon, så kan du finjustere størrelsen "
-"med\n"
-"piltastene på tastaturet ditt.\n"
+"Når du definerer størrelsen på en partisjon, kan du fint angi partisjonen\n"
+"størrelse ved å bruke piltastene på tastaturet.\n"
"\n"
-"Merk: du kan nå valgene ved å bruke tastaturet. . Naviger gjennom "
-"partisjonene ved å bruke [Tab] og [Opp/Ned]-piltastene.\n"
+"Merk: du kan nå alle alternativer ved å bruke tastaturet. Naviger gjennom\n"
+"partisjoner ved å bruke [Tab] og [Opp/Ned]-pilene.\n"
"\n"
-"Når en partisjon er valgt kan du bruke:\n"
+"Når en partisjon er valgt, kan du bruke:\n"
"\n"
-" * Ctrl-c for å opprette en ny partisjon (når en tom partisjon er valgt).\n"
+"* Ctrl-c for å opprette en ny partisjon (når en tom partisjon er valgt)\n"
"\n"
-" * Ctrl-d for å slette en partisjon.\n"
+"* Ctrl-d for å slette en partisjon\n"
"\n"
-" * Ctrl-m for å sette monteringspunktet.\n"
+"* Ctrl-m for å angi monteringspunktet\n"
"\n"
-"For å få informasjon om de forskjellige filsystemene som er tilgjengelige,\n"
-"vennlist les ext2FS-kapittelet fra ``Reference Manual''.\n"
-"\n"
-"Hvis du installerer på en PPC-maskin, så vil du nok lage en liten\n"
-"HFS-'bootstrap-partisjon' på minst en megabyte for bruk av\n"
-"yaboot-oppstartslasteren. Hvis du ønsker å lage partisjonen litt større,\n"
-"la oss si 50 MB, så kan du lagre en ekstra kjerne og ramdiskbilde for "
-"nødsituasjoner."
+"For å få informasjon om de forskjellige filsystemtypene som er "
+"tilgjengelige, vennligst\n"
+"les ext2FS-kapittelet fra ``Reference Manual''.\n"
+
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr "Lagre partisjonstabell"
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr "Gjenopprett partisjonstabell"
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr "Redningspartisjonstabell"
-#: ../help.pm:533
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Automontering av fjernbart media"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr "Veiviser"
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr "Angre"
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Skift mellom normal-/ekspert-modus"
@@ -1239,66 +1258,72 @@ msgstr "Skift mellom normal-/ekspert-modus"
#: ../help.pm:536
#, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
-"Mer enn en Microsoft Windows-partisjon har blitt oppdaget på harddisken "
-"din.\n"
-"Velg den du ønsker å endre størrelsen på for å installere ditt nye\n"
-"Mandriva Linux-operativsystem.\n"
+"Mer enn én Microsoft-partisjon har blitt oppdaget på harddisken.\n"
+"Vennligst velg den du vil endre størrelsen på for å installere det nye\n"
+"Operativsystemet Mageia.\n"
"\n"
-"Hver partisjon er listet som følger: \"Linux-navn\",\n"
-" \"Windows-navn\", \"Kapasitet\".\n"
+"Hver partisjon er oppført som følger: \"Linux-navn\", \"Windows-navn\"\n"
+"\"Kapasitet\".\n"
"\n"
-"\"Linux-navn\" er kodet som følger: \"harddisktype\", \"harddisknummer\",\n"
-"\"partisjonsnummer\" (f.eks., \"hda1\").\n"
+"\"Linux-navn\" er strukturert: \"harddiskstasjonstype\", "
+"\"harddiskstasjonsnummer\",\n"
+"\"partisjonsnummer\" (for eksempel \"hda1\").\n"
"\n"
-"\"Harddisktype\" er \"hd\" hvis harddisken din er en IDE harddisk og\n"
-"\"sd\" hvis det er en SCSI harddisk.\n"
+"\"Harddisk drive type\" er \"hd\" hvis harddisken din er en IDE-harddisk og\n"
+"\"sd\" hvis det er en SCSI-harddisk.\n"
"\n"
-"\"Harddisknummer\" er alltid en bokstav etter \"hd\" eller \"sd\". Med\n"
-"IDE-harddisker:\n"
+"\"Harddisknummer\" er alltid en bokstav etter \"hd\" eller \"sd\". Med IDE\n"
+"harddisker:\n"
"\n"
-" * \"a\" betyr \"master-harddisk på primær IDE kontroller\",\n"
+"* \"a\" betyr \"hovedharddisk på den primære IDE-kontrolleren\";\n"
"\n"
-" * \"b\" betyr \"slave-harddisk på primær IDE kontroller\",\n"
+"* \"b\" betyr \"slave-harddisk på den primære IDE-kontrolleren\";\n"
"\n"
-" * \"c\" betyr \"master-harddisk på sekundær IDE kontroller\",\n"
+"* \"c\" betyr \"hovedharddisk på den sekundære IDE-kontrolleren\";\n"
"\n"
-" * \"d\" betyr \"slave-harddisk på sekundær IDE kontroller\".\n"
+"* \"d\" betyr \"slave-harddisk på den sekundære IDE-kontrolleren\".\n"
"\n"
-"Med SCSI-harddisker betyr en \"a\" en \"primær harddisk\", en \"b\" betyr "
-"\"sekundær harddisk\", osv.\n"
+"Med SCSI-harddisker betyr en \"a\" \"laveste SCSI-ID\", en \"b\" betyr\n"
+"\"nest laveste SCSI ID\" osv.\n"
"\n"
"\"Windows-navn\" er bokstaven på harddisken din under Windows (den første\n"
-"disken eller partisjonen er kalt \"C:\")."
+"disk eller partisjon kalles \"C:\")."
#: ../help.pm:567
#, c-format
@@ -1320,46 +1345,50 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
-"Dette trinnet blir bare aktivert dersom det blir funnet en eksisterende\n"
-"GNU/Linux-partisjon på maskinen din.\n"
-"\n"
-"DrakX trenger nå å vite om du vil utføre en ny installasjon eller en "
-"oppgradering\n"
-"av et eksisterende Mandriva Linux-system:\n"
-"\n"
-" * «%s»: Dette vil stort sett slette hele det gamle systemet. Dersom du\n"
-"ønsker å forandre hvordan harddiskene blir partisjonert, eller forandre på\n"
-"filsystemene, bør du velge dette. Men avhengig av hvordan du partisjonerer "
-"kan\n"
-"du avverge at noen av de gamle dataene blir overskrevet.\n"
-"\n"
-" * «%s»: Denne installasjonsklassen lar deg oppgradere pakkene som\n"
-"er installert på ditt nåværende Mandriva Linux-system. Dine nåværende\n"
-"partisjonsoppdelinger og brukerdata blir ikke berørt. De fleste andre "
-"oppsettstrinn\n"
-"forblir tilgjengelige, i likhet med en standard installasjon.\n"
-"\n"
-"«Oppgrader»-valget bør fungere fint på Mandriva Linux systemer som kjører\n"
-"versjon «8.1» eller nyere. Oppgradering av versjoner tidligere enn «8.1» er\n"
-" ikke anbefalt. "
+"Dette trinnet aktiveres bare hvis en eksisterende GNU/Linux-partisjon har "
+"blitt\n"
+"funnet på maskinen din.\n"
+"\n"
+"DrakX trenger nå å vite om du vil utføre en ny installasjon eller en\n"
+"oppgradering av et eksisterende Mageia-system:\n"
+"\n"
+"* \"%s\". For det meste utsletter dette det gamle systemet fullstendig.\n"
+"Avhengig av partisjoneringsskjemaet ditt kan du imidlertid forhindre noen "
+"av\n"
+"dine eksisterende data (spesielt \"hjemmekataloger\") fra å bli "
+"overskrevet.\n"
+"Hvis du ønsker å endre hvordan harddiskstasjonene er partisjonert, eller å "
+"endre\n"
+"filsystemet, bør du bruke dette alternativet.\n"
+"\n"
+"* \"%s\". Denne installasjonsklassen lar deg oppdatere pakkene\n"
+"installert på ditt Mageia-system. Din nåværende partisjonering\n"
+"skjema og brukerdata vil ikke bli endret. Det meste av den andre "
+"konfigurasjonen\n"
+"trinn forblir tilgjengelige og ligner på en standardinstallasjon.\n"
+"\n"
+"Å bruke alternativet \"Oppgradering\" bør fungere fint på Mageia-systemer\n"
+"kjører versjon \"8.1\" eller nyere. Utføre en oppgradering på tidligere "
+"versjoner\n"
+"til Mageia versjon \"8.1\" anbefales ikke."
#: ../help.pm:594
#, c-format
@@ -1418,8 +1447,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1447,53 +1475,60 @@ msgid ""
msgstr ""
"Det første trinnet er å velge ditt foretrukne språk.\n"
"\n"
-"Ditt valg av foretrukket språk vil påvirke språket til dokumentasjonen,\n"
-"installasjonsrutinen og systemet generelt. Velg først regionen du befinner\n"
-"deg i, og deretter språket du bruker.\n"
+"Ditt valg av foretrukket språk vil påvirke installasjonsprogrammet\n"
+"dokumentasjon og systemet generelt. Velg først regionen du er i, deretter "
+"språket du snakker.\n"
"\n"
-"Om du klikker på «%s»-knappen får du mulighet til å velge andre\n"
-"språk som du ønsker å installere på din arbeidsstasjon. Du installerer da\n"
-"samtidig de språkspesifikke filene for systemdokumentasjon og\n"
-"applikasjoner. Hvis du ønsker norsk som standardspråk, men også\n"
-"ønsker å tilrettelegge for spanske brukere på maskinen, kan du velge\n"
-"norsk som standardspråk i trevisningen, og «%s» i det avanserte avsnitt.\n"
+"Ved å klikke på \"%s\"-knappen kan du velge andre språksom skal\n"
+"installeres på arbeidsstasjonen din, og installerer derved de "
+"språkspesifikke\n"
+"filer for systemdokumentasjon og applikasjonene. For eksempel hvis spanske\n"
+"brukere skal bruke maskinen din, velg engelsk som standardspråk på\n"
+"trevisningen og \"%s\" i Avansert-delen.\n"
"\n"
-"Om UTF-8 (ISO 10646) støtte. ISO 10646 er en ny tegnsettskoding det\n"
-"er ment til å dekke alle eksisterende språk. Men full støtte for det i GNU/"
-"Linux er\n"
-"stadig under utvikling. Av denne grunnen vil Mandriva Linux bruke det\n"
-"eller ei avhengig av brukerens valg:\n"
+"Om UTF-8 (unicode) støtte: Unicode er en ny tegnkoding ment å\n"
+"dekker alle eksisterende språk. Men full støtte for det i GNU/Linux er\n"
+"fortsatt under utvikling. Av den grunn vil Mageias bruk av UTF-8\n"
+"avhenger av brukerens valg:\n"
"\n"
-" * Hvis du velger et språk med sterk binding til gammel kodnng (latin1-\n"
+"* Hvis du velger et språk med en sterk eldre koding (latin1\n"
"språk, russisk, japansk, kinesisk, koreansk, thai, gresk, tyrkisk, de "
"fleste\n"
-"ISO-8859-2-språk) vil den gamle kodingen bli brukt som standard;\n"
+"iso-8859-2 språk), vil den eldre kodingen brukes som standard;\n"
"\n"
-"Andre språk vil bruke ISO 10646 som standard;\n"
+"* Andre språk vil bruke unicode som standard;\n"
"\n"
-" * Hvis to eller flere språk er krevd, og ikke disse språk bruker samme "
-"koding,\n"
-"vil ISO 10646 bli brukt for hele systemet;\n"
+"* Hvis to eller flere språk kreves, og disse språkene ikke brukes\n"
+"den samme kodingen, så vil unicode brukes for hele systemet;\n"
"\n"
-" * Endelig kan ISO 10646 også bli påtvunget systemet ved brukervalg\n"
-"ved å velge '%s'-valget uavhengig av hvilke språk som er valgt.\n"
+"* Til slutt kan unicode også tvinges til bruk i hele systemet på en\n"
+"brukerens forespørsel ved å velge alternativet \"%s\" uavhengig av hvilket\n"
+"språk som ble valgt.\n"
"\n"
-"Legg merke til at du ikke er begrenset til et enkelt tilleggsspråk. Du\n"
-"kan velge flere, eller til og med alle ved å sjekke av i «%s»-boksen.\n"
-"Valg av språkstøtte betyr at oversettelser, skrifttyper, stavekontroller,\n"
-"osv. for språket også vil bli installert.\n"
+"Merk at du ikke er begrenset til å velge ett enkelt ekstra språk. Du\n"
+"kan velge flere, eller til og med installere dem alle ved å velge \"%s\"-"
+"boksen.\n"
+"Å velge støtte for et språk betyr oversettelser, fonter, stavekontroller,\n"
+"etc. vil også bli installert for det språket.\n"
"\n"
-"For å bytte mellom de installerte språkene på systemet, kan du starte\n"
-"programmet «/usr/sbin/localedrake» som «root» for å bytte språket som\n"
-"systemet bruker. Dersom dette programmet kjøres under en vanlig bruker,\n"
-"vil bare språket for denne brukeren endres."
+"For å bytte mellom de forskjellige språkene som er installert på systemet "
+"ditt, kan du\n"
+"start \"localedrake\"-kommandoen som \"root\" for å endre språket som "
+"brukes\n"
+"av hele systemet. Å kjøre kommandoen som en vanlig bruker vil bare\n"
+"endre språkinnstillingene for den aktuelle brukeren."
#: ../help.pm:650
#, c-format
msgid "Espanol"
msgstr "Spansk"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr "Bruk Unicode som standard"
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1584,92 +1619,7 @@ msgstr ""
"Velg den riktige porten. F.eks., \"COM1\"-porten under\n"
"Windows blir kalt \"ttyS0\" i GNU/Linux."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Dette er det mest kritisike valget med hensyn til sikkerheten på ditt\n"
-"GNU/Linux-system: du må skrive inn «root»-passordet. «Root» er\n"
-"systemadministratoren og er den eneste som er autorisert til å gjøre\n"
-"oppdateringer, legge til brukere, endre på generellt oppsett, etc.\n"
-"Kort sagt, «root» kan gjøre alt! Derfor er det viktig at du velger et\n"
-"root-passord som er vanskelig å gjette -- DrakX vil si i fra hvis det er\n"
-"for enkelt. Som du ser, så kan du velge å ikke skrive inn noe passord,\n"
-"men det er noe vi anbefaler på det sterkeste å ikke gjøre. Man kan lage\n"
-"feil på GNU/Linux så lett som på ethvert annet operativsystem.\n"
-"Siden «root» kan omgå alle begrensninger og ved uhell kan slette\n"
-"alle data på en partisjon ved ubetenksomt bare å røre partisjonene selv,\n"
-"så er det viktig å gjøre det vanskelig å bli «root».\n"
-"\n"
-"Passordet bør være en blanding av alfanummeriske tegn og være på minst 8\n"
-"tegn. Aldri skriv ned «roo»\"-passordet -- det gjør det for enkelt å bryte "
-"seg\n"
-"inn på systemet ditt. \n"
-"\n"
-"Uansett -- du bør ikke lage passordet for langt og komplisert siden du må \n"
-"være i stand til å huske det uten altfor mye trøbbel.\n"
-"\n"
-"Passordet vil ikke bli vist på skjermen når du skriver det. Dermed må du\n"
-"skrive inn passordet to ganger for å minske sjansen for å skrive feil. Hvis\n"
-"du klarer å skrive passordet feil to ganger, så må dette ``feilaktige'' "
-"passordet\n"
-"bli brukt første gang du logger inn.\n"
-"\n"
-"Hvis du ønsker å autentisere deg via en autentiserings-tjener, klikk på\n"
-"«%s»-knappen.\n"
-"\n"
-"Hvis nettverket ditt bruker enten LDAP-, NIS- eller PDC Windows-\n"
-"domenepåloggingstjeneste, så velg det tilsvarende til\n"
-"«%s». Har du ingen anelse, så spørr nettverksadministratoren din.\n"
-"\n"
-"Hvis du skulle ha problemer med å huske passord, hvis maskinen din aldri "
-"vil\n"
-"brukes for å koble til internett, eller at du stoler på absolutt alle som "
-"bruker din\n"
-"maskin, så kan du velge «%s»."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "autentisering"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1683,7 +1633,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1714,7 +1664,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1735,44 +1685,49 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
-"Nå er det på tide å velge utskriftsystemet for din maskin. Andre\n"
-"operativsystemer tilbyr kanskje en, men Mandriva Linux tilbyr to.\n"
-"Hvert av systemene er best for et spesiell type oppsett.\n"
-"\n"
-" * «%s» -- som står for ``print, do not queue'', er valget hvis du har en\n"
-"direkte tilkobling til din printer og du vil ha muligheten til å flykte fra\n"
-"printerkræsj, og du ikke har nettverksskrivere. («%s» vil bare håndtere\n"
-"veldig enkle nettverkstilfeller og er nogenlunde treg for nettverk.) Det er\n"
-"anbefalt at du bruker «pdq» hvis dette er din første erfaring med GNU/"
-"Linux.\n"
-"\n"
-" * «%s» står for ``Common Unix Printing System'', er perfekt til å skrive "
-"til\n"
-"din egen lokale skriver, og også til skrivere på andre siden av kloden.\n"
-"Den er simpel og kan opptrå som både skriver og klient for det "
-"forhistoriske\n"
-"«lpd»-utskriftssystemet, så den er kompatibel med de eldre operativsystemer\n"
-"som fortsatt trenger utskriftstjenester. Selv om den er ganske kraftig, så "
-"er\n"
-"basisoppsettet nesten like enkelt som «pdq». Hvis du trenger å emulere en\n"
-"«lpd»-tjener, må du slå på «cups-lpd»-tjenesten. «%s» inkluderer et grafisk "
-"grensesnitt for utskrift eller oppsett av skriver og styring av skriver.\n"
-"\n"
-"Hvis du gjør et valg nå, og så senere finner ut at du ikke liker ditt "
-"utskriftssystem,\n"
-"så kan du endre det ved å kjøre PrinterDrake fra Mandriva Linux "
-"Kontrollsenter og\n"
-"klikke på «%s»-knappen. "
+"Nå er det på tide å velge et utskriftssystem for datamaskinen. Andre\n"
+"operativsystemer kan tilby deg ett, men Mageia tilbyr to. Hver av\n"
+"utskriftssystemene er best egnet til bestemte typer konfigurasjoner.\n"
+"\n"
+"* \"%s\" -- som er et akronym for \"skriv ut, ikke kø\" er valget\n"
+"hvis du har en direkte tilkobling til skriveren din, og du vil kunne\n"
+"panikk avbryte skriverstopp, og ikke har nettverksskrivere. (\"%s\"\n"
+"vil kun håndtere svært enkle nettverkstilfeller og er noe treg når den "
+"brukes\n"
+"innenfor et nettverk.) Det anbefales at du bruker \"pdq\" hvis dette er din\n"
+"første erfaring med GNU/Linux.\n"
+"\n"
+"* \"%s\" står for `` Common Unix Printing System'' og er et utmerket\n"
+"valg for utskrift til din lokale skriver eller til en annen skriver "
+"halvveis rundt\n"
+"verden. Den er enkel å konfigurere og kan fungere som en server eller klient "
+"for\n"
+"det gamle \"lpd\"-utskriftssystemet, så det er kompatibelt med eldre\n"
+"operativsystemer som fortsatt trenger utskriftstjenester. Det er kraftfult. "
+"Grunnoppsettet er nesten like enkelt som \"pdq\". Hvis du trenger detkan "
+"du \n"
+"emulere en \"lpd\"-server, sørg for at du slår på \"cups-lpd\"-demonen.\n"
+"\"%s\" inkluderer grafiske frontender for utskrift eller valg av skriver\n"
+"alternativer og for å administrere skriveren.\n"
+"\n"
+"Hvis du tar et valg nå, og senere finner ut at du ikke liker "
+"utskriftssystemet kan du endre det ved å kjøre PrinterDrake fra Mageia\n"
+"Kontrollsenter og klikk på \"%s\"-knappen."
#: ../help.pm:768
#, c-format
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr "CUPS"
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Ekspert"
@@ -1785,7 +1740,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1852,11 +1807,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1874,8 +1824,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1892,91 +1841,89 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-"Som en oppsummering vil DrakX gi deg en oversikt over informasjon som\n"
-"den har om systemet ditt. Avhengig av installert maskinvare, kan du ha et\n"
-"eller flere av de følgende punktene. Hvert punkt består av en overskrift "
-"fulgt\n"
-"av en kort oppsummering av det nåværende oppsettet. Klikk på\n"
-"den korresponderende «%s»-knappen for å endre på det.\n"
-"\n"
-" * «%s»: sjekk ditt gjeldende tastaturoppsett og endre om nødvendig.\n"
-"\n"
-" * «%s»: sjekk ditt gjeldende valg av land. Hvis du ikke er i dette landet,\n"
-"klikk på «%s»-knappen og velg et annet land. Hvis landet ditt ikke er i\n"
-"den først viste listen, klikk «%s»-knappen for å få en fullstendig liste "
-"over land.\n"
-"\n"
-" ' «%s»\": som standard bestemmer DrakX din tidssone ut i fra hvilket land "
-"du\n"
-"har valgt. Du kan klikke på «%s»-knappen her om dette ikke er korrekt.\n"
-"\n"
-" * «%s» :sjekk det gjeldende museoppsettet og klikk på knappen for å endre\n"
-"om nødvendig.\n"
-"\n"
-" * «%s»: ved å klikke på «%s»-knappen åpnes skriveroppsett-veiviseren.\n"
-"Konsulter det tilhørende kapittelet i oppstartsguiden for mer\n"
-"informasjon om hvordan en skriver kan settes opp. Grensesnittet som er vist\n"
-"der er likt det som benyttes under installasjonen.\n"
-"\n"
-" * \"%s\": hvis det er funnet et lydkort i ditt system, er det vist her. "
-"Hvis du\n"
-"finner ut at lydkortet som er vist ikke stemmer overens med det som faktisk "
-"er\n"
-"installert i din maskin, kan du klikke på knappen og velge en annen driver.\n"
-"\n"
-" * «%s»: hvis du har ett TV-kort, dette er der informasjonen om oppsettet "
-"til det\n"
-"vil blir vist. Hvis du har et TV-kort og det ikke er oppdaget, klikk på «%"
-"s»\n"
-"for å forsøke å sette det opp manuelt\n"
-"\n"
-" * «%s»: Du kan klikke på «%s» for å forandre parameterene til kortet hvis "
-"du\n"
-"syntes at oppsettet er feil.\n"
-"\n"
-" * «%s»: Vanligvis setter DrakX opp ditt grafiske grensesnitt i\n"
-"«800x600» eller «1024x768» oppløsning. Hvis det ikke er det du vil ha\n"
-"klikk på «%s« for å sette opp ditt grafiske grensesnitt.\n"
-"\n"
-" * «%s»: hvis du vil sette opp din internett- eller lokale "
-"nettverkstilkobling\n"
-"kan du gjøre det nå. Sjekk den utskrevne dokumentasjonen eller bruk\n"
-"Mandriva Linux Kontrollsenter etter at installasjonen er ferdig for å\n"
-"få full hjelp med oppsettet.\n"
-"\n"
-" * «%s»: lar deg sette opp HTTP og FTP mellomtjener-adresser hvis maskinen\n"
-"du installerer på er bak en mellomtjener.\n"
-"\n"
-" * «%s»: dette valget lar deg omdefinere sikkerhetsnivået som ble satt i et "
-"tidligere\n"
-"steg ().\n"
-"\n"
-" * «%s»: hvis du planlegger å koble din maskin til internett er det en god "
-"idé\n"
-"å beskytte deg selv fra inntrengere ved å sette opp en brannmur. Se den\n"
-"korresponderende seksjonen i ``Starter Guiden\" for detaljer om brannmur\n"
-"innstillinger.\n"
-"\n"
-" * «%s»: dersom du ønsker å endre ditt oppstartslaster-oppsett, klikk på "
+"Som en gjennomgang vil DrakX presentere et sammendrag av informasjonen den "
+"har samlet inn\n"
+"om systemet ditt. Avhengig av maskinvaren som er installert på maskinen din, "
+"kan du\n"
+"kan ha noen eller alle av følgende oppføringer. Hver oppføring består av\n"
+"maskinvareelement som skal konfigureres, etterfulgt av et kort sammendrag av "
+"gjeldende\n"
+"konfigurasjon. Klikk på den tilsvarende \"%s\"-knappen for å gjøre "
+"endringen.\n"
+"\n"
+"* \"%s\": sjekk gjeldende tastaturkartkonfigurasjon og endre den hvis\n"
+"nødvendig.\n"
+"\n"
+"* \"%s\": kontroller gjeldende landvalg. Hvis du ikke vil ha dette\n"
+"landet, klikk på \"%s\"-knappen og velg et annet. Hvis landet ditt\n"
+"ikke er i listen som vises, klikk på \"%s\"-knappen for å få den komplette\n"
+"landliste.\n"
+"\n"
+"* \"%s\": som standard utleder DrakX tidssonen din basert på landet\n"
+"du har valgt. Du kan klikke på \"%s\"-knappen hvis dette ikke er\n"
+"korrekt.\n"
+"\n"
+"* \"%s\": bekreft gjeldende musekonfigurasjon og klikk på knappen\n"
+"for å endre den om nødvendig.\n"
+"\n"
+"* \"%s\": hvis det oppdages et lydkort på systemet ditt, vil det vises\n"
+"her. Hvis lydkortet ikke er det som faktisk finnes på\n"
+"systemet ditt, kan du klikke på knappen og velge en annen driver.\n"
+"\n"
+"* \"%s\": hvis du har et TV-kort, vises informasjon om\n"
+"konfigurasjonen her. Hvis du har et TV-kort og det ikke\n"
+"oppdages, klikk på \"%s\" for å prøve å konfigurere den manuelt.\n"
+"\n"
+"* \"%s\": du kan klikke på \"%s\" for å endre parameterne knyttet til\n"
+"kortet hvis du mener at konfigurasjonen er feil.\n"
+"\n"
+"* \"%s\": som standard konfigurerer DrakX ditt grafiske grensesnitt i\n"
+"\"800x600\" eller \"1024x768\" oppløsning. Hvis det ikke passer deg, klikk "
+"videre\n"
+"\"%s\" for å rekonfigurere det grafiske grensesnittet ditt.\n"
+"\n"
+"* \"%s\": hvis du ønsker å konfigurere Internett- eller "
+"lokalnettverkstilgang,\n"
+"du kan gjøre det nå. Se den trykte dokumentasjonen eller bruk\n"
+"Mageia Control Center etter at installasjonen er fullført.\n"
+"\n"
+"* \"%s\": lar deg konfigurere HTTP- og FTP-proxy-adresser hvis maskinen\n"
+"du installerer på skal være plassert bak en proxy-server.\n"
+"\n"
+"* \"%s\": denne oppføringen lar deg omdefinere sikkerhetsnivået som angitt i "
+"en\n"
+"forrige trinn ().\n"
+"\n"
+"* \"%s\": hvis du planlegger å koble maskinen til Internett, er det en god\n"
+"idé å beskytte deg selv mot inntrenging ved å sette opp en brannmur. "
+"Konsultere\n"
+"den tilsvarende delen av ``Starter Guide'' for detaljer om\n"
+"brannmurinnstillinger.\n"
+"\n"
+"* \"%s\": hvis du ønsker å endre oppstartslasterkonfigurasjonen, klikk på "
"denne\n"
-"knappen. Dette er kun for avanserte brukere. Sjekk den utskrevne "
-"dokumentasjonen\n"
-"eller innebygd hjelp om oppstartslaster-oppsettet i Mandriva Linux "
-"Kontrollsenter.\n"
-"\n"
-" * «%s»: igjennom dette valget kan du finjustere hvilke tjenester som skal "
-"kjøre på din\n"
-"maskin. Hvis du planlegger å bruke maskinen som en tjener er det en god ide "
-"å se\n"
-"igjennom dette."
+"knappen. Dette er forbeholdt avanserte brukere. Se den trykte\n"
+"dokumentasjon eller in-line hjelpen om oppstartslasterkonfigurasjon i\n"
+"Mageia kontrollsenter.\n"
+"\n"
+"* \"%s\": gjennom denne oppføringen kan du finjustere hvilke tjenester som "
+"skal kjøres\n"
+"på maskinen din. Hvis du planlegger å bruke denne maskinen som en server, er "
+"det en god\n"
+"idé å vurdere dette oppsettet."
-#: ../help.pm:858
+#: ../help.pm:809
+#, c-format
+msgid "TV card"
+msgstr "TV-kort"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN-kort"
@@ -1989,25 +1936,26 @@ msgstr "Grafisk grensesnitt"
#: ../help.pm:861
#, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
-"Velg den harddisken du ønsker å slette for å installere din nye\n"
-"Mandriva Linux-partisjon. Vær forsiktig, alle data på denne partisjonen vil "
-"gå tapt\n"
+"Velg harddisken du vil slette for å installere den nye\n"
+"Mageia partisjon. Vær forsiktig, alle data på denne stasjonen vil gå tapt\n"
"og vil ikke kunne gjenopprettes!"
#: ../help.pm:866
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Klikk på \"%s\" hvis du ønsker å slette alle data og partisjoner på denne\n"
"harddisken. Vær forsiktig, etter at du har klikket på \"%s\" vil du ikke\n"
@@ -2026,4 +1974,3 @@ msgstr "Neste ->"
#, c-format
msgid "<- Previous"
msgstr "<- Forrige"
-
diff --git a/perl-install/install/help/po/nl.po b/perl-install/install/help/po/nl.po
index a6a878542..e3c6f38e4 100644
--- a/perl-install/install/help/po/nl.po
+++ b/perl-install/install/help/po/nl.po
@@ -1,21 +1,21 @@
-# translation of DrakX-nl.po to Nederlands
-# Dutch translation of DrakX.
-# Copyright (C) 2000, 2005 Free Software Foundation, Inc.
-# Copyright (c) 2000 Mandriva
-# Niels Gras <niels.gras@wanadoo.nl>, 2000.
-# Jeroen ten Berge <j.ten.berge@twinbit.nl>, 2002.
-# Reinout van Schouwen <reinout@cs.vu.nl>, 2002-2005.
-# Peter Bosch <peter.bosch@hccnet.nl>, 2002.
-# Rob Teng <mandrake.tips@free.fr>, 2005.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
+# Translators:
+# Yuri Chornoivan <yurchor@ukr.net>, 2024
+#
+#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: DrakX-nl\n"
+"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
-"PO-Revision-Date: 2005-09-20 00:24+0200\n"
-"Last-Translator: Reinout van Schouwen <reinout@cs.vu.nl>\n"
-"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
+"PO-Revision-Date: 2024-09-04 17:33+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>, 2024\n"
+"Language-Team: Dutch (https://app.transifex.com/MageiaLinux/teams/9361/nl/)\n"
+"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -25,12 +25,12 @@ msgstr ""
#, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Voordat u verdergaat dient u eerst de voorwaarden in de licentie\n"
-"aandachtig te lezen. Zij beslaan de gehele Mandriva Linux distributie.\n"
+"aandachtig te lezen. Zij beslaan de gehele Mageia distributie.\n"
"Indien u akkoord gaat met alle voorwaarden erin kruist u het\n"
"\"%s\"-vakje aan. Zoniet, dan zal het klikken van de \"%s\"-knop\n"
"uw computer herstarten."
@@ -99,7 +99,7 @@ msgstr ""
"Desgewenst kunt u de voorgestelde gebruikersnaam veranderen.\n"
"De volgende stap is het invoeren van een wachtwoord. Het \n"
"wachtwoord van een (gewone) gebruiker zonder privileges is niet zo \n"
-"cruciaal als dat van de \"root\"-gebruiker vanuit veiligheidsperspectief, \n"
+"cruciaal als dat van de \"root\"-gebruiker vanuit beveiligingsperspectief, \n"
"maar dat is geen reden om het te verwaarlozen door het leeg te laten of het\n"
"te eenvoudig te maken: tenslotte staan uw bestanden op het spel.\n"
"\n"
@@ -120,13 +120,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr "Gebruikersnaam"
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr "Accepteer gebruiker"
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Wilt u van deze mogelijkheid gebruik maken?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -136,24 +147,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Hier zijn de bestaande Linuxpartities afgebeeld die op uw harde\n"
@@ -191,13 +206,13 @@ msgstr ""
#: ../help.pm:88
#, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"De Mandriva Linux-installatie is verdeeld over meerdere CD-ROMs. Als een \n"
+"De Mageia-installatie is verdeeld over meerdere CD-ROMs. Als een \n"
"geselecteerd pakket te vinden is op een andere CD-ROM, zal het \n"
"installatieprogramma de huidige CD uitwerpen en u vragen om de\n"
"correcte CD in te leggen. Mocht u de betreffende CD niet bij de hand "
@@ -209,12 +224,11 @@ msgstr ""
#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -227,8 +241,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -266,11 +279,11 @@ msgid ""
"megabytes."
msgstr ""
"Het is nu tijd om te bepalen welke programma's u op uw systeem\n"
-"wenst te installeren. Er zijn duizenden pakketten beschikbaar voor Mandriva\n"
+"wenst te installeren. Er zijn duizenden pakketten beschikbaar voor Mageia\n"
"Linux, en om het overzichtelijker te maken zijn de pakketten in groepen\n"
"van vergelijkbare toepassingen geplaatst.\n"
"\n"
-"Mandriva Linux sorteert groepen pakketten in vier categorieën.\n"
+"Mageia sorteert groepen pakketten in vier categorieën.\n"
"U kunt de toepassingen uit de verschillende categorieën uitkiezen\n"
"en samenvoegen naar eigen inzicht, zodat een ``Werkstation''-installatie\n"
"nog steeds toepassingen geïnstalleerd kan hebben uit de ``Server''\n"
@@ -356,10 +369,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -391,11 +404,11 @@ msgstr ""
"!! Als een server-pakket geselecteerd is, ofwel omdat u dat pakket\n"
"specifiek gekozen heeft ofwel omdat het onderdeel is van een hele groep\n"
"pakketten, zal u gevraagd worden om te bevestigen dat u deze servers echt\n"
-"wilt installeren. Onder Mandriva Linux worden alle geïnstalleerde servers\n"
+"wilt installeren. Onder Mageia worden alle geïnstalleerde servers\n"
"standaard ingeschakeld tijdens het opstarten. Zelfs wanneer zij veilig\n"
"zijn en geen bekende beveiligingsgebreken hadden op het moment dat de\n"
"distributie werd uitgebracht, kan het gebeuren dat beveiligingsfouten\n"
-"ontdekt worden nadat deze versie van Mandriva Linux afgemaakt werd.\n"
+"ontdekt worden nadat deze versie van Mageia afgemaakt werd.\n"
"Indien u niet weet wat een bepaalde dienst geacht wordt te doen of waarom\n"
"deze geïnstalleerd wordt, klikt u dan \"%s\". Klikken op \"%s\" zal\n"
"de getoonde diensten installeren en ze zullen automatisch worden\n"
@@ -422,22 +435,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Automatische afhankelijkheden"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": klikken op de \"%s\"-knop zal de printerconfiguratie-\n"
-"wizard openen. Raadpleeg het overeenkomstige hoofdstuk uit de ``Beginners-\n"
-"handleiding'' voor meer informatie over het instellen van een nieuwe "
-"printer.\n"
-"De in onze handleiding getoonde interface lijkt sterk op degene gebruikt\n"
-"tijdens de installatie."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -507,7 +505,12 @@ msgstr ""
"wordt geïnstalleerd die gebruikt kan worden door andere computers\n"
"op uw lokale netwerk."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr "Hardware klok staat op GMT"
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Automatische tijdssynchronisatie"
@@ -541,7 +544,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -598,7 +601,7 @@ msgstr ""
"X (voor X Window System) is het hart van de grafische interface van GNU/\n"
"Linux waarvan alle grafische omgevingen (KDE, GNOME, AfterStep, "
"WindowMaker,\n"
-"etc.) die bij Mandriva Linux worden geleverd, afhankelijk zijn.\n"
+"etc.) die bij Mageia worden geleverd, afhankelijk zijn.\n"
"\n"
"U krijgt een lijst te zien van verschillende parameters die u kunt "
"aanpassen\n"
@@ -717,39 +720,43 @@ msgstr ""
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -758,15 +765,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -779,12 +786,12 @@ msgid ""
"experience. For more instructions on how to use the DiskDrake utility,\n"
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
-"Op dit punt dient u te kiezen waar op uw harde schijf u uw Mandriva Linux\n"
+"Op dit punt dient u te kiezen waar op uw harde schijf u uw Mageia\n"
"besturingssysteem wilt installeren. Als uw harde schijf leeg is of als een\n"
"ander besturingssysteem alle beschikbare ruimte inneemt, dan zult u\n"
"de harde schijf moeten partitioneren. Partitioneren houdt in dat u uw harde\n"
"schijf in logische stukken onderverdeelt om ruimte te creëren voor uw\n"
-"nieuwe Mandriva Linux besturingssysteem.\n"
+"nieuwe Mageia besturingssysteem.\n"
"\n"
"Omdat de effecten van het partitioneringsproces over het algemeen niet\n"
"terug te draaien zijn en kan leiden tot gegevensverlies als er reeds een\n"
@@ -817,7 +824,7 @@ msgstr ""
"verlies van enige gegevens, vooropgesteld dat u eerst de Windows-partitie\n"
"gedefragmenteerd heeft. Een reservekopie maken van uw gegevens is\n"
"uitdrukkelijk aangeraden. Deze optie is aanbevolen indien u zowel\n"
-"Mandriva Linux als Microsoft Windows op dezelfde computer wilt gebruiken.\n"
+"Mageia als Microsoft Windows op dezelfde computer wilt gebruiken.\n"
"\n"
" Laat het goed tot u doordringen, voordat u deze optie kiest, dat uw\n"
"Microsoft Windows partitie na afloop van deze procedure minder groot\n"
@@ -826,7 +833,7 @@ msgstr ""
"installeren.\n"
"\n"
" * \"%s\": indien u alle gegevens en alle partities op uw\n"
-"harde schijf wilt verwijderen en vervangen door uw nieuwe Mandriva Linux-\n"
+"harde schijf wilt verwijderen en vervangen door uw nieuwe Mageia-\n"
"systeem, kiest u deze optie. Weest u voorzichtig met deze oplossing omdat u\n"
"na bevestiging deze keuze niet meer ongedaan kunt maken.\n"
"\n"
@@ -854,7 +861,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Een bestaande partitie gebruiken"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr "Gebruik de vrije ruimte op de Microsoft Windows® partitie"
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Volledige harde schijf wissen"
@@ -938,7 +950,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Auto-installatiediskette aanmaken"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr "Herhaling"
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr "Geautomatiseerd"
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr "Bewaar pakketselectie"
+
+#: ../help.pm:408
#, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -958,7 +985,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -981,7 +1008,7 @@ msgstr ""
"Klik op \"%s\" wanneer u klaar bent om de partities te formatteren.\n"
"\n"
"Klik op \"%s\" indien u een andere partitie voor uw nieuwe\n"
-"Mandriva Linux besturingssysteem wilt kiezen.\n"
+"Mageia besturingssysteem wilt kiezen.\n"
"\n"
"Klik op \"%s\" indien u partities wenst te selecteren die op\n"
"onleesbare blokken gecontroleerd moeten worden."
@@ -989,7 +1016,7 @@ msgstr ""
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -1001,7 +1028,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Op het moment dat u Mandriva Linux installeert, is het waarschijnlijk\n"
+"Op het moment dat u Mageia installeert, is het waarschijnlijk\n"
"dat sommige pakketten herzien zijn sinds het moment dat het werd\n"
"uitgebracht. Sommige onvolkomenheden kunnen gerepareerd zijn en\n"
"beveiligingsproblemen opgelost. Om u te kunnen laten profiteren van\n"
@@ -1026,7 +1053,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1041,7 +1068,7 @@ msgstr ""
"\n"
"Als u niet weet wat te kiezen, behoudt u de standaard optie. U zult \n"
"later nog in staat zijn het beveiligingsniveau te veranderen met het\n"
-"draksec-hulpprogramma vanuit het Mandriva Linux Configuratiecentrum.\n"
+"draksec-hulpprogramma vanuit het Mageia Configuratiecentrum.\n"
"\n"
"Vul in het \"%s\"-veld het e-mailadres in van de persoon die\n"
"verantwoordelijk is voor de beveiliging. Beveiligingsmeldingen\n"
@@ -1056,21 +1083,24 @@ msgstr "Beveiligingsbeheerder"
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1086,21 +1116,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1117,17 +1149,11 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"Op dit punt dient u te kiezen welke partitie(s) gebruikt zullen worden voor\n"
-"de installatie van uw Mandriva Linux systeem. Indien er reeds partities\n"
+"de installatie van uw Mageia systeem. Indien er reeds partities\n"
"gedefinieerd zijn, van een vorige GNU/Linux installatie of door een\n"
"ander partitioneringsprogramma, kunt u bestaande partities gebruiken.\n"
"In andere gevallen moeten er harde schijf-partities gedefinieerd worden.\n"
@@ -1145,7 +1171,7 @@ msgstr ""
" * \"%s\": deze optie verwijdert alle partities op de\n"
"geselecteerde harde schijf.\n"
"\n"
-" * \"%s\": deze optie creëert automatisch ext3- en swap-\n"
+" * \"%s\": deze optie creëert automatisch ext4- en swap-\n"
"partities in de vrije ruimte op uw harde schijf.\n"
"\n"
" \"%s\": geeft toegang tot extra opties:\n"
@@ -1203,20 +1229,38 @@ msgstr ""
"Voor meer informatie over de verschillende types bestandssystemen die er "
"zijn,\n"
"leest u het hoofdstuk 'ext2FS' van de ``Referentiehandleiding''.\n"
-"\n"
-"In het geval dat u op een PPC computer aan het installeren bent, zult u een "
-"kleine\n"
-"HFS \"bootstrap\"-partitie van tenminste 1MB willen creëren voor gebruik\n"
-"door de yaboot-opstartlader. Indien u liever de partitie wat groter maakt,\n"
-"zeg 50MB, dan vindt u het misschien een nuttige plek om een reserve kernel-\n"
-"en ramdisk beeldbestand in op te slaan voor opstart-noodgevallen."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr "Bewaar partitioneringstabel"
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr "Herstel partitioneringstabel"
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr "Red partitioneringstabel"
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Automatische koppeling van verwisselbare media"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr "Wizard"
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr "Herstel"
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Normale/expert-modus"
@@ -1224,38 +1268,44 @@ msgstr "Normale/expert-modus"
#: ../help.pm:536
#, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Er is meer dan één Microsoft-partitie op uw harde schijf gevonden.\n"
-"Kiest u degene die u wilt verkleinen om uw nieuwe Mandriva Linux\n"
+"Kiest u degene die u wilt verkleinen om uw nieuwe Mageia\n"
"besturingssysteem te kunnen installeren.\n"
"\n"
"Elke partitie wordt getoond als volgt: \"Linux naam\", \"Windows naam\"\n"
@@ -1304,29 +1354,29 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Deze stap activeert slechts wanneer een bestaande GNU/Linux-partitie\n"
"gevonden is op uw computer.\n"
"\n"
"Nu is het noodzakelijk dat u aangeeft of u een nieuwe installatie\n"
-"of een opwaardering van een bestaand Mandriva Linux-systeem\n"
+"of een opwaardering van een bestaand Mageia-systeem\n"
"wilt uitvoeren:\n"
"\n"
" * \"%s\". Dit verwijdert het oude systeem vrijwel volledig.\n"
@@ -1337,17 +1387,15 @@ msgstr ""
"bestandssysteem wenst te wijzigen, dan dient u deze optie te kiezen.\n"
"\n"
" * \"%s\". Deze installatieklasse stelt u in staat de pakketten\n"
-"die momenteel op uw Mandriva Linux-systeem zijn geïnstalleerd te verversen.\n"
+"die momenteel op uw Mageia-systeem zijn geïnstalleerd te verversen.\n"
"Uw huidige partitioneringsschema en gebruikersgegevens worden niet\n"
" veranderd. De meeste andere configuratiestappen blijven beschikbaar,\n"
"zoals bij een gewone installatie.\n"
"\n"
"Het gebruik van de ``Opwaardering''-optie zou prima moeten werken op\n"
-"Mandriva Linux versie \"8.1\" of recenter. Het uitvoeren van een\n"
-"opwaardering op versies eerder dan Mandriva Linux versie \"8.1\" is "
-"afgeraden."
+"Mageia versie \"8.1\" of recenter. Het uitvoeren van een\n"
+"opwaardering op versies eerder dan Mageia versie \"8.1\" is afgeraden."
-# Extra stukje toegevoegd over Nederlandse layout
#: ../help.pm:594
#, c-format
msgid ""
@@ -1407,8 +1455,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1450,7 +1497,7 @@ msgstr ""
"Over UTF-8 (unicode)-ondersteuning: Unicode is een nieuwe tekencodering\n"
"bedoeld om alle bestaande geschreven talen te omvatten. Volledige\n"
"GNU/Linux-ondersteuning ervoor is echter nog in ontwikkeling.\n"
-"Daarom gebruikt Mandriva Linux het al dan niet, afhankelijk van de keuze\n"
+"Daarom gebruikt Mageia het al dan niet, afhankelijk van de keuze\n"
"van de gebruiker:\n"
"\n"
" * Indien u talen kiest met een sterke coderingstraditie (latin1\n"
@@ -1484,7 +1531,12 @@ msgstr ""
msgid "Espanol"
msgstr "Spaans"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr "Gebruik standaard Unicode"
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1572,90 +1624,7 @@ msgstr ""
"Gelieve de juiste poort te kiezen. COM1 onder Windows wordt bijvoorbeeld\n"
"\"ttyS0\" genoemd onder GNU/Linux."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Dit is de meest cruciale beslissing voor de beveiliging van uw GNU/Linux\n"
-"systeem: u dient het \"root\"-wachtwoord in te voeren. \"Root\" is de\n"
-"systeembeheerder en is de enige die geautoriseerd is om vernieuwingen uit\n"
-"te voeren, gebruikers toe te voegen, de algehele systeemconfiguratie te\n"
-"wijzigen, enzovoort. Kortom, \"root\" kan alles doen! Daarom dient u een\n"
-"lastig te raden wachtwoord te kiezen - DrakX vertelt het u als het te \n"
-"makkelijk is. Zoals u kunt zien is het niet verplicht een wachtwoord in te\n"
-"vullen, maar dit raden wij sterk af. GNU/Linux is net zo gevoelig voor\n"
-"bedieningsfouten als andere besturingssystemen.\n"
-"Omdat \"root\" alle beperkingen kan overschrijden en onbedoeld alle\n"
-"gegevens op partities kan wissen door achteloos deze partities te\n"
-"benaderen, is het belangrijk dat het lastig is om \"root\" te worden.\n"
-"\n"
-"Het wachtwoord behoort een mix van alfanumerieke tekens te zijn en\n"
-"tenminste 8 tekens lang. Schrijf nooit het \"root\"-wachtwoord op -\n"
-"dat maakt het te makkelijk om een systeem te compromitteren.\n"
-"\n"
-"Het addertje onder het gras: maak ook het wachtwoord niet te lang of\n"
-"gecompliceerd omdat u het moet kunnen onthouden!\n"
-"\n"
-"Het wachtwoord zal niet op het scherm getoond worden wanneer u het\n"
-"intypt. Vandaar dat u het wachtwoord tweemaal moet intypen om de kans\n"
-"te verminderen dat u een typfout maakt. Indien u toevallig dezelfde typfout\n"
-"twee keer maakt, dan zal dit ``incorrecte'' wachtwoord gebruikt moeten\n"
-"worden bij de eerste keer dat u zich aanmeldt als \"root\".\n"
-"\n"
-"Indien u wenst dat de toegang tot deze computer gecontroleerd wordt door\n"
-"een aanmeldingscontrole-server, klik dan op de \"%s\"-knop.\n"
-"\n"
-"Indien uw netwerk LDAP, NIS, of PDC Windows domeinaanmeldingscontrole-\n"
-"diensten gebruikt, selecteer dan de overeenkomende optie\n"
-"als \"%s\". In het geval dat u niet weet welke te kiezen,\n"
-"raadpleeg dan uw netwerkbeheerder.\n"
-"\n"
-"Mocht u het lastig vinden wachtwoorden te onthouden, als uw computer\n"
-"nooit verbonden zal zijn met het internet of als u absoluut iedereen\n"
-"vertrouwt die toegang heeft tot uw computer, kunt u kiezen voor \"%s\"."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "aanmeldingscontrole"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1669,7 +1638,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1698,7 +1667,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1719,11 +1688,11 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Het is nu tijd een afdruksysteem voor uw computer te selecteren. Andere\n"
-"besturingssystemen geven u er wellicht maar één, maar Mandriva Linux\n"
+"besturingssystemen geven u er wellicht maar één, maar Mageia\n"
"biedt er twee. Elk van deze afdruksystemen is het meest geschikt voor\n"
"bepaalde typen configuraties.\n"
"\n"
@@ -1749,15 +1718,19 @@ msgstr ""
"\n"
"Wanneer u nu een keuze maakt en er later achter komt dat uw afdruksysteem\n"
"u niet bevalt dan kunt u het veranderen door PrinterDrake uit te voeren\n"
-"vanuit het Mandriva Linux Configuratiecentrum en op de \"%s\"-knop te "
-"klikken."
+"vanuit het Mageia Configuratiecentrum en op de \"%s\"-knop te klikken."
#: ../help.pm:768
#, c-format
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr "CUPS"
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Expert"
@@ -1770,7 +1743,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1837,11 +1810,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1859,8 +1827,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1877,7 +1844,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1904,12 +1871,6 @@ msgstr ""
" * \"%s\": de huidige muisconfiguratie nagaan. Zonodig kunt u op de knop "
"klikken om hem aan te passen.\n"
"\n"
-" * \"%s\": klikken op de \"%s\"-knop zal de\n"
-"printerconfiguratie-wizard openen. Raadpleeg het corresponderende\n"
-"hoofdstuk van de ``Beginnershandleiding'' voor meer informatie over\n"
-"hoe u een nieuwe printer instelt. De in onze handleiding getoonde interface\n"
-"lijkt op degene die tijdens de installatie gebruikt wordt.\n"
-"\n"
" * \"%s\": indien een geluidskaart gevonden is op uw systeem,\n"
"wordt dat hier weergegeven. In het geval dat de aangegeven geluidskaart\n"
"niet degene is die daadwerkelijk aanwezig is in uw computer, dan kunt u\n"
@@ -1930,7 +1891,7 @@ msgstr ""
"\n"
" * \"%s\": Als u uw internettoegang of toegang tot het lokale\n"
"netwerk wilt instellen, kunt u dat nu doen. Raadpleeg de gedrukte\n"
-"documentatie of gebruik het Mandriva Linux Configuratiecentrum nadat\n"
+"documentatie of gebruik het Mageia Configuratiecentrum nadat\n"
"de installatie klaar is om te profiteren van volledige on-line hulp.\n"
"\n"
" * \"%s\": stelt u in staat HTTP- en FTP-proxy adressen te configureren\n"
@@ -1947,13 +1908,18 @@ msgstr ""
" * \"%s\": indien u uw opstartlader-configuratie wenst te \n"
"veranderen, klikt u op deze knop. Alleen aankomen als u een gevorderde\n"
"gebruiker bent. Raadpleeg de gedrukte documentatie of de on-line hulp\n"
-"over de configuratie van een opstartlader in het Mandriva Linux \n"
+"over de configuratie van een opstartlader in het Mageia \n"
"Configuratiecentrum.\n"
" * \"%s\": U bent hier in staat om de diensten die op uw computer\n"
"actief zullen zijn, fijn af te regelen. Indien u deze computer als server\n"
"gaat inzetten dan is het een goed idee om deze instellingen na te lopen."
-#: ../help.pm:858
+#: ../help.pm:809
+#, c-format
+msgid "TV card"
+msgstr "TV-kaart"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "Interne ISDN kaart"
@@ -1966,11 +1932,11 @@ msgstr "Grafische interface"
#: ../help.pm:861
#, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
-"Kies de harde schijf die u wilt wissen om uw nieuwe Mandriva Linux-\n"
+"Kies de harde schijf die u wilt wissen om uw nieuwe Mageia-\n"
"partitie op te installeren. Wees voorzichtig, alle gegevens die\n"
"op deze schijf staan zullen verloren gaan, en niet terug te halen zijn!"
@@ -1978,12 +1944,14 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Klik op \"%s\" wanneer u alle gegevens en partities die zich \n"
"op deze harde schijf bevinden, wilt wissen. Wees voorzichtig, want na het\n"
@@ -2003,4 +1971,3 @@ msgstr "Volgende ->"
#, c-format
msgid "<- Previous"
msgstr "<- Vorige"
-
diff --git a/perl-install/install/help/po/nn.po b/perl-install/install/help/po/nn.po
index 5a5b0342d..69519da74 100644
--- a/perl-install/install/help/po/nn.po
+++ b/perl-install/install/help/po/nn.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: nn\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2006-01-13 19:46+0100\n"
"Last-Translator: Karl Ove Hufthammer <karl@huftis.org>\n"
"Language-Team: Norwegian Nynorsk <i18n-nn@lister.ping.uio.no>\n"
@@ -17,15 +17,15 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Du bør lesa vilkåra i lisensavtala nøye før du eventuelt held fram.\n"
-"Avtala dekkjer heile Mandriva Linux-distribusjonen. Kryss av for\n"
+"Avtala dekkjer heile Mageia-distribusjonen. Kryss av for\n"
"«%s» berre viss du er einig i alle vilkåra. Elles vil «%s»-knappen\n"
"starta maskina på nytt."
@@ -81,8 +81,8 @@ msgstr ""
"\n"
"Du må laga minst éin vanleg brukarkonto for deg sjølv, og det er denne som "
"er\n"
-"meint for dagleg bruk. Sjølv om det er veldig lett å logga inn som «root», "
-"og gjera\n"
+"meint for dagleg bruk. Sjølv om det er veldig lett å logga inn som «root», og "
+"gjera\n"
"kva som helst der, er det òg veldig farleg! Ein enkelt feil kan gjera at "
"systemet\n"
"ikkje lenger fungerer. Det verste som kan skje om du gjer ein alvorleg feil "
@@ -105,10 +105,10 @@ msgstr ""
"det for lett å gjetta, eller la det stå tomt. Det er filene dine passordet "
"er meint å verna.\n"
"\n"
-"Du har trykt på «%s», kan du leggja til andre brukarar. Legg for eksempel "
-"til éin\n"
-"brukar for kvar av vennane dine, far din, søster di, og så vidare. Trykk «%"
-"s» når\n"
+"Du har trykt på «%s», kan du leggja til andre brukarar. Legg for eksempel til "
+"éin\n"
+"brukar for kvar av vennane dine, far din, søster di, og så vidare. Trykk «%s» "
+"når\n"
"du er ferdig å leggja til brukarar.\n"
"\n"
"Du kan velja standardskal (bash er standard) ved å trykkja «%s».\n"
@@ -124,13 +124,23 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Ønskjer du å bruka denne funksjonen?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -140,24 +150,24 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Her er ei oversikt over Linux-partisjonar på harddisken. Du bør vanlegvis\n"
@@ -192,29 +202,28 @@ msgstr ""
" nest lågaste SCSI-ID, og så vidare."
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Mandriva Linux-distribusjonen ligg fordelt på fleire plater. Viss ein pakke "
-"ligg på ei anna plate, vert du automatisk bedt om å setja ho i. Berre trykk "
-"«%s» om du ikkje har denne plata. Dei aktuelle pakkane vert då ikkje "
+"Mageia-distribusjonen ligg fordelt på fleire plater. Viss ein pakke "
+"ligg på ei anna plate, vert du automatisk bedt om å setja ho i. Berre trykk «%"
+"s» om du ikkje har denne plata. Dei aktuelle pakkane vert då ikkje "
"installerte."
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -227,8 +236,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -266,7 +274,7 @@ msgid ""
"megabytes."
msgstr ""
"Det må no velja kva program du ønskjer å installera på maskina. Det finst\n"
-"tusenvis av programpakkar for Mandriva Linux, og desse er her ordna i "
+"tusenvis av programpakkar for Mageia, og desse er her ordna i "
"grupper.\n"
"\n"
"Pakkane er grupperte i fire kategoriar, men du kan velja program frå alle\n"
@@ -330,7 +338,7 @@ msgid "Truly minimal install"
msgstr "Heilt minimal installasjon"
#: ../help.pm:152
-#, c-format
+#, fuzzy, c-format
msgid ""
"If you choose to install packages individually, the installer will present\n"
"a tree containing all packages classified by groups and subgroups. While\n"
@@ -343,10 +351,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -400,20 +408,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Automatisk avhengnadshandtering"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"«%s»: Trykk «%s» for å opna vegvisaren for skrivaroppsett. Sjå\n"
-"brukarrettleiinga for meir informasjon om oppsett av skrivarar. "
-"Brukargrensesnittet\n"
-"vist der liknar på det brukt ved installering."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -475,7 +470,12 @@ msgstr ""
"tidstenar\n"
"som andre maskiner på lokalnettet òg kan bruka."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Automatisk tidssynkronisering"
@@ -504,11 +504,11 @@ msgstr ""
"kan du velja tenaren som passar best for deg."
#: ../help.pm:234
-#, c-format
+#, fuzzy, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -565,7 +565,7 @@ msgstr ""
"X er hjarta i det grafiske grensesnittet til GNU/Linux, og alle dei "
"grafiske\n"
"skrivebordsmiljøa (KDE, GNOME, AfterStep, WindowsMaker, med fleire)\n"
-"som følgjer med Mandriva Linux avheng av X.\n"
+"som følgjer med Mageia avheng av X.\n"
"\n"
"Du vil sjå ei liste over forskjellige innstillingar til det grafiske "
"oppsettet:\n"
@@ -678,41 +678,41 @@ msgstr ""
"eller du før ikkje har klart å setja opp det grafiske oppsettet."
#: ../help.pm:319
-#, c-format
+#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -721,15 +721,14 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -742,7 +741,7 @@ msgid ""
"experience. For more instructions on how to use the DiskDrake utility,\n"
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
-"No må du velja kor du vil installera Mandriva Linux på harddisken din. Viss\n"
+"No må du velja kor du vil installera Mageia på harddisken din. Viss\n"
"harddisken er tom, eller viss eit anna operativsystem brukar heile disken,\n"
"må du først partisjonera han. Å partisjonera vil seia å dela opp disken,\n"
"slik at for eksempel kvart operativsystem får sin eigen del.\n"
@@ -757,21 +756,20 @@ msgstr ""
"Litt avhengig av harddiskoppsettet ditt kan du ha eitt eller fleire av desse "
"vala:\n"
"\n"
-"– «%s»: Dette utfører automatisk partisjonering av den tomme harddisken "
-"din.\n"
+"– «%s»: Dette utfører automatisk partisjonering av den tomme harddisken din.\n"
"Du vil ikkje få fleire spørsmål om du vel dette.\n"
"\n"
-"– «%s»: Vegvisaren har funne éin eller fleire Linux-partisjonar på "
-"harddisken din.\n"
+"– «%s»: Vegvisaren har funne éin eller fleire Linux-partisjonar på harddisken "
+"din.\n"
"Vel dette om du ønskjer å bruka dei. Du vert så bedt om å velja "
"monteringspunkt\n"
"for kvar av partisjonane. Dei gamle monteringspunkta vert valt som standard, "
"og\n"
"vanlegvis bør du ikkje endra på desse.\n"
"\n"
-"– «%s»: Om Microsoft Windows er installert og tar opp all plass på "
-"harddisken din,\n"
-"må du frigjera noko plass til Mandriva Linux. Du kan anten sletta Windows-\n"
+"– «%s»: Om Microsoft Windows er installert og tar opp all plass på harddisken "
+"din,\n"
+"må du frigjera noko plass til Mageia. Du kan anten sletta Windows-\n"
"partisjonen din (sjå «Slett heile disken»-valet), eller endra storleiken på "
"Windows-\n"
"partisjonen (både FAT- og NTFS-filsystema er støtta). Du vil ikkje mista "
@@ -779,7 +777,7 @@ msgstr ""
"data ved endra storleiken på partisjonen, så lenge du har defragmentert han\n"
"på førehand. Men du bør uansett ta reservekopi av alle dataa. Du bør velja "
"dette\n"
-"valet om du ønskjer å bruka både Mandriva Linux og Microsoft Windows på "
+"valet om du ønskjer å bruka både Mageia og Microsoft Windows på "
"same\n"
"maskina.\n"
"\n"
@@ -790,14 +788,13 @@ msgstr ""
"programvare.\n"
"\n"
"– «%s»: Vel dette om du ønskjer å sletta alle data og alle partisjonar på\n"
-"harddisken din, og installera Mandriva Linux over desse. Ver forsiktig, då "
+"harddisken din, og installera Mageia over desse. Ver forsiktig, då "
"du ikkje\n"
"kan angra denne handlinga.\n"
"\n"
" !! Viss du vel dette, vert alle dataa på harddisken din sletta. !!\n"
"\n"
-"– «%s»: Dette valet er synleg viss heile harddisken er oppteken av "
-"Microsoft\n"
+"– «%s»: Dette valet er synleg viss heile harddisken er oppteken av Microsoft\n"
"Windows. Dette vil sletta alt på harddisken, og partisjonera alt på nytt.\n"
" \n"
"\n"
@@ -813,7 +810,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Bruk gammal partisjon"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Slett heile disken"
@@ -855,7 +857,7 @@ msgid ""
"\"mformat a:\", or \"fdformat /dev/fd0\" followed by \"mkfs.vfat\n"
"/dev/fd0\"."
msgstr ""
-"Sånn! Installasjonen er no ferdig, og Mandriva Linux er klar til bruk. "
+"Sånn! Installasjonen er no ferdig, og Mageia er klar til bruk. "
"Berre\n"
"trykk «%s» for å starta maskina på nytt. Ikkje gløym å fjerna installasjons\n"
"mediet (CD-ROM-en eller disketten) først. Når maskina er starta opp att,\n"
@@ -869,11 +871,10 @@ msgstr ""
" Du får òg to nye val når du har trykt på knappen:\n"
" – «%s»: Halvautomatisk installering. Det er berre partisjoneringsdelen\n"
" som er manuell.\n"
-" – «%s»: Heilautomatisk installering. Harddisken vert heilt tømt, og "
-"alle\n"
+" – «%s»: Heilautomatisk installering. Harddisken vert heilt tømt, og alle\n"
"gamle data går tapt.\n"
"\n"
-" Denne funksjonen er veldig nyttig når du skal installera Mandriva Linux "
+" Denne funksjonen er veldig nyttig når du skal installera Mageia "
"på\n"
" fleire like maskiner. Sjå avsnittet om automatisk installering på "
"nettstaden vår for\n"
@@ -889,16 +890,30 @@ msgstr ""
"\n"
"Til dette siste treng du ein FAT-formatert diskett. For å laga ein kan du "
"skriva\n"
-"inn «mformat a:» eller «fdformat /dev/fd0» etterfølgd av «mkfs.vfat /dev/"
-"fd0»."
+"inn «mformat a:» eller «fdformat /dev/fd0» etterfølgd av «mkfs.vfat /dev/fd0»."
#: ../help.pm:412
#, c-format
msgid "Generate auto-install floppy"
msgstr "Lag diskett for automatisk installering"
-#: ../help.pm:415
+#: ../help.pm:405
#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
+#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -917,7 +932,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -936,15 +951,15 @@ msgstr ""
"\n"
"Trykk «%s» når du er klar til å formatera partisjonane.\n"
"\n"
-"Trykk «%s» om du vil velja ein annan partisjon for Mandriva Linux-systemet.\n"
+"Trykk «%s» om du vil velja ein annan partisjon for Mageia-systemet.\n"
"\n"
"Trykk «%s» om du ønskjer å velja partisjonar å gjennomsøkja etter fysiske "
"feil."
#: ../help.pm:437
-#, c-format
+#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -956,13 +971,12 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Det har no truleg komme fleire oppdateringar til pakkane i Mandriva Linux\n"
+"Det har no truleg komme fleire oppdateringar til pakkane i Mageia\n"
"sidan denne utgåva vart produsert. Det kan for eksempel vera feil som er\n"
"fiksa, eller tryggleikshol som er tetta. Du kan lasta ned desse "
"oppdateringane\n"
"frå Internett om du ønskjer. Kryss av for «%s» om du har eit fungerande\n"
-"Internett-samband, eller vel «%s» om du heller vil installera "
-"oppdateringane\n"
+"Internett-samband, eller vel «%s» om du heller vil installera oppdateringane\n"
"seinare.\n"
"\n"
"Vel du «%s», får du ei liste over plassar du kan lasta ned oppdateringar\n"
@@ -973,7 +987,7 @@ msgstr ""
"vel «%s» for å avbryta."
#: ../help.pm:450
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -982,7 +996,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1006,24 +1020,24 @@ msgid "Security Administrator"
msgstr "Tryggleiksansvarleg"
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1039,21 +1053,21 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1070,16 +1084,10 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-"No må du velja kva partisjonar du vil installera Mandriva Linux på. Om du "
+"No må du velja kva partisjonar du vil installera Mageia på. Om du "
"allereie har ferdige partisjonar, frå tidlegare installasjonar av GNU/Linux "
"eller av partisjoneringsverktøy, kan du bruka desse. Elles må du laga nye "
"partisjonar.\n"
@@ -1092,7 +1100,7 @@ msgstr ""
"\n"
" – «%s»: Slettar alle partisjonar på harddisken.\n"
"\n"
-" – «%s»: Lagar automatisk ext3- og vekslepartisjonar på den ledige "
+" – «%s»: Lagar automatisk ext4- og vekslepartisjonar på den ledige "
"harddiskplassen.\n"
"\n"
"«%s»: Gjev tilgang til fleire funksjonar:\n"
@@ -1139,58 +1147,78 @@ msgstr ""
"\n"
"Du kan lesa meir om forskjellige filsystem i kapittelet «ext2FS» i "
"referansehandboka.\n"
-"\n"
-"Om du installerer på ei PPC-maskin, bør du laga ein liten HFS-"
-"oppstartslastarpartisjon på minst 1 MiB for yaboot. Vis du lagar partisjonen "
-"større, kanskje 50 MiB, kan du bruka han til å lagra ein ekstra kjerne, og "
-"eventuelt ramdisk-bilete for nødsituasjonar.r"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Automatisk montering av fjernbare medium"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Byt mellom normal- og ekspertmodus"
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Oppdaga meir enn éin Microsoft-partisjon på harddisken.\n"
"Vel kven av dei du vil endra storleiken på for å installera det nye\n"
-"Mandriva Linux-operativsystemet.\n"
+"Mageia-operativsystemet.\n"
"Kvar partisjon vert vist slik: Linux-namn, Windows-namn, storleik.\n"
"Linuxnamnet er skriven slik: harddisktype, harddisknummer, partisjonsnummer "
"(for eksempel «hda1»).\n"
@@ -1231,23 +1259,22 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
#: ../help.pm:594
@@ -1304,8 +1331,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1337,7 +1363,12 @@ msgstr ""
msgid "Espanol"
msgstr "Spansk"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1393,53 +1424,7 @@ msgstr ""
"Vel porten som er brukt. For eksempel har porten som heiter\n"
"«COM1» under Windows fått namnet «ttyS0» i GNU/Linux."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "autentisering"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1453,7 +1438,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1464,7 +1449,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1485,7 +1470,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
@@ -1494,7 +1479,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Ekspert"
@@ -1507,7 +1497,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1555,11 +1545,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1577,8 +1562,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1595,14 +1579,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "ISDN-kort"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN-kort"
@@ -1613,25 +1602,25 @@ msgid "Graphical Interface"
msgstr "Grafisk grensesnitt"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
-"Vel harddisken du ønskjer å sletta for å installera den nye Mandriva Linux-\n"
+"Vel harddisken du ønskjer å sletta for å installera den nye Mageia-\n"
"partisjonen. Alle data på denne stasjonen vil då gå tapt for all framtid."
#: ../help.pm:866
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be able\n"
+"to recover any data and partitions present on this hard disk drive, including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Trykk «%s» om du ønskjer å sletta alle data og partisjonar på denne\n"
"harddisken. Ver forsiktig, då du ikkje kan gjenoppretta eventuelle data\n"
@@ -1652,3 +1641,19 @@ msgstr "Neste ->"
msgid "<- Previous"
msgstr "<- Førre"
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "«%s»: Trykk «%s» for å opna vegvisaren for skrivaroppsett. Sjå\n"
+#~ "brukarrettleiinga for meir informasjon om oppsett av skrivarar. "
+#~ "Brukargrensesnittet\n"
+#~ "vist der liknar på det brukt ved installering."
+
+#~ msgid "authentication"
+#~ msgstr "autentisering"
diff --git a/perl-install/install/help/po/pa_IN.po b/perl-install/install/help/po/pa_IN.po
index 83d9be578..8bfdd2dad 100644
--- a/perl-install/install/help/po/pa_IN.po
+++ b/perl-install/install/help/po/pa_IN.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2005-03-27 17:55+0530\n"
"Last-Translator: Jaswinder Singh Phulewala <jaswinderphulewala@yahoo.com>\n"
"Language-Team: Punjabi <punlinux-i18n@lists.soruceforge.net>\n"
@@ -19,10 +19,10 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
@@ -74,13 +74,23 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "ਕੀ ਤੁਸੀਂ ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਵਰਤਣੀ ਚਾਹੁੰਦੇ ਹੋ?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -90,31 +100,31 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
@@ -130,12 +140,11 @@ msgstr ""
#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -148,8 +157,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -216,10 +224,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -245,20 +253,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "ਸਵੈ-ਚਾਲਤ ਨਿਰਭਰਤਾ"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": \"%s\" ਬਟਨ ਤੇ ਕਲਿੱਕ ਕਰਕੇ ਪ੍ਰਿੰਟਰ ਸੰਰਚਨਾ ਤਖਤੀ ਖੁੱਲੇਗੀ।\n"
-"ਨਵਾਂ ਪ੍ਰਿੰਟਰ ਨਿਰਧਾਰਿਤ ਕਰਨ ਵਾਸਤੇ ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ ``Starter Guide''\n"
-"ਦਾ ਅਨੁਸਾਰੀ ਅਧਿਆਇ ਵੇਖੋ। ਸਾਡੇ ਦਸਤਾਵੇਜ਼ ਵਿੱਚ ਦਿੱਤਾ ਇੰਟਰਫੇਸ\n"
-"ਇੰਸਟਾਲੇਸ਼ਨ ਦੌਰਾਨ ਵਰਤੇ ਇੰਟਰਫੇਸ ਵਰਗਾ ਹੈ।"
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -296,7 +291,12 @@ msgid ""
"server which can be used by other machines on your local network as well."
msgstr ""
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "ਸਵੈਚਾਲਤ ਸਮਾਂ ਸਮਕਾਲਤਾ"
@@ -320,7 +320,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -438,39 +438,39 @@ msgstr ""
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -479,15 +479,14 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -506,7 +505,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "ਮੌਜੂਦਾ ਭਾਗ ਵਰਤੋ"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "ਸਾਰੀ ਡਿਸਕ ਸਾਫ"
@@ -554,7 +558,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "ਸਵੈ-ਇੰਸਟਾਲ ਫਲਾਪੀ ਬਣਾਓ"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -574,7 +593,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -583,7 +602,7 @@ msgstr ""
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -606,7 +625,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -622,21 +641,21 @@ msgstr "ਸੁਰੱਖਿਆ ਪ੍ਰਬੰਧਕ"
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -652,21 +671,21 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -683,22 +702,41 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "ਹਟਾਉਣ ਯੋਗ ਮਾਧਿਅਮ ਸਵੈ-ਮਾਊਂਟ ਹੋ ਰਿਹਾ ਹੈ"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "ਸਧਾਰਨ/ਮਾਹਿਰ ਵਿਧੀ ਵਿਚਕਾਰ ਤਬਦੀਲੀ"
@@ -706,34 +744,34 @@ msgstr "ਸਧਾਰਨ/ਮਾਹਿਰ ਵਿਧੀ ਵਿਚਕਾਰ ਤਬ
#: ../help.pm:536
#, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the first\n"
"disk or partition is called \"C:\")."
msgstr ""
@@ -756,23 +794,22 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
#: ../help.pm:594
@@ -813,8 +850,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -846,7 +882,12 @@ msgstr ""
msgid "Espanol"
msgstr "Espanol"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -902,53 +943,7 @@ msgstr ""
"ਕਿਰਪਾ ਕਰਕੇ ਠੀਕ ਪੋਰਟ ਚੁਣੋ। ਉਦਾਹਰਨ ਵਜੋਂ, Windows ਦੇ ਅਧੀਨ \"COM1\"\n"
"GNU/ਲੀਨਕਸ ਦੇ ਅਧਿਨ \"ttyS0\" ਕਹਿਲਾਉਂਦੀ ਹੈ।"
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "ਪ੍ਰਮਾਣਿਕਤਾ"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -962,7 +957,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -973,7 +968,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -994,7 +989,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
@@ -1003,7 +998,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "ਮਾਹਿਰ"
@@ -1016,7 +1016,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1064,11 +1064,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1086,8 +1081,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1104,14 +1098,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "ISDN ਕਾਰਡ"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN ਕਾਰਡ"
@@ -1122,10 +1121,10 @@ msgid "Graphical Interface"
msgstr "ਗਰਾਫੀਕਲ ਇੰਟਰਫੇਸ"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"ਤੁਹਾਡਾ ਨਵਾਂ ਮੈਂਡਰਿਵ-ਲੀਨਕਸ ਭਾਗ ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਸਾਫ ਕਰਨ ਵਾਸਤੇ\n"
@@ -1136,12 +1135,12 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be able\n"
+"to recover any data and partitions present on this hard disk drive, including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"\"%s\" ਤੇ ਕਲਿੱਕ ਕਰੋ ਜੇ ਤੁਸੀਂ ਇਸ ਹਾਰਡ ਡਰਾਈਵ ਤੇ ਸਾਰਾ ਡਾਟਾ ਅਤੇ ਭਾਗ\n"
"ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ। ਧਿਆਨ ਰੱਖੋ, \"%s\" ਤੇ ਕਲਿੱਕ ਕਰਨ ਮਗਰੋਂ, ਤੁਸੀਂ ਇਸ ਡਰਾਈਵ\n"
@@ -1161,3 +1160,19 @@ msgstr "ਅੱਗੇ ->"
msgid "<- Previous"
msgstr "<- ਪਿੱਛੇ"
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": \"%s\" ਬਟਨ ਤੇ ਕਲਿੱਕ ਕਰਕੇ ਪ੍ਰਿੰਟਰ ਸੰਰਚਨਾ ਤਖਤੀ ਖੁੱਲੇਗੀ।\n"
+#~ "ਨਵਾਂ ਪ੍ਰਿੰਟਰ ਨਿਰਧਾਰਿਤ ਕਰਨ ਵਾਸਤੇ ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ ``Starter Guide''\n"
+#~ "ਦਾ ਅਨੁਸਾਰੀ ਅਧਿਆਇ ਵੇਖੋ। ਸਾਡੇ ਦਸਤਾਵੇਜ਼ ਵਿੱਚ ਦਿੱਤਾ ਇੰਟਰਫੇਸ\n"
+#~ "ਇੰਸਟਾਲੇਸ਼ਨ ਦੌਰਾਨ ਵਰਤੇ ਇੰਟਰਫੇਸ ਵਰਗਾ ਹੈ।"
+
+#~ msgid "authentication"
+#~ msgstr "ਪ੍ਰਮਾਣਿਕਤਾ"
diff --git a/perl-install/install/help/po/pl.po b/perl-install/install/help/po/pl.po
index 70d68ef2e..4c151aeb5 100644
--- a/perl-install/install/help/po/pl.po
+++ b/perl-install/install/help/po/pl.po
@@ -14,26 +14,28 @@ msgid ""
msgstr ""
"Project-Id-Version: pl\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2005-10-22 14:46+0200\n"
"Last-Translator: Tomasz Bednarski <tomasz.bednarski@mandriva.pl>\n"
"Language-Team: polish <pl@li.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.10.2\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n"
+"%100<10 || n%100>=20) ? 1 : 2);\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Przed kontynuowaniem, należy przeczytać uważnie warunki licencji dotyczącej "
-"całej dystrybucji Mandriva Linux. Jeśli zgadzasz się\n"
+"całej dystrybucji Mageia. Jeśli zgadzasz się\n"
"z wszystkimi warunkami w niej zawartymi, zaznacz opcję \"%s\".\n"
"Jeśli nie kliknij na przycisk \"%s\" w celu ponownego uruchomienia\n"
"komputera."
@@ -119,13 +121,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Czy chcesz wykorzystać tą funkcję?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -135,24 +148,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Powyżej pokazano wykryte na Twoim dysku istniejące partycje linuksowe.\n"
@@ -187,15 +204,15 @@ msgstr ""
"oznacza \"drugi w kolejności ID SCSI\", itd."
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Instalacja Mandriva Linux jest rozpowszechniana na kilku płytach CD.\n"
+"Instalacja Mageia jest rozpowszechniana na kilku płytach CD.\n"
"Jeśli wybrany pakiet jest zlokalizowany na innej płycie CD\n"
" instalator wysunie bieżącą płytę CD oraz wyświetli prośbę\n"
"o włożenie wymaganej płyty CD. Jeśli nie posiadasz wymaganej\n"
@@ -203,15 +220,14 @@ msgstr ""
"zainstalowane."
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -224,8 +240,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -263,7 +278,7 @@ msgid ""
"megabytes."
msgstr ""
"Nadszedł czas na określenie, jakie programy mają zostać zainstalowane w\n"
-"systemie. Dla Mandriva Linux są dostępne tysiące pakietów. Aby uczynić\n"
+"systemie. Dla Mageia są dostępne tysiące pakietów. Aby uczynić\n"
"zarządzanie pakietami łatwiejszym, zostały one uporządkowane na podstawie\n"
"podobieństwa aplikacji.\n"
"\n"
@@ -338,7 +353,7 @@ msgid "Truly minimal install"
msgstr "Naprawdę minimalna instalacja"
#: ../help.pm:152
-#, c-format
+#, fuzzy, c-format
msgid ""
"If you choose to install packages individually, the installer will present\n"
"a tree containing all packages classified by groups and subgroups. While\n"
@@ -351,10 +366,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -385,7 +400,7 @@ msgstr ""
"!! Jeśli zostanie wybrany pakiet serwera, niezależnie czy wybrany został\n"
"w drodze indywidualnego wyboru pakietów, lub też jako pakiet grupy,\n"
"zostanie wyświetlona prośba o potwierdzenie wyboru pakietu serwera\n"
-"przed jego instalacją. W systemie Mandriva Linux, wszystkie zainstalowane\n"
+"przed jego instalacją. W systemie Mageia, wszystkie zainstalowane\n"
"serwery są uruchamiane domyślnie w trakcie\n"
"uruchamiania całego systemu. Nawet jeśli dany pakiet jest uważany\n"
"za bezpieczny i w trakcie instalacji nie są znane żadne problemy z nim\n"
@@ -417,21 +432,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Automatyczne zależności"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": kliknięcie przycisku \"%s\" spowoduje otwarcie\n"
-"druida konfiguracji drukarki. Przeczytaj odpowiedni rozdział\n"
-"podręcznika, aby uzyskać więcej informacji na temat sposobu konfiguracji\n"
-"nowej drukarki. Interfejs wykorzystywany w tym miejscu jest podobny\n"
-"do interfejsu używanego w czasie instalacji."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -498,7 +499,12 @@ msgstr ""
"Na komputerze zostanie zainstalowany serwer czasu, który może być\n"
"używany przez inne komputery w sieci lokalnej."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Automatyczna synchronizacja czasu"
@@ -527,11 +533,11 @@ msgstr ""
"najlepiej odpowiadającego potrzebom użytkownika."
#: ../help.pm:234
-#, c-format
+#, fuzzy, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -587,7 +593,7 @@ msgid ""
msgstr ""
"X (od systemu X Window) to serce graficznego interfejsu GNU/Linux,\n"
"z którego korzystają wszystkie środowiska graficzne (KDE, GNOME,\n"
-"AfterStep, WindowMaker, itd.) dostępne w systemie Mandriva Linux.\n"
+"AfterStep, WindowMaker, itd.) dostępne w systemie Mageia.\n"
"\n"
"Zostanie wyświetlona lista różnych parametrów pozwalających\n"
"na zmianę sposobu wyświetlania.\n"
@@ -705,41 +711,45 @@ msgstr ""
"skonfigurować ekranu graficznego."
#: ../help.pm:319
-#, c-format
+#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -748,15 +758,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -770,11 +780,11 @@ msgid ""
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
"W tym etapie instalacji należy określić, gdzie na dysku zostanie\n"
-"zainstalowany system operacyjny Mandriva Linux. Jeśli dysk jest pusty\n"
+"zainstalowany system operacyjny Mageia. Jeśli dysk jest pusty\n"
"lub istniejące systemy operacyjne zajmują całe dostępne miejsce,\n"
"należy podzielić dysk na partycje.\n"
"Partycjonowanie to po prostu logiczny podział twardego dysku na oddzielne\n"
-"obszary w celu zainstalowania systemu Mandriva Linux.\n"
+"obszary w celu zainstalowania systemu Mageia.\n"
"\n"
"Ponieważ efekt partycjonowania jest nieodwracalny, czynność wydaje się\n"
"niebezpieczna i jest stresująca dla niedoświadczonych użytkowników.\n"
@@ -811,7 +821,7 @@ msgstr ""
"\n"
" * \"%s\": Jeśli chcesz usunąć z dysku\n"
"wszystkie dane i wszystkie partycje istniejące na dysku oraz zainstalować\n"
-"w to miejsce nowy system Mandriva Linux, wybierz to rozwiązanie.\n"
+"w to miejsce nowy system Mageia, wybierz to rozwiązanie.\n"
"Pamiętaj, że po zatwierdzeniu tego wyboru nie nie będzie możliwości "
"odwrotu.\n"
"\n"
@@ -836,7 +846,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Wykorzystaj istniejące partycje"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Wymaż cały dysk"
@@ -913,16 +928,31 @@ msgstr ""
"\n"
"(*) Wymagana jest dyskietka sformatowana z systemem plików FAT. Aby\n"
"utworzyć taką dyskietkę w systemie GNU/Linux, wpisz polecenie\n"
-"\"mformat a:\", lub \"fdformat /dev/fd0\", a następnie \"mkfs.vfat /dev/fd0"
-"\"."
+"\"mformat a:\", lub \"fdformat /dev/fd0\", a następnie \"mkfs.vfat /dev/"
+"fd0\"."
#: ../help.pm:412
#, c-format
msgid "Generate auto-install floppy"
msgstr "Tworzenie dyskietki automatycznej instalacji"
-#: ../help.pm:415
+#: ../help.pm:405
#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
+#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -941,7 +971,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -963,15 +993,15 @@ msgstr ""
"Kliknij \"%s\", jeśli już można przystąpić do formatowania partycji.\n"
"\n"
"Kliknij \"%s\", jeśli chcesz wybrać inne partycje dla nowej instalacji\n"
-"Mandriva Linux.\n"
+"Mageia.\n"
"\n"
"Kliknij \"%s\" jeśli chcesz wybrać sprawdzanie niektórych partycji\n"
"w poszukiwaniu uszkodzonych sektorów na dysku."
#: ../help.pm:437
-#, c-format
+#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -983,8 +1013,8 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"W czasie, jaki upłynął od początkowego wydania Mandriva Linux, być może "
-"niektóre pakietyzostały zaktualizowane. Niektóre błędy mogły\n"
+"W czasie, jaki upłynął od początkowego wydania Mageia, być może niektóre "
+"pakietyzostały zaktualizowane. Niektóre błędy mogły\n"
"zostać naprawione, zaś problemy z bezpieczeństwem rozwiązane. Aby\n"
"skorzystać z możliwości aktualizacji, dobrze jest pobrać część danych\n"
"z Internetu. Wybierz \"%s\", jeśli posiadasz działające połączenie\n"
@@ -997,7 +1027,7 @@ msgstr ""
",aby pobrać i zainstalować wybrane pakiety lub \"%s\", aby anulować."
#: ../help.pm:450
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -1006,7 +1036,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1021,7 +1051,7 @@ msgstr ""
"Jeśli nie wiesz co wybrać, użyj domyślnej opcji. Będzie można zmienić "
"poziom\n"
"bezpieczeństwa w późniejszym czasie przy użyciu narzędzia draksec\n"
-"uruchamianego z Centrum Sterowania Mandriva Linux.\n"
+"uruchamianego z Centrum Sterowania Mageia.\n"
"\n"
"Pole \"%s\" może informować system o użytkowniku komputera odpowiedzialnego\n"
"za bezpieczeństwo. Komunikaty bezpieczeństwa będą przesyłane na ten adres."
@@ -1032,24 +1062,27 @@ msgid "Security Administrator"
msgstr "Administrator zabezpieczeń"
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1065,21 +1098,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1096,18 +1131,11 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"W tym etapie instalacji wybierasz partycje, na których będzie instalowany\n"
-"Mandriva Linux. Jeśli partycje istnieją (np. pozostały po poprzedniej "
-"instalacji,\n"
+"Mageia. Jeśli partycje istnieją (np. pozostały po poprzedniej instalacji,\n"
"lub też zostały założone innym narzędziem), to można ich użyć do "
"instalacji.\n"
"W innym przypadku należy je utworzyć.\n"
@@ -1122,7 +1150,7 @@ msgstr ""
" * \"%s\": ta opcja kasuje wszystkie partycje na wybranym dysku.\n"
"\n"
" * \"%s\": ta opcja automatycznie tworzy partycje\n"
-" ext3 oraz swap na wolnej (niespartycjonowanej) przestrzeni na dysku\n"
+" ext4 oraz swap na wolnej (niespartycjonowanej) przestrzeni na dysku\n"
"\n"
" * \"%s\": daje dostęp do dodatkowych opcji:\n"
"\n"
@@ -1174,61 +1202,83 @@ msgstr ""
"\n"
"Aby uzyskać informacje dotyczące różnych dostępnych rodzajów systemów\n"
"plików, należy przeczytać rozdział ext2fs podręcznika.\n"
-"\n"
-"Jeśli instalacja odbywa się na komputerze PPC, system będzie wymagał\n"
-"utworzenia małej partycji HFS \"rozruchowej\" (bootstrap) o wielkości\n"
-"co najmniej 1MB, która będzie używana przez program rozruchowy yaboot.\n"
-"Jeśli chcesz, aby ta partycja była większa, powiedzmy 50 MB, można\n"
-"ją traktować jako użyteczne miejsce np. do przechowywania zapasowego\n"
-"jądra oraz obrazów do uniknięcia skutków ewentualnych awarii "
-"uniemożliwiających\n"
-"rozruch systemu z normalnej partycji."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Automatyczne montowanie nośników wymiennych"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Przełącz między trybem zwykłym a zaawansowanym"
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Na dysku wykryto więcej niż jedną partycję Windows. Wybierz, którą\n"
-"z nich chcesz zmniejszyć w celu zainstalowania systemu Mandriva Linux\n"
+"z nich chcesz zmniejszyć w celu zainstalowania systemu Mageia\n"
"\n"
"Każda partycja jest określana za pomocą informacji: \"Nazwa linuksowa\",\n"
"\"Nazwa Windows\" i \"Rozmiar\".\n"
@@ -1268,35 +1318,35 @@ msgstr ""
"aby otrzymać pełną listę krajów."
#: ../help.pm:572
-#, c-format
+#, fuzzy, c-format
msgid ""
"This step is activated only if an existing GNU/Linux partition has been\n"
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Ten krok jest aktywowany tylko wtedy, jeśli na komputerze została\n"
"znaleziona stara partycja GNU/Linux.\n"
"\n"
"Instalator musi teraz otrzymać informację, czy chcesz przeprowadzić nową\n"
-"instalację, czy też uaktualnić istniejący system Mandriva Linux:\n"
+"instalację, czy też uaktualnić istniejący system Mageia:\n"
"\n"
" * \"%s\": W większości przypadków, ta opcja powoduje całkowite\n"
"usunięcie starego systemu. Jednak w zależności od schematu\n"
@@ -1306,13 +1356,13 @@ msgstr ""
"opcji.\n"
"\n"
" * \"%s\": Ta klasa instalacji umożliwia uaktualnienie pakietów\n"
-"aktualnie zainstalowanych w systemie Mandriva Linux. Twój bieżący\n"
+"aktualnie zainstalowanych w systemie Mageia. Twój bieżący\n"
"schemat partycjonowania oraz dane użytkownika nie zostaną zmienione.\n"
"Większość innych kroków konfiguracyjnych pozostanie dostępna,\n"
"podobnie do instalacji standardowej.\n"
"\n"
"Użycie wersji \"Uaktualnienie\" powinno zadziałać dobrze na systemach\n"
-"Mandriva Linux w wersji \"8.1\" i późniejszych. Przeprowadzanie\n"
+"Mageia w wersji \"8.1\" i późniejszych. Przeprowadzanie\n"
"uaktualnienia z wersji wcześniejszych niż \"8.1\" nie jest zalecane."
#: ../help.pm:594
@@ -1355,7 +1405,7 @@ msgstr ""
"klawiatury z łacińskiego na narodowy."
#: ../help.pm:612
-#, c-format
+#, fuzzy, c-format
msgid ""
"The first step is to choose your preferred language.\n"
"\n"
@@ -1371,8 +1421,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1416,7 +1465,7 @@ msgstr ""
"Uwaga dotycząca obsługi UTF-8 (unikodu): Unikod jest nowym kodowaniem\n"
"znaków umożliwiającym równoczesną osługę wszystkich istniejących\n"
"języków. Jednak pełna obsługa tego standardu jest wciąż w trakcie\n"
-"rozwoju w systemach GNU/Linux. Z tego powodu, Mandriva Linux\n"
+"rozwoju w systemach GNU/Linux. Z tego powodu, Mageia\n"
"używa go lub nie w zależności od wyboru użytkownika:\n"
"\n"
"* Po wybraniu języków z często używanym kodowaniem (języki latin1,\n"
@@ -1449,7 +1498,12 @@ msgstr ""
msgid "Espanol"
msgstr "Hiszpański"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1539,87 +1593,7 @@ msgstr ""
"Wybierz właściwy port. Na przykład numer portu \"COM1\" z MS Windows\n"
"w GNU/Linux nazywa się \"ttyS0\"."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Nadszedł czas na podjęcie najważniejszej decyzji dotyczącej bezpieczeństwa\n"
-"twojego systemu GNU/Linux: należy podać hasło użytkownika \"root\". \n"
-"\"root\" jest administratorem systemu i jedynym użytkownikiem mającym\n"
-"prawa do wykonywania aktualizacji, dodawania użytkowników, zmiany\n"
-"konfiguracji systemu itd. W skrócie \"root\" może zrobić w systemie\n"
-"wszystko! Z tego powodu hasło nie może być łatwe do odgadnięcia\n"
-"i instalator poinformuje cię, jeśli będzie ono zbyt proste. Można\n"
-"wcale nie ustawiać hasła, lecz nie jest zalecane pozostawianie go pustym\n"
-"z jednego powodu. Nie należy zakładać, że gdy uruchamiasz GNU/Linux to\n"
-"inne systemy operacyjne są wolne od błędów. Ponieważ \"root\" może\n"
-"obejść wszelkie zabezpieczenia i niechcący wymazać wszelkie dane z dysku,\n"
-"zalecana jest ostrożność przy logowaniu się na to konto.\n"
-"\n"
-"Hasło powinno zawierać znaki alfanumeryczne i posiadać długość\n"
-"co najmniej 8 znaków. Nigdy nie należy zapisywać hasła użytkownika\n"
-"\"root\", gdyż zostawia to zbyt dużą lukę bezpieczeństwa w systemie.\n"
-"\n"
-"Jednak zbyt długie lub zbyt skomplikowane hasło trudno jest zapamiętać!\n"
-"\n"
-"Hasło nie będzie wyświetlane na ekranie podczas wpisywania. Dlatego też\n"
-"musi być ono dodatkowo potwierdzone w celu zminimalizowania możliwości\n"
-"popełniania błędu. Jeśli dwa razy zostanie wpisane to samo \"błędne\"\n"
-"hasło, należy go użyć podczas pierwszego logowania i zmienić je na\n"
-"właściwe.\n"
-"\n"
-"Jeśli chcesz aby komputer, był kontrolowany\n"
-"przez serwer uwierzytelniania, kliknij przycisk \"%s\".\n"
-"\n"
-"Można wybrać odpowiednią opcję \"%s\" spośród LDAP, NIS lub Domeny PDC\n"
-"Windows. Jeśli nie wiesz, której opcji wybrać, zapytaj administratora sieci\n"
-"\n"
-"Jeśli masz problemy z zapamiętywaniem haseł, można wybrać opcję \"%s\"\n"
-"w przypadku, gdy komputer nie jest połączony z Internetem i ufasz\n"
-"wszystkim osobom posiadającym do niego dostęp."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "uwierzytelnianie"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1633,7 +1607,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1659,10 +1633,10 @@ msgstr ""
"wiesz co robisz."
#: ../help.pm:745
-#, c-format
+#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1683,11 +1657,11 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Nadszedł czas na wybranie systemu drukowania. Inne systemy operacyjne\n"
-"mogą zaoferować jeden, lecz Mandriva Linux oferuje dwa. Każdy z tych\n"
+"mogą zaoferować jeden, lecz Mageia oferuje dwa. Każdy z tych\n"
"systemów wydruku jest najlepszy dla określonego typu konfiguracji.\n"
"\n"
" * \"%s\" oznaczający \"print, do not queue\" (drukuj, nie buforuj),\n"
@@ -1720,7 +1694,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Tryb zaawansowany"
@@ -1733,7 +1712,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1777,7 +1756,7 @@ msgstr ""
"przycisk i wybrać inny sterownik."
#: ../help.pm:794
-#, c-format
+#, fuzzy, c-format
msgid ""
"As a review, DrakX will present a summary of information it has gathered\n"
"about your system. Depending on the hardware installed on your machine, you\n"
@@ -1800,11 +1779,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1822,8 +1796,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1840,7 +1813,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1894,7 +1867,7 @@ msgstr ""
"\n"
" * \"%s\": jeśli chcesz skonfigurować połączenie z Internetem lub\n"
"sieć lokalną użyj tej opcji. Zobacz na wydrukowaną dokumentację lub\n"
-"użyj Centrum Sterownia Mandriva Linux po zakończeniu instalacji,\n"
+"użyj Centrum Sterownia Mageia po zakończeniu instalacji,\n"
"aby otrzymać pełną pomoc.\n"
"\n"
" * \"%s\": umożliwia konfigurację adresów pośrednika HTTP i FTP,\n"
@@ -1917,7 +1890,12 @@ msgstr ""
"komputerze. Jeśli planujesz używać tego komputera jako serwera,\n"
"dobrze jest przejrzeć te ustawienia."
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "Karta ISDN"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "Karta ISDN"
@@ -1928,26 +1906,28 @@ msgid "Graphical Interface"
msgstr "Interfejs graficzny"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"Wybierz dysk, który chcesz wykasować, by założyć na nim\n"
-"partycję Mandriva Linux. Pamiętaj, że wszystkie dane z tego\n"
+"partycję Mageia. Pamiętaj, że wszystkie dane z tego\n"
"dysku zostaną utracone bez możliwości odzyskania!"
#: ../help.pm:866
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Wybierz \"%s\", jeśli chcesz usunąć wszystkie dane i partycje zapisane\n"
"na tym dysku. Pamiętaj, po wybraniu \"%s\", nie będzie\n"
@@ -1967,3 +1947,109 @@ msgstr "Dalej ->"
msgid "<- Previous"
msgstr "<- Wstecz"
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": kliknięcie przycisku \"%s\" spowoduje otwarcie\n"
+#~ "druida konfiguracji drukarki. Przeczytaj odpowiedni rozdział\n"
+#~ "podręcznika, aby uzyskać więcej informacji na temat sposobu konfiguracji\n"
+#~ "nowej drukarki. Interfejs wykorzystywany w tym miejscu jest podobny\n"
+#~ "do interfejsu używanego w czasie instalacji."
+
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "Nadszedł czas na podjęcie najważniejszej decyzji dotyczącej "
+#~ "bezpieczeństwa\n"
+#~ "twojego systemu GNU/Linux: należy podać hasło użytkownika \"root\". \n"
+#~ "\"root\" jest administratorem systemu i jedynym użytkownikiem mającym\n"
+#~ "prawa do wykonywania aktualizacji, dodawania użytkowników, zmiany\n"
+#~ "konfiguracji systemu itd. W skrócie \"root\" może zrobić w systemie\n"
+#~ "wszystko! Z tego powodu hasło nie może być łatwe do odgadnięcia\n"
+#~ "i instalator poinformuje cię, jeśli będzie ono zbyt proste. Można\n"
+#~ "wcale nie ustawiać hasła, lecz nie jest zalecane pozostawianie go pustym\n"
+#~ "z jednego powodu. Nie należy zakładać, że gdy uruchamiasz GNU/Linux to\n"
+#~ "inne systemy operacyjne są wolne od błędów. Ponieważ \"root\" może\n"
+#~ "obejść wszelkie zabezpieczenia i niechcący wymazać wszelkie dane z "
+#~ "dysku,\n"
+#~ "zalecana jest ostrożność przy logowaniu się na to konto.\n"
+#~ "\n"
+#~ "Hasło powinno zawierać znaki alfanumeryczne i posiadać długość\n"
+#~ "co najmniej 8 znaków. Nigdy nie należy zapisywać hasła użytkownika\n"
+#~ "\"root\", gdyż zostawia to zbyt dużą lukę bezpieczeństwa w systemie.\n"
+#~ "\n"
+#~ "Jednak zbyt długie lub zbyt skomplikowane hasło trudno jest zapamiętać!\n"
+#~ "\n"
+#~ "Hasło nie będzie wyświetlane na ekranie podczas wpisywania. Dlatego też\n"
+#~ "musi być ono dodatkowo potwierdzone w celu zminimalizowania możliwości\n"
+#~ "popełniania błędu. Jeśli dwa razy zostanie wpisane to samo \"błędne\"\n"
+#~ "hasło, należy go użyć podczas pierwszego logowania i zmienić je na\n"
+#~ "właściwe.\n"
+#~ "\n"
+#~ "Jeśli chcesz aby komputer, był kontrolowany\n"
+#~ "przez serwer uwierzytelniania, kliknij przycisk \"%s\".\n"
+#~ "\n"
+#~ "Można wybrać odpowiednią opcję \"%s\" spośród LDAP, NIS lub Domeny PDC\n"
+#~ "Windows. Jeśli nie wiesz, której opcji wybrać, zapytaj administratora "
+#~ "sieci\n"
+#~ "\n"
+#~ "Jeśli masz problemy z zapamiętywaniem haseł, można wybrać opcję \"%s\"\n"
+#~ "w przypadku, gdy komputer nie jest połączony z Internetem i ufasz\n"
+#~ "wszystkim osobom posiadającym do niego dostęp."
+
+#~ msgid "authentication"
+#~ msgstr "uwierzytelnianie"
diff --git a/perl-install/install/help/po/pt.po b/perl-install/install/help/po/pt.po
index 6123254ac..80634cae5 100644
--- a/perl-install/install/help/po/pt.po
+++ b/perl-install/install/help/po/pt.po
@@ -1,47 +1,41 @@
-# translation of pt.po to Português
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
-# Latest versions of po files are at http://www.mandrivalinux.com/l10n/pt.php3
+# Translators:
+# Yuri Chornoivan <yurchor@ukr.net>, 2024
+# Michael Martins, 2024
#
-# Copyright (C) 2000 Mandriva
-#
-# Fernando Moreira <fmoreira@netc.pt>, 1999.
-# Jorge Costa <Jorgercosta@netc.pt>, 2001.
-# José JORGE <jose.jorge@oreka.com>, 2002,2003.
-# Jose Jorge <jjorge@free.fr>, 2003, 2004, 2005.
-# Jose Carlos D. S. Saraiva <jose.d.s.saraiva@clix.pt>, 2004.
-# Zé <mmodem00@netvisao.pt>, 2004, 2005, 2006.
-# Américo José Melo <mmodem00@netvisao.pt>, 2004, 2005.
-# Ze <mmodem00@netvisao.pt>, 2004.
-# José Melo <mmodem00@gmail.com>, 2005.
-# José Melo <mmodme00@gmail.com>, 2005.
-# Jose JORGE <jjorge@free.fr>, 2005.
-# Zé <mmodem00@gmail.com>, 2006, 2007.
+#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: pt\n"
+"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
-"PO-Revision-Date: 2007-02-18 17:17+0000\n"
-"Last-Translator: Zé <mmodem00@gmail.com>\n"
-"Language-Team: Português <pt@li.org>\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
+"PO-Revision-Date: 2024-09-04 17:33+0000\n"
+"Last-Translator: Michael Martins, 2024\n"
+"Language-Team: Portuguese (https://app.transifex.com/MageiaLinux/teams/9361/"
+"pt/)\n"
+"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % "
+"1000000 == 0 ? 1 : 2;\n"
#: ../help.pm:14
#, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
-"Antes de continuar, deve ler atentamente os termos da licença. A licença\n"
-"cobre toda a distribuição Mandriva Linux. Se concorda com todos os termos\n"
-"presentes, active a caixa \"%s\". Se não concorda, clique no botão \"%s\"\n"
-"para reiniciar o seu computador."
+"Antes de continuar, você deve ler atentamente os termos da licença. Ela\n"
+"cobre toda a distribuição do Mageia. Se você concordar com todos os\n"
+"termos, marque a caixa \"%s\". Caso contrário, clicar no botão \"%s\"\n"
+"reiniciará seu computador."
#: ../help.pm:20
#, c-format
@@ -123,13 +117,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr "Nome de usuário"
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr "Aceitar o usuário"
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Deseja usar esta opção?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -139,24 +144,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Aqui estão listadas partições Linux existentes detectadas no seu disco.\n"
@@ -197,27 +206,28 @@ msgstr ""
#: ../help.pm:88
#, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"A instalação Mandriva Linux é distribuída em vários CD-ROMs. Se um pacote\n"
-"seleccionado estiver localizado noutro CD-ROM, o DrakX irá ejectar o actual\n"
-"CD e pedir para inserir o CD pedido. Se não tiver o CD em questão à mão,\n"
-"clique apenas em \"%s\", os pacote correspondentes não será instalados."
+"A instalação do Mageia é distribuída em vários CD-ROMs. Se um\n"
+"pacote selecionado estiver localizado em outro CD-ROM, o DrakX irá ejetar\n"
+"o CD atual e solicitar que você insira o CD necessário. Se você não tiver\n"
+"o CD solicitado em mãos, basta clicar em \"%s\", e os pacotes "
+"correspondentes\n"
+"não serão instalados."
#: ../help.pm:95
#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -230,8 +240,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -268,59 +277,51 @@ msgid ""
"command-line interface. The total size of this installation is about 65\n"
"megabytes."
msgstr ""
-"É agora tempo de especificar que programas deseja instalar no seu\n"
-"sistema. Há centenas de pacotes disponíveis para o Mandriva Linux, e para\n"
-" simplificar a gestão, foram colocados em grupos de aplicações similares.\n"
-"\n"
-"O Mandriva Linux classifica os grupos de pacotes em quatro categorias.\n"
-"Pode misturar e combinar aplicações de várias categorias, para que a\n"
-"instalação de uma ``Estação de trabalho'' possa ainda ter aplicações da\n"
-"categoria ``Servidor'' instaladas.\n"
-"\n"
-" * \"%s\": se planeia usar a sua máquina como uma estação de trabalho,\n"
-"escolha um ou mais dos grupos dessa mesma categoria.\n"
-"\n"
-" * \"%s\": se planeia usar a sua máquina para programar, seleccione os\n"
-"grupos apropriados dentro dessa categoria. O grupo especial \"LSB\" irá\n"
-"configurar o seu sistema para que cumpra o mais possível com as \n"
-"especificações Linux Standard Base.\n"
-"\n"
-" Ao seleccionar o grupo \"LSB\" irá também instalar as séries kernel \"2.4"
-"\",\n"
-"em vez do \"2.6\" predefinido. Isto é para garantir concordância 100%%- LSB\n"
-"do sistema. No entanto, se não seleccionar o grupo \"LSB\", terá na mesma\n"
-"um sistema que é 100%% LSB-concordante.\n"
-"\n"
-" * \"%s\": se pretende que a sua máquina seja um servidor, seleccione\n"
-"qual dos serviços comuns deseja instalar.\n"
-"\n"
-" * \"%s\": aqui é onde irá escolher o seu ambiente gráfico preferido. Pelo\n"
-" menos deve ser seleccionado se deseja ter um interface gráfico disponível.\n"
-"\n"
-"Movendo o cursor do rato sobre o nome de um grupo, irá mostrar um breve\n"
-"texto explanatório acerca desse grupo.\n"
-"\n"
-"Pode seleccionar a caixa \"%s\", que é útil se está familiarizado com os\n"
-"pacotes oferecidos ou se quer ter controlo total sobre o que é instalado.\n"
-"\n"
-"Se iniciar a instalação em modo \"%s\", pode desseleccionar todos os\n"
-"grupos e prevenir a instalação de novos pacotes. Isto é útil para reparar\n"
-"ou actualizar um sistema existente.\n"
-"\n"
-"Se desseleccionar todos os grupos quando executa uma instalação regular\n"
-"(em oposição a uma actualização), um diálogo irá aparecer a sugestionar\n"
-"opções diferentes para uma instalação mínima:\n"
-"\n"
-" * \"%s\": instala o número mínimo de pacotes possíveis para ter um\n"
-"ambiente gráfico instalado.\n"
-"\n"
-" * \"%s\": instala o sistema base mais utilidades básicas e a sua\n"
-"documentação. Esta instalação é apropriada para configurar um servidor.\n"
-"\n"
-" * \"%s\": irá instalar o número mínimo absoluto de pacotes necessários\n"
-"para ter um sistema Linux funcional. Com esta instalação irá apenas ter um\n"
-"interface de linha de comandos. O tamanho total desta instalação é cerca\n"
-"de 65 megabytes."
+"Agora é hora de especificar quais programas você deseja instalar em seu "
+"sistema.\n"
+"Existem milhares de pacotes disponíveis para o Mageia, e para simplificar o\n"
+"gerenciamento, eles foram agrupados em categorias de aplicações similares.\n"
+"\n"
+"O Mageia classifica os grupos de pacotes em quatro categorias. Você pode\n"
+"misturar e combinar aplicações das várias categorias, de modo que uma\n"
+"instalação \"Estação de trabalho\" ainda possa ter aplicações da categoria\n"
+"\"Servidor\" instaladas.\n"
+"\n"
+" * \"%s\": se você planeja usar sua máquina como uma estação de trabalho,\n"
+"selecione um ou mais dos grupos na categoria de estação de trabalho.\n"
+"\n"
+" * \"%s\": se você planeja usar sua máquina para programação, selecione os\n"
+"grupos apropriados dessa categoria. O grupo especial \"LSB\" configurará "
+"seu\n"
+"sistema para que ele esteja o mais próximo possível das especificações do\n"
+"Linux Standard Base.\n"
+"\n"
+" Selecionar o grupo \"LSB\" garantirá 100% de conformidade com o\n"
+"LSB do sistema. No entanto, se você não selecionar o grupo \"LSB\", ainda\n"
+"terá um sistema quase 100% compatível com o LSB.\n"
+"\n"
+" * \"%s\": se sua máquina for destinada a ser um servidor, selecione quais\n"
+"dos serviços mais comuns você deseja instalar em sua máquina.\n"
+"\n"
+" * \"%s\": aqui você escolherá seu ambiente gráfico preferido. Pelo menos\n"
+"um deve ser selecionado se você quiser ter uma interface gráfica "
+"disponível.\n"
+"\n"
+"Mover o cursor do mouse sobre um nome de grupo exibirá um texto explicativo "
+"sobre esse grupo.Você pode marcar a caixa \"%s\", que é útil se você estiver "
+"familiarizado com os pacotes oferecidos ou se desejar ter controle total "
+"sobre o que será instalado.Se você iniciar a instalação no modo \"%s\", pode "
+"desmarcar todos os grupos e evitar a instalação de novos pacotes. Isso é "
+"útil para reparar ou atualizar um sistema existente.Se você desmarcar todos "
+"os grupos ao realizar uma instalação regular (em vez de uma atualização), "
+"uma caixa de diálogo será exibida sugerindo diferentes opções para uma "
+"instalação mínima:\"%s\": instala o número mínimo de pacotes possível para "
+"ter uma área de trabalho gráfica funcional.\"%s\": instala o sistema base "
+"mais utilitários básicos e sua documentação. Esta instalação é adequada para "
+"configurar um servidor.\"%s\": instalará o número absoluto mínimo de pacotes "
+"necessários para obter um sistema Linux funcional. Com esta instalação, você "
+"terá apenas uma interface de linha de comando. O tamanho total desta "
+"instalação é de cerca de 65 megabytes."
#: ../help.pm:149 ../help.pm:591
#, c-format
@@ -351,10 +352,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -374,61 +375,59 @@ msgid ""
"another installation. See the second tip of the last step on how to create\n"
"such a floppy."
msgstr ""
-"Se escolheu instalar pacotes individualmente, o instalador irá apresentar\n"
+"Se você optar por instalar pacotes individualmente, o instalador "
+"apresentará\n"
"uma árvore contendo todos os pacotes classificados por grupos e subgrupos.\n"
-"Enquanto pesquisa na árvore, pode seleccionar grupos inteiros, subgrupos,\n"
+"Enquanto navega pela árvore, você pode selecionar grupos inteiros, "
+"subgrupos\n"
"ou pacotes individuais.\n"
"\n"
-"Sempre que seleccionar um pacote na árvore, uma descrição irá aparecer\n"
-"à sua direita para o informar acerca do propósito desse pacote.\n"
-"\n"
-"!! Se um pacote servidor foi seleccionado, ou porque escolheu\n"
-"especificamente o pacote individual ou porque fazia parte de um grupo de\n"
-"pacotes, será-lhe pedido para confirmar que realmente quer que esses\n"
-"servidores sejam instalados. Por omissão o Mandriva Linux irá\n"
-"automaticamente iniciar qualquer serviço instalado no arranque. Mesmo\n"
-"que sejam seguros e não tenham qualquer problema conhecido na altura\n"
-"da saída da distribuição, é bem possível que sejam descobertos 'buracos'\n"
-"na segurança a seguir à finalização desta versão Mandriva Linux. Se não\n"
-"souber que serviço particular é suposto fazer ou porque é instalado, então\n"
-"clique em \"%s\". Ao clicar em \"%s\" irá instalar os serviços listados e\n"
-"serºao iniciados automaticamente no arranque. !!\n"
-"\n"
-"A opção \"%s\" é usada para desactivar o dialogo de aviso que\n"
-"aparece sempre que o instalador escolhe automaticamente um pacote\n"
-"para resolver problemas de dependências. alguns pacotes dependem de\n"
-"outros e a instalação de um determinado pacote pode requerer a instalação\n"
-"de outro pacote. O instalador pode determinar que pacotes são necessários\n"
-"para satisfazer uma dependência para terminar com sucesso a instalação.\n"
-"\n"
-"O pequeno ícone de disquete no fundo desta lista permite-lhe carregar uma\n"
-"lista de pacotes escolhida durante uma instalação anterior. Isto é útil se\n"
-"tiver um número de máquinas que deseja configurar identicamente. Ao\n"
-"clicar neste ícone irá-lhe pedir para inserir uma disquete criada no fim\n"
-"de outra instalação. Veja a segunda dica do último passo sobre como criar\n"
-"essa disquete."
+"Sempre que você selecionar um pacote na árvore, uma descrição aparecerá\n"
+"à direita para informar o propósito desse pacote.\n"
+"\n"
+" !! Se um pacote de servidor for selecionado, seja porque você escolheu\n"
+"especificamente o pacote individual ou porque ele fazia parte de um grupo\n"
+"de pacotes, será solicitado que você confirme se realmente deseja que esses\n"
+"servidores sejam instalados. Por padrão, o Mageia iniciará automaticamente\n"
+"quaisquer serviços instalados durante o tempo de inicialização. Mesmo que\n"
+"eles sejam seguros e não tenham problemas conhecidos na época em que\n"
+"a distribuição foi lançada, é possível que vulnerabilidades de segurança "
+"tenham\n"
+"sido descobertas após a finalização desta versão do Mageia. Se você não "
+"souber\n"
+"o que um serviço específico deve fazer ou por que está sendo instalado, "
+"clique em \"%s\".\n"
+"Clicar em \"%s\" instalará os serviços listados e eles serão iniciados "
+"automaticamente\n"
+"durante o tempo de inicialização. !!\n"
+"\n"
+"A opção \"%s\" é usada para desativar a caixa de diálogo de aviso que "
+"aparece\n"
+"sempre que o instalador seleciona automaticamente um pacote para resolver "
+"um\n"
+"problema de dependência. Alguns pacotes dependem de outros e a instalação "
+"de\n"
+"um pacote específico pode exigir a instalação de outro pacote. O instalador "
+"pode\n"
+"determinar quais pacotes são necessários para satisfazer uma dependência e "
+"concluir\n"
+"a instalação com sucesso.\n"
+"\n"
+"O ícone de disquete pequeno na parte inferior da lista permite carregar uma\n"
+"lista de pacotes criada durante uma instalação anterior. Isso é útil se você "
+"tiver\n"
+"várias máquinas que deseja configurar de maneira idêntica. Clicar nesse "
+"ícone\n"
+"solicitará que você insira o disquete criado ao final de outra instalação. "
+"Consulte\n"
+"a segunda dica do último passo sobre como criar um disquete desse tipo."
#: ../help.pm:183
#, c-format
msgid "Automatic dependencies"
msgstr "Dependências automáticas"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": ao clicar no botão \"%s\"irá iniciar o assistente de configuração "
-"de\n"
-"impressoras. Consulte o capítulo correspondente no ''Guia do Utilizador''\n"
-"para obter mais informações sobre como configurar uma nova impressora.\n"
-"O interface apresentado no nosso manual é semelhante ao usado durante\n"
-"a instalação."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -494,7 +493,12 @@ msgstr ""
"esta opção instala um servidor horário que poderá ser usado por outras\n"
"máquinas na sua rede local."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr "Relógio do hardware configurado para GMT"
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Sincronização automática da hora"
@@ -528,7 +532,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -582,62 +586,68 @@ msgid ""
"want to check \"%s\" if your machine is to act as a server, or if you were\n"
"not successful in getting the display configured."
msgstr ""
-"X (para Sistema X Window) é o coração do interface gráfico GNU/Linux no\n"
-"qual todos os ambientes gráficos (KDE, GNOME, AfterStep, WindowMaker,\n"
-"etc.) fornecidos com o Mandriva Linux, funcionam.\n"
+"X (para o X Window System) é o coração da interface gráfica do GNU/Linux,\n"
+"sobre a qual todos os ambientes gráficos (KDE, GNOME, AfterStep,\n"
+"WindowMaker, etc.) fornecidos com o Mageia dependem.\n"
"\n"
-"Irá ver uma lista de parâmetros diferentes para mudar, para poder\n"
-"ter uma boa apresentação gráfica\n"
+"Você verá uma lista de diferentes parâmetros para ajustar e obter uma "
+"exibição\n"
+"gráfica otimizada.\n"
"\n"
"Placa Gráfica\n"
"\n"
-" O instalador irá normalmente detectar e configurar automaticamente\n"
-"a placa gráfica da sua máquina. Se isto não estiver correcto, pode\n"
-"escolher da lista a placa gráfica que tem instalada.\n"
+"O instalador normalmente detectará e configurará automaticamente a\n"
+"placa gráfica instalada em sua máquina. Se isso não estiver correto, você\n"
+"pode escolher na lista a placa que você realmente tem instalada.\n"
"\n"
-" Se na situação de haver diferentes servidores disponíveis para a sua\n"
-"placa, com ou sem aceleração 3D, será-lhe dado a escolher o servidor\n"
-"que melhor sirva as suas necessidades\n"
+"Na situação em que diferentes drivers estão disponíveis para sua placa, com\n"
+"ou sem aceleração 3D, você será solicitado a escolher o driver que melhor\n"
+"atende às suas necessidades.\n"
"\n"
"\n"
"\n"
"Monitor\n"
"\n"
-" Normalmente o instalador irá automaticamente detectar e configurar o\n"
-"ecrã/monitor ligado á sua máquina. Se não estiver correcto, pode escolher\n"
-"da lista o monitor que está ligado ao seu computador.\n"
+"Normalmente, o instalador detectará e configurará automaticamente o\n"
+"monitor\n"
+"conectado à sua máquina. Se isso não estiver correto, você pode escolher na\n"
+"lista o monitor que está conectado ao seu computador.\n"
"\n"
"\n"
"\n"
"Resolução\n"
"\n"
-" Aqui pode escolher as resoluções e cores disponíveis para o seu\n"
-"material gráfico. Escolha o que melhor sirva as suas necessidades\n"
-"(poderá fazer alterações a seguir à instalação)\n"
-"Um exemplo da configuração escolhida é mostrada no ecrã.\n"
+"Aqui você pode escolher as resoluções e profundidades de cor disponíveis\n"
+"para o seu hardware gráfico. Escolha a que melhor atende às suas "
+"necessidades\n"
+"(você poderá fazer alterações após a instalação). Uma amostra da "
+"configuração\n"
+"escolhida é exibida na imagem do monitor\n"
"\n"
"\n"
"\n"
"Teste\n"
"\n"
-" Dependendo do seu material, esta entrada poderá não apareder.\n"
+" Dependendo do seu hardware, esta opção pode não aparecer.\n"
+"\n"
+" O sistema tentará abrir uma tela gráfica na resolução desejada. Se você\n"
+"ver a mensagem de teste durante o teste e responder \"%s\", então o DrakX\n"
+"prosseguirá para a próxima etapa. Se você não a ver, isso significa que "
+"alguma\n"
+"parte da configuração detecção automática estava incorreta e o teste será\n"
+"automaticamente encerrado após 12 segundos, retornando ao menu. Altere\n"
+"as configurações até obter uma exibição gráfica correta.\n"
+"\n"
"\n"
-" S sistema irá tentar abrir um ecrã gráfico na resolução escolhida.\n"
-"Se conseguir ver a mensagem teste durante o teste e responder \"%s\",\n"
-"então o DrakX irá proceder á etapa seguinte. Se não o vir, então\n"
-"significa que alguma parte da configuração auto detectada está\n"
-"incorrecta e o teste irá acabar automáticamente ao fim de 12 segundos,\n"
-"e retornará ao menu. Mude as configurações até obtenha a correcta\n"
-"disposição gráfica.\n"
"\n"
"\n"
"\n"
"Opções\n"
"\n"
-" Aqui pode escolher se deseja que o computador arranque\n"
-"automáticamente em modo gráfico. De facto, pode querer verificar\n"
-"\"%s\" se a sua máquina é um servidor, ou se não conseguir obter\n"
-"uma boa configuração de ecrã."
+" Esta etapa permite escolher se você deseja que sua máquina mude\n"
+"automaticamente para uma interface gráfica na inicialização. Obviamente,\n"
+"você pode querer marcar \"%s\" se sua máquina for atuar como um servidor\n"
+"ou se não conseguir configurar a exibição corretamente."
#: ../help.pm:291
#, c-format
@@ -704,39 +714,43 @@ msgstr ""
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -745,15 +759,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -766,74 +780,91 @@ msgid ""
"experience. For more instructions on how to use the DiskDrake utility,\n"
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
-"Agora precisa decidir onde deseja instalar o sistema operativo\n"
-"Mandriva Linux no seu disco rígido. Se o seu disco rígido estiver vazio\n"
-"ou, se um sistema operativo existente usa todo o espaço disponível,\n"
-"irá ser preciso particionar o disco. Básicamente, particionar um disco\n"
-"rígido significa dividi-lo de maneira lógica para criar o espaço\n"
-"necessário para instalar o seu novo sistema Mandriva Linux.\n"
-"\n"
-"Como os efeitos da operação de particionamento são geralmente\n"
-"irreversíveis, e pode levar a perda de dados, particionar pode ser\n"
-"intimidante para um utilizador inexperiente. Felizmente, o DrakX tem\n"
-"um assistente que simplifica o processo.Antes de avançar para o\n"
-"próximo passo lê pelo resto da secção e todo o resto, leve o tempo\n"
-"que achar necessário.\n"
-"\n"
-"Dependendo da configuração do disco rígido, várias opções\n"
-"estão disponíveis.\n"
-"\n"
-" * \"%s\". Esta opção irá automaticamente particionar o(s) disco(s)\n"
-"vazio(s). Se usar esta opção, não irão haver mais perguntas.\n"
-"\n"
-" * \"%s\". O assistente detectou uma ou mais partições Linux no disco\n"
-"rígido. Se as deseja usar, escolha esta opção. Será-lhe então pedido\n"
-"para escolher o ponto de montagem associado a cada partição. Os\n"
-"pontos habituais de montagem são seleccionados por omissão, e para\n"
-" a maioria é uma boa ideia mantê-los assim.\n"
-"\n"
-" * \"%s\". Se a Microsoft Windows é instalada no seu disco rígido e \n"
-"utiliza todo o espaço disponível, irá ter que criar espaço livre para o\n"
-"GNU/Linux. Para o fazer, pode apagar a sua partição Microsoft Windows\n"
-"e dados (ver a solução ``Apagar o disco todo'') ou redimensionar a partição\n"
-"FAT ou NTFS do Microsoft Windows. O redimensionamento pode ser feito\n"
-"sem a perda de qualquer dado, desde que previamente tenha desfragmentado\n"
-"a partição Windows. Recomenda-se que faça cópias de segurança.\n"
-"Recomenda-se que use esta opção, se quer usar os dois sistemas\n"
-"operativos, Mandriva Linux e Microsoft Windows no mesmo computador.\n"
-"\n"
-" Antes de escolher esta opção, por favor compreenda que a seguir a este\n"
-"procedimento, o tamanho da partição do seu Microsoft Windows será mais\n"
-"pequeno. Terá menos espaço livre no Microsoft Windows para gravar os\n"
-"seus dados ou instalar novo software.\n"
-"\n"
-" * \"%s\". Se deseja apagar todos os dados e todas as partições presentes\n"
-"no disco rígido e substituí-los pelo seu novo sistema Mandriva Linux,\n"
-"escolha esta opção. Seja cuidadoso, porque não será mais capaz de\n"
-"desfazer esta operação após ter confirmado.\n"
-"\n"
-" !! Se escolher esta opção, todos os dados no disco serão apagados!!\n"
-"\n"
-" * \"%s\": Esta opção aparece quando o disco rígido é inteiramente do\n"
-"sistema Microsoft Windows. Escolher esta opção irá simplesmente apagar\n"
-"tudo no disco e começar de novo a particionar tudo do princípio.\n"
-"\n"
-" !! Se escolher esta opção, todos os dados no disco vai ser perdidos. !!\n"
-"\n"
-" * \"%s\". Escolha esta opção se deseja particionar manualmente o seu\n"
-"disco rígido. Tenha cuidado -- é uma opção potente mas perigosa e pode\n"
-"muito facilmente perder todos os seus dados. É por isso que esta opção\n"
-"é apenas recomendada a alguém que já tenha feito alguma coisa parecida\n"
-"anteriormente e tenha alguma experiência. Para mais instruções em como\n"
-"usar a utilidade DiskDrake, refira-se à secção ``Gerir As Suas Partições''\n"
-"no ``Guia Inicial''."
+"Agora você precisa decidir onde deseja instalar o sistema operacional "
+"Mageia\n"
+"em seu disco rígido. Se o seu disco rígido estiver vazio ou se um sistema\n"
+"operacional existente estiver usando todo o espaço disponível, você terá "
+"que\n"
+"particionar o disco. Basicamente, particionar um disco rígido significa "
+"dividi-lo\n"
+"logicamente para criar o espaço necessário para instalar o novo sistema "
+"Mageia.\n"
+"\n"
+"Como o processo de particionamento de um disco rígido é geralmente "
+"irreversível\n"
+"e pode levar a perdas de dados, o particionamento pode ser intimidante e "
+"estressante\n"
+"para o usuário inexperiente. Felizmente, o DrakX inclui um assistente que "
+"simplifica\n"
+"esse processo. Antes de continuar com esta etapa, leia o restante desta "
+"seção e,\n"
+"acima de tudo, tome seu tempo.\n"
+"\n"
+"Dependendo da configuração do seu disco rígido, várias opções estão "
+"disponíveis:\n"
+"\n"
+" * \"%s\". Esta opção realizará um particionamento automático do(s) seu(s)\n"
+"disco(s) vazio(s). Se você usar esta opção, não haverá mais solicitações.\n"
+"\n"
+" * \"%s\". O assistente detectou uma ou mais partições Linux existentes\n"
+"em seu disco rígido. Se você quiser usá-las, escolha esta opção. Você será\n"
+"então solicitado a escolher os pontos de montagem associados a cada uma\n"
+"das partições. Os pontos de montagem legados são selecionados por padrão e,\n"
+"na maioria das vezes, é uma boa ideia mantê-los.\n"
+"\n"
+" * \"%s\". Se o Microsoft Windows estiver instalado em seu disco rígido e\n"
+"ocupar todo o espaço disponível, você terá que criar espaço livre para o\n"
+"GNU/Linux. Para fazer isso, você pode excluir a partição e os dados do\n"
+"Microsoft Windows (veja a solução ``Apagar todo o disco'') ou redimensionar\n"
+"a partição FAT ou NTFS do Microsoft Windows. O redimensionamento pode ser\n"
+"realizado sem perda de dados, desde que você tenha desfragmentado a\n"
+"partição do Windows anteriormente. É altamente recomendável fazer backup\n"
+"dos seus dados. Usar esta opção é recomendado se você deseja utilizar tanto\n"
+"o Mageia quanto o Microsoft Windows no mesmo computador.\n"
+"\n"
+" Antes de escolher esta opção, por favor, entenda que após este "
+"procedimento,\n"
+"o tamanho da sua partição do Microsoft Windows será menor do que era\n"
+"inicialmente. Você terá menos espaço livre no Microsoft Windows para "
+"armazenar\n"
+"seus dados ou para instalar novos softwares.\n"
+"\n"
+" * \"%s\". Se você deseja excluir todos os dados e todas as partições\n"
+"presentes em seu disco rígido e substituí-los pelo novo sistema Mageia,\n"
+"escolha esta opção. Tenha cuidado, pois você não poderá desfazer esta\n"
+"operação após confirmar.\n"
+"\n"
+" !! Se você escolher esta opção, todos os dados em seu disco serão "
+"excluídos. !!\n"
+"\n"
+" * \"%s\". Esta opção aparece quando o disco rígido é totalmente ocupado\n"
+"pelo Microsoft Windows. Escolher esta opção excluirá tudo no disco e "
+"começará\n"
+"do zero, particionando tudo a partir do início.\n"
+"\n"
+" !! Se você escolher esta opção, todos os dados em seu disco serão "
+"perdidos. !!\n"
+"\n"
+" * \"%s\". Escolha esta opção se você deseja particionar seu disco rígido\n"
+"manualmente. Tenha cuidado -- é uma escolha poderosa, mas perigosa, e você\n"
+"pode facilmente perder todos os seus dados. Por isso, esta opção é "
+"realmente\n"
+"recomendada apenas se você já tiver feito algo semelhante antes e tiver "
+"alguma\n"
+"experiência. Para mais instruções sobre como usar a ferramenta DiskDrake,\n"
+"consulte a seção Gerenciando Suas Partições'' no Guia do Iniciante''."
#: ../help.pm:377
#, c-format
msgid "Use existing partition"
msgstr "Usar partição existente"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr "Usar o espaço livre da partição Microsoft Windows®"
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Apagar disco inteiro"
@@ -915,7 +946,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Gerar disquete auto-instal"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr "Replay"
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr "Automático"
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr "Salvar a seleção de pacotes"
+
+#: ../help.pm:408
#, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -935,37 +981,39 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
msgstr ""
-"Se escolher usar algumas partições GNU/Linux, pode querer formatar\n"
-"algumas delas e apagar os dados nelas contidos. Para o fazer, por favor\n"
-"escolha essas partições.\n"
+"Se você optou por reutilizar algumas partições GNU/Linux legadas, pode\n"
+"ser necessário reformatar algumas delas e apagar qualquer dado que\n"
+"contenham. Para fazer isso, selecione essas partições também.\n"
"\n"
-"Por favor note que não é necessário formatar todas a partições já\n"
-"existentes. Tem que formatar as partições que tenham sistemas\n"
-"operativos (tais como \"/\", \"/usr\" ou \"/var\") mas não tem que\n"
-"formatar partições que contenham dados que deseja manter\n"
-"(tipicamente \"/home\").\n"
+"Por favor, observe que não é necessário reformatar todas as partições\n"
+"existentes. Você deve reformatar as partições que contêm o sistema "
+"operacional\n"
+"(como \"/\", \"/usr\" ou \"/var\"), mas não é necessário reformatar as "
+"partições que\n"
+"contêm dados que você deseja manter (tipicamente \"/home\").\n"
"\n"
-"Por favor tenha atenção quando seleccionar as partições. A seguir à\n"
-"formatação estar completa, todos os dados nas partições seleccionadas\n"
-"serão perdidos e não será capaz de os recuperar.\n"
+"Tenha cuidado ao selecionar partições. Após a formatação ser concluída,\n"
+"todos os dados nas partições selecionadas serão excluídos e não será "
+"possível\n"
+"recuperá-los.\n"
"\n"
-"Clique em \"%s\" quando estiver pronto para formatar as partições.\n"
+"Clique em \"%s\" quando estiver pronto para formatar as partições\n"
"\n"
-"Clique em \"%s\" se deseja escolher outra partição para o seu novo\n"
-"sistema operativo Mandriva Linux.\n"
+"Clique em \"%s\" se desejar escolher outra partição para a nova instalação\n"
+"do sistema operacional Mageia.\n"
"\n"
-"Clique em \"%s\" se deseja escolher partições para verificar se\n"
-"fisicamente há blocos defeituosos (\"bad blocks\") no disco."
+"Clique em \"%s\" se desejar selecionar partições que serão verificadas\n"
+"quanto a blocos defeituosos no disco."
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -977,19 +1025,18 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"No momento que instala o Mandriva Linux, é quase certo que alguns\n"
-"pacotes terão sido actualizados desde a distribuição inicial. Alguns\n"
-"erros podem ter sido corrigidos, e problemas de segurança resolvidos.\n"
-"Para lhe permitir beneficiar destas actualizações, está agora apto\n"
-"a fazer a transferi-las da Internet. Escolha \"%s\" se tem uma\n"
-"conexão Internet activa, ou \"%s\" se preferir instalar os\n"
-"pacotes actualizados mais tarde.\n"
-"\n"
-"Ao escolher \"%s\" mostra uma lista das localizações web de onde as\n"
-"actualizações podem ser transferidas. Deve escolher a que estiver\n"
-"mais perto de si. Irá aparecer uma selecção de pacotes em árvore:\n"
-"reveja a selecção, e clique em \"%s\" para transferir e instalar os\n"
-"pacotes seleccionados, ou clique em \"%s\" para abortar."
+"Ao instalar o Mageia, é provável que alguns pacotes tenham sido\n"
+"atualizados desde o lançamento inicial. Bugs podem ter sido corrigidos,\n"
+"questões de segurança resolvidas. Para permitir que você se beneficie\n"
+"dessas atualizações, agora você pode baixá-las da Internet. Marque \"%s\"\n"
+" se você tiver uma conexão com a Internet funcionando, ou \"%s\" se\n"
+"preferir instalar pacotes atualizados mais tarde.\n"
+"\n"
+"Escolher \"%s\" exibirá uma lista de locais na web dos quais as "
+"atualizações\n"
+"podem ser recuperadas. Você deve escolher um próximo a você. Uma árvore\n"
+"de seleção de pacotes aparecerá: revise a seleção e pressione \"%s\"para\n"
+"recuperar e instalar os pacotes selecionados, ou \"%s\" para abortar."
#: ../help.pm:450
#, c-format
@@ -1001,25 +1048,25 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
"security. Security messages will be sent to that address."
msgstr ""
-"Nesta fase, o DrakX irá permitir-lhe escolher o nível de segurança desejado\n"
-"para a sua máquina. Como regra de ouro, o nível de segurança deve ser maior\n"
-"quando a máquina contém informação crucial, ou quando está directamente\n"
-"exposta à internet. Porém, um nível de segurança superior, geralmente é\n"
-"obtido á custa de menos facilidade de uso/manuseamento.\n"
-"\n"
-"Se não sabe o que escolher, deixe o valor predefinido. Poderá alterá-lo\n"
-"mais tarde com a ferramenta draksec, que faz parte do Centro de Controlo\n"
-"Mandriva Linux.\n"
-"\n"
-"Preencha o campo \"%s\" com o endereço de correio electrónico da pessoa\n"
-"responsável pela segurança. As mensagens de segurança serão enviadas\n"
-"para esse endereço."
+"Neste ponto, o DrakX permitirá que você escolha o nível de segurança\n"
+"desejado para sua máquina. Como regra geral, o nível de segurança deve ser\n"
+"definido mais alto se a máquina contiver dados cruciais ou se estiver "
+"diretamente\n"
+"exposta à Internet. O compromisso é que um nível de segurança mais alto\n"
+"geralmente é obtido à custa da facilidade de uso.\n"
+"\n"
+"Se você não souber o que escolher, mantenha a opção padrão. Você poderá\n"
+"alterá-la posteriormente com a ferramenta draksec, que faz parte do\n"
+"Centro de Controle do Mageia.\n"
+"\n"
+"Preencha o campo \"%s\" com o endereço de e-mail da pessoa responsável\n"
+"pela segurança. Mensagens de segurança serão enviadas para esse endereço."
#: ../help.pm:461
#, c-format
@@ -1030,21 +1077,24 @@ msgstr "Administrador de Segurança"
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1060,21 +1110,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1091,94 +1143,115 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-"Neste fase, precisa escolher que partições vão ser utilizadas para a\n"
-"instalação do seu sistema Mandriva Linux. Se já foram definidas partições,\n"
-"seja por uma instalação anterior do GNU/Linux seja por outra ferramenta de\n"
-"particionamento, pode utilizar-las . Senão, precisa definir partições no\n"
-"disco rígido.\n"
-"\n"
-"Para criar partições, tem primeiro que escolher um disco rígido. Pode\n"
-"escolher o disco que quer particionar clicando em ``hda'' para o primeiro\n"
-"disco IDE, ``hdb'' para o segundo, ``sda'' para o primeiro disco SCSI e\n"
-"por aí adiante.\n"
+"Neste ponto, você precisa escolher quais partições serão usadas para a\n"
+"instalação do seu sistema Mageia. Se as partições já foram definidas, seja\n"
+"a partir de uma instalação anterior do GNU/Linux ou por outra ferramenta\n"
+"de particionamento, você pode usar as partições existentes. Caso contrário,\n"
+"as partições do disco rígido devem ser definidas.\n"
"\n"
-"Para particionar o disco selecionado, pode usar estas opções:\n"
+"Para criar partições, você deve primeiro selecionar um disco rígido. Você\n"
+"pode selecionar o disco para particionamento clicando em ``hda'' para o\n"
+"primeiro disco IDE, ``hdb'' para o segundo, ``sda'' para o primeiro disco "
+"SCSI\n"
+"e assim por diante.\n"
"\n"
-" * \"%s\": esta opção apaga todas as partições do disco seleccionado\n"
+"Para particionar o disco rígido selecionado, você pode usar estas opções:\n"
"\n"
-" * \"%s\": esta opção permite criar automaticamente partições\n"
-"ext3 e partições swap no espaço livre do seu disco\n"
+" * \"%s\": esta opção exclui todas as partições no disco rígido selecionado\n"
"\n"
-"\"%s\": dá acesso para opções adicionais:\n"
+" * \"%s\": esta opção permite criar automaticamente partições ext4 e swap\n"
+"no espaço livre do seu disco rígido\n"
"\n"
-" * \"%s\": grava a tabela das partições para uma disquete. Útil para\n"
-"mais tarde recuperar a tabela das partições, se necessário. É fortemente\n"
-"recomendado que execute este passo.\n"
+"\"%s\": oferece acesso a recursos adicionais:\n"
"\n"
-" * \"%s\": permite restaurar uma tabela de partições anteriormente\n"
-"gravada numa disquete;\n"
+" * \"%s\": salva a tabela de partições em um disquete. Útil para "
+"recuperação\n"
+"da tabela de partições mais tarde, se necessário. Recomenda-se fortemente\n"
+"que você realize esta etapa.\n"
"\n"
-" * \"%s\": se a sua tabela das partições está danificada, pode-a tentar\n"
-"recuperar com esta opção. Por favor esteja atento e lembre-se que isto\n"
-"nem sempre resulta.\n"
+" * \"%s\": permite restaurar uma tabela de partições previamente salva a\n"
+"partir\n"
+"de um disquete.\n"
"\n"
-" * \"%s\": apaga todas as alterações e recarrega a tabela de partições\n"
-"que estava originalmente no disco.\n"
+" * \"%s\": se a tabela de partições estiver danificada, você pode tentar "
+"recuperá-la\n"
+"usando esta opção. Por favor, tenha cuidado e lembre-se de que isso nem\n"
+"sempre\n"
+"funciona.\n"
"\n"
-" * \"%s\": desmarque esta opção para forçar os utilizadores a montar\n"
-"e desmontar manualmente as médias amoviveis como disquetes e CD-ROMs.\n"
+" * \"%s\": descarta todas as alterações e recarrega a tabela de partições "
+"que\n"
+"estava originalmente no disco rígido.\n"
"\n"
-" * \"%s\": use esta opção se deseja usar um assistente para particionar o\n"
-"disco rígido. Isto é recomendado se não tem um bom conhecimento de \n"
-"como se faz um bom particionamento do disco.\n"
+" * \"%s\": esmarcar esta opção forçará os usuários a montar e desmontar\n"
+"manualmente mídias removíveis, como disquetes e CD-ROMs.\n"
"\n"
-" * \"%s\": use esta opção para cancelar as alterações.\n"
+" * \"%s\": use esta opção se você deseja usar um assistente para particionar "
+"seu\n"
+"disco rígido. Isso é recomendado se você não tiver um bom entendimento de\n"
+"particionamento.\n"
"\n"
-" * \"%s\": permite acções suplementares nas partições (tipo, opções,\n"
-"formatar) e dá mais informações sobre o disco rígido.\n"
+" * \"%s\": use esta opção para cancelar suas alterações.\n"
+" \n"
+" * \"%s\": permite ações adicionais em partições (tipo, opções, formato)\n"
+"e fornece mais informações sobre o disco rígido.\n"
"\n"
-" * \"%s\": quando tiver acabado de particionar o seu disco rígido, isto irá\n"
-"gravar as suas alterações no disco.\n"
+" * \"%s\": quando você terminar de particionar seu disco rígido, isso "
+"salvará\n"
+"suas alterações no disco.\n"
"\n"
-"Quando a definir o tamanho de uma partição, pode finalmente configurar\n"
-"o tamanho usando as teclas de setas do seu teclado.\n"
+"Ao definir o tamanho de uma partição, você pode ajustar o tamanho da\n"
+"partição com precisão usando as teclas de seta do teclado.\n"
"\n"
-"Nota: pode chegar a qualquer opção usando o teclado. Navegue através\n"
-"das partições usando as teclas [Tab] e as setas [Subir/Descer].\n"
+"Nota: você pode acessar qualquer opção usando o teclado. Navegue pelas\n"
+"partições usando [Tab] e as setas [Para Cima/Para Baixo].\n"
"\n"
-"Quando uma partição é selecionada, pode usar:\n"
+"Quando uma partição está selecionada, você pode usar:\n"
"\n"
-" * Ctrl-c para criar uma nova partição (quando escolhe uma partição vazia)\n"
+" * Ctrl-c para criar uma nova partição (quando uma partição vazia está\n"
+"selecionada)\n"
"\n"
-" * Ctrl-d para apagar uma partição\n"
+" * Ctrl-d para excluir uma partição\n"
"\n"
" * Ctrl-m para definir o ponto de montagem\n"
"\n"
-"Para obter mais informações acerca dos diferentes tipos de sistemas de\n"
-"ficheiros disponíveis, por favor leia o capítulo ext2FS do ``Manual de\n"
-"Referência''.\n"
-"\n"
-"Se está a instalar numa máquina PPC, irá querer criar umas pequena partição\n"
-"de arranque HFS com pelo menos 1MB, que será usada pelo carregador de\n"
-"arranque yaboot. Se optar por criar uma partição maior, tipo 50MB, pode-lhe\n"
-"ser útil para gravar um kernel e a uma imagem ramdisk para situações de\n"
-"de emergência."
+"Para obter informações sobre os diferentes tipos de sistemas de arquivos\n"
+"disponíveis, consulte o capítulo ext2FS do ``Manual de Referência''.\n"
+
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr "Salvar tabela de partições"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr "Restaurar tabela de partições"
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr "Recuperar tabela de partições"
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Automontagem dos dispositivos amovíveis"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr "Assistente"
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr "Desfazer"
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Alterna entre os modos normal/perito"
@@ -1186,65 +1259,78 @@ msgstr "Alterna entre os modos normal/perito"
#: ../help.pm:536
#, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
-"Mais do que uma partição Microsoft foi detectada no seu disco rígido.\n"
-"Por favor escolha qual deseja redimencionar para poder instalar o seu\n"
-"novo sistema operativo Mandriva Linux.\n"
+"Mais de uma partição Microsoft foi detectada no seu disco rígido. Por "
+"favor,\n"
+"escolha a que deseja redimensionar para instalar seu novo sistema "
+"operacional\n"
+"Mageia..\n"
"\n"
-"Cada partição é listada da seguinte maneira: \"Nome Linux\",\n"
-"\"Nome Windows\", \"Capacidade\".\n"
+"Cada partição é listada da seguinte forma: \"Nome do Linux\", \"Nome do "
+"Windows\",\n"
+" \"Capacidade\".\n"
"\n"
-"O \"Nome Linux\" é estruturado: \"tipo de disco rígido\",\n"
-" \"numero de disco\", \"numero da partição\" (por exemplo, \"hda1\").\n"
+"\"Nome do Linux\" é estruturado como: \"tipo de disco rígido\", \"número do "
+"disco rígido\",\n"
+"\"número da partição\" (por exemplo, \"hda1\")\n"
"\n"
-"O \"Tipo de Disco\" é \"hd\" se o disco rígido é IDE e \"sd\" se é um\n"
-"disco rígido SCSI.\n"
+"\"Tipo de disco rígido\" é \"hd\" se o seu disco rígido for IDE e \"sd\" se "
+"for SCSI.\n"
"\n"
-"O \"Numero de disco\" é sempre uma letra depois de \"hd\" ou \"sd\".\n"
-"Com os discos rígidos IDE:\n"
+"\"Número do disco rígido\" é sempre uma letra após \"hd\" ou \"sd\". Com "
+"discos\n"
+"rígidos IDE:\n"
"\n"
-" * \"a\" significa \"disco rígido master no controlador IDE principal\";\n"
+" * \"a\" significa \"disco rígido mestre no controlador IDE primário\";\n"
"\n"
-" * \"b\" significa \"disco rígido slave no controlador IDE principal\";\n"
+" * \"b\" significa \"disco rígido escravo no controlador IDE primário\";\n"
"\n"
-" * \"c\" significa \"disco rígido master no controlador IDE segundario\";\n"
+" * \"c\" significa \"disco rígido mestre no controlador IDE secundário\";\n"
"\n"
-" * \"d\" significa \"disco rígido slave no controlador IDE segundario\";\n"
+" * \"d\" significa \"disco rígido escravo no controlador IDE secundário\"..\n"
"\n"
-"Com os discos rígidos SCSI, um \"a\" significa \"SCSI ID mais baixo\",\n"
-"um \"b\" significa \"segundo SCSI ID mais baixo\", etc.\n"
+"Com discos rígidos SCSI, um \"a\" significa \"ID SCSI mais baixo\", um \"b\" "
+"significa\n"
+"\"segundo ID SCSI mais baixo\", e assim por diante.\n"
"\n"
-"O \"nome Windows\" é a letra do seu disco rígido sob Windows\n"
-"(o primeiro disco ou partição é chamado \"C:\")."
+"\"Nome do Windows\" é a letra do seu disco rígido no Windows (o primeiro "
+"disco\n"
+"ou partição é chamado de \"C:\")."
#: ../help.pm:567
#, c-format
@@ -1265,48 +1351,49 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
-"Este passo só fica disponível se uma partição GNU/Linux existente for\n"
-"encontrada na sua máquina.\n"
-"\n"
-"O DrakX agora precisa saber se deseja fazer uma nova instalação ou uma\n"
-"actualização num sistema Mandriva Linux existente:\n"
-"\n"
-" * \"%s\": Para a maior parte, isto apaga completamente o sistema antigo.\n"
-"No entanto, dependendo no seu esquema de particionamento, pode prevenir\n"
-"que parte dos seus dados existentes (principalmente os directórios \"home"
-"\")\n"
-"sejam substituídos. Se desejar alterar como o particionamento dos seus\n"
-"discos rígidos é feito, ou mudar o seu sistema de ficheiros, deve usar esta "
-"opção.\n"
-"\n"
-" * \"%s\": Este tipo de instalação permite actualizar os pacotes "
-"actualmente\n"
-"instalados no seu sistema Mandriva Linux. O seu actual esquema de\n"
-"particionamento, assim como os dados dos utilizadores não serão alterados.\n"
-"A maior parte dos outros passos da configuração permanece disponível e "
-"similar a uma instalação standard.\n"
-"\n"
-"A opção ``Actualizar'' deverá funcionar correctamente nos sistemas\n"
-"Mandriva Linux versão \"8.1\" ou superior. É desaconselhável actualizar\n"
-"versões anteriores à versão \"8.1\" do Mandriva Linux."
+"Esta etapa é ativada somente se uma partição GNU/Linux existente\n"
+"foi encontrada em sua máquina.\n"
+"\n"
+"O DrakX agora precisa saber se você deseja realizar uma nova instalação\n"
+"ou uma atualização de um sistema Mageia existente:\n"
+"\n"
+" * \"%s\". Na maior parte, isso apaga completamente o sistema antigo.\n"
+"No entanto, dependendo do seu esquema de particionamento, você pode\n"
+"evitar que alguns dos seus dados existentes (notavelmente diretórios "
+"\"home\")\n"
+"sejam sobrescritos. Se você deseja alterar a forma como seus discos rígidos\n"
+"estão particionados ou mudar o sistema de arquivos, deve usar esta opção.\n"
+"\n"
+" * \"%s\". TEsta classe de instalação permite atualizar os pacotes "
+"atualmente\n"
+"instalados em seu sistema Mageia. Seu esquema de particionamento atual e\n"
+"dados de usuário não serão alterados. A maioria das outras etapas de "
+"configuração\n"
+"permanece disponíveis e são semelhantes a uma instalação padrão.\n"
+"\n"
+"Usar a opção ``Atualizar'' deve funcionar bem em sistemas Mageia com a "
+"versão\n"
+"\"8.1\" ou posterior. Realizar uma atualização em versões anteriores à "
+"\"8.1\" do Mageia,\n"
+"não é recomendado."
#: ../help.pm:594
#, c-format
@@ -1361,8 +1448,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1388,53 +1474,64 @@ msgid ""
"by the entire system. Running the command as a regular user will only\n"
"change the language settings for that particular user."
msgstr ""
-"O primeiro passo, é escolher a sua linguagem preferida.\n"
-"\n"
-"A sua escolha da linguagem preferida irá afectar o instalador, a\n"
-"documentação, e o sistema em geral. Primeiro seleccione a região\n"
-"onde está localizado, depois a linguagem que fala.\n"
-"\n"
-"Ao clicar no botão \"%s\" irá permitir-lhe escolher outras linguagens\n"
-"para instalar na sua área de trabalho, consequentemente instalará os\n"
-"ficheiros para a documentação do sistema e aplicações referentes à\n"
-"linguagem especificada . Porexemplo, se utilizadores espanhóis estão\n"
-"para usar a sua máquina, escolha Inglês como linguagem predefinida\n"
-"na vista em árvore e \"%s\" na secção Avançada.\n"
-"\n"
-"Sobre o suporte UTF-8 (unicode): Unicode é uma codificação de caracter\n"
-"feito para cobrir todas as linguagens existentes. No entanto o seu suporte\n"
-"completo em GNU/Linux ainda está a ser desenvolvido. Por essa razão,\n"
-"o uso de UTF-8 em Mandriva Linux depende das escolhas do utilizador:\n"
-"\n"
-" * Se escolher uma linguagem com um forte legado de codificação\n"
-"(linguagens latin1, Russo, Japonês, ChinêsCoreano, Tailandês, grego, turco,\n"
-"maior parte de linguagens iso-8859-2), o legado da codificação será usado\n"
-"por omissão\n"
-"\n"
-" * Outras linguagens irão usar unicode por omissão;\n"
-"\n"
-" * Finalmente, o unicode pode também ser forçado para uso através do\n"
-"por um pedido do utilizador ao selecionar a opção \"%s\",\n"
-"independentemente como as linguagens tenham sido escolhidas.\n"
-"\n"
-"Notar que não está limitado a escolher uma única linguagem adicional.\n"
-"Pode escolher várias, ou até instala-las ao seleccionar a caixa\"%s\".\n"
-"Seleccionar suporte para uma linguagem, quer dizer traduções, fontes,\n"
-"verificadores de ortografia, etc., que será também instalados para essa\n"
-"linguagem.\n"
-"\n"
-"Para trocar entre as várias linguagens instaladas no seu sistema, pode\n"
-"correr o comando \"/usr/sbin/localedrake\" como \"root\" para mudar a\n"
-"linguagem usada por todo o sistema. Correndo o comando como utilizador\n"
-"normal , irá apenas mudar as configurações da linguagem para esse\n"
-"utilizador em particular."
+"O primeiro passo é escolher seu idioma preferido.\n"
+"\n"
+"Sua escolha de idioma preferido afetará o instalador, a documentação e o\n"
+"sistema em geral. Primeiro, selecione a região em que você está localizado\n"
+"e, em seguida, o idioma que você fala.\n"
+"\n"
+"Clicar no botão \"%s\" permitirá que você selecione outros idiomas a serem\n"
+"instalados em sua estação de trabalho, instalando assim os arquivos "
+"específicos\n"
+"para documentação do sistema e aplicativos. Por exemplo, se usuários de\n"
+"espanhol forem usar sua máquina, selecione o inglês como idioma padrão na\n"
+"visualização em árvore e \"%s\" na seção Avançado.\n"
+"\n"
+"Sobre o suporte a UTF-8 (unicode): Unicode é uma nova codificação de "
+"caracteres\n"
+"destinada a cobrir todos os idiomas existentes. No entanto, o suporte "
+"completo a\n"
+"ela no GNU/Linux ainda está em desenvolvimento. Por essa razão, o uso de "
+"UTF-8\n"
+"no Mageia dependerá das escolhas do usuário:\n"
+"\n"
+" * Se você escolher um idioma com uma codificação legada forte (idiomas "
+"latin1,\n"
+"russo, japonês, chinês, coreano, tailandês, grego, turco, a maioria dos "
+"idiomas\n"
+"iso-8859-2), a codificação legada será usada por padrão;\n"
+"\n"
+" * Outros idiomas usarão unicode por padrão;\n"
+"\n"
+" * Se forem necessários dois ou mais idiomas, e esses idiomas não usarem\n"
+"a mesma codificação, então unicode será usado para todo o sistema;\n"
+"\n"
+" * Finalmente, o unicode também pode ser forçado para uso em todo o\n"
+"sistema a pedido do usuário, selecionando a opção \"%s\" independentemente\n"
+"dos idiomas escolhidos.\n"
+"\n"
+"Observe que você não está limitado a escolher um único idioma adicional.\n"
+"Você pode escolher vários ou até mesmo instalá-los todos selecionando a\n"
+"caixa \"%s\". Selecionar o suporte para um idioma significa que traduções,\n"
+"fontes, corretores ortográficos, etc., também serão instalados para esse "
+"idioma.\n"
+"\n"
+"Para alternar entre os vários idiomas instalados em seu sistema, você pode\n"
+"executar o comando \"localedrake\" como \"root\" para mudar o idioma usado\n"
+"por todo o sistema. Executar o comando como um usuário regular alterará\n"
+"apenas as configurações de idioma para esse usuário específico."
#: ../help.pm:650
#, c-format
msgid "Espanol"
msgstr "Espanhol"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr "Usar Unicode por padrão"
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1521,88 +1618,7 @@ msgstr ""
"Por favor escolha a porta correcta. Por exemplo, em Windows é \"COM1\",\n"
"em GNU/Linux já é \"ttyS0\"."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Este é o ponto mais crucial de decisão para a segurança do seu sistema\n"
-"GNU/Linux: deve escolher a senha do \"root\". O \"root\" é o administrador\n"
-"do sistema e é o único utilizador autorizado para fazer actualizações,\n"
-"adicionar utilizadores, mudar a configuração global do sistema, e por aí a\n"
-" fora. Em poucas palavras, o \"root\" pode fazer tudo! É por isso que deve\n"
-"escolher uma senha que seja difícil de adivinhar: o DrakX irá-lhe dizer se\n"
-"a senha que escolheu é muito simples. Como pode ver, não é obrigado a\n"
-"digitar uma senha, mas aconselhamos vivamente a não o fazer.O GNU/Linux\n"
-"é tão propenso ao erro do operador como qualquer outro sistema operativo.\n"
-"Já que o \"root\" pode ultrapassar todas as limitações e involuntariamente\n"
-"apagar todos os dados nas partições ao aceder descuidadamente a estas,\n"
-"é muito importante que haja dificuldades em aceder/tornar-se \"root\".\n"
-"\n"
-"A senha deve ser uma mistura de caracteres alfa numéricos e com pelos\n"
-"menos 8 caracteres de comprimento.Nunca aponte a senha do \"root\" --\n"
-"torna demasiado fácil comprometer o seu sistema.\n"
-"\n"
-"Uma advertência: não faça a senha demasiado longa ou muito complicada\n"
-"para que seja capaz de se lembrar dela.\n"
-"\n"
-"A senha não vai ser mostrada no ecrã à medida que a escreve. Para reduzir\n"
-"a hipótese de ser mal digitado, é necessário que a senha seja digitada duas\n"
-"vezes. Se lhe acontecer o mesmo erro duas vezes, aí terá que usar essa\n"
-"senha ``incorrecta'' na primeira vez que tentar ligar-se como \"root\".\n"
-"\n"
-"Se deseja um servidor de autenticação para controlar o acesso ao seu\n"
-"computador, clique em \"%s\".\n"
-"\n"
-"Se a sua rede usa seja LDAP, NIS ou a autenticação de serviços para um\n"
-"domínio PDC Windows, seleccione o apropriado para \"%s\".\n"
-"Se não sabe qual usar, deve perguntar ao administrador da sua rede.\n"
-"\n"
-"Se lhe acontecer ter problemas em relembrar senhas, ou se o seu\n"
-"computador nunca for conectado à Internet, se confia em toda a gente que\n"
-"usa o seu computador, aí pode escolher em ter \"%s\"."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "Autenticação"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1616,7 +1632,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1644,7 +1660,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1665,40 +1681,50 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
-"Agora, é tempo de escolher o sistema de impressão para o seu computador.\n"
-"Outros sistemas operativos podem oferecer um, mas o Mandriva Linux\n"
-"oferece dois. Cada um dos sistemas de impressão é bem servido para tipos\n"
-"particulares de configuração.\n"
-"\n"
-".*.\"%s\" -- que é um anacronismo para ``imprimir, não meter em fila'',\n"
-"é a escolha se tem uma conexão directa à sua impressora e deseja poder\n"
-"parar tudo nos erros de impressão, e não tem impressoras em rede.\n"
-"(\"%s\" só irá gerir os casos mais simples de rede e é algo lento quando\n"
-"usado em redes). Recomenda-se que use \"lpd\" se é a sua primeira\n"
-"experiência com GNU/Linux.\n"
-"\n"
-".*.\"%s\" -- O `` Sistema de Impressão Comum Unix'', é excelente para\n"
-"imprimir para a sua impressora local e também para o outro lado do\n"
-"mundo. É simples e pode agir como servidor ou cliente para o antigo\n"
-"sistema de impressão \"lpd\". Portanto, é compatível com os sistemas\n"
-"anteriores. Pode fazer muitas coisas, mas a configuração de base é\n"
-"quase tão simples como \"lpd\". Se precisa dele para emular um\n"
-"servidor \"lpd\", tem que activar o servidor \"cups-lpd\". \"%s\" tem\n"
-"interfaces gráficos para imprimir ou escolher as opções de impressão.\n"
-"\n"
-"Poderá mudar a sua escolha de sistema após a instalação correndo o\n"
-"PrinterDrake a partir do Centro de Controlo Mandriva Linux e clicando\n"
-"no botão \"%s\"."
+"Agora é hora de selecionar um sistema de impressão para o seu\n"
+"computador. Outros sistemas operacionais podem oferecer apenas\n"
+"um, mas o Mageia oferece dois. Cada um dos sistemas de impressão\n"
+"é mais adequado para determinados tipos de configuração.\n"
+"\n"
+" * \"%s\" -- que é uma sigla para \"print, do not queue\" (imprimir, não\n"
+"enfileirar), é a escolha ideal se você tiver uma conexão direta com sua\n"
+"impressora, quiser poder agir rapidamente em caso de atolamento de\n"
+"papel, e não tiver impressoras em rede. (\"%s\" lida apenas com casos\n"
+" muito simples de rede e é um pouco lento quando usado em redes).\n"
+"Recomenda-se o uso de \"pdq\" se esta for sua primeira experiência com\n"
+"GNU/Linux.\n"
+"\n"
+" * \"%s\" representa o \"Common Unix Printing System\" (Sistema Comum de\n"
+"Impressão Unix) e é uma excelente escolha para imprimir na sua impressora\n"
+"local ou em uma localizada do outro lado do planeta. É simples de "
+"configurar\n"
+"e pode atuar como servidor ou cliente para o antigo sistema de impressão\n"
+"\"lpd\", sendo compatível com sistemas operacionais mais antigos que ainda\n"
+"possam precisar de serviços de impressão. Embora bastante poderoso, a\n"
+"configuração básica é quase tão fácil quanto \"pdq\". Se você precisar "
+"emular\n"
+"um servidor \"lpd\", certifique-se de ativar o daemon \"cups-lpd\".\n"
+"\"%s\" inclui interfaces gráficas para impressão ou escolha de opções de\n"
+"impressora e para gerenciamento da impressora.\n"
+"\n"
+"Se você fizer uma escolha agora e depois perceber que não gosta do sistema\n"
+"de impressão escolhido, você pode alterá-lo executando o PrinterDrake no\n"
+"Centro de Controle do Mageia e clicando no botão \"%s\"."
#: ../help.pm:768
#, c-format
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr "CUPS"
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Perito"
@@ -1711,7 +1737,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1778,11 +1804,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1800,8 +1821,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1818,80 +1838,83 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-"Em revisão, o DrakX irá apresentar um sumário que junta a informação\n"
-"recolhida sobre o seu sistema. Dependendo do material instalado na sua\n"
-" máquina, poderá ter uma ou todas das seguintes entradas.\n"
-"Cada entrada é feita sobre o item de material para ser configurado,\n"
-"seguido de um rápido sumário da corrente configuração.\n"
-"Clica no botão correspondente \"%s\" para fazer as alterações.\n"
-"\n"
-" * \"%s\": verifique a configuração actual do mapa do teclado corrente\n"
-"e mude-a se necessário.\n"
-"\n"
-" * \"%s\": verifique a selecção de país actual. Se não estiver neste país,\n"
-"clique no botão \"%s\" e escolha outro. Se o seu país não aparecer na lista\n"
-"mostrada, clica no botão \"%s\" para obter a lista completa de países.\n"
-"\n"
-" * \"%s\": por omissão, o DrakX escolhe o fuso horário do país\n"
-"escolhido. Pode clicar no botão \"%s\" se esta não é a opção correcta.\n"
-"\n"
-" * \"%s\": verifique a actual configuração do rato e clique no botão para\n"
-"mudar se necessário.\n"
-"\n"
-" * \"%s\": clique no botão \"%s\" para abrir o assistente de configuração\n"
-"de impressoras. Consulte o capítulo correspondente do ``Guia do "
-"Utilizador'',\n"
-"para mais informação sobre como configurar uma nova impressora.\n"
-"O interface apresentado no nosso manual, é similar ao usado na instalação.\n"
-"\n"
-" * \"%s\": se uma placa de som for detectada no seu sistema,será mostrada\n"
-"aqui. SE notar que a placa de som não é actualmente presente no seu\n"
-"sistema, pode clicar no botão para escolher um controlador diferente.\n"
-"\n"
-" * \"%s\": se tem uma placa de TV, é aqui que a informação acerca da\n"
-"configuração é mostrada, Se tem uma placa de TV e não é detectada,\n"
-"clique em \"%s\" para a tentar configurar manualmente.\n"
-"\n"
-" * \"%s\": pode clicar em \"%s\" para mudar os parâmetros associados\n"
-"com a placa se acha que a configuração está errada.\n"
-"\n"
-" * \"%s\": por omissão, o DrakX configura o seu interface gráfico nas\n"
-"resoluções \"800x600\" ou \"1024x768\". Se isso não lhe serve, pode\n"
-"clicar em \"%s\" para configurar o seu interface gráfico.\n"
-"\n"
-" * \"%s\": se deseja configurar a sua Internet ou acesso de rede local\n"
-"pode fazê-lo. Refira-se a documentação impressa ou use o Centro de\n"
-"Controlo do Mandriva Linux a seguir a instalação ter terminado de\n"
-"beneficiar da ajuda incluída.\n"
-"\n"
-" * \"%s\": permite-lhe configurar endereços HTTP e FTP proxy se a máquina\n"
-"onde está a instalar é para ser localizada atrás de um servidor proxy.\n"
-"\n"
-" * \"%s\": esta entrada permite-lhe redefinir o nível de segurança como\n"
-"configurado num passo anterior.\n"
-"\n"
-" * \"%s\": se planeia ligar a sua máquina à Internet, é uma boa ideia\n"
-"proteger-se de intrusões ao configurar uma firewall. Consultar secção\n"
-"correspondente do ``Guia de Utilizador'' para detalhes acerca de como\n"
-"configurar uma firewall.\n"
-"\n"
-" * \"%s\": se deseja mudar a configuração do carregador de arranque,\n"
-"clique nesse botão. Isto deveria ser reservado aos utilizadores\n"
-"avançados.Referira-se à documentação impressa, ou à linha de ajuda\n"
-"sobre a configuração de carregador de arranque (bootloader) no\n"
-"Centro de Controlo Mandriva Linux.\n"
-"\n"
-" * \"%s\": através desta entrada pode ajustar quais os serviços que serão\n"
-"executados na sua máquina. Se planeia configurar esta máquina como\n"
-"um servidor, é uma boa ideia rever a configuração."
+"Como revisão, o DrakX apresentará um resumo das informações que ele\n"
+"coletou sobre o seu sistema. Dependendo do hardware instalado na sua\n"
+"máquina, você poderá ver algumas ou todas as seguintes entradas. Cada\n"
+"entrada é composta pelo item de hardware a ser configurado, seguido por\n"
+"um breve resumo da configuração atual. Clique no botão \"%s\"\n"
+"correspondente para fazer a alteração.\n"
+"\n"
+" * \"%s\": verificar a configuração atual do mapa de teclado e altere-a se\n"
+"necessário.\n"
+"\n"
+" * \"%s\": verifique a seleção atual do país. Se você não estiver neste "
+"país,\n"
+"clique no botão \"%s\" e escolha outro. Se o seu país não estiver na lista\n"
+"exibida, clique no botão \"%s\" para obter a lista completa de países.\n"
+"\n"
+" * \"%s\": padrão, o DrakX deduz seu fuso horário com base no país "
+"escolhido.\n"
+"Você pode clicar no botão \"%s\" aqui se isso não estiver correto\n"
+"\n"
+" * \"%s\": verificar configuração atual do mouse e clique no botão para\n"
+"alterá-la se necessário.\n"
+"\n"
+" * \"%s\": se uma placa de som for detectada no seu sistema, ela será "
+"exibida\n"
+"aqui. Se você notar que a placa de som não é a que está presente no seu\n"
+"sistema, você pode clicar no botão e escolher um driver diferente.\n"
+"\n"
+" * \"%s\": se você tiver uma placa de TV, é aqui que as informações sobre a\n"
+"sua configuração serão exibidas. Se você tiver uma placa de TV e ela não "
+"for\n"
+"detectada, clique em \"%s\" para tentar configurá-la manualmente.\n"
+"\n"
+" * \"%s\": você pode clicar em \"%s\" para alterar os parâmetros associados "
+"à\n"
+"placa se achar que a configuração está errada..\n"
+"\n"
+" * \"%s\": por padrão, o DrakX configura sua interface gráfica em resolução\n"
+"\"800x600\" ou \"1024x768\". Se isso não for adequado para você, clique\n"
+"em \"%s\" para reconfigurar sua interface gráfica.\n"
+"\n"
+" * \"%s\": se desejar configurar seu acesso à Internet ou rede local, você\n"
+"pode fazê-lo agora. Consulte a documentação impressa ou use o Centro\n"
+"de Controle do Mageia após a instalação ter sido concluída para aproveitar\n"
+"a ajuda completa em linha.\n"
+"\n"
+" * \"%s\": permite configurar endereços de proxy HTTP e FTP se a máquina\n"
+"em que você está instalando estiver atrás de um servidor proxy.\n"
+" * \"%s\": esta entrada permite redefinir o nível de segurança configurado\n"
+"em uma etapa anterior .\n"
+"\n"
+" * \"%s\": se você planeja conectar sua máquina à Internet, é uma boa ideia\n"
+"se proteger contra intrusões configurando um firewall. Consulte a seção\n"
+"correspondente do ``Guia de Introdução'' para obter detalhes sobre as\n"
+"configurações de firewall.\n"
+"\n"
+" * \"%s\": se desejar alterar a configuração do carregador de "
+"inicialização,\n"
+"clique neste botão. Isso deve ser reservado para usuários avançados.\n"
+"Consulte a documentação impressa ou a ajuda em linha sobre a configuração\n"
+"do carregador de inicialização no Centro de Controle do Mageia.\n"
+"\n"
+" * \"%s\": através desta entrada, você pode ajustar quais serviços serão\n"
+"executados na sua máquina. Se planeja usar esta máquina como um servidor,\n"
+"é uma boa ideia revisar essa configuração."
-#: ../help.pm:858
+#: ../help.pm:809
+#, c-format
+msgid "TV card"
+msgstr "Placa de TV"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "Placa ISDN"
@@ -1904,24 +1927,27 @@ msgstr "Interface gráfico"
#: ../help.pm:861
#, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
-"Escolha o disco que deseja apagar para instalar a sua nova partição\n"
-"Mandriva Linux. Tenha cuidado, todos os ficheiros no disco serão\n"
-"perdidos de forma irrecuperável!"
+"Escolha o disco rígido que você deseja apagar para instalar sua nova "
+"partição\n"
+"do Mageia. Cuidado, todos os dados neste disco serão perdidos e não poderão\n"
+"ser recuperados!"
#: ../help.pm:866
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Clique em \"%s\" se deseja apagar todos os dados e partições\n"
"presentes neste disco rígido.Tenha cuidado, depois de clicar em \"%s\",\n"
@@ -1940,4 +1966,3 @@ msgstr "Próximo ->"
#, c-format
msgid "<- Previous"
msgstr "<- Anterior"
-
diff --git a/perl-install/install/help/po/pt_BR.po b/perl-install/install/help/po/pt_BR.po
index 0f8bca67e..4f0a4a43a 100644
--- a/perl-install/install/help/po/pt_BR.po
+++ b/perl-install/install/help/po/pt_BR.po
@@ -1,46 +1,40 @@
-# translation of pt_BR.po to
-# translation of pt_BR.po to Brazilian Portuguese
-# translation of DrakX-pt_BR.po to Brazilian Portuguese
-# tradução de DrakX-pt_BR.po para Português do Brasil
-# DRAKX PT_BR PO FILE
-# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
-# Lisiane Sztoltz Teixeira <lisiane@mandriva.com>
-# Andrei Bosco Bezerra Torres <andrei_bosco@yahoo.com.br>, 2000, 2003.
-# Bruno Dorfman Buys <brunobuys@zipmail.com.br>, 2002.
-# Tiago da Cruz Bezerra <tiagocruz18@uol.com.br>,2002 2003, 2004.
-# Ricardo de Castilho <cast_brasil@ig.com.br>, 2003.
-# Carlinhos Cecconi <carlinux@terra.com.br>, 2003, 2004.
-# Deivi Lopes Kuhn <deivikuhn@yahoo.com.br>, 2003, 2004.
-# Cristiano Otto Von Trompczynski <cris@mandriva.com>, 2005.
-# Arthur R. Mello <renato@conectiva.com.br>, 2005.
-# Arthur Renato Mello <renato@conectiva.com.br>, 2005.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
+# Translators:
+# Yuri Chornoivan <yurchor@ukr.net>, 2024
+# Michael Martins, 2025
+#
+#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: pt_BR\n"
+"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
-"PO-Revision-Date: 2005-10-24 08:51-0200\n"
-"Last-Translator: Arthur Renato Mello <renato@conectiva.com.br>\n"
-"Language-Team: <pt@li.org>\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
+"PO-Revision-Date: 2024-09-04 17:33+0000\n"
+"Last-Translator: Michael Martins, 2025\n"
+"Language-Team: Portuguese (Brazil) (https://app.transifex.com/MageiaLinux/"
+"teams/9361/pt_BR/)\n"
+"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.10.2\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % "
+"1000000 == 0 ? 1 : 2;\n"
#: ../help.pm:14
#, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
-"Antes de continuar, você deve ler com atenção os termos da licença. Ela \n"
-"cobre a distribuição Mandriva Linux inteira. Se você concorda com todos os "
-"termos,\n"
-"clique em \"%s\". Se não concordar, clique no botão \"%s\"\n"
+"Antes de continuar, você deve ler atentamente os termos da licença. Ela\n"
+"cobre toda a distribuição Mageia. Se você concordar com todos os\n"
+"termos, marque a caixa \"%s\". Caso contrário, clique no botão \"%s\"\n"
"para reiniciar seu computador."
#: ../help.pm:20
@@ -83,61 +77,70 @@ msgid ""
"security), choose the desired user and window manager, then click on\n"
"\"%s\". If you're not interested in this feature, uncheck the \"%s\" box."
msgstr ""
-"GNU/Linux é um sistema multiusuário, e isto significa que cada usuário pode\n"
-"ter suas próprias preferências, seus próprios arquivos, e assim por diante. "
-"Mas,\n"
-"ao contrário do \"root\", que é o administrador do sistema, os usuários\n"
-"adicionados aqui não terão direito de modificar nada, a não ser seus\n"
-"próprios arquivos e suas próprias configurações, protegendo o sistema \n"
-"contra mudanças involuntárias ou maliciosas, que poderiam impactar no "
-"sistema como um todo. Você deverá criar ao menos uma\n"
-"conta regular para você mesmo - esta é a conta que você deverá usar no seu\n"
-"dia-a-dia. Embora seja muito prático acessar o sistema como \"root\" para "
-"fazer tudo,\n"
-"também pode ser muito perigoso! O menor engano pode fazer com que seu\n"
-"sistema não funcione mais. Como usuário regular, mesmo cometendo um erro\n"
-"sério, o pior que pode acontecer é você perder informação, mas não o "
-"sistema\n"
-"inteiro.\n"
-"\n"
-"Primeiro, você deve digitar o seu nome real. Isto não é obrigatório, é "
-"claro,\n"
-"pois você pode digitar, na verdade, o que você quiser.\n"
-"O DrakX pegará a primeira palavra que você digitou na caixa e colocará\n"
-"no campo \"%s\". Este é o nome que esse usuário específico utilizará para "
-"acessar o sistema. Você pode mudá-lo, caso queira. Depois você deverá\n"
-"digitar uma senha. Uma senha de usuário não-privilegiado (regular) não é "
-"tão\n"
-"crucial quanto a de \"root\", do ponto de vista da segurança. Mas isto não "
-"é\n"
-"razão para negligenciar esta senha, deixando-a em branco ou escolhendo uma\n"
-"muito simples: mais tarde, seus arquivos poderão correr sérios riscos.\n"
-"\n"
-"Clicando em \"%s\" você poderá adicionar outros usuários. Adicione um\n"
-"usuário para cada um dos seus amigos: seu pai ou sua irmã, por exemplo.\n"
-"Depois que terminar de adicionar os usuários, clique em \"%s\".\n"
-"\n"
-"Clicando no botão \"%s\" você poderá mudar o \"shell\" padrão do usuário\n"
-"(o padrão é o bash).\n"
-"\n"
-"Quando você terminar de adicionar usuários, você poderá escolher um usuário\n"
-"para que ele acesse automaticamente o sistema quando o computador for "
-"iniciado.\n"
-"Caso você esteja interessado neste recurso (e não precisar de muita\n"
-"segurança local), escolha o usuário e o gerenciador de janelas,\n"
-"e então clique em \"%s\". Se não estiver interessado neste recurso, "
+"GNU/Linux é um sistema multiusuário, o que significa que cada usuário pode\n"
+"ter suas próprias preferências, seus próprios arquivos, e assim por diante.\n"
+"Mas, ao contrário do \"root\", que é o administrador do sistema, os "
+"usuários\n"
+"que você adicionar neste ponto não terão autorização para alterar nada além\n"
+"de seus próprios arquivos e configurações, protegendo o sistema de mudanças\n"
+"não intencionais ou maliciosas que podem afetar o sistema como um todo.\n"
+"Você precisa criar pelo menos um usuário comum para você mesmo -- essa\n"
+"é a conta que deve ser usada no dia a dia. Embora seja muito\n"
+"fácil entrar como \"root\" para fazer qualquer coisa, isso pode ser muito "
+"perigoso!\n"
+"Um erro simples pode fazer com que seu sistema não funcione mais. Se você\n"
+"cometer um erro sério como usuário comum, o pior que pode acontecer é\n"
+"perder algumas informações, mas não afetará todo o sistema.\n"
+"\n"
+"O primeiro campo pede um nome verdadeiro. Claro, isso não é obrigatório\n"
+"-- você pode realmente digitar o que quiser. O DrakX usa a primeira\n"
+"palavra que você digitar neste campo e a copia para o campo \"%s\",\n"
+"que é o nome que esse usuário usará para fazer login no sistema.\n"
+"Se quiser, você pode substituir o padrão e alterar o nome do usuário.\n"
+"O próximo passo é inserir uma senha. Do ponto de vista de segurança,\n"
+"a senha de um usuário não privilegiado (comum) não é tão crucial quanto\n"
+"a senha do \"root\", mas isso não é motivo para negligenciá-la, deixando\n"
+"em branco ou muito simples: afinal, seus arquivos podem estar em risco.\n"
+"\n"
+"Depois de clicar em \"%s\", você pode adicionar outros usuários. Adicione "
+"um\n"
+"usuário para cada um de seus amigos, seu pai, sua irmã, etc. Clique em "
+"\"%s\"\n"
+"quando terminar de adicionar.\n"
+"\n"
+"Clique no botão \"%s\" para alterar o \"shell\" padrão para esse\n"
+"usuário (bash por padrão).\n"
+"\n"
+"Quando terminar de adicionar os usuários, você será solicitado a escolher "
+"um\n"
+"usuário que será conectado automaticamente ao sistema quando o computador\n"
+"inicializar. Se estiver interessado nesse recurso (e não se importa muito "
+"com a\n"
+"segurança local), escolha o usuário e o gerenciador de janelas desejados, e\n"
+"depois clique em \"%s\". Se não estiver interessado nesse recurso, "
"desmarque\n"
-"a opção \"%s\""
+"a caixa \"%s\"."
+
+#: ../help.pm:54
+#, c-format
+msgid "User name"
+msgstr "Nome de usuário"
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr "Aceitar usuário"
#: ../help.pm:54
#, c-format
msgid "Do you want to use this feature?"
-msgstr "Você quer usar este recurso?"
+msgstr "Deseja usar esta funcionalidade?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -147,87 +150,88 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
-"Aqui estão listadas as partições Linux detectadas no seu disco rígido.\n"
-"Você pode manter as opções feitas pelo assistente, elas são\n"
-"boas para o uso diário. Se você quiser alterar estas opções, você deve ao\n"
-"menos definir uma partição (\"/\"). Não escolha uma partição muito pequena\n"
-"ou você não será capaz de instalar todos os softwares desejados. Se você\n"
-"quiser guardar seus dados em uma partição separada, você precisa escolher\n"
-"uma partição \"/home\" (apenas possível se você tiver mais de \n"
-"uma partição Linux disponível).\n"
+"Aqui estão listadas as partições Linux detectadas em seu disco rígido.\n"
+"Você pode manter as escolhas feitas pelo assistente, pois elas são\n"
+"adequadas para a maioria das instalações comuns. Se fizer alterações,\n"
+"você deve pelo menos definir uma partição raiz (\"/\"). Não escolha uma "
+"partição\n"
+"muito pequena ou você não conseguirá instalar software suficiente. Se\n"
+"quiser armazenar seus dados em uma partição separada, também será\n"
+"necessário criar uma partição \"/home\" (o que só é possível se tiver mais\n"
+"de uma partição Linux disponível).\n"
"\n"
"Cada partição é listada da seguinte forma: \"Nome\", \"Capacidade\".\n"
"\n"
-"\"Nome\" é codificado da seguinte maneira: \"tipo do disco rígido\", "
-"\"número\n"
-"do disco rígido\", \"número da partição\" (por exemplo, \"hda1\").\n"
+"\"Nome\" é estruturado como: \"tipo de disco rígido\", \"número do disco "
+"rígido,\"\n"
+"\"número da partição\" (por exemplo, \"hda1\").\n"
"\n"
+"\"Tipo de disco rígido\" é \"hd\" se seu disco rígido for IDE e \"sd\" se "
+"for SCSI.\n"
"\n"
-"\"Tipo do disco rígido\" é \"hd\" se seu disco rígido for IDE e \"sd\"\n"
-"se ele for um disco rígido SCSI.\n"
-"\n"
-"\n"
-"\"Número do disco rígido\" é sempre uma letra depois de \"hd\" ou \"sd\".\n"
-"Para os discos rígidos IDE:\n"
+"\"Número do disco rígido\" é sempre uma letra após \"hd\" ou \"sd\". Para\n"
+"discos rígidos IDE:\n"
"\n"
-" * \"a\" significa \"disco rígido mestre na controladora IDE primária\",\n"
+" * \"a\" significa \"disco rígido mestre no controlador IDE primário\",\n"
"\n"
-" * \"b\" significa \"disco rígido escravo na controladora IDE primária\",\n"
+" * \"b\" significa \"disco rígido escravo no controlador IDE primário\",\n"
"\n"
-" * \"c\" significa \"disco rígido mestre na controladora IDE secundária\",\n"
+" * \"c\" significa \"disco rígido mestre no controlador IDE secundário\",\n"
"\n"
-" * \"d\" significa \"disco rígido escravo na controladora IDE secundária\",\n"
+" * \"d\" significa \"disco rígido escravo no controlador IDE secundário\",\n"
"\n"
"\n"
-"Com discos rígidos SCSI, um \"a\" significa \"SCSI ID mais baixo\", um \"b\" "
-"significa \"segundo SCSI ID mais baixo\", e assim por diante."
+"Com discos rígidos SCSI, um \"a\" significa \"menor ID SCSI\", um \"b\"\n"
+"significa \"segundo menor ID SCSI\", e assim por diante."
#: ../help.pm:88
#, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"O instalador do Mandriva Linux está espalhado em diferentes CD-ROMs.\n"
-"Se o pacote selecionado estiver localizado em outro CD-ROM, O DrakX irá\n"
-"ejetar o CD atual e pedir para você inserir o CD necessário. Se você não "
-"tiver com o CD em mãos, basta clicar em \"%s\", e os pacotes correspondentes "
-"não\n"
-"serão instalados."
+"A instalação do Mageia é distribuída em vários CD-ROMs. Se um\n"
+"pacote selecionado estiver localizado em outro CD-ROM, o DrakX ejeta\n"
+"o CD atual e solicita que você insira o CD necessário. Se não tiver o CD\n"
+"solicitado em mãos, basta clicar em \"%s\", e os pacotes correspondentes\n"
+"não serão instalados."
#: ../help.pm:95
#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -240,8 +244,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -278,65 +281,59 @@ msgid ""
"command-line interface. The total size of this installation is about 65\n"
"megabytes."
msgstr ""
-"Agora você deverá especificar quais programas deseja instalar no seu\n"
-"sistema. Existem centenas de pacotes disponíveis para o Mandriva Linux, e\n"
-"para facilitar sua escolha eles foram agrupados em grupos de aplicações\n"
-"similares.\n"
-"\n"
-"O Mandriva Linux separou os pacotes em quatro categorias. Você pode\n"
-"misturar as aplicações de vários grupos, e assim a \"Estação de Trabalho\" "
-"pode ter aplicações do grupo \"Servidor\".\n"
-"\n"
-" * \"%s\": Se você planeja usar sua máquina como estação de trabalho,\n"
-"selecione um ou mais dos grupos desta categoria.\n"
-"\n"
-" * \"%s\": Se a máquina será usada para programação e/ou compilação, escolha "
-"os pacotes apropriados desta categoria. O grupo especial\n"
-"\"LSB\" irá configurar seus sistema para ficar o mais compatível possível\n"
-"com a especificação Linux Standard Base.\n"
-"\n"
-" Selecionar o grupo \"LSB\" irá também instalar o kernel da séria \"2.4\", "
-"ao\n"
-"invés da série padrão \"2.6\". Isto garante 100%% de compatibilidade com LSB "
-"no\n"
-"sistema. No entanto, se você não selecionar o grupo \"LSB\" você ainda terá\n"
-"um sistema próximo a 100%% de compatibilidade com a LSB.\n"
-"\n"
-" * \"%s\": se a máquina será um servidor, você poderá escolher quais dos\n"
-"serviços deseja instalar na máquina.\n"
-"\n"
-" * \"%s \": este é o grupo em que você escolherá seus ambientes\n"
-"gráficos preferidos. Pelo menos um tem que ser selecionado se você quer\n"
-"ter uma estação de trabalho gráfica.\n"
-"\n"
-"Ao mover o ponteiro do mouse sobre um nome de grupo, uma pequena explicação\n"
-"sobre seu conteúdo aparecerá.\n"
-"\n"
-"Você pode marcar a caixa \"%s\", ela é útil se você tiver um pouco de "
-"experiência\n"
-"com o nome dos pacotes oferecidos ou se você deseja ter total controle "
-"sobre\n"
-"o que irá ser instalado.\n"
-"\n"
-"Se você iniciar uma instalação no modo \"%s\", você pode desmarcar todos\n"
-"os grupos e prevenir a instalação de qualquer pacote adicional. Isto é útil "
-"para\n"
-"reparar ou atualizar um sistema já existente.\n"
-"\n"
-"Se você não selecionar nenhum grupo quando em uma instalação regular (o "
-"oposto\n"
-"de uma atualização), uma caixa de diálogo aparecerá propondo diferentes\n"
-"opções para uma instalação mínima:\n"
-"\n"
-" * \"%s\": Instala o mínimo de pacotes possíveis para se ter uma estação\n"
-"de trabalho gráfica.\n"
-"\n"
-" * \"%s\": Instala a base do sistema acrescida de utilitários básicos e\n"
-"documentação. Esta Instalação é útil para configurar um servidor.\n"
-"\n"
-" * \"%s\": Instala os pacotes mínimos necessários para obter um sistema\n"
-"Linux funcionando. Com esta instalação você terá somente interface de\n"
-"linha de comando. O tamanho total desta instalação é de 65 megabytes."
+"Agora é hora de especificar quais programas deseja instalar em seu sistema.\n"
+"Existem milhares de pacotes disponíveis para o Mageia, e para simplificar o\n"
+"gerenciamento, eles foram agrupados em categorias de aplicativos similares.\n"
+"\n"
+"O Mageia classifica os grupos de pacotes em quatro categorias. Você pode\n"
+"misturar e combinar aplicativos de várias categorias, então uma instalação\n"
+"``Estação de trabalho\" ainda pode ter aplicativos da categoria "
+"``Servidor\"\n"
+"instaladas.\n"
+"\n"
+" * \"%s\": se planeja usar sua máquina como uma estação de trabalho,\n"
+"selecione um ou mais dos grupos na categoria de estação de trabalho.\n"
+"\n"
+" * \"%s\": se planeja usar sua máquina para programação, selecione os\n"
+"grupos apropriados dessa categoria. O grupo especial \"LSB\" configura\n"
+"seu sistema para que esteja o mais próximo possível das especificações da\n"
+"Linux Standard Base.\n"
+"\n"
+" Selecionar o grupo \"LSB\" garante 100%% de conformidade com a\n"
+"LSB do sistema. No entanto, se não selecionar o grupo \"LSB\", ainda\n"
+"terá um sistema quase 100%% compatível com a LSB.\n"
+"\n"
+" * \"%s\": se sua máquina for destinada a ser um servidor, selecione quais\n"
+"dos serviços mais comuns você deseja instalar em sua máquina.\n"
+"\n"
+" * \"%s\": aqui você escolhe seu ambiente gráfico preferido. Pelo menos\n"
+"um deve ser selecionado se quiser uma interface gráfica disponível.\n"
+"\n"
+"Mover o cursor do mouse sobre um nome de grupo exibe um texto\n"
+"explicativo sobre esse ele.\n"
+"\n"
+"Você pode marcar a caixa \"%s\", que é útil se estiver familiarizado com\n"
+"os pacotes oferecidos ou se deseja ter controle total sobre o que é\n"
+"instalado.\n"
+"\n"
+"Se você iniciar a instalação no modo \"%s\", pode desmarcar todos os\n"
+"grupos e evitar a instalação de novos pacotes. Isso é útil para reparar\n"
+"ou atualizar um sistema existente.\n"
+"\n"
+"Se você desmarcar todos os grupos ao realizar uma instalação comum\n"
+"(em vez de uma atualização), um diálogo será exibido sugerindo\n"
+"diferentes opções para uma instalação mínima:\n"
+"\n"
+"* \"%s\": instala o número mínimo de pacotes possível para ter um\n"
+"desktop gráfico funcional.\n"
+"\n"
+"* \"%s\": instala o sistema base, utilitários básicos e sua documentação.\n"
+"Esta instalação é adequada para configurar um servidor.\n"
+"\n"
+"* \"%s\": instala o número absoluto mínimo de pacotes necessários\n"
+"para obter um sistema Linux funcional. Com esta instalação, você\n"
+"tem apenas uma interface de linha de comando. Esta instalação\n"
+"tem cerca de 65 megabytes."
#: ../help.pm:149 ../help.pm:591
#, c-format
@@ -367,10 +364,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -390,62 +387,54 @@ msgid ""
"another installation. See the second tip of the last step on how to create\n"
"such a floppy."
msgstr ""
-"Se você escolheu selecionar pacotes individualmente, será apresentada uma\n"
-"árvore contendo todos os pacotes classificados por grupos e subgrupos.\n"
-"Navegando nesta árvore, você poderá selecionar grupos inteiros, subgrupos\n"
-" ou pacotes individuais.\n"
-"\n"
-"Quando você seleciona um pacote individual na árvore, uma breve \n"
-"descrição sobre o pacote aparecerá na janela da direita.\n"
-"\n"
-"!! Quando um pacote de servidor foi selecionado, intencionalmente ou por\n"
-"ser parte de um grupo, será pedido para que você confirme se realmente "
-"deseja que\n"
-"estes servidores sejam instalados. Por padrão, no Mandriva Linux qualquer\n"
-"serviço instalado será iniciado quando a máquina for iniciada.\n"
-"Mesmo que sejam seguros e não existam quaisquer dúvidas a respeito\n"
-"da distribuição, é possível que brechas de segurança\n"
-"sejam descobertas depois que esta versão do Mandriva Linux foi concluída.\n"
-"Se você não sabe o que um determinado serviço faz ou porque está sendo\n"
-"instalado, clique em \"%s\". Clicando em \"%s\", os serviços listados\n"
-"serão instalados e serão iniciados automaticamente quando o\n"
-"sistema for iniciado!!\n"
-"\n"
-"A opção \"%s\" desabilita a caixa de diálogo com o aviso que aparece quando\n"
-"o instalador seleciona um pacote automaticamente por ter resolvido\n"
-"dependências. Alguns pacotes dependem de outros e a instalação de \n"
-"de um ou mais pacotes pode ser requisitada para que se instale um programa\n"
-"específico. O instalador pode determinar quais pacotes são necessários\n"
-"para satisfazer uma dependência e assim completar a instalação.\n"
-"\n"
-"O pequeno ícone de disco flexível no fim da lista permite gravar a lista\n"
-"de pacotes escolhida durante uma instalação. Isto é útil quando você tiver\n"
-"um número de máquinas que deseja configurar de forma idêntica. Ao clicar\n"
-"neste ícone, será pedido a você que insira um disquete, criado no final de "
-"outra\n"
-"instalação. Veja a segunda dica no último passo sobre\n"
-"como criar esse disquete."
+"Se optar por instalar pacotes individualmente, o instalador apresenta\n"
+"uma árvore contendo todos os pacotes classificados por grupos e subgrupos.\n"
+"Ao navegar pela árvore, você pode selecionar grupos inteiros, subgrupos\n"
+"ou pacotes individuais.\n"
+"\n"
+"Sempre que selecionar um pacote na árvore, uma descrição aparecer à\n"
+"direita para informar o propósito desse pacote.\n"
+"\n"
+" !! Se um pacote de servidor for selecionado, seja porque você escolheu\n"
+"especificamente o pacote individual ou porque ele fazia parte de um grupo\n"
+"de pacotes, é solicitado que você confirme se realmente deseja que esses\n"
+"servidores sejam instalados. Por padrão, o Mageia inicia automaticamente\n"
+"quaisquer serviços instalados durante o tempo de inicialização. Mesmo que\n"
+"eles sejam seguros e não tenham problemas conhecidos na época em que\n"
+"a distribuição foi lançada, é possível que vulnerabilidades de segurança "
+"sejam\n"
+"descobertas após a finalização desta versão do Mageia. Se não souber\n"
+"o que um serviço específico deve fazer ou por que está sendo instalado, "
+"clique\n"
+"em \"%s\". Clicar em \"%s\" instala os serviços listados e inicia esses "
+"serviços\n"
+"automaticamente durante o tempo de inicialização. !!\n"
+"\n"
+"A opção \"%s\" é usada para desativar o diálogo de aviso que aparece\n"
+"sempre que o instalador seleciona automaticamente um pacote para resolver\n"
+"um problema de dependência. Alguns pacotes dependem de outros e a "
+"instalação\n"
+"de um pacote específico pode exigir a instalação de outro pacote. O "
+"instalador\n"
+"pode determinar quais pacotes são necessários para satisfazer uma "
+"dependência\n"
+"e concluir a instalação.\n"
+"\n"
+"O ícone de disquete pequeno na parte inferior da lista, permite carregar "
+"uma\n"
+"lista de pacotes criada durante uma instalação anterior. Isso é útil se você "
+"tem\n"
+"várias máquinas que quer configurar de maneira idêntica. Clicar nesse ícone\n"
+"solicita que você insira o disquete criado no final de outra instalação. "
+"Consulte\n"
+"a segunda dica do último passo sobre como criar um disquete desse tipo."
#: ../help.pm:183
#, c-format
msgid "Automatic dependencies"
msgstr "Dependências automáticas"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": clique no botão \"%s\" para abrir o assistente de configuração de\n"
-"impressora. Consulte o capítulo correspondente do \"Guia do Iniciante\" "
-"para\n"
-"mais informações sobre como configurar uma nova impressora. A interface\n"
-"apresentada no manual é similar à utilizada durante a instalação."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -465,25 +454,22 @@ msgid ""
"Please remember that some services can be dangerous if they're enabled on a\n"
"server. In general, select only those services you really need. !!"
msgstr ""
-"Esta janela é utilizada para selecionar quais serviços você deseja iniciar\n"
-"durante o processo de inicialização (boot) da máquina.\n"
-"\n"
-"O DrakX irá listar todos os serviços disponíveis na instalação atual.\n"
-"Reveja cuidadosamente e desabilite aqueles que não são sempre necessários \n"
-"durante a inicialização.\n"
-"\n"
-"Um pequeno texto de ajuda descrevendo a função do serviço será mostrado \n"
-"quando o mesmo for selecionado. Contudo, caso você não tenha certeza se um \n"
-"serviço é útil ou não, é seguro manter o comportamento padrão.\n"
-"\n"
-"!! Tenha muito cuidado neste passo, caso você pretenda usar sua máquina como "
-"um \n"
-"servidor: você provavelmente vai querer que serviços indesejados não sejam "
-"iniciados.\n"
-"Lembre-se de que vários serviços podem ser perigosos se forem habilitados em "
-"um\n"
-"servidor. Em geral, selecione apenas os serviços que você realmente "
-"precisa. !!"
+"Este diálogo é usado para selecionar quais serviços você quer\n"
+"iniciar automaticamente.\n"
+"\n"
+"O DrakX lista todos os serviços disponíveis na instalação atual. Revise\n"
+"cada um deles com cuidado e desmarque aqueles que não são necessários\n"
+"na inicialização.\n"
+"\n"
+"Um texto explicativo curto é exibido sobre um serviço quando ele for\n"
+"selecionado. No entanto, se não tiver certeza se um serviço é útil ou não,\n"
+"é mais seguro manter o comportamento padrão.\n"
+"\n"
+"!! Nesta etapa, tenha muito cuidado se você pretende usar sua máquina como\n"
+"um servidor: você provavelmente não deseja iniciar nenhum serviço que não\n"
+"seja necessário. Lembre-se de que alguns serviços podem ser perigosos se\n"
+"forem ativados em um servidor. Em geral, selecione apenas os serviços que\n"
+"realmente precisa. !!"
#: ../help.pm:209
#, c-format
@@ -501,26 +487,35 @@ msgid ""
"choose a time server located near you. This option actually installs a time\n"
"server which can be used by other machines on your local network as well."
msgstr ""
-"O GNU/Linux gerencia a hora em GMT (Greenwich Mean Time) e calcula a hora\n"
-"local de acordo com o fuso horário que você escolheu. Se o relógio em sua\n"
-"placa mãe está configurado para o horário local, é possível desativá-lo, "
-"desmarcando\n"
-"\"%s\", permitindo ao GNU/Linux saber que o relógio do hardware e o relógio "
-"do\n"
-"sistema são os mesmos. Isto é útil quando a máquina também tem outro sistema "
-"operacional.\n"
-"\n"
-"A opção \"%s\" irá automaticamente ajustar o relógio, conectando-o a um\n"
-"servidor remoto de hora na Internet. Obviamente, você deve dispor de uma\n"
-"conexão na Internet para isso. Recomendamos que você escolha um servidor de "
-"hora localizado próximo a você, na lista apresentada.\n"
-"Esta opção, na verdade, instala um servidor de hora que poderá ser\n"
-"usado também por outras máquinas de sua rede local."
-
-#: ../help.pm:220
+"O GNU/Linux gerencia o tempo em GMT (Greenwich Mean Time) e o traduz\n"
+"para o horário local de acordo com o fuso horário que você selecionou. Se o "
+"relógio\n"
+"na sua placa-mãe estiver configurado para o horário local, você pode "
+"desativar\n"
+"isso desmarcando \"%s\", o que informa ao GNU/Linux que o relógio do "
+"sistema\n"
+"e o relógio de hardware estão no mesmo fuso horário. Isso é útil quando a "
+"máquina\n"
+"também hospeda outro sistema operacional.\n"
+"\n"
+"A opção \"%s\" regula automaticamente o relógio do sistema conectando-se a\n"
+"um servidor de horário remoto na internet. Para que este recurso funcione, "
+"você\n"
+"deve ter uma conexão com a internet funcionando. Recomendamos que\n"
+"escolha um servidor de horário localizado próximo a você. Esta opção na\n"
+"verdade instala um servidor de horário que pode ser usado por outras "
+"máquinas\n"
+"na sua rede local também."
+
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr "Relógio de hardware configurado para GMT"
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
-msgstr "Sincronização automática da hora "
+msgstr "Sincronização automática de horário"
#: ../help.pm:223
#, c-format
@@ -537,20 +532,20 @@ msgid ""
msgstr ""
"Placa de vídeo\n"
"\n"
-" O instalador normalmente detecta e configura automaticamente a placa de\n"
-"vídeo instalada em seu computador. Se não for o caso, você pode escolher\n"
-"na lista a placa que você possui atualmente instalada.\n"
+" O instalador normalmente detecta e configurar automaticamente a\n"
+"placa de vídeo instalada em sua máquina. Se isso não estiver correto, você\n"
+"pode escolher na lista a placa que realmente tem instalada.\n"
"\n"
-" Em casos nos quais diferentes servidores são disponíveis para sua placa\n"
-"de vídeo, com ou sem aceleração 3D, você será questionado para escolher\n"
-"um servidor que atenda melhor às suas necessidades."
+" Na situação em que diferentes drivers estão disponíveis para sua placa,\n"
+"com ou sem aceleração 3D, você é solicitado a escolher o driver que\n"
+"melhor atende às suas necessidades."
#: ../help.pm:234
#, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -604,64 +599,64 @@ msgid ""
"want to check \"%s\" if your machine is to act as a server, or if you were\n"
"not successful in getting the display configured."
msgstr ""
-"X (para X Window System ou Sistema de Janelas X) é o coração da interface "
-"gráfica do GNU/Linux\n"
-"no qual todos os ambientes gráficos (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) fornecidos com o Mandriva Linux se baseiam.\n"
+"X (para X Window System) é o coração da interface gráfica do GNU/Linux,\n"
+"sobre a qual todos os ambientes gráficos (KDE, GNOME, AfterStep,\n"
+"WindowMaker, etc.) fornecidos com o Mageia dependem.\n"
+"\n"
+"É mostrada uma lista de diferentes parâmetros para ajustar e obter uma\n"
+"exibição gráfica otimizada.\n"
"\n"
-"Você verá uma lista de parâmetros para alterações, para poder\n"
-"obter uma ótima resolução gráfica. \n"
-"Placa de Vídeo\n"
+"Placa de vídeo\n"
"\n"
-" O instalador normalmente poderá detectar e configurar automaticamente \n"
-"a placa de vídeo da sua máquina. Se esta configuração não estiver correta, "
-"você pode\n"
-"escolher na lista a placa correspondente instalada.\n"
+" O instalador normalmente detecta e configura automaticamente a\n"
+"placa de vídeo instalada em sua máquina. Se isso não estiver correto, você\n"
+"pode escolher na lista a placa que realmente tem instalada.\n"
"\n"
-" Se existirem diferentes servidores possíveis para a sua placa, com ou "
-"sem\n"
-"aceleração 3D, será oferecido para você escolher o servidor que melhor "
-"atenda as\n"
-"necessidades.\n"
+" Na situação em que diferentes drivers estão disponíveis para sua placa, "
+"com\n"
+"ou sem aceleração 3D, você será solicitado a escolher o driver que melhor\n"
+"atende às suas necessidades.\n"
"\n"
"\n"
"\n"
"Monitor\n"
"\n"
-" O instalador pode normalmente detectar e configurar automaticamente\n"
-"o monitor da sua máquina. Se não for o correto, você pode escolher na\n"
-"lista o monitor que está conectado a seu computador.\n"
+" Normalmente, o instalador detecta e configura automaticamente\n"
+"o monitor conectado à sua máquina. Se isso não estiver correto, você\n"
+"pode escolher na lista o monitor que está conectado ao seu computador.\n"
"\n"
"\n"
"\n"
"Resolução\n"
"\n"
-" Aqui você pode escolher a resolução e a profundidade das cores que seu\n"
-"hardware pode exibir. Escolha a resolução que melhor lhe agrada (você\n"
-"poderá alterá-la após a instalação). Um exemplo da configuração escolhida\n"
-"é mostrada na tela.\n"
+" Aqui você pode escolher as resoluções e profundidades de cor disponíveis\n"
+"para o seu hardware gráfico. Escolha a que melhor atende às suas "
+"necessidades\n"
+"(você pode fazer alterações após a instalação). Uma amostra da configuração\n"
+"escolhida é exibida na imagem do monitor.\n"
"\n"
"\n"
"\n"
"Teste\n"
"\n"
-" Dependendo do seu hardware, esta opção pode não ser mostrada.\n"
+" Dependendo do seu hardware, esta opção pode não aparecer.\n"
"\n"
-" O sistema testará a resolução gráfica escolhida.\n"
-"Se você ver a mensagem durante o teste e responder \"%s\",\n"
-"o DrakX seguirá para a etapa seguinte. Se não puder ver a mensagem,\n"
-"significa que algo na configuração está errado, e o teste vai acabar\n"
-"automaticamente depois de 12 segundos, voltando ao menu. Mude\n"
-"as configurações até obter uma boa resolução gráfica.\n"
+" O sistema tenta abrir uma tela gráfica na resolução desejada.\n"
+"Se vir a mensagem de teste durante o teste e responder \"%s\",\n"
+"então o DrakX prossegue para a próxima etapa. Se não a ver, isso\n"
+"significa que alguma parte da configuração de detecção automática estava\n"
+"incorreta e o teste é automaticamente encerrado após 12 segundos,\n"
+"retornando ao menu. Altere as configurações até obter uma exibição gráfica "
+"correta.\n"
"\n"
"\n"
"\n"
"Opções\n"
"\n"
-" Aqui você pode escolher se deseja que o computador inicie\n"
-"automaticamente em modo gráfico. Obviamente, você vai querer marcar o\n"
-"\"%s\" se a sua máquina é um servidor, ou caso não tenha conseguido obter\n"
-"uma boa configuração de vídeo."
+" Esta etapa permite escolher se deseja que sua máquina mude\n"
+"automaticamente para uma interface gráfica na inicialização. Obviamente,\n"
+"você marcar \"%s\" se sua máquina for atuar como um servidor\n"
+"ou se não conseguir configurar a exibição corretamente."
#: ../help.pm:291
#, c-format
@@ -674,10 +669,9 @@ msgid ""
msgstr ""
"Monitor\n"
"\n"
-" O instalador normalmente detecta e configura automaticamente o\n"
-"monitor conectado ao seu computador. Se a configuração não estiver correta, "
-"escolha \n"
-"na lista o monitor correto que está conectado em seu computador."
+" Normalmente, o instalador detecta e configura automaticamente\n"
+"o monitor conectado à sua máquina. Se isso não estiver correto, você pode\n"
+"escolher na lista o monitor que está conectado ao seu computador."
#: ../help.pm:298
#, c-format
@@ -691,12 +685,11 @@ msgid ""
msgstr ""
"Resolução\n"
"\n"
-" Você pode escolher aqui as resoluções e profundidade de cores disponíveis "
-"para\n"
-"o seu hardware. Escolha as que atendam melhor às suas necessidades (você\n"
-"poderá alterar esta configuração após a instalação). Uma amostra da "
-"configuração\n"
-"será mostrada no monitor."
+" Aqui você pode escolher as resoluções e profundidades de cor disponíveis\n"
+"para o seu hardware gráfico. Escolha a que melhor atende às suas "
+"necessidades\n"
+"(você pode fazer alterações após a instalação). Uma amostra da configuração\n"
+"escolhida é exibida na imagem do monitor."
#: ../help.pm:306
#, c-format
@@ -705,9 +698,9 @@ msgid ""
"or without 3D acceleration, you're asked to choose the server which best\n"
"suits your needs."
msgstr ""
-"No caso de existirem vários servidores disponíveis para a sua placa,\n"
-"com ou sem aceleração 3D, escolha o servidor que melhor se adapta\n"
-"às suas necessidades."
+"Na situação em que diferentes drivers estão disponíveis para sua placa,\n"
+"com ou sem aceleração 3D, você é solicitado a escolher o driver que\n"
+"melhor atende às suas necessidades."
#: ../help.pm:311
#, c-format
@@ -721,47 +714,51 @@ msgid ""
msgstr ""
"Opções\n"
"\n"
-" Aqui você pode escolher se deseja que o computador inicie\n"
-"automaticamente em modo gráfico. Obviamente, você vai querer marcar o\n"
-"\"%s\" se a sua máquina é um servidor, ou caso não tenha conseguido obter\n"
-"uma boa configuração de resolução de vídeo."
+" Esta etapa permite escolher se deseja que sua máquina mude\n"
+"automaticamente para uma interface gráfica na inicialização. Obviamente,\n"
+"você marcar \"%s\" se a sua máquina é um servidor, ou caso\n"
+"não tenha conseguido obter uma boa configuração de resolução de vídeo."
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -770,15 +767,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -791,85 +788,88 @@ msgid ""
"experience. For more instructions on how to use the DiskDrake utility,\n"
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
-"Neste ponto, você precisa escolher onde instalar o seu sistema\n"
-"Mandriva Linux no seu disco rígido. Se seu disco estiver vazio ou se um\n"
-"sistema operacional existente usa todo o espaço disponível, você terá que\n"
-"particioná-lo. Basicamente, particionar um disco rígido consiste em\n"
-"dividi-lo logicamente para criar espaço para o seu novo sistema Mandriva "
-"Linux.\n"
-"\n"
-"Como os efeitos de um processo de particionamento são normalmente\n"
-"irreversíveis, podendo levar à perda de dados do sistema operacional atual,\n"
-"ele pode ser intimidante e estressante para um usuário inexperiente.\n"
-"Felizmente, o DrakX traz um assistente que simplifica este processo. Antes\n"
-"de continuar, leia o restante desta seção, e faça todos os passos\n"
-"com calma.\n"
-"\n"
-"Dependendo da configuração do seu disco rígido, várias soluções podem estar\n"
+"Agora você precisa decidir onde deseja instalar o sistema operacional "
+"Mageia\n"
+"em seu disco rígido. Se o seu disco rígido estiver vazio ou se um sistema\n"
+"operacional existente estiver usando todo o espaço disponível, você deve\n"
+"particionar o disco. Basicamente, particionar um disco rígido significa "
+"dividi-lo\n"
+"logicamente para criar o espaço necessário para instalar o novo sistema "
+"Mageia.\n"
+"\n"
+"Como o processo de particionamento de um disco rígido é geralmente "
+"irreversível\n"
+"e pode levar a perdas de dados, o particionamento pode ser intimidante e "
+"estressante\n"
+"para o usuário inexperiente. Felizmente, o DrakX inclui um assistente que "
+"simplifica\n"
+"esse processo. Antes de continuar com esta etapa, leia o restante desta "
+"seção e,\n"
+"acima de tudo, sem pressa.\n"
+"\n"
+"Dependendo da configuração do seu disco rígido, várias opções estarão "
"disponíveis:\n"
"\n"
-"* \"%s\": esta opção particionará automaticamente seu(s) disco(s) vazio(s).\n"
-"Se você usar esta opção não haverá mais nenhum alerta adicional.\n"
-"\n"
-"* \"%s\": o assistente detectou uma ou mais partições Linux em seu disco\n"
-"rígido. Se você deseja usá-las, escolha esta opção. Será pedido para que "
-"você escolha os pontos de montagem associados\n"
-"a cada uma das partições. Alguns pontos de montagem já existentes serão "
-"selecionados\n"
-"automaticamente, e na maioria das vezes é uma boa idéia mantê-los.\n"
-"\n"
-"* \"%s\": se o Microsoft Windows estiver instalado no seu disco rígido e\n"
-"ocupar todo o espaço disponível, você terá que criar espaço livre para o\n"
-"GNU/Linux. Para fazer isto, você pode remover a sua partição Microsoft "
-"Windows\n"
-"(leia-se: usar a opção 'Apagar disco inteiro') ou redimensionar a sua "
-"partição Microsoft\n"
-"Windows do tipo FAT ou NTFS. O redimensionamento pode ser feito sem a perda "
-"de dados, desde\n"
-"que você tenha desfragmentado previamente sua partição e a mesma esteja\n"
-"formatada em FAT ou NTFS. Recomendamos fortemente o backup de seus\n"
-"dados. Esta solução é útil se você quiser usar o Mandriva Linux e o\n"
-"Microsoft Windows no mesmo computador.\n"
-"\n"
-"Antes de escolher esta solução, compreenda que o tamanho de sua partição\n"
-"Microsoft Windows será menor do que é agora. Isto significa que você terá\n"
-"menos espaço livre no Microsoft Windows para guardar os seus dados ou\n"
-"instalar novos programas.\n"
-"\n"
-"* \"%s\": se você quiser apagar todos os dados e todas as partições\n"
-"existentes no disco rígido e substituí-las pelo seu novo sistema Mandriva "
-"Linux, você pode escolher esta opção. Tenha cuidado, pois\n"
-"você não pode reverter sua escolha após a confirmação.\n"
-"\n"
-"!! Se você escolher esta opção, todos seus dados atuais serão perdidos. !!\n"
-"\n"
-" * \"%s\" Esta opção aparecerá quando seu disco rígido estiver totalmente\n"
-"ocupado pelo Microsoft Windows. Ao escolher esta opção, todo o conteúdo do "
-"seu \n"
-"disco rígido será apagado, sendo assim, todo ele particionado do início.\n"
-"\n"
-" !! Se você escolher esta opção, todo os dados do seu disco rígido serão "
-"perdidos. !!\n"
-"\n"
-"* \"%s\": escolha esta opção se você quiser particionar manualmente o seu\n"
-"disco rígido. Tenha cuidado -- ela é muito poderosa, mas muito perigosa. "
-"Você\n"
-"pode perder todos os seus dados facilmente. Escolha esta solução somente\n"
-"se souber o que está fazendo ou já tiver experiência com particionamento. "
-"Para mais\n"
-"informações de como usar o utilitário DiskDrake, leia a seção 'Gerenciando "
-"suas \n"
-"Partições' do 'Guia do Iniciante'."
+" * \"%s\". Esta opção realiza um particionamento automático do(s) seu(s)\n"
+"disco(s) vazio(s). Se usar esta opção, não há mais solicitações.\n"
+"\n"
+" * \"%s\". O assistente detectou uma ou mais partições Linux existentes\n"
+"em seu disco rígido. Se quiser usá-las, escolha esta opção. Você é\n"
+"solicitado a escolher os pontos de montagem associados a cada uma\n"
+"das partições. Os pontos de montagem legados são selecionados por padrão e,\n"
+"na maioria das vezes, é uma boa ideia mantê-los.\n"
+"\n"
+" * \"%s\". Se o Microsoft Windows estiver instalado em seu disco rígido e\n"
+"ocupar todo o espaço disponível, você deve criar um espaço livre para o\n"
+"GNU/Linux. Para fazer isso, você pode excluir a partição e os dados do\n"
+"Microsoft Windows (veja a solução ``Apagar todo o disco'') ou redimensionar\n"
+"a partição FAT ou NTFS do Microsoft Windows. O redimensionamento pode\n"
+"ser realizado sem perda de dados, desde que tenha desfragmentado a partição\n"
+"do Windows anteriormente. É altamente recomendável fazer backup dos seus\n"
+"dados. Usar esta opção é recomendado se deseja usar tanto o Mageia\n"
+"quanto o Microsoft Windows no mesmo computador.\n"
+"\n"
+" Antes de escolher esta opção, entenda que após este procedimento,\n"
+"o tamanho da sua partição do Microsoft Windows será menor do que era\n"
+"inicialmente. Você terá menos espaço livre no Microsoft Windows para\n"
+"armazenar seus dados ou para instalar novos softwares.\n"
+"\n"
+" * \"%s\". Se deseja excluir todos os dados e todas as partições presentes\n"
+"em seu disco rígido e substituí-los pelo novo sistema Mageia, escolha\n"
+"esta opção. Tenha cuidado, pois você não pode desfazer esta operação\n"
+"após confirmar.\n"
+"\n"
+" !! Se escolher esta opção, todos os dados em seu disco são excluídos. !!\n"
+"\n"
+" * \"%s\". Esta opção aparece quando o disco rígido está totalmente ocupado "
+"pelo\n"
+"Microsoft Windows. Escolher esta opção exclui tudo no disco e começa\n"
+"do zero, particionando tudo a partir do início.\n"
+"\n"
+" !! Se escolher esta opção, todos os dados em seu disco são perdidos. !!\n"
+"\n"
+" * \"%s\". Escolha esta opção se deseja particionar seu disco rígido\n"
+"manualmente. Tenha cuidado -- é uma escolha poderosa, mas perigosa, e\n"
+"você pode facilmente perder todos os seus dados. Por isso, esta opção é\n"
+"realmente recomendada apenas se você já tiver feito algo semelhante\n"
+"antes e tiver alguma experiência. Para mais instruções sobre como usar\n"
+"a ferramenta DiskDrake, consulte a seção ``Gerenciar suas partições'' no\n"
+"``Guia do iniciante''."
#: ../help.pm:377
#, c-format
msgid "Use existing partition"
msgstr "Usar partição existente"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr "Usar o espaço livre na partição do Microsoft Windows®"
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
-msgstr "Apagar disco inteiro"
+msgstr "Apagar todo o disco"
#: ../help.pm:380
#, c-format
@@ -908,49 +908,63 @@ msgid ""
"\"mformat a:\", or \"fdformat /dev/fd0\" followed by \"mkfs.vfat\n"
"/dev/fd0\"."
msgstr ""
-"E aqui estamos! A instalação agora está completa e o seu GNU/Linux está\n"
-"pronto para ser usado. Clique em \"%s\" para reiniciar o sistema. Não "
-"esqueça\n"
-"de remover a mídia de instalação (CD-ROM ou disquete). A primeira coisa\n"
-"que você deverá ver, após seu computador terminar os testes de hardware,\n"
-"será o menu do gerenciador de inicialização, que fornecerá para você uma "
-"lista de opções, para que você escolha qual sistema\n"
-"operacional iniciar.\n"
-"\n"
-"O botão \"%s\" mostra mais dois botões:\n"
-"\n"
-" * \"%s\": para criar um disco de instalação que automaticamente fará\n"
-"uma instalação completa, sem a ajuda de um operador, semelhante à\n"
-"instalação que você acabou de fazer.\n"
-"\n"
-" Note que duas opções diferentes estão disponíveis depois que você clicar\n"
-"no botão:\n"
-"\n"
-" * \"%s\". É uma instalação parcialmente automática, porque a seção\n"
-"de particionamento (somente esta) permanece interativa.\n"
-"\n"
-" * \"%s\". Completamente automatizada: o disco rígido é completamente\n"
-"reescrito, e todos os dados anteriores serão perdidos.\n"
-"\n"
-" Esta funcionalidade é muito adequada quando se deseja instalar o\n"
-"sistema em um grande número de máquinas semelhantes. Veja a seção\n"
-"de instalação automática do nosso website para mais informações.\n"
-"\n"
-" * \"%s\": salva a seleção de pacotes feita nesta instalação.\n"
-"Para usar esta seleção em outra instalação, insira o disquete e inicie\n"
-"a instalação. No 'prompt', pressione a tecla F1 e digite >> linux\n"
-"defcfg=\"floppy\" << e pressione [Enter].\n"
-"\n"
-"(*) Você precisa de um disquete formatado com FAT. Para criar um pelo\n"
-"GNU/Linux, digite \"mformat a:\", ou \"fdformat /dev/fd0\" seguido por\n"
+"Pronto. A instalação está completa e seu sistema GNU/Linux está pronto\n"
+"para ser usado. Basta clicar em \"%s\" para reiniciar o sistema. Não se\n"
+"esqueça de remover a mídia de instalação (CD-ROM ou pen drive). A primeira\n"
+"coisa que deve ver depois que seu computador terminar os testes de\n"
+"hardware é o menu do gerenciador de inicialização, oferecendo a opção de\n"
+"qual sistema operacional iniciar.\n"
+"\n"
+"O botão \"%s\" exibe mais dois botões para:\n"
+"\n"
+" * \"%s\": permitir criar um disquete de instalação que realiza uma\n"
+"instalação completa automaticamente, sem a ajuda de um operador,\n"
+"semelhante à instalação que você acabou de configurar.\n"
+"\n"
+" Note que duas opções diferentes estão disponíveis após clicar nesse "
+"botão:\n"
+"\n"
+" * \"%s\". Esta é a instalação parcialmente automatizada. A etapa de\n"
+"particionamento é o único procedimento interativo.\n"
+"\n"
+" * \"%s\". Instalação totalmente automatizada: o disco rígido é "
+"completamente\n"
+"regravado, todos os dados são perdidos.\n"
+" \n"
+" Este recurso é muito útil ao instalar em várias máquinas semelhantes. "
+"Veja\n"
+"a seção Instalação automática em nosso site para mais informações.\n"
+"\n"
+" * \"%s\"(*): salva uma lista dos pacotes selecionados nesta instalação.\n"
+"Para usar esta seleção em outra instalação, insira o disco e inicie a\n"
+"instalação. Na solicitação, pressione a tecla [F1], digite\n"
+">>linux defcfg=\"floppy\"<< e pressione a tecla [Enter].\n"
+"\n"
+"(*) Você precisa de um disquete formatado em FAT. Para criar um no\n"
+"GNU/Linux, digite \"mformat a:\", ou \"fdformat /dev/fd0\" seguido de\n"
"\"mkfs.vfat /dev/fd0\"."
#: ../help.pm:412
#, c-format
msgid "Generate auto-install floppy"
-msgstr "Criar disquete de instalação automática"
+msgstr "Gerar disquete de instalação automática"
+
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr "Repetir"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr "Automatizada"
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr "Salvar a seleção de pacotes"
+
+#: ../help.pm:408
#, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -970,39 +984,38 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
msgstr ""
-"Se você escolher reutilizar algumas partições GNU/Linux existentes, poderá "
-"reformatar algumas delas e \n"
-"apagar os dados contidos nelas. Se você deseja fazer isto, por favor, "
-"selecione\n"
-"quais partições você deseja formatar.\n"
+"Se optou por reutilizar algumas partições GNU/Linux legadas, pode\n"
+"ser necessário reformatar algumas delas e apagar qualquer dado que\n"
+"contenham. Para fazer isso, selecione essas partições também.\n"
"\n"
-"Note que não é necessário reformatar todas as partições já existentes.\n"
-"Você deve reformatar as partições contendo o sistema operacional\n"
-"(tais como \"/\",\"/usr\" ou \"/var\"), mas você não tem que\n"
-"reformatar as partições contendo dados que você deseja manter\n"
-"(a partição \"/home\" é exemplo típico).\n"
+"Note que não é necessário reformatar todas as partições pré-existentes.\n"
+"Você deve reformatar as partições que contêm o sistema operacional\n"
+"(como \"/\", \"/usr\" ou \"/var\"), mas não é necessário reformatar as "
+"partições que\n"
+"contêm dados que deseja manter (tipicamente \"/home\").\n"
"\n"
-"Tenha cuidado ao selecionar as partições. Após formatá-las, todos os\n"
-"dados serão apagados e não poderão ser recuperados.\n"
+"Tenha cuidado ao selecionar partições. Após a formatação ser concluída,\n"
+"todos os dados nas partições selecionadas serão excluídos e não será "
+"possível\n"
+"recuperá-los.\n"
"\n"
"Clique em \"%s\" quando estiver pronto para formatar as partições.\n"
"\n"
-"Clique em \"%s\" se você desejar escolher outras partições para instalar\n"
-"o seu novo sistema operacional Mandriva Linux.\n"
+"Clique em \"%s\" se quiser escolher outra partição para a nova instalação\n"
+"do sistema operacional Mageia.\n"
"\n"
-"Clique em \"%s\" para selecionar partições as quais você deseja que sejam "
-"verificadas, \n"
-"para a busca por blocos defeituosos."
+"Clique em \"%s\" se quer selecionar partições que serão verificadas\n"
+"quanto a blocos defeituosos no disco."
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -1014,19 +1027,17 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Neste momento em que você está instalando o Mandriva Linux, é possível que\n"
-"alguns pacotes tenham sido atualizados após o lançamento inicial. Alguns\n"
-"erros e falhas de seguranças podem ter sido corrigidos. Para poder se\n"
-"beneficiar destas atualizações, você pode fazer o download destes pacotes\n"
-"da Internet. Escolha \"%s\" se você possui uma conexão à Internet\n"
-"funcionando, ou \"%s\" se você preferir instalar os pacotes atualizados\n"
+"Ao instalar o Mageia, é provável que alguns pacotes tenham sido\n"
+"atualizados desde o lançamento inicial. Bugs podem ter sido corrigidos,\n"
+"erros de segurança resolvidos. Para permitir que se beneficie\n"
+"dessas atualizações, você pode baixá-las da internet. Marque \"%s\"\n"
+"se conectado à internet, ou \"%s\" se preferir instalar pacotes atualizados\n"
"mais tarde.\n"
"\n"
-"Escolhendo \"%s\", aparecerá uma lista de locais de onde você poderá pegar\n"
-"as atualizações. Escolha a mais próxima de você. Quando a árvore de\n"
-"seleção de pacotes aparecer, marque o que desejar e pressione \"%s\" para\n"
-"fazer o download e instalar o(s) pacote(s) selecionado(s), ou \"%s\" para\n"
-"interromper."
+"Escolher \"%s\" exibe uma lista de locais na web dos quais as atualizações\n"
+"podem ser baixadas. Você deve escolher um próximo a você. Uma árvore\n"
+"de seleção de pacotes aparece: revise a seleção e pressione \"%s\"para\n"
+"baixar e instalar os pacotes selecionados, ou \"%s\" para cancelar."
#: ../help.pm:450
#, c-format
@@ -1038,51 +1049,53 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
"security. Security messages will be sent to that address."
msgstr ""
-"Neste ponto, o DrakX permite a escolha do nível de segurança desejado para\n"
-"a máquina. Em geral, o nível da segurança deve ser ajustado para o mais alto "
-"possível, \n"
-"se a máquina contiver dados cruciais, ou se for uma máquina exposta\n"
-"diretamente à Internet. Contudo, os níveis mais altos de segurança\n"
-"diminuem a facilidade de uso do computador.\n"
-"\n"
-"Se você não souber o que escolher, fique com a opção padrão. Você poderá\n"
-"trocar o nível de segurança depois usando a ferramenta draksec, no Centro\n"
-"de Controle Mandriva Linux.\n"
-"\n"
-"Preencha o campo \"%s\" com o endereço de e-mail da pessoa responsável\n"
-"pela segurança. Assim, mensagens de segurança serão enviadas para esse "
-"endereço."
+"Neste ponto, o DrakX permite que você escolha o nível de segurança\n"
+"que deseja para sua máquina. Como regra geral, o nível de segurança deve "
+"ser\n"
+"definido mais alto se a máquina conter dados cruciais ou se for exposta\n"
+"diretamente à internet. A compensação é que um nível de segurança mais alto\n"
+"geralmente é obtido à custa da facilidade de uso.\n"
+"\n"
+"Se não souber o que escolher, mantenha a opção padrão. Você pode\n"
+"alterar mais tarde com a ferramenta draksec, que faz parte do\n"
+"Centro de Controle Mageia.\n"
+"\n"
+"Preencha o campo \"%s\" com o endereço de email da pessoa responsável\n"
+"pela segurança. Mensagens de segurança serão enviadas para esse endereço."
#: ../help.pm:461
#, c-format
msgid "Security Administrator"
-msgstr "Administrador de Segurança"
+msgstr "Administrador de segurança"
#: ../help.pm:464
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1098,21 +1111,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1129,165 +1144,185 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-"Agora você precisa escolher qual(is) partição(ões) serão usadas para "
-"instalar o\n"
-"seu novo sistema Mandriva Linux. Se as partições já estiverem definidas \n"
-"(através de uma instalação anterior do GNU/Linux ou outro software\n"
-"particionador), você poderá utilizá-las. Caso contrário, as partições\n"
-"devem ser definidas.\n"
+"Neste ponto, você precisa escolher quais partições serão usadas para a\n"
+"instalação do seu sistema Mageia. Se as partições já foram definidas,\n"
+"seja a partir de uma instalação anterior do GNU/Linux ou por outra "
+"ferramenta\n"
+"de particionamento, você pode usar as partições existentes. Caso contrário,\n"
+"as partições do disco rígido devem ser definidas.\n"
"\n"
"Para criar partições, você deve primeiro selecionar um disco rígido. Você\n"
-"pode selecionar o disco clicando em \"hda\" para o primeiro drive IDE,\n"
-"\"hdb\" para o segundo, \"sda\" para o primeiro drive SCSI e assim por\n"
-"diante.\n"
+"pode selecionar o disco para particionamento clicando em ``hda'' para o\n"
+"primeiro disco IDE, ``hdb'' para o segundo, ``sda'' para o primeiro disco "
+"SCSI\n"
+"e assim por diante.\n"
"\n"
-"Para particionar o disco selecionado, você pode usar as seguintes opções:\n"
+"Para particionar o disco rígido selecionado, você pode usar estas opções:\n"
"\n"
-" * \"%s\": esta opção removerá todas as partições do disco rígido "
-"selecionado.\n"
+" * \"%s\": esta opção exclui todas as partições no disco rígido selecionado\n"
"\n"
-" * \"%s\": esta opção permite criar automaticamente partições ext3 e swap "
-"no\n"
-" espaço livre do seu disco rígido.\n"
+" * \"%s\": esta opção permite criar automaticamente partições ext4 e swap\n"
+"no espaço livre do seu disco rígido\n"
"\n"
-"\"%s\": acesso a características adicionais:\n"
+"\"%s\": oferece acesso a funcionalidades adicionais:\n"
"\n"
-" * \"%s\": se você quiser salvar sua tabela de partição em um disquete para\n"
-" poder recuperá-la, você pode usar esta opção. É altamente recomendável\n"
-" utilizá-la.\n"
+" * \"%s\": salva a tabela de partições em um disquete. Útil para "
+"recuperação\n"
+"da tabela de partições mais tarde, se necessário. Recomenda-se fortemente\n"
+"que você realize esta etapa.\n"
"\n"
-" * \"%s\": se você salvou a sua tabela de partição em um disquete de uma\n"
-"instalação anterior, você pode recuperá-la com esta opção.\n"
+" * \"%s\": permite restaurar uma tabela de partições previamente salva a\n"
+"partir de um disquete.\n"
"\n"
-" * \"%s\": se sua tabela de partição estiver danificada, você pode tentar\n"
-"recuperá-la usando esta opção. Tenha cuidado e lembre-se de que isto pode\n"
-"falhar.\n"
+" * \"%s\": se a tabela de partições estiver danificada, você pode tentar\n"
+"recuperá-la usando esta opção. Tenha cuidado e lembre-se de que isso\n"
+"nem sempre funciona.\n"
"\n"
-" * \"%s\": descarta todas as alterações e carrega a tabela de partição que\n"
+" * \"%s\": descarta todas as alterações e recarrega a tabela de partições "
+"que\n"
"estava originalmente no disco rígido.\n"
"\n"
-" * \"%s\": ao desmarcar esta opção, os usuários serão forçados a montar e "
-"desmontar\n"
-" manualmente as mídias removíveis, tais como discos flexíveis e CD-ROMs.\n"
+" * \"%s\": desmarcar esta opção força os usuários a montar e desmontar\n"
+"manualmente mídias removíveis, como disquetes e CD-ROMs.\n"
"\n"
-" * \"%s\": se você desejar utilizar um assistente para particionar o seu\n"
-" disco rígido, você pode usar esta opção. É recomendada caso não tenha\n"
-" conhecimento sobre particionamento.\n"
+" * \"%s\": use esta opção se quer usar um assistente para particionar\n"
+"seu disco rígido. Isso é recomendado se você não tiver um bom\n"
+"entendimento de particionamento.\n"
"\n"
-" * \"%s\": você pode usar esta opção para cancelar suas alterações.\n"
+" * \"%s\": use esta opção para cancelar suas alterações.\n"
+" \n"
+" * \"%s\": permite ações adicionais em partições (tipo, opções, formato)\n"
+"e fornece mais informações sobre o disco rígido.\n"
"\n"
-" * \"%s\": permite ações adicionais nas partições (tipo, opções, formato)\n"
-" e fornece mais informações sobre o disco rígido\n"
+" * \"%s\": quando terminar de particionar seu disco rígido, isso salva\n"
+"suas alterações no disco.\n"
"\n"
-" * \"%s\": quando você terminar de particionar o seu disco rígido, use esta\n"
-" opção para salvar as alterações.\n"
+"Ao definir o tamanho de uma partição, você pode ajustar o tamanho da\n"
+"partição com precisão usando as teclas de seta do teclado.\n"
"\n"
-"Quando definir o tamanho da partição, você pode fazê-lo com as setas\n"
-"direcionais de seu teclado.\n"
-"Nota: você pode utilizar qualquer opção usando o teclado: navegue entre as\n"
-"partições usando [Tab] e as setas [para cima/baixo].\n"
+"Nota: você pode acessar qualquer opção usando o teclado. Navegue pelas\n"
+"partições usando [Tab] e as setas [para cima/para baixo].\n"
"\n"
-"Quando a partição estiver selecionada, você pode usar:\n"
+"Quando uma partição é selecionada, você pode usar:\n"
"\n"
-" * Ctrl-c para criar uma nova partição (quando uma partição vazia estiver\n"
-" selecionada)\n"
+" * Ctrl-c para criar uma nova partição (quando uma partição vazia é\n"
+"selecionada)\n"
"\n"
-" * Ctrl-d para apagar uma partição\n"
+" * Ctrl-d para excluir uma partição\n"
"\n"
-" * Ctrl-m para especificar um ponto de montagem\n"
+" * Ctrl-m para definir o ponto de montagem\n"
"\n"
-"Para mais informações sobre os diferentes tipos de sistemas de arquivos \n"
-"disponíveis, por favor, leia o capítulo sobre ext2FS do \"Manual de "
-"Referência\".\n"
-"\n"
-"Se você está instalando em uma Máquina PPC, você vai precisar criar uma\n"
-"pequena partição \"bootstrap\" HFS de no mínimo 1MB para usar com o \n"
-"gerenciador de boot yaboot. Se você quiser criar uma partição um\n"
-"pouco maior, digamos 50MB, você pode usar o espaço para guardar\n"
-"um kernel extra e uma imagem ramdisk para situações de emergência."
+"Para obter informações sobre os diferentes tipos de sistemas de arquivos\n"
+"disponíveis, consulte o capítulo ext2FS do ``manual de referência''.\n"
+
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr "Salvar tabela de partições"
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr "Restaurar tabela de partições"
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr "Recuperar tabela de partições"
-#: ../help.pm:533
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
-msgstr "Montagem automática de mídia removível"
+msgstr "Montagem automática de mídias removíveis"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr "Assistente"
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr "Desfazer"
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
-msgstr "Mudar entre modo normal/expert"
+msgstr "Alternar entre modo normal/avançado"
#: ../help.pm:536
#, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
-"Mais de uma partição Microsoft Windows foi detectada em seu disco\n"
-"rígido. Por favor, escolha a que você quer redimensionar para instalar o "
-"seu\n"
-"novo sistema operacional Mandriva Linux.\n"
+"Mais de uma partição Microsoft foi detectada em seu disco rígido. Escolha a\n"
+"que quer redimensionar para instalar seu novo sistema operacional Mageia.\n"
"\n"
-"Cada partição é listada da seguinte forma: \"Nome Linux\", \"Nome\n"
-"Windows\" \"Capacidade\".\n"
+"Cada partição é listada da seguinte forma: \"nome Linux\", \"nome Windows\"\n"
+"\"capacidade\".\n"
"\n"
-"\"Nome Linux\" é codificado da seguinte maneira: \"tipo do disco rígido\", "
-"\"número do disco rígido\", \"número da partição\" (por exemplo, \"hda1\").\n"
+"\"Nome Linux\" é estruturado como: \"tipo de disco rígido\", \"número do "
+"disco rígido\",\n"
+"\"número da partição\" (por exemplo, \"hda1\").\n"
"\n"
-"\"Tipo do disco rígido\" é \"hd\" se seu disco rígido for IDE e \"sd\"\n"
-"se ele for um disco rígido SCSI.\n"
+"\"Tipo do disco rígido\" é \"hd\" se o seu disco rígido for IDE e \"sd\" se "
+"for SCSI.\n"
"\n"
-"\"Número do disco rígido\" é sempre uma letra depois de \"hd\" ou \"sd\".Com "
-"discos rígidos IDE:\n"
+"\"Número do disco rígido\" é sempre uma letra após \"hd\" ou \"sd\". Com "
+"discos\n"
+"rígidos IDE:\n"
"\n"
-" * \"a\" significa \"disco rígido mestre na controladora IDE primária\",\n"
+" * \"a\" significa \"disco rígido mestre no controlador IDE primário\";\n"
"\n"
-" * \"b\" significa \"disco rígido escravo na controladora IDE primária\",\n"
+" * \"b\" significa \"disco rígido escravo no controlador IDE primário\";\n"
"\n"
-" * \"c\" , \"disco rígido mestre na controladora IDE secundária\",\n"
+" * \"c\" significa \"disco rígido mestre no controlador IDE secundário\";\n"
"\n"
-" * \"d\" , \"disco rígido escravo na controladora IDE secundária\".\n"
+" * \"d\" significa \"disco rígido escravo no controlador IDE secundário\".\n"
"\n"
-"Com discos rígidos SCSI, \"a\" significa \"SCSI ID mais baixo\", um \"b\"\n"
-"significa \"segundo SCSI ID mais baixo\", etc.\n"
+"Com discos rígidos SCSI, um \"a\" significa \"ID SCSI mais baixo\", um "
+"\"b\"\n"
+"significa \"segundo ID SCSI mais baixo\", e assim por diante.\n"
"\n"
-"O \"Nome Windows\" é a letra do seu disco rígido no Windows (o primeiro\n"
-"disco ou partição é chamado \"C:\")."
+"\"Nome Windows\" é a letra do seu disco rígido no Windows (o primeiro disco\n"
+"ou partição é chamado de \"C:\")."
#: ../help.pm:567
#, c-format
@@ -1297,9 +1332,9 @@ msgid ""
"the\n"
"list shown, click on the \"%s\" button to get the complete country list."
msgstr ""
-"\"%s\": confere a seleção do país atual. Se você não está neste país,\n"
-"clique no botão \"%s\" e escolha outro. Se seu país não está na \n"
-"lista mostrada, clique no botão \"%s\" para pegar a lista completa de países."
+"\"%s\": verifique a seleção atual do país. Se não estiver neste país,\n"
+"clique no botão \"%s\" e escolha outro. Se seu país não estiver na lista\n"
+"exibida, clique no botão \"%s\" para obter a lista completa de países."
#: ../help.pm:572
#, c-format
@@ -1308,46 +1343,50 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
-"Este passo só é mostrado quando uma partição antiga do GNU/Linux foi\n"
-"encontrada em seu computador.\n"
-"\n"
-"O DrakX precisa saber agora se você quer executar uma nova instalação\n"
-"ou fazer uma atualização do Mandriva Linux existente no seu sistema:\n"
-"\n"
-" * \"%s\": na maioria das vezes, isto remove completamente o sistema "
-"antigo.\n"
-"Porém, dependendo do seu modo de particionamento, você pode evitar que\n"
-"alguns dos dados existentes sejam sobrescritos (como o diretório \"home\").\n"
-"Se você deseja mudar o particionamento dos seus discos rígidos, ou mudar o "
-"sistema de arquivos, você deve usar esta opção.\n"
-"\n"
-" * \"%s\": este método de instalação lhe permite atualizar os pacotes\n"
-"atualmente instalados em seu sistema Mandriva Linux. Seu esquema\n"
-"atual de particionamento e dados de usuário não serão alterados. A maioria\n"
-"dos outros passos de configuração permanecerão disponíveis, semelhantes a "
-"uma instalação normal.\n"
+"Esta etapa é ativada somente se uma partição GNU/Linux existente\n"
+"for encontrada em sua máquina.\n"
+"\n"
+"O DrakX precisa saber se você deseja realizar uma nova instalação\n"
+"ou uma atualização de um sistema Mageia existente:\n"
+"\n"
+" * \"%s\". Para a maior parte, isso apaga completamente o sistema antigo.\n"
+"No entanto, dependendo do seu esquema de particionamento, você pode\n"
+"evitar que alguns dos seus dados existentes (principalmente diretórios "
+"\"home\")\n"
+"sejam sobrescritos. Se deseja alterar a forma como seus discos rígidos\n"
+"são particionados ou mudar o sistema de arquivos, você deve usar esta "
+"opção.\n"
+"\n"
+" * \"%s\". Esta classe de instalação permite atualizar os pacotes "
+"atualmente\n"
+"instalados em seu sistema Mageia. Seu esquema de particionamento atual e\n"
+"dados de usuário não serão alterados. A maioria das outras etapas de "
+"configuração\n"
+"permanece disponíveis e são semelhantes a uma instalação padrão.\n"
"\n"
-"O uso da opção \"Atualizar\" deve funcionar bem em sistemas Mandriva Linux \n"
-"versão \"8.1\" ou superior. Executar uma atualização de versões anteriores\n"
-"ao Mandriva Linux \"8.1\" não é recomendado."
+"Usar a opção ``Atualizar'' deve funcionar bem em sistemas Mageia com a "
+"versão\n"
+"\"8.1\" ou posterior. Realizar uma atualização em versões anteriores à "
+"\"8.1\" do\n"
+"Mageia, não é recomendada."
#: ../help.pm:594
#, c-format
@@ -1369,23 +1408,24 @@ msgid ""
"dialog will allow you to choose the key binding which will switch the\n"
"keyboard between the Latin and non-Latin layouts."
msgstr ""
-"Dependendo do idioma que você escolheu, o DrakX escolherá uma\n"
-"configuração de teclado particular para você. Selecione esta opção ou\n"
-"escolha um outro layout de teclado.\n"
-"\n"
-"Contudo, você pode ter um teclado que não corresponde exatamente\n"
-"ao idioma que você escolheu: por exemplo, se você for um suíço, porém\n"
-"o idioma é o inglês, você pode preferir continuar usando um teclado suíço.\n"
-"Ou se você fala inglês mas mora em Quebec, você pode estar na mesma\n"
-"situação quando sua língua nativa e seu teclado não são os mesmos. Nestes\n"
-"casos, este passo da instalação permitirá que você escolha o teclado "
-"apropriado na lista.\n"
-"\n"
-"Clique em \"%s\" para ver uma lista completa com os teclados disponíveis. \n"
-"\n"
-"Se você escolher um layout baseado em um alfabeto não-latino, o próximo\n"
-"diálogo permitirá que você escolha a tecla que irá vincular a troca entre o\n"
-"teclado latino e o não-latino."
+"Dependendo do idioma que escolheu (), o DrakX seleciona \n"
+"automaticamente um tipo específico de configuração de teclado. Verifique\n"
+"se a seleção atende às suas necessidades ou escolha outro layout de "
+"teclado.\n"
+"\n"
+"Além disso, você pode não ter um teclado que corresponda exatamente ao seu\n"
+"idioma: por exemplo, se você é um suíço que fala inglês, pode ter um "
+"teclado\n"
+"suíço. Ou se fala inglês e está localizado no Quebec, pode encontrar a\n"
+"mesma situação em que seu idioma nativo e o teclado configurado para o país\n"
+"não correspondem. Em ambos os casos, esta etapa de instalação permite que\n"
+"você selecione um teclado apropriado a partir de uma lista.\n"
+"\n"
+"Clique no botão \"%s\" para exibir uma lista de teclados suportados.\n"
+"\n"
+"Se escolher um layout de teclado baseado em um alfabeto não latino,\n"
+"o próximo diálogo permite que você escolha a combinação de teclas que\n"
+"alterna o teclado entre os layouts latino e não latino."
#: ../help.pm:612
#, c-format
@@ -1404,8 +1444,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1431,61 +1470,63 @@ msgid ""
"by the entire system. Running the command as a regular user will only\n"
"change the language settings for that particular user."
msgstr ""
-"O primeiro passo é escolher o seu idioma preferido.\n"
-"\n"
-"A escolha de seu idioma preferido afetará a documentação do sistema, o "
-"instalador\n"
-"e o sistema em geral. Selecione primeiro a região onde você está localizado\n"
-"e o idioma que você fala.\n"
-"\n"
-"Clicando em \"%s\" você poderá selecionar outros idiomas para serem\n"
-"instalados no seu sistema. Ao selecionar outros idiomas também serão \n"
-"instalados os arquivos específicos para documentação e aplicativos. Por "
-"exemplo, se\n"
-"você pretende adicionar usuários espanhóis na sua máquina, selecione\n"
-"Inglês como idioma padrão na árvore de visualização e \"%s\" na seção\n"
-"Avançado.\n"
-"\n"
-"Sobre o suporte a UTF-8 (unicode): Unicode é o novo conjunto de codificação "
-"de caracteres\n"
-"para todas os idiomas existentes. O suporte completo em GNU/Linux ainda\n"
-"está em desenvolvimento. Por esta razão, o uso dele no Mandriva Linux \n"
-"dependerá da escolha do usuário:\n"
-"\n"
-"* Se você escolher idiomas legados, que possuem uma codificação forte "
-"(idiomas\n"
-"latinos, Russo, Japonês, Chinês, Coreano, Thai, Grego, Turco e a maioria dos "
-"idiomas com iso-8859-2), a codificação legada será usada por padrão;\n"
-"\n"
-"* Outros idiomas usarão o unicode por padrão;\n"
-"\n"
-"* Se dois ou mais idiomas forem requeridos, e tais idiomas não\n"
-"usarem a mesma codificação, então o unicode irá ser usado em todo o "
-"sistema;\n"
-"\n"
-"* Finalmente, o uso do unicode poderá ser forçado para o sistema que o "
-"usuário\n"
-"solicitar, através da opção \"%s\". independente do(s) idioma(s)\n"
-"selecionado(s).\n"
-"\n"
-"Note que você não está limitado a escolher um único idioma. Você pode\n"
-"selecionar vários, ou instalar todos selecionando a opção \"%s\". Selecionar "
-"o suporte para um idioma significa que as traduções, fontes, dicionários e "
-"corretores ortográficos, entre outros itens, serão também instaladas para "
-"este idioma.\n"
-"\n"
-"Para trocar entre os vários idiomas instalados no sistema, você pode\n"
-"executar o comando \"/usr/sbin/localedrake\" como \"root\" para alterar o\n"
-"idioma usado pelo sistema inteiro, e para todos os usuários. Executando o "
-"comando como usuário\n"
-"comum, a mudança apenas afetará o usuário em questão."
+"O primeiro passo é escolher seu idioma preferido.\n"
+"\n"
+"Sua escolha de idioma preferido afeta o instalador, a documentação e o\n"
+"sistema em geral. Primeiro, selecione a região em que você está localizado\n"
+"e, em seguida, o idioma que fala.\n"
+"\n"
+"Clicar no botão \"%s\" permite que você selecione outros idiomas a serem\n"
+"instalados em sua estação de trabalho, instalando assim os arquivos "
+"específicos\n"
+"para documentação do sistema e aplicativos. Por exemplo, se usuários\n"
+"espanhóis forem usar sua máquina, selecione o inglês como idioma padrão na\n"
+"visualização em árvore e \"%s\" na seção Avançado.\n"
+"\n"
+"Sobre o suporte a UTF-8 (unicode): Unicode é uma nova codificação de "
+"caracteres\n"
+"destinada a cobrir todos os idiomas existentes. No entanto, o suporte "
+"completo a\n"
+"ela no GNU/Linux ainda está em desenvolvimento. Por essa razão, o uso de "
+"UTF-8\n"
+"no Mageia depende das escolhas do usuário:\n"
+"\n"
+" * Se você escolher um idioma com uma codificação legada forte (idiomas "
+"latin1,\n"
+"russo, japonês, chinês, coreano, tailandês, grego, turco, a maioria dos "
+"idiomas\n"
+"iso-8859-2), a codificação legada será usada por padrão;\n"
+"\n"
+" * Outros idiomas usarão unicode por padrão;\n"
+"\n"
+" * Se forem necessários dois ou mais idiomas, e eles não usarem\n"
+"a mesma codificação, então unicode será usado para todo o sistema;\n"
+"\n"
+" * Finalmente, o unicode também pode ser forçado para uso em todo o\n"
+"sistema a pedido do usuário, selecionando a opção \"%s\" independentemente\n"
+"dos idiomas escolhidos.\n"
+"\n"
+"Note que você não está limitado a escolher um único idioma adicional.\n"
+"Você pode escolher vários ou até mesmo instalar todos selecionando a\n"
+"caixa \"%s\". Selecionar o suporte para um idioma significa que traduções,\n"
+"fontes, corretores ortográficos, etc., também serão instalados.\n"
+"\n"
+"Para alternar entre os vários idiomas instalados em seu sistema, você pode\n"
+"executar o comando \"localedrake\" como \"root\" para mudar o idioma usado\n"
+"por todo o sistema. Executar o comando como um usuário como\n"
+"altera apenas as configurações de idioma para esse usuário específico."
#: ../help.pm:650
#, c-format
msgid "Espanol"
msgstr "Espanhol"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr "Usar unicode por padrão"
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1521,40 +1562,39 @@ msgid ""
"Test the buttons and check that the mouse pointer moves on-screen as you\n"
"move your mouse about."
msgstr ""
-"Normalmente, o DrakX não tem problemas em detectar o número de botões\n"
-"de seu mouse. Caso isto ocorra, ele assume que você tem um mouse\n"
-"de dois botões, e irá configurá-lo para emulação do terceiro botão. O\n"
-"terceiro botão pode ser acionado pressionando simultaneamente os botões\n"
-"esquerdo e direito do mouse. O DrakX saberá automaticamente se a interface\n"
-"é PS/2, serial ou USB.\n"
-"\n"
-"Se você tiver um mouse com 3 botões que não possua roda (wheel), você pode\n"
-"escolher um mouse \"%s\". DrakX irá então configurar seu mouse para que "
-"você\n"
-"possa simular o uso da roda da seguinte maneira: pressione o botão do meio "
-"e\n"
-"mova o ponteiro do seu mouse para cima e para baixo.\n"
-"\n"
-"Se por alguma razão você quiser especificar um tipo diferente de mouse,\n"
-"selecione o tipo da lista.\n"
-"\n"
-"Você pode selecionar a entrada \"%s\" para escolher um tipo de mouse\n"
-"\"genérico\" o qual deve funcionar com todos os mouses novos.\n"
-"\n"
-"Se você escolher um mouse diferente do padrão, uma tela será mostrada.\n"
-"Use os botões e a roda para verificar se as configurações estão corretas\n"
-"e se o mouse está configurado corretamente. Se o mouse não funcionar\n"
-"corretamente, pressione a barra de espaços ou o [Enter] para \n"
-"cancelar o teste e voltar para a lista de escolhas.\n"
-"\n"
-"Ocasionalmente, a roda do mouse (wheel) não será detectada automaticamente,\n"
-"e então você necessitará selecionar seu mouse de uma lista. Escolha\n"
-"corretamente a porta que seu mouse está conectado. Após selecionar\n"
-"um mouse e ter pressionado no botão \"%s\", uma imagem do mouse será\n"
-"mostrada na tela. Mova toda a roda do mouse para assegurar-se de que\n"
-"esteja ativada corretamente. Após verificar o funcionamento da roda\n"
-"do mouse, teste os botões e certifique-se de que o ponteiro do mouse\n"
-"move-se junto com o mesmo."
+"Normalmente, o DrakX não tem problemas para detectar o número de\n"
+"botões do seu mouse. Se houver algum problema, ele assume que você\n"
+"tem um mouse de dois botões e o configura para emulação do terceiro botão.\n"
+"O terceiro botão de um mouse de dois botões pode ser obtido clicando\n"
+"simultaneamente nos botões esquerdo e direito do mouse. O DrakX\n"
+"identifica automaticamente se o seu mouse usa uma interface PS/2, serial\n"
+"ou USB.\n"
+"\n"
+"Se tiver um mouse de 3 botões sem roda, pode escolher um mouse \"%s\".\n"
+"O DrakX configura seu mouse para que você possa simular a roda\n"
+"com ele: para fazer isso, pressione o botão do meio e mova o ponteiro do\n"
+"mouse para cima e para baixo.\n"
+"\n"
+"Se por algum motivo você quer especificar um tipo diferente de mouse,\n"
+"selecione na lista fornecida.\n"
+"\n"
+"Você pode selecionar a entrada \"%s\" para escolher um tipo \"genérico\",\n"
+"que funciona com quase todos os mouses.\n"
+"\n"
+"Se escolher um mouse diferente do padrão, uma tela de teste é\n"
+"exibida. Use os botões e a roda para verificar se as configurações estão\n"
+"corretas e se o mouse está funcionando corretamente. Se o mouse não\n"
+"estiver funcionando bem, pressione a barra de espaço ou a tecla [Enter]\n"
+"para cancelar o teste e você será retornado à lista de mouses.\n"
+"\n"
+"Ocasionalmente, mouses com roda não são detectados automaticamente,\n"
+"então você precisa selecioná-lo a partir de uma lista.\n"
+"Certifique-se de selecionar aquele correspondente à porta à qual seu mouse\n"
+"está conectado. Após selecionar e pressionar o botão \"%s\", uma imagem\n"
+"do mouse é exibida na tela. Role a roda para garantir que ela esteja\n"
+"ativando corretamente. À medida que rola a roda, você vê a roda de\n"
+"rolagem na tela se movendo. Teste os botões e verifique se o ponteiro\n"
+"se move na tela conforme movimenta o mouse."
#: ../help.pm:684
#, c-format
@@ -1572,98 +1612,10 @@ msgid ""
"Please select the correct port. For example, the \"COM1\" port under\n"
"Windows is named \"ttyS0\" under GNU/Linux."
msgstr ""
-"Por favor, selecione a porta correta. Por exemplo, a porta COM1\n"
-"no MS Windows é chamada \"ttyS0\" no GNU/Linux."
+"Selecione a porta correta. Por exemplo, a porta \"COM1\" no\n"
+"Windows, é chamada de \"ttyS0\" no GNU/Linux."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Este ponto é crucial para a segurança do seu sistema GNU/Linux: você\n"
-"deverá digitar a senha de \"root\". \"Root\" é o administrador do sistema,\n"
-"e é o único autorizado a fazer atualizações, adicionar usuários e mudar\n"
-" configurações gerais do computador. Em suma: \"root\" pode fazer tudo! Por "
-"isso\n"
-"você deve escolher uma senha difícil de adivinhar - o DrakX irá avisá-lo se "
-"a senha que você digitar for muito simples. Você pode também escolher não\n"
-"digitar uma senha, mas nós desaconselhamos fortemente esta opção. O sistema\n"
-"GNU/Linux é tão vulnerável a erros cometidos pelo operador como qualquer "
-"outro.\n"
-"O \"root\"\n"
-"pode contornar todas as limitações do sistema e desavisadamente apagar \n"
-" todos os dados de uma partição, por exemplo. É muito importante, portanto, "
-"que seja\n"
-"difícil se tornar \"root\".\n"
-"\n"
-"A senha deve ser um mistura de caracteres alfanuméricos, com pelo menos 8 \n"
-"caracteres. Nunca escreva a senha de \"root\" num papel -- isto facilita "
-"para \n"
-" alguém comprometer seu sistema\n"
-"\n"
-"Porém, não faça também uma senha muito complicada e longa, porque você\n"
-" deve ser capaz de lembrá-la!\n"
-"\n"
-"A senha não será mostrada na tela enquanto você digita. Portanto você\n"
-"deverá digitar a senha duas vezes para reduzir a chance de erro. Se ocorrer\n"
-"de você digitar o mesmo erro duas vezes, você deverá fazer o primeiro login\n"
-"no sistema com esta senha \"errada\".\n"
-"\n"
-"Se seu acesso a este computador é controlado por um servidor de "
-"autenticação,\n"
-"clique no botão \"%s\".\n"
-"\n"
-"Se sua rede usa o protocolo LDAP, NIS ou autenticação em um PDC Windows,\n"
-"selecione o servidor apropriado em \"%s\". Se você não sabe, pergunte ao "
-"seu\n"
-"administrador de rede.\n"
-"\n"
-"Se você tiver problemas para lembrar de suas senhas, se seu computador "
-"nunca\n"
-" será conectado à internet ou se você confiar em absolutamente todas as\n"
-"pessoas que usam seu computador, você pode escolher usar \"%s\"."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "autenticação"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1677,39 +1629,39 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
"know what you're doing."
msgstr ""
-"Um gerenciador de inicialização (ou boot loader) é um pequeno programa que é "
-"mostrado na inicialização (boot)de um computador. Ele é responsável por\n"
-"iniciar todo o sistema. Normalmente, a sua instalação é totalmente "
-"automática.\n"
-"O DrakX irá analisar o setor de boot de seu disco e proceder de acordo com\n"
-"o que for encontrado nele:\n"
-"\n"
-" * se um setor de boot Windows for encontrado, ele será substituído por um\n"
-"setor de boot GRUB/LILO. Desta forma, você será capaz de carregar qualquer\n"
-"sistema GNU/Linux ou qualquer outro sistema operacional instalado em sua "
-"máquina.\n"
-"\n"
-" * se um setor de boot GRUB ou LILO for encontrado, ele será substituído por "
-"um novo.\n"
-"\n"
-"Se o DrakX não puder determinar aonde deverá ser armazenado o setor de "
-"boot,\n"
-"ele irá perguntar para você. Geralmente, o \"%s\" é o lugar mais seguro.\n"
-"Escolhendo \"%s\", nenhum gerenciador de inicialização será instalado. Use "
-"esta opção somente se\n"
-"você souber o que está fazendo."
+"Um gerenciador de inicialização é um pequeno programa que é iniciado\n"
+"pelo computador na inicialização (boot). Ele é responsável por iniciar\n"
+"todo o sistema. Normalmente, a instalação do gerenciador de inicialização\n"
+"é totalmente automatizada. O DrakX analisa o setor de inicialização do\n"
+"disco e age de acordo com o que encontrar:\n"
+"\n"
+" * se um setor de inicialização do Windows for encontrado, ele é "
+"substituído\n"
+"por um setor de inicialização GRUB/LILO. Dessa forma, você pode carregar\n"
+"tanto o GNU/Linux quanto qualquer outro sistema operacional instalado em\n"
+"sua máquina.\n"
+"\n"
+" * se um setor de inicialização GRUB ou LILO for encontrado, ele é "
+"substituído\n"
+"por um novo.\n"
+"\n"
+"Se o DrakX não conseguir determinar onde colocar o setor de inicialização, "
+"ele\n"
+"pergunta onde deve colocá-lo. Geralmente, \"%s\" é o local mais seguro.\n"
+"Escolher \"%s\" não instala nenhum gerenciador de inicialização. Use esta\n"
+"opção somente se souber o que está fazendo."
#: ../help.pm:745
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1730,51 +1682,51 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
-"Aqui você seleciona o sistema de impressão para o seu computador.\n"
-"Outros sistemas operacionais podem oferecer-lhe apenas um, mas o Mandriva\n"
-"Linux oferece dois. Cada um se encaixa melhor em um tipo particular de "
-"configuração.\n"
-"\n"
-" * \"%s\" -- que significa 'print, do not queue' ou 'imprima não deixe na\n"
-"fila', e é a escolha caso você tenha uma conexão direta com sua\n"
-"impressora e você queira ser capaz decorrigir falhas na impressão, e\n"
-"também se você não possuir impressoras em rede. (\"%s\" só funcionará em "
-"redes\n"
-"bem simples e se tornará lento quando usado em redes). É recomendado que vc "
-"use \"pdq\"\n"
-"se este é sua primeira experiência com GNU/Linux.\n"
-"\n"
-" * \"%s\" -- 'Common Unix Printing System' ou 'Sistema de Impressão Comum do "
-"Unix', é excelente para imprimir em\n"
-"sua impressora local e também através do mundo. É simples de se configurar\n"
-"e pode agir como servidor ou cliente para o antigo sistema de impressão \"lpd"
-"\".\n"
-"Por isto, é compatível com os sistemas antigos que podem precisar de "
-"serviços de\n"
-"impressão. Pode fazer vários truques, mas a configuração é quase tão fácil "
-"quanto a\n"
-"do \"pdq\". Se você precisar emular um servidor \"lpd\", você deve ativar o "
-"serviço chamado \"cups-lpd\".\n"
-"\" \"%s\" possui várias interfaces gráficas para selecionar as opções de "
-"impressão ou\n"
-"gerenciar a impressão.\n"
-"\n"
-"Você poderá mudar a sua escolha após a instalação utilizando o\n"
-"PrinterDrake no Centro de Controle Mandriva Linux, e clicando no botão \"%s"
-"\"."
+"Agora é hora de selecionar um sistema de impressão para o seu\n"
+"computador. Outros sistemas operacionais podem oferecer apenas\n"
+"um, mas o Mageia oferece dois. Cada um dos sistemas de impressão\n"
+"é mais adequado para determinados tipos de configuração.\n"
+"\n"
+" * \"%s\" -- que significa ``imprimir, não enfileirar'', é a escolha ideal "
+"se você\n"
+"tiver uma conexão direta com sua impressora, quiser agir\n"
+"rapidamente em caso de atolamento de papel, e não tiver impressoras\n"
+"em rede. (\"%s\" lida apenas com casos muito simples de rede e é um pouco\n"
+"lento quando usado em redes). Recomenda-se o uso de \"pdq\" se esta\n"
+"for sua primeira experiência com GNU/Linux.\n"
+"\n"
+" * \"%s\" significa `` Common Unix Printing System'' e é uma excelente\n"
+"escolha para imprimir na sua impressora local ou em uma localizada do\n"
+"outro lado do planeta. É simples de configurar e pode atuar como servidor\n"
+"ou cliente para o antigo sistema de impressão \"lpd\", sendo compatível\n"
+"com sistemas operacionais mais antigos que ainda possam precisar de\n"
+"serviços de impressão. Embora bastante poderoso, a configuração básica\n"
+"é quase tão fácil quanto \"pdq\". Se precisar emular um servidor \"lpd\",\n"
+"certifique-se de ativar o daemon \"cups-lpd\". \"%s\" inclui interfaces\n"
+"gráficas para impressão ou escolha de opções de impressora e para\n"
+"gerenciamento da impressora.\n"
+"\n"
+"Se fizer uma escolha agora e depois perceber que não gosta do\n"
+"sistema de impressão escolhido, você pode alterá-lo executando\n"
+"o PrinterDrake no Centro de Controle Mageia e clicando no botão \"%s\"."
#: ../help.pm:768
#, c-format
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr "CUPS"
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
-msgstr "Expert"
+msgstr "Avançado"
#: ../help.pm:771
#, c-format
@@ -1784,7 +1736,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1796,26 +1748,26 @@ msgid ""
"which parameters need to be passed to the hardware, you'll need to manually\n"
"configure the driver."
msgstr ""
-"O DrakX tentará localizar primeiramente qualquer dispositivo IDE presente "
-"em\n"
-"sua máquina. Ele também tentará encontrar um ou mais placas PCI SCSI. Se o\n"
-"DrakX encontrar um adaptador SCSI ele instalará automaticamente o driver\n"
-"apropriado.\n"
-"\n"
-"Como a detecção do hardware não é à prova de falhas, o DrakX pode falhar ao\n"
-"tentar detectar seus discos. Se isto acontecer, você precisará especificar "
-"seu\n"
-"hardware manualmente. \n"
-"\n"
-"Se você tiver que especificar manualmente o seu adaptador, o DrakX\n"
-"perguntará se você quer especificar opções para ele. Você pode deixar\n"
-"que o DrakX examine o hardware para descobrir as opções. Isto\n"
-"normalmente funciona bem.\n"
-"\n"
-"Se o DrakX não conseguir detectar as opções automaticamente para determinar\n"
-"quais parâmetros são necessários passar ao hardware, você precisará "
-"fornecer\n"
-"configurar o para o driver manualmente."
+"O DrakX primeiro detecta quaisquer dispositivos IDE presentes em seu\n"
+"computador. Ele também busca uma ou mais placas PCI SCSI em seu\n"
+"sistema. Se uma placa SCSI for encontrada, o DrakX instala\n"
+"automaticamente o driver apropriado.\n"
+"\n"
+"Como a detecção de hardware não é infalível, o DrakX pode falhar ao "
+"detectar\n"
+"seus discos rígidos. Se isso ocorrer, você precisa especificar seu hardware\n"
+"manualmente.\n"
+"\n"
+"Se teve que especificar manualmente seu adaptador PCI SCSI, o DrakX\n"
+"pergunta se deseja configurar opções para ele. Você deve permitir que o\n"
+"DrakX faça uma procura no hardware para obter as opções específicas\n"
+"necessárias para inicializar o adaptador. Na maioria das vezes, o DrakX "
+"passa\n"
+"por esta etapa sem problemas.\n"
+"\n"
+"Se o DrakX não conseguir procurar as opções para determinar automaticamente\n"
+"quais parâmetros precisam ser passados para o hardware, será necessário\n"
+"configurar o driver manualmente."
#: ../help.pm:789
#, c-format
@@ -1824,10 +1776,10 @@ msgid ""
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver."
msgstr ""
-"\"%s\": se uma placa de som for detectada em seu sistema, ela estará\n"
-"indicada aqui. Se você observar que a placa de som indicada não é a que\n"
-"realmente está presente em seu sistema, você pode clicar no botão e escolher "
-"outro driver."
+"\"%s\": se uma placa de som for detectada em seu sistema, ela será exibida\n"
+"aqui. Se perceber que a placa de som não é a que está realmente\n"
+"presente em seu sistema, você pode clicar no botão e escolher um driver "
+"diferente."
#: ../help.pm:794
#, c-format
@@ -1853,11 +1805,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1875,8 +1822,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1893,83 +1839,81 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-"A título de revisão, o DrakX irá resumir em uma lista as informações que "
-"tem\n"
-"sobre o seu sistema. Dependendo do hardware instalado, você pode ter\n"
-"uma ou todas estas entradas. Cada uma delas é um elemento a ser\n"
-"configurado, seguido de um breve resumo da configuração atual.\n"
-"Clique no botão \"%s\" correspondente para fazer alguma alteração.\n"
-"\n"
-" * \"%s\": verifica a configuração atual do mapa de teclado e modifica-o, \n"
-"caso necessário.\n"
-"\n"
-" * \"%s\": verifica a seleção atual de país. Se não estiver neste país, "
-"clique\n"
-"no botão \"%s\" e escolha outro. Se o seu país não aparecer na primeira\n"
-"lista mostrada, pressione \"%s\" para obter a lista completa dos\n"
-"países.\n"
+"Como revisão, o DrakX apresenta um resumo das informações que ele\n"
+"coletou sobre seu sistema. Dependendo do hardware instalado em sua\n"
+"máquina, você pode ver algumas ou todas as seguintes entradas. Cada\n"
+"entrada é composta pelo item de hardware a ser configurado, seguido por\n"
+"um breve resumo da configuração atual. Clique no botão \"%s\"\n"
+"correspondente para fazer a alteração.\n"
+"\n"
+" * \"%s\": verifique a configuração atual do mapa de teclado e altere se\n"
+"necessário.\n"
"\n"
-" * \"%s\": Por padrão, o DrakX deduz seu fuso horário baseado no país\n"
-"escolhido. Pressione o botão \"%s\" para mudar caso não esteja correto.\n"
+" * \"%s\": verifique a seleção atual do país. Se não estiver neste país,\n"
+"clique no botão \"%s\" e escolha outro. Se seu país não estiver na lista\n"
+"exibida, clique no botão \"%s\" para obter a lista completa de países.\n"
"\n"
-" * \"%s\": verifique a configuração do mouse atual e mude-a se for "
-"necessário.\n"
+" * \"%s\": padrão, o DrakX deduz seu fuso horário com base no país\n"
+"escolhido. Você pode clicar no botão \"%s\" aqui se isso não estiver "
+"correto.\n"
"\n"
-" * \"%s\": clique no botão \"%s\" para abrir o assistente de\n"
-"configuração da impressora. Veja o capítulo correspondente no\n"
-"'Guia do Iniciante' para saber mais sobre como configurar uma\n"
-"impressora. A interface utilizada no manual é semelhante à usada\n"
-"durante a instalação\n"
+" * \"%s\": verifique a configuração atual do mouse e clique no botão\n"
+"para alterar se necessário.\n"
"\n"
-" * \"%s\": se uma placa de som for detectada no seu sistema, ela\n"
-"será mostrada aqui. Se a placa mostrada for diferente daquela que se\n"
-"encontra no seu sistema, clique no botão e escolha a correta.\n"
+" * \"%s\": se uma placa de som for detectada em seu sistema, ela será\n"
+"exibida aqui. Se notar que a placa de som não é a que está presente\n"
+"em seu sistema, você pode clicar no botão e escolher um driver diferente.\n"
"\n"
-" * \"%s\":se uma placa de TV foi detectada no seu sistema, ela será "
-"indicada \n"
-"aqui. Se existe uma placa e ela não foi detectada, clique\n"
-"no botão \"%s\" para tentar configurá-la manualmente.\n"
+" * \"%s\": se tiver uma placa de TV, é aqui que as informações sobre\n"
+"sua configuração são exibidas. Se tiver uma placa de TV e ela não for\n"
+"detectada, clique em \"%s\" para tentar configurá-la manualmente.\n"
"\n"
-" * \"%s\": você pode clicar em \"%s \" para mudar os parâmetros associados\n"
-"com a placa, se você achar que a configuração está incorreta.\n"
+" * \"%s\": você pode clicar em \"%s\" para alterar os parâmetros associados "
+"à\n"
+"placa se achar que a configuração está errada.\n"
"\n"
-" * \"%s\": por padrão, o DrakX configura o seu vídeo com a resolução de "
-"\"800x600\" ou \"1024x768\". Se isto não é o que deseja, clique em\n"
-"\"%s\" para reconfigurar a interface gráfica.\n"
+" * \"%s\": por padrão, o DrakX configura sua interface gráfica em resolução\n"
+"\"800x600\" ou \"1024x768\". Se isso não for adequada para você, clique\n"
+"em \"%s\" para reconfigurar sua interface gráfica.\n"
"\n"
-" * \"%s\": se você deseja configurar a Internet ou o acesso a uma rede\n"
-"local, você pode fazê-lo agora. Verifique a documentação impressa ou use\n"
-"o Centro de Controle Mandriva Linux após a instalação ter terminado para\n"
-"utilizar a ajuda integrada completa.\n"
+" * \"%s\": se quer configurar seu acesso à internet ou rede local, você\n"
+"pode fazê-lo agora. Consulte a documentação impressa ou use o Centro\n"
+"de Controle Mageia após a instalação ser concluída para aproveitar\n"
+"a ajuda completa em tempo real.\n"
"\n"
-" * \"%s\": permite configurar endereços de proxies HTTP e FTP se a máquina\n"
-"que você está instalando estiver localizada atrás de um servidor proxy.\n"
+" * \"%s\": permite configurar endereços de proxy HTTP e FTP se a máquina\n"
+"em que você está instalando estiver atrás de um servidor proxy.\n"
"\n"
-" * \"%s\": aqui você pode redefinir o nível de segurança que escolheu\n"
-"anteriormente.\n"
+" * \"%s\": esta entrada permite redefinir o nível de segurança configurado\n"
+"em uma etapa anterior .\n"
"\n"
-" * \"%s\": se você pretende conectar a sua máquina à Internet, é uma boa\n"
-"idéia protegê-la contra intrusos, configurando um firewall. Veja o capítulo\n"
-"correspondente no \"Guia do Usuário\" para mais detalhes sobre como\n"
-"configurar um firewall.\n"
+" * \"%s\": se planeja conectar sua máquina à internet, é uma boa ideia\n"
+"se proteger contra intrusões configurando um firewall. Consulte a seção\n"
+"correspondente do ``Guia de introdução'' para obter detalhes sobre as\n"
+"configurações de firewall.\n"
"\n"
-" * \"%s\": se você deseja mudar sua configuração do gerenciador de\n"
-"inicialização, clique neste botão. Recomendado apenas para usuários\n"
-"avançados. Veja documentação impressa ou a ajuda integrada, sobre\n"
-"como configurar o gerenciador de inicialização no Centro de Controle\n"
-"do Mandriva Linux.\n"
+" * \"%s\": se quer alterar a configuração do gerenciador de inicialização,\n"
+"clique neste botão. Isso deve ser reservado para usuários avançados.\n"
+"Consulte a documentação exibida ou a ajuda em tempo real sobre a "
+"configuração\n"
+"do gerenciador de inicialização no Centro de Controle Mageia.\n"
"\n"
-" * \"%s\": você poderá escolher aqui quais serviços que serão iniciados\n"
-"em sua máquina. Se você pretende usar sua máquina como servidor, é uma\n"
-"boa idéia verificar esta configuração e desativar o que não for necessário."
+" * \"%s\": através desta entrada, você pode ajustar quais serviços serão\n"
+"executados em sua máquina. Se planeja usar esta máquina como um\n"
+"servidor, é uma boa ideia revisar essa configuração."
-#: ../help.pm:858
+#: ../help.pm:809
+#, c-format
+msgid "TV card"
+msgstr "Placa de TV"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "Placa ISDN"
@@ -1982,32 +1926,35 @@ msgstr "Interface gráfica"
#: ../help.pm:861
#, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
-"Escolha o disco rígido que você quer apagar para instalar sua nova\n"
-"partição Mandriva Linux. Tenha cuidado, pois todos os dados existentes\n"
-"serão perdidos e não poderão ser recuperados!"
+"Escolha o disco rígido que deseja apagar para instalar sua nova partição\n"
+"do Mageia. Cuidado, todos os dados neste disco são perdidos e não podem\n"
+"ser recuperados!"
#: ../help.pm:866
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
-"Clique em \"%s\" se você quiser apagar todos os dados e partições \n"
-"existentes neste disco rígido. Tenha cuidado, pois após clicar em \"%s\", \n"
-"você não será capaz de recuperar os dados/partições existentes neste\n"
-"disco rígido, incluindo quaisquer dados do Windows.\n"
-"\n"
-"Clique em \"%s\" para sair desta operação, sem perder qualquer dado\n"
-"e/ou partição presente neste disco rígido."
+"Clique em \"%s\" se deseja excluir todos os dados e partições presentes\n"
+"neste disco rígido. Cuidado, após clicar em \"%s\", você não pode recuperar\n"
+"nenhum dado ou partição presente neste disco rígido, incluindo quaisquer "
+"dados\n"
+"do Windows.\n"
+"\n"
+"Clique em \"%s\" para sair desta operação sem perder dados e partições\n"
+"presentes neste disco rígido."
#: ../help.pm:872
#, c-format
@@ -2018,4 +1965,3 @@ msgstr "Próximo ->"
#, c-format
msgid "<- Previous"
msgstr "<- Anterior"
-
diff --git a/perl-install/install/help/po/ro.po b/perl-install/install/help/po/ro.po
index 4124e5d84..f836a27ea 100644
--- a/perl-install/install/help/po/ro.po
+++ b/perl-install/install/help/po/ro.po
@@ -1,4 +1,4 @@
-# Translation file of Mandriva Linux graphic install
+# Translation file of Mageia graphic install
# Copyright (c) 2000 Mandriva
# Florin Grad <florin@mandriva.com>, 1999-2000
# Dragos Marian Barbu <dragosb@softhome.net>, 2000
@@ -9,21 +9,23 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX 7.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+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."
"sourceforge.net>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3;plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1))\n"
+"Plural-Forms: nplurals=3;plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?"
+"2:1))\n"
#: ../help.pm:14
#, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
@@ -71,13 +73,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Vreţi să folosiţi această facilitate?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -87,31 +100,35 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
#: ../help.pm:88
#, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
@@ -122,12 +139,11 @@ msgstr ""
#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -140,8 +156,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -208,10 +223,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -237,16 +252,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr ""
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -284,7 +290,12 @@ msgid ""
"server which can be used by other machines on your local network as well."
msgstr ""
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Sincronizare automată a ceasului"
@@ -308,7 +319,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -406,39 +417,43 @@ msgstr ""
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -447,15 +462,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -474,7 +489,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Foloseşte o partiţie existentă"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Şterge tot discul"
@@ -522,7 +542,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "generează dischetă de autoinstalare"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -542,7 +577,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -551,7 +586,7 @@ msgstr ""
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -574,7 +609,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -590,21 +625,24 @@ msgstr "Administrator de securitate:"
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -620,21 +658,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -651,22 +691,41 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, fuzzy, c-format
msgid "Removable media auto-mounting"
msgstr "Automontare mediu detaşabil"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Schimbă între modul normal/expert"
@@ -674,34 +733,40 @@ msgstr "Schimbă între modul normal/expert"
#: ../help.pm:536
#, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
@@ -721,23 +786,23 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
#: ../help.pm:594
@@ -778,8 +843,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -811,7 +875,12 @@ msgstr ""
msgid "Espanol"
msgstr ""
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -867,53 +936,7 @@ msgstr ""
"Vă rog selectaţi portul corect. De exemplu, portul \"COM1\" din Windows e\n"
"numit \"ttyS0\" în GNU/Linux."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "autentificare"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -927,7 +950,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -938,7 +961,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -959,7 +982,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
@@ -968,7 +991,12 @@ msgstr ""
msgid "pdq"
msgstr ""
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Expert"
@@ -981,7 +1009,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1026,11 +1054,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1048,8 +1071,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1066,14 +1088,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "Placă ISDN"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "Placă ISDN"
@@ -1086,8 +1113,8 @@ msgstr "Interfaţă grafică"
#: ../help.pm:861
#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"Alegeţi discul fix pe care doriţi să îl ştergeţi pentru a instala noua "
@@ -1099,12 +1126,14 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Clic pe \"%s\" dacă doriţi ştergerea tuturor datelor şi partiţiilor "
"existente\n"
@@ -1127,3 +1156,5 @@ msgstr "Următorul ->"
msgid "<- Previous"
msgstr "<- Precedentul"
+#~ msgid "authentication"
+#~ msgstr "autentificare"
diff --git a/perl-install/install/help/po/ru.po b/perl-install/install/help/po/ru.po
index c219f43a1..747b19348 100644
--- a/perl-install/install/help/po/ru.po
+++ b/perl-install/install/help/po/ru.po
@@ -1,34 +1,39 @@
-# Translation of DrakX.po to Russian
-# Russian translation of drakX messages
-# Copyright (C) 1999-2003 Mandriva
-# Pavel Maryanov <acid_jack@ukr.net>, 2002,2003, 2005.
-# Alice Lafox <alice@lafox.com.ua>, 2003.
-# Alice Lafox <alice@lafox.net>, 2004, 2005.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
+# Translators:
+# Yuri Chornoivan <yurchor@ukr.net>, 2024
+#
+#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: DrakX\n"
+"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
-"PO-Revision-Date: 2005-09-20 18:19+0300\n"
-"Last-Translator: Pavel Maryanov <acid_jack@ukr.net>\n"
-"Language-Team: Russian <doc@lafox.net>\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
+"PO-Revision-Date: 2024-09-04 17:33+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>, 2024\n"
+"Language-Team: Russian (https://app.transifex.com/MageiaLinux/teams/9361/"
+"ru/)\n"
+"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.10.2\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || "
+"(n%100>=11 && n%100<=14)? 2 : 3);\n"
#: ../help.pm:14
#, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Прежде чем продолжить, вы должны внимательно прочитать условия лицензии.\n"
-"Лицензия распространяется на весь дистрибутив Mandriva Linux. Если вы\n"
+"Лицензия распространяется на весь дистрибутив Mageia. Если вы\n"
"согласны со всеми условиями лицензии, отметьте пункт \"%s\". Если нет -\n"
"нажатие на кнопку \"%s\" приведет к перезагрузке вашего компьютера."
@@ -111,15 +116,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr "Имя пользователя"
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr "Принять пользователя"
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Хотите использовать эту возможность?"
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -129,24 +143,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Перечисленное выше является существующими разделами Linux, определенными на\n"
@@ -163,7 +181,8 @@ msgstr ""
"\"Название\" разделяется на: \"тип жесткого диска\", \"номер жесткого\n"
"диска\", \"номер раздела\" (например, \"hda1\").\n"
"\n"
-"\"Hard drive type\" это \"hd\", если ваш жесткий диск IDE и \"sd\", если он\n"
+"\"Hard disk drive type\" это \"hd\", если ваш жесткий диск IDE и \"sd\", "
+"если он\n"
"SCSI.\n"
"\n"
"\"Номер жесткого диска\" всегда является буквой после \"hd\" или \"sd\".\n"
@@ -180,35 +199,30 @@ msgstr ""
"Для жестких дисков SCSI, \"a\" означает \"lowest SCSI ID\", а \"b\"\n"
"означает \"second lowest SCSI ID\", и т.д."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
#: ../help.pm:88
#, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Инсталляция Mandriva Linux размещена на нескольких CD-ROMах. Если выбранный\n"
+"Инсталляция Mageia размещена на нескольких CD-ROMах. Если выбранный\n"
"пакет находится на другом CD-ROM, DrakX будет отдавать текущий CD и просить\n"
"вас вставить другой по мере надобности. Если у вас нет требуемого CD под "
"руками,\n"
"просто нажмите \"%s\", тогда соответствующие пакеты не будут устанавливаться."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
#: ../help.pm:95
#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -221,8 +235,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -260,12 +273,11 @@ msgid ""
"megabytes."
msgstr ""
"Теперь настало время определить, какие программы вы хотите установить в\n"
-"вашу систему. С Mandriva Linux поставляются тысячи пакетов и, для упрощения\n"
+"вашу систему. С Mageia поставляются тысячи пакетов и, для упрощения\n"
"выбора, они разбиты на группы.\n"
"\n"
-"Пакеты сортированы по группам, которые соответствуют специфике\n"
-"использования вашей машины. В Mandriva Linux пакеты сортируются по четырем\n"
-"категориям. Вы можете смешивать и сочетать приложения из различных\n"
+"В Mageia пакеты сортируются по четырем категориям.\n"
+"Вы можете смешивать и сочетать приложения из различных\n"
"категорий, например, вариант установки ``Рабочая станция'' может иметь\n"
"приложения из категории ``Разработка''.\n"
"\n"
@@ -274,7 +286,13 @@ msgstr ""
"рабочей станции.\n"
"\n"
" * \"%s\": если вы собираетесь заняться программированием, выберите\n"
-"соответствующие группы из этой категории.\n"
+"соответствующие группы из этой категории. Специальная группа\n"
+"\"LSB\" настроит систему таким образом, что она будет содержать наиболее "
+"полную\n"
+"спецификацию Стандартной базы Linux.\n"
+" Выбор \"LSB\" группы обеспечит 100%%-LSB совместимость\n"
+"системы. Однако, если вы не выберете группу \"LSB\", вы всё ещё\n"
+"будете иметь систему, которая почти на 100%% LSB-совместима.\n"
"\n"
" * \"%s\": если ваша машина будет работать сервером, выберите какие из\n"
"часто используемых служб вы желаете установить на нее.\n"
@@ -286,7 +304,7 @@ msgstr ""
"При наведении курсора мыши на имя группы будет показываться короткое\n"
"пояснение к данной группе.\n"
"\n"
-"ы можете отметить пункт \"%s\", который очень полезен, если вы хорошо\n"
+"Вы можете отметить пункт \"%s\", который очень полезен, если вы хорошо\n"
"знаете предлагаемые пакеты, или если вы хотите иметь полный контроль над\n"
"тем, что будет устанавливаться.\n"
"\n"
@@ -323,8 +341,6 @@ msgstr "С базовой документацией"
msgid "Truly minimal install"
msgstr "Самая минимальная установка"
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
#: ../help.pm:152
#, c-format
msgid ""
@@ -339,10 +355,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -372,10 +388,10 @@ msgstr ""
"\n"
"!! Если был выбран какой-либо серверный пакет, специально или он был частью\n"
"какой-либо группы, вас попросят подтвердить, действительно ли вы желаете\n"
-"установить эти сервера. Под Mandriva Linux все установленные сервера\n"
+"установить эти сервера. Под Mageia все установленные сервера\n"
"запускаются по умолчанию в процессе загрузки. Даже если они безопасны и не\n"
"имеют известных проблем на момент выпуска дистрибутива, в них могут быть\n"
-"обнаружены дыры в безопасности после выпуска данной версии Mandriva Linux.\n"
+"обнаружены дыры в безопасности после выпуска данной версии Mageia.\n"
"Если вы не знаете, зачем нужен данная служба и что она делает, нажмите\n"
"\"%s\". Если вы нажмете \"%s\", тогда все службы из списка будут\n"
"установлены и автоматически запущены при загрузке системы. !!\n"
@@ -398,24 +414,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Автоматические зависимости"
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": по нажатию на кнопку \"%s\" откроется мастер настройки принтера.\n"
-"Прочитайте соответствующую главу в книге ``Стартовое руководство\n"
-"пользователя'', чтобы узнать как установить новый принтер. Представленный\n"
-"там интерфейс подобен используемому в процессе установки."
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -451,8 +450,6 @@ msgstr ""
"Пожалуйста помните, что некоторые службы потенциально опасны для сервера.\n"
"В общем, оставьте только те службы, которые вам действительно нужны. !!"
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
#: ../help.pm:209
#, c-format
msgid ""
@@ -483,13 +480,16 @@ msgstr ""
"который опционально может использоваться другими машинами в вашей локальной\n"
"сети."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr "Аппаратные часы настроены на время по Гринвичу"
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Автоматическая синхронизация времени"
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
#: ../help.pm:223
#, c-format
msgid ""
@@ -513,14 +513,12 @@ msgstr ""
"ускорением и без, вам предложат выбрать, какой сервер больше соответствует\n"
"вашим потребностям."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
#: ../help.pm:234
#, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -576,10 +574,12 @@ msgid ""
msgstr ""
"X (для системы X Window) это сердце графического интерфейса GNU/Linux, на\n"
"базе которого работают все графические среды (KDE, GNOME, AfterStep,\n"
-"WindowMaker, и т.д..), входящие в Mandriva Linux.\n"
+"WindowMaker, и т.д..), входящие в Mageia.\n"
"\n"
"Вам будет представлен список различных параметров для получения\n"
-"оптимального графического отображения: Видеокарта\n"
+"оптимального графического отображения.\n"
+"\n"
+"Видеокарта\n"
"\n"
" Инсталлятор обычно автоматически определяет и настраивает видеокарту,\n"
"установленную в вашей машине. Если это не так, вы можете выбрать в этом\n"
@@ -662,8 +662,6 @@ msgstr ""
"это изменить после инсталляции). Пример выбранной конфигурации отображается\n"
"на мониторе."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
#: ../help.pm:306
#, c-format
msgid ""
@@ -675,8 +673,6 @@ msgstr ""
"и без, вам предложат выбрать, какой сервер больше соответствует вашим\n"
"потребностям."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
#: ../help.pm:311
#, c-format
msgid ""
@@ -694,44 +690,46 @@ msgstr ""
"машина будет работать в качестве сервера или вам не удалось настроить\n"
"графический режим."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -740,15 +738,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -762,11 +760,11 @@ msgid ""
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
"На этом шаге вам прийдется решить, куда вы хотите установить операционную\n"
-"систему Mandriva Linux на вашем жестком диске. Если ваш жесткий диск пуст,\n"
+"систему Mageia на вашем жестком диске. Если ваш жесткий диск пуст,\n"
"или существующая операционная система на нем занимает все дисковое\n"
"пространство, вам прийдется диск переразбить (partition). Разделение диска\n"
"в основном состоит в том, чтобы логически выделить на нем свободное\n"
-"пространство для установки вашей новой системы Mandriva Linux.\n"
+"пространство для установки вашей новой системы Mageia.\n"
"\n"
"Поскольку разделение диска - это обычно необратимый процесс и может\n"
"привести к потере данных, если на диске уже есть установленная операционная\n"
@@ -793,7 +791,7 @@ msgstr ""
"потери данных, особенно если вы предварительно провели дефрагментацию\n"
"раздела Windows. Резервное копирование ваших данных настойчиво\n"
"рекомендуется.. Рекомендуем выбрать эту опцию, если вы собираетесь\n"
-"использовать Mandriva Linux и Microsoft Windows на одном компьютере.\n"
+"использовать Mageia и Microsoft Windows на одном компьютере.\n"
"\n"
" Перед тем, как выбрать эту опцию, вы должны осознать, что размер вашего\n"
"раздела Microsoft Windows станет меньше, чем был. У вас будет меньше\n"
@@ -801,7 +799,7 @@ msgstr ""
"новых программ.\n"
"\n"
" * \"%s\" выберите эту опцию, если вы хотите удалить все данные на всех\n"
-"разделах вашего жесткого диска и заменить их новой системой Mandriva Linux.\n"
+"разделах вашего жесткого диска и заменить их новой системой Mageia.\n"
"Будьте осторожны в этом решении, потому что после подтверждения вы не\n"
"сможете вернуть обратно все как было.\n"
"\n"
@@ -810,7 +808,8 @@ msgstr ""
"\n"
" * \"%s\": эта опция позволит просто удалить всю информацию на диске и\n"
"начать создание разделов диска на пустом месте. Вся информация на вашем\n"
-"диске будет утеряна.\n"
+"диске будет утеряна. Эта опция появляется, если жесткий диск полностьюзанят "
+"Microsoft Windows.\n"
"\n"
" !! Если вы выберете эту опцию, все данные на вашем диске будут потеряны.\n"
"!!\n"
@@ -828,13 +827,16 @@ msgstr ""
msgid "Use existing partition"
msgstr "Использовать существующий раздел"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr "Использовать свободное пространство на разделе Microsoft Windows®"
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Очистить весь диск"
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
#: ../help.pm:380
#, c-format
msgid ""
@@ -907,9 +909,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Создать дискету автоматической установки"
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr "Повторить"
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr "Автоматически"
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr "Сохранить список пакетов"
+
+#: ../help.pm:408
#, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -929,7 +944,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -954,17 +969,15 @@ msgstr ""
"Нажмите \"%s\", когда будете готовы начать форматирование разделов.\n"
"\n"
"Нажмите \"%s\", если вы хотите выбрать другой раздел для установки\n"
-"Mandriva Linux.\n"
+"Mageia.\n"
"\n"
"Нажмите \"%s\", если хотите выбрать разделы, которые следует проверить на\n"
"сбойные блоки (bad blocks)."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -976,7 +989,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"В данный момент установки Mandriva Linux было бы неплохо обновить некоторые\n"
+"В данный момент установки Mageia было бы неплохо обновить некоторые\n"
"пакеты из исходного релиза. Некоторые баги могут быть уже исправлены и\n"
"решены проблемы безопасности. Чтобы получить пользу от этих обновлений,\n"
"сейчас вы можете загрузить их из Интернет. Нажмите \"%s\", если у вас есть\n"
@@ -988,8 +1001,6 @@ msgstr ""
"пакетов: просмотрите список и нажмите \"%s\" для получения и установки\n"
"выбранных пакетов, или \"%s\" для отмены."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
#: ../help.pm:450
#, c-format
msgid ""
@@ -1000,7 +1011,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1014,9 +1025,10 @@ msgstr ""
"\n"
"Если вы не знаете что выбрать, оставьте выбор по умолчанию. Вы сможете\n"
"изменить этот уровень безопасности потом с помощью утилиты draksec из\n"
-"Mandriva Linux Control Center.\n"
+"Центра управления Mageia.\n"
"\n"
-"В поле \"%s\" системе указывается пользователь, который будет отвечать за\n"
+"В поле \"%s\" системе указывается пользователь (e-mail), который будет "
+"отвечать за\n"
"безопасность. На этот адрес будут посылаться сообщения по безопасности."
#: ../help.pm:461
@@ -1024,27 +1036,28 @@ msgstr ""
msgid "Security Administrator"
msgstr "Администратор по безопасности"
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
#: ../help.pm:464
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1060,21 +1073,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1091,17 +1106,11 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"Здесь вам предложат выбрать, какие разделы будут использоваться для\n"
-"установки вашей системы Mandriva Linux. Если разделы были уже определены\n"
+"установки вашей системы Mageia. Если разделы были уже определены\n"
"ранее, например, предыдущей инсталляцией GNU/Linux или другой утилитой\n"
"разбиения дисков, вы можете воспользоваться существующими разделами. В\n"
"противном случае, разделы жесткого диска должны быть определены.\n"
@@ -1115,7 +1124,7 @@ msgstr ""
"\n"
" * \"%s\": эта опция удаляет все разделы на выбранном жестком диске;\n"
"\n"
-" * \"%s\": эта опция позволяет автоматически создать ext3 и swap разделы на\n"
+" * \"%s\": эта опция позволяет автоматически создать ext4 и swap разделы на\n"
"свободном пространстве вашего жесткого диска.\n"
"\n"
"\"%s\": открывает доступ к дополнительным возможностям:\n"
@@ -1131,7 +1140,8 @@ msgstr ""
"восстановить, используя эту опцию. Пожалуйста, будьте осторожны и помните,\n"
"что это может и не получиться.\n"
"\n"
-" * \"%s\": отменяет все изменения и загружает исходную таблицу разделов.\n"
+" * \"%s\": отменяет все изменения и загружает исходную таблицу разделов,\n"
+"что была в оригинале на жесткий диск.\n"
"\n"
" * \"%s\": если не выбрать эту опцию, то пользователи будут вынуждены\n"
"вручную монтировать и размонтировать съемные носители типа дискет и\n"
@@ -1165,61 +1175,84 @@ msgstr ""
"\n"
"Чтобы получить информацию о различных доступных файловых системах,\n"
"пожалуйста почитайте главу ext2FS из книги ``Справочное руководство''.\n"
-"\n"
-"Если вы производите инсталляцию на PPC машину, вам потребуется создать\n"
-"маленький HFS ``bootstrap'' раздел, не больше 1MB, который будет\n"
-"использоваться загрузчиком yaboot. Если вы решите сделать раздел чуть\n"
-"больше, скажем 50MB, то вы найдете полезное место для хранения spare kernel\n"
-"и ramdisk образов для загрузки в аварийных ситуациях."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr "Сохранить таблицу разделов"
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr "Восстановить таблицу разделов"
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr "Исправить таблицу разделов"
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Автомонтирование съемных носителей"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr "Мастер"
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr "Вернуть"
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Переключение между нормальным/экспертным режимами"
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
#: ../help.pm:536
#, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"На вашем жестом диске обнаружено несколько разделов Microsoft. Выберите\n"
"необходимый раздел для изменения его размера с целью установки вашей новой\n"
-"операционной системы Mandriva Linux.\n"
+"операционной системы Mageia.\n"
"\n"
"Каждый раздел перечислен так: \"Linux имя\", \"Windows имя\" \"Размер\".\n"
"\n"
@@ -1246,8 +1279,6 @@ msgstr ""
"\"Windows name\" это буква жесткого диска под Windows (первый диск или\n"
"раздел называется \"C:\")."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
#: ../help.pm:567
#, c-format
msgid ""
@@ -1261,8 +1292,6 @@ msgstr ""
"присутствует в первом показанном списке, нажмите кнопку \"%s\", чтобы\n"
"увидеть полный список."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
#: ../help.pm:572
#, c-format
msgid ""
@@ -1270,29 +1299,29 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Этот шаг появляется только в случае, если на вашей машине найден старый\n"
"раздел GNU/Linux.\n"
"\n"
"DrakX теперь должен узнать, хотите ли вы провести новую установку или\n"
-"обновление существующей системы Mandriva Linux:\n"
+"обновление существующей системы Mageia:\n"
"\n"
" * \"%s\": в большинстве случаев этот вариант приведет к уничтожению старой\n"
"системы. Если вы желаете изменить разделы вашего жесткого диска или\n"
@@ -1301,16 +1330,14 @@ msgstr ""
"от перезаписи некоторые свои данные.\n"
"\n"
" * \"%s\": этот класс установки позволит вам обновить пакеты, установленные\n"
-"в вашей системе Mandriva Linux. Текущая схема разделов диска и\n"
+"в вашей системе Mageia. Текущая схема разделов диска и\n"
"пользовательские данные останутся нетронутыми. Большинство других шагов\n"
"будут доступны, как и при стандартной установке.\n"
"\n"
-"``Обновление'' будет неплохо работать на системах Mandriva Linux начиная с\n"
-"\"8.1\" и выше. Проведение обновления на системах Mandriva Linux старше\n"
+"``Обновление'' будет неплохо работать на системах Mageia начиная с\n"
+"\"8.1\" и выше. Проведение обновления на системах Mageia старше\n"
"\"8.1\" не рекомендуется."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
#: ../help.pm:594
#, c-format
msgid ""
@@ -1349,8 +1376,6 @@ msgstr ""
"алфавите, следующее диалоговое окно позволит вам выбрать сочетание клавиш\n"
"для переключения между латинской и не-латинской раскладками."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
#: ../help.pm:612
#, c-format
msgid ""
@@ -1368,8 +1393,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1395,6 +1419,7 @@ msgid ""
"by the entire system. Running the command as a regular user will only\n"
"change the language settings for that particular user."
msgstr ""
+"Первый шаг - выбор вашего предпочитаемого языка.\n"
"Ваш выбор предпочитаемого языка повлияет на язык документации, сам\n"
"инсталлятор и систему в целом. Выберите сначала регион, в котором вы\n"
"находитесь, затем язык на котором вы говорите.\n"
@@ -1405,9 +1430,10 @@ msgstr ""
"Например, если у вас в системе будут работать пользователи из Испании,\n"
"выберите в дереве English как основной, и \"%s\" в дополнительном разделе.\n"
"\n"
-"О поддержке UTF-8 (unicode): Unicode это новая кодировка, которая включает\n"
+"О поддержке UTF-8 (unicode): Unicode - это новая кодировка, которая "
+"включает\n"
"в себя все существующие языки. Однако ее полная поддержка в GNU/Linux пока\n"
-"находится в стадии разработки. Поэтому Mandriva Linux будет определять\n"
+"находится в стадии разработки. Поэтому Mageia будет определять\n"
"использовать ее или нет в зависимости от выбора пользователя:\n"
"\n"
" * Если вы выбираете языки, которые имеют свою традиционную устоявшуюся\n"
@@ -1429,7 +1455,7 @@ msgstr ""
"шрифтов, проверку орфографии и т.д. для установленных языков.\n"
"\n"
"Для переключения между различными установленными языками в вашей системе вы\n"
-"можете запускать команду \"/usr/sbin/localedrake\" с правами \"root\",\n"
+"можете запускать команду \"localedrake\" с правами \"root\",\n"
"чтобы изменить язык для всей системы. Запуск этой команды с правами\n"
"обычного пользователя позволит изменить настройки языка для данного\n"
"конкретного пользователя."
@@ -1439,9 +1465,12 @@ msgstr ""
msgid "Espanol"
msgstr "Испанский"
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr "Использовать Unicode по умолчанию"
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1521,8 +1550,6 @@ msgstr "с эмуляцией колесика"
msgid "Universal | Any PS/2 & USB mice"
msgstr "Универсальный |Любая PS/2 & USB мышь"
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
#: ../help.pm:687
#, c-format
msgid ""
@@ -1532,92 +1559,7 @@ msgstr ""
"Пожалуйста, выберите правильный порт. Например, порт \"COM1\" под Windows\n"
"называется \"ttyS0\" под GNU/Linux."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Это самое важное решение в деле безопасности вашей системы GNU/Linux: вы\n"
-"должны ввести пароль \"root\". \"Root\" является администратором системы, и\n"
-"только он имеет право производить обновления, добавлять пользователей,\n"
-"изменять конфигурацию системы и так далее. Короче говоря, \"root\" может\n"
-"все! Вот поэтому вы должны придумать пароль, который трудно подобрать -\n"
-"DrakX сообщит вам, если пароль слишком прост. Как вы видите, можно вообще\n"
-"не вводить пароль, но мы серьезно советуем вам этого не делать по одной\n"
-"простой причине: не думайте, что если вы загрузили GNU/Linux, то ваши\n"
-"остальные операционные системы защищены от ошибок. Так как \"root\" может\n"
-"переступить все ограничения и непреднамеренно стереть все данные на\n"
-"разделах диска, обращаясь небрежно с разделами, то очень важно, чтобы стать\n"
-"\"root\" было трудно.\n"
-"\n"
-"Пароль должен быть сочетанием цифровых и буквенных символов и иметь длину\n"
-"не менее 8 символов. Никогда не записывайте пароль \"root\" - это делает\n"
-"очень легкой возможность скомпрометировать систему.\n"
-"\n"
-"Одно предостережение -- не делайте пароль слишком длинным или слишком\n"
-"сложным, потому что вы должны его без особых усилий запомнить!\n"
-"\n"
-"Пароль не будет отображаться на экране так же, как вы его вводите. Кроме\n"
-"того, вам прийдется повторить ввод пароля, чтобы предупредить возможность\n"
-"опечатки. Если случится так, что вы опечатались дважды, тогда этот\n"
-"``неверный'' пароль прийдется использовать при первой загрузке.\n"
-"\n"
-"Если вы желаете, чтобы доступ к этому компьютеру контролировался сервером\n"
-"аутентификации, нажмите на кнопку \"%s\".\n"
-"\n"
-"Если ваша сеть использует службы аутентификации LDAP, NIS или PDC Windows\n"
-"Domain выберите соответствующий тип \"%s\". Если не знаете что выбрать,\n"
-"спросите своего администратора сети.\n"
-"\n"
-"Если у вас возникли проблемы с запоминанием паролей, вы можете выбрать\n"
-"опцию \"%s\", если ваш компьютер не будет подключаться к Интернет и если вы\n"
-"доверяете всем доступ к своей машине."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "аутентификация"
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1631,7 +1573,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1652,13 +1594,11 @@ msgstr ""
"начальный загрузчик не будет установлен вообще. Используйте этот вариант\n"
"только если вы знаете, что вы делаете."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
#: ../help.pm:745
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1679,12 +1619,11 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
-"Теперь пришло время выбрать систему печати для вашего компьютера. Другие OS\n"
-"могут предложить вам одну, а Mandriva Linux предлагает две. Каждая из "
-"систем\n"
+"Теперь пришло время выбрать систему печати для вашего компьютера. Другие ОС\n"
+"могут предложить вам одну, а Mageia предлагает две. Каждая из систем\n"
"является лучшей для определенной конфигурации.\n"
"\n"
" * \"%s\" -- что означает ``печатать, не ставить в очередь'' (``print,\n"
@@ -1707,20 +1646,23 @@ msgstr ""
"\n"
"Если вы сделаете свой выбор сейчас, а позже обнаружите, что система печати\n"
"вам не подходит, вы сможете изменить ее, запустив PrinterDrake из Центра\n"
-"Управления Mandriva Linux и нажав на кнопку \"%s\"."
+"управления Mageia и нажав на кнопку \"%s\"."
#: ../help.pm:768
#, c-format
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr "CUPS"
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Эксперт"
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
#: ../help.pm:771
#, c-format
msgid ""
@@ -1729,7 +1671,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1758,8 +1700,6 @@ msgstr ""
"Если DrakX не в состоянии автоматически определить, какие параметры нужны\n"
"оборудованию, вам прийдется вручную настроить драйвер."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
#: ../help.pm:789
#, c-format
msgid ""
@@ -1772,8 +1712,6 @@ msgstr ""
"тому, что у вас реально есть в системе, вы можете нажать на кнопку и\n"
"выбрать другой драйвер."
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
#: ../help.pm:794
#, c-format
msgid ""
@@ -1798,11 +1736,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1820,8 +1753,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1838,7 +1770,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1866,11 +1798,6 @@ msgstr ""
" * \"%s\": проверьте текущую конфигурацию мыши и нажмите на кнопку, если\n"
"необходимо что-либо изменить.\n"
"\n"
-" * \"%s\": по нажатию на кнопку \"%s\" откроется мастер настройки принтера.\n"
-"Прочитайте соответствующую главу в книге ``Стартовое руководство\n"
-"пользователя'', чтобы узнать как установить новый принтер. Представленный\n"
-"там интерфейс подобен используемому в процессе установки.\n"
-"\n"
" * \"%s\": если в вашей системе найдена звуковая карта, здесь это будет\n"
"показано. Если вы увидите, что показанная звуковая карта не соответствует\n"
"тому, что у вас реально есть в системе, вы можете нажать на кнопку и\n"
@@ -1890,7 +1817,7 @@ msgstr ""
"\n"
" * \"%s\": если вы хотите настроить доступ в Интернет или локальную сеть\n"
"прямо сейчас. Обратитесь к печатной документации или используйте\n"
-"Центр управления Mandriva Linux после установки чтобы почитать\n"
+"Центр управления Mageia после установки чтобы почитать\n"
"встроенную справку.\n"
"\n"
" * \"%s\": позволяет настроить адреса HTTP и FTP прокси если машина,\n"
@@ -1907,12 +1834,17 @@ msgstr ""
" * \"%s\": если вы желаете изменить конфигурацию начального загрузчика,\n"
"нажмите эту кнопку. Эта опция предназначена для опытных пользователей.\n"
"Обратитесь к печатной документации или встроенной справке о настройке\n"
-"загрузчика в Центре управления Mandriva Linux.\n"
+"загрузчика в Центре управления Mageia.\n"
" * \"%s\": здесь вы сможете проконтролировать какие службы будут запущены\n"
"на вашей машине. Если ваша машина будет сервером, вам стоит проверить эти\n"
"установки."
-#: ../help.pm:858
+#: ../help.pm:809
+#, c-format
+msgid "TV card"
+msgstr "TV-карта"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "карта ISDN"
@@ -1922,31 +1854,29 @@ msgstr "карта ISDN"
msgid "Graphical Interface"
msgstr "Графический Интерфейс"
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
#: ../help.pm:861
#, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"Выберите жесткий диск, который нужно очистить для инсталляции вашего нового\n"
-"раздела Mandriva Linux. Будьте осторожны, все данные на нем будут потеряны\n"
+"раздела Mageia. Будьте осторожны, все данные на нем будут потеряны\n"
"и их нельзя будет восстановить!"
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-# cvs.mandriva.com:/cooker/doc/manualB/modules/ru/drakx-chapter.xml
#: ../help.pm:866
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Нажмите \"%s\", если вы хотите удалить все данные и разделы на данном\n"
"жестком диске. Будьте осторожны, потому что после нажатия \"%s\" вы не\n"
@@ -1965,4 +1895,3 @@ msgstr "Далее ->"
#, c-format
msgid "<- Previous"
msgstr "<- Назад"
-
diff --git a/perl-install/install/help/po/sc.po b/perl-install/install/help/po/sc.po
index 29731d8bb..e23d39d6d 100644
--- a/perl-install/install/help/po/sc.po
+++ b/perl-install/install/help/po/sc.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX-sc\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2005-09-14 11:29+0100\n"
"Last-Translator: Antoni Pistis <antonio.pistis@virgilio.it>\n"
"Language-Team: Sardu\n"
@@ -20,7 +20,7 @@ msgstr ""
#, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
@@ -68,13 +68,23 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Bolis a tenni custa possibilidadi?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -84,31 +94,31 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
#: ../help.pm:88
#, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
@@ -119,12 +129,11 @@ msgstr ""
#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -137,8 +146,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -205,10 +213,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -234,16 +242,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Dependèntzias automàtigas"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -281,7 +280,12 @@ msgid ""
"server which can be used by other machines on your local network as well."
msgstr ""
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Sincronisadura automàtiga"
@@ -305,7 +309,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -403,39 +407,39 @@ msgstr ""
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -444,15 +448,14 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -471,7 +474,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Imprea pratzidura de imoi"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Burra totu su discu"
@@ -519,7 +527,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Crea floppy de aposentadura automàtiga"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -539,7 +562,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -548,7 +571,7 @@ msgstr ""
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -571,7 +594,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -587,21 +610,21 @@ msgstr "Aministradori de Siguresa"
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -617,21 +640,21 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -648,22 +671,41 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Càrrigu automàtigu de mèdius arremoviditzus"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr ""
@@ -671,34 +713,34 @@ msgstr ""
#: ../help.pm:536
#, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the first\n"
"disk or partition is called \"C:\")."
msgstr ""
@@ -718,23 +760,22 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
#: ../help.pm:594
@@ -775,8 +816,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -808,7 +848,12 @@ msgstr ""
msgid "Espanol"
msgstr "Spannyolu"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -862,53 +907,7 @@ msgid ""
"Windows is named \"ttyS0\" under GNU/Linux."
msgstr ""
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "autentigadura"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -922,7 +921,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -933,7 +932,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -954,7 +953,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
@@ -963,7 +962,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Spertu"
@@ -976,7 +980,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1021,11 +1025,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1043,8 +1042,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1061,14 +1059,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "Skeda ISDN"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "Skeda ISDN"
@@ -1081,8 +1084,8 @@ msgstr "Interfaci Gràfiga"
#: ../help.pm:861
#, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
@@ -1090,12 +1093,12 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be able\n"
+"to recover any data and partitions present on this hard disk drive, including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
#: ../help.pm:872
@@ -1108,3 +1111,5 @@ msgstr "Sighi ->"
msgid "<- Previous"
msgstr "<- Agoa"
+#~ msgid "authentication"
+#~ msgstr "autentigadura"
diff --git a/perl-install/install/help/po/sk.po b/perl-install/install/help/po/sk.po
index 103bada97..8289d938a 100644
--- a/perl-install/install/help/po/sk.po
+++ b/perl-install/install/help/po/sk.po
@@ -7,25 +7,26 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2005-09-21 14:03+0100\n"
"Last-Translator: Tibor Pittich <Tibor.Pittich@mandriva.org>\n"
"Language-Team: <i18n@mandrake.sk>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Pred tým než budete pokračovať, mali by ste si pozorne prečítať\n"
-"licenčné podmienky. Pokrývajú celú distribúciu Mandriva Linux\n"
+"licenčné podmienky. Pokrývajú celú distribúciu Mageia\n"
"Ak súhlasíte so všetkými jej bodmi kliknite na tlačidlo \"%s\".\n"
"Ak nesúhlasíte kliknite na tlačidlo \"%s\" a váš počítač bude reštartovaný."
@@ -114,13 +115,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Chcete použiť túto možnosť?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -130,24 +142,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Tu je zoznam oblastí s existujúcimi Linux oddielmi, ktoré boli zdetekované\n"
@@ -183,30 +199,28 @@ msgstr ""
"\"druhé najnižšie SCSI ID\" a tak ďalej."
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Inštalácia Mandriva Linuxu je distribuovaná na viacerých CD-ROM diskoch. "
-"DrakX\n"
+"Inštalácia Mageiau je distribuovaná na viacerých CD-ROM diskoch. DrakX\n"
"vie zistiť, ak je vybraný balík umiestnený na inom CD-ROM disku, vysunie\n"
"aktuálne CD a vypýta si od vás to ktoré je práve potrebné. Ak toto CD "
"nemáte, kliknite na \"%s\" a požadovaný balík nebude nainštalovaný."
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -219,8 +233,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -258,8 +271,7 @@ msgid ""
"megabytes."
msgstr ""
"Teraz je možné vybrať, ktoré programy chcete nainštalovať na váš systém.\n"
-"Mandriva Linux obsahuje tisíce balčkov s programami. Pre jednoduchšiu "
-"orientáciu\n"
+"Mageia obsahuje tisíce balčkov s programami. Pre jednoduchšiu orientáciu\n"
"boly rozdelené do skupín, ktoré združujú podobné aplikácie.\n"
"\n"
"Balíčky sú rozdelené do skupín, ktoré zodpovedajú tomu, ako ich "
@@ -330,7 +342,7 @@ msgid "Truly minimal install"
msgstr "Skutočne minimálna inštalácia"
#: ../help.pm:152
-#, c-format
+#, fuzzy, c-format
msgid ""
"If you choose to install packages individually, the installer will present\n"
"a tree containing all packages classified by groups and subgroups. While\n"
@@ -343,10 +355,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -376,13 +388,11 @@ msgstr ""
"\n"
"!! Ak boli vybrané balíky, ktoré sú určené pre server, buď zámerne alebo\n"
"preto že sú súčasťou celej skupiny, budete musieť potvrdiť, či skutočne\n"
-"chcete tieto služby nainštalovať. V prípade Mandriva Linuxu, sú štandardne "
-"všetky\n"
+"chcete tieto služby nainštalovať. V prípade Mageiau, sú štandardne všetky\n"
"nainštalované služby spúšťané pri štarte systému. Aj keď sú bezpečné\n"
"a v čase keď bola distribúcia vydaná neobsahovali žiadne známe problémy\n"
"je možné, že tieto bezpečnostné problémy budú odhalené až po dokončení\n"
-"tejto verzie Mandriva Linuxu. Ak neviete čo jednotlivé servisy znamenajú, "
-"alebo\n"
+"tejto verzie Mageiau. Ak neviete čo jednotlivé servisy znamenajú, alebo\n"
"prečo boli nainštalované tak kliknite na \"%s\". Kliknutím na \"%s\" budú\n"
"vypísané služby nainštalované a automaticky naštartované pri spustení\n"
"systému. !!\n"
@@ -409,22 +419,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Automatické závislosti"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": kliknutím na \"%s\" tlačidlo sa otvorí sprievodca konfiguráciou "
-"tlačiarne.\n"
-"Ak chcete získať viac informácií o tom, ako nastaviť novú tlačiareň, "
-"použite\n"
-"``Úvodnú príručku''. Rozhranie, ktoré tu vidíte je podobné tomu, ktoré bolo\n"
-"použité pri inštalácii."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -497,7 +492,12 @@ msgstr ""
"server, ktorý je\n"
"potom možné používať aj vo vašej lokálnej sieti."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Automatická synchronizácia času"
@@ -526,11 +526,11 @@ msgstr ""
"požiadavkám."
#: ../help.pm:234
-#, c-format
+#, fuzzy, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -586,7 +586,7 @@ msgid ""
msgstr ""
"X (X Window System) je srdcom grafického rozhrania GNU/Linux systému\n"
"spolu so všetkými grafickými prostrediami (KDE, GNOME, AfterStep,\n"
-"WindowMaked, atď.) distribuovanými s Mandriva Linux systémom.\n"
+"WindowMaked, atď.) distribuovanými s Mageia systémom.\n"
"\n"
"Zmenou nasledovných parametrov môžete dosiahnuť optimálne nastavenie\n"
"vášho grafického systému.\n"
@@ -708,41 +708,45 @@ msgstr ""
"rozhranie."
#: ../help.pm:319
-#, c-format
+#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -751,15 +755,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -772,7 +776,7 @@ msgid ""
"experience. For more instructions on how to use the DiskDrake utility,\n"
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
-"Teraz si môžete zvoliť, kam si želáte nainštalovať Mandriva Linux\n"
+"Teraz si môžete zvoliť, kam si želáte nainštalovať Mageia\n"
"na váš disk. Ak je váš disk prázdny alebo ak na ňom\n"
"už existuje operačný systém, ktorý zaberá všetko dostupné miesto, bude\n"
"potrebné ho prerozdeliť. Prerozdeľovanie pozostáva z logického\n"
@@ -811,7 +815,7 @@ msgstr ""
"po predchádzajúcom defragmentovaní Windows oblasti, ak obsahuje FAT "
"súborový\n"
"systém. Je veľmi odporúčané si najprv odzálohovať údaje. Toto riešenie je\n"
-"odporúčané použiť ak si chcete používať spoločne Mandriva Linux aj Microsoft "
+"odporúčané použiť ak si chcete používať spoločne Mageia aj Microsoft "
"Windows\n"
"na jednom počítači.\n"
"\n"
@@ -823,7 +827,7 @@ msgstr ""
"Vaším Microsoft Windows systémom.\n"
"\n"
" * \"%s\": ak si želáte vymazať všetky údaje a všetky oddiely\n"
-"prítomné na vašom pevnom disku a nahradiť ich vašim novým Mandriva Linux\n"
+"prítomné na vašom pevnom disku a nahradiť ich vašim novým Mageia\n"
"systémom, zvoľte si túto voľbu. Buďte opatrní pri tejto možnosti, pretože "
"nebude\n"
"žiadna možnosť zvrátiť vaše rozhodnutie keď ho potvrdíte.\n"
@@ -853,7 +857,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Použiť existujúci oddiel"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Vymazať celý disk"
@@ -937,8 +946,23 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Vygenerovať auto-inštalačnú disketu"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
+#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -957,7 +981,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -982,15 +1006,15 @@ msgstr ""
"Kliknite na \"%s\" ak ste pripravený formátovať vybrané oddiely.\n"
"\n"
"Kliknite na \"%s\" ak si chcete zvoliť iné oddiely pre inštaláciu vášho\n"
-"nového Mandriva Linux systému.\n"
+"nového Mageia systému.\n"
"\n"
"Kliknite na \"%s\" ak si chcete vybrať oddiely, ktoré budú kontrolované\n"
"na prítomnosť chybných blokov na disku."
#: ../help.pm:437
-#, c-format
+#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -1002,7 +1026,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Po nainštalovaní Mandriva Linux systému je pravdepodobné, že niektoré\n"
+"Po nainštalovaní Mageia systému je pravdepodobné, že niektoré\n"
"balíky ktoré sa nachádzali v distribúcii, nezodpovedajú ich aktuálnym\n"
"verziám. Môžu v nich byť opravené chyby alebo bezpečnostné nedostatky.\n"
"Aby ste mohli tieto opravy aplikovať, budete si ich teraz môcť stiahnuť\n"
@@ -1016,7 +1040,7 @@ msgstr ""
"\"%s\" pre zrušenie."
#: ../help.pm:450
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -1025,7 +1049,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1040,7 +1064,7 @@ msgstr ""
"\n"
"Ak si neviete vybrať, ponechajte štandardné nastavenie.Budete ju však\n"
"mať možnosť zmeniť pomocou programu drakcec, ktorý je súčasťou\n"
-"Kontrolného Centra Mandriva Linuxu\n"
+"Kontrolného Centra Mageiau\n"
"\n"
"Do políčka \"%s\" zadajte e-mailovú adresu osoby zodpovednej za\n"
"bezpečnosť vášho PC. Na túto adresu budú zasielané\n"
@@ -1052,24 +1076,27 @@ msgid "Security Administrator"
msgstr "Bezpečnostný administrátor"
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1085,21 +1112,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1116,17 +1145,11 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"Na tomto mieste je potrebné aby ste si vybrali oblasti, ktoré budú použité\n"
-"na inštaláciu Mandriva Linuxu. Ak už boli oddiely definované,\n"
+"na inštaláciu Mageiau. Ak už boli oddiely definované,\n"
"napríklad pri predchádzajúcej inštalácii GNU/Linux-u alebo iným nástrojom\n"
"pre správu oblastí, môžete použiť už existujúce oblasti. Inak musia byť\n"
"oblasti teraz definované.\n"
@@ -1141,7 +1164,7 @@ msgstr ""
" * \"%s\": táto voľba vymaže všetky oblasti na vybranom pevnom\n"
"disku\n"
"\n"
-" * \"%s\": táto voľba umožní automatické vytvorenie ext3\n"
+" * \"%s\": táto voľba umožní automatické vytvorenie ext4\n"
"a swap oblasti na voľnom mieste vášho disku\n"
"\n"
" * \"%s\": získate prístup k rozšíreným možnostiam:\n"
@@ -1200,60 +1223,84 @@ msgstr ""
"Pre získanie informácií o iných súborových systémoch, ktoré sú dostupné, "
"prečítajte\n"
"si ext2FS kapitolu z ``Referenčnej príručky''.\n"
-"\n"
-"Ak prevádzate inštaláciu na PPC hardvéri, budete zrejme chcieť vytvoriť malý "
-"HFS\n"
-"``bootstrap'' oddiel veľký aspoň 1MB, ktorý bude môcť používať yaboot\n"
-"zavádzač. Ak sa rozhodnete vytvoriť tento oddiel väčší, povedzme 50MB, môže\n"
-"to byť vhodné miesto pre uloženie jadra a obrazov ramdisku pre výnimočné\n"
-"situácie, ktoré môžu nastať."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Automatické pripájanie vymeniteľného média"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Prepnúť medzi normálnym/expertným režimom"
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Bol nájdený viac ako jeden Microsoft oddiel na vašom pevnom disku.\n"
"Vyberte si prosím jeden, ktorý chcete nastaviť pre inštaláciu vášho\n"
-"nového Mandriva Linux operačného systému.\n"
+"nového Mageia operačného systému.\n"
"\n"
"Všetky oddiely sú zobrazené nasledovne: \"Linux meno\", \"Windows meno\",\n"
"\"Kapacita\".\n"
@@ -1296,36 +1343,36 @@ msgstr ""
"získanie kompletného zoznamu."
#: ../help.pm:572
-#, c-format
+#, fuzzy, c-format
msgid ""
"This step is activated only if an existing GNU/Linux partition has been\n"
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Tento krok sa aktivuje iba vtedy, ak sú na vašom systéme nájdené staršie\n"
"GNU/Linux oddiely.\n"
"\n"
"DrakX teraz potrebuje vedieť či si želáte vykonať novú inštaláciu alebo "
"aktualizáciu\n"
-"existujúceho Mandriva Linux systému:\n"
+"existujúceho Mageia systému:\n"
"\n"
" * \"%s\": Pomocou tejto voľby môžete kompletne zrušiť váš predchádzajúci\n"
"operačný systém. Ak si želáte zmeniť rozloženie oddielov na vašich diskoch "
@@ -1336,14 +1383,13 @@ msgstr ""
"údajov.\n"
"\n"
" * \"%s\": táto trieda inštalácie vám umožňuje aktualizovať balíky, ktoré\n"
-"sú momentálne nainštalované vo vašom Mandriva Linux systéme. Aktuálne\n"
+"sú momentálne nainštalované vo vašom Mageia systéme. Aktuálne\n"
"rozdelenie oddielov a používateľské údaje nebudú prepísané. Mnohé ostatné "
"kroky\n"
"inštalácie ostanú dostupné, podobne ako pri štandardnej inštalácii.\n"
"\n"
"Použitie voľby ``Aktualizácia'' by malo fungovať správne pre systémy\n"
-"Mandriva Linux \"8.1\" a novšie. Vykonanie Aktualizácie pre staršie verzie "
-"ako\n"
+"Mageia \"8.1\" a novšie. Vykonanie Aktualizácie pre staršie verzie ako\n"
"\"8.1\" nie je odporúčané.\""
#: ../help.pm:594
@@ -1383,7 +1429,7 @@ msgstr ""
"ktorej si budete môcť prepínať medzi latin a ne-latin mapou."
#: ../help.pm:612
-#, c-format
+#, fuzzy, c-format
msgid ""
"The first step is to choose your preferred language.\n"
"\n"
@@ -1399,8 +1445,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1474,7 +1519,12 @@ msgstr ""
msgid "Espanol"
msgstr "Španielsky"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1561,101 +1611,7 @@ msgstr ""
"Prosím zvoľte správny port. Napríklad COM1 pod MS Windows sa v\n"
"GNU/Linux nazýva ttyS0."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Toto je veľmi dôležité rozhodnutie zamerané na bezpečnosť vášho GNU/Linux\n"
-"systému: musíte zadať heslo pre používateľa \"root\"-a. Je to systémový "
-"administrátor\n"
-"a ako jediný má oprávnenie vykonávať aktualizácie, pridávať používateľov,\n"
-"meniť nastavenie celého systému a podobne. V skratke sa dá povedať, že \"root"
-"\"\n"
-"môže všetko! Toto je dôvod, prečo si musíte zvoliť heslo tak, aby ho nebolo\n"
-"jednoduché uhádnuť - DrakX vám to povie, ak je príliš jednoduché. Ako "
-"vidíte,\n"
-"môžete sa rozhodnúť nezadať žiadne heslo, ale chceli by sme vás pred tým\n"
-"varovať z jedného dôvodu: nemyslite si, že vaše ostatné nainštalované "
-"operačné\n"
-"systémy sú chránené pred omylmi len preto, že máte spustený operačný systém\n"
-"GNU/Linux. Pretože na \"root\"-a sa nevzťahujú žiadne obmedzenia a je mu\n"
-"umožnené dokonca vymazať všetky údaje na všetkých dostupných oblastiach,\n"
-"je veľmi dôležité aby nebolo príliš jednoduché sa stať \"root\"-om.\n"
-"\n"
-"Toto heslo by malo byť kombináciou alfanumerických znakov a byť aspoň 8\n"
-"znakov dlhé. Nikdy nezadávajte ako heslo \"root\", bolo by ho veľmi "
-"jednoduché\n"
-"uhádnuť a kompromitovať tak systém.\n"
-"\n"
-"V každom prípade, netvorte si heslo príliš dlhé alebo príliš komplikované, "
-"aby ste\n"
-"si ho dokázali zapamätať bez toho aby ste ho mali niekde napísané.\n"
-"\n"
-"Heslo sa počas jeho zadávania nezobrazuje na obrazovke. Budete vyzvaní k "
-"tomu\n"
-"aby ste ho zadali dva krát, aby sa predišlo problémom pri omyle alebo "
-"preklepe. Ak\n"
-"sa vám ale podarí zadať dva krát po sebe heslo s rovnakou chybou, bude toto "
-"``chybné''\n"
-"heslo nastavené!\n"
-"\n"
-"Ak chcete kontrolovať prístup k tomuto počítaču pomocou autorizačného "
-"servera\n"
-"kliknite na tlačidlo \"%s\".\n"
-"\n"
-"Ak vaša sieť používa LDAP, NIS alebo PDC vrámci Windows domény pre "
-"autentikáciu,\n"
-"vyberte si požadované ako \"%s\". Ak neviete na túto otázku odpovedať\n"
-"opýtajte sa vášho sieťového administrátora.\n"
-"\n"
-"Ak máte problém zapamätať si vaše heslo a váš počítač nie je pripojený k "
-"Internetu\n"
-"alebo ak dôverujete každému, kto má k počítaču prístup môžte si zvoliť "
-"nastavenie\n"
-"\"%s\"."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "autentifikácia"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1669,7 +1625,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1693,10 +1649,10 @@ msgstr ""
"ak naozaj viete čo robíte."
#: ../help.pm:745
-#, c-format
+#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1717,12 +1673,11 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Teraz nastal čas výberu tlačového systému pre váš počítač. Iné operačné\n"
-"systémy vám poskytujú zvyčajne iba jediný, Mandriva Linux vám poskytuje "
-"dva.\n"
+"systémy vám poskytujú zvyčajne iba jediný, Mageia vám poskytuje dva.\n"
"Kazdý z nich je vhodný pre iný typ konfigurácie.\n"
"\n"
" * \"%s\" - čo znamená ``tlačiť, neukladať do fronty'', je vhodný výber ak\n"
@@ -1745,7 +1700,7 @@ msgstr ""
"nástroje na tlačenie, pre výber tlačiarní alebo ich manažovanie.\n"
"\n"
"Ak neskôr budete chciet svoju voľbu zmeniť alebo budete chcieť odstrániť\n"
-"tlačový systém môžete tak spraviť za pomoci PrinterDrake z Mandriva Linux\n"
+"tlačový systém môžete tak spraviť za pomoci PrinterDrake z Mageia\n"
"Kontrolného centra kliknutím na tlačidlo \"%s\"."
#: ../help.pm:768
@@ -1753,7 +1708,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Expert"
@@ -1766,7 +1726,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1807,7 +1767,7 @@ msgstr ""
"systéme, môžete kliknúť na tlačidlo a vybrať si iný ovládač."
#: ../help.pm:794
-#, c-format
+#, fuzzy, c-format
msgid ""
"As a review, DrakX will present a summary of information it has gathered\n"
"about your system. Depending on the hardware installed on your machine, you\n"
@@ -1830,11 +1790,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1852,8 +1807,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1870,7 +1824,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1923,8 +1877,7 @@ msgstr ""
" * \"%s\": ak si teraz želáte nastaviť vaše Internetové pripojenie\n"
"alebo prístup do lokálnej siete. Prezrite si tlačenú dokumentáciu alebo "
"použite\n"
-"Kontrolné centrum Mandriva Linux ak už bude inštalácia ukončená aby ste "
-"mali\n"
+"Kontrolné centrum Mageia ak už bude inštalácia ukončená aby ste mali\n"
"prístup k dokumentácii.\n"
" * \"%s\": vám umožní nastaviť HTTP alebo FTP proxy ak je počítač\n"
"umiestnený za proxy serverom.\n"
@@ -1940,13 +1893,18 @@ msgstr ""
" * \"%s\": ak si želáte zmeniť konfiguráciu zavádzača, kliknite na toto\n"
"tlačidlo. Táto možnosť je rezervovaná pre skúsených používateľov. Prezrite\n"
"si tlačenú dokumentáciu alebo internú dokumentáciu vrámci Kontrolného\n"
-"centra Mandriva Linux.\n"
+"centra Mageia.\n"
"\n"
" * \"%s\": máte možnosť definitívne nastaviť služby, ktoré budú\n"
"spúšťané na vašom počítači. Ak plánujete používať tento počítač ako\n"
"server, je dobrý nápad prezrieť si tieto nastavenia."
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "ISDN karta"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN karta"
@@ -1957,26 +1915,28 @@ msgid "Graphical Interface"
msgstr "Grafické rozhranie"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"Vyberte si pevný disk, ktorý chcete vymazať aby ste mohli vytvoriť\n"
-"nový oddiel pre Mandriva Linux. Buďte opatrní, všetky údaje ktoré sa\n"
+"nový oddiel pre Mageia. Buďte opatrní, všetky údaje ktoré sa\n"
"na disku nachádzajú budú odstránené a nebude možné ich obnoviť!"
#: ../help.pm:866
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Kliknite na \"%s\" ak si želáte vymazať všetky údaje a oblasti ktoré\n"
"sa nachádzajú na vašom pevnom disku. Buďte opatrní, po kliknutí na\n"
@@ -1996,3 +1956,126 @@ msgstr "Ďalej ->"
msgid "<- Previous"
msgstr "<- Späť"
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": kliknutím na \"%s\" tlačidlo sa otvorí sprievodca konfiguráciou "
+#~ "tlačiarne.\n"
+#~ "Ak chcete získať viac informácií o tom, ako nastaviť novú tlačiareň, "
+#~ "použite\n"
+#~ "``Úvodnú príručku''. Rozhranie, ktoré tu vidíte je podobné tomu, ktoré "
+#~ "bolo\n"
+#~ "použité pri inštalácii."
+
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "Toto je veľmi dôležité rozhodnutie zamerané na bezpečnosť vášho GNU/"
+#~ "Linux\n"
+#~ "systému: musíte zadať heslo pre používateľa \"root\"-a. Je to systémový "
+#~ "administrátor\n"
+#~ "a ako jediný má oprávnenie vykonávať aktualizácie, pridávať "
+#~ "používateľov,\n"
+#~ "meniť nastavenie celého systému a podobne. V skratke sa dá povedať, že "
+#~ "\"root\"\n"
+#~ "môže všetko! Toto je dôvod, prečo si musíte zvoliť heslo tak, aby ho "
+#~ "nebolo\n"
+#~ "jednoduché uhádnuť - DrakX vám to povie, ak je príliš jednoduché. Ako "
+#~ "vidíte,\n"
+#~ "môžete sa rozhodnúť nezadať žiadne heslo, ale chceli by sme vás pred tým\n"
+#~ "varovať z jedného dôvodu: nemyslite si, že vaše ostatné nainštalované "
+#~ "operačné\n"
+#~ "systémy sú chránené pred omylmi len preto, že máte spustený operačný "
+#~ "systém\n"
+#~ "GNU/Linux. Pretože na \"root\"-a sa nevzťahujú žiadne obmedzenia a je mu\n"
+#~ "umožnené dokonca vymazať všetky údaje na všetkých dostupných oblastiach,\n"
+#~ "je veľmi dôležité aby nebolo príliš jednoduché sa stať \"root\"-om.\n"
+#~ "\n"
+#~ "Toto heslo by malo byť kombináciou alfanumerických znakov a byť aspoň 8\n"
+#~ "znakov dlhé. Nikdy nezadávajte ako heslo \"root\", bolo by ho veľmi "
+#~ "jednoduché\n"
+#~ "uhádnuť a kompromitovať tak systém.\n"
+#~ "\n"
+#~ "V každom prípade, netvorte si heslo príliš dlhé alebo príliš "
+#~ "komplikované, aby ste\n"
+#~ "si ho dokázali zapamätať bez toho aby ste ho mali niekde napísané.\n"
+#~ "\n"
+#~ "Heslo sa počas jeho zadávania nezobrazuje na obrazovke. Budete vyzvaní k "
+#~ "tomu\n"
+#~ "aby ste ho zadali dva krát, aby sa predišlo problémom pri omyle alebo "
+#~ "preklepe. Ak\n"
+#~ "sa vám ale podarí zadať dva krát po sebe heslo s rovnakou chybou, bude "
+#~ "toto ``chybné''\n"
+#~ "heslo nastavené!\n"
+#~ "\n"
+#~ "Ak chcete kontrolovať prístup k tomuto počítaču pomocou autorizačného "
+#~ "servera\n"
+#~ "kliknite na tlačidlo \"%s\".\n"
+#~ "\n"
+#~ "Ak vaša sieť používa LDAP, NIS alebo PDC vrámci Windows domény pre "
+#~ "autentikáciu,\n"
+#~ "vyberte si požadované ako \"%s\". Ak neviete na túto otázku odpovedať\n"
+#~ "opýtajte sa vášho sieťového administrátora.\n"
+#~ "\n"
+#~ "Ak máte problém zapamätať si vaše heslo a váš počítač nie je pripojený k "
+#~ "Internetu\n"
+#~ "alebo ak dôverujete každému, kto má k počítaču prístup môžte si zvoliť "
+#~ "nastavenie\n"
+#~ "\"%s\"."
+
+#~ msgid "authentication"
+#~ msgstr "autentifikácia"
diff --git a/perl-install/install/help/po/sl.po b/perl-install/install/help/po/sl.po
index 132477e67..71e2dd797 100644
--- a/perl-install/install/help/po/sl.po
+++ b/perl-install/install/help/po/sl.po
@@ -2,23 +2,24 @@
# translation of DrakX-sl.po to Slovenian
# translation of DrakX-sl.po to Slovenščina
# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+#
# Matjaž Kaše <matjaz.kase@g-kabel.si>, 2004.
# Aljoša Ločičnik <aljosa.locicnik@mandrakeprinas.org>, 2005.
# Gregor Pirnaver <gregor.pirnaver@sdm-si.org>, 2002,2004,2005.
-# Jure Repinc <jlp@holodeck1.com>, 2005.
-#
+# Jure Repinc <jlp@holodeck1.com>, 2005, 2009.
msgid ""
msgstr ""
"Project-Id-Version: DrakX-sl\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
-"PO-Revision-Date: 2005-09-20 07:29+0200\n"
-"Last-Translator: Gregor Pirnaver <gregor.pirnaver@sdm-si.org>\n"
-"Language-Team: <sl@li.org>\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
+"PO-Revision-Date: 2009-10-03 17:02+0200\n"
+"Last-Translator: Jure Repinc <jlp@holodeck1.com>\n"
+"Language-Team: Slovenian <lugos-slo@lugos.si>\n"
+"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.9.1\n"
+"X-Generator: Lokalize 1.0\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || "
"n%100==4 ? 2 : 3);\n"
@@ -26,12 +27,12 @@ msgstr ""
#, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Preden nadaljujete, pozorno preberite pogoje licenčne pogodbe,\n"
-"ki se nanaša na celotno distribucijo Mandriva Linux. Če se strinjate z "
+"ki se nanaša na celotno distribucijo Mageia. Če se strinjate z "
"vsemi\n"
"pogoji licenčne pogodbe, označite okence »%s«. Če se s pogoji pogodbe\n"
"ne strinjate, pa označite okence »%s« in vaš računalnik se bo ponovno zagnal."
@@ -78,7 +79,7 @@ msgid ""
msgstr ""
"GNU/Linux je večuporabniški sistem, kar pomeni, da ima lahko vsak\n"
"uporabnik svoje nastavitve, svoje datoteke itd. Več o tem si lahko\n"
-" preberete v dokumentaciji. Razen sistemskega, »root« upravitelja,\n"
+" preberete v dokumentaciji. Razen sistemskega skrbnika (root),\n"
"uporabniki, ki jih boste dodali, ne bodo imeli dovoljenj, ki so potrebna za\n"
"spreminjanje tistih datotek in nastavitev, ki vplivajo na celoten sistem.\n"
"Tako je sistem zaščiten pred nenamernimi ali zlonamernimi spremembami.\n"
@@ -104,8 +105,8 @@ msgstr ""
"priporočamo,\n"
"da geslo določite in tako zaščitite svoje datoteke in podatke.\n"
"\n"
-"Ko klilnete »%s«, lahko dodate tudi druge navadne uporabnike.\n"
-"Posebene uporabniške račune lahko ustvarite za svoje prijatelje\n"
+"Ko kliknete »%s«, lahko dodate tudi druge navadne uporabnike.\n"
+"Posebne uporabniške račune lahko ustvarite za svoje prijatelje\n"
"in za člane svoje družine.\n"
"\n"
"Ko boste dokončali z dodajanjem uporabniških računov, kliknite »%s«.\n"
@@ -121,13 +122,23 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr "Uporabniško ime"
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr "Sprejmi uporabnika"
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
-msgstr "Želite uporabiti to možnost?"
+msgstr "Ali želite uporabiti to možnost?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -137,24 +148,24 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Na seznamu so razdelki za Linux, ki jih je čarovnik zaznal na vašem\n"
@@ -190,28 +201,27 @@ msgstr ""
#: ../help.pm:88
#, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Namestitev za Mandriva Linux je shranjena na več zgoščenkah.\n"
-"Če je izbrani paket shranjen na drugi zgoščeniki, bo DrakX izvrgel\n"
-"trenutno in vas pozval, da v pogon vstavite pravo zgoščenko.\n"
-"če prave zgoščenke nimate, kliknite »%s« in željeni paketi ne\n"
+"Namestitev za distribucijo Mageia je shranjena na več nosilcih.\n"
+"Če je izbrani paket shranjen na drugem nosilcu, bo DrakX izvrgel\n"
+"trenutnega in vas pozval, da v pogon vstavite pravi nosilec.\n"
+"Če pravega nosilca nimate, kliknite »%s« in paketi z njega ne\n"
"bodo nameščeni."
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -224,8 +234,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -262,7 +271,8 @@ msgid ""
"command-line interface. The total size of this installation is about 65\n"
"megabytes."
msgstr ""
-"Za Mandriva Linux je dostopnih na tisoče različnih programskih paketov.\n"
+"Sedaj je čas za izbiro programov, ki jih želite namestiti na sistem.\n"
+"Za distribucijo Mageia je dostopnih na tisoče različnih programskih paketov.\n"
"Da bi bilo upravljanje s paketi bolj preprosto, so razvrščeni v skupine\n"
"vsebinsko povezanih paketov.\n"
"\n"
@@ -323,7 +333,7 @@ msgstr ""
#: ../help.pm:149 ../help.pm:591
#, c-format
msgid "Upgrade"
-msgstr "Posodobitev "
+msgstr "Posodobitev"
#: ../help.pm:149
#, c-format
@@ -349,10 +359,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -383,9 +393,9 @@ msgstr ""
"\n"
"!! Če izberete paket ali skupino paketov, ki vsebuje strežnik,\n"
"boste morali namestitev takšnega paketa na izrecno vprašanje\n"
-"potrditi. Mandriva Linux namreč kot privzeto vključi vse\n"
+"potrditi. Mageia namreč kot privzeto vključi vse\n"
" nameščene storitve ob zagonu sistema. Čeprav ob izdaji\n"
-"te različice Mandriva Linuxa ni bilo znanih težav v zvezi z varnostjo,\n"
+"te različice Mageia ni bilo znanih težav v zvezi z varnostjo,\n"
"je mogoče, da so bile odkrite varnostne luknje kasneje. Če za \n"
"določeno storitev ne veste, kaj je njena naloga, kliknite »%s« S klikom\n"
"na »%s«bodo nameščene naštete storitve, sistem pa jih bo samodejno\n"
@@ -412,23 +422,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Samodejne odvisnosti"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"»%s«: S klikom na »%s« lahko zaženete čarovnika za nastavljanje "
-"tiskalnikov.\n"
-"V dokumentaciji lahko preberete več o priključitvi in nastavljanju "
-"tiskalnikov.\n"
-"Prikaz nastavljanja tiskalnikov v dokumentaciji je podoben prikazu na "
-"zaslonu\n"
-"med nastavljanjem."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -498,7 +492,12 @@ msgstr ""
"lahko\n"
"uporabljajo tudi drugi računalniki v krajevnem omrežju."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr "Računalniška ura nastavljena na GMT"
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Samodejno usklajevanje časa"
@@ -531,7 +530,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -586,7 +585,7 @@ msgid ""
"not successful in getting the display configured."
msgstr ""
"X (okenski sistem X) je srce grafičnega vmesnika za GNU/Linux\n"
-"na katerega se zanašajo vsa v Mandriva Linux vključena grafična\n"
+"na katerega se zanašajo vsa v distribucijo Mageia vključena grafična\n"
"okolja. (KDE, GNOME, AfterStep, WindowMaker ...)\n"
"\n"
"Prikazal se vam bo seznam različnih vrednosti, ki jih lahko spreminjate,\n"
@@ -700,39 +699,39 @@ msgstr ""
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -741,15 +740,14 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -763,11 +761,11 @@ msgid ""
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
"Določite, na katerem delu trdega diska naj bo nameščen operacijski\n"
-"sistem Mandriva Linux. Če je trdi disk prazen ali če na njem nameščeni\n"
+"sistem Mageia. Če je trdi disk prazen ali če na njem nameščeni\n"
"operacijski sistem zaseda celoten prostor, boste morali disk razdeliti na\n"
"posamezne razdelke. Razdeljevanje trdega diska izvede logično\n"
"razdelitev, ki zagotovi potrebni prostor za namestitev operacijskega\n"
-"sistema Mandriva Linux.\n"
+"sistema Mageia.\n"
"\n"
"Trdega diska po izvršenem razdeljevanju običajno ni mogoče povrniti v "
"prejšnje stanje.\n"
@@ -810,7 +808,7 @@ msgstr ""
" nameščanje novih programov v Windows.\n"
"\n"
" * »%s«: Če želite izbrisati vse obstoječe razdelke z vsemi podatki in jih \n"
-"nadomestiti s sistemom Mandriva Linux, izberite to možnost.\n"
+"nadomestiti s sistemom Mageia, izberite to možnost.\n"
"Bodite previdni, ko boste potrdili to izbiro, prejšnjega stanja ne bo več "
"mogoče vzpostaviti.\n"
"\n"
@@ -834,7 +832,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Uporabi obstoječi razdelek"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr "Uporabi razpoložljivi prostor na razdelku od Windows"
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Izbriši celoten disk"
@@ -910,7 +913,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Ustvari disketo za samodejno namestitev"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr "Ponovljena"
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr "Samodejna"
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr "Shrani izbor paketov"
+
+#: ../help.pm:408
#, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -930,7 +948,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -948,7 +966,7 @@ msgstr ""
"\n"
"Kliknite na »%s«,ko boste pripravljeni na razdeljevanje.\n"
"\n"
-"Kliknite na »%s«, če želite za namestitev sistema Mandriva Linux\n"
+"Kliknite na »%s«, če želite za namestitev sistema Mageia\n"
"izbrati drug razdelek.\n"
"\n"
"Kliknite na »%s«, če želite določiti razdelke, na katerih naj sistem\n"
@@ -957,7 +975,7 @@ msgstr ""
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -970,7 +988,7 @@ msgid ""
"the selected package(s), or \"%s\" to abort."
msgstr ""
"Verjetno so bili od njegove izdaje pa do časa, ko nameščate\n"
-"Mandriva Linux na svoj računalnik, nekateri paketi popravljeni\n"
+"distribucijo Mageia na svoj računalnik, nekateri paketi popravljeni\n"
"ali nadgrajeni z varnostnimi popravki ali z odstranitvijo hroščev.\n"
"Te popravke lahko prenesete z interneta. Če imate vzpostavljeno\n"
"internetno povezavo, označite »%s«, če pa želite namestiti\n"
@@ -991,7 +1009,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1019,21 +1037,21 @@ msgstr "Upravitelj varnostnih nastavitev"
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1049,21 +1067,21 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1080,17 +1098,11 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-"Izbrati morate razdelke, na katere boste namestitli sistem\n"
-"Mandriva Linux. Če ste razdelke že izbrali ob kakšni predhodni\n"
+"Izbrati morate razdelke, na katere boste namestili sistem\n"
+"Mageia. Če ste razdelke že izbrali ob kakšni predhodni\n"
"namestitvi GNU/Linux sistema s kakim drugim orodjem za\n"
"razdeljevanje, lahko uporabite obstoječe razdelke, sicer pa morate\n"
"razdelke trdega diska za namestitev določiti sedaj.\n"
@@ -1103,7 +1115,7 @@ msgstr ""
"\n"
" * »%s«: brisanje vseh razdelkov na izbranem disku\n"
"\n"
-" * »%s«: samodejno ustvarjanje ext3 in izmenjalnih (swap) razdelkov\n"
+" * »%s«: samodejno ustvarjanje ext4 in izmenjalnih (swap) razdelkov\n"
"na prostem delu vašega trdega diska.\n"
"\n"
"»%s«: dostop do dodatnih možnosti:\n"
@@ -1152,59 +1164,78 @@ msgstr ""
"\n"
"Vse nadaljnje informacije o datotečnih sistemih boste našli v\n"
"dokumentaciji.\n"
-"\n"
-"Če Mandriva Linux nameščate na PPC računalnik, morate ustvariti\n"
-"zagonski »bootstrap« razdelek z velikostjo najmanj 1MB, ki ga\n"
-"uporablja zagonski nalagalnik yaboot. Če ta razdelek nekoliko\n"
-"povečate in mu namenite vsaj 50MB, boste nanj lahko shranjevali\n"
-"potrebne datoteke za zasilni zagon sistema."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr "Shrani tabelo razdelkov"
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr "Obnovi tabelo razdelkov"
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr "Reši tabelo razdelkov"
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
-msgstr "Samodejno priklapljanje odstranljivih medijev"
+msgstr "Samodejno priklapljanje odstranljivih nosilcev"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr "Čarovnik"
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr "Razveljavi"
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
-msgstr "Preklapljanje med normalnim in izvedenskim načinom"
+msgstr "Preklopi med normalnim in izvedenskim načinom"
#: ../help.pm:536
#, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Na vašem trdem disku je več kot en razdelek za Windows.\n"
"Izberite razdelek, ki ga želite zmanjšati, da bi pridobili prostor za\n"
-"namestitev sistema Mandriva Linux.\n"
+"namestitev sistema Mageia.\n"
"\n"
"Na seznamu so razdelki s podatki: »Ime v Linuxu«, »Ime v Windows«\n"
"»Velikost« \n"
@@ -1239,7 +1270,7 @@ msgid ""
"the\n"
"list shown, click on the \"%s\" button to get the complete country list."
msgstr ""
-"»%s«:Preverite, katero državo ste izbrali. Če v resnici niste v izbrani "
+"»%s«: Preverite, katero državo ste izbrali. Če v resnici niste v izbrani "
"državi,\n"
"kliknite »%s« in izberite drugo. Če država, v kateri ste, ni prikazana,\n"
"kliknite »%s« za prikaz celotnega seznama držav."
@@ -1251,29 +1282,28 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Ta korak se zažene samo v primeru, da na vašem računalniku že obstaja\n"
"razdelek za GNU/Linux.\n"
"\n"
"Lahko izbirate med novo namestitvijo in med posodobitvijo obstoječega\n"
-"sistema Mandriva Linux.\n"
+"sistema Mageia.\n"
"\n"
" * »%s«: S tem boste obstoječi sistem povsem odstranili. Če želite\n"
"spremeniti razdelitev trdega diska ali datotečni sistem, izberite to\n"
@@ -1286,7 +1316,7 @@ msgstr ""
"podobno kot pri običajni novi namestitvi.\n"
"\n"
"Možnost »Posodobitev« deluje, če imate nameščeno različico\n"
-"sistema Mandriva Linux »8.1« ali novejšo. Posodobitve starejših\n"
+"sistema Mageia »8.1« ali novejšo. Posodobitve starejših\n"
"različic od »8.1« ne priporočamo."
#: ../help.pm:594
@@ -1321,9 +1351,9 @@ msgstr ""
"Kliknite na gumb »%s« in pojavil se bo seznam vseh tipkovnic, ki jih sistem "
"podpira.\n"
"\n"
-"Če ste izbrali tipkovnico, ki temelji na nelatinični abecedi,\n"
+"Če ste izbrali tipkovnico, ki temelji na ne-latinični abecedi,\n"
"lahko v naslednjem koraku določite ukaz, ki vam bo omogočil\n"
-"preklapljanje med latiničnim in nelatiničnim razporedom tipkovnice."
+"preklapljanje med latiničnim in ne-latiničnim razporedom tipkovnice."
#: ../help.pm:612
#, c-format
@@ -1342,8 +1372,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1382,7 +1411,7 @@ msgstr ""
"jezik pa lahko namestite na primer angleščino, tako da izberete »%s« v "
"naprednem načinu.\n"
"\n"
-"Podpora Utf-8 (unicode) Unicode je kodiranje znakov, ki poizkuša\n"
+"Podpora UTF-8 (unicode) Unicode je kodiranje znakov, ki poizkuša\n"
"zagotoviti pravilen prikaz pisav vseh poznanih jezikov. Ker je unicode\n"
" za GNU/Linux še v razvoju, lahko določite, ali naj ga sistem uporablja\n"
"ali ne.\n"
@@ -1412,9 +1441,14 @@ msgstr ""
#: ../help.pm:650
#, c-format
msgid "Espanol"
-msgstr "Angleščina"
+msgstr "Španščina"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr "Privzeto uporabljaj Unicode"
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1485,7 +1519,7 @@ msgstr ""
#: ../help.pm:684
#, c-format
msgid "with Wheel emulation"
-msgstr "z emulacijo kolesca"
+msgstr "S posnemanjem kolesca"
#: ../help.pm:684
#, c-format
@@ -1501,86 +1535,7 @@ msgstr ""
"Izberite prava vrata. Vrata, ki so v Windows označena s »COM1«, imajo v\n"
"GNU/Linuxu oznako »ttyS0«."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"S stališča varnosti je to eden od najpomembnejših korakov namestitve\n"
-"GNU/Linux operacijskega sistema: določitev gesla korenskega, »root«\n"
-"uporabnika. Korenski uporabnik je upravitelj sistema in je pooblaščen\n"
-"za spreminjanje sistemskih nastavitev, dodajanje uporabnikov, nameščanje\n"
-"programov, skratka, »root« lahko stori karkoli! Zato določite geslo, ki ga "
-"ni\n"
-"lahko uganiti. DrakX vas bo opozoril, če je izbrano geslo prelahko.\n"
-"Lahko se tudi odločite, da gesla sploh ne določite, vendar vam to zares\n"
-"odsvetujemo. GNU/Linux je v enaki meri občutljiv za napake operaterja,\n"
-"kot katerikoli drug operacijski sistem, zato se lahko zgodi, da nehote\n"
-"napravite kakšno nepopravljivo napako. Prav zato pa je pomembno,\n"
-"da postati »root« ni preveč enostavno.\n"
-"\n"
-"Geslo naj bo sestavljeno iz črk in številk, vsebuje pa naj vsaj osem\n"
-"znakov. Gesla uporabnika root si nikoli ne zapišite!\n"
-"\n"
-"Nasvet: geslo naj ne bo predolgo ali preveč zapleteno. Izberite\n"
-"geslo, ki si ga boste lahko zapomnili!\n"
-"\n"
-"Medtem, ko geslo vpisujete, ga ni mogoče videti. Da bi se izognili\n"
-"napakam pri tipkanju, ga morate vpisati dvakrat.\n"
-"\n"
-"Če želite, da bi dostop do računalnika nadzirala storitev za overjanje,\n"
-"kliknite na gumb »%s«.\n"
-"\n"
-"Če vaše omrežje uporablja storitev za overjanje domene LDAP,\n"
-"NIS ali Windows domain authentication, izberite ustrezno storitev\n"
-"za »%s«. Če ne veste, katero morate izbrati, vprašajte omrežnega\n"
-"operaterja.\n"
-"\n"
-"Če si gesla težko zapomnite, če vaš računalnik ne bo povezan\n"
-"z internetom in če v celoti zaupate vsem, ki bodo uporabljali\n"
-"vaš računalnik, lahko izberete »%s«."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "Overjanje"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1594,7 +1549,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1621,7 +1576,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1642,11 +1597,11 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Izberite sistem za tiskanje. Drugi operacijski sistemi navadno nudijo\n"
-"en sistem, Mandriva Linux pa vam daje na izbiro dva.\n"
+"en sistem, Mageia pa vam daje na izbiro dva.\n"
"Od obeh sistemov je vsak primeren za svojo vrsto namestitve.\n"
"\n"
" * »%s«--je kratica za »print, do not queue« (tiskaj, ne vnesi v čakalno "
@@ -1678,7 +1633,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr "CUPS"
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Napredno"
@@ -1691,7 +1651,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1732,7 +1692,7 @@ msgstr ""
"drug gonilnik."
#: ../help.pm:794
-#, c-format
+#, fuzzy, c-format
msgid ""
"As a review, DrakX will present a summary of information it has gathered\n"
"about your system. Depending on the hardware installed on your machine, you\n"
@@ -1755,11 +1715,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1777,8 +1732,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1795,13 +1749,13 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-"DrakX bo prikazal pregled informacij, ki jih je zbral o vašem sistemu.\n"
+"DrakX bo prikazal pregled podatkov, ki jih je zbral o vašem sistemu.\n"
" Vrsta in število prikazanih vnosov sta odvisna od strojne opreme, ki je \n"
"priključena v vašem računalniku. Vsak vnos vsebuje ime naprave ali\n"
"storitve ter kratek pregled njenih trenutnih nastavitev. Če želite "
@@ -1856,12 +1810,16 @@ msgstr ""
" * »%s«: Na ta gumb kliknite, če želite spremeniti nastavitve zagonskega\n"
"nalagalnika. To priporočamo samo izkušenim uporabnikom!.\n"
"\n"
-" * »%s«: Tu lahko določite, katere storitve naj tečejo na vašem "
-"računalniku.\n"
+" * »%s«: Tu lahko določite, katere storitve naj tečejo na vašem računalniku.\n"
"Če boste računalnik uporabljali kot strežnik, vam priporočamo, da\n"
"pregledate in prilagodite te nastavitve."
-#: ../help.pm:858
+#: ../help.pm:809
+#, c-format
+msgid "TV card"
+msgstr "TV kartica"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN kartica"
@@ -1869,18 +1827,18 @@ msgstr "ISDN kartica"
#: ../help.pm:858
#, c-format
msgid "Graphical Interface"
-msgstr "Grafični vmesnik"
+msgstr "Grafična kartica"
#: ../help.pm:861
#, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"Izberite trdi disk, ki ga želite izbrisati, da bi dobili prostor za "
"razdelek\n"
-"za Mandriva Linux.\n"
+"za distribucijo Mageia.\n"
"Vsi podatki na izbranem disku bodo izbrisani in jih ne bo mogoče\n"
"obnoviti!"
@@ -1888,12 +1846,12 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be able\n"
+"to recover any data and partitions present on this hard disk drive, including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Če želite izbrisati vse razdelke na tem disku in vse podatke na njih,\n"
"kliknite na »%s« Pazite, po tem, ko boste kliknili »%s«, razdelkov\n"
@@ -1912,3 +1870,107 @@ msgstr "Naprej ->"
msgid "<- Previous"
msgstr "<- Nazaj"
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "»%s«: S klikom na »%s« lahko zaženete čarovnika za nastavljanje "
+#~ "tiskalnikov.\n"
+#~ "V dokumentaciji lahko preberete več o priključitvi in nastavljanju "
+#~ "tiskalnikov.\n"
+#~ "Prikaz nastavljanja tiskalnikov v dokumentaciji je podoben prikazu na "
+#~ "zaslonu\n"
+#~ "med nastavljanjem."
+
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "S stališča varnosti je to eden od najpomembnejših korakov namestitve\n"
+#~ "GNU/Linux operacijskega sistema: določitev gesla korenskega, »root«\n"
+#~ "uporabnika. Korenski uporabnik je upravitelj sistema in je pooblaščen\n"
+#~ "za spreminjanje sistemskih nastavitev, dodajanje uporabnikov, nameščanje\n"
+#~ "programov, skratka, »root« lahko stori karkoli! Zato določite geslo, ki ga "
+#~ "ni\n"
+#~ "lahko uganiti. DrakX vas bo opozoril, če je izbrano geslo prelahko.\n"
+#~ "Lahko se tudi odločite, da gesla sploh ne določite, vendar vam to zares\n"
+#~ "odsvetujemo. GNU/Linux je v enaki meri občutljiv za napake operaterja,\n"
+#~ "kot katerikoli drug operacijski sistem, zato se lahko zgodi, da nehote\n"
+#~ "napravite kakšno nepopravljivo napako. Prav zato pa je pomembno,\n"
+#~ "da postati »root« ni preveč enostavno.\n"
+#~ "\n"
+#~ "Geslo naj bo sestavljeno iz črk in številk, vsebuje pa naj vsaj osem\n"
+#~ "znakov. Gesla uporabnika root si nikoli ne zapišite!\n"
+#~ "\n"
+#~ "Nasvet: geslo naj ne bo predolgo ali preveč zapleteno. Izberite\n"
+#~ "geslo, ki si ga boste lahko zapomnili!\n"
+#~ "\n"
+#~ "Medtem, ko geslo vpisujete, ga ni mogoče videti. Da bi se izognili\n"
+#~ "napakam pri tipkanju, ga morate vpisati dvakrat.\n"
+#~ "\n"
+#~ "Če želite, da bi dostop do računalnika nadzirala storitev za overjanje,\n"
+#~ "kliknite na gumb »%s«.\n"
+#~ "\n"
+#~ "Če vaše omrežje uporablja storitev za overjanje domene LDAP,\n"
+#~ "NIS ali Windows domain authentication, izberite ustrezno storitev\n"
+#~ "za »%s«. Če ne veste, katero morate izbrati, vprašajte omrežnega\n"
+#~ "operaterja.\n"
+#~ "\n"
+#~ "Če si gesla težko zapomnite, če vaš računalnik ne bo povezan\n"
+#~ "z internetom in če v celoti zaupate vsem, ki bodo uporabljali\n"
+#~ "vaš računalnik, lahko izberete »%s«."
+
+#~ msgid "authentication"
+#~ msgstr "Overjanje"
diff --git a/perl-install/install/help/po/sq.po b/perl-install/install/help/po/sq.po
index 96dca30d1..d87248cd2 100644
--- a/perl-install/install/help/po/sq.po
+++ b/perl-install/install/help/po/sq.po
@@ -7,10 +7,11 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX for MDK 9.2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2004-09-15 13:33+0200\n"
"Last-Translator: Naim Daka <naim70@freesurf.ch>\n"
"Language-Team: Albanian <LL@li.org>\n"
+"Language: sq\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
@@ -20,12 +21,12 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Para se të vazhdoni më tutje, ju duhet ti lexoni termet dhe kushtet për\n"
-"përdorimin e licencës. Kjo mbulon tërë shpërndarjen e Mandriva Linux,\n"
+"përdorimin e licencës. Kjo mbulon tërë shpërndarjen e Mageia,\n"
"nëse ju pajtoheni me këto kushte, klikoni mbi mbi kopsën \"%s\".\n"
"Nëse ju nuk pajtoheni atëher thjeshtë ndaleni komjuterin tuaj."
@@ -116,13 +117,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "A dëshironi ta përdorni këtë veçori?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -132,24 +144,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Lista e lartë shënuar identifikon ndrajet Linux të zbuluara në\n"
@@ -188,14 +204,13 @@ msgstr ""
#: ../help.pm:88
#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Pakot e nevojshme për Instalimin e Mandriva Linux janë të shpërndara në "
-"shumë\n"
+"Pakot e nevojshme për Instalimin e Mageia janë të shpërndara në shumë\n"
"CDROM-e. Fatëmirësisht, DrakX i njef të gjitha lokacinet e pakove në CDROM-"
"e.\n"
"Ai do ta qetë jashtë CD-në që gjindet në lexuesin e CD-ve, dhe juve do të "
@@ -206,12 +221,11 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -224,8 +238,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -263,12 +276,12 @@ msgid ""
"megabytes."
msgstr ""
"Tani është momenti që ti zgjedhni pakot që duhet të instalohen në sistemin\n"
-"tuaj. Duhet ta dini se Mandriva Linux përmban me mijëra pako instaluese,\n"
+"tuaj. Duhet ta dini se Mageia përmban me mijëra pako instaluese,\n"
"dhe nuk është me rendësi që ti njifti të gjitha për mendësh.\n"
"\n"
"Pakot janë të radhitura në grupe përkatëse për përdorim të veçant në "
"makinën\n"
-"tuaj. Mandriva Linux posedon katër instalime të përcaktuara. Ju mund të\n"
+"tuaj. Mageia posedon katër instalime të përcaktuara. Ju mund të\n"
"mendoni mbi këto klasa instaluese si kontainer të pakove të ndryshme.\n"
"Ju keni mundësi ti përzini (mix) dhe ti barazoni aplikacionet nga "
"kontainerët\n"
@@ -342,10 +355,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -405,20 +418,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Mvarësit Automatike"
-#: ../help.pm:186
-#, fuzzy, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": duke klikuar mbi kopsën \"%s\" e cila do të hapë asistentin\n"
-"konfigurues. Konsultoni kapitujt e caktuar të ``Përcjellësit Nisës''\n"
-"për më shumë informacione se si të konfigurohet një stampues i ri.\n"
-"Interfaci i prezentuar, është i njëjtë me atë gjatë instalimit."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, fuzzy, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -489,7 +489,12 @@ msgstr ""
"të kohës lokale, i cili mund të jetë i mundshëm, që ai të përdoret nga\n"
"përdoruesit e tjerë të kësaj makine, nga rrjeti i juaj lokal"
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Sinkronizimi automatik i orës"
@@ -524,7 +529,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -580,7 +585,7 @@ msgid ""
msgstr ""
"X (për Sistemin Windows X) është zemra e interfacit grafik për GNU/Linux\n"
"në të cilin të gjitha mjediset grafike (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etj.) janë të denguara mbi Mandriva Linux.\n"
+"WindowMaker, etj.) janë të denguara mbi Mageia.\n"
"\n"
"Juve do të ju prezentohet lista e parametrave të ndryshëm për të ndryshuar,\n"
"dhe për të pranuar çfaqjet grafike optimale: Kartelë Grafike\n"
@@ -705,39 +710,43 @@ msgstr ""
#: ../help.pm:319
#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -746,15 +755,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -768,7 +777,7 @@ msgid ""
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
"Kjo etapë do të ju mundësoj që të përcaktoni me precizitet vendosjen dhe\n"
-"instalimin e Mandriva Linux. Nëse disku i juaj i fortë është zbrazët apo i\n"
+"instalimin e Mageia. Nëse disku i juaj i fortë është zbrazët apo i\n"
"përdorur nga një sistem tjetër eksploatimi, ju duhet ta shpërndani\n"
"diskun tuaj në pjesë. Ndarje e diskut d.m.th. ta shpërndani me precizitet\n"
"që më fund të krijoni një hapësire për instalimin e sistemit Mandriva "
@@ -813,7 +822,7 @@ msgstr ""
"\n"
" * \"%s\": nëse ju dëshironi ti zhdukni të gjitha\n"
"të dhënat dhe aplikacionet e instaluara në sistemin tuaj, dhe ti\n"
-"zëvendësoni me një sistem të ri Mandriva Linux, zgjedheni këtë mundësi.\n"
+"zëvendësoni me një sistem të ri Mageia, zgjedheni këtë mundësi.\n"
"Keni kujDES, sepse kjo mundësi është e pa kthyeshme mbrapa. Është e pa\n"
"mundur të gjindet të dhënat e zhdukura.\n"
"\n"
@@ -839,7 +848,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Përdore ndarjen egzistuese"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Shlyeje diskun të tërësi"
@@ -918,7 +932,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "krijo një disketë floppy auto instaluese"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -938,7 +967,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -959,7 +988,7 @@ msgstr ""
"Klikoni mbi \"%s\" kur ju jeni i gatshëm që ti formatoni ndarjet.\n"
"\n"
"Klikoni mbi \"%s\" nëse ju dëshironi të zgjedhni një ndarje tjetër apo\n"
-"të instaloni një sistemi të ri eksploatues Mandriva Linux.\n"
+"të instaloni një sistemi të ri eksploatues Mageia.\n"
"\n"
"Klikoni mbi \"%s\" nëse ju dëshironi ti zgjedhni ndarjet, për një\n"
"verifikim të sektorëve të dëmtuar në disk."
@@ -967,7 +996,7 @@ msgstr ""
#: ../help.pm:437
#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -979,7 +1008,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Nga momenti kur ju jeni duke instaluar Mandriva Linux, është e mundur që\n"
+"Nga momenti kur ju jeni duke instaluar Mageia, është e mundur që\n"
"disa pako janë azhurnuar prej daljes së atij prodhimi. Disa buge mund\n"
"të korigjohen, njashtu dhe probleme tjera të sigurisë. Për të ju\n"
"mundësuar të përfitoni një azhurnim, do të jenë të propozuara që të\n"
@@ -1003,7 +1032,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1030,21 +1059,24 @@ msgstr "Siguria e Administratorit:"
#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1060,21 +1092,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1091,17 +1125,11 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"Në këtë etapë ju duhet të zgjedhni se cila(t) ndarje(t) do të përdoret(n)\n"
-"për sistemin tuaj Mandriva Linux. Nëse ndarja e diskut është bërë më heret,\n"
+"për sistemin tuaj Mageia. Nëse ndarja e diskut është bërë më heret,\n"
"nga një instalim tjetër GNU/Linux apo nga nji vegël tjetër ndarëse, ju\n"
"mund të përdorni ndarjet e bëra. Mes tjerash ndarjet duhen të jenë të\n"
"përcaktuara\n"
@@ -1117,7 +1145,7 @@ msgstr ""
" * \"%s\": ky opcion do të zhduk, të gjitha ndarjet në diskun e zgjedhur\n"
"\n"
" * \"%s\": ky opcion mundëson krijimin e një sistemi të skedareve\n"
-"ext3 dhe swap të ndarjeve, në hapësirën e lirë të diskut tuaja\n"
+"ext4 dhe swap të ndarjeve, në hapësirën e lirë të diskut tuaja\n"
"\n"
"\"%s\": mundëson hyrjen në fonksionimin e llogarive:\n"
"\n"
@@ -1167,20 +1195,38 @@ msgstr ""
"\n"
"Për të përfituar më shumë informacione mbi sistemet e skedareve, lexoni mbi\n"
"sistemin e skedareve ext2FS në ``Doracakun referues''.\n"
-"\n"
-"Nëse ju jeni duke instaluar një stacion PPC, ju duhet të krijoni një ndarje\n"
-"të vogël HFS ``bootstrap'' më së paku 1MB, e cila do të përdoret nga "
-"bootloader\n"
-"yaboot. Nëse dëshironi të bëni një ndarje më të madhe, p.sh 50MB, ju duhet\n"
-"të gjeni një vegël për të vendosur bërthamat dhe imazhet ramdisk hyrëse në\n"
-"rastë të ndonji problemi."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, fuzzy, c-format
msgid "Removable media auto-mounting"
msgstr "Automontim i periferikëve lëvizës"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Kalo mes modit normal/ekspert"
@@ -1188,39 +1234,45 @@ msgstr "Kalo mes modit normal/ekspert"
#: ../help.pm:536
#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Janë gjetur më shumë se një ndarje Windows në diskun tuaj të fort, ju\n"
"lutemi zgjedheni njërin për ta ridimenziunuar, dhe për të instaluar\n"
-"sistemin të ri eksploatues Mandriva Linux.\n"
+"sistemin të ri eksploatues Mageia.\n"
"\n"
"Çdo ndarje është listuar simbas: \"Emri Linux\", \"Emri Windows\"\n"
"\"Kapaciteti\".\n"
@@ -1269,29 +1321,29 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Kjo etapë aktivizohet automatikisht nëse ju posedoni një ndarje të vjetër\n"
"GNU/Linux, në makinën tuaj.\n"
"\n"
"DrakX tani ka nevojë të dijë nëse ju dëshironi të çfaqni një instalim,\n"
-"apo azhurnim të ri, në sistemin ekzistues Mandriva Linux:\n"
+"apo azhurnim të ri, në sistemin ekzistues Mageia:\n"
"\n"
" * \"%s\": Për shumicën e rasteve, ky kompletisht shlyhet nga sistemet\n"
"e vjetra. Nëse ju dëshironi ta ndërroni shpërndarjen e diskut tuaj të "
@@ -1303,16 +1355,15 @@ msgstr ""
"disa të dhëna ekzistuese nga të mbi-zëvendësuarat.\n"
"\n"
" * \"%s\": kjo klasë instaluese ju mundëson azhurnimin e pakove aktuale\n"
-"të instaluara, në sistemin tuaj Mandriva Linux. Skema e ndarjes,\n"
+"të instaluara, në sistemin tuaj Mageia. Skema e ndarjes,\n"
"dhe e të dhënave të përdoruesve, nuk do të ndryshohet. Shumica\n"
"e etapave të tjera konfiguruese mundësojnë një vazhdim, të njëjtë sikur\n"
"tek instalimet standarde.\n"
"\n"
"Duke përdorur mundësinë ``Azhurno'' duhet të funksionoj shumë mirë në "
"sistemin\n"
-"Mandriva Linux ndër versionin \"8.1\" apo më të ri. Tentimi i Azhurnimit të\n"
-"një versioni më të vjetër se versioni Mandriva Linux \"8.1\" nuk "
-"rekomandohet."
+"Mageia ndër versionin \"8.1\" apo më të ri. Tentimi i Azhurnimit të\n"
+"një versioni më të vjetër se versioni Mageia \"8.1\" nuk rekomandohet."
#: ../help.pm:594
#, fuzzy, c-format
@@ -1367,8 +1418,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1425,7 +1475,12 @@ msgstr ""
msgid "Espanol"
msgstr "Spanjol"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, fuzzy, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1505,94 +1560,7 @@ msgstr ""
"Ju lutemi zgjedheni portën e saktë. Për shembull \"COM1\" është portë ndër\n"
"Windows, kurse \"ttyS0\" është i emëruar ndër sistemin GNU/Linux."
-#: ../help.pm:691
-#, fuzzy, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Këtu duhet të dini se do ta merrnji një vendim më të vështirë, për sigurinë\n"
-"e sistemit tuaj GNU/Linux: ju duhet të futni parullën sikur administrator\n"
-"\"root\". \"Root\" është administrues i sistemit me të gjitha të drejtat\n"
-"e konfigurimit, azhurnimit, shtimit të përdoruesëve etj. Konkretisht \"root"
-"\"mund të bëjë çdo gjë në sistemin tuaj! Dhe për atë arësye ju duhet të "
-"futni\n"
-"parullën e tij, që është shumë veshtirë ta merrni me mend atë -- DrakX do\n"
-"të ju tregoj nëse është lehtë. Siq po e shifni, ju mund të mos e futni\n"
-"parullën ne ju rekomandojmë sinqerisht kundër kësaj veprimtarie. Duke ditur\n"
-"se gabimet bëhen shumë lehtë dhe pa ditur, një përdorues me të gjitha të\n"
-"drejtat mund të bëjë çmosë. Prej që se \"root\" mund të përfitojë gjdo\n"
-"të drejtë pa kufi i cili mund të zhdukë të gjitha të dhënat, duke kaluar\n"
-"në secilën ndarje të diskut, është me rëndësi që me vështirësi të madhe të\n"
-"shëndërroheni në administrator \"root\".\n"
-"\n"
-"Zgjedhja e parullës duhet të përmbajë së paku 8 karaktere (shkronja, numra\n"
-"etj) alfanumerikë. Mos e shkruani kurrë parullën \"root\" diku, mundohuni\n"
-"ta mbani në mend.\n"
-"\n"
-"Megjithatë, mos e shkruani parullën shumë të gjatë apo të komplikuar, sepse\n"
-"ju duhet të jeni në gjendje, ta mbani në mend, pa u mundur shumë.\n"
-"\n"
-"Parulla nuk do të paraqitet n'ekran, sikur e shtypni në tastierë direkt, "
-"prej\n"
-"nga, ju duhet ta shtypni dy herë, për të zvogëluar gabimin e mundshëm. Nëse\n"
-"një gabim i tillë arrinë, atëherë kjo parullë ``e pa saktë'' do të "
-"regjistrohet,\n"
-"dhe ju duhet ta rishtypni për të hyrë në sistemin tuaj për të parën herë.\n"
-"\n"
-"Nëse ju dëshironi të hyni në këtë kompjuter për tu kontrolluar nga një "
-"server\n"
-"vërtetues, kliko mbi kopsën \"%s\".\n"
-"\n"
-"Nëse rrjeti i juaj përdorë LDAP, NIS apo një pronë PDC Windows për servise\n"
-"vërtetuese, zgjedheni një qarkullim sikur \"%s\". Nëse ju nuk\n"
-"dini cilin ta përdorni, pyetni administratorin e rrjetit tuaj.\n"
-"\n"
-"Nëse ju hasni në ndonji problem, në lidhje me parullën, ju mund ta zgjedhni\n"
-"mundësinë \"%s\", nëse kompjuteri juaj nuk duhet të kyqet në rrjetin\n"
-"e Internetit, dhe nëse ju keni besim në secilin perdorues i cili hynë në\n"
-"sistemin tuaj."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "vërtetësim"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, fuzzy, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1606,7 +1574,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1630,7 +1598,7 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1651,7 +1619,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Këtu, ne e zgjedhim një sistem stampues për kompjuterin tuaj. Sistemet "
@@ -1690,7 +1658,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, fuzzy, c-format
msgid "Expert"
msgstr "Modë Ekspert"
@@ -1703,7 +1676,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1767,11 +1740,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1789,8 +1757,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1807,7 +1774,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1879,7 +1846,12 @@ msgstr ""
"përdorni këtë makinë sikur një server, është ide e mirë ta riçfaqni këtë\n"
"instalim."
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "Kartelë ISDN"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "Kartelë ISDN"
@@ -1892,24 +1864,26 @@ msgstr "Interfac Grafikë"
#: ../help.pm:861
#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
-"Zgjedheni diskun e fort (hard drive) që dëshironi ta zhdukni, për të\n"
-"instaluar një ndarje të re Mandriva Linux. Keni kujDES, të gjitha të dhënat\n"
+"Zgjedheni diskun e fort (hard disk drive) që dëshironi ta zhdukni, për të\n"
+"instaluar një ndarje të re Mageia. Keni kujDES, të gjitha të dhënat\n"
"do të zhduken, dhe nuk mund të rekuperohen!"
#: ../help.pm:866
#, fuzzy, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Klikoni mbi \"%s\" nëse ju dëshironi ti zhdukni të dhënat dhe ndarjet në\n"
"diskun tuaj të fort. Keni kujDES, mbasi që të klikoni mbi \"%s\", ju nuk\n"
@@ -1929,3 +1903,126 @@ msgstr "Tjetri ->"
msgid "<- Previous"
msgstr "<- Mbrapa"
+#, fuzzy
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": duke klikuar mbi kopsën \"%s\" e cila do të hapë asistentin\n"
+#~ "konfigurues. Konsultoni kapitujt e caktuar të ``Përcjellësit Nisës''\n"
+#~ "për më shumë informacione se si të konfigurohet një stampues i ri.\n"
+#~ "Interfaci i prezentuar, është i njëjtë me atë gjatë instalimit."
+
+#, fuzzy
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "Këtu duhet të dini se do ta merrnji një vendim më të vështirë, për "
+#~ "sigurinë\n"
+#~ "e sistemit tuaj GNU/Linux: ju duhet të futni parullën sikur "
+#~ "administrator\n"
+#~ "\"root\". \"Root\" është administrues i sistemit me të gjitha të drejtat\n"
+#~ "e konfigurimit, azhurnimit, shtimit të përdoruesëve etj. Konkretisht "
+#~ "\"root\"mund të bëjë çdo gjë në sistemin tuaj! Dhe për atë arësye ju "
+#~ "duhet të futni\n"
+#~ "parullën e tij, që është shumë veshtirë ta merrni me mend atë -- DrakX "
+#~ "do\n"
+#~ "të ju tregoj nëse është lehtë. Siq po e shifni, ju mund të mos e futni\n"
+#~ "parullën ne ju rekomandojmë sinqerisht kundër kësaj veprimtarie. Duke "
+#~ "ditur\n"
+#~ "se gabimet bëhen shumë lehtë dhe pa ditur, një përdorues me të gjitha të\n"
+#~ "drejtat mund të bëjë çmosë. Prej që se \"root\" mund të përfitojë gjdo\n"
+#~ "të drejtë pa kufi i cili mund të zhdukë të gjitha të dhënat, duke kaluar\n"
+#~ "në secilën ndarje të diskut, është me rëndësi që me vështirësi të madhe "
+#~ "të\n"
+#~ "shëndërroheni në administrator \"root\".\n"
+#~ "\n"
+#~ "Zgjedhja e parullës duhet të përmbajë së paku 8 karaktere (shkronja, "
+#~ "numra\n"
+#~ "etj) alfanumerikë. Mos e shkruani kurrë parullën \"root\" diku, "
+#~ "mundohuni\n"
+#~ "ta mbani në mend.\n"
+#~ "\n"
+#~ "Megjithatë, mos e shkruani parullën shumë të gjatë apo të komplikuar, "
+#~ "sepse\n"
+#~ "ju duhet të jeni në gjendje, ta mbani në mend, pa u mundur shumë.\n"
+#~ "\n"
+#~ "Parulla nuk do të paraqitet n'ekran, sikur e shtypni në tastierë direkt, "
+#~ "prej\n"
+#~ "nga, ju duhet ta shtypni dy herë, për të zvogëluar gabimin e mundshëm. "
+#~ "Nëse\n"
+#~ "një gabim i tillë arrinë, atëherë kjo parullë ``e pa saktë'' do të "
+#~ "regjistrohet,\n"
+#~ "dhe ju duhet ta rishtypni për të hyrë në sistemin tuaj për të parën "
+#~ "herë.\n"
+#~ "\n"
+#~ "Nëse ju dëshironi të hyni në këtë kompjuter për tu kontrolluar nga një "
+#~ "server\n"
+#~ "vërtetues, kliko mbi kopsën \"%s\".\n"
+#~ "\n"
+#~ "Nëse rrjeti i juaj përdorë LDAP, NIS apo një pronë PDC Windows për "
+#~ "servise\n"
+#~ "vërtetuese, zgjedheni një qarkullim sikur \"%s\". Nëse ju nuk\n"
+#~ "dini cilin ta përdorni, pyetni administratorin e rrjetit tuaj.\n"
+#~ "\n"
+#~ "Nëse ju hasni në ndonji problem, në lidhje me parullën, ju mund ta "
+#~ "zgjedhni\n"
+#~ "mundësinë \"%s\", nëse kompjuteri juaj nuk duhet të kyqet në rrjetin\n"
+#~ "e Internetit, dhe nëse ju keni besim në secilin perdorues i cili hynë në\n"
+#~ "sistemin tuaj."
+
+#~ msgid "authentication"
+#~ msgstr "vërtetësim"
diff --git a/perl-install/install/help/po/sr.po b/perl-install/install/help/po/sr.po
index 27aa3c97d..95516e817 100644
--- a/perl-install/install/help/po/sr.po
+++ b/perl-install/install/help/po/sr.po
@@ -7,26 +7,28 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2004-09-15 13:33+0200\n"
"Last-Translator: Toma Jankovic <tomaja@net.yu>\n"
"Language-Team: Serbian <i18n@mandrake.co.yu>\n"
+"Language: sr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 0.9.6\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
#: ../help.pm:14
#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Пре него што наставите пажљиво прочитајте услове лиценце. Она\n"
-"покрива целу Mandriva Linux дистрибуцију, и уколико се слажете\n"
+"покрива целу Mageia дистрибуцију, и уколико се слажете\n"
"са свим условима који се налазе у њој, кликните на \"Прихватам\" тастер\n"
"Уколико не прихватате, једноставно искључите \n"
"рачунар."
@@ -119,13 +121,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Да ли желите да користите ову опцију ?"
#: ../help.pm:57
#, fuzzy, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -135,24 +148,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Изнад се налази листа постојећих Linux партиција које су детектоване\n"
@@ -196,14 +213,13 @@ msgstr ""
#: ../help.pm:88
#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Mandriva Linux инсталација се налази на неколико дискова илити CDROM-ова. "
-"DrakX\n"
+"Mageia инсталација се налази на неколико дискова илити CDROM-ова. DrakX\n"
"зна уколико да уколико је селктовани пакет лоциран на другом CDROM-у и "
"избациће\n"
"тренутни CD те тражити од вас да убаците одговарајући."
@@ -212,12 +228,11 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -230,8 +245,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -269,8 +283,7 @@ msgid ""
"megabytes."
msgstr ""
"Сада је време да одредимо које програме желите да инсталирате на ваш\n"
-"систем. Постоје хиљаде пакета доступних за инсталацију на Mandriva Linux, "
-"и \n"
+"систем. Постоје хиљаде пакета доступних за инсталацију на Mageia, и \n"
"да би их учинили доступнијим, смеђтени су у групе сличних апликација.\n"
"\n"
"Пакети су сортирани у групе у односу на одговарајућу употребу на вашој\n"
@@ -351,10 +364,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -384,7 +397,7 @@ msgstr ""
"\n"
"!! Уколико је сервер пакет изабран случајно или као део\n"
"целе групе, бићете упитани да ли заиста желите да инсталирате\n"
-"понуђене сервере. Под Mandriva Linux-ом, сви инсталирани\n"
+"понуђене сервере. Под Mageia-ом, сви инсталирани\n"
"сервери се стартују по default-у за време подизања система. Чак и ако су "
"сигурни и немају\n"
"познатих безбедносних пропуста до времена изласка дистрибуције, може се "
@@ -413,22 +426,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr ""
-#: ../help.pm:186
-#, fuzzy, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"Штампач\": ако кликнете на тастер \"Без штампача\" покренути ћете "
-"конфигурациони\n"
-"програм за штампаче. Погледајте и одговоарајуће упуство у``Starter\n"
-"Guide'' за више информација о томе како да подесите нови штампач. Програм "
-"које се\n"
-"тада активира је сличан оном који се користи током инсталације."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, fuzzy, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -503,7 +501,12 @@ msgstr ""
"може користити и од\n"
"стране других машина на вашој локалној мрежи."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, fuzzy, c-format
msgid "Automatic time synchronization"
msgstr "Аутоматска синхронизација времена (преко NTP-а)"
@@ -537,7 +540,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -593,7 +596,7 @@ msgid ""
msgstr ""
"X (или X Window Систем) је срце GNU/Linux графичког интерфејса\n"
"на који се ослањају сва графичка окружења (KDE, GNOME, AfterStep,\n"
-"WindowMaker, итд.) која се налазе у Mandriva Linux-у.\n"
+"WindowMaker, итд.) која се налазе у Mageia-у.\n"
"\n"
"Биће вам приказана листа са различитим параметрима чијом изменом\n"
"можете добити оптималан графички приказ: Графичка картица\n"
@@ -710,39 +713,43 @@ msgstr ""
#: ../help.pm:319
#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -751,15 +758,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -773,12 +780,11 @@ msgid ""
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
"У овом тренутку, морате да изаберете где ћете инсталирати\n"
-"Mandriva Linux оперативни систем на ваш хард диск. Уколико је празан или\n"
+"Mageia оперативни систем на ваш хард диск. Уколико је празан или\n"
"постојећи оперативни систем користи сав постојећи простор на диску, треба да "
"га\n"
"партиционирате. У основи, партиционирање хард диска се састоји логичког\n"
-"дељења да би обезбедили простор за инсталацију ваш нови Mandriva Linux "
-"систем.\n"
+"дељења да би обезбедили простор за инсталацију ваш нови Mageia систем.\n"
"\n"
"Пошто су ефекти процеса партиционирања обично неповратни,\n"
"партиционирање може бити прилично стресан процес за неискусне кориснике.\n"
@@ -786,7 +792,7 @@ msgstr ""
"журите.\n"
"\n"
"Уколико сте покренули инсталацију у Експерт моду, покренућете\n"
-"DiskDrake, Mandriva Linux-ов алат за партиције, који вам дозвољавав да\n"
+"DiskDrake, Mageia-ов алат за партиције, који вам дозвољавав да\n"
"фино подесите ваше партиције. Погледајте DiskDrake секцију у ``User "
"Guide''.\n"
"Из инсталационог интерфејса, можете користити чаробњаке као што је описано "
@@ -824,7 +830,7 @@ msgstr ""
"дефрагментирате\n"
"Windows партицију из самог Windows-а. Backup података такође није лоша "
"идеја..\n"
-"Ово решење се препоручује уколико желите да користите Mandriva Linux и\n"
+"Ово решење се препоручује уколико желите да користите Mageia и\n"
"Microsoft Windows на истом компјутеру.\n"
"\n"
" Пре него што изаберете ову опцију, морате да разумете да након ове "
@@ -835,7 +841,7 @@ msgstr ""
"\n"
" * \"Брисање цвелог диска\": уколико желите да избришете све податке и све\n"
"партиције који постоје на вашем хард диску и замените их вашим\n"
-"новим Mandriva Linux системом, можете да изаберете ову оцију. Будите\n"
+"новим Mageia системом, можете да изаберете ову оцију. Будите\n"
"пажљивиса овом опцијом, јер нећете бити у могућности\n"
"да повратите старо стање након потврде.\n"
"\n"
@@ -863,7 +869,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Користи постојећу партицију"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Избриши цели диск"
@@ -951,7 +962,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Креирај ауто инсталациону дискету"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -971,7 +997,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -998,7 +1024,7 @@ msgstr ""
"\n"
"Кликните на \"<- Претходно\" ако желите да изаберете другу партицију за свој "
"нови\n"
-"Mandriva Linux систем.\n"
+"Mageia систем.\n"
"\n"
"Кликните на \"Напредно\" уколико желите да изаберете партиције које ће бити "
"проверене\n"
@@ -1007,7 +1033,7 @@ msgstr ""
#: ../help.pm:437
#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -1019,7 +1045,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"У време када будете инсталирали Mandriva Linux, врло је могуће да ће неки\n"
+"У време када будете инсталирали Mageia, врло је могуће да ће неки\n"
"пакети бити ажурирани у односу на иницијално издање. Неки багови могу \n"
"бити исправљени, а сигурносни пропусти затворене. Да би могли да користите "
"ове новије верзије\n"
@@ -1045,7 +1071,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1070,21 +1096,24 @@ msgstr "Администратор за сигурност:"
#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1100,21 +1129,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1131,17 +1162,11 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"На овој тачки, морате избрати коју партицију(e) желите да користите за\n"
-"инсталацију новог Mandriva Linux система. Уколико су партиције\n"
+"инсталацију новог Mageia система. Уколико су партиције\n"
"већ дефинисане (од предходне инсталације или од стране\n"
"другог алата за партиције), можете да користите постојеће партиције.\n"
"У другим случајевима,\n"
@@ -1205,20 +1230,38 @@ msgstr ""
"Да би добили информације о различитим доступним типовима система, "
"прочитајте\n"
"ext2FS поглавље из ``Упуства''.\n"
-"\n"
-"Уколико радите инсталацију на PPC Машину, можда ћете желети да креирате "
-"малу\n"
-"HFS 'bootstrap' партицију од најмање 1MB за употребу\n"
-"yaboot стартера. Уколико се двоумите да ову партицију направите мало већом,\n"
-"на пример 50MB, можете искористити тај простор за смештање\n"
-"резервног кернела и ramdisk image за стартање у хитним ситуацијама."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, fuzzy, c-format
msgid "Removable media auto-mounting"
msgstr "Аутомонтирање преносивог медија"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, fuzzy, c-format
msgid "Toggle between normal/expert mode"
msgstr "Пређи на нормални мод"
@@ -1226,39 +1269,45 @@ msgstr "Пређи на нормални мод"
#: ../help.pm:536
#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Једна или више Microsoft Windows партиција је детектовано \n"
"на хард диску. Изаберите коју од њих желите да смањите да би инсталирали\n"
-"нови Mandriva Linux оперативни систем.\n"
+"нови Mageia оперативни систем.\n"
"\n"
"Свака партиција је исписана на следећи начин: \"Име Linux-а\",\"Име Windows-а"
"\"\n"
@@ -1306,23 +1355,23 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Овај корак се активира само у случају да постоји стара GNU/Linux партиција "
"на\n"
@@ -1330,7 +1379,7 @@ msgstr ""
"\n"
"DrakX сада треба да зна да ли желите да изведете чисту инсталацију или "
"ажурирање\n"
-"постојећег Mandriva Linux система:\n"
+"постојећег Mageia система:\n"
"\n"
" * \"Инсталација\": У већини случајева, ова опција комплетно брише стари\n"
"систем. Уколико желите да измените број партиција, или\n"
@@ -1341,7 +1390,7 @@ msgstr ""
"\n"
" * \"Ажурирање\": ова инсталациона класа вам дозвољава да урадите ажурирање "
"пакета\n"
-"на тренутно инсталираном Mandriva Linux систему. Ваша тренутна\n"
+"на тренутно инсталираном Mageia систему. Ваша тренутна\n"
"шема партиција и кориснички подаци се не мењају. Већина других\n"
"конфигурационих корака и даље остаје доступна, слично стандардној "
"инсталацији.\n"
@@ -1349,7 +1398,7 @@ msgstr ""
"Употреба опције ``Ажурирање'' би требало да буде без проблема на Mandriva "
"Linux системима\n"
"од верзије \"8.1\" или новије. Извођење ажурирања на верзијама \n"
-"Mandriva Linux пре \"8.1\" није препоручљиво."
+"Mageia пре \"8.1\" није препоручљиво."
#: ../help.pm:594
#, fuzzy, c-format
@@ -1404,8 +1453,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1461,7 +1509,12 @@ msgstr ""
msgid "Espanol"
msgstr ""
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, fuzzy, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1542,91 +1595,7 @@ msgstr ""
"Молим, изаберите одговарајући порт. На пример, COM1 порт под MS Windows-ом\n"
" у Linux-у има ознаку ttyS0."
-#: ../help.pm:691
-#, fuzzy, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Ово је најзаначајнија тачка у одлучивању о сигурности вашег GNU/Linux\n"
-"система: морате да унесете \"root\" лозинку. \"root\" је администратор\n"
-"система и једини је овлаштен да врши измене, додаје кориснике,\n"
-"мења основну конфигурацију система, итд. Укратко, \"root\" може\n"
-"да уради све! Због тога морате да изаберете лозинку која тешко може да се\n"
-"погоди - DrakX ће вам рећи уколико је она сувише једноставна. Као што можете "
-"да видите, можете да\n"
-"изаберете и да не унесете лозинку, али вам озбиљно препоручујемо да то\n"
-"нерадите из једног разлога: немојте да мислите да то што сте стартовали GNU/"
-"Linux да\n"
-"ваши други оперативни системи сигурни од грешака. Како \"root\" може да\n"
-"прескочи сва ограничења и ненамерно избрише све податке на партицији\n"
-"неопрезним приступом, важно је да је тешко\n"
-"постати \"root\".\n"
-"\n"
-"Лозинка треба да буде мешавина бројева и слова и треба да садржи најмање 8\n"
-"карактера. Никада не записујте на папир \"root\" лозинку - тако лако\n"
-"можете угрозити систем.\n"
-"\n"
-"Међутим, потрудите се да лозинка не буде превише дуга или комликована зато\n"
-"што треба да је запамтите без много напора.\n"
-"\n"
-"Лозинка неће бити приказана на екрану када је укуцавате. Срећом, моћи ћете\n"
-"да је укуцате два пута да би смањили могућност греше у куцању.\n"
-"Уколико ипак погрешите у куцању, али два пута, ова\n"
-"``неисправна'' лозинка ће бити кориштена када се будете први пут "
-"конектовали.\n"
-"\n"
-"У Експертномм моду, бићете питани да ли ћете се конектовати на\n"
-"аутентификациони сервер, као што је NIS или LDAP.\n"
-"\n"
-"Уколико ваша мрежа користи LDAP (или NIS) протокол за аутентификацију, "
-"селектујте\n"
-"\"LDAP\" (или \"NIS\") за аутентификацију. Уколико то незнате, питајте\n"
-"вашег мрежног администратора.\n"
-"\n"
-"Уколико се ваш рачунар не конектује на администриране мреже, треба да\n"
-"изаберете \"Локални фајлови\" за аутентификацију."
-
-#: ../help.pm:725
-#, fuzzy, c-format
-msgid "authentication"
-msgstr "Аутентификација"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1640,7 +1609,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1651,7 +1620,7 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1672,11 +1641,11 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Сада треба да изаберемо систем за штампање за ваш рачунар. Други OS-ови вам\n"
-"нуде један, али вам Mandriva Linux нуди чак три.\n"
+"нуде један, али вам Mageia нуди чак три.\n"
"\n"
" * \"pdq\" што значи ``print, do not queue'', је избор за оне који имају\n"
"директни конекцију са својим штампачем и желите да избегнете\n"
@@ -1708,7 +1677,12 @@ msgstr ""
msgid "pdq"
msgstr ""
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Стручни"
@@ -1721,7 +1695,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1801,11 +1775,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1823,8 +1792,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1841,14 +1809,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "Интерна ISDN картица"
+
+#: ../help.pm:809
#, fuzzy, c-format
msgid "ISDN card"
msgstr "Интерна ISDN картица"
@@ -1861,8 +1834,8 @@ msgstr "Графички интерфејс"
#: ../help.pm:861
#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"Изаберите хард диск који желите да избришете да би инсталирали нову Mandriva "
@@ -1874,12 +1847,14 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Кликните на \"Следеће ->\" уколико желите да избришете све податке и \n"
"партиције на овом хард диску.Будите пажљиви, после клика на \"У реду\", ви\n"
@@ -1900,3 +1875,118 @@ msgstr "Следећи ->"
msgid "<- Previous"
msgstr "<- Претходни"
+#, fuzzy
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"Штампач\": ако кликнете на тастер \"Без штампача\" покренути ћете "
+#~ "конфигурациони\n"
+#~ "програм за штампаче. Погледајте и одговоарајуће упуство у``Starter\n"
+#~ "Guide'' за више информација о томе како да подесите нови штампач. Програм "
+#~ "које се\n"
+#~ "тада активира је сличан оном који се користи током инсталације."
+
+#, fuzzy
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "Ово је најзаначајнија тачка у одлучивању о сигурности вашег GNU/Linux\n"
+#~ "система: морате да унесете \"root\" лозинку. \"root\" је администратор\n"
+#~ "система и једини је овлаштен да врши измене, додаје кориснике,\n"
+#~ "мења основну конфигурацију система, итд. Укратко, \"root\" може\n"
+#~ "да уради све! Због тога морате да изаберете лозинку која тешко може да "
+#~ "се\n"
+#~ "погоди - DrakX ће вам рећи уколико је она сувише једноставна. Као што "
+#~ "можете да видите, можете да\n"
+#~ "изаберете и да не унесете лозинку, али вам озбиљно препоручујемо да то\n"
+#~ "нерадите из једног разлога: немојте да мислите да то што сте стартовали "
+#~ "GNU/Linux да\n"
+#~ "ваши други оперативни системи сигурни од грешака. Како \"root\" може да\n"
+#~ "прескочи сва ограничења и ненамерно избрише све податке на партицији\n"
+#~ "неопрезним приступом, важно је да је тешко\n"
+#~ "постати \"root\".\n"
+#~ "\n"
+#~ "Лозинка треба да буде мешавина бројева и слова и треба да садржи најмање "
+#~ "8\n"
+#~ "карактера. Никада не записујте на папир \"root\" лозинку - тако лако\n"
+#~ "можете угрозити систем.\n"
+#~ "\n"
+#~ "Међутим, потрудите се да лозинка не буде превише дуга или комликована "
+#~ "зато\n"
+#~ "што треба да је запамтите без много напора.\n"
+#~ "\n"
+#~ "Лозинка неће бити приказана на екрану када је укуцавате. Срећом, моћи "
+#~ "ћете\n"
+#~ "да је укуцате два пута да би смањили могућност греше у куцању.\n"
+#~ "Уколико ипак погрешите у куцању, али два пута, ова\n"
+#~ "``неисправна'' лозинка ће бити кориштена када се будете први пут "
+#~ "конектовали.\n"
+#~ "\n"
+#~ "У Експертномм моду, бићете питани да ли ћете се конектовати на\n"
+#~ "аутентификациони сервер, као што је NIS или LDAP.\n"
+#~ "\n"
+#~ "Уколико ваша мрежа користи LDAP (или NIS) протокол за аутентификацију, "
+#~ "селектујте\n"
+#~ "\"LDAP\" (или \"NIS\") за аутентификацију. Уколико то незнате, питајте\n"
+#~ "вашег мрежног администратора.\n"
+#~ "\n"
+#~ "Уколико се ваш рачунар не конектује на администриране мреже, треба да\n"
+#~ "изаберете \"Локални фајлови\" за аутентификацију."
+
+#, fuzzy
+#~ msgid "authentication"
+#~ msgstr "Аутентификација"
diff --git a/perl-install/install/help/po/sr@Latn.po b/perl-install/install/help/po/sr@Latn.po
index 6e57f292d..2a825542d 100644
--- a/perl-install/install/help/po/sr@Latn.po
+++ b/perl-install/install/help/po/sr@Latn.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2004-09-15 13:34+0200\n"
"Last-Translator: Toma Jankovic_<tomaja@net.yu>\n"
"Language-Team: Serbian <i18n@mandrake.co.yu>\n"
@@ -15,18 +15,19 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 0.9.6\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
#: ../help.pm:14
#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Pre nego što nastavite pažljivo pročitajte uslove licence. Ona\n"
-"pokriva celu Mandriva Linux distribuciju, i ukoliko se slažete\n"
+"pokriva celu Mageia distribuciju, i ukoliko se slažete\n"
"sa svim uslovima koji se nalaze u njoj, kliknite na \"Prihvatam\" taster\n"
"Ukoliko ne prihvatate, jednostavno isključite \n"
"računar."
@@ -121,13 +122,23 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Da li želite da koristite ovu opciju ?"
#: ../help.pm:57
#, fuzzy, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -137,24 +148,24 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Iznad se nalazi lista postojećih Linux particija koje su detektovane\n"
@@ -198,13 +209,13 @@ msgstr ""
#: ../help.pm:88
#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Mandriva Linux instalacija se nalazi na nekoliko diskova iliti CDROM-ova. "
+"Mageia instalacija se nalazi na nekoliko diskova iliti CDROM-ova. "
"DrakX\n"
"zna ukoliko da ukoliko je selktovani paket lociran na drugom CDROM-u i "
"izbaciće\n"
@@ -214,12 +225,11 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -232,8 +242,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -271,7 +280,7 @@ msgid ""
"megabytes."
msgstr ""
"Sada je vreme da odredimo koje programe želite da instalirate na vaš\n"
-"sistem. Postoje hiljade paketa dostupnih za instalaciju na Mandriva Linux, "
+"sistem. Postoje hiljade paketa dostupnih za instalaciju na Mageia, "
"i \n"
"da bi ih učinili dostupnijim, smeđteni su u grupe sličnih aplikacija.\n"
"\n"
@@ -353,10 +362,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -386,7 +395,7 @@ msgstr ""
"\n"
"!! Ukoliko je server paket izabran slučajno ili kao deo\n"
"cele grupe, bićete upitani da li zaista želite da instalirate\n"
-"ponuđene servere. Pod Mandriva Linux-om, svi instalirani\n"
+"ponuđene servere. Pod Mageia-om, svi instalirani\n"
"serveri se startuju po default-u za vreme podizanja sistema. Čak i ako su "
"sigurni i nemaju\n"
"poznatih bezbednosnih propusta do vremena izlaska distribucije, može se "
@@ -415,22 +424,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr ""
-#: ../help.pm:186
-#, fuzzy, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"Štampač\": ako kliknete na taster \"Bez štampača\" pokrenuti ćete "
-"konfiguracioni\n"
-"program za štampače. Pogledajte i odgovoarajuće upustvo u``Starter\n"
-"Guide'' za više informacija o tome kako da podesite novi štampač. Program "
-"koje se\n"
-"tada aktivira je sličan onom koji se koristi tokom instalacije."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, fuzzy, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -505,7 +499,12 @@ msgstr ""
"može koristiti i od\n"
"strane drugih mašina na vašoj lokalnoj mreži."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, fuzzy, c-format
msgid "Automatic time synchronization"
msgstr "Automatska sinhronizacija vremena (preko NTP-a)"
@@ -539,7 +538,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -595,7 +594,7 @@ msgid ""
msgstr ""
"X (ili X Window Sistem) je srce GNU/Linux grafičkog interfejsa\n"
"na koji se oslanjaju sva grafička okruženja (KDE, GNOME, AfterStep,\n"
-"WindowMaker, itd.) koja se nalaze u Mandriva Linux-u.\n"
+"WindowMaker, itd.) koja se nalaze u Mageia-u.\n"
"\n"
"Biće vam prikazana lista sa različitim parametrima čijom izmenom\n"
"možete dobiti optimalan grafički prikaz: Grafička kartica\n"
@@ -712,39 +711,39 @@ msgstr ""
#: ../help.pm:319
#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -753,15 +752,14 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -775,11 +773,11 @@ msgid ""
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
"U ovom trenutku, morate da izaberete gde ćete instalirati\n"
-"Mandriva Linux operativni sistem na vaš hard disk. Ukoliko je prazan ili\n"
+"Mageia operativni sistem na vaš hard disk. Ukoliko je prazan ili\n"
"postojeći operativni sistem koristi sav postojeći prostor na disku, treba da "
"ga\n"
"particionirate. U osnovi, particioniranje hard diska se sastoji logičkog\n"
-"deljenja da bi obezbedili prostor za instalaciju vaš novi Mandriva Linux "
+"deljenja da bi obezbedili prostor za instalaciju vaš novi Mageia "
"sistem.\n"
"\n"
"Pošto su efekti procesa particioniranja obično nepovratni,\n"
@@ -788,7 +786,7 @@ msgstr ""
"žurite.\n"
"\n"
"Ukoliko ste pokrenuli instalaciju u Ekspert modu, pokrenućete\n"
-"DiskDrake, Mandriva Linux-ov alat za particije, koji vam dozvoljavaw da\n"
+"DiskDrake, Mageia-ov alat za particije, koji vam dozvoljavaw da\n"
"fino podesite vaše particije. Pogledajte DiskDrake sekciju u ``User "
"Guide''.\n"
"Iz instalacionog interfejsa, možete koristiti čarobnjake kao što je opisano "
@@ -826,7 +824,7 @@ msgstr ""
"defragmentirate\n"
"Windows particiju iz samog Windows-a. Backup podataka takođe nije loša "
"ideja..\n"
-"Ovo rešenje se preporučuje ukoliko želite da koristite Mandriva Linux i\n"
+"Ovo rešenje se preporučuje ukoliko želite da koristite Mageia i\n"
"Microsoft Windows na istom kompjuteru.\n"
"\n"
" Pre nego što izaberete ovu opciju, morate da razumete da nakon ove "
@@ -837,7 +835,7 @@ msgstr ""
"\n"
" * \"Brisanje cvelog diska\": ukoliko želite da izbrišete sve podatke i sve\n"
"particije koji postoje na vašem hard disku i zamenite ih vašim\n"
-"novim Mandriva Linux sistemom, možete da izaberete ovu ociju. Budite\n"
+"novim Mageia sistemom, možete da izaberete ovu ociju. Budite\n"
"pažljivisa ovom opcijom, jer nećete biti u mogućnosti\n"
"da povratite staro stanje nakon potvrde.\n"
"\n"
@@ -866,7 +864,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Koristi postojeću particiju"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Izbriši celi disk"
@@ -954,7 +957,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Kreiraj auto instalacionu disketu"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -974,7 +992,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -1001,7 +1019,7 @@ msgstr ""
"\n"
"Kliknite na \"<- Prethodno\" ako želite da izaberete drugu particiju za svoj "
"novi\n"
-"Mandriva Linux sistem.\n"
+"Mageia sistem.\n"
"\n"
"Kliknite na \"Napredno\" ukoliko želite da izaberete particije koje će biti "
"proverene\n"
@@ -1010,7 +1028,7 @@ msgstr ""
#: ../help.pm:437
#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -1022,7 +1040,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"U vreme kada budete instalirali Mandriva Linux, vrlo je moguće da će neki\n"
+"U vreme kada budete instalirali Mageia, vrlo je moguće da će neki\n"
"paketi biti ažurirani u odnosu na inicijalno izdanje. Neki bagovi mogu \n"
"biti ispravljeni, a sigurnosni propusti zatvorene. Da bi mogli da koristite "
"ove novije verzije\n"
@@ -1048,7 +1066,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1073,21 +1091,21 @@ msgstr "Administrator za sigurnost:"
#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1103,21 +1121,21 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1134,17 +1152,11 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"Na ovoj tački, morate izbrati koju particiju(e) želite da koristite za\n"
-"instalaciju novog Mandriva Linux sistema. Ukoliko su particije\n"
+"instalaciju novog Mageia sistema. Ukoliko su particije\n"
"već definisane (od predhodne instalacije ili od strane\n"
"drugog alata za particije), možete da koristite postojeće particije.\n"
"U drugim slučajevima,\n"
@@ -1210,20 +1222,38 @@ msgstr ""
"Da bi dobili informacije o različitim dostupnim tipovima sistema, "
"pročitajte\n"
"ext2FS poglavlje iz ``Upustva''.\n"
-"\n"
-"Ukoliko radite instalaciju na PPC Mašinu, možda ćete želeti da kreirate "
-"malu\n"
-"HFS 'bootstrap' particiju od najmanje 1MB za upotrebu\n"
-"yaboot startera. Ukoliko se dvoumite da ovu particiju napravite malo većom,\n"
-"na primer 50MB, možete iskoristiti taj prostor za smeštanje\n"
-"rezervnog kernela i ramdisk image za startanje u hitnim situacijama."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, fuzzy, c-format
msgid "Removable media auto-mounting"
msgstr "Automontiranje prenosivog medija"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, fuzzy, c-format
msgid "Toggle between normal/expert mode"
msgstr "Pređi na normalni mod"
@@ -1231,39 +1261,39 @@ msgstr "Pređi na normalni mod"
#: ../help.pm:536
#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Jedna ili više Microsoft Windows particija je detektovano \n"
"na hard disku. Izaberite koju od njih želite da smanjite da bi instalirali\n"
-"novi Mandriva Linux operativni sistem.\n"
+"novi Mageia operativni sistem.\n"
"\n"
"Svaka particija je ispisana na sledeći način: \"Ime Linux-a\",\"Ime Windows-a"
"\"\n"
@@ -1311,23 +1341,22 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Ovaj korak se aktivira samo u slučaju da postoji stara GNU/Linux particija "
"na\n"
@@ -1335,7 +1364,7 @@ msgstr ""
"\n"
"DrakX sada treba da zna da li želite da izvedete čistu instalaciju ili "
"ažuriranje\n"
-"postojećeg Mandriva Linux sistema:\n"
+"postojećeg Mageia sistema:\n"
"\n"
" * \"Instalacija\": U većini slučajeva, ova opcija kompletno briše stari\n"
"sistem. Ukoliko želite da izmenite broj particija, ili\n"
@@ -1346,7 +1375,7 @@ msgstr ""
"\n"
" * \"Ažuriranje\": ova instalaciona klasa vam dozvoljava da uradite "
"ažuriranje paketa\n"
-"na trenutno instaliranom Mandriva Linux sistemu. Vaša trenutna\n"
+"na trenutno instaliranom Mageia sistemu. Vaša trenutna\n"
"šema particija i korisnički podaci se ne menjaju. Većina drugih\n"
"konfiguracionih koraka i dalje ostaje dostupna, slično standardnoj "
"instalaciji.\n"
@@ -1354,7 +1383,7 @@ msgstr ""
"Upotreba opcije ``Ažuriranje'' bi trebalo da bude bez problema na Mandriva "
"Linux sistemima\n"
"od verzije \"8.1\" ili novije. Izvođenje ažuriranja na verzijama \n"
-"Mandriva Linux pre \"8.1\" nije preporučljivo."
+"Mageia pre \"8.1\" nije preporučljivo."
#: ../help.pm:594
#, fuzzy, c-format
@@ -1409,8 +1438,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1466,7 +1494,12 @@ msgstr ""
msgid "Espanol"
msgstr ""
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, fuzzy, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1547,91 +1580,7 @@ msgstr ""
"Molim, izaberite odgovarajući port. Na primer, COM1 port pod MS Windows-om\n"
" u Linux-u ima oznaku ttyS0."
-#: ../help.pm:691
-#, fuzzy, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Ovo je najzanačajnija tačka u odlučivanju o sigurnosti vašeg GNU/Linux\n"
-"sistema: morate da unesete \"root\" lozinku. \"root\" je administrator\n"
-"sistema i jedini je ovlašten da vrši izmene, dodaje korisnike,\n"
-"menja osnovnu konfiguraciju sistema, itd. Ukratko, \"root\" može\n"
-"da uradi sve! Zbog toga morate da izaberete lozinku koja teško može da se\n"
-"pogodi - DrakX će vam reći ukoliko je ona suviše jednostavna. Kao što možete "
-"da vidite, možete da\n"
-"izaberete i da ne unesete lozinku, ali vam ozbiljno preporučujemo da to\n"
-"neradite iz jednog razloga: nemojte da mislite da to što ste startovali GNU/"
-"Linux da\n"
-"vaši drugi operativni sistemi sigurni od grešaka. Kako \"root\" može da\n"
-"preskoči sva ograničenja i nenamerno izbriše sve podatke na particiji\n"
-"neopreznim pristupom, važno je da je teško\n"
-"postati \"root\".\n"
-"\n"
-"Lozinka treba da bude mešavina brojeva i slova i treba da sadrži najmanje 8\n"
-"karaktera. Nikada ne zapisujte na papir \"root\" lozinku - tako lako\n"
-"možete ugroziti sistem.\n"
-"\n"
-"Međutim, potrudite se da lozinka ne bude previše duga ili komlikovana zato\n"
-"što treba da je zapamtite bez mnogo napora.\n"
-"\n"
-"Lozinka neće biti prikazana na ekranu kada je ukucavate. Srećom, moći ćete\n"
-"da je ukucate dva puta da bi smanjili mogućnost greše u kucanju.\n"
-"Ukoliko ipak pogrešite u kucanju, ali dva puta, ova\n"
-"``neispravna'' lozinka će biti korištena kada se budete prvi put "
-"konektovali.\n"
-"\n"
-"U Ekspertnomm modu, bićete pitani da li ćete se konektovati na\n"
-"autentifikacioni server, kao što je NIS ili LDAP.\n"
-"\n"
-"Ukoliko vaša mreža koristi LDAP (ili NIS) protokol za autentifikaciju, "
-"selektujte\n"
-"\"LDAP\" (ili \"NIS\") za autentifikaciju. Ukoliko to neznate, pitajte\n"
-"vašeg mrežnog administratora.\n"
-"\n"
-"Ukoliko se vaš računar ne konektuje na administrirane mreže, treba da\n"
-"izaberete \"Lokalni fajlovi\" za autentifikaciju."
-
-#: ../help.pm:725
-#, fuzzy, c-format
-msgid "authentication"
-msgstr "Autentifikacija"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1645,7 +1594,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1656,7 +1605,7 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1677,12 +1626,12 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Sada treba da izaberemo sistem za štampanje za vaš računar. Drugi OS-ovi "
"vam\n"
-"nude jedan, ali vam Mandriva Linux nudi čak tri.\n"
+"nude jedan, ali vam Mageia nudi čak tri.\n"
"\n"
" * \"pdq\" što znači ``print, do not queue'', je izbor za one koji imaju\n"
"direktni konekciju sa svojim štampačem i želite da izbegnete\n"
@@ -1715,7 +1664,12 @@ msgstr ""
msgid "pdq"
msgstr ""
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Stručni"
@@ -1728,7 +1682,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1808,11 +1762,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1830,8 +1779,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1848,14 +1796,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "Interna ISDN kartica"
+
+#: ../help.pm:809
#, fuzzy, c-format
msgid "ISDN card"
msgstr "Interna ISDN kartica"
@@ -1868,8 +1821,8 @@ msgstr "Grafički interfejs"
#: ../help.pm:861
#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"Izaberite hard disk koji želite da izbrišete da bi instalirali novu Mandriva "
@@ -1881,12 +1834,12 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be able\n"
+"to recover any data and partitions present on this hard disk drive, including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Kliknite na \"Sledeće ->\" ukoliko želite da izbrišete sve podatke i \n"
"particije na ovom hard disku.Budite pažljivi, posle klika na \"U redu\", vi\n"
@@ -1907,3 +1860,118 @@ msgstr "Sledeći ->"
msgid "<- Previous"
msgstr "<- Prethodni"
+#, fuzzy
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"Štampač\": ako kliknete na taster \"Bez štampača\" pokrenuti ćete "
+#~ "konfiguracioni\n"
+#~ "program za štampače. Pogledajte i odgovoarajuće upustvo u``Starter\n"
+#~ "Guide'' za više informacija o tome kako da podesite novi štampač. Program "
+#~ "koje se\n"
+#~ "tada aktivira je sličan onom koji se koristi tokom instalacije."
+
+#, fuzzy
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "Ovo je najzanačajnija tačka u odlučivanju o sigurnosti vašeg GNU/Linux\n"
+#~ "sistema: morate da unesete \"root\" lozinku. \"root\" je administrator\n"
+#~ "sistema i jedini je ovlašten da vrši izmene, dodaje korisnike,\n"
+#~ "menja osnovnu konfiguraciju sistema, itd. Ukratko, \"root\" može\n"
+#~ "da uradi sve! Zbog toga morate da izaberete lozinku koja teško može da "
+#~ "se\n"
+#~ "pogodi - DrakX će vam reći ukoliko je ona suviše jednostavna. Kao što "
+#~ "možete da vidite, možete da\n"
+#~ "izaberete i da ne unesete lozinku, ali vam ozbiljno preporučujemo da to\n"
+#~ "neradite iz jednog razloga: nemojte da mislite da to što ste startovali "
+#~ "GNU/Linux da\n"
+#~ "vaši drugi operativni sistemi sigurni od grešaka. Kako \"root\" može da\n"
+#~ "preskoči sva ograničenja i nenamerno izbriše sve podatke na particiji\n"
+#~ "neopreznim pristupom, važno je da je teško\n"
+#~ "postati \"root\".\n"
+#~ "\n"
+#~ "Lozinka treba da bude mešavina brojeva i slova i treba da sadrži najmanje "
+#~ "8\n"
+#~ "karaktera. Nikada ne zapisujte na papir \"root\" lozinku - tako lako\n"
+#~ "možete ugroziti sistem.\n"
+#~ "\n"
+#~ "Međutim, potrudite se da lozinka ne bude previše duga ili komlikovana "
+#~ "zato\n"
+#~ "što treba da je zapamtite bez mnogo napora.\n"
+#~ "\n"
+#~ "Lozinka neće biti prikazana na ekranu kada je ukucavate. Srećom, moći "
+#~ "ćete\n"
+#~ "da je ukucate dva puta da bi smanjili mogućnost greše u kucanju.\n"
+#~ "Ukoliko ipak pogrešite u kucanju, ali dva puta, ova\n"
+#~ "``neispravna'' lozinka će biti korištena kada se budete prvi put "
+#~ "konektovali.\n"
+#~ "\n"
+#~ "U Ekspertnomm modu, bićete pitani da li ćete se konektovati na\n"
+#~ "autentifikacioni server, kao što je NIS ili LDAP.\n"
+#~ "\n"
+#~ "Ukoliko vaša mreža koristi LDAP (ili NIS) protokol za autentifikaciju, "
+#~ "selektujte\n"
+#~ "\"LDAP\" (ili \"NIS\") za autentifikaciju. Ukoliko to neznate, pitajte\n"
+#~ "vašeg mrežnog administratora.\n"
+#~ "\n"
+#~ "Ukoliko se vaš računar ne konektuje na administrirane mreže, treba da\n"
+#~ "izaberete \"Lokalni fajlovi\" za autentifikaciju."
+
+#, fuzzy
+#~ msgid "authentication"
+#~ msgstr "Autentifikacija"
diff --git a/perl-install/install/help/po/sv.po b/perl-install/install/help/po/sv.po
index 9c7892811..f3ebac4a8 100644
--- a/perl-install/install/help/po/sv.po
+++ b/perl-install/install/help/po/sv.po
@@ -1,39 +1,37 @@
-# DrakX-sv - Swedish Translation
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
-# Copyright (C) 2000,2002,2003, 2004, 2005 Free Software Foundation, Inc.
-# Copyright (c) 2000 Mandriva
-# Kenneth Krekula, 2005.
-# Fuad Sabanovic <manijak@telia.com>, 2000.
-# Mattias Dahlberg <voz@home.se>, 2001, 2002.
-# Mattias Newzella <newzella@linux.nu>, 2001, 2002,2003.
-# Magnus Björklöf <bjorklof@nic.fi>, 2003.
-# Lars Westergren <lars.westergren@home.se>, 2003, 2004, 2005.
-# Thomas Backlund <tmb@mandriva.org>, 2004, 2005.
+# Translators:
+# Yuri Chornoivan <yurchor@ukr.net>, 2024
#
+#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: DrakX-sv - Mandriva 2006 Release\n"
+"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
-"PO-Revision-Date: 2005-09-18 21:42+0300\n"
-"Last-Translator: Thomas Backlund <tmb@mandriva.org>\n"
-"Language-Team: Swedish <sv@li.org>\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
+"PO-Revision-Date: 2024-09-04 17:33+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>, 2024\n"
+"Language-Team: Swedish (https://app.transifex.com/MageiaLinux/teams/9361/"
+"sv/)\n"
+"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.10.2\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../help.pm:14
#, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Innan du fortsätter bör du noga läsa licensen. Den täcker hela\n"
-"Mandriva Linux-distributionen. Om du samtycker med den,\n"
+"Mageia-distributionen. Om du samtycker med den,\n"
"kryssa i rutan \"%s\". Om du ej samtycker så klicka på \"%s\"\n"
"knappen så kommer installationen avbrytas och din dator att\n"
"startas om."
@@ -119,13 +117,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr "Användarnamn"
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr "Acceptera användare"
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Vill du använda den här funktionen?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -135,24 +144,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Listat ovan är de existerande Linux-partitionerna som hittats på\n"
@@ -189,13 +202,13 @@ msgstr ""
#: ../help.pm:88
#, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Installationen av Mandriva Linux är utspridd på flera cd-skivor. DrakX\n"
+"Installationen av Mageia är utspridd på flera cd-skivor. DrakX\n"
"vet om ett valt paket finns på en annan cd-skiva och kommer att mata ut\n"
"den aktuella cd:n och be dig sätta in en annan om det blir nödvändigt.\n"
"Om du inte har efterfrågad CD tillgänglig, klicka på \"%s\" så hoppas\n"
@@ -205,12 +218,11 @@ msgstr ""
#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -223,8 +235,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -262,12 +273,12 @@ msgid ""
"megabytes."
msgstr ""
"Det är nu dags att ange vilka program du vill installera på\n"
-"systemet. Det finns flera tusen paket tillgängliga för Mandriva Linux och\n"
+"systemet. Det finns flera tusen paket tillgängliga för Mageia och\n"
"för att det ska bli enklare att hantera paketen har de placerats i grupper\n"
"om liknande program.\n"
"\n"
"Paketen är sorterade i grupper som motsvarar olika användningsområden\n"
-"för din dator. Mandriva Linux har fyra fördefinierade kategorier\n"
+"för din dator. Mageia har fyra fördefinierade kategorier\n"
" tillgängliga. Du kan blanda program från olika kategorier så att \n"
"t ex en arbetsstationsinstallation fortfarande kan ha program från \n"
"kategorin Utveckling installerade.\n"
@@ -284,7 +295,7 @@ msgstr ""
"att program utvecklade på en distribution även\n"
"kommer att fungera på andra distributioner.)\n"
" Om du väljer \"LSB\" gruppen kommer 2.4 kernel serien installeras\n"
-"istället för 2.6 som annars är standard för Mandriva Linux. Detta är\n"
+"istället för 2.6 som annars är standard för Mageia. Detta är\n"
"för att uppfylla LSB stöd maximalt. Om du inte väljer \"LSB\" \n"
"kommer du ändå att ha ett system som är LSB kompatibelt nästan\n"
"till 100%%.\n"
@@ -353,10 +364,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -404,29 +415,15 @@ msgstr ""
"om du har ett antal datorer som skall ha en identisk konfiguration.\n"
"När du klickar på den ikonen kommer du att bli ombedd om att stoppa i\n"
"en diskett som du tidigare skapat vid slutet av en annan\n"
-" installation. Se det andra tipset i det sista steget hur du gör för att "
-"skapa\n"
-" en sådan diskett."
+"installation. Se det andra tipset i det sista steget hur du gör för att\n"
+"skapa en sådan diskett."
#: ../help.pm:183
#, c-format
msgid "Automatic dependencies"
msgstr "Automatiska beroenden"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": om du klickar på \"%s\" startar skrivarguiden.\n"
-"Se motsvarande kapitel i \"Starter Guide\" för mer information om hur du\n"
-"ska göra för att installera en ny skrivare. Gränssnittet som visas där\n"
-"liknar det som används vid installationen."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -491,7 +488,12 @@ msgstr ""
"fungera. Det läggs in en tidserver på din dator och den kan, om så\n"
"önskas, användas av andra datorer i ditt lokala nätverk."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr "Hårdvaruklocka satt till GMT"
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Automatisk tidsynkronisering"
@@ -524,7 +526,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -579,7 +581,7 @@ msgid ""
"not successful in getting the display configured."
msgstr ""
"X (som står för X Window System) är hjärtat i det grafiska gränssnittet\n"
-"i GNU/Linux. Alla grafiska miljöer som följer med Mandriva Linux\n"
+"i GNU/Linux. Alla grafiska miljöer som följer med Mageia\n"
"(KDE, GNOME, AfterStep, WindowMaker osv) är beroende av det\n"
"för att fungera.\n"
"\n"
@@ -703,39 +705,43 @@ msgstr ""
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -744,15 +750,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -769,7 +775,7 @@ msgstr ""
"Linux. Om den är tom eller om ett befintligt operativsystem använder\n"
"allt tillgängligt utrymme behöver du partitionera den. Att partitionera en\n"
"hårddisk går ut på att man delar upp den i logiska enheter för att skapa \n"
-"utrymmen åt det nya Mandriva Linux-systemet.\n"
+"utrymmen åt det nya Mageia-systemet.\n"
"\n"
"Eftersom resultatet av en partitionering vanligtvis inte går att ångra\n"
"kan partitionering kännas skrämmande om du är en ovan användare.\n"
@@ -797,7 +803,7 @@ msgstr ""
"att du nyligen defragmenterat Windows-partitionen och att den använder.\n"
"formatet FAT. Du rekommenderas dock starkt att först säkerhetskopiera \n"
"data från Windows-partitionen. Denna lösning rekommenderas om du vill\n"
-" använda både Mandriva Linux och Microsoft Windows på samma dator.\n"
+" använda både Mageia och Microsoft Windows på samma dator.\n"
"\n"
" Innan du väljer denna lösning måste du vara införstådd med att\n"
" storleken på Microsoft Windows-partitionen kommer att bli mindre\n"
@@ -807,7 +813,7 @@ msgstr ""
"\n"
" * \"%s\": Om du vill ta bort alla data och alla\n"
"partitioner som finns på hårddisken och ersätta dem med ditt nya\n"
-"Mandriva Linux-system, väljer du detta alternativ. Var försiktig med\n"
+"Mageia-system, väljer du detta alternativ. Var försiktig med\n"
"detta alternativ eftersom du kan inte ångra dig efteråt.\n"
"\n"
" !! Om du väljer detta alternativ kommer alla data på disken att tas "
@@ -832,7 +838,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Använd existerande partition"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr "Använd ledigt utrymme på Microsoft Windows® partitionen"
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Radera hela hårddisken"
@@ -911,7 +922,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Generera automatisk installationsdiskett"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr "Spela igen"
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr "Automatiserad"
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr "Spara paketval"
+
+#: ../help.pm:408
#, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -931,7 +957,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -953,7 +979,7 @@ msgstr ""
"Klicka på \"%s\" när du är redo att formatera partitionerna.\n"
"\n"
"Klicka på \"%s\" om du vill välja andra partitioner att installera ditt\n"
-"nya Mandriva Linux-system på.\n"
+"nya Mageia-system på.\n"
"\n"
"Klicka på \"%s\" för att välja på vilka partitioner du vill leta\n"
"efter felaktiga block."
@@ -961,7 +987,7 @@ msgstr ""
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -973,7 +999,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Sedan denna version av Mandriva Linux gavs ut är det troligt att\n"
+"Sedan denna version av Mageia gavs ut är det troligt att\n"
"några paket har uppdaterats. Fel kan ha rättats till och\n"
"säkerhetsrelaterade problem kan ha lösts. För att du ska kunna ta\n"
"del av dessa uppdateringar ges du nu möjligheten att ladda ner dem\n"
@@ -997,7 +1023,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1010,7 +1036,7 @@ msgstr ""
"påverkar hur lättanvänd datorn blir.\n"
"Om du inte är säker på vad du ska välja, behåll det förvalda alternativet.\n"
"Du kan ändra det senare med draksec verktyget, vilket är en del av av\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
"Skriv in email adressen till personen som är ansvarig för säkerheten\n"
"i \"%s\" fältet. Säkerhetsmeddelanden kommer att mailas till den\n"
@@ -1025,21 +1051,24 @@ msgstr "Säkerhetsadministratör"
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1055,21 +1084,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1086,17 +1117,11 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"Nu måste du välja vilka partitioner som ska användas för installationen av\n"
-"Mandriva Linux-systemet. Om partitioner redan har definierats, antingen\n"
+"Mageia-systemet. Om partitioner redan har definierats, antingen\n"
"från en tidigare installation av GNU/Linux eller av ett annat\n"
"partitionsverktyg, kan du använda dessa. Annars måste hårddiskpartitioner\n"
"definieras.\n"
@@ -1162,18 +1187,38 @@ msgstr ""
"\n"
"För att få information om de olika typerna av filsystem, läs kapitlet\n"
"ext2FS i \"Reference Manual\".\n"
-"\n"
-"Om du installerar på en PPC-dator bör du skapa en en liten HFS-\n"
-"partition (\"bootstrap\") på åtminstone 1 MB. Den kommer att användas av\n"
-"starthanteraren Yaboot. Om du gör partitionen lite större, t ex 50 MB,\n"
-"har du ett bra ställe att lagra en reservkärna och ramdiskar för nödlägen."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr "Spara partitionstabellen"
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr "Återställ partitionstabellen"
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr "Rädda partitionstabellen"
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Automatisk montering av flyttningsbar media"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr "Guide"
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr "Ångra"
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Byt mellan normal/expert läge"
@@ -1181,39 +1226,45 @@ msgstr "Byt mellan normal/expert läge"
#: ../help.pm:536
#, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Fler än en Microsoft Windows-partition har hittats på hårddisken.\n"
"Välj vilken av dem du vill ändra storlek på för att kunna installera\n"
-"operativsystemet Mandriva Linux.\n"
+"operativsystemet Mageia.\n"
"\n"
"Varje partition listas som följer: \"Linux-namn\", \"Windows-namn\"\n"
"\"Kapacitet\".\n"
@@ -1262,29 +1313,29 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Detta steg startas endast om en gammal GNU/Linux-partition har hittats\n"
"på datorn.\n"
"\n"
"DrakX behöver veta om du önskar starta en ny installation eller uppdatera\n"
-"ett redan existerande Mandriva Linux-system:\n"
+"ett redan existerande Mageia-system:\n"
"\n"
" * \"%s\" Detta raderar oftast helt det gamla systemet. Om du vill ändra\n"
"hur hårddiskarna är partitionerade eller ändra filsystemet ska du använda\n"
@@ -1295,11 +1346,11 @@ msgstr ""
"\n"
" * \"%s\" detta installationsalternativ uppdaterar de paket som är "
"installerade\n"
-"på ditt Mandriva Linux-system. Dina nuvarande partitioner och dina\n"
+"på ditt Mageia-system. Dina nuvarande partitioner och dina\n"
"användares data kommer inte att förändras. De flesta installationssteg\n"
"kommer att vara tillgängliga precis som på en vanlig installation.\n"
"\n"
-"Uppdateringsalternativet bör fungera utmärkt på Mandriva Linux-system\n"
+"Uppdateringsalternativet bör fungera utmärkt på Mageia-system\n"
"som är version \"8.1\" eller senare. Att göra en uppdatering av tidigare\n"
"versioner än \"8.1\" rekommenderas ej."
@@ -1359,8 +1410,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1435,7 +1485,12 @@ msgstr ""
msgid "Espanol"
msgstr "Spanska"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr "Använd Unicode som standard"
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1521,97 +1576,7 @@ msgstr ""
"Välj den korrekta porten. Exempel: porten som kallas \"COM1\" i\n"
"Windows heter \"ttyS0\" i GNU/Linux."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Det här är det viktigaste steget för säkerheten i ditt GNU/Linux-system:\n"
-"du ska ange \"root\"-lösenordet. \"root\" är systemets administratör och\n"
-"den enda som har behörighet att göra uppdateringar, lägga till användare,\n"
-"ändra på systemets övergripande konfiguration, osv. Kort sagt, \"root\" kan\n"
-"göra allt. Därför måste du välja ett lösenord som är svårt att lista ut.\n"
-"DrakX talar om för dig om du väljer ett lösenord som är för lätt. Som du\n"
-"ser har du möjlighet att inte ange något lösenord alls, men vi avråder från\n"
-"det. Det är lika lätt att begå misstag i GNU/Linux som i andra "
-"operativsystem.\n"
-"Eftersom \"root\" kan gå förbi alla begränsningar och oavsiktligt radera\n"
-"alla data på partitioner genom att vara oförsiktig är det viktigt att det "
-"är\n"
-"svårt att bli \"root\".\n"
-"\n"
-"Lösenordet bör vara en blandning av numeriska tecken och bokstäver och\n"
-"minst åtta tecken långt. Skriv aldrig ner \"root\"-lösenordet - det\n"
-"ökar risken för ett intrång i systemet.\n"
-"\n"
-"Gör dock inte lösenordet för långt och komplicerat, för du måste\n"
-"kunna komma ihåg det utan allt för mycket besvär.\n"
-"\n"
-"Lösenordet visas inte på skärmen när du skriver in det. Det är därför\n"
-"du får skriva det två gånger, för att undvika att du skriver fel. Om du\n"
-"gör samma skrivfel två gånger måste du använda detta \"felaktiga\"\n"
-"lösenord första gången du loggar in.\n"
-"\n"
-"Tänk på att om du byter språk för tangentbordsinställningar efter att du\n"
-"har skrivit in ditt lösenord så kommer kanske vissa bokstäver eller\n"
-"specialtecken att tolkas annorlunda fast du trycker på exakt samma\n"
-"tangent som tidigare. Detta kan göra det svårt att skriva in lösenordet\n"
-"korrekt eftersom det inte visas på skärmen medan du skriver. Det kan\n"
-"därför vara en god ide att undvika att använda specialtecken i ditt\n"
-"lösenord.\n"
-"\n"
-"Om du önskar att tillgången till denna dator ska kontrolleras av en\n"
-"autentiseringsserver, klicka på knappen \"%s\".\n"
-"\n"
-"Om ditt nätverk använder LDAP, NIS eller en Windows PDC för autentisering,\n"
-"välj motsvarande för \"%s\". Om du är osäker, fråga\n"
-"din nätverksadministratör.\n"
-"\n"
-"Om du har problem med att komma ihåg lösenord kan du välja att ha\n"
-"\"%s\", om din dator inte kommer att vara uppkopplad mot\n"
-"Internet och du litar på alla som har tillgång till den."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "autentisering"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1625,7 +1590,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1654,7 +1619,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1675,11 +1640,11 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Här väljer du vilket skrivarsystem du ska använda. Andra operativsystem\n"
-"erbjuder dig kanske bara ett, men Mandriva erbjuder dig två.\n"
+"erbjuder dig kanske bara ett, men Mageia erbjuder dig två.\n"
"Vilket skrivarsystem som är lämpligast är beroende på vilken \n"
"systemkonfiguration du har.\n"
"\n"
@@ -1703,7 +1668,7 @@ msgstr ""
"\n"
"Om du gör ett val nu och senare kommer fram till att du inte gillar\n"
"skrivarsystemet kan du alltid ändra dig efter installationen genom att\n"
-"använda PrinterdDrake i Mandrivas kontrollcentral, och där klicka på\n"
+"använda PrinterdDrake i Mageias kontrollcentral, och där klicka på\n"
"knappen \"%s\"."
#: ../help.pm:768
@@ -1711,7 +1676,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr "CUPS"
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Expert"
@@ -1724,7 +1694,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1785,11 +1755,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1807,8 +1772,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1825,7 +1789,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1836,7 +1800,7 @@ msgstr ""
"installerad så kan du ha några eller alla av de följande kategorierna.\n"
"Varje kategori består av vad som konfigurerats, följt av en enkel\n"
"sammanfattning av aktuell konfigurering.\n"
-"Klicka på motsvarande \"%s\"-knapp för att ändra konfigureringen.\n"
+"Klicka på motsvarande \"%s\"-knapp för att ändra konfigurationen.\n"
"\n"
" * \"%s\": kontrollera aktuella tangentbordsinställning och ändra om\n"
"så önskas.\n"
@@ -1853,11 +1817,6 @@ msgstr ""
" * \"%s\": kontrollera aktuell muskonfiguration och klicka på knappen för\n"
"att ändra den om så önskas.\n"
"\n"
-" * \"%s\": Genom att klicka på knappen \"%s\" så öppnas guiden för\n"
-"konfigurering av skrivare. Läs i motsvarande kapitel i \"Starter Guide\"\n"
-"för mer information om hur man konfigurerar en ny skrivare. Gränssnittet\n"
-"som används liknar det som användes under själva installationen.\n"
-"\n"
" * \"%s\": om ett ljudkort hittats på ditt system så visas det här. Om du\n"
"upptäcker att ljudkortet som visas inte stämmer överens med det som\n"
"i själva verket finns på din dator så kan du klicka på knappen och\n"
@@ -1876,7 +1835,7 @@ msgstr ""
"\n"
" * \"%s\": konfigurera din anslutning till Internet eller ett\n"
"lokalt nätverk. Använd eventuell tryckt dokumentation eller använd\n"
-"Mandriva Linux Control Center efter installationen har slutförts för att\n"
+"Mageia Control Center efter installationen har slutförts för att\n"
"få tillgång till dokumentation och hjälp med inställningar.\n"
"\n"
" * \"%s\" ställa in HTTP- och FTP-proxy inställingar om din\n"
@@ -1892,14 +1851,19 @@ msgstr ""
"\n"
" * \"%s\" ändra konfigurationen av din starthanterare.\n"
" Detta bör endast göras av erfarna användare. \n"
-"Använd tryckt dokumentation eller den inbyggda hjälpen i Mandriva Linux\n"
+"Använd tryckt dokumentation eller den inbyggda hjälpen i Mageia\n"
"Control Center för konfiguration av starthanterare\n"
".\n"
" * \"%s\": här kan du ställa in i detalj vilka tjänster som körs på din\n"
"dator. Om du tänker använda din dator som server är det en god ide att\n"
"se över dessa inställningar."
-#: ../help.pm:858
+#: ../help.pm:809
+#, c-format
+msgid "TV card"
+msgstr "TV-kort"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN-kort"
@@ -1912,12 +1876,12 @@ msgstr "Grafiskt gränssnitt"
#: ../help.pm:861
#, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"Välj vilken hårddisk du vill radera för att kunna installera din nya\n"
-"Mandriva Linux-partition. Var försiktig, alla data som för tillfället\n"
+"Mageia-partition. Var försiktig, alla data som för tillfället\n"
"finns på partitionen kommer att gå förlorad och kommer inte att kunna \n"
"återställas!"
@@ -1925,12 +1889,14 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Klicka på \"%s\" om du vill ta bort alla data och alla partitioner som\n"
"finns på denna hårddisk. Var försiktig, efter det att du klickat på \"%s\" \n"
@@ -1949,4 +1915,3 @@ msgstr "Nästa ->"
#, c-format
msgid "<- Previous"
msgstr "<- Föregående"
-
diff --git a/perl-install/install/help/po/ta.po b/perl-install/install/help/po/ta.po
index 582b2dfed..e9e0d3bdf 100644
--- a/perl-install/install/help/po/ta.po
+++ b/perl-install/install/help/po/ta.po
@@ -9,10 +9,11 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX 1.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2002-09-06 00:35+0800\n"
"Last-Translator: prabu anand <prabu_anand2000@yahoo.com>\n"
"Language-Team: Tamil <tamilinix@yahoogroups.com>\n"
+"Language: ta\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -23,13 +24,13 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"உதவி இன்னமும் மொழிபெயர்கப்படவில்லை. Before continuing, you should read carefully "
"the terms of the license. It\n"
-"covers the whole Mandriva Linux distribution, and if you do not agree with\n"
+"covers the whole Mageia distribution, and if you do not agree with\n"
"all the terms in it, click on the \"Refuse\" button which will immediately\n"
"terminate the installation. To continue with the installation, click on the\n"
"\"Accept\" button."
@@ -104,13 +105,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "நீங்கள் இந்த வசதியை பயன்படுத்த விரும்புகிறீர்களா?"
#: ../help.pm:57
#, fuzzy, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -120,28 +132,32 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"உதவி இன்னமும் மொழிபெயர்கப்படவில்லை.Listed above are the existing Linux partitions "
-"detected on your hard drive.\n"
+"detected on your hard disk drive.\n"
"You can keep the choices made by the wizard, they are good for most common\n"
"installations. If you make any changes, you must at least define a root\n"
"partition (\"/\"). Do not choose too small a partition or you will not be\n"
@@ -151,37 +167,41 @@ msgstr ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
#: ../help.pm:88
#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"உதவி இன்னமும் மொழிபெயர்கப்படவில்லை.The Mandriva Linux installation is spread out "
-"over several CD-ROMs. DrakX\n"
+"உதவி இன்னமும் மொழிபெயர்கப்படவில்லை.The Mageia installation is spread out over "
+"several CD-ROMs. DrakX\n"
"knows if a selected package is located on another CD-ROM and will eject the\n"
"current CD and ask you to insert a different one as required"
@@ -189,12 +209,11 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -207,8 +226,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -247,7 +265,7 @@ msgid ""
msgstr ""
"உதவி இன்னமும் மொழிபெயர்கப்படவில்லை.It is now time to specify which programs you "
"wish to install on your\n"
-"system. There are thousands of packages available for Mandriva Linux, and\n"
+"system. There are thousands of packages available for Mageia, and\n"
"you are not supposed to know them all by heart.\n"
"\n"
"If you are performing a standard installation from a CD-ROM, you will first\n"
@@ -325,10 +343,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -364,10 +382,10 @@ msgstr ""
"\n"
"!! If a server package has been selected, either intentionally or because\n"
"it was part of a whole group, you will be asked to confirm that you really\n"
-"want those servers to be installed. Under Mandriva Linux, any installed\n"
+"want those servers to be installed. Under Mageia, any installed\n"
"servers are started by default at boot time. Even if they are safe and have\n"
"no known issues at the time the distribution was shipped, it may happen\n"
-"that security holes are discovered after this version of Mandriva Linux was\n"
+"that security holes are discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do\n"
"or why it is being installed, then click \"No\". Clicking \"Yes\" will\n"
"install the listed services and they will be started automatically by\n"
@@ -389,16 +407,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr ""
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-
-#: ../help.pm:192
+#: ../help.pm:185
#, fuzzy, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -465,7 +474,12 @@ msgstr ""
"actually install on your machine a time server which can be optionally used\n"
"by other machines on your local network."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, fuzzy, c-format
msgid "Automatic time synchronization"
msgstr "தானியங்கி நேர ஒத்தியக்கி(NTP உதவியுடன்)"
@@ -489,7 +503,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -593,39 +607,43 @@ msgstr ""
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -634,15 +652,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -661,7 +679,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "இருக்கும் வகிர்களை பயன்படுத்துங்கள்"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "முழு வட்ைடயும் அழித்து விடு"
@@ -739,7 +762,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "தானியங்கி நிறுவல்வட்ைட உருவாக்கவும்"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -759,7 +797,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -785,7 +823,7 @@ msgstr ""
"Click on \"OK\" when you are ready to format partitions.\n"
"\n"
"Click on \"Cancel\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions that will be checked\n"
"for bad blocks on the disk."
@@ -793,7 +831,7 @@ msgstr ""
#: ../help.pm:437
#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -830,7 +868,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -855,21 +893,24 @@ msgstr "பாதுகாப்பு மேலாளர்(பெயர் அ
#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -885,21 +926,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -916,33 +959,29 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"உதவி இன்னமும் மொழிபெயர்கப்படவில்லை.At this point, you need to choose which "
"partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or from another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
" * \"Clear all\": this option deletes all partitions on the selected hard\n"
"drive;\n"
"\n"
" * \"Auto allocate\": this option enables to automatically create \"Ext2\"\n"
-"and swap partitions in free space of your hard drive;\n"
+"and swap partitions in free space of your hard disk drive;\n"
"\n"
" * \"More\": gives access to additional features:\n"
"\n"
@@ -965,7 +1004,8 @@ msgstr ""
"CD-ROMs.\n"
"\n"
" * \"Wizard\": use this option if you wish to use a wizard to partition\n"
-"your hard drive. This is recommended if you do not have a good knowledge of\n"
+"your hard disk drive. This is recommended if you do not have a good "
+"knowledge of\n"
"partitioning;\n"
"\n"
" * \"Undo\": use this option to cancel your changes;\n"
@@ -973,7 +1013,8 @@ msgstr ""
" * \"Toggle to normal/expert mode\": allows additional actions on\n"
"partitions (type, options, format) and gives more information;\n"
"\n"
-" * \"Done\": when you are finished partitioning your hard drive, this will\n"
+" * \"Done\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"Note: you can reach any option using the keyboard. Navigate through the\n"
@@ -989,19 +1030,38 @@ msgstr ""
"\n"
"To get information about the different filesystem types available, please\n"
"read the ext2fs chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB, which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, fuzzy, c-format
msgid "Removable media auto-mounting"
msgstr "கழற்று ஊடகங்கள் தானேற்றம்"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, fuzzy, c-format
msgid "Toggle between normal/expert mode"
msgstr "சாதாரனர் முறைமைக்கு மாறு"
@@ -1009,65 +1069,76 @@ msgstr "சாதாரனர் முறைமைக்கு மாறு"
#: ../help.pm:536
#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"உதவி இன்னமும் மொழிபெயர்கப்படவில்ைல.More than one Microsoft partition has been "
-"detected on your hard drive.\n"
+"detected on your hard disk drive.\n"
"Please choose the one you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
#: ../help.pm:567
@@ -1086,23 +1157,23 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
#: ../help.pm:594
@@ -1154,8 +1225,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1199,7 +1269,12 @@ msgstr ""
msgid "Espanol"
msgstr ""
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, fuzzy, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1268,88 +1343,7 @@ msgstr ""
"the \"COM1\" port under\n"
"Windows is named \"ttyS0\" under GNU/Linux.. "
-#: ../help.pm:691
-#, fuzzy, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"உதவி இன்னமும் மொழிபெயர்கப்படவில்லை. This is the most crucial decision point for "
-"the security of your GNU/Linux\n"
-"system: you have to enter the \"root\" password. \"root\" is the system\n"
-"administrator and is the only one authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That is why you must choose a password that is difficult to\n"
-"guess - DrakX will tell you if it is too easy. As you can see, you can\n"
-"choose not to enter a password, but we strongly advise you against this if\n"
-"only for one reason: do not think that because you booted GNU/Linux that\n"
-"your other operating systems are safe from mistakes. Since \"root\" can\n"
-"overcome all limitations and unintentionally erase all data on partitions\n"
-"by carelessly accessing the partitions themselves, it is important for it\n"
-"to be difficult to become \"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password - it makes it too\n"
-"easy to compromise a system.\n"
-"\n"
-"However, please do not make the password too long or complicated because\n"
-"you must be able to remember it without too much effort.\n"
-"\n"
-"The password will not be displayed on screen as you type it in. Hence, you\n"
-"will have to type the password twice to reduce the chance of a typing\n"
-"error. If you do happen to make the same typing error twice, this\n"
-"``incorrect'' password will have to be used the first time you connect.\n"
-"\n"
-"In Expert mode, you will be asked if you will be connecting to an\n"
-"authentication server, like NIS or LDAP.\n"
-"\n"
-"If your network uses the LDAP (or NIS) protocol for authentication, select\n"
-"\"LDAP\" (or \"NIS\") as authentication. If you do not know, ask your\n"
-"network administrator.\n"
-"\n"
-"If your computer is not connected to any administrated network, you will\n"
-"want to choose \"Local files\" for authentication."
-
-#: ../help.pm:725
-#, fuzzy, c-format
-msgid "authentication"
-msgstr "நல்குாிமை"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1363,7 +1357,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1374,7 +1368,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1395,7 +1389,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
@@ -1404,7 +1398,12 @@ msgstr ""
msgid "pdq"
msgstr ""
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "நிபுணர்"
@@ -1417,7 +1416,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1488,11 +1487,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1510,8 +1504,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1528,14 +1521,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "ISDN அட்ைட"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN அட்ைட"
@@ -1548,8 +1546,8 @@ msgstr "வரைவியல்வழி"
#: ../help.pm:861
#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"உங்கள் கணினியில் மாண்ட்ேரக் லினக்ஸ் இயக்க அமைப்ேபா மட்டும்\n"
@@ -1562,21 +1560,25 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"உதவி இன்னமும் மொழிபெயர்கப்படவில்லை. Click on \"OK\" if you want to delete all "
"data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"OK\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"OK\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"Cancel\" to cancel this operation without losing any data and\n"
-"partitions present on this hard drive."
+"partitions present on this hard disk drive."
#: ../help.pm:872
#, c-format
@@ -1588,3 +1590,103 @@ msgstr "அடுத்து ->"
msgid "<- Previous"
msgstr "<- முன்னது"
+#, fuzzy
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "உதவி இன்னமும் மொழிபெயர்கப்படவில்லை. This is the most crucial decision point "
+#~ "for the security of your GNU/Linux\n"
+#~ "system: you have to enter the \"root\" password. \"root\" is the system\n"
+#~ "administrator and is the only one authorized to make updates, add users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That is why you must choose a password that is difficult "
+#~ "to\n"
+#~ "guess - DrakX will tell you if it is too easy. As you can see, you can\n"
+#~ "choose not to enter a password, but we strongly advise you against this "
+#~ "if\n"
+#~ "only for one reason: do not think that because you booted GNU/Linux that\n"
+#~ "your other operating systems are safe from mistakes. Since \"root\" can\n"
+#~ "overcome all limitations and unintentionally erase all data on "
+#~ "partitions\n"
+#~ "by carelessly accessing the partitions themselves, it is important for "
+#~ "it\n"
+#~ "to be difficult to become \"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password - it makes it "
+#~ "too\n"
+#~ "easy to compromise a system.\n"
+#~ "\n"
+#~ "However, please do not make the password too long or complicated because\n"
+#~ "you must be able to remember it without too much effort.\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it in. Hence, "
+#~ "you\n"
+#~ "will have to type the password twice to reduce the chance of a typing\n"
+#~ "error. If you do happen to make the same typing error twice, this\n"
+#~ "``incorrect'' password will have to be used the first time you connect.\n"
+#~ "\n"
+#~ "In Expert mode, you will be asked if you will be connecting to an\n"
+#~ "authentication server, like NIS or LDAP.\n"
+#~ "\n"
+#~ "If your network uses the LDAP (or NIS) protocol for authentication, "
+#~ "select\n"
+#~ "\"LDAP\" (or \"NIS\") as authentication. If you do not know, ask your\n"
+#~ "network administrator.\n"
+#~ "\n"
+#~ "If your computer is not connected to any administrated network, you will\n"
+#~ "want to choose \"Local files\" for authentication."
+
+#, fuzzy
+#~ msgid "authentication"
+#~ msgstr "நல்குாிமை"
diff --git a/perl-install/install/help/po/tg.po b/perl-install/install/help/po/tg.po
index cf95ce1cc..c0f17554a 100644
--- a/perl-install/install/help/po/tg.po
+++ b/perl-install/install/help/po/tg.po
@@ -16,25 +16,26 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX-tg\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2005-09-17 16:03+0500\n"
"Last-Translator: Victor Ibragimov <youth_opportunities@tajikngo.org>\n"
"Language-Team: Tajik\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.10\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Пеш аз давомдиҳӣ шумо бояд шартҳои литсензияро бо диққат хонед. Он\n"
-"ба ҳамаи тақсимоти Mandriva Linux паҳн гардидааст. Агар шумо ба\n"
+"ба ҳамаи тақсимоти Mageia паҳн гардидааст. Агар шумо ба\n"
"ҳамаи шартҳои литсензия розӣ бошед, пункти \"%s\"-ро қайд кунед. Агар розӣ\n"
"набошед, танҳо \"%s\" компютери худро хомӯш созед."
@@ -127,13 +128,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Шумо ин хислатро истифрда бурдан мехоҳед?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -143,24 +155,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Дар ин ҷо бахшҳои мавҷудаи Linux, ки дар гардонандаи сахти шумо\n"
@@ -200,15 +216,15 @@ msgstr ""
"дорад, \"b\" маънои\"дуюмин аз поёни SCSI ID\"-ро дорад ва ғайра."
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Коргузории Mandriva Linux дар CD-ROM-ҳои мухталиф тақсим шудааст. Агар\n"
+"Коргузории Mageia дар CD-ROM-ҳои мухталиф тақсим шудааст. Агар\n"
"бастаи интихобшуда дар дигар CD-ROM ҷойгир бошад, DrakX диски фишурдаи\n"
"ҷориро ба берун кашида аз шумо вогузории диски талабшударо пурсон мешавад.\n"
"Агар шумо дар даст диски фишурдаи талабшударо надошта бошед, танҳо ба \"%s\" "
@@ -216,15 +232,14 @@ msgstr ""
"намешавад."
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -237,8 +252,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -276,12 +290,11 @@ msgid ""
"megabytes."
msgstr ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -348,7 +361,7 @@ msgid "Truly minimal install"
msgstr "Коргузории аз ҳама пастарин"
#: ../help.pm:152
-#, c-format
+#, fuzzy, c-format
msgid ""
"If you choose to install packages individually, the installer will present\n"
"a tree containing all packages classified by groups and subgroups. While\n"
@@ -361,10 +374,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -396,11 +409,11 @@ msgstr ""
"!! Агар бастаи хидматрасонро интихоб карда бошед, хоҳ барои интихоби муайяни "
"бастаи алоҳида, хоҳ барои он ки вай як қисми гурӯҳӣ баста\n"
"аст, шумо бояд тасдиқ кунед, ки дар ҳақиқат ин хидматрасонҳои\n"
-"коргузоришавандаро истифода бурдан мехоҳед. Дар Mandriva Linux\n"
+"коргузоришавандаро истифода бурдан мехоҳед. Дар Mageia\n"
"ҳамаи хидматрасонҳои коргузоришуда ҳангоми оғозёбӣ ба таври худкор, бо "
"нобаёнӣ сар дода мешаванд. Ҳарчанде, ки онҳо бехатаранд ва муаммоҳои\n"
"маълумро ҳангоми даргиронидан дар тақсимот надоранд, мумкин аст, ки\n"
-"дар бехатарӣ баъди барориши нусхаи хотимавии Mandriva Linux\n"
+"дар бехатарӣ баъди барориши нусхаи хотимавии Mageia\n"
"сӯрохиҳои муайян мешаванд. Агар шумо надонед, ки барои чӣ ин ё он\n"
"хидматрасон лозим аст ё барои чӣ он коргузорӣ мегардад пас ба \"%s\"\n"
"ангушт занед. Бо пахшкунии \"%s\" шумо хидматрасонҳои номбаршударо\n"
@@ -428,22 +441,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Вобастагиҳои автоматӣ"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": ҳангоми ангуштзанӣ ба тугмаи \"%s\" устоди ба танзимдарории чопгар "
-"кушода\n"
-"мешавад. Боби мувофиқи ба ``Раҳнамои Ибтидоӣ' бахшидашударо барои гирифтани\n"
-"маълумоти иловагӣ оиди барпосозии чопгари нав хонед. Интерфейси дар он ҷо\n"
-"пешниҳод шуда ба оне ки ҳангоми истифодаи коргузорӣ истифода мешавад,\n"
-"монанд аст."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -515,7 +513,12 @@ msgstr ""
"коргузорӣ мекунад, ки аз тарафи дираг мошинаҳои шабакаи маҳаллӣ\n"
"истифода шуда метавонад."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Ҳамзамонсозии худкори вақт"
@@ -548,11 +551,11 @@ msgstr ""
"хидматрасон пеш аз ҳама ба эҳтиёҷи шумо мувофиқат мекунад."
#: ../help.pm:234
-#, c-format
+#, fuzzy, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -608,7 +611,7 @@ msgid ""
msgstr ""
"X (барои системи X Window) ин асоси интерфейси графикии GNU/Linux мебошад,\n"
"ки дар он ҳамаи муҳитҳои графикӣ асос ёфтааст (KDE, GNOME, AfterStep,\n"
-"WindowMaker ва ғайра) ва ба ҳайати Mandriva Linux дохил аст.\n"
+"WindowMaker ва ғайра) ва ба ҳайати Mageia дохил аст.\n"
"\n"
"Ба шумо рӯйхати параметрҳои гуногуне ки ба тағироти гирифтани тасвири\n"
"беҳтарини графикӣ пешбинӣ шудааст, дода мешавад: Корти графикӣ\n"
@@ -739,41 +742,45 @@ msgstr ""
"намоишгари худро танзим карда натавониста бошед."
#: ../help.pm:319
-#, c-format
+#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -782,15 +789,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -804,12 +811,12 @@ msgid ""
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
"Дар ин қадам шумо бояд дар куҷои гардонандаи сахт ҷойгир кардани\n"
-"системаи омили Mandriva Linux-ро ҳал кунед. Агар гардонандаи сахти\n"
+"системаи омили Mageia-ро ҳал кунед. Агар гардонандаи сахти\n"
"шумо холӣ бошад ё системаи омили ҳозирбуда ҳамаи фазои имконпазирро\n"
"ишғол кунад, ба шумо лозим меояд, ки гардонандаи сахти худро\n"
"бахшбандӣ кунед. Бахшбандикунии гардонандаи сахт асосан аз тақсимоти "
"мантиқии фазои ишғолшуда барои коргузории системаи омилии \n"
-"Mandriva Linux иборат аст.\n"
+"Mageia иборат аст.\n"
"\n"
"Азбаски ҷараёни бахшбандии гардонандаи сахт одатан барнагарданда\n"
"аст ва ба гумшавии додаҳо оварда расониданаш мумкин аст, агар дар "
@@ -851,7 +858,7 @@ msgstr ""
"\n"
" * \"%s\": агар шумо хоҳед, ки ҳамаи додаҳоро дар ҳама қисматҳои\n"
"дар гардонандаи сахти худ мавҷудбударо нобуд созед ва ҷои онҳоро бо системаи "
-"нави Mandriva Linux иваз кунед, ин хосиятро интихоб\n"
+"нави Mageia иваз кунед, ин хосиятро интихоб\n"
"кунед. Эҳтиёт бошед, зеро баъди тасдиқот шумо интихоби худро\n"
"баргардонида наметавонед.\n"
"\n"
@@ -880,7 +887,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Бахшбандии ҳозир бударо истифода баред"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Тамоми дискро тоза намоед"
@@ -961,8 +973,23 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Дискети худкоргузориро эҷод кардан"
-#: ../help.pm:415
+#: ../help.pm:405
#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
+#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -981,7 +1008,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -1005,15 +1032,15 @@ msgstr ""
"Агар шумо ба шаклбандии бахшҳо тайёр бошед ба \"%s\" ангушт занед.\n"
"\n"
"Агар шумо хоҳед, ки дигар бахшҳоро барои коргузории системаи\n"
-"омилии навъи Mandriva Linux интихоб кунед ба \"%s\" ангушт занед.\n"
+"омилии навъи Mageia интихоб кунед ба \"%s\" ангушт занед.\n"
"\n"
"Агар хоҳед бахшҳоеро, ки дар диск ба мавҷудияти қисмҳои бад\n"
"тафтиш карда шаванд интихоб намоед, ба \"%s\" ангушт занед."
#: ../help.pm:437
-#, c-format
+#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -1025,7 +1052,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Ҳангоми коргузории Mandriva Linux хуб мешуд, ки баъзе бастаи\n"
+"Ҳангоми коргузории Mageia хуб мешуд, ки баъзе бастаи\n"
"барномаҳо нав карда шаванд, аз рӯзи барориши ибтидоӣ. Эҳтимолан\n"
"баъзе хатогиҳо ислоҳ шудаанд ва дархостҳо оиди бехтарӣ ҳал шудаанд.\n"
"Барои гирифтани фоида аз ин навсозиҳо, ҳозир ба шумо боркунии онҳо аз "
@@ -1041,7 +1068,7 @@ msgstr ""
"кардани коргузории бозсозӣ пахш кунед."
#: ../help.pm:450
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -1050,7 +1077,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1077,24 +1104,27 @@ msgid "Security Administrator"
msgstr "Идоракунандаи Бехатарӣ"
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1110,21 +1140,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1141,17 +1173,11 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"Дар ин пункт шумо бояд интихоб намоед, ки кадом бахш(ҳо) барои\n"
-"коргузории системавӣ Mandriva Linux-и шумо истифода бурда мешаванд.\n"
+"коргузории системавӣ Mageia-и шумо истифода бурда мешаванд.\n"
"Агар бахшҳои алоқаи аз коргузории пешинаи GNU/Linux ё аз дигар\n"
"асбоби бахшбандикунӣ муайян шуда бошад, шумо метавонед бахшҳои мавҷударо "
"истифода баред. Дар дигар ҳолат бояд бахшҳои гардонандаи\n"
@@ -1169,7 +1195,7 @@ msgstr ""
"месозад\n"
"\n"
" * \"%s\": ин хосият имконияти ба таври худкор офаридани бахшҳои\n"
-"ext3 ва swap-ро дар фазои холии гардонандаи сахти шумо, медиҳад\n"
+"ext4 ва swap-ро дар фазои холии гардонандаи сахти шумо, медиҳад\n"
"\n"
"\"%s\": хусусиятҳои иловагиро дастрас мекунад:\n"
"\n"
@@ -1221,61 +1247,84 @@ msgstr ""
"\n"
"Барои гирифтани маълумот оиди намудҳои системаи файлии дастрас\n"
"марҳамат карда боби ext2FS-ро аз ``Раҳнамои Муроҷиат'' хонед.\n"
-"\n"
-"Агар шумо дар мошинаи PPC коргузориро иҷро карда бошед, ба шумо\n"
-"лозим меояд, ки бахши хурди HFS ``bootstrap''-ро офаред, ки ақалан 1Мб\n"
-"бошад ва он аз тарафи боркунандаи yaboot истифода бурда мешавад.\n"
-"Агар шумо хоҳед, ки бахшро каме калонтар кунед, масалан 50Мб шумо\n"
-"онро ҷои хеле қуллай барои захиракунии ҳастаи эҳтиётӣ ва симоҳои ramdisk "
-"ҳангоми ҳодисаи боркунии ғайричашмдошт,\n"
-"пайдо хоҳед кард."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Худваслкунии хориҷшавандаи муҳит"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Зомин байни усули мӯътадил/мутахассисӣ"
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Дар гардонандаи сахти шумо зиёда аз як бахши Microsoft муайян гардид.\n"
"Марҳамат карда бахшеро, ки барои коргузории системаи нави омили\n"
-"Mandriva Linux андозаи онро тағир додан мехоҳед, интихоб намоед.\n"
+"Mageia андозаи онро тағир додан мехоҳед, интихоб намоед.\n"
"\n"
"Ҳар бахш ба таври зерин ба рӯйхат гирифта мешавад: \"ном дар Linux\",\n"
"\"ном дар Windows\" \"Ғунҷоиш\".\n"
@@ -1320,35 +1369,35 @@ msgstr ""
"дагмаи \"%s\"ангушт зада рӯйхати пураро бинед."
#: ../help.pm:572
-#, c-format
+#, fuzzy, c-format
msgid ""
"This step is activated only if an existing GNU/Linux partition has been\n"
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Ин қадам танҳо дар он ҳолате фаъол мегардад, ки дар мошинаи шумо\n"
"бахши кӯҳнаи GNU/Linux пайдо гардад.\n"
"\n"
"DrakX бояд донад, ки оё шумо мехоҳед, ки коргузории навро гузаронед\n"
-"ё системаи Mandriva Linux-и мавҷударо афзоиш диҳед:\n"
+"ё системаи Mageia-и мавҷударо афзоиш диҳед:\n"
"\n"
" * \"%s\": Дар бисёр ҳолатҳо ин вариант ба нобудшавии системаи кӯҳна\n"
"оварда мерасонад. Агар хоҳед, ки бахшҳои гардонандаи сахти худро иваз\n"
@@ -1357,14 +1406,14 @@ msgstr ""
"додаҳои мавҷудаи худро аз бознависӣ захира карда метавонанд.\n"
"\n"
" * \"%s\": ин синфи коргузорӣ ба шумо имконияти авкунии бастаи\n"
-"барномаҳои дар системаи Mandriva Linux-и коргузоришударо медиҳад.\n"
+"барномаҳои дар системаи Mageia-и коргузоришударо медиҳад.\n"
"Нақшаи бахшбандии ҷорӣ ва додаҳои корванд, ивазнашавандаанд.\n"
"Бештари дигар қадамҳо низ дастрас мегарданд, ба монанди коргузории "
"низоммеъёр.\n"
"\n"
-"Интихоби хосияти ``Густариш'' дар системаҳои Mandriva Linux аз нусхаи\n"
+"Интихоби хосияти ``Густариш'' дар системаҳои Mageia аз нусхаи\n"
"\"8.1\" сар карда то охирон хеле хуб хоҳад кор кард. Гузаронидани Густариш\n"
-"дар системаҳои Mandriva Linux болотар аз \"8.1\" маслиҳат дода мешавад."
+"дар системаҳои Mageia болотар аз \"8.1\" маслиҳат дода мешавад."
#: ../help.pm:594
#, c-format
@@ -1405,7 +1454,7 @@ msgstr ""
"ғайри лотинӣ медиҳад."
#: ../help.pm:612
-#, c-format
+#, fuzzy, c-format
msgid ""
"The first step is to choose your preferred language.\n"
"\n"
@@ -1421,8 +1470,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1482,7 +1530,12 @@ msgstr ""
msgid "Espanol"
msgstr "Испанӣ"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1565,93 +1618,7 @@ msgstr ""
"Лутфан бандари дурустро интихоб кунед. Барои мисол, бандари \"COM1\" таҳти "
"Windows дар таҳти GNU/Linux \"ttySO\" номида мешавад."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Ин ҳалли бӯҳронӣ оиди бехатарии системаи GNU/Linux-и шумост:\n"
-"шумо бояд гузарвожаи \"решавӣ\"-ро ворид кунед. \"Реша\" ин идоракунандаи\n"
-"системавӣ ва танҳо ӯ ҳуқуқи ба амал баровардани навсозиҳо, илова\n"
-"кардани корвандон, тағирдиҳии батанзимдарории система ва ғайраро дорад. "
-"Кӯтоҳ карда гӯем \"реша\" ҳама чизро карда метавонад! Бинобар\n"
-"ин шумо бояд чунин гузарвожаеро интихоб кунед, ки фаҳмидани он душвор\n"
-"гардад. Агар гузарвожа хеле содда бошад DrakX оиди он ба шумо хабар "
-"мерасонад. Чи хеле ки мебинед, шумо умуман гузарвожаро интихоб накарда\n"
-"метавонед, лекин мо ба шумо инро аз сабаби як чиз манъ мекунем: фикр\n"
-"накунед, ки агар шумо GNU/Linux-ро бор карда бошед, пас дигар системаҳои\n"
-"омили шумо аз хатогӣ муҳофизат мешаванд. Аз сабаби он, ки \"реша\" ҳамаи\n"
-"маҳдудиатҳоро гузашта метавонед ва тасодуфан ҳамаи додаҳоро дар бахшҳои\n"
-"диск пок карда метавонад, ба воситаи бо эҳтиёт муносибат кардан ба бахшҳои\n"
-"пас хеле муҳим аст, ки шудани \"реша\" хеле душвор гардад.\n"
-"\n"
-"Гузарвожа бояд якҷоягии аломатҳои рақамӣ ва ҳарфӣ бошад ва дарозиаш\n"
-"кам аз 8 аломат бошад. Ҳеҷ гоҳ гузарвожаи \"реша\"-ро сабт накунад. Зеро\n"
-"он боэътиборкунии системаро хеле осон мекунад.\n"
-"\n"
-"Лекин гузарвожаро хеле дароз ва хеле мураккаб накунед, зеро шумо бояд\n"
-"онро ба осонӣ хотир доред.!\n"
-"\n"
-"Гузарвожаи дар экран ба тавре чоп кардаи шумо намоиш дода намешавад.\n"
-"Ба ғайр аз ин ба шумо лозим меояд, ки воридкунии гузарвожаро дубора\n"
-"иҷро созед, барои пешгирии эҳтимолан хатогӣ дар чопкунӣ. Агар чунин\n"
-"ҳодиса рух диҳад, ки шумо дубора ҳангоми чопкунӣ хатогӣ кардед, пас шояд ин "
-"гузарвожаи ``нодуруст''-ро ҳангоми боркунии якумин истифода баред.\n"
-"\n"
-"Агар хоҳед, ки дастёби ба ин компютер аз тарафи хидматрасони аслшинос\n"
-"идора шавад, ба тугмаи \"%s\" ангушт занед.\n"
-"\n"
-"Агар шабакаи шумо хидматрасонҳои аслшиносии LDAP, NIS, ё PDC\n"
-"Windows Domain-ро истифода барад, навъи мувофиқи \"%s\"-ро интихоб\n"
-"кунед. Агар надонед, ки кадоме аз онҳоро истифода мебаред, идоракунандаи "
-"шабакавии худро пурсон шавед.\n"
-"\n"
-"Агар шумо оиди дархотирдории гузарвожа душворӣ кашед, шумо хосияти\n"
-"\"%s\"-ро интихоб карда метавонед, агар компютери шумо ба Интернет пайваст\n"
-"набошад ва агар шумо ба ҳамаи шахсоне, ки мошинаи шуморо истифда мебаранд,\n"
-"боварӣ дошта бошед."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "аслшиносӣ"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1665,7 +1632,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1688,10 +1655,10 @@ msgstr ""
"корандози \"%s\" худборшавро ҷойгир намуд."
#: ../help.pm:745
-#, c-format
+#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1712,11 +1679,11 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Ҳоло вақте расидааст барои интихоби системаи чопкунӣ барои компютери\n"
-"шумо. Дигар СО ба шумо як намудро пешкаш карда метавонад, Mandriva Linux\n"
+"шумо. Дигар СО ба шумо як намудро пешкаш карда метавонад, Mageia\n"
"бошад, ду намудро. Ҳар яке аз системаҳо барои батанзимдарории\n"
"муайяни беҳтарин мебошад.\n"
"\n"
@@ -1749,7 +1716,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Кордон"
@@ -1762,7 +1734,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1808,7 +1780,7 @@ msgstr ""
"ангушт зада гардони дигарро интихоб намоед."
#: ../help.pm:794
-#, c-format
+#, fuzzy, c-format
msgid ""
"As a review, DrakX will present a summary of information it has gathered\n"
"about your system. Depending on the hardware installed on your machine, you\n"
@@ -1831,11 +1803,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1853,8 +1820,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1871,7 +1837,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1941,7 +1907,12 @@ msgstr ""
"хидматрасон мешуда бошад, ба шумо тафтиши ин\n"
"батанзимдарориҳо, ҳатмист."
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "Корти ISDN"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "Корти ISDN"
@@ -1952,26 +1923,28 @@ msgid "Graphical Interface"
msgstr "Интерфейси Графикӣ"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"Диски сахтеро, интихоб намоед, ки шумо онро барои офаридани қисми\n"
-"Mandriva Linux дур намудан мехоҳед. Эҳтиёт шавед, ки дар он ҳамаи\n"
+"Mageia дур намудан мехоҳед. Эҳтиёт шавед, ки дар он ҳамаи\n"
"додаҳои мавҷуд буда гум хоҳад шуд ва он барқарор намегардад!"
#: ../help.pm:866
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Ба \"%s\" ангушт занед, агар шумо ҳамаи додаҳо ва қисмҳое ки дар ин диски "
"сахт\n"
@@ -1995,3 +1968,119 @@ msgstr "Навбатӣ ->"
msgid "<- Previous"
msgstr "<- Гузашта"
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": ҳангоми ангуштзанӣ ба тугмаи \"%s\" устоди ба танзимдарории "
+#~ "чопгар кушода\n"
+#~ "мешавад. Боби мувофиқи ба ``Раҳнамои Ибтидоӣ' бахшидашударо барои "
+#~ "гирифтани\n"
+#~ "маълумоти иловагӣ оиди барпосозии чопгари нав хонед. Интерфейси дар он "
+#~ "ҷо\n"
+#~ "пешниҳод шуда ба оне ки ҳангоми истифодаи коргузорӣ истифода мешавад,\n"
+#~ "монанд аст."
+
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "Ин ҳалли бӯҳронӣ оиди бехатарии системаи GNU/Linux-и шумост:\n"
+#~ "шумо бояд гузарвожаи \"решавӣ\"-ро ворид кунед. \"Реша\" ин "
+#~ "идоракунандаи\n"
+#~ "системавӣ ва танҳо ӯ ҳуқуқи ба амал баровардани навсозиҳо, илова\n"
+#~ "кардани корвандон, тағирдиҳии батанзимдарории система ва ғайраро дорад. "
+#~ "Кӯтоҳ карда гӯем \"реша\" ҳама чизро карда метавонад! Бинобар\n"
+#~ "ин шумо бояд чунин гузарвожаеро интихоб кунед, ки фаҳмидани он душвор\n"
+#~ "гардад. Агар гузарвожа хеле содда бошад DrakX оиди он ба шумо хабар "
+#~ "мерасонад. Чи хеле ки мебинед, шумо умуман гузарвожаро интихоб накарда\n"
+#~ "метавонед, лекин мо ба шумо инро аз сабаби як чиз манъ мекунем: фикр\n"
+#~ "накунед, ки агар шумо GNU/Linux-ро бор карда бошед, пас дигар системаҳои\n"
+#~ "омили шумо аз хатогӣ муҳофизат мешаванд. Аз сабаби он, ки \"реша\" ҳамаи\n"
+#~ "маҳдудиатҳоро гузашта метавонед ва тасодуфан ҳамаи додаҳоро дар бахшҳои\n"
+#~ "диск пок карда метавонад, ба воситаи бо эҳтиёт муносибат кардан ба "
+#~ "бахшҳои\n"
+#~ "пас хеле муҳим аст, ки шудани \"реша\" хеле душвор гардад.\n"
+#~ "\n"
+#~ "Гузарвожа бояд якҷоягии аломатҳои рақамӣ ва ҳарфӣ бошад ва дарозиаш\n"
+#~ "кам аз 8 аломат бошад. Ҳеҷ гоҳ гузарвожаи \"реша\"-ро сабт накунад. Зеро\n"
+#~ "он боэътиборкунии системаро хеле осон мекунад.\n"
+#~ "\n"
+#~ "Лекин гузарвожаро хеле дароз ва хеле мураккаб накунед, зеро шумо бояд\n"
+#~ "онро ба осонӣ хотир доред.!\n"
+#~ "\n"
+#~ "Гузарвожаи дар экран ба тавре чоп кардаи шумо намоиш дода намешавад.\n"
+#~ "Ба ғайр аз ин ба шумо лозим меояд, ки воридкунии гузарвожаро дубора\n"
+#~ "иҷро созед, барои пешгирии эҳтимолан хатогӣ дар чопкунӣ. Агар чунин\n"
+#~ "ҳодиса рух диҳад, ки шумо дубора ҳангоми чопкунӣ хатогӣ кардед, пас шояд "
+#~ "ин гузарвожаи ``нодуруст''-ро ҳангоми боркунии якумин истифода баред.\n"
+#~ "\n"
+#~ "Агар хоҳед, ки дастёби ба ин компютер аз тарафи хидматрасони аслшинос\n"
+#~ "идора шавад, ба тугмаи \"%s\" ангушт занед.\n"
+#~ "\n"
+#~ "Агар шабакаи шумо хидматрасонҳои аслшиносии LDAP, NIS, ё PDC\n"
+#~ "Windows Domain-ро истифода барад, навъи мувофиқи \"%s\"-ро интихоб\n"
+#~ "кунед. Агар надонед, ки кадоме аз онҳоро истифода мебаред, идоракунандаи "
+#~ "шабакавии худро пурсон шавед.\n"
+#~ "\n"
+#~ "Агар шумо оиди дархотирдории гузарвожа душворӣ кашед, шумо хосияти\n"
+#~ "\"%s\"-ро интихоб карда метавонед, агар компютери шумо ба Интернет "
+#~ "пайваст\n"
+#~ "набошад ва агар шумо ба ҳамаи шахсоне, ки мошинаи шуморо истифда "
+#~ "мебаранд,\n"
+#~ "боварӣ дошта бошед."
+
+#~ msgid "authentication"
+#~ msgstr "аслшиносӣ"
diff --git a/perl-install/install/help/po/th.po b/perl-install/install/help/po/th.po
index 58e6343d1..fc65aa12e 100644
--- a/perl-install/install/help/po/th.po
+++ b/perl-install/install/help/po/th.po
@@ -6,10 +6,11 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2001-09-10 14:24GMT+7\n"
"Last-Translator: Wachara Chinsettawong <wachara@yahoo.com>\n"
"Language-Team: Thai <th@li.org>\n"
+"Language: th\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -20,7 +21,7 @@ msgstr ""
#, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
@@ -67,6 +68,16 @@ msgid ""
msgstr ""
#: ../help.pm:54
+#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
#, fuzzy, c-format
msgid "Do you want to use this feature?"
msgstr "คุณต้องการใช้ aboot หรือไม่"
@@ -74,7 +85,8 @@ msgstr "คุณต้องการใช้ aboot หรือไม่"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -84,31 +96,35 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
#: ../help.pm:88
#, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
@@ -119,12 +135,11 @@ msgstr ""
#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -137,8 +152,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -205,10 +219,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -234,16 +248,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr ""
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -281,7 +286,12 @@ msgid ""
"server which can be used by other machines on your local network as well."
msgstr ""
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, fuzzy, c-format
msgid "Automatic time synchronization"
msgstr "Boot Style Configuration"
@@ -305,7 +315,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -403,39 +413,43 @@ msgstr ""
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -444,15 +458,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -471,7 +485,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "ใช้พาร์ติชั่นที่มีอยู่"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "ลบ disk ทั้งหมด"
@@ -519,7 +538,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "สร้างfloppyสำหรับการติดตั้งแบบออโตเมติก"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -539,7 +573,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -548,7 +582,7 @@ msgstr ""
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -571,7 +605,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -587,21 +621,24 @@ msgstr "อ๊อปชั่นของเครื่องพิมพ์แ
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -617,21 +654,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -648,22 +687,41 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr ""
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, fuzzy, c-format
msgid "Toggle between normal/expert mode"
msgstr "สำหรับผู้ชำนาญ > ปกติ"
@@ -671,34 +729,40 @@ msgstr "สำหรับผู้ชำนาญ > ปกติ"
#: ../help.pm:536
#, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
@@ -718,23 +782,23 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
#: ../help.pm:594
@@ -775,8 +839,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -808,7 +871,12 @@ msgstr ""
msgid "Espanol"
msgstr ""
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -862,53 +930,7 @@ msgid ""
"Windows is named \"ttyS0\" under GNU/Linux."
msgstr ""
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-
-#: ../help.pm:725
-#, fuzzy, c-format
-msgid "authentication"
-msgstr "การตรวจสอบสิทธิ์การใช้งาน"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -922,7 +944,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -933,7 +955,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -954,7 +976,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
@@ -963,7 +985,12 @@ msgstr ""
msgid "pdq"
msgstr ""
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, fuzzy, c-format
msgid "Expert"
msgstr "โหมดผู้เชี่ยวชาญ"
@@ -976,7 +1003,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1040,11 +1067,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1062,8 +1084,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1080,14 +1101,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "Internal ISDN card"
+
+#: ../help.pm:809
#, fuzzy, c-format
msgid "ISDN card"
msgstr "Internal ISDN card"
@@ -1100,11 +1126,11 @@ msgstr "ให้เป็นกราฟฟิคเมื่อเริ่ม
#: ../help.pm:861
#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
-"เลือก harddisk ที่ต้องการลบและลง Mandriva Linux\n"
+"เลือก harddisk ที่ต้องการลบและลง Mageia\n"
"ควรระวังเป็นอย่างมากดพราะว่าข้อมูลทุกอย่างจะถูกลบ\n"
"และจะไม่สามารถกู้คืนได้"
@@ -1112,12 +1138,14 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"กด \"OK\" ถ้าคุณต้องการลบข้อมูลทั้งหมดบน harddisk นี้\n"
"นี่รวมถึง partitions ทั้งหมดซึ่งรวมถึง Windows ด้วย\n"
@@ -1135,3 +1163,6 @@ msgstr "Next ->"
msgid "<- Previous"
msgstr "<- ก่อน"
+#, fuzzy
+#~ msgid "authentication"
+#~ msgstr "การตรวจสอบสิทธิ์การใช้งาน"
diff --git a/perl-install/install/help/po/tl.po b/perl-install/install/help/po/tl.po
index e4a00768a..f90c347f4 100644
--- a/perl-install/install/help/po/tl.po
+++ b/perl-install/install/help/po/tl.po
@@ -7,25 +7,26 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX-tl\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2004-09-15 13:35+0200\n"
"Last-Translator: Arys P. Deloso <arys@deloso.org>\n"
"Language-Team: Filipino <salinpinoy@comitus.net>\n"
+"Language: fil\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.3\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Bago magpatuloy, kailangang basahin ninyong mabuti ang mga nasasaad sa\n"
-"lisensiya. Tinutukoy nito ang kabuoang distribusyon ng Mandriva Linux. Kung\n"
+"lisensiya. Tinutukoy nito ang kabuoang distribusyon ng Mageia. Kung\n"
"kayo ay sumasang-ayon sa lahat ng nasasaad, i-check ang \"%s\" na box.\n"
"Kung hindi, i-click ang \"%s\" na button para i-reboot ang inyong computer."
@@ -125,13 +126,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Gusto ninyong gamitin ang katangian na ito?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -141,28 +153,33 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Nakalista rito ang mga namamalaging partisyon ng Linux na natiktikan sa\n"
-"inyong hard drive. Maaari ninyong itago ang mga pili ng Wizard, dahil sila\n"
+"inyong hard disk drive. Maaari ninyong itago ang mga pili ng Wizard, dahil "
+"sila\n"
"ay mabuti para sa karamihan ng mga karaniwang \"installation\". Kung kayo\n"
"ay gagawa ng mga pagbabago, mag-define dapat kayo ng partisyon ng\n"
"\"root\" (\"/\"). Huwag pumili ng napakaliit na partisyon dahil hindi kayo "
@@ -176,44 +193,44 @@ msgstr ""
"\n"
"Bawat partisyon ay nakalista na sumusunod: \"Pangalan\", \"Capacity\".\n"
"\n"
-"\"Pangalan\" ay naka-structure na: \"uri ng hard drive\", \"bilang ng hard "
-"drive\",\n"
+"\"Pangalan\" ay naka-structure na: \"uri ng hard disk drive\", \"bilang ng "
+"hard drive\",\n"
"\"bilang ng partisyon\" (halimbawa, \"hda1\").\n"
"\n"
-"\"Uri ng hard drive\" ay \"hd\" kung ang inyong hard drive ay isang IDE na "
-"hard drive\n"
-"at \"sd\" kung ito ay isang SCSI na hard drive.\n"
+"\"Uri ng hard disk drive\" ay \"hd\" kung ang inyong hard disk drive ay "
+"isang IDE na hard disk drive\n"
+"at \"sd\" kung ito ay isang SCSI na hard disk drive.\n"
"\n"
-"\"Bilang ng hard drive\" ay palaging titik pagkatapos ng \"hd\" o \"sd\". "
-"Para\n"
-"sa mga IDE na hard drive:\n"
+"\"Bilang ng hard disk drive\" ay palaging titik pagkatapos ng \"hd\" o \"sd"
+"\". Para\n"
+"sa mga IDE na hard disk drive:\n"
"\n"
-" * \"a\" ay nangangahulugang \"master hard drive sa primary IDE controller"
-"\";\n"
+" * \"a\" ay nangangahulugang \"master hard disk drive sa primary IDE "
+"controller\";\n"
"\n"
-" * \"b\" ay nangangahulugang \"slave hard drive sa primary IDE controller"
-"\";\n"
+" * \"b\" ay nangangahulugang \"slave hard disk drive sa primary IDE "
+"controller\";\n"
"\n"
-" * \"c\" ay nangangahulugang \"master hard drive sa secondary IDE controller"
-"\";\n"
+" * \"c\" ay nangangahulugang \"master hard disk drive sa secondary IDE "
+"controller\";\n"
"\n"
-" * \"d\" ay nangangahulugang \"slave hard drive sa secondary IDE controller"
-"\".\n"
+" * \"d\" ay nangangahulugang \"slave hard disk drive sa secondary IDE "
+"controller\".\n"
"\n"
-"Sa mga SCSI na hard drive, ang \"a\" ay nangangahulugang \"pinakamababang "
-"SCSI ID\",\n"
+"Sa mga SCSI na hard disk drive, ang \"a\" ay nangangahulugang "
+"\"pinakamababang SCSI ID\",\n"
"ang \"b\" ay nangangahulugang \"pangalawang pinakamababang SCSI ID\", atbp."
#: ../help.pm:88
#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Ang installation ng Mandriva Linux ay nakahati sa ilang mga CD-ROM.\n"
+"Ang installation ng Mageia ay nakahati sa ilang mga CD-ROM.\n"
"Kung ang napiling package ay nakalagay sa ibang CD-ROM, iluluwa ng DrakX\n"
"ang kasalukuyang CD at ipapasuksok sa inyo ang tamang CD."
@@ -221,12 +238,11 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -239,8 +255,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -279,11 +294,11 @@ msgid ""
msgstr ""
"Panahon na para piliin kung aling mga program ang nais ninyong i-install sa\n"
"inyong sistema. Mayroong libo-libong mga package na available para sa\n"
-"Mandriva Linux, at upang mas madali itong pangasiwaan, ang mga package\n"
+"Mageia, at upang mas madali itong pangasiwaan, ang mga package\n"
"ay inayos sa mga pangkat ng magkakatulad na mga application.\n"
"\n"
"Ang mga package ay inayos sa mga pangkat na batay sa paggamit ng\n"
-"inyong makina. Inaayos ng Mandriva Linux ang mga pangkat ng mga\n"
+"inyong makina. Inaayos ng Mageia ang mga pangkat ng mga\n"
"package sa apat na kategoriya. Maaari ninyong paghaluhaluin at\n"
"pagbagaybagayin ang mga application mula sa sari-saring kategoriya,\n"
"para ang installation na ``Workstation'' ay maaari pa ring maka-install\n"
@@ -366,10 +381,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -402,11 +417,11 @@ msgstr ""
"!! Kung ang isang package ng server ay napili, dahil kayo ay pumili ng\n"
"bukod na package o kaya iyon ay bahagi ng isang pangkat ng mga package,\n"
"kayo ay tatanungin kung gusto ninyo talagang i-install ang mga server na\n"
-"iyon. Bilang default, sisimulan kaagad ng Mandriva Linux pag-boot ang kahit\n"
+"iyon. Bilang default, sisimulan kaagad ng Mageia pag-boot ang kahit\n"
"anong na-install na mga service. Kahit na sila ay ligtas at walang kilalang "
"mga\n"
"issue nang mailabas ang distribusyon, maaring matuklasan na may butas sa\n"
-"seguridad pagkatapos matapos ang version ng Mandriva Linux na ito. Kung\n"
+"seguridad pagkatapos matapos ang version ng Mageia na ito. Kung\n"
"hindi ninyo nalalaman ang ginagawa ng isang service o bakit ito ini-"
"install,\n"
"i-click ang \"%s\". Ang pagki-click sa \"%s\" ay mag-i-install ng mga "
@@ -439,21 +454,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Automatic dependencies"
-#: ../help.pm:186
-#, fuzzy, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": ang pagki-click sa \"%s\" na button ay magbubukas sa \"printer\n"
-"configuration wizard\". Konsultahin ang angkop na kabanata ng ``Starter\n"
-" Guide'' para sa karagdagang inpormasyon sa kung paano mag-setup ng\n"
-"bagong printer. Ang iniharap na interface doon ay katulad ng ginamit noong\n"
-"installation."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, fuzzy, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -528,7 +529,12 @@ msgstr ""
"ito ay talagang mag-i-install ng tagapagsilbi na orasan na magagamit rin ng\n"
"ibang mga makina sa inyong local network."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Automatic na pagsasabaysabay ng oras"
@@ -563,7 +569,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -619,7 +625,7 @@ msgid ""
msgstr ""
"X (para sa \"X Window System\") ay ang puso ng \"graphical interface\"\n"
"ng GNU/Linux na kung saan lahat ng mga \"graphical environment\" (KDE,\n"
-"GNOME, AfterStep, WindowMaker, atbp.) na kasama sa Mandriva Linux ay\n"
+"GNOME, AfterStep, WindowMaker, atbp.) na kasama sa Mageia ay\n"
"nakaasa.\n"
"\n"
"Ihaharap sa inyo ang isang talaan ng iba-ibang mga parameter na babaguhin\n"
@@ -746,39 +752,43 @@ msgstr ""
#: ../help.pm:319
#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -787,15 +797,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -809,16 +819,16 @@ msgid ""
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
"Sa puntong ito, kailangan ninyong magpasya kung saan ninyo nais i-install\n"
-"ang Mandriva Linux na \"operating system\" (OS) sa inyong \"hard drive\".\n"
-"Kung ang inyong \"hard drive\" ay walang laman o kung may namamalaging\n"
+"ang Mageia na \"operating system\" (OS) sa inyong \"hard disk drive\".\n"
+"Kung ang inyong \"hard disk drive\" ay walang laman o kung may namamalaging\n"
"\"operating system\" na gumagamit sa lahat ng available na puwang,\n"
"kakailanganin ninyong ipartisyon ang drive. Ang pagpapartisyon ng isang\n"
-"\"hard drive\" ay ginagawa sa pamamagitan ng paghahati-hati nito sa\n"
+"\"hard disk drive\" ay ginagawa sa pamamagitan ng paghahati-hati nito sa\n"
"kaisipan (\"logical\") upang makagawa ng puwang na kinakailangan para\n"
-"ma-install ang inyong bagong sistema ng Mandriva Linux.\n"
+"ma-install ang inyong bagong sistema ng Mageia.\n"
"\n"
"Dahil kadalasan na hindi na mababawi ang paraan ng pagpapartisyon ng\n"
-"hard drive at maaaring magdulot ng pagkawala ng data kung mayroon\n"
+"hard disk drive at maaaring magdulot ng pagkawala ng data kung mayroon\n"
"nang \"operating system\" na naka-install sa drive, ang pagpapartisyon ay\n"
"ay maaaring maging nakakatakot at nakaka-stress kung kayo ay baguhang\n"
"user.Sa kagandahang palad, ang DrakX ay may kalakip na \"wizard\" na\n"
@@ -826,14 +836,16 @@ msgstr ""
"basahin muna ang mga nalalabing bahagi ng section na ito at higit sa\n"
"lahat, huwag magmadali.\n"
"\n"
-"Depende sa confiugration ng inyong hard drive, mayroong ilang mga option:\n"
+"Depende sa confiugration ng inyong hard disk drive, mayroong ilang mga "
+"option:\n"
"\n"
" * \"%s\": ang option na ito ay magsasagawa ng automatic na pagpapartisyon\n"
-"ng inyong walang lamang hard drive. Kung gagamitin ninyon ang option na ito\n"
+"ng inyong walang lamang hard disk drive. Kung gagamitin ninyon ang option na "
+"ito\n"
"hindi na magkakaroon ng iba pang mga \"prompt\".\n"
"\n"
" * \"%s\": natiktikan ng wizard na mayroong isa o mahigit na namamalaging\n"
-"partisyon ng Linux sa inyong \"hard drive\". Kung gusto ninyong gamitin "
+"partisyon ng Linux sa inyong \"hard disk drive\". Kung gusto ninyong gamitin "
"sila,\n"
"piliin ang option na ito. Pagkatapos kayo ay papipiliin ng mga \"mount point"
"\"\n"
@@ -841,8 +853,8 @@ msgstr ""
"na bilang default, at para sa karamihang bahagi isang magandang pagkukuro\n"
"kung gagamitin sila.\n"
"\n"
-" * \"%s\": kung ang Microsoft Windows ay naka-install sa inyong hard drive "
-"at\n"
+" * \"%s\": kung ang Microsoft Windows ay naka-install sa inyong hard disk "
+"drive at\n"
"ginagamit nito lahat ng mayroong puwang dito, kakailanganin ninyong\n"
"gumawa ng libreng puwang para sa GNU/Linux. Para gawin ito, maaari ninyong\n"
"tanggalin ang inyong partisyon ng Microsoft Windows at data (tingnan ang\n"
@@ -851,7 +863,7 @@ msgstr ""
"walang mawawalang data, kung dati na ninyong na-defragment ang partisyon\n"
"ng Windows. Matinding itinatagubilin na i-backup ang inyong data. Ang\n"
"paggamit sa option na ito ay ipinapayo kung nais ninyong gamitin pareho ang\n"
-"Mandriva Linux at Microsoft Windows sa iisang computer.\n"
+"Mageia at Microsoft Windows sa iisang computer.\n"
"\n"
" Bago piliin ang option na ito, pakiunawa na pagkatapos ng paraang ito,\n"
"ang laki ng partisyon ng inyong Microsoft Windows ay magiging mas\n"
@@ -860,8 +872,9 @@ msgstr ""
"inyong data o mag-install ng bagong software.\n"
"\n"
" * \"%s\": kung gusto ninyong tanggalin lahat ng data at mga partisyon\n"
-"na mayroon sa inyong hard drive at palitan sila ng inyong bagong sistema\n"
-"ng Mandriva Linux, piliin ang option na ito. Maging maingat, dahil hindi na\n"
+"na mayroon sa inyong hard disk drive at palitan sila ng inyong bagong "
+"sistema\n"
+"ng Mageia, piliin ang option na ito. Maging maingat, dahil hindi na\n"
"ninyo maaaring bawiin ang inyong pili matapos ninyong patotohanan ito.\n"
"\n"
" !! kung pipiliin ninyo ang option na ito, lahat ng data sa inyong disk "
@@ -878,7 +891,7 @@ msgstr ""
"\n"
" * \"%s\": piliin ang option na ito kung nais ninyong mano-manong "
"ipartisyon\n"
-"ang inyong hard drive. Maging maingat -- ito ay makapangyarihan ngunit\n"
+"ang inyong hard disk drive. Maging maingat -- ito ay makapangyarihan ngunit\n"
"mapanganib na pili at maaaring madali ninyong mawala ang lahat ng\n"
"inyong data. Ito ang dahilan kung bakit ipinapayo lamang ang option na ito\n"
"kung kayo ay nakagawa na dati ng ganito at mayroong karanasan. Para sa\n"
@@ -891,7 +904,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Gamitin ang namamalaging partisyon"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Burahin ang buong disk"
@@ -972,7 +990,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Lumikha ng auto-install na floppy"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -992,14 +1025,13 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
msgstr ""
"Kailangang i-format ang kahit anong partisyon na bagong gawa para ito\n"
-"magamit (ang ibig sabihin ng pagfo-format ay paglilikha ng \"file system"
-"\").\n"
+"magamit (ang ibig sabihin ng pagfo-format ay paglilikha ng \"filesystem\").\n"
"\n"
"Sa ngayon, maaari ninyong naisin na i-format muli ang ilang mga mayroon\n"
"nang partisyon para burahin ang nilalamang data nila. Kung nanaisin ninyong\n"
@@ -1018,7 +1050,7 @@ msgstr ""
"I-click ang \"%s\" kung handa na kayong i-format ang mga partisyon.\n"
"\n"
"I-click ang \"%s\" kung gusto ninyong pumili ng ibang partisyon para sa\n"
-"inyong pag-i-install ng bagong Mandriva Linux na \"operating system\".\n"
+"inyong pag-i-install ng bagong Mageia na \"operating system\".\n"
"\n"
"I-click ang \"%s\" kung nais ninyong piliin ang mga partisyon na susuriin\n"
"para sa mga \"bad blocks\" (mga sirang bloke) sa disk."
@@ -1026,7 +1058,7 @@ msgstr ""
#: ../help.pm:437
#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -1038,7 +1070,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Pagdating ng panahon na kayo ay nag-i-install ng Mandriva Linux, mas\n"
+"Pagdating ng panahon na kayo ay nag-i-install ng Mageia, mas\n"
"malamang na ilang mga package ay nabago na simula nang naunang\n"
"paglabas. Maaaring inayos ang mga sira (\"bug\"), naresolba ang mga tanong\n"
"sa sequridad. Para pakinabangan ang mga update (pagbabago) na ito ,\n"
@@ -1063,7 +1095,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1089,24 +1121,27 @@ msgid "Security Administrator"
msgstr "Tagapamala ng Seguridad"
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1122,21 +1157,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1153,36 +1190,32 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"Sa puntong ito, kailangan ninyong piliin kung aling mga partisyon ang\n"
-"gagamitin para sa pag-i-install ng sistema na Mandriva Linux. Kung ang\n"
+"gagamitin para sa pag-i-install ng sistema na Mageia. Kung ang\n"
"mga partisyon ay nai-define na, mula sa dating pag-i-install ng GNU/Linux\n"
"o ng ibang kasangkapang pangpartisyon, maaari ninyong gamiting ang\n"
"mga mayroon nang partisyon. Kung hindi, dapat mag-define ng mga\n"
-"partisyon ng hard drive.\n"
+"partisyon ng hard disk drive.\n"
"\n"
-"Upang makalikha ng mga partisyon, dapat pumili muna kayo ng hard drive.\n"
+"Upang makalikha ng mga partisyon, dapat pumili muna kayo ng hard disk "
+"drive.\n"
"Maaari ninyong piliin ang disk para sa pagpapartisyon sa pamamagitan ng\n"
"pagki-click sa ``hda'' para sa unang IDE na drive, ``hdb'' para sa "
"pangalawa,\n"
"``sda'' para sa unang SCSI na drive at ganon.\n"
"\n"
-"Para ipartisyon ang napiling hard drive, maaari ninyong gamitin ang mga\n"
+"Para ipartisyon ang napiling hard disk drive, maaari ninyong gamitin ang "
+"mga\n"
"option na ito:\n"
"\n"
" * \"%s\": ang option na ito ay magtatanggal ng lahat ng partisyon sa\n"
-"napiling hard drive\n"
+"napiling hard disk drive\n"
"\n"
" * \"%s\": ang option na ito ay hahayaan kayo na automatic na lumikha\n"
-"ng ext3 at swap na partisyon sa libreng puwang ng inyong hard drive\n"
+"ng ext4 at swap na partisyon sa libreng puwang ng inyong hard disk drive\n"
"\n"
"\"%s\": magbibigay daan sa karagdang mga katangian (\"feature\"):\n"
"\n"
@@ -1198,7 +1231,7 @@ msgstr ""
"na hindi iyon parating gumagana.\n"
"\n"
" * \"%s\": babalewalain lahat ng mga pagbabago at kukunin muli ang\n"
-"partition table na nasa hard drive noong una pa.\n"
+"partition table na nasa hard disk drive noong una pa.\n"
"\n"
" * \"%s\": ang pagtatanggal ng check sa option na ito ay magpipilit sa mga\n"
"gumagamit na mano-manong i-mount at i-unmount ang \"removable media\"\n"
@@ -1206,17 +1239,18 @@ msgstr ""
"\n"
" * \"%s\": gamitin ang option na ito kung nais ninyong gumamit ng wizard "
"para\n"
-"i-partisyon ang inyong hard drive. Ito ay nirerekomenda kung kayo ay walang\n"
+"i-partisyon ang inyong hard disk drive. Ito ay nirerekomenda kung kayo ay "
+"walang\n"
"mabuting kaalaman sa pagpapartisyon.\n"
"\n"
" * \"%s\": gamitin ang option na ito para bawiin ang mga pagbabago.\n"
"\n"
" * \"%s\": magpapahintulot ng karagdagang magagawa sa mga partisyon (uri,\n"
", mga option, format) at magbibigay ng mas maraming inpormasyon tungkol\n"
-"sa hard drive.\n"
+"sa hard disk drive.\n"
"\n"
-" * \"%s\": kung kayo ay tapos na sa pagpapartisyon ng inyong hard drive, "
-"ito\n"
+" * \"%s\": kung kayo ay tapos na sa pagpapartisyon ng inyong hard disk "
+"drive, ito\n"
"ay magse-save ng inyong mga pagbabago pabalik sa disk.\n"
"\n"
"Kung inaalam ang laki ng partisyon, maaari ninyong i-set ng mabuti ang laki\n"
@@ -1235,96 +1269,121 @@ msgstr ""
"\n"
" * Ctrl-m para i-set kung saan ilalagay (\"mount point\")\n"
"\n"
-"Para makakuha ng inpormasyon tungkol sa mga iba't-ibang uri ng \"file system"
+"Para makakuha ng inpormasyon tungkol sa mga iba't-ibang uri ng \"filesystem"
"\",\n"
"pakibasa ang kabanata ng ext2FS mula sa ``Reference Manual''.\n"
-"\n"
-"Kung kayo ay nag-i-install sa makina ng PPC, gugustuhin ninyong lumikha ng\n"
-"maliit na partisyon na HFS ``bootstrap'' na may laking hindi liliit sa 1MB "
-"na\n"
-"gagamitin ng yaboot bootloader. Kung pipiliin ninyong mas malaki ang\n"
-"partisyon, mga 50MB, makikita ninyong ito ay kapakipakinabang na lugar\n"
-"sa pag-iimbak ng mga reserbang kernel at mga \"ramdisk image\" para sa\n"
-"panahon ng mahigpit na pangangailangan."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Ino-auto-mount ang removable media"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Lipat sa normal o bihasang mode"
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Mahigit sa isang partisyon ng Microsoft ang natiktikan sa inyong hard "
"drive.\n"
"Pakipili kung alin ang gusto ninyong i-resize para ma-install ang inyong\n"
-"bagong \"operating sytem\" na Mandriva Linux.\n"
+"bagong \"operating sytem\" na Mageia.\n"
"\n"
"Bawat partition ay nakalista ng ganito: \"Pangalan ng Linux\",\n"
"\"Pangalan ng Windows\", \"Capacity\".\n"
"\n"
-"\"Pangalan ng Linux name\" ay may istruktura na: \"uri ng hard drive\",\n"
-"\"bilang ng hard drive\",\"bilang ng partisyon\" (halimbawa, \"hda1\").\n"
+"\"Pangalan ng Linux name\" ay may istruktura na: \"uri ng hard disk drive"
+"\",\n"
+"\"bilang ng hard disk drive\",\"bilang ng partisyon\" (halimbawa, "
+"\"hda1\").\n"
"\n"
-"\"Uri ng hard drive\" ay \"hd\" kung ang inyong hard dive ay isang IDE\n"
-"na hard drive at \"sd\" kung iyon ay isang SCSI na hard drive.\n"
+"\"Uri ng hard disk drive\" ay \"hd\" kung ang inyong hard dive ay isang IDE\n"
+"na hard disk drive at \"sd\" kung iyon ay isang SCSI na hard disk drive.\n"
"\n"
-"\"Bilang ng hard drive\" ay palaging titik pagkatapos ng \"hd\" o \"sd\". "
-"Para\n"
-"sa mga IDE na hard drive:\n"
+"\"Bilang ng hard disk drive\" ay palaging titik pagkatapos ng \"hd\" o \"sd"
+"\". Para\n"
+"sa mga IDE na hard disk drive:\n"
"\n"
-" * \"a\" ay nangangahulugang \"master hard drive sa primary IDE controller"
-"\";\n"
+" * \"a\" ay nangangahulugang \"master hard disk drive sa primary IDE "
+"controller\";\n"
"\n"
-" * \"b\" ay nangangahulugang \"slave hard drive sa primary IDE controller"
-"\";\n"
+" * \"b\" ay nangangahulugang \"slave hard disk drive sa primary IDE "
+"controller\";\n"
"\n"
-" * \"c\" ay nangangahulugang \"master hard drive sa secondary IDE controller"
-"\";\n"
+" * \"c\" ay nangangahulugang \"master hard disk drive sa secondary IDE "
+"controller\";\n"
"\n"
-" * \"d\" ay nangangahulugang \"slave hard drive sa secondary IDE controller"
-"\".\n"
+" * \"d\" ay nangangahulugang \"slave hard disk drive sa secondary IDE "
+"controller\".\n"
"\n"
-"Sa mga SCSI na hard drive, ang \"a\" ay nangangahulugang \"pinakamababang "
-"SCSI ID\",\n"
+"Sa mga SCSI na hard disk drive, ang \"a\" ay nangangahulugang "
+"\"pinakamababang SCSI ID\",\n"
"ang \"b\" ay nangangahulugang \"pangalawang pinakamababang SCSI ID\", atbp.\n"
"\n"
-"\"Pangalan ng Windows\" ay ang titik ng inyong hard drive sa ilalim ng "
+"\"Pangalan ng Windows\" ay ang titik ng inyong hard disk drive sa ilalim ng "
"Windows\n"
"(ang unang disk o partisyon ay tinatawag na \"C:\")."
@@ -1348,46 +1407,47 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Ang hakbang na ito pagaganahin lamang kung mayroong nakitang\n"
"partisyon ng GNU/Linux sa inyong makina.\n"
"\n"
"Kailangang malaman ngayon ng DrakX kung gusto ninyong magsagawa\n"
-"ng bagong install o upgrade ng namamalaging Mandriva Linux na sistema:\n"
+"ng bagong install o upgrade ng namamalaging Mageia na sistema:\n"
"\n"
" * \"%s\": Para sa karamihang bahagi, ganap na binubura nito ang lumang\n"
"sistema. Kung nais ninyong baguhin kung paano ang pagpartisyon sa inyong\n"
-"hard drive, o baguhin ang file system, dapat ninyong gamitin ang option na\n"
+"hard disk drive, o baguhin ang filesystem, dapat ninyong gamitin ang option "
+"na\n"
"ito. Subalit, depende sa inyong pakana ng pagpapartisyon, maaari ninyong\n"
"pigilang masulatan ang ilan sa inyong mga namamalaging data.\n"
"\n"
" * \"%s\": ang klase ng pag-i-install na ito ay pahihintulutan kayong i-"
"update\n"
"ang mga package na kasalukuyang naka-install sa inyong sistema ng\n"
-"Mandriva Linux. Ang inyong kasalukuyang pakana ng pagpapartisyon at\n"
+"Mageia. Ang inyong kasalukuyang pakana ng pagpapartisyon at\n"
"data ng gumagamit ay hindi nabago. Karamihan ng ibang mga hakbang sa\n"
"pagko-configure ay mayroon pa rin, katulad ng standard na pag-i-install.\n"
"\n"
"Ang paggamit sa ``Upgrade'' na option ay gagana ng mabuti sa mga sistema\n"
-"ng Mandriva Linux na nagpapatakbo ng version \"8.1\" o pataas. Ang\n"
-"pagsasagawa ng upgrade sa mga version bago ng Mandriva Linux \"8.1\" ay\n"
+"ng Mageia na nagpapatakbo ng version \"8.1\" o pataas. Ang\n"
+"pagsasagawa ng upgrade sa mga version bago ng Mageia \"8.1\" ay\n"
"hindi ipinapayo."
#: ../help.pm:594
@@ -1448,8 +1508,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1491,7 +1550,7 @@ msgstr ""
"Tungkol sa suporta sa UTF-8 (unicode): Ang Unicode ay isang bagong\n"
"\"character encoding\" na nagnanais masakop ang lahat ng namamalaging\n"
"wika. Ang buong suporta dita ng GNU/Linux ay ginagawa pa rin. Sa dahilang\n"
-"ito, gagamitin ito o hindi ng Mandriva Linux depende sa mga pili ng mga\n"
+"ito, gagamitin ito o hindi ng Mageia depende sa mga pili ng mga\n"
"gumagamit:\n"
"\n"
" * Kung kayo ay pipili ng wika na may malakas na \"legacy encoding"
@@ -1529,7 +1588,12 @@ msgstr ""
msgid "Espanol"
msgstr "Espanol"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, fuzzy, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1625,97 +1689,7 @@ msgstr ""
"Pakipili ang tamang port. Halimbawa, ang \"COM1\" port sa Windows\n"
"ay may pangalang \"ttyS0\" sa ilalim ng GNU/Linux."
-#: ../help.pm:691
-#, fuzzy, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Ito ang pinakamahalagang punto ng desisyon para sa seguridad ng inyong\n"
-"GNU/Linux na sistema: dapat ninyong ipasok ang password ng \"root\". Ang\n"
-"\"root\" ay siyang tagapamahala ng sistema at siya lamang ang \"user\" o\n"
-"gumagamit na may pahintulot na mag-update, magdagdag ng mga user,\n"
-"baguhin ang kabuuang configuration ng sistema, atbp. Sa maikling salita,\n"
-"ang \"root\" ay may kakayahang gawin ang kahit na anong bagay! Ito ang\n"
-"dahilan kung bakit dapat kayong pumili ng password na mahirap mahulaan -\n"
-"sasabihan kayo ng DrakX kung ang password na pinili ninyo ay masyadong\n"
-"madali. Kung inyong mapapansin, hindi kayo pinipilit na magpasok ng "
-"password,\n"
-"pero matindi namin kayong pinapayuhan laban dito. Ang GNU/Linux na sistema\n"
-"ay makiling sa mga pagkakamali ng tagapagpalakad gaya ng lahat ng ibang\n"
-"\"operating system\". Dahil ang \"root\" ay may kakayahang daigin ang lahat\n"
-"ng mga hanggahan at hindi sinasadyang burahin lahat ng data sa mga\n"
-"partisyon dahil na rin sa walang ingat na pag-access sa mga partisyon,\n"
-"napakaimportante na mahirap maging \"root\".\n"
-"\n"
-"Ang password ay dapat halo ng mga alphanumeric character at hindi iikli sa "
-"8\n"
-"character ang haba. Huwag na huwag isusulat ang password ng \"root\" --\n"
-"mas higit na mapapadaling madala ang sistema sa panganib.\n"
-"\n"
-"Isang babala -- huwag gawing napahaba o napakahirap ng password dahil\n"
-"dapat ay maaalala ninyo ito!\n"
-"\n"
-"Ang password ay hindi ipapakita sa screen habang itina-type ninyo ito. Para\n"
-"mabawasan ang pagkakamali sa pag-type ng hindi nakikita kakailanganin\n"
-"ninyong i-type ng dalawang beses ito. Kung naulit ninyo ang maling pag-type\n"
-"ng dalawang beses, itong maling password na ito ang siyang gagamitin.\n"
-"\n"
-"Kung nais ninyo na ang pagpasok sa computer na ito ay kontrolin ng isang\n"
-"\"authentication server\", i-click ang \"%s\" na pindutan.\n"
-"\n"
-"Kung ang network ninyo ay gumagamit ng LDAP, NIS, o PDC \"Windows Domain\n"
-"authentication service\", piliin ang naaangkop para sa \"%s\". Kung hindi "
-"ninyo\n"
-"alam kung alin ang gagamitin, dapat kayong magtanong sa inyong\n"
-"tagapamahala ng network (\"network administrator\").\n"
-"\n"
-"Kung kayo ay nagkakaproblema sa pagtanda ng mga password, kung ang inyong\n"
-"computer ay hindi kakabit sa Internet at kayo ay lubos na nagtitiwala sa "
-"lahat\n"
-"ng gumagamit ng inyong computer, maaari ninyong piliin na magkaroon ng\n"
-"\"%s\"."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "authentication"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, fuzzy, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1729,7 +1703,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1755,7 +1729,7 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1776,12 +1750,12 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Panahon na upang pumili ng sistema ng pagpi-print para sa inyong computer.\n"
"Ang ibang mga \"operating system\" (OS) ay mag-aalok lamang ng isa, pero\n"
-"ang Mandriva Linux ay nag-aalok ng dalawa. Bawat isa sa dalawang sistema\n"
+"ang Mageia ay nag-aalok ng dalawa. Bawat isa sa dalawang sistema\n"
"ng pagpi-print na ito ay nababagay sa natatanging uri ng configuration.\n"
"\n"
" * \"%s\" -- na acronym para sa ``print, do not queue'', ang piliin kung "
@@ -1819,7 +1793,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, fuzzy, c-format
msgid "Expert"
msgstr "Bihasang Mode"
@@ -1832,7 +1811,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1850,7 +1829,8 @@ msgstr ""
"naaangkop na driver.\n"
"\n"
"Dahil sa hindi perpekto ang pagtiktik sa hardware, ang DrakX ay maaaring\n"
-"mabigo sa pagtitiktik sa inyong mga hard drive. Kung gayon, dapat ninyong\n"
+"mabigo sa pagtitiktik sa inyong mga hard disk drive. Kung gayon, dapat "
+"ninyong\n"
"sabihin ang inyong hardware ng mano-mano.\n"
"\n"
"Kung kinailangan na mano-mano ninyong sabihin ang inyong PCI SCSI adapter,\n"
@@ -1900,11 +1880,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1922,8 +1897,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1940,7 +1914,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -2023,7 +1997,12 @@ msgstr ""
"na\n"
"ito."
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "ISDN card"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN card"
@@ -2034,35 +2013,38 @@ msgid "Graphical Interface"
msgstr "Graphical Interface"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
-"Piliin ang hard drive na inyong gustong burahin upang ma-install ang\n"
-"inyong bagong Mandriva Linux na partisyon. Mag-ingat, lahat ng data\n"
+"Piliin ang hard disk drive na inyong gustong burahin upang ma-install ang\n"
+"inyong bagong Mageia na partisyon. Mag-ingat, lahat ng data\n"
"sa drive na ito ay mawawala at hindi na ito mababawi!"
#: ../help.pm:866
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"I-click ang \"%s\" kung gusto ninyong tangalin lahat ng data at partisyon\n"
-"na mayroon sa hard drive na ito. Mag-ingat, pagkatapos ma-click ang\n"
+"na mayroon sa hard disk drive na ito. Mag-ingat, pagkatapos ma-click ang\n"
"\"%s\", hindi na ninyo mababawi ang kahit anong data at mga partisyon\n"
-"na mayroon sa hard drive na ito, kasama ang kahit anong data ng Windows.\n"
+"na mayroon sa hard disk drive na ito, kasama ang kahit anong data ng "
+"Windows.\n"
"\n"
"I-click ang \"%s\" para hindi ituloy ang operasyon na ito na walang "
"mawawlang\n"
-"data at mga partisyon na mayroon sa hard drive na ito."
+"data at mga partisyon na mayroon sa hard disk drive na ito."
#: ../help.pm:872
#, c-format
@@ -2074,3 +2056,124 @@ msgstr "Kasunod ->"
msgid "<- Previous"
msgstr "<- Nakaraan"
+#, fuzzy
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": ang pagki-click sa \"%s\" na button ay magbubukas sa \"printer\n"
+#~ "configuration wizard\". Konsultahin ang angkop na kabanata ng ``Starter\n"
+#~ " Guide'' para sa karagdagang inpormasyon sa kung paano mag-setup ng\n"
+#~ "bagong printer. Ang iniharap na interface doon ay katulad ng ginamit "
+#~ "noong\n"
+#~ "installation."
+
+#, fuzzy
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "Ito ang pinakamahalagang punto ng desisyon para sa seguridad ng inyong\n"
+#~ "GNU/Linux na sistema: dapat ninyong ipasok ang password ng \"root\". Ang\n"
+#~ "\"root\" ay siyang tagapamahala ng sistema at siya lamang ang \"user\" o\n"
+#~ "gumagamit na may pahintulot na mag-update, magdagdag ng mga user,\n"
+#~ "baguhin ang kabuuang configuration ng sistema, atbp. Sa maikling salita,\n"
+#~ "ang \"root\" ay may kakayahang gawin ang kahit na anong bagay! Ito ang\n"
+#~ "dahilan kung bakit dapat kayong pumili ng password na mahirap mahulaan -\n"
+#~ "sasabihan kayo ng DrakX kung ang password na pinili ninyo ay masyadong\n"
+#~ "madali. Kung inyong mapapansin, hindi kayo pinipilit na magpasok ng "
+#~ "password,\n"
+#~ "pero matindi namin kayong pinapayuhan laban dito. Ang GNU/Linux na "
+#~ "sistema\n"
+#~ "ay makiling sa mga pagkakamali ng tagapagpalakad gaya ng lahat ng ibang\n"
+#~ "\"operating system\". Dahil ang \"root\" ay may kakayahang daigin ang "
+#~ "lahat\n"
+#~ "ng mga hanggahan at hindi sinasadyang burahin lahat ng data sa mga\n"
+#~ "partisyon dahil na rin sa walang ingat na pag-access sa mga partisyon,\n"
+#~ "napakaimportante na mahirap maging \"root\".\n"
+#~ "\n"
+#~ "Ang password ay dapat halo ng mga alphanumeric character at hindi iikli "
+#~ "sa 8\n"
+#~ "character ang haba. Huwag na huwag isusulat ang password ng \"root\" --\n"
+#~ "mas higit na mapapadaling madala ang sistema sa panganib.\n"
+#~ "\n"
+#~ "Isang babala -- huwag gawing napahaba o napakahirap ng password dahil\n"
+#~ "dapat ay maaalala ninyo ito!\n"
+#~ "\n"
+#~ "Ang password ay hindi ipapakita sa screen habang itina-type ninyo ito. "
+#~ "Para\n"
+#~ "mabawasan ang pagkakamali sa pag-type ng hindi nakikita kakailanganin\n"
+#~ "ninyong i-type ng dalawang beses ito. Kung naulit ninyo ang maling pag-"
+#~ "type\n"
+#~ "ng dalawang beses, itong maling password na ito ang siyang gagamitin.\n"
+#~ "\n"
+#~ "Kung nais ninyo na ang pagpasok sa computer na ito ay kontrolin ng isang\n"
+#~ "\"authentication server\", i-click ang \"%s\" na pindutan.\n"
+#~ "\n"
+#~ "Kung ang network ninyo ay gumagamit ng LDAP, NIS, o PDC \"Windows Domain\n"
+#~ "authentication service\", piliin ang naaangkop para sa \"%s\". Kung hindi "
+#~ "ninyo\n"
+#~ "alam kung alin ang gagamitin, dapat kayong magtanong sa inyong\n"
+#~ "tagapamahala ng network (\"network administrator\").\n"
+#~ "\n"
+#~ "Kung kayo ay nagkakaproblema sa pagtanda ng mga password, kung ang "
+#~ "inyong\n"
+#~ "computer ay hindi kakabit sa Internet at kayo ay lubos na nagtitiwala sa "
+#~ "lahat\n"
+#~ "ng gumagamit ng inyong computer, maaari ninyong piliin na magkaroon ng\n"
+#~ "\"%s\"."
+
+#~ msgid "authentication"
+#~ msgstr "authentication"
diff --git a/perl-install/install/help/po/tr.po b/perl-install/install/help/po/tr.po
index 00d477eb9..2c48ade09 100644
--- a/perl-install/install/help/po/tr.po
+++ b/perl-install/install/help/po/tr.po
@@ -2,44 +2,43 @@
# Copyright (C) 2000,2003 Free Software Foundation, Inc.
# Copyright (c) 2000 Mandriva
# ############################################
-#
# Ömer Fadıl USTA <omer_fad@hotmail.com> , 1999-2003.
# Tuncay YENİAY <tuncayyeniay@mynet.com>,2002.
# Nazmi Savga <nsavga@doruk.net.tr>,2001.
# Durmuş Celep <durmusc_tr@yahoo.com>,2002.
# Erçin EKER <erc.caldera@gmx.net>, 2003.
-#
# #############################################
-#
+# Atilla ÖNTAŞ <tarakbumba@gmail.com>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: DrakX-tr\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
-"PO-Revision-Date: 2004-09-15 13:35+0200\n"
-"Last-Translator: Ömer Fadıl USTA <omer_fad@hotmail.com>\n"
-"Language-Team: Turkish <tr@li.org>\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
+"PO-Revision-Date: 2013-11-28 20:15+0300\n"
+"Last-Translator: Atilla ÖNTAŞ <tarakbumba@gmail.com>\n"
+"Language-Team: Mageia Turkish Translation Team <i18n-tr@ml.mageia.org>\n"
+"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Virtaal 0.7.1\n"
#: ../help.pm:14
#, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Devam etmeden önce lisans koşullarını dikkatle okumalısınız. Lisans tüm\n"
-"Mandriva Linux dağıtımını kapsar, bu koşullarını tamamını kabul "
-"ediyorsanız,\n"
+"Mageia dağıtımını kapsar, bu koşullarını tamamını kabul ediyorsanız,\n"
"\"%s\" kutusunu işaretleyiniz aksi halde \"%s\" tuşuna tıklayarak\n"
"makinenizi yeniden başlatabilirsiniz."
#: ../help.pm:20
-#, fuzzy, c-format
+#, c-format
msgid ""
"GNU/Linux is a multi-user system which means each user can have his or her\n"
"own preferences, own files and so on. But unlike \"root\", who is the\n"
@@ -78,39 +77,62 @@ msgid ""
"security), choose the desired user and window manager, then click on\n"
"\"%s\". If you're not interested in this feature, uncheck the \"%s\" box."
msgstr ""
-"GNU/Linux çok kullanıcılı bir sistemdir, yani her kullanıcının kendi\n"
-"tercihleri, kendi dosyaları, v.s. olabilir. Daha fazla bilgi edinmek için\n"
-"\"Kullanıcı Kılavuzu\"nu okuyunuz. Sistem Yöneticisi olan \"root\" dışındaki "
-"kullanıcılar kendi dosyaları ve yapılandırmaları dışında hiçbir\n"
-"şeyi değiştiremezler. Kendiniz için en az bir normal kullanıcı "
-"oluşturmalısınız.\n"
-"Bu hesabı sıradan işler için kullanacaksınız. Sisteminizi \"root\" olarak\n"
-"kullanmak çok pratik gibi görünse de aslında çok tehlikelidir. En küçük bir\n"
-"yanlışlık sisteminizin çalışmamasıyla sonuçlanabilir. Ama normal kullanıcı\n"
-"olarak bir sürü yanlış da yapsanız sadece kendi bilgilerinize zarar vermiş\n"
-"olursunuz, sisteminize zarar veremezsiniz.\n"
-"\n"
-"İl alan gerçek isminizi girmeniz içindir. Tabii ki sorunlu değildir, "
-"herhangi bir\n"
-"şey yazabilirsiniz. DrakX bu bölüme ilk girdiğiniz kelimeyi \"%s\" bölümüne\n"
-"kopyalayacak ki bu sisteme giriş için kullanılacak kullanıcı adıdır. "
-"İsterseniz\n"
-"kullanıcı adını değiştirebilirsiniz. Sonra buraya bir parola gireceksiniz. "
-"Bir\n"
-"normal kullanıcının parolası \"root\" parolası kadar önemli değildir.\n"
-"Fakat bu boş yada basit bir şifre kullanmak için bir gerekçe değildir,\n"
-"sonuç olarak kişisel dosyalarınızı tehlikeye atmış olursunuz.\n"
-"\n"
-"\"%s\"e tıklayarak ile kullanıcı için öntanımlı \"kabuk\"u "
-"değiştirebilirsiniz\n"
-"(öntanımlı olan bash'dir).\n"
-"\n"
-"Kullanıcı eklemeyi tamamladıktan sonra, sistem açıldıktan sonra otomatik\n"
-"giriş yapılacak kullanıcı sorulacaktır. Eğer bu konu ile ilgileniyorsanızı "
-"(ve\n"
-"yerel güvenliğe önem vermiyorsanız), istediğiniz kullanıcıyı ve pencere\n"
-"yöneticisini seçin ve \"%s\"e tıklayın. Eğer bu konu ilginizi çekmiyorsa\n"
-"\"%s\" seçimini kaldırın ve devam edin."
+"GNU/Linux, her kullanıcının kendi ayarlarına, kendi dosyalarına v.b. sahip "
+"olabileceği çok kullanıcılı bir\n"
+"sistemdir. Sistem yöneticisi olan \"kök\" aksine bu noktada eklediğiniz "
+"kullanıcılar kendi\n"
+"dosyaları ve ve kendi yapılandırmaları haricinde herhangi bir şeyi "
+"değiştirme yetkisine sahip\n"
+"olmayacaklardır ki böylece bir bütün olarak sistem istenmeyen veya zararlı "
+"değişikliklerden korunacaktır.\n"
+"Kendiniz için en azından bir normal kullanıcı oluşturmak zorundasınız -- bu, "
+"günlük olarak kullanacağınız\n"
+"hesap olacaktır. Her ne kadar her şeyi yapabilmek için \"kök\" olarak oturum "
+"açabilmeniz mümkünse de\n"
+"bu işlem çok tehlikeli olabilir! Çok basit bir hata sisteminizin bir daha "
+"işlememesine neden olabilir.\n"
+"Normal bir kullanıcı olarak ciddi bir hata yaparsanız en kötü durumda biraz "
+"veri kaybedersiniz;\n"
+"ama bu, tüm sistemi etkilemeyecektir.\n"
+"\n"
+"İlk alan gerçek adınızı sorar. Elbette, bu zorunlu değildir -- ne isterseniz "
+"onu yazabilirsiniz.\n"
+"DrakX yazdığınız ilk sözcüğü alır ve \"%s\" olarak kopyalar. Bu, kullanıcının "
+"oturum açarken\n"
+"gireceği isimdir. İsterseniz öntanımlı olan kullanıcı ismini "
+"değiştirebilirsiniz. Sonraki adım\n"
+"bir parola girmektir. Güvenlik açısından, bir tam yetkilendirilmemiş "
+"(normal) kullanıcı parolası\n"
+"\"kök\" parolası kadar önemli değildir. Ancak, bunu boş geçmek veya çok basit "
+"belirlemek için\n"
+"bir neden yoktur: sonuçta, risk altına girebilecek olan kendi "
+"dosyalarınızdır.\n"
+"\n"
+"\"%s\" üzerine tıkladığınızda, diğer kullanıcıları da ekleyebilirsiniz. "
+"Arkadaşlarınız, babanız, kardeşiniz v.b.\n"
+"her biri için bir kullanıcı ekleyin. Bitirdiğinizde \"%s\" üzerine tıklayın.\n"
+"\n"
+"\"%s\" düğmesine tıklamak o kullanıcı için öntanımlı \"kabuk\"u değiştirmenizi "
+"sağlayacaktır.\n"
+"(Öntanımılı olan bash kabuktur)\n"
+"\n"
+"Kullanıcıları eklemeyi bitirdiğinizde, bilgisayar başladığında kendiliğinden "
+"oturum açacak kullanıcı\n"
+"sorulacaktır. Bu özelliği kullanmak istiyorsanız (ve yerel güvenlik "
+"endişeniz yoksa) istediğiniz\n"
+"kullanıcıyı ve pencere yöneticisini seçin. Sonra \"%s\" üzerine tıklayın. Bu "
+"özelliği kullanmak istemiyorsanız\n"
+"\"%s\" kutusundaki işareti kaldırın."
+
+#: ../help.pm:54
+#, c-format
+msgid "User name"
+msgstr "Kullanıcı adı"
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr "Kullanıcıyı kabul et"
#: ../help.pm:54
#, c-format
@@ -120,7 +142,7 @@ msgstr "Bu özelliği kullanmak istiyor musunuz?"
#: ../help.pm:57
#, fuzzy, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -130,24 +152,24 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Yukarıdakiler, sabit diskinizde bulunan Linux bölümleridir. Genel kullanım\n"
@@ -191,13 +213,13 @@ msgstr ""
#: ../help.pm:88
#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Mandriva Linux kurulum CD'leri bir kaç CD'den oluşur. DrakX seçilen paketin\n"
+"Mageia kurulum CD'leri bir kaç CD'den oluşur. DrakX seçilen paketin\n"
"hangi CD'de olduğunu bilir ve o CD'yi yerleştirmeniz için CD yuvasını açar\n"
"ve size gerekli CD'yi yerleştirmeniz için uyarır."
@@ -205,12 +227,11 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -223,8 +244,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -262,7 +282,7 @@ msgid ""
"megabytes."
msgstr ""
"Bundan sonra sisteminize hangi uygulamaları kuracağınızı belirteceksiniz.\n"
-"Mandriva Linux sisteminde kullanılabilecek binlerce paket vardır ve onları "
+"Mageia sisteminde kullanılabilecek binlerce paket vardır ve onları "
"hep aklınızda tutamazsınız.\n"
"\n"
"CD'den kurulum yapıyorsanız önce elinizde hangi CD'lerin bulunduğunu\n"
@@ -336,10 +356,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -373,8 +393,8 @@ msgstr ""
"\n"
"<ÖNEMLİ> İster bilerek ister belli bir grubun parçası olarak, sunucu\n"
"bölümünden seçtiğiniz hizmetleri gerçekten kullanıp kullanmak istemediğiniz\n"
-"ayrıca sorulacaktır. Mandriva Linux başlatıldığında kurulu olan hizmetlerin\n"
-"herbiri öntanımlı olarak başlatılır. Onlar Mandriva Linux dağıtıma girerken\n"
+"ayrıca sorulacaktır. Mageia başlatıldığında kurulu olan hizmetlerin\n"
+"herbiri öntanımlı olarak başlatılır. Onlar Mageia dağıtıma girerken\n"
"kılavuzlarından güvenli oldukları anlaşılarak seçilmiş bile olsalar,\n"
"dağıtımdan sonra bir takım güvenlik açıkları keşfedilmiş olabilir.\n"
"Bir hizmetin ne sunduğu hakkında bir fikriniz yoksa ya da neden kurmak\n"
@@ -398,16 +418,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Otomatik bağımlılıklar"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-
-#: ../help.pm:192
+#: ../help.pm:185
#, fuzzy, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -479,7 +490,12 @@ msgstr ""
"ayrıca yerel ağınızdaki makinaların zamanlarını sizin makinanızdan\n"
"ayarlamalarını sağlayacak bir zaman sunucusunu da kuracaktır."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr "Donanım saati GMT olarak ayarla"
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Otomatik zaman senkronizyasyonu"
@@ -503,7 +519,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -567,6 +583,12 @@ msgid ""
"monitor connected to your machine. If it is not correct, you can choose\n"
"from this list the monitor which is connected to your computer."
msgstr ""
+"Monitör\n"
+"\n"
+" Normalde kurulum aracı makinenize bağlı olan monitörü kendiliğinden "
+"algılar ve yapılandırır.\n"
+"Doğru ayarlama yapılmamışsa, bilgisayarınıza bağlı olan monitörü bu listeden "
+"seçebilirsiniz."
#: ../help.pm:298
#, c-format
@@ -578,6 +600,13 @@ msgid ""
"able to make changes after the installation). A sample of the chosen\n"
"configuration is shown in the monitor picture."
msgstr ""
+"Çözünürlük\n"
+"\n"
+" Burada ekran kartınız için uygun olan çözünürlükleri ve renk "
+"derinliklerini seçebilirsiniz. İhtiyacınıza\n"
+"en uygun olanını seçin (kurulum sonrasında değişiklik yapabilirsiniz). "
+"Seçilen yapılandırma\n"
+"örneği monitör resminde görüntülenir."
#: ../help.pm:306
#, c-format
@@ -586,9 +615,12 @@ msgid ""
"or without 3D acceleration, you're asked to choose the server which best\n"
"suits your needs."
msgstr ""
+"Ekran kartınız için farklı sunucuların mümkün olduğu durumlarda, 3B "
+"hızlandırma etkin veya devredışı,\n"
+"ihtiyaçlarınıza en uygun sunucuyu seçmeniz istenir."
#: ../help.pm:311
-#, fuzzy, c-format
+#, c-format
msgid ""
"Options\n"
"\n"
@@ -597,49 +629,50 @@ msgid ""
"want to check \"%s\" if your machine is to act as a server, or if you were\n"
"not successful in getting the display configured."
msgstr ""
-"Son olarak açılış sırasında grafik arayüzle başlamak isteyip istemediğiniz\n"
-"sorulacaktır. Yapılandırmanızı denemeyi seçmemiş bile olsanız bu soru yine "
-"de\n"
-"sorulacaktır. Ekranınızı iyi yapılandıramamışsanız ya da makinanızın bir\n"
-"sunucu rolü üstlenmesini seçmişseniz bu soruya \"Hayır\" cevabı vermeniz\n"
-"önerilir."
+"Seçenekler\n"
+"\n"
+" Bu adımlar önyüklemede makinenizin grafiksel arayüze kendiliğinden "
+"geçmesini isteyip istemediğinizi\n"
+"seçmenizi sağlar. Elbette, makineniz bir sunucu olarak çalışacaksa veya "
+"görüntü almayı başaramadıysanız\n"
+"\"%s\" seçeneğini işaretleyebilirsiniz."
#: ../help.pm:319
-#, fuzzy, c-format
+#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -648,15 +681,14 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -669,69 +701,73 @@ msgid ""
"experience. For more instructions on how to use the DiskDrake utility,\n"
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
-"Bu noktada, Mandriva Linux işletim sisteminizi sabit diskinizde\n"
-"nereye kuracağınızı seçmeniz gerekiyor. Diskiniz boşsa, ya da\n"
-"halihazırda bir işletim sistemi diskin tamamını kullanıyorsa\n"
-"diski bölümlendirmeniz gerekmektedir. Temel olarak, bir diski\n"
-"bölümlendirmek, Mandriva Linux sistemini kurabilmek için onu\n"
-"mantıksal olarak bölmek ve böylece boş alan oluşturmak anlamına\n"
+"Bu noktada, Mageia işletim sisteminizi sabit diskinizde nereye kuracağınızı "
+"seçmeniz\n"
+"gerekiyor. Diskiniz boşsa, ya da halihazırda bir işletim sistemi diskin "
+"tamamını kullanıyorsa\n"
+"diski bölümlendirmeniz gerekmektedir. Temel olarak, bir diski "
+"bölümlendirmek, Mageia sistemini\n"
+"kurabilmek için onu mantıksal olarak bölmek ve böylece boş alan oluşturmak "
+"anlamına\n"
"gelir.\n"
"\n"
-"Bölümlendirme işlemi gerellikle geri alınamaz ve zaten kurulu bir\n"
-"işletim sisteminiz var ise bilgi kaybına yol açabilir. Bu işlem, eğer\n"
-"tecrübesizseniz, korkutucu ve stresli bir iş olabilir. Mandriva Linux,\n"
-"bu işlemi oldukça kolaylaştıran bir sihirbaz sunmaktadır.Başlamadan\n"
-"önce lütfen aşağıdaki okumak için zaman ayrın.\n"
+"Bölümlendirme işlemi genellikle geri alınamaz ve zaten kurulu bir işletim "
+"sisteminiz var ise bilgi kaybına yol\n"
+"açabilir. Bu işlem, eğer tecrübesizseniz, korkutucu ve stresli bir iş "
+"olabilir. Şansınıza, DrakX bu işlemi\n"
+"oldukça kolaylaştıran bir sihirbaz sunmaktadır.Başlamadan önce lütfen "
+"aşağıdaki okumak için zaman ayrın.\n"
"\n"
-"Sabit disk yapınıza bağlı olarak, birkaç seçenek mevcut: \n"
+"Sabit disk yapınıza bağlı olarak, birkaç seçenek mevcuttur: \n"
"\n"
-" * \"%s\": bu seçenek boş sabit disk(ler)iniz üzerinde otomatik "
-"bölümlendirme\n"
-"gerçeklerştirir. Bu seçeneği seçerseniz konu hakkında soru sorulmayacak\n"
+" * \"%s\": Bu seçenek boş sabit disk(ler)iniz üzerinde otomatik bölümlendirme "
+"gerçekleştirir. Bu seçeneği\n"
+"seçerseniz konu hakkında soru sorulmayacaktır.\n"
"\n"
-" * \"%s\" sihirbaz sabit diskiniz üstünde bir ya da daha fazla Linux bölümü\n"
-"buldu. Eğer bunları kullanmak istiyorsanız bu seçeneği kullanın. Sonra ki\n"
-"adımda bu bölümler ile ilişkili bağlama noktaları seçmeniz istenecek.\n"
+" * \"%s\": Sihirbaz sabit diskiniz üstünde bir ya da daha fazla Linux bölümü "
+"buldu. Bunları kullanmak istiyorsanız\n"
+"bu seçeneği kullanın. Sonraki adımda bu bölümler ile ilişkili bağlama "
+"noktaları seçmeniz istenecektir.\n"
"Bağlama noktaları öntanımlı olarak seçilir ve genellikle olduğu gibi "
-"bırakmak\n"
-"en iyisidir.\n"
-"\n"
-" * \"%s\": eğer sisteminizde Microsoft Windows kurulu ve tük disk "
-"kapasitesini\n"
-"kullanıyorsa Linux'un kullanabilmesi için yer açmanız gerekecektir. Bunun "
-"için,\n"
-"Microsoft Window disk bölümünü ve bilgileri silebilir (``Tüm Diski Sil''e "
-"bakın)\n"
-"yada Microsoft Windows FAT bölümünüzü yeniden boyutlandırabilirsiniz. Bu\n"
-"işlem sırasında eğer Windows bölümünüzü birleştirmiş ve biçimi FAT ise\n"
-"herhangi bir veri kaybı yaşamazsınız. Verilerinizi yedeklemeniz şiddetle "
-"önerilir.\n"
-"Eğer aynı bilgisayarda hem Mandriva Linux hem de Windows kullanamk\n"
-"istiyorsanız bu seçeneği seçmeniz önerilir.\n"
-"\n"
-" Bu seçeneği seçmeden önce unutmayın ki işlem tamamlandığında Microsoft\n"
-"Windows disk bölümünüz küçülmüş olacak. Yeni yazılımları yüklemek ya da "
-"kişisel\n"
-"verilerinizi saklamak için Microsoft Windows altında daha az boş alanınız "
-"olacak.\n"
-"\n"
-" * \"%s\": Sabit diskinizde bulunan tüm bilgileri silmek ve yeni bir "
-"Mandriva Linux\n"
-"kurulumu yapmak için bu seçeneği seçin. Lütfen bu seçeneği kullanırken "
-"dikkatli\n"
-"olun, çünkü onayladıktan sonra geri alma şansınız bulunmuyor.\n"
-"\n"
-" !! Eğer bu seçeneği seçerseniz sabit diskinizdeki tüm bilgi "
-"silinecektir. !!\n"
-"\n"
-" * \"%s\": Bu seçenek tüm sabit diski silecek ve disk bölümlerini baştan "
-"oluşturacak.\n"
-"Diskinizdeki tüm bilgiler silinecektir.\n"
-"\n"
-" !! Eğer bu seçeneği seçerseniz sabit diskinizdeki tüm bilgileri "
-"kaybedeceksiniz. !!\n"
-"\n"
-" * \"%s\": Sabit diskinizi kendiniz bölümlendirmek istiyorsanız bu seçeneği "
+"bırakmak en iyisidir.\n"
+"\n"
+" * \"%s\": Sisteminizde Microsoft Windows kurulu ve tüm disk alanını "
+"kullanıyorsa GNU/Linux 'un\n"
+"kullanabilmesi için yer açmanız gerekecektir. Bunun için, Microsoft Window "
+"disk bölümünü ve bilgilerini\n"
+"tümüyle silebilir (``Tüm Diski Sil''e bakın) ya da Microsoft Windows FAT "
+"veya NTFS bölümünüzü yeniden\n"
+"boyutlandırabilirsiniz. Bu işlem sırasında eğer Windows bölümünüzü "
+"birleştirmişseniz herhangi bir veri\n"
+"kaybı yaşamazsınız. Verilerinizi yedeklemeniz şiddetle önerilir. Aynı "
+"bilgisayarda hem Mageia hem de\n"
+"Windows kullanmak istiyorsanız bu seçeneği seçmeniz önerilir.\n"
+"\n"
+" Bu seçeneği seçmeden önce unutmayın ki işlem tamamlandığında Microsoft "
+"Windows\n"
+"disk bölümünüz küçülmüş olacak. Yeni yazılımları yüklemek ya da kişisel "
+"verilerinizi saklamak için\n"
+"Microsoft Windows altında daha az boş alanınız olacaktır.\n"
+"\n"
+" * \"%s\": Sabit diskinizde bulunan tüm bilgileri silmek ve yeni bir Mageia "
+"kurulumu yapmak için\n"
+"bu seçeneği seçin. Lütfen bu seçeneği kullanırken dikkatli olun, çünkü "
+"onayladıktan sonra geri alma\n"
+"şansınız bulunmuyor.\n"
+"\n"
+" !! Eğer bu seçeneği seçerseniz sabit diskinizdeki tüm bilgi silinecektir. "
+"!!\n"
+"\n"
+" * \"%s\": Bu seçenek tüm sabit disk alanı Microsoft Windows tarafından "
+"alınmışsa görüntülenir.\n"
+"Bu seçeneği seçmek basitçe disk üzerindeki herşeyi silecek ve en baştan yeni "
+"bir bölümlendirme\n"
+"oluşturacaktır.\n"
+"\n"
+" !! Eğer bu seçeneği seçerseniz sabit diskinizdeki tüm bilgi silinecektir. "
+"!!\n"
+"\n"
+"* \"%s\": Sabit diskinizi kendiniz bölümlendirmek istiyorsanız bu seçeneği "
"seçin.\n"
"Dikkati olun -- oldukça güçlü bir seçenektir ama veri kaybetmek oldukça "
"kolaydır.\n"
@@ -748,7 +784,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Geçerli bölümlendirmeyi kullan"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr "Microsoft Windows® bölümündeki boş alan kullanılsın"
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Tüm disk silinsin"
@@ -791,8 +832,7 @@ msgid ""
"/dev/fd0\"."
msgstr ""
"Buraya kadar geldiyseniz kurulum tamamlanmış ve GNU/Linux sisteminizi\n"
-"kullanmaya hazırsınız demektir. \"TAMAM\" düğmesine tıkladığınızda "
-"sisteminiz\n"
+"kullanmaya hazırsınız demektir. \"TAMAM\" düğmesine tıkladığınızda sisteminiz\n"
"yeniden başlatılacaktır. Hem Windows hem de GNU/Linux kullanımını "
"seçtiyseniz\n"
"makinanızın her açılışında bu sistemlerden biri için tercihinizi\n"
@@ -801,16 +841,14 @@ msgstr ""
"\"Gelişmiş\" düğmesine (Uzman kipinde görünür) tıkladığınızda size iki\n"
"seçenek sunulacaktır:\n"
"\n"
-" * \"Otomatik kurulum disketi oluşturulsun\": yaptığınız kuruluma benzer "
-"bir\n"
+" * \"Otomatik kurulum disketi oluşturulsun\": yaptığınız kuruluma benzer bir\n"
" kurulumu herhangi bir yardım gerekmeksizin otomatik olarak "
"yapılabilmesini\n"
" sağlayacak bir kurulum disketi oluşturabilirsiniz.\n"
"\n"
" Bu seçeneği kullanmaya karar verdiğinizde size iki seçenek sunulacaktır:\n"
"\n"
-" * \"Etkileşimli\": bu sadece disk bölümlemesinin etkileşimli olduğu "
-"yarı\n"
+" * \"Etkileşimli\": bu sadece disk bölümlemesinin etkileşimli olduğu yarı\n"
" otomatik kurulumdur.\n"
"\n"
" * \"Otomatik\": sabit diskin tamamen silinip yeniden yazılması\n"
@@ -823,8 +861,7 @@ msgstr ""
" * \"Paket seçim listesini kaydet\"(*): kurulum sırasında seçtiğiniz\n"
" paketlerin listesi kaydedilir. Bir başka kurulum sırasında disketi\n"
" sürücüye yerleştirdikten sonra [F1] tuşuna bastıktan sonra\n"
-" »linux defcfg=\"floppy\"« yazarak kurulumu yardım ekranına kadar "
-"ilerletin\n"
+" »linux defcfg=\"floppy\"« yazarak kurulumu yardım ekranına kadar ilerletin\n"
"\n"
" (*) Bu seçenek için FAT biçemli bir diskete ihtiyacınız olacak. Bu "
"disketi\n"
@@ -835,7 +872,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Otomatik-kurulum disketi oluştur"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -855,7 +907,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -880,7 +932,7 @@ msgstr ""
"\n"
"Bölümleri biçemlendirmeye hazır olduğunuzda \"Tamam\"'a tıklayın.\n"
"\n"
-"Mandriva Linux sisteminizi kurmak isteyeceğiniz başka bölümler de seçmek\n"
+"Mageia sisteminizi kurmak isteyeceğiniz başka bölümler de seçmek\n"
"isterseniz \"İptal\"'e basın.\n"
"\n"
"\"Gelişmiş\" düğmesine tıkladıktan sonra isterseniz, sabit diskinizindeki\n"
@@ -889,7 +941,7 @@ msgstr ""
#: ../help.pm:437
#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -901,7 +953,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Mandriva Linux kurulumunuz sırasında dağıtımdan sonra güncellenmiş bazı "
+"Mageia kurulumunuz sırasında dağıtımdan sonra güncellenmiş bazı "
"paketler, düzeltmeler ve çözümlenmiş güvenlik unsurlarının olup olmadığını "
"internet bağlantınız üzerinden kontrol edip varsa indirip kurabilir. Çalışan "
"bir internet bağlantınız varsa \"Evet\" seçebilir, yoksa \"Hayır\" seçerek "
@@ -922,7 +974,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -947,21 +999,21 @@ msgstr "Güvenlik Yöneticisi"
#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -977,21 +1029,21 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1008,16 +1060,10 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-"Bu noktada, Mandriva Linux işletim sisteminizi sabit diskinizde nereye\n"
+"Bu noktada, Mageia işletim sisteminizi sabit diskinizde nereye\n"
"kuracağınızı seçmeniz gerekiyor. Bölümler önceki bir kurulumda ya da bir\n"
"başka bölümlendirme aracıyla önceden tanımlanmışsa eski bölümlerinizi\n"
"kullanabilirsiniz. Aksi takdirde, sabit disk bölümlerinin tanımlanması\n"
@@ -1088,21 +1134,38 @@ msgstr ""
"Başka dosya sistemleri hakkında bilgi edinmek için \"Başvuru Kılavuzu"
"\"ndaki\n"
"ext2fs bölümünü okuyunuz.\n"
-"\n"
-"Bir PPC makina üzerine kurulum yapıyorsanız, yaboot önyükleyicisi "
-"tarafından\n"
-"kullanılmak üzere en az 1MB lık küçük bir HFS \"önyükleme\" bölümü "
-"oluşturmak\n"
-"isteyeceksiniz. Bu disk bölümünü biraz daha büyük, örneğin 50MB yaparsanız\n"
-"bir yedek çekirdeğin ve kurtarma açılışı gereksinimleri için ramdisk\n"
-"görüntüsünün saklanacağı kullanışlı bir alan elde edebilirsiniz."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Kaldırılabilir meyda otomatik-bağlanıyor"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Normal/Uzman kipleri arasında geçiş yap"
@@ -1110,37 +1173,37 @@ msgstr "Normal/Uzman kipleri arasında geçiş yap"
#: ../help.pm:536
#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the first\n"
"disk or partition is called \"C:\")."
msgstr ""
-"Sabit diskinizde birden fazla Windows bölümü bulundu. Yeni Mandriva Linux\n"
+"Sabit diskinizde birden fazla Windows bölümü bulundu. Yeni Mageia\n"
"işletim sisteminizi kurmak için hangi bölümün boyutunu değiştirmek\n"
"istiyorsunuz?\n"
"\n"
@@ -1192,23 +1255,22 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
#: ../help.pm:594
@@ -1259,8 +1321,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1312,7 +1373,12 @@ msgstr ""
msgid "Espanol"
msgstr "İspanyol"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, fuzzy, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1394,83 +1460,7 @@ msgstr ""
"Lütfen doğru portu seçiniz. Örneğin, MS Windows'da ki \"COM1\"in karşılığı\n"
"GNU/Linux'ta \"ttyS0\", \"COM2\"nin karşılığı \"ttyS1\"dir."
-#: ../help.pm:691
-#, fuzzy, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"GNU/Linux sisteminizin güvenliği için çok önemli karar noktasındasınız:\n"
-"\"root\" parolasını seçmelisiniz.\n"
-"\"root\" sistem yöneticisidir. Güncellemeler, kullanıcıların eklenmesi,\n"
-"sistemin yapılandırılması, v.s. için en yetkili kullanıcıdır. Kısaca,\n"
-"\"root\" herşeyi yapabilir! Bu nedenle tahmin edilmesi çok zor olan bir\n"
-"parola seçmelisiniz. - DrakX bu parolanın seçim kriterlerinde size yardımcı\n"
-"olarak bu zor kararı kolaylaştıracaktır. Göreceğiniz gibi bir parola\n"
-"vermemeyi de seçebilirsiniz. Fakat tek bir sebepten dolayı bu kararı\n"
-"almamanız sağlanmaya çalışılacaktır: GNU/Linux'un diğer işletim\n"
-"sistemlerinden farkı normal kullanıcılarının sisteme zarar verememelerinin\n"
-"sağlanmış olmasıdır. Sisteme zarar verebilecek tek kullanıcı \"root\"dur.\n"
-"Bu bakımdan sistemde \"root\" kullanıcısı olmak zorlaştırılmalıdır.\n"
-"\n"
-"Parolayı çok uzun ve çok karmaşık yapmayın ki hatırlaması zor olmasın.\n"
-"\n"
-"Parolayı yazarken ekranda görmeyeceksiniz. Bu bakımdan yazdığınızın\n"
-"doğruluğunu ancak yeniden yazarak anlayabilirsiniz. İkincisini yazarken\n"
-"hata yaparsanız DrakX sizi uyaracaktır. Ama hatayı ikisinde de yapar ve\n"
-"farkında olmazsanız bu \"yanlış\" parola ile sisteme giriş yapAMAmak\n"
-"zorunda kalabilirsiniz.\n"
-"\n"
-"Uzman kipte NIS ya da LDAP gibi bir kimlik kanıtlama sunucusuna bağlanıp\n"
-"bağlanmayacağınız sorulacaktır.\n"
-"\n"
-"Ağınızda kimlik sınaması için \"LDAP\" (ya da \"NIS\") protokolü\n"
-"kullanılıyorsa ilgili protokolü seçmelisiniz. Bu konuda bilginiz yoksa\n"
-"ağ yöneticinize danışın.\n"
-"\n"
-"Makinanız herhangi bir yönetimli ağa bağlanmayacaksa, kimlik kanıtlama için\n"
-"\"Yerel dosyalar\"ı seçeceksiniz."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "kimlikleme"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, fuzzy, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1484,7 +1474,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1515,7 +1505,7 @@ msgstr ""
#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1536,11 +1526,11 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Burada kullanacağınız yazdırma sistemini seçeceksiniz. Diğer işletim\n"
-"sistemleri bir seçenek sunarken, Mandriva Linux size iki ayrı seçenek\n"
+"sistemleri bir seçenek sunarken, Mageia size iki ayrı seçenek\n"
"sunmaktadır. İki tip yazdırma sistemide özel yapılandırma türü için en "
"iyidir.\n"
"\n"
@@ -1574,7 +1564,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Uzman"
@@ -1587,7 +1582,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1639,11 +1634,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1661,8 +1651,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1679,14 +1668,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-#: ../help.pm:858
+#: ../help.pm:809
+#, c-format
+msgid "TV card"
+msgstr "TV kartı"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN kartı"
@@ -1697,26 +1691,26 @@ msgid "Graphical Interface"
msgstr "Grafiksel Arabirim"
#: ../help.pm:861
-#, fuzzy, c-format
+#, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
-"Lütfen yeni Mandriva Linux disk bölümünüzü kurmak için silmek istediğiniz\n"
+"Lütfen yeni Mageia disk bölümünüzü kurmak için silmek istediğiniz\n"
"sabit diski seçin. Üzerindeki tüm verilerin yok olacağını ve geriye dönüşün\n"
"mümkün olmayacağını unutmayın!"
#: ../help.pm:866
-#, fuzzy, c-format
+#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be able\n"
+"to recover any data and partitions present on this hard disk drive, including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Bu sabit disk üzerindeki tüm verinin ve bölümlerin silinmesini istiyorsanız\n"
"\"%s\" tuşuna tıklayın. Dikkatli olun, \"%s\" tuşuna tıkladıktan\n"
@@ -1736,3 +1730,92 @@ msgstr "Sonraki ->"
msgid "<- Previous"
msgstr "<- Önceki"
+#, fuzzy
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "GNU/Linux sisteminizin güvenliği için çok önemli karar noktasındasınız:\n"
+#~ "\"root\" parolasını seçmelisiniz.\n"
+#~ "\"root\" sistem yöneticisidir. Güncellemeler, kullanıcıların eklenmesi,\n"
+#~ "sistemin yapılandırılması, v.s. için en yetkili kullanıcıdır. Kısaca,\n"
+#~ "\"root\" herşeyi yapabilir! Bu nedenle tahmin edilmesi çok zor olan bir\n"
+#~ "parola seçmelisiniz. - DrakX bu parolanın seçim kriterlerinde size "
+#~ "yardımcı\n"
+#~ "olarak bu zor kararı kolaylaştıracaktır. Göreceğiniz gibi bir parola\n"
+#~ "vermemeyi de seçebilirsiniz. Fakat tek bir sebepten dolayı bu kararı\n"
+#~ "almamanız sağlanmaya çalışılacaktır: GNU/Linux'un diğer işletim\n"
+#~ "sistemlerinden farkı normal kullanıcılarının sisteme zarar "
+#~ "verememelerinin\n"
+#~ "sağlanmış olmasıdır. Sisteme zarar verebilecek tek kullanıcı \"root"
+#~ "\"dur.\n"
+#~ "Bu bakımdan sistemde \"root\" kullanıcısı olmak zorlaştırılmalıdır.\n"
+#~ "\n"
+#~ "Parolayı çok uzun ve çok karmaşık yapmayın ki hatırlaması zor olmasın.\n"
+#~ "\n"
+#~ "Parolayı yazarken ekranda görmeyeceksiniz. Bu bakımdan yazdığınızın\n"
+#~ "doğruluğunu ancak yeniden yazarak anlayabilirsiniz. İkincisini yazarken\n"
+#~ "hata yaparsanız DrakX sizi uyaracaktır. Ama hatayı ikisinde de yapar ve\n"
+#~ "farkında olmazsanız bu \"yanlış\" parola ile sisteme giriş yapAMAmak\n"
+#~ "zorunda kalabilirsiniz.\n"
+#~ "\n"
+#~ "Uzman kipte NIS ya da LDAP gibi bir kimlik kanıtlama sunucusuna bağlanıp\n"
+#~ "bağlanmayacağınız sorulacaktır.\n"
+#~ "\n"
+#~ "Ağınızda kimlik sınaması için \"LDAP\" (ya da \"NIS\") protokolü\n"
+#~ "kullanılıyorsa ilgili protokolü seçmelisiniz. Bu konuda bilginiz yoksa\n"
+#~ "ağ yöneticinize danışın.\n"
+#~ "\n"
+#~ "Makinanız herhangi bir yönetimli ağa bağlanmayacaksa, kimlik kanıtlama "
+#~ "için\n"
+#~ "\"Yerel dosyalar\"ı seçeceksiniz."
+
+#~ msgid "authentication"
+#~ msgstr "kimlikleme"
diff --git a/perl-install/install/help/po/uk.po b/perl-install/install/help/po/uk.po
index b12515d03..548f3b3be 100644
--- a/perl-install/install/help/po/uk.po
+++ b/perl-install/install/help/po/uk.po
@@ -1,38 +1,40 @@
# translation of DrakX-uk.po to ukrainian
# translation of DrakX.po to ukrainian
-# $Id: uk.po 26602 2006-04-22 07:43:48Z fwang $
# Copyright (C) 2000,2003, 2004, 2005 Free Software Foundation, Inc.
+#
# Dmytro Kovalov <kov@tokyo.email.ne.jp>, 2000.
# Taras Boychuk <btr1@torba.com>, 2003, 2004.
# Taras Boychuk <btr1@mail.ru>, 2004, 2003.
# Taras Boychuk <btr1@ukrpost.net>, 2004, 2005.
-#
+# Yuri Chornoivan <yurchor@ukr.net>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: DrakX-uk\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
-"PO-Revision-Date: 2005-03-01 01:29+0200\n"
-"Last-Translator: Taras Boychuk <btr1@ukrpost.net>\n"
-"Language-Team: ukrainian <uk@li.org>\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
+"PO-Revision-Date: 2012-06-29 16:20+0300\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Ukrainian <kde-i18n-uk@kde.org>\n"
+"Language: uk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Lokalize 1.5\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#: ../help.pm:14
#, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
-"Перш, ніж продовжувати, прочитайте уважно умови ліцензії. Вона\n"
-"стосується всього дистрибутиву Мандріва лінакс. Якщо Ви\n"
-"погоджуєтесь з умовами ліцензії, помітьте \"%s\". Якщо ні,\n"
-"то натисніть \"%s\", щоб перезавантажити комп'ютер."
+"Перш ніж продовжувати, прочитайте уважно умови ліцензії. Вона\n"
+"стосується всього дистрибутива Mageia. Якщо ви\n"
+"погоджуєтесь з умовами ліцензії, позначте пункт «%s». Якщо ні,\n"
+"натисніть «%s», щоб перезавантажити комп'ютер."
#: ../help.pm:20
#, c-format
@@ -76,43 +78,53 @@ msgid ""
msgstr ""
"GNU/Linux - багатокористувацька система, це означає, що кожен з\n"
"користувачів може мати свої власні установки, власні файли, тощо. Щоб\n"
-"більше дізнатися про це, Ви можете прочитати Підручник користувача з\n"
+"більше дізнатися про це, ви можете прочитати Підручник користувача з\n"
"системи. Але на відміну від користувача Root, який є адміністратором\n"
-"системи, користувачі, яких Ви будете створювати на цьому кроці, не\n"
+"системи, користувачі, яких ви будете створювати на цьому кроці, не\n"
"мають права змінювати нічого в системі, крім своїх власних файлів і\n"
-"власної конфігурації. Ви маєте створити рахунок для хоча б одного\n"
-"єдиного користувача - для самого себе. Ви будете користуватися цим\n"
+"власної конфігурації. ви маєте створити рахунок для хоча б одного\n"
+"єдиного користувача - для самого себе. ви будете користуватися цим\n"
"рахунком для того, щоб виконувати щоденні задачі. І хоча це і дуже\n"
"зручно реєструватись в системі як Root, але одночасно це і дуже\n"
"небезпечно! Найменша помилка може призвести до того, що система буде\n"
-"неробочою. Якщо Ви помилитесь як звичайний користувач, Ви можете,\n"
+"неробочою. Якщо ви помилитесь як звичайний користувач, ви можете,\n"
"звичайно, втратити деякі свої дані, але не всю систему.\n"
"\n"
-"Перше поле запитує Ваше справжнє ім'я. Звичайно ж, воно не обов'язкове,\n"
-"Ви можете надрукувати все, що завгодно. DrakX візьме перше слово з цього\n"
-"поля і скопіює його в поле \"%s\", яке є ім'ям користувача, під яким "
+"Перше поле запитує ваше справжнє ім'я. Звичайно ж, воно не обов'язкове,\n"
+"ви можете надрукувати все, що завгодно. DrakX візьме перше слово з цього\n"
+"поля і скопіює його в поле «%s», яке є ім'ям користувача, під яким "
"користувач\n"
-"буде реєструватись у системі. Якщо захочете, Ви можете змінити це ім'я. \n"
-"Потім Вам потрібно ввести пароль. З міркувань безпеки системи пароль\n"
+"буде реєструватись у системі. Якщо захочете, ви можете змінити це ім'я. \n"
+"Потім вам потрібно ввести пароль. З міркувань безпеки системи пароль\n"
"звичайного (не root) користувача не є таким критичним, як пароль \n"
"адміністратора, але все одно немає причин для того, щоб нехтувати ним,\n"
"залишаючи його порожнім або надто простим: врешті-решт, це загрожує\n"
"Вашим власним файлам. \n"
"\n"
-"Після того, як Ви натиснете кнопку \"%s\", Ви можете додати ще багато \n"
+"Після того, як ви натиснете кнопку «%s», ви можете додати ще багато \n"
"інших користувачів. Додайте користувача для кожного з Ваших друзів:\n"
-"для тата й сестри, наприклад. Після того, як Ви закінчили додавати\n"
-"користувачів, натисніть \"%s\".\n"
+"для тата й сестри, наприклад. Після того, як ви закінчили додавати\n"
+"користувачів, натисніть «%s».\n"
"\n"
-"Натиснувши на кнопку \"%s\", Ви зможете змінити типову командну оболонку\n"
+"Натиснувши на кнопку «%s», ви зможете змінити типову командну оболонку\n"
"для кожного користувача (типова оболонка - bash). \n"
"\n"
-"Коли Ви закінчите додавати користувачів, Вам буде запропоновано вибрати\n"
-"користувача, який буде автоматично реєструватися в системі при стартуванні\n"
-"комп'ютера. Якщо така можливість Вас цікавить (і не надто турбує про\n"
+"Коли ви закінчите додавати користувачів, вам буде запропоновано вибрати\n"
+"користувача, який буде автоматично реєструватися в системі при запуску\n"
+"комп'ютера. Якщо така можливість вас цікавить (і не надто турбує про\n"
"локальну безпеку), виберіть користувача і менеджер вікон, тоді натисніть "
"на \n"
-"\"%s\". Якщо Вас така можливість не цікавить, відмініть вибір \"%s\"."
+"«%s». Якщо вас така можливість не цікавить, скасуйте вибір «%s»."
+
+#: ../help.pm:54
+#, c-format
+msgid "User name"
+msgstr "Ім'я користувача"
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr "Прийняти користувача"
#: ../help.pm:54
#, c-format
@@ -122,7 +134,8 @@ msgstr "Ви хочете використовувати цю можливіст
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -132,45 +145,49 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Тут перелічені вже існуючі розділи, знайдені на Вашому твердому\n"
-"диску. Ви можете залишити вибір, зроблений Помічником, він підходить\n"
-"для більшості випадків встановлення. Якщо Ви робите якісь зміни, то "
+"диску. ви можете залишити вибір, зроблений Помічником, він підходить\n"
+"для більшості випадків встановлення. Якщо ви робите якісь зміни, то "
"потрібно\n"
"як мінімум створити кореневу файлову систему (/). Не виділяйте\n"
-"для цього занадто малий розділ, бо інакше Ви не зможете встановити\n"
-"всі потрібні Вам програми. Якщо Ви бажаєте зберігати всі свої дані в\n"
+"для цього занадто малий розділ, бо інакше ви не зможете встановити\n"
+"всі потрібні вам програми. Якщо ви бажаєте зберігати всі свої дані в\n"
"окремому розділі, потрібно буде також створити розділ \"/home\" (тільки у\n"
-"випадку, якщо Ви маєте більше одного розділа для Лінакса). \n"
+"випадку, якщо ви маєте більше одного розділу для Linux). \n"
"\n"
"Кожен розділ показано в такому вигляді: \"Назва\", \"Розмір\".\n"
"\n"
-"Назва розшифровується так: \"тип твердого диску\", \"номер твердого\n"
+"Назва розшифровується так: \"тип жорсткого диска\", \"номер твердого\n"
"диску\", \"номер розділу на диску\", (наприклад: \"hda1\").\n"
"\n"
-"\"Тип твердого диску\" - це \"hd\", якщо Ви маєте диск типу IDE, і \"sd\",\n"
-"якщо Ви маєте твердий диск типу SCSI.\n"
+"\"Тип жорсткого диска\" - це \"hd\", якщо ви маєте диск типу IDE, і \"sd\",\n"
+"якщо ви маєте твердий диск типу SCSI.\n"
"\n"
-"\"Номер твердого диску\" - це завжди літера після \"hd\" чи \"sd\". Для\n"
+"\"Номер жорсткого диска\" - це завжди літера після \"hd\" чи \"sd\". Для\n"
"дисків типу IDE це:\n"
"\n"
" * \"a\" - головний диск (master) на першому контролері IDE,\n"
@@ -181,35 +198,33 @@ msgstr ""
"\n"
" * \"d\" - вторинний диск на другому контролері IDE.\n"
"\n"
-"Для SCSI дисків \"a\" означає \"головний диск\", \"b\" - другорядний диск, "
-"і\n"
-"т.д. ..."
+"Для SCSI дисків \"a\" означає \"головний диск\", \"b\" - другорядний диск\n"
+"тощо."
#: ../help.pm:88
#, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Дистрибутив Мандріва лінакс розміщений на кількох компакт-дисках.\n"
+"Дані дистрибутива Mageia розміщено на кількох компакт-дисках.\n"
"Якщо вибраний пакунок знаходиться на іншому диску, DrakX викине \n"
"поточний компакт-диск і попросить вставити потрібний. Якщо у вас немає\n"
-"потрібного диску під руками, просто натисніть \"%s\", пакунок не буде\n"
+"потрібного диску під руками, просто натисніть «%s», пакунок не буде\n"
"встановлено."
#: ../help.pm:95
#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -222,8 +237,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -260,59 +274,59 @@ msgid ""
"command-line interface. The total size of this installation is about 65\n"
"megabytes."
msgstr ""
-"Тепер час вибрати, які програми Ви хочете встановити в своїй\n"
-"системі. Мандріва лінакс має тисячі програмних пакунків, і щоб спростити\n"
+"Тепер час вибрати, які програми ви хочете встановити в своїй\n"
+"системі. Mageia має тисячі програмних пакунків, і щоб спростити\n"
"керування ними, пакунки розміщено в групи подібних програм.\n"
"\n"
"Пакунки розсортовано в групи відповідно до способу використання Вашої\n"
-"машини. Мандріва Лінакс має чотири попередньо налаштовані типи\n"
-"встановлення. Ви можете комбінувати і підбирати програми з різних\n"
+"машини. Mageia має чотири попередньо налаштовані типи\n"
+"встановлення. ви можете комбінувати і підбирати програми з різних\n"
"груп, і встановлення типу \"Робоча станція\"' може мати програми із групи\n"
"пакунків \"Розробник\".\n"
"\n"
-" * \"%s\": якщо Ви збираєтесь використовувати свою машину як робочу\n"
+" * «%s»: якщо ви збираєтесь використовувати свою машину як робочу\n"
"станцію, виберіть одну чи більше програм з цієї групи.\n"
"\n"
-" * \"%s\": якщо Ви збираєтесь використовувати цю машину для\n"
+" * «%s»: якщо ви збираєтесь використовувати цю машину для\n"
"програмування, виберіть відповідні пакунки з цієї групи. Спеціальна група\n"
"\"СБЛ\" налаштує систему таким чином, що вона міститиме якнайповнішу\n"
-"специфікацію Стандартної бази Лінакса.\n"
+"специфікацію Стандартної бази Linux.\n"
"\n"
" При виборі групи \"СБЛ\" встановиться ядро серії \"2.4\", на відміну від\n"
"\"2.6\", яке встановлюється типово. Ця зроблено для 100%% впевненості у\n"
-"сумісності з \"СБЛ\". Проте, якщо Ви не виберете групу \"СБЛ\", всеодно\n"
+"сумісності з \"СБЛ\". Проте, якщо ви не виберете групу \"СБЛ\", всеодно\n"
"отримаєте систему майже 100%%-сумісну з \"СБЛ\".\n"
"\n"
-" * \"%s\": якщо машина призначається для використання в якості\n"
-"сервера, виберіть додаткові сервіси, які Ви хочете встановити на своїй\n"
+" * «%s»: якщо машина призначається для використання в якості\n"
+"сервера, виберіть додаткові сервіси, які ви хочете встановити на своїй\n"
"машині.\n"
"\n"
-" * \"%s\": тут Ви можете вибрати графічне середовище собі до вподоби.\n"
-"Виберіть хоча б одне, якщо Ви хочете мати графічний інтерфейс.\n"
+" * «%s»: тут ви можете вибрати графічне середовище собі до вподоби.\n"
+"Виберіть хоча б одне, якщо ви хочете мати графічний інтерфейс.\n"
"\n"
"При пересуванні курсора над назвою групи буде висвічуватися текст із\n"
"коротким поясненням про групу.\n"
"\n"
-"Ви можете помітити \"%s\", що може використовуватися при добрих\n"
-"знаннях пакунків, або якщо Ви хочете мати повний контроль над тим,\n"
+"ви можете помітити «%s», що може використовуватися при добрих\n"
+"знаннях пакунків, або якщо ви хочете мати повний контроль над тим,\n"
"що встановлюєте.\n"
"\n"
-"Якщо Ви почали встановлення в режимі \"%s\", можете зняти вибір усіх\n"
+"Якщо ви почали встановлення в режимі «%s», можете зняти вибір усіх\n"
"груп і не встановлювати жодних нових пакунків. Це можна\n"
"використовувати при відновленні або поновленні системи.\n"
"\n"
-"Якщо Ви зняли вибір усіх груп під час підготовки звичайного\n"
+"Якщо ви зняли вибір усіх груп під час підготовки звичайного\n"
"встановлення (на відміну від поновлення), появиться діалогове\n"
"вікно з різними параметрами для мінімального встановлення:\n"
"\n"
-" * \"%s\":встановити найменшу можливу кількість пакунків, щоб мати\n"
+" * «%s»:встановити найменшу можливу кількість пакунків, щоб мати\n"
"працюючу графічну стільницю.\n"
"\n"
-" * \"%s\": встановлює основну систему плюс основні інструменти і їх\n"
+" * «%s»: встановлює основну систему плюс основні інструменти і їх\n"
"документацію. Цей спосіб використовується для встановлення сервера.\n"
"\n"
-" * \"%s\": встановить абсолютно найменшу кількість пакунків, необхідних,\n"
-"щоб отримати працюючу систему Лінакс. При цьому встановленні Ви\n"
+" * «%s»: встановить абсолютно найменшу кількість пакунків, необхідних,\n"
+"щоб отримати працюючу систему Linux. При цьому встановленні Ви\n"
"будете мати тільки інтерфейс командного рядка. Загальний розмір цього\n"
"встановлення становить біля 65 мегабайтів."
@@ -345,10 +359,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -368,28 +382,28 @@ msgid ""
"another installation. See the second tip of the last step on how to create\n"
"such a floppy."
msgstr ""
-"Якщо Ви вказали програмі встановлення, що хочете мати індивідуальний\n"
-"вибір пакунків, Вам буде показано повне дерево пакунків, зібраних за\n"
-"групами і підгрупами. Переглядаючи дерево, Ви зможете вибрати повні\n"
+"Якщо ви вказали програмі встановлення, що хочете мати індивідуальний\n"
+"вибір пакунків, вам буде показано повне дерево пакунків, зібраних за\n"
+"групами і підгрупами. Переглядаючи дерево, ви зможете вибрати повні\n"
"групи, підгрупи та окремі пакунки.\n"
"\n"
-"Кожного разу, коли Ви вибираєте пакунок в дереві, справа з'являється\n"
+"Кожного разу, коли ви вибираєте пакунок в дереві, справа з'являється\n"
"підказка про призначення пакунка.\n"
"\n"
"!! Якщо було вибрано серверний пакунок, чи то шляхом спеціального\n"
"вибору індивідуального пакунка, чи він є складовою частиною групи\n"
-"пакунків, Вам буде задане запитання, чи Ви справді бажаєте встановити\n"
-"ці сервери. В Мандріва лінакс всі встановлені сервери автоматично\n"
+"пакунків, вам буде задане запитання, чи ви справді бажаєте встановити\n"
+"ці сервери. В Mageia всі встановлені сервери автоматично\n"
"запускаються при завантаженні системи. Навіть, якщо на час придбання\n"
"системи не було відомо жодних проблем з безпекою даних серверів,\n"
"можливо, що після встановлення системи такі проблеми буде виявлено.\n"
-"Якщо Ви не знаєте призначення конкретного сервера або з якою метою\n"
-"його встановлено, натисніть \"%s\". Якщо Ви натиснете \"%s\", буде\n"
+"Якщо ви не знаєте призначення конкретного сервера або з якою метою\n"
+"його встановлено, натисніть «%s». Якщо ви натиснете «%s», буде\n"
"встановлено перелічені сервери і вони будуть стартувати автоматично під\n"
"час завантаження !!\n"
"\n"
-"Параметр \"%s\" використовується, щоб заборонити діалог попередження,\n"
-"який появляється, як тільки програма встановлення автоматично вибирає\n"
+"Параметр «%s» використовується, щоб заборонити показ вікна попередження,\n"
+"яке буде з’являється, щойно програма встановлення автоматично вибирає\n"
"пакунки для задоволення залежностей. Деякі пакунки мають відношення\n"
"до інших так, що встановлення пакунка вимагає, щоб інші програми також були\n"
"встановлені. Програма встановлення може визначити, які пакунки необхідні\n"
@@ -407,20 +421,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Автоматичні залежності"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": натиснення кнопки \"%s\" викликає Помічника налаштування\n"
-"друкарки. Зверніться до відповідного розділу \"Starter Guide\" для\n"
-"додаткової інформації про встановлення нової друкарки. Показаний\n"
-"там інтерфейс подібний до того, що використовується при встановленні."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -448,14 +449,14 @@ msgstr ""
"запускатися при старті системи.\n"
"\n"
"При виборі служби появляється короткий текст з поясненням про неї.\n"
-"Проте, якщо Ви не впевнені, чи потрібно використовувати якусь службу,\n"
+"Проте, якщо ви не впевнені, чи потрібно використовувати якусь службу,\n"
"залишіть запропонований вибір.\n"
"\n"
-"!! Будьте особливо уважними, якщо Ви збираєтесь використовувати цю\n"
+"!! Будьте особливо уважними, якщо ви збираєтесь використовувати цю\n"
"систему як сервер: можливо, не потрібно стартувати служби, які Вам\n"
"не потрібні. Пам'ятайте, будь ласка, що деякі увімкнені служби можуть\n"
"бути небезпечними на сервері. Одним словом, вибирайте тільки ті служби,\n"
-"які Вам дійсно необхідні. !!"
+"які вам дійсно необхідні. !!"
#: ../help.pm:209
#, c-format
@@ -473,21 +474,26 @@ msgid ""
"choose a time server located near you. This option actually installs a time\n"
"server which can be used by other machines on your local network as well."
msgstr ""
-"GNU/Linux оперує часом по GMT (середній час по Ґрінвічу) і переводить\n"
-"його в місцевий час відповідно до часового поясу, який Ви вказали.\n"
-"Якщо годинник на Вашій материнській платі встановлено в локальний\n"
-"час, Ви можете відмінити \"%s\", що дасть змогу GNU/Linux знати, що\n"
+"GNU/Linux оперує часом GMT (середній час за Гринвічем) і переводить\n"
+"його в місцевий час відповідно до часового поясу, який ви вказали.\n"
+"Якщо годинник на вашій материнській платі встановлено в локальний\n"
+"час, ви можете відмінити «%s», що дасть змогу GNU/Linux знати, що\n"
"системний годинник і апаратний годинник встановлені на один часовий\n"
"пояс. Це використовується, коли машина також може завантажуватися\n"
"в іншу операційну систему.\n"
"\n"
-"Параметр \"%s\" автоматично наводить годинник шляхом під'єднання до\n"
-"віддаленого серверу часу в Інтернеті. Щоб ця можливість працювала, Ви\n"
-"повинні мати працююче з'єднання з Інтернетом. Найкраще вибрати сервер\n"
-"часу, розташований біля Вас. Цей параметр встановлює сервер часу, який\n"
-"також може використовуватися іншими машинами у Вашій місцевій мережі."
+"Параметр «%s» автоматично наводить годинник шляхом під'єднання до\n"
+"віддаленого серверу часу в інтернеті. Щоб ця можливість працювала, Ви\n"
+"повинні мати працююче з'єднання з інтернетом. Найкраще вибрати сервер\n"
+"часу, розташований біля вас. Цей параметр встановлює сервер часу, який\n"
+"також може використовуватися іншими машинами у вашій місцевій мережі."
+
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr "Апаратний годинник налаштовано на Гринвічський час"
-#: ../help.pm:220
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Автоматична синхронізація часу"
@@ -508,19 +514,19 @@ msgstr ""
"Графічна карта\n"
"\n"
" Програма встановлення в нормальному режимі автоматично знаходить\n"
-"і налаштовує графічну карту, встановлену на Вашій машині. Якщо цього не\n"
-"відбувається, Ви можете вибрати із списку карту, яку Ви встановили.\n"
+"і налаштовує графічну карту, встановлену на вашій машині. Якщо цього не\n"
+"відбувається, ви можете вибрати із списку карту, яку ви встановили.\n"
"\n"
-" У випадку, якщо Ваша карта підтримує різні сервери з або без\n"
-"3D-прискорення, Вам буде надана можливість вибрати сервер, який найбільше\n"
-"Вам підходить."
+" У випадку, якщо ваша карта підтримує різні сервери з або без\n"
+"3D-прискорення, вам буде надано можливість вибрати сервер, який найбільше\n"
+"вам підходить."
#: ../help.pm:234
#, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -576,19 +582,19 @@ msgid ""
msgstr ""
"X (для системи X Window) є серцем графічного інтерфейсу GNU/Linux,\n"
"від якого залежать всі графічні середовища (KDE, GNOME, AfterStep,\n"
-"WindowMaker, і т.і.), пов'язані з Мандріва лінакс.\n"
+"WindowMaker тощо), пов'язані з Mageia.\n"
"\n"
-"Вам буде представлено список різних параметрів для налаштування,\n"
+"вам буде представлено список різних параметрів для налаштування,\n"
"щоб отримати оптимальний графічний дисплей.\n"
"\n"
"Графічна карта\n"
"\n"
" Програма встановлення автоматично визначає і налаштовує графічну\n"
-"карту, встановлену в машину. Якщо вона визначена неправильно, Ви можете\n"
+"карту, встановлену в машину. Якщо вона визначена неправильно, ви можете\n"
"вибрати із списку карту, яка дійсно встановлена.\n"
"\n"
-" У випадку, якщо Ваша карта підтримує різні сервери з або без 3D\n"
-"прискоренням, буде запропоновано вибрати сервер, який Вам найбільше\n"
+" У випадку, якщо ваша карта підтримує різні сервери з або без 3D\n"
+"прискоренням, буде запропоновано вибрати сервер, який вам найбільше\n"
"підходить.\n"
"\n"
"\n"
@@ -596,16 +602,16 @@ msgstr ""
"Монітор\n"
"\n"
" Програма встановлення автоматично визначає і налаштовує монітор,\n"
-"під'єднаний до Вашої машини. Якщо це зроблено неправильно, Ви можете\n"
-"вибрати із списку монітор, який дійсно під'єднано до Вашого комп'ютера.\n"
+"під'єднаний до Вашої машини. Якщо це зроблено неправильно, ви можете\n"
+"вибрати із списку монітор, який дійсно під'єднано до вашого комп'ютера.\n"
"\n"
"\n"
"\n"
"Роздільна здатність\n"
"\n"
-" Тут Ви можете вибрати роздільну здатність і кількість кольорів, які\n"
+" Тут ви можете вибрати роздільну здатність і кількість кольорів, які\n"
"підтримує Ваше обладнання. Підберіть величини, які найбільше Вас\n"
-"влаштовують (Ви матимите змогу їх змінити пізніше). Зразок вибраного\n"
+"влаштовують (ви матимете змогу їх змінити пізніше). Зразок вибраного\n"
"налаштування буде показано на моніторі.\n"
"\n"
"\n"
@@ -615,20 +621,20 @@ msgstr ""
" В залежності від обладнання цього пункту може не бути.\n"
"\n"
" Система спробує відкрити графічний екран з вибраною роздільністю.\n"
-"Якщо Ви зможете побачити повідомлення під час тесту і відповісте \"%s\",\n"
-"DrakX перейде до наступного кроку. Якщо Ви не зможете бачити\n"
+"Якщо ви зможете побачити повідомлення під час тесту і відповісте «%s»,\n"
+"DrakX перейде до наступного кроку. Якщо ви не зможете бачити\n"
"повідомлення, це означатиме, що певна частина автоматично визначеної\n"
"конфігурації неправильна, тест автоматично завершиться через 12\n"
-"секунд і Ви повернетесь назад в меню. Змінюйте налаштування, поки\n"
+"секунд і ви повернетесь назад в меню. Змінюйте налаштування, поки\n"
"не отримаєте коректний графічний дисплей.\n"
"\n"
"\n"
"\n"
"Параметри\n"
"\n"
-" Тут Ви можете вибрати, чи хочете Ви, щоб Ваша машина автоматично\n"
+" Тут ви можете вибрати, чи хочете Ви, щоб ваша машина автоматично\n"
"перемикалася в графічний інтерфейс при завантаженні. Зрозуміло, що\n"
-"Ви захочете вибрати \"%s\", якщо Ваша машина є сервером, або якщо Ви\n"
+"ви захочете вибрати «%s», якщо ваша машина є сервером, або якщо Ви\n"
"не змогли успішно налаштувати дисплей."
#: ../help.pm:291
@@ -643,7 +649,7 @@ msgstr ""
"Монітор\n"
"\n"
" Програма встановлення звичайно автоматично виявляє і налаштовує монітор,\n"
-"під'єднаний до Вашої машини. Якщо вона це зробила неправильно, Ви можете\n"
+"під'єднаний до Вашої машини. Якщо вона це зробила неправильно, ви можете\n"
"вибрати правильний монітор з цього списку."
#: ../help.pm:298
@@ -658,8 +664,8 @@ msgid ""
msgstr ""
"Роздільна здатність\n"
"\n"
-" Тут Ви можете вибрати роздільну здатність і глибину кольору.\n"
-"Виберіть величини, які Вас найбільше влаштовують (Ви зможете\n"
+" Тут ви можете вибрати роздільну здатність і глибину кольору.\n"
+"Виберіть величини, які Вас найбільше влаштовують (ви зможете\n"
"їх змінити після встановлення). Зразок вибраного налаштування\n"
"буде показано на моніторі."
@@ -670,8 +676,8 @@ msgid ""
"or without 3D acceleration, you're asked to choose the server which best\n"
"suits your needs."
msgstr ""
-"У випадку, якщо Ваша карта підтримує різні сервери, з або без 3D\n"
-"прискоренням, Вам буде запропоновано вибрати сервер, який Вам\n"
+"У випадку, якщо ваша карта підтримує різні сервери, з або без 3D\n"
+"прискоренням, вам буде запропоновано вибрати сервер, який Вам\n"
"найбільше підходить."
#: ../help.pm:311
@@ -687,46 +693,50 @@ msgstr ""
"Параметри\n"
"\n"
" Тут можна вказати, чи хочете Ви, щоб графічний інтерфейс вмикався\n"
-"автоматично при завантаженні системи. Вам потрібно вибрати \"%s\", якщо\n"
-"Ваша машина буде працювати сервером, або якщо Ви не змогли успішно\n"
+"автоматично при завантаженні системи. вам потрібно вибрати «%s», якщо\n"
+"ваша машина буде працювати сервером, або якщо ви не змогли успішно\n"
"налаштувати дисплей."
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -735,15 +745,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -756,67 +766,67 @@ msgid ""
"experience. For more instructions on how to use the DiskDrake utility,\n"
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
-"Тепер потрібно вирішити, де саме Ви б хотіли встановити систему\n"
-"Мандріва лінакс на твердому диску. Якщо твердий диск порожній, або\n"
+"Тепер потрібно вирішити, де саме ви б хотіли встановити систему\n"
+"Mageia на твердому диску. Якщо твердий диск порожній, або\n"
"якщо існуюча операційна система використовує весь простір, Вам\n"
"потрібно буде перерозподілити диск. Фактично перерозподіл твердого\n"
"диску полягає в логічному його розділенні, щоб створити місце для\n"
-"встановлення Мандріва Лінакса.\n"
+"встановлення Mageiaа.\n"
"\n"
-"Через те, що процес перерозбиття твердого диску звичайно є\n"
+"Через те, що процес перерозбиття твердого диска звичайно є\n"
"незворотнім і може призвести до втрати даних, якщо іншу операційну\n"
-"систему вже було встановлено, ця операція може бути відлякуючою\n"
-"і стресовою, якщо Ви є недосвідченим користувачем. На щастя, DrakX\n"
+"систему вже було встановлено, ця операція може видатися загрозливою\n"
+"і стресовою, якщо ви є недосвідченим користувачем. На щастя, DrakX\n"
"має помічника, який спрощує цей процес. Перед продовженням цього\n"
"кроку прочитайте до кінця цього розділу і, що головне, приділіть трохи "
"часу.\n"
"\n"
-"В залежності від конфігурації Вашого твердого диску можливі кілька \n"
+"В залежності від конфігурації вашого жорсткого диска можливі кілька \n"
"варіантів продовження:\n"
"\n"
-" * \"%s\". Цей режим виконує автоматичне розбиття на розділи Вашого\n"
-"порожнього диску (дисків). Якщо Ви вибрали цю команду, інших\n"
+" * «%s». Цей режим виконує автоматичне розбиття на розділи Вашого\n"
+"порожнього диску (дисків). Якщо ви вибрали цю команду, інших\n"
"запитань до Вас вже не буде.\n"
"\n"
-" * \"%s\". Помічник виявив один або більше розділів Лінакс на Вашому\n"
-"твердому диску. Якщо Ви хочете використати їх, виберіть цей режим.\n"
-"Тоді Вам буде запропоновано вказати відповідні до кожного розділу точки\n"
+" * «%s». Помічник виявив один або більше розділів Linux на Вашому\n"
+"твердому диску. Якщо ви хочете використати їх, виберіть цей режим.\n"
+"Тоді вам буде запропоновано вказати відповідні до кожного розділу точки\n"
"монтування. Попередні точки монтування будуть показані типово і у\n"
"більшості випадків залишити їх без змін буде прийнятним варіантом.\n"
"\n"
-" * \"%s\". Якщо на Вашому твердому диску встановлено Microsoft Windows\n"
-"і він займає весь простір на ньому, Вам потрібно буде створити вільне\n"
-"місце для Лінакса. Щоб зробити це, Ви можете стерти всі розділи Microsoft\n"
+" * «%s». Якщо на Вашому твердому диску встановлено Microsoft Windows\n"
+"і він займає весь простір на ньому, вам потрібно буде створити вільне\n"
+"місце для Linux. Щоб зробити це, ви можете стерти всі розділи Microsoft\n"
"Windows і дані (дивись команду \"Стерти весь диск\"), або змінити розмір\n"
"розділу Microsoft Windows FAT або NTFS. Зміна розміру буде здійснена\n"
"без втрати будь яких даних, які знаходяться на попередньо\n"
"дефрагментованому розділі Windows. Дуже рекомендується зробити\n"
"резервну копію Ваших даних. Використання цього режиму\n"
-"рекомендується, якщо Ви хочете використовувати Мандріва Лінакс \n"
+"рекомендується, якщо ви хочете використовувати Mageia \n"
"і Майкрософт Віндовс на одному комп'ютері.\n"
"\n"
" Перед вибором цього режиму зрозумійте, що після виконання цієї\n"
"процедури розмір розділу Microsoft Windows стане меншим, ніж до\n"
-"цього. Ви будете мати менше вільного місця у Microsoft Windows на\n"
+"цього. ви будете мати менше вільного місця у Microsoft Windows на\n"
"зберігання даних і встановлення нових програм.\n"
"\n"
-" * \"%s\". Якщо Ви хочете стерти всі дані і всі розділи, які є на твердому\n"
-"диску і замінити їх новою системою Мандріва Лінакс,\n"
+" * «%s». Якщо ви хочете стерти всі дані і всі розділи, які є на твердому\n"
+"диску і замінити їх новою системою Mageia,\n"
"виберіть цей режим. Будьте уважні, бо підтвердивши цей\n"
-"вибір, Ви вже не зможете повернутись назад.\n"
+"вибір, ви вже не зможете повернутись назад.\n"
"\n"
-" !! Якщо Ви виберете цей режим, всі дані на твердому диску будуть "
+" !! Якщо ви виберете цей режим, всі дані на твердому диску будуть "
"видалені. !!\n"
"\n"
-" * \"%s\". Це просто зітре повністю весь диск і почне новий\n"
+" * «%s». Це просто зітре повністю весь диск і почне новий\n"
"поділ на розділи. Всі дані на диску буде втрачено.\n"
"\n"
-"!! Якщо Ви виберете цей режим, всі дані на диску будуть втрачені. !!\n"
+"!! Якщо ви виберете цей режим, всі дані на диску будуть втрачені. !!\n"
"\n"
-" * \"%s\". Виберіть цей режим, якщо Ви хочете вручну перерозподілити\n"
+" * «%s». Виберіть цей режим, якщо ви хочете вручну перерозподілити\n"
"простір на Вашому твердому диску. Однак будьте обережними, це --\n"
-"потужний, але дуже небезпечний вибір, Ви можете дуже легко втратити\n"
-"всі дані. Тому цей режим насправді рекомендується тоді, якщо Ви вже\n"
+"потужний, але дуже небезпечний вибір, ви можете дуже легко втратити\n"
+"всі дані. Тому цей режим насправді рекомендується тоді, якщо ви вже\n"
"щось подібне робили або маєте певний досвід. Для детальнішої інформації,\n"
"як використовувати інструмент DiskDrake, звертайтеся до розділу\n"
"\"Managing Your Partitions\" в \"Starter Guide\"."
@@ -826,7 +836,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Використовувати існуючий розділ"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr "Використовувати вільний простір на розділі Microsoft Windows®"
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Стерти весь диск"
@@ -868,38 +883,38 @@ msgid ""
"\"mformat a:\", or \"fdformat /dev/fd0\" followed by \"mkfs.vfat\n"
"/dev/fd0\"."
msgstr ""
-"Ось і все. Встановлення завершене і Ваша система GNU/Linux готова\n"
-"до використання. Просто натисніть \"%s\" для перезавантаження.\n"
-"Не забудьте вийняти носії (КД або дискету). Перше, що Ви побачите\n"
+"Ось і все. Встановлення завершене і ваша система GNU/Linux готова\n"
+"до використання. Просто натисніть «%s» для перезавантаження.\n"
+"Не забудьте вийняти носії (КД або дискету). Перше, що ви побачите\n"
"після завершення системою тестів обладнання, буде меню\n"
-"завантажувача, яке запропонує Вам вибір операційної системи\n"
+"завантажувача, яке запропонує вам вибір операційної системи\n"
"для запуску.\n"
"\n"
-"Кнопка \"%s\"покаже дві інші кнопки:\n"
+"Кнопка «%s»покаже дві інші кнопки:\n"
"\n"
-" * \"%s\": дозволяє створити дискету для встановлення, яка автоматично,\n"
+" * «%s»: дозволяє створити дискету для встановлення, яка автоматично,\n"
"без допомоги оператора виконає все встановлення, подібне до того, яке\n"
-"Ви щойно зробили.\n"
+"ви щойно зробили.\n"
"\n"
" Зауважте, що після натиснення на кнопку будуть можливі два різні\n"
"параметри:\n"
"\n"
-" * \"%s\". Це частково автоматизоване встановлення. В режимі\n"
+" * «%s». Це частково автоматизоване встановлення. В режимі\n"
"діалогу відбувається тільки етап розбиття на розділи.\n"
"\n"
-" * \"%s\". Повністю автоматизоване встановлення: твердий диск\n"
+" * «%s». Повністю автоматизоване встановлення: твердий диск\n"
"повністю перезаписується, всі дані втрачаються.\n"
"\n"
" Цей параметр є дуже зручним при встановленні на багато подібних\n"
"машин. Дивіться розділ Auto install на нашому веб-сайті для детальної\n"
"інформації.\n"
"\n"
-" * \"%s\"(*): зберігає список пакунків, вибраних при цьому встановленні.\n"
+" * «%s»(*): зберігає список пакунків, вибраних при цьому встановленні.\n"
"Щоб використати цей вибір при іншому встановленні, вставте дискету і\n"
"запустіть встановлення. При підказці натисніть клавішу [F1] і введіть\n"
">>linux defcfg=\"floppy\" << і натисніть [Enter].\n"
"\n"
-"(*) Вам потрібно мати дискету у FAT-форматі. Щоб створити таку в\n"
+"(*) вам потрібно мати дискету у FAT-форматі. Щоб створити таку в\n"
"GNU/Linux, введіть \"mformat a:\", або \"fdformat /dev/fd0\", а після цього\n"
"\"mkfs.vfat /dev/fd0\"."
@@ -908,7 +923,22 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Створити дискету для автоматичного встановлення"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr "Повторити"
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr "Автоматично"
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr "Зберегти перелік пакунків"
+
+#: ../help.pm:408
#, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -928,39 +958,39 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
msgstr ""
-"Якщо Ви вирішили використовувати деякі з існуючих розділів\n"
+"Якщо ви вирішили використовувати деякі з існуючих розділів\n"
"GNU/Linux, можливо, захочете переформатувати деякі з них\n"
"для того, щоб стерти дані, які на них записані. Якщо Ви\n"
"хочете це зробити, виберіть також розділи, які хочете\n"
"відформатувати.\n"
"\n"
"Зауважте, однак, що не обов'язково форматувати всі розділи, які\n"
-"існували раніше. Ви повинні відформатувати розділи, які містять\n"
+"існували раніше. ви повинні відформатувати розділи, які містять\n"
"операційну систему (такі, як \"/\", \"/usr\" чи \"/var\"), але не мусите\n"
-"форматувати ті розділи, які містять дані, які Ви б хотіли зберегти\n"
+"форматувати ті розділи, які містять дані, які ви б хотіли зберегти\n"
"(типово це розділ \"/home\").\n"
"\n"
"Будьте уважні з вибором розділів. Після форматування всі дані на\n"
"вибраних розділах будуть стерті і їх вже не можна буде відновити.\n"
"\n"
-"Натисніть на \"%s\", коли будете готові приступити до форматування\n"
+"Натисніть на «%s», коли будете готові приступити до форматування\n"
"розділів.\n"
"\n"
-"Натисніть на \"%s\", якщо Ви хочете вибрати інші розділи для\n"
-"того, щоб встановити нову систему Мандріва лінакс.\n"
+"Натисніть на «%s», якщо ви хочете вибрати інші розділи для\n"
+"того, щоб встановити нову систему Mageia.\n"
"\n"
-"Натисніть на \"%s\", якщо Ви хочете вибрати розділи для\n"
+"Натисніть на «%s», якщо ви хочете вибрати розділи для\n"
"перевірки на існування збійних блоків."
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -972,17 +1002,17 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Коли Ви встановлюєте Мандріва лінакс, деякі пакунки можуть\n"
-"бути поновлені з часу виходу дистрибутиву. Можуть бути виправлені\n"
+"Коли ви встановлюєте Mageia, деякі пакунки можуть\n"
+"бути поновлені з часу виходу дистрибутива. Можуть бути виправлені\n"
"помилки, вирішені проблеми безпеки. Щоб мати користь від цих поновлень,\n"
-"зараз Ви можете звантажити їх з Інтернету. Перевірте \"%s\", якщо маєте\n"
-"зв'язок з Інтернетом, або \"%s\", якщо бажаєте встановити поновлені пакунки\n"
+"зараз ви можете звантажити їх з інтернету. Перевірте «%s», якщо маєте\n"
+"зв'язок з інтернетом, або «%s», якщо бажаєте встановити поновлені пакунки\n"
"пізніше.\n"
"\n"
-"Вибравши \"%s\", Ви побачите список адрес, звідки можуть бути взяті\n"
-"поновлення. Вам потрібно вибрати якісь із найближчих до Вас. Появиться\n"
-"дерево вибору пакунків: зробіть вибір і натисніть \"%s\", щоб звантажити\n"
-"і встановити їх, або \"%s\", щоб вийти."
+"Вибравши «%s», ви побачите список адрес, звідки можуть бути взяті\n"
+"поновлення. вам потрібно вибрати якісь із найближчих до вас. Буде показано\n"
+"дерево вибору пакунків: зробіть вибір і натисніть «%s», щоб звантажити\n"
+"і встановити їх, або «%s», щоб вийти."
#: ../help.pm:450
#, c-format
@@ -994,24 +1024,24 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
"security. Security messages will be sent to that address."
msgstr ""
-"В цьому місці DrakX дасть Вам можливість вибрати рівень безпеки\n"
+"В цьому місці DrakX дасть вам можливість вибрати рівень безпеки\n"
"для Вашої системи. На практиці можна використовувати таке правило:\n"
"рівень безпеки повинен бути вищий, якщо на машині зберігатимуться\n"
-"важливі дані, або якщо вона буде безпосередньо під'єднана до Інтернету.\n"
+"важливі дані, або якщо вона буде безпосередньо під'єднана до інтернету.\n"
"Платою за вищий рівень безпеки у більшості випадків є легкість у\n"
"використанні.\n"
"\n"
-"Якщо Ви не знаєте, на чому зупинитись, залиште все, як є. Ви зможете\n"
+"Якщо ви не знаєте, на чому зупинитись, залиште все, як є. ви зможете\n"
"змінити рівень безпеки пізніше з допомогою інструменту draksec з \n"
-"Центру керування Мандріва.\n"
+"Центру керування Mageia.\n"
"\n"
-"Поле \"%s\" може використовуватися для сповіщення користувача, який\n"
+"Поле «%s» може використовуватися для сповіщення користувача, який\n"
"відповідає за безпеку. Повідомлення відправлятиметься на вказану адресу."
#: ../help.pm:461
@@ -1023,21 +1053,24 @@ msgstr "Адміністратор з безпеки"
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1053,21 +1086,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1084,73 +1119,67 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-"Зараз Вам потрібно вибрати, які розділи використовувати для встановлення\n"
-"Вашої нової системи Мандріва лінакс. Якщо ці розділи вже були створені\n"
+"Зараз вам потрібно вибрати, які розділи використовувати для встановлення\n"
+"Вашої нової системи Mageia. Якщо ці розділи вже були створені\n"
"при попередньому встановленні системи GNU/Linux, або створені іншою\n"
-"програмою розподілу диску, Ви можете скористатися вже існуючими\n"
+"програмою розподілу диску, ви можете скористатися вже існуючими\n"
"розділами. В іншому випадку потрібно створити розділи на твердому диску.\n"
"\n"
-"Щоб створити розділи, Вам потрібно вибрати твердий диск. Ви можете\n"
+"Щоб створити розділи, вам потрібно вибрати твердий диск. ви можете\n"
"вибрати диск, клацнувши на \"hda\" для першого диску типу IDE,\n"
-"\"hdb\" для другого диску типу IDE, \"sda\", якщо Ви будете встановлювати\n"
+"\"hdb\" для другого диску типу IDE, \"sda\", якщо ви будете встановлювати\n"
"систему на першому диску типу SCSI і так далі.\n"
"\n"
-"Щоб розбити диск на розділи, Ви можете скористатися такими командами:\n"
+"Щоб розбити диск на розділи, ви можете скористатися такими командами:\n"
"\n"
-" * \"%s\": видаляє всі розділи на вибраному твердому диску\n"
+" * «%s»: вилучає всі розділи на вибраному твердому диску\n"
"\n"
-" * \"%s\": ця команда автоматично створить розділи типу ext3 та swap\n"
+" * «%s»: ця команда автоматично створить розділи типу ext4 та swap\n"
"на вільному місці диску\n"
"\n"
-"\"%s\": дає доступ до додаткових параметрів:\n"
+"«%s»: дає доступ до додаткових параметрів:\n"
"\n"
-" * \"%s\": записує таблицю розділів на дискету. Використовується для\n"
+" * «%s»: записує таблицю розділів на дискету. Використовується для\n"
"відновлення таблиці розділів при потребі. Дуже рекомендується виконувати\n"
"цей крок.\n"
"\n"
-" * \"%s\": дає змогу Вам відновити раніше записану таблицю розділів з\n"
+" * «%s»: дає змогу вам відновити раніше записану таблицю розділів з\n"
"дискети.\n"
"\n"
-" * \"%s\": якщо таблиця розділів Вашого диску пошкоджена, Ви можете\n"
+" * «%s»: якщо таблиця розділів вашого диску пошкоджена, ви можете\n"
"спробувати відновити її, скориставшись цією командою. Будь ласка,\n"
"будьте обережними і пам'ятайте, що ця команда не завжди спрацьовує.\n"
"\n"
-" * \"%s\": відмовитися від всіх змін і завантажити таблицю розділів, яка\n"
+" * «%s»: відмовитися від всіх змін і завантажити таблицю розділів, яка\n"
"була на Вашому твердому диску.\n"
"\n"
-" * \"%s\": відміна цього параметра зробить необхідним монтування і\n"
+" * «%s»: відміна цього параметра зробить необхідним монтування і\n"
"розмонтування знімних носіїв - дискети і компакт-диску - користувачами\n"
"вручну.\n"
"\n"
-" * \"%s\": використайте цю команду, якщо Ви хочете, щоб помічник розподілив\n"
-"Ваш диск. Рекомендується, якщо Ви не розумієтесь добре про\n"
+" * «%s»: використайте цю команду, якщо ви хочете, щоб помічник розподілив\n"
+"ваш диск. Рекомендується, якщо ви не розумієтесь добре про\n"
"розподіл диску. \n"
"\n"
-" * \"%s\": використайте цю команду, щоб скасувати всі зміни.\n"
+" * «%s»: використайте цю команду, щоб скасувати всі зміни.\n"
"\n"
-" * \"%s\": дозволити додаткові дії при розбиванні (тип, параметри, формат)\n"
+" * «%s»: дозволити додаткові дії при розбиванні (тип, параметри, формат)\n"
"і отримати більше інформації про твердий диск.\n"
"\n"
-" * \"%s\": ця команда запише зміни на диск після того, як Ви закінчите "
+" * «%s»: ця команда запише зміни на диск після того, як ви закінчите "
"розбиття\n"
-"Вашого твердого диску. \n"
+"вашого жорсткого диска. \n"
"\n"
-"Коли Ви задаєте розмір розділу, можете точніше задати розмір,\n"
+"Коли ви задаєте розмір розділу, можете точніше задати розмір,\n"
"використовуючи клавіші курсора на клавіатурі.\n"
"\n"
-"Примітка: Ви можете виконати будь-яку команду з клавіатури. Переміщайтеся\n"
+"Примітка: ви можете виконати будь-яку команду з клавіатури. Переміщайтеся\n"
"по розділах з допомогою клавіш [Tab] і [Up/Down].\n"
"\n"
-"Коли певний розділ вибрано, Ви можете використовувати:\n"
+"Коли певний розділ вибрано, ви можете використовувати:\n"
"\n"
" * Ctrl-c, щоб створити новий розділ (якщо вибрано порожній розділ)\n"
"\n"
@@ -1158,22 +1187,40 @@ msgstr ""
"\n"
" * Ctrl-m, щоб встановити точку монтування\n"
"\n"
-"Щоб отримати інформацію про різні типи файлових систем, які Ви можете\n"
+"Щоб отримати інформацію про різні типи файлових систем, які ви можете\n"
"створити, прочитайте розділ ext2FS з \"Reference Manual\".\n"
-"\n"
-"Якщо Ви встановлюєте систему на комп'ютер з процесором PPC, можете\n"
-"створити маленький розділ типу HFS для завантаження 'bootstrap'\n"
-"(розміром не менше 1Мб) для завантажувача yaboot. Якщо Ви вирішите\n"
-"створити розділ трохи більшого розміру, скажімо 50Мб, Ви зможете\n"
-"також зберігати на ньому резервне ядро системи та віртуальний диск для\n"
-"аварійних завантажень системи. "
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr "Зберегти таблицю розділів"
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr "Відновити таблицю розділів"
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr "Виправити таблицю розділів"
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Автоматичне монтування змінних носіїв"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr "Майстер"
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr "Вернути"
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Перемикнути між режимами Експерт/Звичайний"
@@ -1181,51 +1228,57 @@ msgstr "Перемикнути між режимами Експерт/Звича
#: ../help.pm:536
#, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
-"На Вашому диску знайдено більше одного розділа Майкрософт.\n"
-"Виберіть, будь ласка, розмір якого з них Ви хотіли б змінити, для\n"
-"того, щоб встановити операційну систем Мандріва лінакс.\n"
+"На Вашому диску знайдено більше одного розділу Microsoft.\n"
+"Виберіть, будь ласка, розмір якого з них ви хотіли б змінити, для\n"
+"того, щоб встановити операційну систем Mageia.\n"
"\n"
-"Кожен розділ подано в такому вигляді: \"Назва в Лінаксі\", \"Назва у\n"
-"Віндовс\", \"Розмір\".\n"
+"Кожен розділ подано в такому вигляді: \"Назва в Linux\", \"Назва у\n"
+"Windows\", \"Розмір\".\n"
"\n"
-"\"Назва в Лінаксі\" подана таким чином: \"тип твердого диску\",\n"
-"\"номер твердого диску\", \"номер розділу на диску\", (наприклад:\n"
+"\"Назва в Linux\" подана таким чином: \"тип твердого диска\",\n"
+"\"номер жорсткого диска\", \"номер розділу на диску\", (наприклад:\n"
"\"hda1\").\n"
"\n"
-"Тип твердого диску\" - це \"hd\", якщо Ви маєте диск типу IDE, і \"sd\",\n"
-"якщо Ви маєте твердий диск типу SCSI.\n"
+"Тип жорсткого диска\" - це \"hd\", якщо ви маєте диск типу IDE, і \"sd\",\n"
+"якщо ви маєте твердий диск типу SCSI.\n"
"\n"
-"\"Номер твердого диску\" - це завжди літера після \"hd\" чи \"sd\". Для\n"
+"\"Номер жорсткого диска\" - це завжди літера після \"hd\" чи \"sd\". Для\n"
"дисків типу IDE це:\n"
"\n"
" * \"a\" - головний диск (master) на першому контролері IDE,\n"
@@ -1240,7 +1293,7 @@ msgstr ""
"і\n"
"т.д. ...\n"
"\n"
-"\"Назва у Віндовс\" - це літера Вашого твердого диску, як Ви її бачите\n"
+"\"Назва у Віндовс\" - це літера вашого жорсткого диска, як ви її бачите\n"
"при роботі у Віндовс (перший диск чи розділ називається \"C:\")."
#: ../help.pm:567
@@ -1251,9 +1304,9 @@ msgid ""
"the\n"
"list shown, click on the \"%s\" button to get the complete country list."
msgstr ""
-"\"%s\": перевірити поточний вибір країни. Якщо Ви знаходитесь не\n"
-"в цій країні, натисніть кнопку \"%s\" і виберіть іншу країну. Якщо Вашої\n"
-"країни немає в першому переліку, натисніть \"%s\", щоб отримати повний\n"
+"«%s»: перевірити поточний вибір країни. Якщо ви знаходитесь не\n"
+"в цій країні, натисніть кнопку «%s» і виберіть іншу країну. Якщо Вашої\n"
+"країни немає в першому переліку, натисніть «%s», щоб отримати повний\n"
"список країн."
#: ../help.pm:572
@@ -1263,44 +1316,44 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
-"Цей крок виконується тільки у випадку, якщо на Вашій машині було\n"
+"Цей крок виконується тільки у випадку, якщо на вашій машині було\n"
"знайдено старий розділ GNU/Linux.\n"
"\n"
-"DrakX зараз потрібно знати, чи Ви хочете виконати нове встановлення,\n"
-"чи поновити існуючу систему Мандріва лінакс:\n"
+"DrakX зараз потрібно знати, чи ви хочете виконати нове встановлення,\n"
+"чи поновити існуючу систему Mageia:\n"
"\n"
-" * \"%s\": В більшій частині це повністю знищує стару систему. Якщо Ви\n"
-"хочете змінити розбиття твердого диску на розділи або змінити файлову\n"
+" * «%s»: В більшій частині це повністю знищує стару систему. Якщо Ви\n"
+"хочете змінити розбиття жорсткого диска на розділи або змінити файлову\n"
"систему, використовуйте цей параметр. Проте в залежності від схеми\n"
-"розбиття на розділи Ви можете оберегти деякі з існуючих даних від\n"
+"розбиття на розділи ви можете оберегти деякі з існуючих даних від\n"
"переписування.\n"
"\n"
-" * \"%s\": цей тип встановлення дозволяє Вам поновити пакунки, вже\n"
-"встановлені на Вашій системі Мандріва лінакс. Ваша існуюча схема\n"
+" * «%s»: цей тип встановлення дозволяє вам поновити пакунки, вже\n"
+"встановлені на вашій системі Mageia. ваша існуюча схема\n"
"розбиття на розділи і дані користувачів не змінюються. Більшість інших\n"
"кроків встановлення залишаються, подібно до стандартного встановлення.\n"
"\n"
"Використання параметра \"Поновлення\" працюватиме на системах з\n"
-"Мандріва лінакс версії \"8.1\" і пізніших. Виконання поновлення версій,\n"
-"попередніх до Мандріва лінакс \"8.1\" не рекомендується."
+"Mageia версії \"8.1\" і пізніших. Виконання поновлення версій,\n"
+"попередніх до Mageia \"8.1\" не рекомендується."
#: ../help.pm:594
#, c-format
@@ -1322,22 +1375,22 @@ msgid ""
"dialog will allow you to choose the key binding which will switch the\n"
"keyboard between the Latin and non-Latin layouts."
msgstr ""
-"В залежності від типової мови, яку Ви вказали у розділі, drakX\n"
+"В залежності від типової мови, яку ви вказали у розділі, drakX\n"
"автоматично вибере певний тип конфігурації клавіатури. Перевірте,\n"
"щоб виділення відповідало Вашому вибору, якщо потрібно, виберіть\n"
"відповідну мапу.\n"
"\n"
-"Проте, може не існувати мапи клавіатури, що точно відповідає Вашій мові:\n"
-"наприклад, якщо Ви англомовний швейцарець, Ви все одно можете\n"
-"забажати користуватись швейцарською мапою. Або, якщо Ви говорите\n"
-"англійською, але живете в Квебеку, Ви потрапляєте в аналогічну\n"
-"ситуацію, коли Ваша рідна мова і мапа клавіатури не співпадають. В\n"
-"таких випадках цей крок встановлення дасть Вам змогу вибрати\n"
+"Проте, може не існувати мапи клавіатури, що точно відповідає вашій мові:\n"
+"наприклад, якщо ви англомовний швейцарець, ви все одно можете\n"
+"забажати користуватись швейцарською мапою. Або, якщо ви говорите\n"
+"англійською, але живете в Квебеку, ви потрапляєте в аналогічну\n"
+"ситуацію, коли ваша рідна мова і мапа клавіатури не співпадають. В\n"
+"таких випадках цей крок встановлення дасть вам змогу вибрати\n"
"відповідну клавіатуру з наданого списку.\n"
"\n"
-"Натисніть кнопку \"%s\", щоб побачити повний список мап клавіатур.\n"
+"Натисніть кнопку «%s», щоб побачити повний список мап клавіатур.\n"
"\n"
-"Якщо Ви вибрали мапу, що основана на нелатинському алфавіті,\n"
+"Якщо ви вибрали мапу, що основана на нелатинському алфавіті,\n"
"наступний діалог дасть змогу вибрати комбінацію клавіш, яка\n"
"перемикатиме клавіатуру між латинською і нелатинською мапами."
@@ -1358,8 +1411,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1387,40 +1439,39 @@ msgid ""
msgstr ""
"Перший крок - вибір мови.\n"
"\n"
-"Ваш вибір мови вплине на мову документації, програми встановлення\n"
-"і систему в цілому. Спочатку виберіть регіон, в якому Ви знаходитесь,\n"
-"потім мову, якою Ви розмовляєте.\n"
+"ваш вибір мови вплине на мову документації, програми встановлення\n"
+"і систему в цілому. Спочатку виберіть регіон, в якому ви знаходитесь,\n"
+"потім мову, якою ви розмовляєте.\n"
"\n"
-"Натиснувши кнопку \"%s\" Ви зможете вибрати інші мови, які можна\n"
-"встановити на Вашій робочій станції, при цьому встановлюються особливі\n"
+"Натиснувши кнопку «%s», ви зможете вибрати інші мови, які можна\n"
+"встановити на вашій робочій станції, при цьому встановлюються особливі\n"
"для мови файли системної документації і програми. Наприклад, якщо\n"
"в системі будуть працювати користувачі з Іспанії, виберіть англійську\n"
-"мову типовою з дерева перегляду і \"%s\" в розділі Додатково.\n"
+"мову типовою з дерева перегляду і «%s» в розділі «Додатково».\n"
"\n"
-"Кілька слів про підтримку UTF-8 (юнікоду): Юнікод - це нове кодування\n"
-"символів, яке вміщує усі мови. Повна підтримка для GNU/Linux все ще\n"
-"знаходиться в стадії розробки. Через це Мандріва лінакс\n"
+"Кілька слів про підтримку UTF-8 (юнікоду): Unicode — це нове кодування\n"
+"символів, яке містить символи всіх мов. Повна підтримка для GNU/Linux\n"
+"все ще перебуває у стадії розробки. Через це Mageia\n"
"використовуватиме його залежно від вибору користувача:\n"
"\n"
-" * Якщо Ви вибрали мови із традиційним кодуванням (мови latin1\n"
+" * Якщо ви вибрали мови із традиційним кодуванням (мови latin1\n"
"Українська, Японська, Китайська, Корейська, Тайська, Грецька,\n"
"Турецька, більшість мов iso-8859-2), це кодування і\n"
"використовуватиметься;\n"
"\n"
" * Інші мови використовуватимуть юнікод типово;\n"
"\n"
-" * Якщо вибирається підтримка двох чи більше мов і вони не\n"
-"використовують однакове кодування, юнікод використовуватиметься\n"
-"для всієї системи;\n"
+" * Якщо вибрано підтримку двох або декількох мов з різним\n"
+"кодуванням, юнікод використовуватиметься для всієї системи;\n"
"\n"
" * Нарешті, незалежно від вибраної мови юнікод також\n"
"використовуватиметься для системи у випадку, якщо користувач\n"
-"вказав \"%s\".\n"
+"вказав «%s».\n"
"\n"
-"Зауважте, що Ви не обмежені вибором однієї додаткової мови. Ви\n"
-"можете вибрати їх кілька або встановити їх всі, вибравши пункт \"%s\".\n"
+"Зауважте, що ви не обмежені вибором однієї додаткової мови. Ви\n"
+"можете вибрати їх кілька або встановити їх всі, вибравши пункт «%s».\n"
"Вибір підтримки мови означає вибір перекладів, шрифтів, перевірку\n"
-"орфографії і т.д.\n"
+"орфографії тощо.\n"
"\n"
"Для перемикання між різними мовами, встановленими в системі, можете\n"
"виконати команду \"/usr/sbin/localedrake\" з правами \"root\", щоб змінити\n"
@@ -1432,7 +1483,12 @@ msgstr ""
msgid "Espanol"
msgstr "Іспанська"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr "Типово використовувати Unicode"
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1469,24 +1525,24 @@ msgid ""
"move your mouse about."
msgstr ""
"Здебільшого DrakX не має проблем при визначенні кількості кнопок на\n"
-"Вашій миші. Якщо це стається, приймається, що Ви маєте двохкнопкову\n"
+"вашій миші. Якщо це стається, приймається, що ви маєте двохкнопкову\n"
"мишу, і можете сконфігурувати її для емуляції третьої кнопки. Третя\n"
"кнопка на двохкнопковій миші може бути \"натиснута\" одночасним\n"
"натисканням лівої і правої кнопок. DrakX автоматично знатиме, який\n"
-"інтерфейс використовує Ваша миша: PS/2, послідовний чи USB.\n"
+"інтерфейс використовує ваша миша: PS/2, послідовний чи USB.\n"
"\n"
-"У випадку, якщо Ви маєте мишу з трьома кнопками і без коліщатка,\n"
-"можете вибрати мишу \"%s\". DrakX тоді налаштує її так, щоб Ви могли\n"
+"У випадку, якщо ви маєте мишу з трьома кнопками і без коліщатка,\n"
+"можете вибрати мишу «%s». DrakX тоді налаштує її так, щоб ви могли\n"
"симулювати його: для цього натисніть середню кнопку і переміщуйте\n"
"мишу вперед-назад.\n"
"\n"
-"Якщо з певних міркувань Ви хочете задати інший тип миші, виберіть його\n"
+"Якщо з певних міркувань ви хочете задати інший тип миші, виберіть його\n"
"із списку, який пропонується.\n"
"\n"
-"Ви можете вибрати пункт \"%s\", щоб встановити \"загальний\" тип,\n"
+"ви можете вибрати пункт «%s», щоб встановити \"загальний\" тип,\n"
"який працює майже з усіма типами мишок.\n"
"\n"
-"Якщо Ви вибрали мишу, відмінну від запропонованої, буде показано\n"
+"Якщо ви вибрали мишу, відмінну від запропонованої, буде показано\n"
"тестове вікно. Перевірте кнопки і коліщатко, щоб переконатися, що\n"
"миша працює добре. Якщо миша працює неправильно, натисніть\n"
"пробіл або [Return], щоб припинити тест і повернутися в список вибору.\n"
@@ -1494,7 +1550,7 @@ msgstr ""
"Миші з коліщатком деколи не визначаються автоматично, тому Вам\n"
"буде потрібно вибрати мишу із списку. Переконайтеся, що Ви\n"
"вибираєте мишу відповідно до порта, до якого вона під'єднана. Після\n"
-"того, як Ви виберете мишу і натиснете на кнопку \"%s\", на екрані\n"
+"того, як ви виберете мишу і натиснете на кнопку «%s», на екрані\n"
"появиться зображення миші. Покрутіть коліщатко миші, щоб\n"
"переконатися, що воно активізоване правильно. Після того, як Ви\n"
"побачите, що коліщатко на екрані рухається відповідно до коліщатка\n"
@@ -1518,93 +1574,9 @@ msgid ""
"Windows is named \"ttyS0\" under GNU/Linux."
msgstr ""
"Будь ласка, виберіть вірний порт. Наприклад, порт COM1 у MS\n"
-"Windows має назву ttyS0 у GNU/Лінаксі."
+"Windows має назву ttyS0 у GNU/Linux."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Це найважливіший крок для безпеки Вашої системи GNU/Linux: Вам\n"
-"потрібно ввести пароль для користувача Root. Root - це системний\n"
-"адміністратор і тільки йому дозволено робити поновлення системи,\n"
-"додавати користувачів, змінювати загальну конфігурацію системи,\n"
-"таке інше. Одним словом - Root може все! Ось чому Вам слід вибирати\n"
-"пароль, який важко вгадати - DrakX підкаже Вам, якщо пароль занадто\n"
-"легкий. Як Ви побачите, пароль вводити необов'язково, але ми\n"
-"настійливо застерігаємо Вас проти такого. GNU/Linux така ж схильна\n"
-"до помилок оператора, як і будь-яка інша система. Оскільки Root може\n"
-"обминути всі обмеження і ненароком стерти всі дані на всіх розділах,\n"
-"неуважно працюючи з ними, тому повинно бути важко стати\n"
-"користувачем root.\n"
-"\n"
-"Пароль має бути сумішшю алфавітно-цифрових символів і бути\n"
-"завдовжки не менше 8 символів. Ніколи не записуйте пароль - це\n"
-"зробить занадто легким отримання несанкціонованого доступу до\n"
-"системи.\n"
-"\n"
-"Одне застереження -- не робіть пароль занадто довгим чи складним,\n"
-"тому що Вам потрібно його запам'ятовувати.\n"
-"\n"
-"Коли Ви будете вводити пароль, його не буде видно на екрані. Щоб\n"
-"зменшити можливість помилки при вводі пароля \"всліпу\", Вам\n"
-"потрібно буде ввести його двічі. Якщо ж так станеться, що Ви\n"
-"допустите одну і ту ж помилку двічі, Вам потрібно буде ввести цей\n"
-"\"неправильний\" пароль при першій реєстрації в системі.\n"
-"\n"
-"Якщо Ви хочете дозволити доступ до цього комп'ютера для його\n"
-"контролю сервером автентифікації, натисніть кнопку \"%s\".\n"
-"\n"
-"Якщо Ваша мережа використовує служби автентифікації LDAP, NIS або\n"
-"PDC Windows Domain, виберіть одну з можливостей з \"%s\". Якщо Ви не\n"
-"знаєте, яку з них використовувати, запитайте в свого системного "
-"адміністратора.\n"
-"\n"
-"Якщо Ви боїтесь, що маєте проблеми із запам'ятовуванням паролів, якщо\n"
-"Ваш комп'ютер ніколи не буде під'єднано до Інтернету, або Ви абсолютно\n"
-"довіряєте всім, хто використовує Ваш комп'ютер, можете вибрати \"%s\"."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "розпізнавання"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1618,7 +1590,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1631,22 +1603,22 @@ msgstr ""
"і відповідно до знайденого на ньому виконає таке:\n"
"\n"
" * якщо знайдено сектор завантаження Windows, він замінить його на\n"
-"сектор завантаження GRUB/LILO. В такий спосіб Ви зможете\n"
+"сектор завантаження GRUB/LILO. В такий спосіб ви зможете\n"
"завантажувати як GNU/Linux, так і іншу ОС.\n"
"\n"
" * якщо знайдено сектор завантаження GRUB або LILO, його буде\n"
"замінено на новий.\n"
"\n"
"Якщо неможливо визначити, DrakX запитає Вас, куди встановити\n"
-"завантажувач. В загальному випадку \"%s\" є найкращим місцем.\n"
-"Вибравши \"%s\", Ви не встановите завантажувач. Використовуйте\n"
+"завантажувач. В загальному випадку «%s» є найкращим місцем.\n"
+"Вибравши «%s», ви не встановите завантажувач. Використовуйте\n"
"це тільки тоді, коли розумієте, що робите."
#: ../help.pm:745
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1667,41 +1639,46 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Зараз настав час вибрати систему друку на Вашому комп'ютері. Інші\n"
-"ОС мають одну систему друку, але Мандріва лінакс пропонує дві.\n"
+"ОС мають одну систему друку, але Mageia пропонує дві.\n"
"Кожна система друку найкраще підходить до різних типів конфігурації.\n"
"\n"
-" * \"%s\" -- який є акронімом для \"друкувати, не ставити в чергу\", є\n"
-"вибором, коли Ви маєте безпосередньо під'єднану друкарку і не\n"
+" * «%s» — який є акронімом для \"друкувати, не ставити в чергу\", є\n"
+"вибором, коли ви маєте безпосередньо під'єднану друкарку і не\n"
"хочете мати проблем із зминанням паперу, і не маєте мережевих\n"
-"друкарок. (\"%s\" керуватиме тільки дуже простими випадками з\n"
+"друкарок. («%s» керуватиме тільки дуже простими випадками з\n"
"мережею і є в деякій мірі повільнішим, ніж використання з мережами).\n"
-"Рекомендується використовувати \"pdq\", якщо це Ваш перший досвід\n"
+"Рекомендується використовувати \"pdq\", якщо це ваш перший досвід\n"
"використання GNU/Linux.\n"
"\n"
-" * \"%s\" - \"Загальна система друку для Лінакс\", є відміннім вибором\n"
+" * «%s» - \"Загальна система друку для Linux\", є відміннім вибором\n"
"для друку на місцеву друкарку або на іншу в будь-якій точці планети.\n"
"Вона проста для налаштування і може працювати як клієнт або сервер\n"
"для старих систем друку \"lpd \", тобто є сумісною з попередніми\n"
"операційними системами, які можуть все ще вимагати сервісів друку.\n"
"Хоч вона і є дуже потужною, загальне встановлення є майже таким\n"
-"самим простим, як і \"pdq\". Якщо Вам потрібно емулювати сервер \"lpd\",\n"
-"переконайтеся, що увімкнена служба \"cups-lpd \". \"%s\" має графічну\n"
-"оболонку для друку або вибору параметрів друкарки і управління нею.\n"
+"самим простим, як і \"pdq\". Якщо вам потрібно емулювати сервер \"lpd\",\n"
+"переконайтеся, що увімкнена служба \"cups-lpd \". «%s» має графічну\n"
+"оболонку для друку або вибору параметрів принтера і управління ним.\n"
" \n"
-"Якщо Ви зараз зробите вибір, а пізніше побачите, що ця система друку\n"
-"Вам не подобається, Ви можете її замінити з допомогою PrinterDrake з\n"
-"Центру керування Мандріва , натиснувши кнопку \"%s\"."
+"Якщо ви зараз зробите вибір, а пізніше побачите, що ця система друку\n"
+"вам не подобається, ви можете її замінити з допомогою PrinterDrake з\n"
+"Центру керування Mageia, натиснувши кнопку «%s»."
#: ../help.pm:768
#, c-format
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr "CUPS"
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Експертний режим"
@@ -1714,7 +1691,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1732,16 +1709,16 @@ msgstr ""
"драйвер.\n"
"\n"
"Через те, що визначення заліза не є простим, DrakX може завершити\n"
-"визначення твердих дисків невдало. Якщо таке трапиться, Вам потрібно\n"
+"визначення твердих дисків невдало. Якщо таке трапиться, вам потрібно\n"
"буде ввести тип обладнання вручну.\n"
"\n"
-"Якщо Вам потрібно буде вручну вибирати драйвер, DrakX запитає,\n"
-"чи хочете Ви налаштувати його параметри. Краще, якщо Ви вкажете\n"
+"Якщо вам потрібно буде вручну вибирати драйвер, DrakX запитає,\n"
+"чи хочете ви налаштувати його параметри. Краще, якщо ви вкажете\n"
"DrakX випробувати плату з особливими для неї параметрами, потрібними\n"
"для ініціалізації адаптера. У більшості випадків це працює нормально.\n"
"\n"
"Якщо DrakX не зможе встановити тип параметрів, необхідних для\n"
-"передачі обладнанню, Вам потрібно буде налаштувати драйвер вручну."
+"передачі обладнанню, вам потрібно буде налаштувати драйвер вручну."
#: ../help.pm:789
#, c-format
@@ -1750,8 +1727,8 @@ msgid ""
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver."
msgstr ""
-"\"%s\": якщо система визначить звукову карту, її тип буде показано тут.\n"
-"Якщо Ви побачите, що вона не того типу, що дійсно вставлена у Вашій\n"
+"«%s»: якщо система визначить звукову карту, її тип буде показано тут.\n"
+"Якщо ви побачите, що вона не того типу, що дійсно вставлена у Вашій\n"
"системі, можете натиснути кнопку і вибрати інший драйвер."
#: ../help.pm:794
@@ -1778,11 +1755,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1800,8 +1772,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1818,7 +1789,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1828,71 +1799,74 @@ msgstr ""
"про Вашу систему. В залежності від встановленого заліза, у Вас\n"
"повинні бути або всі, або деякі пункти. Кожен пункт може бути\n"
"налаштований, що завершується коротким підсумком про поточну\n"
-"конфігурацію. Натисніть на відповідну \"%s\" кнопку, щоб змінити.\n"
+"конфігурацію. Натисніть на відповідну «%s» кнопку, щоб змінити.\n"
"\n"
-" * \"%s\": перевірити поточну мапу клавіатури і змінити, якщо потрібно.\n"
+" * «%s»: перевірити поточну мапу клавіатури і змінити, якщо потрібно.\n"
"\n"
-" * \"%s\": перевірити вибір країни. Якщо Ви знаходитесь не в цій\n"
-"країні, натисніть кнопку \"%s\" і виберіть іншу. Якщо Вашої країни\n"
-"немає в показаному початковому списку, натисніть кнопку \"%s\",\n"
+" * «%s»: перевірити вибір країни. Якщо ви знаходитесь не в цій\n"
+"країні, натисніть кнопку «%s» і виберіть іншу. Якщо вашої країни\n"
+"немає в показаному початковому списку, натисніть кнопку «%s»,\n"
"щоб отримати повний список країн.\n"
"\n"
-" * \"%s\": типово DrakX визначає часовий пояс на основі країни, яку\n"
-"Ви вибрали. Ви можете натиснути кнопку \"%s\", якщо його визначено\n"
+" * «%s»: типово DrakX визначає часовий пояс на основі країни, яку\n"
+"ви вибрали. ви можете натиснути кнопку «%s», якщо його визначено\n"
"неправильно.\n"
"\n"
-" * \"%s\": перевірте налаштування миші і натисніть на кнопку, щоб\n"
+" * «%s»: перевірте налаштування миші і натисніть на кнопку, щоб\n"
"змінити, якщо необхідно.\n"
"\n"
-" * \"%s\": натиснувши на кнопку \"%s\", Ви викличите Помічника\n"
-"налаштування друкарки. Зверніться до відповідного розділу \"Starter\n"
-"Guide\" для детальнішої інформації про те, як встановити нову\n"
-"друкарку. Інтерфейс, представлений там, є подібним до того, що\n"
-"використовується при встановленні.\n"
-"\n"
-" * \"%s\": якщо у Вашій системі знайдено звукову карту, її буде\n"
-"показано тут. Якщо Ви виявите, що показана звукова карта не є\n"
-"тою, що насправді встановлена у системі, можете натиснути на\n"
+" * «%s»: якщо у вашій системі знайдено звукову карту, її буде\n"
+"показано тут. Якщо ви виявите, що показана звукова карта не є\n"
+"тією, що насправді встановлена у системі, можете натиснути на\n"
"кнопку і вибрати інший драйвер.\n"
"\n"
-" * \"%s\": якщо у Вашій системі знайдено карту ТБ, її має бути показано\n"
-"тут. Якщо ж Ви маєте карту ТБ, але її не знайдено, натисніть \"%s\",\n"
+" * «%s»: якщо у вашій системі знайдено карту ТБ, її має бути показано\n"
+"тут. Якщо ж ви маєте карту ТБ, але її не знайдено, натисніть «%s»,\n"
"щоб спробувати налаштувати її вручну.\n"
"\n"
-" * \"%s\": Ви можете натиснути \"%s\", щоб змінити параметри, пов'язані\n"
+" * «%s»: ви можете натиснути «%s», щоб змінити параметри, пов'язані\n"
"з картою, якщо бачите, що конфігурацію встановлено неправильно.\n"
"\n"
-" * \"%s\": типово DrakX налаштовує графічний інтерфейс з роздільною\n"
+" * «%s»: типово DrakX налаштовує графічний інтерфейс з роздільною\n"
"здатністю \"800x600\" або \"1024x768\". Якщо це Вас не задовольняє,\n"
-"натисніть \"%s\", щоб переналаштувати графічний інтерфейс.\n"
+"натисніть «%s», щоб переналаштувати графічний інтерфейс.\n"
"\n"
-" * \"%s\": Якщо Ви хочете зараз налаштувати доступ до Інтернету\n"
+" * «%s»: Якщо ви хочете зараз налаштувати доступ до інтернету\n"
"або місцевої мережі. Зверніться до друкованої документації, або\n"
-"Центру керування Мандріва після завершення встановлення,\n"
+"Центру керування Mageia після завершення встановлення,\n"
"щоб отримати повну довідку.\n"
"\n"
-" * \"%s\": тут можна налаштувати адреси проксі HTTP і FTP, якщо\n"
-"Ваша машина знаходиться за проксі-сервером.\n"
+" * «%s»: тут можна налаштувати адреси проксі HTTP і FTP, якщо\n"
+"ваша машина знаходиться за проксі-сервером.\n"
"\n"
-" * \"%s\": цей пункт дасть змогу перевизначити рівень безпеки, який\n"
+" * «%s»: цей пункт дасть змогу перевизначити рівень безпеки, який\n"
"встановлено попереднім кроком ().\n"
"\n"
-" * \"%s\": якщо Ви плануєте під'єднати Вашу машину до Інтернету,\n"
+" * «%s»: якщо ви плануєте під'єднати ваш комп’ютер до інтернету,\n"
"хорошою ідеєю є захистися від вторгнення шляхом встановлення\n"
"захисного шлюзу. Зверніться до відповідного розділу \"Starter Guide\"\n"
"для детальнішої інформації про встановлення захисного шлюзу.\n"
"\n"
-" * \"%s\": якщо Ви хочете змінити конфігурацію завантажувача,\n"
-"натисніть цю кнопку. Це зарезервовано для досвідчених користувачів.\n"
+" * «%s»: якщо ви хочете змінити конфігурацію завантажувача,\n"
+"натисніть цю кнопку. Ці налаштування призначено для досвідчених\n"
+"користувачів. Зверніться до паперової документації або вбудованої\n"
+"довідки щодо налаштувань завантажувача у Центрі керування\n"
+"Mageia.\n"
+"\n"
"\n"
-" * \"%s\": тут Ви можете підправити, які служби будуть виконуватися\n"
-"на Вашій машині. Якщо Ви плануєте використовувати цю машину в\n"
-"якості сервера, хорошою ідеєю є переглянути ці налаштування."
+" * «%s»: тут ви можете підправити, які служби будуть виконуватися\n"
+"у вашій системі. Якщо ви плануєте використовувати цю машину як\n"
+"сервер, варто є переглянути ці налаштування."
-#: ../help.pm:858
+#: ../help.pm:809
+#, c-format
+msgid "TV card"
+msgstr "ТБ-картка"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
-msgstr "Карта ISDN"
+msgstr "Картка ISDN"
#: ../help.pm:858
#, c-format
@@ -1902,32 +1876,34 @@ msgstr "Графічний інтерфейс"
#: ../help.pm:861
#, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
-"Виберіть твердий диск, який Ви хочете відформатувати для\n"
-"створення нового розділу Мандріва лінакса. Будьте обережні,\n"
-"всі дані, що знаходяться в цьому розділі, будуть втрачені і їх\n"
+"Виберіть твердий диск, який ви хочете відформатувати для\n"
+"створення нового розділу Mageia. Будьте обережні:\n"
+"всі дані, що знаходяться в цьому розділі, буде втрачено, їх\n"
"неможливо буде відновити!"
#: ../help.pm:866
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
-"Натисніть \"%s\", якщо Ви хочете стерти всі дані і розділи на цьому\n"
-"твердому диску. Будьте уважні, після натиснення на \"%s\" Ви\n"
+"Натисніть «%s», якщо ви хочете стерти всі дані і розділи на цьому\n"
+"твердому диску. Будьте уважні, після натиснення на «%s» Ви\n"
"не зможете відновити жодних даних і розділів на цьому твердому\n"
"диску, включаючи також будь-які дані Віндовс.\n"
"\n"
-"Натисніть \"%s\", щоб зупинити цю операцію без втрати даних і\n"
+"Натисніть «%s», щоб зупинити цю операцію без втрати даних і\n"
"розділів, які знаходяться на цьому твердому диску."
#: ../help.pm:872
@@ -1938,5 +1914,111 @@ msgstr "Далі ->"
#: ../help.pm:872
#, c-format
msgid "<- Previous"
-msgstr "<- Попередній"
+msgstr "<- Назад"
+
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": натиснення кнопки \"%s\" викликає Помічника налаштування\n"
+#~ "друкарки. Зверніться до відповідного розділу \"Starter Guide\" для\n"
+#~ "додаткової інформації про встановлення нової друкарки. Показаний\n"
+#~ "там інтерфейс подібний до того, що використовується при встановленні."
+
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "Це найважливіший крок для безпеки Вашої системи GNU/Linux: Вам\n"
+#~ "потрібно ввести пароль для користувача Root. Root - це системний\n"
+#~ "адміністратор і тільки йому дозволено робити поновлення системи,\n"
+#~ "додавати користувачів, змінювати загальну конфігурацію системи,\n"
+#~ "таке інше. Одним словом - Root може все! Ось чому Вам слід вибирати\n"
+#~ "пароль, який важко вгадати - DrakX підкаже Вам, якщо пароль занадто\n"
+#~ "легкий. Як Ви побачите, пароль вводити необов'язково, але ми\n"
+#~ "настійливо застерігаємо Вас проти такого. GNU/Linux така ж схильна\n"
+#~ "до помилок оператора, як і будь-яка інша система. Оскільки Root може\n"
+#~ "обминути всі обмеження і ненароком стерти всі дані на всіх розділах,\n"
+#~ "неуважно працюючи з ними, тому повинно бути важко стати\n"
+#~ "користувачем root.\n"
+#~ "\n"
+#~ "Пароль має бути сумішшю алфавітно-цифрових символів і бути\n"
+#~ "завдовжки не менше 8 символів. Ніколи не записуйте пароль - це\n"
+#~ "зробить занадто легким отримання несанкціонованого доступу до\n"
+#~ "системи.\n"
+#~ "\n"
+#~ "Одне застереження -- не робіть пароль занадто довгим чи складним,\n"
+#~ "тому що Вам потрібно його запам'ятовувати.\n"
+#~ "\n"
+#~ "Коли Ви будете вводити пароль, його не буде видно на екрані. Щоб\n"
+#~ "зменшити можливість помилки при вводі пароля \"всліпу\", Вам\n"
+#~ "потрібно буде ввести його двічі. Якщо ж так станеться, що Ви\n"
+#~ "допустите одну і ту ж помилку двічі, Вам потрібно буде ввести цей\n"
+#~ "\"неправильний\" пароль при першій реєстрації в системі.\n"
+#~ "\n"
+#~ "Якщо Ви хочете дозволити доступ до цього комп'ютера для його\n"
+#~ "контролю сервером автентифікації, натисніть кнопку \"%s\".\n"
+#~ "\n"
+#~ "Якщо Ваша мережа використовує служби автентифікації LDAP, NIS або\n"
+#~ "PDC Windows Domain, виберіть одну з можливостей з \"%s\". Якщо Ви не\n"
+#~ "знаєте, яку з них використовувати, запитайте в свого системного "
+#~ "адміністратора.\n"
+#~ "\n"
+#~ "Якщо Ви боїтесь, що маєте проблеми із запам'ятовуванням паролів, якщо\n"
+#~ "Ваш комп'ютер ніколи не буде під'єднано до Інтернету, або Ви абсолютно\n"
+#~ "довіряєте всім, хто використовує Ваш комп'ютер, можете вибрати \"%s\"."
+#~ msgid "authentication"
+#~ msgstr "розпізнавання"
diff --git a/perl-install/install/help/po/uz.po b/perl-install/install/help/po/uz.po
index f11696d44..487318fe7 100644
--- a/perl-install/install/help/po/uz.po
+++ b/perl-install/install/help/po/uz.po
@@ -7,27 +7,28 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX-uz\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2006-04-23 12:29+0200\n"
"Last-Translator: Mashrab Kuvatov <kmashrab@uni-bremen.de>\n"
"Language-Team: Uzbek <kmashrab@uni-bremen.de>\n"
+"Language: uz\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.2\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
-"Давом этишдан олдин лицензиянинг шартларини эътибор билан ўқиб\n"
-"чиқинг. Лицензия бутун Mandriva Linux'га тегишли. Агар унинг барча\n"
-"шартларига рози бўлсангиз, \"%s\"ни танланг. Агар рози бўлмасангиз,\n"
-"компьютерни ўчириб-ёқиш учун \"%s\" тугмасини босинг."
+"Davom etishdan oldin litsenziyaning shartlarini e'tibor bilan o'qib\n"
+"chiqing. Litsenziya butun Mageia'ga tegishli. Agar uning barcha\n"
+"shartlariga rozi bo'lsangiz, \"%s\"ni tanlang. Agar rozi bo'lmasangiz,\n"
+"kompyuterni o'chirib-yoqish uchun \"%s\" tugmasini bosing."
#: ../help.pm:20
#, c-format
@@ -72,13 +73,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
-msgstr "Бу қулайликдан фойдаланишни истайсизми?"
+msgstr "Bu qulaylikdan foydalanishni istaysizmi?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -88,52 +100,55 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Mandriva Linux бир нечта компакт-дискларда тарқатилади. Агар танланган "
-"пакет\n"
-"бошқа компакт-дискда жойлашган бўлса, DrakX жорий компакт-дискни\n"
-"чиқаради ва тегишлисини қўйишни сўрайди. Агар сўралган компакт-диск сизда\n"
-"бўлмаса, \"%s\" тугмасини босинг. Бу ҳолда, тегишли пакетлар ўрнатилмайди."
+"Mageia bir nechta kompakt-disklarda tarqatiladi. Agar tanlangan paket\n"
+"boshqa kompakt-diskda joylashgan bo'lsa, DrakX joriy kompakt-diskni\n"
+"chiqaradi va tegishlisini qo'yishni so'raydi. Agar so'ralgan kompakt-disk "
+"sizda\n"
+"bo'lmasa, \"%s\" tugmasini bosing. Bu holda, tegishli paketlar o'rnatilmaydi."
#: ../help.pm:95
#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -146,8 +161,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -188,17 +202,17 @@ msgstr ""
#: ../help.pm:149 ../help.pm:591
#, c-format
msgid "Upgrade"
-msgstr "Янгилаш"
+msgstr "Yangilash"
#: ../help.pm:149
#, c-format
msgid "With basic documentation"
-msgstr "Асосий қўлланмалар билан"
+msgstr "Asosiy qo'llanmalar bilan"
#: ../help.pm:149
#, c-format
msgid "Truly minimal install"
-msgstr "Ҳақиқий минимал ўрнатиш"
+msgstr "Haqiqiy minimal o'rnatish"
#: ../help.pm:152
#, c-format
@@ -214,10 +228,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -243,16 +257,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr ""
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -290,7 +295,12 @@ msgid ""
"server which can be used by other machines on your local network as well."
msgstr ""
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr ""
@@ -308,18 +318,18 @@ msgid ""
"with or without 3D acceleration, you're asked to choose the server which\n"
"best suits your needs."
msgstr ""
-"Монитор\n"
+"Monitor\n"
"\n"
-" Одатда, ўрнатувчи компьютерингизга уланган мониторни\n"
-"автоматик равишда аниқлайди ва мослайди. Агар бу нотўғри\n"
-"бўлса, аслида уланган мониторни рўйхатдан танлашингиз мумкин."
+" Odatda, o'rnatuvchi kompyuteringizga ulangan monitorni\n"
+"avtomatik ravishda aniqlaydi va moslaydi. Agar bu noto'g'ri\n"
+"bo'lsa, aslida ulangan monitorni ro'yxatdan tanlashingiz mumkin."
#: ../help.pm:234
#, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -383,11 +393,11 @@ msgid ""
"monitor connected to your machine. If it is not correct, you can choose\n"
"from this list the monitor which is connected to your computer."
msgstr ""
-"Монитор\n"
+"Monitor\n"
"\n"
-" Одатда, ўрнатувчи компьютерингизга уланган мониторни\n"
-"автоматик равишда аниқлайди ва мослайди. Агар бу нотўғри\n"
-"бўлса, аслида уланган мониторни рўйхатдан танлашингиз мумкин."
+" Odatda, o'rnatuvchi kompyuteringizga ulangan monitorni\n"
+"avtomatik ravishda aniqlaydi va moslaydi. Agar bu noto'g'ri\n"
+"bo'lsa, aslida ulangan monitorni ro'yxatdan tanlashingiz mumkin."
#: ../help.pm:298
#, c-format
@@ -422,39 +432,43 @@ msgstr ""
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -463,15 +477,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -488,12 +502,17 @@ msgstr ""
#: ../help.pm:377
#, c-format
msgid "Use existing partition"
-msgstr "Дискда бор қисмлардан фойдаланиш"
+msgstr "Diskda bor qismlardan foydalanish"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
-msgstr "Бутун дискни ўчириш"
+msgstr "Butun diskni o'chirish"
#: ../help.pm:380
#, c-format
@@ -536,9 +555,24 @@ msgstr ""
#: ../help.pm:412
#, c-format
msgid "Generate auto-install floppy"
-msgstr "Авто-ўрнатиш дискетни яратиш"
+msgstr "Avto-o'rnatish disketni yaratish"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -558,7 +592,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -567,7 +601,7 @@ msgstr ""
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -590,7 +624,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -600,27 +634,30 @@ msgstr ""
#: ../help.pm:461
#, c-format
msgid "Security Administrator"
-msgstr "Хавфсизлик бошқарувчиси"
+msgstr "Xavfsizlik boshqaruvchisi"
#: ../help.pm:464
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -636,21 +673,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -667,57 +706,82 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr ""
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
-msgstr "Одий/эксперт усулига ўтиш"
+msgstr "Odiy/ekspert usuliga o'tish"
#: ../help.pm:536
#, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
@@ -737,23 +801,23 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
#: ../help.pm:594
@@ -794,8 +858,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -827,7 +890,12 @@ msgstr ""
msgid "Espanol"
msgstr ""
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -872,7 +940,7 @@ msgstr ""
#: ../help.pm:684
#, c-format
msgid "Universal | Any PS/2 & USB mice"
-msgstr "Истаган PS/2 ва USB сичқонча"
+msgstr "Istagan PS/2 va USB sichqoncha"
#: ../help.pm:687
#, c-format
@@ -880,56 +948,10 @@ msgid ""
"Please select the correct port. For example, the \"COM1\" port under\n"
"Windows is named \"ttyS0\" under GNU/Linux."
msgstr ""
-"Илтимос тўғри портни танланг. Масалан, Windows'даги \"COM1\"\n"
-"портининг номи GNU/Linux'да \"ttyS0\"."
-
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
+"Iltimos to'g'ri portni tanlang. Masalan, Windows'dagi \"COM1\"\n"
+"portining nomi GNU/Linux'da \"ttyS0\"."
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "тасдиқлаш"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -943,7 +965,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -954,7 +976,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -975,7 +997,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
@@ -984,10 +1006,15 @@ msgstr ""
msgid "pdq"
msgstr ""
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
-msgstr "Эксперт"
+msgstr "Ekspert"
#: ../help.pm:771
#, c-format
@@ -997,7 +1024,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1017,9 +1044,9 @@ msgid ""
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver."
msgstr ""
-"\"%s\": агар компьютерда товуш картаси аниқланса у шу ерда кўрсатилади.\n"
-"Агар кўрсатилган товуш картаси компьютердаги товуш картаси\n"
-"билан мос келмаса, тугмани босиб бошқа драйверни танлашингиз мумкин."
+"\"%s\": agar kompyuterda tovush kartasi aniqlansa u shu erda ko'rsatiladi.\n"
+"Agar ko'rsatilgan tovush kartasi kompyuterdagi tovush kartasi\n"
+"bilan mos kelmasa, tugmani bosib boshqa drayverni tanlashingiz mumkin."
#: ../help.pm:794
#, c-format
@@ -1045,11 +1072,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1067,8 +1089,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1085,14 +1106,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "ISDN karta"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN karta"
@@ -1100,13 +1126,13 @@ msgstr "ISDN karta"
#: ../help.pm:858
#, c-format
msgid "Graphical Interface"
-msgstr "График интерфейс"
+msgstr "Grafik interfeys"
#: ../help.pm:861
#, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
@@ -1114,28 +1140,32 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
-"Бу дискдаги барча маълумотни ва дискнинг барча қисмларини\n"
-"ўчириш учун \"%s\"ни босинг. Эҳтиёт бўлинг, \"%s\"ни босганингиздан\n"
-"кейин дискдаги маълумотни ва дискнинг қисмларини, шу жумлада\n"
-"Windows маълумотини ҳам, тиклаб бўлмайди.\n"
+"Bu diskdagi barcha ma'lumotni va diskning barcha qismlarini\n"
+"o'chirish uchun \"%s\"ni bosing. Ehtiyot bo'ling, \"%s\"ni bosganingizdan\n"
+"keyin diskdagi ma'lumotni va diskning qismlarini, shu jumlada\n"
+"Windows ma'lumotini ham, tiklab bo'lmaydi.\n"
"\n"
-"Маълумотни ва дискнинг барча қисмларини йўқотмасдан бу\n"
-"операцияни тўхтатиш учун \"%s\"ни босинг."
+"Ma'lumotni va diskning barcha qismlarini yo'qotmasdan bu\n"
+"operatsiyani to'xtatish uchun \"%s\"ni bosing."
#: ../help.pm:872
#, c-format
msgid "Next ->"
-msgstr "Кейинги ->"
+msgstr "Keyingi ->"
#: ../help.pm:872
#, c-format
msgid "<- Previous"
-msgstr "<- Олдинги"
+msgstr "<- Oldingi"
+#~ msgid "authentication"
+#~ msgstr "tasdiqlash"
diff --git a/perl-install/install/help/po/uz@Latn.po b/perl-install/install/help/po/uz@cyrillic.po
index 6608ada4c..c318abb18 100644
--- a/perl-install/install/help/po/uz@Latn.po
+++ b/perl-install/install/help/po/uz@cyrillic.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX-uz\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2006-04-23 12:29+0200\n"
"Last-Translator: Mashrab Kuvatov <kmashrab@uni-bremen.de>\n"
"Language-Team: Uzbek <kmashrab@uni-bremen.de>\n"
@@ -17,17 +17,17 @@ msgstr ""
"X-Generator: KBabel 1.11.2\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
-"Davom etishdan oldin litsenziyaning shartlarini e'tibor bilan o'qib\n"
-"chiqing. Litsenziya butun Mandriva Linux'ga tegishli. Agar uning barcha\n"
-"shartlariga rozi bo'lsangiz, \"%s\"ni tanlang. Agar rozi bo'lmasangiz,\n"
-"kompyuterni o'chirib-yoqish uchun \"%s\" tugmasini bosing."
+"Давом этишдан олдин лицензиянинг шартларини эътибор билан ўқиб\n"
+"чиқинг. Лицензия бутун Mageia'га тегишли. Агар унинг барча\n"
+"шартларига рози бўлсангиз, \"%s\"ни танланг. Агар рози бўлмасангиз,\n"
+"компьютерни ўчириб-ёқиш учун \"%s\" тугмасини босинг."
#: ../help.pm:20
#, c-format
@@ -72,13 +72,23 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
-msgstr "Bu qulaylikdan foydalanishni istaysizmi?"
+msgstr "Бу қулайликдан фойдаланишни истайсизми?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -88,53 +98,51 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Mandriva Linux bir nechta kompakt-disklarda tarqatiladi. Agar tanlangan "
-"paket\n"
-"boshqa kompakt-diskda joylashgan bo'lsa, DrakX joriy kompakt-diskni\n"
-"chiqaradi va tegishlisini qo'yishni so'raydi. Agar so'ralgan kompakt-disk "
-"sizda\n"
-"bo'lmasa, \"%s\" tugmasini bosing. Bu holda, tegishli paketlar o'rnatilmaydi."
+"Mageia бир нечта компакт-дискларда тарқатилади. Агар танланган "
+"пакет\n"
+"бошқа компакт-дискда жойлашган бўлса, DrakX жорий компакт-дискни\n"
+"чиқаради ва тегишлисини қўйишни сўрайди. Агар сўралган компакт-диск сизда\n"
+"бўлмаса, \"%s\" тугмасини босинг. Бу ҳолда, тегишли пакетлар ўрнатилмайди."
#: ../help.pm:95
#, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -147,8 +155,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -189,17 +196,17 @@ msgstr ""
#: ../help.pm:149 ../help.pm:591
#, c-format
msgid "Upgrade"
-msgstr "Yangilash"
+msgstr "Янгилаш"
#: ../help.pm:149
#, c-format
msgid "With basic documentation"
-msgstr "Asosiy qo'llanmalar bilan"
+msgstr "Асосий қўлланмалар билан"
#: ../help.pm:149
#, c-format
msgid "Truly minimal install"
-msgstr "Haqiqiy minimal o'rnatish"
+msgstr "Ҳақиқий минимал ўрнатиш"
#: ../help.pm:152
#, c-format
@@ -215,10 +222,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -244,16 +251,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr ""
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -291,7 +289,12 @@ msgid ""
"server which can be used by other machines on your local network as well."
msgstr ""
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr ""
@@ -309,18 +312,18 @@ msgid ""
"with or without 3D acceleration, you're asked to choose the server which\n"
"best suits your needs."
msgstr ""
-"Monitor\n"
+"Монитор\n"
"\n"
-" Odatda, o'rnatuvchi kompyuteringizga ulangan monitorni\n"
-"avtomatik ravishda aniqlaydi va moslaydi. Agar bu noto'g'ri\n"
-"bo'lsa, aslida ulangan monitorni ro'yxatdan tanlashingiz mumkin."
+" Одатда, ўрнатувчи компьютерингизга уланган мониторни\n"
+"автоматик равишда аниқлайди ва мослайди. Агар бу нотўғри\n"
+"бўлса, аслида уланган мониторни рўйхатдан танлашингиз мумкин."
#: ../help.pm:234
#, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -384,11 +387,11 @@ msgid ""
"monitor connected to your machine. If it is not correct, you can choose\n"
"from this list the monitor which is connected to your computer."
msgstr ""
-"Monitor\n"
+"Монитор\n"
"\n"
-" Odatda, o'rnatuvchi kompyuteringizga ulangan monitorni\n"
-"avtomatik ravishda aniqlaydi va moslaydi. Agar bu noto'g'ri\n"
-"bo'lsa, aslida ulangan monitorni ro'yxatdan tanlashingiz mumkin."
+" Одатда, ўрнатувчи компьютерингизга уланган мониторни\n"
+"автоматик равишда аниқлайди ва мослайди. Агар бу нотўғри\n"
+"бўлса, аслида уланган мониторни рўйхатдан танлашингиз мумкин."
#: ../help.pm:298
#, c-format
@@ -423,39 +426,39 @@ msgstr ""
#: ../help.pm:319
#, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -464,15 +467,14 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -489,12 +491,17 @@ msgstr ""
#: ../help.pm:377
#, c-format
msgid "Use existing partition"
-msgstr "Diskda bor qismlardan foydalanish"
+msgstr "Дискда бор қисмлардан фойдаланиш"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
-msgstr "Butun diskni o'chirish"
+msgstr "Бутун дискни ўчириш"
#: ../help.pm:380
#, c-format
@@ -537,9 +544,24 @@ msgstr ""
#: ../help.pm:412
#, c-format
msgid "Generate auto-install floppy"
-msgstr "Avto-o'rnatish disketni yaratish"
+msgstr "Авто-ўрнатиш дискетни яратиш"
+
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
#, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
@@ -559,7 +581,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -568,7 +590,7 @@ msgstr ""
#: ../help.pm:437
#, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -591,7 +613,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -601,27 +623,27 @@ msgstr ""
#: ../help.pm:461
#, c-format
msgid "Security Administrator"
-msgstr "Xavfsizlik boshqaruvchisi"
+msgstr "Хавфсизлик бошқарувчиси"
#: ../help.pm:464
#, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -637,21 +659,21 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -668,57 +690,76 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr ""
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
-msgstr "Odiy/ekspert usuliga o'tish"
+msgstr "Одий/эксперт усулига ўтиш"
#: ../help.pm:536
#, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the first\n"
"disk or partition is called \"C:\")."
msgstr ""
@@ -738,23 +779,22 @@ msgid ""
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
#: ../help.pm:594
@@ -795,8 +835,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -828,7 +867,12 @@ msgstr ""
msgid "Espanol"
msgstr ""
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -873,7 +917,7 @@ msgstr ""
#: ../help.pm:684
#, c-format
msgid "Universal | Any PS/2 & USB mice"
-msgstr "Istagan PS/2 va USB sichqoncha"
+msgstr "Истаган PS/2 ва USB сичқонча"
#: ../help.pm:687
#, c-format
@@ -881,56 +925,10 @@ msgid ""
"Please select the correct port. For example, the \"COM1\" port under\n"
"Windows is named \"ttyS0\" under GNU/Linux."
msgstr ""
-"Iltimos to'g'ri portni tanlang. Masalan, Windows'dagi \"COM1\"\n"
-"portining nomi GNU/Linux'da \"ttyS0\"."
+"Илтимос тўғри портни танланг. Масалан, Windows'даги \"COM1\"\n"
+"портининг номи GNU/Linux'да \"ttyS0\"."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "tasdiqlash"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -944,7 +942,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -955,7 +953,7 @@ msgstr ""
#, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -976,7 +974,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
@@ -985,10 +983,15 @@ msgstr ""
msgid "pdq"
msgstr ""
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
-msgstr "Ekspert"
+msgstr "Эксперт"
#: ../help.pm:771
#, c-format
@@ -998,7 +1001,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1018,9 +1021,9 @@ msgid ""
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver."
msgstr ""
-"\"%s\": agar kompyuterda tovush kartasi aniqlansa u shu erda ko'rsatiladi.\n"
-"Agar ko'rsatilgan tovush kartasi kompyuterdagi tovush kartasi\n"
-"bilan mos kelmasa, tugmani bosib boshqa drayverni tanlashingiz mumkin."
+"\"%s\": агар компьютерда товуш картаси аниқланса у шу ерда кўрсатилади.\n"
+"Агар кўрсатилган товуш картаси компьютердаги товуш картаси\n"
+"билан мос келмаса, тугмани босиб бошқа драйверни танлашингиз мумкин."
#: ../help.pm:794
#, c-format
@@ -1046,11 +1049,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1068,8 +1066,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1086,14 +1083,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "ISDN karta"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN karta"
@@ -1101,13 +1103,13 @@ msgstr "ISDN karta"
#: ../help.pm:858
#, c-format
msgid "Graphical Interface"
-msgstr "Grafik interfeys"
+msgstr "График интерфейс"
#: ../help.pm:861
#, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
@@ -1115,28 +1117,30 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be able\n"
+"to recover any data and partitions present on this hard disk drive, including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
-"Bu diskdagi barcha ma'lumotni va diskning barcha qismlarini\n"
-"o'chirish uchun \"%s\"ni bosing. Ehtiyot bo'ling, \"%s\"ni bosganingizdan\n"
-"keyin diskdagi ma'lumotni va diskning qismlarini, shu jumlada\n"
-"Windows ma'lumotini ham, tiklab bo'lmaydi.\n"
+"Бу дискдаги барча маълумотни ва дискнинг барча қисмларини\n"
+"ўчириш учун \"%s\"ни босинг. Эҳтиёт бўлинг, \"%s\"ни босганингиздан\n"
+"кейин дискдаги маълумотни ва дискнинг қисмларини, шу жумлада\n"
+"Windows маълумотини ҳам, тиклаб бўлмайди.\n"
"\n"
-"Ma'lumotni va diskning barcha qismlarini yo'qotmasdan bu\n"
-"operatsiyani to'xtatish uchun \"%s\"ni bosing."
+"Маълумотни ва дискнинг барча қисмларини йўқотмасдан бу\n"
+"операцияни тўхтатиш учун \"%s\"ни босинг."
#: ../help.pm:872
#, c-format
msgid "Next ->"
-msgstr "Keyingi ->"
+msgstr "Кейинги ->"
#: ../help.pm:872
#, c-format
msgid "<- Previous"
-msgstr "<- Oldingi"
+msgstr "<- Олдинги"
+#~ msgid "authentication"
+#~ msgstr "тасдиқлаш"
diff --git a/perl-install/install/help/po/vi.po b/perl-install/install/help/po/vi.po
index 04e84249f..887d001df 100644
--- a/perl-install/install/help/po/vi.po
+++ b/perl-install/install/help/po/vi.po
@@ -7,25 +7,26 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX-vi version\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2005-06-02 21:17+0700\n"
"Last-Translator: Larry Nguyen <larry@vnlinux.org>\n"
"Language-Team: <gnomevi-list@lists.sourceforge.net>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Trước khi tiếp tục, hãy đọc kỹ các điều khoản ghi trong bản quyền.\n"
-"Nó bao xuyên suốt toàn bộ phân phối Mandriva Linux. Nếu đồng ý với\n"
+"Nó bao xuyên suốt toàn bộ phân phối Mageia. Nếu đồng ý với\n"
"mọi điều khoản trong đó, nhấn vào hộp kiểm \"%s\". Nếu không, hãy\n"
"nhấn nút \"%s\" để khởi động lại máy tính."
@@ -105,13 +106,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Bạn muốn dùng tính năng này không?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -121,24 +133,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Trên đây là danh sách các phân vùng Linux hiện có trên đĩa cứng của bạn.\n"
@@ -173,29 +189,28 @@ msgstr ""
"thấp thứ nhì\", v.v..."
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Việc cài đặt Mandriva Linux được phân phối trên vài đĩa CDROM. Nếu\n"
+"Việc cài đặt Mageia được phân phối trên vài đĩa CDROM. Nếu\n"
"một gói được chọn nằm trên CD khác, DrakX sẽ nhả CD hiện thời và yêu\n"
"cầu bạn nạp CD thích hợp. Nếu không có CD đó, hãy nhấn \"%s\", gói\n"
"tương ứng sẽ không được cài đặt."
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -208,8 +223,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -247,12 +261,11 @@ msgid ""
"megabytes."
msgstr ""
"Bây giờ là lúc chỉ ra chương trình nào mà bạn muốn cài đặt vào hệ thống.\n"
-"Hiện có hàng nghìn gói tin dùng cho Mandriva Linux và được tổ chức theo\n"
+"Hiện có hàng nghìn gói tin dùng cho Mageia và được tổ chức theo\n"
"nhóm các ứng dụng giống nhau để dễ dàng quản lý.\n"
"\n"
"Các gói phần mềm được xếp loại theo các nhóm tương ứng với việc sử dụng\n"
-"cụ thể cho máy tính. Mandriva Linux có 4 kiểu cài đặt sẵn với nhiều loại gói "
-"tin.\n"
+"cụ thể cho máy tính. Mageia có 4 kiểu cài đặt sẵn với nhiều loại gói tin.\n"
"Bạn có thể chọn dùng các ứng dụng pha trộn của các kiểu cài đặt này, ví dụ\n"
"như cài đặt kiểu ``Máy trạm'' cùng với việc cài các ứng dụng của kiểu cài\n"
"đặt ``Máy chủ''.\n"
@@ -318,7 +331,7 @@ msgid "Truly minimal install"
msgstr "Cài đặt thật tối thiểu"
#: ../help.pm:152
-#, c-format
+#, fuzzy, c-format
msgid ""
"If you choose to install packages individually, the installer will present\n"
"a tree containing all packages classified by groups and subgroups. While\n"
@@ -331,10 +344,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -364,7 +377,7 @@ msgstr ""
"\n"
"!! Nếu các gói tin cho server được chọn cố tình hoặc do nó là thành\n"
"phần của một nhóm, bạn sẽ được hỏi để khẳng định là bạn thật sự\n"
-"muốn những server này được cài đặt. Trong Mandriva Linux, bất kỳ\n"
+"muốn những server này được cài đặt. Trong Mageia, bất kỳ\n"
"server đã được cài đặt nào đều chạy vào lúc khởi động theo mặc định.\n"
"Thậm chí được coi là an toàn tại thời điểm phát hành, nó vẫn có thể\n"
"có lỗ hổng bảo mật được phát hiện sau khi phát hành phiên bản Mandriva\n"
@@ -392,20 +405,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Các phụ thuộc tự động"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\": việc nhấn nút \"%s\" sẽ mở đồ thuật cấu hình máy in.\n"
-"Tham khảo chương tương ứng trong ``Starter Guide'' để biết thêm\n"
-"thông tin về cách thiết lập máy in mới. Giao diện hiện diện tại\n"
-"đó giống như giao diện thấy trong quá trình cài đặt."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -470,7 +470,12 @@ msgstr ""
"cho tính năng này hoạt động. Thực tế là nó sẽ cài đặt một máy chủ thời\n"
"gian lên máy tính này để các máy khác trong mạng cục bộ tùy ý sử dụng."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Tự động đồng bộ hóa thời gian"
@@ -499,11 +504,11 @@ msgstr ""
"cho nhu cầu của bạn."
#: ../help.pm:234
-#, c-format
+#, fuzzy, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -559,7 +564,7 @@ msgid ""
msgstr ""
"X (cho hệ thống cửa sổ X) là trái tim của giao diện đồ họa GNU/Linux\n"
"mà trên đó mọi môi trường đồ họa (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) được kết hợp trong Mandriva Linux.\n"
+"WindowMaker, etc.) được kết hợp trong Mageia.\n"
"\n"
"Bạn sẽ được xem danh sách các tham số khác nhau để thay đổi sao\n"
"cho việc hiển thị đồ họa được tối ưu.\n"
@@ -672,41 +677,45 @@ msgstr ""
"thị."
#: ../help.pm:319
-#, c-format
+#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -715,15 +724,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -737,10 +746,10 @@ msgid ""
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
"Lúc này bạn cần chọn nơi nào trên đĩa cứng sẽ cài đặt hệ điều hành\n"
-"Mandriva Linux. Nếu như đĩa cứng chưa có gì hoặc nếu đã có một hệ\n"
+"Mageia. Nếu như đĩa cứng chưa có gì hoặc nếu đã có một hệ\n"
"điều hành đang sử dụng toàn bộ không gian đĩa, bạn cần thực hiện việc\n"
"phân vùng đĩa. Về cơ bản, việc phân vùng một ổ đĩa cứng là phân chia\n"
-"các ổ lý luận, tạo không gian để cài đặt hệ thống Mandriva Linux mới.\n"
+"các ổ lý luận, tạo không gian để cài đặt hệ thống Mageia mới.\n"
"\n"
"Do kết quả của quá trình phân vùng thường không thay đổi lại được nữa,\n"
"nên việc phân vùng có thể gây sợ hãi và căng thẳng nếu bạn không phải\n"
@@ -767,7 +776,7 @@ msgstr ""
"lập lại kích thước phân vùng của MS Windows mà có thể không bị mất bất\n"
"kỳ dữ liệu nào. Tuy nhiên bạn rất nên thực hiện việc sao lưu dữ liệu trước "
"đã.\n"
-"Nên chọn giải pháp này nếu muốn dùng cả Mandriva Linux và Windows trên\n"
+"Nên chọn giải pháp này nếu muốn dùng cả Mageia và Windows trên\n"
"cùng một máy tính.\n"
"\n"
" Trước khi chọn tùy chọn này, hãy hiểu là sau khi thực hiện cách này,\n"
@@ -776,7 +785,7 @@ msgstr ""
"liệu và cài đặt phần mềm mới.\n"
"\n"
" * \"%s\": nếu muốn xoá toàn bộ dữ liệu và các phân vùng\n"
-"hiện có trên ổ cứng và thay thế bằng hệ thống Mandriva Linux mới,\n"
+"hiện có trên ổ cứng và thay thế bằng hệ thống Mageia mới,\n"
"hãy dùng tùy chọn này. Hãy thận trọng với tùy chọn này vì sẽ không\n"
"thể thay đổi lựa chọn sau khi đã khẳng định.\n"
"\n"
@@ -798,7 +807,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Dùng phân vùng hiện thời"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Xoá toàn bộ đĩa"
@@ -876,8 +890,23 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Tạo đĩa mềm cài đặt tự động"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
+#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -896,7 +925,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -918,15 +947,15 @@ msgstr ""
"Nhấn lên \"%s\" khi bạn sẵn sàng format các phân vùng.\n"
"\n"
"Nhấn lên \"%s\" nếu muốn chọn một phân vùng khác cho việc\n"
-"cài đặt hệ điều hành Mandriva Linux mới.\n"
+"cài đặt hệ điều hành Mageia mới.\n"
"\n"
"Nhấn lên \"%s\" nếu muốn chọn các phân vùng sẽ được kiểm\n"
"tra các khối bị hỏng trên bề mặt đĩa."
#: ../help.pm:437
-#, c-format
+#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -938,7 +967,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Vào lúc bạn đang cài đặt Mandriva Linux, có thể đã có một số gói tin\n"
+"Vào lúc bạn đang cài đặt Mageia, có thể đã có một số gói tin\n"
"đã được cập nhật kể từ lúc phát hành phiên bản này. Một số lỗi chương\n"
"trình đã được sửa, các vấn đề bảo mật được giải quyết. Để cho bạn\n"
"được hưởng lợi từ các cập nhật này, bây giờ bạn có thể để tải chúng về\n"
@@ -951,7 +980,7 @@ msgstr ""
"đặt những gói được chọn, hoặc nhấn \"%s\" để thôi cập nhật."
#: ../help.pm:450
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -960,7 +989,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -985,24 +1014,27 @@ msgid "Security Administrator"
msgstr "Người Quản Trị Bảo Mật:"
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1018,21 +1050,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1049,17 +1083,11 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"Vào lúc này, bạn cần chọn những phân vùng nào sẽ được dùng để cài đặt\n"
-"hệ thống Mandriva Linux. Nếu các phân vùng đã được xác lập từ lần cài\n"
+"hệ thống Mageia. Nếu các phân vùng đã được xác lập từ lần cài\n"
"đặt GNU/Linux trước đó hay được tạo bằng một công cụ phân vùng khác,\n"
"bạn có thể dùng chúng. Nếu chưa có, bạn sẽ sẽ phải thực hiện việc hoạch\n"
"định các phân vùng.\n"
@@ -1073,7 +1101,7 @@ msgstr ""
"\n"
" * \"%s\": để xóa mọi phân vùng có trên đĩa cứng được chọn.\n"
"\n"
-" * \"%s\": cho phép tự động tạo các phân vùng ext3 và swap\n"
+" * \"%s\": cho phép tự động tạo các phân vùng ext4 và swap\n"
"tại không gian trống của đĩa cứng.\n"
"\n"
" * \"%s\" : cho phép thực hiện thêm một số tính năng:\n"
@@ -1121,60 +1149,84 @@ msgstr ""
"\n"
"Để có thêm thông tin về các loại hệ thống tập tin hiện có, hãy đọc chương\n"
"ext2FS ở trong ``Tài liệu Tham khảo''.\n"
-"\n"
-"Nếu đang thực hiện cài đặt trên máy PPC, có thể bạn muốn tạo một phân vùng\n"
-"``bootstrap'' HFS có kích thước ít nhất 1MB để cho trình nạp khởi động\n"
-"yaboot. Nếu lập kích thước phân vùng này lớn hơn một chút (50MB), bạn sẽ "
-"thấy\n"
-"đó là nơi hữu ích để lưu trữ kernel dự phòng và các ảnh ramdisk cho các\n"
-"trường hợp khởi động khẩn cấp."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Tự động gắn kết phương tiện có thể tháo rời"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Chuyển đổi giữa chế độ bình thường và chuyên gia"
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Phát hiện ra có hơn một phân vùng Microsoft Windows trên đĩa cứng.\n"
"Hãy chọn một phân vùng cần lập lại kích thước để cài đặt hệ điều\n"
-"hành Mandriva Linux mới.\n"
+"hành Mageia mới.\n"
"\n"
"Mỗi phân vùng được liệt kê như sau: \"Tên Linux\", \"Tên Windows\"\n"
"\"Dung lượng\".\n"
@@ -1216,35 +1268,35 @@ msgstr ""
"nhấn \"%s\" để xem danh sách đầy đủ các quốc gia."
#: ../help.pm:572
-#, c-format
+#, fuzzy, c-format
msgid ""
"This step is activated only if an existing GNU/Linux partition has been\n"
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Bước này chỉ được kích hoạt khi phát hiện thấy một phân vùng GNU/Linux\n"
"đang có sẵn trên máy của bạn.\n"
"\n"
"DrakX cần được biết là bạn muốn thực hiện cài đặt mới hay là nâng cấp\n"
-"hệ thống Mandriva Linux hiện có:\n"
+"hệ thống Mageia hiện có:\n"
"\n"
" * \"%s\": hầu hết các trường hợp, việc này sẽ xóa sạch hệ thống\n"
"cũ. Nếu bạn muốn thay đổi các phân vùng của đĩa cứng, hoặc thay đổi\n"
@@ -1253,13 +1305,13 @@ msgstr ""
"lên ví dụ như thư mục \"home\".\n"
"\n"
" * \"%s\": loại cài đặt này cho phép bạn nâng cấp các gói hiện thời\n"
-"đã cài trên hệ thống Mandriva Linux của bạn. Việc sắp xếp phân vùng\n"
+"đã cài trên hệ thống Mageia của bạn. Việc sắp xếp phân vùng\n"
"hiện thời và dữ liệu không bị thay đổi. Hầu hết các bước cấu hình khác\n"
"vẫn sẵn có để dùng, giống như việc cài đặt chuẩn.\n"
"\n"
-"Tùy chọn ``Nâng cấp'' sẽ hoạt động tốt trên hệ thống Mandriva Linux\n"
+"Tùy chọn ``Nâng cấp'' sẽ hoạt động tốt trên hệ thống Mageia\n"
"phiên bản \"8.1\" hay mới hơn. Không nên thực hiện nâng cấp cho các\n"
-"phiên bản cũ hơn Mandriva Linux \"8.1\" ."
+"phiên bản cũ hơn Mageia \"8.1\" ."
#: ../help.pm:594
#, c-format
@@ -1300,7 +1352,7 @@ msgstr ""
"tổ chức bàn phím giữa La tinh và không phải La tinh."
#: ../help.pm:612
-#, c-format
+#, fuzzy, c-format
msgid ""
"The first step is to choose your preferred language.\n"
"\n"
@@ -1316,8 +1368,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1375,7 +1426,12 @@ msgstr ""
msgid "Espanol"
msgstr "Tây ban nha"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1458,87 +1514,7 @@ msgstr ""
"Hãy chọn đúng cổng. Ví dụ, cổng COM1 trong Microsoft Windows được gọi\n"
"là ttyS0 trong GNU/Linux."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Đây là thời điểm quan trọng nhất cho việc bảo mật hệ thống GNU/Linux:\n"
-"cần phải nhập mật khẩu cho \"root\". \"Root\" là người quản trị hệ thống,\n"
-"là người duy nhất được phép tiến hành cập nhật, thêm người dùng, thay đổi\n"
-"mọi cấu hình hệ thống, v.v... Nói ngắn gọn là \"root\" có thể thực hiện tất "
-"cả!\n"
-"Đó là lý do tại sao bạn cần chọn một mật khẩu phải thật khó đoán.\n"
-"DrakX sẽ cho bạn biết nếu nó quá dễ đoán. Như bạn biết, bạn không bị ép\n"
-"nhập mật khẩu, nhưng chúng tôi khuyên bạn rất nên thực hiện. GNU/Linux\n"
-"có thể bị lỗi như các hệ điều hành khác. Do \"root\" có thể vượt quyền và\n"
-"vô ý xóa toàn bộ dữ liệu trên các phân vùng bởi việc tự nó truy cập thiếu\n"
-"thận trọng! Quan trọng là phải để thật khó khăn nếu muốn trở thành \"root"
-"\".\n"
-"\n"
-"Mật khẩu nên pha trộn các ký tự số và chữ cái và có độ dài ít nhất 8\n"
-"ký tự. Không nên ghi mật khẩu \"root\" vào đâu cả để tránh hệ thống.\n"
-"bị xâm hại\n"
-"\n"
-"Cũng đừng dùng mật khẩu quá dài hoặc phức tạp vì bạn phải nhớ nó!\n"
-"\n"
-"Mật khẩu sẽ không hiển thị trên màn hình khi bạn nhập vào. Vì vậy,\n"
-"phải nhập mật khẩu hai lần để tránh gặp lỗi khi gõ bàn phím. Nếu cả\n"
-"hai lần bạn đều gõ sai như nhau thì mật khẩu \"sai\" sẽ được dùng vào\n"
-"lần đầu bạn thực hiện kết nối.\n"
-"\n"
-"Nếu bạn muốn truy cập vào máy này sẽ được máy chủ chứng thực\n"
-"quản lý, hãy nhấn nút \"%s\".\n"
-"\n"
-"Nếu mạng của bạn dùng trong số LDAP, NIS hay các dịch vụ chứng\n"
-"thực Miền Windows PDC, hãy chọn một cái thích hợp làm \"%s\".\n"
-"Nếu bạn không biết rõ là dùng cái nào, hãy hỏi nhà quản trị mạng.\n"
-"\n"
-"Nếu gặp trục trặc với việc nhắc mật khẩu, bạn có thể chọn \"%s\"\n"
-"khi bạn không nối vào internet hoặc tin tưởng người cùng dùng máy\n"
-"với bạn."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "chứng thực"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1552,7 +1528,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1575,10 +1551,10 @@ msgstr ""
"tùy chọn này khi bạn hiểu rõ việc mình làm."
#: ../help.pm:745
-#, c-format
+#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1599,7 +1575,7 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Đây là lúc chọn hệ thống in ấn dùng cho máy tính này. Các hệ điều\n"
@@ -1624,14 +1600,19 @@ msgstr ""
"\n"
"Nếu bây giờ bạn chọn nhưng sau này lại muốn đổi hệ thống in, bạn có thể\n"
"thực hiện bằng việc chạy PrinterDrake từ Trung Tâm Điều Khiển của\n"
-"Mandriva Linux và nhấn nút \"%s\"."
+"Mageia và nhấn nút \"%s\"."
#: ../help.pm:768
#, c-format
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Chuyên Gia"
@@ -1644,7 +1625,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1685,7 +1666,7 @@ msgstr ""
"driver khác."
#: ../help.pm:794
-#, c-format
+#, fuzzy, c-format
msgid ""
"As a review, DrakX will present a summary of information it has gathered\n"
"about your system. Depending on the hardware installed on your machine, you\n"
@@ -1708,11 +1689,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1730,8 +1706,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1748,7 +1723,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1795,7 +1770,7 @@ msgstr ""
"\n"
" * \"%s\": Nếu muốn cấu hình truy cập mạng cục bộ hay truy cập\n"
"internet. Tham khảo tài liệu hoặc dùng Trung Tâm Điều Khiển \n"
-"Mandriva Linux để thực hiện sau khi cài đặt xong để có được sự trợ\n"
+"Mageia để thực hiện sau khi cài đặt xong để có được sự trợ\n"
"giúp hoàn chỉnh.\n"
"\n"
" * \"%s\": cho phép cấu hình địa chỉ proxy HTTP và FTP nếu máy tính\n"
@@ -1811,13 +1786,18 @@ msgstr ""
" * \"%s\": nếu muốn thay đổi cấu hình của trình nạp khởi động, hãy\n"
"nhấn nút này. Nên dùng chỉ khi bạn là người dùng thành thạo. Hãy tham\n"
"khảo tài liệu đi kèm hoặc trợ giúp trực tuyến về cấu hình trình nạp khởi\n"
-"động trong Trung Tâm Cấu Hình Mandriva Linux.\n"
+"động trong Trung Tâm Cấu Hình Mageia.\n"
"\n"
" * \"%s\": bạn có thể điều khiển dịch vụ nào sẽ được chạy trên máy\n"
"này. Nếu bạn có kế hoạch dùng máy này làm máy chủ, hãy xem lại\n"
"thiết lập này."
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "ISDN card"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN card"
@@ -1828,13 +1808,13 @@ msgid "Graphical Interface"
msgstr "Giao Diện Đồ Họa"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
-"Hãy chọn ổ cứng mà bạn muốn xoá để cài đặt phân vùng Mandriva Linux\n"
+"Hãy chọn ổ cứng mà bạn muốn xoá để cài đặt phân vùng Mageia\n"
"mới. Hãy thận trọng, mọi dữ liệu có trên đó sẽ bị mất và không thể khôi\n"
"phục lại được !"
@@ -1842,12 +1822,14 @@ msgstr ""
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Nhấn chuột lên \"%s\" nếu muốn xóa mọi dữ liệu và phân vùng hiện có\n"
"trên đĩa cứng này. Hãy thận trọng, sau khi nhấn \"%s\", bạn sẽ không\n"
@@ -1867,3 +1849,109 @@ msgstr "Tiếp theo ->"
msgid "<- Previous"
msgstr "<- Về trước"
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\": việc nhấn nút \"%s\" sẽ mở đồ thuật cấu hình máy in.\n"
+#~ "Tham khảo chương tương ứng trong ``Starter Guide'' để biết thêm\n"
+#~ "thông tin về cách thiết lập máy in mới. Giao diện hiện diện tại\n"
+#~ "đó giống như giao diện thấy trong quá trình cài đặt."
+
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "Đây là thời điểm quan trọng nhất cho việc bảo mật hệ thống GNU/Linux:\n"
+#~ "cần phải nhập mật khẩu cho \"root\". \"Root\" là người quản trị hệ "
+#~ "thống,\n"
+#~ "là người duy nhất được phép tiến hành cập nhật, thêm người dùng, thay "
+#~ "đổi\n"
+#~ "mọi cấu hình hệ thống, v.v... Nói ngắn gọn là \"root\" có thể thực hiện "
+#~ "tất cả!\n"
+#~ "Đó là lý do tại sao bạn cần chọn một mật khẩu phải thật khó đoán.\n"
+#~ "DrakX sẽ cho bạn biết nếu nó quá dễ đoán. Như bạn biết, bạn không bị ép\n"
+#~ "nhập mật khẩu, nhưng chúng tôi khuyên bạn rất nên thực hiện. GNU/Linux\n"
+#~ "có thể bị lỗi như các hệ điều hành khác. Do \"root\" có thể vượt quyền "
+#~ "và\n"
+#~ "vô ý xóa toàn bộ dữ liệu trên các phân vùng bởi việc tự nó truy cập "
+#~ "thiếu\n"
+#~ "thận trọng! Quan trọng là phải để thật khó khăn nếu muốn trở thành \"root"
+#~ "\".\n"
+#~ "\n"
+#~ "Mật khẩu nên pha trộn các ký tự số và chữ cái và có độ dài ít nhất 8\n"
+#~ "ký tự. Không nên ghi mật khẩu \"root\" vào đâu cả để tránh hệ thống.\n"
+#~ "bị xâm hại\n"
+#~ "\n"
+#~ "Cũng đừng dùng mật khẩu quá dài hoặc phức tạp vì bạn phải nhớ nó!\n"
+#~ "\n"
+#~ "Mật khẩu sẽ không hiển thị trên màn hình khi bạn nhập vào. Vì vậy,\n"
+#~ "phải nhập mật khẩu hai lần để tránh gặp lỗi khi gõ bàn phím. Nếu cả\n"
+#~ "hai lần bạn đều gõ sai như nhau thì mật khẩu \"sai\" sẽ được dùng vào\n"
+#~ "lần đầu bạn thực hiện kết nối.\n"
+#~ "\n"
+#~ "Nếu bạn muốn truy cập vào máy này sẽ được máy chủ chứng thực\n"
+#~ "quản lý, hãy nhấn nút \"%s\".\n"
+#~ "\n"
+#~ "Nếu mạng của bạn dùng trong số LDAP, NIS hay các dịch vụ chứng\n"
+#~ "thực Miền Windows PDC, hãy chọn một cái thích hợp làm \"%s\".\n"
+#~ "Nếu bạn không biết rõ là dùng cái nào, hãy hỏi nhà quản trị mạng.\n"
+#~ "\n"
+#~ "Nếu gặp trục trặc với việc nhắc mật khẩu, bạn có thể chọn \"%s\"\n"
+#~ "khi bạn không nối vào internet hoặc tin tưởng người cùng dùng máy\n"
+#~ "với bạn."
+
+#~ msgid "authentication"
+#~ msgstr "chứng thực"
diff --git a/perl-install/install/help/po/wa.po b/perl-install/install/help/po/wa.po
index 55d454d50..5a1ff1248 100644
--- a/perl-install/install/help/po/wa.po
+++ b/perl-install/install/help/po/wa.po
@@ -9,10 +9,11 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2005-02-24 21:42+0100\n"
"Last-Translator: Pablo Saratxaga <pablo@walon.org>\n"
"Language-Team: Walloon <linux-wa@walon.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -20,15 +21,15 @@ msgstr ""
"X-Generator: KBabel 1.0.2\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"Divant d' aler pus avant, vos dvrîz lére atintivmint l' licince.\n"
-"Ele covere li distribucion Mandriva Linux, si vos estoz d' acoird\n"
+"Ele covere li distribucion Mageia, si vos estoz d' acoird\n"
"avou les termes del licince, clitchîz sol boesse «%s».\n"
"Ôtrumint, clitchîz sol boton «%s» po renonder l' copiutrece."
@@ -117,13 +118,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "Voloz vs eployî cisse fonccionålité chal?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -133,24 +145,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"Chal pa dzeur i gn a ene djivêye des pårticions Linux k' i gn a so vosse\n"
@@ -189,15 +205,15 @@ msgstr ""
"«deujhinme deure plake», evnd..."
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"L' astalaedje del distribucion Mandriva Linux si fwait a pårti di\n"
+"L' astalaedje del distribucion Mageia si fwait a pårti di\n"
"sacwantès plakes lazer diferinnes. Si on pacaedje k' a stî tchoezi\n"
"est so ene ôte plake lazer, DrakX frè rexhe li plake k' est el lijheu\n"
"d' plakes lazer eyet vos dmander d' î mete li cene k' i fåt.\n"
@@ -205,15 +221,14 @@ msgstr ""
"clitchî so «%s», les pacaedjes corespondants èn seront nén astalés."
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -226,8 +241,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -342,7 +356,7 @@ msgid "Truly minimal install"
msgstr "Astalåcion vormint minimåle"
#: ../help.pm:152
-#, c-format
+#, fuzzy, c-format
msgid ""
"If you choose to install packages individually, the installer will present\n"
"a tree containing all packages classified by groups and subgroups. While\n"
@@ -355,10 +369,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -388,12 +402,12 @@ msgstr ""
"\n"
"!! Si on pacaedje di sierveu a stî tchoezi, soeye-t i en esprès, ou k' i\n"
"fwait pårteye d' on groupe, on vos dmandrè d' acertiner ki vos vloz\n"
-"vormint astaler ces sierveus la. Avou Mandriva Linux tot l' minme ké\n"
+"vormint astaler ces sierveus la. Avou Mageia tot l' minme ké\n"
"sierveu k' a stî astalé est, avou les prémetowès tchuzes, metou en\n"
"alaedje tins di l' enondaedje di l' éndjole. Minme s' i sont seurs\n"
"et k' i gn a nou cnoxhou problinme å moumint ki l' distribucion a stî\n"
"fwaite, i s' pout k' des trôs di såvrité soeyexhe discovrous après ki\n"
-"cisse modêye chal di Mandriva Linux fouxhe fineye. Si vos n' savoz nén çou\n"
+"cisse modêye chal di Mageia fouxhe fineye. Si vos n' savoz nén çou\n"
"k' on siervice dné est supôzé di fé, ou pocwè k' il est astalé, adon\n"
"clitchîz so «%s». Si vos clitchîz so «%s» les siervices mostrés sront\n"
"astalés eyet enondés otomaticmint. !!\n"
@@ -417,21 +431,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "Aloyances otomatikes"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"«%s»: si vos clitchîz so «%s» çoula enondrè li macrea\n"
-"d' apontiaedje des scrireces. Loukîz li tchaptrê corespondant do «Guide\n"
-"d' Enondaedje» po pus d' informåcions sol manire d' apontyî ene nouve\n"
-"sicrirece. L' eterface prezintêye e nosse guide rishonne al cisse håynêye\n"
-"tins di l' astalåcion."
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -505,7 +505,12 @@ msgstr ""
"éndjole on sierveu d' eure ki pôreut ossu esse eployî pa d' ôtès\n"
"copiutreces, par egzimpe les cenes d' ene rantoele locåle, si vos vloz."
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "Sincronijhaedje otomatike di l' eure"
@@ -535,11 +540,11 @@ msgstr ""
"tchoezi l' ci ki vs convént l' mî."
#: ../help.pm:234
-#, c-format
+#, fuzzy, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -595,7 +600,7 @@ msgid ""
msgstr ""
"X (po Sistinme di Purneas X) est l' miercour di l' eterface grafike di\n"
"GNU/Linux, ki tos les evironmints grafikes (KDE, Gnome, AfterStep,\n"
-"WindowsMaker, evnd.) ki vnèt avou Mandriva Linux end ont mezåjhe.\n"
+"WindowsMaker, evnd.) ki vnèt avou Mageia end ont mezåjhe.\n"
"\n"
"Vos åroz ene djivêye des diferins parametes a candjî po-z aveur\n"
"voste eterface grafike a l' idêye:\n"
@@ -713,41 +718,45 @@ msgstr ""
"ou si vos n' arivez nén a-z apontyî l' cåte videyo, vos ploz responde «%s»."
#: ../help.pm:319
-#, c-format
+#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -756,15 +765,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -778,11 +787,11 @@ msgid ""
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
"Asteure, vos dvoz tchoezi wice ki vos vloz astaler vosse sistinme\n"
-"d' operance Mandriva Linux so vosse deure plake. Si l' plake est vude,\n"
+"d' operance Mageia so vosse deure plake. Si l' plake est vude,\n"
"ou si les sistinmes d' operance k' i gn a ddja prindèt tote li plaece,\n"
"vos avoz mezåjhe del pårti. Fé on pårtixhaedje d' ene deure plake çoula\n"
"vout dire del pårti lodjicmint po fé del plaece po-z astaler vosse novea\n"
-"sistinme Mandriva Linux.\n"
+"sistinme Mageia.\n"
"\n"
"Come, on côp ki li pårtixhaedje est fwait, on n' sait rivni en erî\n"
"(normålmint), les apurdisses ont sovint sogne ou peu di s' enonder.\n"
@@ -813,7 +822,7 @@ msgstr ""
"Li candjmint d' grandeu des pårticions si pout fé sins piede des dnêyes,\n"
"a condicion del disfragminter d' aprume, eyet kel pårticion soeye ene\n"
"pårticion FAT. C' est hôtmint ricmandé di fé ene copeye di såvrité.\n"
-"Cisse solucions est ricmandêye si vos vloz eployî Mandriva Linux et\n"
+"Cisse solucions est ricmandêye si vos vloz eployî Mageia et\n"
"Microsoft Windows sol minme copiutrece.\n"
"\n"
"Divant di tchoezi cisse solucion, i vos fåt comprinde kel grandeu di vosse\n"
@@ -822,7 +831,7 @@ msgstr ""
"les dnêyes da vosse ou astaler des noveas programes.\n"
"\n"
" * «%s»: si vos vloz disfacer totes les dnêyes k' i gn a\n"
-"so vosse deure plake po mete el plaece li sistinme Mandriva Linux,\n"
+"so vosse deure plake po mete el plaece li sistinme Mageia,\n"
"vos ploz tchoezi cisse tchuze chal.\n"
"Prindoz asteme k' avou cisse solucion chal vos n' pôroz nén rivni en erî\n"
"on côp ki vos avoz acertiné vosse tchuze.\n"
@@ -850,7 +859,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "Eployî les pårticions k' i gn a"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "Disfacer li plake etire"
@@ -934,8 +948,23 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "Fé li plakete d' astalaedje otomatike"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
+#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -954,7 +983,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -979,15 +1008,15 @@ msgstr ""
"pårticions.\n"
"\n"
"Clitchîz so «%s» si vos vloz tchoezi ene ôte pårticion po-z astaler\n"
-"vosse novea sistinme d' operance Mandriva Linux.\n"
+"vosse novea sistinme d' operance Mageia.\n"
"\n"
"Clitchîz so «%s» si vos vloz tchoezi les pårticions ki sront\n"
"verifieyes po vey s' i gn a des måvas bloks sol deure plake."
#: ../help.pm:437
-#, c-format
+#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -999,7 +1028,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"Å moumint ki vos astalez Mandriva Linux, i s' pout bén k' i gn åye\n"
+"Å moumint ki vos astalez Mageia, i s' pout bén k' i gn åye\n"
"des pacaedjes k' ont stî metous a djoû dispoy li moumint do fijhaedje\n"
"del distribucion. Motoit k' des bugs ont stî coridjîs, ou des problinmes\n"
"di såvrité. Por vos profiter di ces metaedjes a djoû, on vs propôze\n"
@@ -1015,7 +1044,7 @@ msgstr ""
"po leyî ouve."
#: ../help.pm:450
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -1024,7 +1053,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -1049,24 +1078,27 @@ msgid "Security Administrator"
msgstr "Manaedjeu pol såvrité"
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -1082,21 +1114,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1113,17 +1147,11 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
"Chal, vos dvoz tchoezi so kéne/kénès pårticion(s) ki vos voloz astaler\n"
-"vosse sistinme Mandriva Linux. Si vos pårticions ont ddja stî fwaites\n"
+"vosse sistinme Mageia. Si vos pårticions ont ddja stî fwaites\n"
"(p. egz. li dierin côp ki vos avoz astalé GNU/Linux ou bén avou ene ôte\n"
"usteye di pårtixhaedje), vos les ploz eployî. Ôtrumint, des pårticions dvèt\n"
"esse defineyes so vosse deure plake. Ça vout dire ki vos alez dispårti\n"
@@ -1140,7 +1168,7 @@ msgstr ""
" * «%s»: cisse tchuze va disfacer totes les pårticions k' i gn a sol "
"tchoezeye deure plake.\n"
"\n"
-" * «%s»: cisse tchuze va fé des pårticions ext3 pol sistinme et ene di "
+" * «%s»: cisse tchuze va fé des pårticions ext4 pol sistinme et ene di "
"swap e prindant li plaece di libe k' i gn a sol deure plake et carculant "
"otomaticmint li grandeu li meyeuse.\n"
"\n"
@@ -1195,59 +1223,84 @@ msgstr ""
"\n"
"Po-z aveur des informåcions so les diferins sistinmes di fitchîs k' i gn a,\n"
"lijhoz li tchaptrê so «ext2FS» do «Manuel di Referince».\n"
-"\n"
-"Si vos alez astaler sor ene éndjole PPC, motoit ki vos vôroz fé ene pitite "
-"pårticion HFS «d' enondaedje» di 1 Mo å moens po l' eployî avou l' enondrece "
-"«yaboot». Si vos decidez del fé on pô pus grande, par egzimpe 50 Mo, çoula "
-"pôreut fé ene clapante plaece po-z î mete on nawea et ene imådje ramdisk po "
-"des cas d' urdjince k' i gn åreut."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "Montaedje otomatike des sopoirts bodjåves"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "Candjî pol môde normå/spepieus"
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"Pus d' ene pårticion Windows a stî detectêye so vosse deure plake.\n"
"Tchoezixhoz li cene ki vos vloz candjî si grandeu, po-z astaler vosse\n"
-"novea sistinme d'&nbsp;operance Mandriva Linux s' i vs plait.\n"
+"novea sistinme d'&nbsp;operance Mageia s' i vs plait.\n"
"\n"
"Po l' informåcion, tchaeke pårticion est mostrêye come çoula:\n"
"«no Linux», «no Windows», «grandeu».\n"
@@ -1291,35 +1344,35 @@ msgstr ""
"boton «%s» po-z aveur li djivêye en etir di tos les payis del Daegn."
#: ../help.pm:572
-#, c-format
+#, fuzzy, c-format
msgid ""
"This step is activated only if an existing GNU/Linux partition has been\n"
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"Ciste etape est enondêye seulmint si ene viye pårticion GNU/Linux a stî\n"
"trovêye so voste éndjole.\n"
"\n"
"DrakX asteure a mezåjhe di saveur si vos vloz fé ene novele astalåcion\n"
-"oudonbén fé on metaedje a djoû d' on sistinme Mandriva Linux k' i gn a\n"
+"oudonbén fé on metaedje a djoû d' on sistinme Mageia k' i gn a\n"
"ddja sol plake:\n"
"\n"
" * «%s»: çouchal va spotchî ttafwait l' vî sistinme k' i gn\n"
@@ -1330,14 +1383,14 @@ msgstr ""
"ki n' seront nén spotcheyes.\n"
"\n"
" * «%s»: cisse classe d' astalaedje chal vos permete di\n"
-"mete a djoû les pacaedjes k' i gn a so vosse sistinme Mandriva Linux.\n"
+"mete a djoû les pacaedjes k' i gn a so vosse sistinme Mageia.\n"
"Vosse pårtixhaedje est wårdé et les dnêyes des uzeus n' sont nén\n"
"candjeyes. Li plupårt des ôtès etapes d' apontiaedje dimorèt, come\n"
"pol cas d' èn astalaedje sitandård.\n"
"\n"
"Eployî l' tchuze «Metaedje a djoû» rote comifåt po mete a djoû des\n"
-"sistinmes Mandriva Linux modêye «8.1» ou pus nouve. Mins l' fé po\n"
-"des modêyes di Mandriva Linux pus viyes kel «8.1» n' est nén ricmandé."
+"sistinmes Mageia modêye «8.1» ou pus nouve. Mins l' fé po\n"
+"des modêyes di Mageia pus viyes kel «8.1» n' est nén ricmandé."
#: ../help.pm:594
#, c-format
@@ -1379,7 +1432,7 @@ msgstr ""
"l' taprece nén latene."
#: ../help.pm:612
-#, c-format
+#, fuzzy, c-format
msgid ""
"The first step is to choose your preferred language.\n"
"\n"
@@ -1395,8 +1448,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1441,7 +1493,7 @@ msgstr ""
"Åd fwait do sopoirt UTF-8 (unicôde): Unicôde est on novea ecôdaedje\n"
"ki permete di scrire tos les lingaedjes del Daegn. Mins i gn a co des\n"
"sacwès a-z amidrer dins l' sopoirt UTF-8 so GNU/Linux. Vola pocwè\n"
-"Mandriva Linux eployrè UTF-8 ou nén sorlon les tchuzes ki vos djhoz:\n"
+"Mageia eployrè UTF-8 ou nén sorlon les tchuzes ki vos djhoz:\n"
"\n"
" * Si vos tchoezixhoz on lingaedje avou ene foite eritance d' on dné\n"
"ecôdaedje (lingaedjes latin1, rûsse, djaponès, chinwès, corêyin, taylandès\n"
@@ -1478,7 +1530,12 @@ msgstr ""
msgid "Espanol"
msgstr "Español"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1565,90 +1622,7 @@ msgstr ""
"Tchoezixhoz li bon pôrt. Metans: li pôrt «COM1» dzo MS Windows si lome\n"
"«ttyS0» dzo GNU/Linux."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"Çouchal c' est li pus consecant decidaedje pol såvrité di vosse sistinme\n"
-"GNU/Linux: vos dvoz dner li scret po «root». «root» est li manaedjeu\n"
-"do sistinme eyet l' seu otorijhî a fé des metaedjes a djoû, radjouter\n"
-"des uzeus, candjî l' apontiaedje djenerå do sistinme, evnd. Po fé court,\n"
-"«root» pout fé ttafwait! C' est po çoula k' i vs fåt bén tchoezi li scret\n"
-"di «root», onk ki soeye målåjhey a trover - DrakX vos dirè s' il est trop\n"
-"åjhey. Come vos l' poloz vey, vos avoz l' tchuze di n' nén dner di scret,\n"
-"mins nos nel consians nén; «root» pout tot fé, çoula vout dire eto k' i "
-"pout\n"
-"disfacer -- minme sins l' voleur -- tot çou k' i gn a so les deurès\n"
-"plakes, minme so les pårticions d' ôtes sistinmes d' operance; i våt mî\n"
-"n' eployî l' conte «root» ki vormint cwand nd a mezåjhe, et po çoula\n"
-"våt mî nén rinde l' accès å conte trop åjhey.\n"
-"\n"
-"Li scret dvreut maxhî des letes et des chifes ey esse 8 caracteres long.\n"
-"Ni scrijhoz måy li scret di «root» ene sawice - c' est on trop grand\n"
-"risse po vosse sistinme.\n"
-"\n"
-"Mins nerén, nel fijhoz nén trop long ou trop målåjhey ki vos n' arivez\n"
-"nén a vos l' rimimbrer!\n"
-"\n"
-"Li scret ni srè nén håyné sol waitroûle cwand vos l' tapez, po çoula vos\n"
-"dvoz l' diner deus côps, po bén l' acertiner et k' i gn åye moens di\n"
-"fé ene flotche tot l' tapant. Si vos tapez deus côps avou l' minme\n"
-"flotche, si srè ci scret «incorek» la k' i vs fårè dner l' côp ki vént.\n"
-"\n"
-"Si vos vloz ki l' contrôle des screts soeye fwait pa on sierveu "
-"d' otintifiaedje\n"
-"(come NIS ou LDAP), adon clitchîz sol boton «%s».\n"
-"\n"
-"Si vosse rantoele eploye li protocole LDAP, NIS ou les dominnes Windows PDC\n"
-"po l' otintifiaedje, tchoezixhoz li moyén d' otintifiaedje corek po «%s».\n"
-"Si vos n' savoz nén, dimandez a l' administreu del rantoele locåle.\n"
-"\n"
-"Si vos avoz des rujhes po vs rimimbrer les screts, vos ploz tchoezi di\n"
-"n' eployî «%s», si voste éndjole n' est nén raloyeye al daegntoele\n"
-"et si vos avoz fiyate a totes les djins k' ont accès al copiutrece."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "otintifiaedje"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1662,7 +1636,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1689,10 +1663,10 @@ msgstr ""
"k' vos fjhoz."
#: ../help.pm:745
-#, c-format
+#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1713,12 +1687,12 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"Chal, vos tchoezixhoz li ké sistinme d' imprimaedje vos vloz eployî\n"
"so vosse copiutrece. Des ôtes sistinmes d' operance k' i gn a\n"
-"vos dnèt onk, mins Mandriva Linux vos lait tchoezi inte deus, tchaeke onk\n"
+"vos dnèt onk, mins Mageia vos lait tchoezi inte deus, tchaeke onk\n"
"estant l' meyeu dins on cas dné.\n"
"\n"
" * «%s» - ki vout dire «print, do not queue» (imprimer sins cawêye), est\n"
@@ -1742,8 +1716,7 @@ msgstr ""
"\n"
"Si vos tchoezixhoz asteure, et ki pus tård vos n' inmez nén vosse sistinme\n"
"d' imprimaedje, vos l' poloz åjheymint candjî avou l' usteye d' apontiaedje\n"
-"des scrireces, a-z enonder a pårti do cinte di contrôle di Mandriva Linux, "
-"tot\n"
+"des scrireces, a-z enonder a pårti do cinte di contrôle di Mageia, tot\n"
"clitchant sol boton «%s»."
#: ../help.pm:768
@@ -1751,7 +1724,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "Sipepieus"
@@ -1764,7 +1742,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1804,7 +1782,7 @@ msgstr ""
"po tchoezi èn ôte mineu."
#: ../help.pm:794
-#, c-format
+#, fuzzy, c-format
msgid ""
"As a review, DrakX will present a summary of information it has gathered\n"
"about your system. Depending on the hardware installed on your machine, you\n"
@@ -1827,11 +1805,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1849,8 +1822,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1867,7 +1839,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1918,7 +1890,7 @@ msgstr ""
"\n"
" * «%s»: Si vos vloz apontyî li rantoele (locåle ou daegnrece),\n"
"clitchîz so ç' boton chal. Lijhoz li documintåcion so papî oudonbén\n"
-"li cene håynåve a pårti do cinte di controle di Mandriva Linux\n"
+"li cene håynåve a pårti do cinte di controle di Mageia\n"
"après l' astalaedje po-z aveur pus di racsegnes.\n"
"\n"
" * «%s»: vos permete d' apontyî les adresses des procsis HTTP eyet FTP\n"
@@ -1935,13 +1907,18 @@ msgstr ""
" * «%s»: si vos vloz candjî l' apontiaedje di l' enondrece\n"
"di l' éndjole. Vos nel duvrîz fé ki si vos estoz seur di vos.\n"
"Lijhoz li documintåcion so l' enondrece dins l' cinte di controle\n"
-"di Mandriva Linux po pus di racsegnes.\n"
+"di Mageia po pus di racsegnes.\n"
"\n"
" * «%s»: vos pôroz controler finmint les kés siervices ki vos vloz\n"
"enonder so voste éndjole. Si vos l' vloz eployî po fé do sierveu c' est\n"
"ene bone idêye di candjî et d' verifyî les valixhances chal."
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "Cåte RDIS"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "Cåte RDIS"
@@ -1952,26 +1929,28 @@ msgid "Graphical Interface"
msgstr "Eterface grafike"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
"Tchoezixhoz li deure plake ki vos vloz disfacer po-z î astaler vosse\n"
-"novele pårticion Mandriva Linux. Prindoz asteme, totes les dnêyes\n"
+"novele pårticion Mageia. Prindoz asteme, totes les dnêyes\n"
"k' i gn a sol deure plake vont esse pierdowes, et vos n' pôroz les rapexhî."
#: ../help.pm:866
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"Clitchîz so «%s» si vos vloz disfacer totes les dnêyes et totes les\n"
"pårticions k' i gn a so vosse deure plake.\n"
@@ -1992,3 +1971,115 @@ msgstr "Shuvant ->"
msgid "<- Previous"
msgstr "<- Di dvant"
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "«%s»: si vos clitchîz so «%s» çoula enondrè li macrea\n"
+#~ "d' apontiaedje des scrireces. Loukîz li tchaptrê corespondant do «Guide\n"
+#~ "d' Enondaedje» po pus d' informåcions sol manire d' apontyî ene nouve\n"
+#~ "sicrirece. L' eterface prezintêye e nosse guide rishonne al cisse "
+#~ "håynêye\n"
+#~ "tins di l' astalåcion."
+
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "Çouchal c' est li pus consecant decidaedje pol såvrité di vosse sistinme\n"
+#~ "GNU/Linux: vos dvoz dner li scret po «root». «root» est li manaedjeu\n"
+#~ "do sistinme eyet l' seu otorijhî a fé des metaedjes a djoû, radjouter\n"
+#~ "des uzeus, candjî l' apontiaedje djenerå do sistinme, evnd. Po fé court,\n"
+#~ "«root» pout fé ttafwait! C' est po çoula k' i vs fåt bén tchoezi li "
+#~ "scret\n"
+#~ "di «root», onk ki soeye målåjhey a trover - DrakX vos dirè s' il est "
+#~ "trop\n"
+#~ "åjhey. Come vos l' poloz vey, vos avoz l' tchuze di n' nén dner di "
+#~ "scret,\n"
+#~ "mins nos nel consians nén; «root» pout tot fé, çoula vout dire eto k' i "
+#~ "pout\n"
+#~ "disfacer -- minme sins l' voleur -- tot çou k' i gn a so les deurès\n"
+#~ "plakes, minme so les pårticions d' ôtes sistinmes d' operance; i våt mî\n"
+#~ "n' eployî l' conte «root» ki vormint cwand nd a mezåjhe, et po çoula\n"
+#~ "våt mî nén rinde l' accès å conte trop åjhey.\n"
+#~ "\n"
+#~ "Li scret dvreut maxhî des letes et des chifes ey esse 8 caracteres long.\n"
+#~ "Ni scrijhoz måy li scret di «root» ene sawice - c' est on trop grand\n"
+#~ "risse po vosse sistinme.\n"
+#~ "\n"
+#~ "Mins nerén, nel fijhoz nén trop long ou trop målåjhey ki vos n' arivez\n"
+#~ "nén a vos l' rimimbrer!\n"
+#~ "\n"
+#~ "Li scret ni srè nén håyné sol waitroûle cwand vos l' tapez, po çoula vos\n"
+#~ "dvoz l' diner deus côps, po bén l' acertiner et k' i gn åye moens di\n"
+#~ "fé ene flotche tot l' tapant. Si vos tapez deus côps avou l' minme\n"
+#~ "flotche, si srè ci scret «incorek» la k' i vs fårè dner l' côp ki vént.\n"
+#~ "\n"
+#~ "Si vos vloz ki l' contrôle des screts soeye fwait pa on sierveu "
+#~ "d' otintifiaedje\n"
+#~ "(come NIS ou LDAP), adon clitchîz sol boton «%s».\n"
+#~ "\n"
+#~ "Si vosse rantoele eploye li protocole LDAP, NIS ou les dominnes Windows "
+#~ "PDC\n"
+#~ "po l' otintifiaedje, tchoezixhoz li moyén d' otintifiaedje corek po "
+#~ "«%s».\n"
+#~ "Si vos n' savoz nén, dimandez a l' administreu del rantoele locåle.\n"
+#~ "\n"
+#~ "Si vos avoz des rujhes po vs rimimbrer les screts, vos ploz tchoezi di\n"
+#~ "n' eployî «%s», si voste éndjole n' est nén raloyeye al daegntoele\n"
+#~ "et si vos avoz fiyate a totes les djins k' ont accès al copiutrece."
+
+#~ msgid "authentication"
+#~ msgstr "otintifiaedje"
diff --git a/perl-install/install/help/po/zh_CN.po b/perl-install/install/help/po/zh_CN.po
index 4e2e21ece..fdb983a8b 100644
--- a/perl-install/install/help/po/zh_CN.po
+++ b/perl-install/install/help/po/zh_CN.po
@@ -8,26 +8,27 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX 2007\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2006-04-22 15:41+0800\n"
"Last-Translator: Funda Wang <fundawang@linux.net.cn>\n"
-"Language-Team: Mandriva Linux i18n Team <cooker-i18n@mandrivalinux.org>\n"
+"Language-Team: Mageia i18n Team <cooker-i18n@mandrivalinux.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
-"在继续之前, 您应该仔细阅读许可协议的条款。该许可适用于整个 Mandriva Linux发行"
-"版。如果您同意其中的全部条款, 请选中\"%s\"框。如果不同意, 单击\"%s\"按钮将重"
-"新启动您的计算机。"
+"在继续之前, 您应该仔细阅读许可协议的条款。该许可适用于整个 Mageia发行版。如果"
+"您同意其中的全部条款, 请选中\"%s\"框。如果不同意, 单击\"%s\"按钮将重新启动您"
+"的计算机。"
#: ../help.pm:20
#, c-format
@@ -99,6 +100,16 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "您要使用此特性吗?"
@@ -106,7 +117,8 @@ msgstr "您要使用此特性吗?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -116,24 +128,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"在此列出了您硬盘上已有的 Linux\n"
@@ -165,30 +181,29 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Mandriva Linux 安装分布于多张 CD-ROM 中。如果选中软件包位于另外的 CD-ROM, "
-"DrakX 将弹出当前\n"
+"Mageia 安装分布于多张 CD-ROM 中。如果选中软件包位于另外的 CD-ROM, DrakX 将弹"
+"出当前\n"
"CD, 并要求您插入所需的正确 CD。如果您手中没有所请求的 CD, 只需单击\"%s\", 就"
"不会安装相应的软件包了。"
# DO NOT BOTHER TO MODIFY HERE, SEE:
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -201,8 +216,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -239,11 +253,11 @@ msgid ""
"command-line interface. The total size of this installation is about 65\n"
"megabytes."
msgstr ""
-"现在该指定要在您的系统中安装哪些程序了。Mandriva Linux\n"
+"现在该指定要在您的系统中安装哪些程序了。Mageia\n"
"为您准备了数千个软件包。而为了使管理软件包更加容易, 软件包已经按相似程度分成"
"了多个组。\n"
"\n"
-"Mandriva Linux\n"
+"Mageia\n"
"按四个类别对软件包进行了分类。您可以从不同的类别混合选择应用程序。也就是说, "
"``工作站''中也可以选择安装``服务器''分类中的应用程序。\n"
"\n"
@@ -301,7 +315,7 @@ msgstr "真正的最小安装"
# DO NOT BOTHER TO MODIFY HERE, SEE:
#: ../help.pm:152
-#, c-format
+#, fuzzy, c-format
msgid ""
"If you choose to install packages individually, the installer will present\n"
"a tree containing all packages classified by groups and subgroups. While\n"
@@ -314,10 +328,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -345,9 +359,9 @@ msgstr ""
"\n"
"!!\n"
"如果选择了服务器软件包, 不管是您特意选中的, 还是因为该软件包是某组的成员, 您"
-"都需要确认是否真的想要安装这些服务器。默认情况下, Mandriva Linux\n"
+"都需要确认是否真的想要安装这些服务器。默认情况下, Mageia\n"
"会在启动时自动启动已安装的全部服务。尽管在发行版送出时这些服务是安全的, 但完"
-"全有可能在此版本 Mandriva Linux\n"
+"全有可能在此版本 Mageia\n"
"完成后发现了相应软件的安全漏洞。如果您并不知道特定服务的用途, 或者不知道为什"
"么要安装这些服务, 请单击\"%s\"。单击\"%s\"将安装列出的服务, 并且启动时这些服"
"务会被自动启动。\n"
@@ -369,20 +383,7 @@ msgid "Automatic dependencies"
msgstr "自动依赖性"
# DO NOT BOTHER TO MODIFY HERE, SEE:
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-"\"%s\":单击\"%s\"按钮将打开打印机配置向导。请参看``初学者指南''中的相应章"
-"节, 其中详细描述了如何设置新打印机。那里给出的界面与安装时所用的界面大体相"
-"同。"
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -443,7 +444,12 @@ msgstr ""
"Internet。最好选择地理位置离您较近的时间服务器。此选项还会自动安装时间服务"
"器, 这样您局域网中的其它计算机都能够进行自动校时了。"
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "自动时间同步"
@@ -472,11 +478,11 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
#: ../help.pm:234
-#, c-format
+#, fuzzy, c-format
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -530,7 +536,7 @@ msgid ""
"want to check \"%s\" if your machine is to act as a server, or if you were\n"
"not successful in getting the display configured."
msgstr ""
-"X(代表 X 窗口系统)是 GNU/Linux 图形界面的核心部分。Mandriva Linux\n"
+"X(代表 X 窗口系统)是 GNU/Linux 图形界面的核心部分。Mageia\n"
"附带的所有图形环境(KDE、GNOME、AfterStep、WindowMaker 等)都依赖于该系统。\n"
"\n"
"您将会看到不同的参数列表, 以便进行图形显示选项的更改来达到最佳状态。其中包"
@@ -637,41 +643,45 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
#: ../help.pm:319
-#, c-format
+#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -680,15 +690,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -701,11 +711,11 @@ msgid ""
"experience. For more instructions on how to use the DiskDrake utility,\n"
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
-"在这一步里, 您需要决定您想要将 Mandriva Linux\n"
+"在这一步里, 您需要决定您想要将 Mageia\n"
"操作系统安装到硬盘的何处。如果您的硬盘完全是空的, 或者已有操作系统使用了所有"
"的空间, 您就必须要对硬盘进行分区。粗略的说, 对硬盘进行分区就是将其划分成几个"
"逻辑上不同的部分, 以便创建安装您新的\n"
-"Mandriva Linux 系统所需的空间。\n"
+"Mageia 系统所需的空间。\n"
"\n"
"由于对硬盘进行分区通常是不可恢复的, 并且可能导致数据丢失, 所以对于没有经验的"
"用户来说, 分区是十分危险的操作。所幸的是, DrakX\n"
@@ -728,7 +738,7 @@ msgstr ""
"Microsoft Windows FAT 或 NTFS 分区的大小。更改分区大小通常不会造成任何数据丢"
"失, 但您必须事先对 Windows\n"
"分区进行了磁盘碎片整理。我们强烈推荐您事先备份您的数据。如果您想要在同一台计"
-"算机上使用 Mandriva Linux 和 Microsoft\n"
+"算机上使用 Mageia 和 Microsoft\n"
"Windows, 则推荐使用此选项。\n"
"\n"
" 注意, 在执行这一过程之后, 您原有的 Microsoft Windows 分区将会比先前小一"
@@ -736,7 +746,7 @@ msgstr ""
"下可用来存储数据或安装新软件的剩余空间也会变少。\n"
"\n"
" * \"%s\"。如果您想要删除硬盘上的全部数据和全部分区, 并将其替换为全新的 "
-"Mandriva Linux\n"
+"Mageia\n"
"系统, 请选择此选项。请额外小心, 因为在您确认之后, 此操作无法撤销。\n"
"\n"
" !! 如果您选择了此选项, 您硬盘上的全部数据都将被删除。 !!\n"
@@ -758,7 +768,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "使用已有分区"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "清除整个磁盘"
@@ -833,9 +848,24 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "生成自动安装软盘"
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+# DO NOT BOTHER TO MODIFY HERE, SEE:
+#: ../help.pm:408
+#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -854,7 +884,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -872,15 +902,15 @@ msgstr ""
"\n"
"如果您准备好格式化分区了, 请单击\"%s\"。\n"
"\n"
-"如果您想要选择其它分区用于安装 Mandriva Linux 操作系统, 请单击\"%s\"。\n"
+"如果您想要选择其它分区用于安装 Mageia 操作系统, 请单击\"%s\"。\n"
"\n"
"如果您想要选择要检测磁盘上的坏块, 请单击单击\"%s\"。"
# DO NOT BOTHER TO MODIFY HERE, SEE:
#: ../help.pm:437
-#, c-format
+#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -892,7 +922,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"在您安装 Mandriva Linux\n"
+"在您安装 Mageia\n"
"的这个时候, 很可能有些软件包在发行之后已经更新。有些故障已经被修正, 有些安全"
"问题已经被解决。为了让您能够享用这些更新, 您现在可以从 Internet\n"
"上下载它们。如果您的 Internet 连接已经可以使用, 请选择\"%s\"。如果您愿意以后"
@@ -900,12 +930,12 @@ msgstr ""
"\n"
"\n"
"选择\"%s\"将显示一个清单, 其中列出的地方都提供了更新软件包。您应该选择离您地"
-"理位置较近的镜像。之后会出现一个可以下载的软件包选择树:复查选项, 然后单击\"%"
-"s\"来获取并安装选中的软件包, 要终止请单击\"%s\"。"
+"理位置较近的镜像。之后会出现一个可以下载的软件包选择树:复查选项, 然后单击"
+"\"%s\"来获取并安装选中的软件包, 要终止请单击\"%s\"。"
# DO NOT BOTHER TO MODIFY HERE, SEE:
#: ../help.pm:450
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -914,7 +944,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -924,8 +954,8 @@ msgstr ""
"包含关键数据, 或者将直接暴露于 Internet\n"
"之下, 则应该设置较高的安全级别。较高的安全级别通常以损失易用性作为代价。\n"
"\n"
-"如果您不知道要选择什么, 请保持默认选项。您可以稍后从 Mandriva Linux 控制中心"
-"的一部分 draksec\n"
+"如果您不知道要选择什么, 请保持默认选项。您可以稍后从 Mageia 控制中心的一部分 "
+"draksec\n"
"来更改安全级别。\n"
"\n"
"请在\"%s\"域中填入要负责安全的人的电子邮件地址。安全信息将被发送到该地址。"
@@ -937,24 +967,27 @@ msgstr "安全管理员"
# DO NOT BOTHER TO MODIFY HERE, SEE:
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -970,21 +1003,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -1001,17 +1036,11 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-"在这一步中, 您需要选择要使用哪个或哪些分区来安装您的 Mandriva Linux 系统。如"
-"果已经定义了分区, 不管是先前安装的 GNU/Linux\n"
+"在这一步中, 您需要选择要使用哪个或哪些分区来安装您的 Mageia 系统。如果已经定"
+"义了分区, 不管是先前安装的 GNU/Linux\n"
"还是由其它分区工具划分的, 您都可以使用已有的分区。否则, 必须对硬盘分区进行定"
"义。\n"
"\n"
@@ -1023,7 +1052,7 @@ msgstr ""
"\n"
" * \"%s\": 此选项将删除选中硬盘上的全部分区\n"
"\n"
-" * \"%s\": 此选项可在您硬盘的剩余空间中为您自动创建 ext3 和交换分区\n"
+" * \"%s\": 此选项可在您硬盘的剩余空间中为您自动创建 ext4 和交换分区\n"
"\n"
"\"%s\": 使您可以访问额外特性: \n"
"\n"
@@ -1063,57 +1092,83 @@ msgstr ""
" * Ctrl+M 设定挂载点\n"
"\n"
"要的关于不同的文件系统类型的更多信息, 请查看“参考手册”中 ext2FS 一章。\n"
-"\n"
-"如果您在 PPC 计算机上安装, 您可能需要创建至少 1MB 大小的 HFS“bootstrap”分区, "
-"该分区将用于 yaboot\n"
-"引导程序。如果您创建的分区再稍微大点, 比如说 50MB, 您可能会发现这个分区可用来"
-"存储内核或紧急引导时的虚拟磁盘映像。"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "自动挂载可移动介质"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "在正常/专家模式间切换"
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"在硬盘上检测到了多个 Microsoft 分区。请选择一个分区改变大小, 以便安装您新\n"
-"的 Mandriva Linux 操作系统。\n"
+"的 Mageia 操作系统。\n"
"\n"
"每个分区都是按“Linux 名称”、“Windows 名称”、“容量”顺序列出的。\n"
"\n"
@@ -1152,47 +1207,46 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
#: ../help.pm:572
-#, c-format
+#, fuzzy, c-format
msgid ""
"This step is activated only if an existing GNU/Linux partition has been\n"
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"仅当在您的计算机上发现了已有的 GNU/Linux 分区, 才会激活这一步骤。\n"
"\n"
-"DrakX 现在需要知道您是想要执行全新安装, 还是升级已有的 Mandriva Linux 系"
-"统:\n"
+"DrakX 现在需要知道您是想要执行全新安装, 还是升级已有的 Mageia 系统:\n"
"\n"
" *\n"
"\"%s\":总体来说, 这将完全销毁旧系统。但是, 根据您选择的分区方案, 您可以让现"
"有的数据(比如\"主\"目录)免于覆盖。如果您想要更改硬盘的分区方案, 或者更该文件"
"系统, 您就应该使用此选项。\n"
"\n"
-" * \"%s\":这一安装级别允许您更新目前安装在您 Mandriva Linux\n"
+" * \"%s\":这一安装级别允许您更新目前安装在您 Mageia\n"
"系统上的软件包。您的分区方案和用户数据都不会被破坏。绝大多数配置步骤仍然可"
"用, 与标准安装类似。\n"
"\n"
-"使用``升级''选项应该在 \"8.1\" 或更新版本的 Mandriva Linux 系统上工作正常。不"
-"推荐在先于 \"8.1\" 版本的\n"
-"Mandriva Linux 系统上执行升级。"
+"使用``升级''选项应该在 \"8.1\" 或更新版本的 Mageia 系统上工作正常。不推荐在先"
+"于 \"8.1\" 版本的\n"
+"Mageia 系统上执行升级。"
# DO NOT BOTHER TO MODIFY HERE, SEE:
#: ../help.pm:594
@@ -1231,7 +1285,7 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
#: ../help.pm:612
-#, c-format
+#, fuzzy, c-format
msgid ""
"The first step is to choose your preferred language.\n"
"\n"
@@ -1247,8 +1301,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1286,8 +1339,8 @@ msgstr ""
"\n"
"关于 UTF-8 (Unicode) 支持:Unicode 是一种新的字符编码, 该编码可支持所有现存的"
"语言。但是, 在 GNU/Linux 下完全支持\n"
-"Unicode, 仍然在开发和完善中。由此原因, Mandriva Linux 会根据用户的选择是否使"
-"用 UTF-8:\n"
+"Unicode, 仍然在开发和完善中。由此原因, Mageia 会根据用户的选择是否使用 "
+"UTF-8:\n"
"\n"
" * 如果您所选的语言自身有强制性的编码(latin1 语言、俄语、日语、中文、朝鲜语、"
"泰语、希腊语、土耳其语及大多数 iso-8859-2\n"
@@ -1302,9 +1355,9 @@ msgstr ""
"项\"%s\"。\n"
"\n"
"\n"
-"请注意, 系统没有限制您只能选择一种额外的语言。您可以选择多种语言, 甚至选择\"%"
-"s\"框表明您想要安装全部语言。选择支持某种语言, 意味着同时安装该语言的翻译、字"
-"体、拼写检查程序等等。\n"
+"请注意, 系统没有限制您只能选择一种额外的语言。您可以选择多种语言, 甚至选择"
+"\"%s\"框表明您想要安装全部语言。选择支持某种语言, 意味着同时安装该语言的翻"
+"译、字体、拼写检查程序等等。\n"
"\n"
"要在系统中所安装的不同语言之间切换, 请以 \"root\" 身份执行 \"/usr/sbin/"
"localedrake\"\n"
@@ -1316,8 +1369,13 @@ msgstr ""
msgid "Espanol"
msgstr "西班牙"
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
# DO NOT BOTHER TO MODIFY HERE, SEE:
-#: ../help.pm:653
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1397,82 +1455,7 @@ msgstr ""
"Windows 里的 COM1, 在 GNU/Linux 里面叫做 ttyS0。"
# DO NOT BOTHER TO MODIFY HERE, SEE:
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"要保卫您的 GNU/Linux 系统, 现在是最关键的一步:您需要输入 \"root\" 密码。"
-"\"Root\"\n"
-"是系统管理员, 而且是唯一有权进行更新、添加用户、更改泛系统配置等操作的用户。"
-"简言之, \"root\"\n"
-"可以做任何事!这就是为什么您必须选择难于猜测的密码:如果您的密码太简单了, "
-"DrakX\n"
-"会提醒您的。正如您所看到的那样, 您不必非得输入密码, 但是我们强烈建议您输入一"
-"个密码。GNU/Linux 和其它任何操作系统一样容易遇到错误的操作。由于\n"
-"\"root\" 可以越过所有限制并在访问分区时无意间就删除分区上的全部数据, 所以成"
-"为 \"root\" 应该很难才对。\n"
-"\n"
-"密码应该是字母和数字的无序混合, 并且至少要有 8 位长。绝对不要将 \"root\" 的密"
-"码写下来 -- 这样的密码形同虚设。\n"
-"\n"
-"还有一条准则 -- 不要将密码设置得太长或太复杂, 否则您自己也记不住!\n"
-"\n"
-"您输入的密码不会显示在屏幕上。为了减少盲打所造成的输入错误, 您需要再次输入密"
-"码。如果您碰巧两次都输错了, 那么这个``不正确的''密码将成为您第一次以\n"
-"\"root\" 身份登录时的密码。\n"
-"\n"
-"如果您想要身份验证服务器控制对您计算机的访问, 请单击\"%s\"按钮。\n"
-"\n"
-"如果您的网络使用 LDAP 或 NIS, 又或者 PDC Windows\n"
-"域验证服务, 请选择相应的\"%s\"。如果您不知道应该使用哪种, 请询问您的网络管理"
-"员。\n"
-"\n"
-"如果您记住密码有困难的话, 如果您的计算机不需要连接到 Internet, 您也绝对信任可"
-"使用您计算机的所有人, 您可以选择\"%s\"。"
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "认证"
-
-# DO NOT BOTHER TO MODIFY HERE, SEE:
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1486,7 +1469,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1508,10 +1491,10 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
#: ../help.pm:745
-#, c-format
+#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1532,11 +1515,11 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"现在, 应该为您的计算机选择打印系统了。其它的操作系统也许只提供了一种选择, 但 "
-"Mandriva Linux\n"
+"Mageia\n"
"提供了两种。每种打印系统都能够在不同的配置中大展身手。\n"
"\n"
" * \"%s\" --\n"
@@ -1555,7 +1538,7 @@ msgstr ""
"还包括一个图形界面, 可用来打印或选择打印机选项, 以及管理打印机。\n"
"\n"
"如果您现在进行了选择, 但稍后又发现您并不喜欢所选择的打印系统, 可以轻松修改。"
-"只需从 Mandriva Linux Control Center中选择\n"
+"只需从 Mageia Control Center中选择\n"
"PrinterDrake, 然后单击\"%s\"按钮。"
#: ../help.pm:768
@@ -1563,7 +1546,12 @@ msgstr ""
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "专家"
@@ -1576,7 +1564,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1614,7 +1602,7 @@ msgstr ""
# DO NOT BOTHER TO MODIFY HERE, SEE:
#: ../help.pm:794
-#, c-format
+#, fuzzy, c-format
msgid ""
"As a review, DrakX will present a summary of information it has gathered\n"
"about your system. Depending on the hardware installed on your machine, you\n"
@@ -1637,11 +1625,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1659,8 +1642,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1677,7 +1659,7 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
@@ -1715,12 +1697,12 @@ msgstr ""
"\n"
" * \"%s\":如果您觉得检测的配置有错, 可以点击\"%s\"来更改与该卡关联的参数。\n"
"\n"
-" * \"%s\":默认情况下, DrakX 会将您的图形界面配置为 \"800x600\" 或 \"1024x768"
-"\"\n"
+" * \"%s\":默认情况下, DrakX 会将您的图形界面配置为 \"800x600\" 或 "
+"\"1024x768\"\n"
"分辨率。如果这不适合您的话, 请单击\"%s\"重新配置您的图形界面。\n"
"\n"
" * \"%s\":如果您想要配置您的 Internet 或局域网访问, 现在就可以进行。请参考印"
-"刷文档或在安装完成后使用 Mandriva Linux\n"
+"刷文档或在安装完成后使用 Mageia\n"
"Control Center来获得完整的在线帮助。\n"
"\n"
" * \"%s\":如果您所安装的计算机位于代理服务器之后, 这里将允许您配置 HTTP 和 "
@@ -1733,12 +1715,17 @@ msgstr ""
"指南''中的相应章节, 以获得关于防火墙设置的细节。\n"
"\n"
" * \"%s\":如果您想要更改您的引导程序配置, 请单击此按钮。这仅适用于高级用户。"
-"请参考印刷文档或 Mandriva Linux 控制中心中关于引导程序配置的帮助。\n"
+"请参考印刷文档或 Mageia 控制中心中关于引导程序配置的帮助。\n"
"\n"
" * \"%s\":在此您可以精确调整要在您的计算机上运行哪些服务。如果您要将此计算机"
"用作服务器, 那么应该复查这一设置。"
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "ISDN 卡"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN 卡"
@@ -1749,25 +1736,27 @@ msgid "Graphical Interface"
msgstr "图形界面"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
-"请选择您为了安装新的 Mandriva Linux 分区想要删除的硬盘分区。\n"
+"请选择您为了安装新的 Mageia 分区想要删除的硬盘分区。\n"
"注意, 该硬盘分区上的所有数据将丢失并且无法恢复!"
#: ../help.pm:866
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"如果您想要删除此硬盘上的所有数据和分区, 请单击“%s”。注意, 单击“%s”后, \n"
"您将无法恢复此硬盘上的任何数据或分区(包括任何 Windows 数据)。\n"
@@ -1784,3 +1773,100 @@ msgstr "下一步 ->"
msgid "<- Previous"
msgstr "<- 上一步"
+# DO NOT BOTHER TO MODIFY HERE, SEE:
+#~ msgid ""
+#~ "\"%s\": clicking on the \"%s\" button will open the printer "
+#~ "configuration\n"
+#~ "wizard. Consult the corresponding chapter of the ``Starter Guide'' for "
+#~ "more\n"
+#~ "information on how to set up a new printer. The interface presented in "
+#~ "our\n"
+#~ "manual is similar to the one used during installation."
+#~ msgstr ""
+#~ "\"%s\":单击\"%s\"按钮将打开打印机配置向导。请参看``初学者指南''中的相应章"
+#~ "节, 其中详细描述了如何设置新打印机。那里给出的界面与安装时所用的界面大体相"
+#~ "同。"
+
+# DO NOT BOTHER TO MODIFY HERE, SEE:
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "要保卫您的 GNU/Linux 系统, 现在是最关键的一步:您需要输入 \"root\" 密"
+#~ "码。\"Root\"\n"
+#~ "是系统管理员, 而且是唯一有权进行更新、添加用户、更改泛系统配置等操作的用"
+#~ "户。简言之, \"root\"\n"
+#~ "可以做任何事!这就是为什么您必须选择难于猜测的密码:如果您的密码太简单了, "
+#~ "DrakX\n"
+#~ "会提醒您的。正如您所看到的那样, 您不必非得输入密码, 但是我们强烈建议您输入"
+#~ "一个密码。GNU/Linux 和其它任何操作系统一样容易遇到错误的操作。由于\n"
+#~ "\"root\" 可以越过所有限制并在访问分区时无意间就删除分区上的全部数据, 所以"
+#~ "成为 \"root\" 应该很难才对。\n"
+#~ "\n"
+#~ "密码应该是字母和数字的无序混合, 并且至少要有 8 位长。绝对不要将 \"root\" "
+#~ "的密码写下来 -- 这样的密码形同虚设。\n"
+#~ "\n"
+#~ "还有一条准则 -- 不要将密码设置得太长或太复杂, 否则您自己也记不住!\n"
+#~ "\n"
+#~ "您输入的密码不会显示在屏幕上。为了减少盲打所造成的输入错误, 您需要再次输入"
+#~ "密码。如果您碰巧两次都输错了, 那么这个``不正确的''密码将成为您第一次以\n"
+#~ "\"root\" 身份登录时的密码。\n"
+#~ "\n"
+#~ "如果您想要身份验证服务器控制对您计算机的访问, 请单击\"%s\"按钮。\n"
+#~ "\n"
+#~ "如果您的网络使用 LDAP 或 NIS, 又或者 PDC Windows\n"
+#~ "域验证服务, 请选择相应的\"%s\"。如果您不知道应该使用哪种, 请询问您的网络管"
+#~ "理员。\n"
+#~ "\n"
+#~ "如果您记住密码有困难的话, 如果您的计算机不需要连接到 Internet, 您也绝对信"
+#~ "任可使用您计算机的所有人, 您可以选择\"%s\"。"
+
+#~ msgid "authentication"
+#~ msgstr "认证"
diff --git a/perl-install/install/help/po/zh_TW.po b/perl-install/install/help/po/zh_TW.po
index d7cf7b9c1..f95db7e15 100644
--- a/perl-install/install/help/po/zh_TW.po
+++ b/perl-install/install/help/po/zh_TW.po
@@ -19,12 +19,13 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-04 17:25+0200\n"
+"POT-Creation-Date: 2008-09-12 12:22+0200\n"
"PO-Revision-Date: 2006-04-06 20:30+0200\n"
"Last-Translator: Shiva Huang <shivahuang@gmail.com>\n"
"Language-Team: Traditional Chinese <zh@li.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.3.1\n"
"X-Poedit-Language: Chinese\n"
@@ -32,15 +33,15 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
#: ../help.pm:14
-#, c-format
+#, fuzzy, c-format
msgid ""
"Before continuing, you should carefully read the terms of the license. It\n"
-"covers the entire Mandriva Linux distribution. If you agree with all the\n"
+"covers the entire Mageia distribution. If you agree with all the\n"
"terms it contains, check the \"%s\" box. If not, clicking on the \"%s\"\n"
"button will reboot your computer."
msgstr ""
"在繼續之前,您應該仔細的閱讀下面相關版權條款。\n"
-"這包含整個 Mandriva Linux 發行版的版權內容。若是您同意裡面的所有條款,\n"
+"這包含整個 Mageia 發行版的版權內容。若是您同意裡面的所有條款,\n"
"請點選 \"%s\" 按鈕,否則請點選 \"%s\" 按鈕並自動重新開機。"
#: ../help.pm:20
@@ -113,13 +114,24 @@ msgstr ""
#: ../help.pm:54
#, c-format
+msgid "User name"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
+msgid "Accept user"
+msgstr ""
+
+#: ../help.pm:54
+#, c-format
msgid "Do you want to use this feature?"
msgstr "您想要使用這個功能嗎?"
#: ../help.pm:57
#, c-format
msgid ""
-"Listed here are the existing Linux partitions detected on your hard drive.\n"
+"Listed here are the existing Linux partitions detected on your hard disk "
+"drive.\n"
"You can keep the choices made by the wizard, since they are good for most\n"
"common installations. If you make any changes, you must at least define a\n"
"root partition (\"/\"). Do not choose too small a partition or you will not\n"
@@ -129,24 +141,28 @@ msgid ""
"\n"
"Each partition is listed as follows: \"Name\", \"Capacity\".\n"
"\n"
-"\"Name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Name\" is structured: \"hard disk drive type\", \"hard disk drive number"
+"\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard drive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard disk drive is an IDE hard "
+"disk drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". For IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". For "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc."
msgstr ""
"目前所列出來的是硬碟機上偵測到已經存在的 Linux 分割區.\n"
@@ -176,28 +192,27 @@ msgstr ""
"就是指 \"SCSI ID 編號為第二小的那一台硬碟\", 然後依此類推下去."
#: ../help.pm:88
-#, c-format
+#, fuzzy, c-format
msgid ""
-"The Mandriva Linux installation is distributed on several CD-ROMs. If a\n"
+"The Mageia installation is distributed on several CD-ROMs. If a\n"
"selected package is located on another CD-ROM, DrakX will eject the current\n"
"CD and ask you to insert the required one. If you do not have the requested\n"
"CD at hand, just click on \"%s\", the corresponding packages will not be\n"
"installed."
msgstr ""
-"Mandriva Linux 安裝片包含數張光碟片。若所選擇的套件是位於另一張光碟上,\n"
+"Mageia 安裝片包含數張光碟片。若所選擇的套件是位於另一張光碟上,\n"
"DrakeX 會退出現在的光碟且要求您放入所要求的正確光碟片。\n"
"若您沒有要求的光碟在手上的話, 就按下 \"%s\", 對應的套件不會被安裝."
#: ../help.pm:95
-#, c-format
+#, fuzzy, c-format
msgid ""
"It's now time to specify which programs you wish to install on your system.\n"
-"There are thousands of packages available for Mandriva Linux, and to make "
-"it\n"
+"There are thousands of packages available for Mageia, and to make it\n"
"simpler to manage, they have been placed into groups of similar\n"
"applications.\n"
"\n"
-"Mandriva Linux sorts package groups in four categories. You can mix and\n"
+"Mageia sorts package groups in four categories. You can mix and\n"
"match applications from the various categories, so a ``Workstation''\n"
"installation can still have applications from the ``Server'' category\n"
"installed.\n"
@@ -210,8 +225,7 @@ msgid ""
"configure your system so that it complies as much as possible with the\n"
"Linux Standard Base specifications.\n"
"\n"
-" Selecting the \"LSB\" group will also install the \"2.4\" kernel series,\n"
-"instead of the default \"2.6\" one. This is to ensure 100%%-LSB compliance\n"
+" Selecting the \"LSB\" group will ensure 100%%-LSB compliance\n"
"of the system. However, if you do not select the \"LSB\" group you will\n"
"still have a system which is nearly 100%% LSB-compliant.\n"
"\n"
@@ -248,10 +262,10 @@ msgid ""
"command-line interface. The total size of this installation is about 65\n"
"megabytes."
msgstr ""
-"現在是指定那個程式您想要裝在您的系統上. Mandriva Linux 有上千個套件,\n"
+"現在是指定那個程式您想要裝在您的系統上. Mageia 有上千個套件,\n"
"為了簡單管理, 相似性質的應用程式已經被分類到群組裡.\n"
"\n"
-"Mandriva Linux 分類套件群組於四個類別. 你能由不同類別混合與配對應用程式,\n"
+"Mageia 分類套件群組於四個類別. 你能由不同類別混合與配對應用程式,\n"
"所以一個 ``工作站''安裝也能安裝``伺服器''類別安裝的應用程式.\n"
"\n"
" * \"%s\": 如果您計畫用您的機器當作一個工作站, 選擇一個或\n"
@@ -319,10 +333,10 @@ msgid ""
"!! If a server package has been selected, either because you specifically\n"
"chose the individual package or because it was part of a group of packages,\n"
"you'll be asked to confirm that you really want those servers to be\n"
-"installed. By default Mandriva Linux will automatically start any installed\n"
+"installed. By default Mageia will automatically start any installed\n"
"services at boot time. Even if they are safe and have no known issues at\n"
"the time the distribution was shipped, it is entirely possible that\n"
-"security holes were discovered after this version of Mandriva Linux was\n"
+"security holes were discovered after this version of Mageia was\n"
"finalized. If you do not know what a particular service is supposed to do "
"or\n"
"why it's being installed, then click \"%s\". Clicking \"%s\" will install\n"
@@ -348,16 +362,7 @@ msgstr ""
msgid "Automatic dependencies"
msgstr "自動相依性"
-#: ../help.pm:186
-#, c-format
-msgid ""
-"\"%s\": clicking on the \"%s\" button will open the printer configuration\n"
-"wizard. Consult the corresponding chapter of the ``Starter Guide'' for more\n"
-"information on how to set up a new printer. The interface presented in our\n"
-"manual is similar to the one used during installation."
-msgstr ""
-
-#: ../help.pm:192
+#: ../help.pm:185
#, c-format
msgid ""
"This dialog is used to select which services you wish to start at boot\n"
@@ -406,7 +411,12 @@ msgid ""
"server which can be used by other machines on your local network as well."
msgstr ""
-#: ../help.pm:220
+#: ../help.pm:213
+#, c-format
+msgid "Hardware clock set to GMT"
+msgstr ""
+
+#: ../help.pm:213
#, c-format
msgid "Automatic time synchronization"
msgstr "自動時間同步"
@@ -437,7 +447,7 @@ msgstr ""
msgid ""
"X (for X Window System) is the heart of the GNU/Linux graphical interface\n"
"on which all the graphical environments (KDE, GNOME, AfterStep,\n"
-"WindowMaker, etc.) bundled with Mandriva Linux rely upon.\n"
+"WindowMaker, etc.) bundled with Mageia rely upon.\n"
"\n"
"You'll see a list of different parameters to change to get an optimal\n"
"graphical display.\n"
@@ -548,41 +558,45 @@ msgstr ""
"您想核對選取 \"%s\"."
#: ../help.pm:319
-#, c-format
+#, fuzzy, c-format
msgid ""
-"You now need to decide where you want to install the Mandriva Linux\n"
-"operating system on your hard drive. If your hard drive is empty or if an\n"
+"You now need to decide where you want to install the Mageia\n"
+"operating system on your hard disk drive. If your hard disk drive is empty "
+"or if an\n"
"existing operating system is using all the available space you will have to\n"
-"partition the drive. Basically, partitioning a hard drive means to\n"
+"partition the drive. Basically, partitioning a hard disk drive means to\n"
"logically divide it to create the space needed to install your new\n"
-"Mandriva Linux system.\n"
+"Mageia system.\n"
"\n"
-"Because the process of partitioning a hard drive is usually irreversible\n"
+"Because the process of partitioning a hard disk drive is usually "
+"irreversible\n"
"and can lead to data losses, partitioning can be intimidating and stressful\n"
"for the inexperienced user. Fortunately, DrakX includes a wizard which\n"
"simplifies this process. Before continuing with this step, read through the\n"
"rest of this section and above all, take your time.\n"
"\n"
-"Depending on the configuration of your hard drive, several options are\n"
+"Depending on the configuration of your hard disk drive, several options are\n"
"available:\n"
"\n"
" * \"%s\". This option will perform an automatic partitioning of your blank\n"
"drive(s). If you use this option there will be no further prompts.\n"
"\n"
" * \"%s\". The wizard has detected one or more existing Linux partitions on\n"
-"your hard drive. If you want to use them, choose this option. You will then\n"
+"your hard disk drive. If you want to use them, choose this option. You will "
+"then\n"
"be asked to choose the mount points associated with each of the partitions.\n"
"The legacy mount points are selected by default, and for the most part it's\n"
"a good idea to keep them.\n"
"\n"
-" * \"%s\". If Microsoft Windows is installed on your hard drive and takes\n"
+" * \"%s\". If Microsoft Windows is installed on your hard disk drive and "
+"takes\n"
"all the space available on it, you will have to create free space for\n"
"GNU/Linux. To do so, you can delete your Microsoft Windows partition and\n"
"data (see ``Erase entire disk'' solution) or resize your Microsoft Windows\n"
"FAT or NTFS partition. Resizing can be performed without the loss of any\n"
"data, provided you've previously defragmented the Windows partition.\n"
"Backing up your data is strongly recommended. Using this option is\n"
-"recommended if you want to use both Mandriva Linux and Microsoft Windows on\n"
+"recommended if you want to use both Mageia and Microsoft Windows on\n"
"the same computer.\n"
"\n"
" Before choosing this option, please understand that after this\n"
@@ -591,15 +605,15 @@ msgid ""
"to store your data or to install new software.\n"
"\n"
" * \"%s\". If you want to delete all data and all partitions present on\n"
-"your hard drive and replace them with your new Mandriva Linux system, "
-"choose\n"
+"your hard disk drive and replace them with your new Mageia system, choose\n"
"this option. Be careful, because you will not be able to undo this "
"operation\n"
"after you confirm.\n"
"\n"
" !! If you choose this option, all data on your disk will be deleted. !!\n"
"\n"
-" * \"%s\". This option appears when the hard drive is entirely taken by\n"
+" * \"%s\". This option appears when the hard disk drive is entirely taken "
+"by\n"
"Microsoft Windows. Choosing this option will simply erase everything on the\n"
"drive and begin fresh, partitioning everything from scratch.\n"
"\n"
@@ -612,12 +626,12 @@ msgid ""
"experience. For more instructions on how to use the DiskDrake utility,\n"
"refer to the ``Managing Your Partitions'' section in the ``Starter Guide''."
msgstr ""
-"您需要決定那裡你想要安裝 Mandriva Linux\n"
+"您需要決定那裡你想要安裝 Mageia\n"
"作業系統於那個硬碟. 如果您的硬碟是全新尚未使用或\n"
"已經存在的作業系統正在使用全部可被利用的空間, 您將\n"
"必須進行分割硬碟的動作. 基本上, 分割硬碟的動作包含\n"
"邏輯上劃分它以建立需要的空間來安裝您的新\n"
-"Mandriva Linux 系統.\n"
+"Mageia 系統.\n"
"\n"
"因為分割硬碟的動作程序通常是無法回復的\n"
"且能導致資料遺失, 若您是一位不熟練的使用者,\n"
@@ -643,7 +657,7 @@ msgstr ""
"重新調整 Microsoft Windows FAT 或 NTFS 分割區大小.\n"
"若您已經 defragment(不連續碎片重新整理) Windows 分割\n"
"且它用 FAT 格式.重新調整分割可以被執行於不遺失任何資料\n"
-"資料備份是被強烈建議的. 若您想要使用 Mandriva Linux and Microsoft\n"
+"資料備份是被強烈建議的. 若您想要使用 Mageia and Microsoft\n"
"Windows 於同一台電腦, 使用此選項是被建議的.\n"
"\n"
" 選擇此選項前, 請了解當使用這個過程項目後, Microsoft Windows\n"
@@ -651,7 +665,7 @@ msgstr ""
" Microsoft Windows 來存您的資料與安裝新軟體.\n"
"\n"
" * \"%s\". 如果您想要刪除全部現存於您的硬碟上資料與\n"
-"分割且以您的新 Mandriva Linux 系統替換他們,\n"
+"分割且以您的新 Mageia 系統替換他們,\n"
"選此選項. 但是小心使用, 你將無法於你確認之後\n"
"逆反你的決定.\n"
"\n"
@@ -676,7 +690,12 @@ msgstr ""
msgid "Use existing partition"
msgstr "使用已經存在的分割區"
-#: ../help.pm:377
+#: ../help.pm:370
+#, c-format
+msgid "Use the free space on the Microsoft Windows® partition"
+msgstr ""
+
+#: ../help.pm:370
#, c-format
msgid "Erase entire disk"
msgstr "刪除所有磁碟內容"
@@ -748,8 +767,23 @@ msgstr ""
msgid "Generate auto-install floppy"
msgstr "產生自動安裝軟片"
-#: ../help.pm:415
+#: ../help.pm:405
+#, c-format
+msgid "Replay"
+msgstr ""
+
+#: ../help.pm:405
#, c-format
+msgid "Automated"
+msgstr ""
+
+#: ../help.pm:405
+#, c-format
+msgid "Save packages selection"
+msgstr ""
+
+#: ../help.pm:408
+#, fuzzy, c-format
msgid ""
"If you chose to reuse some legacy GNU/Linux partitions, you may wish to\n"
"reformat some of them and erase any data they contain. To do so, please\n"
@@ -768,7 +802,7 @@ msgid ""
"Click on \"%s\" when you're ready to format the partitions.\n"
"\n"
"Click on \"%s\" if you want to choose another partition for your new\n"
-"Mandriva Linux operating system installation.\n"
+"Mageia operating system installation.\n"
"\n"
"Click on \"%s\" if you wish to select partitions which will be checked for\n"
"bad blocks on the disk."
@@ -783,13 +817,13 @@ msgstr ""
"您將不行重新恢復它.\n"
"當您準備好要格式化此分割, 點選 \"%s\".\n"
"\n"
-"若您想選擇另一個分割給您的新的 Mandriva Linux 作業系統安裝, 點選了\"%s\".\n"
+"若您想選擇另一個分割給您的新的 Mageia 作業系統安裝, 點選了\"%s\".\n"
"若您想選擇要被檢查磁碟上壞的區塊的分割, 點選.\"%s\"."
#: ../help.pm:437
-#, c-format
+#, fuzzy, c-format
msgid ""
-"By the time you install Mandriva Linux, it's likely that some packages will\n"
+"By the time you install Mageia, it's likely that some packages will\n"
"have been updated since the initial release. Bugs may have been fixed,\n"
"security issues resolved. To allow you to benefit from these updates,\n"
"you're now able to download them from the Internet. Check \"%s\" if you\n"
@@ -801,7 +835,7 @@ msgid ""
"will appear: review the selection, and press \"%s\" to retrieve and install\n"
"the selected package(s), or \"%s\" to abort."
msgstr ""
-"此時您安裝 Mandriva Linux 時, 或許自從初始釋出的某些套件將有更新.\n"
+"此時您安裝 Mageia 時, 或許自從初始釋出的某些套件將有更新.\n"
"臭蟲或許已經修正了, 安全性問題解決了. 為了允許您從這些更新中\n"
"獲得利益, 您現在可以由網際網路下載他們. 如果您有可用的網際網路連線,\n"
"選取 \"%s\", 或是, 如果您想稍後安裝更新套件, 選取 \"%s\".\n"
@@ -811,7 +845,7 @@ msgstr ""
"被選擇的套件, 或 \"%s\" 以中斷放棄."
#: ../help.pm:450
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, DrakX will allow you to choose the security level you desire\n"
"for your machine. As a rule of thumb, the security level should be set\n"
@@ -820,7 +854,7 @@ msgid ""
"generally obtained at the expense of ease of use.\n"
"\n"
"If you do not know what to choose, keep the default option. You'll be able\n"
-"to change it later with the draksec tool, which is part of Mandriva Linux\n"
+"to change it later with the draksec tool, which is part of Mageia\n"
"Control Center.\n"
"\n"
"Fill the \"%s\" field with the e-mail address of the person responsible for\n"
@@ -831,8 +865,8 @@ msgstr ""
"安全性等級應該設定較高. 權衡之下, 較高的安全性等級換得不容易使用.\n"
"\n"
"如果您不知道選什麼, 保留預設選項. 您將能在稍後用 draksec 工具改變它,\n"
-"draksec 是 Mandriva Linux 控制中心的一部分.用負責安全性的人的 e-mail 地址填"
-"入 \"%s\" 欄位. 安全性訊息將被寄到\n"
+"draksec 是 Mageia 控制中心的一部分.用負責安全性的人的 e-mail 地址填入 \"%s\" "
+"欄位. 安全性訊息將被寄到\n"
"那個位址."
#: ../help.pm:461
@@ -841,24 +875,27 @@ msgid "Security Administrator"
msgstr "安全性管理員:"
#: ../help.pm:464
-#, c-format
+#, fuzzy, c-format
msgid ""
"At this point, you need to choose which partition(s) will be used for the\n"
-"installation of your Mandriva Linux system. If partitions have already been\n"
+"installation of your Mageia system. If partitions have already been\n"
"defined, either from a previous installation of GNU/Linux or by another\n"
-"partitioning tool, you can use existing partitions. Otherwise, hard drive\n"
+"partitioning tool, you can use existing partitions. Otherwise, hard disk "
+"drive\n"
"partitions must be defined.\n"
"\n"
-"To create partitions, you must first select a hard drive. You can select\n"
+"To create partitions, you must first select a hard disk drive. You can "
+"select\n"
"the disk for partitioning by clicking on ``hda'' for the first IDE drive,\n"
"``hdb'' for the second, ``sda'' for the first SCSI drive and so on.\n"
"\n"
-"To partition the selected hard drive, you can use these options:\n"
+"To partition the selected hard disk drive, you can use these options:\n"
"\n"
-" * \"%s\": this option deletes all partitions on the selected hard drive\n"
+" * \"%s\": this option deletes all partitions on the selected hard disk "
+"drive\n"
"\n"
-" * \"%s\": this option enables you to automatically create ext3 and swap\n"
-"partitions in the free space of your hard drive\n"
+" * \"%s\": this option enables you to automatically create ext4 and swap\n"
+"partitions in the free space of your hard disk drive\n"
"\n"
"\"%s\": gives access to additional features:\n"
"\n"
@@ -874,21 +911,23 @@ msgid ""
"work.\n"
"\n"
" * \"%s\": discards all changes and reloads the partition table that was\n"
-"originally on the hard drive.\n"
+"originally on the hard disk drive.\n"
"\n"
" * \"%s\": un-checking this option will force users to manually mount and\n"
"unmount removable media such as floppies and CD-ROMs.\n"
"\n"
" * \"%s\": use this option if you wish to use a wizard to partition your\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": use this option to cancel your changes.\n"
"\n"
" * \"%s\": allows additional actions on partitions (type, options, format)\n"
-"and gives more information about the hard drive.\n"
+"and gives more information about the hard disk drive.\n"
"\n"
-" * \"%s\": when you are finished partitioning your hard drive, this will\n"
+" * \"%s\": when you are finished partitioning your hard disk drive, this "
+"will\n"
"save your changes back to disk.\n"
"\n"
"When defining the size of a partition, you can finely set the partition\n"
@@ -905,16 +944,10 @@ msgid ""
"\n"
" * Ctrl-m to set the mount point\n"
"\n"
-"To get information about the different file system types available, please\n"
+"To get information about the different filesystem types available, please\n"
"read the ext2FS chapter from the ``Reference Manual''.\n"
-"\n"
-"If you are installing on a PPC machine, you will want to create a small HFS\n"
-"``bootstrap'' partition of at least 1MB which will be used by the yaboot\n"
-"bootloader. If you opt to make the partition a bit larger, say 50MB, you\n"
-"may find it a useful place to store a spare kernel and ramdisk images for\n"
-"emergency boot situations."
msgstr ""
-"在這個階段, 您需要選擇要用來安裝 Mandriva Linux 系統的分割區.\n"
+"在這個階段, 您需要選擇要用來安裝 Mageia 系統的分割區.\n"
"如果分割區已經被定義了, 不管是從舊有的 GNU/Linux 安裝或是\n"
"另一個處理分割區的工具, 您可以使用原本已經劃分好的分割區.\n"
"否則硬碟分割必須要被定義.\n"
@@ -926,7 +959,7 @@ msgstr ""
"\n"
" * \"%s\": 這個選項刪除在所選的影碟上的全部分割區\n"
"\n"
-" * \"%s\": 這個選項使您自動建立 ext3 與 swap 分割區於您的硬碟上的空白空間\n"
+" * \"%s\": 這個選項使您自動建立 ext4 與 swap 分割區於您的硬碟上的空白空間\n"
"\n"
"\"%s\": 給多加的功能的使用:\n"
"\n"
@@ -944,7 +977,8 @@ msgstr ""
"\n"
" * \"%s\": 如果您想用精靈來分割您的硬碟, 使用這個選項. 如果您沒有對於\n"
"操作分割的好的了解, 這是被建議的.\n"
-"hard drive. This is recommended if you do not have a good understanding of\n"
+"hard disk drive. This is recommended if you do not have a good understanding "
+"of\n"
"partitioning.\n"
"\n"
" * \"%s\": 用這個選項來取消您的變更.\n"
@@ -967,58 +1001,83 @@ msgstr ""
"\n"
"要得到關於不同可用的檔案系統的資訊, 請從 ``Reference Manual (參考手冊)''\n"
"閱讀 ext2FS 章節.\n"
-"\n"
-"如果您正在安裝於一個 PPC 機器, 您將想要建立一個小的 HFS\n"
-"``bootstrap'' 分割至少 1MB 以用於 yaboot 開機載入器. 如果您選擇使分割大一"
-"些,\n"
-"像 50MB, 您或許發現它是一個好用的貯存一個備用核心與 ramdisk\n"
-"影像給緊急使用開機的好地方."
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Save partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Restore partition table"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Rescue partition table"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Removable media auto-mounting"
msgstr "可移除式媒介自動掛載"
-#: ../help.pm:533
+#: ../help.pm:526
+#, c-format
+msgid "Wizard"
+msgstr ""
+
+#: ../help.pm:526
+#, c-format
+msgid "Undo"
+msgstr ""
+
+#: ../help.pm:526
#, c-format
msgid "Toggle between normal/expert mode"
msgstr "切換一般/專家模式"
#: ../help.pm:536
-#, c-format
+#, fuzzy, c-format
msgid ""
-"More than one Microsoft partition has been detected on your hard drive.\n"
+"More than one Microsoft partition has been detected on your hard disk "
+"drive.\n"
"Please choose the one which you want to resize in order to install your new\n"
-"Mandriva Linux operating system.\n"
+"Mageia operating system.\n"
"\n"
"Each partition is listed as follows: \"Linux name\", \"Windows name\"\n"
"\"Capacity\".\n"
"\n"
-"\"Linux name\" is structured: \"hard drive type\", \"hard drive number\",\n"
+"\"Linux name\" is structured: \"hard disk drive type\", \"hard disk drive "
+"number\",\n"
"\"partition number\" (for example, \"hda1\").\n"
"\n"
-"\"Hard drive type\" is \"hd\" if your hard dive is an IDE hard drive and\n"
-"\"sd\" if it is a SCSI hard drive.\n"
+"\"Hard disk drive type\" is \"hd\" if your hard dive is an IDE hard disk "
+"drive and\n"
+"\"sd\" if it is a SCSI hard disk drive.\n"
"\n"
-"\"Hard drive number\" is always a letter after \"hd\" or \"sd\". With IDE\n"
-"hard drives:\n"
+"\"Hard disk drive number\" is always a letter after \"hd\" or \"sd\". With "
+"IDE\n"
+"hard disk drives:\n"
"\n"
-" * \"a\" means \"master hard drive on the primary IDE controller\";\n"
+" * \"a\" means \"master hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"b\" means \"slave hard drive on the primary IDE controller\";\n"
+" * \"b\" means \"slave hard disk drive on the primary IDE controller\";\n"
"\n"
-" * \"c\" means \"master hard drive on the secondary IDE controller\";\n"
+" * \"c\" means \"master hard disk drive on the secondary IDE controller\";\n"
"\n"
-" * \"d\" means \"slave hard drive on the secondary IDE controller\".\n"
+" * \"d\" means \"slave hard disk drive on the secondary IDE controller\".\n"
"\n"
-"With SCSI hard drives, an \"a\" means \"lowest SCSI ID\", a \"b\" means\n"
+"With SCSI hard disk drives, an \"a\" means \"lowest SCSI ID\", a \"b\" "
+"means\n"
"\"second lowest SCSI ID\", etc.\n"
"\n"
-"\"Windows name\" is the letter of your hard drive under Windows (the first\n"
+"\"Windows name\" is the letter of your hard disk drive under Windows (the "
+"first\n"
"disk or partition is called \"C:\")."
msgstr ""
"多於一個 Microsoft 分割區已經在您的硬碟上被偵測到. 請選擇您希望要重新調整 大"
-"小的分割以便安裝您的新的 Mandriva Linux 作業系統.\n"
+"小的分割以便安裝您的新的 Mageia 作業系統.\n"
"\n"
"每個分割區都列出了像是: \"Linux 名稱\", \"Windows 名稱\", \"容量\".\n"
"\n"
@@ -1057,45 +1116,45 @@ msgstr ""
"請按下 \"%s\" 按鈕來看完整的國家清單。"
#: ../help.pm:572
-#, c-format
+#, fuzzy, c-format
msgid ""
"This step is activated only if an existing GNU/Linux partition has been\n"
"found on your machine.\n"
"\n"
"DrakX now needs to know if you want to perform a new installation or an\n"
-"upgrade of an existing Mandriva Linux system:\n"
+"upgrade of an existing Mageia system:\n"
"\n"
" * \"%s\". For the most part, this completely wipes out the old system.\n"
"However, depending on your partitioning scheme, you can prevent some of\n"
"your existing data (notably \"home\" directories) from being over-written.\n"
-"If you wish to change how your hard drives are partitioned, or to change\n"
-"the file system, you should use this option.\n"
+"If you wish to change how your hard disk drives are partitioned, or to "
+"change\n"
+"the filesystem, you should use this option.\n"
"\n"
" * \"%s\". This installation class allows you to update the packages\n"
-"currently installed on your Mandriva Linux system. Your current "
-"partitioning\n"
+"currently installed on your Mageia system. Your current partitioning\n"
"scheme and user data will not be altered. Most of the other configuration\n"
"steps remain available and are similar to a standard installation.\n"
"\n"
-"Using the ``Upgrade'' option should work fine on Mandriva Linux systems\n"
+"Using the ``Upgrade'' option should work fine on Mageia systems\n"
"running version \"8.1\" or later. Performing an upgrade on versions prior\n"
-"to Mandriva Linux version \"8.1\" is not recommended."
+"to Mageia version \"8.1\" is not recommended."
msgstr ""
"這個步驟是在您的機器上找到已經存在的 GNU/Linux 分割區才會啟用。\n"
"\n"
-"DrakX 需要知道您是要安裝新的系統或者升級既有的 Mandriva Linux 系統:\n"
+"DrakX 需要知道您是要安裝新的系統或者升級既有的 Mageia 系統:\n"
"\n"
" * \"%s\". 大致來說,這將會完全抹除舊的系統。然而,根據您的分割區配\n"
"置方式,您可以避免部分現存的資料 (例如 \"home\" 之中的目錄) 被完全\n"
"抹除。如果您想要改變您的硬碟分割方式,或改變檔案系統,您應該使用這\n"
"個選項。\n"
"\n"
-" * \"%s\". 這個安裝方式讓您更新目前安裝在您的 Mandriva Linux 中的套\n"
+" * \"%s\". 這個安裝方式讓您更新目前安裝在您的 Mageia 中的套\n"
"件。您目前的分割方式和使用者資料不會被改變。大部分其他的設定步驟仍\n"
"然會出現並且和標準的安裝過程相似。\n"
"\n"
-"使用 ``更新'' 選項應該在 Mandriva Linux 版本 \"8.1\" 或更新的系統上\n"
-"可以正常運作。不建議從 Mandriva Linux 版本 \"8.1\" 或更早的系統進行更新。"
+"使用 ``更新'' 選項應該在 Mageia 版本 \"8.1\" 或更新的系統上\n"
+"可以正常運作。不建議從 Mageia 版本 \"8.1\" 或更早的系統進行更新。"
#: ../help.pm:594
#, c-format
@@ -1131,7 +1190,7 @@ msgstr ""
"按鍵組合以便切換於拉丁與非拉丁鍵盤形式之中。"
#: ../help.pm:612
-#, c-format
+#, fuzzy, c-format
msgid ""
"The first step is to choose your preferred language.\n"
"\n"
@@ -1147,8 +1206,7 @@ msgid ""
"\n"
"About UTF-8 (unicode) support: Unicode is a new character encoding meant to\n"
"cover all existing languages. However full support for it in GNU/Linux is\n"
-"still under development. For that reason, Mandriva Linux's use of UTF-8 "
-"will\n"
+"still under development. For that reason, Mageia's use of UTF-8 will\n"
"depend on the user's choices:\n"
"\n"
" * If you choose a language with a strong legacy encoding (latin1\n"
@@ -1185,8 +1243,7 @@ msgstr ""
"選擇英文當預設語言且在進階部份選擇 \"%s\".\n"
"\n"
"關於 UTF-8 (unicode) 支援:Unicode 是一個新的字元編碼以涵蓋所有存在的語言。\n"
-"然而, 在 GNU/Linux 下完全的支援仍然在開發中. 因為那個原因, Mandriva Linux "
-"的\n"
+"然而, 在 GNU/Linux 下完全的支援仍然在開發中. 因為那個原因, Mageia 的\n"
" UTF-8 使用將根據使用者的選擇而定:\n"
"\n"
" * 如果您選擇一個有偏重傳統編碼的語言 (latin1 語言、俄羅斯文、日文、中文、\n"
@@ -1212,7 +1269,12 @@ msgstr ""
msgid "Espanol"
msgstr "西班牙語"
-#: ../help.pm:653
+#: ../help.pm:643
+#, c-format
+msgid "Use Unicode by default"
+msgstr ""
+
+#: ../help.pm:646
#, c-format
msgid ""
"Usually, DrakX has no problems detecting the number of buttons on your\n"
@@ -1292,78 +1354,7 @@ msgstr ""
"請選擇正確的連接埠名稱. 比方, Windows 所稱呼的 \"COM1\"\n"
"在 GNU/Linux 環境是稱呼為 \"ttyS0\"."
-#: ../help.pm:691
-#, c-format
-msgid ""
-"This is the most crucial decision point for the security of your GNU/Linux\n"
-"system: you must enter the \"root\" password. \"Root\" is the system\n"
-"administrator and is the only user authorized to make updates, add users,\n"
-"change the overall system configuration, and so on. In short, \"root\" can\n"
-"do everything! That's why you must choose a password which is difficult to\n"
-"guess: DrakX will tell you if the password you chose is too simple. As you\n"
-"can see, you're not forced to enter a password, but we strongly advise\n"
-"against this. GNU/Linux is just as prone to operator error as any other\n"
-"operating system. Since \"root\" can overcome all limitations and\n"
-"unintentionally erase all data on partitions by carelessly accessing the\n"
-"partitions themselves, it is important that it be difficult to become\n"
-"\"root\".\n"
-"\n"
-"The password should be a mixture of alphanumeric characters and at least 8\n"
-"characters long. Never write down the \"root\" password -- it makes it far\n"
-"too easy to compromise your system.\n"
-"\n"
-"One caveat: do not make the password too long or too complicated because "
-"you\n"
-"must be able to remember it!\n"
-"\n"
-"The password will not be displayed on screen as you type it. To reduce the\n"
-"chance of a blind typing error you'll need to enter the password twice. If\n"
-"you do happen to make the same typing error twice, you'll have to use this\n"
-"``incorrect'' password the first time you'll try to connect as \"root\".\n"
-"\n"
-"If you want an authentication server to control access to your computer,\n"
-"click on the \"%s\" button.\n"
-"\n"
-"If your network uses either LDAP, NIS, or PDC Windows Domain authentication\n"
-"services, select the appropriate one for \"%s\". If you do not know which\n"
-"one to use, you should ask your network administrator.\n"
-"\n"
-"If you happen to have problems with remembering passwords, or if your\n"
-"computer will never be connected to the Internet and you absolutely trust\n"
-"everybody who uses your computer, you can choose to have \"%s\"."
-msgstr ""
-"這是最重要的 GNU/Linux 系統安全性決定點: 你一定要輸入 \"root\" 密碼.\n"
-"\"root\" 是系統管理員且是被授權做更新, 增加使用者, 變更整個系統設定等等\n"
-"的人。簡而言之,\"root\" 能做任何事!那就是為什麼您必須要選擇一個很難猜中\n"
-"的密碼. DrakX 將告訴您您的密碼是否太簡單. 就像您所見的一樣, 您並不被強制輸"
-"入\n"
-"一個密碼, 但是我們強烈建議如此. GNU/Linux 就像其他任何作業系統一般易於受\n"
-"操作手誤影響。因為 \"root\" 可以克服全部限制且藉由不小心存取分割,可以\n"
-"不經意地抹除所有分割上的資料,因此讓成為 \"root\" 身分很困難是極重要的。\n"
-"\n"
-"密碼應該是一組字母與數字字元且至少 8 個字元長. 絕不寫下 \"root\" 密碼 - \n"
-"它使得太容易掌控您的系統(安全性)。\n"
-"\n"
-"一個警告: 別把密碼設定太長或太複雜, 因為您必須能記住它!\n"
-"\n"
-"您在輸入密碼時, 螢幕上不會顯示出你實際敲入的內容. 另外就是您需要輸入兩次\n"
-"以便於確定所輸入的密碼沒有打錯. 如果您不小心做出兩次同樣的輸入錯誤,\n"
-"您將必須使用這個 ``錯誤'' 密碼於第一次您試著以 \"root\" 連入.\n"
-"\n"
-"如果您想要一個認證伺服器來控制存取您的電腦, 點選 \"%s\" 按鍵.\n"
-"\n"
-"若是你知道您所在網路有使用 LDAP, NIS, 或 PDC Windows 網域認證服務,\n"
-"選適合的一個給 \"%s\". 如果您不知道選那一個, 向網路管理者詢問相關資訊.\n"
-"\n"
-"如果您遇到記住密碼的問題, 或如果您的電腦將永遠不連上網際網路且您絕對相信\n"
-"所有使用您電腦的人,您可以選擇 \"%s\"."
-
-#: ../help.pm:725
-#, c-format
-msgid "authentication"
-msgstr "認證"
-
-#: ../help.pm:728
+#: ../help.pm:684
#, c-format
msgid ""
"A boot loader is a little program which is started by the computer at boot\n"
@@ -1377,7 +1368,7 @@ msgid ""
"\n"
" * if a GRUB or LILO boot sector is found, it'll replace it with a new one.\n"
"\n"
-"If DrakX can not determine where to place the boot sector, it'll ask you\n"
+"If DrakX cannot determine where to place the boot sector, it'll ask you\n"
"where it should place it. Generally, the \"%s\" is the safest place.\n"
"Choosing \"%s\" will not install any boot loader. Use this option only if "
"you\n"
@@ -1396,10 +1387,10 @@ msgstr ""
"您很清楚您在做什麼時才選擇這個選項。"
#: ../help.pm:745
-#, c-format
+#, fuzzy, c-format
msgid ""
"Now, it's time to select a printing system for your computer. Other\n"
-"operating systems may offer you one, but Mandriva Linux offers two. Each of\n"
+"operating systems may offer you one, but Mageia offers two. Each of\n"
"the printing systems is best suited to particular types of configuration.\n"
"\n"
" * \"%s\" -- which is an acronym for ``print, do not queue'', is the choice\n"
@@ -1420,12 +1411,11 @@ msgid ""
"options and for managing the printer.\n"
"\n"
"If you make a choice now, and later find that you do not like your printing\n"
-"system you may change it by running PrinterDrake from the Mandriva Linux\n"
+"system you may change it by running PrinterDrake from the Mageia\n"
"Control Center and clicking on the \"%s\" button."
msgstr ""
"現在要選擇您的電腦要使用的列印系統. 其他作業系統或許只有提供您一種選擇,\n"
-"但是 Mandriva Linux 這邊提供了兩種選擇. 每一種列印系統是最適合於特別設定型"
-"態.\n"
+"但是 Mageia 這邊提供了兩種選擇. 每一種列印系統是最適合於特別設定型態.\n"
"\n"
" * \"%s\" - 是 ``print, do not queue (列印, 不排隊)'' 之縮寫字, 是當您有一"
"個\n"
@@ -1442,14 +1432,19 @@ msgstr ""
"\"%s\" 提供了圖形的介面前端給列印, 選擇列印的選項, 管理印表機.\n"
"\n"
"如果您現在做出決定, 且您之後發現不喜歡您的列印系統, 您可以藉由從\n"
-"Mandriva Linux 控制中心執行 PrinterDrake 點選 \"%s\" 按鍵改變它."
+"Mageia 控制中心執行 PrinterDrake 點選 \"%s\" 按鍵改變它."
#: ../help.pm:768
#, c-format
msgid "pdq"
msgstr "pdq"
-#: ../help.pm:768
+#: ../help.pm:724
+#, c-format
+msgid "CUPS"
+msgstr ""
+
+#: ../help.pm:724
#, c-format
msgid "Expert"
msgstr "專家"
@@ -1462,7 +1457,7 @@ msgid ""
"found, DrakX will automatically install the appropriate driver.\n"
"\n"
"Because hardware detection is not foolproof, DrakX may fail in detecting\n"
-"your hard drives. If so, you'll have to specify your hardware by hand.\n"
+"your hard disk drives. If so, you'll have to specify your hardware by hand.\n"
"\n"
"If you had to manually specify your PCI SCSI adapter, DrakX will ask if you\n"
"want to configure options for it. You should allow DrakX to probe the\n"
@@ -1521,11 +1516,6 @@ msgid ""
" * \"%s\": verify the current mouse configuration and click on the button\n"
"to change it if necessary.\n"
"\n"
-" * \"%s\": clicking on the \"%s\" button will open the printer\n"
-"configuration wizard. Consult the corresponding chapter of the ``Starter\n"
-"Guide'' for more information on how to set up a new printer. The interface\n"
-"presented in our manual is similar to the one used during installation.\n"
-"\n"
" * \"%s\": if a sound card is detected on your system, it'll be displayed\n"
"here. If you notice the sound card is not the one actually present on your\n"
"system, you can click on the button and choose a different driver.\n"
@@ -1543,8 +1533,7 @@ msgid ""
"\n"
" * \"%s\": if you wish to configure your Internet or local network access,\n"
"you can do so now. Refer to the printed documentation or use the\n"
-"Mandriva Linux Control Center after the installation has finished to "
-"benefit\n"
+"Mageia Control Center after the installation has finished to benefit\n"
"from full in-line help.\n"
"\n"
" * \"%s\": allows to configure HTTP and FTP proxy addresses if the machine\n"
@@ -1561,14 +1550,19 @@ msgid ""
" * \"%s\": if you wish to change your bootloader configuration, click this\n"
"button. This should be reserved to advanced users. Refer to the printed\n"
"documentation or the in-line help about bootloader configuration in the\n"
-"Mandriva Linux Control Center.\n"
+"Mageia Control Center.\n"
"\n"
" * \"%s\": through this entry you can fine tune which services will be run\n"
"on your machine. If you plan to use this machine as a server it's a good\n"
"idea to review this setup."
msgstr ""
-#: ../help.pm:858
+#: ../help.pm:809
+#, fuzzy, c-format
+msgid "TV card"
+msgstr "ISDN 卡"
+
+#: ../help.pm:809
#, c-format
msgid "ISDN card"
msgstr "ISDN 卡"
@@ -1579,25 +1573,27 @@ msgid "Graphical Interface"
msgstr "圖形介面"
#: ../help.pm:861
-#, c-format
+#, fuzzy, c-format
msgid ""
-"Choose the hard drive you want to erase in order to install your new\n"
-"Mandriva Linux partition. Be careful, all data on this drive will be lost\n"
+"Choose the hard disk drive you want to erase in order to install your new\n"
+"Mageia partition. Be careful, all data on this drive will be lost\n"
"and will not be recoverable!"
msgstr ""
-"選擇您想要抹除的硬碟來安裝新的 Mandriva Linux 分割. 小心,\n"
+"選擇您想要抹除的硬碟來安裝新的 Mageia 分割. 小心,\n"
"磁碟上全部資料將遺失且將無法挽回!"
#: ../help.pm:866
#, c-format
msgid ""
"Click on \"%s\" if you want to delete all data and partitions present on\n"
-"this hard drive. Be careful, after clicking on \"%s\", you will not be able\n"
-"to recover any data and partitions present on this hard drive, including\n"
+"this hard disk drive. Be careful, after clicking on \"%s\", you will not be "
+"able\n"
+"to recover any data and partitions present on this hard disk drive, "
+"including\n"
"any Windows data.\n"
"\n"
"Click on \"%s\" to quit this operation without losing data and partitions\n"
-"present on this hard drive."
+"present on this hard disk drive."
msgstr ""
"您如果想要刪除在這個硬碟上的全部資料與分割, 點選 \"%s\".\n"
"小心, 點選 \"%s\" 之後, 您將無法挽回任何在這個硬碟上的資料與分割, 包含\n"
@@ -1615,3 +1611,83 @@ msgstr "下一步 ->"
msgid "<- Previous"
msgstr "<- 上一步"
+#~ msgid ""
+#~ "This is the most crucial decision point for the security of your GNU/"
+#~ "Linux\n"
+#~ "system: you must enter the \"root\" password. \"Root\" is the system\n"
+#~ "administrator and is the only user authorized to make updates, add "
+#~ "users,\n"
+#~ "change the overall system configuration, and so on. In short, \"root\" "
+#~ "can\n"
+#~ "do everything! That's why you must choose a password which is difficult "
+#~ "to\n"
+#~ "guess: DrakX will tell you if the password you chose is too simple. As "
+#~ "you\n"
+#~ "can see, you're not forced to enter a password, but we strongly advise\n"
+#~ "against this. GNU/Linux is just as prone to operator error as any other\n"
+#~ "operating system. Since \"root\" can overcome all limitations and\n"
+#~ "unintentionally erase all data on partitions by carelessly accessing the\n"
+#~ "partitions themselves, it is important that it be difficult to become\n"
+#~ "\"root\".\n"
+#~ "\n"
+#~ "The password should be a mixture of alphanumeric characters and at least "
+#~ "8\n"
+#~ "characters long. Never write down the \"root\" password -- it makes it "
+#~ "far\n"
+#~ "too easy to compromise your system.\n"
+#~ "\n"
+#~ "One caveat: do not make the password too long or too complicated because "
+#~ "you\n"
+#~ "must be able to remember it!\n"
+#~ "\n"
+#~ "The password will not be displayed on screen as you type it. To reduce "
+#~ "the\n"
+#~ "chance of a blind typing error you'll need to enter the password twice. "
+#~ "If\n"
+#~ "you do happen to make the same typing error twice, you'll have to use "
+#~ "this\n"
+#~ "``incorrect'' password the first time you'll try to connect as \"root\".\n"
+#~ "\n"
+#~ "If you want an authentication server to control access to your computer,\n"
+#~ "click on the \"%s\" button.\n"
+#~ "\n"
+#~ "If your network uses either LDAP, NIS, or PDC Windows Domain "
+#~ "authentication\n"
+#~ "services, select the appropriate one for \"%s\". If you do not know "
+#~ "which\n"
+#~ "one to use, you should ask your network administrator.\n"
+#~ "\n"
+#~ "If you happen to have problems with remembering passwords, or if your\n"
+#~ "computer will never be connected to the Internet and you absolutely "
+#~ "trust\n"
+#~ "everybody who uses your computer, you can choose to have \"%s\"."
+#~ msgstr ""
+#~ "這是最重要的 GNU/Linux 系統安全性決定點: 你一定要輸入 \"root\" 密碼.\n"
+#~ "\"root\" 是系統管理員且是被授權做更新, 增加使用者, 變更整個系統設定等等\n"
+#~ "的人。簡而言之,\"root\" 能做任何事!那就是為什麼您必須要選擇一個很難猜"
+#~ "中\n"
+#~ "的密碼. DrakX 將告訴您您的密碼是否太簡單. 就像您所見的一樣, 您並不被強制輸"
+#~ "入\n"
+#~ "一個密碼, 但是我們強烈建議如此. GNU/Linux 就像其他任何作業系統一般易於受\n"
+#~ "操作手誤影響。因為 \"root\" 可以克服全部限制且藉由不小心存取分割,可以\n"
+#~ "不經意地抹除所有分割上的資料,因此讓成為 \"root\" 身分很困難是極重要的。\n"
+#~ "\n"
+#~ "密碼應該是一組字母與數字字元且至少 8 個字元長. 絕不寫下 \"root\" 密碼 - \n"
+#~ "它使得太容易掌控您的系統(安全性)。\n"
+#~ "\n"
+#~ "一個警告: 別把密碼設定太長或太複雜, 因為您必須能記住它!\n"
+#~ "\n"
+#~ "您在輸入密碼時, 螢幕上不會顯示出你實際敲入的內容. 另外就是您需要輸入兩次\n"
+#~ "以便於確定所輸入的密碼沒有打錯. 如果您不小心做出兩次同樣的輸入錯誤,\n"
+#~ "您將必須使用這個 ``錯誤'' 密碼於第一次您試著以 \"root\" 連入.\n"
+#~ "\n"
+#~ "如果您想要一個認證伺服器來控制存取您的電腦, 點選 \"%s\" 按鍵.\n"
+#~ "\n"
+#~ "若是你知道您所在網路有使用 LDAP, NIS, 或 PDC Windows 網域認證服務,\n"
+#~ "選適合的一個給 \"%s\". 如果您不知道選那一個, 向網路管理者詢問相關資訊.\n"
+#~ "\n"
+#~ "如果您遇到記住密碼的問題, 或如果您的電腦將永遠不連上網際網路且您絕對相信\n"
+#~ "所有使用您電腦的人,您可以選擇 \"%s\"."
+
+#~ msgid "authentication"
+#~ msgstr "認證"
diff --git a/perl-install/install/http.pm b/perl-install/install/http.pm
index bf59c273b..db111564c 100644
--- a/perl-install/install/http.pm
+++ b/perl-install/install/http.pm
@@ -1,30 +1,25 @@
-package install::http; # $Id$
+package install::http;
-use IO::Socket;
-
-my $sock;
-
-
-sub close() {
- $sock->close if $sock;
-}
+use urpm::download;
+use common;
+use Cwd;
sub getFile {
- my ($url) = @_;
- my ($_size, $fh) = get_file_and_size($url) or return;
+ my ($url, %o_options) = @_;
+ my ($_size, $fh) = get_file_and_size($url, %o_options) or return;
$fh;
}
-sub parse_url {
+sub parse_http_url {
my ($url) = @_;
- $url =~ m,^(?:http|ftp)://([^/:]+)(?::(\d+))?(/\S*)?$,;
+ $url =~ m,^(?:https?|ftp)://(?:[^:/]+:[^:/]+\@)?([^/:@]+)(?::(\d+))?(/\S*)?$,;
}
sub get_file_and_size_ {
my ($f, $url) = @_;
if ($f =~ m!^/!) {
- my ($host, $port, $_path) = parse_url($url);
+ my ($host, $port, $_path) = parse_http_url($url);
get_file_and_size("http://$host" . ($port ? ":$port" : '') . $f);
} else {
get_file_and_size("$url/$f");
@@ -32,43 +27,38 @@ sub get_file_and_size_ {
}
sub get_file_and_size {
- local ($^W) = 0;
-
- my ($url) = @_;
- $sock->close if $sock;
+ my ($url, %o_options) = @_;
# can be used for ftp urls (with http proxy)
- my ($host, $port, $path) = parse_url($url);
+ my ($host) = parse_http_url($url);
defined $host or return undef;
- my $use_http_proxy = $ENV{PROXY} && $ENV{PROXYPORT};
-
- $sock = IO::Socket::INET->new(PeerAddr => $use_http_proxy ? $ENV{PROXY} : $host,
- PeerPort => $use_http_proxy ? $ENV{PROXYPORT} : $port || 80,
- Proto => 'tcp',
- Timeout => 60) or die "can not connect $@";
- $sock->autoflush;
- print $sock join("\015\012" =>
- "GET " . ($use_http_proxy ? $url : $path) . " HTTP/1.0",
- "Host: $host" . ($port && ":$port"),
- "User-Agent: DrakX/vivelinuxabaszindozs",
- "", "");
+ my $urpm = $::o->{packages};
+ if (!$urpm) {
+ require install::pkgs;
+ $urpm = install::pkgs::empty_packages($::o->{keep_unrequested_dependencies});
+ $urpm->{options}{'curl-options'} = '-s';
+ }
- #- skip until empty line
- my $now = 0;
- my ($last, $buf, $tmp);
- my $read = sub { sysread($sock, $buf, 1) or die ''; $tmp .= $buf };
- do {
- $last = $now;
- &$read; &$read if $buf =~ /\015/;
- $now = $buf =~ /\012/;
- } until $now && $last;
+ my $cachedir = $urpm->{cachedir} || '/root';
+ my $file = $url;
+ $file =~ s!.*/!$cachedir/!;
+ unlink $file; # prevent "partial file" errors
+
+ if ($ENV{PROXY}) {
+ my ($proxy, $port) = urpm::download::parse_http_proxy(join(':', $ENV{PROXY}, $ENV{PROXYPORT}))
+ or die "bad proxy declaration\n";
+ $proxy .= ":1080" unless $port;
+ urpm::download::set_cmdline_proxy(http_proxy => "http://$proxy/");
+ }
+
+ my $res = eval { urpm::download::sync_url($urpm, $url, %o_options, dir => $cachedir) };
- if ($tmp =~ /^(.*\b(\d+)\b.*)/ && $2 == 200) {
- my ($size) = $tmp =~ /^Content-Length:\s*(\d+)\015?$/m;
- $size, $sock;
+ if ($res) {
+ open(my $f, $file);
+ (-s $file, $f);
} else {
- log::l("HTTP error: $1");
+ log::l("retrieval of [$file] failed");
undef;
}
}
diff --git a/perl-install/install/install2 b/perl-install/install/install2
index a080c0aef..34f215a21 100755
--- a/perl-install/install/install2
+++ b/perl-install/install/install2
@@ -1,8 +1,8 @@
#!/usr/bin/perl
#- PERL_INSTALL_TEST is used to launch stage2 in debug mode
-#- Mandrake Graphic Install $Id$
-#- Copyright (C) 1999/2000 Mandrakesoft (pixel@mandrakesoft.com)
+#- Mandrake Graphic Install
+#- Copyright (C) 1999/2000 Mandrakesoft (pixel)
#-
#- This program is free software; you can redistribute it and/or modify
#- it under the terms of the GNU General Public License as published by
@@ -27,6 +27,9 @@ use install::install2;
$::testing = $ENV{PERL_INSTALL_TEST};
$::isStandalone = 0;
+#- workaround for WebKitGTK bug (mga#31294)
+$ENV{WEBKIT_DISABLE_COMPOSITING_MODE} = 1;
+
install::install2::main(@ARGV);
c::_exit(0);
diff --git a/perl-install/install/install2.pm b/perl-install/install/install2.pm
index eb303e4c7..7f6cbd6fe 100644
--- a/perl-install/install/install2.pm
+++ b/perl-install/install/install2.pm
@@ -1,8 +1,17 @@
-package install::install2; # $Id$
+package install::install2;
use diagnostics;
use strict;
use vars qw($o);
+use Getopt::Long qw(GetOptionsFromArray :config no_auto_abbrev no_getopt_compat pass_through);
+
+BEGIN { $::isInstall = 1 }
+
+=head1 SYNOPSYS
+
+The installer stage2 real entry point
+
+=cut
#-######################################################################################
#- misc imports
@@ -23,19 +32,37 @@ use run_program;
use any;
use log;
use fs;
-
+use fs::any;
+use fs::mount;
+use messages;
#-#######################################################################################
-#-$O
-#-the big struct which contain, well everything (globals + the interactive methods ...)
-#-if you want to do a kickstart file, you just have to add all the required fields (see for example
-#-the variable $default)
+=head1 Data Structure
+
+=head2 $O;
+
+$o (or $::o in other modules) is the big struct which contain, well everything:
+
+=over 4
+
+=item * globals
+
+=item * the interactive methods
+
+=item * ...
+
+=back
+
+if you want to do a kickstart file, you just have to add all the required fields (see for example
+the variable $default)
+
+=cut
#-#######################################################################################
$o = $::o = {
# bootloader => { linear => 0, message => 1, timeout => 5, restricted => 0 },
#- packages => [ qw() ],
partitioning => { clearall => 0, eraseBadPartitions => 0, auto_allocate => 0 }, #-, readonly => 0 },
- authentication => { md5 => 1, shadow => 1 },
+ authentication => { sha512 => 1, shadow => 1 },
locale => { lang => 'en_US' },
#- isUpgrade => 0,
toRemove => [],
@@ -62,7 +89,7 @@ $o = $::o = {
#- eth0 => { DEVICE => "eth0", IPADDR => '1.2.3.4', NETMASK => '255.255.255.128' }
#- },
},
-
+ untranslated_license => messages::main_license_raw(),
#-step : the current one
#-prefix
#-mouse
@@ -73,21 +100,40 @@ $o = $::o = {
};
+=head1 Steps Navigation
+
+=over
+
+=cut
sub installStepsCall {
my ($o, $auto, $fun, @args) = @_;
$fun = "install::steps::$fun" if $auto;
$o->$fun(@args);
}
+
+=item getNextStep($o)
+
+Returns next step
+
+=cut
+
sub getNextStep {
my ($o) = @_;
find { !$o->{steps}{$_}{done} && $o->{steps}{$_}{reachable} } @{$o->{orderedSteps}};
}
#-######################################################################################
-#- Steps Functions
-#- each step function are called with two arguments : clicked(because if you are a
-#- beginner you can force the the step) and the entered number
+
+=back
+
+=head1 Steps Functions
+
+Each step function are called with two arguments : clicked(because if you are a
+beginner you can force the the step) and the entered number
+
+=cut
+
#-######################################################################################
#------------------------------------------------------------------------------
@@ -113,7 +159,7 @@ sub selectMouse {
sub setupSCSI {
my ($auto) = @_;
- installStepsCall($o, $auto, 'setupSCSI');
+ installStepsCall($o, $auto, 'setupSCSI') if !$::local_install;
}
#------------------------------------------------------------------------------
@@ -148,6 +194,15 @@ sub selectInstallClass {
sub doPartitionDisks {
my ($auto) = @_;
$o->{steps}{formatPartitions}{done} = 0;
+ if ($o->{method} eq 'cdrom') {
+ #- Exclude the installer medium from the devices we can install onto.
+ #- This is needed when the installer medium is a USB Flash drive, to
+ #- prevent the user inadvertently overwriting the installer and to
+ #- prevent the installer ESP being used as the installed system ESP
+ # (mga#26714).
+ my $installer_device = $o->{stage2_phys_medium}{device};
+ @{$o->{all_hds}{hds}} = grep { $_->{device} ne $installer_device } @{$o->{all_hds}{hds}};
+ }
installStepsCall($o, $auto, 'doPartitionDisksBefore');
installStepsCall($o, $auto, 'doPartitionDisks');
installStepsCall($o, $auto, 'doPartitionDisksAfter');
@@ -167,17 +222,20 @@ sub formatPartitions {
}
installStepsCall($o, $auto, 'formatMountPartitions') if !$::testing;
+ # Workaround for mga#22059. Because stage2 does not include the udev 60-blocks.rule,
+ # udev does not automatically update the soft links in /dev/disk/by-uuid after we
+ # write the partition table and format the partitions. We need these links to be
+ # updated before we create the initrd. It would be cleaner to fix this with a udev
+ # rule, but for now, use brute force.
+ run_program::run('udevadm', 'trigger', '--type=devices', '--subsystem-match=block');
+
if ($want_root_formated) {
#- we formatted /, ensure /var/lib/rpm is cleaned otherwise bad things can happen
#- (especially when /var is *not* formatted)
eval { rm_rf("$::prefix/var/lib/rpm") };
}
- install::any::create_minimal_files();
-
- eval { fs::mount::mount('none', "$::prefix/proc", 'proc') };
- eval { fs::mount::mount('none', "$::prefix/sys", 'sysfs') };
- eval { fs::mount::usbfs($::prefix) };
+ fs::any::prepare_minimal_root();
install::any::screenshot_dir__and_move();
install::any::move_compressed_image_to_disk($o);
@@ -186,12 +244,6 @@ sub formatPartitions {
require raid;
raid::write_conf($o->{all_hds}{raids});
-
- #- needed by lilo
- if (-d '/dev/mapper') {
- my @vgs = map { $_->{VG_name} } @{$o->{all_hds}{lvms}};
- cp_af("/dev/$_", "$::prefix/dev") foreach 'mapper', @vgs;
- }
}
#------------------------------------------------------------------------------
@@ -206,7 +258,8 @@ sub choosePackages {
log::l("rpmsrate_flags_chosen's: ", join(' ', sort @flags));
#- check pre-condition that basesystem package must be selected.
- install::pkgs::packageByName($o->{packages}, 'basesystem')->flag_available or die "basesystem package not selected";
+ my $base_pkg = install::pkgs::packageByName($o->{packages}, 'basesystem');
+ $base_pkg->flag_available or $base_pkg->flag_installed or die "basesystem package not selected";
#- check if there are packages that need installation.
$o->{steps}{installPackages}{done} = 0 if $o->{steps}{installPackages}{done} && install::pkgs::packagesToInstall($o->{packages}) > 0;
@@ -294,219 +347,422 @@ sub exitInstall {
installStepsCall($o, $auto, 'exitInstall', getNextStep($::o) eq 'exitInstall');
}
+#-######################################################################################
+
+=head1 Udev Functions
+
+=over
+
+=cut
#-######################################################################################
-#- MAIN
+
+=item start_udev()
+
+=cut
+
+sub start_udev() {
+ return if fuzzy_pidofs('udevd');
+
+ # Start up udev:
+ mkdir_p("/run/udev/rules.d");
+ $ENV{UDEVRULESD} = "/run/udev/rules.d";
+ run_program::run("/usr/lib/systemd/systemd-udevd", "--daemon", "--resolve-names=never");
+ # Coldplug all devices:
+ run_program::run("udevadm", "trigger", "--type=subsystems", "--action=add");
+ run_program::run("udevadm", "trigger", "--type=devices", "--action=add");
+}
+
+=item stop_udev()
+
+=cut
+
+sub stop_udev() {
+ kill 15, fuzzy_pidofs('udevd');
+ sleep(2);
+ fs::mount::umount($_) foreach '/dev/pts', '/dev/shm';
+}
+
#-######################################################################################
-sub main {
-#- $SIG{__DIE__} = sub { warn "DIE " . backtrace() . "\n" };
- $SIG{SEGV} = sub {
- my $msg = "segmentation fault: seems like memory is missing as the install crashes"; log::l($msg);
- $o->ask_warn('', $msg);
- setVirtual(1);
- require install::steps_auto_install;
- install::steps_auto_install_non_interactive::errorInStep($o, $msg);
- };
- $ENV{PERL_BADLANG} = 1;
- delete $ENV{TERMINFO};
- umask 022;
- $::isInstall = 1;
- $::isWizard = 1;
- $::no_ugtk_init = 1;
+=back
- push @::textdomains, 'DrakX', 'drakx-net', 'drakx-kbd-mouse-x11';
+=head1 Other Functions
+
+=over
+=cut
+
+#-######################################################################################
+
+sub init_local_install {
+ my ($o) = @_;
+ push @::auto_steps,
+# 'selectLanguage', 'selectKeyboard', 'miscellaneous', 'selectInstallClass',
+ 'doPartitionDisks', 'formatPartitions';
+ eval { fs::mount::sys_kernel_debug('') }; #- do it now so that when_load doesn't do it
+ $o->{nomouseprobe} = 1;
+ $o->{mouse} = mouse::fullname2mouse('Universal|Any PS/2 & USB mice');
+}
+
+sub pre_init_brltty() {
+ if (my ($s) = cat_("/proc/cmdline") =~ /brltty=(\S*)/) {
+ my ($driver, $device, $table) = split(',', $s);
+ $table = "text.$table.tbl" if $table !~ /\.tbl$/;
+ log::l("brltty option $driver $device $table");
+ $o->{brltty} = { driver => $driver, device => $device, table => $table };
+ $o->{interactive} = 'curses';
+ $o->{nomouseprobe} = 1;
+ }
+}
+
+sub init_brltty() {
+ symlink "/tmp/stage2/$_", $_ foreach "/etc/brltty";
+ devices::make($_) foreach $o->{brltty}{device};
+ run_program::run("brltty");
+}
+
+sub init_auto_install() {
+ if ($::auto_install =~ /-IP(\.pl)?$/) {
+ my ($ip) = cat_('/tmp/stage1.log') =~ /configuring device (?!lo)\S+ ip: (\S+)/;
+ my $normalized_ip = join('', map { sprintf "%02X", $_ } split('\.', $ip));
+ $::auto_install =~ s/-IP(\.pl)?$/-$normalized_ip$1/;
+ }
+ require install::steps_auto_install;
+ eval { $o = $::o = install::any::loadO($o, $::auto_install) };
+ if ($@) {
+ if ($o->{useless_thing_accepted}) { #- Pixel's hack to be able to fail through
+ log::l("error using auto_install, continuing");
+ undef $::auto_install;
+ } else {
+ install::steps_auto_install_non_interactive::errorInStep($o, "Error using auto_install\n" . formatError($@));
+ }
+ } else {
+ log::l("auto install config file loaded successfully");
+
+ #- normalize for people not using our special scheme
+ foreach (@{$o->{manualFstab} || []}) {
+ $_->{device} =~ s!^/dev/!!;
+ }
+ }
+}
+
+sub step_init {
+ my ($o) = @_;
+ my $o_;
+ while (1) {
+ $o_ = $::auto_install ?
+ install::steps_auto_install->new($o) :
+ $o->{interactive} eq "stdio" ?
+ install::steps_stdio->new($o) :
+ $o->{interactive} eq "curses" ?
+ install::steps_curses->new($o) :
+ $o->{interactive} eq "gtk" ?
+ install::steps_gtk->new($o) :
+ die "unknown install type";
+ $o_ and last;
+
+ log::l("$o->{interactive} failed, trying again with curses");
+ $o->{interactive} = "curses";
+ require install::steps_curses;
+ }
+ $o;
+}
+
+sub read_product_id() {
+ my $product_id = cat__(install::any::getFile_($o->{stage2_phys_medium}, "product.id"));
+ log::l('product_id: ' . chomp_($product_id));
+ $o->{product_id} = common::parse_LDAP_namespace_structure($product_id);
+
+ $o->{meta_class} ||= {
+ One => 'desktop',
+ Free => 'download',
+ Powerpack => 'powerpack',
+ }->{$o->{product_id}{product}} || 'download';
+}
+
+sub sig_segv_handler() {
+ my $msg = "segmentation fault: install crashed (maybe memory is missing?)\n" . backtrace();
+ log::l("$msg\n");
+ # perl_checker: require UNIVERSAL
+ UNIVERSAL::can($o, 'ask_warn') and $o->ask_warn('', $msg);
+ setVirtual(1);
+ require install::steps_auto_install;
+ install::steps_auto_install_non_interactive::errorInStep($o, $msg);
+}
+
+=item read_stage1_net_conf() {
+
+Reads back netork configuration done by stage1 (see L<stages>).
+
+=cut
+
+sub read_stage1_net_conf() {
+ require network::network;
+ #- get stage1 network configuration if any.
+ log::l('found /tmp/network');
+ add2hash($o->{net}{network} ||= {}, network::network::read_conf('/tmp/network'));
+ if (my ($file) = grep { -f $_ } glob_('/tmp/ifcfg-*')) {
+ log::l("found network config file $file");
+ my $l = network::network::read_interface_conf($file);
+ $o->{net}{ifcfg}{$l->{DEVICE}} ||= $l;
+ }
+ my $dsl_device = find { $_->{BOOTPROTO} eq 'adsl_pppoe' } values %{$o->{net}{ifcfg}};
+ if ($dsl_device) {
+ $o->{net}{type} = 'adsl';
+ $o->{net}{net_interface} = $dsl_device->{DEVICE};
+ $o->{net}{adsl} = {
+ method => 'pppoe',
+ device => $dsl_device->{DEVICE},
+ ethernet_device => $dsl_device->{DEVICE},
+ login => $dsl_device->{USER},
+ password => $dsl_device->{PASS},
+ };
+ %$dsl_device = ();
+ } else {
+ $o->{net}{type} = 'lan';
+ $o->{net}{net_interface} = first(values %{$o->{net}{ifcfg}});
+ }
+}
+
+=item parse_args($cfg, $patch)
+
+Parse arguments (which came from either the boot loader command line or its configuration file).
+
+=cut
+
+sub parse_args {
my ($cfg, $patch);
- my %cmdline = map {
- my ($n, $v) = split /=/;
- $n => defined($v) ? $v : 1;
- } split ' ', cat_("/proc/cmdline");
-
- my $opt; foreach (@_) {
- if (/^--?(.*)/) {
- $cmdline{$opt} = 1 if $opt;
- $opt = $1;
- } else {
- $cmdline{$opt} = $_ if $opt;
- $opt = '';
- }
- } $cmdline{$opt} = 1 if $opt;
+ my @cmdline = (@_, map { "--$_" } split ' ', cat_("/proc/cmdline"));
#- from stage1
put_in_hash(\%ENV, { getVarsFromSh('/tmp/env') });
- exists $ENV{$_} and $cmdline{lc($_)} = $ENV{$_} foreach qw(METHOD PCMCIA KICKSTART);
-
- map_each {
- my ($n, $v) = @_;
- my $f = ${{
- lang => sub { $o->{locale}{lang} = $v },
- flang => sub { $o->{locale}{lang} = $v; push @::auto_steps, 'selectLanguage' },
- langs => sub { $o->{locale}{langs} = +{ map { $_ => 1 } split(':', $v) } },
- method => sub { $o->{method} = $v },
- pcmcia => sub { $o->{pcmcia} = $v },
- vga16 => sub { $o->{vga16} = $v },
- vga => sub { $o->{vga} = $v =~ /0x/ ? hex($v) : $v },
- step => sub { $o->{steps}{first} = $v },
- meta_class => sub { $o->{meta_class} = $v },
- freedriver => sub { $o->{freedriver} = $v },
- no_bad_drives => sub { $o->{partitioning}{no_bad_drives} = 1 },
- nodmraid => sub { $o->{partitioning}{nodmraid} = 1 },
- readonly => sub { $o->{partitioning}{readonly} = $v ne "0" },
- display => sub { $o->{display} = $v },
- askdisplay => sub { print "Please enter the X11 display to perform the install on ? "; $o->{display} = chomp_(scalar(<STDIN>)) },
- security => sub { $o->{security} = $v },
- noauto => sub { $::noauto = 1 },
- testing => sub { $::testing = 1 },
- patch => sub { $patch = 1 },
- defcfg => sub { $cfg = $v },
- newt => sub { $o->{interactive} = "curses" },
- text => sub { $o->{interactive} = "curses" },
- stdio => sub { $o->{interactive} = "stdio" },
- use_uuid => sub { $o->{uuid_by_default} = $v },
- kickstart => sub { $::auto_install = $v },
- local_install => sub { $::local_install = 1 },
- uml_install => sub { $::uml_install = $::local_install = 1 },
- auto_install => sub { $::auto_install = $v },
- simple_themes => sub { $o->{simple_themes} = 1 },
- theme => sub { $o->{theme} = $v },
- doc => sub { $o->{doc} = 1 }, #- will be used to know that we're running for the doc team,
- #- e.g. we want screenshots with a good B&W contrast
- useless_thing_accepted => sub { $o->{useless_thing_accepted} = 1 },
+ exists $ENV{$_} and push @cmdline, sprintf("--%s=%s", lc($_), $ENV{$_}) foreach qw(METHOD PCMCIA KICKSTART);
+
+ GetOptionsFromArray(\@cmdline,
+ $o, # must be 2nd parameter (see http://perldoc.perl.org/Getopt/Long.html#Storing-options-values-in-a-hash)
+ 'keyboard=s' => sub { $o->{keyboard} = $_[1]; push @::auto_steps, 'selectKeyboard' },
+ 'lang=s',
+ 'flang=s' => sub { $o->{lang} = $_[1]; push @::auto_steps, 'selectLanguage' },
+ 'langs=s' => sub { $o->{locale}{langs} = +{ map { $_ => 1 } split(':', $_[1]) } },
+ 'method=s',
+ 'pcmcia=s',
+ 'step=s' => \$o->{steps}{first},
+ 'meta_class=s',
+ 'freedriver=s',
+
+ # fs/block options:
+ no_bad_drives => \$o->{partitioning}{no_bad_drives},
+ nodmraid => \$o->{partitioning}{nodmraid},
+ 'readonly=s' => sub { $o->{partitioning}{readonly} = $_[1] ne "0" },
+ 'use_uuid=s' => sub { $::no_uuid_by_default = !$_[1] },
+
+ # urpmi options:
+ 'debug_urpmi',
+ 'deploops',
+ 'justdb',
+ 'tune-rpm' => sub { $o->{'tune-rpm'} = 'all' },
+ 'downloader=s' => sub { $o->{options}{downloader} = $_[1] },
+
+ # GUI options:
+ 'vga16=s',
+ 'vga=s' => sub { $o->{vga} = $_[1] =~ /0x/ ? hex($_[1]) : $_[1] },
+ 'display=s',
+ askdisplay => sub { print "Please enter the X11 display to perform the install on ? "; $o->{display} = chomp_(scalar(<STDIN>)) },
+ 'newt|text' => sub { $o->{interactive} = "curses" },
+ stdio => sub { $o->{interactive} = "stdio" },
+ 'simple_themes',
+ 'theme=s',
+ 'doc', #- will be used to know that we're running for the doc team,
+ #- e.g. we want screenshots with a good B&W contrast
+
+ 'security=s',
+
+ # auto install options:
+ noauto => \$::noauto,
+ testing => \$::testing,
+ patch => \$patch,
+ 'defcfg=s' => \$cfg,
+ 'auto_install|kickstart=s' => \$::auto_install,
+
+ local_install => \$::local_install,
+ uml_install => sub { $::uml_install = $::local_install = 1 },
+
+ # debugging options:
+ 'useless_thing_accepted',
alawindows => sub { $o->{security} = 0; $o->{partitioning}{clearall} = 1; $o->{bootloader}{crushMbr} = 1 },
- fdisk => sub { $o->{partitioning}{fdisk} = 1 },
- rpm_dbapi => sub { $o->{rpm_dbapi} = $v },
- nomouseprobe => sub { $o->{nomouseprobe} = $v },
- updatemodules => sub { $o->{updatemodules} = 1 },
- suppl => sub { $o->{supplmedia} = 1 },
- askmedia => sub { $o->{askmedia} = 1 },
- }}{lc $n}; &$f if $f;
- } %cmdline;
+ fdisk => \$o->{partitioning}{fdisk},
+ 'nomouseprobe=s',
+ 'updatemodules',
+
+ 'suppl=s' => \$o->{supplmedia},
+ 'askmedia',
+ restore => \$::isRestore,
+ 'compssListLevel=s' # case is important!
+ );
+
+ ($cfg, $patch);
+}
+sub init_env_share() {
if ($::testing) {
$ENV{SHARE_PATH} ||= "/export/install/stage2/live/usr/share";
$ENV{SHARE_PATH} = "/usr/share" if !-e $ENV{SHARE_PATH};
} else {
$ENV{SHARE_PATH} ||= "/usr/share";
}
+}
+
+sub init_path() {
+ #- make sure we do not pick up any gunk from the outside world
+ my $remote_path = "$::prefix/sbin:$::prefix/bin:$::prefix/usr/sbin:$::prefix/usr/bin";
+ $ENV{PATH} = "/usr/bin:/bin:/sbin:/usr/sbin:$remote_path";
+}
+
+sub init_mouse() {
+ eval { $o->{mouse} = mouse::detect($o->{modules_conf}) } if !$o->{mouse} && !$o->{nomouseprobe};
+ mouse::load_modules($o->{mouse});
+}
+
+sub init_modules_conf() {
+ list_modules::load_default_moddeps();
+ require modules::any_conf;
+ require modules::modules_conf;
+ # read back config from stage1:
+ $o->{modules_conf} = modules::modules_conf::read(modules::any_conf::vnew(), '/tmp/modules.conf');
+ modules::read_already_loaded($o->{modules_conf});
+}
+
+sub process_auto_steps() {
+ foreach (@::auto_steps) {
+ if (my $s = $o->{steps}{/::(.*)/ ? $1 : $_}) {
+ $s->{auto} = $s->{hidden} = 1;
+ } else {
+ log::l("ERROR: unknown step $_ in auto_steps");
+ }
+ }
+}
+
+=item process_patch($cfg, $patch)
+
+Handle installer live patches:
+
+=over 4
+
+=item * OEM patch (C<install/patch-oem.pl>)
+
+=item * defcfg (the file indicated by the defcfg option)
+
+=item * patch (C<patch> file)
+
+=back
+
+=cut
+
+sub process_patch {
+ my ($cfg, $patch) = @_;
+ #- oem patch should be read before to still allow patch or defcfg.
+ eval { $o = $::o = install::any::loadO($o, "install/patch-oem.pl"); log::l("successfully read oem patch") };
+ #- patch should be read after defcfg in order to take precedence.
+ eval { $o = $::o = install::any::loadO($o, $cfg); log::l("successfully read default configuration: $cfg") } if $cfg;
+ eval { $o = $::o = install::any::loadO($o, "patch"); log::l("successfully read patch") } if $patch;
+}
+
+#-######################################################################################
+
+=item main()
+
+This is the main function, the installer entry point called by runinstall2:
+
+=over 4
+
+=item * initialization
+
+=item * steps
+
+=back
+
+=cut
+#-######################################################################################
+sub main {
+ $SIG{SEGV} = \&sig_segv_handler;
+ $ENV{PERL_BADLANG} = 1;
+ delete $ENV{TERMINFO};
+ umask 022;
+
+ $::isWizard = 1;
+ $::no_ugtk_init = 1;
+
+ push @::textdomains, 'DrakX', 'drakx-net', 'drakx-kbd-mouse-x11';
+
+ my ($cfg, $patch) = parse_args(@_);
+
+ init_env_share();
undef $::auto_install if $cfg;
$o->{stage2_phys_medium} = install::media::stage2_phys_medium($o->{method});
- log::l("second stage install running (", install::any::drakx_version($o), ")");
+ if (-e '/tmp/media/DATE.txt') {
+ my @mount_entry = grep { m,/tmp/media, } cat_('/proc/mounts');
+ my @mount_fields = split(/ /, $mount_entry[0]);
+ log::l(run_program::get_stdout('blkid', '-s', 'LABEL', $mount_fields[0]));
+ log::l('ISO date: ' . cat_('/tmp/media/DATE.txt'));
+ }
+
+ install::any::log_system_info($o);
- eval { output('/proc/sys/kernel/modprobe', "\n") } if !$::local_install && !$::testing; #- disable kmod
- eval { fs::mount::mount('none', '/sys', 'sysfs', 1) };
eval { touch('/root/non-chrooted-marker.DrakX') }; #- helps distinguishing /root and /mnt/root when we don't know if we are chrooted
if ($::local_install) {
- push @::auto_steps,
-# 'selectLanguage', 'selectKeyboard', 'miscellaneous', 'selectInstallClass',
- 'doPartitionDisks', 'formatPartitions';
- fs::mount::usbfs(''); #- do it now so that when_load doesn't do it
- $o->{nomouseprobe} = 1;
- $o->{mouse} = mouse::fullname2mouse('Universal|Any PS/2 & USB mice');
+ init_local_install($o);
+ } else {
+ start_udev();
+ # load some modules early but asynchronously:
+ run_program::raw({ detach => 1 }, 'modprobe', 'microcode');
}
$o->{prefix} = $::prefix = $::testing ? "/tmp/test-perl-install" : "/mnt";
- mkdir $::prefix, 0755;
+ mkdir $::prefix, 0755 if ! -d $::prefix;
- #- make sure we do not pick up any gunk from the outside world
- my $remote_path = "$::prefix/sbin:$::prefix/bin:$::prefix/usr/sbin:$::prefix/usr/bin:$::prefix/usr/X11R6/bin";
- $ENV{PATH} = "/usr/bin:/bin:/sbin:/usr/sbin:/usr/X11R6/bin:$remote_path";
+ init_path();
eval { install::any::spawnShell() };
- modules::load_dependencies("/modules/modules.dep");
- require modules::any_conf;
- require modules::modules_conf;
- $o->{modules_conf} = modules::modules_conf::read(modules::any_conf::vnew(), '/tmp/modules.conf');
- modules::read_already_loaded($o->{modules_conf});
+ init_modules_conf();
#- done before auto_install is called to allow the -IP feature on auto_install file name
- if (-e '/tmp/network') {
- require network::network;
- #- get stage1 network configuration if any.
- log::l('found /tmp/network');
- add2hash($o->{net}{network} ||= {}, network::network::read_conf('/tmp/network'));
- if (my ($file) = glob_('/tmp/ifcfg-*')) {
- log::l("found network config file $file");
- my $l = network::network::read_interface_conf($file);
- $o->{net}{ifcfg}{$l->{DEVICE}} ||= $l;
- }
- my $dsl_device = find { $_->{BOOTPROTO} eq 'adsl_pppoe' } values %{$o->{net}{ifcfg}};
- if ($dsl_device) {
- $o->{net}{type} = 'adsl';
- $o->{net}{net_interface} = $dsl_device->{DEVICE};
- $o->{net}{adsl} = {
- method => 'pppoe',
- device => $dsl_device->{DEVICE},
- ethernet_device => $dsl_device->{DEVICE},
- login => $dsl_device->{USER},
- password => $dsl_device->{PASS},
- };
- %$dsl_device = ();
- } else {
- $o->{net}{type} = 'lan';
- $o->{net}{net_interface} = first(values %{$o->{net}{ifcfg}});
- }
- }
+ read_stage1_net_conf() if -e '/tmp/network';
#- done after module dependencies are loaded for "vfat depends on fat"
if ($::auto_install) {
- if ($::auto_install =~ /-IP(\.pl)?$/) {
- my ($ip) = cat_('/tmp/stage1.log') =~ /configuring device (?!lo)\S+ ip: (\S+)/;
- my $normalized_ip = join('', map { sprintf "%02X", $_ } split('\.', $ip));
- $::auto_install =~ s/-IP(\.pl)?$/-$normalized_ip$1/;
- }
- require install::steps_auto_install;
- eval { $o = $::o = install::any::loadO($o, $::auto_install) };
- if ($@) {
- if ($o->{useless_thing_accepted}) { #- Pixel's hack to be able to fail through
- log::l("error using auto_install, continuing");
- undef $::auto_install;
- } else {
- install::steps_auto_install_non_interactive::errorInStep($o, "Error using auto_install\n" . formatError($@));
- }
- } else {
- log::l("auto install config file loaded successfully");
-
- #- normalize for people not using our special scheme
- foreach (@{$o->{manualFstab} || []}) {
- $_->{device} =~ s!^/dev/!!;
- }
- }
+ init_auto_install();
+ } else {
+ $o->{interactive} ||= 'gtk';
}
- $o->{interactive} ||= 'gtk' if !$::auto_install;
if ($o->{interactive} eq "gtk" && availableMemory() < 22 * 1024) {
log::l("switching to curses install cuz not enough memory");
$o->{interactive} = "curses";
}
- if (my ($s) = cat_("/proc/cmdline") =~ /brltty=(\S*)/) {
- my ($driver, $device, $table) = split(',', $s);
- $table = "text.$table.tbl" if $table !~ /\.tbl$/;
- log::l("brltty option $driver $device $table");
- $o->{brltty} = { driver => $driver, device => $device, table => $table };
- $o->{interactive} = 'curses';
- $o->{nomouseprobe} = 1;
- }
+ pre_init_brltty();
# perl_checker: require install::steps_gtk
# perl_checker: require install::steps_curses
# perl_checker: require install::steps_stdio
require "install/steps_$o->{interactive}.pm" if $o->{interactive};
+ # psmouse is now modular:
+ eval { modules::load("psmouse") };
+
+ #- FIXME loading evdev should prevent crash of following line
+ eval { modules::load("evdev") };
+
#- needed before accessing floppy (in case of usb floppy)
modules::load_category($o->{modules_conf}, 'bus/usb');
- #- oem patch should be read before to still allow patch or defcfg.
- eval { $o = $::o = install::any::loadO($o, "install/patch-oem.pl"); log::l("successfully read oem patch") };
- #- patch should be read after defcfg in order to take precedance.
- eval { $o = $::o = install::any::loadO($o, $cfg); log::l("successfully read default configuration: $cfg") } if $cfg;
- eval { $o = $::o = install::any::loadO($o, "patch"); log::l("successfully read patch") } if $patch;
+ process_patch($cfg, $patch);
eval { modules::load("af_packet") };
@@ -514,81 +770,58 @@ sub main {
harddrake::sound::configure_sound_slots($o->{modules_conf});
#- need to be after oo-izing $o
- if ($o->{brltty}) {
- symlink "/tmp/stage2/$_", $_ foreach "/etc/brltty";
- devices::make($_) foreach $o->{brltty}{device} ? $o->{brltty}{device} : qw(ttyS0 ttyS1);
- devices::make("vcsa");
- run_program::run("brltty");
- }
+ init_brltty() if $o->{brltty};
#- needed very early for install::steps_gtk
- if (!$::testing) {
- eval { $o->{mouse} = mouse::detect($o->{modules_conf}) } if !$o->{mouse} && !$o->{nomouseprobe};
- mouse::load_modules($o->{mouse});
- }
+ init_mouse() if !$::testing;
+ #- for auto_install compatibility with old $o->{lang},
+ #- and also for --lang and --flang
+ if ($o->{lang}) {
+ put_in_hash($o->{locale}, lang::lang_to_ourlocale($o->{lang}));
+ }
lang::set($o->{locale});
# keep the result otherwise monitor-edid does not return good results afterwards
eval { any::monitor_full_edid() };
- install::any::start_i810fb();
-
$o->{allowFB} = listlength(cat_("/proc/fb"));
- if (!$::testing) {
- my $product_id = cat__(install::any::getFile_($o->{stage2_phys_medium}, "product.id"));
- log::l('product_id: ' . chomp_($product_id));
- $o->{product_id} = common::parse_LDAP_namespace_structure($product_id);
-
- $o->{meta_class} ||= {
- One => 'desktop',
- Free => 'download',
- Powerpack => 'powerpack',
- Discovery => 'desktop',
- 'Powerpack+' => 'server',
- }->{$o->{product_id}{product}} || 'download';
- }
+ read_product_id() if !$::testing;
log::l("META_CLASS=$o->{meta_class}");
- $ENV{META_CLASS} = $o->{meta_class}; #- for Ia Ora
-
- foreach (@::auto_steps) {
- my $s = $o->{steps}{/::(.*)/ ? $1 : $_} or next;
- $s->{auto} = $s->{hidden} = 1;
- }
- my $o_;
- while (1) {
- $o_ = $::auto_install ?
- install::steps_auto_install->new($o) :
- $o->{interactive} eq "stdio" ?
- install::steps_stdio->new($o) :
- $o->{interactive} eq "curses" ?
- install::steps_curses->new($o) :
- $o->{interactive} eq "gtk" ?
- install::steps_gtk->new($o) :
- die "unknown install type";
- $o_ and last;
+ process_auto_steps();
- log::l("$o->{interactive} failed, trying again with curses");
- $o->{interactive} = "curses";
- require install::steps_curses;
- }
- $::o = $o = $o_;
+ $ENV{COLUMNS} ||= 80;
+ $ENV{LINES} ||= 25;
+ $::o = $o = step_init($o);
eval { output('/proc/splash', "verbose\n") };
- #-the main cycle
+ real_main();
+ finish_install();
+}
+
+=item real_main() {
+
+Go through the steps cycle
+
+=cut
+
+sub real_main() {
MAIN: for ($o->{step} = $o->{steps}{first};; $o->{step} = getNextStep($o)) {
$o->{steps}{$o->{step}}{entered}++;
$o->enteringStep($o->{step});
+ my $time = time();
eval {
&{$install::install2::{$o->{step}}}($o->{steps}{$o->{step}}{auto});
};
my $err = $@;
+ log::l("step \"$o->{step}\" took: ", formatTimeRaw(time() - $time));
$o->kill_action;
if ($err) {
+ log::l("step \"$o->{step}\" failed with error: $err");
local $_ = $err;
$o->kill_action;
if (!/^already displayed/) {
@@ -606,6 +839,15 @@ sub main {
last if $o->{step} eq 'exitInstall';
}
+}
+
+=item finish_install() {
+
+Clean up the installer before the final reboot.
+
+=cut
+
+sub finish_install() {
unlink $install::any::compressed_image_on_disk;
install::media::clean_postinstall_rpms();
install::media::log_sizes();
@@ -619,7 +861,8 @@ sub main {
#- make sure failed upgrade will not hurt too much.
install::steps::cleanIfFailedUpgrade($o);
- -e "$::prefix/usr/sbin/urpmi.update" or eval { rm_rf("$::prefix/var/lib/urpmi") };
+ #- drop urpmi DB if urpmi is not installed:
+ -e "$::prefix/usr/sbin/urpmi" or eval { rm_rf("$::prefix/var/lib/urpmi") };
system("chroot", $::prefix, "bash", "-c", $o->{postInstallBeforeReboot}) if $o->{postInstallBeforeReboot};
@@ -629,9 +872,14 @@ sub main {
#- ala pixel? :-) [fpons]
common::sync(); common::sync();
+ stop_udev() if !$::local_install;
log::l("installation complete, leaving");
log::l("files still open by install2: ", readlink($_)) foreach glob_("/proc/self/fd/*");
print "\n" x 80 if !$::local_install;
}
+=back
+
+=cut
+
1;
diff --git a/perl-install/install/interactive.pm b/perl-install/install/interactive.pm
index 3aa66a657..7faa7bdd8 100644
--- a/perl-install/install/interactive.pm
+++ b/perl-install/install/interactive.pm
@@ -1,4 +1,4 @@
-package install::interactive; # $Id$
+package install::interactive;
use diagnostics;
use strict;
diff --git a/perl-install/install/media.pm b/perl-install/install/media.pm
index 3a3da5601..149deffc3 100644
--- a/perl-install/install/media.pm
+++ b/perl-install/install/media.pm
@@ -1,4 +1,4 @@
-package install::media; # $Id$
+package install::media;
use strict;
@@ -6,13 +6,15 @@ our @ISA = qw(Exporter);
our @EXPORT_OK = qw(getFile_ getAndSaveFile_ getAndSaveFile_media_info packageMedium);
use common;
+use Data::Dumper;
+# Make sure report.bug are more easily comparable:
+$Data::Dumper::Sortkeys = 1;
use fs::type;
-
+use urpm::download;
+use urpm::media;
#- list of fields for {phys_medium} :
#- device
-#- finalpath
-#- from_iso
#- fs_type
#- is_suppl (is a supplementary media)
#- isMounted
@@ -26,57 +28,40 @@ use fs::type;
#- url
#- list of fields for {media} :
-#- end (last rpm id, undefined iff not selected)
+#- end (last rpm id, undefined if not selected)
#- fakemedium ("$name ($rpmsdir)", used locally by urpmi)
#- rel_hdlist
-#- hdlist_size
-#- key_ids (hashref, values are key ids)
+#- key-ids
#- name (text description)
#- pubkey (array containing all the keys to import)
#- phys_medium
#- rpmsdir
-#- selected
+#- ignore
#- size (in MB)
-#- start (first rpm id, undefined iff not selected)
-#- synthesis_hdlist_size
+#- start (first rpm id, undefined if ignored)
#- update (for install_urpmi)
our $postinstall_rpms = '';
my %mounted_media;
-sub free_medium_id {
- my ($media) = @_;
- int(@$media);
-}
-
sub allMediums {
my ($packages) = @_;
@{$packages->{media}};
}
-sub phys_media {
+sub _phys_media {
my ($packages) = @_;
uniq(map { $_->{phys_medium} } @{$packages->{media}});
}
-sub pkg2media {
- my ($media, $p) = @_;
- $p or internal_error("invalid package");
-
- find {
- $_->{selected} &&
- $p->id >= $_->{start} && $p->id <= $_->{end};
- } @$media;
-}
-
sub packageMedium {
my ($packages, $p) = @_;
-
- pkg2media($packages->{media}, $p) || {};
+ URPM::pkg2media($packages->{media}, $p) || {};
}
+
sub packagesOfMedium {
my ($packages, $medium) = @_;
@@ -94,16 +79,6 @@ sub path {
($phys_m->{real_mntpoint} || fs::get::mntpoint_prefixed($phys_m)) . $phys_m->{rel_path} . '/' . $f;
}
-sub rel_rpm_file {
- my ($medium, $f) = @_;
- if (my ($arch) = $f =~ m|\.([^\.]*)\.rpm$|) {
- $f = "$medium->{rpmsdir}/$f";
- $f =~ s/%{ARCH}/$arch/g;
- $f =~ s,^/+,,g;
- }
- $f;
-}
-
sub umount_phys_medium {
my ($phys_m) = @_;
@@ -118,7 +93,8 @@ sub umount_phys_medium {
}
$ok;
}
-sub mount_phys_medium {
+
+sub _mount_phys_medium {
my ($phys_m, $o_rel_file, $b_force_change) = @_;
if (!$b_force_change) {
@@ -138,25 +114,19 @@ sub umount_media {
#- we don't bother umounting first phys medium if clp is not on disk
#- (this is mainly for nfs installs using install/stage2/live)
- my @l = phys_media($packages);
+ my @l = _phys_media($packages);
shift @l if !$install::any::compressed_image_on_disk && $l[0]{is_stage2_phys_medium};
umount_phys_medium($_) foreach @l;
umount_phys_medium($_) foreach grep { $_ } map { $_->{loopback_device} } @l;
}
-sub url_respect_privacy {
- my ($url) = @_;
-
- $url =~ s!ftp://.*?\@!ftp://xxx@!;
- $url;
-}
sub phys_medium_to_string {
my ($phys_m) = @_;
- url_respect_privacy($phys_m->{url}) . ($phys_m->{name} ? " ($phys_m->{name})" : '');
+ urpm::download::url_obscuring_password($phys_m->{url}) . ($phys_m->{name} ? " ($phys_m->{name})" : '');
}
-sub stage2_mounted_medium {
+sub _stage2_mounted_medium {
my ($method, $rel_path) = @_;
my ($device, $real_mntpoint, $fs_type, $url);
@@ -190,7 +160,7 @@ sub stage2_phys_medium {
my $user = $ENV{LOGIN} && ($ENV{LOGIN} . ($ENV{PASSWORD} && ":$ENV{PASSWORD}") . '@');
$ENV{URLPREFIX} = "ftp://$user$ENV{HOST}/$ENV{PREFIX}";
}
- if ($method eq 'http' || $method eq 'ftp') {
+ if (member($method, qw(http ftp))) {
{ method => $method, url => $ENV{URLPREFIX} };
} elsif ($method =~ /(.*)-iso$/) {
my $dir_method = $1;
@@ -199,8 +169,8 @@ sub stage2_phys_medium {
my $rel_iso = $ENV{ISOPATH} =~ m!media/*(/.*)! ? $1 : '';
my ($dir_url, $iso) = (dirname($rel_iso), basename($rel_iso));
- my $dir_medium = stage2_mounted_medium($dir_method, $dir_url eq '/' ? '' : $dir_url);
- my $phys_m = iso_phys_media($dir_medium, $iso, '');
+ my $dir_medium = _stage2_mounted_medium($dir_method, $dir_url eq '/' ? '' : $dir_url);
+ my $phys_m = _iso_phys_media($dir_medium, $iso, '');
$phys_m->{real_mntpoint} = '/tmp/loop';
$phys_m->{real_device} = cat_("/proc/mounts") =~ m!(/dev/\S+)\s+/tmp/loop\s! && $1;
$phys_m->{isMounted} = 1;
@@ -208,7 +178,7 @@ sub stage2_phys_medium {
$phys_m;
} else {
my $rel_path = readlink('/tmp/image') =~ m!media/*(/.*)! ? $1 : '';
- stage2_mounted_medium($method, $rel_path);
+ _stage2_mounted_medium($method, $rel_path);
}
}
@@ -228,16 +198,16 @@ sub change_phys_medium {
my $force_change = $phys_m->{method} eq 'cdrom' && $mounted_media{cdrom};
if (my $current = $mounted_media{$phys_m->{method}}) {
- setup_postinstall_rpms($::o, $o_packages, $current) if $o_packages && $phys_m->{method} eq 'cdrom' && $::o->isa('interactive');
+ _setup_postinstall_rpms($::o, $o_packages, $current) if $o_packages && $phys_m->{method} eq 'cdrom' && $::o->isa('interactive');
umount_phys_medium($current) or return;
delete $mounted_media{$phys_m->{method}};
}
- mount_phys_medium($phys_m, $o_rel_file, $force_change) or return;
- phys_medium_is_mounted($phys_m);
+ _mount_phys_medium($phys_m, $o_rel_file, $force_change) or return;
+ _phys_medium_is_mounted($phys_m);
1;
}
-sub phys_medium_is_mounted {
+sub _phys_medium_is_mounted {
my ($phys_m) = @_;
if (member($phys_m->{method}, 'cdrom', 'iso')) {
#- we can't have more than one cdrom mounted at once
@@ -246,16 +216,16 @@ sub phys_medium_is_mounted {
}
}
-sub associate_phys_media {
+sub _associate_phys_media {
my ($all_hds, $main_phys_medium, $hdlists) = @_;
my ($main_name, @other_names) = uniq(map { $_->{name} } @$hdlists);
my @other_phys_media =
$main_phys_medium->{method} eq 'iso' ?
- get_phys_media_iso($all_hds, $main_phys_medium, \@other_names) :
+ _get_phys_media_iso($all_hds, $main_phys_medium, \@other_names) :
$main_phys_medium->{method} eq 'cdrom' ?
- (map { get_phys_media_cdrom($main_phys_medium, $_) } @other_names) :
+ (map { _get_phys_media_cdrom($main_phys_medium, $_) } @other_names) :
();
if (@other_phys_media) {
@@ -269,7 +239,7 @@ sub associate_phys_media {
log::l("setting medium $medium->{name} phys_medium to $phys_m->{url}");
$medium->{phys_medium} = $phys_m;
} else {
- $medium->{selected} = 0;
+ $medium->{ignore} = 1;
log::l("deselecting missing medium $medium->{rpmsdir}");
}
}
@@ -280,14 +250,14 @@ sub associate_phys_media {
}
}
-sub get_phys_media_cdrom {
+sub _get_phys_media_cdrom {
my ($main_phys_m, $name) = @_;
#- exactly the same as $main_phys_m, but for {name}, {isMounted} and {real_mntpoint}
+{ %$main_phys_m, name => $name, isMounted => 0, real_mntpoint => undef };
}
-sub iso_phys_media {
+sub _iso_phys_media {
my ($dir_medium, $iso, $rel_path) = @_;
my $mntpoint = "/mnt/$iso";
@@ -304,19 +274,21 @@ sub iso_phys_media {
mntpoint => $mntpoint, rel_path => $rel_path,
};
}
-sub get_phys_media_iso {
+
+sub _get_phys_media_iso {
my ($all_hds, $main_phys_m, $names) = @_;
- my @ISOs = grep { member($_->{app_id}, @$names) } look_for_ISO_images($main_phys_m->{device});
+ my @ISOs = grep { member($_->{app_id}, @$names) } _look_for_ISO_images($main_phys_m->{device});
map {
- my $m = iso_phys_media($main_phys_m->{loopback_device}, $_->{file}, $main_phys_m->{rel_path});
+ my $m = _iso_phys_media($main_phys_m->{loopback_device}, $_->{file}, $main_phys_m->{rel_path});
$m->{name} = $_->{app_id};
push @{$all_hds->{loopbacks}}, $m;
$m;
} @ISOs;
}
-sub look_for_ISO_images {
+
+sub _look_for_ISO_images {
my ($main_iso) = @_;
my $iso_dir = dirname($main_iso);
@@ -341,17 +313,18 @@ sub look_for_ISO_images {
}
-sub getFile_media_info {
+sub _getFile_media_info {
my ($packages, $f) = @_;
getFile_(first_medium($packages)->{phys_medium}, $f);
}
-sub open_file_and_size {
+sub _open_file_and_size {
my ($f) = @_;
my $size = -s $f;
my $fh = common::open_file($f) or return;
$size, $fh;
}
+
sub getFile_ {
my ($phys_m, $f) = @_;
log::l("getFile $f on " . phys_medium_to_string($phys_m) . "");
@@ -359,47 +332,47 @@ sub getFile_ {
my ($_size, $fh) = get_file_and_size($phys_m, $f) or return;
$fh;
}
+
sub get_file_and_size {
my ($phys_m, $f) = @_;
- if ($f =~ m|^http://|) {
+ if ($f =~ m|^https?://|) {
require install::http;
install::http::get_file_and_size($f);
- } elsif ($phys_m->{method} eq "ftp") {
- require install::ftp;
- install::ftp::get_file_and_size($f, $phys_m->{url});
- } elsif ($phys_m->{method} eq "http") {
+ } elsif (member($phys_m->{method}, qw(ftp http https))) {
require install::http;
install::http::get_file_and_size_($f, $phys_m->{url});
} elsif ($f =~ m!^/!) {
- open_file_and_size($f);
+ _open_file_and_size($f);
} elsif ($postinstall_rpms && -e "$postinstall_rpms/$f") {
- open_file_and_size("$postinstall_rpms/$f");
+ _open_file_and_size("$postinstall_rpms/$f");
} else {
my $f2 = path($phys_m, $f);
if (! -f $f2) {
change_phys_medium($phys_m, $f, $::o->{packages});
}
- open_file_and_size($f2);
+ _open_file_and_size($f2);
}
}
sub getAndSaveFile_ {
my ($phys_m, $file, $local) = @_;
my $fh = getFile_($phys_m, $file) or return;
- getAndSaveFile_raw($fh, $local);
+ _getAndSaveFile_raw($fh, $local);
}
-sub getAndSaveFile_progress {
+
+sub _getAndSaveFile_progress {
my ($in_wait, $msg, $phys_m, $file, $local) = @_;
my ($size, $fh) = get_file_and_size($phys_m, $file) or return;
if ($size) {
- getAndSaveFile_progress_raw($in_wait, $msg, $size, $fh, $local);
+ _getAndSaveFile_progress_raw($in_wait, $msg, $size, $fh, $local);
} else {
- getAndSaveFile_raw($fh, $local);
+ _getAndSaveFile_raw($fh, $local);
}
}
-sub getAndSaveFile_raw {
+
+sub _getAndSaveFile_raw {
my ($fh, $local) = @_;
local $/ = \ (16 * 1024);
@@ -409,17 +382,19 @@ sub getAndSaveFile_raw {
while (<$fh>) { syswrite($F, $_) or unlink($local), die("getAndSaveFile($local): $!") }
1;
}
-sub getAndSaveFile_progress_raw {
+
+sub _getAndSaveFile_progress_raw {
my ($in_wait, $msg, $size, $fh, $local) = @_;
unlink $local;
open(my $out, ">$local") or log::l("getAndSaveFile(opening $local): $!"), return;
- print_with_progress($in_wait, $msg, $size, $fh, $out) or unlink($local), die("getAndSaveFile($local): $!");
+ _print_with_progress($in_wait, $msg, $size, $fh, $out) or unlink($local), die("getAndSaveFile($local): $!");
}
-sub print_with_progress {
+
+sub _print_with_progress {
my ($in_wait, $msg, $size, $in, $out) = @_;
- my ($_wait, $wait_message) = $in_wait->wait_message_with_progress_bar(N("Please wait"));
+ my ($_wait, $wait_message) = $in_wait->wait_message_with_progress_bar(N("Please wait, retrieving file"));
$wait_message->($msg);
my $current = 0;
@@ -440,20 +415,13 @@ sub print_with_progress {
1;
}
-
sub urpmidir() {
my $v = "$::prefix/var/lib/urpmi";
-l $v && !-e $v and unlink $v and mkdir $v, 0755; #- dangling symlink
-w $v ? $v : '/tmp';
}
-sub hdlist_on_disk {
- my ($m) = @_;
-
- urpmidir() . "/hdlist.$m->{fakemedium}.cz";
-}
-
-sub allow_copy_rpms_on_disk {
+sub _allow_copy_rpms_on_disk {
my ($medium, $hdlists) = @_;
$medium->{device} && $medium->{method} ne 'iso' or return;
@@ -462,7 +430,7 @@ sub allow_copy_rpms_on_disk {
my $totalsize = sum(map { $_->{size} } @$hdlists) || -1; #- don't check size, total medium size unknown
if ($totalsize >= 0) {
- my $availvar = install::any::getAvailableSpace_mounted("$::prefix/var");
+ my $availvar = fs::any::getAvailableSpace_mounted("$::prefix/var");
$availvar /= 1024 * 1024; #- Mo
log::l("totalsize=$totalsize, avail on $::prefix/var=$availvar");
$totalsize < $availvar * 0.6;
@@ -472,7 +440,7 @@ sub allow_copy_rpms_on_disk {
}
}
-sub parse_media_cfg {
+sub _parse_media_cfg {
my ($cfg) = @_;
require MDV::Distribconf;
@@ -497,62 +465,83 @@ sub parse_media_cfg {
$distribconf, \@hdlists;
}
-sub parse_hdlists {
- my ($cfg) = @_;
-
- my (%main_options, @hdlists);
- foreach (cat_($cfg)) {
- chomp;
- s/\s*#.*$//;
- /^\s*$/ and next;
- #- we'll ask afterwards for supplementary CDs, if the hdlists file contains
- #- a line that begins with "suppl"
- if (/^suppl/) { $main_options{suppl} = 1; next }
- #- if the hdlists contains a line "askmedia", deletion of media found
- #- in this hdlist is allowed
- if (/^askmedia/) { $main_options{askmedia} = 1; next }
- my ($noauto, $hdlist, $rpmsdir, $name, $size) = m!^\s*(noauto:)?(hdlist\S*\.cz)\s+[^/]*/(\S+)\s*([^(]*)(?:\((.+)\))?$!
- or die qq(invalid hdlist description "$_" in hdlists file);
- $name =~ s/\s+$//;
- $size =~ s/MB?$//i;
- push @hdlists, { rel_hdlist => "media_info/$hdlist", rpmsdir => $rpmsdir, name => $name, selected => !$noauto, size => $size };
+sub select_only_some_media {
+ my ($media_list, $selected_names) = @_;
+ my @names = split(',', $selected_names);
+ foreach my $m (@$media_list) {
+ my $bool = !member($m->{name}, @names);
+ # workaround urpmi transforming "ignore => ''" or "ignore => 0" into "ignore => 1":
+ undef $bool if !$bool;
+ log::l("disabling '$m->{name}' medium: " . to_bool($bool));
+ urpm::media::_tempignore($m, $bool);
+ # make sure we update un-ignored media (eg: */Testing and the like):
+ $m->{modified} = 1 if !$bool;
}
- (\%main_options, \@hdlists);
+}
+
+sub update_media {
+ my ($packages) = @_;
+ urpm::media::update_media($packages, distrib => 1, callback => \&urpm::download::sync_logger) or
+ log::l('updating media failed');
}
sub get_media {
my ($o, $media, $packages) = @_;
- my ($suppl_CDs, $copy_rpms_on_disk);
+ my ($suppl_CDs, $copy_rpms_on_disk, $phys_m);
foreach (@$media) {
if ($_->{type} eq 'media_cfg') {
- my $phys_m = url2mounted_phys_medium($o, $_->{url}, 'media_info');
- ($suppl_CDs, $copy_rpms_on_disk) = get_media_cfg($o, $phys_m, $packages, $_->{selected_names}, $_->{force_rpmsrate});
+ $phys_m = url2mounted_phys_medium($o, $_->{url}, 'media_info');
+ local $phys_m->{is_suppl} = $_->{url} ne "drakx://media"; # so that _get_media_url() works
+ ($suppl_CDs, $copy_rpms_on_disk) = get_media_cfg($o, $phys_m, $packages, $_->{selected_names}, $_->{force_rpmsrate});
} elsif ($_->{type} eq 'media') {
- my $phys_m = url2mounted_phys_medium($o, $_->{url});
+ $phys_m = url2mounted_phys_medium($o, $_->{url});
get_standalone_medium($o, $phys_m, $packages, { name => $_->{id} =~ /media=(.*)/ && $1 });
} elsif ($_->{type} eq 'media_cfg_isos') {
my ($dir_url, $iso, $rel_path) = $_->{url} =~ m!(.*)/(.*\.iso):(/.*)! or die "bad media_cfg_isos url $_->{url}";
my $dir_medium = url2mounted_phys_medium($o, $dir_url);
$dir_medium->{options} =~ s/\bnoauto\b,?//;
- my $phys_m = iso_phys_media($dir_medium, $iso, $rel_path);
+ $phys_m = _iso_phys_media($dir_medium, $iso, $rel_path);
push @{$o->{all_hds}{loopbacks}}, $phys_m;
($suppl_CDs, $copy_rpms_on_disk) = get_media_cfg($o, $phys_m, $packages, $_->{selected_names}, $_->{force_rpmsrate});
} else {
log::l("unknown media type $_->{type}, skipping");
}
}
+
log::l("suppl_CDs=$suppl_CDs copy_rpms_on_disk=$copy_rpms_on_disk");
$suppl_CDs, $copy_rpms_on_disk;
}
+sub adjust_paths_in_urpmi_cfg {
+ my ($urpm) = @_;
+
+ require Clone;
+ local $urpm->{media} = Clone::clone($urpm->{media});
+ foreach my $medium (@{$urpm->{media}}) {
+ my $phys_m = $medium->{phys_medium};
+ if ($phys_m->{method} eq 'cdrom') {
+ $medium->{url} =~ s!^.*?/media/!$phys_m->{url}/!;
+ } elsif (member($phys_m->{method}, qw(disk nfs))) {
+ # use the real mount point:
+ if ($medium->{url} =~ m!/tmp/image(/media)?!) {
+ $medium->{url} =~ s!/tmp/image(/media)?!$phys_m->{mntpoint}$phys_m->{rel_path}!;
+ } else {
+ # just remove $::prefix and we already have the real mount point:
+ $medium->{url} =~ s!^$::prefix!!;
+ }
+ }
+ }
+ urpm::media::write_config($urpm);
+}
+
sub remove_from_fstab {
my ($all_hds, $phys_m) = @_;
@{$all_hds->{nfss}} = grep { $_ != $phys_m } @{$all_hds->{nfss}} if $phys_m->{method} eq 'nfs';
}
-sub find_and_add_to_fstab {
+sub _find_and_add_to_fstab {
my ($all_hds, $phys_m, $b_force_mount) = @_;
if (my $existant = find { $_->{device} eq $phys_m->{device} } fs::get::really_all_fstab($all_hds)) {
@@ -582,24 +571,24 @@ sub find_and_add_to_fstab {
sub url2mounted_phys_medium {
my ($o, $url, $o_rel_file, $o_name) = @_;
- my $phys_m = url2phys_medium($o, $url);
+ my $phys_m = _url2phys_medium($o, $url);
$phys_m->{name} = $o_name if $o_name; #- useful for CDs which prompts a name in change_phys_medium
change_phys_medium($phys_m, $o_rel_file, $o->{packages}) or return;
$phys_m;
}
-sub url2phys_medium {
+sub _url2phys_medium {
my ($o, $url) = @_;
my ($method, $path) = $url =~ m!([^:]*)://(.*)! or internal_error("bad url $url");
if ($method eq 'drakx') {
my $m = { %{$o->{stage2_phys_medium}}, is_stage2_phys_medium => 1 };
if ($m->{loopback_device}) {
- $m->{loopback_device} = find_and_add_to_fstab($o->{all_hds}, $m->{loopback_device}, 'force_mount');
+ $m->{loopback_device} = _find_and_add_to_fstab($o->{all_hds}, $m->{loopback_device}, 'force_mount');
}
$m->{url} .= "/$path";
$m->{rel_path} .= "/$path" if $m->{device};
- $m = find_and_add_to_fstab($o->{all_hds}, $m) if $m->{device};
- phys_medium_is_mounted($m);
+ $m = _find_and_add_to_fstab($o->{all_hds}, $m) if $m->{device};
+ _phys_medium_is_mounted($m);
$m;
} elsif ($method eq 'cdrom') {
my $cdrom = first(detect_devices::cdroms());
@@ -607,10 +596,10 @@ sub url2phys_medium {
url => $url, method => $method, fs_type => 'iso9660', device => $cdrom->{device},
rel_path => "/$path",
};
- my $m_ = find_and_add_to_fstab($o->{all_hds}, $m);
+ my $m_ = _find_and_add_to_fstab($o->{all_hds}, $m);
if ($m_->{name}) {
#- we need a new phys medium, different from current CD
- $m_ = get_phys_media_cdrom($m_, '');
+ $m_ = _get_phys_media_cdrom($m_, '');
#- we also need to enforce what we want, especially rel_path
put_in_hash($m_, $m);
}
@@ -622,150 +611,97 @@ sub url2phys_medium {
url => $url, method => $method,
fs_type => 'nfs', device => "$server:$nfs_dir", faked_device => 1,
};
- find_and_add_to_fstab($o->{all_hds}, $m);
+ _find_and_add_to_fstab($o->{all_hds}, $m);
} else {
{ url => $url, method => $method };
}
}
+sub _get_media_url {
+ my ($o, $phys_medium) = @_;
+ my $uri;
+ if ($phys_medium->{is_suppl}) {
+ if (member($phys_medium->{method}, qw(ftp http https))) {
+ $uri = $phys_medium->{url};
+ $uri =~ s!/media$!!;
+ } elsif (member($phys_medium->{method}, qw(cdrom nfs))) {
+ $uri = "$::prefix/$phys_medium->{mntpoint}";
+ my $arch = arch() =~ /i.86/ ? $MDK::Common::System::compat_arch{arch()} : arch();
+ $uri .= "/$arch" if -d "$uri/$arch";
+ }
+ } else {
+ $uri = $o->{stage2_phys_medium}{url} =~ m!^(https?|ftp)://! && $o->{stage2_phys_medium}{url} ||
+ $phys_medium->{method} =~ m!^(ftp|https?)://! && $phys_medium->{method} || '/tmp/image';
+ }
+ $uri;
+ }
+
sub get_media_cfg {
my ($o, $phys_medium, $packages, $selected_names, $force_rpmsrate) = @_;
- my ($distribconf, $hdlists);
+ my @media = @{$packages->{media}};
+
+ my ($distribconf);
if (getAndSaveFile_($phys_medium, 'media_info/media.cfg', '/tmp/media.cfg')) {
- ($distribconf, $hdlists) = parse_media_cfg('/tmp/media.cfg');
+ ($distribconf) = _parse_media_cfg('/tmp/media.cfg');
} else {
- getAndSaveFile_($phys_medium, 'media_info/hdlists', '/tmp/hdlists')
- or die "media.cfg not found";
- ($distribconf, $hdlists) = parse_hdlists('/tmp/hdlists');
- }
-
- if (defined $selected_names) {
- my @names = split ',', $selected_names;
- foreach my $h (@$hdlists) {
- $h->{selected} = member($h->{name}, @names);
- }
+ die "media.cfg not found";
}
- my $suppl_CDs = $distribconf->{suppl} || $o->{supplmedia} || 0;
+ my $suppl_CDs = defined $o->{supplmedia} ? $o->{supplmedia} : $distribconf->{suppl} || 0;
my $deselectionAllowed = $distribconf->{askmedia} || $o->{askmedia} || 0;
- associate_phys_media($o->{all_hds}, $phys_medium, $hdlists);
+ log::l(Data::Dumper->Dump([ $phys_medium ], [ 'phys_medium' ]));
+ log::l(Data::Dumper->Dump([ $o->{stage2_phys_medium} ], [ 'stage2_phys_medium' ]));
+ my $uri = _get_media_url($o, $phys_medium);
+ log::l("adding distrib media from $uri");
- if ($deselectionAllowed && !@{$packages->{media}}) {
- my $allow = allow_copy_rpms_on_disk($phys_medium, $hdlists);
- $o->ask_deselect_media__copy_on_disk($hdlists, $allow && \$o->{copy_rpms_on_disk}) if $allow || @$hdlists > 1;
- }
+ urpm::media::add_distrib_media($packages, undef, $uri, ask_media => undef); #allmedia => 1
+
+ my @new_media = difference2($packages->{media}, \@media);
+ _associate_phys_media($o->{all_hds}, $phys_medium, \@new_media);
- foreach my $h (@$hdlists) {
- get_medium($o, $phys_medium, $packages, $h);
+ select_only_some_media(\@new_media, $selected_names) if defined $selected_names;
+
+ if ($deselectionAllowed && !@{$packages->{media}}) {
+ my $allow = _allow_copy_rpms_on_disk($phys_medium, $packages->{media});
+ $o->ask_deselect_media__copy_on_disk($packages->{media}, $allow && \$o->{copy_rpms_on_disk}) if $allow || @{$packages->{media}} > 1;
}
log::l("get_media_cfg read " . int(@{$packages->{depslist}}) . " headers");
+ _get_compsUsers_pl($phys_medium, $force_rpmsrate);
+
+ $suppl_CDs, $o->{copy_rpms_on_disk};
+}
+sub _get_compsUsers_pl {
+ my ($phys_medium, $force_rpmsrate) = @_;
#- copy latest compssUsers.pl and rpmsrate somewhere locally
if ($force_rpmsrate || ! -e '/tmp/rpmsrate') {
- getAndSaveFile_($phys_medium, "media_info/compssUsers.pl", "/tmp/compssUsers.pl");
getAndSaveFile_($phys_medium, "media_info/rpmsrate", "/tmp/rpmsrate");
}
-
-
- $suppl_CDs, $o->{copy_rpms_on_disk};
+ if ($force_rpmsrate || ! -e '/tmp/compssUsers.pl') {
+ getAndSaveFile_($phys_medium, "media_info/compssUsers.pl", "/tmp/compssUsers.pl");
+ }
}
sub get_standalone_medium {
my ($in, $phys_m, $packages, $m) = @_;
- add2hash($m, { phys_medium => $phys_m, selected => 1, rel_hdlist => 'media_info/hdlist.cz' });
- get_medium($in, $phys_m, $packages, $m);
+ add2hash($m, { phys_medium => $phys_m, rel_hdlist => 'media_info/hdlist.cz' });
+ local $phys_m->{is_suppl} = 1; # so that _get_media_url() works
+ _get_medium($in, $phys_m, $packages, $m);
}
-sub get_medium {
- my ($in_wait, $phys_m, $packages, $m) = @_;
-
- $m->{selected} or log::l("ignoring packages in $m->{rel_hdlist}"), return;
-
- my $medium_id = int @{$packages->{media}};
- $m->{fakemedium} = $m->{name} || $phys_m->{method};
- $m->{fakemedium} =~ s!/!_!g; #- remove "/" from name
- if (find { $m->{fakemedium} eq $_->{fakemedium} } allMediums($packages)) {
- $m->{fakemedium} .= " (" . ($m->{rpmsdir} || $medium_id) . ")";
- $m->{fakemedium} =~ s!/!_!g; #- remove "/" from rpmsdir
- }
-
- log::l("trying to read $m->{rel_hdlist} for medium '$m->{fakemedium}'");
-
- #- copy hdlist file directly to urpmi directory, this will be used
- #- for getting header of package during installation or after by urpmi.
- my $hdlist = hdlist_on_disk($m);
- {
- getAndSaveFile_progress($in_wait, N("Downloading file %s...", $m->{rel_hdlist}),
- $phys_m, $m->{rel_hdlist}, $hdlist) or die "no $m->{rel_hdlist} found";
-
- $m->{hdlist_size} = -s $hdlist; #- keep track of size for post-check.
- }
+sub _get_medium {
+ my ($_in_wait, $phys_m, $packages, $m) = @_;
- my $synthesis = urpmidir() . "/synthesis.hdlist.$m->{fakemedium}.cz";
- {
- my $rel_synthesis = $m->{rel_hdlist};
- $rel_synthesis =~ s!/hdlist!/synthesis.hdlist! or internal_error("bad {rel_hdlist} $m->{rel_hdlist}");
- #- copy existing synthesis file too.
- getAndSaveFile_progress($in_wait, N("Downloading file %s...", $rel_synthesis),
- $phys_m, $rel_synthesis, $synthesis);
- $m->{synthesis_hdlist_size} = -s $synthesis; #- keep track of size for post-check.
- }
-
- #- get all keys corresponding in the right pubkey file,
- #- they will be added in rpmdb later if not found.
- if (!$m->{pubkey}) {
- my $rel_pubkey = $m->{rel_hdlist};
- $rel_pubkey =~ s!/hdlist(.*)\.cz!/pubkey$1! or internal_error("bad {rel_hdlist} $m->{rel_hdlist}");
- if (my $pubkey = getFile_($phys_m, $rel_pubkey)) {
- $m->{pubkey} = [ $packages->parse_armored_file($pubkey) ];
- }
- }
- $m->{pubkey} ||= [];
-
- #- for standalone medium not using media.cfg
- $phys_m->{name} ||= $m->{name};
-
- #- integrate medium in media list, only here to avoid download error (update) to be propagated.
- push @{$packages->{media}}, $m;
-
- #- parse synthesis (if available) of directly hdlist (with packing).
- {
- my $nb_suppl_pkg_skipped = 0;
- my $callback = sub {
- my (undef, $p) = @_;
- my $uniq_pkg_seen = $packages->{uniq_pkg_seen} ||= {};
- if ($uniq_pkg_seen->{$p->fullname}++) {
- log::l("skipping " . scalar $p->fullname);
- ++$nb_suppl_pkg_skipped;
- return 0;
- } else {
- return 1;
- }
- };
- my $error;
- if (-s $synthesis) {
- ($m->{start}, $m->{end}) = $packages->parse_synthesis($synthesis, callback => $callback)
- or $error = "bad synthesis $synthesis for $m->{fakemedium}";
- } elsif (-s $hdlist) {
- ($m->{start}, $m->{end}) = $packages->parse_hdlist($hdlist, callback => $callback)
- or $error = "bad hdlist $hdlist for $m->{fakemedium}";
- } else {
- $error = "fatal: no hdlist nor synthesis to read for $m->{fakemedium}";
- }
+ !$m->{ignore} or log::l("ignoring packages in $m->{rel_hdlist}"), return;
- if ($error) {
- pop @{$packages->{media}};
- unlink $hdlist, $synthesis;
- die $error;
- } else {
- log::l("medium " . phys_medium_to_string($phys_m) . ", read " . ($m->{end} - $m->{start} + 1) . " packages in $m->{rel_hdlist}, $nb_suppl_pkg_skipped skipped");
- }
- }
+ my $url = _get_media_url({}, $phys_m);
+ log::l("trying '$url'\n");
+ urpm::media::add_medium($packages, $m->{name} || 'Supplementary medium', $url, 0) or $packages->{fatal}(10, N("unable to add medium"));
}
@@ -773,7 +709,7 @@ sub get_medium {
#-######################################################################################
#- Post installation RPMS from cdrom only, functions
#-######################################################################################
-sub setup_postinstall_rpms {
+sub _setup_postinstall_rpms {
my ($in, $packages, $current_phys_m) = @_;
$postinstall_rpms and return;
@@ -840,7 +776,7 @@ sub clean_postinstall_rpms() {
sub copy_rpms_on_disk {
my ($o) = @_;
- my $dest_dir = '/var/ftp/pub/Mandrivalinux/media';
+ my $dest_dir = '/var/ftp/pub/Mageialinux/media';
#- don't be afraid, cleanup old RPMs if upgrade
eval { rm_rf("$::prefix$dest_dir") if $o->{isUpgrade} };
mkdir_p("$::prefix$dest_dir");
@@ -865,17 +801,22 @@ sub copy_rpms_on_disk {
#- keep in mind the asked medium has been refused.
#- this means it is no longer selected.
#- (but do not unselect supplementary CDs.)
- $m->{selected} = 0;
+ $m->{ignore} = 1;
}
}
+ my $dest_medium_dir = $dest_dir . '/' . basename($rpmsdir);
+ #- handle rpmsdir being ../../i586/media/main: we flatten it
+ -e "$::prefix$dest_medium_dir" and $dest_medium_dir .= '32';
+ -e "$::prefix$dest_medium_dir" and next;
my $total = install::any::count_files($rpmsdir);
- log::l("copying $rpmsdir to $::prefix$dest_dir ($total files)");
+ log::l("copying $rpmsdir to $::prefix$dest_medium_dir ($total files)");
eval {
- install::any::cp_with_progress_({}, $wait_message, $total, [$rpmsdir], "$::prefix$dest_dir");
+ install::any::cp_with_progress_({}, $wait_message, $total, [$rpmsdir], "$::prefix$dest_medium_dir");
};
log::l($@) if $@;
+ $m->{rpmsdir} = basename($dest_medium_dir);
$m->{phys_medium} = $dest_phys_medium;
}
undef $wait;
@@ -883,36 +824,13 @@ sub copy_rpms_on_disk {
our $copied_rpms_on_disk = 1;
}
-sub install_urpmi__generate_names {
- my ($packages, $medium) = @_;
-
- #- build a names file
- output("$::prefix/var/lib/urpmi/names.$medium->{fakemedium}",
- map { $packages->{depslist}[$_]->name . "\n" } $medium->{start} .. $medium->{end});
-}
-sub install_urpmi__generate_synthesis {
- my ($packages, $medium) = @_;
-
- my $synthesis = "/var/lib/urpmi/synthesis.hdlist.$medium->{fakemedium}.cz";
-
- #- build synthesis file if there are still not existing (ie not copied from mirror).
- -s "$::prefix$synthesis" <= 32 or return;
-
- log::l("building $synthesis");
-
- eval { $packages->build_synthesis(
- start => $medium->{start},
- end => $medium->{end},
- synthesis => "$::prefix$synthesis",
- ) };
- $@ and log::l("build_synthesis failed: $@");
-}
-
-#- copied from urpm/media.pm
-sub parse_url_with_login {
- my ($url) = @_;
- $url =~ m!([^:]*)://([^/:\@]*)(:([^/:\@]*))?\@([^/]*)(.*)! &&
- { proto => $1, login => $2, password => $4, machine => $5, dir => $6 };
+sub _get_medium_dir {
+ my ($phys_m) = @_;
+ if (member($phys_m->{method}, qw(ftp http https cdrom))) {
+ $phys_m->{url};
+ } else {
+ "$phys_m->{mntpoint}$phys_m->{rel_path}";
+ }
}
sub install_urpmi {
@@ -924,48 +842,23 @@ sub install_urpmi {
#- clean to avoid opening twice the rpm db.
delete $packages->{rpmdb};
- #- import pubkey in rpmdb.
- my $db = install::pkgs::open_rpm_db_rw();
- $packages->parse_pubkeys(db => $db);
- foreach my $medium (@media) {
- $packages->import_needed_pubkeys($medium->{pubkey}, db => $db, callback => sub {
- my (undef, undef, $_k, $id, $imported) = @_;
- if ($id) {
- log::l(($imported ? "imported" : "found") . " key=$id for medium $medium->{name}");
- $medium->{key_ids}{$id} = undef;
- }
- });
- }
-
my (@cfg, @netrc);
foreach my $medium (@media) {
- if ($medium->{selected}) {
- my ($dir, $removable_device, $static);
+ if (!$medium->{ignore}) {
+ my ($dir, $removable_device);
my $phys_m = $medium->{phys_medium};
- if ($phys_m->{method} eq 'ftp' || $phys_m->{method} eq 'http') {
- $dir = $phys_m->{url};
- } else {
- #- for cdrom, removable://... is best since it mounts *and* umounts cdrom
- #- for iso files, removable://... doesn't work correctly
- my $urpmi_method = $phys_m->{method} eq 'cdrom' ? 'removable' : 'file';
- $dir = "$urpmi_method:/$phys_m->{mntpoint}$phys_m->{rel_path}";
- if ($phys_m->{method} eq 'iso') {
- $removable_device = $phys_m->{loopback_device}{mntpoint} . $phys_m->{loopback_file};
- } elsif ($phys_m->{method} eq 'cdrom') {
- $removable_device = devices::make($phys_m->{device});
- $static = 1;
- }
- }
+ $dir = _get_medium_dir($phys_m);
- $dir = MDK::Common::File::concat_symlink($dir, $medium->{rpmsdir});
+ if ($phys_m->{method} eq 'iso') {
+ $removable_device = $phys_m->{loopback_device}{mntpoint} . $phys_m->{loopback_file};
+ }
- install_urpmi__generate_names($packages, $medium);
- install_urpmi__generate_synthesis($packages, $medium);
+ $dir = MDK::Common::File::concat_symlink($dir, $medium->{rpmsdir});
my ($qname, $qdir) = ($medium->{fakemedium}, $dir);
- if (my $u = parse_url_with_login($qdir)) {
+ if (my $u = urpm::download::parse_url_with_login($qdir)) {
$qdir = sprintf('%s://%s@%s%s', $u->{proto}, $u->{login}, $u->{machine}, $u->{dir});
push @netrc, sprintf("machine %s login %s password %s\n", $u->{machine}, $u->{login}, $u->{password});
}
@@ -975,15 +868,12 @@ sub install_urpmi {
#- output new urpmi.cfg format here.
push @cfg, map { "$_\n" }
"$qname $qdir {",
- " media_info_dir: media_info",
- if_(keys(%{$medium->{key_ids}}),
- " key-ids: " . join(',', keys %{$medium->{key_ids}})),
+ if_($medium->{'key-ids'},
+ " key-ids: " . $medium->{'key-ids'}),
if_($removable_device,
" removable: $removable_device"),
if_($medium->{update},
" update"),
- if_($static,
- " static"),
"}";
} else {
#- remove deselected media by removing copied hdlist and synthesis files
diff --git a/perl-install/install/pixmaps/banner-adduser.png b/perl-install/install/pixmaps/banner-adduser.png
deleted file mode 100644
index d15926da4..000000000
--- a/perl-install/install/pixmaps/banner-adduser.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/install/pixmaps/banner-bootL.png b/perl-install/install/pixmaps/banner-bootL.png
deleted file mode 100644
index 3d1c42940..000000000
--- a/perl-install/install/pixmaps/banner-bootL.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/install/pixmaps/banner-exit.png b/perl-install/install/pixmaps/banner-exit.png
deleted file mode 100644
index 7eecbaf58..000000000
--- a/perl-install/install/pixmaps/banner-exit.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/install/pixmaps/banner-generic-ad.png b/perl-install/install/pixmaps/banner-generic-ad.png
deleted file mode 100644
index 0ae2482fd..000000000
--- a/perl-install/install/pixmaps/banner-generic-ad.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/install/pixmaps/banner-languages.png b/perl-install/install/pixmaps/banner-languages.png
deleted file mode 100644
index ac3a212df..000000000
--- a/perl-install/install/pixmaps/banner-languages.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/install/pixmaps/banner-license.png b/perl-install/install/pixmaps/banner-license.png
deleted file mode 100644
index 2c910fa26..000000000
--- a/perl-install/install/pixmaps/banner-license.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/install/pixmaps/banner-part.png b/perl-install/install/pixmaps/banner-part.png
deleted file mode 100644
index 7b1c8ee3a..000000000
--- a/perl-install/install/pixmaps/banner-part.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/install/pixmaps/banner-pw.png b/perl-install/install/pixmaps/banner-pw.png
deleted file mode 100644
index 9e3f1e2ea..000000000
--- a/perl-install/install/pixmaps/banner-pw.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/install/pixmaps/banner-security.png b/perl-install/install/pixmaps/banner-security.png
deleted file mode 100644
index f1580bfc7..000000000
--- a/perl-install/install/pixmaps/banner-security.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/install/pixmaps/banner-summary.png b/perl-install/install/pixmaps/banner-summary.png
deleted file mode 100644
index 9c0d5c84e..000000000
--- a/perl-install/install/pixmaps/banner-summary.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/install/pixmaps/banner-sys.png b/perl-install/install/pixmaps/banner-sys.png
deleted file mode 100644
index de75c1954..000000000
--- a/perl-install/install/pixmaps/banner-sys.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/install/pixmaps/banner-update.png b/perl-install/install/pixmaps/banner-update.png
deleted file mode 100644
index 6519369d7..000000000
--- a/perl-install/install/pixmaps/banner-update.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/install/pixmaps/cadre-blanc_600.png b/perl-install/install/pixmaps/cadre-blanc_600.png
new file mode 100644
index 000000000..5069a041c
--- /dev/null
+++ b/perl-install/install/pixmaps/cadre-blanc_600.png
Binary files differ
diff --git a/perl-install/install/pixmaps/cadre-blanc_768.png b/perl-install/install/pixmaps/cadre-blanc_768.png
new file mode 100644
index 000000000..bcaccadd4
--- /dev/null
+++ b/perl-install/install/pixmaps/cadre-blanc_768.png
Binary files differ
diff --git a/perl-install/install/pixmaps/desktop-Custom-big.png b/perl-install/install/pixmaps/desktop-Custom-big.png
new file mode 100644
index 000000000..37ceb5f69
--- /dev/null
+++ b/perl-install/install/pixmaps/desktop-Custom-big.png
Binary files differ
diff --git a/perl-install/install/pixmaps/desktop-Custom.png b/perl-install/install/pixmaps/desktop-Custom.png
index 901c216f3..016ce2431 100644
--- a/perl-install/install/pixmaps/desktop-Custom.png
+++ b/perl-install/install/pixmaps/desktop-Custom.png
Binary files differ
diff --git a/perl-install/install/pixmaps/desktop-GNOME-big.png b/perl-install/install/pixmaps/desktop-GNOME-big.png
new file mode 100644
index 000000000..f361a4e3d
--- /dev/null
+++ b/perl-install/install/pixmaps/desktop-GNOME-big.png
Binary files differ
diff --git a/perl-install/install/pixmaps/desktop-GNOME.png b/perl-install/install/pixmaps/desktop-GNOME.png
index 2c5184a01..292206399 100644
--- a/perl-install/install/pixmaps/desktop-GNOME.png
+++ b/perl-install/install/pixmaps/desktop-GNOME.png
Binary files differ
diff --git a/perl-install/install/pixmaps/desktop-KDE.png b/perl-install/install/pixmaps/desktop-KDE.png
deleted file mode 100644
index ab83046f0..000000000
--- a/perl-install/install/pixmaps/desktop-KDE.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/install/pixmaps/desktop-PLASMA5-big.png b/perl-install/install/pixmaps/desktop-PLASMA5-big.png
new file mode 100644
index 000000000..c1096bdf4
--- /dev/null
+++ b/perl-install/install/pixmaps/desktop-PLASMA5-big.png
Binary files differ
diff --git a/perl-install/install/pixmaps/desktop-PLASMA5.png b/perl-install/install/pixmaps/desktop-PLASMA5.png
new file mode 100644
index 000000000..249c164e2
--- /dev/null
+++ b/perl-install/install/pixmaps/desktop-PLASMA5.png
Binary files differ
diff --git a/perl-install/install/pixmaps/empty-banner.png b/perl-install/install/pixmaps/empty-banner.png
new file mode 100644
index 000000000..2cff55d2f
--- /dev/null
+++ b/perl-install/install/pixmaps/empty-banner.png
Binary files differ
diff --git a/perl-install/install/pixmaps/langs/lang-ast.png b/perl-install/install/pixmaps/langs/lang-ast.png
new file mode 100644
index 000000000..d10dc386c
--- /dev/null
+++ b/perl-install/install/pixmaps/langs/lang-ast.png
Binary files differ
diff --git a/perl-install/install/pixmaps/langs/lang-ber.png b/perl-install/install/pixmaps/langs/lang-ber.png
index 758f87d27..aaa710883 100644
--- a/perl-install/install/pixmaps/langs/lang-ber.png
+++ b/perl-install/install/pixmaps/langs/lang-ber.png
Binary files differ
diff --git a/perl-install/install/pixmaps/langs/lang-en_ZA.png b/perl-install/install/pixmaps/langs/lang-en_ZA.png
new file mode 100644
index 000000000..2a2623066
--- /dev/null
+++ b/perl-install/install/pixmaps/langs/lang-en_ZA.png
Binary files differ
diff --git a/perl-install/install/pixmaps/langs/lang-nr.png b/perl-install/install/pixmaps/langs/lang-nr.png
index 82a53a3e8..b04fc3281 100644
--- a/perl-install/install/pixmaps/langs/lang-nr.png
+++ b/perl-install/install/pixmaps/langs/lang-nr.png
Binary files differ
diff --git a/perl-install/install/pixmaps/langs/lang-qu.png b/perl-install/install/pixmaps/langs/lang-qu.png
index 53e233cdb..ec688f96d 100644
--- a/perl-install/install/pixmaps/langs/lang-qu.png
+++ b/perl-install/install/pixmaps/langs/lang-qu.png
Binary files differ
diff --git a/perl-install/install/pixmaps/langs/lang-uz.png b/perl-install/install/pixmaps/langs/lang-uz.png
index d32d0ffea..e9761e7d5 100644
--- a/perl-install/install/pixmaps/langs/lang-uz.png
+++ b/perl-install/install/pixmaps/langs/lang-uz.png
Binary files differ
diff --git a/perl-install/install/pixmaps/langs/lang-uz@Latn.png b/perl-install/install/pixmaps/langs/lang-uz@Latn.png
deleted file mode 100644
index e9761e7d5..000000000
--- a/perl-install/install/pixmaps/langs/lang-uz@Latn.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/install/pixmaps/langs/lang-uz@Cyrl.png b/perl-install/install/pixmaps/langs/lang-uz@cyrillic.png
index d32d0ffea..d32d0ffea 100644
--- a/perl-install/install/pixmaps/langs/lang-uz@Cyrl.png
+++ b/perl-install/install/pixmaps/langs/lang-uz@cyrillic.png
Binary files differ
diff --git a/perl-install/install/pixmaps/langs/lang-xh.png b/perl-install/install/pixmaps/langs/lang-xh.png
index d31040a18..eaaebf1f6 100644
--- a/perl-install/install/pixmaps/langs/lang-xh.png
+++ b/perl-install/install/pixmaps/langs/lang-xh.png
Binary files differ
diff --git a/perl-install/install/pixmaps/langs/lang-zu.png b/perl-install/install/pixmaps/langs/lang-zu.png
index b44493b50..4be984cfa 100644
--- a/perl-install/install/pixmaps/langs/lang-zu.png
+++ b/perl-install/install/pixmaps/langs/lang-zu.png
Binary files differ
diff --git a/perl-install/install/pixmaps/left-background.png b/perl-install/install/pixmaps/left-background.png
new file mode 100644
index 000000000..668b994ec
--- /dev/null
+++ b/perl-install/install/pixmaps/left-background.png
Binary files differ
diff --git a/perl-install/install/pixmaps/left-border.png b/perl-install/install/pixmaps/left-border.png
new file mode 100644
index 000000000..296f2277b
--- /dev/null
+++ b/perl-install/install/pixmaps/left-border.png
Binary files differ
diff --git a/perl-install/install/pixmaps/left-bottom-corner.png b/perl-install/install/pixmaps/left-bottom-corner.png
new file mode 100644
index 000000000..df0c8347b
--- /dev/null
+++ b/perl-install/install/pixmaps/left-bottom-corner.png
Binary files differ
diff --git a/perl-install/install/pixmaps/left-top-corner.png b/perl-install/install/pixmaps/left-top-corner.png
new file mode 100644
index 000000000..df0c8347b
--- /dev/null
+++ b/perl-install/install/pixmaps/left-top-corner.png
Binary files differ
diff --git a/perl-install/install/pixmaps/logo-mandriva.png b/perl-install/install/pixmaps/logo-mandriva.png
deleted file mode 100644
index 223837c69..000000000
--- a/perl-install/install/pixmaps/logo-mandriva.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/install/pixmaps/reload.png b/perl-install/install/pixmaps/reload.png
index 26d503283..baa7b5f9f 100644
--- a/perl-install/install/pixmaps/reload.png
+++ b/perl-install/install/pixmaps/reload.png
Binary files differ
diff --git a/perl-install/install/pixmaps/right-white-background_left_part_600.png b/perl-install/install/pixmaps/right-white-background_left_part_600.png
new file mode 100644
index 000000000..e4e514058
--- /dev/null
+++ b/perl-install/install/pixmaps/right-white-background_left_part_600.png
Binary files differ
diff --git a/perl-install/install/pixmaps/right-white-background_left_part_768.png b/perl-install/install/pixmaps/right-white-background_left_part_768.png
new file mode 100644
index 000000000..41f7334c6
--- /dev/null
+++ b/perl-install/install/pixmaps/right-white-background_left_part_768.png
Binary files differ
diff --git a/perl-install/install/pixmaps/right-white-background_right_part_600.png b/perl-install/install/pixmaps/right-white-background_right_part_600.png
new file mode 100644
index 000000000..0e564b2ae
--- /dev/null
+++ b/perl-install/install/pixmaps/right-white-background_right_part_600.png
Binary files differ
diff --git a/perl-install/install/pixmaps/selected.png b/perl-install/install/pixmaps/selected.png
deleted file mode 100644
index 49b225b93..000000000
--- a/perl-install/install/pixmaps/selected.png
+++ /dev/null
Binary files differ
diff --git a/perl-install/install/pixmaps/semiselected.png b/perl-install/install/pixmaps/semiselected.png
index c026805bf..108b32265 100644
--- a/perl-install/install/pixmaps/semiselected.png
+++ b/perl-install/install/pixmaps/semiselected.png
Binary files differ
diff --git a/perl-install/install/pixmaps/unselected.png b/perl-install/install/pixmaps/unselected.png
index 221acbceb..7b4d6be1d 100644
--- a/perl-install/install/pixmaps/unselected.png
+++ b/perl-install/install/pixmaps/unselected.png
Binary files differ
diff --git a/perl-install/install/pkgs.pm b/perl-install/install/pkgs.pm
index 5bde50be0..a9692e225 100644
--- a/perl-install/install/pkgs.pm
+++ b/perl-install/install/pkgs.pm
@@ -1,16 +1,20 @@
-package install::pkgs; # $Id$
+package install::pkgs;
use strict;
+use feature 'state';
BEGIN {
# needed before "use URPM"
mkdir '/etc/rpm';
- symlink "/tmp/stage2/etc/rpm/$_", "/etc/rpm/$_" foreach 'platform', 'macros.cdb';
+ symlink "/tmp/stage2/etc/rpm/$_", "/etc/rpm/$_" foreach 'macros.d';
}
use URPM;
use URPM::Resolve;
use URPM::Signature;
+use urpm;
+use urpm::args;
+use urpm::main_loop;
use urpm::select;
use common;
use install::any;
@@ -19,10 +23,10 @@ use run_program;
use detect_devices;
use log;
use fs;
+use fs::any;
use fs::loopback;
use c;
-
#- lower bound on the left ( aka 90 means [90-100[ )
our %compssListDesc = (
5 => N_("must have"),
@@ -32,44 +36,13 @@ our %compssListDesc = (
1 => N_("maybe"),
);
-#- constant for small transaction.
-our $limitMinTrans = 13;
-
-
-sub cleanHeaders() {
- rm_rf("$::prefix/tmp/headers") if -e "$::prefix/tmp/headers";
-}
-
-#- get all headers from an hdlist file.
-sub extractHeaders {
- my ($pkgs, $media) = @_;
- cleanHeaders();
-
- foreach my $medium (@$media) {
- $medium->{selected} or next;
-
- my @l = grep { $_->id >= $medium->{start} && $_->id <= $medium->{end} } @$pkgs or next;
- eval {
- require packdrake;
- my $packer = new packdrake(install::media::hdlist_on_disk($medium), quiet => 1);
- $packer->extract_archive("$::prefix/tmp/headers", map { $_->header_filename } @l);
- };
- $@ and log::l("packdrake failed: $@");
- }
-
- foreach (@$pkgs) {
- my $f = "$::prefix/tmp/headers/" . $_->header_filename;
- $_->update_header($f) or log::l("unable to open header file $f"), next;
- log::l("read header file $f");
- }
-}
-
#- TODO BEFORE TODO
#- size and correction size functions for packages.
-my $B = 1.20873;
-my $C = 4.98663; #- does not take hdlist's into account as getAvailableSpace will do it.
-sub correctSize { $B * $_[0] + $C }
-sub invCorrectSize { ($_[0] - $C) / $B }
+my $B = 120873;
+my $C = 498663; #- does not take hdlist's into account as getAvailableSpace will do it.
+my $D = 100000;
+sub correctSize { ($B * $_[0] + $C) / $D }
+sub invCorrectSize { ($_[0] * $D - $C) / $B }
sub selectedSize {
my ($packages) = @_;
@@ -97,29 +70,78 @@ sub selectedSize {
sub size2time {
my ($x, $max) = @_;
- my $A = 7e-07;
+ my $A = 7e9;
my $limit = min($max * 3 / 4, 9e8);
if ($x < $limit) {
$A * $x;
} else {
$x -= $limit;
- my $B = 6e-16;
- my $C = 15e-07;
+ my $B = 6;
+ my $C = 15e9;
$B * $x ** 2 + $C * $x + $A * $limit;
}
}
-#- search package with given name and compatible with current architecture.
+# Based on Rpmdrake::pkg::extract_header():
+sub get_pkg_info {
+ my ($p) = @_;
+
+ my $urpm = $::o->{packages};
+ my $name = $p->fullname;
+
+ my $medium = URPM::pkg2media($urpm->{media}, $p);
+ my ($local_source, %xml_info_pkgs, $description);
+ my $dir = urpm::file_from_local_url($medium->{url});
+ $local_source = "$dir/" . $p->filename if $dir;
+
+ if (-s $local_source) {
+ log::l("getting information from $dir...");
+ $p->update_header($local_source) and $description = $p->description;
+ log::l("Warning, could not extract header for $name from $medium!") if !$description;
+ }
+ if (!$description) {
+ my $_w = $::o->wait_message(undef, N("Getting package information from XML meta-data..."));
+ if (my $xml_info_file = eval { urpm::media::any_xml_info($urpm, $medium, 'info', undef, urpm::download::sync_logger) }) {
+ require urpm::xml_info;
+ require urpm::xml_info_pkg;
+ log::l("getting information from $xml_info_file");
+ my %nodes = eval { urpm::xml_info::get_nodes('info', $xml_info_file, [ $name ]) };
+ goto header_non_available if $@;
+ put_in_hash($xml_info_pkgs{$name} ||= {}, $nodes{$name});
+ } else {
+ $urpm->{info}(N("No xml info for medium \"%s\", only partial result for package %s", $medium->{name}, $name));
+ }
+ }
+
+ if (!$description && $xml_info_pkgs{$name}) {
+ $description = $xml_info_pkgs{$name}{description};
+ }
+ header_non_available:
+ $description || N("No description");
+}
+
+sub packagesProviding {
+ my ($packages, $name) = @_;
+ grep { $_->is_arch_compat } URPM::packages_providing($packages, $name);
+}
+
+#- search package with given name (and optional ISA) and compatible with current architecture.
#- take the best one found (most up-to-date).
+# FIXME: reuse urpmi higher level code instead!
sub packageByName {
my ($packages, $name) = @_;
- my @l = grep { $_->is_arch_compat && $_->name eq $name } URPM::packages_providing($packages, $name);
+ my $basename = $name =~ s/\(x86-..\)$//r;
+ my @l = sort { $b->id <=> $a->id } grep { $_->name eq $basename } packagesProviding($packages, $name);
my $best;
foreach (@l) {
if ($best && $best != $_) {
- $_->compare_pkg($best) > 0 and $best = $_;
+ if ($best->fullname eq $_->fullname) {
+ $best = $_ if $_->flag_installed;
+ } else {
+ $_->compare_pkg($best) > 0 and $best = $_;
+ }
} else {
$best = $_;
}
@@ -128,19 +150,32 @@ sub packageByName {
$best;
}
-sub bestKernelPackage {
- my ($packages, $o_match_all_hardware) = @_;
+sub _is_kernelServer_needed() {
+ # forbid selecting kernel-server if not having PAE since PAE support is mandatory for kernel-server:
+ return if !detect_devices::has_cpu_flag('pae');
+ arch() =~ /i.86/ && detect_devices::isServer();
+}
+
+sub _bestKernel_extensions {
+ my ($o_match_all_hardware) = @_;
- my @preferred_exts =
- $o_match_all_hardware ? (arch() =~ /i.86/ ? '-desktop586' : '-desktop') :
- detect_devices::is_xbox() ? '-xbox' :
- detect_devices::is_i586() ? '-desktop586' :
- detect_devices::isLaptop() ? '-laptop' :
- detect_devices::dmi_detect_memory() > 3.8 * 1024 ? '-server' :
+ $::o->{kernel_extension} ? $::o->{kernel_extension} :
+ _is_kernelServer_needed() ? '-server' :
'-desktop';
+}
+sub bestKernelPackage {
+ my ($packages, $o_match_all_hardware) = @_;
+
+ my @preferred_exts = _bestKernel_extensions($o_match_all_hardware);
my @kernels = grep { $_ } map { packageByName($packages, "kernel$_-latest") } @preferred_exts;
+ if (!@kernels) {
+ #- fallback on most generic kernel if the suitable one is not available
+ my @fallback_exts = _bestKernel_extensions('force');
+ @kernels = grep { $_ } map { packageByName($packages, "kernel$_-latest") } @fallback_exts;
+ }
+
log::l("bestKernelPackage (" . join(':', @preferred_exts) . "): " . join(' ', map { $_->name } @kernels) . (@kernels > 1 ? ' (choosing the first)' : ''));
$kernels[0];
@@ -150,15 +185,16 @@ sub packagesToInstall {
my ($packages) = @_;
my @packages;
foreach (@{$packages->{media}}) {
- $_->{selected} or next;
+ !$_->{ignore} or next;
log::l("examining packagesToInstall of medium $_->{name}");
push @packages, grep { $_->flag_selected } install::media::packagesOfMedium($packages, $_);
}
- log::l("found " . scalar(@packages) . " packages to install");
+ log::l("found " . scalar(@packages) . " packages to install: " . formatList(5, map { scalar $_->fullname } @packages));
+
@packages;
}
-sub packageRequest {
+sub _packageRequest {
my ($packages, $pkg) = @_;
#- check if the same or better version is installed,
@@ -167,7 +203,8 @@ sub packageRequest {
#- check for medium selection, if the medium has not been
#- selected, the package cannot be selected.
- packageMedium($packages, $pkg)->{selected} or return;
+ my $medium = packageMedium($packages, $pkg);
+ $medium && !$medium->{ignore} or return;
+{ $pkg->id => 1 };
}
@@ -177,20 +214,25 @@ sub packageCallbackChoices {
if ($prefered && @$prefered) {
@$prefered;
- } elsif (my @l = packageCallbackChoices_($urpm, $choices)) {
+ } elsif (my @l = _packageCallbackChoices_($urpm, $choices, $virtual_pkg_name)) {
@l;
} else {
- log::l("packageCallbackChoices: default choice from " . join(",", map { $_->name } @$choices) . " for $virtual_pkg_name");
+ log::l("packageCallbackChoices: default choice ('" . $choices->[0]->name . "') from " . join(",", map { $_->name } @$choices) . " for $virtual_pkg_name");
$choices->[0];
}
}
-sub packageCallbackChoices_ {
- my ($urpm, $choices) = @_;
+sub _packageCallbackChoices_ {
+ my ($urpm, $choices, $virtual_pkg_name) = @_;
- my ($prefer, $_other) = urpm::select::get_preferred($urpm, $choices, '');
+ my ($prefer, $_other) = urpm::select::get_preferred($urpm, $choices, $::o->{preferred_packages});
if (@$prefer) {
@$prefer;
+ } elsif ($virtual_pkg_name eq 'kernel') {
+ my $re = join('|', map { "kernel\Q$_-2" } _bestKernel_extensions());
+ my @l = grep { $_->name =~ $re } @$choices;
+ log::l("packageCallbackChoices: kernel chosen ", join(",", map { $_->name } @l), " in ", join(",", map { $_->name } @$choices));
+ @l;
} elsif ($choices->[0]->name =~ /^kernel-(.*source-|.*-devel-)/) {
my @l = grep {
if ($_->name =~ /^kernel-.*source-stripped-(.*)/) {
@@ -241,20 +283,27 @@ sub select_by_package_names_or_die {
foreach (@$names) {
my $p = packageByName($packages, $_) or die "package $_ not found";
!$p->flag_installed && !$p->flag_selected or next;
- my ($_pkgs, $error) = selectPackage_with_error($packages, $p, $b_base);
+ my ($_pkgs, $error) = _selectPackage_with_error($packages, $p, $b_base);
$error and die N("Some packages requested by %s cannot be installed:\n%s", $_, $error);
}
}
-sub resolve_requested_and_check {
+my @recommended_package_ids;
+sub _resolve_requested_and_check {
my ($packages, $state, $requested) = @_;
my @l = $packages->resolve_requested($packages->{rpmdb}, $state, $requested,
- callback_choices => \&packageCallbackChoices);
+ callback_choices => \&packageCallbackChoices, no_recommends => $::o->{no_recommends});
+
+ #- keep track of recommended packages so that theys could be unselected if the "no recommends" option is choosen later:
+ if (!is_empty_hash_ref($state->{selected})) {
+ my @new_ids = map { $packages->{depslist}[$_]->id } grep { $state->{selected}{$_}{recommended} } keys %{$state->{selected}};
+ @recommended_package_ids = uniq(@recommended_package_ids, @new_ids);
+ }
my $error;
if (find { !exists $state->{selected}{$_} } keys %$requested) {
- my @rejected = urpm::select::unselected_packages($packages, $state);
+ my @rejected = urpm::select::unselected_packages($state);
$error = urpm::select::translate_why_unselected($packages, $state, @rejected);
log::l("ERROR: selection failed: $error");
}
@@ -264,18 +313,18 @@ sub resolve_requested_and_check {
sub selectPackage {
my ($packages, $pkg, $b_base) = @_;
- my ($pkgs, $_error) = selectPackage_with_error($packages, $pkg, $b_base);
+ my ($pkgs, $_error) = _selectPackage_with_error($packages, $pkg, $b_base);
@$pkgs;
}
-sub selectPackage_with_error {
+sub _selectPackage_with_error {
my ($packages, $pkg, $b_base) = @_;
my $state = $packages->{state} ||= {};
$packages->{rpmdb} ||= rpmDbOpen();
- my ($pkgs, $error) = resolve_requested_and_check($packages, $state, packageRequest($packages, $pkg) || {});
+ my ($pkgs, $error) = _resolve_requested_and_check($packages, $state, _packageRequest($packages, $pkg) || {});
if ($b_base) {
$_->set_flag_base foreach @$pkgs;
@@ -302,7 +351,13 @@ sub unselectAllPackages {
my %keep_selected;
log::l("unselecting all packages...");
foreach (@{$packages->{depslist}}) {
- if ($_->flag_base || $_->flag_installed && $_->flag_selected) {
+ my $to_select = $_->flag_base || $_->flag_installed && $_->flag_selected;
+ # unselect recommended packages if minimal install:
+ if ($::o->{no_recommends} && member($_->id, @recommended_package_ids)) {
+ log::l("unselecting recommended package " . $_->name);
+ undef $to_select;
+ }
+ if ($to_select) {
#- keep track of packages that should be kept selected.
$keep_selected{$_->id} = $_;
} else {
@@ -313,34 +368,71 @@ sub unselectAllPackages {
}
#- clean state, in order to start with a brand new set...
$packages->{state} = {};
- resolve_requested_and_check($packages, $packages->{state}, \%keep_selected);
+ _resolve_requested_and_check($packages, $packages->{state}, \%keep_selected);
+}
+
+
+my (@errors, $push_errors);
+sub start_pushing_error() {
+ $push_errors = 1;
+ undef @errors;
+}
+
+sub popup_errors() {
+ if (@errors) {
+ $::o->ask_warn(undef, N("An error occurred:") . "\n\n" . join("\n", @errors));
+ }
+ undef $push_errors;
}
sub empty_packages {
my ($o_keep_unrequested_dependencies) = @_;
- my $packages = new URPM;
+ my $packages = urpm->new;
+ urpm::get_global_options($packages);
+ urpm::set_files($packages, '/mnt');
#- add additional fields used by DrakX.
- @$packages{qw(count media)} = (0, []);
+ $packages->{media} = [];
+ urpm::args::set_debug($packages) if $::o->{debug_urpmi};
$packages->{log} = \&log::l;
+ $packages->{info} = \&log::l;
+ $packages->{fatal} = sub {
+ log::l("urpmi error: $_[1] ($_[0])\n" . common::backtrace());
+ $::o->ask_warn(undef, N("A fatal error occurred: %s.", "$_[1] ($_[0])"));
+ };
+ $packages->{error} = sub {
+ log::l("urpmi error: $_[0]");
+ if ($push_errors) {
+ push @errors, @_;
+ return;
+ }
+ $::o->ask_warn(undef, N("An error occurred:") . "\n\n" . $_[0]);
+ };
+ $packages->{root} = $::prefix;
$packages->{prefer_vendor_list} = '/etc/urpmi/prefer.vendor.list';
$packages->{keep_unrequested_dependencies} =
defined($o_keep_unrequested_dependencies) ? $o_keep_unrequested_dependencies : 1;
+ $urpm::args::options{justdb} = $::o->{justdb};
+ urpm::set_tune_rpm($packages, $::o->{'tune-rpm'}) if $::o->{'tune-rpm'};
+ $::force = 1;
+ $packages->{options}{ignoresize} = 1;
+ $packages->{options}{retry} = 3;
+ $packages->{options}{downloader} = $::o->{options}{downloader};
+ # prevent priority upgrade (redundant for now as $urpm->{root} implies disabling it:
+ $packages->{options}{'priority-upgrade'} = undef;
+ # log $trans->add() faillure; FIXME: should we override *urpm::msg::sys_log?
+ $packages->{debug} = $packages->{debug_URPM} = \&log::l;
+ $urpm::args::options{deploops} = $::o->{deploops};
+ $packages->{options}{'curl-options'} = $::o->{curl_options} if $::o->{curl_options};
$packages;
}
-sub read_rpmsrate {
- my ($packages, $rpmsrate_flags_chosen, $file, $match_all_hardware) = @_;
- require pkgs;
- pkgs::read_rpmsrate($packages, $rpmsrate_flags_chosen, $file, $match_all_hardware);
-}
-
sub readCompssUsers {
my ($file) = @_;
- my $f = common::open_file($file) or log::l("can not find $file: $!"), return;
+ my $f = common::open_file($file) or log::l("cannot find $file: $!"), return;
my ($compssUsers, $gtk_display_compssUsers) = eval join('', <$f>);
if ($@) {
log::l("ERROR: bad $file: $@");
@@ -371,32 +463,41 @@ sub setSelectedFromCompssList {
my ($packages, $rpmsrate_flags_chosen, $min_level, $max_size) = @_;
$rpmsrate_flags_chosen->{TRUE} = 1; #- ensure TRUE is set
my $nb = selectedSize($packages);
- foreach my $p (sort { $b->rate <=> $a->rate } @{$packages->{depslist}}) {
+
+ my %pkgs;
+ foreach my $p (@{$packages->{depslist}}) {
my @flags = $p->rflags;
- next if
+ next if
!$p->rate || $p->rate < $min_level ||
- any { !any { /^!(.*)/ ? !$rpmsrate_flags_chosen->{$1} : $rpmsrate_flags_chosen->{$_} } split('\|\|') } @flags;
-
- #- determine the packages that will be selected when
- #- selecting $p. the packages are not selected.
+ any { !any { /^!(.*)/ ? !$rpmsrate_flags_chosen->{$1} : $rpmsrate_flags_chosen->{$_} } split('\|\|') } @flags;
+ $pkgs{$p->rate} ||= {};
+ $pkgs{$p->rate}{$p->id} = 1 if _packageRequest($packages, $p);
+ }
+ my %pkgswanted;
+ foreach my $level (sort { $b <=> $a } keys %pkgs) {
+ #- determine the packages that will be selected
+ #- the packages are not selected.
my $state = $packages->{state} ||= {};
-
- my ($l, $_error) = resolve_requested_and_check($packages, $state, packageRequest($packages, $p) || {});
-
+ foreach my $p (keys %{$pkgs{$level}}) {
+ $pkgswanted{$p} = 1;
+ }
+ my ($l, $_error) = _resolve_requested_and_check($packages, $state, \%pkgswanted);
+
#- this enable an incremental total size.
my $old_nb = $nb;
foreach (@$l) {
$nb += $_->size;
}
if ($max_size && $nb > $max_size) {
+ log::l("disabling selected packages because too big for level $level: $nb > $max_size");
$nb = $old_nb;
- $min_level = $p->rate;
+ $min_level = $level;
$packages->disable_selected($packages->{rpmdb}, $state, @$l);
last;
}
}
my @flags = map_each { if_($::b, $::a) } %$rpmsrate_flags_chosen;
- log::l("setSelectedFromCompssList: reached size ", formatXiB($nb), ", up to indice $min_level (less than ", formatXiB($max_size), ") for flags ", join(' ', sort @flags));
+ log::l("setSelectedFromCompssList: reached size ", int($nb / 1024/1024), "MB, up to indice $min_level (less than ", formatXiB($max_size), ") for flags ", join(' ', sort @flags));
log::l("setSelectedFromCompssList: ", join(" ", sort map { $_->name } grep { $_->flag_selected } @{$packages->{depslist}}));
$min_level;
}
@@ -406,7 +507,7 @@ sub setSelectedFromCompssList {
sub saveSelected {
my ($packages) = @_;
my $state = delete $packages->{state};
- my @l = @{$packages->{depslist}};
+ my @l = @{$packages->{depslist} || []};
my @flags = map { ($_->flag_requested && 1) + ($_->flag_required && 2) + ($_->flag_upgrade && 4) } @l;
[ $packages, $state, \@l, \@flags ];
}
@@ -420,52 +521,54 @@ sub restoreSelected {
} $l, $flags;
}
-sub computeGroupSize {
- my ($packages, $min_level) = @_;
-
- sub inside {
- my ($l1, $l2) = @_;
- my $i = 0;
- return if @$l1 > @$l2;
- foreach (@$l1) {
- my $c;
- while ($c = $l2->[$i++] cmp $_) {
- return if $c == 1 || $i > @$l2;
- }
- }
- 1;
+sub _inside {
+ my ($l1, $l2) = @_;
+ my $i = 0;
+ return if @$l1 > @$l2;
+ foreach (@$l1) {
+ my $c;
+ while ($c = $l2->[$i++] cmp $_) {
+ return if $c == 1 || $i > @$l2;
+ }
}
+ 1;
+}
- sub or_ify {
- my ($first, @other) = @_;
- my @l = split('\|\|', $first);
- foreach (@other) {
- @l = map {
- my $n = $_;
- map { "$_&&$n" } @l;
- } split('\|\|');
- }
- @l;
+sub _or_ify {
+ my ($first, @other) = @_;
+ my @l = split('\|\|', $first);
+ foreach (@other) {
+ @l = map {
+ my $n = $_;
+ map { "$_&&$n" } @l;
+ } split('\|\|');
+ }
+ @l;
+}
+sub _or_clean {
+ my ($flags) = @_;
+ my @l = split("\t", $flags);
+ @l = map { [ sort split('&&') ] } @l;
+ my @r;
+ B: while (@l) {
+ my $e = shift @l;
+ foreach (@r, @l) {
+ _inside($_, $e) and next B;
+ }
+ push @r, $e;
}
+ join("\t", map { join('&&', @$_) } @r);
+}
+
+
+sub computeGroupSize {
+ my ($packages, $min_level) = @_;
+ my (%group, %memo);
+
my %or_ify_cache;
my $or_ify_cached = sub {
- $or_ify_cache{$_[0]} ||= join("\t", or_ify(split("\t", $_[0])));
+ $or_ify_cache{$_[0]} ||= join("\t", _or_ify(split("\t", $_[0])));
};
- sub or_clean {
- my ($flags) = @_;
- my @l = split("\t", $flags);
- @l = map { [ sort split('&&') ] } @l;
- my @r;
- B: while (@l) {
- my $e = shift @l;
- foreach (@r, @l) {
- inside($_, $e) and next B;
- }
- push @r, $e;
- }
- join("\t", map { join('&&', @$_) } @r);
- }
- my (%group, %memo);
log::l("install::pkgs::computeGroupSize");
my $time = time();
@@ -495,8 +598,8 @@ sub computeGroupSize {
$newSelection{$id} = undef;
my $pkg = $packages->{depslist}[$id];
- my @requires = map { [ $_, keys %{$packages->{provides}{$_} || {}} ] } $pkg->requires_nosense;
- foreach (sort { @$a <=> @$b } @requires) { #- sort on number of provides (it helps choosing "b" in: "a" requires both "b" and virtual={"b","c"})
+ my @deps = map { [ $_, keys %{$packages->{provides}{$_} || {}} ] } $pkg->requires_nosense, $pkg->recommends_nosense;
+ foreach (sort { @$a <=> @$b } @deps) { #- sort on number of provides (it helps choosing "b" in: "a" requires both "b" and virtual={"b","c"})
my ($virtual, @choices) = @$_;
if (@choices <= 1) {
#- only one choice :)
@@ -507,7 +610,7 @@ sub computeGroupSize {
if (find { $_->flag_available } @choices_pkgs) {
@choices = (); #- one package is already selected (?)
} else {
- @choices = map { $_->id } packageCallbackChoices($packages, undef, undef, \@choices_pkgs, $virtual);
+ @choices = map { $_->id } packageCallbackChoices($packages, undef, undef, \@choices_pkgs, $virtual, undef);
}
}
push @l2, @choices;
@@ -519,7 +622,7 @@ sub computeGroupSize {
next if $p->flag_selected; #- always installed (accounted in system_size)
my $s = $group{$p->name} || $or_ify_cached->(join("\t", $p->rflags));
my $m = "$flags\t$s";
- $group{$p->name} = ($memo{$m} ||= or_clean($m));
+ $group{$p->name} = ($memo{$m} ||= _or_clean($m));
}
}
my (%sizes, %pkgs);
@@ -534,7 +637,7 @@ sub computeGroupSize {
}
-sub openInstallLog() {
+sub _openInstallLog() {
my $f = "$::prefix/root/drakx/install.log";
open(my $LOG, ">> $f") ? log::l("opened $f") : log::l("Failed to open $f. No install log will be kept."); #-#
CORE::select((CORE::select($LOG), $| = 1)[0]);
@@ -542,31 +645,35 @@ sub openInstallLog() {
$LOG;
}
-sub rpmDbOpen {
- my ($b_rebuild_needed, $o_rpm_dbapi) = @_;
+sub _rebuild_RPM_DB() {
+ if (my $pid = fork()) {
+ waitpid $pid, 0;
+ $? & 0xff00 and die "rebuilding of rpm database failed";
+ } else {
+ log::l("rebuilding rpm database");
+ my $rebuilddb_dir = "$::prefix/var/lib/rpmrebuilddb.$$";
+ if (-d $rebuilddb_dir) {
+ log::l("removing stale directory $rebuilddb_dir");
+ rm_rf($rebuilddb_dir);
+ }
- clean_rpmdb_shared_regions();
-
- if (my $wanted_dbapi = $o_rpm_dbapi) {
- log::l("setting %_dbapi to $wanted_dbapi");
- substInFile { s/%_dbapi.*//; $_ .= "%_dbapi $wanted_dbapi\n" if eof } "$::prefix/etc/rpm/macros";
- URPM::add_macro("_dbapi $wanted_dbapi");
+ if (!URPM::DB::rebuild($::prefix)) {
+ log::l("rebuilding of rpm database failed: " . URPM::rpmErrorString());
+ c::_exit(2);
+ }
+
+ c::_exit(0);
}
+}
- if ($b_rebuild_needed && !$o_rpm_dbapi) {
- if (my $pid = fork()) {
- waitpid $pid, 0;
- $? & 0xff00 and die "rebuilding of rpm database failed";
- } else {
- log::l("rebuilding rpm database");
- my $rebuilddb_dir = "$::prefix/var/lib/rpmrebuilddb.$$";
- -d $rebuilddb_dir and log::l("removing stale directory $rebuilddb_dir"), rm_rf($rebuilddb_dir);
+sub rpmDbOpen {
+ my ($b_rebuild_if_needed) = @_;
- URPM::DB::rebuild($::prefix) or log::l("rebuilding of rpm database failed: " . URPM::rpmErrorString()), c::_exit(2);
+ clean_rpmdb_shared_regions();
- c::_exit(0);
- }
- }
+ my $need_rebuild = $b_rebuild_if_needed && !URPM::DB::verify($::prefix);
+
+ _rebuild_RPM_DB() if $need_rebuild;
my $db;
if ($db = URPM::DB::open($::prefix)) {
@@ -620,6 +727,7 @@ sub selectPackagesAlreadyInstalled {
my %sizes;
$packages->{rpmdb}->traverse(sub {
my ($p) = @_;
+ $sizes{$p->name} ||= 0;
$sizes{$p->name} += $p->size;
});
$packages->{sizes} = \%sizes;
@@ -641,89 +749,25 @@ sub selectPackagesToUpgrade {
log::l("selected pkgs to upgrade: " . join(' ', map { $packages->{depslist}[$_]->name } keys %selection));
log::l("resolving dependencies...");
- resolve_requested_and_check($packages, $state, \%selection);
+ _resolve_requested_and_check($packages, $state, \%selection);
log::l("...done");
log::l("finally selected pkgs: ", join(" ", sort map { $_->name } grep { $_->flag_selected } @{$packages->{depslist}}));
}
-sub installTransactionClosure {
- my ($packages, $id2pkg, $isUpgrade) = @_;
-
- foreach (grep { !$_->{selected} } @{$packages->{media}}) {
- foreach ($_->{start} .. $_->{end}) {
- delete $id2pkg->{$_};
- }
- }
-
- my @l = ikeys %$id2pkg;
- my $medium;
-
- #- search first usable medium (media are sorted).
- foreach (@{$packages->{media}}) {
- if ($l[0] <= $_->{end}) {
- #- we have a candidate medium, it could be the right one containing
- #- the first package of @l...
- $l[0] >= $_->{start} and $medium = $_, last;
- #- ... but it could be necessary to find the first
- #- medium containing package of @l.
- foreach my $id (@l) {
- $id >= $_->{start} && $id <= $_->{end} and $medium = $_, last;
- }
- $medium and last;
- }
- }
- $medium or return (); #- no more medium usable -> end of installation by returning empty list.
-
- #- it is sure at least one package will be installed according to medium chosen.
- {
- my $pkg = $packages->{depslist}[$l[0]];
- my $rpm = install::media::rel_rpm_file($medium, $pkg->filename);
- if ($install::media::postinstall_rpms && -e "$install::media::postinstall_rpms/$rpm") {
- #- very special case where the rpm has been copied on disk
- } elsif (!install::media::change_phys_medium($medium->{phys_medium}, $rpm, $packages)) {
- #- keep in mind the asked medium has been refused.
- #- this means it is no longer selected.
- #- (but do not unselect supplementary CDs.)
- $medium->{selected} = 0;
- }
- }
-
- if (my $p = packageByName($packages, 'mdv-rpm-summary')) {
- #- if it is selected, make it the first package
- exists $id2pkg->{$p->id} and unshift @l, $p->id;
- }
-
- my %closure;
- foreach my $id (@l) {
- my @l2 = $id;
-
- if ($isUpgrade && $id < 20) {
- #- HACK for upgrading to 2006.0: for the 20 first main packages, upgrade one by one
- #- why? well:
- #- * librpm is fucked up when ordering pkgs, pkg "setup" is removed before being installed.
- #- the result is /etc/group.rpmsave and no /etc/group
- #- * pkg locales requires basesystem, this is stupid, the result is a huge first transaction
- #- and it doesn't even help /usr/bin/locale_install.sh since it's not a requires(post)
- $closure{$id} = undef;
- last;
- }
-
- while (defined($id = shift @l2)) {
- exists $closure{$id} and next;
- $closure{$id} = undef;
-
- my $pkg = $packages->{depslist}[$id];
- foreach ($pkg->requires_nosense) {
- if (my $dep_id = find { $id2pkg->{$_} } keys %{$packages->{provides}{$_} || {}}) {
- push @l2, $dep_id;
- }
- }
- }
-
- keys %closure >= $limitMinTrans and last;
- }
-
- map { delete $id2pkg->{$_} } grep { $id2pkg->{$_} } ikeys %closure;
+sub _filter_packages {
+ my ($retry, $packages, @packages) = @_;
+ grep {
+ if ($_->flag_installed || packageMedium($packages, $_)->{ignore}) {
+ if ($_->name eq 'mga-rpm-summary' && $_->flag_installed) {
+ install::pkgs::setup_rpm_summary_translations();
+ }
+ $_->free_header;
+ 0;
+ } else {
+ log::l("failed to install " . $_->fullname . " (will retry)") if !$retry;
+ 1;
+ }
+ } @packages;
}
sub install {
@@ -740,167 +784,180 @@ sub install {
my $loop_boot = fs::loopback::prepare_boot();
#- first stage to extract some important information
- #- about the selected packages. This is used to select
- #- one or many transactions.
- my ($total, $nb);
+ #- about the selected packages.
+ my ($total, $nb) = (0, 0);
foreach my $pkg (@$toInstall) {
$packages{$pkg->id} = $pkg;
$nb++;
- $total += to_int($pkg->size); #- do not correct for upgrade!
+ $total += $pkg->size; #- do not correct for upgrade!
}
log::l("install::pkgs::install $::prefix");
log::l("install::pkgs::install the following: ", join(" ", map { $_->name } values %packages));
URPM::read_config_files();
- URPM::add_macro(join(' ', '__dbi_cdb', URPM::expand('%__dbi_cdb'), 'nofsync'));
- my $LOG = openInstallLog();
+ # force loading libnss*
+ getgrent();
+ URPM::add_macro(join(' ', '__dbi_other', URPM::expand('%__dbi_other'), 'nofsync'));
+ my $LOG = _openInstallLog();
+
+ $packages->{log} = $packages->{info} = $packages->{print} = sub {
+ print $LOG "$_[0]\n";
+ };
#- do not modify/translate the message used with installCallback since
#- these are keys during progressing installation, or change in other
#- place (install::steps_gtk.pm,...).
$callback->($packages, user => undef, install => $nb, $total);
- do {
- my @transToInstall = installTransactionClosure($packages, \%packages, $isUpgrade);
- $nb = values %packages;
-
- #- added to exit typically after last media unselected.
- if ($nb == 0 && scalar(@transToInstall) == 0) {
- cleanHeaders();
-
- fs::loopback::save_boot($loop_boot);
- return;
- }
-
- #- extract headers for parent as they are used by callback.
- extractHeaders(\@transToInstall, $packages->{media});
-
- my ($retry, $retry_count);
- while (@transToInstall) {
- my $retry_pkg = $retry && $transToInstall[0];
-
- if ($retry) {
- log::l("retrying installing package " . $retry_pkg->fullname . " alone in a transaction ($retry_count)");
- }
- _install_raw($packages, [ $retry ? $retry_pkg : @transToInstall ],
- $isUpgrade, $callback, $LOG, $retry_pkg);
-
- @transToInstall = grep {
- if ($_->flag_installed || !packageMedium($packages, $_)->{selected}) {
- if ($_->name eq 'mdv-rpm-summary' && $_->flag_installed) {
- install::pkgs::setup_rpm_summary_translations();
- }
- $_->free_header;
- 0;
- } else {
- log::l("failed to install " . $_->fullname . " (will retry)") if !$retry;
- 1;
- }
- } @transToInstall;
-
- if (@transToInstall) {
- if (!$retry || $retry_pkg != $transToInstall[0]) {
- #- go to next
- $retry_count = 1;
- } elsif ($retry_pkg == $transToInstall[0] && $retry_count < 3) {
- $retry_count++;
- } else {
- log::l("failed to install " . $retry_pkg->fullname);
-
- my $medium = packageMedium($packages, $retry_pkg);
- my $name = $retry_pkg->fullname;
- my $rc = cdie("error installing package list: $name $medium->{name}");
- if ($rc eq 'retry') {
- $retry_count = 1;
- } else {
- if ($rc eq 'disable_media') {
- $medium->{selected} = 0;
- }
- $retry_pkg->set_flag_requested(0);
- $retry_pkg->set_flag_required(0);
-
- #- dropping it
- $retry_pkg->free_header;
- shift @transToInstall;
- $retry_count = 1;
- }
- }
- $retry = 1;
- }
- }
- cleanHeaders();
- } while $nb > 0 && !$install::pkgs::cancel_install;
+ my $exit_code = _install_raw($packages, $isUpgrade, $callback, $LOG, 0);
log::l("closing install.log file");
close $LOG;
- cleanHeaders();
+ # prevent urpmi from trying to install them again (CHECKME: maybe uneeded):
+ $packages->{state} = {};
+
clean_rpmdb_shared_regions(); #- workaround librpm which is buggy when using librpm rooted and the just installed rooted library
fs::loopback::save_boot($loop_boot);
+
+ $exit_code;
+}
+
+sub _unselect_package {
+ my ($packages, $pkg) = @_;
+ #- update flag associated to package.
+ $pkg->set_flag_installed(1);
+ $pkg->set_flag_upgrade(0);
+ #- update obsoleted entry.
+ my $rejected = $packages->{state}{rejected};
+ foreach (keys %$rejected) {
+ if (delete $rejected->{$_}{closure}{$pkg->fullname}) {
+ %{$rejected->{$_}{closure}} or delete $rejected->{$_};
+ }
+ }
+}
+
+sub is_package_installed {
+ my ($db, $pkg) = @_;
+ my $check_installed;
+ $db->traverse_tag('name', [ $pkg->name ], sub {
+ my ($p) = @_;
+ $check_installed ||= $pkg->compare_pkg($p) == 0;
+ });
+ return $check_installed;
}
sub _install_raw {
- my ($packages, $transToInstall, $isUpgrade, $callback, $LOG, $noscripts) = @_;
-
- my $close = sub {
- my ($pkg) = @_;
- #- update flag associated to package.
- $pkg->set_flag_installed(1);
- $pkg->set_flag_upgrade(0);
- #- update obsoleted entry.
- my $rejected = $packages->{state}{rejected};
- foreach (keys %$rejected) {
- if (delete $rejected->{$_}{closure}{$pkg->fullname}) {
- %{$rejected->{$_}{closure}} or delete $rejected->{$_};
- }
- }
- };
+ my ($packages, $_isUpgrade, $callback, $LOG, $noscripts) = @_;
- my $db = open_rpm_db_rw() or die "error opening RPM database: ", URPM::rpmErrorString();
- my $trans = $db->create_transaction($::prefix);
+ # prevent warnings in install's logs:
+ local $ENV{LC_ALL} = 'C';
- log::l("opened rpm database for transaction of " . int(@$transToInstall) . " packages (isUpgrade=$isUpgrade)");
- foreach (@$transToInstall) {
- $trans->add($_, update => $isUpgrade ? 1 : 0)
- or log::l("add failed for " . $_->fullname);
- }
+ # let's be urpmi's compatible:
+ local $packages->{options}{noscripts} = $noscripts;
+ # leaks a fd per transaction (around ~100 for a typically gnome install, see #49097):
+ # bug present in 2009.0, 2008.1, 2008.0, ... (probably since r11141 aka when switching to rpm-4.2 in URPM-0.83)
+ local $packages->{options}{script_fd} = fileno $LOG;
- my @checks = $trans->check; @checks and log::l("check failed : " . join("\n ", @checks));
- $trans->order or die "error ordering package list: " . URPM::rpmErrorString();
- $trans->set_script_fd(fileno $LOG);
+ start_pushing_error();
log::l("rpm transactions start");
- my $fd; #- since we return the "fileno", perl does not know we're still using it, and so closes it, and :-(
- my @probs = $trans->run($packages, force => 1, nosize => 1,
- if_($noscripts, noscripts => 1),
- callback_open => sub {
- my ($packages, $_type, $id) = @_;
- &$callback;
- my $pkg = defined $id && $packages->{depslist}[$id];
- my $medium = packageMedium($packages, $pkg);
- my $f = $pkg && install::media::rel_rpm_file($medium, $pkg->filename);
- print $LOG "$f\n";
- undef $fd;
- $fd = getFile_($medium->{phys_medium}, $f);
- $fd ? fileno $fd : -1;
- }, callback_close => sub {
- my ($packages, $_type, $id) = @_;
+
+ my ($is_installing, $verify_just_closed);
+ my $exit_code = urpm::main_loop::run($packages, $packages->{state}, undef, undef, {
+ open_helper => sub {
+ &$callback;
+ $is_installing = 0;
+ },
+ verify => $callback,
+ close_helper => sub {
+ my ($db, $packages, $_type, $id) = @_;
&$callback;
+ return if !$is_installing; # don't check if it's installed if it's being verified
my $pkg = defined $id && $packages->{depslist}[$id] or return;
- my $check_installed;
- $db->traverse_tag('name', [ $pkg->name ], sub {
- my ($p) = @_;
- $check_installed ||= $pkg->compare_pkg($p) == 0;
- });
- $check_installed or log::l($pkg->name . " not installed, " . URPM::rpmErrorString());
- $check_installed and $close->($pkg);
- }, callback_inst => $callback,
- );
- log::l("transactions done, now trying to close still opened fd");
-
- @probs and die "installation of rpms failed:\n ", join("\n ", @probs);
+ print $LOG $pkg->fullname . "\n";
+ my $check_installed = is_package_installed($db, $pkg);
+ if ($pkg->name eq 'mga-rpm-summary' && $check_installed) {
+ install::pkgs::setup_rpm_summary_translations();
+ }
+
+ if ($check_installed) {
+ _unselect_package($packages, $pkg);
+ } else {
+ log::l($pkg->name . " not installed, " . URPM::rpmErrorString());
+ }
+ },
+ inst => sub {
+ &$callback;
+ $is_installing = 1;
+ },
+ trans => $callback,
+ # FIXME: implement already_installed_or_not_installable
+ bad_signature => sub {
+ my ($msg, $msg2) = @_;
+ $msg =~ s/:$/\n\n/m; # FIXME: to be fixed in urpmi after 2008.0 (sic!)
+ log::l($msg);
+ log::l($msg2);
+ return 0 if $packages->{options}{auto};
+ state $do_not_ask;
+ state $answer;
+ return $answer if $do_not_ask;
+ $answer = $::o->ask_from_({ messages => "$msg\n\n$msg2" }, [
+ { val => \$do_not_ask,
+ type => 'bool', text => N("Do not ask again"),
+ },
+ ]);
+ },
+ copy_removable => sub {
+ my ($medium) = @_;
+ $::o->ask_change_cd($medium);
+ },
+ is_canceled => sub {
+ return $install::pkgs::cancel_install;
+ },
+ trans_error_summary => sub {
+ my ($nok, $errors) = @_;
+ log::l($nok . " installation transactions failed");
+ log::l(join("\n", @$errors));
+ if (!$packages->{options}{auto}) {
+ $::o->ask_warn(N("Error"), N("%d installation transactions failed", $nok) . "\n\n" .
+ N("Installation of packages failed:") . "\n\n" . join("\n", @$errors));
+ }
+ },
+ completed => sub {
+ if (!$packages->{options}{auto}) {
+ popup_errors();
+ }
+ },
+ message => sub {
+ my ($title, $message) = @_;
+ log::l($message);
+ $::o->ask_warn($title, $message);
+ },
+ ask_yes_or_no => sub {
+ my ($title, $msg) = @_;
+ log::l($msg);
+ $::o->ask_yesorno($title, $msg);
+ },
+ ask_for_bad_or_missing => sub {
+ my ($_title, $msg) = @_;
+ log::l($msg);
+ state $do_not_ask;
+ state $answer;
+ return $answer if $do_not_ask;
+ $answer = $::o->ask_from_({ messages => $msg }, [
+ { val => \$do_not_ask, type => 'bool', text => N("Do not ask again"),
+ },
+ ]);
+ },
+ # Uneeded callbacks: success_summary
+ });
+
+ log::l("transactions done, now trying to close still opened fd; exit code=$exit_code");
+
+ $exit_code;
}
sub upgrade_by_removing_pkgs {
@@ -933,14 +990,14 @@ sub upgrade_by_removing_pkgs {
}
}
- my @was_installed = remove_pkgs_to_upgrade($packages, $callback, $extension);
+ my @was_installed = _remove_pkgs_to_upgrade($packages, $callback, $extension);
{
my @restore_files = qw(/etc/passwd /etc/group /etc/ld.so.conf);
foreach (@restore_files) {
rename "$::prefix$_.rpmsave", "$::prefix$_";
}
- install::any::create_minimal_files();
+ fs::any::create_minimal_files();
unlink $busy_var_tmp;
}
@@ -965,7 +1022,7 @@ sub upgrade_by_removing_pkgs {
sub removed_pkgs_to_upgrade_file() { "$::prefix/root/drakx/removed_pkgs_to_upgrade" }
-sub remove_pkgs_to_upgrade {
+sub _remove_pkgs_to_upgrade {
my ($packages, $callback, $extension) = @_;
my @to_remove;
@@ -990,7 +1047,7 @@ sub remove_pkgs_to_upgrade {
delete $packages->{rpmdb}; #- make sure rpmdb is closed before.
- remove(\@to_remove, $callback, noscripts => 1);
+ _remove(\@to_remove, $callback, noscripts => 1);
@was_installed;
}
@@ -1005,21 +1062,21 @@ sub remove_marked_ask_remove {
#- we are not checking depends since it should come when
#- upgrading a system. although we may remove some functionalities ?
- remove(\@to_remove, $callback, force => 1);
+ _remove(\@to_remove, $callback, force => 1);
delete $packages->{state}{ask_remove}{$_} foreach @to_remove;
}
-sub remove_raw {
+sub _remove_raw {
my ($to_remove, $callback, %run_transaction_options) = @_;
log::l("removing: " . join(' ', @$to_remove));
URPM::read_config_files();
- URPM::add_macro(URPM::expand('__dbi_cdb %__dbi_cdb nofsync'));
+ URPM::add_macro(URPM::expand('__dbi_other %__dbi_other nofsync'));
my $db = open_rpm_db_rw() or die "error opening RPM database: ", URPM::rpmErrorString();
- my $trans = $db->create_transaction($::prefix);
+ my $trans = $db->create_transaction;
#- stuff remove all packages that matches $p, not a problem since $p has name-version-release format.
$trans->remove($_) foreach @$to_remove;
@@ -1028,20 +1085,20 @@ sub remove_raw {
$trans->run(undef, %run_transaction_options, callback_uninst => $callback);
}
-sub remove {
+sub _remove {
my ($_to_remove, $_callback, %run_transaction_options) = @_;
- my @pbs = &remove_raw;
+ my @pbs = &_remove_raw;
if (@pbs && !$run_transaction_options{noscripts}) {
$run_transaction_options{noscripts} = 1;
- @pbs = &remove_raw;
+ @pbs = &_remove_raw;
}
if (@pbs) {
die "removing of old rpms failed:\n ", join("\n ", @pbs);
}
}
-sub setup_rpm_summary_translations {
+sub setup_rpm_summary_translations() {
my @domains = qw(rpm-summary-contrib rpm-summary-devel rpm-summary-main);
push @::textdomains, @domains;
foreach (@domains) {
@@ -1072,111 +1129,4 @@ sub selected_leaves {
[ map { $_->name } grep { ! exists $required_ids{$_->id} } @l ];
}
-sub naughtyServers_list {
- my ($quiet) = @_;
-
- my @_old_81 = qw(
-freeswan
-);
- my @_old_82 = qw(
-vnc-server
-postgresql-server
-);
-
- my @_old_92 = qw(
-postfix ypbind bind ibod
-);
-
- my @_removed_92 = qw(
-mcserv
-samba
-lpr
-);
-
- my @_moved_to_contrib_92 = qw(
-boa
-LPRng
-wu-ftpd
-am-utils
-);
-
- my @new_80 = qw(
-jabber
-am-utils
-boa
-cups
-drakxtools-http
-finger-server
-imap
-leafnode
-ntp
-openssh-server
-pidentd
-proftpd
-rwall
-squid
-webmin
-wu-ftpd
-);
-
- my @new_81 = qw(
-ftp-server-krb5
-telnet-server-krb5
-ypserv
-);
-
- my @new_82 = qw(
-LPRng
-inn
-netatalk
-nfs-utils
-rusers-server
-samba-swat
-tftp-server
-ucd-snmp
-);
-
- my @new_92 = qw(
-clusternfs
-gkrellm-server
-mon
-net-snmp
-openldap-servers
-samba-server
-saned
-vsftpd
-);
-
- my @new_2006 = qw(
-apache-conf
-bpalogin
-cfengine-cfservd
-freeradius
-mDNSResponder
-openslp
-pxe
-routed
-sendmail
-spamassassin-spamd
-);
-
- my @not_warned = qw(
-lisa
-nfs-utils-clients
-portmap
-howl
-); # X server
-
- (@new_80, @new_81, @new_82, @new_92, @new_2006, if_(!$quiet, @not_warned));
-}
-
-sub naughtyServers {
- my ($packages) = @_;
-
- grep {
- my $p = packageByName($packages, $_);
- $p && $p->flag_selected;
- } naughtyServers_list('quiet');
-}
-
1;
diff --git a/perl-install/install/share/aliases b/perl-install/install/share/aliases
index 9e62eb124..f58e6b9ca 100644
--- a/perl-install/install/share/aliases
+++ b/perl-install/install/share/aliases
@@ -1,6 +1,11 @@
+/etc/ndiswrapper /mnt/etc/ndiswrapper
+/sbin/loadndisdriver /mnt/sbin/loadndisdriver
/bin/gunzip gzip
/usr/bin/install2 ../lib/libDrakX/install/install2
/usr/bin/commands ../lib/libDrakX/install/commands
/usr/bin/runinstall2 install2
/sbin/fsck.ext2 e2fsck
/lib/modules /modules
+/lib/firmware /firmware
+/sbin/hotplug /hotplug
+/usr/share/X11/xkb/compiled /tmp
diff --git a/perl-install/install/share/fonts.tar.bz2 b/perl-install/install/share/fonts.tar.bz2
deleted file mode 100644
index df08d4baf..000000000
--- a/perl-install/install/share/fonts.tar.bz2
+++ /dev/null
Binary files differ
diff --git a/perl-install/install/share/gdb-inst b/perl-install/install/share/gdb-inst
new file mode 100644
index 000000000..8cd7d837e
--- /dev/null
+++ b/perl-install/install/share/gdb-inst
@@ -0,0 +1,24 @@
+#!/bin/sh
+cat <<EOF
+You can now type "run" in order to start the installer from within the debugger.
+If it segfaults, you can:
+- go back to tty2 by pressing Alt+Ctlr+F2.
+- type "gcore" in order to generate a core file
+- type "exit" to go back to the shell.
+- you can then:
+ o either plug a USB key to your physical/virtual machine and copy the
+ core.XXXX file on it
+ o copy it to /mnt if you already passed the partitionning step ;
+ you can later retrieve it from another OS (dual boot) or using guestfish if
+ it's a virtual machine
+
+On a real Mageia system, you can then install the needed debuginfo packages and
+get a proper stack trace with GDB. You would probably need at least the
+following packages:
+ urpmi {glibc,perl{,-Glib,-Gtk2},glib2.0,gtk+2.0}-debuginfo
+
+
+WARNING: that keyboard is in QWERTY mode!!!!
+
+EOF
+exec gdb -q --args perl /usr/bin/install2
diff --git a/perl-install/install/share/generate-xlocales b/perl-install/install/share/generate-xlocales
index 1bf60d549..60607af7b 100755
--- a/perl-install/install/share/generate-xlocales
+++ b/perl-install/install/share/generate-xlocales
@@ -2,7 +2,7 @@
#
# Copyright (C) 2006 Mandriva
# Pablo Saraxtaga <pablo@mandriva.com>
-# Thierry Vignaud <tvignaud@mandriva.com>
+# Thierry Vignaud <thierry.vignaud.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/perl-install/install/share/gtk.css b/perl-install/install/share/gtk.css
new file mode 100644
index 000000000..3befe735c
--- /dev/null
+++ b/perl-install/install/share/gtk.css
@@ -0,0 +1,7 @@
+/* CSD for windows: */
+window, .window-frame {
+ border-width: 1px;
+ border: solid 1px alpha(black, 0.75);
+ border-radius: 7px 7px 0 0;
+}
+
diff --git a/perl-install/install/share/gtkrc b/perl-install/install/share/gtkrc
new file mode 100644
index 000000000..6d4b2f48c
--- /dev/null
+++ b/perl-install/install/share/gtkrc
@@ -0,0 +1 @@
+gtk-theme-name = "oxygen-gtk"
diff --git a/perl-install/install/share/keyboards.tar.bz2 b/perl-install/install/share/keyboards.tar.bz2
deleted file mode 100644
index c9765dc60..000000000
--- a/perl-install/install/share/keyboards.tar.bz2
+++ /dev/null
Binary files differ
diff --git a/perl-install/install/share/keymaps_generate b/perl-install/install/share/keymaps_generate
index 0265502c9..6a43556e5 100755
--- a/perl-install/install/share/keymaps_generate
+++ b/perl-install/install/share/keymaps_generate
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-use lib "..";
+use lib "/usr/lib/libDrakX";
use keyboard;
my $dir = "keymaps/usr/share/keymaps";
@@ -8,7 +8,7 @@ system("rm -rf keymaps ; mkdir -p keymaps/usr/share/keymaps");
foreach (keyboard::keyboards()) {
my $kmap = keyboard::keyboard2kmap($_);
- if (system("./kmap2bkmap $kmap > $dir/$kmap.bkmap 2>/dev/null") != 0) {
+ if (system("./kmap2bkmap $kmap > $dir/$kmap.bkmap") != 0) {
warn "unknown kmap $kmap\n";
unlink "$dir/$kmap.bkmap";
}
diff --git a/perl-install/install/share/kmap2bkmap b/perl-install/install/share/kmap2bkmap
index 58505dda0..9870ef3ef 100755
--- a/perl-install/install/share/kmap2bkmap
+++ b/perl-install/install/share/kmap2bkmap
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-use lib "..";
+use lib "/usr/lib/libDrakX";
use c;
my $KMAP_MAGIC = 0x8B39C07F;
@@ -8,10 +8,12 @@ my $KMAP_MAGIC = 0x8B39C07F;
BEGIN { @ARGV == 1 or die "usage: kmap2bkmap <keymap>\n" }
# load unicode keymap
-my $unimap = "$ARGV[0]" . ".uni";
+my $unimap = $ARGV[0] . ".uni";
system("sudo loadkeys $unimap") == 0 or die;
-open F, "dumpkeys -n -f |";
-<F> =~ /^keymaps\s+(.*)/ or die;
+open my $F, "dumpkeys -n -f |";
+<$F> =~ /^keymaps\s+(.*)/ or die;
+
+my @keymaps;
foreach (split ',', $1) {
my @l = /(\d+)-(\d+)/;
my ($i, $j) = @l ? @l : ($_,$_);
@@ -21,14 +23,15 @@ foreach (split ',', $1) {
print pack("I", $KMAP_MAGIC);
print map { pack "i", $keymaps[$_] || 0 } 0 .. c::MAX_NR_KEYMAPS()-1;
-foreach (<F>) {
+my @L;
+foreach (<$F>) {
s/\+0x/0x/g;
my ($keycode, $key, undef, @l) = split;
$keycode eq 'keycode' or next;
my $i = 0;
$L[$i++][$key] = hex $_ foreach @l;
}
-close F or die "dumpkeys failed";
+close $F or die "dumpkeys failed";
foreach (@L) {
foreach my $i (0 .. c::NR_KEYS()-1) {
diff --git a/perl-install/install/share/list.xml b/perl-install/install/share/list.xml
index f9f9a89cb..3c1100d34 100644
--- a/perl-install/install/share/list.xml
+++ b/perl-install/install/share/list.xml
@@ -1,78 +1,199 @@
<list no-arch-libraries="on">
<from expand="binary">
- ash echo
- cpio gzip bzip2
- <if-not ARCH="ppc">
- fdisk
- </if-not>
- <if ARCH="ppc">
- pdisk
- </if>
- insmod modinfo rmmod
+ ash dash.static echo
+ aria2c cp curl md5sum wget <!-- needed by urpmi -->
+ rpm rpmdb <!-- needed to rebuild database -->
+ cpio gzip bzip2 xz
+ grub2-editenv
+ insmod modinfo rmmod modprobe lsmod
+
+ <!-- block device tools -->
+ cryptsetup dmsetup
+ dmraid kpartx
+ fdisk
losetup
- lvm2 mdadm
+ lvm2 lvm lvs pvs vgs mdadm mdmon
+ quotacheck
+
+ <!-- virtualization integration -->
+ spice-vdagent spice-vdagentd
+ systemd-detect-virt
+
+ udevadm <!-- needed by mouse::detect & stage2 -->
+
+ <!-- FS tools -->
+ badblocks
+ mkswap swaplabel
+ mkfs.btrfs btrfs btrfsck fsck.btrfs btrfstune
+ mkfs.exfat tune.exfat
+ mkfs.ext2 mkfs.ext3 mkfs.ext4 e2fsck tune2fs dumpe2fs resize2fs
+ mkfs.f2fs fsck.f2fs resize.f2fs
+ mkfs.fat dosfslabel mlabel
+ mkfs.jfs fsck.jfs jfs_tune
+ mkfs.nilfs2 nilfs-tune nilfs-resize
+ mkfs.ntfs ntfsresize ntfslabel
+ mkfs.reiserfs resize_reiserfs reiserfstune
+ mkfs.xfs xfs_admin xfs_growfs
mount mount.nfs umount
+ xfs_freeze xfs_io <!-- needed for setup grub on XFS formated / -->
+ xfs_db <!-- needed by xfs_admin for setting UUID -->
+ tty stty <!-- needed for text mode installer (through unicode_start) -->
+
+ setfont kbd_mode
<mode copy="dereference">
- vol_id <!-- needed by libDrakX -->
+ Xorg
</mode>
+ xset
+ xkbcomp setxkbmap
+ libinput
- badblocks
- mkswap
- mkfs.ext2 mkfs.ext3 e2fsck tune2fs dumpe2fs resize2fs
-
- mkfs.reiserfs
- mkfs.xfs
- resize_reiserfs
- <if ARCH="i.86|x86_64|ia64">
- mkdosfs
- ntfsresize
- dmraid
- </if>
+ scrot <!-- for screenshots -->
+ perl
+ monitor-edid
<if ARCH="i.86|x86_64">
- mkfs.jfs fsck.jfs
+ monitor-get-edid-using-vbe
</if>
- quotacheck
-
- setfont kbd_mode
- Xorg xmodmap xset
- fb2png
- perl
- monitor-edid monitor-get-edid-using-vbe monitor-parse-edid monitor-get-edid
+ monitor-parse-edid monitor-get-edid
<filter subst="s!^echo!/bin/echo!">
unicode_start
</filter>
- <if ARCH="i.86|x86_64|ia64">
+ <if ARCH="i.86|x86_64">
dmidecode
</if>
<if ARCH="ia64">
efibootmgr
</if>
- <if ARCH="ppc">
- hattrib hcopy hcd
- hformat hmount humount
- </if>
-
<if set="DEBUG_INSTALL">
- strace bash less ps top gdb
+ strace bash less ps top gdb busybox cfdisk partprobe chroot grep vim-minimal rpm urpmi
</if>
</from>
+<!-- when adding udev rules, think whether they're needed in rescue too
+ (../../../rescue/list.xml) -->
+<from dir="/lib/udev/rules.d">
+ 10-dm.rules
+ 11-dm-lvm.rules
+ 13-dm-disk.rules
+ 50-udev-default.rules <!-- needed for input in X11 -->
+ 60-evdev.rules
+ 60-input-id.rules
+ 60-persistent-input.rules
+ 60-persistent-storage.rules
+ 60-sensor.rules
+ 61-x11-input.rules
+ 63-md-raid-arrays.rules
+ 64-md-raid-assembly.rules
+ 65-libwacom.rules
+ 70-mouse.rules
+ 70-spice-vdagentd.rules
+ 70-touchpad.rules
+ 70-uaccess.rules
+ 75-net-description.rules
+ 80-drivers.rules
+ 80-libinput-device-groups.rules
+ 80-net-setup-link.rules
+ 90-libinput-fuzz-override.rules
+ 95-dm-notify.rules
+</from>
+<from dir="/usr/lib/udev/hwdb.d">
+ <from expand="glob">
+ *.hwdb
+ </from>
+</from>
+
+<from dir="/usr/libexec">
+ Xorg
+ Xorg.wrap
+ <!-- needed by WebKit-4.1.typelib -->
+ webkit2gtk-4.1/WebKitNetworkProcess
+ webkit2gtk-4.1/WebKitWebProcess
+ <!-- glycin-loaders -->
+ glycin-loaders/2+/glycin-image-rs
+ glycin-loaders/2+/glycin-svg
+ <from expand="glob">
+ libinput/libinput-*
+ </from>
+</from>
+
+<from dir="/usr/LIB/imlib2/loaders"> <!-- for scrot/giblib -->
+ argb.so
+ jpeg.so
+ png.so
+ zlib.so
+</from>
+
+<!-- needed by Gtk3 introspection -->
+<from dir="/usr/LIB/girepository-1.0">
+ Atk-1.0.typelib
+ cairo-1.0.typelib
+ freetype2-2.0.typelib <!-- needed by WebKit-4.1.typelib -->
+ Gdk-3.0.typelib
+ GdkPixbuf-2.0.typelib
+ GdkPixdata-2.0.typelib
+ GdkX11-3.0.typelib
+ Gio-2.0.typelib
+ GLib-2.0.typelib
+ GModule-2.0.typelib
+ GObject-2.0.typelib
+ Gtk-3.0.typelib
+ HarfBuzz-0.0.typelib <!-- needed by Pango-1.0.typelib -->
+ JavaScriptCore-4.1.typelib <!-- needed by WebKit-4.1.typelib -->
+ Pango-1.0.typelib
+ Soup-3.0.typelib <!-- needed by WebKit-4.1.typelib -->
+ WebKit2-4.1.typelib
+ xlib-2.0.typelib
+</from>
+
<from dir="/usr/LIB/xorg/modules">
- libpcidata.so
drivers/fbdev_drv.so
+ <if ARCH="i.86|x86_64">
+ drivers/vesa_drv.so
+ libint10.so
+ </if>
+ input/libinput_drv.so
input/wacom_drv.so
- input/mouse_drv.so
- input/keyboard_drv.so
- linux/libfbdevhw.so
- libfb.so
+ libfbdevhw.so
libshadow.so
</from>
+<from dir="/usr/share/X11/xorg.conf.d">
+ <from expand="glob">
+ *.conf
+ </from>
+</from>
+
+<!-- fix "No GSettings schemas are installed on the system" -->
+<from dir="/usr/share/glib-2.0/schemas">
+ <from expand="glob">
+ gschema*
+ org.gnome.desktop.*
+ </from>
+</from>
+
+<!-- keyboard layouts -->
+<from dir="/usr/share/X11/xkb">
+ <filter subst="s!//.*!!">
+ geometry/pc
+ keycodes/aliases
+ keycodes/evdev
+ keycodes/xfree86
+ rules/base
+ rules/base.lst
+ <from expand="glob">
+ rules/evdev*
+ </from>
+ compat types
+ <from expand="glob">
+ symbols/*
+ </from>
+ </filter>
+</from>
+
<from dir="/usr/share/fonts/">
<to flatten="on">
misc/cursor.pcf.gz
@@ -81,16 +202,34 @@
TTF/dejavu/DejaVuSans-Bold.ttf
TTF/dejavu/DejaVuSans-BoldOblique.ttf
TTF/devanagari/raghu.ttf
- TTF/gurmukhi/lohit_pa.ttf
- TTF/thai/norasi_n.ttf
+ TTF/lohit/lohit_pa.ttf
+ TTF/thai/Norasi.ttf
+ TTF/wqy-microhei/wqy-microhei.ttc
</to>
</from>
+<from dir="/usr/share/icons/Adwaita/">
+ index.theme
+ scalable/status/image-missing.svg
+ symbolic/actions/list-add-symbolic.svg
+ symbolic/actions/list-remove-symbolic.svg
+ symbolic/ui/pan-down-symbolic.svg
+ symbolic/ui/pan-end-symbolic-rtl.svg
+ symbolic/ui/pan-end-symbolic.svg
+ symbolic/ui/pan-start-symbolic-rtl.svg
+ symbolic/ui/pan-start-symbolic.svg
+ symbolic/ui/pan-up-symbolic.svg
+</from>
+
+<!-- translations for modules used by drakx -->
<from dir="/usr/share/locale">
<to dir="/usr/share/locale_special">
<from expand="glob">
+ */LC_MESSAGES/draksnapshot.mo
*/LC_MESSAGES/drakx-net.mo
*/LC_MESSAGES/drakx-kbd-mouse-x11.mo
+ */LC_MESSAGES/gtk30.mo
+ */LC_MESSAGES/urpmi.mo
</from>
</to>
</from>
@@ -101,31 +240,55 @@
iso8859-1
</from>
+<from dir="/usr/share/zoneinfo">
+ zone.tab
+</from>
+
<filter command="strip">
<from dir="/LIB">
- libnss_nis.so.2
libnss_files.so.2
libnss_dns.so.2
libresolv.so.2
- ld-linux*.so.2
+ ld-linux*.so.*
+ <!-- needed for mount.ntfs-3g -->
+ libfuse.so.2
+
+ <!-- needed by dmraid -->
+ libdmraid-events-isw.so
+
+ <!-- mutter -->
+ <from expand="glob">
+ mutter-*/plugins/libdefault.so
+ </from>
+
+ <!-- needed fro Gtk3-WebKit2 -->
+ <from expand="glob">
+ libwebkit2gtk-4.1.so.?
+ </from>
+ webkit2gtk-4.1/injected-bundle/libwebkit2gtkinjectedbundle.so
</from>
</filter>
<from>
/etc/urpmi/prefer.vendor.list
/etc/mke2fs.conf
- /etc/fonts/fonts.conf
+ /etc/netconfig
+ /etc/fonts/
+ /etc/passwd
/etc/protocols
- /etc/rpm/platform
- /etc/rpm/macros.cdb
- /LIB/udev/usb_id
- /usr/LIB/xserver/SecurityPolicy
- /etc/pango/ARCH/pango.modules
- /usr/LIB/gtk-2.0/*/loaders/libpixbufloader-png.so
- <!-- XPM loader is needed by Gtk2::Html2 on error -->
- /usr/LIB/gtk-2.0/*/loaders/libpixbufloader-xpm.so
- /usr/LIB/gtk-2.0/*/immodules/im-cedilla.so
- /usr/LIB/gtk-2.0/*/engines/libia_ora.so
+
+ <from expand="glob">
+ /usr/LIB/ntfs-3g/*
+ </from>
+
+ <from expand="glob">
+ /usr/share/icu/*/icudt*.dat
+ </from>
+
+<!-- /usr/share/X11/XKeysymDB -->
+ /usr/LIB/libgdk_pixbuf-2.0.so.0
+ /usr/LIB/gtk-3.0/*/immodules/im-cedilla.so
+ /usr/share/mime/mime.cache
/usr/lib/libDrakX/keyboard.pm
/usr/lib/libDrakX/mouse.pm
@@ -133,38 +296,152 @@
/usr/lib/libDrakX/Xconfig
/usr/lib/libDrakX/auto/xf86misc
/usr/lib/libDrakX/xf86misc
+ <mode copy="keep-links">
+ /usr/share/doc/installer-help/
+ </mode>
/usr/share/libDrakX/pixmaps
- /usr/share/doc/installer-help/
+
/usr/lib/rpm/rpmrc
+ <from expand="glob">
+ /usr/lib/rpm/rpmpopt-*
+ </from>
+ /usr/lib/rpm/sysusers.sh
+ /usr/lib/rpm/mageia/macros
/usr/lib/rpm/macros
- /usr/lib/rpm/mandriva/rpmrc
- /usr/lib/rpm/mandriva/macros
+
+ <!-- glycin-loaders -->
+ /usr/share/glycin-loaders/2+/conf.d/glycin-image-rs.conf
+ /usr/share/glycin-loaders/2+/conf.d/glycin-svg.conf
+
/usr/share/pci.ids
+ /usr/share/usb.ids
/usr/share/locale/UTF-8
/usr/share/terminfo/l/linux
/bin/brltty
+ /sbin/mount.ntfs-3g <!-- cannot be expanded as binary, not executable for all users -->
+ /sbin/blkid
+
+ /sbin/mageia-setup-keyboard
+
+ /usr/bin/mutter
+
+ /usr/share/themes/Adwaita/gtk-3.0/gtk.css
- /sbin/pcmcia-socket-startup
/etc/pcmcia/config.opts
+ /etc/pki/tls/certs/ca-bundle.crt
+ /etc/pki/tls/cert.pem
+ /etc/pki/tls/openssl.cnf
+ /etc/crypto-policies/back-ends/opensslcnf.config
+
+ <!-- misc tools needed by some udev rules -->
+ /usr/lib/systemd/systemd-udevd
+ /usr/lib/udev/ata_id
+ /usr/lib/udev/libinput-device-group
+ /usr/lib/udev/libinput-fuzz-extract
+ /usr/lib/udev/libinput-fuzz-to-zero
+ /usr/lib/udev/pcmcia-socket-startup
+ /usr/lib/udev/scsi_id
<from expand="glob">
- <from spaces_in_filename="1">
- /usr/share/themes/Ia Ora*/gtk-2.0/gtkrc
+ /usr/share/libinput/*.quirks
+ </from>
+
+ <!-- for GDB: -->
+ <if set="DEBUG_INSTALL">
+ /usr/libexec/gdb
+ <from expand="glob">
+ /usr/include/python3.*/pyconfig-*.h
+ /usr/LIB/libpython3.*so
+ /usr/LIB/python3.*/abc.py
+ /usr/LIB/python3.*/codecs.py
+ /usr/LIB/python3.*/_collections_abc.py
+ /usr/LIB/python3.*/contextlib.py
+ /usr/LIB/python3.*/copy.py
+ /usr/LIB/python3.*/copyreg.py
+ /usr/LIB/python3.*/collections/*.py
+ /usr/LIB/python3.*/enum.py
+ /usr/LIB/python3.*/importlib/*.py
+ /usr/LIB/python3.*/lib-dynload/*opcode*.so
+ /usr/LIB/python3.*/encodings/aliases.py
+ /usr/LIB/python3.*/encodings/__init__.py
+ /usr/LIB/python3.*/encodings/latin_1.py
+ /usr/LIB/python3.*/encodings/utf_8.py
+ /usr/LIB/python3.*/functools.py
+ /usr/LIB/python3.*/genericpath.py
+ /usr/LIB/python3.*/heapq.py
+ /usr/LIB/python3.*/io.py
+ /usr/LIB/python3.*/keyword.py
+ /usr/LIB/python3.*/linecache.py
+ /usr/LIB/python3.*/operator.py
+ /usr/LIB/python3.*/os.py
+ /usr/LIB/python3.*/posixpath.py
+ /usr/LIB/python3.*/reprlib.py
+ /usr/LIB/python3.*/site.py
+ /usr/LIB/python3.*/_sitebuiltins.py
+ /usr/LIB/python3.*/sre_compile.py
+ /usr/LIB/python3.*/sre_constants.py
+ /usr/LIB/python3.*/sre_parse.py
+ /usr/LIB/python3.*/stat.py
+ /usr/LIB/python3.*/sysconfig.py
+ /usr/LIB/python3.*/_sysconfigdata*.py
+ /usr/LIB/python3.*/tokenize.py
+ /usr/LIB/python3.*/token.py
+ /usr/LIB/python3.*/traceback.py
+ /usr/LIB/python3.*/types.py
+ /usr/LIB/python3.*/warnings.py
+ /usr/LIB/python3.*/weakref.py
+ /usr/LIB/python3.*/_weakrefset.py
+ /usr/share/gdb/guile/gdb/*
+ /usr/share/gdb/python/gdb/*
+ </from>
+ /usr/LIB/guile/3.0/ccache/language/scheme/compile-tree-il.go
+ /usr/LIB/guile/3.0/ccache/language/scheme/decompile-tree-il.go
+ /usr/LIB/guile/3.0/ccache/language/scheme/spec.go
+ /usr/LIB/guile/3.0/ccache/language/tree-il.go
+ /usr/LIB/guile/3.0/ccache/rnrs/bytevectors.go
+ /usr/LIB/guile/3.0/ccache/system/foreign.go
+ /usr/share/gdb/guile/gdb/boot.scm
+ /usr/share/gdb/guile/gdb.go
+ /usr/share/guile/3.0/language/bytecode/spec.scm
+ /usr/share/guile/3.0/language/bytecode.scm
+ /usr/share/guile/3.0/language/scheme/compile-tree-il.scm
+ /usr/share/guile/3.0/language/scheme/decompile-tree-il.scm
+ /usr/share/guile/3.0/language/scheme/spec.scm
+ /usr/share/guile/3.0/language/tree-il.scm
+ /usr/share/guile/3.0/language/tree-il/spec.scm
+ /usr/share/guile/3.0/srfi/srfi-9/gnu.scm
+ /usr/share/guile/3.0/system/foreign.scm
+ <from expand="glob">
+ /usr/LIB/guile/3.0/ccache/ice-9/*go
+ /usr/LIB/guile/3.0/ccache/srfi/*.go
+ /usr/LIB/guile/3.0/ccache/system/base/*.go
+ /usr/LIB/guile/3.0/ccache/system/vm/*.go
+ /usr/share/guile/3.0/ice-9/*.scm <!-- for boot-9.scm and its deps -->
+ /usr/share/guile/3.0/rnrs/*.scm
+ /usr/share/guile/3.0/rnrs/*/*.scm
+ /usr/share/guile/3.0/srfi/*
+ /usr/share/guile/3.0/system/base/*.scm
+ /usr/share/guile/3.0/system/vm/*.scm
</from>
- /etc/gtk-2.0/gdk-pixbuf.loaders.*
- /etc/gtk-2.0/gtk.immodules.*
- /etc/brltty/text.*.tbl
- /etc/brltty/brltty-??.hlp
- /lib/brltty/libbrlttyb??.so
+ /usr/share/guile/3.0/system/foreign.scm
+ /usr/share/gdb/guile/gdb.go
+ /usr/share/gdb/guile/gdb.scm
+ </if>
+
+ <from expand="glob">
+ /etc/brltty/*/*.ttb
+ /etc/brltty/*/*/*.txt
+ /LIB/brltty/libbrlttyb??.so
</from>
+ <!-- example how to include debuginfo in stage2:
+ <from expand="command">
+ rpm -ql ldetect-debuginfo drakxtools-backend-debuginfo x11-server-debuginfo |grep -E '.build-id/|\.debug'
+ </from>
+ -->
<from expand="command">
perl -Mlang -I.. -le 'print foreach lang::console_font_files()'
</from>
-
- <if set="DEBUG_INSTALL">
- /etc/termcap
- </if>
</from>
<from dir="/usr/share/ldetect-lst">
@@ -179,13 +456,10 @@
ldetect-lst-modules.alias
</from>
-<from dir="/usr/LIB/pango/*/modules">
- pango-basic-fc.so
- pango-arabic-fc.so
- pango-hangul-fc.so
- pango-hebrew-fc.so
- pango-indic-fc.so
- pango-thai-fc.so
+<from dir="/usr/LIB/device-mapper">
+ <from expand="glob">
+ *.so
+ </from>
</from>
<from dir="/usr/LIB/gconv">
@@ -205,9 +479,9 @@
ISO8859-3.so
ISO8859-2.so
ISO8859-1.so
- KOI8-K.so
- KOI8-U.so
- KOI8-R.so
+ <from expand="glob">
+ KOI8-*.so
+ </from>
TIS-620.so
CP1251.so
GEORGIAN-PS.so
@@ -215,146 +489,207 @@
gconv-modules
</from>
+<!-- For the usrmove -->
+<from>
+ /usr/lib/dracut/modules.d/30convertfs/convertfs.sh
+</from>
+<from expand="binary">
+ find bash ldconfig mv rm cp ln
+</from>
+
<filter subst="/^__END__/ and $_ = '', close ARGV">
<from expand="main-perl">
AutoLoader.pm
- Carp.pm
Carp/Heavy.pm
- Exporter.pm
+ Carp.pm
Exporter/Heavy.pm
- FileHandle.pm
+ Exporter.pm
File/Basename.pm
File/Find.pm
+ FileHandle.pm
File/Path.pm
- File/Spec.pm
- File/Spec/Unix.pm
File/Temp.pm
Getopt/Long.pm
+ IPC/Open2.pm
+ IPC/Open3.pm
+ Net/Cmd.pm
+ Net/Config.pm
+ Net/FTP/A.pm
+ Net/FTP/dataconn.pm
+ Net/FTP/I.pm
+ Net/FTP.pm
+ Net/Netrc.pm
+ Net/Ping.pm
PerlIO.pm
SelectSaver.pm
SelfLoader.pm
Symbol.pm
+ Tie/Hash.pm
Time/Local.pm
- IO/Socket/INET.pm
- IO/Socket/UNIX.pm
+ XSLoader.pm
base.pm
+ bytes.pm
constant.pm
- locale.pm
- utf8.pm
- utf8_heavy.pl
- unicore/Exact.pl
- unicore/Canonical.pl
- unicore/PVA.pl
- unicore/To/Lower.pl
- unicore/To/Fold.pl
- unicore/To/Upper.pl
- unicore/lib/gc_sc/Word.pl
- unicore/lib/gc_sc/Digit.pl
dumpvar.pl
- warnings.pm
- warnings/register.pm
- ARCH-linux/File/Glob.pm
- ARCH-linux/auto/File/Glob/Glob.so
- ARCH-linux/Config.pm
- ARCH-linux/Data/Dumper.pm
- ARCH-linux/DynaLoader.pm
- ARCH-linux/Errno.pm
- ARCH-linux/Fcntl.pm
- ARCH-linux/XSLoader.pm
- ARCH-linux/auto/Fcntl/Fcntl.so
- ARCH-linux/IO.pm
- ARCH-linux/IO/File.pm
- ARCH-linux/IO/Handle.pm
- ARCH-linux/IO/Seekable.pm
- ARCH-linux/IO/Select.pm
- ARCH-linux/IO/Socket.pm
- ARCH-linux/Socket.pm
- ARCH-linux/_h2ph_pre.ph
- ARCH-linux/asm/unistd.ph
- <if ARCH="ia64">
- ARCH-linux/asm-i386/unistd.ph
- ARCH-linux/asm-x86_64/unistd.ph
- ARCH-linux/asm/break.ph
- </if>
- <if ARCH="x86_64">
- ARCH-linux/asm-i386/unistd.ph
- ARCH-linux/asm-x86_64/unistd.ph
- </if>
- ARCH-linux/auto/Data/Dumper/Dumper.so
- ARCH-linux/auto/IO/IO.so
- ARCH-linux/auto/Socket/Socket.so
- ARCH-linux/bits/syscall.ph
- ARCH-linux/bits/wordsize.ph
- ARCH-linux/sys/syscall.ph
- ARCH-linux/syscall.ph
- ARCH-linux/auto/DynaLoader/dl_findfile.al
- ARCH-linux/lib.pm
- ARCH-linux/re.pm
- ARCH-linux/auto/POSIX/autosplit.ix
- ARCH-linux/auto/POSIX/load_imports.al
- ARCH-linux/auto/POSIX/POSIX.so
- ARCH-linux/Cwd.pm
- ARCH-linux/auto/Cwd/Cwd.so
- ARCH-linux/POSIX.pm
- ARCH-linux/Time/HiRes.pm
- ARCH-linux/auto/Time/HiRes/HiRes.so
- bytes.pm
+ feature.pm
integer.pm
+ locale.pm
overload.pm
+ overloading.pm
+ parent.pm
strict.pm
+ unicore/To/Uc.pl <!-- needed for uc() on UTF-8 -->
+ utf8.pm
vars.pm
- Net/Cmd.pm
- Net/Config.pm
- Net/FTP.pm
- Net/FTP/A.pm
- Net/FTP/I.pm
- Net/FTP/dataconn.pm
- Net/Netrc.pm
- Scalar/Util.pm
- List/Util.pm
+ warnings.pm
+ warnings/register.pm
<if set="DEBUG_INSTALL">
perl5db.pl
Term/ReadLine.pm
</if>
</from>
+<from expand="main-perl-bin">
+ B.pm
+ Config_git.pl
+ Config_heavy.pl
+ Config.pm
+ Cwd.pm
+ Data/Dumper.pm
+ DynaLoader.pm
+ Encode.pm
+ Encode/Alias.pm
+ Encode/Config.pm
+ Encode/Encoding.pm
+ Encode/MIME/Name.pm
+ Encode/Unicode.pm
+ Errno.pm
+ Fcntl.pm
+ File/Glob.pm
+ File/Spec.pm
+ File/Spec/Unix.pm
+ _h2ph_pre.ph
+ IO/File.pm
+ IO/Handle.pm
+ IO.pm
+ IO/Seekable.pm
+ IO/Select.pm
+ IO/Socket/INET.pm
+ IO/Socket.pm
+ IO/Socket/UNIX.pm
+ List/Util.pm
+ POSIX.pm
+ Scalar/Util.pm
+ Socket.pm
+ Storable.pm
+ Time/HiRes.pm
+ <if ARCH="i.86|x86_64">
+ asm/unistd_32.ph
+ asm/unistd_64.ph
+ </if>
+ asm/unistd.ph
+ auto/B/B.so
+ auto/Cwd/Cwd.so
+ auto/Data/Dumper/Dumper.so
+ auto/Encode/Encode.so
+ auto/Encode/Unicode/Unicode.so
+ auto/Fcntl/Fcntl.so
+ auto/File/Glob/Glob.so
+ auto/IO/IO.so
+ auto/List/Util/Util.so
+ auto/POSIX/POSIX.so
+ auto/re/re.so
+ auto/Socket/Socket.so
+ auto/Storable/Storable.so
+ auto/Time/HiRes/HiRes.so
+ bits/syscall.ph
+ bits/wordsize.ph
+ lib.pm
+ re.pm
+ syscall.ph
+ sys/syscall.ph
+</from>
+
+<from expand="perl-bin">
+ Cairo.pm
+ List/MoreUtils/XS.pm
+ Term/ReadKey.pm
+ XML/LibXML.pm
+ XML/LibXML/AttributeHash.pm
+ XML/LibXML/Error.pm
+ XML/LibXML/NodeList.pm
+ XML/LibXML/Reader.pm
+ XML/LibXML/XPathContext.pm
+ XML/LibXML/Boolean.pm
+ XML/LibXML/Literal.pm
+ XML/LibXML/Number.pm
+ auto/Cairo/Cairo.so
+ auto/List/MoreUtils/XS/XS.so
+ auto/Term/ReadKey/ReadKey.so
+ auto/XML/LibXML/LibXML.so
+ <if set="DEBUG_INSTALL">
+ Term/ReadLine/Gnu.pm
+ Term/ReadLine/Gnu/XS.pm
+ auto/Term/ReadLine/Gnu/Gnu.so
+ auto/Term/ReadLine/Gnu/XS/autosplit.ix
+ </if>
+</from>
+
<from expand="perl">
- packdrake.pm
Config/IniFiles.pm
- MDV/Packdrakeng.pm
+ Exporter/Tiny.pm
+ List/MoreUtils.pm
+ List/MoreUtils/PP.pm
MDV/Distribconf.pm
- MDK/Common
- MDK/Common.pm
+ MDV/Packdrakeng.pm
+ MDV/Snapshot/Common.pm
+ MDV/Snapshot/Restore.pm
+ Parse/EDID.pm
String/ShellQuote.pm
- ARCH-linux/Locale/gettext.pm
- ARCH-linux/auto/Locale/gettext/gettext.so
- ARCH-linux/File/FnMatch.pm
- ARCH-linux/auto/File/FnMatch/FnMatch.so
- ARCH-linux/Term/ReadKey.pm
- ARCH-linux/auto/Term/ReadKey/ReadKey.so
- ARCH-linux/URPM.pm
- ARCH-linux/URPM/Build.pm
- ARCH-linux/URPM/Resolve.pm
- ARCH-linux/URPM/Signature.pm
- ARCH-linux/auto/URPM/URPM.so
+ Time/ZoneInfo.pm
+ XML/SAX/Exception.pm
+ urpm.pm
+ urpm/args.pm
+ urpm/cdrom.pm
+ urpm/cfg.pm
+ urpm/download.pm
+ urpm/get_pkgs.pm
+ urpm/install.pm
+ urpm/lock.pm
+ urpm/main_loop.pm
+ urpm/md5sum.pm
+ urpm/media.pm
+ urpm/mirrors.pm
urpm/msg.pm
+ urpm/orphans.pm
+ urpm/removable.pm
urpm/select.pm
+ urpm/signature.pm
urpm/util.pm
urpm/sys.pm
- <if set="DEBUG_INSTALL">
- ARCH-linux/Term/ReadLine/Gnu.pm
- ARCH-linux/Term/ReadLine/Gnu/XS.pm
- ARCH-linux/auto/Term/ReadLine/Gnu/Gnu.so
- ARCH-linux/auto/Term/ReadLine/Gnu/XS/autosplit.ix
- </if>
+ urpm/xml_info.pm
+ urpm/xml_info_pkg.pm
</from>
-<from expand="rpm" matching="m!^/usr/lib/perl5! and !/\.pod$/">
- perl-Gtk2
- perl-Glib
- perl-Gtk2-Html2
+<from expand="rpm" matching="m!^/usr/(share|LIB)/perl5! and !/\.pod$/">
perl-Curses
perl-Curses-UI
+ perl-File-FnMatch
+ perl-Locale-gettext
+ <!-- for MDK::Cmmon: -->
+ perl-File-Sync
+ perl-Filesys-Df
+ perl-MDK-Common
+ <!-- Gtk stack: -->
+ perl-Cairo-GObject
+ perl-Glib
+ perl-Glib-Object-Introspection
+ perl-Gtk3
+ perl-Gtk3-WebKit2
+ perl-Pango
+ <!-- urpmi stack: -->
+ perl-Clone
+ perl-URPM
</from>
</filter>
@@ -371,18 +706,18 @@
<from dir="../../tools">
<to dir="/usr/bin" flatten="on">
serial_probe/serial_probe
- xhost+
+ </to>
+</from>
- <mode on-error="ignore">
- ARCH/busybox
- </mode>
+<from dir="../standalone">
+ <to dir="/usr/bin">
+ display_installer_help
+ display_release_notes.pl
</to>
</from>
<from dir="share">
<from expand="tar">
- fonts.tar.bz2
- keyboards.tar.bz2
keymaps.tar.bz2
</from>
@@ -390,6 +725,30 @@
consolefonts symlinks
upgrade
</to>
+
+ <if set="DEBUG_INSTALL">
+ <to dir="/bin">
+ <!-- abusing '<from expand="command">' -->
+ <from expand="command">
+ echo 'gdb -q --args /usr/libexec/Xorg.wrap :0 -allowMouseOpenFail -xf86config /tmp/Xconf vt7 -dpi 75 -nolisten tcp'> share/gdb-x11;
+ chmod +x share/gdb-x11; echo gdb-x11
+ </from>
+ </to>
+ </if>
+
+ <!-- for gtk+3 that needs dbus to be initialized -->
+ <to dir="/etc">
+ <!-- abusing '<from expand="command">' -->
+ <from expand="command">
+ dbus-uuidgen > share/machine-id; echo machine-id
+ </from>
+ </to>
+
+ <!-- custom CSD CSS -->
+ <to dir="/usr/lib/libDrakX"> <!-- /.config/gtk-3.0 is RO -->
+ gtk.css <!-- symlinked in -->
+ </to>
+
</from>
<from dir="../pixmaps">
@@ -406,6 +765,11 @@
*.png
</from>
</to>
+ <to dir="/usr/lib/libDrakX">
+ <from expand="glob">
+ *.css
+ </from>
+ </to>
</from>
<from dir="pixmaps">
diff --git a/perl-install/install/share/po/.gitignore b/perl-install/install/share/po/.gitignore
new file mode 100644
index 000000000..cd1f2c943
--- /dev/null
+++ b/perl-install/install/share/po/.gitignore
@@ -0,0 +1 @@
+*.mo
diff --git a/perl-install/install/share/po/.tx/config b/perl-install/install/share/po/.tx/config
new file mode 100644
index 000000000..8aa47b976
--- /dev/null
+++ b/perl-install/install/share/po/.tx/config
@@ -0,0 +1,8 @@
+[main]
+host = https://www.transifex.com
+
+[o:MageiaLinux:p:mageia:r:drakx_install]
+file_filter = <lang>.po
+source_file = DrakX.pot
+source_lang = en
+type = PO
diff --git a/perl-install/install/share/po/DrakX.pot b/perl-install/install/share/po/DrakX.pot
index b21a3013f..aa1f9ea97 100644
--- a/perl-install/install/share/po/DrakX.pot
+++ b/perl-install/install/share/po/DrakX.pot
@@ -8,152 +8,222 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
#, c-format
-msgid "Do you have further supplementary media?"
+msgid "Join Us!"
msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: ../../advertising/02_IM_mageia.pl:1
#, c-format
-msgid ""
-"The following media have been found and will be used during install: %s.\n"
-"\n"
-"\n"
-"Do you have a supplementary installation medium to configure?"
+msgid "Make it yours!"
msgstr ""
-#: any.pm:166
+#: ../../advertising/03_IM_mageia.pl:1
#, c-format
-msgid "CD-ROM"
+msgid "Your choice!"
msgstr ""
-#: any.pm:167
+#: ../../advertising/04_IM_mageia.pl:1
#, c-format
-msgid "Network (HTTP)"
+msgid "Office tools"
msgstr ""
-#: any.pm:168
+#: ../../advertising/05_IM_mageia.pl:1
#, c-format
-msgid "Network (FTP)"
+msgid "Home entertainment"
msgstr ""
-#: any.pm:169
+#: ../../advertising/06_IM_mageia.pl:1
#, c-format
-msgid "Network (NFS)"
+msgid "For kids"
msgstr ""
-#: any.pm:211
+#: ../../advertising/07_IM_mageia.pl:1
#, c-format
-msgid "URL of the mirror?"
+msgid "For family!"
msgstr ""
-#: any.pm:217
+#: ../../advertising/08_IM_mageia.pl:1
#, c-format
-msgid "URL must start with ftp:// or http://"
+msgid "For developers!"
msgstr ""
-#: any.pm:228
+#: ../../advertising/09_IM_mageia.pl:1
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
+msgid "Thank you!"
+msgstr ""
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
msgstr ""
-#: any.pm:233
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
+msgstr ""
+
+#: any.pm:162
+#, c-format
+msgid "Network (HTTP)"
msgstr ""
-#: any.pm:243
+#: any.pm:163
#, c-format
-msgid "Choose a mirror from which to get the packages"
+msgid "Network (FTP)"
+msgstr ""
+
+#: any.pm:164
+#, c-format
+msgid "Network (NFS)"
msgstr ""
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr ""
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr ""
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr ""
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr ""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr ""
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr ""
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr ""
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
msgstr ""
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
+msgid "Core Release"
msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
+msgid "Tainted Release"
msgstr ""
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
+msgid "Nonfree Release"
msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr ""
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr ""
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
msgstr ""
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -162,82 +232,87 @@ msgid ""
"Do you really want to remove these packages?\n"
msgstr ""
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr ""
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr ""
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr ""
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr ""
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr ""
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr ""
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr ""
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr ""
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr ""
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr ""
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr ""
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr ""
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr ""
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr ""
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr ""
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr ""
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr ""
@@ -259,365 +334,455 @@ msgstr ""
msgid "Bringing down the network"
msgstr ""
-#: media.pm:703 media.pm:714
+#: media.pm:397
#, c-format
-msgid "Downloading file %s..."
+msgid "Please wait, retrieving file"
msgstr ""
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr ""
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr ""
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr ""
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr ""
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr ""
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr ""
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr ""
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr ""
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
+msgid "An error occurred:"
msgstr ""
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
+msgid "A fatal error occurred: %s."
msgstr ""
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr ""
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
msgstr ""
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr ""
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr ""
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr ""
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr ""
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr ""
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr ""
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr ""
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr ""
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr ""
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr ""
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr ""
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr ""
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr ""
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr ""
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr ""
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr ""
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr ""
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr ""
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr ""
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr ""
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr ""
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr ""
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr ""
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr ""
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr ""
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr ""
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr ""
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr ""
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr ""
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr ""
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr ""
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr ""
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
+msgid "PostgreSQL and MariaDB Database Server"
msgstr ""
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr ""
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr ""
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr ""
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr ""
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
+msgid "PostgreSQL or MariaDB database server"
msgstr ""
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr ""
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr ""
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr ""
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
+msgid "Plasma Workstation"
msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr ""
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr ""
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr ""
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
#, c-format
-msgid "IceWm Desktop"
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr ""
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
+msgid "Window Maker, Fvwm, etc"
msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr ""
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr ""
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr ""
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr ""
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr ""
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr ""
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
+msgid "Mageia Wizards"
msgstr ""
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr ""
@@ -629,7 +794,7 @@ msgid ""
"Continue at your own risk."
msgstr ""
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -645,7 +810,7 @@ msgstr ""
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
+msgid "%s Installation %s"
msgstr ""
#: steps_curses.pm:32
@@ -653,289 +818,344 @@ msgstr ""
msgid "<Tab>/<Alt-Tab> between elements"
msgstr ""
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr ""
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr ""
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
+msgid "Unselect All"
msgstr ""
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
+msgid "Total size: %d / %d MB"
msgstr ""
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr ""
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr ""
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr ""
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr ""
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr ""
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr ""
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr ""
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr ""
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr ""
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr ""
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr ""
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr ""
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr ""
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr ""
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr ""
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr ""
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr ""
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr ""
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr ""
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr ""
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr ""
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr ""
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr ""
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
+msgid "Time remaining:"
msgstr ""
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
+msgid "(estimating...)"
msgstr ""
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] ""
msgstr[1] ""
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr ""
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr ""
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr ""
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr ""
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr ""
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
+msgid "Please choose your keyboard layout"
msgstr ""
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
+msgid "Here is the full list of available keyboards:"
msgstr ""
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr ""
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr ""
-#: steps_interactive.pm:134
+#: steps_interactive.pm:159
#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr ""
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr ""
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
+msgid "Encryption key for %s"
msgstr ""
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
+msgid "Cancel installation, reboot system"
msgstr ""
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
+msgid "New Installation"
msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
+msgid "Upgrade previous installation (not recommended)"
msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+msgid "CD/DVD"
msgstr ""
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+msgid "Configuring CD/DVD"
msgstr ""
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -944,298 +1164,300 @@ msgid ""
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr ""
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr ""
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr ""
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr ""
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
+msgid "GNOME"
msgstr ""
-#: steps_interactive.pm:433
+#: steps_interactive.pm:459
#, c-format
-msgid "Custom install"
+msgid "Desktop Selection"
msgstr ""
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr ""
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr ""
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr ""
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr ""
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr ""
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr ""
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr ""
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr ""
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr ""
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr ""
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr ""
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr ""
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
msgstr ""
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
msgstr ""
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr ""
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr ""
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
#, c-format
-msgid ""
-"You now have the opportunity to download updated packages. These packages\n"
-"have been updated after the distribution was released. They may\n"
-"contain security or bug fixes.\n"
-"\n"
-"To download these packages, you will need to have a working Internet \n"
-"connection.\n"
-"\n"
-"Do you want to install the updates?"
+msgid "You now have the opportunity to setup online media."
msgstr ""
-#: steps_interactive.pm:713
+#: steps_interactive.pm:745
#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
+msgid "This allows to install security updates."
msgstr ""
-#: steps_interactive.pm:719
+#: steps_interactive.pm:746
#, c-format
-msgid "Unable to contact mirror %s"
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
msgstr ""
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#: steps_interactive.pm:767
#, c-format
-msgid "%s on %s"
+msgid "That downloader could not be installed"
msgstr ""
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:767 steps_interactive.pm:784
#, c-format
-msgid "Hardware"
+msgid "Retry?"
msgstr ""
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:784
#, c-format
-msgid "Sound card"
+msgid "Failure when adding medium"
msgstr ""
-#: steps_interactive.pm:902
+#: steps_interactive.pm:792
#, c-format
-msgid "Do you have an ISA sound card?"
+msgid ""
+"You now have the opportunity to download updated packages. These packages\n"
+"have been updated after the distribution was released. They may\n"
+"contain security or bug fixes.\n"
+"\n"
+"To download these packages, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to install the updates?"
msgstr ""
-#: steps_interactive.pm:904
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
+msgid "%s on %s"
msgstr ""
-#: steps_interactive.pm:906
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
+msgid "Hardware"
msgstr ""
-#: steps_interactive.pm:914
+#: steps_interactive.pm:958
+#, c-format
+msgid "Sound card"
+msgstr ""
+
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr ""
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr ""
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr ""
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr ""
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr ""
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr ""
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr ""
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr ""
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr ""
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr ""
-
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-
-#: steps_interactive.pm:1024
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Do you want to use aboot?"
+msgid "Preparing initial startup program..."
msgstr ""
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
+msgid "Be patient, this may take a while..."
msgstr ""
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr ""
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr ""
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1243,46 +1465,16 @@ msgid ""
"Do you really want to quit now?"
msgstr ""
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr ""
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr ""
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr ""
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr ""
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr ""
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr ""
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1373,13 +1565,6 @@ msgid ""
"Users"
msgstr ""
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr ""
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
diff --git a/perl-install/install/share/po/Makefile b/perl-install/install/share/po/Makefile
index 133373615..0bbdaf96f 100644
--- a/perl-install/install/share/po/Makefile
+++ b/perl-install/install/share/po/Makefile
@@ -1,6 +1,7 @@
NAME = DrakX
LOCALEDIR = ${prefix}/share/locale
-PMSFILES = *.pm share/meta-task/compssUsers.pl*
+METATASK = share/meta-task/compssUsers.pl
+PMSFILES = *.pm $(METATASK) ../../advertising/*.pl
PMSFILES_HERE = $(wildcard $(PMSFILES:%=../../%))
MAIN_PO_FILES = ../../../share/po/libDrakX.pot
@@ -14,6 +15,8 @@ default: $(MOFILES)
%.mo: %.po
msgfmt -o $@ $<
+update_n_merge: $(NAME).pot merge
+
merge: $(NAME).pot
for n in $(POFILES); do \
echo "Merging $$n"; \
@@ -21,7 +24,11 @@ merge: $(NAME).pot
mv -f "$$n"t $$n ; \
done
-$(NAME).pot: $(PMSFILES_HERE)
+../../$(METATASK):
+ mkdir -p ../../share/meta-task
+ svn cat svn://svn.mageia.org/svn/packages/cauldron/meta-task/current/SOURCES/compssUsers.pl > $@
+
+$(NAME).pot: $(PMSFILES_HERE) ../../$(METATASK)
cd ../.. ; perl_checker -q --generate-pot share/po/.$@ $(PMSFILES)
xgettext $(MAIN_PO_FILES:%=-x %) -o $@ .$@
rm -f .$@
@@ -33,4 +40,8 @@ install: $(MOFILES)
done
clean:
- @rm -rf *.mo $(POFILES:%=%t)
+ @rm -rf *.mo $(POFILES:%=%t) ../../$(METATASK)
+ @rmdir ../../share/meta-task
+
+check:
+ for i in *.po; do msgfmt -c $$i -o /dev/null; done
diff --git a/perl-install/install/share/po/af.po b/perl-install/install/share/po/af.po
index abbdaa9d3..30facadc5 100644
--- a/perl-install/install/share/po/af.po
+++ b/perl-install/install/share/po/af.po
@@ -1,33 +1,84 @@
-# translation of DrakX-af21-09.po to Afrikaans
-# translation of DrakX-af.po to Afrikaans
-# KTranslator Generated File
-# KTranslator Generated File
-# Copyright (C) 2000,2003, 2004 Free Software Foundation, Inc.
-# Schalk W. Cronjé <schalkc@ntaba.co.za>, 2000.
-# Dirk van der Walt <mandrake@webmail.co.za>, 2003.
-# Dirk van der Walt <dirkvanderwalt@webmail.co.za>, 2004.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Dirk van der Walt <dirkvanderwalt@webmail.co.za>, 2004
+# Dirk van der Walt <mandrake@webmail.co.za>, 2003
+# F Wolff <friedel@translate.org.za>, 2019
+# Schalk W. Cronjé <schalkc@ntaba.co.za>, 2000
msgid ""
msgstr ""
-"Project-Id-Version: DrakX-af\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2005-04-21 17:33+0200\n"
-"Last-Translator: Dirk van der Walt <dirkvanderwalt@webmail.co.za>\n"
-"Language-Team: Afrikaans\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: F Wolff <friedel@translate.org.za>\n"
+"Language-Team: Afrikaans (http://www.transifex.com/MageiaLinux/mageia/"
+"language/af/)\n"
+"Language: af\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.0.2\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: any.pm:155
-#, fuzzy, c-format
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Sluit aan by ons!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Maak dit joune!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "U eie keuse!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Kantoorgereedskap"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Tuisvermaak"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "Vir kinders"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "Vir familie!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "Vir programmeerders!"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Dankie!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Wees vry!"
+
+#: any.pm:151
+#, c-format
msgid "Do you have further supplementary media?"
-msgstr "Beskik u oor nog?"
+msgstr "Is daar verdere aanvullende media?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -35,138 +86,163 @@ msgid ""
"\n"
"Do you have a supplementary installation medium to configure?"
msgstr ""
+"Die volgende media is gevind en sal tydens installasie gebruik word: %s.\n"
+"\n"
+"\n"
+"Het u ’n aanvullende installasiemedium om op te stel?"
-#: any.pm:166
+#: any.pm:162
#, c-format
-msgid "CD-ROM"
-msgstr "CDROM"
-
-#: any.pm:167
-#, fuzzy, c-format
msgid "Network (HTTP)"
-msgstr "Netwerk %s"
+msgstr "Netwerk (HTTP)"
-#: any.pm:168
-#, fuzzy, c-format
+#: any.pm:163
+#, c-format
msgid "Network (FTP)"
-msgstr "Netwerk %s"
+msgstr "Netwerk (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
-msgstr ""
+msgstr "Netwerk (NFS)"
-#: any.pm:211
+#: any.pm:224
#, c-format
-msgid "URL of the mirror?"
-msgstr ""
+msgid "NFS setup"
+msgstr "NFS-opstelling"
-#: any.pm:217
+#: any.pm:225
#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr ""
+msgid "Please enter the hostname and directory of your NFS media"
+msgstr "Tik die rekenaarnaam en gids van die NFS-media"
-#: any.pm:228
+#: any.pm:229
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr "Kontak Mandriva Linux se webwerf vir 'n lys van spieëlwebplekke...."
+msgid "Hostname missing"
+msgstr "Rekenaarnaam ontbreek"
-#: any.pm:233
-#, fuzzy, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr "Kontak Mandriva Linux se webwerf vir 'n lys van spieëlwebplekke...."
+#: any.pm:230
+#, c-format
+msgid "Directory must begin with \"/\""
+msgstr "Gids moet met “/” begin"
-#: any.pm:243
+#: any.pm:234
#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Kies 'n spieël waar die pakkette verkry kan word"
+msgid "Hostname of the NFS mount ?"
+msgstr "Rekenaarnaam van die NFS-hegpunt?"
-#: any.pm:273
+#: any.pm:235
#, c-format
-msgid "NFS setup"
+msgid "Directory"
+msgstr "Gids"
+
+#: any.pm:265
+#, c-format
+msgid "Supplementary"
+msgstr "Aanvullend"
+
+#: any.pm:300
+#, c-format
+msgid ""
+"Can't find a package list file on this mirror. Make sure the location is "
+"correct."
msgstr ""
+"Kan nie ’n pakketlyslêer op dié spieëlwerf kry nie. Maak seker die ligging "
+"is korrek."
-#: any.pm:274
+#: any.pm:325
#, c-format
-msgid "Please enter the hostname and directory of your NFS media"
+msgid "Core Release"
msgstr ""
-#: any.pm:278
+#: any.pm:327
#, c-format
-msgid "Hostname missing"
+msgid "Tainted Release"
msgstr ""
-#: any.pm:279
+#: any.pm:329
#, c-format
-msgid "Directory must begin with \"/\""
+msgid "Nonfree Release"
msgstr ""
-#: any.pm:283
+#: any.pm:367
#, c-format
-msgid "Hostname of the NFS mount ?"
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
+"Sommige hardeware op die rekenaar benodig sekere nievrye fermware vir die "
+"vry sagteware-aandrywers om te werk."
-#: any.pm:284
+#: any.pm:368
#, c-format
-msgid "Directory"
-msgstr "Gids"
+msgid "You should enable \"%s\""
+msgstr "U moet “%s” aktiveer"
-#: any.pm:306
+#: any.pm:419
#, c-format
-msgid "Supplementary"
-msgstr ""
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "“%s” bevat die verskeie dele van die stelsel in die toepassings"
-#: any.pm:341
-#, fuzzy, c-format
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "“%s” bevat nievrye sagteware.\n"
+
+#: any.pm:421
+#, c-format
msgid ""
-"Can't find a package list file on this mirror. Make sure the location is "
-"correct."
-msgstr "Kan nie %s op %s vind nie"
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"Dit bevat ook fermware wat nodig is vir sekere toestelle om te werk (bv. "
+"sekere ATI/AMD-grafikakaarte, sommige netwerkkaarte, sommige RAID-"
+"kaarte, ...)"
-#: any.pm:375
+#: any.pm:422
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Ondersoek pakette wat reeds geïnstalleer is..."
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"“%s” bevat sagteware wat weens sagtewarepatente nie in alle lande versprei "
+"kan word nie."
-#: any.pm:382
+#: any.pm:423
#, c-format
-msgid "Removing packages prior to upgrade..."
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
msgstr ""
+"Dit bevat ook sagteware van “%s” wat herbou is met addisionele "
+"funksionaliteit."
-#: any.pm:424
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "Hier kan mens meer media aktiveer as mens wil."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Dié medium verskaf pakketbywerkings vir medium “%s”"
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Ondersoek pakkette wat reeds geïnstalleer is..."
+
+#: any.pm:593
#, c-format
msgid "Finding packages to upgrade..."
msgstr "Soek vir pakkette om op te gradeer..."
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:612
#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
-msgstr ""
-"U het die volgende bediener(s) gekies: %s\n"
-"\n"
-"\n"
-"Hierdie bedieners is aktief by verstek. Sover bekend, het hulle nie enige\n"
-"sekuriteits-gevare nie. Daar mag wel mettertyd nuwe gevare gevind word.\n"
-"In so geval, moet u tot verseker dat u hulle so gou moontlik updateer.\n"
-"\n"
-"\n"
-"Verlang u nog steeds hierdie dienste?\n"
+msgid "Removing packages prior to upgrade..."
+msgstr "Verwyder pakkette voor opgradering..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -174,88 +250,92 @@ msgid ""
"\n"
"Do you really want to remove these packages?\n"
msgstr ""
-"Die volgende pakkette moet verwyder word om u rekenaar op te gradeer: %s\n"
+"Die volgende pakkette gaan verwyder word om die rekenaar op te gradeer: %s\n"
"\n"
"\n"
-"Wil u werklik dat ons hulle verwyder?\n"
+"Wil u definitief dié pakkette verwyder?\n"
-#
-#: any.pm:1055
-#, fuzzy, c-format
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Fout met die lees van lêer %s"
+
+#: any.pm:1283
+#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "Die volgende pakkette geïnstalleer word:\n"
+msgstr "Die volgende skywe is hernoem:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
-msgstr ""
+msgstr "%s (voorheen %s genoem)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
-msgstr ""
+msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
-msgstr "Ftp"
+msgstr "FTP"
-#: any.pm:1114
-#, fuzzy, c-format
+#: any.pm:1342
+#, c-format
msgid "NFS"
-msgstr "PFS"
+msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Netwerk"
-#: any.pm:1137
-#, fuzzy, c-format
+#: any.pm:1365
+#, c-format
msgid "Please choose a media"
-msgstr "Kies asseblief"
+msgstr "Kies asb. ’n medium"
-#: any.pm:1153
-#, fuzzy, c-format
+#: any.pm:1381
+#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "Lêer bestaan alreeds. Moet dit gebruik word?"
+msgstr "Lêer bestaan reeds. Oorskryf?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Toegang verbied"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
-msgstr ""
+msgstr "Slegte NFS-naam"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
-msgstr ""
+msgstr "Slegte media %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
-msgstr "Kan nie skermfoto's neem voor partisie skep nie"
+msgid "Cannot make screenshots before partitioning"
+msgstr "Kan nie skermkiekies neem voor partisies geskep is nie"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
-msgstr "Skermfoto's sal na die installasie beskikbaar wees in %s"
+msgstr "Skermkiekies sal na die installasie beskikbaar wees in %s"
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
-msgstr "Besig met installasie"
+msgstr "Installasie"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
-msgstr "Konfigurasie"
+msgstr "Opstelling"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "U moet ook %s formatteer"
@@ -266,8 +346,8 @@ msgid ""
"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
"You can find some information about them at: %s"
msgstr ""
-"Sekere hardeware op u rekenaar benodig geslote drywers.\n"
-"U kan inligting hieroorvind by %s"
+"Sekere hardeware op u rekenaar benodig “geslote” aandrywers.\n"
+"U kan inligting hieroor vind by: %s"
#: interactive.pm:22
#, c-format
@@ -279,304 +359,342 @@ msgstr "Netwerk op pad op"
msgid "Bringing down the network"
msgstr "Netwerk op pad af"
-#: media.pm:703 media.pm:714
-#, fuzzy, c-format
-msgid "Downloading file %s..."
-msgstr "Stuur lêers..."
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr "Net ’n oomblik. Lêer word afgehaal"
+
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "kon nie medium byvoeg nie"
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
-msgstr ""
+msgstr "Kopieer tans pakkette na die skyf vir latere gebruik"
-#: media.pm:861
-#, fuzzy, c-format
+#: media.pm:797
+#, c-format
msgid "Copying in progress"
-msgstr "Bespeuring aan die gebeur"
+msgstr "Kopiëring onderweg"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "benodig"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "belangrik"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "baie oulik"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "oulik"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
-msgstr "moontlik"
+msgstr "miskien"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "Kry tans pakketinligting vanaf XML-metadata..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Geen XML-inligting vir medium “%s”, slegs gedeeltelike resultate vir pakket "
+"%s"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Geen beskrywing"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"Sommige pakkette wat deur %s aangevra is, kan nie geïnstalleer word nie:\n"
+"%s"
+
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "'n Fout het voorgekom:"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "’n Ernstige fout het voorgekom: %s."
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr "Moenie weer vra nie"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d installasietransaksies het misluk"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Installasie van pakkette het misluk:"
-#: share/meta-task/compssUsers.pl:11
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "Werkstasie"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "Kantoorwerkstasie"
-#: share/meta-task/compssUsers.pl:15
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Kantoorprogramme: Woordverwerkers(OpenOffice.org Writer, Kword), spreistate "
-"(OpenOffice.org Calc, Kspread), PDF-sigprogramme, ens."
+"Kantoorprogramme: woordverwerkers( LibreOffice Writer, Kword), sigblaaie "
+"(LibreOffice Calc, Kspread), PDF-kykers, ens."
-#: share/meta-task/compssUsers.pl:16
-#, c-format
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"Kantoorprogramme: Woordverwerkers( kword, abiword), spreistate (kspread, "
-"gnumeric), PDF-sigprogramme, ens."
-
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Speletjiesrekenaar"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "Vermaak: Arkade, Bordspel, Strategie ens."
+msgstr "Vermaak: arkade, bordspel, strategie ens."
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Multimediastasie"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
-msgstr "Klank- en videospelers/redigeerders"
+msgstr "Klank- en videospelers/-redigeerders"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Internetstasie"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-"Stel hulpprogramme om e-pos en netnuus te lees en te stuur (mutt, tin) en om "
-"ook die web deur te blaai."
+"Hulpprogramme om e-pos en netnuus te lees en te stuur (mutt, tin) en ook om "
+"die web deur te blaai"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Netwerkrekenaar (kliënt)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
-msgstr "Kliëntprogramme vir 'n verkeidenheid protokolle insluitend SSH"
+msgstr "Kliëntprogramme vir 'n verskeidenheid protokolle insluitend SSH"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
-msgstr "Nutsprogramme wat u rekenaarkonfigurasie vergemaklik"
+msgstr "Nutsprogramme wat die rekenaaropstelling vergemaklik"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
-msgstr "Konsole Hulpprogramme"
+msgstr "Konsole-hulpprogramme"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
-msgstr ""
-"Redigeerders. teksverwerkers, instruksiedoppe, lêer-nutsprogramme, terminaal-"
-"programme"
+msgstr "Redigeerders, instruksiedoppe, lêernutsprogramme, terminaal-programme"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Ontwikkeling"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
-msgstr "C en C++ ontwikkelingsprogrammateke, programme en insluitlêers"
+msgstr "C en C++ ontwikkelingsbiblioteke, programme en insluitlêers"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Dokumentasie"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
-msgstr "Boeke en HOWTO's oor Linux en Vrye Sagteware"
+msgstr "Boeke en HOWTO's oor Linux en Vry Sagteware"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
-msgstr "Linux Standard Base. Derdeparty ondersteuning van programme"
+msgstr "Linux Standard Base. Ondersteuning vir derdepartyprogramme"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
-msgstr "Web-bediener"
+msgstr "Webbediener"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:84
+#, c-format
msgid "Groupware"
-msgstr "Groep:"
+msgstr ""
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Kolab-bediener"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
-msgstr "Vuurmuur/Netwerkroteerder"
+msgstr "Brandmuur/Netwerkroteerder"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
-msgstr "Internetpoort"
+msgstr "Internetdeurgang"
-#: share/meta-task/compssUsers.pl:83
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:92
+#, c-format
msgid "Mail/News"
-msgstr "/Lêer/_Nuut"
+msgstr "Pos/Nuus"
-#: share/meta-task/compssUsers.pl:84
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:93
+#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Postfix e-pos-bediener"
+msgstr "Postfix-posbediener, Inn-nuusbediener"
-#: share/meta-task/compssUsers.pl:87
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:97
+#, c-format
msgid "Directory Server"
-msgstr "Herstel vanaf CD"
+msgstr "Gidsbediener"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP-bediener"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
-msgstr ""
+msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "Domeinnaam en Netwerk-informasie-bediener (DNS/NIS)"
+msgstr "Domeinnaam- en netwerk-inligtingbediener (DNS/NIS)"
-#: share/meta-task/compssUsers.pl:99
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:112
+#, c-format
msgid "File and Printer Sharing Server"
-msgstr "Drukkerbediener"
+msgstr "Bediener vir deel van lêers en drukkers"
-#: share/meta-task/compssUsers.pl:100
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:113
+#, c-format
msgid "NFS Server, Samba server"
-msgstr "Samba-bediener"
+msgstr "NFS-bediener, Samba-bediener"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Databasis"
-#: share/meta-task/compssUsers.pl:104
-#, fuzzy, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL of MySQL databasisbediener"
+#: share/meta-task/compssUsers.pl:118
+#, c-format
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "PostgreSQL- en MariaDB-databasisbediener"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
-msgstr "e-Pos"
+msgstr "Pos"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
-msgstr "Postfix e-pos-bediener"
+msgstr "Postfix e-posbediener"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL of MySQL databasisbediener"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL- of MariaDB-databasisbediener"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Netwerkrekenaar-bediener"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "NFS, SMB, Instaan- , SSH (Bedieners)"
+msgstr "NFS-bediiener, SMB-bediener, Instaanbediener, SSH-bediener"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
-msgstr "Grafiese Omgewing"
+msgstr "Grafiese omgewing"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE Werkstasie"
+msgid "Plasma Workstation"
+msgstr "Plasma-werkstasie"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -585,74 +703,128 @@ msgstr ""
"Die K-werkskermomgewing (KDE), die basiese grafiese omgewing met 'n "
"versameling bygaande hulpprogramme"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "GNOME-werkstasie"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr ""
-"'n Grafiese omgewing met gebruikersvriendelike stel applikasies en "
+"’n Grafiese omgewing met gebruikersvriendelike toepassings en werkskerm-"
+"hulpprogramme"
+
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr "Xfce-werkstasie"
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"’n Ligter grafiese omgewing met gebruikersvriendelike toepassings en "
"werkskerm-hulpprogramme"
-#: share/meta-task/compssUsers.pl:142
-#, fuzzy, c-format
-msgid "IceWm Desktop"
-msgstr "'n Werkstasie"
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "MATE-werkstasie"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Cinnamon-werkstasie"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "’n Grafiese omgewing gebaseer op GNOME"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "LXQt-werkskerm"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr "Enlightenment-werkskerm"
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr "'n Liggewig, vinnige grafiese omgewing met getroue volgelinge"
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "LXDE-werkskerm"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "’n Liggewig, vinnige grafiese omgewing"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
-msgstr "Ander Grafiese Werkskerms"
+msgstr "Ander grafiese werkskerms"
-#: share/meta-task/compssUsers.pl:147
-#, fuzzy, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm, ens."
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, ens."
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Nutsprogramme"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH-bediener"
-#: share/meta-task/compssUsers.pl:177
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:225
+#, c-format
msgid "Webmin"
-msgstr "Webkamera"
+msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:226
+#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Terminal Server Konfigurasie"
+msgstr ""
-#: share/meta-task/compssUsers.pl:182
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:230
+#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Monitor van Netwerk"
+msgstr "Netwerknutsprogramme/monitering"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr ""
-#: share/meta-task/compssUsers.pl:187
-#, fuzzy, c-format
-msgid "Mandriva Wizards"
-msgstr "<b>Mandriva Store</b>"
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr ""
-#: share/meta-task/compssUsers.pl:188
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:236
+#, c-format
msgid "Wizards to configure server"
-msgstr "Probleme met die konfigurasie van drukker \" %s\"!"
+msgstr ""
#: steps.pm:85
#, c-format
@@ -660,10 +832,10 @@ msgid ""
"An error occurred, but I do not know how to handle it nicely.\n"
"Continue at your own risk."
msgstr ""
-"'n Fout het plaasgevind en ek weet nie hoe om dit veilig te hanteer\n"
+"’n Fout het plaasgevind en ek weet nie hoe om dit veilig te hanteer\n"
"nie. Gaan op u eie risiko voort."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -673,321 +845,375 @@ msgid ""
msgstr ""
"Sekere belangrike pakkette het nie korrek geïnstalleer nie.\n"
"Óf die CDROM-aandrywer óf die CD is foutief.\n"
-"Toets die CD op 'n werkende Linux installasie met \"rpm -qpl media/main/*.rpm"
+"Toets die CD op 'n werkende Linux-installasie met \"rpm -qpl media/main/*.rpm"
"\"\n"
#: steps_auto_install.pm:71 steps_stdio.pm:27
#, c-format
msgid "Entering step `%s'\n"
-msgstr "Gaan stap '%s' binne\n"
+msgstr "Gaan stap “%s” binne\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux Installasie %s"
+msgid "%s Installation %s"
+msgstr "%s-installasie %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> tussen elemente"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Xorg-bediener neem lank om te begin. Wag asseblief..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
"U stelsel het min hulpbronne beskikbaar. U mag dalk probleme\n"
-"ondervind met die installering\n"
-"van Mandriva Linux. In so 'n geval probeer eerder die teksinstallasie.\n"
-"Daarvoor moet u\n"
-"'F1' druk wanneer u vanaf die CDROM herlaai en dan 'text' op die\n"
-"instruksielyn intik."
+"ondervind met die installering van %s. In so 'n geval probeer\n"
+"eerder die teksinstallasie. Daarvoor moet u “F1” druk wanneer\n"
+"u vanaf die CDROM herlaai en dan “text” op die instruksielyn\n"
+"intik."
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Mediaseleksie"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Installeer %s plasmawerkskerm"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Installeer %s GNOME-werkskerm"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Eie installasie"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Plasma-werkskerm"
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "GNOME-werkskerm"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Eie werkskerm"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Hier is ’n voorskou van die “%s”-werkskerm."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Klik op prente vir ’n groter voorskou"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
-msgstr "Kies Pakketgroepe"
+msgstr "Kies pakketgroepe"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Individuele pakket-seleksie"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Totale grootte: %d / %d MB"
+msgid "Unselect All"
+msgstr "Maak seleksie skoon"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Foutiewe pakket"
+msgid "Total size: %d / %d MB"
+msgstr "Totale grootte: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Weergawe: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Grootte: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Belangrikheid: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "U kan nie hierdie pakket selekteer/deselekteer nie"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
-msgstr "deur %s wat soek is"
+msgstr "weens %s wat soek is"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
-msgstr "deur problematiese %s"
+msgstr "weens onvoldoende %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "probeer promosie van %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "om %s te kan behou"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"U kan nie hierdie pakket selekteer nie, omdat daar nie meer spasie "
"beskikbaar is nie"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
-msgstr "Ons gaan die volgende pakette installeer"
+msgstr "Die volgende pakkette gaan geïnstalleer word"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Die volgende pakkette gaan verwyder word"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
-msgstr "Hierdie is 'n verpligte pakket. Dit kan nie uitgehaal word nie."
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr "Hierdie is ’n verpligte pakket. Dit kan nie uitgehaal word nie."
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
-msgstr "U kan nie heirdie pakket verwyder nie. Dis alreeds geïnstalleer"
+msgid "You cannot unselect this package. It is already installed"
+msgstr "U kan nie hierdie pakket verwyder nie. Dit is reeds geïnstalleer."
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "U kan nie hierdie pakket deselekteer nie. Dit moet opgradeer word."
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
-msgstr "Wys outogeselekteerde pakkette."
+msgstr "Wys outogeselekteerde pakkette"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Installasie"
-#: steps_gtk.pm:436
-#, fuzzy, c-format
+#: steps_gtk.pm:519
+#, c-format
msgid "Load/Save selection"
-msgstr "Pakketkeuse"
+msgstr "Laai/stoor seleksie"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Pakketseleksie word opgedateer"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Minimale installasie"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
-msgstr "Sagteware Beheer"
+msgstr "Sagtewarebestuur"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Kies die pakkette wat u wil installeer"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Besig met installasie"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
-msgstr "Geen Detail"
+msgstr "Geen detail"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Tyd oor "
+msgid "Time remaining:"
+msgstr "Tyd oor:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Skatting"
+msgid "(estimating...)"
+msgstr "(skat tans...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d pakket"
msgstr[1] "%d pakkette"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Opsomming"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
-msgstr "Konfigureer"
+msgstr "Opstelling"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "nie gekonfigureer nie"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
+"Die volgende installasiemedia is gevind.\n"
+"Indien u sommige wil oorslaan, ontmerk hulle nou."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
+"U het die keuse om die inhoud van die CD’s na die hardeskyf te kopieer voor "
+"installasie.\n"
+"Installasie sal dan van die hardeskyf af voortgaan en die pakkette sal "
+"beskikbaar bly wanneer die stelsel volledig geïnstalleer is."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
-msgstr ""
+msgstr "Kopieer hele CD’s"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "'n Fout het voorgekom"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Kies asseblief u sleutelborduitleg."
+msgid "Please choose your keyboard layout"
+msgstr "Kies asseblief u sleutelborduitleg"
-#: steps_interactive.pm:99
-#, fuzzy, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Hier is die volle lys van beskikbare lande"
+#: steps_interactive.pm:109
+#, c-format
+msgid "Here is the full list of available keyboards:"
+msgstr "Hier is die volledige lys beskikbare sleutelborde:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Installeer/Opgradeer"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Is hierdie 'n installasie of opgradering?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Installasie"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
-msgstr "Opgradeer %s"
-
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
+msgstr "Gradeer %s op"
-#: steps_interactive.pm:144
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
+msgid "Encryption key for %s"
+msgstr "Enkripsiesleutel vir %s"
-#: steps_interactive.pm:158
+#: steps_interactive.pm:217
#, c-format
-msgid "Encryption key for %s"
-msgstr "Enkripsie-sleutel vir %s"
+msgid "Cancel installation, reboot system"
+msgstr "Kanselleer installasie. Herlaai die stelsel."
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "New Installation"
+msgstr "Nuwe installasie"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "Configuring IDE"
-msgstr "IDE word opgestel"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Gradeer vorige installasie op (nie aanbeveel nie)"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"Geen beskikbare 1MB herlaaipartisie nie! Installasie sal voortgaan, maar u "
-"sal herlaaipartisie met DiskDrake moet skep indien u die stelsel wil "
-"herlaai."
-#: steps_interactive.pm:236
-#, fuzzy, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
msgstr ""
-"Geen beskikbare 1MB herlaaipartisie nie! Installasie sal voortgaan, maar u "
-"sal herlaaipartisie met DiskDrake moet skep indien u die stelsel wil "
-"herlaai."
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1001,157 +1227,204 @@ msgstr ""
"nie\n"
"hieroor beskik nie, druk Kanselleer om installasies vanaf dié CDROM te vermy."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
-msgstr "Soek vir beskikbare pakkette"
+msgstr "Soek tans vir beskikbare pakkette..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
+"Die stelsel het nie genoeg plek oor vir installasie of opgradering nie (%dMB "
+"> %dMB)"
-#: steps_interactive.pm:405
-#, fuzzy, c-format
+#: steps_interactive.pm:428
+#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-"Kies asb. die laai of stoor pakketkeuse op die floppie.\n"
-"Die formaat is dieselfde as outoinstallasie-genereerde floppies."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
-msgstr "Las"
+msgstr "Laai"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Stoor"
-#: steps_interactive.pm:415
-#, fuzzy, c-format
+#: steps_interactive.pm:438
+#, c-format
msgid "Bad file"
-msgstr "Laai lêer"
+msgstr "Slegte lêer"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr ""
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Minimale installasie"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr "Werkskermkeuse"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
+msgid "You can choose your workstation desktop profile."
+msgstr "Kies gerus die werkskermprofiel vir u werkstasie."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
-msgstr "Geselekteerde grootte is groter as beskikbare spasie."
+msgstr "Geselekteerde grootte is groter as beskikbare spasie"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Tipe installasie"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
-"U het glad nie 'n groep pakkette gekies nie.\n"
+"U het geen groep pakkette gekies nie.\n"
"Kies asseblief die tipe minimale installasie:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Met X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Installeer aanbevole pakkette"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Met basiese dokumentasie (word aanbeveel!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
-msgstr "Absolute minimale installasie (geen urpmi!)"
+msgstr "Absolute minimale installasie (veral geen urpmi)"
+
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Berei tans opgradering voor..."
-#: steps_interactive.pm:596
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
-msgstr "Berei installasie voor"
+msgstr "Berei tans installasie voor"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
-msgstr "Installeer pakket %s"
+msgstr "Installeer tans pakket %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
-msgstr "Daar was 'n fout met pakkette:"
+msgstr "Daar was 'n fout met volgorde van pakkette:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Gaan steeds voort?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
-msgstr ""
+msgstr "Probeer weer"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
-msgstr ""
+msgstr "Slaan dié pakket oor"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
-msgstr ""
+msgstr "Slaan alle pakkette van medium “%s” oor"
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "Stoor pakketseleksie"
+msgstr "Gaan terug na media- en pakketseleksie"
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "Daar was 'n fout met die installasie van die pakkette:"
+msgstr "Daar was ’n fout met installering van pakket %s."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Post-installasiekonfigurasie"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
+msgstr "Bywerkings"
+
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Daar is nou geleentheid om media aanlyn op te stel."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Hiermee kan sekuriteitsbywerkings geïnstalleer word."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
msgstr ""
+"Om sulke media op te stel is ’n werkende internetverbinding nodig.\n"
+"\n"
+"Wil u die bywerkingsmedia opstel?"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Die volgende pakkette gaan geïnstalleer word"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Probeer weer?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Fout met byvoeging van medium"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1163,211 +1436,129 @@ msgid ""
"\n"
"Do you want to install the updates?"
msgstr ""
-"U het nou 'n geleentheid om opgedateerde pakkette af te laai.Hierdie "
-"pakkette is opgedateer na die distribusie vrygestel is.\n"
-"Hulle mag moontlike sekuriteits-probleme en goggas regstel.\n"
+"U het nou ’n geleentheid om bygewerkte pakkette af te laai. Hierdie "
+"pakkette\n"
+"is opgedateer na die distribusie vrygestel is. Hulle kan "
+"sekuriteitsprobleme\n"
+"en goggas regstel.\n"
"\n"
-"Sou u hulle wil aflaai, benodig u 'n werkende Internetkonneksie.\n"
+"Om hulle af te n laai, is ’n werkende Internetkonneksie nodig.\n"
"\n"
-"Wil u dit nou installeer?"
+"Wil u die bywerkings nou installeer?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Spieël word gekontak vir die lys van pakkette..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Kon nie die spieëlwebplek %s kontak nie"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s op %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Hardeware"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Klankkaart"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Beskik u oor 'n ISA klankkaart?"
-
-#: steps_interactive.pm:904
-#, fuzzy, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr "Loop \"sndconfig\" na die installasie om u klankkaart te konfigureer"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Geen klankkaart opgespoor nie. Probeer \"harddrake\" na die installasie"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
-msgstr "Grafiese-koppelvlak"
+msgstr "Grafiese koppelvlak"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
-msgstr "Netwerk & Internet"
+msgstr "Netwerk en internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
-msgstr "Instaan bedieners"
+msgstr "Instaanbedieners"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "gekonfigureer"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Sekuriteitsvlak"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
-msgstr "Vuurmuur"
+msgstr "Brandmuur"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
-msgstr "ge-aktiveer"
+msgstr "geaktiveer"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
-msgstr "ge-deaktiveer"
+msgstr "gedeaktiveer"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
-msgstr "U het nog nie 'X' opgestel nie. Verlang u dit regtig?"
+msgstr "U het nog nie X opgestel nie. Verlang u dit regtig?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "Herlaaistelsel word voorberei..."
-
-#: steps_interactive.pm:1018
-#, fuzzy, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Preparing initial startup program..."
msgstr ""
-"Dit wil voorkom of u 'n 'OldWorld' of Onbekende\n"
-"rekenaar het, die yaboot herlaaistelsel sal nie hier werk nie.\n"
-"Ons sal voortgaan met die installasie, maar u sal\n"
-"BootX of 'n ander manier moet gedruik om u rekenaar te selflaai"
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Wil u aboot gebruik?"
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Die 'aboot' installasie het gefaal. Wil u 'n installasie afwurg al\n"
-"word die eerste partisie vernietig?"
+msgid "Be patient, this may take a while..."
+msgstr "Net ’n oomblik. Dit kan ’n rukkie neem..."
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-"Met hierdie sekuriteitsvlak word toegang na lêers op die Windows partisie "
-"vernou na slegs die administrateur"
+"Met hierdie sekuriteitsvlak word toegang na lêers op die Windows-partisie "
+"beperk tot die administrateur."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Sit 'n leë floppie in aandrywer %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
-msgstr "Outoinstallasieskyf word geskep."
+msgstr "Outoinstallasieskyf word tans geskep..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
"\n"
"Do you really want to quit now?"
msgstr ""
-"Bepaalde stappe is nie afgehandel nie.\n"
+"Sekere stappe is nie afgehandel nie.\n"
"\n"
-"Wil u werklik nou eindig?"
+"Wil u definitief nou afsluit?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Geluk"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Herlaai"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Skep outoinstallasieskyf"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Die outomatiese installasie kan ten volle geoutomatiseer\n"
-"word, in daardie geval kan dit die hardeskyf oorskryf!!!\n"
-"(dit is vir die installasie op 'n ander rekenaar).\n"
-"\n"
-"U mag verkies om hierdie installasie elders te herhaal.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Herspeel"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Outomaties"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Stoor pakketseleksie"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1379,7 +1570,7 @@ msgstr "Taal"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "Lokalisering"
#: steps_list.pm:17
#, c-format
@@ -1400,14 +1591,14 @@ msgstr "Muis"
msgid ""
"_: Keep these entry short\n"
"Hard drive detection"
-msgstr "Hardeskyf-speuring."
+msgstr "Hardeskyfbespeuring"
#: steps_list.pm:21 steps_list.pm:22
#, c-format
msgid ""
"_: Keep these entry short\n"
"Installation class"
-msgstr ""
+msgstr "Installasieklas"
#: steps_list.pm:23
#, c-format
@@ -1428,28 +1619,28 @@ msgstr "Sekuriteit"
msgid ""
"_: Keep these entry short\n"
"Partitioning"
-msgstr "Partisionering"
+msgstr "Partisies"
#: steps_list.pm:27 steps_list.pm:28
#, c-format
msgid ""
"_: Keep these entry short\n"
"Formatting"
-msgstr ""
+msgstr "Formatering"
#: steps_list.pm:29
#, c-format
msgid ""
"_: Keep these entry short\n"
"Choosing packages"
-msgstr ""
+msgstr "Pakketseleksie"
#: steps_list.pm:31
#, c-format
msgid ""
"_: Keep these entry short\n"
"Installing"
-msgstr "Besig met installasie"
+msgstr "Installlasie"
#: steps_list.pm:34
#, c-format
@@ -1458,13 +1649,6 @@ msgid ""
"Users"
msgstr "Gebruikers"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Netwerk"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1498,72 +1682,32 @@ msgstr "Dienste"
msgid ""
"_: Keep these entry short\n"
"Updates"
-msgstr ""
+msgstr "Bywerkings"
#: steps_list.pm:48
#, c-format
msgid ""
"_: Keep these entry short\n"
"Exit"
-msgstr "Verlaat"
-
-#~ msgid "All"
-#~ msgstr "Alles"
-
-#~ msgid "TV card"
-#~ msgstr "TV-kaart"
-
-#~ msgid "Boot"
-#~ msgstr "Selflaai"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Magtiging"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "(%d pakket, %d MB)"
-#~ msgstr[1] "(%d pakkette, %d MB)"
-
-#~ msgid "%d packages"
-#~ msgstr "%d pakkette"
+msgstr "Sluit af"
-#~ msgid "Language"
-#~ msgstr "Taal"
-
-#~ msgid "License"
-#~ msgstr "Lisensie"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "Kies installasieklas"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "Skatting"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "Kies pakkette om te installeer"
-
-#~ msgid "Users"
-#~ msgstr "Gebruikers"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "URL van die spieëlwerf?"
-#~ msgid "Networking"
-#~ msgstr "Netwerk"
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "URL moet met ftp:// of http:// begin"
-#~ msgid "Configure X"
-#~ msgstr "Stel X op"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr "Kontak tans die %s-webwerf vir 'n lys van spieëlwerwe..."
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
#~ msgstr ""
-#~ "Kan nie die toegang tot die 'kernel'-modules vir hierdie 'kernel' kry "
-#~ "nie. ( lêer %s is soek). Dit beteken normaalweg dat u selflaaiskyf "
-#~ "verskil van die Installasie-media sin ( skep assebleif 'n nuwer disket)"
+#~ "Kon nie die %s-webwerf kontak om die lys beskikbare spieëlwerwe te kry nie"
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Kies 'n spieëlwerf waar die pakkette verkry kan word"
diff --git a/perl-install/install/share/po/am.po b/perl-install/install/share/po/am.po
index eb2ef5f6b..cc2da325f 100644
--- a/perl-install/install/share/po/am.po
+++ b/perl-install/install/share/po/am.po
@@ -1,156 +1,230 @@
-# Latest versions of po files are at http://www.mandrivalinux.com/l10n/am.php3
-# Copyright (C) 2004 Mandriva SA
-# Alemayehu Gemeda <alemayehu@gmx.at>, 2004.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Alemayehu Gemeda <alemayehu@gmx.at>, 2004
msgid ""
msgstr ""
-"Project-Id-Version: DrakX\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\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"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Amharic (http://www.transifex.com/MageiaLinux/mageia/language/"
+"am/)\n"
+"Language: am\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: any.pm:155
-#, fuzzy, c-format
-msgid "Do you have further supplementary media?"
-msgstr "ሌላ አለ?"
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: ../../advertising/02_IM_mageia.pl:1
#, c-format
-msgid ""
-"The following media have been found and will be used during install: %s.\n"
-"\n"
-"\n"
-"Do you have a supplementary installation medium to configure?"
+msgid "Make it yours!"
msgstr ""
-#: any.pm:166
+#: ../../advertising/03_IM_mageia.pl:1
#, c-format
-msgid "CD-ROM"
-msgstr "ሲዲ-ሮም"
+msgid "Your choice!"
+msgstr ""
-#: any.pm:167
-#, fuzzy, c-format
-msgid "Network (HTTP)"
-msgstr "መረብ"
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
-#: any.pm:168
-#, fuzzy, c-format
-msgid "Network (FTP)"
-msgstr "መረብ"
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
-#: any.pm:169
+#: ../../advertising/06_IM_mageia.pl:1
#, c-format
-msgid "Network (NFS)"
+msgid "For kids"
msgstr ""
-#: any.pm:211
+#: ../../advertising/07_IM_mageia.pl:1
#, c-format
-msgid "URL of the mirror?"
+msgid "For family!"
msgstr ""
-#: any.pm:217
+#: ../../advertising/08_IM_mageia.pl:1
#, c-format
-msgid "URL must start with ftp:// or http://"
+msgid "For developers!"
msgstr ""
-#: any.pm:228
+#: ../../advertising/09_IM_mageia.pl:1
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
+msgid "Thank you!"
+msgstr ""
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
msgstr ""
-#: any.pm:233
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr ""
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
+msgstr ""
+
+#: any.pm:162
+#, c-format
+msgid "Network (HTTP)"
+msgstr ""
+
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
msgstr ""
-#: any.pm:243
+#: any.pm:164
#, c-format
-msgid "Choose a mirror from which to get the packages"
+msgid "Network (NFS)"
msgstr ""
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr ""
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr ""
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr ""
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr ""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr ""
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "ዶሴ"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr ""
-#: any.pm:341
-#, fuzzy, c-format
+#: any.pm:300
+#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
-msgstr "መረጃ በ%s መጠቀሚያ ፕሮግራም ላይ"
+msgstr ""
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
+msgid "Core Release"
msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
+msgid "Tainted Release"
msgstr ""
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
+msgid "Nonfree Release"
msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr ""
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr ""
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
msgstr ""
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -159,82 +233,87 @@ msgid ""
"Do you really want to remove these packages?\n"
msgstr ""
-#: any.pm:1055
-#, fuzzy, c-format
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "%sን በማንበብ ላይ ስህተት ተፈጥሯል"
+
+#: any.pm:1283
+#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "የሚከተሉት ጥቅሎች ሊወገዱ ነው"
+msgstr ""
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr ""
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "መረብ"
-#: any.pm:1137
-#, fuzzy, c-format
+#: any.pm:1365
+#, c-format
msgid "Please choose a media"
-msgstr "እባክዎ ያለ ሰነድን ይምረጡ"
+msgstr ""
-#: any.pm:1153
-#, fuzzy, c-format
+#: any.pm:1381
+#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "ፋይሉ በፊትም ነበር። ልጠቀምበት?"
+msgstr ""
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "ፈቃድ አልተሰጠም"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr ""
-#: any.pm:1226
-#, fuzzy, c-format
+#: any.pm:1454
+#, c-format
msgid "Bad media %s"
-msgstr "ፋይል ተጭኗል %s"
+msgstr ""
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr ""
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr ""
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
-msgstr "በመትከል ላይ"
+msgstr ""
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "ስየማ"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr ""
@@ -256,368 +335,458 @@ msgstr "መረቡን በማቀራረብ ላይ"
msgid "Bringing down the network"
msgstr "መረቡን በማለያየት ላይ"
-#: media.pm:703 media.pm:714
-#, fuzzy, c-format
-msgid "Downloading file %s..."
-msgstr "የቅርብ ጊዜ ፋይሎች"
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
+
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr ""
-#: media.pm:861
-#, fuzzy, c-format
+#: media.pm:797
+#, c-format
msgid "Copying in progress"
-msgstr "የተሻሻለ ዊድጌት ፍጠር"
+msgstr ""
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr ""
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "አስፈላጊ"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "በጣም ጥሩ"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "ጥሩ"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "ምናልባት"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr ""
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
+msgid "An error occurred:"
msgstr ""
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
+msgid "A fatal error occurred: %s."
msgstr ""
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr ""
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
msgstr ""
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr ""
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr ""
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr ""
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr ""
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr ""
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr ""
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr ""
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr ""
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr ""
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr ""
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "እድገት"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr ""
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "ማስረጃ"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr ""
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr ""
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr ""
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "የመረብ ሰርቨር"
-#: share/meta-task/compssUsers.pl:72
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:80
+#, c-format
msgid "Apache"
-msgstr "መተላለፊያ"
+msgstr ""
-#: share/meta-task/compssUsers.pl:75
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:84
+#, c-format
msgid "Groupware"
-msgstr "የውይይት መድረክ"
+msgstr ""
-#: share/meta-task/compssUsers.pl:76
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:85
+#, c-format
msgid "Kolab Server"
-msgstr "የሳምባ ተጠሪ"
+msgstr ""
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr ""
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr ""
-#: share/meta-task/compssUsers.pl:83
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:92
+#, c-format
msgid "Mail/News"
-msgstr "አዲስ ፋይል።"
+msgstr ""
-#: share/meta-task/compssUsers.pl:84
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:93
+#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "የመልዕክት ተጠሪ ሚስጢራዊ ቃል ያስፈልጋል"
+msgstr ""
-#: share/meta-task/compssUsers.pl:87
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:97
+#, c-format
msgid "Directory Server"
-msgstr "በዝርዝር ውስጥ ዶሴ ጨምር"
+msgstr ""
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "የFTP ተጠሪ"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr ""
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:108
+#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "የዘርፍ ስም ሰርቨር"
+msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:99
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:112
+#, c-format
msgid "File and Printer Sharing Server"
-msgstr "የማተሚያ ሰርቨር"
+msgstr ""
-#: share/meta-task/compssUsers.pl:100
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:113
+#, c-format
msgid "NFS Server, Samba server"
-msgstr "የሳምባ ሰርቨር"
+msgstr ""
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "ዳታቤዝ"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
+msgid "PostgreSQL and MariaDB Database Server"
msgstr ""
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr ""
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr ""
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "ፖስታ"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr ""
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
+msgid "PostgreSQL or MariaDB database server"
msgstr ""
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr ""
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr ""
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr ""
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
+msgid "Plasma Workstation"
msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr ""
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr ""
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr ""
-#: share/meta-task/compssUsers.pl:142
-#, fuzzy, c-format
-msgid "IceWm Desktop"
-msgstr "ሰሌዳ"
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr ""
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
+msgid "Window Maker, Fvwm, etc"
msgstr ""
-#: share/meta-task/compssUsers.pl:170
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:218
+#, c-format
msgid "Utilities"
-msgstr "ፊሊፒንስ"
+msgstr ""
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
+#, c-format
msgid "SSH Server"
-msgstr "ስለተጠሪ መረጃ"
+msgstr ""
-#: share/meta-task/compssUsers.pl:177
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:225
+#, c-format
msgid "Webmin"
-msgstr "ዌብ-ካም"
+msgstr ""
-#: share/meta-task/compssUsers.pl:178
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:226
+#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "ቀዳሚ ተጠሪ ይጠቀም"
+msgstr ""
-#: share/meta-task/compssUsers.pl:182
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:230
+#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Name=መረብ"
+msgstr ""
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr ""
-#: share/meta-task/compssUsers.pl:187
-#, fuzzy, c-format
-msgid "Mandriva Wizards"
-msgstr "<b>የMandriva Linux ባለሞያ</b>"
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr ""
-#: share/meta-task/compssUsers.pl:188
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:236
+#, c-format
msgid "Wizards to configure server"
-msgstr "የባሕር-መዝገብ እሴት '%s' ወደ '%s' እንደገና መሰየም አልተቻለም።"
+msgstr ""
#: steps.pm:85
#, c-format
@@ -626,7 +795,7 @@ msgid ""
"Continue at your own risk."
msgstr ""
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -642,297 +811,352 @@ msgstr ""
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "የMandriva Linux ተከላ %s"
+msgid "%s Installation %s"
+msgstr "የ%s ተከላ %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr ""
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "የጥቅል ቡድን ምርጫ"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "የነጠላ ጥቅል ምርጫ"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "አጠቃላይ መጠን: %d / %d MB"
+msgid "Unselect All"
+msgstr ""
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "ትክክል ያልሆነ ጥቅል"
+msgid "Total size: %d / %d MB"
+msgstr "አጠቃላይ መጠን: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "ዝርያ: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "መጠን: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "አስፈላጊነት: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "ይህን ጥቅል መምረጥ/አለመምረጥ አይችሉም"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "%s ባለመገኘቱ ምክንያት"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "%s አጥጋቢ ባለመሆኑ ምክንያት"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "%sን ለማስተዋወቅ በመሞከር ላይ"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "%sን ለማቆየት"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "የሚከተሉት ጥቅሎች ሊተከሉ ነው"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "የሚከተሉት ጥቅሎች ሊወገዱ ነው"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr ""
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "ይህንን ጥቅል መምረጥ አይችሉም። ቀደም ብሎ ተተክሏል።"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr ""
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr ""
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "ትከል"
-#: steps_gtk.pm:436
-#, fuzzy, c-format
+#: steps_gtk.pm:519
+#, c-format
msgid "Load/Save selection"
-msgstr "የጥቅል ምርጫ"
+msgstr ""
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "የጥቅል ምርጫ በማሻሻል ላይ"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "አነስተኛ ተከላ"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr ""
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "ለመትከል የሚፈልጉትን ጥቅል ይምረጡ"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "በመትከል ላይ"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "ያለ ዝርዝሮች"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr " ይቀራል"
+msgid "Time remaining:"
+msgstr ""
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "በግምት"
+msgid "(estimating...)"
+msgstr ""
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d ጥቅሎች"
-msgstr[1] "%d ጥቅሎች"
+msgstr[0] ""
+msgstr[1] ""
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "ማጠቃለያ"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "ለውጥ"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "አልተስተካከለም"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr ""
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "ስህተት ተፈጥሯል"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
+msgid "Please choose your keyboard layout"
msgstr ""
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
+msgid "Here is the full list of available keyboards:"
msgstr ""
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "ትከል/አሳድግ"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr ""
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "ትከል"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr ""
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
+msgid "Encryption key for %s"
+msgstr "የ%s ሚስጢራዊ መገልበጫ ቁልፍ"
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
+msgid "Cancel installation, reboot system"
msgstr ""
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
-msgstr "የ%s ሚስጢራዊ መገልበጫ ቁልፍ"
+msgid "New Installation"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
-msgstr "IDEን በማስተካከል ላይ"
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+msgid "CD/DVD"
msgstr ""
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+msgid "Configuring CD/DVD"
msgstr ""
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -941,153 +1165,197 @@ msgid ""
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr ""
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "ጫን"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "አስቀምጥ"
-#: steps_interactive.pm:415
-#, fuzzy, c-format
+#: steps_interactive.pm:438
+#, c-format
msgid "Bad file"
-msgstr "1 ፋይል"
+msgstr ""
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "ኖም"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "አነስተኛ ተከላ"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr ""
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "የተከላው አይነት"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "በX"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr ""
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr ""
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "ተከላ በማዘጋጀት ላይ"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "የ%s ጥቅል በመትከል ላይ"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr ""
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "ለማንኛውም ቀጥል?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr ""
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr ""
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr ""
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "የጥቅሎችን ምርጫ አስቀምጥ"
+msgstr ""
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "የ%s ጥቅል በመትከል ላይ"
+msgstr ""
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Post-install configuration"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "አሻሻዎች"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "የሚከተሉት ጥቅሎች ሊተከሉ ነው"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr ""
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1100,139 +1368,97 @@ msgid ""
"Do you want to install the updates?"
msgstr ""
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr ""
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "ከአንጸባራቂ %s ጋር መገናኘት አልተቻለም"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s %s ላይ ነው"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "ሀርድዌር"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "የድምፅ ካርድ"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "የISA ድምጽ ካርድ አለዎት?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "ንድፋዊ እይታ"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "መረብ እና ኢንተርኔት"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "ወኪሎች"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "ተስተካክሏል"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "የደህንነት ደረጃ"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "የእሳት ግድግዳ"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "መስራት ጀምሯል"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "መስራት አቁሟል"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr ""
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "አስጀማሪ በማዘጋጀት ላይ..."
-
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Preparing initial startup program..."
msgstr ""
-#: steps_interactive.pm:1024
-#, fuzzy, c-format
-msgid "Do you want to use aboot?"
-msgstr "ስራ-እቅዱን መሠረዝ ይፈልጋሉ?"
-
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
+msgid "Be patient, this may take a while..."
msgstr ""
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr ""
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr ""
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1240,46 +1466,16 @@ msgid ""
"Do you really want to quit now?"
msgstr ""
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "እንኳን ደስ ያለዎ!"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "እንደገና ጀምር"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr ""
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr ""
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr ""
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "የጥቅሎችን ምርጫ አስቀምጥ"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1370,13 +1566,6 @@ msgid ""
"Users"
msgstr "ተጠቃሚዎች"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "መረብ"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1418,48 +1607,3 @@ msgid ""
"_: Keep these entry short\n"
"Exit"
msgstr "ውጣ"
-
-#~ msgid "All"
-#~ msgstr "ሁሉንም"
-
-#~ msgid "TV card"
-#~ msgstr "የቲቪ ካርድ"
-
-#~ msgid "Boot"
-#~ msgstr "ጀምር"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "%d ጥቅሎች"
-#~ msgstr[1] "%d ጥቅሎች"
-
-#~ msgid "%d packages"
-#~ msgstr "%d ጥቅሎች"
-
-#~ msgid "Language"
-#~ msgstr "ቋንቋ"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "በመትከል ላይ"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "በግምት"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "%d ጥቅሎች"
-
-#~ msgid "Users"
-#~ msgstr "ተጠቃሚዎች"
-
-#~ msgid "Networking"
-#~ msgstr "መረብ"
-
-#~ msgid "Configure X"
-#~ msgstr "Xን ሰይም"
diff --git a/perl-install/install/share/po/ar.po b/perl-install/install/share/po/ar.po
index 3cbe7de4c..d962bce2c 100644
--- a/perl-install/install/share/po/ar.po
+++ b/perl-install/install/share/po/ar.po
@@ -1,174 +1,240 @@
-# translation of DrakX.po to Arabic
-# Amr Fathy <amr10@menanet.net>, 2001.
-# Mohammed Gamal <f2c2001@yahoo.com>, 2002.
-# Youcef Rabah Rahal <rahal@arabeyes.org>, 2004.
-# Ossama M. Khayat <okhayat@yahoo.com>, 2004, 2005.
-# Munzir Taha <munzir@kacst.edu.sa>, 2004.
-# Abdulaziz Al-Arfaj <alarfaj@arabeyes.org>, 2005.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
msgid ""
msgstr ""
-"Project-Id-Version: DrakX\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2005-03-03 01:06+0300\n"
-"Last-Translator: Ossama M. Khayat <okhayat@yahoo.com>\n"
-"Language-Team: Arabic <support@arabeyes.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Arabic (http://www.transifex.com/MageiaLinux/mageia/language/"
+"ar/)\n"
+"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.9.1\n"
-"Plural-Forms: nplurals=4; plural=n==1 ? 0 : n==2 ? 1 : n>=3 && n<=10 ? 2 : "
-"3\n"
+"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
+"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
#, c-format
-msgid "Do you have further supplementary media?"
-msgstr "هل لديك أوساط إضافيّة أخرى؟"
+msgid "Join Us!"
+msgstr "انضم إلينا!"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: ../../advertising/02_IM_mageia.pl:1
#, c-format
-msgid ""
-"The following media have been found and will be used during install: %s.\n"
-"\n"
-"\n"
-"Do you have a supplementary installation medium to configure?"
-msgstr ""
+msgid "Make it yours!"
+msgstr "لتكن ملكك!"
-#: any.pm:166
+#: ../../advertising/03_IM_mageia.pl:1
#, c-format
-msgid "CD-ROM"
-msgstr "القرص المدمج"
+msgid "Your choice!"
+msgstr "اختيارك!"
-#: any.pm:167
+#: ../../advertising/04_IM_mageia.pl:1
#, c-format
-msgid "Network (HTTP)"
-msgstr "الشبكة (HTTP)"
+msgid "Office tools"
+msgstr "أدوات مكتبية"
-#: any.pm:168
+#: ../../advertising/05_IM_mageia.pl:1
#, c-format
-msgid "Network (FTP)"
-msgstr "الشبكة (FTP)"
+msgid "Home entertainment"
+msgstr "الترفيه المنزلي"
-#: any.pm:169
+#: ../../advertising/06_IM_mageia.pl:1
#, c-format
-msgid "Network (NFS)"
-msgstr ""
+msgid "For kids"
+msgstr "للأطفال"
-#: any.pm:211
+#: ../../advertising/07_IM_mageia.pl:1
#, c-format
-msgid "URL of the mirror?"
-msgstr "عنوان URL للمرآة؟"
+msgid "For family!"
+msgstr "للعائلة!"
-#: any.pm:217
+#: ../../advertising/08_IM_mageia.pl:1
#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr ""
+msgid "For developers!"
+msgstr "للمطورين!"
-#: any.pm:228
+#: ../../advertising/09_IM_mageia.pl:1
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"جاري الإتصال بموقع ماندريبا لينكس للحصول على قائمة بالمرايا المتوفرة..."
+msgid "Thank you!"
+msgstr "شكرا لك!"
-#: any.pm:233
-#, fuzzy, c-format
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "كن حراً!"
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr "هل لديك وسائط إضافية أخرى؟"
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
+#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
msgstr ""
-"جاري الإتصال بموقع ماندريبا لينكس للحصول على قائمة بالمرايا المتوفرة..."
+"لقد تم العثور على الوسائط التالية وستستخدم خلال التثبيت: %s.\n"
+"\n"
+"\n"
+"هل لديك وسيط تثبيت إضافي لضبطه؟"
-#: any.pm:243
+#: any.pm:162
#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "اختيار مرآة سيتم من خلالها تنزيل الحزم"
+msgid "Network (HTTP)"
+msgstr "الشبكة (HTTP)"
+
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
+msgstr "الشبكة (FTP)"
-#: any.pm:273
+#: any.pm:164
+#, c-format
+msgid "Network (NFS)"
+msgstr "الشبكة (NFS)"
+
+#: any.pm:224
#, c-format
msgid "NFS setup"
-msgstr ""
+msgstr "تثبيت NFS"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
-msgstr ""
+msgstr "فضلا أدخل اسم المضيف والدليل لوسائط NFS"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
-msgstr ""
+msgstr "اسم المضيف غير موجود"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
-msgstr ""
+msgstr "يجب أن يبدأ الدليل بـ \"/\""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
-msgstr ""
+msgstr "اسم مضيف نقطة وصل NFS ؟"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "الدليل"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
-msgstr ""
+msgstr "إضافي"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
-msgstr "لم يمكن العثور على ملف hdlist على هذه المرآة. تأكد من صحة الموقع."
+msgstr "لم يمكن العثور على ملف لائحة الحزم على هذه المرآة. تأكد من صحة الموقع."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "التعرف على الحزم المثبتة مسبقاً..."
+msgid "Core Release"
+msgstr "مخزن Core Release"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
+msgid "Tainted Release"
+msgstr "مخزن Tainted Release"
+
+#: any.pm:329
+#, c-format
+msgid "Nonfree Release"
+msgstr "مخزن Nonfree Release"
+
+#: any.pm:367
+#, c-format
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
+"بعض قطع العتاد في جهازك تحتاج بعض المكتبات الغير حرة لتتمكن التعاريف الحرة "
+"من العمل."
-#: any.pm:424
+#: any.pm:368
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "البحث عن الحزم التي ستتم ترقيتها..."
+msgid "You should enable \"%s\""
+msgstr "يجب أن تفعل \"%s\""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "\"%s\" يحتوي على مختلف مكونات النظام وتطبيقاته"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "\"%s\" يحتوي على برمجيات غير حرة. \n"
+
+#: any.pm:421
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
msgstr ""
-"لقد اخترت الخادمات التالية: %s\n"
-"\n"
-"\n"
-"هذه الخادمات مُنشّطة افتراضياً، و لا يوجد لهم مشاكل أمنية\n"
-"معروفة، و لكن قد تكتشف بعض المشاكل الجديدة. في هذه الحالة، تأكد من أن\n"
-"تقوم بالترقية في أقرب وقت ممكن.\n"
-"\n"
-"\n"
-"هل أنت متأكد أنك تريد تثبيت هذه الخادمات الآن؟\n"
+"يحتوى أيضا على بعض المكتبات الضرورية لتشغيل قطع عتاد معينة ( على سبيل "
+"المثال: كروت الشاشة ATI/AMD، بعض كروت الشبكة، بعض كروت RAID، ...)"
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"\"%s\" يحتوى على برمجيات لا يمكن إعادة نشرها في جميع بقاع العالم بسبب "
+"براءات الاختراع. "
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr "يحتوي أيضا على برمجيات من \"%s\" تم إعادة بنائها بإمكانيات إضافية."
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "هنا يمكنك تفعيل وسائط أكثر إن أردت."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "هذا الوسيط يوفر تحديثات للبرمجيات للوسيط \"%s\""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "جاري البحث عن الحزم المثبتة مسبقا..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "جاري العثور على الحزم التي يمكن ترقيتها... "
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "جاري إزالة الحزم قبيل ترقيتها"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -176,90 +242,95 @@ msgid ""
"\n"
"Do you really want to remove these packages?\n"
msgstr ""
-"سيتم حذف هذه الحزم لكي تتم ترقية النظام: %s\n"
+"ستحذف هذه الحزم للسماح بترقية النظام: %s\n"
"\n"
"\n"
-"هل تريد حذف هذه الحزم فعلاً؟\n"
+"هل تريد حذف هذه الحزم فعلا؟\n"
+
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "خطأ في قراءة الملف %s"
-#: any.pm:1055
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "تمّ تغيير أسماء القرص التّالي أو الأقراص التّالية:"
+msgstr "لقد تم تغيير أسماء الأقراص التالية:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
-msgstr "%s (المسمّى %s سابقاً)"
+msgstr "%s (المسمى %s سابقاً)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "الشبكة"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
-msgstr "الرجاء اختيار وسط"
+msgstr "الرجاء اختيار وسيط"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "الملف موجود مسبقاً. هل تريد الكتابة عليه؟"
+msgstr "الملف موجود مسبقا. هل تريد استبداله؟"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
-msgstr "غير مسموح لك بذلك"
+msgstr "تم رفض الإذن"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
-msgstr ""
+msgstr "اسم NFS غير صالح"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
-msgstr "الوسط %s سيء"
+msgstr "الوسيط %s سيء"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
-msgstr "لا يمكنني عمل لقطات للشاشة قبل التجزئة"
+msgid "Cannot make screenshots before partitioning"
+msgstr "لا يمكن عمل لقطات للشاشة قبل التجزئة"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
-msgstr "ستكون لقطات الشاشة موجودة بعد التثبيت في %s"
+msgstr " لقطات الشاشة ستكون متوفرة بعد التثبيت في %s"
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
msgstr "التثبيت"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
-msgstr "التهيئة"
+msgstr "الضبط"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
-msgstr "عليك أيضا تنسيق %s"
+msgstr "عليك أيضا تهيئة %s"
#: interactive.pm:16
#, c-format
@@ -267,8 +338,8 @@ msgid ""
"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
"You can find some information about them at: %s"
msgstr ""
-"بعض العتاد الموجود على جهازك يحتاج إلى مشغلات ``تجارية'' كي تعمل.\n"
-"يمكنك ايجاد مزيد من المعلومات عنها في: %s"
+"بعض العتاد على جهازك يحتاج إلى مشغلات ``مملوكة'' كي يعمل.\n"
+"يمكنك إيجاد مزيد من المعلومات عنها في: %s"
#: interactive.pm:22
#, c-format
@@ -278,379 +349,469 @@ msgstr "جاري تشغيل الشبكة"
#: interactive.pm:27
#, c-format
msgid "Bringing down the network"
-msgstr "جاري اغلاق الشبكة"
+msgstr "جاري إغلاق الشبكة"
-#: media.pm:703 media.pm:714
-#, fuzzy, c-format
-msgid "Downloading file %s..."
-msgstr "جاري ارسال الملفات..."
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr "انتظر رجاء، جاري جلب الملف"
+
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "لا يمكن إضافة وسيط"
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
-msgstr ""
+msgstr "نسخ بعض الحزم إلى الأقراص لاستخدامها مستقبلاً"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "جاري النسخ"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
-msgstr "يجب أن يكون لديك"
+msgstr "ضروري"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "مهم"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
-msgstr "ظريف جداً"
+msgstr "جيد جدا"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
-msgstr "ظريف"
+msgstr "جيد"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "ربما"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "جاري جلب معلومات الحزم من ملف XML..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"لا توجد معلومات xml للوسيط \"%s\"، إنما توجد معلومات جزئية فقط عن الحزمة %s"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "وصف غير متوفر"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"بعض الحزم التي يتطلبها %s لا يمكن تثبيتها:\n"
+"%s"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "محطة عمل"
+msgid "An error occurred:"
+msgstr "حدث خطأ:"
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "محطّة عمل مكتبية"
+msgid "A fatal error occurred: %s."
+msgstr "حدث خطأ فادح: %s"
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
-msgstr ""
-"برامج مكتبية: معالجة الكلمات (OpenOffice.org Writer، Kword(، الجداول "
-"الحسابية (OpenOffice.org Calc، Kspread( ، برامج عرض pdf، الخ"
+msgid "Do not ask again"
+msgstr "لا تسأل مرة أخرى"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "فشلت عملية تثبيت %d"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "فشل تثبيت الحزمة:"
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "محطة عمل"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "محطة عمل مكتبية"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"برامج مكتبية: معالجة الكلمات (kword، abiword(، الجداول الحسابية (kspread، "
-"gnumeric) ، برامج عرض pdf، الخ"
+"برامج مكتبية: معالجات نصوص (OpenOffice.org Writer، Kword)، جداول ممتدة "
+"(OpenOffice.org Calc، Kspread)، برامج عرض pdf، إلخ"
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
-msgstr "محطّة ألعاب"
+msgstr "محطة ألعاب"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "برامج التسلية: ألعاب فيديو، ألعاب لوحات، ألعاب استراتيجية، الخ"
+msgstr "برامج تسلية: ألعاب فيديو، ألعاب لوحات، ألعاب استراتيجية، إلخ"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
-msgstr "محطة وسائط متعدّدة"
+msgstr "محطة وسائط متعددة"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
-msgstr "برامج تحرير/تشغيل الفيديو و الصوت"
+msgstr "برامج تحرير/تشغيل مرئيات وصوتيات"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
-msgstr "محطّة إنترنت"
+msgstr "محطة إنترنت"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-"مجموعة من الأدوات لقراءة و إرسال البريد و الأخبار (mutt، tin..( و لتصفح "
-"الإنترنت"
+"مجموعة أدوات لقراءة وإرسال البريد والأخبار (mutt، tin..) ولتصفح الإنترنت"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "جهاز شبكة (عميل)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
-msgstr "عملاء لبروتوكولات مختلفة مثل ssh"
+msgstr "عملاء لبروتوكولات مختلفة بما فيها ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
-msgstr "أدوات لتسهيل إعداد جهازك"
+msgstr "أدوات لتسهيل ضبط حاسبك"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
-msgstr "أدوات الطرفيّات"
+msgstr "أدوات الطرفيات"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
-msgstr "محررات نصوص، صَدَفات، أدوات ملفات، طرفيات"
+msgstr "محررات نصوص، صدفات، أدوات ملفات، طرفيات"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "تطوير"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
-msgstr "برامج و مكتبات تطوير C و C++"
+msgstr "مكتبات تطوير خاصة بلغة C وC++، برامج وملفات مضمنة"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
-msgstr "التّوثيق"
+msgstr "توثيق"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
-msgstr "كتب ومذكرات Howto حول لينكس و البرامج الحرة"
+msgstr "كتب ودلائل إرشادية حول لينكس والبرامج الحرة"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
-msgstr "القاعدة القياسيّة للينكس (LSB). دعم تطبيقات الأطراف الثالثة"
+msgstr "القاعدة القياسية للينكس (LSB). دعم تطبيقات الطرف الثالث"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
-msgstr "خادم الوب"
+msgstr "خادم وب"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
-msgstr "برامج المجموعات"
+msgstr "برامج مجموعات"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "خادم Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
-msgstr "جدار ناري/موجِّه"
+msgstr "جدار ناري/روتر"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
-msgstr "بوابة الإنترنت"
+msgstr "بوابة إنترنت"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "بريد/أخبار"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "خادم بريد Postfix، خادم أخبار Inn"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
-msgstr "خادم مجلّدات"
+msgstr "خادم مجلدات"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
-msgstr "الخادم FTP"
+msgstr "خادم FTP"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "خادم أسماء النّطاقات ومعلومات الشّبكة"
+msgstr "خادم أسماء النطاقات ومعلومات الشبكة"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
-msgstr "خادم مشاركة الملفّات والطّابعات"
+msgstr "خادم مشاركة الملفات والطابعات"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
-msgstr "خادم NFS، خادم Samba"
+msgstr "خادم NFS، خادم سامبا"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
-msgstr "قواعد البيانات"
+msgstr "قواعد بيانات"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "خادم قواعد بيانات PostgreSQL و MySQL"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "خادم قواعد بيانات PostgreSQL و MariaDB"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "وب/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache، Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "البريد"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
-msgstr "خادم البريد Postfix"
+msgstr "خادم بريد Postfix"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "خادم قواعد البيانات PostgreSQL أو MySQL"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "خادم قواعد بيانات PostgreSQL أو MariaDB"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "خادم شبكات"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "خادم NFS، خادم SMB، خادم بروكسي، خادم ssh"
+msgstr "خادم NFS، خادم SMB، خادم وسيط، خادم ssh"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "بيئات رسومية"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "محطّة عمل كيدي"
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr ""
-"بيئة سطح مكتب كيدي، البيئة الرسومية الأساسية مع مجموعة من الأدوات المصاحبة"
+"بيئة سطح مكتب كدي، البيئة الرسومية الأساسية مع مجموعة من الأدوات المصاحبة"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
-msgstr "محطّة عمل جينوم"
+msgstr "محطة عمل جنوم"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr ""
-"بيئة رسومية مع مجموعة من التطبيقات و أدوات سطح المكتب المناسبة للمستخدمين "
+"بيئة رسومية مع مجموعة من التطبيقات وأدوات سطح المكتب المناسبة للمستخدمين "
"العاديين"
-#: share/meta-task/compssUsers.pl:142
-#, fuzzy, c-format
-msgid "IceWm Desktop"
-msgstr "Plucker Desktop"
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "سطح مكتب LXQt"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "سطح مكتب LXDE"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "أسطح مكتب رسومية أخرى"
-#: share/meta-task/compssUsers.pl:147
-#, fuzzy, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm، Window Maker، Enlightenment، Fvwm، الخ"
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
-msgstr "منافع"
+msgstr "أدوات"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "خادم SSH"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "خادم التّهيئة البعيدة Webmin"
+msgstr "خادم الضبط البعيد Webmin"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "منافع شبكة/مراقبة"
+msgstr "وسائل الشبكة/المراقبة"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
-msgstr "أدوات مراقبة، محاسبة عمليّات، tcpdump، nmap، ..."
+msgstr "أدوات مراقبة، محاسبة عمليات، tcpdump، nmap، ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "مرشدو ماندريبا"
+msgid "Mageia Wizards"
+msgstr "مرشدو ماجيا"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
-msgstr "مرشدو تهيئة الخادم"
+msgstr "مرشدو ضبط الخادم"
#: steps.pm:85
#, c-format
@@ -658,10 +819,10 @@ msgid ""
"An error occurred, but I do not know how to handle it nicely.\n"
"Continue at your own risk."
msgstr ""
-"ظهر خطأ و لا أعرف كيف أتعامل معه بأسلوب جيد.\n"
+"حدث خطأ ولا أعرف كيف أتعامل معه جيدأ. \n"
"تابع على مسؤوليتك."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -669,9 +830,9 @@ msgid ""
"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
"\"\n"
msgstr ""
-"لم يتمّ تثبيت بعض الحزم المهمّة بشكل صحيح.\n"
-"إمّا أن يكون قارئ الأقراص معطوبا أو القرص.\n"
-"إفحص القرص المدمج على حاسب مثبت باستعمال \"rpm -qpl media/main/*.rpm\"\n"
+"لم يتم تثبيت بعض الحزم المهمة بشكل صحيح.\n"
+"إما أن محرك الأقراص أو القرص ذاته معطوب.\n"
+"افحص القرص المدمج على حاسب مثبت باستعمال \"rpm -qpl media/main/*.rpm\"\n"
#: steps_auto_install.pm:71 steps_stdio.pm:27
#, c-format
@@ -680,312 +841,369 @@ msgstr "الانتقال للخطوة `%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "تثبيت ماندريبا لينكس %s"
+msgid "%s Installation %s"
+msgstr "%s تثبيت %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> بين العناصر"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "تشغيل خادم Xorg بطيء. الرجاء الانتظار..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"نظامك قليل الموارد. قد تقابل بعض المشاكل قي تثبيت\n"
-"ماندريبا لينكس. إذا حدث ذلك، يمكنك التثبيت في وضع نصي بدلاً من ذلك. لهذا "
-"الغرض،\n"
-"اضغط `F1' عند الإقلاع من القرص المدمج، و اكتب `text'."
+"موارد نظامك قليلة، لذا قد تقابل بعض المشكلات قي تثبيت\n"
+"%s. إذا حدث ذلك، فيمكنك تجربة التثبيت النصي كبديل. للقيام بذلك،\n"
+"اضغط `F1' عند الإقلاع من القرص المدمج، ثم اكتب `text'."
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "انتقاء الوسائط"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "تثبيت %s بسطح مكتب جنوم"
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "تثبيت مخصص"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "سطح مكتب جنوم"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "سطح مكتب مخصص"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "هذه معاينة لشكل سطح مكتب %s"
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "اضغط على الصور لتشاهد المعاينة بحجم أكبر"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
-msgstr "اختيار مجموعات الحزم"
+msgstr "انتقاء مجموعات الحزم"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
-msgstr "اختيار مفرد للحزم"
+msgstr "انتقاء مفرد للحزم"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "الحجم الإجمالي: %d / %d م.ب."
+msgid "Unselect All"
+msgstr "إلغاء اختيار الكل"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "حزمة سيئة"
+msgid "Total size: %d / %d MB"
+msgstr "الحجم الإجمالي: %d / %d م.ب"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
-msgstr "النسخة:"
+msgstr "الإصدار: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "الحجم: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
-msgstr "%d ك.ب.\n"
+msgstr "%d ك.ب\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
-msgstr "الأهمية:"
+msgstr "الأهمية: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
-msgstr "لا يمكنك اختيار/ازالة اختيار هذه الحزمة"
+msgid "You cannot select/unselect this package"
+msgstr "لا يمكنك انتقاء/إلغاء انتقاء هذه الحزمة"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
-msgstr "بسبب غياب %s"
+msgstr "بسبب نقص %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "بسبب عدم إرضاء %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "السعي إلى ترويج %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
-msgstr "من أجل حفظ %s"
+msgstr "من أجل الاحتفاظ بـ %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
-msgstr "لا يمكنك اختيار هذه الحزمة لأنه لا يوجد مساحة كافية متبقية لتثبيتها"
+msgstr "لا يمكنك انتقاء هذه الحزمة لأنه لا يوجد مساحة كافية لتثبيتها"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
-msgstr "سيتم تثبيت الحزم التالية"
+msgstr "ستثبت الحزم التالية"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
-msgstr "سيتم حذف الحزم التالية"
+msgstr "ستحذف الحزم التالية"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
-msgstr "هذه الحزمة الزامية، لا يمكن عدم اختيارها"
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr "هذه الحزمة إلزامية؛ لا يمكن إلغاء انتقائها"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
-msgstr "لا يمكن إزالة اختيار هذه الحزم. انها مثبتة مسبقاً"
+msgid "You cannot unselect this package. It is already installed"
+msgstr "لا يمكن إلغاء انتقاء هذه الحزمة؛ لأنها مثبتة مسبقاً"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
-msgstr "لا يمكنك إزالة اختيار هذه الحزمة. يجب ترقيتها"
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr "لا يمكنك إلغاء انتقاء هذه الحزمة. لأن ترقيتها ضرورية"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
-msgstr "إظهار الحزم المختارة ألياً"
+msgstr "إظهار الحزم المنتقاة آليا"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "تثبيت"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
-msgstr "تحميل/حفظ الاختيار"
+msgstr "تحميل/حفظ الانتقاء"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
-msgstr "تحديث اختيار الحزم"
+msgstr "تحديث انتقاء الحزم"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
-msgstr "تثبيت مصغّر"
+msgstr "تثبيت مصغر"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "إدارة البرامج"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "اختر الحزم التي تريد تثبيتها"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "التثبيت"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "لا تفاصيل"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "الوقت المتبقي"
+msgid "Time remaining:"
+msgstr "الوقت المتبقي:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "الحساب التقريبي"
+msgid "(estimating...)"
+msgstr "(حساب تقديري...)"
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d حزم"
-msgstr[1] "%d حزم"
-msgstr[2] "%d حزم"
+msgstr[0] "لا حزم"
+msgstr[1] "حزمة واحدة"
+msgstr[2] "حزمتان"
msgstr[3] "%d حزم"
+msgstr[4] "%d حزم"
+msgstr[5] "%d حزم"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "ملخص"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
-msgstr "تهيئة"
+msgstr "اضبط"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
-msgstr "غير مهيّأ"
+msgstr "غير مضبوط"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-"تم العثور على وسط التثبيت التالي.\n"
-"إن كنت تريد تخطي بعضها، يمكنك إزالة اختيارها الآن."
+"تم العثور على وسائط التثبيت التالية.\n"
+"إن كنت تريد تخطي بعضها، فيمكنك إلغاء انتقائها الآن."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
"لديك الخيار بنسخ محتويات الأقراص المدمجة إلى قرصك الصلب قبل التثبيت.\n"
-"سيكمل التثبيت بعد ذلك من القرص الصلب وستبقى الحزم متوفرة حالما يتم تثبيت "
-"النظام بالكامل."
+"حيئذ، سيكمل التثبيت من القرص الصلب وستبقى الحزم متوفرة حتى يثبت النظام كاملا."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
-msgstr "نسخ الأقراص بالكامل"
+msgstr "نسخ الأقراص كاملة"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "حدث خطأ"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "الرجاء اختيار لوحة المفاتيح."
+msgid "Please choose your keyboard layout"
+msgstr " اختر رجاء تخطيط لوحة مفاتيحك"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "هذه هي القائمة الكاملة لكلّ لوحات المفاتيح المتوفّرة"
+msgid "Here is the full list of available keyboards:"
+msgstr "هذه القائمة الكاملة لكلّ لوحات المفاتيح المتاحة:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "تثبيت/ترقية"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "هل هذا تثبيت أم ترقية؟"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "تثبيت"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "ترقية %s"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
+msgid "Encryption key for %s"
+msgstr "مفتاح التشفير لـ %s"
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
+msgid "Cancel installation, reboot system"
+msgstr "إلغاء التثبيت، وإعادة تشغيل النظام"
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
-msgstr "مفتاح التشفير لـ %s"
+msgid "New Installation"
+msgstr "تثبيت جديد"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "ترقية تثبيت سابق (لا ينصح به)"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
-msgstr "جاري تهيئة IDE"
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
+"تبين للمثبت أنه لا يمكن للنظام السابق\n"
+" أن يرقَّ بأمان لـ %s\n"
+" \n"
+" ينصح بثبيت جديد يحل محل التثبيت السابق\n"
+" \n"
+" تحذير: ينبغي أن تنسخ جميع بياناتك الشخصية قبل اختيار\"تثبيت جديد\""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+msgid "CD/DVD"
msgstr ""
-"ليس هناك مساحة حرّة لواحد ميجابات من bootstrap! سوف يستمرّ التّثبيت، لكن لإقلاع "
-"نظامك، سوف تحتاج لإنشاء تجزيء bootstrap في DiskDrake"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+msgid "Configuring CD/DVD"
msgstr ""
-"تحتاج إلى إنشاء PPC PReP Boot bootstrap! ستكمل عملية التثبيت، ولكن لإقلاع "
-"نظامك، أنت بحاجة إلى إنشاء تجزيء bootstrap من خلال DiskDrake"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -993,162 +1211,205 @@ msgid ""
"done.\n"
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
-"غيّر القرص المدمج !\n"
-"من فضلك أدخل القرص المدمج المسّمى \"%s\" في الّسواقة واضغط على موافق عندما "
-"تنتهي.\n"
-"إن لم يكن القرص لديك، اضغط على إلغاء لتجّنب التثبيت من هذا القرص المدمج."
+"غيّر قرصك المدمج!\n"
+"من فضلك أدخل القرص المسمى \"%s\" في السواقة واضغط على موافق عندما تنتهي.\n"
+"إن لم يكن القرص لديك، اضغط على إلغاء لتجنب التثبيت من هذا القرص."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
-msgstr "العثور على الحزم المتوفرة..."
+msgstr "البحث عن الحزم المتاحة..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
-msgstr ""
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
+msgstr "لا توجد مساحة كافية في نظامك للتثبيت أو الترقية (%dMB > %dMB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-"الرجاء اختيار حفظ أو تحميل اختياراتك للحزم.\n"
-"النسق مشابه لملفات التثبيت الآلي المولّدة."
+"اختر رجاء حفظ أو تحميل انتقائك للحزم.\n"
+"النسق مشابه للملفات الناتجة عن التثبيت الآلي."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "تحميل"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "حفظ"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
-msgstr "ملف سيء"
+msgstr "ملف فاسد"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "جنوم"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "تثبيت مصغّر"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr "انتقاء سطح المكتب"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
+msgid "You can choose your workstation desktop profile."
+msgstr "بإمكانك اختيار حساب سطح مكتب الخاص بك."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
-msgstr "الحجم المختار أكبر من المساحة المتوفرة"
+msgstr "الحجم المختار أكبر من المساحة المتاحة"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "نوع التثبيت"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
"لم تختر أي مجموعة من الحزم.\n"
-"الرجاء اختيار التثبيت المصغر الذي تريده:"
+"اختر رجاء حد التثبيت الأدنى الذي تريده:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "مع X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
-msgstr "مع وثائق المساعدة الأساسية (مفضّل)"
+msgstr "مع وثائق المساعدة الأساسية (ينصح به)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
-msgstr "تثبيت مصغّر فعلاً (خصوصاً بدون urpmi)"
+msgstr "حد التثبيت الأدنى الحقيقي (دون urpmi خصوصا)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "التحضير للترقية..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "التحضير للتثبيت"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
-msgstr "جاري تثبيت الحزمة %s"
+msgstr "تثبيت الحزمة %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
-msgstr "كان هناك خطأ في ترتيب الحزم:"
+msgstr "حدث خطأ في ترتيب الحزم:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
-msgstr "هل تريد المتابعة على أي حال؟"
+msgstr "هل تريد المتابعة على أية حال؟"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
-msgstr ""
+msgstr "أعد المحاولة"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
-msgstr ""
+msgstr "تخطّ هذه الحزمة"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
-msgstr ""
+msgstr "تخطّ جميع الحزم من الوسيط \"%s\""
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "حفظ اختيار الحزم"
+msgstr "ارجع إلى الوسائط وانتقاء الحزم"
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "كان هناك خطأ في تثبيت الحزم:"
+msgstr "حدث خطأ في تثبيت الحزمة %s"
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
-msgstr "تهيئة ما بعد التثبيت"
+msgstr "ضبط ما بعد التثبيت"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
-msgstr ""
+msgstr "تأكد رجاء من وجود وسائط وحدات التحديث في محرك الأقراص %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "التحديثات"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "ستثبت الحزم التالية"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Retry?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "فشل عند إضافة الوسيط"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1160,210 +1421,127 @@ msgid ""
"\n"
"Do you want to install the updates?"
msgstr ""
-"تستطيع الآن تنزيل الحزم المحدّثة. هذه الحزم\n"
-"تم تحديثها بعد اصدار التوزيعة. قد\n"
-"تحتوي على اصلاحات أمنية أو اصلاحات لعيوب برمجية.\n"
+"لديك الآن الفرصة لتنزيل حزم محدثة، فهذه الحزم\n"
+"تم تحديثها بعد إصدار التوزيعة، وقد\n"
+"تحتوي على إصلاحات لعلل أمنية أو برمجية.\n"
"\n"
-"لتنزيل هذه الحزم، تحتاج إلى أن تكون لديك اتصال \n"
+"لتنزيل هذه الحزم، تحتاج إلى اتصال \n"
"بالإنترنت.\n"
"\n"
-"هل تريد تنزيل هذه التحديثات ؟"
+"هل تريد تثبيت هذه التحديثات؟"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "جاري الإتصال بالمرآة للحصول على قائمة بالحزم المتوفرة..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "تعذر الإتصال بالمرآة %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s على %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "العتاد"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "بطاقة الصوت"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "هل لديك بطاقة صوت ISA؟"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"شغّل \"alsaconf\" أو \"sndconfig\" بعد التّثبيت لتهيئة بطاقة الصّوت الخاصّة بك"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "لم يعثر على بطاقة الصوت. حاول تشغيل \"harddrake\" بعد التثبيت"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "الواجهة الرسومية"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "الشبكة والإنترنت"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
-msgstr "البروكسيات"
+msgstr "الخوادم الوسيطة"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
-msgstr "مُهيّء"
+msgstr "تم ضبطه"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "مستوى الأمن"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "جدار ناري"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
-msgstr "مُنشّط"
+msgstr "مفعلة"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
-msgstr "مُعطّل"
+msgstr "معطلة"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
-msgstr "لم تقم بتهيئة خادم X. هل أنت متأكد أنك تريد ذلك؟"
-
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "جاري تحضير محمّل الإقلاع..."
-
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"يبدو أن لديك ماكينة مجهولة أو من العالم القديم، ولن يعمل محمل الإقلاع yaboot "
-"مع نظامك. ستكمل عملية التثبيت، ولكنك بحاجة إلى استخدام BootX أو طريقة ما "
-"أخرى لإقلاع نظامك. مُعطى النواة لنظام الملفات الجذر هو: root=%s"
+msgstr "لم تقم بضبط خادم (X). هل أنت متأكد أنك تريد ذلك؟"
-#: steps_interactive.pm:1024
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Do you want to use aboot?"
-msgstr "هل تريد استخدام aboot؟"
+msgid "Preparing initial startup program..."
+msgstr "تحضير برنامج بدء التشغيل الأولي..."
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"خطأ أثناء تثبيت aboot، \n"
-"حاول الإجبار على التثبيت حتى و لو أدي ذلك لتدمير التجزيء الأول؟"
+msgid "Be patient, this may take a while..."
+msgstr "كن صبورا، ستستغرق العملية بعض الوقت..."
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-"في هذا المستوى الأمني، الوصول إلى الملفّات بتجزيء ويندوز سيكون مقصوراً على "
+"في هذا المستوى الأمني، الوصول إلى الملفات في قسم وندوز سيكون مقصوراً على "
"المدير."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
-msgstr "أدخل قرص مرن فارغ في السواقة %s"
+msgstr "أدخل قرصا مرنا فارغا في محرك الأقراص %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
-msgstr "جاري إنشاء قرص التثبيت الآلي..."
+msgstr "إنشاء قرص مرن للتثبيت الآلي..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
"\n"
"Do you really want to quit now?"
msgstr ""
-"بعض الخطوات لم يتم تكملتها.\n"
+"بعض الخطوات لم تكتمل.\n"
"\n"
-"هل تريد الخروج الآن فعلاً؟"
+"هل تريد الخروج الآن حقا؟"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "تهانينا"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
-msgstr "إعادة التشغيل"
-
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "إنشاء قرص تثبيت آلي"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"التثبيت الآلي قد يتم بشكل تلقائي إذا أردت ذلك،\n"
-"في هذه الحالة سيستولي على كل القرص الصلب لديك!!\n"
-"(هذا بالنسبة للتثبيت على جهاز آخر).\n"
-"\n"
-"ربما تفضل إعادة عملية التثبيت.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "إعادة"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "آلي"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "حفظ اختيار الحزم"
+msgstr "إعادة اﻹقلاع"
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
@@ -1371,12 +1549,12 @@ msgstr "حفظ اختيار الحزم"
msgid ""
"_: Keep these entry short\n"
"Language"
-msgstr "اللّغة"
+msgstr "اللغة"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "التوطين"
#: steps_list.pm:17
#, c-format
@@ -1390,21 +1568,21 @@ msgstr "الرخصة"
msgid ""
"_: Keep these entry short\n"
"Mouse"
-msgstr "الماوس"
+msgstr "الفأرة"
#: steps_list.pm:19 steps_list.pm:20
#, c-format
msgid ""
"_: Keep these entry short\n"
"Hard drive detection"
-msgstr "اكتشاف القرص الصّلب"
+msgstr "اكتشاف القرص الصلب"
#: steps_list.pm:21 steps_list.pm:22
#, c-format
msgid ""
"_: Keep these entry short\n"
"Installation class"
-msgstr ""
+msgstr "صنف التثبيت"
#: steps_list.pm:23
#, c-format
@@ -1425,21 +1603,21 @@ msgstr "الأمن"
msgid ""
"_: Keep these entry short\n"
"Partitioning"
-msgstr "التجزئة"
+msgstr "التقسيم"
#: steps_list.pm:27 steps_list.pm:28
#, c-format
msgid ""
"_: Keep these entry short\n"
"Formatting"
-msgstr ""
+msgstr "التهيئة"
#: steps_list.pm:29
#, c-format
msgid ""
"_: Keep these entry short\n"
"Choosing packages"
-msgstr ""
+msgstr "انتقاء الحزم"
#: steps_list.pm:31
#, c-format
@@ -1455,26 +1633,19 @@ msgid ""
"Users"
msgstr "المستخدمون"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "الشبكات"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
"_: Keep these entry short\n"
"Bootloader"
-msgstr "محمّل الإقلاع"
+msgstr "محمل الإقلاع"
#: steps_list.pm:40 steps_list.pm:41
#, c-format
msgid ""
"_: Keep these entry short\n"
"Configure X"
-msgstr "تهيئة X"
+msgstr "ضبط (X)"
#: steps_list.pm:42
#, c-format
@@ -1504,73 +1675,22 @@ msgid ""
"Exit"
msgstr "خروج"
-#~ msgid "All"
-#~ msgstr "الكل"
-
-#~ msgid "TV card"
-#~ msgstr "بطاقة التلفاز"
-
-#~ msgid "Boot"
-#~ msgstr "الإقلاع"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "المواثقة"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-# U+200F (RTL mark) has been inserted between "Dvorak" and "(US)", so
-# it displays on screen as "(US) Dvorak", following the same schema
-# as others "Dvorak (xxxx)" with xxx in Arabic that display as "(xxxx) Dvorak"
-# that way the entry is also listed together with the other "Dvorak" entries.
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "%d حزم"
-#~ msgstr[1] "%d حزم"
-#~ msgstr[2] "%d حزم"
-#~ msgstr[3] "%d حزم"
-
-#~ msgid "%d packages"
-#~ msgstr "%d حزم"
-
-#~ msgid "Language"
-#~ msgstr "اللّغة"
-
-#~ msgid "License"
-#~ msgstr "الرخصة"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "اختيار صنف التّثبيت"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "الحساب التقريبي"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "اختيار الحزم المطلوب تثبيتها"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "مسار المرآة؟"
-#~ msgid "Users"
-#~ msgstr "المستخدمون"
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "يجب أن يبدأ المسار بـ http:// أو بـ ftp://"
-#~ msgid "Networking"
-#~ msgstr "الشبكات"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr "جاري الاتصال بموقع %s للحصول على قائمة بالمرايا المتوفرة..."
-#~ msgid "Configure X"
-#~ msgstr "تهيئة X"
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
+#~ msgstr "فشل الاتصال بموقع %s للحصول على قائمة بالمرايا المتوفرة"
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
-#~ msgstr ""
-#~ "تعذر الوصول إلى وحدات النواة الخاصة بنواة النظام (الملف %s مفقود)، بشكل "
-#~ "عام يعني هذا أن قرص الإقلاع المرن ليس محدّثاً مع وسيط التثبيت (فضلاً قم "
-#~ "بإنشاء قرص اقلاع جديد)"
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "اختر مرآة لتحصيل الحزم"
diff --git a/perl-install/install/share/po/ast.po b/perl-install/install/share/po/ast.po
new file mode 100644
index 000000000..925f65bbb
--- /dev/null
+++ b/perl-install/install/share/po/ast.po
@@ -0,0 +1,1673 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# enolp <enolp@softastur.org>, 2015-2016,2019-2020,2025
+# Ḷḷumex03, 2014
+# Ḷḷumex03, 2014
+# Softastur <alministradores@softastur.org>, 2009
+msgid ""
+msgstr ""
+"Project-Id-Version: Mageia\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2013-04-04 13:31+0000\n"
+"Last-Translator: enolp <enolp@softastur.org>, 2015-2016,2019-2020,2025\n"
+"Language-Team: Asturian (http://app.transifex.com/MageiaLinux/mageia/"
+"language/ast/)\n"
+"Language: ast\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "¡Xúnite a nós!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Failu de to"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "¡La to eleición!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Ferramientes d'oficina"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Entretenimientu en casa"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "Pa la reciella"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "¡Pa la familia!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "¡Pa desendolcadores!"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "¡Gracies!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "¡Sé llibre!"
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr "¿Tienes más medios suplementarios?"
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
+#, c-format
+msgid ""
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
+msgstr ""
+"Atopáronse los medios siguientes ya van usase demientres la instalación: "
+"%s.\n"
+"\n"
+"\n"
+"¿Tienes dalgún mediu suplementariu pa configurar?"
+
+#: any.pm:162
+#, c-format
+msgid "Network (HTTP)"
+msgstr "Rede (HTTP)"
+
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
+msgstr "Rede (FTP)"
+
+#: any.pm:164
+#, c-format
+msgid "Network (NFS)"
+msgstr "Rede (NFS)"
+
+#: any.pm:224
+#, c-format
+msgid "NFS setup"
+msgstr "Configuración NFS"
+
+#: any.pm:225
+#, c-format
+msgid "Please enter the hostname and directory of your NFS media"
+msgstr "Introduz l'agospiador ya'l direutoriu del mediu NFS"
+
+#: any.pm:229
+#, c-format
+msgid "Hostname missing"
+msgstr "Falta l'agospiador"
+
+#: any.pm:230
+#, c-format
+msgid "Directory must begin with \"/\""
+msgstr "El direutoriu ha comenzar per «/»"
+
+#: any.pm:234
+#, c-format
+msgid "Hostname of the NFS mount ?"
+msgstr "¿Cuál ye l'agospiador del montaxe NFS?"
+
+#: any.pm:235
+#, c-format
+msgid "Directory"
+msgstr "Direutoriu"
+
+#: any.pm:265
+#, c-format
+msgid "Supplementary"
+msgstr "Suplementariu"
+
+#: any.pm:300
+#, c-format
+msgid ""
+"Can't find a package list file on this mirror. Make sure the location is "
+"correct."
+msgstr ""
+"Nun se pue atopar la llista de paquetes nesti espeyu. Asegúrate de que la "
+"llocalización ye correuta."
+
+#: any.pm:325
+#, c-format
+msgid "Core Release"
+msgstr "Edición «Core»"
+
+#: any.pm:327
+#, c-format
+msgid "Tainted Release"
+msgstr "Edición alteriada"
+
+#: any.pm:329
+#, c-format
+msgid "Nonfree Release"
+msgstr "Edición «Nonfree»"
+
+#: any.pm:367
+#, c-format
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+"Dalgunos componentes de la máquina precisen dalgún tipu de firmware que nun "
+"ye llibre pa que los controladores llibres funcionen."
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "Habríes activar «%s»"
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+"«%s» contién dellos componentes de los sistemes ya les sos aplicaciones"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "«%s» contién software que nun ye llibre.\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"Tamién contién el firmware necesario pa que ciertos preseos funcionen (p. "
+"exem: dalgunes tarxetes gráfiques, RAID, de rede…)"
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"«%s» contién software que nun se pue distribuyir en tolos países pola mor de "
+"les patentes de software."
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "Equí pues activar más medios si quies."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Esti mediu forne anovamientos de paquetes pal mediu «%s»"
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Tán consultándose los paquetes xá instalaos…"
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr ""
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Tán quitándose los paquetes enantes d'anovar…"
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:850
+#, c-format
+msgid ""
+"The following packages will be removed to allow upgrading your system: %s\n"
+"\n"
+"\n"
+"Do you really want to remove these packages?\n"
+msgstr ""
+"Van desaniciase los paquetes siguientes pa permitir l'anovamientu del "
+"sistema: %s\n"
+"\n"
+"\n"
+"¿De xuru que quies desaniciar estos paquetes?\n"
+
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Prodúxose un error al lleer el ficheru «%s»"
+
+#: any.pm:1283
+#, c-format
+msgid "The following disk(s) were renamed:"
+msgstr "Renomáronse los discos siguientes:"
+
+#: any.pm:1285
+#, c-format
+msgid "%s (previously named as %s)"
+msgstr "%s (enantes llamábase «%s»)"
+
+#: any.pm:1342
+#, c-format
+msgid "HTTP"
+msgstr "HTTP"
+
+#: any.pm:1342
+#, c-format
+msgid "FTP"
+msgstr "FTP"
+
+#: any.pm:1342
+#, c-format
+msgid "NFS"
+msgstr "NFS"
+
+#: any.pm:1361 steps_interactive.pm:979
+#, c-format
+msgid "Network"
+msgstr "Rede"
+
+#: any.pm:1365
+#, c-format
+msgid "Please choose a media"
+msgstr "Escueyi un mediu"
+
+#: any.pm:1381
+#, c-format
+msgid "File already exists. Overwrite it?"
+msgstr "El ficheru xá esiste. ¿Quies sobrescribilu?"
+
+#: any.pm:1385
+#, c-format
+msgid "Permission denied"
+msgstr ""
+
+#: any.pm:1433
+#, c-format
+msgid "Bad NFS name"
+msgstr "El nome NFS ye incorreutu"
+
+#: any.pm:1454
+#, c-format
+msgid "Bad media %s"
+msgstr "El mediu «%s» ye incorreutu"
+
+#: any.pm:1498
+#, c-format
+msgid "Cannot make screenshots before partitioning"
+msgstr "Nun se puen facer captures de pantalla enantes de particionar"
+
+#: any.pm:1509
+#, c-format
+msgid "Screenshots will be available after install in %s"
+msgstr ""
+"Les captures de pantalla van tar disponibles dempués de la instalación en "
+"«%s»"
+
+#: gtk.pm:134
+#, c-format
+msgid "Installation"
+msgstr "Instalación"
+
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
+#, c-format
+msgid "Configuration"
+msgstr "Configuración"
+
+#: install2.pm:220
+#, c-format
+msgid "You must also format %s"
+msgstr "Tamién tienes de formatiar «%s»"
+
+#: interactive.pm:16
+#, c-format
+msgid ""
+"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
+"You can find some information about them at: %s"
+msgstr ""
+"Dalgunos componentes del ordenador precisen controladores propietarios pa "
+"funcionar.\n"
+"Pues atopar más información tocante a ellos en: %s"
+
+#: interactive.pm:22
+#, c-format
+msgid "Bringing up the network"
+msgstr "Ta activándose la conexón de rede"
+
+#: interactive.pm:27
+#, c-format
+msgid "Bringing down the network"
+msgstr "Ta desactivándose la conexón de rede"
+
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr "Espera, ta recibiéndose'l ficheru"
+
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "nun ye posible amestar el mediu"
+
+#: media.pm:744
+#, c-format
+msgid "Copying some packages on disks for future use"
+msgstr "Tán copiándose dalgunos paquetes nos discos pa usalos nel futuru"
+
+#: media.pm:797
+#, c-format
+msgid "Copying in progress"
+msgstr "Copia en cursu"
+
+#: pkgs.pm:32
+#, c-format
+msgid "must have"
+msgstr "obligatoriu"
+
+#: pkgs.pm:33
+#, c-format
+msgid "important"
+msgstr "importante"
+
+#: pkgs.pm:34
+#, c-format
+msgid "very nice"
+msgstr ""
+
+#: pkgs.pm:35
+#, c-format
+msgid "nice"
+msgstr ""
+
+#: pkgs.pm:36
+#, c-format
+msgid "maybe"
+msgstr ""
+
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Nun hai nenguna descripción"
+
+#: pkgs.pm:290
+#, c-format
+msgid ""
+"Some packages requested by %s cannot be installed:\n"
+"%s"
+msgstr ""
+"Nun se puen instalar dalgunos paquetes solicitaos por «%s»:\n"
+"%s"
+
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "Prodúxose un error:"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "Prodúxose un error fatal: %s."
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr ""
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "L'aición d'instalar los paquetes falló:"
+
+#: share/meta-task/compssUsers.pl:16
+#, c-format
+msgid "Workstation"
+msgstr "Estación de trabayu"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Estación ofimática"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
+msgid ""
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:26
+#, c-format
+msgid "Game station"
+msgstr "Estación de xuegu"
+
+#: share/meta-task/compssUsers.pl:27
+#, c-format
+msgid "Amusement programs: arcade, boards, strategy, etc"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:30
+#, c-format
+msgid "Multimedia station"
+msgstr "Estación multimedia"
+
+#: share/meta-task/compssUsers.pl:31
+#, c-format
+msgid "Sound and video playing/editing programs"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:36
+#, c-format
+msgid "Internet station"
+msgstr "Estación d'internet"
+
+#: share/meta-task/compssUsers.pl:37
+#, c-format
+msgid ""
+"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
+"Web"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:42
+#, c-format
+msgid "Network Computer (client)"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:43
+#, c-format
+msgid "Clients for different protocols including ssh"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:49
+#, c-format
+msgid "Tools to ease the configuration of your computer"
+msgstr "Ferramientes p'acencellar la configuración del ordeandor"
+
+#: share/meta-task/compssUsers.pl:53
+#, c-format
+msgid "Console Tools"
+msgstr "Ferramientes de la consola"
+
+#: share/meta-task/compssUsers.pl:54
+#, c-format
+msgid "Editors, shells, file tools, terminals"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
+#, c-format
+msgid "Development"
+msgstr "Desendolcu"
+
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
+#, c-format
+msgid "C and C++ development libraries, programs and include files"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
+#, c-format
+msgid "Documentation"
+msgstr "Documentación"
+
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
+#, c-format
+msgid "Books and Howto's on Linux and Free Software"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
+#, c-format
+msgid "LSB"
+msgstr "LSB"
+
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
+#, c-format
+msgid "Linux Standard Base. Third party applications support"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:79
+#, c-format
+msgid "Web Server"
+msgstr "Sirvidor web"
+
+#: share/meta-task/compssUsers.pl:80
+#, c-format
+msgid "Apache"
+msgstr "Apache"
+
+#: share/meta-task/compssUsers.pl:84
+#, c-format
+msgid "Groupware"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:85
+#, c-format
+msgid "Kolab Server"
+msgstr "Sirvidor Kolab"
+
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
+#, c-format
+msgid "Firewall/Router"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
+#, c-format
+msgid "Internet gateway"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:92
+#, c-format
+msgid "Mail/News"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:93
+#, c-format
+msgid "Postfix mail server, Inn news server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:97
+#, c-format
+msgid "Directory Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:102
+#, c-format
+msgid "FTP Server"
+msgstr "Sirvidor FTP"
+
+#: share/meta-task/compssUsers.pl:103
+#, c-format
+msgid "ProFTPd"
+msgstr "ProFTPd"
+
+#: share/meta-task/compssUsers.pl:107
+#, c-format
+msgid "DNS/NIS"
+msgstr "DNS/NIS"
+
+#: share/meta-task/compssUsers.pl:108
+#, c-format
+msgid "Domain Name and Network Information Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:112
+#, c-format
+msgid "File and Printer Sharing Server"
+msgstr "Sirvidor pa compartir imprentadores ya ficheros"
+
+#: share/meta-task/compssUsers.pl:113
+#, c-format
+msgid "NFS Server, Samba server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
+#, c-format
+msgid "Database"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:118
+#, c-format
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:123
+#, c-format
+msgid "Web/FTP"
+msgstr "Web/FTP"
+
+#: share/meta-task/compssUsers.pl:124
+#, c-format
+msgid "Apache, Pro-ftpd"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:128
+#, c-format
+msgid "Mail"
+msgstr "Corréu electrónicu"
+
+#: share/meta-task/compssUsers.pl:129
+#, c-format
+msgid "Postfix mail server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:134
+#, c-format
+msgid "PostgreSQL or MariaDB database server"
+msgstr "Sirvidor de bases de datos MariaDB o PostgreSQL"
+
+#: share/meta-task/compssUsers.pl:142
+#, c-format
+msgid "Network Computer server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:143
+#, c-format
+msgid "NFS server, SMB server, Proxy server, ssh server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:150
+#, c-format
+msgid "Graphical Environment"
+msgstr "Entornu gráficu"
+
+#: share/meta-task/compssUsers.pl:152
+#, c-format
+msgid "Plasma Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:153
+#, c-format
+msgid ""
+"The K Desktop Environment, the basic graphical environment with a collection "
+"of accompanying tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:158
+#, c-format
+msgid "GNOME Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
+#, c-format
+msgid ""
+"A graphical environment with user-friendly set of applications and desktop "
+"tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Un entornu gráficu basáu en GNOME"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "Escritoriu LXQt"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "Un entronu d'escritoriu basáu en QT y LXDE de nueva xeneración"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr "Escritoriu Enlightenment"
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "Escritoriu LXDE"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Un entornu gráficu rápidu ya llixeru"
+
+#: share/meta-task/compssUsers.pl:194
+#, c-format
+msgid "Other Graphical Desktops"
+msgstr "Otros escritorios gráficos"
+
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:218
+#, c-format
+msgid "Utilities"
+msgstr "Utilidaes"
+
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
+#, c-format
+msgid "SSH Server"
+msgstr "Sirvidor SSH"
+
+#: share/meta-task/compssUsers.pl:225
+#, c-format
+msgid "Webmin"
+msgstr "Webmin"
+
+#: share/meta-task/compssUsers.pl:226
+#, c-format
+msgid "Webmin Remote Configuration Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:230
+#, c-format
+msgid "Network Utilities/Monitoring"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:231
+#, c-format
+msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr "Encontos pa Mageia"
+
+#: share/meta-task/compssUsers.pl:236
+#, c-format
+msgid "Wizards to configure server"
+msgstr ""
+
+#: steps.pm:85
+#, c-format
+msgid ""
+"An error occurred, but I do not know how to handle it nicely.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: steps.pm:469
+#, c-format
+msgid ""
+"Some important packages did not get installed properly.\n"
+"Either your cdrom drive or your cdrom is defective.\n"
+"Check the cdrom on an installed computer using \"rpm -qpl media/main/*."
+"rpm\"\n"
+msgstr ""
+
+#: steps_auto_install.pm:71 steps_stdio.pm:27
+#, c-format
+msgid "Entering step `%s'\n"
+msgstr ""
+
+#: steps_curses.pm:22
+#, c-format
+msgid "%s Installation %s"
+msgstr ""
+
+#: steps_curses.pm:32
+#, c-format
+msgid "<Tab>/<Alt-Tab> between elements"
+msgstr ""
+
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
+#, c-format
+msgid ""
+"Your system is low on resources. You may have some problem installing\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
+"press `F1' when booting on CDROM, then enter `text'."
+msgstr ""
+"El sistema tien pocos recursos ya ye posible que tengas dalgún problema\n"
+"demientres la instalación de %s.. Si pasara, pues probar l'instalador per "
+"testu. Pa facelo, primi la tecla «F1» al arrincar el CD-ROM ya introduz "
+"«text»."
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Seleición de medios"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Escritoriu Plasma"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "Escritoriu GNOME"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
+#, c-format
+msgid "Package Group Selection"
+msgstr ""
+
+#: steps_gtk.pm:354 steps_interactive.pm:626
+#, c-format
+msgid "Individual package selection"
+msgstr "Esbilla individual de paquetes"
+
+#: steps_gtk.pm:361
+#, c-format
+msgid "Unselect All"
+msgstr "Deseleicionar too"
+
+#: steps_gtk.pm:380 steps_interactive.pm:538
+#, c-format
+msgid "Total size: %d / %d MB"
+msgstr "Tamañu total: %d / %d MB"
+
+#: steps_gtk.pm:425
+#, c-format
+msgid "Version: "
+msgstr "Versión:"
+
+#: steps_gtk.pm:426
+#, c-format
+msgid "Size: "
+msgstr "Tamañu:"
+
+#: steps_gtk.pm:426
+#, c-format
+msgid "%d KB\n"
+msgstr "%d KB\n"
+
+#: steps_gtk.pm:427
+#, c-format
+msgid "Importance: "
+msgstr "Importancia:"
+
+#: steps_gtk.pm:462
+#, c-format
+msgid "You cannot select/unselect this package"
+msgstr "Nun pues de/seleicionar esti paquete"
+
+#: steps_gtk.pm:466
+#, c-format
+msgid "due to missing %s"
+msgstr ""
+
+#: steps_gtk.pm:467
+#, c-format
+msgid "due to unsatisfied %s"
+msgstr ""
+
+#: steps_gtk.pm:468
+#, c-format
+msgid "trying to promote %s"
+msgstr ""
+
+#: steps_gtk.pm:469
+#, c-format
+msgid "in order to keep %s"
+msgstr "pa caltener «%s»"
+
+#: steps_gtk.pm:474
+#, c-format
+msgid ""
+"You cannot select this package as there is not enough space left to install "
+"it"
+msgstr ""
+"Nun pues instalar esti paquete darréu que nun hai abondu espaciu pa instalalu"
+
+#: steps_gtk.pm:477
+#, c-format
+msgid "The following packages are going to be installed"
+msgstr "Van instalase los paquetes siguientes"
+
+#: steps_gtk.pm:478
+#, c-format
+msgid "The following packages are going to be removed"
+msgstr "Van quitase los paquetes siguientes"
+
+#: steps_gtk.pm:504
+#, c-format
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr "Esti paquete ye obligatoriu ya nun se pue deseleicionar"
+
+#: steps_gtk.pm:506
+#, c-format
+msgid "You cannot unselect this package. It is already installed"
+msgstr "Nun pues deseleicionar esti paquete porque xá ta instaláu"
+
+#: steps_gtk.pm:508
+#, c-format
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr "Nun pues deseleicionar esti paquete, ha anovase"
+
+#: steps_gtk.pm:512
+#, c-format
+msgid "Show automatically selected packages"
+msgstr ""
+
+#: steps_gtk.pm:516
+#, c-format
+msgid "Install"
+msgstr "Instalar"
+
+#: steps_gtk.pm:519
+#, c-format
+msgid "Load/Save selection"
+msgstr ""
+
+#: steps_gtk.pm:520 steps_gtk.pm:525
+#, c-format
+msgid "Updating package selection"
+msgstr ""
+
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
+#, c-format
+msgid "Minimal install"
+msgstr "Instalación mínima"
+
+#: steps_gtk.pm:543
+#, c-format
+msgid "Software Management"
+msgstr "Xestión del software"
+
+#: steps_gtk.pm:543 steps_interactive.pm:415
+#, c-format
+msgid "Choose the packages you want to install"
+msgstr "Escueyi los paquetes que quies instalar"
+
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
+#, c-format
+msgid "Installing"
+msgstr "Instalando"
+
+#: steps_gtk.pm:590
+#, c-format
+msgid "No details"
+msgstr ""
+
+#: steps_gtk.pm:610
+#, c-format
+msgid "Time remaining:"
+msgstr "Tiempu restante:"
+
+#: steps_gtk.pm:611
+#, c-format
+msgid "(estimating...)"
+msgstr ""
+
+#: steps_gtk.pm:637
+#, c-format
+msgid "%d package"
+msgid_plural "%d packages"
+msgstr[0] "%d paquete"
+msgstr[1] "%d paquetes"
+
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
+#, c-format
+msgid "Summary"
+msgstr "Resume"
+
+#: steps_gtk.pm:713
+#, c-format
+msgid "Configure"
+msgstr "Configurar"
+
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
+#, c-format
+msgid "not configured"
+msgstr ""
+
+#: steps_gtk.pm:773 steps_interactive.pm:315
+#, c-format
+msgid ""
+"The following installation media have been found.\n"
+"If you want to skip some of them, you can unselect them now."
+msgstr ""
+"Atopáronse los medios d'instalación siguiente.\n"
+"Si quies saltar dalgún, pues deseleicionalu agora."
+
+#: steps_gtk.pm:789 steps_interactive.pm:321
+#, c-format
+msgid ""
+"You have the option to copy the contents of the CDs onto the hard disk drive "
+"before installation.\n"
+"It will then continue from the hard disk drive and the packages will remain "
+"available once the system is fully installed."
+msgstr ""
+"Tienes la opción de copiar el conteníu de los CD nel discu duru enantes de "
+"la instalación.\n"
+"Dempués d'esto, la instalación va siguir dende'l discu duru y los paquetes "
+"van quedar presentes namás que s'instale dafechu'l sistema."
+
+#: steps_gtk.pm:791 steps_interactive.pm:323
+#, c-format
+msgid "Copy whole CDs"
+msgstr ""
+
+#: steps_interactive.pm:40
+#, c-format
+msgid "An error occurred"
+msgstr "Prodúxose un error"
+
+#: steps_interactive.pm:105
+#, c-format
+msgid "Please choose your keyboard layout"
+msgstr "Escueyi la distribución del tecláu"
+
+#: steps_interactive.pm:109
+#, c-format
+msgid "Here is the full list of available keyboards:"
+msgstr "Equí tienes la llista completa de los teclaos disponibles:"
+
+#: steps_interactive.pm:153
+#, c-format
+msgid "Install/Upgrade"
+msgstr "Instalación/anovamientu"
+
+#: steps_interactive.pm:157
+#, c-format
+msgid "Is this an install or an upgrade?"
+msgstr "¿Ye una instalación o un anovamientu?"
+
+#: steps_interactive.pm:159
+#, c-format
+msgid ""
+"_: This is a noun:\n"
+"Install"
+msgstr "Instalación"
+
+#: steps_interactive.pm:161
+#, c-format
+msgid "Upgrade %s"
+msgstr "Anovamientu de %s"
+
+#: steps_interactive.pm:184
+#, c-format
+msgid "Encryption key for %s"
+msgstr ""
+
+#: steps_interactive.pm:217
+#, c-format
+msgid "Cancel installation, reboot system"
+msgstr ""
+
+#: steps_interactive.pm:218
+#, c-format
+msgid "New Installation"
+msgstr "Instalación nueva"
+
+#: steps_interactive.pm:219
+#, c-format
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
+
+#: steps_interactive.pm:223
+#, c-format
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr ""
+
+#: steps_interactive.pm:354
+#, c-format
+msgid ""
+"Change your Cd-Rom!\n"
+"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
+"done.\n"
+"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
+msgstr ""
+"¡Cambia'l CD-ROM!\n"
+"Inxerta'l discu etiquetáu como «%s» nel llector ya primi «D'acuerdu» cuando "
+"lo faigas.\n"
+"Si nun lu tienes, primi «Encaboxar» pa impidir la instalación dende esti CD-"
+"ROM."
+
+#: steps_interactive.pm:372 steps_interactive.pm:490
+#, c-format
+msgid "Looking for available packages..."
+msgstr "Tán buscándose los paquetes disponibles…"
+
+#: steps_interactive.pm:380
+#, c-format
+msgid ""
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
+msgstr ""
+"Al sistema nun-y queda abondu espaciu pa facer la instalación o "
+"l'anovamientu (%d MB > %d MB)"
+
+#: steps_interactive.pm:428
+#, c-format
+msgid ""
+"Please choose load or save package selection.\n"
+"The format is the same as auto_install generated files."
+msgstr ""
+
+#: steps_interactive.pm:430
+#, c-format
+msgid "Load"
+msgstr ""
+
+#: steps_interactive.pm:430
+#, c-format
+msgid "Save"
+msgstr ""
+
+#: steps_interactive.pm:438
+#, c-format
+msgid "Bad file"
+msgstr ""
+
+#: steps_interactive.pm:455
+#, c-format
+msgid "Plasma"
+msgstr "Plasma"
+
+#: steps_interactive.pm:456
+#, c-format
+msgid "GNOME"
+msgstr "GNOME"
+
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
+
+#: steps_interactive.pm:460
+#, c-format
+msgid "You can choose your workstation desktop profile."
+msgstr ""
+
+#: steps_interactive.pm:552
+#, c-format
+msgid "Selected size is larger than available space"
+msgstr "El tamañu seleicionáu supera l'espaciu disponible"
+
+#: steps_interactive.pm:576
+#, c-format
+msgid "Type of install"
+msgstr "Tipu d'instalación"
+
+#: steps_interactive.pm:577
+#, c-format
+msgid ""
+"You have not selected any group of packages.\n"
+"Please choose the minimal installation you want:"
+msgstr ""
+"Nun seleicionesti nengún grupu de paquetes.\n"
+"Escueyi la instalación mínima que quies:"
+
+#: steps_interactive.pm:582
+#, c-format
+msgid "With X"
+msgstr "Con X"
+
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
+#, c-format
+msgid "With basic documentation (recommended!)"
+msgstr ""
+
+#: steps_interactive.pm:585
+#, c-format
+msgid "Truly minimal install (especially no urpmi)"
+msgstr ""
+
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Ta preparándose l'anovamientu…"
+
+#: steps_interactive.pm:647
+#, c-format
+msgid "Preparing installation"
+msgstr ""
+
+#: steps_interactive.pm:655
+#, c-format
+msgid "Installing package %s"
+msgstr "Ta instalándose'l paquete «%s»"
+
+#: steps_interactive.pm:679
+#, c-format
+msgid "There was an error ordering packages:"
+msgstr "Prodúxose un error al ordenar los paquetes:"
+
+#: steps_interactive.pm:679
+#, c-format
+msgid "Go on anyway?"
+msgstr ""
+
+#: steps_interactive.pm:683
+#, c-format
+msgid "Retry"
+msgstr ""
+
+#: steps_interactive.pm:684
+#, c-format
+msgid "Skip this package"
+msgstr ""
+
+#: steps_interactive.pm:685
+#, c-format
+msgid "Skip all packages from medium \"%s\""
+msgstr ""
+
+#: steps_interactive.pm:686
+#, c-format
+msgid "Go back to media and packages selection"
+msgstr ""
+
+#: steps_interactive.pm:689
+#, c-format
+msgid "There was an error installing package %s."
+msgstr "Prodúxose un error al instalar el paquete «%s»."
+
+#: steps_interactive.pm:708
+#, c-format
+msgid "Post-install configuration"
+msgstr "Configuración de dempués de la instalación"
+
+#: steps_interactive.pm:715
+#, c-format
+msgid "Please ensure the Update Modules media is in drive %s"
+msgstr ""
+
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
+#, c-format
+msgid "Updates"
+msgstr "Anovamientos"
+
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Agora tienes la oportunidá de configurar medios en llinia."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Esto permite instalar anovamientos de seguranza."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"Pa configurar estos medios vas precisar una conexón a internet\n"
+"que funcione.\n"
+"\n"
+"¿Quies configurar los medios d'anovamientu?"
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr ""
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "¿Quies retentalo?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Prodúxose un error al amestar el mediu"
+
+#: steps_interactive.pm:792
+#, c-format
+msgid ""
+"You now have the opportunity to download updated packages. These packages\n"
+"have been updated after the distribution was released. They may\n"
+"contain security or bug fixes.\n"
+"\n"
+"To download these packages, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to install the updates?"
+msgstr ""
+"Agora tienes la oportunidá de baxar paquetes anovaos. Estos paquetes\n"
+"anováronse dempués de publicar la distribución ya ye posible que contengan\n"
+"igües de fallos ya parches de seguranza.\n"
+"\n"
+"Pa baxar estos paquetes vas precisar una conexón a internet que\n"
+"funcione.\n"
+"\n"
+"¿Quies instalar los anovamientos?"
+
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
+#, c-format
+msgid "%s on %s"
+msgstr ""
+
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
+#, c-format
+msgid "Hardware"
+msgstr "Hardware"
+
+#: steps_interactive.pm:958
+#, c-format
+msgid "Sound card"
+msgstr "Tarxeta de soníu"
+
+#: steps_interactive.pm:972
+#, c-format
+msgid "Graphical interface"
+msgstr "Interfaz gráfica"
+
+#: steps_interactive.pm:978 steps_interactive.pm:990
+#, c-format
+msgid "Network & Internet"
+msgstr "Rede ya internet"
+
+#: steps_interactive.pm:991
+#, c-format
+msgid "Proxies"
+msgstr "Proxys"
+
+#: steps_interactive.pm:992
+#, c-format
+msgid "configured"
+msgstr ""
+
+#: steps_interactive.pm:1002
+#, c-format
+msgid "Security Level"
+msgstr "Nivel de seguranza"
+
+#: steps_interactive.pm:1022
+#, c-format
+msgid "Firewall"
+msgstr "Tornafuéu"
+
+#: steps_interactive.pm:1026
+#, c-format
+msgid "activated"
+msgstr ""
+
+#: steps_interactive.pm:1026
+#, c-format
+msgid "disabled"
+msgstr ""
+
+#: steps_interactive.pm:1041
+#, c-format
+msgid "You have not configured X. Are you sure you really want this?"
+msgstr ""
+
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
+#, c-format
+msgid "Preparing initial startup program..."
+msgstr "Ta preparándose'l programa d'arrinque inicial…"
+
+#: steps_interactive.pm:1073
+#, c-format
+msgid "Be patient, this may take a while..."
+msgstr "Ten paciencia, esta aición pue tardar un tiempu…"
+
+#: steps_interactive.pm:1089
+#, c-format
+msgid ""
+"In this security level, access to the files in the Windows partition is "
+"restricted to the administrator."
+msgstr ""
+
+#: steps_interactive.pm:1121
+#, c-format
+msgid "Insert a blank floppy in drive %s"
+msgstr ""
+
+#: steps_interactive.pm:1123
+#, c-format
+msgid "Creating auto install floppy..."
+msgstr "Ta creándose'l disquete d'instalación automática…"
+
+#: steps_interactive.pm:1134
+#, c-format
+msgid ""
+"Some steps are not completed.\n"
+"\n"
+"Do you really want to quit now?"
+msgstr ""
+"Dalgunos pasos nun se completaron.\n"
+"\n"
+"¿De xuru que quies colar agora?"
+
+#: steps_interactive.pm:1144
+#, c-format
+msgid "Congratulations"
+msgstr "Norabona"
+
+#: steps_interactive.pm:1147
+#, c-format
+msgid "Reboot"
+msgstr "Reaniciar"
+
+#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
+#: steps_list.pm:16
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Language"
+msgstr "Llingua"
+
+#: steps_list.pm:16 steps_list.pm:23
+#, c-format
+msgid "Localization"
+msgstr "Traducciones"
+
+#: steps_list.pm:17
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"License"
+msgstr "Llicencia"
+
+#: steps_list.pm:18
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Mouse"
+msgstr "Mur"
+
+#: steps_list.pm:19 steps_list.pm:20
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Hard drive detection"
+msgstr ""
+
+#: steps_list.pm:21 steps_list.pm:22
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Installation class"
+msgstr "Tipu d'instalación"
+
+#: steps_list.pm:23
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Keyboard"
+msgstr "Tecláu"
+
+#: steps_list.pm:24
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Security"
+msgstr "Seguranza"
+
+#: steps_list.pm:25
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Partitioning"
+msgstr "Particionáu"
+
+#: steps_list.pm:27 steps_list.pm:28
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Formatting"
+msgstr "Formatéu"
+
+#: steps_list.pm:29
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Choosing packages"
+msgstr "Seleición de paquetes"
+
+#: steps_list.pm:31
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Installing"
+msgstr "Instalación"
+
+#: steps_list.pm:34
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Users"
+msgstr "Usuarios"
+
+#: steps_list.pm:38 steps_list.pm:39
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Bootloader"
+msgstr "Cargador d'arrinque"
+
+#: steps_list.pm:40 steps_list.pm:41
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Configure X"
+msgstr "Configuración de X"
+
+#: steps_list.pm:42
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Summary"
+msgstr "Resume"
+
+#: steps_list.pm:44 steps_list.pm:45
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Services"
+msgstr "Servicios"
+
+#: steps_list.pm:46
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Updates"
+msgstr "Anovamientos"
+
+#: steps_list.pm:48
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Exit"
+msgstr ""
diff --git a/perl-install/install/share/po/az.po b/perl-install/install/share/po/az.po
index 5ca9439c5..cf531fdc8 100644
--- a/perl-install/install/share/po/az.po
+++ b/perl-install/install/share/po/az.po
@@ -1,175 +1,230 @@
-# translation of DrakX-az.po to Azerbaijani
-# translation of DrakX-az.po to Azerbaijani Turkish
-# DrakX-az.po faylının Azərbaycan dilinə tərcüməsi
-# Copyright (C) 2000,2003, 2004 Free Software Foundation, Inc.
-# Copyright (c) 2000 Mandriva
-# Vasif Ismailoglu MD<azerb_linux@hotmail.com> , 2000-2001
-# Mətin Əmirov <metin@karegen.com>, 2001-2003, 2004.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Mətin Əmirov <metin@karegen.com>, 2001-2003, 2004
msgid ""
msgstr ""
-"Project-Id-Version: DrakX-az\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2005-03-31 14:21+0200\n"
-"Last-Translator: Mətin Əmirov <metin@karegen.com>\n"
-"Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Azerbaijani (http://www.transifex.com/MageiaLinux/mageia/"
+"language/az/)\n"
+"Language: az\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3.1\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: any.pm:155
-#, fuzzy, c-format
-msgid "Do you have further supplementary media?"
-msgstr "Başqası var?"
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: ../../advertising/02_IM_mageia.pl:1
#, c-format
-msgid ""
-"The following media have been found and will be used during install: %s.\n"
-"\n"
-"\n"
-"Do you have a supplementary installation medium to configure?"
+msgid "Make it yours!"
msgstr ""
-#: any.pm:166
+#: ../../advertising/03_IM_mageia.pl:1
#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
+msgid "Your choice!"
+msgstr ""
-#: any.pm:167
-#, fuzzy, c-format
-msgid "Network (HTTP)"
-msgstr "Şəbəkə %s"
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
-#: any.pm:168
-#, fuzzy, c-format
-msgid "Network (FTP)"
-msgstr "Şəbəkə %s"
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
-#: any.pm:169
+#: ../../advertising/06_IM_mageia.pl:1
#, c-format
-msgid "Network (NFS)"
+msgid "For kids"
msgstr ""
-#: any.pm:211
+#: ../../advertising/07_IM_mageia.pl:1
#, c-format
-msgid "URL of the mirror?"
+msgid "For family!"
msgstr ""
-#: any.pm:217
+#: ../../advertising/08_IM_mageia.pl:1
#, c-format
-msgid "URL must start with ftp:// or http://"
+msgid "For developers!"
msgstr ""
-#: any.pm:228
+#: ../../advertising/09_IM_mageia.pl:1
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
+msgid "Thank you!"
msgstr ""
-"Mövcud əkslərin siyahısını almaq üçün Mandriva Linux səhifəsi ilə təmas "
-"qurulur..."
-#: any.pm:233
-#, fuzzy, c-format
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr ""
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
+#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
msgstr ""
-"Mövcud əkslərin siyahısını almaq üçün Mandriva Linux səhifəsi ilə təmas "
-"qurulur..."
-#: any.pm:243
+#: any.pm:162
#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Paketleri almaq üçün bir əks ünvanı seçin"
+msgid "Network (HTTP)"
+msgstr ""
+
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
+msgstr ""
-#: any.pm:273
+#: any.pm:164
+#, c-format
+msgid "Network (NFS)"
+msgstr ""
+
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr ""
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr ""
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr ""
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr ""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr ""
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Qovluq"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr ""
-#: any.pm:341
-#, fuzzy, c-format
+#: any.pm:300
+#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
-msgstr "%s, %s üstündə tapıla bilmir"
+msgstr ""
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Qurulu olan paketlər yoxlanır..."
+msgid "Core Release"
+msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
+msgid "Tainted Release"
+msgstr ""
+
+#: any.pm:329
+#, c-format
+msgid "Nonfree Release"
+msgstr ""
+
+#: any.pm:367
+#, c-format
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
msgstr ""
-#: any.pm:424
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Qurulu olan paketlər yoxlanır..."
+
+#: any.pm:593
#, c-format
msgid "Finding packages to upgrade..."
msgstr "Güncəllənəcək paketlar tapılır"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:612
#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+msgid "Removing packages prior to upgrade..."
msgstr ""
-"Siz aşağıdakı vericiləri seçdiniz: %s\n"
-"\n"
-"\n"
-"Bu vericilər əsas olaraq fəal olur. Onların bilinən heç bir təhlükəsizlik\n"
-"problemləri yoxdur, ancaq bə'zi yeni xətalar tapıla bilər. Belə olsa, "
-"mümükün olan ən yaxın zamanda onları yeniləməlisiniz.\n"
-"\n"
-"\n"
-"Bu vericiləri həqiqətən də qurmaq istəyirsiniz?\n"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -182,82 +237,87 @@ msgstr ""
"\n"
"Bu paketləri həqiqətən də silmək istəyirsiniz?\n"
-#: any.pm:1055
-#, fuzzy, c-format
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "%s faylı oxunurkan xəta oldu"
+
+#: any.pm:1283
+#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "Aşağıdakı paketlər qurulmalıdır:\n"
+msgstr ""
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr ""
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr ""
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Şəbəkə"
-#: any.pm:1137
-#, fuzzy, c-format
+#: any.pm:1365
+#, c-format
msgid "Please choose a media"
-msgstr "Xahiş edirik seçin"
+msgstr ""
-#: any.pm:1153
-#, fuzzy, c-format
+#: any.pm:1381
+#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "Fayl onsuz da mövcuddur. Üstünə yazım?"
+msgstr ""
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Səlahiyyət yoxdur"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr ""
-#: any.pm:1226
-#, fuzzy, c-format
+#: any.pm:1454
+#, c-format
msgid "Bad media %s"
-msgstr "%s medyası əlavə edildi"
+msgstr ""
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Bölmələmədən əvvəl görüntü alına bilməz"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Ekran görüntüləri qurulumdan sonra %s mövqeyində olacaqdır"
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
-msgstr "Qurulur"
+msgstr ""
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Quraşdırma"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Eyni zamanda %s da şəkilləndirilməlidir"
@@ -282,107 +342,143 @@ msgstr "Şəbəkə fəallaşdırılır"
msgid "Bringing down the network"
msgstr "Şəbəkə dayandırılır"
-#: media.pm:703 media.pm:714
-#, fuzzy, c-format
-msgid "Downloading file %s..."
-msgstr "Fayllar göndərilir..."
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr ""
-#: media.pm:861
-#, fuzzy, c-format
+#: media.pm:797
+#, c-format
msgid "Copying in progress"
-msgstr "Təsbit etmə fəaliyyətdədir"
+msgstr ""
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "sınamağa dəyər"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "vacib"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "çox ə'la"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "ə'la"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "bəlkə"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "İzahat yoxdur"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "Xəta baş verdi"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "Ölümcül xəta yarandı: %s."
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr ""
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "İş Stansiyası"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "Ofis İş Stansiyası"
-#: share/meta-task/compssUsers.pl:15
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"İdarə proqramları: kəlmə işləyənlər (OpenOffice.org Writer, Kword), "
+"İdarə proqramları: kəlmə işləyənlər (LibreOffice Writer, Kword), "
"hesablayıcılar və pdf göstəriciləri, vs."
-#: share/meta-task/compssUsers.pl:16
-#, c-format
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"İdarə proqramları: kəlmə işləyənlər (kword, abiword), hesablayıcılar və pdf "
-"göstəriciləri, vs."
-
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Oyun stansiyası"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Məzəli proqramlar: arkad, lövhə oyunları, strategiya, vs"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Multimedya stansiyası"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Səs və video çalınması/düzəliş proqramları"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "İnternet stansiyası"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
@@ -391,205 +487,205 @@ msgstr ""
"Elektronik məktub və xəbər oxuyucu vasitələr dəstəsi (pine, mutt, tin..) və "
"Veb səyyahları"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Şəbəkə Kompüteri (alıcı)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "SSH daxil bir çox protokolların alıcıları"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Kompüter qurğularını asandlaşdıran vasitələr"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Konsol Vasitələri"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Editorlar, rəflər, fayl vasitələri, terminallar"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "İnkişaf"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "C və C++ inkişaf kitabxanaları, proqramları və daxil ediləcək fayllar"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Sənədlər"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Linuks və sərbəst proqram tə'minatı haqqında Kitablar və Howtolar"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Linux Standartları Bazası. Üçüncü partiya tə'minat dəstəyi"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Veb Vericisi"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:84
+#, c-format
msgid "Groupware"
-msgstr "Qrup"
+msgstr ""
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Kolab Vericisi"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Atəş Divarı/İstiqamətləndirici"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "İnternet keçidi"
-#: share/meta-task/compssUsers.pl:83
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:92
+#, c-format
msgid "Mail/News"
-msgstr "/Fayl/_Təze"
+msgstr ""
-#: share/meta-task/compssUsers.pl:84
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:93
+#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Postfix poçt vericisi"
+msgstr ""
-#: share/meta-task/compssUsers.pl:87
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:97
+#, c-format
msgid "Directory Server"
-msgstr "CD'dən Geri Yüklə"
+msgstr ""
-#: share/meta-task/compssUsers.pl:91
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:102
+#, c-format
msgid "FTP Server"
-msgstr "NTP Verici"
+msgstr ""
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr ""
-#: share/meta-task/compssUsers.pl:95
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:107
+#, c-format
msgid "DNS/NIS"
-msgstr "DNS"
+msgstr ""
-#: share/meta-task/compssUsers.pl:96
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:108
+#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "Domen Adı Vericisi"
+msgstr ""
-#: share/meta-task/compssUsers.pl:99
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:112
+#, c-format
msgid "File and Printer Sharing Server"
-msgstr "Çapçı Vericisi"
+msgstr ""
-#: share/meta-task/compssUsers.pl:100
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:113
+#, c-format
msgid "NFS Server, Samba server"
-msgstr "Samba vericisi"
+msgstr ""
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Mə'lumat Bazası"
-#: share/meta-task/compssUsers.pl:104
-#, fuzzy, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL ya da MySQL mə'lumat bazası vericisi"
+#: share/meta-task/compssUsers.pl:118
+#, c-format
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr ""
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Veb/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Poçt"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Postfix poçt vericisi"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL ya da MySQL mə'lumat bazası vericisi"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL ya da MariaDB mə'lumat bazası vericisi"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Şəbəkə Kompüter vericisi"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "NFS vericisi, SMB vericisi, Vəkil vericisi, SSH verici"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Qrafiki Mühit"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE iş stansiyası"
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr "KDE, əsas qrafiki ara üz və yardımçi proqramlar kolleksiyası"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "GNOME iş stansiyası"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -597,60 +693,112 @@ msgid ""
msgstr ""
"İstifadəçi dostu proqram və masa üstü ilə bərabər qrafiki ara üz vasitələri"
-#: share/meta-task/compssUsers.pl:142
-#, fuzzy, c-format
-msgid "IceWm Desktop"
-msgstr "Masa üstü"
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Başqa qrafiki ara üzlər"
-#: share/meta-task/compssUsers.pl:147
-#, fuzzy, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm, vs."
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Vasitələr"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH Vericisi"
-#: share/meta-task/compssUsers.pl:177
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:225
+#, c-format
msgid "Webmin"
-msgstr "Veb kamerası"
+msgstr ""
-#: share/meta-task/compssUsers.pl:178
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:226
+#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Terminal Server Quraşdırılması"
+msgstr ""
-#: share/meta-task/compssUsers.pl:182
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:230
+#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Şəbəkə İzlənməsi"
+msgstr ""
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr ""
-#: share/meta-task/compssUsers.pl:187
-#, fuzzy, c-format
-msgid "Mandriva Wizards"
-msgstr "<b>Mandriva Store</b>"
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr ""
-#: share/meta-task/compssUsers.pl:188
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:236
+#, c-format
msgid "Wizards to configure server"
-msgstr "\"%s\" çapçısı quraşdırıla bilmədi!"
+msgstr ""
#: steps.pm:85
#, c-format
@@ -661,7 +809,7 @@ msgstr ""
"Bir xəta oldu, yalnız necə düzəldiləcəyi bilinmir.\n"
"Davam edin, riski sizə aitdir!"
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -681,386 +829,425 @@ msgstr "Başlanğıc addımı `%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux Qurulumu %s"
+msgid "%s Installation %s"
+msgstr "%s Qurulumu %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> irəli/geri"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"Sizin sisteminizin qaynaqları çatışmır. Qurulum ərzində problem yaşaya "
-"bilərsiniz\n"
-"Bu baş verərsə mətn aracılığı ilə qurulumu sınamalısınız. Bunun üçün "
-"dəCDROMdan başlatdığınız zaman,\n"
-" 'F1'ə basın və 'text' yazaraq enter'ə basın."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Paket Qruplarının Seçimi"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Fərdi paket seçimi"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Ümumi böyüklük: %d / %d Mb"
+msgid "Unselect All"
+msgstr "Seçili olmayan hamısını"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Xətalı paket"
+msgid "Total size: %d / %d MB"
+msgstr "Ümumi böyüklük: %d / %d Mb"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Buraxılış: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Böyüklük: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Əhəmiyyət:"
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Bu paketi seçə bilməzsiniz/sistemdən çıxarda bilməzsınız"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "%s əksik olduğuna görə"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "%s razı qalmadığına görə"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "%s irəliləndirməyə çalışılır"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "%s-i saxlamaq üçün"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr "Bu paketi seçə bilməzsiniz, çünki qurmaq üçün yer çatmır."
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Aşağıdakı paketlər qurulacaq"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Aşağıdakı paketlər sistemdən silinəcəklər"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Bu lazımlı bir paketdir, sistemdən çıxardıla bilməz"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Bu paketi sistemdən çıxarda bilməzsınız. Artıq qurulmuşdur."
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Bu paketi sistemdən çıxarda bilməzsiniz. Yenilənməlidir"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Avtomatik seçili paketləri göstər"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Qur"
-#: steps_gtk.pm:436
-#, fuzzy, c-format
+#: steps_gtk.pm:519
+#, c-format
msgid "Load/Save selection"
-msgstr "Seçili olanı qeyd et"
+msgstr ""
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Paket seçkiləri yenilənir"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Minimal qurulum"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Proqram Tə'minatı İdarəsi"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Qurmaq istədiyiniz paketləri seçin"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Qurulur"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Təfsilatsız"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Qalan müddət"
+msgid "Time remaining:"
+msgstr ""
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Təxmini olaraq hesaplanır"
+msgid "(estimating...)"
+msgstr ""
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d paket"
+msgstr[0] ""
+msgstr[1] ""
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "İcmal"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Qur"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "quraşdırılmayıb"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr ""
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Bir xəta oldu"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Xahiş edirik, klaviatura düzülüşünüzü seçin."
+msgid "Please choose your keyboard layout"
+msgstr "Xahiş edirik, klaviatura düzülüşünüzü seçin"
-#: steps_interactive.pm:99
-#, fuzzy, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Bütün mövcud ölkələrinn siyahısı"
+#: steps_interactive.pm:109
+#, c-format
+msgid "Here is the full list of available keyboards:"
+msgstr ""
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Qurulum/Yeniləmə"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Bu bir qurulum, yoxsa yeniləmədir?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Qur"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "%s-i yenilə"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
+msgid "Encryption key for %s"
+msgstr "%s üçün şifrələmə açarı"
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
+msgid "Cancel installation, reboot system"
msgstr ""
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
-msgstr "%s üçün şifrələmə açarı"
+msgid "New Installation"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
-msgstr "İDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
-msgstr "İDE qapıları qurulur"
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+msgid "CD/DVD"
msgstr ""
-"1 MB bootstrap üçün yer yoxdur! Qurulum davam edəcək, ancaq sisteminizi aça "
-"bilmək üçün DiskDrake'də bootstrap bölməsi yaratmalısınız."
-#: steps_interactive.pm:236
-#, fuzzy, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
msgstr ""
-"1 MB bootstrap üçün yer yoxdur! Qurulum davam edəcək, ancaq sisteminizi aça "
-"bilmək üçün DiskDrake'də bootstrap bölməsi yaratmalısınız."
-#: steps_interactive.pm:328
-#, fuzzy, c-format
+#: steps_interactive.pm:354
+#, c-format
msgid ""
"Change your Cd-Rom!\n"
"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
"done.\n"
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
-"CD-ROM'u dəyişdirin!\n"
-"\n"
-"Xahiş edirik, \"%s\" adlı CD-ROM'u sürücünüzə yerləşdirin və Oldu düyməsinə "
-"basın.\n"
-"Əgər CD-ROM əlinizdə deyilsə, bu CD-Rom'dan qurmamaq üçün Ləğv Et düyməsinə "
-"basın."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Mövcud olan paketlər axtarılır."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-#: steps_interactive.pm:405
-#, fuzzy, c-format
+#: steps_interactive.pm:428
+#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-"Xahiş edirik, paket seçkilərini disketə qeyd et/disketdən yüklə\n"
-"seçənəyini seçin."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Yüklə"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Qeyd Et"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Səhv fayl"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Minimal qurulum"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Seçili böyüklük var olandan daha böyükdür"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Qurulum növü"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1069,82 +1256,126 @@ msgstr ""
"Heç bir paket qrupunu seçmədiniz.\n"
"Xahiş edirik, istədiyiniz ən kiçik qurulumu seçin:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "X ilə"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Əsas sənədlərlə birlikdə (məsləhət edilən!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Həqiqətən minimal qurulum (xüsusilə urpmi olmasın)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Qurulum hazırlanır"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "%s paketi qurulur"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Paketləri istərkən xəta yarandı:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Yenə də davam edək?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr ""
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr ""
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr ""
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "Paket seçkilərini qeyd et"
+msgstr ""
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "Paketlər qurulurkən bir xəta oldu:"
+msgstr ""
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Qurulum sonrası qurğular"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Yeniləmələr"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Aşağıdakı paketlər qurulacaq"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Medium əlavə etmə xətası"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1166,146 +1397,97 @@ msgstr ""
"\n"
"Yeniləmələri qurmaq istəyirsiniz ?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Əks ünvanına bağlantı qurulur"
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "%s əksi ilə rabitə qurula bilmir"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%2$s üstündə %1$s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Avadanlıq"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Səs kartı"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Heç İSA səs kartınız var?"
-
-#: steps_interactive.pm:904
-#, fuzzy, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Qurulumdan sonra səs kartınızı qurğulamaq üçün \"sndconfig\" əmrini icra edin"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "Səs kartı tapılmadı. Qurulumdan sonra \"harddrake\"ni işə salın"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Qrafiki ara üz"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Şəbəkə və İnternet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Vəkil vericiləri"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "quraşdırılıb"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Təhlükəsizlik Səviyyəsi"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Atəş Divarı"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "fəal"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "qeyri-fəal"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "Siz X-i quraşdırmadınız. Bundan əminsinizmi?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "Açılış yükləyici hazırlanır"
-
-#: steps_interactive.pm:1018
-#, fuzzy, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Preparing initial startup program..."
msgstr ""
-"Dünyadan kənar yerdən gələn ya da namə'lum\n"
-" sisteminiz var, yaboot açılış yükləyicisi sizin üçün işləməyəcək.\n"
-"Qurulum davam edəcək ancaq kompüterinizi aça bilmək üçün\n"
-" BootX ya da başqa vasitədən istifadə etməlisiniz"
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "aboot istifadə etmək istəyirsiniz?"
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
+msgid "Be patient, this may take a while..."
msgstr ""
-"aboot qurulumunda xata, \n"
-"ilk disk bölməsini yox etsə belə yenə də qurulmasını istəyirsiniz?"
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "%s sürücüsünə boş bir disket yerləşdirin"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Avtomatik qurulum disketi hazırlanır"
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1316,51 +1498,16 @@ msgstr ""
"\n"
"Həqiqətən də çıxmaq istəyirsiniz?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Təbriklər"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Yenidən başlat"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Avtomatik qurulum disketi hazırla"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Avtomatik qurulum tamamilə avtomatikləşdirilə bilər,\n"
-"ancaq bu zaman o bütün sabit diskə əl qoyacaq!!!\n"
-"(bu başqa kompüterdə də sistemi qura bilmək üçündür).\n"
-"\n"
-"Gələcəkdə bu qurulumu təkrarlamaq istəyə bilərsiniz.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Təkrarla"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Avtomatlaşdırılmış"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Paket seçkilərini qeyd et"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1451,13 +1598,6 @@ msgid ""
"Users"
msgstr "İstifadəçilər"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Şəbəkə"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1500,63 +1640,11 @@ msgid ""
"Exit"
msgstr "Çıxış"
-#~ msgid "All"
-#~ msgstr "Hamısı"
-
-#~ msgid "TV card"
-#~ msgstr "TV kartı"
-
-#~ msgid "Boot"
-#~ msgstr "Açılış"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Tanıtma"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "(%d paket, %d MB)"
-
-#~ msgid "%d packages"
-#~ msgstr "%d paket"
-
-#~ msgid "Language"
-#~ msgstr "Dil"
-
-#~ msgid "License"
-#~ msgstr "Lisenziya"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "Qurulum sinifinin seçimi"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "Təxmini olaraq hesaplanır"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "Qurulacaq paketlərin seçimi"
-
-#~ msgid "Users"
-#~ msgstr "İstifadəçilər"
-
-#~ msgid "Networking"
-#~ msgstr "Şəbəkə"
-
-#~ msgid "Configure X"
-#~ msgstr "X quraşdırılması"
-
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
#~ msgstr ""
-#~ "Çəyirdəyinizə uyğun gələn çəyirdək modullarına yetişilə bilmədi (%s faylı "
-#~ "əksikdir), bu çox vaxt açılış disketinizin Qurulum mediyası ilə "
-#~ "sinxronluq içində olmadığı mə'nasına gəlir (xahiş edirik, yeni disket "
-#~ "yaradın)."
+#~ "Mövcud əkslərin siyahısını almaq üçün %s səhifəsi ilə təmas qurulur..."
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Paketleri almaq üçün bir əks ünvanı seçin"
diff --git a/perl-install/install/share/po/be.po b/perl-install/install/share/po/be.po
index cd0dd713b..21857ccd2 100644
--- a/perl-install/install/share/po/be.po
+++ b/perl-install/install/share/po/be.po
@@ -1,156 +1,233 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 1999 Mandriva.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
# Alexander Bokovoy <ab@avilink.net>, 2000
# Maryia Davidouskaia <maryia@scientist.com>, 2000
msgid ""
msgstr ""
-"Project-Id-Version: DrakX VERSION\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2000-09-24 12:30 +0100\n"
-"Last-Translator: Alexander Bokovoy <ab@avilink.net>\n"
-"Language-Team: be\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Belarusian (http://www.transifex.com/MageiaLinux/mageia/"
+"language/be/)\n"
+"Language: be\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
+"%100>=11 && n%100<=14)? 2 : 3);\n"
-#: any.pm:155
-#, fuzzy, c-format
-msgid "Do you have further supplementary media?"
-msgstr "Ці ёсць у вас іншы?"
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: ../../advertising/02_IM_mageia.pl:1
#, c-format
-msgid ""
-"The following media have been found and will be used during install: %s.\n"
-"\n"
-"\n"
-"Do you have a supplementary installation medium to configure?"
+msgid "Make it yours!"
msgstr ""
-#: any.pm:166
+#: ../../advertising/03_IM_mageia.pl:1
#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
+msgid "Your choice!"
+msgstr ""
-#: any.pm:167
-#, fuzzy, c-format
-msgid "Network (HTTP)"
-msgstr "Сетка"
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
-#: any.pm:168
-#, fuzzy, c-format
-msgid "Network (FTP)"
-msgstr "Сетка"
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
-#: any.pm:169
+#: ../../advertising/06_IM_mageia.pl:1
#, c-format
-msgid "Network (NFS)"
+msgid "For kids"
msgstr ""
-#: any.pm:211
+#: ../../advertising/07_IM_mageia.pl:1
#, c-format
-msgid "URL of the mirror?"
+msgid "For family!"
msgstr ""
-#: any.pm:217
+#: ../../advertising/08_IM_mageia.pl:1
#, c-format
-msgid "URL must start with ftp:// or http://"
+msgid "For developers!"
msgstr ""
-#: any.pm:228
-#, fuzzy, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr "Сувязь з люрам для атрымання спісу даступных пакетаў"
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr ""
-#: any.pm:233
-#, fuzzy, c-format
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr ""
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
+#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr "Сувязь з люрам для атрымання спісу даступных пакетаў"
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
+msgstr ""
+
+#: any.pm:162
+#, c-format
+msgid "Network (HTTP)"
+msgstr ""
+
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
+msgstr ""
-#: any.pm:243
+#: any.pm:164
#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Выбар люстра для атрымання пакетаў"
+msgid "Network (NFS)"
+msgstr ""
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr ""
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr ""
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr ""
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr ""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr ""
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Каталёг"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr ""
-#: any.pm:341
-#, fuzzy, c-format
+#: any.pm:300
+#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
-msgstr "Не знойздены праграмы\n"
+msgstr ""
-#: any.pm:375
-#, fuzzy, c-format
-msgid "Looking at packages already installed..."
-msgstr "Вы не можаце адмяніць вылучэнне гэтага пакету. Ён ужо ўсталяваны"
+#: any.pm:325
+#, c-format
+msgid "Core Release"
+msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
+msgid "Tainted Release"
+msgstr ""
+
+#: any.pm:329
+#, c-format
+msgid "Nonfree Release"
+msgstr ""
+
+#: any.pm:367
+#, c-format
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
msgstr ""
-#: any.pm:424
+#: any.pm:593
#, c-format
msgid "Finding packages to upgrade..."
msgstr "Пошук пакетаў для абнаўлення"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:612
#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+msgid "Removing packages prior to upgrade..."
msgstr ""
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -159,82 +236,87 @@ msgid ""
"Do you really want to remove these packages?\n"
msgstr ""
-#: any.pm:1055
-#, fuzzy, c-format
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Памылка чытання файлу %s"
+
+#: any.pm:1283
+#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "Наступныя пакеты будуць даданы да сістэмы"
+msgstr ""
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr ""
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr ""
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
-#, fuzzy, c-format
+#: any.pm:1342
+#, c-format
msgid "NFS"
-msgstr "ФС"
+msgstr ""
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Сетка"
-#: any.pm:1137
-#, fuzzy, c-format
+#: any.pm:1365
+#, c-format
msgid "Please choose a media"
-msgstr "Калі ласка выбярыце відарыс відэа"
+msgstr ""
-#: any.pm:1153
-#, fuzzy, c-format
+#: any.pm:1381
+#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "Файл ужо йснуе. Перапісаць?"
+msgstr ""
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Адмоўлена ў доступе"
-#: any.pm:1205
-#, fuzzy, c-format
+#: any.pm:1433
+#, c-format
msgid "Bad NFS name"
-msgstr "Бяз назвы"
+msgstr ""
-#: any.pm:1226
-#, fuzzy, c-format
+#: any.pm:1454
+#, c-format
msgid "Bad media %s"
-msgstr "Загружаецца файл %s"
+msgstr ""
-#: any.pm:1269
-#, fuzzy, c-format
-msgid "Can not make screenshots before partitioning"
-msgstr "Дадаць раздзел немагчыма"
+#: any.pm:1498
+#, c-format
+msgid "Cannot make screenshots before partitioning"
+msgstr ""
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr ""
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
-msgstr "Усталёўваем"
+msgstr ""
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Канфігурацыя"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr ""
@@ -258,300 +340,336 @@ msgstr "Далучэнне да сеткі"
msgid "Bringing down the network"
msgstr "Адлучэнне ад сеткі"
-#: media.pm:703 media.pm:714
-#, fuzzy, c-format
-msgid "Downloading file %s..."
-msgstr "Вызначэнне прыладаў..."
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
+
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr ""
-#: media.pm:861
-#, fuzzy, c-format
+#: media.pm:797
+#, c-format
msgid "Copying in progress"
-msgstr "Стварэньне меню ўжо запушчана"
+msgstr ""
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "павінны мець"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "важна"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "вельмі добра"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "добра"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "можа быць"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Апісаньне адсутнічае"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-#: share/meta-task/compssUsers.pl:11
-#, fuzzy, c-format
-msgid "Workstation"
-msgstr "Канфігурацыя"
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr ""
-#: share/meta-task/compssUsers.pl:13
-#, fuzzy, c-format
-msgid "Office Workstation"
-msgstr "Працоўныя мейсцы"
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr ""
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr ""
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
msgstr ""
-"Офісныя праграмы: працэсары словаў (OpenOffice.org Writer, Kword), "
-"электроныя табліцы, аглядальнікі pdf-файлаў, і г.д."
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Офісныя праграмы: працэсары словаў (kword, abiword), электроныя табліцы, "
-"аглядальнікі pdf-файлаў, і г.д."
+"Офісныя праграмы: працэсары словаў (LibreOffice Writer, Kword), электроныя "
+"табліцы, аглядальнікі pdf-файлаў, і г.д."
-#: share/meta-task/compssUsers.pl:21
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:26
+#, c-format
msgid "Game station"
-msgstr "Аўтэнтыфікацыя"
+msgstr ""
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Забаўляльныя праграмы: аркады, стратэгіі і г.д."
-#: share/meta-task/compssUsers.pl:25
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:30
+#, c-format
msgid "Multimedia station"
-msgstr "Мульцімедыя"
+msgstr ""
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Рэдактары і прайгравальнікі гуку і відэа"
-#: share/meta-task/compssUsers.pl:31
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:36
+#, c-format
msgid "Internet station"
-msgstr "Інтэрнэт"
+msgstr ""
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-#: share/meta-task/compssUsers.pl:37
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:42
+#, c-format
msgid "Network Computer (client)"
-msgstr "Сеткавы прынтэр (TCP/Socket)"
+msgstr ""
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr ""
-#: share/meta-task/compssUsers.pl:43
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:49
+#, c-format
msgid "Tools to ease the configuration of your computer"
-msgstr "Ці жадаеце пратэсціраваць настройкі?"
+msgstr ""
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Кансольныя інструментальныя сродкі"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Рэдактары, абалонкі, тэрміналы"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Распрацоўка"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "Бібліятэкі і праграмы для распрацоўкі на С і С++"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Дакумэнтацыя"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "нігі і Howto па Linux і Free Software"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr ""
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr ""
-#: share/meta-task/compssUsers.pl:71
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:79
+#, c-format
msgid "Web Server"
-msgstr "Сервак"
+msgstr ""
-#: share/meta-task/compssUsers.pl:72
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:80
+#, c-format
msgid "Apache"
-msgstr "Шлях:"
+msgstr ""
-#: share/meta-task/compssUsers.pl:75
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:84
+#, c-format
msgid "Groupware"
-msgstr "Групы"
+msgstr ""
-#: share/meta-task/compssUsers.pl:76
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:85
+#, c-format
msgid "Kolab Server"
-msgstr "NIS сэервер:"
+msgstr ""
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
+#, c-format
msgid "Firewall/Router"
-msgstr "Рэстарт"
+msgstr ""
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
+#, c-format
msgid "Internet gateway"
-msgstr "Інтэрнэт"
+msgstr ""
-#: share/meta-task/compssUsers.pl:83
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:92
+#, c-format
msgid "Mail/News"
-msgstr "/Файл/_Стварыць"
+msgstr ""
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr ""
-#: share/meta-task/compssUsers.pl:87
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:97
+#, c-format
msgid "Directory Server"
-msgstr "Каталог %s Так"
+msgstr ""
-#: share/meta-task/compssUsers.pl:91
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:102
+#, c-format
msgid "FTP Server"
-msgstr "NIS сэервер:"
+msgstr ""
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr ""
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr ""
-#: share/meta-task/compssUsers.pl:96
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:108
+#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "Імя дамену"
+msgstr ""
-#: share/meta-task/compssUsers.pl:99
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:112
+#, c-format
msgid "File and Printer Sharing Server"
-msgstr "Сервер друку"
+msgstr ""
-#: share/meta-task/compssUsers.pl:100
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:113
+#, c-format
msgid "NFS Server, Samba server"
-msgstr "X сэервер"
+msgstr ""
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "База даньняў"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
+msgid "PostgreSQL and MariaDB Database Server"
msgstr ""
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr ""
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr ""
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Пошта"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr ""
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
+msgid "PostgreSQL or MariaDB database server"
msgstr ""
-#: share/meta-task/compssUsers.pl:124
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:142
+#, c-format
msgid "Network Computer server"
-msgstr "Сеткавыя інтэрфэйсы"
+msgstr ""
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr ""
-#: share/meta-task/compssUsers.pl:131
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:150
+#, c-format
msgid "Graphical Environment"
-msgstr "Абалонка"
+msgstr ""
-#: share/meta-task/compssUsers.pl:133
-#, fuzzy, c-format
-msgid "KDE Workstation"
-msgstr "Канфігурацыя"
+#: share/meta-task/compssUsers.pl:152
+#, c-format
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -560,12 +678,12 @@ msgstr ""
"The K Desktop Environment - асноўнае графічнае асяродзе з калекцыяй "
"інструментальных сродкаў"
-#: share/meta-task/compssUsers.pl:138
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:158
+#, c-format
msgid "GNOME Workstation"
-msgstr "Інфармацыя аб памяці"
+msgstr ""
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -574,60 +692,112 @@ msgstr ""
"Графічнае асяродзе са зручным дзеля выкарыстання наборам прыкладанняў і "
"інструментальных сродкаў"
-#: share/meta-task/compssUsers.pl:142
-#, fuzzy, c-format
-msgid "IceWm Desktop"
-msgstr "Працоўны стол"
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Іншыя графічныя Працоўныя сталы"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
+msgid "Window Maker, Fvwm, etc"
msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Карыснасьці"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
+#, c-format
msgid "SSH Server"
-msgstr "NIS сэервер:"
+msgstr ""
-#: share/meta-task/compssUsers.pl:177
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:225
+#, c-format
msgid "Webmin"
-msgstr "Прылады"
+msgstr ""
-#: share/meta-task/compssUsers.pl:178
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:226
+#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Сістэмнае адміністраваньне"
+msgstr ""
-#: share/meta-task/compssUsers.pl:182
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:230
+#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Канфігурацыя сеткі"
+msgstr ""
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr ""
-#: share/meta-task/compssUsers.pl:187
-#, fuzzy, c-format
-msgid "Mandriva Wizards"
-msgstr "Цэнтар кіраваньня"
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr ""
-#: share/meta-task/compssUsers.pl:188
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:236
+#, c-format
msgid "Wizards to configure server"
-msgstr "Немагчыма выдаліць \"%s\": %s."
+msgstr ""
#: steps.pm:85
#, c-format
@@ -638,7 +808,7 @@ msgstr ""
"Узнікла памылка, якую не атрымліваецца карэктна апрацаваць,\n"
"таму працягвайце на сваю рызыку."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -658,463 +828,558 @@ msgstr "Пераход на крок ‛%s’\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Усталяванне Mandriva Linux %s"
+msgid "%s Installation %s"
+msgstr "Усталяванне %s %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> паміж элементамі"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
"У Вашай сістэме маецца недахоп рэсурсаў, таму магчымы праблемы\n"
-"пры ўсталяванні Mandriva Linux. У гэтым выпадку паспрабуйце тэкставую\n"
+"пры ўсталяванні %s. У гэтым выпадку паспрабуйце тэкставую\n"
"праграму ўсталявання. Для гэтага націсніце ‛F1’ у час загрузкі, а потым\n"
"набярыце ‛text’ і націсніце <ENTER>."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Выбар групы пакетаў"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Асабісты выбар пакетаў"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Агульны памер: %d / %d Мб"
+msgid "Unselect All"
+msgstr ""
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Дрэнны пакет"
+msgid "Total size: %d / %d MB"
+msgstr "Агульны памер: %d / %d Мб"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Вэрсія: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Памер: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr ""
-#: steps_gtk.pm:348
-#, fuzzy, c-format
+#: steps_gtk.pm:427
+#, c-format
msgid "Importance: "
-msgstr "важна"
+msgstr ""
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Вы не можаце вылучаць і адмяняць вылучэнне гэтага пакету"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr ""
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr ""
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr ""
-#: steps_gtk.pm:389
-#, fuzzy, c-format
+#: steps_gtk.pm:469
+#, c-format
msgid "in order to keep %s"
-msgstr "Уласьцівасьці акна"
+msgstr ""
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"Вы не можаце выбраць гэты пакет, таму як не хапае месца для яго ўсталявання"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Наступныя пакеты будуць даданы да сістэмы"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Наступныя пакеты будуць выдалены"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Гэта абавязковы пакет, яго вылучэнне нельга адмяніць"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Вы не можаце адмяніць вылучэнне гэтага пакету. Ён ужо ўсталяваны"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Вы не можаце адмяніць вылучэнне гэтага пакету. Яго патрэбна абнавіць"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr ""
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Усталёўка"
-#: steps_gtk.pm:436
-#, fuzzy, c-format
+#: steps_gtk.pm:519
+#, c-format
msgid "Load/Save selection"
-msgstr "Перанесьці вылучэньне"
+msgstr ""
-#: steps_gtk.pm:437
-#, fuzzy, c-format
+#: steps_gtk.pm:520 steps_gtk.pm:525
+#, c-format
msgid "Updating package selection"
-msgstr "Асабісты выбар пакетаў"
+msgstr ""
-#: steps_gtk.pm:442
-#, fuzzy, c-format
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
+#, c-format
msgid "Minimal install"
-msgstr "Ахоўнік экрану"
+msgstr ""
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr ""
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Выбар пакетаў для ўсталявання"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Усталёўваем"
-#: steps_gtk.pm:499
-#, fuzzy, c-format
+#: steps_gtk.pm:590
+#, c-format
msgid "No details"
-msgstr "Падрабязнасці"
+msgstr ""
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Засталося часу "
+msgid "Time remaining:"
+msgstr ""
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Чакаецца"
+msgid "(estimating...)"
+msgstr ""
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d пакетаў"
-msgstr[1] "%d пакетаў"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Агульныя зьвесткі"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Настройка"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
-#, fuzzy, c-format
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
+#, c-format
msgid "not configured"
-msgstr "Настроіць панэль"
+msgstr ""
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr ""
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Адбылася памылка"
-#: steps_interactive.pm:97
-#, fuzzy, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Калі ласка, абярыце тып клавіятуры."
+#: steps_interactive.pm:105
+#, c-format
+msgid "Please choose your keyboard layout"
+msgstr ""
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
+msgid "Here is the full list of available keyboards:"
msgstr ""
-#: steps_interactive.pm:129
-#, fuzzy, c-format
+#: steps_interactive.pm:153
+#, c-format
msgid "Install/Upgrade"
-msgstr "Усталёўваем"
+msgstr ""
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr ""
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Усталёўка"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr ""
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
+msgid "Encryption key for %s"
msgstr ""
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
+msgid "Cancel installation, reboot system"
msgstr ""
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
+msgid "New Installation"
msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
-msgstr "Настройка IDE"
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+msgid "CD/DVD"
msgstr ""
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+msgid "Configuring CD/DVD"
msgstr ""
-#: steps_interactive.pm:328
-#, fuzzy, c-format
+#: steps_interactive.pm:354
+#, c-format
msgid ""
"Change your Cd-Rom!\n"
"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
"done.\n"
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
-"Змяніце ваш Cd-Rom!\n"
-"\n"
-"Калі ласка, устаўце Cd-Rom, пазначаны \"%s\", у ваш дыскавод і націсніце Ок "
-"пасля.\n"
-"Калі вы не маеце яго, націсніце Адмяніць, каб адмяніць усталяванне з гэтага "
-"Cd."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Прагляд даступных пакетаў"
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Загрузка"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Захаваць"
-#: steps_interactive.pm:415
-#, fuzzy, c-format
+#: steps_interactive.pm:438
+#, c-format
msgid "Bad file"
-msgstr "Загрузка файла"
+msgstr ""
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Ахоўнік экрану"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr ""
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr ""
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr ""
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr ""
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr ""
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Падрыхтоўка ўсталяваньня"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Усталяванне пакету %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Атрымалася памылка ўпарадкавання пакетаў:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Усё роўна працягваць?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr ""
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr ""
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr ""
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "Асабісты выбар пакетаў"
+msgstr ""
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "Атрымалася памылка ўпарадкавання пакетаў:"
+msgstr ""
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Настройка пасля ўсталявання"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
+msgstr "Аднавіць"
+
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Наступныя пакеты будуць даданы да сістэмы"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
msgstr ""
-#: steps_interactive.pm:692
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1127,141 +1392,97 @@ msgid ""
"Do you want to install the updates?"
msgstr ""
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Сувязь з люрам для атрымання спісу даступных пакетаў"
-
-#: steps_interactive.pm:719
-#, fuzzy, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Немагчыма адчыніць файл %s\n"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s на %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Абсталяваньне"
-#: steps_interactive.pm:881 steps_interactive.pm:899
-#, fuzzy, c-format
-msgid "Sound card"
-msgstr "Праграма гуказапісу"
-
-#: steps_interactive.pm:902
-#, fuzzy, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Ці ёсць у вас іншы?"
-
-#: steps_interactive.pm:904
+#: steps_interactive.pm:958
#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
+msgid "Sound card"
msgstr ""
-#: steps_interactive.pm:906
+#: steps_interactive.pm:972
#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-
-#: steps_interactive.pm:914
-#, fuzzy, c-format
msgid "Graphical interface"
-msgstr "Запуск X пры старце сістэмы"
+msgstr ""
-#: steps_interactive.pm:921 steps_interactive.pm:932
-#, fuzzy, c-format
+#: steps_interactive.pm:978 steps_interactive.pm:990
+#, c-format
msgid "Network & Internet"
-msgstr "Сеткавы інтэрфейс"
+msgstr ""
-#: steps_interactive.pm:933
-#, fuzzy, c-format
+#: steps_interactive.pm:991
+#, c-format
msgid "Proxies"
-msgstr "Проксі"
+msgstr ""
-#: steps_interactive.pm:934
-#, fuzzy, c-format
+#: steps_interactive.pm:992
+#, c-format
msgid "configured"
-msgstr "Настроіць панэль"
+msgstr ""
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Узровень бясьпекі"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr ""
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr ""
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "выключаны"
-#: steps_interactive.pm:981
-#, fuzzy, c-format
-msgid "You have not configured X. Are you sure you really want this?"
-msgstr "Меню не было захавана. Ці сапраўды вы жадаеце выйсці?"
-
-#: steps_interactive.pm:1008
+#: steps_interactive.pm:1041
#, c-format
-msgid "Preparing bootloader..."
-msgstr "Падрыхтоўка загрузчыка"
-
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "You have not configured X. Are you sure you really want this?"
msgstr ""
-#: steps_interactive.pm:1024
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Вы жадаеце выкарыстоўваць aboot?"
+msgid "Preparing initial startup program..."
+msgstr ""
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
+msgid "Be patient, this may take a while..."
msgstr ""
-"Памылка ўсталявання aboot, \n"
-"спрабаваць усталёўваць, негледзячы на магчымасць парушэння першага разделу?"
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Устаўце дыскету ў дыскавод %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Стварэнне дыскеты для ўсталявання"
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1271,46 +1492,16 @@ msgstr ""
"Некаторыя крокі не завершаны.\n"
"Вы сапраўды жадаеце выйсці зараз?"
-#: steps_interactive.pm:1094
-#, fuzzy, c-format
+#: steps_interactive.pm:1144
+#, c-format
msgid "Congratulations"
-msgstr "Прыміце віншаванні!"
+msgstr ""
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Перазагрузка"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, fuzzy, c-format
-msgid "Generate auto install floppy"
-msgstr "Стварэнне дыскеты для ўсталявання"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-
-#: steps_interactive.pm:1109
-#, fuzzy, c-format
-msgid "Replay"
-msgstr "Граць"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Аўтаматычны"
-
-#: steps_interactive.pm:1112
-#, fuzzy, c-format
-msgid "Save packages selection"
-msgstr "Асабісты выбар пакетаў"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1401,13 +1592,6 @@ msgid ""
"Users"
msgstr "Карыстальнікі"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr ""
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1450,52 +1634,6 @@ msgid ""
"Exit"
msgstr "Выход"
-#~ msgid "All"
-#~ msgstr "Усё"
-
-#, fuzzy
-#~ msgid "Boot"
-#~ msgstr "Манітор"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Аўтэнтыфікацыя"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "%d пакетаў"
-#~ msgstr[1] "%d пакетаў"
-
-#~ msgid "%d packages"
-#~ msgstr "%d пакетаў"
-
-#~ msgid "Language"
-#~ msgstr "Выбар мовы"
-
-#, fuzzy
-#~ msgid "License"
-#~ msgstr "Ліхтэнштайн"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "Клас усталявання"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "Чакаецца"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "Выбар пакетаў"
-
-#~ msgid "Users"
-#~ msgstr "Карыстальнікі"
-
-#, fuzzy
-#~ msgid "Networking"
-#~ msgstr "Сетка"
-
-#~ msgid "Configure X"
-#~ msgstr "Настройка X Window"
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Выбар люстра для атрымання пакетаў"
diff --git a/perl-install/install/share/po/bg.po b/perl-install/install/share/po/bg.po
index 9736abf07..23f160fca 100644
--- a/perl-install/install/share/po/bg.po
+++ b/perl-install/install/share/po/bg.po
@@ -1,175 +1,233 @@
-# translation of DrakX-bg.po to Bulgarian
-# Copyright (C) 2000,2003 Free Software Foundation, Inc.
-# Copyright (c) 2000 Mandriva
-# Bozhan Boiadzhiev <bozhan@plov.omega.bg>, 2000.
-# Borislav Aleksandrov <B.Aleksandrov@cnsys.bg>, 2003.
-# Boyan Ivanov <boyan17@bulgaria.com>, 2003.
-#
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Borislav Aleksandrov <B.Aleksandrov@cnsys.bg>, 2003
+# Boyan Ivanov <boyan17@bulgaria.com>, 2003
+# Bozhan Boiadzhiev <bozhan@plov.omega.bg>, 2000
+# Kolio Kolev <kolio_kolev@biotronica.net>, 2009
msgid ""
msgstr ""
-"Project-Id-Version: DrakX-bg\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2004-09-15 13:27+0200\n"
-"Last-Translator: Boyan Ivanov <boyan17@bulgaria.com>\n"
-"Language-Team: Bulgarian <dict@linux.zonebg.com>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Georgi Georgiev <georgiev_1994@abv.bg>\n"
+"Language-Team: Bulgarian (http://www.transifex.com/MageiaLinux/mageia/"
+"language/bg/)\n"
+"Language: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.0.2\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: any.pm:155
-#, fuzzy, c-format
-msgid "Do you have further supplementary media?"
-msgstr "Имате ли друг(и) ?"
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: ../../advertising/02_IM_mageia.pl:1
#, c-format
-msgid ""
-"The following media have been found and will be used during install: %s.\n"
-"\n"
-"\n"
-"Do you have a supplementary installation medium to configure?"
+msgid "Make it yours!"
msgstr ""
-#: any.pm:166
+#: ../../advertising/03_IM_mageia.pl:1
#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
+msgid "Your choice!"
+msgstr ""
-#: any.pm:167
-#, fuzzy, c-format
-msgid "Network (HTTP)"
-msgstr "Мрежа %s"
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
-#: any.pm:168
-#, fuzzy, c-format
-msgid "Network (FTP)"
-msgstr "Мрежа %s"
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
-#: any.pm:169
+#: ../../advertising/06_IM_mageia.pl:1
#, c-format
-msgid "Network (NFS)"
+msgid "For kids"
msgstr ""
-#: any.pm:211
+#: ../../advertising/07_IM_mageia.pl:1
#, c-format
-msgid "URL of the mirror?"
+msgid "For family!"
msgstr ""
-#: any.pm:217
+#: ../../advertising/08_IM_mageia.pl:1
#, c-format
-msgid "URL must start with ftp:// or http://"
+msgid "For developers!"
msgstr ""
-#: any.pm:228
+#: ../../advertising/09_IM_mageia.pl:1
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
+msgid "Thank you!"
msgstr ""
-"Свързване с Mandriva Linux web сайт за получаване на списъка с налични "
-"огледални сървъри..."
-#: any.pm:233
-#, fuzzy, c-format
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr ""
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
+#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
msgstr ""
-"Свързване с Mandriva Linux web сайт за получаване на списъка с налични "
-"огледални сървъри..."
-#: any.pm:243
+#: any.pm:162
#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Изберете огледален сървър,от който да получите пакетите"
+msgid "Network (HTTP)"
+msgstr ""
-#: any.pm:273
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
+msgstr ""
+
+#: any.pm:164
+#, c-format
+msgid "Network (NFS)"
+msgstr ""
+
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr ""
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr ""
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr ""
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr ""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr ""
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Директория"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr ""
-#: any.pm:341
-#, fuzzy, c-format
+#: any.pm:300
+#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
-msgstr "Не мога да намеря %s на %s"
+msgstr ""
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Търси във вече инсталираните пакети..."
+msgid "Core Release"
+msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
+msgid "Tainted Release"
+msgstr ""
+
+#: any.pm:329
+#, c-format
+msgid "Nonfree Release"
+msgstr ""
+
+#: any.pm:367
+#, c-format
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
msgstr ""
-#: any.pm:424
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Търси във вече инсталираните пакети..."
+
+#: any.pm:593
#, c-format
msgid "Finding packages to upgrade..."
msgstr "Търся пакети за обновяване"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:612
#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+msgid "Removing packages prior to upgrade..."
msgstr ""
-"Избрали сте следния(те) сървър(и): %s\n"
-"\n"
-"\n"
-"Тези сървъри се активират по подразбиране. Те нямат известни проблеми със\n"
-"сигурността, но може да се намерят нови. В този случай, ще трябва да сте\n"
-"сигурни, че ще надграждате възможно най-бързо.\n"
-"\n"
-"\n"
-"Наистина ли искате да инсталирате тези сървъри ?\n"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -177,88 +235,93 @@ msgid ""
"\n"
"Do you really want to remove these packages?\n"
msgstr ""
-"Следните пакети ще бъдат изтрити за да се позволи обновяване на системата: %"
-"s\n"
+"Следните пакети ще бъдат изтрити за да се позволи обновяване на системата: "
+"%s\n"
"\n"
"\n"
"Действително ли искате да изтриете тези пакети?\n"
-#: any.pm:1055
-#, fuzzy, c-format
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Грешка при четенето на файла %s"
+
+#: any.pm:1283
+#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "Следните пакети ще трябва да се инсталират:\n"
+msgstr ""
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr ""
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Мрежа"
-#: any.pm:1137
-#, fuzzy, c-format
+#: any.pm:1365
+#, c-format
msgid "Please choose a media"
-msgstr "Моля изберете"
+msgstr ""
-#: any.pm:1153
-#, fuzzy, c-format
+#: any.pm:1381
+#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "Файлът съществува. Да бъде ли презаписан?"
+msgstr ""
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Лисват права"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr ""
-#: any.pm:1226
-#, fuzzy, c-format
+#: any.pm:1454
+#, c-format
msgid "Bad media %s"
-msgstr "добавен източник %s"
+msgstr ""
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Не мога да направя моментна \"снимка\" преди разделянето на диска "
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Снимки ще бъдат налични след инсталиране в %s"
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
-msgstr "Инсталирам"
+msgstr ""
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Настройка"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Вие трябва също да форматирате %s"
@@ -283,302 +346,336 @@ msgstr "Включвам мрежата"
msgid "Bringing down the network"
msgstr "Изключване на мрежата"
-#: media.pm:703 media.pm:714
-#, fuzzy, c-format
-msgid "Downloading file %s..."
-msgstr "Изпращам файлове..."
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
+
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr ""
-#: media.pm:861
-#, fuzzy, c-format
+#: media.pm:797
+#, c-format
msgid "Copying in progress"
-msgstr "Откриване в прогрес"
+msgstr "Копиране в прогрес"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "нужен"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "важен"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "много добър"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "добър"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "става"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Без описание"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "Работна станция"
+msgid "An error occurred:"
+msgstr "Появи се грешка:"
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Офисна работна станция"
+msgid "A fatal error occurred: %s."
+msgstr "Получи се непоправима грешка: %s"
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "Do not ask again"
+msgstr "Без въпроси отново"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d инсталационни транзакции пропаднаха"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
msgstr ""
-"Офис програми: word-процесори (OpenOffice.org Writer, Kword), таблици "
-"(OpenOffice.org Calc, Kspread), преглед на PDF, и т.н."
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "Работна станция"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Офисна работна станция"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Офис програми: word-процесори (kword, abiword), таблици (kspread, gnumeric), "
-"преглед на PDF, и т.н."
+"Офис програми: word-процесори (LibreOffice Writer, Kword), таблици "
+"(LibreOffice Calc, Kspread), преглед на PDF, и т.н."
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Игрална станция"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Забавни програми: аркадни игри, игри на маса, стратегии и т.н."
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Мутимедийна станция"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Програми за пускане/поправяне на звук и видео"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Интернет станция"
-#: share/meta-task/compssUsers.pl:32
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:37
+#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-"Набор от инструменти за четене и изпращане на поща и новини (pine, mutt, "
-"tin..) и за обикаляне из Мрежата"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Мрежов компютър (клиент)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Клиенти за различни протоколи включително SSH"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Инструменти за улесняване настройката на компютъра ви"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Конзолни инструменти"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Редактори, шелове, файлови инстрименти, терминали"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Разработка"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "Библиотеки за разработка на C и C++, програми и include файлове"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Документация"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Книги и HOTWO-та за Linux и свободния софтуер"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr ""
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr ""
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Web Сървър"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Групуер"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Kolab Сървър"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Сървър, Firewall/Рутер"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Интернет gateway"
-#: share/meta-task/compssUsers.pl:83
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:92
+#, c-format
msgid "Mail/News"
-msgstr "/Файл/_Нов"
+msgstr ""
-#: share/meta-task/compssUsers.pl:84
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:93
+#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Postfix пощенски сървър"
+msgstr ""
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Сървър с директории"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP сървър"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr ""
-#: share/meta-task/compssUsers.pl:95
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:107
+#, c-format
msgid "DNS/NIS"
-msgstr "FND/NIS"
+msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "Име на домейн и Мрежов Информационен Сървър"
-#: share/meta-task/compssUsers.pl:99
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:112
+#, c-format
msgid "File and Printer Sharing Server"
-msgstr "Сървър на принтера"
+msgstr ""
-#: share/meta-task/compssUsers.pl:100
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:113
+#, c-format
msgid "NFS Server, Samba server"
-msgstr "Samba Сървър"
+msgstr ""
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Сървър, Бази-данни"
-#: share/meta-task/compssUsers.pl:104
-#, fuzzy, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL или MySQL сървър за бази-данни"
+#: share/meta-task/compssUsers.pl:118
+#, c-format
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr ""
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Сървър, Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache и Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Е-поща"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Postfix пощенски сървър"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL или MySQL сървър за бази-данни"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL или MariaDB сървър за бази-данни"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Мрежов компютър, сървър"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "NFS сървър, SMB сървър, Proxy сървър, SSH сървър"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Графична среда"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE работна станция"
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -587,12 +684,12 @@ msgstr ""
"The K Desktop Environment, проста среда с колекция от придружаващи "
"инструменти"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "Gnome работна станция"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -600,60 +697,112 @@ msgid ""
msgstr ""
"Графична среда с потребителски набор от приложения и desktop инструменти"
-#: share/meta-task/compssUsers.pl:142
-#, fuzzy, c-format
-msgid "IceWm Desktop"
-msgstr "настолен компютър"
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "LXQT Десктоп"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "LXDE Десктоп"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Други графични desktop-и"
-#: share/meta-task/compssUsers.pl:147
-#, fuzzy, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm и т.н."
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Помощни програми"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH Сървър"
-#: share/meta-task/compssUsers.pl:177
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:225
+#, c-format
msgid "Webmin"
-msgstr "Webmin Обслужване"
+msgstr ""
-#: share/meta-task/compssUsers.pl:178
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:226
+#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Конфигурация на Терминален Сървър в Mandriva Linux"
+msgstr ""
-#: share/meta-task/compssUsers.pl:182
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:230
+#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Мониторинг на мрежата"
+msgstr ""
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr ""
-#: share/meta-task/compssUsers.pl:187
-#, fuzzy, c-format
-msgid "Mandriva Wizards"
-msgstr "Контролен център на Mandriva Linux"
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr ""
-#: share/meta-task/compssUsers.pl:188
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:236
+#, c-format
msgid "Wizards to configure server"
-msgstr "ННеуспешна настройка на принтер \"%s\"!"
+msgstr ""
#: steps.pm:85
#, c-format
@@ -664,7 +813,7 @@ msgstr ""
"Появи се грешка, но не знам как да се справя с нея деликатно.\n"
"Можете да продължите на свой риск."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -684,390 +833,430 @@ msgstr "Навлизам в етап `%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Инсталация на Mandriva Linux %s"
+msgid "%s Installation %s"
+msgstr "Инсталация на %s %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> между елементите"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
"Вашата система е с малки ресурси. Може да имате проблеми с инсталирането\n"
-"на Mandriva Linux. Ако се появи проблем опитайте с текстовата инсалация. "
-"Зацелта,\n"
+"на %s. Ако се появи проблем опитайте с текстовата инсалация. Зацелта,\n"
"натиснете 'F1', когато стартирате от CDROM и въведете 'теьт'."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Plasma Десктоп"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "GNOME Десктоп"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Избор на група пакети"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Избиране на пакети един по един"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Обща големина: %d / %d MB"
+msgid "Unselect All"
+msgstr ""
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Лош пакет"
+msgid "Total size: %d / %d MB"
+msgstr "Обща големина: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Версия: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Размер: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d КБ\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Важност:"
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Не можете да отбележете/деотбележете този пакет"
-#: steps_gtk.pm:386
-#, fuzzy, c-format
+#: steps_gtk.pm:466
+#, c-format
msgid "due to missing %s"
-msgstr "липсва kdesu"
+msgstr ""
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "поради неопределен %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr ""
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr ""
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"Не можете да оставите пакета немаркиран, защото нямате място да го "
"инсталирате"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Следните пакети ще бъдат инсталирани"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Следните пакети ще бъдат премахнати"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Това е нужен пакет, не може да бъде немаркиран"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Не можете да оставите този пакет немаркиран. Той вече е инсталиран"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Не можете да изключите този пакет. Той трябва да бъде обновен"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Покажи автоматично отбелязаните пакети"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Инсталирай"
-#: steps_gtk.pm:436
-#, fuzzy, c-format
+#: steps_gtk.pm:519
+#, c-format
msgid "Load/Save selection"
-msgstr "Избор на пакети"
+msgstr "Прочитане/Запис на направения избор"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Обновяване на избора на пакети"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Миминална инсталация"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
-msgstr "Управление на софтуера"
+msgstr "Управление на софтуер"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Изберете пакетите, които искате да инсталирате"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Инсталирам"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Без подробности"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Оставащо време "
+msgid "Time remaining:"
+msgstr ""
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Пресмятане"
+msgid "(estimating...)"
+msgstr ""
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d пакета"
-msgstr[1] "%d пакета"
+msgstr[0] ""
+msgstr[1] ""
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Обобщение"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
-msgstr "Настрока"
+msgstr "Настройка"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "не е конфигуриран"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr ""
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Появи се грешка"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Моля, изберете подреждане на клавиатурата."
+msgid "Please choose your keyboard layout"
+msgstr "Моля, изберете подреждане на клавиатурата"
-#: steps_interactive.pm:99
-#, fuzzy, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Ето пълен списък на достръпните страни"
+#: steps_interactive.pm:109
+#, c-format
+msgid "Here is the full list of available keyboards:"
+msgstr ""
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Инсталирай/Обнови"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Това нова инсталация ли е или обновяване ?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
-msgstr "Инсталирай"
+msgstr "Инсталиране"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Обновява %s"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
+msgid "Encryption key for %s"
+msgstr "Ключ за криптиране на %s"
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
+msgid "Cancel installation, reboot system"
msgstr ""
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
-msgstr "Ключ за криптиране на %s"
+msgid "New Installation"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
-msgstr "Настройка на IDE"
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+msgid "CD/DVD"
msgstr ""
-"Няма свободно място за 1 МБ стартиращо поле ! Инсталацията ще продължи, но, "
-"за да стартирате системата си, ще трябва да създадете стартиращо поле в "
-"DiskDrake"
-#: steps_interactive.pm:236
-#, fuzzy, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
msgstr ""
-"Няма свободно място за 1 МБ стартиращо поле ! Инсталацията ще продължи, но, "
-"за да стартирате системата си, ще трябва да създадете стартиращо поле в "
-"DiskDrake"
-#: steps_interactive.pm:328
-#, fuzzy, c-format
+#: steps_interactive.pm:354
+#, c-format
msgid ""
"Change your Cd-Rom!\n"
"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
"done.\n"
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
-"Сменете CD-ROM !\n"
-"\n"
-"Моля, сложете CD-ROM озаглавен \"%s\" в устройството и натиснете Ok, когато "
-"сте готови.\n"
-"Ако го нямате, натиснете Отмяна, за да избегнете инсталирането от този CD-"
-"ROM."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Търся налични пакети..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-#: steps_interactive.pm:405
-#, fuzzy, c-format
+#: steps_interactive.pm:428
+#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-"Може изберете зареждане или запис на избора на пакети на флопи.\n"
-"Форматът е същият като auto_install генерираните дискети."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Натовареност"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Запазва"
-#: steps_interactive.pm:415
-#, fuzzy, c-format
+#: steps_interactive.pm:438
+#, c-format
msgid "Bad file"
-msgstr "Зареждане на файл"
+msgstr ""
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Миминална инсталация"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Избраната големина е по-голяма от достъпното пространство"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Тип инсталация"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1076,82 +1265,126 @@ msgstr ""
"Вие не сте избрали никаква група от пакети.\n"
"Моля, изберете минималната инсталация кояти искате:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "С X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "С базова документация (препоръчва се!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Наистина минимална инсталация (особенно без urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Подготвям инсталацията"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Инсталиране на пакета %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Появи се грешка при поръчването на пакетите:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Да продължа ли все пак ?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
-msgstr ""
+msgstr "Повторен опит"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr ""
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr ""
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "Запази избор на пакети"
+msgstr ""
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "Появи се грешка при инсталиране на пакетите:"
+msgstr ""
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "След инсталационна настройка"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Обновяване"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Следните пакети ще бъдат инсталирани"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Грешка при добавяне на източник"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1164,147 +1397,97 @@ msgid ""
"Do you want to install the updates?"
msgstr ""
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Свързване с огледалния сървър за получаване на списъка с пакетите"
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Не мога да се свръжа с огледален сървър' %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s на %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Хардуер"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Звукова карта"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Имате ли ISA звукова карта?"
-
-#: steps_interactive.pm:904
-#, fuzzy, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Изпълнете \"sndconfig\" след инсталация за да конфигурирате вашата звукова "
-"карта"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "Няма открита звукова карта. Опитайте \"harddrake\" след инсталацията"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Графичен интерфайс"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Мрежа и интернет"
-#: steps_interactive.pm:933
-#, fuzzy, c-format
+#: steps_interactive.pm:991
+#, c-format
msgid "Proxies"
-msgstr "Профил "
+msgstr ""
-#: steps_interactive.pm:934
-#, fuzzy, c-format
+#: steps_interactive.pm:992
+#, c-format
msgid "configured"
-msgstr "пренастройка"
+msgstr ""
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Ниво на защита"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Защитна стена"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "активирано"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "изключен"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "Вие не сте конфигурирали X. Сигурни ли сте, че искате това?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "Подготовка на bootloader"
-
-#: steps_interactive.pm:1018
-#, fuzzy, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Preparing initial startup program..."
msgstr ""
-"Изглежда имате старовремска или неизвестна\n"
-"машина, на която yaboot няма да проработи.\n"
-"Инсталацията ще продължи, но ще трябва\n"
-"да иползвате BootX, за да стартирате машината си"
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Искате ли да използвате aboot ?"
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
+msgid "Be patient, this may take a while..."
msgstr ""
-"Грешка при инсталиране на aboot, \n"
-"да се опитам ли да продължа инсталацията дори, ако това унижтожи първия дял ?"
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Сложете празна дискета в устройство %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Подготвям дискета с автоматична инсталация"
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1315,51 +1498,16 @@ msgstr ""
"\n"
"Наистина ли искате да излезете сега ?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Поздравления"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Престартира"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Подготви дискета за автоматична инсталация"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Автоматичната инсталация може да бъде напълно автоматизирана,\n"
-"в такъв случай ще превземе твърдия ви диск !!!\n"
-"(това е за предназначено за инсталиране на друга машина).\n"
-"\n"
-"Може би искате да повторите инсталацията.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Повтори"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Автоматизиран"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Запази избор на пакети"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1371,7 +1519,7 @@ msgstr "Избор на език"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "Регионални настройки (локализация)"
#: steps_list.pm:17
#, c-format
@@ -1450,13 +1598,6 @@ msgid ""
"Users"
msgstr "Потребители"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Мрежа"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1499,61 +1640,12 @@ msgid ""
"Exit"
msgstr "Излез"
-#~ msgid "All"
-#~ msgstr "Всички"
-
-#~ msgid "TV card"
-#~ msgstr "TV карта"
-
-#~ msgid "Boot"
-#~ msgstr "Зареждане"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Идентификация"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "%d пакета"
-#~ msgstr[1] "%d пакета"
-
-#~ msgid "%d packages"
-#~ msgstr "%d пакета"
-
-#~ msgid "Language"
-#~ msgstr "Избор на език"
-
-#~ msgid "License"
-#~ msgstr "Лиценз"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "Избор на клас инсталация"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "Пресмятане"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "Пакети за инсталиране"
-
-#~ msgid "Users"
-#~ msgstr "Потребители"
-
-#~ msgid "Networking"
-#~ msgstr "Мрежа"
-
-#~ msgid "Configure X"
-#~ msgstr "Настройка на Х"
-
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
#~ msgstr ""
-#~ "Нямам достъп да модулите на ядрото съответстващи на вашият (файл %s "
-#~ "липсва), това означава, че вашето флопи не е синхронизирано с "
-#~ "инсталационният носител (моля направете ново boot флопи)"
+#~ "Свързване с %s web сайт за получаване на списъка с налични огледални "
+#~ "сървъри..."
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Изберете огледален сървър,от който да получите пакетите"
diff --git a/perl-install/install/share/po/bn.po b/perl-install/install/share/po/bn.po
index b10cc7fe5..92c8a547d 100644
--- a/perl-install/install/share/po/bn.po
+++ b/perl-install/install/share/po/bn.po
@@ -1,31 +1,86 @@
-# Copyright (C) 2004 Free Software Foundation, Inc.
-# Omi Azad <omi@altruists.org>, 2004.
-# Khandakar Mujahidul Islam <suzan@BengaLinux.Org>, 2004.
-# Progga <progga@BengaLinux.Org>, 2004.
-# Jamil Ahmed <jamil@BengaLinux.Org>, 2004, 2005, 2007.
-# Samia <mailsamia2001@yahoo.com>, 2005.
-# Tisa Nafisa <tisa_nafisa@yahoo.com>, 2007.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Jamil Ahmed <jamil@BengaLinux.Org>, 2004-2005,2007
+# Khandakar Mujahidul Islam <suzan@BengaLinux.Org>, 2004
+# Omi Azad <omi@altruists.org>, 2004
+# Progga <progga@BengaLinux.Org>, 2004
+# Samia <mailsamia2001@yahoo.com>, 2005
+# Tisa Nafisa <tisa_nafisa@yahoo.com>, 2007
msgid ""
msgstr ""
-"Project-Id-Version: DrakX HEAD\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-02-19 00:44+0600\n"
-"Last-Translator: Tisa Nafisa <tisa_nafisa@yahoo.com>\n"
-"Language-Team: Bangla <mdk-translation@bengalinux.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Bengali (http://www.transifex.com/MageiaLinux/mageia/language/"
+"bn/)\n"
+"Language: bn\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr ""
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr ""
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr ""
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr ""
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr ""
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr ""
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
msgstr "আপনার কি আরও একটি সম্পুরক মাধ্যম আছে?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -38,137 +93,147 @@ msgstr ""
"\n"
"আপনার কি কনফিগার করার জন্য কোনো সম্পুরক ইনস্টলেশন মিডিয়াম আছে?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "সিডি-রম"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "নেটওয়ার্ক (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "নেটওয়ার্ক (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "নেটওয়ার্ক (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "mirror এর ইউ-আর-এল?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "ইউআরএল অবশ্যই ftp:// অথবা http:// দিয়ে শুরু হবে"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr "উপস্থিত মিররের তালিকার জন্য Mandriva Linux-এ সংযুক্ত করা হচ্ছে..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr "উপস্থিত মিররের তালিকার জন্য Mandriva Linux-এ যোগাযোগ করতে ব্যর্থ হয়েছে..."
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "আপনি একটি মিরর পছন্দ করুন যেখান থেকে প্যাকেজগুলি নেবেন"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "NFS সেটআপ"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr "অনুগ্রহ করে আপনার NFS মিডিয়ার হোস্টনাম এবং ডিরেক্টরী প্রবেশ করান"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr "হোস্টনাম পাওয়া যাচ্ছে না"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "ডিরেক্টরী অবশ্যই \"/\" দিয়ে শুরু হবে"
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "NFS মাউন্টের জন্য হোস্টনাম ?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "ডিরেক্টরি"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "সম্পুরক"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
msgstr "এই mirror এ কোন hdlist ফাইল পাওয়া যাচ্ছে না"
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "যে সমস্থ প্যাকেজ ইনস্টল হয়ে আছে সেগুলি পর্যবেক্ষন করা হচ্ছে..."
+msgid "Core Release"
+msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "আপগ্রেডের পূর্বে প্যাকেজ মুছে ফেলা হচ্ছে..."
+msgid "Tainted Release"
+msgstr ""
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "আপগ্রেড করার জন্য প্যাকেজ খোঁজা হচ্ছে..."
+msgid "Nonfree Release"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"আপনি নিম্মলিখিত সার্ভার(গুলো) বেছে নিয়েছেন: %s\n"
-"\n"
-"\n"
-"এই সার্ভারগুলো ডিফল্টভাবেই চালু করা থাকে। তাদের কোন নিরাপত্তা সমস্যা\n"
-"নেই, কিন্তু নতুন কিছুর ক্ষেত্রে তার প্রয়োজন আছে। সেক্ষেত্রে আপনি অবশ্যই সেগুলোকে\n"
-"যত তাড়াতাড়ি সম্ভব আপগ্রেড করার ক্ষেত্রে নিশ্চিত হোন।\n"
-"\n"
-"\n"
-"আপনি কি আসলেই এই সার্ভারগুলো ইনস্টল করতে চান?\n"
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "যে সমস্থ প্যাকেজ ইনস্টল হয়ে আছে সেগুলি পর্যবেক্ষন করা হচ্ছে..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "আপগ্রেড করার জন্য প্যাকেজ খোঁজা হচ্ছে..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "আপগ্রেডের পূর্বে প্যাকেজ মুছে ফেলা হচ্ছে..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -181,82 +246,87 @@ msgstr ""
"\n"
"আপনি কি আসলেই এই প্যাকেজগুলো মুছে ফেলতে চান?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "%s ফাইল পড়াতে ত্রুটি"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "নিম্নলিখিত ডিস্কগুলো নামান্তর করা হয়েছে:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (পূর্বের নাম %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "এইচ-টি-টি-পি"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "এফ-টি-পি"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "নেটওয়ার্ক"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "অনুগ্রহ করে একটি মিডিয়া নির্বাচন করুন"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "এই ফাইলটি আগে থেকেই আছে। করব?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "অনুমতি প্রদান করা হয়নি"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "ত্রুটিপূর্ণ NFS নাম"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "অগ্রহণযোগ্য মিডিয়া %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "পার্টিশন করার আগে স্ক্রিনশট তৈরী করা যায়নি"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "%s -এ ইনস্টল করার পরে স্ক্রিনশট পাওয়া যাবে"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr " ইনস্টলেশন"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "কনফিগারেশন"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "আপনাকে অবশ্যই %s-ও ফরম্যাট করতে হবে"
@@ -280,107 +350,143 @@ msgstr "নেটওয়ার্ককে চালু করা হচ্ছে
msgid "Bringing down the network"
msgstr "নেটওয়ার্ককে বন্ধ করা হচ্ছে"
-#: media.pm:703 media.pm:714
+#: media.pm:397
#, c-format
-msgid "Downloading file %s..."
-msgstr "%s ফাইল ডাউনলোড করা হচ্ছে..."
+msgid "Please wait, retrieving file"
+msgstr ""
+
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr "ভবিষ্যতে ব্যবহারের জন্য ডিস্কে কিছু প্যাকেজ কপি করা হচ্ছে"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "কপি সম্পন্ন হচ্ছে"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "অবশ্যই থাকতে হবে"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "জরুরী"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "খুবই সুন্দর"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "সুন্দর"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "হয়তোবা"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "বিবরণ নেই"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "ওয়ার্কষ্টেশন"
+msgid "An error occurred:"
+msgstr ""
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "অফিস ওয়ার্কষ্টেশন"
+msgid "A fatal error occurred: %s."
+msgstr "একটি মারাত্মক ত্রুটি ঘটেছে: %s"
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr ""
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
msgstr ""
-"অফিস প্রোগ্রামসমূহ: ওয়ার্ডপ্রসেসর (OpenOffice.org Writer, Kword), স্প্রেডসিট "
-"(OpenOffice.org Calc, Kspread), PDF ফাইল প্রদর্শক ইত্যাদী"
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "ওয়ার্কষ্টেশন"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "অফিস ওয়ার্কষ্টেশন"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"অফিস প্রোগ্রামসমূহ: ওয়ার্ডপ্রসেসর (kword, abiword), স্প্রেডসিট (kspread, gnumeric), "
-"PDF ফাইল প্রদর্শক ইত্যাদী"
+"অফিস প্রোগ্রামসমূহ: ওয়ার্ডপ্রসেসর (LibreOffice Writer, Kword), স্প্রেডসিট "
+"(LibreOffice Calc, Kspread), PDF ফাইল প্রদর্শক ইত্যাদী"
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "গেশ ষ্টেশন"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "উদ্দীপনামূলক প্রোগ্রামসমূহ: আর্কেড, বোর্ড, স্ট্রেটেজি, ইত্যাদি"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "মাল্টিমিডিয়া ষ্টেশন"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "সাউন্ড এবং ভিডিও দেখার/এডিট করার প্রোগ্রামসমূহ"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "ইন্টারনেট ষ্টেশন"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
@@ -388,205 +494,205 @@ msgid ""
msgstr ""
"মেইল আদানপ্রদান, খবর পড়া এবং ওয়েব ব্রাউজিং (mutt, tin..) এর জন্য কিছু টুলের সেট"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "নেটওয়ার্ক কম্পিউটার (ক্লাইন্ট)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "SSH সহ বিভিন্ন প্রোটকলের জন্য ক্লাইন্টসমূহ"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "আপনার কম্পিউটারের কনফিগারেশন সহজ করার জন্য কিছু টুল"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "কনসল টুল"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "এডিটর, শেল, ফাইল টুল, টার্মিনাল সমূহ"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "ডেভলপমেন্ট"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "C এবং C++ ডেভলপমেন্টের লাইব্রেরী, প্রগ্রাম এবং include ফাইলসমূহ"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "ডকুমেন্টেশন"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "লিনাক্স এবং ফ্রী সফটওয়ার সংক্রান্ত বই ও হাউটু (HOWTO)"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "লিনাক্সের সাধারণ আধার। তৃতীয়পক্ষ এপ্লিকেশন সমূহের সাপোর্ট"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "ওয়েব সার্ভার"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "এ্যপাচি"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "গ্রুপওয়্যার"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "কোলাব সার্ভার"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "ফায়ারওয়াল/রাউটার"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "ইন্টারনেট গেটওয়ে"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "মেইল/সংবাদ"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Postfix মেইল সার্ভার, Inn সংবাদ সার্ভার"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "ডিরেক্টরি সার্ভার"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP সার্ভার"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "ডিএনএস/এনআইএস"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "ডোমেইন নেম এবং নেটওয়ার্ক ইনফরমেশন সার্ভার"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "ফাইল এবং প্রিন্টার শেয়ারিং সার্ভার"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "NFS সার্ভার, Samba সার্ভার"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "ডেটাবেস"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL অথবা MySQL ডেটাবেস সার্ভার"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "PostgreSQL অথবা MariaDB ডেটাবেস সার্ভার"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "ওয়েব/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "এ্যপাচি, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "মেইল"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Postfix মেইল সার্ভার"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL অথবা MySQL ডেটাবেস সার্ভার"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL অথবা MariaDB ডেটাবেস সার্ভার"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "নেটওয়ার্ক কম্পিউটার সার্ভার"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "NFS সার্ভার, SMB সার্ভার, Proxy সার্ভার, ssh সার্ভার"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "গ্রাফিকাল পরিবেশ"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE ওয়ার্কষ্টেশন"
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr "K ডেক্সটপ, কিছু সহযোগীমূলক টুলের সমন্বয়ে একটি সাধারণ গ্রাফিকাল পরিবেশ"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "গুহনোম ওয়ার্কষ্টেশন"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -594,57 +700,109 @@ msgid ""
msgstr ""
"ব্যবহারকারীর বন্ধুসূলভ কিছু এপ্লিকেশন এবং ডোক্সটপ টুলের সমন্বয়ে একটি গ্রাফিকাল পরিবেশ"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
#, c-format
-msgid "IceWm Desktop"
-msgstr "IceWm ডেস্কটপ"
+msgid "A lightweight fast graphical environment"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "অন্যান্য গ্রাফিকাল ডেক্সটপ"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm, ইত্যাদি"
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "ইউটিলিটিসমূহ"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH সার্ভিস"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "ওয়েবমিন"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "ওয়েবমিন দূরবর্তী কনফিগারেশন সার্ভার"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "নেটওয়ার্ক ইউটিলিটিসমূহ/পর্যবেক্ষণ"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "পর্যবেক্ষণ টুলসমূহ, হিসাবরক্ষণ প্রসেস করে, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Mandriva উইজার্ডসমূহ"
+msgid "Mageia Wizards"
+msgstr "Mageia উইজার্ডসমূহ"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "সার্ভার কনফিগার করার জন্য উইজার্ডসমূহ"
@@ -659,7 +817,7 @@ msgstr ""
"কিভাবে এটা সন্দরভাবে হ্যান্ডল করবো।\n"
"আপনি নিজের ঝুঁকিতে অগ্রসর হতে পারেন।"
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -679,207 +837,255 @@ msgstr "`%s' স্টেপে প্রবেশ করছি\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux ইনস্টলেশন %s"
+msgid "%s Installation %s"
+msgstr "%s ইনস্টলেশন %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "উপাদানগুলোর মধ্যে <Tab>/<Alt-Tab> "
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"আপনার সিস্টেমের রিসোর্স খুব কম। ম্যান্ড্রিব লিনাক্স ইনস্টল করার সময় আপনি সমস্যার "
-"মুখোমুখি\n"
-"হতে পারেন. যদি সেটা ঘটে, তাহলে আপনাকে এর পরিবর্তে টেক্স ইনস্টল করতে হবে। এর "
-"জন্য,\n"
-"যখন সিডিরম থেকে বুট হবে তখন `F1' চাপুন, তারপর `text' লিখুন।"
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "প্যাকেজ গ্রুপ নির্বাচন"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "আলাদাভাবে প্যাকেজ নির্বাচন"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "মোট সাইজ: %d / %d এমবি"
+msgid "Unselect All"
+msgstr "সব কিছু অনির্বাচিতকরণ"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "বাজে প্যাকেজ"
+msgid "Total size: %d / %d MB"
+msgstr "মোট সাইজ: %d / %d এমবি"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "ভার্সন:"
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "সাইজ:"
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "প্রাধান্য:"
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "আপনি এই প্যাকেজটি নির্বাচন/অ-নির্বাচন করতে পারবেন না"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "%s না থাকার কারনে"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "%s যথেষ্ট না হবার কারনে"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "%s প্রচারের চেষ্টা চলছে"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "%s রাখার কারণে"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"আপনি এই প্যাকেজটি নির্বাচন করতে পারবেননা যেহেতু এটা ইনস্টল করার জন্য যথেষ্ট জায়গা "
"ফাঁকা নেই"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "এই প্যাকেজগুলি ইনস্টল হতে যাচ্ছে"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "এই প্যাকেজগুলি অপসরিত হতে যাচ্ছে"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "এটি একটি বাধ্যতামূলাক প্যাকেজ, এটি কোনভাবেই বাদ দেয়া যাবেনা"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr ""
"আপনি এই প্যাকেজটির অ-নির্বাচন করতে পারবেন না, এটা আগে থেকেই ইনস্টল হয়ে আছে"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "আপনি এই প্যাকেজটি অ-নির্বাচন করতে পারবেন না। এটা অবশ্যই আপগ্রেড হতে হবে"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "সংয়-নির্বাচিত প্যাকেজগুলি দেখাও"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "ইনস্টল"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "নির্বাচনসমূহ লোড/সংরক্ষণ করো"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "প্যাকেজের নির্বাচন আপগ্রেড করা হচ্ছে"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "সর্বনিম্ন ইনস্টল"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "সফটওয়্যার ম্যানেজমেন্ট"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "আপনি যেই প্যাকেজগুলি ইনস্টল করতে চান তা পছন্দ করুন"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "ইনস্টলেশন"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "কোন বিস্তারিত ছাড়া"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "সময় বাকী আছে"
+msgid "Time remaining:"
+msgstr ""
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "নির্ধারণ চলছে"
+msgid "(estimating...)"
+msgstr ""
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d প্যাকেজ সমূহ"
-msgstr[1] "%d প্যাকেজ সমূহ"
+msgstr[0] ""
+msgstr[1] ""
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "সারাংশ"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "কনফিগার"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "কনফিগার করা হয়নি"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
@@ -888,105 +1094,103 @@ msgstr ""
"নিম্নলিখিত ইনস্টলেশন মিডিয়া পাওয়া গেছে।\n"
"যদি আপনি এগুলোর মধ্যকার কিছু এড়িয়ে যেতে চান, তাহলে এখন সেগুলোকে অনির্বাচিত করুন।"
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
"ইনস্টলেশনের আগে আপ‌নি সিডির তথ্যসমূহ হার্ডডিস্কে কপি করতে পারেন।\n"
" এরপর হার্ডডিস্ক থেকে ইনস্টলেশন চলতে থাকবে এবং সিস্টেম সম্পূর্ন ইনস্টলেশনের পরও "
"প্যাকেজগুলো রয়ে যাবে।"
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "CD গুলো সম্পুর্ন কপি করো "
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "একটি ত্রুটি সম্পাদিত হয়েছে"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
+msgid "Please choose your keyboard layout"
msgstr "অনুগ্রহ করে আপনার কীবোর্ড বিন্যাস পছন্দ করুন।"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "এখানে উপস্থিত সমস্ত কীবোর্ডের তালিকা রয়োছে"
+msgid "Here is the full list of available keyboards:"
+msgstr ""
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "ইনস্টল/আপগ্রড"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "এটা কি একটি ইনস্টলেশন না আপগ্রেড?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
-msgstr "ইনস্টল"
+msgstr " ইনস্টলেশন"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "%s আপগ্রড করো"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
+msgid "Encryption key for %s"
+msgstr "%s -এর জন্য এনক্রিপশন কী"
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
+msgid "Cancel installation, reboot system"
msgstr ""
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
-msgstr "%s -এর জন্য এনক্রিপশন কী"
+msgid "New Installation"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
-msgstr "IDE কনফিগারেশন চলছে"
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+msgid "CD/DVD"
msgstr ""
-"১ মেগাবাইটের bootstrap এর জন্য খালি জায়গা নেই! ইনস্টল অগ্রসর হবে, কিন্তু আপনার "
-"সিস্টেম বুট করার জন্য, আপনাকে DiskDrake থেকে bootstrap পার্টিশন তৈরী করতে হবে"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+msgid "Configuring CD/DVD"
msgstr ""
-"আপনাকে একটি PPC PReP Boot বুটস্ট্র্যাপ তৈরী করতে হবে! ইনস্টলেশন অগ্রসর হবে, তবে "
-"আপনার সিস্টেম বুট করার জন্য, DiskDrake এর বুটস্ট্র্যাপ পার্টিশনটি প্রয়োজন"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -999,21 +1203,21 @@ msgstr ""
"ঠিক আছে চাপুন।\n"
"যদি সেটা আপনার না থাকে, এই সিডিরম থেকে ইনস্টলেশন এড়িয়ে যেতে বাতিল চাপুন।"
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "বরাদ্দকৃত প্যাকেজসমূহ খোঁজা হচ্ছে..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-"ইনস্টলেশন অথবা সাম্প্রতিকীকরনের জন্য আপনার সিস্টেমে যথেষ্ট পরিমান জায়গা খালি নেই (%"
-"dএমবি > %dএমবি)"
+"ইনস্টলেশন অথবা সাম্প্রতিকীকরনের জন্য আপনার সিস্টেমে যথেষ্ট পরিমান জায়গা খালি নেই "
+"(%dএমবি > %dএমবি)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
@@ -1022,52 +1226,52 @@ msgstr ""
"অনুগ্রহ করে প্যাকেজ নির্বাচন লোড বা সংরক্ষণ বাছাই করুন।\n"
"এই ফরম্যাটটি auto_install দ্বারা তৈরী ফাইলসমূহের মত।"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "চাপ"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "সংরক্ষণ"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "অগ্রহণযোগ্য ফাইল"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "গুনোম"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "সর্বনিম্ন ইনস্টল"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "উপস্থিত জায়গার চাইতে নির্বাচিত সাইজটি অনেক বড়"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "ইনস্টলের ধরণ"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1076,82 +1280,126 @@ msgstr ""
"আপনি প্যাকেজের কোন গ্রুপ নির্বাচন করেননি।\n"
"অনুগ্রহ করে আপনি যে ক্ষুদ্রাকৃতির ইনস্টলেশন চান তা পছন্দ করুন:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "X-এর সাথে"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "সাধারন নির্দেশিকার সাথে (পরামর্শ দেয়া হচ্ছে!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "এক্কেবারেই ক্ষুদ্র ইনস্টলেশন (বিশেষ করে কোন urpmi ছাড়া)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "ইনস্টলেশনের প্রস্তুতি চলছে"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "%s প্যাকেজ সমূহ ইনস্টল করা হচ্ছে"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "প্যাকেজগুলো বিন্যস্ত করতে গিয়ে একটি ভুল ছিল:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "তবুও যাব?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "পুনরায় চেষ্টা করো"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr "এই প্যাকেজটি এড়িয়ে যাও"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr "\"%s\" মাধ্যমের সব প্যাকেজ এড়িয়ে যাও"
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
msgstr "মিডিয়া এবং প্যাকেজের নির্বাচন এ ফিরে যাও"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
msgstr "%s প্যাকেজ ইনস্টল করতে সমস্যা হয়েছে।"
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "ইনস্টলের পরের কনফিগারেশন"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr "অনুগ্রহ করে নিশ্চিত করুন যে সাম্প্রতিক মডিউলগুলো %s ড্রাইভ এ আছে"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "আপডেট"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "এই প্যাকেজগুলি ইনস্টল হতে যাচ্ছে"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "মাধ্যম যোগ করার প্রক্রিয়া বিফল হয়েছে"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1172,130 +1420,80 @@ msgstr ""
"\n"
"আপনি কি ইনস্টল আপডেট করতে চান?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "প্যাকেজের তালিকার জন্য মিররের সাথে সংযুক্ত করা হচ্ছে..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "%s মিররের সাথে সংযুক্ত হওয়া গেলনা"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s -এ %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "হার্ডওয়্যার"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "সাউন্ডকার্ড"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "আপনার কি একটি ISA সাউন্ড কার্ড আছে?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"ইনস্টল শেষ হবার পরে সাউন্ড কার্ড কনফিগার করার জন্য \"alsaconf\" অথবা \"sndconfig"
-"\" চালাও"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "কোন সাউন্ডকার্ড সনাক্ত হয়নি, ইনস্টলের পরে \"harddrake\" দিয়ে চেষ্টা করুন"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "গ্রাফিকাল ইন্টারফেস"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "নেটওয়ার্ট এবং ইন্টারনেট"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "প্রক্সিসমূহ"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "কনফিগার করা হয়েছে"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "সিকউরিটি লেভেল"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "ফায়ারওয়াল"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "সক্রিয় হয়েছে"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "অকার্যকর করা হয়েছে"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "আপনি X কনফিগার করেননি। আপনি কি নিশ্চিত এরকমটি চান?"
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "Bootloader প্রস্তুত করা হচ্ছে..."
-
-#: steps_interactive.pm:1018
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Preparing initial startup program..."
msgstr ""
-"আপনার মেশিনটি মনে হচ্ছে একটি Oldworld বা অজানা মেশিন, yaboot বুটলোডারটি আপনার "
-"জন্য কাজ করবে না। ইনস্টল এগিয়ে যাবে, কিন্তু আপনার মেশিনকে বুট করার জন্য আপনাকে "
-"BootX বা অন্য কোন কিছু ব্যবহার করতে হবে। root fs এর জন্য কার্নেল প্রেরিত মান হবে: "
-"root=%s"
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "আপনি কি aboot ব্যবহার করতে চান?"
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
+msgid "Be patient, this may take a while..."
msgstr ""
-"Aboot ইনস্টলে ব্যর্থ হয়েছে,\n"
-"জোর করে ইনস্টলের চেষ্টা করবো যদিও সেটা প্রথম পার্টিশনকে নষ্ট করতে পারে?"
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
@@ -1303,17 +1501,17 @@ msgid ""
msgstr ""
"এই নিরাপত্তা লেভেলে, উইন্ডোজ পার্টিশনের ফাইলে প্রবেশ শুধুমাত্র অ্যাডমিনিস্ট্রেটরের আছে।"
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "%s ড্রাইভে একটি ফাঁকা ফ্লপি ঢোকান"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "সয়ং ইনস্টল ফ্লপি তৈরী করা হচ্ছে..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1324,51 +1522,16 @@ msgstr ""
"\n"
"আপনি কি এখন বের হতে চান?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "স্বাগতম"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "রিবুট"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "সয়ংক্রিয় ইনস্টল ফ্লপি প্রস্তুত করো"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"যদি আপনি চান স্বয়ংক্রিয় ইনস্টল পুরোপুরি স্বয়ংক্রয়ভাবে হবে,\n"
-"সেক্ষেত্রে সেটা হার্ড ড্রাইভের কর্তৃত্বে!!\n"
-"(এর মানে হচ্ছে অন্য একটি বাক্সে ইনস্টল)।\n"
-"\n"
-"আপনি তার চেয়ে পুনরায় ইনস্টলেশন চালু করুন।\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "জবাব"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "সয়ংক্রিয়ভাবে"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "প্যাকেজের নির্বাচন সংরক্ষণ করে রাখো"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1380,7 +1543,7 @@ msgstr "ভাষা"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "স্থানীয়করণ"
#: steps_list.pm:17
#, c-format
@@ -1459,13 +1622,6 @@ msgid ""
"Users"
msgstr "ব্যবহারকারী"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "নেটওয়ার্ক করা"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1508,115 +1664,22 @@ msgid ""
"Exit"
msgstr "বাহির"
-#~ msgid "All"
-#~ msgstr "সকল"
-
-#~ msgid "TV card"
-#~ msgstr "টিভি কার্ড"
-
-#~ msgid "Boot"
-#~ msgstr "বুট"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "অনুমোদন"
-
-#~ msgid "Arkeia"
-#~ msgstr "আরকেইয়া"
-
-#~ msgid "Flatout"
-#~ msgstr "ফ্ল্যাটআউট"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "3D"
-#~ msgstr "থ্রিডি"
-
-#~ msgid "CMS"
-#~ msgstr "সিএমএস"
-
-#~ msgid "CRM"
-#~ msgstr "সিআরএম"
-
-#~ msgid "2007 product line"
-#~ msgstr "২০০৭ পণ্য লাইন"
-
-#~ msgid "Invictus Firewall"
-#~ msgstr "ইনভিকটাস ফায়ারওয়াল"
-
-#~ msgid "Discovery Live Mode"
-#~ msgstr "লাইভ মডিউল অনুসন্ধান"
-
-#~ msgid "How to register"
-#~ msgstr "কিভাবে রেজিস্টার করবেন"
-
-#~ msgid "Rpmdrake 2"
-#~ msgstr "আরপিএমড্র্যাক ২"
-
-#~ msgid "Mandriva Online Services"
-#~ msgstr "Mandriva অনলাইন সেবা"
-
-#~ msgid "New Theme"
-#~ msgstr "নতুন থীম"
-
-#~ msgid "Web 2.0"
-#~ msgstr "ওয়েব ২.০"
-
-#~ msgid "Kaspersky"
-#~ msgstr "ক্যসপারস্কাই"
-
-#~ msgid "LinDVD"
-#~ msgstr "লিনডিভিডি"
-
-#~ msgid "Skype"
-#~ msgstr "স্কাইপ"
-
-#~ msgid "Transgaming/Cedega"
-#~ msgstr "Transgaming/Cedega"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "%d প্যাকেজ সমূহ"
-#~ msgstr[1] "%d প্যাকেজ সমূহ"
-
-#~ msgid "%d packages"
-#~ msgstr "%d প্যাকেজ সমূহ"
-
-#~ msgid "Language"
-#~ msgstr "ভাষা"
-
-#~ msgid "License"
-#~ msgstr "লাইসেন্স"
-
-#~ msgid "Installation class"
-#~ msgstr "ইনস্টলেশনের শ্রেনী"
-
-#~ msgid "Formatting"
-#~ msgstr "ফরম্যাট করা হচ্ছে"
-
-#~ msgid "Choosing packages"
-#~ msgstr "প্যাকেজ পছন্দ করা হচ্ছে"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "mirror এর ইউ-আর-এল?"
-#~ msgid "Users"
-#~ msgstr "ব্যবহারকারী"
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "ইউআরএল অবশ্যই ftp:// অথবা http:// দিয়ে শুরু হবে"
-#~ msgid "Networking"
-#~ msgstr "নেটওয়ার্ক করা"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr "উপস্থিত মিররের তালিকার জন্য %s-এ সংযুক্ত করা হচ্ছে..."
-#~ msgid "Configure X"
-#~ msgstr "X কনফিগার"
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
+#~ msgstr "উপস্থিত মিররের তালিকার জন্য %s-এ যোগাযোগ করতে ব্যর্থ হয়েছে..."
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
-#~ msgstr ""
-#~ "আপনার কার্ণেলের কার্ণেল মডিউলগুলোতে প্রবেশ করতে পারছে না (%s ফাইলটি হারিয়া "
-#~ "গেছে), এর স্বাভাবিক অর্থ হচ্ছে আপনার বুট ফ্লপি ইনস্টলেশন মিডিয়ামের সাথে sync এ "
-#~ "নেই (অনুগ্রহ করে একটি নতুন বুট ফ্লপি তৈরী করুন)"
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "আপনি একটি মিরর পছন্দ করুন যেখান থেকে প্যাকেজগুলি নেবেন"
diff --git a/perl-install/install/share/po/br.po b/perl-install/install/share/po/br.po
index fcece67ef..597d0c82d 100644
--- a/perl-install/install/share/po/br.po
+++ b/perl-install/install/share/po/br.po
@@ -1,164 +1,235 @@
-# DrakX e Brezhoneg.
-# Copyright (C) 1999-2005 Mandriva
-# Thierry Vignaud <tvignaud@mandriva.com>, 1999-2005
-# Jañ-Mai Drapier <jan-mai.drapier@mail.dotcom.fr>, 1999-2000
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
msgid ""
msgstr ""
-"Project-Id-Version: DrakX 10.2\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-08-21 15:56+0200\n"
-"Last-Translator: Thierry Vignaud <tvignaud@mandriva.com>\n"
-"Language-Team: Brezhoneg <ofisk@wanadoo.fr>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Breton (http://www.transifex.com/MageiaLinux/mageia/language/"
+"br/)\n"
+"Language: br\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1;plural=0\n"
+"Plural-Forms: nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !"
+"=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n"
+"%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > "
+"19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 "
+"&& n % 1000000 == 0) ? 3 : 4);\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
#, c-format
-msgid "Do you have further supplementary media?"
-msgstr "Hag ur vedia all hoc'h eus ?"
+msgid "Join Us!"
+msgstr "Deuit ganomp !"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: ../../advertising/02_IM_mageia.pl:1
#, c-format
-msgid ""
-"The following media have been found and will be used during install: %s.\n"
-"\n"
-"\n"
-"Do you have a supplementary installation medium to configure?"
-msgstr ""
+msgid "Make it yours!"
+msgstr "Evideoc'h !"
-#: any.pm:166
+#: ../../advertising/03_IM_mageia.pl:1
#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
+msgid "Your choice!"
+msgstr "Ho choaz !"
-#: any.pm:167
+#: ../../advertising/04_IM_mageia.pl:1
#, c-format
-msgid "Network (HTTP)"
-msgstr "Rouedad (HTTP)"
+msgid "Office tools"
+msgstr "Ostilhoù burevek"
-#: any.pm:168
+#: ../../advertising/05_IM_mageia.pl:1
#, c-format
-msgid "Network (FTP)"
-msgstr "Rouedad (FTP)"
+msgid "Home entertainment"
+msgstr "Evit ho plijadur"
-#: any.pm:169
+#: ../../advertising/06_IM_mageia.pl:1
#, c-format
-msgid "Network (NFS)"
-msgstr "Rouedad (NFS)"
+msgid "For kids"
+msgstr "Evit ar vugale"
-#: any.pm:211
+#: ../../advertising/07_IM_mageia.pl:1
#, c-format
-msgid "URL of the mirror?"
-msgstr "URL ar melezour ?"
+msgid "For family!"
+msgstr "Evit ar familh !"
-#: any.pm:217
+#: ../../advertising/08_IM_mageia.pl:1
#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "Dao en deus an URL kregiñ gant ftp:// pe http://"
+msgid "For developers!"
+msgstr "Evit an diorroerien "
-#: any.pm:228
+#: ../../advertising/09_IM_mageia.pl:1
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"O taremprediñ al lec'hienn Mandriva Linux evit kaout roll ar melezouroù "
-"hegerz ..."
+msgid "Thank you!"
+msgstr "Trugarez !"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Bezit dieub !"
-#: any.pm:233
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr "Hag ur media all hoc'h eus ?"
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
msgstr ""
-"Sac'het en ur taremprediñ al lec'hienn Mandriva Linux evit kaout roll ar "
-"melezouroù hegerz "
-#: any.pm:243
+#: any.pm:162
#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Dibabit ur melezour da dapout ar pakadoù diwarnañ"
+msgid "Network (HTTP)"
+msgstr "Rouedad (HTTP)"
-#: any.pm:273
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
+msgstr "Rouedad (FTP)"
+
+#: any.pm:164
+#, c-format
+msgid "Network (NFS)"
+msgstr "Rouedad (NFS)"
+
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "Kefluniadur NFS"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr "Roit anv ostiz ha renkell ho media NFS"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr "Mank ar ra anv an ostiz"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
-msgstr ""
+msgstr "Dao en eus anv ur renkell kregiñ gant ur « / »"
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "Anv ostiz ar marc'hañ NFS ?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Renkell"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "A-gresk"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
msgstr ""
-"Ne m'eus ket kavout ur roll pakadoù e-barzh ar melezour-mañ. Kit da wiriañ "
+"N’em eus ket kavout ur roll pakadoù e-barzh ar melezour-mañ. Kit da wiriañ "
"al lec'hiadur-mañ zo mad."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "O kavout pakadoù zo staliet eo ..."
+msgid "Core Release"
+msgstr "Core Release"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "O zilemel ar pakadoù a-raok bremanaat ..."
+msgid "Tainted Release"
+msgstr "Tainted Release"
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "O kavout pakadoù da vremanaat ..."
+msgid "Nonfree Release"
+msgstr "Nonfree Release"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "Gwelloc'h e vefe deoc'h bevaat « %s »"
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
msgstr ""
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "Amañ e c'hellit bevaat mediaoù ouzhpenn ma peus c'hoant"
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Ar vediom-mañ a ginnig pakadoù bremanaet evit ar vediom « %s »"
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "O klask ar pakadoù staliet ..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "O klask ar pakadoù da vremanaat ..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "O tilemel ar pakadoù a-raok bremanaat ..."
+
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -166,88 +237,93 @@ msgid ""
"\n"
"Do you really want to remove these packages?\n"
msgstr ""
-"Ar pakadoù a-heul zo war-nes bezañ distaliet evit bremañaat ho reizhiad : %"
-"s\n"
+"Ar pakadoù a-heul zo war-nes bezañ distaliet evit bremanaat ho reizhiad : "
+"%s\n"
"\n"
"\n"
"Ha fellout a ra deoc'h da vat lemel anezho ?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Fazi en ur lenn ar restr %s"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "Adenvelet e oa ar bladenn/pladennoù-mañ :"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (a vez graet %s dioutañ diaraok)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Rouedad"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
-msgstr "Dibabit ur vedia, mar plij"
+msgstr "Dibabit ur media, mar plij"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Ar restr zo endeo. Rasklañ anezhañ ?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Aotre nac'het"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "N'eo ket un anv NFS mat"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
-msgstr "N'eo ket mat ar vedia %s"
+msgstr "N'eo ket mat ar media %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "N'hellan ket sevel skrammpakeroù a-raok parzhañ"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Skrammpakeroù a vo bet kavet goude staliañ e %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "O staliañ"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Kefluniadur"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Ret eo deoc'h furmadiñ %s ivez"
@@ -269,372 +345,462 @@ msgstr "O lañsañ ar rouedad"
msgid "Bringing down the network"
msgstr "O tizenaouiñ ar rouedad"
-#: media.pm:703 media.pm:714
+#: media.pm:397
#, c-format
-msgid "Downloading file %s..."
-msgstr "Oc'h enkargañ ar restr %s ..."
+msgid "Please wait, retrieving file"
+msgstr "Gortozit mar plij, o tigas ar restr"
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "n'hell ket bet ouzhpennet ar mediom"
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr "Oc'h eilañ ur bern pakad hag a vo bet implijet diwezhatoc'h"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Oc'h eilañ"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "a rankfec'h kaout"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "a-bouez"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "brav-tre"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "brav"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "marteze"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "O tegas titouroù ar pakadoù eus an titouroù XML ..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Deskrivadur ebet"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"N’em eus ket gallet staliañ un darn pakad goulennet gant %s :\n"
+"%s"
+
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "Ur fazi zo bet :"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "Degouezhet ez eus ur fazi sac'hus : %s."
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr "Na c'houlenn ket adarre"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d gra zo bet sac'het"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Sac'het eo bet staliañ ar pakadoù :"
+
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "Post labour"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "Post labour burevek"
-#: share/meta-task/compssUsers.pl:15
-#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
-msgstr ""
-"Programmoù burev : skridtreterezhioù (OpenOffice.org Writer, Kword), "
-"logerioù (OpenOffice.org Calc, Kspread), gwelerien PDF, ..."
-
-#: share/meta-task/compssUsers.pl:16
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Programmoù burev : skridtreterezhioù (kword, abiword), logerioù (kspread, "
-"gnumeric), gwelerien PDF, ..."
+"Programmoù burev : skridtreterezhioù (LibreOffice Writer, Kword), logerioù "
+"(LibreOffice Calc, Kspread), gwelerien PDF, ..."
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Arsav c'hoarioù"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr ""
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Arsav liesvedia"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Programmoù evit seniñ/aozañ tonioù ha videoù"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Arsav internet"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Urzhiataer rouedad (kliant)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
-msgstr "Pratikoù evit meur a gomennad (da skouer ssh)"
+msgstr "Pratikoù evit meur a gomenad (da skouer ssh)"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Ostilhoù evit kefluniañ hoc'h urzhiataer dre aes"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Ostilhoù letrin"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Aozerien, shelloù, ostilhoù restr, termenelloù"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Diorren"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr ""
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Teuliadur"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr ""
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr ""
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Servijer Web"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Strollant"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Servijer Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Moger tan/Henter"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Dreuzell an Internet"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "Posteloù/keleier"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Servijer posteloù Postfix, servijer keleier Inn"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Levr-bloaz"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "Servijer FTP"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "Servijer DNS ha NIS"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
-msgstr "Servijer rennañ restroù ha moullerez"
+msgstr "Servijer rannañ restroù ha moullerez"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "Servijer NFS, servijer Samba"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Stlennvon"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "Servijer stlennvon PostgreSQL ha MySQL"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "Servijer stlennvon PostgreSQL ha MariaDB"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Post"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Servijer postel Postfix"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "Servijer stlennvon PostgreSQL pe MySQL"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "Servijer stlennvon PostgreSQL pe MariaDB"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Servijer rouedad"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "Servijer NFS, servijer SMB, servijer proksi, servijer SSH"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Endeo grafikel"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "Post burevek KDE"
+msgid "Plasma Workstation"
+msgstr "Post labour Plasma"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
-msgstr "An Endro Burev K gant he ostilhoù"
+msgstr "An Endro Burev K gant hec’h ostilhoù"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "Post burevek GNOME"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr ""
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr "Post labour Xfce"
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "Post burevek MATE"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Post labour Cinnamon"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "An endeo grafikel diwar GNOME"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "Burev LXQt"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr "Burev Enlightenment"
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "Burev LXDE"
+
+#: share/meta-task/compssUsers.pl:191
#, c-format
-msgid "IceWm Desktop"
-msgstr "Burev IceWm"
+msgid "A lightweight fast graphical environment"
+msgstr "An endeo grafikel bihan ha buan"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Burevioù c'hrafek all"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm, etc"
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, hag all"
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Mavegoù"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "Servijer SSH"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Servijer Webmin ar gefluniadur a-bell"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "Ostilhoù ar rouedad/diwall"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr ""
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Skozelerien Mandriva"
+msgid "Mageia Wizards"
+msgstr "Skoazellerien Mageia"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
-msgstr "Skozelerien evit kefluniañ ar servijer"
+msgstr "Skoazellerien evit kefluniañ ar servijer"
#: steps.pm:85
#, c-format
@@ -645,7 +811,7 @@ msgstr ""
"Degouezhet ez eus ur fazi, hogen n'ouzon ket e verañ naet.\n"
"Kendalc'hit war ho mar."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -661,298 +827,357 @@ msgstr "O kregiñ gant al lankad `%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Staliadur Mandriva Linux %s"
+msgid "%s Installation %s"
+msgstr "Staliadur %s %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> etre elfennoù"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Goustad eo ar servijer Xorg da loc'hañ. Gortozit mar plij..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Diuzadenn ar media"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Staliañ burev Plasma %s"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Staliañ burev GNOME %s"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Staliadur diouzhoc'h"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Burev Plasma"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "Burev GNOME"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Burev diouzhoc'h"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Setu ur rakwel eus burev « %s »."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Klikit war ar skeudennoù evit sell eus ur skeudenn brasoc'h"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Diuzadenn strollad pakadoù"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Diuz pakadoù unan hag unan"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Ment hollek : %d / %d Mo"
+msgid "Unselect All"
+msgstr "Andiuz an holl re"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Pakad siek"
+msgid "Total size: %d / %d MB"
+msgstr "Ment hollek : %d / %d Mo"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Stumm : "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Ment : "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d Ko\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Talvoudegezh : "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "N'hellit ket diuz/andiuz ar pakad-mañ"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
-msgstr "peogwir %s zo manket"
+msgstr "peogwir e vank %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
-msgstr "peogwir %s zo manket"
+msgstr "peogwir e vank %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr ""
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "evit mirout %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"N'hellit ket dibab ar pakad-mañ peogwir n'eus ket a-walc'h a egor evit "
"staliañ anezhañ"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Ar pakadoù a-heul zo war-nes bezañ staliet"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Ar pakadoù a-heul zo war-nes bezañ lamet"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Hemañ zo ur pakad ret, n'hell ket bezañ andiuzet"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
-msgstr "N'hellit ket andiuz ar pakad-mañ. Staliet eo endo"
+msgid "You cannot unselect this package. It is already installed"
+msgstr "N'hellit ket andiuz ar pakad-mañ. Staliet eo endeo"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "N'hellit ket andiuz ar pakad-mañ. Ret eo dezhañ bezañ bremanaet"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
-msgstr "Diskouez ar pakadoù a zo dibabet emgefrek"
+msgstr "Diskouez ar pakadoù a zo dibabet emgefreek"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Staliañ"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Kargañ/Enrollañ an dibab"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
-msgstr "O bremañaat diuzadenn ar pakadoù"
+msgstr "O bremanaat diuzadenn ar pakadoù"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Staliadur bihan"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Merañ ar pakadoù"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Dibabit ar pakadoù a vennit staliañ"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "O staliañ"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
-msgstr "Munudoù ebet"
+msgstr "Munud ebet"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Amzer a chom "
+msgid "Time remaining:"
+msgstr "Amzer a chom :"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "O vrasjediñ"
+msgid "(estimating...)"
+msgstr "(o vrasjediñ ...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d pakad"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
-msgstr "Evit diverriñ"
+msgstr "Diverradenn"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Kefluniañ"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "n'eo ket kefluniet"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
-msgstr "Eilañ tout an CDoù"
+msgstr "Eilañ tout ar CDoù"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Ur fazi zo bet"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Dibabit reizhadur ho stokellaoueg mar plij."
+msgid "Please choose your keyboard layout"
+msgstr "Dibabit reizhadur ho stokellaoueg mar plij"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Setu eo listenn leun ar stokellaoueg da gaout"
+msgid "Here is the full list of available keyboards:"
+msgstr "Setu eo listenn leun ar stokellaoueg :"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
-msgstr "Staliañ/Bremanaat"
+msgstr "Staliañ/Bremañaat"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
-msgstr "Hag ur staliadur pe ur bremanadur eo ?"
+msgstr "Hag ur staliadur pe ur bremañadur eo ?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
-msgstr "Staliañ"
+msgstr "Staliadur"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Bremanaat %s"
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "Alc'hwez enrinegadur evit %s"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "Nulañ ar staliadur ; adloc’hañ an urzhiataer"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "Kefluniañ IDE"
+msgid "New Installation"
+msgstr "Staliadur nevez"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+msgid "Upgrade previous installation (not recommended)"
msgstr ""
-#: steps_interactive.pm:236
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-#: steps_interactive.pm:328
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "O kefluniañ CD/DVD"
+
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -964,75 +1189,75 @@ msgstr ""
"\n"
"Lakait el lenner ar Cd-Rom warnañ an diketenn « %s » mar plij ha gwaskit Mat "
"eo da c'houde.\n"
-"Ma n'emañ ket ganeoc'h gwaskit Nullañ evit chom hep staliañ ar Cd-Rom-se."
+"Ma n'emañ ket ganeoc'h gwaskit Nullañ evit chom hep staliañ ar CD-Rom-se."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "O klask ar pakadoù hegerz ..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
-msgstr ""
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
+msgstr "N'eus ket egor dieub a-walac'h evit staliañ pe bremanaat (%dMo > %dMo)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-"Dibabit kargañ pe enrollañ choazh ar pakadoù mar plij.\n"
+"Dibabit kargañ pe enrollañ choaz ar pakadoù mar plij.\n"
"Ar furmad zo hini ar restroù auto_install."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Kargañ"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Enrollañ"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "N'eo ket mat ar restr"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr ""
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Staliadur bihan"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr "Dibab ar burev"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
+msgid "You can choose your workstation desktop profile."
+msgstr "Amañ e c'hellit dibab ho seurt burev."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Brasoc'h eo ment dibabet evit egor dieub"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Seurt ar staliadur"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1041,82 +1266,126 @@ msgstr ""
"N'eus ket strollad pakadoù dibabet ebet.\n"
"Dibabit ar staliañ vihanañ e fell deoc'h implij mar plij :"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Gant X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Staliañ ar pakadoù aliet"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Gant un teuliadur bihan (kuzuliet !)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Staliadur bihan gwir (n'eus urpmi ebet)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "O prientiñ ar bremanaat ..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "O prientiñ ar staliadur"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "O staliañ ar pakad %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Ur fazi zo bet en ur rummañ pakadoù :"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Kenderc'hel evelato ?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "Adklask"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr "Tremen e-biou ar pakad-mañ"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
-msgstr "Tremen e-biou pep pakad eud ar vedium « %s »"
+msgstr "Tremen e-biou pep pakad eus ar vediom « %s »"
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
msgstr "Distro da ziuzadenn ar pakadoù hag ar media"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
msgstr "Ur fazi zo bet en ur staliañ ar pakad %s."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Kefluniadur goude staliañ"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
-msgstr "Bremañaat"
+msgstr "Bremanaat"
+
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
-#: steps_interactive.pm:692
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Ar pakadoù a-heul zo war-nes bezañ staliet"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Adklask ?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Bet ez eus bet ur fazi en ur ouzhpennañ ar mediom"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1128,152 +1397,105 @@ msgid ""
"\n"
"Do you want to install the updates?"
msgstr ""
-"Moien zo dit da bellkargañ ar pakadoù bremañaet. Bremañaet e oa ar\n"
+"Moaien zo dit da bellgargañ ar pakadoù bremanaet. Bremanaet e oa ar\n"
"pakadoù-mañ goude e oa echu an ingaladur. Gallout a ra kaout difazioù\n"
"surentez pe difazioù bogoù.\n"
"\n"
-"Red eo da gaout ur gevreadenn bev ouzh internet evit staliañ anezho.\n"
+"Ret eo da gaout ur gevreadenn bev ouzh internet evit staliañ anezho.\n"
"\n"
"Mennout a rit staliañ anezho ?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "O taremprediñ ar melezour evit kaout roll ar pakadoù hegerz ..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Ne m'eus ket daremprediñ ar melezour %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s war %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Periantel"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Kartenn gwelet"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Hag ur gartenn gwelet ISA hoc'h eus ?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Seveniñ « alsaconf » pe « sndconfig » goude staliañ evit kefluniañ ho "
-"kartenn klevet"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"N'eus kartenn gwelet kavet ebet. Kargañ « harddrake » goude ar staliadur"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Ketal kevregañ"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Rouedad hag Internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Proksioù"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "kefluniet"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Live an surentez"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Moger tan"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "bevaatet"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "diweredekaet"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "N'eo ket kefluniet X. Ha fellout a ra deoc'h da vat ober an dra-mañ ?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "O prientiñ ar c'harger loc'hañ ..."
+msgid "Preparing initial startup program..."
+msgstr "O prientiñ ar programm loc'hañ ..."
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Mennout a rit implijout aboot ?"
-
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Fazi en ur staliañ aboot,\n"
-"klask rediañ ar staliadur zoken ma tistruj ar parzhadur kentañ ?"
+msgid "Be patient, this may take a while..."
+msgstr "Gortozit mar plij ; gellout a rafe bezañ hir ..."
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Lakait ur bladennig gwerc'h el lenner %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "O krouiñ ur bladennig staliañ emgefreek ..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1284,46 +1506,16 @@ msgstr ""
"\n"
"Mennout a rit kuitaat da vat bremañ ?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Brav"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Adlañsañ"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Krouiñ ur bladennig staliañ emgefreek"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Adseniñ"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Emgefreek"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Enrollañ diuzadenn an pakadoù"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1335,7 +1527,7 @@ msgstr "Yezh"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "Troidigezh"
#: steps_list.pm:17
#, c-format
@@ -1384,7 +1576,7 @@ msgstr "Diogelroez"
msgid ""
"_: Keep these entry short\n"
"Partitioning"
-msgstr "O parzhañ"
+msgstr "Parzhañ"
#: steps_list.pm:27 steps_list.pm:28
#, c-format
@@ -1398,14 +1590,14 @@ msgstr "O furmadiñ"
msgid ""
"_: Keep these entry short\n"
"Choosing packages"
-msgstr "Choazh ar pakadoù"
+msgstr "Choaz ar pakadoù"
#: steps_list.pm:31
#, c-format
msgid ""
"_: Keep these entry short\n"
"Installing"
-msgstr "O staliañ"
+msgstr "Staliañ"
#: steps_list.pm:34
#, c-format
@@ -1414,13 +1606,6 @@ msgid ""
"Users"
msgstr "Arveriaded"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Rouedad"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1440,7 +1625,7 @@ msgstr "Kefluniañ X"
msgid ""
"_: Keep these entry short\n"
"Summary"
-msgstr "Evit diverriñ"
+msgstr "Diverradenn"
#: steps_list.pm:44 steps_list.pm:45
#, c-format
@@ -1454,7 +1639,7 @@ msgstr "Servijoù"
msgid ""
"_: Keep these entry short\n"
"Updates"
-msgstr "Bremañaat"
+msgstr "Bremanaat"
#: steps_list.pm:48
#, c-format
@@ -1463,98 +1648,25 @@ msgid ""
"Exit"
msgstr "Kuitaat"
-#~ msgid "All"
-#~ msgstr "An holl"
-
-#~ msgid "TV card"
-#~ msgstr "Kartenn pellwel"
-
-#~ msgid "Boot"
-#~ msgstr "Lañsañ"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Dilesadur"
-
-#~ msgid "Arkeia"
-#~ msgstr "Arkeia"
-
-#~ msgid "Flatout"
-#~ msgstr "Flatout"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "3D"
-#~ msgstr "3D"
-
-#~ msgid "CMS"
-#~ msgstr "CMS"
-
-#~ msgid "CRM"
-#~ msgstr "CRM"
-
-#~ msgid "Invictus Firewall"
-#~ msgstr "Moger tan Invictus"
-
-#~ msgid "How to register"
-#~ msgstr "Penaos enskrivañ ?"
-
-#~ msgid "Rpmdrake 2"
-#~ msgstr "Rpmdrake 2"
-
-#~ msgid "Mandriva Online Services"
-#~ msgstr "Servijoù Mandriva enlinenn"
-
-#~ msgid "New Theme"
-#~ msgstr "Giz nevez"
-
-#~ msgid "Web 2.0"
-#~ msgstr "Web 2.0"
-
-#~ msgid "Kaspersky"
-#~ msgstr "Kaspersky"
-
-#~ msgid "LinDVD"
-#~ msgstr "LinDVD"
-
-#~ msgid "Skype"
-#~ msgstr "Skype"
-
-#~ msgid "Transgaming/Cedega"
-#~ msgstr "Transgaming/Cedega"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "(%d pakad, %d Mo)"
-
-#~ msgid "%d packages"
-#~ msgstr "%d pakad"
-
-#~ msgid "Language"
-#~ msgstr "Yezh"
-
-#~ msgid "License"
-#~ msgstr "Aotre"
-
-#~ msgid "Installation class"
-#~ msgstr "Renkad ar staliadur"
-
-#~ msgid "Formatting"
-#~ msgstr "O furmadiñ"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "URL ar melezour ?"
-#~ msgid "Choosing packages"
-#~ msgstr "Choazh ar pakadoù"
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "Dao en deus an URL kregiñ gant ftp:// pe http://"
-#~ msgid "Users"
-#~ msgstr "Arveriaded"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr ""
+#~ "O taremprediñ lec'hienn %s evit kaout roll ar melezourioù hegerz ..."
-#~ msgid "Networking"
-#~ msgstr "Rouedad"
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
+#~ msgstr ""
+#~ "Sac'het en ur zaremprediñ lec'hienn %s evit kaout roll ar melezourioù "
+#~ "hegerz "
-#~ msgid "Configure X"
-#~ msgstr "Kefluniañ X"
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Dibabit ur melezour da dapout ar pakadoù diwarnañ"
diff --git a/perl-install/install/share/po/bs.po b/perl-install/install/share/po/bs.po
index d96221ae7..baa779ef5 100644
--- a/perl-install/install/share/po/bs.po
+++ b/perl-install/install/share/po/bs.po
@@ -1,33 +1,82 @@
-# translation of bs.po to Bosnian
-# translation of DrakX-bs.po to Bosnian
-# translation of bs.po to Bosanski
-# translation of DrakX-bs.po to Bosanski
-# Copyright (C) 2001, 2003, 2004, 2005, 2006. Free Software Foundation, Inc.
-# Amila Akagić <bono@lugbih.org>, 06. 2001.
-# Vedran Ljubovic <vljubovic@smartnet.ba>, 2002, 2003, 2004, 2005, 2006.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Vedran Ljubovic <vljubovic@smartnet.ba>, 2002-2006
msgid ""
msgstr ""
-"Project-Id-Version: bs\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2006-09-16 10:33+0200\n"
-"Last-Translator: Vedran Ljubovic <vljubovic@smartnet.ba>\n"
-"Language-Team: Bosnian <lokal@linux.org.ba>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Bosnian (http://www.transifex.com/MageiaLinux/mageia/language/"
+"bs/)\n"
+"Language: bs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.10.2\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr ""
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr ""
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr ""
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr ""
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr ""
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr ""
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
msgstr "Imate li neke dodatne medije?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -40,94 +89,57 @@ msgstr ""
"\n"
"Imate li još neke dodatne medije koje želite podesiti?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "sa CDROMa"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Mreža (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Mreža (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Mreža (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "URL mirrora?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "URL mora počinjati sa ftp:// ili http://"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Kontaktiram Mandriva Linux web stranicu da bih saznao listu dostupnih "
-"mirrora..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Nisam uspio kontaktirati Mandriva Linux web stranicu radi liste dostupnih "
-"mirrora"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Izaberite mirror sa kojeg će biti dobavljeni paketi"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "Podešavanje NFS-a"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr "Molim unesite ime računara i direktorij vašeg NFS medija"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr ""
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr ""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "Ime računara sa NFS serverom?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Direktorij"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr ""
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
@@ -136,49 +148,90 @@ msgstr ""
"Ne mogu pronaći hdlist datoteku na ovom mirroru. Provjerite da li je "
"lokacija ispravna."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Tražim već instalirane pakete..."
+msgid "Core Release"
+msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Uklanjam pakete prije unaprjeđenja..."
+msgid "Tainted Release"
+msgstr ""
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Pronalazim pakete za unaprjeđenje..."
+msgid "Nonfree Release"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
msgstr ""
-"Izabrali ste sljedeći server (servere): %s\n"
-"\n"
-"\n"
-"Serveri će se pokretati automatski prilikom starta računara. Oni nemaju "
-"nikakvih\n"
-"poznatih sigurnosnih propusta, ali možda će propusti biti otkriveni "
-"naknadno. Ako\n"
-"se to desi, morate ih ažurirati što prije bude moguće.\n"
-"\n"
-"\n"
-"Da li zaista želite instalirati ove servere?\n"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Tražim već instalirane pakete..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Pronalazim pakete za unaprjeđenje..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Uklanjam pakete prije unaprjeđenja..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -192,82 +245,87 @@ msgstr ""
"\n"
"Želite li zaista deinstalirati ove pakete?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Greška u čitanju datoteke %s"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "Sljedeći diskovi su preimenovani:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (ranije pod imenom %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Mreža"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "Molim izaberite medij"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Datoteka već postoji. Želite li pisati preko nje?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Nemate dozvolu"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "Neispravan NFS naziv"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "Neispravan medij %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Ne mogu napraviti snimak ekrana prije particioniranja"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Snimanje ekrana će biti dostupno nakon što instalirate u %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Instalacija"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Podešavanje"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Morate takođe formatirati i %s"
@@ -292,107 +350,143 @@ msgstr "Pokrećem mrežu"
msgid "Bringing down the network"
msgstr "Zaustavljam mrežu"
-#: media.pm:703 media.pm:714
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
+
+#: media.pm:704
#, c-format
-msgid "Downloading file %s..."
-msgstr "Preuzimam datoteku %s..."
+msgid "unable to add medium"
+msgstr ""
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr "Kopiram neke pakete na disk radi buduće upotrebe"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Kopiranje u toku"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "obavezno"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "važno"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "vrlo fino"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "fino"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "možda"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Bez opisa"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "Radna stanica"
+msgid "An error occurred:"
+msgstr ""
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Uredska radna stanica"
+msgid "A fatal error occurred: %s."
+msgstr "Došlo je do fatalne greške: %s"
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr ""
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
msgstr ""
-"Uredski programi: obrada teksta (OpenOffice.org Write, KWord), tablični "
-"proračun (OpenOffice.org Calc, KSpread), PDF preglednici itd."
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "Radna stanica"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Uredska radna stanica"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Uredski programi: obrada teksta (kword, abiword), tablični alati (kspread, "
-"gnumeric), pdf preglednici itd."
+"Uredski programi: obrada teksta (LibreOffice Write, KWord), tablični "
+"proračun (LibreOffice Calc, KSpread), PDF preglednici itd."
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Stanica za igru"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Zabavni programi: arkadne igre, stolne igre, strategije itd."
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Multimedijalna stanica"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Programi za pregled i editovanje zvuka i videa"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Internet stanica"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
@@ -401,193 +495,193 @@ msgstr ""
"Skup alata za čitanje i slanje pošte i news-a (mutt, tin...) i pregledanje "
"Weba"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Mrežni računar (klijent)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Klijenti za razne protokole uključujući ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Alati za lakše podešavanje računara"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Alati za konzolu"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Editori, shellovi, alati za datoteke, terminali"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Programiranje"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "C i C++ biblioteke, programi i include datoteke"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Dokumentacija"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Knjige i howto-i na temu Linuxa i slobodnog softvera"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Linux Standard Base. Podrška za programe trećih lica"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Web server"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Groupware"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Kolab server"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Firewall/Router"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Internet gateway"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "Mail/News"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Postfix mail server, Inn news server"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Imenički server"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP server"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "Serveri domenskih imena i mrežnih informacija"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "Server za dijeljenje datoteka i štampača"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "NFS server, Samba server"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Baze podataka"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "Server PostgreSQL ili MySQL baze podataka"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "Server PostgreSQL ili MariaDB baze podataka"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Mail"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Postfix mail server"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL ili MySQL baza podataka"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL ili MariaDB baza podataka"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Mrežni server"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "NFS server, SMB server, Proxy server, ssh server"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Grafičko okruženje"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE radna stanica"
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -595,12 +689,12 @@ msgid ""
msgstr ""
"K Desktop Environment, osnovno grafičko okruženje sa izborom pratećih alata"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "GNOME radna stanica"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -609,57 +703,109 @@ msgstr ""
"Grafička okolina sa skupom korisnički orjentisanih programa i alata za radnu "
"površinu"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
#, c-format
-msgid "IceWm Desktop"
-msgstr "IceWm okruženje"
+msgid "A lightweight fast graphical environment"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Ostale grafičke okoline"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm itd."
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Alati"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH server"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Webmin server za podešavanje sistema"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "Mrežni alati i nadzor"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "Alati za nadzor, praćenje procesa, tcpdump, nmap..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Mandriva čarobnjaci"
+msgid "Mageia Wizards"
+msgstr "Mageia čarobnjaci"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Čarobnjaci (wizardi) za podešavanje serverâ"
@@ -673,7 +819,7 @@ msgstr ""
"Došlo je do greške, ali ne znam kako da postupim u vezi toga.\n"
"Nastavite na vlastiti rizik."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -683,7 +829,7 @@ msgid ""
msgstr ""
"Neki bitni paketi nisu ispravno instalirani.\n"
"Ili je neispravan vaš CD-ROM uređaj ili vaš CD-ROM medij.\n"
-"Možete provjerite medij na računaru sa instaliranim Mandriva Linuxom\n"
+"Možete provjerite medij na računaru sa instaliranim Mageiaom\n"
"koristeći naredbu \"rpm -qpl media/main/*.rpm\"\n"
#: steps_auto_install.pm:71 steps_stdio.pm:27
@@ -693,204 +839,256 @@ msgstr "Prelazim na korak '%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux instalacija %s"
+msgid "%s Installation %s"
+msgstr "%s instalacija %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> između elemenata"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
"Vašem sistemu ponestaje resursa. Možda imate neki problem sa instalacijom\n"
-"Mandriva Linuxa. Ako se ovo desi, možete pokušati tekstualnu instalaciju. Za "
-"ovo,\n"
+"%sa. Ako se ovo desi, možete pokušati tekstualnu instalaciju. Za ovo,\n"
"pritisnite 'F1' prilikom pokretanja instalacije, zatim unesite riječ 'text'."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Izbor grupe paketa"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Izbor pojedinačnih paketa"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Ukupna veličina: %d / %d MB"
+msgid "Unselect All"
+msgstr "Ništa izabrano"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Neispravan paket"
+msgid "Total size: %d / %d MB"
+msgstr "Ukupna veličina: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Verzija: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Veličina: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Značaj: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Ne možete izabrati/isključiti ovaj paket"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "zbog nedostajućeg %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "zbog nezadovoljenog %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "pokušavam promovirati %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "kako biste zadržali %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr "Ne možete izabrati ovaj paket jer nema dovoljno prostora za njega"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Sljedeći paketi će biti instalirani"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Sljedeći paketi će biti uklonjeni"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Ovo je obavezan paket, ne može biti isključen"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Ne možete isključiti ovaj paket. On je već instaliran"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Ne možete isključiti ovaj paket. On mora biti unaprijeđen"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Automatski prikaži izabrane pakete"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Instalacija"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Učitajte ili snimite izbor paketa"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Ažuriram spisak paketa"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Minimalna instalacija"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Programi"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Izaberite pakete koje želite instalirati"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Instaliram"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Sakrij detalje"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Preostalo vremena "
+msgid "Time remaining:"
+msgstr ""
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Procjenjujem"
+msgid "(estimating...)"
+msgstr ""
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d paketa"
-msgstr[1] "%d paketa"
-msgstr[2] "%d paketa"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Ukratko"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Podesi"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "nije podešeno"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
@@ -899,106 +1097,103 @@ msgstr ""
"Pronađeni su sljedeći instalacioni mediji.\n"
"Ako želite preskočiti neke od njih, možete ih isključiti sada."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
"Imate mogućnost da kopirate sadržaj CDova na hard disk prije instalacije.\n"
"Zatim će instalacija biti nastavljena sa hard diska, a paketi će ostati "
"dostupni nakon što sistem bude instaliran."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "Kopiraj čitave CDove"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Došlo je do greške"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Molim izaberite raspored vaše tastature."
+msgid "Please choose your keyboard layout"
+msgstr "Molim izaberite raspored vaše tastature"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Ovdje je puna lista svih dostupnih tastatura"
+msgid "Here is the full list of available keyboards:"
+msgstr ""
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Instaliraj/Unaprijedi"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Da li je ovo instalacija ili unaprjeđenje?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Instalacija"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Unaprijedi %s"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
+msgid "Encryption key for %s"
+msgstr "Ključ enkripcije za %s"
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
+msgid "Cancel installation, reboot system"
msgstr ""
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
-msgstr "Ključ enkripcije za %s"
+msgid "New Installation"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
-msgstr "Podešavam IDE"
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+msgid "CD/DVD"
msgstr ""
-"Nema dovoljno slobodnog prostora za 1 MB bootstrap! Instalacija će "
-"nastaviti, ali da biste pokrenuli vaš sistem morate kreirati bootstrap "
-"particiju u DiskDrake-u"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+msgid "Configuring CD/DVD"
msgstr ""
-"Trebate napraviti PPC PReP Boot bootstrap! Instalacija će nastaviti, ali da "
-"biste pokrenuli vaš sistem morate kreirati bootstrap particiju u DiskDrake-u"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1012,19 +1207,19 @@ msgstr ""
"Ako ga nemate, pritisnite \"Odustani\" da preskočite instalaciju sa tog CD-"
"ROMa."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Tražim dostupne pakete..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
@@ -1033,52 +1228,52 @@ msgstr ""
"Molim izaberite da li ćete učitati ili snimiti izbor paketa.\n"
"Format je isti kao i diskete koje generiše auto_install."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Učitaj"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Snimi"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Neispravna datoteka"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Minimalna instalacija"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Izabrana veličina je veća od slobodnog prostora"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Vrsta instalacije"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1087,82 +1282,126 @@ msgstr ""
"Niste izabrali nijednu grupu paketa\n"
"Molim izaberite vrstu minimalne instalacije koju želite:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Sa grafikom"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Sa osnovnom dokumentacijom (preporučeno)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Stvarno minimalna instalacija (posebno bez urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Pripremam instalaciju"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Instaliram paket %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Došlo je do greške pri raspoređivanju paketa:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Da nastavim?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "Pokušaj ponovo"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr ""
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr ""
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "Spasi izbor paketa"
+msgstr ""
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "Došlo je do greške kod instaliranja paketa:"
+msgstr ""
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Post-instalacijsko podešavanje"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr "Molim provjerite da je medij za ažuriranje u uređaju %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Ažuriranje"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Sljedeći paketi će biti instalirani"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Neuspjeh u dodavanju medija"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1183,131 +1422,80 @@ msgstr ""
"\n"
"Da li želite instalirati ažurirane pakete ?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Kontaktiram mirror da bih saznao listu dostupnih paketa..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Ne mogu pristupiti mirroru %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s na %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Hardware"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Zvučna kartica"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Imate li ISA zvučnu karticu?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Pokrenite \"alsaconf\" ili \"sndconfig\" poslije instalacije kako biste "
-"podesili vašu zvučnu karticu"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Nije otkrivena zvučna kartica. Probajte \"harddrake\" poslije instalacije"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Grafički interfejs"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Mreža i Internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Proxy-ji"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "podešeno"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Sigurnosni nivo"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Firewall"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "aktiviran"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "isključen"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "Niste podesili X. Sigurno želite uraditi ovo?"
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "Pripremam bootloader..."
-
-#: steps_interactive.pm:1018
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Preparing initial startup program..."
msgstr ""
-"Izgleda da imate OldWorld ili Unknown računar, yaboot bootloader neće raditi "
-"kod vas. Instalacija će se nastaviti, ali ćete morati koristiti BootX ili "
-"neki drugi način za bootanje vašeg računara. Argument kernela za root fs je: "
-"root=%s"
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Da li želite koristiti aboot?"
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
+msgid "Be patient, this may take a while..."
msgstr ""
-"Greška u instaliranju aboota, \n"
-"da li da pokušam nasilnu instalaciju čak i ako to uništi prvu particiju?"
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
@@ -1316,17 +1504,17 @@ msgstr ""
"Na ovom sigurnosnom nivou, pristup datotekama na Windows particijama je "
"dozvoljen samo administratoru."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Ubacite praznu disketu u jedinicu %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Pravim auto instalacijsku disketu..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1337,51 +1525,16 @@ msgstr ""
"\n"
"Da li zaista želite izaći sada?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Čestitamo"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Restartuj"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Napravi autoinstalacijsku disketu"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Ova auto instalacija može biti potpuno automatizovana ako želite,\n"
-"u kojem slučaju će hard disk biti prebrisan\n"
-"(ovo je namjenjeno za instaliranje na drugi računar).\n"
-"\n"
-"Možda ćete radije željeti ponoviti instalaciju.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Ponovi"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automatizovano"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Spasi izbor paketa"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1472,13 +1625,6 @@ msgid ""
"Users"
msgstr "Korisnici"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Mreža"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1521,116 +1667,24 @@ msgid ""
"Exit"
msgstr "Izlaz"
-#~ msgid "All"
-#~ msgstr "Svi"
-
-#~ msgid "TV card"
-#~ msgstr "TV kartica"
-
-#~ msgid "Boot"
-#~ msgstr "Boot"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Metod autentikacije"
-
-#~ msgid "Arkeia"
-#~ msgstr "Arkeia"
-
-#~ msgid "Flatout"
-#~ msgstr "Flatout"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "3D"
-#~ msgstr "3D"
-
-#~ msgid "CMS"
-#~ msgstr "CMS"
-
-#~ msgid "CRM"
-#~ msgstr "CRM"
-
-#~ msgid "2007 product line"
-#~ msgstr "2007 linija proizvoda"
-
-#~ msgid "Invictus Firewall"
-#~ msgstr "Invictus Firewall"
-
-#~ msgid "Discovery Live Mode"
-#~ msgstr "Discovery Live režim"
-
-#~ msgid "How to register"
-#~ msgstr "Kako se registrovati"
-
-#~ msgid "Rpmdrake 2"
-#~ msgstr "Rpmdrake 2"
-
-#~ msgid "Mandriva Online Services"
-#~ msgstr "Mandriva Online usluge"
-
-#~ msgid "New Theme"
-#~ msgstr "Nova tema"
-
-#~ msgid "Web 2.0"
-#~ msgstr "Web 2.0"
-
-#~ msgid "Kaspersky"
-#~ msgstr "Kaspersky"
-
-#~ msgid "LinDVD"
-#~ msgstr "LinDVD"
-
-#~ msgid "Skype"
-#~ msgstr "Skype"
-
-#~ msgid "Transgaming/Cedega"
-#~ msgstr "Transgaming/Cedega"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "(%d paketa, %d MB)"
-#~ msgstr[1] "(%d paketa, %d MB)"
-#~ msgstr[2] "(%d paketa, %d MB)"
-
-#~ msgid "%d packages"
-#~ msgstr "%d paketa"
-
-#~ msgid "Language"
-#~ msgstr "Jezik"
-
-#~ msgid "License"
-#~ msgstr "Licenca"
-
-#~ msgid "Installation class"
-#~ msgstr "Klasa instalacije"
-
-#~ msgid "Formatting"
-#~ msgstr "Formatiram"
-
-#~ msgid "Choosing packages"
-#~ msgstr "Izbor paketa"
-
-#~ msgid "Users"
-#~ msgstr "Korisnici"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "URL mirrora?"
-#~ msgid "Networking"
-#~ msgstr "Mreža"
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "URL mora počinjati sa ftp:// ili http://"
-#~ msgid "Configure X"
-#~ msgstr "Podešavanje X"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr ""
+#~ "Kontaktiram %s web stranicu da bih saznao listu dostupnih mirrora..."
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
#~ msgstr ""
-#~ "Ne mogu pristupiti kernelskim modulima koji odgovaraju vašem kernelu "
-#~ "(nedostaje datoteka %s), što obično znači da je vaša boot disketa "
-#~ "zastarjela u odnosu na instalacioni medij (napravite noviju boot disketu)"
+#~ "Nisam uspio kontaktirati %s web stranicu radi liste dostupnih mirrora"
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Izaberite mirror sa kojeg će biti dobavljeni paketi"
diff --git a/perl-install/install/share/po/ca.po b/perl-install/install/share/po/ca.po
index 8ca5918c9..28b6d4a83 100644
--- a/perl-install/install/share/po/ca.po
+++ b/perl-install/install/share/po/ca.po
@@ -1,31 +1,84 @@
-# translation of ca.po to Catalan
-# translation of DrakX.po to Catalan
-# Copyright (C) 2000-2004, 2005 Free Software Foundation, Inc.
-# Softcatala, softcatala.org, 2000-2003
-# Albert Astals Cid <astals11@terra.es>, 2003-2004, 2005.
-#
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Francesc Pinyol Margalef, 2012-2013
+# Davidmp <medipas@gmail.com>, 2015-2020,2023
+# Robert Antoni Buj i Gelonch <rbuj@fedoraproject.org>, 2015,2017-2018
+# Robert Antoni Buj i Gelonch <rbuj@fedoraproject.org>, 2015
msgid ""
msgstr ""
-"Project-Id-Version: ca\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2005-09-13 23:24+0200\n"
-"Last-Translator: Albert Astals Cid <astals11@terra.es>\n"
-"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2013-04-04 13:31+0000\n"
+"Last-Translator: Davidmp <medipas@gmail.com>, 2015-2020,2023\n"
+"Language-Team: Catalan (http://app.transifex.com/MageiaLinux/mageia/language/"
+"ca/)\n"
+"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.9.1\n"
-"Plural-Forms: nplurals=2; plural=n!=1;\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Adheriu-vos-hi!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Feu-lo vostre!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "La vostra tria!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Eines d'oficina"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Oci de la llar"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "Per als nens"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "Per a la família!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "Per als desenvolupadors!"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Gràcies!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Sigueu lliures!"
-#: any.pm:155
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
-msgstr ""
+msgstr "Teniu més mitjans suplementaris?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -33,144 +86,163 @@ msgid ""
"\n"
"Do you have a supplementary installation medium to configure?"
msgstr ""
+"S'han trobat els següents mitjans i es faran servir durant la instal·lació: "
+"%s\n"
+"\n"
+"\n"
+"Teniu algun mitjà d'instal·lació suplementari per a configurar?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Xarxa (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Xarxa (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Xarxa (NFS)"
-#: any.pm:211
+#: any.pm:224
#, c-format
-msgid "URL of the mirror?"
-msgstr "URL de la rèplica?"
+msgid "NFS setup"
+msgstr "Configuració NFS"
-#: any.pm:217
+#: any.pm:225
#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr ""
+msgid "Please enter the hostname and directory of your NFS media"
+msgstr "Introduïu el nom d'amfitrió i el directori del vostre mitjà NFS"
-#: any.pm:228
+#: any.pm:229
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"S'està contactant amb el servidor Mandriva Linux per obtenir la llista de "
-"rèpliques disponibles..."
+msgid "Hostname missing"
+msgstr "Falta el nom d'amfitrió"
+
+#: any.pm:230
+#, c-format
+msgid "Directory must begin with \"/\""
+msgstr "El directori ha de començar amb «/»"
+
+#: any.pm:234
+#, c-format
+msgid "Hostname of the NFS mount ?"
+msgstr "Nom d'amfitrió del muntatge NFS?"
-#: any.pm:233
-#, fuzzy, c-format
+#: any.pm:235
+#, c-format
+msgid "Directory"
+msgstr "Directori"
+
+#: any.pm:265
+#, c-format
+msgid "Supplementary"
+msgstr "Addicional"
+
+#: any.pm:300
+#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+"Can't find a package list file on this mirror. Make sure the location is "
+"correct."
msgstr ""
-"S'està contactant amb el servidor Mandriva Linux per obtenir la llista de "
-"rèpliques disponibles..."
+"No s'ha pogut trobar el llistat dels paquets en aquesta rèplica. Assegureu-"
+"vos que la ubicació és correcta."
-#: any.pm:243
+#: any.pm:325
#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Escolliu una rèplica des de la qual aconseguir els paquets"
+msgid "Core Release"
+msgstr "Core Release"
-#: any.pm:273
+#: any.pm:327
#, c-format
-msgid "NFS setup"
-msgstr ""
+msgid "Tainted Release"
+msgstr "Tainted Release"
-#: any.pm:274
+#: any.pm:329
#, c-format
-msgid "Please enter the hostname and directory of your NFS media"
-msgstr ""
+msgid "Nonfree Release"
+msgstr "Nonfree Release"
-#: any.pm:278
+#: any.pm:367
#, c-format
-msgid "Hostname missing"
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
+"Algun maquinari de l'ordinador requereix microprogramari no lliure perquè "
+"els controladors lliures funcionin."
-#: any.pm:279
+#: any.pm:368
#, c-format
-msgid "Directory must begin with \"/\""
-msgstr ""
+msgid "You should enable \"%s\""
+msgstr "Hauríeu d'habilitar «%s»"
-#: any.pm:283
+#: any.pm:419
#, c-format
-msgid "Hostname of the NFS mount ?"
+msgid "\"%s\" contains the various pieces of the systems and its applications"
msgstr ""
+"«%s» conté els diversos components dels sistemes i les seves aplicacions"
-#: any.pm:284
+#: any.pm:420
#, c-format
-msgid "Directory"
-msgstr "Directori"
+msgid "\"%s\" contains non free software.\n"
+msgstr "«%s» conté programari no lliure.\n"
-#: any.pm:306
+#: any.pm:421
#, c-format
-msgid "Supplementary"
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
msgstr ""
+"També conté microprogramari necessari per al funcionament d'alguns "
+"dispositius (per exemple: algunes targetes gràfiques ATI/AMD, algunes "
+"targetes de xarxa, algunes targetes RAID, etc.)"
-#: any.pm:341
+#: any.pm:422
#, c-format
msgid ""
-"Can't find a package list file on this mirror. Make sure the location is "
-"correct."
-msgstr "No s'ha pogut trobat el fitxer hdlist en aquest rèplica"
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"«%s» conté programari que no es pot distribuir a tots els països per culpa "
+"de les patents de programari."
-#: any.pm:375
+#: any.pm:423
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "S'estan cercant els paquets ja instal·lats..."
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr "També conté programari de «%s» recompilat amb capacitats addicionals."
-#: any.pm:382
+#: any.pm:429
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr ""
+msgid "Here you can enable more media if you want."
+msgstr "Aquí podeu habilitar més mitjans, si ho voleu."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Aquest mitjà proporciona actualitzacions de paquets per al mitjà «%s»"
-#: any.pm:424
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "S'estan cercant els paquets ja instal·lats..."
+
+#: any.pm:593
#, c-format
msgid "Finding packages to upgrade..."
-msgstr "S'estan cercant els paquets a actualitzar"
+msgstr "S'estan cercant els paquets a actualitzar..."
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:612
#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
-msgstr ""
-"Heu seleccionat el(s) servidor(s) següent(s): %s\n"
-"\n"
-"\n"
-"Aquests servidors estan activats per defecte. No tenen cap problema de "
-"seguretat\n"
-"conegut, però se'n podrien trobar de nous. Si fos així, caldrà que els "
-"actualitzeu\n"
-"tan aviat com sigui possible.\n"
-"\n"
-"\n"
-"Voleu realment instal·lar aquests servidors?\n"
+msgid "Removing packages prior to upgrade..."
+msgstr "S'estan suprimint els paquets abans de l'actualització..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -178,87 +250,92 @@ msgid ""
"\n"
"Do you really want to remove these packages?\n"
msgstr ""
-"Se suprimiran els següents paquets per poder actualitzar el sistema: %s\n"
+"Se suprimiran els paquets següents per poder actualitzar el sistema: %s\n"
"\n"
"\n"
-"Voleu realment suprimir aquests paquets?\n"
+"Realment voleu suprimir aquests paquets?\n"
+
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "S'ha produït un error en llegir el fitxer %s"
-#: any.pm:1055
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
-msgstr ""
+msgstr "El(s) següent(s) disc(s) ha(n) estat reanomenat(s):"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
-msgstr ""
+msgstr "%s (abans anomenat %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Xarxa"
-#: any.pm:1137
-#, fuzzy, c-format
+#: any.pm:1365
+#, c-format
msgid "Please choose a media"
-msgstr "Si us plau escolliu"
+msgstr "Escolliu un mitjà"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "El fitxer ja existeix. El voleu sobreescriure?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "S'ha denegat el permís"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "Nom NFS incorrecte"
-#: any.pm:1226
-#, fuzzy, c-format
+#: any.pm:1454
+#, c-format
msgid "Bad media %s"
-msgstr "s'ha afegit la font %s"
+msgstr "Mitjà incorrecte %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "No es poden fer captures de pantalla abans de fer les particions"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Les captures estaran disponibles després d'instal·lar a %s"
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
-msgstr "S'està instal·lant"
+msgstr "Instal·lació"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Configuració"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "També heu de formatar %s"
@@ -270,7 +347,7 @@ msgid ""
"You can find some information about them at: %s"
msgstr ""
"Part del maquinari del vostre ordinador necessita controladors\n"
-"\"registrats\" per poder funcionar. Podeu trobar-ne informació a: %s"
+"«registrats» per poder funcionar. Podeu trobar-ne informació a: %s"
#: interactive.pm:22
#, c-format
@@ -282,303 +359,342 @@ msgstr "S'està activant la xarxa"
msgid "Bringing down the network"
msgstr "S'està desactivant la xarxa"
-#: media.pm:703 media.pm:714
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr "S'està recuperant el fitxer"
+
+#: media.pm:704
#, c-format
-msgid "Downloading file %s..."
-msgstr "S'està descarregant el fitxer %s..."
+msgid "unable to add medium"
+msgstr "no s'ha pogut afegir el mitjà"
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
-msgstr ""
+msgstr "S'estan copiant alguns paquets al disc per a un ús futur"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
-msgstr "Còpia en procés"
+msgstr "Còpia en curs"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "s'ha de tenir"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "important"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "molt bonic"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "bonic"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "potser"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "S'està obtenint informació del paquet des de les metadades XML..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"No s'ha trobat informació xml per al mitjà «%s»; només el resultat parcial "
+"per al paquet %s"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Cap descripció"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"Alguns paquets sol·licitats per %s no es poden instal·lar:\n"
+"%s"
+
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "S'ha produït un error:"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "S'ha produït un error fatal: %s."
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr "No tornar a preguntar"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "Han fallat %d transaccions d'instal·lació"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "La instal·lació de paquets ha fallat:"
+
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "Estació de treball"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "Estació de treball d'oficina"
-#: share/meta-task/compssUsers.pl:15
-#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
-msgstr ""
-"Programes d'ofimàtica: processadors de textos (OpenOffice.org Writer, "
-"Kword), fulls de càlcul (OpenOffice.org Calc, Kspread), visualitzadors pdf, "
-"etc."
-
-#: share/meta-task/compssUsers.pl:16
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Programes d'ofimàtica: processadors de textos (kword, abiword), fulls de "
-"càlcul (kspread, gnumeric), visualitzadors pdf, etc."
+"Programes d'ofimàtica: processadors de textos (LibreOffice Writer, Kword), "
+"fulls de càlcul (LibreOffice Calc, Kspread), visualitzadors PDF, etc."
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Estació de jocs"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Programes d'entreteniment: acció, jocs de taula, estratègia, etc."
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Estació multimèdia"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Programes de reproducció/edició de so i vídeo"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Estació d'Internet"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-"Conjunt d'eines per llegir i enviar correu i notícies (mutt, tin...) i per "
-"navegar pel Web"
+"Conjunt d'eines per llegir i enviar correu i notícies (mutt, tin, etc.) i "
+"per navegar pel Web"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Ordinador de xarxa (client)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
-msgstr "Clients per a diferents protocols, incloent l'ssh"
+msgstr "Clients per a diferents protocols, incloent-hi l'ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Eines per facilitar la configuració de l'ordinador"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Eines de consola"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
-msgstr "Editors, intèrprets d'ordres, eines de fitxer, terminals"
+msgstr "Editors, shells, eines de fitxer, terminals"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Desenvolupament"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "Biblioteques de desenvolupament C i C++, programes i fitxers include"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Documentació"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Llibres i Com es fa... sobre el Linux i el programari lliure"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Base Estàndard de Linux (LSB). Suport a aplicacions de tercers"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Servidor Web"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Groupware"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Servidor Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Tallafoc/Encaminador"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Passarel·la a Internet"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "Correu/Notícies"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Servidor de correu Postfix, Servidor de noticies Inn"
+msgstr "Servidor de correu Postfix, servidor de notícies Inn"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Servidor de directori"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "Servidor FTP"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "Servidor de Noms de Domini i d'Informació de la Xarxa (DNS/NIS)"
+msgstr "Servidor de noms de domini i d'informació de la xarxa (DNS/NIS)"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "Servidor de compartició de fitxers i impressores"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
-msgstr "Servidor NFS, Servidor Samba"
+msgstr "Servidor NFS, servidor Samba"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Base de dades"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "Servidor de bases de dades PostgreSQL i MySQL"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "Servidor de bases de dades PostgreSQL i MariaDB"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache i Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Correu"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Servidor de correu Postfix"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "Servidor de bases de dades PostgreSQL o MySQL"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "Servidor de bases de dades PostgreSQL o MariaDB"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
-msgstr "Servidor d'ordinador de xarxa"
+msgstr "Ordinador de xarxa (servidor)"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "Servidor NFS, Servidor SMB, Servidor Proxy, Servidor SSH"
+msgstr "Servidor NFS, servidor SMB, servidor intermediari, servidor SSH"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Entorn gràfic"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "Estació de treball KDE"
+msgid "Plasma Workstation"
+msgstr "Estació de treball Plasma"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -587,12 +703,12 @@ msgstr ""
"L'entorn d'escriptori K (KDE), l'entorn gràfic bàsic que inclou diverses "
"eines"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "Estació de treball GNOME"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -601,58 +717,111 @@ msgstr ""
"Entorn gràfic amb un conjunt d'aplicacions i eines d'escriptori fàcil "
"d'utilitzar"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr "Estació de treball Xfce"
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Entorn gràfic més lleuger amb un conjunt d'aplicacions i eines d'escriptori "
+"fàcil d'utilitzar"
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "Estació de treball MATE"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Estació de treball Cinnamon"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Entorn gràfic basat en GNOME"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "Escriptori LXQt"
+
+#: share/meta-task/compssUsers.pl:181
#, c-format
-msgid "IceWm Desktop"
-msgstr "Escriptori IceWm"
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "Un port QT de propera generació de l'entorn d'escriptori lleuger"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr "Escriptori Enlightenment"
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr "Un entorn gràfic lleuger i ràpid amb un seguiment dedicat"
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "Escriptori LXDE"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Un entorn gràfic ràpid i lleuger"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Altres escriptoris gràfics"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm, etc"
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, etc."
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Utilitats"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "Servidor SSH"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr ""
+msgstr "Servidor remot de configuració de Webmin"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Utilitats de xarxa/Monitorització"
+msgstr "Utilitats/monitoratge de la xarxa"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
-msgstr ""
+msgstr "Eines de monitoratge, comptatge de processos, tcpdump, nmap, etc."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Auxiliars de Mandriva"
+msgid "Mageia Wizards"
+msgstr "Auxiliars de Mageia"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Auxiliars per configurar el servidor"
@@ -666,18 +835,18 @@ msgstr ""
"S'ha produït un error, però no sé com gestionar-lo correctament.\n"
"Si continueu, és sota la vostra responsabilitat."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
-"\"\n"
+"Check the cdrom on an installed computer using \"rpm -qpl media/main/*."
+"rpm\"\n"
msgstr ""
"Alguns paquets importants no s'han instal·lat correctament.\n"
"La vostra unitat de CD-ROM, o bé el CD-ROM, són defectuosos.\n"
-"Comproveu el CD-ROM en un ordinador instal·lat mitjançant \"rpm -qpl media/"
-"main/*.rpm\"\n"
+"Comproveu el CD-ROM en un ordinador instal·lat mitjançant «rpm -qpl media/"
+"main/*.rpm»\n"
#: steps_auto_install.pm:71 steps_stdio.pm:27
#, c-format
@@ -686,310 +855,371 @@ msgstr "S'està entrant en el pas '%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Instal·lació del Mandriva Linux %s"
+msgid "%s Installation %s"
+msgstr "Instal·lació de %s %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> entre elements"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "El servidor Xorg triga a arrencar. Espereu..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
"El vostre sistema està baix de recursos; podeu tenir algun problema en\n"
-"instal·lar el Mandriva Linux. Si això passa, podeu provar d'instal·lar-lo "
-"en\n"
+"instal·lar %s. Si això passa, podeu provar d'instal·lar-lo en\n"
"mode text. Per fer-ho, premeu 'F1' en arrencar des del CD-ROM i escriviu "
"'text'."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Selecció de mitjans"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Instal·la %s l'escriptori Plasma"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Instal·la %s l'escriptori GNOME"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Instal·lació personalitzada"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Escriptori Plasma"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "Escriptori GNOME"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Escriptori personalitzat"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Aquesta és una vista prèvia de l'escriptori '%s'."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Feu clic a les imatges per a veure una vista prèvia més gran."
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
-msgstr "Selecció del grup de paquets"
+msgstr "Selecció de grups de paquets"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Selecció individual de paquets"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Mida total: %d / %d MB"
+msgid "Unselect All"
+msgstr "Desselecciona-ho tot"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Paquet incorrecte"
+msgid "Total size: %d / %d MB"
+msgstr "Mida total: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Versió: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
-msgstr "Mida:"
+msgstr "Mida: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d kB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
-msgstr "Importància:"
+msgstr "Importància: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "No podeu seleccionar/desseleccionar aquest paquet"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
-msgstr "degut a que falten %s"
+msgstr "perquè falten %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
-msgstr "degut a %s no satisfetes"
+msgstr "a causa de la insatisfacció %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
-msgstr ""
+msgstr "s'està intentant promoure %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
-msgstr "per tal de mantenir %s"
+msgstr "per mantenir %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"No podeu seleccionar aquest paquet perquè no queda prou espai per instal·lar-"
"lo"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Ara s'instal·laran els paquets següents"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
-msgstr "Ara s'eliminaran els paquets següents"
+msgstr "Se suprimiran els paquets següents"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Aquest paquet és obligatori; no es pot desseleccionar"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "No podeu desseleccionar aquest paquet; ja està instal·lat"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "No podeu desseleccionar aquest paquet; s'ha d'actualitzar"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Mostra automàticament els paquets seleccionats"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Instal·la"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Carrega/Desa la selecció"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "S'està actualitzant la selecció de paquets"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr "Commuta entre la llista de paquets jeràrquica i la neta"
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Instal·lació mínima"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
-msgstr "Gestor de programari"
+msgstr "Gestió de programari"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Escolliu els paquets que voleu instal·lar"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
-msgstr "S'està instal·lant"
+msgstr "Instal·lació"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Sense detalls"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Temps restant "
+msgid "Time remaining:"
+msgstr "Temps restant:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "S'està estimant"
+msgid "(estimating...)"
+msgstr "(s'està estimant...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d paquet"
msgstr[1] "%d paquets"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Resum"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Configura"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
-msgstr "no configurat(da)"
+msgstr "sense configurar"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
+"S'han trobat els següents mitjans d'instal·lació.\n"
+"Si en voleu ometre alguns, els podeu desseleccionar ara."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
+"Teniu l'opció de copiar el contingut dels CD al disc dur abans de la "
+"instal·lació.\n"
+"Llavors es continuarà des del disc dur i els paquets continuaran disponibles "
+"un cop el sistema estigui instal·lat."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
-msgstr "Copia els CDs sencers"
+msgstr "Copia els CD sencers"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "S'ha produït un error"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Si us plau, seleccioneu la disposició del vostre teclat."
+msgid "Please choose your keyboard layout"
+msgstr "Seleccioneu la disposició del vostre teclat"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Aquesta és la llista completa de teclats disponibles"
+msgid "Here is the full list of available keyboards:"
+msgstr "Aquesta és la llista completa de teclats disponibles:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Instal·la/Actualitza"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Es tracta d'una instal·lació o d'una actualització?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
-msgstr "Instal·la"
+msgstr "Instal·lació"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Actualitza %s"
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "Clau de xifratge per a %s"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "Cancel·la la instal·lació, reinicia el sistema"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "S'està configurant l'IDE"
+msgid "New Installation"
+msgstr "Nova instal·lació"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
-"No hi ha prou espai lliure per un 1MB de bootstrap! La instal·lació "
-"continuarà, però per iniciar el sistema necessitareu crear la partició de "
-"bootstrap amb el DiskDrake"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Actualitza la instal·lació anterior (no recomanable)"
-#: steps_interactive.pm:236
-#, fuzzy, c-format
+#: steps_interactive.pm:223
+#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"No hi ha prou espai lliure per un 1MB de bootstrap! La instal·lació "
-"continuarà, però per iniciar el sistema necessitareu crear la partició de "
-"bootstrap amb el DiskDrake"
+"L'instal·lador ha detectat que el vostre Linux instal·lat no es pot "
+"actualitzar a %s de forma segura.\n"
+"\n"
+"Es recomana una nova instal·lació que substitueixi l'anterior.\n"
+"\n"
+"Avís: hauríeu de fer una còpia de seguretat de les vostres dades personals "
+"abans de triar «Nova instal·lació»."
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "Configuració de CD/DVD"
+
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -998,79 +1228,80 @@ msgid ""
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
"Canvieu el Cd-Rom!\n"
-"Si us plau, inseriu el CD-ROM etiquetat com \"%s\" a la unitat i després\n"
+"Inseriu el CD-ROM etiquetat com a «%s» a la unitat i després\n"
"premeu D'acord.\n"
"Si no el teniu, premeu Cancel·la per no fer la instal·lació des d'aquest Cd-"
"Rom."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "S'estan cercant els paquets disponibles..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
+"El vostre sistema no té prou espai de disc lliure per a la instal·lació o "
+"actualització (%d MB > %d MB)"
-#: steps_interactive.pm:405
-#, fuzzy, c-format
+#: steps_interactive.pm:428
+#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-"Si us plau, carregueu o deseu la selecció de paquets en el disquet.\n"
-"El format és el mateix que en els disquets generats d'instal·lació "
-"automàtica."
+"Trieu carregar o desar la selecció de paquets.\n"
+"El format és el mateix que el dels fitxers generats per auto_install."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
-msgstr "Càrrega"
+msgstr "Carrega"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Desa"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Fitxer incorrecte"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr ""
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Instal·lació mínima"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr "Selecció de l'escriptori"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
+msgid "You can choose your workstation desktop profile."
+msgstr "Podeu triar el vostre perfil d'escriptori d'estació de treball."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "La mida seleccionada és superior a la disponible"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Tipus d'instal·lació"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1079,82 +1310,130 @@ msgstr ""
"No heu seleccionat cap grup de paquets.\n"
"Escolliu la instal·lació mínima que voleu:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Amb X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Instal·la els paquets recomanats"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Amb la documentació bàsica (recomanat!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Instal·lació realment mínima (especialment no urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "S'està preparant l'actualització..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "S'està preparant la instal·lació"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "S'està instal·lant el paquet %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "S'ha produït un error en ordenar els paquets:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
-msgstr "Voleu seguir igualment?"
+msgstr "Voleu continuar tanmateix?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
-msgstr ""
+msgstr "Reintenta"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
-msgstr ""
+msgstr "Omet aquest paquet"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
-msgstr ""
+msgstr "Omet tots els paquets del mitjà «%s»"
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "Desa la selecció de paquets"
+msgstr "Torna enrere cap a la selecció de mitjans i paquets"
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "S'ha produït un error en instal·lar els paquets:"
+msgstr "S'ha produït un error en la instal·lació del paquet %s."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Configuració posterior a la instal·lació"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
-msgstr ""
+msgstr "Assegureu-vos que el mitjà Actualitza Mòduls és a la unitat %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Actualitzacions"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Ara teniu l'oportunitat de configurar mitjans en línia."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Això us permet instal·lar actualitzacions de seguretat."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"Per configurar aquests mitjans, us caldrà tenir una connexió a Internet "
+"funcional.\n"
+"\n"
+"Voleu configurar el mitjà d'actualització?"
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr "Aquest descarregador no s'ha pogut instal·lar."
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Ho torno a intentar?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Fallada en afegir un mitjà"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1176,154 +1455,99 @@ msgstr ""
"\n"
"Voleu instal·lar les actualitzacions?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr ""
-"S'està contactant amb la rèplica per obtenir la llista dels paquets "
-"disponibles..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "No es pot contactar amb la rèplica: %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s a %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Maquinari"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Targeta de so"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Teniu una targeta de so ISA?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Executeu \"alsacont\" després de la instal·lació per configurar la targeta "
-"de so"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"No s'ha detectat cap targeta de so. Proveu amb \"harddrake\" després de la "
-"instal·lació"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Interfície gràfica"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Xarxa i Internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
-msgstr "Intermediaris"
+msgstr "Servidors intermediaris"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "configurat"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
-msgstr "Nivell de seguretat:"
+msgstr "Nivell de seguretat"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Tallafoc"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "activat"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
-msgstr "inhabilita"
+msgstr "inhabilitat"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "No heu configurat X. Segur que ho voleu així?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "S'està preparant el carregador de l'arrencada..."
+msgid "Preparing initial startup program..."
+msgstr "S'està preparant el programa d'arrencada..."
-#: steps_interactive.pm:1018
-#, fuzzy, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"Sembla que teniu un OldWorld o una màquina\n"
-"desconeguda; el carregador d'arrencada yaboot no us funcionarà.\n"
-"La instal·lació continuarà, però us caldrà utilitzar el BootX\n"
-"o algun altre mètode per arrencar l'ordinador"
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Voleu utilitzar l'aboot?"
-
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"S'ha produït un error en instal·lar l'aboot. \n"
-"Voleu intentar igualment la instal·lació encara que això destrueixi la "
-"primera partició?"
+msgid "Be patient, this may take a while..."
+msgstr "Tingueu paciència, això pot trigar una estona..."
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-"En quest nivell de seguretat, l'accés a les particions de Windows està "
+"En aquest nivell de seguretat, l'accés a les particions de Windows està "
"restringit a l'administrador."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Inseriu un disquet en blanc a la unitat %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
-msgstr "S'està creant el disquet d'instal·lació automàtica"
+msgstr "S'està creant el disquet d'instal·lació automàtica..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1332,66 +1556,30 @@ msgid ""
msgstr ""
"Alguns passos no s'han completat.\n"
"\n"
-"Segur que voleu sortir ara?"
+"Esteu segur que voleu sortir ara?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Felicitats"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Reinicia"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Genera un disquet per a la instal·lació automàtica"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Si ho desitgeu, la instal·lació automàtica es pot\n"
-"automatitzar completament, però en aquest cas\n"
-"prendrà el control del disc dur!\n"
-"(Això està pensat per a la instal·lació en un altre ordinador.)\n"
-"\n"
-"Potser preferireu repetir la instal·lació.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Repeteix"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automàtica"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Desa la selecció de paquets"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
msgid ""
"_: Keep these entry short\n"
"Language"
-msgstr "Escolliu el vostre idioma"
+msgstr "Llengua"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "Localització"
#: steps_list.pm:17
#, c-format
@@ -1419,7 +1607,7 @@ msgstr "Detecció del disc dur"
msgid ""
"_: Keep these entry short\n"
"Installation class"
-msgstr ""
+msgstr "Classe d'instal·lació"
#: steps_list.pm:23
#, c-format
@@ -1440,28 +1628,28 @@ msgstr "Seguretat"
msgid ""
"_: Keep these entry short\n"
"Partitioning"
-msgstr "Particionament"
+msgstr "Particions"
#: steps_list.pm:27 steps_list.pm:28
#, c-format
msgid ""
"_: Keep these entry short\n"
"Formatting"
-msgstr ""
+msgstr "Formatació"
#: steps_list.pm:29
#, c-format
msgid ""
"_: Keep these entry short\n"
"Choosing packages"
-msgstr ""
+msgstr "Tria de paquets"
#: steps_list.pm:31
#, c-format
msgid ""
"_: Keep these entry short\n"
"Installing"
-msgstr "S'està instal·lant"
+msgstr "Instal·lació"
#: steps_list.pm:34
#, c-format
@@ -1470,13 +1658,6 @@ msgid ""
"Users"
msgstr "Usuaris"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Xarxa"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1489,7 +1670,7 @@ msgstr "Carregador d'arrencada"
msgid ""
"_: Keep these entry short\n"
"Configure X"
-msgstr "Configura l'X"
+msgstr "Configura les X"
#: steps_list.pm:42
#, c-format
@@ -1518,72 +1699,3 @@ msgid ""
"_: Keep these entry short\n"
"Exit"
msgstr "Surt"
-
-#~ msgid "All"
-#~ msgstr "Tots"
-
-#~ msgid "TV card"
-#~ msgstr "Targeta de TV"
-
-#~ msgid "Boot"
-#~ msgstr "Arrencada"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Autenticació"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#, fuzzy
-#~ msgid "Invictus Firewall"
-#~ msgstr "Tallafocs interactiu"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "(%d paquet, %d MB)"
-#~ msgstr[1] "(%d paquets, %d MB)"
-
-#~ msgid "%d packages"
-#~ msgstr "%d paquets"
-
-#~ msgid "Language"
-#~ msgstr "Escolliu el vostre idioma"
-
-#~ msgid "License"
-#~ msgstr "Llicència"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "Tipus d'instal·lació"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "S'està estimant"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "Paquets a instal·lar"
-
-#~ msgid "Users"
-#~ msgstr "Usuaris"
-
-#~ msgid "Networking"
-#~ msgstr "Xarxa"
-
-#~ msgid "Configure X"
-#~ msgstr "Configura l'X"
-
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
-#~ msgstr ""
-#~ "No es pot accedir als mòduls del nucli corresponents al vostre nucli (no "
-#~ "s'ha trobat el fitxer %s). Això generalment vol dir que el vostre disquet "
-#~ "d'arrencada no està sincronitzat amb el suport d'instal·lació (si us "
-#~ "plau, creeu un nou disquet d'arrencada)"
diff --git a/perl-install/install/share/po/cs.po b/perl-install/install/share/po/cs.po
index 1a1be8f91..c61e02693 100644
--- a/perl-install/install/share/po/cs.po
+++ b/perl-install/install/share/po/cs.po
@@ -1,29 +1,85 @@
-# Translation of cs.po to Czech
-# Copyright (C) 1999,2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
-# Radek Vybiral <Radek.Vybiral@vsb.cz>, 2000, 2001-2003.
-# Michal Bukovjan <bukm@centrum.cz>, 2002-2003, 2004, 2005, 2006, 2007.
+# Translators:
+# Appukonrad <appukonrad@gmail.com>, 2013
+# Appukonrad <appukonrad@gmail.com>, 2013-2014
+# Luděk Janča <joelp@email.cz>, 2016-2020,2022-2023
+# fri, 2013,2015-2017,2019-2020
msgid ""
msgstr ""
-"Project-Id-Version: cs\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-10-02 21:31+0200\n"
-"Last-Translator: Michal Bukovjan <bukm@centrum.cz>\n"
-"Language-Team: Czech <cs@li.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2013-04-04 13:31+0000\n"
+"Last-Translator: Luděk Janča <joelp@email.cz>, 2016-2020,2022-2023\n"
+"Language-Team: Czech (http://app.transifex.com/MageiaLinux/mageia/language/"
+"cs/)\n"
+"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n "
+"<= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Připojte se k nám!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Učiňte systém svým!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "Dle vašeho výběru!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Kancelářské nástroje"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Domácí zábava"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "Pro děti"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "Pro rodinu"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "Pro vývojáře"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Děkujeme"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Svobodu!"
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
-msgstr "Máte ještě nějaká další doplňující zdroje?"
+msgstr "Máte ještě nějaké další doplňující zdroje?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -36,91 +92,57 @@ msgstr ""
"\n"
"Chcete nastavit ještě nějaké další doplňující instalační zdroje?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Síť (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Síť (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Síť (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "URL zrcadla?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "URL musí začínat na ftp:// nebo http://"
-
-#: any.pm:228
-#, c-format
-msgid "Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr "Kontaktuji web Mandriva Linux pro získání seznamu dostupných zrcadel..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Selhalo kontaktování webu Mandriva Linux pro získání seznamu dostupných "
-"zrcadel"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Zvolte si zrcadlo (mirror) pro stahování balíčků"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "Nastavení NFS"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
-msgstr "Zadejte prosím název počítače a adresář vašeho zařízení NFS"
+msgstr "Zadejte, prosím, název počítače a adresář vašeho zařízení NFS"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr "Chybí název počítače"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "Adresář musí začínat znakem \"/\""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "Název počítače připojení NFS?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Adresář"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "Dodatečný"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
@@ -129,48 +151,97 @@ msgstr ""
"Nelze nalézt soubor hdlist na tomto zrcadle. Ujistěte se, že umístění je "
"správné."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Prohledávám již instalované balíčky..."
+msgid "Core Release"
+msgstr "Vydání Core"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Odstraňují se balíčky před aktualizací..."
+msgid "Tainted Release"
+msgstr "Vydání Tainted"
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Vyhledávám balíčky pro aktualizaci..."
+msgid "Nonfree Release"
+msgstr "Vydání Nonfree"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"Vybrali jste pro instalaci následující server(y): %s\n"
-"\n"
-"\n"
-"Tyto servery budou standardně aktivovány. Přestože není známý žádný\n"
-"bezpečnostní problém, mohou se přesto vyskytnout. Je proto důležité "
-"aktualizovat\n"
-"vždy, když je to potřeba.\n"
-"\n"
-"\n"
-"Chcete opravdu nainstalovat tyto servery?\n"
+"Některý hardware ve vašem počítači potřebuje nesvobodný firmware, aby "
+"fungovaly svobodné ovladače."
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "Měli byste povolit \"%s\""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "\"%s\" obsahuje různé kousky systému a jeho programů"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "\"%s\" obsahuje nesvobodný software.\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"Obsahuje také firmware potřebný pro funkci určitých zařízení (např.: některé "
+"grafické karty ATI/AMD, některé síťové karty, některé karty RAID, ...)"
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"\"%s\" obsahuje software, který nemůže být distribuován ve všech zemích "
+"kvůli softwarovým patentům."
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+"Obsahuje také software z \"%s\", znovu sestavený s doplňujícími funkcemi."
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "Zde můžete, pokud chcete, povolit více zdrojů."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Tyto zdroje poskytují aktualizace balíčků pro \"%s\""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Prohledávají se již nainstalované balíčky..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Vyhledávají se balíčky pro aktualizaci..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Odstraňují se balíčky před aktualizací..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -183,82 +254,87 @@ msgstr ""
"\n"
"Opravdu chcete odebrat tyto balíčky?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Chyba při čtení souboru %s"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "Následující disk(y) byly přejmenovány:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (předchozí název %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Síť"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
-msgstr "Prosím vyberte zdroj"
+msgstr "Vyberte, prosím, zdroj"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Soubor již existuje. Přepsat?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Přístup odepřen"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "Chybný název NFS"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "Chybný zdroj %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Nelze provést sejmutí obrazovky před rozdělením disků"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Sejmuté obrazovky budou dostupné po instalaci v adresáři %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Instalace"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Nastavení"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Musíte také naformátovat %s"
@@ -269,61 +345,81 @@ msgid ""
"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
"You can find some information about them at: %s"
msgstr ""
-"Některé části vašeho hardware potřebují pro svoji práci 'proprietární' "
-"ovladače.\n"
+"Některý hardware potřebuje pro svoji práci \"proprietární\" ovladače.\n"
"Další informace o těchto ovladačích můžete nalézt na: %s"
#: interactive.pm:22
#, c-format
msgid "Bringing up the network"
-msgstr "Startuji síť"
+msgstr "Spouští se síť"
#: interactive.pm:27
#, c-format
msgid "Bringing down the network"
-msgstr "Zastavuji síť"
+msgstr "Zastavuje se síť"
-#: media.pm:703 media.pm:714
+#: media.pm:397
#, c-format
-msgid "Downloading file %s..."
-msgstr "Stahuji soubor %s..."
+msgid "Please wait, retrieving file"
+msgstr "Prosím počkejte, získává se soubor"
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "nelze přidat zdroj"
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
-msgstr "Kopíruji některé balíčky na disky pro budoucí použití"
+msgstr "Kopírují se některé balíčky na disky pro budoucí použití"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Probíhá kopírování"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "musíte mít"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "důležité"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "nejméně důležité"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "nedůležité"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "může se hodit"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "Získávají se informace o balíku z popisných dat XML..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Chybí XML informace pro zdroj \"%s\", pouze částečný výsledek pro balíček %s"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Žádný popis"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
@@ -332,328 +428,398 @@ msgstr ""
"Některé z balíčků vyžádaných od %s nelze nainstalovat:\n"
"%s"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "Nastala chyba:"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "Vyskytla se fatální chyba: %s."
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr "Více se již neptat"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d instalačních procesů selhalo"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Instalace balíčků selhala:"
+
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "Pracovní stanice"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "Kancelářská stanice"
-#: share/meta-task/compssUsers.pl:15
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Programy pro kancelář: textové procesory (OpenOffice.org Writer, Kword), "
-"tabulkové procesory (OpenOffice.org Calc, Kspread), prohlížeče PDF a další"
+"Programy pro kancelář: textové procesory (LibreOffice Writer, Kword), "
+"tabulkové procesory (LibreOffice Calc, Kspread), prohlížeče PDF a další"
-#: share/meta-task/compssUsers.pl:16
-#, c-format
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"Programy pro kancelář: textové procesory (KWord, Abiword), tabulkové "
-"procesory (KSpread, Gnumeric), prohlížeče PDF a další"
-
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Hry"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Zábavné programy: deskové hry, strategie, atd."
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Multimediální stanice"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
-msgstr "Programy pro přehrávání/editaci zvuku a videa"
+msgstr "Programy pro přehrávání/upravování zvuku a obrazu"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Internetová stanice"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-"Soubor nástrojů pro čtení a posílaní el. pošty a příspěvků do diskusních "
-"skupin (mutt, tin..) a pro prohlížení Webu"
+"Soubor nástrojů pro čtení a posílaní elektronické pošty a příspěvků do "
+"diskusních skupin (mutt, tin..) a pro prohlížení Webu"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Síťový počítač (klient)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Klienti pro různé verze protokolu ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Nástroje pro snadnou konfiguraci počítače"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Konzolové nástroje"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Editory, shelly, souborové nástroje, terminály"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Vývoj"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "Knihovny pro vývoj v C a C++, programy a hlavičkové soubory"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Dokumentace"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
-msgstr "Knihy a Howto o Linuxu a Svobodném Software"
+msgstr "Knihy a praktické rady, jak na to, o Linuxu a Svobodném Software"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Standardní Báze Linuxu (LSB): Podpora aplikací jiných dodavatelů"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Webový server"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Groupware"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Server Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
-msgstr "Firewall/Router"
+msgstr "Firewall/Router (směrovač)"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Internetová brána"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "Pošta/Diskusní skupiny"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Poštovní server Postfix, server diskusních skupin Inn"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Server adresářových služeb"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "Server FTP"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "Server pro domény a síťové informace"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "Server pro sdílení souborů a tiskáren"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "Server NFS, server Samba"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Databáze"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "Databázové servery PostgreSQL a MySQL"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "Databázové servery PostgreSQL a MariaDB"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache a Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Pošta"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Poštovní server Postfix"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "Databázové servery PostgreSQL nebo MySQL"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "Databázové servery PostgreSQL nebo MariaDB"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Síťový server"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "NFS server, SMB server, Proxy server, SSH server"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Grafické prostředí"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "Pracovní stanice s KDE"
+msgid "Plasma Workstation"
+msgstr "Pracovní stanice Plasma"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr ""
-"K Desktop Environment, základní grafické prostředí s kolekcí doprovodných "
+"K Desktop Environment, základní grafické prostředí se sbírkou doprovodných "
"nástrojů"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
-msgstr "Pracovní stanice s GNOME"
+msgstr "Pracovní stanice GNOME"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
+msgstr "Grafické prostředí s uživatelsky přívětivou sadou aplikací a nástrojů"
+
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr "Pracovní stanice Xfce"
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
msgstr ""
-"Grafické prostředí s uživatelsky přívětivým seskupením aplikací a pracovní "
-"plochou"
+"Jednoduché grafické prostředí s uživatelsky přívětivou sadou aplikací a "
+"nástrojů"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "Pracovní stanice MATE"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Pracovní stanice Cinnamon"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Grafické prostředí založené na GNOME"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "Prostředí LXQt"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "Příští generace Qt lehkého prostředí pracovní plochy"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr "Pracovní prostředí Enlightenment"
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+"Lehké a rychlé grafické prostředí s uživatelsky přívětivou sadou aplikací a "
+"nástrojů"
+
+#: share/meta-task/compssUsers.pl:189
#, c-format
-msgid "IceWm Desktop"
-msgstr "IceWm desktop"
+msgid "LXDE Desktop"
+msgstr "Prostředí LXDE"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Lehké a rychlé grafické prostředí"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
-msgstr "Další grafické desktopy"
+msgstr "Další grafická prostředí"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm a další"
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm a další"
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Užitečné nástroje"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "Server SSH"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Server pro vzdálené nastavení Webminu"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "Síťové nástroje/Sledování"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "Nástroje pro sledování, evidenci procesů, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Průvodci Mandriva"
+msgid "Mageia Wizards"
+msgstr "Průvodci nastavením distribuce Mageia"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Průvodci nastavením serverů"
@@ -664,10 +830,10 @@ msgid ""
"An error occurred, but I do not know how to handle it nicely.\n"
"Continue at your own risk."
msgstr ""
-"Stala se chyba, ale nevím, jak jí správně interpretovat.\n"
-"Pokračujte na vlastní riziko."
+"Stala se chyba, ale neví se, jak ji správně vykládat.\n"
+"Pokračujte na vlastní nebezpečí."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -675,215 +841,269 @@ msgid ""
"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
"\"\n"
msgstr ""
-"Některé důležité balíčky nebyly správně nainstalované.\n"
+"Některé důležité balíčky nebyly správně nainstalovány.\n"
"Je možné, že je poškozen CD disk nebo CD-ROM mechanika.\n"
"Zkontrolujete to použitím příkazu \"rpm -qpl media/main/*.rpm\"\n"
#: steps_auto_install.pm:71 steps_stdio.pm:27
#, c-format
msgid "Entering step `%s'\n"
-msgstr "Začínám krok '%s'\n"
+msgstr "Začíná se krok '%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux Instalace %s"
+msgid "%s Installation %s"
+msgstr "%s instalace %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> mezi prvky"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Server Xorg se spouští delší dobu. Prosím počkejte..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"Váš systém má málo systémových prostředků. Při instalaci Mandriva Linuxu se\n"
-"můžete setkat s různými problémy. Pokud se tak stane, zkuste textovou\n"
-"verzi instalačního programu. Ta se spouští tak, že při startu\n"
-"z CD mechaniky stisknete 'F1' a poté napíšete 'text'."
+"Váš systém nemusí mít dostatečné vybavení pro bezproblémovou instalaci %s. V "
+"případě potíží zvolte instalaci v textovém režimu. Pro její spuštění "
+"stiskněte při nabíhání systému z CD klávesu 'F1' a následně napište 'text'."
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Výběr zdrojů"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Instalovat %s pracovní plochu Plasma"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Instalovat %s prostředí GNOME"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Vlastní instalace"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Pracovní plocha Plasma"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "Prostředí GNOME"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Vlastní prostředí"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Zde se nachází náhled pracovního prostředí %s."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Klepněte na obrázky, chcete-li vidět větší náhled"
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Výběr skupiny balíčků"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Výběr jednotlivých balíčků"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Celková velikost: %d / %d MB"
+msgid "Unselect All"
+msgstr "Zrušit celý výběr"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Špatný balíček"
+msgid "Total size: %d / %d MB"
+msgstr "Celková velikost: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Verze: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Velikost: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Důležitost: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Nemůžete vybrat/nevybrat tento balíček"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "protože chybí %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "díky nesplněné závislosti %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "pokus o postoupení %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "aby bylo zachováno %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
-msgstr "Nemůžete vybrat tento balíček, protože pro jeho instalaci není dost místa"
+msgstr ""
+"Nemůžete vybrat tento balíček, protože pro jeho instalaci není dost místa"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Budou instalovány tyto balíčky"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Budou odebrány tyto balíčky"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Toto je povinný balíček, nemůže být odstraněn"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Nemůžete odznačit tento balíček, je už nainstalovaný"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Tento balíček musí být aktualizován, nemůžete ho odznačit"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Ukázat automaticky vybrané balíčky"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Instalovat"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Načíst/Uložit výběr"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
-msgstr "Aktualizuji výběr balíčků"
+msgstr "Aktualizuje se výběr balíčků"
+
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr "Přepnout mezi stromovým a plochým seznamem balíčků"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
-msgstr "Minimální instalace"
+msgstr "Nejmenší instalace"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
-msgstr "Správa software"
+msgstr "Správa softwaru"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Vyberte si balíčky, které chcete nainstalovat"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
-msgstr "Instaluji"
+msgstr "Instalace"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Bez podrobností"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Zbývající čas "
+msgid "Time remaining:"
+msgstr "Zbývající čas:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Odhaduji"
+msgid "(estimating...)"
+msgstr "(odhaduje se...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d balíček"
msgstr[1] "%d balíčky"
msgstr[2] "%d balíčků"
+msgstr[3] "%d balíčků"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Souhrn"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Nastavit"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "nenastaveno"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
@@ -892,106 +1112,111 @@ msgstr ""
"Byla nalezeny následující instalační zdroje.\n"
"Pokud chcete některé z nich vynechat, můžete je nyní odznačit."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
"Máte možnost před instalací zkopírovat obsah CD na pevný disk.\n"
"Instalace pak bude pokračovat z pevného disku a balíčky zůstanou dostupné i "
"poté, co je systém plně nainstalován."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "Kopírovat celá CD"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Stala se chyba"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Vyberte si rozložení vaší klávesnice."
+msgid "Please choose your keyboard layout"
+msgstr "Vyberte si rozložení vaší klávesnice"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Zde je úplný seznam dostupných klávesnic"
+msgid "Here is the full list of available keyboards:"
+msgstr "Zde je úplný seznam dostupných klávesnic:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Instalace/Aktualizace"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Jedná se o instalaci nebo aktualizaci?"
-#: steps_interactive.pm:134
+#: steps_interactive.pm:159
#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Instalace"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Aktualizace %s"
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr "Aktualizace z 32bitové na 64bitovou distribuci není podporována"
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr "Aktualizace ze 64bitové na 32bitovou distribuci není podporována"
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "Šifrovací klíč pro %s"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "Zrušit instalaci, restartovat systém"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "Nastavuji IDE"
+msgid "New Installation"
+msgstr "Nová instalace"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
-"Pro bootstrap není potřebné místo o velikosti 1MB! Instalace může "
-"pokračovat, ale pro spuštění systému musíte vytvořit bootstrap oddíl pomocí "
-"DiskDrake"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Aktualizace předchozí instalace (nedoporučuje se)"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"Je nutné vytvořit zavedení PPC PReP Boot! Instalace může pokračovat, ale pro "
-"zavedení systému musíte vytvořit zaváděcí oddíl pomocí DiskDrake"
+"Instalátor zjistil, že nainstalovaný systém Mageia Linux nemůže \n"
+"být bezpečně povýšen na %s.\n"
+"\n"
+"Proto doporučujeme provést novou instalaci a nahradit tak zcela \n"
+"instalaci původní.\n"
+"\n"
+"Varování: měli byste zálohovat veškerá data před tím, než \n"
+"spustíte \"Novou instalaci.\""
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "Nastavení CD/DVD"
+
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1003,21 +1228,21 @@ msgstr ""
"Prosím vložte CD označené \"%s\" do mechaniky a stiskněte Ok.\n"
"Pokud toto CD nemáte, stiskněte Zrušit a toto CD nebude nainstalováno."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
-msgstr "Hledám dostupné balíčky..."
+msgstr "Hledají se dostupné balíčky..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
"Váš systém nemá dostatek volného místa pro instalaci nebo aktualizaci (%dMB "
"> %dMB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
@@ -1026,140 +1251,186 @@ msgstr ""
"Vyberte si, zda chcete uložit nebo načíst výběr balíčků.\n"
"Formát je stejný jako u souborů generovaných pomocí auto_install."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Načíst"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Uložit"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Chybný soubor"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr "Instalovat pracovní prostředí Mandriva KDE"
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr "Instalovat pracovní prostředí Mandriva GNOME"
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
+#: steps_interactive.pm:459
#, c-format
-msgid "Custom install"
-msgstr "Vlastní instalace"
+msgid "Desktop Selection"
+msgstr "Výběr pracovního prostředí"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
-"Můžete vybrat profil pracovního prostředí na vašem počítači: KDE, GNOME nebo "
-"vlastní"
+msgid "You can choose your workstation desktop profile."
+msgstr "Můžete vybrat profil vašeho pracovního prostředí."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Velikost vybraných balíčků je větší než místo na disku"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Typ instalace"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
"Nevybrali jste žádnou skupinu balíčků.\n"
-"Vyberte si prosím alespoň minimální instalaci:"
+"Vyberte si, prosím, alespoň nejmenší instalaci:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "X prostředí"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Instalovat doporučené balíčky"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Základní dokumentace (doporučeno!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
-msgstr "Opravdu minimální instalace (speciálně bez urpmi)"
+msgstr "Opravdu nejmenší instalace (speciálně bez urpmi)"
+
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Připravuje se povýšení..."
-#: steps_interactive.pm:596
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
-msgstr "Připravuji instalaci"
+msgstr "Připravuje se instalace"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
-msgstr "Instaluji balíček %s"
+msgstr "Instaluje se balíček %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Stala se chyba při řazení balíčků:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Přesto pokračovat?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "Zkusit znovu"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr "Vynechat tento balíček"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr "Vynechat všechny balíčky ze zdroje \"%s\""
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
msgstr "Vrátit se zpět k výběru zdrojů a balíčků"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
msgstr "Při instalaci balíčku %s nastala chyba."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Probíhá nastavování po instalaci"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-"Ujistěte se prosím, že se médium s aktualizovanými moduly nachází v jednotce "
-"%s"
+"Ujistěte se, prosím, že se médium s aktualizovanými moduly nachází v "
+"jednotce %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Aktualizace"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Nyní máte příležitost nastavit internetová média."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Toto dovolí instalaci bezpečnostních aktualizací."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"K nastavení těchto médií budete potřebovat pracující internetové\n"
+"spojení.\n"
+"\n"
+"Chcete nastavit aktualizační média?"
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr "Tento stahovač se nepodařilo nainstalovat"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Opakovat?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Nepodařilo se přidat médium"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1176,153 +1447,104 @@ msgstr ""
"aktualizace nebo opravy chyb.\n"
"\n"
"Chcete-li získat tyto balíčky, musíte mít k dispozici funkční připojení\n"
-"k Internetu.\n"
+"k internetu.\n"
"\n"
"Chcete nainstalovat aktualizace?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Stahuji seznam dostupných balíčků ze zrcadla..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Nelze kontaktovat zrcadlo %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s na %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Hardware"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Zvuková karta"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Máte nějakou zvukovou kartu na ISA sběrnici?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Pro nastavení zvukové karty spusťte po instalaci \"alsaconf\" nebo "
-"\"sndconfig\""
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "Nebyla nalezena zvuková karta. Zkuste spustit po instalaci \"harddrake\"."
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Grafické rozhraní"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
-msgstr "Síť & Internet"
+msgstr "Síť a internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Proxy"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "nastaveno"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Úroveň zabezpečení"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Firewall"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
-msgstr "aktivováno"
+msgstr "zapnuto"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "vypnuto"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
-msgstr "Nemáte nastaveno prostředí X. Chcete jej skutečně ponechat nenastavené?"
-
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "Připravuji zaváděcí program..."
-
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
msgstr ""
-"Zdá se, že máte počítač OldWorld nebo jiný, neznámý, na kterém nebude "
-"zavaděč Yaboot pracovat. Instalace bude pokračovat, ale budete potřebovat "
-"BootX nebo jiný nástroj pro zavedení systému. Parametr jádra pro kořenový "
-"souborový systém je: root=%s"
+"Nemáte nastaveno prostředí X. Chcete jej skutečně ponechat nenastavené?"
-#: steps_interactive.pm:1024
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Chcete použít aboot?"
+msgid "Preparing initial startup program..."
+msgstr "Přípravuje se spouštěcí program..."
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Stala se chyba při instalaci aboot,\n"
-"mám se pokusit o instalaci i když to zruší první oddíl na disku?"
+msgid "Be patient, this may take a while..."
+msgstr "Prosím o strpení, může to chvíli trvat…"
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-"V této úrovní zabezpečení je přístup k souborům na oddíle s Windows omezena "
+"V této úrovní zabezpečení je přístup k souborům na oddíle s Windows omezen "
"pouze na uživatele administrátor."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Vložte prázdnou disketu do %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
-msgstr "Vytvářím disketu pro automatickou instalaci..."
+msgstr "Vytváří se disketa pro automatickou instalaci..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1333,51 +1555,16 @@ msgstr ""
"\n"
"Chcete opravdu nyní skončit?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
-msgstr "Gratulujeme"
+msgstr "Blahopřejeme"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Restartovat"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Vytvořit disketu pro automatickou instalaci"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Instalace může být v případě potřeby plně automatická,\n"
-"ale použije se celý disk!!!\n"
-"(v případě instalace na druhý počítač)\n"
-"\n"
-"Takto lze jednoduše zopakovat instalaci.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Zopakovat"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automaticky"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Uložit výběr jednotlivých balíčků"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1410,7 +1597,7 @@ msgstr "Myš"
msgid ""
"_: Keep these entry short\n"
"Hard drive detection"
-msgstr "Detekce pevných disků"
+msgstr "Zjištění pevných disků"
#: steps_list.pm:21 steps_list.pm:22
#, c-format
@@ -1459,7 +1646,7 @@ msgstr "Výběr balíčků"
msgid ""
"_: Keep these entry short\n"
"Installing"
-msgstr "Instaluji"
+msgstr "Instalace"
#: steps_list.pm:34
#, c-format
@@ -1468,13 +1655,6 @@ msgid ""
"Users"
msgstr "Uživatelé"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Sítě"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1516,4 +1696,3 @@ msgid ""
"_: Keep these entry short\n"
"Exit"
msgstr "Konec"
-
diff --git a/perl-install/install/share/po/cy.po b/perl-install/install/share/po/cy.po
index 9bd1c0bc9..2c8bdb693 100644
--- a/perl-install/install/share/po/cy.po
+++ b/perl-install/install/share/po/cy.po
@@ -1,32 +1,86 @@
-# translation of DrakX-cy.po to Cymraeg
-# Copyright (C) 2003, 2007 Free Software Foundation, Inc.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
-# Rhoslyn Prys <rhoslyn.prys@ntlworld.com>, 2003,2004,2005.
-# Rhoslyn Prys <post@meddal.com>, 2007.
+# Translators:
+# ciaran, 2015-2016
+# Rhoslyn Prys, 2009
+# Rhoslyn Prys <post@meddal.com>, 2007
+# Rhoslyn Prys <rhoslyn.prys@ntlworld.com>, 2003-2005
+# Rhoslyn Prys, 2009
msgid ""
msgstr ""
-"Project-Id-Version: Mandriva Linux\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-09-24 19:54+0100\n"
-"Last-Translator: Rhoslyn Prys <post@meddal.com>\n"
-"Language-Team: Cymraeg\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Welsh (http://www.transifex.com/MageiaLinux/mageia/language/"
+"cy/)\n"
+"Language: cy\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Welsh\n"
-"X-Poedit-Country: UNITED KINGDOM\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"Plural-Forms: nplurals=2; plural=(n == 2) ? 1 : 0;\n"
-"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != "
+"11) ? 2 : 3;\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Ymunwch â ni!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr ""
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "Eich dewis chi!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Offer i'r swyddfa"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Adloniant"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "I blant"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "I'r teulu!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "I ddatblygwyr!"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Diolch!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Byddwch yn rhydd!"
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
msgstr "Oes gennych unrhyw gyfrwng atodol arall?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -34,145 +88,164 @@ msgid ""
"\n"
"Do you have a supplementary installation medium to configure?"
msgstr ""
-"Mae'r cyfrwng yma wedi ei ganfod a byddant yn cael eu defnyddio gyda'r "
-"gosodiad nesaf: %s \n"
+"Canfuwyd y cyfryngau canlynol a chânt eu defnyddio gyda'r gosodiad nesaf: "
+"%s \n"
"\n"
"\n"
"A oes gennych gyfrwng gosod ychwanegol i'w ffurfweddu?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Rhwydwaith (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Rhwydwaith (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Rhwydwaith (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "URL y drych?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "Rhaid i'r URL gychwyn gyda ftp:// neu http://"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr "Cysylltu â safle gwe Mandriva Linux i estyn y rhestr o ddrychau..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Methwyd cysylltu â safle gwe Mandriva Linux i estyn y rhestr o ddrychau"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Dewiswch ddrych lle mae modd estyn y pecynnau"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
-msgstr "Ffurfweddiad NFS"
+msgstr "Gosodiad NFS"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr "Rhowch enw'r gwesteiwr a chyfeiriadur eich cyfrwng NFS"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr "Enw gwesteiwr ar goll"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "Rhaid i gyfeiriadur gychwyn gyda \"/\""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "Enw gwesteiwr arosod NFS?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Cyfeiriadur"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "Atodol"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
msgstr ""
-"Methu canfod ffeil hdlist ar y drych. Gwnewch yn siwr fod y lleoliad yn "
+"Methu canfod ffeil rhestr pecynnau ar y drych. Sicrhewch fod y lleoliad yn "
"gywir."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Edrych ar becynnau wedi eu gosod yn barod..."
+msgid "Core Release"
+msgstr "Rhifyn craidd"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Tynnu pecynnau cyn diweddaru..."
+msgid "Tainted Release"
+msgstr "Rhifyn cymysg"
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Canfod pecynnau i'w uwchraddio..."
+msgid "Nonfree Release"
+msgstr "Rhifyn cyfyng"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"Rydych wedi dewis y gweinydd(wyr) canlynol: %s\n"
-"\n"
-"\n"
-"Mae'r gweinyddion canlynol yn cael eu cychwyn drwy ragosodiad. Does\n"
-"ganddynt unrhyw faterion diogelwch hysbys, ond mae'n bosibl i rai ddod i'r\n"
-"golwg. Os felly rhaid uwchraddio gynted ag y bo modd\n"
-"\n"
-"Ydych chi wir eisiau gosod y gweinyddion hyn?\n"
+"Mae ar galedwedd eich peiriant angen cadarnwedd gyfyng er mwyn i'r gyrwyr "
+"meddalwedd rhydd weithio."
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "Dylech alluogi \"%s\""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "Mae \"%s\" yn cynnwys darnau amrywiol o'r system a'i rhaglenni"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "Mae \"%s\" yn cynnwys meddalwedd gyfyng.\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"Mae hefyd yn cynnwys cadarnwedd sydd ei hangen i rai dyfeisiau weithio (e."
+"e.: rhai cardiau graffeg ATI/AMD, rhai cardiau rhwydwaith, rhai cardiau "
+"RAID, ...)"
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"Mae \"%s\" yn cynnwys meddalwedd na ellir ei dosbarthu ym mhob gwlad o "
+"ganlyniad i batentau ar feddalwedd."
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+"Mae hefyd yn cynnwys meddalwedd o'r adeiladiad \"%s\" gyda galluoedd "
+"ychwanegol. "
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "Yma gallwch alluogi rhagor o gyfryngau os oes angen."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Mae'r cyfrwng hwn yn darparu diweddariadau pecynnau i'r cyfrwng \"%s\""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Wrthi'n edrych ar becynnau a osodwyd eisoes..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Wrthi'n canfod pecynnau i'w huwchraddio..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Wrthi'n tynnu pecynnau cyn diweddaru..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -180,88 +253,92 @@ msgid ""
"\n"
"Do you really want to remove these packages?\n"
msgstr ""
-"Bydd y pecynnau canlynol yn cael eu tynnu i ganiatáu diweddaru eich system: %"
-"s\n"
+"Tynnir y pecynnau canlynol i ganiatáu diweddaru eich system: %s\n"
"\n"
"\n"
-"Ydych chi am dynnu'r pecynnau hyn?\n"
+"Hoffech chi dynnu'r pecynnau hyn?\n"
+
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Gwall darllen ffeil %s"
-#: any.pm:1055
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "Mae'r disg(iau) canlynol wedi eu hailenwi:"
+msgstr "Ailenwyd disg(iau) canlynol:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (ei enw blaenorol oedd %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Rhwydwaith"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "Dewiswch gyfrwng"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Mae'r ffeil yn bodoli eisoes. Ysgrifennu drosti?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
-msgstr "Caniatad wedi ei wrthod."
+msgstr "Dim caniatâd."
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "Enw NFS gwael"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
-msgstr "Cyfrwng gwael %s"
+msgstr "Cyfrwng %s gwael"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
-msgstr "Meth creu lluniau o'r sgrin cyn rhannu"
+msgid "Cannot make screenshots before partitioning"
+msgstr "Meth creu sgrinluniau cyn rhannu"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
-msgstr "Bydd lluniau o'r sgrin ar gael ar ôl gosod yn %s"
+msgstr "Bydd sgrinluniau ar gael ar ôl gosod yn %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Gosod"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
-msgstr "Ffurfweddiad"
+msgstr "Ffurfweddu"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Rhaid fformatio %s hefyd"
@@ -278,385 +355,480 @@ msgstr ""
#: interactive.pm:22
#, c-format
msgid "Bringing up the network"
-msgstr "Cychwyn y rhwydwaith"
+msgstr "Wrthi'n cychwyn y rhwydwaith"
#: interactive.pm:27
#, c-format
msgid "Bringing down the network"
-msgstr "Cau'r rhwydwaith"
+msgstr "Wrthi'n cau'r rhwydwaith"
+
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr "Arhoswch, wrthi'n estyn ffeil"
-#: media.pm:703 media.pm:714
+#: media.pm:704
#, c-format
-msgid "Downloading file %s..."
-msgstr "Llwytho ffeil %s..."
+msgid "unable to add medium"
+msgstr "methu ychwanegu cyfrwng"
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
-msgstr "Copïo rhai pecynnau ar ddisg ar gyfer defnydd yn y dyfodol"
+msgstr "Wrthi'n copïo rhai pecynnau ar ddisg ar gyfer defnydd yn y dyfodol"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Wrthi'n copïo..."
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "rhaid cael"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "pwysig"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "hyfryd iawn"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "hyfryd"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "efallai"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "Wrthi'n estyn gwybodaeth am becyn o fetadata XML..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Dim gwybodaeth xml ar gyfer y cyfrwng \"%s\", dim ond canlyniad rhannol ar "
+"gyfer pecyn %s"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Dim disgrifiad"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"Nid yw'n bosib gosod rhai pecynnau gofynnwyd gan %s:\n"
+"%s"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "Gweithfan"
+msgid "An error occurred:"
+msgstr "Cododd gwall:"
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Gweithfan Swyddfa"
+msgid "A fatal error occurred: %s."
+msgstr "Cododd gwall terfynol:%s."
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
-msgstr ""
-"Rhaglenni swyddfa: prosesydd geiriau (OpenOffice.org Writer, Kword), "
-"taenlenni (OpenOffice.org Calc, Kspread), ddarllenydd pdf, ag ati"
+msgid "Do not ask again"
+msgstr "Peidio â gofyn eto"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "Methodd trafod gosod %d"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Methodd gosod pecynnau:"
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "Gweithfan"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Gweithfan wyddfa"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Rhaglenni swyddfa: prosesydd geiriau (Kword, abiword), taenlenni (kspread, "
-"gnumeric), ddarllenydd pdf, ag ati"
+"Rhaglenni swyddfa: prosesydd geiriau (LibreOffice Writer, Kword), taenlenni "
+"(LibreOffice Calc, Kspread), ddarllenydd pdf, ac ati"
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Man chwarae"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "Rhaglenni difyrrwch: arcêd, gemau bwrdd, strategaeth, ag ati"
+msgstr "Rhaglenni difyrrwch: arcêd, gemau bwrdd, strategaeth, ac ati"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
-msgstr "Man aml-gyfrwng"
+msgstr "Man amlgyfrwng"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
-msgstr "Chwarae sain a fideo/rhaglenni golygu"
+msgstr "Rhaglenni chwarae/golygu sain a fideo"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
-msgstr "Man Rhyngrwyd"
+msgstr "Man rhyngrwyd"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-"Casgliad o offer i ddarllen ac anfon e-bost a newyddion (mutt, tin..) ac i "
-"bori'r We"
+"Casgliad o offer i ddarllen ac anfon e-byst a newyddion (mutt, tin..) ac i "
+"bori'r we"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
-msgstr "Cyfrifiadur Rhwydwaith (cleient)"
+msgstr "Cyfrifiadur rhwydwaith (cleient)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
-msgstr "Cleientiaid ar gyfer protocolau amrywiol yn cynnwys ssh"
+msgstr "Cleientiaid ar gyfer protocolau amrywiol gan gynnwys ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
-msgstr "Offer i wneud ffurfweddu'ch cyfrifiadur yn haws"
+msgstr "Offer i ffurfweddu'ch cyfrifiadur yn haws"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
-msgstr "Offer y Consol"
+msgstr "Offer y consol"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Golygyddion, cregyn, offer ffeilio, terfynellau"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
-msgstr "Datblygiad"
+msgstr "Datblygu"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
-msgstr "Llyfrgelloedd datblygiadol C a C++, rhaglenni a ffeiliau cynnwys"
+msgstr "Llyfrgelloedd datblygu C a C++, rhaglenni a ffeiliau cynnwys"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
-msgstr "Dogfennau"
+msgstr "Dogfennaeth"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
-msgstr "Llyfrau a Howto's ar Linux a Meddalwedd Rhydd"
+msgstr "Llyfrau a chanllawiau ar gyfer Linux a meddalwedd rydd"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Linux Standard Base. Cefnogaeth i raglenni trydydd parti"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
-msgstr "Gweinydd Gwe"
+msgstr "Gweinydd gwe"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
-msgstr "Grwpwar"
+msgstr "Cylchwedd"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Gweinydd Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
-msgstr "Mur Gwarchod/Llwybrydd"
+msgstr "Mur gwarchod/llwybrydd"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Porth i'r rhyngrwyd"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
-msgstr "E-bost/Newyddion"
+msgstr "E-bost/newyddion"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Gweinydd e-bost Postfix, gweinydd newyddion Inn"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
-msgstr "Cyfeiriadur Gweinydd"
+msgstr "Gweinydd cyfeiriaduron"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "Gweinydd FTP"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "Gweinydd Enw Parth a Gwybodaeth Rhwydwaith"
+msgstr "Gweinydd enw parth a gwybodaeth rhwydwaith"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
-msgstr "Gweinydd Ffeil a Rhannu Argraffydd"
+msgstr "Gweinydd rhannu ffeiliau ac argraffyddion"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "Gweinydd NSF, gweinydd Samba"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Cronfa Ddata"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "Gweinydd cronfa data PostgreSQL neu MySQL"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "Gweinydd CronfaDdata PostgreSQL a MariaDB"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Gwe/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "E-bost"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Gweinydd e-bost Postfix"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "Gweinydd cronfa data PostgreSQL neu MySQL"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "Gweinydd cronfa data PostgreSQL neu MariaDB"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
-msgstr "Gweinydd Cyfrifiadur Rhwydwaith"
+msgstr "Gweinydd cyfrifiadur rhwydwaith"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "Gweinydd NFS, gweinydd SMB, gweinydd dirprwyol, gweinydd ssh"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
-msgstr "Amgylchedd Graffig"
+msgstr "Amgylchedd graffig"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "Man Gwaith KDE"
+msgid "Plasma Workstation"
+msgstr "Gweithfan Plasma"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr ""
-"KDE - Amgylchedd Bwrdd gwaith K, yr amgylchedd graffig sylfaenol gyda "
-"chasgliad o offer"
+"KDE - amgylchedd bwrdd gwaith K, yr amgylchedd graffigol sylfaenol a chanddo "
+"gasgliad o offer"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
-msgstr "Man Gwaith Gnome"
+msgstr "Gweithfan Gnome"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr ""
-"Amgylchedd graffig gyda chasgliad o raglenni ac offer bwrdd gwaith hawdd eu "
-"defnyddio."
+"Amgylchedd graffigol a chanddo gasgliad o raglenni ac offer bwrdd gwaith "
+"hawdd eu defnyddio."
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Amgylchedd graffigol ysgafn a chanddo gasgliad o raglenni ac offer bwrdd "
+"gwaith hawdd eu defnyddio"
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "Gweithfan MATE"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Gweithfan Cinnamon"
+
+#: share/meta-task/compssUsers.pl:175
#, c-format
-msgid "IceWm Desktop"
-msgstr "Bwrdd Gwaith IceWm"
+msgid "A graphical environment based on GNOME"
+msgstr "Amgylchedd graffigol sy'n seiliedig ar GNOME"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "Bwrdd gwaith LXQt"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "Porth QT y genhedlaeth nesaf o'r amgylchedd bwrdd gwaith ysgafn"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+"Amgylchedd graffigol ysgafn a chyflym a chanddo grŵp o ddefnyddwyr ymroddedig"
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "Bwrdd Gwaith LXDE"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Amgylchedd graffigol ysgafn a chyflym"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Byrddau Gwaith Graffigol Eraill"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm, ag ati"
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, ac ati"
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Gwasanaethau"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "Gweinydd SSH"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Gweinydd Ffurfweddiad Pell Webmin"
+msgstr "Gweinydd ffurfweddu pell Webmin"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Gwasanaethau Rhwydwaith/Monitro"
+msgstr "Gwasanaethau/monitro rhwydwaith"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "Offer monitro, cyfrifo prosesau, tcpdunp, nmap..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Dewiniaid Mandriva"
+msgid "Mageia Wizards"
+msgstr "Dewiniaid Mageia"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
-msgstr "Dewiniaid i ffurfweddu gweinydd"
+msgstr "Dewiniaid ffurfweddu gweinyddion"
#: steps.pm:85
#, c-format
@@ -667,7 +839,7 @@ msgstr ""
"Digwyddodd gwall ond wn i ddim sut i ddelio ag ef yn dwt.\n"
"Mae'n beryglus i barhau."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -687,311 +859,370 @@ msgstr "Cychwyn cam '%s\"\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Gosod %s Mandriva Linux"
+msgid "%s Installation %s"
+msgstr "Gosod %s %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> rhwng elfennau"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Mae gweinydd Xorg yn araf ei gychwyn. Arhoswch..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
"Mae eich system yn brin o adnoddau. Efallai bod gennych broblem wrth osod\n"
-"Mandriva Linux. Os yw hynny'n digwydd, defnyddiwch y gosod testun yn lle\n"
+"%s. Os yw hynny'n digwydd, defnyddiwch y gosod testun yn lle\n"
"hynny. I wneud hynny pwyswch 'F1' wrth gychwyn ar CD-ROM, ac yna teipio "
"'text'."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Dewis cyfrwng"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Gosod bwrdd gwaith %s Plasma"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Gosod bwrdd gwaith %s GNOME"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Gosodiad addasu"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Bwrdd gwaith Plasma"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "Bwrdd gwaith GNOME"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Bwrdd gwaith addasedig"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Dyma ragolwg o fwrdd gwaith '%s'."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Cliciwch ar y delweddau i weld y rhagolwg yn fwy"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
-msgstr "Dewis Grŵp y Pecyn"
+msgstr "Dewis grŵp o becynnau"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
-msgstr "Dewis pecynnau unigol."
+msgstr "Dewis pecynnau unigol"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Cyfanswm maint: %d/%d MB"
+msgid "Unselect All"
+msgstr "Dad-ddewis popeth"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Pecyn gwallus"
+msgid "Total size: %d / %d MB"
+msgstr "Maint cyfan: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Fersiwn:"
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Maint:"
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Pwysigrwydd: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Does dim modd i chi ddewis/dad-ddewis y pecyn"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "oherwydd %s coll"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "oherwydd %s annigonol"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "ceisio hyrwyddo %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "er mwyn cadw %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr "Nid oes modd i chi ddewis y pecyn hwn - does dim lle ar ôl i'w osod"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
-msgstr "Mae'r pecynnau canlynol i'w gosod"
+msgstr "Gosodir y pecynnau canlynol"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
-msgstr "Bydd y pecynnau canlynol yn cael eu tynnu"
+msgstr "Tynnir y pecynnau canlynol"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
-msgstr "Mae hwn yn becyn hanfodol, does dim modd ei ddad-ddewis"
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr "Pecyn hanfodol yw hwn, does dim modd ei ddad-ddewis"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Does dim mod dad-ddewis y pecyn, mae wedi ei osod yn barod"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
-msgstr "Does dim mod dad-ddewis y pecyn hwn. Rhaid ei uwchraddio"
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr "Does dim mod dad-ddewis y pecyn hwn. Rhaid ei ddiweddaru"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Dangoswch y pecynnau dewis awtomatig"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Gosod"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
-msgstr "Llwytho/Cadw'r dewis"
+msgstr "Llwytho/cadw'r dewis"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
-msgstr "Uwchraddio'r dewis o becynnau"
+msgstr "Diweddaru'r dewis o becynnau"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Gosodiad lleiaf"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
-msgstr "Rheoli Meddalwedd"
+msgstr "Rheoli meddalwedd"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Dewiswch y pecynnau yr hoffech chi eu gosod"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Gosod"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Dim manylion"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Amser yn weddill"
+msgid "Time remaining:"
+msgstr "Amser ar ôl:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Amcangyfrif"
+msgid "(estimating...)"
+msgstr "(amcangyfrif...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d pecyn"
-msgstr[1] "%d pecyn"
+msgstr[1] "%d becyn"
+msgstr[2] "%d o becynnau"
+msgstr[3] "%d o becynnau"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Crynodeb"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Ffurfweddu"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "heb ffurfweddu"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-"Mae'r cyfrwng gosod canlynol wedi ei ganfod.\n"
+"Canfuwyd y cyfryngau gosod canlynol.\n"
"Os hoffech hepgor rhai ohonynt, dad-ddewiswch nhw nawr."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-"Mae gennych y dewis i gopïo cynnwys y CD ar i'r disg caled cyn gosod "
-"Mandriva Linux.\n"
+"Gallwch gopïo cynnwys y CD i'r disg caled cyn gosod Mageia Linux.\n"
"Bydd yna'n parhau o'r disg caled a bydd y pecynnau ar gael unwaith i'r "
-"system gael ei osod yn gyflawn."
+"system gael ei gosod yn gyflawn."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
-msgstr "Copïo'r CDau cyfan"
+msgstr "Copïo'r CDs cyfan"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
-msgstr "Digwyddodd gwall"
+msgstr "Cododd gwall"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Dewiswch gynllun eich bysellfwrdd."
+msgid "Please choose your keyboard layout"
+msgstr "Dewiswch gynllun eich bysellfwrdd"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Dyma restr lawn o'r bysellfyrddau sydd ar gael"
+msgid "Here is the full list of available keyboards:"
+msgstr "Dyma restr lawn o'r bysellfyrddau sydd ar gael:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
-msgstr "Gosod/Diweddaru"
+msgstr "Gosod/diweddaru"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
-msgstr "Gosod neu uwchraddio?"
+msgstr "Gosod neu ddiweddaru?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Gosod"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
-msgstr "Uwchraddio %s"
+msgstr "Diweddaru %s"
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "Allwedd amgryptio ar gyfer %s"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
+#, c-format
+msgid "Cancel installation, reboot system"
+msgstr "Atal y gosod, ailgychwyn y system"
+
+#: steps_interactive.pm:218
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "New Installation"
+msgstr "Gosodiad newydd"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "Configuring IDE"
-msgstr "Ffurfweddu IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Diweddaru'r gosodiad blaenorol (argymell i beidio)"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"Nid oes lle rhydd ar gyfer yr ymlwythwr 1MB! Bydd y gosod yn parhau, ond i "
-"gychwyn y system bydd rhaid i chi greu rhaniad ymlwythwr yn DiskDrake"
+"Mae'r gosodwr wedi canfod na ellir uwchraddio\n"
+"eich system Linux i %s yn ddiogel.\n"
+"\n"
+"Argymhellir disodli eich system gyda gosodiad newydd.\n"
+"\n"
+"Rhybudd : dylech gadw copi wrth gefn o'ch holl ddata personol cyn dewis\n"
+"\"Gosodiad newydd\"."
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+msgid "CD/DVD"
+msgstr "CD/DVD"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
msgstr ""
-"Bydd angen i chi greu llwythwr mwdwl PPC PReP Boot! Bydd y gosod yn parhau, "
-"ond i gychwyn y system bydd rhaid i chi greu rhaniad ymlwythwr yn DiskDrake"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1003,21 +1234,21 @@ msgstr ""
"Rhowch y CD-ROM \"%s\" yn eich gyrrwr a chlicio Iawn ar ôl gorffen\n"
"Os nad yw gennych, cliciwch Diddymu i beidio a gosod o'r CD-ROM."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Casglu'r pecynnau sydd ar gael..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-"Nid oes gan eich system ddigon o le ar gyfer gosod neu uwchraddio (%dMB > %"
-"dMB)"
+"Nid oes gan eich system ddigon o le ar gyfer gosod neu ddiweddaru (%dMB > "
+"%dMB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
@@ -1026,137 +1257,185 @@ msgstr ""
"Dewiswch lwytho neu gadw pecyn dewiswyd.\n"
"Mae'r fformat yr un â ffeiliau cynhyrchwyd drwy auto_install."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
-msgstr "Llwyth"
+msgstr "Llwytho"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
-msgstr "Gorffen"
+msgstr "Cadw"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
-msgstr "Ffeil gwael"
+msgstr "Ffeil wael"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr "Gosod Bwrdd Gwaith Mandriva KDE"
+msgid "Plasma"
+msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr "Gosod Bwrdd Gwaith Mandriva GNOME"
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
+#: steps_interactive.pm:459
#, c-format
-msgid "Custom install"
-msgstr "Gosodiad addasu"
+msgid "Desktop Selection"
+msgstr "Dewis bwrdd gwaith"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
-"Gallwch ddewis proffil bwrdd gwaith eich man gwaith: KDR, GNOME neu Addasu"
+msgid "You can choose your workstation desktop profile."
+msgstr "Dewiswch broffil bwrdd gwaith eich gweithfan."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Mae'r maint a ddewiswyd yn fwy na'r lle ar gael"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
-msgstr "Math o osod"
+msgstr "Math o osodiad"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
-"Nid ydych wedi dewis unrhyw grwpiau o becynnau.\n"
+"Nid ydych wedi dewis grwpiau o becynnau.\n"
"Dewiswch y gosod lleiaf rydych ei eisiau"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
-msgstr "Gyda X"
+msgstr "Gydag X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Gosod pecynnau a argymhellir"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Gyda dogfennau elfennol (argymell!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Gosod bach iawn (yn arbennig dim urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Wrthi'n paratoi i uwchraddio..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
-msgstr "Paratoi'r gosod"
+msgstr "Wrthi'n paratoi i osod"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
-msgstr "Gosod pecyn %s"
+msgstr "Wrthi'n gosod y pecyn %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
-msgstr "Roedd gwall wrth drefnu pecynnau:"
+msgstr "Bu gwall trefnu pecynnau:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
-msgstr "Mynd yn ein blaen beth bynnag?"
+msgstr "Mynd yn eich blaen beth bynnag?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
-msgstr "Ceisio Eto"
+msgstr "Ceisio eto"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr "Hepgor y pecyn"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
-msgstr "Hepgor pob pecyn o gyfrwng \"%s\""
+msgstr "Hepgor pob pecyn o'r cyfrwng \"%s\""
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
-msgstr "Mynd yn ôl at ddewis cyfrwng a phecyn"
+msgstr "Dychwelyd i ddewis cyfryngau a phecynnau"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
-msgstr "Digwyddodd gwall wrth osod pecyn: %s."
+msgstr "Cododd gwall wrth osod pecyn: %s."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
-msgstr "Ffurfweddiad ôl osod"
+msgstr "Ffurfweddu ar ôl gosod"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
-msgstr "Gwnewch yn siŵr fod cyfrwng Diweddaru Modiwlau yng ngyrrwr %s"
+msgstr "Sicrhewch fod y cyfrwng diweddaru modiwlau yn y gyrrwr %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
-msgstr "YUwchraddio"
+msgstr "Diweddaru"
+
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Cewch osod cyfryngau ar lein."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Mae hyn yn caniatáu gosod diweddariadau diogelwch."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"I osod y cyfryngau hynny, rhaid i chi cael \n"
+"cysylltiad i'r \n"
+"we.\n"
+"\n"
+"Hoffech chi osod y cyfryngau diweddaru?"
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Gosodir y pecynnau canlynol"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Ceisio eto?"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Methu ychwanegu cyfrwng"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1177,149 +1456,99 @@ msgstr ""
"\n"
"Ydych chi am osod y diweddariadau?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Cysylltu â'r drych i estyn y rhestr o becynnau sydd ar gael..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Methu canfod drych: %s."
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s ar %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Caledwedd"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Cerdyn sain"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "A oes gennych gerdyn sain ISA?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Rhedwch \"alsaconf\" neu \"sndconfig\" wedi'r gosodiad i ffurfweddu eich "
-"cerdyn sain"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "Heb ganfod cerdyn sain. Ceisiwch \"harddrake\" wedi'r gosodiad"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Rhyngwyneb graffigol"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
-msgstr "Rhwydwaith a'r Rhyngrwyd"
+msgstr "Rhwydwaith a'r rhyngrwyd"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Dirprwyon"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "ffurfweddwyd"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
-msgstr "Lefel Diogelwch"
+msgstr "Lefel diogelwch"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
-msgstr "Mur Cadarn"
+msgstr "Mur gwarchod"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
-msgstr "gweithredwyd"
+msgstr "bywiogwyd"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
-msgstr "anablwyd"
+msgstr "analluogwyd"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "Nid ydych wedi ffurfweddu X. Ydych chi'n siŵr eich bod am wneud hyn?"
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "Paratoi cychwynnwr..."
-
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"Mae'n ymddangos fod gennych beiriant OldWorld neu Anhysbys ac ni fydd "
-"cychwynnydd yaboot yn gweithio ar eich cyfer Bydd y gosodiad yn parhau ond "
-"bydd rhaid defnyddio BootX i gychwyn eich peiriant. Ymresymiad y cnewyllyn "
-"ar gyfer y gwraidd yw: root=%s"
-
-#: steps_interactive.pm:1024
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Ydych chi eisiau defnyddio aboot?"
+msgid "Preparing initial startup program..."
+msgstr "Wrthi'n paratoi'r rhaglen cychwyn..."
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Gwall gosod aboot, \n"
-"ceisiwch orfodi gosodiad hyd yn oed os yw hynny'n dinistrio'r rhaniad cyntaf?"
+msgid "Be patient, this may take a while..."
+msgstr "Amynedd, gall hyn gymryd amser..."
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-"Ar y lefel diogelwch yma, mae mynedfa i ffeiliau yn rhaniad Windows wedi eu "
-"cyfyngu i'r Gweinyddwr."
+"Ar y lefel diogelwch yma, cyfyngir mynediad at ffeiliau yn y rhaniad Windows "
+"i'r gweinyddwr."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Rhowch ddisg meddal yng ngyrrwr %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Creu disg meddal awto gosod..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1328,54 +1557,18 @@ msgid ""
msgstr ""
"Nid yw rhai camau wedi eu cwblhau.\n"
"\n"
-"Ydych chi wir eisiau gorffen?"
+"Ydych chi wir eisiau gadael yn awr?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Llongyfarchiadau"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Ailgychwyn"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Creu disg meddal awto gosod"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Mae modd awtomeiddio'r awto gosod, os hoffech\n"
-"chi, yn yr achos hwnnw bydd yn cymryd drosodd y\n"
-"disg caled!!\n"
-"(mae hyn ar gyfer gosod ar flwch arall).\n"
-"\n"
-"Efallai byddai'n well gennych ai osod y gosodiad.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Ail chwarae"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Awtomeiddwyd"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Cadw'r dewis becynnau"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1466,13 +1659,6 @@ msgid ""
"Users"
msgstr "Defnyddwyr"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Rhwydweithio"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1506,124 +1692,31 @@ msgstr "Gwasanaethau"
msgid ""
"_: Keep these entry short\n"
"Updates"
-msgstr "Uwchraddio"
+msgstr "Diweddaru"
#: steps_list.pm:48
#, c-format
msgid ""
"_: Keep these entry short\n"
"Exit"
-msgstr "Gorffen"
-
-#~ msgid "All"
-#~ msgstr "Popeth"
-
-#~ msgid "TV card"
-#~ msgstr "Cerdyn Teledu"
-
-#~ msgid "Boot"
-#~ msgstr "Cychwyn"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Dilysu"
-
-#~ msgid "Arkeia"
-#~ msgstr "Arkeia"
-
-#~ msgid "Flatout"
-#~ msgstr "Flatout"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "3D"
-#~ msgstr "3D"
-
-#~ msgid "CMS"
-#~ msgstr "CMS"
-
-#~ msgid "CRM"
-#~ msgstr "CRM"
-
-#~ msgid "2007 product line"
-#~ msgstr "Cynnyrch 2007"
-
-#~ msgid "Invictus Firewall"
-#~ msgstr "Mur Cadarn Invictus"
-
-#~ msgid "Discovery Live Mode"
-#~ msgstr "Modd Byw Discovery"
-
-#~ msgid "How to register"
-#~ msgstr "Sut i gofrestru"
-
-#~ msgid "Rpmdrake 2"
-#~ msgstr "Rpmdrake 2"
+msgstr "Gadael"
-#~ msgid "Mandriva Online Services"
-#~ msgstr "Mandriva Online Services"
-
-#~ msgid "New Theme"
-#~ msgstr "Thema Newydd"
-
-#~ msgid "Web 2.0"
-#~ msgstr "Web 2.0"
-
-#~ msgid "Kaspersky"
-#~ msgstr "Kaspersky"
-
-#~ msgid "LinDVD"
-#~ msgstr "LinDVD"
-
-#~ msgid "Skype"
-#~ msgstr "Skype"
-
-#~ msgid "Transgaming/Cedega"
-#~ msgstr "Transgaming/Cedega"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "(%d pecyn, %d MB)"
-#~ msgstr[1] "(%d pecyn, %d MB)"
-
-#~ msgid "%d packages"
-#~ msgstr "%d pecyn"
-
-#~ msgid "Language"
-#~ msgstr "Iaith"
-
-#~ msgid "License"
-#~ msgstr "Trwydded"
-
-#~ msgid "Installation class"
-#~ msgstr "Dosbarth gosod"
-
-#~ msgid "Formatting"
-#~ msgstr "Fformatio"
-
-#~ msgid "Choosing packages"
-#~ msgstr "Dewis pecynnau"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "URL y drych?"
-#~ msgid "Users"
-#~ msgstr "Defnyddwyr"
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "Rhaid i'r URL gychwyn gyda ftp:// neu http://"
-#~ msgid "Networking"
-#~ msgstr "Rhwydweithio"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr "Wrthi'n cysylltu â gwefan %s i estyn y rhestr o ddrychau..."
-#~ msgid "Configure X"
-#~ msgstr "Ffurfweddu X"
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
+#~ msgstr "Methwyd cysylltu â gwefan %s i estyn y rhestr o ddrychau"
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
-#~ msgstr ""
-#~ "Methu cael mynediad i modiwlau'r cnewyllyn sy'n cyfateb i'ch cnewyllyn "
-#~ "chi (mae ffeil %s ar goll), mae hyn yn golygu, fel arfer, nad yw eich "
-#~ "disg cychwyn yn cydweddu gyda'r cyfrwng Gosod (crëwch ddisg cychwyn "
-#~ "meddal newydd)"
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Dewiswch ddrych i estyn y pecynnau wrtho"
diff --git a/perl-install/install/share/po/da.po b/perl-install/install/share/po/da.po
index 0f789f06b..81487c644 100644
--- a/perl-install/install/share/po/da.po
+++ b/perl-install/install/share/po/da.po
@@ -1,33 +1,83 @@
-# translation of da.po to
-# translation of da1.po to Danish
-# translation of da.po to Danish
-# translation of DrakX-da.po to Danish
-# Copyright (C) 2000,2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# Troels Liebe Bentsen <tlb@iname.com> 2000.
-# Keld Simonsen <keld@dkuug.dk>, 2000-2003, 2004, 2005.
-# Keld Simonsen <keld@rap.dk>, 2005, 2006.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Keld Simonsen <keld@dkuug.dk>, 2000-2003, 2004-2005,2007-2009
+# Keld Simonsen <keld@rap.dk>, 2005-2006,2010
+# scootergrisen, 2017-2018
msgid ""
msgstr ""
-"Project-Id-Version: da\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2006-10-01 16:31+0200\n"
-"Last-Translator: Keld Simonsen <keld@rap.dk>\n"
-"Language-Team: <da@li.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: scootergrisen\n"
+"Language-Team: Danish (http://www.transifex.com/MageiaLinux/mageia/language/"
+"da/)\n"
+"Language: da\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.10.2\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Vær med!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Gør den din!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "Dit valg!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Kontorværktøjer"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Hjemmeunderholdning"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "Til børn"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "Til familjen!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "Til udviklere!"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Tak!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Vær fri!"
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
msgstr "Har du andre supplerende medier?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -35,145 +85,162 @@ msgid ""
"\n"
"Do you have a supplementary installation medium to configure?"
msgstr ""
-"De følgende medier er fundet og vil blive brugt ved installeringen: %s.\n"
+"Følgende medier er fundet og vil blive brugt ved installeringen: %s.\n"
"\n"
"\n"
-"Har du et supplerende installationsmedium, der skal konfigureres?"
+"Har du et supplerende installationsmedie, der skal konfigureres?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "Cd-rom"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Netværk (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Netværk (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Netværk (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "URL på spejlet?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "URL skal starte med ftp:// eller http://"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Kontakter Mandriva Linux netsted for at hente listen over tilgængelige spejle"
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Mislykkedes med at kontakte Mandriva Linux netsted for at hente listen over "
-"tilgængelige spejle"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Vælg det spejl hvorfra pakkerne skal hentes"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "NFS-opsætning"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr "Indtast værtsnavn og katalog for dit NFS-medie"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
-msgstr ""
+msgstr "Værtsmaskinenavn mangler"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
-msgstr ""
+msgstr "Katalog skal begynde med \"/\""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "Værtsnavn på NFS-monteringen?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Katalog"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
-msgstr ""
+msgstr "Supplerende"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
-msgstr "Kan ikke finde hdlist-fil på dette spejl"
+msgstr ""
+"Kan ikke finde en pakkelistefil på dette spejl. Kontrollér at placeringen er "
+"korrekt."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Leder efter pakker der allerede er installeret..."
+msgid "Core Release"
+msgstr "Core-udgivelse"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Fjerner pakker før opgradering..."
+msgid "Tainted Release"
+msgstr "Tainted-udgivelse"
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Leder efter pakker som skal opgraderes"
+msgid "Nonfree Release"
+msgstr "Nonfree-udgivelse"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"Du har valgt følgende servere: %s\n"
-"\n"
-"\n"
-"Disse servere er aktiveret som standard. De har ingen kendte "
-"sikkerhedsproblemer, men nogen nye kan blive fundet. I så tilfælde skal du "
-"opgradere så snart som mulig.\n"
-"\n"
-"\n"
-"Ønsker du virkelig at installere disse servere?\n"
+"Noget hardware på din maskine behøver nogle ikke-frie firmwares for at de "
+"frie softwaredrivere skal kunne virke."
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "Du bør aktivere \"%s\""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "\"%s\" indeholder de forskellige dele af systemet og dets programmer"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "\"%s\" indeholder ikke-fri software.\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"Det indeholder også firmware som er nødvendige for at bestemte enheder kan "
+"fungere (eksempelvis: nogle ATI-/AMD-grafikkort, nogle netværkskort, nogle "
+"RAID-kort, ...)"
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"\"%s\" indeholder software som ikke kan distribueres i alle lande pga. "
+"softwarepatenter."
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+"Det indeholder software fra \"%s\"-genbygning med yderligere formåenheder."
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "Her kan du aktivere flere medier hvis du vil."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Dette medie leverer pakkeopdateringer til mediet \"%s\""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Leder efter pakker der allerede er installeret..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Leder efter pakker som skal opgraderes..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Fjerner pakker før opgradering..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -181,87 +248,92 @@ msgid ""
"\n"
"Do you really want to remove these packages?\n"
msgstr ""
-"De følgende pakker vil blive fjernet for at kunne opdatere systemet: %s\n"
+"Følgende pakker vil blive fjernet for at kunne opdatere systemet: %s\n"
"\n"
"\n"
"Ønsker du virkelig at fjerne disse pakker?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Fejl ved læsning af filen %s"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "De følgende diske blev omdøbt:"
+msgstr "Følgende diske blev omdøbt:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (tidligere kaldet %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Netværk"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "Vælg et medie"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "Fil eksisterer allerede. Skal den overskrives?"
+msgstr "Fil findes allerede. Skal den overskrives?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Adgang nægtet"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "Dårligt NFS-navn"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "Dårligt medie %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Kan ikke lave øjebliksbilleder før partitionering"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Øjebliksbilleder vil være tilgængelige efter installation i %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Installation"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Konfiguration"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Du skal også formatere %s"
@@ -272,7 +344,7 @@ msgid ""
"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
"You can find some information about them at: %s"
msgstr ""
-"Noget maskinel på din maskine skal bruge ''proprietære'' drivere for at "
+"Noget hardware på din maskine skal bruge ''proprietære'' drivere for at "
"virke.\n"
"Du kan finde information om dem hos: %s"
@@ -286,373 +358,465 @@ msgstr "Bringer netværket op"
msgid "Bringing down the network"
msgstr "Lukker netværket ned"
-#: media.pm:703 media.pm:714
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr "Vent venligst, henter fil"
+
+#: media.pm:704
#, c-format
-msgid "Downloading file %s..."
-msgstr "Henter filen %s..."
+msgid "unable to add medium"
+msgstr "kan ikke tilføje medie"
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr "Kopierer nogle pakker til disk til fremtidig brug"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Kopiering udføres"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
-msgstr "skal have"
+msgstr "nødvendigt"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "vigtigt"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "meget rart"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "rart"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "måske"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "Henter pakkeinformation fra XML-metadata..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr "Ingen xml-info for mediet \"%s\", kun delvist resultat for pakken %s"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Ingen beskrivelse"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"Visse pakker forespurgt af %s kan ikke installeres:\n"
+"%s"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "Arbejdsstation"
+msgid "An error occurred:"
+msgstr "Der opstod en fejl:"
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Kontor-arbejdsstation"
+msgid "A fatal error occurred: %s."
+msgstr "En fatal fejl skete: %s."
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
-msgstr ""
-"Kontor-programmer: Tekstbehandling (OpenOffice.org, kword, abiword), "
-"regneark (OpenOffice.org, kspread, gnumeric), pdf-visere, o.lign."
+msgid "Do not ask again"
+msgstr "Spørg ikke igen"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d installationstransaktioner mislykkedes"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Installation af pakker mislykkedes:"
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "Arbejdsmaskine"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Kontor-arbejdsmaskine"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Kontor-programmer: Tekstbehandler (kword, abiword), regneark (kspread, "
-"gnumeric), pdf-visere, o.lign."
+"Kontor-programmer: Tekstbehandling (LibreOffice tekstbehandler, Kword), "
+"regneark (LibreOffice Regneark, Kspread ), PDF-visere, osv."
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Spillemaskine"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Underholdnings-programmer: arkade, bræt, strategi, osv."
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
-msgstr "Multimedie-station"
+msgstr "Multimediecenter"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
-msgstr "Lyd- og video-afspillere og redigeringsværktøjer"
+msgstr "Programmer til afspilning og redigering af lyd og video"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
-msgstr "Internet-station"
+msgstr "Internet-computer"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-"Værktøjssæt til at læse samt sende post og nyheder (mutt, tin..) , og til at "
+"Værktøjssæt til at læse samt sende post og nyheder (mutt, tin..), og til at "
"browse på nettet"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Netværksmaskine (klient)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
-msgstr "Klienter for forskellige protokoller inklusiv ssh"
+msgstr "Klienter for forskellige protokoller inklusive ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Værktøjer til at lette indstillingen af din maskine"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Konsolværktøjer"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Redigeringsværktøjer, skaller, filværktøjer, terminaler"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Udvikling"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
-msgstr "C og C++ udviklingsbiblioteker, programmer, og include-filer."
+msgstr "Biblioteker, programmer og include-filer til udvikling i C og C++"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Dokumentation"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
-msgstr "Bøger og vejledninger om Linux og Frit Programmel"
+msgstr "Bøger og vejledninger om Linux og fri software"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Linux Standard Base. Understøttelse for tredjeparts-programmer"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Webserver"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
-msgstr "Gruppeprogrammel"
+msgstr "Groupware"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Kolab-server"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Brandmur/ruter"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
-msgstr "Internetadgang"
+msgstr "Internet-adgangspunkt"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "Post og nyheder"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Postfix postserver, inn nyhedsserver"
+msgstr "Postfix-postserver, Inn-nyhedsserver"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Katalogserver"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP-server"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "Server for domænenavne (DNS) og netværksinformation (NIS)"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "Fil- og Printerdelings-server"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "NFS-server, Samba-server"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Database"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL og MySQL database-server"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "PostgreSQL- og MariaDB-databaseserver"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache og Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Post"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
-msgstr "Postfix postserver"
+msgstr "Postfix-postserver"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL eller MySQL database-server"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL- eller MariaDB-databaseserver"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
-msgstr "Netværksmaskine server"
+msgstr "Netværksmaskine-server"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "NFS-vært, SMB-vært, mellemvært (proxy), SSH-vært"
+msgstr "NFS-server, SMB-server, proxy-server, SSH-server"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Grafisk miljø"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE-arbejdsstation"
+msgid "Plasma Workstation"
+msgstr "Plasma-arbejdsstation"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr ""
-"K Desktop -miljøet, det grundlæggende grafiske miljø, med en vifte af "
-"supplerende værktøjer."
+"K-skrivemiljøet, det grundlæggende grafiske miljø, med en vifte af "
+"supplerende værktøjer"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
-msgstr "Gnome-arbejdsstation"
+msgstr "GNOME-arbejdsmaskine"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr "Et grafisk miljø med brugervenlig samling af programmer og værktøjer"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr "Xfce-arbejdsstation"
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Et lettere grafisk miljø med brugervenlige sæt af programmer og "
+"skrivebordsværktøjer"
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "MATE-arbejdsstation"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Cinnamon-arbejdsstation"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Et grafisk miljø baseret på GNOME"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "LXQt-skrivebord"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "En næstegenerations-Qt-port af letvægtsskrivebordsmiljøet"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr "Enlightenment-skrivebord"
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr "Et letvægts- og hurtigt grafisk miljø med dedikerede følgere"
+
+#: share/meta-task/compssUsers.pl:189
#, c-format
-msgid "IceWm Desktop"
-msgstr "IceWm Desktop"
+msgid "LXDE Desktop"
+msgstr "LXDE-skrivebord"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Et letvægts- og hurtigt grafisk miljø"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Andre grafiske miljøer"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm, etc"
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, osv."
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Nytteprogrammer"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH-server"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Webmin ekstern konfigurationsserver"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "Nytteprogrammer og overvågning af netværk"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "Overvågningsværktøjer, proceskontering, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Mandriva konfigurationsprogrammer"
+msgid "Mageia Wizards"
+msgstr "Konfigurationsprogrammer for Mageia"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Hjæpeprogrammer til at konfigurere server"
@@ -665,9 +829,9 @@ msgid ""
msgstr ""
"Der opstod en fejl, men jeg ved ikke hvordan den kan håndteres på en\n"
"pæn måde.\n"
-"Fortsæt på eget ansvar!"
+"Fortsæt på eget ansvar."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -687,315 +851,375 @@ msgstr "Går til trin `%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux Installation %s"
+msgid "%s Installation %s"
+msgstr "%s Installation %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> mellem elementer"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Xorg-server er langsom at starte. Vent venligst..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
"Dit system har kun få resurser. Du kan få problemer med at installere\n"
-"Mandriva Linux. Hvis dette sker, kan du prøve en tekst-baseret installation "
-"i stedet\n"
-"Dette gøres ved at trykke 'F1' ved opstart fra cdrommen, og så skrive 'text'."
+"%s. Hvis dette sker, kan du prøve en tekst-baseret installation i stedet.\n"
+"Dette gøres ved at trykke 'F1' ved opstart fra CD-ROM'en, og så skrive "
+"'text'."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Valg af pakkemedie"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Installer %s Plasma-skrivebord"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Installér %ss GNOME-skrivebord"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Tilpasset installation"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Plasma-skrivebord"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "GNOME-skrivebord"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Tilpasset skrivebord"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Her er et smugkig på '%s'-skrivebordet."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Klik på billeder for at se et større smugkig"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Valg af pakkegrupper"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Individuelt pakkevalg"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Total størrelse: %d / %d Mb"
+msgid "Unselect All"
+msgstr "Fravalgte alt"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Dårlig pakke"
+msgid "Total size: %d / %d MB"
+msgstr "Total størrelse: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Version: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Størrelse: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
-msgstr " %d KB\n"
+msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Vigtighed: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Du kan ikke vælge/fravælge denne pakke"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "grundet manglende %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "grundet uopfyldt %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "prøver at forfremme %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "for at beholde %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"Du kan ikke vælge denne pakke, da der ikke er nok plads tilbage til at "
"installere den"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
-msgstr "De følgende pakker vil blive installeret"
+msgstr "Følgende pakker vil blive installeret"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
-msgstr "De følgende pakker vil blive afinstalleret"
+msgstr "Følgende pakker vil blive afinstalleret"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Dette er en nødvendig pakke, den kan ikke vælges fra"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Du kan ikke fravælge denne pakke. Den er allerede installeret"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Du kan ikke fravælge denne pakke. Den skal opgraderes"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Vis automatisk valgte pakker"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Installér"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
-msgstr "Indlæs eller gem markering"
+msgstr "Indlæs eller gem det markerede"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Opdaterer pakkevalg"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Minimal installation"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr ""
"Administration\n"
"af programmer"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Vælg pakker som skal installeres"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Installerer"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Ingen detaljer"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Resterende tid "
+msgid "Time remaining:"
+msgstr "Resterende tid:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Beregnes"
+msgid "(estimating...)"
+msgstr "(beregner...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d pakke"
msgstr[1] "%d pakker"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Oversigt"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Konfigurér"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "ikke konfigureret"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-"De følgende installationsmedier er fundet.\n"
-"Hvis du ønsker at overspringe nogen af dem, kan du fravælge dem nu."
+"Følgende installationsmedier er fundet.\n"
+"Hvis du ønsker at springe nogen af dem over, kan du fravælge dem nu."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-"Du har mulighed for at kopiere indholdet af cd-erne over på disken før "
+"Du har mulighed for at kopiere indholdet af cd'erne over på disken før "
"installation.\n"
"Installationen vil så fortsætte fra disken og pakkerne vil forblive "
"tilgængelige, når systemet er fuldt installeret."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "Kopiér hele cd'er"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
-msgstr "Der er opstået en fejl"
+msgstr "Der opstod en fejl"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Vælg dit tastaturlayout."
+msgid "Please choose your keyboard layout"
+msgstr "Vælg dit tastaturlayout"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Her er den komplette liste over tilgængelige tastaturer"
+msgid "Here is the full list of available keyboards:"
+msgstr "Her er den komplette liste over tilgængelige tastaturer:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Installér/Opgradér"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Er dette en nyinstallation eller en opgradering?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
-msgstr "Installér"
+msgstr "Installation"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Opgradér %s"
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "Krypteringsnøgle for %s"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "Afbryd installation, genstart system"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "Konfigurerer IDE"
+msgid "New Installation"
+msgstr "Ny installation"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
-"Det er ikke plads for 1 MB bootstrap! Installationen vil fortsætte, men for "
-"at starte dit system op, skal du lave en bootstrap partition i DiskDrake"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Opgradér tidligere installation (ikke anbefalet)"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"Du skal lave en PPC PReP Boot bootstrap! Installationen vil fortsætte, men "
-"for at starte dit system op, skal du lave bootstrap-partitionen i DiskDrake"
+"Installationsprogrammet har registreret at dit installerede Linux-system "
+"ikke\n"
+"på en sikker måde kunne opgraderes til %s.\n"
+"\n"
+"Det anbefales at bruge en ny installation som erstatter din forrige "
+"installation.\n"
+"\n"
+"Advarsel : du bør sikkerhedskopiere alle dine personlige data inden du "
+"vælger \"Ny installation\"."
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "Konfigurerer CD/DVD"
+
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1004,163 +1228,213 @@ msgid ""
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
"Skift din cdrom!\n"
-"Indsæt cdrom'en med navnet \"%s\" i dit cdrom-drev og tryk på O.k., når det "
+"Indsæt cdrom'en med navnet \"%s\" i dit cdrom-drev, og tryk på Ok når det "
"gjort.\n"
-"Hvis du ikke har den så tryk på Annullér for at undgå installation fra denne "
-"cd."
+"Hvis du ikke har den, så tryk på Annullér for at undgå installation fra "
+"denne cd."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
-msgstr "Leder efter tilgængelige pakker"
+msgstr "Leder efter tilgængelige pakker..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
+"Dit system har ikke nok plads tilbage til installation eller opgradering "
+"(%dMB > %dMB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-"Vælg indlæs eller gem pakkevalg på diskette.\n"
+"Vælg indlæsning eller gemning af pakkevalg.\n"
"Formatet er det samme som for auto_install-genererede filer."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
-msgstr "Belastning"
+msgstr "Indlæs"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Gem"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Dårlig fil"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr ""
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Minimal installation"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr "Valg af skrivebord"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
+msgid "You can choose your workstation desktop profile."
+msgstr "Du kan vælge profil for din arbejdsmaskines skrivebord."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Valgt størrelse er større end tilgængelig plads"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Installationstype"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
"Du har ikke valgt nogen gruppe af pakker.\n"
-"Vælg den minimale installation du ønsker"
+"Vælg den minimale installation du ønsker:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Med X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Installer anbefalede pakker"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Med basal dokumentation (anbefalet!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Virkelig minimal installation (specielt ingen urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Forbereder opgradering..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Forbereder installationen"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
-msgstr ""
+msgstr "Installerer pakke %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Der opstod en fejl ved sorteringen af pakkerne:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Fortsæt alligevel?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "Prøv igen"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
-msgstr ""
+msgstr "Overspring denne pakke"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
-msgstr ""
+msgstr "Overspring alle pakker fra medie '%s'"
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "Gem pakke-valg"
+msgstr "Gå tilbage til valg af medie og pakker"
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "Der opstod en fejl ved installeringen af pakkerne:"
+msgstr "Der opstod en fejl ved installeringen af pakke %s."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Konfiguration efter installation"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-"Forsikr dig venligst om at mediet med Opdateringsmodulerne er i drev %s"
+"Forsikr dig venligst om at mediet med opdateringsmodulerne er i drev %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Opdateringer"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Du har nu mulighed for at opsætte onlinemedier."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Dette giver mulighed for at installere sikkerhedsopdateringer."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"For at opsætte de medier, skal du har en\n"
+"internetforbindelse som virker.\n"
+"\n"
+"Vil du opsætte opdateringsmediet?"
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Følgende pakker vil blive installeret"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Forsøg igen?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Fejl ved tilføjelse af medie"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1175,137 +1449,87 @@ msgstr ""
"Du har nu mulighed for at hente opdaterede pakker som er blevet opdateret\n"
"efter distributionen blev gjort tilgængelig.\n"
"\n"
-"Du vil få sikkerhedsrettelser eller fejlrettelser, men du skal have en\n"
-"internet-opkobling for at fortsætte.\n"
+"Du vil kunne få sikkerhedsrettelser eller fejlrettelser, men du skal have "
+"en\n"
+"internetforbindelse for at fortsætte.\n"
"\n"
"Ønsker du at installere opdateringerne?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Kontakter spejlet for at hente listen af tilgængelige pakker"
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Kan ikke kontakte spejl: %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s på %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Udstyr"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Lydkort"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Har du et ISA-lydkort?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Kør \"alsaconf\" eller \"sndconfig\" efter installation for at konfigurere "
-"dit lydkort"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "Intet lydkort genkendt. Prøv at køre \"harddrake\" efter installation"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Grafisk grænseflade"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
-msgstr "Netværk og Internet"
+msgstr "Netværk og internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
-msgstr "Proxyer "
+msgstr "Proxyer"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "konfigureret"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Sikkerhedsniveau"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Brandmur"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "aktiveret"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "deaktiveret"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr ""
-"Du har ikke konfigureret X. Er du sikker på at du virkelig ønsker dette?"
-
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "Forbereder opstarter..."
+"Du har ikke konfigureret X. Er du sikker på, at du virkelig ønsker dette?"
-#: steps_interactive.pm:1018
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"Det virker som om du har en OldWorld eller ukendt maskine, yaboot "
-"opstartsindlæseren vil ikke virke for dig. Installationen vil fortsætte, men "
-"du skal bruge BootX eller en anden måde til at starte din maskine. Kernens "
-"parameter for root-filsystemet er: root=%s"
+msgid "Preparing initial startup program..."
+msgstr "Forbereder indledende opstartsprogram..."
-#: steps_interactive.pm:1024
+#: steps_interactive.pm:1073
#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Ønsker du at bruge aboot?"
+msgid "Be patient, this may take a while..."
+msgstr "Vær tålmodig, dette kan tage et stykke tid..."
-#: steps_interactive.pm:1027
-#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Fejl ved installation af aboot, \n"
-"forsøg at gennemtvinge installation selv om dette kan ødelægge den første "
-"partition?"
-
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
@@ -1314,84 +1538,49 @@ msgstr ""
"I dette er sikkerhedsniveau er adgang til Windows-partitionen forbeholdt "
"administratoren."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Indsæt en tom diskette i drev %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
-msgstr "Laver autoinstallations-diskette"
+msgstr "Laver autoinstallations-diskette..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
"\n"
"Do you really want to quit now?"
msgstr ""
-"Nogen dele af installationen er ikke færdig\n"
+"Visse dele af installationen er ikke færdige.\n"
"\n"
-"Er du sikker på du ønsker du at lukke nu?"
+"Er du sikker på, at du vil afslutte nu?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Tillykke"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Genstart"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Laver autoinstallations-diskette"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Autoinstallation kan ske fuldautomatisk hvis ønsket. I så tilfælde vil den "
-"overtage hele harddisken!! (dette er beregnet til at installere på en anden "
-"maskine).\n"
-"\n"
-"Du foretrækker måske at afspille installationen igen\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Afspil igen"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automatisk"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Gem pakke-valg"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
msgid ""
"_: Keep these entry short\n"
"Language"
-msgstr "Vælg sprog"
+msgstr "Sprog"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "Tilpasning til sprog"
#: steps_list.pm:17
#, c-format
@@ -1412,7 +1601,7 @@ msgstr "Mus"
msgid ""
"_: Keep these entry short\n"
"Hard drive detection"
-msgstr "Harddisk bestemmelse"
+msgstr "Harddisk-bestemmelse"
#: steps_list.pm:21 steps_list.pm:22
#, c-format
@@ -1470,19 +1659,12 @@ msgid ""
"Users"
msgstr "Brugere"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Netværk"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
"_: Keep these entry short\n"
"Bootloader"
-msgstr "Systemopstarter"
+msgstr "Opstartsindlæser"
#: steps_list.pm:40 steps_list.pm:41
#, c-format
@@ -1519,114 +1701,25 @@ msgid ""
"Exit"
msgstr "Afslut"
-#~ msgid "All"
-#~ msgstr "Alt"
-
-#~ msgid "TV card"
-#~ msgstr "TV-kort"
-
-#~ msgid "Boot"
-#~ msgstr "Opstart"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Identifikation"
-
-#~ msgid "Arkeia"
-#~ msgstr "Arkeia"
-
-#~ msgid "Flatout"
-#~ msgstr "Flatout"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "3D"
-#~ msgstr "3D"
-
-#~ msgid "CMS"
-#~ msgstr "CMS"
-
-#~ msgid "CRM"
-#~ msgstr "CRM"
-
-#~ msgid "2007 product line"
-#~ msgstr "2007 produktlinje"
-
-#~ msgid "Invictus Firewall"
-#~ msgstr "Invictus brandmur"
-
-#~ msgid "Discovery Live Mode"
-#~ msgstr "Discovery Live Mode"
-
-#~ msgid "How to register"
-#~ msgstr "Hvordan man registerer"
-
-#~ msgid "Rpmdrake 2"
-#~ msgstr "Rpmdrake 2"
-
-#~ msgid "Mandriva Online Services"
-#~ msgstr "Mandriva-tjenester på nettet"
-
-#~ msgid "New Theme"
-#~ msgstr "Nyt tema"
-
-#~ msgid "Web 2.0"
-#~ msgstr "Web 2.0"
-
-#~ msgid "Kaspersky"
-#~ msgstr "Kaspersky"
-
-#~ msgid "LinDVD"
-#~ msgstr "LinDVD"
-
-#~ msgid "Skype"
-#~ msgstr "Skype"
-
-#~ msgid "Transgaming/Cedega"
-#~ msgstr "Transgaming/Cedega"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "(%d pakke, %d MB)"
-#~ msgstr[1] "(%d pakker, %d MB)"
-
-#~ msgid "%d packages"
-#~ msgstr "%d pakker"
-
-#~ msgid "Language"
-#~ msgstr "Vælg sprog"
-
-#~ msgid "License"
-#~ msgstr "Licens"
-
-#~ msgid "Installation class"
-#~ msgstr "Installations-klasse"
-
-#~ msgid "Formatting"
-#~ msgstr "Formaterer"
-
-#~ msgid "Choosing packages"
-#~ msgstr "Vælger pakker"
-
-#~ msgid "Users"
-#~ msgstr "Brugere"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "URL på spejlet?"
-#~ msgid "Networking"
-#~ msgstr "Netværk"
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "URL skal starte med ftp:// eller http://"
-#~ msgid "Configure X"
-#~ msgstr "Konfigurér X"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr ""
+#~ "Kontakter %s' websted for at hente listen over tilgængelige spejle..."
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
#~ msgstr ""
-#~ "Kunne ikke få adgang til kernemoduler svarende til din kerne (fil %s "
-#~ "mangler), dette betyder normalt at din opstartsdiskette ikke stemmer "
-#~ "overens med installationsmediet (lav en nyere opstartsdiskette)"
+#~ "Kunne ikke kontakte %s' websted for at hente listen over tilgængelige "
+#~ "spejle"
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Vælg det spejl hvorfra pakkerne skal hentes"
diff --git a/perl-install/install/share/po/de.po b/perl-install/install/share/po/de.po
index 05b424732..e740e5b46 100644
--- a/perl-install/install/share/po/de.po
+++ b/perl-install/install/share/po/de.po
@@ -1,39 +1,89 @@
-# translation of de.po to deutsch
-# Stefan Siegel <siegel@linux-mandrake.com>, 2000, 2001, 2002, 2003.
-# Sebastian Deutscher <sebastian_deutscher@web.de>, 2003,2004.
-# Gerhard Ortner <gerhard.ortner@aon.at>, 2003, 2004.
-# Roy Steuber <roysteuber@mittweida-net.de>, 2004.
-# Marcus Fischer <i18n@marcusfischer.com>, 2004.
-# Frank Köster <frank@dueppel13.de>, 2004, 2005.
-# Ronny Standtke <Ronny.Standtke@gmx.de>, 2003, 2004.
-# Ronny Standtke <Ronny.Standtke@gmx.net>, 2004, 2005.
-# Nicolas Bauer <webmaster@mandrakeusers.de>, 2005.
-# Frank Koester <frank@dueppel13.de>, 2005.
-# Nicolas Bauer <rastafarii@mandrivauer.de>, 2006, 2007.
-# Nicolas Bauer <rastafarii@mandrivauser.de>, 2007.
-# german translation of the MandrivaInstaller.
-# Copyright (C) 2000-2003 Mandriva S.A.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# Ettore Atalan <atalanttore@googlemail.com>, 2014,2018
+# Klaus Christian Harke <k.c.harke@gmx.net>, 2020
+# psyca, 2014-2018,2020,2022
+# Marc Lattemann, 2013
+# Marc Lattemann, 2013
+# Oliver Burger <obgr_seneca@mageia.org>, 2013
+# psyca, 2014
+# user7 <wassipaul@gmx.at>, 2013
+# user7 <wassipaul@gmx.at>, 2013
msgid ""
msgstr ""
-"Project-Id-Version: de\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-09-05 16:28+0200\n"
-"Last-Translator: Nicolas Bauer <rastafarii@mandrivauser.de>\n"
-"Language-Team: deutsch\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2013-04-04 13:31+0000\n"
+"Last-Translator: psyca, 2014-2018,2020,2022\n"
+"Language-Team: German (http://app.transifex.com/MageiaLinux/mageia/language/"
+"de/)\n"
+"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Treten Sie bei!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Passen Sie es Ihren Wünschen an!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "Sie haben die Wahl!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Arbeitsplatz Werkzeuge"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Home Entertainment"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "Für Kinder"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "Für die Familie!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "Für Entwickler"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Danke!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Sei Frei!"
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
-msgstr "Haben Sie zusätzliche Medien?"
+msgstr "Haben Sie weitere zusätzliche Medien?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -45,145 +95,161 @@ msgstr ""
"verwendet: %s\n"
"\n"
"\n"
-"Haben Sie noch weitere Installationsmedienzum konfigurieren?"
+"Haben Sie noch weitere Installationsmedien zu konfigurieren?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Netzwerk (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Netzwerk (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Netzwerk (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "URL der Spiegel?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "Die URL muss mit ftp:// oder http:// beginnen"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Kontaktiere Mandriva Linux Web-Server, um eine Liste verfügbarer Pakete zu "
-"erhalten..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Kontaktieren Sie die Mandriva Linux Webseiten, um eine Liste verfügbaren "
-"Mirrors zu erhalten"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Bitte wählen Sie einen Mirror, von dem Sie die Pakete holen wollen."
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
-msgstr "NFS-Einrichtungsetup"
+msgstr "NFS-Einrichtung"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr ""
"Bitte geben Sie den Rechnernamen und das Verzeichnis ihres NFS-Mediums ein"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr "Hostname fehlt"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "Verzeichnis muss mit \"/\" beginnen"
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "Rechnername der NFS-Einbindung?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Verzeichnis"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "Ergänzend"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
-msgstr "Kann die Datei hdlist nicht auf diesem Spiegel finden"
+msgstr "Kann keine Paketliste auf diesem Spiegel-Server finden."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Suche nach bereits installierten Paketen ..."
+msgid "Core Release"
+msgstr "Core-Release"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Entferne Pakete vor der Aktualisierung..."
+msgid "Tainted Release"
+msgstr "Tainted-Release"
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Finde die zu aktualisierenden Pakete ..."
+msgid "Nonfree Release"
+msgstr "Nonfree-Release"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"Sie haben die folgenden Server ausgewählt: %s\n"
-"\n"
-"\n"
-"Diese Server werden standardmäßig aktiviert. Sie haben keine bekannten\n"
-"Sicherheitsprobleme, jedoch könnten einige neue entdeckt werden. Stellen\n"
-"Sie deshalb sicher, dass Sie diese Pakete so zeitig wie möglich "
-"aktualisieren.\n"
-"\n"
-"\n"
-"Wollen Sie diese Server wirklich installieren?\n"
+"Ihre Maschine beinhaltet Hardware, die nicht-freie Firmware-Dateien "
+"benötigt, damit die freien Treiber funktionieren."
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "Sie sollten „%s“ aktivieren"
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+"„%s“ enthält die verschiedenen Bestandteile des Systems und seiner "
+"Anwendungen"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "„%s“ enthält nicht-freie Software.\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"Es enthält auch Firmware-Dateien, die für einige Geräte benötigt werden, um "
+"funktionieren zu können (z.B. einige AMD/ATI-Grafikkarten, einige "
+"Netzwerkkarten, einige RAID-Karten, ...)."
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"„%s“ enthält Software, die aufgrund von Software-Patenten nicht in jedem "
+"Land verbreitet werden darf."
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+"Es enthält auch Software aus „%s“, die mit zusätzlichen Fähigkeiten neu "
+"gebaut wurde."
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "Sie können hier weitere Medien aktivieren, wenn Sie das wünschen."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Dieses Medium enthält Paket-Aktualisierungen für das Medium „%s“"
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Bereits installierte Pakete werden gesucht ..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Zu aktualisierende Pakete werden gesucht ..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Pakete vor der Aktualisierung entfernen ..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -197,82 +263,87 @@ msgstr ""
"\n"
"Wollen Sie diese Pakete wirklich entfernen?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Fehler beim Lesen der Datei %s"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "Die folgenden Datenträger wurden umbenannt:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (vorher als %s bezeichnet)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Netzwerk"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "Bitte wählen Sie ein Medium"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Die Datei existiert bereits. Überschreiben?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Erlaubnis verweigert"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
-msgstr "Falscher NFS-Name"
+msgstr "Fehlerhafter NFS-Name"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
-msgstr "Mediumfehler %s"
+msgstr "Fehlerhaftes Medium %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
-msgstr "Vor der Partitionierung kann ich keine Screenshots machen."
+msgid "Cannot make screenshots before partitioning"
+msgstr "Vor der Partitionierung können keine Screenshots erstellt werden"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
-msgstr "Die Screenshots liegen nach der Installation unter „%s“"
+msgstr "Die Screenshots sind nach der Installation unter „%s“ verfügbar"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Installation"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Konfiguration"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Sie müssen auch %s formatieren."
@@ -296,107 +367,147 @@ msgstr "Netzwerkverbindung herstellen"
msgid "Bringing down the network"
msgstr "Netzwerkverbindung trennen"
-#: media.pm:703 media.pm:714
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr "Bitte warten, Datei wird empfangen"
+
+#: media.pm:704
#, c-format
-msgid "Downloading file %s..."
-msgstr "Lade Datei %s herunter..."
+msgid "unable to add medium"
+msgstr "Es ist nicht möglich, das Medium hinzuzufügen"
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr "Pakete auf die Festplatte speichern für die spätere Verwendung"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Dateien werden kopiert"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "unbedingt notwendig"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "wichtig"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "sehr angenehm"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "angenehm"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "eventuell"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "Paket-Informationen aus den XML-Metadaten beziehen ..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Keine XML-Informationen für das Medium „%s“ vorhanden, es können nur "
+"Teilergebnisse für das Paket %s angegeben werden"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Keine Beschreibung"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"Einige der ausgewählten Programme von %s können nicht installiert werden:\n"
+"%s"
+
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "Ein Fehler ist aufgetreten:"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "Fataler Fehler aufgetreten: %s."
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr "Nicht erneut fragen"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d Installationstransaktionen schlugen fehl"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Installieren der Pakete ist fehlgeschlagen:"
+
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "Arbeitsplatzrechner"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "Büro-Arbeitsplatz"
-#: share/meta-task/compssUsers.pl:15
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Office-Programme: Textverarbeitung (Openoffice.org Writer, KWord), "
-"Tabellenkalkulation (OpenOffice.org Calc, KSpread), PDF-Betrachter, usw."
+"Office-Programme: Textverarbeitung (LibreOffice Writer, KWord), "
+"Tabellenkalkulation (LibreOffice Calc, KSpread), PDF-Betrachter, usw."
-#: share/meta-task/compssUsers.pl:16
-#, c-format
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"Office-Programme: Textverarbeitung (KWord, Abiword), Tabellenkalkulation "
-"(KSpread, Gnumeric), PDF-Betrachter, usw."
-
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Spiele-Station"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "Spiele: Arcade-, Brett-, Strategiespiele, usw."
+msgstr "Spiele: Arkade-, Brett-, Strategiespiele, usw."
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Multimedia-Station"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
-msgstr "Programme, um Sound und Video abzuspielen und zu bearbeiten"
+msgstr "Programme, um Audio und Video abzuspielen und zu bearbeiten"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Internet-Station"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
@@ -405,265 +516,322 @@ msgstr ""
"Programme um E-Mails und News zu lesen und zu versenden (pine, mutt, tin..) "
"und um im Internet zu surfen"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Netzwerk-Computer (Client)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Clients für verschiedene Protokolle, u.a. SSH"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Werkzeuge, die die Konfiguration Ihres Computers erleichtern"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Konsolen-Werkzeuge"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Editoren, Shells, Dateiwerkzeuge, Konsolen"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Entwicklung"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
-msgstr "C und C++ Entwicklungsbibliotheken, Programme und Include-Dateien"
+msgstr "C- und C++-Entwicklungsbibliotheken, Programme und Include-Dateien"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Dokumentation"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Bücher und HOWTOs zu GNU/Linux und Freier Software"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Linux-Standard-Base. Drittanbieterunterstützung"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Webserver"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Groupware"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Kolab-Server"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
-msgstr "Firewall / Router"
+msgstr "Firewall/Router"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Internet-Gateway"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "E-Mail/News"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Postfix Mail-Server, Inn News-Server"
+msgstr "Postfix-Mail-Server, Inn-News-Server"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Verzeichnisdienst"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP-Server"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "Domänennamen- und Netzwerk-Informations-Server"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "Datei- und Druckerserver"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
-msgstr "NFS-Server, Samba Server"
+msgstr "NFS-Server, Samba-Server"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Datenbank"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL und MySQL-Datenbankserver"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "PostgreSQL- und MariaDB-Datenbankserver"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
-msgstr "Email"
+msgstr "E-Mail"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
-msgstr "Postfix Mail-Server"
+msgstr "Postfix-Mail-Server"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL oder MySQL-Datenbankserver"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL- oder MariaDB-Datenbankserver"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Netzwerkrechner-Server"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "NFS-Server, SMB-Server, Proxy-Server, SSH-Server"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
-msgstr "Grafische Arbeitsoberfläche"
+msgstr "Grafische Umgebung"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE-Arbeitsplatz"
+msgid "Plasma Workstation"
+msgstr "Plasma-Arbeitsplatz"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr ""
-"Die K-Desktop-Umgebung, die Standard-Arbeitsfläche mit einer Sammlung "
-"zugehöriger Programme"
+"Das K Desktop Environment, die grundlegende grafische Umgebung mit einer "
+"Sammlung zugehöriger Programme"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
-msgstr "Gnome-Arbeitsplatz"
+msgstr "GNOME-Arbeitsplatz"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr ""
-"Eine grafische Umgebung mit anwenderfreundlichen Anwendungen und Werkzeugen"
+"Eine grafische Umgebung mit benutzerfreundlichen Anwendungen und Werkzeugen"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr "Xfce-Arbeitsplatz "
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Eine schlankere grafische Umgebung mit benutzerfreundlichen Anwendungen und "
+"Werkzeugen"
+
+#: share/meta-task/compssUsers.pl:169
#, c-format
-msgid "IceWm Desktop"
-msgstr "IceWm-Desktop"
+msgid "MATE Workstation"
+msgstr "MATE-Arbeitsplatz"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Cinnamon-Arbeitsplatz"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Eine auf GNOME basierende grafische Umbgebung"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "LXQt-Desktop"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+"Qt-Portierung der leichtgewichtigen Desktop-Umgebung der nächsten Generation"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr "Enlightenment Desktop"
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+"Eine schlanke und schnelle grafische Umgebung mit benutzerfreundlichen "
+"Anwendungen und Werkzeugen"
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "LXDE-Desktop"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Eine leichtgewichtige und schnelle grafische Umgebung"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
-msgstr "Andere grafische Arbeitsflächen"
+msgstr "Andere grafische Oberflächen"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm, usw."
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, usw."
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Werkzeuge"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH-Server"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Webmin Fernkonfigurationsserver"
+msgstr "Webmin-Fernkonfigurationsserver"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "Netzwerkwerkzeuge/-überwachung"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "Überwachungswerkzeuge, Prozessverwaltung, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Mandriva-Assistenten"
+msgid "Mageia Wizards"
+msgstr "Mageia-Assistenten"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Assistenten zur Servereinrichtung"
@@ -674,16 +842,16 @@ msgid ""
"An error occurred, but I do not know how to handle it nicely.\n"
"Continue at your own risk."
msgstr ""
-"Es trat ein Fehler auf. Ich weiß jedoch nicht, wie ich damit sinnvoll \n"
-"umgehen soll. Sie können fortfahren, jedoch auf eigenes Risiko!"
+"Es trat ein Fehler auf. Ich weiß jedoch nicht, wie ich damit umgehen soll. "
+"Sie können fortfahren, jedoch auf eigenes Risiko!"
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
-"\"\n"
+"Check the cdrom on an installed computer using \"rpm -qpl media/main/*."
+"rpm\"\n"
msgstr ""
"Einige wichtige Pakete wurden nicht richtig installiert. \n"
"Entweder ist Ihr CD-ROM-Laufwerk oder Ihre CD-ROM defekt. \n"
@@ -697,211 +865,263 @@ msgstr "Beginn von Schritt „%s“\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux-Installation %s"
+msgid "%s Installation %s"
+msgstr "%s Installation %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> zwischen den Elementen"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Der Xorg-Server braucht lange zum Starten. Bitte warten Sie ..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"Ihr Rechner hat nicht genug Ressourcen. Vermutlich werden bei der \n"
-"Installation Probleme auftreten. In diesem Fall sollten Sie eine \n"
-"Text-Installation versuchen. Drücken Sie dafür <F1> während dem \n"
-"Installationsstart und geben Sie „text“ an der Eingabeaufforderung \n"
-"ein."
+"Ihr System hat nur geringe Ressourcen. Sie werden eventuell Probleme haben, "
+"%s zu installieren.\n"
+"Wenn dies auftritt, können Sie versuchen, Mageia mit einer textbasierten "
+"Benutzerschnittstelle zu installieren. Drücken Sie dafür „F1“, wenn Sie von "
+"der CD-Rom installieren, dann geben Sie „text“ ein."
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Auswahl der Installationsmedien"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Den %s-Plasma-Desktop installieren"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Den %s-GNOME-Desktop installieren"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Benutzerdefinierte Installation"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Plasma-Desktop"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "GNOME-Desktop"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Benutzerdefinierter Desktop"
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Hier sehen Sie eine Vorschau des „%s“-Desktops"
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Klicken Sie auf die Bilder, um größere Vorschauen zu erhalten"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Auswahl der Paketgruppen"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Individuelle Paketauswahl"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Gesamtgröße: %d / %d MB"
+msgid "Unselect All"
+msgstr "Auswahl aufheben"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Ungültiges Paket"
+msgid "Total size: %d / %d MB"
+msgstr "Gesamtgröße: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Version: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Größe: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
-msgstr "%d KB\n"
+msgstr "%d kB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Wichtigkeit: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Sie können dieses Paket nicht auswählen/abwählen."
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
-msgstr "%s fehlt"
+msgstr "da %s fehlt"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
-msgstr "Aufgrund unerfüllter %s"
+msgstr "da %s unerfüllt ist"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "Versuche %s voranzutreiben"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "um %s beizubehalten"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"Sie können dieses Paket nicht auswählen, da Sie nicht genug Plattenplatz "
"haben."
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Die folgenden Pakete werden installiert"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Die folgenden Pakete werden entfernt"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Dieses Paket ist existenziell, sie können es nicht abwählen!"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr ""
"Sie können dieses Paket nicht aus der Auswahl entfernen. \n"
"Es ist bereits installiert!"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr ""
"Sie können dieses Paket nicht aus der Auswahl entfernen. \n"
"Es muss aktualisiert werden!"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Automatisch markierte Pakete anzeigen"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Installation"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Auswahl laden/speichern"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Erneuere Paket Auswahl"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr "Zwischen hierarchischer und flacher Paketliste wechseln"
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Minimal-Installation"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Software verwalten"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Zu installierende Pakete auswählen"
-# THIS ONE IS TOO BIG!
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
-msgstr "Installation wird durchgeführt"
+msgstr "Installation"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Keine Details"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
+msgid "Time remaining:"
msgstr "Verbleibende Zeit "
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Schätzung"
+msgid "(estimating...)"
+msgstr "(schätze...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d Paket"
msgstr[1] "%d Pakete"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Zusammenfassung"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Konfigurieren"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "Nicht eingerichtet"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
@@ -910,12 +1130,12 @@ msgstr ""
"Die folgenden Installationsmedien wurden gefunden.\n"
"Wählen Sie die Medien ab, die Sie überspringen wollen."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
"Sie haben die Möglichkeit, den Inhalt der CDs vor der Installation auf "
@@ -923,94 +1143,98 @@ msgstr ""
"fortgeführt und die Softwarepakete bleiben verfügbar, nachdem das System "
"fertig installiert ist."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "Kopiere die CDs"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Ein Fehler ist aufgetreten"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Bitte wählen Sie Ihren Tastaturtyp."
+msgid "Please choose your keyboard layout"
+msgstr "Bitte wählen Sie Ihr Tastaturlayout"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Komplette Liste aller Tastaturlayouts"
+msgid "Here is the full list of available keyboards:"
+msgstr "Komplette Liste aller verfügbarer Tastaturlayouts"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Installation/Aktualisierung"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Handelt es sich um eine Installation oder eine Aktualisierung?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Installation"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Aktualisiere %s"
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "Schlüssel für %s"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "Installation abbrechen, das System neustarten"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "IDE konfigurieren"
+msgid "New Installation"
+msgstr "Neuinstallation"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
-"Sie haben keinen Platz für die 1 MB große Start-Partition vorgesehen! Die "
-"Installation wird fortgesetzt, Sie müssen jedoch eine Start-Partition mit "
-"DiskDrake erstellen."
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Bestehende Installation aktualisieren (nicht empfohlen)"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"Sie müssen einen PPC PReP Boot Lader erzeugen! Die Installation wird "
-"fortgesetzt, Sie müssen jedoch eine Start-Partition mit DiskDrake erstellen."
+"Das Installationsprogramm hat festgestellt, dass Ihr Linux System nicht\n"
+"sicher zu %s aktualisiert werden kann.\n"
+"\n"
+"Eine Neuinstallation, die Ihre bisherige ersetzt, wird empfohlen.\n"
+"\n"
+"Warnung: Sie sollten all Ihre persönlichen Daten sichern, bevor Sie \"Neu\n"
+" Installation\" wählen."
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "Konfiguriere CD/DVD"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1022,21 +1246,21 @@ msgstr ""
"Bitte legen Sie die CD-ROM „%s“ in Ihr Laufwerk. Drücken Sie dann auf „OK“.\n"
"Falls Sie sie nicht vorliegen haben, drücken Sie auf „Abbrechen“."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
-msgstr "Suche nach vorhandenen Paketen..."
+msgstr "Suche nach verfügbaren Paketen ..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
"Das System hat für die Installation oder das Update nicht genug freien "
"Speicher (%dMB > %dMB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
@@ -1046,52 +1270,52 @@ msgstr ""
"gespeichert werden soll. Es handelt sich um das gleiche\n"
"Format, wie die unter „auto_install“ erzeugten Disketten."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
-msgstr "Last"
+msgstr "Laden"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Speichern"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Datei fehlerhaft"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr ""
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Minimal-Installation"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr "Auswahl der Desktop-Umgebung"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
+msgid "You can choose your workstation desktop profile."
+msgstr "Sie haben die Wahl zwischen verschiedenen Desktopprofilen."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Gewünschte Größe übersteigt den verfügbaren Platz"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Installationstyp"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1100,84 +1324,132 @@ msgstr ""
"Sie haben keine Paketgruppe ausgewählt.\n"
"Bitte wählen Sie die minimale Installation, die Sie wünschen."
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
-msgstr "Mit X"
+msgstr "Mit X (grafischem Server)"
+
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Empfohlene Pakete installieren"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Mit minimaler Dokumentation (Empfohlen)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Extrem minimale Installation (ohne „urpmi“)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Die Aktualisierung wird vorbereitet ..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
-msgstr "Bereite Installation vor"
+msgstr "Installation wird vorbereitet"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
-msgstr "Installiere Paket %s"
+msgstr "Paket %s wird installiert"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Bei der Anforderung folgender Pakete trat ein Fehler auf:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Wollen Sie trotzdem fortfahren?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "Wiederholen"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr "Dieses Paket überspringen"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
-msgstr "Überspringe alle Pakete von dem Medium \"%s\""
+msgstr "Alle Pakete vom Medium \"%s\" werden übersprungen"
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
msgstr "Zurück zu den Medien und zur Paketauswahl"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
-msgstr "Bei der Installation des Paketes%s trat ein Fehler auf."
+msgstr "Bei der Installation des Paketes %s trat ein Fehler auf."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Bereite weitere Konfiguration vor ..."
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
"Bitte stellen Sie sicher, dass sich das Update-Modul-Medium im Laufwerk %s "
"befindet"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Aktualisierungen"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Sie haben nun die Möglichkeit, Onlinemedien einzurichten."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Dies erlaubt Ihnen Sicherheitsaktualisierungen zu installieren."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"Um diese Medien einzurichten benötigen Sie eine funktionierende\n"
+"Internetverbindung.\n"
+"\n"
+"Möchen Sie die Onlinemedien einrichten?"
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr "Dieser Downloader konnte nicht installiert werden"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Nochmals versuchen?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Fehler beim Hinzufügen des Mediums"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1190,160 +1462,106 @@ msgid ""
"Do you want to install the updates?"
msgstr ""
"Sie haben nun die Möglichkeit Pakete zu installieren, die seit Erscheinen\n"
-"der Distribution aktualisiert wurden. Es handelt sich um \n"
-"Sicherheitsaktualisierungen und Fehlerkorrekturen.\n"
+"der Distribution aktualisiert wurden. Diese können "
+"Sicherheitsaktualisierungen und Fehlerkorrekturen beinhalten.\n"
"\n"
"Allerdings benötigen Sie dafür eine funktionierende Internetverbindung.\n"
"\n"
"Möchten Sie die Aktualisierungen vornehmen?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Kontaktiere Mirror, um eine Liste verfügbarer Pakete zu erhalten..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Mirror %s nicht erreichbar"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s auf %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Hardware"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Soundkarte"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Verfügen Sie über eine ISA-Soundkarte?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Starten Sie „sndconfig“ oder „alsaconf“ nach der Installation, um Ihre "
-"Soundkarte einzurichten."
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Es wurde keine Soundkarte gefunden. Versuchen Sie „harddrake“ nach der "
-"Installation."
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Grafikumgebung"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Netzwerk & Internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
-msgstr "Proxies"
+msgstr "Proxys"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "konfiguriert"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Sicherheitsebene"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Firewall"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "aktiviert"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "deaktiviert"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "Sie haben X nicht konfiguriert. Sind Sie sicher?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "Bereite Bootloader vor ..."
+msgid "Preparing initial startup program..."
+msgstr "Initiale Systemstartprogramme vorbereiten ..."
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"Sie scheinen einen „OldWorld“ oder unbekannten Rechner zu verwenden. Der "
-"Bootloader „yaboot“ wird daher leider nicht funktionieren. Die Installation "
-"wird fortgesetzt, sie werden jedoch „BootX“ oder etwas ähnliches verwenden "
-"müssen um Ihren Rechner zu starten. Der Kernelparameter für das Root-"
-"Dateisystem ist: root=%s"
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Möchten Sie „aboot“ verwenden?"
-
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Fehler bei der Installation von aboot. Soll ich die Installation \n"
-"mit Gewalt versuchen, auch wenn dies die Zerstörung der ersten \n"
-"Partition verursachen kann?"
+msgid "Be patient, this may take a while..."
+msgstr "Ein wenig Geduld, dies kann einige Zeit dauern ..."
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-"In dieser Sicherheitseinstellung ist der Zugriff auf Datein der "
-"Windowspartition nur dem Administrator erlaubt"
+"In dieser Sicherheitsebene ist der Zugriff auf Dateien der Windows-Partition "
+"nur dem Administrator erlaubt"
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
-msgstr "Legen Sie eine leere Diskette in das %s ein."
+msgstr "Legen Sie eine leere Diskette in das Laufwerk %s ein."
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Erstelle eine Auto-Installationsdiskette"
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1354,54 +1572,16 @@ msgstr ""
"\n"
"Wollen Sie DrakX wirklich beenden?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Herzlichen Glückwunsch!"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Neustart"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Erstellen einer Auto-Installationsdiskette"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Die automatische Installation kann, falls Sie wollen,\n"
-"vollautomatisch erfolgen. In diesem Fall wird die\n"
-"Festplatte vollständig durch DrakX rekonfiguriert\n"
-"(diese Möglichkeit ist für die Replikation auf anderen\n"
-"Rechnern gedacht).\n"
-"\n"
-"Vermutlich werden Sie es vorziehen, erneut eine normale\n"
-"Installation durchzuführen.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Erneut abspielen"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automatisiert"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Paketauswahl speichern"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1413,7 +1593,7 @@ msgstr "Sprache auswählen"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr "Lokalisation"
+msgstr "Lokalisierung"
#: steps_list.pm:17
#, c-format
@@ -1469,7 +1649,7 @@ msgstr "Partitionierung"
msgid ""
"_: Keep these entry short\n"
"Formatting"
-msgstr "Formatieren"
+msgstr "Formatierung"
#: steps_list.pm:29
#, c-format
@@ -1479,11 +1659,11 @@ msgid ""
msgstr "Pakete auswählen"
#: steps_list.pm:31
-#, fuzzy, c-format
+#, c-format
msgid ""
"_: Keep these entry short\n"
"Installing"
-msgstr "Installation wird durchgeführt"
+msgstr "Installation"
#: steps_list.pm:34
#, c-format
@@ -1492,13 +1672,6 @@ msgid ""
"Users"
msgstr "Benutzer"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Netzwerk"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1540,9 +1713,3 @@ msgid ""
"_: Keep these entry short\n"
"Exit"
msgstr "Verlassen"
-
-#~ msgid "All"
-#~ msgstr "Alle"
-
-#~ msgid "TV card"
-#~ msgstr "TV-Karte"
diff --git a/perl-install/install/share/po/de_AT.po b/perl-install/install/share/po/de_AT.po
new file mode 100644
index 000000000..eae8db34e
--- /dev/null
+++ b/perl-install/install/share/po/de_AT.po
@@ -0,0 +1,1706 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Mageia\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2013-04-04 13:31+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: German (Austria) (http://www.transifex.com/MageiaLinux/mageia/"
+"language/de_AT/)\n"
+"Language: de_AT\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Treten Sie bei!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Passen Sie es Ihren Wünschen an!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "Sie haben die Wahl!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Arbeitsplatz Werkzeuge"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Home Entertainment"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "Für Kinder"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "Für die Familie!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "Für Entwickler"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Danke!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Sei Frei!"
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr "Haben Sie weitere zusätzliche Medien?"
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
+#, c-format
+msgid ""
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
+msgstr ""
+"Folgende Medien wurden gefunden und werden während der Installation "
+"verwendet: %s\n"
+"\n"
+"\n"
+"Haben Sie noch weitere Installationsmedien zu konfigurieren?"
+
+#: any.pm:162
+#, c-format
+msgid "Network (HTTP)"
+msgstr "Netzwerk (HTTP)"
+
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
+msgstr "Netzwerk (FTP)"
+
+#: any.pm:164
+#, c-format
+msgid "Network (NFS)"
+msgstr "Netzwerk (NFS)"
+
+#: any.pm:224
+#, c-format
+msgid "NFS setup"
+msgstr "NFS-Einrichtung"
+
+#: any.pm:225
+#, c-format
+msgid "Please enter the hostname and directory of your NFS media"
+msgstr ""
+"Bitte geben Sie den Rechnernamen und das Verzeichnis ihres NFS-Mediums ein"
+
+#: any.pm:229
+#, c-format
+msgid "Hostname missing"
+msgstr "Hostname fehlt"
+
+#: any.pm:230
+#, c-format
+msgid "Directory must begin with \"/\""
+msgstr "Verzeichnis muss mit \"/\" beginnen"
+
+#: any.pm:234
+#, c-format
+msgid "Hostname of the NFS mount ?"
+msgstr "Rechnername der NFS-Einbindung?"
+
+#: any.pm:235
+#, c-format
+msgid "Directory"
+msgstr "Verzeichnis"
+
+#: any.pm:265
+#, c-format
+msgid "Supplementary"
+msgstr "Ergänzend"
+
+#: any.pm:300
+#, c-format
+msgid ""
+"Can't find a package list file on this mirror. Make sure the location is "
+"correct."
+msgstr "Kann keine Paketliste auf diesem Spiegel-Server finden."
+
+#: any.pm:325
+#, c-format
+msgid "Core Release"
+msgstr "Core-Release"
+
+#: any.pm:327
+#, c-format
+msgid "Tainted Release"
+msgstr "Tainted-Release"
+
+#: any.pm:329
+#, c-format
+msgid "Nonfree Release"
+msgstr "Nonfree-Release"
+
+#: any.pm:367
+#, c-format
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+"Ihre Maschine beinhaltet Hardware, die nicht-freie Firmware-Dateien "
+"benötigt, damit die freien Treiber funktionieren."
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "Sie sollten „%s“ aktivieren"
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+"„%s“ enthält die verschiedenen Bestandteile des Systems und seiner "
+"Anwendungen"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "„%s“ enthält nicht-freie Software.\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"Es enthält auch Firmware-Dateien, die für einige Geräte benötigt werden, um "
+"funktionieren zu können (z.B. einige AMD/ATI-Grafikkarten, einige "
+"Netzwerkkarten, einige RAID-Karten,...)."
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"„%s“ enthält Software, die aufgrund von Software-Patenten nicht in jedem "
+"Land verbreitet werden darf."
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+"Es enthält auch Software aus „%s“, die mit zusätzlichen Fähigkeiten neu "
+"gebaut wurde."
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "Sie können hier weitere Medien aktivieren, wenn Sie das wünschen."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Dieses Medium enthält Paket-Aktualisierungen für das Medium „%s“"
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Bereits installierte Pakete werden gesucht ..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Zu aktualisierende Pakete werden gesucht..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Pakete vor der Aktualisierung entfernen..."
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:850
+#, c-format
+msgid ""
+"The following packages will be removed to allow upgrading your system: %s\n"
+"\n"
+"\n"
+"Do you really want to remove these packages?\n"
+msgstr ""
+"Folgende Pakete werden entfernt, um das Aktualisieren Ihres Rechners zu "
+"ermöglichen: %s\n"
+"\n"
+"\n"
+"Wollen Sie diese Pakete wirklich entfernen?\n"
+
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Fehler beim Lesen der Datei %s"
+
+#: any.pm:1283
+#, c-format
+msgid "The following disk(s) were renamed:"
+msgstr "Die folgenden Datenträger wurden umbenannt:"
+
+#: any.pm:1285
+#, c-format
+msgid "%s (previously named as %s)"
+msgstr "%s (vorher als %s bezeichnet)"
+
+#: any.pm:1342
+#, c-format
+msgid "HTTP"
+msgstr "HTTP"
+
+#: any.pm:1342
+#, c-format
+msgid "FTP"
+msgstr "FTP"
+
+#: any.pm:1342
+#, c-format
+msgid "NFS"
+msgstr "NFS"
+
+#: any.pm:1361 steps_interactive.pm:979
+#, c-format
+msgid "Network"
+msgstr "Netzwerk"
+
+#: any.pm:1365
+#, c-format
+msgid "Please choose a media"
+msgstr "Bitte wählen Sie ein Medium"
+
+#: any.pm:1381
+#, c-format
+msgid "File already exists. Overwrite it?"
+msgstr "Die Datei existiert bereits. Überschreiben?"
+
+#: any.pm:1385
+#, c-format
+msgid "Permission denied"
+msgstr "Erlaubnis verweigert"
+
+#: any.pm:1433
+#, c-format
+msgid "Bad NFS name"
+msgstr "Fehlerhafter NFS-Name"
+
+#: any.pm:1454
+#, c-format
+msgid "Bad media %s"
+msgstr "Fehlerhaftes Medium %s"
+
+#: any.pm:1498
+#, c-format
+msgid "Cannot make screenshots before partitioning"
+msgstr "Vor der Partitionierung können keine Screenshots erstellt werden"
+
+#: any.pm:1509
+#, c-format
+msgid "Screenshots will be available after install in %s"
+msgstr "Die Screenshots sind nach der Installation unter „%s“ verfügbar"
+
+#: gtk.pm:134
+#, c-format
+msgid "Installation"
+msgstr "Installation"
+
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
+#, c-format
+msgid "Configuration"
+msgstr "Konfiguration"
+
+#: install2.pm:220
+#, c-format
+msgid "You must also format %s"
+msgstr "Sie müssen auch %s formatieren."
+
+#: interactive.pm:16
+#, c-format
+msgid ""
+"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
+"You can find some information about them at: %s"
+msgstr ""
+"Einige Hardware-Komponenten Ihres Rechners benötigen „proprietäre“\n"
+"Treiber. Weitere Infos hierzu finden Sie unter: %s"
+
+#: interactive.pm:22
+#, c-format
+msgid "Bringing up the network"
+msgstr "Netzwerkverbindung herstellen"
+
+#: interactive.pm:27
+#, c-format
+msgid "Bringing down the network"
+msgstr "Netzwerkverbindung trennen"
+
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr "Bitte warten, Datei wird empfangen"
+
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "Es ist nicht möglich, das Medium hinzuzufügen"
+
+#: media.pm:744
+#, c-format
+msgid "Copying some packages on disks for future use"
+msgstr "Pakete auf die Festplatte speichern für die spätere Verwendung"
+
+#: media.pm:797
+#, c-format
+msgid "Copying in progress"
+msgstr "Dateien werden kopiert"
+
+#: pkgs.pm:32
+#, c-format
+msgid "must have"
+msgstr "unbedingt notwendig"
+
+#: pkgs.pm:33
+#, c-format
+msgid "important"
+msgstr "wichtig"
+
+#: pkgs.pm:34
+#, c-format
+msgid "very nice"
+msgstr "sehr angenehm"
+
+#: pkgs.pm:35
+#, c-format
+msgid "nice"
+msgstr "angenehm"
+
+#: pkgs.pm:36
+#, c-format
+msgid "maybe"
+msgstr "eventuell"
+
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "Paket-Informationen aus den XML-Metadaten beziehen..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Keine XML-Informationen für das Medium „%s“ vorhanden, es können nur "
+"Teilergebnisse für das Paket %s angegeben werden"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Keine Beschreibung"
+
+#: pkgs.pm:290
+#, c-format
+msgid ""
+"Some packages requested by %s cannot be installed:\n"
+"%s"
+msgstr ""
+"Einige der ausgewählten Programme von %s können nicht installiert werden:\n"
+"%s"
+
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "Ein Fehler ist aufgetreten:"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "Es ist ein fataler Fehler aufgetreten: %s."
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr "Nicht erneut fragen"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d Installationstransaktionen fehlgeschlagen"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Installieren der Pakete ist fehlgeschlagen:"
+
+#: share/meta-task/compssUsers.pl:16
+#, c-format
+msgid "Workstation"
+msgstr "Arbeitsplatzrechner"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Büro-Arbeitsplatz"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
+msgid ""
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
+msgstr ""
+"Office-Programme: Textverarbeitung (LibreOffice Writer, KWord), "
+"Tabellenkalkulation (LibreOffice Calc, KSpread), PDF-Betrachter, usw."
+
+#: share/meta-task/compssUsers.pl:26
+#, c-format
+msgid "Game station"
+msgstr "Spiele-Station"
+
+#: share/meta-task/compssUsers.pl:27
+#, c-format
+msgid "Amusement programs: arcade, boards, strategy, etc"
+msgstr "Spiele: Arkade-, Brett-, Strategiespiele, usw."
+
+#: share/meta-task/compssUsers.pl:30
+#, c-format
+msgid "Multimedia station"
+msgstr "Multimedia-Station"
+
+#: share/meta-task/compssUsers.pl:31
+#, c-format
+msgid "Sound and video playing/editing programs"
+msgstr "Programme, um Audio und Video abzuspielen und zu bearbeiten"
+
+#: share/meta-task/compssUsers.pl:36
+#, c-format
+msgid "Internet station"
+msgstr "Internet-Station"
+
+#: share/meta-task/compssUsers.pl:37
+#, c-format
+msgid ""
+"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
+"Web"
+msgstr ""
+"Programme um E-Mails und News zu lesen und zu versenden (pine, mutt, tin..) "
+"und um im Internet zu surfen"
+
+#: share/meta-task/compssUsers.pl:42
+#, c-format
+msgid "Network Computer (client)"
+msgstr "Netzwerk-Computer (Client)"
+
+#: share/meta-task/compssUsers.pl:43
+#, c-format
+msgid "Clients for different protocols including ssh"
+msgstr "Clients für verschiedene Protokolle, u.a. SSH"
+
+#: share/meta-task/compssUsers.pl:49
+#, c-format
+msgid "Tools to ease the configuration of your computer"
+msgstr "Werkzeuge, die die Konfiguration Ihres Computers erleichtern"
+
+#: share/meta-task/compssUsers.pl:53
+#, c-format
+msgid "Console Tools"
+msgstr "Konsolen-Werkzeuge"
+
+#: share/meta-task/compssUsers.pl:54
+#, c-format
+msgid "Editors, shells, file tools, terminals"
+msgstr "Editoren, Shells, Dateiwerkzeuge, Konsolen"
+
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
+#, c-format
+msgid "Development"
+msgstr "Entwicklung"
+
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
+#, c-format
+msgid "C and C++ development libraries, programs and include files"
+msgstr "C- und C++-Entwicklungsbibliotheken, Programme und Include-Dateien"
+
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
+#, c-format
+msgid "Documentation"
+msgstr "Dokumentation"
+
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
+#, c-format
+msgid "Books and Howto's on Linux and Free Software"
+msgstr "Bücher und HOWTOs zu GNU/Linux und Freier Software"
+
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
+#, c-format
+msgid "LSB"
+msgstr "LSB"
+
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
+#, c-format
+msgid "Linux Standard Base. Third party applications support"
+msgstr "Linux-Standard-Base. Drittanbieterunterstützung"
+
+#: share/meta-task/compssUsers.pl:79
+#, c-format
+msgid "Web Server"
+msgstr "Webserver"
+
+#: share/meta-task/compssUsers.pl:80
+#, c-format
+msgid "Apache"
+msgstr "Apache"
+
+#: share/meta-task/compssUsers.pl:84
+#, c-format
+msgid "Groupware"
+msgstr "Groupware"
+
+#: share/meta-task/compssUsers.pl:85
+#, c-format
+msgid "Kolab Server"
+msgstr "Kolab-Server"
+
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
+#, c-format
+msgid "Firewall/Router"
+msgstr "Firewall/Router"
+
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
+#, c-format
+msgid "Internet gateway"
+msgstr "Internet-Gateway"
+
+#: share/meta-task/compssUsers.pl:92
+#, c-format
+msgid "Mail/News"
+msgstr "E-Mail/News"
+
+#: share/meta-task/compssUsers.pl:93
+#, c-format
+msgid "Postfix mail server, Inn news server"
+msgstr "Postfix-Mail-Server, Inn-News-Server"
+
+#: share/meta-task/compssUsers.pl:97
+#, c-format
+msgid "Directory Server"
+msgstr "Verzeichnisdienst"
+
+#: share/meta-task/compssUsers.pl:102
+#, c-format
+msgid "FTP Server"
+msgstr "FTP-Server"
+
+#: share/meta-task/compssUsers.pl:103
+#, c-format
+msgid "ProFTPd"
+msgstr "ProFTPd"
+
+#: share/meta-task/compssUsers.pl:107
+#, c-format
+msgid "DNS/NIS"
+msgstr "DNS/NIS"
+
+#: share/meta-task/compssUsers.pl:108
+#, c-format
+msgid "Domain Name and Network Information Server"
+msgstr "Domänennamen- und Netzwerk-Informations-Server"
+
+#: share/meta-task/compssUsers.pl:112
+#, c-format
+msgid "File and Printer Sharing Server"
+msgstr "Datei- und Druckerserver"
+
+#: share/meta-task/compssUsers.pl:113
+#, c-format
+msgid "NFS Server, Samba server"
+msgstr "NFS-Server, Samba-Server"
+
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
+#, c-format
+msgid "Database"
+msgstr "Datenbank"
+
+#: share/meta-task/compssUsers.pl:118
+#, c-format
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "PostgreSQL- und MariaDB-Datenbankserver"
+
+#: share/meta-task/compssUsers.pl:123
+#, c-format
+msgid "Web/FTP"
+msgstr "Web/FTP"
+
+#: share/meta-task/compssUsers.pl:124
+#, c-format
+msgid "Apache, Pro-ftpd"
+msgstr "Apache, Pro-ftpd"
+
+#: share/meta-task/compssUsers.pl:128
+#, c-format
+msgid "Mail"
+msgstr "E-Mail"
+
+#: share/meta-task/compssUsers.pl:129
+#, c-format
+msgid "Postfix mail server"
+msgstr "Postfix-Mail-Server"
+
+#: share/meta-task/compssUsers.pl:134
+#, c-format
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL- oder MariaDB-Datenbankserver"
+
+#: share/meta-task/compssUsers.pl:142
+#, c-format
+msgid "Network Computer server"
+msgstr "Netzwerkrechner-Server"
+
+#: share/meta-task/compssUsers.pl:143
+#, c-format
+msgid "NFS server, SMB server, Proxy server, ssh server"
+msgstr "NFS-Server, SMB-Server, Proxy-Server, SSH-Server"
+
+#: share/meta-task/compssUsers.pl:150
+#, c-format
+msgid "Graphical Environment"
+msgstr "Grafische Umgebung"
+
+#: share/meta-task/compssUsers.pl:152
+#, c-format
+msgid "Plasma Workstation"
+msgstr "Plasma-Arbeitsplatz"
+
+#: share/meta-task/compssUsers.pl:153
+#, c-format
+msgid ""
+"The K Desktop Environment, the basic graphical environment with a collection "
+"of accompanying tools"
+msgstr ""
+"Das K Desktop Environment, die grundlegende grafische Umgebung mit einer "
+"Sammlung zugehöriger Programme"
+
+#: share/meta-task/compssUsers.pl:158
+#, c-format
+msgid "GNOME Workstation"
+msgstr "GNOME-Arbeitsplatz"
+
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
+#, c-format
+msgid ""
+"A graphical environment with user-friendly set of applications and desktop "
+"tools"
+msgstr ""
+"Eine grafische Umgebung mit benutzerfreundlichen Anwendungen und Werkzeugen"
+
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr "Xfce-Arbeitsplatz "
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Eine schlankere grafische Umgebung mit benutzerfreundlichen Anwendungen und "
+"Werkzeugen"
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "MATE-Arbeitsplatz"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Cinnamon-Arbeitsplatz"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Eine auf GNOME basierende grafische Umbgebung"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "LXQt-Desktop"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+"Qt-Portierung der leichtgewichtigen Desktop-Umgebung der nächsten Generation"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr "Enlightenment Desktop"
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+"Eine schlanke und schnelle grafische Umgebung mit benutzerfreundlichen "
+"Anwendungen und Werkzeugen"
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "LXDE-Desktop"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Eine leichtgewichtige und schnelle grafische Umgebung"
+
+#: share/meta-task/compssUsers.pl:194
+#, c-format
+msgid "Other Graphical Desktops"
+msgstr "Andere grafische Oberflächen"
+
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, usw."
+
+#: share/meta-task/compssUsers.pl:218
+#, c-format
+msgid "Utilities"
+msgstr "Dienstprogramme"
+
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
+#, c-format
+msgid "SSH Server"
+msgstr "SSH-Server"
+
+#: share/meta-task/compssUsers.pl:225
+#, c-format
+msgid "Webmin"
+msgstr "Webmin"
+
+#: share/meta-task/compssUsers.pl:226
+#, c-format
+msgid "Webmin Remote Configuration Server"
+msgstr "Webmin-Fernkonfigurationsserver"
+
+#: share/meta-task/compssUsers.pl:230
+#, c-format
+msgid "Network Utilities/Monitoring"
+msgstr "Netzwerkwerkzeuge/-überwachung"
+
+#: share/meta-task/compssUsers.pl:231
+#, c-format
+msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
+msgstr "Überwachungswerkzeuge, Prozessverwaltung, tcpdump, nmap, ..."
+
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr "Mageia-Assistenten"
+
+#: share/meta-task/compssUsers.pl:236
+#, c-format
+msgid "Wizards to configure server"
+msgstr "Assistenten zur Servereinrichtung"
+
+#: steps.pm:85
+#, c-format
+msgid ""
+"An error occurred, but I do not know how to handle it nicely.\n"
+"Continue at your own risk."
+msgstr ""
+"Es trat ein Fehler auf. Ich weiß jedoch nicht, wie ich damit umgehen soll. "
+"Sie können fortfahren, jedoch auf eigenes Risiko!"
+
+#: steps.pm:469
+#, c-format
+msgid ""
+"Some important packages did not get installed properly.\n"
+"Either your cdrom drive or your cdrom is defective.\n"
+"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
+"\"\n"
+msgstr ""
+"Einige wichtige Pakete wurden nicht richtig installiert. \n"
+"Entweder ist Ihr CD-ROM-Laufwerk oder Ihre CD-ROM defekt. \n"
+"Testen Sie die CD-ROM auf einem Linux-Rechner mittels „rpm -qpl \n"
+"media/main/*.rpm“\n"
+
+#: steps_auto_install.pm:71 steps_stdio.pm:27
+#, c-format
+msgid "Entering step `%s'\n"
+msgstr "Beginn von Schritt „%s“\n"
+
+#: steps_curses.pm:22
+#, c-format
+msgid "%s Installation %s"
+msgstr "%s Installation %s"
+
+#: steps_curses.pm:32
+#, c-format
+msgid "<Tab>/<Alt-Tab> between elements"
+msgstr "<Tab>/<Alt-Tab> zwischen den Elementen"
+
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Der Xorg-Server braucht lange zum Starten. Bitte warten Sie..."
+
+#: steps_gtk.pm:216
+#, c-format
+msgid ""
+"Your system is low on resources. You may have some problem installing\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
+"press `F1' when booting on CDROM, then enter `text'."
+msgstr ""
+"Ihr System hat nur geringe Ressourcen. Sie werden eventuell Probleme haben, "
+"%s zu installieren.\n"
+"Wenn dies auftritt, können Sie versuchen, Mageia mit einer textbasierten "
+"Benutzerschnittstelle zu installieren. Drücken Sie dafür „F1“, wenn Sie von "
+"der CD-Rom installieren, dann geben Sie „text“ ein."
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Auswahl der Installationsmedien"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Den %s-Plasma-Desktop installieren"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Den %s-GNOME-Desktop installieren"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Benutzerdefinierte Installation"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Plasma-Desktop"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "GNOME-Desktop"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Benutzerdefinierter Desktop"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Hier sehen Sie eine Vorschau des „%s“-Desktops"
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Klicken Sie auf die Bilder, um größere Vorschauen zu erhalten"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
+#, c-format
+msgid "Package Group Selection"
+msgstr "Auswahl der Paketgruppen"
+
+#: steps_gtk.pm:354 steps_interactive.pm:626
+#, c-format
+msgid "Individual package selection"
+msgstr "Individuelle Paketauswahl"
+
+#: steps_gtk.pm:361
+#, c-format
+msgid "Unselect All"
+msgstr "Auswahl aufheben"
+
+#: steps_gtk.pm:380 steps_interactive.pm:538
+#, c-format
+msgid "Total size: %d / %d MB"
+msgstr "Gesamtgröße: %d / %d MB"
+
+#: steps_gtk.pm:425
+#, c-format
+msgid "Version: "
+msgstr "Version:"
+
+#: steps_gtk.pm:426
+#, c-format
+msgid "Size: "
+msgstr "Größe:"
+
+#: steps_gtk.pm:426
+#, c-format
+msgid "%d KB\n"
+msgstr "%d kB\n"
+
+#: steps_gtk.pm:427
+#, c-format
+msgid "Importance: "
+msgstr "Wichtigkeit:"
+
+#: steps_gtk.pm:462
+#, c-format
+msgid "You cannot select/unselect this package"
+msgstr "Sie können dieses Paket nicht auswählen/abwählen."
+
+#: steps_gtk.pm:466
+#, c-format
+msgid "due to missing %s"
+msgstr "wegen fehlendem %s"
+
+#: steps_gtk.pm:467
+#, c-format
+msgid "due to unsatisfied %s"
+msgstr "wegen nicht erfüllter Abhängigkeit von %s "
+
+#: steps_gtk.pm:468
+#, c-format
+msgid "trying to promote %s"
+msgstr "Es wird versucht, %s voranzubringen"
+
+#: steps_gtk.pm:469
+#, c-format
+msgid "in order to keep %s"
+msgstr "um %s zu behalten"
+
+#: steps_gtk.pm:474
+#, c-format
+msgid ""
+"You cannot select this package as there is not enough space left to install "
+"it"
+msgstr ""
+"Sie können dieses Paket nicht auswählen, da Sie nicht genug Plattenplatz "
+"haben."
+
+#: steps_gtk.pm:477
+#, c-format
+msgid "The following packages are going to be installed"
+msgstr "Die folgenden Pakete werden installiert"
+
+#: steps_gtk.pm:478
+#, c-format
+msgid "The following packages are going to be removed"
+msgstr "Die folgenden Pakete werden entfernt"
+
+#: steps_gtk.pm:504
+#, c-format
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr "Dieses Paket ist existenziell, sie können es nicht abwählen!"
+
+#: steps_gtk.pm:506
+#, c-format
+msgid "You cannot unselect this package. It is already installed"
+msgstr ""
+"Sie können dieses Paket nicht aus der Auswahl entfernen. \n"
+"Es ist bereits installiert!"
+
+#: steps_gtk.pm:508
+#, c-format
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr ""
+"Sie können dieses Paket nicht aus der Auswahl entfernen. \n"
+"Es muss aktualisiert werden!"
+
+#: steps_gtk.pm:512
+#, c-format
+msgid "Show automatically selected packages"
+msgstr "Automatisch markierte Pakete anzeigen"
+
+#: steps_gtk.pm:516
+#, c-format
+msgid "Install"
+msgstr "Installieren"
+
+#: steps_gtk.pm:519
+#, c-format
+msgid "Load/Save selection"
+msgstr "Auswahl laden/speichern"
+
+#: steps_gtk.pm:520 steps_gtk.pm:525
+#, c-format
+msgid "Updating package selection"
+msgstr "Erneuere Paket Auswahl"
+
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr "Zwischen hierarchischer und flacher Paketliste wechseln"
+
+#: steps_gtk.pm:530
+#, c-format
+msgid "Minimal install"
+msgstr "Minimal-Installation"
+
+#: steps_gtk.pm:543
+#, c-format
+msgid "Software Management"
+msgstr "Software-Verwaltung"
+
+#: steps_gtk.pm:543 steps_interactive.pm:415
+#, c-format
+msgid "Choose the packages you want to install"
+msgstr "Zu installierende Pakete auswählen"
+
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
+#, c-format
+msgid "Installing"
+msgstr "Wird installiert"
+
+#: steps_gtk.pm:590
+#, c-format
+msgid "No details"
+msgstr "Keine Details"
+
+#: steps_gtk.pm:610
+#, c-format
+msgid "Time remaining:"
+msgstr "Verbleibende Zeit "
+
+#: steps_gtk.pm:611
+#, c-format
+msgid "(estimating...)"
+msgstr "(Schätzen...)"
+
+#: steps_gtk.pm:637
+#, c-format
+msgid "%d package"
+msgid_plural "%d packages"
+msgstr[0] ""
+msgstr[1] ""
+
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
+#, c-format
+msgid "Summary"
+msgstr "Zusammenfassung"
+
+#: steps_gtk.pm:713
+#, c-format
+msgid "Configure"
+msgstr "Einrichten"
+
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
+#, c-format
+msgid "not configured"
+msgstr "Nicht eingerichtet"
+
+#: steps_gtk.pm:773 steps_interactive.pm:315
+#, c-format
+msgid ""
+"The following installation media have been found.\n"
+"If you want to skip some of them, you can unselect them now."
+msgstr ""
+"Die folgenden Installationsmedien wurden gefunden.\n"
+"Wählen Sie die Medien ab, die Sie überspringen wollen."
+
+#: steps_gtk.pm:789 steps_interactive.pm:321
+#, c-format
+msgid ""
+"You have the option to copy the contents of the CDs onto the hard disk drive "
+"before installation.\n"
+"It will then continue from the hard disk drive and the packages will remain "
+"available once the system is fully installed."
+msgstr ""
+"Sie haben die Möglichkeit, den Inhalt der CDs vor der Installation auf "
+"Festplatte zu kopieren. Die Installation wird dann von Festplatte "
+"fortgeführt und die Softwarepakete bleiben verfügbar, nachdem das System "
+"fertig installiert ist."
+
+#: steps_gtk.pm:791 steps_interactive.pm:323
+#, c-format
+msgid "Copy whole CDs"
+msgstr "Kopiere die CDs"
+
+#: steps_interactive.pm:40
+#, c-format
+msgid "An error occurred"
+msgstr "Ein Fehler ist aufgetreten"
+
+#: steps_interactive.pm:105
+#, c-format
+msgid "Please choose your keyboard layout"
+msgstr "Bitte wählen Sie Ihr Tastaturlayout"
+
+#: steps_interactive.pm:109
+#, c-format
+msgid "Here is the full list of available keyboards:"
+msgstr "Komplette Liste aller verfügbarer Tastaturlayouts"
+
+#: steps_interactive.pm:153
+#, c-format
+msgid "Install/Upgrade"
+msgstr "Installation/Aktualisierung"
+
+#: steps_interactive.pm:157
+#, c-format
+msgid "Is this an install or an upgrade?"
+msgstr "Handelt es sich um eine Installation oder eine Aktualisierung?"
+
+#: steps_interactive.pm:159
+#, c-format
+msgid ""
+"_: This is a noun:\n"
+"Install"
+msgstr "Installation"
+
+#: steps_interactive.pm:161
+#, c-format
+msgid "Upgrade %s"
+msgstr "Aktualisiere %s"
+
+#: steps_interactive.pm:184
+#, c-format
+msgid "Encryption key for %s"
+msgstr "Schlüssel für %s"
+
+#: steps_interactive.pm:217
+#, c-format
+msgid "Cancel installation, reboot system"
+msgstr "Installation abbrechen, das System neustarten"
+
+#: steps_interactive.pm:218
+#, c-format
+msgid "New Installation"
+msgstr "Neuinstallation"
+
+#: steps_interactive.pm:219
+#, c-format
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Bestehende Installation aktualisieren (nicht empfohlen)"
+
+#: steps_interactive.pm:223
+#, c-format
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
+"Das Installationsprogramm hat festgestellt, dass Ihr Linux System nicht\n"
+"sicher zu %s aktualisiert werden kann.\n"
+"\n"
+"Eine Neuinstallation, die Ihre bisherige ersetzt, wird empfohlen.\n"
+"\n"
+"Warnung: Sie sollten all Ihre persönlichen Daten sichern, bevor Sie \"Neu\n"
+" Installation\" wählen."
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "Konfiguriere CD/DVD"
+
+#: steps_interactive.pm:354
+#, c-format
+msgid ""
+"Change your Cd-Rom!\n"
+"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
+"done.\n"
+"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
+msgstr ""
+"Bitte wechseln Sie die CD!\n"
+"Bitte legen Sie die CD-ROM „%s“ in Ihr Laufwerk. Drücken Sie dann auf „OK“.\n"
+"Falls Sie sie nicht vorliegen haben, drücken Sie auf „Abbrechen“."
+
+#: steps_interactive.pm:372 steps_interactive.pm:490
+#, c-format
+msgid "Looking for available packages..."
+msgstr "Suche nach verfügbaren Paketen ..."
+
+#: steps_interactive.pm:380
+#, c-format
+msgid ""
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
+msgstr ""
+"Das System hat für die Installation oder das Update nicht genug freien "
+"Speicher (%dMB > %dMB)"
+
+#: steps_interactive.pm:428
+#, c-format
+msgid ""
+"Please choose load or save package selection.\n"
+"The format is the same as auto_install generated files."
+msgstr ""
+"Bitte wählen Sie, ob die Paketauswahl geladen oder\n"
+"gespeichert werden soll. Es handelt sich um das gleiche\n"
+"Format, wie die unter „auto_install“ erzeugten Disketten."
+
+#: steps_interactive.pm:430
+#, c-format
+msgid "Load"
+msgstr "Laden"
+
+#: steps_interactive.pm:430
+#, c-format
+msgid "Save"
+msgstr "Speichern"
+
+#: steps_interactive.pm:438
+#, c-format
+msgid "Bad file"
+msgstr "Datei fehlerhaft"
+
+#: steps_interactive.pm:455
+#, c-format
+msgid "Plasma"
+msgstr "Plasma"
+
+#: steps_interactive.pm:456
+#, c-format
+msgid "GNOME"
+msgstr "GNOME"
+
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr "Desktop-Auswahl"
+
+#: steps_interactive.pm:460
+#, c-format
+msgid "You can choose your workstation desktop profile."
+msgstr "Sie haben die Wahl zwischen verschiedenen Desktopprofilen."
+
+#: steps_interactive.pm:552
+#, c-format
+msgid "Selected size is larger than available space"
+msgstr "Gewünschte Größe übersteigt den verfügbaren Platz"
+
+#: steps_interactive.pm:576
+#, c-format
+msgid "Type of install"
+msgstr "Installationstyp"
+
+#: steps_interactive.pm:577
+#, c-format
+msgid ""
+"You have not selected any group of packages.\n"
+"Please choose the minimal installation you want:"
+msgstr ""
+"Sie haben keine Paketgruppe ausgewählt.\n"
+"Bitte wählen Sie die minimale Installation, die Sie wünschen."
+
+#: steps_interactive.pm:582
+#, c-format
+msgid "With X"
+msgstr "Mit X (grafischem Server)"
+
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Empfohlene Pakete installieren"
+
+#: steps_interactive.pm:584
+#, c-format
+msgid "With basic documentation (recommended!)"
+msgstr "Mit minimaler Dokumentation (Empfohlen)"
+
+#: steps_interactive.pm:585
+#, c-format
+msgid "Truly minimal install (especially no urpmi)"
+msgstr "Extrem minimale Installation (ohne „urpmi“)"
+
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Die Aktualisierung wird vorbereitet ..."
+
+#: steps_interactive.pm:647
+#, c-format
+msgid "Preparing installation"
+msgstr "Installation wird vorbereitet"
+
+#: steps_interactive.pm:655
+#, c-format
+msgid "Installing package %s"
+msgstr "Paket %s wird installiert"
+
+#: steps_interactive.pm:679
+#, c-format
+msgid "There was an error ordering packages:"
+msgstr "Bei der Anforderung folgender Pakete trat ein Fehler auf:"
+
+#: steps_interactive.pm:679
+#, c-format
+msgid "Go on anyway?"
+msgstr "Wollen Sie trotzdem fortfahren?"
+
+#: steps_interactive.pm:683
+#, c-format
+msgid "Retry"
+msgstr "Wiederholen"
+
+#: steps_interactive.pm:684
+#, c-format
+msgid "Skip this package"
+msgstr "Dieses Paket überspringen"
+
+#: steps_interactive.pm:685
+#, c-format
+msgid "Skip all packages from medium \"%s\""
+msgstr "Alle Pakete vom Medium \"%s\" werden übersprungen"
+
+#: steps_interactive.pm:686
+#, c-format
+msgid "Go back to media and packages selection"
+msgstr "Zurück zu den Medien und zur Paketauswahl"
+
+#: steps_interactive.pm:689
+#, c-format
+msgid "There was an error installing package %s."
+msgstr "Bei der Installation des Paketes %s trat ein Fehler auf."
+
+#: steps_interactive.pm:708
+#, c-format
+msgid "Post-install configuration"
+msgstr "Bereite weitere Konfiguration vor ..."
+
+#: steps_interactive.pm:715
+#, c-format
+msgid "Please ensure the Update Modules media is in drive %s"
+msgstr ""
+"Bitte stellen Sie sicher, dass sich das Update-Modul-Medium im Laufwerk %s "
+"befindet"
+
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
+#, c-format
+msgid "Updates"
+msgstr "Aktualisierungen"
+
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Sie haben nun die Möglichkeit, Onlinemedien einzurichten."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Dies erlaubt Ihnen, Sicherheitsaktualisierungen zu installieren."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"Um diese Medien einzurichten benötigen Sie eine funktionierende\n"
+"Internetverbindung.\n"
+"\n"
+"Möchten Sie die Onlinemedien einrichten?"
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr "Dieser Downloader konnte nicht installiert werden"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Nochmals versuchen?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Fehler beim Hinzufügen des Mediums"
+
+#: steps_interactive.pm:792
+#, c-format
+msgid ""
+"You now have the opportunity to download updated packages. These packages\n"
+"have been updated after the distribution was released. They may\n"
+"contain security or bug fixes.\n"
+"\n"
+"To download these packages, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to install the updates?"
+msgstr ""
+"Sie haben nun die Möglichkeit, Pakete zu installieren, die seit Erscheinen\n"
+"der Distribution aktualisiert wurden. Diese können "
+"Sicherheitsaktualisierungen und Fehlerkorrekturen beinhalten.\n"
+"\n"
+"Allerdings benötigen Sie dafür eine funktionierende Internetverbindung.\n"
+"\n"
+"Möchten Sie die Aktualisierungen vornehmen?"
+
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
+#, c-format
+msgid "%s on %s"
+msgstr "%s auf %s"
+
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
+#, c-format
+msgid "Hardware"
+msgstr "Hardware"
+
+#: steps_interactive.pm:958
+#, c-format
+msgid "Sound card"
+msgstr "Soundkarte"
+
+#: steps_interactive.pm:972
+#, c-format
+msgid "Graphical interface"
+msgstr "Grafikumgebung"
+
+#: steps_interactive.pm:978 steps_interactive.pm:990
+#, c-format
+msgid "Network & Internet"
+msgstr "Netzwerk & Internet"
+
+#: steps_interactive.pm:991
+#, c-format
+msgid "Proxies"
+msgstr "Proxys"
+
+#: steps_interactive.pm:992
+#, c-format
+msgid "configured"
+msgstr "konfiguriert"
+
+#: steps_interactive.pm:1002
+#, c-format
+msgid "Security Level"
+msgstr "Sicherheitsebene"
+
+#: steps_interactive.pm:1022
+#, c-format
+msgid "Firewall"
+msgstr "Firewall"
+
+#: steps_interactive.pm:1026
+#, c-format
+msgid "activated"
+msgstr "aktiviert"
+
+#: steps_interactive.pm:1026
+#, c-format
+msgid "disabled"
+msgstr "deaktiviert"
+
+#: steps_interactive.pm:1041
+#, c-format
+msgid "You have not configured X. Are you sure you really want this?"
+msgstr "Sie haben X nicht konfiguriert. Sind Sie sicher?"
+
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
+#, c-format
+msgid "Preparing initial startup program..."
+msgstr "Initiale Systemstartprogramme vorbereiten..."
+
+#: steps_interactive.pm:1073
+#, c-format
+msgid "Be patient, this may take a while..."
+msgstr "Ein wenig Geduld, dies kann einige Zeit dauern..."
+
+#: steps_interactive.pm:1089
+#, c-format
+msgid ""
+"In this security level, access to the files in the Windows partition is "
+"restricted to the administrator."
+msgstr ""
+"In dieser Sicherheitsebene ist der Zugriff auf Dateien der Windows-Partition "
+"nur dem Administrator erlaubt"
+
+#: steps_interactive.pm:1121
+#, c-format
+msgid "Insert a blank floppy in drive %s"
+msgstr "Legen Sie eine leere Diskette in das Laufwerk %s ein."
+
+#: steps_interactive.pm:1123
+#, c-format
+msgid "Creating auto install floppy..."
+msgstr "Erstelle eine Auto-Installationsdiskette"
+
+#: steps_interactive.pm:1134
+#, c-format
+msgid ""
+"Some steps are not completed.\n"
+"\n"
+"Do you really want to quit now?"
+msgstr ""
+"Einige Schritte sind noch nicht komplett.\n"
+"\n"
+"Wollen Sie DrakX wirklich beenden?"
+
+#: steps_interactive.pm:1144
+#, c-format
+msgid "Congratulations"
+msgstr "Herzlichen Glückwunsch!"
+
+#: steps_interactive.pm:1147
+#, c-format
+msgid "Reboot"
+msgstr "Neustart"
+
+#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
+#: steps_list.pm:16
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Language"
+msgstr "Sprache auswählen"
+
+#: steps_list.pm:16 steps_list.pm:23
+#, c-format
+msgid "Localization"
+msgstr "Lokalisierung"
+
+#: steps_list.pm:17
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"License"
+msgstr "Lizenz"
+
+#: steps_list.pm:18
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Mouse"
+msgstr "Maus"
+
+#: steps_list.pm:19 steps_list.pm:20
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Hard drive detection"
+msgstr "Festplatten suchen"
+
+#: steps_list.pm:21 steps_list.pm:22
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Installation class"
+msgstr "Installationsgruppe"
+
+#: steps_list.pm:23
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Keyboard"
+msgstr "Tastatur"
+
+#: steps_list.pm:24
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Security"
+msgstr "Sicherheit"
+
+#: steps_list.pm:25
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Partitioning"
+msgstr "Partitionierung"
+
+#: steps_list.pm:27 steps_list.pm:28
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Formatting"
+msgstr "Formatierung"
+
+#: steps_list.pm:29
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Choosing packages"
+msgstr "Pakete auswählen"
+
+#: steps_list.pm:31
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Installing"
+msgstr "Installation"
+
+#: steps_list.pm:34
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Users"
+msgstr "Benutzer"
+
+#: steps_list.pm:38 steps_list.pm:39
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Bootloader"
+msgstr "Bootloader"
+
+#: steps_list.pm:40 steps_list.pm:41
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Configure X"
+msgstr "X konfigurieren"
+
+#: steps_list.pm:42
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Summary"
+msgstr "Zusammenfassung"
+
+#: steps_list.pm:44 steps_list.pm:45
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Services"
+msgstr "Dienste"
+
+#: steps_list.pm:46
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Updates"
+msgstr "Aktualisierungen"
+
+#: steps_list.pm:48
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Exit"
+msgstr "Verlassen"
diff --git a/perl-install/install/share/po/el.po b/perl-install/install/share/po/el.po
index 09b85f01c..576a2a026 100644
--- a/perl-install/install/share/po/el.po
+++ b/perl-install/install/share/po/el.po
@@ -1,30 +1,87 @@
-# translation of DrakX-el.po to Greek
-# Greek translation for drakfloppy.
-# Copyright (C) 2001,2003 Free Software Foundation, Inc.
-# Thanos Kyritsis <djart@hellug.gr>, 2001.
-# Νίκος Νύκταρης (Nick Niktaris) <niktarin@yahoo.com>, 2003
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Dimitrios Glentadakis <dglent@free.fr>, 2022
+# Dimitrios Glentadakis <dglent@gmail.com>, 2009-2016
+# Dimitrios Glentadakis <dglent@gmail.com>, 2009-2016, 2018,2020
+# nikos papadopoulos <231036448@freemail.gr>, 2008
+# Thanos Kyritsis <djart@hellug.gr>, 2001
+# Theofilos Chamalis <theofxam@gmail.com>, 2015
+# Νίκος Νύκταρης (Nick Niktaris) <niktarin@yahoo.com>, 2003
msgid ""
msgstr ""
-"Project-Id-Version: DrakX-el\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2004-09-15 13:28+0200\n"
-"Last-Translator: Νίκος Νύκταρης (Nick Niktaris) <niktarin@yahoo.com>\n"
-"Language-Team: Greek <nls@tux.hellug.gr>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2013-04-04 13:31+0000\n"
+"Last-Translator: Dimitrios Glentadakis <dglent@free.fr>, 2022\n"
+"Language-Team: Greek (http://app.transifex.com/MageiaLinux/mageia/language/"
+"el/)\n"
+"Language: el\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.0.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: any.pm:155
-#, fuzzy, c-format
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Ελάτε μαζί μας!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Κάντε τη δική σας!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "Η επιλογή σας!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Εργαλεία γραφείου"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Οικιακή ψυχαγωγία"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "Για τα παιδιά"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "Για την οικογένεια!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "Για προγραμματιστές!"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Ευχαριστούμε!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Ελευθερωθείτε!"
+
+#: any.pm:151
+#, c-format
msgid "Do you have further supplementary media?"
-msgstr "Έχετε άλλον;"
+msgstr "Έχετε άλλα πρόσθετα μέσα ενημέρωσης;"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -32,144 +89,166 @@ msgid ""
"\n"
"Do you have a supplementary installation medium to configure?"
msgstr ""
+"Βρέθηκαν τα ακόλουθα μέσα και θα χρησιμοποιηθούν κατά την εγκατάσταση: %s.\n"
+"\n"
+"\n"
+"Έχετε κάποιο συμπληρωματικό μέσο εγκατάστασης για ρύθμιση;"
-#: any.pm:166
+#: any.pm:162
#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
-#, fuzzy, c-format
msgid "Network (HTTP)"
-msgstr "Δίκτυο %s"
+msgstr "Δίκτυο (HTTP)"
-#: any.pm:168
-#, fuzzy, c-format
+#: any.pm:163
+#, c-format
msgid "Network (FTP)"
-msgstr "Δίκτυο %s"
+msgstr "Δίκτυο (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
-msgstr ""
+msgstr "Δίκτυο (NFS)"
-#: any.pm:211
+#: any.pm:224
#, c-format
-msgid "URL of the mirror?"
-msgstr ""
+msgid "NFS setup"
+msgstr "Ρύθμιση NFS"
-#: any.pm:217
+#: any.pm:225
#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr ""
+msgid "Please enter the hostname and directory of your NFS media"
+msgstr "Παρακαλώ εισάγετε το όνομα υπολογιστή και τη διαδρομή του μέσου NFS"
-#: any.pm:228
+#: any.pm:229
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Σύνδεση με την τοποθεσία της Mandriva Linux για λήψη των διαθέσιμων τόπων "
-"λήψης..."
+msgid "Hostname missing"
+msgstr "Λείπει το όνομα υπολογιστή"
+
+#: any.pm:230
+#, c-format
+msgid "Directory must begin with \"/\""
+msgstr "Ο κατάλογος πρέπει να αρχίζει με «/»"
+
+#: any.pm:234
+#, c-format
+msgid "Hostname of the NFS mount ?"
+msgstr "Το όνομα υπολογιστή της προσάρτησης NFS;"
+
+#: any.pm:235
+#, c-format
+msgid "Directory"
+msgstr "Κατάλογος"
+
+#: any.pm:265
+#, c-format
+msgid "Supplementary"
+msgstr "Συμπληρωματικά"
-#: any.pm:233
-#, fuzzy, c-format
+#: any.pm:300
+#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+"Can't find a package list file on this mirror. Make sure the location is "
+"correct."
msgstr ""
-"Σύνδεση με την τοποθεσία της Mandriva Linux για λήψη των διαθέσιμων τόπων "
-"λήψης..."
+"Δεν βρέθηκε το αρχείο με την λίστα των πακέτων σε αυτόν τον καθρεπτισμό. "
+"Σιγουρευτείτε ότι η τοποθεσία είναι σωστή."
-#: any.pm:243
+#: any.pm:325
#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Επιλέξτε τόπο από τον οποίο θα γίνει η λήψη πακέτων"
+msgid "Core Release"
+msgstr "Core Release"
-#: any.pm:273
+#: any.pm:327
#, c-format
-msgid "NFS setup"
-msgstr ""
+msgid "Tainted Release"
+msgstr "Tainted Release"
-#: any.pm:274
+#: any.pm:329
#, c-format
-msgid "Please enter the hostname and directory of your NFS media"
-msgstr ""
+msgid "Nonfree Release"
+msgstr "Nonfree Release"
-#: any.pm:278
+#: any.pm:367
#, c-format
-msgid "Hostname missing"
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
+"Στο μηχάνημά σας υπάρχει υλικό που απαιτεί μη ελεύθερο firmware ώστε να "
+"λειτουργούν οι οδηγοί ανοιχτού κώδικα. "
-#: any.pm:279
+#: any.pm:368
#, c-format
-msgid "Directory must begin with \"/\""
-msgstr ""
+msgid "You should enable \"%s\""
+msgstr "Θα πρέπει να ενεργοποιήσετε το «%s»"
-#: any.pm:283
+#: any.pm:419
#, c-format
-msgid "Hostname of the NFS mount ?"
+msgid "\"%s\" contains the various pieces of the systems and its applications"
msgstr ""
+"Το «%s» περιέχει τα διάφορα τμήματα του συστήματος και τις εφαρμογές του"
-#: any.pm:284
+#: any.pm:420
#, c-format
-msgid "Directory"
-msgstr "Κατάλογος"
+msgid "\"%s\" contains non free software.\n"
+msgstr "Το «%s» περιέχει μη ελεύθερο λογισμικό.\n"
-#: any.pm:306
+#: any.pm:421
#, c-format
-msgid "Supplementary"
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
msgstr ""
+"Επίσης, περιέχει firmware που απαιτούνται για την λειτουργία ορισμένων "
+"συσκευών (πχ: μερικές κάρτες γραφικών ATI/AMD, μερικές κάρτες δικτύου, "
+"μερικές κάρτες RAID, ...)"
-#: any.pm:341
-#, fuzzy, c-format
+#: any.pm:422
+#, c-format
msgid ""
-"Can't find a package list file on this mirror. Make sure the location is "
-"correct."
-msgstr "Δεν βρέθηκε το %s στο %s"
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"Το «%s» περιέχει λογισμικό που δεν μπορεί να διανεμηθεί σε όλες τις χώρες "
+"λόγω περιορισμού των διπλωμάτων ευρεσιτεχνίας."
-#: any.pm:375
+#: any.pm:423
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Ψάχνω για ήδη εγκατεστημένα πακέτα..."
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+"Επίσης, περιέχει λογισμικό από το «%s» επαναδημιουργημένο με επιπλέον "
+"χαρακτηριστικά."
-#: any.pm:382
+#: any.pm:429
#, c-format
-msgid "Removing packages prior to upgrade..."
+msgid "Here you can enable more media if you want."
msgstr ""
+"Αν το επιθυμείτε, εδώ μπορείτε να ενεργοποιήσετε περισσότερες πηγές "
+"λογισμικού."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Αυτό το μέσο παρέχει ενημερώσεις πακέτων για το μέσο «%s»"
-#: any.pm:424
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Αναζήτηση στα ήδη εγκατεστημένα πακέτα..."
+
+#: any.pm:593
#, c-format
msgid "Finding packages to upgrade..."
msgstr "Αναζήτηση πακέτων προς αναβάθμιση..."
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:612
#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
-msgstr ""
-"Έχετε επιλέξει τους παρακάτω διακομιστές(η): %s\n"
-"\n"
-"\n"
-"Αυτοί οι διακομιστές είναι εξ ορισμού ενεργεί. Δεν έχουν κάποιο γνωστό "
-"πρόβλημα\n"
-"ασφάλειας, αλλά μπορούν να βρεθούν νέα. Σε αυτή την περίπτωση βεβαιωθείτε "
-"ότι\n"
-"έχετε εγκαταστήσει την τελευταία έκδοση το συντομότερο.\n"
-"\n"
-"\n"
-"Είστε βέβαιοι για την εγκατάσταση αυτών των διακομιστών;\n"
+msgid "Removing packages prior to upgrade..."
+msgstr "Αφαίρεση των πακέτων, πριν την αναβάθμιση..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -182,82 +261,87 @@ msgstr ""
"\n"
"Θέλετε πραγματικά να αφαιρέστε αυτά τα πακέτα;\n"
-#: any.pm:1055
-#, fuzzy, c-format
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Σφάλμα κατά την ανάγνωση του αρχείου %s"
+
+#: any.pm:1283
+#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "Τα παρακάτω πακέτα πρέπει να εγκατασταθούν:\n"
+msgstr "Έγινε μετονομασία των παρακάτω δίσκων:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
-msgstr ""
+msgstr "%s (η προηγούμενη ονομασία ήταν %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Δίκτυο"
-#: any.pm:1137
-#, fuzzy, c-format
+#: any.pm:1365
+#, c-format
msgid "Please choose a media"
-msgstr "Παρακαλώ επιλέξτε"
+msgstr "Παρακαλώ επιλέξτε ένα μέσο"
-#: any.pm:1153
-#, fuzzy, c-format
+#: any.pm:1381
+#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "Το αρχείο υπάρχει ήδη. Να ξαναγραφεί;"
+msgstr "Το αρχείο υπάρχει ήδη. Να αντικατασταθεί;"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
-msgstr "Δεν δόθηκε άδεια"
+msgstr "Άρνηση αδείας"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
-msgstr ""
+msgstr "Μη έγκυρο όνομα NFS"
-#: any.pm:1226
-#, fuzzy, c-format
+#: any.pm:1454
+#, c-format
msgid "Bad media %s"
-msgstr "προστίθεται το μέσο %s"
+msgstr "Μη έγκυρο μέσο %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Αδύνατη η λήψη στιγμιοτύπων πριν από την δημιουργία κατατμήσεων"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
-msgstr "Τα στιγμιότυπα θα είναι διαθέσιμα μετά την εγκατάστασης στο %s"
+msgstr "Τα στιγμιότυπα θα είναι διαθέσιμα μετά την εγκατάσταση στο %s"
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
msgstr "Εγκατάσταση"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Ρύθμιση"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Πρέπει επίσης να μορφοποιήσετε το %s"
@@ -268,389 +352,483 @@ msgid ""
"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
"You can find some information about them at: %s"
msgstr ""
-"Ένα μέρος του υλικού σας χρειάζεται ``ιδιόκτητους'' οδηγούς για να "
+"Ένα μέρος του υλικού σας χρειάζεται «ιδιόκτητους» οδηγούς για να "
"λειτουργήσει.\n"
"Μπορείτε να βρείτε σχετικές πληροφορίες στο: %s"
#: interactive.pm:22
#, c-format
msgid "Bringing up the network"
-msgstr "Εκκίνηση δικτύου"
+msgstr "Εκκίνηση της διεπαφής δικτύου"
#: interactive.pm:27
#, c-format
msgid "Bringing down the network"
-msgstr "Διακοπή λειτουργίας δικτύου"
+msgstr "Διακοπή της διεπαφής δικτύου"
-#: media.pm:703 media.pm:714
-#, fuzzy, c-format
-msgid "Downloading file %s..."
-msgstr "Αποστολή αρχείων..."
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr "Παρακαλώ περιμένετε, γίνεται λήψη του αρχείου"
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "αδυναμία προσθήκης του μέσου"
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
-msgstr ""
+msgstr "Αντιγραφή κάποιων πακέτων στο δίσκο για μελλοντική χρήση"
-#: media.pm:861
-#, fuzzy, c-format
+#: media.pm:797
+#, c-format
msgid "Copying in progress"
-msgstr "Ανίχνευση σε εξέλιξη"
+msgstr "Αντιγραφή σε εξέλιξη"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
-msgstr "πρέπει να υπάρχει"
+msgstr "υποχρεωτικό"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "σημαντικό"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
-msgstr "πολύ καλό"
+msgstr "πολύ χρήσιμο"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
-msgstr "καλό"
+msgstr "χρήσιμο"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "ίσως"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "Λήψη των πληροφοριών του πακέτου από τα μεταδεδομένα XML..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Δεν βρέθηκαν πληροφορίες xml για το μέσο «%s», μόνον εν μέρει αποτελέσματα "
+"για το πακέτο %s"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Χωρίς περιγραφή"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"Κάποια πακέτα που ζητήθηκαν από το %s, δεν μπορούν να εγκατασταθούν:\n"
+"%s"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "Σταθμός Εργασίας"
+msgid "An error occurred:"
+msgstr "Παρουσιάστηκε ένα σφάλμα :"
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Σταθμός Εργασίας Γραφείου"
+msgid "A fatal error occurred: %s."
+msgstr "Παρουσιάστηκε ένα κρίσιμο σφάλμα: %s."
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
-msgstr ""
-"Εργαλεία γραφείου: Επεξεργαστές κειμένου(OpenOffice.org Writer, Kword), "
-"λογιστικά φύλλα (OpenOffice.org Calc, Kspread), αρχεία pdf κλπ"
+msgid "Do not ask again"
+msgstr "Να μην ξαναγίνει η ερώτηση"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d συναλλαγές εγκατάστασης απέτυχαν"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Η εγκατάσταση των πακέτων απέτυχε :"
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "Σταθμός εργασίας"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Σταθμός εργασίας γραφείου"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Εργαλεία γραφείου: Επεξεργαστές κειμένου(kword, abiword), λογιστικά φύλλα "
-"(kspread, gnumeric), αρχεία pdf κλπ"
+"Εργαλεία γραφείου: επεξεργαστές κειμένου (LibreOffice Writer, Kword), "
+"λογιστικών φύλλων (LibreOffice Calc, Kspread), προβολείς pdf, κλπ"
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
-msgstr "Σταθμός παιχνιδιών"
+msgstr "Παιχνίδια"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "Διασκέδαση (παιχνίδια)"
+msgstr ""
+"Προγράμματα διασκέδασης: ηλεκτρονικά παιχνίδια, επιτραπέζια, στρατηγικής, κλπ"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
-msgstr "Σταθμός πολυμέσων"
+msgstr "Πολυμέσα"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
-msgstr "Προγράμματα αναπαραγωγής και διαχείρισης video και ήχου"
+msgstr "Προγράμματα αναπαραγωγής και επεξεργασίας βίντεο και ήχου"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
-msgstr "Σταθμός Διαδικτύου"
+msgstr "Διαδίκτυο"
-#: share/meta-task/compssUsers.pl:32
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:37
+#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-"Εργαλεία για αποστολή και λήψη αλληλογραφίας και ειδήσεων (pine, mutt, "
-"tin...) και περιήγηση στο Διαδίκτυο"
+"Εργαλεία για αποστολή και λήψη αλληλογραφίας και ειδήσεων (mutt, tin...) και "
+"για περιήγηση στο διαδίκτυο"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
-msgstr "Υπολογιστής Δικτύου (πελάτης)"
+msgstr "Υπολογιστής δικτύου (πελάτης)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Πελάτες για διαφορετικά πρωτόκολλα συμπεριλαμβανομένου του ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Εργαλεία για διευκόλυνση της ρύθμισης του υπολογιστή σας"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
-msgstr "Εργαλεία Κονσόλας"
+msgstr "Εργαλεία τερματικού"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
-msgstr "Επεξεργαστές κειμένου, κελύφη, εργαλεία αρχείων, τερματικά"
+msgstr "Επεξεργαστές, κελύφη, εργαλεία αρχείων, τερματικά"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Ανάπτυξη"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
-msgstr "Βιβλιοθήκες ανάπτυξης C και C++, προγράμματα και άλλα αρχεία"
+msgstr "Βιβλιοθήκες ανάπτυξης C και C++, προγράμματα και αρχεία ενσωμάτωσης"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Τεκμηρίωση"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
-msgstr "Βιβλία και οδηγοί για το Linux και το Ελεύθερο Λογισμικό"
+msgstr "Βιβλία και οδηγίες για το Linux και το ελεύθερο λογισμικό"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
-msgstr "Linux Standard Base. Υποστήριξη εφαρμογών τρίτων"
+msgstr "«Linux Standard Base». Υποστήριξη εφαρμογών τρίτων"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
-msgstr "Εξυπηρετητής Ιστοσελίδων"
+msgstr "Εξυπηρετητής ιστού"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:84
+#, c-format
msgid "Groupware"
-msgstr "oμάδα"
+msgstr "Λογισμικό συνεργασίας"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
-msgstr "Εξυπηρετητής του Kolab"
+msgstr "Εξυπηρετητής Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
-msgstr "Τοίχος Προστασίας/Δρομολογητής"
+msgstr "Τείχος προστασίας/Δρομολογητής"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
-msgstr "Πύλη Διαδικτύου"
+msgstr "Πύλη διαδικτύου"
-#: share/meta-task/compssUsers.pl:83
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:92
+#, c-format
msgid "Mail/News"
-msgstr "/Αρχείο/_Νέο"
+msgstr "Αλληλογραφία/Ειδήσεις"
-#: share/meta-task/compssUsers.pl:84
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:93
+#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Εξυπηρετητής ταχυδρομείου Postfix"
+msgstr "Postfix εξυπηρετητής ταχυδρομείου, εξυπηρετητής ειδήσεων Inn"
-#: share/meta-task/compssUsers.pl:87
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:97
+#, c-format
msgid "Directory Server"
-msgstr "Επαναφορά από CD"
+msgstr "Εξυπηρετητής καταλόγων"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
-msgstr "Διακομιστής FTP"
+msgstr "Εξυπηρετητής FTP"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
-msgstr ""
+msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "Εξυπηρετητής Όνομα Τομέα και Πληροφοριών Δικτύου"
+msgstr "Εξυπηρετητής ονομάτων τομέα και πληροφοριών δικτύου"
-#: share/meta-task/compssUsers.pl:99
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:112
+#, c-format
msgid "File and Printer Sharing Server"
-msgstr "Εξυπηρετητής Εκτυπώσεων"
+msgstr "Εξυπηρετητής κοινής χρήσης αρχείων και εκτυπωτών"
-#: share/meta-task/compssUsers.pl:100
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:113
+#, c-format
msgid "NFS Server, Samba server"
-msgstr "Εξυπηρετητής Samba"
+msgstr "Εξυπηρετητής NFS, εξυπηρετητής Samba"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
-msgstr "Βάση Δεδομένων"
+msgstr "Βάση δεδομένων"
-#: share/meta-task/compssUsers.pl:104
-#, fuzzy, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "Εξυπηρετητής βάσης δεδομένων PostgreSQL ή MySQL"
+#: share/meta-task/compssUsers.pl:118
+#, c-format
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "Εξυπηρετητής βάσης δεδομένων PostgreSQL και MariaDB"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
-msgstr "Web/FTP"
+msgstr "Ιστός/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
-msgstr "Ταχυδρομείο"
+msgstr "Αλληλογραφία"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
-msgstr "Εξυπηρετητής ταχυδρομείου Postfix"
+msgstr "Εξυπηρετητής αλληλογραφίας Postfix"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "Εξυπηρετητής βάσης δεδομένων PostgreSQL ή MySQL"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "Εξυπηρετητής βάσης δεδομένων PostgreSQL ή MariaDB"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
-msgstr "Εξυπηρετητής δικτύου"
+msgstr "Εξυπηρετητής υπολογιστών δικτύου"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr ""
-"εξυπηρετητής NFS, εξυπηρετητής SMB, εξυπηρετητής Proxy, εξυπηρετητής ssh"
+"Εξυπηρετητής NFS, εξυπηρετητής SMB, εξυπηρετητής Proxy, εξυπηρετητής ssh"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
-msgstr "Γραφικό Περιβάλλον"
+msgstr "Γραφικό περιβάλλον"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "Σταθμός εργασίας KDE"
+msgid "Plasma Workstation"
+msgstr "Σταθμός εργασίας Plasma"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
-msgstr "Το περιβάλλον γραφείου KDE με μια συλλογή συνοδευτικών εργαλείων"
+msgstr ""
+"Το βασικό περιβάλλον εργασίας KDE με μια συλλογή συνοδευτικών εργαλείων"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "Σταθμός Εργασίας Gnome"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
-msgstr "Γραφικό περιβάλλον με φιλικά εργαλεία και εφαρμογές"
+msgstr "Ένα γραφικό περιβάλλον με φιλικά εργαλεία και εφαρμογές"
-#: share/meta-task/compssUsers.pl:142
-#, fuzzy, c-format
-msgid "IceWm Desktop"
-msgstr "Επιφάνεια εργασίας"
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr "Σταθμός εργασίας Xfce"
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr "Ένα ελαφρύ γραφικό περιβάλλον με φιλικά εργαλεία και εφαρμογές"
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "Σταθμός Εργασίας MATE"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Σταθμός εργασίας Cinnamon"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Γραφικό περιβάλλον βασισμένο στο GNOME"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "Περιβάλλον εργασίας LXQt"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "Μια νέας γενιάς μεταφορά σε Qt του ελαφριού γραφικού περιβάλλοντος"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr "Επιφάνεια εργασίας Enlightenment"
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr "Ένα ελαφρύ & γρήγορο γραφικό περιβάλλον με αφοσιωμένους οπαδούς "
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "Περιβάλλον εργασίας LXDE"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Ένα ελαφρύ και γρήγορο γραφικό περιβάλλον"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Άλλα γραφικά περιβάλλοντα"
-#: share/meta-task/compssUsers.pl:147
-#, fuzzy, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm, κλπ"
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, κλπ"
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Εργαλεία"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "Εξυπηρετητής SSH"
-#: share/meta-task/compssUsers.pl:177
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:225
+#, c-format
msgid "Webmin"
-msgstr "Υπηρεσία Webmin"
+msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:226
+#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Ρύθμιση του Διακομιστή Τερματικού Mandriva"
+msgstr "Webmin εξυπηρετητής απομακρυσμένης ρύθμισης"
-#: share/meta-task/compssUsers.pl:182
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:230
+#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Παρακολούθηση Δικτύου"
+msgstr "Εργαλεία δικτύου/εποπτεία δικτύου"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
-msgstr ""
+msgstr "Εργαλεία εποπτείας, απολογισμός διεργασιών, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
-#, fuzzy, c-format
-msgid "Mandriva Wizards"
-msgstr "Κέντρο Ελέγχου Mandriva Linux"
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr "Οδηγοί Mageia"
-#: share/meta-task/compssUsers.pl:188
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:236
+#, c-format
msgid "Wizards to configure server"
-msgstr "Απέτυχε η ρύθμιση του εκτυπωτή \"%s\"!"
+msgstr "Οδηγοί για τη ρύθμιση του εξυπηρετητή"
#: steps.pm:85
#, c-format
@@ -658,496 +836,618 @@ msgid ""
"An error occurred, but I do not know how to handle it nicely.\n"
"Continue at your own risk."
msgstr ""
-"Προκλήθηκε ένα σφάλμα που δεν ξέρω πώς να το χειριστώ.\n"
+"Παρουσιάστηκε ένα σφάλμα, αλλά δεν ξέρω πώς να το χειριστώ.\n"
"Συνεχίστε με δική σας ευθύνη."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
-"\"\n"
+"Check the cdrom on an installed computer using \"rpm -qpl media/main/*."
+"rpm\"\n"
msgstr ""
"Μερικά σημαντικά πακέτα δεν εγκαταστάθηκαν σωστά.\n"
-"Ο οδηγός CD-ROM ή το CD-ROM είναι ελαττωματικό.\n"
-"Ελέγξτε το CD-ROM σε ένα άλλο σύστημα χρησιμοποιώντας την εντολή \"rpm -qpl "
-"media/main/*.rpm\"\n"
+"Ο οδηγός CD ή το CD είναι ελαττωματικό.\n"
+"Ελέγξτε το CD σε ένα εγκατεστημένο σύστημα χρησιμοποιώντας \" rpm -qpl media/"
+"main/*.rpm \"\n"
#: steps_auto_install.pm:71 steps_stdio.pm:27
#, c-format
msgid "Entering step `%s'\n"
-msgstr "Βήμα `%s'\n"
+msgstr "Εκκίνηση του βήματος «%s»\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Εγκατάσταση Mandriva Linux %s"
+msgid "%s Installation %s"
+msgstr "%s Εγκατάσταση της %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> Αλλαγή πεδίου"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+"Ο εξυπηρετητής Xorg χρειάζεται χρόνο για να ξεκινήσει. Παρακαλώ περιμένετε..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"Το σύστημά σας δεν έχει αρκετούς πόρους. Μπορεί να αντιμετωπίσετε "
-"προβλήματα\n"
-"στην εγκατάσταση του Mandriva Linux. Εάν συμβεί αυτό, μπορείτε να δοκιμάσετε "
-"εγκατάσταση κειμένου.\n"
-"Πατήστε F1 κατά την εκκίνηση από CDROM, μετά γράψτε `text'."
+"Το σύστημά σας διαθέτει περιορισμένους πόρους. Ίσως συναντήσετε προβλήματα\n"
+"κατά την εγκατάσταση της %s. Αν συμβεί αυτό, μπορείτε να προσπαθήσετε\n"
+"την εγκατάσταση σε λειτουργία κειμένου. Για να το πραγματοποιήσετε, πατήστε "
+"«F1»\n"
+"κατά την εκκίνηση του CD-ROM και εισάγετε «text»."
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Επιλογή μέσων"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Εγκατάσταση του περιβάλλοντος Plasma της %s"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Εγκατάσταση του περιβάλλοντος GNOME της %s"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Προσαρμοσμένη εγκατάσταση"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Επιφάνειας εργασίας Plasma"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "Περιβάλλον εργασίας GNOME"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Προσαρμοσμένο περιβάλλον εργασίας"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Αυτή είναι μια προεπισκόπηση του περιβάλλοντος εργασίας «%s»."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Κάντε κλικ στις εικόνες, για να δείτε μια μεγαλύτερη προεπισκόπηση"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
-msgstr "Επιλογή Ομάδων Πακέτων"
+msgstr "Επιλογή ομάδων πακέτων"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
-msgstr "Επιλογή ξεχωριστών πακέτων"
+msgstr "Επιλογή μεμονωμένων πακέτων"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Συνολικό μέγεθος: %d / %d MB"
+msgid "Unselect All"
+msgstr "Αποεπιλογή όλων"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Λάθος πακέτο"
+msgid "Total size: %d / %d MB"
+msgstr "Συνολικό μέγεθος: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Έκδοση: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Μέγεθος: "
-#: steps_gtk.pm:347
-#, fuzzy, c-format
+#: steps_gtk.pm:426
+#, c-format
msgid "%d KB\n"
-msgstr "Μέγεθος: %d KB\n"
+msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Σπουδαιότητα: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
-msgstr "Δεν μπορείτε να επιλέξετε/αποεπιλέξετε αυτό το πακέτο"
+msgid "You cannot select/unselect this package"
+msgstr "Δεν είναι δυνατή η επιλογή/αποεπιλογή του συγκεκριμένου πακέτου"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
-msgstr "λόγω ελλείψεων %s"
+msgstr "λόγω έλλειψης του %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
-msgstr "λόγω μη ικανοποίησης %s"
+msgstr "λόγω μη ικανοποίησης του %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
-msgstr "προσπάθεια ενίσχυσης του %s"
+msgstr "προσπάθεια προώθησης του %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "για να κρατηθεί το %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
-"Δεν μπορείτε να επιλέξετε αυτό το πακέτο διότι δεν υπάρχει αρκετός χώρος"
+"Δεν μπορείτε να επιλέξετε αυτό το πακέτο διότι δεν υπάρχει αρκετός ελεύθερος "
+"χώρος για να το εγκαταστήσετε."
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Θα εγκατασταθούν τα παρακάτω πακέτα"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Θα αφαιρεθούν τα παρακάτω πακέτα "
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
-msgstr "Αυτό είναι απαιτούμενο πακέτο, δεν μπορεί να αποεπιλεγεί"
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr "Αυτό το πακέτο είναι απαραίτητο, δεν μπορεί να αποεπιλεγεί"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Δεν μπορείτε να αποεπιλέξετε αυτό το πακέτο. Είναι ήδη εγκατεστημένο"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Δεν μπορείτε να αποεπιλέξετε αυτό το πακέτο. Πρέπει να αναβαθμιστεί"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
-msgstr "Αυτόματη προβολή επιλεγμένων πακέτων"
+msgstr "Εμφάνιση των επιλεγμένων πακέτων αυτόματα"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Εγκατάσταση"
-#: steps_gtk.pm:436
-#, fuzzy, c-format
+#: steps_gtk.pm:519
+#, c-format
msgid "Load/Save selection"
-msgstr "Αποθήκευση επιλογής"
+msgstr "Φόρτωση/αποθήκευση της επιλογής"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
-msgstr "Ανανέωση επιλεγμένων πακέτων"
+msgstr "Ενημέρωση της επιλογής των πακέτων"
+
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr "Εναλλαγή μεταξύ ιεραρχικού και επίπεδου κατάστιχου πακέτων"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
-msgstr "Ελάχιστη Εγκατάσταση"
+msgstr "Ελάχιστη εγκατάσταση"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
-msgstr "Διαχείριση Λογισμικού"
+msgstr "Διαχείριση λογισμικού"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Επιλέξτε τα πακέτα που θέλετε να εγκαταστήσετε"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Εγκατάσταση"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Χωρίς λεπτομέρειες"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Εναπομένων χρόνος "
+msgid "Time remaining:"
+msgstr "Εναπομένων χρόνος:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Εκτίμηση"
+msgid "(estimating...)"
+msgstr "(εκτίμηση...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d πακέτο"
msgstr[1] "%d πακέτα"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
-msgstr "Περίληψη"
+msgstr "Σύνοψη"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Ρύθμιση"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "δεν ρυθμίστηκε"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
+"Βρέθηκαν τα ακόλουθα μέσα εγκατάστασης.\n"
+"Αν θέλετε να παραλείψετε κάποια από αυτά, μπορείτε να τα αποεπιλέξετε τώρα."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
+"Έχετε την δυνατότητα να αντιγράψετε το περιεχόμενο των CD στο σκληρό δίσκο "
+"πριν την εγκατάσταση.\n"
+"Αυτή θα συνεχιστεί από τον σκληρό δίσκο και τα πακέτα θα παραμείνουν "
+"διαθέσιμα και μετά το τέλος της."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
-msgstr ""
+msgstr "Αντιγραφή ολόκληρων των CD"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
-msgstr "Προκλήθηκε σφάλμα"
+msgstr "Παρουσιάστηκε ένα σφάλμα "
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Παρακαλώ επιλέξτε την διάταξη πληκτρολογίου."
+msgid "Please choose your keyboard layout"
+msgstr "Παρακαλώ επιλέξτε τη διάταξη του πληκτρολογίου σας"
-#: steps_interactive.pm:99
-#, fuzzy, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Αυτή είναι η πλήρης λίστα των διαθέσιμων χωρών"
+#: steps_interactive.pm:109
+#, c-format
+msgid "Here is the full list of available keyboards:"
+msgstr "Αυτή είναι η πλήρης λίστα με τα διαθέσιμα πληκτρολόγια:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
-msgstr "Εγκατάσταση/Αναβάθμιση"
+msgstr "Εγκατάσταση/αναβάθμιση"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
-msgstr "Πρόκειται για εγκατάσταση ή για αναβάθμιση;"
+msgstr "Επιθυμείτε να κάνετε μια εγκατάσταση ή αναβάθμιση;"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Εγκατάσταση"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
-msgstr "Αναβάθμιση %s"
+msgstr "Αναβάθμιση της %s"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
+msgid "Encryption key for %s"
+msgstr "Κλειδί κρυπτογράφησης για το %s"
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:158
-#, fuzzy, c-format
-msgid "Encryption key for %s"
-msgstr "Κλειδί κρυπτογράφησης"
+msgid "Cancel installation, reboot system"
+msgstr "Ακύρωση της εγκατάστασης, επανεκκίνηση του συστήματος"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "New Installation"
+msgstr "Νέα εγκατάσταση"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "Configuring IDE"
-msgstr "Ρύθμιση IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Αναβάθμιση της προηγούμενης εγκατάστασης (δεν συστήνεται)"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"Δεν υπάρχει ελεύθερος χώρος για 1MB bootstrap! Η εγκατάσταση θα συνεχιστεί, "
-"αλλά για να ξεκινήσετε το σύστημά σας, θα χρειαστεί να δημιουργήσετε μια "
-"κατάτμηση bootstrap με το DiskDrake"
+"Ο εγκαταστάτης εντόπισε ότι το εγκατεστημένο σας σύστημα Mageia Linux δεν "
+"μπορεί\n"
+"να αναβαθμιστεί με ασφάλεια σε %s.\n"
+"\n"
+"Συνιστάται να αντικαταστήσετε την εγκατάστασή σας με μια νέα.\n"
+"\n"
+"Προσοχή: θα πρέπει να πάρετε αντίγραφα ασφαλείας όλων των προσωπικών σας "
+"δεδομένων πριν επιλέξετε\n"
+"«Νέα εγκατάσταση»."
-#: steps_interactive.pm:236
-#, fuzzy, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
-msgstr ""
-"Δεν υπάρχει ελεύθερος χώρος για 1MB bootstrap! Η εγκατάσταση θα συνεχιστεί, "
-"αλλά για να ξεκινήσετε το σύστημά σας, θα χρειαστεί να δημιουργήσετε μια "
-"κατάτμηση bootstrap με το DiskDrake"
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
-#: steps_interactive.pm:328
-#, fuzzy, c-format
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "Διαμόρφωση του CD/DVD"
+
+#: steps_interactive.pm:354
+#, c-format
msgid ""
"Change your Cd-Rom!\n"
"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
"done.\n"
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
-"Αλλαγή Cd-Rom!\n"
-"\n"
-"Παρακαλώ εισάγετε το Cd-Rom με όνομα \"%s\" στον οδηγό σας και πατήστε "
-"Εντάξει.\n"
-"Εάν δεν το έχετε, πατήστε Ακύρωση για αποφυγή εγκατάστασης από αυτό το CdRom."
+"Αλλάξτε το Cd-Rom!\n"
+"Παρακαλώ εισαγάγετε το Cd-Rom με όνομα «%s» στον οδηγό σας και πατήστε "
+"«Εντάξει».\n"
+"Εάν δεν το έχετε, πατήστε «Ακύρωση» για αποφυγή της εγκατάστασης από αυτό το "
+"Cd-Rom."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
-msgstr "Ψάχνω για διαθέσιμα πακέτα..."
+msgstr "Αναζήτηση για διαθέσιμα πακέτα..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
+"Το σύστημά σας δεν έχει αρκετό ελεύθερο χώρο για την εγκατάσταση ή την "
+"αναβάθμιση (%dMB > %dMB)"
-#: steps_interactive.pm:405
-#, fuzzy, c-format
+#: steps_interactive.pm:428
+#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-"Παρακαλώ επιλέξτε τη φόρτωση ή αποθήκευση των επιλογής πακέτων στη δισκέτα.\n"
-"Η μορφοποίηση είναι η ίδια με τις δισκέτες αυτόματης εγκατάστασης."
+"Παρακαλώ, επέλεξε τη φόρτωση ή την αποθήκευση της λίστας με τα επιλεγμένα "
+"πακέτα.\n"
+"Η μορφή είναι η ίδια με αυτή της αυτόματης εγκατάστασης (auto_install)."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
-msgstr "Φόρτος"
+msgstr "Φόρτωση"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Αποθήκευση"
-#: steps_interactive.pm:415
-#, fuzzy, c-format
+#: steps_interactive.pm:438
+#, c-format
msgid "Bad file"
-msgstr "Φόρτωση αρχείου"
+msgstr "Μη έγκυρο αρχείο"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr ""
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Ελάχιστη Εγκατάσταση"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr "Επιλογή περιβάλλοντος εργασίας"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
+"Μπορείτε να επιλέξετε το προφίλ για το περιβάλλον εργασίας του υπολογιστή "
+"σας."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Το επιλεγμένο μέγεθος είναι μεγαλύτερο από το διαθέσιμο χώρο"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Τύπος εγκατάστασης"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
-"Δεν έχετε επιλέξει ομάδα πακέτων.\n"
-"Παρακαλώ επιλέξτε την ελάχιστη εγκατάσταση που θέλετε:"
+"Δεν έχετε επιλέξει κάποια ομάδα πακέτων.\n"
+"Παρακαλώ επιλέξτε την ελάχιστη εγκατάσταση που επιθυμείτε:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Με Χ"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Εγκατάσταση των προτεινόμενων πακέτων"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Με την βασική τεκμηρίωση (συνιστάται!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Πραγματικά ελάχιστη εγκατάσταση (ειδικά χωρίς urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Προετοιμασία της αναβάθμισης..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
-msgstr "Προετοιμασία εγκατάστασης"
+msgstr "Προετοιμασία της εγκατάστασης"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
-msgstr "Εγκατάσταση πακέτου %s"
+msgstr "Εγκατάσταση του πακέτου %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
-msgstr "Προκλήθηκε σφάλμα κατά την ταξινόμηση των πακέτων:"
+msgstr "Παρουσιάστηκε σφάλμα κατά την ταξινόμηση των πακέτων:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Να συνεχίσω;"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
-msgstr ""
+msgstr "Προσπάθεια ξανά"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
-msgstr ""
+msgstr "Παράλειψη αυτού του πακέτου"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
-msgstr ""
+msgstr "Παράλειψη όλων των πακέτων από το μέσο «%s»"
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "Αποθήκευση επιλογής πακέτων"
+msgstr "Επιστροφή στην επιλογή μέσων και πακέτων"
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "Προκλήθηκε σφάλμα κατά την εγκατάσταση των πακέτων:"
+msgstr "Παρουσιάστηκε σφάλμα κατά την εγκατάσταση του πακέτου %s."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Ρυθμίσεις μετά την εγκατάσταση"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
+"Παρακαλώ σιγουρευτείτε ότι το μέσο ενημέρωσης των αρθρωμάτων (modules) είναι "
+"μέσα στον οδηγό %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Ενημερώσεις"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+"Σε αυτό το βήμα σας δίδεται η δυνατότητα να προσθέσετε μέσα από το διαδίκτυο."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Αυτό επιτρέπει την εγκατάσταση των ενημερώσεων ασφαλείας."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"Για την προσθήκη αυτών των μέσων, απαιτείται μια ενεργή σύνδεση\n"
+"στο διαδίκτυο.\n"
+"\n"
+"Επιθυμείτε την προσθήκη των μέσων ενημέρωσης;"
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr "Αδύνατη η εγκατάσταση του προγράμματος λήψης"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Προσπάθεια ξανά;"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Αποτυχία κατά την προσθήκη του μέσου"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1159,158 +1459,108 @@ msgid ""
"\n"
"Do you want to install the updates?"
msgstr ""
-"Τώρα έχετε τη δυνατότητα να εγκαταστήσετε πακέτα αναβάθμισης. Αυτά τα\n"
-"πακέτα έχουν αναβαθμιστεί μετά την έκδοση της διανομής. Μπορεί να περιέχουν\n"
-"διορθώσεις σφαλμάτων ή αναβαθμίσεις ασφάλειας.\n"
+"Τώρα έχετε την ευκαιρία να κάνετε λήψη ενημερωμένων πακέτων.\n"
+"Αυτά τα πακέτα έχουν ενημερωθεί μετά την έκδοση της διανομής. Μπορεί να\n"
+"περιέχουν διορθώσεις σφαλμάτων ή ενημερώσεις ασφαλείας.\n"
"\n"
-"Για να κάνετε λήψη αυτών των πακέτων πρέπει να έχετε μια σύνδεση στο "
-"Διαδίκτυο\n"
-"που να λειτουργεί.\n"
+"Για να κάνετε λήψη αυτών των πακέτων πρέπει να έχετε ενεργοποιημένη\n"
+"τη σύνδεση με το διαδίκτυο.\n"
"\n"
-"Θέλετε να εγκαταστήσετε τις αναβαθμίσεις ;"
-
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Σύνδεση με τον τόπο για την λήψη των διαθέσιμων πακέτων..."
-
-#: steps_interactive.pm:719
-#, fuzzy, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Αδυναμία fork: %s"
+"Θέλετε να εγκαταστήσετε τις ενημερώσεις ;"
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s σε %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Υλικό"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Κάρτα ήχου"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Έχετε κάρτα ήχου ISA;"
-
-#: steps_interactive.pm:904
-#, fuzzy, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Εκτελέστε \"sndconfig\" μετά την εγκατάσταση για την ρύθμιση της κάρτας"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Δεν βρέθηκε κάρτα ήχου. Δοκιμάστε το \"harddrake\" μετά την εγκατάσταση"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Γραφικό περιβάλλον"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Δίκτυο & Διαδίκτυο"
-#: steps_interactive.pm:933
-#, fuzzy, c-format
+#: steps_interactive.pm:991
+#, c-format
msgid "Proxies"
-msgstr "Προφίλ "
+msgstr "Διαμεσολαβητές"
-#: steps_interactive.pm:934
-#, fuzzy, c-format
+#: steps_interactive.pm:992
+#, c-format
msgid "configured"
-msgstr "επαναρύθμιση"
+msgstr "ρυθμισμένο"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
-msgstr "Επίπεδο Ασφαλείας"
+msgstr "Επίπεδο ασφαλείας"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
-msgstr "Τοίχος Προστασίας"
+msgstr "Τείχος προστασίας"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "ενεργοποιημένο"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "απενεργοποιημένο"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
-msgstr "Δεν έχετε ρυθμίσει το Χ. Είστε βέβαιοι ότι θέλετε να το κάνετε;"
-
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "Προετοιμασία προγράμματος εκκίνησης..."
-
-#: steps_interactive.pm:1018
-#, fuzzy, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"Φαίνεται πως έχετε ένα Αρχαίο ή Άγνωστο\n"
-"μηχάνημα, ο yaboot bootloader δεν θα δουλέψει για σας.\n"
-"Η εγκατάσταση θα συνεχιστεί, αλλά\n"
-"θα χρειαστεί να χρησιμοποιήσετε το BootX για να ξεκινήσετε το μηχάνημά σας"
+msgstr "Δεν έχετε ρυθμίσει τον Χ. Είστε σίγουρος/η ότι θέλετε πραγματικά αυτό;"
-#: steps_interactive.pm:1024
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Θέλετε να χρησιμοποιήσετε το aboot;"
+msgid "Preparing initial startup program..."
+msgstr "Προετοιμασία του αρχικού προγράμματος εκκίνησης..."
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Σφάλμα κατά την εγκατάσταση του aboot, \n"
-"προσπάθεια βεβιασμένης εγκατάστασης, ακόμα και αν αυτό έχει σαν αποτέλεσμα "
-"την καταστροφή της πρώτης κατάτμησης;"
+msgid "Be patient, this may take a while..."
+msgstr "Παρακαλώ περιμένετε, η διαδικασία μπορεί να διαρκέσει μερικά λεπτά ..."
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
+"Σε αυτό το επίπεδο ασφαλείας, μόνο ο διαχειριστής έχει πρόσβαση στα αρχεία "
+"στην κατάτμηση των Windows."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
-msgstr "Εισάγετε άδεια δισκέτα στον οδηγό %s"
+msgstr "Εισάγετε μια άδεια δισκέτα στον οδηγό %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Δημιουργία δισκέτας αυτόματης εγκατάστασης..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1321,70 +1571,35 @@ msgstr ""
"\n"
"Θέλετε σίγουρα να εγκαταλείψετε τώρα;"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Συγχαρητήρια"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Επανεκκίνηση"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Δημιουργία δισκέτας αυτόματης εγκατάστασης"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Η αυτόματη εγκατάσταση μπορεί να είναι πλήρως αυτόματη,\n"
-"σε αυτήν την περίπτωση θα αναλάβει το σκληρό δίσκο!!\n"
-"(αυτό αναφέρεται για περιπτώσεις εγκατάστασης σε άλλο υπολογιστή).\n"
-"\n"
-"Μπορεί να προτιμάτε να επαναλάβετε την εγκατάσταση.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Επαναφόρτωση"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Αυτόματο"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Αποθήκευση επιλογής πακέτων"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
msgid ""
"_: Keep these entry short\n"
"Language"
-msgstr "Επιλέξτε γλώσσα"
+msgstr "Γλώσσα"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "Τοπικότητα"
#: steps_list.pm:17
#, c-format
msgid ""
"_: Keep these entry short\n"
"License"
-msgstr "Άδεια Χρήσης"
+msgstr "Άδεια χρήσης"
#: steps_list.pm:18
#, c-format
@@ -1398,14 +1613,14 @@ msgstr "Ποντίκι"
msgid ""
"_: Keep these entry short\n"
"Hard drive detection"
-msgstr "Εντοπισμός δίσκου"
+msgstr "Ανίχνευση σκληρών δίσκων"
#: steps_list.pm:21 steps_list.pm:22
#, c-format
msgid ""
"_: Keep these entry short\n"
"Installation class"
-msgstr ""
+msgstr "Κλάση εγκατάστασης"
#: steps_list.pm:23
#, c-format
@@ -1426,21 +1641,21 @@ msgstr "Ασφάλεια"
msgid ""
"_: Keep these entry short\n"
"Partitioning"
-msgstr "Καταμερισμός"
+msgstr "Διαμερισμός"
#: steps_list.pm:27 steps_list.pm:28
#, c-format
msgid ""
"_: Keep these entry short\n"
"Formatting"
-msgstr ""
+msgstr "Μορφοποίηση "
#: steps_list.pm:29
#, c-format
msgid ""
"_: Keep these entry short\n"
"Choosing packages"
-msgstr ""
+msgstr "Επιλογή πακέτων"
#: steps_list.pm:31
#, c-format
@@ -1456,33 +1671,26 @@ msgid ""
"Users"
msgstr "Χρήστες"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Δικτύωση"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
"_: Keep these entry short\n"
"Bootloader"
-msgstr "Προγράμματος εκκίνησης"
+msgstr "Εκκίνηση"
#: steps_list.pm:40 steps_list.pm:41
#, c-format
msgid ""
"_: Keep these entry short\n"
"Configure X"
-msgstr "Ρύθμιση Χ"
+msgstr "Ρύθμιση του Χ"
#: steps_list.pm:42
#, c-format
msgid ""
"_: Keep these entry short\n"
"Summary"
-msgstr "Περίληψη"
+msgstr "Σύνοψη"
#: steps_list.pm:44 steps_list.pm:45
#, c-format
@@ -1504,65 +1712,3 @@ msgid ""
"_: Keep these entry short\n"
"Exit"
msgstr "Έξοδος"
-
-#~ msgid "All"
-#~ msgstr "Όλα"
-
-#~ msgid "TV card"
-#~ msgstr "Κάρτα TV"
-
-#~ msgid "Boot"
-#~ msgstr "Εκκίνηση"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Πιστοποίηση"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "(%d πακέτο, %d MB)"
-#~ msgstr[1] "(%d πακέτα, %d MB)"
-
-#~ msgid "%d packages"
-#~ msgstr "%d πακέτα"
-
-#~ msgid "Language"
-#~ msgstr "Επιλέξτε γλώσσα"
-
-#~ msgid "License"
-#~ msgstr "Άδεια Χρήσης"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "Επιλέξτε εγκατάσταση"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "Εκτίμηση"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "Επιλογή πακέτων"
-
-#~ msgid "Users"
-#~ msgstr "Χρήστες"
-
-#~ msgid "Networking"
-#~ msgstr "Δικτύωση"
-
-#~ msgid "Configure X"
-#~ msgstr "Ρύθμιση Χ"
-
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
-#~ msgstr ""
-#~ "Αδυναμία πρόσβασης των αρθρωμάτων που αντιστοιχούν στον πυρήνα σας (το "
-#~ "αρχείο %s λείπει), γενικά αυτό σημαίνει ότι η δισκέτα εκκίνησης δεν είναι "
-#~ "σε συγχρονισμό με το Μέσο εγκατάστασης ( παρακαλώ δημιουργήστε μια νέα "
-#~ "δισκέτα εκκίνησης)"
diff --git a/perl-install/install/share/po/eo.po b/perl-install/install/share/po/eo.po
index e044f7d8e..3ce0f3461 100644
--- a/perl-install/install/share/po/eo.po
+++ b/perl-install/install/share/po/eo.po
@@ -1,30 +1,82 @@
-# translation of DrakX-eo.po to
-# Esperanto drakbootdisk
-# Copyright (C) 2000, 2001 Mandriva
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
-# D. Dale Gulledge <dsplat@rochester.rr.com>, 2000.
-# Vilhelmo Lutermano <vlutermano@free.fr>, 2007.
+# Translators:
+# D. Dale Gulledge <dsplat@rochester.rr.com>, 2000
+# Vilhelmo Lutermano <vlutermano@free.fr>, 2007
msgid ""
msgstr ""
-"Project-Id-Version: DrakX-eo\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-03-14 21:45+0100\n"
-"Last-Translator: Vilhelmo Lutermano <vlutermano@free.fr>\n"
-"Language-Team: <eo@li.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Esperanto (http://www.transifex.com/MageiaLinux/mageia/"
+"language/eo/)\n"
+"Language: eo\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: KBabel 1.11.4\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr ""
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr ""
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr ""
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr ""
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr ""
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr ""
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
msgstr "Ĉu vi havas plian kroman datenportilon?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -37,94 +89,57 @@ msgstr ""
"\n"
"Ĉu vi havas kroman instalan datenportilon por konfiguri? "
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "KD-ROMo"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Reto (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Reto (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Reto (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "URL de la spegulo?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "URL devas komenci per ftp:// aŭ http://"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Mi kontaktas la Mandriva Linuksan retpaĝon por havigi la liston de "
-"disponeblaj speguloj..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Mi malsukcesis kontakti la Mandriva Linuksan retpaĝon por havigi la liston "
-"de disponeblaj speguloj..."
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Elektu spegulon de kiu havigi la pakaĵojn"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "NFS-agordo"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr "Bonvole enigu la nomon kaj dosierujon de via NSF-datenportilo"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr "Nomo mankas"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "Dosierujo devas komenci per \"/\""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "Nomo de la NFS surmeto?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Dosierujo"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "Kroma"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
@@ -133,48 +148,90 @@ msgstr ""
"Mi ne trovas pakaĵlistan dosieron sur tiu spegulo. Certiĝu ke la adreso "
"estas ĝusta."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Rigardante jam instalitajn pakaĵojn..."
+msgid "Core Release"
+msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Mi forigas pakaĵojn antaŭ ol ĝisdatigi..."
+msgid "Tainted Release"
+msgstr ""
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Trovadas pakaĵojn por promocii"
+msgid "Nonfree Release"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
msgstr ""
-"Vi selektis jena(j)n servilo(j)n: %s\n"
-"\n"
-"\n"
-"Tiuj serviloj estas enŝaltitaj defaŭlte. Ili havas neniujn konatajn "
-"sekurec-\n"
-"problemojn, sed iuj novaj povas esti trovita. Tiukaze, vi devas certiĝi por\n"
-"ĝisdatigi kiom eble plej baldaŭ.\n"
-"\n"
-"\n"
-"Ĉu vi vere deziras instali tiujn servilojn?\n"
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Rigardante jam instalitajn pakaĵojn..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Trovadas pakaĵojn por promocii"
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Mi forigas pakaĵojn antaŭ ol ĝisdatigi..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -187,82 +244,87 @@ msgstr ""
"\n"
"Ĉu vi vere deziras forigi tiujn pakaĵojn?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr ""
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "La sekva(j) disko(j) estas alinomitaj:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (antaŭe nomitaj kiel %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Reto"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "Bonvole elektu datenportilon"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Dosiero jam ekzistas. Ĉu surskribi ĝin?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Permeso rifuzita"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "Malĝusta NFS-nomo"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "Malbona datenportilo %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Mi ne povas fari ekranfotojn antaŭ ol subdiskigi"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Ekranfotoj haveblos post instalado en %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Instalado"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Konfigurado"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Vi devas ankaŭ formati %s"
@@ -287,107 +349,146 @@ msgstr "Startado de la reto"
msgid "Bringing down the network"
msgstr "Haltas de la reto"
-#: media.pm:703 media.pm:714
+#: media.pm:397
#, c-format
-msgid "Downloading file %s..."
-msgstr "Mi deŝutas dosieron %s..."
+msgid "Please wait, retrieving file"
+msgstr ""
+
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr "Mi kopias kelkajn pakaĵojn sur diskoj por estonta uzo"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Mi estas kopianta"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "havenda"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "grava(j)"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "tre agrabla(j)"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "agrabla(j)"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "elbe"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Nenia xml-informo por aŭdvidaĵo \"%s\", nur parta rezulto por pakaĵo %s"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Nenia priskribo"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"Kelkaj pakaĵoj bezonataj de %s ne instaleblas:\n"
+"%s"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "Laborstacio"
+msgid "An error occurred:"
+msgstr "Eraro okazis:"
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Oficeja laborstacio"
+msgid "A fatal error occurred: %s."
+msgstr "Okazis fatala eraro: %s."
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d instal-transakcioj malsukcesis"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
msgstr ""
-"Oficejaj programoj: tekstiloj (OpenOffice.org Writer, Verkilo [Kword]), "
-"tabelkalkuliloj (OpenOffice.org Calc, Kspread), PDF-vidigiloj, ktp."
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "Laborstacio"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Oficeja laborstacio"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Oficej-programoj: tekstiloj (Verkilo [kword], aboword), tabelkalkuliloj "
-"(kspread, gnumeric), pdf-vidigiloj, ktp."
+"Oficejaj programoj: tekstiloj (LibreOffice Writer, Verkilo [Kword]), "
+"tabelkalkuliloj (LibreOffice Calc, Kspread), PDF-vidigiloj, ktp."
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Ludstacio"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Amuz-programoj: arcade, tabuloj [boards], strategio, ktp."
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Plurmediaj stacio"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Programoj por ludi/prilabori son- kaj video-programojn"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Interreta stacio"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
@@ -396,262 +497,314 @@ msgstr ""
"Agordiloj por legi kaj sendi retpoŝt-mesaĝojn kaj novaĵojn (mutt, tin...) "
"kaj por krozi tra la ttt"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Reta computilo (kliento)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Klientoj por diversaj protokoloj inklude de ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Iloj por faciligi la konfiguradon de via komputilo"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Konsoliloj"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Redaktiloj, ŝeloj, dosieriloj, terminaloj"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Programado"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "C kaj C++ programadaj bibliotekoj, programoj kaj ĉapdosieroj"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Dokumentaro"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Libroj kaj Kielfari pri Linukso kaj libera programaro"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Linux Standard Base. Subteno por triaflankaj aplikaĵoj"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Interret-servilo"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Grupa programaro"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Kolab Servilo"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Fajroŝirmilo/enkursigilo"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Interreta kluzo"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "Poŝto/Novaĵoj"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Postfix poŝta servilo, Inn novaĵaj servilo"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Dosierujo-servilo"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP Servilo"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "Domajn-noma kaj ret-informa servilo"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "Dosier- kaj printil-kundivida servilo"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "NFS servilo, Samba servilo"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Datumbazoj"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "Datenbaz-serviloj PostgreSQL kaj MySQL"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "Datenbaz-serviloj PostgreSQL kaj MariaDB"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "TTT/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Poŝto"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Postfix poŝta servilo"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "Datenbaz-servilo PostgreSQL aŭ MySQL"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "Datenbaz-servilo PostgreSQL aŭ MariaDB"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Reta computilo (servilo)"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "NFS-servilo, SMB-servilo, prokur-servilo, ssh-servilo"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Grafika medio"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE Laborstacio"
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr "La tabula medio K, la baza grafika medio kun kolekto da akompanaj iloj"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "Gnoma Laborstacio"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr "Grafika medio kun uzfacila aplikaĵaro kaj tabul-iloj"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
#, c-format
-msgid "IceWm Desktop"
-msgstr "Labortabulo IceWm"
+msgid "LXDE Desktop"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Aliaj grafikaj labortabuloj"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm, ktp."
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Iloj"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH servilo"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Servilo de fora konfigurado Webmin"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "Retaj utilaĵoj/monitorado"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "Monitoriloj, proces-kalkuliloj, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Sorĉiloj de Mandriva"
+msgid "Mageia Wizards"
+msgstr "Sorĉiloj de Mageia"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Sorĉiloj por konfiguri servilon"
@@ -665,7 +818,7 @@ msgstr ""
"Eraro okazis, sed mi ne scias kiel trakti ĝin bone.\n"
"Daŭri je via propra risko."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -685,205 +838,258 @@ msgstr "Eniras paŝon `%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Linuks-Mandrejka Instalado %s"
+msgid "%s Installation %s"
+msgstr "%s Instalado %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> inter elementoj"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
"Via sistemo havas malmulte da risurcoj. Eble vi havos problemojn pri\n"
-"instali Linuks-Mandrejkon. Se tio okazos, vi povos anstataŭ provi tekstan\n"
+"instali %s. Se tio okazos, vi povos anstataŭ provi tekstan\n"
"instaladon. Por ĉi tio, premu `F1' kiam vi startas de KDROM, kaj sekve\n"
"tajpu `text'."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Instalo de la labortablo %s GNOME"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Persona instalado"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Elektado de Pakaĵaj Grupoj"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Elektado de individuaj pakaĵoj"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Tuta grandeco: %d / %d MB"
+msgid "Unselect All"
+msgstr ""
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Malbona pakaĵo"
+msgid "Total size: %d / %d MB"
+msgstr "Tuta grandeco: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Versio: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Grandeco: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Graveco: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Vi ne povas elektu/malelektu ĉi tiun pakaĵon"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "pro mankanta %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "pro neplenumita %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "mi provas disponigi %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "por konservi %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"Vi ne povas elekti ĉi tiun pakaĵon ĉar ne estas sufiĉe da spaco por instali\n"
"ĝin."
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "La sekvaj pakaĵoj estos instalataj"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "La sekvaj pakaĵoj estos malinstalataj"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Ĉi tiu estas deviga pakaĵo, vi ne povas malelekti ĝin"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Vi ne povas malelekti ĉi tiun pakaĵon. Ĝi estas jam instalita."
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Vi ne povas malelekti ĉi tiun pakaĵon. Ĝi devus esti promociata."
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Montru aŭtomate elektitajn pakaĵojn"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Instalu"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Ŝargi/Konservi selekton"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Ĝisdatigo de pakaĵ-elekto"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Minimuma instalado"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Programar-mastrumilo"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Elektu la pakaĵojn kiuj vi deziras instali"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Instalanta"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Neniaj detaloj"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Tempo restanta "
+msgid "Time remaining:"
+msgstr ""
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Taksas"
+msgid "(estimating...)"
+msgstr ""
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d pakaĵo"
msgstr[1] "%d pakaĵoj"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Resumo"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Konfiguru"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "ne konfigurita"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
@@ -892,12 +1098,12 @@ msgstr ""
"La sekva instal-datenportilo(j) estas trovita(j).\n"
"Se vi deziras transsalti kelkajn de ili, vi povas tiujn nun malselekti."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
"Vi havas la opcion kopii la enhavojn de la KD-oj sur la fiksdiskon antaŭ la "
@@ -905,93 +1111,91 @@ msgstr ""
"Tiam la instalado daŭrigas el la fiksdisko kaj la pakaĵoj restos atingeblaj "
"post kiam la sistemo estos plene instalita."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "Kopii kompletajn KD-ojn"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Eraro okazis"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Bonvole elektu vian klavar-aranĝon."
+msgid "Please choose your keyboard layout"
+msgstr "Bonvole elektu vian klavar-aranĝon"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Jen la kompleta listo de disponeblaj klavaroj"
+msgid "Here is the full list of available keyboards:"
+msgstr ""
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Instalado/Ĝisdatigo"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Ĉu tiu ĉi estas instalado aŭ ĝisdatigo?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
-msgstr "Instalu"
+msgstr "Instalado"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Ĝisdatigu %s"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
+msgid "Encryption key for %s"
+msgstr "Ĉifroŝlosilo por %s"
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
+msgid "Cancel installation, reboot system"
msgstr ""
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
-msgstr "Ĉifroŝlosilo por %s"
+msgid "New Installation"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
-msgstr "Konfiguras IDE"
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+msgid "CD/DVD"
msgstr ""
-"Ne libera spaco por 1mb-startparto! La instalado daurigos, sed por startigi "
-"vian sistemon, vi devos krei la startpartan subdiskon en DiskDrake"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+msgid "Configuring CD/DVD"
msgstr ""
-"Vi devas krei praŝargon PPC PReP Boot! La instalado daŭros, sed por startigi "
-"vian sistemon, vi devas krei la praŝargan subdiskon en DiskDrake"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1006,21 +1210,21 @@ msgstr ""
"kiam vi finos.\n"
"Se vi ne havas ĝin, klaku \"Nuligu\" por eviti la instaladon de ĉi tiu KDROM."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Serĉas haveblajn pakaĵojn"
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
"Via sistemo ne havas sufiĉe da spaco libera por instalado aŭ ĝisdatigo (%dMB "
"> %dMB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
@@ -1029,52 +1233,52 @@ msgstr ""
"Bonvole elektu ŝargi aŭ konservi pakaĵ-elekton.\n"
" La formato estas la sama kiel dosieroj generitaj per auto_install."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Ŝargu"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Konservu"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Malbona dosiero"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Minimuma instalado"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr "Grafika medio"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Elektita grandeco estas pli ampleksa ol disponebla spaco"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Instaltipo"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1083,84 +1287,128 @@ msgstr ""
"Vi ne elektis pakaĵgrupon.\n"
"Bonvole elektu la minimuman instaladon kiun vi deziras:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Kun X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Kun baza dokumentaĵo (rekomendita!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Vere minimuma instalado (precipe ne urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Preparas instaladon"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Instalanta pakaĵo %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Estis eraro ordigi pakaĵojn:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Ĉu vi deziras daŭri tamen?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "Reprovu"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr "Transsalti tiun pakaĵon"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr "Transsalti ĉiujn pakaĵojn de la datenportilo \"%s\""
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
msgstr "Reiru al la datenportilo kaj pakaĵ-selekto"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
msgstr "Estis eraro dum instalado de pakaĵo %s."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Post-instala konfigurado"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
"Bonvole certiĝu ke la datenportilo por ĝisdatigaj moduloj troviĝas en la "
"aparato %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Ĝisdatigoj"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "La sekvaj pakaĵoj estos instalataj"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Paneo ĉe aldono de portilo"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1181,130 +1429,80 @@ msgstr ""
"\n"
"Ĉu vi deziras instali tiujn ĝisdatigojn?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Kontaktu la spegulon por havigi la liston de havebla pakaĵoj"
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Ne povis kontakti spegulon %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s sur %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Aparataro"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Sonkarto"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Ĉu vi havas ISA-sonkarton?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Rulu \"alsaconf\" aŭ \"sndconfig\" post instalado por konfiguri vian "
-"sonkarton"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "Ne detektis sonkarto. Provu \"harddrake\" post instalado"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Grafika interfaco"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Reto kaj Interreto"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Prokuraj Serviloj"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "konfigurita"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "sekurnivelo"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Fajromuro (Firewall)"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "aktiva"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "malebligita"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "Vi ne konfiguris X-on. Ĉu vi certas vere voli tion?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "Preparas startŝargilon"
-
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Preparing initial startup program..."
msgstr ""
-"Ŝajne vi havas malnovegan aŭ nekonatan maŝinon,la yaboot-startilo ne "
-"funkcios por vi.La instalado daŭrigos, sed vi devosuzi BootX aŭ alian "
-"rimedon por startigi vian maŝinon. La kerno-argumento por la root fs "
-"[dosiersistemo] estas: root=%s"
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Ĉu vi deziras uzi aboot-on?"
-
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
+msgid "Be patient, this may take a while..."
msgstr ""
-"Eraro daŭre mi instalis \"aboot\",\n"
-"Ĉu mi devus provi perforte instali eĉ se tio detruas la unuan subdiskon?"
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
@@ -1313,17 +1511,17 @@ msgstr ""
"Sur tiu ĉi sekurec-nivelo, la aliro al dosieroj en la Vindozaj subdiskoj "
"estas limigitaj al la mastrumanto."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Enŝovu malplenan disketon en drajvo %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Kreas aŭtoinstalan disketon"
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1334,51 +1532,16 @@ msgstr ""
"\n"
"Ĉu vi vere volas ĉesi nun?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Gratulojn"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Restarto"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Kreu aŭtoinstalan disketon"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"La meminstalo povas esti plene aŭtomatigita se vi deziras,\n"
-"tiukaze ĝi transprenas la fiksdiskon!!\n"
-"(tio estas farita por instali sur alian aparaton).\n"
-"\n"
-"Vi eble preferas ripeti la instaladon.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Reludu"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Aŭtomata"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Konservu la pakaĵ-elekton"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1390,7 +1553,7 @@ msgstr "Elektu vian lingvon"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "Lokaligo"
#: steps_list.pm:17
#, c-format
@@ -1469,13 +1632,6 @@ msgid ""
"Users"
msgstr "Uzuloj"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Retumado"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1518,73 +1674,26 @@ msgid ""
"Exit"
msgstr "Eliro"
-#~ msgid "All"
-#~ msgstr "Ĉiuj"
-
-#~ msgid "TV card"
-#~ msgstr "TV-karto"
-
-#~ msgid "Boot"
-#~ msgstr "Starto"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Aŭtentikigado"
-
-#~ msgid "Arkeia"
-#~ msgstr "Arkeia"
-
-#~ msgid "Flatout"
-#~ msgstr "Flatout"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "3D"
-#~ msgstr "3D"
-
-#~ msgid "CMS"
-#~ msgstr "CMS"
-
-#~ msgid "CRM"
-#~ msgstr "CRM"
-
-#~ msgid "2007 product line"
-#~ msgstr "produkto-sekvo de 2007"
-
-#~ msgid "Invictus Firewall"
-#~ msgstr "Invictus Firewall (fajroŝirmilo)"
-
-#~ msgid "Discovery Live Mode"
-#~ msgstr "Discovery Live Mode"
-
-#~ msgid "How to register"
-#~ msgstr "Kiel registri"
-
-#~ msgid "Rpmdrake 2"
-#~ msgstr "Rpmdrake 2"
-
-#~ msgid "Mandriva Online Services"
-#~ msgstr "Mandriva Konektitaj Servoj"
-
-#~ msgid "New Theme"
-#~ msgstr "Nova Etoso"
-
-#~ msgid "Web 2.0"
-#~ msgstr "Web 2.0"
-
-#~ msgid "Kaspersky"
-#~ msgstr "Kaspersky"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "URL de la spegulo?"
-#~ msgid "LinDVD"
-#~ msgstr "LinDVD"
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "URL devas komenci per ftp:// aŭ http://"
-#~ msgid "Skype"
-#~ msgstr "Skype"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr ""
+#~ "Mi kontaktas la %s Linuksan retpaĝon por havigi la liston de disponeblaj "
+#~ "speguloj..."
-#~ msgid "Transgaming/Cedega"
-#~ msgstr "Transgaming/Cedega"
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
+#~ msgstr ""
+#~ "Mi malsukcesis kontakti la %s Linuksan retpaĝon por havigi la liston de "
+#~ "disponeblaj speguloj..."
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Elektu spegulon de kiu havigi la pakaĵojn"
diff --git a/perl-install/install/share/po/es.po b/perl-install/install/share/po/es.po
index b97217f8a..9df789aa3 100644
--- a/perl-install/install/share/po/es.po
+++ b/perl-install/install/share/po/es.po
@@ -1,32 +1,89 @@
-# traducción de DrakX-es.po to Español
-# spanish translation of DrakX
-# Copyright (C) 2000, 2001,2002, 2007 Mandriva S.A.
-# Fabián Mandelbaum <fmandelbaum@gmail.com>, 2000, 2001, 2002,2003, 2004, 2007.
-# Pablo Saratxaga <pablo@mandriva.com>, 2004, 2006.
-# Jaime Crespo <505201@unizar.es>, 2004, 2005.
-# José Manuel Pérez <jmprodu@hotmail.com>, 2005.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Miguel, 2013,2015-2016
+# Egoitz Rodriguez <egoitzro@gmail.com>, 2014-2015
+# José Alberto Valle Cid <j.alberto.vc@gmail.com>, 2019-2020,2022
+# Jose Manuel López <joselp@e.email>, 2020
+# Miguel, 2019
+# Miguel Ortega, 2013,2016
+# Miguel, 2016
msgid ""
msgstr ""
-"Project-Id-Version: DrakX-es\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-09-24 14:30-0300\n"
-"Last-Translator: Fabián Mandelbaum <fmandelbaum@gmail.com>\n"
-"Language-Team: Español <es@li.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2013-04-04 13:31+0000\n"
+"Last-Translator: José Alberto Valle Cid <j.alberto.vc@gmail.com>, "
+"2019-2020,2022\n"
+"Language-Team: Spanish (http://app.transifex.com/MageiaLinux/mageia/language/"
+"es/)\n"
+"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.10\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? "
+"1 : 2;\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "¡Únasenos!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "¡Personalícela!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "¡Su elección!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Herramientas de oficina"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Entretenimiento de hogar"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "Para niños"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "¡Para la familia!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "¡Para desarrolladores!"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "¡Gracias!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "¡Sea libre!"
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
-msgstr "¿Tiene algún soporte de instalación suplementario?"
+msgstr "¿Tiene usted otros medios complementarios?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -34,150 +91,163 @@ msgid ""
"\n"
"Do you have a supplementary installation medium to configure?"
msgstr ""
-"Se encontraron los soportes siguientes y se usarán durante la instalación: %"
-"s.\n"
+"Se han encontrado los siguientes medios y serán utilizados durante la "
+"instalación: %s.\n"
"\n"
"\n"
-"¿Tiene algún soporte suplementario que configurar?"
-
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
+"¿Tiene otro medio de instalación complementario que configurar?"
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Red (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Red (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Red (NFS)"
-#: any.pm:211
+#: any.pm:224
#, c-format
-msgid "URL of the mirror?"
-msgstr "¿URL del sitio réplica?"
+msgid "NFS setup"
+msgstr "Configuración NFS"
-#: any.pm:217
+#: any.pm:225
#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "El URL debe empezar con ftp:// o http://"
+msgid "Please enter the hostname and directory of your NFS media"
+msgstr "Por favor, introduzca el nombre de equipo y directorio de su medio NFS"
-#: any.pm:228
+#: any.pm:229
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Contactando con el sitio web de Mandriva Linux para obtener la lista de las "
-"réplicas disponibles"
+msgid "Hostname missing"
+msgstr "Falta nombre de equipo"
-#: any.pm:233
+#: any.pm:230
+#, c-format
+msgid "Directory must begin with \"/\""
+msgstr "El directorio debe comenzar con \"/\""
+
+#: any.pm:234
+#, c-format
+msgid "Hostname of the NFS mount ?"
+msgstr "¿Cuál es el nombre de equipo del montaje NFS?"
+
+#: any.pm:235
+#, c-format
+msgid "Directory"
+msgstr "Directorio"
+
+#: any.pm:265
+#, c-format
+msgid "Supplementary"
+msgstr "Complementario"
+
+#: any.pm:300
#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+"Can't find a package list file on this mirror. Make sure the location is "
+"correct."
msgstr ""
-"No se pudo conectar con el sitio web de Mandriva Linux para obtener la lista "
-"de las réplicas disponibles"
+"No se puede encontrar un archivo de lista de paquetes en este espejo. "
+"Asegúrese de que la ubicación sea la correcta."
-#: any.pm:243
+#: any.pm:325
#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Elija un sitio de réplica del cual obtener los paquetes"
+msgid "Core Release"
+msgstr "Core Release"
-#: any.pm:273
+#: any.pm:327
#, c-format
-msgid "NFS setup"
-msgstr "Configuración NFS"
+msgid "Tainted Release"
+msgstr "Tainted Release"
-#: any.pm:274
+#: any.pm:329
#, c-format
-msgid "Please enter the hostname and directory of your NFS media"
-msgstr "Ingrese el nombre de servidor y el directorio de su soporte NFS"
+msgid "Nonfree Release"
+msgstr "Nonfree Release"
-#: any.pm:278
+#: any.pm:367
#, c-format
-msgid "Hostname missing"
-msgstr "Falta el nombre del servidor"
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+"Hardware de su máquina necesita de firmware no libre para que los "
+"controladores de software libre funcionen."
-#: any.pm:279
+#: any.pm:368
#, c-format
-msgid "Directory must begin with \"/\""
-msgstr "El directorio debe empezar con \"/\""
+msgid "You should enable \"%s\""
+msgstr "Debería habilitar \"%s\""
-#: any.pm:283
+#: any.pm:419
#, c-format
-msgid "Hostname of the NFS mount ?"
-msgstr "¿Nombre del servidor del montaje NFS?"
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "\"%s\" contiene varias piezas de los sistemas y sus aplicaciones"
-#: any.pm:284
+#: any.pm:420
#, c-format
-msgid "Directory"
-msgstr "Directorio"
+msgid "\"%s\" contains non free software.\n"
+msgstr "\"%s\" contiene software no libre.\n"
-#: any.pm:306
+#: any.pm:421
#, c-format
-msgid "Supplementary"
-msgstr "Suplementario"
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"También contiene firmware necesario para ciertos dispositivos puedan operar "
+"(ej: algunas tarjetas gráficas ATI/AMD, algunas tarjetas de red, algunas "
+"tarjetas RAID, etc)"
-#: any.pm:341
+#: any.pm:422
#, c-format
msgid ""
-"Can't find a package list file on this mirror. Make sure the location is "
-"correct."
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
msgstr ""
-"No puedo encontrar el archivo hdlist en este sitio réplica. Asegúrese que la "
-"ubicación es correcta."
+"\"%s\" contiene software que no puede ser distribuido en todos los países "
+"debido a patentes de software."
-#: any.pm:375
+#: any.pm:423
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Buscando paquetes ya instalados..."
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+"También contiene software de \"%s\" reconstruido con capacidades adicionales."
-#: any.pm:382
+#: any.pm:429
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Quitando paquetes antes de actualizar..."
+msgid "Here you can enable more media if you want."
+msgstr "Aquí puede habilitar mas medios si así lo desea."
-#: any.pm:424
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Este medio provee actualizaciones de paquetes para el medio \"%s\""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Buscando paquetes ya instalados..."
+
+#: any.pm:593
#, c-format
msgid "Finding packages to upgrade..."
msgstr "Encontrando los paquetes a actualizar..."
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:612
#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
-msgstr ""
-"Ha seleccionado los siguientes servidores: %s\n"
-"\n"
-"\n"
-"Estos servidores se activan por defecto. No se les conocen problemas de\n"
-"seguridad, pero se pueden encontrar problemas nuevos. En ese caso, debe "
-"asegurarse de\n"
-"actualizarlos tan pronto como sea posible.\n"
-"\n"
-"\n"
-"¿Realmente desea instalar estos servidores?\n"
+msgid "Removing packages prior to upgrade..."
+msgstr "Eliminación de los paquetes antes de la actualización..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -185,92 +255,97 @@ msgid ""
"\n"
"Do you really want to remove these packages?\n"
msgstr ""
-"Se quitarán los paquetes siguientes para permitir actualizar su sistema: %s\n"
+"Los siguientes paquetes serán removidos para permitir la actualización de su "
+"sistema: %s\n"
"\n"
"\n"
-"¿Realmente desea quitar estos paquetes?\n"
+"¿Está seguro de que quiere eliminar estos paquetes?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Error al leer el archivo %s"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "Se renombraron los discos siguientes:"
+msgstr "El o los siguientes discos fueron renombrados:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (antes conocido como %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Red"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
-msgstr "Por favor, elija un soporte"
+msgstr "Por favor, elija un medio"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "El archivo ya existe. ¿Desea sobreescribirlo?"
+msgstr "El archivo ya existe. ¿Sobrescribirlo?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Permiso denegado"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
-msgstr "Nombre NFS incorrecto"
+msgstr "Nombre NFS erróneo"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
-msgstr "Soporte %s incorrecto"
+msgstr "Medio erróneo %s "
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
-msgstr "No se pueden realizar instantáneas de pantalla antes del particionado"
+msgid "Cannot make screenshots before partitioning"
+msgstr "No se puede hacer capturas de pantalla antes de particionar"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr ""
-"Luego de la instalación estarán disponibles las instantáneas de pantalla en %"
-"s"
+"Las capturas de pantallas estarán disponibles después de la instalación en %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Instalación"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Configuración"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
-msgstr "También se debe formatear %s"
+msgstr "También debe formatear %s"
#: interactive.pm:16
#, c-format
@@ -278,389 +353,485 @@ msgid ""
"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
"You can find some information about them at: %s"
msgstr ""
-"Algún hardware de su computadora necesita controladores \"propietarios\" "
-"para funcionar.\n"
-"Puede encontrar información sobre ellos en: %s"
+"Algún hardware de su equipo necesita controladores ``propietarios\" para "
+"trabajar.\n"
+"Puede encontrar más información sobre ellos en: %s"
#: interactive.pm:22
#, c-format
msgid "Bringing up the network"
-msgstr "Levantando la red"
+msgstr "Activando la red"
#: interactive.pm:27
#, c-format
msgid "Bringing down the network"
-msgstr "Bajando la red"
+msgstr "Desactivando la red"
-#: media.pm:703 media.pm:714
+#: media.pm:397
#, c-format
-msgid "Downloading file %s..."
-msgstr "Transfiriendo el fichero %s..."
+msgid "Please wait, retrieving file"
+msgstr "Por favor espere, recuperando archivo"
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "no se puede agregar medio"
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
-msgstr "Copiando algunos paquetes en el disco para uso futuro"
+msgstr "Copiar algunos paquetes en disco para su uso futuro"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Copia en curso"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
-msgstr "necesario"
+msgstr "debe tener"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "importante"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
-msgstr "muy bueno"
+msgstr "muy agradable"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
-msgstr "bueno"
+msgstr "agradable"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
-msgstr "quizás"
+msgstr "tal vez"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "Obteniendo información de paquete desde meta datos XML..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"No hay información xml para el medio \"%s\", sólo un resultado parcial para "
+"el paquete %s"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Sin descripción"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"Algunos paquetes requeridos por %s no se pueden instalar:\n"
+"%s"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "Estación de trabajo"
+msgid "An error occurred:"
+msgstr "Se produjo un error:"
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Estación de trabajo de Oficina"
+msgid "A fatal error occurred: %s."
+msgstr "Ocurrió un error fatal: %s"
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
-msgstr ""
-"Programas de Oficina: procesadores de texto (OpenOffice.org Writer, Kword), "
-"hojas de cálculo (OpenOffice.org Calc, Kspread), visualizadores PDF, etc"
+msgid "Do not ask again"
+msgstr "No preguntar de nuevo"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "Fallaron %d operaciones de instalación"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Falló la instalación de paquetes:"
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "Estación de trabajo"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Estación de trabajo de oficina"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Programas de Oficina: procesadores de palabras (kword, abiword), plantillas "
-"de cálculo (kspread, gnumeric), visualizadores PDF, etc"
+"Programas de oficina: procesadores de texto (LibreOffice Writer, Kword), "
+"hojas de cálculo (LibreOffice Calc, Kspread), visores PDF, etc."
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
-msgstr "Estación de Juegos"
+msgstr "Estación de juegos"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "Programas de entretenimiento: arcade, tableros, estrategia, etc"
+msgstr "Programas de diversión: arcade, tableros, estrategia, etc."
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
-msgstr "Estación Multimedios"
+msgstr "Estación Multimedia"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
-msgstr "Programas de reproducción/edición de sonido y vídeo"
+msgstr "Programas de reproducción y edición de sonido y video"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
-msgstr "Estación Internet"
+msgstr "Estación de Internet"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-"Conjunto de herramientas para leer y enviar correo y noticias (mutt, tin...) "
-"y para navegar por la Web"
+"Conjunto de herramientas para leer y enviar correo y noticias (mutt, tin, "
+"etc) y para navegar por la Web"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
-msgstr "Computadora de Red (cliente)"
+msgstr "Computador de red (cliente)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
-msgstr "Clientes para los distintos protocolos incluyendo a SSH"
+msgstr "Clientes para diferentes protocolos, incluyendo ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
-msgstr "Herramientas para facilitar la configuración de su computadora"
+msgstr "Herramientas para facilitar la configuración de su computador"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
-msgstr "Herramientas para la consola"
+msgstr "Herramientas de consola"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
-msgstr "Editores, shells, manipulación de archivos, terminales"
+msgstr "Editores, consolas, herramientas de archivo, terminales"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Desarrollo"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
-msgstr "Bibliotecas de desarrollo C y C++, programas y archivos *.h"
+msgstr "Bibliotecas de C y C + +, programas y archivos de inclusión"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Documentación"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
-msgstr "Libros y COMOs sobre Linux y Software Libre"
+msgstr "Libros y Howtos sobre Linux y Software Libre"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
-msgstr "Linux Standard Base. Soporte de aplicaciones de terceros"
+msgstr "Base estándar de Linux. Soporte de aplicaciones de terceros"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
-msgstr "Servidor web"
+msgstr "Servidor Web"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
-msgstr "Grupos de trabajo"
+msgstr "Groupware"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Servidor Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
-msgstr "Cortafuegos/Router"
+msgstr "Cortafuegos/Enrutador"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
-msgstr "Pasarela de acceso a Internet"
+msgstr "Puerta de enlace de Internet"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "Correo/Noticias"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Servidor de correo Postfix, servidor de noticias Inn"
+msgstr "Servidor de correo Postfix, Servidor de noticias Inn"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
-msgstr "Servidor de directorios"
+msgstr "Servidor de directorio"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "Servidor FTP"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "Servidor de nombres de dominio y servidor de información de red"
+msgstr "Nombre de dominio y Servidor de Información de Red"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
-msgstr "Servidor de ficheros e impresión"
+msgstr "Servidor de compartición de archivos e impresoras"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "Servidor NFS, servidor Samba"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
-msgstr "Base de Datos"
+msgstr "Bases de datos"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "Servidor de base de datos PostgreSQL y MySQL"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "Servidor de bases de datos PostgreSQL y MariaDB"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
-msgstr "Apache y Pro-ftpd"
+msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Correo"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Servidor de correo Postfix"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "Servidor de base de datos PostgreSQL o MySQL"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "Servidor de bases de datos PostgreSQL o MariaDB"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
-msgstr "Servidor de red"
+msgstr "Servidor de computador de red"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "Servidor NFS, servidor SMB, servidor proxy, servidor SSH"
+msgstr "servidor NFS, servidor SMB, servidor proxy, servidor ssh"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Entorno gráfico"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "Estación de trabajo KDE"
+msgid "Plasma Workstation"
+msgstr "Estación de trabajo Plasma"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr ""
-"El K Desktop Environment, el entorno gráfico básico con una colección de "
+"El entorno de escritorio K, el entorno gráfico básico con una colección de "
"herramientas que lo acompañan"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "Estación de trabajo GNOME"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr ""
-"Entorno gráfico con un conjunto de herramientas de escritorio y aplicaciones "
-"amigables"
+"Un entorno gráfico con un conjunto de aplicaciones y herramientas de "
+"escritorio amigables con el usuario"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr "Estación de trabajo Xfce"
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Un entorno gráfico ligero con un conjunto de aplicaciones y herramientas de "
+"escritorio amigables con el usuario"
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "Estación de trabajo MATE"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Estación de trabajo Cinnamon"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Un entorno gráfico basado en GNOME"
+
+#: share/meta-task/compssUsers.pl:179
#, c-format
-msgid "IceWm Desktop"
-msgstr "Escritorio IceWm"
+msgid "LXQt Desktop"
+msgstr "Escritorio LXQt"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+"Un puerto QT de siguiente generación del entorno de escritorio lightweight"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr "Escritorio Enlightenment"
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr "Un entorno gráfico rápido y liviando con un seguimiento dedicado"
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "Escritorio LXDE"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Un entorno gráfico ligero"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
-msgstr "Otros entornos gráficos"
+msgstr "Otros escritorios gráficos"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm, etc"
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, etc"
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Utilidades"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "Servidor SSH"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Servidor de configuración remota Webmin"
+msgstr "Servidor de Configuración Remota Webmin"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Utilidades/Supervisión de red"
+msgstr "Utilidades y monitoreo de red"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
-msgstr "Herramientas de supervisión, control de procesos, tcpdump, nmap, ..."
+msgstr ""
+"Herramientas de supervisión, contabilidad de procesos, tcpdump, nmap, etc."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Asistentes de Mandriva"
+msgid "Mageia Wizards"
+msgstr "Asistentes de Mageia"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Asistentes para configurar el servidor"
@@ -671,10 +842,10 @@ msgid ""
"An error occurred, but I do not know how to handle it nicely.\n"
"Continue at your own risk."
msgstr ""
-"Ocurrió un error y no se puede resolver de forma adecuada.\n"
+"Se produjo un error, pero no sé manejarlo adecuadamente .\n"
"Continúe bajo su propio riesgo."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -683,324 +854,386 @@ msgid ""
"\"\n"
msgstr ""
"Algunos paquetes importantes no se instalaron correctamente.\n"
-"Puede ser que su lector de CD o su CD de instalación estén defectuosos.\n"
-"Verifique el CD de instalación en un sistema ya existente con el comando:\n"
-" rpm -qpl media/main/*.rpm\n"
+"Puede ser que su unidad de CD-ROM o su disco CD-ROM está defectuoso.\n"
+"Verifica el disco CD-ROM en un equipo instalado con \"rpm -qpl media/main/*."
+"rpm\"\n"
#: steps_auto_install.pm:71 steps_stdio.pm:27
#, c-format
msgid "Entering step `%s'\n"
-msgstr "Entrando en la etapa '%s'\n"
+msgstr "Entrando al paso `%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Instalación de Mandriva Linux %s"
+msgid "%s Installation %s"
+msgstr "%s Instalación %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
-msgstr "<Tab>/<Alt-Tab> entre elementos"
+msgstr "<Tab>/<Alt-Tab> entre los elementos"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "El servidor Xorg demora en iniciar. Por favor espere..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"Su sistema tiene pocos recursos. Puede tener algún problema instalando\n"
-"Mandriva Linux. De ser así, puede intentar una instalación tipo texto.\n"
-"Para ello, presione 'F1' cuando arranque desde el CDROM, e introduzca 'text'."
+"El sistema está bajo en recursos. Es posible que tenga algún problema "
+"instalando\n"
+"%s. Si eso ocurre, puede tratar de una instalación en modo texto. Para "
+"ello,\n"
+"presione 'F1' cuando arranque desde el CD-ROM, luego escriba `texto'."
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Selección de medios"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Instalar Escritorio Plasma %s"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Instalar escritorio GNOME %s"
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Instalación personalizada"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Escritorio Plasma"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "Escritorio GNOME"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Escritorio personalizado"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Aquí hay una vista previa del escritorio '%s'."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Haga clic en las imágenes para ver una vista previa más grande"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
-msgstr "Selección de grupos de paquetes"
+msgstr "Selección de Grupo de paquetes"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
-msgstr "Selección de paquetes individuales"
+msgstr "Selección individual de paquetes"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Tamaño total: %d / %d MB"
+msgid "Unselect All"
+msgstr "Deseleccionar todas."
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Paquete incorrecto"
+msgid "Total size: %d / %d MB"
+msgstr "Tamaño total: %d/%d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Versión: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Tamaño: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Importancia: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
-msgstr "No puede seleccionar/deseleccionar este paquete"
+msgid "You cannot select/unselect this package"
+msgstr "No se puede seleccionar/des-seleccionar este paquete"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "debido a que falta %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "debido a que no se satisfizo %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
-msgstr "intentando promover a %s"
+msgstr "tratando de promover %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "para mantener %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
-"No puede seleccionar este paquete porque no hay espacio suficiente para "
+"No se puede seleccionar el paquete ya que no hay suficiente espacio para "
"instalarlo"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
-msgstr "Se van a instalar los paquetes siguientes"
+msgstr "Los siguientes paquetes se van a instalar"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
-msgstr "Se van a quitar los paquetes siguientes"
+msgstr "Los siguientes paquetes se van a quitar"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
-msgstr "Este es un paquete obligatorio, no puede desmarcarlo"
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr "Este es un paquete obligatorio, no puede ser des-seleccionado"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
-msgstr "No puede desmarcar este paquete. Ya está instalado"
+msgid "You cannot unselect this package. It is already installed"
+msgstr "No se puede des-seleccionar este paquete. Ya está instalado"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
-msgstr "No puede desmarcar este paquete. Debe ser actualizado"
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr "No se puede des-seleccionar este paquete. Debe ser actualizado"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Mostrar los paquetes seleccionados automáticamente"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Instalar"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Cargar/Guardar selección"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Actualizando la selección de paquetes"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr "Alternar entre la lista de paquete jerárquica y plana"
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Instalación mínima"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
-msgstr "Administración de software"
+msgstr "Administración de Software"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
-msgstr "Elija los paquetes que desea instalar"
+msgstr "Seleccione los paquetes que desea instalar"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Instalando"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Sin detalles"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Tiempo restante "
+msgid "Time remaining:"
+msgstr "Tiempo restante:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Estimando"
+msgid "(estimating...)"
+msgstr "(Estimando...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d paquete"
msgstr[1] "%d paquetes"
+msgstr[2] "%d paquetes"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Resumen"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Configurar"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "no configurado"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-"Se han encontrado los siguientes soportes de instalación.\n"
-"Si quiere saltarse alguno de ellos, puede deseleccionarlos ahora."
+"Se han encontrado los siguientes medios de instalación.\n"
+"Si desea omitir algunos de ellos, puede desseleccionar algunos ahora."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-"Tiene la opción de copiar los contenidos de los CD al disco duro antes de la "
-"instalación.\n"
-"La misma continuará desde el disco duro y los paquetes estarán disponibles "
-"una vez que el sistema esté completamente instalado."
+"Usted tiene la opción de copiar el contenido de los CDs a la unidad de disco "
+"duro antes de la instalación.\n"
+"Se continuará desde la unidad de disco duro y los paquetes estarán "
+"disponibles una vez que el sistema esté completamente instalado."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
-msgstr "Copiar los CD por completo"
+msgstr "Copiar todos los CDs"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
-msgstr "Ocurrió un error"
+msgstr "Se produjo un error"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Por favor, elija el tipo de su teclado."
+msgid "Please choose your keyboard layout"
+msgstr "Por favor, elija la distribución del teclado"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Aquí tiene la lista completa de teclados disponibles"
+msgid "Here is the full list of available keyboards:"
+msgstr "Aquí está la lista completa de los teclados disponibles:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
-msgstr "Instalación/Actualización"
+msgstr "Instalar/Actualizar"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
-msgstr "¿Es una instalación o una actualización?"
+msgstr "¿Es esta una instalación o una actualización?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
-msgstr "Instalar"
+msgstr ""
+"_: Este es un sustantivo:\n"
+"Instalación"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Actualizar %s"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
+msgid "Encryption key for %s"
+msgstr "Llave de cifrado para %s"
-#: steps_interactive.pm:158
+#: steps_interactive.pm:217
#, c-format
-msgid "Encryption key for %s"
-msgstr "Clave de cifrado para %s"
+msgid "Cancel installation, reboot system"
+msgstr "Cancele la instalación, reinicie el sistema"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "New Installation"
+msgstr "Nueva instalación"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "Configuring IDE"
-msgstr "Configurando dispositivos IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Actualizar instalación previa (no recomendado)"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"¡No hay 1MB de espacio para bootstrap! La instalación continuará, pero para "
-"arrancar su sistema, necesitará crear la partición bootstrap en DiskDrake"
+"Instalador ha detectado que su sistema Linux instalado no\n"
+"puede ser actualizado de manera segura a %s.\n"
+"\n"
+"Se recomienda una instalación nueva que sustituya a la anterior.\n"
+"\n"
+"Advertencia: debe hacer un respaldo de todos sus datos personales\n"
+"antes de elegir \"Nueva instalación\"."
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
-msgstr ""
-"¡Necesita crear un bootstrap de arranque PReP PPC! La instalación continuará "
-"pero, para arrancar su sistema, necesitará crear la partición bootstrap en "
-"DiskDrake"
+msgid "CD/DVD"
+msgstr "CD/DVD"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "Configurando CD/DVD"
+
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1008,170 +1241,214 @@ msgid ""
"done.\n"
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
-"¡Cambie su CD-ROM!\n"
-"\n"
-"Por favor, inserte CD-ROM etiquetado \"%s\" en la unidad y pulse Aceptar "
-"cuando lo haya hecho.\n"
-"Si no lo posee, pulse Cancelar para evitar la instalación desde este CD-ROM."
+"¡Cambiar su CD-ROM!\n"
+"Por favor inserte el CD-ROM etiquetado \"%s\" en la unidad y pulse Aceptar "
+"cuando haya terminado.\n"
+"Si no lo tiene, pulse Cancelar para evitar la instalación desde este CD-Rom."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
-msgstr "Buscando los paquetes disponibles..."
+msgstr "Buscando paquetes disponibles ..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-"Su sistema no tiene espacio libre suficiente para la instalación o "
-"actualización (%d MB > %d MB)"
+"Su sistema no dispone de espacio suficiente para la instalación o "
+"actualización (%dMB > %dMB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-"Por favor, seleccione cargar o guardar la selección de paquetes.\n"
-"El formato es el mismo que el de los archivos generados con la instación "
-"automática."
+"Por favor, elija cargar o guardar la selección de paquetes.\n"
+"El formato es el mismo que los archivos generados por auto_install."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Cargar"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Guardar"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Archivo incorrecto"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr "Instalar el escritorio KDE de Mandriva"
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr "Instalar el escritorio GNOME de Mandriva"
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
+#: steps_interactive.pm:459
#, c-format
-msgid "Custom install"
-msgstr "Instalación personalizada"
+msgid "Desktop Selection"
+msgstr "Selección de escritorio"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
-"Puede elegir un perfil de escritorio de estación de trabajo: KDE, GNOME o "
-"Instalación personalizada"
+msgid "You can choose your workstation desktop profile."
+msgstr "Usted puede elegir su perfil de escritorio de estación de trabajo."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
-msgstr "El tamaño seleccionado es mayor que el disponible"
+msgstr "El tamaño seleccionado es más grande que el espacio disponible"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
-msgstr "Tipo de instalación."
+msgstr "Tipo de instalación"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
-"No ha seleccionado ningún grupo de paquetes\n"
-"Elija por favor la instalación mínima que desea."
+"No ha seleccionado ningún grupo de paquetes.\n"
+"Por favor, elija la instalación mínima que desee:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Con X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Instalar paquetes recomendados"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
-msgstr "Con documentación básica (¡recomendado!)"
+msgstr "Con la documentación básica (¡recomendado!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
-msgstr "Instalación mínima \"en serio\" (especialmente sin urpmi)"
+msgstr "Instalación realmente mínima (especialmente sin urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Preparando actualización..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Preparando la instalación"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Instalando el paquete %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
-msgstr "Hubo un error al ordenar los paquetes:"
+msgstr "Se ha producido un error al ordenar los paquetes:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
-msgstr "¿Seguir adelante?"
+msgstr "¿Continuar de todos modos?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
-msgstr "Reintentarlo"
+msgstr "Reintentar"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
-msgstr "Omitir este paquete"
+msgstr "Saltar este paquete"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
-msgstr "Omitir todos los paquetes del soporte \"%s\""
+msgstr "Omitir todos los paquetes del medio \"%s\""
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
-msgstr "Volver a la selección de paquetes"
+msgstr "Vuelve a la selección de medios y paquetes"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
-msgstr "Hubo un error al instalar el paquete %s."
+msgstr "Se ha producido un error al instalar el paquete %s."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
-msgstr "Configuración posterior a la instalación"
+msgstr "Configuración post-instalación"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-"Por favor, asegúrese de que el soporte de actualización de módulos está en "
-"la unidad %s"
+"Por favor, asegúrese de que el medio de Módulos de Actualización está en la "
+"unidad %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Actualizaciones"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Ahora tiene la oportunidad de configurar los repositorios en internet."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Esto permite instalar actualizaciones de seguridad."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"Para configurar estos repositorios, necesitará una conexión a internet que "
+"funcione.\n"
+"\n"
+"¿Desea configurar los repositorios de actualizaciones?"
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr "No se puede instalar el gestor de descargas"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "¿Reintentar?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Fallo al añadir soporte"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1183,225 +1460,138 @@ msgid ""
"\n"
"Do you want to install the updates?"
msgstr ""
-"Ahora tiene la oportunidad de bajar paquetes actualizados. Estos paquetes\n"
-"se han actualizado después de que se publicó la distribución. Puede que los\n"
-"mismos contengan correcciones de bugs o de seguridad.\n"
+"Ahora tiene la oportunidad de descargar paquetes actualizados. Estos "
+"paquetes\n"
+"se han actualizado después de la distribución fue lanzada. Pueden contener\n"
+"correcciones de seguridad o de errores.\n"
"\n"
-"Para descargar estos paquetes, necesitará tener una conexión con la\n"
-"Internet que esté funcionando.\n"
+"Para descargar estos paquetes, se necesita tener una conexión a Internet "
+"activa.\n"
"\n"
"¿Desea instalar las actualizaciones?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr ""
-"Contactando con el sitio de réplica para obtener la lista de los paquetes "
-"disponibles..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "No se puede contactar al sitio de réplica %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s en %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Hardware"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Tarjeta de sonido"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "¿Tiene una tarjeta de sonido ISA?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Use \"alsaconf\" o \"sndconfig\" luego de la instalación para configurar su "
-"tarjeta de sonido"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"No se detectó tarjeta de sonido. Pruebe \"harddrake\" luego de la instalación"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Interfaz gráfica"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Redes e Internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
-msgstr "Proxis"
+msgstr "Servidores proxy"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "configurado"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Nivel de seguridad"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Cortafuegos"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "activado"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "deshabilitado"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
-msgstr "No ha configurado a X ¿Está seguro que realmente desea esto?"
-
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "Preparando el cargador de arranque"
-
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"Parece que tiene una máquina desconocida o \"Old World\", el gestor de "
-"arranque yaboot no funcionará en la misma.\n"
-"La instalación continuará, pero necesitará\n"
-"utilizar BootX o alguna otra manera para arrancar su máquina. El parámetro "
-"del kernel para el sistema de ficheros raíz es: root=%s"
+msgstr "No se ha configurado X. ¿Está seguro de que desea esto?"
-#: steps_interactive.pm:1024
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Do you want to use aboot?"
-msgstr "¿Desea usar aboot?"
+msgid "Preparing initial startup program..."
+msgstr "Preparando el programa de instalación inicial..."
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Ocurrió un error al instalar aboot, \n"
-"¿desea forzar la instalación incluso si ello implicara la destrucción de la "
-"primera partición?"
+msgid "Be patient, this may take a while..."
+msgstr "Sea paciente, esto puede tardar un tiempo..."
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-"En este nivel de seguridad, el acceso a los archivos en la partición Windows "
-"está restringido sólo al administrador."
+"En este nivel de seguridad, el acceso a los archivos en la partición de "
+"Windows está restringido al administrador."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Inserte un disquete en blanco en la unidad %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
-msgstr "Creando el disquete de instalación automática"
+msgstr "Creando disquete de instalación automática..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
"\n"
"Do you really want to quit now?"
msgstr ""
-"Algunas de las etapas no fueron completadas.\n"
+"Algunas pasos no se han completado.\n"
"\n"
-"¿Realmente desea salir ahora?"
+"¿Está seguro que desea salir ahora?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
-msgstr "Felicidades"
+msgstr "Felicitaciones"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Reiniciar"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Generar un disquete de instalación automática"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"La instalación automática puede automatizarse por completo si lo desea,\n"
-"¡¡en ese caso se adueñará del disco rígido!!\n"
-"(la intención de esto es instalarlo en otro ordenador).\n"
-"\n"
-"Puede preferir reproducir la instalación.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Reproducir"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automatizada"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Guardar la selección de paquetes"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
msgid ""
"_: Keep these entry short\n"
"Language"
-msgstr "Idioma"
+msgstr ""
+"_: Keep these entry short\n"
+"Idioma"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
@@ -1413,203 +1603,150 @@ msgstr "Localización"
msgid ""
"_: Keep these entry short\n"
"License"
-msgstr "Licencia"
+msgstr ""
+"_: Keep these entry short\n"
+"Licencia"
#: steps_list.pm:18
#, c-format
msgid ""
"_: Keep these entry short\n"
"Mouse"
-msgstr "Ratón"
+msgstr ""
+"_: Keep these entry short\n"
+"Ratón"
#: steps_list.pm:19 steps_list.pm:20
#, c-format
msgid ""
"_: Keep these entry short\n"
"Hard drive detection"
-msgstr "Detección del disco rígido"
+msgstr ""
+"_: Keep these entry short\n"
+"Detección de disco duro"
#: steps_list.pm:21 steps_list.pm:22
#, c-format
msgid ""
"_: Keep these entry short\n"
"Installation class"
-msgstr "Clase de instalación"
+msgstr ""
+"_: Keep these entry short\n"
+"Clase de instalación"
#: steps_list.pm:23
#, c-format
msgid ""
"_: Keep these entry short\n"
"Keyboard"
-msgstr "Teclado"
+msgstr ""
+"_: Keep these entry short\n"
+"Teclado"
#: steps_list.pm:24
#, c-format
msgid ""
"_: Keep these entry short\n"
"Security"
-msgstr "Seguridad"
+msgstr ""
+"_: Keep these entry short\n"
+"Seguridad"
#: steps_list.pm:25
#, c-format
msgid ""
"_: Keep these entry short\n"
"Partitioning"
-msgstr "Particionado"
+msgstr ""
+"_: Keep these entry short\n"
+"Particionamiento"
#: steps_list.pm:27 steps_list.pm:28
#, c-format
msgid ""
"_: Keep these entry short\n"
"Formatting"
-msgstr "Formateo"
+msgstr ""
+"_: Keep these entry short\n"
+"Formateo"
#: steps_list.pm:29
#, c-format
msgid ""
"_: Keep these entry short\n"
"Choosing packages"
-msgstr "Selección de paquetes"
+msgstr ""
+"_: Keep these entry short\n"
+"Selección de paquetes"
#: steps_list.pm:31
#, c-format
msgid ""
"_: Keep these entry short\n"
"Installing"
-msgstr "Instalación"
+msgstr ""
+"_: Keep these entry short\n"
+"Instalación"
#: steps_list.pm:34
#, c-format
msgid ""
"_: Keep these entry short\n"
"Users"
-msgstr "Usuarios"
-
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
+msgstr ""
"_: Keep these entry short\n"
-"Networking"
-msgstr "Red"
+"Usuarios"
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
"_: Keep these entry short\n"
"Bootloader"
-msgstr "Arranque"
+msgstr ""
+"_: Keep these entry short\n"
+"Cargador de arranque"
#: steps_list.pm:40 steps_list.pm:41
#, c-format
msgid ""
"_: Keep these entry short\n"
"Configure X"
-msgstr "Configuración de X"
+msgstr ""
+"_: Keep these entry short\n"
+"Configurar X"
#: steps_list.pm:42
#, c-format
msgid ""
"_: Keep these entry short\n"
"Summary"
-msgstr "Resumen"
+msgstr ""
+"_: Keep these entry short\n"
+"Resumen"
#: steps_list.pm:44 steps_list.pm:45
#, c-format
msgid ""
"_: Keep these entry short\n"
"Services"
-msgstr "Servicios"
+msgstr ""
+"_: Keep these entry short\n"
+"Servicios"
#: steps_list.pm:46
#, c-format
msgid ""
"_: Keep these entry short\n"
"Updates"
-msgstr "Actualizaciones"
+msgstr ""
+"_: Keep these entry short\n"
+"Actualizaciones"
#: steps_list.pm:48
#, c-format
msgid ""
"_: Keep these entry short\n"
"Exit"
-msgstr "Salir"
-
-#~ msgid "All"
-#~ msgstr "Todo"
-
-#~ msgid "TV card"
-#~ msgstr "Tarjeta de TV"
-
-#~ msgid "Boot"
-#~ msgstr "Arranque"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Autentificación"
-
-#~ msgid "Arkeia"
-#~ msgstr "Arkeia"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "3D"
-#~ msgstr "3D"
-
-#~ msgid "2007 product line"
-#~ msgstr "línea de productos 2007"
-
-#~ msgid "Invictus Firewall"
-#~ msgstr "Cortafuegos Invictus"
-
-#~ msgid "How to register"
-#~ msgstr "Como registrarse"
-
-#~ msgid "New Theme"
-#~ msgstr "Nuevo tema"
-
-#~ msgid "Skype"
-#~ msgstr "Skype"
-
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "(%d paquete, %d MB)"
-#~ msgstr[1] "(%d paquetes, %d MB)"
-
-#~ msgid "%d packages"
-#~ msgstr "%d paquetes"
-
-#~ msgid "Language"
-#~ msgstr "Elija su idioma"
-
-#~ msgid "License"
-#~ msgstr "Licencia"
-
-#~ msgid "Installation class"
-#~ msgstr "Clase de instalación"
-
-#~ msgid "Formatting"
-#~ msgstr "Formateo"
-
-#~ msgid "Choosing packages"
-#~ msgstr "Selección de paquetes"
-
-#~ msgid "Users"
-#~ msgstr "Usuarios"
-
-#~ msgid "Networking"
-#~ msgstr "Red"
-
-#~ msgid "Configure X"
-#~ msgstr "Configuración de X"
-
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
-#~ msgstr ""
-#~ "No se puede acceder a los módulos del núcleo correspondientes a su núcleo "
-#~ "(no se encuentra el archivo %s), esto generalmente significa que su "
-#~ "disquete de arranque no contiene un núcleo de misma versión que el "
-#~ "soporte de instalación (haga un nuevo disquete de arranque por favor)"
+msgstr ""
+"_: Keep these entry short\n"
+"Salida"
diff --git a/perl-install/install/share/po/et.po b/perl-install/install/share/po/et.po
index 9f49abec4..89849da85 100644
--- a/perl-install/install/share/po/et.po
+++ b/perl-install/install/share/po/et.po
@@ -1,29 +1,83 @@
-# Translation of DrakX.po to Estonian.
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# Riho Kurg <rx@linux.ee>, 1999-2003.
-# Marek Laane <bald@starman.ee>, 2002-2007.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Marek Laane <qiilaq69@gmail.com>, 2015
+# Marek Laane <qiilaq69@gmail.com>, 2015-2016
+# Marek Laane <qiilaq69@gmail.com>, 2018-2020
msgid ""
msgstr ""
-"Project-Id-Version: DrakX-et\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-10-01 14:41+0200\n"
-"Last-Translator: Marek Laane <bald@starman.ee>\n"
-"Language-Team: Estonian <et@li.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2020-06-18 11:13+0000\n"
+"Last-Translator: Marek Laane <qiilaq69@gmail.com>\n"
+"Language-Team: Estonian (http://www.transifex.com/MageiaLinux/mageia/"
+"language/et/)\n"
+"Language: et\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Ühinege meiega!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Võtke see omaks!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "Teie valik!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Kontoritöö vahendid"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Kodune meelelahutus"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "Lastele"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "Perele!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "Arendajatele!"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Täname Teid!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Tundke end vabalt!"
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
msgstr "Kas Teil on veel paigaldusandmekandjaid?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -36,143 +90,155 @@ msgstr ""
"\n"
"Kas Teil on veel paigaldusandmekandjaid?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Võrk (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Võrk (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Võrk (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "Peegli URL?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "URL-i alguses peab seisma ftp:// või http://"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Mandriva Linuxi veebisaidilt saadaolevate peeglite nimekirja hankimine..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Ühenduse loomine Mandriva Linuxi veebisaidiga saadaolevate peeglite "
-"nimekirja hankimiseks ebaõnnestus"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Valige peegel, millelt lugeda pakettide nimekiri"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "NFS-i seadistamine"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr "Palun andke NFS-andmekandja masinanimi ja kataloog"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr "Masinanimi puudub"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "Kataloogi alguses peab olema \"/\""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "NFS-i andmekandja masinanimi?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Kataloog"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "Täiendav"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
msgstr ""
-"Tarkvara nimekirja sisaldava faili leidmine sellelt peeglilt ebaõnnestus. "
+"Tarkvara nimekirja sisaldava faili leidmine sellelt peeglilt nurjus. "
"Kontrollige palun asukohta."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Juba paigaldatud pakettide tuvastamine..."
+msgid "Core Release"
+msgstr "Tuumiktarkvara (core)"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Pakettide eemaldamine enne uuendamist..."
+msgid "Tainted Release"
+msgstr "Piirangutega tarkvara (tainted)"
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Uuendatavate pakettide otsimine..."
+msgid "Nonfree Release"
+msgstr "Mittevaba tarkvara (non-free)"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"Olete valinud järgmise(d) serveri(d): %s\n"
-"\n"
-"\n"
-"Need serverid aktiveeritakse vaikimisi. Pole küll teada, et neil oleks\n"
-"turvaprobleeme, aga nende leidmine tulevikus pole sugugi välistatud.\n"
-"Kui peaks nii minema, kontrollige, et suudate uuenduse võimalikult\n"
-"ruttu hankida.\n"
-"\n"
-"\n"
-"Kas tõesti paigaldada need serverid?\n"
+"Osa Teie masina riistvarast vajab mittevaba püsivara, et vaba tarkvara "
+"draiverid saaksid korralikult töötada."
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "Teil tuleks lubada \"%s\" kasutamine"
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "\"%s\" sisaldab mitmesugust süsteemile vajalikku tarkvara ja rakendusi"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "\"%s\" sisaldab, nagu nimigi ütleb, mittevaba tarkvara.\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"Samuti sisaldab see püsivara, mida vajavad oma töös mõningad seadmed (nt. "
+"mõned ATI/AMD graafikakaardid, mõned võrgukaardid, mõned RAID-i kaardid jne.)"
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"\"%s\" sisaldab tarkvara, mida ei ole tarkvarapatentide tõttu võimalik "
+"kõigis riikides vabalt levitada."
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr "Samuti sisaldab see lisaomaduste huvides ümber ehitatud \"%s\"."
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "Siin saab soovi korral lubada rohkemate andmekandjate kasutamist."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "See andmekandja sisaldab \"%s\" uuendusi"
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Juba paigaldatud pakettide tuvastamine..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Uuendatavate pakettide otsimine..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Pakettide eemaldamine enne uuendamist..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -185,82 +251,87 @@ msgstr ""
"\n"
"Kas tõesti eemaldada need paketid?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Viga faili %s lugemisel"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "Järgmistele ketastele anti uus nimi:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (varem oli %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Võrk"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "Palun valige andmekandja"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Fail on juba olemas. Kas kirjutada see üle?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Ligipääs keelatud"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "Vigane NFS-i nimi"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "Vigane andmekandja %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Ekraanipilte ei saa teha enne partitsioneerimist"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Ekraanipildid asuvad pärast paigaldamist asukohas %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Paigaldamine"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Seadistamine"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Vormindada tuleb ka %s"
@@ -284,47 +355,68 @@ msgstr "Võrgu aktiveerimine"
msgid "Bringing down the network"
msgstr "Võrgu seiskamine"
-#: media.pm:703 media.pm:714
+#: media.pm:397
#, c-format
-msgid "Downloading file %s..."
-msgstr "Faili %s allalaadimine..."
+msgid "Please wait, retrieving file"
+msgstr "Palun oodake, tõmmatakse faili"
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "andmekandja lisamine nurjus"
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr "Mõningate tarkvarapakettide kopeerimine kettale edasiseks kasutamiseks"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Käib kopeerimine..."
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "vajalik"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "tähtis"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "väga kena"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "kena"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "võib olla"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "Paketi teabe hankimine XML-metaandmetest..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Andmekandjal \"%s\" puudub XML-info, paketil %s on ainult osaline tulemus"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Kirjeldus puudub"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
@@ -333,60 +425,76 @@ msgstr ""
"Mõningaid pakette, mida nõuab %s, ei saa paigaldada:\n"
"%s"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "Tekkis viga:"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "Tekkis saatuslik viga: %s."
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr "Rohkem ei küsita"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d paigaldamistehingut nurjus"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Pakettide paigaldamine nurjus:"
+
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "Tööjaam"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "Kontori-tööjaam"
-#: share/meta-task/compssUsers.pl:15
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Kontoritöö programmid: tekstitöötlus (OpenOffice.org Writer, KWord), "
-"tabelitöötlus (OpenOffice.org Calc, KSpread), PDF-failide näitajad jne"
+"Kontoritöö programmid: tekstitöötlus (LibreOffice Writer, KWord), "
+"tabelitöötlus (LibreOffice Calc, KSpread), PDF-failide näitajad jne"
-#: share/meta-task/compssUsers.pl:16
-#, c-format
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"Kontoritöö programmid: tekstitöötlus (KWord, Abiword), tabelitöötlus "
-"(KSpread, Gnumeric), PDF-failide näitajad jne"
-
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Mänguvahend"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Meelelahutus: põnevus-, laua-, strateegiamängud jne"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Multimeedia-tööjaam"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Heli ja video mängimine ja redigeerimine"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Interneti-tööjaam"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
@@ -395,262 +503,315 @@ msgstr ""
"Valik rakendusi e-posti ja uudiste lugemiseks (mutt, tin...) ning veebi "
"lehitsemiseks"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Võrguarvuti (klient)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Mitme protokolli, sealhulgas ssh kliendid"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Tööriistad süsteemi lihtsamaks haldamiseks"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Konsoolitööriistad"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Redaktorid, shellid, terminalid, failihaldus"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Arendus"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "C ja C++ arendusteegid, rakendused ja päisefailid"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Dokumentatsioon"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Raamatud ja HOWTO-d Linuxi ja vabavara kohta"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Linux Standard Base. Kolmandate tootjate rakenduste toetus"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Veebiserver"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Grupitöö"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Kolabi server"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Tulemüür/marsruuter"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Internet"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "E-post/Uudistegrupid"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Postfixi e-posti server, Inn uudisteserver"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Kataloogiserver"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP-server"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "Nimeserver ja võrguteabeserver"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "Faili- ja printserver"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "NFS-server, Samba-server"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Andmebaasid"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL- ja MySQL-andmebaasiserver"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "PostgreSQL- ja MariaDB-andmebaasiserver"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Veeb/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache ja Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "E-post"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Postfixi e-posti server"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL- või MySQL-andmebaasiserver"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL- või MariaDB-andmebaasiserver"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Võrguserver"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "NFS-, SMB-, SSH-server, puhverserver (proxy)"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Graafiline keskkond"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE tööjaam"
+msgid "Plasma Workstation"
+msgstr "Plasma tööjaam"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr "K töölaua keskkond: graafiline töökeskkond ja palju rakendusi"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "GNOME tööjaam"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr "Graafiline töökeskkond koos kasutajasõbralike rakendustega"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr "Xfce tööjaam"
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Kergemat sorti graafiline töökeskkond koos kasutajasõbralike rakendustega"
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "MATE tööjaam"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Cinnamoni tööjaam"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "GNOME-l põhinev graafiline keskkond"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "LXQt töölaud"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "Kergemat sorti graafilise töökeskkonna uue põlvkonna Qt-versioon"
+
+#: share/meta-task/compssUsers.pl:184
#, c-format
-msgid "IceWm Desktop"
-msgstr "IceWM töölaud"
+msgid "Enlightenment Desktop"
+msgstr "Enlightenmenti töölaud"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr "Kergemat sorti kiire graafiline töökeskkond andunud kasutajaskonnaga"
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "LXDE töölaud"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Kergemat sorti kiire graafiline töökeskkond"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Muud graafilised töölauad"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "WindowMaker, Enlightenment, Fvwm jt"
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm jt"
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Utiliidid"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH-server"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Webmin võrguseadistusserver"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "Võrguutiliidid ja võrgu jälgimine"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "Jälgimistööriistad, protsesside jälgimine, tcpdump, nmap..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Mandriva nõustajad"
+msgid "Mageia Wizards"
+msgstr "Mageia nõustajad"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Serverite seadistamise nõustajad"
@@ -661,10 +822,10 @@ msgid ""
"An error occurred, but I do not know how to handle it nicely.\n"
"Continue at your own risk."
msgstr ""
-"Tekkis mingi viga, aga seda ei suuda programm ise klaarida.\n"
+"Tekkis tõrge, mida programm ei suuda ise klaarida.\n"
"Jätkake omal vastutusel."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -683,202 +844,255 @@ msgstr "Järgmine samm: %s\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linuxi paigaldamine %s"
+msgid "%s Installation %s"
+msgstr "%s paigaldamine: %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> liigub elementide vahel"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Xorgi server käivitub aeglaselt. Palun oodake..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"Teie süsteemil napib ressurse ja paigaldamine võib ebaõnnestuda.\n"
-"Kui nii juhtub, proovige palun tekstipõhist paigaldamist. Selleks\n"
-"vajutage CD-lt laadimisel F1 ja sisestage \"text\""
+"Teie süsteemil napib ressursse ja %s paigaldamine ei pruugi õnnestuda.\n"
+"Kui nii juhtub, proovige palun tekstipõhist paigaldamist.\n"
+"Selleks vajutage CD-lt laadimisel F1 ja sisestage \"text\"."
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Andmekandjate valik"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "%s Plasma töölaua paigaldamine"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "%s GNOME töölaua paigaldamine"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Kohandatud paigaldamine"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Plasma töölaud"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "GNOME töölaud"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Kohandatud töölaud"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Siin näeb '%s' töölaua eelvaatlust."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Suurema eelvaatluse nägemiseks klõpsake piltidel."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Paketigruppide valik"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Valik paketthaaval"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Suurus kokku: %d / %d MB"
+msgid "Unselect All"
+msgstr "Tühista kõigi valimine"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Vigane pakett"
+msgid "Total size: %d / %d MB"
+msgstr "Suurus kokku: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Versioon: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Suurus: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Tähtsus: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Seda paketti ei saa valida/valimata jätta"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "puuduva %s tõttu"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "rahuldamata %s tõttu"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
-msgstr "püüan välja pakkuda %s"
+msgstr "püüdes välja pakkuda %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "säilitamaks %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr "Seda paketti ei saa valida, sest paigaldamiseks napib kettaruumi"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Paigaldamiseks on valitud järgmised paketid"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Eemaldamiseks on valitud järgmised paketid"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "See pakett on kohustuslik"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "See pakett on juba paigaldatud"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Selle paketi peate valima, sest selle uuendamine on kohustuslik"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Automaatselt valitud pakettide näitamine"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Paigalda"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Valiku laadimine/salvestamine"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Paketivaliku uuendamine"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr "Hierarhilise ja ühetasandilise paketiloendi vahel lülitamine"
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Minimaalne paigaldus"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Tarkvarahaldur"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Valige paketid, mida soovite paigaldada"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Paigaldamine"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Üksikasjadeta"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Aega jäänud "
+msgid "Time remaining:"
+msgstr "Aega jäänud:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Oletus"
+msgid "(estimating...)"
+msgstr "(arvutatakse...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d pakett"
msgstr[1] "%d paketti"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Kokkuvõte"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Seadista"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "seadistamata"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
@@ -887,105 +1101,110 @@ msgstr ""
"Leiti järgmised paigaldusandmekandjad.\n"
"Kui Te ei soovi mõnda neist kasutada, eemaldage need valikust."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
"Teil on võimalik kopeerida CD-de sisu enne paigaldamist kõvakettale.\n"
"Seejärel jätkatakse paigaldamist kõvakettalt ning kogu tarkvara on seal "
"kättesaadav ka pärast süsteemi paigaldamist."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "Kopeeri kõik CD-d"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
-msgstr "Tekkis mingi viga"
+msgstr "Tekkis viga"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Palun valige klaviatuuriasetus."
+msgid "Please choose your keyboard layout"
+msgstr "Palun valige klaviatuuriasetus"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "See on saadaolevate klaviatuuriasetuste täielik nimekiri"
+msgid "Here is the full list of available keyboards:"
+msgstr "See on saadaolevate klaviatuuriasetuste täielik nimekiri:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Paigaldamine/Uuendamine"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Kas see on paigaldamine või uuendamine?"
-#: steps_interactive.pm:134
+#: steps_interactive.pm:159
#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Paigaldamine"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "%s uuendamine"
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr "Uuendamine 32-bitiselt distributsioonilt 64-bitisele ei ole toetatud"
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr "Uuendamine 64-bitiselt distributsioonilt 32-bitisele ei ole toetatud"
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "%s krüptovõti"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "Paigaldamisest loobumine, süsteemi taaskäivitamine"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "IDE seadistamine"
+msgid "New Installation"
+msgstr "Uus paigaldus"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
-"Ruumi 1MB-se alglaadimisala loomiseks napib! Paigaldamine jätkub, kuid "
-"süsteemi alglaadimiseks tuleb Teil luua DiskDrake abil alglaadimisala."
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Varasema paigalduse uuendamine (ei ole soovitatav)"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"Teil tuleb luua PPC PReP Boot alglaadimisala! Paigaldamine jätkub, kuid "
-"süsteemi alglaadimiseks tuleb Teil luua DiskDrake abil alglaadimisala."
+"Paigaldusprogramm leidis, et Teie olemasolevat Mageia Linuxi süsteemi\n"
+"ei saa turvaliselt uuendada versioonile %s.\n"
+"\n"
+"Soovitatav on valida uus paigaldus, mis asendab senise.\n"
+"\n"
+"Hoiatus: Te peaksite varundama kõik oma isiklikud andmed,\n"
+"enne kui valite võimaluse \"Uus paigaldus\"."
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "CD/DVD seadistamine"
+
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -998,20 +1217,20 @@ msgstr ""
"Palun sisestage CD nimega \"%s\" CD-seadmesse ja klõpsake nupule \"Olgu\".\n"
"Kui Teil sellist ei ole, klõpsake nupule \"Loobu\"."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Saadaolevate pakettide otsimine..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
"Teie süsteemis ei jagu ruumi paigaldamiseks ega uuendamiseks (%dMB > %dMB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
@@ -1020,52 +1239,52 @@ msgstr ""
"Valige palun paketivaliku laadimine või salvestamine.\n"
"Vorming on sama, mis automaatpaigaldusega loodud failide puhul."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Laadi"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Salvesta"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Vigane fail"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr "Mandriva KDE töölaua paigaldamine"
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr "Mandriva GNOME töölaua paigaldamine"
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
+#: steps_interactive.pm:459
#, c-format
-msgid "Custom install"
-msgstr "Kohandatud paigaldamine"
+msgid "Desktop Selection"
+msgstr "Töölaua valik"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr "Siin saab valida oma arvuti töölauaprofiili: KDE, GNOME või kohandatud"
+msgid "You can choose your workstation desktop profile."
+msgstr "Siin saab valida oma arvuti töölauaprofiili."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Valiku suurus ületab saadaolevat kettaruumi"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Paigaldamise tüüp"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1074,82 +1293,130 @@ msgstr ""
"Te ei valinud ühtegi paketigruppi.\n"
"Palun valige meelepärane minimaalne paigaldus:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "X'iga"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Soovitatavate pakettide paigaldamine"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Baasdokumentatsiooniga (soovitatav!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
-msgstr "Tõeliselt minimaalne (eriti just ilma urpmi-ta)"
+msgstr "Tõeliselt minimaalne (isegi urpmi-t ei ole)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Uuendamiseks valmistumine..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Paigaldamiseks valmistumine"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Paketi %s paigaldamine"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Pakettide tellimisel tekkis viga:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Kas ikkagi jätkata?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "Proovi uuesti"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr "Jäta pakett vahele"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr "Jäta kõik andmekandja \"%s\" paketid vahele"
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
msgstr "Tagasi andmekandja ja paketivaliku juurde"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
msgstr "Paketi %s paigaldamisel tekkis viga."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Paigaldamisjärgne seadistamine"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr "Palun kontrollige, et uuenduste andmekandja on seadmes %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Uuendused"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Nüüd on Teil võimalus määrata võrguandmekandjad."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "See lubab paigaldada turbeuuendusi."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"Nende andmekandjate määramiseks peab töötama\n"
+"internetiühendus.\n"
+"\n"
+"Kas soovite määrata uuendamisandmekandjad?"
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Paigaldamiseks on valitud järgmised paketid"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Kas proovida uuesti?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Andmekandja lisamine nurjus"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1162,158 +1429,106 @@ msgid ""
"Do you want to install the updates?"
msgstr ""
"Teil on nüüd võimalus alla laadida uuendatud pakette. Need on välja lastud\n"
-"pärast Mandriva Linuxi distributsiooni ilmumist ja võivad sisaldada vigade\n"
-"parandusi või turvauuendusi.\n"
+"pärast Mageia distributsiooni ilmumist ja võivad sisaldada vigade\n"
+"parandusi või turbeuuendusi.\n"
"\n"
"Allalaadimiseks peab Teil olema töötav internetiühendus.\n"
"\n"
"Kas soovite uuendusi paigaldada?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Peeglilt pakettide nimekirja lugemine..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Ühendust peegliga %s ei saadud"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s asukohas %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Riistvara"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Helikaart"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Kas Teil on ISA helikaart?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Helikaardi seadistamiseks käivitage pärast paigaldamist \"alsaconf\" või "
-"\"sndconfig\""
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Helikaarti ei leitud. Proovige see leida pärast paigaldamist \"harddrake\" "
-"abil"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Graafiline kasutajaliides"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
-msgstr "Kohtvõrk ja Internet"
+msgstr "Kohtvõrk ja internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Puhverserverid"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "seadistatud"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
-msgstr "Turvatase"
+msgstr "Turbetase"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Tulemüür"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "aktiveeritud"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "keelatud"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "Te ei ole seadistanud X'i. Kas Te tõesti ei taha seda teha?"
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "Alglaaduri ettevalmistamine..."
-
-#: steps_interactive.pm:1018
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"Paistab, et Teil on OldWorld-i või hoopis tundmatu masin, igatahes alglaadur "
-"yaboot siin ei tööta. Paigaldamine küll jätkub, aga masina käivitamiseks "
-"tuleb Teil kasutada BootX'i või mingit muud nippi. Kerneli argument "
-"juurfailisüsteemi jaoks on root=%s"
+msgid "Preparing initial startup program..."
+msgstr "Alglaadimisprogrammi ettevalmistamine..."
-#: steps_interactive.pm:1024
+#: steps_interactive.pm:1073
#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Kas soovite kasutada aboot-i?"
+msgid "Be patient, this may take a while..."
+msgstr "Varuge kannatust, see võib võtta veidi aega..."
-#: steps_interactive.pm:1027
-#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Viga aboot-i paigaldamisel, \n"
-"kas sundida peale, riskides esimese partitsiooni hävinguga?"
-
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-"Sellel turvatasemel pääseb Windowsi partitsioonil asuvatele failidele ligi "
+"Sellel turbetasemel pääseb Windowsi partitsioonil asuvatele failidele ligi "
"ainult administraator."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Pange palun tühi diskett seadmesse %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Kiirpaigaldusdisketi loomine..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1324,49 +1539,15 @@ msgstr ""
"\n"
"Kas soovite tõesti praegu lõpetada ja väljuda?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Õnnitleme!"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
-msgstr "Taaskäivitus"
-
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Loo kiirpaigaldusdiskett"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Automaatne paigaldamine võib olla ka sedavõrd tegija,\n"
-"et kasutab ära kogu kõvaketta!\n"
-"\n"
-"Võite valida ka lihtsalt paigaldamise kordamise.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Kordamine"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automaatne"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Salvesta paketivalik"
+msgstr "Taaskäivita"
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
@@ -1458,13 +1639,6 @@ msgid ""
"Users"
msgstr "Kasutajad"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Võrk"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1505,60 +1679,28 @@ msgstr "Uuendused"
msgid ""
"_: Keep these entry short\n"
"Exit"
-msgstr "Välju"
+msgstr "Väljumine"
-#~ msgid "All"
-#~ msgstr "Kõik"
-
-#~ msgid "TV card"
-#~ msgstr "TV kaart"
-
-#~ msgid "Boot"
-#~ msgstr "Alglaadimine"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Autentimisviis"
-
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "(%d pakett, %d MB)"
-#~ msgstr[1] "(%d paketti, %d MB)"
-
-#~ msgid "%d packages"
-#~ msgstr "%d paketti"
-
-#~ msgid "Language"
-#~ msgstr "Keel"
-
-#~ msgid "License"
-#~ msgstr "Litsents"
-
-#~ msgid "Installation class"
-#~ msgstr "Paigaldamismeetod"
-
-#~ msgid "Formatting"
-#~ msgstr "Vormindamine"
-
-#~ msgid "Choosing packages"
-#~ msgstr "Pakettide valik"
-
-#~ msgid "Users"
-#~ msgstr "Kasutajad"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "Peegli URL?"
-#~ msgid "Networking"
-#~ msgstr "Võrk"
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "URL-i alguses peab seisma ftp:// või http://"
-#~ msgid "Configure X"
-#~ msgstr "X'i seadistamine"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr ""
+#~ "Ühendumine %s veebileheküljega saadaolevate peeglite nimekirja "
+#~ "hankimiseks..."
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
#~ msgstr ""
-#~ "Ligipääs Teie kernelile vastavatele kerneli moodulitele ebaõnnestus "
-#~ "(puudub fail %s), mis enamasti tähendab, et Teie alglaadimisdiskett ei "
-#~ "ole sünkroonis paigaldus-andmekandjaga (palun looge uus "
-#~ "alglaadimisdiskett)"
+#~ "Ühendumine %s veebileheküljega saadaolevate peeglite nimekirja "
+#~ "hankimiseks nurjus"
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Valige peegel, millelt lugeda pakettide nimekiri"
diff --git a/perl-install/install/share/po/eu.po b/perl-install/install/share/po/eu.po
index b9b5d641a..46abe185a 100644
--- a/perl-install/install/share/po/eu.po
+++ b/perl-install/install/share/po/eu.po
@@ -1,30 +1,85 @@
-# translation of DrakX.po to Euskara
-# EUSKARA: Mandriva Linux translation.
-# Copyright (C) 2002,2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
-# Iñigo Salvador Azurmendi <xalba@euskalnet.net>, 2001-2002,2003,2004, 2005, 2006, 2007.
-# Hizkuntza Politikarako Sailburuordetza <hizpol@ej-gv.es>, 2004.
+# Translators:
+# Egoitz Rodriguez <egoitzro@gmail.com>, 2014
+# Egoitz Rodriguez <egoitzro@gmail.com>, 2014
+# Egoitz Rodriguez <egoitzro@gmail.com>, 2014-2016
+# Hizkuntza Politikarako Sailburuordetza <hizpol@ej-gv.es>, 2004
+# Iñigo Salvador Azurmendi <xalba@euskalnet.net>, 2005-2009
msgid ""
msgstr ""
-"Project-Id-Version: DrakX\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-08-08 13:48+0200\n"
-"Last-Translator: Iñigo Salvador Azurmendi <xalba@euskalnet.net>\n"
-"Language-Team: Euskara <eu@li.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2020-06-18 00:30+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Basque (http://www.transifex.com/MageiaLinux/mageia/language/"
+"eu/)\n"
+"Language: eu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Elkartu gurekin!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Zurea egin ezazu!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "Zure aukera!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Bulegoko tresnak"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Etxe entretenimendua"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "Umeentzat"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "Familiarentzat!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "Garatzaileentzat!"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Eskerrik asko!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Libre izan!"
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
msgstr "Baduzu beste euskarri osagarririk?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -37,141 +92,154 @@ msgstr ""
"\n"
"Badaukazu konfiguratu beharreko gainerako instalazio euskarririk?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Sarea (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Sarea (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Sarea (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "Ispiluaren URL?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "URL-ak ftp:// edo http:// aurretik izan behar du"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Mandriva Linux web gunearekin konektatzen, ispilu erabilgarrien zerrenda "
-"lortzeko..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Mandriva Linux web gunearekin eskuragarri dauden ispiluen zerrenda lortzeko "
-"harremanak huts egin du"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Aukeratu ispilu bat paketeak bertatik hartzeko"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "NFS ezarpena"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr "Mesedez sartu zure NFS euskarriaren ostalari izena eta direktorioa"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr "Ostalari izena falta da"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "Direktorioa honekin \"/\" hasi behar da"
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "NFS muntaiaren ostalari izena?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Direktorioa"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "Osagarria"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
msgstr "Ezin aurkitu hdlist fitxategia ispilu honetan"
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Instalatutako paketeak bilatzen..."
+msgid "Core Release"
+msgstr "Core Release"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Paketeak ezabatzen bertsioa hobetu aurretik..."
+msgid "Tainted Release"
+msgstr "Tainted Release"
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Bertsio-berritzeko paketeak bilatzen..."
+msgid "Nonfree Release"
+msgstr "Nonfree Release"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"Zerbitzari hau(ek) hautatu d(it)uzu: %s\n"
-"\n"
-"\n"
-"Zerbitzari horiek lehenespenez aktibatzen dira. Ez dute segurtasun-arazo \n"
-"ezagunik, baina berriren bat ager liteke. Horrelakorik gertatuz gero,\n"
-"bertsioa lehenbailehen berritu behar duzu.\n"
-"\n"
-"\n"
-"Ziur zaude zerbitzari hauek instalatu nahi dituzula?\n"
+"Zure makinako hardwareren batek firmwares ez libre batzuk behar ditu lan "
+"egiteko software gidari libreen ordez."
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "\"%s\" gaitu dezakezu"
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "sistemak eta bere aplikazioak askotariko \"%s\" piezak dauzka"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "%s\"-k software ez librea dauka.\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"Nolabaiteko tresnek maneiatu behar izandako firmwareak dauzka (adib.: ATI/"
+"AMD-etako grafikoko txartel batzuk, sare-txartel batzuk, RAID txartel "
+"batzuk, ...)"
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"\"%s\" herrialde bakoitzean software-patenteengatik banatu ezin duten "
+"softwarea dauka."
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr "\"%s\"-ren softwarea er dauka, birsortzeko gaitasun osagarriekin."
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "Hemen hedabide gehiago gaitu dezakezu nahi baduzu."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Hedabide honek paketea \"%s\" hedabidetik eguneratzea ematen du"
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Instalatutako paketeak bilatzen..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Bertsio berritzeko paketeak bilatzen..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Paketeak ezabatzen bertsioa berritu aurretik..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -184,83 +252,88 @@ msgstr ""
"\n"
"Ziur zaude pakete hauek kendu nahi dituzula?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Errorea %s fitxategia irakurtzean"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "Ondoko diskoa(k) berrizendatu egin d(ir)a:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (lehenago %s deitua)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Sarea"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "Aukeratu euskarri bat mesedez"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Fitxategia badago lehendik ere. Gainidatzi?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Baimena ukatuta"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "NFS izen okerra"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "%s okerreko euskarria"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Ezin da pantaila-argazkirik egin partizioak egin aurretik"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr ""
"%s(e)n instalazioa egindakoan pantaila-argazkiak erabilgarri egongo dira"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Instalaketa"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Konfigurazioa"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "%s ere formateatu behar duzu"
@@ -284,108 +357,148 @@ msgstr "Sarea irekitzen"
msgid "Bringing down the network"
msgstr "Sarea ixten"
-#: media.pm:703 media.pm:714
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr "Itxoin mesedez, fitxategia eskuratzen"
+
+#: media.pm:704
#, c-format
-msgid "Downloading file %s..."
-msgstr "%s fitxategiak jaisten..."
+msgid "unable to add medium"
+msgstr "euskarria ezin erantsi"
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr "Zenbait pakete diskoetan kopiatzen etorkizunean erabiltzeko"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Kopiatzen ari da"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "ezinbestekoa"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "garrantzitsua"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "oso baliagarria"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "baliagarria"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "beharbada"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "XML meta-datuetatik paketeen informazioa eskuratzen ..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Ez dago \"%s\" euskarriarentzako xml info, soilik emaitza partziala %s "
+"paketearentzako"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Azalpenik ez"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"%s-k eskatutako pakete batzuk ezin dira instalatu:\n"
+"%s"
+
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "Akats bat gertatu da:"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "Akats larria gertatu da: %s."
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr "Ez galdetu beriro"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d instaketa eragiketek huts egin dute"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Paketeen instalaketak huts egin du:"
+
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "Lanpostua"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "Bulegoko lanpostua"
-#: share/meta-task/compssUsers.pl:15
-#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
-msgstr ""
-"Bulego programak: testu-prozetzaileak (OpenOffice.org Writer, Kword), "
-"kalkulu-orriak (OpenOffice.org Calc, Kspread), PDF ikustaileak, etab"
-
-#: share/meta-task/compssUsers.pl:16
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Bulego-lanetako programak: testu-prozesadoreak (kword, abiword), kalkulu-"
-"orriak (kspread, gnumeric), pdf ikustaileak, etab."
+"Bulego programak: testu-prozetzaileak (LibreOffice Writer, Kword), kalkulu-"
+"orriak (LibreOffice Calc, Kspread), PDF ikustaileak, etab"
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Jokoak"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr ""
"Denbora-pasako programak: makina-jokoak, taula-jokoak, estrategiakoak, etab."
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Multimedia"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Soinua eta bideoa jotzeko/editatzeko programak"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Internet"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
@@ -394,193 +507,193 @@ msgstr ""
"Posta eta berri-taldeetako mezuak (mutt, tin...) irakurtzeko eta bidaltzeko "
"eta Interneten nabigatzeko tresna-multzoa"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Sare-ordenagailua (bezeroa)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Hainbat protokolotako bezeroak, ssh-renak barne"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Zure ordenagailuaren konfigurazioa errazteko tresnak"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Kontsola-tresnak"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Editoreak, shell-ak, fitxategi-tresnak, terminalak"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Garapena"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "C eta C++ garapen-liburutegiak, programak eta fitxategiak"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Dokumentazioa"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Linux eta Software libreari buruzko liburuak eta azalpenak"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Linux Standard Base. Beste batzuek egindako aplikazioen euskarria"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Web zerbitzaria"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Taldelanerako Aplikazioak"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Kolab Zerbitzaria"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Suebakia/Bideratzailea"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Interneteko atebidea"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "Posta/Berriak"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Postfix posta zerbitzaria, Inn berri zerbitzaria"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Direktorio Zerbitzara"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP Zerbitzaria"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "Domeinu Izen eta Sare Informazio Zerbitzaria"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "Fitxategi eta Inprimaketa Elkarbanatzeko Zerbitzaria"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "NFS zerbitzaria, Samba zerbitzaria"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Datu-basea"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL eta MySQL Datubase Zerbitzaria"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "PostgreSQL eta MariaDB Datubase Zerbitzaria"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Posta"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Postfix posta-zerbitzaria"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL edo MySQL datu-baseen zerbitzaria"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL edo MariaDB datu-baseen zerbitzaria"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Sare-zerbitzaria"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "NFS zerbitzaria, SMB zerbitzaria, Proxy zerbitzaria, ssh zerbitzaria"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Ingurune grafikoa"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE lanpostua"
+msgid "Plasma Workstation"
+msgstr "Plasma Lanpostua"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -588,12 +701,12 @@ msgid ""
msgstr ""
"K Desktop Environment, hainbat tresna dituen oinarrizko ingurune grafikoa"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "GNOME lanpostua"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -602,57 +715,111 @@ msgstr ""
"Aplikazio-multzo eta mahaigaineko tresna lagungarri eta atseginak dituen "
"ingurune grafikoa"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
#, c-format
-msgid "IceWm Desktop"
-msgstr "IceWm Idaztegia"
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Aplikazioen eta mahaigain-tresnen sorta erabilerrazarekiko ingurumen argitsu "
+"grafiko bat"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "MATE lanpostua"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Cinnamon Lanpostua"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "GNOMEn oinarritutako ingurune grafikoa"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "LXQt Mahaigaina"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "Mahaigaineko ingurune arinaren hurrengo belaunaldiko QT portua"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr "Ingurune grafiko arin eta azkarra bat eskainita"
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "LXDE Idaztegia"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Ingurune grafiko arin bat"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Beste mahaigain grafiko batzuk"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
+msgid "Window Maker, Fvwm, etc"
msgstr "Window Maker, Enlightenment, Fvwm, etab."
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Utilitateak"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH zerbitzaria"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Webmin Urruneko Konfigurazio Zerbitzaria"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "Sare Utilitateak/Gainbegiraketa"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "Gainbegiraketa tresnak, prozesuen kotabilitatea, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Mandriva Morroiak"
+msgid "Mageia Wizards"
+msgstr "Mageia Morroiak"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Zerbitzaria konfiguratzeko morroiak"
@@ -666,7 +833,7 @@ msgstr ""
"Errore bat gertatu da, baina ez dakit behar bezala maneiatzen.\n"
"Jarraitu zure ardurapean."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -686,202 +853,255 @@ msgstr "`%s'. urratsean sartzen\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux %s instalazioa"
+msgid "%s Installation %s"
+msgstr "%s %s instalazioa"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> elementuz aldatzeko"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Xorg zerbitzariaren hasiera motela da. Itxoin mesedez..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"Sistemak baliabide gutxi ditu. Arazoak izan ditzakezu Mandriva Linux \n"
+"Sistemak baliabide gutxi ditu. Arazoak izan ditzakezu %s \n"
"instalatzeko. Horrela bada, testu-instalazioa egiten saia zaitezke. \n"
"Horretarako, sakatu `F1' CD-ROMetik abiaraztean, eta idatzi `text'."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Euskarri hautaketa"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Instalatu %s Plasma Idaztegia"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Instalatu %s GNOME Idaztegia"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Instalaketa pertsonalizatua"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Plasma Mahaigaina"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "GNOME Idaztegia"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Idaztegia pertsonalizatua"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Hemen duzu '%s' idaztegiaren aurrebista bat."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Klikatu irudietan aurrebista haundiago ikusteko"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Pakete-taldearen hautapena"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Pakete indibidualen hautapena"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Guztizko tamaina: %d / %d MB"
+msgid "Unselect All"
+msgstr "Desautatutako guztiak"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Pakete txarra"
+msgid "Total size: %d / %d MB"
+msgstr "Guztizko tamaina: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Bertsioa: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Tamaina: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Garrantzia: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Ezin duzu pakete hau hautatu/desautatu"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "%s falta delako"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "%s bete gabe dagoelako"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "%s jaso nahian"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "%s gordetzeko"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr "Ezin duzu pakete hori hautatu: ez dago instalatzeko lekurik"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Ondorengo pakete hauek instalatuko dira"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Ondorengo pakete hauek kenduko dira"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Nahitaezko paketea da, ezin da desautatu"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Ezin duzu pakete hau desautatu. Dagoeneko instalatuta dago"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
-msgstr "Ezin duzu pakete hau desautatu. Bertsio-berritu egin behar da"
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr "Ezin duzu pakete hau desautatu. Bertsio berritu egin behar da"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Erakutsi automatikoki hautatutako paketeak"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Instalatu"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Hautapena Zamatu/Gorde"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Pakete-hautapena eguneratzen"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Gutxieneko instalazioa"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Software kudeaketa"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Aukeratu instalatu nahi dituzun paketeak"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Instalatzen"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
-msgstr "Xehetasunik ez"
+msgstr "Xehetasunik gabe"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Geratzen den denbora "
+msgid "Time remaining:"
+msgstr "Geratzen den denbora:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Kalkulatzen"
+msgid "(estimating...)"
+msgstr "(Kalkulatzen...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "pakete %d"
msgstr[1] "%d pakete"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Laburpena"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Konfiguratu"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "konfiguratu gabe"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
@@ -890,107 +1110,110 @@ msgstr ""
"Ondorengo instalazio euskarriak aurkitu dira.\n"
"Horietako batzuk erabiltzerik nahi ez baduzu, haututik kendu ditzakezu orain."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-"Instalazio aurretik CD-en edukia disko zurrunera kopiatzeko aukera daukazu.\n"
+"Instalazio aurretik CD-en edukia disko gogorrera kopiatzeko aukera daukazu.\n"
"Disko zurrunetik jarraituko du orduan eta paketeak eskuragarri egongo dira "
"sistema osorik instalatu ondoren."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "Kopiatu CD osoak"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Errore bat izan da"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Aukeratu zure teklatu-diseinua."
+msgid "Please choose your keyboard layout"
+msgstr "Aukeratu zure teklatu-diseinua"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Hona hemen teklatu erabilgarri guztien zerrenda"
+msgid "Here is the full list of available keyboards:"
+msgstr "Hemen duzu eskuragarri dauden teklatuen zerrenda osoa:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
-msgstr "Instalazioa/Bertsio-berritzea"
+msgstr "Instalaketa/Bertsio berritzea"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
-msgstr "Zer egin nahi duzu: instalazioa ala bertsio-berritzea?"
+msgstr "Instalaketa edo bertsio berritzea da hau?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
-msgstr "Instalatu"
+msgstr "Instalaketa"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
-msgstr "%s bertsio-berritu"
-
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
+msgstr "%s bertsio berritu"
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "%s(r)en enkriptatze-gakoa"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "Instalaketa galarazi, sistema berrabiatu"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "IDE konfiguratzen"
+msgid "New Installation"
+msgstr "Instalaketa berria"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
-"Ez dago lekurik 1 MBeko bootstrap-a sortzeko! Instalazioak jarraituko du, "
-"baina sistema abiarazteko, bootstrap partizioa sortu beharko duzu DiskDrake-"
-"rekin"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Aurreko instalaketa bertsio berritu (ez da gomendatzen)"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"PPC PReP abiapen bootstrap bat sortu beharko duzu! Instalaketak aurrera "
-"jarraituko du, baino zure sistema abiarazteko, bootstrap partizioa sortu "
-"beharko duzu DiskDrake erabiliz"
+"Instalatzaileak detektatu du instalatuta duzun Linux sistema ezin\n"
+"dela era seguruan %s-ren bertsiora berritu.\n"
+"\n"
+"Zure aurreko sistema ordezkatuko duen instalazio berria gomendatzen da.\n"
+"\n"
+"Erne: zure datu pertsonalen babeskopia egin behar zenuke \"Instalaketa\n"
+"Berria\" aukeratu aurretik."
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "CD/DVD Konfiguratzen"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1004,21 +1227,21 @@ msgstr ""
"'Ados'.\n"
"Ez badaukazu, sakatu 'Utzi' CD-ROM horretatik instalazioa egin ez dezan."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Pakete erabilgarriak bilatzen..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-"Zure sistemak ez dauka instalatu edo eguneratzeko behar duen lekua (%d MB > %"
-"d MB)"
+"Zure sistemak ez dauka instalatu edo bertsio berritzeko behar duen lekua (%d "
+"MB > %d MB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
@@ -1027,52 +1250,52 @@ msgstr ""
"Mesedez aukeratu pakete aukeraketa zamatu edo gorde.\n"
"Formatua instalazio automatikoarekin sortutako fitxategiaren berdina da."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Karga"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Gorde"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Okerreko fitxategia"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr ""
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Gutxieneko instalazioa"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr "Idaztegi hautaketa"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
+msgid "You can choose your workstation desktop profile."
+msgstr "Zure lanpostuaren idaztegi profila hautatu dezakezu."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Hautatutako tamaina handiagoa da leku erabilgarria baino"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Instalazio-mota"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1081,82 +1304,129 @@ msgstr ""
"Ez duzu talde edo paketerik hautatuta\n"
"Nahi duzun gutxieneko instalazioa hautatu behar duzu:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
-msgstr "Xrekin"
+msgstr "X-ekin"
+
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Gomendaturiko paketeak instalatu"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Oinarrizko dokumentazioarekin (gomendatua)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Instalazio minimo-minimoa (batez ere, urpmi gabe)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Berritzea prestatzen ..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Instalazioa prestatzen"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "%s paketea instalatzen"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Errore bat izan da paketeak ordenatzean:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Jarraitu hala ere?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "Berriro saiatu"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr "Pakete hau utzi"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr "\"%s\" euskarriko pakete guztiak utzi"
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
msgstr "Jo atzera euskarri eta pakete hautapenera"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
msgstr "Akatsa gertatu da %s paketea instalatzerakoan."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Instalazio-ondorengo konfigurazioa"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr "Mesedez egiaztatu Moduluak Eguneratzeko euskarria %s unitatean dagoela"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Eguneraketak"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Orain aukera duzu lerroko baliabideak konfiguratzeko."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Hau segurtasun eguneraketak instalatzeko ahalbidetzen du."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"Baliabideak konfiguratzeko, Interneteko konexioa izan behar izango duzu.\n"
+"\n"
+"Konfiguratu nahi dituzu eguneratze baliabideak?"
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Ondorengo pakete hauek instalatuko dira"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Berriz saiatu?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Ezin izan da euskarria gehitu"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1169,7 +1439,7 @@ msgid ""
"Do you want to install the updates?"
msgstr ""
"Pakete eguneratuak deskarga ditzakezu orain. Pakete hauek\n"
-"eguneratu egin dira banaketaren ondoren. Beharbada\n"
+"eguneratu egin dira banaketa askatu ondoren. Beharbada\n"
"segurtasun edo akatsen konponketak izango dituzte.\n"
"\n"
"Pakete hauek deskargatzeko, Interneteko konexioa izan behar\n"
@@ -1177,132 +1447,80 @@ msgstr ""
"\n"
"Eguneratzeak instalatu nahi dituzu?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Ispiluarekin kontaktatzen pakete erabilgarrien zerrenda lortzeko..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Ezin da %s ispiluarekin kontaktatu"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s - %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Hardwarea"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Soinu-txartela"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "ISA soinu-txartela duzu?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Instalazioa egindakoan, exekutatu \"alsaconf\" edo \"sndconfig\" soinu-"
-"txartela konfiguratzeko"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Ez da detektatu soinu-txartelik. Probatu \"harddrake\" instalazioa egin "
-"ondoren"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Interfaze grafikoa"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Sarea eta Internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Proxy-ak"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "konfiguratuta"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Segurtasun-maila"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Suebakia"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "aktibatuta"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "desgaituta"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "X ez duzu konfiguratu. Ziur zaude hori dela egin nahi duzuna?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "Abioko kargatzailea prestatzen..."
+msgid "Preparing initial startup program..."
+msgstr "Programaren hasierako abioa prestatzen ..."
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"OldWorld edo makina ezezagun bat daukazula dirudi, yaboot abiozamatzaileak "
-"ez du zurean lanegingo. Instalaketak aurrera jarraituko du, baino BootX edo "
-"abiatzeko beste bide bat erabili beharko duzu zure makina abiarazteko. Erro "
-"fitxategi sistemarentzako nukleo argumentua honakoa da: root=%s"
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "aboot erabili nahi duzu?"
-
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Errorea aboot instalatzean, \n"
-"instalazioa egitera behartzen saiatu lehen partizioa suntsitzen badu ere?"
+msgid "Be patient, this may take a while..."
+msgstr "Pazientzia izan, pixka baterako dauka..."
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
@@ -1311,17 +1529,17 @@ msgstr ""
"Segurtasun-maila honetan, administratzaileak soilik du Windows partizioko "
"fitxategiak atzitzeko eskubidea."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Sartu diskete huts bat %s unitatean"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Auto-instalazioko disketea sortzen..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1332,51 +1550,16 @@ msgstr ""
"\n"
"Ziur zaude orain irten nahi duzula?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Zorionak"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Berrabiarazi"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Sortu auto-instalazioko disketea"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Auto-instalazioa erabat automatiza daiteke nahi izanez gero,\n"
-"kasu horretan, disko zurrun osoa hartuko du!!\n"
-"(beste makina batean instalatzeko pentsatua da aukera hau).\n"
-"\n"
-"Beharbada nahiago izango duzu instalazioa errepikatzea.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Errepikatu"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automatizatua"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Gorde pakete-hautapena"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1388,7 +1571,7 @@ msgstr "Hizkuntza"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "Kokapena"
#: steps_list.pm:17
#, c-format
@@ -1409,7 +1592,7 @@ msgstr "Sagua"
msgid ""
"_: Keep these entry short\n"
"Hard drive detection"
-msgstr "Disko zurrunen detekzioa"
+msgstr "Disko gogorren detekzioa"
#: steps_list.pm:21 steps_list.pm:22
#, c-format
@@ -1467,13 +1650,6 @@ msgid ""
"Users"
msgstr "Erabiltzaileak"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Saregintza"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1516,16 +1692,25 @@ msgid ""
"Exit"
msgstr "Irten"
-#~ msgid "All"
-#~ msgstr "Denak"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "Ispiluaren URL?"
+
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "URL-ak ftp:// edo http:// aurretik izan behar du"
-#~ msgid "TV card"
-#~ msgstr "Telebista-txartela"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr ""
+#~ "%s web gunearekin konektatzen, ispilu erabilgarrien zerrenda lortzeko..."
-#~ msgid "Boot"
-#~ msgstr "Abioa"
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
+#~ msgstr ""
+#~ "%s web gunearekin eskuragarri dauden ispiluen zerrenda lortzeko "
+#~ "harremanak huts egin du"
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Egiaztatzea"
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Aukeratu ispilu bat paketeak bertatik hartzeko"
diff --git a/perl-install/install/share/po/fa.po b/perl-install/install/share/po/fa.po
index bdc3c4b8e..95a458a7d 100644
--- a/perl-install/install/share/po/fa.po
+++ b/perl-install/install/share/po/fa.po
@@ -1,171 +1,230 @@
-# translation of DrakX-fa.po to Persian
-# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
-# Abbas Izad <abbasizad@hotmail.com>, 2003, 2004, 2005.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Abbas Izad <abbasizad@hotmail.com>, 2003-2005
msgid ""
msgstr ""
-"Project-Id-Version: DrakX-fa\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2005-02-26 06:31+0100\n"
-"Last-Translator: Abbas Izad <abbasizad@hotmail.com>\n"
-"Language-Team: Persian\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Persian (http://www.transifex.com/MageiaLinux/mageia/language/"
+"fa/)\n"
+"Language: fa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3.1\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
#, c-format
-msgid "Do you have further supplementary media?"
-msgstr "آیا رسانه مکمل دیگری دارید؟"
+msgid "Join Us!"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: ../../advertising/02_IM_mageia.pl:1
#, c-format
-msgid ""
-"The following media have been found and will be used during install: %s.\n"
-"\n"
-"\n"
-"Do you have a supplementary installation medium to configure?"
+msgid "Make it yours!"
msgstr ""
-#: any.pm:166
+#: ../../advertising/03_IM_mageia.pl:1
#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
+msgid "Your choice!"
+msgstr ""
-#: any.pm:167
+#: ../../advertising/04_IM_mageia.pl:1
#, c-format
-msgid "Network (HTTP)"
-msgstr "شبکه (HTTP)"
+msgid "Office tools"
+msgstr ""
-#: any.pm:168
+#: ../../advertising/05_IM_mageia.pl:1
#, c-format
-msgid "Network (FTP)"
-msgstr "شبکه (FTP)"
+msgid "Home entertainment"
+msgstr ""
-#: any.pm:169
+#: ../../advertising/06_IM_mageia.pl:1
#, c-format
-msgid "Network (NFS)"
+msgid "For kids"
msgstr ""
-#: any.pm:211
+#: ../../advertising/07_IM_mageia.pl:1
#, c-format
-msgid "URL of the mirror?"
-msgstr "نشانی اینترنتی آینه؟"
+msgid "For family!"
+msgstr ""
-#: any.pm:217
+#: ../../advertising/08_IM_mageia.pl:1
#, c-format
-msgid "URL must start with ftp:// or http://"
+msgid "For developers!"
msgstr ""
-#: any.pm:228
+#: ../../advertising/09_IM_mageia.pl:1
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
+msgid "Thank you!"
msgstr ""
-"در حال تماس گرفتن با وب‌گاه لینوکس ماندریبا برای دریافت لیست پایگاه‌های "
-"آینه‌های موجود..."
-#: any.pm:233
-#, fuzzy, c-format
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr "آیا رسانه مکمل دیگری دارید؟"
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
+#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
msgstr ""
-"در حال تماس گرفتن با وب‌گاه لینوکس ماندریبا برای دریافت لیست پایگاه‌های "
-"آینه‌های موجود..."
-#: any.pm:243
+#: any.pm:162
+#, c-format
+msgid "Network (HTTP)"
+msgstr "شبکه (HTTP)"
+
+#: any.pm:163
#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "انتخاب آینه‌ای برای گرفتن بسته‌ها"
+msgid "Network (FTP)"
+msgstr "شبکه (FTP)"
-#: any.pm:273
+#: any.pm:164
+#, c-format
+msgid "Network (NFS)"
+msgstr ""
+
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr ""
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr ""
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr ""
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr ""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr ""
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "شاخه"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr ""
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
msgstr "نمیتوان پرونده hdlist را بر این آینه پیدا کرد"
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "بررسی بسته‌های از قبل نصب شده..."
+msgid "Core Release"
+msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
+msgid "Tainted Release"
+msgstr ""
+
+#: any.pm:329
+#, c-format
+msgid "Nonfree Release"
+msgstr ""
+
+#: any.pm:367
+#, c-format
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
msgstr ""
-#: any.pm:424
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "بررسی بسته‌های از قبل نصب شده..."
+
+#: any.pm:593
#, c-format
msgid "Finding packages to upgrade..."
msgstr "یافتن بسته‌های برای ارتقاء..."
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:612
#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+msgid "Removing packages prior to upgrade..."
msgstr ""
-"شما کارگزار(های) بدنبال آمده را انتخاب کرده‌اید: %s\n"
-"\n"
-"\n"
-"این کارگزارها در پیش‌فرض فعال شده‌اند. آنها هیچ اشکال امنیتی شناخته شده‌ای\n"
-"ندارند، ولی اشکالات جدید می‌توانند پیدا شوند. در آن صورت شما باید هر چه\n"
-"زودتر آنها را ارتقاء دهید.\n"
-"\n"
-"\n"
-"آیا واقعا می‌خواهید این کارگزارها را نصب کنید؟\n"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -178,82 +237,87 @@ msgstr ""
"\n"
"آیا واقعاً می‌خواهید این بسته‌ها را بردارید؟\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "خطا در خواندن پرونده‌ی %s"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "دیسک(های) بدنبال تغییر نام داده شده‌اند:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (قبلا نامش %s بود("
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "شبکه"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "لطفاً رسانه‌ای را انتخاب کنید"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "پرونده از قبل وجود دارد. بازنویسی شود؟"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "اجازه داده نشد"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr ""
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "رسانه بد %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "نمی‌توان قبل از قسمت‌بندی عکس‌صفحه گرفت"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "عکس‌صفحه‌ها بعد از نصب در %s در دسترس خواهند بود"
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
-msgstr "نصب کردن"
+msgstr ""
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "پیکربندی"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "باید %s را قالب‌بندی کنید"
@@ -277,369 +341,457 @@ msgstr "بالا آوردن شبکه"
msgid "Bringing down the network"
msgstr "پایین آوردن شبکه"
-#: media.pm:703 media.pm:714
-#, fuzzy, c-format
-msgid "Downloading file %s..."
-msgstr "فرستادن پرونده‌ها..."
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr ""
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "کپی کردن در حال انجام است"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "باید داشت"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "مهم"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "خیلی خوب"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "خوب"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "شاید"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr ""
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "ایستگاه‌کار"
+msgid "An error occurred:"
+msgstr ""
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "ایستگاه‌کار دفتری"
+msgid "A fatal error occurred: %s."
+msgstr "یک خطای مهلک رخ داد: %s."
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr ""
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
msgstr ""
-"برنامه های دفتری: واژه پردازان (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "ایستگاه‌کار"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "ایستگاه‌کار دفتری"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"برنامه‌های دفتری: واژه پردازها ((kword, abiword), برگ‌های حساب (kspread, "
-"gnumeric), نماگرهای pdf و غیره"
+"برنامه های دفتری: واژه پردازان (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "ایستگاه بازی"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "برنامه‌های سرگرمی: آرکید، تخته‌ها، تاکتیکی، غیره"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "ایستگاه چندرسانه‌ای"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "برنامه‌های ویرایش/پخش ویدیو و صوت"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "ایستگاه اینترنت"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr "مجموعه ابزار خواندن و ارسال پست و اخبار (mutt, tin..) و برای مرور وب"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "رایانه‌ی شبکه (کارگیر)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "کارگیرها برای پایان‌نامه‌های گوناگون از جمله ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "ابزارهای برای آسان‌ کردن پیکربندی رایانه‌اتان"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "ابزارهای کنسول"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "ویرایش‌گرها، پوسته‌ها، ابزار پرونده، پایانه‌ها"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "برنامه‌سازی"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "کتابخانه‌های برنامه‌سازی C و C++، برنامه‌ها و پرونده‌های شامل"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "نوشتار"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "کتاب‌ها و چگونگی‌ها در لینوکس و نرم‌افزار آزاد"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "پایه‌ی استاندارد لینوکس. حمایت برنامه‌های شخص سوم"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "کارگزار‌ وب"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "آپاچ"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "گروه افزار"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "کارگزار Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "دیوار‌آتش/مسیریاب"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "دروازه‌ی اینترنت"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "پست/اخبار"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "کارگزار پست Postfix، کارگزار اخبار Inn "
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "کارگزار شاخه"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "کارگزار FTP"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "نام دامنه و کارگزار اطلاعات شبکه"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "کارگزاراشتراک چاپگر و پرونده"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "کارگزار NFS، کارگزار Samba"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "بانک ‌اطلاعات"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "کارگزار پایگاه داده‌ی PostgreSQL و MySQL "
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "کارگزار پایگاه داده‌ی PostgreSQL و MariaDB "
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "پست"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "کارگزار پست Postfix "
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "کارگزار بانک اطلاعاتی PostgreSQL یا MySQL "
+msgid "PostgreSQL or MariaDB database server"
+msgstr "کارگزار بانک اطلاعاتی PostgreSQL یا MariaDB "
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "کارگزار شبکه‌ی رایانه"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "کارگزار NFS , کارگزار SMB , کارگزار Proxy , کارگزار ssh "
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "محیط گرافیکی"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "ایستگاه‌کار KDE "
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr "محیط رومیزی K، محیط گرافیکی پایه با مجموعه‌ای از ابزارهای ضمیمه"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "ایستگاه‌کار گنوم"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr "محیط گرافیکی کاربر-دوستانه با مجموعه‌ای از برنامه‌ها و ابزارهای رومیزی"
-#: share/meta-task/compssUsers.pl:142
-#, fuzzy, c-format
-msgid "IceWm Desktop"
-msgstr "رومیزی Plucker"
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "دیگر رومیزی‌های گرافیکی"
-#: share/meta-task/compssUsers.pl:147
-#, fuzzy, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm, etc"
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "وسایل"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "کارگزار‌ SSH"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "کارگزار پیکربندی از راه دور Webmin "
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "پایشگری/وسایل شبکه"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "ابزار پایشگری، پروسه های حسابداری، tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
+msgid "Mageia Wizards"
msgstr "جادوگران نرم افزار ماندریبا"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "جادوگران برای پیکربندی کارگزار"
@@ -653,7 +805,7 @@ msgstr ""
"خطائی رخ داد، اما نمی‌دانم چگونه آن را بخوبی اداره کنم.\n"
"با مسئولیت خودتان ادامه دهید."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -673,205 +825,254 @@ msgstr "ورود به مرحله‌ی `%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "نصب لینوکس ماندریبا %s"
+msgid "%s Installation %s"
+msgstr ""
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> بین عناصر"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"سیستم شما منابع کمی دارد. ممکن است در نصب لینوکس ماندریبا با اشکال برخورد "
-"کنید. \n"
-"اگر این اتفاق رخ داد، می‌توانید نصب متنی را بجایش امتحان کنید. برای این کار، "
-"`F1' را \n"
-"هنگام آغازگری با سی‌دی فشار داده، سپس `text' وارد کنید."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "گزینش گروه بسته"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "انتخاب بسته‌ی تکی"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "اندازه‌ی کل: %d / %d مگابایت"
+msgid "Unselect All"
+msgstr "همه انتخاب نشده‌اند"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "بسته‌ی خراب"
+msgid "Total size: %d / %d MB"
+msgstr "اندازه‌ی کل: %d / %d مگابایت"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "نسخه: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "اندازه: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d کیلوبایت\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "اهمیت: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "نمی‌توانید این بسته را انتخاب/غیر انتخاب کنید"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "بدلیل فقدان %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "بدلیل عدم ارضای %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "تلاش برای تبلیغ %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "بمنظور نگهداشتن %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"نمی‌توانید این بسته را انتخاب کنید چرا که فضای کافی برای نصب آن باقی نمانده "
"است"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "بسته‌های بدنبال آمده نصب خواهند شد"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "بسته‌های بدنبال آمده برداشته خواهند شد"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "این بسته‌ای ضروری است، نمی‌تواند که گزیده نشود."
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "نمی‌توانید این بسته را انتخاب نکنید. آن از قبل نصب شده است "
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "نمی‌توانید این بسته را انتخاب نکنید. این باید ارتقاء داده شود"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "نشان دادن خودکار بسته‌های انتخاب شده"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "نصب"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "بارگذاری/ذخیره انتخاب"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "بروزسازی مجموعه بسته"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "نصب حداقل"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "مدیریت نرم‌افزار"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "بسته‌هایی را که می‌خواهید نصب کنید انتخاب کنید"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "نصب کردن"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "بدون جزئیات"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "زمان باقیمانده "
+msgid "Time remaining:"
+msgstr ""
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "تخمین زدن"
+msgid "(estimating...)"
+msgstr ""
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "بسته‌های %d"
+msgstr[1] "بسته‌های %d"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "خلاصه"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "پیکربندی"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "پیکربندی نشده است"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
@@ -880,105 +1081,103 @@ msgstr ""
"رسانه نصب بدنبال آمده یافت شد.\n"
"اگر میخواهید بعضی از آنها را نادیده بگیرید میتوانید آنها را اکنون نگزینید."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
"شما میتوانید محتویات سی‌دی‌ها را قبل از نصب بر روی دیسک سخت کپی کنید.\n"
"سپس آن از دیسک سخت ادامه یافته و بسته‌ها وقتی که سیستم کاملا نصب گردید در "
"دسترس خواهند بود."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "کپی کردن تمام سی‌دی‌ها"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "خطائی رخ داد"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "لطفاً طرح صفحه‌کلید خود را انتخاب کنید."
+msgid "Please choose your keyboard layout"
+msgstr "لطفاً طرح صفحه‌کلید خود را انتخاب کنید"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "این لیست کامل صفحه‌کلیدهای در دسترس می‌باشد"
+msgid "Here is the full list of available keyboards:"
+msgstr ""
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "نصب/ارتقاء"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "آیا این یک نصب است یا یک ارتقاء؟"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "نصب"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "ارتقاء دادن %s"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
+msgid "Encryption key for %s"
+msgstr "کلید رمزی برای %s"
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
+msgid "Cancel installation, reboot system"
msgstr ""
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
-msgstr "کلید رمزی برای %s"
+msgid "New Installation"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
-msgstr "پیکربندی IDE"
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+msgid "CD/DVD"
msgstr ""
-"هیچ فضای آزادی برای ۱ مگابایت تسمه‌ی آغازگری ! نصب ادامه پیدا خواهد کرد، ولی "
-"باید قسمت‌بندی تسمه آغازگری را در DiskDrake ایجاد کنید"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+msgid "Configuring CD/DVD"
msgstr ""
-"شما نیاز به ایجاد یک تسمه‌ی آغازگری PPC PReP دارید! نصب ادامه پیدا خواهد کرد، "
-"ولی باید قسمت‌بندی تسمه آغازگری را در DiskDrake ایجاد کنید"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -991,19 +1190,19 @@ msgstr ""
"فشار دهید. \n"
"اگر آن را ندارید، لغو را برای جلوگیری از نصب این سی‌دی-رم فشار دهید."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "جستجو برای بسته‌های موجود..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
@@ -1012,52 +1211,52 @@ msgstr ""
"لطفاً بارگذاری یا ذخیره‌ی مجموعه بسته را انتخاب کنید.\n"
"قالب همانند پرونده‌های تولید شده‌ی نصب-خودکار است."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "بارگذاری"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "ذخیره"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "پرونده بد"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "گنوم"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "نصب حداقل"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "اندازه‌های انتخاب شده بزرگ‌تر از فضای موجود است"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "نوع نصب"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1066,82 +1265,126 @@ msgstr ""
"هیچ گروه از بسته‌ها را انتخاب نکرده‌اید.\n"
"لطفاً حداقل نصبی را که می‌خواهید انتخاب کنید:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "با X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "با نوشتارهای پایه (سفارش می‌شود!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "حقیقتاً حداقل نصب (مخصوصاً بدون urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "آماده کردن نصب"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "نصب کردن بسته‌ی %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "خطائی در مرتب کردن بسته‌ها رخ داد:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "ادامه به هر حال؟"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr ""
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr ""
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr ""
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "ذخیره‌ی مجموعه بسته‌ها"
+msgstr ""
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "خطائی هنگام نصب بسته‌ها وجود داشت:"
+msgstr ""
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "پیکربندی بعد از نصب"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "بروزسازی‌ها"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "بسته‌های بدنبال آمده نصب خواهند شد"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "ناموفق بودن هنگام اضافه کردن رسانه"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1161,131 +1404,80 @@ msgstr ""
"\n"
"آیا می‌خواهید بروزسازی‌ها را نصب کنید؟"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "تماس گرفتن با آینه برای گرفتن لیست بسته‌های موجود..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "نمی‌توان با آینه %s تماس برقرار کرد"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s بر %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "سخت‌افزار"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "کارت صوتی"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "آیا کارت صوتی ISA دارید؟"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"برای پیکربندی کارت صوتی خود بعد از نصب برنامه‌ی \"sndconfig\" یا \"alsaconf"
-"\" را اجرا کنید"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "هیچ کارت صوتی شناسایی نشد. \"harddrake\" را بعد از نصب امتحان کنید"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "واسط گرافیکی"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "شبکه و اینترنت"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "پراکسی‌ها"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "پیکربندی شده"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "سطح امنیتی"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "دیوارآتش"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "فعال شده"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "از کار افتاده"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "شما ایکس را پیکربندی نکرده‌اید. آیا واقعاً مطمئنید که این را می‌خواهید؟"
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "آماده کردن بارگذار آغازگر..."
-
-#: steps_interactive.pm:1018
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Preparing initial startup program..."
msgstr ""
-"بنظر میرسد که شما یک رایانه‌ی عهد عتیق یا ناشناس دارید، \n"
-"بارگزار آغازگر یابوت برای شما کار نخواهد کرد. \n"
-"این نصب ادامه پیدا خواهد کرد، ولی شما باید \n"
-"از BootX یا طریق دیگری برای آغازگری استفاده کنید. آرگومان هسته برای سیستم "
-"پرونده ریشه: root=%s"
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "آیا می‌خواهید از aboot استفاده کنید؟"
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
+msgid "Be patient, this may take a while..."
msgstr ""
-"خطا در نصب aboot, \n"
-"تلاش به اجبار نصب می‌کنید حتی اگر آن اولین قسمت‌بندی را خراب کند؟"
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
@@ -1293,17 +1485,17 @@ msgid ""
msgstr ""
"در این سطح امنیتی، دستیابی به پرونده‌های قسمت‌بندی ویندوز محدود به مدیر است."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "یک دیسکچه‌ی خالی را در گرداننده‌ی %s داخل کنید"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "ایجاد کردن دیسکچه‌ی نصب خودکار..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1314,51 +1506,16 @@ msgstr ""
"\n"
"واقعاً می‌خواهید اکنون ترک کنید؟"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "تبریک می‌گوئیم!"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "آغازگری مجدد"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "تولید دیسکچه‌ی نصب خودکار"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"اگر بخواهید نصب خودکار می‌تواند کاملا خودکار عمل کند، \n"
-"که در آن صورت گرداننده‌ی دیسک را در اختیار می‌گیرد!! \n"
-"(این برای نصب بر رایانه دیگری منظور شده است) \n"
-"\n"
-"ممکن است ترجیح دهید نصب را اجرای مجدد کنید.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "بازپخش"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "خودکار"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "ذخیره‌ی مجموعه بسته‌ها"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1449,13 +1606,6 @@ msgid ""
"Users"
msgstr "کاربران"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "شبکه‌کاری"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1498,65 +1648,10 @@ msgid ""
"Exit"
msgstr "خروج"
-#~ msgid "All"
-#~ msgstr "همه"
-
-#~ msgid "TV card"
-#~ msgstr "کارت تلویزیون"
-
-#~ msgid "Boot"
-#~ msgstr "آغازگری"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "تأیید هویت"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "(بسته‌های %d، %d مگابایت)"
-
-#~ msgid "%d packages"
-#~ msgstr "بسته‌های %d"
-
-#~ msgid "Language"
-#~ msgstr "زبان"
-
-#~ msgid "License"
-#~ msgstr "مجوز"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "انتخاب رده‌ی نصب"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "تخمین زدن"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "انتخاب بسته‌ها برای نصب کردن"
-
-#~ msgid "Users"
-#~ msgstr "کاربران"
-
-#~ msgid "Networking"
-#~ msgstr "شبکه‌کاری"
-
-#~ msgid "Configure X"
-#~ msgstr "پیکربندی ایکس"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "نشانی اینترنتی آینه؟"
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
-#~ msgstr ""
-#~ "نمی‌توان به ماژول‌های هسته مربوط به هسته‌ی شما (پرونده %s وجود ندارد) "
-#~ "دستیابی یافت، این معمولاً بدین معنی است که دیسکچه‌ی آغازگرتان با رسانه‌ی نصب "
-#~ "هم‌گاهی ندارد (لطفاً دیسکچه‌ی آغازگری جدیدی ایجاد کنید)"
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "انتخاب آینه‌ای برای گرفتن بسته‌ها"
diff --git a/perl-install/install/share/po/fi.po b/perl-install/install/share/po/fi.po
index 386afbf79..329ee65df 100644
--- a/perl-install/install/share/po/fi.po
+++ b/perl-install/install/share/po/fi.po
@@ -1,36 +1,90 @@
-# DrakX-fi - Finnish Translation
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
-# Copyright (C) 2002,2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# Copyright (C) 2002 Mandriva
-#
-#
-# Matias Griese <mahagr@utu.fi>, 2001.
-# Taisto Kuikka <69319@batman.jypoly.fi>, 2003,2004.
-# Esa Linna <denzo@mbnet.fi>, 2004.
-# Thomas Backlund <tmb@mandrake.org>, 2002, 2003, 2004, 2005.
-# Thomas Backlund <tmb@mandriva.org>, 2006.
-# Anssi Hannula <anssi@mandriva.org>, 2007.
+# Translators:
+# Anssi Hannula <anssi@mandriva.org>, 2007-2008
+# Esa Linna <denzo@mbnet.fi>, 2004
+# Jani Välimaa <wally@mageia.org>, 2011
+# wally <wally@mandriva.org>, 2009
+# Kimmo Kujansuu <mrkujansuu@gmail.com>, 2023
+# Matias Griese <mahagr@utu.fi>, 2001
+# Taisto Kuikka <69319@batman.jypoly.fi>, 2003-2004
+# Thomas Backlund <tmb@mandrake.org>, 2002-2005
+# Thomas Backlund <tmb@mandriva.org>, 2006,2008
+# wally <wally@mandriva.org>, 2009
msgid ""
msgstr ""
-"Project-Id-Version: DrakX\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-09-29 20:32+0300\n"
-"Last-Translator: Anssi Hannula <anssi@mandriva.org>\n"
-"Language-Team: Finnish <fi@li.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2013-04-04 13:31+0000\n"
+"Last-Translator: Kimmo Kujansuu <mrkujansuu@gmail.com>, 2023\n"
+"Language-Team: Finnish (http://app.transifex.com/MageiaLinux/mageia/language/"
+"fi/)\n"
+"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Liity meihin!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Tee siitä omasi!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "Sinun valintasi!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Tiedostotyökalut"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Kodin viihde"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "Lapsille"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "Perheelle!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "Kehittäjäille!"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Kiitos sinulle!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Ole vapaa!"
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
-msgstr "Onko sinulla muita asennuksen lisälevyä?"
+msgstr "Onko käytettävissä muita asennuksen lisälevyjä?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -38,146 +92,160 @@ msgid ""
"\n"
"Do you have a supplementary installation medium to configure?"
msgstr ""
-"Seuraavat lähteet on löydetty ja niitä käytetään asennuksen aikana: %s.\n"
+"Löydettiin seuraavat asennuksen aikana käytettävät mediat: %s.\n"
"\n"
"\n"
-"Onko sinulla lisää lähteitä jotka haluat määrittää?"
+"Onko käytettävissä muita asennusmedioita?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Verkko (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Verkko (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Verkko (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "Peilipalvelimen URL?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "URL pitää alkaa ftp:// tai http://"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Otetaan yhteys Mandriva Linuxin sivustolle peilipalvelinlistan saamiseksi..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Yhteydenotto Mandriva Linuxin sivustolle peilipalvelinlistan saamiseksi "
-"epäonnistui"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Valitse peilipalvelin josta paketit haetaan"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
-msgstr "NFS Asetus"
+msgstr "NFS-asetukset"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
-msgstr "Syötä NFS-palvelimesi nimi ja hakemistopolku"
+msgstr "Syötä NFS-palvelimen nimi ja hakemistopolku"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr "Palvelimen osoite puuttuu"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "Hakemistopolun täytyy alkaa \"/\"-merkillä"
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
-msgstr "NFS-liitoksen palvelimen nimi?"
+msgstr "NFS-palvelimen nimi?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
-msgstr "Kansio"
+msgstr "Hakemisto"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "Lisämedia"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
-msgstr "En löydä hdlist tiedostoa tässä peilipalvelimessa."
+msgstr ""
+"Peilipalvelimelta ei löydy tiedostolistausta. Varmista tiedostopolun "
+"oikeellisuus."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Etsitään jo asennettuja paketteja..."
+msgid "Core Release"
+msgstr "Core"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Poistetaan paketteja ennen päivitystä..."
+msgid "Tainted Release"
+msgstr "Tainted"
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Etsitään päivitettäviä paketteja..."
+msgid "Nonfree Release"
+msgstr "Nonfree"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"Olet valinnut seuraavat palvelimet: %s\n"
-"\n"
-"\n"
-"Nämä palvelimet otetaan oletuksena käyttöön. Niissä ei ole tunnettuja \n"
-"turvallisuusaukkoja, mutta sellaisia voi löytyä ajan mittaan. Mikäli niin \n"
-"tapahtuu, sinun pitäisi päivittää kyseiset palvelimet niin nopeasti kuin \n"
-"suinkin mahdollista.\n"
-"\n"
-"\n"
-"Haluatko todella asentaa nämä palvelimet?\n"
+"Jotkin tietokoneen laitteet tarvitsevat joitain nonfree laiteohjaimia, jotta "
+"vapaan ohjelmiston ajurit toimisivat."
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "Sinun pitäisi lisätä \"%s\""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "\"%s\" sisältää järjestelmien eri osat ja sen sovellukset"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "\"%s\" sisältää nonfree ohjelmistoa.\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"Sisältää myös tiettyjen laitteiden toimintaan tarvittavat ajurit (esim.: ATI/"
+"AMD-näytönohjaimet, jotkin verkkokortit, jotkin RAID-kortit, ...)"
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"\"%s\" sisältää ohjelmistoa, joita ei voida levittää kaikissa maissa "
+"patenttien vuoksi."
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr "Sisältää myös ohjelmiston \"%s\" rakentamiseksi lisäominaisuuksilla."
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "Täällä voit ottaa käyttöön lisää medioita, jos haluat."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Tämä media tarjoaa pakettien päivityksiä medialle \"%s\""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Etsitään asennettuja paketteja..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Etsitään paketteja päivitettäväksi..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Poistetaan paketteja ennen päivitystä..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -185,90 +253,95 @@ msgid ""
"\n"
"Do you really want to remove these packages?\n"
msgstr ""
-"Seuraavat paketit poistetaan jotta järjestelmäsi voidaan päivittää:\n"
+"Seuraavat paketit on poistettava, jotta järjestelmä voidaan päivittää:\n"
"%s\n"
"\n"
-"Haluatko varmasti poistaa nämä paketit?\n"
+"Poistetaanko paketit?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Virhe luettaessa tiedostoa %s"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "Seuraava(t) levy(t) uudelleennimettiin:"
+msgstr "Seuraavat levyt nimettiin uudelleen:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
-msgstr "%s (oli ennen nimetty %s)"
+msgstr "%s (ennen: %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Verkko"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
-msgstr "Ole hyvä ja valitse media"
+msgstr "Valitse media"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Tiedosto jo olemassa. Korvaa?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Ei oikeuksia"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "Virheellinen NFS-nimi"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
-msgstr "Huono media %s"
+msgstr "Virheellinen media %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
-msgstr "Kuvakaappauksia ei voida tehdä ennen osiointia"
+msgid "Cannot make screenshots before partitioning"
+msgstr "Kuvakaappauksia ei voida ottaa ennen osiointia"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Kuvakaappaukset löytyvät asennuksen jälkeen hakemistosta %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Asennus"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
-msgstr "Asetustyökalut"
+msgstr "Asetukset"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
-msgstr "Sinun täytyy myös alustaa %s"
+msgstr "Myös %s tulee alustaa"
#: interactive.pm:16
#, c-format
@@ -276,8 +349,8 @@ msgid ""
"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
"You can find some information about them at: %s"
msgstr ""
-"Jokin osa laitteistoasi tarvitsee laitteistovalmistajan ajurit toimiakseen\n"
-"kunnolla. Löydät lisätietoja edellä mainituista täältä: %s"
+"Jokin osa laitteistosta tarvitsee laitteistovalmistajan ajurit toimiakseen.\n"
+"Lisätietoa edellä mainituista: %s"
#: interactive.pm:22
#, c-format
@@ -287,306 +360,346 @@ msgstr "Käynnistetään verkkoa"
#: interactive.pm:27
#, c-format
msgid "Bringing down the network"
-msgstr "Ajetaan alas verkkoa"
+msgstr "Ajetaan verkkoa alas"
+
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr "Odota hetki, haetaan tiedostoa"
-#: media.pm:703 media.pm:714
+#: media.pm:704
#, c-format
-msgid "Downloading file %s..."
-msgstr "Haetaan tiedosto %s ..."
+msgid "unable to add medium"
+msgstr "median lisääminen epäonnistui"
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
-msgstr "Kopioin paketteja kovalevylle myöhempään käyttöön"
+msgstr "Kopioidaan paketteja kovalevylle myöhempään käyttöä varten"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
-msgstr "Kopiointi käynnissä"
+msgstr "Kopioidaan"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "pakollinen"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "tärkeä"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "erittäin hyvä"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "hyvä"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "ehkä"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "Haetaan pakettien tietoja XML-metatiedoista..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Medialla \"%s\" ei ole XML-tietoja, vain osittainen hakutulos paketille %s"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Ei kuvausta"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"Joitakin paketin %s vaatimia paketteja ei voida asentaa:\n"
+"%s"
+
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "Virhe:"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "Tapahtui ohittamaton virhe: %s."
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr "Älä kysy uudelleen"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d asennustapahtumaa epäonnistui"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Pakettien asennus epäonnistui:"
+
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "Työasema"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "Toimistotyöasema"
-#: share/meta-task/compssUsers.pl:15
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Toimisto-ohjelmistot: tekstinkäsittely (OpenOffice.org Writer, Kword), "
-"taulukkolaskenta (OpenOffice.org calc, Kspread), PDF-lukijat jne"
+"Toimisto-ohjelmistot: tekstinkäsittely (LibreOffice Writer, Kword), "
+"taulukkolaskenta (LibreOffice calc, Kspread), PDF-lukijat jne"
-#: share/meta-task/compssUsers.pl:16
-#, c-format
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"Toimisto-ohjelmistot: tekstinkäsittely (kword, abiword), taulukkolaskenta "
-"(kspread, gnumeric), pdf-lukijat jne"
-
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Peliasema"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Viihdeohjelmat: tasohyppely, korttipelit, strategia jne"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Multimediatyöasema"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
-msgstr "Äänen sekä videon toisto- ja editointiohjelmat"
+msgstr "Äänen ja videon toisto- ja editointiohjelmat"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
-msgstr "Internettyöasema"
+msgstr "Internet-työasema"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-"Valikoima työkaluja sähköpostin ja uutisryhmien lukemiseen (mutt, tin...) "
+"Valikoima työkaluja sähköpostin ja uutisryhmien lukemiseen (mutt, tin...), "
"sekä Internetin selailuun"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Verkkopääte (asiakas)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
-msgstr "Asiakasohjelmat eri protokollille (SSH jne)"
+msgstr "Asiakasohjelmat eri protokollille (SSH jne.)"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
-msgstr "Työkalut, jotka helpottavat tietokoneesi asetusten muokkaamista"
+msgstr "Työkalut, jotka helpottavat tietokoneen asetusten muokkaamista"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Komentorivityökalut"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Editorit, komentotulkit, tiedostotyökalut, päätteet"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Kehitysympäristö"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
-msgstr "C ja C++ kehityskirjastot, ohjelmat ja include-tiedostot"
+msgstr ""
+"Ohjelmat, include-tiedostot ja kehityskirjastot ohjelmointikielille C ja C++"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Dokumentaatio"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
-msgstr "Kirjoja ja ohjeita Linuxista sekä vapaan lähdekoodin ohjelmista"
+msgstr "Kirjoja ja ohjeita Linuxista ja vapaan lähdekoodin ohjelmista"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr ""
-"Linux Standard Base (Linux Standardi Perusta)\n"
-" - Kolmannen osapuolen ohjelmistojen tuki"
+"Linux Standard Base (LSB)\n"
+" - Tuki kolmannen osapuolen ohjelmistoille"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "WWW-palvelin"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Groupware"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
-msgstr "Kolab palvelin"
+msgstr "Kolab-palvelin"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Palomuuri / Reititin"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Internetin yhdyskäytävä"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
-msgstr "Posti/Uutiset"
+msgstr "Sähköposti / Uutiset"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Postfix sähköpostipalvelin, Inn uutispalvelin"
+msgstr "Postfix-sähköpostipalvelin, Inn-uutispalvelin"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Hakemisto-palvelin"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP-palvelin"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
-msgstr "DNS/NIS"
+msgstr "DNS / NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "Verkkoalueen nimipalvelin (DNS) ja verkon informaatio-palvelin"
+msgstr "DNS- ja NIS-palvelin"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
-msgstr "Tiedosto- ja Tulostuspalvelin"
+msgstr "Tiedosto- ja tulostuspalvelin"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "NFS-palvelin, Samba-palvelin"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Tietokanta"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL ja MySQL tietokantapalvelin"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "PostgreSQL- ja MariaDB-tietokantapalvelin"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
-msgstr "Web/FTP"
+msgstr "WWW / FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache WWW-palvelin ja Pro-ftpd FTP-palvelin"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Sähköposti"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
-msgstr "Postfix sähköpostipalvelin"
+msgstr "Postfix-sähköpostipalvelin"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL tai MySQL tietokantapalvelin"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL- tai MariaDB-tietokantapalvelin"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Verkkotietokone (palvelin)"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "NFS-, SMB-, välitys- ja SSH-palvelin"
+msgstr "NFS-, SMB-, SSH- ja välityspalvelin"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Graafinen ympäristö"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE-työasema"
+msgid "Plasma Workstation"
+msgstr "Plasma-työasema"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -594,73 +707,127 @@ msgid ""
msgstr ""
"K-työpöytäympäristö. Graafinen perusympäristö ja sen mukana tulevat työkalut"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "GNOME-työasema"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr ""
-"Graafinen ympäristö käyttäjäystävällisellä sovelluksilla ja työkaluilla."
+"Graafinen ympäristö käyttäjäystävällisillä sovelluksilla ja työkaluilla."
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
#, c-format
-msgid "IceWm Desktop"
-msgstr "IceWm Työpöytä"
+msgid "Xfce Workstation"
+msgstr "Xfce-työasema"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Kevyempi graafinen ympäristö käyttäjäystävällisillä sovelluksilla ja "
+"työkaluilla"
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "MATE-työasema"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Cinnamon-työasema"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "GNOME-pohjainen graafinen ympäristö"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "LXQt-työpöytä"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "Seuraavan sukupolven QT-portti kevyenä työpöytäympäristönä"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr "Enlightenment-työpöytä"
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr "Kevyt ja nopea graafinen ympäristö"
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "LXDE-työpöytä"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Kevyt ja nopea graafinen ympäristö"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
-msgstr "Muut graafiset käyttöympäristöt"
+msgstr "Muut graafiset työpöydät"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, FVWM jne"
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, jne"
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Työkalut"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH-palvelin"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Webmin Etäasetuspalvelin"
+msgstr "Webmin etäasetuspalvelin"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Verkkotyökalut/Valvonta"
+msgstr "Verkkotyökalut ja verkon valvonta"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
-msgstr "Valvontatyökalut, prosessihallinta, tcpdump, nmap, ..."
+msgstr "Valvontatyökalut, prosessienhallinta, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Mandriva Velhoja"
+msgid "Mageia Wizards"
+msgstr "Mageian asetusvelhot"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
-msgstr "Velhoja palvelimen asettamiseksi"
+msgstr "Velhoja palvelinten asettamiseksi"
#: steps.pm:85
#, c-format
@@ -671,339 +838,391 @@ msgstr ""
"Ilmeni virhe, eikä sitä ei voida käsitellä kunnolla.\n"
"Jatka omalla vastuullasi."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
-"\"\n"
+"Check the cdrom on an installed computer using \"rpm -qpl media/main/*."
+"rpm\"\n"
msgstr ""
-"Osa tärkeistä paketeista ei asentunut kunnolla.\n"
-"Joko CD-ROM-asemasi tai levy on viallinen.\n"
-"Tarkista CD-ROM Linux-koneessa komennolla \"rpm -qpl media/main/*.rpm\"\n"
+"Joitakin tärkeistä paketeista ei pystytty asentamaan.\n"
+"CD/DVD-asema tai -levy on viallinen.\n"
+"Tarkista CD/DVD-levy asennetussa järjestelmässä komennolla \"rpm -qpl media/"
+"main/*.rpm\"\n"
#: steps_auto_install.pm:71 steps_stdio.pm:27
#, c-format
msgid "Entering step `%s'\n"
-msgstr "Siirryn vaiheeseen `%s'\n"
+msgstr "Siirrytään vaiheeseen %s\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux asennus %s"
+msgid "%s Installation %s"
+msgstr "%sin asennus %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
-msgstr "<Tab>/<Alt-Tab> vaihtaa elementtiä"
+msgstr "<Tab>/<Alt-Tab> vaihtaa osaa"
+
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "X.org-palvelin on hidas käynnistää. Odota..."
-#: steps_gtk.pm:189
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"Järjestelmäsi resurssit ovat lopussa. Voit kohdata ongelmia Mandriva "
-"Linuxia\n"
-"asentaessasi. Jos näin tapahtuu, voit kokeilla tekstipohjaista asennusta.\n"
-"Tehdäksesi niin paina `F1' kun käynnistät asennusohjelmaa CD-ROM:lta.\n"
-"Tämän jälkeen kirjoita `text'."
+"Järjestelmän resurssit ovat lopussa. %sia asennettaessa\n"
+"voi ilmetä ongelmia. Jos näin tapahtuu, voidaan graafisen asennuksen\n"
+"sijaan käyttää tekstipohjaista asennusta. Tekstipohjainen asennus\n"
+"käynnistetään painamalla käynnistysruudussa näppäintä F1,\n"
+"kirjoittamalla teksti \"text\" ja painamalla Enteriä."
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Asennusmedioiden valinta"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Asenna %s Plasma"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Asenna %s GNOME"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Mukautettu asennus"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Plasma-työpöytä"
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "GNOME-työpöytä"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Mukautettu työpöytä"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "%s-työpöydän esikatselu."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Kuvaa napsauttamalla aukeaa isompi esikatselukuva."
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Pakettiryhmien valinta"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Yksittäisten pakettien valinta"
-# mat
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Koko yhteensä: %d / %d Mt"
+msgid "Unselect All"
+msgstr "Poista valinnat"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Viallinen paketti"
+msgid "Total size: %d / %d MB"
+msgstr "Koko yhteensä: %d / %d Mt"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Versio: "
-# mat
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Koko: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d kt\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Tärkeys: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
-msgstr "Et voi valita/poistaa tätä pakettia"
+msgid "You cannot select/unselect this package"
+msgstr "Pakettia ei voida valita tai poistaa"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
-msgstr "puuttuvista %s johtuen"
+msgstr "puuttuvan riippuvuuden %s vuoksi"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "täyttämättömistä riippuvuuksista %s johtuen"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "yritetään asentaa %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "jotta %s voitaisiin säilyttää"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
-"Et voi asentaa tätä pakettia, koska levyllä ei ole tarpeeksi tilaa sen "
-"asentamiseksi"
+"Pakettia ei voida asentaa, koska levyllä ei ole tarpeeksi tilaa sen "
+"asentamiseen"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Seuraavat paketit asennetaan"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Seuraavat paketit poistetaan"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Tämä on pakollinen paketti, sitä ei voida poistaa valinnoista"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
-msgstr "Et voi poistaa tämän paketin valintaa. Se on jo asennettu"
+msgid "You cannot unselect this package. It is already installed"
+msgstr "Paketin valintaa ei voi poistaa, koska se on jo asennettu"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
-msgstr "Et voi poistaa tämän paketin valintaa. Paketti pitää päivittää."
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr "Paketin valintaa ei voi poistaa, koska se pitää päivittää"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Näytä automaattisesti valitut paketit"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Asenna"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
-msgstr "Lataa/Tallenna valinta"
+msgstr "Lataa / tallenna pakettivalinnat"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
-msgstr "Päivitän pakettien valintaa"
+msgstr "Päivitetään pakettien valintoja"
+
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr "Vaihda hierarkkisen ja kiinteän pakettilistan välillä"
-# Asennuksen sivuvalikko
-#: steps_gtk.pm:442
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
-msgstr "Minimaalinen asennus"
+msgstr "Vähimmäisasennus"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
-msgstr "Ohjelmistohallinta"
+msgstr "Ohjelmistojen hallinta"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Valitse asennettavat paketit"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
-msgstr "Asennetaan"
+msgstr "Asennus käynnissä"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Ei yksityiskohtia"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Aikaa jäljellä "
+msgid "Time remaining:"
+msgstr "Aikaa jäljellä:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Arvioidaan aikaa"
+msgid "(estimating...)"
+msgstr "(arvioidaan...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d paketti"
msgstr[1] "%d pakettia"
-# Asennuksen sivuvalikko
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Yhteenveto"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Aseta"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "ei asetettu"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-"Seuraavar asennusmediat on löydetty.\n"
-"Jos haluat ohittaa joku niistä, voit poistaa niiden valinta nyt."
+"Löydettiin seuraavat asennusmediat.\n"
+"Poista median valinta, jos et halua käyttää sitä."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-"Sinulla on mahdollisuus kopioida CD-levyjen sisältö kovalevylle ennen "
-"asennusta.\n"
-"Asennus jatkaa sen jälkeen kovalevyltä ja paketit ovat käytettävissä myös "
+"Asennuslevyjen sisältö on mahdollista kopioida kovalevylle ennen asennusta.\n"
+"Asennus jatkuu tämän jälkeen kovalevyltä ja paketit ovat käytettävissä myös "
"asennuksen jälkeen."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
-msgstr "Kopioi koko CD"
+msgstr "Kopioi asennuslevyt"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Ilmeni virhe"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Valitse näppäimistösi asettelu."
+msgid "Please choose your keyboard layout"
+msgstr "Valitse näppäimistöasettelu"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Tässä on koko lista käytettävissä olevista näppäimistöistä"
+msgid "Here is the full list of available keyboards:"
+msgstr "Lista kaikista käytettävissä olevista näppäimistöistä:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
-msgstr "Asenna/Päivitä"
+msgstr "Asennustapa"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
-msgstr "Onko tämä asennus vai päivitys?"
+msgstr "Asennus vai päivitys?"
-#: steps_interactive.pm:134
+#: steps_interactive.pm:159
#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Asennus"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Päivitä %s"
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "Salausavain %s:lle"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "Peruuta asennus ja käynnistä järjestelmä uudelleen"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "Asetetaan IDE-levyä"
+msgid "New Installation"
+msgstr "Uusi asennus"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
-"Ei vapaata tilaa 1 Mt:n käynnistyslohkoa varten! Asennusta jatketaan, mutta "
-"käynnistääksesi järjestelmän sinun pitää luoda käynnistyslohko-osio "
-"DiskDrake:ssa."
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Päivitä edellinen asennus (ei suositella)"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"Sinun pitää luoda PPC PReP Boot bootstrap! Asennusta jatketaan, mutta "
-"käynnistääksesi järjestelmän sinun pitää luoda käynnistyslohko-osio "
-"DiskDrake:ssa."
+"Asennusohjelma havaitsi, että asennettua Linux-järjestelmää ei voida\n"
+"päivittää turvallisesti versioon %s.\n"
+"\n"
+"On suositeltavaa suorittaa asennus, joka korvaa edellisen asennuksen.\n"
+"\n"
+"HUOM! Ota varmuuskopio tärkeistä ja henkilökohtaisista tiedostoista\n"
+"ennen kuin valitset \"Uusi asennus\"."
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "CD/DVD:n konfigurointi"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1011,164 +1230,214 @@ msgid ""
"done.\n"
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
-"Vaihda CD-levyä!\n"
+"Vaihda CD/DVD-levyä!\n"
"\n"
-"Aseta CD-levy nimeltä \"%s\" CD-asemaan ja valitse OK kun olet valmis.\n"
-"Jos sinulla ei ole levyä, valitse Peruuta välttääksesi asennukset tältä "
+"Aseta asemaan levy nimeltä \"%s\" valitse OK.\n"
+"Jos levyä ei ole, valitse \"Peruuta\" ohittaaksesi asennukset kyseiseltä "
"levyltä."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Etsitään saatavilla olevia paketteja..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
-msgstr "Järjestelmässäsi ei ole riittävästi vapaata tilaa (%dMt > %dMt)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
+msgstr ""
+"Järjestelmässä ei ole riittävästi vapaata tilaa asennusta tai päivitystä "
+"varten (%dMt > %dMt)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
"Lataa tai tallenna pakettien valinta.\n"
-"Muoto on sama kuin auto_install-toiminnon luomilla tiedostoilla."
+"Muotoilu on sama kuin auto_install-toiminnon luomilla tiedostoilla."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
-msgstr "Verkkokuorma"
+msgstr "Lataa"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Tallenna"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
-msgstr "Huono tiedosto"
+msgstr "Virheellinen tiedosto"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr "Asenna Mandriva KDE-työpöytäympäristöllä"
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr "Asenna Mandriva GNOME-työpöytäympäristöllä"
+msgid "GNOME"
+msgstr "GNOME"
-# Asennuksen sivuvalikko
-#: steps_interactive.pm:433
+#: steps_interactive.pm:459
#, c-format
-msgid "Custom install"
-msgstr "Mukautettu asennus"
+msgid "Desktop Selection"
+msgstr "Työpöydän valinta"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr "Voit valita asennettavan työpöydän: KDE, GNOME tai mukautettu"
+msgid "You can choose your workstation desktop profile."
+msgstr "Valitse asennettava työpöytäympäristö."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
-msgstr "Valittu koko on suurempi kuin käytettävissä oleva levytila"
+msgstr ""
+"Valittujen pakettien koko on suurempi kuin käytettävissä oleva levytila"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Asennuksen tyyppi"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
-"Et ole valinnut yhtäkään pakettiryhmää.\n"
-"Valitse haluamasi minimaalinen asennus"
+"Yhtään pakettiryhmää ei ole valittu.\n"
+"Valitse haluttu vähimmäisasennus:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
-msgstr "X-palvelimella"
+msgstr "Graafisella käyttöliittymällä"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Asenna suositellut paketit"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Perusdokumentaation kanssa (suositeltu!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
-msgstr "Vähimmäisasennus (erityisesti ei urpmi)"
+msgstr "Vähimmäisasennus (ei edes urpmi:a)"
+
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Valmistellaan päivitystä..."
-#: steps_interactive.pm:596
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Valmistellaan asennusta"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
-msgstr "Asennetaan pakettia: %s"
+msgstr "Asennetaan pakettia %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
-msgstr "Tapahtui virhe järjestettäessä paketteja:"
+msgstr "Paketteja järjestettäessä tapahtui virhe:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
-msgstr "Jatka kuitenkin?"
+msgstr "Jatka?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "Yritä uudelleen"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
-msgstr "Ohita tämä paketti"
+msgstr "Ohita paketti"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr "Ohita kaikki paketit medialta \"%s\""
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
msgstr "Siirry takaisin medioiden ja pakettien valintaan"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
msgstr "Paketin %s asentamisessa tapahtui virhe."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Asennuksen jälkeiset toiminnot"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
-msgstr "Varmista että Päivitetyt Moduulit media on asemassa %s"
+msgstr "Varmista, että \"Update Modules\"-media on asemassa %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Päivitykset"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Sinulla on nyt mahdollisuus asentaa online-medialla."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Tämä sallii tietoturvapäivitysten asentamisen."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"Jotta voit asentaa median, sinulla on oltava toimiva yhteys\n"
+"Internettiin.\n"
+"\n"
+"Haluatko asentaa päivitysmedian?"
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr "Lataajaa ei voitu asentaa"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Yritä uudelleen?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Virhe lisättäessä lähdettä"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1180,215 +1449,128 @@ msgid ""
"\n"
"Do you want to install the updates?"
msgstr ""
-"Sinulla on nyt mahdollisuus hakea päivitetyt paketit. Nämä paketit\n"
-"on julkaistu tämän jakelun julkaisun jälkeen. Ne voivat sisältää\n"
-"tietoturva- tai virhekorjauksia.\n"
+"Nyt on mahdollista ladata päivitetyt paketit. Paketit on julkaistu\n"
+"jakelun julkaisemisen jälkeen ja ne voivat sisältää tietoturva-\n"
+"tai virhekorjauksia.\n"
"\n"
-"Hakeaksesi nämä paketit sinulla pitää olla toimiva Internetyhteys.\n"
+"Pakettien lataamiseen tarvitaan toimiva Internet-yhteys.\n"
"\n"
-"Haluatko hakea ja asentaa päivitykset?"
-
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Yhdistetään peilipalvelimeen uusimman pakettilistan saamiseksi..."
+"Asennetaanko päivitykset?"
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Yhteyttä peilipalvelimeen %s ei voitu muodostaa"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s kohteessa %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Laitteisto"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Äänikortti"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Onko sinulla ISA-väylään liitettävä äänikortti?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Suorita \"alsaconf\" tai \"sndconfig\" asennuksen jälkeen asettaaksesi "
-"äänikorttisi."
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Yhtäkään äänikorttia ei löydetty. Kokeile \"harddrake\" asennuksen jälkeen"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Graafinen käyttöliittymä"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
-msgstr "Verkko & Internet"
+msgstr "Verkko ja Internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Välityspalvelimet"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "asetettu"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
-msgstr "Turvataso"
+msgstr "Turvallisuustaso"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Palomuuri"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "aktivoitu"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "ei käytössä"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
-msgstr "Et ole asettanut X-palvelinta. Oletko varma että haluat tehdä tämän?"
-
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "Valmistelen käyttöjärjestelmän lataajaa..."
-
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
msgstr ""
-"Sinulla on vanhanaikainen tai tuntematon tietokone, joten Yaboot "
-"käynnistyslataaja ei toimi koneessasi. Asennus jatkuu, mutta sinun täytyy "
-"käyttää BootX:ää koneesi käynnistämiseen. Ytimen paremetrit root "
-"tiedostojärjestelmälle on: root=%s"
+"X-palvelinta ei ole asetettu, haluatko varmasti jättää sen asettamatta?"
-#: steps_interactive.pm:1024
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Haluatko käyttää aboot:a?"
+msgid "Preparing initial startup program..."
+msgstr "Valmistellaan käynnistysohjelmaa..."
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Virhe asennettaessa aboot:a,\n"
-"yritetäänkö pakkoasennusta vaikka se tuhoaa ensimmäisen osion?"
+msgid "Be patient, this may take a while..."
+msgstr "Ole kärsivällinen, valmistelussa voi kestää hetki..."
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-"Tällä turvatasolla pääsy Windows-osion tiedostoihin on rajoitettu "
-"ylläpitäjälle."
+"Tällä turvallisuustasolla pääsy Windows-osion tiedostoihin on rajoitettu "
+"pääkäyttäjälle."
-# mat
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Aseta tyhjä levyke levykeasemaan %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
-msgstr "Valmistellaan automaattiasennuslevykettä..."
+msgstr "Luodaan automaattiasennuslevykettä..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
"\n"
"Do you really want to quit now?"
msgstr ""
-"Joitain vaiheita ei ole saatettu loppuun.\n"
+"Joitain vaiheita ei ole suoritettu loppuun.\n"
"\n"
"Haluatko todella lopettaa?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Onnittelut"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Käynnistä uudelleen"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Luo automaattinen asennuslevyke"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Automaattinen asennus voi olla täysin automatisoitu,\n"
-"jos niin halutaan. Siinä tapauksessa asennus täyttää\n"
-"koko kiintolevyn! (tarkoitettu toisen koneen asentamiseksi),\n"
-"\n"
-"Ehkä haluat mieluummin toistaa asennuksen.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Toista"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automaattinen"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Tallenna pakettien valinta"
-
-# Asennuksen sivuvalikko
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1456,21 +1638,21 @@ msgstr "Osiointi"
msgid ""
"_: Keep these entry short\n"
"Formatting"
-msgstr "Alustetaan"
+msgstr "Alustus"
#: steps_list.pm:29
#, c-format
msgid ""
"_: Keep these entry short\n"
"Choosing packages"
-msgstr "Pakettien valitseminen"
+msgstr "Pakettien valinta"
#: steps_list.pm:31
#, c-format
msgid ""
"_: Keep these entry short\n"
"Installing"
-msgstr "Asennetaan"
+msgstr "Asennus"
#: steps_list.pm:34
#, c-format
@@ -1479,29 +1661,20 @@ msgid ""
"Users"
msgstr "Käyttäjät"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Verkko"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
"_: Keep these entry short\n"
"Bootloader"
-msgstr "Käynnistyslataaja"
+msgstr "Käynnistyslatain"
-# Asennuksen sivuvalikko
#: steps_list.pm:40 steps_list.pm:41
#, c-format
msgid ""
"_: Keep these entry short\n"
"Configure X"
-msgstr "Aseta X"
+msgstr "X-palvelin"
-# Asennuksen sivuvalikko
#: steps_list.pm:42
#, c-format
msgid ""
@@ -1528,10 +1701,4 @@ msgstr "Päivitykset"
msgid ""
"_: Keep these entry short\n"
"Exit"
-msgstr "Poistu"
-
-#~ msgid "All"
-#~ msgstr "Kaikki"
-
-#~ msgid "TV card"
-#~ msgstr "TV-kortti"
+msgstr "Lopetus"
diff --git a/perl-install/install/share/po/fr.po b/perl-install/install/share/po/fr.po
index 2a10b8a01..790067f97 100644
--- a/perl-install/install/share/po/fr.po
+++ b/perl-install/install/share/po/fr.po
@@ -1,96 +1,88 @@
-# translation of DrakX-fr.po to Français
-# Translation file of Mandriva Linux graphic install
-# Copyright (C) 1999,2000,2001,2002,2003,2004,2005,2006 Mandriva
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
-# Veuillez ne pas mettre à jour ce fichier à moins d'être
-# certain tant de vos traductions que de votre grammaire et
-# de votre orthographe. Ces dernières sont trop souvent
-# approximatives. Elles nécessitent alors des relectures et
-# des corrections qui n'ont d'autre conséquence que de faire
-# perdre du temps à tout le monde (à vous si votre travail est
-# imparfait et aux relecteurs qui doivent rechercher puis corriger
-# vos éventuelles fautes).
-#
-# VEUILLEZ RESPECTER LA TYPOGRAPHIE FRANÇAISE !
-# Les majuscules doivent être accentuées si besoin est. Respectez
-# les espaces nécessaires pour la ponctuation (espace après la virgule et
-# le point, espace insécables avant les points d'interrogation,
-# d'exclamation, les deux-points et le point virgule, espace aussi après
-# le point virgule).
-# N'enlevez pas l'espace qui suit un signe de ponctuation en fin de
-# phrase; vous devez respecter la version originale. Dans ce type de
-# cas, il est extrèmement probable que le programme va afficher
-# quelque chose d'autre à la fin. En enlevant l'espace, vous allez
-# accoller deux mots.
-#
-# ESPACES INSÉCABLES
-# Vous devez utiliser un espace insécable (c'est un espace qui ne peut
-# pas servir de rupture à la ligne) avant le point d'exclamation, le
-# point d'interrogation, le deux-points, le point virgules, et pour les
-# "quantités", entre le nombre et l'unité abbrégée (par exemple "10 g").
-# L'espace normal en ISO et UTF8 est le caractere 0x20 tandis que l'espace
-# insécable est le caractère 0xA0. Sous Emacs en utilisant le po mode
-# livré avec gettext >= 0.10.40-4mdk vous pouvez voir celui-ci avec un
-# fond de couleur spécial. Sous Vi celui-ci est normalement affiché
-# précédé du caractère pipe "|". Pour le taper sous la plupart des
-# éditeurs, vous pouvez utiliser la touche "Compose" puis en tapant
-# deux espaces. Si vous n'avez pas de touche compose, vous pouvez
-# donner cette fonction à la touche "Windows" droite de votre clavier
-# avec la commande suivante :
-# xmodmap -e 'keycode 116 = Multi_key'
-#
-# Les guillemets françaises sont « et » et non ". La guillemet ouvrante
-# « est suivie d'un espace insécable et la guillemet fermante » est
-# précédée du même type d'espace. Pour le taper, vous pouvez utiliser
-# la combinaison Compose < <, et Compose > > (ou alt-z et alt-x).
-#
-# Enfin, traduisez INTELLIGEMMENT et non mot à mot. Certaines traductions
-# n'ont aucun sens en français.
-#
-# MOTS À ÉVITER
-# - application. Ce terme n'étant pas compris par le grand public, il est
-# préférable de le remplacer par le mot "programme".
-#
-# Nous vous remercions de votre compréhension.
-#
-#
-#
-# Stéphane Teletchéa, 2005.
-# David BAUDENS <baudens@mandriva.com>, 1999-2004.
-# David ODIN <odin@mandriva.com>, 2000.
-# Pablo Saratxaga <pablo@mandriva.com>, 2001, 2005.
-# KAtiOS <katios@nolabel.net>, 2001.
-# Guillaume Cottenceau <gc@mandriva.com>, 2001-2002.
-# Thierry Vignaud <tvignaud@mandriva.com>, 2001-2004.
-# Christophe Combelles <ccomb@free.fr>, 2002,2003.
-# Adrien REZER <monsieurdidi@free.fr>, 2003.
-# RICHARD Nicolas <richardnicolas22@yahoo.fr>, 2004.
-# Lecureuil Nicolas <n1c0l4s.l3@wanadoo.fr>, 2004.
-# Teletchéa <steletch@free.fr>, 2004, 2005.
-# Christophe Berthelé <cpjc@free.fr>, 2005, 2006, 2007.
-# Didier Hérisson <didier.herisson@angstrom.uu.se>, 2005.
-# Nicolas Lécureuil <neoclust@mandriva.org>, 2005.
+# Translators:
+# Charles Monzat <c.monzat@laposte.net>, 2016
+# Charles Monzat <c.monzat@laposte.net>, 2016
+# Eric Barbero <dune06@free.fr>, 2013
+# Eric Barbero <dune06@free.fr>, 2013,2015-2016
+# stroibe974 <sebsweb@gmail.com>, 2018-2020,2022
+# Yves Brungard, 2014
+# Yves Brungard, 2014
msgid ""
msgstr ""
-"Project-Id-Version: DrakX-fr\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-10-02 20:32+0200\n"
-"Last-Translator: Christophe Berthelé <cpjc@free.fr>\n"
-"Language-Team: Français <cooker-i18n@mandrivalinux.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2013-04-04 13:31+0000\n"
+"Last-Translator: stroibe974 <sebsweb@gmail.com>, 2018-2020,2022\n"
+"Language-Team: French (http://app.transifex.com/MageiaLinux/mageia/language/"
+"fr/)\n"
+"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=2;plural=(n>1);\n"
+"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % "
+"1000000 == 0 ? 1 : 2;\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Rejoignez-nous !"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Pour vous !"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "Votre choix !"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Pour la bureautique !"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Pour vos loisirs !"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "Pour les enfants !"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "Pour toute la famille !"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "Pour les développeurs !"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Merci !"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Soyez libre !"
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
-msgstr "Possédez-vous d'autres média supplémentaires ?"
+msgstr "Possédez-vous d'autres médias supplémentaires ?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -104,144 +96,159 @@ msgstr ""
"\n"
"Souhaitez-vous configurer un autre média d'installation ?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Réseau (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Réseau (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Réseau (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "URL du miroir ?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "L'URL doit commencer par ftp:// ou http://"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Connexion au site Web de Mandriva Linux pour obtenir la liste des serveurs "
-"miroirs disponibles..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Echec de la connexion au site web de Mandriva Linux pour obtenir la liste "
-"des miroirs disponibles"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Choisissez un serveur miroir d'où télécharger les paquetages"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "Configuration NFS"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
-msgstr "Veuillez entrer le nom de machine et le répertoire de votre média NFS"
+msgstr "Veuillez entrer le nom d'hôte et le répertoire de votre média NFS"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
-msgstr "Le nom d'hôte manque"
+msgstr "Il manque le nom d'hôte"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "Le répertoire doit commencer par « / »"
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "Nom d'hôte du montage NFS ?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Répertoire"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "Supplémentaire"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
msgstr ""
-"Ne peut trouver le fichier de liste de paquets sur ce miroir. Vérifiez que "
-"l'emplacement est correct."
+"Ne peut trouver le fichier de liste des paquetages sur ce miroir. Vérifiez "
+"que l'emplacement est correct."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Recherche des paquetages déjà installés..."
+msgid "Core Release"
+msgstr "Core Release"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Suppression des paquetages avant la mise à jour ..."
+msgid "Tainted Release"
+msgstr "Tainted Release"
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Recherche des paquetages à mettre à jour..."
+msgid "Nonfree Release"
+msgstr "Nonfree Release"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"Vous avez sélectionné le(s) serveur(s) suivant(s) : %s\n"
-"\n"
-"\n"
-"Ces serveurs seront activés par défaut.\n"
-"Ils n'ont actuellement aucun problème de sécurité connu,\n"
-"mais si des vulnérabilités sont découvertes par la suite,\n"
-"vous devrez effectuer une mise à jour le plus rapidement possible.\n"
-"\n"
-"\n"
-"Confirmez-vous l'installation de ces serveurs ?\n"
+"Certains matériels sur votre machine peuvent nécessiter des firmwares non\n"
+"libres afin que les pilotes libres puissent fonctionner."
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "Vous devriez activer « %s »"
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+"« %s » contient les différentes parties du système ainsi que ses applications"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "« %s » contient des logiciels non libres.\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"Il contient également des firmwares nécessaires au bon fonctionnement de "
+"certains périphériques (ex : certaines cartes ATI/AMD, certaines cartes "
+"réseau, certaines cartes RAID, ...)"
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"« %s » contient des logiciels qui ne peuvent pas être redistribués dans tous "
+"les pays à cause de certains brevets logiciels."
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+"Il contient également des logiciels de « %s » recompilés avec des "
+"fonctionnalités supplémentaires."
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "Ici vous pouvez activer des médias supplémentaires si vous le désirez."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Ce médium fournit les paquets de mise à jour pour le médium « %s »"
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Recherche des paquetages déjà installés…"
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Recherche des paquetages à mettre à jour…"
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Suppression des paquetages avant la mise à jour…"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -249,88 +256,93 @@ msgid ""
"\n"
"Do you really want to remove these packages?\n"
msgstr ""
-"Les paquetages suivants seront désinstallés pour permettre la mise à jour : %"
-"s\n"
+"Les paquetages suivants seront désinstallés pour permettre la mise à jour : "
+"%s\n"
"\n"
"\n"
"Souhaitez-vous réellement les désinstaller ?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Erreur lors de la lecture du fichier %s"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "Les disques suivants ont été renommés :"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (précédemment nommé %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Réseau"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "Veuillez choisir un média"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Le fichier existe déjà. Voulez-vous l'écraser ?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Permission refusée"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "Mauvais nom NFS"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "Média %s incorrect"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Impossible de faire des captures d'écran avant le partitionnement"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Les captures d'écran seront disponibles après l'installation dans %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Installation"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Configuration"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Vous devez aussi formater %s"
@@ -341,62 +353,84 @@ msgid ""
"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
"You can find some information about them at: %s"
msgstr ""
-"Certains périphériques présents sur votre système nécessitent des\n"
-"pilotes « propriétaires » pour pouvoir fonctionner. Vous pouvez\n"
-"trouver plus d'informations les concernant ici : %s"
+"Certains périphériques présents sur votre système requièrent des pilotes "
+"« propriétaires » pour pouvoir fonctionner.\n"
+"Vous pouvez trouver plus d'informations les concernant ici : %s"
#: interactive.pm:22
#, c-format
msgid "Bringing up the network"
-msgstr "Démarrage de l'interface réseau..."
+msgstr "Démarrage de l'interface réseau"
#: interactive.pm:27
#, c-format
msgid "Bringing down the network"
-msgstr "Arrêt de l'interface réseau..."
+msgstr "Arrêt de l'interface réseau"
+
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr "Veuillez patienter, récupération du fichier en cours"
-#: media.pm:703 media.pm:714
+#: media.pm:704
#, c-format
-msgid "Downloading file %s..."
-msgstr "Téléchargement du fichier %s ..."
+msgid "unable to add medium"
+msgstr "impossible d'ajouter le média"
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr ""
"Copie de certains paquetages sur les disques pour une utilisation future"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Copie en cours"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "obligatoire"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "important"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "très utile"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "utile"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "éventuellement"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "Récupération des informations depuis les métadonnées XML…"
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Pas d'info xml pour le média « %s », seulement un résultat partiel pour le "
+"paquetage %s"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Pas de description"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
@@ -405,271 +439,287 @@ msgstr ""
"Certains paquetages requis par %s ne peuvent être installés :\n"
"%s"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "Une erreur est survenue :"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "Une erreur fatale est survenue : %s."
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr "Ne plus me demander"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d transactions ont échoué"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "L'installation des paquetages a échoué :"
+
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "Station de travail"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "Poste bureautique"
-#: share/meta-task/compssUsers.pl:15
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Programmes pour la bureautique : traitements de texte (OpenOffice.org "
-"Writer, Kword), tableurs (OpenOffice.org Calc, Kspread), visualiseur pdf, etc"
+"Programmes pour la bureautique : traitements de texte (LibreOffice Writer, "
+"Kword), tableurs (LibreOffice Calc, Kspread), visualiseur PDF, etc"
-#: share/meta-task/compssUsers.pl:16
-#, c-format
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"Programmes pour la bureautique : traitements de texte (kword, abiword), "
-"tableurs (kspread, gnumeric), visualiseur pdf, etc"
-
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Jeux"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr ""
"Programmes de divertissement : jeux d'arcade, de plateau, de stratégie, etc"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Multimédia"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
-msgstr "Programmes pour jouer/éditer du son et de la vidéo"
+msgstr "Programmes de lecture/édition du son et de la vidéo"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Internet"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
"Ensemble d'outils pour lire et envoyer des courriers électroniques et des "
-"messages de forums (mutt, tin, ...), ainsi que pour naviguer sur Internet"
+"messages de forums (mutt, tin, …), ainsi que pour naviguer sur Internet"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Ordinateur réseau (client)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Clients pour différents protocoles, dont ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Outils pour faciliter la configuration de votre ordinateur"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Utilitaires console"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Éditeurs, interpréteurs, outils fichiers, terminaux"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Développement"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr ""
"Bibliothèques de développement C et C++, programmes et fichiers d'en-tête"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Documentation"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
-msgstr "Livres et Howto's sur Linux et le Logiciel Libre"
+msgstr "Livres et tutoriels sur Linux et le Logiciel Libre"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "« Linux Standard Base ». Support des programmes tiers"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Serveur Web"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
-msgstr "Groupware"
+msgstr "Logiciel de groupe de travail"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Serveur Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Pare Feu/Routeur"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
-msgstr "Passerelle internet"
+msgstr "Passerelle Internet"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "Courriel/Nouvelles"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Serveur de courrier Postfix, serveur de nouvelles lnn"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Serveur d'annuaire"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "Serveur FTP"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "Serveur de noms de domaine et d'information réseaux"
+msgstr "Serveur de nom de domaine et d'information réseau"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "Serveur pour partage de fichiers et d'imprimantes"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "Serveur NFS, Serveur Samba"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
-msgstr "Base de Données"
+msgstr "Base de données"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "Serveurs de bases de données PostgreSQL ou MySQL"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "Serveur de bases de données PostgreSQL et MariaDB"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
-msgstr "Apache et Pro-ftpd"
+msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Courriel"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Serveur de courrier Postfix"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "Serveurs de bases de données PostgreSQL ou MySQL"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "Serveur de bases de données PostgreSQL ou MariaDB"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
-msgstr "Serveur réseau"
+msgstr "Serveur d'ordinateur réseau"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "Serveur NFS, serveur SMB, serveur Proxy (mandataire), serveur SSH"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Environnement graphique"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "Station de travail KDE"
+msgid "Plasma Workstation"
+msgstr "Station de travail Plasma"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr ""
-"L'environnement graphique KDE (K Desktop Environment) avec sa collection "
-"d'outils"
+"L'environnement de bureau graphique KDE (K Desktop Environment) avec sa "
+"collection d'outils"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "Station de travail GNOME"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -678,57 +728,111 @@ msgstr ""
"Un environnement de bureau avec un ensemble de programmes et d'outils "
"intuitifs"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr "Environnement Xfce"
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Un environnement de bureau plus léger avec un ensemble de programmes et "
+"d'outils intuitifs"
+
+#: share/meta-task/compssUsers.pl:169
#, c-format
-msgid "IceWm Desktop"
-msgstr "Bureau IceWm"
+msgid "MATE Workstation"
+msgstr "Station de travail MATE"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Station de travail Cinnamon"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Un environnement de bureau basé sur GNOME"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "Bureau LXQt"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "Un portage vers Qt de l'environnement de bureau léger"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr "Bureau Enlightenment"
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr "Un bureau rapide et léger avec une suite d'outils dédiés"
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "Bureau LXDE"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Un environnement graphique léger et rapide"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
-msgstr "Autres Environnements de Bureau"
+msgstr "Autres environnements de bureau"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm, etc"
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, etc."
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Utilitaires"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "Serveur SSH"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Serveur de configuration distante webmin"
+msgstr "Serveur de configuration distante Webmin"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "Utilitaires réseau/Surveillance du réseau"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
-msgstr "Outils de surveillance, gestion de processus, tcpdump, nmap, ..."
+msgstr "Outils de surveillance, gestion des processus, tcpdump, nmap, …"
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Assistants Mandriva"
+msgid "Mageia Wizards"
+msgstr "Assistants Mageia"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Assistants pour configurer le serveur"
@@ -742,7 +846,7 @@ msgstr ""
"Une erreur est survenue et semble difficile à résoudre correctement.\n"
"Vous pouvez continuer, mais à vos risques et périls."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -750,11 +854,10 @@ msgid ""
"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
"\"\n"
msgstr ""
-"Quelques paquetages importants n'ont pas été correctement installés. Il se\n"
-"peut que le lecteur de CD-ROM ou le CD-ROM lui-même soit défectueux. Vous\n"
-"pouvez vous assurer du bon état de ce dernier en exécutant la commande "
-"suivante\n"
-"sur un ordinateur fonctionnant correctement : « rpm -qpl media/main/*.rpm »\n"
+"Quelques paquetages importants n'ont pas été correctement installés.\n"
+"Il se peut que le lecteur de CD-ROM ou le CD-ROM lui-même soit défectueux.\n"
+"Vous pouvez vous assurer du bon état de ce dernier en exécutant la commande "
+"suivante sur un ordinateur fonctionnel : « rpm -qpl media/main/*.rpm »\n"
#: steps_auto_install.pm:71 steps_stdio.pm:27
#, c-format
@@ -763,319 +866,375 @@ msgstr "Démarrage de l'étape « %s »\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Installation de Mandriva Linux %s"
+msgid "%s Installation %s"
+msgstr "%s Installation %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> entre éléments"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Le serveur Xorg est lent à démarrer. Veuillez patienter…"
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"Votre ordinateur possède peu de mémoire. Vous aurez peut-être quelques\n"
-"problèmes pour installer Mandriva Linux. Si cela se produit, vous pouvez\n"
-"essayer de procéder à une installation en mode texte. Pour cela, appuyez\n"
-"sur la touche « F1 » après l'amorçage sur CD-ROM puis entrez « text »."
+"Les ressources de votre système sont limitées. Vous pouvez rencontrer des "
+"problèmes\n"
+"lors de l'installation de %s. Si c'est le cas, vous pouvez essayer une "
+"installation en mode texte.\n"
+"Pour cela, appuyez sur « F1 » lors du démarrage sur le CD-ROM, puis entrez « "
+"text »."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Sélection des médias"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Installer l'environnement de bureau Plasma %s"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Installer le bureau GNOME %s"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Installation personnalisée"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Bureau Plasma"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "Bureau GNOME"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Bureau personnalisé"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Voici un aperçu du bureau « %s »."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Cliquez sur l'image afin d'agrandir l'aperçu"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Sélection des groupes de paquetages"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Sélection individuelle des paquetages"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Taille totale : %d / %d Mo"
+msgid "Unselect All"
+msgstr "Désélectionner tout"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Mauvais paquetage"
+msgid "Total size: %d / %d MB"
+msgstr "Taille totale : %d / %d Mo"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Version : "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Taille : "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d Ko\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Importance : "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Vous ne pouvez pas sélectionner/désélectionner ce paquetage"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "parce que %s manque"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "car %s n'est pas résolu"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
-msgstr "Tentative de promouvoir %s"
+msgstr "tentative de promouvoir %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "afin de conserver %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
-msgstr "Il n'y a pas assez de place pour installer ce paquetage"
+msgstr ""
+"Il n'y a pas assez d'espace disque disponible pour installer ce paquetage"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Les paquetages suivants vont être installés"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Les paquetages suivants vont être désinstallés"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Ce paquetage est nécessaire, vous ne pouvez pas le désélectionner"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Vous ne pouvez pas désélectionner ce paquetage. Il est déjà installé"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr ""
-"Vous ne pouvez pas désélectionner ce paquetage, il doit être mis à jour."
+"Vous ne pouvez pas désélectionner ce paquetage, car il doit être mis à jour"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Montrer les paquetages sélectionnés automatiquement"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Installation"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Charger/Sauvegarder la sélection"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Mise à jour de la sélection des paquetages"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr "Basculer entre une liste de paquetages avec ou sans arborescence"
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Installation minimale"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
-msgstr "Gestion des paquetages"
+msgstr "Gestion des logiciels"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Choisissez les paquetages que vous voulez installer"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Installation"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Pas de détails"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Temps restant "
+msgid "Time remaining:"
+msgstr "Temps restant :"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Estimation en cours"
+msgid "(estimating...)"
+msgstr "(estimation en cours…)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d paquetage"
msgstr[1] "%d paquetages"
+msgstr[2] "%d paquetages"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Résumé"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Configurer"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "non configuré"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-"Les média d'installation suivants ont été trouvés.\n"
+"Les médias d'installation suivants ont été trouvés.\n"
"Si vous ne désirez pas utiliser certains d'entre eux, vous pouvez les "
"désélectionner maintenant."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-"Vous avez la possibilité de copier le contenu des CDs sur le disque dur "
-"avant l'installation.\n"
+"Vous avez la possibilité de copier le contenu des CD sur le disque dur avant "
+"l'installation.\n"
"Celle-ci s'effectuera alors à partir du disque dur et les paquetages "
"resteront disponibles une fois le système installé."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
-msgstr "Copier entièrement les CDs"
+msgstr "Copier entièrement les CD"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Une erreur est survenue"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Veuillez choisir votre type de clavier."
+msgid "Please choose your keyboard layout"
+msgstr "Veuillez choisir votre disposition de clavier"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Voici la liste complète des claviers disponibles"
+msgid "Here is the full list of available keyboards:"
+msgstr "Voici la liste complète des claviers disponibles :"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Installation/Mise à jour"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Désirez-vous faire une installation ou une mise à jour ?"
-#: steps_interactive.pm:134
+#: steps_interactive.pm:159
#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Installation"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Mettre à jour %s"
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr "La mise à jour d'une distribution 32bit vers 64bit n'est pas supportée"
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr "La mise à jour d'une distribution 64bit vers 32bit n'est pas supportée"
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "Clé de chiffrement pour %s"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "Annuler l'installation, relancer le système"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "Configuration IDE"
+msgid "New Installation"
+msgstr "Nouvelle installation"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
-"Pas de place libre pour la partition d'amorçage (bootstrap) de 1 Mo."
-"L'installation va\n"
-"continuer, mais pour que votre système puisse démarrer, vous aurez besoin "
-"de\n"
-"créer la partition d'amorçage avec DiskDrake."
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Mettre à jour l'installation précédente (non recommandé)"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"Pas de place libre pour la partition d'amorçage (PPC PReP Boot bootstrap) de "
-"1 Mo.L'installation va\n"
-"continuer, mais pour que votre système puisse démarrer, vous aurez besoin "
-"de\n"
-"créer la partition d'amorçage avec DiskDrake."
+"L'assistant d'installation a détecté que votre système Linux installé\n"
+"ne peut être migré vers %s en toute sécurité.\n"
+"\n"
+"Une nouvelle installation remplaçant l'ancienne est recommandée.\n"
+"\n"
+"Attention, vous devriez sauvegarder vos données personnelles\n"
+"avant de choisir « Nouvelle installation »."
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "Configuration CD/DVD"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1089,163 +1248,208 @@ msgstr ""
"Si vous ne le possédez pas, cliquez sur « Annuler » afin de ne rien "
"installer à partir de ce CD-ROM."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
-msgstr "Recherche des paquetages disponibles..."
+msgstr "Recherche des paquetages disponibles…"
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-"Votre système n'a pas assez d'espace libre pour installer ou de mettre à "
+"Votre système n'a pas assez d'espace libre pour l'installation ou la mise à "
"jour (%dMo > %dMo)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-"Veuillez choisir entre le chargement ou la sauvegarde de la\n"
-"sélection des paquetages. Le format est le même que celui de l'installation "
-"automatisée (auto_install)."
+"Veuillez choisir entre le chargement ou la sauvegarde de la sélection des "
+"paquetages.\n"
+"Le format est le même que celui de l'installation automatisée (auto_install)."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Charger"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Sauvegarder"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Mauvais fichier"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr "Installer le bureau KDE de Mandriva"
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr "Installer le bureau GNOME de Mandriva"
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
+#: steps_interactive.pm:459
#, c-format
-msgid "Custom install"
-msgstr "Installation personnalisée"
+msgid "Desktop Selection"
+msgstr "Sélection du bureau"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
-"Vous pouvez choisir un profil de bureau de station de travail: KDE, GNOME ou "
-"Installation personnalisée"
+msgid "You can choose your workstation desktop profile."
+msgstr "Vous pouvez choisir un profil de bureau de station de travail."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "La taille sélectionnée est plus importante que la place disponible"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Type d'installation"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
"Vous n'avez sélectionné aucun groupe de paquetages.\n"
-"Veuillez choisir l'installation minimale désirée : "
+"Veuillez choisir l'installation minimale désirée :"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Avec X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Installer les paquetages recommandés"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Avec la documentation de base (recommandé !)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Installation vraiment minimale (et en particulier pas d'urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Préparation de la mise à jour"
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Préparation de l'installation"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Installation du paquetage %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Erreur lors du tri des paquetages :"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Souhaitez-vous tout de même continuer ?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "Ré-essayer"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr "Ignorer ce paquetage"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr "Ignorer tous les paquetages du média « %s »"
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
msgstr "Retourner à la sélection du média et des paquetages"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
msgstr "Erreur lors de l'installation du paquetage %s."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Configuration post-installation"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-"Assurez vous que le média de mise à jour des modules est dans le lecteur %s"
+"Assurez-vous que le média de mise à jour des modules est dans le lecteur %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Mises à jour"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Maintenant vous pouvez paramétrer le média en ligne."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Ceci vous permet d'installer les mises à jour de sécurité."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"Pour paramétrer ces médias, vous devez disposer d'une connexion Internet.\n"
+"\n"
+"Voulez-vous paramétrer le média de mise à jour ?"
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr "Ce gestionnaire de téléchargement n’a pas pu être installé"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Essayer de nouveau ?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Échec lors de l'ajout du dépôt"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1257,145 +1461,91 @@ msgid ""
"\n"
"Do you want to install the updates?"
msgstr ""
-"Vous avez maintenant la possibilité de télécharger les mises à jour\n"
-"créées depuis la sortie de cette distribution. Il peut y avoir des "
-"correctifs de\n"
+"Vous avez maintenant la possibilité de télécharger les paquetages mis à "
+"jour\n"
+"depuis la sortie de cette distribution. Il peut y avoir des correctifs de\n"
"sécurité ou des résolutions d'anomalies.\n"
"\n"
-"Vous devez avoir une connexion internet pour les télécharger.\n"
+"Vous devez avoir une connexion Internet pour les télécharger.\n"
"\n"
"Souhaitez-vous installer les mises à jour ?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Téléchargement de la liste des paquetages disponibles ..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Impossible d'accéder au miroir %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s sur %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Matériel"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Carte son"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Possédez-vous une carte son ISA ?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Lancez « alsaconf » ou « sndconfig » après l'installation pour configurer la "
-"carte son"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Aucune carte son détectée. Essayez avec « harddrake » après l'installation"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Interface graphique"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Réseau et Internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
-msgstr "Proxys"
+msgstr "Proxies (serveurs mandataires)"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "configuré"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Niveau de sécurité"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
-msgstr "Pare Feu"
+msgstr "Pare-feu"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "activé"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "désactivé"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr ""
-"Vous n'avez pas configuré le serveur d'affichage (X11). Êtes-vous sûr de ce "
-"que vous faites ?"
+"Vous n'avez pas configuré le serveur d'affichage X. Êtes-vous sûr que c'est "
+"ce que vous désirez ?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "Préparation du programme d'amorçage..."
-
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"Il semble que votre machine ne soit pas dotée de l'architecture "
-"« NewWorld ».\n"
-"Le programme d'amorçage « yaboot » ne fonctionnera pas.\n"
-"L'installation va continuer, mais vous aurez besoin de « BootX » ou\n"
-"d'une autre méthode pour démarrer votre machine. Le paramètre pour la racine "
-"du noyau est : root=%s"
+msgid "Preparing initial startup program..."
+msgstr "Préparation du chargeur d'amorçage..."
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Désirez-vous utiliser « aboot » ?"
-
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Une erreur est survenue lors de l'installation de « aboot ».\n"
-"Désirez-vous forcer l'installation au risque de détruire la\n"
-"première partition du disque ?"
+msgid "Be patient, this may take a while..."
+msgstr "Merci d'être patient, cela peut prendre quelques minutes…"
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
@@ -1404,17 +1554,17 @@ msgstr ""
"A ce niveau de sécurité, l'accès aux fichiers de la partition Windows sera "
"restreint à l'administrateur."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Insérez une disquette vierge dans le lecteur %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
-msgstr "Création de la disquette d'auto-installation..."
+msgstr "Création de la disquette d'auto-installation…"
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1425,51 +1575,16 @@ msgstr ""
"\n"
"Souhaitez-vous vraiment quitter maintenant ?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Félicitations"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Redémarrage"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Créer une disquette d'auto-installation"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"L'auto-installation peut être complètement automatique si nécessaire,\n"
-"dans ce cas elle prend le contrôle du disque dur !!\n"
-"(prévu pour l'installation d'une autre machine).\n"
-"\n"
-"Vous pouvez préférer rejouer l'installation.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Rejouer"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automatisée"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Sauvegarder la sélection des paquetages"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1560,13 +1675,6 @@ msgid ""
"Users"
msgstr "Utilisateurs"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Réseau"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
diff --git a/perl-install/install/share/po/fur.po b/perl-install/install/share/po/fur.po
index 4ee55262d..e9a83597c 100644
--- a/perl-install/install/share/po/fur.po
+++ b/perl-install/install/share/po/fur.po
@@ -1,157 +1,230 @@
-# translation of DrakX.po to furlan
-# Copyright (C) 2004 Free Software Foundation, Inc.
-# Andrea Gracco <graccoandrea@tin.it>, 2004.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Andrea Gracco <graccoandrea@tin.it>, 2004
msgid ""
msgstr ""
-"Project-Id-Version: DrakX\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2004-06-28 17:41+0200\n"
-"Last-Translator: Andrea Gracco <graccoandrea@tin.it>\n"
-"Language-Team: furlan <gft@freelists.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2020-06-18 00:30+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Friulian (http://www.transifex.com/MageiaLinux/mageia/"
+"language/fur/)\n"
+"Language: fur\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
#, c-format
-msgid "Do you have further supplementary media?"
+msgid "Join Us!"
msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: ../../advertising/02_IM_mageia.pl:1
#, c-format
-msgid ""
-"The following media have been found and will be used during install: %s.\n"
-"\n"
-"\n"
-"Do you have a supplementary installation medium to configure?"
+msgid "Make it yours!"
msgstr ""
-#: any.pm:166
+#: ../../advertising/03_IM_mageia.pl:1
#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
+msgid "Your choice!"
+msgstr ""
-#: any.pm:167
-#, fuzzy, c-format
-msgid "Network (HTTP)"
-msgstr "Rêt"
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
-#: any.pm:168
-#, fuzzy, c-format
-msgid "Network (FTP)"
-msgstr "Rêt"
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
-#: any.pm:169
+#: ../../advertising/06_IM_mageia.pl:1
#, c-format
-msgid "Network (NFS)"
+msgid "For kids"
msgstr ""
-#: any.pm:211
+#: ../../advertising/07_IM_mageia.pl:1
#, c-format
-msgid "URL of the mirror?"
+msgid "For family!"
msgstr ""
-#: any.pm:217
+#: ../../advertising/08_IM_mageia.pl:1
#, c-format
-msgid "URL must start with ftp:// or http://"
+msgid "For developers!"
msgstr ""
-#: any.pm:228
+#: ../../advertising/09_IM_mageia.pl:1
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
+msgid "Thank you!"
+msgstr ""
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
msgstr ""
-#: any.pm:233
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
+msgstr ""
+
+#: any.pm:162
+#, c-format
+msgid "Network (HTTP)"
+msgstr ""
+
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
msgstr ""
-#: any.pm:243
+#: any.pm:164
#, c-format
-msgid "Choose a mirror from which to get the packages"
+msgid "Network (NFS)"
msgstr ""
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr ""
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr ""
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr ""
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr ""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr ""
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Cartele"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr ""
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
msgstr ""
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
+msgid "Core Release"
msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
+msgid "Tainted Release"
msgstr ""
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
+msgid "Nonfree Release"
msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr ""
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr ""
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
msgstr ""
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -160,82 +233,87 @@ msgid ""
"Do you really want to remove these packages?\n"
msgstr ""
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr ""
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr ""
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr ""
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr ""
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr ""
-#: any.pm:1114
-#, fuzzy, c-format
+#: any.pm:1342
+#, c-format
msgid "NFS"
-msgstr "HFS"
+msgstr ""
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Rêt"
-#: any.pm:1137
-#, fuzzy, c-format
+#: any.pm:1365
+#, c-format
msgid "Please choose a media"
-msgstr "Par plasè sielç"
+msgstr ""
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr ""
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Permès dineât"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr ""
-#: any.pm:1226
-#, fuzzy, c-format
+#: any.pm:1454
+#, c-format
msgid "Bad media %s"
-msgstr "font zontade %s"
+msgstr ""
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr ""
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr ""
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
-msgstr "Instale"
+msgstr ""
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Configurazion"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr ""
@@ -257,365 +335,455 @@ msgstr ""
msgid "Bringing down the network"
msgstr ""
-#: media.pm:703 media.pm:714
+#: media.pm:397
#, c-format
-msgid "Downloading file %s..."
+msgid "Please wait, retrieving file"
msgstr ""
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr ""
-#: media.pm:861
-#, fuzzy, c-format
+#: media.pm:797
+#, c-format
msgid "Copying in progress"
-msgstr "Instalazion in vore"
+msgstr ""
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr ""
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr ""
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr ""
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr ""
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr ""
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr ""
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
+msgid "An error occurred:"
msgstr ""
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
+msgid "A fatal error occurred: %s."
+msgstr "A si è verificât un fal fatâl: %s."
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
msgstr ""
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:928
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "%d installation transactions failed"
+msgstr ""
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
msgstr ""
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr ""
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr ""
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr ""
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr ""
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr ""
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr ""
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr ""
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr ""
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr ""
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr ""
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Svilup"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr ""
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Documentazion"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr ""
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr ""
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr ""
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Server Web"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr ""
-#: share/meta-task/compssUsers.pl:75
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:84
+#, c-format
msgid "Groupware"
-msgstr "Grop"
+msgstr ""
-#: share/meta-task/compssUsers.pl:76
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:85
+#, c-format
msgid "Kolab Server"
-msgstr "Server Web"
+msgstr ""
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr ""
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr ""
-#: share/meta-task/compssUsers.pl:83
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:92
+#, c-format
msgid "Mail/News"
-msgstr "/File/_Gnûf"
+msgstr ""
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr ""
-#: share/meta-task/compssUsers.pl:87
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:97
+#, c-format
msgid "Directory Server"
-msgstr "Ferme Server"
+msgstr ""
-#: share/meta-task/compssUsers.pl:91
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:102
+#, c-format
msgid "FTP Server"
-msgstr "Server NTP"
+msgstr ""
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr ""
-#: share/meta-task/compssUsers.pl:95
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:107
+#, c-format
msgid "DNS/NIS"
-msgstr "NIS"
+msgstr ""
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr ""
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr ""
-#: share/meta-task/compssUsers.pl:100
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:113
+#, c-format
msgid "NFS Server, Samba server"
-msgstr "Server Samba"
+msgstr ""
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr ""
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
+msgid "PostgreSQL and MariaDB Database Server"
msgstr ""
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr ""
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr ""
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Mail"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr ""
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
+msgid "PostgreSQL or MariaDB database server"
msgstr ""
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr ""
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr ""
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Ambient Grafic"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
+msgid "Plasma Workstation"
msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr ""
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr ""
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr ""
-#: share/meta-task/compssUsers.pl:142
-#, fuzzy, c-format
-msgid "IceWm Desktop"
-msgstr "Desktop"
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr ""
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
+msgid "Window Maker, Fvwm, etc"
msgstr ""
-#: share/meta-task/compssUsers.pl:170
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:218
+#, c-format
msgid "Utilities"
-msgstr "Filipinis"
+msgstr ""
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr ""
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr ""
-#: share/meta-task/compssUsers.pl:178
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:226
+#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Viôt le Configurazion"
+msgstr ""
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr ""
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr ""
-#: share/meta-task/compssUsers.pl:187
-#, fuzzy, c-format
-msgid "Mandriva Wizards"
-msgstr "<b>Mandriva Expert</b>"
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr ""
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr ""
@@ -629,7 +797,7 @@ msgstr ""
"Al è intravignût un fal, ma no sai ben cemût gjestîlu.\n"
"Continue a to azard."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -644,298 +812,353 @@ msgid "Entering step `%s'\n"
msgstr ""
#: steps_curses.pm:22
-#, fuzzy, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Centri di Control Mandriva Linux"
+#, c-format
+msgid "%s Installation %s"
+msgstr ""
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr ""
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr ""
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr ""
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
+msgid "Unselect All"
msgstr ""
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
+msgid "Total size: %d / %d MB"
msgstr ""
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Version: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Dimension: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr ""
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Entitât: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr ""
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "cause cal mancje %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "cause che %s no l'è sodisfat"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "ricercje dal miôr pachet %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "par tignî %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr ""
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr ""
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr ""
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr ""
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr ""
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr ""
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Instale"
-#: steps_gtk.pm:436
-#, fuzzy, c-format
+#: steps_gtk.pm:519
+#, c-format
msgid "Load/Save selection"
-msgstr "Selezion dal percors"
+msgstr ""
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr ""
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr ""
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Gjestôr Software"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr ""
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr ""
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr ""
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
+msgid "Time remaining:"
msgstr ""
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
+msgid "(estimating...)"
msgstr ""
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "pachet no cognossût"
-msgstr[1] "pachet no cognossût"
+msgstr[0] ""
+msgstr[1] ""
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr ""
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Configure"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr ""
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr ""
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Al è intravignût un fal"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
+msgid "Please choose your keyboard layout"
msgstr ""
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
+msgid "Here is the full list of available keyboards:"
msgstr ""
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr ""
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr ""
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Instale"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr ""
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
+msgid "Encryption key for %s"
msgstr ""
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
+msgid "Cancel installation, reboot system"
msgstr ""
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
+msgid "New Installation"
msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
+msgid "Upgrade previous installation (not recommended)"
msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+msgid "CD/DVD"
msgstr ""
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+msgid "Configuring CD/DVD"
msgstr ""
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -944,298 +1167,300 @@ msgid ""
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr ""
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-#: steps_interactive.pm:407
-#, fuzzy, c-format
+#: steps_interactive.pm:430
+#, c-format
msgid "Load"
-msgstr "Locâl"
+msgstr ""
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Salve"
-#: steps_interactive.pm:415
-#, fuzzy, c-format
+#: steps_interactive.pm:438
+#, c-format
msgid "Bad file"
-msgstr "Salve il file"
+msgstr ""
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
+#: steps_interactive.pm:459
#, c-format
-msgid "Custom install"
+msgid "Desktop Selection"
msgstr ""
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr ""
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr ""
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr ""
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr ""
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr ""
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr ""
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr ""
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr ""
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr ""
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr ""
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr ""
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr ""
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
msgstr ""
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
msgstr ""
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr ""
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Atualizazions"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
#, c-format
-msgid ""
-"You now have the opportunity to download updated packages. These packages\n"
-"have been updated after the distribution was released. They may\n"
-"contain security or bug fixes.\n"
-"\n"
-"To download these packages, you will need to have a working Internet \n"
-"connection.\n"
-"\n"
-"Do you want to install the updates?"
+msgid "You now have the opportunity to setup online media."
msgstr ""
-#: steps_interactive.pm:713
+#: steps_interactive.pm:745
#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
+msgid "This allows to install security updates."
msgstr ""
-#: steps_interactive.pm:719
+#: steps_interactive.pm:746
#, c-format
-msgid "Unable to contact mirror %s"
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
msgstr ""
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#: steps_interactive.pm:767
#, c-format
-msgid "%s on %s"
+msgid "That downloader could not be installed"
msgstr ""
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:767 steps_interactive.pm:784
#, c-format
-msgid "Hardware"
-msgstr "Hardware"
+msgid "Retry?"
+msgstr ""
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:784
#, c-format
-msgid "Sound card"
-msgstr ""
+msgid "Failure when adding medium"
+msgstr "Fal te zonte de font"
-#: steps_interactive.pm:902
+#: steps_interactive.pm:792
#, c-format
-msgid "Do you have an ISA sound card?"
+msgid ""
+"You now have the opportunity to download updated packages. These packages\n"
+"have been updated after the distribution was released. They may\n"
+"contain security or bug fixes.\n"
+"\n"
+"To download these packages, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to install the updates?"
msgstr ""
-#: steps_interactive.pm:904
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
+msgid "%s on %s"
msgstr ""
-#: steps_interactive.pm:906
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
+msgid "Hardware"
+msgstr "Hardware"
+
+#: steps_interactive.pm:958
+#, c-format
+msgid "Sound card"
msgstr ""
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr ""
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Rêt & Internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr ""
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr ""
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Nivel di Sigurece"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Firewall"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr ""
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "disabilitât"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr ""
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr ""
-
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-
-#: steps_interactive.pm:1024
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Do you want to use aboot?"
+msgid "Preparing initial startup program..."
msgstr ""
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
+msgid "Be patient, this may take a while..."
msgstr ""
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr ""
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr ""
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1243,46 +1468,16 @@ msgid ""
"Do you really want to quit now?"
msgstr ""
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Congratulazions"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Torne a inviâ"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr ""
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr ""
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr ""
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr ""
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1373,13 +1568,6 @@ msgid ""
"Users"
msgstr "Utents"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Rêt"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1421,22 +1609,3 @@ msgid ""
"_: Keep these entry short\n"
"Exit"
msgstr "Jessì"
-
-#~ msgid "All"
-#~ msgstr "Ducj"
-
-#~ msgid "TV card"
-#~ msgstr "Schede TV"
-
-#~ msgid "Boot"
-#~ msgstr "Inviament"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "Instale atualizazions"
-
-#~ msgid "Users"
-#~ msgstr "Utents"
-
-#~ msgid "Networking"
-#~ msgstr "Rêt"
diff --git a/perl-install/install/share/po/ga.po b/perl-install/install/share/po/ga.po
index e8dda015f..fc5b98285 100644
--- a/perl-install/install/share/po/ga.po
+++ b/perl-install/install/share/po/ga.po
@@ -1,25 +1,82 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
# Alastair McKinstry <mckinstry@computer.org>, 2002
-#
msgid ""
msgstr ""
-"Project-Id-Version: DrakX\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2005-09-12 18:04+0200\n"
-"Last-Translator: Alastair McKinstry <mckinstry@computer.org>\n"
-"Language-Team: Irish <ga@li.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2020-06-18 00:30+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Irish (http://www.transifex.com/MageiaLinux/mageia/language/"
+"ga/)\n"
+"Language: ga\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : "
+"4);\n"
+
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr ""
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr ""
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
-#: any.pm:155
-#, fuzzy, c-format
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr ""
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr ""
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr ""
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr ""
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
+#, c-format
msgid "Do you have further supplementary media?"
-msgstr "An bhfuil ceann eile agat?"
+msgstr ""
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -28,128 +85,147 @@ msgid ""
"Do you have a supplementary installation medium to configure?"
msgstr ""
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Líonra (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Líonra (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Líonra (NFS)"
-#: any.pm:211
+#: any.pm:224
+#, c-format
+msgid "NFS setup"
+msgstr "Cumraigh NFS"
+
+#: any.pm:225
#, c-format
-msgid "URL of the mirror?"
+msgid "Please enter the hostname and directory of your NFS media"
msgstr ""
-#: any.pm:217
+#: any.pm:229
#, c-format
-msgid "URL must start with ftp:// or http://"
+msgid "Hostname missing"
msgstr ""
-#: any.pm:228
+#: any.pm:230
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
+msgid "Directory must begin with \"/\""
+msgstr ""
+
+#: any.pm:234
+#, c-format
+msgid "Hostname of the NFS mount ?"
+msgstr ""
+
+#: any.pm:235
+#, c-format
+msgid "Directory"
+msgstr "Comhadlann"
+
+#: any.pm:265
+#, c-format
+msgid "Supplementary"
msgstr ""
-#: any.pm:233
+#: any.pm:300
#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+"Can't find a package list file on this mirror. Make sure the location is "
+"correct."
msgstr ""
-#: any.pm:243
+#: any.pm:325
#, c-format
-msgid "Choose a mirror from which to get the packages"
+msgid "Core Release"
msgstr ""
-#: any.pm:273
+#: any.pm:327
#, c-format
-msgid "NFS setup"
-msgstr "Cumraigh NFS"
+msgid "Tainted Release"
+msgstr ""
-#: any.pm:274
+#: any.pm:329
#, c-format
-msgid "Please enter the hostname and directory of your NFS media"
+msgid "Nonfree Release"
msgstr ""
-#: any.pm:278
+#: any.pm:367
#, c-format
-msgid "Hostname missing"
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-#: any.pm:279
+#: any.pm:368
#, c-format
-msgid "Directory must begin with \"/\""
+msgid "You should enable \"%s\""
msgstr ""
-#: any.pm:283
+#: any.pm:419
#, c-format
-msgid "Hostname of the NFS mount ?"
+msgid "\"%s\" contains the various pieces of the systems and its applications"
msgstr ""
-#: any.pm:284
+#: any.pm:420
#, c-format
-msgid "Directory"
-msgstr "Comhadlann"
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
-#: any.pm:306
+#: any.pm:421
#, c-format
-msgid "Supplementary"
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
msgstr ""
-#: any.pm:341
-#, fuzzy, c-format
+#: any.pm:422
+#, c-format
msgid ""
-"Can't find a package list file on this mirror. Make sure the location is "
-"correct."
-msgstr "Earráid ag oscailt %s do scríobh: %s"
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
-#: any.pm:375
-#, fuzzy, c-format
-msgid "Looking at packages already installed..."
-msgstr "Roghnaigh pacáistí ..."
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
-#: any.pm:382
+#: any.pm:429
#, c-format
-msgid "Removing packages prior to upgrade..."
+msgid "Here you can enable more media if you want."
msgstr ""
-#: any.pm:424
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr ""
+
+#: any.pm:593
#, c-format
msgid "Finding packages to upgrade..."
msgstr "Ag cúrdach pacáistí le húasgrádú..."
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:612
#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+msgid "Removing packages prior to upgrade..."
msgstr ""
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -158,82 +234,87 @@ msgid ""
"Do you really want to remove these packages?\n"
msgstr ""
-#: any.pm:1055
-#, fuzzy, c-format
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Earráid ag léamh comhad %s"
+
+#: any.pm:1283
+#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "Roghnaigh pacáistí ..."
+msgstr ""
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr ""
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Líonra"
-#: any.pm:1137
-#, fuzzy, c-format
+#: any.pm:1365
+#, c-format
msgid "Please choose a media"
-msgstr "Roghnaight do theangam le do thoil."
+msgstr ""
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Tá an comhad ann cheana. Forscríobh?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Cead diúltaithe"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr ""
-#: any.pm:1226
-#, fuzzy, c-format
+#: any.pm:1454
+#, c-format
msgid "Bad media %s"
-msgstr "Tá comhad %s lódailte."
+msgstr ""
-#: any.pm:1269
-#, fuzzy, c-format
-msgid "Can not make screenshots before partitioning"
-msgstr "Ní féidir liom rann eile a cur isteach"
+#: any.pm:1498
+#, c-format
+msgid "Cannot make screenshots before partitioning"
+msgstr ""
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr ""
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Suiteáil"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "cumraíocht"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Is gá %s a fhormáidiú freisin"
@@ -255,368 +336,458 @@ msgstr "Ag tosnú suas an ghréasán"
msgid "Bringing down the network"
msgstr "Ag dúnadh síos an ghreasán"
-#: media.pm:703 media.pm:714
-#, fuzzy, c-format
-msgid "Downloading file %s..."
-msgstr "Sabháil i gcomhad"
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr ""
-#: media.pm:861
-#, fuzzy, c-format
+#: media.pm:797
+#, c-format
msgid "Copying in progress"
-msgstr "Pointe taca dublach %s"
+msgstr ""
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "riachtanas"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "tábhachtach"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "an-dheas"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "deas"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "b'fhéidir"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Gan cur síos"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "Stáisiún Oibre"
+msgid "An error occurred:"
+msgstr ""
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Stáisiún Oibre"
+msgid "A fatal error occurred: %s."
+msgstr ""
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr ""
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
msgstr ""
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "Stáisiún Oibre"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Stáisiún Oibre"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Stáisiún Cluichí"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr ""
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Stáisiún ilmheánach"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr ""
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Stáisiún Idirlíon"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-#: share/meta-task/compssUsers.pl:37
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:42
+#, c-format
msgid "Network Computer (client)"
-msgstr "Printéir Gréasán (lpd)"
+msgstr ""
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr ""
-#: share/meta-task/compssUsers.pl:43
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:49
+#, c-format
msgid "Tools to ease the configuration of your computer"
-msgstr "An bhfuil tú ag iarraidh an cumraíocht a thrial?"
+msgstr ""
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Uirlisí Consóil"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr ""
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Forbairt"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr ""
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Doiciméadú"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr ""
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr ""
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr ""
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Freastalaí Lín"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Grúpearraí"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Freastalaí Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr ""
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
+#, c-format
msgid "Internet gateway"
-msgstr "suimiúil"
+msgstr ""
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "Ríomhphost/Nuacht"
-#: share/meta-task/compssUsers.pl:84
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:93
+#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Freastalaí Printéir"
+msgstr ""
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Freastalaí Eolaire"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "Freastalaí FTP:"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr ""
-#: share/meta-task/compssUsers.pl:95
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:107
+#, c-format
msgid "DNS/NIS"
-msgstr "DNS/NIS "
+msgstr ""
-#: share/meta-task/compssUsers.pl:96
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:108
+#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "Ainm Fearannas"
+msgstr ""
-#: share/meta-task/compssUsers.pl:99
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:112
+#, c-format
msgid "File and Printer Sharing Server"
-msgstr "Freastalaí Printéir"
+msgstr ""
-#: share/meta-task/compssUsers.pl:100
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:113
+#, c-format
msgid "NFS Server, Samba server"
-msgstr "Freastalaí NIS"
+msgstr ""
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Bunachar Sonraí"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
+msgid "PostgreSQL and MariaDB Database Server"
msgstr ""
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Greasan/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Post"
-#: share/meta-task/compssUsers.pl:113
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:129
+#, c-format
msgid "Postfix mail server"
-msgstr "Freastalaí Printéir"
+msgstr ""
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
+msgid "PostgreSQL or MariaDB database server"
msgstr ""
-#: share/meta-task/compssUsers.pl:124
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:142
+#, c-format
msgid "Network Computer server"
-msgstr "Cláréadan Gréasán"
+msgstr ""
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr ""
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Timpeallacht Ghrafach"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "Stáisiún KDE"
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr ""
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "Stáisiún Gnome"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr ""
-#: share/meta-task/compssUsers.pl:142
-#, fuzzy, c-format
-msgid "IceWm Desktop"
-msgstr "Deasc"
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Deasc Graphaicí Eile"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
+msgid "Window Maker, Fvwm, etc"
msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Uirlisí"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "Freastalaí SSH"
-#: share/meta-task/compssUsers.pl:177
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:225
+#, c-format
msgid "Webmin"
-msgstr "Seirbishí"
+msgstr ""
-#: share/meta-task/compssUsers.pl:178
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:226
+#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Cumraigh Idirlíon"
+msgstr ""
-#: share/meta-task/compssUsers.pl:182
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:230
+#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Cumraíocht Gréasánú"
+msgstr ""
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr ""
-#: share/meta-task/compssUsers.pl:187
-#, fuzzy, c-format
-msgid "Mandriva Wizards"
-msgstr "Bainteach le hIdirlíon"
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr ""
-#: share/meta-task/compssUsers.pl:188
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:236
+#, c-format
msgid "Wizards to configure server"
-msgstr "Cumraigh printéir"
+msgstr ""
#: steps.pm:85
#, c-format
@@ -627,7 +798,7 @@ msgstr ""
"Ta earraid ann, níl a fhios agam conas é a cheartú.\n"
"Lean ort, ar do phriacal féin."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -643,297 +814,355 @@ msgstr "Ag tosnú ar céim `%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Suiteáil Mandriva Linux %s"
+msgid "%s Installation %s"
+msgstr "Suiteáil %s %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr ""
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Roghnú Grúpa Pacáistí"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr ""
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Méid iomlán: %d / %d MB"
+msgid "Unselect All"
+msgstr ""
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Pacáiste mícheart"
+msgid "Total size: %d / %d MB"
+msgstr "Méid iomlán: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Leagan: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Méid: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Tábhacht: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr ""
-#: steps_gtk.pm:386
-#, fuzzy, c-format
+#: steps_gtk.pm:466
+#, c-format
msgid "due to missing %s"
-msgstr "kdesu ar iarraidh"
+msgstr ""
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr ""
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr ""
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr ""
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr ""
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr ""
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr ""
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr ""
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr ""
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr ""
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Feistiú"
-#: steps_gtk.pm:436
-#, fuzzy, c-format
+#: steps_gtk.pm:519
+#, c-format
msgid "Load/Save selection"
-msgstr "Roghnú Grúpa Pacáistí"
+msgstr ""
-#: steps_gtk.pm:437
-#, fuzzy, c-format
+#: steps_gtk.pm:520 steps_gtk.pm:525
+#, c-format
msgid "Updating package selection"
-msgstr "Roghnú Grúpa Pacáistí"
+msgstr ""
+
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
-#: steps_gtk.pm:442
-#, fuzzy, c-format
+#: steps_gtk.pm:530
+#, c-format
msgid "Minimal install"
-msgstr "Eirigh as Feistiú"
+msgstr ""
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Bainistíocht Bhogearraí"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr ""
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Ag Feistiú"
-#: steps_gtk.pm:499
-#, fuzzy, c-format
+#: steps_gtk.pm:590
+#, c-format
msgid "No details"
-msgstr "Sonraí"
+msgstr ""
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Am fagtha "
+msgid "Time remaining:"
+msgstr ""
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Ag meastú"
+msgid "(estimating...)"
+msgstr ""
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d pacáistí"
-msgstr[1] "%d pacáistí"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Coimriú"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Cumraigh"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
-#, fuzzy, c-format
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
+#, c-format
msgid "not configured"
-msgstr "Cumraigh"
+msgstr ""
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr ""
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Tharla earráid"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Roghnaigh leagan amach do mhéarchláir."
+msgid "Please choose your keyboard layout"
+msgstr "Roghnaigh leagan amach do mhéarchláir"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
+msgid "Here is the full list of available keyboards:"
msgstr ""
-#: steps_interactive.pm:129
-#, fuzzy, c-format
+#: steps_interactive.pm:153
+#, c-format
msgid "Install/Upgrade"
-msgstr "Feistiúi/Uadgrádaigh"
+msgstr ""
-#: steps_interactive.pm:130
-#, fuzzy, c-format
+#: steps_interactive.pm:157
+#, c-format
msgid "Is this an install or an upgrade?"
-msgstr "Feistigh nó uasgrádaigh ?"
+msgstr ""
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
-msgstr "Feistiú"
+msgstr "Suiteáil"
-#: steps_interactive.pm:136
-#, fuzzy, c-format
+#: steps_interactive.pm:161
+#, c-format
msgid "Upgrade %s"
-msgstr "Uasgrádaigh"
+msgstr ""
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
+msgid "Encryption key for %s"
msgstr ""
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
+msgid "Cancel installation, reboot system"
msgstr ""
-#: steps_interactive.pm:158
-#, fuzzy, c-format
-msgid "Encryption key for %s"
-msgstr "Ní mar a chéile na pasfhocail"
-
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "New Installation"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "Configuring IDE"
-msgstr "Ag cumraigh IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+msgid "CD/DVD"
+msgstr ""
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
msgstr ""
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -942,153 +1171,197 @@ msgid ""
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Ag curdach do na pacáistí atá ar fáil..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Lód"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Sábháil"
-#: steps_interactive.pm:415
-#, fuzzy, c-format
+#: steps_interactive.pm:438
+#, c-format
msgid "Bad file"
-msgstr "Lódáil comhad"
+msgstr ""
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Eirigh as Feistiú"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr ""
-#: steps_interactive.pm:536
-#, fuzzy, c-format
+#: steps_interactive.pm:576
+#, c-format
msgid "Type of install"
-msgstr "Roghnaigh pacáistí a feistiú ..."
+msgstr ""
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Le X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr ""
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr ""
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Ag Ullmhaigh feistiú"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Ag feistiál pacáiste %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr ""
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Lean ar aghaidh ar aon nós?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "Atriail"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr ""
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr ""
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "Roghnú Grúpa Pacáistí"
+msgstr ""
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "Ag feistiál pacáiste %s"
+msgstr ""
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Cumraíocht Iar-feistú"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Leasuithe"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr ""
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr ""
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1101,139 +1374,97 @@ msgid ""
"Do you want to install the updates?"
msgstr ""
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr ""
-
-#: steps_interactive.pm:719
-#, fuzzy, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Teip ar glaoch `fork': %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s ar %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Crua-earraí"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Carta Fuaim"
-#: steps_interactive.pm:902
-#, fuzzy, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "An bhfuil ceann eile agat?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Comhéadan grafach"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Gréasán agus Idirlíon"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Ionadaithe"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "cumraithe"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Leibhéal Slándála"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Bac slándála"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr ""
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "díchumasaithe"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr ""
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "Ag Ullmhaigh ríomhchlar thosnaithe..."
-
-#: steps_interactive.pm:1018
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Preparing initial startup program..."
msgstr ""
-#: steps_interactive.pm:1024
-#, fuzzy, c-format
-msgid "Do you want to use aboot?"
-msgstr "Céard a theastaíonn uait a dhéanamh?"
-
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
+msgid "Be patient, this may take a while..."
msgstr ""
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Cur isteach diosca folamh sa dioscthiomant %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr ""
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1241,46 +1472,16 @@ msgid ""
"Do you really want to quit now?"
msgstr ""
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Comhghairdeas"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Atosaigh"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, fuzzy, c-format
-msgid "Generate auto install floppy"
-msgstr "Cruthaigh flapach bootáil"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Athlódaigh"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Uathoibríoch"
-
-#: steps_interactive.pm:1112
-#, fuzzy, c-format
-msgid "Save packages selection"
-msgstr "Roghnú Grúpa Pacáistí"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1371,13 +1572,6 @@ msgid ""
"Users"
msgstr "Úsáideoirí"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Líonrú"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1419,64 +1613,3 @@ msgid ""
"_: Keep these entry short\n"
"Exit"
msgstr "Scoir"
-
-#~ msgid "All"
-#~ msgstr "Gach Rud"
-
-#~ msgid "TV card"
-#~ msgstr "Carta Telefís"
-
-#~ msgid "Boot"
-#~ msgstr "Tosú"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Deimniú"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "CRM"
-#~ msgstr "CRM"
-
-#~ msgid "New Theme"
-#~ msgstr "Téama Nua"
-
-#~ msgid "Skype"
-#~ msgstr "Skype"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "%d pacáistí"
-#~ msgstr[1] "%d pacáistí"
-
-#~ msgid "%d packages"
-#~ msgstr "%d pacáistí"
-
-#~ msgid "Language"
-#~ msgstr "Roghnaigh do theanga"
-
-#~ msgid "License"
-#~ msgstr "Ceadúnas"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "Roghnaigh rang feistiú"
-
-#~ msgid "Formatting"
-#~ msgstr "Formáidiú"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "Roghnaigh pacáistí ..."
-
-#~ msgid "Users"
-#~ msgstr "Úsáideoirí"
-
-#~ msgid "Networking"
-#~ msgstr "Líonrú"
-
-#~ msgid "Configure X"
-#~ msgstr "Cumraigh X"
diff --git a/perl-install/install/share/po/gl.po b/perl-install/install/share/po/gl.po
index 444d4bf59..e55fc30bd 100644
--- a/perl-install/install/share/po/gl.po
+++ b/perl-install/install/share/po/gl.po
@@ -1,29 +1,83 @@
-# translation of DrakX-gl.po to Galician
-# Jesús Bravo Álvarez (mdk) <jba@pobox.com>, 2001.
-# Leandro Regueiro <leandro.regueiro@gmail.com>, 2004, 2005, 2006.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Alejo Pacín Jul <alejopj@gmail.com>, 2009
+# Jesús Bravo Álvarez (mdk) <jba@pobox.com>, 2001
+# Leandro Regueiro <leandro.regueiro@gmail.com>, 2004-2006,2008
msgid ""
msgstr ""
-"Project-Id-Version: DrakX-gl\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2006-09-10 00:29+0100\n"
-"Last-Translator: Leandro Regueiro <leandro.regueiro@gmail.com>\n"
-"Language-Team: Galician <<gpul-traduccion@ceu.fi.udc.es>>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Galician (http://www.transifex.com/MageiaLinux/mageia/"
+"language/gl/)\n"
+"Language: gl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: KBabel 1.9.1\n"
-"X-Poedit-Language: Gallegan\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr ""
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr ""
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr ""
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr ""
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr ""
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr ""
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
msgstr "Ten soportes suplementarios adicionais?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -36,94 +90,57 @@ msgstr ""
"\n"
"Ten algún soporte de instalación suplementario para configurar?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Rede (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Rede (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Rede (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "Cal é o URL do sitio espello?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr ""
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Contactando co sitio web de Mandriva Linux para obte-la lista de sitios "
-"espello dispoñibles..."
-
-#: any.pm:233
-#, fuzzy, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Contactando co sitio web de Mandriva Linux para obte-la lista de sitios "
-"espello dispoñibles..."
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Escolla un sitio espello dende o que obte-los paquetes"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "Configuración de NFS"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr "Introduza o nome de máquina e o directorio do soporte NFS"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
-msgstr ""
+msgstr "Falta o nome de máquina"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
-msgstr ""
+msgstr "O directorio debe comezar por \"/\""
-#: any.pm:283
-#, fuzzy, c-format
+#: any.pm:234
+#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "Cal é o nome de máquina da montaxe NFS?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Directorio"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
-msgstr ""
+msgstr "Suplementario"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
@@ -132,47 +149,90 @@ msgstr ""
"Non se puido atopar un ficheiro de lista de paquetes neste sitio espello.\n"
"Asegúrese de que a localización é a correcta."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Buscando os paquetes que xa están instalados..."
+msgid "Core Release"
+msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Eliminando paquetes antes de actualizar..."
+msgid "Tainted Release"
+msgstr ""
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Buscando paquetes para actualizar..."
+msgid "Nonfree Release"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
msgstr ""
-"Seleccionou os seguintes servidores: %s\n"
-"\n"
-"\n"
-"Estes servidores están activados por defecto. Non teñen ningún problema de\n"
-"seguridade coñecido, pero pode ser que se lles atopen algúns. Nese caso,\n"
-"debe asegurarse de actualizar tan rápido como sexa posible.\n"
-"\n"
-"\n"
-"Desexa instalar estes servidores?\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Buscando os paquetes que xa están instalados..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Buscando paquetes para actualizar..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Eliminando paquetes antes de actualizar..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -180,88 +240,93 @@ msgid ""
"\n"
"Do you really want to remove these packages?\n"
msgstr ""
-"Vanse eliminar os seguintes paquetes para poder actualiza-lo seu sistema: %"
-"s\n"
+"Vanse eliminar os seguintes paquetes para poder actualiza-lo seu sistema: "
+"%s\n"
"\n"
"\n"
"Desexa eliminar estes paquetes?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Erro ó le-lo ficheiro %s"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "Renomeáronse os seguintes discos:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (chamado anteriormente %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Rede"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "Escolla un soporte"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "O ficheiro xa existe. ¿Desexa sobreescribilo?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Permiso denegado"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "Nome NFS incorrecto"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "O soporte %s é incorrecto"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Non se pode captura-la pantalla antes de face-las particións"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Poderanse facer capturas de pantalla despois de instalar en %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Instalación"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Configuración"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Tamén debe formatar %s"
@@ -285,107 +350,147 @@ msgstr "Activando a rede"
msgid "Bringing down the network"
msgstr "Desactivando a rede"
-#: media.pm:703 media.pm:714
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr "Por favor, agarde, recuperando o ficheiro"
+
+#: media.pm:704
#, c-format
-msgid "Downloading file %s..."
-msgstr "Descargando o ficheiro %s..."
+msgid "unable to add medium"
+msgstr "Incapaz de engadir o soporte"
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
-msgstr ""
+msgstr "Copiando algúns paquetes dos discos para un uso posterior"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Copiando"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "debe telo"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "importante"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "moi bo"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "bo"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "indiferente"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Non hai información xml do soporte \"%s\", só resultado parcial para o "
+"paquete %s"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Sen descrición"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"Non se pode instalar algúns paquetes solicitados por %s:\n"
+"%s"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "Estación de traballo"
+msgid "An error occurred:"
+msgstr "Ocorreu un erro:"
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Estación de Traballo de Oficina"
+msgid "A fatal error occurred: %s."
+msgstr "Ocorreu un erro moi grave: %s."
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "Do not ask again"
msgstr ""
-"Programas de oficina: procesadores de texto (OpenOffice.org Writer, Kword), "
-"follas de cálculo (OpenOffice.org Calc, Kspread), visualizadores de pdf, etc"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "Erraron %d transaccións de instalación"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Errou a instalación de paquetes:"
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "Estación de traballo"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Estación de Traballo de Oficina"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Programas de oficina: procesadores de texto (kword, abiword), follas de "
-"cálculo (kspread, gnumeric), visualizadores de pdf, etc"
+"Programas de oficina: procesadores de texto (LibreOffice Writer, Kword), "
+"follas de cálculo (LibreOffice Calc, Kspread), visualizadores de pdf, etc"
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Estación de xogos"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Programas de diversión: arcade, taboleiros, estratexia, etc"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Estación multimedia"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Programas de reproducción e edición de son e vídeo"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Estación de Internet"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
@@ -394,194 +499,194 @@ msgstr ""
"Conxunto de ferramentas para ler e enviar correo-e e novas (mutt, tin...) e "
"para navegar pola Web"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Ordenador de Rede (cliente)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Clientes para diferentes protocolos incluíndo ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Ferramentas para facilita-la configuración do ordenador"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Ferramentas de Consola"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Editores, shells, ferramentas de ficheiro, terminais"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Desenvolvemento"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr ""
"Bibliotecas de desenvolvemento de C e C++, programas e ficheiros include"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Documentación"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Libros e Howtos sobre Linux e o Software Libre"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Linux Standard Base. Soporte para aplicacións de terceiros"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Servidor Web"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:84
+#, c-format
msgid "Groupware"
msgstr "Groupware"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Servidor Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Cortalumes/Encamiñador"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Pasarela de Internet"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "Correo/Novas"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Servidor de correo Postfix, servidor de novas Inn"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Servidor de Directorio"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "Servidor FTP"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "Servidor de Nomes de Dominio e Información de Rede"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "Servidor de Compartimento de Impresoras e Ficheiros"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "Servidor NFS, servidor Samba"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Bases de datos"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "Servidores de bases de datos PostgreSQL e MySQL"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "Servidores de bases de datos PostgreSQL e MariaDB"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Correo-e"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Servidor de correo Postfix"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "Servidores de bases de datos PostgreSQL ou MySQL"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "Servidores de bases de datos PostgreSQL ou MariaDB"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Servidor de Redes de Ordenadores"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "Servidor NFS, servidor SMB, servidor Proxy, servidor ssh"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Ambiente Gráfico"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "Estación de Traballo KDE"
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -590,12 +695,12 @@ msgstr ""
"O Ambiente de Escritorio KDE, o ambiente gráfico básico cunha colección de "
"ferramentas que o acompañan"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "Estación de Traballo GNOME"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -604,58 +709,110 @@ msgstr ""
"Un ambiente gráfico cun conxunto de aplicacións amigables e ferramentas de "
"escritorio"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
#, c-format
-msgid "IceWm Desktop"
-msgstr "Escritorio IceWm"
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "Escritorio LXDE"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Outros Escritorios Gráficos"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm, etc"
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Utilidades"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "Servidor SSH"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Servidor de Configuración Remota Webmin"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "Monitorización/Utilidades de Rede"
-#: share/meta-task/compssUsers.pl:183
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:231
+#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr ""
"Ferramentas de monitorización, accounting de procesos, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Asistentes de Mandriva"
+msgid "Mageia Wizards"
+msgstr "Asistentes de Mageia"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Asistentes para configurar o servidor"
@@ -669,7 +826,7 @@ msgstr ""
"Ocorreu un erro, e o programa non sabe como manexalo de\n"
"maneira limpa. Continúe baixo a súa propia responsabilidade."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -689,205 +846,258 @@ msgstr "Chegando ó paso '%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Instalación de Mandriva Linux %s"
+msgid "%s Installation %s"
+msgstr "Instalación de %s %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> entre elementos"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Ó servidor Xorg lévalle tempo arrincar. Agarde..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
"O seu sistema ten poucos recursos. Pode que teña algún problema\n"
-"ó instalar Mandriva Linux. Se iso acontece, pode intenta-la instalación\n"
+"ó instalar %s. Se iso acontece, pode intenta-la instalación\n"
"en modo texto. Para iso, prema 'F1' cando arrinque dende o CDROM,\n"
"e escriba 'text'."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Selección de Soportes"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Instalar o Escritorio GNOME de %s"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Instalación personalizada"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "Escritorio GNOME"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Escritorio Personalizado"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Aquí ten unha vista previa do escritorio '%s'."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Prema nas imaxes para ter unha vista previa maior"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Selección de Grupos de Paquetes"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Selección individual de paquetes"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Tamaño total: %d / %d MB"
+msgid "Unselect All"
+msgstr "Deseleccionar Todo"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Paquete erróneo"
+msgid "Total size: %d / %d MB"
+msgstr "Tamaño total: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Versión: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Tamaño: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Importancia: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Non pode seleccionar/deseleccionar este paquete"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "debido a que falta %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "debido a %s non satisfeitas"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
-msgstr ""
+msgstr "tratando de promover %s"
-#: steps_gtk.pm:389
-#, fuzzy, c-format
+#: steps_gtk.pm:469
+#, c-format
msgid "in order to keep %s"
msgstr "para manter %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"Non pode seleccionar este paquete xa que non hai espacio dabondo para "
"instalalo"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Vanse instala-los seguintes paquetes"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Vanse elimina-los seguintes paquetes"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Este é un paquete obrigatorio, non se pode deseleccionar"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Non pode deseleccionar este paquete. Xa está instalado"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Non pode deseleccionar este paquete. Ten que ser actualizado"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Amosa-los paquetes seleccionados automáticamente"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Instalar"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Cargar/Gardar a selección"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Actualizando a selección de paquetes"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Instalación mínima"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Xestión do Software"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Escolla os paquetes que desexa instalar"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Instalando"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Sen detalles"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Tempo restante "
+msgid "Time remaining:"
+msgstr "Tempo restante:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Estimando"
+msgid "(estimating...)"
+msgstr "(estimando...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d paquete"
msgstr[1] "%d paquetes"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Resumo"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Configurar"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "non configurado"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
@@ -896,12 +1106,12 @@ msgstr ""
"Atopáronse os seguintes soportes de instalación.\n"
"Se desexa saltar algún deles, pode deseleccionalo agora."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
"Ten a opción de copiar os contidos dos CDs ó disco duro antes da "
@@ -909,95 +1119,91 @@ msgstr ""
"Esta continuará despois dende o disco duro e os paquetes permanecerán "
"dispoñibles unha vez que o sistema xa estea instalado."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "Copiar CDs enteiros"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Ocorreu un erro"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Escolla a disposición do seu teclado."
+msgid "Please choose your keyboard layout"
+msgstr "Escolla a disposición do seu teclado"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Esta é a lista completa dos teclados dispoñibles"
+msgid "Here is the full list of available keyboards:"
+msgstr "Esta é a lista completa dos teclados dispoñibles:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Instalar/Actualizar"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "¿É unha instalación ou unha actualización?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
-msgstr "Instalar"
+msgstr "Instalación"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Actualizar %s"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
+msgid "Encryption key for %s"
+msgstr "Clave de cifrado para %s"
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
+msgid "Cancel installation, reboot system"
+msgstr "Cancelar a instalación, rearrincar o sistema"
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
-msgstr "Clave de cifrado para %s"
+msgid "New Installation"
+msgstr "Nova Instalación"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Actualizar unha instalación previa (non recomendado)"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
-msgstr "Configurando IDE"
-
-#: steps_interactive.pm:231
-#, fuzzy, c-format
msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"Non hai espacio libre para 1MB de bootstrap! A instalación ha continuar, "
-"pero para arrincar o seu sistema, cómpre crear a partición bootstrap en "
-"DiskDrake."
-#: steps_interactive.pm:236
-#, fuzzy, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr ""
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
msgstr ""
-"Cómpre crear a PPC PReP Boot bootstrap ! A "
-"instalación vai continuar, pero para arrincar o sistema, terá que a "
-"partición bootstrap con DiskDrake"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1009,73 +1215,75 @@ msgstr ""
"Insira o CD-ROM que teña a etiqueta \"%s\" na unidade e prema Aceptar.\n"
"Se non o ten, prema Cancelar para omiti-la instalación deste CD-ROM."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Buscando os paquetes dispoñibles..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
+"O seu sistema non ten espacio libre dabondo para a instalación ou "
+"actualización (%dMB > %dMB)"
-#: steps_interactive.pm:405
-#, fuzzy, c-format
+#: steps_interactive.pm:428
+#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
"Elixa cargar ou gardar a selección de paquetes.\n"
-"O formato é o mesmo dos ficheiros xerados por auto_install."
+"O formato é o mesmo có dos ficheiros xerados por auto_install."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Cargar"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Gardar"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Ficheiro erróneo"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Instalación mínima"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr "Selección de Escritorio"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
+msgid "You can choose your workstation desktop profile."
+msgstr "Pode escoller o seu perfil de escritorio de estación de traballo."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "O tamaño seleccionado é maior có tamaño dispoñible"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Tipo de instalación"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1084,82 +1292,127 @@ msgstr ""
"Non seleccionou ningún grupo de paquetes.\n"
"Seleccione a instalación mínima que desexa:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Con X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
-msgstr "Ca documentación básica (¡recomendado!)"
+msgstr "Coa documentación básica (¡recomendado!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
+msgstr "Instalación realmente mínima (especialmente sen urpmi)"
+
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
msgstr ""
-#: steps_interactive.pm:596
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Preparando a instalación"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
-msgstr ""
+msgstr "Instalando o paquete %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Houbo un erro ó ordena-los paquetes:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "¿Continuar de tódolos xeitos?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "Volver tentar"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
-msgstr ""
+msgstr "Omitir este paquete"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
-msgstr ""
+msgstr "Omitir tódolos paquetes do soporte \"%s\""
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "Garda-la selección de paquetes"
+msgstr "Volver a soportes e selección de paquetes"
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "Houbo un erro ó instala-los paquetes:"
+msgstr "Houbo un erro ó instala-ls paquetes %s."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Configuración trala instalación"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
+"Asegúrese de que o soporte de Módulos de Actualización está na unidade %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Actualizacións"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Vanse instala-los seguintes paquetes"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Fallo ó engadi-lo soporte"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1180,134 +1433,80 @@ msgstr ""
"\n"
"Desexa instala-las actualizacións?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr ""
-"Contactando co sitio espello para obte-la lista dos paquetes dispoñibles..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Non se puido contactar co sitio espello %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s en %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Hardware"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Tarxeta de son"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Ten unha tarxeta de son ISA?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Execute \"alsaconf\" ou \"sndconfig\" despois da instalación para configura-"
-"la tarxeta de son"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Non se detectou ningunha tarxeta de son. Execute \"harddrake\" trala "
-"instalación"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Interface Gráfica"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Rede & Internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Proxys"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "configurado"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Nivel de Seguridade"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Cortalumes"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "activado"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "desactivado"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "Non configurou as X. Está seguro de que desexa isto?"
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "Preparando o cargador de arrinque..."
-
-#: steps_interactive.pm:1018
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Preparing initial startup program..."
msgstr ""
-"Semella ser que ten unha máquina Descoñecida ou de Tempos Prehistóricos, e o "
-"cargador de arrinque yaboot non ha funcionar nela. A instalación vai "
-"continuar, pero ha ter que usar BootX ou algún outro recurso para arrincar a "
-"máquina. O argumento do kernel para o sistema de ficheiros raíz é: root=%s"
-#: steps_interactive.pm:1024
+#: steps_interactive.pm:1073
#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Desexa usar aboot?"
+msgid "Be patient, this may take a while..."
+msgstr "Sexa paciente, isto pode levar un anaco..."
-#: steps_interactive.pm:1027
-#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Erro ó instalar aboot, \n"
-"desexa probar a forza-la instalación mesmo se iso destrúe a primeira "
-"partición?"
-
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
@@ -1316,17 +1515,17 @@ msgstr ""
"Con este nivel de seguridade, o acceso ós ficheiros da partición Windows "
"está restrinxido ó administrador."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Insira un disquete baleiro na unidade %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Creando un disquete de instalación automática..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1337,51 +1536,16 @@ msgstr ""
"\n"
"Desexa saír agora?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Noraboa"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Reiniciar"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Xerar un disquete de instalación automática"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"A instalación automática pode estar moi automatizada\n"
-"se así se desexa, nese caso tomará o control do disco\n"
-"duro (isto está pensado para a instalación noutro equipo).\n"
-"\n"
-"Pode preferir reproducir outra vez a instalación.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Reproducir"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automatizada"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Garda-la selección de paquetes"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1393,7 +1557,7 @@ msgstr "Lingua"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "Localización"
#: steps_list.pm:17
#, c-format
@@ -1449,7 +1613,7 @@ msgstr "Facendo as particións"
msgid ""
"_: Keep these entry short\n"
"Formatting"
-msgstr ""
+msgstr "Formatado"
#: steps_list.pm:29
#, c-format
@@ -1472,13 +1636,6 @@ msgid ""
"Users"
msgstr "Usuarios"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Rede"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1521,72 +1678,26 @@ msgid ""
"Exit"
msgstr "Sair"
-#~ msgid "All"
-#~ msgstr "Todas"
-
-#~ msgid "TV card"
-#~ msgstr "Tarxeta de TV"
-
-#~ msgid "Boot"
-#~ msgstr "Arrinque"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Autenticación"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "Invictus Firewall"
-#~ msgstr "Cortalumes Invictus"
-
-#, fuzzy
-#~ msgid "New Theme"
-#~ msgstr "Novo tema para Webmin"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "(%d paquete, %d MB)"
-#~ msgstr[1] "(%d paquetes, %d MB)"
-
-#~ msgid "%d packages"
-#~ msgstr "%d paquetes"
-
-#~ msgid "Language"
-#~ msgstr "Lingua"
-
-#~ msgid "License"
-#~ msgstr "Licenza"
-
-#~ msgid "Installation class"
-#~ msgstr "Clase de instalación"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "Estimando"
-
-#~ msgid "Choosing packages"
-#~ msgstr "Escollendo os paquetes"
-
-#~ msgid "Users"
-#~ msgstr "Usuarios"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "Cal é o URL do sitio espello?"
-#~ msgid "Networking"
-#~ msgstr "Rede"
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "O URL debe comezar por ftp:// ou por http://"
-#~ msgid "Configure X"
-#~ msgstr "Configura-las X"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr ""
+#~ "Contactando co sitio web de %s para obte-la lista de sitios espello "
+#~ "dispoñibles..."
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
#~ msgstr ""
-#~ "Non se puido acceder ós módulos do kernel correspondentes ó seu kernel "
-#~ "(falta o ficheiro %s), isto xeralmente significa que o seu disquete de "
-#~ "arrinque non está sincronizado co soporte de Instalación (cree un novo "
-#~ "disquete de arrinque)"
+#~ "Erro ó contactar co sitio web de %s para obte-la lista de sitios espello "
+#~ "dispoñibles"
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Escolla un sitio espello dende o que obte-los paquetes"
diff --git a/perl-install/install/share/po/he.po b/perl-install/install/share/po/he.po
index 5a0069737..d0207a333 100644
--- a/perl-install/install/share/po/he.po
+++ b/perl-install/install/share/po/he.po
@@ -1,35 +1,91 @@
-# translation of DrakX.po to Hebrew
-# Copyright (C) 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
-# This file is distributed under the GNU GPL license.
-# Ram Matityahu <linuxfun@email.com>, 2003.
-# nadav mavor <nadav@mavor.com>, 2003.
-# el-cuco <cuco3001@yahoo.com>, 2003.
-# Diego Iastrubni <iastrubn@actcom.co.il>, 2003.
-# dovix <dovix2003@yahoo.com>, 2004, 2005.
-# Itay Flikier <itayff@gmail.com>, 2005.
-# Dotan Kamber <kamberd@yahoo.com>, 2007.
-#
-#
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# Diego Iastrubni <iastrubn@actcom.co.il>, 2003
+# Dotan Kamber <kamberd@yahoo.com>, 2007-2008
+# dovix <dovix2003@yahoo.com>, 2004-2005
+# el-cuco <cuco3001@yahoo.com>, 2003
+# Itay Flikier <itayff@gmail.com>, 2005
+# nadav mavor <nadav@mavor.com>, 2003
+# Omer I.S. <omeritzicschwartz@gmail.com>, 2020-2021
+# Omer I.S. <omeritzicschwartz@gmail.com>, 2020-2021
+# Ram Matityahu <linuxfun@email.com>, 2003
+# Yaron Shahrabani <sh.yaron@gmail.com>, 2020-2021
msgid ""
msgstr ""
-"Project-Id-Version: DrakX\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-10-01 20:27+0200\n"
-"Last-Translator: Dotan Kamber <kamberd@yahoo.com>\n"
-"Language-Team: Hebrew\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2021-08-14 20:20+0000\n"
+"Last-Translator: Omer I.S. <omeritzicschwartz@gmail.com>\n"
+"Language-Team: Hebrew (http://www.transifex.com/MageiaLinux/mageia/language/"
+"he/)\n"
+"Language: he\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);"
+"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % "
+"1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "הצטרפו אלינו!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "הפכו אותה לשלכם!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "הבחירה שלך!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "כלים למשרד"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "בידור ביתי"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "לילדים"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "למשפחה!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "למפתחים!"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "תודה רבה!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "עִברו לחירות!"
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
-msgstr "האם יש לך מקורות התקנה נוספים?"
+msgstr "האם יש לך מאגרים נוספים להתקנה?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -37,95 +93,62 @@ msgid ""
"\n"
"Do you have a supplementary installation medium to configure?"
msgstr ""
-"המקורות הבאים נמצאו ויעשה בהם שימוש במהלך ההתקנה: %s.\n"
+"המאגרים שלהלן נמצאו ויעשה בהם שימוש במהלך ההתקנה: %s.\n"
"\n"
"\n"
-"האם יש לך מקורות נוספים להתקנה שברצונך להגדיר?"
+"האם יש לך אמצעי התקנה נוספים שברצונך להגדיר?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "תקליטור"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "רשת (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "רשת (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "רשת (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "כתובת URL של אתר המראה?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "על הכתובת להתחיל ב-//:ftp או ב-//:http"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr "מתחבר לאתר מנדריבה לינוקס בכדי לקבל רשימה של אתרי מראה זמינים..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr "כשל בחיבור לאתר מנדריבה לינוקס בכדי לקבל רשימה של אתרי מראה זמינים"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "עליך לבחור את אתר המראה ממנו יורדו החבילות"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "הגדרת NFS"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
-msgstr "נא להזין את שם המארח ואת התיקיה בה נמצא מקור ה-NFS"
+msgstr "נא לספק את שם המארח ואת תיקיית מאגר NFS שלך"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr "שם המארח חסר"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
-msgstr "על התיקיה להתחיל ב=\"/\""
+msgstr "על כל תיקייה להתחיל עם \"/\""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "שם המארח של עיגון ה-NFS?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
-msgstr "ספרייה"
+msgstr "תיקייה"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "תוספים"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
@@ -133,47 +156,90 @@ msgid ""
msgstr ""
"אין אפשרות למצוא קובץ המכיל רשימת חבילות במקור זה. נא לוודא שהכתובת תקינה."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "מחפש חבילות שכבר מותקנות..."
+msgid "Core Release"
+msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "מסיר חבילות לפני השדרוג..."
+msgid "Tainted Release"
+msgstr ""
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "מאתר חבילות שיש לשדרג..."
+msgid "Nonfree Release"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"בחירת החבילות כוללת את השרת(ים) הבא(ים): %s\n"
-"\n"
-"\n"
-"שרתים אלו יופעלו כברירת מחדל. יתכן שאין כרגע בעיות אבטחה ידועות,\n"
-" אך בעיות חדשות עלולות להתגלות מדי פעם. אנו ממליצים על שדרוג תקופתי\n"
-"של תוכנות אלו כדי להגן על המערכת.\n"
-"\n"
-"\n"
-"האם ברצונך להתקין שרתים אלו בשלב זה?\n"
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "כדאי להפעיל את \"%s\""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "‏\"%s\" מכילה תוכנה שאינה חופשית.\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "מאגר זה מספק עדכוני חבילות למאגר \"%s\""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "מתבצע חיפוש חבילות שכבר הותקנו..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "מתבצע איתור החבילות לשדרוג..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "מתבצעת הסרת חבילות לפני השדרוג..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -184,87 +250,92 @@ msgstr ""
"החבילות הבאות יוסרו כדי לאפשר את עדכון המערכת: %s\n"
"\n"
"\n"
-"האם באמת ברצונך להסיר חבילות אלה?\n"
+"להסיר חבילות אלו?\n"
+
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "שגיאה בקריאת הקובץ %s"
-#: any.pm:1055
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "שמות הכוננ(ים) הבאים שונו:"
+msgstr "שמות הכונן/ים הבאים שונו:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (השם הקודם הוא %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "רשת"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
-msgstr "עליך לבחור מקור"
+msgstr "נא לבחור מאגר"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "הקובץ כבר קיים. לשכתב?"
+msgstr "הקובץ כבר קיים. לדרוס אותו?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "הגישה נדחתה"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "שם NFS לא-תקין"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
-msgstr "המקור %s אינו תקין"
+msgstr "מאגר לא תקין %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
-msgstr "אין אפשרות לשמור תמונות מסך לפני חלוקה למחיצות"
+msgid "Cannot make screenshots before partitioning"
+msgstr "לא ניתן לעשות צילומי מסך לפני החלוקה למחיצות"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
-msgstr "ניתן למצוא את תמונות המסך אחרי התקנה ב%s"
+msgstr "אחרי ההתקנה, ניתן למצוא את צילומי המסך תחת %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "התקנה"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
-msgstr "הגדרות"
+msgstr "הגדרה"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
-msgstr "חובה עליך לפרמט גם את %s"
+msgstr "חובה לפרמט גם את %s"
#: interactive.pm:16
#, c-format
@@ -272,8 +343,8 @@ msgid ""
"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
"You can find some information about them at: %s"
msgstr ""
-"חלק מהחומרה במחשב שלך צריכה מנהלי התקן \"לא חופשיים\" כדי לפעול.\n"
-"אפשר למצוא מידע עליהם ב: %s"
+"חלק מהחומרה במחשב שלך זקוקה למנהלי התקנים ״קנייניים״ כדי לפעול.\n"
+"ניתן למצוא מידע עליהם בכתובת: %s"
#: interactive.pm:22
#, c-format
@@ -285,108 +356,145 @@ msgstr "מאתחל את שירותי הרשת"
msgid "Bringing down the network"
msgstr "מוריד את שירותי הרשת"
-#: media.pm:703 media.pm:714
+#: media.pm:397
#, c-format
-msgid "Downloading file %s..."
-msgstr "מוריד קובץ %s..."
+msgid "Please wait, retrieving file"
+msgstr "נא להמתין, הקובץ מתקבל"
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "אין אפשרות להוסיף את אמצעי ההתקנה"
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
-msgstr "מעתיק מספר חבילות על הכוננים לשימוש עתידי"
+msgstr "מספר חבילות על הכוננים מועתקות לשימוש עתידי"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
-msgstr "מעתיק את התקליטור לכונן הקשיח"
+msgstr "העתקה מתבצעת"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
-msgstr "חייב להיות"
+msgstr "חובה"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
-msgstr "חשוב"
+msgstr "עם חשיבות"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
-msgstr "מומלץ מאוד"
+msgstr "מעולה מאוד"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
-msgstr "מומלץ"
+msgstr "מעולה"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
-msgstr "לא הכרחי"
+msgstr "אולי"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr "אין מידע ב-xml למקור \"%s\", תוצאה חלקית בלבד עבור החבילה %s"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "ללא תיאור"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
-msgstr "לא ניתן להתקין חלק מהחבילות המבוקשות על ידי %s:\n"
+msgstr ""
+"לא ניתן להתקין חלק מהחבילות המבוקשות על ידי %s:\n"
"%s"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "אירעה שגיאה:"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "אירעה שגיאה חמורה: %s."
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr "לא לשאול שוב"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d העברות ההתקנה נכשלו"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "התקנת החבילות נכשלה:"
+
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "תחנת עבודה"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "תחנת עבודה משרדית"
-#: share/meta-task/compssUsers.pl:15
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"תוכנות משרד: מעבדי תמלילים (כתבן אופן אופיס, Kword), גיליונות אלקטרונים "
-"(גיליון אופן אופיס, Kspread),מציגי pdf, ועוד"
+"תכניות למשרד: מעבדי תמלילים (LibreOffice Writer,‏ Kword), גיליונות אלקטרונים "
+"(LibreOffice Calc,‏ Kspread), מציגי PDF, ועוד"
-#: share/meta-task/compssUsers.pl:16
-#, c-format
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"תוכנות משרד: מעבדי טקסט (kword, abiword), גיליונות אלקטרונים (kspread, "
-"gnumeric),מציגי pdf, ועוד"
-
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
-msgstr "תחנת עבודה למשחקים"
+msgstr "תחנת משחקים"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "תוכנות לבידור: ארקייד, לוח, אסטרטגיה, ועוד"
+msgstr "תכניות לבידור: ארקייד, לוח, אסטרטגיה, ועוד"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
-msgstr "תחנת עבודה למולטימדיה"
+msgstr "תחנת מולטימדיה"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
-msgstr "תוכנות להשמעה או עריכה של קול ווידאו"
+msgstr "תכניות להשמעה או עריכה של קול ווידאו"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
-msgstr "תחנת עבודה לאינטרנט"
+msgstr "תחנת אינטרנט"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
@@ -394,262 +502,314 @@ msgid ""
msgstr ""
"ערכת כלים לקריאה וכתיבת דוא\"ל וחדשות (pine, mutt, tin..) ולגלישה באינטרנט"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "מחשב רשת (לקוח)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "לקוחות לפרוטוקולים שונים כולל ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
-msgstr "כלי עזר לביצוע הגדרות המחשב שלך"
+msgstr "כלים להקלת ההגדרה של מחשבך"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "כלי מסוף"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "עורכים, מעטפות, כלי קבצים, מסופים"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "פיתוח"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
-msgstr "ספריות פיתוח בC וC++, תוכנות וקבצי include"
+msgstr "ספריות, תכניות וגם קבצים לפיתוח ב־C וב־C‏++"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
-msgstr "מסמכים"
+msgstr "תיעוד"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
-msgstr "ספרים ומדריכים לשימוש בלינוקס ותוכנה חופשית"
+msgstr "ספרים ומדריכים לשימוש בלינוקס ותכנה חופשית"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
-msgstr "תמיכה בתוכנות צד שלישי. Linux Standard Base"
+msgstr "‏Linux Standard Base. תמיכה ביישומי צד שלישי"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
-msgstr "שרת איחסון אתרים"
+msgstr "שרת רשת"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "עבודה בקבוצה"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "שרת Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "חומת אש/נתב"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "הגנת המערכת בעת חיבור לאינטרנט"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "דואר/קבוצות דיון"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "שרת דואר Postfix, שרת קבוצות דיון Inn"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
-msgstr "שרת ספרייה"
+msgstr "שרת תיקייה"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "שרת FTP"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "שרת שמות מתחם ומידע רשת"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "שרת שיתוף קבצים ומדפסות"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
-msgstr "שרת NFS, שרת סמבה"
+msgstr "שרת NFS, שרת Samba"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
-msgstr "מסדי נתונים"
+msgstr "מסד נתונים"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "שרת מסד נתונים MySQL או PostgreSQL"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "שרת מסד נתונים MariaDB או PostgreSQL"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "דואר"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "שרת דואר Postfix"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "שרת מסד נתונים MySQL או PostgreSQL"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "שרת מסד נתונים MariaDB או PostgreSQL"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "שרת מחשב רשת"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "שרת NFS, שרת SMB, שרת Proxy, שרת ssh"
+msgstr "שרת NFS, שרת SMB, שרת פרוקסי, שרת מתווך, שרת ssh"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "סביבה גרפית"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "סביבת העבודה KDE"
+msgid "Plasma Workstation"
+msgstr "סביבת שולחן העבודה Plasma"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr "סביבת שולחן עבודה פופולרית וקלה לשימוש עם מגוון יישומים נלווים"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "סביבת העבודה GNOME"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr "סביבת שולחן עבודה פופולרית וקלה לשימוש עם מגוון יישומים נלווים"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
#, c-format
-msgid "IceWm Desktop"
-msgstr "שולחן עבודה IceWm"
+msgid "Xfce Workstation"
+msgstr "סביבת שולחן העבודה Xfce"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "סביבת שולחןהעבודה MATE"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "סביבת שולחןהעבודה Cinnamon"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "סביבה גרפית המבוססת על GNOME"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "שולחן העבודה LXQt"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "שולחן העבודה הקליל בהסבה ל־QT מהדור הבא"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr "שולחן העבודה Enlightenment"
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "שולחן העבודה LXDE"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "סביבות עבודה אחרות"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "סביבות עבודה קלילות כגון Window Maker, Enlightenment, Fvwm, ועוד"
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
-msgstr "תוכנות שרות"
+msgstr "עזרים"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "שרת SSH"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "שרת הגדרה תצורה מרחוק Webmin"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "כלי הגדרת וניטור רשת"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
-msgstr "כלי ניטור, בקרת תהליכים, tcpdump , nmap, ..."
+msgstr "צג, כלי ניטור, בקרת תהליכים, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "אשפי מנדריבה"
+msgid "Mageia Wizards"
+msgstr "אשפי Mageia"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "אשפים להגדרת השרת שלך"
@@ -663,7 +823,7 @@ msgstr ""
"חלה תקלה, אך איני יודע איך לפתור אותה.\n"
"המשך הפעולה הינו באחריותך בלבד."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -671,320 +831,371 @@ msgid ""
"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
"\"\n"
msgstr ""
-"מספר חבילות חשובות לא הותקנו כראוי.\n"
-"כנראה שיש בעיה בכונן התקליטורים או בתקליטור(י) ההתקנה. יש לבדוק\n"
-"את תקליטור(י) ההתקנה על מחשב מותקן בעזרת \"rpm -qpl media/main/*.rpm\"\n"
+"מספר חבילות חשובות לא הותקנו כהלכה.\n"
+"ייתכן וישנה בעיה בכונן התקליטורים או בתקליטור ההתקנה.\n"
+"יש לבדוק את תקליטור ההתקנה במחשב מותקן באמצעות \"rpm -qpl media/main/*.rpm"
+"\"\n"
#: steps_auto_install.pm:71 steps_stdio.pm:27
#, c-format
msgid "Entering step `%s'\n"
-msgstr "נכנס לשלב `%s'\n"
+msgstr "כניסה לשלב „%s”\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "התקנת מנדריבה לינוקס %s"
+msgid "%s Installation %s"
+msgstr "%s התקנה %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> בין רכיבים"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "שרת Xorg מופעל לאט. נא להמתין..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"המערכת שלך בעלת משאבים נמוכים. במהלךהתקנת מנדריבה לינוקס עלולות להופיע\n"
-"בעיות. במקרה שכזה, ניתן להתקין בעזרת ממשק טקסטואלי. להתקנה טקסטואלית יש \n"
-"ללחוץ על מקש F1 כאשר מאתחלים מהתקליטור ולהכניס 'text' בשורת הפקודה."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "בחירת מאגר"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "התקנת %s שולחן העבודה של Plasma"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "התקנת %s שולחן העבודה GNOME"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "התקנה מותאמת אישית"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "שולחן העבודה Plasma"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "שולחן העבודה GNOME"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "שולחן עבודה בהתאמה אישית"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "הנה תצוגה מקדימה של שולחן העבודה %s"
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "יש ללחוץ על התמונה כדי להגדיל את התצוגה המקדימה"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
-msgstr "בחירת קבוצת חבילות לפי נושא"
+msgstr "בחירת קבוצת חבילות"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
-msgstr "בחירת חבילות באופן פרטני"
+msgstr "בחירת חבילות יחידות"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "גודל כללי: %d / %d MB"
+msgid "Unselect All"
+msgstr "ביטול בחירת הכול"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "חבילה פגומה"
+msgid "Total size: %d / %d MB"
+msgstr "גודל כולל: %d / %d מ״ב"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "גרסה: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "גודל: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
-msgstr "%d KB\n"
+msgstr "%d ק״ב\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "חשיבות: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "אי אפשר לבחור/לבטל את החבילה הזו"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "בגלל שחסר %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "עקב תלות שלא מולאה %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
-msgstr "מנסה לקדם %s"
+msgstr "קידום %s בניסיון"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
-msgstr "בכדי לשמור %s"
+msgstr "על מנת לשמור %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr "אי אפשר לבחור בחבילה זו מכיוון שלא נותר מספיק מקום פנוי להתקינה"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "החבילות הבאות עומדות להיות מותקנות"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "החבילות הבאות עומדות להיות מוסרות"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "זוהי חבילה בסיסית, אי אפשר לבטל את בחירתה"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "אין אפשרות לבטל חבילה זו מכיוון שהיא כבר מותקנת"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "לא ניתן לבטל את בחירת חבילה זו, חובה לשדרג אותה"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "הראה חבילות שנבחרו באופן אוטומטי"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "התקנה"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "טעינת/שמירת אזור נבחר"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
-msgstr "עדכון בחירת חבילות"
+msgstr "עדכון החבילות הנבחרות"
+
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
-#: steps_gtk.pm:442
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
-msgstr "התקנה מינימלית"
+msgstr "התקנה חסכונית"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
-msgstr "תוכנות"
+msgstr "ניהול תוכנה"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
-msgstr "עליך לבחור את החבילות שברצונך להתקין:"
+msgstr "נא לבחור את החבילות שברצונך להתקין"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
-msgstr "מתקין"
+msgstr "התקנה"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "ללא פרטים"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "זמן נותר "
+msgid "Time remaining:"
+msgstr "הזמן שנותר:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "נותרו"
+msgid "(estimating...)"
+msgstr "(מתבצע שיערוך...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d חבילה"
msgstr[1] "%d חבילות"
+msgstr[2] "%d חבילות"
+msgstr[3] "%d חבילות"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
-msgstr "סיכום ובדיקת הגדרות"
+msgstr "סיכום"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
-msgstr "הגדרות"
+msgstr "הגדרה"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "לא מוגדר"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-"מקורות התוכנה הבאים זמינים להתקנה.\n"
-"באפשרותך לדלג על חלק מהמקורות על ידי ביטול הסימונים המתאימים."
+"מאגרי ההתקנה שלהלן נמצאו.\n"
+"אם ברצונך לדלג על כמה מהם, ניתן לבטל את סימונם כעת."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
"ניתן להעתיק את תכולת התקליטורים לכונן הקשיח לפני תחילת ההתקנה.\n"
"אם אפשרות זו מופעלת, ההתקנה תמשיך מהכונן הקשיח, וכל החבילות מתקליטורי ההתקנה "
"יהיו זמינות אחרי סיום ההתקנה מהכונן הקשיח."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "העתקת תקליטורים שלמים"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
-msgstr "חלה שגיאה"
+msgstr "אירעה שגיאה"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "בשלב זה עליך להגדיר את פריסת המקלדת שלך:"
+msgid "Please choose your keyboard layout"
+msgstr "נא לבחור את פריסת המקלדת שלך"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "להלן הרשימה המלאה של המדפסות הזמינות"
+msgid "Here is the full list of available keyboards:"
+msgstr "להלן רשימת המקלדות הזמינות המלאה:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
-msgstr "התקנה/עדכון"
+msgstr "התקנה/שדרוג"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
-msgstr "האם זו התקנה או שידרוג?"
+msgstr "התקנה או שדרוג?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "התקנה"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
-msgstr "שידרוג %s"
+msgstr "שדרוג %s"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr "שדרוג מהפצת 32ביט להפצת 64ביט אינו נתמך"
+msgid "Encryption key for %s"
+msgstr "מפתח הצפנה עבור %s"
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr "שרוג מהפצת 64ביט להפצת 32 ביט אינו נתמך"
+msgid "Cancel installation, reboot system"
+msgstr "ביטול ההתקנה, הפעלת המערכת מחדש"
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
-msgstr "מפתח הצפנה עבור %s"
+msgid "New Installation"
+msgstr "התקנה חדשה"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "שדרוג התקנה קודמת (לא מומלץ)"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
-msgstr "מגדיר IDE"
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+msgid "CD/DVD"
msgstr ""
-"לא נמצא מקום פנוי עבור bootstrap בגודל 1MB! ההתקנה תמשיך, אבל בכדי לאתחל את "
-"המערכת שלך, יהיה עליך ליצור מחיצת bootstrap באופן ידני בעזרת DiskDrake"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+msgid "Configuring CD/DVD"
msgstr ""
-"עליך ליצור PPC PReP Boot bootstrap! ההתקנה תמשיך, אבל בכדי לאתחל את המערכת "
-"יהיה עליך ליצור מחיצת bootstrap באופן ידני בעזרת DiskDrak "
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -992,25 +1203,23 @@ msgid ""
"done.\n"
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
-"יש להחליף תקליטור!\n"
-"\n"
-"עליך להכניס את התקליטור \"%s\" לכונן\n"
-"ולאחר מכן ללחוץ על כפתור \"אישור\". אם תקליטור זה אינו ברשותך,\n"
-"עליך ללחוץ על כפתור \"ביטול\" בכדי לדלג על התקנת חבילות אלו."
+"יש להחליף את התקליטור!\n"
+"נא להכניס את התקליטור בשם \"%s\" לכונן וללחוץ על אישור כשסיימת.\n"
+"אם אינו ברשותך, יש ללחוץ על ביטול כדי למנוע התקנה מתקליטור זה."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
-msgstr "מחפש חבילות זמינות..."
+msgstr "מתבצע חיפוש אחר חבילות זמינות..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
-msgstr "למערכת שלך לא נותר די מקום להתקנה או שדרוג (%dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
+msgstr "למערכת שלך אין מספיק שטח פנוי להתקנה או לשדרוג (%d מ״ב > %d מ״ב)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
@@ -1019,53 +1228,52 @@ msgstr ""
"עליך לבחור באם לטעון או לשמור את בחירת החבילות.\n"
"מבנה הקובץ זהה לקובץ auto_install הנוצר באופן אוטומטי."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
-msgstr "הספק"
+msgstr "טעינה"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
-msgstr "שמור"
+msgstr "שמירה"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "קובץ לא-תקין"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr "התקנת שולחן העבודה KDE של מנדריבה"
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr "התקנת שולחן העבודה GNOME של מנדריבה"
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
+#: steps_interactive.pm:459
#, c-format
-msgid "Custom install"
-msgstr "התקנה מותאמת אישית"
+msgid "Desktop Selection"
+msgstr "בחירת שולחן עבודה"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
-"באפשרותך לבחור את מתאר שולחן העבודה של התחנה שלך: KDE, GNOME או מותאם אישית"
+msgid "You can choose your workstation desktop profile."
+msgstr "אפשר לבחור את פרופיל שולחן העבודה לתחנת העבודה שלך."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "הגודל הנבחר גדול יותר מהמקום הזמין"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "סוג ההתקנה"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1074,82 +1282,129 @@ msgstr ""
"לא נבחרה אף קבוצה של חבילות.\n"
"נא לבחור את ההתקנה המינימלית שברצונך לבצע:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "עם סביבה גרפית (X)"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "להתקין את החבילות המומלצות"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
-msgstr "עם מסמכים בסיסיים (מומלץ!)"
+msgstr "עם תיעוד בסיסי (מומלץ!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "התקנה מינימלית אמיתית (בייחוד לא urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "השדרוג בהכנות..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
-msgstr "מכין את ההתקנה"
+msgstr "ההתקנה בהכנות"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
-msgstr "מתקין חבילה %s"
+msgstr "החבילה %s בהליכי התקנה"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
-msgstr "התרחשה שגיאה בסידור חבילות:"
+msgstr "הייתה שגיאה בסידור החבילות:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
-msgstr "האם להמשיך בכל מקרה?"
+msgstr "להמשיך בכל זאת?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
-msgstr "ניסיון נוסף"
+msgstr "ניסיון חוזר"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
-msgstr "דלג על חבילה זו"
+msgstr "דילוג על חבילה זו"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
-msgstr "דלג על כל החבילות ממקור \"%s\""
+msgstr "דילוג על כל החבילות ממקור \"%s\""
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
-msgstr "חזרה לבחירת מקורות וחבילות"
+msgstr "חזרה לבחירת מאגרים וחבילות"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
-msgstr "חלה שגיאה בהתקנת החבילה %s"
+msgstr "הייתה שגיאה בהתקנת החבילה %s."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
-msgstr "מבצע הגדרות לאחר-התקנה"
+msgstr "הגדרה שלאחר ההתקנה"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
-msgstr "נא לודא שהמקור לעידכונים בכונן %s"
+msgstr "נא לוודא שהמאגר לעדכוני המודולים נמצא בכונן %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "עדכונים"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "כעת אפשר להגדיר את המאגרים המקוונים."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "מאפשר לך להתקין עדכוני אבטחה."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"להגדרת המאגרים הללו, יש צורך בחיבור תקין לאינטרנט.\n"
+"\n"
+"להגדיר את מאגרי העדכון?"
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "החבילות הבאות עומדות להיות מותקנות"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "לנסות שוב?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "הוספת המאגרים נכשלה"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1165,149 +1420,99 @@ msgstr ""
"ההפצה,\n"
"ועשויות להכיל עדכוני אבטחה ו/או עדכוני תוכנה חשובים.\n"
"\n"
-"להורדת חבילות אלה נדרש חיבור אינטרנט עובד. האם ברצונך לעדכן את המערכת בשלב "
-"זה ?"
-
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "מתחבר לאתר המראה כדי לקבל את רשימת החבילות הזמינות..."
+"להורדת חבילות אלה נדרש חיבור אינטרנט עובד. לעדכן את המערכת בשלב זה?"
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "לא יכול להתחבר לאתר המראה %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s על %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "חומרה"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "כרטיס קול"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "האם יש לך כרטיס קול ISA?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"עליך להריץ את \"alsaconf\" או \"sndconfig\" אחרי ההתקנה בכדי להגדיר את כרטיס "
-"הקול שלך"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "לא זוהו כרטיסי קול. יש לנסות את האשף \"harddrake\" לאחר ההתקנה"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "ממשק גרפי"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "רשת ואינטרנט"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "שרתים מתווכים"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "מוגדר"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
-msgstr "סף האבטחה המבוקש:"
+msgstr "רמת אבטחה"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "חומת אש"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "פועל"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "מנותק"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
-msgstr "לא הוגדר ממשק גרפי (X). האם אכן ברצונך לבחור אפשרות זו?"
-
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "מכין את מנהל האתחול..."
+msgstr "לא הוגדר ממשק גרפי (X). לבחור אפשרות זו?"
-#: steps_interactive.pm:1018
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"נראה כי יש לך מכונת OldWorld או מכונה לא מזוהה, טוען המערכת yaboot לא יעבוד "
-"במקרה זה. ההתקנה תמשך אבל יהיה עליך להשתמש ב-BootX או באמצעי אחר לאתחול "
-"המערכת. משנה גלעין המערכת למערכת קבצי השורש הוא: root=%s"
+msgid "Preparing initial startup program..."
+msgstr "תכנית ההפעלה הראשונית בהכנות..."
-#: steps_interactive.pm:1024
+#: steps_interactive.pm:1073
#, c-format
-msgid "Do you want to use aboot?"
-msgstr "האם ברצונך להשתמש בaboot?"
+msgid "Be patient, this may take a while..."
+msgstr "יש להתאזר בסבלנות, זה עלול לקחת זמן..."
-#: steps_interactive.pm:1027
-#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"שגיאה בהתקנת aboot,\n"
-"האם לנסות לאלץ את ההתקנה אפילו אם המחיצה הראשונה עלולה להיהרס?"
-
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
-msgstr "ברמת אבטחה זו, גישה לקבצים במחיצת החלונות תתאפשר רק למנהל המערכת."
+msgstr "ברמת אבטחה זו, הגישה לקבצים במחיצת Windows תוגבל למנהל בלבד."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "נא להכניס תקליטון ריק לכונן %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
-msgstr "יוצר תקליטון הפעלה אוטומטית..."
+msgstr "נוצר תקליטון להתקנה אוטומטית..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1316,72 +1521,37 @@ msgid ""
msgstr ""
"חלק מהשלבים לא הושלמו.\n"
"\n"
-"האם באמת ברצונך לצאת עכשיו?"
+"לצאת עכשיו?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
-msgstr "ברכותינו!"
+msgstr "ברכות"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "הפעלה מחדש"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "בניית תקליטון הפעלה אוטומטית"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"יש באפשרותך לבצע התקנות חוזרות באופן אוטומטי לחלוטין.\n"
-"במקרה זה יימחק כל תוכן הכונן הקשיח!!\n"
-"תכונה זו שימושית להתקנת המערכת על מספר רב של מחשבים.\n"
-"\n"
-"באם אינך רוצה במחיקת כל תוכן הכונן הקשיח יש לבחור במנגנון שחזור ההתקנה.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "שחזור התקנה"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "אוטומטי"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "שמירת בחירת החבילות"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
msgid ""
"_: Keep these entry short\n"
"Language"
-msgstr "בחירת שפה"
+msgstr "שפה"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr "התאמה למקום"
+msgstr "המקמה"
#: steps_list.pm:17
#, c-format
msgid ""
"_: Keep these entry short\n"
"License"
-msgstr "הסכם משתמש"
+msgstr "רישיון"
#: steps_list.pm:18
#, c-format
@@ -1416,7 +1586,7 @@ msgstr "מקלדת"
msgid ""
"_: Keep these entry short\n"
"Security"
-msgstr "הגדרות אבטחה"
+msgstr "אבטחה"
#: steps_list.pm:25
#, c-format
@@ -1430,7 +1600,7 @@ msgstr "חלוקה למחיצות"
msgid ""
"_: Keep these entry short\n"
"Formatting"
-msgstr "מאתחל"
+msgstr "תבניות"
#: steps_list.pm:29
#, c-format
@@ -1444,7 +1614,7 @@ msgstr "בחירת חבילות"
msgid ""
"_: Keep these entry short\n"
"Installing"
-msgstr "מתקין"
+msgstr "התקנה"
#: steps_list.pm:34
#, c-format
@@ -1453,13 +1623,6 @@ msgid ""
"Users"
msgstr "משתמשים"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "עבודה ברשת"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1479,14 +1642,14 @@ msgstr "הגדרת X"
msgid ""
"_: Keep these entry short\n"
"Summary"
-msgstr "סיכום ובדיקת הגדרות"
+msgstr "סיכום"
#: steps_list.pm:44 steps_list.pm:45
#, c-format
msgid ""
"_: Keep these entry short\n"
"Services"
-msgstr "שרותים"
+msgstr "שירותים"
#: steps_list.pm:46
#, c-format
@@ -1502,8 +1665,14 @@ msgid ""
"Exit"
msgstr "יציאה"
-#~ msgid "All"
-#~ msgstr "הכל"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "הכתובת של אתר המַּראָה?"
+
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "על הכתובת להתחיל עם ‏ftp://‎ ‏או ‏‏http://‎"
-#~ msgid "TV card"
-#~ msgstr "כרטיס טלוויזיה"
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "יש לבחור אתר מראָה לקבלת החבילות דרכו"
diff --git a/perl-install/install/share/po/hi.po b/perl-install/install/share/po/hi.po
index 27f7fbea1..e12aaf06e 100644
--- a/perl-install/install/share/po/hi.po
+++ b/perl-install/install/share/po/hi.po
@@ -1,172 +1,231 @@
-# translation of DrakX-hi.po to हिन्दी, भारत (Hindi, India)
-# Copyright (C) 2003,2004 Free Software Foundation, Inc.
-# धनञ्जय शर्मा (Dhananjaya Sharma) <dysxhi@yahoo.co.in>, 2003, 2004.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Panwar108 <caspian7pena@gmail.com>, 2020
+# धनञ्जय शर्मा (Dhananjaya Sharma) <dysxhi@yahoo.co.in>, 2003-2004
msgid ""
msgstr ""
-"Project-Id-Version: DrakX-hi\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2004-04-04 21:54+0530\n"
-"Last-Translator: धनञ्जय शर्मा (Dhananjaya Sharma) <dysxhi@yahoo.co.in>\n"
-"Language-Team: हिन्दी (Hindi) <dysxhi@yahoo.co.in>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2020-07-24 16:08+0000\n"
+"Last-Translator: Panwar108 <caspian7pena@gmail.com>\n"
+"Language-Team: Hindi (http://www.transifex.com/MageiaLinux/mageia/language/"
+"hi/)\n"
+"Language: hi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: any.pm:155
-#, fuzzy, c-format
-msgid "Do you have further supplementary media?"
-msgstr "कया आपके पास एक और है ?"
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: ../../advertising/02_IM_mageia.pl:1
#, c-format
-msgid ""
-"The following media have been found and will be used during install: %s.\n"
-"\n"
-"\n"
-"Do you have a supplementary installation medium to configure?"
+msgid "Make it yours!"
msgstr ""
-#: any.pm:166
+#: ../../advertising/03_IM_mageia.pl:1
#, c-format
-msgid "CD-ROM"
-msgstr "सीडी-रॉम"
+msgid "Your choice!"
+msgstr ""
-#: any.pm:167
-#, fuzzy, c-format
-msgid "Network (HTTP)"
-msgstr "%s नेटवर्क"
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
-#: any.pm:168
-#, fuzzy, c-format
-msgid "Network (FTP)"
-msgstr "%s नेटवर्क"
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
-#: any.pm:169
+#: ../../advertising/06_IM_mageia.pl:1
#, c-format
-msgid "Network (NFS)"
+msgid "For kids"
msgstr ""
-#: any.pm:211
+#: ../../advertising/07_IM_mageia.pl:1
#, c-format
-msgid "URL of the mirror?"
+msgid "For family!"
msgstr ""
-#: any.pm:217
+#: ../../advertising/08_IM_mageia.pl:1
#, c-format
-msgid "URL must start with ftp:// or http://"
+msgid "For developers!"
msgstr ""
-#: any.pm:228
+#: ../../advertising/09_IM_mageia.pl:1
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
+msgid "Thank you!"
msgstr ""
-"उपलब्ध मिररों की सूची को प्राप्त करने के लिए मैनड्रिव लिनक्स वेब-स्थल से सम्पर्क किया जा "
-"रहा है..."
-#: any.pm:233
-#, fuzzy, c-format
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr ""
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
+#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
msgstr ""
-"उपलब्ध मिररों की सूची को प्राप्त करने के लिए मैनड्रिव लिनक्स वेब-स्थल से सम्पर्क किया जा "
-"रहा है..."
-#: any.pm:243
+#: any.pm:162
#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "एक मिरर का चयन करें जहाँ से पैकेजों को प्राप्त करना है"
+msgid "Network (HTTP)"
+msgstr ""
-#: any.pm:273
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
+msgstr ""
+
+#: any.pm:164
+#, c-format
+msgid "Network (NFS)"
+msgstr ""
+
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr ""
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr ""
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr ""
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr ""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr ""
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "डिरेक्ट्री"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr ""
-#: any.pm:341
-#, fuzzy, c-format
+#: any.pm:300
+#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
-msgstr "%s को %s पर नहीं पाया जा सका"
+msgstr ""
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "पहिले से संसाधित पैकेजों को देखा जा रहा है..."
+msgid "Core Release"
+msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
+msgid "Tainted Release"
+msgstr ""
+
+#: any.pm:329
+#, c-format
+msgid "Nonfree Release"
msgstr ""
-#: any.pm:424
+#: any.pm:367
+#, c-format
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "पहिले से संसाधित पैकेजों को देखा जा रहा है..."
+
+#: any.pm:593
#, c-format
msgid "Finding packages to upgrade..."
msgstr "उन्नयन के लिये पैकेजों को खोजा जा रहा है..."
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:612
#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+msgid "Removing packages prior to upgrade..."
msgstr ""
-"आपने निम्नलिखित सर्वर(सर्वरो) का चयन किया है: %s\n"
-"\n"
-"\n"
-"इन सर्वरों को डिफ़ाल्ट के तौर पर सक्रिय किया जाता है । इनमें कोई ज्ञात सुरक्षा-संबंधी खामी "
-"नहीं है,\n"
-"परन्तु कुछ नये दोष मिल सकते है । ऐसी अवस्था में, अति शीघ्र-से-शीघ्र\n"
-"जितना सम्भव हो, आप उनन्यन कर लें।\n"
-"\n"
-"\n"
-"क्या आप वास्तव में इन सर्वरों को संसाधित करना चाहते है?\n"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -179,82 +238,87 @@ msgstr ""
"\n"
"क्या वास्तव में इन पैकेजों को हटाना चाहते है?\n"
-#: any.pm:1055
-#, fuzzy, c-format
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "%s संचिका को पढ़ने में त्रुटि"
+
+#: any.pm:1283
+#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "निम्नलिखित पैकेजों का संसाधन करना आवश्यक है:\n"
+msgstr ""
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr ""
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "एचटीटीपी"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "एफटीपी"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "एनएफ़एस"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "नेटवर्क"
-#: any.pm:1137
-#, fuzzy, c-format
+#: any.pm:1365
+#, c-format
msgid "Please choose a media"
-msgstr "कृपया चयन करें"
+msgstr ""
-#: any.pm:1153
-#, fuzzy, c-format
+#: any.pm:1381
+#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "फाईल पहले से है पुन बनाएँ"
+msgstr ""
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "अनुमति नहीं है"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr ""
-#: any.pm:1226
-#, fuzzy, c-format
+#: any.pm:1454
+#, c-format
msgid "Bad media %s"
-msgstr "%s माध्यम को जोड़ा गया"
+msgstr ""
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "विभाजनीकरण के पूर्व स्क्रीन-चित्र-माला को नहीं लिया जा सकता है"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "%s में संसाधन के उपरान्त स्क्रीन चित्र-माला उपलब्ध होगी"
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
-msgstr "संसाधन हो रहा है"
+msgstr ""
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "संरचना"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "आपको %s को भी एकसार करना चाहिए"
@@ -279,107 +343,141 @@ msgstr "नेटवर्क को लाया जा रहा है"
msgid "Bringing down the network"
msgstr "नेटवर्क को लाया जा रहा है"
-#: media.pm:703 media.pm:714
-#, fuzzy, c-format
-msgid "Downloading file %s..."
-msgstr "संचिकायें प्रेषित की जा रही..."
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr ""
-#: media.pm:861
-#, fuzzy, c-format
+#: media.pm:797
+#, c-format
msgid "Copying in progress"
-msgstr "खोज जारी है"
+msgstr "कॉपी किया जा रहा है"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "होना चाहिए"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "महत्वपूर्ण"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "बहुत अच्छा"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "बहुत अच्छा"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "हो सकता है"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "कोई वर्णन नहीं"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "एक त्रुटि हो गयी है"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "एक घातक त्रुटि घटित हुई है: %s "
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d संसाधन क्रिया-कलाप असफ़ल"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "कार्यकेंद्र"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "ऑफ़िस कार्यकेन्द्र"
-#: share/meta-task/compssUsers.pl:15
-#, fuzzy, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
-msgstr ""
-"ऑफ़िस के कार्यक्रम: शब्दसंसाधक (केवर्ड, आबीवर्ड), स्प्रेडशीट (केस्प्रेड, जीन्यूमेरिक), पीडीएफ़ "
-"अवलोक्क, इत्यादि"
-
-#: share/meta-task/compssUsers.pl:16
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"ऑफ़िस के कार्यक्रम: शब्दसंसाधक (केवर्ड, आबीवर्ड), स्प्रेडशीट (केस्प्रेड, जीन्यूमेरिक), पीडीएफ़ "
-"अवलोक्क, इत्यादि"
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "खेल स्टेशन"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "मनोरंजक कार्यक्रम: आरकेड, बोर्ड, व्यूह-रचना, इत्यादि "
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "मल्टीमीडीया केन्द्र"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "ध्वनि और वीडीयो के खेलने वाले/संपादन करने वाले कार्यक्रम"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "इन्टरनेट केन्द्र"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
@@ -388,205 +486,205 @@ msgstr ""
"विपत्र और समाचारों को पढ़ने और भेजने के लिए (मट, टिन...) और वेब को ब्राउज़ करने के लिए "
"औज़ारों का समूह"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "नेटवर्क कम्प्यूटर (ग्राहक)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "एस०एस०एच० को शामिल करते हुए विभिन्न प्रोटोकॉलों के लिए ग्राहक"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "आपके कम्प्यूटर की संरचना कार्य को सहज बनाने हेतु अनेक औजार"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "कन्सोल के औज़ार"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "अनेकों संपादक, कोश, संचिका औजार, टर्मिनल"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "विकास"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "सी और सी++ विकास लेखागार, कार्यक्रम और इन्क्लूड संचिकायें"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "प्रलेखन"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "लिनक्स और मुक्त सॉफ़्टवेयर पर किताबें और कैसे-करेंअस्तकें"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "एल०एस०बी०"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "लिनक्स मानकीकरण आधार ! त्रितीय पक्ष कार्यक्रमों को समर्थन"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "वेब सर्वर"
-#: share/meta-task/compssUsers.pl:72
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:80
+#, c-format
msgid "Apache"
-msgstr "रास्ता"
+msgstr ""
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "ग्रुपवेयर"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "कोलाब सर्वर"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "अग्नि-भीतिका/रूटर"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "इन्टरनेट गेटवे"
-#: share/meta-task/compssUsers.pl:83
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:92
+#, c-format
msgid "Mail/News"
-msgstr "/संचिका (F)/नवीन (_N)"
+msgstr ""
-#: share/meta-task/compssUsers.pl:84
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:93
+#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "पोस्टफ़िक्स विपत्र सर्वर"
+msgstr ""
-#: share/meta-task/compssUsers.pl:87
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:97
+#, c-format
msgid "Directory Server"
-msgstr "निर्देशिका जिससे पुनःस्थापन करना है"
+msgstr ""
-#: share/meta-task/compssUsers.pl:91
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:102
+#, c-format
msgid "FTP Server"
-msgstr "एन०टी०पी० सर्वर"
+msgstr "एफटीपी सर्वर"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr ""
-#: share/meta-task/compssUsers.pl:95
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:107
+#, c-format
msgid "DNS/NIS"
-msgstr "डीएनएस"
+msgstr ""
-#: share/meta-task/compssUsers.pl:96
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:108
+#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "डोमेन नाम सर्वर"
+msgstr ""
-#: share/meta-task/compssUsers.pl:99
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:112
+#, c-format
msgid "File and Printer Sharing Server"
-msgstr "प्रिंटर सर्वर"
+msgstr ""
-#: share/meta-task/compssUsers.pl:100
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:113
+#, c-format
msgid "NFS Server, Samba server"
-msgstr "सॉबा सर्वर"
+msgstr ""
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "डाटाबेस"
-#: share/meta-task/compssUsers.pl:104
-#, fuzzy, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "पोस्टग्रीसीक्यूअल या माईसीक्यूअल डाटाबेस सर्वर"
+#: share/meta-task/compssUsers.pl:118
+#, c-format
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr ""
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "वेब/एफ़०टी०पी०"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "आपाचे, प्रो-एफ़०टी०पी०डी०"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "विपत्र"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "पोस्टफ़िक्स विपत्र सर्वर"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
+msgid "PostgreSQL or MariaDB database server"
msgstr "पोस्टग्रीसीक्यूअल या माईसीक्यूअल डाटाबेस सर्वर"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "नेटवर्क कम्प्यूटर सर्वर"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "एन०एफ़०एस० सर्वर, एस०एम०बी० सर्वर, प्रोक्सी सर्वर, एस०एस०एच० सर्वर"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "सचित्र वातावरण"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "केडीई कार्यकेन्द्र"
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr "के डेस्कटाप वातावरण, मूलभूत सचित्र वातावरणसंलग्न औजारों के एक समूह के साथ"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "गनोम कार्यकेन्द्र"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -594,60 +692,112 @@ msgid ""
msgstr ""
"एक सचित्र वातावरण, उपयोगकर्ता-मित्रवत कार्यक्रमों के समुच्चय और डेस्कटाप औजारों के साथ"
-#: share/meta-task/compssUsers.pl:142
-#, fuzzy, c-format
-msgid "IceWm Desktop"
-msgstr "डेस्कटाप"
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "अन्य सचित्र डेस्कटाप"
-#: share/meta-task/compssUsers.pl:147
-#, fuzzy, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "आईसीडब्लूएम, विण्डो मेकर, एनलाइटमेन्ट, एफ़वीडब्लूएम, इत्यादि"
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "यूटिलिटीज़"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "एसएसएच सर्वर"
-#: share/meta-task/compssUsers.pl:177
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:225
+#, c-format
msgid "Webmin"
-msgstr "वेबकैम"
+msgstr ""
-#: share/meta-task/compssUsers.pl:178
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:226
+#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "टर्मिनल सर्वर संरचना"
+msgstr ""
-#: share/meta-task/compssUsers.pl:182
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:230
+#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "नेटवर्क मॉनीट्रिंग"
+msgstr ""
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr ""
-#: share/meta-task/compssUsers.pl:187
-#, fuzzy, c-format
-msgid "Mandriva Wizards"
-msgstr "<b>मैनड्रिव स्टोर</b>"
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr ""
-#: share/meta-task/compssUsers.pl:188
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:236
+#, c-format
msgid "Wizards to configure server"
-msgstr "\"%s\" प्रिंटर की संरचना में असफ़ल !"
+msgstr ""
#: steps.pm:85
#, c-format
@@ -659,7 +809,7 @@ msgstr ""
"किया जायें ।\n"
"अपने जोखिम पर जारी रहें । "
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -679,385 +829,425 @@ msgstr "`%s' चरण में प्रवेश \n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "मैनड्रिव लिनक्स संसाधन %s"
+msgid "%s Installation %s"
+msgstr ""
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> इकाईयों के मध्य "
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"आपका सिस्टम साधनों के अभाव से ग्रसित है । मैनड्रिव लिनक्स को संसाधित करने में, \n"
-"आपको कुछ समस्या हो सकती है । यदि ऐसा होता है, तो आप इसके बजाय एक पाठ-संसाधनको करके "
-"देख सकते है, ऐसा करने के लिए, \n"
-"सीडीरॉम से बूट होने के समय `F1' को दबायें, और फ़िर `text' को इन्टर करें ।"
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "मीडिया चयन"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "GNOME डेस्कटॉप"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "पैकेज समूह चयन"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "अलग-अलग पैकेजों का चयन"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "कुल आकार: %d / %d एम०बी०"
+msgid "Unselect All"
+msgstr "सभी को अचयनित करें"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "निकृष्ट पैकेज"
+msgid "Total size: %d / %d MB"
+msgstr "कुल आकार: %d / %d एम०बी०"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "संस्मरण: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "आकार:"
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d केबी\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "महत्ता: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "आप इस पैकज को चयनित/अचयनित नहीं कर सकते है"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "%s विलुप्त होने के कारण"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "असन्तुष्ट %s के कारण"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "%s को प्रोत्साहित करने का प्रयास"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "%s को रखने के लिए"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr "आप इस पैकज का चयन नहीं कर सकते है क्योंकि और अधिक स्थान संसाधन के लिए नहीं बचा है"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "निम्नलिखित पैकजों का संसाधन होने जा रहा है"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "निम्नलिखित पैकेजों को हटाया जाने वाला है"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "यह एक अति आवश्यक पैकेज है, इसे अचयनित नहीं किया जा सकता है"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "आप इस पैकेज को अचयनित नहीं कर सकते है । इसे पहिले से ही संसाधित किया जा चुका है"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "इस पैकज को अचयनित नहीं करा जा सकता है । इसे उन्नयन किया जाना चाहिए"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "स्वतः चयनित पैकेजों को दिखायें"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "संसाधन"
-#: steps_gtk.pm:436
-#, fuzzy, c-format
+#: steps_gtk.pm:519
+#, c-format
msgid "Load/Save selection"
-msgstr "पैकेज चयन"
+msgstr ""
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "चयनित पैकेजों का उन्नयन किया जा रहा है"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "निम्नतम संसाधन"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "सॉफ़्टवेयर प्रबंधक"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "उन पैकेजों का चयन करें जिन्हें आप संसाधित करना चाहते है"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "संसाधन हो रहा है"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "कोई विवरण नहीं"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "शेष समय"
+msgid "Time remaining:"
+msgstr ""
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "अनुमान लगाया जा रहा है"
+msgid "(estimating...)"
+msgstr ""
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d पैकेज"
-msgstr[1] "%d पैकेज"
+msgstr[0] ""
+msgstr[1] ""
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "सारांश"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "संरचना"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "संरचित नहीं"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr ""
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "एक त्रुटि हो गयी है"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
+msgid "Please choose your keyboard layout"
msgstr "कृपया अपने की-बोर्ड खाका का चयन करें ।"
-#: steps_interactive.pm:99
-#, fuzzy, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "यह है उपलब्ध देशों की सम्पूर्ण सूची"
+#: steps_interactive.pm:109
+#, c-format
+msgid "Here is the full list of available keyboards:"
+msgstr ""
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "संसाधन/उन्नयन"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "यह एक संसाधन या एक उन्नयन है?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "संसाधन"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "उन्नयन %s"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
+msgid "Encryption key for %s"
+msgstr "%s के लिए गूढ़लिखित कुँजी"
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
+msgid "Cancel installation, reboot system"
msgstr ""
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
-msgstr "%s के लिए गूढ़लिखित कुँजी"
+msgid "New Installation"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
-msgstr "आई०डी०ई०"
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
-msgstr "आईडीई की संरचना की जा रही है"
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+msgid "CD/DVD"
msgstr ""
-"१ एमबी बूटस्ट्रैप के लिए कोई मुक्त स्थान नहीं ! संसाधन जारी रहेगा, परन्तु आपके तंत्र को बूट "
-"करने के लिए, आपको डिस्कड्रैक से एक बूटस्ट्रैप विभाजन का निर्माण करना होगा "
-#: steps_interactive.pm:236
-#, fuzzy, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
msgstr ""
-"१ एमबी बूटस्ट्रैप के लिए कोई मुक्त स्थान नहीं ! संसाधन जारी रहेगा, परन्तु आपके तंत्र को बूट "
-"करने के लिए, आपको डिस्कड्रैक से एक बूटस्ट्रैप विभाजन का निर्माण करना होगा "
-#: steps_interactive.pm:328
-#, fuzzy, c-format
+#: steps_interactive.pm:354
+#, c-format
msgid ""
"Change your Cd-Rom!\n"
"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
"done.\n"
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
-"अपनी सीडी-रॉम को परिवर्तित करें !\n"
-"\n"
-"कृपया \"%s\" लेबिल वाली सीडी-रॉम को अपनी ड्राइव में डालें और डालने के उपरान्त ठीक को "
-"दबायें ठीक को दबायें ।\n"
-"यदि आपके पास यह नहीं है, तो इस सीडी-रॉम से संसाधन ना करने के लिए निरस्त को दबायें ।"
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "उपलब्ध पैकेजों को खोज़ा जा रहा है..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-#: steps_interactive.pm:405
-#, fuzzy, c-format
+#: steps_interactive.pm:428
+#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-"कृपया चयन करें कि फ़्लापी पर पैकेजों को अधिभारण या सुरक्षित किया जायें ।\n"
-"इसका प्रारूप स्वतः_संसाधन के लिए निर्मित फ़्लापियों की भांति होता है ।"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "लोड"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "सुरक्षित"
-#: steps_interactive.pm:415
-#, fuzzy, c-format
+#: steps_interactive.pm:438
+#, c-format
msgid "Bad file"
-msgstr "फ़ाइल लोड करें"
+msgstr ""
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "गनोम"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "निम्नतम संसाधन"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr "डेस्कटॉप चयन"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "चयनित आकार उपलब्ध स्थान से ज्यादा है"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "संसाधन का प्रकार"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1066,82 +1256,126 @@ msgstr ""
"आपने पैकेजों के किसी भी समूह का चयन नहीं किया है ।\n"
"कृपया कम-से-कम जितना आप चाहते है उतने संसाधन का चयन करें:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "एक्स के साथ"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "आधार-भूत प्रलेखन के साथ (संस्तुति की जाती है !)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "वास्तविक निम्नत्तम संसाधन (विशेषकर कोई यू०आर०पी०एम०आई० नहीं)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "संसाधन का निर्माण किया जा रहा है"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "%s पैकेज का संसाधन हो रहा है"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "पैकेजों के आदेश देने में एक त्रुटि हो गयी है:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "कुछ भी हो जारी रहा जायें?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
-msgstr ""
+msgstr "पुनः प्रयास करें"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr ""
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr ""
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "पैकेजों के चयन को सुरक्षित करें"
+msgstr ""
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "पैकेजों के संसाधन में एक त्रुटि हो गयी है:"
+msgstr ""
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "संसाधन-उपरान्त संरचना"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "उन्नयन"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "निम्नलिखित पैकजों का संसाधन होने जा रहा है"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "असफ़लता जब माध्यम को जोड़ा जा रहा था..."
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1162,146 +1396,97 @@ msgstr ""
"\n"
"क्या आप इन अपडेटों को संसाधित करना चाहते है ?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "उपलब्ध पैकेजों की सूची प्राप्त करने के लिए मिरर से सम्पर्क स्थापित किया जा रहा है..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "%s मिरर प्रणाली से संबंध स्थापित करने में असमर्थ"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s पर %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "हार्डवेयर"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "सांउड कार्ड"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "क्या आपके पास एक आई०एस०ऐ० सांउड कार्ड है?"
-
-#: steps_interactive.pm:904
-#, fuzzy, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr "संसाधन के उपरान्त \"sndconfig\" को अपने साउण्ड कार्ड को संरचित करने के लिए चलायें"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"कोई साउण्ड कार्ड नहीं खोजा जा सका । संसाधन के उपरान्त \"harddrake\" को उपयोग करके देखें"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "सचित्र इन्टरफ़ेस"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "नेटवर्क और इन्टरनेट"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "प्रोक्सियां"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "संरचित"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "सुरक्षा स्तर"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "अग्नि-भीतिका"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "सक्रिय है"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "निष्क्रिय"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "आपने एक्स को संरचित नहीं किया है । क्या आप वास्तव में ऐसा चाहते है?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "बूटलोडर को तैयार किया जा रहा है..."
-
-#: steps_interactive.pm:1018
-#, fuzzy, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Preparing initial startup program..."
msgstr ""
-"आपके पास लगता है कि एक प्राचीन जगत की या अज्ञात मशीन है,\n"
-"याबूट बूटलोडर आपके लिए कार्य नहीं करेगा ।\n"
-"संसाधन जारी रहेगा, परन्तु आपको अपनी मशीन को बूट करने के लिए, \n"
-"बूट-एक्स या किसी अन्य साधन की आवश्यकता होगी"
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "क्या आप ऐबूट का का उपयोग करना चाहते है?"
-
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
+msgid "Be patient, this may take a while..."
msgstr ""
-"एक बूट को संसाधित करने में त्रुटि, \n"
-"संसाधन को बलपूर्वक करने का प्रयास करे, चाहे कि प्रथम विभाजन नष्ट हो जायें?"
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr "इस सुरक्षा स्तर में, विण्डो विभाजन में संचिकाओं तक पहुँच सिर्फ़ प्रबंधक को हीप्राप्त है।"
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "%s में एक खाली फ़्लापी डालें"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "स्वतः संसाधन फ़्लापी का निर्माण किया जा रहा है..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1312,51 +1497,16 @@ msgstr ""
"\n"
"क्या आप वास्तव में बाहर निकलना चाहते है?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "बधाई हो"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "रीबूट"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "स्वतः संसाधान फ़्लापी का निर्माण किया जा रहा है"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"यदि आवश्यकता हो तो स्वतः संसाधन को पूर्णतया स्वचालित बनाया जा सकता है,\n"
-"ऐसी अवस्था में यह हार्ड ड्राइव पर पूर्ण अधिकार कर लेगा !!\n"
-"(यह समान संसाधन को अन्य मशीन पर संसाधित करने के लिए होता है)।\n"
-"\n"
-"आप हो सकता है कि संसाधन को रीप्ले करन चाहते हो।\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "पुनः चलाना"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "स्वचालित"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "पैकेजों के चयन को सुरक्षित करें"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1368,7 +1518,7 @@ msgstr "भाषा"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "स्थानीयकरण"
#: steps_list.pm:17
#, c-format
@@ -1447,13 +1597,6 @@ msgid ""
"Users"
msgstr "उपयोगकर्ताओ"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "नेटवर्किंग"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1496,67 +1639,6 @@ msgid ""
"Exit"
msgstr "निकास"
-#~ msgid "All"
-#~ msgstr "सभी"
-
-#~ msgid "TV card"
-#~ msgstr "टीवी कार्ड"
-
-#~ msgid "Boot"
-#~ msgstr "बूट"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "प्रमाणीकरण"
-
-#~ msgid "Gwenview"
-#~ msgstr "ग्वेनव्यू"
-
-#~ msgid "DrakVPN"
-#~ msgstr "ड्रैक वीपीएन"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "%d पैकेज"
-#~ msgstr[1] "%d पैकेज"
-
-#~ msgid "%d packages"
-#~ msgstr "%d पैकेज"
-
-#~ msgid "Language"
-#~ msgstr "भाषा"
-
-#~ msgid "License"
-#~ msgstr "प्रमाण-पत्र"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "संसाधन प्रकार का चयन करें"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "अनुमान लगाया जा रहा है"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "संसाधन करने हेतु पैकेजों का चयन करें"
-
-#~ msgid "Users"
-#~ msgstr "उपयोगकर्ताओ"
-
-#~ msgid "Networking"
-#~ msgstr "नेटवर्किंग"
-
-#~ msgid "Configure X"
-#~ msgstr "एक्स को संरचित करें"
-
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
-#~ msgstr ""
-#~ "आपके कर्नल के अनुरूप कर्नल मॉडयूलो तक नहीं पहुँचा जा सकता है ( %s संचिका विलुप्त है),"
-#~ "इसका सामान्यता अर्थ है कि आपकी बूट फ़्लापी संसाधन माध्यम के साथ ताल-बद्व नहीं है(कृपया "
-#~ "एक और नयी बूट फ़्लापी का निर्माण करें)"
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "एक मिरर का चयन करें जहाँ से पैकेजों को प्राप्त करना है"
diff --git a/perl-install/install/share/po/hr.po b/perl-install/install/share/po/hr.po
index d827eacff..738f091cc 100644
--- a/perl-install/install/share/po/hr.po
+++ b/perl-install/install/share/po/hr.po
@@ -1,28 +1,82 @@
-# Translation of DrakX to Croatian
-# Copyright (C) Croatian team
-# Translators: Danijel Studen <dstuden@vuka.hr>,Denis Lackovic <delacko@fly.srk.fer.hr>,Jerko Škifić <skific@riteh.hr>,Ljubomir Božić <ljubo108@vip.hr>,Nikola Planinac <>,Robert Vuković <robi@surfer.hr>,Sasa Poznanovic <sasa.poznanovic@vuka.hr>,Vedran Vyroubal <vedran.vyroubal@inet.hr>,Vinko Prelac <vinko@buka.hr>,Vlatko Kosturjak <kost@linux.hr>,Zoran Jankovic <zoran.jankovic@inet.hr>,
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# Ivica Kolić <ikoli@yahoo.com>, 2018
msgid ""
msgstr ""
-"Project-Id-Version: DrakX 0\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2005-01-04 21:25+CET\n"
-"Last-Translator: auto\n"
-"Language-Team: Croatian <lokalizacija@linux.hr>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Ivica Kolić <ikoli@yahoo.com>\n"
+"Language-Team: Croatian (http://www.transifex.com/MageiaLinux/mageia/"
+"language/hr/)\n"
+"Language: hr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: TransDict server\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;;\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-#: any.pm:155
-#, fuzzy, c-format
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Pridružite nam se!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr ""
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "Vaš izbor!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Uredski alati"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "Za djecu"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "Za obitelj!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "Za razvijatelje!"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Hvala vam!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Budite slobodni!"
+
+#: any.pm:151
+#, c-format
msgid "Do you have further supplementary media?"
-msgstr "Da li imate još koji?"
+msgstr ""
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -30,142 +84,152 @@ msgid ""
"\n"
"Do you have a supplementary installation medium to configure?"
msgstr ""
+"Slijedeći medij je pronađen i biti će korišten tijekom instalacije: %s.\n"
+"\n"
+"\n"
+"Imate li dodatni instalcijski medij za konfigurirati?"
-#: any.pm:166
+#: any.pm:162
#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
-#, fuzzy, c-format
msgid "Network (HTTP)"
-msgstr "Mreža"
+msgstr "Mreža (HTTP)"
-#: any.pm:168
-#, fuzzy, c-format
+#: any.pm:163
+#, c-format
msgid "Network (FTP)"
-msgstr "Mreža"
+msgstr "Mreža (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
+msgstr "Mreža (NFS)"
+
+#: any.pm:224
+#, c-format
+msgid "NFS setup"
msgstr ""
-#: any.pm:211
+#: any.pm:225
#, c-format
-msgid "URL of the mirror?"
+msgid "Please enter the hostname and directory of your NFS media"
msgstr ""
-#: any.pm:217
+#: any.pm:229
#, c-format
-msgid "URL must start with ftp:// or http://"
+msgid "Hostname missing"
msgstr ""
-#: any.pm:228
+#: any.pm:230
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
+msgid "Directory must begin with \"/\""
+msgstr "Direktorij mora počinjati sa \"/\""
+
+#: any.pm:234
+#, c-format
+msgid "Hostname of the NFS mount ?"
msgstr ""
-"Kontaktiram Mandriva Linux web site za dobivanje popisa raspoloživih mirrora"
-#: any.pm:233
-#, fuzzy, c-format
+#: any.pm:235
+#, c-format
+msgid "Directory"
+msgstr "Direktorij"
+
+#: any.pm:265
+#, c-format
+msgid "Supplementary"
+msgstr "Dodatak"
+
+#: any.pm:300
+#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+"Can't find a package list file on this mirror. Make sure the location is "
+"correct."
msgstr ""
-"Kontaktiram Mandriva Linux web site za dobivanje popisa raspoloživih mirrora"
-#: any.pm:243
+#: any.pm:325
#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Izaberite mirror sa kojeg želite skinuti pakete"
+msgid "Core Release"
+msgstr ""
-#: any.pm:273
+#: any.pm:327
#, c-format
-msgid "NFS setup"
+msgid "Tainted Release"
msgstr ""
-#: any.pm:274
+#: any.pm:329
#, c-format
-msgid "Please enter the hostname and directory of your NFS media"
+msgid "Nonfree Release"
msgstr ""
-#: any.pm:278
+#: any.pm:367
#, c-format
-msgid "Hostname missing"
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-#: any.pm:279
+#: any.pm:368
#, c-format
-msgid "Directory must begin with \"/\""
-msgstr ""
+msgid "You should enable \"%s\""
+msgstr "Trebate omogućiti \"%s\""
-#: any.pm:283
+#: any.pm:419
#, c-format
-msgid "Hostname of the NFS mount ?"
+msgid "\"%s\" contains the various pieces of the systems and its applications"
msgstr ""
-#: any.pm:284
+#: any.pm:420
#, c-format
-msgid "Directory"
-msgstr "Direktorij"
+msgid "\"%s\" contains non free software.\n"
+msgstr "%s\" sadrži neslobodni software.\n"
-#: any.pm:306
+#: any.pm:421
#, c-format
-msgid "Supplementary"
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
msgstr ""
-#: any.pm:341
-#, fuzzy, c-format
+#: any.pm:422
+#, c-format
msgid ""
-"Can't find a package list file on this mirror. Make sure the location is "
-"correct."
-msgstr "Ne mogu otvoriti %s: %s\n"
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
-#: any.pm:375
-#, fuzzy, c-format
-msgid "Looking at packages already installed..."
-msgstr "Ne možete odznačiti ovaj paket budući da je već instaliran"
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
-#: any.pm:382
+#: any.pm:429
#, c-format
-msgid "Removing packages prior to upgrade..."
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
msgstr ""
-#: any.pm:424
+#: any.pm:593
#, c-format
msgid "Finding packages to upgrade..."
msgstr "Tražim pakete koje mogu nadograditi"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
-#, fuzzy, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
-msgstr ""
-"Izabrali ste slijedeće poslužitelje: %s\n"
-"\n"
-"\n"
-"Ti poslužitelji biti će postavljeno aktivirani. Oni nemaju poznatih "
-"sigurnosnih\n"
-"propusta, ali neki novi mogu biti pronađeni. U tom slučaju, morate ga "
-"nadograditi\n"
-"što prije moguće.\n"
-"\n"
-"\n"
-"Da li zaista želite instalirati te poslužitelje?\n"
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Uklanjam paketa prije nadogradnje..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -173,83 +237,93 @@ msgid ""
"\n"
"Do you really want to remove these packages?\n"
msgstr ""
+"Slijedeći paketi će biti uklonjeni da bi dozvolili nadogradnju vašega "
+"sustava: %s\n"
+"\n"
+"\n"
+"Želite li doista ukloniti ove pakete?\n"
-#: any.pm:1055
-#, fuzzy, c-format
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Greška prilikom čitanja datoteke %s"
+
+#: any.pm:1283
+#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "Slijedeći paketi će biti instalirani"
+msgstr ""
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr ""
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
-#, fuzzy, c-format
+#: any.pm:1342
+#, c-format
msgid "NFS"
-msgstr "FS"
+msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Mreža"
-#: any.pm:1137
-#, fuzzy, c-format
+#: any.pm:1365
+#, c-format
msgid "Please choose a media"
-msgstr "Molim odaberite"
+msgstr "Molim izaberite medij"
-#: any.pm:1153
-#, fuzzy, c-format
+#: any.pm:1381
+#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "Datoteka već postoji. Da li da nju upotrijebim?"
+msgstr ""
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Pristup odbijen"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr ""
-#: any.pm:1226
-#, fuzzy, c-format
+#: any.pm:1454
+#, c-format
msgid "Bad media %s"
-msgstr "dodan medij %s"
+msgstr ""
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Ne mogu napraviti screenshotove prije particioniranja"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Screenshotovi će biti raspoloživi poslije instalaciju u %s"
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
-msgstr "Instaliram"
+msgstr "Instalacija"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Postavke"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Morate također formatirati %s"
@@ -273,302 +347,336 @@ msgstr "Podižem mrežu"
msgid "Bringing down the network"
msgstr "Onemogućujem mrežu"
-#: media.pm:703 media.pm:714
-#, fuzzy, c-format
-msgid "Downloading file %s..."
-msgstr "Šaljem datoteke..."
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr "Molim pričekajte, primam datoteku"
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "nije moguće dodati medij"
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
-msgstr ""
+msgstr "Kopiram neke pakete na diskove za buduću uporabu"
-#: media.pm:861
-#, fuzzy, c-format
+#: media.pm:797
+#, c-format
msgid "Copying in progress"
-msgstr "detektiran na portu %s"
+msgstr "Kopiranje u tijeku"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "potrebno"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "važno"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "vrlo lijepo"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "lijepo"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "možda"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Bez opisa"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "Radna stanica"
+msgid "An error occurred:"
+msgstr "Došlo je do greške:"
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Uredska radna stanica"
+msgid "A fatal error occurred: %s."
+msgstr "Nastupila je kobna pogreška: %s. "
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "Do not ask again"
+msgstr "Ne pitaj ponovo"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
msgstr ""
-"Uredski programi: tekst procesori (OpenOffice.org Writer, Kword), tablični "
-"kalkulatori (OpenOffice.org Calc, Kspread), pdf preglednici, itd"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Instalacija paketa nije uspjela:"
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "Radna stanica"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Uredska radna stanica"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Uredski programi: tekst procesori (kword, abiword), tablični kalkulatori "
-"(kspread, gnumeric), pdf preglednici, itd"
+"Uredski programi: tekst procesori (LibreOffice Writer, Kword), tablični "
+"kalkulatori (LibreOffice Calc, Kspread), pdf preglednici, itd"
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Igračka radna stanica"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Zabavni programi: arkade, ploče, strategije, itd"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Multimedijska stanica"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Zvučni i video svirački/uređivački programi"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Internet stanica"
-#: share/meta-task/compssUsers.pl:32
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:37
+#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-"Pribor alata za čitanje i slanje mail-a i news-a (pine, mutt, tin..) i za "
-"pregled Web-a"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Mrežno računalo (klijent)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Klijenti za razne protokole uključujući ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Alati za lako podešavanje vašeg računala"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Konzolni Alati"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Uređivači, ljuske, datotečni alati, terminali"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Razvoj"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "C i C++ razvojne biblioteke, programi i uključujuće datoteke"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Dokumentacija"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Knjige i Howto-i o Linux-u i slobodnom software-u"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr ""
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Posljužitelj weba"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Groupware"
-#: share/meta-task/compssUsers.pl:76
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:85
+#, c-format
msgid "Kolab Server"
-msgstr "NIS Poslužitelj"
+msgstr "Kolab poslužitelj"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Vatrozid/Ruter"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Internet gateway"
-#: share/meta-task/compssUsers.pl:83
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:92
+#, c-format
msgid "Mail/News"
-msgstr "/Datoteka/_Nova"
+msgstr "Pošta/Novosti"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Postfix mail poslužitelj, Inn news poslužitelj"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Poslužitelj imenika"
-#: share/meta-task/compssUsers.pl:91
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:102
+#, c-format
msgid "FTP Server"
-msgstr "NTP Poslužitelj"
+msgstr "FTP postužitelj"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr ""
-#: share/meta-task/compssUsers.pl:95
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:107
+#, c-format
msgid "DNS/NIS"
-msgstr "DNS/NIS "
+msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "Ime Domene i Mrežni Informacijki Poslužitelj (NIS)"
-#: share/meta-task/compssUsers.pl:99
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:112
+#, c-format
msgid "File and Printer Sharing Server"
-msgstr "Ispisni poslužitelj"
+msgstr ""
-#: share/meta-task/compssUsers.pl:100
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:113
+#, c-format
msgid "NFS Server, Samba server"
-msgstr "NIS Poslužitelj"
+msgstr ""
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Baza podataka"
-#: share/meta-task/compssUsers.pl:104
-#, fuzzy, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL ili MySQL poslužitelj baza"
+#: share/meta-task/compssUsers.pl:118
+#, c-format
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr ""
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache i Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Pošta"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Postfix poslužitelj pošte"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL ili MySQL poslužitelj baza"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL ili MariaDB poslužitelj baza"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Mrežni računalni poslužitelj"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "NFS poslužitelj, SMB poslužitelj, Proxy poslužitelj, SSH poslužitelj"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Grafičko Okružje"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE radna stanica"
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -576,12 +684,12 @@ msgid ""
msgstr ""
"K Radno Okružje, osnovno grafičko okružje sa kolekcijom pripadajućih alata"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "Gnome radna stanica"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -590,60 +698,112 @@ msgstr ""
"Grafička okružja sa korisnički prijateljskim skupom aplikacija i alatima za "
"radno okružje"
-#: share/meta-task/compssUsers.pl:142
-#, fuzzy, c-format
-msgid "IceWm Desktop"
-msgstr "Radna površina"
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Grafičko okruženje bazirano na GNOME-u"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "LXQt radno okruženje"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "LXDE radno okruženje"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Lagano grafičko okruženje"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Druga grafička radna okružja"
-#: share/meta-task/compssUsers.pl:147
-#, fuzzy, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm, itd"
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, itd."
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Pomoćni programi"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
+#, c-format
msgid "SSH Server"
-msgstr "NIS Poslužitelj"
+msgstr "SSH poslužitelj"
-#: share/meta-task/compssUsers.pl:177
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:225
+#, c-format
msgid "Webmin"
-msgstr "Servisi"
+msgstr ""
-#: share/meta-task/compssUsers.pl:178
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:226
+#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Prebaci postavke pisača"
+msgstr ""
-#: share/meta-task/compssUsers.pl:182
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:230
+#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Mrežne postavke"
+msgstr ""
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr ""
-#: share/meta-task/compssUsers.pl:187
-#, fuzzy, c-format
-msgid "Mandriva Wizards"
-msgstr "Mandriva Linux Kontrolni Centar"
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr "Mageia čarobnjaci"
-#: share/meta-task/compssUsers.pl:188
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:236
+#, c-format
msgid "Wizards to configure server"
-msgstr "Podešavam pisač \"%s\" ..."
+msgstr "Čarobnjaci za podešavanje poslužitelja"
#: steps.pm:85
#, c-format
@@ -654,7 +814,7 @@ msgstr ""
"Dogodila se greška, ali neznam kako s njom lijepo rukovati.\n"
"Nastavite dalje na vlastiti rizik."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -674,390 +834,443 @@ msgstr "Pokrećem korak `%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux instalacija %s"
+msgid "%s Installation %s"
+msgstr "%s instalacija %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> između elemenata"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
"Vaš sustav je slab na resursima. Možete imati nekih problem prilikom\n"
-"instalacije Mandriva Linux-a. Ukoliko se to desi, možete probati tekstualnu\n"
+"instalacije %s-a. Ukoliko se to desi, možete probati tekstualnu\n"
"instalaciju. Za to, pritisnite `F1' kada podižete CDROM, i unesite `text'."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Odabir medija"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Instaliraj %s Plasma radno okruženje"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Install %s GNOME radno okruženje"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Prilagođena instalacija"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Plasma radno okruženje"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "GNOME radno okruženje"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Prilagođeno radno okruženje"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Odabir grupe paketa"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Individualan odabir paketa"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Ukupna veličina: %d / %d MB"
+msgid "Unselect All"
+msgstr "Odselektiraj sve"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Loš paket"
+msgid "Total size: %d / %d MB"
+msgstr "Ukupna veličina: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Inačica: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Veličina: "
-#: steps_gtk.pm:347
-#, fuzzy, c-format
+#: steps_gtk.pm:426
+#, c-format
msgid "%d KB\n"
-msgstr "Veličina: %d KB\n"
+msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Značaj: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Ne možete označiti/odznačiti ovaj paket"
-#: steps_gtk.pm:386
-#, fuzzy, c-format
+#: steps_gtk.pm:466
+#, c-format
msgid "due to missing %s"
-msgstr "kdesu nedostaje"
+msgstr ""
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "zbog nezadovoljavajućeg %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "odabirem %s izabiranjem datoteka"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "kako bi se zadržalo %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"Ne možete označiti ovaj paket budući da nema dovoljno mjesta gdje ga se može "
"instalirati"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Slijedeći paketi će biti instalirani"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Slijedeći paketi će biti uklonjeni"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Budući da je ovo obvezni paket ne možete ga odznačiti"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Ne možete odznačiti ovaj paket budući da je već instaliran"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Ne možete odznačiti ovaj paket budući da ga treba nadograditi"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Prikaži automatski odabrane pakete"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Instaliraj"
-#: steps_gtk.pm:436
-#, fuzzy, c-format
+#: steps_gtk.pm:519
+#, c-format
msgid "Load/Save selection"
-msgstr "Premjesti označeno"
+msgstr ""
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Dograđujem izbor paketa"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Minimalna instalacija"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Upravitelj Softwareom"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Odaberite pakete koje želite instalirati"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Instaliram"
-#: steps_gtk.pm:499
-#, fuzzy, c-format
+#: steps_gtk.pm:590
+#, c-format
msgid "No details"
-msgstr "Detalji"
+msgstr ""
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Preostalo vrijeme"
+msgid "Time remaining:"
+msgstr "Preostalo vrijeme:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Procjenjujem"
+msgid "(estimating...)"
+msgstr ""
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d paketa"
-msgstr[1] "%d paketa"
+msgstr[0] "%d paklet"
+msgstr[1] "%dpaketa"
msgstr[2] "%d paketa"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Sažetak"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Podešavanje"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
-#, fuzzy, c-format
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
+#, c-format
msgid "not configured"
-msgstr "ponovno postavi"
+msgstr "nije podešeno"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
+"Slijedeći instalacijski mediji su pronađeni.\n"
+"Ako želite preskočiti nekog od njih, odzančite ih sada."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr ""
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Pojavila se greška"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Molim, izaberite raspored tipkovnice."
+msgid "Please choose your keyboard layout"
+msgstr "Molim, izaberite raspored tipkovnice"
-#: steps_interactive.pm:99
-#, fuzzy, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Ovdje je cijeli popis raspoloživih tipkovnica"
+#: steps_interactive.pm:109
+#, c-format
+msgid "Here is the full list of available keyboards:"
+msgstr "Lista svih dostupnih tipkovnica:"
-#: steps_interactive.pm:129
-#, fuzzy, c-format
+#: steps_interactive.pm:153
+#, c-format
msgid "Install/Upgrade"
msgstr "Instaliraj/Nadogradi"
-#: steps_interactive.pm:130
-#, fuzzy, c-format
+#: steps_interactive.pm:157
+#, c-format
msgid "Is this an install or an upgrade?"
-msgstr "Da li je ovo instalacija ili nadogradnja?"
+msgstr "Je li ovo instalacija ili nadogradnja?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Instaliraj"
-#: steps_interactive.pm:136
-#, fuzzy, c-format
+#: steps_interactive.pm:161
+#, c-format
msgid "Upgrade %s"
-msgstr "Dogradnja"
+msgstr "Nadogradnja %s"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
+msgid "Encryption key for %s"
msgstr ""
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
+msgid "Cancel installation, reboot system"
+msgstr "Otkaži instalaciju, ponovo podigni sustav"
-#: steps_interactive.pm:158
-#, fuzzy, c-format
-msgid "Encryption key for %s"
-msgstr "Enkripcijski ključ"
-
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "New Installation"
+msgstr "Nova instalacija"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "Configuring IDE"
-msgstr "Podešavam IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Nadogradi prethodnu instalaciju (ne preporuča se)"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"Nema slobodnog mjesta za 1 MB bootstrap! Instalacija će nastaviti, ali za "
-"podizanje vašeg sustava, trebati ćete napraviti bootstrap particiju u "
-"DiskDrake-u"
+"Instalacijski program je otkrio da vaš Linux sustav ne možebiti\n"
+"sigurno nadograđen na %s.\n"
+"\n"
+"Preporuča se nova instalacija koja će zamijeniti prethodnu.\n"
+"\n"
+"Upozorenje: napravite sigurnosnu kopiju vaših osobnih podataka prije nego "
+"izaberete \"Nova\n"
+"instalacija\"."
-#: steps_interactive.pm:236
-#, fuzzy, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
-msgstr ""
-"Nema slobodnog mjesta za 1 MB bootstrap! Instalacija će nastaviti, ali za "
-"podizanje vašeg sustava, trebati ćete napraviti bootstrap particiju u "
-"DiskDrake-u"
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
-#: steps_interactive.pm:328
-#, fuzzy, c-format
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "Podešavam CD/DVD"
+
+#: steps_interactive.pm:354
+#, c-format
msgid ""
"Change your Cd-Rom!\n"
"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
"done.\n"
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
-"Promjenite vaš Cd-Rom!\n"
-"\n"
-"Ubacite Cd-Rom označen \"%s\" u vaš pogon i pritisnite U redu kada "
-"završite.\n"
-"Ukoliko ga nemate, pritisnite Odustani kako bi izbjegli instalaciju sa ovog "
-"Cd-Rom-a."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Tražim dostupne pakete"
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
+"Vaš sustav nema dovoljno prostora za instalaciju ili nadogradnju (%dMB > "
+"%dMB)"
-#: steps_interactive.pm:405
-#, fuzzy, c-format
+#: steps_interactive.pm:428
+#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-"Molimo izaberite učitivanje ili spremanje izbora paketa na disketu.\n"
-"Format je isto kao auto_install napravljene diskete."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Učitaj"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Spremi"
-#: steps_interactive.pm:415
-#, fuzzy, c-format
+#: steps_interactive.pm:438
+#, c-format
msgid "Bad file"
-msgstr "Učitaj datoteku"
+msgstr ""
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr ""
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Minimalna instalacija"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr "Odabir radnog okruženja"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Izabrana veličina je veća nego raspoloživ prostor"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Tip instalacije"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1066,83 +1279,127 @@ msgstr ""
"Niste izabrali niti jednu grupu paketa\n"
"Izaberite minimalnu instalaciju ako želite"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Sa X-ima"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Instaliraj preporučene pakete"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Sa osnovnom dokumentacijom (preporučeno!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Stvarno malena instalacija (posebice bez urpmia)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Pripremam nadogradnju..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Pripremam instalaciju"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Instaliram paket %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Javila se greška prilikom sortiranja paketa:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Da ipak nastavim?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
-msgstr ""
+msgstr "Pokušaj ponovno"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
-msgstr ""
+msgstr "Preskoči ovaj paket"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
-msgstr ""
+msgstr "Preskoči sve pakete sa medija \"%s\""
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "Spremi odabir paketa"
+msgstr "Vratite se natrag na medij i izbor paketa"
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "Pojavila se greška kod instalacije paketa:"
+msgstr ""
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Postava nakon instalacije"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Nadogradnje"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Slijedeći paketi će biti instalirani"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Pokušati ponovno?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Provjeravam ovisnosti..."
+
+#: steps_interactive.pm:792
+#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
"have been updated after the distribution was released. They may\n"
@@ -1153,156 +1410,98 @@ msgid ""
"\n"
"Do you want to install the updates?"
msgstr ""
-"Imate mogućnost skidanja (downloada) paketa za dogradnju koji su\n"
-"izašli poslije nego što je distribucija postala raspoloživa.\n"
-"\n"
-"Dobit ćete sigurnosne popravke i popravke od grešaka, ali za nastavak\n"
-"trebate imati podešenu Internet vezu.\n"
-"\n"
-"Da li želite instalirati dogradnju?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Spajam se na mirror kako bih pribavio popis dostupnih paketa"
-
-#: steps_interactive.pm:719
-#, fuzzy, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Ne mogu napraviti fork: %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s na %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Sklopovlje"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Zvučna kartica"
-#: steps_interactive.pm:902
+#: steps_interactive.pm:972
#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Da li imate ISA zvučnu karticu?"
-
-#: steps_interactive.pm:904
-#, fuzzy, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Pokrenite \"sndconfig\" poslije instalacije za podešavanje vaše zvučne "
-"kartice"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Nije pronađena zvučna kartica. Probajte \"harddrake\" poslije instalacije"
-
-#: steps_interactive.pm:914
-#, fuzzy, c-format
msgid "Graphical interface"
-msgstr "X kod pokretanja sustava"
+msgstr "Grafičko sučelje"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Mreža i Internet"
-#: steps_interactive.pm:933
-#, fuzzy, c-format
+#: steps_interactive.pm:991
+#, c-format
msgid "Proxies"
-msgstr "Profil: "
+msgstr ""
-#: steps_interactive.pm:934
-#, fuzzy, c-format
+#: steps_interactive.pm:992
+#, c-format
msgid "configured"
-msgstr "ponovno postavi"
+msgstr "podešeno"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Sigurnosna Razina"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Vatrozid"
-#: steps_interactive.pm:967
-#, fuzzy, c-format
+#: steps_interactive.pm:1026
+#, c-format
msgid "activated"
-msgstr "Aktiviraj sada"
+msgstr "aktivirano"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "onemogućeno"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
-msgstr ""
+msgstr "Niste podesili X? jeste li sigurni da to doista želite?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "Pripremam bootloader"
-
-#: steps_interactive.pm:1018
-#, fuzzy, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Preparing initial startup program..."
msgstr ""
-"Čini se da imate OldWorld ili Nepoznato\n"
-" računalo, yaboot bootloader neće moći raditi kod vas.\n"
-"Instalacija će nastaviti, ali ćete morati\n"
-" koristiti BootX da podignete vaše računalo"
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Da li želite koristiti aboot?"
-
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Greška prilikom instalacije aboot-a, \n"
-"probati nasilno instalirati iako to može uništiti prvu particiju?"
+msgid "Be patient, this may take a while..."
+msgstr "Budite strpljivi, ovo može potrajati..."
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Umetnite praznu disketu u pogon %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Pravim auto instalacijsku disketu"
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1313,51 +1512,16 @@ msgstr ""
"\n"
"Želite li zaista završiti?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Čestitamo, pobijedili ste!"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Ponovno pokretanje sustava"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Napravi auto instalacijsku disketu"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Auto instalacija može biti potpuno automatska ukoliko želite,\n"
-"u tom slučaju će preuzeti hard disk!!\n"
-"(ovo znači za instalaciju na drugo računalo).\n"
-"\n"
-"Možete preferirati da ponovite instalaciju.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Ponovi"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automatski"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Spremi odabir paketa"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1369,7 +1533,7 @@ msgstr "Jezik"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "Lokalizacija"
#: steps_list.pm:17
#, c-format
@@ -1448,13 +1612,6 @@ msgid ""
"Users"
msgstr "Korisnici"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Mreža"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1497,63 +1654,18 @@ msgid ""
"Exit"
msgstr "Izađi"
-#~ msgid "All"
-#~ msgstr "Sve"
-
-#~ msgid "TV card"
-#~ msgstr "TV kartica"
-
-#~ msgid "Boot"
-#~ msgstr "Pokretani sustav"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Provjera autentičnosti"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "%d paketa"
-#~ msgstr[1] "%d paketa"
-#~ msgstr[2] "%d paketa"
-
-#~ msgid "%d packages"
-#~ msgstr "%d paketa"
-
-#~ msgid "Language"
-#~ msgstr "Jezik"
-
-#~ msgid "License"
-#~ msgstr "Licenca"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "Odaberite razred instalacije"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "Procjenjujem"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "Izabir instaliranih paketa"
-
-#~ msgid "Users"
-#~ msgstr "Korisnici"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "URL zrcala?"
-#~ msgid "Networking"
-#~ msgstr "Mreža"
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "URL mora počinjati sa ftp:// ili http://"
-#~ msgid "Configure X"
-#~ msgstr "Podesi X"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr "Kontaktiram %s web site za dobivanje popisa raspoloživih mirrora"
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
-#~ msgstr ""
-#~ "Ne mogu pristupiti kernel modulima koji odgovaraju vašem kernelu "
-#~ "(datoteka %s nedostaje), ovo obično znači da vaša disketa za dizanje "
-#~ "sustava nije usklađena sainstalacijskim medijem (napravite noviju boot "
-#~ "disketu)"
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Izaberite mirror sa kojeg želite skinuti pakete"
diff --git a/perl-install/install/share/po/hu.po b/perl-install/install/share/po/hu.po
index ce66e861d..bbe0bd763 100644
--- a/perl-install/install/share/po/hu.po
+++ b/perl-install/install/share/po/hu.po
@@ -1,30 +1,87 @@
-# translation of DrakX to Hungarian
-# Copyright (C) 2000-2001,2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
-# Emese Kovacs <emese@gnome.hu>, 2000-2001.
-# Arpad Biro <biro_arpad@yahoo.com>, 2000, 2003, 2004, 2005, 2006, 2007.
-# Tamas Szanto <tszanto@mol.hu>, 2001.
+# Translators:
+# Arpad Biro <biro.arpad gmail>, 2000,2003-2007
+# Balzamon, 2016
+# Balzamon, 2016
+# alephlg <aleph@mandriva.org>, 2007-2009
+# Laszlo Espadas, 2017
+# Tamas Szanto <tszanto@mol.hu>, 2001
+# Zoltán Siposs <zoltan.siposs@gmail.com>, 2015
msgid ""
msgstr ""
-"Project-Id-Version: hu\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-10-01 09:25+0200\n"
-"Last-Translator: Arpad Biro <biro_arpad@yahoo.com>\n"
-"Language-Team: Hungarian\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Hungarian (http://www.transifex.com/MageiaLinux/mageia/"
+"language/hu/)\n"
+"Language: hu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Csatlakozzon!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Legyen az Öné!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "Az Ön választása!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Irodai eszközök"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Otthoni szórakoztatás"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "Gyerekeknek"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "A családnak!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "Fejlesztőknek!"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Köszönjük!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Legyen szabad!"
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
-msgstr "Van további kiegészítő adathordozója?"
+msgstr "Van további kiegészítő adathordozó?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -36,142 +93,158 @@ msgstr ""
"telepítéshez: %s.\n"
"\n"
"\n"
-"Van beállítandó kiegészítő telepítési adathordozója?"
-
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
+"Van beállítandó kiegészítő telepítési adathordozó?"
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Hálózat (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Hálózat (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Hálózat (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "A tükörkiszolgáló címe?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "Az URL-nek ftp:// vagy http:// előtaggal kell kezdődnie"
-
-#: any.pm:228
-#, c-format
-msgid "Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Kapcsolódás a Mandriva Linux webkiszolgálójához; az elérhető "
-"tükörkiszolgálók listájának lekérdezése..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Nem sikerült lekérdezni az elérhető tükörkiszolgálók listáját a Mandriva "
-"Linux webkiszolgálójától"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Válasszon tükörkiszolgálót, ahonnan letölti a csomagokat"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "NFS-beállítás"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr "Adja meg az NFS-adathordozó gépnevét és könyvtárát"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr "Gépnév hiányzik"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "A könyvtárnak \"/\" jellel kell kezdődnie"
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "Az NFS-csatolás gépneve?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Könyvtár"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "Kiegészítő"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
msgstr "A tükörkiszolgálón nem található fejléclista"
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "A már telepített csomagok vizsgálata..."
+msgid "Core Release"
+msgstr "Core tároló"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Csomagok eltávolítása a frissítés előtt..."
+msgid "Tainted Release"
+msgstr "Tainted tároló"
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "A frissítendő csomagok keresése..."
+msgid "Nonfree Release"
+msgstr "Nem szabad tároló"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"A következő kiszolgálóprogramo(ka)t választotta ki: %s\n"
-"\n"
-"\n"
-"Ezek alapértelmezésben aktiválva lesznek. Nem tartozik hozzájuk ismert\n"
-"biztonsági probléma, de később ismertté válhatnak újak. Ha ez bekövetkezik,\n"
-"akkor frissítést kell végezni minél hamarabb.\n"
-"\n"
-"\n"
-"Biztosan telepíteni szeretné a kiszolgálóprogramo(ka)t?\n"
+"A számítógépben található néhány eszköznek szüksége van nem szabad firmware-"
+"re annak érdekében, hogy a nyílt forrású meghajtóprogramok működhessenek."
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "\"%s\" engedélyezése szükséges."
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+"\"%s\" a rendszer és az alkalmazások különböző összetevőit tartalmazza."
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "A \"%s\" nem szabad szoftvereket tartalmaz.\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"Különböző eszközök működéséhez szükséges firmware-ket is tartalmaz (pl. ATI/"
+"AMD videokártyák, hálózati kártyák, RAID vezérlők,...)"
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"\"%s\" olyan szoftvereket tartalmaz, amelyek a szoftver-szabadalmak miatt "
+"egyes országokban nem terjeszthetők."
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+"\"%s\" tárolóból származó szoftvereket is tartalmaz, melyek további "
+"képességekkel lettek újrafordítva."
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "Itt lehet további adathordozókat engedélyezni."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Ez az adatforrás frissítőcsomagokat tartalmaz a \"%s\" számára."
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "A már telepített csomagok vizsgálata..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "A frissítendő csomagok keresése..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Csomagok eltávolítása a frissítés előtt..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -184,85 +257,90 @@ msgstr ""
"\n"
"Szeretné eltávolítani ezeket a csomagokat?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Hiba a(z) %s fájl olvasása közben"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "A következő lemezek át lettek nevezve:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (korábbi név: %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Hálózat"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
-msgstr "Válasszon egy adatforrást"
+msgstr "Válasszon ki egy adatforrást"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "A fájl már létezik. Felülírja?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Hozzáférés megtagadva"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "Helytelen NFS-név"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
-msgstr "\"%s\": hibás adatforrás"
+msgstr "\"%s\": érvénytelen adatforrás"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
-msgstr "Partícionálás előtt nem készíthetők képernyőfelvételek"
+msgid "Cannot make screenshots before partitioning"
+msgstr "Particionálás előtt nem készíthetők képernyőfelvételek"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "A képernyőfelvételek a telepítés után itt lesznek elérhetők: %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Telepítés"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Beállítás"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
-msgstr "Meg kell formázni ezt is: %s"
+msgstr "Formázni kell ezt is: %s"
#: interactive.pm:16
#, c-format
@@ -283,53 +361,69 @@ msgstr "A hálózatkezelés elindítása"
msgid "Bringing down the network"
msgstr "A hálózatkezelés leállítása"
-#: media.pm:703 media.pm:714
+#: media.pm:397
#, c-format
-msgid "Downloading file %s..."
-msgstr "%s fájl letöltése..."
+msgid "Please wait, retrieving file"
+msgstr "Kérem várjon, fájl betöltése"
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "sikertelen a csomagforrás hozzáadása"
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr "Bizonyos csomagok lemezre másolása későbbi használatra"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Másolás folyamatban"
-# The "Importance" ratings:
-# 5: "must have"
-# 4: "important"
-# 3: "very nice"
-# 2: "nice"
-# 1: "maybe"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "nagyon fontos"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "fontos"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "erősen ajánlott"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "ajánlott"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
-msgstr "opcionális"
+msgstr "tetszőleges"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "Csomaginformációk olvasása az XML meta-adatokból..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Nincs xml információ a \"%s\" adatforráshoz, a %s csomagról csak részleges "
+"információit sikerült szerezni."
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Nincs leírás"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
@@ -338,253 +432,270 @@ msgstr ""
"A(z) %s által kért bizonyos csomagok nem telepíthetők:\n"
"%s"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "Hiba lépett fel:"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "Végzetes hiba történt: %s."
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr "Ne kérdezze mégegyszer"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d telepítési művelet nem sikerült"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Sikertelen csomagtelepítések:"
+
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "Munkaállomás"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "Irodai munkaállomás"
-#: share/meta-task/compssUsers.pl:15
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Irodai programok: szövegszerkesztők (OpenOffice.org Writer, KWord), "
-"táblázatkezelők (OpenOffice.org Calc, KSpread), PDF-megjelenítők, ..."
+"Irodai programok: szövegszerkesztők (LibreOffice Writer, KWord), "
+"táblázatkezelők (LibreOffice Calc, KSpread), PDF-megjelenítők, ..."
-#: share/meta-task/compssUsers.pl:16
-#, c-format
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"Irodai programok: szövegszerkesztők (KWord, AbiWord), táblázatkezelők "
-"(KSpread, Gnumeric), PDF-nézegetők, ..."
-
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Játékgép"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Játékprogramok: lövöldözős, táblás, stratégiai, ..."
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Multimédiás munkaállomás"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Lejátszó- és szerkesztőprogramok hang- és videóanyagokhoz"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Internetes munkaállomás"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
-msgstr "Eszközök levelezéshez, hírkezeléshez (mutt, tin, ...) és a web böngészéséhez"
+msgstr ""
+"Eszközök levelezéshez, hírkezeléshez (mutt, tin, ...) és a web böngészéséhez"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Hálózati számítógép (kliens)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Kliensprogramok különféle protokollokhoz (például: ssh)"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Segédprogramok a számítógép beállításához"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Parancssori eszközök"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Szövegszerkesztők, parancsértelmezők, fájlkezelők, terminálprogramok"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Fejlesztés"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "C/C++ fejlesztőkönyvtárak, programok és include-fájlok"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Dokumentáció"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Könyvek és HOGYAN-ok a Linuxról és a szabad szoftverekről"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Linux Standard Base. Külső társaságok alkalmazásainak támogatása."
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Webkiszolgáló"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Csoportmunka-alkalmazás"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
-msgstr "Kolab-kiszolgáló"
+msgstr "Kolab kiszolgáló"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Tűzfal/útválasztó (router)"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
-msgstr "Internet-átjáró"
+msgstr "Internet átjáró"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "Levelezés/hírek"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Postfix email-kiszolgáló, Inn hírkiszolgáló"
+msgstr "Postfix email kiszolgáló, Inn hírkiszolgáló"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Címtárkiszolgáló"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
-msgstr "FTP-kiszolgáló"
+msgstr "FTP kiszolgáló"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "DNS- és NIS-kiszolgáló"
+msgstr "DNS és NIS kiszolgáló"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "Fájl- és nyomtatómegosztási kiszolgáló"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
-msgstr "NFS-kiszolgáló, Samba-kiszolgáló"
+msgstr "NFS kiszolgáló, Samba kiszolgáló"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Adatbázis"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL és MySQL adatbázis-kiszolgáló"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "PostgreSQL és MariaDB adatbázis kiszolgáló"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Levelezés"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
-msgstr "Postfix email-kiszolgáló"
+msgstr "Postfix email kiszolgáló"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL vagy MySQL adatbázis-kiszolgáló"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL vagy MariaDB adatbázis kiszolgáló"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Kiszolgáló hálózati számítógépekhez"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "NFS-, SMB-, proxy- és SSH-kiszolgáló"
+msgstr "NFS, SMB, proxy és SSH kiszolgáló"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Grafikus környezet"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE-munkaállomás"
+msgid "Plasma Workstation"
+msgstr "Plasma Munkaállomás"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -593,69 +704,125 @@ msgstr ""
"A K Desktop Environment - az alapvető grafikus környezet - az ahhoz tartozó "
"eszközökkel együtt"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
-msgstr "GNOME-munkaállomás"
+msgstr "GNOME munkaállomás"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
-msgstr "Grafikus környezet felhasználóbarát alkalmazásokkal és segédprogramokkal"
+msgstr ""
+"Grafikus környezet felhasználóbarát alkalmazásokkal és segédprogramokkal"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
#, c-format
-msgid "IceWm Desktop"
-msgstr "IceWm-munkaasztal"
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Egy könnyedebb grafikus környezet felhasználóbarát alkalmazásokkal és "
+"asztali eszközökkel."
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "MATE munkaállomás"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Cinnamon munkaállomás"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Egy GNOME-on alapuló grafikus környezet"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "LXQt Munkaasztal"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+"A pehelysúlyú munkaasztal-környezet új generációs, QT-ra portolt változata"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr "Egy könnyű, gyors grafikus környezet"
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "LXDE munkaasztal"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Egy könnyű, gyors grafikus környezet"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Más grafikus környezetek"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "WindowMaker, Enlightenment, Fvwm, ..."
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, stb."
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Segédprogramok"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
-msgstr "SSH-kiszolgáló"
+msgstr "SSH kiszolgáló"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Webmin kiszolgáló távoli beállításhoz"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "Hálózati programok/hálózatfigyelés"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "Figyelőeszközök, folyamatszámlázás, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Mandriva-varázslók"
+msgid "Mageia Wizards"
+msgstr "Mageia varázslók"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Varázslók a kiszolgáló beállítására"
@@ -669,7 +836,7 @@ msgstr ""
"Hiba történt, de nem lett megfelelően lekezelve.\n"
"Csak akkor lépjen tovább, ha biztos abban, hogy ez nem fog gondot okozni."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -690,216 +857,258 @@ msgstr "A következő lépés: \"%s\"\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux-telepítés %s"
+msgid "%s Installation %s"
+msgstr "%s telepítés %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt+Tab> lépegetés"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Az Xorg kiszolgáló lassan indul. Kérem várjon..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
"A rendszer gyenge erőforrásokkal rendelkezik. Előfordulhat, hogy problémái\n"
-"lesznek a Mandriva Linux telepítésével. Ha így történik, próbálkozzon\n"
+"lesznek a %s telepítésével. Ha így történik, próbálkozzon\n"
"szöveges módú telepítéssel: CD-ről való rendszerindítást követően nyomjon\n"
"\"F1\"-et, majd írja be azt, hogy \"text\"."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Adathordozó kiválasztása"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Plasma Desktop %s telepítése"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "A %s GNOME asztalának telepítése"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Egyéni telepítés"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Plasma Desktop"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "GNOME munkaasztal"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Egyéni munkaasztal"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Így fog kinézni a '%s' munkaasztala."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Kattintson a képre, ha nagyobb méretben szeretné megtekinteni"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
-msgstr "Csomag-csoportok kiválasztása"
+msgstr "Csomagcsoportok kiválasztása"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Csomagok egyedi kiválasztása"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Összméret: %d / %d MB"
+msgid "Unselect All"
+msgstr "Kijelölések megszüntetése"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Hibás csomag"
+msgid "Total size: %d / %d MB"
+msgstr "Összméret: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Verzió: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Méret: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Fontosság: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Ez a csomag nem jelölhető ki illetve nem törölhető a kijelölése"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "\"%s\" hiánya miatt"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "\"%s\" igényei miatt"
-# Francois Pons:
-# This is a message saying that a package is removed (or unselected) because the
-# dependency resolution algorithm needed to remove (or unselect) it when it tried
-# to promote a provide (a package name or property) with a better version, but it
-# failed.
-# "promote": It is a term used to say promotion of a provides (promoting perl for
-# example, is trying to find the best package providing perl and select it).
-# "%s" stands for the property being promoted, generally a simple name.
-# This is not really a failure message but an informative message. It has nothing
-# to do with failure in the sense of the application unable to continue. Urpmi
-# continues by not selecting a package which was selected by a promotion (not
-# asked by the user directly but caused by a package which has been upgraded thus
-# breaking existing packages, the promotion concerns this).
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "a legalkalmasabb \"%s\" keresése"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "\"%s\" megtartása érdekében"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
-msgstr "Nem választhatja ki ezt a csomagot, mert nincs elég hely a merevlemezen."
+msgstr ""
+"Nem választhatja ki ezt a csomagot, mert nincs elég hely a merevlemezen."
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "A telepítő a következő csomagokat fogja telepíteni:"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "A telepítő a következő csomagokat távolítja el:"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Ez egy kötelező csomag, nem lehet megszüntetni a kijelölését"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Nem törölhető ennek a csomagnak a kijelölése, mert már telepítve van"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
-msgstr "Nem törölheti ennek a csomagnak a kijelölését. Ez a csomag frissítendő."
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr ""
+"Nem törölheti ennek a csomagnak a kijelölését. Ez a csomag frissítendő."
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Automatikusan kijelölt csomagok mutatása"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Telepítés"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Kijelölés betöltése/mentése"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "A csomagkiválasztás frissítése"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Minimális telepítés"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Szoftverkezelés"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Válassza ki a telepítendő csomagokat"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Telepítés"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Részletek nélkül"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Hátralevő idő "
+msgid "Time remaining:"
+msgstr "Hátralevő idő:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Becslés..."
+msgid "(estimating...)"
+msgstr "(becslés...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d csomag"
msgstr[1] "%d csomag"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Összefoglalás"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Beállítás"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "nincs beállítva"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
@@ -908,12 +1117,12 @@ msgstr ""
"A rendszer a következő telepítési adathordozókat találta.\n"
"Ha szeretné kihagyni valamelyiket, távolítsa el annak kijelölését."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
"Lehetősége van arra, hogy a CD-k tartalmát lemásolja a merevlemezre a "
@@ -921,95 +1130,98 @@ msgstr ""
"Ez esetben a telepítés a merevlemezről folytatódik, és annak végeztével a "
"csomagok elérhetők maradnak."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "Teljes CD-k másolása"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Hiba lépett fel"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Válasszon billentyűzetkiosztást."
+msgid "Please choose your keyboard layout"
+msgstr "Válasszon billentyűzetkiosztást"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Itt található az elérhető billentyűzetek listája"
+msgid "Here is the full list of available keyboards:"
+msgstr "Az elérhető billentyűzetek teljes listája:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Telepítés/frissítés"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Új telepítés vagy frissítés?"
-#: steps_interactive.pm:134
+#: steps_interactive.pm:159
#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Telepítés"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Frissítés: %s"
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr "32 bites disztribúcióról 64 bitesre való frissítés nem támogatott"
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr "64 bites disztribúcióról 32 bitesre való frissítés nem támogatott"
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "Titkosítási kulcs ehhez: %s"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "Telepítés megszakítva, a rendszer újraindul"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "IDE-beállítások"
+msgid "New Installation"
+msgstr "Új telepítés"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
-"Nincs elég szabad hely az 1 MB-os betöltőprogramnak. A telepítés "
-"folytatható, de a rendszer indításához létre kell hozni egy rendszerindító "
-"partíciót a DiskDrake-kel."
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Előző telepítés frissítése (nem ajánlott)"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"Létre kell hozni egy PPC PReP rendszerindítót. A telepítés folytatódik, de a "
-"rendszer indításához létre kell hozni a rendszerindítási partíciót a "
-"DiskDrake-kel."
+"A telepítő észlelte, hogy a már meglévő Linux rendszer\n"
+"nem frissíthető %s-ra.\n"
+"\n"
+"Javasolt új telepítést végezni a régi helyén.\n"
+"\n"
+"Figyelem: új telepítés előtt célszerű minden személyes dokumentumról\n"
+"mentést készíteni."
-#: steps_interactive.pm:328
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "CD/DVD konfigurálása"
+
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1022,21 +1234,21 @@ msgstr ""
"Ha nincs ilyen lemeze, akkor nyomja meg a \"Mégsem\" gombot, így erről a CD-"
"ről nem történik telepítés."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "A rendelkezésre álló csomagok keresése..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
"A rendszerben nincs elegendő szabad hely a telepítéshez illetve frissítéshez "
"(%d MB > %d MB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
@@ -1046,52 +1258,52 @@ msgstr ""
"csomagkijelölést vagy a jelenlegi kijelölést szeretné elmenteni.\n"
"A formátum ugyanaz, mint az automatikus telepítési fájloknál."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Terhelés"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Mentés"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Hibás fájl"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr "A Mandriva KDE-asztalának telepítése"
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr "A Mandriva GNOME-asztalának telepítése"
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
+#: steps_interactive.pm:459
#, c-format
-msgid "Custom install"
-msgstr "Egyéni telepítés"
+msgid "Desktop Selection"
+msgstr "Munkaasztal kiválasztása"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr "Kiválaszthatja a munkaállomás asztalprofilját: KDE, GNOME vagy \"egyéni\""
+msgid "You can choose your workstation desktop profile."
+msgstr "Kiválaszthatja a munkaállomás asztalprofilját."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "A kijelölt összméret nagyobb, mint a rendelkezésre álló hely"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "A telepítés típusa"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1100,84 +1312,132 @@ msgstr ""
"Egyetlen csomagcsoportot sem jelölt ki.\n"
"Válassza ki, milyen fajta minimális telepítést szeretne."
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
-msgstr "X-szel együtt"
+msgstr "X telepítése"
+
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Javasolt csomagok telepítése"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Alapvető dokumentációval (javasolt)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Valóban minimális telepítés (urpmi sincs)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Felkészülés a frissítésre..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "A telepítés előkészítése"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "%s csomag telepítése"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Hiba történt a csomagok rendezésekor:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Kívánja folytatni ettől függetlenül?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "Újra"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr "Ezen csomag kihagyása"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr "A(z) \"%s\" adathordozón levő összes csomag kihagyása"
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
-msgstr "Visszalépés az adathordozó- és csomagválasztáshoz"
+msgstr "Visszalépés az adathordozó és csomagválasztáshoz"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
msgstr "Hiba történt a(z) %s csomag telepítésekor."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Telepítés utáni beállítások"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
"Tegye be a frissítési modulokat tartalmazó adathordozót a(z) \"%s\" "
"meghajtóba"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Frissítések"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Itt a lehetőség online csomagtárolók hozzáadására."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Ezzel lehetséges a biztonsági frissítések telepítése."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"Ezen csomagtárolók beállításához működő Internet kapcsolat\n"
+"szükséges.\n"
+"\n"
+"Beállítsuk most a frissítési tárolót?"
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "A telepítő a következő csomagokat fogja telepíteni:"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Ismét?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Nem sikerült felvenni az adatforrást"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1196,135 +1456,80 @@ msgstr ""
"\n"
"Szeretné feltelepíteni a frissítéseket?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr ""
-"Kapcsolatfelvétel a tükörkiszolgálóval; az elérhető csomagok listájának "
-"letöltése..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Nem sikerült kapcsolódni ehhez a tükörkiszolgálóhoz: %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s ezen: %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Hardver"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Hangkártya"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Van ISA hangkártyája?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"A hangkártya beállításához futtassa az \"alsaconf\" vagy az \"sndconfig\" "
-"programot a telepítés után."
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"A telepítő nem talált hangkártyát. Futtassa a \"harddrake\" programot a "
-"telepítés után."
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Grafikus felület"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Hálózat és internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Proxyk"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "beállítva"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Biztonsági szint"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Tűzfal"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "aktiválva"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "kikapcsolva"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "Az X grafikus rendszert nem állította be. Biztosan megfelel így?"
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "Rendszerbetöltő előkészítése..."
-
-#: steps_interactive.pm:1018
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"A gép típusa feltehetően OldWorld vagy ismeretlen, ezért a Yaboot "
-"rendszerindító program nem fog működni. A telepítés folytatódik, de a gép "
-"indításához BootX-re vagy egyéb módszerre lesz szükség. A gyökér-"
-"fájlrendszer kernelparamétere: root=%s"
+msgid "Preparing initial startup program..."
+msgstr "A rendszerindító memóriaképfájl előkészítése..."
-#: steps_interactive.pm:1024
+#: steps_interactive.pm:1073
#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Szeretné az aboot-ot használni?"
+msgid "Be patient, this may take a while..."
+msgstr "Egy kis türelmét kérem..."
-#: steps_interactive.pm:1027
-#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Hiba az aboot telepítésekor.\n"
-"Próbáljam újra a telepítést akkor is, ha ez esetleg tönkreteszi az első\n"
-"partíciót?"
-
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
@@ -1333,17 +1538,17 @@ msgstr ""
"Ezen a biztonsági szinten csak a rendszergazda érheti el a windowsos "
"partíción levő fájlokat."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Tegyen egy üres floppyt a(z) \"%s\" meghajtóba"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Automatikus telepítőfloppy készítése..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1354,52 +1559,16 @@ msgstr ""
"\n"
"Biztos, hogy ki akar lépni?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Gratulálunk"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Újraindítás"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Automatikus telepítőfloppy készítése"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Az automatikus telepítés akár teljesen automatikus is lehet,\n"
-"ebben az esetben az egész merevlemez tartalmát módosíthatja.\n"
-"Elsősorban akkor ajánlott, ha másik gépre is telepíteni kívánja\n"
-"a rendszert.\n"
-"\n"
-"Lehetőség van a telepítés újrajátszására is.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Újrajátszás"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automatikus"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Csomagösszeállítás mentése"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1490,13 +1659,6 @@ msgid ""
"Users"
msgstr "Felhasználók"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Hálózat"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1539,3 +1701,26 @@ msgid ""
"Exit"
msgstr "Kilépés"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "A tükörkiszolgáló címe?"
+
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "Az URL-nek ftp:// vagy http:// előtaggal kell kezdődnie"
+
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr ""
+#~ "Kapcsolódás a %s webkiszolgálójához; az elérhető tükörkiszolgálók "
+#~ "listájának lekérdezése..."
+
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
+#~ msgstr ""
+#~ "Nem sikerült lekérdezni az elérhető tükörkiszolgálók listáját a %s "
+#~ "webkiszolgálójától"
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Válasszon ki egy tükörkiszolgálót a csomagok letöltéséhez!"
diff --git a/perl-install/install/share/po/hy.po b/perl-install/install/share/po/hy.po
new file mode 100644
index 000000000..97d85ac19
--- /dev/null
+++ b/perl-install/install/share/po/hy.po
@@ -0,0 +1,1608 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Mageia\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Armenian (http://www.transifex.com/MageiaLinux/mageia/"
+"language/hy/)\n"
+"Language: hy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr ""
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr ""
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr ""
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr ""
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr ""
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr ""
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr ""
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
+#, c-format
+msgid ""
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
+msgstr ""
+
+#: any.pm:162
+#, c-format
+msgid "Network (HTTP)"
+msgstr ""
+
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
+msgstr ""
+
+#: any.pm:164
+#, c-format
+msgid "Network (NFS)"
+msgstr ""
+
+#: any.pm:224
+#, c-format
+msgid "NFS setup"
+msgstr ""
+
+#: any.pm:225
+#, c-format
+msgid "Please enter the hostname and directory of your NFS media"
+msgstr ""
+
+#: any.pm:229
+#, c-format
+msgid "Hostname missing"
+msgstr ""
+
+#: any.pm:230
+#, c-format
+msgid "Directory must begin with \"/\""
+msgstr ""
+
+#: any.pm:234
+#, c-format
+msgid "Hostname of the NFS mount ?"
+msgstr ""
+
+#: any.pm:235
+#, c-format
+msgid "Directory"
+msgstr ""
+
+#: any.pm:265
+#, c-format
+msgid "Supplementary"
+msgstr ""
+
+#: any.pm:300
+#, c-format
+msgid ""
+"Can't find a package list file on this mirror. Make sure the location is "
+"correct."
+msgstr ""
+
+#: any.pm:325
+#, c-format
+msgid "Core Release"
+msgstr ""
+
+#: any.pm:327
+#, c-format
+msgid "Tainted Release"
+msgstr ""
+
+#: any.pm:329
+#, c-format
+msgid "Nonfree Release"
+msgstr ""
+
+#: any.pm:367
+#, c-format
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr ""
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr ""
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr ""
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:850
+#, c-format
+msgid ""
+"The following packages will be removed to allow upgrading your system: %s\n"
+"\n"
+"\n"
+"Do you really want to remove these packages?\n"
+msgstr ""
+
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr ""
+
+#: any.pm:1283
+#, c-format
+msgid "The following disk(s) were renamed:"
+msgstr ""
+
+#: any.pm:1285
+#, c-format
+msgid "%s (previously named as %s)"
+msgstr ""
+
+#: any.pm:1342
+#, c-format
+msgid "HTTP"
+msgstr ""
+
+#: any.pm:1342
+#, c-format
+msgid "FTP"
+msgstr ""
+
+#: any.pm:1342
+#, c-format
+msgid "NFS"
+msgstr ""
+
+#: any.pm:1361 steps_interactive.pm:979
+#, c-format
+msgid "Network"
+msgstr ""
+
+#: any.pm:1365
+#, c-format
+msgid "Please choose a media"
+msgstr ""
+
+#: any.pm:1381
+#, c-format
+msgid "File already exists. Overwrite it?"
+msgstr ""
+
+#: any.pm:1385
+#, c-format
+msgid "Permission denied"
+msgstr ""
+
+#: any.pm:1433
+#, c-format
+msgid "Bad NFS name"
+msgstr ""
+
+#: any.pm:1454
+#, c-format
+msgid "Bad media %s"
+msgstr ""
+
+#: any.pm:1498
+#, c-format
+msgid "Cannot make screenshots before partitioning"
+msgstr ""
+
+#: any.pm:1509
+#, c-format
+msgid "Screenshots will be available after install in %s"
+msgstr ""
+
+#: gtk.pm:134
+#, c-format
+msgid "Installation"
+msgstr ""
+
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
+#, c-format
+msgid "Configuration"
+msgstr "Կոնֆիգուրացիա"
+
+#: install2.pm:220
+#, c-format
+msgid "You must also format %s"
+msgstr ""
+
+#: interactive.pm:16
+#, c-format
+msgid ""
+"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
+"You can find some information about them at: %s"
+msgstr ""
+
+#: interactive.pm:22
+#, c-format
+msgid "Bringing up the network"
+msgstr ""
+
+#: interactive.pm:27
+#, c-format
+msgid "Bringing down the network"
+msgstr ""
+
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
+
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
+
+#: media.pm:744
+#, c-format
+msgid "Copying some packages on disks for future use"
+msgstr ""
+
+#: media.pm:797
+#, c-format
+msgid "Copying in progress"
+msgstr ""
+
+#: pkgs.pm:32
+#, c-format
+msgid "must have"
+msgstr ""
+
+#: pkgs.pm:33
+#, c-format
+msgid "important"
+msgstr ""
+
+#: pkgs.pm:34
+#, c-format
+msgid "very nice"
+msgstr ""
+
+#: pkgs.pm:35
+#, c-format
+msgid "nice"
+msgstr ""
+
+#: pkgs.pm:36
+#, c-format
+msgid "maybe"
+msgstr ""
+
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr ""
+
+#: pkgs.pm:290
+#, c-format
+msgid ""
+"Some packages requested by %s cannot be installed:\n"
+"%s"
+msgstr ""
+
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr ""
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr ""
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr ""
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:16
+#, c-format
+msgid "Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
+msgid ""
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:26
+#, c-format
+msgid "Game station"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:27
+#, c-format
+msgid "Amusement programs: arcade, boards, strategy, etc"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:30
+#, c-format
+msgid "Multimedia station"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:31
+#, c-format
+msgid "Sound and video playing/editing programs"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:36
+#, c-format
+msgid "Internet station"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:37
+#, c-format
+msgid ""
+"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
+"Web"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:42
+#, c-format
+msgid "Network Computer (client)"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:43
+#, c-format
+msgid "Clients for different protocols including ssh"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:49
+#, c-format
+msgid "Tools to ease the configuration of your computer"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:53
+#, c-format
+msgid "Console Tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:54
+#, c-format
+msgid "Editors, shells, file tools, terminals"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
+#, c-format
+msgid "Development"
+msgstr "Ծրագրավորում"
+
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
+#, c-format
+msgid "C and C++ development libraries, programs and include files"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
+#, c-format
+msgid "Documentation"
+msgstr "Ձեռնարկ"
+
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
+#, c-format
+msgid "Books and Howto's on Linux and Free Software"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
+#, c-format
+msgid "LSB"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
+#, c-format
+msgid "Linux Standard Base. Third party applications support"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:79
+#, c-format
+msgid "Web Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:80
+#, c-format
+msgid "Apache"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:84
+#, c-format
+msgid "Groupware"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:85
+#, c-format
+msgid "Kolab Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
+#, c-format
+msgid "Firewall/Router"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
+#, c-format
+msgid "Internet gateway"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:92
+#, c-format
+msgid "Mail/News"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:93
+#, c-format
+msgid "Postfix mail server, Inn news server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:97
+#, c-format
+msgid "Directory Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:102
+#, c-format
+msgid "FTP Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:103
+#, c-format
+msgid "ProFTPd"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:107
+#, c-format
+msgid "DNS/NIS"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:108
+#, c-format
+msgid "Domain Name and Network Information Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:112
+#, c-format
+msgid "File and Printer Sharing Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:113
+#, c-format
+msgid "NFS Server, Samba server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
+#, c-format
+msgid "Database"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:118
+#, c-format
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:123
+#, c-format
+msgid "Web/FTP"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:124
+#, c-format
+msgid "Apache, Pro-ftpd"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:128
+#, c-format
+msgid "Mail"
+msgstr "Փոստ"
+
+#: share/meta-task/compssUsers.pl:129
+#, c-format
+msgid "Postfix mail server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:134
+#, c-format
+msgid "PostgreSQL or MariaDB database server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:142
+#, c-format
+msgid "Network Computer server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:143
+#, c-format
+msgid "NFS server, SMB server, Proxy server, ssh server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:150
+#, c-format
+msgid "Graphical Environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:152
+#, c-format
+msgid "Plasma Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:153
+#, c-format
+msgid ""
+"The K Desktop Environment, the basic graphical environment with a collection "
+"of accompanying tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:158
+#, c-format
+msgid "GNOME Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
+#, c-format
+msgid ""
+"A graphical environment with user-friendly set of applications and desktop "
+"tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
+#, c-format
+msgid "Other Graphical Desktops"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:218
+#, c-format
+msgid "Utilities"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
+#, c-format
+msgid "SSH Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:225
+#, c-format
+msgid "Webmin"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:226
+#, c-format
+msgid "Webmin Remote Configuration Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:230
+#, c-format
+msgid "Network Utilities/Monitoring"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:231
+#, c-format
+msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:236
+#, c-format
+msgid "Wizards to configure server"
+msgstr ""
+
+#: steps.pm:85
+#, c-format
+msgid ""
+"An error occurred, but I do not know how to handle it nicely.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: steps.pm:469
+#, c-format
+msgid ""
+"Some important packages did not get installed properly.\n"
+"Either your cdrom drive or your cdrom is defective.\n"
+"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
+"\"\n"
+msgstr ""
+
+#: steps_auto_install.pm:71 steps_stdio.pm:27
+#, c-format
+msgid "Entering step `%s'\n"
+msgstr ""
+
+#: steps_curses.pm:22
+#, c-format
+msgid "%s Installation %s"
+msgstr ""
+
+#: steps_curses.pm:32
+#, c-format
+msgid "<Tab>/<Alt-Tab> between elements"
+msgstr ""
+
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
+#, c-format
+msgid ""
+"Your system is low on resources. You may have some problem installing\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
+"press `F1' when booting on CDROM, then enter `text'."
+msgstr ""
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
+#, c-format
+msgid "Package Group Selection"
+msgstr ""
+
+#: steps_gtk.pm:354 steps_interactive.pm:626
+#, c-format
+msgid "Individual package selection"
+msgstr ""
+
+#: steps_gtk.pm:361
+#, c-format
+msgid "Unselect All"
+msgstr ""
+
+#: steps_gtk.pm:380 steps_interactive.pm:538
+#, c-format
+msgid "Total size: %d / %d MB"
+msgstr ""
+
+#: steps_gtk.pm:425
+#, c-format
+msgid "Version: "
+msgstr ""
+
+#: steps_gtk.pm:426
+#, c-format
+msgid "Size: "
+msgstr ""
+
+#: steps_gtk.pm:426
+#, c-format
+msgid "%d KB\n"
+msgstr ""
+
+#: steps_gtk.pm:427
+#, c-format
+msgid "Importance: "
+msgstr ""
+
+#: steps_gtk.pm:462
+#, c-format
+msgid "You cannot select/unselect this package"
+msgstr ""
+
+#: steps_gtk.pm:466
+#, c-format
+msgid "due to missing %s"
+msgstr ""
+
+#: steps_gtk.pm:467
+#, c-format
+msgid "due to unsatisfied %s"
+msgstr ""
+
+#: steps_gtk.pm:468
+#, c-format
+msgid "trying to promote %s"
+msgstr ""
+
+#: steps_gtk.pm:469
+#, c-format
+msgid "in order to keep %s"
+msgstr ""
+
+#: steps_gtk.pm:474
+#, c-format
+msgid ""
+"You cannot select this package as there is not enough space left to install "
+"it"
+msgstr ""
+
+#: steps_gtk.pm:477
+#, c-format
+msgid "The following packages are going to be installed"
+msgstr ""
+
+#: steps_gtk.pm:478
+#, c-format
+msgid "The following packages are going to be removed"
+msgstr ""
+
+#: steps_gtk.pm:504
+#, c-format
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr ""
+
+#: steps_gtk.pm:506
+#, c-format
+msgid "You cannot unselect this package. It is already installed"
+msgstr ""
+
+#: steps_gtk.pm:508
+#, c-format
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr ""
+
+#: steps_gtk.pm:512
+#, c-format
+msgid "Show automatically selected packages"
+msgstr ""
+
+#: steps_gtk.pm:516
+#, c-format
+msgid "Install"
+msgstr ""
+
+#: steps_gtk.pm:519
+#, c-format
+msgid "Load/Save selection"
+msgstr ""
+
+#: steps_gtk.pm:520 steps_gtk.pm:525
+#, c-format
+msgid "Updating package selection"
+msgstr ""
+
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
+#, c-format
+msgid "Minimal install"
+msgstr ""
+
+#: steps_gtk.pm:543
+#, c-format
+msgid "Software Management"
+msgstr ""
+
+#: steps_gtk.pm:543 steps_interactive.pm:415
+#, c-format
+msgid "Choose the packages you want to install"
+msgstr ""
+
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
+#, c-format
+msgid "Installing"
+msgstr ""
+
+#: steps_gtk.pm:590
+#, c-format
+msgid "No details"
+msgstr ""
+
+#: steps_gtk.pm:610
+#, c-format
+msgid "Time remaining:"
+msgstr ""
+
+#: steps_gtk.pm:611
+#, c-format
+msgid "(estimating...)"
+msgstr ""
+
+#: steps_gtk.pm:637
+#, c-format
+msgid "%d package"
+msgid_plural "%d packages"
+msgstr[0] ""
+msgstr[1] ""
+
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
+#, c-format
+msgid "Summary"
+msgstr ""
+
+#: steps_gtk.pm:713
+#, c-format
+msgid "Configure"
+msgstr ""
+
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
+#, c-format
+msgid "not configured"
+msgstr ""
+
+#: steps_gtk.pm:773 steps_interactive.pm:315
+#, c-format
+msgid ""
+"The following installation media have been found.\n"
+"If you want to skip some of them, you can unselect them now."
+msgstr ""
+
+#: steps_gtk.pm:789 steps_interactive.pm:321
+#, c-format
+msgid ""
+"You have the option to copy the contents of the CDs onto the hard disk drive "
+"before installation.\n"
+"It will then continue from the hard disk drive and the packages will remain "
+"available once the system is fully installed."
+msgstr ""
+
+#: steps_gtk.pm:791 steps_interactive.pm:323
+#, c-format
+msgid "Copy whole CDs"
+msgstr ""
+
+#: steps_interactive.pm:40
+#, c-format
+msgid "An error occurred"
+msgstr ""
+
+#: steps_interactive.pm:105
+#, c-format
+msgid "Please choose your keyboard layout"
+msgstr ""
+
+#: steps_interactive.pm:109
+#, c-format
+msgid "Here is the full list of available keyboards:"
+msgstr ""
+
+#: steps_interactive.pm:153
+#, c-format
+msgid "Install/Upgrade"
+msgstr ""
+
+#: steps_interactive.pm:157
+#, c-format
+msgid "Is this an install or an upgrade?"
+msgstr ""
+
+#: steps_interactive.pm:159
+#, c-format
+msgid ""
+"_: This is a noun:\n"
+"Install"
+msgstr ""
+
+#: steps_interactive.pm:161
+#, c-format
+msgid "Upgrade %s"
+msgstr ""
+
+#: steps_interactive.pm:184
+#, c-format
+msgid "Encryption key for %s"
+msgstr ""
+
+#: steps_interactive.pm:217
+#, c-format
+msgid "Cancel installation, reboot system"
+msgstr ""
+
+#: steps_interactive.pm:218
+#, c-format
+msgid "New Installation"
+msgstr ""
+
+#: steps_interactive.pm:219
+#, c-format
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
+
+#: steps_interactive.pm:223
+#, c-format
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr ""
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr ""
+
+#: steps_interactive.pm:354
+#, c-format
+msgid ""
+"Change your Cd-Rom!\n"
+"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
+"done.\n"
+"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
+msgstr ""
+
+#: steps_interactive.pm:372 steps_interactive.pm:490
+#, c-format
+msgid "Looking for available packages..."
+msgstr ""
+
+#: steps_interactive.pm:380
+#, c-format
+msgid ""
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
+msgstr ""
+
+#: steps_interactive.pm:428
+#, c-format
+msgid ""
+"Please choose load or save package selection.\n"
+"The format is the same as auto_install generated files."
+msgstr ""
+
+#: steps_interactive.pm:430
+#, c-format
+msgid "Load"
+msgstr ""
+
+#: steps_interactive.pm:430
+#, c-format
+msgid "Save"
+msgstr ""
+
+#: steps_interactive.pm:438
+#, c-format
+msgid "Bad file"
+msgstr ""
+
+#: steps_interactive.pm:455
+#, c-format
+msgid "Plasma"
+msgstr ""
+
+#: steps_interactive.pm:456
+#, c-format
+msgid "GNOME"
+msgstr "GNOME"
+
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
+
+#: steps_interactive.pm:460
+#, c-format
+msgid "You can choose your workstation desktop profile."
+msgstr ""
+
+#: steps_interactive.pm:552
+#, c-format
+msgid "Selected size is larger than available space"
+msgstr ""
+
+#: steps_interactive.pm:576
+#, c-format
+msgid "Type of install"
+msgstr ""
+
+#: steps_interactive.pm:577
+#, c-format
+msgid ""
+"You have not selected any group of packages.\n"
+"Please choose the minimal installation you want:"
+msgstr ""
+
+#: steps_interactive.pm:582
+#, c-format
+msgid "With X"
+msgstr ""
+
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
+#, c-format
+msgid "With basic documentation (recommended!)"
+msgstr ""
+
+#: steps_interactive.pm:585
+#, c-format
+msgid "Truly minimal install (especially no urpmi)"
+msgstr ""
+
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
+#, c-format
+msgid "Preparing installation"
+msgstr ""
+
+#: steps_interactive.pm:655
+#, c-format
+msgid "Installing package %s"
+msgstr ""
+
+#: steps_interactive.pm:679
+#, c-format
+msgid "There was an error ordering packages:"
+msgstr ""
+
+#: steps_interactive.pm:679
+#, c-format
+msgid "Go on anyway?"
+msgstr ""
+
+#: steps_interactive.pm:683
+#, c-format
+msgid "Retry"
+msgstr ""
+
+#: steps_interactive.pm:684
+#, c-format
+msgid "Skip this package"
+msgstr ""
+
+#: steps_interactive.pm:685
+#, c-format
+msgid "Skip all packages from medium \"%s\""
+msgstr ""
+
+#: steps_interactive.pm:686
+#, c-format
+msgid "Go back to media and packages selection"
+msgstr ""
+
+#: steps_interactive.pm:689
+#, c-format
+msgid "There was an error installing package %s."
+msgstr ""
+
+#: steps_interactive.pm:708
+#, c-format
+msgid "Post-install configuration"
+msgstr ""
+
+#: steps_interactive.pm:715
+#, c-format
+msgid "Please ensure the Update Modules media is in drive %s"
+msgstr ""
+
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
+#, c-format
+msgid "Updates"
+msgstr ""
+
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr ""
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr ""
+
+#: steps_interactive.pm:792
+#, c-format
+msgid ""
+"You now have the opportunity to download updated packages. These packages\n"
+"have been updated after the distribution was released. They may\n"
+"contain security or bug fixes.\n"
+"\n"
+"To download these packages, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to install the updates?"
+msgstr ""
+
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
+#, c-format
+msgid "%s on %s"
+msgstr ""
+
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
+#, c-format
+msgid "Hardware"
+msgstr ""
+
+#: steps_interactive.pm:958
+#, c-format
+msgid "Sound card"
+msgstr ""
+
+#: steps_interactive.pm:972
+#, c-format
+msgid "Graphical interface"
+msgstr ""
+
+#: steps_interactive.pm:978 steps_interactive.pm:990
+#, c-format
+msgid "Network & Internet"
+msgstr ""
+
+#: steps_interactive.pm:991
+#, c-format
+msgid "Proxies"
+msgstr ""
+
+#: steps_interactive.pm:992
+#, c-format
+msgid "configured"
+msgstr ""
+
+#: steps_interactive.pm:1002
+#, c-format
+msgid "Security Level"
+msgstr ""
+
+#: steps_interactive.pm:1022
+#, c-format
+msgid "Firewall"
+msgstr ""
+
+#: steps_interactive.pm:1026
+#, c-format
+msgid "activated"
+msgstr ""
+
+#: steps_interactive.pm:1026
+#, c-format
+msgid "disabled"
+msgstr ""
+
+#: steps_interactive.pm:1041
+#, c-format
+msgid "You have not configured X. Are you sure you really want this?"
+msgstr ""
+
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
+#, c-format
+msgid "Preparing initial startup program..."
+msgstr ""
+
+#: steps_interactive.pm:1073
+#, c-format
+msgid "Be patient, this may take a while..."
+msgstr ""
+
+#: steps_interactive.pm:1089
+#, c-format
+msgid ""
+"In this security level, access to the files in the Windows partition is "
+"restricted to the administrator."
+msgstr ""
+
+#: steps_interactive.pm:1121
+#, c-format
+msgid "Insert a blank floppy in drive %s"
+msgstr ""
+
+#: steps_interactive.pm:1123
+#, c-format
+msgid "Creating auto install floppy..."
+msgstr ""
+
+#: steps_interactive.pm:1134
+#, c-format
+msgid ""
+"Some steps are not completed.\n"
+"\n"
+"Do you really want to quit now?"
+msgstr ""
+
+#: steps_interactive.pm:1144
+#, c-format
+msgid "Congratulations"
+msgstr ""
+
+#: steps_interactive.pm:1147
+#, c-format
+msgid "Reboot"
+msgstr ""
+
+#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
+#: steps_list.pm:16
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Language"
+msgstr ""
+
+#: steps_list.pm:16 steps_list.pm:23
+#, c-format
+msgid "Localization"
+msgstr ""
+
+#: steps_list.pm:17
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"License"
+msgstr ""
+
+#: steps_list.pm:18
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Mouse"
+msgstr ""
+
+#: steps_list.pm:19 steps_list.pm:20
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Hard drive detection"
+msgstr ""
+
+#: steps_list.pm:21 steps_list.pm:22
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Installation class"
+msgstr ""
+
+#: steps_list.pm:23
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Keyboard"
+msgstr ""
+
+#: steps_list.pm:24
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Security"
+msgstr ""
+
+#: steps_list.pm:25
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Partitioning"
+msgstr ""
+
+#: steps_list.pm:27 steps_list.pm:28
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Formatting"
+msgstr ""
+
+#: steps_list.pm:29
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Choosing packages"
+msgstr ""
+
+#: steps_list.pm:31
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Installing"
+msgstr ""
+
+#: steps_list.pm:34
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Users"
+msgstr ""
+
+#: steps_list.pm:38 steps_list.pm:39
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Bootloader"
+msgstr ""
+
+#: steps_list.pm:40 steps_list.pm:41
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Configure X"
+msgstr ""
+
+#: steps_list.pm:42
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Summary"
+msgstr ""
+
+#: steps_list.pm:44 steps_list.pm:45
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Services"
+msgstr ""
+
+#: steps_list.pm:46
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Updates"
+msgstr ""
+
+#: steps_list.pm:48
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Exit"
+msgstr ""
diff --git a/perl-install/install/share/po/id.po b/perl-install/install/share/po/id.po
index 4791fc80e..32be4a899 100644
--- a/perl-install/install/share/po/id.po
+++ b/perl-install/install/share/po/id.po
@@ -1,38 +1,92 @@
-# Instalator Grafis Mandriva Linux
-# Copyright (C) 1999 Mandriva
-# Budi Rachmanto <rac@mandrivalinux.org>, 2001-2003
-# Linux Indonesia <http://www.linux.or.id>, 1999-2001
-# Mohammad DAMT <mdamt@cdl2000.com>, 1999-2001
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# Ahmad Ramadhana <ahmad_ramadhana@yahoo.com.sg>, 2005
# Andy <chandy@indo.net.id>, 1999
+# Bayu Artanto <bayuart@yahoo.com>, 2005
+# erwiensamantha <erwiensamantha@gmail.com>, 2005
+# erwiensamantha <erwiensamantha@gmail.com>, 2005
+# Firdaus <dausnux@gmail.com>, 2005
# Kelana <nk@telkom.net>, 1999
-# Willy Sudiarto Raharjo <willysr@gmail.com>, 2004 - 2007.
-# Erwien Samantha <erwiensamantha@gmail.com>, 2005.
-# Bayu Artanto <bayuart@yahoo.com>, 2005.
-# Ahmad Ramadhana <ahmad_ramadhana@yahoo.com.sg>, 2005.
-# Firdaus <dausnux@gmail.com>, 2005.
-# Sofian <sofianhanafi@yahoo.com>, 2005.
-#
+# Kiki <kiki.syahadat@yahoo.co.id>, 2013-2015
+# Kiki <kiki.syahadat@yahoo.co.id>, 2013
+# Kiki Syahadat <kiki.syahadat@yahoo.co.id, 2012
+# Kiki <kiki.syahadat@yahoo.co.id>, 2013
+# Sofian <sofianhanafi@yahoo.com>, 2005
msgid ""
msgstr ""
-"Project-Id-Version: DrakX 0.1\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-09-28 01:14+0700\n"
-"Last-Translator: Willy Sudiarto Raharjo <willysr@gmail.com>\n"
-"Language-Team: Indonesia <mdk-id@yahoogroups.com>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Kiki <kiki.syahadat@yahoo.co.id>\n"
+"Language-Team: Indonesian (http://www.transifex.com/MageiaLinux/mageia/"
+"language/id/)\n"
+"Language: id\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 0.6\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Bergabunglah Bersama Kami!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Buatlah ini milik Anda!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "Pilihan Anda!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Peralatan perkantoran"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Hiburan rumah"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "Untuk anak-anak"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "Untuk keluarga!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "Untuk developer!"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Terima kasih!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Bebaskan!"
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
-msgstr "Apakah Anda memiliki media tambahan lagi?"
+msgstr "Apakah Anda memiliki media bantu lanjutan?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -40,146 +94,164 @@ msgid ""
"\n"
"Do you have a supplementary installation medium to configure?"
msgstr ""
-"Media berikut ditemukan dan akan digunakan selama installasi: %s.\n"
+"Media berikut ditemukan dan akan digunakan selama instalasi: %s.\n"
"\n"
"\n"
-"Apakah Anda memiliki media installasi tambahan untuk dikonfigurasi?"
+"Apakah Anda memiliki media instalasi bantu untuk dikonfigurasi?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Jaringan (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Jaringan (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Jaringan (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "URL dari mirror?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "URL harus diawali dengan ftp:// atau http://"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr "Menghubungi situs Mandriva Linux untuk mengambil daftar mirror..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Gagal menghubungi situs Mandriva Linux untuk mengambil daftar mirror yang "
-"tersedia"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Pilih mirror tempat Anda ingin mengambil paket"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
-msgstr "Setup NFS"
+msgstr "Pengaturan NFS"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
-msgstr "Harap masukkan nama host dan direktori dari media NFS Anda"
+msgstr "Silakan masukkan hostname dan direktori media NFS Anda"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
-msgstr "Nama host tidak ada"
+msgstr "Hostname tidak ada"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "Direktori harus dimulai dengan \"/\""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
-msgstr "Nama host dari mount NFS ?"
+msgstr "Hostname dari mount NFS ?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Direktori"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
-msgstr "Tambahan"
+msgstr "Media bantu"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
msgstr ""
-"Tidak dapat menemukan file daftar paket pada mirror ini. Pastikan lokasinya "
+"Tidak bisa menemukan file daftar paket pada mirror ini. Pastikan lokasinya "
"benar."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Mencari paket yang sudah terinstall..."
+msgid "Core Release"
+msgstr "Core Rilis"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Menghapus paket-paket sebelum upgrade..."
+msgid "Tainted Release"
+msgstr "Tainted Rilis"
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Mencari paket untuk diupgrade..."
+msgid "Nonfree Release"
+msgstr "Nonfree Rilis"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"Anda telah memilih server berikut: %s\n"
-"\n"
-"\n"
-"Server ini aktif secara default. Mereka tidak memiliki masalah keamanan,\n"
-"tetapi bisa saja ditemukan. Pada kasus tersebut, Anda harus memastikan\n"
-"untuk melakukan upgrade secepat mungkin.\n"
-"\n"
-"\n"
-"Apakah Anda hendak menginstall server ini?\n"
+"Beberapa hardware pada komputer Anda memerlukan beberapa firmwares non free "
+"agar driver free software bisa bekerja."
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "Anda harus menghidupkan \"%s\""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "\"%s\" berisi beberapa bagian dari sistem dan aplikasinya"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "\"%s\" berisi software non free.\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"Juga berisi firmware yang diperlukan untuk device tertentu untuk beroperasi "
+"(misal: beberapa perangkat grafis ATI/AMD, beberapa perangkat jaringan, "
+"beberapa perangkat RAID, ...)"
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"\"%s\" berisi software yang tidak bisa didistribusikan di setiap negara "
+"karena masalah paten software."
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+"Juga berisi software dari \"%s\" yang dibangun ulang dengan kemampuan "
+"tambahan."
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+"Di sini Anda bisa menghidupkan lebih banyak media jika Anda menginginkannya"
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Media ini menyediakan update paket untuk media \"%s\""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Melihat paket yang sudah terinstall..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Menemukan paket untuk diupgrade..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Menghapus paket sebelum upgrade..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -187,87 +259,92 @@ msgid ""
"\n"
"Do you really want to remove these packages?\n"
msgstr ""
-"Paket berikut akan dihapus agar sistem Anda dapat di-upgrade: %s\n"
+"Paket berikut akan dihapus untuk memungkinkan upgrade sistem Anda: %s\n"
"\n"
"\n"
-"Apakah Anda ingin menghapus paket tersebut?\n"
+"Apakah Anda benar-benar ingin menghapus paket ini?\n"
+
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Error membaca file %s"
-#: any.pm:1055
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "Disk berikut telah diubah namanya:"
+msgstr "Disk berikut telah diubah nama:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (sebelumnya bernama %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
-msgstr "HFS"
+msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Jaringan"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
-msgstr "Silahkan pilih media"
+msgstr "Silakan pilih sebuah media"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "File sudah ada. Timpa file ini ?"
+msgstr "File sudah ada. Timpa file ini?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Izin ditolak"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
-msgstr "Nama NFS yang salah"
+msgstr "Nama NFS salah"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
-msgstr "Media rusak %s"
+msgstr "Media %s rusak"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
-msgstr "Tidak bisa membuat screenshot sebelum buat partisi"
+msgid "Cannot make screenshots before partitioning"
+msgstr "Tidak bisa membuat screenshot sebelum mempartisi"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
-msgstr "Screenshot akan tersedia setelah installasi pada %s"
+msgstr "Screenshot akan tersedia setelah install di %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
-msgstr "Installasi"
+msgstr "Instalasi"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Konfigurasi"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Anda juga harus memformat %s"
@@ -278,388 +355,482 @@ msgid ""
"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
"You can find some information about them at: %s"
msgstr ""
-"Beberapa perangkat keras pada komputer Anda memerlukan driver \n"
-"``proprietary'' agar bekerja. Anda bisa mencarinya pada : %s"
+"Beberapa hardware pada komputer Anda memerlukan driver ``proprietari'' untuk "
+"bekerja.\n"
+"Anda bisa menemukan informasinya di: %s"
#: interactive.pm:22
#, c-format
msgid "Bringing up the network"
-msgstr "Mengaktifkan jaringan"
+msgstr "Menaikkan jaringan"
#: interactive.pm:27
#, c-format
msgid "Bringing down the network"
-msgstr "Menonaktifkan jaringan"
+msgstr "Menurunkan jaringan"
-#: media.pm:703 media.pm:714
+#: media.pm:397
#, c-format
-msgid "Downloading file %s..."
-msgstr "Mendownload file %s..."
+msgid "Please wait, retrieving file"
+msgstr "Silakan tunggu, mengambil file"
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "tidak bisa menambah media"
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
-msgstr "Menyalin beberapa paket pada disk untuk kebutuhan di masa depan"
+msgstr "Menyalin beberapa paket pada disk untuk digunakan di kemudian hari"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Penyalinan sedang berjalan"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "harus ada"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "penting"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
-msgstr "amat bagus"
+msgstr "sangat bagus"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "bagus"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "mungkin"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "Mendapatkan informasi paket dari meta-data XML..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Tidak ada info xml untuk media \"%s\", hanya sebagian hasil untuk paket %s"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Tidak ada deskripsi"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"Beberapa paket yang diminta oleh %s tidak bisa diinstall:\n"
+"%s"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "Workstation"
+msgid "An error occurred:"
+msgstr "Sebuah error terjadi:"
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Workstation Kantor"
+msgid "A fatal error occurred: %s."
+msgstr "Sebuah error fatal terjadi: %s."
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
-msgstr ""
-"Program office: pengolah kata (OpenOffice.org Writer, Kword), spreadsheet "
-"(OpenOffice.org Calc, Kspread), viewer pdf, dll"
+msgid "Do not ask again"
+msgstr "Jangan tanya lagi"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "Transaksi instalasi %d gagal"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Instalasi paket gagal:"
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "Workstation"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Workstation Perkantoran"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Program office: pengolah kata (kword, abiword), spreadsheet (kspread, "
-"gnumeric), viewer pdf, dll"
+"Program perkantoran: pengolah kata (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), pembaca PDF, dll"
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Komputer Game"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Program hiburan: arcade, papan, strategi, dll"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Komputer Multimedia"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
-msgstr "Program untuk memainkan/mengedit suara dan video"
+msgstr "Program untuk memutar/mengedit suara dan video"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Komputer Internet"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-"Kumpulan aplikasi untuk membaca dan mengirimkan email dan berita (pine, "
-"mutt, tin..) dan untuk menjelajah Web"
+"Kumpulan peralatan untuk membaca dan mengirim surat dan berita (mutt, tin..) "
+"dan menjelajahi Web"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Komputer Jaringan (klien)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
-msgstr "Klien untuk berbagai protokol, termasuk ssh"
+msgstr "Klien untuk protokol yang berbeda termasuk ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
-msgstr "Aplikasi untuk mempermudah konfigurasi komputer Anda."
+msgstr "Peralatan untuk memudahkan konfigurasi komputer Anda"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
-msgstr "Aplikasi Konsol"
+msgstr "Peralatan Konsol"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
-msgstr "Editor, shell, aplikasi file, terminal"
+msgstr "Editor, shell, peralatan file, terminal"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Pengembangan"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
-msgstr "Pustaka, program, dan file include untuk pengembangan C dan C++"
+msgstr "Librari, program dan file yang disertakan untuk pengembangan C dan C++"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Dokumentasi"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Buku dan Howto untuk Linux dan Free Software"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Linux Standard Base. Dukungan aplikasi pihak ketiga"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Server Web"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Groupware"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Server Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Firewall/Router"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Gateway Internet"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
-msgstr "Mail/Berita"
+msgstr "Surat/Berita"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Server mail Postfix, server berita Inn"
+msgstr "Server surat Postfix, server berita Inn"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
-msgstr "Server Direktori"
+msgstr "Server direktori"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "Server FTP"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "Nama Domain dan Network Information Server"
+msgstr "Server Nama Domain dan Informasi Jaringan"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "Server Sharing File dan Printer"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "Server NFS, server Samba"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Basis Data"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "Server Basis Data PostgreSQL dan MySQL"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "Server Basis Data PostgreSQL dan MariaDB"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
-msgstr "Mail"
+msgstr "Surat"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
-msgstr "Server mail Postfix"
+msgstr "Server surat Postfix"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "Server basis data PostgreSQL atau MySQL"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "Server basis data PostgreSQL atau MariaDB"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
-msgstr "Komputer Server Jaringan"
+msgstr "Server Komputer Jaringan"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "server NFS, SMB, Proxy, dan SSH"
+msgstr "Server NFS, server SMB, server Proxy, server ssh"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
-msgstr "Mode Grafis"
+msgstr "Lingkungan Grafis"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "Workstation KDE"
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr ""
-"K Desktop Environment, lingkungan grafis dasar dengan kumpulan aplikasi yang "
-"menyertainya"
+"K Desktop Environment, lingkungan grafis dasar dengan kumpulan peralatan "
+"yang menyertainya"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
-msgstr "Workstation Gnome"
+msgstr "Workstation GNOME"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr ""
-"Lingkungan grafis dengan kumpulan aplikasi dan aplikasi desktop yang ramah "
-"pengguna"
+"Sebuah lingkungan grafis dengan kumpulan aplikasi dan peralatan desktop yang "
+"mudah digunakan"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Lingkungan grafis yang ringan dengan seperangkat aplikasi dan peralatan "
+"desktop yang mudah digunakan"
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "Lingkungan kerja MATE"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Lingkungan kerja Cinnamon"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Lingkungan grafis berbasis GNOME"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "Desktop LXQt"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "Port QT generasi selanjutnya dari lingkungan desktop yang ringan"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
#, c-format
-msgid "IceWm Desktop"
-msgstr "Desktop IceWm"
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr "Lingkungan grafis yang cepat dan ringan"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "Desktop LXDE"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Sebuah lingkungan grafis yang cepat dan ringan"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
-msgstr "Desktop Grafis lainnya"
+msgstr "Desktop Grafis Lainnya"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm, dsb"
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, dsb"
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Utilitas"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "Server SSH"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Server Konfigurasi Remote Webmin"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Utilitas Jaringan/Pengawasan"
+msgstr "Utilitas/Monitoring Jaringan"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
-msgstr "Aplikasi pengawasan, akuntasi proses, tcpdump, nmap, ..."
+msgstr "Peralatan monitoring, penghitungan proses, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Wizard Mandriva"
+msgid "Mageia Wizards"
+msgstr "Wizard Mageia"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Wizard untuk mengkonfigurasi server"
@@ -670,10 +841,10 @@ msgid ""
"An error occurred, but I do not know how to handle it nicely.\n"
"Continue at your own risk."
msgstr ""
-"Terjadi kesalahan, tetapi tidak diketahui cara mengatasinya dengan baik.\n"
-"Lanjutkan dengan resiko ditanggung sendiri."
+"Terjadi error yang tidak diketahui cara yang baik untuk menanganinya.\n"
+"Lanjutkan dengan resiko yang Anda tanggung sendiri."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -682,9 +853,9 @@ msgid ""
"\"\n"
msgstr ""
"Beberapa paket penting tidak terinstall dengan benar.\n"
-"Mungkin drive cdrom atau cdromnya yang rusak.\n"
-"Periksa cdrom pada komputer yang sudah terinstal dengan\n"
-"perintah \"rpm -qpl media/main/*.rpm\"\n"
+"Mungkin drive cdrom atau cdrom Anda rusak.\n"
+"Periksa cdrom pada komputer yang sudah terinstall menggunakan \"rpm -qpl "
+"media/main/*.rpm\"\n"
#: steps_auto_install.pm:71 steps_stdio.pm:27
#, c-format
@@ -693,310 +864,371 @@ msgstr "Memasuki langkah `%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Installasi Mandriva Linux %s"
+msgid "%s Installation %s"
+msgstr "Instalasi %s %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
-msgstr "<Tab>/<Alt-Tab> antar elemen"
+msgstr "<Tab>/<Alt-Tab> di antara elemen"
+
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Server Xorg lambat memulai. Silakan tunggu..."
-#: steps_gtk.pm:189
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"Sumber daya sistem Anda rendah. Anda akan mengalami kesulitan\n"
-"menginstall Mandriva Linux. Jika terjadi, Anda bisa mencoba\n"
-"installasi berbasis teks. Untuk melakukannya, tekan `F1' saat\n"
-"booting pada CDROM, lalu ketikkan `text'."
+"Sistem Anda memiliki sumber daya yang rendah. Anda mungkin menemukan "
+"beberapa\n"
+"masalah instalasi %s. Jika ini terjadi, Anda bisa mencoba instalasi berbasis "
+"teks.\n"
+"Untuk melakukannya, tekan `F1' saat booting pada CDROM, lalu masukkan `text'."
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Pemilihan Media"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Install Desktop GNOME %s"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Instalasi kustomisasi"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Desktop Plasma"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "Desktop GNOME"
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Desktop kustomisasi"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Ini adalah pratampil desktop '%s'."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Klik pada gambar untuk melihat pratampil lebih besar"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
-msgstr "Pilihan Grup Paket"
+msgstr "Pemilihan Grup Paket"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
-msgstr "Pilih paket individu"
+msgstr "Pemilihan paket individu"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Ukuran total: %d / %d MB"
+msgid "Unselect All"
+msgstr "Jangan pilih Semua"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Paket rusak"
+msgid "Total size: %d / %d MB"
+msgstr "Ukuran total: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Versi: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Ukuran: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
-msgstr "Tingkat kepentingan: "
+msgstr "Penting:"
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Anda tidak bisa memilih/tidak memilih paket ini"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
-msgstr "karena %s hilang"
+msgstr "karena %s tidak ada"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "karena %s tidak terpenuhi"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "mencoba mempromosikan %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "untuk menjaga %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
-"Anda tidak bisa memilih paket ini karena tidak ada ruang kosong yang tersisa"
+"Anda tidak bisa memilih paket ini karena tidak ada lagi ruang tersisa untuk "
+"menginstall"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
-msgstr "Paket berikut akan diinstal"
+msgstr "Paket berikut akan diinstall"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Paket berikut akan dihapus"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
-msgstr "Ini merupakan paket wajib, tidak bisa dibuang"
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr "Ini adalah paket wajib, tidak bisa tidak dipilih"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
-msgstr "Anda tidak bisa tidak memilih paket ini. Ia sudah terinstall"
+msgid "You cannot unselect this package. It is already installed"
+msgstr "Anda tidak bisa tidak memilih paket ini. Ini sudah terinstall"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
-msgstr "Anda tidak bisa tidak memilih paket. Paket harus diupgrade"
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr "Anda tidak bisa tidak memilih paket ini. Ini harus diupgrade"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
-msgstr "Tunjukkan paket yang sudah dipilih secara otomatis"
+msgstr "Tunjukkan paket terpilih secara otomatis"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
-msgstr "Instal"
+msgstr "Install"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Pilihan Muat/Simpan"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Mengupdate pilihan paket"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
-msgstr "Installasi minimal"
+msgstr "Instalasi minimal"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
-msgstr "Manajemen Perangkat Lunak"
+msgstr "Manajemen Software"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
-msgstr "Pilih paket yang akan diinstal"
+msgstr "Pilih paket yang ingin Anda install"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Menginstall"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
-msgstr "Tanpa Detail"
+msgstr "Tidak ada rincian"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Sisa waktu"
+msgid "Time remaining:"
+msgstr "Waktu tersisa:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Memperkirakan"
+msgid "(estimating...)"
+msgstr "(memperkirakan...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d paket"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Ringkasan"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
-msgstr "Konfigurasikan"
+msgstr "Konfigurasi"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
-msgstr "tidak dikonfigurasikan"
+msgstr "tidak terkonfigurasi"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-"Media installasi berikut ditemukan. Jika Anda ingin\n"
-"melewati beberapa, Anda bisa tidak memilihnya sekarang."
+"Media instalasi berikut telah ditemukan.\n"
+"Jika Anda ingin melewati beberapa, Anda bisa tidak memilihnya."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-"Anda memiliki opsi untuk menyalin isi CD pada hard disk sebelum installasi. "
-"Proses akan dilanjutkan dari hard disk dan paket akantetap tersedia setelah "
-"sistem terinstall."
+"Anda memiliki opsi untuk menyalin isi dari CD ke hard disk sebelum "
+"instalasi.\n"
+"Proses kemudian akan dilanjutkan dari hard disk dan paket akan tetap "
+"tersedia setelah sistem terinstall."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "Salin seluruh CD"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
-msgstr "Terjadi kesalahan"
+msgstr "Sebuah error terjadi"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Pilih layout keyboard Anda."
+msgid "Please choose your keyboard layout"
+msgstr "Silakan pilih layout keyboard Anda"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Berikut daftar keyboard yang tersedia"
+msgid "Here is the full list of available keyboards:"
+msgstr "Ini adalah daftar lengkap keyboard yang tersedia:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
-msgstr "Instal/Upgrade"
+msgstr "Install/Upgrade"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
-msgstr "Installasi atau upgrade?"
+msgstr "Apakah ini instalasi atau upgrade?"
-#: steps_interactive.pm:134
+#: steps_interactive.pm:159
#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Install"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Upgrade %s"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
+msgid "Encryption key for %s"
+msgstr "Kunci enkripsi untuk %s"
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
+msgid "Cancel installation, reboot system"
+msgstr "Batalkan instalasi, reboot sistem"
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
-msgstr "Kunci enkripsi untuk %s"
+msgid "New Installation"
+msgstr "Instalasi Baru"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Upgrade instalasi sebelumnya (tidak direkomendasikan)"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
-msgstr "Mengkonfigurasi IDE"
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
+"Installer telah mendeteksi bahwa Linux yang terinstall di sistem Anda\n"
+"tidak bisa diupgrade dengan aman ke %s.\n"
+"\n"
+"Instalasi baru untuk menggantikan sistem lama Anda direkomendasikan.\n"
+"\n"
+"Peringatan : Anda harus membackup semua data pribadi Anda sebelum memilih \n"
+"\"Instalasi Baru\"."
-#: steps_interactive.pm:231
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+msgid "CD/DVD"
msgstr ""
-"Tidak ada ruang 1MB untuk bootstrap! Installasi akan dilanjutkan, tetapi "
-"untuk boot sistem, Anda perlu membuat partisi bootstrap pada DiskDrake"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+msgid "Configuring CD/DVD"
msgstr ""
-"Anda harus membuat PPC PReP Boot bootstrap! Installasi akan dilanjutkan, "
-"tetapi untuk boot sistem, Anda perlu membuat partisi bootstrap pada DiskDrake"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1005,164 +1237,212 @@ msgid ""
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
"Ganti Cd-Rom Anda!\n"
-"\n"
-"Masukkan Cd-Rom berlabel \"%s\" pada drive dan tekan Ok. Jika Anda tidak \n"
-"punya, tekan Batal untuk menghindari installasi dari Cd-Rom ini."
+"Silakan masukkan Cd-Rom berlabel \"%s\" ke drive Anda dan tekan Ok "
+"setelahnya.\n"
+"Jika Anda tidak memilikinya, tekan Batal untuk menghindari instalasi dari Cd-"
+"Rom ini."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Mencari paket yang tersedia..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-"Sistem Anda tidak memilih ruang kosong yang cukup untuk installasi atau "
-"upgrade (%dMB > %dMB)"
+"Sistem Anda tidak memiliki cukup ruang tersisa untuk instalasi atau upgrade "
+"(%dMB > %dMB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-"Pilih muat atau simpan pilihan paket.\n"
-"Formatnya sama dengan file auto_install."
+"Silakan pilih muat atau simpan pemilihan paket.\n"
+"Formatnya sama dengan file yang dihasilkan auto_install."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
-msgstr "Beban"
+msgstr "Muat"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Simpan"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "File rusak"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr "Install Desktop KDE Mandriva"
+msgid "Plasma"
+msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr "Install Desktop GNOME Mandriva"
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
+#: steps_interactive.pm:459
#, c-format
-msgid "Custom install"
-msgstr "Installasi kustomisasi"
+msgid "Desktop Selection"
+msgstr "Pemilihan Desktop"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
-"Anda bisa memilih profil desktop workstation Anda: KDE, GNOME atau Kustom"
+msgid "You can choose your workstation desktop profile."
+msgstr "Anda bisa memilih profil desktop workstation Anda."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
-msgstr "Ukuran terpilih melebihi ruang yang ada"
+msgstr "Ukuran terpilih lebih besar dari ruang tersedia"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
-msgstr "Tipe installasi"
+msgstr "Tipe install"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
-"Anda belum memilih grup paket.\n"
-"Pilih installasi minimal yang Anda inginkan:"
+"Anda belum memilih grup paket apapun.\n"
+"Silakan pilih instalasi minimal yang Anda inginkan:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Dengan X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Install paket-paket yang disarankan"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
-msgstr "Dengan dokumentasi dasar (disarankan!)"
+msgstr "Dengan dokumentasi dasar (direkomendasikan!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
-msgstr "Installasi minimal sesungguhnya (khususnya tanpa urpmi)"
+msgstr "Benar-benar instalasi minimal (terutama tanpa urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Menyiapkan upgrade..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
-msgstr "Mempersiapkan installasi"
+msgstr "Menyiapkan instalasi"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Menginstall paket %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
-msgstr "Terdapat kesalahan pengurutan paket:"
+msgstr "Terdapat error mengurut paket:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
-msgstr "Lanjutkan?"
+msgstr "Lanjutkan saja?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
-msgstr "Ulang kembali"
+msgstr "Coba lagi"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
-msgstr "Lewati paket ini"
+msgstr "Lewatkan paket ini"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
-msgstr "Lewati semua paket-paket dari media \"%s\""
+msgstr "Lewatkan semua paket dari media \"%s\""
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
-msgstr "Kembali pada media dan pemilihan paket"
+msgstr "Kembali ke pemilihan media dan paket"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
-msgstr "Terdapat kesalahan penginstallan paket %s."
+msgstr "Terdapat error menginstall paket %s."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
-msgstr "Konfigurasi pasca installasi"
+msgstr "Konfigurasi pasca instalasi"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
-msgstr "Harap pastikan media Update Modul pada drive %s"
+msgstr "Silakan pastikan bahwa media Modul Update ada di drive %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Update"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Sekarang Anda memiliki kesempatan untuk mengatur media online."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Ini memungkinkan untuk menginstall update keamanan."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"Untuk mengatur media tersebut, Anda harus memiliki koneksi\n"
+"internet yang bekerja.\n"
+"\n"
+"Apakah Anda ingin mengatur media update?"
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Paket berikut akan diinstall"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Coba lagi?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Kesalahan ketika menambahkan media"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1174,158 +1454,107 @@ msgid ""
"\n"
"Do you want to install the updates?"
msgstr ""
-"Anda kini memiliki kesempatan untuk mendownload paket update. Paket ini\n"
-"telah diupdate setelah distribusi dirilis. Paket mungkin berisi perbaikan\n"
-"keamanan atau kesalahan.\n"
+"Sekarang Anda memiliki kesempatan untuk mendownload paket update. Paket ini\n"
+"telah diupdate setelah distribusi dirilis. Paket ini mungkin\n"
+"berisi perbaikan keamanan atau bug.\n"
"\n"
-"Untuk mendownload paket, Anda perlu koneksi Internet.\n"
+"Untuk mendownload paket ini, Anda memerlukan koneksi Internet.\n"
"\n"
"Apakah Anda ingin menginstall update?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Menghubungi mirror untuk mendapatkan daftar paket yang tersedia..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Tidak dapat menghubungi mirror %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s pada %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
-msgstr "Perangkat Keras"
+msgstr "Hardware"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
-msgstr "Kartu suara"
-
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Apakah Anda memiliki kartu suara ISA?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Jalankan \"sndconfig\" atau \"sndconfig\" setelah installasi untuk "
-"mengkonfigurasi kartu suara Anda"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Tidak ada kartu suara yang terdeteksi. Coba \"harddrake\" setelah installasi"
+msgstr "Perangkat suara"
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Antarmuka grafis"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Jaringan & Internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
-msgstr "Proxy "
+msgstr "Proxy"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "terkonfigurasi"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
-msgstr "Tingkat Keamanan"
+msgstr "Level Keamanan"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Firewall"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
-msgstr "telah diaktifkan"
+msgstr "diaktifkan"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
-msgstr "telah dinonaktifkan"
+msgstr "dimatikan"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
-msgstr "Anda belum mengkonfigurasi X. Apakah Anda yakin?"
+msgstr "Anda belum mengkonfigurasi X. Apakah Anda yakin menginginkan ini?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "Mempersiapkan bootloader..."
-
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"Nampaknya Anda memiliki komputer kuno/tidak dikenal, bootloader yaboot tidak "
-"akan bekerja. Installasi akan dilanjutkan, tetapi Anda harus menggunakan "
-"BootX atau cara lain untuk boot komputer Anda. Argumen kernel untuk fs root "
-"adalah: root=%s"
+msgid "Preparing initial startup program..."
+msgstr "Menyiapkan program startup awal..."
-#: steps_interactive.pm:1024
+#: steps_interactive.pm:1073
#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Apakah Anda ingin menggunakan aboot?"
+msgid "Be patient, this may take a while..."
+msgstr "Harap bersabar, ini mungkin akan memakan waktu..."
-#: steps_interactive.pm:1027
-#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Kesalahan menginstall aboot,\n"
-"paksakan installasi meskipun merusak partisi pertama?"
-
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-"Pada tingkat keamanan ini, akses pada file pada partisi Windows dibatasi "
-"hanya pada administrator."
+"Pada level keamanan ini, akses ke file di dalam partisi Windows terbatas "
+"pada administrator."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
-msgstr "Masukkan disket kosong pada drive %s"
+msgstr "Masukkan floppy kosong ke drive %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
-msgstr "Membuat disket installasi otomatis..."
+msgstr "Membuat instalasi otomatis floppy..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1336,50 +1565,15 @@ msgstr ""
"\n"
"Apakah Anda ingin keluar sekarang?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Selamat"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
-msgstr "Boot Ulang"
-
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Membuat disket installasi otomatis"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Installasi otomatis dapat dibuat otomatis penuh jika\n"
-"diinginkan, pada kasus ini akan mengambil hard disk!!\n"
-"(ini berarti untuk menginstall pada komputer lain).\n"
-"\n"
-"Anda mungkin memilih untuk mengulangi installasi.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Ulang"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Otomatis"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Simpan pilihan paket"
+msgstr "Reboot"
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
@@ -1413,14 +1607,14 @@ msgstr "Mouse"
msgid ""
"_: Keep these entry short\n"
"Hard drive detection"
-msgstr "Deteksi hard disk"
+msgstr "Pendeteksian hard drive"
#: steps_list.pm:21 steps_list.pm:22
#, c-format
msgid ""
"_: Keep these entry short\n"
"Installation class"
-msgstr "Kelas installasi"
+msgstr "Kelas instalasi"
#: steps_list.pm:23
#, c-format
@@ -1441,7 +1635,7 @@ msgstr "Keamanan"
msgid ""
"_: Keep these entry short\n"
"Partitioning"
-msgstr "Pembuatan partisi"
+msgstr "Mempartisi"
#: steps_list.pm:27 steps_list.pm:28
#, c-format
@@ -1455,7 +1649,7 @@ msgstr "Memformat"
msgid ""
"_: Keep these entry short\n"
"Choosing packages"
-msgstr "Memilih paket-paket"
+msgstr "Memilih paket"
#: steps_list.pm:31
#, c-format
@@ -1471,13 +1665,6 @@ msgid ""
"Users"
msgstr "Pengguna"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Jaringan"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1520,114 +1707,25 @@ msgid ""
"Exit"
msgstr "Keluar"
-#~ msgid "All"
-#~ msgstr "Semua"
-
-#~ msgid "TV card"
-#~ msgstr "Kartu TV"
-
-#~ msgid "Boot"
-#~ msgstr "Boot"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Otentikasi"
-
-#~ msgid "Arkeia"
-#~ msgstr "Arkeia"
-
-#~ msgid "Flatout"
-#~ msgstr "Flatout"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "3D"
-#~ msgstr "3D"
-
-#~ msgid "CMS"
-#~ msgstr "CMS"
-
-#~ msgid "CRM"
-#~ msgstr "CRM"
-
-#~ msgid "2007 product line"
-#~ msgstr "Jajaran produk 2007"
-
-#~ msgid "Invictus Firewall"
-#~ msgstr "Firewall Invictus"
-
-#~ msgid "Discovery Live Mode"
-#~ msgstr "Mode Discovery Live"
-
-#~ msgid "How to register"
-#~ msgstr "Bagaimana mendaftarkan diri"
-
-#~ msgid "Rpmdrake 2"
-#~ msgstr "Rpmdrake 2"
-
-#~ msgid "Mandriva Online Services"
-#~ msgstr "Layanan Online Mandriva"
-
-#~ msgid "New Theme"
-#~ msgstr "Tema baru"
-
-#~ msgid "Web 2.0"
-#~ msgstr "Web 2.0"
-
-#~ msgid "Kaspersky"
-#~ msgstr "Kaspersky"
-
-#~ msgid "LinDVD"
-#~ msgstr "LinDVD"
-
-#~ msgid "Skype"
-#~ msgstr "Skype"
-
-#~ msgid "Transgaming/Cedega"
-#~ msgstr "Transgaming/Cedega"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "(%d paket, %d MB)"
-#~ msgstr[1] "(%d paket, %d MB)"
-
-#~ msgid "%d packages"
-#~ msgstr "%d paket"
-
-#~ msgid "Language"
-#~ msgstr "Bahasa"
-
-#~ msgid "License"
-#~ msgstr "Lisensi"
-
-#~ msgid "Installation class"
-#~ msgstr "Kelas installasi"
-
-#~ msgid "Formatting"
-#~ msgstr "Memformat"
-
-#~ msgid "Choosing packages"
-#~ msgstr "Memilih paket-paket"
-
-#~ msgid "Users"
-#~ msgstr "Pengguna"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "URL dari mirror?"
-#~ msgid "Networking"
-#~ msgstr "Jaringan"
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "URL harus diawali dengan ftp:// atau http://"
-#~ msgid "Configure X"
-#~ msgstr "Konfigurasi X"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr ""
+#~ "Menghubungi situs web %s untuk mendapatkan daftar mirror yang tersedia..."
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
#~ msgstr ""
-#~ "Tidak bisa mengakses modul kernel yang berhubungan dengan kernal Anda "
-#~ "(file %s hilang), ini biasanya berarti disket boot tidak sinkron dengan "
-#~ "media installasi (buatlah disket boot baru)"
+#~ "Gagal menghubungi situs web %s untuk mendapatkan daftar mirror yang "
+#~ "tersedia"
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Pilih mirror di mana Anda ingin mengambil paket"
diff --git a/perl-install/install/share/po/is.po b/perl-install/install/share/po/is.po
index d45c9852c..f291029e3 100644
--- a/perl-install/install/share/po/is.po
+++ b/perl-install/install/share/po/is.po
@@ -1,32 +1,81 @@
-# Icelandic translation of DrakX.po
-# Translation file for Mandriva Linux graphic install, DrakX
-# Copyright (C) 1999,2003, 2005, 2006, 2007 Free Software Foundation, Inc.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
-#
-# Jóhann Þorvarðarson <johann.torvardarson@lais.is>, 1999-2000.
-# Þórarinn (Tony) R. Einarsson <thori@mindspring.com>, 1999-2000.
-# Pjetur G. Hjaltason <pjetur@pjetur.net>, 2003, 2005, 2006, 2007.
+# Translators:
+# Pjetur G. Hjaltason <pjetur@pjetur.net>, 2003,2005-2009
msgid ""
msgstr ""
-"Project-Id-Version: DrakX\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-02-19 20:22+0000\n"
-"Last-Translator: Pjetur G. Hjaltason <pjetur@pjetur.net>\n"
-"Language-Team: Icelandic <kde-isl@molar.is>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Icelandic (http://www.transifex.com/MageiaLinux/mageia/"
+"language/is/)\n"
+"Language: is\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n"
+
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr ""
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr ""
-#: any.pm:155
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr ""
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr ""
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr ""
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr ""
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
msgstr "Hefur þú einhverja aðra aukamiðla?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -39,94 +88,57 @@ msgstr ""
"\n"
"Hefur þú einhverja aðra miðla sem þarf að stilla?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "Geisladrif"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Net (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Net (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Net (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "Vefslóð að spegli?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "Slóð verður að byrja á ftp:// eða http://"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Hef samband við Mandriva Linux vefinn til að sækja lista yfir fáanlega "
-"spegla..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Mistókst að tengjast við Mandriva Linux vefinn til að sækja lista yfir "
-"fáanlega spegla"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Veldu spegilvélina þaðan sem á að sækja pakkanna"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "NFS uppsetning"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr "Sláðu inn vélarnafn og möppu sem inniheldur NFS miðil"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr "Vélarnafn vantar"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "Möppunafn verður að byrja á \"/\""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "Vélarnafn á NFS tengipunkti?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Mappa"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "Aukalegt"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
@@ -135,47 +147,90 @@ msgstr ""
"Finn ekki pakkalista-skrá á þessum spegli. Athugaðu hvort staðsetningin sé "
"rétt."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Athuga þegar uppsetta pakka..."
+msgid "Core Release"
+msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Fjarlægi pakka áður en uppfærsla hefst..."
+msgid "Tainted Release"
+msgstr ""
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Leita að pökkum til að uppfæra..."
+msgid "Nonfree Release"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
msgstr ""
-"Þú hefur valið eftirfarandi miðlara: %s\n"
-"\n"
-"\n"
-"Þessir miðlarar eru ræstir sjálfkrafa við ræsingu kerfis. Þeir hafa ekki\n"
-"neinar þekktar öryggisvillur, en nýjar kunna að hafa fundist. Í því\n"
-"tilviki verður þú að uppfæra eins fljótt og hægt er.\n"
-"\n"
-"\n"
-"Vilt þú raunverulega setja upp þessa miðlara?\n"
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Athuga þegar uppsetta pakka..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Leita að pökkum til að uppfæra..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Fjarlægi pakka áður en uppfærsla hefst..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -188,82 +243,87 @@ msgstr ""
"\n"
"Viltu í alvöru fjarlægja þessa pakka?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Villa við lestur úr skránni %s"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "Eftirfarandi diskar voru endurnefndir:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (áður nefnt %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Net"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "Veldu miðil"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Skráin er þegar til. Skrifa yfir hana?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Aðgangi hafnað"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "Rangt NFS nafn"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "Gallaður miðill %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Get ekki tekið skjámyndir fyrr en disksneiðar hafa verið skilgreindar"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Skjámyndir verða tiltækar eftir uppsetningu í %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Set inn"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Stillingar"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Þú verður einnig að forsníða %s"
@@ -288,107 +348,147 @@ msgstr "Keyri upp netið"
msgid "Bringing down the network"
msgstr "Keyri niður netið"
-#: media.pm:703 media.pm:714
+#: media.pm:397
#, c-format
-msgid "Downloading file %s..."
-msgstr "Sæki skrá %s..."
+msgid "Please wait, retrieving file"
+msgstr "Bíðið, sæki skrá"
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "get ekki bætt við miðli"
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr "Afrita nokkra pakka á diska til notkunar síðar"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Afritun í gangi"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "verð að fá"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "áríðandi"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "mjög þægilegt"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "þægilegt"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "kannski"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Engin XML-info skrá fyrir miðil \"%s\", aðeins takmarkaðar upplýsingar fyrir "
+"pakka %s"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Engin lýsing til"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"Suma pakka sem %s þarfnast, er ekki hægt að setja inn:\n"
+"%s"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "Vinnustöð"
+msgid "An error occurred:"
+msgstr "Villa kom upp:"
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Skrifstofu-vinnustöð"
+msgid "A fatal error occurred: %s."
+msgstr "Banvæn villa kom upp: %s."
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "Do not ask again"
msgstr ""
-"Skrifstofu forrit: ritvinnsla (OpenOffice.org Writer, Kword), töflureiknar "
-"(OpenOffice.org Calc, Kspread) pdf skoðarar, o.s.frv"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d Innsetningarfærslur brugðust"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Innsetning pakka tókst ekki:"
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "Vinnustöð"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Skrifstofu-vinnustöð"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Skrifstofu forrit: ritvinnsla (kword, abiword), töflureiknar (kspread, "
-"gnumeric) pdf skoðarar, o.s.frv"
+"Skrifstofu forrit: ritvinnsla (LibreOffice Writer, Kword), töflureiknar "
+"(LibreOffice Calc, Kspread) pdf skoðarar, o.s.frv"
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Leikja-(vinnu)stöð"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Leikjaforrit, skotleikir, borðleikir, herkænskuleikir og fleira"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Margmiðlunar-vinnustöð"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Spila og breyta hljóðskrám og kvikmyndum"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Internet-vinnustöð"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
@@ -397,262 +497,314 @@ msgstr ""
"Tól og tæki til að lesa og senda póst, fréttir (mutt,tin...) og til að "
"flakka á vefnum"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Netbiðlarar"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Biðlarar fyrir ýmsar samskiptareglur þ.m.t ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Tæki til að auðvelda uppsetningu tölvunnar"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Skjától"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Ritlar, skeljar, skráatól, skjáhermar"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Forritun"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "C og C++ undirforritasöfn, forrit og lýsingaskrár"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Handbækur"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Bækur og leiðbeiningar um Linux og frjálsan hugbúnað"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Linux Standard Base. Stuðningur fyrir forrit þriðja aðila"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Vefmiðlari"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Hópvinnuforrit"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Kolab Miðlari"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Eldveggur/beinir"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Internet netgátt"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "Póstur/Fréttir"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Postfix póstþjónusta, Inn fréttaþjónusta"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Upplýsingaveita"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP Miðlari"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "Nafnaþjónustur og net-upplýsingaveitur"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "Skráa og prentmiðlari"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "NFS miðlari, Samba miðlari"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Gagnagrunnar"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL og MySQL gagnagrunns-miðlarar"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "PostgreSQL og MariaDB gagnagrunns-miðlarar"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Vefur/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Póstur"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Postfix póstþjónusta"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL eða MySQL gagnagrunns-miðlarar"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL eða MariaDB gagnagrunns-miðlarar"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Netþjónustur"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "NFS-þjónusta, SMB-þjónusta, Sel-þjónusta, ssh-þjónusta"
+msgstr "NFS-þjónusta, SMB-þjónusta, Staðgengils-þjónusta, ssh-þjónusta"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Myndrænt umhverfi"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE Vinnustöð"
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr "KDE (K Desktop Environment). Gluggastjóri með safni hjálparforrita"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "Gnome vinnustöð"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
-msgstr "Gluggastjóri með notendavænum forritum og skjáborðstólum"
+msgstr "Gluggastjóri með notendavænum forritum og skjáborðs-tólum"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
#, c-format
-msgid "IceWm Desktop"
-msgstr "IceWm Skjáborð"
+msgid "Cinnamon Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "LXDE Skjáborð"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Aðrir gluggastjórar"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm, o.s.frv"
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Tól"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH Miðlari"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Webmin, stillingar á fjartengdri tölvu um vef"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "Netforrit/Neteftirlit"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "Eftirlitstól, vinna með notendur, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Mandriva Ráðgjafar"
+msgid "Mageia Wizards"
+msgstr "Mageia Ráðgjafar"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Ráðgjafar til að stilla miðlara"
@@ -666,7 +818,7 @@ msgstr ""
"Óþekkt villa kom upp sem ekki er hægt að meðhöndla.\n"
"Haltu áfram á eigin ábyrgð."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -686,204 +838,257 @@ msgstr "Byrja skref `%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux uppsetning %s"
+msgid "%s Installation %s"
+msgstr "%s uppsetning %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> milli skrefa"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Xorg miðlari er seinn að ræsa. Bíddu við..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
"Ef vélin þín er vanbúin að einhverju leyti þá getur þú átt\n"
-"í vandræðum með að setja upp Mandriva Linux.\n"
+"í vandræðum með að setja upp %s.\n"
"Ef svo er, þá gætir þú reynt að nota texta-uppsetningu.\n"
"Til þess að gera það, ýttu á F1 þegar þú ræsir af\n"
"geisladisknum og sláðu síðan inn `text'."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Val á miðlum"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Setja inn %s GNOME umhverfi"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Sérsniðin uppsetning"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "GNOME Skjáborð"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Sérsniðið Skjáborð"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Hér er forsýn af '%s' skjáborðinu."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Smelltu á myndir til að sjá stærri forsýn"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Val á pakkahóp"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Val á einstökum pökkum"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Heildarstærð: %d / %d MB"
+msgid "Unselect All"
+msgstr "Afvelja allt"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Skemmdur pakki"
+msgid "Total size: %d / %d MB"
+msgstr "Heildarstærð: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Útgáfa: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Stærð: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Mikilvægi: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Þú getur ekki valið/af-valið þennan pakka"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "vegna þess að %s vantar"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "vegna þess að %s er ekki uppfyllt"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "reyni að hækka vægi %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "til þess að halda %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr "Þú getur ekki valið þennan pakka því það er ekki nægilegt pláss"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Eftirfarandi pakkar verða settir inn"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Eftirfarandi pakkar verða fjarlægðir"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Þessi pakki verður að vera uppsettur, þú getur ekki af-valið hann"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Þú getur ekki af-valið þennan pakka hann er þegar uppsettur"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Þú getur ekki af-valið þennan pakka, það verður að uppfæra hann"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Sýna sjálfvirkt valda pakka"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
-msgstr "Innsetning"
+msgstr "Setja inn"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Sækja/Vista val"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Uppfæri val á pökkum"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Lágmarks uppsetning"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Hugbúnaðarumsýsla"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Veldu pakkana sem þú vilt setja inn"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Set inn"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Engar upplýsingar"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Tími eftir "
+msgid "Time remaining:"
+msgstr "Tími eftir:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Áætla"
+msgid "(estimating...)"
+msgstr "(áætla...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d pakki"
msgstr[1] "%d pakkar"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Yfirlit"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Stilla"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "ekki stillt"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
@@ -892,106 +1097,104 @@ msgstr ""
"Eftirfarandi uppsetningar-miðlar hafa fundist.\n"
"Ef þú vilt sleppa einhverjum af þeim, þá getur þú af-valið þá núna."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-"Þú hefur val um að afrita innihald geisladiskanna á diskinn fyrir "
+"Þú getur valið að afrita innihald geisladiskanna inn á diskinn fyrir "
"uppsetningu.\n"
"Síðan mun uppsetning halda áfram frá disknum og pakkarnir verða til staðar "
"þegar kerfið er að fullu uppsett."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "Afrita alla geisladiska"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Villa kom upp"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Veldu lyklaborðs-uppsetningu."
+msgid "Please choose your keyboard layout"
+msgstr "Veldu lyklaborðs-uppsetningu"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Hér er tæmandi listi af tiltækum lyklaborðum"
+msgid "Here is the full list of available keyboards:"
+msgstr "Hér er tæmandi listi af tiltækum lyklaborðum:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Innsetning/Uppfærsla"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Er þetta innsetning eða uppfærsla?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Innsetning"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Uppfæra %s"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
+msgid "Encryption key for %s"
+msgstr "Dulritunar-lykill fyrir %s"
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
+msgid "Cancel installation, reboot system"
+msgstr "Hætta við innsetningu, endurræsa kerfi"
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
-msgstr "Dulritunar-lykill fyrir %s"
+msgid "New Installation"
+msgstr "Ný Uppsetning"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Uppfæra fyrri uppsetningu (ekki mælt með)"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
-msgstr "Uppsetning IDE"
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+msgid "CD/DVD"
msgstr ""
-"Ekki pláss fyrir 1MB ræsigeira! Uppsetning mun halda áfram, en til að ræsa "
-"kerfið þitt verður þú að búa til ræsi-disksneið með DiskDrake"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+msgid "Configuring CD/DVD"
msgstr ""
-"Þú þarft að búa til PPC PReP for-ræsingu! Uppsetningin mun halda áfram,en "
-"til að ræsa kerfið, þarft þú að búa til ræsi-disksneið með DiskDrake"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1005,21 +1208,21 @@ msgstr ""
"Ef þú hefur ekki diskinn, ýttu þá að \"Hætta við\" til að sleppa uppsetningu "
"frá þessum diski."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Leita að tiltækum pökkum..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-"Það er ekki nóg laust pláss fyrir innsetningu eða uppfærslu á kerfinu þínu (%"
-"dMB > %dMB)"
+"Það er ekki nóg laust pláss fyrir innsetningu eða uppfærslu á kerfinu þínu "
+"(%dMB > %dMB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
@@ -1028,52 +1231,52 @@ msgstr ""
"Veldu hvort eigi að sækja eða vista pakkaval.\n"
"Sniðið er það sama og á auto_install skrám."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Sækja"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Vista"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Gölluð skrá"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Lágmarks uppsetning"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr "Val á Skjáborði"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
+msgid "You can choose your workstation desktop profile."
+msgstr "Þú getur valið vinnustöðvar-umhverfi (skjáborð)."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Valin stærð er stærri en tiltækt pláss"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Tegund uppsetningar"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1082,82 +1285,126 @@ msgstr ""
"Þú hefur ekki valið neina pakkahópa.\n"
"Veldu lágmarksuppsetningu sem þú vilt:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Með X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Með grunn-handbókum (mælt með!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Alger lágmarksuppsetning (ekkert urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Undirbý innsetningu"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Set inn pakka %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Það kom upp villa við að raða pökkum:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Viltu samt halda áfram?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "Reyna aftur"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr "Sleppa þessum pakka"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr "Sleppa ölum pökkum af miðli \"%s\""
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
msgstr "Fara til baka í val á miðlum og pökkum"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
msgstr "Það kom upp villa við innsetningu pakka %s."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Lokastillingar"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
-msgstr "Sstaðfestu að Uppfærslu-miðill sé í drifi %s"
+msgstr "Staðfestu að Uppfærslu-miðill sé í drifi %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Uppfærslur"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Eftirfarandi pakkar verða settir inn"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Reyna aftur?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Villa þegar miðli var bætt við"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1177,131 +1424,80 @@ msgstr ""
"\n"
"Viltu sækja uppfærslurnar?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Hef samband við vélina til að sækja lista yfir fáanlega pakka..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Get ekki tengst spegilvél %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s á %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Vélbúnaður"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Hljóðkort"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Er kannski ISA hljóðkort í vélinni?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Keyrðu \"alsaconf\" eða \"sndconfig\" eftir uppsetningu til að stilla "
-"hljóðkortið þitt"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Ekkert hljóðkort fannst. Reyndu að keyra \"harddrake\" eftir uppsetningu"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Myndrænt viðmót"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Staðarnet og Internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Sel"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
-msgstr "Uppsett"
+msgstr "stillt"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Öryggisþrep"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Eldveggur"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "virkt"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "óvirkt"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "Þú hefur ekki sett upp X, ertu viss um að þú viljir þetta?"
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "Set upp ræsistjórann..."
-
-#: steps_interactive.pm:1018
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Preparing initial startup program..."
msgstr ""
-"Það lítur út fyrir að þú sért að nota OldWorld eða óþekkta vél, yaboot "
-"ræsiforritið mun ekki virka fyrir þig. Uppsetning mun halda áfram en þú "
-"verður að nota BootX eða aðrar leiðir til að ræsa vélina. kjarna-viðfangið "
-"fyrir rótarsneiðina er: root=%s"
-#: steps_interactive.pm:1024
+#: steps_interactive.pm:1073
#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Viltu nota aboot?"
+msgid "Be patient, this may take a while..."
+msgstr "Verið þolinmóð þetta getur tekið nokkra stund..."
-#: steps_interactive.pm:1027
-#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Villa við uppsetningu á aboot, \n"
-"reyna að þvinga uppsetningu, þó það eyðileggi fyrstu disksneiðina?"
-
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
@@ -1310,17 +1506,17 @@ msgstr ""
"Í þessu öryggisþrepi er aðgangur að Windows disksneiðum takmarkaður við "
"kerfisstjóra."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Settu tóman diskling í drif %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Bý til diskling fyrir sjálfvirka uppsetningu..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1331,51 +1527,16 @@ msgstr ""
"\n"
"Viltu virkilega hætta núna?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Til hamingju"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Endurræsa"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Búa til diskling fyrir sjálfvirka uppsetningu"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Uppsetningu er hægt að hafa algerlega sjálfvirka,\n"
-"í því tilfelli tekur uppsetningin yfir diskinn!!\n"
-"(þetta er ætlað til uppsetningar á annari tölvu).\n"
-"\n"
-"Þú vilt kannski endurspila uppsetninguna\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Spila aftur"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Sjálfvirkt"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Vista val á pökkum"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1387,7 +1548,7 @@ msgstr "Velja tungumál"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "Staðfærsla"
#: steps_list.pm:17
#, c-format
@@ -1436,7 +1597,7 @@ msgstr "Öryggi"
msgid ""
"_: Keep these entry short\n"
"Partitioning"
-msgstr "Forsníða diska"
+msgstr "Skipting diska"
#: steps_list.pm:27 steps_list.pm:28
#, c-format
@@ -1457,7 +1618,7 @@ msgstr "Velja pakka"
msgid ""
"_: Keep these entry short\n"
"Installing"
-msgstr "Set inn"
+msgstr "Setja inn"
#: steps_list.pm:34
#, c-format
@@ -1466,13 +1627,6 @@ msgid ""
"Users"
msgstr "Notendur"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Net"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1515,114 +1669,24 @@ msgid ""
"Exit"
msgstr "Hætta"
-#~ msgid "All"
-#~ msgstr "Allt"
-
-#~ msgid "TV card"
-#~ msgstr "Sjónvarpskort"
-
-#~ msgid "Boot"
-#~ msgstr "Ræsing"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Auðkenning"
-
-#~ msgid "Arkeia"
-#~ msgstr "Arkeia"
-
-#~ msgid "Flatout"
-#~ msgstr "Flatout"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "3D"
-#~ msgstr "Þrívidd"
-
-#~ msgid "CMS"
-#~ msgstr "CMS"
-
-#~ msgid "CRM"
-#~ msgstr "CRM"
-
-#~ msgid "2007 product line"
-#~ msgstr "2007 vörur"
-
-#~ msgid "Invictus Firewall"
-#~ msgstr "Ósigrandi eldveggur"
-
-#~ msgid "Discovery Live Mode"
-#~ msgstr "Discovery Live Hamur"
-
-#~ msgid "How to register"
-#~ msgstr "Hvernig á að skrá"
-
-#~ msgid "Rpmdrake 2"
-#~ msgstr "Rpmdrake 2"
-
-#~ msgid "Mandriva Online Services"
-#~ msgstr "Mandriva Online Þjónusta"
-
-#~ msgid "New Theme"
-#~ msgstr "Nýtt þema"
-
-#~ msgid "Web 2.0"
-#~ msgstr "Web 2.0"
-
-#~ msgid "Kaspersky"
-#~ msgstr "Kaspersky"
-
-#~ msgid "LinDVD"
-#~ msgstr "LinDVD"
-
-#~ msgid "Skype"
-#~ msgstr "Skype"
-
-#~ msgid "Transgaming/Cedega"
-#~ msgstr "Transgaming/Cedega"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "(%d pakki, %d MB)"
-#~ msgstr[1] "(%d pakkar, %d MB)"
-
-#~ msgid "%d packages"
-#~ msgstr "%d pakkar"
-
-#~ msgid "Language"
-#~ msgstr "Velja tungumál"
-
-#~ msgid "License"
-#~ msgstr "Notkunarskilmálar"
-
-#~ msgid "Installation class"
-#~ msgstr "Innsetningarflokkur"
-
-#~ msgid "Formatting"
-#~ msgstr "Forsníð"
-
-#~ msgid "Choosing packages"
-#~ msgstr "Velja pakka"
-
-#~ msgid "Users"
-#~ msgstr "Notendur"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "Vefslóð að spegli?"
-#~ msgid "Networking"
-#~ msgstr "Net"
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "Slóð verður að byrja á ftp:// eða http://"
-#~ msgid "Configure X"
-#~ msgstr "Stilla X"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr ""
+#~ "Hef samband við %s vefinn til að sækja lista yfir fáanlega spegla..."
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
#~ msgstr ""
-#~ "Finn ekki kjarna-rekla sem passa við kjarnann þinn (skrána %s vantar), "
-#~ "þetta þýðir venjulega að þú hefur ekki uppfært ræsi-disklinginn þegar þú "
-#~ "uppfærðir kerfið (búðu til nýjan ræsi-diskling)"
+#~ "Mistókst að tengjast við %s vefinn til að sækja lista yfir fáanlega spegla"
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Veldu spegilvélina þaðan sem á að sækja pakkanna"
diff --git a/perl-install/install/share/po/it.po b/perl-install/install/share/po/it.po
index 967f08be0..f80751725 100644
--- a/perl-install/install/share/po/it.po
+++ b/perl-install/install/share/po/it.po
@@ -1,33 +1,82 @@
-# translation of it.po to Italian
-# Copyright (C) 2000, 2001 Mandriva S.A.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
-# Paolo Lorenzin <pasusu@tin.it>, 2000.
-# Simone Riccio <s.riccio@aeb-informatica.it>, 2002.
-# Roberto Rosselli Del Turco <rosselli@ling.unipi.it>, 2001, 2002,2003.
-# Marco De Vitis <mdv@spin.it>, 2003.
-# Andrea Celli <andrea.celli@libero.it>, 2003, 2004, 2005, 2006, 2007.
-# Giuseppe Levi <giuseppe.levi@email.it>, 2005.
+# Translators:
+# killer1987 <marcello.anni@alice.it>, 2013-2014
+# Matteo Pasotti <matteo@xquiet.eu>, 2012-2013
msgid ""
msgstr ""
-"Project-Id-Version: it\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-10-01 19:47+0200\n"
-"Last-Translator: Andrea Celli <andrea.celli@libero.it>\n"
-"Language-Team: Italian <timl@freelists.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: killer1987 <marcello.anni@alice.it>\n"
+"Language-Team: Italian (http://www.transifex.com/MageiaLinux/mageia/language/"
+"it/)\n"
+"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Unisciti a noi!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Rendila tua!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "La tua scelta!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Strumenti per l'ufficio"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Home entertainment"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "Per i bambini"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "Per la famiglia!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "Per gli sviluppatori!"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Grazie!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Sentiti libero!"
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
msgstr "Hai delle altre fonti d'installazione?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -41,93 +90,58 @@ msgstr ""
"\n"
"Disponi di altre fonti di installazione da configurare?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Rete (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Rete (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Rete (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "URL del mirror?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "L'URL deve iniziare con ftp:// o http://"
-
-#: any.pm:228
-#, c-format
-msgid "Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Connessione al sito Mandriva Linux per ricevere l'elenco dei mirror "
-"disponibili..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Impossibile collegarsi al sito Mandriva Linux per ricevere l'elenco dei "
-"mirror disponibili"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Scegli un mirror da cui prelevare i pacchetti"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "Configurazione NFS"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
-msgstr "Immetti il nome dell'host e della directory che userai come supporto NFS"
+msgstr ""
+"Immetti il nome dell'host e della directory che userai come supporto NFS"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr "Manca il nome dell'host"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "Una directory deve iniziare con \"/\""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "Nome dell'host da montare con NFS?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Directory"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "Aggiuntivo"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
@@ -136,47 +150,99 @@ msgstr ""
"Impossibile trovare su questo mirror il file con l'elenco dei pacchetti. "
"Assicurati che l'indirizzo sia esatto."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Ricerca dei pacchetti già installati..."
+msgid "Core Release"
+msgstr "Core Release"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Rimozione dei pacchetti prima di aggiornare..."
+msgid "Tainted Release"
+msgstr "Tainted Release"
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Ricerca dei pacchetti da aggiornare..."
+msgid "Nonfree Release"
+msgstr "Nonfree Release"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"Sono stati selezionati i seguenti server: %s\n"
-"\n"
-"\n"
-"Questi server verranno attivati automaticamente. Non presentano\n"
-"problemi di sicurezza noti, ma potrebbero esserne scoperti in futuro.\n"
-"In tal caso, dovrai preoccuparti di aggiornarli al più presto.\n"
-"\n"
-"\n"
-"Vuoi davvero installare questi server?\n"
+"Alcuni dispositivi hardware sul tuo elaboratore necessitano di firmware "
+"proprietari affinché il software libero dei driver possa funzionare."
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "Dovresti abilitare \"%s\""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "\"%s\" contiene varie parti del sistema e delle sue applicazioni"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "\"%s\" contiene software non libero.\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"Contiene inoltre firmware necessari al funzionamento di certi dispositivi "
+"(eg: qualche scheda grafica ATI/AMD, qualche scheda di rete, qualche scheda "
+"RAID, ...)"
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"\"%s\" contiene software che non può essere distribuito in qualsiasi paese a "
+"causa di brevetti software."
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+"Contiene inoltre software da \"%s\" ricostruito con funzionalità aggiuntive."
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "Qui puoi abilitare più fonti se lo desideri."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+"Questa fonte fornisce aggiornamenti dei pacchetti provenienti da \"%s\""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Ricerca dei pacchetti già installati..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Ricerca dei pacchetti da aggiornare..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Rimozione dei pacchetti prima di aggiornare..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -190,85 +256,90 @@ msgstr ""
"\n"
"Vuoi davvero rimuoverli?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Errore nel leggere il file %s"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "Questi dischi hanno cambiato nome:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (che prima si chiamava %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Rete"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
-msgstr "Scegli un supporto"
+msgstr "Scegli una fonte"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Il file esiste già. Lo sovrascrivo?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Permesso negato"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "Nome NFS non valido"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
-msgstr "Supporto non valido %s"
+msgstr "Fonte non valida %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
-msgstr "Impossibile fare degli screenshot prima del partizionamento"
+msgid "Cannot make screenshots before partitioning"
+msgstr "Non è possibile fare schermate prima di partizionamento"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Gli screenshot saranno disponibili in %s dopo l'installazione."
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Installazione"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Configurazione"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
-msgstr "Devi formattare anche %s"
+msgstr "È necessario formattare anche %s"
#: interactive.pm:16
#, c-format
@@ -289,47 +360,69 @@ msgstr "Attivazione della rete..."
msgid "Bringing down the network"
msgstr "Disattivazione della rete..."
-#: media.pm:703 media.pm:714
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr "Attendi, recupero file in corso"
+
+#: media.pm:704
#, c-format
-msgid "Downloading file %s..."
-msgstr "Scaricamento del file %s..."
+msgid "unable to add medium"
+msgstr "impossibile aggiungere la fonte"
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr "Copia di alcuni pacchetti sui dischi per un'utilizzazione futura"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Copia in corso"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "obbligatorio"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "importante"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "molto utile"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "utile"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "forse"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "Ottengo le informazioni del pacchetto dai meta-dati XML..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Mancano informazioni XML per la fonte \"%s\", solo risultati parziali per il "
+"pacchetto %s"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Nessuna descrizione"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
@@ -338,255 +431,271 @@ msgstr ""
"Alcuni pacchetti richiesti da %s non possono essere installati:\n"
"%s"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "Workstation"
+msgid "An error occurred:"
+msgstr "Si è verificato un errore:"
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Postazione per lavoro da ufficio"
+msgid "A fatal error occurred: %s."
+msgstr "Si è verificato un errore fatale: %s."
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
-msgstr ""
-"Programmi da ufficio: wordprocessor (OpenOffice.org Writer, Kword), fogli "
-"elettronici (OpenOffice.org Calc, Kspread), visualizzatori PDF, ecc."
+msgid "Do not ask again"
+msgstr "Non chiedere più"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d transazioni dell'installazione fallite"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Installazione dei pacchetti non riuscita:"
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "Postazione di lavoro"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Postazione per lavoro da ufficio"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Programmi da ufficio: wordprocessor (kword, abiword), fogli elettronici "
-"(kspread, gnumeric), visualizzatori pdf, ecc."
+"Programmi da ufficio: editor di testo (LibreOffice Writer, Kword), fogli "
+"elettronici (LibreOffice Calc, Kspread), visualizzatori PDF, ecc."
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Computer per giocare"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Programmi di svago: arcade, da tavolo, di strategia, ecc."
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
-msgstr "Computer multimediale"
+msgstr "Postazione multimediale"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Programmi di riproduzione/modifica audio e video"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Postazione Internet"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-"Gruppo di programmi per leggere e inviare posta e news (mutt, tin...) e per "
+"Gruppo di programmi per leggere, inviare posta e news (mutt, tin...) e per "
"navigare il Web"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Computer in rete (client)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Client per vari protocolli, incluso ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Strumenti per semplificare la configurazione del computer"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Programmi da riga di comando"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Editor, shell, gestione file, terminali"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Sviluppo"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "Librerie di sviluppo, programmi e file \"include\" per C e C++"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Documentazione"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Libri e Howto su Linux e sul Software Libero"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Linux Standard Base. Supporto per applicazioni di terze parti"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Server web"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Groupware"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Server Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Firewall/Router"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Gateway per Internet"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "Mail/News"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Server di posta Postfix, server di news Inn"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
-msgstr "Directory Server"
+msgstr "Server di Directory"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "Server FTP"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "Server per Domain Name e Network Information"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "Server per la condivisione di file e stampanti"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "Server NFS, server Samba"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Database"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "Server di database PostgreSQL e MySQL"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "Server di database PostgreSQL e MariaDB"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache e Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Posta"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Server di posta Postfix"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "Server di database PostgreSQL o MySQL"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "Server di database PostgreSQL o MariaDB"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Server di rete"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "Server NFS, server SMB, server proxy, server SSH"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Ambiente grafico"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "Workstation grafica con KDE"
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -595,74 +704,128 @@ msgstr ""
"Il K Desktop Environment, l'ambiente grafico di base integrato da una ricca "
"collezione di strumenti"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
-msgstr "Workstation grafica con GNOME"
+msgstr "Postazione di lavoro grafica con GNOME"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr ""
-"Un ambiente grafico con un gruppo di applicazioni user-friendly e strumenti "
-"per il desktop"
+"Un ambiente grafico con un gruppo di applicazioni e di strumenti per il "
+"desktop di facile utilizzo"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
#, c-format
-msgid "IceWm Desktop"
-msgstr "Desktop IceWm"
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Un ambiente grafico più leggero con un set di applicazioni e strumenti per "
+"il desktop pensati per l'utente"
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "Stazione di lavoro MATE"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Stazione di lavoro Cinnamon"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Un ambiente grafico basato su GNOME"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "Desktop LXQt"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "Un port QT di nuova generazione dell'ambiente desktop lightweight"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr "Un ambiente grafico leggero e veloce con un supporto dedicato"
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "Desktop LXDE"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Un ambiente grafico veloce e leggero"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Altri desktop grafici"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm, ecc."
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, etc"
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Utilità"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "Server SSH"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Server Webmin per la configurazione remota"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "Utilità/Monitoraggio della rete"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "Strumenti di monitoraggio, accounting dei processi, tcpdump, nmap,..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Procedure guidate Mandriva"
+msgid "Mageia Wizards"
+msgstr "Assistenti Mageia"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
-msgstr "Assistenti per configurare dei server"
+msgstr "Procedure guidate per la configurazione del server"
#: steps.pm:85
#, c-format
@@ -673,7 +836,7 @@ msgstr ""
"Si è verificato un errore non gestibile automaticamente.\n"
"Puoi continuare a tuo rischio e pericolo."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -682,7 +845,7 @@ msgid ""
"\"\n"
msgstr ""
"Alcuni pacchetti importanti non sono stati installati correttamente.\n"
-"Il lettore di cdrom o il cdrom sono danneggiati.\n"
+"Il lettore di cdrom o il cdrom possono essere danneggiati.\n"
"Controlla il cdrom su un sistema già installato digitando\n"
" \"rpm -qpl media/main/*.rpm\"\n"
@@ -693,204 +856,258 @@ msgstr "Avvio della fase \"%s\"\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Installazione di Mandriva Linux %s"
+msgid "%s Installation %s"
+msgstr "%s Installazione %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> muove il cursore"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Il server Xorg è lento ad avviarsi. Attendi..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"Il sistema ha risorse scarse. Potrebbero verificarsi problemi installando\n"
-"Mandriva Linux. In tal caso, puoi tentare un'installazione testuale. \n"
-"Per farlo, premi \"F1\" all'avvio da CDROM e poi digita \"text\"."
+"Il tuo sistema ha risorse non sufficienti. Potresti avere dei\n"
+"problemi nell'installazione di %s. Se ciò si verifica, puoi\n"
+"provare un'installazione testuale. Per questo, premi `F1' \n"
+"quando si avvia il CD-ROM, quindi digita `text'."
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Selezione delle fonti d'installazione"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Installa il desktop GNOME %s"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Installazione personalizzata"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Desktop Plasma"
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "Desktop GNOME"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Desktop personalizzato"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Ecco l'anteprima del desktop '%s'."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Clicca sulle immagini per ottenere un'anteprima più grande"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Selezione per gruppi di pacchetti"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Selezione individuale dei pacchetti"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Dimensione totale: %d / %d MB"
+msgid "Unselect All"
+msgstr "Deseleziona tutti"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Pacchetto non valido"
+msgid "Total size: %d / %d MB"
+msgstr "Dimensione totale: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Versione: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Dimensione:"
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Importanza: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Non puoi selezionare/deselezionare questo pacchetto"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "per la mancanza di %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "perché %s non è soddisfatto"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "Ricerca del miglior pacchetto per %s..."
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "per conservare %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
-"Non puoi selezionare questo pacchetto. Non c'è spazio sufficiente per "
+"Non puoi selezionare questo pacchetto perché non c'è spazio sufficiente per "
"installarlo"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "I seguenti pacchetti stanno per essere installati"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "I seguenti pacchetti stanno per essere rimossi"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
-msgstr "Questo è un pacchetto indispensabile, non può essere tolto"
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr "Questo è un pacchetto obbligatorio, non puoi deselezionarlo"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
-msgstr "Non si può deselezionare questo pacchetto. È già installato"
+msgid "You cannot unselect this package. It is already installed"
+msgstr "Non puoi deselezionare questo pacchetto. È già installato"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
-msgstr "Non si può deselezionare questo pacchetto. Deve essere aggiornato"
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr "Non puoi deselezionare questo pacchetto. Deve essere aggiornato"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Mostra i pacchetti selezionati automaticamente"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Installa"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Carica/salva selezione"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Aggiornamento scelta pacchetti"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Installazione minimale"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Gestione software"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Scegli i pacchetti che vuoi installare"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Installazione"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Senza dettagli"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Tempo restante: "
+msgid "Time remaining:"
+msgstr "Tempo restante:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Sto valutando"
+msgid "(estimating...)"
+msgstr "(stima in corso...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d pacchetto"
msgstr[1] "%d pacchetti"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Riepilogo"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Configura"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "non configurata"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
@@ -899,106 +1116,111 @@ msgstr ""
"Sono state trovate queste fonti d'installazione.\n"
"Se vuoi ignorarne qualcuna, la puoi deselezionare ora."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-"Prima dell'installazione, puoi copiare il contenuto dei CD sul disco fisso\n"
-"L'installazione continuerà dal disco fisso e i pacchetti resteranno "
-"disponibili anche quando il sistema sarà installato."
+"Hai la possibilità di copiare il contenuto dei CD sul disco rigido prima "
+"dell'installazione.\n"
+"Si proseguirà così dal disco rigido e i pacchetti rimarranno disponibili una "
+"volta che il sistema è completamente installato."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "Copia tutti i CD"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Si è verificato un errore"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Scegli la mappa della tastiera."
+msgid "Please choose your keyboard layout"
+msgstr "Scegli la mappa della tastiera"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Ecco la lista completa delle tastiere disponibili"
+msgid "Here is the full list of available keyboards:"
+msgstr "Ecco la lista completa delle tastiere disponibili:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Installazione/Aggiornamento"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "È un'installazione o un aggiornamento?"
-#: steps_interactive.pm:134
+#: steps_interactive.pm:159
#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Installazione"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Aggiornamento di %s"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr "Non è supportato il passaggio da una versione a 32bit ad una più nuova a 64bit"
+msgid "Encryption key for %s"
+msgstr "Chiave di cifratura per %s"
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr "Non è supportato il passaggio da una versione a 64bit ad una più nuova a 32bit"
+msgid "Cancel installation, reboot system"
+msgstr "Cancella l'installazione, riavvia il sistema"
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
-msgstr "Chiave di codifica per %s"
+msgid "New Installation"
+msgstr "Nuova Installazione"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Aggiorna l'installazione precedente (Non raccomandato)"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
-msgstr "Sto configurando IDE"
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
+"L'installer ha rilevato che il sistema Linux installato non può essere "
+"aggiornato a %s in sicurezza.\n"
+"\n"
+"Raccomandiamo una nuova installazione che sostituisca quella precedente.\n"
+"\n"
+"Attenzione: devi fare una copia di tutti i tuoi dati personali prima di "
+"scegliere \"Nuova installazione\"."
-#: steps_interactive.pm:231
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+msgid "CD/DVD"
msgstr ""
-"Non c'è spazio libero per un bootstrap di 1MB! L'installazione continua, ma "
-"per avviare il sistema dovrai creare la partizione di bootstrap con DiskDrake"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+msgid "Configuring CD/DVD"
msgstr ""
-"Devi creare una partizione di avvio \"PPC PReP\"! L'installazione continua, "
-"ma non potrai avviare il sistema, se prima non avrai creato la partizione di "
-"avvio con DiskDrake"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1011,21 +1233,21 @@ msgstr ""
"pronto.\n"
"Se non lo hai, premi Annulla per saltare l'installazione da quel Cd-Rom."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
-msgstr "Sto cercando i pacchetti disponibili..."
+msgstr "Ricerca dei pacchetti disponibili..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
"Sul sistema non è rimasto sufficiente spazio libero per l'installazione o "
"l'aggiornamento (%dMB > %dMB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
@@ -1034,52 +1256,53 @@ msgstr ""
"Scegli se caricare o salvare la selezione di pacchetti.\n"
"Il formato è lo stesso dei file generati con auto_install."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Carica"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Salva"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "File non valido"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr "Installa l'ambiente KDE per Mandriva"
+msgid "Plasma"
+msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr "Installa l'ambiente GNOME per Mandriva"
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
+#: steps_interactive.pm:459
#, c-format
-msgid "Custom install"
-msgstr "Installazione personalizzata"
+msgid "Desktop Selection"
+msgstr "Selezione Desktop"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr "Puoi scegliere l'ambiente desktop: KDE, GNOME o personalizzato"
+msgid "You can choose your workstation desktop profile."
+msgstr ""
+"Puoi scegliere il profilo della tua postazione di lavoro per il desktop"
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Lo spazio richiesto è maggiore di quello disponibile"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Tipo di installazione"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1088,82 +1311,127 @@ msgstr ""
"Nessun gruppo di pacchetti risulta selezionato .\n"
"Scegli il tipo di installazione minima desiderato:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Con X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Installa i pacchetti consigliati"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Con la documentazione essenziale (raccomandata!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Installazione veramente minimale (in particolare niente urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Preparazione del aggiornamento..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Sto preparando l'installazione"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Installazione del pacchetto %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "C'è un errore nell'ordinamento dei pacchetti:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Vado avanti comunque?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "Riprova"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr "Salta questo pacchetto"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr "Salta tutti i pacchetti provenienti da \"%s\""
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
msgstr "Torna alla scelta dei pacchetti e delle fonti"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
msgstr "C'è stato un errore nell'installazione del pacchetto %s."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Configurazione post installazione"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
-msgstr "Assicurati che gli \"Update Modules\" siano leggibili dal dispositivo %s"
+msgstr ""
+"Assicurati che gli \"Update Modules\" siano leggibili dal dispositivo %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Aggiornamenti"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "I seguenti pacchetti stanno per essere installati"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Riprovare?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Errore nell'aggiunta della fonte"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1175,7 +1443,7 @@ msgid ""
"\n"
"Do you want to install the updates?"
msgstr ""
-"Adesso hai la possibilità di scaricare dei pacchetti aggiornati che sono\n"
+"Ora hai la possibilità di scaricare dei pacchetti aggiornati che sono\n"
"stati modificati dopo l'uscita della distribuzione. Questi pacchetti "
"possono\n"
"contenere aggiornamenti di sicurezza o correzioni di errori.\n"
@@ -1184,132 +1452,80 @@ msgstr ""
"\n"
"Vuoi installare gli aggiornamenti?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Connessione al mirror per ricevere l'elenco dei pacchetti disponibili..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Non si riesce a contattare il mirror %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s in %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Hardware"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Scheda audio"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Hai una scheda audio ISA?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Lancia \"alsaconf\" o \"sndconfig\" dopo l'installazione per configurare la "
-"scheda audio"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Non è stata rilevata nessuna scheda audio. Prova con \"harddrake\" dopo "
-"l'installazione."
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Interfaccia grafica"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Rete e Internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Proxy"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "configurato"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Livello di sicurezza"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Firewall"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "attivato"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "disabilitato"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "Non hai configurato X. Sei sicuro di non volerlo fare?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "Preparazione del bootloader..."
+msgid "Preparing initial startup program..."
+msgstr "Sto preparando l'installazione..."
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"Apparentemente disponi di una macchina OldWorld o sconosciuta, il bootloader "
-"yaboot non andrà bene per te.L'installazione continuerà, ma dovrai usare "
-"BootX o qualche altro metodo per avviare il tuo computer. L'argomento da "
-"passare al kernel per il fs radice è: root=%s"
-
-#: steps_interactive.pm:1024
+#: steps_interactive.pm:1073
#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Vuoi usare aboot?"
+msgid "Be patient, this may take a while..."
+msgstr "Sii paziente, potrebbe servire un po' di tempo..."
-#: steps_interactive.pm:1027
-#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Errore installando aboot, \n"
-"vuoi forzare l'installazione anche se distruggerà la prima partizione?"
-
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
@@ -1318,72 +1534,37 @@ msgstr ""
"A questo livello di sicurezza, l'accesso ai file delle partizioni Windows è "
"riservato all'amministratore."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Inserisci un floppy vuoto nell'unità %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Sto creando il floppy di installazione automatica..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
"\n"
"Do you really want to quit now?"
msgstr ""
-"Alcune fasi non sono completate.\n"
+"Alcune fasi non sono state completate.\n"
"\n"
"Vuoi veramente interrompere adesso?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Congratulazioni"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Riavvia"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Crea il floppy di installazione automatica"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Se vuoi, l'installazione automatica può essere del tutto automatizzata,\n"
-"ma in tal caso il programma partizionerà automaticamente il disco!!\n"
-"(questa opzione è pensata per l'installazione su un'altra macchina).\n"
-"\n"
-"Probabilmente preferisci ripetere l'installazione.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Ripeti"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automatizzata"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Salva scelta pacchetti"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1474,13 +1655,6 @@ msgid ""
"Users"
msgstr "Utenti"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Rete"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1523,3 +1697,25 @@ msgid ""
"Exit"
msgstr "Esci"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "URL del mirror?"
+
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "L'URL deve iniziare con ftp:// o http://"
+
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr ""
+#~ "Contattando il sito web %s per ottenere l'elenco dei mirror disponibili..."
+
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
+#~ msgstr ""
+#~ "È fallito il contatto col sito web %s per ottenere la lista dei mirror "
+#~ "disponibili"
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Scegli un mirror da cui recuperare i pacchetti"
diff --git a/perl-install/install/share/po/ja.po b/perl-install/install/share/po/ja.po
index 8a17baa33..8b957a576 100644
--- a/perl-install/install/share/po/ja.po
+++ b/perl-install/install/share/po/ja.po
@@ -1,31 +1,83 @@
-# translation of DrakX.po to Japanese
-# Drakbootdisk Japanese translation
-# Copyright (C) 2000,2003, 2004 Free Software Foundation, Inc.
-# YAMAGATA Hiroo <hiyori13@alum.mit.edu>, 2000.
-# UTUMI Hirosi <utuhiro78@yahoo.co.jp>, 2003, 2004.
-# Yukiko Bando <ybando@k6.dion.ne.jp>, 2004, 2005, 2006, 2007.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# kakurasan <kakurasan@gmail.com>, 2017
+# UTUMI Hirosi <utuhiro78@yahoo.co.jp>, 2003-2004
+# YAMAGATA Hiroo <hiyori13@alum.mit.edu>, 2000
msgid ""
msgstr ""
-"Project-Id-Version: DrakX-ja\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-10-01 18:00+0900\n"
-"Last-Translator: Yukiko Bando <ybando@k6.dion.ne.jp>\n"
-"Language-Team: Japanese <cooker-i18n@mandrivalinux.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2013-04-04 13:31+0000\n"
+"Last-Translator: YAMAGATA Hiroo <hiyori13@alum.mit.edu>, 2000\n"
+"Language-Team: Japanese (http://app.transifex.com/MageiaLinux/mageia/"
+"language/ja/)\n"
+"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3.1\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "ご参加ください!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "あなたのものにしましょう!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "あなたが決めるのです!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "オフィス ツール"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "ホーム エンターテインメント"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "子供にも"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "家族にも!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "開発者にも!"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "ありがとうございます!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "自由でいましょう!"
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
-msgstr "他に補助的なメディアがありますか?"
+msgstr "他に追加するメディアはありますか?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -33,146 +85,163 @@ msgid ""
"\n"
"Do you have a supplementary installation medium to configure?"
msgstr ""
-"次のインストールメディアを検出しました: %s \n"
+"以下のメディアが検出され、インストールの間に使用されます: %s \n"
"\n"
"\n"
-"他に設定するメディアはありますか?"
+"他に設定するメディアはありますか?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "ネットワーク (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "ネットワーク (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "ネットワーク (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "ミラーの URL"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "URL は ftp:// または http:// で始まらなければなりません"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr "Mandriva Linux のサイトに接続してミラーのリストを取得しています..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Mandriva Linux ウェブサイトへの接続に失敗したため、利用可能なミラーのリストを"
-"取得できませんでした"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "パッケージを取得するミラーを選択"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "NFS の設定"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr "NFS メディアのホスト名とディレクトリを入力してください"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr "ホスト名がありません"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "ディレクトリは \"/\" で始まらなければなりません"
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "NFS マウントのホスト名"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "ディレクトリ"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
-msgstr "補助"
+msgstr "追加のメディア"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
msgstr ""
-"パッケージリストのファイルが見つかりません。ミラーの場所が正しいか確認してく"
+"パッケージ リストのファイルが見つかりません。ミラーの場所が正しいか確認してく"
"ださい。"
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "インストール済みパッケージを探しています..."
+msgid "Core Release"
+msgstr "Core Release"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "アップグレードする前にパッケージを削除しています..."
+msgid "Tainted Release"
+msgstr "Tainted Release"
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "更新するパッケージを探しています..."
+msgid "Nonfree Release"
+msgstr "Nonfree Release"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"以下のサーバを選択されました: %s\n"
-"\n"
-"\n"
-"これらのサーバはデフォルトで起動されます。現在、既知のセキュリティ問題\n"
-"はありませんが、新たに発見されるかもしれません。その場合は、できるだけ\n"
-"早急にアップグレードしてください。\n"
-"\n"
-"\n"
-"本当にこれらのサーバをインストールしますか?\n"
+"このマシン上の幾つかのハードウェアにはフリー ソフトウェアのドライバが動作する"
+"ために幾つかの非フリーなファームウェアが必要です。"
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "\"%s\" を有効にしたほうがよいでしょう"
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "\"%s\" には各種システムとそのアプリケーションが含まれます"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "\"%s\" には非フリーなソフトウェアが含まれます。\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"これには幾つかのデバイスが動作するために必要なファームウェアも含まれます "
+"(例: 幾つかのATI/AMD グラフィック カード, 幾つかのネットワーク カード, 幾つか"
+"の RAID カード, ...)"
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"\"%s\" にはソフトウェア特許によりすべての国で配布することができないソフトウェ"
+"アが含まれます。"
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+"これには \"%s\" のソフトウェアに追加の機能を有効にしてビルドしたものも含まれ"
+"ます。"
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "ここで必要に応じて追加のメディアを有効にすることができます。"
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "このメディアはメディア \"%s\" に対するパッケージの更新を提供します"
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "インストール済みパッケージを探しています..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "更新するパッケージを探しています..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "アップグレードする前にパッケージを削除しています..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -183,85 +252,90 @@ msgstr ""
"システムを更新するため以下のパッケージを削除します: %s\n"
"\n"
"\n"
-"これらのパッケージを削除してよろしいですか?\n"
+"これらのパッケージを削除してよろしいですか?\n"
+
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "ファイル %s の読み込み時にエラーが発生しました"
-#: any.pm:1055
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "次のディスクの名前は変更されました:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (変更前の名前は %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "ネットワーク"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "メディアを選んでください"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "ファイルが既に存在します。上書きしますか?"
+msgstr "ファイルが既に存在します。上書きしますか?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "アクセス許可がありません"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "不正な NFS 名"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "不正なメディア %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "パーティション設定が終わるまでスクリーンショットは撮れません"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr ""
"スクリーンショットは %s にあります。インストール後に利用可能になります。"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "インストール"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "設定"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "%s もフォーマットしてください"
@@ -272,60 +346,82 @@ msgid ""
"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
"You can find some information about them at: %s"
msgstr ""
-"お使いのハードウェアの中にプロプラエタリ・ドライバが必要なものがあります。\n"
+"お使いのハードウェアの中に ``プロプライエタリ'' ドライバが必要なものがありま"
+"す。\n"
"詳しくは以下をご参照ください: %s"
#: interactive.pm:22
#, c-format
msgid "Bringing up the network"
-msgstr "ネットワークを確立"
+msgstr "ネットワークを有効にしています"
#: interactive.pm:27
#, c-format
msgid "Bringing down the network"
-msgstr "ネットワークを切断"
+msgstr "ネットワークを無効にしています"
-#: media.pm:703 media.pm:714
+#: media.pm:397
#, c-format
-msgid "Downloading file %s..."
-msgstr "ファイル %s をダウンロード中..."
+msgid "Please wait, retrieving file"
+msgstr "ファイルを取得しています。お待ちください。"
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "メディアを追加できません"
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
-msgstr "後で利用するためにパッケージをディスクにコピー"
+msgstr "幾つかのパッケージを後で利用するためにディスクにコピーしています"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "コピーしています"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "必須"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "重要"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "優秀"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "秀"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "可"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "XML メタ データからパッケージ情報を取得しています..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"メディア %s に XML 情報がないため、パッケージ %s の検索結果は不完全です"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "説明なし"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
@@ -334,322 +430,395 @@ msgstr ""
"%s が要求するいくつかのパッケージをインストールできません:\n"
"%s"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "ワークステーション"
+msgid "An error occurred:"
+msgstr "エラーが発生しました:"
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "オフィスワークステーション"
+msgid "A fatal error occurred: %s."
+msgstr "致命的なエラーが発生しました: %s"
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
-msgstr ""
-"オフィスソフト: ワープロ (OpenOffice.org Writer, Kword), 表計算 (OpenOffice."
-"org Calc, Kspread), PDF ビューアなど"
+msgid "Do not ask again"
+msgstr "次回から確認しない"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d 件のインストールが失敗しました"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "パッケージのインストールに失敗しました:"
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "ワークステーション"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "オフィス ワークステーション"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"オフィスソフト: ワープロ (kword,abiword), 表計算 (kspread,gnumeric), PDF "
-"ビューアなど"
+"オフィス プログラム: ワープロ (LibreOffice Writer, Kword), 表計算 "
+"(OpenOffice.org Calc, Kspread), PDF ビューアなど"
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
-msgstr "ゲームステーション"
+msgstr "ゲーム ステーション"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "ゲームプログラム: アーケードゲーム, ボードゲーム, 戦略ゲームなど"
+msgstr "娯楽プログラム: アーケード ゲーム, ボード ゲーム, 戦略ゲームなど"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
-msgstr "マルチメディアステーション"
+msgstr "マルチメディア ステーション"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
-msgstr "サウンドと動画の再生/編集ソフト"
+msgstr "サウンドと動画の再生/編集プログラム"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
-msgstr "インターネットステーション"
+msgstr "インターネット ステーション"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
-msgstr "メールとニュースの送受信用ツール (mutt,tin..) とウェブブラウズ用ツール"
+msgstr ""
+"メールとニュースの送受信用ツール (mutt,tin..) とウェブ ブラウズ用ツール"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "ネットワーク (クライアント)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "ssh などの各種プロトコル用クライアント"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "コンピュータの設定を簡単にするツール"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
-msgstr "コンソールツール"
+msgstr "端末用ツール"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
-msgstr "エディタ, シェル, ファイル関連ツール, ターミナル"
+msgstr "エディタ, シェル, ファイル関連ツール, 端末"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
-msgstr "開発用"
+msgstr "開発パッケージ"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "C/C++ の開発ライブラリ, プログラム, include ファイル"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "ドキュメント"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
-msgstr "Linux/フリーソフト関連の文書とHowto"
+msgstr "Linux やフリー ソフトウェアの文書と Howto"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
-msgstr "Linux Standard Base, サードパーティのアプリケーションをサポート"
+msgstr "Linux Standard Base, サード パーティのアプリケーションをサポート"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Web サーバ"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "グループウェア"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
-msgstr "Kolabサーバ"
+msgstr "Kolab サーバ"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "ファイアウォール/ルータ"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
-msgstr "インターネットゲートウェイ"
+msgstr "インターネット ゲートウェイ"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "メール/ニュース"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Postfix メールサーバ, Inn ニュースサーバ"
+msgstr "Postfix メール サーバ, Inn ニュース サーバ"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
-msgstr "ディレクトリサーバ"
+msgstr "ディレクトリ サーバ"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP サーバ"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "ドメイン名/ネットワークインフォメーションサーバ"
+msgstr "ドメイン名とネットワーク情報のサーバ"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
-msgstr "ファイル/プリンタ共有サーバ"
+msgstr "ファイルとプリンタの共有サーバ"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
-msgstr "NFS サーバ/Samba サーバ"
+msgstr "NFS サーバ, Samba サーバ"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "データベース"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL/MySQLデータベースサーバ"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "PostgreSQL や MariaDB のデータベース サーバ"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "メール"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
-msgstr "Postfix メールサーバ"
+msgstr "Postfix メール サーバ"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL/MySQL データベースサーバ"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL や MariaDB のデータベース サーバ"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
-msgstr "ネットワークコンピュータサーバ"
+msgstr "ネットワーク コンピュータ サーバ"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "NFS サーバ, SMB サーバ, プロキシサーバ, SSH サーバ"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "グラフィカル環境"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE ワークステーション"
+msgid "Plasma Workstation"
+msgstr "Plasma ワークステーション"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
-msgstr "KDE - さまざまなツールを含む定番グラフィカル環境"
+msgstr "KDE, さまざまなツールを含む基本的なグラフィカル環境"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "GNOME ワークステーション"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
-msgstr "使いやすいアプリケーションとデスクトップツールを含むグラフィカル環境"
+msgstr ""
+"ユーザ フレンドリなアプリケーションやデスクトップ ツールを含むグラフィカル環"
+"境"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr "Xfce ワークステーション"
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"ユーザ フレンドリなアプリケーションやデスクトップ ツールを含む、より軽量なグ"
+"ラフィカル環境"
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "MATE ワークステーション"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Cinnamon ワークステーション"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "GNOME に基づいたグラフィカル環境"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "LXQt デスクトップ"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "軽量デスクトップ環境の次世代の QT 移植版"
+
+#: share/meta-task/compssUsers.pl:184
#, c-format
-msgid "IceWm Desktop"
-msgstr "IceWm デスクトップ"
+msgid "Enlightenment Desktop"
+msgstr "Enlightenment デスクトップ"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr "熱心な支持者を持つ軽量高速なグラフィカル環境"
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "LXDE デスクトップ"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "軽量高速なグラフィカル環境"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
-msgstr "その他のグラフィカルデスクトップ"
+msgstr "その他のグラフィカル デスクトップ"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm など"
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker や Fvwm など"
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "ユーティリティ"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH サーバ"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Webmin リモート設定サーバ"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "ネットワークユーティリティ/モニタリング"
+msgstr "ネットワーク ユーティリティ/モニタリング"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
-msgstr "モニタリングツール, プロセス管理, tcpdump, nmap..."
+msgstr "モニタリング ツール, プロセス管理, tcpdump, nmap..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Mandriva ウィザード"
+msgid "Mageia Wizards"
+msgstr "Mageia ウィザード"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "サーバ設定ウィザード"
@@ -663,7 +832,7 @@ msgstr ""
"エラーが発生しました。しかし対処する方法がわかりません。\n"
"自己責任で続けてください。"
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -682,318 +851,368 @@ msgstr "%s を開始\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux のインストール %s"
+msgid "%s Installation %s"
+msgstr "%s のインストール %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> 項目間を移動"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Xorg サーバの起動には時間がかかります。お待ちください..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"システムのリソースが十分でないため、Mandriva Linux のインストール中に\n"
-"問題が発生する可能性があります。その場合は次の要領でテキストモードによる\n"
+"システムのリソースが十分でないため、%s のインストール中に\n"
+"問題が発生する可能性があります。その場合は次の要領でテキスト モードによる\n"
"インストールを試してみてください。\n"
"CD-ROM から起動 -> F1 を押す -> 'text' と入力"
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "メディアの選択"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "%s Plasma デスクトップをインストール"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "%s GNOME デスクトップをインストール"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "カスタム インストール"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Plasma デスクトップ"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "GNOME デスクトップ"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "カスタム デスクトップ"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "%s デスクトップのプレビューです。"
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "画像をクリックすると大きなプレビューが表示されます"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
-msgstr "パッケージグループを選択"
+msgstr "パッケージ グループを選択"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "パッケージを個別に選択"
-# Changed "total size" to "total", due to problem of available
-# space on screen.
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "合計: %d/%d MB"
+msgid "Unselect All"
+msgstr "すべて選択解除"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "不正なパッケージ"
+msgid "Total size: %d / %d MB"
+msgstr "合計サイズ: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "バージョン: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "サイズ: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
-msgstr "重要性: "
+msgstr "重要度: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "このパッケージの選択/非選択は変更できません"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "%s がないために"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "%s が依存を満たしていないために"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "%s をアップグレードするために"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "%s を維持するために"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"このパッケージは選択できません。インストールに必要な空き容量がありません。"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "以下のパッケージをインストールします"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "以下のパッケージを削除します"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "これは必須パッケージです。選択を解除することはできません。"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "このパッケージの選択は解除できません。既にインストールされています。"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "このパッケージの選択は解除できません。アップグレードが必要です。"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "自動的に選択されたパッケージを表示"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "インストール"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "選択を読み込む/保存する"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "パッケージの選択を更新"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr "パッケージ一覧の階層表示を切り替える"
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "最小インストール"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "ソフトウェアの管理"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "インストールするパッケージを選んでください"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
-msgstr "インストール中"
+msgstr "インストール"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
-msgstr "詳細なし"
+msgstr "詳細を非表示"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "残り時間 "
+msgid "Time remaining:"
+msgstr "残り時間:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "試算しています"
+msgid "(estimating...)"
+msgstr "(試算しています...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d 個のパッケージ"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "まとめ"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "設定"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "設定されていません"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-"次のインストールメディアを検出しました。\n"
+"次のインストール メディアを検出しました。\n"
"使用しないものがあればここで選択を解除してください。"
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-"インストールする前に CD の内容をハードドライブにコピーすることも可能です。\n"
-"そうするとインストーラはハードドライブからインストールを続けます。コピーされ"
+"インストールする前に CD の内容をハード ドライブにコピーすることも可能です。\n"
+"そうするとインストーラはハード ドライブからインストールを続けます。コピーされ"
"たパッケージはインストール完了後も利用できます。"
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "CD 全体をコピー"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "エラーが発生しました"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
+msgid "Please choose your keyboard layout"
msgstr "キーボードの配列を選んでください"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "利用可能なすべてのキーボードのリスト"
+msgid "Here is the full list of available keyboards:"
+msgstr "利用可能なすべてのキーボードの一覧:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "インストール/更新"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "インストールか更新を選んでください"
-#: steps_interactive.pm:134
+#: steps_interactive.pm:159
#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "インストール"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "%s を更新"
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
-"32bit から 64bit ディストリビューションへのアップグレードはサポートされていま"
-"せん"
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
-"64bit から 32bit ディストリビューションへのアップグレードはサポートされていま"
-"せん"
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "%s の暗号鍵"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "インストールを中止し、システムを再起動"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "IDE を設定"
+msgid "New Installation"
+msgstr "新しくインストール"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
-"1 MB のブートストラップ用の空き容量がありません。インストールを続けますが、シ"
-"ステムを起動するには、DiskDrake でブートストラップパーティションを作成する必"
-"要があります。"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "既存のシステムをアップグレード (非推奨)"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"PPC PReP ブートストラップを作成する必要があります。インストールを続けますが、"
-"システムを起動するには、DiskDrake でブートストラップパーティションを作成する"
-"必要があります。"
+"インストーラはこのインストール済みの Linux システムが無事に %s に\n"
+"アップグレードできなかったことを検出しました。\n"
+"\n"
+"以前のシステムを置き換えて新しくインストールすることが推奨されます。\n"
+"\n"
+"警告 : \"新しくインストール\" を選択する前にあなた個人のデータをすべてバック"
+"アップしたほうがよいでしょう。"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "CD/DVD を設定しています"
+
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1005,21 +1224,21 @@ msgstr ""
"\"%s\" という CD-ROM をドライブに入れて「OK」を押してください。\n"
"お持ちでない場合は「キャンセル」を押してください。"
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "利用可能なパッケージを探しています..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
"あなたのシステムにはインストールまたはアップグレードに必要な空き容量がありま"
"せん (%dMB > %dMB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
@@ -1028,138 +1247,185 @@ msgstr ""
"パッケージの選択を読み込むか保存するかを選んでください。\n"
"形式は auto_install で生成されたファイルと同じです。"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "読み込む"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "保存する"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "不正なファイル"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr "Mandriva KDE デスクトップをインストール"
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr "Mandriva GNOME デスクトップをインストール"
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
+#: steps_interactive.pm:459
#, c-format
-msgid "Custom install"
-msgstr "カスタムインストール"
+msgid "Desktop Selection"
+msgstr "デスクトップの選択"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
-"ワークステーションのデスクトッププロファイルを KDE, GNOME, カスタムの中から選"
-"択できます"
+msgid "You can choose your workstation desktop profile."
+msgstr "ワークステーションのデスクトップ プロファイルを選択できます。"
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "指定されたサイズが空き容量を超えています"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "インストールの種類"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
-"パッケージグループが選択されていません。\n"
+"パッケージ グループが選択されていません。\n"
"インストールする最低限のものを選んでください:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "X を使う"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "推奨パッケージをインストール"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "基本的なドキュメントを入れる (推奨)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "最小限のインストール (urpmi も含まれません)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "アップグレードを準備しています..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "インストールの準備"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
-msgstr "パッケージ %s をインストール"
+msgstr "パッケージ %s をインストールしています"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
-msgstr "パッケージを並べ替え中にエラーが発生:"
+msgstr "パッケージを並べ替え中にエラーが発生しました:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
-msgstr "続けますか?"
+msgstr "続けますか?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "再試行"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr "このパッケージを飛ばす"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr "メディア %s のすべてのパッケージを飛ばす"
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
msgstr "メディアとパッケージの選択に戻る"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
-msgstr "パッケージ %s のインストール中にエラーが発生しました。"
+msgstr "パッケージ %s のインストール時にエラーが発生しました。"
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "インストール後の設定"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
-msgstr "更新モジュールメディアがドライブ %s に入っていることを確認してください"
+msgstr ""
+"更新モジュール メディアがドライブ %s に入っていることを確認してください"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "更新"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "ここでオンライン メディアを設定できます。"
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "これはセキュリティ更新をインストール可能にします。"
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"これらのメディアを設定するには、稼働中のインターネット接続が必要となりま"
+"す。\n"
+"\n"
+"更新メディアを設定しますか?"
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr "ダウンローダがインストールできませんでした"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "やり直しますか?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "メディアの追加に失敗しました"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1177,152 +1443,101 @@ msgstr ""
"\n"
"パッケージのダウンロードにはインターネット接続が必要です。\n"
"\n"
-"更新されたパッケージをインストールしますか?"
+"更新されたパッケージをインストールしますか?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "ミラーに接続して利用可能なパッケージのリストを取得しています..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "ミラー %s に接続できません"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%2$s の %1$s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "ハードウェア"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
-msgstr "サウンドカード"
-
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "ISA サウンドカードをお使いですか?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"インストール後に alsaconf か sndconfig を実行してサウンドカードを設定してくだ"
-"さい。"
+msgstr "サウンド カード"
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"サウンドカードが見つかりません。インストール後に harddrake で再度設定を試みて"
-"ください。"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
-msgstr "グラフィカルインターフェース"
+msgstr "グラフィカル インターフェース"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "ネットワークとインターネット"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "プロキシ"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "設定済み"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
-msgstr "セキュリティレベル"
+msgstr "セキュリティ レベル"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "ファイアウォール"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "有効"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "無効"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
-msgstr "X が設定されていません。本当によろしいですか?"
+msgstr "X が設定されていません。本当によろしいですか?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "ブートローダを準備中..."
+msgid "Preparing initial startup program..."
+msgstr "最初に開始するプログラムを準備しています..."
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"OldWorld もしくは不明なアーキテクチャのマシンをお使いのようです。このマシンで"
-"は yaboot は動きません。インストールを続けますが、マシンを起動するには、"
-"BootX もしくは他の方法が必要です。'root fs' のカーネル引数は 'root=%s' です。"
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "aboot を使いますか?"
-
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"aboot をインストール中にエラーが発生しました。\n"
-"最初のパーティションを破壊しますが、強制的にインストールしますか?"
+msgid "Be patient, this may take a while..."
+msgstr "しばらく時間がかかります。お待ちください..."
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-"このセキュリティレベルでは、Windows パーティションのファイルへのアクセスが管"
+"このセキュリティ レベルでは、Windows パーティションのファイルへのアクセスが管"
"理者のみに限定されます。"
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "空のフロッピーをドライブ %s に入れてください"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "インストール自動化フロッピーを作成中..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1331,53 +1546,18 @@ msgid ""
msgstr ""
"一部の設定が完了していません。\n"
"\n"
-"本当に終了しますか?"
+"本当に終了しますか?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "おめでとうございます"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "再起動"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "インストール自動化フロッピーを作成"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"「自動」はインストールを完全に自動化することができます。\n"
-"この場合ハードドライブの内容がすべて書き換えられます。\n"
-"(別のマシンにインストールするためのものです。)\n"
-"\n"
-"インストールの「再現」を利用されたほうがいいかもしれません。\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "再現"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "自動"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "パッケージの選択を保存する"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1389,7 +1569,7 @@ msgstr "言語を選択"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr "ローカライゼーション"
+msgstr "言語"
#: steps_list.pm:17
#, c-format
@@ -1410,14 +1590,14 @@ msgstr "マウス"
msgid ""
"_: Keep these entry short\n"
"Hard drive detection"
-msgstr "ハードドライブを検出"
+msgstr "ハード ドライブの検出"
#: steps_list.pm:21 steps_list.pm:22
#, c-format
msgid ""
"_: Keep these entry short\n"
"Installation class"
-msgstr "インストールクラス"
+msgstr "インストール クラス"
#: steps_list.pm:23
#, c-format
@@ -1459,7 +1639,7 @@ msgstr "パッケージの選択"
msgid ""
"_: Keep these entry short\n"
"Installing"
-msgstr "インストール中"
+msgstr "インストール"
#: steps_list.pm:34
#, c-format
@@ -1468,19 +1648,12 @@ msgid ""
"Users"
msgstr "ユーザ"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "ネットワーク"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
"_: Keep these entry short\n"
"Bootloader"
-msgstr "ブートローダ"
+msgstr "ブート ローダ"
#: steps_list.pm:40 steps_list.pm:41
#, c-format
diff --git a/perl-install/install/share/po/ka.po b/perl-install/install/share/po/ka.po
new file mode 100644
index 000000000..eaeb48978
--- /dev/null
+++ b/perl-install/install/share/po/ka.po
@@ -0,0 +1,1608 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Mageia\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Georgian (http://www.transifex.com/MageiaLinux/mageia/"
+"language/ka/)\n"
+"Language: ka\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr ""
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr ""
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr ""
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr ""
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr ""
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr ""
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr ""
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
+#, c-format
+msgid ""
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
+msgstr ""
+
+#: any.pm:162
+#, c-format
+msgid "Network (HTTP)"
+msgstr ""
+
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
+msgstr ""
+
+#: any.pm:164
+#, c-format
+msgid "Network (NFS)"
+msgstr ""
+
+#: any.pm:224
+#, c-format
+msgid "NFS setup"
+msgstr ""
+
+#: any.pm:225
+#, c-format
+msgid "Please enter the hostname and directory of your NFS media"
+msgstr ""
+
+#: any.pm:229
+#, c-format
+msgid "Hostname missing"
+msgstr ""
+
+#: any.pm:230
+#, c-format
+msgid "Directory must begin with \"/\""
+msgstr ""
+
+#: any.pm:234
+#, c-format
+msgid "Hostname of the NFS mount ?"
+msgstr ""
+
+#: any.pm:235
+#, c-format
+msgid "Directory"
+msgstr ""
+
+#: any.pm:265
+#, c-format
+msgid "Supplementary"
+msgstr ""
+
+#: any.pm:300
+#, c-format
+msgid ""
+"Can't find a package list file on this mirror. Make sure the location is "
+"correct."
+msgstr ""
+
+#: any.pm:325
+#, c-format
+msgid "Core Release"
+msgstr ""
+
+#: any.pm:327
+#, c-format
+msgid "Tainted Release"
+msgstr ""
+
+#: any.pm:329
+#, c-format
+msgid "Nonfree Release"
+msgstr ""
+
+#: any.pm:367
+#, c-format
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr ""
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr ""
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr ""
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:850
+#, c-format
+msgid ""
+"The following packages will be removed to allow upgrading your system: %s\n"
+"\n"
+"\n"
+"Do you really want to remove these packages?\n"
+msgstr ""
+
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr ""
+
+#: any.pm:1283
+#, c-format
+msgid "The following disk(s) were renamed:"
+msgstr ""
+
+#: any.pm:1285
+#, c-format
+msgid "%s (previously named as %s)"
+msgstr ""
+
+#: any.pm:1342
+#, c-format
+msgid "HTTP"
+msgstr ""
+
+#: any.pm:1342
+#, c-format
+msgid "FTP"
+msgstr ""
+
+#: any.pm:1342
+#, c-format
+msgid "NFS"
+msgstr ""
+
+#: any.pm:1361 steps_interactive.pm:979
+#, c-format
+msgid "Network"
+msgstr ""
+
+#: any.pm:1365
+#, c-format
+msgid "Please choose a media"
+msgstr ""
+
+#: any.pm:1381
+#, c-format
+msgid "File already exists. Overwrite it?"
+msgstr ""
+
+#: any.pm:1385
+#, c-format
+msgid "Permission denied"
+msgstr ""
+
+#: any.pm:1433
+#, c-format
+msgid "Bad NFS name"
+msgstr ""
+
+#: any.pm:1454
+#, c-format
+msgid "Bad media %s"
+msgstr ""
+
+#: any.pm:1498
+#, c-format
+msgid "Cannot make screenshots before partitioning"
+msgstr ""
+
+#: any.pm:1509
+#, c-format
+msgid "Screenshots will be available after install in %s"
+msgstr ""
+
+#: gtk.pm:134
+#, c-format
+msgid "Installation"
+msgstr ""
+
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
+#, c-format
+msgid "Configuration"
+msgstr "კონფიგურაცია"
+
+#: install2.pm:220
+#, c-format
+msgid "You must also format %s"
+msgstr ""
+
+#: interactive.pm:16
+#, c-format
+msgid ""
+"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
+"You can find some information about them at: %s"
+msgstr ""
+
+#: interactive.pm:22
+#, c-format
+msgid "Bringing up the network"
+msgstr ""
+
+#: interactive.pm:27
+#, c-format
+msgid "Bringing down the network"
+msgstr ""
+
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
+
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
+
+#: media.pm:744
+#, c-format
+msgid "Copying some packages on disks for future use"
+msgstr ""
+
+#: media.pm:797
+#, c-format
+msgid "Copying in progress"
+msgstr ""
+
+#: pkgs.pm:32
+#, c-format
+msgid "must have"
+msgstr ""
+
+#: pkgs.pm:33
+#, c-format
+msgid "important"
+msgstr ""
+
+#: pkgs.pm:34
+#, c-format
+msgid "very nice"
+msgstr ""
+
+#: pkgs.pm:35
+#, c-format
+msgid "nice"
+msgstr ""
+
+#: pkgs.pm:36
+#, c-format
+msgid "maybe"
+msgstr ""
+
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr ""
+
+#: pkgs.pm:290
+#, c-format
+msgid ""
+"Some packages requested by %s cannot be installed:\n"
+"%s"
+msgstr ""
+
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr ""
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr ""
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr ""
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:16
+#, c-format
+msgid "Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
+msgid ""
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:26
+#, c-format
+msgid "Game station"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:27
+#, c-format
+msgid "Amusement programs: arcade, boards, strategy, etc"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:30
+#, c-format
+msgid "Multimedia station"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:31
+#, c-format
+msgid "Sound and video playing/editing programs"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:36
+#, c-format
+msgid "Internet station"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:37
+#, c-format
+msgid ""
+"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
+"Web"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:42
+#, c-format
+msgid "Network Computer (client)"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:43
+#, c-format
+msgid "Clients for different protocols including ssh"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:49
+#, c-format
+msgid "Tools to ease the configuration of your computer"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:53
+#, c-format
+msgid "Console Tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:54
+#, c-format
+msgid "Editors, shells, file tools, terminals"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
+#, c-format
+msgid "Development"
+msgstr "პროგრამირება"
+
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
+#, c-format
+msgid "C and C++ development libraries, programs and include files"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
+#, c-format
+msgid "Documentation"
+msgstr "დოკუმენტაცია"
+
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
+#, c-format
+msgid "Books and Howto's on Linux and Free Software"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
+#, c-format
+msgid "LSB"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
+#, c-format
+msgid "Linux Standard Base. Third party applications support"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:79
+#, c-format
+msgid "Web Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:80
+#, c-format
+msgid "Apache"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:84
+#, c-format
+msgid "Groupware"
+msgstr "Groupware"
+
+#: share/meta-task/compssUsers.pl:85
+#, c-format
+msgid "Kolab Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
+#, c-format
+msgid "Firewall/Router"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
+#, c-format
+msgid "Internet gateway"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:92
+#, c-format
+msgid "Mail/News"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:93
+#, c-format
+msgid "Postfix mail server, Inn news server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:97
+#, c-format
+msgid "Directory Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:102
+#, c-format
+msgid "FTP Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:103
+#, c-format
+msgid "ProFTPd"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:107
+#, c-format
+msgid "DNS/NIS"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:108
+#, c-format
+msgid "Domain Name and Network Information Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:112
+#, c-format
+msgid "File and Printer Sharing Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:113
+#, c-format
+msgid "NFS Server, Samba server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
+#, c-format
+msgid "Database"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:118
+#, c-format
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:123
+#, c-format
+msgid "Web/FTP"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:124
+#, c-format
+msgid "Apache, Pro-ftpd"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:128
+#, c-format
+msgid "Mail"
+msgstr "ელფოსტა"
+
+#: share/meta-task/compssUsers.pl:129
+#, c-format
+msgid "Postfix mail server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:134
+#, c-format
+msgid "PostgreSQL or MariaDB database server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:142
+#, c-format
+msgid "Network Computer server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:143
+#, c-format
+msgid "NFS server, SMB server, Proxy server, ssh server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:150
+#, c-format
+msgid "Graphical Environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:152
+#, c-format
+msgid "Plasma Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:153
+#, c-format
+msgid ""
+"The K Desktop Environment, the basic graphical environment with a collection "
+"of accompanying tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:158
+#, c-format
+msgid "GNOME Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
+#, c-format
+msgid ""
+"A graphical environment with user-friendly set of applications and desktop "
+"tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
+#, c-format
+msgid "Other Graphical Desktops"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:218
+#, c-format
+msgid "Utilities"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
+#, c-format
+msgid "SSH Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:225
+#, c-format
+msgid "Webmin"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:226
+#, c-format
+msgid "Webmin Remote Configuration Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:230
+#, c-format
+msgid "Network Utilities/Monitoring"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:231
+#, c-format
+msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:236
+#, c-format
+msgid "Wizards to configure server"
+msgstr ""
+
+#: steps.pm:85
+#, c-format
+msgid ""
+"An error occurred, but I do not know how to handle it nicely.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: steps.pm:469
+#, c-format
+msgid ""
+"Some important packages did not get installed properly.\n"
+"Either your cdrom drive or your cdrom is defective.\n"
+"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
+"\"\n"
+msgstr ""
+
+#: steps_auto_install.pm:71 steps_stdio.pm:27
+#, c-format
+msgid "Entering step `%s'\n"
+msgstr ""
+
+#: steps_curses.pm:22
+#, c-format
+msgid "%s Installation %s"
+msgstr ""
+
+#: steps_curses.pm:32
+#, c-format
+msgid "<Tab>/<Alt-Tab> between elements"
+msgstr ""
+
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
+#, c-format
+msgid ""
+"Your system is low on resources. You may have some problem installing\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
+"press `F1' when booting on CDROM, then enter `text'."
+msgstr ""
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
+#, c-format
+msgid "Package Group Selection"
+msgstr ""
+
+#: steps_gtk.pm:354 steps_interactive.pm:626
+#, c-format
+msgid "Individual package selection"
+msgstr ""
+
+#: steps_gtk.pm:361
+#, c-format
+msgid "Unselect All"
+msgstr ""
+
+#: steps_gtk.pm:380 steps_interactive.pm:538
+#, c-format
+msgid "Total size: %d / %d MB"
+msgstr ""
+
+#: steps_gtk.pm:425
+#, c-format
+msgid "Version: "
+msgstr "ვერსია:"
+
+#: steps_gtk.pm:426
+#, c-format
+msgid "Size: "
+msgstr "ზომა:"
+
+#: steps_gtk.pm:426
+#, c-format
+msgid "%d KB\n"
+msgstr ""
+
+#: steps_gtk.pm:427
+#, c-format
+msgid "Importance: "
+msgstr ""
+
+#: steps_gtk.pm:462
+#, c-format
+msgid "You cannot select/unselect this package"
+msgstr ""
+
+#: steps_gtk.pm:466
+#, c-format
+msgid "due to missing %s"
+msgstr ""
+
+#: steps_gtk.pm:467
+#, c-format
+msgid "due to unsatisfied %s"
+msgstr ""
+
+#: steps_gtk.pm:468
+#, c-format
+msgid "trying to promote %s"
+msgstr ""
+
+#: steps_gtk.pm:469
+#, c-format
+msgid "in order to keep %s"
+msgstr ""
+
+#: steps_gtk.pm:474
+#, c-format
+msgid ""
+"You cannot select this package as there is not enough space left to install "
+"it"
+msgstr ""
+
+#: steps_gtk.pm:477
+#, c-format
+msgid "The following packages are going to be installed"
+msgstr ""
+
+#: steps_gtk.pm:478
+#, c-format
+msgid "The following packages are going to be removed"
+msgstr ""
+
+#: steps_gtk.pm:504
+#, c-format
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr ""
+
+#: steps_gtk.pm:506
+#, c-format
+msgid "You cannot unselect this package. It is already installed"
+msgstr ""
+
+#: steps_gtk.pm:508
+#, c-format
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr ""
+
+#: steps_gtk.pm:512
+#, c-format
+msgid "Show automatically selected packages"
+msgstr ""
+
+#: steps_gtk.pm:516
+#, c-format
+msgid "Install"
+msgstr ""
+
+#: steps_gtk.pm:519
+#, c-format
+msgid "Load/Save selection"
+msgstr ""
+
+#: steps_gtk.pm:520 steps_gtk.pm:525
+#, c-format
+msgid "Updating package selection"
+msgstr ""
+
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
+#, c-format
+msgid "Minimal install"
+msgstr ""
+
+#: steps_gtk.pm:543
+#, c-format
+msgid "Software Management"
+msgstr "პროგრამათა მენეჯმენტი"
+
+#: steps_gtk.pm:543 steps_interactive.pm:415
+#, c-format
+msgid "Choose the packages you want to install"
+msgstr ""
+
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
+#, c-format
+msgid "Installing"
+msgstr ""
+
+#: steps_gtk.pm:590
+#, c-format
+msgid "No details"
+msgstr ""
+
+#: steps_gtk.pm:610
+#, c-format
+msgid "Time remaining:"
+msgstr ""
+
+#: steps_gtk.pm:611
+#, c-format
+msgid "(estimating...)"
+msgstr ""
+
+#: steps_gtk.pm:637
+#, c-format
+msgid "%d package"
+msgid_plural "%d packages"
+msgstr[0] ""
+msgstr[1] ""
+
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
+#, c-format
+msgid "Summary"
+msgstr ""
+
+#: steps_gtk.pm:713
+#, c-format
+msgid "Configure"
+msgstr ""
+
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
+#, c-format
+msgid "not configured"
+msgstr ""
+
+#: steps_gtk.pm:773 steps_interactive.pm:315
+#, c-format
+msgid ""
+"The following installation media have been found.\n"
+"If you want to skip some of them, you can unselect them now."
+msgstr ""
+
+#: steps_gtk.pm:789 steps_interactive.pm:321
+#, c-format
+msgid ""
+"You have the option to copy the contents of the CDs onto the hard disk drive "
+"before installation.\n"
+"It will then continue from the hard disk drive and the packages will remain "
+"available once the system is fully installed."
+msgstr ""
+
+#: steps_gtk.pm:791 steps_interactive.pm:323
+#, c-format
+msgid "Copy whole CDs"
+msgstr ""
+
+#: steps_interactive.pm:40
+#, c-format
+msgid "An error occurred"
+msgstr ""
+
+#: steps_interactive.pm:105
+#, c-format
+msgid "Please choose your keyboard layout"
+msgstr ""
+
+#: steps_interactive.pm:109
+#, c-format
+msgid "Here is the full list of available keyboards:"
+msgstr ""
+
+#: steps_interactive.pm:153
+#, c-format
+msgid "Install/Upgrade"
+msgstr ""
+
+#: steps_interactive.pm:157
+#, c-format
+msgid "Is this an install or an upgrade?"
+msgstr ""
+
+#: steps_interactive.pm:159
+#, c-format
+msgid ""
+"_: This is a noun:\n"
+"Install"
+msgstr ""
+
+#: steps_interactive.pm:161
+#, c-format
+msgid "Upgrade %s"
+msgstr ""
+
+#: steps_interactive.pm:184
+#, c-format
+msgid "Encryption key for %s"
+msgstr ""
+
+#: steps_interactive.pm:217
+#, c-format
+msgid "Cancel installation, reboot system"
+msgstr ""
+
+#: steps_interactive.pm:218
+#, c-format
+msgid "New Installation"
+msgstr ""
+
+#: steps_interactive.pm:219
+#, c-format
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
+
+#: steps_interactive.pm:223
+#, c-format
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr ""
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr ""
+
+#: steps_interactive.pm:354
+#, c-format
+msgid ""
+"Change your Cd-Rom!\n"
+"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
+"done.\n"
+"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
+msgstr ""
+
+#: steps_interactive.pm:372 steps_interactive.pm:490
+#, c-format
+msgid "Looking for available packages..."
+msgstr ""
+
+#: steps_interactive.pm:380
+#, c-format
+msgid ""
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
+msgstr ""
+
+#: steps_interactive.pm:428
+#, c-format
+msgid ""
+"Please choose load or save package selection.\n"
+"The format is the same as auto_install generated files."
+msgstr ""
+
+#: steps_interactive.pm:430
+#, c-format
+msgid "Load"
+msgstr ""
+
+#: steps_interactive.pm:430
+#, c-format
+msgid "Save"
+msgstr ""
+
+#: steps_interactive.pm:438
+#, c-format
+msgid "Bad file"
+msgstr ""
+
+#: steps_interactive.pm:455
+#, c-format
+msgid "Plasma"
+msgstr ""
+
+#: steps_interactive.pm:456
+#, c-format
+msgid "GNOME"
+msgstr ""
+
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
+
+#: steps_interactive.pm:460
+#, c-format
+msgid "You can choose your workstation desktop profile."
+msgstr ""
+
+#: steps_interactive.pm:552
+#, c-format
+msgid "Selected size is larger than available space"
+msgstr ""
+
+#: steps_interactive.pm:576
+#, c-format
+msgid "Type of install"
+msgstr ""
+
+#: steps_interactive.pm:577
+#, c-format
+msgid ""
+"You have not selected any group of packages.\n"
+"Please choose the minimal installation you want:"
+msgstr ""
+
+#: steps_interactive.pm:582
+#, c-format
+msgid "With X"
+msgstr ""
+
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
+#, c-format
+msgid "With basic documentation (recommended!)"
+msgstr ""
+
+#: steps_interactive.pm:585
+#, c-format
+msgid "Truly minimal install (especially no urpmi)"
+msgstr ""
+
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
+#, c-format
+msgid "Preparing installation"
+msgstr ""
+
+#: steps_interactive.pm:655
+#, c-format
+msgid "Installing package %s"
+msgstr ""
+
+#: steps_interactive.pm:679
+#, c-format
+msgid "There was an error ordering packages:"
+msgstr ""
+
+#: steps_interactive.pm:679
+#, c-format
+msgid "Go on anyway?"
+msgstr ""
+
+#: steps_interactive.pm:683
+#, c-format
+msgid "Retry"
+msgstr ""
+
+#: steps_interactive.pm:684
+#, c-format
+msgid "Skip this package"
+msgstr ""
+
+#: steps_interactive.pm:685
+#, c-format
+msgid "Skip all packages from medium \"%s\""
+msgstr ""
+
+#: steps_interactive.pm:686
+#, c-format
+msgid "Go back to media and packages selection"
+msgstr ""
+
+#: steps_interactive.pm:689
+#, c-format
+msgid "There was an error installing package %s."
+msgstr ""
+
+#: steps_interactive.pm:708
+#, c-format
+msgid "Post-install configuration"
+msgstr ""
+
+#: steps_interactive.pm:715
+#, c-format
+msgid "Please ensure the Update Modules media is in drive %s"
+msgstr ""
+
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
+#, c-format
+msgid "Updates"
+msgstr "განახლებები"
+
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr ""
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr ""
+
+#: steps_interactive.pm:792
+#, c-format
+msgid ""
+"You now have the opportunity to download updated packages. These packages\n"
+"have been updated after the distribution was released. They may\n"
+"contain security or bug fixes.\n"
+"\n"
+"To download these packages, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to install the updates?"
+msgstr ""
+
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
+#, c-format
+msgid "%s on %s"
+msgstr ""
+
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
+#, c-format
+msgid "Hardware"
+msgstr "მოწყობილობა"
+
+#: steps_interactive.pm:958
+#, c-format
+msgid "Sound card"
+msgstr ""
+
+#: steps_interactive.pm:972
+#, c-format
+msgid "Graphical interface"
+msgstr ""
+
+#: steps_interactive.pm:978 steps_interactive.pm:990
+#, c-format
+msgid "Network & Internet"
+msgstr "ქსელი და ინტერნეტი"
+
+#: steps_interactive.pm:991
+#, c-format
+msgid "Proxies"
+msgstr ""
+
+#: steps_interactive.pm:992
+#, c-format
+msgid "configured"
+msgstr ""
+
+#: steps_interactive.pm:1002
+#, c-format
+msgid "Security Level"
+msgstr ""
+
+#: steps_interactive.pm:1022
+#, c-format
+msgid "Firewall"
+msgstr "ქსელის დამცავი (Firewall)"
+
+#: steps_interactive.pm:1026
+#, c-format
+msgid "activated"
+msgstr ""
+
+#: steps_interactive.pm:1026
+#, c-format
+msgid "disabled"
+msgstr ""
+
+#: steps_interactive.pm:1041
+#, c-format
+msgid "You have not configured X. Are you sure you really want this?"
+msgstr ""
+
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
+#, c-format
+msgid "Preparing initial startup program..."
+msgstr ""
+
+#: steps_interactive.pm:1073
+#, c-format
+msgid "Be patient, this may take a while..."
+msgstr ""
+
+#: steps_interactive.pm:1089
+#, c-format
+msgid ""
+"In this security level, access to the files in the Windows partition is "
+"restricted to the administrator."
+msgstr ""
+
+#: steps_interactive.pm:1121
+#, c-format
+msgid "Insert a blank floppy in drive %s"
+msgstr ""
+
+#: steps_interactive.pm:1123
+#, c-format
+msgid "Creating auto install floppy..."
+msgstr ""
+
+#: steps_interactive.pm:1134
+#, c-format
+msgid ""
+"Some steps are not completed.\n"
+"\n"
+"Do you really want to quit now?"
+msgstr ""
+
+#: steps_interactive.pm:1144
+#, c-format
+msgid "Congratulations"
+msgstr "გილოცავთ"
+
+#: steps_interactive.pm:1147
+#, c-format
+msgid "Reboot"
+msgstr "გადატვირთვა"
+
+#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
+#: steps_list.pm:16
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Language"
+msgstr ""
+
+#: steps_list.pm:16 steps_list.pm:23
+#, c-format
+msgid "Localization"
+msgstr ""
+
+#: steps_list.pm:17
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"License"
+msgstr ""
+
+#: steps_list.pm:18
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Mouse"
+msgstr ""
+
+#: steps_list.pm:19 steps_list.pm:20
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Hard drive detection"
+msgstr ""
+
+#: steps_list.pm:21 steps_list.pm:22
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Installation class"
+msgstr ""
+
+#: steps_list.pm:23
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Keyboard"
+msgstr ""
+
+#: steps_list.pm:24
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Security"
+msgstr ""
+
+#: steps_list.pm:25
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Partitioning"
+msgstr ""
+
+#: steps_list.pm:27 steps_list.pm:28
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Formatting"
+msgstr ""
+
+#: steps_list.pm:29
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Choosing packages"
+msgstr ""
+
+#: steps_list.pm:31
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Installing"
+msgstr ""
+
+#: steps_list.pm:34
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Users"
+msgstr ""
+
+#: steps_list.pm:38 steps_list.pm:39
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Bootloader"
+msgstr ""
+
+#: steps_list.pm:40 steps_list.pm:41
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Configure X"
+msgstr ""
+
+#: steps_list.pm:42
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Summary"
+msgstr ""
+
+#: steps_list.pm:44 steps_list.pm:45
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Services"
+msgstr ""
+
+#: steps_list.pm:46
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Updates"
+msgstr ""
+
+#: steps_list.pm:48
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Exit"
+msgstr ""
diff --git a/perl-install/install/share/po/ko.po b/perl-install/install/share/po/ko.po
index 91f52d944..65b56e66e 100644
--- a/perl-install/install/share/po/ko.po
+++ b/perl-install/install/share/po/ko.po
@@ -1,32 +1,82 @@
-# translation of ko(metanav).po to ahb hong-bae
-# Korean translation of drakbootdisk.
-# Copyright (C) 2001, 2007 Free Software Foundation, Inc.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
-# changes asked by HP people -- pablo 2003-01-23
-#
-# Jaegeum Choe <baedaron@hananet.net>, 2001.
-# meta <hbahn@metq.com>, 2007.
+# Translators:
+# Jaegeum Choe <baedaron@hananet.net>, 2001
+# meta <hbahn@metq.com>, 2007
msgid ""
msgstr ""
-"Project-Id-Version: ko(metanav)\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-06-18 14:54+0900\n"
-"Last-Translator: meta <hbahn@metq.com>\n"
-"Language-Team: ahb hong-bae <ko@li.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Korean (http://www.transifex.com/MageiaLinux/mageia/language/"
+"ko/)\n"
+"Language: ko\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: KBabel 1.11.4\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr ""
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr ""
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr ""
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr ""
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr ""
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr ""
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
msgstr "추가할 미디어가 있습니까?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -39,91 +89,57 @@ msgstr ""
"\n"
"설정할 추가 설치 매체가 있습니까?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "망(HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "망(FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "망(NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "미러사이트의 (URL)주소를 적어주십시오."
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "URL 주소는 ftp:// 또는 http:// 로 시작되어야 합니다."
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr "유효한 미러 목록을 받기 위해 Mandriva Linux 홈페이지에 접속 중..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Mandriva Linux 홈페이지에 접속하여 미러사이트목록을 받는 데 실패했습니다."
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "패키지를 받을 미러 사이트를 선택하시오."
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "망 파일 시스템 (NFS) 구성"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr "NFS 매체의 호스트 이름과 디렉토리를 입력해 주십시요."
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr "호스트 이름을 찾을 수 없습니다"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "디렉토리는 \"/\"로 시작되어야 합니다."
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "망 파일 시스템(NFS)의 호스트 이름을 설치합니까?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "디렉토리"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "추가"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
@@ -131,48 +147,90 @@ msgid ""
msgstr ""
"미러 사이트에서 패키지 리스트를 찾을 수 없습니다. 이 위치에 만드시겠습니까?"
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "이미 설치된 패키지 찾는 중..."
+msgid "Core Release"
+msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "업그레이드된 패키지를 제거하는 중..."
+msgid "Tainted Release"
+msgstr ""
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "업그레이드할 패키지를 검색중..."
+msgid "Nonfree Release"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
msgstr ""
-"다음 서버들이 선택되었습니다: %s\n"
-"\n"
-"\n"
-"이 서버들의 기본 설정은 활성화상태입니다. 알려진 보안 문제는 없지만, 새로운 "
-"문제점이 발견될 수도 있습니다.\n"
-" 그럴 경우에는 가능한 한 신속하게\n"
-"업그레이드해야 합니다.\n"
-"\n"
-"\n"
-"정말로 이 서버들을 설치합니까?\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "이미 설치된 패키지 찾는 중..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "업그레이드할 패키지를 검색중..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "업그레이드된 패키지를 제거하는 중..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -185,82 +243,87 @@ msgstr ""
"\n"
"정말 이 패키지들을 제거 하시겠습니까?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "%s 파일을 읽는중 오류가 발생했습니다."
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "다음 디스크이름이 변경되었습니다. :"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (이전 이름은 %s였음.)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP(하이퍼텍스트 전송 규약)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP(파일 전송규약)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS(망 파일 시스템)"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "망"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "매체를 선택하시오"
-#: any.pm:1153
-#, fuzzy, c-format
+#: any.pm:1381
+#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "파일이 이미 존재합니다. 덮어쓸까요?"
+msgstr ""
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "권한이 없습니다."
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "부정확한 NFS 이름입니다"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "알 수 없는 미디어 %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "파티션을 나누기 전에는 스크린샷을 만들 수 없습니다."
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "스크린샷은 설치 이후에 %s에 위치 할 것입니다."
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
-msgstr "설치중"
+msgstr ""
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "설정"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "%s도 포맷해야 합니다."
@@ -284,369 +347,457 @@ msgstr "망 활성화 중..."
msgid "Bringing down the network"
msgstr "망 해제 중..."
-#: media.pm:703 media.pm:714
-#, fuzzy, c-format
-msgid "Downloading file %s..."
-msgstr "파일 전송 중 ..."
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr "추후 사용하기 위해 디스크에 패키지 복사중... "
-#: media.pm:861
-#, fuzzy, c-format
+#: media.pm:797
+#, c-format
msgid "Copying in progress"
-msgstr "검색 진행 중"
+msgstr "복사 진행중"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "필수 패키지"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "중요한 패키지"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "훌륭한 패키지"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "좋은 패키지"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "괜찮은 패키지"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "설명 없음"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "워크스테이션"
+msgid "An error occurred:"
+msgstr ""
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "오피스 워크스테이션"
+msgid "A fatal error occurred: %s."
+msgstr ""
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr ""
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
msgstr ""
-"오피스 프로그램들: 워드프로세서 (OpenOffice.org Writer, Kword), 스프레드쉬트 "
-"(OpenOffice.org Calc, Kspread), PDF 뷰어, 등등"
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "워크스테이션"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "오피스 워크스테이션"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"오피스 프로그램들: 워드프로세서 (kword, abiword), 스프레드쉬트 (kspread,"
-"gnumeric), pdf 뷰어, 등등"
+"오피스 프로그램들: 워드프로세서 (LibreOffice Writer, Kword), 스프레드쉬트 "
+"(LibreOffice Calc, Kspread), PDF 뷰어, 등등"
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "게임 스테이션"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "간단한 게임모음: 아케이드, 보드, 전략 등등"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "멀티미디어 스테이션"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "사운드 및 비디오 연주/편집 프로그램"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "인터넷 스테이션"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr "메일/뉴스를 읽고 보내며 (mutt, tin..) 웹검색을 하기 위한 도구모음"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "망 컴퓨터 (클라이언트)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "SSH를 포함한 여러 프로토콜의 클라이언트"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "쉽게 컴퓨터 설정을 하기 위한 도구"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "콘솔 도구"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "에디터, 쉘, 파일도구, 터미널"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "개발"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "C/C++ 개발 라이브러리, 프로그램 및 헤더파일"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "문서"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "리눅스 및 자유 소프트웨어에 대한 서적과 Howto문서"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "리눅스 기본 규격(Linux Standard Base)"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "리눅스 기본 규격. 외부 애플리케이션 지원"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "웹 서버"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "아파치"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "그룹웨어"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Kolab 서버"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "방화벽/라우터"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "인터넷 게이트웨이"
-#: share/meta-task/compssUsers.pl:83
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:92
+#, c-format
msgid "Mail/News"
-msgstr "/파일(F)/새로 만들기(_N)"
+msgstr ""
-#: share/meta-task/compssUsers.pl:84
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:93
+#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "포스트픽스 메일 서버"
+msgstr ""
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "디렉토리 서버"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP 서버"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "도메인 이름 서버/망 정보 서버"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "도메인 이름 및 망 정보 서버"
-#: share/meta-task/compssUsers.pl:99
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:112
+#, c-format
msgid "File and Printer Sharing Server"
-msgstr "프린터 서버"
+msgstr ""
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "NFS 서비스, 삼바 서비스"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "데이터베이스"
-#: share/meta-task/compssUsers.pl:104
-#, fuzzy, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL 또는 MySQL 데이터베이스 서버"
+#: share/meta-task/compssUsers.pl:118
+#, c-format
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr ""
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "웹/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "아파치와 프로FTPD"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "메일"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "포스트픽스 메일 서버"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL 또는 MySQL 데이터베이스 서버"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL 또는 MariaDB 데이터베이스 서버"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "망 컴퓨터 서버"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "NFS 서버, 삼바 서버, 프록시 서버, SSH 서버"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "그래픽 환경"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "K 데스크탑 환경 기반 워크스테이션"
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr "K Desktop 환경, 여러가지 도구를 수반한 기본 그래픽 환경"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "GNOME 워크스테이션"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr "사용자 친화적 응용 프로그램들과 데스크탑 도구들을 가진 그래픽 환경"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
#, c-format
-msgid "IceWm Desktop"
-msgstr "IceWm 데스크탑"
+msgid "Xfce Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "기타 그래픽 데스크탑"
-#: share/meta-task/compssUsers.pl:147
-#, fuzzy, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, 윈도우 메이커, 인라이튼먼트, Fvwm, 등등"
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "유틸리티"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH 서비스"
-#: share/meta-task/compssUsers.pl:177
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:225
+#, c-format
msgid "Webmin"
-msgstr "웹민 서비스"
+msgstr ""
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Webmin 원격 설정 서버"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "망 유틸리티들/감시"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "감시 도구, 프로세스 관리, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
-#, fuzzy, c-format
-msgid "Mandriva Wizards"
-msgstr "맨드리바 제어 센터"
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr ""
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "서버 설정 도우미"
@@ -660,7 +811,7 @@ msgstr ""
"오류가 발생했지만, 처리할 수 없습니다.\n"
"위험을 감수하려면 계속하세요."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -680,204 +831,251 @@ msgstr "%s 단계로 넘어갑니다.\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux 설치 %s"
+msgid "%s Installation %s"
+msgstr "%s 설치 %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> 항목간 이동"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"시스템의 자원이 부족합니다. 맨드리바 리눅스를 설치하는데 \n"
-"일부 문제가 발생할 수도 있습니다.\n"
-"문제가 발생하면 텍스트모드로 재설치하십시오.\n"
-"텍스트 모드 설치는 CDROM으로 부팅후 「F1」을 누르고 「text」를 입력하시면 됩"
-"니다."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "데스크톱"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "패키지 그룹 선택"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "개별 팩키지 선택"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "전체 크기: %d / %d MB"
+msgid "Unselect All"
+msgstr "모든 선택 해제"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "잘못된 팩키지"
+msgid "Total size: %d / %d MB"
+msgstr "전체 크기: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "판"
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "크기: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d 킬로 바이트\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "중요도: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "이 패키지를 선택/버림 할 수 없습니다."
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "%s 가 없음"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "%s 비충족"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "%s 를 활성화하기 위해 시도중"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "%s를 유지하기 위해"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr "이 패키지 선택할 수 없음 - 디스크 공간 부족"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "다음 패키지들을 설치합니다."
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "다음 패키지들을 제거합니다."
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "이것은 필수 패키지이므로 제거할 수 없습니다."
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "선택해제할 수 없음 - 이미 설치된 패키지입니다."
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "선택해제할 수 없음 - 업그레이드 필."
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "자동 선택 패키지들 보기"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "설치"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "열기/저장 선택"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "선택된 패키지 목록 업데이트 중"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "최소 설치"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "소프트웨어 관리"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "설치할 패키지를 선택하시오."
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "설치중"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "상세설명 생략"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "남은 시간 "
+msgid "Time remaining:"
+msgstr ""
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "계산 중"
+msgid "(estimating...)"
+msgstr ""
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d 패키지"
-msgstr[1] "%d 패키지"
+msgstr[0] ""
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "요약설명"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "설정"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "설정되지 않음"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
@@ -886,107 +1084,103 @@ msgstr ""
"다음 설치 매체를 찾았습니다.\n"
"설치 하지 않으려면 설치해제하십시오."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
"설치 전에 하드 드라이브로 CDROM에 있는 컨텐츠를 복사할 수 있습니다.\n"
"그러면 하드 드라이브에 설치한 후에도 패키지는 시스템에 남아서 재설치가 가능합"
"니다."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "전체 CD 복사"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "오류 발생"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "키보드 구성을 선택하시오."
+msgid "Please choose your keyboard layout"
+msgstr "키보드 구성을 선택하시오"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "지원되는 키보드 목록입니다."
+msgid "Here is the full list of available keyboards:"
+msgstr ""
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "설치/업그레이드"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "설치합니까 아니면 업그레이드 합니까?"
-#: steps_interactive.pm:134
+#: steps_interactive.pm:159
#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
-msgstr ""
+msgstr "설치"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "업그레이드 %s"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
+msgid "Encryption key for %s"
msgstr ""
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
+msgid "Cancel installation, reboot system"
msgstr ""
-#: steps_interactive.pm:158
-#, fuzzy, c-format
-msgid "Encryption key for %s"
-msgstr "암호화 키"
-
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "New Installation"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "Configuring IDE"
-msgstr "IDE 설정중"
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"1MB 부트스트랩 공간 부족! \n"
-"설치는 계속할 수 있지만, 시스템을 부팅하기 위해서는 DiskDrake에서 부트스트랩 "
-"파티션을 만들어야 합니다."
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+msgid "CD/DVD"
+msgstr ""
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
msgstr ""
-"PPC PReP Boot 부트스트랩 생성이 필요합니다!\n"
-"설치는 계속할 수 있지만, 시스템을 부팅하기 위해서는 DiskDrake에서 부트스트랩 "
-"파티션을 만들어야 합니다."
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -999,21 +1193,21 @@ msgstr ""
"「%s」라고 쓰여진 CDROM을 드라이브에 넣은 후, 「확인」을 눌러 주세요.\n"
"만약 CDROM을 가지고 있지 않다면, 「취소」를 눌러 추가 설치를 취소하세요."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "유효한 패키지를 찾고 있습니다."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
"현재 시스템에는 설치 또는 업그레이드 할만한 충분한 공간이 \n"
"남아있지 않습니다.(%dMB > %dMB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
@@ -1022,52 +1216,52 @@ msgstr ""
"패키지 선택목록을 불러올지 혹은 저장할지를 선택하세요.\n"
"형식(포맷)은 자동설치 생성 파일과 동일합니다."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "불러오기"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "저장"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "손상된 파일 혹은 없는 파일입니다."
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "그놈"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "최소 설치"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "선택된 용량이 사용할 수 있는 공간보다 큽니다."
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "설치 타입"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1076,82 +1270,126 @@ msgstr ""
"어떤 패키지 그룹도 선택되지 않았습니다.\n"
"패키지 최소설치 이상을 선택하십시오."
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "X 포함"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "기본 문서 포함(추천!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "최소 설치(특히 urpmi사용안함)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "설치 준비중입니다"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "%s 패키지 설치중"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "패키지를 정렬하는 중 오류발생:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "계속 진행합니까?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "재시도"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr "이 패키지는 설치하지 않고 지나가기"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr "\"%s\"에서 모든 패키지를 설치하지 않음"
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
msgstr "미디어나 패키지 선택목록으로 돌아가기"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
msgstr "다음 패키지 설치중 오류 발생: %s."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "설치 후 환경설정"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr "업데이트 모듈 매체가 %s 드라이브에 있도록 하십시오."
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "업데이트"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "다음 패키지들을 설치합니다."
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr ""
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1169,133 +1407,80 @@ msgstr ""
"이 패키지들을 다운로드 받으려면 인터넷이 연결되어 있어야 합니다.\n"
"업데이트를 설치 하시겠습니까?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "사용할 패키지의 리스트를 미러 사이트에서 받습니다."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "미러사이트 %s에 접속할 수 없습니다"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s (%s 컴퓨터)"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "하드웨어"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "사운드 카드"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "ISA 사운드 카드가 있습니까?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"사운드 카드를 설정하려면 설치 후에\n"
-"「alsaconf」 또는 「sndconfig」명령을 실행해주십시요."
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"사운드 카드가 발견되지 않았습니다.\n"
-"설치 후에「harddrake」명령을 실행해주십시요."
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "시작시 바로 X-Window 실행"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "망과 인터넷"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "프록시"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "재설정되었습니다."
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "보안 등급"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "방화벽"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "활성화"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "금지"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "X 설정이 되지 않았습니다. 설정하시겠습니까?"
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "부트 로더 준비중"
-
-#: steps_interactive.pm:1018
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Preparing initial startup program..."
msgstr ""
-"예전 모델이거나 알 수 없는 컴퓨터입니다.\n"
-"yaboot 부트로더는 작동되지 않을 것입니다.\n"
-"설치를 계속 진행하지만, 컴퓨터를 부팅하기 위해서\n"
-"BootX나 또는 몇몇 방법을 써야 될수도 있습니다. \n"
-"root fs를 위한 kernel argument : root=%s"
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "aboot를 사용하시겠습니까?"
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
+msgid "Be patient, this may take a while..."
msgstr ""
-"aboot 설치 실패. \n"
-"강제설치합니까? - 첫번째 파티션이 훼손될 수 있습니다."
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
@@ -1304,17 +1489,17 @@ msgstr ""
"이 보안 등급에서는 윈도우즈 파티션에서의 파일 접근이 관리자에 의해 제한 됩니"
"다."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "%s 드라이브에 빈 플로피 디스크를 넣으세요"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "자동 설치 플로피 디스크 생성 중"
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1325,50 +1510,16 @@ msgstr ""
"\n"
"정말 지금 종료 하시겠습니까?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "축하합니다."
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "다시 시작"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "자동 설치 플로피 디스크 생성"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"자동 설치는 원한다면 완벽한 자동화가 가능합니다.\n"
-"이럴 경우, 하드 드라이브를 점유해 버립니다!\n"
-"(이것은 또 다른 컴퓨터에 동일하게 설치할 때를 위한 것입니다.)\n"
-"일반적으로 직접 설치하는 것이 좋습니다.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "재시도"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "자동"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "선택된 패키지 목록 저장"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1380,7 +1531,7 @@ msgstr "언어"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "지역화"
#: steps_list.pm:17
#, c-format
@@ -1459,13 +1610,6 @@ msgid ""
"Users"
msgstr "사용자들"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "망 설정"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1508,73 +1652,22 @@ msgid ""
"Exit"
msgstr "종료"
-#~ msgid "All"
-#~ msgstr "모두"
-
-#~ msgid "TV card"
-#~ msgstr "TV 카드"
-
-#~ msgid "Arkeia"
-#~ msgstr "아르케이아"
-
-#~ msgid "Flatout"
-#~ msgstr "플래트아웃(최고속도로)"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "3D"
-#~ msgstr "3차원"
-
-#~ msgid "CMS"
-#~ msgstr "CMS"
-
-#~ msgid "CRM"
-#~ msgstr "CRM"
-
-#~ msgid "2007 product line"
-#~ msgstr "2007 제품 라인"
-
-#~ msgid "Invictus Firewall"
-#~ msgstr "인빅투스 방화벽"
-
-#~ msgid "Discovery Live Mode"
-#~ msgstr "Discovery Live Mode"
-
-#~ msgid "How to register"
-#~ msgstr "등록하는 법"
-
-#~ msgid "Rpmdrake 2"
-#~ msgstr "Rpmdrake 2"
-
-#~ msgid "Mandriva Online Services"
-#~ msgstr "맨드리바 온라인 서비스"
-
-#~ msgid "New Theme"
-#~ msgstr "새 테마"
-
-#~ msgid "Web 2.0"
-#~ msgstr "웹 2.0"
-
-#~ msgid "Kaspersky"
-#~ msgstr "캐스퍼 스카이(인터넷보안업체)"
-
-#~ msgid "LinDVD"
-#~ msgstr "LinDVD"
-
-#~ msgid "Skype"
-#~ msgstr "스카이프(인터넷 전화)"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "미러사이트의 (URL)주소를 적어주십시오."
-#~ msgid "Transgaming/Cedega"
-#~ msgstr "Cedega - 윈도우용 게임 실행기"
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "URL 주소는 ftp:// 또는 http:// 로 시작되어야 합니다."
-#~ msgid "DrakVPN"
-#~ msgstr "드레이크VPN - 가상사설통신망"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr "유효한 미러 목록을 받기 위해 %s 홈페이지에 접속 중..."
-#~ msgid "Boot"
-#~ msgstr "부트"
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
+#~ msgstr "%s 홈페이지에 접속하여 미러사이트목록을 받는 데 실패했습니다."
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "사용자 인증"
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "패키지를 받을 미러 사이트를 선택하시오."
diff --git a/perl-install/install/share/po/ku.po b/perl-install/install/share/po/ku.po
new file mode 100644
index 000000000..ed7adff7c
--- /dev/null
+++ b/perl-install/install/share/po/ku.po
@@ -0,0 +1,1608 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Mageia\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Kurdish (http://www.transifex.com/MageiaLinux/mageia/language/"
+"ku/)\n"
+"Language: ku\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr ""
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr ""
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr ""
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr ""
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr ""
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr ""
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr ""
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
+#, c-format
+msgid ""
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
+msgstr ""
+
+#: any.pm:162
+#, c-format
+msgid "Network (HTTP)"
+msgstr ""
+
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
+msgstr ""
+
+#: any.pm:164
+#, c-format
+msgid "Network (NFS)"
+msgstr ""
+
+#: any.pm:224
+#, c-format
+msgid "NFS setup"
+msgstr ""
+
+#: any.pm:225
+#, c-format
+msgid "Please enter the hostname and directory of your NFS media"
+msgstr ""
+
+#: any.pm:229
+#, c-format
+msgid "Hostname missing"
+msgstr ""
+
+#: any.pm:230
+#, c-format
+msgid "Directory must begin with \"/\""
+msgstr ""
+
+#: any.pm:234
+#, c-format
+msgid "Hostname of the NFS mount ?"
+msgstr ""
+
+#: any.pm:235
+#, c-format
+msgid "Directory"
+msgstr ""
+
+#: any.pm:265
+#, c-format
+msgid "Supplementary"
+msgstr ""
+
+#: any.pm:300
+#, c-format
+msgid ""
+"Can't find a package list file on this mirror. Make sure the location is "
+"correct."
+msgstr ""
+
+#: any.pm:325
+#, c-format
+msgid "Core Release"
+msgstr ""
+
+#: any.pm:327
+#, c-format
+msgid "Tainted Release"
+msgstr ""
+
+#: any.pm:329
+#, c-format
+msgid "Nonfree Release"
+msgstr ""
+
+#: any.pm:367
+#, c-format
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr ""
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr ""
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr ""
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:850
+#, c-format
+msgid ""
+"The following packages will be removed to allow upgrading your system: %s\n"
+"\n"
+"\n"
+"Do you really want to remove these packages?\n"
+msgstr ""
+
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr ""
+
+#: any.pm:1283
+#, c-format
+msgid "The following disk(s) were renamed:"
+msgstr ""
+
+#: any.pm:1285
+#, c-format
+msgid "%s (previously named as %s)"
+msgstr ""
+
+#: any.pm:1342
+#, c-format
+msgid "HTTP"
+msgstr ""
+
+#: any.pm:1342
+#, c-format
+msgid "FTP"
+msgstr ""
+
+#: any.pm:1342
+#, c-format
+msgid "NFS"
+msgstr ""
+
+#: any.pm:1361 steps_interactive.pm:979
+#, c-format
+msgid "Network"
+msgstr ""
+
+#: any.pm:1365
+#, c-format
+msgid "Please choose a media"
+msgstr ""
+
+#: any.pm:1381
+#, c-format
+msgid "File already exists. Overwrite it?"
+msgstr ""
+
+#: any.pm:1385
+#, c-format
+msgid "Permission denied"
+msgstr ""
+
+#: any.pm:1433
+#, c-format
+msgid "Bad NFS name"
+msgstr ""
+
+#: any.pm:1454
+#, c-format
+msgid "Bad media %s"
+msgstr ""
+
+#: any.pm:1498
+#, c-format
+msgid "Cannot make screenshots before partitioning"
+msgstr ""
+
+#: any.pm:1509
+#, c-format
+msgid "Screenshots will be available after install in %s"
+msgstr ""
+
+#: gtk.pm:134
+#, c-format
+msgid "Installation"
+msgstr ""
+
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
+#, c-format
+msgid "Configuration"
+msgstr "Ve avakirin"
+
+#: install2.pm:220
+#, c-format
+msgid "You must also format %s"
+msgstr ""
+
+#: interactive.pm:16
+#, c-format
+msgid ""
+"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
+"You can find some information about them at: %s"
+msgstr ""
+
+#: interactive.pm:22
+#, c-format
+msgid "Bringing up the network"
+msgstr ""
+
+#: interactive.pm:27
+#, c-format
+msgid "Bringing down the network"
+msgstr ""
+
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
+
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
+
+#: media.pm:744
+#, c-format
+msgid "Copying some packages on disks for future use"
+msgstr ""
+
+#: media.pm:797
+#, c-format
+msgid "Copying in progress"
+msgstr ""
+
+#: pkgs.pm:32
+#, c-format
+msgid "must have"
+msgstr ""
+
+#: pkgs.pm:33
+#, c-format
+msgid "important"
+msgstr ""
+
+#: pkgs.pm:34
+#, c-format
+msgid "very nice"
+msgstr ""
+
+#: pkgs.pm:35
+#, c-format
+msgid "nice"
+msgstr ""
+
+#: pkgs.pm:36
+#, c-format
+msgid "maybe"
+msgstr ""
+
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr ""
+
+#: pkgs.pm:290
+#, c-format
+msgid ""
+"Some packages requested by %s cannot be installed:\n"
+"%s"
+msgstr ""
+
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr ""
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr ""
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr ""
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:16
+#, c-format
+msgid "Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
+msgid ""
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:26
+#, c-format
+msgid "Game station"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:27
+#, c-format
+msgid "Amusement programs: arcade, boards, strategy, etc"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:30
+#, c-format
+msgid "Multimedia station"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:31
+#, c-format
+msgid "Sound and video playing/editing programs"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:36
+#, c-format
+msgid "Internet station"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:37
+#, c-format
+msgid ""
+"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
+"Web"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:42
+#, c-format
+msgid "Network Computer (client)"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:43
+#, c-format
+msgid "Clients for different protocols including ssh"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:49
+#, c-format
+msgid "Tools to ease the configuration of your computer"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:53
+#, c-format
+msgid "Console Tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:54
+#, c-format
+msgid "Editors, shells, file tools, terminals"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
+#, c-format
+msgid "Development"
+msgstr "Perisandin"
+
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
+#, c-format
+msgid "C and C++ development libraries, programs and include files"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
+#, c-format
+msgid "Documentation"
+msgstr "Dokûmantasyon"
+
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
+#, c-format
+msgid "Books and Howto's on Linux and Free Software"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
+#, c-format
+msgid "LSB"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
+#, c-format
+msgid "Linux Standard Base. Third party applications support"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:79
+#, c-format
+msgid "Web Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:80
+#, c-format
+msgid "Apache"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:84
+#, c-format
+msgid "Groupware"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:85
+#, c-format
+msgid "Kolab Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
+#, c-format
+msgid "Firewall/Router"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
+#, c-format
+msgid "Internet gateway"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:92
+#, c-format
+msgid "Mail/News"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:93
+#, c-format
+msgid "Postfix mail server, Inn news server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:97
+#, c-format
+msgid "Directory Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:102
+#, c-format
+msgid "FTP Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:103
+#, c-format
+msgid "ProFTPd"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:107
+#, c-format
+msgid "DNS/NIS"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:108
+#, c-format
+msgid "Domain Name and Network Information Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:112
+#, c-format
+msgid "File and Printer Sharing Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:113
+#, c-format
+msgid "NFS Server, Samba server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
+#, c-format
+msgid "Database"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:118
+#, c-format
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:123
+#, c-format
+msgid "Web/FTP"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:124
+#, c-format
+msgid "Apache, Pro-ftpd"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:128
+#, c-format
+msgid "Mail"
+msgstr "Name"
+
+#: share/meta-task/compssUsers.pl:129
+#, c-format
+msgid "Postfix mail server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:134
+#, c-format
+msgid "PostgreSQL or MariaDB database server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:142
+#, c-format
+msgid "Network Computer server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:143
+#, c-format
+msgid "NFS server, SMB server, Proxy server, ssh server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:150
+#, c-format
+msgid "Graphical Environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:152
+#, c-format
+msgid "Plasma Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:153
+#, c-format
+msgid ""
+"The K Desktop Environment, the basic graphical environment with a collection "
+"of accompanying tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:158
+#, c-format
+msgid "GNOME Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
+#, c-format
+msgid ""
+"A graphical environment with user-friendly set of applications and desktop "
+"tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
+#, c-format
+msgid "Other Graphical Desktops"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:218
+#, c-format
+msgid "Utilities"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
+#, c-format
+msgid "SSH Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:225
+#, c-format
+msgid "Webmin"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:226
+#, c-format
+msgid "Webmin Remote Configuration Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:230
+#, c-format
+msgid "Network Utilities/Monitoring"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:231
+#, c-format
+msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:236
+#, c-format
+msgid "Wizards to configure server"
+msgstr ""
+
+#: steps.pm:85
+#, c-format
+msgid ""
+"An error occurred, but I do not know how to handle it nicely.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: steps.pm:469
+#, c-format
+msgid ""
+"Some important packages did not get installed properly.\n"
+"Either your cdrom drive or your cdrom is defective.\n"
+"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
+"\"\n"
+msgstr ""
+
+#: steps_auto_install.pm:71 steps_stdio.pm:27
+#, c-format
+msgid "Entering step `%s'\n"
+msgstr ""
+
+#: steps_curses.pm:22
+#, c-format
+msgid "%s Installation %s"
+msgstr ""
+
+#: steps_curses.pm:32
+#, c-format
+msgid "<Tab>/<Alt-Tab> between elements"
+msgstr ""
+
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
+#, c-format
+msgid ""
+"Your system is low on resources. You may have some problem installing\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
+"press `F1' when booting on CDROM, then enter `text'."
+msgstr ""
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
+#, c-format
+msgid "Package Group Selection"
+msgstr ""
+
+#: steps_gtk.pm:354 steps_interactive.pm:626
+#, c-format
+msgid "Individual package selection"
+msgstr ""
+
+#: steps_gtk.pm:361
+#, c-format
+msgid "Unselect All"
+msgstr ""
+
+#: steps_gtk.pm:380 steps_interactive.pm:538
+#, c-format
+msgid "Total size: %d / %d MB"
+msgstr ""
+
+#: steps_gtk.pm:425
+#, c-format
+msgid "Version: "
+msgstr "Guherto: "
+
+#: steps_gtk.pm:426
+#, c-format
+msgid "Size: "
+msgstr "Mezinahî :"
+
+#: steps_gtk.pm:426
+#, c-format
+msgid "%d KB\n"
+msgstr ""
+
+#: steps_gtk.pm:427
+#, c-format
+msgid "Importance: "
+msgstr "Girîngî: "
+
+#: steps_gtk.pm:462
+#, c-format
+msgid "You cannot select/unselect this package"
+msgstr ""
+
+#: steps_gtk.pm:466
+#, c-format
+msgid "due to missing %s"
+msgstr ""
+
+#: steps_gtk.pm:467
+#, c-format
+msgid "due to unsatisfied %s"
+msgstr ""
+
+#: steps_gtk.pm:468
+#, c-format
+msgid "trying to promote %s"
+msgstr ""
+
+#: steps_gtk.pm:469
+#, c-format
+msgid "in order to keep %s"
+msgstr ""
+
+#: steps_gtk.pm:474
+#, c-format
+msgid ""
+"You cannot select this package as there is not enough space left to install "
+"it"
+msgstr ""
+
+#: steps_gtk.pm:477
+#, c-format
+msgid "The following packages are going to be installed"
+msgstr ""
+
+#: steps_gtk.pm:478
+#, c-format
+msgid "The following packages are going to be removed"
+msgstr ""
+
+#: steps_gtk.pm:504
+#, c-format
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr ""
+
+#: steps_gtk.pm:506
+#, c-format
+msgid "You cannot unselect this package. It is already installed"
+msgstr ""
+
+#: steps_gtk.pm:508
+#, c-format
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr ""
+
+#: steps_gtk.pm:512
+#, c-format
+msgid "Show automatically selected packages"
+msgstr ""
+
+#: steps_gtk.pm:516
+#, c-format
+msgid "Install"
+msgstr ""
+
+#: steps_gtk.pm:519
+#, c-format
+msgid "Load/Save selection"
+msgstr ""
+
+#: steps_gtk.pm:520 steps_gtk.pm:525
+#, c-format
+msgid "Updating package selection"
+msgstr ""
+
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
+#, c-format
+msgid "Minimal install"
+msgstr ""
+
+#: steps_gtk.pm:543
+#, c-format
+msgid "Software Management"
+msgstr "Kontrola programan"
+
+#: steps_gtk.pm:543 steps_interactive.pm:415
+#, c-format
+msgid "Choose the packages you want to install"
+msgstr ""
+
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
+#, c-format
+msgid "Installing"
+msgstr ""
+
+#: steps_gtk.pm:590
+#, c-format
+msgid "No details"
+msgstr ""
+
+#: steps_gtk.pm:610
+#, c-format
+msgid "Time remaining:"
+msgstr ""
+
+#: steps_gtk.pm:611
+#, c-format
+msgid "(estimating...)"
+msgstr ""
+
+#: steps_gtk.pm:637
+#, c-format
+msgid "%d package"
+msgid_plural "%d packages"
+msgstr[0] ""
+msgstr[1] ""
+
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
+#, c-format
+msgid "Summary"
+msgstr ""
+
+#: steps_gtk.pm:713
+#, c-format
+msgid "Configure"
+msgstr ""
+
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
+#, c-format
+msgid "not configured"
+msgstr ""
+
+#: steps_gtk.pm:773 steps_interactive.pm:315
+#, c-format
+msgid ""
+"The following installation media have been found.\n"
+"If you want to skip some of them, you can unselect them now."
+msgstr ""
+
+#: steps_gtk.pm:789 steps_interactive.pm:321
+#, c-format
+msgid ""
+"You have the option to copy the contents of the CDs onto the hard disk drive "
+"before installation.\n"
+"It will then continue from the hard disk drive and the packages will remain "
+"available once the system is fully installed."
+msgstr ""
+
+#: steps_gtk.pm:791 steps_interactive.pm:323
+#, c-format
+msgid "Copy whole CDs"
+msgstr ""
+
+#: steps_interactive.pm:40
+#, c-format
+msgid "An error occurred"
+msgstr ""
+
+#: steps_interactive.pm:105
+#, c-format
+msgid "Please choose your keyboard layout"
+msgstr ""
+
+#: steps_interactive.pm:109
+#, c-format
+msgid "Here is the full list of available keyboards:"
+msgstr ""
+
+#: steps_interactive.pm:153
+#, c-format
+msgid "Install/Upgrade"
+msgstr ""
+
+#: steps_interactive.pm:157
+#, c-format
+msgid "Is this an install or an upgrade?"
+msgstr ""
+
+#: steps_interactive.pm:159
+#, c-format
+msgid ""
+"_: This is a noun:\n"
+"Install"
+msgstr ""
+
+#: steps_interactive.pm:161
+#, c-format
+msgid "Upgrade %s"
+msgstr ""
+
+#: steps_interactive.pm:184
+#, c-format
+msgid "Encryption key for %s"
+msgstr ""
+
+#: steps_interactive.pm:217
+#, c-format
+msgid "Cancel installation, reboot system"
+msgstr ""
+
+#: steps_interactive.pm:218
+#, c-format
+msgid "New Installation"
+msgstr ""
+
+#: steps_interactive.pm:219
+#, c-format
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
+
+#: steps_interactive.pm:223
+#, c-format
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr ""
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr ""
+
+#: steps_interactive.pm:354
+#, c-format
+msgid ""
+"Change your Cd-Rom!\n"
+"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
+"done.\n"
+"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
+msgstr ""
+
+#: steps_interactive.pm:372 steps_interactive.pm:490
+#, c-format
+msgid "Looking for available packages..."
+msgstr ""
+
+#: steps_interactive.pm:380
+#, c-format
+msgid ""
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
+msgstr ""
+
+#: steps_interactive.pm:428
+#, c-format
+msgid ""
+"Please choose load or save package selection.\n"
+"The format is the same as auto_install generated files."
+msgstr ""
+
+#: steps_interactive.pm:430
+#, c-format
+msgid "Load"
+msgstr ""
+
+#: steps_interactive.pm:430
+#, c-format
+msgid "Save"
+msgstr ""
+
+#: steps_interactive.pm:438
+#, c-format
+msgid "Bad file"
+msgstr ""
+
+#: steps_interactive.pm:455
+#, c-format
+msgid "Plasma"
+msgstr ""
+
+#: steps_interactive.pm:456
+#, c-format
+msgid "GNOME"
+msgstr "GNOME"
+
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
+
+#: steps_interactive.pm:460
+#, c-format
+msgid "You can choose your workstation desktop profile."
+msgstr ""
+
+#: steps_interactive.pm:552
+#, c-format
+msgid "Selected size is larger than available space"
+msgstr ""
+
+#: steps_interactive.pm:576
+#, c-format
+msgid "Type of install"
+msgstr ""
+
+#: steps_interactive.pm:577
+#, c-format
+msgid ""
+"You have not selected any group of packages.\n"
+"Please choose the minimal installation you want:"
+msgstr ""
+
+#: steps_interactive.pm:582
+#, c-format
+msgid "With X"
+msgstr ""
+
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
+#, c-format
+msgid "With basic documentation (recommended!)"
+msgstr ""
+
+#: steps_interactive.pm:585
+#, c-format
+msgid "Truly minimal install (especially no urpmi)"
+msgstr ""
+
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
+#, c-format
+msgid "Preparing installation"
+msgstr ""
+
+#: steps_interactive.pm:655
+#, c-format
+msgid "Installing package %s"
+msgstr ""
+
+#: steps_interactive.pm:679
+#, c-format
+msgid "There was an error ordering packages:"
+msgstr ""
+
+#: steps_interactive.pm:679
+#, c-format
+msgid "Go on anyway?"
+msgstr ""
+
+#: steps_interactive.pm:683
+#, c-format
+msgid "Retry"
+msgstr ""
+
+#: steps_interactive.pm:684
+#, c-format
+msgid "Skip this package"
+msgstr ""
+
+#: steps_interactive.pm:685
+#, c-format
+msgid "Skip all packages from medium \"%s\""
+msgstr ""
+
+#: steps_interactive.pm:686
+#, c-format
+msgid "Go back to media and packages selection"
+msgstr ""
+
+#: steps_interactive.pm:689
+#, c-format
+msgid "There was an error installing package %s."
+msgstr ""
+
+#: steps_interactive.pm:708
+#, c-format
+msgid "Post-install configuration"
+msgstr ""
+
+#: steps_interactive.pm:715
+#, c-format
+msgid "Please ensure the Update Modules media is in drive %s"
+msgstr ""
+
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
+#, c-format
+msgid "Updates"
+msgstr "Rojanekirin"
+
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr ""
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr ""
+
+#: steps_interactive.pm:792
+#, c-format
+msgid ""
+"You now have the opportunity to download updated packages. These packages\n"
+"have been updated after the distribution was released. They may\n"
+"contain security or bug fixes.\n"
+"\n"
+"To download these packages, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to install the updates?"
+msgstr ""
+
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
+#, c-format
+msgid "%s on %s"
+msgstr ""
+
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
+#, c-format
+msgid "Hardware"
+msgstr "Kompûter"
+
+#: steps_interactive.pm:958
+#, c-format
+msgid "Sound card"
+msgstr ""
+
+#: steps_interactive.pm:972
+#, c-format
+msgid "Graphical interface"
+msgstr ""
+
+#: steps_interactive.pm:978 steps_interactive.pm:990
+#, c-format
+msgid "Network & Internet"
+msgstr "Tor & Înternet"
+
+#: steps_interactive.pm:991
+#, c-format
+msgid "Proxies"
+msgstr ""
+
+#: steps_interactive.pm:992
+#, c-format
+msgid "configured"
+msgstr ""
+
+#: steps_interactive.pm:1002
+#, c-format
+msgid "Security Level"
+msgstr ""
+
+#: steps_interactive.pm:1022
+#, c-format
+msgid "Firewall"
+msgstr "Ewlekarî (Firewall) "
+
+#: steps_interactive.pm:1026
+#, c-format
+msgid "activated"
+msgstr ""
+
+#: steps_interactive.pm:1026
+#, c-format
+msgid "disabled"
+msgstr "Pasîf"
+
+#: steps_interactive.pm:1041
+#, c-format
+msgid "You have not configured X. Are you sure you really want this?"
+msgstr ""
+
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
+#, c-format
+msgid "Preparing initial startup program..."
+msgstr ""
+
+#: steps_interactive.pm:1073
+#, c-format
+msgid "Be patient, this may take a while..."
+msgstr ""
+
+#: steps_interactive.pm:1089
+#, c-format
+msgid ""
+"In this security level, access to the files in the Windows partition is "
+"restricted to the administrator."
+msgstr ""
+
+#: steps_interactive.pm:1121
+#, c-format
+msgid "Insert a blank floppy in drive %s"
+msgstr ""
+
+#: steps_interactive.pm:1123
+#, c-format
+msgid "Creating auto install floppy..."
+msgstr ""
+
+#: steps_interactive.pm:1134
+#, c-format
+msgid ""
+"Some steps are not completed.\n"
+"\n"
+"Do you really want to quit now?"
+msgstr ""
+
+#: steps_interactive.pm:1144
+#, c-format
+msgid "Congratulations"
+msgstr "Serkeftin"
+
+#: steps_interactive.pm:1147
+#, c-format
+msgid "Reboot"
+msgstr ""
+
+#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
+#: steps_list.pm:16
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Language"
+msgstr ""
+
+#: steps_list.pm:16 steps_list.pm:23
+#, c-format
+msgid "Localization"
+msgstr ""
+
+#: steps_list.pm:17
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"License"
+msgstr ""
+
+#: steps_list.pm:18
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Mouse"
+msgstr ""
+
+#: steps_list.pm:19 steps_list.pm:20
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Hard drive detection"
+msgstr ""
+
+#: steps_list.pm:21 steps_list.pm:22
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Installation class"
+msgstr ""
+
+#: steps_list.pm:23
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Keyboard"
+msgstr ""
+
+#: steps_list.pm:24
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Security"
+msgstr ""
+
+#: steps_list.pm:25
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Partitioning"
+msgstr ""
+
+#: steps_list.pm:27 steps_list.pm:28
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Formatting"
+msgstr ""
+
+#: steps_list.pm:29
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Choosing packages"
+msgstr ""
+
+#: steps_list.pm:31
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Installing"
+msgstr ""
+
+#: steps_list.pm:34
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Users"
+msgstr ""
+
+#: steps_list.pm:38 steps_list.pm:39
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Bootloader"
+msgstr ""
+
+#: steps_list.pm:40 steps_list.pm:41
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Configure X"
+msgstr ""
+
+#: steps_list.pm:42
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Summary"
+msgstr ""
+
+#: steps_list.pm:44 steps_list.pm:45
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Services"
+msgstr ""
+
+#: steps_list.pm:46
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Updates"
+msgstr ""
+
+#: steps_list.pm:48
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Exit"
+msgstr ""
diff --git a/perl-install/install/share/po/ky.po b/perl-install/install/share/po/ky.po
index fde4c84b7..e301184eb 100644
--- a/perl-install/install/share/po/ky.po
+++ b/perl-install/install/share/po/ky.po
@@ -1,28 +1,83 @@
-# translation of DrakX-ky.po to Kyrgyz
-# Copyright (C) 2004,2003, 2005 Free Software Foundation, Inc.
-# Timur Jamakeev <ztimur@mail.ru>, 2003,2004.
-# Nurlan Borubaev <nurlan@tamga.info>, 2005.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Ilyas Bakirov <just_ilyas@yahoo.com>, 2008
+# Nurlan Borubaev <nurlan@tamga.info>, 2005
+# Timur Jamakeev <ztimur@mail.ru>, 2003-2004
msgid ""
msgstr ""
-"Project-Id-Version: DrakX-ky\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2005-04-20 20:27+0500\n"
-"Last-Translator: Nurlan Borubaev <nurlan@tamga.info>\n"
-"Language-Team: Kyrgyz\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2020-06-18 00:30+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Kyrgyz (http://www.transifex.com/MageiaLinux/mageia/language/"
+"ky/)\n"
+"Language: ky\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr ""
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr ""
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr ""
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr ""
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr ""
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr ""
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
msgstr "Сизде кийинки кезектеги кошумча алып жүрүүчү барбы?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -30,141 +85,154 @@ msgid ""
"\n"
"Do you have a supplementary installation medium to configure?"
msgstr ""
+"Төмөнкү булак табылды жана ал орнотуу мезгилинде колдонулат: %s.\n"
+"\n"
+"\n"
+"Ырастоолор үчүн кошумча булагы дагы барбы?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Желе (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Желе (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
-msgstr ""
+msgstr "Тармак (NFS)"
-#: any.pm:211
+#: any.pm:224
#, c-format
-msgid "URL of the mirror?"
-msgstr "Күзгүсүнүн URL'и?"
+msgid "NFS setup"
+msgstr "NFS орнотуу"
-#: any.pm:217
+#: any.pm:225
#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr ""
+msgid "Please enter the hostname and directory of your NFS media"
+msgstr "NFS топтомунун компьютер атын жана директориясын кириңиз"
+
+#: any.pm:229
+#, c-format
+msgid "Hostname missing"
+msgstr "Түйюндүн аты көрсөтүлгөн жок"
+
+#: any.pm:230
+#, c-format
+msgid "Directory must begin with \"/\""
+msgstr "Директория \"/\" белги менен башталышы керек"
+
+#: any.pm:234
+#, c-format
+msgid "Hostname of the NFS mount ?"
+msgstr "NFS туташуунун түйюн аты ?"
+
+#: any.pm:235
+#, c-format
+msgid "Directory"
+msgstr "Каталог"
-#: any.pm:228
+#: any.pm:265
+#, c-format
+msgid "Supplementary"
+msgstr "Кошумча"
+
+#: any.pm:300
#, c-format
msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
+"Can't find a package list file on this mirror. Make sure the location is "
+"correct."
msgstr ""
+"Бул күзгүдө пакеттердин тизмеси атбылган жок. Жайгашуусунун тууралыгын "
+"текшериңиз."
-#: any.pm:233
+#: any.pm:325
#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+msgid "Core Release"
msgstr ""
-#: any.pm:243
+#: any.pm:327
#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Пакеттерди алуучу күзгүнү тандаңыз"
+msgid "Tainted Release"
+msgstr ""
-#: any.pm:273
+#: any.pm:329
#, c-format
-msgid "NFS setup"
+msgid "Nonfree Release"
msgstr ""
-#: any.pm:274
+#: any.pm:367
#, c-format
-msgid "Please enter the hostname and directory of your NFS media"
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-#: any.pm:278
+#: any.pm:368
#, c-format
-msgid "Hostname missing"
+msgid "You should enable \"%s\""
msgstr ""
-#: any.pm:279
+#: any.pm:419
#, c-format
-msgid "Directory must begin with \"/\""
+msgid "\"%s\" contains the various pieces of the systems and its applications"
msgstr ""
-#: any.pm:283
+#: any.pm:420
#, c-format
-msgid "Hostname of the NFS mount ?"
+msgid "\"%s\" contains non free software.\n"
msgstr ""
-#: any.pm:284
+#: any.pm:421
#, c-format
-msgid "Directory"
-msgstr "Каталог"
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
-#: any.pm:306
+#: any.pm:422
#, c-format
-msgid "Supplementary"
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
msgstr ""
-#: any.pm:341
+#: any.pm:423
#, c-format
msgid ""
-"Can't find a package list file on this mirror. Make sure the location is "
-"correct."
+"It also contains software from \"%s\" rebuild with additional capabilities."
msgstr ""
-"Бул күзгүдө пакеттердин тизмеси атбылган жок. Жайгашуусунун тууралыгын "
-"текшериңиз."
-#: any.pm:375
+#: any.pm:429
#, c-format
-msgid "Looking at packages already installed..."
+msgid "Here you can enable more media if you want."
msgstr ""
-#: any.pm:382
+#: any.pm:447
#, c-format
-msgid "Removing packages prior to upgrade..."
+msgid "This medium provides package updates for medium \"%s\""
msgstr ""
-#: any.pm:424
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Орнотулган пакеттер изделип жатат..."
+
+#: any.pm:593
#, c-format
msgid "Finding packages to upgrade..."
-msgstr ""
+msgstr "Жаңыланычуу пакеттер изделип жатат..."
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:612
#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
-msgstr ""
-"Сиз төмөнкү серверлерди тандадыңыз: %s\n"
-"\n"
-"\n"
-"Бул серверлер алдынала жандандырылган болушат. Аларда кандайдыр бир "
-"белгилүү\n"
-"коопсуздук көйгөйлөрү жок, бирок алар табыла элек болушу да мүмкүн. Мындай\n"
-"учурда сиз аладрды мүмкүн болушунча тезирээк жаңылашыңыз керек.\n"
-"\n"
-"\n"
-"Сиз бул серверлерди орнотууну каалайсызбы?\n"
+msgid "Removing packages prior to upgrade..."
+msgstr "Жаңылоодон мурда пакеттер өчүрүлүп жатат..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -178,82 +246,87 @@ msgstr ""
"\n"
"Бул пакеттердин алынып ташталуусун каалайсызбы?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "%s файлын окуудагы ката"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "Төмөнкү диск(тер)дин аты өзгөртүлдү:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (мурунку аты %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Желе"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "Алып жүрүүчүнү тандаңыз"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Файл алдагачан бар. Үстүнө кайра жазылсынбы?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Кирүү укугу четке кагылды"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
-msgstr ""
+msgstr "Жаман NFS аты"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "%s жараксыз алып жүрүүчү"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Бөлүмдөрдү жаратууга чейин скриншотторду түзүүгө болбойт"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Орнотуудан кийин скриншоттор %s ичинде болот"
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
msgstr "Орнотуу"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Конфигурациялоо"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Сиз %s дагы форматташыңыз керек"
@@ -264,6 +337,9 @@ msgid ""
"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
"You can find some information about them at: %s"
msgstr ""
+"Компьютериңизде кээбир жабдыктар иштөө үчүн эркин эмес драйверлерди талап "
+"кылат.\n"
+"Алар жөнүндө маалыматты көрсөтүлгөн жерден табып аласыз: %s"
#: interactive.pm:22
#, c-format
@@ -275,110 +351,150 @@ msgstr "Тармак көтөрүлүүдө"
msgid "Bringing down the network"
msgstr "Тармак өчүрүлүүдө"
-#: media.pm:703 media.pm:714
-#, fuzzy, c-format
-msgid "Downloading file %s..."
-msgstr "%s файлын окуудагы ката"
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr "Күтө туруңуз, файл жүктөлүп жатат"
+
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "булак кошулган жок"
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
-msgstr ""
+msgstr "Кээбир пакеттерди келечекте колдонуу үчүн дискке көчүрүп жатат"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Көчүрүү жүрүүдө"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
-msgstr ""
+msgstr "болушу керек"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
-msgstr ""
+msgstr "керектүү"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
-msgstr ""
+msgstr "өтө жакшы"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
-msgstr ""
+msgstr "жакшы"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
+msgstr "болушу мүмкүн"
+
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
msgstr ""
+"\"%s\" булагында xml-info табылган жок. %s пакети үчүн жарым ганарезультат "
+"алынды"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Баяндалбады"
-#: pkgs.pm:245
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"%s менен талап кылынган кээбир пакеттер орнотула алган жок:\n"
+"%s"
+
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "Жаңылыштык орун алды:"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "Фаталдык ката пайда болду: %s."
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d орнотуу транзакциялары ишке ашпады"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Пакеттердин орнотулушу ийгиликсиз аяктады:"
+
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "Иш станциясы"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "Офис станциясы"
-#: share/meta-task/compssUsers.pl:15
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Офис программалары: текст процессорлору (OpenOffice.org Writer, Kword), "
-"электрондук таблицалар (OpenOffice.org Calc, Kspread), pdf файлдарын көрүү "
+"Офис программалары: текст процессорлору (LibreOffice Writer, Kword), "
+"электрондук таблицалар (LibreOffice Calc, Kspread), pdf файлдарын көрүү "
"программалары, ж.б."
-#: share/meta-task/compssUsers.pl:16
-#, c-format
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"Офис программалары: текст процессорлору (kword, abiword), электрондук "
-"таблицалар (kspread, gnumeric), pdf файлдарын көрүү программалары, ж.б."
-
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Оюн станциясы"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr ""
"Оюн-зоок программалары: аркада оюндары, тактай оюндары, стратегия оюндары, ж."
"б."
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Мультимедиа станциясы"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Үн жана видео ойнотуу/терүү программалары"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Интернет станциясы"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
@@ -387,196 +503,196 @@ msgstr ""
"Почтаны жана жаңылыктарды (mutt, tin..) окууга жана жөнөтүүгө, жана вебде "
"иштөөгө арналган куралдар тобу"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Тармак компьютери (клиент)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Ар түрдүү протоколдор клиенттери, ssh да кошулган"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Компьютериңизди жеңил конфигурациялоо куралдары"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Консоль куралдары"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Редакторлор, шелдер, файл куралдары, терминалдар"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Иштеп түзүү"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr ""
"C жана C++ иштеп чыгуу библиотекалары, программалар жана include файлдары"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Документация"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Linux жана Free Software жөнүндөгү китептер жана HOWTOлар"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr ""
"Linux стандарттык базасы. Үчүнчү тараптык иштеп чыгуучулардын тиркемелерин "
"колдоо"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Веб-сервери"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
-msgstr ""
+msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Groupware"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Kolab сервери"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Файрволл/Маршруттагыч"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Интернет дарбазасы"
-#: share/meta-task/compssUsers.pl:83
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:92
+#, c-format
msgid "Mail/News"
-msgstr "/Файл/_Жаңы"
+msgstr "Почта/Жаңылыктар"
-#: share/meta-task/compssUsers.pl:84
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:93
+#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Postfix почта сервери"
+msgstr "Postfix почта сервери, Inn жаңылыктар сервери"
-#: share/meta-task/compssUsers.pl:87
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:97
+#, c-format
msgid "Directory Server"
-msgstr "Веб-сервери"
+msgstr "Каталогдор сервери"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP сервери"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
-msgstr ""
+msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:107
+#, c-format
msgid "DNS/NIS"
-msgstr "NIS"
+msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:108
+#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "Домендик аттар системасы"
+msgstr "DNS жана NIS"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
-msgstr ""
+msgstr "Файл жана принтер бөлүшүү сервери"
-#: share/meta-task/compssUsers.pl:100
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:113
+#, c-format
msgid "NFS Server, Samba server"
-msgstr "Samba сервери"
+msgstr "NFS сервери, Samba сервери"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Берилиштер базасы"
-#: share/meta-task/compssUsers.pl:104
-#, fuzzy, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL же MySQL берилиштер базасынын сервери"
+#: share/meta-task/compssUsers.pl:118
+#, c-format
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "PostgreSQL жана MariaDB берилиштер базасынын сервери"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Почта"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Postfix почта сервери"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL же MySQL берилиштер базасынын сервери"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL же MariaDB берилиштер базасынын сервери"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Тармак сервери"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "NFS сервери, SMB сервери, Proxy сервери, ssh сервери"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Графикалык чөйрө"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE иш станциясы"
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -585,12 +701,12 @@ msgstr ""
"K Desktop Environment - негизги графикалык чөйрө, кошумча куралдар "
"коллекциясы менен"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "GNOME иш станциясы"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -599,60 +715,112 @@ msgstr ""
"Колдонуучуга ыңгайлашкан тиркемелерин жана иш столунун кураларын камтыган "
"графикалык чөйрө"
-#: share/meta-task/compssUsers.pl:142
-#, fuzzy, c-format
-msgid "IceWm Desktop"
-msgstr "Виртуладык иш столдору"
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "LXDE иш столу"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Башка графикалык иш столдору"
-#: share/meta-task/compssUsers.pl:147
-#, fuzzy, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm, ж.б."
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
-msgstr ""
+msgstr "Утилиталар"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH сервери"
-#: share/meta-task/compssUsers.pl:177
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:225
+#, c-format
msgid "Webmin"
-msgstr "Веб-камера"
+msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:226
+#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Конфигурацияны текшерүү"
+msgstr "Webmin узактан башкаруу сервери"
-#: share/meta-task/compssUsers.pl:182
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:230
+#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Тармак мониторинги"
+msgstr "Тармак аспаптары/Мониторинг"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
-msgstr ""
+msgstr "Мониторинг аспаптар, процесс эсептүүчүлөр, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
-#, fuzzy, c-format
-msgid "Mandriva Wizards"
-msgstr "<b>Mandriva Expert</b>"
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr "Mageia Усталары"
-#: share/meta-task/compssUsers.pl:188
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:236
+#, c-format
msgid "Wizards to configure server"
-msgstr "Кызматтарды конфигурациялоо"
+msgstr "Серверди ырастоо усталары"
#: steps.pm:85
#, c-format
@@ -663,7 +831,7 @@ msgstr ""
"Жаңылыштык орун алды, бирок мен аны кантип туура иштетүүнү билбейм.\n"
"Мындан ары тобокелге салып өзүңүз улантыңыз."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -671,6 +839,10 @@ msgid ""
"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
"\"\n"
msgstr ""
+"Кээбир негизги пакеттер туура эмес орнотулду.\n"
+"CDROM түзүлүшү же диск бузук болушу мүмкүн.\n"
+"Киргизилген дискти \"rpm -qpl media/main/*.rpm\" коммандасы менен "
+"текшериңиз\n"
#: steps_auto_install.pm:71 steps_stdio.pm:27
#, c-format
@@ -679,297 +851,363 @@ msgstr "`%s' кадамына өтүү аракети\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux %s орнотуу"
+msgid "%s Installation %s"
+msgstr "%s %s орнотуу"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> элементтер ортосунда"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Xorg жай башталып жатат. Күтө туруңуз..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
+"Системага жетеринче ресурс жетпей жатат. %s системасын\n"
+"орнотууда проблемалар чыгышы мүмкүн. Андай болсо тексттик режимде\n"
+"орнотууну текшерип көрүңүз. Ал үчүн, дисктен жүктөлүп жаткан учурда\n"
+"`F1' клавишасын басып `text' сөзүн кириңиз."
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Пакеттердин группасын тандоо"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "%s GNOME иш столун орнотуу"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Менчик орнотуу"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "GNOME иш столу"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Менчик иш столу"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Мына '%s' иш столдун алдын ала көрүнүшү."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Чоң көрүнүштү көрүү үчүн сүрөткө басыңыз"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Пакеттердин группасын тандоо"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Пакеттерди өз алдынча тандоо"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Жалпы көлөмү: %d / %d Мб"
+msgid "Unselect All"
+msgstr ""
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Туура эмес пакет"
+msgid "Total size: %d / %d MB"
+msgstr "Жалпы көлөмү: %d / %d Мб"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Версиясы: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Көлөмү: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d Кб\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Маанилүүлүгү:"
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
-msgstr ""
+msgid "You cannot select/unselect this package"
+msgstr "Сиз бул пакетти тандап/тандабай албайсыз"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "%s жоктугунан"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "%s канаатанбагандыгынан"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "%s активдештирүү аракети"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "%s сактоо үчүн"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
+"Сиз бул пакетти тандап алалбайсыз, анткени аны орнотуу үчүн жетеринче бош "
+"боштук жок"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
-msgstr ""
+msgstr "Төмөнкү пакеттер орнотуулат"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
-msgstr ""
+msgstr "Төмөнкү пакеттер өчүрүлөт"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
-msgstr ""
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr "Бул орнотууга шарт болгон пакет, пакетти тандап алалбайсыз"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
-msgstr ""
+msgid "You cannot unselect this package. It is already installed"
+msgstr "Бул пакетти тандап алалбайсыз. Пакет алда качан орнотулган"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Бул пакетти белгилөөдөн алып салууга болбойт. Ал жаңыланышы керек"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Автоматтык түрдө тандалган пакеттерди көрсөтүү"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Орнотуу"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Тандалгандарды Жүктөө/Сактоо"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Пакеттерди тандоо жаңыланууда"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Минималдык орнотуу"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Пакеттерди башкаруу"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Сиз орнотууну каалаган пакеттерди тандаңыз"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Орнотуу"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Кеңири маалыматсыз"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Калган убакыт"
+msgid "Time remaining:"
+msgstr "Калган убакыт:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Болжолдуу убакыт"
+msgid "(estimating...)"
+msgstr "(болжолдуу убакыт..)"
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d пакет"
-msgstr[1] "%d пакет"
+msgstr[0] "%d- пакет"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Жыйынтык"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Конфигурация"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "конфигурацияланбаган"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
+"Төмөнкү орнотуу булактары табылды.\n"
+"Эгерде кээбирин аттап өтүүнү кааласаңыз, анда аларды тандабай өтүңүз."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
+"Компакт-диск мазмунун орнотуудан мурун компьютер дискине көчүрүп алуу "
+"мүмкүн.\n"
+"Андан кийин орнотуу компьютер дискинен улантылат жана пакеттер толук "
+"системанын орнотулуп бүткөндөн кийин калышат."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "CD дискти толугу менен көчүрүү"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Жаңылыштык орун алды"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Өзүңүздүн алиптакта картасын тандаңыз."
+msgid "Please choose your keyboard layout"
+msgstr "Өзүңүздүн алиптакта картасын тандаңыз"
-#: steps_interactive.pm:99
-#, fuzzy, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Мүмкүн болгон бардык өлкөлөр тизмеси"
+#: steps_interactive.pm:109
+#, c-format
+msgid "Here is the full list of available keyboards:"
+msgstr "Мүмкүн болгон бардык клавиөлкөлөр тизмеси"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Орнотуу/Жаңылоо"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Бул орнотуубу же жаңылообу?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Орнотуу"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "%s жаңылоо"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
+msgid "Encryption key for %s"
+msgstr "%s үчүн шифрлөө ачкычы"
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
+msgid "Cancel installation, reboot system"
+msgstr "Орнотууну айну, система өчүп жандыруу"
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
-msgstr "%s үчүн шифрлөө ачкычы"
+msgid "New Installation"
+msgstr "Жаңы орнотуу"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Мурунку орнотууну жаңылоо (сунуш кылынбайт)"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
-msgstr "IDE конфигурацияланууда"
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+msgid "CD/DVD"
msgstr ""
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+msgid "Configuring CD/DVD"
msgstr ""
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -977,346 +1215,341 @@ msgid ""
"done.\n"
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
+"Компакт-дискти алмаштырыңыз!\n"
+"\"%s\" атту компакт-дискти киргизиңиз, андан кийин \"Ok\" баскычын басыңыз.\n"
+"Эгерде сизде жок болсо, анда ушул компакт-дисктен орнотууну айнуу үчүн "
+"\"Айнуу\" баскычын басыңыз."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Мүмкүн болгон пакеттер изделүүдө..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
+"Системаңыз орнотууга же жаңылоого жетеринче бош боштукка ээ эмес (%d МБ > %d "
+"МБ)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
+"Жүктөө же пакеттер тандоосун сактоону тандаңыз.\n"
+"Файлдар форматы автоматтык орнотууда түзүлгөн файлдар менен окшош."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Жүктөө"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Сактоо"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Туура эмес файл"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Минималдык орнотуу"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr "Иш столун тандоо"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
+msgid "You can choose your workstation desktop profile."
+msgstr "Иштоо станцияңыздын иш столдун профилин тандап аласыз."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
-msgstr ""
+msgstr "Тандалган өлчөм бар болгон боштуктан чоң"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
-msgstr ""
+msgstr "Орнотуу тиби"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
+"Эч кандай пакеттер группасы тандалган жок.\n"
+"Минималдык орнотуу тибин тандаңыз:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "X менен"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
#, c-format
-msgid "With basic documentation (recommended!)"
+msgid "Install recommended packages"
msgstr ""
-#: steps_interactive.pm:542
+#: steps_interactive.pm:584
+#, c-format
+msgid "With basic documentation (recommended!)"
+msgstr "Башкы документация менен (сунушталат!)"
+
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
+msgstr "Чыныгы минималдуу орнотуулуш (атайын urpmi'сиз)"
+
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
msgstr ""
-#: steps_interactive.pm:596
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
-msgstr ""
+msgstr "Орнотуу даярдалууда"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
-msgstr ""
+msgstr "%s пакети орнотуулууда"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Пакеттерди кабыл алууда ката пайда болду:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Буга карабай улантайынбы?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
-msgstr ""
+msgstr "Кайталоо"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
-msgstr ""
+msgstr "Бул пакетти аттап өтүү"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
-msgstr ""
+msgstr "\"%s\" ичинен бардык пакеттерди аттап өтүү"
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "Тандалган пакеттерди сактоо"
+msgstr "Артка баруу жана орнотууга пакеттерди нандоо"
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "Пакеттерди орнотууда ката пайда болду:"
+msgstr "%s пакетти орнотууда ката чыкты."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
-msgstr ""
+msgstr "Орнотуулуштан кийинки ырастоолор"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
-msgstr ""
+msgstr "%s ичинде Update Modules топтомунун бар экендигин текшерип көрүңүз"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Жаңылоолор"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
#, c-format
msgid ""
-"You now have the opportunity to download updated packages. These packages\n"
-"have been updated after the distribution was released. They may\n"
-"contain security or bug fixes.\n"
-"\n"
-"To download these packages, you will need to have a working Internet \n"
+"To setup those media, you will need to have a working Internet \n"
"connection.\n"
"\n"
-"Do you want to install the updates?"
+"Do you want to setup the update media?"
msgstr ""
-#: steps_interactive.pm:713
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Төмөнкү пакеттер орнотуулат"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
+msgid "Retry?"
msgstr ""
-#: steps_interactive.pm:719
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Булакты кошуу ийгиликсиздиги"
+
+#: steps_interactive.pm:792
#, c-format
-msgid "Unable to contact mirror %s"
+msgid ""
+"You now have the opportunity to download updated packages. These packages\n"
+"have been updated after the distribution was released. They may\n"
+"contain security or bug fixes.\n"
+"\n"
+"To download these packages, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to install the updates?"
msgstr ""
+"Азыр жаңыланган пакеттерди жүктөө мүмкүн. Бул пакеттер дистрибутив\n"
+"чыккандан кийин жаңыланган. Алар каталар же коопсуздук\n"
+"жамактарын камтышы мүмкүн.\n"
+"\n"
+"Жаңыланган пакеттерди жүктөп алуу үчүн иштеп жаткан Интернет \n"
+"байланышы керек.\n"
+"\n"
+"Пакеттер орнотулсунбу?"
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
-msgstr ""
+msgstr "%s %s'да"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Техникалык жабдуу"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Добуш картасы"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr ""
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
-msgstr ""
+msgstr "Графикалык интерфейс"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Тармак жана Интернет"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Проксилер"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
-msgstr ""
+msgstr "ырасталды"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Коосуздук деңгээли"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Файервол"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
-msgstr ""
+msgstr "активдештирилди"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "өчүк"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
-msgstr ""
-
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr ""
+msgstr "Сиз X'ти ырастаган жоксуз.Чындап ушуну каалайсызбы?"
-#: steps_interactive.pm:1018
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Preparing initial startup program..."
msgstr ""
-#: steps_interactive.pm:1024
+#: steps_interactive.pm:1073
#, c-format
-msgid "Do you want to use aboot?"
-msgstr ""
+msgid "Be patient, this may take a while..."
+msgstr "Күтө туруңуз, бул бир нече убакытты алышы мүмкүн..."
-#: steps_interactive.pm:1027
-#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
+"Бул коопсудук деңгээлде Windows бөлүмүндө жайгашкан файларда жетүү жалгыз "
+"гана администраторга уруксат берилген."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
-msgstr ""
+msgstr "%s ичине бош флоппи дискти киргизиңиз"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
-msgstr ""
+msgstr "Авто орнотуу флоппини түзүү..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
"\n"
"Do you really want to quit now?"
msgstr ""
+"Кээбир кадамдар бүткөн жок.\n"
+"\n"
+"Сиз чындап азыр чыгууну каалайсызбы?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Конфигурациялар"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Кайра жүктөө"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr ""
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Кайталоо"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Автоматтык"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Тандалган пакеттерди сактоо"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1328,7 +1561,7 @@ msgstr "Тил тандоо"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "Локализация"
#: steps_list.pm:17
#, c-format
@@ -1356,7 +1589,7 @@ msgstr "Таш дискти аныктоо"
msgid ""
"_: Keep these entry short\n"
"Installation class"
-msgstr ""
+msgstr "Орнотуу классы"
#: steps_list.pm:23
#, c-format
@@ -1384,14 +1617,14 @@ msgstr "Бөлүмдөргө бөлүү"
msgid ""
"_: Keep these entry short\n"
"Formatting"
-msgstr ""
+msgstr "Форматоо"
#: steps_list.pm:29
#, c-format
msgid ""
"_: Keep these entry short\n"
"Choosing packages"
-msgstr ""
+msgstr "Пакеттерди тандоо"
#: steps_list.pm:31
#, c-format
@@ -1407,13 +1640,6 @@ msgid ""
"Users"
msgstr "Колдонуучулар"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Тармактар"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1456,55 +1682,24 @@ msgid ""
"Exit"
msgstr "Чыгуу"
-#~ msgid "All"
-#~ msgstr "Бардыгы"
-
-#~ msgid "TV card"
-#~ msgstr "ТВ-карта"
-
-#~ msgid "Boot"
-#~ msgstr "Жүктөө"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Аутентификация"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "%d пакет"
-#~ msgstr[1] "%d пакет"
-
-#~ msgid "%d packages"
-#~ msgstr "%d пакет"
-
-#~ msgid "Language"
-#~ msgstr "Тил тандоо"
-
-#~ msgid "License"
-#~ msgstr "Лицензия"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "Орнотуу классын тандоо"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "Болжолдуу убакыт"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "Күзгүсүнүн URL'и?"
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "Орнотуу үчүн пакеттерди тандаңыз"
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "URL ftp:// же http:// менен башталышы керек"
-#~ msgid "Users"
-#~ msgstr "Колдонуучулар"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr "Бар болгон күзгүлөр тизмесин %s веб сайтындан алынууда..."
-#~ msgid "Networking"
-#~ msgstr "Тармактар"
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
+#~ msgstr ""
+#~ "Бар болгон күзгүлөр тизмесин %s веб сайтындан алынууда ийгиликсиз "
+#~ "айяктады..."
-#~ msgid "Configure X"
-#~ msgstr "X конфигурациялоо"
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Пакеттерди алуучу күзгүнү тандаңыз"
diff --git a/perl-install/install/share/po/lo.po b/perl-install/install/share/po/lo.po
new file mode 100644
index 000000000..eecbf2229
--- /dev/null
+++ b/perl-install/install/share/po/lo.po
@@ -0,0 +1,1607 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Mageia\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Lao (http://www.transifex.com/MageiaLinux/mageia/language/"
+"lo/)\n"
+"Language: lo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr ""
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr ""
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr ""
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr ""
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr ""
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr ""
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr ""
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
+#, c-format
+msgid ""
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
+msgstr ""
+
+#: any.pm:162
+#, c-format
+msgid "Network (HTTP)"
+msgstr ""
+
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
+msgstr ""
+
+#: any.pm:164
+#, c-format
+msgid "Network (NFS)"
+msgstr ""
+
+#: any.pm:224
+#, c-format
+msgid "NFS setup"
+msgstr ""
+
+#: any.pm:225
+#, c-format
+msgid "Please enter the hostname and directory of your NFS media"
+msgstr ""
+
+#: any.pm:229
+#, c-format
+msgid "Hostname missing"
+msgstr ""
+
+#: any.pm:230
+#, c-format
+msgid "Directory must begin with \"/\""
+msgstr ""
+
+#: any.pm:234
+#, c-format
+msgid "Hostname of the NFS mount ?"
+msgstr ""
+
+#: any.pm:235
+#, c-format
+msgid "Directory"
+msgstr ""
+
+#: any.pm:265
+#, c-format
+msgid "Supplementary"
+msgstr ""
+
+#: any.pm:300
+#, c-format
+msgid ""
+"Can't find a package list file on this mirror. Make sure the location is "
+"correct."
+msgstr ""
+
+#: any.pm:325
+#, c-format
+msgid "Core Release"
+msgstr ""
+
+#: any.pm:327
+#, c-format
+msgid "Tainted Release"
+msgstr ""
+
+#: any.pm:329
+#, c-format
+msgid "Nonfree Release"
+msgstr ""
+
+#: any.pm:367
+#, c-format
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr ""
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr ""
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr ""
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:850
+#, c-format
+msgid ""
+"The following packages will be removed to allow upgrading your system: %s\n"
+"\n"
+"\n"
+"Do you really want to remove these packages?\n"
+msgstr ""
+
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr ""
+
+#: any.pm:1283
+#, c-format
+msgid "The following disk(s) were renamed:"
+msgstr ""
+
+#: any.pm:1285
+#, c-format
+msgid "%s (previously named as %s)"
+msgstr ""
+
+#: any.pm:1342
+#, c-format
+msgid "HTTP"
+msgstr ""
+
+#: any.pm:1342
+#, c-format
+msgid "FTP"
+msgstr ""
+
+#: any.pm:1342
+#, c-format
+msgid "NFS"
+msgstr ""
+
+#: any.pm:1361 steps_interactive.pm:979
+#, c-format
+msgid "Network"
+msgstr ""
+
+#: any.pm:1365
+#, c-format
+msgid "Please choose a media"
+msgstr ""
+
+#: any.pm:1381
+#, c-format
+msgid "File already exists. Overwrite it?"
+msgstr ""
+
+#: any.pm:1385
+#, c-format
+msgid "Permission denied"
+msgstr ""
+
+#: any.pm:1433
+#, c-format
+msgid "Bad NFS name"
+msgstr ""
+
+#: any.pm:1454
+#, c-format
+msgid "Bad media %s"
+msgstr ""
+
+#: any.pm:1498
+#, c-format
+msgid "Cannot make screenshots before partitioning"
+msgstr ""
+
+#: any.pm:1509
+#, c-format
+msgid "Screenshots will be available after install in %s"
+msgstr ""
+
+#: gtk.pm:134
+#, c-format
+msgid "Installation"
+msgstr ""
+
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
+#, c-format
+msgid "Configuration"
+msgstr ""
+
+#: install2.pm:220
+#, c-format
+msgid "You must also format %s"
+msgstr ""
+
+#: interactive.pm:16
+#, c-format
+msgid ""
+"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
+"You can find some information about them at: %s"
+msgstr ""
+
+#: interactive.pm:22
+#, c-format
+msgid "Bringing up the network"
+msgstr ""
+
+#: interactive.pm:27
+#, c-format
+msgid "Bringing down the network"
+msgstr ""
+
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
+
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
+
+#: media.pm:744
+#, c-format
+msgid "Copying some packages on disks for future use"
+msgstr ""
+
+#: media.pm:797
+#, c-format
+msgid "Copying in progress"
+msgstr ""
+
+#: pkgs.pm:32
+#, c-format
+msgid "must have"
+msgstr ""
+
+#: pkgs.pm:33
+#, c-format
+msgid "important"
+msgstr ""
+
+#: pkgs.pm:34
+#, c-format
+msgid "very nice"
+msgstr ""
+
+#: pkgs.pm:35
+#, c-format
+msgid "nice"
+msgstr ""
+
+#: pkgs.pm:36
+#, c-format
+msgid "maybe"
+msgstr ""
+
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr ""
+
+#: pkgs.pm:290
+#, c-format
+msgid ""
+"Some packages requested by %s cannot be installed:\n"
+"%s"
+msgstr ""
+
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "ມີຂໍ້ຜິດພາດເກີດຂຶ້ນ:"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr ""
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr ""
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:16
+#, c-format
+msgid "Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
+msgid ""
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:26
+#, c-format
+msgid "Game station"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:27
+#, c-format
+msgid "Amusement programs: arcade, boards, strategy, etc"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:30
+#, c-format
+msgid "Multimedia station"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:31
+#, c-format
+msgid "Sound and video playing/editing programs"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:36
+#, c-format
+msgid "Internet station"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:37
+#, c-format
+msgid ""
+"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
+"Web"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:42
+#, c-format
+msgid "Network Computer (client)"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:43
+#, c-format
+msgid "Clients for different protocols including ssh"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:49
+#, c-format
+msgid "Tools to ease the configuration of your computer"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:53
+#, c-format
+msgid "Console Tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:54
+#, c-format
+msgid "Editors, shells, file tools, terminals"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
+#, c-format
+msgid "Development"
+msgstr "ພັດທະນາໂປຣແກຣມ"
+
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
+#, c-format
+msgid "C and C++ development libraries, programs and include files"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
+#, c-format
+msgid "Documentation"
+msgstr "ຄູ່ມື"
+
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
+#, c-format
+msgid "Books and Howto's on Linux and Free Software"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
+#, c-format
+msgid "LSB"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
+#, c-format
+msgid "Linux Standard Base. Third party applications support"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:79
+#, c-format
+msgid "Web Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:80
+#, c-format
+msgid "Apache"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:84
+#, c-format
+msgid "Groupware"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:85
+#, c-format
+msgid "Kolab Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
+#, c-format
+msgid "Firewall/Router"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
+#, c-format
+msgid "Internet gateway"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:92
+#, c-format
+msgid "Mail/News"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:93
+#, c-format
+msgid "Postfix mail server, Inn news server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:97
+#, c-format
+msgid "Directory Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:102
+#, c-format
+msgid "FTP Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:103
+#, c-format
+msgid "ProFTPd"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:107
+#, c-format
+msgid "DNS/NIS"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:108
+#, c-format
+msgid "Domain Name and Network Information Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:112
+#, c-format
+msgid "File and Printer Sharing Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:113
+#, c-format
+msgid "NFS Server, Samba server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
+#, c-format
+msgid "Database"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:118
+#, c-format
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:123
+#, c-format
+msgid "Web/FTP"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:124
+#, c-format
+msgid "Apache, Pro-ftpd"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:128
+#, c-format
+msgid "Mail"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:129
+#, c-format
+msgid "Postfix mail server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:134
+#, c-format
+msgid "PostgreSQL or MariaDB database server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:142
+#, c-format
+msgid "Network Computer server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:143
+#, c-format
+msgid "NFS server, SMB server, Proxy server, ssh server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:150
+#, c-format
+msgid "Graphical Environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:152
+#, c-format
+msgid "Plasma Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:153
+#, c-format
+msgid ""
+"The K Desktop Environment, the basic graphical environment with a collection "
+"of accompanying tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:158
+#, c-format
+msgid "GNOME Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
+#, c-format
+msgid ""
+"A graphical environment with user-friendly set of applications and desktop "
+"tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
+#, c-format
+msgid "Other Graphical Desktops"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:218
+#, c-format
+msgid "Utilities"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
+#, c-format
+msgid "SSH Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:225
+#, c-format
+msgid "Webmin"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:226
+#, c-format
+msgid "Webmin Remote Configuration Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:230
+#, c-format
+msgid "Network Utilities/Monitoring"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:231
+#, c-format
+msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:236
+#, c-format
+msgid "Wizards to configure server"
+msgstr ""
+
+#: steps.pm:85
+#, c-format
+msgid ""
+"An error occurred, but I do not know how to handle it nicely.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: steps.pm:469
+#, c-format
+msgid ""
+"Some important packages did not get installed properly.\n"
+"Either your cdrom drive or your cdrom is defective.\n"
+"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
+"\"\n"
+msgstr ""
+
+#: steps_auto_install.pm:71 steps_stdio.pm:27
+#, c-format
+msgid "Entering step `%s'\n"
+msgstr ""
+
+#: steps_curses.pm:22
+#, c-format
+msgid "%s Installation %s"
+msgstr ""
+
+#: steps_curses.pm:32
+#, c-format
+msgid "<Tab>/<Alt-Tab> between elements"
+msgstr ""
+
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
+#, c-format
+msgid ""
+"Your system is low on resources. You may have some problem installing\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
+"press `F1' when booting on CDROM, then enter `text'."
+msgstr ""
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
+#, c-format
+msgid "Package Group Selection"
+msgstr ""
+
+#: steps_gtk.pm:354 steps_interactive.pm:626
+#, c-format
+msgid "Individual package selection"
+msgstr ""
+
+#: steps_gtk.pm:361
+#, c-format
+msgid "Unselect All"
+msgstr ""
+
+#: steps_gtk.pm:380 steps_interactive.pm:538
+#, c-format
+msgid "Total size: %d / %d MB"
+msgstr ""
+
+#: steps_gtk.pm:425
+#, c-format
+msgid "Version: "
+msgstr ""
+
+#: steps_gtk.pm:426
+#, c-format
+msgid "Size: "
+msgstr ""
+
+#: steps_gtk.pm:426
+#, c-format
+msgid "%d KB\n"
+msgstr ""
+
+#: steps_gtk.pm:427
+#, c-format
+msgid "Importance: "
+msgstr ""
+
+#: steps_gtk.pm:462
+#, c-format
+msgid "You cannot select/unselect this package"
+msgstr ""
+
+#: steps_gtk.pm:466
+#, c-format
+msgid "due to missing %s"
+msgstr ""
+
+#: steps_gtk.pm:467
+#, c-format
+msgid "due to unsatisfied %s"
+msgstr ""
+
+#: steps_gtk.pm:468
+#, c-format
+msgid "trying to promote %s"
+msgstr ""
+
+#: steps_gtk.pm:469
+#, c-format
+msgid "in order to keep %s"
+msgstr ""
+
+#: steps_gtk.pm:474
+#, c-format
+msgid ""
+"You cannot select this package as there is not enough space left to install "
+"it"
+msgstr ""
+
+#: steps_gtk.pm:477
+#, c-format
+msgid "The following packages are going to be installed"
+msgstr ""
+
+#: steps_gtk.pm:478
+#, c-format
+msgid "The following packages are going to be removed"
+msgstr ""
+
+#: steps_gtk.pm:504
+#, c-format
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr ""
+
+#: steps_gtk.pm:506
+#, c-format
+msgid "You cannot unselect this package. It is already installed"
+msgstr ""
+
+#: steps_gtk.pm:508
+#, c-format
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr ""
+
+#: steps_gtk.pm:512
+#, c-format
+msgid "Show automatically selected packages"
+msgstr ""
+
+#: steps_gtk.pm:516
+#, c-format
+msgid "Install"
+msgstr ""
+
+#: steps_gtk.pm:519
+#, c-format
+msgid "Load/Save selection"
+msgstr ""
+
+#: steps_gtk.pm:520 steps_gtk.pm:525
+#, c-format
+msgid "Updating package selection"
+msgstr ""
+
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
+#, c-format
+msgid "Minimal install"
+msgstr ""
+
+#: steps_gtk.pm:543
+#, c-format
+msgid "Software Management"
+msgstr "ຈັດການໂປແກມ"
+
+#: steps_gtk.pm:543 steps_interactive.pm:415
+#, c-format
+msgid "Choose the packages you want to install"
+msgstr ""
+
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
+#, c-format
+msgid "Installing"
+msgstr ""
+
+#: steps_gtk.pm:590
+#, c-format
+msgid "No details"
+msgstr ""
+
+#: steps_gtk.pm:610
+#, c-format
+msgid "Time remaining:"
+msgstr ""
+
+#: steps_gtk.pm:611
+#, c-format
+msgid "(estimating...)"
+msgstr ""
+
+#: steps_gtk.pm:637
+#, c-format
+msgid "%d package"
+msgid_plural "%d packages"
+msgstr[0] ""
+
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
+#, c-format
+msgid "Summary"
+msgstr ""
+
+#: steps_gtk.pm:713
+#, c-format
+msgid "Configure"
+msgstr ""
+
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
+#, c-format
+msgid "not configured"
+msgstr ""
+
+#: steps_gtk.pm:773 steps_interactive.pm:315
+#, c-format
+msgid ""
+"The following installation media have been found.\n"
+"If you want to skip some of them, you can unselect them now."
+msgstr ""
+
+#: steps_gtk.pm:789 steps_interactive.pm:321
+#, c-format
+msgid ""
+"You have the option to copy the contents of the CDs onto the hard disk drive "
+"before installation.\n"
+"It will then continue from the hard disk drive and the packages will remain "
+"available once the system is fully installed."
+msgstr ""
+
+#: steps_gtk.pm:791 steps_interactive.pm:323
+#, c-format
+msgid "Copy whole CDs"
+msgstr ""
+
+#: steps_interactive.pm:40
+#, c-format
+msgid "An error occurred"
+msgstr ""
+
+#: steps_interactive.pm:105
+#, c-format
+msgid "Please choose your keyboard layout"
+msgstr ""
+
+#: steps_interactive.pm:109
+#, c-format
+msgid "Here is the full list of available keyboards:"
+msgstr ""
+
+#: steps_interactive.pm:153
+#, c-format
+msgid "Install/Upgrade"
+msgstr ""
+
+#: steps_interactive.pm:157
+#, c-format
+msgid "Is this an install or an upgrade?"
+msgstr ""
+
+#: steps_interactive.pm:159
+#, c-format
+msgid ""
+"_: This is a noun:\n"
+"Install"
+msgstr ""
+
+#: steps_interactive.pm:161
+#, c-format
+msgid "Upgrade %s"
+msgstr ""
+
+#: steps_interactive.pm:184
+#, c-format
+msgid "Encryption key for %s"
+msgstr ""
+
+#: steps_interactive.pm:217
+#, c-format
+msgid "Cancel installation, reboot system"
+msgstr ""
+
+#: steps_interactive.pm:218
+#, c-format
+msgid "New Installation"
+msgstr ""
+
+#: steps_interactive.pm:219
+#, c-format
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
+
+#: steps_interactive.pm:223
+#, c-format
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr ""
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr ""
+
+#: steps_interactive.pm:354
+#, c-format
+msgid ""
+"Change your Cd-Rom!\n"
+"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
+"done.\n"
+"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
+msgstr ""
+
+#: steps_interactive.pm:372 steps_interactive.pm:490
+#, c-format
+msgid "Looking for available packages..."
+msgstr ""
+
+#: steps_interactive.pm:380
+#, c-format
+msgid ""
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
+msgstr ""
+
+#: steps_interactive.pm:428
+#, c-format
+msgid ""
+"Please choose load or save package selection.\n"
+"The format is the same as auto_install generated files."
+msgstr ""
+
+#: steps_interactive.pm:430
+#, c-format
+msgid "Load"
+msgstr ""
+
+#: steps_interactive.pm:430
+#, c-format
+msgid "Save"
+msgstr ""
+
+#: steps_interactive.pm:438
+#, c-format
+msgid "Bad file"
+msgstr ""
+
+#: steps_interactive.pm:455
+#, c-format
+msgid "Plasma"
+msgstr ""
+
+#: steps_interactive.pm:456
+#, c-format
+msgid "GNOME"
+msgstr ""
+
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
+
+#: steps_interactive.pm:460
+#, c-format
+msgid "You can choose your workstation desktop profile."
+msgstr ""
+
+#: steps_interactive.pm:552
+#, c-format
+msgid "Selected size is larger than available space"
+msgstr ""
+
+#: steps_interactive.pm:576
+#, c-format
+msgid "Type of install"
+msgstr ""
+
+#: steps_interactive.pm:577
+#, c-format
+msgid ""
+"You have not selected any group of packages.\n"
+"Please choose the minimal installation you want:"
+msgstr ""
+
+#: steps_interactive.pm:582
+#, c-format
+msgid "With X"
+msgstr ""
+
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
+#, c-format
+msgid "With basic documentation (recommended!)"
+msgstr ""
+
+#: steps_interactive.pm:585
+#, c-format
+msgid "Truly minimal install (especially no urpmi)"
+msgstr ""
+
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
+#, c-format
+msgid "Preparing installation"
+msgstr ""
+
+#: steps_interactive.pm:655
+#, c-format
+msgid "Installing package %s"
+msgstr ""
+
+#: steps_interactive.pm:679
+#, c-format
+msgid "There was an error ordering packages:"
+msgstr ""
+
+#: steps_interactive.pm:679
+#, c-format
+msgid "Go on anyway?"
+msgstr ""
+
+#: steps_interactive.pm:683
+#, c-format
+msgid "Retry"
+msgstr ""
+
+#: steps_interactive.pm:684
+#, c-format
+msgid "Skip this package"
+msgstr ""
+
+#: steps_interactive.pm:685
+#, c-format
+msgid "Skip all packages from medium \"%s\""
+msgstr ""
+
+#: steps_interactive.pm:686
+#, c-format
+msgid "Go back to media and packages selection"
+msgstr ""
+
+#: steps_interactive.pm:689
+#, c-format
+msgid "There was an error installing package %s."
+msgstr ""
+
+#: steps_interactive.pm:708
+#, c-format
+msgid "Post-install configuration"
+msgstr ""
+
+#: steps_interactive.pm:715
+#, c-format
+msgid "Please ensure the Update Modules media is in drive %s"
+msgstr ""
+
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
+#, c-format
+msgid "Updates"
+msgstr ""
+
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr ""
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr ""
+
+#: steps_interactive.pm:792
+#, c-format
+msgid ""
+"You now have the opportunity to download updated packages. These packages\n"
+"have been updated after the distribution was released. They may\n"
+"contain security or bug fixes.\n"
+"\n"
+"To download these packages, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to install the updates?"
+msgstr ""
+
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
+#, c-format
+msgid "%s on %s"
+msgstr ""
+
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
+#, c-format
+msgid "Hardware"
+msgstr ""
+
+#: steps_interactive.pm:958
+#, c-format
+msgid "Sound card"
+msgstr ""
+
+#: steps_interactive.pm:972
+#, c-format
+msgid "Graphical interface"
+msgstr ""
+
+#: steps_interactive.pm:978 steps_interactive.pm:990
+#, c-format
+msgid "Network & Internet"
+msgstr ""
+
+#: steps_interactive.pm:991
+#, c-format
+msgid "Proxies"
+msgstr ""
+
+#: steps_interactive.pm:992
+#, c-format
+msgid "configured"
+msgstr ""
+
+#: steps_interactive.pm:1002
+#, c-format
+msgid "Security Level"
+msgstr ""
+
+#: steps_interactive.pm:1022
+#, c-format
+msgid "Firewall"
+msgstr ""
+
+#: steps_interactive.pm:1026
+#, c-format
+msgid "activated"
+msgstr ""
+
+#: steps_interactive.pm:1026
+#, c-format
+msgid "disabled"
+msgstr ""
+
+#: steps_interactive.pm:1041
+#, c-format
+msgid "You have not configured X. Are you sure you really want this?"
+msgstr ""
+
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
+#, c-format
+msgid "Preparing initial startup program..."
+msgstr ""
+
+#: steps_interactive.pm:1073
+#, c-format
+msgid "Be patient, this may take a while..."
+msgstr ""
+
+#: steps_interactive.pm:1089
+#, c-format
+msgid ""
+"In this security level, access to the files in the Windows partition is "
+"restricted to the administrator."
+msgstr ""
+
+#: steps_interactive.pm:1121
+#, c-format
+msgid "Insert a blank floppy in drive %s"
+msgstr ""
+
+#: steps_interactive.pm:1123
+#, c-format
+msgid "Creating auto install floppy..."
+msgstr ""
+
+#: steps_interactive.pm:1134
+#, c-format
+msgid ""
+"Some steps are not completed.\n"
+"\n"
+"Do you really want to quit now?"
+msgstr ""
+
+#: steps_interactive.pm:1144
+#, c-format
+msgid "Congratulations"
+msgstr "ຂໍສະແດງຄວາມຍິນດີເດີ້"
+
+#: steps_interactive.pm:1147
+#, c-format
+msgid "Reboot"
+msgstr ""
+
+#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
+#: steps_list.pm:16
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Language"
+msgstr ""
+
+#: steps_list.pm:16 steps_list.pm:23
+#, c-format
+msgid "Localization"
+msgstr ""
+
+#: steps_list.pm:17
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"License"
+msgstr ""
+
+#: steps_list.pm:18
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Mouse"
+msgstr ""
+
+#: steps_list.pm:19 steps_list.pm:20
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Hard drive detection"
+msgstr ""
+
+#: steps_list.pm:21 steps_list.pm:22
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Installation class"
+msgstr ""
+
+#: steps_list.pm:23
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Keyboard"
+msgstr ""
+
+#: steps_list.pm:24
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Security"
+msgstr ""
+
+#: steps_list.pm:25
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Partitioning"
+msgstr ""
+
+#: steps_list.pm:27 steps_list.pm:28
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Formatting"
+msgstr ""
+
+#: steps_list.pm:29
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Choosing packages"
+msgstr ""
+
+#: steps_list.pm:31
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Installing"
+msgstr ""
+
+#: steps_list.pm:34
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Users"
+msgstr ""
+
+#: steps_list.pm:38 steps_list.pm:39
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Bootloader"
+msgstr ""
+
+#: steps_list.pm:40 steps_list.pm:41
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Configure X"
+msgstr ""
+
+#: steps_list.pm:42
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Summary"
+msgstr ""
+
+#: steps_list.pm:44 steps_list.pm:45
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Services"
+msgstr ""
+
+#: steps_list.pm:46
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Updates"
+msgstr ""
+
+#: steps_list.pm:48
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Exit"
+msgstr ""
diff --git a/perl-install/install/share/po/lt.po b/perl-install/install/share/po/lt.po
index 5c16958f8..dbdfb6e3a 100644
--- a/perl-install/install/share/po/lt.po
+++ b/perl-install/install/share/po/lt.po
@@ -1,159 +1,243 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Moo, 2015
+# Moo, 2015-2016
# Mykolas Norvai-as <Myka@centras.lt>, 2002
-#
+# Tomsonas, 2016
+# Tomsonas, 2016
msgid ""
msgstr ""
-"Project-Id-Version: DrakX VERSION\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2000-12-23 13:50+0200\n"
-"Last-Translator: Mykolas Norvai­as <Myka@centras.lt>\n"
-"Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Lithuanian (http://www.transifex.com/MageiaLinux/mageia/"
+"language/lt/)\n"
+"Language: lt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%"
-"100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < "
+"11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? "
+"1 : n % 1 != 0 ? 2: 3);\n"
-#: any.pm:155
-#, fuzzy, c-format
-msgid "Do you have further supplementary media?"
-msgstr "Ar turi dar vieną?"
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Prisijunk!"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: ../../advertising/02_IM_mageia.pl:1
#, c-format
-msgid ""
-"The following media have been found and will be used during install: %s.\n"
-"\n"
-"\n"
-"Do you have a supplementary installation medium to configure?"
+msgid "Make it yours!"
msgstr ""
-#: any.pm:166
+#: ../../advertising/03_IM_mageia.pl:1
#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
+msgid "Your choice!"
+msgstr ""
-#: any.pm:167
-#, fuzzy, c-format
-msgid "Network (HTTP)"
-msgstr "Tinklo interfeisas"
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Biuro įrankiai"
-#: any.pm:168
-#, fuzzy, c-format
-msgid "Network (FTP)"
-msgstr "Tinklo interfeisas"
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
-#: any.pm:169
+#: ../../advertising/06_IM_mageia.pl:1
#, c-format
-msgid "Network (NFS)"
+msgid "For kids"
+msgstr "Vaikams"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
msgstr ""
-#: any.pm:211
+#: ../../advertising/08_IM_mageia.pl:1
#, c-format
-msgid "URL of the mirror?"
+msgid "For developers!"
msgstr ""
-#: any.pm:217
+#: ../../advertising/09_IM_mageia.pl:1
#, c-format
-msgid "URL must start with ftp:// or http://"
+msgid "Thank you!"
msgstr ""
-#: any.pm:228
-#, fuzzy, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
msgstr ""
-"Jungiamasi prie atvaizdžio (mirror), kad gautume prieinamų paketų sąrašą"
-#: any.pm:233
-#, fuzzy, c-format
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr ""
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
+#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
msgstr ""
-"Jungiamasi prie atvaizdžio (mirror), kad gautume prieinamų paketų sąrašą"
+"Šios laikmenos buvo rastos ir bus naudojamos įdiegimo metu: %s.\n"
+"\n"
+"\n"
+"Ar turite papildomą įdiegimo laikmeną, kurią norite konfigūruoti?"
-#: any.pm:243
+#: any.pm:162
#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Pasirink atvaizdį (mirror), iš kurio imti paketus"
+msgid "Network (HTTP)"
+msgstr "Tinklas (HTTP)"
-#: any.pm:273
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
+msgstr "Tinklas (FTP)"
+
+#: any.pm:164
+#, c-format
+msgid "Network (NFS)"
+msgstr "Tinklas (NFS)"
+
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr ""
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr ""
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr ""
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr ""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr ""
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
-msgstr "Aplankas"
+msgstr "Katalogas"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr ""
-#: any.pm:341
-#, fuzzy, c-format
+#: any.pm:300
+#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
-msgstr "Adapteris %s: %s"
+msgstr ""
-#: any.pm:375
-#, fuzzy, c-format
-msgid "Looking at packages already installed..."
-msgstr "Tu negali atžymėti šio paketo. Jis jau yra įdiegtas"
+#: any.pm:325
+#, c-format
+msgid "Core Release"
+msgstr "Pagrindinė laida"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
+msgid "Tainted Release"
msgstr ""
-#: any.pm:424
+#: any.pm:329
+#, c-format
+msgid "Nonfree Release"
+msgstr "Nelaisvoji laida"
+
+#: any.pm:367
+#, c-format
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+"Tam kad veiktų laisvosios programinės įrangos tvarkyklės, kai kuri, jūsų "
+"kompiuteryje esanti, aparatinė įranga, reikalauja nelaisvosios programinės "
+"aparatinės įrangos."
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "Jūs turėtumėte įjungti \"%s\""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "Čia, jeigu norite, galite įjungti daugiau laikmenų."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Apžvelgiami jau įdiegti paketai..."
+
+#: any.pm:593
#, c-format
msgid "Finding packages to upgrade..."
msgstr "Ieškoma atnaujintinų paketų"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:612
#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+msgid "Removing packages prior to upgrade..."
msgstr ""
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -162,82 +246,87 @@ msgid ""
"Do you really want to remove these packages?\n"
msgstr ""
-#: any.pm:1055
-#, fuzzy, c-format
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Klaida, skaitant failą %s"
+
+#: any.pm:1283
+#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "Ruošiamasi įdiegti šiuos paketus"
+msgstr ""
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr ""
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
-msgstr ""
+msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Tinklas"
-#: any.pm:1137
-#, fuzzy, c-format
+#: any.pm:1365
+#, c-format
msgid "Please choose a media"
-msgstr "Pasirinkite kitą vardą."
+msgstr ""
-#: any.pm:1153
-#, fuzzy, c-format
+#: any.pm:1381
+#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "Jau yra tokia byla. Užrašyti ant jos?"
+msgstr "Failas jau yra. Perrašyti jį?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Priėjimas draudžiamas"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr ""
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr ""
-#: any.pm:1269
-#, fuzzy, c-format
-msgid "Can not make screenshots before partitioning"
-msgstr "Aš daugiau negaliu pridėti nė vieno skirsnio"
+#: any.pm:1498
+#, c-format
+msgid "Cannot make screenshots before partitioning"
+msgstr ""
-#: any.pm:1277
-#, fuzzy, c-format
+#: any.pm:1509
+#, c-format
msgid "Screenshots will be available after install in %s"
-msgstr "Tu gali pasirinkti kitas kalbas, kurios bus prieinamos po įdiegimo"
+msgstr ""
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
-msgstr "Įdiegiama"
+msgstr "Įdiegimas"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Nustatymai"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr ""
@@ -263,303 +352,337 @@ msgstr "Paleidžiamas tinklas"
msgid "Bringing down the network"
msgstr "Išjungiamas tinklas"
-#: media.pm:703 media.pm:714
-#, fuzzy, c-format
-msgid "Downloading file %s..."
-msgstr "Išsaugoti į bylą"
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr "Prašome palaukti, gaunamas failas"
+
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr ""
-#: media.pm:861
-#, fuzzy, c-format
+#: media.pm:797
+#, c-format
msgid "Copying in progress"
-msgstr "aptiktas prievade %s"
+msgstr "Kopijavimas eigoje"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "turi turėti"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "svarbus"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "labai gerai"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "nuostabu"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "galbūt"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Nėra aprašymo"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-#: share/meta-task/compssUsers.pl:11
-#, fuzzy, c-format
-msgid "Workstation"
-msgstr "KDE darbo stotis"
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "Įvyko klaida:"
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Biuro darbo stotis"
+msgid "A fatal error occurred: %s."
+msgstr "Įvyko lemtinga klaida: %s."
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "Do not ask again"
+msgstr "Kitą kartą nebeklausti"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d įdiegimo operacijos nepavyko"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
msgstr ""
-"Biuro programos: tekstų redaktoriai (OpenOffice.org Writer, Kword), "
-"skaičiuoklės (OpenOffice.org Calc, Kspread), pdf peržiūros programos ir pan."
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Biuro darbo stotis"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Biuro programos: tekstų redaktoriai (kword, abiword), skaičiuoklės (kspread, "
-"gnumeric), pdf peržiūros programos ir pan."
+"Biuro programos: tekstų redaktoriai (LibreOffice Writer, Kword), "
+"skaičiuoklės (LibreOffice Calc, Kspread), pdf peržiūros programos ir pan."
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Žaidimų stotis"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr ""
"Programos pasilinksminimui: lentos, strateginiai, kortų žaidimai ir pan."
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Multimedija stotis"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Garso ir vaizdo grojimo/redagavimo programos"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Interneto stotis"
-#: share/meta-task/compssUsers.pl:32
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:37
+#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-"Rinkinys įrankių skaityti ir siųsti paštą bei naujienas (pine, mutt, tin) ir "
-"naršyti žiniatinklį (WWW)"
-#: share/meta-task/compssUsers.pl:37
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:42
+#, c-format
msgid "Network Computer (client)"
-msgstr "Tinklo Kompiuteris, X klientas"
+msgstr "Tinklo kompiuteris (klientas)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
-msgstr ""
+msgstr "Įvairių protokolų klientai, įskaitant ssh"
-#: share/meta-task/compssUsers.pl:43
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:49
+#, c-format
msgid "Tools to ease the configuration of your computer"
-msgstr "Ar tu nori išbandyti nustatymus?"
+msgstr ""
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Konsolės įrankiai"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
-msgstr "Redaktoriai, shell'ai, bylų įrankiai, terminalai"
+msgstr "Redaktoriai, apvalkalai (shells), failų įrankiai, terminalai"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Programavimas"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
-msgstr "C bei C++ kūrimo bibliotekos, programos ir include bylos"
+msgstr "C bei C++ kūrimo bibliotekos, programos ir include failai"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Dokumentacija"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Knygos ir HOWTO apie Linux ir Free Software"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr ""
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr ""
-#: share/meta-task/compssUsers.pl:71
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:79
+#, c-format
msgid "Web Server"
-msgstr "serveris"
+msgstr ""
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Grupinis darbas"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Kolab serveris"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Serveris, Firewall/Routeris"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
+#, c-format
msgid "Internet gateway"
-msgstr "Priėjimas prie Interneto"
+msgstr ""
-#: share/meta-task/compssUsers.pl:83
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:92
+#, c-format
msgid "Mail/News"
-msgstr "/Byla/_Nauja"
+msgstr ""
-#: share/meta-task/compssUsers.pl:84
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:93
+#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Serveris, Duomenų bazių"
+msgstr ""
-#: share/meta-task/compssUsers.pl:87
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:97
+#, c-format
msgid "Directory Server"
-msgstr "Atstatyti iš diskelio"
+msgstr ""
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP serveris"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr ""
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:108
+#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "Domeno vardas"
+msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:99
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:112
+#, c-format
msgid "File and Printer Sharing Server"
-msgstr "Spausdinimo serveris"
+msgstr ""
-#: share/meta-task/compssUsers.pl:100
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:113
+#, c-format
msgid "NFS Server, Samba server"
-msgstr "NIS serveris"
+msgstr ""
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Serveris, Duomenų bazių"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
+msgid "PostgreSQL and MariaDB Database Server"
msgstr ""
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Serveris, Tinklapių/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr ""
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Paštas"
-#: share/meta-task/compssUsers.pl:113
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:129
+#, c-format
msgid "Postfix mail server"
-msgstr "Serveris, Duomenų bazių"
+msgstr ""
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
+msgid "PostgreSQL or MariaDB database server"
msgstr ""
-#: share/meta-task/compssUsers.pl:124
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:142
+#, c-format
msgid "Network Computer server"
-msgstr "Serveris, Tinklo Kompiuterio serveris"
+msgstr ""
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr ""
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
-msgstr ""
+msgstr "Grafinė aplinka"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE darbo stotis"
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -568,12 +691,12 @@ msgstr ""
"The K Desktop Environment, pagrindinė grafinė aplinka su dideliu rinkiniu "
"pritaikytų programų"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "Gnome darbo stotis"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -582,60 +705,112 @@ msgstr ""
"Grafinė aplinka su vartotojui draugiškų programų ir darbalaukio įrankių "
"rinkiniu"
-#: share/meta-task/compssUsers.pl:142
-#, fuzzy, c-format
-msgid "IceWm Desktop"
-msgstr "Darbastalis"
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Kiti grafiniai darbalaukiai"
-#: share/meta-task/compssUsers.pl:147
-#, fuzzy, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "IceWM, Window Maker, Enlightenment, Fvwm ir pan."
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Naudės"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
+#, c-format
msgid "SSH Server"
-msgstr "NIS serveris"
+msgstr ""
-#: share/meta-task/compssUsers.pl:177
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:225
+#, c-format
msgid "Webmin"
-msgstr "įrenginys"
+msgstr ""
-#: share/meta-task/compssUsers.pl:178
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:226
+#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Interneto konfigūravimas"
+msgstr ""
-#: share/meta-task/compssUsers.pl:182
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:230
+#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Tinklo konfigūravimas"
+msgstr ""
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr ""
-#: share/meta-task/compssUsers.pl:187
-#, fuzzy, c-format
-msgid "Mandriva Wizards"
-msgstr "Prisijungti prie interneto"
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr ""
-#: share/meta-task/compssUsers.pl:188
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:236
+#, c-format
msgid "Wizards to configure server"
-msgstr "Nustatyti spausdintuvą"
+msgstr ""
#: steps.pm:85
#, c-format
@@ -646,7 +821,7 @@ msgstr ""
"Įvyko klaida, bet aš nežinau, kaip su ja gražiai susitvarkyti.\n"
"Tęsk darbą savo paties rizika."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -666,302 +841,358 @@ msgstr "Įeinama į žingsnį „%s“\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux įdiegimas %s"
+msgid "%s Installation %s"
+msgstr "%s įdiegimas %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> tarp elementų"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
"Tavo sistemoje mažai resursų. Tu gali susidurti su bėdomis, įdiegdamas\n"
-"Mandriva Linux. Jei taip atsitiktų, gali pabandyti tekstinį diegimo būdą:\n"
+"%s. Jei taip atsitiktų, gali pabandyti tekstinį diegimo būdą:\n"
"Kai užsikrauna iš CDROM'o, paspausk `F1', o tada įvesk \"text\"."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Laikmenos pasirinkimas"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "GNOME darbalaukis"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Štai \"%s\" darbalaukio peržiūra."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Spustelėkite ant paveikslų, kad pamatytumėte didesnę peržiūrą"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Paketų grupių pasirinkimas"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Atskirų paketų pasirinkimas"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Bendras dydis: %d / %d MB"
+msgid "Unselect All"
+msgstr ""
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Blogas paketas"
+msgid "Total size: %d / %d MB"
+msgstr "Bendras dydis: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Versija: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Dydis: "
-#: steps_gtk.pm:347
-#, fuzzy, c-format
+#: steps_gtk.pm:426
+#, c-format
msgid "%d KB\n"
-msgstr "Dydis: %d KB\n"
+msgstr ""
-#: steps_gtk.pm:348
-#, fuzzy, c-format
+#: steps_gtk.pm:427
+#, c-format
msgid "Importance: "
-msgstr "Svarba: %s\n"
+msgstr ""
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Tu negali pažymėti/atžymėti šio paketo"
-#: steps_gtk.pm:386
-#, fuzzy, c-format
+#: steps_gtk.pm:466
+#, c-format
msgid "due to missing %s"
-msgstr "nieko"
+msgstr "dėl trūkstamo %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "dėl nepatenkinto %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "bandau paaukštinti %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "%s išlaikymui"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"Tu negali pasirinkti šio paketo, kadangi nebėra pakankamai vietos jam įdiegti"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Ruošiamasi įdiegti šiuos paketus"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Ruošiamasi pašalinti šiuos paketus"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Tai yra privalomas paketas, jis negali būti atžymėtas"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Tu negali atžymėti šio paketo. Jis jau yra įdiegtas"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Tu negali atžymėti šio paketo. Jis privalo būti atnaujintas"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr ""
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Įdiegti"
-#: steps_gtk.pm:436
-#, fuzzy, c-format
+#: steps_gtk.pm:519
+#, c-format
msgid "Load/Save selection"
-msgstr "Išsaugoti pažymėjimą"
+msgstr ""
-#: steps_gtk.pm:437
-#, fuzzy, c-format
+#: steps_gtk.pm:520 steps_gtk.pm:525
+#, c-format
msgid "Updating package selection"
-msgstr "Išsaugoti paketų pasirinkimą"
+msgstr ""
-#: steps_gtk.pm:442
-#, fuzzy, c-format
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
+#, c-format
msgid "Minimal install"
-msgstr "Išmesti"
+msgstr ""
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Programinės įrangos tvarkyklė"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Pasirink paketus, kuriuos tu nori įdiegti"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Įdiegiama"
-#: steps_gtk.pm:499
-#, fuzzy, c-format
+#: steps_gtk.pm:590
+#, c-format
msgid "No details"
-msgstr "Detalės"
+msgstr ""
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Liko laiko "
+msgid "Time remaining:"
+msgstr "Liko laiko:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Skaičiuojama"
+msgid "(estimating...)"
+msgstr "(apskaičiuojama...)"
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d paketų"
-msgstr[1] "%d paketų"
-msgstr[2] "%d paketų"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Apibendrinimas"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Nustatyti"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
-#, fuzzy, c-format
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
+#, c-format
msgid "not configured"
-msgstr "iš naujo nustatyti"
+msgstr ""
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr ""
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Įvyko klaida"
-#: steps_interactive.pm:97
-#, fuzzy, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Prašom pasirinkti klaviatūros išdėstymą."
+#: steps_interactive.pm:105
+#, c-format
+msgid "Please choose your keyboard layout"
+msgstr "Prašome pasirinkti savo klaviatūros išdėstymą"
-#: steps_interactive.pm:99
-#, fuzzy, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Čia yra galimų klaviatūrų sąrašas"
+#: steps_interactive.pm:109
+#, c-format
+msgid "Here is the full list of available keyboards:"
+msgstr ""
-#: steps_interactive.pm:129
-#, fuzzy, c-format
+#: steps_interactive.pm:153
+#, c-format
msgid "Install/Upgrade"
-msgstr "Įdiegti/Atnaujinti"
+msgstr ""
-#: steps_interactive.pm:130
-#, fuzzy, c-format
+#: steps_interactive.pm:157
+#, c-format
msgid "Is this an install or an upgrade?"
-msgstr "Ar tai įdiegimas, ar atnaujinimas?"
+msgstr ""
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Įdiegti"
-#: steps_interactive.pm:136
-#, fuzzy, c-format
+#: steps_interactive.pm:161
+#, c-format
msgid "Upgrade %s"
-msgstr "Atnaujinimas"
+msgstr ""
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
+msgid "Encryption key for %s"
msgstr ""
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
+msgid "Cancel installation, reboot system"
msgstr ""
-#: steps_interactive.pm:158
-#, fuzzy, c-format
-msgid "Encryption key for %s"
-msgstr "Slaptažodžiai nesutampa"
-
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "New Installation"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "Configuring IDE"
-msgstr "Nustatome IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+msgid "CD/DVD"
+msgstr ""
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
msgstr ""
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -969,158 +1200,206 @@ msgid ""
"done.\n"
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
-"Pakeisk CD!\n"
+"Pakeiskite CD!\n"
"\n"
-"Prašom įkišti CD su užrašu „%s“ į kaupiklį, tada paspausk Gerai.\n"
-"Jei tu jo neturi, spausk Nutraukti, kad išvengtum įdiegimo iš šio CD."
+"Prašome įkišti CD su užrašu „%s“ į kaupiklį, tada paspausti Gerai.\n"
+"Jei jūs jo neturite, spauskite Nutraukti, kad išvengtumėte įdiegimo iš šio "
+"CD."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Ieškomi galimi paketai"
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Įkelti"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Išsaugoti"
-#: steps_interactive.pm:415
-#, fuzzy, c-format
+#: steps_interactive.pm:438
+#, c-format
msgid "Bad file"
-msgstr "Įkelti bylą"
+msgstr ""
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Išmesti"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr "Darbalaukio pasirinkimas"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
+msgid "You can choose your workstation desktop profile."
+msgstr "Galite pasirinkti savo kompiuterio darbalaukio profilį."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr ""
-#: steps_interactive.pm:536
-#, fuzzy, c-format
+#: steps_interactive.pm:576
+#, c-format
msgid "Type of install"
-msgstr "Pasirink paketą įdiegimui"
+msgstr ""
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
-#: steps_interactive.pm:540
-#, fuzzy, c-format
+#: steps_interactive.pm:582
+#, c-format
msgid "With X"
-msgstr "Palauk"
+msgstr ""
+
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
-#: steps_interactive.pm:541
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr ""
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr ""
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Ruošiamas įdiegimas"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Įdiegiamas paketas %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Įvyko klaida, bandant sutvarkyti paketus:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Vis tiek tęsti?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr ""
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr ""
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr ""
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "Išsaugoti paketų pasirinkimą"
+msgstr ""
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "Įvyko klaida, įdiegiant paketus:"
+msgstr ""
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Konfigūracija po įdiegimo"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Atnaujinimai"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Dabar jūs turite galimybę nusistatyti internetinę laikmeną."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Tai leidžia įdiegti saugumo atnaujinimus."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"Kad nusistatytumėte laikmenas, jums reikės veikiančio interneto ryšio\n"
+"\n"
+"Ar norite nustatyti atnaujinimų laikmeną?"
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Ruošiamasi įdiegti šiuos paketus"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Bandyti dar kartą?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Klaida, pridedant laikmeną"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1133,142 +1412,97 @@ msgid ""
"Do you want to install the updates?"
msgstr ""
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr ""
-"Jungiamasi prie atvaizdžio (mirror), kad gautume prieinamų paketų sąrašą"
-
-#: steps_interactive.pm:719
-#, fuzzy, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Uždrausti tinklą"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s iš %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
-msgstr "Geležis"
-
-#: steps_interactive.pm:881 steps_interactive.pm:899
-#, fuzzy, c-format
-msgid "Sound card"
-msgstr "Standartinė"
-
-#: steps_interactive.pm:902
-#, fuzzy, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Ar turi dar vieną?"
+msgstr "Aparatinė įranga"
-#: steps_interactive.pm:904
+#: steps_interactive.pm:958
#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
+msgid "Sound card"
msgstr ""
-#: steps_interactive.pm:906
+#: steps_interactive.pm:972
#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-
-#: steps_interactive.pm:914
-#, fuzzy, c-format
msgid "Graphical interface"
-msgstr "X paleidžiant"
+msgstr ""
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Tinklas & Internetas"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Tarpinės stotys (proxies)"
-#: steps_interactive.pm:934
-#, fuzzy, c-format
+#: steps_interactive.pm:992
+#, c-format
msgid "configured"
-msgstr "iš naujo nustatyti"
+msgstr ""
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Saugumo lygis"
-#: steps_interactive.pm:963
-#, fuzzy, c-format
+#: steps_interactive.pm:1022
+#, c-format
msgid "Firewall"
-msgstr "Serveris, Firewall/Routeris"
+msgstr "Užkarda"
-#: steps_interactive.pm:967
-#, fuzzy, c-format
+#: steps_interactive.pm:1026
+#, c-format
msgid "activated"
-msgstr "Aktyvus"
+msgstr ""
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "uždraustas"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr ""
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "Ruošiama įkrovos tvarkyklė"
-
-#: steps_interactive.pm:1018
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
+msgid "Preparing initial startup program..."
+msgstr "Ruošiama pradinės paleisties programa..."
-#: steps_interactive.pm:1024
+#: steps_interactive.pm:1073
#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Ar nori naudoti aboot?"
+msgid "Be patient, this may take a while..."
+msgstr "Būkite kantrūs, tai gali šiek tiek užtrukti..."
-#: steps_interactive.pm:1027
-#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Klaida įdiegiant aboot,\n"
-"bandyti įdiegti priverstinai, net jei tai sunaikintų pirmąjį skirsnį?"
-
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Įdėk tuščią diskelį į kaupiklį %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Kuriamas automatinio įdiegimo diskelis"
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1279,50 +1513,15 @@ msgstr ""
"\n"
"Ar tu nori išeiti dabar?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Sveikinimai"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
-msgstr "Perkrauti"
-
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Sukurti automatinio įdiegimo diskelį"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Automatinis įdiegimas reikalui esant gali būti pilnai\n"
-"automatizuotas. Tokiu atveju jis užims visą diską!!\n"
-"(turint omenyje įdiegimą į kitą dėžę).\n"
-"\n"
-"Jūs galbūt norėsite pakartoti įdiegimą.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Parodyti vėl"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automatinis"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Išsaugoti paketų pasirinkimą"
+msgstr "Paleisti iš naujo"
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
@@ -1335,7 +1534,7 @@ msgstr "Pasirink savo kalbą"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "Localizacija"
#: steps_list.pm:17
#, c-format
@@ -1414,13 +1613,6 @@ msgid ""
"Users"
msgstr "Vartotojai"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Tinklai"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1463,53 +1655,10 @@ msgid ""
"Exit"
msgstr "Išeiti"
-#~ msgid "All"
-#~ msgstr "Visos"
-
-#~ msgid "TV card"
-#~ msgstr "TV plokštė"
-
-#~ msgid "Boot"
-#~ msgstr "Įkelties nustatymai"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Autentikacija"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "%d paketų"
-#~ msgstr[1] "%d paketų"
-#~ msgstr[2] "%d paketų"
-
-#~ msgid "%d packages"
-#~ msgstr "%d paketų"
-
-#~ msgid "Language"
-#~ msgstr "Pasirink savo kalbą"
-
-#~ msgid "License"
-#~ msgstr "Licencija"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "Parink įdiegimo klasę"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "Skaičiuojama"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "Pasirinkti paketus"
-
-#~ msgid "Users"
-#~ msgstr "Vartotojai"
-
-#~ msgid "Networking"
-#~ msgstr "Tinklai"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "Tinklavietės URL?"
-#~ msgid "Configure X"
-#~ msgstr "Nustatyti X"
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Pasirinkite tinklavietę, iš kurios gauti paketus"
diff --git a/perl-install/install/share/po/ltg.po b/perl-install/install/share/po/ltg.po
index 066add0fb..57b6878fc 100644
--- a/perl-install/install/share/po/ltg.po
+++ b/perl-install/install/share/po/ltg.po
@@ -1,26 +1,81 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2000 Free Software Foundation, Inc.
-# Copyright (c) 2000 Mandriva.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
msgid ""
msgstr ""
-"Project-Id-Version: DrakX\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2006-09-24 17:51+0200\n"
-"Last-Translator: Māris Laureckis <marlau@inbox.lv>\n"
-"Language-Team: Latgalian <linux@latgola.lv>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Latgalian (http://www.transifex.com/MageiaLinux/mageia/"
+"language/ltg/)\n"
+"Language: ltg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : "
+"2);\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr ""
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr ""
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr ""
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr ""
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr ""
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr ""
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
msgstr "Voi jiusim ir papyldus datu nesiejs?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -28,100 +83,63 @@ msgid ""
"\n"
"Do you have a supplementary installation medium to configure?"
msgstr ""
-"Tyka atrosts sekojūšs datu nesiejs, kurs tiks lītuots instalacejis laikā: %"
-"s.\n"
+"Tyka atrosts sekojūšs datu nesiejs, kurs tiks lītuots instalacejis laikā: "
+"%s.\n"
"\n"
"\n"
"Voi jiusim ir papyldus datu nesieji deļ uzstuodeišonys?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Teiklys (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Teiklys (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Teiklys (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "Voi spūguļservera URL?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "URL juosasuoc ar ftp:// voi http://"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Pīsaslādzu Mandriva Linux teimekļam, lai sajimtu pīejamū spūguļserveru "
-"sarokstu..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Dasasliegšona Mandriva Linux teimekļam cīta naveiksmi, lai sajimtu pīejamū "
-"spūguļserveru sarokstu"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Izavielejit spūguļserveri, nu kura jimt pakūtnis"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "NFS uzstuodeišona"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr "Lyudzu, īvodit hosta vuordu i jiusu NFS datu nesieja katalogu"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr ""
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr ""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "Kaids ir NFS monteišonys hosta vuords?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Katalogs"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr ""
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
@@ -130,49 +148,90 @@ msgstr ""
"Iz ituo spūguļservera navar atrast pakūtņu saroksta failu. Puorbaudit, voi "
"atsarūn pareizā vītā."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Mekleju jau īprīkš uzinstaleituos pakūtnis..."
+msgid "Core Release"
+msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Teik nūdzāstys pakūtnis pyrms atjaunynuošonys..."
+msgid "Tainted Release"
+msgstr ""
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Mekleju uzlobuojamuos pakūtnis"
+msgid "Nonfree Release"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"Jius izavielēt sekojūšu(s) serveri(us): %s\n"
-"\n"
-"\n"
-"Itī serveri teik aktivizāti piec nūklusiejuma. Tim nav nikaidu zinomu "
-"drūšeibys\n"
-"tryukumu, bet jauni var tikt atrosti. Taidā gadīnī jiusim nūteikti tī "
-"juoatjaunynoj\n"
-"piec īspiejis uotruok.\n"
-"\n"
-"\n"
-"Voi tīšom gribit instalēt šūs serverus?\n"
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Mekleju jau īprīkš uzinstaleituos pakūtnis..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Mekleju uzlobuojamuos pakūtnis"
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Teik nūdzāstys pakūtnis pyrms atjaunynuošonys..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -185,82 +244,87 @@ msgstr ""
"\n"
"Voi teišom gribit nūjimt ituos pakūtnis?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Kliuda, nūlosūt failu %s"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "Sekojūši diski tika puorsaukti:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (īprīkš tika saukta kai %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Teiklys"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "Lyudzu, izavielejit datu nesieju"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Fails jau eksistej. Voi puorrakstēt pa viersu?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Pīeja līgta"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "Naveiksmeigs NFS vuords"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "Napareizs datu nesiejs %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Navar izveiduot ekrana attālus pyrms sadaļu izveidis"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Ekrana attāli byus pīejami piec instaleišonys %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Instalaceja"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Konfiguraceja"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Jiusim ir juoformatej ari %s"
@@ -284,107 +348,143 @@ msgstr "Īdorbynoju teiklu"
msgid "Bringing down the network"
msgstr "Atslādzu teiklu"
-#: media.pm:703 media.pm:714
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
+
+#: media.pm:704
#, c-format
-msgid "Downloading file %s..."
-msgstr "Teik šursyuteiti fail %s..."
+msgid "unable to add medium"
+msgstr ""
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr "Teik kopātys dažys pakūtnis lītuošonai nuokūtnē"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Nūteik kopeišona"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "napīcīšoms"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "svareigs"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "ļūti vālams"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "vālams"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "varbyut"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Nav aproksta"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "Dorba staceja"
+msgid "An error occurred:"
+msgstr ""
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Biroja dators"
+msgid "A fatal error occurred: %s."
+msgstr "Nūtikuse fatala kliuda: %s."
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d instalacejis transakcejis naizadeve"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
msgstr ""
-"Biroja programmys: teksta procesori (OpenOffice.org Writer, Kword), "
-"izkluojlopys (OpenOffice.org Calc, Kspread), PDF skateituoji, u.c."
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "Dorba staceja"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Biroja dators"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Biroja programmys: teksta procesori (kword, abiword), izkluojlopys (kspread, "
-"gnumeric), pdf skateituoji, u.c."
+"Biroja programmys: teksta procesori (LibreOffice Writer, Kword), "
+"izkluojlopys (LibreOffice Calc, Kspread), PDF skateituoji, u.c."
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Spēļu dators"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Izklaidis programmys: arkade, goldaspēlis, strategeja u.c."
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Multimedeju dators"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Skanis i video atskaņuošonys/redigeišonys programmys"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Interneta dators"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
@@ -393,193 +493,193 @@ msgstr ""
"Reiku komplekts, lai laseitu i syuteitu postu voi jaunumus (mutt, tin..), i "
"puorlyukuotu Puorstaipteiklu"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Teikla dators (klients)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Klienti dažaidim protokolim, īskaitūt ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Reiki datora konfigureišonys atvīgluošonai"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Konsolis reiki"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Redaktori, čaulys, failu reiki, terminali"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Izstruode"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "C i C++ izstruodis bibliotekys, programmys i īkļautī faili"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Dokumentaceja"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Gruomotys i vaicuojumu par Linux i Breivū programmaturu"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Linuks Standarta Bāze. Trešū izstruoduoju aplikaceju atbolsts"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Puorstaipteikla (Web) servers"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Groupware"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Kolab servers"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Gunsmyurs/Maršrutizators"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Interneta vuorteja"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "Posts/Jauns"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Postfix posta servers, Inn ziņu servers"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Katalogu Servers"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP servers"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "DNS i NIS servers"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "Failu un Printeru Kūplītuošonys servers"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "NFS servers, Samba servers"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Datubāzis"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL i MySQL datubāžu servers"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "PostgreSQL i MariaDB datubāžu servers"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Teimeklis/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Posts"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Postfix posta servers"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL voi MySQL datubāžu servers"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL voi MariaDB datubāžu servers"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Teikla datoru servers"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "NFS servers, SMB servers, storpnīkservers (Proxy), ssh servers"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Grafiskuo vide"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE dorba staceja"
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -588,12 +688,12 @@ msgstr ""
"K Desktop Environment, golvonuo grafiskuo vide kūpā ar papyldus reiku "
"kolekceju"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "Gnome dorba staceja"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -602,57 +702,109 @@ msgstr ""
"Grafiskuo vide ar lītuotuojam draudzeigu programmu komplektu i dorba "
"viersmys reikim"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
#, c-format
-msgid "IceWm Desktop"
-msgstr "IceWm Dorba viersma"
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Cytys grafiskuos dorba viersmys"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm u.c."
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Utilitys"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH servers"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Webmin attuolynuotuos konfiguracejis servers "
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "Teikla utilitys/puorraudzeiba"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "Puorraudzeibys reiki, procesu uzskaite, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Mandriva paleigi"
+msgid "Mageia Wizards"
+msgstr "Mageia paleigi"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Servera konfiguracejis paleigi"
@@ -666,7 +818,7 @@ msgstr ""
"Nūtyka klaida, bet es nazynu, kai tū korekti apstruoduot.\n"
"Turpynuot iz jiusu poša riska."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -686,205 +838,259 @@ msgstr "Teik uzsuokts sūļs `%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux instaleišona %s"
+msgid "%s Installation %s"
+msgstr "%s instaleišona %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> puorīt"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"Jiusu sistemai tryukst resursu. Mandriva Linux instaleišonys laikā var\n"
+"Jiusu sistemai tryukst resursu. %s instaleišonys laikā var\n"
"rastīs problemys. Ja tai nūteik, varit pamieginuot teksta režima "
"instaleišonu. Lai tū izdareitu,\n"
"nūspīdit`F1', kod nūteik īluode nu CDROM, tod īvodit `text'."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Pakūtņu grupu izviele"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Atsevišku pakūtņu izviele"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Kūpejais izmārs: %d / %d MB"
+msgid "Unselect All"
+msgstr ""
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Slykta pakūtne"
+msgid "Total size: %d / %d MB"
+msgstr "Kūpejais izmārs: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Verseja: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Izmārs: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Svareigums: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Jius varit izavielēt/atsateikt nu ituos pakūtnis"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "tryukuma dieļ %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "deļ naapmīrynuojuma %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "teik mieginuots aktivizēt %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "lai saglobuot %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"Jius navarit izavielēt itū pakūtni, par tū ka napīteik vītys tuos "
"instaleišonai"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Tiks instaleitys sekojūšys pakūtnis"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Tiks nūjimtys sekojūšys pakūtnis"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Itei ir obligata pakūtne, nu tuos navar atsateikt"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Jius navarit atsateikt nu ituos pakūtnis. Tei jau ir instaleita"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Jius navarit atsateikt nu ituos pakūtnis. Tū ir napīcīšoms uzlobuot"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Paruodeit automatiski izvālātuos pakūtnis"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Instalēt"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Īluodēt/Saglobuot izviele"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Teik atjaunynuota pakūtņu izviele"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Minimala instaleišona"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Programmaturys puorvaļdeišona"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Izavielejit pakūtnis, kū gribit instalēt"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Teik instaleits"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Nav detaļu"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Atlykušais laiks"
+msgid "Time remaining:"
+msgstr ""
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Aptuvenais nūviertiejums"
+msgid "(estimating...)"
+msgstr ""
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d pakūtnis"
-msgstr[1] "%d pakūtnis"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Kūpsavylkums"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Konfigurēt"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "nav konfigurāts"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
@@ -893,12 +1099,12 @@ msgstr ""
"Atrosti sekojūši instalacejis datu nesieji.\n"
"Ja jius gribit izlaist dažus nu tim, jius tagad varit nūjimt atzeimi nu tim."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
"Jiusim ir opceja, pyrms instalacejis nūkopēt kompaktdiska saturu uz cītu "
@@ -906,95 +1112,91 @@ msgstr ""
"Taidā veidā turpynuosīs nu cītuo diska un pakūtnis byus pīejamys cikom "
"sistema tiks piļneibā uzinstaleita."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "Kopēt vysu kompaktdisku"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Atkluota kliuda"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Lyudzu izavielejit jiusu klaviaturys izkuortuojumu."
+msgid "Please choose your keyboard layout"
+msgstr "Lyudzu izavielejit jiusu klaviaturys izkuortuojumu"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Ite ir pylns pīejamū klaviaturu saroksts"
+msgid "Here is the full list of available keyboards:"
+msgstr ""
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Instalēt/Atjaunynuot"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Itei ir instaleišona voi atjaunynuošona?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
-msgstr "Instalēt"
+msgstr ""
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Atjaunynuot %s"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
+msgid "Encryption key for %s"
+msgstr "Šifreišonys atslāga deļ %s"
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
+msgid "Cancel installation, reboot system"
msgstr ""
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
-msgstr "Šifreišonys atslāga deļ %s"
+msgid "New Installation"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
-msgstr "Teik konfigurāts IDE"
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+msgid "CD/DVD"
msgstr ""
-"Nav 1MB breivys vītys suokneišonys programmai! Instaleišona turpynuosīs, bet "
-"lai īluodātu sistemu, jiusim vajadzēs izveiduot suokneišonys programmys "
-"diska sadali programmā DiskDrake"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+msgid "Configuring CD/DVD"
msgstr ""
-"Jiusim vajadzēs izveiduot PPC PReP Boot suokneišonys programmu! Instaleišona "
-"turpynuosīs, bet lai īluodātu sistemu, jiusim vajadzēs izveiduot "
-"suokneišonys programmys diska sadali programmā DiskDrake"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1008,19 +1210,19 @@ msgstr ""
"Ja jiusim nav ituo diska, nūspīdit Atceļt, lai nainstaleitu nu ituo "
"kompaktdiska."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Mekleju pīejamuos pakūtnis"
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
@@ -1029,52 +1231,52 @@ msgstr ""
"Lyudzu izavielejit īluodēt voi saglobuot pakūtņu izvieli.\n"
"Formats ir taids pats, kai ar auto_install generātom failim."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Īluodēt"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Saglobuot"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Napareizs fails"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Minimala instaleišona"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Izvālātais apjūms ir leluoks nakai pīejamuo vīta"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Instalacejis tips"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1083,82 +1285,126 @@ msgstr ""
"Jius naizavielēt nivīnu pakūtņu grupu.\n"
"Lyudzu, izavielejit minimalū instalaceju, kaidu jius gribit:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Ar X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Ar pamatdokumentaceju (īteicams!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Patīši minimala instalaceja (īpaši bez urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Sagataveju instaleišonu"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Instaleju pakūtni %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Pakūtņu kuortuošonys laikā atkluota kliuda:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Tūmār turpynuot?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr ""
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr ""
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr ""
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "Saglobuot pakūtņu izvieli"
+msgstr ""
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "Pakūtņu instaleišonys laikā atkluota kliuda:"
+msgstr ""
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Piecinstaleišonys konfigureišona"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr "Lyudzu, puorsalīcynojit ka Update Modules atsarū īkuortā %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Atjaunynuojumi"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Tiks instaleitys sekojūšys pakūtnis"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr ""
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1180,132 +1426,82 @@ msgstr ""
"\n"
"Voi jius gribit instalēt atjaunynuojumus?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Pīsaslādzu spūguļserveram, lai sajimtu pīejamū pakūtņu sarokstu"
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Navar dasavīnuot pi spūguļservera %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s iz %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Aparatura"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Skanis karte"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Vai jiusim ir ISA skanis karte?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Piec instaleišonys palaidit \"alsaconf\" voi \"sndconfig\", lai konfigurātu "
-"jiusu skanis karti"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "Nav atrosta skanis karte. Piec instaleišonys izmieginit \"harddrake\""
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Grafiskuo saskarne"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Teiklys & Internets"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Storpnīkserveri"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "konfigurāts"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Drūšeibys leimiņs"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Guņsmyurs"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "aktivizāts"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "atslāgts"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr ""
"Jiusim nav nūkonfigurāts X servers. Voi jius asot puorlīcynuoti, ka jius tū "
"gribit?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "Sagataveju suokneituoju"
-
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Preparing initial startup program..."
msgstr ""
-"Izaver, ka jiusim ir vaca voi nazynomys izceļsmis dators, yaboot "
-"suokneituojs nastruoduos. Instaleišona turpynuosīs, bet jiusim byus "
-"juoizmontoj BootX voi kas cyts, lai īluodātu datoru. Kūdula arguments deļ "
-"root fs ir: root=%s"
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Voi gribit izmontuot aboot?"
-
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
+msgid "Be patient, this may take a while..."
msgstr ""
-"Kliuda, instalejūt aboot, \n"
-"voi instalēt pīspīdu kuortā pat tod, ja tiks iznycynuota pyrmuo sadaļa?"
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
@@ -1314,17 +1510,17 @@ msgstr ""
"Šymā drūšeibys leiminī, pīeeja Windows sadalis failim ir tikai "
"administratoram."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Īlicit tukšu disketi īkuortā %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Sagataveju auto instaleišonys disketi"
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1335,51 +1531,16 @@ msgstr ""
"\n"
"Voi tīšom gribit izīt tagad?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Apsveicam"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Puorsuoknēt"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Sagatavēt auto instaleišonys disketi"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Ja gribit, automatiskuo instalaceja var byut piļneigi\n"
-"automatizāta, taidā gadīnī tei nūkopēs vysu cītū disku!!\n"
-"(tys ir dūmuots uzstuodēt uz cyta datora).\n"
-"\n"
-"Jius varbyut gribēsit atkuortuot instalaceju.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Atkuortuot"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automatisks"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Saglobuot pakūtņu izvieli"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1391,7 +1552,7 @@ msgstr "Volūdys izviele"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "Lokaliziešona"
#: steps_list.pm:17
#, c-format
@@ -1470,13 +1631,6 @@ msgid ""
"Users"
msgstr "Lītuotuoji"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Teikluošona"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1519,115 +1673,25 @@ msgid ""
"Exit"
msgstr "Izīt"
-#~ msgid "All"
-#~ msgstr "Vyss"
-
-#~ msgid "TV card"
-#~ msgstr "TV karte"
-
-#~ msgid "Boot"
-#~ msgstr "Suoknēt"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Autentifikaceja"
-
-#~ msgid "Arkeia"
-#~ msgstr "Arkeia"
-
-#~ msgid "Flatout"
-#~ msgstr "Flatout"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "3D"
-#~ msgstr "3D"
-
-#~ msgid "CMS"
-#~ msgstr "CMS"
-
-#~ msgid "CRM"
-#~ msgstr "CRM"
-
-#~ msgid "2007 product line"
-#~ msgstr "2007 produktu lineja"
-
-#~ msgid "Invictus Firewall"
-#~ msgstr "Invictus guņsmyurs"
-
-#~ msgid "Discovery Live Mode"
-#~ msgstr "Discovery Dzeivaja reižimā"
-
-#~ msgid "How to register"
-#~ msgstr "Kai pīsaregistrēt"
-
-#~ msgid "Rpmdrake 2"
-#~ msgstr "Rpmdrake 2"
-
-#~ msgid "Mandriva Online Services"
-#~ msgstr "Mandriva Tīšsaistis pakolpuojumi"
-
-#~ msgid "New Theme"
-#~ msgstr "Jauna tema"
-
-#~ msgid "Web 2.0"
-#~ msgstr "Web 2.0"
-
-#~ msgid "Kaspersky"
-#~ msgstr "Kaspersky"
-
-#~ msgid "LinDVD"
-#~ msgstr "LinDVD"
-
-#~ msgid "Skype"
-#~ msgstr "Skype"
-
-#~ msgid "Transgaming/Cedega"
-#~ msgstr "Transgaming/Cedega"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "%d pakūtnis"
-#~ msgstr[1] "%d pakūtnis"
-
-#~ msgid "%d packages"
-#~ msgstr "%d pakūtnis"
-
-#~ msgid "Language"
-#~ msgstr "Volūdys izviele"
-
-#~ msgid "License"
-#~ msgstr "License"
-
-#~ msgid "Installation class"
-#~ msgstr "Instaleišonys klase"
-
-#~ msgid "Formatting"
-#~ msgstr "Formateišona"
-
-#~ msgid "Choosing packages"
-#~ msgstr "Pakūtņu izviele"
-
-#~ msgid "Users"
-#~ msgstr "Lītuotuoji"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "Voi spūguļservera URL?"
-#~ msgid "Networking"
-#~ msgstr "Teikluošona"
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "URL juosasuoc ar ftp:// voi http://"
-#~ msgid "Configure X"
-#~ msgstr "X konfigureišona"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr ""
+#~ "Pīsaslādzu %s teimekļam, lai sajimtu pīejamū spūguļserveru sarokstu..."
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
#~ msgstr ""
-#~ "Navar pīkliut kūdula moduļam, atbylstūšim jiusu kūdulam (fails %s nav "
-#~ "atrūnams), parosti tys nūzeimej, ka īluodis diskete nav sinhronizeita ar "
-#~ "instalacejis datu nesieju (lyudzu izveidojit jaunuoku īluodis disketi)"
+#~ "Dasasliegšona %s teimekļam cīta naveiksmi, lai sajimtu pīejamū "
+#~ "spūguļserveru sarokstu"
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Izavielejit spūguļserveri, nu kura jimt pakūtnis"
diff --git a/perl-install/install/share/po/lv.po b/perl-install/install/share/po/lv.po
index 1529806b8..729eb2ee6 100644
--- a/perl-install/install/share/po/lv.po
+++ b/perl-install/install/share/po/lv.po
@@ -1,173 +1,230 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2000 Free Software Foundation, Inc.
-# Copyright (c) 2000 Mandriva.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
msgid ""
msgstr ""
-"Project-Id-Version: DrakX\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2002-09-27 17:45+0200\n"
-"Last-Translator: Raivo Saars <spaiks@inbox.lv>\n"
-"Language-Team: Latvian <ll10nt@listes.murds.lv>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Latvian (http://www.transifex.com/MageiaLinux/mageia/language/"
+"lv/)\n"
+"Language: lv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : "
"2);\n"
-#: any.pm:155
-#, fuzzy, c-format
-msgid "Do you have further supplementary media?"
-msgstr "Vai ir vēl kāds?"
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: ../../advertising/02_IM_mageia.pl:1
#, c-format
-msgid ""
-"The following media have been found and will be used during install: %s.\n"
-"\n"
-"\n"
-"Do you have a supplementary installation medium to configure?"
+msgid "Make it yours!"
msgstr ""
-#: any.pm:166
+#: ../../advertising/03_IM_mageia.pl:1
#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
+msgid "Your choice!"
+msgstr ""
-#: any.pm:167
-#, fuzzy, c-format
-msgid "Network (HTTP)"
-msgstr "Tīkls"
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
-#: any.pm:168
-#, fuzzy, c-format
-msgid "Network (FTP)"
-msgstr "Tīkls"
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
-#: any.pm:169
+#: ../../advertising/06_IM_mageia.pl:1
#, c-format
-msgid "Network (NFS)"
+msgid "For kids"
msgstr ""
-#: any.pm:211
+#: ../../advertising/07_IM_mageia.pl:1
#, c-format
-msgid "URL of the mirror?"
+msgid "For family!"
msgstr ""
-#: any.pm:217
+#: ../../advertising/08_IM_mageia.pl:1
#, c-format
-msgid "URL must start with ftp:// or http://"
+msgid "For developers!"
msgstr ""
-#: any.pm:228
+#: ../../advertising/09_IM_mageia.pl:1
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
+msgid "Thank you!"
msgstr ""
-"Pieslēdzos Mandriva Linux tīmeklim, lai saņemtu pieejamo spoguļserveru "
-"sarakstu sarakstu..."
-#: any.pm:233
-#, fuzzy, c-format
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr ""
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
+#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
+msgstr ""
+
+#: any.pm:162
+#, c-format
+msgid "Network (HTTP)"
+msgstr ""
+
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
msgstr ""
-"Pieslēdzos Mandriva Linux tīmeklim, lai saņemtu pieejamo spoguļserveru "
-"sarakstu sarakstu..."
-#: any.pm:243
+#: any.pm:164
#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Izvēlieties spoguļserveri, no kura ņemt pakotnes"
+msgid "Network (NFS)"
+msgstr ""
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr ""
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr ""
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr ""
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr ""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr ""
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Katalogs"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr ""
-#: any.pm:341
-#, fuzzy, c-format
+#: any.pm:300
+#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
-msgstr "Nevar atrast %s uz %s"
+msgstr ""
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Meklēju jau iepriekš uzinstalētās pakotnes..."
+msgid "Core Release"
+msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
+msgid "Tainted Release"
+msgstr ""
+
+#: any.pm:329
+#, c-format
+msgid "Nonfree Release"
msgstr ""
-#: any.pm:424
+#: any.pm:367
+#, c-format
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Meklēju jau iepriekš uzinstalētās pakotnes..."
+
+#: any.pm:593
#, c-format
msgid "Finding packages to upgrade..."
msgstr "Meklēju uzlabojamās pakotnes"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
-#, fuzzy, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
msgstr ""
-"Jūs izvēlējāties sekojošu(s) serveri(us): %s\n"
-"\n"
-"\n"
-"Šie serveri tiek aktivizēti pēc noklusēšanas. Tiem nav nekādu zināmu "
-"drošības\n"
-"trūkumu, bet var tikt atrasti kādi jauni. Tādā gadījumā Jums noteikti tie "
-"jāuzlabo\n"
-"pēc iespējas ātrāk.\n"
-"\n"
-"\n"
-"Vai tiešām vēlaties instalēt šos serverus?\n"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -180,82 +237,87 @@ msgstr ""
"\n"
"Vai tiešām vēlaties noņemt šīs pakotnes?\n"
-#: any.pm:1055
-#, fuzzy, c-format
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Kļūda, nolasot failu %s"
+
+#: any.pm:1283
+#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "Tiks instalētas sekojošas pakotnes"
+msgstr ""
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr ""
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr ""
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Tīkls"
-#: any.pm:1137
-#, fuzzy, c-format
+#: any.pm:1365
+#, c-format
msgid "Please choose a media"
-msgstr "Lūdzu izvēlieties"
+msgstr ""
-#: any.pm:1153
-#, fuzzy, c-format
+#: any.pm:1381
+#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "Fails jau eksistē. Pārrakstīt?"
+msgstr ""
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Pieeja liegta"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr ""
-#: any.pm:1226
-#, fuzzy, c-format
+#: any.pm:1454
+#, c-format
msgid "Bad media %s"
-msgstr "pievienoju datu nesēju %s."
+msgstr ""
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Nevar izveidot ekrāna attēlus pirms sadaļu izveides"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Ekrāna attēli būs pieejami pēc instalēšanas %s."
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
-msgstr "Instalēju"
+msgstr ""
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Konfigurācija"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Jums ir jāformatē arī %s"
@@ -279,302 +341,336 @@ msgstr "Iedarbinu tīklu"
msgid "Bringing down the network"
msgstr "Atslēdzu tīklu"
-#: media.pm:703 media.pm:714
-#, fuzzy, c-format
-msgid "Downloading file %s..."
-msgstr "Nosūtu failus..."
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr ""
-#: media.pm:861
-#, fuzzy, c-format
+#: media.pm:797
+#, c-format
msgid "Copying in progress"
-msgstr "Notiek noteikšana"
+msgstr ""
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "nepieciešama"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "svarīga"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "ļoti derīga"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "derīga"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "varbūt"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr ""
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "Darbastacija"
+msgid "An error occurred:"
+msgstr ""
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Biroja dators"
+msgid "A fatal error occurred: %s."
+msgstr ""
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr ""
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
msgstr ""
-"Biroja programmas: teksta procesori (OpenOffice.org Writer, Kword), "
-"izklājlapas (OpenOffice.org Calc, Kspread), pdf skatītāji, u.c."
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "Darbastacija"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Biroja dators"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Biroja programmas: teksta procesori (kword, abiword), izklājlapas (kspread, "
-"gnumeric), pdf skatītāji, u.c."
+"Biroja programmas: teksta procesori (LibreOffice Writer, Kword), izklājlapas "
+"(LibreOffice Calc, Kspread), pdf skatītāji, u.c."
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Spēļu dators"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Izklaides programmas: arkāde, galdiņspēles, stratēģija u.c."
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Multimēdiju dators"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Skaņas un video atskaņošanas/rediģēšanas programmas"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Interneta dators"
-#: share/meta-task/compssUsers.pl:32
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:37
+#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-"Rīku komplekts, lai lasītu un sūtītu pastu vai jaunumus (pine, mutt, tin..) "
-"un pārlūkotu Tīmekli"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Tīkla dators (klients)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Klienti dažādiem protokoliem, ieskaitot ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Rīki datora konfigurēšanas atvieglošanai"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Konsoles rīki"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Redaktori, čaulas, failu rīki, termināļi"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Izstrāde"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "C un C++ izstrādes bibliotēkas, programmas un include faili"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Dokumentācija"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Grāmatas un Howto faili par Linux un Brīvo programmatūru"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr ""
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Web serveris"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:84
+#, c-format
msgid "Groupware"
-msgstr "grupa"
+msgstr ""
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Kolab serveris"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Ugunsmūris/Maršrutizators"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Interneta vārteja"
-#: share/meta-task/compssUsers.pl:83
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:92
+#, c-format
msgid "Mail/News"
-msgstr "/Fails/_Jauns"
+msgstr ""
-#: share/meta-task/compssUsers.pl:84
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:93
+#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Postfix pasta serveris"
+msgstr ""
-#: share/meta-task/compssUsers.pl:87
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:97
+#, c-format
msgid "Directory Server"
-msgstr "Atjanot no CD"
+msgstr ""
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP serveris"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr ""
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:108
+#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "Domēna nosaukumu serveris"
+msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:99
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:112
+#, c-format
msgid "File and Printer Sharing Server"
-msgstr "Printera serveris"
+msgstr ""
-#: share/meta-task/compssUsers.pl:100
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:113
+#, c-format
msgid "NFS Server, Samba server"
-msgstr "Samba serveris"
+msgstr ""
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Datubāzes"
-#: share/meta-task/compssUsers.pl:104
-#, fuzzy, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL vai MySQL datubāzu serveris"
+#: share/meta-task/compssUsers.pl:118
+#, c-format
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr ""
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Tīmeklis/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Pasts"
-#: share/meta-task/compssUsers.pl:113
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:129
+#, c-format
msgid "Postfix mail server"
-msgstr "Postfix pasta serveris"
+msgstr ""
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL vai MySQL datubāzu serveris"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL vai MariaDB datubāzu serveris"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Tīkla datoru serveris"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "NFS serveris, SMB serveris, Proxy serveris, ssh serveris"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Grafiskā vide"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE darbastacija"
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -582,12 +678,12 @@ msgid ""
msgstr ""
"K Desktop Environment, galvenā grafiskā vide kopā ar papildus rīku kolekciju"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "Gnome darbastacija"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -596,60 +692,112 @@ msgstr ""
"Grafiskā vide ar lietotājiem draudzīgu programmu komplektu un darbavirsmas "
"rīkiem"
-#: share/meta-task/compssUsers.pl:142
-#, fuzzy, c-format
-msgid "IceWm Desktop"
-msgstr "Darbavirsma"
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Citas grafiskās darbavirsmas"
-#: share/meta-task/compssUsers.pl:147
-#, fuzzy, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm u.c."
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Utilites"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH serveris"
-#: share/meta-task/compssUsers.pl:177
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:225
+#, c-format
msgid "Webmin"
-msgstr "Webmin serviss"
+msgstr ""
-#: share/meta-task/compssUsers.pl:178
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:226
+#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Mandriva termināļu servera konfigurācija"
+msgstr ""
-#: share/meta-task/compssUsers.pl:182
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:230
+#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Tīkla konfigurācija"
+msgstr ""
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr ""
-#: share/meta-task/compssUsers.pl:187
-#, fuzzy, c-format
-msgid "Mandriva Wizards"
-msgstr "Mandriva Linux kontroles centrs"
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr ""
-#: share/meta-task/compssUsers.pl:188
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:236
+#, c-format
msgid "Wizards to configure server"
-msgstr "Konfigurēju printeri \"%s\"..."
+msgstr ""
#: steps.pm:85
#, c-format
@@ -660,7 +808,7 @@ msgstr ""
"Atklāta kļūda, bet es nezinu, kā ar to pareizi apieties.\n"
"Turpiniet, ja vēlaties riskēt."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -680,309 +828,358 @@ msgstr "Uzsāku soli `%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux instalēšana %s"
+msgid "%s Installation %s"
+msgstr "%s instalēšana %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> pāriet"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"Jūsu sistēmai trūkst resursu. Mandriva Linux instalēšanas laikā var\n"
+"Jūsu sistēmai trūkst resursu. %s instalēšanas laikā var\n"
"rasties problēmas. Ja tā notiek, varat pamēģināt teksta instalēšanu.\n"
"Lai to izdarītu, nospiediet`F1', ka notiek ielāde no CDROM, tad ievadiet\n"
"`text'."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Pakotņu grupu izvēle"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Atsevišķu pakotņu izvēle"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Kopējais izmērs: %d / %d MB"
+msgid "Unselect All"
+msgstr ""
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Slikta pakotne"
+msgid "Total size: %d / %d MB"
+msgstr "Kopējais izmērs: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Versija: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Apjoms: "
-#: steps_gtk.pm:347
-#, fuzzy, c-format
+#: steps_gtk.pm:426
+#, c-format
msgid "%d KB\n"
-msgstr "Apjoms: %d KB\n"
+msgstr ""
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Svarīgums: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Jūs varat izvēlēties/atteikties no šīs pakotnes"
-#: steps_gtk.pm:386
-#, fuzzy, c-format
+#: steps_gtk.pm:466
+#, c-format
msgid "due to missing %s"
-msgstr "trūkstošs kdesu"
+msgstr ""
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr ""
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr ""
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr ""
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"Jūs nevarat izvēlēties šo pakotni, jo nepietiek vietas tās instalēšanai"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Tiks instalētas sekojošas pakotnes"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Tiks noņemtas sekojošas pakotnes"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Šī ir obligāta pakotne, no tās nevar atteikties"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Jūs nevarat atteikties no šīs pakotnes. Tā jau ir instalēta"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Jūs nevarat atteikties no šīs pakotnes. To ir nepieciešams uzlabot"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Parādīt automātiski izvēlētās pakotnes"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Instalēt"
-#: steps_gtk.pm:436
-#, fuzzy, c-format
+#: steps_gtk.pm:519
+#, c-format
msgid "Load/Save selection"
-msgstr "Saglabāt iezīmēto"
+msgstr ""
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Atjaunoju pakotņu izvēli"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Minimāla instalēšana"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Software Management"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Izvēlieties pakotnes, ko vēlaties instalēt"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Instalēju"
-#: steps_gtk.pm:499
-#, fuzzy, c-format
+#: steps_gtk.pm:590
+#, c-format
msgid "No details"
-msgstr "Detaļas"
+msgstr ""
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Atlikušais laiks"
+msgid "Time remaining:"
+msgstr ""
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Aprēķinu"
+msgid "(estimating...)"
+msgstr ""
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d pakotnes"
-msgstr[1] "%d pakotnes"
-msgstr[2] "%d pakotnes"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Kopsavilkums"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Konfigurēt"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
-#, fuzzy, c-format
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
+#, c-format
msgid "not configured"
-msgstr "pārkonfigurēt"
+msgstr ""
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr ""
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Atklāta kļūda"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Lūdzu izvēlieties jūsu tastatūras izkārtojumu."
+msgid "Please choose your keyboard layout"
+msgstr "Lūdzu izvēlieties jūsu tastatūras izkārtojumu"
-#: steps_interactive.pm:99
-#, fuzzy, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Šeit ir pilns pieejamo tastatūru saraksts"
+#: steps_interactive.pm:109
+#, c-format
+msgid "Here is the full list of available keyboards:"
+msgstr ""
-#: steps_interactive.pm:129
-#, fuzzy, c-format
+#: steps_interactive.pm:153
+#, c-format
msgid "Install/Upgrade"
-msgstr "Instalēt/Atjaunināt"
+msgstr ""
-#: steps_interactive.pm:130
-#, fuzzy, c-format
+#: steps_interactive.pm:157
+#, c-format
msgid "Is this an install or an upgrade?"
-msgstr "Šī ir instalēšana vai atjaunināšana?"
+msgstr ""
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Instalēt"
-#: steps_interactive.pm:136
-#, fuzzy, c-format
+#: steps_interactive.pm:161
+#, c-format
msgid "Upgrade %s"
-msgstr "Atjaunināt"
+msgstr ""
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
+msgid "Encryption key for %s"
msgstr ""
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
+msgid "Cancel installation, reboot system"
msgstr ""
-#: steps_interactive.pm:158
-#, fuzzy, c-format
-msgid "Encryption key for %s"
-msgstr "Šifrēšanas atslēga"
-
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "New Installation"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "Configuring IDE"
-msgstr "Konfigurēju IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
-#: steps_interactive.pm:231
-#, fuzzy, c-format
+#: steps_interactive.pm:223
+#, c-format
msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"Nav 1MB brīvas vietas sāknēšanas programmai! Instalēšana turpināsies, bet "
-"lai ielādētu sistēmu, Jums būs nepieciešams izveidot sāknēšanas programmas "
-"disaka sadaļu programmā DiskDrake"
-#: steps_interactive.pm:236
-#, fuzzy, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
msgstr ""
-"Nav 1MB brīvas vietas sāknēšanas programmai! Instalēšana turpināsies, bet "
-"lai ielādētu sistēmu, Jums būs nepieciešams izveidot sāknēšanas programmas "
-"disaka sadaļu programmā DiskDrake"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr ""
+
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -995,73 +1192,71 @@ msgstr ""
"Lūdzu ielieciet iekārtā Cd-Rom \"%s\", kad tas ir izdarīts, nospiediet Labi\n"
"Ja jums nav šī diska, nospiediet Atcelt, lai neinstalētu no šī Cd-Rom."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Meklēju pieejamās pakotnes"
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-#: steps_interactive.pm:405
-#, fuzzy, c-format
+#: steps_interactive.pm:428
+#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-"Lūdzu izvēlieties ielādēt vai saglabāt pakotnes no/uz disketes.\n"
-"Formāts ir tāds pats, kā ar auto_install ģenerētām disketēm."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Ielādēt"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Saglabāt"
-#: steps_interactive.pm:415
-#, fuzzy, c-format
+#: steps_interactive.pm:438
+#, c-format
msgid "Bad file"
-msgstr "Ielādēt failu"
+msgstr ""
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Minimāla instalēšana"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Izvēlētais apjoms ir lielāks nekā pieejamā vieta"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Instalācijas tips"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1070,83 +1265,127 @@ msgstr ""
"Jūs neizvēlējāties nevienu pakotņu grupu.\n"
"Lūdzu, izvēlieties minimālo instalāciju, kādu vēlaties:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Ar X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Ar pamatdokumentāciju (ieteicams!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Patiesi minimāla instalācija (īpaši bez urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Sagatavoju instalēšanu"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Instalēju pakotni %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Pakotņu kārtošanas laikā atklāta kļūda:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Tomēr turpināt?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr ""
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr ""
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr ""
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "Saglabāt pakotņu izvēli"
+msgstr ""
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "Pakotņu instalēšanas laikā atklāta kļūda:"
+msgstr ""
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Pēcinstalēšanas konfigurēšana"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
+msgstr "Atjaunināt"
+
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
msgstr ""
-#: steps_interactive.pm:692
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Tiks instalētas sekojošas pakotnes"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr ""
+
+#: steps_interactive.pm:792
+#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
"have been updated after the distribution was released. They may\n"
@@ -1157,154 +1396,98 @@ msgid ""
"\n"
"Do you want to install the updates?"
msgstr ""
-"Jums ir iespēja lejuplādēt atjauninātas pakotnes. Šīs pakotnes tika "
-"izlaistas\n"
-"pēc distribūcijas izlaišanas. Tās var saturēt drošības vai kļūdu labojumus.\n"
-"\n"
-"Lai lejuplādētu šīs pakotnes, Jums jabūt darbojošamies Interneta "
-"savienojumam.\n"
-"\n"
-"Vai Jūs vēlaties instalēt jauninājumus?"
-
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Pieslēdzos spoguļserverim, lai saņemtu pieejamo pakotņu sarakstu"
-
-#: steps_interactive.pm:719
-#, fuzzy, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Nevar atdalīt: %s"
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s uz %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Dzelži"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Skaņas karte"
-#: steps_interactive.pm:902
+#: steps_interactive.pm:972
#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Vai Jums ir ISA skaņas karte?"
-
-#: steps_interactive.pm:904
-#, fuzzy, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr "Pēc instalēšanas palaidiet \"sndconfig\", lai konfigurētu skaņu karti"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "Nav atrasta skaņu karte. Pēc instalēšanas izmēģiniet \"harddrake\""
-
-#: steps_interactive.pm:914
-#, fuzzy, c-format
msgid "Graphical interface"
-msgstr "X pēc startēšanas"
+msgstr ""
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Tīkls & Internets"
-#: steps_interactive.pm:933
-#, fuzzy, c-format
+#: steps_interactive.pm:991
+#, c-format
msgid "Proxies"
-msgstr "Profils: "
+msgstr ""
-#: steps_interactive.pm:934
-#, fuzzy, c-format
+#: steps_interactive.pm:992
+#, c-format
msgid "configured"
-msgstr "pārkonfigurēt"
+msgstr ""
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Drošības Līmenis"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Ugunssiena"
-#: steps_interactive.pm:967
-#, fuzzy, c-format
+#: steps_interactive.pm:1026
+#, c-format
msgid "activated"
-msgstr "aktivizēt"
+msgstr ""
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "aizliegts"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr ""
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "Sagatavoju sāknētāju"
-
-#: steps_interactive.pm:1018
-#, fuzzy, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Preparing initial startup program..."
msgstr ""
-"Izskatās, ka Jums ir nezināmas izcelsmes dators,\n"
-"yaboot ielādētājs nedarbosies.\n"
-"Instalēšana turpināsies, bet Jums būs jāizmanto\n"
-"BootX, lai ielādētu datoru"
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Vai vēlaties izmantot aboot?"
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
+msgid "Be patient, this may take a while..."
msgstr ""
-"Kļūda, instalējot aboot, \n"
-"vai instalēt piespiedu kārtā pat tad, ja tiks iznīcināta pirmā sadaļa?"
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Ielieciet tukšu disketi iekārtā %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Sagatavoju auto instalēšanas disketi"
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1315,46 +1498,16 @@ msgstr ""
"\n"
"Vai tiešām vēlaties iziet tūlīt?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Apsveicam"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Pārstartēt"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Sagatavot auto instalēšanas disketi"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Atkārtot"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automātisks"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Saglabāt pakotņu izvēli"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1445,13 +1598,6 @@ msgid ""
"Users"
msgstr "Lietotāji"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Tīkli"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1494,62 +1640,12 @@ msgid ""
"Exit"
msgstr "Iziet"
-#~ msgid "All"
-#~ msgstr "Viss"
-
-#~ msgid "TV card"
-#~ msgstr "TV karte"
-
-#~ msgid "Boot"
-#~ msgstr "Sāknēt"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Autentifikācija"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "%d pakotnes"
-#~ msgstr[1] "%d pakotnes"
-#~ msgstr[2] "%d pakotnes"
-
-#~ msgid "%d packages"
-#~ msgstr "%d pakotnes"
-
-#~ msgid "Language"
-#~ msgstr "Valodas izvēle"
-
-#~ msgid "License"
-#~ msgstr "Licence"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "Instalēšanas klases izvēle"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "Aprēķinu"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "Instalējamo pakotņu izvēle"
-
-#~ msgid "Users"
-#~ msgstr "Lietotāji"
-
-#~ msgid "Networking"
-#~ msgstr "Tīkli"
-
-#~ msgid "Configure X"
-#~ msgstr "X konfigurēšana"
-
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
#~ msgstr ""
-#~ "Nevar piekļūt kodola moduļiem, atbilstošiem Jūsu kodolam (fails %s nav "
-#~ "atrodams), parasti tas nozīmē, ka ielādes diskete nav sinhronizēta ar "
-#~ "instalācijas datu nesēju (lūdzu izveidojiet jaunāku ielādes disketi)"
+#~ "Pieslēdzos %s tīmeklim, lai saņemtu pieejamo spoguļserveru sarakstu "
+#~ "sarakstu..."
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Izvēlieties spoguļserveri, no kura ņemt pakotnes"
diff --git a/perl-install/install/share/po/mk.po b/perl-install/install/share/po/mk.po
index 0d70d7126..1de56a093 100644
--- a/perl-install/install/share/po/mk.po
+++ b/perl-install/install/share/po/mk.po
@@ -1,33 +1,86 @@
-# translation of DrakX-mk.po to Macedonian
-# Copyright (C) 2002,2003, 2004, 2006 Free Software Foundation, Inc.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
-# Danko Ilik <danko@mindless.com>, 2002,2003.
-# Vladimir Stefanov <vladoboss@mt.net.mk>, 2003.
-# Зоран Димовски <zoki@email.com>, 2003.
-# Danko Ilik <danko@on.net.mk>, 2003.
-# Зоран Димовски <decata@mt.net.mk>, 2004.
-# Zoran Dimovski <zoki.dimovski@gmail.com>, 2006.
+# Translators:
+# Danko Ilik <danko@mindless.com>, 2002-2003
+# Danko Ilik <danko@on.net.mk>, 2003
+# Vladimir Stefanov <vladoboss@mt.net.mk>, 2003
+# misterioz <zoki.dimovski@gmail.com>, 2006
+# Зоран Димовски <decata@mt.net.mk>, 2004
+# Зоран Димовски <zoki@email.com>, 2003
msgid ""
msgstr ""
-"Project-Id-Version: DrakX-mk\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2006-09-24 20:39-0700\n"
-"Last-Translator: Zoran Dimovski <zoki.dimovski@gmail.com>\n"
-"Language-Team: Macedonian <mkde-l10n@lists.sourceforge.net>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Macedonian (http://www.transifex.com/MageiaLinux/mageia/"
+"language/mk/)\n"
+"Language: mk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=2; plural= n==1 || n%10==1 ? 0 : 1\n"
+"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr ""
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr ""
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr ""
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr ""
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr ""
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr ""
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
msgstr "Дали имате уште додатни медиуми?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -35,148 +88,155 @@ msgid ""
"\n"
"Do you have a supplementary installation medium to configure?"
msgstr ""
-"Пронајдени се следниве медиуми и ќе се користат во текот на инсталацијата: %"
-"s.\n"
+"Пронајдени се следниве медиуми и ќе се користат во текот на инсталацијата: "
+"%s.\n"
"\n"
"\n"
"Дали имате додатен инсталационен медиум за конфигурирање?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Мрежа (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Мрежа (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Мрежа (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "URL на огледалото?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "URL-то мора да започнува со „ftp://“ или „http://“"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Контактирање со веб сајтот на Мандрива Линукс за добивање на листата на "
-"огледала..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Не може да се воспостави врска веб страница на „Mandriva Linux“ за да се "
-"добие листата на достапни огледала"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Изберете огледало од кое да се преземат пакетите"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "Поставување на „NFS“"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr ""
"Ве молиме внесете го името на домаќинот и директориумот на вашиот „NFS“ "
"медиум"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr ""
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr ""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "Име на домаќинот каде е монтиран „NFS“ ?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Директориум"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr ""
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
msgstr "Не мојажам да ја пронајдам hdlist датотеката на ова огледало"
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Барање пакети што се веќе инсталирањен..."
+msgid "Core Release"
+msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Отстранување на пакети поради надградување..."
+msgid "Tainted Release"
+msgstr ""
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Барање пакети за надградба..."
+msgid "Nonfree Release"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"Сте ги избрале следниве сервери: %s\n"
-"\n"
-"Овие сервери се активираат автоматски. Тие немаат никакви познати стари\n"
-"сигурносни проблеми, но можно е да се појават нови. Во тој случај, треба да\n"
-"ги надградите пакетите што е можно побрзо.\n"
-"\n"
-"\n"
-"Дали навистина сакате да ги инсталирате овие сервери?\n"
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Барање пакети што се веќе инсталирањен..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Барање пакети за надградба..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Отстранување на пакети поради надградување..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -190,82 +250,87 @@ msgstr ""
"\n"
"Дали навистина сакате да се избришат овие пакети?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Грешка при читање на датотеката %s"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "Следниве дискови се преименувани:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (претходно именувано како %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Мрежа"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "Ве молиме изберете медиум"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Датотеката веќе постои. Да се запише врз неа?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Недозволен пристап"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "Лошо „NFS“ име"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "Невалиден медиум %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Не можат да се прават снимки на екран пред партицирање"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Екранските снимки ќе бидат достапни по инсталацијата во %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Инсталација"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Конфигурација"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Мора да го форматирате и %s"
@@ -290,108 +355,143 @@ msgstr "Подигање на мрежата"
msgid "Bringing down the network"
msgstr "Спуштање на мрежата"
-#: media.pm:703 media.pm:714
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
+
+#: media.pm:704
#, c-format
-msgid "Downloading file %s..."
-msgstr "Снимање на датотека %s..."
+msgid "unable to add medium"
+msgstr ""
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr "Копирање на некои пакети на дискот за понатамошна употреба"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Копирањето е во тек"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "мора да се има"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "важно"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "одлично"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "убаво"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "можеби"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Нема опис"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "Работна станица"
+msgid "An error occurred:"
+msgstr ""
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Канцелариски"
+msgid "A fatal error occurred: %s."
+msgstr "Се случи фаталната грешка: %s."
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d неуспешни трансакциии на инсталацијата"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
msgstr ""
-"Канцелариски програми: обработка на текст (OpenOffice.org Writer, Kword), "
-"табеларни пресметки (OpenOffice.org Calc, Kspread), прегледувачи на „PDF“ "
-"итн."
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "Работна станица"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Канцелариски"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Канцелариски програми: обработка на текст (kword, abiword), табеларни "
-"пресметки (kspread, gnumeric), прегледувачи на „pdf“ итн."
+"Канцелариски програми: обработка на текст (LibreOffice Writer, Kword), "
+"табеларни пресметки (LibreOffice Calc, Kspread), прегледувачи на „PDF“ итн."
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Станица за игри"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Забавни програми: аркадни, на табла, стратегија, итн."
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Мултимедијална станица"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Програми за пуштање и уредување на звук и видео"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Интернет станица"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
@@ -400,193 +500,193 @@ msgstr ""
"Комплет алатки за читање и пракање е-пошта и вести (mutt, tin..) и "
"прелистување на Интернет"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Мрежен компјутер (клиент)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Клиенти за различни протоколи, вклучувајќи и „ssh“"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Алатки за лесно конфигурирање на вашиот компјутер"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Конзолски алатки"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Уредувачи, школки, алатки за датотеки, терминали"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Развој"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "Развивачки датотеки за „C“ и „C++“, програми и „include“ датотеки"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Документација"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Книги и „Како да“ за „Linux“ и слободен софтвер"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "„Linux Standard Base“. Поддршка за апликации од други фирми"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Веб сервер"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Групи"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Kolab Сервер"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Firewall/Router"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Интернет gateway"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "Пошта/Вести"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "„Postfix“ сервер за пошта, „Inn“ сервер за вести"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Директориумски сервер"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "„FTP“ сервер"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "Име на доменот и сервер за мрежни информации"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "Сервер за споделување на датотеки и печатач"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "„NFS“ сервер, „Samba“ сервер"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "База на податоци"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "„PostgreSQL“ и „MySQL“ сервер за бази на податоци"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "„PostgreSQL“ и „MariaDB“ сервер за бази на податоци"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Пошта"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Postfix сервер за пошта"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "„PostgreSQL“ или „MySQL“ сервер за бази на податоци"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "„PostgreSQL“ или „MariaDB“ сервер за бази на податоци"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Мрежен компјутер-сервер"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "„NFS“ сервер, „SMB“ сервер, „Proxy“ сервер, „ssh“ сервер"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Графичка околина"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "„KDE“ работна станица"
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -595,12 +695,12 @@ msgstr ""
"„К“ работна околина, основната графичка околина со додатна колекција на "
"придружни алатки"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "„GNOME“ работна станица"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -608,57 +708,109 @@ msgid ""
msgstr ""
"Графичка околина со кориснички пакет на алатки и алатки за работната површина"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
#, c-format
-msgid "IceWm Desktop"
-msgstr "„IceWm“ работна површина"
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Други графички работни околини"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm, итн."
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Помошни алатки"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH Сервер"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "„Webmin“"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "„Webmin“ оддалечен сервер за конфигурирање"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "Мрежни помошни алатки/надгледување"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "Алатки за надгледување, раководење на процеси, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "„Mandriva“ волшебници"
+msgid "Mageia Wizards"
+msgstr "„Mageia“ волшебници"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Волшебници за конфигурирање на сервер"
@@ -672,7 +824,7 @@ msgstr ""
"Се случи грешка, но не знам како добро да се справам со неа.\n"
"Продолжете на сопствен ризик."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -692,206 +844,259 @@ msgstr "Премин на чекор \"%s\"\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux Инсталација %s"
+msgid "%s Installation %s"
+msgstr "%s Инсталација %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> помеѓу елементи"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
"Вашиот систем е слаб со ресурси. Може да Ви се појават проблеми\n"
-"при инсталирање. Ако тоа се случи, пробајте со текстуална инсталација.\n"
+"при инсталирање %s. Ако тоа се случи, пробајте со текстуална инсталација.\n"
"За тоа, притиснете \"F1\" кога ќе се подигне цедеромот, и потоа внесете\n"
"\"text\"."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Групна селекција на пакети"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Подделна селекција на пакети"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Вкупна големина: %d / %d MB"
+msgid "Unselect All"
+msgstr "Сите се неселектирани"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Лош пакет"
+msgid "Total size: %d / %d MB"
+msgstr "Вкупна големина: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Верзија:"
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Големина: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Важност: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Не можете да (не) го изберете овој пакет"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "поради недостасување на %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "поради незадоволување на %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "се обидувам да промовирам %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "за да се задржи %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"Не можете да го изберете овој пакет, зашто нема доволно простор да се "
"инсталира"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Ќе бидат инсталирани следниве пакети"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Следниве пакети ќе бидат отстранети"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Ова е неопходен пакет, и не може да не се избере"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Не може да не го изберете овој пакет. Веќе е инсталиран"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr ""
"Не можете да не го изберете овој пакет. Тој мора да се надгради (upgrade)"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Прикажи ги автоматски избраните пакети"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Инсталирај"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Вчитај/зачувај избор"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Освежување на изборот на пакети"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Минимална инсталација"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Менаџмент на софтвер"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Изберете ги пакетите што сакате да се инсталираат"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Инсталирање"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Без детали"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Преостанато време "
+msgid "Time remaining:"
+msgstr ""
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Проценка"
+msgid "(estimating...)"
+msgstr ""
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d пакети"
-msgstr[1] "%d пакети"
+msgstr[0] ""
+msgstr[1] ""
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Резиме"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Конфигурирај"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "не е конфигурирано"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
@@ -900,12 +1105,12 @@ msgstr ""
"Пронајдени се следниве инсталациски медиуми.\n"
"Ако сакате да отстранете некои, можете сега да ги дештиклирате."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
"Имате опција да ја копирате содржината на CD-ата на дискот, пред самата "
@@ -913,95 +1118,91 @@ msgstr ""
"Потоа, инсталацијата ќе продолжи од хард дискот и пакетите ќе бидат достапни "
"се додека системот е целосно инсталиран."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "Копирај ги сите CD-а"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Се случи грешка"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Изберете распоред на тастатура."
+msgid "Please choose your keyboard layout"
+msgstr "Изберете распоред на тастатура"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Ова е целосна листа на достапни тастатури"
+msgid "Here is the full list of available keyboards:"
+msgstr ""
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Инсталирај/Надогради"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Дали е ова инсталација или надградба?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
-msgstr "Инсталирај"
+msgstr "Инсталација"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Надгради %s"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
+msgid "Encryption key for %s"
+msgstr "Криптирачки клуч за %s"
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
+msgid "Cancel installation, reboot system"
msgstr ""
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
-msgstr "Криптирачки клуч за %s"
+msgid "New Installation"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
-msgstr "Конфигурирање на IDE"
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+msgid "CD/DVD"
msgstr ""
-"Нема слободен простор за bootstrap од 1МБ! Инсталацијата ќе продолжи, но за "
-"да го подигнете Вашиот систем, ќе треба да креирате bootstrap партиција во "
-"DiskDrake"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+msgid "Configuring CD/DVD"
msgstr ""
-"Треба да креирате „PPC PReP Boot“ подигнување! Инсталацијата ќе продолжи, но "
-"за да го вклучите вашиот систем, ќе треба да креирате партиција за "
-"подигнување во „DiskDrake“"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1014,19 +1215,19 @@ msgstr ""
"Внесете го CD-то со наслов \"%s\" во вашиот уред и притиснете \"Во ред\".\n"
"Ако го немате, притиснете \"Откажи\" за да не инсталирате од ова CD."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Барање достапни пакети..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
@@ -1035,52 +1236,52 @@ msgstr ""
"Ве молиме изберете „вчитај“ или „зачувај“ го изборот на пакети\n"
"Форматот е ист како за генерирани датотеки од „auto_install“."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Вчитај"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Зачувај"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Лоша датотека"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Минимална инсталација"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Избраната големина е поголема од слободниот простор"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Тип на инсталација"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1089,83 +1290,127 @@ msgstr ""
"Не сте избрале ниту една група пакети.\n"
"Изберете ја минималната инсталација што ја сакате:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Со X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Со основна документација (препорачано!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Вистински минимална инсталација (без urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Подготовка на инсталацијата"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Инсталирање на пакетот %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Се случи грешка во подредувањето на пакетите:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Да продолжиме?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr ""
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr ""
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr ""
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "Зачувување на селекцијата пакети"
+msgstr ""
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "Се случи грешка во инсталирањето на пакетите:"
+msgstr ""
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Пост-инсталациона конфигурација"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
"Ве молиме проверете дали медиумот со модулите за надградување е во уредот %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Надградби"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Ќе бидат инсталирани следниве пакети"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Неуспех при додавање медиум"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1186,132 +1431,80 @@ msgstr ""
"\n"
"Дали сакате да ги инсталирате надградбите?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Контактирање со огледалото за добивање листа на достапни пакети..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Не можеше да контактира со другиот %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s на %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Хардвер(машински дел)"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Звучна картичка"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Дали имате ISA звучна картичка?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"По инсталацијата вклучете \"alsaconf\" или \"sndconfig\" за да ја "
-"конфигурирате звучаната картичка"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Не е детектирана звучна картичка. Обидете се со \"harddrake\" по "
-"инсталацијата"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Графички интерфејс"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Мрежа и Интернет"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Прокси"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "конфигурирано"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Ниво на сигурност"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Firewall"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "активиран"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "оневозможено"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "Се уште го ш конфигурирано Х. Дали навистина сакаш да го направиш ова?"
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "Подговтвување на подигачот..."
-
-#: steps_interactive.pm:1018
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Preparing initial startup program..."
msgstr ""
-"Изгледа дека имате стара или непозната машина, затоа „yaboot“ подигнувачот "
-"нема да работи. Инсталацијата ќе продолжи, но ќе треба да користите „BootX“ "
-"или некои други средства за подигнување на вашата машина. Аргументот на "
-"кернелот за „root fs“ е следниов: root=%s"
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Дали сакате да го користите aboot?"
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
+msgid "Be patient, this may take a while..."
msgstr ""
-"Грешка при инсталирање aboot. \n"
-"Да се обидеме со сила, иако тоа може да ја уништи првата партиција?"
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
@@ -1320,17 +1513,17 @@ msgstr ""
"Во ова безбедносно ниво, пристап до датотеките кои се наоѓаат на „Windows“ "
"партицијата е дозволен само на администраторот."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Внесете празна дискета во %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Создавање дискета за авто-инсталација..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1341,51 +1534,16 @@ msgstr ""
"\n"
"Дали навистина сакате сега да напуштите?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Честитки"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Рестартирај"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Генерирање дискета за авто-инсталација"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Автоматската инсталација може да биде целосно автоматска,\n"
-"но во тој случај таа ќе го преземе дискот!!\n"
-"(ова е наменето за инсталирање на друга машина).\n"
-"\n"
-"Можеби претпочитате да ја репризирате (replay) инсталацијата.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Реприза"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Автоматска"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Зачувување на селекцијата пакети"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1476,13 +1634,6 @@ msgid ""
"Users"
msgstr "Корисници"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Мрежа"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1525,115 +1676,25 @@ msgid ""
"Exit"
msgstr "Излез"
-#~ msgid "All"
-#~ msgstr "Сите"
-
-#~ msgid "TV card"
-#~ msgstr "ТВ картичка"
-
-#~ msgid "Boot"
-#~ msgstr "Подигање"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Автентикација"
-
-#~ msgid "Arkeia"
-#~ msgstr "Arkeia"
-
-#~ msgid "Flatout"
-#~ msgstr "Flatout"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "3D"
-#~ msgstr "3Д"
-
-#~ msgid "CMS"
-#~ msgstr "CMS"
-
-#~ msgid "CRM"
-#~ msgstr "CRM"
-
-#~ msgid "2007 product line"
-#~ msgstr "производна линија 2007"
-
-#~ msgid "Invictus Firewall"
-#~ msgstr "Несовладлив заштитен ѕид"
-
-#~ msgid "Discovery Live Mode"
-#~ msgstr "`"
-
-#~ msgid "How to register"
-#~ msgstr "Како да се регистрирате"
-
-#~ msgid "Rpmdrake 2"
-#~ msgstr "Rpmdrake 2"
-
-#~ msgid "Mandriva Online Services"
-#~ msgstr "„Mandriva Online“ сервиси"
-
-#~ msgid "New Theme"
-#~ msgstr "Нова тема"
-
-#~ msgid "Web 2.0"
-#~ msgstr "Веб 2.0"
-
-#~ msgid "Kaspersky"
-#~ msgstr "Kaspersky"
-
-#~ msgid "LinDVD"
-#~ msgstr "LinDVD"
-
-#~ msgid "Skype"
-#~ msgstr "Skype"
-
-#~ msgid "Transgaming/Cedega"
-#~ msgstr "Transgaming/Cedega"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "%d пакети"
-#~ msgstr[1] "%d пакети"
-
-#~ msgid "%d packages"
-#~ msgstr "%d пакети"
-
-#~ msgid "Language"
-#~ msgstr "Јазик"
-
-#~ msgid "License"
-#~ msgstr "Лиценца"
-
-#~ msgid "Installation class"
-#~ msgstr "Класа на инсталација"
-
-#~ msgid "Formatting"
-#~ msgstr "Форматирање"
-
-#~ msgid "Choosing packages"
-#~ msgstr "Избирање на пакети"
-
-#~ msgid "Users"
-#~ msgstr "Корисници"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "URL на огледалото?"
-#~ msgid "Networking"
-#~ msgstr "Мрежа"
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "URL-то мора да започнува со „ftp://“ или „http://“"
-#~ msgid "Configure X"
-#~ msgstr "Конфигурирај Х"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr ""
+#~ "Контактирање со веб сајтот на %s за добивање на листата на огледала..."
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
#~ msgstr ""
-#~ "Нема пристап до модулите на јадрото за Вашето јадро (датотеката %s "
-#~ "недостига). Ова обично значи дека Вашата boot-дискета не е синхронизирана "
-#~ "со инсталациониот медиум (креирајте понова boot-дискета)"
+#~ "Не може да се воспостави врска веб страница на „%s“ за да се добие "
+#~ "листата на достапни огледала"
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Изберете огледало од кое да се преземат пакетите"
diff --git a/perl-install/install/share/po/mn.po b/perl-install/install/share/po/mn.po
index 9f849cd5c..fb259f3e7 100644
--- a/perl-install/install/share/po/mn.po
+++ b/perl-install/install/share/po/mn.po
@@ -1,160 +1,232 @@
-# translation of DrakX.po to Mongolian
-# Copyright (C) 2003, 2004 Free Software Foundation, Inc.
-# Khurelbaatar Lkhagavsuren <hujii247@yahoo.com>, 2003.
-# Khurelbaatar Lkhagvasuren <hujii247@yahoo.com>, 2003.
-# Sanlig Badral <Badral@openmn.org>, 2004.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Khurelbaatar Lkhagavsuren <hujii247@yahoo.com>, 2003
+# Khurelbaatar Lkhagvasuren <hujii247@yahoo.com>, 2003
+# Sanlig Badral <Badral@openmn.org>, 2004
msgid ""
msgstr ""
-"Project-Id-Version: DrakX\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2004-01-02 00:35+0100\n"
-"Last-Translator: Sanlig Badral <Badral@openmn.org>\n"
-"Language-Team: Mongolian <openmn-core@lists.sf.net>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Mongolian (http://www.transifex.com/MageiaLinux/mageia/"
+"language/mn/)\n"
+"Language: mn\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.0.2\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: any.pm:155
-#, fuzzy, c-format
-msgid "Do you have further supplementary media?"
-msgstr "Та ямар нэгэн %s гэсэн харагдалттай юу?"
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: ../../advertising/02_IM_mageia.pl:1
#, c-format
-msgid ""
-"The following media have been found and will be used during install: %s.\n"
-"\n"
-"\n"
-"Do you have a supplementary installation medium to configure?"
+msgid "Make it yours!"
msgstr ""
-#: any.pm:166
+#: ../../advertising/03_IM_mageia.pl:1
#, c-format
-msgid "CD-ROM"
-msgstr "КД-РОМ"
+msgid "Your choice!"
+msgstr ""
-#: any.pm:167
-#, fuzzy, c-format
-msgid "Network (HTTP)"
-msgstr "Сүлжээ"
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
-#: any.pm:168
-#, fuzzy, c-format
-msgid "Network (FTP)"
-msgstr "Сүлжээ"
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
-#: any.pm:169
+#: ../../advertising/06_IM_mageia.pl:1
#, c-format
-msgid "Network (NFS)"
+msgid "For kids"
msgstr ""
-#: any.pm:211
+#: ../../advertising/07_IM_mageia.pl:1
#, c-format
-msgid "URL of the mirror?"
+msgid "For family!"
msgstr ""
-#: any.pm:217
+#: ../../advertising/08_IM_mageia.pl:1
#, c-format
-msgid "URL must start with ftp:// or http://"
+msgid "For developers!"
msgstr ""
-#: any.pm:228
-#, fuzzy, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr "сайт жигсаалт аас."
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr ""
-#: any.pm:233
-#, fuzzy, c-format
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr ""
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
+#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr "сайт жигсаалт аас."
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
+msgstr ""
-#: any.pm:243
-#, fuzzy, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Сонгох"
+#: any.pm:162
+#, c-format
+msgid "Network (HTTP)"
+msgstr ""
-#: any.pm:273
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
+msgstr ""
+
+#: any.pm:164
+#, c-format
+msgid "Network (NFS)"
+msgstr ""
+
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr ""
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr ""
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr ""
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr ""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr ""
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Лавлах"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr ""
-#: any.pm:341
-#, fuzzy, c-format
+#: any.pm:300
+#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
-msgstr "%s: %s-ийг холбож чадахгүй: %s\n"
+msgstr ""
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
+msgid "Core Release"
msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
+msgid "Tainted Release"
msgstr ""
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
+msgid "Nonfree Release"
msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr ""
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr ""
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
msgstr ""
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -163,84 +235,87 @@ msgid ""
"Do you really want to remove these packages?\n"
msgstr ""
-#: any.pm:1055
-#, fuzzy, c-format
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr ""
+
+#: any.pm:1283
+#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "Дараах багцууд суулгагдах гэж байна"
+msgstr ""
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr ""
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr ""
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
-#, fuzzy, c-format
+#: any.pm:1342
+#, c-format
msgid "NFS"
-msgstr "ТЭ"
+msgstr ""
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Сүлжээ"
-#: any.pm:1137
-#, fuzzy, c-format
+#: any.pm:1365
+#, c-format
msgid "Please choose a media"
msgstr ""
-"Нөөцлөх зөөврийн төхөөрөмжөө\n"
-"сонгоно уу."
-#: any.pm:1153
-#, fuzzy, c-format
+#: any.pm:1381
+#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "Файл?"
+msgstr ""
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Хандалт нурлаа"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr ""
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr ""
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Хуваалт үүсгэхийн өмнө агшин дэлгэцүүдийг хийж чадахгүй"
-#: any.pm:1277
-#, fuzzy, c-format
+#: any.pm:1509
+#, c-format
msgid "Screenshots will be available after install in %s"
-msgstr "ямх"
+msgstr ""
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
-msgstr "Суулгалт"
+msgstr ""
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Тохиргоо"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr ""
@@ -262,368 +337,458 @@ msgstr ""
msgid "Bringing down the network"
msgstr ""
-#: media.pm:703 media.pm:714
-#, fuzzy, c-format
-msgid "Downloading file %s..."
-msgstr "Файлууд илгээж байна..."
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr ""
-#: media.pm:861
-#, fuzzy, c-format
+#: media.pm:797
+#, c-format
msgid "Copying in progress"
-msgstr "ямх"
+msgstr ""
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr ""
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr ""
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "маш аятайхан"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "аятайхан"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "магадгүй"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Тайлбар алга"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
+msgid "An error occurred:"
msgstr ""
-#: share/meta-task/compssUsers.pl:13
-#, fuzzy, c-format
-msgid "Office Workstation"
-msgstr "Албан газар"
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr ""
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr ""
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
msgstr ""
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-#: share/meta-task/compssUsers.pl:21
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:26
+#, c-format
msgid "Game station"
-msgstr "Тоглоом"
+msgstr ""
-#: share/meta-task/compssUsers.pl:22
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:27
+#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "Зугаа цэнгэл"
+msgstr ""
-#: share/meta-task/compssUsers.pl:25
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:30
+#, c-format
msgid "Multimedia station"
-msgstr "Мультимедиа"
+msgstr ""
-#: share/meta-task/compssUsers.pl:26
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:31
+#, c-format
msgid "Sound and video playing/editing programs"
-msgstr "Дуу"
+msgstr ""
-#: share/meta-task/compssUsers.pl:31
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:36
+#, c-format
msgid "Internet station"
-msgstr "Интернэт"
+msgstr ""
-#: share/meta-task/compssUsers.pl:32
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:37
+#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
-msgstr "аас"
+msgstr ""
-#: share/meta-task/compssUsers.pl:37
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:42
+#, c-format
msgid "Network Computer (client)"
-msgstr "Сүлжээ"
+msgstr ""
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr ""
-#: share/meta-task/compssUsers.pl:43
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:49
+#, c-format
msgid "Tools to ease the configuration of your computer"
-msgstr "аас"
+msgstr ""
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr ""
-#: share/meta-task/compssUsers.pl:48
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:54
+#, c-format
msgid "Editors, shells, file tools, terminals"
-msgstr "Засварлагчууд"
+msgstr ""
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Хөгжүүлэл"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
+#, c-format
msgid "C and C++ development libraries, programs and include files"
-msgstr "C C"
+msgstr ""
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Баримтжуулалт"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr ""
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr ""
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
+#, c-format
msgid "Linux Standard Base. Third party applications support"
-msgstr "Стандарт"
+msgstr ""
-#: share/meta-task/compssUsers.pl:71
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:79
+#, c-format
msgid "Web Server"
-msgstr "Вэб"
+msgstr ""
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr ""
-#: share/meta-task/compssUsers.pl:75
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:84
+#, c-format
msgid "Groupware"
-msgstr "бүлэг"
+msgstr ""
-#: share/meta-task/compssUsers.pl:76
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:85
+#, c-format
msgid "Kolab Server"
-msgstr "Самба"
+msgstr ""
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr ""
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Интернэт гарц"
-#: share/meta-task/compssUsers.pl:83
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:92
+#, c-format
msgid "Mail/News"
-msgstr "/Файл/_Шинэ"
+msgstr ""
-#: share/meta-task/compssUsers.pl:84
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:93
+#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Мэйл"
+msgstr ""
-#: share/meta-task/compssUsers.pl:87
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:97
+#, c-format
msgid "Directory Server"
-msgstr "Сэргээх Илгээгч"
+msgstr ""
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP Сервер"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr ""
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr ""
-#: share/meta-task/compssUsers.pl:96
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:108
+#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "Домэйн Нэрний Сервер"
+msgstr ""
-#: share/meta-task/compssUsers.pl:99
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:112
+#, c-format
msgid "File and Printer Sharing Server"
-msgstr "Хэвлэгч"
+msgstr ""
-#: share/meta-task/compssUsers.pl:100
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:113
+#, c-format
msgid "NFS Server, Samba server"
-msgstr "Самба"
+msgstr ""
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Өгөгдлийн сан"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
+msgid "PostgreSQL and MariaDB Database Server"
msgstr ""
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr ""
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Мэйл"
-#: share/meta-task/compssUsers.pl:113
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:129
+#, c-format
msgid "Postfix mail server"
-msgstr "Мэйл"
+msgstr ""
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
+msgid "PostgreSQL or MariaDB database server"
msgstr ""
-#: share/meta-task/compssUsers.pl:124
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:142
+#, c-format
msgid "Network Computer server"
-msgstr "Сүлжээ"
+msgstr ""
-#: share/meta-task/compssUsers.pl:125
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:143
+#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "Итгэмжилэгч"
+msgstr ""
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr ""
-#: share/meta-task/compssUsers.pl:133
-#, fuzzy, c-format
-msgid "KDE Workstation"
-msgstr "KDE"
+#: share/meta-task/compssUsers.pl:152
+#, c-format
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:153
+#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
-msgstr "Ажилын талбар аас"
+msgstr ""
-#: share/meta-task/compssUsers.pl:138
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:158
+#, c-format
msgid "GNOME Workstation"
-msgstr "KDE"
+msgstr ""
-#: share/meta-task/compssUsers.pl:139
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
+#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
-msgstr "аас"
+msgstr ""
-#: share/meta-task/compssUsers.pl:142
-#, fuzzy, c-format
-msgid "IceWm Desktop"
-msgstr "Ширээний компьютер"
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
+#, c-format
msgid "Other Graphical Desktops"
-msgstr "Бусад"
+msgstr ""
-#: share/meta-task/compssUsers.pl:147
-#, fuzzy, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Цонх"
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
-#: share/meta-task/compssUsers.pl:170
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:218
+#, c-format
msgid "Utilities"
-msgstr "Филлипинни"
+msgstr ""
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr ""
-#: share/meta-task/compssUsers.pl:177
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:225
+#, c-format
msgid "Webmin"
-msgstr "Вэб дуран"
+msgstr ""
-#: share/meta-task/compssUsers.pl:178
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:226
+#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Терминал Сервер"
+msgstr ""
-#: share/meta-task/compssUsers.pl:182
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:230
+#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Сүлжээ толидох"
+msgstr ""
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr ""
-#: share/meta-task/compssUsers.pl:187
-#, fuzzy, c-format
-msgid "Mandriva Wizards"
-msgstr "Мандрива удирдлагын төв"
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr ""
-#: share/meta-task/compssUsers.pl:188
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:236
+#, c-format
msgid "Wizards to configure server"
-msgstr "\"%s\" хэвлэгч дээр хэвлэж байна"
+msgstr ""
#: steps.pm:85
#, c-format
@@ -632,14 +797,14 @@ msgid ""
"Continue at your own risk."
msgstr ""
-#: steps.pm:433
-#, fuzzy, c-format
+#: steps.pm:469
+#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
"Either your cdrom drive or your cdrom is defective.\n"
"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
"\"\n"
-msgstr "бол"
+msgstr ""
#: steps_auto_install.pm:71 steps_stdio.pm:27
#, c-format
@@ -647,298 +812,353 @@ msgid "Entering step `%s'\n"
msgstr ""
#: steps_curses.pm:22
-#, fuzzy, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Мандрива удирдлагын төв"
+#, c-format
+msgid "%s Installation %s"
+msgstr ""
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr ""
-#: steps_gtk.pm:189
-#, fuzzy, c-format
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
+#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
-msgstr "бол Та вы текст текст."
+msgstr ""
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
-#, fuzzy, c-format
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
+#, c-format
msgid "Package Group Selection"
-msgstr "Пакет Групп"
+msgstr ""
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Тусдаа дан багц сонгох"
-#: steps_gtk.pm:299 steps_interactive.pm:507
-#, fuzzy, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Нийт хэмжээ"
+#: steps_gtk.pm:361
+#, c-format
+msgid "Unselect All"
+msgstr ""
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Тааруухан багц"
+msgid "Total size: %d / %d MB"
+msgstr ""
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Хувилбар: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Хэмжээ: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d КБ\n"
-#: steps_gtk.pm:348
-#, fuzzy, c-format
+#: steps_gtk.pm:427
+#, c-format
msgid "Importance: "
-msgstr "Цонтууд импортлох"
+msgstr ""
-#: steps_gtk.pm:382
-#, fuzzy, c-format
-msgid "You can not select/unselect this package"
-msgstr "Та"
+#: steps_gtk.pm:462
+#, c-format
+msgid "You cannot select/unselect this package"
+msgstr ""
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr ""
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr ""
-#: steps_gtk.pm:388
-#, fuzzy, c-format
+#: steps_gtk.pm:468
+#, c-format
msgid "trying to promote %s"
-msgstr "Юу ч үгүй"
+msgstr ""
-#: steps_gtk.pm:389
-#, fuzzy, c-format
+#: steps_gtk.pm:469
+#, c-format
msgid "in order to keep %s"
-msgstr "ямх"
+msgstr ""
-#: steps_gtk.pm:394
-#, fuzzy, c-format
+#: steps_gtk.pm:474
+#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
-msgstr "Та бол зүүн"
+msgstr ""
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Дараах багцууд суулгагдах гэж байна"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr ""
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr ""
-#: steps_gtk.pm:425
-#, fuzzy, c-format
-msgid "You can not unselect this package. It is already installed"
-msgstr "Та бол"
+#: steps_gtk.pm:506
+#, c-format
+msgid "You cannot unselect this package. It is already installed"
+msgstr ""
-#: steps_gtk.pm:427
-#, fuzzy, c-format
-msgid "You can not unselect this package. It must be upgraded"
-msgstr "Та"
+#: steps_gtk.pm:508
+#, c-format
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr ""
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Автоматаар сонгогдсон багцуудыг харуулах"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Суулга"
-#: steps_gtk.pm:436
-#, fuzzy, c-format
+#: steps_gtk.pm:519
+#, c-format
msgid "Load/Save selection"
-msgstr "Пакет"
+msgstr ""
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr ""
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr ""
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr ""
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Сонгохыг хүсэж буй багцаа сонгоно уу"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Суулгалт"
-#: steps_gtk.pm:499
-#, fuzzy, c-format
+#: steps_gtk.pm:590
+#, c-format
msgid "No details"
-msgstr "Үгүй"
+msgstr ""
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Үлдэж буй хугацаа"
+msgid "Time remaining:"
+msgstr ""
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
+msgid "(estimating...)"
msgstr ""
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "Тааруухан багц"
-msgstr[1] "Тааруухан багц"
+msgstr[0] ""
+msgstr[1] ""
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Дүгнэлт"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Тохируулах"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr ""
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr ""
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr ""
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Та гарын байрлалаа сонгоно уу."
+msgid "Please choose your keyboard layout"
+msgstr "Та гарын байрлалаа сонгоно уу"
-#: steps_interactive.pm:99
-#, fuzzy, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "бол бүрэн жигсаалт аас"
+#: steps_interactive.pm:109
+#, c-format
+msgid "Here is the full list of available keyboards:"
+msgstr ""
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr ""
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr ""
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Суулга"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr ""
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
+msgid "Encryption key for %s"
msgstr ""
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
+msgid "Cancel installation, reboot system"
msgstr ""
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
+msgid "New Installation"
msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
+msgid "Upgrade previous installation (not recommended)"
msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
-msgstr "IDE-г тохируулах"
-
-#: steps_interactive.pm:231
-#, fuzzy, c-format
msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr "Үгүй вы ямх"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
-#: steps_interactive.pm:236
-#, fuzzy, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
-msgstr "Үгүй вы ямх"
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr ""
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr ""
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -947,154 +1167,198 @@ msgid ""
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr ""
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-#: steps_interactive.pm:405
-#, fuzzy, c-format
+#: steps_interactive.pm:428
+#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
-msgstr "ачаалах бол."
+msgstr ""
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Процессор ачаалж байна"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Хадгалах"
-#: steps_interactive.pm:415
-#, fuzzy, c-format
+#: steps_interactive.pm:438
+#, c-format
msgid "Bad file"
-msgstr "Файлыг ачаалах"
+msgstr ""
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "Гном"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Төрөл аас"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Сонгогдсон хэмжээ нь боломжтой зайнаас их байна"
-#: steps_interactive.pm:536
-#, fuzzy, c-format
+#: steps_interactive.pm:576
+#, c-format
msgid "Type of install"
-msgstr "Төрөл аас"
+msgstr ""
-#: steps_interactive.pm:537
-#, fuzzy, c-format
+#: steps_interactive.pm:577
+#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
-msgstr "Та бүлэг аас вы:"
+msgstr ""
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr ""
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr ""
-#: steps_interactive.pm:542
-#, fuzzy, c-format
+#: steps_interactive.pm:585
+#, c-format
msgid "Truly minimal install (especially no urpmi)"
-msgstr "үгүй"
+msgstr ""
+
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
-#: steps_interactive.pm:596
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Суулгалтын бэлтгэл"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr ""
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr ""
-#: steps_interactive.pm:628
-#, fuzzy, c-format
+#: steps_interactive.pm:679
+#, c-format
msgid "Go on anyway?"
-msgstr "Очих?"
+msgstr ""
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr ""
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr ""
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr ""
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "Хадгалах"
+msgstr ""
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "Багцуудыг суулгахад алдаа гарлаа:"
+msgstr ""
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Суулгалтын тохируулгыг батал"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
+msgstr "Шинэчлэх"
+
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
msgstr ""
-#: steps_interactive.pm:692
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Дараах багцууд суулгагдах гэж байна"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr ""
+
+#: steps_interactive.pm:792
+#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
"have been updated after the distribution was released. They may\n"
@@ -1104,187 +1368,115 @@ msgid ""
"connection.\n"
"\n"
"Do you want to install the updates?"
-msgstr "Та г вы Интернэт г вы?"
-
-#: steps_interactive.pm:713
-#, fuzzy, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "жигсаалт аас."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
msgstr ""
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s -д %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Техник хангамж"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Дууны карт"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Та ISA дууны карттай юу?"
-
-#: steps_interactive.pm:904
-#, fuzzy, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr "Ажиллуулах"
-
-#: steps_interactive.pm:906
-#, fuzzy, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "Үгүй Reyna"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr ""
-#: steps_interactive.pm:921 steps_interactive.pm:932
-#, fuzzy, c-format
+#: steps_interactive.pm:978 steps_interactive.pm:990
+#, c-format
msgid "Network & Internet"
-msgstr "Сүлжээ"
+msgstr ""
-#: steps_interactive.pm:933
-#, fuzzy, c-format
+#: steps_interactive.pm:991
+#, c-format
msgid "Proxies"
-msgstr "Польш"
+msgstr ""
-#: steps_interactive.pm:934
-#, fuzzy, c-format
+#: steps_interactive.pm:992
+#, c-format
msgid "configured"
-msgstr "Тохируулах"
+msgstr ""
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Хамгаалалтын төвшин"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr ""
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr ""
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "хаалттай"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "Та Х-г тохируулаагүй байна. Та үүнийг хийхдээ итгэлтэй байна уу?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
+msgid "Preparing initial startup program..."
msgstr ""
-#: steps_interactive.pm:1018
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Be patient, this may take a while..."
msgstr ""
-#: steps_interactive.pm:1024
-#, fuzzy, c-format
-msgid "Do you want to use aboot?"
-msgstr "вы?"
-
-#: steps_interactive.pm:1027
-#, fuzzy, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr "Алдаа?"
-
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-#: steps_interactive.pm:1071
-#, fuzzy, c-format
-msgid "Insert a blank floppy in drive %s"
-msgstr "Оруулах ямх"
-
-#: steps_interactive.pm:1073
-#, fuzzy, c-format
-msgid "Creating auto install floppy..."
-msgstr "Үүсгэж байна."
-
-#: steps_interactive.pm:1084
-#, fuzzy, c-format
-msgid ""
-"Some steps are not completed.\n"
-"\n"
-"Do you really want to quit now?"
-msgstr "г вы?"
-
-#: steps_interactive.pm:1094
-#, fuzzy, c-format
-msgid "Congratulations"
-msgstr "Баяр хүргэе!"
-
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1121
#, c-format
-msgid "Reboot"
-msgstr "Дахин ачаал"
+msgid "Insert a blank floppy in drive %s"
+msgstr ""
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
+#: steps_interactive.pm:1123
#, c-format
-msgid "Generate auto install floppy"
+msgid "Creating auto install floppy..."
msgstr ""
-#: steps_interactive.pm:1104
+#: steps_interactive.pm:1134
#, c-format
msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
+"Some steps are not completed.\n"
"\n"
-"You may prefer to replay the installation.\n"
+"Do you really want to quit now?"
msgstr ""
-#: steps_interactive.pm:1109
+#: steps_interactive.pm:1144
#, c-format
-msgid "Replay"
+msgid "Congratulations"
msgstr ""
-#: steps_interactive.pm:1109
+#: steps_interactive.pm:1147
#, c-format
-msgid "Automated"
-msgstr ""
-
-#: steps_interactive.pm:1112
-#, fuzzy, c-format
-msgid "Save packages selection"
-msgstr "Хадгалах"
+msgid "Reboot"
+msgstr "Дахин ачаал"
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
@@ -1376,13 +1568,6 @@ msgid ""
"Users"
msgstr "Хэрэглэгчид"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Сүлжээ"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1424,49 +1609,3 @@ msgid ""
"_: Keep these entry short\n"
"Exit"
msgstr "Гарах"
-
-#~ msgid "All"
-#~ msgstr "Бүгд"
-
-#~ msgid "Boot"
-#~ msgstr "Эхлүүлэл"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Баталгаажуулалт"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "Тааруухан багц"
-#~ msgstr[1] "Тааруухан багц"
-
-#~ msgid "Language"
-#~ msgstr "Хэл"
-
-#, fuzzy
-#~ msgid "License"
-#~ msgstr "Лиценз"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "Суулгалтын ангилалыг сонгох"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "Формат"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "Сонгох"
-
-#~ msgid "Users"
-#~ msgstr "Хэрэглэгчид"
-
-#~ msgid "Networking"
-#~ msgstr "Сүлжээ"
-
-#, fuzzy
-#~ msgid "Configure X"
-#~ msgstr "Тохируулах"
diff --git a/perl-install/install/share/po/mr.po b/perl-install/install/share/po/mr.po
new file mode 100644
index 000000000..c236ff535
--- /dev/null
+++ b/perl-install/install/share/po/mr.po
@@ -0,0 +1,1608 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Mageia\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Marathi (http://www.transifex.com/MageiaLinux/mageia/language/"
+"mr/)\n"
+"Language: mr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr ""
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr ""
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr ""
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr ""
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr ""
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr ""
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr ""
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
+#, c-format
+msgid ""
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
+msgstr ""
+
+#: any.pm:162
+#, c-format
+msgid "Network (HTTP)"
+msgstr ""
+
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
+msgstr ""
+
+#: any.pm:164
+#, c-format
+msgid "Network (NFS)"
+msgstr ""
+
+#: any.pm:224
+#, c-format
+msgid "NFS setup"
+msgstr ""
+
+#: any.pm:225
+#, c-format
+msgid "Please enter the hostname and directory of your NFS media"
+msgstr ""
+
+#: any.pm:229
+#, c-format
+msgid "Hostname missing"
+msgstr ""
+
+#: any.pm:230
+#, c-format
+msgid "Directory must begin with \"/\""
+msgstr ""
+
+#: any.pm:234
+#, c-format
+msgid "Hostname of the NFS mount ?"
+msgstr ""
+
+#: any.pm:235
+#, c-format
+msgid "Directory"
+msgstr ""
+
+#: any.pm:265
+#, c-format
+msgid "Supplementary"
+msgstr ""
+
+#: any.pm:300
+#, c-format
+msgid ""
+"Can't find a package list file on this mirror. Make sure the location is "
+"correct."
+msgstr ""
+
+#: any.pm:325
+#, c-format
+msgid "Core Release"
+msgstr ""
+
+#: any.pm:327
+#, c-format
+msgid "Tainted Release"
+msgstr ""
+
+#: any.pm:329
+#, c-format
+msgid "Nonfree Release"
+msgstr ""
+
+#: any.pm:367
+#, c-format
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr ""
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr ""
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr ""
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:850
+#, c-format
+msgid ""
+"The following packages will be removed to allow upgrading your system: %s\n"
+"\n"
+"\n"
+"Do you really want to remove these packages?\n"
+msgstr ""
+
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr ""
+
+#: any.pm:1283
+#, c-format
+msgid "The following disk(s) were renamed:"
+msgstr ""
+
+#: any.pm:1285
+#, c-format
+msgid "%s (previously named as %s)"
+msgstr ""
+
+#: any.pm:1342
+#, c-format
+msgid "HTTP"
+msgstr ""
+
+#: any.pm:1342
+#, c-format
+msgid "FTP"
+msgstr ""
+
+#: any.pm:1342
+#, c-format
+msgid "NFS"
+msgstr ""
+
+#: any.pm:1361 steps_interactive.pm:979
+#, c-format
+msgid "Network"
+msgstr ""
+
+#: any.pm:1365
+#, c-format
+msgid "Please choose a media"
+msgstr ""
+
+#: any.pm:1381
+#, c-format
+msgid "File already exists. Overwrite it?"
+msgstr ""
+
+#: any.pm:1385
+#, c-format
+msgid "Permission denied"
+msgstr ""
+
+#: any.pm:1433
+#, c-format
+msgid "Bad NFS name"
+msgstr ""
+
+#: any.pm:1454
+#, c-format
+msgid "Bad media %s"
+msgstr ""
+
+#: any.pm:1498
+#, c-format
+msgid "Cannot make screenshots before partitioning"
+msgstr ""
+
+#: any.pm:1509
+#, c-format
+msgid "Screenshots will be available after install in %s"
+msgstr ""
+
+#: gtk.pm:134
+#, c-format
+msgid "Installation"
+msgstr ""
+
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
+#, c-format
+msgid "Configuration"
+msgstr ""
+
+#: install2.pm:220
+#, c-format
+msgid "You must also format %s"
+msgstr ""
+
+#: interactive.pm:16
+#, c-format
+msgid ""
+"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
+"You can find some information about them at: %s"
+msgstr ""
+
+#: interactive.pm:22
+#, c-format
+msgid "Bringing up the network"
+msgstr ""
+
+#: interactive.pm:27
+#, c-format
+msgid "Bringing down the network"
+msgstr ""
+
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
+
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
+
+#: media.pm:744
+#, c-format
+msgid "Copying some packages on disks for future use"
+msgstr ""
+
+#: media.pm:797
+#, c-format
+msgid "Copying in progress"
+msgstr ""
+
+#: pkgs.pm:32
+#, c-format
+msgid "must have"
+msgstr ""
+
+#: pkgs.pm:33
+#, c-format
+msgid "important"
+msgstr ""
+
+#: pkgs.pm:34
+#, c-format
+msgid "very nice"
+msgstr ""
+
+#: pkgs.pm:35
+#, c-format
+msgid "nice"
+msgstr ""
+
+#: pkgs.pm:36
+#, c-format
+msgid "maybe"
+msgstr ""
+
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr ""
+
+#: pkgs.pm:290
+#, c-format
+msgid ""
+"Some packages requested by %s cannot be installed:\n"
+"%s"
+msgstr ""
+
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr ""
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr ""
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr ""
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:16
+#, c-format
+msgid "Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
+msgid ""
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:26
+#, c-format
+msgid "Game station"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:27
+#, c-format
+msgid "Amusement programs: arcade, boards, strategy, etc"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:30
+#, c-format
+msgid "Multimedia station"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:31
+#, c-format
+msgid "Sound and video playing/editing programs"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:36
+#, c-format
+msgid "Internet station"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:37
+#, c-format
+msgid ""
+"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
+"Web"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:42
+#, c-format
+msgid "Network Computer (client)"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:43
+#, c-format
+msgid "Clients for different protocols including ssh"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:49
+#, c-format
+msgid "Tools to ease the configuration of your computer"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:53
+#, c-format
+msgid "Console Tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:54
+#, c-format
+msgid "Editors, shells, file tools, terminals"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
+#, c-format
+msgid "Development"
+msgstr "विकास"
+
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
+#, c-format
+msgid "C and C++ development libraries, programs and include files"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
+#, c-format
+msgid "Documentation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
+#, c-format
+msgid "Books and Howto's on Linux and Free Software"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
+#, c-format
+msgid "LSB"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
+#, c-format
+msgid "Linux Standard Base. Third party applications support"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:79
+#, c-format
+msgid "Web Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:80
+#, c-format
+msgid "Apache"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:84
+#, c-format
+msgid "Groupware"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:85
+#, c-format
+msgid "Kolab Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
+#, c-format
+msgid "Firewall/Router"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
+#, c-format
+msgid "Internet gateway"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:92
+#, c-format
+msgid "Mail/News"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:93
+#, c-format
+msgid "Postfix mail server, Inn news server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:97
+#, c-format
+msgid "Directory Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:102
+#, c-format
+msgid "FTP Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:103
+#, c-format
+msgid "ProFTPd"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:107
+#, c-format
+msgid "DNS/NIS"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:108
+#, c-format
+msgid "Domain Name and Network Information Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:112
+#, c-format
+msgid "File and Printer Sharing Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:113
+#, c-format
+msgid "NFS Server, Samba server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
+#, c-format
+msgid "Database"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:118
+#, c-format
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:123
+#, c-format
+msgid "Web/FTP"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:124
+#, c-format
+msgid "Apache, Pro-ftpd"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:128
+#, c-format
+msgid "Mail"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:129
+#, c-format
+msgid "Postfix mail server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:134
+#, c-format
+msgid "PostgreSQL or MariaDB database server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:142
+#, c-format
+msgid "Network Computer server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:143
+#, c-format
+msgid "NFS server, SMB server, Proxy server, ssh server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:150
+#, c-format
+msgid "Graphical Environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:152
+#, c-format
+msgid "Plasma Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:153
+#, c-format
+msgid ""
+"The K Desktop Environment, the basic graphical environment with a collection "
+"of accompanying tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:158
+#, c-format
+msgid "GNOME Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
+#, c-format
+msgid ""
+"A graphical environment with user-friendly set of applications and desktop "
+"tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
+#, c-format
+msgid "Other Graphical Desktops"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:218
+#, c-format
+msgid "Utilities"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
+#, c-format
+msgid "SSH Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:225
+#, c-format
+msgid "Webmin"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:226
+#, c-format
+msgid "Webmin Remote Configuration Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:230
+#, c-format
+msgid "Network Utilities/Monitoring"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:231
+#, c-format
+msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:236
+#, c-format
+msgid "Wizards to configure server"
+msgstr ""
+
+#: steps.pm:85
+#, c-format
+msgid ""
+"An error occurred, but I do not know how to handle it nicely.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: steps.pm:469
+#, c-format
+msgid ""
+"Some important packages did not get installed properly.\n"
+"Either your cdrom drive or your cdrom is defective.\n"
+"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
+"\"\n"
+msgstr ""
+
+#: steps_auto_install.pm:71 steps_stdio.pm:27
+#, c-format
+msgid "Entering step `%s'\n"
+msgstr ""
+
+#: steps_curses.pm:22
+#, c-format
+msgid "%s Installation %s"
+msgstr ""
+
+#: steps_curses.pm:32
+#, c-format
+msgid "<Tab>/<Alt-Tab> between elements"
+msgstr ""
+
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
+#, c-format
+msgid ""
+"Your system is low on resources. You may have some problem installing\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
+"press `F1' when booting on CDROM, then enter `text'."
+msgstr ""
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
+#, c-format
+msgid "Package Group Selection"
+msgstr ""
+
+#: steps_gtk.pm:354 steps_interactive.pm:626
+#, c-format
+msgid "Individual package selection"
+msgstr ""
+
+#: steps_gtk.pm:361
+#, c-format
+msgid "Unselect All"
+msgstr ""
+
+#: steps_gtk.pm:380 steps_interactive.pm:538
+#, c-format
+msgid "Total size: %d / %d MB"
+msgstr ""
+
+#: steps_gtk.pm:425
+#, c-format
+msgid "Version: "
+msgstr ""
+
+#: steps_gtk.pm:426
+#, c-format
+msgid "Size: "
+msgstr ""
+
+#: steps_gtk.pm:426
+#, c-format
+msgid "%d KB\n"
+msgstr ""
+
+#: steps_gtk.pm:427
+#, c-format
+msgid "Importance: "
+msgstr ""
+
+#: steps_gtk.pm:462
+#, c-format
+msgid "You cannot select/unselect this package"
+msgstr ""
+
+#: steps_gtk.pm:466
+#, c-format
+msgid "due to missing %s"
+msgstr ""
+
+#: steps_gtk.pm:467
+#, c-format
+msgid "due to unsatisfied %s"
+msgstr ""
+
+#: steps_gtk.pm:468
+#, c-format
+msgid "trying to promote %s"
+msgstr ""
+
+#: steps_gtk.pm:469
+#, c-format
+msgid "in order to keep %s"
+msgstr ""
+
+#: steps_gtk.pm:474
+#, c-format
+msgid ""
+"You cannot select this package as there is not enough space left to install "
+"it"
+msgstr ""
+
+#: steps_gtk.pm:477
+#, c-format
+msgid "The following packages are going to be installed"
+msgstr ""
+
+#: steps_gtk.pm:478
+#, c-format
+msgid "The following packages are going to be removed"
+msgstr ""
+
+#: steps_gtk.pm:504
+#, c-format
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr ""
+
+#: steps_gtk.pm:506
+#, c-format
+msgid "You cannot unselect this package. It is already installed"
+msgstr ""
+
+#: steps_gtk.pm:508
+#, c-format
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr ""
+
+#: steps_gtk.pm:512
+#, c-format
+msgid "Show automatically selected packages"
+msgstr ""
+
+#: steps_gtk.pm:516
+#, c-format
+msgid "Install"
+msgstr ""
+
+#: steps_gtk.pm:519
+#, c-format
+msgid "Load/Save selection"
+msgstr ""
+
+#: steps_gtk.pm:520 steps_gtk.pm:525
+#, c-format
+msgid "Updating package selection"
+msgstr ""
+
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
+#, c-format
+msgid "Minimal install"
+msgstr ""
+
+#: steps_gtk.pm:543
+#, c-format
+msgid "Software Management"
+msgstr ""
+
+#: steps_gtk.pm:543 steps_interactive.pm:415
+#, c-format
+msgid "Choose the packages you want to install"
+msgstr ""
+
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
+#, c-format
+msgid "Installing"
+msgstr ""
+
+#: steps_gtk.pm:590
+#, c-format
+msgid "No details"
+msgstr ""
+
+#: steps_gtk.pm:610
+#, c-format
+msgid "Time remaining:"
+msgstr ""
+
+#: steps_gtk.pm:611
+#, c-format
+msgid "(estimating...)"
+msgstr ""
+
+#: steps_gtk.pm:637
+#, c-format
+msgid "%d package"
+msgid_plural "%d packages"
+msgstr[0] ""
+msgstr[1] ""
+
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
+#, c-format
+msgid "Summary"
+msgstr ""
+
+#: steps_gtk.pm:713
+#, c-format
+msgid "Configure"
+msgstr ""
+
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
+#, c-format
+msgid "not configured"
+msgstr ""
+
+#: steps_gtk.pm:773 steps_interactive.pm:315
+#, c-format
+msgid ""
+"The following installation media have been found.\n"
+"If you want to skip some of them, you can unselect them now."
+msgstr ""
+
+#: steps_gtk.pm:789 steps_interactive.pm:321
+#, c-format
+msgid ""
+"You have the option to copy the contents of the CDs onto the hard disk drive "
+"before installation.\n"
+"It will then continue from the hard disk drive and the packages will remain "
+"available once the system is fully installed."
+msgstr ""
+
+#: steps_gtk.pm:791 steps_interactive.pm:323
+#, c-format
+msgid "Copy whole CDs"
+msgstr ""
+
+#: steps_interactive.pm:40
+#, c-format
+msgid "An error occurred"
+msgstr ""
+
+#: steps_interactive.pm:105
+#, c-format
+msgid "Please choose your keyboard layout"
+msgstr ""
+
+#: steps_interactive.pm:109
+#, c-format
+msgid "Here is the full list of available keyboards:"
+msgstr ""
+
+#: steps_interactive.pm:153
+#, c-format
+msgid "Install/Upgrade"
+msgstr ""
+
+#: steps_interactive.pm:157
+#, c-format
+msgid "Is this an install or an upgrade?"
+msgstr ""
+
+#: steps_interactive.pm:159
+#, c-format
+msgid ""
+"_: This is a noun:\n"
+"Install"
+msgstr ""
+
+#: steps_interactive.pm:161
+#, c-format
+msgid "Upgrade %s"
+msgstr ""
+
+#: steps_interactive.pm:184
+#, c-format
+msgid "Encryption key for %s"
+msgstr ""
+
+#: steps_interactive.pm:217
+#, c-format
+msgid "Cancel installation, reboot system"
+msgstr ""
+
+#: steps_interactive.pm:218
+#, c-format
+msgid "New Installation"
+msgstr ""
+
+#: steps_interactive.pm:219
+#, c-format
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
+
+#: steps_interactive.pm:223
+#, c-format
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr ""
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr ""
+
+#: steps_interactive.pm:354
+#, c-format
+msgid ""
+"Change your Cd-Rom!\n"
+"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
+"done.\n"
+"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
+msgstr ""
+
+#: steps_interactive.pm:372 steps_interactive.pm:490
+#, c-format
+msgid "Looking for available packages..."
+msgstr ""
+
+#: steps_interactive.pm:380
+#, c-format
+msgid ""
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
+msgstr ""
+
+#: steps_interactive.pm:428
+#, c-format
+msgid ""
+"Please choose load or save package selection.\n"
+"The format is the same as auto_install generated files."
+msgstr ""
+
+#: steps_interactive.pm:430
+#, c-format
+msgid "Load"
+msgstr ""
+
+#: steps_interactive.pm:430
+#, c-format
+msgid "Save"
+msgstr ""
+
+#: steps_interactive.pm:438
+#, c-format
+msgid "Bad file"
+msgstr ""
+
+#: steps_interactive.pm:455
+#, c-format
+msgid "Plasma"
+msgstr ""
+
+#: steps_interactive.pm:456
+#, c-format
+msgid "GNOME"
+msgstr "जीनोम"
+
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
+
+#: steps_interactive.pm:460
+#, c-format
+msgid "You can choose your workstation desktop profile."
+msgstr ""
+
+#: steps_interactive.pm:552
+#, c-format
+msgid "Selected size is larger than available space"
+msgstr ""
+
+#: steps_interactive.pm:576
+#, c-format
+msgid "Type of install"
+msgstr ""
+
+#: steps_interactive.pm:577
+#, c-format
+msgid ""
+"You have not selected any group of packages.\n"
+"Please choose the minimal installation you want:"
+msgstr ""
+
+#: steps_interactive.pm:582
+#, c-format
+msgid "With X"
+msgstr ""
+
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
+#, c-format
+msgid "With basic documentation (recommended!)"
+msgstr ""
+
+#: steps_interactive.pm:585
+#, c-format
+msgid "Truly minimal install (especially no urpmi)"
+msgstr ""
+
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
+#, c-format
+msgid "Preparing installation"
+msgstr ""
+
+#: steps_interactive.pm:655
+#, c-format
+msgid "Installing package %s"
+msgstr ""
+
+#: steps_interactive.pm:679
+#, c-format
+msgid "There was an error ordering packages:"
+msgstr ""
+
+#: steps_interactive.pm:679
+#, c-format
+msgid "Go on anyway?"
+msgstr ""
+
+#: steps_interactive.pm:683
+#, c-format
+msgid "Retry"
+msgstr ""
+
+#: steps_interactive.pm:684
+#, c-format
+msgid "Skip this package"
+msgstr ""
+
+#: steps_interactive.pm:685
+#, c-format
+msgid "Skip all packages from medium \"%s\""
+msgstr ""
+
+#: steps_interactive.pm:686
+#, c-format
+msgid "Go back to media and packages selection"
+msgstr ""
+
+#: steps_interactive.pm:689
+#, c-format
+msgid "There was an error installing package %s."
+msgstr ""
+
+#: steps_interactive.pm:708
+#, c-format
+msgid "Post-install configuration"
+msgstr ""
+
+#: steps_interactive.pm:715
+#, c-format
+msgid "Please ensure the Update Modules media is in drive %s"
+msgstr ""
+
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
+#, c-format
+msgid "Updates"
+msgstr ""
+
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr ""
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr ""
+
+#: steps_interactive.pm:792
+#, c-format
+msgid ""
+"You now have the opportunity to download updated packages. These packages\n"
+"have been updated after the distribution was released. They may\n"
+"contain security or bug fixes.\n"
+"\n"
+"To download these packages, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to install the updates?"
+msgstr ""
+
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
+#, c-format
+msgid "%s on %s"
+msgstr ""
+
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
+#, c-format
+msgid "Hardware"
+msgstr ""
+
+#: steps_interactive.pm:958
+#, c-format
+msgid "Sound card"
+msgstr ""
+
+#: steps_interactive.pm:972
+#, c-format
+msgid "Graphical interface"
+msgstr ""
+
+#: steps_interactive.pm:978 steps_interactive.pm:990
+#, c-format
+msgid "Network & Internet"
+msgstr ""
+
+#: steps_interactive.pm:991
+#, c-format
+msgid "Proxies"
+msgstr ""
+
+#: steps_interactive.pm:992
+#, c-format
+msgid "configured"
+msgstr ""
+
+#: steps_interactive.pm:1002
+#, c-format
+msgid "Security Level"
+msgstr ""
+
+#: steps_interactive.pm:1022
+#, c-format
+msgid "Firewall"
+msgstr ""
+
+#: steps_interactive.pm:1026
+#, c-format
+msgid "activated"
+msgstr ""
+
+#: steps_interactive.pm:1026
+#, c-format
+msgid "disabled"
+msgstr ""
+
+#: steps_interactive.pm:1041
+#, c-format
+msgid "You have not configured X. Are you sure you really want this?"
+msgstr ""
+
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
+#, c-format
+msgid "Preparing initial startup program..."
+msgstr ""
+
+#: steps_interactive.pm:1073
+#, c-format
+msgid "Be patient, this may take a while..."
+msgstr ""
+
+#: steps_interactive.pm:1089
+#, c-format
+msgid ""
+"In this security level, access to the files in the Windows partition is "
+"restricted to the administrator."
+msgstr ""
+
+#: steps_interactive.pm:1121
+#, c-format
+msgid "Insert a blank floppy in drive %s"
+msgstr ""
+
+#: steps_interactive.pm:1123
+#, c-format
+msgid "Creating auto install floppy..."
+msgstr ""
+
+#: steps_interactive.pm:1134
+#, c-format
+msgid ""
+"Some steps are not completed.\n"
+"\n"
+"Do you really want to quit now?"
+msgstr ""
+
+#: steps_interactive.pm:1144
+#, c-format
+msgid "Congratulations"
+msgstr ""
+
+#: steps_interactive.pm:1147
+#, c-format
+msgid "Reboot"
+msgstr "पुन्हा सुरु करा (रीबूट)"
+
+#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
+#: steps_list.pm:16
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Language"
+msgstr ""
+
+#: steps_list.pm:16 steps_list.pm:23
+#, c-format
+msgid "Localization"
+msgstr ""
+
+#: steps_list.pm:17
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"License"
+msgstr ""
+
+#: steps_list.pm:18
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Mouse"
+msgstr ""
+
+#: steps_list.pm:19 steps_list.pm:20
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Hard drive detection"
+msgstr ""
+
+#: steps_list.pm:21 steps_list.pm:22
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Installation class"
+msgstr ""
+
+#: steps_list.pm:23
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Keyboard"
+msgstr ""
+
+#: steps_list.pm:24
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Security"
+msgstr ""
+
+#: steps_list.pm:25
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Partitioning"
+msgstr ""
+
+#: steps_list.pm:27 steps_list.pm:28
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Formatting"
+msgstr ""
+
+#: steps_list.pm:29
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Choosing packages"
+msgstr ""
+
+#: steps_list.pm:31
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Installing"
+msgstr ""
+
+#: steps_list.pm:34
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Users"
+msgstr ""
+
+#: steps_list.pm:38 steps_list.pm:39
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Bootloader"
+msgstr ""
+
+#: steps_list.pm:40 steps_list.pm:41
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Configure X"
+msgstr ""
+
+#: steps_list.pm:42
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Summary"
+msgstr ""
+
+#: steps_list.pm:44 steps_list.pm:45
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Services"
+msgstr ""
+
+#: steps_list.pm:46
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Updates"
+msgstr ""
+
+#: steps_list.pm:48
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Exit"
+msgstr ""
diff --git a/perl-install/install/share/po/ms.po b/perl-install/install/share/po/ms.po
index 93bf65e36..4787605dd 100644
--- a/perl-install/install/share/po/ms.po
+++ b/perl-install/install/share/po/ms.po
@@ -1,156 +1,230 @@
-# DrakX Bahasa Melayu (Malay) (ms).
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# Sharuzzaman Ahmat Raslan <sharuzzaman@myrealbox.com>, 2003
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Sharuzzaman Ahmat Raslan <sharuzzaman@myrealbox.com>, 2003,2008
msgid ""
msgstr ""
-"Project-Id-Version: DrakX\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-08-31 19:08+0800\n"
-"Last-Translator: Sharuzzaman Ahmat Raslan <sharuzzaman@myrealbox.com>\n"
-"Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Malay (http://www.transifex.com/MageiaLinux/mageia/language/"
+"ms/)\n"
+"Language: ms\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
-#: any.pm:155
-#, fuzzy, c-format
-msgid "Do you have further supplementary media?"
-msgstr "Masukkan fail lain ke file semasa"
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: ../../advertising/02_IM_mageia.pl:1
#, c-format
-msgid ""
-"The following media have been found and will be used during install: %s.\n"
-"\n"
-"\n"
-"Do you have a supplementary installation medium to configure?"
+msgid "Make it yours!"
msgstr ""
-#: any.pm:166
+#: ../../advertising/03_IM_mageia.pl:1
#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
+msgid "Your choice!"
+msgstr ""
-#: any.pm:167
-#, fuzzy, c-format
-msgid "Network (HTTP)"
-msgstr "Tetapan HTTP"
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
-#: any.pm:168
-#, fuzzy, c-format
-msgid "Network (FTP)"
-msgstr "Tetapan FTP"
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
-#: any.pm:169
-#, fuzzy, c-format
-msgid "Network (NFS)"
-msgstr "Imej NFS"
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr ""
-#: any.pm:211
-#, fuzzy, c-format
-msgid "URL of the mirror?"
-msgstr "URL Autokonfigurasi:"
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr ""
-#: any.pm:217
+#: ../../advertising/08_IM_mageia.pl:1
#, c-format
-msgid "URL must start with ftp:// or http://"
+msgid "For developers!"
msgstr ""
-#: any.pm:228
+#: ../../advertising/09_IM_mageia.pl:1
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
+msgid "Thank you!"
msgstr ""
-#: any.pm:233
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr ""
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
+msgstr ""
+
+#: any.pm:162
+#, c-format
+msgid "Network (HTTP)"
+msgstr ""
+
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
msgstr ""
-#: any.pm:243
+#: any.pm:164
#, c-format
-msgid "Choose a mirror from which to get the packages"
+msgid "Network (NFS)"
msgstr ""
-#: any.pm:273
-#, fuzzy, c-format
+#: any.pm:224
+#, c-format
msgid "NFS setup"
-msgstr "Tetapan NFS"
+msgstr ""
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr ""
-#: any.pm:278
-#, fuzzy, c-format
+#: any.pm:229
+#, c-format
msgid "Hostname missing"
-msgstr "Pakej Hilang"
+msgstr ""
-#: any.pm:279
-#, fuzzy, c-format
+#: any.pm:230
+#, c-format
msgid "Directory must begin with \"/\""
-msgstr "Nama Direktori mesti dimulakan dengan slash"
+msgstr ""
-#: any.pm:283
-#, fuzzy, c-format
+#: any.pm:234
+#, c-format
msgid "Hostname of the NFS mount ?"
-msgstr "Titik lekapan NFS"
+msgstr ""
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Direktori"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr ""
-#: any.pm:341
-#, fuzzy, c-format
+#: any.pm:300
+#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
-msgstr "Ralat pada baris %d: %s"
+msgstr ""
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
+msgid "Core Release"
msgstr ""
-#: any.pm:382
-#, fuzzy, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Ralat berlaku bila mencari pakej untuk dinaiktaraf."
+#: any.pm:327
+#, c-format
+msgid "Tainted Release"
+msgstr ""
-#: any.pm:424
-#, fuzzy, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Mencari pakej untuk dinaiktaraf..."
+#: any.pm:329
+#, c-format
+msgid "Nonfree Release"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
-#, fuzzy, c-format
+#: any.pm:367
+#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
-msgstr "default Masuk"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr ""
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr ""
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr ""
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -159,467 +233,560 @@ msgid ""
"Do you really want to remove these packages?\n"
msgstr ""
-#: any.pm:1055
-#, fuzzy, c-format
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr ""
+
+#: any.pm:1283
+#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "Peranti audio berikut telah dikesan."
+msgstr ""
-#: any.pm:1057
-#, fuzzy, c-format
+#: any.pm:1285
+#, c-format
msgid "%s (previously named as %s)"
-msgstr "Format sebagai Swap?"
+msgstr ""
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Rangkaian"
-#: any.pm:1137
-#, fuzzy, c-format
+#: any.pm:1365
+#, c-format
msgid "Please choose a media"
-msgstr "Pilih jenis media"
+msgstr ""
-#: any.pm:1153
-#, fuzzy, c-format
+#: any.pm:1381
+#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "Fail Khas peranti telah wujud dalam gugusan"
+msgstr ""
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Izin ditolak"
-#: any.pm:1205
-#, fuzzy, c-format
+#: any.pm:1433
+#, c-format
msgid "Bad NFS name"
-msgstr "Nama pelayan NFS:"
+msgstr ""
-#: any.pm:1226
-#, fuzzy, c-format
+#: any.pm:1454
+#, c-format
msgid "Bad media %s"
-msgstr "Pemeriksaan Media"
+msgstr ""
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr ""
-#: any.pm:1277
-#, fuzzy, c-format
+#: any.pm:1509
+#, c-format
msgid "Screenshots will be available after install in %s"
-msgstr "dalam"
+msgstr ""
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
-msgstr "%s %s pemasangan"
+msgstr ""
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Konfigurasikan"
-#: install2.pm:165
-#, fuzzy, c-format
+#: install2.pm:220
+#, c-format
msgid "You must also format %s"
-msgstr "Anda mesti masukkan direktori."
+msgstr ""
#: interactive.pm:16
-#, fuzzy, c-format
+#, c-format
msgid ""
"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
"You can find some information about them at: %s"
-msgstr "on"
+msgstr ""
#: interactive.pm:22
-#, fuzzy, c-format
+#, c-format
msgid "Bringing up the network"
-msgstr "Menaikkan antaramuka $i: "
+msgstr ""
#: interactive.pm:27
-#, fuzzy, c-format
+#, c-format
msgid "Bringing down the network"
-msgstr "Mematikan daemon palam rangkaian: "
+msgstr ""
+
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
-#: media.pm:703 media.pm:714
-#, fuzzy, c-format
-msgid "Downloading file %s..."
-msgstr "Menyalin Fail"
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr ""
-#: media.pm:861
-#, fuzzy, c-format
+#: media.pm:797
+#, c-format
msgid "Copying in progress"
-msgstr "Segerak sedang berjalan"
+msgstr "Penyalinan sedang dilakukan"
-#: pkgs.pm:28
-#, fuzzy, c-format
+#: pkgs.pm:32
+#, c-format
msgid "must have"
-msgstr "Mesti nyatakan nilai"
+msgstr ""
-#: pkgs.pm:29
-#, fuzzy, c-format
+#: pkgs.pm:33
+#, c-format
msgid "important"
msgstr ""
-"\n"
-"******************** PENTING ************************\n"
-#: pkgs.pm:30
-#, fuzzy, c-format
+#: pkgs.pm:34
+#, c-format
msgid "very nice"
-msgstr "Sangat Tinggi"
+msgstr ""
-#: pkgs.pm:31
-#, fuzzy, c-format
+#: pkgs.pm:35
+#, c-format
msgid "nice"
-msgstr "Bantuan yang mulia"
+msgstr ""
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr ""
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Tiada keterangan"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "StesyenKerja"
+msgid "An error occurred:"
+msgstr ""
-#: share/meta-task/compssUsers.pl:13
-#, fuzzy, c-format
-msgid "Office Workstation"
-msgstr "StesyenKerja Default"
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr ""
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr ""
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
msgstr ""
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "StesyenKerja"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-#: share/meta-task/compssUsers.pl:21
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:26
+#, c-format
msgid "Game station"
-msgstr "Permainan memori"
+msgstr ""
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr ""
-#: share/meta-task/compssUsers.pl:25
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:30
+#, c-format
msgid "Multimedia station"
-msgstr "Menu multimedia"
+msgstr ""
-#: share/meta-task/compssUsers.pl:26
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:31
+#, c-format
msgid "Sound and video playing/editing programs"
-msgstr "Bunyi dan"
+msgstr ""
-#: share/meta-task/compssUsers.pl:31
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:36
+#, c-format
msgid "Internet station"
-msgstr "Internet Bergrafik"
+msgstr ""
-#: share/meta-task/compssUsers.pl:32
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:37
+#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
-msgstr "dan dan dan"
+msgstr ""
-#: share/meta-task/compssUsers.pl:37
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:42
+#, c-format
msgid "Network Computer (client)"
-msgstr "Memulakan sm-client: "
+msgstr ""
-#: share/meta-task/compssUsers.pl:38
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:43
+#, c-format
msgid "Clients for different protocols including ssh"
-msgstr "protokol"
+msgstr ""
-#: share/meta-task/compssUsers.pl:43
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:49
+#, c-format
msgid "Tools to ease the configuration of your computer"
-msgstr "Ujian"
+msgstr ""
-#: share/meta-task/compssUsers.pl:47
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:53
+#, c-format
msgid "Console Tools"
-msgstr "Alatan Pentadbiran"
+msgstr ""
-#: share/meta-task/compssUsers.pl:48
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:54
+#, c-format
msgid "Editors, shells, file tools, terminals"
-msgstr "Penyunting fail"
+msgstr ""
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Pembangunan"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
+#, c-format
msgid "C and C++ development libraries, programs and include files"
-msgstr "Pustaka dan fail selitan untuk Oaf."
+msgstr ""
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Dokumentasi"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
+#, c-format
msgid "Books and Howto's on Linux and Free Software"
-msgstr "dan on dan Bebas"
+msgstr ""
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
+#, c-format
msgid "Linux Standard Base. Third party applications support"
-msgstr "Asas"
+msgstr ""
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Pelayan Web"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Groupware"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Pelayan Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
+#, c-format
msgid "Firewall/Router"
-msgstr "_Konfigurasikan Firewall"
+msgstr ""
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
+#, c-format
msgid "Internet gateway"
-msgstr "Gateway Tidak Sah"
+msgstr ""
-#: share/meta-task/compssUsers.pl:83
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:92
+#, c-format
msgid "Mail/News"
-msgstr "Pelayan Berita"
+msgstr ""
-#: share/meta-task/compssUsers.pl:84
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:93
+#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Sistem InterNetNews (INN), pelayan berita Usenet."
+msgstr ""
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Pelayan Direktori"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "Pelayan FTP"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:108
+#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "Name=Pelayan Fail Awam"
+msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:99
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:112
+#, c-format
msgid "File and Printer Sharing Server"
-msgstr "(%ld)PELAYAN >>> %s"
+msgstr ""
-#: share/meta-task/compssUsers.pl:100
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:113
+#, c-format
msgid "NFS Server, Samba server"
-msgstr "Konfigurasi Pelayan Samba"
+msgstr ""
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Pangkalan Data"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
+msgid "PostgreSQL and MariaDB Database Server"
msgstr ""
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Mel"
-#: share/meta-task/compssUsers.pl:113
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:129
+#, c-format
msgid "Postfix mail server"
-msgstr "Pelayan Mel (SMTP)"
+msgstr ""
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
+msgid "PostgreSQL or MariaDB database server"
msgstr ""
-#: share/meta-task/compssUsers.pl:124
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:142
+#, c-format
msgid "Network Computer server"
-msgstr "Pelayan Rangkaian Lama"
+msgstr ""
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr ""
-#: share/meta-task/compssUsers.pl:131
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:150
+#, c-format
msgid "Graphical Environment"
-msgstr "Pembolehubah Persekitaran"
+msgstr ""
-#: share/meta-task/compssUsers.pl:133
-#, fuzzy, c-format
-msgid "KDE Workstation"
-msgstr "StesyenKerja Default"
+#: share/meta-task/compssUsers.pl:152
+#, c-format
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:153
+#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
-msgstr "Desktop Persekitaran asas"
+msgstr ""
-#: share/meta-task/compssUsers.pl:138
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:158
+#, c-format
msgid "GNOME Workstation"
-msgstr "StesyenKerja Default"
+msgstr ""
-#: share/meta-task/compssUsers.pl:139
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
+#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
-msgstr "A pengguna dan"
+msgstr ""
-#: share/meta-task/compssUsers.pl:142
-#, fuzzy, c-format
-msgid "IceWm Desktop"
-msgstr "Desktop Default:"
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:194
+#, c-format
msgid "Other Graphical Desktops"
-msgstr "Pada Semua Desktop"
+msgstr ""
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
+msgid "Window Maker, Fvwm, etc"
msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Utiliti"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
+#, c-format
msgid "SSH Server"
-msgstr "_Pelayan NIS:"
+msgstr ""
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:226
+#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Alatan Tetapan Pelayan NFS"
+msgstr ""
-#: share/meta-task/compssUsers.pl:182
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:230
+#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Aplet pengawas rangkaian"
+msgstr ""
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr ""
-#: share/meta-task/compssUsers.pl:187
-#, fuzzy, c-format
-msgid "Mandriva Wizards"
-msgstr "Wizard pelayan"
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr ""
-#: share/meta-task/compssUsers.pl:188
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:236
+#, c-format
msgid "Wizards to configure server"
-msgstr "Sila tetapkan pelayan PXE"
+msgstr ""
#: steps.pm:85
#, c-format
@@ -631,317 +798,367 @@ msgstr ""
"dengan baik.\n"
"Teruskan atas risiko anda."
-#: steps.pm:433
-#, fuzzy, c-format
+#: steps.pm:469
+#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
"Either your cdrom drive or your cdrom is defective.\n"
"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
"\"\n"
-msgstr "on"
+msgstr ""
#: steps_auto_install.pm:71 steps_stdio.pm:27
-#, fuzzy, c-format
+#, c-format
msgid "Entering step `%s'\n"
-msgstr "Langkah bersudut:"
+msgstr ""
#: steps_curses.pm:22
-#, fuzzy, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Arahan Pemasangan - Mandriva Linux %s"
+#, c-format
+msgid "%s Installation %s"
+msgstr ""
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr ""
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
-#, fuzzy, c-format
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
+#, c-format
msgid "Package Group Selection"
-msgstr "Pemilihan Kumpulan Pakej"
+msgstr ""
-#: steps_gtk.pm:277 steps_interactive.pm:581
-#, fuzzy, c-format
+#: steps_gtk.pm:354 steps_interactive.pm:626
+#, c-format
msgid "Individual package selection"
-msgstr "Pemilihan Pakej Satu Persatu"
+msgstr ""
-#: steps_gtk.pm:299 steps_interactive.pm:507
-#, fuzzy, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Saiz dicadangkan (MB):"
+#: steps_gtk.pm:361
+#, c-format
+msgid "Unselect All"
+msgstr ""
-#: steps_gtk.pm:344
-#, fuzzy, c-format
-msgid "Bad package"
-msgstr "Pakej Hilang"
+#: steps_gtk.pm:380 steps_interactive.pm:538
+#, c-format
+msgid "Total size: %d / %d MB"
+msgstr ""
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Versi: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Saiz: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr ""
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr ""
-#: steps_gtk.pm:386
-#, fuzzy, c-format
+#: steps_gtk.pm:466
+#, c-format
msgid "due to missing %s"
msgstr "kerana kehilangan %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "kerana ketidakpuasan %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "cuba untuk menaikkan %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "untuk menyimpan %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
-#: steps_gtk.pm:397
-#, fuzzy, c-format
+#: steps_gtk.pm:477
+#, c-format
msgid "The following packages are going to be installed"
msgstr ""
-"Untuk memenuhi kebergantungan, %d pakej berikut perlu dipasang:\n"
-"%s\n"
-#: steps_gtk.pm:398
-#, fuzzy, c-format
+#: steps_gtk.pm:478
+#, c-format
msgid "The following packages are going to be removed"
msgstr ""
-"Untuk memenuhi kebergantungan, %d pakej berikut perlu dipasang:\n"
-"%s\n"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr ""
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr ""
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr ""
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr ""
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Pasang"
-#: steps_gtk.pm:436
-#, fuzzy, c-format
+#: steps_gtk.pm:519
+#, c-format
msgid "Load/Save selection"
-msgstr "/Simpan/Muat pra-tetap auto"
+msgstr ""
-#: steps_gtk.pm:437
-#, fuzzy, c-format
+#: steps_gtk.pm:520 steps_gtk.pm:525
+#, c-format
msgid "Updating package selection"
-msgstr "Pemilihan Pakej Satu Persatu"
+msgstr ""
+
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
-#: steps_gtk.pm:442
-#, fuzzy, c-format
+#: steps_gtk.pm:530
+#, c-format
msgid "Minimal install"
-msgstr "Tetingkap Pemasangan"
+msgstr ""
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Pengurusan Perisian"
-#: steps_gtk.pm:456 steps_interactive.pm:393
-#, fuzzy, c-format
+#: steps_gtk.pm:543 steps_interactive.pm:415
+#, c-format
msgid "Choose the packages you want to install"
-msgstr "Pilih alatan yang anda hendak guna"
+msgstr ""
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Memasang"
-#: steps_gtk.pm:499
-#, fuzzy, c-format
+#: steps_gtk.pm:590
+#, c-format
msgid "No details"
-msgstr "Perincian bagi '%s'"
+msgstr ""
-#: steps_gtk.pm:514
-#, fuzzy, c-format
-msgid "Time remaining "
-msgstr "/Masa yang Tinggal"
+#: steps_gtk.pm:610
+#, c-format
+msgid "Time remaining:"
+msgstr ""
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
+msgid "(estimating...)"
msgstr ""
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "Pakej"
-msgstr[1] " Pakej"
+msgstr[0] ""
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Ringkasan"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Buat konfigurasi"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
-#, fuzzy, c-format
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
+#, c-format
msgid "not configured"
-msgstr "Firewall tidak dikonfigurasikan."
+msgstr ""
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-#: steps_gtk.pm:669 steps_interactive.pm:286
-#, fuzzy, c-format
+#: steps_gtk.pm:791 steps_interactive.pm:323
+#, c-format
msgid "Copy whole CDs"
-msgstr "Tulis CD/DVD"
+msgstr ""
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Ralat telah berlaku"
-#: steps_interactive.pm:97
-#, fuzzy, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Sila pilih jenis logmasuk anda:"
+#: steps_interactive.pm:105
+#, c-format
+msgid "Please choose your keyboard layout"
+msgstr ""
-#: steps_interactive.pm:99
-#, fuzzy, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "penuh"
+#: steps_interactive.pm:109
+#, c-format
+msgid "Here is the full list of available keyboards:"
+msgstr ""
-#: steps_interactive.pm:129
-#, fuzzy, c-format
+#: steps_interactive.pm:153
+#, c-format
msgid "Install/Upgrade"
-msgstr "Pemeriksaan Naiktaraf"
+msgstr ""
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr ""
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Pasang"
-#: steps_interactive.pm:136
-#, fuzzy, c-format
+#: steps_interactive.pm:161
+#, c-format
msgid "Upgrade %s"
-msgstr "Naiktaraf"
+msgstr ""
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
+msgid "Encryption key for %s"
msgstr ""
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
+msgid "Cancel installation, reboot system"
msgstr ""
-#: steps_interactive.pm:158
-#, fuzzy, c-format
-msgid "Encryption key for %s"
-msgstr "tiada kekunci ditakrifkan untuk `%s'"
-
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "New Installation"
+msgstr ""
-#: steps_interactive.pm:194
-#, fuzzy, c-format
-msgid "Configuring IDE"
-msgstr "Pengawal IDE"
+#: steps_interactive.pm:219
+#, c-format
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
-#: steps_interactive.pm:231
-#, fuzzy, c-format
+#: steps_interactive.pm:223
+#, c-format
msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr "Tidak Install dalam"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
-#: steps_interactive.pm:236
-#, fuzzy, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
-msgstr "Tidak Install dalam"
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr ""
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr ""
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -950,158 +1167,197 @@ msgid ""
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
-#: steps_interactive.pm:350
-#, fuzzy, c-format
+#: steps_interactive.pm:372 steps_interactive.pm:490
+#, c-format
msgid "Looking for available packages..."
msgstr ""
-"Tiada penerangan didapati untuk %s.\n"
-"\n"
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-#: steps_interactive.pm:405
-#, fuzzy, c-format
+#: steps_interactive.pm:428
+#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
-msgstr "on."
+msgstr ""
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Muatan"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Simpan"
-#: steps_interactive.pm:415
-#, fuzzy, c-format
+#: steps_interactive.pm:438
+#, c-format
msgid "Bad file"
-msgstr "Saiz fail stats tidak betul.\n"
+msgstr ""
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Tetingkap Pemasangan"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr ""
-#: steps_interactive.pm:536
-#, fuzzy, c-format
+#: steps_interactive.pm:576
+#, c-format
msgid "Type of install"
-msgstr "Tetingkap Pemasangan"
+msgstr ""
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
-#: steps_interactive.pm:540
-#, fuzzy, c-format
+#: steps_interactive.pm:582
+#, c-format
msgid "With X"
-msgstr "%s dengan %s"
+msgstr ""
+
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
-#: steps_interactive.pm:541
-#, fuzzy, c-format
+#: steps_interactive.pm:584
+#, c-format
msgid "With basic documentation (recommended!)"
-msgstr "asas"
+msgstr ""
-#: steps_interactive.pm:542
-#, fuzzy, c-format
+#: steps_interactive.pm:585
+#, c-format
msgid "Truly minimal install (especially no urpmi)"
-msgstr "tidak"
+msgstr ""
+
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
-#: steps_interactive.pm:596
-#, fuzzy, c-format
+#: steps_interactive.pm:647
+#, c-format
msgid "Preparing installation"
-msgstr "Jenis Pemasangan"
+msgstr ""
-#: steps_interactive.pm:604
-#, fuzzy, c-format
+#: steps_interactive.pm:655
+#, c-format
msgid "Installing package %s"
-msgstr "Install pakej `%s' (%s/%s)..."
+msgstr "Memasang pakej %s"
-#: steps_interactive.pm:628
-#, fuzzy, c-format
+#: steps_interactive.pm:679
+#, c-format
msgid "There was an error ordering packages:"
-msgstr ""
-"Tedapat ralat memasang pakej.\n"
-"\n"
-"Keluar."
+msgstr "Tedapat ralat menyusun pakej:"
-#: steps_interactive.pm:628
-#, fuzzy, c-format
+#: steps_interactive.pm:679
+#, c-format
msgid "Go on anyway?"
-msgstr "%s %s pemasangan pada hos %s"
+msgstr "Teruskan juga?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "Ulangcuba"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr "Langkau pakej ini"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr "Langkau semua pakej dari media \"%s\""
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
msgstr "Kembali ke pemilihan pakej dan media"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
msgstr "Tedapat ralat memasang pakej %s."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Tetapan pasca pemasangan"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Kemaskini"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr ""
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Gagal apabila menambah media"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1123,145 +1379,97 @@ msgstr ""
"\n"
"Adakah anda mahu memasang kemaskini tersebut?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr ""
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Tidak boleh menghubungi mirror %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s pada %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Perkakasan"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Kad bunyi"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr ""
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "Tiada kad bunyi dikesan. Cuba \"harddrake\" selepas pemasangan."
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Antaramuka Bergrafik"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Rangkaian & Internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Proksi"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "ditetapkan"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Tahap Keselamatan"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Firewall"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr ""
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "dimatikan"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr ""
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "Menyediakan pemuatboot..."
-
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Preparing initial startup program..."
msgstr ""
-"Anda kelihatan mempunyai mesin lama atau yang tidak diketahui, pemuat boot "
-"yaboot tidak akan berfungsi untuk anda. Pemasangan akan diteruskan, tetapi "
-"anda perlu menggunakan BootX atau sebarang cara lain untuk memboot mesin "
-"anda. Hujah kernel untuk sistemfail root adalah: root=%s"
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Anda hendak menggunakan aboot?"
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
+msgid "Be patient, this may take a while..."
msgstr ""
-"Ralat memasang aboot, \n"
-"cuba untuk memaksa pemasangan walaupun jika ia memusnahkan partisyen pertama?"
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Masukkan cakera liut kosong dalam pemacu %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Mencipta cakera liut auto pasang..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1269,51 +1477,16 @@ msgid ""
"Do you really want to quit now?"
msgstr ""
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Tahniah"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Boot semula"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Jana cakera liut auto pasang"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Auto pasang boleh dijadikan automatik sepenuhnya jika mahu,\n"
-"dalam keadaan tersebut ia akan mengambilalih pemacu keras!!\n"
-"(ia dimaksudkan untuk memasang pada komputer lain).\n"
-"\n"
-"Anda mungkin mahu untuk mengulang semula pemasangan.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Main semula"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr ""
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Simpan pilihan pakej"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1404,13 +1577,6 @@ msgid ""
"Users"
msgstr "Pengguna"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Rangkaian"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1452,9 +1618,3 @@ msgid ""
"_: Keep these entry short\n"
"Exit"
msgstr "Keluar"
-
-#~ msgid "All"
-#~ msgstr "Semua"
-
-#~ msgid "TV card"
-#~ msgstr "Kad TV"
diff --git a/perl-install/install/share/po/mt.po b/perl-install/install/share/po/mt.po
index 765caa79d..8229642f3 100644
--- a/perl-install/install/share/po/mt.po
+++ b/perl-install/install/share/po/mt.po
@@ -1,173 +1,232 @@
-# translation of mt.po to Maltese
-# translation of DrakX-mt.po to Maltese
-# Copyright (C) 2002,2003, 2004 Free Software Foundation, Inc.
-# Ramon Casha <ramon.casha@linux.org.mt>, 2002,2003, 2004.
-# Ramon Casha <rcasha@waldonet.net.mt>, 2003.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Ramon Casha <ramon.casha@linux.org.mt>, 2002-2004
+# Ramon Casha <rcasha@waldonet.net.mt>, 2003
msgid ""
msgstr ""
-"Project-Id-Version: mt\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2004-10-04 18:45+0200\n"
-"Last-Translator: Ramon Casha <ramon.casha@linux.org.mt>\n"
-"Language-Team: Maltese <mt@li.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Maltese (http://www.transifex.com/MageiaLinux/mageia/language/"
+"mt/)\n"
+"Language: mt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3.1\n"
+"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n==0 || ( n%100>1 && n"
+"%100<11) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3);\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
#, c-format
-msgid "Do you have further supplementary media?"
-msgstr "Għandek iżjed sorsi supplimentari?"
+msgid "Join Us!"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: ../../advertising/02_IM_mageia.pl:1
#, c-format
-msgid ""
-"The following media have been found and will be used during install: %s.\n"
-"\n"
-"\n"
-"Do you have a supplementary installation medium to configure?"
+msgid "Make it yours!"
msgstr ""
-#: any.pm:166
+#: ../../advertising/03_IM_mageia.pl:1
#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
+msgid "Your choice!"
+msgstr ""
-#: any.pm:167
+#: ../../advertising/04_IM_mageia.pl:1
#, c-format
-msgid "Network (HTTP)"
-msgstr "Network (HTTP)"
+msgid "Office tools"
+msgstr ""
-#: any.pm:168
+#: ../../advertising/05_IM_mageia.pl:1
#, c-format
-msgid "Network (FTP)"
-msgstr "Network (FTP)"
+msgid "Home entertainment"
+msgstr ""
-#: any.pm:169
+#: ../../advertising/06_IM_mageia.pl:1
#, c-format
-msgid "Network (NFS)"
+msgid "For kids"
msgstr ""
-#: any.pm:211
+#: ../../advertising/07_IM_mageia.pl:1
#, c-format
-msgid "URL of the mirror?"
-msgstr "URL tal-mera?"
+msgid "For family!"
+msgstr ""
-#: any.pm:217
+#: ../../advertising/08_IM_mageia.pl:1
#, c-format
-msgid "URL must start with ftp:// or http://"
+msgid "For developers!"
msgstr ""
-#: any.pm:228
+#: ../../advertising/09_IM_mageia.pl:1
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
+msgid "Thank you!"
msgstr ""
-"Qed nikkuntattja l-website ta' Mandriva Linux biex nikseb lista tal-mirja "
-"disponibbli"
-#: any.pm:233
-#, fuzzy, c-format
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr "Għandek iżjed sorsi supplimentari?"
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
+#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
msgstr ""
-"Qed nikkuntattja l-website ta' Mandriva Linux biex nikseb lista tal-mirja "
-"disponibbli"
-#: any.pm:243
+#: any.pm:162
+#, c-format
+msgid "Network (HTTP)"
+msgstr "Network (HTTP)"
+
+#: any.pm:163
#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Agħżel mera minn fejn trid iġġib il-pakketti"
+msgid "Network (FTP)"
+msgstr "Network (FTP)"
-#: any.pm:273
+#: any.pm:164
+#, c-format
+msgid "Network (NFS)"
+msgstr ""
+
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr ""
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr ""
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr ""
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr ""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr ""
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Direttorju"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr ""
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
msgstr "Ma nistax insib fajl hdlist fuq din il-mera"
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Qed naqra l-pakketti diġà nstallati..."
+msgid "Core Release"
+msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
+msgid "Tainted Release"
msgstr ""
-#: any.pm:424
+#: any.pm:329
+#, c-format
+msgid "Nonfree Release"
+msgstr ""
+
+#: any.pm:367
+#, c-format
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Qed naqra l-pakketti diġà nstallati..."
+
+#: any.pm:593
#, c-format
msgid "Finding packages to upgrade..."
msgstr "Qed insib pakketti x'naġġorna"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:612
#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+msgid "Removing packages prior to upgrade..."
msgstr ""
-"Int għażilt dan is-server/s: %s\n"
-"\n"
-"\n"
-"Dawn is-servers huma attivati impliċitament. M'għandhom ebda problemi ta'\n"
-"sigurtà magħrufa, imma jistgħu jinstabu ġodda minn żmien għal żmien. "
-"Għalhekk,\n"
-"importanti li żżommhom aġġornati.\n"
-"\n"
-"\n"
-"Żgur li trid tinstalla dawn is-servers?\n"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -180,82 +239,87 @@ msgstr ""
"\n"
"Żgur li trid tneħħi dawn il-pakketti?\n"
-#: any.pm:1055
-#, fuzzy, c-format
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Problema fil-qari tal-fajl %s"
+
+#: any.pm:1283
+#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "- %s tneħħa\n"
+msgstr ""
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr ""
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr ""
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
-#, fuzzy, c-format
+#: any.pm:1342
+#, c-format
msgid "NFS"
-msgstr "PFS"
+msgstr ""
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Network"
-#: any.pm:1137
-#, fuzzy, c-format
+#: any.pm:1365
+#, c-format
msgid "Please choose a media"
-msgstr "Jekk jogħġbok agħżel wieħed"
+msgstr ""
-#: any.pm:1153
-#, fuzzy, c-format
+#: any.pm:1381
+#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "Fajl diġà jeżisti. Tuża lilu?"
+msgstr ""
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Permess miċħud"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr ""
-#: any.pm:1226
-#, fuzzy, c-format
+#: any.pm:1454
+#, c-format
msgid "Bad media %s"
-msgstr "ġie miżjud is-sors %s"
+msgstr ""
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Ma nistax nieħu ritratti tal-iskrin qabel toħloq il-partizzjonijiet"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Ir-ritratti jkunu disponibbli wara l-installazzjoni f' %s"
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
-msgstr "Qed ninstalla"
+msgstr ""
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Konfigurazzjoni"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Trid ukoll tifformattja %s"
@@ -279,107 +343,143 @@ msgstr "Qed intella' n-network"
msgid "Bringing down the network"
msgstr "Qed inniżżel in-network"
-#: media.pm:703 media.pm:714
-#, fuzzy, c-format
-msgid "Downloading file %s..."
-msgstr "Qed nibgħat fajls..."
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
+
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr ""
-#: media.pm:861
-#, fuzzy, c-format
+#: media.pm:797
+#, c-format
msgid "Copying in progress"
-msgstr "Għaddej l-għarfien"
+msgstr ""
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "neċessarju"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "importanti"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "tajjeb ħafna"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "tajjeb"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "forsi"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr ""
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "Workstation"
+msgid "An error occurred:"
+msgstr ""
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Kompjuter tal-Uffiċċju"
+msgid "A fatal error occurred: %s."
+msgstr "Inqalgħet problema fatali: %s."
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d tranżazzjonijiet ta' installazzjoni fallew"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
msgstr ""
-"Programmi tal-uffiċċju: wordprocessors (OpenOffice.org Writer, Kword), "
-"spreadsheet (OpenOffice.org Calc, Kspread) eċċ"
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "Workstation"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Kompjuter tal-Uffiċċju"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Programmi tal-uffiċċju: wordprocessors (kword, abiword), spreadsheet "
-"(kspread, gnumeric) eċċ"
+"Programmi tal-uffiċċju: wordprocessors (LibreOffice Writer, Kword), "
+"spreadsheet (LibreOffice Calc, Kspread) eċċ"
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Logħob"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Programmi ta' divertiment: logħob tal-arcaDES, karti, strateġija eċċ"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Multimedja"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Programmi għad-daqq u editjar ta' awdjo u video"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Internet"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
@@ -387,193 +487,193 @@ msgid ""
msgstr ""
"Sett għodda biex taqra u tibgħat imejl u \"news\", u biex tibbrawżja l-web"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Kompjuter fuq network (klijent)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Klijenti għal protokolli differenti, eż. SSH"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Għodda biex tiffaċilita l-konfigurazzjoni tal-kompjuter"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Għodda tal-konsol"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Edituri, shells, għodda tal-fajls, terminals"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Żviluppar"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "Libreriji, programmi u fajls għal żviluppar C u C++"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Dokumentazzjoni"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Kotba u \"HOWTO\" dwar il-Linux u Softwer Ħieles"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Linux Standard Base. Sapport ta' programmi ta' terzi partiti"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Server tal-web"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:84
+#, c-format
msgid "Groupware"
-msgstr "Grupp"
+msgstr ""
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Server Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Firewall/Router"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Gateway tal-internet"
-#: share/meta-task/compssUsers.pl:83
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:92
+#, c-format
msgid "Mail/News"
-msgstr "/File/_Ġdid"
+msgstr ""
-#: share/meta-task/compssUsers.pl:84
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:93
+#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Server tal-imejl Postfix"
+msgstr ""
-#: share/meta-task/compssUsers.pl:87
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:97
+#, c-format
msgid "Directory Server"
-msgstr "Direttorju minn fejn trid tirrestawra"
+msgstr ""
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "Server FTP"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr ""
-#: share/meta-task/compssUsers.pl:95
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:107
+#, c-format
msgid "DNS/NIS"
-msgstr "DNS"
+msgstr ""
-#: share/meta-task/compssUsers.pl:96
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:108
+#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "Server tal-ismijiet tad-dominji"
+msgstr ""
-#: share/meta-task/compssUsers.pl:99
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:112
+#, c-format
msgid "File and Printer Sharing Server"
-msgstr "Server tal-printer"
+msgstr ""
-#: share/meta-task/compssUsers.pl:100
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:113
+#, c-format
msgid "NFS Server, Samba server"
-msgstr "Server Samba"
+msgstr ""
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Database"
-#: share/meta-task/compssUsers.pl:104
-#, fuzzy, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "Server tad-database PostgreSQL jew MySQL"
+#: share/meta-task/compssUsers.pl:118
+#, c-format
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr ""
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Imejl"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Server tal-imejl Postfix"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "Server tad-database PostgreSQL jew MySQL"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "Server tad-database PostgreSQL jew MariaDB"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Kompjuter Server tan-Network"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "Servers NFS, SMB, Proxy, ssh"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Ambjent Grafiku"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "Stazzjon KDE"
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -582,72 +682,124 @@ msgstr ""
"K Desktop Environment, l-interfaċċja grafika bażi, b'għażla ta' għodda "
"jakkumpanjawha"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "Stazzjon GNOME"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr "Ambjent grafiku b' għażla ta' programmi u għodda faċli"
-#: share/meta-task/compssUsers.pl:142
-#, fuzzy, c-format
-msgid "IceWm Desktop"
-msgstr "Desktop"
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Desktops Grafiċi Oħrajn"
-#: share/meta-task/compssUsers.pl:147
-#, fuzzy, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm, eċċ"
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
-#: share/meta-task/compssUsers.pl:170
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:218
+#, c-format
msgid "Utilities"
-msgstr "Filippini"
+msgstr ""
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "Server SSH"
-#: share/meta-task/compssUsers.pl:177
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:225
+#, c-format
msgid "Webmin"
-msgstr "Webcam"
+msgstr ""
-#: share/meta-task/compssUsers.pl:178
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:226
+#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Konfigurazzjoni tat-Terminal Server"
+msgstr ""
-#: share/meta-task/compssUsers.pl:182
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:230
+#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Monitoraġġ tan-network"
+msgstr ""
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr ""
-#: share/meta-task/compssUsers.pl:187
-#, fuzzy, c-format
-msgid "Mandriva Wizards"
-msgstr "<b>Prodotti Mandriva</b>"
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr ""
-#: share/meta-task/compssUsers.pl:188
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:236
+#, c-format
msgid "Wizards to configure server"
-msgstr "Ma stajtx nikkonfigura l-printer \"%s\"!"
+msgstr ""
#: steps.pm:85
#, c-format
@@ -658,7 +810,7 @@ msgstr ""
"Inqalgħet problema, imma ma nafx kif nieħu ħsieba sew.\n"
"Tista' tkompli b'riskju tiegħek"
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -678,204 +830,258 @@ msgstr "Dieħel fil-pass \"%s\"\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Installazzjoni Mandriva Linux %s"
+msgid "%s Installation %s"
+msgstr "Installazzjoni %s %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> bejn l-elementi"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
"Is-sistema hija nieqsa mir-riżorsi. Jista' jkollok problema biex tinstalla \n"
-"l-Mandriva Linux. Jekk jiġri dan, ipprova installazzjoni testwali. Għal "
-"dan,\n"
+"l-%s. Jekk jiġri dan, ipprova installazzjoni testwali. Għal dan,\n"
"agħfas F1 meta titla' s-CD, imbagħad ittajpja \"text\"."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Għażla ta' gruppi ta' pakketti"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Agħżel pakketti individwalment"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Daqs totali: %d / %d MB"
+msgid "Unselect All"
+msgstr "Xejn magħżul"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Pakkett ħażin"
+msgid "Total size: %d / %d MB"
+msgstr "Daqs totali: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Verżjoni: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Daqs: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Importanza: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Ma tistax tagħżel/tneħħi dan il-pakkett"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "minħabba %s nieqes"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "minħabba %s mhux sodisfatt"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "qed nipprova nippromwovi %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "sabiex inżomm %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"Ma tistax tagħżel dan il-pakkett għax ma fadalx biżżejjed spazju għalih"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Dawn huma l-pakketti li se jiġu nstallati"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Dawn huma l-pakketti li se jiġu mneħħija"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Dan il-pakkett huwa kruċjali, ma jistax jitneħħa"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Ma tistax tneħħi l-għażla minn dan il-pakkett, diġà nstallat."
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Ma tistax tneħħi l-għażla minn dan il-pakkett. Irid jiġi aġġornat."
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Uri l-pakketti magħżula awtomatikament"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Installa"
-#: steps_gtk.pm:436
-#, fuzzy, c-format
+#: steps_gtk.pm:519
+#, c-format
msgid "Load/Save selection"
-msgstr "Għażla ta' pakketti"
+msgstr ""
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Qed naġġorna l-għażla ta' pakketti"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Installazzjoni minima"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Maniġġjar ta' softwer"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Agħżel il-pakketti li trid tinstalla"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Qed ninstalla"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Ebda dettalji"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Ħin li fadal "
+msgid "Time remaining:"
+msgstr ""
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Qed nieħu stima"
+msgid "(estimating...)"
+msgstr ""
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d pakketti"
-msgstr[1] "%d pakketti"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Sommarju"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Ikkonfigura"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "mhux konfigurat"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
@@ -884,102 +1090,100 @@ msgstr ""
"Dawn is-sorsi ta' installazzjoni instabu.\n"
"Jekk trid taqbeż uħud minnhom, tista' tneħħi l-marka issa."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr ""
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Inqalgħet problema"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Jekk jogħġbok agħżel tqassim tat-tastiera."
+msgid "Please choose your keyboard layout"
+msgstr "Jekk jogħġbok agħżel tqassim tat-tastiera"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Din hi lista sħiħa tat-tastieri disponibbli"
+msgid "Here is the full list of available keyboards:"
+msgstr ""
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Installa/Aġġorna"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Din hija installazzjoni ġdida jew aġġornament?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Installa"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Aġġorna %s"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
+msgid "Encryption key for %s"
+msgstr "Ċifrarju għal %s"
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
+msgid "Cancel installation, reboot system"
msgstr ""
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
-msgstr "Ċifrarju għal %s"
+msgid "New Installation"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
-msgstr "Qed nikkonfigura IDE"
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+msgid "CD/DVD"
msgstr ""
-"M'hemmx spazju għal bootstrap ta' 1MB. L-installazzjoni se tkompli, imma "
-"biex tħaddem is-sistema trid toħloq partizzjoni bootstrap f' Diskdrake."
-#: steps_interactive.pm:236
-#, fuzzy, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
msgstr ""
-"M'hemmx spazju għal bootstrap ta' 1MB. L-installazzjoni se tkompli, imma "
-"biex tħaddem is-sistema trid toħloq partizzjoni bootstrap f' Diskdrake."
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -994,73 +1198,71 @@ msgstr ""
"Jekk m'għandekx din id-diska, agħfas \"Ikkanċella\" biex taqbeż il-pakketti "
"li qegħdin fuqha."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Qed insib pakketti disponibbli"
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-#: steps_interactive.pm:405
-#, fuzzy, c-format
+#: steps_interactive.pm:428
+#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-"Jekk jogħġbok agħżel \"ikteb\" jew \"aqra\" l-għażla tal-pakketti fuq\n"
-"flopi. Il-format huwa l-istess bħal diski flopi ġenerati bl-auto_install."
-#: steps_interactive.pm:407
-#, fuzzy, c-format
+#: steps_interactive.pm:430
+#, c-format
msgid "Load"
-msgstr "XLoad"
+msgstr ""
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Ikteb"
-#: steps_interactive.pm:415
-#, fuzzy, c-format
+#: steps_interactive.pm:438
+#, c-format
msgid "Bad file"
-msgstr "fajl veru"
+msgstr ""
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Installazzjoni minima"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Id-daqs tal-għażla huwa ikbar mill-ispazju disponibbli"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Tip ta' installazzjoni"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1069,82 +1271,126 @@ msgstr ""
"Għadek m'għażilt ebda grupp ta' pakketti\n"
"Jekk jogħġbok agħżel installazzjoni minima li trid:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Bl-XWindows"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "B' dokumentazzjoni bażika (rakkomandat)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Installazzjoni verament minima (mingħajr urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Qed nipprepara l-installazzjoni"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Qed jinstalla il-pakkett %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Kien hemm problema fl-ordni tal-pakketti:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Trid tkompli xorta?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr ""
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr ""
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr ""
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "Ikteb l-għażla ta' pakketti"
+msgstr ""
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "Kien hemm problema fl-installazzjoni tal-pakketti:"
+msgstr ""
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Konfigurazzjoni ta' wara l-installazzjoni"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Aġġornamenti"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Dawn huma l-pakketti li se jiġu nstallati"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Problema waqt iż-żieda ta' sors"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1167,132 +1413,80 @@ msgstr ""
"\n"
"Trid tinstalla dawn l-aġġornamenti?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Qed nikkuntattja l-mera biex nikseb lista tal-pakketti disponibbli"
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Ma stajtx nikkuntattja l-mera %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s fuq %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Ħardwer"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Kard awdjo"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Għandek kard tal-awdjo ISA?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Ħaddem \"alsaconf\" jew \"sndconfig\" wara l-installazzjoni biex "
-"tikkonfigura l-kard awdjo."
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Ebda kard tal-awdjo ma nstabet. Ipprova ħaddem \"harddrake\" wara l-"
-"installazzjoni"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Interfaċċja grafika"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Network u internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Proxies"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "konfigurat"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Livell ta' sigurtà"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Firewallr"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "attivat"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "mitfi"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "Għadek ma kkonfigurajtx X. Żgur trid hekk?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "Qed nipprepara l-bootloader"
-
-#: steps_interactive.pm:1018
-#, fuzzy, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Preparing initial startup program..."
msgstr ""
-"Jidher li għandek magna \"OldWorld\" jew mhux \n"
-"magħrufa. Il-bootloader \"yaboot\" m'hux se jaħdem fuqha. \n"
-"L-installazzjoni se tkompli, imma trid tuża BootX biex \n"
-"ittella' l-Linux."
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Trid tuża \"aboot\"?"
-
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
+msgid "Be patient, this may take a while..."
msgstr ""
-"Problema fl-installazzjoni ta' aboot.\n"
-"trid tipprova timponi l-installazzjoni anke jekk tħassar l-ewwel partizzjoni?"
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
@@ -1301,17 +1495,17 @@ msgstr ""
"F'dan il-livell ta' sigurtà, l-aċċess għall-fajls fuq il-partizzjoni tal-"
"Windows huwa ristrett għall-amministratur."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Daħħal flopi vojta fid-drajv %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Qed jinħoloq flopi awto-installazzjoni"
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1322,51 +1516,16 @@ msgstr ""
"\n"
"Trid toħroġ issa?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Prosit"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Irributja"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Oħloq flopi awto-installa"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"L-awto-installazzjoni tista' tkun totalment awtomatizzata\n"
-"jekk trid. F'dak il-każ tieħu l-ħard disk kollu!!\n"
-"(dan huwa ntenzjonat għal installazzjoni fuq kompjuter ġdid)\n"
-"\n"
-"Forsi tippreferi tuża \"replay\" tal-installazzjoni.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Replay"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Awtomatizzata"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Ikteb l-għażla ta' pakketti"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1457,13 +1616,6 @@ msgid ""
"Users"
msgstr "Users"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Networking"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1506,64 +1658,15 @@ msgid ""
"Exit"
msgstr "Oħroġ"
-#~ msgid "All"
-#~ msgstr "Kollha"
-
-#~ msgid "TV card"
-#~ msgstr "Kard TV"
-
-#~ msgid "Boot"
-#~ msgstr "Boot"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Awtentikazzjoni"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "%d pakketti"
-#~ msgstr[1] "%d pakketti"
-
-#~ msgid "%d packages"
-#~ msgstr "%d pakketti"
-
-#~ msgid "Language"
-#~ msgstr "Agħżel il-lingwa"
-
-#~ msgid "License"
-#~ msgstr "Liċenzja"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "Agħżel klassi ta' installazzjoni"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "Qed nieħu stima"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "Agħżel pakketti biex tinstalla"
-
-#~ msgid "Users"
-#~ msgstr "Users"
-
-#~ msgid "Networking"
-#~ msgstr "Networking"
-
-#~ msgid "Configure X"
-#~ msgstr "Ikkonfigura X"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "URL tal-mera?"
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
#~ msgstr ""
-#~ "Ma nistax naċċessa moduli tal-kernel li jikkorrispondu għall-kernel (fajl "
-#~ "%s nieqes). Dan normalment ifisser li l-flopi mhuwiex sinkronizzat mal- "
-#~ "installazzjoni. Jekk jogħġbok oħloq flopi ġdida biex tistartja fuqha."
+#~ "Qed nikkuntattja l-website ta' %s biex nikseb lista tal-mirja disponibbli"
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Agħżel mera minn fejn trid iġġib il-pakketti"
diff --git a/perl-install/install/share/po/nb.po b/perl-install/install/share/po/nb.po
index 0dbee0001..0e7f62aa2 100644
--- a/perl-install/install/share/po/nb.po
+++ b/perl-install/install/share/po/nb.po
@@ -1,41 +1,94 @@
-# translation of nb.po to
-# translation of DrakX-nb.po to
-# KTranslator Generated File
-# Translation file of Mandriva Linux graphic install
-# Copyright (C) 1999 Mandriva
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
-# Terje Bjerkelia <terje@bjerkelia.com>, 1999-2000.
-# Andreas Bergstrøm <abergstr@halden.net>, 2000.
-# Kenneth Rørvik <kenneth@argon.no-ip.com>, 2003.
-# Per Øyvind Karlsen <peroyvind@sintrax.net>, 2003, 2004.
-# Keld Simonsen <keld@dkuug.dk>, 2004.
-# Per Øyvind Karlsen <peroyvind@mandrivalinux.org>, 2004, 2005.
-# Eskild Hustvedt <eskild@goldenfiles.com>, 2004.
-# Eskild Hustvedt <zerodogg@skolelinux.no>, 2004, 2005.
-# Per Øyvind Karlsen <pkarlsen@mandriva.com>, 2005, 2006.
-# Marius Laache <blakern_@hotmail.com>, 2007.
-# Per Øyvind Karlsen <peroyvind@mandriva.org>, 2007.
+# Translators:
+# Andreas Bergstrøm <abergstr@halden.net>, 2000
+# Eskild Hustvedt <eskild@goldenfiles.com>, 2004
+# Eskild Hustvedt <zerodogg@skolelinux.no>, 2004-2005
+# Karl Morten Ramberg <karl.m.ramberg@gmail.com>, 2017-2020,2022
+# Keld Simonsen <keld@dkuug.dk>, 2004,2007
+# Kenneth Rørvik <kenneth@argon.no-ip.com>, 2003
+# Marius Laache <blakern_@hotmail.com>, 2007
+# Olav Dahlum <odahlum@gmail.com>, 2009-2010
+# Per Øyvind Karlsen <peroyvind@mandrivalinux.org>, 2004-2005
+# Per Øyvind Karlsen <peroyvind@mandriva.org>, 2007
+# Per Øyvind Karlsen <peroyvind@sintrax.net>, 2003-2004
+# Per Øyvind Karlsen <pkarlsen@mandriva.com>, 2005-2006
+# Stig-Ørjan Smelror <smelror@gmail.com>, 2017
msgid ""
msgstr ""
-"Project-Id-Version: nb\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-09-14 14:50+0200\n"
-"Last-Translator: Per Øyvind Karlsen <peroyvind@mandriva.org>\n"
-"Language-Team: <nb@li.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2013-04-04 13:31+0000\n"
+"Last-Translator: Karl Morten Ramberg <karl.m.ramberg@gmail.com>, "
+"2017-2020,2022\n"
+"Language-Team: Norwegian Bokmål (http://app.transifex.com/MageiaLinux/mageia/"
+"language/nb/)\n"
+"Language: nb\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Bli med oss!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Gjør det ditt!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "Ditt valg!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Kontorverktøy"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Hjemmeunderholdning"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "For barn"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "For familier"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "For utviklere"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Takk!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Vær fri!"
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
msgstr "Har du flere ekstra medier?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -48,94 +101,57 @@ msgstr ""
"\n"
"Har du flere installasjonsmedier å sette opp?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Nettverk (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Nettverk (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Nettverk (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "Nettadresse til speilet?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "URL må starte med ftp:// eller http://"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Kontakter Mandriva Linux-nettstedet for å få listen over tilgjengelige "
-"speil..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Klarte ikke å kontakte Mandriva Linux-nettstedet for å få listen over "
-"tilgjengelige speil"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Velg et speil som pakkene kan hentes fra"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "NFS-oppsett"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
-msgstr "Tast inn vertsnavn og katalog til ditt NFS-medie"
+msgstr "Tast inn vertsnavnet og mappen til ditt NFS-medie"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr "Vertsnavn mangler"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "Mappenavnet må starte med \"/\""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "Vertsnavn til NFS-monteringen ?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
-msgstr "Katalog"
+msgstr "Mappe"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "Ekstra"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
@@ -144,47 +160,98 @@ msgstr ""
"Kan ikke finne pakkelistefil på dette speilet. Kontrollér at adressen er "
"riktig."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Ser på pakker som allerede er installert..."
+msgid "Core Release"
+msgstr "Kjerneutgivelse"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Fjerner pakker før oppgradering..."
+msgid "Tainted Release"
+msgstr "Smittetutgivelse"
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Finner pakker som skal oppgraderes..."
+msgid "Nonfree Release"
+msgstr "Ikke-friutgivelse"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"Du har valgt følgende tjener(e): %s\n"
-"\n"
-"\n"
-"Disse tjenerene er aktivert som standard. De har ingen kjente sikkerhets\n"
-"problemer, men noen nye kan bli funnet. I så tilfelle må du oppgradere\n"
-"så snart som mulig.\n"
-"\n"
-"\n"
-"Ønsker du virkelig å installere disse tjenerene?\n"
+"Maskinvaren i din maskin trenger enkelte ikke-fri \"firmware\" for at de "
+"frie programvaredriverne skal fungere."
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "Du bør aktivere \"%s\""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "\"%s\" inneholder de enkelte delene av systemet og dets applikasjoner"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "\"%s\" inneholder ikke-fri programvare\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"Det inneholder også \"firmware\" som kreves for at enkelte enheter skal "
+"fungere. ( feks noen ATI/AMD grafikkort, noen nettverkskort, noen RAID "
+"kort....)"
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"\"%s\" inneholder programvare som ikke kan distribueres i enkelte land pga "
+"programvarepatenter."
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+"Det inneholder også programvare fra \"%s\" ombygging med tilleggsegenskaper."
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "Her kan du aktivere flere media hvis du vil."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Dette mediet har pakkeoppdateringer for medium \"%s\""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Ser på pakker som allerede er installert … "
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Finner pakker som skal oppgraderes … "
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Fjerner pakker før oppgradering … "
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -198,82 +265,87 @@ msgstr ""
" \n"
"Ønsker du å fjerne disse pakkene?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Feil ved lesing av fil %s"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "De(n) følgende disken(e) fikk nytt navn:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (tidligere kalt %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Nettverk"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
-msgstr "Velg et medie"
+msgstr "Velg et medium"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Filen eksisterer allerede. Overskriv?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Adgang nektet"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "Ugyldig NFS-navn"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
-msgstr "Feil i medie %s"
+msgstr "Feil på media %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Jeg kan ikke ta skjembilder før partisjonering."
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Skjermbilder vil være tilgjengelig etter installasjon i %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Installasjon"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Oppsett"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Du må også formatere %s"
@@ -297,302 +369,340 @@ msgstr "Henter opp nettverket"
msgid "Bringing down the network"
msgstr "Tar ned nettverket"
-#: media.pm:703 media.pm:714
+#: media.pm:397
#, c-format
-msgid "Downloading file %s..."
-msgstr "Laster ned fil %s..."
+msgid "Please wait, retrieving file"
+msgstr "Vennligst vent, henter fil"
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "kunne ikke legge til medium"
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr "Kopiér noen pakker på disken for framtidig bruk"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Kopiering pågår"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "må ha"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "viktig"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "veldig bra"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "bra"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "kanskje"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "Henter pakkeinformasjon fra XML metadata..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr "Ingen xml-info for mediet «%s», bare delvis resultat for pakke %s"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Ingen beskrivelse"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"Noen pakker krevet av %s kan ikke installeres\n"
+"%s"
+
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "En feil oppstod:"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "Det oppsto en kritisk feil: %s."
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr "Ikke spør igjen"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d mislykket installasjonstransaksjon"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Installasjon av pakker feilet:"
-#: share/meta-task/compssUsers.pl:11
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "Arbeidsstasjon"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "Kontorarbeidsstasjon"
-#: share/meta-task/compssUsers.pl:15
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Kontorstøtteprogrammer: tekstbehandlere (OpenOffice.org Writer, Kword), "
-"regneark (OpenOffice.org Calc, Kspread), PDF-framvisere, etc"
+"Kontorstøtteprogrammer: tekstbehandlere (LibreOffice Writer, Kword), "
+"regneark (LibreOffice Calc, Kspread), PDF-framvisere, etc"
-#: share/meta-task/compssUsers.pl:16
-#, c-format
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"Kontorstøtteprogrammer: tekstbehandlere (kword, abiword), regneark (kspread, "
-"gnumeric), pdf-framvisere etc"
-
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Spillstasjon"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Underholdningsprogrammer: arkade, brettspill, strategi, etc"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Multimediastasjon"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Lyd- og videoavspilling/redigeringsprogrammer"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Internettstasjon"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-"Sett med verktøy for å lese og sende e-post og njus (mutt, tin..) og til å "
-"surfe på nettet"
+"Et sett med verktøy for å lese og sende e-post og nyheter (mutt, tin..) og "
+"til å surfe på nettet"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Nettverksmaskin (klient)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Klienter for forskjellige protokoller inkludert ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Verktøy for å forenkle oppsettet av maskinen din"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Konsollverktøy"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Tekstprogrammer, skall, filverktøy, terminaler"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Utvikling"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
-msgstr "C- og C++-utviklingsbibliotek, -programmer og include-filer"
+msgstr "C- og C++-utviklingsbibliotek, -programmer og inkluderings-filer"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Dokumentasjon"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
-msgstr "Bøker og Howto's om Linux og fri programvare"
+msgstr "Bøker og veiledninger om Linux og fri programvare"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Linux Standard Base. Støtte for tredjeparts programvare"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
-msgstr "Web-tjener"
+msgstr "Webserver"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Gruppevare"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
-msgstr "Kolab-tjener"
+msgstr "Kolab-server"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Brannmur/ruter"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Internett-gateway"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
-msgstr "E-post/Njus"
+msgstr "E-post/Nyheter"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Postfix e-posttjener, Inn njustjener"
+msgstr "Postfix e-postserver, Inn nyhetsserver"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
-msgstr "Katalogtjener"
+msgstr "Katalogserver"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
-msgstr "FTP-tjener"
+msgstr "FTP-server"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "Domenenavn- og nettverksinformasjons-tjener"
+msgstr "Domenenavn- og nettverksinformasjons-server"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
-msgstr "Fil- og Skriverdelingstjener"
+msgstr "Fil- og Skriverdelingsserver"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
-msgstr "NFS-Tjener, Samba-tjener"
+msgstr "NFS-server, Samba-server"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Database"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL- og MySQL-databasetjener"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "PostgreSQL- og MariaDB-databaseserver"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "E-post"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
-msgstr "Postfix e-posttjener"
+msgstr "Postfix e-postserver"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL eller MySQL-databasetjener"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL eller MariaDB-databaseserver"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
-msgstr "Nettverksmaskintjener"
+msgstr "Nettverksserver"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "NFS-tjener, SMB-tjener, Proxy-tjener, SSH-tjener"
+msgstr "NFS-server, SMB-server, Proxy-server, SSH-server"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Grafisk miljø"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE-arbeidsstasjon"
+msgid "Plasma Workstation"
+msgstr "Plasma arbeidsstasjon"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -601,12 +711,12 @@ msgstr ""
"K Desktop Environment, grunnleggende grafisk miljø med en samling av "
"passende verktøy"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "GNOME-arbeidsstasjon"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -615,60 +725,114 @@ msgstr ""
"Et grafisk miljø med et brukervennlig sett av programmer og "
"skrivebordsverktøy"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
#, c-format
-msgid "IceWm Desktop"
-msgstr "IceWm-skrivebord"
+msgid "Xfce Workstation"
+msgstr "Xfce Arbeidsstasjon"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Et lettere grafisk miljø med brukervennlige applikasjoner og "
+"skrivebordsverktøy"
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "MATE arbeidsstasjon"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Cinnamon arbeidsstasjon"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Et grafisk miljø basert på GNOME"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "LXQt Skrivebord"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "En neste generasjons QT portering av lettvekts skrivebordsoppsettet"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr "Enlightenment Skrivebord"
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr "Et lettvekts raskt grafisk miljø "
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "LXDE-skrivebord"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Et lettvekts raskt grafisk miljø"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Andre grafiske skrivebord"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm etc"
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, etc"
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Verktøy"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
-msgstr "SSH-tjener"
+msgstr "SSH-server"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Webmin Fjernadministrasjonstjener"
+msgstr "Webmin Fjernadministrasjonsserver"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "Nettverks-verktøy/overvåkning"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
-msgstr "Overvårkningsverktøy, prosessbokføring, tcpdump, nmap, ..."
+msgstr "Overvårkningsverktøy, prosessbokføring, tcpdump, nmap, … "
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Mandriva-veivisere"
+msgid "Mageia Wizards"
+msgstr "Mageia-veivisere"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
-msgstr "Veivisere til å sette opp tjener"
+msgstr "Veivisere for å sette opp server"
#: steps.pm:85
#, c-format
@@ -676,228 +840,281 @@ msgid ""
"An error occurred, but I do not know how to handle it nicely.\n"
"Continue at your own risk."
msgstr ""
-"En feil oppsto, men jeg vet ikke hvordan jeg skal håndtere dette på en pen "
-"måte.\n"
+"En feil oppsto, men jeg vet ikke hvordan jeg skal håndtere dette på en "
+"korrekt måte.\n"
"Fortsett på eget ansvar."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
-"\"\n"
+"Check the cdrom on an installed computer using \"rpm -qpl media/main/*."
+"rpm\"\n"
msgstr ""
"Noen viktige pakker ble ikke installert ordentlig.\n"
-"Det er noe galt enten med CD-romen eller CD-platen.\n"
-"Sjekk cd-platen på en installert maskin med «rpm -qpl media/main/*.rpm»\n"
+"Det er noe galt med enten den optiske enheten eller CD-ROM-platen.\n"
+"Sjekk platen på en installert maskin med \"rpm -qpl media/main/*.rpm\"\n"
#: steps_auto_install.pm:71 steps_stdio.pm:27
#, c-format
msgid "Entering step `%s'\n"
-msgstr "Entrer trinn «%s»\n"
+msgstr "Går inn i trinn `%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux-installasjon %s"
+msgid "%s Installation %s"
+msgstr "%s-installasjon %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> mellom elementene"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Xorg-serverer er treg til å starte. Vennligst vent … "
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
"Systemet ditt har lite ressurser. Du kan muligens oppleve noen problemer\n"
-"ved installering av Mandriva Linux. Hvis dette skjer kan du prøve "
-"installasjon i tekstmodus\n"
-"i stedet. Trykk «F1» ved oppstart av CD-ROM, skriv så «text»."
+"ved installering av %s. Hvis dette skjer kan du prøve installasjon i "
+"tekstmodus\n"
+"i stedet. Trykk `F1' ved oppstart av CD-ROM, skriv så `text'."
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Medievalg"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Innsaller %s Plasma skrivebord"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Installer %s GNOME-skrivebord"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Skreddersydd installasjon"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Plasma skrivebord"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "GNOME-skrivebord"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Tilpasset skrivebord"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Her er en forhåndsvisning av skrivebordet «%s»."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Klikk på bildene for å se en større forhåndsvisning"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Valg pakkegruppe"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Individuelt pakkevalg"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Total størrelse: %d / %d MB"
+msgid "Unselect All"
+msgstr "Velg bort alle"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Ugyldig pakke"
+msgid "Total size: %d / %d MB"
+msgstr "Total størrelse: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Versjon: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Størrelse: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Viktighet: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Du kan ikke velge (bort) denne pakken"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "pga. manglende %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "pga. utilfredsstilt %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "prøver å promotere %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "for å beholde %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"Du kan ikke velge denne pakken da det ikke er igjen nok plass til å "
"installere den"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Følgende pakker vil bli installert"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Følgende pakker vil bli fjernet"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Dette er en obligatorisk pakke, den kan ikke fjernes"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Du kan ikke fjerne denne pakken. Den er allerede installert"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Du kan ikke fjerne denne pakken. Den må oppgraderes"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Vis automatisk valgte pakker"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Installer"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Last inn/lagre utvalg"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Oppdaterer pakkevalg"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr "Veksle mellom hierarkisk og flat pakkeliste"
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Minimal installasjon"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Programvarehåndtering"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Velg pakkene du ønsker å installere"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Installerer"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Ingen detaljer"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Tid som gjenstår "
+msgid "Time remaining:"
+msgstr "Tid som gjenstår:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Beregner"
+msgid "(estimating...)"
+msgstr "(beregner … )"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d pakke"
msgstr[1] "%d pakker"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Oppsummering"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Sett opp"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "ikke satt opp"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
@@ -906,12 +1123,12 @@ msgstr ""
"Følgende installasjonsmedia har blitt funnet.\n"
"Hvis du vill hoppe over noen av de kan du velge de vekk nå."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
"Du har valget mellom å kopiere innholdet på CDene til harddisken før "
@@ -919,94 +1136,97 @@ msgstr ""
"Den vil da fortsette fra harddisken og pakkene vil forbli tilgjengelige når "
"systemet er fullstendig installert."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "Kopiér hele CDer"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "En feil oppstod"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Velg ditt tastaturoppsett."
+msgid "Please choose your keyboard layout"
+msgstr "Velg ditt tastaturoppsett"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Her er den komplette lista over tilgjengelige tastatur"
+msgid "Here is the full list of available keyboards:"
+msgstr "Her er den komplette listen over tilgjengelige tastatur"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Installer/Oppgrader"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Er dette en installasjon eller en oppgradering?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
-msgstr "Installer"
+msgstr "Installér"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Oppgrader %s"
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "Krypteringsnøkkel for %s"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "Avbryt installasjonen, start systemet på nytt"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "Setter opp IDE"
+msgid "New Installation"
+msgstr "Ny installasjon"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
-"Det er ikke plass for 1 MB bootstrap! Installasjonen vil fortsette, men for "
-"å boote systemet ditt, må du lage en bootstrap-partisjon i DiskDrake"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Oppgrader forrige versjon (ikke anbefalt)"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"Du må lage en PPC PReP Boot bootstrap! Installasjonen vil fortsette, men for "
-"å kunne starte systemet ditt vil du måtte opprette en bootstrap-partisjon i "
-"DiskDrake"
+"Installereren har oppdaget at ditt installerte Linux system ikke kunne bli\n"
+"oppgradert til %s på en sikker måte.\n"
+"Nyinstallering anbefales\n"
+"\n"
+"Advarsel: Du bør ta sikkerhetskopi av alle dine personlige data før "
+"installering. "
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "Setter opp CD/DVD"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1019,21 +1239,21 @@ msgstr ""
"Sett inn CDen merket «%s» i stasjonen og trykk Ok når du er ferdig.\n"
"Hvis du ikke har den, trykk Avbryt for å unngå installasjon fra denne CDen."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Søker etter tilgjengelige pakker"
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-"Systemet har ikke nok gjenværende diskplass for installasjon eller "
-"oppgradering (%dMB > %dMB)"
+"Systemet har ikke nok ledig diskplass for installasjon eller oppgradering "
+"(%dMB > %dMB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
@@ -1042,54 +1262,54 @@ msgstr ""
"Velg lagre eller hent pakkevalg.\n"
"Formatet er det samme som for auto_install-genererte filer."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Last inn"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Lagre"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Ødelagt fil"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr "Installer Mandriva KDE-skrivebord"
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr "Installer Mandriva GNOME-skrivebord"
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
+#: steps_interactive.pm:459
#, c-format
-msgid "Custom install"
-msgstr "Skreddersydd installasjon"
+msgid "Desktop Selection"
+msgstr "Skrivebordsvalg"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-"Her kan du velga skrivebordsprofil for systemet: KDE, GNOME eller "
-"skreddersydd"
+"Her kan du velge skrivebordprofilen for systemet; «KDE», «GNOME» eller "
+"«Skreddersydd»."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Valgt størrelse er større enn tilgjengelig plass"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Type installasjon"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1098,82 +1318,130 @@ msgstr ""
"Du har ikke valgt noen pakkegrupper.\n"
"Velg den minimale installasjonen du ønsker:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Med X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Installer anbefalte pakker"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Med grunnleggende dokumentasjon (anbefalt!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Virkelig minimal installasjon (uten urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Klargjør oppgradering..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Forbereder installasjon"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Installerer pakke %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Det var en feil ved endring av pakkenes rekkefølge:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Fortsett uansett?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "Prøv igjen"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr "Hopp over denne pakken"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr "Hopp over alle pakker fra media \"%s\""
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
msgstr "Gå tilbake til valg av media og pakker"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
msgstr "Feil under installering av pakke %s"
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Oppsett etter installering"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
-msgstr "Vennligst forsikre deg om at medie med oppdaterte moduler er i %s"
+msgstr "Forsikre deg om at medie med oppdaterte moduler er i %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Oppdateringer"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Nå har du mulighet til å sette opp online media"
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Dette gjør det mulig å installere oppdateringer"
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"For å sette opp disse media, må du a en aktiv Internet \n"
+"kobling\n"
+"\n"
+".Ønsker du å sette opp media nå?"
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr "Den nedlasteren kunne ikke installeres"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Prøve på nytt?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Feil under forsøk på å legge til medium"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1185,141 +1453,89 @@ msgid ""
"\n"
"Do you want to install the updates?"
msgstr ""
-"Du har nå muligheten til å laste ned oppdaterte pakker. Dette er pakker som\n"
-"har blitt sluppet etter at distribusjonen ble sluppet. Dette kan være enten\n"
+"Du har nå muligheten til å laste ned oppdaterte pakker. Dette er pakker som "
+"har blitt sluppet etter at distribusjonen ble lansert. Dette kan være enten "
"sikkerhetsoppdateringer eller feilrettelser.\n"
-"\n"
-"For å laste ned disse pakkene, så må du ha en fungerende "
-"internettoppkobling.\n"
+"For å laste ned disse pakkene må du ha en fungerende Internettoppkobling.\n"
"\n"
"Ønsker du å installere oppdateringene?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Kontakter speilet for å få en liste over tilgjengelige pakker..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Kan ikke kontakte speil %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s på %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Maskinvare"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Lydkort"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Har du et ISA-lydkort?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Kjør «alsaconf» eller «sndconfig» etter installasjonen for å sette opp "
-"lydkortet ditt"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "Lydkort ikke oppdaget. Prøv «harddrake» etter installasjonen"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Grafisk grensesnitt"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Nettverk & internett"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
-msgstr "Proxyer"
+msgstr "Proxyservere"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "satt opp"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Sikkerhetsnivå"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Brannmur"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "aktivert"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "deaktiver"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr ""
-"Du har ikke satt opp det grafiske grensesnittet X. Er du sikker på at du "
+"Du har ikke satt opp det grafiske grensesnittet Xorg. Er du sikker på at du "
"ikke vil gjøre dette?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "Klargjør oppstartslaster"
+msgid "Preparing initial startup program..."
+msgstr "Forbereder initsialt oppstart program"
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"Det virker som du har en OldWorld eller ukjent maskin, yaboot-"
-"oppstartslasteren vil ikke virke for deg. Installasjonen vil fortsette, men "
-"du må bruke BootX eller andre måter for å starte din maskin. "
-"Kjerneargumentet for root-filsystemet er: root=%s"
-
-#: steps_interactive.pm:1024
+#: steps_interactive.pm:1073
#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Ønsker du å bruke aboot?"
+msgid "Be patient, this may take a while..."
+msgstr "Vennligst vær tålmodig, dette kan ta en stund … "
-#: steps_interactive.pm:1027
-#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Feil ved installasjon av aboot, \n"
-"prøv å installer selv om det ødelegger den første partisjonen?"
-
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
@@ -1328,17 +1544,17 @@ msgstr ""
"I dette sikkerhetsnivået er tilgang til Windows-partisjonen forbeholdt "
"administratoren."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Sett inn en tom diskett i stasjon %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
-msgstr "Oppretter diskett for autoinstallasjon..."
+msgstr "Oppretter diskett for autoinstallasjon … "
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1349,50 +1565,15 @@ msgstr ""
"\n"
"Ønsker du virkelig å avslutte nå?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Gratulerer"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
-msgstr "Restart"
-
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Oppretter diskett for autoinstallasjon"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Autoinstallasjonen kan være fullstendig automatisk\n"
-"hvis du ønsker det. Den vil da ta over harddisken!!\n"
-"(dette er for å installere på en annen maskin)\n"
-"\n"
-"Du kanskje ønsker å kjøre installasjonen om igjen.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Gjør igjen"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automatisert"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Lagre pakkevalg"
+msgstr "Omstart"
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
@@ -1484,13 +1665,6 @@ msgid ""
"Users"
msgstr "Brukere"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Nettverk"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1532,9 +1706,3 @@ msgid ""
"_: Keep these entry short\n"
"Exit"
msgstr "Avslutt"
-
-#~ msgid "All"
-#~ msgstr "Alle"
-
-#~ msgid "TV card"
-#~ msgstr "TV-kort"
diff --git a/perl-install/install/share/po/nl.po b/perl-install/install/share/po/nl.po
index 2bc91daa2..c07830293 100644
--- a/perl-install/install/share/po/nl.po
+++ b/perl-install/install/share/po/nl.po
@@ -1,33 +1,89 @@
-# translation of DrakX-nl.po to Nederlands
-# Dutch translation of DrakX.
-# Copyright (C) 2000, 2005 Free Software Foundation, Inc.
-# Copyright (c) 2000 Mandriva
-# Niels Gras <niels.gras@wanadoo.nl>, 2000.
-# Jeroen ten Berge <j.ten.berge@twinbit.nl>, 2002.
-# Reinout van Schouwen <reinout@cs.vu.nl>, 2002-2006.
-# Peter Bosch <peter.bosch@hccnet.nl>, 2002.
-# Rob Teng <mandrake.tips@free.fr>, 2005.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Dennis Holierhoek <dennis.hh@hotmail.com>, 2016
+# dragnadh, 2020
+# Jeroen ten Berge <j.ten.berge@twinbit.nl>, 2002
+# Marcel Pol <marcel@timelord.nl>, 2021
+# Marja van Waes, 2023
+# Marja van Waes <marja@mageia.org>, 2013,2015
+# Niels Gras <niels.gras@wanadoo.nl>, 2000
+# Peter Bosch <peter.bosch@hccnet.nl>, 2002
+# Rob Teng <mandrake.tips@free.fr>, 2005,2008
msgid ""
msgstr ""
-"Project-Id-Version: DrakX-nl\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-09-25 22:42+0200\n"
-"Last-Translator: Reinout van Schouwen <reinouts@gnome.org>\n"
-"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2013-04-04 13:31+0000\n"
+"Last-Translator: Marja van Waes, 2023\n"
+"Language-Team: Dutch (http://app.transifex.com/MageiaLinux/mageia/language/"
+"nl/)\n"
+"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Sluit u bij ons aan"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Maak het u eigen"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "Uw keuze"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Kantoortools"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Home-entertainment"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "Voor kinderen"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "Voor gezinnen"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "Voor ontwikkelaars"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Dank u"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Wees Vrij"
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
msgstr "Heeft u nog aanvullende media?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -41,143 +97,158 @@ msgstr ""
"\n"
"Heeft u een aanvullend installatiemedium in te stellen?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "cd-rom"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Netwerk (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Netwerk (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Netwerk (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "URL van de mirror?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "URL dient te starten met ftp:// of http://"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Bezig te verbinden met de Mandriva Linux-website om de lijst met beschikbare "
-"mirrors op te halen..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Het verbinden met de Mandriva Linux-website om de lijst met beschikbare "
-"mirrors op te halen is mislukt"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Kies een `mirror' om de pakketten van af te halen"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "NFS-configuratie"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
-msgstr "Vul de hostnaam en map van uw NFS media in"
+msgstr "Vul de hostnaam en map van uw NFS-media in"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr "Hostnaam ontbreekt"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "Map dient te beginnen met \"/\""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "Hostnaam van het NFS-koppelpunt?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Map"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "Aanvullend"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
msgstr ""
-"Kan hdlist-bestand op deze mirror niet vinden. Controleer of de locatie "
-"klopt."
+"Kan hdlist-bestand op deze spiegelserver niet vinden. Controleer of de "
+"locatie klopt."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Inventarisatie van reeds geïnstalleerde pakketten…"
+msgid "Core Release"
+msgstr "Core-uitgave"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Verwijderen van pakketten vóór opwaardering..."
+msgid "Tainted Release"
+msgstr "Tainted-uitgave"
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Zoeken naar pakketten om op te waarderen…"
+msgid "Nonfree Release"
+msgstr "Nonfree-uitgave"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"U heeft de volgende server(s) geselecteerd: %s\n"
-"\n"
-"\n"
-"Deze servers worden standaard geactiveerd. Ze hebben geen bekende\n"
-"veiligheidsproblemen, maar het is mogelijk dat men nieuwe vindt.\n"
-"Zorg er in dat geval voor dat u zo spoedig mogelijk opwaardeert.\n"
-"\n"
-"\n"
-"Weet u zeker dat u deze servers wilt installeren?\n"
+"Bepaalde apparatuur in uw machine behoeft niet-vrije firmware alvorens de "
+"vrije stuurprogrammatuur kan werken."
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "U dient \"%s\" in te schakelen"
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "\"%s\" bevat de diverse onderdelen van de systemen en hun programma's"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "\"%s\" bevat niet-vrije software.\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"Het bevat ook firmware-bestanden welke nodig zijn om bepaalde apparatuur te "
+"laten werken (bijv: bepaalde ATI/AMD-grafische kaarten, bepaalde "
+"netwerkkaarten, bepaalde RAID-kaarten, ...)"
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"\"%s\" bevat software welke niet in alle landen vrijelijk gedistribueerd kan "
+"worden als gevolg van software patenten."
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+"Het bevat ook software uit \"%s\" welke herbouwd is met additionele "
+"mogelijkheden."
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "Hier kunt u indien gewenst meerdere media inschakelen."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Dit medium biedt updates voor \"%s\""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Inventarisatie van reeds geïnstalleerde pakketten…"
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Zoeken naar pakketten om op te waarderen…"
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Verwijderen van pakketten vóór opwaardering..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -191,82 +262,87 @@ msgstr ""
"\n"
"Weet u zeker dat u deze pakketten wilt verwijderen?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Fout bij het lezen van bestand %s"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "De volgende schijf/schijven zijn hernoemd:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (heette voorheen %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Netwerk"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "Kies een medium"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Bestand bestaat reeds. Overschrijven?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Toegang geweigerd"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
-msgstr "Slechte NFS naam"
+msgstr "Slechte NFS-naam"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "Ongeldig medium %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Kan geen schermafdruk maken voor het partitioneren"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Schermafdrukken zullen beschikbaar zijn na installatie in %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Installatie"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Configuratie"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "U dient tevens %s te formatteren"
@@ -277,7 +353,8 @@ msgid ""
"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
"You can find some information about them at: %s"
msgstr ""
-"Sommige hardware op uw computer heeft ''fabrikantsgebonden'' drivers \n"
+"Sommige apparatuur op uw computer heeft ''fabrikantseigen'' "
+"stuurprogramma's \n"
"nodig om te kunnen functioneren. U kunt informatie hierover vinden op: %s"
#: interactive.pm:22
@@ -290,107 +367,146 @@ msgstr "Bezig met opstarten van het netwerk"
msgid "Bringing down the network"
msgstr "Bezig met stoppen van het netwerk"
-#: media.pm:703 media.pm:714
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr "Even geduld, bestand wordt opgehaald"
+
+#: media.pm:704
#, c-format
-msgid "Downloading file %s..."
-msgstr "Bestand %s wordt gedownload…"
+msgid "unable to add medium"
+msgstr "niet in staat medium toe te voegen"
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr "Kopiëren van enkele pakketten op diskettes voor toekomstig gebruik"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Bezig met kopiëren"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "must-have"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "belangrijk"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "heel leuk"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "leuk"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "misschien"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "Pakketinformatie wordt uit de XML-metadata geëxtraheerd..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Geen XML-info voor medium ‘%s’, slechts gedeeltelijk resultaat voor pakket %s"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Geen omschrijving"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"Sommige door %s gevraagde pakketten kunnen niet worden geïnstalleerd:\n"
+"%s"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "Werkstation"
+msgid "An error occurred:"
+msgstr "Er is een fout opgetreden:"
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Kantoorwerkstation"
+msgid "A fatal error occurred: %s."
+msgstr "Er is een fatale fout opgetreden: %s."
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
-msgstr ""
-"Kantoorprogramma's: tekstverwerkers (OpenOffice.org Writer, Kword), "
-"rekenbladen (OpenOffice.org Calc, Kspread), PDF-lezers, etc"
+msgid "Do not ask again"
+msgstr "Vraag niet nogmaals"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d installatie-transacties mislukt"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Installatie van pakketten mislukt:"
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "Werkstation"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Kantooromgeving"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Kantoorprogramma's: tekstverwerkers (kword, abiword), rekenbladen (kspread, "
-"gnumeric), PDF-lezers, etc"
+"Kantoorprogramma's: tekstverwerkers (LibreOffice Writer, Kword), rekenbladen "
+"(LibreOffice Calc, Kspread), PDF-lezers, etc"
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Game-station"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Amusementsprogramma's: arcade, bordspellen, strategie etc"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Multimedia-station"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Geluids- en video-afspeel- en bewerkingsprogramma's"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Internet-station"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
@@ -399,193 +515,193 @@ msgstr ""
"Verzameling programma's om e-mail en usenet nieuws mee te lezen en te "
"schrijven, en om het Web mee door te bladeren"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Netwerk-computer (client)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Clients voor verschillende protcollen waaronder ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Programma's om de configuratie van uw computer te vergemakkelijken"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Hulpprogramma's voor de opdrachtregel"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Editors, shells, bestandsbeheer, terminals"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Ontwikkeling"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "C and C++ ontwikkelingsbibliotheken, programma's en include-bestanden"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Documentatie"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Boeken en Howto's over Linux en Vrije Software"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
-msgstr "Linux Standaard-Basis. Ondersteuning voor toepassingen van derden."
+msgstr "Linux Standaard-Basis. Ondersteuning voor programma's van derden."
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Webserver"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Groupware"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Kolab-server"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Firewall/Router"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Internet gateway"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "E-mail/nieuws"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Postfix e-mailserver, Inn newsserver"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Gidsserver"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP-server"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "Domeinnaam- en Network Information Server"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "Gedeelde bestands- en printerserver"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "NFS-server, Samba-server"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Database"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL en MySQL database-server"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "PostgreSQL en MariaDB database-server"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "E-mail"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Postfix e-mailserver"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL of MySQL database-server"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL of MariaDB database-server"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Netwerk-computer server"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "NFS server, SMB server, Proxy server, ssh server"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Grafische omgeving"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE werkstation"
+msgid "Plasma Workstation"
+msgstr "Plasma-werkstation"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -594,71 +710,127 @@ msgstr ""
"Het K Desktop Environment, de basis-grafische omgeving met een verzameling "
"van bijbehorende programma's"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
-msgstr "GNOME werkstation"
+msgstr "GNOME-werkomgeving"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr ""
-"Een grafische omgeving met gebruikersvriendelijke verzameling toepassingen "
-"en bureaublad-programma's"
+"Een grafische omgeving met gebruikersvriendelijke verzameling programma's en "
+"bureaublad-hulpprogramma's"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr "Xfce-werkomgeving"
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Een lichtere grafische omgeving met een gebruiksvriendelijke set programma's "
+"en bureaublad-hulpprogramma's"
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "MATE-werkomgeving"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Cinnamon-werkomgeving"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Een op GNOME gebaseerde grafische omgeving"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "LXQt-werkomgeving"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "Een 'next generation' QT-port van de lichtgewicht grafische omgeving"
+
+#: share/meta-task/compssUsers.pl:184
#, c-format
-msgid "IceWm Desktop"
-msgstr "IceWm Desktop"
+msgid "Enlightenment Desktop"
+msgstr "Enlightenment-werkomgeving"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+"Een snelle lichtgewicht grafische omgeving met gebruiksvriendelijke set "
+"programma's en bureaublad-hulpprogramma's"
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "LXDE-werkomgeving"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Een snelle lichtgewicht grafische omgeving"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
-msgstr "Andere grafische bureaubladen"
+msgstr "Andere grafische omgevingen"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm, etc"
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, enz"
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Hulpprogramma's"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH-server"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Webmin-server voor configuratie op afstand"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "Netwerk-hulpprogramma's/observatie"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "Observatieprogramma's, bijhouden van processen, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Mandriva-wizards"
+msgid "Mageia Wizards"
+msgstr "Mageia-wizards"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Wizards om server te configureren"
@@ -672,17 +844,17 @@ msgstr ""
"Er is een fout opgetreden waarvoor de juiste afhandeling onbekend is.\n"
"Als u verdergaat, is dit op eigen risico."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
-"\"\n"
+"Check the cdrom on an installed computer using \"rpm -qpl media/main/*."
+"rpm\"\n"
msgstr ""
"Sommige belangrijke pakketen werden niet juist\n"
-"geïnstalleerd. Of uw CD-ROM-speler of uw CD-ROM is defect.\n"
-"Controleer de cdrom op een geïnstalleerde computer met\n"
+"geïnstalleerd. Of uw cd-rom-speler of uw cd-rom is defect.\n"
+"Controleer de cd-rom op een geïnstalleerde computer met\n"
"\"rpm -qpl media/main/*.rpm\"\n"
#: steps_auto_install.pm:71 steps_stdio.pm:27
@@ -692,206 +864,258 @@ msgstr "Overgang naar stap `%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux installatie %s"
+msgid "%s Installation %s"
+msgstr "%s Installatie %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> tussen elementen"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "De Xorg-server start langzaam. Even geduld…"
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"Uw systeem heeft weinig bronnen beschikbaar. U zou problemen kunnen\n"
-"ondervinden bij het installeren van Mandriva Linux. Als dit gebeurt,\n"
-"kunt u een tekstinstallatie proberen. Om dit te doen, drukt u op `F1'\n"
-"terwijl de CDROM opstart, en dan voert u `text' in."
+"Uw systeem heeft weinig systeembronnen beschikbaar. Het kan zijn dat u "
+"problemen ondervindt bij het installeren van %s. In dat geval kunt u een "
+"tekstinstallatie proberen. Druk 'F1' bij het opstarten van de disc, en toets "
+"dan in: 'text'."
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Mediaselectie"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Installeer %s Plasma Desktop"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Installeer de %s GNOME Desktop"
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Aangepaste installatie"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Plasma-werkomgeving"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "Gnome-werkomgeving"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Aangepaste werkomgeving"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Hier is een voorproefje van de '%s'-werkomgeving."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Klik op het beeld voor een grotere versie"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
-msgstr "Pakketgroep-selectie"
+msgstr "Pakketgroepselectie"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Individuele pakketselectie"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Totale grootte: %d / %d MB"
+msgid "Unselect All"
+msgstr "Alle gedeselecteerd"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Onbruikbaar pakket"
+msgid "Total size: %d / %d MB"
+msgstr "Totale grootte: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Versie: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Grootte: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d kB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Belang: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "U kunt dit pakket niet (de)selecteren"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "ten gevolge van ontbrekende %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "ten gevolge van onvoldane %s"
-# Wat wordt hier precies bedoeld?
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "proberen om %s te promoveren"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "om %s te kunnen behouden"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"U kunt dit pakket niet selecteren omdat er te weinig ruimte over is om het "
"te installeren"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "De volgende pakketten zullen geïnstalleerd worden"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "De volgende pakketten zullen gedeïnstalleerd worden"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Dit is een verplicht pakket, het kan niet gedeselecteerd worden"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "U kunt dit pakket niet deselecteren. Het is al geïnstalleerd."
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "U kunt dit pakket niet deselecteren. Het moet opgewaardeerd worden."
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Automatisch geselecteerde pakketten tonen"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Installatie"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Selectie laden/opslaan"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
-msgstr "Verversen van pakket-selectie"
+msgstr "Verversen van pakketselectie"
+
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr "Wissel tussen hiërarchische en platte lijst van pakketten"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Minimale installatie"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Softwarebeheer"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Kies de pakketten die u wenst te installeren"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Installeren"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Geen details"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Resterende tijd "
+msgid "Time remaining:"
+msgstr "Resterende tijd:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Bezig met schatten"
+msgid "(estimating...)"
+msgstr "(schatten…)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d pakket"
msgstr[1] "%d pakketten"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Overzicht"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Configureren"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "niet geconfigureerd"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
@@ -900,108 +1124,111 @@ msgstr ""
"De volgende installatiemedia zijn gevonden.\n"
"Indien u sommige wilt overslaan, kunt u ze nu deselecteren."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-"U heeft de mogelijkheid om de inhoud van de CD's naar de harde schijf te "
+"U heeft de mogelijkheid om de inhoud van de cd's naar de harde schijf te "
"kopiëren vóór installatie.\n"
"De installatie gaat dan door vanaf de harde schijf en de pakketten blijven "
"beschikbaar zodra het systeem volledig geïnstalleerd is."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "Hele cd's kopiëren"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Er is een fout opgetreden"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Kies uw toetsenbord-indeling."
+msgid "Please choose your keyboard layout"
+msgstr "Kies uw toetsenbord-indeling"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Dit is de volledige lijst van beschikbare toetsenborden"
+msgid "Here is the full list of available keyboards:"
+msgstr "Dit is de volledige lijst van beschikbare toetsenborden:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Installatie/Opwaardering"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Wilt u opwaarderen of een nieuwe installatie uitvoeren?"
-#: steps_interactive.pm:134
+#: steps_interactive.pm:159
#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Installatie"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "%s opwaarderen"
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "Vercijferingssleutel voor %s"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "Installatie afbreken, systeem herstarten"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "IDE-Configuratie"
+msgid "New Installation"
+msgstr "Nieuwe installatie"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
-"Er is geen vrije ruimte voor een \"bootstrap\" van 1MB! De installatie zal "
-"doorgaan, maar om uw systeem op te starten zult u de bootstrap partitie in "
-"DiskDrake moeten creëren."
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Bestaande installatie opwaarderen (niet aanbevolen)"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"U dient een PPC PReP Boot bootstrap aan te maken! Installatie zal verder "
-"gaan, maar om uw systeem op te starten zult u de bootstrappartitie in "
-"DiskDrake moeten creëren."
+"Het installatieprogramma heeft vastgesteld dat uw Linux-systeem niet veilig "
+"kan worden bijgewerkt naar %s.\n"
+"\n"
+"Een nieuwe installatie ter vervang van uw vorige wordt aangeraden.\n"
+"\n"
+"WAARSCHUWING: Maak een eerst een back-up van al uw persoonlijke data voordat "
+"u een nieuwe installatie kiest."
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "Cd/dvd"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "Cd/dvd-configuratie"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1009,28 +1236,28 @@ msgid ""
"done.\n"
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
-"Verwissel uw CD-ROM!\n"
+"Verwissel uw cd-rom!\n"
"\n"
-"Gelieve de CD-ROM met de naam \"%s\" in uw speler te plaatsen en op Ok te "
+"Gelieve de cd-rom met de naam \"%s\" in uw speler te plaatsen en op Ok te "
"klikken wanneer u gereed bent.\n"
-"Als u deze CD niet heeft, klik dan Annuleren om verdere installatie vanaf "
-"deze CD te vermijden."
+"Als u deze cd niet heeft, klik dan Annuleren om verdere installatie vanaf "
+"deze cd te vermijden."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Bezig met zoeken naar beschikbare pakketten"
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-"Uw systeem heeft niet genoeg ruimte over voor installatie of opwaardering (%"
-"dMB > %dMB)"
+"Uw systeem heeft niet genoeg ruimte over voor installatie of opwaardering "
+"(%dMB > %dMB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
@@ -1039,53 +1266,52 @@ msgstr ""
"U kunt kiezen of u de pakketselectie wilt laden of opslaan.\n"
"Het formaat is dezelfde als de met auto_install gegenereerde bestanden."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Laden"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Opslaan"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Ongeldig bestand"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr "Mandriva KDE-werkomgeving installeren"
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr "Mandriva GNOME-werkomgeving installeren"
+msgid "GNOME"
+msgstr "Gnome"
-#: steps_interactive.pm:433
+#: steps_interactive.pm:459
#, c-format
-msgid "Custom install"
-msgstr "Aangepaste installatie"
+msgid "Desktop Selection"
+msgstr "Werkomgevingselectie"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
-"U kunt uw werkstation-bureaubladprofiel kiezen: KDE, GNOME of Aangepast"
+msgid "You can choose your workstation desktop profile."
+msgstr "U kunt de grafische omgeving voor uw werkstation kiezen."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "De geselecteerde grootte is meer dan de beschikbare ruimte"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Type installatie"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1094,82 +1320,130 @@ msgstr ""
"U heeft geen enkele pakketgroep geselecteerd\n"
"Gelieve de minimale installatie die u wenst te kiezen."
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Met X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Installeer aangeraden pakketten"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Met basis-documentatie (aanbevolen!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Werkelijk minimale installatie (in het bijzonder geen urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Voorbereiden van de opwaardering..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Bezig met voorbereiden van installatie"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Bezig met installeren van pakket %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Er is een fout opgetreden bij het sorteren van de pakketten:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Toch verdergaan?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "Opnieuw proberen"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr "Dit pakket overslaan"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr "Alle pakketten van medium ‘%s’ overslaan"
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
msgstr "Terug naar media- en pakketselectie"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
msgstr "Er is een fout opgetreden bij het installeren van pakket %s."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Configuratie na installatiestap"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr "Zorg ervoor dat de Update Modules-media zich in station %s bevindt"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
-msgstr "Updates"
+msgstr "Herzieningen"
+
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "U kunt nu online media instellen."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Dat maakt beveiligingsherzieningen installeren mogelijk."
-#: steps_interactive.pm:692
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"Om deze media in te stellen, dient uw internetverbinding \n"
+"te werken. \n"
+"\n"
+"Wilt u de updatemedia instellen?"
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr "Dat downloadprogramma kon niet geïnstalleerd worden"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Opnieuw proberen?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Medium toevoegen mislukt"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1189,133 +1463,80 @@ msgstr ""
"\n"
"Wenst u de bijgewerkte pakketten te installeren?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr ""
-"Bezig met verbinden met de mirror om de lijst met beschikbare pakketten op "
-"te halen..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Verbinden met mirror %s is onmogelijk"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s op %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Apparatuur"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Geluidskaart"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Heeft u een ISA geluidskaart?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Voer \"alsaconf\" of \"sndconfig\" na de installatie uit om uw geluidskaart "
-"te configureren"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "Geen geluidskaart bespeurd. Probeer \"harddrake\" na de installatie"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Grafische interface"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Netwerk & internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Proxy's"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "geconfigureerd"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Beveiligingsniveau"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Firewall"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "geactiveerd"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "uitgeschakeld"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "U heeft X niet geconfigureerd. Weet u zeker dat u dit wilt?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "Klaarmaken van opstartlader..."
+msgid "Preparing initial startup program..."
+msgstr "Bezig met voorbereiden van het initiële startprogramma..."
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"Het heeft er alle schijn van dat u een OldWorld- of Onbekende machine heeft. "
-"De yaboot opstartlader zal voor u niet werken. De installatie zal doorgaan, "
-"maar u zult BootX of een andere methode nodig hebben om uw machine op te "
-"starten. Het argument om aan de kernel mee te geven voor het root-"
-"bestandssysteem is: root=%s"
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Wenst u aboot te gebruiken?"
-
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Fout bij het installeren van aboot,\n"
-"toch proberen te installeren, zelfs als dat de eerste partitie vernietigt?"
+msgid "Be patient, this may take a while..."
+msgstr "Een moment geduld, dit kan even duren…"
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
@@ -1324,72 +1545,37 @@ msgstr ""
"In dit beveiligingsniveau wordt toegang tot de bestanden op de Windows-"
"partitie voorbehouden aan de systeembeheerder."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Plaats een lege diskette in station %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
-msgstr "Aanmaken van auto-installatiediskette..."
+msgstr "Aanmaken van auto-installatiediskette…"
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
"\n"
"Do you really want to quit now?"
msgstr ""
-"Sommige stappen zijn nog niet voltooid.\n"
+"Enkele stappen zijn nog niet voltooid.\n"
"\n"
"Weet u zeker dat u op dit moment wilt afsluiten?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Gefeliciteerd"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Herstarten"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Auto-installatiediskette aanmaken"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Desgewenst kan de auto-installatie volledig geautomatiseerd worden,\n"
-"in dat geval zal het de harde schijf overnemen!\n"
-"(Deze functie is bedoeld voor het installeren op een andere machine.)\n"
-"\n"
-"Wellicht geeft u de voorkeur aan het herhalen van de installatie.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Herhalen"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Geautomatiseerd"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Pakket-selectie opslaan"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1422,7 +1608,7 @@ msgstr "Muis"
msgid ""
"_: Keep these entry short\n"
"Hard drive detection"
-msgstr "Harde schijf-detectie"
+msgstr "Harddisk detectie"
#: steps_list.pm:21 steps_list.pm:22
#, c-format
@@ -1480,13 +1666,6 @@ msgid ""
"Users"
msgstr "Gebruikers"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Netwerktoepassingen"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1528,117 +1707,3 @@ msgid ""
"_: Keep these entry short\n"
"Exit"
msgstr "Afsluiten"
-
-#~ msgid "All"
-#~ msgstr "Alles"
-
-#~ msgid "TV card"
-#~ msgstr "TV-kaart"
-
-#~ msgid "Boot"
-#~ msgstr "Opstarten"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Aanmeldingscontrole"
-
-#~ msgid "Arkeia"
-#~ msgstr "Arkeia"
-
-#~ msgid "Flatout"
-#~ msgstr "Flatout"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "3D"
-#~ msgstr "3D"
-
-#~ msgid "CMS"
-#~ msgstr "CMS"
-
-#~ msgid "CRM"
-#~ msgstr "CRM"
-
-#~ msgid "2007 product line"
-#~ msgstr "2007 productlijn"
-
-#~ msgid "Invictus Firewall"
-#~ msgstr "Invictus Firewall"
-
-#~ msgid "Discovery Live Mode"
-#~ msgstr "Discovery live-modus"
-
-#~ msgid "How to register"
-#~ msgstr "Hoe te registreren"
-
-#~ msgid "Rpmdrake 2"
-#~ msgstr "Rpmdrake 2"
-
-#~ msgid "Mandriva Online Services"
-#~ msgstr "Mandriva Online-diensten"
-
-#~ msgid "New Theme"
-#~ msgstr "Nieuw thema"
-
-#~ msgid "Web 2.0"
-#~ msgstr "Web 2.0"
-
-#~ msgid "Kaspersky"
-#~ msgstr "Kaspersky"
-
-#~ msgid "LinDVD"
-#~ msgstr "LinDVD"
-
-#~ msgid "Skype"
-#~ msgstr "Skype"
-
-#~ msgid "Transgaming/Cedega"
-#~ msgstr "Transgaming/Cedega"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "(%d pakketten, %d MB)"
-#~ msgstr[1] "(%d pakketten, %d MB)"
-
-#~ msgid "%d packages"
-#~ msgstr "%d pakketten"
-
-#~ msgid "Language"
-#~ msgstr "Taal"
-
-#~ msgid "License"
-#~ msgstr "Licentie"
-
-#~ msgid "Installation class"
-#~ msgstr "Installatieklasse"
-
-#~ msgid "Formatting"
-#~ msgstr "Formatteren"
-
-#~ msgid "Choosing packages"
-#~ msgstr "Pakketten kiezen"
-
-#~ msgid "Users"
-#~ msgstr "Gebruikers"
-
-#~ msgid "Networking"
-#~ msgstr "Netwerktoepassingen"
-
-#~ msgid "Configure X"
-#~ msgstr "X configureren"
-
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
-#~ msgstr ""
-#~ "Kan kernelmodules behorend bij uw kernel niet benaderen (bestand %s "
-#~ "ontbreekt), dit betekent normaal gesproken dat uw opstartdiskette niet "
-#~ "hetzelfde is als die van het installatie medium. (Maak een nieuwe boot "
-#~ "diskette)"
diff --git a/perl-install/install/share/po/nn.po b/perl-install/install/share/po/nn.po
index c3ab4a65f..42bcbaa3f 100644
--- a/perl-install/install/share/po/nn.po
+++ b/perl-install/install/share/po/nn.po
@@ -1,29 +1,82 @@
-# translation of DrakX.po to Norwegian Nynorsk
-# Translation of nn to Norwegian Nynorsk
-# Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
-# Karl Ove Hufthammer <karl@huftis.org>, 2004, 2005, 2006, 2007.
+# Translators:
+# Karl Ove Hufthammer <karl@huftis.org>, 2004-2010
+# Stig-Ørjan Smelror <smelror@gmail.com>, 2017
msgid ""
msgstr ""
-"Project-Id-Version: DrakX\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-10-02 18:33+0200\n"
-"Last-Translator: Karl Ove Hufthammer <karl@huftis.org>\n"
-"Language-Team: Norwegian Nynorsk <i18n-nn@lister.ping.uio.no>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Norwegian Nynorsk (http://www.transifex.com/MageiaLinux/"
+"mageia/language/nn/)\n"
+"Language: nn\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr ""
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr ""
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr ""
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr ""
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr ""
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr ""
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
msgstr "Har du fleire medium?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -31,145 +84,153 @@ msgid ""
"\n"
"Do you have a supplementary installation medium to configure?"
msgstr ""
-"Desse media vart funnen, og vert brukt under installeringa: %s.\n"
+"Fann desse media, som vert brukte ved installeringa: %s.\n"
"\n"
"\n"
-"Har du fleire installasjonsmedium du ønskjer å setja opp?"
+"Har du fleire installasjonsmedium du ønskjer å bruka?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Nettverk (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Nettverk (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Nettverk (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "Adresse til spegelen?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "Adresser må starta med «ftp://» eller «http://»."
-
-#: any.pm:228
-#, c-format
-msgid "Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr "Kontaktar Mandriva Linux-nettstaden for oversikt over speglar …"
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Klarte ikkje få kontakt med Mandriva Linux-nettstaden for å henta oversikt "
-"over tilgjengelege speglar."
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Vel spegelen du vil installera pakkar frå"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "NFS-oppsett"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr "Skriv inn vertsnamn og mappe til NFD-media"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr "Manglar vertsnam"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "Mappa må begynna med «/»"
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "Vertsnamn til NFS-montering:"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Katalog"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "Tillegg"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
-msgstr "Finn ikkje pakkelistfila på denne spegelen. Sjå til at adressa er rett."
+msgstr ""
+"Finn ikkje pakkelistfila på denne spegelen. Sjå til at adressa er rett."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Ser på allereie installerte pakkar …"
+msgid "Core Release"
+msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Fjernar pakkar for oppgradering …"
+msgid "Tainted Release"
+msgstr ""
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Ser etter pakkar å oppgradera …"
+msgid "Nonfree Release"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"Du har valt desse tenarane: %s\n"
-"\n"
-"\n"
-"Tenarane vert slått på som standard. Ingen av dei har nokon kjende "
-"tryggleikshol,\n"
-"men nye hol kan sjølvsagt bli oppdaga i framtida. Du må du i så fall "
-"oppgradera\n"
-"så snart som mogleg.\n"
-"\n"
-"\n"
-"Er du sikker på at du vil installera tenarane?\n"
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Ser på allereie installerte pakkar …"
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Ser etter pakkar å oppgradera …"
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Fjernar pakkar for oppgradering …"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -182,82 +243,87 @@ msgstr ""
"\n"
"Er du sikker på at du vil fjerna pakkane?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Klarte ikkje lesa fila «%s»"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "Desse diskane fekk nye namn:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "«%s» (tidlegare namn: «%s»)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Nettverk"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "Vel medium"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Fila finst allereie. Vil du skriva over ho?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Nekta løyve"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "Ugyldig NFS-namn"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "Ugyldig medium: %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Kan ikkje ta skjermbilete før partisjonering"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Skjermbilete vert tilgjengelege i «%s» etter installeringa er ferdig"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
-msgstr "Installerering"
+msgstr "Installering"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Oppsett"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Du må òg formatera «%s»"
@@ -281,47 +347,68 @@ msgstr "Koplar til nettverket"
msgid "Bringing down the network"
msgstr "Koplar frå nettverket"
-#: media.pm:703 media.pm:714
+#: media.pm:397
#, c-format
-msgid "Downloading file %s..."
-msgstr "Lastar ned «%s» …"
+msgid "Please wait, retrieving file"
+msgstr "Hentar fil. Vent litt …"
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "klarte ikkje leggja til medium"
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr "Kopierer nokre pakkar til harddisken for seinare bruk"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Kopierer filer"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "må ha"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "viktig"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "veldig kjekt å ha"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "kjekt å ha"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "kanskje"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Ingen XML-informasjon for mediet «%s». Berre delvis resultat for pakken «%s»."
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Inga skildring"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
@@ -330,324 +417,393 @@ msgstr ""
"Nokre pakkar som %s krev kan ikkje installerast:\n"
"%s"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "Det oppstod ein feil:"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "Det oppstod ein kritisk feil: %s."
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr "Ikkje spør igjen"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "feil med %d installasjonstransaksjonar"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Feil ved installering av pakkar:"
+
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "Arbeidstasjon"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "Kontormaskin"
-#: share/meta-task/compssUsers.pl:15
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Kontorprogramvare: Teksthandsamarar (OpenOffice.org Writer, Kword), rekneark "
-"(OpenOffice.org Calc, Kspread), PDF-viseprogram, med meir"
+"Kontorprogramvare: Teksthandsamarar (LibreOffice Writer, Kword), rekneark "
+"(LibreOffice Calc, Kspread), PDF-viseprogram, med meir"
-#: share/meta-task/compssUsers.pl:16
-#, c-format
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"Kontorprogramvare: Teksthandsamarar (KWord, AbiWord), rekneark (KSpread, "
-"gnumeric), PDF-viseprogram, med meir"
-
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Spelmaskin"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Moroprogram: Arkadespel, brettspel, strategispel, med meir"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Multimediemaskin"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Program for vising og redigering av film"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Internett-maskin"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-"Program for lesing og sending av e-post, deltaking i diskusjonsgrupper og "
-"surfing på Internett"
+"Program for lesing og sending av e-post, deltaking i temagrupper og surfing "
+"på Internett"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Nettverksmaskin (klient)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Klientprogramvare for fleire protokollar, som ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Verktøy for enkelt oppsett av datamaskina"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Konsollverktøy"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Skriveprogram, skal, filverktøy og terminalprogram."
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Utvikling"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
-msgstr "C og C++-utviklingsbibliotek, program og inkluderingsfiler"
+msgstr "Utviklingsbibliotek, program og deklarasjonsfiler for C og C++"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Hjelpetekst"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Bøker og hjelpeoppskrifter for Linux og fri programvare"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Linux Standard Base – støtte for tredjepartsprogram"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Vevtenar"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Gruppevare"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Kolab-tenar"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Brannmur/rutar"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Internett-portnar"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
-msgstr "E-post og diskusjonar"
+msgstr "E-post og temagrupper"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Postfix e-posttenar og Inn diskusjonstenar"
+msgstr "Postfix e-posttenar og Inn temagruppetenar"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Katalogtenar"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP-tenar"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "Domenenamn og nettverksinformasjonstenar."
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "Fil- og skrivardeling-tenar"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "NFS-tenar, Samba-tenar"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Database"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL- og MySQL-databasetenar"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "PostgreSQL- og MariaDB-databasetenar"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Vev/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "E-post"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Postfix-e-posttenar"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL- eller MySQL-databasetenar"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL- eller MariaDB-databasetenar"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Nettverkstenar"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "NFS-tenar, SMB-tenar, mellomtenar, ssh-tenar"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Grafisk miljø"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE-arbeidsstasjon"
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr "Skrivebordsmiljøet KDE, med ei samling tilhøyrande verktøy"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "GNOME-arbeidsstasjon"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
-msgstr "Eit grafisk skrivebordsmiljø med brukarvenlege program og skrivebordsverktøy"
+msgstr ""
+"Eit grafisk skrivebordsmiljø med brukarvenlege program og skrivebordsverktøy"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
#, c-format
-msgid "IceWm Desktop"
-msgstr "IceWm-skrivebord"
+msgid "Xfce Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "LXDE-skrivebord"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Andre grafiske skrivebord"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm, med fleire"
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Verktøy"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH-tenar"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Webmin-fjernoppsettenar"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "Nettverksverktøy og -overvaking"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "Overvakingsverktøy, prosesshandsaming, tcpdump, nmap, med meir"
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Mandriva-vegvisarar"
+msgid "Mageia Wizards"
+msgstr "Mageia-vegvisarar"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Vegvisarar for tenaroppsett"
@@ -659,7 +815,7 @@ msgid ""
"Continue at your own risk."
msgstr "Det oppstod ein kritisk feil. Hald fram på eige ansvar."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -679,205 +835,257 @@ msgstr "Køyrer steg «%s»\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux-installering %s"
+msgid "%s Installation %s"
+msgstr "%s-installering %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "«Tab»/«Alt + Tab» mellom element"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "X.Org-tenaren tek tid å starta. Vent litt …"
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"Du har lite systemresursar, og kan få vanskar med å installera Mandriva "
-"Linux.\n"
+"Du har lite systemressursar, og kan få vanskar med å installera %s Linux.\n"
"Du kan då installera i tekstmodus i staden for. Trykk «F1» ved oppstart av\n"
"CD-plata, og skriv «text» om du ønskjer dette."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Medieval"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Installer %s GNOME-skrivebord"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Anna installering"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "GNOME-skrivebord"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Sjølvvalt skrivebord"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Slik ser skrivebordsmiljøet %s ut."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Trykk på bileta for å forstørra dei"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Pakkegruppeval"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Direkte pakkeval"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Totalstorleik: %d / %d MiB"
+msgid "Unselect All"
+msgstr "Valde vekk alle"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Ugyldig pakke"
+msgid "Total size: %d / %d MB"
+msgstr "Totalstorleik: %d / %d MiB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Versjon: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Storleik: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KiB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Prioritet: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Du kan ikkje velja eller fjerna denne pakken"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "på grunn av manglande «%s»"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "då «%s» ikkje er tilfredsstilt"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "Prøver å prioritera «%s»"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "for å kunna behalda «%s»"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"Du kan ikkje velja denne pakken, då det ikkje er nok ledig plass til å "
"installera han."
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Desse pakkane vert installerte"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Desse pakkane vert fjerna"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Dette er ein obligatorisk pakke. Du kan ikkje velja han vekk."
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Du kan ikkje velja vekk denne pakken, då han allereie er installert."
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Kan ikkje velja vekk pakken. Han må oppgraderast."
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Vis automatiske valde pakkar"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Installer"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Opna/lagra utval"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Oppdaterer pakkeval"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Minimal installering"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Programvarehandsaming"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Vel pakkane du ønskjer å installera"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Installerer"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
-msgstr "Skjul detaljar"
+msgstr "Gøym detaljar"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Tid igjen"
+msgid "Time remaining:"
+msgstr "Tid igjen:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Estimerer"
+msgid "(estimating...)"
+msgstr "(estimerer …)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d pakke"
msgstr[1] "%d pakkar"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Samandrag"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Set opp"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "ikkje sett opp"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
@@ -886,12 +1094,12 @@ msgstr ""
"Fann desse installasjonsmedia.\n"
"Om du ikkje ønskjer å bruka alle, kan du velja vekk dei du ikkje treng no."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
"Du kan velja å kopiera innhaldet på CD-ane til harddisken før "
@@ -899,94 +1107,91 @@ msgstr ""
"Installasjonen vil då helda fram frå harddisken, og pakkane vil vera lett "
"tilgjengeleg òg etter at systemet er installert og sett opp."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "Kopier CD-ane"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Det oppstod ein feil"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
+msgid "Please choose your keyboard layout"
msgstr "Vel tastaturoppsett"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Her er heile lista over tastaturoppsett"
+msgid "Here is the full list of available keyboards:"
+msgstr "Her er heile lista over tastaturoppsett:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Installer/oppgrader"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
-msgstr "Er dette ei installering eller ei oppgradering?"
+msgstr "Vil du installera eller oppgradera?"
-#: steps_interactive.pm:134
+#: steps_interactive.pm:159
#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
-msgstr "Installering"
+msgstr "Installer"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Oppgrader «%s»"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr "Oppgradering frå 32 bits til 64 bits er ikkje støtta"
+msgid "Encryption key for %s"
+msgstr "Krypteringsnøkkel for «%s»"
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr "Oppgradering frå 64 bits til 32 bits er ikkje støtta"
+msgid "Cancel installation, reboot system"
+msgstr "Avbryt installering og start systemet på nytt"
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
-msgstr "Krypteringsnøkkel for «%s»"
+msgid "New Installation"
+msgstr "Nyinstallering"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Oppgrader førre installasjon (ikkje tilrådd)"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
-msgstr "Set opp IDE"
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+msgid "CD/DVD"
msgstr ""
-"Ikkje nok ledig plass for oppstartslastar på 1 MiB. Installasjonen held "
-"fram, men du må sjølv laga ein oppstartslastarpartisjon i DiskDrake."
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+msgid "Configuring CD/DVD"
msgstr ""
-"Du må laga ein PPC PReP Boot-bootstrap. Installasjonen vil helda fram, men "
-"viss du vil starta systemet, må du først laga bootstrap-partisjonen i "
-"DiskDrake."
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -999,21 +1204,21 @@ msgstr ""
"Set inn plata merkt «%s» og trykk «OK».\n"
"Trykk eventuelt «Avbryt» om du ikkje har denne plata."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Ser etter tilgjengelege pakkar …"
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
"Maskina di har ikkje nok ledig plass for installering eller oppgradering (%d "
"MB > %d MB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
@@ -1022,52 +1227,52 @@ msgstr ""
"Vel å lagra eller henta pakkeval.\n"
"Formatet er likt det laga av «auto_install»."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Last"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Lagra"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Ugyldig fil"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr "Installer Mandriva KDE-skrivebord"
+msgid "Plasma"
+msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr "Installer Mandriva GNOME-skrivebord"
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
+#: steps_interactive.pm:459
#, c-format
-msgid "Custom install"
-msgstr "Anna installering"
+msgid "Desktop Selection"
+msgstr "Skrivebordsval"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr "Her kan du velja skrivebordsprofil for systemet: KDE, GNOME eller annan"
+msgid "You can choose your workstation desktop profile."
+msgstr "Du kan velja skrivebordsmiljø."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Valt storleik er større enn tilgjengeleg plass"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Installasjonstype"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1076,82 +1281,126 @@ msgstr ""
"Du har ikkje valt noko pakkegruppe.\n"
"Vel kva type minimal installasjon du vil ha:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Med X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Med grunnleggjande hjelpetekstar (tilrådd)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Heilt minimal (òg utan urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Førebur installasjon"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Installerer pakken «%s»"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Det oppstod ein feil ved sortering av pakkar:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Vil du helda fram likevel?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "Prøv på nytt"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr "Hopp over denne pakken"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr "Hopp over alle pakkar frå mediet «%s»"
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
msgstr "Gå tilbake til medie- og pakkevalskjermen"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
msgstr "Det oppstod ein feil ved installering av pakken «%s»."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Oppsett etter installering"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr "Sjå til at oppdateringsmediet er i stasjon %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Oppdateringar"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Desse pakkane vert installerte"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Prøv på nytt?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Klarte ikkje leggja til nytt medium"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1164,138 +1413,92 @@ msgid ""
"Do you want to install the updates?"
msgstr ""
"Du kan no lasta ned oppdaterte pakkar. Desse pakkane vart oppdaterte\n"
-"etter at distribusjonen var ferdigstilt, og kan innehelda tryggleiks- eller\n"
-"andre feilfiksar.\n"
+"etter at distribusjonen var ferdigstilt, og kan innehelda "
+"tryggleiksforbetringar eller\n"
+"andre feilrettingar.\n"
+"\n"
"\n"
"For å lasta ned pakkane må du ha eit nettsamband oppe.\n"
"\n"
+"\n"
"Ønskjer du å installera oppdateringane?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Kontaktar spegel for oversikt over pakkar …"
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Klarte ikkje kontakta spegelen «%s»"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s på %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Maskinvare"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Lydkort"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Har du eit ISA-lydkort?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr "Køyr «sndconfig» etter installasjonen er ferdig for å setja opp lydkortet."
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "Fann ingen lydkort. Køyr «harddrake» etter installasjonen er ferdig."
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Grafisk grensesnitt"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Nettverk og Internett"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Mellomtenarar"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "oppsett"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Tryggleiksnivå"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Brannmur"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "påslått"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "avslått"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr ""
"Du har ikkje sett opp det grafiske grensesnittet. Er du sikker på at du "
"ikkje vil ha det?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "Førebur oppstartslastar …"
-
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Preparing initial startup program..."
msgstr ""
-"Oppstartslastaren yaboot vil ikkje fungera, då du har ei OldWorld- eller ei "
-"ukjend maskin. Installeringa vil helda fram, men du må bruka BootX eller ein "
-"annan måte å starta maskina di på. Kjerneargumentet for rotfilsystemet er: "
-"root=%s"
-#: steps_interactive.pm:1024
+#: steps_interactive.pm:1073
#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Vil du bruka aboot?"
+msgid "Be patient, this may take a while..."
+msgstr "Ver tålmodig. Dette kan ta ei stund …"
-#: steps_interactive.pm:1027
-#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Feil ved installering av «aboot».\n"
-"Vil du prøva å tvinga gjennom installering, sjølv om det kan øydeleggja den "
-"første partisjonen?"
-
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
@@ -1304,17 +1507,17 @@ msgstr ""
"Med dette tryggleiksnivået er det berre administratoren som får tilgang til "
"filer på Windows-partisjonen."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Set inn ein tom diskett i stasjon «%s»"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Lagar diskett for automatisk installasjon …"
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1325,51 +1528,16 @@ msgstr ""
"\n"
"Er du sikker på at du vil avslutta?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Gratulerer"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Start på nytt"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Lag diskett for automatisk installasjon"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Du kan heilautomatisera autoinstalleringa om du ønskjer. Denne vil då "
-"overskriva heile harddisken. (Dette er meint for installering på ei anna "
-"maskin.)\n"
-"\n"
-"Du kan òg velja å køyra gjennom installasjonen på nytt.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Spel av"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automatisert"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Lagra pakkeval"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1460,13 +1628,6 @@ msgid ""
"Users"
msgstr "Brukarar"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Nettverk"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1509,117 +1670,24 @@ msgid ""
"Exit"
msgstr "Avslutt"
-#~ msgid "All"
-#~ msgstr "Alle"
-
-#~ msgid "TV card"
-#~ msgstr "Fjernsynskort"
-
-#~ msgid "Boot"
-#~ msgstr "Oppstart"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Autentisering"
-
-#~ msgid "Arkeia"
-#~ msgstr "Arkeia"
-
-#~ msgid "Flatout"
-#~ msgstr "Flatout"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "3D"
-#~ msgstr "3D"
-
-#~ msgid "CMS"
-#~ msgstr "CMS"
-
-#~ msgid "CRM"
-#~ msgstr "CRM"
-
-#~ msgid "2007 product line"
-#~ msgstr "2007-produkta"
-
-#~ msgid "Invictus Firewall"
-#~ msgstr "Invictus brannmur"
-
-#~ msgid "Discovery Live Mode"
-#~ msgstr "Discovery Live-modus"
-
-#~ msgid "How to register"
-#~ msgstr "Korleis registrera seg"
-
-#~ msgid "Rpmdrake 2"
-#~ msgstr "Rpmdrake 2"
-
-#~ msgid "Mandriva Online Services"
-#~ msgstr "Mandriva Online-tenester"
-
-#~ msgid "New Theme"
-#~ msgstr "Nytt tema"
-
-#~ msgid "Web 2.0"
-#~ msgstr "Web 2.0"
-
-#~ msgid "Kaspersky"
-#~ msgstr "Kaspersky"
-
-#~ msgid "LinDVD"
-#~ msgstr "LinDVD"
-
-#~ msgid "Skype"
-#~ msgstr "Skype"
-
-#~ msgid "Transgaming/Cedega"
-#~ msgstr "Transgaming/Cedega"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "(%d pakkar – %d MB)"
-#~ msgstr[1] "(%d pakkar – %d MB)"
-
-#~ msgid "%d packages"
-#~ msgstr "%d pakkar"
-
-#~ msgid "Language"
-#~ msgstr "Språk"
-
-#~ msgid "License"
-#~ msgstr "Lisensvilkår"
-
-#~ msgid "Installation class"
-#~ msgstr "Installasjonsklasse"
-
-#~ msgid "Formatting"
-#~ msgstr "Formatering"
-
-#~ msgid "Choosing packages"
-#~ msgstr "Pakkeval"
-
-#~ msgid "Users"
-#~ msgstr "Brukarar"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "Adresse til spegelen?"
-#~ msgid "Networking"
-#~ msgstr "Nettverk"
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "Adresser må starta med «ftp://» eller «http://»."
-#~ msgid "Configure X"
-#~ msgstr "Set opp X"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr "Kontaktar %s-nettstaden for oversikt over speglar …"
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
#~ msgstr ""
-#~ "Får ikkje tilgang til kjernemodular som svarar til kjernen din (manglar "
-#~ "fila «%s»). Det kjem vanlegvis av at oppstartsdisketten er laga for ein "
-#~ "annan versjon enn installasjonsmediet. Du bør då laga ein ny, oppdatert "
-#~ "oppstartsdiskett."
+#~ "Klarte ikkje få kontakt med %s-nettstaden for å henta oversikt over "
+#~ "tilgjengelege speglar."
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Vel spegelen du vil installera pakkar frå"
diff --git a/perl-install/install/share/po/pa_IN.po b/perl-install/install/share/po/pa_IN.po
index ca8e003df..0a96b7c98 100644
--- a/perl-install/install/share/po/pa_IN.po
+++ b/perl-install/install/share/po/pa_IN.po
@@ -1,160 +1,231 @@
-# translation of DrakX.po to Punjabi
-# translation of DrakX.po to Panjabi
-# Copyright (C) 2005 Free Software Foundation, Inc.
-# Kanwaljeet Singh Brar <kanwaljeetbrar@yahoo.co.in>, 2005.
-# Jaswinder Singh Phulewala <jaswinderphulewala@yahoo.com>, 2005.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Jaswinder Singh Phulewala <jaswinderphulewala@yahoo.com>, 2005
+# Kanwaljeet Singh Brar <kanwaljeetbrar@yahoo.co.in>, 2005
msgid ""
msgstr ""
-"Project-Id-Version: DrakX\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2005-03-27 17:55+0530\n"
-"Last-Translator: Jaswinder Singh Phulewala <jaswinderphulewala@yahoo.com>\n"
-"Language-Team: Punjabi <punlinux-i18n@lists.soruceforge.net>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Panjabi (Punjabi) (India) (http://www.transifex.com/"
+"MageiaLinux/mageia/language/pa_IN/)\n"
+"Language: pa_IN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.9.1\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
#, c-format
-msgid "Do you have further supplementary media?"
-msgstr "ਕੀ ਤੁਹਾਡੇ ਕੋਲ ਅੱਗੇ ਅਨੁਪੂਰਕ ਮਾਧਿਅਮ ਹੈ?"
+msgid "Join Us!"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: ../../advertising/02_IM_mageia.pl:1
#, c-format
-msgid ""
-"The following media have been found and will be used during install: %s.\n"
-"\n"
-"\n"
-"Do you have a supplementary installation medium to configure?"
+msgid "Make it yours!"
msgstr ""
-#: any.pm:166
+#: ../../advertising/03_IM_mageia.pl:1
#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
+msgid "Your choice!"
+msgstr ""
-#: any.pm:167
+#: ../../advertising/04_IM_mageia.pl:1
#, c-format
-msgid "Network (HTTP)"
-msgstr "ਨੈੱਟਵਰਕ (HTTP)"
+msgid "Office tools"
+msgstr ""
-#: any.pm:168
+#: ../../advertising/05_IM_mageia.pl:1
#, c-format
-msgid "Network (FTP)"
-msgstr "ਨੈੱਟਵਰਕ (FTP)"
+msgid "Home entertainment"
+msgstr ""
-#: any.pm:169
+#: ../../advertising/06_IM_mageia.pl:1
#, c-format
-msgid "Network (NFS)"
+msgid "For kids"
+msgstr ""
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
msgstr ""
-#: any.pm:211
+#: ../../advertising/08_IM_mageia.pl:1
#, c-format
-msgid "URL of the mirror?"
-msgstr "ਪ੍ਰਤਿਬਿੰਬ ਦਾ URL?"
+msgid "For developers!"
+msgstr ""
-#: any.pm:217
+#: ../../advertising/09_IM_mageia.pl:1
#, c-format
-msgid "URL must start with ftp:// or http://"
+msgid "Thank you!"
msgstr ""
-#: any.pm:228
+#: ../../advertising/10_IM_mageia.pl:1
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr "ਉਪਲੱਬਧ ਪ੍ਰਤੀਬਿੰਬਾਂ ਦੀ ਸੂਚੀ ਵੇਖਣ ਲਈ ਮੈਂਡਰਿਵ-ਲੀਨਕਸ ਵੈਬ ਸਾਈਟ ਨਾਲ ਸੰਪਰਕ ਜਾਰੀ ਹੈ..."
+msgid "Be Free!"
+msgstr ""
-#: any.pm:233
-#, fuzzy, c-format
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr "ਕੀ ਤੁਹਾਡੇ ਕੋਲ ਅੱਗੇ ਅਨੁਪੂਰਕ ਮਾਧਿਅਮ ਹੈ?"
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
+#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr "ਉਪਲੱਬਧ ਪ੍ਰਤੀਬਿੰਬਾਂ ਦੀ ਸੂਚੀ ਵੇਖਣ ਲਈ ਮੈਂਡਰਿਵ-ਲੀਨਕਸ ਵੈਬ ਸਾਈਟ ਨਾਲ ਸੰਪਰਕ ਜਾਰੀ ਹੈ..."
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
+msgstr ""
+
+#: any.pm:162
+#, c-format
+msgid "Network (HTTP)"
+msgstr "ਨੈੱਟਵਰਕ (HTTP)"
+
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
+msgstr "ਨੈੱਟਵਰਕ (FTP)"
-#: any.pm:243
+#: any.pm:164
#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "ਪੈਕੇਜ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਪ੍ਰਤੀਬਿੰਬ ਚੁਣੋ"
+msgid "Network (NFS)"
+msgstr ""
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr ""
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr ""
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr ""
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr ""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr ""
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "ਡਾਇਰੈਕਟਰੀ"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr ""
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
msgstr "ਇਸ ਪ੍ਰਤੀਬਿੰਬ ਤੇ ਪੈਕੇਜ ਸੂਚੀ ਫਾਇਲ ਨਹੀਂ ਲੱਭ ਸਕੀ। ਜਾਂਚ ਕਰੋ ਕਿ ਸਥਿਤੀ ਠੀਕ ਹੈ।"
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "ਪਹਿਲਾਂ ਇੰਸਟਾਲ ਕੀਤੇ ਪੈਕੇਜਾਂ ਸੀ ਜਾਂਚ ਕਰ ਰਿਹਾ ਹੈ..."
+msgid "Core Release"
+msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
+msgid "Tainted Release"
+msgstr ""
+
+#: any.pm:329
+#, c-format
+msgid "Nonfree Release"
+msgstr ""
+
+#: any.pm:367
+#, c-format
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
msgstr ""
-#: any.pm:424
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "ਪਹਿਲਾਂ ਇੰਸਟਾਲ ਕੀਤੇ ਪੈਕੇਜਾਂ ਸੀ ਜਾਂਚ ਕਰ ਰਿਹਾ ਹੈ..."
+
+#: any.pm:593
#, c-format
msgid "Finding packages to upgrade..."
msgstr "ਨਵੀਨੀਕਰਨ ਲਈ ਪੈਕੇਜਾਂ ਦੀ ਖੋਜ..."
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:612
#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+msgid "Removing packages prior to upgrade..."
msgstr ""
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -167,82 +238,87 @@ msgstr ""
"\n"
"ਕੀ ਤੁਸੀਂ ਯਕੀਨਨ ਇਹ ਪੈਕੇਜ ਹਟਾਉਣੇ ਚਾਹੁੰਦੇ ਹੋ?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "ਫਾਇਲ %s ਪੜਨ ਵਿੱਚ ਗਲਤੀ"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "ਹੇਠਲੀਆਂ ਡਿਸਕਾਂ ਦੇ ਨਾਂ ਤਬਦੀਲ ਕੀਤੇ ਹਨ:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (ਪਹਿਲਾਂ %s ਨਾਂ ਸੀ)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr ""
-#: any.pm:1114
-#, fuzzy, c-format
+#: any.pm:1342
+#, c-format
msgid "FTP"
-msgstr "ਵੈਬ/FTP"
+msgstr ""
-#: any.pm:1114
-#, fuzzy, c-format
+#: any.pm:1342
+#, c-format
msgid "NFS"
-msgstr "PFS"
+msgstr ""
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "ਨੈੱਟਵਰਕ"
-#: any.pm:1137
-#, fuzzy, c-format
+#: any.pm:1365
+#, c-format
msgid "Please choose a media"
-msgstr "ਕਿਰਪਾ ਕਰਕੇ ਬੈਕਅੱਪ ਲਈ ਮਾਧਿਅਮ ਚੁਣੋ।"
+msgstr ""
-#: any.pm:1153
-#, fuzzy, c-format
+#: any.pm:1381
+#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "ਫਾਇਲ ਪਹਿਲਾਂ ਮੌਜੂਦ ਹੈ, ਇਹ ਵਰਤੋ?"
+msgstr ""
-#: any.pm:1157
-#, fuzzy, c-format
+#: any.pm:1385
+#, c-format
msgid "Permission denied"
-msgstr "ਅਧਿਕਾਰ"
+msgstr ""
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr ""
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr ""
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "ਵਿਭਾਗੀਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਪਰਦਾ-ਤਸਵੀਰ ਨਹੀਂ ਬਣਾ ਸਕਦਾ"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "ਪਰਦਾ-ਤਸਵੀਰਾਂ %s ਵਿੱਚ ਇੰਸਟਾਲੇਸ਼ਨ ਤੋਂ ਬਾਅਦ ਉਪਲੱਬਧ ਹੋਣਗੀਆਂ"
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
-msgstr "ਇੰਸਟਾਲ ਹੋ ਰਹੇ ਹਨ"
+msgstr ""
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "ਸੰਰਚਨਾ"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "ਤੁਹਾਨੂੰ %s ਵੀ ਫਾਰਮਿਟ ਕਰਨਾ ਜਰੂਰੀ ਹੈ"
@@ -266,369 +342,457 @@ msgstr "ਨੈੱਟਵਰਕ ਚਲਾਇਆ ਜਾ ਰਿਹਾ ਹੈ"
msgid "Bringing down the network"
msgstr "ਨੈੱਟਵਰਕ ਬੰਦ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"
-#: media.pm:703 media.pm:714
-#, fuzzy, c-format
-msgid "Downloading file %s..."
-msgstr "ਫਾਇਲਾਂ ਭੇਜ ਰਿਹਾ ਹੈ..."
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
+
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr ""
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "ਨਕਲ ਜਾਰੀ ਹੈ"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "ਹੋਣਾ ਜਰੂਰੀ ਹੈ"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "ਜਰੂਰੀ"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "ਬਹੁਤ ਵਧੀਆ"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "ਵਧੀਆ"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "ਹੋ ਸਕਦਾ ਹੈ"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "ਕੋਈ ਵੇਰਵਾ ਨਹੀ"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "ਵਰਕਸਟੇਸ਼ਨ"
+msgid "An error occurred:"
+msgstr ""
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "ਦਫਤਰ ਵਰਕਸਟੇਸ਼ਨ"
+msgid "A fatal error occurred: %s."
+msgstr "ਘਾਤਕ ਗਲਤੀ ਆਈ: %s"
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d ਇੰਸਟਾਲੇਸ਼ਨ ਸੰਚਾਰ ਅਸਫਲ"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
msgstr ""
-"ਦਫਤਰੀ ਪ੍ਰੋਗਰਾਮ: ਅੱਖਰਕਾਰ (OpenOffice.org Writer, Kword), ਸਾਰਣੀਕਾਰ (OpenOffice."
-"org Calc, Kspread), PDF ਦਰਸ਼ਕ, ਆਦਿ"
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "ਵਰਕਸਟੇਸ਼ਨ"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "ਦਫਤਰ ਵਰਕਸਟੇਸ਼ਨ"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"ਦਫਤਰੀ ਪ੍ਰੋਗਰਾਮ: ਅੱਖਰਕਾਰ (kword, abiword), ਸਾਰਣੀਕਾਰ (kspread, gnumeric), pdf "
-"ਦਰਸ਼ਕ, ਆਦਿ"
+"ਦਫਤਰੀ ਪ੍ਰੋਗਰਾਮ: ਅੱਖਰਕਾਰ (LibreOffice Writer, Kword), ਸਾਰਣੀਕਾਰ (OpenOffice.org "
+"Calc, Kspread), PDF ਦਰਸ਼ਕ, ਆਦਿ"
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "ਖੇਡ ਸਟੇਸ਼ਨ"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "ਮਨੋਰੰਜਨ ਪ੍ਰੋਗਰਾਮ: ਆਰਕੇਡ, ਬੋਰਡ, ਨੀਤੀ, ਆਦਿ"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "ਮਲਟੀਮੀਡੀਆ ਸਟੇਸ਼ਨ"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "ਸਾਊਂਡ ਅਤੇ ਵੀਡੀਓ ਚਲਾਉਣ/ਸੋਧਣ ਵਾਲੇ ਪ੍ਰੋਗਰਾਮ"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "ਇੰਟਰਨੈੱਟ ਸਟੇਸ਼ਨ"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr "ਪੱਤਰ ਅਤੇ ਖਬਰਾਂ ਪੜਨ ਅਤੇ ਭੇਜਣ ਲਈ (mutt, tin..) ਅਤੇ ਵੈਬ ਝਾਤੀ ਲਈ ਸੰਦਾਂ ਦਾ ਸਮੂਹ"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "ਨੈੱਟਵਰਕ ਕੰਪਿਊਟਰ (ਕਲਾਂਈਟ)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "ssh ਸਮੇਤ ਵੱਖ-ਵੱਖ ਪਰੋਟੋਕਾਲਾਂ ਲਈ ਕਲਾਂਈਟ"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ ਦੀ ਸੰਰਚਨਾ ਸਾਫ ਕਰਨ ਲਈ ਸੰਦ"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "ਕੰਸੋਲ ਸੰਦ"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "ਸੰਪਾਦਕ, ਸ਼ੈੱਲ, ਫਾਇਲ ਸੰਦ, ਟਰਮੀਨਲ"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "ਵਿਕਾਸ"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "C ਅਤੇ C++ ਵਿਕਾਸ ਲਾਇਬ੍ਰੇਰੀਆਂ, ਪ੍ਰੋਗਰਾਮ ਅਤੇ ਸ਼ਾਮਿਲ ਫਾਇਲਾਂ"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "ਦਸਤਾਵੇਜ਼"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "ਲੀਨਕਸ ਅਤੇ ਮੁਕਤ ਸਾਫਟਵੇਅਰ ਉੱਪਰ ਕਿਤਾਬਾਂ ਅਤੇ Howto's"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "ਲੀਨਕਸ ਮਿਆਰੀ ਮੁੱਢ। ਤੀਜੀ ਪਾਰਟੀ ਕਾਰਜ ਸਹਿਯੋਗ"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "ਵੈਬ ਸਰਵਰ"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "ਗਰੁੱਪਵੇਅਰ"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Kolab ਸਰਵਰ"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "ਫਾਇਲਵਾਲ/ਰਾਊਟਰ"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "ਇੰਟਰਨੈੱਟ ਗੇਟਵੇ"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "ਪੱਤਰ/ਖਬਰ"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Postfix ਪੱਤਰ ਸਰਵਰ, Inn ਖਬਰ ਸਰਵਰ"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "ਡਾਇਰੈਕਟਰੀ ਸਰਵਰ"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP ਸਰਵਰ"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "ਡੋਮੇਨ ਨਾਂ ਅਤੇ ਨੈੱਟਵਰਕ ਜਾਣਕਾਰੀ ਸਰਵਰ"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "ਫਾਇਲ ਅਤੇ ਪ੍ਰਿੰਟਰ ਸ਼ੇਅਰਿੰਗ ਸਰਵਰ"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "NFS ਸਰਵਰ, ਸਾਂਬਾ ਸਰਵਰ"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "ਡਾਟਾਬੇਸ "
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL ਅਤੇ MySQL ਡਾਟਾਬੇਸ ਸਰਵਰ"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "PostgreSQL ਅਤੇ MariaDB ਡਾਟਾਬੇਸ ਸਰਵਰ"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "ਵੈਬ/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "ਪੱਤਰ"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Postfix ਪੱਤਰ ਸਰਵਰ"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL ਜਾਂ MySQL ਡਾਟਾਬੇਸ ਸਰਵਰ"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL ਜਾਂ MariaDB ਡਾਟਾਬੇਸ ਸਰਵਰ"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "ਨੈੱਟਵਰਕ ਕੰਪਿਊਟਰ ਸਰਵਰ"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "NFS ਸਰਵਰ, SMB ਸਰਵਰ, ਪਰਾਕਸੀ ਸਰਵਰ, ssh ਸਰਵਰ"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "ਗਰਾਫੀਕਲ ਵਾਤਾਵਰਨ"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "ਕੇ ਡੀ ਈ ਵਰਕਸਟੇਸ਼ਨ"
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr "ਕੇ ਵਿਹੜਾ ਵਾਤਾਵਰਨ, ਸਾਥੀ ਸੰਦਾਂ ਦੇ ਭੰਡਾਰ ਨਾਲ ਮੁੱਢਲਾ ਗਰਾਫਿਕਲ ਵਾਤਾਵਰਨ"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "ਗਨੋਮ ਵਰਕਸਟੇਸ਼ਨ"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr "ਉਪਭੋਗੀ-ਅਨੁਕੂਲ ਕਾਰਜ ਸਮੂਹ ਅਤੇ ਵਿਹੜਾ ਸੰਦਾਂ ਨਾਲ ਇੱਕ ਗਰਾਫੀਕਲ ਵਾਤਾਵਰਨ"
-#: share/meta-task/compssUsers.pl:142
-#, fuzzy, c-format
-msgid "IceWm Desktop"
-msgstr "ਵਿਹੜਾ"
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "ਹੋਰ ਗਰਾਫੀਕਲ ਵਿਹੜੇ"
-#: share/meta-task/compssUsers.pl:147
-#, fuzzy, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm, ਆਦਿ"
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "ਸਹੂਲਤਾਂ"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH ਸਰਵਰ"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Webmin ਰਿਮੋਟ ਸੰਰਚਨਾ ਸਰਵਰ"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "ਨੈੱਟਵਰਕ ਸਹੂਲਤਾਂ/ਪ੍ਰਬੰਧਨ"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "ਪ੍ਰਬੰਧਨ ਸੰਦ, ਕਾਰਜ ਅਕਾਊਂਟਿੰਗ, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
-#, fuzzy, c-format
-msgid "Mandriva Wizards"
-msgstr "ਮੈਂਡਰਿਵ-ਸਾਫਟ ਤਖਤੀ"
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr ""
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "ਸਰਵਰ ਸੰਰਚਨਾ ਲਈ ਤਖਤੀ"
@@ -642,7 +806,7 @@ msgstr ""
"ਗਲਤੀ ਹੋਈ ਹੈ, ਪਰ ਮੈਂ ਨਹੀਂ ਜਾਣਦਾ ਕਿ ਇਸ ਦਾ ਕਿਸ ਤਰਾਂ ਪ੍ਰਬੰਧਨ ਕਰਨਾ ਹੈ।\n"
"ਆਪਣੇ ਖਤਰੇ ਤੇ ਜਾਰੀ ਕਰੋ।"
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -661,202 +825,252 @@ msgstr "ਪਗ਼ `%s' ਸ਼ੁਰੂ ਹੋ ਰਿਹਾ ਹੈ\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "ਮੈਂਡਰਿਵ-ਲੀਨਕਸ ਇੰਸਟਾਲੇਸ਼ਨ %s "
+msgid "%s Installation %s"
+msgstr ""
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> ਇਕਾਈਆਂ ਵਿੱਚ "
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"ਤੁਹਾਡੇ ਸਿਸਟਮ ਤੇ ਸਰੋਤ ਘੱਟ ਹਨ। ਤੁਹਾਨੂੰ ਮੈਂਡਰਿਵ-ਲੀਨਕਸ ਇੰਸਟਾਲ ਕਰਨ ਸਮੇਂ ਮੁਸ਼ਕਿਲ\n"
-"ਆ ਸਕਦੀ ਹੈ। ਜੇ ਅਜਿਹਾ ਹੋਇਆ, ਤੁਸੀਂ ਪਾਠ ਇੰਸਟਾਲੇਸ਼ਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ। ਇਸ ਲਈ,\n"
-"`F1' ਦਬਾਓ ਜਦੋਂ CDROM ਤੋਂ ਬੂਟ ਕਰਦੇ ਹੋ, ਫਿਰ `ਪਾਠ' ਭਰੋ।"
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "ਪੈਕੇਜ ਸਮੂਹ ਚੋਣ"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "ਵੱਖ-ਵੱਖ ਪੈਕੇਜ ਚੋਣ"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "ਕੁੱਲ ਅਕਾਰ: %d / %d ਮੈਬਾ"
+msgid "Unselect All"
+msgstr "ਸਭ ਨਾ-ਚੁਣੋ"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "ਗਲਤ ਪੈਕੇਜ"
+msgid "Total size: %d / %d MB"
+msgstr "ਕੁੱਲ ਅਕਾਰ: %d / %d ਮੈਬਾ"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "ਵਰਜਨ:"
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "ਅਕਾਰ:"
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d ਕਿਬਾ\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "ਖਾਸੀਅਤ:"
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "ਤੁਸੀਂ ਇਹ ਪੈਕੇਜ ਚੁਣ/ਨਾ-ਚੁਣ ਨਹੀਂ ਸਕਦੇ"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "%s ਗੁੰਮ ਹੋਣ ਕਾਰਨ"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "%s ਲੋੜ ਪੂਰੀ ਨਾ ਹੋਣ ਕਰਕੇ"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "%s ਵਰਤੋਂ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "%s ਰੱਖਣ ਲਈ"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr "ਤੁਸੀਂ ਇਹ ਪੈਕੇਜ ਨਹੀਂ ਚੁਣ ਸਕਦੇ ਕਿਉਂਕਿ ਇੱਥੇ ਇਸ ਨੂੰ ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਲੋੜੀਂਦੀ ਥਾਂ ਨਹੀਂ ਹੈ।"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "ਹੇਠਲੇ ਪੈਕੇਜ ਇੰਸਟਾਲ ਹੋ ਰਹੇ ਹਨ"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "ਹੇਠਲੇ ਪੈਕੇਜ ਹਟਾਏ ਜਾ ਰਹੇ ਹਨ"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "ਇਹ ਲਾਜ਼ਮੀ ਪੈਕੇਜ ਹੈ, ਇਸ ਦੀ ਚੋਣ ਨਹੀਂ ਹਟਾਈ ਜਾ ਸਕਦੀ"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "ਤੁਸੀਂ ਇਸ ਪੈਕੇਜ ਦੀ ਚੋਣ ਨਹੀਂ ਹਟਾ ਸਕਦੇ। ਇਹ ਪਹਿਲਾਂ ਹੀ ਇੰਸਟਾਲ ਹੈ।"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "ਤੁਸੀਂ ਇਸ ਪੈਕੇਜ ਦੀ ਚੋਣ ਨਹੀਂ ਹਟਾ ਸਕਦੇ। ਇਸ ਦਾ ਨਵੀਨੀਕਰਨ ਜਰੂਰੀ ਹੈ।"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "ਚੁਣੇ ਪੈਕੇਜ ਸਵੈ ਹੀ ਵਿਖਾਓ"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "ਇੰਸਟਾਲ"
-#: steps_gtk.pm:436
-#, fuzzy, c-format
+#: steps_gtk.pm:519
+#, c-format
msgid "Load/Save selection"
-msgstr "ਪੈਕੇਜ ਚੋਣ"
+msgstr ""
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "ਪੈਕੇਜ ਚੋਣ ਨਵੀਨੀਕਰਨ ਜਾਰੀ ਹੈ"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "ਘੱਟੋ-ਘੱਟ ਇੰਸਟਾਲ"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "ਸਾਫਟਵੇਅਰ ਪ੍ਰਬੰਧਨ"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਪੈਕੇਜ ਚੁਣੋ"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "ਇੰਸਟਾਲ ਹੋ ਰਹੇ ਹਨ"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "ਕੋਈ ਵੇਰਵਾ ਨਹੀਂ"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "ਬਾਕੀ ਸਮਾਂ"
+msgid "Time remaining:"
+msgstr ""
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "ਅਨੁਮਾਨ ਜਾਰੀ ਹੈ"
+msgid "(estimating...)"
+msgstr ""
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d ਪੈਕੇਜ"
-msgstr[1] "%d ਪੈਕੇਜ"
+msgstr[0] ""
+msgstr[1] ""
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "ਸਾਰ"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "ਸੰਰਚਨਾ"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "ਸੰਰਚਿਤ ਨਹੀਂ"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
@@ -865,105 +1079,103 @@ msgstr ""
"ਹੇਠਲੇ ਇੰਸਟਾਲੇਸ਼ਨ ਮਾਧਿਅਨ ਲੱਭੇ ਹਨ।\n"
"ਜੇ ਤੁਸੀਂ ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੁਝ ਛੱਡਣੇ ਚਾਹੁੰਦੇ ਹੋ, ਤੁਸੀਂ ਹੁਣ ਰੱਦ ਕਰ ਸਕਦੇ ਹੋ।"
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
"ਤੁਹਾਡੇ ਕੋਲ ਇੰਸਟਾਲੇਸ਼ਨ ਤੋਂ ਪਹਿਲਾਂ CDs ਦੇ ਸੰਖੇਪ ਹਾਰਡ ਡਰਾਈਵ ਤੇ ਨਕਲ ਕਰਨ ਦੀ ਚੋਣ ਹੈ।\n"
"ਇਹ ਫਿਰ ਹਾਰਡ ਡਰਾਈਵ ਤੋਂ ਜਾਰੀ ਕਰੇਗਾ ਅਤੇ ਪੈਕੇਜ ਸਿਸਟਮ ਪੂਰੀ ਤਰਾਂ ਇੰਸਟਾਲ ਹੋਣ ਤੋਂ ਬਾਅਦ ਵੀ ਉਪਲੱਬਧ "
"ਰਹਿਣਗੇ।"
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "ਪੂਰੀ CDs ਨਕਲ ਕਰੋ"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "ਇੱਕ ਗਲਤੀ ਆਈ ਹੈ"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
+msgid "Please choose your keyboard layout"
msgstr "ਕਿਰਪਾ ਕਰਕੇ ਆਪਣਾ ਕੀਬੋਰਡ ਖਾਕਾ ਚੁਣੋ।"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "ਇੱਥੇ ਉਪਲੱਬਧ ਕੀਬੋਰਡਾਂ ਦੀ ਸੂਚੀ ਹੈ"
+msgid "Here is the full list of available keyboards:"
+msgstr ""
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "ਇੰਸਟਾਲ/ਨਵੀਨੀਕਰਨ"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "ਕੀ ਇਹ ਇੰਸਟਾਲ ਜਾਂ ਨਵੀਨੀਕਰਨ ਹੈ?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
-msgstr "ਇੰਸਟਾਲ"
+msgstr "ਇੰਸਟਾਲ ਕਰੋ"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "ਨਵੀਨੀਕਰਨ %s"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
+msgid "Encryption key for %s"
+msgstr "%s ਲਈ ਇਨਕ੍ਰਿਪਸ਼ਨ ਕੁੰਜੀ"
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
+msgid "Cancel installation, reboot system"
msgstr ""
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
-msgstr "%s ਲਈ ਇਨਕ੍ਰਿਪਸ਼ਨ ਕੁੰਜੀ"
+msgid "New Installation"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
-msgstr "IDE ਸੰਰਚਨਾ ਹੋ ਰਹੀ ਹੈ"
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+msgid "CD/DVD"
msgstr ""
-"1ਮੈਬਾ ਬੂਟਸਟਰੈਪ ਲਈ ਕੋਈ ਖਾਲੀ ਥਾਂ ਨਹੀਂ ਹੈ! ਇੰਸਟਾਲ ਜਾਰੀ ਰਹੇਗੀ, ਪਰ ਤੁਹਾਡਾ ਸਿਸਟਮ ਬੂਟ ਕਰਨ ਲਈ, "
-"ਤੁਹਾਨੂੰ DiskDrake ਵਿੱਚ ਬੂਟਸਟਰੈਪ ਭਾਗ ਬਣਾਉਣ ਦੀ ਲੋੜ ਪਵੇਗੀ।"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+msgid "Configuring CD/DVD"
msgstr ""
-"PPC PReP Boot ਬੂਟਸਟਰੈਪ ਲਈ ਕੋਈ ਖਾਲੀ ਥਾਂ ਨਹੀਂ ਹੈ! ਇੰਸਟਾਲ ਜਾਰੀ ਰਹੇਗੀ, ਪਰ ਤੁਹਾਡਾ ਸਿਸਟਮ ਬੂਟ "
-"ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ DiskDrake ਵਿੱਚ ਬੂਟਸਟਰੈਪ ਭਾਗ ਬਣਾਉਣ ਦੀ ਲੋੜ ਪਵੇਗੀ।"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -975,73 +1187,71 @@ msgstr ""
"ਕਿਰਪਾ ਕਰਕੇ \"%s\" ਲੇਬਲ ਵਾਲੀ Cd-Rom ਆਪਣੀ ਡਰਾਈਵ ਵਿੱਚ ਪਾਓ ਅਤੇ ਸਮਾਪਤੀ ਤੇ ਠੀਕ ਹੈ ਦਬਾਓ\n"
"ਜੇ ਤੁਹਾਡੇ ਕੋਲ ਇਹ ਨਹੀਂ ਹੈ, ਇਸ Cd-Rom ਤੋਂ ਇੰਸਟਾਲੇਸ਼ਨ ਰੋਕਣ ਲਈ ਰੱਦ ਕਰੋ ਦਬਾਓ।"
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "ਉਪਲੱਬਧ ਪੈਕੇਜ ਲੋਡ ਕਰ ਰਿਹਾ ਹੈ..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-#: steps_interactive.pm:405
-#, fuzzy, c-format
+#: steps_interactive.pm:428
+#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-"ਕਿਰਪਾ ਕਰਕੇ ਫਲਾਪੀ ਤੇ ਪੈਕੇਜ ਲੋਡ ਜਾਂ ਸੰਭਾਲ ਚੁਣੋ।\n"
-"ਫਾਰਮਿਟ ਫਲਾਪੀਆਂ ਦੁਆਰਾ ਬਣਾਏ auto_install ਵਾਂਗ ਹੈ।"
-#: steps_interactive.pm:407
-#, fuzzy, c-format
+#: steps_interactive.pm:430
+#, c-format
msgid "Load"
-msgstr "ਪੋਲੈਂਡ"
+msgstr ""
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "ਸੰਭਾਲੋ"
-#: steps_interactive.pm:415
-#, fuzzy, c-format
+#: steps_interactive.pm:438
+#, c-format
msgid "Bad file"
-msgstr "ਅਸਲੀ ਫਾਇਲ"
+msgstr ""
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "ਗਨੋਮ"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "ਘੱਟੋ-ਘੱਟ ਇੰਸਟਾਲ"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "ਚੁਣਿਆ ਅਕਾਰ ਉਪਲੱਬਧ ਥਾਂ ਨਾਲੋਂ ਜਿਆਦਾ ਹੈ"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "ਇੰਸਟਾਲ ਦੀ ਕਿਸਮ"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1050,82 +1260,126 @@ msgstr ""
"ਤੁਸੀਂ ਪੈਕੇਜਾਂ ਦਾ ਕੋਈ ਸਮੂਹ ਨਹੀਂ ਚੁਣਿਆ।\n"
"ਕਿਰਪਾ ਕਰਕੇ ਘੱਟੋ-ਘੱਟ ਇੰਸਟਾਲੇਸ਼ਨ ਚੁਣੋ:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "X ਨਾਲ"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "ਮੁੱਢਲੀ ਦਸਤਾਵੇਜ਼ੀ ਨਾਲ (ਸਿਫਾਰਸ਼ੀ)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "ਯਕੀਨਨ ਘੱਟੋ-ਘੱਟ ਇੰਸਟਾਲ (ਖਾਸ ਤੌਰ ਤੇ urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "ਇੰਸਟਾਲੇਸ਼ਨ ਤਿਆਰੀ ਹੋ ਰਹੀ ਹੈ"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "%s ਪੈਕੇਜ ਇੰਸਟਾਲ ਹੋ ਰਹੀ ਹੈ"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "ਪੈਕੇਜ ਕ੍ਰਮਬੱਧ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "ਕਿਸੇ ਤਰਾਂ ਜਾਰੀ ਰੱਖੋ?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr ""
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr ""
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr ""
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "ਪੈਕੇਜ ਚੋਣ ਸੰਭਾਲੋ"
+msgstr ""
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ:"
+msgstr ""
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "ਪੋਸਟ-ਇੰਸਟਾਲ ਸੰਰਚਨਾ"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "ਨਵਿਨੀਕਰਨ"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "ਹੇਠਲੇ ਪੈਕੇਜ ਇੰਸਟਾਲ ਹੋ ਰਹੇ ਹਨ"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "ਮਾਧਿਅਮ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਅਸਫਲ"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1138,144 +1392,97 @@ msgid ""
"Do you want to install the updates?"
msgstr ""
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "ਉਪਲੱਬਧ ਪੈਕੇਜਾਂ ਦੀ ਸੂਚੀ ਵੇਖਣ ਲਈ ਪ੍ਰਤੀਬਿੰਬ ਨਾਲ ਸੰਪਰਕ ਜਾਰੀ ਹੈ..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "ਪ੍ਰਤੀਬਿੰਬ %s ਨਾਲ ਸੰਪਰਕ ਲਈ ਅਸਮਰਥ"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s, %s ਉੱਪਰ"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "ਜੰਤਰ"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "ਸਾਊਂਡ ਕਾਰਡ"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "ਕੀ ਤੁਹਾਡੇ ਕੋਲ ISA ਸਾਊਂਡ ਕਾਰਡ ਹੈ?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr "ਆਪਣੀ ਸਾਊਂਡ ਕਾਰਡ ਸੰਰਚਨਾ ਲਈ ਇੰਸਟਾਲੇਸ਼ਨ ਮਗਰੋਂ \"alsaconf\" ਜਾਂ \"sndconfig\" ਚਲਾਓ"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "ਕੋਈ ਸਾਊਂਡ ਕਾਰਡ ਨਹੀਂ ਲੱਭਿਆ। ਇੰਸਟਾਲੇਸ਼ਨ ਮਗਰੋਂ \"harddrake\" ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "ਗਰਾਫੀਕਲ ਇੰਟਰਫੇਸ"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "ਨੈੱਟਵਰਕ ਤੇ ਇੰਟਰਨੈੱਟ"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "ਪਰਾਕਸੀ"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "ਸੰਰਚਿਤ"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "ਸੁਰੱਖਿਆ ਪੱਧਰ"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "ਫਾਇਰਵਾਲ"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "ਸਰਗਰਮ"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "ਅਯੋਗ"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "ਤੁਸੀਂ X ਸੰਰਚਿਤ ਨਹੀਂ ਕੀਤਾ। ਕੀ ਤੁਸੀਂ ਯਕੀਨਨ ਇਸ ਨੂੰ ਚਾਹੁੰਦੇ ਹੋ?"
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "ਬੂਟ-ਲੋਡਰ ਤਿਆਰ ਕਰ ਰਿਹਾ ਹੈ..."
-
-#: steps_interactive.pm:1018
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Preparing initial startup program..."
msgstr ""
-"ਤੁਹਾਡੇ ਕੋਲ ਓਲਡਵਰਡ ਜਾਂ ਅਣਪਛਾਤੀ ਮਸ਼ੀਨ ਲੱਗਦੀ ਹੈ, yaboot ਤੁਹਾਡੇ ਲਈ ਕੰਮ ਨਹੀਂ ਕਰੇਗਾ। ਇੰਸਟਾਲ "
-"ਜਾਰੀ ਰਹੇਗਾ, ਪਰ ਤੁਹਾਨੂੰ ਆਪਣੀ ਮਸ਼ੀਨ ਬੂਟ ਕਰਨ ਲਈ BootX ਜਾਂ ਹੋਰ ਢੰਗ ਵਰਤਣ ਦੀ ਲੋੜ ਪਵੇਗੀ। ਰੂਟ "
-"ਫਾਇਲ ਸਿਸਟਮ ਲਈ ਕਰਨਲ ਆਰਗੂਮੈਂਟ ਹਨ: root=%s"
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "ਕੀ ਤੁਸੀਂ aboot ਵਰਤਣਾ ਚਾਹੁੰਦੇ ਹੋ?"
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
+msgid "Be patient, this may take a while..."
msgstr ""
-"aboot ਇੰਸਟਾਲ ਕਰਨ ਵਿੱਚ ਗਲਤੀ, \n"
-"ਇੰਸਟਾਲੇਸ਼ਨ ਮਜਬੂਰ ਕਰੋ ਭਾਵੇਂ ਇਹ ਪਹਿਲਾ ਭਾਗ ਨਕਾਰਾ ਕਰਦਾ ਹੈ?"
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr "ਇਸ ਸੁਰੱਖਿਆ ਪੱਧਰ ਵਿੱਚ, Windows ਭਾਗ ਵਿਚਲੀ ਫਾਇਲਾਂ ਵਰਤਣ ਲਈ ਪ੍ਰਬੰਧਕ ਨੂੰ ਮਨਾਹੀ ਹੈ।"
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "ਡਰਾਈਵ %s ਵਿੱਚ ਖਾਲੀ ਫਲਾਪੀ ਪਾਓ"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "ਸਵੈ ਇੰਸਟਾਲ ਫਲਾਪੀ ਬਣਾ ਰਿਹਾ ਹੈ..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1286,51 +1493,16 @@ msgstr ""
"\n"
"ਕੀ ਤੁਸੀਂ ਹੁਣ ਯਕੀਨਨ ਬਾਹਰ ਜਾਣਾ ਹੈ?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "ਮੁਬਾਰਕਾਂ"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "ਮੁੜ-ਚਾਲੂ"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "ਸਵੈ ਇੰਸਟਾਲ ਫਲਾਪੀ ਬਣਾਓ"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"ਜੇ ਚਾਹੁੰਦੇ ਹੋ, ਸਵੈ ਇੰਸਟਾਲ ਪੂਰੀ ਤਰਾਂ ਸਵੈਚਾਲਤ ਹੋ ਸਕਦਾ ਹੈ\n"
-"ਇਸ ਮੁੱਦੇ ਵਿੱਚ ਇਹ ਹਾਰ ਡਰਾਈਵ ਤੇ ਅਧਿਕਾਰ ਲਵੇਗਾ!!\n"
-"(ਇਸ ਦਾ ਮਤਲਬ ਹੈ ਹੋਰ ਬਕਸੇ ਤੇ ਇੰਸਟਾਲੇਸ਼ਨ ਹੋਵੇਗੀ)।\n"
-"\n"
-"ਤੁਸੀਂ ਇੰਸਟਾਲੇਸ਼ਨ ਮੁੜ ਚਲਾਉਣ ਲਈ ਚੁਣ ਸਕਦੇ ਹੋ।\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "ਮੁੜ-ਚਲਾਓ"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "ਸਵੈਚਾਲਤ"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "ਪੈਕੇਜ ਚੋਣ ਸੰਭਾਲੋ"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1421,13 +1593,6 @@ msgid ""
"Users"
msgstr "ਉਪਭੋਗੀ"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "ਨੈਟਵਰਕਿੰਗ"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1470,67 +1635,10 @@ msgid ""
"Exit"
msgstr "ਬਾਹਰ"
-#~ msgid "All"
-#~ msgstr "ਸਭ"
-
-#~ msgid "TV card"
-#~ msgstr "TV ਕਾਰਡ"
-
-#~ msgid "Boot"
-#~ msgstr "ਬੂਟ"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "ਪ੍ਰਮਾਣਿਕਤਾ"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "%d ਪੈਕੇਜ"
-#~ msgstr[1] "%d ਪੈਕੇਜ"
-
-#~ msgid "%d packages"
-#~ msgstr "%d ਪੈਕੇਜ"
-
-#~ msgid "Language"
-#~ msgstr "ਬੋਲੀ"
-
-#~ msgid "License"
-#~ msgstr "ਲਾਈਸੈਂਸ"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "ਇੰਸਟਾਲੇਸ਼ਨ ਸ਼੍ਰੇਣੀਆਂ ਚੁਣੋ"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "ਅਨੁਮਾਨ ਜਾਰੀ ਹੈ"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "ਇੰਸਟਾਲ ਕਰਨ ਲਈ ਪੈਕੇਜ ਚੁਣੋ"
-
-#~ msgid "Users"
-#~ msgstr "ਉਪਭੋਗੀ"
-
-#~ msgid "Networking"
-#~ msgstr "ਨੈਟਵਰਕਿੰਗ"
-
-#~ msgid "Configure X"
-#~ msgstr "X ਸੰਰਚਨਾ"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "ਪ੍ਰਤਿਬਿੰਬ ਦਾ URL?"
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
-#~ msgstr ""
-#~ "ਤੁਹਾਡੇ ਕਰਨਲ ਦੇ ਅਨੁਸਾਰੀ ਕਰਨਲ ਮੈਡਿਊਲਾਂ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਸਕਦਾ (ਫਾਇਲ %s ਗੁੰਮ ਹੈ), ਆਮ ਤੌਰ ਤੇ ਇਸ "
-#~ "ਦਾ ਮਤਲਬ ਹੈ ਤੁਹਾਡੀ ਬੂਟ ਫਲਾਪੀ ਇੰਸਟਾਲੇਸ਼ਨ ਮਾਧਿਅਮ ਨਾਲ ਸਮਕਾਲੀ ਨਹੀਂ ਹੈ (ਕਿਰਪਾ ਕਰਕੇ ਨਵੀਂ "
-#~ "ਬੂਟ ਫਲਾਪੀ ਬਣਾਓ)"
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "ਪੈਕੇਜ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਪ੍ਰਤੀਬਿੰਬ ਚੁਣੋ"
diff --git a/perl-install/install/share/po/pl.po b/perl-install/install/share/po/pl.po
index c4175faf3..c25205a7b 100644
--- a/perl-install/install/share/po/pl.po
+++ b/perl-install/install/share/po/pl.po
@@ -1,37 +1,97 @@
-# translation of DrakX.po to Polish
-# Polish translation file
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
-# tomek, 2005.
-# Paweł Jabłoński <pj@linux-mandrake.com>, 2001,2002.
-# Arkadiusz Lipiec <arkadiusz.lipiec@gazeta.pl>, 2002-2004.
-# Tomasz Bednarski <bednarski@skrzynka.pl>, 2005.
-# Tomasz Bednarski <tomasz.bednarski@mandriva.pl>, 2005.
-# Maciej Walkowiak <m.walkowiak@computer.org>, 2005.
-# Tomasz Bednarski - Mandriva Poland <tomasz.bednarski@mandriva.pl>, 2006, 2007.
-# Tomasz Bednarski Mandriva Poland <tomasz.bednarski@mandriva.pl>, 2006.
-# Mandriva Poland <biuro@mandriva.pl>, 2006.
-# Tomasz Bednarski - Amazis.net <tomasz.bednarski@amazis.pl>, 2007.
+# Translators:
+# Amazis.net sp. z o.o. - Tomasz Bednarski <tomasz.bednarski@amazis.pl>, 2009
+# Amazis.net sp. z o.o. - Tomasz Bednarski <tomasz.bednarski@mandriva.pl>, 2008
+# Daniel Napora <napcok@gmail.com>, 2013,2015
+# Maciej Walkowiak <m.walkowiak@computer.org>, 2005
+# Mandriva Poland <biuro@mandriva.pl>, 2006
+# Paweł Jabłoński <pj@linux-mandrake.com>, 2001-2002
+# Szymon Scholz <szymonscholz@gmail.com>, 2016
+# Tomasz Bednarski - Amazis.net <tomasz.bednarski@amazis.pl>, 2007
+# Tomasz Bednarski - Amazis.net <tomasz.bednarski@mandriva.pl>, 2008
+# Tomasz Bednarski <bednarski@skrzynka.pl>, 2005
+# Tomasz Bednarski - Mandriva Poland <tomasz.bednarski@mandriva.pl>, 2006-2007
+# Tomasz Bednarski Mandriva Poland <tomasz.bednarski@mandriva.pl>, 2006
+# Tomasz Bednarski <tomasz.bednarski@mandriva.pl>, 2005
+# tomek, 2005
+# Szymon Scholz <szymonscholz@gmail.com>, 2016
msgid ""
msgstr ""
-"Project-Id-Version: DrakX\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-10-02 11:15+0200\n"
-"Last-Translator: Tomasz Bednarski - Amazis.net <tomasz.bednarski@amazis.pl>\n"
-"Language-Team: Polish <pl@li.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Daniel Napora <napcok@gmail.com>\n"
+"Language-Team: Polish (http://www.transifex.com/MageiaLinux/mageia/language/"
+"pl/)\n"
+"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n"
+"%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n"
+"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Dołącz do nas!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Uczyń ją swoją!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "Twój wybór!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Narzędzia biurowe"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Domowe centrum rozrywki"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "Dla dzieci"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "Dla rodziny!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "Dla developerów!"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Dziękujemy!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Bądź wolny!"
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
msgstr "Czy posiadasz inne dodatkowe nośniki?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -45,91 +105,57 @@ msgstr ""
"\n"
"Czy chcesz skonfigurować dodatkowe nośniki instalacyjne?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Sieć (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Sieć (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Sieć (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "Adres URL dla serwera zwierciadlanego?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "Adres URL musi zaczynać się od ftp:// lub http://"
-
-#: any.pm:228
-#, c-format
-msgid "Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Łączenie ze stroną Mandriva Linux w celu pobrania listy dostępnych "
-"serwerów..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr "Łączenie ze stroną Mandriva Linux w celu pobrania listy dostępnych serwerów"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Wybierz serwer lustrzany, z którego chcesz pobrać pakiety"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "Konfiguracja NFS"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr "Wprowadź nazwę komputera i katalog nośnika NFS"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr "Brak nazwy hosta"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "Oznaczenie katalogu musi się zaczynać od znaku \"/\""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "Nazwa komputera udostępniające udziały NFS?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Katalog"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "Dodatkowe"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
@@ -138,48 +164,96 @@ msgstr ""
"Nie można znaleźć listy pakietów na tym serwerze. Sprawdź poprawność "
"lokalizacji."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Wyszukiwanie już zainstalowanych pakietów..."
+msgid "Core Release"
+msgstr "Core Release"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Usuwanie pakietów w celu wykonania aktualizacji..."
+msgid "Tainted Release"
+msgstr "Tainted Release"
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Wyszukiwanie pakietów do uaktualnienia..."
+msgid "Nonfree Release"
+msgstr "Nonfree Release"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"Wybrano następujące serwery: %s\n"
-"\n"
-"\n"
-"Będą one domyślnie uruchamiane. Nie zawierają one żadnych znanych błędów\n"
-"związanych z bezpieczeństwem, lecz błędy takie mogą zostać w przyszłości "
-"ujawnione.\n"
-"W takiej sytuacji należy dokonać jak najszybszego uaktualnienia.\n"
-"\n"
-"\n"
-"Czy na pewno chcesz zainstalować te serwery?\n"
+"Niektóre urządzenia w twoim komputerze wymagają nie-wolnego firmware, aby "
+"wolne sterowniki mogły działać."
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "Warto włączyć \"%s\""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "\"%s\" zawiera różne komponenty systemu oraz aplikacje"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "\"%s\" zawiara nie-wolne oprogramowanie.\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"Zawiera również firmware niezbędne do działania niektórych urządzeń (jak: "
+"niektóre karty ATI/AMD, niektóre karty sieciowe, kontrolery RAID, ...)"
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"\"%s\" zawiara oprogramowanie, które w niektórych krajach nie może być "
+"dystrybuowane ze względu na patenty."
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr "Zawiera również oprogramowanie z \"%s\" "
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "Możesz włączyć więcej nośników jeśli chcesz."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Ten nośnik zawiera aktualizacje pakietów dla nośnika \"%s\""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Wyszukiwanie już zainstalowanych pakietów..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Wyszukiwanie pakietów do uaktualnienia..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Usuwanie pakietów w celu wykonania aktualizacji..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -192,82 +266,87 @@ msgstr ""
"\n"
"Czy naprawdę chcesz usunąć te pakiety?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Błąd odczytu pliku %s"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "Zmieniono nazwy następujących dysków:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (wcześniejsza nazwa: %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Sieć"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "Proszę wybrać nośnik"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Plik już istnieje. Nadpisać?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Dostęp zabroniony"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "Niepoprawna nazwa NFS"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "Nieprawidłowy nośnik %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Nie można pobrać zrzutu ekranu przed partycjonowaniem"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Zrzuty ekranu będą dostępne po instalacji w %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Instalacja"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Konfiguracja"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Należy także sformatować %s"
@@ -291,47 +370,69 @@ msgstr "Uruchamianie sieci"
msgid "Bringing down the network"
msgstr "Zatrzymywanie sieci"
-#: media.pm:703 media.pm:714
+#: media.pm:397
#, c-format
-msgid "Downloading file %s..."
-msgstr "Pobieranie pliku %s..."
+msgid "Please wait, retrieving file"
+msgstr "Proszę czekać. Pobieranie pliku"
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "dodanie nośnika było niemożliwe"
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr "Kopiowanie wybranych pakietów do późniejszego wykorzystania"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Kopiowanie w toku"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "trzeba posiadać"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "ważny"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "bardzo fajny"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "fajny"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "taki sobie"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "Pobieram informacje o pakietach z meta-danych XML..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Brak pliku z informacjami o programach znajdujących się na nośniku \"%s\". "
+"Wynik dla pakietu %s jest częściowy"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Brak opisu"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
@@ -340,60 +441,76 @@ msgstr ""
"Niektóre pakiety wymagane przez %s nie mogą zostać zainstalowane:\n"
"%s"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "Wystąpił błąd:"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "Wystąpił poważny błąd: %s."
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr "Nie pytaj ponownie"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d transakcji instalacyjnych zakończonych niepowodzeniem"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Instalowanie pakietów nie powiodło się:"
+
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "Stacja robocza"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "Stacja biurowa"
-#: share/meta-task/compssUsers.pl:15
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Programy biurowe: procesory tekstu (OpenOffice.org Writer, Kword), arkusze "
-"kalkulacyjne (OpenOffice.org, Kspread), przeglądarki pdf, itd."
+"Programy biurowe: procesory tekstu (LibreOffice Writer, Kword), arkusze "
+"kalkulacyjne (LibreOffice, Kspread), przeglądarki pdf, itd."
-#: share/meta-task/compssUsers.pl:16
-#, c-format
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"Programy biurowe: procesory tekstu (kword, abiword), arkusze kalkulacyjne "
-"(kspread, gnumeric), przeglądarki pdf, itd."
-
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Stacja rozrywkowa (gry)"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Programy rozrywkowe: gry przygodowe, planszowe, strategie, itd."
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Stacja multimedialna"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Programy do odtwarzania/edycji dźwięku i obrazu"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Stacja internetowa"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
@@ -402,193 +519,193 @@ msgstr ""
"Zestaw narzędzi do odczytu i przesyłania poczty i grup dyskusyjnych (mutt, "
"tin...) oraz przeglądania sieci"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Komputer sieciowy (klient)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Programy klienckie dla różnych protokołów włączając ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Narzędzia do łatwego zarządzania komputerem"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Narzędzia konsolowe"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Edytory, powłoki, narzędzia plikowe, terminale"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Programowanie"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "Biblioteki programistyczne C i C++, programy i pliki nagłówkowe"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Dokumentacja"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Książki i dokumenty HOWTO o Linuksie i Otwartym Oprogramowaniu"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Linux Standard Base. Obsługa aplikacji firm trzecich"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Serwer WWW"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "System do pracy grupowej"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Serwer Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Zapora sieciowa/router"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Bramka internetowa"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "Poczta/wiadomości"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Serwer pocztowy Postfix, serwer grup Inn"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Serwer katalogowy"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "Serwer FTP"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "Serwer nazw domenowych i informacji sieciowych"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
-msgstr "Serwer plików i współdzielenia drukarek"
+msgstr "Serwer udostępniania plików i drukarek"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "Serwer NFS, serwer Samby"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Baza danych"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "Serwer bazodanowy PostgreSQL i MySQL"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "Serwer bazodanowy PostgreSQL i MariaDB"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Poczta"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Serwer pocztowy Postfix"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "Serwer bazodanowy PostgreSQL i MySQL"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "Serwer bazodanowy PostgreSQL i MariaDB"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Serwer sieciowy"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "Serwer NIS, serwer SMB, serwer pośrednika, serwer ssh"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Środowisko graficzne"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "Stacja KDE"
+msgid "Plasma Workstation"
+msgstr "Stacja Robocza Plazmy"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -597,12 +714,12 @@ msgstr ""
"Środowisko graficzne KDE, podstawowe środowisko graficzne ze zbiorem "
"narzędzi towarzyszących"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "Stacja GNOME"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -611,57 +728,113 @@ msgstr ""
"Środowisko graficzne z przyjaznym dla użytkownika zbiorem aplikacji i "
"narzędzi graficznych"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
#, c-format
-msgid "IceWm Desktop"
-msgstr "Pulpit IceWM"
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Lekkie środowisko graficzne z przyjaznym dla użytkownika zbiorem aplikacji i "
+"narzędzi graficznych"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "Pulpit MATE"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Pulpit Cinnamon"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Środowisko graficzne bazujące na Gnome"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "Pulpit LXQt"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "Nowa generacja lekkiego środowiska graficznego przeportowanego na QT"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+"Lekkie i szybkie środowisko graficzne z przyjaznym dla użytkownika zbiorem "
+"aplikacji i narzędzi graficznych"
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "Pulpit LXDE"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Lekkie i szybkie środowisko graficzne"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Inne środowiska graficzne"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm, itd."
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, itd."
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Narzędzia"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "Serwer SSH"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Serwer konfiguracji zdalnej Webmin"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "Narzędzia sieciowe/monitorowanie"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "Narzędzia do monitorowania, księgowania procesów, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Druidy Mandriva"
+msgid "Mageia Wizards"
+msgstr "Druidy Mageia"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Druidy do konfiguracji serwera"
@@ -675,7 +848,7 @@ msgstr ""
"Wystąpił jakiś błąd i nie wiadomo, jak poprawnie go obsłużyć.\n"
"Kontynuuj na własną odpowiedzialność."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -695,203 +868,257 @@ msgstr "Przechodzę do kroku `%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Instalacja Mandriva Linux %s"
+msgid "%s Installation %s"
+msgstr "Instalacja %s %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> pomiędzy elementami"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Serwer Xorg rozpoczyna działanie. Proszę czekać..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"System ma mało zasobów. Mogą wystąpić problemy z instalacją.\n"
-"Jeśli tak się dzieje, spróbuj instalacji w trybie tekstowym.\n"
-"Aby tak zrobić, naciśnij F1 podczas startu z CD i wpisz \"text\"."
+"System ma mało zasobów. Mogą wystąpić problemy z instalacją\n"
+"%s. Jeśli tak się dzieje, spróbuj instalacji w trybie tekstowym.\n"
+"Aby tak zrobić, naciśnij F1 podczas startu z CD i wpisz 'text'."
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Wybór nośników"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Zainstaluj %s Pulpit Plazmy"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Zainstaluj środowisko graficzne %s GNOME"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Instalacja dowolna"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Pulpit Plasma"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "Pulpit GNOME"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Dowolny pulpit"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Przegląd pulpitu '%s'."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Kliknij obrazek, aby zobaczyć większy podgląd"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Wybór grup pakietów"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Samodzielny wybór pakietów"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Rozmiar: %d / %d MB"
+msgid "Unselect All"
+msgstr "Odznacz wszystko"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Uszkodzony pakiet"
+msgid "Total size: %d / %d MB"
+msgstr "Rozmiar: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Wersja: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Rozmiar: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Ważność: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Nie można zmienić statusu tego pakietu"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "z powodu brakującego %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "na skutek niespełnienia %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "próba aktualizacji wersji %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "w celu utrzymania %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr "Nie możesz wybrać tego pakietu. Nie ma już miejsca, by go zainstalować"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Zostaną zainstalowane następujące pakiety"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Zostaną usunięte następujące pakiety"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Ten pakiet jest wymagany, nie można go pominąć"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Nie można odznaczyć tego pakietu. Został już zainstalowany"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Nie można odznaczyć tego pakietu. Musi zostać zaktualizowany"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Pokaż automatycznie wybrane pakiety"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Zainstaluj"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Wczytanie/Zapis zaznaczenia"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Uaktualnianie listy wybranych pakietów"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Minimalna instalacja"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Zarządzanie oprogramowaniem"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Wybierz pakiety do zainstalowania"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Instalowanie"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Bez szczegółów"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Pozostały czas "
+msgid "Time remaining:"
+msgstr "Pozostały czas:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Szacowanie"
+msgid "(estimating...)"
+msgstr "(szacowanie...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "pakiet"
msgstr[1] "%d pakietów"
msgstr[2] "%d pakietów"
+msgstr[3] "%d pakietów"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Różne"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Konfiguruj"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "nie skonfigurowano"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
@@ -900,12 +1127,12 @@ msgstr ""
"Znaleziono poniższe nośniki instalacyjne.\n"
"Jeśli chcesz pominąć któreś z nich, możesz je teraz odznaczyć."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
"Istnieje możliwość skopiowania przed instalacją zawartości płyt CD na dysk "
@@ -913,95 +1140,98 @@ msgstr ""
"Instalacja będzie kontynuowana z dysku twardego a skopiowane pakiety będą "
"dostępne po zakończeniu instalacji."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "Skopiuj wszystkie płyty CD"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Wystąpił błąd"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Wybierz układ klawiatury."
+msgid "Please choose your keyboard layout"
+msgstr "Wybierz układ klawiatury"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Oto pełna lista dostępnych klawiatur"
+msgid "Here is the full list of available keyboards:"
+msgstr "Oto pełna lista dostępnych klawiatur:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Instalacja/Uaktualnienie"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Czy to instalacja czy uaktualnienie?"
-#: steps_interactive.pm:134
+#: steps_interactive.pm:159
#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Zainstaluj"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Uaktualnienie %s"
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr "Aktualizacja z 32 do 64 bitowej wersji dystrybucji nie jest obsługiwana"
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr "Aktualizacja z 64 do 32 bitowej wersji dystrybucji nie jest obsługiwana"
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "Klucz szyfrujący dla %s"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "Anuluj instalację, uruchom komputer ponownie"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "Konfiguracja IDE"
+msgid "New Installation"
+msgstr "Nowa instalacja"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
-"Brak wolnej przestrzeni na 1MB bootstrap! Instalacja będzie kontynuowana,"
-"lecz aby uruchomić system, należy utworzyć partycję bootstrap za pomocą "
-"programu DiskDrake."
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Zaktualizuj istniejącą instalację (nie zalecane)"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"Konieczne jest utworzenie bootstrap PPC PReP!. Instalacja będzie "
-"kontynuowana, lecz aby uruchomić system, należy utworzyć partycję bootstrap "
-"w programie DiskDrake."
+"Instalator wykrył, że obecna instalacja systemu Mageia nie może\n"
+"zostać bezpiecznie zaktualizowana do wersji %s.\n"
+"\n"
+"Zalecana jest nowa instalacja, która zastąpi poprzednią.\n"
+"\n"
+"Uwaga: wykonaj kopie wszystkich osobistych plików zanim wybierzesz\n"
+"opcję \"Nowa instalacja\"."
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "Konfiguracja CD/DVD"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1014,21 +1244,21 @@ msgstr ""
"Włóż płytę \"%s\" do napędu i naciśnij Ok. Jeśli jej nie posiadasz, naciśnij "
"Anuluj, aby pominąć instalację pakietów z tej płyty."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Wyszukiwanie dostępnych pakietów..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-"Za mało miejsca na dysku dla przeprowadzenia instalacji lub aktualizacji (%"
-"dMB > %dMB)"
+"Za mało miejsca na dysku dla przeprowadzenia instalacji lub aktualizacji "
+"(%dMB > %dMB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
@@ -1038,52 +1268,52 @@ msgstr ""
"Format jest identyczny z dyskiem automatycznej\n"
"instalacji."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Wczytaj"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Zapisz"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Nieprawidłowy plik"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr "Zainstaluj środowisko graficzne Mandriva KDE"
+msgid "Plasma"
+msgstr "Plazma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr "Zainstaluj środowisko graficzne Mandriva GNOME"
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
+#: steps_interactive.pm:459
#, c-format
-msgid "Custom install"
-msgstr "Instalacja dowolna"
+msgid "Desktop Selection"
+msgstr "Wybór pulpitu"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr "Możesz określić profil swojego pulpitu: KDE, GNOME lub dowolny"
+msgid "You can choose your workstation desktop profile."
+msgstr "Możesz wybrać profil swojego pulpitu: "
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Wybrany rozmiar przekracza dostępne miejsce"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Typ instalacji"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1092,82 +1322,129 @@ msgstr ""
"Nie wybrano żadnej grupy pakietów.\n"
"Wybierz minimalną żądaną instalację:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Z X Window"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Zainstaluj sugerowane pakiety"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Z podstawową dokumentacją (zalecane!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Naprawdę minimalna instalacja (w szczególności bez urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Przygotowywanie aktualizacji..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Przygotowywanie instalacji"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Instalowanie pakietu %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Wystąpił błąd porządkowania pakietów:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Kontynuować?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "Ponów próbę"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr "Pomiń ten pakiet"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr "Pomiń wszystkie pakiety z nośnika \"%s\""
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
msgstr "Wróć do wyboru nośników i pakietów"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
msgstr "Wystąpił błąd podczas instalowania pakietu %s."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Konfiguracja poinstalacyjna"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr "Upewnij się, że nośnik Update Modules znajduje się w napędzie %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Aktualizacje"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Teraz masz okazję zainstalować media online."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "To pozwala zainstalować aktualizacje bezpieczeństwa."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"By zainstalować te media, potrzebujesz sprawnego połączenia \n"
+"internetowego.\n"
+"Czy chcesz zainstalować aktualizację tych mediów?"
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Zostaną zainstalowane następujące pakiety"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Ponowić próbę?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Niepowodzenie podczas dodawania nośnika"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1187,132 +1464,80 @@ msgstr ""
"\n"
"Czy chcesz zainstalować uaktualnienia ?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Łączenie z serwerem - pobieranie listy dostępnych pakietów..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Nie można skontaktować się z serwerem zwierciadlanym %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s na %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Sprzęt"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Karta dźwiękowa"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Czy posiadasz kartę dźwiękową ISA?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Uruchom \"alsaconf\" lub \"sndconfig\" po zakończeniu instalacji aby "
-"skonfigurować kartę dźwiękową"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Karta dźwiękowa nie została wykryta. Wypróbuj \"harddrake\" po zakończeniu "
-"instalacji"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Interfejs graficzny"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Sieć i Internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Serwery pośredniczące"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "skonfigurowano"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Poziom bezpieczeństwa"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Zapora sieciowa"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "aktywowano"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "wyłączono"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "Nie masz skonfigurowanego systemu X Window. Czy na pewno chcesz tego?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
+msgid "Preparing initial startup program..."
msgstr "Przygotowywanie programu rozruchowego..."
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"Prawdopodobnie posiadasz przestarzały (OldWorld)lub też nieznany (Unknown) "
-"komputer. Program rozruchowy yaboot nie będzie działał. Instalacja będzie "
-"kontynuowana, lecz konieczne jest użycie programu BootX, aby uruchomić "
-"komputer. Argument jądra dla głównego systemu plików \"/\": root=%s"
-
-#: steps_interactive.pm:1024
+#: steps_interactive.pm:1073
#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Czy chcesz używać aboot?"
+msgid "Be patient, this may take a while..."
+msgstr "Proszę o cierpliwość, to może potrwać chwilę..."
-#: steps_interactive.pm:1027
-#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Błąd podczas instalowania aboot. \n"
-"Wymusić instalację, nawet gdyby groziło to zniszczeniem pierwszej partycji?"
-
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
@@ -1321,17 +1546,17 @@ msgstr ""
"W tym poziomie zabezpieczeń, dostęp do plików na partycji Windows jest "
"ograniczony do administratora."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Włóż pustą dyskietkę do stacji %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Tworzenie dyskietki automatycznej instalacji..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1342,52 +1567,16 @@ msgstr ""
"\n"
"Czy na pewno chcesz teraz zakończyć?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Gratulacje"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Uruchom ponownie"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Tworzenie dyskietki automatycznej instalacji"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Jeśli zachodzi taka potrzeba, to automatyczna instalacja może być \n"
-"przeprowadzona w sposób automatyczny .\n"
-"Zajmie ona wówczas cały dysk,\n"
-"co ma znaczenie przy późniejszej instalacji na innym komputerze.\n"
-"\n"
-"Można zażyczyć sobie odtworzenia instalacji.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Powtórzona"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automatyczna"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Zapisz listę wybranych pakietów"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1478,13 +1667,6 @@ msgid ""
"Users"
msgstr "Użytkownicy"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Sieć"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1527,3 +1709,22 @@ msgid ""
"Exit"
msgstr "Wyjdź"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "Adres URL dla serwera zwierciadlanego?"
+
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "Adres URL musi zaczynać się od ftp:// lub http://"
+
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr "Łączenie ze stroną %s w celu pobrania listy dostępnych serwerów..."
+
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
+#~ msgstr "Łączenie ze stroną %s w celu pobrania listy dostępnych serwerów"
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Wybierz serwer lustrzany, z którego chcesz pobrać pakiety"
diff --git a/perl-install/install/share/po/pt.po b/perl-install/install/share/po/pt.po
index 03149dbc2..5989bc4f2 100644
--- a/perl-install/install/share/po/pt.po
+++ b/perl-install/install/share/po/pt.po
@@ -1,43 +1,98 @@
-# translation of pt.po to Português
-# translation of pt.po to
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
-# Latest versions of po files are at http://www.mandrivalinux.com/l10n/pt.php3
-#
-# Copyright (C) 2000 Mandriva
-#
-# Fernando Moreira <fmoreira@netc.pt>, 1999.
-# Jorge Costa <Jorgercosta@netc.pt>, 2001.
-# José JORGE <jose.jorge@oreka.com>, 2002,2003.
-# Jose Jorge <jjorge@free.fr>, 2003, 2004, 2005.
-# Jose Carlos D. S. Saraiva <jose.d.s.saraiva@clix.pt>, 2004.
-# Zé <mmodem00@netvisao.pt>, 2004, 2005, 2006.
-# Américo José Melo <mmodem00@netvisao.pt>, 2004, 2005.
-# Ze <mmodem00@netvisao.pt>, 2004.
-# José Melo <mmodem00@gmail.com>, 2005.
-# José Melo <mmodme00@gmail.com>, 2005.
-# Jose JORGE <jjorge@free.fr>, 2005.
-# Zé <mmodem00@gmail.com>, 2006, 2007.
+# Translators:
+# alfalb_mansil, 2014
+# fc2d9c36d73e741383fbbf46a4aac49f_013445b, 2014
+# Fernando Moreira <fmoreira@netc.pt>, 1999
+# Jorge Costa <Jorgercosta@netc.pt>, 2001
+# Jose Carlos D. S. Saraiva <jose.d.s.saraiva@clix.pt>, 2004
+# zecas <jjorge@free.fr>, 2003-2005
+# José JORGE <jose.jorge@oreka.com>, 2002-2003
+# 425fe09b3064b9f906f637fff94056ae_a00ea56 <0fa3588fa89906bfcb3a354600956e0e_308047>, 2015
+# Manuela Silva <mmsrs@sky.com>, 2020
+# Manuela Silva <mmsrs@sky.com>, 2013-2016
+# Manuela Silva <mmsrs@sky.com>, 2021,2023
+# MMSRS, 2015
+# 425fe09b3064b9f906f637fff94056ae_a00ea56 <0fa3588fa89906bfcb3a354600956e0e_308047>, 2015
+# Pedro <simplew8@gmail.com>, 2012
+# Rui <xymarior@yandex.com>, 2018-2019
+# Sérgio Marques <smarquespt@gmail.com>, 2019
+# Zé <ze@mandriva.org>, 2004-2006,2008,2010-2012
msgid ""
msgstr ""
-"Project-Id-Version: pt\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-10-01 16:43+0100\n"
-"Last-Translator: Zé <mmodem00@gmail.com>\n"
-"Language-Team: Português <pt@li.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2013-04-04 13:31+0000\n"
+"Last-Translator: Manuela Silva <mmsrs@sky.com>, 2021,2023\n"
+"Language-Team: Portuguese (http://app.transifex.com/MageiaLinux/mageia/"
+"language/pt/)\n"
+"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % "
+"1000000 == 0 ? 1 : 2;\n"
+
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Junte-se a Nós!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Torne-o seu!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "A sua escolha!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Ferramentas de Escritório"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Entretenimento em Casa"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "Para os miúdos!"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "Para a família!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "Para os responsáveis pelo desenvolvimento!"
-#: any.pm:155
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Obrigado!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Seja livre!"
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
msgstr "Tem mais alguma média suplementar?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -50,93 +105,57 @@ msgstr ""
"\n"
"Tem alguma média de instalação suplementar para configurar?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Rede (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Rede (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Rede (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "URL do espelho?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "O URL deve começar por ftp:// ou http://"
-
-#: any.pm:228
-#, c-format
-msgid "Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"A contactar o sítio web Mandriva Linux para obter a lista de espelhos "
-"disponíveis..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Falha ao contactar o sítio web Mandriva Linux para obter a lista de espelhos "
-"disponíveis"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Escolha um espelho para transferir os pacotes"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "Configuração NFS"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
-msgstr "Por favor indique o endereço e o directório da sua média NFS"
+msgstr "Por favor indique o nome da máquina e o directório da sua média NFS"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
-msgstr "Nome do endereço em falta"
+msgstr "Nome da máquina em falta"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "O directório deve começar por \"/\""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
-msgstr "Endereço da montagem NFS?"
+msgstr "Nome da máquina da montagem NFS?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Directório"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "Suplementar"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
@@ -145,47 +164,98 @@ msgstr ""
"Não é possível encontrar o ficheiro hdlist neste espelho. Certifique-se que "
"a localização está correcta."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "A ver os pacotes já instalados..."
+msgid "Core Release"
+msgstr "Lançamento 'Core'"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "A remover pacotes antes de actualizar..."
+msgid "Tainted Release"
+msgstr "Lançamento 'Tainted'"
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "A procurar pacotes para actualizar..."
+msgid "Nonfree Release"
+msgstr "Lançamento 'Nonfree'"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"Seleccionou o(s) seguinte(s) servidor(es): %s\n"
-"\n"
-"\n"
-"Estes servidores são activados por omissão. Não têm qualquer problema\n"
-"de segurança conhecido, mas podem ser encontrados alguns novos problemas.\n"
-"Nesse caso, deve actualizar o seu sistema assim que possível.\n"
-"\n"
-"\n"
-"Deseja realmente instalar estes servidores?\n"
+"Algum ''hardware'' na sua máquina precisa de ''firmwares'' proprietários "
+"para que os controladores de programas livres funcionem."
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "Deverá ativar \"%s\""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "\"%s\" contém as várias partes do seu sistema e das suas aplicações"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "\"%s\" contém programas proprietários.\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"Também contém 'firmware' necessário para que alguns dispositivos funcionem "
+"(exemplo: algumas placas gráficas ATI/AMD, algumas placas de rede, algumas "
+"placas RAID...)"
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"\"%s\" contém programas que não pode ser distribuídos em alguns países "
+"devido às patentes existentes."
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+"Também contém programas de \"%s\", recriado com capacidades adicionais."
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "Se desejar, pode ativar aqui mais fontes."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Este disco disponibiliza as atualizações do pacote para \"%s\""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "A verificar os pacotes já instalados..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "A procurar pacotes para actualizar..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "A remover pacotes antes de actualizar..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -193,88 +263,93 @@ msgid ""
"\n"
"Do you really want to remove these packages?\n"
msgstr ""
-"Os seguintes pacotes serão removidos para poder actualizar o seu sistema: %"
-"s\n"
+"Os seguintes pacotes serão removidos para poder actualizar o seu sistema: "
+"%s\n"
"\n"
"\n"
"Deseja realmente remover estes pacotes ?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Erro ao ler o ficheiro %s"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "Os seguintes discos foram renomeados:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (anteriormente conhecido por %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Rede"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
-msgstr "Por favor escolha uma média"
+msgstr "Por favor escolha uma fonte"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "O ficheiro já existe. Deseja sobrepôr o ficheiro?"
+msgstr "O ficheiro já existe. Deseja substituir o ficheiro?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Permissão negada"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "Nome NFS inválido"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
-msgstr "Média danificada %s"
+msgstr "Fonte inválida %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Não é possível capturar imagens do ecrã antes de particionar"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "As capturas de ecrã estarão disponíveis após instalar em %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Instalação"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Configuração"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Deve também formatar %s"
@@ -291,54 +366,76 @@ msgstr ""
#: interactive.pm:22
#, c-format
msgid "Bringing up the network"
-msgstr "A ligar a rede"
+msgstr "A ligar rede"
#: interactive.pm:27
#, c-format
msgid "Bringing down the network"
-msgstr "A desligar a rede"
+msgstr "A desligar rede"
-#: media.pm:703 media.pm:714
+#: media.pm:397
#, c-format
-msgid "Downloading file %s..."
-msgstr "A transferir o ficheiro %s..."
+msgid "Please wait, retrieving file"
+msgstr "Por favor aguarde, estamos a obter o ficheiro"
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "não foi possível adicionar a fonte"
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr "A copiar alguns pacotes no disco para uso futuro"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Cópia em progresso"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "recomendado"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "importante"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "muito bom"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "bom"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "talvez"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "A obter informação do pacote nos meta-dados XML..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Não há informação xml da fonte \"%s\", apenas um resultado parcial do pacote "
+"%s"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Nenhuma descrição"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
@@ -347,328 +444,400 @@ msgstr ""
"Alguns pacotes pedidos por %s não podem ser instalados:\n"
"%s"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "Estação de Trabalho"
+msgid "An error occurred:"
+msgstr "Ocorreu um erro:"
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Estação de Trabalho Office"
+msgid "A fatal error occurred: %s."
+msgstr "Ocorreu um erro fatal: %s."
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
-msgstr ""
-"Programas Office: processadores de texto (OpenOffice.org Writer, Kword), "
-"folhas de cálculo (OpenOffice.org Calc, Kspread), visualizadores PDF, etc"
+msgid "Do not ask again"
+msgstr "Não voltar a perguntar"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d transacções de instalação falhadas"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Instalação dos pacotes falhada:"
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "Estação de Trabalho"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Estação de Trabalho de Escritório"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Programas office: processadores de texto (kword, abiword), folhas de cálculo "
-"(kspread, gnumeric), visualizadores pdf, etc"
+"Programas Office: processadores de texto (LibreOffice Writer, Kword), folhas "
+"de cálculo (LibreOffice Calc, Kspread), visualizadores PDF, etc"
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Estação de Jogo"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Programas de divertimento: arcada, tabuleiros, estratégia, etc"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Estação multimédia"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Aplicações de reprodução/edição de som e vídeo"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Estação internet"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-"Conjunto de ferramentas para ler e enviar correio electrónico e news (pine, "
-"mutt, tin...) e para navegar na Web"
+"Conjunto de ferramentas para ler e enviar ''e-mail'' e notícias (mutt, "
+"tin...) e para explorar a Web"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Computador de Rede (cliente)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Clientes para diferentes protocolos incluindo ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Ferramentas para facilitar a configuração do seu computador"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Ferramentas de Consola"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
-msgstr "Editores, Linha de Comandos (shell), ferramentas de ficheiros, terminais"
+msgstr ""
+"Editores, Linha de Comandos (shell), ferramentas de ficheiros, terminais"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Desenvolvimento"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "C e C++ bibliotecas de programação, programas e ficheiros 'include'"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Documentação"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
-msgstr "Livros e Howto's sobre o Linux e Programas Livres"
+msgstr "\"Livros e Como\" sobre o Linux e Programas Livres"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Base Padrão do Linux (LSB). Suporte a aplicações terceiras."
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Servidor Web"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Groupware"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Servidor Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Firewall/Router"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Internet gateway"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "Correio/Noticias"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Servidor de correio electrónico Postfix , servidor de noticias In"
+msgstr "Servidor de ''e-mail'' Postfix , servidor de noticias Inn"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Servidor de Directório"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "Servidor FTP"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "Nome do Domínio e Servidor de Informação da Rede"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "Servidor de Partilhas de Ficheiros e Impressão"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "Servidor NFS, Servidor Samba"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Base de Dados"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "Servidor de Base de Dados PostgreSQL e MySQL"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "Servidores de base de dados - PostgreSQL e MariaDB"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Correio Electrónico"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Servidor de correio electrónico Postfix"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "Servidor de Base de Dados PostgreSQL ou MySQL"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "Servidores de base de dados - PostgreSQL e MariaDB"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Servidor/Computador de Rede"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "Servidor NFS, servidor SMB, servidor Proxy, servidor SSH"
+msgstr "Servidor NFS, servidor SMB, servidor proxy, servidor SSH"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
-msgstr "Ambiente Gráfico"
+msgstr "Ambiente gráfico"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "Estação de Trabalho KDE"
+msgid "Plasma Workstation"
+msgstr "Plasma Workstation"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr ""
-"O Ecrâ de Trabalho K (KDE), o ambiente gráfico básico com uma colecção de "
-"ferramentas"
+"K Desktop Environment, ambiente gráfico com uma coleção de ferramentas de "
+"acompanhamento"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
-msgstr "Estação de Trabalho Gnome"
+msgstr "GNOME Workstation"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr ""
-"Um ambiente gráfico com um conjunto de aplicações amigáveis e ferramentas de "
-"ecrâ"
+"Ambiente gráfico com um conjunto de aplicações e ferramentas de alta "
+"qualidade"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr "Xfce Workstation"
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Ambiente gráfico mais leve com um conjunto de aplicações e ferramentas "
+"simples"
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "Estação de Trabalho MATE"
+
+#: share/meta-task/compssUsers.pl:174
#, c-format
-msgid "IceWm Desktop"
-msgstr "Ecrâ IceWm"
+msgid "Cinnamon Workstation"
+msgstr "Estação de Trabalho Cinnamon"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Um ambiente gráfico baseado no GNOME"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "Estação de trabalho LXQt"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "Ambiente gráfico leve, criado para a próxima geração de Qt"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr "Estação de trabalho Enlightenment"
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr "Ambiente gráfico leve e rápido com seguidores dedicados"
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "Ecrâ LXDE"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Ambiente gráfico rápido e leve"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Outros Ambientes Gráficos"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm, etc"
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, etc."
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Utilidades"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "Servidor SSH"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Servidor de Configuração Remota Webmin"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Utilidades da Rede/Monitarização"
+msgstr "Utilidades de Rede/Monitorização"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
-msgstr "Ferramentas de monitorização, contagem de processos, tcpdump, nmap, ..."
+msgstr ""
+"Monitorização de ferramentas, contabilidade de processos, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Assistentes Mandriva"
+msgid "Mageia Wizards"
+msgstr "Assistentes Mageia"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Assistentes para configurar o servidor"
@@ -679,336 +848,395 @@ msgid ""
"An error occurred, but I do not know how to handle it nicely.\n"
"Continue at your own risk."
msgstr ""
-"Ocorreu um erro, mas não se sabe bem como o resolver.\n"
-"Continue a seu próprio risco."
+"Ocorreu um erro e não nos é possível determinar como o corrigir.\n"
+"Pode continuar, mas poderão surgir problemas."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
-"\"\n"
+"Check the cdrom on an installed computer using \"rpm -qpl media/main/*."
+"rpm\"\n"
msgstr ""
"Alguns pacotes importantes não foram devidamente instalados.\n"
-"O seu controlador de cdrom ou o seu cdrom está defeituoso.\n"
-"Verifique o cdrom num computador instalado usando \"rpm -qpl media/main/*.rpm"
-"\"\n"
+"Pode ser que exista algum problema com o CD ou com a unidade.\n"
+"Verifique se existem erros no CD, executando o comando \"rpm -qpl media/main/"
+"*.rpm\"\n"
#: steps_auto_install.pm:71 steps_stdio.pm:27
#, c-format
msgid "Entering step `%s'\n"
-msgstr "A entrar na etapa `%s'\n"
+msgstr "A entrar na etapa '%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Instalação Mandriva Linux %s"
+msgid "%s Installation %s"
+msgstr "Instalação %s %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> entre elementos"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "O servidor Xorg está a demorar para iniciar. Por favor aguarde..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"O seu sistema é baixo em recursos. Pode ter algum problema ao instalar\n"
-"o Mandriva Linux. Se isso ocorrer, pode tentar uma instalação em modo "
-"texto.\n"
-"Para isso, prima `F1' quando arrancar do CDROM, e depois digite `text'."
+"O seu sistema tem poucos recursos. Pode encontrar problemas ao tentar "
+"instalar %s.\n"
+"Se isso ocorrer, pode tentar uma instalação em modo texto.\n"
+"Para isso, prima 'F1' ao arrancar do CD e depois digite 'text'."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Seleção de fonte"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Instalar Plasma Desktop %s"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Instalar GNOME Desktop %s"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Instalação personalizada"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Plasma Desktop"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "GNOME Desktop"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Ecrâ Personalizado"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Aqui está uma pré-visualização do ecrã '%s'."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Clique nas imagens para ver uma previsão maior."
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Selecção dos Grupos de Pacotes"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Selecção individual de pacotes"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Tamanho total: %d / %d MB"
+msgid "Unselect All"
+msgstr "Desmarcar Tudo"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Pacote danificado"
+msgid "Total size: %d / %d MB"
+msgstr "Tamanho total: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Versão: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Tamanho: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Importância: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Não pode seleccionar/desseleccionar este pacote"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
-msgstr "devido a faltar %s"
+msgstr "porque %s está em falta"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
-msgstr "devido a %s insatisfeitas"
+msgstr "porque %s não foi satisfeito"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "a tentar promover %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "para manter %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
-msgstr "Não pode seleccionar este pacote pois não existe espaço livre para o instalar"
+msgstr ""
+"Não pode selecionar este pacote porque não existe espaço suficiente para o "
+"instalar"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Os seguintes pacotes irão ser instalados"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Os seguintes pacotes irão ser removidos"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
-msgstr "Este é um pacote obrigatório, não pode ser desseleccionado"
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr "Este é um pacote obrigatório e não pode ser desmarcado"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
-msgstr "Não pode desseleccionar este pacote. Já se encontra instalado"
+msgid "You cannot unselect this package. It is already installed"
+msgstr "Não pode desmarcar este pacote. Já se encontra instalado."
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
-msgstr "Não pode desseleccionar este pacote. Tem que ser actualizado"
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr "Não pode desmarcar este pacote. Tem que ser atualizado."
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
-msgstr "Mostrar pacotes seleccionados automaticamente"
+msgstr "Mostrar pacotes selecionados automaticamente"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Instalar"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Carregar/Gravar selecção"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
-msgstr "A actualizar selecção de pacotes"
+msgstr "A atualizar seleção de pacotes"
+
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr "Alternar entre a lista de pacotes hierárquicos e planos"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Instalação mínima"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Gestão de Programas"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Escolha os pacotes que deseja instalar"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Instalação"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Sem detalhes"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Tempo restante "
+msgid "Time remaining:"
+msgstr "Tempo restante:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "A estimar"
+msgid "(estimating...)"
+msgstr "(a estimar...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d pacote"
msgstr[1] "%d pacotes"
+msgstr[2] "%d pacotes"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Sumário"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Configurar"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "não configurado"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-"A seguinte média de instalação foi encontrada.\n"
-"Se quer evitar alguns deles, pode desmarcá-los agora."
+"As seguintes fontes de instalação foram encontrada.\n"
+"Se quer evitar alguma, pode desmarcá-la agora."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-"Tem a opção de copiar o conteúdo dos CDs para o disco rígido antes da "
+"Tem a opção de copiar o conteúdo do CD para o disco rígido antes da "
"instalação.\n"
-"Irá continuar a partir do disco rígido e os pacotes irão permanecer "
-"disponíveis assim que o sistema estiver instalado."
+"Continuará a partir do disco rígido e os pacotes permanecerão disponíveis "
+"assim que o sistema estiver instalado."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
-msgstr "Copiar todos os CDs"
+msgstr "Copiar CDs inteiros"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Ocorreu um erro"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Por favor escolha o tipo de teclado."
+msgid "Please choose your keyboard layout"
+msgstr "Por favor escolha o tipo de teclado"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Aqui está a lista completa dos teclados disponíveis"
+msgid "Here is the full list of available keyboards:"
+msgstr "Aqui está a lista completa dos teclados disponíveis:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Instalar/Actualizar"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Isto é uma instalação ou uma actualização?"
-#: steps_interactive.pm:134
+#: steps_interactive.pm:159
#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Instalar"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Actualizar %s"
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr "A actualização de uma distribuição 32bit para uma 64bit não é suportada"
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr "A actualização de uma distribuição 64bit para uma 32bit não é suportada"
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "Senha de encriptação para %s"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "Cancelar instalação, reiniciar o sistema"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "A configurar IDE"
+msgid "New Installation"
+msgstr "Nova Instalação"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
-"Sem espaço livre para a partição de arranque de 1MB (bootstrap)! A "
-"instalação irá continuar, mas para arrancar o seu sistema, irá precisar de "
-"criar a partição de arranque no DiskDrake"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Actualizar instalação anterior (não recomendado)"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"Irá precisar de criar uma partição de arranque (PPC PReP Boot bootstrap)! A "
-"instalação irá continuar, mas para arrancar o seu sistema, irá precisar de "
-"criar a partição de arranque no DiskDrake"
+"O instalador detetou que o seu sistema Linux instalado não pode\n"
+"ser atualizado com segurança para %s.\n"
+"\n"
+"Recomenda-se que substitua a sua instalação anterior.\n"
+"\n"
+"Aviso: deve efetuar uma cópia de segurança de todos os seus dados pessoais "
+"antes de escolher \"Nova instalação\"."
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "A configurar CD/DVD"
+
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1016,79 +1244,80 @@ msgid ""
"done.\n"
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
-"Mude o seu Cd-Rom!\n"
-"Por favor insira o Cd-Rom \"%s\" no seu dispositivo e prima Ok.\n"
-"Se não tiver este Cd-Rom, prima Cancelar para evitar a instalação deste."
+"Mude o seu CD!\n"
+"Por favor, insira o Cd-Rom \"%s\" na sua unidade e clique em \"Ok\".\n"
+"Se não tiver este CD, clique em \"Cancelar\" para evitar a instalação a "
+"partir deste Cd-Rom."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
-msgstr "A procurar pacotes disponíveis..."
+msgstr "Está à procura de pacotes disponíveis..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-"O seu sistema não tem espaço suficiente em disco para instalar ou actualizar "
+"O seu sistema não tem espaço suficiente em disco para instalar ou atualizar "
"(%dMB > %dMB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-"Por favor escolha carregar ou gravar uma selecção de pacotes.\n"
-"O formato é o mesmo como o dos ficheiros gerados por auto_install."
+"Por favor escolha carregar ou guardar a seleção de pacotes.\n"
+"O formato é o mesmo dos ficheiros gerados por auto_install."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Carregar"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Gravar"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Ficheiro danificado"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr "Instalar Ecrã KDE Mandriva"
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr "Instalar Ecrã GNOME Mandriva"
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
+#: steps_interactive.pm:459
#, c-format
-msgid "Custom install"
-msgstr "Instalação personalizada"
+msgid "Desktop Selection"
+msgstr "Selecção de Ecrã"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr "Pode escolher o seu perfil de ecrã: KDE, GNOME ou Personalizado"
+msgid "You can choose your workstation desktop profile."
+msgstr "Pode escolher o seu perfil de ambiente de trabalho."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
-msgstr "O tamanho seleccionado é maior que o espaço disponível"
+msgstr "O tamanho selecionado é maior do que o espaço disponível"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Tipo de instalação"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1097,84 +1326,132 @@ msgstr ""
"Não escolheu qualquer grupo de pacotes.\n"
"Por favor escolha o tipo de instalação mínima que deseja:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Com X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Instalar os pacotes recomendados "
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Com documentação básica (recomendado!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Instalação mínima (especialmente sem urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "A preparar a atualização ..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "A preparar instalação"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "A instalar o pacote %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Ocorreu um erro ao ordenar os pacotes:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Continuar mesmo assim?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "Tentar novamente"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr "Saltar este pacote"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
-msgstr "Saltar todos os pacotes da média \"%s\""
+msgstr "Ignorar todos os pacotes da fonte \"%s\""
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
msgstr "Voltar à média e selecção de pacotes"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
msgstr "Ocorreu um erro ao instalar o pacote %s."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Configuração pós-instalação"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-"Por favor certifique-se que a média Módulos de Actualização está no "
+"Por favor certifique-se de que a fonte Módulos de atualização está no "
"dispositivo %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Actualizações"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Agora tem oportunidade de configurar uma fonte online."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Isto permite instalar as atualizações de segurança."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"Para configurar estas fontes, terá de ter uma ligação \n"
+"à Internet a funcionar.\n"
+"\n"
+"Deseja configurar uma fonte de atualização?"
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr "Esse downloader não pôde ser instalado"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Repetir?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Falha ao adicionar a fonte"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1186,224 +1463,139 @@ msgid ""
"\n"
"Do you want to install the updates?"
msgstr ""
-"Tem agora a possibilidade de transferir os pacotes de actualização.\n"
-"Estes pacotes foram actualizados após o lançamento da distribuição.\n"
-"Podem ter correcções de segurança ou de erros.\n"
+"Agora, tem a possibilidade de transferir os pacotes de atualização.\n"
+"Estes pacotes foram atualizados depois do lançamento da distribuição.\n"
+"Estes podem ter correções de segurança ou de erros.\n"
"\n"
-"Para transferir estes pacotes, irá precisar de uma conexão Internet activa.\n"
+"Para transferir estes pacotes, precisará de uma ligação à Internet.\n"
"\n"
-"Deseja instalar as actualizações ?"
+"Deseja instalar as atualizações?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "A contactar o espelho para transferir a lista de pacotes disponíveis..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Não é possível contactar o espelho %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s em %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Material"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Placa de Som"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Tem alguma placa de som ISA?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Execute \"alsaconf\" ou \"sndconfig\" após a instalação para configurar a "
-"sua placa de som"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "Nenhuma placa de som detectada. Tente \"harddrake\" após a instalação"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Interface gráfico"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Rede e Internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Proxies"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "configurado"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Nível de Segurança"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Firewall"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "activado"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "desactivado"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "Não configurou o X. Tem certeza que deseja fazer isto?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "A preparar o carregador de arranque..."
+msgid "Preparing initial startup program..."
+msgstr "A preparar o programa inicial de arranque..."
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"Parece ter uma máquina do Século Passado ou Desconhecida, o carregador de "
-"arranque yaboot não irá funcionar para si. A instalação irá continuar, mas "
-"irá precisar de usar o BootX ou algum outro meio para arrancar a sua "
-"máquina. O argumento do kernel para root fs é: root=%s"
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Deseja usar o aboot?"
-
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Erro ao instalar o aboot, \n"
-"tentar forçar a instalação mesmo que isso destrua a primeira partição?"
+msgid "Be patient, this may take a while..."
+msgstr "Seja paciente, isto pode demorar algum tempo..."
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-"Neste nível de segurança, o acesso aos ficheiros na partição do Windows é "
+"Neste nível de segurança, o acesso aos ficheiros na partição Windows está "
"limitado ao administrador."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Insira uma disquete vazia no dispositivo %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "A criar disquete de auto-instalação..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
"\n"
"Do you really want to quit now?"
msgstr ""
-"Alguns passos não estão completos.\n"
+"Algumas etapas não foram concluídas.\n"
"\n"
-"Deseja realmente sair agora?"
+"Deseja mesmo sair agora?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Parabéns"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Reiniciar"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Gerar disquete de auto instalação"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"A auto instalação pode ser totalmente automatizada\n"
-"se quiser, nesse caso tomará conta do disco rígido!!\n"
-"(isto é feito para instalar outra máquina).\n"
-"\n"
-"Pode preferir repetir a instalação.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Repetir"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automática"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Gravar selecção de pacotes"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
msgid ""
"_: Keep these entry short\n"
"Language"
-msgstr "Linguagem"
+msgstr "Idioma"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr "Localização"
+msgstr "Tradução"
#: steps_list.pm:17
#, c-format
@@ -1431,7 +1623,7 @@ msgstr "Detecção de discos rígidos"
msgid ""
"_: Keep these entry short\n"
"Installation class"
-msgstr "Classe de instalação"
+msgstr "Classe da instalação"
#: steps_list.pm:23
#, c-format
@@ -1482,13 +1674,6 @@ msgid ""
"Users"
msgstr "Utilizadores"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Rede"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1530,4 +1715,3 @@ msgid ""
"_: Keep these entry short\n"
"Exit"
msgstr "Sair"
-
diff --git a/perl-install/install/share/po/pt_BR.po b/perl-install/install/share/po/pt_BR.po
index eb3686029..26c679fb7 100644
--- a/perl-install/install/share/po/pt_BR.po
+++ b/perl-install/install/share/po/pt_BR.po
@@ -1,41 +1,98 @@
-# translation of pt_BR.po to
-# translation of pt_BR.po to Brazilian Portuguese
-# tradução de DrakX-pt_BR.po para Português do Brasil
-# DRAKX PT_BR PO FILE
-# Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
-# Lisiane Sztoltz Teixeira <lisiane@mandriva.com>
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
-# Andrei Bosco Bezerra Torres <andrei_bosco@yahoo.com.br>, 2000, 2003.
-# Bruno Dorfman Buys <brunobuys@zipmail.com.br>, 2002.
-# Tiago da Cruz Bezerra <tiagocruz18@uol.com.br>,2002 2003, 2004.
-# Ricardo de Castilho <cast_brasil@ig.com.br>, 2003.
-# Carlinhos Cecconi <carlinux@terra.com.br>, 2003, 2004.
-# Deivi Lopes Kuhn <deivikuhn@yahoo.com.br>, 2003, 2004.
-# Cristiano Otto Von Trompczynski <cris@mandriva.com>, 2005.
-# Arthur R. Mello <renato@conectiva.com.br>, 2005.
-# Arthur Renato Mello <renato@conectiva.com.br>, 2005.
-# Felipe Arruda <felipemiguel@gmail.com>, 2006, 2007.
+# Translators:
+# Andrei Bosco Bezerra Torres <andrei_bosco@yahoo.com.br>, 2000,2003
+# Arthur Renato Mello <renato@conectiva.com.br>, 2005
+# Arthur R. Mello <renato@conectiva.com.br>, 2005
+# Bruno Dorfman Buys <brunobuys@zipmail.com.br>, 2002
+# Carlinhos Cecconi <carlinux@terra.com.br>, 2003-2004
+# Cristiano Otto Von Trompczynski <cris@mandriva.com>, 2005
+# Deivi Lopes Kuhn <deivikuhn@yahoo.com.br>, 2003-2004
+# Felipe Arruda <felipemiguel@gmail.com>, 2006-2008
+# Gilberto F. da Silva, 2022-2023
+# 3f37d448649cd548fa5a733e33387c2a_dee4ccf, 2014-2019
+# Michael Martins, 2017
+# Michael Martins, 2017,2019,2024
+# Michael Martins, 2019,2024
+# Ricardo de Castilho <cast_brasil@ig.com.br>, 2003
+# Sergio Rafael Lemke <sergio@mandriva.com.br>, 2009-2010
+# Tiago da Cruz Bezerra <tiagocruz18@uol.com.br>,2002 2003, 2004
msgid ""
msgstr ""
-"Project-Id-Version: pt_BR\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-05-21 10:59-0300\n"
-"Last-Translator: Felipe Arruda <felipemiguel@gmail.com>\n"
-"Language-Team: Brazilian Portuguese <kde-i18n-pt_br@mail.kde.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2013-04-04 13:31+0000\n"
+"Last-Translator: Tiago da Cruz Bezerra <tiagocruz18@uol.com.br>,2002 2003, "
+"2004\n"
+"Language-Team: Portuguese (Brazil) (http://app.transifex.com/MageiaLinux/"
+"mageia/language/pt_BR/)\n"
+"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % "
+"1000000 == 0 ? 1 : 2;\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Junte-se a nós!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Faça do seu jeito!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "Sua escolha!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Ferramentas de escritório"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Entretenimento doméstico"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "Para as crianças"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "Para a família!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "Para os desenvolvedores!"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Obrigado!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Seja livre!"
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
-msgstr "Você tem alguma mídia suplementar adicional?"
+msgstr "Tem mais mídias adicionais?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -43,148 +100,163 @@ msgid ""
"\n"
"Do you have a supplementary installation medium to configure?"
msgstr ""
-"A mídia a seguir foi encontrada e será usada durante a instalação: %s.\n"
+"As seguintes mídias foram encontradas e serão usadas durante a instalação: "
+"%s.\n"
"\n"
"\n"
-"Você deseja configurar alguma mídia suplementar?"
+"Tem alguma mídia de instalação adicional para configurar?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Rede (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Rede (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Rede (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "URL do servidor espelho (mirror)?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "URL deve começar com ftp:// ou http://"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Contatando o site da Mandriva Linux para pegar a lista de mirrors (espelhos) "
-"disponíveis..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Falha ao tentar obter a lista de mirrors disponíveis do site da Mandriva "
-"Linux"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Escolha um servidor espelho (mirror) de onde pegar os pacotes"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "Configuração NFS"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
-msgstr "Por favor, entre o nome do servidor e o diretório da mídia NFS"
+msgstr "Insira o nome do host e o diretório de suas mídias NFS"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
-msgstr "Está faltando o nome de máquina"
+msgstr "Nome do host ausente"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "O diretório deve começar com \"/\""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
-msgstr "Nome do servidor do ponto de montagem NFS"
+msgstr "Nome do host da montagem NFS ?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Diretório"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "Adicional"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
msgstr ""
-"Não foi possível encontrar o arquivo da lista de pacotes neste servidor "
-"(mirror). Verifique se a localização está correta."
+"Não foi possível encontrar um arquivo de lista de pacotes neste espelho. "
+"Certifique-se de que o local esteja correto."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Procurando por pacotes já instalados..."
+msgid "Core Release"
+msgstr "Core Release"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Removendo pacotes antes da atualização..."
+msgid "Tainted Release"
+msgstr "Tainted Release"
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Procurando pacotes para atualizar..."
+msgid "Nonfree Release"
+msgstr "Nonfree Release"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"Você selecionou o(s) seguinte(s) servidores(s): %s\n"
-"\n"
-"\n"
-"Estes servidores são ativados por padrão. Eles não possuem nenhuma falha\n"
-"de segurança conhecida, mas pode ocorrer de aparecer alguma nova. Neste\n"
-"caso, você deve atualizá-los o mais cedo possível.\n"
-"\n"
-"\n"
-"Você realmente quer instalar estes servidores?\n"
+"Alguns componentes de hardware em sua máquina necessitam de firmwares não "
+"livres para que os drivers de software livre funcionem."
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "Você deve ativar \"%s\""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "\"%s\" contém as várias partes dos sistemas e suas aplicações"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "\"%s\" contém software não livre.\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"Ela também contém firmwares necessários para o funcionamento de certos "
+"dispositivos (por exemplo: algumas placas de vídeo ATI/AMD, algumas placas "
+"de rede, algumas placas RAID, ...)"
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"\"%s\" contém software que não pode ser distribuído em todos os países "
+"devido a patentes de software."
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+"Ela também contém software de reconstrução de \"%s\" com recursos adicionais."
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "Aqui você pode ativar mais mídias, se quiser."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Essa mídia fornece atualizações de pacotes para a mídia \"%s\""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Verificando pacotes já instalados..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Encontrando pacotes para atualizar..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Removendo pacotes antes da atualização..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -192,88 +264,93 @@ msgid ""
"\n"
"Do you really want to remove these packages?\n"
msgstr ""
-"Os seguintes pacotes serão removidos para permitir a atualização do seu\n"
+"Os seguintes pacotes serão removidos para permitir a atualização do seu "
"sistema: %s\n"
"\n"
"\n"
-"Você realmente quer remover estes pacotes?\n"
+"Deseja realmente remover estes pacotes?\n"
+
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Erro ao ler o arquivo %s"
-#: any.pm:1055
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "O(s) seguinte(s) disco(s) foi renomeado:"
+msgstr "O(s) seguinte(s) disco(s) foi(ram) renomeado(s):"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
-msgstr "%s (previamente nomeado como %s)"
+msgstr "%s (anteriormente chamado de %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Rede"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
-msgstr "Por favor, escolha uma mídia"
+msgstr "Escolha uma mídia"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "O arquivo já existe. Sobrescrevê-lo?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Permissão negada"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
-msgstr "Nome NFS inválido"
+msgstr "Nome NFS incorreto"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "Mídia %s ruim"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
-msgstr "Não foi possível capturar telas antes de particionar"
+msgid "Cannot make screenshots before partitioning"
+msgstr "Não é possível fazer capturas de tela antes do particionamento"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
-msgstr "As telas estarão disponíveis depois da instalação em %s"
+msgstr "As capturas de tela estarão disponíveis após a instalação em %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Instalação"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Configuração"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Você também deve formatar %s"
@@ -284,393 +361,486 @@ msgid ""
"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
"You can find some information about them at: %s"
msgstr ""
-"Algum hardware no seu computador precisa de drivers 'proprietários' \n"
-"para funcionar. Você pode encontrar informações sobre eles em: %s"
+"Alguns hardwares em seu computador precisam de drivers ``proprietários'' "
+"para funcionar.\n"
+"Você pode encontrar algumas informações sobre eles em: %s"
#: interactive.pm:22
#, c-format
msgid "Bringing up the network"
-msgstr "Ativando a rede"
+msgstr "Abrindo a rede"
#: interactive.pm:27
#, c-format
msgid "Bringing down the network"
-msgstr "Desativando a rede"
+msgstr "Derrubando a rede"
-#: media.pm:703 media.pm:714
+#: media.pm:397
#, c-format
-msgid "Downloading file %s..."
-msgstr "Baixando arquivo %s..."
+msgid "Please wait, retrieving file"
+msgstr "Aguarde, baixando arquivo"
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "não foi possível adicionar a mídia"
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
-msgstr "Copiando alguns pacotes em disco para uso posterior"
+msgstr "Copiando alguns pacotes em discos para uso futuro"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
-msgstr "Cópia em progresso"
+msgstr "Cópia em andamento"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
-msgstr "precisa ter"
+msgstr "deve ter"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "importante"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "muito bom"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "bom"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "talvez"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "Obtendo informações do pacote a partir dos metadados XML ..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Nenhuma informação xml para a mídia \"%s\", apenas resultado\n"
+"parcial para o pacote %s"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Sem descrição"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-"Alguns pacotes requeridos por %s não podem ser instalados:\n"
+"Alguns pacotes solicitados por %s não podem ser instalados:\n"
"%s"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "Estação de Trabalho"
+msgid "An error occurred:"
+msgstr "Ocorreu um erro:"
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Estação de Trabalho de Escritório"
+msgid "A fatal error occurred: %s."
+msgstr "Ocorreu um erro fatal: %s."
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
-msgstr ""
-"Programas de escritório: processadores de texto (OpenOffice.org Writer, "
-"Kword), tabelas (OpenOffice.org Calc, Kspread), visualizadores PDF, etc."
+msgid "Do not ask again"
+msgstr "Não pergunte novamente"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d transações de instalação falharam"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Falha na instalação dos pacotes:"
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "Estação de trabalho"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Escritório"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Programas de escritório: processadores de texto (Kword, Abiword), tabelas "
-"(Kspread, Gnumeric), visualizadores PDF, etc"
+"Programas de escritório: processadores de texto (LibreOffice Writer, Kword), "
+"planilhas (LibreOffice Calc, Kspread), visualizadores de PDF, etc"
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
-msgstr "Estação de Jogos"
+msgstr "Jogos"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "Programas de entretenimento: arcade, tabuleiro, estratégia, etc."
+msgstr "Programas de diversão: arcade, tabuleiros, estratégia, etc"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
-msgstr "Estação de Multimídia"
+msgstr "Multimídia"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
-msgstr "Programas de edição/reprodução de som e vídeo"
+msgstr "Programas de reprodução/edição de som e vídeo"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
-msgstr "Estação de Internet"
+msgstr "Internet"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-"Conjunto de ferramentas para ler e enviar mensagens e notícias (mutt, "
-"tin...) e para navegar na Web."
+"Conjunto de ferramentas para ler e enviar email e notícias (mutt, tin...) e "
+"para navegar na web"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Computador de rede (cliente)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Clientes para diferentes protocolos, incluindo ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
-msgstr "Ferramentas para facilitar a configuração do seu computador"
+msgstr "Ferramentas para facilitar a configuração de seu computador"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
-msgstr "Ferramentas de Console"
+msgstr "Ferramentas de console"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Editores, shells, ferramentas de arquivos, terminais"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Desenvolvimento"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
-msgstr "Bibliotecas de desenvolvimento C e C++, programas e arquivos include"
+msgstr "Bibliotecas de desenvolvimento C e C++, programas e arquivos incluídos"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Documentação"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
-msgstr "Livros e documentos Como Fazer sobre Linux e Software Livre"
+msgstr "Livros e tutoriais sobre Linux e Software Livre"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
-msgstr "Linux Standard Base: suporte a aplicativos de terceiros"
+msgstr "Linux Standard Base. Suporte a aplicativos de terceiros"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
-msgstr "Servidor Web"
+msgstr "Servidor web"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Groupware"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Servidor Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
-msgstr "Firewall/Roteador"
+msgstr "Firewall/roteador"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
-msgstr "Gateway Internet"
+msgstr "Gateway de internet"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
-msgstr "E-mail/Grupos de Notícias"
+msgstr "Email/notícias"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr ""
-"Servidor de e-mail Postfix, servidor de grupos de notícias (grupos de "
-"discussão) Inn"
+msgstr "Servidor de email Postfix, servidor de notícias Inn"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
-msgstr "Servidor de Diretório"
+msgstr "Servidor de diretórios"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "Servidor FTP"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
-msgstr ""
-"Servidor de Nomes do Domínio (DNS) e Servidor de Informações de Rede (NIS)"
+msgstr "Servidor de nome de domínio e informações de rede"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
-msgstr "Servidor de Compartilhamento de Impressoras e Arquivos"
+msgstr "Servidor de compartilhamento de arquivos e impressoras"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
-msgstr "Servidor NFS, Servidor Samba"
+msgstr "Servidor NFS, servidor samba"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Banco de dados"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "Servidor de banco de dados PostgreSQL e MySQL"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "Servidor de banco de dados PostgreSQL e MariaDB"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
-msgstr "E-mail"
+msgstr "Email"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
-msgstr "Servidor de e-mail Postfix"
+msgstr "Servidor de email Postfix"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "Servidor de banco de dados PostgreSQL ou MySQL"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "Servidor de banco de dados PostgreSQL ou MariaDB"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
-msgstr "Servidor de Rede"
+msgstr "Servidor de computador de rede"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "Servidor NFS, servidor SMB, servidor Proxy, servidor SSH"
+msgstr "Servidor NFS, servidor SMB, servidor proxy, servidor SSH"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
-msgstr "Ambiente Gráfico"
+msgstr "Ambiente gráfico"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "Estação de Trabalho KDE"
+msgid "Plasma Workstation"
+msgstr "Plasma"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr ""
-"O Ambiente de Trabalho K (ou K Desktop Environment), o ambiente gráfico "
-"básico acompanhado de uma coleção de ferramentas"
+"O K Desktop Environment, o ambiente gráfico básico com uma coleção de "
+"ferramentas que o acompanham"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
-msgstr "Estação de Trabalho GNOME"
+msgstr "GNOME"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr ""
-"Um ambiente gráfico com um conjunto de aplicativos e ferramentas amigáveis"
+"Um ambiente gráfico com um conjunto de aplicativos e ferramentas de desktop "
+"amigáveis ao usuário"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr "Xfce"
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Um ambiente gráfico mais leve com um conjunto de aplicativos e ferramentas "
+"de desktop amigáveis ao usuário"
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "MATE"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Cinnamon"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Um ambiente gráfico baseado em GNOME"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "Desktop LXQt"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+"A próxima geração do ambiente de desktop leve do Mageia Linux, totalmente "
+"reescrito em Qt"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr "Desktop Enlightenment"
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr "Um ambiente gráfico leve e rápido com seguidores dedicados"
+
+#: share/meta-task/compssUsers.pl:189
#, c-format
-msgid "IceWm Desktop"
-msgstr "Ambiente de Trabalho IceWm"
+msgid "LXDE Desktop"
+msgstr "Desktop LXDE"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Um ambiente gráfico leve e rápido"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
-msgstr "Outros Ambientes Gráficos"
+msgstr "Outros desktops gráficos"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm, etc"
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, etc"
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Utilitários"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "Servidor SSH"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Servidor de Configuração Remota Webmin"
+msgstr "Servidor de configuração remota Webmin"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Utilitários de Rede/Monitoramento"
+msgstr "Utilitários de rede/monitoramento"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr ""
-"Ferramentas de monitoração, contabilização de processos, tcpdump, nmap, ..."
+"Ferramentas de monitoramento, contabilidade de processos, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Assistentes Mandriva"
+msgid "Mageia Wizards"
+msgstr "Assistentes Mageia"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Assistentes para configurar o servidor"
@@ -681,338 +851,393 @@ msgid ""
"An error occurred, but I do not know how to handle it nicely.\n"
"Continue at your own risk."
msgstr ""
-"Um erro ocorreu, mas não é possível tratá-lo.\n"
-"Continue por sua própria conta e risco."
+"Ocorreu um erro, mas não sei como lidar com isso de forma adequada.\n"
+"Continue por sua conta e risco."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
-"\"\n"
+"Check the cdrom on an installed computer using \"rpm -qpl media/main/*."
+"rpm\"\n"
msgstr ""
"Alguns pacotes importantes não foram instalados corretamente.\n"
-" O seu drive de CD-ROM ou o seu CD-ROM estão defeituosos.\n"
-" Verifique o CD-ROM em um computador instalado, usando \"rpm -qpl media/main/"
-"*.rpm\"\n"
+"Ou sua unidade de cdrom ou seu cdrom está com defeito.\n"
+"Verifique o cdrom em um computador usando \"rpm -qpl media/main/*.rpm\"\n"
#: steps_auto_install.pm:71 steps_stdio.pm:27
#, c-format
msgid "Entering step `%s'\n"
-msgstr "Entrando no passo `%s'\n"
+msgstr "Entrando na etapa `%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Instalação do Mandriva Linux %s"
+msgid "%s Installation %s"
+msgstr "Instalação %s %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
-msgstr "<Tab>/<Alt-Tab> move entre elementos"
+msgstr "<Tab>/<Alt-Tab> entre elementos"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "O servidor Xorg está lento para iniciar. Aguarde..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"Seu sistema está com poucos recursos. Você pode ter algum problema na\n"
-"instalação do Mandriva Linux. Se isso ocorrer, você pode tentar instalar "
-"usando o\n"
-"modo texto. Para isso, aperte 'F1' na tela de inicialização e escreva 'text'."
+"Seu sistema está com poucos recursos. Você pode ter algum problema para\n"
+"instalar %s. Se isso ocorrer, você pode tentar uma instalação\n"
+"de texto. Para isso, pressione `F1' ao inicializar no CDROM e digite `text'."
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Seleção de mídias"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Instalar o desktop Plasma %s"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Instalar o desktop GNOME %s"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Instalação personalizada"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Desktop Plasma"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "Desktop GNOME"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Desktop personalizado"
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Aqui está uma prévia do desktop '%s'."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Clique nas imagens para ver uma pré-visualização maior"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
-msgstr "Seleção de Grupo de Pacotes"
+msgstr "Seleção de grupo de pacotes"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
-msgstr "Seleção individual de pacotes"
+msgstr "Seleção de pacote individual"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Tamanho total: %d / %d MB"
+msgid "Unselect All"
+msgstr "Desmarcar tudo"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Pacote defeituoso"
+msgid "Total size: %d / %d MB"
+msgstr "Tamanho total: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Versão: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
-msgstr "Tamanho:"
+msgstr "Tamanho: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
-msgstr "Importância:"
+msgstr "Importância: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Você não pode selecionar/desmarcar este pacote"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
-msgstr "devido a falta de %s"
+msgstr "devido à falta de %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
-msgstr "devido a %s não-satisfeito(a)"
+msgstr "devido a %s não satisfeito"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "tentando promover %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
-msgstr "a fim de manter %s"
+msgstr "para manter %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
-"Você não pode selecionar esse pacote pois não existe espaço livre para "
+"Você não pode selecionar este pacote porque não há espaço suficiente para "
"instalá-lo"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Os seguintes pacotes serão instalados"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Os seguintes pacotes serão removidos"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
-msgstr "Esse é um pacote obrigatório, e não pode ser desmarcado"
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr "Esse é um pacote obrigatório, não pode ser desmarcado"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
-msgstr "Você não pode desmarcar esse pacote. Ele já está instalado"
+msgid "You cannot unselect this package. It is already installed"
+msgstr "Você não pode desmarcar este pacote. Ele já está instalado"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
-msgstr "Você não pode desmarcar este pacote. Ele precisa ser atualizado"
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr "Você não pode desmarcar este pacote. Ele deve ser atualizado"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
-msgstr "Mostrar automaticamente os pacotes selecionados"
+msgstr "Mostrar pacotes selecionados automaticamente"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Instalar"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
-msgstr "Carregar/Salvar seleção"
+msgstr "Carregar/salvar seleção"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
-msgstr "Atualizando seleção de pacotes"
+msgstr "Atualizando a seleção de pacotes"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr "Alternar entre a lista de pacotes hierárquica e plana"
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Instalação mínima"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
-msgstr "Gerenciamento de Software"
+msgstr "Gerenciamento de software"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
-msgstr "Escolha os pacotes que você quer instalar"
+msgstr "Escolha os pacotes que deseja instalar"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Instalando"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Sem detalhes"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Tempo restante "
+msgid "Time remaining:"
+msgstr "Tempo restante:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Estimando"
+msgid "(estimating...)"
+msgstr "(estimando...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d pacote"
msgstr[1] "%d pacotes"
+msgstr[2] "%d pacotes"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Resumo"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Configurar"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "não configurado"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
"As seguintes mídias de instalação foram encontradas.\n"
-"Se você deseja ignorar alguma delas, você pode desmarcá-las agora."
+"Se quiser pular algumas delas, pode desmarcá-las agora."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-"Você pode copiar o conteúdo dos CDs para o seu disco rígido antes da "
+"Você tem a opção de copiar o conteúdo dos CDs para o disco rígido antes da "
"instalação.\n"
-"A instalação irá continuar a partir do seu disco rígido e os pacotes "
-"continuarão disponíveis após a instalação ser finalizada."
+"Ele continua a partir do disco rígido e os pacotes permanecem disponíveis "
+"quando o sistema estiver totalmente instalado."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
-msgstr "Copiar todos os CDs"
+msgstr "Copiar CDs inteiros"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Ocorreu um erro"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Por favor, escolha o layout do seu teclado."
+msgid "Please choose your keyboard layout"
+msgstr "Escolha o layout do seu teclado"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Aqui está a lista completa dos teclados disponíveis"
+msgid "Here is the full list of available keyboards:"
+msgstr "Aqui está a lista completa de teclados disponíveis:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
-msgstr "Instalar/Atualizar"
+msgstr "Instalar/atualizar"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
-msgstr "Esta é uma instalação ou atualização?"
+msgstr "Isso é uma instalação ou uma atualização?"
-#: steps_interactive.pm:134
+#: steps_interactive.pm:159
#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Instalação"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Atualizar %s"
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr "A atualização de distribuição 32 bits para 64 bits não é suportada"
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr "A atualização de distribuição 64 bits para 32 bits não é suportada"
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "Chave de criptografia para %s"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "Cancelar a instalação, reiniciar o sistema"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "Configurando IDE"
+msgid "New Installation"
+msgstr "Nova instalação"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
-"Sem espaço livre para bootstrap de 1MB! A instalação continuará, mas para "
-"poder iniciar seu sistema você precisará criar uma partição bootstrap no "
-"DiskDrake"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Atualizar a instalação anterior (não recomendado)"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"Você precisará criar um PPC PReP Boot bootstrap! O instalador irá continuar, "
-"mas para iniciar seu sistema, você precisa criar uma partição bootstrap no "
-"DiskDrake."
+"O instalador detectou que seu sistema Linux instalado não pode\n"
+"ser atualizado com segurança para %s.\n"
+"\n"
+"É recomendada uma nova instalação substituindo a anterior.\n"
+"\n"
+"Atenção: você deve fazer backup de todos os seus dados pessoais\n"
+"antes de escolher \"Nova instalação\"."
-#: steps_interactive.pm:328
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "Configurando o CD/DVD"
+
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1020,169 +1245,213 @@ msgid ""
"done.\n"
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
-"Mude o seu CD-ROM\n"
-"\n"
-"Por favor, insira o CD-ROM chamado \"%s\" no seu drive e clique em Ok quando "
-"estiver pronto.\n"
-"Se você não o tiver em mãos, clique em Cancelar para evitar a instalação "
-"desse CD-ROM."
+"Troque seu Cd-Rom!\n"
+"Insira o Cd-Rom chamado \"%s\" em sua unidade e pressione\n"
+"Ok quando terminar.\n"
+"Se não tiver, pressione Cancelar para evitar a instalação deste Cd-Rom."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
-msgstr "Procurando por pacotes disponíveis..."
+msgstr "Procurando pacotes disponíveis..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-"Seu sistema não possui espaço suficiente para a instalação ou atualização (%"
-"dMB > %dMB)"
+"Seu sistema não tem espaço suficiente para instalação ou atualização (%dMB > "
+"%dMB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-"Por favor, escolha entre carregar ou salvar a seleção de pacotes. \n"
-"O formato é o mesmo que os arquivos gerados pelo auto_install."
+"Escolha carregar ou salvar seleção de pacote.\n"
+"O formato é o mesmo dos arquivos gerados pelo auto_install."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Carregar"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Salvar"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
-msgstr "Arquivo corrompido"
+msgstr "Arquivo ruim"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr "Instalar Desktop Mandriva KDE"
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr "Instalar Desktop Mandriva GNOME"
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
+#: steps_interactive.pm:459
#, c-format
-msgid "Custom install"
-msgstr "Instalação personalizada"
+msgid "Desktop Selection"
+msgstr "Seleção de desktop"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
-"Você pode escolher seu perfil de estação de trabalho: KDE, GNOME ou "
-"Personalizado"
+msgid "You can choose your workstation desktop profile."
+msgstr "Você pode escolher o perfil de desktop de sua estação de trabalho."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
-msgstr "O tamanho escolhido é maior que o espaço disponível"
+msgstr "O tamanho selecionado é maior que o espaço disponível"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Tipo de instalação"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
"Você não selecionou nenhum grupo de pacotes.\n"
-"Por favor, escolha a instalação mínima que deseja:"
+"Escolha a instalação mínima desejada:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Com X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Instalar pacotes recomendados"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Com documentação básica (recomendado!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
-msgstr "Instalação realmente mínima (especialmente sem o uprmi)"
+msgstr "Instalação realmente mínima (especialmente sem urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Preparando atualização..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Preparando a instalação"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Instalando o pacote %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
-msgstr "Houve um erro durante a ordenação dos pacotes:"
+msgstr "Ocorreu um erro ao solicitar os pacotes:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Continuar mesmo assim?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
-msgstr "Tentar Novamente"
+msgstr "Tentar novamente"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr "Pular este pacote"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr "Pular todos os pacotes da mídia \"%s\""
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
-msgstr "Voltar para a seleção de mídia e de pacotes"
+msgstr "Voltar para a seleção de mídia e pacotes"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
-msgstr "Houve um erro durante a instalação do pacote %s."
+msgstr "Ocorreu um erro ao instalar o pacote %s."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Configuração pós-instalação"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-"Por favor, certifique-se de que a mídia Atualizar Módulos está no drive %s"
+"Certifique-se de que as mídias dos módulos de atualização estejam na unidade "
+"%s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Atualizações"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Agora você tem a oportunidade de configurar as mídias online."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Isso permite instalar atualizações de segurança."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"Para configurar essas mídias, você precisa estar conectado à internet.\n"
+"\n"
+"Deseja configurar as mídias de atualização?"
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr "Esse gerenciador de downloads não pôde ser instalado"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Tentar novamente ?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Falha ao adicionar a mídia"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1194,217 +1463,127 @@ msgid ""
"\n"
"Do you want to install the updates?"
msgstr ""
-"Agora você tem a oportunidade de baixar os pacotes atualizados. Estes "
-"pacotes\n"
-"foram atualizados após o lançamento de sua distribuição. Eles podem conter\n"
-"atualizações de segurança ou correções de falhas.\n"
+"Agora você tem a oportunidade de baixar pacotes atualizados. Esses\n"
+"pacotes foram atualizados após o lançamento da distribuição.\n"
+"Eles podem conter correções de segurança ou bugs.\n"
"\n"
-"Para baixar estes pacotes, você precisa ter uma conexão com a internet\n"
-"funcionando.\n"
+"Para baixar esses pacotes, você precisar estar conectado à internet.\n"
"\n"
-"Você deseja instalar estas atualizações?"
-
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr ""
-"Contatando o servidor espelho (mirror) para obter a lista de pacotes "
-"disponíveis..."
+"Deseja instalar as atualizações?"
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Não foi possível conectar-se ao servidor %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s em %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Hardware"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Placa de som"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Você tem alguma placa de som ISA?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Execute \"alsaconf\"ou \"sndconfig\" após a instalação para configurar sua "
-"placa de som"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Nenhuma placa de som detectada. Tente o \"harddrake\" após a instalação"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Interface gráfica"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
-msgstr "Rede & Internet"
+msgstr "Rede & internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
-msgstr "Proxies"
+msgstr "Proxys"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "configurado"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
-msgstr "Nível de Segurança"
+msgstr "Nível de segurança"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Firewall"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "ativado"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "desativado"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
-msgstr "Você não configurou o sistema X. Você quer realmente deixar assim?"
-
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "Preparando gerenciador de inicialização..."
-
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"Você parece ter uma máquina muito antiga ou desconhecida, e o gerenciador de "
-"inicialização yaboot não funcionará para você. A instalação continuará, mas "
-"você precisará usar o BootX ou outros meios para inicializar sua máquina. O "
-"argumento do kernel para o sistema de arquivos raiz é: root=%s"
+msgstr "Você não configurou o X. Tem certeza de que realmente deseja isso?"
-#: steps_interactive.pm:1024
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Você quer usar o aboot?"
+msgid "Preparing initial startup program..."
+msgstr "Preparando o programa de inicialização..."
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Erro ao instalar o aboot; \n"
-"tentar forçar a instalação, mesmo que isto destrua a primeira partição?"
+msgid "Be patient, this may take a while..."
+msgstr "Seja paciente, isso pode demorar um pouco..."
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-"Neste nível de segurança, o acesso aos arquivos em partições Windows é "
-"restrita apenas para o administrador."
+"Neste nível de segurança, o acesso aos arquivos na partição do Windows é "
+"restrito ao administrador."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
-msgstr "Insira um disquete vazio no drive %s"
+msgstr "Insira um disquete virgem na unidade %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
-msgstr "Criando disquete de instalação automática..."
+msgstr "Criando o disquete de instalação automática..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
"\n"
"Do you really want to quit now?"
msgstr ""
-"Alguns passos não foram completados.\n"
+"Algumas etapas não foram concluídas.\n"
"\n"
-"Você realmente quer sair agora?"
+"Deseja realmente sair agora?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Parabéns"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Reiniciar"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Criar disquete de instalação automática"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"A instalação automática pode ser totalmente automatizada, se\n"
-"você desejar, e neste caso, ela tomará conta do disco\n"
-"rígido!! (em vista da instalação em outra máquina).\n"
-"\n"
-"Você pode preferir repetir a instalação.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Repetir"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automático"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Salvar seleção de pacotes"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1416,7 +1595,7 @@ msgstr "Idioma"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr "Localização"
+msgstr "Idioma"
#: steps_list.pm:17
#, c-format
@@ -1437,7 +1616,7 @@ msgstr "Mouse"
msgid ""
"_: Keep these entry short\n"
"Hard drive detection"
-msgstr "Detecção de discos rígidos"
+msgstr "Detecção de disco rígido"
#: steps_list.pm:21 steps_list.pm:22
#, c-format
@@ -1472,21 +1651,21 @@ msgstr "Particionamento"
msgid ""
"_: Keep these entry short\n"
"Formatting"
-msgstr "Formatando"
+msgstr "Formatação"
#: steps_list.pm:29
#, c-format
msgid ""
"_: Keep these entry short\n"
"Choosing packages"
-msgstr "Escolhendo pacotes"
+msgstr "Escolha de pacotes"
#: steps_list.pm:31
#, c-format
msgid ""
"_: Keep these entry short\n"
"Installing"
-msgstr "Instalando"
+msgstr "Instalação"
#: steps_list.pm:34
#, c-format
@@ -1495,26 +1674,19 @@ msgid ""
"Users"
msgstr "Usuários"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Rede"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
"_: Keep these entry short\n"
"Bootloader"
-msgstr "Inicialização"
+msgstr "Gerenciador de inicialização"
#: steps_list.pm:40 steps_list.pm:41
#, c-format
msgid ""
"_: Keep these entry short\n"
"Configure X"
-msgstr "Configurar X"
+msgstr "Configurar o X"
#: steps_list.pm:42
#, c-format
@@ -1543,116 +1715,3 @@ msgid ""
"_: Keep these entry short\n"
"Exit"
msgstr "Sair"
-
-#~ msgid "All"
-#~ msgstr "Tudo"
-
-#~ msgid "TV card"
-#~ msgstr "Placa de TV"
-
-#~ msgid "Boot"
-#~ msgstr "Boot"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Autenticação"
-
-#~ msgid "Arkeia"
-#~ msgstr "Arkeia"
-
-#~ msgid "Flatout"
-#~ msgstr "Flatout"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "3D"
-#~ msgstr "3D"
-
-#~ msgid "CMS"
-#~ msgstr "CMS"
-
-#~ msgid "CRM"
-#~ msgstr "CRM"
-
-#~ msgid "2007 product line"
-#~ msgstr "linha de produtos 2007"
-
-#~ msgid "Invictus Firewall"
-#~ msgstr "Firewall Invictus"
-
-#~ msgid "Discovery Live Mode"
-#~ msgstr "Discovery em Modo Live"
-
-#~ msgid "How to register"
-#~ msgstr "Como registrar"
-
-#~ msgid "Rpmdrake 2"
-#~ msgstr "Rpmdrake 2"
-
-#~ msgid "Mandriva Online Services"
-#~ msgstr "Serviços Mandriva Online"
-
-#~ msgid "New Theme"
-#~ msgstr "Novo Tema"
-
-#~ msgid "Web 2.0"
-#~ msgstr "Web 2.0"
-
-#~ msgid "Kaspersky"
-#~ msgstr "Kaspersky"
-
-#~ msgid "LinDVD"
-#~ msgstr "LinDVD"
-
-#~ msgid "Skype"
-#~ msgstr "Skype"
-
-#~ msgid "Transgaming/Cedega"
-#~ msgstr "Transgaming/Cedega"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "(%d pacote, %d MB)"
-#~ msgstr[1] "(%d pacotes, %d MB)"
-
-#~ msgid "%d packages"
-#~ msgstr "%d pacote(s)"
-
-#~ msgid "Language"
-#~ msgstr "Idioma"
-
-#~ msgid "License"
-#~ msgstr "Licença"
-
-#~ msgid "Installation class"
-#~ msgstr "Classe de instalação"
-
-#~ msgid "Formatting"
-#~ msgstr "Formatando"
-
-#~ msgid "Choosing packages"
-#~ msgstr "Escolhendo pacotes"
-
-#~ msgid "Users"
-#~ msgstr "Usuários"
-
-#~ msgid "Networking"
-#~ msgstr "Rede"
-
-#~ msgid "Configure X"
-#~ msgstr "Configurar X"
-
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
-#~ msgstr ""
-#~ "Não foi possível acessar os módulos do kernel correspondentes ao seu "
-#~ "kernel (o arquivo %s está faltando); isto significa geralmente que seu "
-#~ "disco de boot não está em sincronia com sua instalação (favor criar um "
-#~ "novo disco de boot)"
diff --git a/perl-install/install/share/po/ro.po b/perl-install/install/share/po/ro.po
index 60d7d18e9..e930d0dbe 100644
--- a/perl-install/install/share/po/ro.po
+++ b/perl-install/install/share/po/ro.po
@@ -1,166 +1,247 @@
-# 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
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Dan <djmarian4u@hotmail.com>, 2016
+# Florin Cătălin RUSSEN <cfrussen@yahoo.co.uk>, 2013-2015
msgid ""
msgstr ""
-"Project-Id-Version: DrakX 7.1\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+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."
-"sourceforge.net>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Dan <djmarian4u@hotmail.com>\n"
+"Language-Team: Romanian (http://www.transifex.com/MageiaLinux/mageia/"
+"language/ro/)\n"
+"Language: ro\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3;plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?"
-"2:1))\n"
+"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?"
+"2:1));\n"
-#: any.pm:155
-#, fuzzy, c-format
-msgid "Do you have further supplementary media?"
-msgstr "Aveţi o altă interfaţa?"
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Alăturați-vă nouă!"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: ../../advertising/02_IM_mageia.pl:1
#, c-format
-msgid ""
-"The following media have been found and will be used during install: %s.\n"
-"\n"
-"\n"
-"Do you have a supplementary installation medium to configure?"
-msgstr ""
+msgid "Make it yours!"
+msgstr "Personalizați după plac!"
-#: any.pm:166
+#: ../../advertising/03_IM_mageia.pl:1
#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
+msgid "Your choice!"
+msgstr "Alegerea voastră!"
-#: any.pm:167
-#, fuzzy, c-format
-msgid "Network (HTTP)"
-msgstr "Reţea %s"
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Unelte de birotică"
-#: any.pm:168
-#, fuzzy, c-format
-msgid "Network (FTP)"
-msgstr "Reţea %s"
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Divertisment"
-#: any.pm:169
+#: ../../advertising/06_IM_mageia.pl:1
#, c-format
-msgid "Network (NFS)"
-msgstr ""
+msgid "For kids"
+msgstr "Pentru copii"
-#: any.pm:211
+#: ../../advertising/07_IM_mageia.pl:1
#, c-format
-msgid "URL of the mirror?"
-msgstr ""
+msgid "For family!"
+msgstr "Pentru întreaga familie!"
-#: any.pm:217
+#: ../../advertising/08_IM_mageia.pl:1
#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr ""
+msgid "For developers!"
+msgstr "Pentru dezvoltatori!"
-#: any.pm:228
+#: ../../advertising/09_IM_mageia.pl:1
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Contactez situl Mandriva Linux pentru obţinerea listei oglinzilor "
-"disponibile..."
+msgid "Thank you!"
+msgstr "Vă mulțumim!"
-#: any.pm:233
-#, fuzzy, c-format
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Fiți liberi!"
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr "Mai aveți și alte medii suplimentare?"
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
+#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
msgstr ""
-"Contactez situl Mandriva Linux pentru obţinerea listei oglinzilor "
-"disponibile..."
+"Următoarele medii au fost găsite și vor fi utilizate în timpul instalării: "
+"%s.\n"
+"\n"
+"\n"
+"Aveți un mediu de instalare suplimentar pe care doriți să-l configurați?"
+
+#: any.pm:162
+#, c-format
+msgid "Network (HTTP)"
+msgstr "Rețea (HTTP)"
+
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
+msgstr "Rețea (FTP)"
-#: any.pm:243
+#: any.pm:164
#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Alegeţi o oglindă de la care să descărcaţi pachetele"
+msgid "Network (NFS)"
+msgstr "Rețea (NFS)"
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
-msgstr ""
+msgstr "Configurare NFS"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
-msgstr ""
+msgstr "Introduceți numele gazdei și directorului mediului NFS"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
-msgstr ""
+msgstr "Lipsește numele gazdei"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
-msgstr ""
+msgstr "Directorul trebuie să înceapă cu \"/\""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
-msgstr ""
+msgstr "Numele de gazdă al montajului NFS?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Director"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
-msgstr ""
+msgstr "Suplimentar"
-#: any.pm:341
-#, fuzzy, c-format
+#: any.pm:300
+#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
-msgstr "Nu găsesc %s pe %s"
+msgstr ""
+"Nu s-a găsit lista de pachete pe acest server alternativ. Asigurați-vă că "
+"adresa este corectă."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Căutare pachetele instalate deja ..."
+msgid "Core Release"
+msgstr "Ediția de bază"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
+msgid "Tainted Release"
+msgstr "Ediția nuanțată"
+
+#: any.pm:329
+#, c-format
+msgid "Nonfree Release"
+msgstr "Ediția proprietară"
+
+#: any.pm:367
+#, c-format
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
+"Anumite componente materiale din configurația de față necesită un microcod "
+"proprietar pentru funcționarea corectă a piloților."
-#: any.pm:424
+#: any.pm:368
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Cautarea pachetelor de actualizat"
+msgid "You should enable \"%s\""
+msgstr "Ar trebui să activați „%s”"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "„%s” conține diverse părți din sistem și aplicațiile sale"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "„%s” conține aplicații proprietare.\n"
+
+#: any.pm:421
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"Conține și microcod necesar pentru buna funcționare a anumitor dispozitive "
+"(ex: unele plăci grafice ATI/AMD, unele plăci de rețea, unele plăci "
+"RAID, ...)"
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
msgstr ""
+"„%s” conține aplicații care nu pot fi distribuite în toate țările din cauza "
+"brevetelor."
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+"Conține și aplicații din „%s” recompilate cu funcționalități suplimentare."
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "Aici puteți activa mai multe medii dacă doriți."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Acest mediu furnizează actualizări pentru mediul „%s”"
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Se caută pachetele deja instalate..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Se caută pachetele de actualizat..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Se înlătură pachetele înainte de actualizare..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -168,91 +249,96 @@ msgid ""
"\n"
"Do you really want to remove these packages?\n"
msgstr ""
-"Următoarele pachete vor fi şterse pentru a permite actualizarea sistemului "
-"dvs: %s\n"
+"Următoarele pachete vor fi înlăturate pentru a permite actualizarea "
+"sistemului: %s\n"
"\n"
"\n"
-"Chiar doriţi ştergerea acestor pachete?\n"
+"Chiar doriți înlăturarea acestor pachete?\n"
-#: any.pm:1055
-#, fuzzy, c-format
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Eroare la citirea fișierului %s"
+
+#: any.pm:1283
+#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "Este necesară instalarea următoarelor pachetele: \n"
+msgstr "Următoarele discuri au fost redenumite:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
-msgstr ""
+msgstr "%s (denumit anterior %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
-#, fuzzy, c-format
+#: any.pm:1342
+#, c-format
msgid "NFS"
-msgstr "HFS"
+msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
-msgstr "Reţea"
+msgstr "Rețea"
-#: any.pm:1137
-#, fuzzy, c-format
+#: any.pm:1365
+#, c-format
msgid "Please choose a media"
-msgstr "Vă rog să alegeţi"
+msgstr "Alegeți un mediu"
-#: any.pm:1153
-#, fuzzy, c-format
+#: any.pm:1381
+#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "Fişierul există deja. Îl suprascriu?"
+msgstr "Fișierul există deja. Se suprascrie?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
-msgstr "Permisiune respinsă."
+msgstr "Permisiune respinsă"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
-msgstr ""
+msgstr "Nume NFS greșit"
-#: any.pm:1226
-#, fuzzy, c-format
+#: any.pm:1454
+#, c-format
msgid "Bad media %s"
-msgstr "am adăugat mediul %s"
+msgstr "Mediu incorect %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
-msgstr "Nu pot captura ecranul înainte de partiţionare"
+msgid "Cannot make screenshots before partitioning"
+msgstr "Nu se pot face capturi de ecran înainte de partiționare"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
-msgstr "Capturile ecran vor fi disponibile după instalare în %s"
+msgstr "Capturile de ecran vor fi disponibile după instalare în %s"
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
-msgstr "În curs de instalare"
+msgstr "Instalare"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
-msgstr "Configuraţie"
+msgstr "Configurare"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
-msgstr "Trebuie de asemenea formatat(ă) %s"
+msgstr "Trebuie să formatați și %s"
#: interactive.pm:16
#, c-format
@@ -260,387 +346,483 @@ msgid ""
"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
"You can find some information about them at: %s"
msgstr ""
+"Unele componente din calculator au nevoie de piloți „proprietari” pentru a "
+"funcționa.\n"
+"Puteți găsi cîteva informații despre aceștia la: %s"
#: interactive.pm:22
#, c-format
msgid "Bringing up the network"
-msgstr "Pornire reţea"
+msgstr "Se pornește rețeaua"
#: interactive.pm:27
#, c-format
msgid "Bringing down the network"
-msgstr "Oprire reţea"
+msgstr "Se oprește rețeaua"
-#: media.pm:703 media.pm:714
-#, fuzzy, c-format
-msgid "Downloading file %s..."
-msgstr "Trimit fişierele..."
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr "Așteptați, se preia fișierul"
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "mediul nu poate fi adăugat"
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
-msgstr ""
+msgstr "Se copiază unele pachete pe discuri pentru utilizare ulterioară"
-#: media.pm:861
-#, fuzzy, c-format
+#: media.pm:797
+#, c-format
msgid "Copying in progress"
-msgstr "Detecţia este în progres..."
+msgstr "Copiere în curs"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
-msgstr "trebuie avut"
+msgstr "obligatoriu"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "important"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "foarte simpatic"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
-msgstr "simpatic: "
+msgstr "simpatic"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
-msgstr "poate"
+msgstr "eventual"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "Se obțin informațiile despre pachet din metadatele XML..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Nu există informații XML pentru mediul „%s”, numai rezultate parțiale pentru "
+"pachetul %s"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Nici o descriere"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"Unele pachete cerute de %s nu pot fi instalate:\n"
+"%s"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "Staţie de lucru"
+msgid "An error occurred:"
+msgstr "S-a produs o eroare:"
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Staţie de lucru de birou"
+msgid "A fatal error occurred: %s."
+msgstr "A apărut o eroare fatală: %s."
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
-msgstr ""
-"Programe gen Office: procesoare de text (OpenOffice.org Writer, Kword), "
-"calcul tabelar (OpenOffice.org Calc, Kspread), vizualizatoare de fişiere pdf "
-"etc."
+msgid "Do not ask again"
+msgstr "Nu mai întreba"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d operațiuni de instalare eșuate"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Instalarea pachetelor a eșuat:"
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "Stație de lucru"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Calculator de birou"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Programe gen Office: procesoare de text (kword, abiword), calcul tabelar "
-"(kspread, gnumeric), vizualizatoare de fişiere pdf etc."
+"Programe de birotică: procesoare de text (LibreOffice Writer, Kword), calcul "
+"tabelar (LibreOffice Calc, Kspread), vizualizatoare de fișiere PDF, etc."
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
-msgstr "Staţie de lucru pt. jocuri"
+msgstr "Stație de jocuri"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "Programe de amuzament: arcade, boards, strategie etc."
+msgstr "Programe de amuzament: jocuri de acțiune, table, strategie etc."
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
-msgstr "Staţie de lucru multimedia"
+msgstr "Stație multimedia"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
-msgstr "Programe de editare/redare pt. sunet şi video"
+msgstr "Programe de editare/redare sunet și video"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
-msgstr "Staţie de lucru în Internet"
+msgstr "Stație de Internet"
-#: share/meta-task/compssUsers.pl:32
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:37
+#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-"Set de unelte pt. citire/trimitere poştă şi ştiri (pine, mutt, tin...) şi "
-"navigare pe Web"
+"Set de unelte pentru citire/trimitere de poștă și știri (mutt, tin..) și "
+"navigare pe Internet"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
-msgstr "Calculator în reţea (client)"
+msgstr "Calculator în rețea (client)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
-msgstr "Clienţi pt. diverse protocoale, inclusiv ssh"
+msgstr "Clienți pentru diverse protocoale, inclusiv ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
-msgstr "Unelete pentru uşurarea configurării calculatorului dvs."
+msgstr "Unelte pentru a vă ușura configurarea calculatorului"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
-msgstr "Unelte consolă"
+msgstr "Unelte de consolă"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
-msgstr "Editoare, interpretoare, terminale, unelte fişiere"
+msgstr "Editoare, interpretoare, terminale, unelte de fișiere"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Dezvoltare"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
-msgstr "Biblioteci de dezvoltare C şi C++, programe şi fişiere include"
+msgstr "Biblioteci de dezvoltare C și C++, programe și fișiere include"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
-msgstr "Documentaţie"
+msgstr "Documentație"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
-msgstr "Cărţi şi HowTo despre Linux şi programele libere"
+msgstr "Cărți și ghiduri despre Linux și programele libere"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
-msgstr "Baza standard Linux. Sprijin pentru aplicaţii ale altora."
+msgstr "Baza standard Linux. Suport pentru aplicații terțe."
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Server Web"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:84
+#, c-format
msgid "Groupware"
-msgstr "Grup"
+msgstr "Lucru colaborativ"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Server Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
-msgstr "Firewall/Router"
+msgstr "Parafoc/Ruter"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
-msgstr "Gateway Internet"
+msgstr "Pasarelă Internet"
-#: share/meta-task/compssUsers.pl:83
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:92
+#, c-format
msgid "Mail/News"
-msgstr "/Fişier/_Nou"
+msgstr "Poștă/Știri"
-#: share/meta-task/compssUsers.pl:84
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:93
+#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Server de poştă Postfix"
+msgstr "Serverul de poștă Postfix, serverul de știri Inn"
-#: share/meta-task/compssUsers.pl:87
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:97
+#, c-format
msgid "Directory Server"
-msgstr "Restaurează de pe CD"
+msgstr "Server de anuar"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "Server FTP"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
-msgstr ""
+msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "Server nume de domeniu (DNS) şi NIS"
+msgstr "Server de DNS și NIS"
-#: share/meta-task/compssUsers.pl:99
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:112
+#, c-format
msgid "File and Printer Sharing Server"
-msgstr "Server de imprimantă"
+msgstr "Server de fișiere și de partajare a imprimantei"
-#: share/meta-task/compssUsers.pl:100
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:113
+#, c-format
msgid "NFS Server, Samba server"
-msgstr "Server SAMBA"
+msgstr "Server NFS, server Samba"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
-msgstr "Baze de date"
+msgstr "Bază de date"
-#: share/meta-task/compssUsers.pl:104
-#, fuzzy, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "Server de baze de date MySQL sau PostgreSQL"
+#: share/meta-task/compssUsers.pl:118
+#, c-format
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "Server de baze de date MariaDB și PostgreSQL"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
-msgstr "Poştă"
+msgstr "Poștă electronică"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
-msgstr "Server de poştă Postfix"
+msgstr "Serverul de poștă electronică Postfix"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "Server de baze de date MySQL sau PostgreSQL"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "Serverul de baze de date MariaDB sau PostgreSQL"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
-msgstr "Server în reţea"
+msgstr "Server în rețea"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "Server NFS, SMB, Proxy, SSH"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
-msgstr "Mediu Grafic"
+msgstr "Mediu grafic de lucru"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "Staţie de lucru KDE"
+msgid "Plasma Workstation"
+msgstr "Stația de lucru Plasma"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr ""
-"Mediul de birou K, mediul grafic de bază cu o colecţie de unelte asociate"
+"Mediul de birou K, mediul grafic de bază cu o colecție de unelte asociate"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
-msgstr "Staţie de lucru Gnome"
+msgstr "Stație de lucru Gnome"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
-msgstr "Un mediu grafic cu un set de aplicaţii prietenoase şi unelte de birou"
+msgstr "Un mediu grafic cu un set de aplicații prietenoase și unelte de birou"
-#: share/meta-task/compssUsers.pl:142
-#, fuzzy, c-format
-msgid "IceWm Desktop"
-msgstr "Ecran"
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Un mediu grafic lejer cu un set de unelte de birou și de aplicații "
+"prietenoase"
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "Stație de lucru MATE"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Stație de lucru Cinnamon"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Un mediu grafic bazat pe GNOME"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "Birou LXQt"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "Un port QT de generație nouă a mediului lejer de birou"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr "Un mediu grafic rapid și lejer cu adepți dedicați"
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "Birou LXDE"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Un mediu grafic lejer și rapid"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
-msgstr "Alte desktopuri grafice"
+msgstr "Alte medii grafice"
-#: share/meta-task/compssUsers.pl:147
-#, fuzzy, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm, etc"
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, etc."
-#: share/meta-task/compssUsers.pl:170
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:218
+#, c-format
msgid "Utilities"
-msgstr "Filipine"
+msgstr "Utilitare"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "Server SSH"
-#: share/meta-task/compssUsers.pl:177
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:225
+#, c-format
msgid "Webmin"
-msgstr "Webcam-uri"
+msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:226
+#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Configurare Mandriva Linux Terminal Server"
+msgstr "Serverul de configurare distantă Webmin"
-#: share/meta-task/compssUsers.pl:182
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:230
+#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Monitorizare reţea"
+msgstr "Utilitare rețea/Supraveghere"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
-msgstr ""
+msgstr "Unelte de supraveghere, evidența proceselor, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
-#, fuzzy, c-format
-msgid "Mandriva Wizards"
-msgstr "Centrul de control Mandriva Linux"
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr "Asistenții Mageia"
-#: share/meta-task/compssUsers.pl:188
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:236
+#, c-format
msgid "Wizards to configure server"
-msgstr "Nu am putut configura imprimanta \"%s\"!"
+msgstr "Asistenți pentru configurarea de server"
#: steps.pm:85
#, c-format
@@ -648,10 +830,10 @@ msgid ""
"An error occurred, but I do not know how to handle it nicely.\n"
"Continue at your own risk."
msgstr ""
-"A apărut o eroare pe care nu ştiu să o interpretez în mod corect.\n"
-"Continuaţi pe riscul dumneavoastră."
+"S-a produs o eroare, dar nu poate fi interpretată în mod corect.\n"
+"Continuați pe propriul risc."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -660,310 +842,386 @@ msgid ""
"\"\n"
msgstr ""
"Cîteva pachete importante nu s-au instalat corect.\n"
-"Sau aveţi o problemă cu perifericul de cdrom sau cu \n"
-"cdrom-ul propriu-zis. Folosiţi comanda \"rpm -qpl \n"
-"media/main/*.rpm\" pentru a verifica cdrom-ul pe un\n"
-"sistem instalat.\n"
+"Ori unitatea ori discul optic este defect.\n"
+"Verificați discul optic pe un alt sistem cu comanda „rpm -qpl media/main/*."
+"rpm”\n"
#: steps_auto_install.pm:71 steps_stdio.pm:27
#, c-format
msgid "Entering step `%s'\n"
-msgstr "Începe etapa `%s'\n"
+msgstr "Se începe etapa „%s”\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Instalare Mandriva Linux %s"
+msgid "%s Installation %s"
+msgstr "%s instalare %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> între elemente"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Serverul Xorg este încet la pornire. Așteptați vă rog..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
+"Sistemul are resurse puține. Este posibil să aveți probleme în timpul "
+"instalării %s.\n"
+"În acest caz puteți încerca o instalare în mod text. Pentru aceasta, apăsați "
+"„F1”\n"
+"la pornirea de pe CD-ROM, apoi introduceți „text”."
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Selectare mediu"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Instalează biroul %s Plasma"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Instalează biroul %s GNOME"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Instalare personalizată"
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Birou Plasma"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "Birou GNOME"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Birou personalizat"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Iată o previzualizare a biroului „%s”."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Apăsați pe imagini ca să le vedeți mai mari"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
-msgstr "Selectarea grupurilor de pachete"
+msgstr "Selectare grupuri de pachete"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Selectare individuală a pachetelor"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Mărime totală: %d / %d MB "
+msgid "Unselect All"
+msgstr "Deselectează tot"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Pachet defectuos"
+msgid "Total size: %d / %d MB"
+msgstr "Mărime totală: %d / %d Mo"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Versiune: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Mărime: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
-msgstr "%d KB\n"
+msgstr "%d Ko\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
-msgstr "Importanţă: "
+msgstr "Importanță: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
-msgstr "Nu puteţi selecta/deselecta acest pachet"
+msgid "You cannot select/unselect this package"
+msgstr "Nu puteți selecta/deselecta acest pachet"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
-msgstr "datorită %s lipsă"
+msgstr "datorită lipsei lui %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
-msgstr "datorită %s nesatisfăcute"
+msgstr "datorită dependenței nesatisfăcute %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
-msgstr "încerc să promovez %s"
+msgstr "se încearcă promovarea lui %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "pentru a păstra %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
-msgstr "Nu aveţi destul spaţiu pentru a instala acest pachet"
+msgstr ""
+"Nu puteți selecta acest pachet pentru că nu este destul spațiu pentru a-l "
+"instala"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Următoarele pachetele vor instalate"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
-msgstr "Următoarele pachete vor fi şterse"
+msgstr "Următoarele pachete vor fi înlăturate"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
-msgstr "Acesta este un pachet indispensabil şi nu poate fi deselectat"
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr "Acesta este un pachet indispensabil și nu poate fi deselectat"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
-msgstr "Nu puteţi deselecta acest pachet. E deja instalat"
+msgid "You cannot unselect this package. It is already installed"
+msgstr "Nu puteți deselecta acest pachet. Este deja instalat"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
-msgstr "Nu puteţi deselecta acest pachet. Trebuie acualizat."
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr "Nu puteți deselecta acest pachet. Trebuie actualizat."
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Arată pachetele selectate automat"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Instalare"
-#: steps_gtk.pm:436
-#, fuzzy, c-format
+#: steps_gtk.pm:519
+#, c-format
msgid "Load/Save selection"
-msgstr "Selectare pachete"
+msgstr "Încarcă/Salvează selecția"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Actualizare pachete selectate"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
-msgstr "Instalare minimă"
+msgstr "Instalare minimalistă"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
-msgstr "Administrare programe"
+msgstr "Gestionare aplicații"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
-msgstr "Alegeţi pachetele pe care doriţi să le instalaţi"
+msgstr "Alegeți pachetele pe care doriți să le instalați"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
-msgstr "În curs de instalare"
+msgstr "Se instalează"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Fără detalii"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Timp rămas "
+msgid "Time remaining:"
+msgstr "Timp rămas: "
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Estimare"
+msgid "(estimating...)"
+msgstr "(se estimează...)"
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d pachete"
-msgstr[1] "%d pachete"
+msgstr[1] "%d pachet"
msgstr[2] "%d pachete"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Sumar"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Configurează"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "neconfigurat"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
+"Au fost găsite următoarele medii de instalare.\n"
+"Dacă doriți să săriți peste unele din ele, le puteți deselecta acum."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
+"Aveți opțiunea să copiați conținutul CD-urilor pe discul dur înainte de "
+"instalare.\n"
+"Se va continua de pe discul dur, iar pachetele vor rămîne disponibile după "
+"instalarea sistemului."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
-msgstr ""
+msgstr "Copiază CD-urile în întregime"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
-msgstr "A apărut o eroare"
+msgstr "S-a produs o eroare"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Vă rog să alegeţi dispunerea tastaturii."
+msgid "Please choose your keyboard layout"
+msgstr "Alegeți dispunerea tastaturii"
-#: steps_interactive.pm:99
-#, fuzzy, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Aici este lista tuturor ţărilor disponibile"
+#: steps_interactive.pm:109
+#, c-format
+msgid "Here is the full list of available keyboards:"
+msgstr "Iată lista tuturor tastaturilor disponibile:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
-msgstr "Instalare/Actualizare"
+msgstr "Instalare/Actualizare majoră"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
-msgstr "Este vorba de o instalare sau de o actualizare ?"
+msgstr "Este vorba de o instalare sau de o actualizare majoră?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Instalare"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
-msgstr "Actualizare %s"
-
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
+msgstr "Actualizare majoră către %s"
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "Cheia de criptare pentru %s"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "Anulează instalarea, repornește sistemul"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "Configuraţia IDE"
+msgid "New Installation"
+msgstr "Instalare nouă"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Actualizare majoră peste instalarea precedentă (nerecomandat)"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
+"Instalatorul a detectat că sistemul Mageia Linux instalat actual nu va "
+"putea\n"
+"fi actualizat în siguranță la %s.\n"
+"\n"
+"Se recomandă o instalare nouă care să o înlocuiască pe cea precedentă.\n"
+"\n"
+"Atenție: trebuie să vă faceți o copie de siguranță cu toate datele "
+"personale\n"
+"înainte de a alege \"Instalare nouă\"."
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "Configurare CD/DVD"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -971,159 +1229,212 @@ msgid ""
"done.\n"
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
-"Schimbaţi Cd-Rom-ul!\n"
+"Schimbați CD-ul!\n"
"\n"
-"Vă rog introduceţi Cd-Rom-ul etichetat \"%s\" şi apoi apăsaţi Ok.\n"
-"Dacă nu-l aveţi, apăsaţi Renunţă pentru a evita instalarea de pe acest Cd-"
-"Rom."
+"Introduceți CD-ul etichetat „%s” și apoi apăsați Ok cînd sînteți gata.\n"
+"Dacă nu-l aveți, apăsați „Anulează” pentru a evita instalarea de pe acest CD."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
-msgstr "Căutarea pachetelor disponibile"
+msgstr "Se caută pachetele disponibile..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
+"Sistemul nu dispune de suficient spațiu pentru o instalare sau actualizare "
+"majoră (%dMo > %dMo)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
+"Alegeți încărcarea sau salvarea selecției de pachete.\n"
+"Formatul este același cu fișierele generate de auto_install."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
-msgstr "Încărcare"
+msgstr "Încarcă"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Salvează"
-#: steps_interactive.pm:415
-#, fuzzy, c-format
+#: steps_interactive.pm:438
+#, c-format
msgid "Bad file"
-msgstr "Încarcă un fişier"
+msgstr "Fișier eronat"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr ""
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Instalare minimă"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr "Selectarea biroului"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
+msgid "You can choose your workstation desktop profile."
+msgstr "Puteți alege profilul biroului stației voastre de lucru."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
-msgstr ""
+msgstr "Dimensiunea selectată este mai mare decît spațiul disponibil"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
-msgstr "Tip instalare"
+msgstr "Tip de instalare"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
+"Nu ați selectat nici un grup de pachete.\n"
+"Alegeți instalarea minimalistă pe care o doriți:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
-msgstr "Cu X"
+msgstr "Cu X11"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Instalează pachetele recomandate"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
-msgstr ""
+msgstr "Cu documentația de bază (recomandat!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
-msgstr "Instalare cu adevărat minimă (în mod expres fără urpmi)"
+msgstr "Instalare cu adevărat minimalistă (special fără urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Se pregătește actualizarea majoră..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
-msgstr "Pregătesc instalarea"
+msgstr "Se pregătește instalarea"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
-msgstr "Instalarea pachetului %s"
+msgstr "Se instalează pachetul %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
-msgstr "O eroare a apărut la ordonarea pachetelor:"
+msgstr "S-a produs o eroare la ordonarea pachetelor:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
-msgstr "Să continui totuşi?"
+msgstr "Să se continue totuși?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
-msgstr ""
+msgstr "Reîncearcă"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
-msgstr ""
+msgstr "Ignoră acest pachet"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
-msgstr ""
+msgstr "Ignoră toate pachetele din mediul „%s”"
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "Înregistrare selecţie pachete"
+msgstr "Înapoi la selectarea mediilor și a pachetelor"
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "A fost o eroare la instalarea pachetelor:"
+msgstr "S-a produs o eroare la instalarea pachetului %s."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
-msgstr "Configuraţie post-install"
+msgstr "Configurare post-instalare"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
-msgstr ""
+msgstr "Asigurați-vă că mediul cu modulele de actualizare este în unitatea %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Actualizări"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Acum aveți posibilitatea să configurați mediile online."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Aceasta vă permite să instalați actualizările de securitate."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"Pentru a configura aceste medii va trebui să aveți o conexiune la\n"
+"Internet funcțională.\n"
+"\n"
+"Sigur doriți să configurați mediile de actualizare?"
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Următoarele pachetele vor instalate"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Reîncercați?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Adăugare de mediu eșuată"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1135,193 +1446,127 @@ msgid ""
"\n"
"Do you want to install the updates?"
msgstr ""
+"Aveți posibilitatea să descărcați pachete actualizate. Aceste pachete\n"
+"au fost actualizate după ce a fost lansată distribuția. Acestea pot conține\n"
+"actualizări de securitate sau corectări de erori.\n"
+"\n"
+"Pentru a descărca aceste pachete, veți avea nevoie de o conexiune la "
+"Internet\n"
+"\n"
+"Doriți să instalați actualizările?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr ""
-"Contactez serverul oglindă pentru preluarea listei pachetelor disponibile..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Nu pot executa serverul de oglindire %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s pe %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
-msgstr "Echipamente"
+msgstr "Componente materiale"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Placă de sunet"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Aveţi o placă de sunet ISA?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Nu am detectat nici o placă de sunet. Încercaţi \"harddrake\" după instalare"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
-msgstr "Interfaţa grafică"
+msgstr "Interfață grafică"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
-msgstr "Reţea şi Internet"
+msgstr "Rețea & Internet"
-#: steps_interactive.pm:933
-#, fuzzy, c-format
+#: steps_interactive.pm:991
+#, c-format
msgid "Proxies"
-msgstr "Profiluri"
+msgstr "Servere proxy"
-#: steps_interactive.pm:934
-#, fuzzy, c-format
+#: steps_interactive.pm:992
+#, c-format
msgid "configured"
-msgstr "Reconfigurează"
+msgstr "configurat"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Nivel de securitate"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
-msgstr "Firewall"
+msgstr "Parafoc"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "activat"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "dezactivat"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
-msgstr ""
+msgstr "Nu ați configurat X11. Sigur doriți acest lucru?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "Pegătirea gestionalului de demaraj..."
+msgid "Preparing initial startup program..."
+msgstr "Se pregătește pornirea programului inițial..."
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Vreţi să folosiţi aboot?"
-
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Eroare la instalrea lui aboot,\n"
-"să încerc să forţaţi instalarea chiar dacă aceasta distruge prima partiţie ?"
+msgid "Be patient, this may take a while..."
+msgstr "Aveți răbdare, va dura ceva timp..."
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
+"La acest nivel de securitate, accesul la fișierele de pe partiția Windows "
+"este permis doar administratorului."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
-msgstr "Introduceţi o dischetă goală în perifericul %s"
+msgstr "Introduceți o dischetă goală în unitatea %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
-msgstr "Creez discheta de autoinstalare..."
+msgstr "Se creează discheta de auto-instalare..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
"\n"
"Do you really want to quit now?"
msgstr ""
-"Câteva etape nu au fost terminate.\n"
+"Cîteva etape nu au fost terminate.\n"
"\n"
-"Chiar vreţi să abandonaţi acum?"
+"Chiar vreți să abandonați acum?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Felicitări"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
-msgstr "Repornire sistem"
-
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Generare dischetă de autoinstalare"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr ""
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automatizat"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Înregistrare selecţie pachete"
+msgstr "Repornește"
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
@@ -1329,19 +1574,19 @@ msgstr "Înregistrare selecţie pachete"
msgid ""
"_: Keep these entry short\n"
"Language"
-msgstr "Alegeţi limba"
+msgstr "Limbă"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "Localizare"
#: steps_list.pm:17
#, c-format
msgid ""
"_: Keep these entry short\n"
"License"
-msgstr "Licenţă"
+msgstr "Licență"
#: steps_list.pm:18
#, c-format
@@ -1355,14 +1600,14 @@ msgstr "Maus"
msgid ""
"_: Keep these entry short\n"
"Hard drive detection"
-msgstr "Detecţia discului fix"
+msgstr "Detectarea discului dur"
#: steps_list.pm:21 steps_list.pm:22
#, c-format
msgid ""
"_: Keep these entry short\n"
"Installation class"
-msgstr ""
+msgstr "Clasă de instalare"
#: steps_list.pm:23
#, c-format
@@ -1383,28 +1628,28 @@ msgstr "Securitate"
msgid ""
"_: Keep these entry short\n"
"Partitioning"
-msgstr "Partiţionare"
+msgstr "Partiționare"
#: steps_list.pm:27 steps_list.pm:28
#, c-format
msgid ""
"_: Keep these entry short\n"
"Formatting"
-msgstr ""
+msgstr "Formatare"
#: steps_list.pm:29
#, c-format
msgid ""
"_: Keep these entry short\n"
"Choosing packages"
-msgstr ""
+msgstr "Alegerea pachetelor"
#: steps_list.pm:31
#, c-format
msgid ""
"_: Keep these entry short\n"
"Installing"
-msgstr "În curs de instalare"
+msgstr "Instalare"
#: steps_list.pm:34
#, c-format
@@ -1413,26 +1658,19 @@ msgid ""
"Users"
msgstr "Utilizatori"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Reţea"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
"_: Keep these entry short\n"
"Bootloader"
-msgstr "Gestionar de demarare"
+msgstr "Încărcător de sistem"
#: steps_list.pm:40 steps_list.pm:41
#, c-format
msgid ""
"_: Keep these entry short\n"
"Configure X"
-msgstr "Configurare X"
+msgstr "Configurare X11"
#: steps_list.pm:42
#, c-format
@@ -1460,65 +1698,28 @@ msgstr "Actualizări"
msgid ""
"_: Keep these entry short\n"
"Exit"
-msgstr "Ieşire"
-
-#~ msgid "All"
-#~ msgstr "Toate"
-
-#~ msgid "TV card"
-#~ msgstr "Placă TV"
-
-#~ msgid "Boot"
-#~ msgstr "Demarare"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Autentificare"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "%d pachete"
-#~ msgstr[1] "%d pachete"
-#~ msgstr[2] "%d pachete"
-
-#~ msgid "%d packages"
-#~ msgstr "%d pachete"
+msgstr "Ieșire"
-#~ msgid "Language"
-#~ msgstr "Alegeţi limba"
-
-#~ msgid "License"
-#~ msgstr "Licenţă"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "Alegeţi tipul de instalare"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "Estimare"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "Alegeţi pachetele de instalat"
-
-#~ msgid "Users"
-#~ msgstr "Utilizatori"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "Adresa URL a serverului alternativ?"
-#~ msgid "Networking"
-#~ msgstr "Reţea"
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "Adresa URL trebuie să înceapă cu ftp:// sau http://"
-#~ msgid "Configure X"
-#~ msgstr "Configurare X"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr ""
+#~ "Se contactează situl %s pentru obținerea listei de servere alternative "
+#~ "disponibile ..."
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
#~ msgstr ""
-#~ "Nu pot accesa modulele corespunzătoare nucleului dvs. (fişierul %s "
-#~ "lipseşte), în general aceasta înseamnă că discheta de demaraj nu este "
-#~ "sincronizată cu mediul de instalare (vă rog creeaţi o nouă dischetă de "
-#~ "demaraj)"
+#~ "Nu s-a putut contacta situl %s pentru obținerea listei de servere "
+#~ "alternative disponibile"
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Alegeți un server alternativ de pe care să descărcați pachetele"
diff --git a/perl-install/install/share/po/ru.po b/perl-install/install/share/po/ru.po
index 204e35e95..1d128f22a 100644
--- a/perl-install/install/share/po/ru.po
+++ b/perl-install/install/share/po/ru.po
@@ -1,32 +1,94 @@
-# translation of DrakX.po to Russian
-# translation of DrakX.po to
-# Translation of DrakX.po to Russian
-# Copyright (C) 1999-2003 Mandriva
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
-# Pavel Maryanov <acid_jack@ukr.net>, 2002,2003, 2005, 2006, 2007.
-# Alice Lafox <alice@lafox.com.ua>, 2003.
-# Alice Lafox <alice@lafox.net>, 2004, 2005.
+# Translators:
+# akdengi <kazancas@gmail.com>, 2008
+# Alexander Kazancev <kazancas@mandriva.ru>, 2008-2009
+# Alexander Kazancev <kazancas@gmail.com>, 2008
+# Alexander Kuzmenkov <rc@mezon.ru>, 2007
+# AlexL <loginov.alex.valer@gmail.com>, 2016,2018,2023
+# Alice Lafox <alice@lafox.com.ua>, 2003
+# Alice Lafox <alice@lafox.net>, 2004-2005
+# Boris Zhalilo <daviongm@gmail.com>, 2014
+# Анатолий Валерианович <ffox909@mail.ru>, 2014
+# Валентин Сайков <saikov.vb@gmail.com>, 2015
+# Анатолий Валерианович <ffox909@mail.ru>, 2014
+# Victor, 2022
msgid ""
msgstr ""
-"Project-Id-Version: DrakX\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-06-15 14:03+0300\n"
-"Last-Translator: Pavel Maryanov <acid_jack@ukr.net>\n"
-"Language-Team: Russian <ru@li.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2013-04-04 13:31+0000\n"
+"Last-Translator: AlexL <loginov.alex.valer@gmail.com>, 2016,2018,2023\n"
+"Language-Team: Russian (http://app.transifex.com/MageiaLinux/mageia/language/"
+"ru/)\n"
+"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || "
+"(n%100>=11 && n%100<=14)? 2 : 3);\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Присоединяйтесь к нам!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Подстройте систему под себя!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "Выбор за Вами!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Офисные инструменты"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Домашняя развлекательная система"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "Для детей"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "Для семьи!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "Для разработчиков!"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Спасибо!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Будьте свободными!"
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
-msgstr "Есть у вас следующий дополнительный носитель?"
+msgstr "Есть дополнительный носитель?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -38,145 +100,162 @@ msgstr ""
"%s.\n"
"\n"
"\n"
-"Если у вас дополнительный носитель для настройки?"
-
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
+"Если ли дополнительный носитель для настройки?"
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Сеть (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
-msgstr "Сеть (FTP)"
+msgstr "Сеть (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Сеть (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "Адрес зеркала?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "Адрес должен начинаться с ftp:// или http://"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Выполняется подключение к веб-сайту Mandriva Linux для получения списка "
-"доступных пакетов..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Не удалось подключиться к веб-сайту Mandriva Linux для получения списка "
-"доступных зеркал"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Выберите зеркало, с которого бужут загружены пакеты"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "Настройка NFS"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
-msgstr "Укажите имя хоста и каталог для ресурса NFS"
+msgstr "Укажите имя компьютера и каталог ресурса NFS"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
-msgstr "Не указано имя хоста"
+msgstr "Не указано имя компьютера"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "Имя каталога должно начинаться с \"/\""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
-msgstr "Имя хоста для монтирования NFS?"
+msgstr "Имя компьютера для монтирования NFS?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Каталог"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "Дополнительный"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
msgstr ""
-"Невозможно найти список пакетов для этого зеркала. Проверьте правильность "
+"Невозможно найти список пакетов на этом зеркале. Проверьте правильность "
"адреса."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Выполняется поиск уже установленных пакетов..."
+msgid "Core Release"
+msgstr "Core Release"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Удаляются пакеты перед обновлением..."
+msgid "Tainted Release"
+msgstr "Tainted Release"
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Выполняется поиск пакетов для обновления..."
+msgid "Nonfree Release"
+msgstr "Nonfree Release"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"Были выбраны следующие серверы: %s\n"
-"\n"
-"\n"
-"Эти серверы включены по умолчанию. На них отсутствуют пакеты с какими-либо\n"
-"проблемами безопасности, но некоторые ошибки могли быть ещё не обнаружены.\n"
-"Поэтому их обязательно нужно обновить и как можно скорее.\n"
-"\n"
-"\n"
-"Установить эти серверы?\n"
+"Для работы части оборудования на компьютере следует установить "
+"микропрограммы с закрытым кодом, необходимые для работы драйверов с открытым "
+"кодом."
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "Следует включить «%s»"
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "В «%s» содержатся различные части системы и её программ"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "В «%s» содержатся несвободные программы.\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"Там также содержатся пакеты с микрокодом, необходимым для работы некоторых "
+"устройств (например, некоторых видеокарт ATI/AMD, некоторых сетевых карт, "
+"некоторых карт RAID, ...)"
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"В \"%s\" содержатся пакеты с программным обеспечением, которое нельзя "
+"свободно распространять в некоторых странах из-за нарушения патентных прав "
+"на это программное обеспечение."
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+"Также в \"%s\" содержатся пакеты, собранные с дополнительными возможностями, "
+"использование которых ограничивается патентами."
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "Здесь вы можете включить дополнительные хранилища, если это вам нужно."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "В этом источнике содержатся обновления пакетов из источника \"%s\""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Выполняется поиск установленных пакетов..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Выполняется поиск пакетов для обновления..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Удаляются пакеты перед обновлением..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -184,87 +263,92 @@ msgid ""
"\n"
"Do you really want to remove these packages?\n"
msgstr ""
-"Чтобы можно было обновить систему, будут удалены следующие пакеты: %s\n"
+"Следующие пакеты должны быть удалены, чтобы можно было обновить систему: %s\n"
"\n"
"\n"
-"Действительно удалить эти пакеты?\n"
+"Удалить эти пакеты?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Ошибка при чтении файла %s"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "Следующие диски были переименованы:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (ранее назывался %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Сеть"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
-msgstr "Выберите источник"
+msgstr "Выберите носитель"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "Файл уже существует. Перезаписать его?"
+msgstr "Файл уже существует. Переписать его?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Доступ запрещён"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
-msgstr "Плохое имя NFS"
+msgstr "Неверное имя NFS"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
-msgstr "Плохой источник %s"
+msgstr "Неверный источник %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
-msgstr "Невозможно создать скриншоты перед разбивкой на разделы"
+msgid "Cannot make screenshots before partitioning"
+msgstr "Невозможно создать скриншоты перед разметкой диска"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "После установки скриншоты будут находиться в каталоге %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Установка"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Настройка"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Также необходимо отформатировать %s"
@@ -275,9 +359,8 @@ msgid ""
"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
"You can find some information about them at: %s"
msgstr ""
-"Для нормальной работы некоторых устройств компьютера требуются\n"
-"\"родные\" драйверы.\n"
-"Различную информацию о них можно найти на: %s"
+"Для работы некоторых устройств компьютера требуются «несвободные» драйверы.\n"
+"Информация о них доступна на сайте: %s"
#: interactive.pm:22
#, c-format
@@ -289,317 +372,356 @@ msgstr "Поднимается сеть"
msgid "Bringing down the network"
msgstr "Опускается сеть"
-#: media.pm:703 media.pm:714
+#: media.pm:397
#, c-format
-msgid "Downloading file %s..."
-msgstr "Загружается файл %s..."
+msgid "Please wait, retrieving file"
+msgstr "Подождите, идёт загрузка"
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "не удалось добавить источник"
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr "На диск копируются пакеты для использования в будущем"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
-msgstr "Выполняется копирование"
+msgstr "Идёт копирование"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "должен быть"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "важный"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "весьма желательно"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "желательно"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "может быть"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "Получения данных о пакетах из метаданных XML..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"для источника «%s» отсутствует xml-info; для пакета %s получен только "
+"частичный результат"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Описания нет"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"Некоторые пакеты, запрошенные %s, не могут быть установлены:\n"
+"%s"
+
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "Произошла ошибка:"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "Произошла критическая ошибка: %s."
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr "Больше не спрашивать"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d установочных транзакций не удались"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Не удалось установить пакет:"
+
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "Рабочая станция"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "Офисная рабочая станция"
-#: share/meta-task/compssUsers.pl:15
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Офисные программы: текстовые процессоры (OpenOffice.org Writer, Kword), "
-"электронные таблицы (OpenOffice.org Calc, Kspread), программы просмотра pdf "
-"и т.д."
+"Офисные программы: текстовые процессоры (LibreOffice Writer, Kword), "
+"электронные таблицы (LibreOffice Calc, Kspread), программы для просмотра PDF "
+"и т. д."
-#: share/meta-task/compssUsers.pl:16
-#, c-format
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"Офисные программы: текстовые процессоры (kword, abiword), электронные "
-"таблицы (kspread, gnumeric), программы просмотра pdf и т.д."
-
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
-msgstr "Игровая станция"
+msgstr "Игровой компьютер"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "Развлекательные программы: аркады, настольные игры, стратегии и т.д."
+msgstr "Развлекательные программы: аркады, настольные игры, стратегии и т. д."
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
-msgstr "Мультимедиа-станция"
+msgstr "Мультимедийный компьютер"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
-msgstr "Программы для проигрывания/редактирования звука и видео"
+msgstr "Программы для воспроизведения/редактирования звука и видео"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
-msgstr "Интернет-станция "
+msgstr "Компьютер для Интернета"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-"Набор программ для чтения/отправки почты и новостей (mutt, tin...) и веб-"
-"серфинга"
+"Набор программ для работы с корреспонденцией (mutt, tin...) и веб-серфинга"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Сетевой компьютер (клиент)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Клиенты для различных протоколов, включая ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Утилиты для облегчения настройки компьютера"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
-msgstr "Утилиты для консоли"
+msgstr "Инструменты консоли"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
-msgstr "Редакторы, командные процессоры, файловые утилиты, терминалы"
+msgstr "Редакторы, командные оболочки, файловые утилиты, терминалы"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Разработка"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
-msgstr "Библиотеки разработки C и C++, программы и заголовочные файлы"
+msgstr "Библиотеки для разработки на C и C++, программы и заголовочные файлы"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Документация"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
-msgstr "Книги и документы HOWTO по Linux и свободному программному обеспечению"
+msgstr "Книги и документация по Linux и свободному программному обеспечению"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
-msgstr "Linux Standard Base. Поддержка приложений третьих разработчиков."
+msgstr "Linux Standard Base. Поддержка приложений сторонних разработчиков"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Веб-сервер"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
-msgstr "Groupware"
+msgstr "ПО для совместной работы"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Сервер Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Файервол/Маршрутизатор"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Интернет-шлюз"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "Почта/Новости"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Почтовый сервер Postfix, сервер новостей Inn"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
-msgstr "Сервер каталогов"
+msgstr "Служба каталогов"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "Сервер FTP"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "Сервер доменных имен и сетевые информационные службы (NIS)"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "Сервер общего доступа к файлам и принтерам"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "Сервер NFS, сервер Samba"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "База данных"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "Сервер баз данных PostgreSQL и MySQL"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "Сервер баз данных PostgreSQL и MariaDB"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Веб/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Почта"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Почтовый сервер Postfix"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "Сервер баз данных PostgreSQL или MySQL"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "Сервер баз данных PostgreSQL или MariaDB"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Сетевой сервер"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "NFS-сервер, SMB-сервер, Proxy-сервер, ssh-сервер"
+msgstr "Cервер NFS, сервер SMB, прокси-сервер, сервер SSH"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
-msgstr "Графическая среда"
+msgstr "Графическое окружение"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "Рабочая станция KDE"
+msgid "Plasma Workstation"
+msgstr "Рабочая станция Plasma"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr ""
-"K Desktop Environment - основная графическая среда с коллекцией "
-"сопроводительных утилит"
+"K Desktop Environment, основная графическая среда с набором сопроводительных "
+"инструментов"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "Рабочая станция Gnome"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -608,57 +730,110 @@ msgstr ""
"Графическая среда с удобным для пользователя набором приложений и утилит "
"рабочего стола"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr "Рабочая станция Xfce"
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Более лёгкая графическая среда с удобным набором приложений и инструментов"
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "Рабочая станция MATE"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Рабочая станция Cinnamon"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Графическое окружение на основе GNOME"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "Рабочий стол LXQt"
+
+#: share/meta-task/compssUsers.pl:181
#, c-format
-msgid "IceWm Desktop"
-msgstr "Рабочий стол IceWm"
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "Усовершенствованный QT-порт легковесной среды рабочего стола"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr "Рабочий стол Enlightenment"
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr "Легкая и быстрая графическая среда"
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "Рабочий стол LXDE"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Быстрая и нетребовательная к ресурсам графическая оболочка"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Другие графические рабочие столы"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm и т.п."
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm и т.п."
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Утилиты"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "Сервер SSH"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Сервер удалённой настройки Webmin"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "Сетевые утилиты/Мониторинг"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "Утилиты мониторинга, учёт процессов, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Мастеры настройки Mandriva"
+msgid "Mageia Wizards"
+msgstr "Мастеры настройки Mageia"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Мастеры настройки сервера"
@@ -672,13 +847,13 @@ msgstr ""
"Произошла ошибка, но я не знаю, как её корректно обработать.\n"
"Продолжайте на свой собственный страх и риск."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
-"\"\n"
+"Check the cdrom on an installed computer using \"rpm -qpl media/main/*."
+"rpm\"\n"
msgstr ""
"Некоторые важные пакеты установились некорректно.\n"
"Повреждён привод CDROM или компакт-диск.\n"
@@ -692,217 +867,272 @@ msgstr "Выполняется переход на этап `%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Установка Mandriva Linux %s"
+msgid "%s Installation %s"
+msgstr "Установка %s %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> между элементами"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Xorg-сервер долго запускается. Подождите..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"Системе не хватает ресурсов. во время установки Mandriva Linux могут\n"
+"Системе не хватает ресурсов. Во время установки %s могут\n"
"возникнуть проблемы. В этом случае можно попробовать установку в\n"
-"текстовом режиме. Для этого после загрузки с CDROM'а нажмите `F1',\n"
+"текстовом режиме. Для этого после загрузки с диска нажмите `F1',\n"
"а затем наберите 'text'."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Выбор источника"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Установить %s рабочий стол Plasma"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Установить %s рабочий стол GNOME"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Выборочная установка"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Рабочий стол Plasma"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "Рабочий стол GNOME"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Другой рабочий стол"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Это предварительный вид рабочего стола «%s»."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Нажмите на картинку, чтобы увеличить её"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
-msgstr "Выбор группы пакетов"
+msgstr "Выбор групп пакетов"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Выбор отдельных пакетов"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Общий объём: %d / %d МБ"
+msgid "Unselect All"
+msgstr "Снять выделение со всех"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Плохой пакет"
+msgid "Total size: %d / %d MB"
+msgstr "Общий размер: %d/%d МБ"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Версия:"
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Размер:"
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d КБ\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Важность: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Этот пакет нельзя выбрать/отменить"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "из-за отсутствия %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "из-за неудовлетворенных %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "выполняется попытка активизировать %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "чтобы сохранить %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr "Этот пакет нельзя выбрать, т.к. для его установки не хватает места"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Будут установлены следующие пакеты "
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Будут удалены следующие пакеты "
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
-msgstr "Этот пакет является обязательным, и его нельзя пропустить"
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr "Этот пакет является обязательным, его нельзя пропустить"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Этот пакет нельзя убрать, потому что он уже установлен"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Этот пакет нельзя убрать, потому что он должен быть обновлен"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Показывать автоматически выбранные пакеты"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Установить"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Загрузить/Сохранить выбор"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Обновляется выбор пакетов"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr "Переключение между иерархическим и плоским списком пакетов"
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Минимальная установка"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
-msgstr "Управление программами"
+msgstr "Управление ПО"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Выберите пакеты, которые нужно установить"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
-msgstr "Устанавливается"
+msgstr "Установка"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Убрать подробности"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Оставшееся время "
+msgid "Time remaining:"
+msgstr "Оставшееся время:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Приблизительная оценка"
+msgid "(estimating...)"
+msgstr "(вычисляется...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d пакет"
-msgstr[1] "%d пакетов"
+msgstr[1] "%d пакеты"
+msgstr[2] "%d пакеты"
+msgstr[3] "%d пакеты"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Сводка"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Настройка"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "не настроен"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-"Найдены следующие установочные источники.\n"
-"Если нужно пропустить некоторые из них, сейчас с них можно снять отметки."
+"Найдены следующие источники для установки.\n"
+"Если нужно пропустить некоторые из них, сейчас с них можно снять флажки."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
"Содержимое компакт-диска перед установкой можно скопировать на жёсткий "
@@ -910,94 +1140,99 @@ msgstr ""
"После этого установка продолжится с жёсткого диска, и пакеты будут доступны "
"после полной установки системы."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "Целиком скопировать компакт-диски"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Произошла ошибка"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Выберите раскладку клавиатуры."
+msgid "Please choose your keyboard layout"
+msgstr "Выберите раскладку клавиатуры"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Ниже представлен полный список имеющихся раскладок клавиатур"
+msgid "Here is the full list of available keyboards:"
+msgstr "Полный список доступных раскладок:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Установка/Обновление"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Это установка или обновление?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
-msgstr "Установить"
+msgstr "Установка"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Обновление %s"
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "Ключ шифрования для %s"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "Отмена установки, перезагрузка системы"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "Настраивается IDE"
+msgid "New Installation"
+msgstr "Новая установка"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
-"Недостаточно свободного места для 1МБ программы самозагрузки! Установка "
-"продолжится, но для загрузки системы надо будет создать раздел начальной "
-"загрузки в DiskDrake"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Обновление предыдущей установки (не рекомендуется)"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"Надо будет создать загрузочный раздел PPC PReP! Установка продолжится, но "
-"для загрузки системы надо будет создать раздел начальной загрузки в DiskDrake"
+"Установщик обнаружил, что существующая установка Mageia не\n"
+"может быть безопасно обновлена на %s.\n"
+"\n"
+"Рекомедуется заново установить систему, заменив существующую.\n"
+"\n"
+"Внимание: вы должны сделать копию всех ваших персональных данных, перед "
+"выбором \"Новая\n"
+"Установка\"."
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "Настройка CD/DVD"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1011,159 +1246,206 @@ msgstr ""
"Если у вас его нет, нажмите 'Отмена', чтобы отказаться от установки с этого "
"диска."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
-msgstr "Выполняется поиск доступных пакетов..."
+msgstr "Поиск доступных пакетов..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-"В системе недостаточно свободного дискового пространства для установки или "
-"обновления (%d МБ > %d МБ)"
+"В вашей системе недостаточно свободного дискового пространства для установки "
+"или обновления (%d МБ > %d МБ)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
"Выберите загрузку или сохранение выбора пакетов.\n"
-"Формат файлов такой же как и у созданных при автоустановке."
+"Формат файлов такой же, как и у созданных при автоматической установке."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Загрузить"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Сохранить"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
-msgstr "Неправильный файл"
+msgstr "Неверный файл"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr ""
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Минимальная установка"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr "Выбор рабочего стола"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
+msgid "You can choose your workstation desktop profile."
+msgstr "Можно выбрать профиль настольной среды."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Выбранный размер превышает доступное место"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Тип установки"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
"Не была выбрана ни одна группа пакетов.\n"
-"Поэтому выберите тип минимальной установки:"
+"Выберите тип минимальной установки:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "С Х-сервером"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Установить рекомендуемые пакеты"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
-msgstr "С основной документацией (рекомендуется!)"
+msgstr "С основной документацией (рекомендуется)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Действительно минимальная установка (даже без urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Подготавливается обновление..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Подготовка к установке"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Устанавливается пакет %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "При загрузке пакетов возникла ошибка:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Всё равно продолжить?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "Повторить"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr "Пропустить этот пакет"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr "Пропустить все пакеты из источника \"%s\""
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
msgstr "Вернуться к выбору источника и пакетов"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
msgstr "При установке пакета %s возникла ошибка."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Настройка после установки"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
-msgstr "Проверьте в устройстве %s наличие носителя 'Update Modules'"
+msgstr "Проверьте наличие носителя 'Update Modules' в устройстве %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Обновления"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Теперь вы можете настроить сетевые хранилища пакетов."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Это дает возможность устанавливать обновления безопасности."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"Для настройки хранилищ пакетов вам понадобится работающее\n"
+"интернет соединение.\n"
+"Хотите настроить хранилище пакетов для обновления?"
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr "Этот загрузчик не может быть установлен"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Повторить попытку?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Не удалось добавить источник"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1176,142 +1458,88 @@ msgid ""
"Do you want to install the updates?"
msgstr ""
"Сейчас можно загрузить обновлённые пакеты. Эти пакеты были обновлены после\n"
-"выхода этого дистрибутива. В них могут находиться исправления безопасности\n"
-"или прочих ошибок.\n"
+"выхода дистрибутива. В них могут находиться исправления уязвимостей\n"
+"и других ошибок.\n"
"\n"
"Для загрузки этих пакетов необходимо наличие рабочего подключения\n"
"к Интернету.\n"
"\n"
"Установить эти обновления?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr ""
-"Выполняется подключение к зеркалу для получения списка доступных пакетов..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Невозможно соединиться с зеркалом %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s на %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Оборудование"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Звуковая карта"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Есть ли у вас звуковая карта ISA?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Для настройки звуковой карты запустите после установки утилиту \"alsaconf\" "
-"или \"sndconfig\"."
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Звуковая карта не обнаружена. Попробуйте запустить после установки утилиту "
-"\"harddrake\" "
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Графический интерфейс"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Сеть и Интернет"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Прокси"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "настроен"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Уровень безопасности"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Файервол"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "включен"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
-msgstr "выключен"
+msgstr "отключен"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "Х-сервер ещё не настроен. Вы точно уверены в своих действиях?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "Подготавливается начальный загрузчик..."
-
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"Похоже, что вы являетесь обладателем древней или неизвестной машины, на "
-"которой начальный загрузчик 'yaboot' не будет работать. Установка "
-"продолжится, однако для загрузки придётся использовать загрузчик 'BootX' или "
-"какой-то другой. Параметр ядра для корневой файловой системы: root=%s"
+msgid "Preparing initial startup program..."
+msgstr "Подготовка начального загрузчика..."
-#: steps_interactive.pm:1024
+#: steps_interactive.pm:1073
#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Использовать загрузчик 'aboot'?"
+msgid "Be patient, this may take a while..."
+msgstr "Подождите, это может занять некоторое время..."
-#: steps_interactive.pm:1027
-#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Не удалось устанвоить 'aboot.\n"
-"Попытаться выполнить принудительную установку, даже если может быть разрушен "
-"первый раздел?"
-
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
@@ -1320,17 +1548,17 @@ msgstr ""
"На данном уровне безопасности доступ к файлам на разделе Windows разрешён "
"только администратору. "
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Вставьте чистую дискету в дисковод %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Создается дискета автоматической установки..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1339,54 +1567,18 @@ msgid ""
msgstr ""
"Некоторые этапы не завершены.\n"
"\n"
-"Действительно завершить сейчас работу?"
+"Вы действительно хотите выйти?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Поздравляем"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Перезагрузка"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Создать дискету автоматической установки"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"При необходимости установку можно полностью\n"
-"автоматизировать. В этом случае содержимое жёсткого\n"
-"диска будет полностью продублировано.\n"
-"(Имеется в виду установка на другой компьютер.)\n"
-"\n"
-"Удобно для идентичной установки на серию машин.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Повторить"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Автоматически"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Сохранить выбор пакетов"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1398,7 +1590,7 @@ msgstr "Выбор языка"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "Локализация"
#: steps_list.pm:17
#, c-format
@@ -1477,13 +1669,6 @@ msgid ""
"Users"
msgstr "Пользователи"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Сеть"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1525,74 +1710,3 @@ msgid ""
"_: Keep these entry short\n"
"Exit"
msgstr "Выход"
-
-#~ msgid "All"
-#~ msgstr "Всё"
-
-#~ msgid "TV card"
-#~ msgstr "ТВ-тюнер"
-
-#~ msgid "Boot"
-#~ msgstr "Загрузка"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Аутентификация"
-
-#~ msgid "Arkeia"
-#~ msgstr "Arkeia"
-
-#~ msgid "Flatout"
-#~ msgstr "Flatout"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "3D"
-#~ msgstr "3D"
-
-#~ msgid "CMS"
-#~ msgstr "CMS"
-
-#~ msgid "CRM"
-#~ msgstr "CRM"
-
-#~ msgid "2007 product line"
-#~ msgstr "Продукты серии 2007"
-
-#~ msgid "Invictus Firewall"
-#~ msgstr "Файервол Invictus"
-
-#~ msgid "Discovery Live Mode"
-#~ msgstr "Discovery в live-режиме"
-
-#~ msgid "How to register"
-#~ msgstr "Как зарегистрироваться"
-
-#~ msgid "Rpmdrake 2"
-#~ msgstr "Rpmdrake 2"
-
-#~ msgid "Mandriva Online Services"
-#~ msgstr "Онлайновые службы Mandriva"
-
-#~ msgid "New Theme"
-#~ msgstr "Новая тема"
-
-#~ msgid "Web 2.0"
-#~ msgstr "Web 2.0"
-
-#~ msgid "Kaspersky"
-#~ msgstr "Kaspersky"
-
-#~ msgid "LinDVD"
-#~ msgstr "LinDVD"
-
-#~ msgid "Skype"
-#~ msgstr "Skype"
-
-#~ msgid "Transgaming/Cedega"
-#~ msgstr "Transgaming/Cedega"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
diff --git a/perl-install/install/share/po/sc.po b/perl-install/install/share/po/sc.po
index 628d040cd..974b481cb 100644
--- a/perl-install/install/share/po/sc.po
+++ b/perl-install/install/share/po/sc.po
@@ -1,27 +1,81 @@
-# translation of DrakX-sc.po to Sardu
-# Copyright (C) 2005 Free Software Foundation, Inc.
-# Antoni Pistis <antonio.pistis@virgilio.it>, 2005.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Antoni Pistis <antonio.pistis@virgilio.it>, 2005
msgid ""
msgstr ""
-"Project-Id-Version: DrakX-sc\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2005-09-14 11:29+0100\n"
-"Last-Translator: Antoni Pistis <antonio.pistis@virgilio.it>\n"
-"Language-Team: Sardu\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Sardinian (http://www.transifex.com/MageiaLinux/mageia/"
+"language/sc/)\n"
+"Language: sc\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr ""
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr ""
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr ""
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr ""
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr ""
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr ""
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
msgstr ""
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -30,130 +84,147 @@ msgid ""
"Do you have a supplementary installation medium to configure?"
msgstr ""
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Arretza (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Arretza (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Arretza (NFS)"
-#: any.pm:211
+#: any.pm:224
+#, c-format
+msgid "NFS setup"
+msgstr "Assètiu NFS"
+
+#: any.pm:225
#, c-format
-msgid "URL of the mirror?"
-msgstr "URL de su sprigu?"
+msgid "Please enter the hostname and directory of your NFS media"
+msgstr ""
-#: any.pm:217
+#: any.pm:229
#, c-format
-msgid "URL must start with ftp:// or http://"
+msgid "Hostname missing"
msgstr ""
-#: any.pm:228
+#: any.pm:230
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
+msgid "Directory must begin with \"/\""
msgstr ""
-"Cuntatu su jassu web de Mandriva Linux po tenni sa lista de is sprigus..."
-#: any.pm:233
-#, fuzzy, c-format
+#: any.pm:234
+#, c-format
+msgid "Hostname of the NFS mount ?"
+msgstr ""
+
+#: any.pm:235
+#, c-format
+msgid "Directory"
+msgstr "Directory"
+
+#: any.pm:265
+#, c-format
+msgid "Supplementary"
+msgstr ""
+
+#: any.pm:300
+#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+"Can't find a package list file on this mirror. Make sure the location is "
+"correct."
msgstr ""
-"Cuntatu su jassu web de Mandriva Linux po tenni sa lista de is sprigus..."
-#: any.pm:243
+#: any.pm:325
#, c-format
-msgid "Choose a mirror from which to get the packages"
+msgid "Core Release"
msgstr ""
-#: any.pm:273
+#: any.pm:327
#, c-format
-msgid "NFS setup"
-msgstr "Assètiu NFS"
+msgid "Tainted Release"
+msgstr ""
-#: any.pm:274
+#: any.pm:329
#, c-format
-msgid "Please enter the hostname and directory of your NFS media"
+msgid "Nonfree Release"
msgstr ""
-#: any.pm:278
+#: any.pm:367
#, c-format
-msgid "Hostname missing"
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-#: any.pm:279
+#: any.pm:368
#, c-format
-msgid "Directory must begin with \"/\""
+msgid "You should enable \"%s\""
msgstr ""
-#: any.pm:283
+#: any.pm:419
#, c-format
-msgid "Hostname of the NFS mount ?"
+msgid "\"%s\" contains the various pieces of the systems and its applications"
msgstr ""
-#: any.pm:284
+#: any.pm:420
#, c-format
-msgid "Directory"
-msgstr "Directory"
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
-#: any.pm:306
+#: any.pm:421
#, c-format
-msgid "Supplementary"
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
msgstr ""
-#: any.pm:341
+#: any.pm:422
#, c-format
msgid ""
-"Can't find a package list file on this mirror. Make sure the location is "
-"correct."
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
msgstr ""
-#: any.pm:375
+#: any.pm:423
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Càstiu is pakitus jai aposentaus..."
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
-#: any.pm:382
+#: any.pm:429
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Srèxinu is pakitus ki dui funt po ajorronai..."
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
-#: any.pm:424
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Càstiu is pakitus jai aposentaus..."
+
+#: any.pm:593
#, c-format
msgid "Finding packages to upgrade..."
msgstr "Agatu is pakitus po ajorronai..."
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:612
#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
-msgstr ""
+msgid "Removing packages prior to upgrade..."
+msgstr "Srèxinu is pakitus ki dui funt po ajorronai..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -162,82 +233,87 @@ msgid ""
"Do you really want to remove these packages?\n"
msgstr ""
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Faddina ligendi su file %s"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "Apu arrenominau is discus ki sighint:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (innantis nominau %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Arretza"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "Sçobera unu suportu, po praxeri"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Su file esistit jai. Nci scriu apitzus?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Permissu dennegau"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr ""
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr ""
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "No fait a fai fotografias innantis de pratzidurai"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "As a podi biri is fotografias apustis de s'aposentada in %s"
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
-msgstr "Seu aposentendi"
+msgstr ""
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Assètiu"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Depis formatai %s puru"
@@ -261,365 +337,455 @@ msgstr "Alluu s'arretza"
msgid "Bringing down the network"
msgstr "Studu s'arretza"
-#: media.pm:703 media.pm:714
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
+
+#: media.pm:704
#, c-format
-msgid "Downloading file %s..."
+msgid "unable to add medium"
msgstr ""
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr ""
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Còpia in cursu"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr ""
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr ""
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr ""
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr ""
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr ""
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Nisçuna descriidura"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "Workstation"
+msgid "An error occurred:"
+msgstr ""
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
+msgid "A fatal error occurred: %s."
+msgstr "Faddina mortali: %s."
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
msgstr ""
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:928
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "%d installation transactions failed"
+msgstr "%d transatzionis de aposentadura faddias"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
msgstr ""
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "Workstation"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr ""
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr ""
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr ""
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr ""
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr ""
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr ""
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr ""
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr ""
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr ""
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr ""
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Adelantamentu"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr ""
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Documentadura"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr ""
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr ""
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Server Web"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Traballu in Grupu"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Server Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Firewall/Router"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Gateway po Internet"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "Curreu/Noas"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Server de curreu Postfix, server de noas Inn"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Server de Directory"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "Server FTP"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
-msgstr ""
+msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr ""
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "Server NFS, server Samba"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Database"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "Server po Database PostGreSQL e MySQL"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "Server po Database PostGreSQL e MariaDB"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Curreu"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Server de curreu Postfix"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "Server po Database PostGreSQL e MySQL"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "Server po Database PostGreSQL e MariaDB"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr ""
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr ""
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Ambienti Gràfigu"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE Workstation"
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr ""
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "GNOME Workstation"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr ""
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
#, c-format
-msgid "IceWm Desktop"
-msgstr "IceWm Desktop"
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Atras scrianias gràfigas"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm, etc"
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr ""
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "Server SSH"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr ""
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr ""
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr ""
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
+msgid "Mageia Wizards"
msgstr ""
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr ""
@@ -633,7 +799,7 @@ msgstr ""
"Faddina. No sciu comenti ndi bessiri beni.\n"
"Sighi a perìgulu tuu."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -649,298 +815,353 @@ msgstr ""
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Aposentadura de Mandriva Linux %s"
+msgid "%s Installation %s"
+msgstr "Aposentadura de %s %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> intr''e elementus"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr ""
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Sçoberu pakitus unu a unu"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Mesura totali: %d / %d MB"
+msgid "Unselect All"
+msgstr ""
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Pakitu malu"
+msgid "Total size: %d / %d MB"
+msgstr "Mesura totali: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Versioni: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Mesura: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Importu: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "No podis scerai/disiscerai custu pakitu"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "ca amancat %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "ca no est satisfatu %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "provu a sçoberai %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "po podi apoderai %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"No podis sçoberai custu pakitu, ca no dui at spàtziu abasta po d'aposentai"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Megu a aposentai is pakitus ki sighint"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Megu a srexinai is pakitus ki sighint"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Custu est unu palitu necessàriu, no fait a du disiscerai"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "No fait a disiscerai custu pakitu. Est jai aposentau"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "No fait a disiscerai custu pakitu. Bolit ajorronau"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Amosta in automàtigu is pakitus sçoberaus"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Aposenta"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Càrriga/Sarva su sçoberu"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Ajorronu su sçoberu de is pakitus"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Aposentadura minimali"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Maniju de is programas"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Sçobera is pakitus ki bolis aposentai"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Seu aposentendi"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr ""
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Tempus ki abarrat "
+msgid "Time remaining:"
+msgstr ""
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Seu carculendi"
+msgid "(estimating...)"
+msgstr ""
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d pakitus"
-msgstr[1] "%d pakitus"
+msgstr[0] ""
+msgstr[1] ""
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Arresùmini"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Assètia"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "no assetiau"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "Còpia totu is CD"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Faddina"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Sçobera su skema de su tecrau."
+msgid "Please choose your keyboard layout"
+msgstr "Sçobera su skema de su tecrau"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Innoi sa lista de totu is tecraus a disposta"
+msgid "Here is the full list of available keyboards:"
+msgstr ""
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Aposenta/Ajorrona"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Est una aposentadura o una ajorronadura?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Aposenta"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Ajorrona %s"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
+msgid "Encryption key for %s"
+msgstr "Crai de cuadura po %s"
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
+msgid "Cancel installation, reboot system"
msgstr ""
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
-msgstr "Crai de cuadura po %s"
+msgid "New Installation"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
-msgstr "Assètiu IDE"
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+msgid "CD/DVD"
msgstr ""
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+msgid "Configuring CD/DVD"
msgstr ""
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -952,153 +1173,197 @@ msgstr ""
"Intra su Cd-Rom etiketau \"%s\" in su ligidori e craca Ok candu as fatu.\n"
"Ki no du tenis, craca Annudda po scampai s'aposentadura de custu Cd-Rom."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr ""
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Càrriga"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Sarva"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "File malu"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Aposentadura minimali"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr ""
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Tipu de aposentadura"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Cun X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr ""
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr ""
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Apariçu s'aposentadura"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr ""
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Faddina in s'ordinadura de is pakitus:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Sigu comuncas?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr ""
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr ""
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr ""
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "Sarva su sçoberu de is pakitus"
+msgstr ""
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "Faddina in s'aposentadura de is pakitus:"
+msgstr ""
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Assètiu pusti-aposentadura"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Ajorronus"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Megu a aposentai is pakitus ki sighint"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Faddina açungendi su mèdiu."
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1111,139 +1376,97 @@ msgid ""
"Do you want to install the updates?"
msgstr ""
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Cuntatu su sprigu po tenni sa lista de is pakitus a disposta..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "No potzu cuntatai su sprigu %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s in %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Hardware"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Skeda de Sonu"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Tenis una skeda de sonu ISA?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Interfaci Gràfiga"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Arretza & Internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Proxy"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "assetiau"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Arrasu de Siguresa"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Firewall"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "abivau"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "disabivau"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "No as assetiau ancora X. Siguru ses ca bolis custu?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "Apariçu su bootloader..."
-
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Preparing initial startup program..."
msgstr ""
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Bolis impreai aboot?"
-
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
+msgid "Be patient, this may take a while..."
msgstr ""
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Intra unu floppy sbuidu in su trastu %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr ""
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1251,46 +1474,16 @@ msgid ""
"Do you really want to quit now?"
msgstr ""
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Cumprimentus"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Torra a allui"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Crea unu floppy de aposentadura automàtiga"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Faiddu torra"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automatisau"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Sarva su sçoberu de is pakitus"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1381,13 +1574,6 @@ msgid ""
"Users"
msgstr "Umperadoris"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Arretza"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1430,62 +1616,10 @@ msgid ""
"Exit"
msgstr "Bessi"
-#~ msgid "All"
-#~ msgstr "Totu"
-
-#~ msgid "TV card"
-#~ msgstr "Skeda TV"
-
-#~ msgid "Boot"
-#~ msgstr "Alluidura"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Autentigadura"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#, fuzzy
-#~ msgid "Invictus Firewall"
-#~ msgstr "Interactive firewall"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "%d pakitus"
-#~ msgstr[1] "%d pakitus"
-
-#~ msgid "%d packages"
-#~ msgstr "%d pakitus"
-
-#~ msgid "Language"
-#~ msgstr "Lìngua"
-
-#~ msgid "License"
-#~ msgstr "Permissu"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "Sçobera tipu de aposentadura"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "Seu carculendi"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "Sçobera pakitus de aposentai"
-
-#~ msgid "Users"
-#~ msgstr "Umperadoris"
-
-#~ msgid "Networking"
-#~ msgstr "Arretza"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "URL de su sprigu?"
-#~ msgid "Configure X"
-#~ msgstr "Assètia X"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr "Cuntatu su jassu web de %s po tenni sa lista de is sprigus..."
diff --git a/perl-install/install/share/po/sk.po b/perl-install/install/share/po/sk.po
index e71096283..012d69bd8 100644
--- a/perl-install/install/share/po/sk.po
+++ b/perl-install/install/share/po/sk.po
@@ -1,28 +1,88 @@
-# Jan Matis <damned@hq.alert.sk>, 2000.
-# Pavol Cvengros <orpheus@hq.alert.sk>, 2000.
-# Michal Holes <Michal@Holes.sk>, 2004,2005.
-# Tibor Pittich <Tibor.Pittich@phuture.sk>, 2002,2003,2004,2005.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Jajo Pajo, 2016
+# Jajo Pajo, 2016
+# Jan Matis <damned@hq.alert.sk>, 2000
+# Michal Holes <Michal@Holes.sk>, 2004-2005
+# Milan Baša <minkob@mail.t-com.sk>, 2015
+# Pavol Cvengros <orpheus@hq.alert.sk>, 2000
+# Tibor Pittich <Tibor.Pittich@phuture.sk>, 2002-2005
msgid ""
msgstr ""
-"Project-Id-Version: DrakX\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2005-09-21 14:03+0100\n"
-"Last-Translator: Tibor Pittich <Tibor.Pittich@mandriva.org>\n"
-"Language-Team: <i18n@mandrake.sk>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Jajo Pajo\n"
+"Language-Team: Slovak (http://www.transifex.com/MageiaLinux/mageia/language/"
+"sk/)\n"
+"Language: sk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n "
+">= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Pridajte sa k nám!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Zosobnite si!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "Vaša voľba!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Kancelárske nástroje"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Domáca zábava"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "Pre deti"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "Pre rodinu"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "Pre vývojárov"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Ďakujeme Vám!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Cíťte sa voľný!"
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
msgstr "Máte ešte nejaké ďalšie doplňujúce médiá?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -30,142 +90,158 @@ msgid ""
"\n"
"Do you have a supplementary installation medium to configure?"
msgstr ""
+"Boli nájdené ďalšie médiá ktoré budú použité počas inštalácie: %s.\n"
+"\n"
+"\n"
+"Máte nejaké doplňujúce médium na konfiguráciu?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Sieť (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Sieť (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Sieť (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "URL zrkadliaceho servera"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr ""
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Pripájam sa k web stránke Mandriva Linux pre stiahnutie zoznamu zrkadiel..."
-
-#: any.pm:233
-#, fuzzy, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Pripájam sa k web stránke Mandriva Linux pre stiahnutie zoznamu zrkadiel..."
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Vyberte miror, z ktorého si chcete stiahnuť balíky"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "Nastavenie NFS"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr "Zadajte prosím meno hostiteľa a priečinok pre vaše NFS médium"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
-msgstr ""
+msgstr "Chýba meno hostiteľa"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
-msgstr ""
+msgstr "Adresár musí začínať s \"/\" "
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "Meno hostiteľa pre NFS bod pripojenia ?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
-msgstr "Priečinok"
+msgstr "Adresár"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
-msgstr ""
+msgstr "Doplňujúci"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
msgstr "Nie je možné nájsť súbor hdlist na tomto zrkadliacom servery"
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Hľadám balíky, ktoré sú už nainštalované..."
+msgid "Core Release"
+msgstr "Core Release"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Odstránenie balíkov pred aktualizáciou..."
+msgid "Tainted Release"
+msgstr "Tainted Release"
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Hľadám balíky pre aktualizáciu..."
+msgid "Nonfree Release"
+msgstr "Nonfree Release"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"Zvolili ste nasledujúcu službu/služby: %s\n"
-"\n"
-"\n"
-"Tieto služby sa spúšťajú implicitne. Momentálne nemajú žiadne známe "
-"bezpečnostné\n"
-"problémy, ale v budúcnosti nejaké môžu byť nájdené. V tom prípade musíte "
-"zabezpečiť\n"
-"upgrade čo najskôr.\n"
-"\n"
-"\n"
-"Naozaj si želáte inštalovať tieto služby?\n"
+"Niektoré hardvérové súčasti na vašom počítači potrebujú nie slobodný (non "
+"free) firmvér na to, aby mohli fungovať niektoré slobodné (free) ovládače. "
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "Mali by ste povoliť \"%s\""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "\"%s\" obsahuje rôzne časti systémov a ich aplikácie "
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "\"%s\" obsahuje nie slobodný (non free) softvér.\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"Obsahuje tiež firmvér potrebný rôznymi zariadeniami k ich práci (napr. ATI/"
+"AMD grafické karty, niektoré sieťové karty, RAID karty, ...)"
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"\"%s\" obsahuje softvér ktorý nemôže byť distribuovaný v každej krajine "
+"kvôli softvérovým patentom."
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr "Tiež obsahuje prebudovaný softvér z \"%s\" s dodatočnými možnosťami."
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "Tu môžete povoliť ďalšie zdroje ak si prajete."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Tento zdroj poskytuje aktualizácie pre zdroj \"%s\""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Hľadám balíky, ktoré sú už nainštalované..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Hľadám balíky pre aktualizáciu..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Odstránenie balíkov pred aktualizáciou..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -174,87 +250,92 @@ msgid ""
"Do you really want to remove these packages?\n"
msgstr ""
"Nasledovné balíky budú musieť byť odinštalované aby bolo možné vykonať "
-"upgrade vášho systému: %s\n"
+"aktualizáciu vášho systému: %s\n"
"\n"
"\n"
"Chcete naozaj tieto balíky odinštalovať?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Chyba pri čítaní zo súboru %s"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "Nasledovné disky boli premenované:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (predtým ako %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Sieť"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "Vyberte si zdroj"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Súbor už existuje. Prepísať?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Prístup zamietnutý"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "Nesprávne NFS meno"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "Zlý zdroj %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Nemôžem spraviť kópie obrazovky pred rozdelením disku"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Kópie obrazovky budú po inštalácii dostupné v %s"
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
-msgstr "Inštalujem"
+msgstr "Inštalaácia"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Konfigurácia"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Taktiež musíte naformátovať %s"
@@ -276,109 +357,150 @@ msgstr "Spúšťam prácu so sieťou"
#: interactive.pm:27
#, c-format
msgid "Bringing down the network"
-msgstr "Ukončuje sa prácu so sieťou"
+msgstr "Ukončuje sa práca so sieťou"
-#: media.pm:703 media.pm:714
+#: media.pm:397
#, c-format
-msgid "Downloading file %s..."
-msgstr "Sťahovanie súboru %s..."
+msgid "Please wait, retrieving file"
+msgstr "Prosím čakajte, získava sa súbor"
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "Nie je možné pridať zdroj"
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr ""
+"Prebieha kopírovanie niektorých balíčkov na disk kvôli budúcemu použitiu"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Prebieha kopírovanie"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "musíte mať"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "dôležité"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "veľmi zaujímavé"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "zaujímavé"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "možno.."
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "Získavanie informácií o balíčku z XML meta-dát..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Žiadne xml informácie pre médium \"%s\", iba čiastočné informácie pre balík "
+"%s"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Bez popisu"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"Niektoré balíky vyžadované %s nemôžu byť nainštalované:\n"
+"%s"
+
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "Nastala chyba:"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "Nastala fatálna chyba: %s"
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr "Nepýtať sa znovu"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d inštalačná transakcia zlyhala"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Zlyhala inštalácia balíkov:"
-#: share/meta-task/compssUsers.pl:11
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "Pracovná stanica"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "Kancelárska stanica"
-#: share/meta-task/compssUsers.pl:15
-#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
-msgstr ""
-"Kancelárske programy: editory (OpenOffice.org Writer, Kword), tabuľkové "
-"procesory (OpenOffice.org Calc, Kspread), pdf prehliadače, atď"
-
-#: share/meta-task/compssUsers.pl:16
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Kancelárske programy: editory (kword, abiword), tabuľkové procesory "
-"(kspread, gnumeric), pdf prehliadače, atď"
+"Kancelárske programy: editory (LibreOffice Writer, Kword), tabuľkové "
+"procesory (LibreOffice Calc, Kspread), pdf prehliadače, atď"
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Hracia stanica"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Zábavne programy: stolové, stratégie, atď"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Multimediálna stanica"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Programy na prehrávanie/editovanie zvuku a videa"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Internetová stanica"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
@@ -387,193 +509,193 @@ msgstr ""
"Nástroje na čítanie a posielanie emailov a news správ (mutt, tin..) a "
"prehliadanie www"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Sieťovy počítač (klient)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
-msgstr "Klientovia pre rôzne protokoly vrátane ssh"
+msgstr "Klienti pre rôzne protokoly vrátane ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Nástroje na jednoduchú konfiguráciu vášho počítača"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Konzolové nástroje"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Editory, shelly, súborové nástroje, terminály"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Vývojárska"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "C a C++ vývojove knižnice, programy a include súbory"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Dokumentácia"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Knihy a návody pre Linux a iný voľný softvér"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Linux Standard Base. Aplikačná podpora od tretej strany"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Web server"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Groupware"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Kolab server"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Firewall/Router"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Brána k Internetu"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "Mail/News"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Postfix poštový systém, Inn news server"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Adresárový server"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP server"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "Server doménových mien a sieťový informačný server (NIS)"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "Súborový a tlačový server"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "NFS server, Samba server"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Databázy"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "Databázový server PostgreSQL a MySQL"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "Databázový server PostgreSQL a MariaDB"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache a Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Mail"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Postfix mail server"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL, alebo MySQL databázový server"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL, alebo MariaDB databázový server"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Sieťový server"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "NFS server, SMB server, Proxy server, SSH server"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Grafické prostredie"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE pracovná stanica"
+msgid "Plasma Workstation"
+msgstr "Pracovná stanica Plasma"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -581,69 +703,121 @@ msgid ""
msgstr ""
"K Desktop Enviroment, grafické prostredie s množstvom pribalených programov"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "GNOME pracovná stanica"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr "Grafické rozhranie s aplikáciami a desktopovými nástrojmi"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr "Odľahčené grafické prostredie s uživateľsky príjemnou sadou aplikácií"
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "MATE pracovná stanica"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Cinnamon pracovná stanica"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Grafické prostredie založené na GNOME"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "Prostredie LXQt"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "Ďalšia generácia QT portu odľahčenej grafickej plochy"
+
+#: share/meta-task/compssUsers.pl:184
#, c-format
-msgid "IceWm Desktop"
-msgstr "Pracovná plocha IceWm"
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr "Odľahčené rýchle grafické prostredie"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "LXDE grafická plocha"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Odľahčené rýchle grafické prostredie"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Iné grafické prostredia"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm, atď"
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, atď."
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Utility"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH server"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Vzdialená konfigurácia servera pomocou Webmin"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "Sieťové utility/Monitoring"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "Monitorovacie nástroje, účtovanie procesov, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Sprievodcovia Mandriva"
+msgid "Mageia Wizards"
+msgstr "Sprievodcovia Mageia"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Sprievodcovia pre konfiguráciu servera"
@@ -657,7 +831,7 @@ msgstr ""
"Vyskytla sa chyba a neviem ju úplne vyriešiť.\n"
"Pokračujte na vlastnú zodpovednosť."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -676,205 +850,258 @@ msgstr "Spúšťam krok %s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Inštalácia Mandriva Linux %s"
+msgid "%s Installation %s"
+msgstr "Inštalácia %s %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> medzi položkami"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Xorg server štartuje pomaly. Prosím čakajte..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
"Váš systém má nedostatok prostriedkov. Možno budete mať problémy s\n"
-"inštaláciou Mandriva Linux. Ak sa tak stane, skúste textovú inštaláciu. Pre "
-"jej\n"
-"spustenie stlačte `F1' po naštartovaní z CDROMky a zadajte `text'."
+"inštaláciou %s. Ak sa tak stane, skúste textovú inštaláciu. Pre jej\n"
+"spustenie stlačte `F1' po naštartovaní z CDROM a zadajte `text'."
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Výber zdroja"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Inštalovať %s GNOME gafickú plochu"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Vlastná inštalácia"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Plasma grafická plocha"
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "GNOME pracovná plocha"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Vlastná pracovná plocha"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Tu je náhľad pracovnej plochy '%s' "
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Kliknite na obrázky pre zväčšenie"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Výber skupín balíkov"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Osobitná voľba balíkov"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Celková veľkosť: %d / %d MB"
+msgid "Unselect All"
+msgstr "Odznačiť všetky"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Chybný balík"
+msgid "Total size: %d / %d MB"
+msgstr "Celková veľkosť: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Verzia:"
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Veľkosť:"
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Dôležitosť:"
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
-msgstr "Môžete označiť/odznačiť tento balík"
+msgid "You cannot select/unselect this package"
+msgstr "Nemôžete označiť/odznačiť tento balík"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "kôli chýbajúcemu %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "z dôvodu neuspokojenia %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "pokus o povýšenie %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
-msgstr "v prípade zachovania %s"
+msgstr "kvôli zachovaniu %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"Nemôžete označiť tento balík pretože na jeho inštaláciu nie je dosť miesta."
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Budú nainštalované nasledovné balíky"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Nasledujúce balíky budú odstránené"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Toto je jeden zo základných balíkov, nemôže byť odznačený"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Nemôžete odznačiť tento balík. Je už nainštalovaný"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
-msgstr "Nemôžete odznačiť tento balík. Musíte pridať novú verziu"
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr "Nemôžete odznačiť tento balík. Musí byť aktualizovaný"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Zobraziť automaticky zvolené balíky"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
-msgstr "Inštalácia"
+msgstr "Inštalovať"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Načítať/Uložiť výber "
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Aktualizácia výberu balíkov"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Minimálna inštalácia"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Správa softvéru"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Zvoľte balíky, ktoré si želáte nainštalovať"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Inštalujem"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Bez detailov"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Zvyšný čas "
+msgid "Time remaining:"
+msgstr "Zostávajúci čas:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Odhadujem"
+msgid "(estimating...)"
+msgstr "(odhadujem...)"
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d balíky"
-msgstr[1] "%d balíky"
-msgstr[2] "%d balíky"
+msgstr[0] "%d balíka"
+msgstr[1] "%d balíkov"
+msgstr[2] "%d balíkov"
+msgstr[3] "%d balíkov"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Zhrnutie"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Konfigurovať"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "nenakonfigurované"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
@@ -883,106 +1110,110 @@ msgstr ""
"Nasledovné inštalačné médiá boli nájdené.\n"
"Ak nechcete niektoré z nich použiť, odznačte ich teraz."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
"Máte možnosť skopírovať obsah CD na pevný disk pred inštaláciou.\n"
"Potom bude inštalácia pokračovať z pevného disku a balíky budú dostupné aj "
"po kompletnej inštalácii."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "Kopírovať kompletné CD"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Vyskytla sa chyba"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Prosím, zvoľte si typ vašej klávesnice."
+msgid "Please choose your keyboard layout"
+msgstr "Prosím, zvoľte si rozloženie klávesnice"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Tu je úplný zoznam dostupných klávesníc"
+msgid "Here is the full list of available keyboards:"
+msgstr "Tu je kompletný zoznam dostupných klávesníc:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Inštalácia/Aktualizácia"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Želáte si vykonať inštaláciu alebo aktualizáciu?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Inštalácia"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Aktualizácia %s"
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "Kryptovací kľúč pre %s"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "Zrušiť inštaláciu, reštartovať systém"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "Konfigurácia IDE"
+msgid "New Installation"
+msgstr "Nová inštalácia"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
-"Nie je dostatok miesta pre 1MB veľký bootstrap! Inštalácia môže pokračovať, "
-"ale pre spustenie systému musíte vytvoriť oddiel pomocou DiskDrake"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Aktualizovať predchádzajúcu inštaláciu (nedoporučené)"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"Je potrebné vytvoriť PPC PReP spúšťací bootstrap! Inštalácia bude "
-"pokračovať, ale pre spustenie systému musíte vytvoriť bootstrap oddiel "
-"pomocou DiskDrake"
+"Inštalátor zistil že váš nainštalovaný Linuxový systém nemôže\n"
+"byť bezpečne aktualizovaný na %s.\n"
+"\n"
+"Doporučujeme novú inštaláciu, ktorá nahradí predchádzajúcu.\n"
+"\n"
+"Upozornenie: mali by ste si zazálohovať vaše osobné dáta pred tým ako\n"
+" vyberiete \"Nová inštalácia\". "
-#: steps_interactive.pm:328
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "Nastavenie CD/DVD"
+
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -996,74 +1227,75 @@ msgstr ""
"Ak takýto CD disk nemáte, zvoľte Zrušiť pre zrušenie inštalácie z tohoto CD-"
"ROM disku."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Hľadajú sa dostupné balíky..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
+"Vo vašom systéme nie je dostatok voľného miesta pre inštaláciu alebo "
+"aktualizáciu (%dMB > %dMB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-"Vyberte si načítanie alebo uloženie výberu balíkov na disketu.\n"
-"Formát je rovnaký ako pre diskety generované automatickou\n"
-"inštaláciou."
+"Vyberte si načítanie alebo uloženie výberu balíkov.\n"
+"Formát je rovnaký ako pre súbory generované ako auto_install."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Zaťaženie"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Uložiť"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Zlý súbor"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Minimálna inštalácia"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr "Výber pracovnej plochy"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
+msgid "You can choose your workstation desktop profile."
+msgstr "Môžete si vybrať váš profil pracovnej plochy."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Zvolená veľkosť je väčšia ako dostupné miesto"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Typ inštalácie"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1072,83 +1304,130 @@ msgstr ""
"Nebola vybraná žiadna skupina balíkov\n"
"Prosím, zvoľte si typ minimálnej inštalácie, ktorú si želáte vykonať:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "S X Window System"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Inštalovať doporučené balíky"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "So základnou dokumentáciou (doporučené!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Naozaj minimálna inštalácia (bez urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Pripravuje sa aktualizácia..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Pripravuje sa inštalácia"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Inštaluje sa balík %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Chyba pri zoraďovaní zoznamu balíkov:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Napriek tomu pokračovať?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
-msgstr ""
+msgstr "Opakovať"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
-msgstr ""
+msgstr "Preskočiť tento balík?"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
-msgstr ""
+msgstr "Preskočiť všetky balíky zo zdroja \"%s\""
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "Uložiť výber balíkov"
+msgstr "Vrátiť sa naspäť na výber zdrojov a balíkov"
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "Počas inštalácie balíkov sa vyskytla chyba:"
+msgstr "Vyskytla sa chyba počas inštalácie balíka %s "
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Poinštalačná konfigurácia"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
-msgstr ""
-"Presvečte sa prosím, že médium s aktualizovanými modulmi je v mechanike %s"
+msgstr "Presvedčte sa prosím, že aktualizačný zdroj je v mechanike %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Aktualizácie"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Teraz máte možnosť nastaviť online zdroje."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Toto povolí nainštalovať bezpečnostné aktualizácie."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"Pre nastavenie tohoto zdroja budete potrebovať funkčné internetové \n"
+"pripojenie.\n"
+"\n"
+"Chcete nastaviť aktualizačný zdroj?"
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Budú nainštalované nasledovné balíky"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Opakovať?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Chyba pri pridávaní zdroja"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1169,150 +1448,99 @@ msgstr ""
"\n"
"Želáte si nainštalovať aktualizácie balíčkov?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr ""
-"Pripájanie k zrkadliacemu serveru a získavanie zoznamu možných balíkov..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Nebolo možné spojiť sa so zrkadliacim serverom %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s na %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Hardvér"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Zvuková karta"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Máte nejakú ISA zvukovú kartu?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Po inštalácii spustite \"alsaconf\" alebo \"sndconfig\" ak chcete nastaviť "
-"zvukovú kartu"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "Zvuková karta nebola nájdená. Skúste \"harddrake\" po inštalácii"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Grafické rozhranie"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Sieť a Internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Proxy"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "nakonfigurované"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Úroveň bezpečnosti"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Firewall"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "aktivované"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "zakázané"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "Nemáte nakonfigurovaný X Window systém. Ste si istí, že to tak chcete?"
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "Pripravuje sa zavádzač..."
-
-#: steps_interactive.pm:1018
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"Zdá sa, že máte OldWorld alebo iný neznámy počítač a yaboot zavádzač vám "
-"nebude fungovať. Inštalácia bude pokračovať, ale budete potrebovať použiť "
-"BootX pre štartovanie vášho počítača. Argument pre jadro s umiestnením "
-"koreňového súborového systému je: root=%s"
+msgid "Preparing initial startup program..."
+msgstr "Pripravuje sa spúšťací program..."
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Chcete použiť aboot?"
-
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Chyba inštalácie aboot.\n"
-"Skúsiť silovú inštaláciu s možnosťou zničenia prvého oddielu?"
+msgid "Be patient, this may take a while..."
+msgstr "Buďte trpezlivý, môže to chvíľu trvať..."
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-"Vrámci tejto bezpečnostnej úrovne je prístup k súborom na Windows oblasti "
+"V rámci tejto bezpečnostnej úrovne je prístup k súborom na Windows oblasti "
"umožnený iba pre administrátora."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Vložte čistú disketu do mechaniky %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Pripravuje sa autoinštalačná disketa..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1323,48 +1551,16 @@ msgstr ""
"\n"
"Naozaj chcete teraz skončiť?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Gratulujeme"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Reštart"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Príprava auto inštalačnej diskety"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Automatická inštalácia môže byť plne automatizovaná\n"
-"v tom prípade však inštalácia zaberie celý pevný disk.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Zopakovať"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automatická"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Uložiť výber balíkov"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1376,7 +1572,7 @@ msgstr "Jazyk"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "Lokalizácia"
#: steps_list.pm:17
#, c-format
@@ -1404,7 +1600,7 @@ msgstr "Detekcia pevného disku"
msgid ""
"_: Keep these entry short\n"
"Installation class"
-msgstr ""
+msgstr "Inštalačná trieda"
#: steps_list.pm:23
#, c-format
@@ -1432,14 +1628,14 @@ msgstr "Rozdelenie diskov"
msgid ""
"_: Keep these entry short\n"
"Formatting"
-msgstr ""
+msgstr "Formátovanie"
#: steps_list.pm:29
#, c-format
msgid ""
"_: Keep these entry short\n"
"Choosing packages"
-msgstr ""
+msgstr "Výber balíkov"
#: steps_list.pm:31
#, c-format
@@ -1455,13 +1651,6 @@ msgid ""
"Users"
msgstr "Používatelia"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Sieť"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1504,76 +1693,23 @@ msgid ""
"Exit"
msgstr "Koniec"
-#~ msgid "All"
-#~ msgstr "Všetko"
-
-#~ msgid "TV card"
-#~ msgstr "TV karta"
-
-#~ msgid "Boot"
-#~ msgstr "Boot"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Autentifikácia"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#, fuzzy
-#~ msgid "Invictus Firewall"
-#~ msgstr "Interaktívny firewall"
-
-#, fuzzy
-#~ msgid "New Theme"
-#~ msgstr "Nová téma pre webmin"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "%d balíky"
-#~ msgstr[1] "%d balíky"
-#~ msgstr[2] "%d balíky"
-
-#~ msgid "%d packages"
-#~ msgstr "%d balíky"
-
-#~ msgid "Language"
-#~ msgstr "Jazyk"
-
-#~ msgid "License"
-#~ msgstr "Licencia"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "Voľba triedy inštalácie"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "Odhadujem"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "Výber balíkov"
-
-#~ msgid "Users"
-#~ msgstr "Používatelia"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "URL zrkadliaceho servera?"
-#~ msgid "Networking"
-#~ msgstr "Sieť"
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "URL musí začínať s ftp:// alebo http://"
-#~ msgid "Configure X"
-#~ msgstr "Konfigurácia X"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr "Pripájam sa k web stránke %s pre stiahnutie zoznamu zrkadiel..."
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
#~ msgstr ""
-#~ "Nie je možné načítať moduly pre vaše jadro (súbor %s chýba), toto sa "
-#~ "stáva hlavne vtedy, ak vaša disketa nie je vytvorená pre inštalačné "
-#~ "médium, ktoré používate (vytvorte si prosím novú štartovaciu disketu)"
+#~ "Zlyhalo pripojenie ku web stránke %s pre stiahnutie zoznamu zrkadiel"
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Vyberte zrkadlo, z ktorého si chcete stiahnuť balíky"
diff --git a/perl-install/install/share/po/sl.po b/perl-install/install/share/po/sl.po
index 3c27f5c28..21b504d5e 100644
--- a/perl-install/install/share/po/sl.po
+++ b/perl-install/install/share/po/sl.po
@@ -1,33 +1,89 @@
-# translation of sl.po to Slovenščina
-# Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
-# Matjaž Kaše <matjaz.kase@g-kabel.si>, 2004.
-# Aljoša Ločičnik <aljosa.locicnik@mandrakeprinas.org>, 2005.
-# Gregor Pirnaver <gregor.pirnaver@sdm-si.org>, 2002,2004,2005.
-# Jure Repinc <jlp@holodeck1.com>, 2005, 2007.
-# Matjaž Kaše <matjaz.kase@telemach.net>, 2006.
+# Translators:
+# Aljoša Ločičnik <aljosa.locicnik@mandrakeprinas.org>, 2005
+# Filip Komar <filip.komar@guest.arnes.si>, 2011-2013,2015-2017
+# Filip Komar <filip.komar@guest.arnes.si>, 2018,2020,2023
+# Gregor Pirnaver <gregor.pirnaver@sdm-si.org>, 2002,2004-2005
+# Jure Repinc <jlp@holodeck1.com>, 2005,2007-2009
+# Matjaž Kaše <matjaz.kase@g-kabel.si>, 2004
+# Matjaž Kaše <matjaz.kase@telemach.net>, 2006
+# Rok Kepa <rokkepa@gmail.com>, 2014
msgid ""
msgstr ""
-"Project-Id-Version: sl\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-09-09 10:53+0200\n"
-"Last-Translator: Jure Repinc <jlp@holodeck1.com>\n"
-"Language-Team: Slovenščina <lugos-slo@lugos.si>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2013-04-04 13:31+0000\n"
+"Last-Translator: Filip Komar <filip.komar@guest.arnes.si>, 2018,2020,2023\n"
+"Language-Team: Slovenian (http://app.transifex.com/MageiaLinux/mageia/"
+"language/sl/)\n"
+"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || "
-"n%100==4 ? 2 : 3);\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
+"%100==4 ? 2 : 3);\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Pridružite se nam!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Osvojite jo!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "Vaša izbira!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Pisarniška orodja"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Domača zabava"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "Za otroke"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "Za družino!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "Za razvijalce!"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Hvala!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Bodite svobodni!"
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
-msgstr "Imate še kakšen dodatni vir za nameščanje?"
+msgstr "Ali imate še kak dodaten namestitveni vir?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -35,148 +91,162 @@ msgid ""
"\n"
"Do you have a supplementary installation medium to configure?"
msgstr ""
-"Zaznan je bil vir ki bo uporabljen med namestitvijo: %s.\n"
+"Zaznani so bili naslednji viri, ki bodo uporabljeni med namestitvijo: %s.\n"
"\n"
"\n"
-"Imate še kakšen dodaten vir ki ga je potrebno nastaviti?"
-
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
+"Ali imate še kak dodaten namestitveni vir, ki ga je potrebno nastaviti?"
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Omrežje (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Omrežje (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Omrežje (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "URL zrcalnega strežnika?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "URL se mora začeti s ftp:// ali http://"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Vzpostavljanje povezave s spletno stranjo Mandriva Linux in pridobivanje "
-"seznama dosegljivih strežnikov...."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Vzpostavljanje povezave s spletno stranjo Mandriva Linux in pridobivanje "
-"seznama dosegljivih strežnikov je spodletelo."
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Izberite zrcalni strežnik, s katerega želite pridobiti popravke"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "Namestitev prek NFS"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
-msgstr "Prosim, vnesite ime gostitelja in ime mape vašega vira NFS"
+msgstr "Vnesite ime gostitelja in ime mape vašega vira NFS"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr "Manjka ime gostitelja"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "Mapa se mora pričeti z »/«"
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "Ime gostitelja vira NFS"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Mapa"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "Dodatno"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
msgstr ""
"Na tem zrcalnem strežniku ne najdem seznama paketov. Prepričajte se, da je "
-"naslov pravi."
+"lokacija prava."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Pregledovanje že nameščenih paketov...."
+msgid "Core Release"
+msgstr "Glavni (core) - izdajni"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Odstranjevanje paketov pred posodobitvijo ..."
+msgid "Tainted Release"
+msgstr "Patentno zaščiteni (tainted) - izdajni"
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Iskanje paketov za posodobitev..."
+msgid "Nonfree Release"
+msgstr "Lastniški (nonfree) - izdajni"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"Izbrali ste naslednje strežnike:%s\n"
-"\n"
-"\n"
-"Navedeni strežniki se zaženejo samodejno. O tem, ali so ti strežniki varni,\n"
-" ni podatkov, zato vas želimo opozoriti, da jih čimprej posodobite,\n"
-"če izveste za njihove novejše različice.\n"
-"\n"
-"\n"
-"Ste prepričani, da želite namestiti navedene strežnike?\n"
+"Nekateri deli vaše strojne opreme za pravilno delovanje odprtokodnih "
+"gonilnikov potrebujejo lastniško strojno programsko opremo."
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "Priporočljivo je omogočiti vir »%s«"
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+"Vir »%s« vsebuje različne sistemske dele in pripadajočo programsko opremo"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "Vir »%s« vsebuje lastniško programsko opremo.\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"Vsebuje tudi strojno programsko opremo, ki je potrebna za delovanje "
+"nekaterih naprav (npr.: nekatere grafične kartice ATI/AMD, določene mrežne "
+"kartice, nekatere kartice RAID) …"
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"Vir »%s« vsebuje programsko opremo, ki je zaradi patentne zaščite v "
+"nekaterih državah ni možno prosto razširjati."
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr "Vsebuje tudi pakete iz vira »%s«, a z dodatnimi zmožnostmi."
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "Tu lahko po želji omogočite več virov."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Ta vir ponuja posodobitve paketov za vir »%s«"
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Pregledovanje že nameščenih paketov …"
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Iskanje paketov za posodobitev …"
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Odstranjevanje paketov pred posodobitvijo …"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -184,91 +254,96 @@ msgid ""
"\n"
"Do you really want to remove these packages?\n"
msgstr ""
-"Da bi bilo mogoče posodobiti sistem, je treba odstraniti naslednje pakete: %"
-"s\n"
+"Da bi bilo mogoče posodobiti sistem, je treba odstraniti naslednje pakete: "
+"%s\n"
"\n"
"\n"
-"Naj odstranim navedene pakete?\n"
+"Ali naj odstranim navedene pakete?\n"
+
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Napaka pri branju datoteke %s"
-#: any.pm:1055
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "Preimenovani so bili diski:"
+msgstr "Preimenovani so bili naslednji diski:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
-msgstr "%s (prejšnje ime %s)"
+msgstr "%s (prejšnje ime: %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Omrežje"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
-msgstr "Prosim, izberite vir"
+msgstr "Izberite vir"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "Datoteka že obstaja. Jo prepišem?"
+msgstr "Datoteka že obstaja. Ali naj jo nadomestim?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Nimate dovoljenja"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "Napačno ime NFS"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "Neustrezen vir %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Posnetkov zaslona ni mogoče zajeti, dokler disk ni razdeljen"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
-msgstr "Posnetki zaslona bodo po namestitvi v %s"
+msgstr "Po namestitvi bodo posnetki zaslona v %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
-msgstr "Nameščanje "
+msgstr "Namestitev"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Nastavitev"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
-msgstr "Formatirati morate tudi %s."
+msgstr "Formatirati morate tudi %s"
#: interactive.pm:16
#, c-format
@@ -276,386 +351,479 @@ msgid ""
"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
"You can find some information about them at: %s"
msgstr ""
-"Nekateri deli vaše strojne opreme potrebujejo za pravilno delovanje "
+"Nekateri deli strojne opreme za pravilno delovanje potrebujejo zaprto-kodne "
"»lastniške« gonilnike.\n"
-"Nekaj informacij o tem dobite na: %s"
+"Nekaj podatkov o tem dobite na: %s"
#: interactive.pm:22
#, c-format
msgid "Bringing up the network"
-msgstr "Vklapljanje omrežja"
+msgstr "Priklapljanje omrežja"
#: interactive.pm:27
#, c-format
msgid "Bringing down the network"
msgstr "Izklapljanje omrežja"
-#: media.pm:703 media.pm:714
+#: media.pm:397
#, c-format
-msgid "Downloading file %s..."
-msgstr "Prenos datoteke %s..."
+msgid "Please wait, retrieving file"
+msgstr "Počakajte. Pridobivanje datoteke ..."
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "dodajanje vira ni bilo možno"
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
-msgstr "Kopiranje nekaterih datotek na disk"
+msgstr "Kopiranje nekaterih paketov na disk, za kasnejšo uporabo"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Kopiranje poteka"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "nepogrešljivo"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "pomembno"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "zelo uporabno"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "uporabno"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "morda"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "Pridobivanje informacij o paketu iz metapodatkov XML …"
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr "Za vir »%s« ni metapodatkov, zato rezultati za paket %s niso popolni"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Brez opisa"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"Nekaj paketov, ki jih zahteva %s ni mogoče namestiti:\n"
+"%s"
+
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "Prišlo je do napake:"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "Zgodila se je usodna napaka: %s."
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr "Ne sprašuj več"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "Spodletelo je %d namestitvenih transakcij"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Nameščanje paketov ni uspelo:"
-#: share/meta-task/compssUsers.pl:11
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "Delovna postaja"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "Pisarniška delovna postaja"
-#: share/meta-task/compssUsers.pl:15
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Pisarniški programi: urejanje besedila (OpenOffice.org Writer, Kword), "
-"preglednice (OpenOffice.org Calc, Kspread), pregledovalniki PDF, itd"
+"Pisarniški programi: urejavalniki besedil (LibreOffice Writer, KWord), "
+"preglednice (LibreOffice Calc, KSpread), pregledovalniki PDF, itd"
-#: share/meta-task/compssUsers.pl:16
-#, c-format
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"Pisarniški programi: urejanje besedila (kword, abiword), preglednice "
-"(kspread, gnumeric), pregledovalniki PDF, itd"
-
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Igralna postaja"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Programi za zabavo: arkade, deske, strategije, itd"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Večpredstavnostna postaja"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Programi za predvajanje in urejanje zvoka in videa"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Internetna postaja"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
"Zbirka orodij za branje in pošiljanje pošte in pošiljanje v novičarske "
-"skupine (mitt, tin ...) ter brskanje po spletu"
+"skupine (mutt, tin ...) ter brskanje po spletu"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Omrežni računalnik (odjemalec)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Odjemalci za različne protokole, vključujoč SSH"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Orodja za lažjo nastavitev računalnika"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Konzolna orodja"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Urejevalniki, lupine, datotečna orodja, terminali"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Razvoj"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
-msgstr "Razvojne knjižnice, programi in zaglavne datoteke za C in C++"
+msgstr "Razvojne knjižnice, programi in datoteke z glavami za C in C++"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Dokumentacija"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Knjige in priročniki o Linuxu in prostem programju"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Standardna osnova Linuxa (LSB). Podpora programom tretjih oseb"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
-msgstr "Internetni strežnik"
+msgstr "Spletni strežnik"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
-msgstr "Program za skupinsko delo"
+msgstr "Skupinsko delo"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Strežnik Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
-msgstr "Požarni zid/Usmerjevalnik"
+msgstr "Požarni zid/usmerjevalnik"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Internetni prehod (gateway)"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
-msgstr "Pošta/Novičarske skupine"
+msgstr "Pošta/novičarske skupine"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Poštni strežnik postfix in novičarski strežnik Inn"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Imeniški strežnik"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "Strežnik FTP"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "Strežnik domen in omrežnih podatkov (NIS)"
+msgstr "Strežnik imen domen in omrežnih podatkov"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
-msgstr "Strežnik za datoteke in tiskalnike v skupni rabi"
+msgstr "Strežnik za skupno rabo datotek in tiskalnikov"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "Strežnik NFS, strežnik Samba"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
-msgstr "Podatkovna baza"
+msgstr "Podatkovna zbirka"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "Strežnik podatkovnih baz PostgreSQL in MySQL"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "Strežnik podatkovnih baz PostgreSQL in MariaDB"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Splet/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Pošta"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Poštni strežnik Postfix"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "Strežnik podatkovnih baz PostgreSQL in MySQL"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "Strežnik podatkovnih baz PostgreSQL ali MariaDB"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
-msgstr "Strežnik omrežnega računalnika"
+msgstr "Omrežni računalnik (strežnik)"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "Strežnik NFS, strežnik SMB, posredniški strežnik, strežnik SSH"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Grafično okolje"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "Delovna postaja KDE"
+msgid "Plasma Workstation"
+msgstr "Delovna postaja Plazma"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
-msgstr "Namizno okolje KDE, osnovno okolje z zbirko pripadajočih orodij"
+msgstr ""
+"Namizno okolje KDE, moderno grafično okolje z zbirko pripadajočih orodij"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "Delovna postaja GNOME"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr ""
-"Grafično okolje z uporabniku prijaznim naborom programov in namiznimi orodji"
+"Grafično okolje z naborom uporabniku prijaznih programov in namiznimi orodji"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr "Delovna postaja Xfce"
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Majhno grafično okolje z naborom uporabniku prijaznih programov in namiznimi "
+"orodji"
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "Delovna postaja MATE"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Delovna postaja Cinnamon"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Grafično okolje osnovano na GNOME"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "Namizje LXQt"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "Nova generacija majhnega in hitrega namiznega okolja prenesenega na QT"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr "Namizje Enlightenment"
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr "Majhno in hitro grafično okolje s predanimi privrženci"
+
+#: share/meta-task/compssUsers.pl:189
#, c-format
-msgid "IceWm Desktop"
-msgstr "Namizje IceWM"
+msgid "LXDE Desktop"
+msgstr "Namizje LXDE"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Majhno in hitro grafično okolje"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Druga grafična namizja"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, FVWM ..."
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, FVWM ..."
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Pripomočki"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "Strežnik SSH"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Strežnik Webmin za oddaljen dostop do nastavitev"
+msgstr "Strežnik Webmin za oddaljeno nastavljanje"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Omrežni pripomočki / Nadzorniki"
+msgstr "Omrežni pripomočki/nadzorovanje"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
-msgstr "Nadzorna orodja, knjigovodstvo procesov, tcpdump, nmap ..."
+msgstr "Nadzorna orodja, knjigovodstvo procesov, tcpdump, nmap …"
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Mandrivini čarovniki"
+msgid "Mageia Wizards"
+msgstr "Magejini čarovniki"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Čarovniki za nastavitev strežnikov"
@@ -666,10 +834,10 @@ msgid ""
"An error occurred, but I do not know how to handle it nicely.\n"
"Continue at your own risk."
msgstr ""
-"Prišlo je do napake, ki je sistem na ustrezen način ne zna odpraviti.\n"
+"Prišlo je do napake, ki je sistem ne zna odpraviti na ustrezen način.\n"
"Nadaljujte na lastno odgovornost."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -678,194 +846,247 @@ msgid ""
"\"\n"
msgstr ""
"Nekateri pomembni paketi niso bili ustrezno nameščeni.\n"
-"Verjetno imate pokvarjeno zgoščenko ali CD-ROM.pogon. \n"
-"Na računalniku, na katerem je nameščen Linux, preverite zgoščenko\n"
-"z ukazom »rpm -qpl media/main/*.rpm«.\n"
+"Verjetno imate poškodovan namestitveni nosilec ali pa pogon\n"
+"za branje. Na računalniku, na katerem je nameščen Linux,\n"
+"preverite nosilec z ukazom »rpm -qpl media/main/*.rpm«.\n"
#: steps_auto_install.pm:71 steps_stdio.pm:27
#, c-format
msgid "Entering step `%s'\n"
-msgstr "Pričetek s korakom '%s'\n"
+msgstr "Pričetek koraka »%s«\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Namestitev Mandriva Linux %s"
+msgid "%s Installation %s"
+msgstr "Namestitev %s %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> med elementi"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Grafični strežnik se zaganja počasi. Počakajte …"
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"Vaš sistem ni dovolj zmogljiv. Lahko, da boste imeli pri namestitvi\n"
-"Mandriva Linuxa težave. V tem primeru lahko poskusite z namestitvijo v "
-"besedilnem načinu. \n"
-"Po zagonu z zgoščenke pritisnite »F1« in vpišite »text«."
+"Vaš sistem ni zelo zmogljiv. Lahko, da boste imeli pri namestitvi\n"
+"%s težave. V tem primeru lahko poskusite z namestitvijo\n"
+"v besedilnem načinu.\n"
+"Po zagonu z namestitvenega nosilca pritisnite »F1« in vnesite »text«."
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Izbira virov"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Namestitev %s namizja Plazma"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Namestitev %s namizja GNOME"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Po meri"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Namizje Plazma"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "Namizje GNOME"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Namizje po meri"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "To je ogled namizja »%s«."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Kliknite na sliko, da vidite večji predogled"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
-msgstr "Izbira skupine paketov"
+msgstr "Izbira skupin paketov"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Izbira posamičnih paketov"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Celotna velikost: %d / %d MB"
+msgid "Unselect All"
+msgstr "Odstrani izbiro"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Paket je pokvarjen"
+msgid "Total size: %d / %d MB"
+msgstr "Skupna velikost: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
-msgstr "Različica:"
+msgstr "Različica: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Velikost: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
-msgstr "Pomembnost:"
+msgstr "Pomembnost: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Tega paketa ne morete izbrati ali izločiti."
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "ker manjka %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
-msgstr "zaradi nezadovoljstva %s"
+msgstr "zaradi ne-zadostitve %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "poizkušam uveljaviti %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "da bi obdržal %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"Tega paketa ne morete izbrati, ker ni dovolj prostora, da bi ga lahko "
"namestili."
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
-msgstr "Nameščeni bodo naslednji paketi:"
+msgstr "Nameščeni bodo naslednji paketi"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
-msgstr "Odstranjeni bodo naslednji paketi:"
+msgstr "Odstranjeni bodo naslednji paketi"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
-msgstr "Tega paketa ni mogoče izločiti."
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr "To je obvezen paket in ga ni mogoče izločiti."
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Tega paketa ne morete izločiti, ker je že nameščen."
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Tega paketa ne morete izločiti, ker ga je treba posodobiti."
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
-msgstr "Pokaži samodejno izbrane pakete"
+msgstr "Prikaži samodejno izbrane pakete"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Namesti"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
-msgstr "Naloži/shrani izbiro"
+msgstr "Naloži/shrani izbor"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Posodabljanje izbora paketov"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr "Preklop med hierarhičnim in ploskim pogledom seznama."
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Minimalna namestitev"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
-msgstr "Upravljanje programja"
+msgstr "Upravljanje s programi"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Izberite pakete, ki jih želite namestiti"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Nameščanje"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Brez podrobnosti"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Preostali čas "
+msgid "Time remaining:"
+msgstr "Preostali čas:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Ocena"
+msgid "(estimating...)"
+msgstr "(izračunavanje …)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
@@ -874,131 +1095,135 @@ msgstr[1] "%d paketa"
msgstr[2] "%d paketi"
msgstr[3] "%d paketov"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Povzetek"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
-msgstr "Nastavite"
+msgstr "Nastavitev"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "ni nastavljeno"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-"Na voljo so naslednji viri za namestitev:\n"
-"Če želite katerega izmed njih izločiti, to lahko storite sedaj."
+"Na voljo so naslednji viri za namestitev.\n"
+"Če želite, lahko katerega izmed njih sedaj izločite."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-"Pred namestitvijo lahko vsebino zgoščenk prekopirate na trdi disk.\n"
+"Pred namestitvijo lahko vsebino namestitvenih nosilcev prekopirate na trdi "
+"disk.\n"
"V tem primeru bo namestitev potekala s trdega diska, paketi pa bodo ostali "
-"na voljo tudi po dokončani namestitvi."
+"na voljo tudi po zaključeni namestitvi."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
-msgstr "Prekopiraj celotno vsebino zgoščenk"
+msgstr "Prekopiraj vsebino nosilcev"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Prišlo je do napake"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
+msgid "Please choose your keyboard layout"
msgstr "Izberite razpored tipkovnice"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Izbirate lahko med naslednjimi tipkovnicami:"
+msgid "Here is the full list of available keyboards:"
+msgstr "Tu je celoten seznam razpoložljivih tipkovnic:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
-msgstr "Namestitev/Posodobitev"
+msgstr "Namestitev/nadgradnja"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
-msgstr "Želite izvesti novo namestitev ali posodobiti obstoječ sistem?"
+msgstr "Ali želite izvesti namestitev ali nadgradnjo?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
-msgstr "Namesti"
+msgstr "Namestitev"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
-msgstr "Posodobitev %s"
+msgstr "Nadgradnja %s"
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "Šifrirni ključ za %s"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "Prekliči namestitev, znova zaženi računalnik"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "Nastavljanje IDE"
+msgid "New Installation"
+msgstr "Nova namestitev"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
-"Ni prostora za zapis začetnega nalaganja (1MB). Namestitev se bo "
-"nadaljevala, vendar morate, da bi sistem po namestitvi lahko zagnali, s "
-"pomočjo orodja DiskDrake ustvariti razdelek za začetno nalaganje."
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Nadgradite obstoječo namestitev (ni priporočeno)"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"Ustvariti morate PPC PReP Boot bootstrap! Namestitev se bo nadaljevala, "
-"vendar boste morali za zagon sistema s pomočjo DiskDrake ustvariti bootstrap "
-"razdelek."
+"Namestitveni program je zaznal, da obstoječe namestitve\n"
+"Linuxa ni mogoče varno nadgraditi na različico %s.\n"
+"\n"
+"Priporočena je nova namestitev, ki nadomesti obstoječo.\n"
+"\n"
+"Opozorilo: Pred nadaljevanjem z novo namestitvijo napravite\n"
+"varnostno kopijo vseh osebnih podatkov."
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "Nastavljanje enote CD/DVD"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1006,79 +1231,80 @@ msgid ""
"done.\n"
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
-"Zamenjajte zgoščenko!\n"
+"Zamenjajte nosilec!\n"
"\n"
-"Prosim, vstavite zgoščenko z oznako »%s« v pogon in kliknite V redu\n"
-"Če zahtevane zgoščenke nimate, kliknite Prekliči, da jo bo namestitev obšla."
+"V pogon vstavite namestitveni nosilec z oznako »%s« in kliknite V redu.\n"
+"Če zahtevanega nosilca nimate, kliknite Prekliči, da ga bo namestitev "
+"preskočila."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
-msgstr "Iskanje dosegljivih paketov...."
+msgstr "Iskanje razpoložljivih paketov …"
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
"Sistem nima dovolj prostora za namestitev ali nadgradnjo (%d MB > %d MB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-"Prosim, izberite nalaganje ali shranjevanje izbora paketov.\n"
-"Format je enak datotekam za samodejno namestitev."
+"Izberite nalaganje ali shranjevanje izbora paketov.\n"
+"Format je enak formatu datotek za samodejno namestitev (auto_install)."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Naloži"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Shrani"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Neustrezna datoteka"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr "Namizje Mandriva KDE"
+msgid "Plasma"
+msgstr "Plazma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr "Namizje Mandriva GNOME"
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
+#: steps_interactive.pm:459
#, c-format
-msgid "Custom install"
-msgstr "Po meri"
+msgid "Desktop Selection"
+msgstr "Izbira namizja"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr "Tu lahko izberete namizno okolje, ki bo nameščeno:"
+msgid "You can choose your workstation desktop profile."
+msgstr "Tu lahko izberete namizno okolje, ki bo nameščeno."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
-msgstr "Izbrana velikost presega prostor, ki je na razpolago."
+msgstr "Velikost izbora presega velikost razpoložljivega prostora."
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
-msgstr "Način namestitve"
+msgstr "Vrsta namestitve"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1087,82 +1313,129 @@ msgstr ""
"Izbrali niste nobene skupine paketov.\n"
"Izbrati morate vsaj minimalno namestitev:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
-msgstr "Z X"
+msgstr "Z grafičnim okoljem"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Namesti priporočene pakete"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
-msgstr "Z osnovno dokumentacijo (Priporočeno!)"
+msgstr "Z osnovno dokumentacijo (priporočeno)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Zares najmanjša možna namestitev (še posebej brez urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Pripravljanje nadgradnje …"
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Pripravljanje namestitve"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Nameščanje paketa %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Med razvrščanjem paketov je prišlo do napake:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
-msgstr "Želite kljub temu nadaljevati?"
+msgstr "Ali naj kljub temu nadaljujem?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "Poskusi znova"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr "Spusti ta paket"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr "Spusti vse pakete z nosilca »%s«"
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
msgstr "Nazaj na izbiro nosilcev in paketov"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
msgstr "Prišlo je do napake med nameščanjem paketa %s."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
-msgstr "Nastavitve po namestitvi"
+msgstr "Nastavitev po namestitvi"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
-msgstr "Prosim, prepričajte se, da je medij »Posodobitev modulov« v pogonu %s"
+msgstr "Prepričajte se, da je nosilec »Posodobitev modulov« v pogonu %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Posodobitve"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Sedaj je priložnost za nastavitev spletnih virov."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "S tem bo možno namestiti varnostne posodobitve."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"Za nastavitev spletnih virov je potrebna delujoča spletna povezava.\n"
+"\n"
+"Ali želite nastaviti spletne posodobitvene vire?"
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr "Tega programa za prenos ni bilo možno namestiti"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Poskusi znova?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Napaka pri dodajanju vira"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1174,217 +1447,127 @@ msgid ""
"\n"
"Do you want to install the updates?"
msgstr ""
-"Imate možnost, da s strežnika prenesete posodobljene pakete. Ti paketi\n"
-"so bili posodobljeni po izdaji distribucije. Vsebujejo varnostne popravke in "
-"popravke hroščev.\n"
+"Zdaj imate možnost, da s strežnika prenesete posodobljene pakete.\n"
+"Ti paketi so bili posodobljeni po izdaji distribucije. Zelo verjetno "
+"vsebujejo varnostne popravke in popravke napak.\n"
"\n"
"Za namestitev teh paketov morate imeti vzpostavljeno internetno povezavo.\n"
"\n"
-"Želite namestiti posodobitve? "
-
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr ""
-"Vzpostavljanje povezave z zrcalnim strežnikom in pridobivanje seznama "
-"dosegljivih paketov...."
+"Ali želite namestiti posodobitve?"
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Povezave z zrcalnim strežnikom %s ni mogoče vzpostaviti."
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s na %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Strojna oprema"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Zvočna kartica"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Imate zvočno kartico na ISA vodilu?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Po namestitvi zaženite »alsaconf« ali »sndconfig« za nastavitev zvočne "
-"kartice."
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Ne zaznam zvočne kartice. Po namestitvi jo poskusite nastaviti s pomočjo "
-"»harddrake«."
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Grafična kartica"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Omrežje in internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Posredniški strežniki"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
-msgstr "Nastavljeno"
+msgstr "nastavljeno"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
-msgstr "Raven varnosti"
+msgstr "Stopnja varnosti"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Požarni zid"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
-msgstr "Aktivirano"
+msgstr "aktivirano"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
-msgstr "Onemogočeno"
+msgstr "onemogočeno"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
-msgstr "Niste nastavili strežnika X. Ali to zares želite?"
-
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "Pripravljanje zagonskega nalagalnika..."
-
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"Na vašem računalniku zagonski nalagalnik yaboot ne bo deloval.\n"
-"Namestitev se bo nadaljevala, vendar boste morali\n"
-"računalnik zagnati s pomočjo BootX ali na drug ustrezen način. Nastavitev "
-"jedra za root datotečni sistem je:%s"
+msgstr "Grafičnega strežnika niste nastavili. Ali to zares želite?"
-#: steps_interactive.pm:1024
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Želite uporabiti aboot?"
+msgid "Preparing initial startup program..."
+msgstr "Pripravljanje začetnega zagonskega programa …"
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Napaka pri namestitvi aboot\n"
-"Želite nadaljevati z namestitvijo, čeprav bo s tem prvi razdelek uničen?"
+msgid "Be patient, this may take a while..."
+msgstr "Potrpite. To lahko traja dalj časa …"
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-"Na tej varnostni stopnji je dostop do datotek na prvem razdelku za Windows "
-"dovoljen samo korenskemu uporabniku."
+"Na tej varnostni stopnji je dostop do datotek na razdelku za Windows "
+"dovoljen samo skrbniku sistema (root)."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
-msgstr "Vstavite prazno disketo v pogon %s"
+msgstr "V pogon %s vstavite prazno disketo"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
-msgstr "Ustvarjanje diskete za samodejno namestitev..."
+msgstr "Ustvarjanje diskete za samodejno namestitev …"
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
"\n"
"Do you really want to quit now?"
msgstr ""
-"Nekateri koraki še niso dokončani.\n"
+"Nekateri koraki še niso zaključeni.\n"
"\n"
-"Res želite končati?"
+"Ali res želite končati?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Čestitke"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Ponovni zagon"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Ustvari disketo za samodejno namestitev"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Lahko izberete povsem samodejno namestitev,\n"
-"vključno s spremembami na trdem disku!!\n"
-"(Takšen način je uporaben, če želite namestitev ponoviti na drugem "
-"računalniku.)\n"
-"\n"
-"Morda vam bolj ustreza ponovna namestitev.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Ponovi"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Samodejno"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Shrani izbiro paketov"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1417,14 +1600,14 @@ msgstr "Miška"
msgid ""
"_: Keep these entry short\n"
"Hard drive detection"
-msgstr "Prepoznavanje trdega diska"
+msgstr "Zaznava trdih diskov"
#: steps_list.pm:21 steps_list.pm:22
#, c-format
msgid ""
"_: Keep these entry short\n"
"Installation class"
-msgstr "Razred namestitve "
+msgstr "Razred namestitve"
#: steps_list.pm:23
#, c-format
@@ -1459,7 +1642,7 @@ msgstr "Formatiranje"
msgid ""
"_: Keep these entry short\n"
"Choosing packages"
-msgstr "Izbiranje paketov "
+msgstr "Izbiranje paketov"
#: steps_list.pm:31
#, c-format
@@ -1475,13 +1658,6 @@ msgid ""
"Users"
msgstr "Uporabniki"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Povezovanje"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1494,7 +1670,7 @@ msgstr "Zagonski nalagalnik"
msgid ""
"_: Keep these entry short\n"
"Configure X"
-msgstr "Nastavitev X"
+msgstr "Grafično okolje"
#: steps_list.pm:42
#, c-format
@@ -1523,9 +1699,3 @@ msgid ""
"_: Keep these entry short\n"
"Exit"
msgstr "Izhod"
-
-#~ msgid "All"
-#~ msgstr "Vse"
-
-#~ msgid "TV card"
-#~ msgstr "TV kartica"
diff --git a/perl-install/install/share/po/sq.po b/perl-install/install/share/po/sq.po
index 7f1f0b353..349c22b1c 100644
--- a/perl-install/install/share/po/sq.po
+++ b/perl-install/install/share/po/sq.po
@@ -1,28 +1,82 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR Free Software Foundation, Inc.
-# Naim Daka <naim70@freesurf.ch>, 2002, 2003.
-#
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Ardit Dani <ardit.dani@gmail.com>, 2014-2017,2019,2021
+# Naim Daka <naim70@freesurf.ch>, 2002-2003
msgid ""
msgstr ""
-"Project-Id-Version: DrakX for MDK 9.2\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2004-09-15 13:33+0200\n"
-"Last-Translator: Naim Daka <naim70@freesurf.ch>\n"
-"Language-Team: Albanian <LL@li.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2021-01-31 03:49+0000\n"
+"Last-Translator: Ardit Dani <ardit.dani@gmail.com>\n"
+"Language-Team: Albanian (http://www.transifex.com/MageiaLinux/mageia/"
+"language/sq/)\n"
+"Language: sq\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8-bit\n"
+"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: any.pm:155
-#, fuzzy, c-format
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Bashkohu me ne!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Bëni atë tuajat!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "Zgjedhja juaj!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Vegla zyre"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Argëtim shtëpie "
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "Për fëmijët"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "Për familjen!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "Për zhvilluesit!"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Faleminderit!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Ekzisto Lirshëm!"
+
+#: any.pm:151
+#, c-format
msgid "Do you have further supplementary media?"
-msgstr "A posedoni ndonjë tjetër?"
+msgstr "A keni media të mëtejshme shtesë?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -30,140 +84,161 @@ msgid ""
"\n"
"Do you have a supplementary installation medium to configure?"
msgstr ""
+"Mediat e mëposhtme janë gjetur dhe do të përdoret gjatë instalimit: %s\n"
+"\n"
+"\n"
+"A keni një media shtesë instalimi për konfigurimin?"
-#: any.pm:166
+#: any.pm:162
#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
-#, fuzzy, c-format
msgid "Network (HTTP)"
-msgstr "Rrjeti %s"
+msgstr "Rrjeti (HTTP)"
-#: any.pm:168
-#, fuzzy, c-format
+#: any.pm:163
+#, c-format
msgid "Network (FTP)"
-msgstr "Rrjeti %s"
+msgstr "Rrjeti (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
-msgstr ""
+msgstr "Rrjeti (NFS)"
-#: any.pm:211
+#: any.pm:224
#, c-format
-msgid "URL of the mirror?"
-msgstr ""
+msgid "NFS setup"
+msgstr "Ndërtimi NFS"
-#: any.pm:217
+#: any.pm:225
#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr ""
+msgid "Please enter the hostname and directory of your NFS media"
+msgstr "Ju lutemi shkruani pritësin dhe skedarin tuaj të medias NFS"
-#: any.pm:228
+#: any.pm:229
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Lidhje në sitin Mandriva Linux për të pranuar listën e lirë të pasqyreve..."
+msgid "Hostname missing"
+msgstr "Pritësi mungon"
-#: any.pm:233
-#, fuzzy, c-format
+#: any.pm:230
+#, c-format
+msgid "Directory must begin with \"/\""
+msgstr "Skedari duhet të fillojë me \"/\""
+
+#: any.pm:234
+#, c-format
+msgid "Hostname of the NFS mount ?"
+msgstr "Pritësi i montuesit NFS?"
+
+#: any.pm:235
+#, c-format
+msgid "Directory"
+msgstr "Repertori"
+
+#: any.pm:265
+#, c-format
+msgid "Supplementary"
+msgstr "Plotësues"
+
+#: any.pm:300
+#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+"Can't find a package list file on this mirror. Make sure the location is "
+"correct."
msgstr ""
-"Lidhje në sitin Mandriva Linux për të pranuar listën e lirë të pasqyreve..."
+"Nuk mund të gjeni një dokument listë pakete në këtë pasqyrë. Sigurohuni "
+"vendi është e saktë."
-#: any.pm:243
+#: any.pm:325
#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Zgjedheni një pasqyre nga e cila do ti transferoni pakot"
+msgid "Core Release"
+msgstr "Lëshim Bërthamë"
-#: any.pm:273
+#: any.pm:327
#, c-format
-msgid "NFS setup"
-msgstr ""
+msgid "Tainted Release"
+msgstr "Lëshim Prishur"
-#: any.pm:274
+#: any.pm:329
#, c-format
-msgid "Please enter the hostname and directory of your NFS media"
-msgstr ""
+msgid "Nonfree Release"
+msgstr "Lëshim Jofalas"
-#: any.pm:278
+#: any.pm:367
#, c-format
-msgid "Hostname missing"
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
+"Disa pajisje-elektronikenë kompjuterin tuaj ka nevojë për disa udhzues jo të "
+"lirë në mënyrë që drejtuesit e programevetë lirë të punojnë."
-#: any.pm:279
+#: any.pm:368
#, c-format
-msgid "Directory must begin with \"/\""
-msgstr ""
+msgid "You should enable \"%s\""
+msgstr "Ju duhet të mundësoni \"%s\""
-#: any.pm:283
+#: any.pm:419
#, c-format
-msgid "Hostname of the NFS mount ?"
-msgstr ""
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "\"%s\" përmban pjesë të ndryshme të sistemet dhe aplikimet e saj"
-#: any.pm:284
+#: any.pm:420
#, c-format
-msgid "Directory"
-msgstr "Repertori"
+msgid "\"%s\" contains non free software.\n"
+msgstr "\"%s\" përmban programe jo falas.\n"
-#: any.pm:306
+#: any.pm:421
#, c-format
-msgid "Supplementary"
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
msgstr ""
+"Ai gjithashtu përmban një program nevojshme për pajisje të caktuara për të "
+"vepruar (p.sh: disa karta grafike ATI/AMD, disa kartat e rrjetit, disa karta "
+"RAID, ...)"
-#: any.pm:341
-#, fuzzy, c-format
+#: any.pm:422
+#, c-format
msgid ""
-"Can't find a package list file on this mirror. Make sure the location is "
-"correct."
-msgstr "Nuk mund ta gjejë %s në %s"
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"\"%s\" përmban programe që nuk mund të shpërndahet në çdo vend për shkak të "
+"patentave të programit."
-#: any.pm:375
+#: any.pm:423
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Kërkimi i pakove veqse të instaluara..."
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr "Ai gjithashtu përmban program nga \"%s\" rindërtuar me aftësi shtesë."
-#: any.pm:382
+#: any.pm:429
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr ""
+msgid "Here you can enable more media if you want."
+msgstr "Këtu ju mund të mundësoni më shumë media në qoftë se ju dëshironi."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Ky medium ofron përditësime paketë për të mesëm \"%s\""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Kërkimi i pakove veqse të instaluara..."
-#: any.pm:424
+#: any.pm:593
#, c-format
msgid "Finding packages to upgrade..."
msgstr "Gjetja pakove azhurnuese..."
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:612
#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
-msgstr ""
-"Ju keni zgjedhur server(et) e radhitur: %s\n"
-"\n"
-"\n"
-"Këta server janë të aktivizuar me marrëveshje. Ata nuk kanë ndonji dalje\n"
-"të siguruar, mirëpo probleme të reja mund të paraqiten. Në ato momente\n"
-"ju duhet të jeni i sigurt që ti azhurnoni serverat tuja sa më shpejt.\n"
-"\n"
-"\n"
-"Me të vërtetë dëshironi t'instaloni këta server?\n"
+msgid "Removing packages prior to upgrade..."
+msgstr "Heqja paketave para përmirësimit..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -176,83 +251,88 @@ msgstr ""
"\n"
"Me të vërtetë dëshironi ti zhdukni?\n"
-#: any.pm:1055
-#, fuzzy, c-format
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Gabim gjatë leximit të skedares %s"
+
+#: any.pm:1283
+#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "Pakot e radhitura duhet të instalohen:\n"
+msgstr "Di(s)qet mëposhtme janë riemëruar:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
-msgstr ""
+msgstr "%s (të emëruar më parë si %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Rrjeti"
-#: any.pm:1137
-#, fuzzy, c-format
+#: any.pm:1365
+#, c-format
msgid "Please choose a media"
-msgstr "Ju lutemi zgjedheni"
+msgstr "Ju lutemi zgjidhni një media"
-#: any.pm:1153
-#, fuzzy, c-format
+#: any.pm:1381
+#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "Skedarje është veqse prezente. Përdoreni atë?"
+msgstr "Skedari ekziston. Mbishkruaj atë?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Autorizim i pa pranuar"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
-msgstr ""
+msgstr "Emër keq NFS"
-#: any.pm:1226
-#, fuzzy, c-format
+#: any.pm:1454
+#, c-format
msgid "Bad media %s"
-msgstr "shtuarja e burimit %s"
+msgstr "Media keqe %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "E pa mundur grabitja e ekranit (screenshots) para ndarjeve"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr ""
"Grabitjet e ekranit (screenshots) janë të mundura mbas instalimit në %s"
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
msgstr "Instalimi"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Konfigurimi"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Ju duhet njashtu ta formatoni %s"
@@ -277,302 +357,342 @@ msgstr "Nisja e rrjetit (network)"
msgid "Bringing down the network"
msgstr "Ndalja e rrjetit (network)"
-#: media.pm:703 media.pm:714
-#, fuzzy, c-format
-msgid "Downloading file %s..."
-msgstr "Dërgimi i skedareve..."
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr "Ju lutem prisni, rikthim i skedarit"
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "e pamundur shtimi instaluesin"
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
-msgstr ""
+msgstr "Kopjimi disa paketa në disqe për përdorim në të ardhmen"
-#: media.pm:861
-#, fuzzy, c-format
+#: media.pm:797
+#, c-format
msgid "Copying in progress"
-msgstr "Zbulimi në vazhdim e sipër"
+msgstr "Kopjimi në progres"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "duhet pa tjetër"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "me rëndësi"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "shumë mirë"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "i mirë"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "ndoshta"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "Marrja informacionit paketës nga XML meta-data..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Nuk ka informacion xml për medien \"%s\", vetëm rezultati i pjesshëm për "
+"paketën %s"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Asnjë përshkrim"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"Disa paketa të kërkuara nga %s nuk mund të instalohen:\n"
+"%s"
+
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "Një gabim ndodhi:"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "Një gabim fatal është paraqitur: %s."
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr "Mos pyesni përsëri"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "Instalimi i transmetimit të %d dështio"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Instalimi i paketave dështoj:"
+
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "Stacion punues"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "Stacioni Punues në Tryezë"
-#: share/meta-task/compssUsers.pl:15
-#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
-msgstr ""
-"Programe për tryezë: trajtues të teksteve (OpenOffice.org Writer, Kword), "
-"tablues (OpenOffice.org Calc, Kspread), çfaqës pdf, etj."
-
-#: share/meta-task/compssUsers.pl:16
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Programe për tryezë: trajtues të teksteve (kword, abiword), tablues "
-"(kspread, gnumeric), çfaqës pdf, etj."
+"Programe për tryezë: trajtues të teksteve (LibreOffice Writer, Kword), "
+"tablues (LibreOffice Calc, Kspread), çfaqës pdf, etj."
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Stacion Lojërash"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Programe ahengi: lojë arkade, lojë me stenda, strategji, etj"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Stacion Multimedia"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Programe për lojëra/botime të zërit dhe videos"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Stacion Interneti"
-#: share/meta-task/compssUsers.pl:32
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:37
+#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-"Përgjithësia a veglave të leximit, dërgimit të letrave elektronike të "
-"lajmeve (pine, mutt, tin...) dhe për të lundruar në internet."
+"Set mjetesh për të lexuar dhe për të dërguar postë dhe lajme (mutt, tin ..) "
+"dhe të shfletoni Internetin"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Kompjuter Rrjeti (klient)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Klient për protokole të ndryshme me përfshirje në ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Vegla për të konfiguruar kompjuterin tuaj"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Vegla në konsolë"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Botues, interpretues, vegla skedaresh, terminale"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Zhvillimi"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "Bibloteka ndërtuese e C dhe C++, programe dhe skedare me përfshirje"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Dokumentacioni"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Libra dhe Howto's për Linux dhe Softver gratis"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Bazë Standarde e Linux. Përkrahë aplikacione të pjesës së tretë"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Server Web"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:84
+#, c-format
msgid "Groupware"
-msgstr "Grupi"
+msgstr "Grupimi"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Server Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Murë-i-Zjarrtë/Router"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Portë kaluese Interneti"
-#: share/meta-task/compssUsers.pl:83
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:92
+#, c-format
msgid "Mail/News"
-msgstr "/Skedare/_E Re"
+msgstr "Postë/Lajme"
-#: share/meta-task/compssUsers.pl:84
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:93
+#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Server i letrave (mail) Postfix"
+msgstr "Postfix server poste, Inn server lajme"
-#: share/meta-task/compssUsers.pl:87
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:97
+#, c-format
msgid "Directory Server"
-msgstr "Riparoje Nga CD"
+msgstr "Server Skedarësh"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "Server FTP"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
-msgstr ""
+msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "Server i Emrit (DNS) dhe Server i Informacionit (NIS)"
-#: share/meta-task/compssUsers.pl:99
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:112
+#, c-format
msgid "File and Printer Sharing Server"
-msgstr "Server Stampues"
+msgstr "Server Shpërndarës Skedarësh dhe Printeri"
-#: share/meta-task/compssUsers.pl:100
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:113
+#, c-format
msgid "NFS Server, Samba server"
-msgstr "Server Samba"
+msgstr "NFS Server, Samba server"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Bazë e të dhënave"
-#: share/meta-task/compssUsers.pl:104
-#, fuzzy, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "Server PostgreSQL apo MySQL i bazës së të dhënave"
+#: share/meta-task/compssUsers.pl:118
+#, c-format
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "PostgreSQL dhe MariaDB Database Server"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Mail"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Server i letrave (mail) Postfix"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "Server PostgreSQL apo MySQL i bazës së të dhënave"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "Server PostgreSQL apo MariaDB i bazës së të dhënave"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Server Kompjuter Rrjeti"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "Server NFS, server SMB, server Proxy, server ssh"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Mjedis Grafikë"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "Stacioni punues KDE"
+msgid "Plasma Workstation"
+msgstr "Stacionpune Plasma"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -580,12 +700,12 @@ msgid ""
msgstr ""
"Mjedisi i Tryezës K, dhe grafiku basic, i mjedisit me koleksionimin e veglave"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "Stacioni punues Gnome"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -594,60 +714,113 @@ msgstr ""
"Një mjedis grafikë me përdorues-miqësie, një përgjithësi e palikacioneve dhe "
"vegla në tryezë"
-#: share/meta-task/compssUsers.pl:142
-#, fuzzy, c-format
-msgid "IceWm Desktop"
-msgstr "Tryeza"
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr "Stacioni-Punë Xfce"
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Një mjedis më i lehtë grafik me një sërë aplikacionesh dhe vegla mjedisi"
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "Stacionpune MATE"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Stacionpune Cinnamon"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Një mjedis grafik i bazuar në GNOME"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "LXQt Desktop"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "Një port tjetër QT i brezit të mjedisit të lehtë mjedisi"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr "Mjedisi Enlightenment"
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr "Një mjedis grafik i lehtë, me një ndjekje të dedikuar"
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "LXDE Desktop"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Një mjedis grafik i lehtë dhe i shpejtë"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Mjedise të Tjera Grafike në Tryezë"
-#: share/meta-task/compssUsers.pl:147
-#, fuzzy, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm, etj."
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr "Krijues Windows, Fvwm, etj"
-#: share/meta-task/compssUsers.pl:170
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:218
+#, c-format
msgid "Utilities"
-msgstr "Filipinet"
+msgstr "Shërbime"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "Server SSH"
-#: share/meta-task/compssUsers.pl:177
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:225
+#, c-format
msgid "Webmin"
-msgstr "Webcam"
+msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:226
+#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Konfigurim i Serverit me Terminale Mandriva"
+msgstr "Webmin Konfigurim Serveri Distancë"
-#: share/meta-task/compssUsers.pl:182
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:230
+#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Vështrimi i Rrjetit (Network)"
+msgstr "Rrjeti Vegla/Monitorim"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
-msgstr ""
+msgstr "Vegla monitorimi, llogaritje procesesh, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
-#, fuzzy, c-format
-msgid "Mandriva Wizards"
-msgstr "Qendra Kontrolluese Mandriva Linux"
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr "Udhëzuesi Mageia"
-#: share/meta-task/compssUsers.pl:188
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:236
+#, c-format
msgid "Wizards to configure server"
-msgstr "Dështim gjatë konfigurim të stampuesit %s\"!"
+msgstr "Udhëzuesi për konfigurim serverin"
#: steps.pm:85
#, c-format
@@ -658,7 +831,7 @@ msgstr ""
"Një gabim është paraqitur, dhe me sa duket është vështir të zgjidhet.\n"
"Ju mund të vazhdoni, mirëpo ju jeni përgjegjës për ndonji gabim eventual."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -666,7 +839,7 @@ msgid ""
"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
"\"\n"
msgstr ""
-"Disa pako me rëndësi nuk janë instalur në mënyrë korrekte.\n"
+"Disa paketa me rëndësi nuk janë instalur në mënyrë korrekte.\n"
"Është e mundur që cdrom-i apo lexuesi cdrom të jetë në defekt.\n"
"Verifikoni cdrom-in në një kompjuter të instalur, duke shtypur urdhërin "
"\"rpm -qpl media/main/*.rpm\"\n"
@@ -678,310 +851,371 @@ msgstr "Nisja e etapës `%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Instalimi i Mandriva Linux %s"
+msgid "%s Installation %s"
+msgstr "Instalimi i %s %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab> para /<Alt-Tab> mbrapa"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Xorg server është i ngadalshëm për të filluar. Ju lutem prisni..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"Kompjuteri i juaj posedon sasi të vogël të memorisë. Ju mund të ndesheni me\n"
-"disa probleme gjatë instalimit të Mandriva Linux. Nëse kjo ndodhë, ju\n"
-"mund të vazhdoni në një instalim në modë teksti. Për këtë shtypni mbi\n"
-"`F1' kut të niseni me një nisje të udhëzuar në CDROM, dhe fytni urdhërin "
-"`text'."
+"Kompjuteri juaj posedon sasi të vogël të memorjes. Ju mund të ndesheni me\n"
+"disa probleme gjatë instalimit të %s. Nëse kjo ndodhë, ju\n"
+"mund të vazhdoni në një instalim në modë teksti. Për këtë shtypni `F1' kut "
+"të ndizet në CDROM, dhe shtypni `text'."
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Përzgjedhja Mediave"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Instalo %s Mjedisi Plasma"
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Instalo %s Mjedisi GNOME"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Instalim personalizuar"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Mjedisi Plasma"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "Mjedisi GNOME"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Mjedis Personalizuar"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Këtu është një vrojtim i '%s' mjedisit."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Kliko në imazhe për të parë një vrojtim më të madh"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
-msgstr "Zgjedhni Grupet e Pakove"
+msgstr "Përzgjedh Grupet Paketave"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
-msgstr "Zgjedhni pakot individualisht"
+msgstr "Zgjedh pakot individualisht"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Madhësia totale: %d / %d MB"
+msgid "Unselect All"
+msgstr "Gjitha të Çzgjedhurat"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Pako jo e mirë"
+msgid "Total size: %d / %d MB"
+msgstr "Madhësia totale: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Versioni: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Madhësia: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Me rëndësi: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Ju nuk mund ti zgjedhni/çzgjedhni këtë pako"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "ka arritur nga mungesa %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "ka arritur gjatë mosmarrëveshjes %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "tentim në gradimin e %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "në urdhër për ta mbajturë %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"Nu nuk mund ta zgjidhni këtë pako, sepse nuk ka vend të mjaftueshëm për ta "
"instaluar"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Pakot e radhitura do të instalohen"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Pakot e radhitura do të zhduken"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Kjo është një pako e nevojshme, dhe nuk mund çzgjedhet"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Ju nuk mund ta çzgjedhni këtë pako. Është e instaluar më parë"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Ju nuk mund ti çzgjedhni këtë pako. Duhet të azhurnohet"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Paraqiti automatikisht pakot e zgjedhura"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Instalim"
-#: steps_gtk.pm:436
-#, fuzzy, c-format
+#: steps_gtk.pm:519
+#, c-format
msgid "Load/Save selection"
-msgstr "Zgjedhja e pakos"
+msgstr "Ngarko/Ruaj përzgjedhje"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Azhurnimi i pakove të zgjedhura"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr "Kaloni midis listës hierarkike dhe të paketës së sheshtë"
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Instalim minimal"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
-msgstr "Menagjuesi Softver"
+msgstr "Administrues Programesh"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Zgjedhi pakot të cilat dëshironi t'instaloni"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Instalimi"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Asnjë detaj"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Koha e mbetur"
+msgid "Time remaining:"
+msgstr "Koha e mbetur:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Vlerësimi në sipër"
+msgid "(estimating...)"
+msgstr "(vlerësim...)"
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d pakot"
-msgstr[1] "%d pakot"
+msgstr[0] "%d paketë"
+msgstr[1] "%d paketat"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Përmbledhje"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Konfiguroje"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "i pa konfiguruar"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
+"Mënyrat e mëposhtme të instalimit janë gjetur.\n"
+"Nëse doni të kaloni disa prej tyre, ju mund t'i hiqni ato tani."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
+"Ju keni mundësi të kopjoni përmbajtjen e CD-ve në disk para instalimit.\n"
+"Pastaj do të vazhdojë nga disku dhe paketat do të mbeten në dispozicion sapo "
+"sistemi të jetë i instaluar plotësisht."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
-msgstr ""
+msgstr "Kopjo tërë CDtë"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Një gabim është paraqitur"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
+msgid "Please choose your keyboard layout"
msgstr "Ju lutemi zgjedheni tipin tastierës suaj"
-#: steps_interactive.pm:99
-#, fuzzy, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Ja ku është lista komplete e shteteve në disponibilitet"
+#: steps_interactive.pm:109
+#, c-format
+msgid "Here is the full list of available keyboards:"
+msgstr "Këtu është lista e plotë e tastierave në dispozicion:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Instalo/Azhurno"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Është ky një instalim apo një azhurnim?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
-msgstr "Instalim"
+msgstr "Instalimi"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Azhurno %s"
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "Çelës i kriptuar për %s"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "Anulo instalimin, rifillo sistemin"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "Konfigurimi i IDE"
+msgid "New Installation"
+msgstr "Instalim i Ri"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
-"Nuk ka hepësirë të lirë, për ndarjen me nisje të udhëzuar (bootstrap) me 1MB!"
-"Instalimi do të vazhdoj, ju duhet të krijoni një ndarje me nisje të udhëzuar"
-"(bootstrap) në DiskDrake"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Përmirëso instalimin e mëparshme (nuk rekomandohet)"
-#: steps_interactive.pm:236
-#, fuzzy, c-format
+#: steps_interactive.pm:223
+#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"Nuk ka hepësirë të lirë, për ndarjen me nisje të udhëzuar (bootstrap) me 1MB!"
-"Instalimi do të vazhdoj, ju duhet të krijoni një ndarje me nisje të udhëzuar"
-"(bootstrap) në DiskDrake"
+"Instaluesi ka zbuluar se sistemi juaj i instaluar Linux nuk ka mundur\n"
+"të përmirësohet në mënyrë të sigurtë %s.\n"
+"\n"
+"Rekomandohet instalimi i ri që zëvendëson të mëparshmin.\n"
+"\n"
+"Kujdes: duhet të ruani të gjitha të dhënat tuaja personale përpara se të "
+"zgjidhni \"Instalim\n"
+"Ri\"."
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "Konfigurimi CD/DVD"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -995,74 +1229,75 @@ msgstr ""
"Nëse ju nuk e posedoni, shtypni mbi kopsën Anulo që më në fund të mos "
"instaloni asgjë nga ky Cd-Rom."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Hetim mbi pakot e lira..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
+"Sistemi juaj nuk ka hapësirë të mjaftueshme në dispozicion për instalim ose "
+"azhurnim, (%dMB > %dMB)"
-#: steps_interactive.pm:405
-#, fuzzy, c-format
+#: steps_interactive.pm:428
+#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-"Ju lutemi zgjedhni ngarkimin apo shpëtimin e pakos së zgjedhur në floppy "
-"disketë.\n"
-"Forma është e njëjtë sikur në disketë me tërheqje të instalimit automatikë."
+"Ju lutemi zgjidhni ngarko ose ruaj përzgjedhjen e paketës.\n"
+"Formati është i njëjtë me skedarët e gjeneruar të auto_install."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Ngarko"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Shpëtoje"
-#: steps_interactive.pm:415
-#, fuzzy, c-format
+#: steps_interactive.pm:438
+#, c-format
msgid "Bad file"
-msgstr "Ngarko file"
+msgstr "Skedarë keq"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr ""
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Instalim minimal"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr "Përzgjedhje Desktop"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
+msgid "You can choose your workstation desktop profile."
+msgstr "Ju mund të zgjidhni mjedisin e profilin tuaj të kompjuterit."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Madhësia e zgjedhur është shumë më e gjatë se sa hapësira e lirë"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Tipi i instalimit"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1071,82 +1306,130 @@ msgstr ""
"Ju nuk e keni zgjedhur asnjë grup të pakove.\n"
"Ju lutemi zgjedheni një instalim minimal të dëshiruar:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Me X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Instalimi paketave rekomanduara"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Me dokumentacion bazues (rekomanduar!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Instalim tejet minimal (në veçanti pa urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Përgatitje përmirësim..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Pregatitje për instalim"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Instalimi i pakove %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Një gabim është paraqitur gjatë radhitjes së pakove:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Vazhdo pa marrë parasysh?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
-msgstr ""
+msgstr "Riprovo"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
-msgstr ""
+msgstr "Kalo këtë paketë"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
-msgstr ""
+msgstr "Hiq të gjitha paketat nga mjedisi \"%s\""
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "Regjistroi pakot e zgjedhura"
+msgstr "Kthehuni tek zgjedhja e instaluesit dhe paketave"
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "Një gabim është paraqitur gjatë instalimit të pakove:"
+msgstr "Kishte një gabim instalimi i paketës %s."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Konfigurimi i postit-instalues"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
-msgstr ""
+msgstr "Ju lutemi sigurohuni që moduli Përditësimi Moduleve të jetë në disk %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
+msgstr "Përditësime"
+
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Ju tani keni mundësinë të krijoni media në internet."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Kjo lejon të instaloni përditësime sigurie."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
msgstr ""
+"Për të krijuar ato media, do të duhet të keni një lidhje internet i \n"
+"funksional.\n"
+"\n"
+"Dëshiron të konfigurosh median e përditësimit?"
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Pakot e radhitura do të instalohen"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Riprovo?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Dështimi kur shton instaluesin"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1158,156 +1441,109 @@ msgid ""
"\n"
"Do you want to install the updates?"
msgstr ""
-"Tani keni mundësin që ti shkarkoni azhurnimet e krijuara nga\n"
-"dalja e tyre në përdorim. Është e mundur që të ketë korigjime\n"
+"Tani keni mundësin që të shkarkoni përditësime e krijuara nga\n"
+"dalja e tyre në përdorim. Është e mundur që të ketë korrigjime\n"
"të sigurisë dhe rregullime të problemeve bug.\n"
"\n"
"Për ti transferuar pakot e shënuara, ju duhet të posedoni një lidhje \n"
"me rrjetin internet.\n"
"\n"
-"A dëshironi t'instaloni këto azhurnime ?"
-
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Transferimi i listës së pasqyreve me pako të lira..."
+"A dëshironi të instaloni këto përditësime?"
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Nuk mundur të kontaktohet pasqyrja %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s mbi %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
-msgstr "Hardver"
+msgstr "Pjesë-Elektronike"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Kartelë zëri"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "A posedoni një kartelë zëri ISA?"
-
-#: steps_interactive.pm:904
-#, fuzzy, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Nise \"sndconfig\" mbasë instalimit për ta konfiguruar kartëlën e zërit"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "Asnjë kartelë e zbuluar. Provo \"harddrake\" mbasë instalimit"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Interfaci grafik"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Rrjeti & Internet"
-#: steps_interactive.pm:933
-#, fuzzy, c-format
+#: steps_interactive.pm:991
+#, c-format
msgid "Proxies"
-msgstr "Profili "
+msgstr "Proxies"
-#: steps_interactive.pm:934
-#, fuzzy, c-format
+#: steps_interactive.pm:992
+#, c-format
msgid "configured"
-msgstr "rikonfiguroje"
+msgstr "konfiguruar"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Nivel i Sigurisë"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Mur i Zjarrt"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "aktivizuar"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "i nxënë"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr ""
"Ju nuk e keni konfiguruar serverin X. A jeni i sigurt, se e dëshironi këtë?"
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "Pregatitja e bootloader..."
-
-#: steps_interactive.pm:1018
-#, fuzzy, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"Me sa duket makina juaj posedon një arqitekturë të vjetër apo të pa\n"
-" njoftur, programi për nisje të udhëzuar yabbot nuk do të funksionoj.\n"
-"Dhe instalimi do të vazhdoj më tutje, mirëpo ju\n"
-" duhet të posedoni BootX që ta nisni sistemin tuaj"
-
-#: steps_interactive.pm:1024
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Do you want to use aboot?"
-msgstr "A dëshironi ta përdorni aboot?"
+msgid "Preparing initial startup program..."
+msgstr "Përgatitja programit fillestar për fillimin..."
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Gabim gjatë instalimit aboot, \n"
-"mundohu me instalim të forcuar, edhe pse ai do ta shkatërroj ndarjen e parë?"
+msgid "Be patient, this may take a while..."
+msgstr "Kini durim, kjo mund të marrë pak kohë..."
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
+"Në këtë nivel të sigurisë, qasja në skedarë në ndarjen e Windows është i "
+"kufizuar nga administratori."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Futni një disketë të zbrazët në lexuesin e disketave %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Krijimi i një diskete auto instaluese..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1318,51 +1554,16 @@ msgstr ""
"\n"
"A dëshironi me të vërtetë ti braktisni tani?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Urime"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Rinise (riboot)"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Krijo një disketë auto instaluese"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Auto instalimi mund të bëhet me instalim të automatizuar, nëse\n"
-"dëshironi, ai do të merë kontrolin mbi diskun tuaj të fort!!\n"
-"(është i përcaktuar për instalimin njodnjë makine tjetër).\n"
-"\n"
-"A dëshironi ta përsëritni instalimin.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Rilexo"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automatizuar"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Regjistroi pakot e zgjedhura"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1374,7 +1575,7 @@ msgstr "Zgjedheni gjuhën tuaj"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "Vendndodhja"
#: steps_list.pm:17
#, c-format
@@ -1395,7 +1596,7 @@ msgstr "Mini"
msgid ""
"_: Keep these entry short\n"
"Hard drive detection"
-msgstr "Zbulim i Diskut të Fortë (Hard drive)"
+msgstr "Zbulim i Diskut të Fortë (Hard disk drive)"
#: steps_list.pm:21 steps_list.pm:22
#, c-format
@@ -1403,6 +1604,8 @@ msgid ""
"_: Keep these entry short\n"
"Installation class"
msgstr ""
+"_: Mbani këto hyrje të shkurtra\n"
+"klasë Instalimi"
#: steps_list.pm:23
#, c-format
@@ -1431,6 +1634,8 @@ msgid ""
"_: Keep these entry short\n"
"Formatting"
msgstr ""
+"_: Mbani këto hyrje të shkurtra\n"
+"Shpërndarja"
#: steps_list.pm:29
#, c-format
@@ -1438,6 +1643,8 @@ msgid ""
"_: Keep these entry short\n"
"Choosing packages"
msgstr ""
+"_: Mbani këto hyrje të shkurtra\n"
+"Zgjedhja paketave"
#: steps_list.pm:31
#, c-format
@@ -1453,13 +1660,6 @@ msgid ""
"Users"
msgstr "Përdoruesit"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Punimi i rrjetit"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1494,6 +1694,8 @@ msgid ""
"_: Keep these entry short\n"
"Updates"
msgstr ""
+"_: Mbani këto hyrje të shkurtra\n"
+"Përditësime"
#: steps_list.pm:48
#, c-format
@@ -1502,62 +1704,24 @@ msgid ""
"Exit"
msgstr "Braktise"
-#~ msgid "All"
-#~ msgstr "Gjitha"
-
-#~ msgid "TV card"
-#~ msgstr "Kartelë TV"
-
-#~ msgid "Boot"
-#~ msgstr "Boot"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Vërtetësimi"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "%d pakot"
-#~ msgstr[1] "%d pakot"
-
-#~ msgid "%d packages"
-#~ msgstr "%d pakot"
-
-#~ msgid "Language"
-#~ msgstr "Zgjedheni gjuhën tuaj"
-
-#~ msgid "License"
-#~ msgstr "Licenca"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "Zgjedhe klasën e instalimit"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "Vlerësimi në sipër"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "Zgjedhi pakot instaluese"
-
-#~ msgid "Users"
-#~ msgstr "Përdoruesit"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "URL e pasqyrës?"
-#~ msgid "Networking"
-#~ msgstr "Punimi i rrjetit"
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "URL duhet të filloj me http:// ose https://"
-#~ msgid "Configure X"
-#~ msgstr "Konfigurim i X"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr "Lidhje në sitin %s për të pranuar listën e lirë të pasqyreve..."
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
#~ msgstr ""
-#~ "Nuk mund të hyjë në modulet të cilat i përkasin bërthamës suaj (skedarja %"
-#~ "s mungon), kjo zakonisht do të thotë se disketa juaj me nisje të udhëzuar "
-#~ "nuk sinkronizohet, me burimin instalues (ju lutemi krijoni një disketë të "
-#~ "re)"
+#~ "Dështoi kontaktuari %s faqen për të marrë listën e pasqyrave në "
+#~ "dispozicion"
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Zgjedheni një pasqyre nga e cila do ti transferoni pakot"
diff --git a/perl-install/install/share/po/sr.po b/perl-install/install/share/po/sr.po
index 8efe8b31a..9758561d1 100644
--- a/perl-install/install/share/po/sr.po
+++ b/perl-install/install/share/po/sr.po
@@ -1,30 +1,83 @@
-# Cirilicni prevod drakbootdisk.po fajla.
-# Copyright (C) 1997-2003 MandrakeSERBIA.
-# Tomislav Jankovic <tomaja@net.yu>, 2000.
-#
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# tomaja <toma.jankovic@gmail.com>, 2019-2020
+# Tomislav Jankovic <tomaja@net.yu>, 2000
msgid ""
msgstr ""
-"Project-Id-Version: DrakX\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2004-09-15 13:33+0200\n"
-"Last-Translator: Toma Jankovic <tomaja@net.yu>\n"
-"Language-Team: Serbian <i18n@mandrake.co.yu>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2020-06-23 09:20+0000\n"
+"Last-Translator: tomaja <toma.jankovic@gmail.com>\n"
+"Language-Team: Serbian (http://www.transifex.com/MageiaLinux/mageia/language/"
+"sr/)\n"
+"Language: sr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 0.9.6\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Придружи нам се!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Напавите је својом!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "Ваш избор!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Канцеларијски алати"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Кућна забава"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "За децу"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "За породицу!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "За програмере!"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Хвала вам!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Буди слободан!"
-#: any.pm:155
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
msgstr "Да ли имате још додатних медија?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -37,94 +90,57 @@ msgstr ""
"\n"
"Да ли имате додатних инсталационих медија које треба подесити?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Мрежа (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Мрежа (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Мрежа (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "УРЛ мирора?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "УРЛ мора почињати са ftp:// или http://"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Контактирајте Mandriva Linux web сајт да би добили листу доступних mirror-"
-"а..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Неуспешно успостављање везе са Mandriva Linux web сајт ради листе доступних "
-"mirror-а"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Изаберите mirror са ког ћете скинути пакете"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "Подешавање NFS-а"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr "Унесите име домаћина-hostname и директоријум вашег NFS медија"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr "Недостаје име домаћина-hostname"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "Директоријум мора почети са \"/\""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "Име домаћина-hostname за монтирање NFS ?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Директоријум"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "Додатни"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
@@ -133,49 +149,97 @@ msgstr ""
"Не могу пронађем листу пакета на овом мирору. проверите да ли локација "
"исправна."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Тражим већ инсталиране пакете..."
+msgid "Core Release"
+msgstr "Основно Издање"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Уклањам старе пакете..."
+msgid "Tainted Release"
+msgstr "Непроверено Издање"
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Тражим пакете за ажурирање..."
+msgid "Nonfree Release"
+msgstr "НеСлободно Издање"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"Ви сте изабрали следеђе сервере: %s\n"
-"\n"
-"\n"
-"Ови сервери се активирају по основној поставци. Они немају познатих "
-"сигурносних\n"
-"недостатака, али се ипак могу појавити неки нови. Уколико се то деси, морате "
-"их ажурирати\n"
-"што је пре могуђе.\n"
-"\n"
-"\n"
-"Да ли заиста желите да инсталирате ове сервисе?\n"
+"Нешто од хардвера на вашој машини захтева неке од власничких firmware-ва да "
+"би драјвери отвореног кода радили."
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "Треба да уљкучите \"%s\""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "\"%s\" садржи различите делове система и његових апликација"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "\"%s\" задржи власнички софтвер.\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"Такође садржи firmware-ове потребне за одређене уређаје да би радили (нпр: "
+"неке ATI/AMD графичке картице, неке мрежне картице, неке RAID картице, ...)"
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"\"%s\" садржи софтвер који не може да се дистрибуира у сваку земљу услед "
+"софтверских патената."
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+"Такође садржи софтвер са \"%s\" поново креиран са додатним могућностима."
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "Овде можете пронаћи додатне медије уколико желите."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Овај медиј омогућава надоградњу пакета за медиј \"%s\""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Тражим већ инсталиране пакете..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Тражим пакете за ажурирање..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Уклањам старе пакете..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -188,82 +252,87 @@ msgstr ""
"\n"
"Да ли заиста желите да уклоните ове пакете?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Грешка код отварања датотека %s"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "Следећи диск(ови) ће бити преименовани:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (раније са именом %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Мрежа"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "Изаберите медиј"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Датотека већ постоји. Да ли препишем преко постојеће?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Приступ одбијен"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "Погрешно NFS име"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "Лош медиј %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Не могу да направим снимак пре партиционирања"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Снимци ће бити доступни након инсталације у %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Инсталација"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Конфигурација"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Морате и %s да форматирате"
@@ -288,107 +357,145 @@ msgstr "Приступам мрежу"
msgid "Bringing down the network"
msgstr "Одступам од мреже"
-#: media.pm:703 media.pm:714
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr "Сачекајте, добављам пакет"
+
+#: media.pm:704
#, c-format
-msgid "Downloading file %s..."
-msgstr "Преузимам фајл %s ..."
+msgid "unable to add medium"
+msgstr "не могу да додам медиј"
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr "Копирање неких поакета на дискове ради касније употребе"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Копирање у току"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "морате имати"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "важно"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "веома лепо"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "лепо"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "можда"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "Добављање информација о пакету из XML мета података..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr "Нема xml инфоа за медиј \"%s\", само делимични резултати за пакет %s"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Без описа"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"Неки пакети потребни за %s не могу бити инсталирани:\n"
+"%s"
+
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "Појавила се грешка:"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "Појавила се фатална грешка: %s."
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr "Не питај ме поново"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d инсталациона трансакција није успела"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Инсталација пакета није успела:"
+
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "Радна станица"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "Радна(Office) станица"
-#: share/meta-task/compssUsers.pl:15
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Office програми: текст процесори (OpenOffice.org Writer, Kword), табеле "
-"(OpenOffice.org Calc, Kspread), pdf прегледници, итд"
+"Office програми: текст процесори (LibreOffice Writer, Kword), табеле "
+"(LibreOffice Calc, Kspread), pdf прегледници, итд"
-#: share/meta-task/compssUsers.pl:16
-#, c-format
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"Office програми: текст процесори (kword, abiword), табеле (kspread, "
-"gnumeric), pdf прегледници, итд"
-
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Станица за игру"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Забавни програми: аркаде, иге на табли, стратегије, итд"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Мултимедијална станица"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Програми за пуштање звука и видеа"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Интернет станица"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
@@ -397,193 +504,193 @@ msgstr ""
"Скуп алата за читање и слање ел.поште и вести (mutt, tin..) и за "
"претраживање Интернета"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Мрежни компјутер (клијент)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Клијенти за различите протоколе укључујући и ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Алати за лако конфигурисање компјутера"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Конзолни алати"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "едитори,шелови, алати за датотеке, терминали"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Развојна"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "C и C++ развојне библиотеке, програми и пропратне датотеке"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Документација"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Књиге и Како? (Howto's) за Linux и Бесплатни Софтвер"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Линуксова Стандардна База. Подршка за Third party апликаицје"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Веб Сервер"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Софтвер за групни рад"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Kolab Сервер"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Сервер, Firewall/Router"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Интернет gateway"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "Ел.пошта/вести"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Postfix сервер за ел.пошту,Inn сервер за вести "
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Сервер директоријума"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP Сервер"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "Име Домена и Мрежни Информациони Сервер"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "Фајл Сервер и сервер за дељење штампача"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "NFS Сервер, Samba Сервер"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Сервер,Базе података"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL или MySQL сервер за базу података"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "PostgreSQL или MariaDB сервер за базу података"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Сервер, Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Пошта"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Postfix mail сервер"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL или MySQL сервер за базу података"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL или MariaDB сервер за базу података"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Мрежни Сервер"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "NFS сервер, SMB сервер, Proxy сервер, SSH сервер"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Графичко Окружење"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE падна станица"
+msgid "Plasma Workstation"
+msgstr "Плазма Радна станица"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -591,12 +698,12 @@ msgid ""
msgstr ""
"K Десктоп окружење, основно графичко окружење са колекцијом пратећих алата"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "Gnome радна станица"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -605,57 +712,111 @@ msgstr ""
"Графичка окружења за сетом корисничк NFS server, SMB server, Proxy server, "
"NFS server, SMB server, Proxy серверих апликација и десктопалата"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr "Xfce Радна Станица"
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Лакше графичко окружење са групом апликација и десктоп алата прилагођених "
+"кориснику"
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "MATE Радна станица"
+
+#: share/meta-task/compssUsers.pl:174
#, c-format
-msgid "IceWm Desktop"
-msgstr "IceWm Десктоп"
+msgid "Cinnamon Workstation"
+msgstr "Cinnamon Радна Станица"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Графичко окружење базирано на GNOME-у"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "LXQt Десктоп"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "Следећа генерација QT порта лаганог графичког окружења"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr "Enlightenment Десктоп"
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr "Лагано брзо графичко окружење са посвећеним праћењем"
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "LXDE Десктоп"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Лагано брзо графичко окружење"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Други графички десктопови"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr " Window Maker, Enlightenment, Fvwm, итд"
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, итд."
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Алати"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH Сервер"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Webmin сервер за даљинску контролу"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "Мрежни алати/Мониторинг"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "Алати за мониторинг, управљање процесима, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Mandriva Чаробњаци"
+msgid "Mageia Wizards"
+msgstr "Mageia Чаробњаци"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Чаробњаци за подешавање сервера"
@@ -669,7 +830,7 @@ msgstr ""
"Грешка, али незнам како да је разрешим.\n"
"Наставите на ваш ризик!"
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -689,205 +850,258 @@ msgstr "Покрећем корак `%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux Инсталација %s"
+msgid "%s Installation %s"
+msgstr "%s Инсталација %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> између елемената"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Xorg сервер је спор при покретању. Сачекајте..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
"Ваш систем има мањак снаге. Услед тога можете имати проблема при "
"инсталацији\n"
-"Mandriva Linux. Уколико се они појаве, можете пробати текстуалну "
-"инсталацију. Да би то постигли,\n"
+"%s. Уколико се они појаве, можете пробати текстуалну инсталацију. Да би то "
+"постигли,\n"
"притисните `F1' при стартању са CDROM-а, а онда укуцајте `text'."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Избор Медија"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Инсталирај %s Плазма Десктоп"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Инсталирај %s GNOME Десктоп"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Произвољна инсталација"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Плазма десктоп"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "GNOME Десктоп"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Произвољни десктоп"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Овде је изглед '%s' десктопа."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Кликни на слику да би видео већи преглед"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Одабир група пакета"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Појединачно бирање пакета"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Укупна величина: %d / %d MB"
+msgid "Unselect All"
+msgstr "Деселектуј Све"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Лош пакет"
+msgid "Total size: %d / %d MB"
+msgstr "Укупна величина: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Верзија: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Величина: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Важност: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Не можете селектовати/деселектовати овај пакет"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "због не постојања %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "због не задовољеног %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "покушавам да прикажем %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "да бих задржао %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr "Не можете селектовати овај пакет јер нема више слободног простора"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Следећи пакети треба да буду инсталирани"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Следећи пакети ће бити избрисани"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Ово је обавезни пакет,и не може бити деселектован"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Можете деселектовати овај пакет јер је већ инсталиран"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Не можете деселектовати овај пакет.Он мора бити ажуриран"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Аутоматски прикажи изабране пакете"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Инсталирај"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Учитај/Сачувај избор"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Ажурирање селекције пакета"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr "Прeбацивање између хијерархијске и равне листе пакета"
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Минимално инсталирај"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Подешавање Софтвера"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Изабери пакете за инсталацију"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Инсталирам"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Без детаља"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Преостало време"
+msgid "Time remaining:"
+msgstr "Преостало време:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Процењујем"
+msgid "(estimating...)"
+msgstr "(процењујем...)"
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d пакета"
+msgstr[0] "%d пакет"
msgstr[1] "%d пакета"
msgstr[2] "%d пакета"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Сажетак"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Подеси"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "није подешено"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
@@ -896,106 +1110,111 @@ msgstr ""
"Пронађени су следећи инсталациони медији.\n"
"Уколико желите да прескочите неке од њих, деселектујте их сада."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
"Имате могућност да копирате садржај CD-ова на хард диск пре инсталације.\n"
"Након тога ће инсталција наставити са хард диска а пакети ће остати доступни "
"и када се заврши инсталација."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "Копирање целог CDа"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Хм,појавила се грешка"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Изаберите распоред тастатуре."
+msgid "Please choose your keyboard layout"
+msgstr "Изаберите распоред тастатуре"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Овде је представљена цела листа доступних распореда за тастатуре"
+msgid "Here is the full list of available keyboards:"
+msgstr "Овде је комплетна листа доступних тастатура:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Инсталација/Ажурирање"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Да ли је ово инсталација или ажурирање?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
-msgstr "Инсталирај"
+msgstr "Инсталација"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Ажурирање %s"
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "Кључ за енкрипцију за %s"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "Прекини инсталацију, рестартуј систем"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "Конфигурација IDE"
+msgid "New Installation"
+msgstr "Нова инсталација"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
-"Нема слободног простора за 1MB bootstrap! Инсталација ђе се наставити, али "
-"да би подигли вашсистем, морађете да креирате bootstrap партицију у "
-"DiskDrake-у"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Ажурирање претходне инсталације (није препоручљиво)"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"Морате креирати PPC PReP bootstrap! Инсталација ђе се наставити, али да би "
-"подигли ваш систем, морађете да креирате bootstrap партицију у DiskDrake-у"
+"Програм за инсталацију је открио да ваш инсталирани Линукс систем не може "
+"безбедно \n"
+"да се надогради на %s.\n"
+"\n"
+"Нова инсталација која ће заменити постојећу се препоручује.\n"
+"\n"
+"Упозорење : требало би да направите резервну копију својих личних података "
+"пре него што изаберете \"Нова инсталација\"."
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "Подешавање CD/DVD"
+
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1009,21 +1228,21 @@ msgstr ""
"спремни.\n"
"Уколико га немате притисните Поништи."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Тражим пакете"
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
"Ваш систем нема довољно слободног простора за инсталацију или ажурирање "
"система (%dMB > %dMB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
@@ -1032,52 +1251,52 @@ msgstr ""
"Молим Вас да изаберете учитавање или снимање селекције пакета.\n"
"Формат који се користи је исти као и код auto_install генерисаних фајлова."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Учитај"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Сачувај"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Лош фајл"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr ""
+msgid "Plasma"
+msgstr "Плазма"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Минимално инсталирај"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr "Избор Десктопа"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
+msgid "You can choose your workstation desktop profile."
+msgstr "Можете изабрати ваш десктоп профил."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Селектована величина је веђа од слободног простора"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Тип инсталације"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1086,82 +1305,129 @@ msgstr ""
"Нисте селектовали ниједну групу пакета.\n"
"Изаберите минималну инсталацију коју желите:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Са X-овима"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Инсталирај препоручене пакете"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Са основном документацијом (препорука!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Стварно минимална инсталација (посебно без urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Припремам надоградњу..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Припремам инсталацију"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Инсталирам пакет %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Грешка у листи пакета:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Свеједно наставити даље ?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
-msgstr ""
+msgstr "Покушај поново"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
-msgstr ""
+msgstr "Прескочи овај пакет"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
-msgstr ""
+msgstr "Прескочи све пакете са медија \"%s\""
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "Сачувај селекцију пакета"
+msgstr "Иди назад на медиј и избор пакета"
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "Грешка при инсталацији пакета:"
+msgstr "Појавила се грешка при инсталацији пакета%s."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Постинсталациона конфигурација"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr "Проверите да ли се у уређају %s налази медиј за ажурирање модула"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Ажурирање"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Сада имате могућност да подесите online медиј."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Ово омогућава инсталацију сигурносних ажурирања."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"Да би подесили те медије, биће вам потребна Интернет \n"
+"конекција.\n"
+"Да ли желите да подесите online медиј?"
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Следећи пакети треба да буду инсталирани"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Покушај поново?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Грешка при убацивању медија"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1181,131 +1447,80 @@ msgstr ""
"\n"
"да ли желите да инсталирате update-ове ?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Кантактирајте mirror за листу могућих пакета"
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Не могу да контактирам мирор %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s на %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Хардвер"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Звучна картица"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Да ли имате ISA звучну картицу?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Покрените \"alsaconf\" или \"sndconfig\" након иснталације да би подесили "
-"своју звучну картицу"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Није детектована звучна картица. Покрените \"harddrake\" након инсталације"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Графички интерфејс"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Мрежа и Интернет"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Проксији"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "подешено"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Ниво сигурности"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Заштитни зид (Firewall)"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "Активирано"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "онемогућено"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "Нисте подесили X. Да ли сте сигурни да желите то?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "Припремам стартер..."
+msgid "Preparing initial startup program..."
+msgstr "Припрема иницијалног програма за покретање..."
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"Пошто изгледа да имате старомодну или непознату машину, yaboot стартер неђе "
-"радити код вас.Инсталација ће бити настављена, али ћете морати да користите "
-"BootX или нешто друго да би подигли систем. Аргумент кернела заroot fs je: "
-"root=%s"
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Да ли желите да користите aboot ?"
-
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Грешка при инсталацији aboot-а, \n"
-"Да ли да пробам да инсталирам чак ако то води уништењу прве партиције?"
+msgid "Be patient, this may take a while..."
+msgstr "Будите стрпљиви, ово може потрајати..."
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
@@ -1314,17 +1529,17 @@ msgstr ""
"У овом сугурносном нивоу приступ фајловима на Windows партицији је дозвољен "
"само администраторима."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Убаците празну дискету у уређај %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Креирам ауто инсталациони флопи"
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1335,63 +1550,28 @@ msgstr ""
"\n"
"Да ли стварно желите да завршите ?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Честитке"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Рестарт"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Креирај ауто инсталациону дискету"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Ауто инсталација може бити потпуно аутоматизована уколико желите,\n"
-"у том случају преузеће контролу над хард-диском!!\n"
-"(ово се односи на инсталацију на другој машини).\n"
-"\n"
-"Можда волите да поновите инсталацију.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Понављање"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Аутоматски"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Сачувај селекцију пакета"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
msgid ""
"_: Keep these entry short\n"
"Language"
-msgstr "Изаберите језик"
+msgstr "Језик"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "Локализација"
#: steps_list.pm:17
#, c-format
@@ -1405,7 +1585,7 @@ msgstr "Лиценца"
msgid ""
"_: Keep these entry short\n"
"Mouse"
-msgstr ""
+msgstr "Миш"
#: steps_list.pm:19 steps_list.pm:20
#, c-format
@@ -1426,21 +1606,21 @@ msgstr "Инсталациона класа"
msgid ""
"_: Keep these entry short\n"
"Keyboard"
-msgstr ""
+msgstr "Тастатура"
#: steps_list.pm:24
#, c-format
msgid ""
"_: Keep these entry short\n"
"Security"
-msgstr ""
+msgstr "Сигурност"
#: steps_list.pm:25
#, c-format
msgid ""
"_: Keep these entry short\n"
"Partitioning"
-msgstr ""
+msgstr "Партиционисање"
#: steps_list.pm:27 steps_list.pm:28
#, c-format
@@ -1470,19 +1650,12 @@ msgid ""
"Users"
msgstr "Корисници"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Мрежа"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
"_: Keep these entry short\n"
"Bootloader"
-msgstr ""
+msgstr "Стартер"
#: steps_list.pm:40 steps_list.pm:41
#, c-format
@@ -1503,7 +1676,7 @@ msgstr "Сажетак"
msgid ""
"_: Keep these entry short\n"
"Services"
-msgstr ""
+msgstr "Сервиси"
#: steps_list.pm:46
#, c-format
@@ -1517,113 +1690,25 @@ msgstr "Ажурирање"
msgid ""
"_: Keep these entry short\n"
"Exit"
-msgstr ""
-
-#~ msgid "All"
-#~ msgstr "Све"
-
-#~ msgid "TV card"
-#~ msgstr "TV катица"
-
-#~ msgid "Boot"
-#~ msgstr "Стартање"
-
-#~ msgid "Arkeia"
-#~ msgstr "Arkeia"
-
-#~ msgid "Flatout"
-#~ msgstr "Flatout"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "3D"
-#~ msgstr "3D"
-
-#~ msgid "CMS"
-#~ msgstr "CMS"
-
-#~ msgid "CRM"
-#~ msgstr "CRM"
-
-#~ msgid "2007 product line"
-#~ msgstr "линија производа 2007"
-
-#~ msgid "Invictus Firewall"
-#~ msgstr "Заштитни зид Invictus"
-
-#~ msgid "Discovery Live Mode"
-#~ msgstr "Discovery Livе"
-
-#~ msgid "How to register"
-#~ msgstr "Како се регистровати"
-
-#~ msgid "Rpmdrake 2"
-#~ msgstr "Rpmdrake 2"
-
-#~ msgid "Mandriva Online Services"
-#~ msgstr "Mandriva Online сервиси"
+msgstr "Излаз"
-#~ msgid "New Theme"
-#~ msgstr "Нова тема"
-
-#~ msgid "Web 2.0"
-#~ msgstr "Веб 2.0"
-
-#~ msgid "Kaspersky"
-#~ msgstr "Касперски"
-
-#~ msgid "LinDVD"
-#~ msgstr "LinDVD"
-
-#~ msgid "Skype"
-#~ msgstr "Skype"
-
-#~ msgid "Transgaming/Cedega"
-#~ msgstr "Transgaming/Cedega"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "%d пакета"
-#~ msgstr[1] "%d пакета"
-#~ msgstr[2] "%d пакета"
-
-#~ msgid "%d packages"
-#~ msgstr "%d пакета"
-
-#~ msgid "Language"
-#~ msgstr "Изаберите језик"
-
-#~ msgid "License"
-#~ msgstr "Лиценца"
-
-#~ msgid "Installation class"
-#~ msgstr "Инсталациона класа"
-
-#~ msgid "Formatting"
-#~ msgstr "Форматирање"
-
-#~ msgid "Choosing packages"
-#~ msgstr "Избор пакета"
-
-#~ msgid "Users"
-#~ msgstr "Корисници"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "УРЛ мирора?"
-#~ msgid "Networking"
-#~ msgstr "Мрежа"
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "УРЛ мора почињати са ftp:// или http://"
-#~ msgid "Configure X"
-#~ msgstr "Конфигурисање X-а"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr "Контактирајте %s web сајт да би добили листу доступних mirror-а..."
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
#~ msgstr ""
-#~ "Не могу да приступим кернел модулима који одговарају вашем кернелу (фајл %"
-#~ "s нмедостаје), што генерално значи да ваш boot floppy није синхронизаован "
-#~ "са Инсталационим медијом (креирајте новији boot floppy)"
+#~ "Неуспешно успостављање везе са %s web сајт ради листе доступних mirror-а"
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Изаберите mirror са ког ћете скинути пакете"
diff --git a/perl-install/install/share/po/sr@Latn.po b/perl-install/install/share/po/sr@Latn.po
index b93fb0c14..08b2f9242 100644
--- a/perl-install/install/share/po/sr@Latn.po
+++ b/perl-install/install/share/po/sr@Latn.po
@@ -7,24 +7,75 @@ msgid ""
msgstr ""
"Project-Id-Version: DrakX\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
"PO-Revision-Date: 2004-09-15 13:33+0200\n"
"Last-Translator: Toma Jankovic_<tomaja@net.yu>\n"
"Language-Team: Serbian <i18n@mandrake.co.yu>\n"
+"Language: sr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 0.9.6\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr ""
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr ""
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, fuzzy, c-format
+msgid "Office tools"
+msgstr "Radna(Office) stanica"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr ""
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr ""
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr ""
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr ""
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
msgstr "Da li imate još dodatnih medija?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -37,94 +88,57 @@ msgstr ""
"\n"
"Da li imate dodatnih instalacionih medija koje treba podesiti?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Mreža (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Mreža (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Mreža (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "URL mirora?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "URL mora počinjati sa ftp:// ili http://"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Kontaktirajte Mandriva Linux web sajt da bi dobili listu dostupnih mirror-"
-"a..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Neuspešno uspostavljanje veze sa Mandriva Linux web sajt radi liste "
-"dostupnih mirror-a"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Izaberite mirror sa kog ćete skinuti pakete"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "Podešavanje NFS-a"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr "Unesite ime domaćina-hostname i direktorijum vašeg NFS medija"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr "Nedostaje ime domaćina-hostname"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "Direktorijum mora početi sa \"/\""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "Ime domaćina-hostname za montiranje NFS ?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Direktorijum"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "Dodatni"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
@@ -133,49 +147,90 @@ msgstr ""
"Ne mogu pronađem listu paketa na ovom miroru. proverite da li lokacija "
"ispravna."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Tražim već instalirane pakete..."
+msgid "Core Release"
+msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Uklanjam stare pakete..."
+msgid "Tainted Release"
+msgstr ""
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Tražim pakete za ažuriranje..."
+msgid "Nonfree Release"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
msgstr ""
-"Vi ste izabrali sledeđe servere: %s\n"
-"\n"
-"\n"
-"Ovi serveri se aktiviraju po osnovnoj postavci. Oni nemaju poznatih "
-"sigurnosnih\n"
-"nedostataka, ali se ipak mogu pojaviti neki novi. Ukoliko se to desi, morate "
-"ih ažurirati\n"
-"što je pre moguđe.\n"
-"\n"
-"\n"
-"Da li zaista želite da instalirate ove servise?\n"
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Tražim već instalirane pakete..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Tražim pakete za ažuriranje..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Uklanjam stare pakete..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -188,82 +243,87 @@ msgstr ""
"\n"
"Da li zaista želite da uklonite ove pakete?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Greška kod otvaranja datoteka %s"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "Sledeći disk(ovi) će biti preimenovani:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (ranije sa imenom %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Mreža"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "Izaberite medij"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Datoteka već postoji. Da li prepišem preko postojeće?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Pristup odbijen"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "Pogrešno NFS ime"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "Loš medij %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Ne mogu da napravim snimak pre particioniranja"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Snimci će biti dostupni nakon instalacije u %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Instalacija"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Konfiguracija"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Morate i %s da formatirate"
@@ -288,107 +348,143 @@ msgstr "Pristupam mrežu"
msgid "Bringing down the network"
msgstr "Odstupam od mreže"
-#: media.pm:703 media.pm:714
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
+
+#: media.pm:704
#, c-format
-msgid "Downloading file %s..."
-msgstr "Preuzimam fajl %s ..."
+msgid "unable to add medium"
+msgstr ""
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr "Kopiranje nekih poaketa na diskove radi kasnije upotrebe"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Kopiranje u toku"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "morate imati"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "važno"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "veoma lepo"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "lepo"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "možda"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Bez opisa"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
+#, fuzzy, c-format
+msgid "An error occurred:"
+msgstr "Hm,pojavila se greška"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "Pojavila se fatalna greška: %s."
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d instlaciona transakcija nije uspela"
+
+#: pkgs.pm:929
+#, fuzzy, c-format
+msgid "Installation of packages failed:"
+msgstr "Instaliram paket %s"
+
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "Radna stanica"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "Radna(Office) stanica"
-#: share/meta-task/compssUsers.pl:15
-#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
-msgstr ""
-"Office programi: tekst procesori (OpenOffice.org Writer, Kword), tabele "
-"(OpenOffice.org Calc, Kspread), pdf preglednici, itd"
-
-#: share/meta-task/compssUsers.pl:16
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Office programi: tekst procesori (kword, abiword), tabele (kspread, "
-"gnumeric), pdf preglednici, itd"
+"Office programi: tekst procesori (LibreOffice Writer, Kword), tabele "
+"(LibreOffice Calc, Kspread), pdf preglednici, itd"
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Stanica za igru"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Zabavni programi: arkade, ige na tabli, strategije, itd"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Multimedijalna stanica"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Programi za puštanje zvuka i videa"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Internet stanica"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
@@ -397,193 +493,193 @@ msgstr ""
"Skup alata za čitanje i slanje el.pošte i vesti (mutt, tin..) i za "
"pretraživanje Interneta"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Mrežni kompjuter (klijent)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Klijenti za različite protokole uključujući i ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Alati za lako konfigurisanje kompjutera"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Konzolni alati"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "editori,šelovi, alati za datoteke, terminali"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Razvojna"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "C i C++ razvojne biblioteke, programi i propratne datoteke"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Dokumentacija"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Knjige i Kako? (Howto's) za Linux i Besplatni Softver"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Linux-ova Standardna Baza. Podrška za Third party aplikaicje"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Veb Server"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Softver za grupni rad"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Kolab Server"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Server, Firewall/Router"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Internet gateway"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "El.pošta/vesti"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Postfix server za el.poštu,Inn server za vesti "
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Server direktorijuma"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP Server"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "Ime Domena i Mrežni Informacioni Server"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "Fajl Server i server za deljenje štampača"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "NFS Server, Samba Server"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Server,Baze podataka"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL ili MySQL server za bazu podataka"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "PostgreSQL ili MariaDB server za bazu podataka"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Server, Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Pošta"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Postfix mail server"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL ili MySQL server za bazu podataka"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL ili MariaDB server za bazu podataka"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Mrežni Server"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "NFS server, SMB server, Proxy server, SSH server"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Grafičko Okruženje"
-#: share/meta-task/compssUsers.pl:133
-#, c-format
-msgid "KDE Workstation"
-msgstr "KDE padna stanica"
+#: share/meta-task/compssUsers.pl:152
+#, fuzzy, c-format
+msgid "Plasma Workstation"
+msgstr "Radna stanica"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -591,12 +687,12 @@ msgid ""
msgstr ""
"K Desktop okruženje, osnovno grafičko okruženje sa kolekcijom pratećih alata"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "Gnome radna stanica"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -605,57 +701,117 @@ msgstr ""
"Grafička okruženja za setom korisničk NFS server, SMB server, Proxy server, "
"NFS server, SMB server, Proxy serverih aplikacija i desktopalata"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, fuzzy, c-format
+msgid "Xfce Workstation"
+msgstr "KDE padna stanica"
+
+#: share/meta-task/compssUsers.pl:165
+#, fuzzy, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Grafička okruženja za setom korisničk NFS server, SMB server, Proxy server, "
+"NFS server, SMB server, Proxy serverih aplikacija i desktopalata"
+
+#: share/meta-task/compssUsers.pl:169
+#, fuzzy, c-format
+msgid "MATE Workstation"
+msgstr "Gnome radna stanica"
+
+#: share/meta-task/compssUsers.pl:174
+#, fuzzy, c-format
+msgid "Cinnamon Workstation"
+msgstr "Radna stanica"
+
+#: share/meta-task/compssUsers.pl:175
+#, fuzzy, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Grafičko Okruženje"
+
+#: share/meta-task/compssUsers.pl:179
+#, fuzzy, c-format
+msgid "LXQt Desktop"
+msgstr "IceWm Desktop"
+
+#: share/meta-task/compssUsers.pl:181
+#, fuzzy, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+"Grafička okruženja za setom korisničk NFS server, SMB server, Proxy server, "
+"NFS server, SMB server, Proxy serverih aplikacija i desktopalata"
+
+#: share/meta-task/compssUsers.pl:184
#, c-format
-msgid "IceWm Desktop"
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, fuzzy, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+"Grafička okruženja za setom korisničk NFS server, SMB server, Proxy server, "
+"NFS server, SMB server, Proxy serverih aplikacija i desktopalata"
+
+#: share/meta-task/compssUsers.pl:189
+#, fuzzy, c-format
+msgid "LXDE Desktop"
msgstr "IceWm Desktop"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:191
+#, fuzzy, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+"Grafička okruženja za setom korisničk NFS server, SMB server, Proxy server, "
+"NFS server, SMB server, Proxy serverih aplikacija i desktopalata"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Drugi grafički desktopovi"
-#: share/meta-task/compssUsers.pl:147
-#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
+#: share/meta-task/compssUsers.pl:195
+#, fuzzy, c-format
+msgid "Window Maker, Fvwm, etc"
msgstr " Window Maker, Enlightenment, Fvwm, itd"
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Alati"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH Server"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Webmin server za daljinsku kontrolu"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "Mrežni alati/Monitoring"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "Alati za monitoring, upravljanje procesima, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Mandriva Čarobnjaci"
+msgid "Mageia Wizards"
+msgstr "Mageia Čarobnjaci"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Čarobnjaci za podešavanje servera"
@@ -669,7 +825,7 @@ msgstr ""
"Greška, ali neznam kako da je razrešim.\n"
"Nastavite na vaš rizik!"
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -689,182 +845,235 @@ msgstr "Pokrećem korak `%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux Instalacija %s"
+msgid "%s Installation %s"
+msgstr "%s Instalacija %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> između elemenata"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
"Vaš sistem ima manjak snage. Usled toga možete imati problema pri "
"instalaciji\n"
-"Mandriva Linux. Ukoliko se oni pojave, možete probati tekstualnu "
-"instalaciju. Da bi to postigli,\n"
+"%s. Ukoliko se oni pojave, možete probati tekstualnu instalaciju. Da bi to "
+"postigli,\n"
"pritisnite `F1' pri startanju sa CDROM-a, a onda ukucajte `text'."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, fuzzy, c-format
+msgid "Media Selection"
+msgstr "Odabir grupa paketa"
+
+#: steps_gtk.pm:257
+#, fuzzy, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "IceWm Desktop"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, fuzzy, c-format
+msgid "Custom install"
+msgstr "Minimalno instaliraj"
+
+#: steps_gtk.pm:280
+#, fuzzy, c-format
+msgid "Plasma Desktop"
+msgstr "IceWm Desktop"
+
+#: steps_gtk.pm:281
+#, fuzzy, c-format
+msgid "GNOME Desktop"
+msgstr "IceWm Desktop"
+
+#: steps_gtk.pm:282
+#, fuzzy, c-format
+msgid "Custom Desktop"
+msgstr "IceWm Desktop"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Odabir grupa paketa"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Pojedinačno biranje paketa"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Ukupna veličina: %d / %d MB"
+msgid "Unselect All"
+msgstr "Deselektuj Sve"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Loš paket"
+msgid "Total size: %d / %d MB"
+msgstr "Ukupna veličina: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Verzija: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Veličina: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Važnost: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Ne možete selektovati/deselektovati ovaj paket"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "zbog ne postojanja %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "zbog ne zadovoljenog %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "pokušavam da prikažem %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "da bih zadržao %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr "Ne možete selektovati ovaj paket jer nema više slobodnog prostora"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Sledeći paketi treba da budu instalirani"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Sledeći paketi će biti izbrisani"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Ovo je obavezni paket,i ne može biti deselektovan"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Možete deselektovati ovaj paket jer je već instaliran"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Ne možete deselektovati ovaj paket.On mora biti ažuriran"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Automatski prikaži izabrane pakete"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Instaliraj"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Učitaj/Sačuvaj izbor"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Ažuriranje selekcije paketa"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Minimalno instaliraj"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Podešavanje Softvera"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Izaberi pakete za instalaciju"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Instaliram"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Bez detalja"
-#: steps_gtk.pm:514
-#, c-format
-msgid "Time remaining "
+#: steps_gtk.pm:610
+#, fuzzy, c-format
+msgid "Time remaining:"
msgstr "Preostalo vreme"
-#: steps_gtk.pm:515
-#, c-format
-msgid "Estimating"
+#: steps_gtk.pm:611
+#, fuzzy, c-format
+msgid "(estimating...)"
msgstr "Procenjujem"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, fuzzy, c-format
msgid "%d package"
msgid_plural "%d packages"
@@ -872,22 +1081,22 @@ msgstr[0] "%d paketa"
msgstr[1] "%d paketa"
msgstr[2] "%d paketa"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Sažetak"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Podesi"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "nije podešeno"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
@@ -896,106 +1105,103 @@ msgstr ""
"Pronađeni su sledeći instalacioni mediji.\n"
"Ukoliko želite da preskočite neke od njih, deselektujte ih sada."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
"Imate mogućnost da kopirate sadržaj CD-ova na hard disk pre instalacije.\n"
"Nakon toga će instalcija nastaviti sa hard diska a paketi će ostati dostupni "
"i kada se završi instalacija."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "Kopiranje celog CDa"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Hm,pojavila se greška"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Izaberite raspored tastature."
+msgid "Please choose your keyboard layout"
+msgstr "Izaberite raspored tastature"
-#: steps_interactive.pm:99
-#, c-format
-msgid "Here is the full list of available keyboards"
+#: steps_interactive.pm:109
+#, fuzzy, c-format
+msgid "Here is the full list of available keyboards:"
msgstr "Ovde je predstavljena cela lista dostupnih rasporeda za tastature"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Instalacija/Ažuriranje"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Da li je ovo instalacija ili ažuriranje?"
-#: steps_interactive.pm:134
+#: steps_interactive.pm:159
#, fuzzy, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Instaliraj"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Ažuriranje %s"
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "Ključ za enkripciju za %s"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
+#, fuzzy, c-format
+msgid "New Installation"
+msgstr "Instalacija"
+
+#: steps_interactive.pm:219
#, c-format
-msgid "Configuring IDE"
-msgstr "Konfiguracija IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"Nema slobodnog prostora za 1MB bootstrap! Instalacija đe se nastaviti, ali "
-"da bi podigli vašsistem, morađete da kreirate bootstrap particiju u "
-"DiskDrake-u"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+msgid "CD/DVD"
msgstr ""
-"Morate kreirati PPC PReP bootstrap! Instalacija đe se nastaviti, ali da bi "
-"podigli vaš sistem, morađete da kreirate bootstrap particiju u DiskDrake-u"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:264
+#, fuzzy, c-format
+msgid "Configuring CD/DVD"
+msgstr "Konfiguracija IDE"
+
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1009,21 +1215,21 @@ msgstr ""
"spremni.\n"
"Ukoliko ga nemate pritisnite Poništi."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Tražim pakete"
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
"Vaš sistem nema dovoljno slobodnog prostora za instalaciju ili ažuriranje "
"sistema (%dMB > %dMB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
@@ -1032,52 +1238,52 @@ msgstr ""
"Molim Vas da izaberete učitavanje ili snimanje selekcije paketa.\n"
"Format koji se koristi je isti kao i kod auto_install generisanih fajlova."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Učitaj"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Sačuvaj"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Loš fajl"
-#: steps_interactive.pm:431
-#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr ""
+#: steps_interactive.pm:455
+#, fuzzy, c-format
+msgid "Plasma"
+msgstr "IceWm Desktop"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
+#: steps_interactive.pm:459
#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Minimalno instaliraj"
+msgid "Desktop Selection"
+msgstr "Odabir grupa paketa"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Selektovana veličina je veđa od slobodnog prostora"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Tip instalacije"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1086,82 +1292,126 @@ msgstr ""
"Niste selektovali nijednu grupu paketa.\n"
"Izaberite minimalnu instalaciju koju želite:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Sa X-ovima"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, fuzzy, c-format
+msgid "Install recommended packages"
+msgstr "Instaliram paket %s"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Sa osnovnom dokumentacijom (preporuka!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Stvarno minimalna instalacija (posebno bez urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, fuzzy, c-format
+msgid "Preparing upgrade..."
+msgstr "Pripremam starter..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Pripremam instalaciju"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Instaliram paket %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Greška u listi paketa:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Svejedno nastaviti dalje ?"
-#: steps_interactive.pm:632
-#, c-format
+#: steps_interactive.pm:683
+#, fuzzy, c-format
msgid "Retry"
-msgstr ""
+msgstr "Obnovi"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr ""
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr ""
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, fuzzy, c-format
msgid "Go back to media and packages selection"
msgstr "Sačuvaj selekciju paketa"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, fuzzy, c-format
msgid "There was an error installing package %s."
msgstr "Greška pri instalaciji paketa:"
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Postinstalaciona konfiguracija"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr "Proverite da li se u uređaju %s nalazi medij za ažuriranje modula"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Ažuriranje"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Sledeći paketi treba da budu instalirani"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, fuzzy, c-format
+msgid "Retry?"
+msgstr "Obnovi"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr ""
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1181,131 +1431,80 @@ msgstr ""
"\n"
"da li želite da instalirate update-ove ?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Kantaktirajte mirror za listu mogućih paketa"
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Ne mogu da kontaktiram miror %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s na %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Hardver"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Zvučna kartica"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Da li imate ISA zvučnu karticu?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Pokrenite \"alsaconf\" ili \"sndconfig\" nakon isntalacije da bi podesili "
-"svoju zvučnu karticu"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Nije detektovana zvučna kartica. Pokrenite \"harddrake\" nakon instalacije"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Grafički interfejs"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Mreža i Internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Proksiji"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "podešeno"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Nivo sigurnosti"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Zaštitni zid (Firewall)"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "Aktivirano"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "onemogućeno"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "Niste podesili X. Da li ste sigurni da želite to?"
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "Pripremam starter..."
-
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"Pošto izgleda da imate staromodnu ili nepoznatu mašinu, yaboot starter neđe "
-"raditi kod vas.Instalacija će biti nastavljena, ali ćete morati da koristite "
-"BootX ili nešto drugo da bi podigli sistem. Argument kernela zaroot fs je: "
-"root=%s"
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Da li želite da koristite aboot ?"
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
+#, fuzzy, c-format
+msgid "Preparing initial startup program..."
+msgstr "Pripremam instalaciju"
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
+msgid "Be patient, this may take a while..."
msgstr ""
-"Greška pri instalaciji aboot-a, \n"
-"Da li da probam da instaliram čak ako to vodi uništenju prve particije?"
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
@@ -1314,17 +1513,17 @@ msgstr ""
"U ovom sugurnosnom nivou pristup fajlovima na Windows particiji je dozvoljen "
"samo administratorima."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Ubacite praznu disketu u uređaj %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Kreiram auto instalacioni flopi"
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1335,51 +1534,16 @@ msgstr ""
"\n"
"Da li stvarno želite da završite ?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Čestitke"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Restart"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Kreiraj auto instalacionu disketu"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Auto instalacija može biti potpuno automatizovana ukoliko želite,\n"
-"u tom slučaju preuzeće kontrolu nad hard-diskom!!\n"
-"(ovo se odnosi na instalaciju na drugoj mašini).\n"
-"\n"
-"Možda volite da ponovite instalaciju.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Ponavljanje"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automatski"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Sačuvaj selekciju paketa"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1470,13 +1634,6 @@ msgid ""
"Users"
msgstr "Korisnici"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Mreža"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1519,6 +1676,209 @@ msgid ""
"Exit"
msgstr "Izlaz"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "URL mirora?"
+
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "URL mora počinjati sa ftp:// ili http://"
+
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr "Kontaktirajte %s web sajt da bi dobili listu dostupnih mirror-a..."
+
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
+#~ msgstr ""
+#~ "Neuspešno uspostavljanje veze sa %s web sajt radi liste dostupnih mirror-a"
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Izaberite mirror sa kog ćete skinuti pakete"
+
+#~ msgid "KDE Workstation"
+#~ msgstr "KDE padna stanica"
+
+#, fuzzy
+#~ msgid "XFCE Workstation"
+#~ msgstr "KDE padna stanica"
+
+#, fuzzy
+#~ msgid "RazorQT Desktop"
+#~ msgstr "IceWm Desktop"
+
+#~ msgid "Do you have an ISA sound card?"
+#~ msgstr "Da li imate ISA zvučnu karticu?"
+
+#~ msgid ""
+#~ "Run \"alsaconf\" or \"sndconfig\" after installation to configure your "
+#~ "sound card"
+#~ msgstr ""
+#~ "Pokrenite \"alsaconf\" ili \"sndconfig\" nakon isntalacije da bi podesili "
+#~ "svoju zvučnu karticu"
+
+#~ msgid "No sound card detected. Try \"harddrake\" after installation"
+#~ msgstr ""
+#~ "Nije detektovana zvučna kartica. Pokrenite \"harddrake\" nakon instalacije"
+
+#, fuzzy
+#~ msgid "KDE Desktop"
+#~ msgstr "IceWm Desktop"
+
+#~ msgid "KDE"
+#~ msgstr "KDE"
+
+#~ msgid "CD-ROM"
+#~ msgstr "CD-ROM"
+
+#, fuzzy
+#~ msgid ""
+#~ "The Plasma Desktop, the basic graphical environment with a collection of "
+#~ "accompanying tools"
+#~ msgstr ""
+#~ "K Desktop okruženje, osnovno grafičko okruženje sa kolekcijom pratećih "
+#~ "alata"
+
+#~ msgid "IDE"
+#~ msgstr "IDE"
+
+#~ msgid "Preparing bootloader..."
+#~ msgstr "Pripremam starter..."
+
+#, fuzzy
+#~ msgid ""
+#~ "A lightweight & fast graphical environment with user-friendly set of "
+#~ "applications and desktop tools"
+#~ msgstr ""
+#~ "Grafička okruženja za setom korisničk NFS server, SMB server, Proxy "
+#~ "server, NFS server, SMB server, Proxy serverih aplikacija i desktopalata"
+
+#~ msgid ""
+#~ "No free space for 1MB bootstrap! Install will continue, but to boot your "
+#~ "system, you'll need to create the bootstrap partition in DiskDrake"
+#~ msgstr ""
+#~ "Nema slobodnog prostora za 1MB bootstrap! Instalacija đe se nastaviti, "
+#~ "ali da bi podigli vašsistem, morađete da kreirate bootstrap particiju u "
+#~ "DiskDrake-u"
+
+#~ msgid ""
+#~ "You'll need to create a PPC PReP Boot bootstrap! Install will continue, "
+#~ "but to boot your system, you'll need to create the bootstrap partition in "
+#~ "DiskDrake"
+#~ msgstr ""
+#~ "Morate kreirati PPC PReP bootstrap! Instalacija đe se nastaviti, ali da "
+#~ "bi podigli vaš sistem, morađete da kreirate bootstrap particiju u "
+#~ "DiskDrake-u"
+
+#~ msgid ""
+#~ "You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
+#~ "will not work for you. The install will continue, but you'll need to use "
+#~ "BootX or some other means to boot your machine. The kernel argument for "
+#~ "the root fs is: root=%s"
+#~ msgstr ""
+#~ "Pošto izgleda da imate staromodnu ili nepoznatu mašinu, yaboot starter "
+#~ "neđe raditi kod vas.Instalacija će biti nastavljena, ali ćete morati da "
+#~ "koristite BootX ili nešto drugo da bi podigli sistem. Argument kernela "
+#~ "zaroot fs je: root=%s"
+
+#~ msgid "Welcome"
+#~ msgstr "Dobrodošli"
+
+#~ msgid "Select All"
+#~ msgstr "Selektuj Sve"
+
+#~ msgid "Bad package"
+#~ msgstr "Loš paket"
+
+#, fuzzy
+#~ msgid "Preparing boot images..."
+#~ msgstr "Pripremam starter..."
+
+#~ msgid ""
+#~ "_: Keep these entry short\n"
+#~ "Networking"
+#~ msgstr "Mreža"
+
+#~ msgid ""
+#~ "Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
+#~ "gnumeric), pdf viewers, etc"
+#~ msgstr ""
+#~ "Office programi: tekst procesori (kword, abiword), tabele (kspread, "
+#~ "gnumeric), pdf preglednici, itd"
+
+#~ msgid "Downloading file %s..."
+#~ msgstr "Preuzimam fajl %s ..."
+
+#~ msgid ""
+#~ "You have selected the following server(s): %s\n"
+#~ "\n"
+#~ "\n"
+#~ "These servers are activated by default. They do not have any known "
+#~ "security\n"
+#~ "issues, but some new ones could be found. In that case, you must make "
+#~ "sure\n"
+#~ "to upgrade as soon as possible.\n"
+#~ "\n"
+#~ "\n"
+#~ "Do you really want to install these servers?\n"
+#~ msgstr ""
+#~ "Vi ste izabrali sledeđe servere: %s\n"
+#~ "\n"
+#~ "\n"
+#~ "Ovi serveri se aktiviraju po osnovnoj postavci. Oni nemaju poznatih "
+#~ "sigurnosnih\n"
+#~ "nedostataka, ali se ipak mogu pojaviti neki novi. Ukoliko se to desi, "
+#~ "morate ih ažurirati\n"
+#~ "što je pre moguđe.\n"
+#~ "\n"
+#~ "\n"
+#~ "Da li zaista želite da instalirate ove servise?\n"
+
+#~ msgid "IceWm Desktop"
+#~ msgstr "IceWm Desktop"
+
+#~ msgid "Contacting the mirror to get the list of available packages..."
+#~ msgstr "Kantaktirajte mirror za listu mogućih paketa"
+
+#~ msgid "Unable to contact mirror %s"
+#~ msgstr "Ne mogu da kontaktiram miror %s"
+
+#~ msgid "Generate auto install floppy"
+#~ msgstr "Kreiraj auto instalacionu disketu"
+
+#~ msgid ""
+#~ "The auto install can be fully automated if wanted,\n"
+#~ "in that case it will take over the hard disk drive!!\n"
+#~ "(this is meant for installing on another box).\n"
+#~ "\n"
+#~ "You may prefer to replay the installation.\n"
+#~ msgstr ""
+#~ "Auto instalacija može biti potpuno automatizovana ukoliko želite,\n"
+#~ "u tom slučaju preuzeće kontrolu nad hard-diskom!!\n"
+#~ "(ovo se odnosi na instalaciju na drugoj mašini).\n"
+#~ "\n"
+#~ "Možda volite da ponovite instalaciju.\n"
+
+#~ msgid "Replay"
+#~ msgstr "Ponavljanje"
+
+#~ msgid "Automated"
+#~ msgstr "Automatski"
+
+#~ msgid "Save packages selection"
+#~ msgstr "Sačuvaj selekciju paketa"
+
+#~ msgid "Do you want to use aboot?"
+#~ msgstr "Da li želite da koristite aboot ?"
+
+#~ msgid ""
+#~ "Error installing aboot, \n"
+#~ "try to force installation even if that destroys the first partition?"
+#~ msgstr ""
+#~ "Greška pri instalaciji aboot-a, \n"
+#~ "Da li da probam da instaliram čak ako to vodi uništenju prve particije?"
+
#~ msgid "All"
#~ msgstr "Sve"
@@ -1625,10 +1985,10 @@ msgstr "Izlaz"
#~ msgstr "Konfigurisanje X-a"
#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
+#~ "Cannot access kernel modules corresponding to your kernel (file %s is "
#~ "missing), this generally means your boot floppy in not in sync with the "
#~ "Installation medium (please create a newer boot floppy)"
#~ msgstr ""
-#~ "Ne mogu da pristupim kernel modulima koji odgovaraju vašem kernelu (fajl %"
-#~ "s nmedostaje), što generalno znači da vaš boot floppy nije sinhronizaovan "
-#~ "sa Instalacionim medijom (kreirajte noviji boot floppy)"
+#~ "Ne mogu da pristupim kernel modulima koji odgovaraju vašem kernelu (fajl "
+#~ "%s nmedostaje), što generalno znači da vaš boot floppy nije "
+#~ "sinhronizaovan sa Instalacionim medijom (kreirajte noviji boot floppy)"
diff --git a/perl-install/install/share/po/sv.po b/perl-install/install/share/po/sv.po
index 309f5f2b9..fb309d782 100644
--- a/perl-install/install/share/po/sv.po
+++ b/perl-install/install/share/po/sv.po
@@ -1,38 +1,93 @@
-# translation of DrakX-sv.po to
-# DrakX-sv - Swedish Translation
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
-# Copyright (C) 2000,2002,2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
-# Copyright (c) 2000 Mandriva
-#
-# Kenneth Krekula, 2005.
-# Fuad Sabanovic <manijak@telia.com>, 2000.
-# Mattias Dahlberg <voz@home.se>, 2001, 2002.
-# Mattias Newzella <newzella@linux.nu>, 2001, 2002,2003.
-# Magnus Björklöf <bjorklof@nic.fi>, 2003.
-# Lars Westergren <lars.westergren@home.se>, 2003, 2004, 2005.
-# Thomas Backlund <tmb@mandriva.org>, 2004, 2005, 2006.
-# Kenneth Krekula <kenneth.krekula@kiruna.se>, 2007.
+# Translators:
+# Fuad Sabanovic <manijak@telia.com>, 2000
+# Kenneth Krekula, 2005
+# Kenneth Krekula <kenneth.krekula@kiruna.se>, 2007
+# Kristoffer Grundström <lovaren@gmail.com>, 2013
+# Kristoffer Grundström <lovaren@gmail.com>, 2013-2016
+# Kristoffer Grundström <lovaren@gmail.com>, 2021-2022
+# Lars Westergren <lars.westergren@home.se>, 2003-2005
+# Magnus Björklöf <bjorklof@nic.fi>, 2003
+# Mattias Dahlberg <voz@home.se>, 2001-2002
+# Mattias Newzella <newzella@linux.nu>, 2001-2003
+# Michael Eklund <willard@null.net>, 2014-2016,2019,2023
+# Thomas Backlund <tmb@mageia.org>, 2011
+# Thomas Backlund <tmb@mandriva.org>, 2004-2006,2008-2009
msgid ""
msgstr ""
-"Project-Id-Version: DrakX-sv\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-03-18 12:05+0100\n"
-"Last-Translator: Kenneth Krekula <kenneth.krekula@kiruna.se>\n"
-"Language-Team: <sv@li.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2013-04-04 13:31+0000\n"
+"Last-Translator: Michael Eklund <willard@null.net>, 2014-2016,2019,2023\n"
+"Language-Team: Swedish (http://app.transifex.com/MageiaLinux/mageia/language/"
+"sv/)\n"
+"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Anslut dig till oss!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Gör det ditt!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "Ditt val!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Kontorsverktyg"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Hemunderhållning"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "För barn"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "För familj!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "För utvecklare!"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Tack så mycket!"
-#: any.pm:155
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Var fri!"
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
-msgstr "Har du fler tilläggs-installationskällor?"
+msgstr "Har du fler installationskällor att lägga till?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -40,147 +95,160 @@ msgid ""
"\n"
"Do you have a supplementary installation medium to configure?"
msgstr ""
-"Följande medier har blivit hittade och kommer att användas under "
-"installationen: %s.\n"
+"Följande media har hittats och kommer att användas under installationen: "
+"%s.\n"
"\n"
"\n"
"Har du några tilläggs-medier du vill konfigurera?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "Cd-rom"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Nätverk (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Nätverk (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Nätverk (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "Spegelns URL?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "URL måste starta med ftp:// eller http://"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Kontaktar Mandriva Linux webbplats för att hämta listan över tillgängliga "
-"speglar..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Misslyckades kontakta Mandriva Linux webbplats för att hämta listan över "
-"tillgängliga speglar"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Välj en webbplats från vilken du vill hämta paketen"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
-msgstr "NFS konfigurering"
+msgstr "Konfigurera NFS"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
-msgstr "Ange namn och katalog för ditt NFS medium"
+msgstr "Ange namn och katalog för ditt NFS-media"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr "Värdnamn saknas"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "Katalogen måste börja med \"/\""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
-msgstr "Maskinnamn för NFS anslutning ?"
+msgstr "Värdnamn för NFS-anslutning ?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Katalog"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "Tillägg"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
-msgstr "Kan inte hitta hdlist filen på denna spegel"
+msgstr "Kan inte hitta hdlist-filen på denna spegel"
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Söker efter paket som redan är installerade..."
+msgid "Core Release"
+msgstr "Core Release"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Tar bort paket före uppgradering..."
+msgid "Tainted Release"
+msgstr "Tainted Release"
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Söker efter paket att uppdatera..."
+msgid "Nonfree Release"
+msgstr "Nonfree Release"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"Du har valt följande server/servrar: %s\n"
-"\n"
-"\n"
-"Dessa servrar aktiveras som standard. De har inga kända säkerhetsproblem,\n"
-"men sådana kan upptäckas. Om så blir fallet måste du se till att uppdatera\n"
-"dem så snabbt som möjligt.\n"
-"\n"
-"\n"
-"Vill du verkligen installera dessa servrar?\n"
+"En del hårdvaror i din maskin behöver några icke-fria inre mjukvaror för att "
+"de fria drivrutinerna ska kunna fungera."
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "Du borde aktivera \"%s\""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "\"%s\" innehåller olika delar för systemet och dess program"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "\"%s\" innehåller nonfree-mjukvara.\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"Det innehåller också programvaror som behövs för att särskilda enheter ska "
+"fungera (t.ex. några grafikkort från ATI/AMD, nätverkskort och RAID-"
+"kort, ...)"
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"\"%s\" innehåller mjukvara som inte kan distribueras i alla länder på grund "
+"av mjukvarupatent."
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr "Det innehåller även mjukvara från \"%s\" med extra möjligheter."
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "Här kan du aktivera fler medier om du vill."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Det här mediet erbjuder paket-uppdateringar för mediet \"%s\""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Söker efter paket som redan är installerade..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Söker efter paket att uppdatera..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Tar bort paket före uppgradering..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -193,82 +261,87 @@ msgstr ""
"\n"
"Vill du verkligen ta bort dessa paket?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Fel uppstod när filen %s skulle läsas"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "Följande disk(ar) har döpts om:"
+msgstr "Följande disk(ar) döptes om:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
-msgstr "%s (gamla namnet %s)"
+msgstr "%s (hette tidigare %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Nätverk"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "Välj media"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Filen finns redan. Skriv över?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Åtkomst nekad"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
-msgstr "Felaktigt NFS namn"
+msgstr "Felaktigt NFS-namn"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "Oanvändbart media %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Kan inte ta skärmdumpar före partitionering"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Skärmdumpar kommer att finnas tillgängliga efter installationen i %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Installation"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Konfiguration"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Du måste också formatera %s"
@@ -279,8 +352,8 @@ msgid ""
"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
"You can find some information about them at: %s"
msgstr ""
-"En del hårdvara i datorn behöver slutna drivrutiner för att\n"
-"fungera. Du kan hitta en del information om dem här: %s"
+"En del hårdvara i datorn behöver patenterade drivrutiner för att\n"
+"fungera. Du hittar en del information om dem här: %s"
#: interactive.pm:22
#, c-format
@@ -292,107 +365,146 @@ msgstr "Startar nätverket"
msgid "Bringing down the network"
msgstr "Stoppar nätverket"
-#: media.pm:703 media.pm:714
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr "Vänligen vänta, hämtar filen"
+
+#: media.pm:704
#, c-format
-msgid "Downloading file %s..."
-msgstr "Laddar ner filen %s..."
+msgid "unable to add medium"
+msgstr "kan inte lägga till media"
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr "Kopierar några paket till hårddisken för senare användning"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Kopiering pågår"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "nödvändigt"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "viktigt"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "väldigt trevligt"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "trevligt"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "tveksamt"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "Hämtar paket-information från XML meta-data..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Ingen xml-info för media \"%s\", endast partiellt resultat för paket %s"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Ingen beskrivning"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"Vissa paket som krävs av %s kan inte installeras:\n"
+"%s"
+
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "Ett fel inträffade:"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "Ett allvarligt fel inträffade: %s."
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr "Fråga inte igen"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d installationstransaktioner misslyckades"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Installation av paket misslyckades:"
+
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "Arbetsstation"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "Kontorsarbetsstation"
-#: share/meta-task/compssUsers.pl:15
-#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
-msgstr ""
-"Kontorsprogram: ordbehandlare (OpenOffice.org Writer, Kword), kalkylprogram "
-"(OpenOffice.org Calc, Kspread), PDF-visare, etc"
-
-#: share/meta-task/compssUsers.pl:16
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Kontorsprogram: ordbehandlare (Kword, Abiword), kalkylprogram (Kspread, "
-"Gnumeric), PDF-visare, etc"
+"Kontorsprogram: ordbehandlare (LibreOffice Writer, Kword), kalkylprogram "
+"(LibreOffice Calc, Kspread), PDF-visare, etc"
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Spelstation"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Underhållande program: arkad, brädspel, strategi, etc"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Multimediastation"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Redigerings- och uppspelningsprogram för video och ljud"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Internetstation"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
@@ -401,193 +513,193 @@ msgstr ""
"En samling verktyg för att läsa och skicka e-post och nyheter (mutt, tin...) "
"och för att utforska Internet"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Nätverksdator (klient)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
-msgstr "Klienter för olika protokoll inkluderande SSH"
+msgstr "Klienter för olika protokoll inklusive SSH"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Verktyg för att underlätta konfigurationen av datorn"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Konsollverktyg"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Editorer, skal, filverktyg, terminaler"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Utveckling"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "Utvecklingsbibliotek, program och include-filer för C och C++"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Dokumentation"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Böcker och \"Howto's\" om Linux och fri mjukvara"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Linux Standard Base. Stöd för tredjepartsprogram"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Webbserver"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Groupware"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Kolab-server"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Brandvägg/Router"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Internet-gateway"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "E-post/Nyheter"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "E-postservern Postfix, Nyhetsgruppservern Inn"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Katalog-server"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP-server"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "Domännamnserver och Nätverksinformationsserver"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
-msgstr "Fil och Skrivarserver"
+msgstr "Fil och skrivarserver"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
-msgstr "NFS-server, Samba-server"
+msgstr "NFS och Samba-server"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Databas"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL- och MySQL-databasserver"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "PostgreSQL- och MariaDB-databasserver"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Webb/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "E-post"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "E-postservern Postfix"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL- eller MySQL-databasserver"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL- eller MariaDB-databasserver"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Nätverksserver"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "NFS-server, SMB-server, Proxyserver, SSH-server"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Grafisk miljö"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE-arbetsstation"
+msgid "Plasma Workstation"
+msgstr "Arbetsstation för Plasma"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -596,12 +708,12 @@ msgstr ""
"K Desktop Environment, den grundläggande grafiska miljön med en samling "
"tillhörande verktyg"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
-msgstr "Gnome-arbetsstation"
+msgstr "Arbetsstation för GNOME"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -609,57 +721,111 @@ msgid ""
msgstr ""
"Grafisk miljö med en samling användarvänliga program och skrivbordsverktyg"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr "Arbetsstation för Xfce"
+
+#: share/meta-task/compssUsers.pl:165
#, c-format
-msgid "IceWm Desktop"
-msgstr "IceWm Skrivborsmiljö"
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"En lättare grafisk miljö med en användarvänlig uppsättning av program och "
+"skrivbordsverktyg"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "Arbetsstation för MATE"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Arbetsstation för Cinnamon"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "En grafisk miljö baserad på GNOME"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "LXQt-skrivbord"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "En nästa generations QT-portering av den lätta skrivbordsmiljön"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr "Enlightenment-skrivbord"
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr "En lättviktig snabb grafisk miljö med ett dedikerat efterföljande"
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "LXDE-skrivbord"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "En lätt och snabb grafisk miljö"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Andra grafiska skrivbordsmiljöer"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm, etc"
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, mfl."
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Verktyg"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH-server"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Fjärrkonfigurationsserver"
+msgstr "Fjärrkonfiguration med Webmin"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Nätverksverktyg/Övervakning"
+msgstr "Nätverksverktyg/övervakning"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
-msgstr "Övervakningsverkty, processhantering, tcpdump, nmap, ..."
+msgstr "Övervakningsverktyg, processhantering, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Mandriva Guider"
+msgid "Mageia Wizards"
+msgstr "Mageia-guider"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Guider för att konfigurera servern"
@@ -671,335 +837,394 @@ msgid ""
"Continue at your own risk."
msgstr ""
"Ett fel uppstod och jag vet inte hur det kan hanteras på ett\n"
-"bra sätt. Fortsätt på egen risk."
+"bra sätt.\n"
+"Fortsätt på egen risk."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
-"\"\n"
+"Check the cdrom on an installed computer using \"rpm -qpl media/main/*."
+"rpm\"\n"
msgstr ""
"Några viktiga paket blev inte installerade ordentligt.\n"
"Antingen är cd-enheten eller cd-skivan trasig.\n"
"Du kan kontrollera cd-skivan på en redan installerad\n"
-"Mandriva Linux-dator med kommandot \"rpm -qpl media/main/*.rpm\".\n"
+"Mageia-dator med kommandot \"rpm -qpl media/main/*.rpm\".\n"
#: steps_auto_install.pm:71 steps_stdio.pm:27
#, c-format
msgid "Entering step `%s'\n"
-msgstr "Påbörjar steg \"%s\"\n"
+msgstr "Går in i steget \"%s\"\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux installation %s"
+msgid "%s Installation %s"
+msgstr "%s Installation %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
-msgstr "<Tab>/<Alt-Tab> mellan element"
+msgstr "<Tab>/<Alt-Tab> mellan elementen"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Xorg-servern är långsam i starten. Vänligen vänta..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
"Systemet har ont om resurser. Du kan få problem med att installera\n"
-"Mandriva Linux. Om det blir problem kan du prova den textbaserade\n"
+"%s. Om det blir problem kan du prova den textbaserade\n"
"installationen istället. För att göra det tryck F1 när du startar\n"
"från cd-skivan, skriv sedan \"text\"."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Val av media"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Installera %s Plasma-skrivbordet"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Installera %s GNOME-skrivbordet"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Anpassad installation"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Plasma-skrivbord"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "GNOME-skrivbord"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Anpassat skrivbord"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Här är en förhandsvisning av '%s'-skrivbordet."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Klicka på bilderna för att se en större förhandsvisning"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Val av paketgrupper"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
-msgstr "Välj enskilda paket"
+msgstr "Individuellt paketval"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Total storlek: %d / %d MB"
+msgid "Unselect All"
+msgstr "Avmarkera alla"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Ogiltigt paket"
+msgid "Total size: %d / %d MB"
+msgstr "Total storlek: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Version: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Storlek: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Betydelsegrad: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
-msgstr "Du kan inte välja/välja bort detta paket."
+msgid "You cannot select/unselect this package"
+msgstr "Du kan inte välja/välja bort det här paketet."
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
-msgstr "pga saknande %s"
+msgstr "för att %s saknas"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "på grund av otillräckliga %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "försöker befordra %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "för att behålla %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
-"Du kan inte välja detta paket eftersom det inte finns tillräckligt med "
-"utrymme."
+"Du kan inte välja det här paketet eftersom det inte finns tillräckligt med "
+"ledigt utrymme."
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Följande paket kommer att installeras"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
-msgstr "Följande paket kommer att tas bort"
+msgstr "De följande paketen kommer att tas bort"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
-msgstr "Detta är ett obligatoriskt paket som inte kan väljas bort."
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr "Det här är ett obligatoriskt paket, det kan inte avmarkeras"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
-msgstr "Du kan inte välja bort detta paket. Det är redan installerat."
+msgid "You cannot unselect this package. It is already installed"
+msgstr "Du kan inte välja bort det här paketet. Det är redan installerat."
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Du kan inte välja bort det här paketet. Det måste uppdateras."
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Visa automatiskt valda paket"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Installera"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
-msgstr "Ladda/Spara markering"
+msgstr "Ladda/spara val"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Uppdaterar paketval"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr "Växla mellan hierarkisk och platt paket-lista"
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Minimal installation"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Programhantering"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
-msgstr "Välj paketen som du vill installera"
+msgstr "Välj de paket som du vill installera"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Installerar"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Inga detaljer"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Återstående tid "
+msgid "Time remaining:"
+msgstr "Tid som återstår:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Uppskattar"
+msgid "(estimating...)"
+msgstr "(uppskattar...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d paketet"
msgstr[1] "%d paket"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Sammanfattning"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Konfigurera"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
-msgstr "Inte inställt"
+msgstr "inte inställt"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
"Följande installationskällor har hittats.\n"
-"Du kan välja bort dom du inte önskar använda dig av."
+"Du kan välja bort de du inte vill använda dig av."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-"Du har möjligheten att kopiera innehållet på CDn till hårddisk innan "
-"installationen.\n"
-"Installationen kommer att fortsätta från hårddisken och paketen kommer att "
-"fortsätta vara tillgängliga när systemet är färdiginstallerat."
+"Du har möjlighet att kopiera innehållet från CDn till hårddisken innan "
+"installationen påbörjas.\n"
+"Installationen kommer sedan att fortsätta från hårddisken och paketen kommer "
+"fortsättningsvis att vara tillgängliga när systemet är färdiginstallerat."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
-msgstr "Kopiera hela CD skivor"
+msgstr "Kopiera hela CD-skivor"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Ett fel inträffade"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Välj tangentbordslayout."
+msgid "Please choose your keyboard layout"
+msgstr "Vänligen välj din tangentbordslayout"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Här är hela listan med tillgängliga tangentbord"
+msgid "Here is the full list of available keyboards:"
+msgstr "Här är den fullständiga listan över tillgängliga tangentbord:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
-msgstr "Installera/Uppdatera"
+msgstr "Installera/Uppgradera"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
-msgstr "Är detta en installation eller en uppdatering?"
+msgstr "Är det här en installation eller en uppgradering?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Installera"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
-msgstr "Uppdatera %s"
-
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
+msgstr "Uppgradera %s"
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "Krypteringsnyckel för %s"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "Avbryt installationen, starta om systemet"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "Konfigurerar IDE"
+msgid "New Installation"
+msgstr "Ny installation"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
-"Inget ledigt utrymme för 1MB bootstrap. Installationen fortsätter, men för "
-"att starta systemet måste du skapa en \"bootstrap\"-partition i Diskdrake."
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Uppgradera tidigare installation (rekommenderas ej)"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"Du måste skapa en PPC PRep Bootstrap. Installationen fortsätter, men för att "
-"starta systemet måste du skapa \"bootstrap\"-partitionen i Diskdrake."
+"Installationsprogrammet har märkt att ditt installerade Linux\n"
+"system inte kan uppgraderas på ett säkert sätt till %s.\n"
+"\n"
+"En ny installation som ersätter din tidigare rekommenderas.\n"
+"\n"
+"Varning: Du bör säkerhetskopiera alla dina personliga filer innan du\n"
+"väljer \"Ny installation\"."
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "Ställer in CD/DVD"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1007,27 +1232,27 @@ msgid ""
"done.\n"
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
-"Byt cd-skiva.\n"
+"Byt CD-skiva.\n"
"\n"
-"Sätt in cd-skivan med namn \"%s\" och klicka på OK.\n"
+"Sätt i CD-skivan med namn \"%s\" och klicka på OK.\n"
"Om du inte har den, klicka på Avbryt för att hoppa över\n"
"den delen av installationen."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Söker efter tillgängliga paket..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
"Ditt system har inte tillräckligt med utrymme kvar för installation eller "
"uppgradering (%dMB > %dMB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
@@ -1036,136 +1261,184 @@ msgstr ""
"Välj ladda eller spara paketval.\n"
"Formatet är detsamma som för auto_install-genererade filer."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
-msgstr "Inläsning"
+msgstr "Ladda"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Spara"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
-msgstr "Oanvändbar fil"
+msgstr "Trasig fil"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr ""
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Minimal installation"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr "Skrivbordsval"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
+msgid "You can choose your workstation desktop profile."
+msgstr "Du kan välja din arbetsstations skrivbordsprofil."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Vald storlek är större än tillgängligt utrymme."
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Installationstyp"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
-"Du har inte valt några gruppaket.\n"
-"Välj den minimala installationen du vill ha:"
+"Du har inte valt några paket-grupper.\n"
+"Vänligen välj den minimala installationen som du vill ha:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Med X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Installera rekommenderade paket"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Med grundläggande dokumentation (rekommenderas)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Minimal installation (ingen urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Förbereder uppgradering..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Förbereder installation"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Installerar paket %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
-msgstr "Det uppstod ett fel vid sortering av paket:"
+msgstr "Det uppstod ett fel när paketen skulle sorteras:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Fortsätta ändå?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "Försök igen"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
-msgstr "Hoppa över detta paket"
+msgstr "Hoppa över det här paketet"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr "Hoppa över alla paket från mediet \"%s\""
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
msgstr "Gå tillbaka till media och paketval"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
msgstr "Det uppstod ett fel vid installation av paketet %s."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
-msgstr "Bearbetar installerade paket"
+msgstr "Konfiguration efter installationen"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
-msgstr "Kontrollera att media för uppdateringsmoduler finns i enhet %s"
+msgstr ""
+"Vänligen säkerställ att mediet för uppdateringsmoduler finns i enheten %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Uppdateringar"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Du har nu möjlighet att ange online-media"
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Det här tillåter installation av säkerhetsuppdateringar."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"För att ange dessa media behöver du en fungerande internetanslutning.\n"
+"\n"
+"Vill du ange uppdateringsmedia?"
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr "Den nerladdningen kunde inte installeras."
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Försök igen?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Fel när media skulle läggas till"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1177,8 +1450,9 @@ msgid ""
"\n"
"Do you want to install the updates?"
msgstr ""
-"Nu har du möjlighet att ladda hem programuppdateringar. Dessa\n"
-"paket har kommit ut efter att denna distribution släppts. De kan\n"
+"Du har nu möjlighet att ladda hem programuppdateringar. De här\n"
+"paketen\n"
+"har utkommit efter att denna distributionen släpptes. De kan\n"
"innehålla säkerhetsuppdateringar eller felrättningar.\n"
"\n"
"Du behöver en fungerande Internetanslutning för att kunna ladda ner dessa "
@@ -1186,150 +1460,99 @@ msgstr ""
"\n"
"Vill du installera uppdateringarna?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr ""
-"Kontaktar webbplatsen för att hämta en lista över tillgängliga paket..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Kan inte kontakta spegeln %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s på %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Hårdvara"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Ljudkort"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Har du ett ISA-ljudkort?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Kör \"alsaconf\" eller \"sndconfig\" efter installationen för att "
-"konfigurera ljudkortet."
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "Inget ljudkort hittades. Prova \"harddrake\" efter installationen."
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Grafiskt gränssnitt"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Nätverk & Internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
-msgstr "Proxyservrar"
+msgstr "Proxy-servrar"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "konfigurerad"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Säkerhetsnivå:"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Brandvägg"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "aktiverad"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "inaktiverad"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "Du har inte konfigurerat X. Är du säker på att du vill göra detta?"
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "Förbereder starthanterare..."
-
-#: steps_interactive.pm:1018
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"Du verkar ha en OldWorld eller okän maskin, yaboot-starthanteraren kommer "
-"inte att fungera Installationen fortsätter, men du behöver använda BootX "
-"eller något liknande för att starta datorn. Kernelargumentet för roten är "
-"root=%s"
+msgid "Preparing initial startup program..."
+msgstr "Förbereder initiellt uppstartsprogram..."
-#: steps_interactive.pm:1024
+#: steps_interactive.pm:1073
#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Vill du använda aboot?"
+msgid "Be patient, this may take a while..."
+msgstr "Ha tålamod, det här kan ta en stund..."
-#: steps_interactive.pm:1027
-#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Fel vid installationen av aboot.\n"
-"Vill du försöka ändå, fast det kan förstöra den första partitionen?"
-
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-"På den här säkerhetsnivån är tillgång till Windowspartitionen förbehållen "
+"På den här säkerhetsnivån är tillgång till Windowspartitionen begränsad till "
"administratören."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
-msgstr "Sätt in en tom diskett i diskettenhet %s"
+msgstr "Sätt in en tom diskett i enhet %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Skapar automatisk installationsdiskett"
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1340,51 +1563,16 @@ msgstr ""
"\n"
"Vill du verkligen avbryta nu?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
-msgstr "Gratulerar"
+msgstr "Grattis"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Starta om"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Genererar automatisk installationsdiskett"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Automatisk installation kan göras helt automatisk, om så önskas,\n"
-"vilket gör att den tar över hårddisken\n"
-"(syftet är att installera på en annan dator).\n"
-"\n"
-"Du kan tänkas vilja köra samma installation i repris.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Repris"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Automatiserad"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Spara paketval"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1396,7 +1584,7 @@ msgstr "Välj språk"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "Lokalisering"
#: steps_list.pm:17
#, c-format
@@ -1452,7 +1640,7 @@ msgstr "Partitionering"
msgid ""
"_: Keep these entry short\n"
"Formatting"
-msgstr "Formaterar"
+msgstr "Formatering"
#: steps_list.pm:29
#, c-format
@@ -1475,13 +1663,6 @@ msgid ""
"Users"
msgstr "Användare"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Nätverk"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1494,7 +1675,7 @@ msgstr "Starthanterare"
msgid ""
"_: Keep these entry short\n"
"Configure X"
-msgstr "Konfigurera X"
+msgstr "Ställ in X"
#: steps_list.pm:42
#, c-format
@@ -1523,74 +1704,3 @@ msgid ""
"_: Keep these entry short\n"
"Exit"
msgstr "Avsluta"
-
-#~ msgid "All"
-#~ msgstr "Alla"
-
-#~ msgid "TV card"
-#~ msgstr "Tv-kort"
-
-#~ msgid "Boot"
-#~ msgstr "Starta"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Autentisering"
-
-#~ msgid "Arkeia"
-#~ msgstr "Arkeia"
-
-#~ msgid "Flatout"
-#~ msgstr "Flatout"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "3D"
-#~ msgstr "3D"
-
-#~ msgid "CMS"
-#~ msgstr "CMS"
-
-#~ msgid "CRM"
-#~ msgstr "CRM"
-
-#~ msgid "2007 product line"
-#~ msgstr "2007 produktlinje"
-
-#~ msgid "Invictus Firewall"
-#~ msgstr "Invictus Brandvägg"
-
-#~ msgid "Discovery Live Mode"
-#~ msgstr "Discovery Live Läge"
-
-#~ msgid "How to register"
-#~ msgstr "Hur registrera dig"
-
-#~ msgid "Rpmdrake 2"
-#~ msgstr "Rpmdrake 2"
-
-#~ msgid "Mandriva Online Services"
-#~ msgstr "Mandriva Online Tjänster"
-
-#~ msgid "New Theme"
-#~ msgstr "Nytt Tema"
-
-#~ msgid "Web 2.0"
-#~ msgstr "Web 2.0"
-
-#~ msgid "Kaspersky"
-#~ msgstr "Kaspersky"
-
-#~ msgid "LinDVD"
-#~ msgstr "LinDVD"
-
-#~ msgid "Skype"
-#~ msgstr "Skype"
-
-#~ msgid "Transgaming/Cedega"
-#~ msgstr "Transgaming/Cedega"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
diff --git a/perl-install/install/share/po/ta.po b/perl-install/install/share/po/ta.po
index 92e3615fe..50bf04f1b 100644
--- a/perl-install/install/share/po/ta.po
+++ b/perl-install/install/share/po/ta.po
@@ -1,171 +1,230 @@
-# Drak X
-# Copyright (C) 2002 Mandriva
-#
-# NOTE: use UTF-8 only
-#
-# prabu <prabu_anand2000@yahoo.com>, 2002.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# prabu <prabu_anand2000@yahoo.com>, 2002
msgid ""
msgstr ""
-"Project-Id-Version: DrakX 1.0\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2002-09-06 00:35+0800\n"
-"Last-Translator: prabu anand <prabu_anand2000@yahoo.com>\n"
-"Language-Team: Tamil <tamilinix@yahoogroups.com>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Tamil (http://www.transifex.com/MageiaLinux/mageia/language/"
+"ta/)\n"
+"Language: ta\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 0.9.6\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: any.pm:155
-#, fuzzy, c-format
-msgid "Do you have further supplementary media?"
-msgstr "மேலும் உள்ளனவா?"
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: ../../advertising/02_IM_mageia.pl:1
#, c-format
-msgid ""
-"The following media have been found and will be used during install: %s.\n"
-"\n"
-"\n"
-"Do you have a supplementary installation medium to configure?"
+msgid "Make it yours!"
msgstr ""
-#: any.pm:166
+#: ../../advertising/03_IM_mageia.pl:1
#, c-format
-msgid "CD-ROM"
-msgstr "சிடி இயக்கி"
+msgid "Your choice!"
+msgstr ""
-#: any.pm:167
-#, fuzzy, c-format
-msgid "Network (HTTP)"
-msgstr "வலையமைப்பு %s"
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
-#: any.pm:168
-#, fuzzy, c-format
-msgid "Network (FTP)"
-msgstr "வலையமைப்பு %s"
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
-#: any.pm:169
+#: ../../advertising/06_IM_mageia.pl:1
#, c-format
-msgid "Network (NFS)"
+msgid "For kids"
msgstr ""
-#: any.pm:211
+#: ../../advertising/07_IM_mageia.pl:1
#, c-format
-msgid "URL of the mirror?"
+msgid "For family!"
msgstr ""
-#: any.pm:217
+#: ../../advertising/08_IM_mageia.pl:1
#, c-format
-msgid "URL must start with ftp:// or http://"
+msgid "For developers!"
msgstr ""
-#: any.pm:228
+#: ../../advertising/09_IM_mageia.pl:1
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr "தற்ேபாதுள்ள இணைப் பதிப்புதளங்களை அறிய மாண்ட்ேரக் இணையதளம் தொடர்புகொள்ளப்படுகிறது"
+msgid "Thank you!"
+msgstr ""
-#: any.pm:233
-#, fuzzy, c-format
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr ""
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
+#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr "தற்ேபாதுள்ள இணைப் பதிப்புதளங்களை அறிய மாண்ட்ேரக் இணையதளம் தொடர்புகொள்ளப்படுகிறது"
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
+msgstr ""
-#: any.pm:243
+#: any.pm:162
#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "பொதிகளை எங்கிருந்து இறக்க விரும்புகிறீர்கள்"
+msgid "Network (HTTP)"
+msgstr ""
+
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
+msgstr ""
-#: any.pm:273
+#: any.pm:164
+#, c-format
+msgid "Network (NFS)"
+msgstr ""
+
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr ""
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr ""
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr ""
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr ""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr ""
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "அடைவு"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr ""
-#: any.pm:341
-#, fuzzy, c-format
+#: any.pm:300
+#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
-msgstr "இதை திறக்க முடியவில்ைல%s: %s\n"
+msgstr ""
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "ஏற்கனவே நிறுவப்பட்டுள்ள பொதிகள் பார்ைவயிடப்படுகின்றன"
+msgid "Core Release"
+msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
+msgid "Tainted Release"
+msgstr ""
+
+#: any.pm:329
+#, c-format
+msgid "Nonfree Release"
msgstr ""
-#: any.pm:424
+#: any.pm:367
+#, c-format
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "ஏற்கனவே நிறுவப்பட்டுள்ள பொதிகள் பார்ைவயிடப்படுகின்றன"
+
+#: any.pm:593
#, c-format
msgid "Finding packages to upgrade..."
msgstr "மேம்படுத்தப்பட வேண்டிய பொதிகள் அறியப்படுகின்றன"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:612
#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+msgid "Removing packages prior to upgrade..."
msgstr ""
-"நீங்கள் கீழ்கானும் ேசவையகங்களை ேதர்வு செய்து உள்ளீர்கள்: %s\n"
-"\n"
-"\n"
-"இந்த ேசவையகங்கள் கொடாநிலையாக துவக்கப்படும். இவற்றில் இவை: \n"
-"வெளியிடப் பட்டபோது பாதுகாப்பு பிரச்சினை ஏதுமில்ைல. ஆனால் பின்னாளில்:\n"
-"கண்டுபிடிக்கப்படலாம்.\n"
-"அப்ேபாது அவற்றுக்கான மாற்றுப் பொதிகளை நிறுவவும்\n"
-"\n"
-"\n"
-"நிங்கள் நிச்சயம் இவற்ைற நிறுவ விரும்புகிறீர்களா?\n"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -174,82 +233,87 @@ msgid ""
"Do you really want to remove these packages?\n"
msgstr ""
-#: any.pm:1055
-#, fuzzy, c-format
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "%s என்ற கோப்ேபா படிப்பதில் பிழை நேர்ந்துள்ளது"
+
+#: any.pm:1283
+#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "கிழ்கானும் பொதிகள் நிறுவுவதற்கு தேர்வுச் செய்யப்பட்டுள்ளது"
+msgstr ""
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr ""
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "வலையமைப்பு"
-#: any.pm:1137
-#, fuzzy, c-format
+#: any.pm:1365
+#, c-format
msgid "Please choose a media"
-msgstr "தயவுசெய்து ேதர்ந்ெதடுக்கவும்"
+msgstr ""
-#: any.pm:1153
-#, fuzzy, c-format
+#: any.pm:1381
+#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "இந்த கோப்பு ஏற்கனவே உள்ளது. பயன்பாடுத்தி கொள்ளலாமா?"
+msgstr ""
-#: any.pm:1157
-#, fuzzy, c-format
+#: any.pm:1385
+#, c-format
msgid "Permission denied"
-msgstr "அனுமதிகள்"
+msgstr ""
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr ""
-#: any.pm:1226
-#, fuzzy, c-format
+#: any.pm:1454
+#, c-format
msgid "Bad media %s"
-msgstr "கெட்ட தகவல்"
+msgstr ""
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "வகிர்தல் முடிவதற்கு முன் திரைவேட்டு எடுக்க முடியாது"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "நிறுவி முடித்தவுடன் திரைவேட்டுகள் %s என்ற அடைவில் கிடைக்கும்"
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
-msgstr "நிறுவப்படுகிறது"
+msgstr ""
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "வடிவமைப்புகள்"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "நீங்கள் %s இதனையும் வடிவுட்ட வேண்டும்"
@@ -273,368 +337,458 @@ msgstr "வலையமைப்பாக்கங்கள் ஏற்றப
msgid "Bringing down the network"
msgstr "வலையமைப்பாக்கங்கள் முடக்கப்படுகிறது"
-#: media.pm:703 media.pm:714
-#, fuzzy, c-format
-msgid "Downloading file %s..."
-msgstr "கோப்புகளைக் கண்டுபிடி "
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
+
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr ""
-#: media.pm:861
-#, fuzzy, c-format
+#: media.pm:797
+#, c-format
msgid "Copying in progress"
-msgstr "இன்னும் தேடுதல் நடைபெறுகிறது"
+msgstr ""
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "நிச்சயம் இருக்க வேண்டியவை"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "முக்கியமானவை"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "மிக அழகானவை"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "அழகானவை"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "தேவைப்பட்டால்"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "இவரிக்க வில்லை"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr ""
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr ""
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr ""
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "வேலைக்களம்"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "அலுவல் கருவிகள்"
-#: share/meta-task/compssUsers.pl:15
-#, fuzzy, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
-msgstr "அலுவல் கருவிகள்(விாிதாள், நிகழ்த்தி,வரைபடக் கருவிகள்)"
-
-#: share/meta-task/compssUsers.pl:16
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr "அலுவல் கருவிகள்(விாிதாள், நிகழ்த்தி,வரைபடக் கருவிகள்)"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
+msgstr ""
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "விளையாட்டுகள்"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "விளையாட்டுகள்"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "பல்லூடக கணினி"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "பல்லூடக இயக்கிகள்/உருவாக்க நிரல்கள்"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "இணையக் கணினி"
-#: share/meta-task/compssUsers.pl:32
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:37
+#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
-msgstr "நீங்கள் மின்னஞ்சல், மற்றும் இணையத்ைத மேலோட உதவுங்கருவிகள்"
+msgstr ""
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "வலையமைப்புக் கணினி(வேண்டி)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "ssh முதலிய வலையமைப்புக் கருவிகள்"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "உங்கள் கணினியை எளிதாக வடிவமைக்க உதவுங்கருவிகள்"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "முனையக் கருவிகள்"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "முனையம்,தொகுப்பாளர்கள், கோப்பு மேலாளர்கள் மற்றும் ஓடுகள்"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "உருவாக்கம்"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "C மற்றும் C++ நூலக நிரல்கள்"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "உதவிநூல்"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "புத்தகங்கள் மற்றும் எப்படிச் செய்வது போன்ற உதவி நூல்"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "LSB- லினக்ஸ் தரக்கட்டுப்பாட்டுக்கு தேவையான நிரல்கள்."
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "இணையத்தள சேவையகம்"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr ""
-#: share/meta-task/compssUsers.pl:75
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:84
+#, c-format
msgid "Groupware"
-msgstr "கிரப்"
+msgstr "குரூப்வேர்"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "கோலாப் சேவகன்"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "நெருப்புச்சுவர்/வழிப்படுத்தி"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "இணைய நுழைவாயில்"
-#: share/meta-task/compssUsers.pl:83
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:92
+#, c-format
msgid "Mail/News"
-msgstr "/கோப்பு/_புதியது"
+msgstr ""
-#: share/meta-task/compssUsers.pl:84
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:93
+#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "மின்னஞ்சல் பரிமாறி"
+msgstr ""
-#: share/meta-task/compssUsers.pl:87
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:97
+#, c-format
msgid "Directory Server"
-msgstr "RAID இருந்து நீக்கு"
+msgstr ""
-#: share/meta-task/compssUsers.pl:91
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:102
+#, c-format
msgid "FTP Server"
-msgstr "NTP சேவையகம்"
+msgstr ""
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr ""
-#: share/meta-task/compssUsers.pl:95
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:107
+#, c-format
msgid "DNS/NIS"
-msgstr "DNS/NIS "
+msgstr ""
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:99
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:112
+#, c-format
msgid "File and Printer Sharing Server"
-msgstr "அச்சுப்ெபாறி சேவையகம்"
+msgstr ""
-#: share/meta-task/compssUsers.pl:100
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:113
+#, c-format
msgid "NFS Server, Samba server"
-msgstr "ஒலிப் பரிமாறி"
+msgstr ""
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "தரவுதளங்கள்"
-#: share/meta-task/compssUsers.pl:104
-#, fuzzy, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL/MySQL தரவுத்தள பரிமாறிகள்"
+#: share/meta-task/compssUsers.pl:118
+#, c-format
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr ""
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "இணையதள/கோப்புப் பாிமாற்றம்"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "அப்பாச்சி, ftpd போன்ற பரிமாற்று நிரல்கள்"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "மின்னஞ்சல்"
-#: share/meta-task/compssUsers.pl:113
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:129
+#, c-format
msgid "Postfix mail server"
-msgstr "மின்னஞ்சல் பரிமாறி"
+msgstr ""
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL/MySQL தரவுத்தள பரிமாறிகள்"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL/MariaDB தரவுத்தள பரிமாறிகள்"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "வலையமைப்பக பரிமாறி"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "NFS /சம்பா/பினாமி/ssh பரிமாறிகள்"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "வரைவியல்வழி சூழல்கள்"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "Kசாளரமைப்பு பணிக்கணினி"
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr "Kசாளரமைப்பு- ஓர் பயன்படுத்துவதற்கு எளிதான வரைவியல்வழி மேலாளர்"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "குேனாம் பணிக்கணினி"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr "ஓர் பயன்படுத்துவதற்கு எளிதான வரைவியல்வழி மேலாளர்"
-#: share/meta-task/compssUsers.pl:142
-#, fuzzy, c-format
-msgid "IceWm Desktop"
-msgstr "மேசைசெயலி"
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "மற்ற வரைவியல்வழி மேலாளர்கள்"
-#: share/meta-task/compssUsers.pl:147
-#, fuzzy, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "குேனாம், ஐஸ்விம் ஆகிய பயன்படுத்துவதற்கு எளிதான வரைவியல்வழி மேலாளர்கள்"
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "உதவிக்கருவிகள்"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
+#, c-format
msgid "SSH Server"
-msgstr "சேவையகம்"
+msgstr ""
-#: share/meta-task/compssUsers.pl:177
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:225
+#, c-format
msgid "Webmin"
-msgstr "வலைபடக் கருவி"
+msgstr ""
-#: share/meta-task/compssUsers.pl:178
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:226
+#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "பரிமாறி வடிவமைப்பு"
+msgstr ""
-#: share/meta-task/compssUsers.pl:182
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:230
+#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "வலையமைப்பாக்க வடிவமைப்பு "
+msgstr ""
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr ""
-#: share/meta-task/compssUsers.pl:187
-#, fuzzy, c-format
-msgid "Mandriva Wizards"
-msgstr "மாண்ட்ேரக் கட்டுப்பட்டு மையம்"
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr ""
-#: share/meta-task/compssUsers.pl:188
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:236
+#, c-format
msgid "Wizards to configure server"
-msgstr "அச்சுப்ெபாறி \"%s\" வடிவமைப்பு ெவற்றியடையவில்ைல"
+msgstr ""
#: steps.pm:85
#, c-format
@@ -645,7 +799,7 @@ msgstr ""
"பிழை நேர்ந்துள்ளது மன்னிக்கவும் எனக்கு என்ன செய்வதென்று தெரியவில்ைல\n"
"தொடர்ந்து செல்வது உங்கள் பொறுப்பு"
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -665,304 +819,352 @@ msgstr "தற்ேபாது இந்த `%s நிலைக்கு ச
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "மாண்ட்ேரக் லினக்ஸ் நிறுவல் %s"
+msgid "%s Installation %s"
+msgstr ""
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr ""
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"உங்கள் கணினியில் வளங்கள் குறைவாக உள்ளதால்\n"
-"மாண்ட்ேரக் லினக்ஸ் நிறுவுவதில் பிழை ஏற்படலாம். நீங்கள் உரைவழி நிறுவலாம்,\n"
-"சிடியில் நிறுவ தொடங்கும் போது `F1' என அழுத்தி விட்டு, `text'. என அடிக்கவும்"
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "பொதிகள் குழுத் தேர்வு"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "தனித்னி பொதியாக தேர்வுச் செய்"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "மெகா பைட்டில் மொத்த அளவு %d / %d"
+msgid "Unselect All"
+msgstr ""
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "தவறான பொதி"
+msgid "Total size: %d / %d MB"
+msgstr "மெகா பைட்டில் மொத்த அளவு %d / %d"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "வெளியீடு: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "அளவு: "
-#: steps_gtk.pm:347
-#, fuzzy, c-format
+#: steps_gtk.pm:426
+#, c-format
msgid "%d KB\n"
-msgstr "கிலோ பைட்டில் அளவு %d \n"
+msgstr ""
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "முக்கியத்துவம்: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "நீங்கள் இந்த பொதியை தேர்வு/நீக்க முடியாது"
-#: steps_gtk.pm:386
-#, fuzzy, c-format
+#: steps_gtk.pm:466
+#, c-format
msgid "due to missing %s"
-msgstr "kdesu இல்ைல"
+msgstr ""
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr ""
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr ""
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr ""
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr "இடமில்ைல என்பதால் நீங்கள் இந்த பொதியைத் தே`ர்வுச் செய்ய முடியாது"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "கிழ்கானும் பொதிகள் நிறுவுவதற்கு தேர்வுச் செய்யப்பட்டுள்ளது"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "கிழ்கானும் பொதிகள் நீக்கப்படுகிறது"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "இது கட்டாய பொதி. இதனை நீக்க முடியாது"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "இந்த பொதியை.நீக்க முடியாது. இது ஏற்கனவே நிறுவப்பட்டள்ளது"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "இந்த பொதியை.நீக்க முடியாது. இது நிகழ்நிலைப்படுத்த வேண்டிய பொதி"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "தானாக தேர்வுச் செய்யப்பட்டுள்ள பொதிகளைக் காட்டு"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "நிறுவு"
-#: steps_gtk.pm:436
-#, fuzzy, c-format
+#: steps_gtk.pm:519
+#, c-format
msgid "Load/Save selection"
-msgstr "பொதிகள் தேர்வு"
+msgstr ""
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "பொதிகள் தேர்ைவ நிகழ்நிலைப் படுத்து"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "குறைந்தபட்ச நிறுவல்"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "நிரல் மேலாண்மை"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "நிறுவ வேண்டிய பொதிகளை தேர்வுச் செய்யுங்கள் "
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "நிறுவப்படுகிறது"
-#: steps_gtk.pm:499
-#, fuzzy, c-format
+#: steps_gtk.pm:590
+#, c-format
msgid "No details"
-msgstr "விவரங்கள்"
+msgstr ""
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "தேவைப்படும் நேரம்"
+msgid "Time remaining:"
+msgstr ""
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "கணக்கிடப்படுகிறது"
+msgid "(estimating...)"
+msgstr ""
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d பொதிகள்"
-msgstr[1] "%d பொதிகள்"
+msgstr[0] ""
+msgstr[1] ""
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "உரை"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "வடிவமை"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "வடிவமைக்கப்படவில்ைல"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr ""
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "பிழை நேர்ந்துள்ளது மன்னிக்கவும்"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
+msgid "Please choose your keyboard layout"
msgstr "தயவுசெய்து உங்கள் விசைப்பலகை இட அமைவைத் தேர்வு செய்க "
-#: steps_interactive.pm:99
-#, fuzzy, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "உங்கள் பயன்பாட்டிற்கு உள்ள விசைப்பலகைகள் அனைத்தும் இங்கே கொடுக்கப்பட்டுள்ளன"
+#: steps_interactive.pm:109
+#, c-format
+msgid "Here is the full list of available keyboards:"
+msgstr ""
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "நிறுவுதுல்/ேமம்படுத்தல்"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "இது நிறுவுதலா அல்லது ேமம்படுத்தலா?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "நிறுவு"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr " %s ேமம்படுத்து"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
+msgid "Encryption key for %s"
msgstr ""
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
+msgid "Cancel installation, reboot system"
msgstr ""
-#: steps_interactive.pm:158
-#, fuzzy, c-format
-msgid "Encryption key for %s"
-msgstr "மறைக்குறியீட்டுச் சாவி"
-
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "New Installation"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "Configuring IDE"
-msgstr "IDE வடிவமைக்கப்படுகிறது..."
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"துவங்குநிரலை நிறுவ இடமில்ைல. நிறுவுதல் தொடரும். ஆனால் உங்கள் லினக்ஸ் இயக்க நிரலை துவக்க "
-"டிரேக்வட்ைட பயன்படுத்துங்கள்"
-#: steps_interactive.pm:236
-#, fuzzy, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr ""
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
msgstr ""
-"துவங்குநிரலை நிறுவ இடமில்ைல. நிறுவுதல் தொடரும். ஆனால் உங்கள் லினக்ஸ் இயக்க நிரலை துவக்க "
-"டிரேக்வட்ைட பயன்படுத்துங்கள்"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -977,73 +1179,71 @@ msgstr ""
"இந்த சிடி இல்ைலயென்றால் நீக்கு என்ற பொத்தானை கிளிக் செய்தால் இந்த சிடியிலிருந்து நிறுவல் "
"நின்றுவிடும்"
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "இருக்கும் பொதிகள் பார்ைவயிடப்படுகின்றன"
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-#: steps_interactive.pm:405
-#, fuzzy, c-format
+#: steps_interactive.pm:428
+#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-"தயவுசெய்து உங்கள் பொதி தேர்ைவ ஒரு நெகிழ்வட்டில் சேமிக்கவும்.\n"
-"இவ்வாறு சேமிக்கும் முறை தானியங்கி-நிறுவலை ஒத்து இருக்கும்"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "ஏற்றி"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "சேமி"
-#: steps_interactive.pm:415
-#, fuzzy, c-format
+#: steps_interactive.pm:438
+#, c-format
msgid "Bad file"
-msgstr "கோப்பை ஏற்று"
+msgstr ""
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "குனோம்"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "குறைந்தபட்ச நிறுவல்"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "நீங்கள் தேர்வு செய்துள்ள அளவு, இருக்குமிடத்ைத விட அதிகமாக உள்ளது"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "நிறுவல் முறை"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1052,82 +1252,126 @@ msgstr ""
"நீங்கள் பொதி குழுக்கள் எதனையும் தேர்வு செய்யவில்ைல.\n"
"தயவுசெய்து உங்களுக்கு தேவையானதை தேர்வு செய்யவும்"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "X உடன் வரைவியல்வழியிடல பயன்படுத்த இது தேவை"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "உதவி நூல்களுடன் (குறைந்தபட்சம் இது தேவை!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "மிகச்சிறிய நிறுவல்(urpmi கூட கிடையாது)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "நிறுவுதல் தொடங்குகிறது"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "%s பொதி நிறுவப்படுகிறது"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "பொதிகளை அடுக்குவதில் பிழை நேர்ந்துள்ளது"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "தொடர்ந்து செல்லலாமா?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr ""
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr ""
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr ""
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "பொதித் தேர்ைவச் சேமி"
+msgstr ""
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "பொதிகளை நிறுவுவதில் பிழை நேர்ந்துள்ளது"
+msgstr ""
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "நிறுவியபின் சேய்ய வேண்டிய வடிவமைப்புகள்"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "புதுப்பித்தல்கள்"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "கிழ்கானும் பொதிகள் நிறுவுவதற்கு தேர்வுச் செய்யப்பட்டுள்ளது"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr ""
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1147,140 +1391,97 @@ msgstr ""
"\n"
"இவற்ைற நிறுவ விருப்பமா ?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "இணைப் பதிப்புதளங்களில் தற்ேபாதுள்ள பொதிகளை அறிய இணையதளம் தொடர்புகொள்ளப்படுகிறது"
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr ""
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s இல் %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "வன்பொருள்"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "ஒலியட்ைட"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "உங்களிடம் ISA ஒலியட்ைட ஏதேனும் உள்ளனவா?"
-
-#: steps_interactive.pm:904
-#, fuzzy, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr "\"sndconfig\" என்ற நிரல் மூலம் உங்கள் ஒலியட்ைடயை வடிவமைக்க முடியும்"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"ஒலியட்ைட ஏதும் கண்டுபிடிக்க முடியவில்ைல. டிரேக்வன்ெபாருள் மாயாவியை பயன்படுத்துங்கள்"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "வரைவியல்வழி"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "வலையமைப்பும் இணையமும்"
-#: steps_interactive.pm:933
-#, fuzzy, c-format
+#: steps_interactive.pm:991
+#, c-format
msgid "Proxies"
-msgstr "பயனர்குறிப்பு: "
+msgstr ""
-#: steps_interactive.pm:934
-#, fuzzy, c-format
+#: steps_interactive.pm:992
+#, c-format
msgid "configured"
-msgstr "மறுவடிவமை"
+msgstr ""
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "பாதுகாப்பு நிலை"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "நெருப்புச்சுவர்"
-#: steps_interactive.pm:967
-#, fuzzy, c-format
+#: steps_interactive.pm:1026
+#, c-format
msgid "activated"
-msgstr "இப்போது துவக்கு"
+msgstr ""
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "முடமாக்கப்பட்டுள்ளது"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr ""
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "துவங்குநிரலை உருவாக்குகிறேன்..."
-
-#: steps_interactive.pm:1018
-#, fuzzy, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr "தயவுசெய்து நிறுவுவதற்கு ஆங்கிலத்ைத பயன்படுத்துங்கள்"
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "தயவுசெய்து நிறுவுவதற்கு ஆங்கிலத்ைத பயன்படுத்துங்கள்"
+msgid "Preparing initial startup program..."
+msgstr ""
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr "தயவுசெய்து நிறுவுவதற்கு ஆங்கிலத்ைத பயன்படுத்துங்கள்"
+msgid "Be patient, this may take a while..."
+msgstr ""
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "வெற்று நெகிழ்வட்ைட %s இயக்கியில் உள்ளிடவும்"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "தானியங்கி நிறுவல்வட்ைட உருவாக்கவும்"
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1291,52 +1492,16 @@ msgstr ""
"\n"
"நீங்கள் நிச்சயம் நிறுவுதலை விட்டு வெளியேற விரும்புகிறீர்களா?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "வாழ்த்துக்கள்"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "மறுெதாடக்கம்"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "தானியங்கி நிறுவல்வட்ைட உருவாக்கவும்"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"தானியங்கி நிறுவல்வட்டின் மூலம் நீங்கள் நிறுவலை ,\n"
-"முழுதும் தானாக நிறுவ வைக்கலாம்,\n"
-"இது இன்னும் பல கணினிகளில் இதே போல் நிறுவ,\n"
-"பயன்படலாம்,\n"
-",\n"
-"நீங்கள் மீண்டும் ஒருமுறை உங்கள் நிறுவலை மறு இயக்கம் செய்யலாம்,\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "மறு இயக்கம்"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "தானியங்கி"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "பொதித் தேர்ைவச் சேமி"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1427,13 +1592,6 @@ msgid ""
"Users"
msgstr "பயனர்கள்"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "வலையமைப்பு"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1476,64 +1634,6 @@ msgid ""
"Exit"
msgstr "வெளிச்ெசல்"
-#~ msgid "All"
-#~ msgstr "அனைத்து"
-
-#~ msgid "TV card"
-#~ msgstr "TV அட்ைட"
-
-#~ msgid "Boot"
-#~ msgstr "துவக்கம்"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "நல்குாிமை"
-
-#~ msgid "Gwenview"
-#~ msgstr "gwen பார்வை"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "%d பொதிகள்"
-#~ msgstr[1] "%d பொதிகள்"
-
-#~ msgid "%d packages"
-#~ msgstr "%d பொதிகள்"
-
-#~ msgid "Language"
-#~ msgstr "உங்கள் மொழியைத் தேர்வுச் செய்க"
-
-#~ msgid "License"
-#~ msgstr "அனுமதி"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "நிறுவல் வகையைத் தேர்வுச் செய்க"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "கணக்கிடப்படுகிறது"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "நிறுவ வேண்டிய பொதிகளை தேர்வுச் செய்யுங்கள்"
-
-#~ msgid "Users"
-#~ msgstr "பயனர்கள்"
-
-#~ msgid "Networking"
-#~ msgstr "வலையமைப்பு"
-
-#~ msgid "Configure X"
-#~ msgstr "X-ஐ வடிவமைக்கவும்"
-
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
-#~ msgstr ""
-#~ "உங்கள் கருவிற்கு இணையான கூறுகளை காணமுடியவில்ைல (%s கோப்ேபா கானவில்ைல), இதற்கு "
-#~ "அர்த்தம் நீங்கள் தவறான நிறுவுதட்ைட பயன்படுத்துகிறீர்கள் (தயவுசெய்து புதிய நிறுவுதட்ைட "
-#~ "உருவாக்குங்கள்)"
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "பொதிகளை எங்கிருந்து இறக்க விரும்புகிறீர்கள்"
diff --git a/perl-install/install/share/po/tg.po b/perl-install/install/share/po/tg.po
index 6f0054670..dce57d495 100644
--- a/perl-install/install/share/po/tg.po
+++ b/perl-install/install/share/po/tg.po
@@ -1,37 +1,87 @@
-# translation of DrakX-tg.po to Tajik
-# translation of DrakX-tg.po to Тоҷикӣ
-# Copyright (C) 2001,2002,2003,2004, 2005 Free Software Foundation, Inc.
-# 2004, infoDev, a World Bank organization
-# 2004, Khujand Computer Technologies, Inc.
-# 2004, KCT1, NGO
-# 2005, Youth Opportunities, NGO
-# Abrorova Hiromon, 2004
-# Roger Kovacs <rkovacs@khujand.org>, 2003.
-# Dilshod Marupov <dma165@hotmail.com>, 2003, 2004.
-# Murod Marupov <abdullovich@khujand.org>, 2004.
-# Bahromhon Bobojonov <bahrambabajanov@hotmail.com>, 2004.
-# Victor Ibragimov <youth_opportunities@tajikngo.org>, 2005.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Abrorova Hiromon, 2004
+# Bahromhon Bobojonov <bahrambabajanov@hotmail.com>, 2004
+# Dilshod Marupov <dma165@hotmail.com>, 2003-2004
+# Murod Marupov <abdullovich@khujand.org>, 2004
+# Roger Kovacs <rkovacs@khujand.org>, 2003
+# Victor Ibragimov <victor.ibragimov@gmail.com>, 2017
+# Victor Ibragimov <youth_opportunities@tajikngo.org>, 2005
msgid ""
msgstr ""
-"Project-Id-Version: DrakX-tg\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2005-09-17 16:03+0500\n"
-"Last-Translator: Victor Ibragimov <youth_opportunities@tajikngo.org>\n"
-"Language-Team: Tajik\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Victor Ibragimov <victor.ibragimov@gmail.com>\n"
+"Language-Team: Tajik (http://www.transifex.com/MageiaLinux/mageia/language/"
+"tg/)\n"
+"Language: tg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.10\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Ҳамроҳ шавед!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Соҳиб шавед!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "Интихоби шумо!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Абзорҳои ҳуҷҷатнигорӣ"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Дилхушии хонагӣ"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "Барои кӯдакон"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "Барои оила!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "Барои барномасозон!"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Ташаккур!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Озод бошед!"
-#: any.pm:155
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
-msgstr "Шумо боз дигар расонаи иловагиро доред?"
+msgstr "Шумо боз дигар расонаи иловагӣ доред?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -39,144 +89,163 @@ msgid ""
"\n"
"Do you have a supplementary installation medium to configure?"
msgstr ""
+"Медиаи зерин пайдо шуд ва ҳангоми насб истифода бурда мешавад: %s.\n"
+"\n"
+"\n"
+"Шумо барои танзим кардани насб ягон медиаи иловагӣ доред?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Шабака (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Шабака (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Шабакаи (NFS)"
-#: any.pm:211
+#: any.pm:224
#, c-format
-msgid "URL of the mirror?"
-msgstr "URL-и оина?"
+msgid "NFS setup"
+msgstr "Танзимкунии NFS"
-#: any.pm:217
+#: any.pm:225
#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr ""
+msgid "Please enter the hostname and directory of your NFS media"
+msgstr "Лутфан, номи мизбон ва директорияи медиаи NFS-и худро ворид намоед"
-#: any.pm:228
+#: any.pm:229
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Барои ба даст даровардани рӯйхати қуттиҳои дастрас пайвастшавӣ ба Mandriva "
-"Linuxweb site ба роҳ монда шудааст..."
+msgid "Hostname missing"
+msgstr "Номи мизбон намерасад"
-#: any.pm:233
-#, fuzzy, c-format
+#: any.pm:230
+#, c-format
+msgid "Directory must begin with \"/\""
+msgstr "Директория бояд бо \"/\\” сар карда шавад"
+
+#: any.pm:234
+#, c-format
+msgid "Hostname of the NFS mount ?"
+msgstr "Номи мизбонро барои васли NFS ворид мекунед?"
+
+#: any.pm:235
+#, c-format
+msgid "Directory"
+msgstr "Директория"
+
+#: any.pm:265
+#, c-format
+msgid "Supplementary"
+msgstr "Иловагӣ"
+
+#: any.pm:300
+#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+"Can't find a package list file on this mirror. Make sure the location is "
+"correct."
msgstr ""
-"Барои ба даст даровардани рӯйхати қуттиҳои дастрас пайвастшавӣ ба Mandriva "
-"Linuxweb site ба роҳ монда шудааст..."
+"Файли рӯйхати бастаҳоро дар ин оина ёфта наметавонад. Мутмаин шавед, ки "
+"ҷойгиршавӣ дуруст аст."
-#: any.pm:243
+#: any.pm:325
#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Оинаро интихоб намоед, ки аз он қуттиҳоро гирифта мешавад"
+msgid "Core Release"
+msgstr "Релизи мағз"
-#: any.pm:273
+#: any.pm:327
#, c-format
-msgid "NFS setup"
-msgstr "Танзими NFS"
+msgid "Tainted Release"
+msgstr "Релизи шахсӣ"
-#: any.pm:274
+#: any.pm:329
#, c-format
-msgid "Please enter the hostname and directory of your NFS media"
-msgstr ""
+msgid "Nonfree Release"
+msgstr "Релизи пулакӣ"
-#: any.pm:278
+#: any.pm:367
#, c-format
-msgid "Hostname missing"
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
+"Якчанд сахтафзор дар компютери шумо сахтафзори ғайри ройгонро талаб мекунад, "
+"то ки драйверҳои нармафзори ройгон тавонанд кор кунанд."
-#: any.pm:279
+#: any.pm:368
#, c-format
-msgid "Directory must begin with \"/\""
-msgstr ""
+msgid "You should enable \"%s\""
+msgstr "Шумо бояд \"%s\"-ро фаъол кунед"
-#: any.pm:283
+#: any.pm:419
#, c-format
-msgid "Hostname of the NFS mount ?"
-msgstr ""
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "\"%s\" дорои қисмҳои гуногуни системаҳо ва барномаҳои он мебошад."
-#: any.pm:284
+#: any.pm:420
#, c-format
-msgid "Directory"
-msgstr "Феҳрист"
+msgid "\"%s\" contains non free software.\n"
+msgstr "\"%s\" дорои нармафзори ғайри ройгон мебошад.\n"
-#: any.pm:306
+#: any.pm:421
#, c-format
-msgid "Supplementary"
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
msgstr ""
+"Он инчунин дорои нармафзоре мебошад, ки барои кори баъзе дастгоҳҳо зарур аст "
+"(масалан: баъзе кортҳои графикии ATI/AMD, баъзе кортҳои шабакавӣ, баъзе "
+"кортҳои RAID, ва ғайра...)"
-#: any.pm:341
+#: any.pm:422
#, c-format
msgid ""
-"Can't find a package list file on this mirror. Make sure the location is "
-"correct."
-msgstr "Пайдо кардани файли hdlist дар ин оина нашуда истодааст."
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"\"%s\" дорои нармафзоре мебошад, ки дар баъзе кишварҳо ба сабаби патентҳои "
+"нармафзор пахш карда намешавад."
-#: any.pm:375
+#: any.pm:423
#, c-format
-msgid "Looking at packages already installed..."
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
msgstr ""
-"Ҷустуҷи бастаи барномаҳои аллакай коргузорӣ шуда иҷро шуда истодааст..."
+"Он инчунин дорои нармафзоре аз сохти нави \"%s\" бо қобилиятҳои иловагӣ "
+"мебошад."
-#: any.pm:382
+#: any.pm:429
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr ""
+msgid "Here you can enable more media if you want."
+msgstr "Агар хоҳед, метавонед медиаи иловагиро фаъол кунед."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Ин медиа навсозиҳои бастаҳоро барои медиаи \"%s\\” таъмин менамояд"
-#: any.pm:424
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Дар ҳоли ҷустуҷӯи бастаҳои насбшуда..."
+
+#: any.pm:593
#, c-format
msgid "Finding packages to upgrade..."
-msgstr "Ҷустуҷӯи қуттиҳо барои нав намудан иҷро мешавад..."
+msgstr "Дар ҳоли ҷустуҷӯи бастаҳо барои такмил..."
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:612
#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
-msgstr ""
-"Шумо хидматрасон(ҳо)и зеринро интихоб намудаед: %s\n"
-"\n"
-"\n"
-"Мувофиқи пешфарз ин хидматрасонҳо фаъол карда шудаанд. Онҳо ягон муаммоҳои\n"
-"маълуми бо бехатарӣ вобаста бударо надоранд, лекин муаммоҳои нав пайдо шуда\n"
-"метавонад. Дар ин ҳолат шумо бояд онҳоро бо қадри имкон ба таври фаврӣ нав\n"
-"намоед.\n"
-"\n"
-"\n"
-"Шумо дар ҳақиқат ин хидматрасонҳоро коргузорӣ карданӣ ҳастед?\n"
+msgid "Removing packages prior to upgrade..."
+msgstr "Дар ҳоли тозакунии бастаҳо пеш аз такмил..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -184,91 +253,95 @@ msgid ""
"\n"
"Do you really want to remove these packages?\n"
msgstr ""
-"Барои имконияти густариши системаи шумо бастаи барномаҳои зерин, хориҷ карда "
-"мешаванд: %s\n"
+"Барои иҷозати такмили системаи шумо, бастаҳои зерин тоза карда мешаванд: %s\n"
"\n"
"\n"
-"Дар ҳақиқат мехоҳед, ки ин бастаи барномаҳоро хориҷ кунед?\n"
+"Шумо дар ҳақиқат мехоҳед, ки бастаҳои зеринро тоза намоед?\n"
-#: any.pm:1055
-#, fuzzy, c-format
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Хатои хониши файли %s"
+
+#: any.pm:1283
+#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "- %s хориҷ карда шуд\n"
+msgstr "Ном(ҳо)и диск(ҳо)и зерин иваз карда шуд(аанд):"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
-msgstr ""
+msgstr "%s (номи собиқ: %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Шабака"
-#: any.pm:1137
-#, fuzzy, c-format
+#: any.pm:1365
+#, c-format
msgid "Please choose a media"
-msgstr "Илтимос интихоб кунед"
+msgstr "Лутфан, медиаро интихоб намоед"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "Файл аллакай вуҷуд дорад. Истифода барем?"
+msgstr "Файл аллакай вуҷуд дорад. Онро аз нав сабт мекунед?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
-msgstr "Рухсат инкор шуд"
+msgstr "Иҷозат нест"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
-msgstr ""
+msgstr "Номи NFS-и нодуруст"
-#: any.pm:1226
-#, fuzzy, c-format
+#: any.pm:1454
+#, c-format
msgid "Bad media %s"
-msgstr "миёнаи иловашуда %s"
+msgstr "Медиаи %s нодуруст аст"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
-msgstr "Сохтани экранаксҳо пеш аз тақсимкунӣ номумкин"
+msgid "Cannot make screenshots before partitioning"
+msgstr "Таҳия кардани аксҳои экран пеш аз қисмбандӣ ғайриимкон аст"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
-msgstr "ЭкранАксҳо баъд аз коргузориш дар %s дастрас мешаванд"
+msgstr "Аксҳои экран баъд аз насб дар %s дастрас мешаванд"
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
-msgstr "Коргузорӣ шуда истодааст"
+msgstr "Насбкунӣ"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
-msgstr "Батанзимдарорӣ"
+msgstr "Танзимкунӣ"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
-msgstr "Шумо бояд %s-ро шаклбандӣ намоед"
+msgstr "Шумо инчунин бояд %s-ро формат кунед"
#: interactive.pm:16
#, c-format
@@ -276,392 +349,483 @@ msgid ""
"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
"You can find some information about them at: %s"
msgstr ""
-"Якчанд сахтафзор дар компютери шумо барои кор кардан ба ронандаҳои ``худ'' "
-"мӯҳтоҷ аст.\n"
-"Шумо ахборотро оиди онҳо дар %s ёфта метавонед"
+"Барои кори баъзе сахтафзор дар компютери шумо драйверҳои “пулакӣ” лозиманд.\n"
+"Шумо метавонед маълумотро дар бораи онҳо аз ин ҷо гиред: %s"
#: interactive.pm:22
#, c-format
msgid "Bringing up the network"
-msgstr "Шабака оварда мешавад"
+msgstr "Дар ҳоли фаъолсозии шабака"
#: interactive.pm:27
#, c-format
msgid "Bringing down the network"
-msgstr "Шабака фаромада истодааст"
+msgstr "Дар ҳоли ғайифаъолсозии шабака"
-#: media.pm:703 media.pm:714
-#, fuzzy, c-format
-msgid "Downloading file %s..."
-msgstr "Файлҳо фиристода шуда истодааст..."
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr "Лутфан, интизор шавед, файл бозёбӣ карда мешавад"
+
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "медиаро илова карда наметавонад"
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
-msgstr ""
+msgstr "Нусхабардории баъзе бастаҳо ба диск барои истифодаи оянда"
-#: media.pm:861
-#, fuzzy, c-format
+#: media.pm:797
+#, c-format
msgid "Copying in progress"
-msgstr "Муаяйнкунӣ дар раванди иҷроиш қарор дорад"
+msgstr "Дар ҳоли нусхабардорӣ"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "бояд дошта бошад"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
-msgstr "ҳатмӣ"
+msgstr "Ҳатмӣ аст"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "хеле хуб"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "хуб"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "мумкин аст"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "Дар ҳоли гирифтани маълумоти баста аз метаиттилооти XML..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Ягон иттилооти xml барои медиаи \"%s\\” вуҷуд надорад, танҳо натиҷаи қисмӣ "
+"барои бастаи %s пайдо шуд"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Тафсилот нест"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"Баъзе бастаҳои дархостшуда аз тарафи %s насб карда намешаванд:\n"
+"%s"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "Истгоҳи корӣ"
+msgid "An error occurred:"
+msgstr "Хатое ба вуҷуд омад:"
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Истгоҳи Кории Идораӣ"
+msgid "A fatal error occurred: %s."
+msgstr "Хатои ҷиддӣ ба вуҷуд омад: %s."
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
-msgstr ""
-"Барномаҳои идорӣ: пардозандаҳои матнӣ (OpenOffice.org Writer, Kword), "
-"ҷадвалҳои густурда (OpenOffice.org Calc, Kspread), азназаргузарҳои PDF ва "
-"ғайра"
+msgid "Do not ask again"
+msgstr "Дигар напурсед"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d интиқоли насбкунӣ иҷро нашуд"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Насбкунии бастаҳо иҷро нашуд:"
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "Компютери корӣ"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Компютери кории идорӣ"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Барномаҳои идораӣ: пардозандаи матнӣ (kword, abiword), ҷадвалҳои густурда "
-"(kspread, gnumeric), pdf баррасҳо ва ғайра"
+"Барномаҳои ҳуҷҷатнигорӣ: коркарди ҳуҷҷатҳои матнӣ (LibreOffice Writer, "
+"Kword), ҷадвалҳои электронӣ (LibreOffice Calc, Kspread), тамошобини PDF ва "
+"ғайра"
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
-msgstr "Истгоҳи бозӣ"
+msgstr "Компютери бозӣ"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "Барномаҳои шавқовар: аркадаҳо, бозиҳои рӯи мизӣ, стратегия ва ғайра"
+msgstr "Барномаҳои дилхушӣ: қаторравоқ, бозиҳои рӯи мизӣ, стратегия ва ғайра"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
-msgstr "Истгоҳи бисёрмуҳита"
+msgstr "Компютери мултимедиа"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
-msgstr "Барномаҳо барои бозикунии/таҳрири овоз ва видео"
+msgstr "Барномаҳо барои бозӣ/коркарди овоз ва видео"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
-msgstr "Истгоҳи Интернет"
+msgstr "Компютери интернетӣ"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-"Маҷмӯи асбобҳо барои хондан ва фиристодани пост ва ахборот (mutt, tin..) ва "
-"баррасии Web"
+"Маҷмӯи абзорҳо барои хондан ва фиристодани почта ва ахборот (mutt, tin..) ва "
+"тамошо дар Интернет"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
-msgstr "Компютери Шабакавӣ (мизоҷ)"
+msgstr "Компютери шабакавӣ (мизоҷ)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
-msgstr "Мизоҷон барои қарордодҳои гуногун, аз он ҷумла ssh"
+msgstr "Мизоҷон барои протоколҳои гуногун, аз он ҷумла ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
-msgstr "Асбобҳо барои осоннамоии танзими компютери шумо"
+msgstr "Абзорҳо барои осонсозии танзими компютери шумо"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
-msgstr "Асбобҳои Нозиргоҳ"
+msgstr "Абзорҳои консолӣ"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
-msgstr "Муҳаррирон, пардозандаи фармонҳо, асбобҳои файлӣ, поёнаҳо"
+msgstr "Муҳаррирон, пардозгари фармонҳо, абзорҳои файлӣ, терминалҳо"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
-msgstr "Коркард"
+msgstr "Барномарезӣ"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
-msgstr "Китобхонаи коркарди C ва C++, барномаҳо ва файлҳои дохилшаванда"
+msgstr "Китобхонаи барномарезии C ва C++, барномаҳо ва файлҳои дохилшаванда"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
-msgstr "Санадсозӣ"
+msgstr "Ҳуҷҷатҳо"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
-msgstr "Китобҳо ва Чӣ тавр дар Linux ва Таъминоти Барномавии Озод"
+msgstr "Китобҳо ва дастурамалҳо барои Linux ва Нармафзори ройгон"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
-msgstr "Манбаи Низоммеъёри Linux. Пуштибонии замимаҳои коргардонони сеюм"
+msgstr "Манбаъи стандартии Linux. Дастгирии барномаҳои тарафҳои сеюм"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
-msgstr "Хидматгори Веб"
+msgstr "Сервери веб"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
-msgstr "Groupware"
+msgstr "Нармафзори кори гурӯҳӣ"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
-msgstr "Хидматрасони Kolab"
+msgstr "Сервери Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
-msgstr "Фейрвол/Масиргузор"
+msgstr "Девори оташ/масиргузор"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
-msgstr "Даричаи тадохули Интернет"
+msgstr "Гузаргоҳи Интернетӣ"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
-msgstr "Пост/Ахборот"
+msgstr "Почта/Ахборот"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Хидматрасони постии Postfix, Inn хидматрасони ахборотӣ"
+msgstr "Сервери почтаи Postfix, сервери ахбороти Inn"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
-msgstr "Хидматрасони Феҳрист"
+msgstr "Сервери директория"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
-msgstr "Хидматрасони FTP"
+msgstr "Сервери FTP"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "Номи Доменӣ ва Хидматрасони Ахбороти Шабакавӣ"
+msgstr "Номи доменӣ ва сервери иттилооти шабакавӣ"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
-msgstr "Хидматрасони Истифодабарандаи Файл ва Чопгар"
+msgstr "Сервери мубодилакунии файлҳо ва принтерҳо"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
-msgstr "Хидматрасони NFS, хидматрасони Samba"
+msgstr "Сервери NFS, сервери Samba"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
-msgstr "Манбаи маълумот"
+msgstr "Пойгоҳи иттилоотӣ"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL ва MySQL Хидматрасони Манбаи Додаҳо"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "PostgreSQL ва сервери пойгоҳи иттилоотии MariaDB"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
-msgstr "Пост"
+msgstr "Почта"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
-msgstr "Хидматрасони пости Postfix"
+msgstr "Сервери почтаи Postfix"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "Хидматрасони манбаи маълумоти PostgreSQL ё MySQL"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL ё сервери пойгоҳи иттилоотии MariaDB"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
-msgstr "Хидматрасони Компютери Шабакавӣ"
+msgstr "Сервери компютерии шабакавӣ"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "NFS хидматрасон, SMB хидматрасон, Proxy хидматрасон, ssh хидматрасон"
+msgstr "Сервери NFS, сервери SMB, сервери Proxy, сервери ssh"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
-msgstr "Муҳити Графикӣ"
+msgstr "Муҳити графикӣ"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "Истгоҳи кории KDE"
+msgid "Plasma Workstation"
+msgstr "Компютерии кории Plasma"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr ""
-"K Муҳити Мизи Корӣ, ин муҳити графикии асосӣ бо маҷмӯи асбобҳои ҳамроҳкунанда"
+"Муҳити мизи кории KDE (The K Desktop Environment), муҳити графикии асосӣ бо "
+"маҷмӯи абзорҳои иловашуда"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
-msgstr "Истгоҳи кории Gnome"
+msgstr "Компютери кории GNOME"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
+msgstr "Муҳити графикӣ бо маҷмӯи барномаҳои корбарӣ ва абзорҳои мизи корӣ"
+
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
msgstr ""
-"Муҳити графикӣ бо маҷмӯи замимаҳо ва мизи кории бо корванд иртиботи дӯстона "
-"дошта"
-#: share/meta-task/compssUsers.pl:142
-#, fuzzy, c-format
-msgid "IceWm Desktop"
-msgstr "Мизи Кории Ғалатёб"
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Муҳити графикии сабук бо маҷмӯи барномаҳои корбарӣ ва абзорҳои мизи корӣ"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "Компютери кории MATE"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Компютери кории Cinnamon"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Муҳити графикӣ дар асоси GNOME"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "Мизи кории LXQt"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "Бандари насли нави QT барои муҳити мизи кории сабук"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr "Муҳити графикии тезкори сабук бо пайгирии муайяншуда"
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "Мизи кории LXDE"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Муҳити графикии тезкори сабук"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
-msgstr "Дигар Мизҳои Кории Графикӣ"
+msgstr "Мизҳои кории графикии дигар"
-#: share/meta-task/compssUsers.pl:147
-#, fuzzy, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm, ва ғайра"
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr "Барномаи Window Maker, Fvwm ва ғайра"
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
-msgstr "Дастгоҳҳо"
+msgstr "Барномаҳои корбарӣ"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
-msgstr "Хидматгори SSH"
+msgstr "Сервери SSH"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Батанзимдарори Хидматрасони Дурдасти Webmin"
+msgstr "Танзими дурдасти сервер тавассути Webmin"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Дастгоҳҳои Шабака/Дидабонӣ"
+msgstr "Барномаҳои корбарии шабакавӣ/назоратӣ"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
-msgstr "Дидабонии асбобҳо, ҳисоботи ҷараёнҳо, tcpdump, nmap, ..."
+msgstr "Абзорҳои назоратӣ, коркарди ҳисобҳо, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Устодҳои Mandriva"
+msgid "Mageia Wizards"
+msgstr "Устодҳои Mageia"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
-msgstr "Устод барои танзимдарории хидматрасон"
+msgstr "Устодҳо барои танзимкунии сервер"
#: steps.pm:85
#, c-format
@@ -669,11 +833,10 @@ msgid ""
"An error occurred, but I do not know how to handle it nicely.\n"
"Continue at your own risk."
msgstr ""
-"Хатогие пайдо шуд, аммо ман намедонам, ки чӣ тавр онро дуруст кор карда "
-"бароям.\n"
+"Хатое ба вуҷуд омад, вале ман намедонам, чӣ тавр бояд ислоҳ карда шавад.\n"
"Мувофиқи таваккали худ давом диҳед."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -681,326 +844,388 @@ msgid ""
"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
"\"\n"
msgstr ""
-"Баъзе бастаи барномаҳои муҳим дуруст коргузорӣ нашудаанд.\n"
-"Ё гардонандаи cdrom ё диски фишурда хароб гаштаанд.\n"
-"Диски дар компютер гузошташударо ба воситаи фармони \"rpm -qpl media/main/*."
-"rpm санҷед\"\n"
+"Баъзе бастаҳои муҳим нодуруст насб карда шудаанд.\n"
+"Эҳтимол аст, ки драйви cdrom ё ин ки cdrom-и шумо вайрон аст.\n"
+"Кори cdrom-ро дар компютери омода ба воситаи фармони \"rpm -qpl media/main/*."
+"rpm\\” санҷед\n"
#: steps_auto_install.pm:71 steps_stdio.pm:27
#, c-format
msgid "Entering step `%s'\n"
-msgstr "Гузориш ба қадами `%s'\n"
+msgstr "Гузариш ба қадами `%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Коргузории Mandriva Linux %s"
+msgid "%s Installation %s"
+msgstr "%s Насбкунӣ %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
-msgstr "<Tab>/<Alt-Tab> байни элементҳо"
+msgstr "Мубодилаи байни унсурҳо тавассути <Tab>/<Alt-Tab>"
+
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Сервери Xorg барои оғоз суръати суст дорад. Лутфан, интизор шавед..."
-#: steps_gtk.pm:189
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"Дар системи шумо захира кам аст. Ҳангоми коргузорӣ намудани Mandriva Linux "
-"шумо метавонед бо муаммоҳо дучор гардед. Агар ин рӯй диҳад, онгоҳ шумо "
-"метавонед коргузории матниро ба амал оред. Ҳангоми худборкунии CDROM ба`F1' "
-"ангушт занед ва сониян ба `text' дохил шавед."
+"Системаи шумо манбаъҳои кофӣ надорад. Баъзе мушкилиҳои насбкунии %s "
+"метавонанд пайдо шаванд. Агар ягон мушкилӣ пайдо шавад, шумо метавонед "
+"насбкунӣ дар реҷаи матнӣ кӯшиш кунед. Дар ин маврид,\n"
+"ҳангоми роҳандозӣ тавассути CDROM тугмаи `F1'-ро пахш кунед ва ба реҷаи "
+"матнӣ (text) гузаред."
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Интихоби медиа"
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Насб кардани мизи кории %s Plasma"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Насб кардани мизи кории %s GNOME"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Насбкунии фармоишӣ"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Мизи кории Plasma"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "Мизи кории GNOME"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Мизи кории фармоишӣ"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Пешнамоиши мизи кории '%s'"
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Барои дидани пешнамоиш дар сурати калонтар, ба тасвирҳо зер кунед"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
-msgstr "Интихоби Гурӯҳи Қуттиҳо"
+msgstr "Интихоби гурӯҳи бастаҳо"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
-msgstr "Интихоби қуттиҳои алоҳида"
+msgstr "Интихоби бастаҳои алоҳида"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Андозаи умумӣ: %d / %d MB"
+msgid "Unselect All"
+msgstr "Лағв кардани интихоби пурра"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Қуттии бад"
+msgid "Total size: %d / %d MB"
+msgstr "Андозаи умумӣ: %d / %d МБ"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
-msgstr "Нусха: "
+msgstr "Версия: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Ҳаҷм: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
-msgstr "%d Кб\n"
+msgstr "%d КБ\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
-msgstr "Ҳатмӣ: "
+msgstr "Муҳиммӣ: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
-msgstr "Шумо интихоб/рад кардани ин бастаи барномаҳоро, карда наметавонед"
+msgid "You cannot select/unselect this package"
+msgstr "Шумо наметавонед, ки ин бастаро интиҳоб/лағв кунед:"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
-msgstr "мувофиқи мавҷуд набудани %s"
+msgstr "ба сабаби мавҷуд набудани %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
-msgstr "аз сабаби %s-и қонеънагашта"
+msgstr "ба сабаби номувофиқати %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
-msgstr "барои пешравӣ кӯшиш намудан %s"
+msgstr "дар ҳоли коргузории %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
-msgstr "Барои нигоҳ доштани %s"
+msgstr "барои нигоҳ доштани %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
-"Шумо ин қуттиро интихоб карда наметавонед, зеро барои кор гузоштани он ҷой "
-"кофӣнест"
+"Шумо ин бастаро интихоб карда наметавонед, зеро ки барои насб кардан он ҷой "
+"кофӣ нест"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
-msgstr "Қуттиҳои зерин коргузорӣ хоҳад шуд"
+msgstr "Бастаҳои зерин насб карда мешаванд"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
-msgstr "Қуттиҳои навбатӣ бояд хориҷ гардад"
+msgstr "Бастаҳои зерин тоза карда мешаванд"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
-msgstr "Ин қуттии зарур мебошад, онро бекор карда намешавад"
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr "Ин бастаи зарур мебошад, лағви интихоби онро бекор карда намешавад"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr ""
-"Шумо интихоби ин бастаи барномаҳоро рад карда наметавонед. Он аллакай "
-"коргузорӣ шудааст"
+"Шумо интихоби ин бастаи барномаҳоро рад карда наметавонед. Он аллакай насб "
+"карда шудааст"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
-msgstr "Шумо интихоби ин қуттиро бекор карда наметавонед. он бояд нав гардад"
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr ""
+"Шумо интихоби ин бастаро бекор карда наметавонед. Он бояд такмил дода шавад."
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
-msgstr "Ба таври автоматӣ қуттиҳои интихобшударо нишон диҳед"
+msgstr "Намоиш додани бастаҳои интихобшуда ба таври худкор"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
-msgstr "Коргузоштан"
+msgstr "Насб кардан"
-#: steps_gtk.pm:436
-#, fuzzy, c-format
+#: steps_gtk.pm:519
+#, c-format
msgid "Load/Save selection"
-msgstr "Интихоби қуттӣ"
+msgstr "Бор кардан/захира кардани интихоб"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
-msgstr "Интихоби қуттиҳо нав карда мешавад"
+msgstr "Навсозии интихоби бастаҳо"
+
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
-#: steps_gtk.pm:442
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
-msgstr "Коргузории хурдтарин"
+msgstr "Насбкунии камин"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
-msgstr "Идоракунии Нармафзор"
+msgstr "Идоракунии нармафзор"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
-msgstr "Бастаи барномаҳоеро, ки коргузорӣ кардан мехоҳед, интихоб намоед"
+msgstr "Бастаҳоеро, ки мехоҳед насб кунед, интихоб намоед"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
-msgstr "Коргузорӣ шуда истодааст"
+msgstr "Дар ҳоли насбкунӣ"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
-msgstr "Тафсилот нест"
+msgstr "Ягон тафсилот нест"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Вақти боқимонда "
+msgid "Time remaining:"
+msgstr "Вақти боқимонда:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Баҳодиҳии тахминӣ"
+msgid "(estimating...)"
+msgstr "(баҳодиҳӣ...)"
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d қуттиҳо"
-msgstr[1] "%d қуттиҳо"
+msgstr[0] "%d баста"
+msgstr[1] "%d баста"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
-msgstr "Ҷамбаст"
+msgstr "Ҷамъбаст"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
-msgstr "Танзим додан"
+msgstr "Танзим кардан"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
-msgstr "танзимдода нашуда"
+msgstr "танзимнашуда"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-"Расонаҳои коргузории зерин пайдо карда шудаанд.\n"
-"Агар баъзеи онҳоро партофтан хоҳед, онҳоро дар айни замон интихоб накарда "
-"метавонед."
+"Медиаи насбкунии зерин пайдо карда шуд.\n"
+"Агар шумо хоҳед, ки баъзеи онҳоро истифода набаред, интихоби онҳоро лағв "
+"кунед."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
+"Шумо метавонед пеш аз оғози насб муҳтавои дискҳои CD-ро ба диски компютери "
+"худ нусха бардоред.\n"
+"Ҳамин тавр насб аз драйви диски компютерӣ идома дода мешавад ва баъд аз "
+"насби пурра бастаҳо дар система дастрас мешаванд."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
-msgstr ""
+msgstr "Нусхабардории ҳамаи дискҳои CD"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
-msgstr "Хатогӣ рух дод"
+msgstr "Хатое ба вуҷуд омад"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Лутфан, ороиши забонакро интихоб кунед."
+msgid "Please choose your keyboard layout"
+msgstr "Лутфан, тарҳбандии клавиатураи худро интихоб кунед"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Дар ин ҷо рӯйхати пурраи забонакҳои имконпазир дода шудааст"
+msgid "Here is the full list of available keyboards:"
+msgstr "Рӯйхати пурраи клавиатураҳои дастрас:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
-msgstr "Кор гузоштан/Афзоиш додан"
+msgstr "Насбкунӣ/Тақмилдиҳӣ"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
-msgstr "Ин коргузорӣ аст ё навсозӣ?"
+msgstr "Шумо насб мекунед ё такмил медиҳед?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
-msgstr "Коргузоштан"
+msgstr "Насбкунӣ"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
-msgstr "Афзоиш %s"
+msgstr "Такмилдиҳии %s"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
+msgid "Encryption key for %s"
+msgstr "Калиди рамзгузорӣ барои %s"
-#: steps_interactive.pm:158
+#: steps_interactive.pm:217
#, c-format
-msgid "Encryption key for %s"
-msgstr "Дагмаи рамздошта барои %s"
+msgid "Cancel installation, reboot system"
+msgstr "Бекор кардани насб, бозоғозии система"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "New Installation"
+msgstr "Насби нав"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "Configuring IDE"
-msgstr "IDE ба танзим дароварда мешавад"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Такмилдиҳии насби пешакӣ (тавсия дода намешавад)"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"Ҷои холӣ барои барномаи худборшавии 1МБ кофӣ нест! Коргузорӣ давом хоҳад "
-"кард, аммо барои худборшавии систем ба шумо лозим аст, то ки қисми "
-"худборшавии авваларо дар DiskDrake офаред"
+"Насбкунанда муайян кард, ки системаи Linux-и насбшуда ба %s ба таври бехатар "
+"такмил дода намешавад.\n"
+"\n"
+"Насбкунии нав бо имкони ивазкунии насби пешакӣ тавсия дода мешавад.\n"
+"\n"
+"Огоҳӣ: пеш аз интихоби \"Насби нав\", шумо бояд нусхаи эҳтиётии ҳамаи "
+"маълумоти шахсии худ таҳия кунед."
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
-msgstr ""
-"Ба шумо лозим аст, ки худборшавии аввали PPC PReP Boot-ро офаред! Коргузорӣ "
-"давом хоҳад кард, аммо барои худборшавии систем ба шумо лозим аст, то ки "
-"қисми худборшавии авваларо дар DiskDrake офаред"
+msgid "CD/DVD"
+msgstr "CD/DVD"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "Танзимкунии CD/DVD"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1008,164 +1233,213 @@ msgid ""
"done.\n"
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
-"Диски Фишурдаи худро иваз кунед!\n"
-"\n"
-"Марҳамат карда Cd-Rom-и нишонааш \"%s\"-ро ба гардонандаи худ ҷойгир кунед "
-"ва баъд Ok-ро пахш кунед.\n"
-"Агар шумо онро надошта бошед, барои радкунии коргузорӣ аз ин Cd-Rom, Бекор "
-"карданро пахш кунед."
+"Cd-Rom-и зудро иваз кунед!\n"
+"Лутфан, Cd-Rom-ро бо тамғаи \"%s\" ба драйв дарҷ карда, тугмаи ОК-ро пахш "
+"намоед.\n"
+"Агар шумо онро надошта бошед, тугмаи “Бекор кардан”-ро пахш карда, насбкунии "
+"системаро аз драйви Cd-Rom лағв кунед."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
-msgstr "Қуттиҳои дастрасшаванда ҷустуҷӯ карда мешавад..."
+msgstr "Дар ҳоли ҷустуҷӯи бастаҳои дастрас..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
+"Системаи шумо барои насбкунӣ ё такмилдиҳӣ фазои кофӣ надорад (%d МБ > %d МБ)"
-#: steps_interactive.pm:405
-#, fuzzy, c-format
+#: steps_interactive.pm:428
+#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-"Лутфан интихоби кор андохтан ё нигоҳ доштанро дар дискет ба роҳ монед.\n"
-"Шаклбандӣ ҳамон хел аст ҳамчун дискетҳое ки бо auto_install офарида шудааст."
+"Лутфан, интихоби бастаро бор кунед ё захира намоед.\n"
+"Ин формат ба файлҳои таҳияшудаи auto_install монанд аст."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
-msgstr "Боркунӣ"
+msgstr "Бор кардан"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
-msgstr "Нигоҳ доштан"
+msgstr "Захира кардан"
-#: steps_interactive.pm:415
-#, fuzzy, c-format
+#: steps_interactive.pm:438
+#, c-format
msgid "Bad file"
-msgstr "Пурбокунии файлҳо"
+msgstr "Файли нодуруст"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr ""
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Коргузории хурдтарин"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr "Интихоби мизи корӣ"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
+"Шумо метавонед профили мизи кориро барои компютери кории худ интихоб намоед."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
-msgstr "Андозаи интихобшуда аз ҷои дастрасшуда зиёд аст"
+msgstr "Андозаи интихобшуда аз фазои дастрас зиёд аст"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
-msgstr "Навъи коргузорӣ"
+msgstr "Навъи насбкунӣ"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
-"Шумо ягон гурӯҳи қуттиҳоро интихоб накардед.\n"
-"Лутфан, коргузории пастарини дилхоҳатонро интихоб намоед:"
+"Шумо ягон гурӯҳи бастаҳоро интихоб накардед.\n"
+"Лутфан, насбкунии камини дилхоҳатонро интихоб намоед:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
-msgstr "Бо X"
+msgstr "Бо воситаи X"
+
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Насб кардани бастаҳои тавсияшуда"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
-msgstr "Бо санадсозии асосӣ (маслиҳат дода мешавад!)"
+msgstr "Бо ҳуҷҷатҳои асосӣ (тавсия дода мешавад!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
-msgstr "Дар ҳақиқат коргузории хурдтарин (алалхусус ғайри urpmi)"
+msgstr "Насбкунии камини ҳақиқӣ (алалхусус бе urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Омодасозии такмил..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
-msgstr "Коргузорӣ тайёр шуда истодааст"
+msgstr "Омодасозии насб"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
-msgstr ""
+msgstr "Насбкунии бастаи %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
-msgstr "Ҳангоми ба даст даровардани қуттиҳо хатогие рӯй дод:"
+msgstr "Ҳангоми дархосткунии бастаҳо хатое ба вуҷуд омад:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
-msgstr "Ба ҳар ҳол давом диҳам?"
+msgstr "Ба ҳар ҳол идома медиҳед?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
-msgstr ""
+msgstr "Аз нав кӯшиш кардан"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
-msgstr ""
+msgstr "Лағв кардани ин баста"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
-msgstr ""
+msgstr "Лағв кардани ҳамаи бастаҳо аз медиаи \"%s\""
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "Интихоби қуттиҳоро нигоҳ доштан"
+msgstr "Бозгашт ба медиа ва интихоби бастаҳо"
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "Ҳангоми коргузории қуттиҳо хатогӣ пайдо гардид:"
+msgstr "Ҳангоми насбкунии бастаи %s хатое ба вуҷуд омад."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
-msgstr "Баъд аз пайкарабандӣ коргузорӣ мегардад"
+msgstr "Танзимкунии баъд аз насб"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
+"Лутфан, мутмаин шавед, ки медиаи навсозии модулҳо дар драйви %s мебошад"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Нав кардан"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Акнун шумо барои танзим кардани медиаи онлайн имконият доред."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Ин амал барои насб кардани навсозиҳои амният иҷозат медиҳад."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"Барои насб кардани ин медиа, шумо бояд ба Интернет пайваст шавед.\n"
+"\n"
+"Шумо мехоҳед, ки медиаи навсозиро танзим кунед?"
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Бастаҳои зерин насб карда мешаванд"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Такрор мекунед?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Иловакунии медиа иҷро нашуд"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1177,218 +1451,126 @@ msgid ""
"\n"
"Do you want to install the updates?"
msgstr ""
-"Акнун шумо имкон доред, то ки қуттиҳои навшударо фаровир намоед. Ин "
-"қуттиҳои\n"
-"мазкур баъди ба амал овардани тақсимот нав карда шуда буд. Онҳо метавонад\n"
-"собитҳоро барои бехатарӣ ё ин ки хатогиҳо дошта бошад.\n"
+"Акнун шумо барои боргирӣ кардани бастаҳои навшуда имконият доред. Ин бастаҳо "
+"баъд аз санаи барориши ин дистрибутив нав карда шудаанд. Онҳо метавонанд "
+"ислоҳоти хатоҳо ва сатҳи амниятро дар бар гиранд.\n"
"\n"
-"Барои ба амал овардани фаровир ба шумо лозим аст, то ки алоқаи ҳозираи "
-"интернетро\n"
-"истифода баред.\n"
+"Барои боргирӣ кардани ин бастаҳо, шумо бояд ба Интернет пайваст шавед.\n"
"\n"
-"Оё шумо хоҳиши коргузорӣ намудани ин навигариҳо ҳастед?"
-
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr ""
-"Пайвастшавӣ ба оина барои гирифтани рӯйхати қуттиҳои дастрас иҷро мешавад..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Имконияти пайвастшавӣ бо оинаи %s мавҷуд нест"
+"Шумо мехоҳед, ки ин навсозиҳоро насб кунед?"
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s дар %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Сахтафзор"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
-msgstr "Корти овоздор"
+msgstr "Корти садо"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Шумо карти садои ISA доред?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Барои батанзимдарории корти овозии шумо баъди коргузорӣ \"alsaconf\" ё "
-"\"sndconfig\"-ро корандозӣ намоед"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Корти овозӣ муайян нагардид. \"harddrake\"-ро баъди коргузорӣ кӯшиш намоед"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Интерфейси графикӣ"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Шабака ва Интернет"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
-msgstr "Боваринок"
+msgstr "Проксиҳо"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "танзимшуда"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
-msgstr "Сатҳи Амният"
+msgstr "Сатҳи амният"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
-msgstr "Фейрвол"
+msgstr "Девори оташ"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
-msgstr "фаъолшуда"
+msgstr "фаъол"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "ғайрифаъол"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
-msgstr "Шумо X-ро ба танзим надаровардаед. Шумо дар ҳақиқат инро мехоҳед?"
+msgstr "Шумо сервери X-ро танзим накардед. Оё он ба шумо лозим аст?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "Корандози худборшави аввала тайёр мешавад..."
+msgid "Preparing initial startup program..."
+msgstr "Омодасозии оғози ибтидоии барнома..."
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"Зоҳиран шумо World-и Кӯҳна ё мошинаи номаълумро доред, корандози худборшави "
-"yaboot барои шумо кор намекунад. Коргузорӣ давом хоҳад кард, вале шумо бояд "
-"BootX ё ин ки воситаҳои дигарро барои худборшавии мошини худ истифода баред. "
-"Нишонванди ҳаста барои решаи fs ин: root=%s"
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Мехоҳед, ки aboot-ро истифода баред?"
-
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Хатогии коргузории aboot, \n"
-"бо мақсади тезонидани коргузорӣ кӯшиш намудан, ҳатто агар ин қисми якумро "
-"нобуд созад?"
+msgid "Be patient, this may take a while..."
+msgstr "Лутфан, интизор шавед, ин метавонад андак вақт гирад..."
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-"Дар ин сатҳи бехатарӣ дастрасӣ ба файлҳо дар қисматҳои Windows таҳо ба "
-"идоракунанда иҷозат дода мешаванд."
+"Дар ин сатҳи бехатарӣ, дастрасӣ ба файлҳо дар қисматҳои Windows танҳо ба "
+"маъмур иҷозат дода мешавад."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
-msgstr "Дискети холиро ба гардон дохил намоед %s"
+msgstr "Дискетаи холиро ба драйви %s дарҷ кунед"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
-msgstr "Диски нарми худкоргузорӣ офарида шуда истодааст..."
+msgstr "Эҷодкунии дискетаи насбкунии худкор..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
"\n"
"Do you really want to quit now?"
msgstr ""
-"Якчанд марҳила ба итмом нарасидааст.\n"
+"Баъзе қадамҳо иҷро карда нашуданд.\n"
"\n"
-"Шумо дар ҳақиқат баромадан мехоҳед?"
+"Шумо мехоҳед, ки равандро ба анҷом расонед?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
-msgstr "Табрикот"
+msgstr "Табрик мекунем"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
-msgstr "Бозхудборшавӣ"
-
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Дискети коргузории автоматиро офаридан"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Мувофиқи хоҳиш коргузории автоматӣ мумкин ба таври\n"
-"пурра автоматикона мешавад\n"
-"дар ин ҳолат он диски сахтро нусхабардорӣ хоҳад намуд!!\n"
-"(ба коргузорӣ намудан ба дигар компютер пешбинӣ шудааст).\n"
-"\n"
-"Мумкин, шумо коргузории такрориро афзалтар шуморед.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Такрор намудан"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Автоматикунонида"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Интихоби қуттиҳоро нигоҳ доштан"
+msgstr "Бозоғозии система"
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
@@ -1401,14 +1583,14 @@ msgstr "Забон"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "Маҳаллисозӣ"
#: steps_list.pm:17
#, c-format
msgid ""
"_: Keep these entry short\n"
"License"
-msgstr "Лисензия"
+msgstr "Иҷозатнома"
#: steps_list.pm:18
#, c-format
@@ -1422,21 +1604,21 @@ msgstr "Муш"
msgid ""
"_: Keep these entry short\n"
"Hard drive detection"
-msgstr "Муаяйн намудани ронандаи сахт"
+msgstr "Муайянкунии диски компютерӣ"
#: steps_list.pm:21 steps_list.pm:22
#, c-format
msgid ""
"_: Keep these entry short\n"
"Installation class"
-msgstr ""
+msgstr "Синфи насбкунӣ"
#: steps_list.pm:23
#, c-format
msgid ""
"_: Keep these entry short\n"
"Keyboard"
-msgstr "Забонак"
+msgstr "Клавиатура"
#: steps_list.pm:24
#, c-format
@@ -1450,49 +1632,42 @@ msgstr "Амният"
msgid ""
"_: Keep these entry short\n"
"Partitioning"
-msgstr "Ҷузъбандӣ"
+msgstr "Қисмбандӣ"
#: steps_list.pm:27 steps_list.pm:28
#, c-format
msgid ""
"_: Keep these entry short\n"
"Formatting"
-msgstr ""
+msgstr "Шаклбандӣ"
#: steps_list.pm:29
#, c-format
msgid ""
"_: Keep these entry short\n"
"Choosing packages"
-msgstr ""
+msgstr "Интихоби бастаҳо"
#: steps_list.pm:31
#, c-format
msgid ""
"_: Keep these entry short\n"
"Installing"
-msgstr "Коргузорӣ шуда истодааст"
+msgstr "Дар ҳоли насб"
#: steps_list.pm:34
#, c-format
msgid ""
"_: Keep these entry short\n"
"Users"
-msgstr "Корвандҳо"
-
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Шабака"
+msgstr "Корбарон"
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
"_: Keep these entry short\n"
"Bootloader"
-msgstr "Корандози худборшав"
+msgstr "Боркунандаи роҳандозӣ"
#: steps_list.pm:40 steps_list.pm:41
#, c-format
@@ -1506,91 +1681,49 @@ msgstr "Танзими X"
msgid ""
"_: Keep these entry short\n"
"Summary"
-msgstr "Ҷамбаст"
+msgstr "Ҷамъбаст"
#: steps_list.pm:44 steps_list.pm:45
#, c-format
msgid ""
"_: Keep these entry short\n"
"Services"
-msgstr "Хидматрасонҳо"
+msgstr "Хидматҳо"
#: steps_list.pm:46
#, c-format
msgid ""
"_: Keep these entry short\n"
"Updates"
-msgstr "Нав кардан"
+msgstr "Навсозиҳо"
#: steps_list.pm:48
#, c-format
msgid ""
"_: Keep these entry short\n"
"Exit"
-msgstr "Хуруҷ"
-
-#~ msgid "All"
-#~ msgstr "Ҳама"
-
-#~ msgid "TV card"
-#~ msgstr "TV корт"
-
-#~ msgid "Boot"
-#~ msgstr "Boot"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Аслшиносӣ"
-
-#~ msgid "Gwenview"
-#~ msgstr "НамоишиGwen"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "%d қуттиҳо"
-#~ msgstr[1] "%d қуттиҳо"
-
-#~ msgid "%d packages"
-#~ msgstr "%d қуттиҳо"
-
-#~ msgid "Language"
-#~ msgstr "Забон"
-
-#~ msgid "License"
-#~ msgstr "Лисензия"
+msgstr "Баромад"
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "Интихоби синфи коргузорӣ"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "Баҳодиҳии тахминӣ"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "Барои коргузорӣ қуттиҳоро интихоб намоед"
-
-#~ msgid "Users"
-#~ msgstr "Корвандҳо"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "URL-и оина доред?"
-#~ msgid "Networking"
-#~ msgstr "Шабака"
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "URL бояд бо ftp:// ё http:// сар карда шавад"
-#~ msgid "Configure X"
-#~ msgstr "Танзими X"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr ""
+#~ "Дар ҳоли пайваст бо вебсайти %s барои ба даст овардани рӯйхати оинаҳои "
+#~ "дастрас..."
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
#~ msgstr ""
-#~ "Иҷозат барои дастёбӣ ба модули ҳаста, ки ба ҳастаи шумо мутобиқат мекунад "
-#~ "(файли %s партофта шудааст), гирифта нашуда истодааст, одатан ин маънои "
-#~ "онро дорад, ки диски нарми худборшавии шумо бо миёнаи Коргузорӣ ҳамзамон "
-#~ "карда нашудааст (марҳамат карда диски нарми худборшавии навтар офаред)"
+#~ "Ҳангоми пайвастшавӣ бо вебсайти %s барои ба даст овардани рӯйхати оинаҳои "
+#~ "дастрас хато ба миён омад"
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Оинаро барои гирифтани бастаҳо интихоб намоед"
diff --git a/perl-install/install/share/po/th.po b/perl-install/install/share/po/th.po
index dc64f0318..4c13d92bd 100644
--- a/perl-install/install/share/po/th.po
+++ b/perl-install/install/share/po/th.po
@@ -1,158 +1,232 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR Free Software Foundation, Inc.
-# Wachara Chinsettawong <wachara@yahoo.com>, 2001
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Rockers <sumorock@hotmail.com>, 2015
+# Rockers <sumorock@hotmail.com>, 2015
+# Wachara Chinsettawong <wachara@yahoo.com>, 2001
msgid ""
msgstr ""
-"Project-Id-Version: DrakX\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2001-09-10 14:24GMT+7\n"
-"Last-Translator: Wachara Chinsettawong <wachara@yahoo.com>\n"
-"Language-Team: Thai <th@li.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Thai (http://www.transifex.com/MageiaLinux/mageia/language/"
+"th/)\n"
+"Language: th\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 0.9.5\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: any.pm:155
-#, fuzzy, c-format
-msgid "Do you have further supplementary media?"
-msgstr "คุณมีอันอื่นๆอีกหรือไม่?"
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: ../../advertising/02_IM_mageia.pl:1
#, c-format
-msgid ""
-"The following media have been found and will be used during install: %s.\n"
-"\n"
-"\n"
-"Do you have a supplementary installation medium to configure?"
+msgid "Make it yours!"
msgstr ""
-#: any.pm:166
+#: ../../advertising/03_IM_mageia.pl:1
#, c-format
-msgid "CD-ROM"
-msgstr "ซีดี-รอม"
+msgid "Your choice!"
+msgstr ""
-#: any.pm:167
-#, fuzzy, c-format
-msgid "Network (HTTP)"
-msgstr "Network interface"
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
-#: any.pm:168
-#, fuzzy, c-format
-msgid "Network (FTP)"
-msgstr "Network interface"
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
-#: any.pm:169
+#: ../../advertising/06_IM_mageia.pl:1
#, c-format
-msgid "Network (NFS)"
+msgid "For kids"
msgstr ""
-#: any.pm:211
+#: ../../advertising/07_IM_mageia.pl:1
#, c-format
-msgid "URL of the mirror?"
+msgid "For family!"
msgstr ""
-#: any.pm:217
+#: ../../advertising/08_IM_mageia.pl:1
#, c-format
-msgid "URL must start with ftp:// or http://"
+msgid "For developers!"
msgstr ""
-#: any.pm:228
-#, fuzzy, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr "กำลังติดต่อกับมิลเรอร์ไซต์เพื่อหารายการของแพ็คเก็จที่มีให้"
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr ""
-#: any.pm:233
-#, fuzzy, c-format
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr ""
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
+#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr "กำลังติดต่อกับมิลเรอร์ไซต์เพื่อหารายการของแพ็คเก็จที่มีให้"
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
+msgstr ""
+
+#: any.pm:162
+#, c-format
+msgid "Network (HTTP)"
+msgstr ""
+
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
+msgstr ""
-#: any.pm:243
+#: any.pm:164
#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "เลือกมิลเรอร์ไซต์ที่จะใช้ในการดาวน์โหลดแพ็คเก็จ"
+msgid "Network (NFS)"
+msgstr ""
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr ""
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr ""
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr ""
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr ""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr ""
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "สารบัญ"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr ""
-#: any.pm:341
-#, fuzzy, c-format
+#: any.pm:300
+#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
-msgstr "Adapter %s: %s"
+msgstr ""
-#: any.pm:375
-#, fuzzy, c-format
-msgid "Looking at packages already installed..."
-msgstr "คุณไม่สามารถไม่เลือกแพกเกจนี้เพราะมันได้ถูกติดตั้งไปแล้ว"
+#: any.pm:325
+#, c-format
+msgid "Core Release"
+msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
+msgid "Tainted Release"
+msgstr ""
+
+#: any.pm:329
+#, c-format
+msgid "Nonfree Release"
+msgstr ""
+
+#: any.pm:367
+#, c-format
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
msgstr ""
-#: any.pm:424
+#: any.pm:593
#, c-format
msgid "Finding packages to upgrade..."
msgstr "กำลังหาแพ็คเก็จที่จะทำการอัพเกรด"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:612
#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+msgid "Removing packages prior to upgrade..."
msgstr ""
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -161,82 +235,87 @@ msgid ""
"Do you really want to remove these packages?\n"
msgstr ""
-#: any.pm:1055
-#, fuzzy, c-format
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "มีปัญหากับการอ่านข้อมูลในไฟล์ %s"
+
+#: any.pm:1283
+#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "แพ็คเก็จเหล่านี้กำลังจะถูกติดตั้ง"
+msgstr ""
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr ""
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "ระบบเครือข่าย"
-#: any.pm:1137
-#, fuzzy, c-format
+#: any.pm:1365
+#, c-format
msgid "Please choose a media"
-msgstr "กรุณาเลือก"
+msgstr ""
-#: any.pm:1153
-#, fuzzy, c-format
+#: any.pm:1381
+#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "ไฟล์มีอยู่แล้ว ต้องการใช้?"
+msgstr ""
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "สิทธิการทำงานถูกปฎิเสท"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr ""
-#: any.pm:1226
-#, fuzzy, c-format
+#: any.pm:1454
+#, c-format
msgid "Bad media %s"
-msgstr "อุปกรณ์ที่ถูกเพิ่มเข้ามา %s"
+msgstr ""
-#: any.pm:1269
-#, fuzzy, c-format
-msgid "Can not make screenshots before partitioning"
-msgstr "โปรแกรมไม่สามารถเพิ่มพาร์ติชั่นได้อีก"
+#: any.pm:1498
+#, c-format
+msgid "Cannot make screenshots before partitioning"
+msgstr ""
-#: any.pm:1277
-#, fuzzy, c-format
+#: any.pm:1509
+#, c-format
msgid "Screenshots will be available after install in %s"
-msgstr "คุณสามารถเลือกภาษาอื่นซึ่งจะสามารถใช้ได้หลังติดตั้ง"
+msgstr ""
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
-msgstr "กำลังติดตั้ง"
+msgstr ""
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "ปรับแต่งค่า"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr ""
@@ -260,368 +339,458 @@ msgstr "ระบบเน็ตเวิร์กกำลังจะทำง
msgid "Bringing down the network"
msgstr "ระบบเน็ตเวิร์กกำลังจะหยุดทำงาน"
-#: media.pm:703 media.pm:714
-#, fuzzy, c-format
-msgid "Downloading file %s..."
-msgstr "บันทึกลงไฟล์"
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
+
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr ""
-#: media.pm:861
-#, fuzzy, c-format
+#: media.pm:797
+#, c-format
msgid "Copying in progress"
-msgstr "ค้นหาเจอบน port %s"
+msgstr ""
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "ต้องมี"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "สำคัญ"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "ดีมาก"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "ดี"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "อาจจะ"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "ไม่มีคำอธิบายรายละเอียด"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-#: share/meta-task/compssUsers.pl:11
-#, fuzzy, c-format
-msgid "Workstation"
-msgstr "Workstation ที่ทำงาน"
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "มีปัญหาเกิกขึ้น:"
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Workstation ที่ทำงาน"
+msgid "A fatal error occurred: %s."
+msgstr ""
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr ""
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
msgstr ""
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Workstation ที่ทำงาน"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-#: share/meta-task/compssUsers.pl:21
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:26
+#, c-format
msgid "Game station"
-msgstr "Workstation ที่ทำงาน"
+msgstr ""
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr ""
-#: share/meta-task/compssUsers.pl:25
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:30
+#, c-format
msgid "Multimedia station"
-msgstr "Multimedia - เขียน CD "
+msgstr ""
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr ""
-#: share/meta-task/compssUsers.pl:31
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:36
+#, c-format
msgid "Internet station"
-msgstr "การเชื่อมต่อกับ Internet แบบ sharing"
+msgstr ""
-#: share/meta-task/compssUsers.pl:32
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:37
+#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
-msgstr "เครื่องมือในการอ่านและส่ง mail และ news (pine, mutt, tin..) และท่องอินเตอร์เน็ต"
+msgstr ""
-#: share/meta-task/compssUsers.pl:37
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:42
+#, c-format
msgid "Network Computer (client)"
-msgstr "เครื่องพิมพ์ในระบบ Network (Socket)"
+msgstr ""
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Clients for different protocols including ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "เครืองมือที่ช่วยในการปรับแต่งเครื่องชองคุณให้ง่ายขึ้น"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr ""
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr ""
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "พัฒนาซอฟท์แวร์ (Development)"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr ""
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "คู่มือ"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr ""
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr ""
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr ""
-#: share/meta-task/compssUsers.pl:71
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:79
+#, c-format
msgid "Web Server"
-msgstr "เซิร์ฟเวอร์"
+msgstr ""
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr ""
-#: share/meta-task/compssUsers.pl:75
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:84
+#, c-format
msgid "Groupware"
-msgstr "เวิร์กกรุ๊ป (workgroup)"
+msgstr ""
-#: share/meta-task/compssUsers.pl:76
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:85
+#, c-format
msgid "Kolab Server"
-msgstr "เซิร์ฟเวอร์ NIS"
+msgstr ""
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr ""
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
+#, c-format
msgid "Internet gateway"
-msgstr "การติดต่อ internet"
+msgstr ""
-#: share/meta-task/compssUsers.pl:83
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:92
+#, c-format
msgid "Mail/News"
-msgstr "/ไฟล์/_ใหม่"
+msgstr ""
-#: share/meta-task/compssUsers.pl:84
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:93
+#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "ชื่อเซิร์ฟเวอร์ของพรินเตอร์"
+msgstr ""
-#: share/meta-task/compssUsers.pl:87
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:97
+#, c-format
msgid "Directory Server"
-msgstr "เรียกคืนจากแผ่นฟล้อปปี้"
+msgstr ""
-#: share/meta-task/compssUsers.pl:91
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:102
+#, c-format
msgid "FTP Server"
-msgstr "เซิร์ฟเวอร์ NIS"
+msgstr ""
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr ""
-#: share/meta-task/compssUsers.pl:95
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:107
+#, c-format
msgid "DNS/NIS"
-msgstr "ใช้ NIS"
+msgstr ""
-#: share/meta-task/compssUsers.pl:96
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:108
+#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "ชื่อโดเมน"
+msgstr ""
-#: share/meta-task/compssUsers.pl:99
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:112
+#, c-format
msgid "File and Printer Sharing Server"
-msgstr "ชื่อเซิร์ฟเวอร์ของพรินเตอร์"
+msgstr ""
-#: share/meta-task/compssUsers.pl:100
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:113
+#, c-format
msgid "NFS Server, Samba server"
-msgstr "เซิร์ฟเวอร์ NIS"
+msgstr ""
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "ฐานข้อมูล"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
+msgid "PostgreSQL and MariaDB Database Server"
msgstr ""
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr ""
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr ""
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "จดหมาย"
-#: share/meta-task/compssUsers.pl:113
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:129
+#, c-format
msgid "Postfix mail server"
-msgstr "ชื่อเซิร์ฟเวอร์ของพรินเตอร์"
+msgstr ""
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
+msgid "PostgreSQL or MariaDB database server"
msgstr ""
-#: share/meta-task/compssUsers.pl:124
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:142
+#, c-format
msgid "Network Computer server"
-msgstr "เครื่องพิมพ์ในระบบ Network (Socket)"
+msgstr ""
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr ""
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "การทำงานแบบกราฟฟิก"
-#: share/meta-task/compssUsers.pl:133
-#, fuzzy, c-format
-msgid "KDE Workstation"
-msgstr "Workstation ที่ทำงาน"
+#: share/meta-task/compssUsers.pl:152
+#, c-format
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr ""
-#: share/meta-task/compssUsers.pl:138
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:158
+#, c-format
msgid "GNOME Workstation"
-msgstr "Workstation ที่ทำงาน"
+msgstr ""
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr ""
-#: share/meta-task/compssUsers.pl:142
-#, fuzzy, c-format
-msgid "IceWm Desktop"
-msgstr "พื้นที่ทำงาน"
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Graphical Desktops อื่นๆ"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
+msgid "Window Maker, Fvwm, etc"
msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "อรรถประโยชน์"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
+#, c-format
msgid "SSH Server"
-msgstr "เซิร์ฟเวอร์ NIS"
+msgstr ""
-#: share/meta-task/compssUsers.pl:177
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:225
+#, c-format
msgid "Webmin"
-msgstr "อุปกรณ์"
+msgstr ""
-#: share/meta-task/compssUsers.pl:178
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:226
+#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "การคอนฟิก Internet"
+msgstr ""
-#: share/meta-task/compssUsers.pl:182
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:230
+#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "การคอนฟิกระบบเน็ตเวิร์ก"
+msgstr ""
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr ""
-#: share/meta-task/compssUsers.pl:187
-#, fuzzy, c-format
-msgid "Mandriva Wizards"
-msgstr "Control Center"
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr ""
-#: share/meta-task/compssUsers.pl:188
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:236
+#, c-format
msgid "Wizards to configure server"
-msgstr "การคอนฟิกเครื่องพิมพ์"
+msgstr ""
#: steps.pm:85
#, c-format
@@ -632,7 +801,7 @@ msgstr ""
"มีความผิดพลาดเกิดขึ้น แต่โปรแกรมไม่สามารถแก้ไขได้\n"
"หากทำงานต่ออาจเกิดความเสียหายได้"
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -652,299 +821,354 @@ msgstr "เข้าสู่ขั้นตอน `%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "การติดตั้งลีนุกซ์-แมนเดรก %s"
+msgid "%s Installation %s"
+msgstr ""
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> ระหว่างตัวเลือก"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
"เครื่องของคุณมีทรัพยากรค่อนข้างต่ำคุณอาจมีปัญหาติดตั้ง \n"
-"Mandriva Linux ถ้าเป็นเช่นนั้น กรุณาทดลองติดตั้งแบบ text \n"
+"%s ถ้าเป็นเช่นนั้น กรุณาทดลองติดตั้งแบบ text \n"
"กรุณากด F1 ขณะ boot จาก cdrom แล้วพิมพ์ text"
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "เลือกกลุ่มแพ็คเก็จ"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Individual package selection"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "ขนาดรวม: %d / %d MB "
+msgid "Unselect All"
+msgstr ""
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "แพ็คเก็จชำรุด"
+msgid "Total size: %d / %d MB"
+msgstr "ขนาดรวม: %d / %d MB "
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "เวอร์ชัน:"
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "ขนาด:"
-#: steps_gtk.pm:347
-#, fuzzy, c-format
+#: steps_gtk.pm:426
+#, c-format
msgid "%d KB\n"
-msgstr "ขนาด: %d KB\n"
+msgstr ""
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "ความสำคัญ:"
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "คุณไม่สามารถเลือก/ไม่เลือกแพกเกจนี้"
-#: steps_gtk.pm:386
-#, fuzzy, c-format
+#: steps_gtk.pm:466
+#, c-format
msgid "due to missing %s"
-msgstr "ไม่มี kdesu "
+msgstr ""
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr ""
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr ""
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr ""
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr "คุณไม่สามารถเลือก package นี้เนื่องจากคุณมีพื้นที่ไม่เพียงพอ"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "แพ็คเก็จเหล่านี้กำลังจะถูกติดตั้ง"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "แพ็คเก็จเหล่านี้กำลังจะถูกลบ"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "นี่คือแพกเกจที่ต้องติดตั้ง ไม่สามารถไม่เลือก"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "คุณไม่สามารถไม่เลือกแพกเกจนี้เพราะมันได้ถูกติดตั้งไปแล้ว"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "คุณไม่สามารถไม่เลือกแพกเกจนี้ มันจำเป็นที่จะต้องถูก upgrade"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr ""
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "ติดตั้ง"
-#: steps_gtk.pm:436
-#, fuzzy, c-format
+#: steps_gtk.pm:519
+#, c-format
msgid "Load/Save selection"
-msgstr "เลือกกลุ่มแพ็คเก็จ"
+msgstr ""
-#: steps_gtk.pm:437
-#, fuzzy, c-format
+#: steps_gtk.pm:520 steps_gtk.pm:525
+#, c-format
msgid "Updating package selection"
-msgstr "บันทึกกลุ่มแพ็คเก็จที่เลือก"
+msgstr ""
-#: steps_gtk.pm:442
-#, fuzzy, c-format
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
+#, c-format
msgid "Minimal install"
-msgstr "ออกจากการติดตั้ง"
+msgstr ""
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "การบริหารโปรแกรม"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "เลือกแพ็คเก็จที่คุณต้องการติดตั้ง"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "กำลังติดตั้ง"
-#: steps_gtk.pm:499
-#, fuzzy, c-format
+#: steps_gtk.pm:590
+#, c-format
msgid "No details"
-msgstr "รายละเอียด"
+msgstr ""
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "เวลาที่เหลือ "
+msgid "Time remaining:"
+msgstr "เวลาที่เหลือ:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "การประเมิน"
+msgid "(estimating...)"
+msgstr ""
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "แพ็คเก็จ %d ชุด"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "รวมความ"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "การปรับแต่ง"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
-#, fuzzy, c-format
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
+#, c-format
msgid "not configured"
-msgstr "คอนฟิกใหม่"
+msgstr ""
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr ""
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "มีปัญหาเกิดขึ้น"
-#: steps_interactive.pm:97
-#, fuzzy, c-format
-msgid "Please choose your keyboard layout."
-msgstr "คุณต้องการเลือกคีย์บอร์ดเลย์เอ้าท์แบบใด "
+#: steps_interactive.pm:105
+#, c-format
+msgid "Please choose your keyboard layout"
+msgstr ""
-#: steps_interactive.pm:99
-#, fuzzy, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "ต่อไปนี้คือ keyboard ที่ใช้ได้"
+#: steps_interactive.pm:109
+#, c-format
+msgid "Here is the full list of available keyboards:"
+msgstr ""
-#: steps_interactive.pm:129
-#, fuzzy, c-format
+#: steps_interactive.pm:153
+#, c-format
msgid "Install/Upgrade"
-msgstr "ติดตั้ง/อัพเกรด "
+msgstr ""
-#: steps_interactive.pm:130
-#, fuzzy, c-format
+#: steps_interactive.pm:157
+#, c-format
msgid "Is this an install or an upgrade?"
-msgstr "นี่เป็นการติดตั้งหรือการอัพเกรด"
+msgstr ""
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "ติดตั้ง"
-#: steps_interactive.pm:136
-#, fuzzy, c-format
+#: steps_interactive.pm:161
+#, c-format
msgid "Upgrade %s"
-msgstr "Update"
+msgstr ""
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
+msgid "Encryption key for %s"
msgstr ""
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
+msgid "Cancel installation, reboot system"
msgstr ""
-#: steps_interactive.pm:158
-#, fuzzy, c-format
-msgid "Encryption key for %s"
-msgstr "รหัสผ่านไม่เหมือนกัน"
-
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "New Installation"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "Configuring IDE"
-msgstr "คอนฟิก IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+msgid "CD/DVD"
+msgstr ""
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
msgstr ""
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -957,153 +1181,197 @@ msgstr ""
"กรุณาใส่ CD-ROM \"%s\" และกด OK\n"
"ถ้่าคุณไม่มี กรุณากด ยกเลิก (cancel) เพื่อหลีกเลี่ยงการติดตั้งจาก CD-ROM นี้"
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "กำลังหาแพ็คเก็จที่มีอยู่"
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "โหลด"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "บันทึก"
-#: steps_interactive.pm:415
-#, fuzzy, c-format
+#: steps_interactive.pm:438
+#, c-format
msgid "Bad file"
-msgstr "เปิดแฟ้ม"
+msgstr ""
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "ออกจากการติดตั้ง"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr ""
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr ""
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr ""
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr ""
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr ""
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "กำลังเตรียมการติดตั้ง"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "กำลังติดตั้งแพ็คเก็จ %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "มีปัญหาการลำดับของแพ็คเก็จ:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "ทำงานต่อหรือไม่?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr ""
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr ""
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr ""
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "บันทึกกลุ่มแพ็คเก็จที่เลือก"
+msgstr ""
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "มีปัญหาการติดตั้งของแพ็คเก็จ:"
+msgstr ""
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "การคอนฟิกหลังการติดตั้ง"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
+msgstr "อัพเดท"
+
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
msgstr ""
-#: steps_interactive.pm:692
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "แพ็คเก็จเหล่านี้กำลังจะถูกติดตั้ง"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "เกิดข้อผิดพลาดขณะเพิ่มสื่อ"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1116,141 +1384,97 @@ msgid ""
"Do you want to install the updates?"
msgstr ""
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "กำลังติดต่อกับมิลเรอร์ไซต์เพื่อหารายการของแพ็คเก็จที่มีให้"
-
-#: steps_interactive.pm:719
-#, fuzzy, c-format
-msgid "Unable to contact mirror %s"
-msgstr "ไม่สามารถ forkได้.%s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s บน %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "ฮาร์ดแวร์"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Sound card"
-#: steps_interactive.pm:902
-#, fuzzy, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "คุณมีอันอื่นๆอีกหรือไม่?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-
-#: steps_interactive.pm:906
+#: steps_interactive.pm:972
#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-
-#: steps_interactive.pm:914
-#, fuzzy, c-format
msgid "Graphical interface"
-msgstr "ให้เป็นกราฟฟิคเมื่อเริ่มต้น"
+msgstr ""
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "เน็ตเวิร์คกับอินเตอร์เน็ต"
-#: steps_interactive.pm:933
-#, fuzzy, c-format
+#: steps_interactive.pm:991
+#, c-format
msgid "Proxies"
-msgstr "Profile: "
+msgstr ""
-#: steps_interactive.pm:934
-#, fuzzy, c-format
+#: steps_interactive.pm:992
+#, c-format
msgid "configured"
-msgstr "คอนฟิกใหม่"
+msgstr ""
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "ระดับความปลอดภัย"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr ""
-#: steps_interactive.pm:967
-#, fuzzy, c-format
+#: steps_interactive.pm:1026
+#, c-format
msgid "activated"
-msgstr "แอ็คทีฟ"
+msgstr ""
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "ไม่ใช้งาน"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr ""
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "กำลังเตรียมบูตโหลดเดอร์"
-
-#: steps_interactive.pm:1018
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Preparing initial startup program..."
msgstr ""
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "คุณต้องการใช้ aboot หรือไม่"
-
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
+msgid "Be patient, this may take a while..."
msgstr ""
-"การติดตั้ง aboot ล้มเหลว\n"
-"พยายามติดตั้งถึงแม้พาติชั่นแรกอาจจะเสียหาย?"
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "ให้ใส่แผ่นฟล้อปปี้ลงในไดรว์ %s "
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "กำลังเตรียมการติดตั้งลงบน floppy"
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1261,50 +1485,16 @@ msgstr ""
"\n"
"คุณต้องการออกจากการติดตั้งจริงๆหรือไม่?"
-#: steps_interactive.pm:1094
-#, fuzzy, c-format
+#: steps_interactive.pm:1144
+#, c-format
msgid "Congratulations"
-msgstr "ขอแสดงความยินดี"
+msgstr "ยินดีด้วย"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr ""
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "สร้างfloppyสำหรับการติดตั้งแบบออโตเมติก"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"การติดตั้งแบบออโตเมติกสามารถทำงานแบบเต็มรูปแบบหากต้องการ\n"
-"ในกรณีนั้นมันจะใช้ harddisk ทั้งหมด\n"
-"(มันเหมาะกับการติดตั้งบนเครื่องอื่น)\n"
-"คุณอาจอยากกลับไปเริ่มต้นติดตั้งใหม่\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "เรียกอีกครั้ง"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "อัตโนมัติ"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "บันทึกกลุ่มแพ็คเก็จที่เลือก"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1395,13 +1585,6 @@ msgid ""
"Users"
msgstr "ผู้ใช้"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "ระบบเครือข่าย"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1444,46 +1627,6 @@ msgid ""
"Exit"
msgstr "เลิกทำงาน"
-#~ msgid "All"
-#~ msgstr "ทั้งหมด"
-
-#~ msgid "TV card"
-#~ msgstr "TV card"
-
-#~ msgid "Boot"
-#~ msgstr "บู๊ต"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "การตรวจสอบสิทธิ์การใช้งาน"
-
-#~ msgid "%d packages"
-#~ msgstr "แพ็คเก็จ %d ชุด"
-
-#~ msgid "Language"
-#~ msgstr "เลือกภาษาที่คุณใช้"
-
-#~ msgid "License"
-#~ msgstr "สัญญาอนุญาต"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "เลือกชุดการติดตั้ง"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "การประเมิน"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "เลือกแพ็คเก็จ"
-
-#~ msgid "Users"
-#~ msgstr "ผู้ใช้"
-
-#~ msgid "Networking"
-#~ msgstr "ระบบเครือข่าย"
-
-#~ msgid "Configure X"
-#~ msgstr "คอนฟิกระบบ X"
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "เลือกมิลเรอร์ไซต์ที่จะใช้ในการดาวน์โหลดแพ็คเก็จ"
diff --git a/perl-install/install/share/po/tl.po b/perl-install/install/share/po/tl.po
index 8173931cc..007d9b0d3 100644
--- a/perl-install/install/share/po/tl.po
+++ b/perl-install/install/share/po/tl.po
@@ -1,172 +1,230 @@
-# translation of DrakX-tl.po to Filipino
-# translation of DrakX.po to Filipino
-# Copyright (C) 2004 Free Software Foundation, Inc.
-# Arys P. Deloso <arys@deloso.org>, 2004.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Arys P. Deloso <arys@deloso.org>, 2004
msgid ""
msgstr ""
-"Project-Id-Version: DrakX-tl\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2004-09-15 13:35+0200\n"
-"Last-Translator: Arys P. Deloso <arys@deloso.org>\n"
-"Language-Team: Filipino <salinpinoy@comitus.net>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Tagalog (http://www.transifex.com/MageiaLinux/mageia/language/"
+"tl/)\n"
+"Language: tl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: any.pm:155
-#, fuzzy, c-format
-msgid "Do you have further supplementary media?"
-msgstr "Mayroon ba kayong isa pa?"
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: ../../advertising/02_IM_mageia.pl:1
#, c-format
-msgid ""
-"The following media have been found and will be used during install: %s.\n"
-"\n"
-"\n"
-"Do you have a supplementary installation medium to configure?"
+msgid "Make it yours!"
msgstr ""
-#: any.pm:166
+#: ../../advertising/03_IM_mageia.pl:1
#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
+msgid "Your choice!"
+msgstr ""
-#: any.pm:167
-#, fuzzy, c-format
-msgid "Network (HTTP)"
-msgstr "Network %s"
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
-#: any.pm:168
-#, fuzzy, c-format
-msgid "Network (FTP)"
-msgstr "Network %s"
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
-#: any.pm:169
+#: ../../advertising/06_IM_mageia.pl:1
#, c-format
-msgid "Network (NFS)"
+msgid "For kids"
msgstr ""
-#: any.pm:211
+#: ../../advertising/07_IM_mageia.pl:1
#, c-format
-msgid "URL of the mirror?"
+msgid "For family!"
msgstr ""
-#: any.pm:217
+#: ../../advertising/08_IM_mageia.pl:1
#, c-format
-msgid "URL must start with ftp:// or http://"
+msgid "For developers!"
msgstr ""
-#: any.pm:228
+#: ../../advertising/09_IM_mageia.pl:1
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
+msgid "Thank you!"
msgstr ""
-"Nakikipag-alam sa web site ng Mandriva Linux para makuha ang talaan ng mga "
-"available na mirror..."
-#: any.pm:233
-#, fuzzy, c-format
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr ""
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
+#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
msgstr ""
-"Nakikipag-alam sa web site ng Mandriva Linux para makuha ang talaan ng mga "
-"available na mirror..."
-#: any.pm:243
+#: any.pm:162
#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Pumili ng mirror kung saan kukunin ang mga package"
+msgid "Network (HTTP)"
+msgstr ""
-#: any.pm:273
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
+msgstr ""
+
+#: any.pm:164
+#, c-format
+msgid "Network (NFS)"
+msgstr ""
+
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr ""
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr ""
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr ""
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr ""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr ""
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Directory"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr ""
-#: any.pm:341
-#, fuzzy, c-format
+#: any.pm:300
+#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
-msgstr "Hindi mahanap ang %s sa %s"
+msgstr ""
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Naghahanap ng mga package na naka-install..."
+msgid "Core Release"
+msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
+msgid "Tainted Release"
+msgstr ""
+
+#: any.pm:329
+#, c-format
+msgid "Nonfree Release"
msgstr ""
-#: any.pm:424
+#: any.pm:367
+#, c-format
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Naghahanap ng mga package na naka-install..."
+
+#: any.pm:593
#, c-format
msgid "Finding packages to upgrade..."
msgstr "Naghahanap ng mga package na i-a-upgrade..."
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:612
#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+msgid "Removing packages prior to upgrade..."
msgstr ""
-"Pinili ninyo ang mga sumusunod na mga server: %s\n"
-"\n"
-"\n"
-"Bilang default, ang mga server ay papaganahin. Wala silang kilalang "
-"problema\n"
-"sa seguridad, pero ilang mga bago ay maaaring makita. Kung gayon, dapat\n"
-"ninyong tiyakin na mag-upgrade ng pinakamaagap.\n"
-"\n"
-"\n"
-"Gusto ninyo talagang i-install ang mga server na ito?\n"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -180,82 +238,87 @@ msgstr ""
"\n"
"Gusto ninyo ba talagang tanggalin ang mga package na ito?\n"
-#: any.pm:1055
-#, fuzzy, c-format
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "May error sa pagbabasa ng file na %s"
+
+#: any.pm:1283
+#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "- %s ay tinanggal\n"
+msgstr ""
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr ""
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr ""
-#: any.pm:1114
-#, fuzzy, c-format
+#: any.pm:1342
+#, c-format
msgid "FTP"
-msgstr "gFTP"
+msgstr ""
-#: any.pm:1114
-#, fuzzy, c-format
+#: any.pm:1342
+#, c-format
msgid "NFS"
-msgstr "PFS"
+msgstr ""
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Network"
-#: any.pm:1137
-#, fuzzy, c-format
+#: any.pm:1365
+#, c-format
msgid "Please choose a media"
-msgstr "Pumili ka"
+msgstr ""
-#: any.pm:1153
-#, fuzzy, c-format
+#: any.pm:1381
+#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "Mayroon ng file. Gamitin ito?"
+msgstr ""
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Pahintulot ipinagkaila"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr ""
-#: any.pm:1226
-#, fuzzy, c-format
+#: any.pm:1454
+#, c-format
msgid "Bad media %s"
-msgstr "idinagdag ang medium na %s"
+msgstr ""
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Hindi makagawa ng mga screenshot bago mag-partisyon"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Ang mga screenshot ay magiging available matapos ang install sa %s"
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
-msgstr "Nag-i-install"
+msgstr ""
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Configuration"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Dapat ninyo ring i-format ang %s"
@@ -280,107 +343,143 @@ msgstr "Ginagawang \"up\" ang network"
msgid "Bringing down the network"
msgstr "Ginagawang \"down\" ang network"
-#: media.pm:703 media.pm:714
-#, fuzzy, c-format
-msgid "Downloading file %s..."
-msgstr "Ipinapadala ang mga file..."
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
+
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr ""
-#: media.pm:861
-#, fuzzy, c-format
+#: media.pm:797
+#, c-format
msgid "Copying in progress"
-msgstr "Tumatakbo ang pagtitiktik"
+msgstr ""
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "dapat magkaroon"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "importante"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "masyadong mainam"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "mainam"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "baka sakali"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr ""
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "Workstation"
+msgid "An error occurred:"
+msgstr ""
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Pang-opisina na Workstation"
+msgid "A fatal error occurred: %s."
+msgstr "May nangyaring fatal error: %s."
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d transaksyong pag-i-install ay nabigo"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
msgstr ""
-"Mga pang-opisinang program: mga wordprocessor (OpenOffice.org Writer, "
-"Kword), mga spreadsheet (OpenOffice.org Calc, Kspread), mga pdf viewer, etc"
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "Workstation"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Pang-opisina na Workstation"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Mga pang-opisinang program: mga wordprocessor (kword, abiword), mga "
-"spreadsheet (kspread, gnumeric), mga pdf viewer, etc"
+"Mga pang-opisinang program: mga wordprocessor (LibreOffice Writer, Kword), "
+"mga spreadsheet (LibreOffice Calc, Kspread), mga pdf viewer, etc"
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Pang-laro na istasyon"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Mga nakakalibang na program: arcade, mga board game, strategy, etc"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Pang-multimedia na istasyon"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Mga program na pang-play/edit ng tunog, musika at video"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Pang-internet na istasyon"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
@@ -389,193 +488,193 @@ msgstr ""
"Kumpol ng mga kagamitang pangbasa at pangsulat ng mail at news (mutt, tin..) "
"at pang-browse ng Web"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Network Computer (client)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Mga client para sa iba't-ibang mga protocol kasama ang ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Kagamitang pangpadali ng configuration ng inyong computer"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Kagamitang Pang-Console"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Mga editor, shell, file tool, terminal"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Paglinang (Development)"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "mga C at C++ development library, program at include file"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Dokumentasyon"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Mga Libro at Howto tungkol sa Linux at Free Software"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Linux Standard Base. Suporta para sa mga third party application"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Web Server"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Groupware"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Kolab Server"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Firewall/Router"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Internet gateway"
-#: share/meta-task/compssUsers.pl:83
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:92
+#, c-format
msgid "Mail/News"
-msgstr "/File/_Bago"
+msgstr ""
-#: share/meta-task/compssUsers.pl:84
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:93
+#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Postfix mail server"
+msgstr ""
-#: share/meta-task/compssUsers.pl:87
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:97
+#, c-format
msgid "Directory Server"
-msgstr "Directory Kung Saan Kukunin ang Ibabalik"
+msgstr ""
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP Server"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr ""
-#: share/meta-task/compssUsers.pl:95
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:107
+#, c-format
msgid "DNS/NIS"
-msgstr "DNS"
+msgstr ""
-#: share/meta-task/compssUsers.pl:96
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:108
+#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "Domain Name Server"
+msgstr ""
-#: share/meta-task/compssUsers.pl:99
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:112
+#, c-format
msgid "File and Printer Sharing Server"
-msgstr "Printer Server"
+msgstr ""
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "NFS server, Samba server"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Database"
-#: share/meta-task/compssUsers.pl:104
-#, fuzzy, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL o MySQL database server"
+#: share/meta-task/compssUsers.pl:118
+#, c-format
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr ""
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Mail"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Postfix mail server"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL o MySQL database server"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL o MariaDB database server"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Network Computer server"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "NFS server, SMB server, Proxy server, ssh server"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Graphical na Kapaligiran"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE Workstation"
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -584,12 +683,12 @@ msgstr ""
"Ang K Desktop Environment, ang pinakabatayang graphical environment na may "
"koleksyon ng mga kasabay na kagamitan"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "GNOME Workstation"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -598,60 +697,112 @@ msgstr ""
"Isang graphical environment na may kumpol ng mga user-friendly (madaling "
"gamitin) na application at kagamitang pang-desktop"
-#: share/meta-task/compssUsers.pl:142
-#, fuzzy, c-format
-msgid "IceWm Desktop"
-msgstr "Desktop"
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Ibang Mga Graphical Desktop"
-#: share/meta-task/compssUsers.pl:147
-#, fuzzy, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm, etc"
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
-#: share/meta-task/compssUsers.pl:170
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:218
+#, c-format
msgid "Utilities"
-msgstr "Philippines"
+msgstr ""
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH Server"
-#: share/meta-task/compssUsers.pl:177
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:225
+#, c-format
msgid "Webmin"
-msgstr "Webcam"
+msgstr ""
-#: share/meta-task/compssUsers.pl:178
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:226
+#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Configuration ng Terminal Server"
+msgstr ""
-#: share/meta-task/compssUsers.pl:182
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:230
+#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Pagmo-monitor ng Network"
+msgstr ""
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr ""
-#: share/meta-task/compssUsers.pl:187
-#, fuzzy, c-format
-msgid "Mandriva Wizards"
-msgstr "<b>Mandriva Store</b>"
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr ""
-#: share/meta-task/compssUsers.pl:188
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:236
+#, c-format
msgid "Wizards to configure server"
-msgstr "Nabigong i-configure ang printer na \"%s\"!"
+msgstr ""
#: steps.pm:85
#, c-format
@@ -662,7 +813,7 @@ msgstr ""
"May \"error\" na nangyari, pero hindi ko alam kung paano ayusin\n"
"ng maganda. Mapanganib magpatuloy."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -682,310 +833,359 @@ msgstr "Pumpasok sa hakbang na `%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Pag-install ng Mandriva Linux %s"
+msgid "%s Installation %s"
+msgstr "Pag-install ng %s %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> pagitan ng mga elemento"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
"Ang inyong sistema mababa sa kakayahan. Maaari kayong magkaproblema\n"
-"sa pag-install ng Mandriva Linux. Kung mangyari ito, maaari ninyong subukan\n"
+"sa pag-install ng %s. Kung mangyari ito, maaari ninyong subukan\n"
"ang \"text install\". Para dito, pindutin ang `F1' kapag nagbo-boot sa "
"CDROM,\n"
"at ipasok ang `text'."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Pagpili ng Pangkat ng mga Package"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Isa-isang pagpili ng package"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Kabuuang laki: %d / %d MB"
+msgid "Unselect All"
+msgstr "Di-nakapili Lahat"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Sirang package"
+msgid "Total size: %d / %d MB"
+msgstr "Kabuuang laki: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Version: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Laki: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Kahalagahan: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Maaari ninyong piliin/di-piliin ang package na ito"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "dahil sa nawawalang %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "dahil sa hindi na-satisfy na %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "sinusubukang i-promote ang %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "para maitago ang %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"Hindi ninyo maaaring piliin ang package na ito dahil walang sapat na puwang"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Ang mga sumusunod na package ay ii-install"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Ang mga sumusunod na package ay tatanggalin"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Ito ay kinakailangang package, hindi ito maaring di-piliin"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Hindi ninyo maaaring di-piliin ang package na ito. Naka-install na ito"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr ""
"Hindi ninyong maaaring di-piliin ang package na ito. Dapat i-upgrade ito"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Ipakita kaagad ang mga napiling package"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "I-install"
-#: steps_gtk.pm:436
-#, fuzzy, c-format
+#: steps_gtk.pm:519
+#, c-format
msgid "Load/Save selection"
-msgstr "Pagpili ng package"
+msgstr ""
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Ina-update ang pagpili ng package"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Maliitang install"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Pangangasiwa ng Software"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Piliin ang mga package na gusto ninyong i-install"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Nag-i-install"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Walang detalye"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Nalalabing oras "
+msgid "Time remaining:"
+msgstr ""
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Nagkukuro-kuro"
+msgid "(estimating...)"
+msgstr ""
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d mga package"
-msgstr[1] "%d mga package"
+msgstr[0] ""
+msgstr[1] ""
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Kabuuan"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Configure"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "hindi na-configure"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr ""
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "May \"error\" na nangyari"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Piliin ang inyong layout ng keyboard."
+msgid "Please choose your keyboard layout"
+msgstr "Piliin ang inyong layout ng keyboard"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Narito ang buong talaan ng mga available na keyboard"
+msgid "Here is the full list of available keyboards:"
+msgstr ""
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "I-install/I-upgrade"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Ito ba ay install o upgrade?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "I-install"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "I-pgrade ang %s"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
+msgid "Encryption key for %s"
+msgstr "Encryption key para sa %s"
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
+msgid "Cancel installation, reboot system"
msgstr ""
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
-msgstr "Encryption key para sa %s"
+msgid "New Installation"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
-msgstr "Kino-configure ang IDE"
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+msgid "CD/DVD"
msgstr ""
-"Walang puwang para sa 1MB na bootstrap! Magpapatuloy ang install, pero para "
-"ma-boot ang inyong sistema, kailangan ninyong gumawa ng partisyon ng "
-"bootstrap sa DiskDrake"
-#: steps_interactive.pm:236
-#, fuzzy, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
msgstr ""
-"Walang puwang para sa 1MB na bootstrap! Magpapatuloy ang install, pero para "
-"ma-boot ang inyong sistema, kailangan ninyong gumawa ng partisyon ng "
-"bootstrap sa DiskDrake"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -999,73 +1199,71 @@ msgstr ""
"ang Ok pagkatapos. Kung wala kayo nito, pindutin ang Cancel para iwasang\n"
"mag-install mula sa CD-ROM na ito."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Naghahanap ng mga available na package..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-#: steps_interactive.pm:405
-#, fuzzy, c-format
+#: steps_interactive.pm:428
+#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-"Pakipili ang i-load o i-save ang pagpili ng package sa floppy.\n"
-"Ang format ay katulad ng sa mga ginawang auto_install na floppy."
-#: steps_interactive.pm:407
-#, fuzzy, c-format
+#: steps_interactive.pm:430
+#, c-format
msgid "Load"
-msgstr "XLoad"
+msgstr ""
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "I-save"
-#: steps_interactive.pm:415
-#, fuzzy, c-format
+#: steps_interactive.pm:438
+#, c-format
msgid "Bad file"
-msgstr "I-load ang mga file"
+msgstr ""
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Maliitang install"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Ang piniling laki ay mas malaki sa available na puwang"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Uri ng install"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1074,82 +1272,126 @@ msgstr ""
"Wala pa kayong napiling pangkat ng mga package.\n"
"Pakipili ang maliitang pag-i-install na gusto ninyo:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "May X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "May pinakabatayang dokumento (inirerekomenda!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Talagang maliitang install (walang urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Inihahanda ang pag-i-install"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Ini-install ang package na %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "May error sa pagsasaayos ng mga package:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Magpatuloy pa rin?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr ""
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr ""
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr ""
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "I-save ang mga piniling package"
+msgstr ""
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "May error sa pag-i-install ng mga package na:"
+msgstr ""
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Configuration matapos ang install"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Mga update"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Ang mga sumusunod na package ay ii-install"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Kabiguan kung nagdadagdag ng medium"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1172,135 +1414,81 @@ msgstr ""
"\n"
"Gusto ninyong i-install ang mga update ?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr ""
-"Nakikipag-alam sa mirror para makuha nag talaan ng mga available na "
-"package..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Hindi nakayang makipag-alam sa mirror na %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s sa %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Hardware"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Sound card"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Mayroon ba kayong ISA na sound card?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Patakbuhin ang \"alsaconf\" o \"sndconfig\" pagkatapos mag-install para i-"
-"configure ang iyong sound card"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Walang natiktikang sound card. Subukan ang \"harddrake\" pagkatapos mag-"
-"install"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Graphical interface"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Network & Internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Mga Proxy"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "na-configure"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Level ng Seguridad"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Firewall"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "na-activate"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "na-disable"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr ""
"Hindi pa ninyo na-configure ang X. Sigurado kayong gusto ninyong gawin ito?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "Inihahanda ang bootloader..."
-
-#: steps_interactive.pm:1018
-#, fuzzy, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Preparing initial startup program..."
msgstr ""
-"Mukhang mayroon kayong OldWorld (makaluma) o Hindi Kilalang\n"
-"makina, hindi gagana ang yaboot para sa inyo.\n"
-"Ang install ay magpapatuloy, ngunit kakailanganin ninyong\n"
-"gamitin ang BootX o ibang paraan para i-boot ang inyong makina"
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Gusto ninyong gamiting ang aboot?"
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
+msgid "Be patient, this may take a while..."
msgstr ""
-"May error sa pag-install ng aboot,\n"
-"subukang ipilit ang pag-i-install kahit na sirain nito ang unang partisyon?"
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
@@ -1309,17 +1497,17 @@ msgstr ""
"Sa level ng seguridad na ito, ang access sa mga file na nasa partisyon ng "
"Windows ay limitado sa tagapangasiwa."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Magsuksok ng blangkong floppy sa drive %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Lumilikha ng auto install floppy..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1330,52 +1518,16 @@ msgstr ""
"\n"
"Gusto ninyo ba talagang sumuko ngayon?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Maligayang bati"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "I-reboot"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Gumawa ng auto install floppy"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Ang auto install ay maaaring maging talagang\n"
-"automatic kung gugustuhin. Sa ganitong kaso\n"
-"hahawakan nito ang hard drive!! (Ito ay sinadya\n"
-"para sa pag-i-install sa ibang box o makina).\n"
-"\n"
-"Maaari ninyong naising i-replay ang pag-i-install.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Gawin ulit"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Na-automatic"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "I-save ang mga piniling package"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1408,7 +1560,7 @@ msgstr "Mouse"
msgid ""
"_: Keep these entry short\n"
"Hard drive detection"
-msgstr "Pagtitiktik ng hard drive"
+msgstr "Pagtitiktik ng hard disk drive"
#: steps_list.pm:21 steps_list.pm:22
#, c-format
@@ -1466,13 +1618,6 @@ msgid ""
"Users"
msgstr "Users"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Pagne-Network"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1515,67 +1660,12 @@ msgid ""
"Exit"
msgstr "Exit"
-#~ msgid "All"
-#~ msgstr "Lahat"
-
-#~ msgid "TV card"
-#~ msgstr "TV card"
-
-#~ msgid "Boot"
-#~ msgstr "Boot"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Authentication"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "%d mga package"
-#~ msgstr[1] "%d mga package"
-
-#~ msgid "%d packages"
-#~ msgstr "%d mga package"
-
-#~ msgid "Language"
-#~ msgstr "Wika"
-
-#~ msgid "License"
-#~ msgstr "Lisensiya"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "Piliin ang klase ng pag-i-install"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "Nagkukuro-kuro"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "Piliin ang mga package na ii-install"
-
-#~ msgid "Users"
-#~ msgstr "Users"
-
-#~ msgid "Networking"
-#~ msgstr "Pagne-Network"
-
-#~ msgid "Configure X"
-#~ msgstr "I-configure ang X"
-
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
#~ msgstr ""
-#~ "Hindi mapasok ang mga \"kernel module\" na katapat ng inyong kernel (ang "
-#~ "file na %s ay nawawala), nangangahulugang hindi naka-sync ang inyong boot "
-#~ "floppy sa Installation medium (lumikha ng bagong boot floppy)"
+#~ "Nakikipag-alam sa web site ng %s para makuha ang talaan ng mga available "
+#~ "na mirror..."
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Pumili ng mirror kung saan kukunin ang mga package"
diff --git a/perl-install/install/share/po/tr.po b/perl-install/install/share/po/tr.po
index b233b8f4e..22f470bf8 100644
--- a/perl-install/install/share/po/tr.po
+++ b/perl-install/install/share/po/tr.po
@@ -1,177 +1,247 @@
-# translation of DrakX-tr.po to Turkish
-# Copyright (C) 2000,2003 Free Software Foundation, Inc.
-# Copyright (c) 2000 Mandriva
-# ############################################
-#
-# Ömer Fadıl USTA <omer_fad@hotmail.com> , 1999-2003.
-# Tuncay YENİAY <tuncayyeniay@mynet.com>,2002.
-# Nazmi Savga <nsavga@doruk.net.tr>,2001.
-# Durmuş Celep <durmusc_tr@yahoo.com>,2002.
-# Erçin EKER <erc.caldera@gmx.net>, 2003.
-#
-# #############################################
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Atilla ÖNTAŞ <atilla_ontas@hotmail.com>, 2008-2016
+# tarakbumba <tarakbumba@gmail.com>, 2013-2014,2016
+# tarakbumba <tarakbumba@gmail.com>, 2013
+# Erçin EKER <erc.caldera@gmx.net>, 2003
+# Fırat Kutlu <firatkutlu@gmail.com>, 2014
+# Muha Aliss <muhaaliss@gmail.com>, 2021
+# Serdar Sağlam <teknomobil@msn.com>, 2019
msgid ""
msgstr ""
-"Project-Id-Version: DrakX-tr\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-09-26 06:29+0300\n"
-"Last-Translator: Ömer Fadıl USTA <omer_fad@hotmail.com>\n"
-"Language-Team: Turkish <tr@li.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2021-02-20 01:38+0000\n"
+"Last-Translator: Muha Aliss <muhaaliss@gmail.com>\n"
+"Language-Team: Turkish (http://www.transifex.com/MageiaLinux/mageia/language/"
+"tr/)\n"
+"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
#, c-format
-msgid "Do you have further supplementary media?"
-msgstr "Başka var mı?"
+msgid "Join Us!"
+msgstr "Bize Katılın!"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: ../../advertising/02_IM_mageia.pl:1
#, c-format
-msgid ""
-"The following media have been found and will be used during install: %s.\n"
-"\n"
-"\n"
-"Do you have a supplementary installation medium to configure?"
-msgstr ""
+msgid "Make it yours!"
+msgstr "Sizin olsun!"
-#: any.pm:166
+#: ../../advertising/03_IM_mageia.pl:1
#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
+msgid "Your choice!"
+msgstr "Sizin seçiminiz!"
-#: any.pm:167
+#: ../../advertising/04_IM_mageia.pl:1
#, c-format
-msgid "Network (HTTP)"
-msgstr "Ağ %s"
+msgid "Office tools"
+msgstr "Ofis araçları"
-#: any.pm:168
+#: ../../advertising/05_IM_mageia.pl:1
#, c-format
-msgid "Network (FTP)"
-msgstr "Ağ %s"
+msgid "Home entertainment"
+msgstr "Ev eğlencesi"
-#: any.pm:169
+#: ../../advertising/06_IM_mageia.pl:1
#, c-format
-msgid "Network (NFS)"
-msgstr ""
+msgid "For kids"
+msgstr "Çocuklar için"
-#: any.pm:211
+#: ../../advertising/07_IM_mageia.pl:1
#, c-format
-msgid "URL of the mirror?"
-msgstr ""
+msgid "For family!"
+msgstr "Aile için!"
-#: any.pm:217
+#: ../../advertising/08_IM_mageia.pl:1
#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr ""
+msgid "For developers!"
+msgstr "Geliştiriciler için!"
-#: any.pm:228
+#: ../../advertising/09_IM_mageia.pl:1
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Yansı adreslerini almak için Mandriva Linux web sayfasına bağlantı kuruluyor"
+msgid "Thank you!"
+msgstr "Teşekkürler!"
-#: any.pm:233
-#, fuzzy, c-format
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Özgür olun!"
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr "Başka tamamlayıcı veri kaynağınız var mı?"
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
+#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
msgstr ""
-"Yansı adreslerini almak için Mandriva Linux web sayfasına bağlantı kuruluyor"
+"Şu veri kaynağı bulundu ve kurulumda kullanılacak: %s\n"
+"\n"
+"\n"
+"Yapılandırılacak tamamlayıcı bir veri kaynağınız var mı?"
+
+#: any.pm:162
+#, c-format
+msgid "Network (HTTP)"
+msgstr "Ağ (HTTP)"
+
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
+msgstr "Ağ (FTP)"
-#: any.pm:243
+#: any.pm:164
#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Paketleri alacağınız bir yansı adresi seçiniz"
+msgid "Network (NFS)"
+msgstr "Ağ (NFS)"
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
-msgstr ""
+msgstr "NFS kurulumu"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
-msgstr ""
+msgstr "NFS kaynağı için bir sunucu adı ve dizini giriniz."
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
-msgstr ""
+msgstr "Makine adı yok"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
-msgstr ""
+msgstr "Dizin \"/\" ile başlamalıdır."
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
-msgstr ""
+msgstr "NFS bağı için sunucu adı?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
-msgstr "Dizin:"
+msgstr "Dizin"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
-msgstr ""
+msgstr "Tamamlayıcı"
-#: any.pm:341
-#, fuzzy, c-format
+#: any.pm:300
+#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
-msgstr "%s üzerinde %s bulunamadı"
+msgstr ""
+"Bu yansı üzerinde paket listesi bulunamadı. Yerinin doğru olduğundan emin "
+"olun."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Kurulu paketler inceleniyor..."
+msgid "Core Release"
+msgstr "Core Release"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
+msgid "Tainted Release"
+msgstr "Tainted Release"
+
+#: any.pm:329
+#, c-format
+msgid "Nonfree Release"
+msgstr "Nonfree Release"
+
+#: any.pm:367
+#, c-format
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
+"Makinenizdeki bazı donanımların özgür yazılım sürücülerinin çalışması için, "
+"özgür olmayan üretici yazılımına gereksinimi vardır."
-#: any.pm:424
+#: any.pm:368
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Güncellenecek paketler bulunuyor"
+msgid "You should enable \"%s\""
+msgstr "\"%s\" etkinleştirmelisiniz"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "\"%s\" sistemlerin çeşitli parçalarını ve uygulamalarını içerir"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "\"%s\" özgür olmayan yazılım içerir.\n"
+
+#: any.pm:421
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
msgstr ""
-"Bu sunucu/sunucuları seçmiştiniz: %s\n"
-"\n"
-"\n"
-"Bu sunucular öntanımlı olarak etkinleştirilecektir. Bilinen bir güvenlik\n"
-"açığı yoktur, ancak dağıtımdan sonra bazı açıklar bulunmuş olabilir.\n"
-"Bu durumda bu sunucuları mümkün olan en kısa sürede güncellemelisiniz.\n"
-"\n"
-"\n"
-"Bu sunucuları gerçekten kurmak istiyor musunuz?\n"
+"Belirli aygıtların çalışması için gereken üretici yazılımlarını da içerir "
+"(örn: bazı ATI/AMD ekran kartları, bazı ağ kartları, bazı RAID kartları, ...)"
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+"\"%s\" yazılım patentlerinden dolayı her ülkede dağıtılamayan yazılım içerir."
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr "İlave yeteneklerle yenilenen \"%s\" adresinden yazılım da içerir."
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "İsterseniz burada daha fazla ortam etkinleştirebilirsiniz."
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "Bu araç \"%s\" ortamı için paket güncellemelerini sağlar"
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Kurulu paketler inceleniyor..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Yükseltilecek paketler bulunuyor"
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Yükseltmeye hazırlık olmak üzere paketler kaldırılıyor..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -179,87 +249,92 @@ msgid ""
"\n"
"Do you really want to remove these packages?\n"
msgstr ""
-"Sisteminizi güncellemek için şu paketler kaldırılacak: %s\n"
+"Sisteminizi yükseltmek için şu paketler kaldırılacak: %s\n"
"\n"
"\n"
"Bu paketleri kaldırmak istiyor musunuz?\n"
-#: any.pm:1055
-#, fuzzy, c-format
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "%s dosyası okunurken hata oluştu"
+
+#: any.pm:1283
+#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "Bu paketlerinde kurulu olması gerekiyor:\n"
+msgstr "Şu diskler yeniden adlandırılacak:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
-msgstr ""
+msgstr "%s (eski adı %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Ağ"
-#: any.pm:1137
-#, fuzzy, c-format
+#: any.pm:1365
+#, c-format
msgid "Please choose a media"
-msgstr "Lütfen seçin"
+msgstr "Lütfen bir medya seçin"
-#: any.pm:1153
-#, fuzzy, c-format
+#: any.pm:1381
+#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Bu dosya zaten var. Üzerine yazılsın mı?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "İzin verilmedi"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
-msgstr ""
+msgstr "Kötü NFS adı"
-#: any.pm:1226
-#, fuzzy, c-format
+#: any.pm:1454
+#, c-format
msgid "Bad media %s"
-msgstr "%s ortamı eklendi"
+msgstr "Kötü veri kaynağı %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Disk bölümlemesi yapılmadan ekran örnekleri alınamaz."
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Ekran örnekleri %s kurulduktan sonra mümkün olacak"
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
-msgstr "Kuruluyor"
+msgstr "Kurulum"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Yapılandırma"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Ayrıca %s biçemlendirilmelidir"
@@ -270,7 +345,7 @@ msgid ""
"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
"You can find some information about them at: %s"
msgstr ""
-"Bilgisayarınızdaki bazı donanımlar çalışmak için \"özgün\" sürücüler\n"
+"Bilgisayarınızdaki bazı donanımlar çalışmak için \"tescilli\" sürücüler\n"
"gerektiriyor. Bunlar hakkında bilgi bulabileceğiniz adres: %s"
#: interactive.pm:22
@@ -283,108 +358,147 @@ msgstr "Ağ bağlanıyor"
msgid "Bringing down the network"
msgstr "Ağ ayrılıyor"
-#: media.pm:703 media.pm:714
+#: media.pm:397
#, c-format
-msgid "Downloading file %s..."
-msgstr "%s dosyası indiriliyor..."
+msgid "Please wait, retrieving file"
+msgstr "Dosya alınıyor. Lütfen bekleyin"
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "ortam eklenemiyor"
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
-msgstr ""
+msgstr "Bazı paketler sonradan kullanım için disklere kopyalanıyor"
-#: media.pm:861
-#, fuzzy, c-format
+#: media.pm:797
+#, c-format
msgid "Copying in progress"
-msgstr "Algılama sürüyor"
+msgstr "Kopyalama sürüyor"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "zorunlu"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "önemli"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "çok hoş"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "güzel"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "belki"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "XML meta-data'dan paket bilgileri alınıyor..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"\"%s\" ortamı için xml bilgisi yok, yalnız %s paketi için kısmi bir sonuç,"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Tanımlanmamış"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"%s tarafından istenen bazı paketler kurulamaz:\n"
+"%s"
+
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "Bir hata oluştu:"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "Bir ölümcül hata oluştu: %s."
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr "Yeniden sorma"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d kurulum yönergesi başarısız oldu"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Paket kurulumu başarısız oldu:"
-#: share/meta-task/compssUsers.pl:11
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "İş istasyonu"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "Ofis iş istasyonu"
-#: share/meta-task/compssUsers.pl:15
-#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
-msgstr ""
-"Ofis programları: kelime işlemciler (OpenOffice.org Writer, Kword), "
-"OpenOffice.org Calc, Kspread, pdf göstericiler, vb.."
-
-#: share/meta-task/compssUsers.pl:16
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Ofis programları: kelime işlemciler (kword, abiword), kspread, gnumeric, pdf "
-"göstericiler, vb.."
+"Ofis programları: kelime işlemciler (LibreOffice Writer, Kword), LibreOffice "
+"Calc, Kspread, pdf göstericiler, vb.."
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Oyun Konsolu"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Eğlence programları: kart oyunları, taktik ve strateji, vb.."
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Çoklu ortam konsolu"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Ses ve video çalma/düzenleme uygulamaları"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Internet konsolu"
-#: share/meta-task/compssUsers.pl:32
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:37
+#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
@@ -392,205 +506,205 @@ msgstr ""
"E-posta alışverişi ve haber grubu istemci programları (pine, mutt, tin..) ve "
"web istemcileri "
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Ağ Makinası (client)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "ssh içeren diğer ağ öğeleri için protokoller"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Sisteminizin ayarlarını düzenleyecek uygulama"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Konsol Araçları"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Metin düzenleyiciler, kabuklar, dosya araçları, terminaller"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Geliştirme"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "C ve C++ geliştirme kütüphaneleri, programlar ve include dosyaları"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Belgeler"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Serbest Yazılım ve Linux üzerine Kitaplar ve Nasıl belgeleri"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Linux Standartları Temeli. Üçüncü parti uygulama desteği"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Web Sunucu"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:84
+#, c-format
msgid "Groupware"
msgstr "Grup"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Kolab Sunucu"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Güvenlik Kalkanı/Router"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Internet ağ geçidi"
-#: share/meta-task/compssUsers.pl:83
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:92
+#, c-format
msgid "Mail/News"
-msgstr "/Dosya/_Yeni"
+msgstr "Posta/Haber"
-#: share/meta-task/compssUsers.pl:84
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:93
+#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Postfix posta sunucu"
+msgstr "Postfix posta sunucu, Inn haber sunucu"
-#: share/meta-task/compssUsers.pl:87
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:97
+#, c-format
msgid "Directory Server"
-msgstr "CD'den Geri Al"
+msgstr "Dizin Sunucusu"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP sunucusu"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
-msgstr ""
+msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "Alan adı ve Ağ Bilgileri Sunucusu"
-#: share/meta-task/compssUsers.pl:99
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:112
+#, c-format
msgid "File and Printer Sharing Server"
-msgstr "Yazdırma Sunucusu"
+msgstr "Dosya ve Yazdırma Paylaşım Sunucusu"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "NFS sunucu, Samba sunucu"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Veritabanı"
-#: share/meta-task/compssUsers.pl:104
-#, fuzzy, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL veya MySQL veritabanı sunucusu"
+#: share/meta-task/compssUsers.pl:118
+#, c-format
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "PostgreSQL veya MariaDB veritabanı sunucusu"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache ve Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Posta"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Postfix posta sunucu"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL veya MySQL veritabanı sunucusu"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL veya MariaDB veritabanı sunucusu"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Ağ Makinası sunucusu"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "NFS sunucusu, SMB sunucusu, Vekil Sunucu, ssh Sunucu"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Grafik Ortamı"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE İş istasyonu"
+msgid "Plasma Workstation"
+msgstr "Plasma İş istasyonu"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr "KDE Masaüstü Ortamı, temel grafik ortamla birlikte birleşik araçlar"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "GNOME İş istasyonu"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -598,60 +712,114 @@ msgid ""
msgstr ""
"Kullanıcı dostu uygulamalar ve masaüstü araçlarına sahip görsel bir ortam "
-#: share/meta-task/compssUsers.pl:142
-#, fuzzy, c-format
-msgid "IceWm Desktop"
-msgstr "Masaüstü"
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr "Xfce İş İstasyonu"
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Kullanıcı dostu uygulamalar ve masaüstü araçlarına sahip hafif bir görsel "
+"bir ortam "
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "MATE İş istasyonu"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Cinnamon İş istasyonu"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "GNOME temelli bir grafik ortamı"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "LXQt Masaüstü"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "Yeni nesil QT ile derlenmiş hafif masaüstü ortamı"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr "Enlightenment Masaüstü"
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr "Bunlara özgülenmiş hızlı ve hafif bir görsel ortam"
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "LXDE Masaüstü"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Hafif ve hızlı bir grafiksel ortam"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Diğer Görsel Masaüstleri"
-#: share/meta-task/compssUsers.pl:147
-#, fuzzy, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm, etc"
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, v.b."
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
-msgstr "Yardımcı araçlar"
+msgstr "Araçlar"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH Sunucu"
-#: share/meta-task/compssUsers.pl:177
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:225
+#, c-format
msgid "Webmin"
-msgstr "İnternet Kamerası"
+msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:226
+#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Mandriva Terminal Sunucu Yapılandırması"
+msgstr "Webmin Uzak Yapılandırma Sunucusu"
-#: share/meta-task/compssUsers.pl:182
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:230
+#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Ağ İzlemesi"
+msgstr "Ağ Araçları/İzleme"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
-msgstr ""
+msgstr "İzleme araçları, işlem sayımı, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
-#, fuzzy, c-format
-msgid "Mandriva Wizards"
-msgstr "<b>Mandriva Store</b>"
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr "Mageia Sihirbazları"
-#: share/meta-task/compssUsers.pl:188
-#, fuzzy, c-format
+#: share/meta-task/compssUsers.pl:236
+#, c-format
msgid "Wizards to configure server"
-msgstr "\"%s\" yazıcısını yapılandırılması başarısız!"
+msgstr "Sunucuyu yapılandırmak için Sihirbazlar"
#: steps.pm:85
#, c-format
@@ -662,7 +830,7 @@ msgstr ""
"Bir hata oluştu, ancak sebebi saptanamadı.\n"
"Devam edebilirsiniz, ama risk size ait!"
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -682,306 +850,369 @@ msgstr "`%s' adımına başlanıyor\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux Kurulum %s"
+msgid "%s Installation %s"
+msgstr "%s Kurulum %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "gezinmek için <Tab>/<Alt-Tab>"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Xorg sunucusunun başlaması yavaş. Lütfen bekleyin..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"Sistem kaynaklarınız kısıtlı. Mandriva Linux'yi kurarken sorunlarınız\n"
+"Sistem kaynaklarınız kısıtlı. %s'yi kurarken sorunlarınız\n"
"olabilir. Bu durum oluşursa, metin tabanlı kurulumu deneyebilirsiniz.\n"
"Bunun için CDROM'dan açtıktan sonra `F1'e basın, ve komut satırına\n"
"`text' yazın."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Paket Grubu Seçimi"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "%s Plasma Masaüstünü Kur"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "%s GNOME Masaüstünü Kur"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Kişisel kurulum"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Plasma Masaüstü"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "GNOME Masaüstü"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Kişisel Masaüstü"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "'%s' masaüstünün ön izlemesini burada görebilirsiniz."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Daha büyük ön izlemeler görebilmek için resim üzerine tıklayın"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Paket Grubu Seçimi"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Tek tek paket seçimi"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Toplam boyut: %d / %d MB"
+msgid "Unselect All"
+msgstr "Tümünü Seçimden Çıkar"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Hatalı paket"
+msgid "Total size: %d / %d MB"
+msgstr "Toplam boyut: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Sürüm: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Boyut: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Önem: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Bu paket seçimlik değildir"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "%s paketinin kayıplığından"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "%s' den dolayı yetersiz"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
-msgstr ""
+msgstr "%s yükseltmesi deneniyor"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
-msgstr ""
+msgstr "%s'i korumak için"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr "Yeterli yeriniz kalmadığından bu paketi seçemezsiniz"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Aşağıdaki paketler kurulacaktır"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Aşağıdaki paketler sistemden silinecektir"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Bu zorunlu bir pakettir, seçmemek olmaz"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Bu paketi seçimlerinizden çıkaramazsınız. Zaten kurulmuş."
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
-msgstr "Bu paketi seçimlerinizden çıkaramazsınız. Güncellenmek zorunda"
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr "Bu paketi seçimlerinizden çıkaramazsınız. Yükseltilmek zorunda"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Kendiliğinden seçilen paketleri göster"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
-msgstr "Kurulum"
+msgstr "Kur"
-#: steps_gtk.pm:436
-#, fuzzy, c-format
+#: steps_gtk.pm:519
+#, c-format
msgid "Load/Save selection"
-msgstr "Seçimi kaydet"
+msgstr "Seçimi kaydet/yükle"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
-msgstr "Paket seçimini güncellemesi"
+msgstr "Paket seçimini güncelleniyor"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr "Hiyerarşik ve düz paket listesi arasında geçiş yapın"
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "En ufak kurulum"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Yazılım Yöneticisi"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Kurmak istediğiniz paketleri seçin"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Kuruluyor"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Ayrıntısız"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Kalan süre "
+msgid "Time remaining:"
+msgstr "Kalan süre :"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Tahminen"
+msgid "(estimating...)"
+msgstr "(tahminen...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d paket"
+msgstr[0] "%d adet paket"
+msgstr[1] "%d adet paket"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Özet"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Yapılandır"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "yapılandırılmamış"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
+"Şu kurulum medyası bulundu.\n"
+"Bu bazılarını geçmek isterseniz, şimdi seçimden çıkarabilirsiniz."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
+"Kurulumdan önce CD'lerin içeriğini sabit diskinize kopyalayabilirsiniz.\n"
+"Sabit diskten kuruluma devam edilecek ve paketler sistem tamamen "
+"kurulduğunda da hazır olacaktır."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
-msgstr ""
+msgstr "CD'lerin tamamını kopyala"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Bir hata oluştu"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Lütfen klavye düzeninizi seçiniz."
+msgid "Please choose your keyboard layout"
+msgstr "Lütfen klavye düzeninizi seçiniz"
-#: steps_interactive.pm:99
-#, fuzzy, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Mevcut tüm ülkelerin listesi"
+#: steps_interactive.pm:109
+#, c-format
+msgid "Here is the full list of available keyboards:"
+msgstr "Mevcut tüm klavye düzenlerinin listesi:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
-msgstr "Kurulum/Güncelleme"
+msgstr "Kur/Yükselt"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
-msgstr "Bu bir yükleme mi yoksa güncelleme mi ?"
+msgstr "Bu bir yükleme mi yoksa yükseltme mi ?"
-#: steps_interactive.pm:134
+#: steps_interactive.pm:159
#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
-msgstr ""
+msgstr "Kurulum"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
-msgstr "%s güncelle"
-
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
+msgstr "%s Yükselt"
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "%s için Parola"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "Kurulumu iptal et, sistemi yeniden başlat"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "IDE yapılandırması"
+msgid "New Installation"
+msgstr "Yeni Kurulum"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
-" 1 MB lık önyükleme bölümünün oluşturulması için disk başlangıcında yeterli "
-"alan yok! Kurulum devam edecektir fakat açılış için DiskDrake'i kullanarak "
-"bir önyükleme disk bölümü oluşturmanız gerekecek"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Önceki kurulumu güncelle (önerilmez)"
-#: steps_interactive.pm:236
-#, fuzzy, c-format
+#: steps_interactive.pm:223
+#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-" 1 MB lık önyükleme bölümünün oluşturulması için disk başlangıcında yeterli "
-"alan yok! Kurulum devam edecektir fakat açılış için DiskDrake'i kullanarak "
-"bir önyükleme disk bölümü oluşturmanız gerekecek"
+"Kurulum aracı, halihazırda kurulu olan Mageia sisteminizin güvenli bir\n"
+"biçimde %s sistemine yükseltilemeyeceğini algıladı.\n"
+"\n"
+"Önceki kurulumunuzun yerini alacak yeni bir kurulum önerilir.\n"
+"\n"
+"Uyarı: \"Yeni Kurulum\"u seçmeden önce tüm kişisel verilerinizi "
+"yedeklemeniz\n"
+"önerilir."
-#: steps_interactive.pm:328
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "CD/DVD Yapılandırılıyor"
+
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -994,73 +1225,74 @@ msgstr ""
"\"%s\" etiketli Cd-Rom'u sürücüye takın ve TAMAM'a basın.\n"
"Eğer Cd-Rom elinizde yoksa bu Cd-Rom'dan kurmamak için VAZGEÇ'e basın."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Mevcut paketler taranıyor"
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
+"Sisteminizde kurulum veya yükseltme için yeterli alan yok (% dMB > %dMB)"
-#: steps_interactive.pm:405
-#, fuzzy, c-format
+#: steps_interactive.pm:428
+#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-"Lütfen disketteki paket seçimini yükle veya kaydete tıklayınız.\n"
-"Otomatik kurulum disketleriyle aynı biçemde oluşturulacaktır."
+"Lütfen paket seçimini yükle veya kaydete tıklayınız.\n"
+"Otomatik kurulum dosyaları ile aynı biçemde oluşturulacaktır."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
-msgstr "Yük"
+msgstr "Yükle"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Kaydet"
-#: steps_interactive.pm:415
-#, fuzzy, c-format
+#: steps_interactive.pm:438
+#, c-format
msgid "Bad file"
-msgstr "Dosya yükle"
+msgstr "Dosya hatalı"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr ""
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "En ufak kurulum"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr "Masaüstü Seçimi"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
+msgid "You can choose your workstation desktop profile."
+msgstr "İş istasyonu masaüstü profili seçebilirsiniz."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Seçilen boyut boş disk alanından daha büyük"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Kurulum türü"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1069,82 +1301,130 @@ msgstr ""
"Seçilmiş bir paket grubu yok\n"
"Lütfen isteğinize uyan ve en az yer kaplayacak kurulumu seçin:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "X ile"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Önerilen paketleri kur"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Temel belgeler olsun (önerilir!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
-msgstr "Gerçekten en küçük kurulum (özellikle urpmi-siz)"
+msgstr "Gerçekten en küçük kurulum (özellikle urpmi yok)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Yükseltme hazırlanıyor..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Kurulum hazırlanıyor"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "%s paketi kuruluyor"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Paketler düzenlenirken bir hata oluştu:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Yine de devam edilsin mi?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
-msgstr ""
+msgstr "Yeniden Dene"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
-msgstr ""
+msgstr "Bu paketi geç"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
-msgstr ""
+msgstr "\"%s\" medyasından tüm paketleri geç."
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "Paket seçimlerini Kaydet"
+msgstr "Medya ve paket seçimine geri dön."
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "Paketler kurulurken bir hata oluştu:"
+msgstr "Paket %s kurulurken bir hata oluştu."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Kurulum sonrası yapılandırma"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
-msgstr ""
+msgstr "Lütfen Update Module medyasının %s sürcüsünde olduğuna emin olun"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Güncellemeler"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Şimdi çevrimiçi ortam ayarlama fırsatınız var."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Bu sayede güvenlik güncellemelerini edinebileceksiniz."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"Bu ortamları ayarlamak için çalışan bir İnternet bağlanısına \n"
+"ihtiyacınız var.\n"
+"\n"
+"Güncelleme ortamını ayarlamak istiyor musunuz?"
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Aşağıdaki paketler kurulacaktır"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Yeniden dene?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Ortam eklenirken hata oluştu"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1168,149 +1448,99 @@ msgstr ""
"\n"
"Güncellemeleri kurmak istiyor musunuz ?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr ""
-"Güncelleme paketlerinin listesini almak için yansı adresine bağlantı "
-"kuruluyor"
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "%s yansısı ile iletişim kurulamıyor"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
-msgstr "%2$s üstündeki %1$s"
+msgstr "%s üstündeki %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Donanım"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Ses Kartı"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Bir ISA ses kartınız var mı?"
-
-#: steps_interactive.pm:904
-#, fuzzy, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Ses kartınızı yapılandırmak için kurulumdan sonra \"sndconfig\" aracını "
-"çalıştırın."
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "Ses kartı bulunamadı. Kurulumdan sonra \"harddrake\" ile deneyin."
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Grafiksel arabirim"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Ağ & İnternet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Vekil Sunucular"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "yapılandırıldı"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Güvenlik Seviyesi"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
-msgstr "AteşDuvarı"
+msgstr "Güvenlik Duvarı"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "etkinleştirilmiş"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "pasifleştirilmiş"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "X'i yapılandırmadınız. Bunu yapmak istediğinizden emin misiniz?"
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "Önyükleyici hazırlanıyor"
-
-#: steps_interactive.pm:1018
-#, fuzzy, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"Çok eski ya da bilinmeyen bir makinaya sahipmişsiniz gibi görünüyor.\n"
-"Yaboot önyükleyicisi düzgün çalışmayacaktır.\n"
-"Kurulum devam edecek ama bu makinayı açmak için\n"
-"BootX veya benzeri araçlar kullanmak zorunda kalacaksınız."
-
-#: steps_interactive.pm:1024
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Do you want to use aboot?"
-msgstr "aboot uygulamasını kullanmak istiyor musunuz?"
+msgid "Preparing initial startup program..."
+msgstr "Birincil başlangıç uygulaması hazırlanıyor..."
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"aboot kurulumunda hata, \n"
-"ilk disk bölümünü yok etse bile yine de kurulmasını istiyor musunuz?"
+msgid "Be patient, this may take a while..."
+msgstr "Sabredin, bu biraz zaman alabilir..."
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
+"Bu güvenlik seviyesinde, Windows bölümündeki dosyalara erişim yönetici "
+"lehine kısıtlanmıştır."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "%s sürücüsüne boş bir disket yerleştirin"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Otomatik kurulum disketi hazırlanıyor"
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1321,50 +1551,15 @@ msgstr ""
"\n"
"Gerçekten çıkmak istiyormusunuz?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Tebrikler"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
-msgstr "Yeniden başla"
-
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Otomatik kurulum disketi oluştur"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Tam otomatik bir kurulum yapılabilir, ancak\n"
-"bu durumda sabit diskiniz tamamen ele geçirilebilir!!\n"
-"(Yani kurulum programı bütün diski kullanmaya kalkabilir).\n"
-"\n"
-"Etkileşimli bir kurulumu da tercih edebilirsiniz.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Etkileşimli"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Otomatik"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Paket seçimlerini Kaydet"
+msgstr "Yeniden başlat"
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
@@ -1372,12 +1567,12 @@ msgstr "Paket seçimlerini Kaydet"
msgid ""
"_: Keep these entry short\n"
"Language"
-msgstr "Kullanacağınız dili seçin"
+msgstr "Dil"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "Yerelleştirme"
#: steps_list.pm:17
#, c-format
@@ -1405,7 +1600,7 @@ msgstr "Sabit disk algılaması"
msgid ""
"_: Keep these entry short\n"
"Installation class"
-msgstr ""
+msgstr "Kurulum sınıfı"
#: steps_list.pm:23
#, c-format
@@ -1433,14 +1628,14 @@ msgstr "Bölümlendirme"
msgid ""
"_: Keep these entry short\n"
"Formatting"
-msgstr ""
+msgstr "Biçimlendirme"
#: steps_list.pm:29
#, c-format
msgid ""
"_: Keep these entry short\n"
"Choosing packages"
-msgstr ""
+msgstr "Paketler seçiliyor"
#: steps_list.pm:31
#, c-format
@@ -1456,13 +1651,6 @@ msgid ""
"Users"
msgstr "Kullanıcılar"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Ağ"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1505,59 +1693,23 @@ msgid ""
"Exit"
msgstr "Çıkış"
-#~ msgid "All"
-#~ msgstr "Tümü"
-
-#~ msgid "TV card"
-#~ msgstr "TV kartı"
-
-#~ msgid "Boot"
-#~ msgstr "Önyükleme"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Kimlik kanıtlama"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "%d packages"
-#~ msgstr "%d paket"
-
-#~ msgid "Language"
-#~ msgstr "Kullanacağınız dili seçin"
-
-#~ msgid "License"
-#~ msgstr "Lisans"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "Kurulum sınıfını seçin"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "Tahminen"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "Kurulacak paketleri seçin"
-
-#~ msgid "Users"
-#~ msgstr "Kullanıcılar"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "Yansının URL bağlantı adresi?"
-#~ msgid "Networking"
-#~ msgstr "Ağ"
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "URL bağlantı adresi ftp:// veya http:// ile başlamak zorundadır."
-#~ msgid "Configure X"
-#~ msgstr "X Yapılandırması"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr "Yansı adreslerini almak için %s web sayfasına bağlantı kuruluyor..."
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
#~ msgstr ""
-#~ "Çekirdek değişikliği yüzünden bazı çekirdek modüllerine erişilemiyor.(%s "
-#~ "Dosyası eksik), bu genel olarak sistem açılış disketinizin sistemi "
-#~ "yüklediğiniz medya ile senkronize olmadığını gösterir.(Lütfen daha yeni "
-#~ "bir açılış disketi oluşturun)"
+#~ "Yansı adreslerini almak için %s web sayfasına bağlantı kurma başarısız"
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Paketleri alacağınız bir yansı adresi seçiniz"
diff --git a/perl-install/install/share/po/uk.po b/perl-install/install/share/po/uk.po
index 8642dedc5..1480930de 100644
--- a/perl-install/install/share/po/uk.po
+++ b/perl-install/install/share/po/uk.po
@@ -1,34 +1,84 @@
-# translation of DrakX-uk.po to ukrainian
-# translation of DrakX.po to ukrainian
-# $Id: uk.po 26602 2006-04-22 07:43:48Z fwang $
-# Copyright (C) 2000,2003, 2004, 2005 Free Software Foundation, Inc.
-# Dmytro Kovalov <kov@tokyo.email.ne.jp>, 2000.
-# Taras Boychuk <btr1@torba.com>, 2003, 2004.
-# Taras Boychuk <btr1@mail.ru>, 2004, 2003.
-# Taras Boychuk <btr1@ukrpost.net>, 2004, 2005.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Yuri Chornoivan <yurchor@ukr.net>, 2011-2016,2018-2019.
+# Yuri Chornoivan <yurchor@ukr.net>, 2019, 2020, 2022.
msgid ""
msgstr ""
-"Project-Id-Version: DrakX-uk\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2005-03-01 01:29+0200\n"
-"Last-Translator: Taras Boychuk <btr1@ukrpost.net>\n"
-"Language-Team: ukrainian <uk@li.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2022-11-21 23:25+0200\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Ukrainian <kde-i18n-uk@kde.org>\n"
+"Language: uk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11"
+" ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100"
+" > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n %"
+" 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
+"X-Generator: Lokalize 20.12.0\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "Долучайтеся до нас!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "Підлаштуйте систему під себе!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "Вибір за вами!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "Офісні інструменти"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "Домашня розважальна система"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "Для дітей"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "Для сім’ї!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "Для розробників!"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Дякуємо!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "Будьте вільними!"
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
-msgstr "Чи маєте Ви наступні додаткові носії?"
+msgstr "Чи маєте ви доступ до вказаних нижче додаткових носіїв?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -36,142 +86,169 @@ msgid ""
"\n"
"Do you have a supplementary installation medium to configure?"
msgstr ""
+"Впродовж встановлення знайдено і буде використано наступне джерело: %s.\n"
+"\n"
+"\n"
+"Чи маєте ви диск підтримки для налаштування?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Мережа (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Мережа (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
-msgstr ""
+msgstr "Мережа (NFS)"
-#: any.pm:211
+#: any.pm:224
#, c-format
-msgid "URL of the mirror?"
-msgstr "Посилання на дзеркало?"
+msgid "NFS setup"
+msgstr "Встановлення NFS"
-#: any.pm:217
+#: any.pm:225
#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr ""
+msgid "Please enter the hostname and directory of your NFS media"
+msgstr "Введіть назву машини або теку з носієм NFS"
-#: any.pm:228
+#: any.pm:229
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Зв'язуюсь з веб-сайтом Mandriva Linux, щоб отримати список наявних джерел..."
+msgid "Hostname missing"
+msgstr "Немає назви машини"
+
+#: any.pm:230
+#, c-format
+msgid "Directory must begin with \"/\""
+msgstr "Назва каталогу має починатися з «/»"
+
+#: any.pm:234
+#, c-format
+msgid "Hostname of the NFS mount ?"
+msgstr "Назва комп'ютера для монтування NFS?"
-#: any.pm:233
-#, fuzzy, c-format
+#: any.pm:235
+#, c-format
+msgid "Directory"
+msgstr "Каталог"
+
+#: any.pm:265
+#, c-format
+msgid "Supplementary"
+msgstr "Додатковий"
+
+#: any.pm:300
+#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+"Can't find a package list file on this mirror. Make sure the location is "
+"correct."
msgstr ""
-"Зв'язуюсь з веб-сайтом Mandriva Linux, щоб отримати список наявних джерел..."
+"На цьому дзеркалі не вдалося знайти перелік пакунків. Переконайтеся, що його "
+"розташування вказано правильно."
-#: any.pm:243
+#: any.pm:325
#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Виберіть сервер, з якого звантажити пакунки"
+msgid "Core Release"
+msgstr "Core Release"
-#: any.pm:273
+#: any.pm:327
#, c-format
-msgid "NFS setup"
-msgstr ""
+msgid "Tainted Release"
+msgstr "Tainted Release"
-#: any.pm:274
+#: any.pm:329
#, c-format
-msgid "Please enter the hostname and directory of your NFS media"
-msgstr ""
+msgid "Nonfree Release"
+msgstr "Nonfree Release"
-#: any.pm:278
+#: any.pm:367
#, c-format
-msgid "Hostname missing"
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
+"Для роботи частини обладнання на вашому комп’ютері слід встановити "
+"мікропрограми з закритим кодом, потрібні для роботи драйверів з відкритим "
+"кодом."
-#: any.pm:279
+#: any.pm:368
#, c-format
-msgid "Directory must begin with \"/\""
+msgid "You should enable \"%s\""
+msgstr "Вам слід уможливити встановлення зі сховища «%s»"
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
msgstr ""
+"У сховищі «%s» містяться різноманітні частини операційної системи та її "
+"програм"
-#: any.pm:283
+#: any.pm:420
#, c-format
-msgid "Hostname of the NFS mount ?"
+msgid "\"%s\" contains non free software.\n"
msgstr ""
+"У сховищі «%s» містяться пакунки з програмним забезпеченням, яке не є "
+"вільним.\n"
-#: any.pm:284
+#: any.pm:421
#, c-format
-msgid "Directory"
-msgstr "Каталог"
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+"Там також мітяться пакунки з мікрокодом, потрібним для роботи деяких "
+"пристроїв (наприклад деяких відеокарток ATI/AMD, деяких мережевих карток, "
+"деяких карток RAID…)"
-#: any.pm:306
+#: any.pm:422
#, c-format
-msgid "Supplementary"
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
msgstr ""
+"У сховищі «%s» містяться пакунки з програмним забезпеченням, яке не можна "
+"вільно поширювати у деяких країнах через порушення патентних прав на це "
+"програмне забезпечення."
-#: any.pm:341
+#: any.pm:423
#, c-format
msgid ""
-"Can't find a package list file on this mirror. Make sure the location is "
-"correct."
+"It also contains software from \"%s\" rebuild with additional capabilities."
msgstr ""
-"Неможливо знайти перелік пакунків на цьому дзеркалі. Переконайтеся, чи "
-"правильне розташування."
+"Також у сховищі «%s» містяться пакунки, які зібрано з додатковими "
+"можливостями, використання яких обмежується патентним законодавством."
-#: any.pm:375
+#: any.pm:429
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Переглядається список вже встановлених пакунків..."
+msgid "Here you can enable more media if you want."
+msgstr "Тут ви можете увімкнути додаткові сховища, якщо це вам потрібно."
-#: any.pm:382
+#: any.pm:447
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr ""
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "У цьому сховищі містяться оновлення пакунків зі сховища «%s»"
-#: any.pm:424
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Переглядається список вже встановлених пакунків…"
+
+#: any.pm:593
#, c-format
msgid "Finding packages to upgrade..."
-msgstr "Шукаю пакунки для поновлення..."
+msgstr "Шукаємо пакунки для поновлення…"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:612
#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
-msgstr ""
-"Ви вибрали такі(ий) сервер(и): %s\n"
-"\n"
-"\n"
-"Ці сервери стандартно активізовані. Для них невідомі будь-які проблеми з\n"
-"безпекою, але деякі можуть бути виявлені. В такому випадку Ви повинні\n"
-"якомога швидше поновити версії цих серверів. \n"
-"\n"
-"\n"
-"Ви хочете дозволити встановлення цих серверів?\n"
+msgid "Removing packages prior to upgrade..."
+msgstr "Вилучаємо пакунків перед поновленням…"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -180,87 +257,92 @@ msgid ""
"Do you really want to remove these packages?\n"
msgstr ""
"Наступні пакунки будуть вилучені, щоб забезпечити поновлення\n"
-"Вашої системи: %s\n"
+"вашої системи: %s\n"
"\n"
"\n"
"Ви справді хочете вилучити ці пакунки?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Помилка при читанні файла %s"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "Назву наступних дисків було змінено:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (попередня назва %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Мережа"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "Будь ласка, виберіть носій"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "Файл вже існує. Переписати?"
+msgstr "Файл вже існує. Перезаписати його?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Доступ заборонено"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
-msgstr ""
+msgstr "Неправильна назва NFS"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
-msgstr "Поганий носій %s"
+msgstr "Пошкоджений носій %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
-msgstr "Не можу робити знімки екрану перед розбиттям на розділи"
+msgid "Cannot make screenshots before partitioning"
+msgstr "Не можна робити знімки екрана перед розбиттям на розділи"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
-msgstr "Знімки екрану стануть можливими після встановлення в %s"
+msgstr "Знімки екрана стануть можливими після встановлення до %s"
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
-msgstr "Встановлюю"
+msgstr "Встановлення"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
-msgstr "Конфігурація"
+msgstr "Налаштовування"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Вам потрібно також відформатувати %s"
@@ -271,10 +353,10 @@ msgid ""
"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
"You can find some information about them at: %s"
msgstr ""
-"Деякі з апаратних засобів на Вашому комп'ютері вимагають драйверів\n"
-"фірм-виготовлювачів для того, щоб працювати вірно. \n"
+"Деякі з апаратних засобів на вашому комп'ютері вимагають драйверів\n"
+"фірм-виробників для того, щоб працювати правильно. \n"
"\n"
-"Ви можете знайти потрібну інформацію про них на: %s"
+"Ви можете знайти потрібну інформацію про них на сторінці %s"
#: interactive.pm:22
#, c-format
@@ -286,317 +368,356 @@ msgstr "Вмикаю мережу"
msgid "Bringing down the network"
msgstr "Вимикаю мережу"
-#: media.pm:703 media.pm:714
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr "Зачекайте, перевіряється файл"
+
+#: media.pm:704
#, c-format
-msgid "Downloading file %s..."
-msgstr "Звантажується файл %s..."
+msgid "unable to add medium"
+msgstr "неможливо додати носій"
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
-msgstr ""
+msgstr "Копіювання деяких пакунків на диски для пізнішого використання"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Триває копіювання"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "повинен мати"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "важливий"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "дуже гарний"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "гарно"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "можливо"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "Отримання даних щодо пакунків з метаданих у форматі XML…"
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Для джерела «%s» немає xml-info. Отримано лише частковий результат для "
+"пакунка %s"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Немає опису"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"Деякі пакунки, необхідні для варіанта %s, неможливо встановити:\n"
+"%s"
+
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "Сталася помилка:"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "Сталася невиправна помилка: %s"
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr "Більше не питати"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d запит на встановлення завершився невдало"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Встановлення пакунка невдале:"
+
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "Робоча станція"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "Офісна робоча станція"
-#: share/meta-task/compssUsers.pl:15
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Програми для офісу: текстові процесори (OpenOffice.org Writer, Kword), "
-"електронні таблиці (OpenOffice.org Calc, Kspread), переглядачі файлів PDF, "
-"тощо"
+"Програми для офісу: текстові процесори (LibreOffice Writer, Kword), "
+"електронні таблиці (LibreOffice Calc, Kspread), переглядачі файлів PDF, тощо"
-#: share/meta-task/compssUsers.pl:16
-#, c-format
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"Програми для офісу: текстові процесори (kword, abiword), бухгалтерські "
-"таблиці (kspread, gnumeric), переглядачі файлів pdf, тощо"
-
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Ігрова станція"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Програми для розваг: ігри-перегони, ігри на дошці, стратегічні, тощо"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Мультимедійна станція"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Звукові та відео програвачі та редактори"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Станція для Інтернету"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
"Набір засобів для читання та передавання електронної пошти та груп новин "
-"(pine, mutt, tin..), та для перегляду інформаційних тенет"
+"(pine, mutt, tin…), а також для перегляду сторінок інтернету"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
-msgstr "Мережевий Комп'ютер (клієнт)"
+msgstr "Мережевий комп'ютер (клієнт)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Клієнти для різних протоколів (ssh включно)"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
-msgstr "Засоби для полегшення конфіґурування Вашого комп'ютера"
+msgstr "Засоби для полегшення налаштування комп'ютера"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Засоби для консолі"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Редактори, командні оболонки, файлові засоби та термінали"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Розробка"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "Бібліотеки для програмування в C, C++, програми та файли include"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Документація"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
-msgstr "Книжки та ЯК ЗРОБИТИ про Лінакс та вільне програмне забезпечення"
+msgstr "Книжки та поради з Linux та вільного програмного забезпечення"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
-msgstr "Стандартна база Лінакс. Підтримка програм сторонніх виробників"
+msgstr "Стандартна база Linux. Підтримка програм сторонніх виробників"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Веб-сервер"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Групова робота"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Сервер Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Захисний шлюз/Маршрутизатор"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Інтернет-шлюз"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "Пошта/Новини"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Поштовий сервер postfix, сервер новин Inn"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Сервер тек"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "Сервер FTP"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "Сервер назв домена і мережевий інформаційний сервер"
+msgstr "Сервер назв домену і мережевий інформаційний сервер"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "Сервер доступу до файлів і друкарок"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "Сервер NFS, сервер Samba"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "База даних"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "Сервери баз даних PostgreSQL і MySQL "
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "Сервери баз даних PostgreSQL і MariaDB"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Тенета/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Пошта"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Поштовий сервер postfix"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "Сервери баз даних PostgreSQL або MySQL "
+msgid "PostgreSQL or MariaDB database server"
+msgstr "Сервери баз даних PostgreSQL або MariaDB"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Мережевий комп'ютер (сервер)"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "Сервер NFS, сервер SMB, проксі-сервер, сервер ssh"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Графічне середовище"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "Робоча станція KDE"
+msgid "Plasma Workstation"
+msgstr "Робоча станція з Плазмою"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr ""
-"Робоче середовище K (KDE) - основне графічне середовище з набором допоміжних "
+"Робоче середовище K (KDE) — основне графічне середовище з набором допоміжних "
"засобів"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "Робоча станція Gnome"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -604,57 +725,114 @@ msgid ""
msgstr ""
"Графічне середовище з дружнім інтерфейсом та програмами, засоби для стільниці"
-#: share/meta-task/compssUsers.pl:142
-#, fuzzy, c-format
-msgid "IceWm Desktop"
-msgstr "Стільниця Plucker"
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr "Робоча станція Xfce"
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Полегшене графічне середовище з дружнім інтерфейсом та програмами, засоби "
+"для стільниці"
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "Робоча станція MATE"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Робоча станція Cinnamon"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Графічне середовище на основі GNOME"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "Стільниця LXQt"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+"Нова версія із портуванням на Qt невибагливого до ресурсів стільничного "
+"середовища"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr "Стільниця Enlightenment"
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+"Швидке, невибагливе до ресурсів графічне середовище з відданими прихильниками"
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "Стільниця LXDE"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "Швидке, невибагливе до ресурсів графічне середовище"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
-msgstr "Інші робочі середовища"
+msgstr "Інші графічні стільниці"
-#: share/meta-task/compssUsers.pl:147
-#, fuzzy, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Icewm, Window Maker, Enlightenment, Fvwm, тощо"
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, тощо"
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Інструменти"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
-msgstr "Сервер SSH "
+msgstr "Сервер SSH"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Сервер віддаленого налаштування Webmin"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "Мережеві інструменти/Слідкування за мережею"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
-msgstr "Інструменти для слідкування, облік процесів, tcpdump, nmap, ..."
+msgstr "Інструменти для слідкування, облік процесів, tcpdump, nmap…"
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Помічники Mandriva"
+msgid "Mageia Wizards"
+msgstr "Помічники Mageia"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Помічники для налаштування сервера"
@@ -665,10 +843,10 @@ msgid ""
"An error occurred, but I do not know how to handle it nicely.\n"
"Continue at your own risk."
msgstr ""
-"Сталася помилка, але я не знаю, як її обробити.\n"
-"Продовжуйте на свій власний ризик."
+"Сталася помилка, але спосіб належного усування її наслідків невідомий.\n"
+"Ви можете ризикнути і продовжити встановлення."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -676,327 +854,385 @@ msgid ""
"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
"\"\n"
msgstr ""
-"Деякі важливі пакунки не вдалося вірно встановити. Ваш\n"
-"компакт-диск або привід дефектні. Перевірте компакт-диск\n"
-"командою \"rpm -qpl media/main/*.rpm\" \n"
+"Деякі важливі пакунки не вдалося правильно встановити. Ваш\n"
+"компакт-диск або пристрій для його читання пошкоджено.\n"
+"Перевірте компакт-диск командою \"rpm -qpl media/main/*.rpm\"\n"
#: steps_auto_install.pm:71 steps_stdio.pm:27
#, c-format
msgid "Entering step `%s'\n"
-msgstr "Починається крок `%s'\n"
+msgstr "Починається крок «%s»\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Встановлення Мандріва лінакс %s"
+msgid "%s Installation %s"
+msgstr "Встановлення %s %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> між елементами"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Сервер Xorg стартує повільно. Зачекайте…"
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"Ваша система має замало ресурсів. Ви можете мати проблеми з встановленням\n"
-"Мандріва лінакса. Якщо це станеться, Ви можете спробувати встановлення в\n"
-"текстовому режимі. Для цього під час завантаження з компакт-диску\n"
-"натисніть F1 і потім введіть \"text\"."
+"Ваша система не є достатньо потужною. У вас можуть виникнути проблеми\n"
+"зі встановленням %s. Якщо такі проблеми виникнуть, спробуйте встановити\n"
+"систему у текстовому режимі. Щоб зробити це, натисніть F1 під час "
+"завантаження\n"
+"з компакт-диска, а потім введіть «text»."
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Вибір носія"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "Встановити робочу станцію %s із Плазмою KDE"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "Встановити робочу станцію %s GNOME"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Вибіркове встановлення"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Стільниця Плазми"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "Стільниця GNOME"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Нетипова стільниця"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Попередній перегляд стільниці «%s»."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Натисніть на зображення, щоб побачити більший розмір"
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Вибір груп пакунків"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Індивідуальний вибір пакунків"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Загальний розмір: %d / %d Мб "
+msgid "Unselect All"
+msgstr "Скасувати весь вибір"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Поганий пакунок"
+msgid "Total size: %d / %d MB"
+msgstr "Загальний розмір: %d / %d МБ"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Версія: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Розмір: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
-msgstr "%d Кб\n"
+msgstr "%d кБ\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Важливість: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
-msgstr "Ви не можете вибрати або відмінити вибір цього пакунка."
+msgid "You cannot select/unselect this package"
+msgstr "Ви не можете вибрати або скасувати вибір цього пакунка."
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "через відсутність %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "через незадоволеність %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
-msgstr "пробую активізувати %s"
+msgstr "намагаємося задіяти %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "щоб залишити %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"Ви не можете вибрати цей пакунок, бо для його встановлення не залишилося "
"достатньо вільного місця."
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Ці пакунки буде встановлено"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
-msgstr "Наступні пакунки будуть вилучені"
+msgstr "Наступні пакунки буде вилучено"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
-msgstr "Цей пакунок необхідний, його вибір відмінити не можна"
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr "Цей пакунок необхідний, його вибір не можна скасовувати"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
-msgstr "Вибір цього пакунка неможливо відмінити. Його вже встановлено."
+msgid "You cannot unselect this package. It is already installed"
+msgstr "Вибір цього пакунка не можна скасовувати. Його вже встановлено."
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
-msgstr "Вибір цього пакунка неможливо відмінити. Він повинен бути поновлений."
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr "Вибір цього пакунка не можна скасовувати. Його слід поновити."
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Показувати автоматично вибрані пакунки"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Встановлення"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
-msgstr "Завантажити/зберегти виділене"
+msgstr "Завантажити/зберегти позначене"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Поновлення вибору пакунків"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr "Перемкнутися між ієрархічним і плоским списками пакунків"
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Мінімальне встановлення"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Менеджер програм"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
-msgstr "Виберіть пакунки, які Ви хочете встановити"
+msgstr "Виберіть пакунки, які ви хочете встановити"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
-msgstr "Встановлюю"
+msgstr "Встановлення"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
-msgstr "Загально"
+msgstr "Без подробиць"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Залишок часу "
+msgid "Time remaining:"
+msgstr "Залишилося часу:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Наближене обчислення"
+msgid "(estimating...)"
+msgstr "(наближене обчислення…)"
-#: steps_gtk.pm:542
-#, fuzzy, c-format
+#: steps_gtk.pm:637
+#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d пакунків"
-msgstr[1] "%d пакунків"
+msgstr[0] "%d пакунок"
+msgstr[1] "%d пакунки"
msgstr[2] "%d пакунків"
+msgstr[3] "%d пакунків"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
-msgstr "Загалом"
+msgstr "Підсумки"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Налаштувати"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "не налаштовано"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
"Було знайдено наступні носії встановлення.\n"
-"Якщо Ви не хочете використовувати деякі з них, відмініть їх вибір."
+"Якщо ви не хочете використовувати деякі з них, зніміть з них позначку вибору."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-"У Вас є можливість перед початком встановлення скопіювати вміст компакт-"
+"У вас є можливість перед початком встановлення скопіювати вміст компакт-"
"дисків на твердий диск.\n"
-"Після цього встановлення продовжиться з твердого диску і пакунки залишаться "
+"Після цього встановлення продовжиться з твердого диска і пакунки залишаться "
"доступними після повного встановлення системи."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "Копіювати компакт-диски повністю."
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Сталася помилка"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Будь ласка, виберіть розкладку клавіатури."
+msgid "Please choose your keyboard layout"
+msgstr "Будь ласка, виберіть розкладку клавіатури"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Тут наведено повний список можливих мап клавіатури"
+msgid "Here is the full list of available keyboards:"
+msgstr "Тут наведено повний список можливих мап клавіатури:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Встановити/Поновити"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Це встановлення чи поновлення?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Встановлення"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Поновити %s"
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "Ключ шифрування для %s"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "Припинити встановлення, перезавантажити систему."
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "Налаштування IDE"
+msgid "New Installation"
+msgstr "Нове встановлення"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
-"Не вистачає вільного місця для 1МБ завантажувального блоку! Встановлення\n"
-"буде продовжуватись, але для завантаження своєї системи Вам потрібно\n"
-"буде створити DiskDrake'ом завантажувальний розділ"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Поновити попереднє встановлення (не рекомендується)"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"Вам потрібно створити початковий завантажувач PPC PReP Boot! Встановлення "
-"буде продовжуватись, але для завантаження системи потрібно буде створити "
-"DiskDrake'ом завантажувальний розділ"
+"Програма для встановлення виявила, що раніше встановлена система\n"
+"Mageia Linux не може бути безпечно поновлена до %s.\n"
+"\n"
+"Рекомендується виконати нове встановлення системи, яке замінить попереднє.\n"
+"\n"
+"Попередження: вам слід зробити резервну копію особистих даних\n"
+"перед тим, як виберете «Нове встановлення»."
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "КД/DVD"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "Налаштування CD/DVD"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1005,162 +1241,212 @@ msgid ""
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
"Змініть компакт-диск!\n"
-"Будь ласка, вставте компакт-диск, позначений \"%s\" у пристрій і\n"
-"натисніть Гаразд після цього.\n"
-"Якщо Ви не маєте такого диску, натисніть Скасувати, щоб не\n"
-"встановлювати з цього диску."
+"Будь ласка, вставте компакт-диск з міткою «%s» у пристрій і\n"
+"натисніть «Гаразд».\n"
+"Якщо ви не маєте такого диска, натисніть Скасувати, щоб не\n"
+"встановлювати з цього диска."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
-msgstr "Шукаю наявні пакунки..."
+msgstr "Шукаю наявні пакунки…"
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
+"У вашій системі не залишилося достатньо місця для встановлення або "
+"поновлення (%dМб > %dМб)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
"Будь ласка, виберіть, завантажити чи записати вибір пакунків.\n"
-"Формат такий самий, як файлів auto_install."
+"Формат такий самий, як для файлів auto_install."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Завантаження"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Зберегти"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Поганий файл"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr ""
+msgid "Plasma"
+msgstr "Плазма"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Мінімальне встановлення"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr "Вибір стільниці"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr ""
+msgid "You can choose your workstation desktop profile."
+msgstr "Ви можете вибрати профіль стільниці робочої станції."
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
-msgstr "Вибраний розмір більший за наявний простір"
+msgstr "Вибраний розмір більший за наявний "
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Тип встановлення"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
"Ви не вказали жодної групи пакунків.\n"
-"Будь ласка, вкажіть мінімальне встановлення, яке Ви хочете:"
+"Будь ласка, вкажіть мінімальний варіант встановлення:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Разом з Х"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Встановлювати запропоновані пакунки"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
-msgstr "З основною документацією (рекомендується!)"
+msgstr "З основною документацією (рекомендуємо!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
-msgstr "Насправді мінімальне встановлення (особливо немає urpmi)"
+msgstr "Насправді мінімальне встановлення (навіть без urpmi)"
+
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Готуємося до оновлення…"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Підготовка встановлення"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Встановлюється пакунок %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Сталася помилка під час сортування пакунків: "
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Все-таки продовжувати?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
-msgstr ""
+msgstr "Ще раз"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
-msgstr ""
+msgstr "Пропустити цей пакунок"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
-msgstr ""
+msgstr "Пропустити усі пакунки з носія «%s»"
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "Зберегти вибір пакунків"
+msgstr "Повернутися до вибору носіїв і пакунків"
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "Сталася помилка під час встановлення пакунків: "
+msgstr "Сталася помилка під час встановлення пакунка %s."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Налаштування після встановлення"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
-msgstr ""
+msgstr "Переконайтеся, чи джерело Update Modules знаходиться в носії %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Поновлення"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "Тепер ви можете налаштувати мережеві сховища пакунків."
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Це надає змогу встановлювати оновлення безпеки."
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"Для налаштовування сховищ пакунків вам знадобиться працездатне \n"
+"інтернет-з’єднання.\n"
+"\n"
+"Хочете налаштувати сховище пакунків для оновлення?"
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr "Не вдалося встановити цей засіб отримання даних"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Повторити?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Помилка під час спроби додавання носія"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1172,140 +1458,89 @@ msgid ""
"\n"
"Do you want to install the updates?"
msgstr ""
-"Зараз Ви маєте можливість звантажити поновлені пакунки. Ці пакунки\n"
-"було поновлено після виходу дистрибутиву. Вони можуть містити\n"
+"Зараз ви маєте можливість звантажити поновлені пакунки. Ці пакунки\n"
+"було поновлено після виходу дистрибутива. Вони можуть містити\n"
"виправлення безпеки або помилок.\n"
"\n"
-"Щоб звантажити ці пакунки, Вам потрібно мати працююче з'єднання з\n"
+"Щоб звантажити ці пакунки, вам слід мати працездатне з'єднання з\n"
"Інтернетом.\n"
"\n"
"Ви хочете встановити ці поновлення?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Зв'язуюсь з сервером, щоб прочитати список наявних пакунків..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Неможливо з'єднатися з дзеркалом %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s на %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
-msgstr "Залізо"
+msgstr "Обладнання"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
-msgstr "Звукова плата"
-
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Чи маєте Ви звукові карти ISA?"
+msgstr "Звукова картка"
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Виконайте \"alsaconf\" або \"sndconfig\" після встановлення, щоб налаштувати "
-"звукову карту"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "Звукових карт не виявлено. Спробуйте \"harddrake\" після встановлення"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Графічний інтерфейс"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Мережа та Інтернет"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Проксі"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "налаштовано"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Рівень безпеки"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Захисний шлюз"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "увімкнено"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
-msgstr "відімкнено"
+msgstr "вимкнено"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
-msgstr "Ви не сконфігурували X. Ви впевнені, що дійсно цього хочете?"
-
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "Підготовлюю завантажувач..."
-
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"Здається у Вас машина OldWorld чи Невідома. Завантажувач yaboot не буде "
-"працювати з цією машиною. Встановлення буде продовжуватись, але для "
-"завантаження, Вам потрібно використати BootX чи якийсь інший спосіб "
-"завантаження Вашої машини. Параметр ядра для коренефої файлової системи: "
-"root=%s"
+msgstr "Ви не налаштувати X. Ви впевнені, що дійсно цього хочете?"
-#: steps_interactive.pm:1024
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Чи Ви хочете використовувати aboot?"
+msgid "Preparing initial startup program..."
+msgstr "Приготування початкової програми запуску…"
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"Помилка при встановленні aboot,\n"
-"спробувати встановити примусово, навіть якщо це зруйнує перший розділ?"
+msgid "Be patient, this may take a while..."
+msgstr "Зачекайте, це може тривати довго…"
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
@@ -1314,17 +1549,17 @@ msgstr ""
"На цьому рівні безпеки доступ до файлів на розділі Windows дозволений тільки "
"адміністратору."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Вставте чисту дискету в дисковод %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
-msgstr "Створення дискети для автоматичного встановлення..."
+msgstr "Створення дискети для автоматичного встановлення…"
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1335,52 +1570,16 @@ msgstr ""
"\n"
"Ви дійсно хочете припинити зараз?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Вітання"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Перезавантажити"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Створити дискету для автовстановлення"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Якщо потрібно, автовстановлення може бути повністю\n"
-"автоматизоване. В цьому випадку процес встановлення \n"
-"буде мати повний контроль над вашим диском!! (Застосовується\n"
-"для встановлення на інші комп'ютери)\n"
-"\n"
-"Можливо, Ви захочете повторити встановлення.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Повторити"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Автоматизована"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Зберегти вибір пакунків"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1392,7 +1591,7 @@ msgstr "Мова"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "Локалізація"
#: steps_list.pm:17
#, c-format
@@ -1413,14 +1612,14 @@ msgstr "Миша"
msgid ""
"_: Keep these entry short\n"
"Hard drive detection"
-msgstr "Визначення твердого диску"
+msgstr "Визначення твердого диска"
#: steps_list.pm:21 steps_list.pm:22
#, c-format
msgid ""
"_: Keep these entry short\n"
"Installation class"
-msgstr ""
+msgstr "Тип встановлення"
#: steps_list.pm:23
#, c-format
@@ -1448,21 +1647,21 @@ msgstr "Розбиття на розділи"
msgid ""
"_: Keep these entry short\n"
"Formatting"
-msgstr ""
+msgstr "Форматування"
#: steps_list.pm:29
#, c-format
msgid ""
"_: Keep these entry short\n"
"Choosing packages"
-msgstr ""
+msgstr "Вибір пакунків"
#: steps_list.pm:31
#, c-format
msgid ""
"_: Keep these entry short\n"
"Installing"
-msgstr "Встановлюю"
+msgstr "Встановлення"
#: steps_list.pm:34
#, c-format
@@ -1471,13 +1670,6 @@ msgid ""
"Users"
msgstr "Користувачі"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Робота в мережі"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1497,14 +1689,14 @@ msgstr "Налаштувати X"
msgid ""
"_: Keep these entry short\n"
"Summary"
-msgstr "Загалом"
+msgstr "Підсумки"
#: steps_list.pm:44 steps_list.pm:45
#, c-format
msgid ""
"_: Keep these entry short\n"
"Services"
-msgstr "Сервіси"
+msgstr "Служби"
#: steps_list.pm:46
#, c-format
@@ -1518,72 +1710,28 @@ msgstr "Поновлення"
msgid ""
"_: Keep these entry short\n"
"Exit"
-msgstr "Вийти"
-
-#~ msgid "All"
-#~ msgstr "Все"
+msgstr "Вихід"
-#~ msgid "TV card"
-#~ msgstr "Телевізійна плата"
-
-#~ msgid "Boot"
-#~ msgstr "Завантажити"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Автентифікація"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#, fuzzy
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "%d пакунків"
-#~ msgstr[1] "%d пакунків"
-#~ msgstr[2] "%d пакунків"
-
-#~ msgid "%d packages"
-#~ msgstr "%d пакунків"
-
-#~ msgid "Language"
-#~ msgstr "Мова"
-
-#~ msgid "License"
-#~ msgstr "Ліцензія"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "Виберіть тип встановлення"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "Наближене обчислення"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "Виберіть пакунки для встановлення"
-
-#~ msgid "Users"
-#~ msgstr "Користувачі"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "Посилання на дзеркало?"
-#~ msgid "Networking"
-#~ msgstr "Робота в мережі"
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "Посилання має починатися з ftp:// або http://"
-#~ msgid "Configure X"
-#~ msgstr "Налаштувати X"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr ""
+#~ "Встановлення зв’язку з веб-сайтом %s для отримання списку доступних "
+#~ "дзеркал…"
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
#~ msgstr ""
-#~ "Неможливо отримати доступ до модулів ядра, що відповідають Вашому ядру\n"
-#~ "(немає файла %s), здебільшого це означає, що Ваша дискета для "
-#~ "завантаження\n"
-#~ "не синхронізована з інсталяційним носієм (будь ласка, створіть новішу\n"
-#~ "дискету для завантаження)"
+#~ "Не вдалося встановити зв’язок з веб-сайтом %s для отримання списку "
+#~ "доступних дзеркал"
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Виберіть сервер, з якого звантажити пакунки"
diff --git a/perl-install/install/share/po/uz.po b/perl-install/install/share/po/uz.po
index bb47579bc..97766fb79 100644
--- a/perl-install/install/share/po/uz.po
+++ b/perl-install/install/share/po/uz.po
@@ -1,181 +1,238 @@
-# translation of uz.po to Uzbek
-# Copyright (C) 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
-# Copyright (C) 2003 Mandriva.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
-# Mashrab Kuvatov <kmashrab@uni-bremen.de>, 2003, 2004, 2006, 2007.
-# Nurali Abdurahmonov <mavnur@gmail.com>, 2006.
-# Behzod Saidov <behzodsaidov@gmail.com>, 2007.
+# Translators:
+# Behzod Saidov <behzodsaidov@gmail.com>, 2007
+# Mashrab Kuvatov <kmashrab@uni-bremen.de>, 2003-2004,2006-2008
+# Нурали Абдурахмонов <mavnur@gmail.com>, 2006,2009-2010
msgid ""
msgstr ""
-"Project-Id-Version: uz\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-09-26 23:35+0200\n"
-"Last-Translator: Mashrab Kuvatov <kmashrab@uni-bremen.de>\n"
-"Language-Team: Uzbek <floss-uz-l10n@googlegroups.com>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Uzbek (http://www.transifex.com/MageiaLinux/mageia/language/"
+"uz/)\n"
+"Language: uz\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
#, c-format
-msgid "Do you have further supplementary media?"
-msgstr "Сизда қўшимча компакт-диск борми?"
+msgid "Join Us!"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: ../../advertising/02_IM_mageia.pl:1
#, c-format
-msgid ""
-"The following media have been found and will be used during install: %s.\n"
-"\n"
-"\n"
-"Do you have a supplementary installation medium to configure?"
+msgid "Make it yours!"
msgstr ""
-"Ўрнатиш давомида қуйидаги манбадан фойдаланилади: %s.\n"
-"\n"
-"\n"
-"Мосланиши керак бўлган қўшимча ўрнатиш манбаси борми?"
-#: any.pm:166
+#: ../../advertising/03_IM_mageia.pl:1
#, c-format
-msgid "CD-ROM"
-msgstr "Компакт-диск"
+msgid "Your choice!"
+msgstr ""
-#: any.pm:167
+#: ../../advertising/04_IM_mageia.pl:1
#, c-format
-msgid "Network (HTTP)"
-msgstr "Тармоқ (HTTP)"
+msgid "Office tools"
+msgstr ""
-#: any.pm:168
+#: ../../advertising/05_IM_mageia.pl:1
#, c-format
-msgid "Network (FTP)"
-msgstr "Тармоқ (FTP)"
+msgid "Home entertainment"
+msgstr ""
-#: any.pm:169
+#: ../../advertising/06_IM_mageia.pl:1
#, c-format
-msgid "Network (NFS)"
-msgstr "Тармоқ (NFS)"
+msgid "For kids"
+msgstr ""
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr ""
-#: any.pm:211
+#: ../../advertising/08_IM_mageia.pl:1
#, c-format
-msgid "URL of the mirror?"
-msgstr "Ойнанинг манзили (URL)"
+msgid "For developers!"
+msgstr ""
-#: any.pm:217
+#: ../../advertising/09_IM_mageia.pl:1
#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "Манзил ftp:// ёки http:// билан бошланиши керак"
+msgid "Thank you!"
+msgstr ""
-#: any.pm:228
+#: ../../advertising/10_IM_mageia.pl:1
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
+msgid "Be Free!"
msgstr ""
-"Мавжуд бўлган ойналарнинг рўйхатини олиш учун Mandriva Linux сайти билан "
-"алоқа ўрнатилмоқда..."
-#: any.pm:233
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr "Sizda qoʻshimcha kompakt-disk bormi?"
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
msgstr ""
-"Мавжуд бўлган ойналарнинг рўйхатини олиш учун Mandriva Linux сайти билан "
-"алоқа ўрнатиб бўлмади"
+"Oʻrnatish davomida quyidagi manbadan foydalaniladi: %s.\n"
+"\n"
+"\n"
+"Moslanishi kerak boʻlgan qoʻshimcha oʻrnatish manbasi bormi?"
-#: any.pm:243
+#: any.pm:162
#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Пакетларни олиш учун ойнани танланг"
+msgid "Network (HTTP)"
+msgstr "Tarmoq (HTTP)"
-#: any.pm:273
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
+msgstr "Tarmoq (FTP)"
+
+#: any.pm:164
+#, c-format
+msgid "Network (NFS)"
+msgstr "Tarmoq (NFS)"
+
+#: any.pm:224
#, c-format
msgid "NFS setup"
-msgstr "NFS орқали ўрнатиш"
+msgstr "NFS orqali oʻrnatish"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
-msgstr "NFS тўпламининг компьютер номини ва директорияни киритинг"
+msgstr "NFS toʻplamining kompyuter nomini va direktoriyani kiriting"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
-msgstr "Компьютернинг номи кўрсатилмаган"
+msgstr "Kompyuterning nomi koʻrsatilmagan"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
-msgstr "Директория \"/\" белги билан бошлаши керак"
+msgstr "Direktoriya \"/\" belgi bilan boshlashi kerak"
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
-msgstr "NFS серверининг хост номи"
+msgstr "NFS serverining xost nomi"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
-msgstr "Директория"
+msgstr "Direktoriya"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
-msgstr "Қўшимча"
+msgstr "Qoʻshimcha"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
msgstr ""
-"Ойнада пакетлар рўйхатини топиб бўлмади. Манзил (URL) тўғри "
-"кўрсатилганлигини текширинг."
+"Oynada paketlar roʻyxatini topib boʻlmadi. Manzil (URL) toʻgʻri "
+"koʻrsatilganligini tekshiring."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Аллақачон ўрнатилган пакетлар қидирилмоқда..."
+msgid "Core Release"
+msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Янгилашдан аввал пакетлар олиб ташланмоқда..."
+msgid "Tainted Release"
+msgstr ""
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Янгилаш учун пакетлар қидирилмоқда..."
+msgid "Nonfree Release"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"Қуйидаги сервер дастурлар ҳам ўрнатилади: %s\n"
-"\n"
-"\n"
-"Бу сервер дастурлар ўрнатилиши билан улар ишга туширилади.\n"
-"Ҳозирча, улар билан боғлиқ бирорта ҳам хавфсизлик борасида муаммолар\n"
-"кузатилмаган, аммо уларнинг топилиш эҳтимоли ҳамиша мавжуд. Бундай\n"
-"ҳолатда, уларни иложи борича тезроқ янгилашингиз лозим.\n"
-"\n"
-"\n"
-"Бу сервер дастурларни ростдан ҳам ўрнатишни истайсизми?\n"
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Allaqachon oʻrnatilgan paketlar qidirilmoqda..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Yangilash uchun paketlar qidirilmoqda..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Yangilashdan avval paketlar olib tashlanmoqda..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -183,91 +240,96 @@ msgid ""
"\n"
"Do you really want to remove these packages?\n"
msgstr ""
-"Тизимни янгилаш учун қуйидаги пакетлар ўчирилади: %s\n"
+"Tizimni yangilash uchun quyidagi paketlar oʻchiriladi: %s\n"
"\n"
"\n"
-"Давом этишни истайсизми?\n"
+"Davom etishni istaysizmi?\n"
+
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "%s faylini oʻqishda xato roʻy berdi"
-#: any.pm:1055
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
-msgstr "Қуйидаги диск(лар)нинг номи ўзгартирилди:"
+msgstr "Quyidagi disk(lar)ning nomi oʻzgartirildi:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
-msgstr "%s (олдинги номи %s)"
+msgstr "%s (oldingi nomi %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
-msgstr "Тармоқ"
+msgstr "Tarmoq"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
-msgstr "Илтимос тўпламни танланг"
+msgstr "Iltimos toʻplamni tanlang"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
-msgstr "Файл аллақачон мавжуд. Уни алмаштиришни истайсизми?"
+msgstr "Fayl allaqachon mavjud. Uni almashtirishni istaysizmi?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
-msgstr "Рухсат йўқ"
+msgstr "Ruxsat yoʻq"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
-msgstr "NFS номи нотўғри"
+msgstr "NFS nomi notoʻgʻri"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
-msgstr "Нотўғри тўплам %s"
+msgstr "Notoʻgʻri toʻplam %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
-msgstr "Скриншотларни дискни бўлишдан аввал олиб бўлмайди"
+msgid "Cannot make screenshots before partitioning"
+msgstr "Skrinshotlarni diskni boʻlishdan avval olib boʻlmaydi"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr ""
-"Ўрнатиш тугаганидан кейин скриншотларни қуйидаги жойдан топиш мумкин: %s"
+"Oʻrnatish tugaganidan keyin skrinshotlarni quyidagi joydan topish mumkin: %s"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
-msgstr "Ўрнатиш"
+msgstr "Oʻrnatish"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
-msgstr "Мослаш"
+msgstr "Moslash"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
-msgstr "Сиз %s'ни ҳам формат қилишингиз керак"
+msgstr "Siz %s'ni ham format qilishingiz kerak"
#: interactive.pm:16
#, c-format
@@ -275,389 +337,480 @@ msgid ""
"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
"You can find some information about them at: %s"
msgstr ""
-"Компьютернинг баъзи асбоб-ускунаси эркин бўлмаган драйверни талаб қилади.\n"
-"Улар ҳақида баъзи маълумотни қуйидаги жойдан олса бўлади: %s"
+"Kompyuterning baʼzi asbob-uskunasi erkin boʻlmagan drayverni talab qiladi.\n"
+"Ular haqida baʼzi maʼlumotni quyidagi joydan olsa boʻladi: %s"
#: interactive.pm:22
#, c-format
msgid "Bringing up the network"
-msgstr "Тармоқ ишга туширилмоқда"
+msgstr "Tarmoq ishga tushirilmoqda"
#: interactive.pm:27
#, c-format
msgid "Bringing down the network"
-msgstr "Тармоқ ўчирилмоқда"
+msgstr "Tarmoq oʻchirilmoqda"
+
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr "Iltimos kutib turing, fayl olinmoqda"
-#: media.pm:703 media.pm:714
+#: media.pm:704
#, c-format
-msgid "Downloading file %s..."
-msgstr "%s файли ёзиб олинмоқда..."
+msgid "unable to add medium"
+msgstr "manbani qoʻshib boʻlmadi"
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
-msgstr "Баъзи пакетлардан дискка нусха олинмоқда"
+msgstr "Baʼzi paketlardan diskka nusxa olinmoqda"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
-msgstr "Нусха олиш давом этмоқда"
+msgstr "Nusxa olish davom etmoqda"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
-msgstr "бўлиши шарт"
+msgstr "boʻlishi shart"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
-msgstr "муҳим"
+msgstr "muhim"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
-msgstr "жуда яхши"
+msgstr "juda yaxshi"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
-msgstr "яхши"
+msgstr "yaxshi"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
-msgstr "балки"
+msgstr "balki"
+
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
-#: pkgs.pm:245
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Taʼrif yoʻq"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"%s talab qiladigan baʼzi paketlarni oʻrnatib boʻlmaydi:\n"
+"%s"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "Иш станцияси"
+msgid "An error occurred:"
+msgstr "Xato roʻy berdi:"
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Идора станцияси"
+msgid "A fatal error occurred: %s."
+msgstr "Juda jiddiy xato roʻy berdi: %s."
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "Do not ask again"
msgstr ""
-"Идора учун дастурлар: матн процессорлари (OpenOffice.org Writer, Kword), "
-"электрон жадваллар (OpenOffice.org Calc, Kspread), PDF кўрувчилар ва ҳоказо"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d oʻrnatish tranzaksiyasi muvaffaqiyatsiz tugadi"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Paketlarni oʻrnatib boʻlmadi:"
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "Ish stansiyasi"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Idora stansiyasi"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Идора учун дастурлар: матн процессорлари (kword, abiword), электрон "
-"жадваллар (kspread, gnumeric), PDF кўрувчилар ва ҳоказо"
+"Idora uchun dasturlar: matn protsessorlari (LibreOffice Writer, Kword), "
+"elektron jadvallar (LibreOffice Calc, Kspread), PDF koʻruvchilar va hokazo"
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
-msgstr "Ўйин станцияси"
+msgstr "Oʻyin stansiyasi"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "Овунчоқ дастурлар: аркада, стол ўйинлари, стратегия ва ҳоказо"
+msgstr "Ovunchoq dasturlar: arkada, stol oʻyinlari, strategiya va hokazo"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
-msgstr "Мултимедиа станцияси"
+msgstr "Multimedia stansiyasi"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
-msgstr "Аудио ва видеони ўйнаш/таҳрирлаш учун дастурлар"
+msgstr "Audio va videoni oʻynash/tahrirlash uchun dasturlar"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
-msgstr "Интернет станцияси"
+msgstr "Internet stansiyasi"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr ""
-"Хат-хабар, янгиликларни ўқиш ва жўнатиш (mutt, tin..) ва Интернетда сайр "
-"қилиш учун воситалар тўплами"
+"Xat-xabar, yangiliklarni oʻqish va joʻnatish (mutt, tin..) va Internetda "
+"sayr qilish uchun vositalar toʻplami"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
-msgstr "Тармоқдаги компьютер (клиент)"
+msgstr "Tarmoqdagi kompyuter (klient)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
-msgstr "Турли протоколлар, шу жумлада SSH, учун клиентлар"
+msgstr "Turli protokollar, shu jumlada SSH, uchun klientlar"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
-msgstr "Компьютерни мослашни енгилаштириш учун воситалар"
+msgstr "Kompyuterni moslashni yengilashtirish uchun vositalar"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
-msgstr "Консол воситалари"
+msgstr "Konsol vositalari"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
-msgstr "Таҳрирчилар, консоллар, файл воситалари, терминаллар"
+msgstr "Tahrirchilar, konsollar, fayl vositalari, terminallar"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
-msgstr "Тузиш"
+msgstr "Tuzish"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
-msgstr "C ва C++ тузиш кутубхоналари, воситалар ва хедер файллар"
+msgstr "C va C++ tuzish kutubxonalari, vositalar va xeder fayllar"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
-msgstr "Қўлланмалар"
+msgstr "Qoʻllanmalar"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
-msgstr "Linux ва эркин дастурлар ҳақида китоблар ва Howto'лар"
+msgstr "Linux va erkin dasturlar haqida kitoblar va Howto'lar"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
-msgstr ""
+msgstr "Linux Standard Base. Uchinchi tomon dastur tuzuvchilari qoʻllanuvi"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
-msgstr "Веб-сервери"
+msgstr "Veb-serveri"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Groupware"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
-msgstr "Kolab сервери"
+msgstr "Kolab serveri"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
-msgstr "Файервол/Рутер"
+msgstr "Fayervol/Ruter"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
-msgstr "Интернет гейтвэйи"
+msgstr "Internet geytveyi"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
-msgstr "Хат-хабар/Янгиликлар"
+msgstr "Xat-xabar/Yangiliklar"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
-msgstr "Postfix хат-хабар сервери, Inn янгиликлар сервери"
+msgstr "Postfix xat-xabar serveri, Inn yangiliklar serveri"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
-msgstr "Директория сервери"
+msgstr "Direktoriya serveri"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
-msgstr "FTP сервери"
+msgstr "FTP serveri"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
-msgstr "DNS ва NIS"
+msgstr "DNS va NIS"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
-msgstr "Файл ва принтерни бўлишиш сервери"
+msgstr "Fayl va printerni boʻlishish serveri"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
-msgstr "NFS сервери, Samba сервери"
+msgstr "NFS serveri, Samba serveri"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
-msgstr "Маълумот базаси"
+msgstr "Maʼlumot bazasi"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL ва MySQL маълумот базаси"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "PostgreSQL va MariaDB maʼlumot bazasi"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache, Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
-msgstr "Хат-хабар"
+msgstr "Xat-xabar"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
-msgstr "Postfix хат-хабар сервери"
+msgstr "Postfix xat-xabar serveri"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL ёки MySQL маълумот базаси"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL yoki MariaDB maʼlumot bazasi"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
-msgstr "Тармоқдаги компьютер (сервер)"
+msgstr "Tarmoqdagi kompyuter (server)"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "NFS сервери, SMB сервери, Proxy сервери, SSH сервери"
+msgstr "NFS serveri, SMB serveri, Proxy serveri, SSH serveri"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
-msgstr "График муҳит"
+msgstr "Grafik muhit"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE станцияси"
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
-msgstr "KDE - воситалар тўплами билан бирга асосий график муҳит"
+msgstr "KDE - vositalar toʻplami bilan birga asosiy grafik muhit"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
-msgstr "GNOME станцияси"
+msgstr "GNOME stansiyasi"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr ""
-"Фойдаланувчилар учун қулай дастурлар ва иш столи воситаларидан иборат график "
-"муҳит"
+"Foydalanuvchilar uchun qulay dasturlar va ish stoli vositalaridan iborat "
+"grafik muhit"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "LXDE ish stoli"
+
+#: share/meta-task/compssUsers.pl:191
#, c-format
-msgid "IceWm Desktop"
-msgstr "IceWm иш столи"
+msgid "A lightweight fast graphical environment"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
-msgstr "Бошқа график иш столлари"
+msgstr "Boshqa grafik ish stollari"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm, ва ҳоказо"
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
-msgstr "Воситалар"
+msgstr "Vositalar"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
-msgstr "SSH сервери"
+msgstr "SSH serveri"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
-msgstr "Webmin масофадан бошқариш сервери"
+msgstr "Webmin masofadan boshqarish serveri"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
-msgstr "Тармоқ воситалари/Назорат қилиш"
+msgstr "Tarmoq vositalari/Nazorat qilish"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
-msgstr "Назорат қилиш воситалари, вазифалар ҳисоботчилари, tcpdump, nmap, ..."
+msgstr ""
+"Nazorat qilish vositalari, vazifalar hisobotchilari, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Mandriva ёрдамчилари"
+msgid "Mageia Wizards"
+msgstr "Mageia yordamchilari"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
-msgstr "Серверни мослаш учун ёрдамчилар"
+msgstr "Serverni moslash uchun yordamchilar"
#: steps.pm:85
#, c-format
@@ -665,8 +818,10 @@ msgid ""
"An error occurred, but I do not know how to handle it nicely.\n"
"Continue at your own risk."
msgstr ""
+"Xatolik yuz berdi ammo uning sababi aniqlanmadi.\n"
+"Tavvakkal qilgan holda davom etishingiz mumkin."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -674,314 +829,375 @@ msgid ""
"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
"\"\n"
msgstr ""
-"Баъзи бир муҳим пакетлар тўғри ўрнатилмади.\n"
-"Сизнинг компакт-диск ускунангизда ёки компакт-дискингизда хато бор.\n"
-"Компакт-дискни ўрнатилган компьютерда \"rpm -qpl media/main/*.rpm\" буйруғи "
-"билан текшириб кўринг.\n"
+"Baʼzi bir muhim paketlar toʻgʻri oʻrnatilmadi.\n"
+"Sizning kompakt-disk uskunangizda yoki kompakt-diskingizda xato bor.\n"
+"Kompakt-diskni oʻrnatilgan kompyuterda \"rpm -qpl media/main/*.rpm\" "
+"buyrugʻi bilan tekshirib koʻring.\n"
#: steps_auto_install.pm:71 steps_stdio.pm:27
#, c-format
msgid "Entering step `%s'\n"
-msgstr "%s босқичга ўтилмоқда\n"
+msgstr "%s bosqichga oʻtilmoqda\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux ОТни ўрнатиш %s"
+msgid "%s Installation %s"
+msgstr "%s OTni oʻrnatish %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
-msgstr "<Tab>/<Alt-Tab> банддан-бандга"
+msgstr "<Tab>/<Alt-Tab> banddan-bandga"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Xorg dasturi juda sekin ishga tushyapti. Iltimos kutib turing..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
+"Tizimda resurslar yetishmaydi. %s tizimini oʻrnatish mobaynida\n"
+"muammoga duch kelishingiz mumkin. Agar shunday boʻlsa, matn usulida "
+"oʻrnatish vositasidan foydalanib koʻring,\n"
+"Buning uchun diskdan yuklanayotganda `F1' tugmasini bosing va `text' deb "
+"yozing."
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Manbani tanlash"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Boshqa"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "GNOME ish stoli"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Boshqa ish stoli"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Bu '%s' ish stolining koʻrinishi."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Ish stolini yaqinroqdan koʻrish uchun rasmni sichqoncha bilan bosing"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
-msgstr "Пакетларни гуруҳ бўйича танлаш"
+msgstr "Paketlarni guruh boʻyicha tanlash"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
-msgstr "Пакетларни биттама-битта танлаш"
+msgstr "Paketlarni bittama-bitta tanlash"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Жами: %d / %d Мб"
+msgid "Unselect All"
+msgstr "Hech qaysi tanlanmasin"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Ёмон пакет"
+msgid "Total size: %d / %d MB"
+msgstr "Jami: %d / %d Mb"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
-msgstr "Версияси: "
+msgstr "Versiyasi: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
-msgstr "Ҳажми: "
+msgstr "Hajmi: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
-msgstr "%d Кб\n"
+msgstr "%d Kb\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
-msgstr "Муҳимлиги: "
+msgstr "Muhimligi: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
-msgstr "Бу пакетни танлолмайсиз/танлашни бекор қилолмайсиз"
+msgid "You cannot select/unselect this package"
+msgstr "Bu paketni tanlolmaysiz/tanlashni bekor qilolmaysiz"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
-msgstr "%s етишмагани учун"
+msgstr "%s yetishmagani uchun"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr ""
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
-msgstr ""
+msgstr "%s ativlashtirishga harakat qilinmoqda"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
-msgstr "%s'ни қолдириш учун"
+msgstr "%s'ni qoldirish uchun"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
-"Бу пакетни танлолмайсиз, чунки уни ўрнатиш учун етарли жой мавжуд эмас."
+"Bu paketni tanlolmaysiz, chunki uni oʻrnatish uchun yetarli joy mavjud emas."
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
-msgstr "Қуйидаги пакетлар ўрнатилади"
+msgstr "Quyidagi paketlar oʻrnatiladi"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
-msgstr "Қуйидаги пакетлар олиб ташланилади."
+msgstr "Quyidagi paketlar olib tashlaniladi."
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
-msgstr "Бу ўрнатилиши шарт бўлган пакет, уни танлашни бекор қилиб бўлмайди."
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr ""
+"Bu oʻrnatilishi shart boʻlgan paket, uni tanlashni bekor qilib boʻlmaydi."
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
-msgstr "Бу пакетни танлашни бекор қилолмайсиз. У аллақачон ўрнатилган."
+msgid "You cannot unselect this package. It is already installed"
+msgstr "Bu paketni tanlashni bekor qilolmaysiz. U allaqachon oʻrnatilgan."
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
-msgstr "Бу пакетни танлашни бекор қилолмайсиз. У янгиланиши шарт."
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr "Bu paketni tanlashni bekor qilolmaysiz. U yangilanishi shart."
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
-msgstr "Автоматик равишда танланган пакетларни кўрсатиш"
+msgstr "Avtomatik ravishda tanlangan paketlarni koʻrsatish"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
-msgstr "Ўрнатиш"
+msgstr "Oʻrnatish"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
-msgstr "Танланганни юклаш/сақлаш"
+msgstr "Tanlanganni yuklash/saqlash"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
-msgstr "Пакетлар танлови янгиланмоқда"
+msgstr "Paketlar tanlovi yangilanmoqda"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
-msgstr "Минимал ўрнатиш"
+msgstr "Minimal oʻrnatish"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
-msgstr "Дастурлар бошқаруви"
+msgstr "Dasturlar boshqaruvi"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
-msgstr "Сиз ўрнатмоқчи бўлган пакетларни танланг"
+msgstr "Siz oʻrnatmoqchi boʻlgan paketlarni tanlang"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
-msgstr "Ўрнатилмоқда"
+msgstr "Oʻrnatilmoqda"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
-msgstr "Тафсилотларсиз"
+msgstr "Tafsilotlarsiz"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Қолган вақт "
+msgid "Time remaining:"
+msgstr "Qolgan vaqt:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Чамаланмоқда"
+msgid "(estimating...)"
+msgstr "(chamalanmoqda)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d-та пакет"
+msgstr[0] "%d-ta paket"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
-msgstr "Ҳисобот"
+msgstr "Hisobot"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
-msgstr "Мослаш"
+msgstr "Moslash"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
-msgstr "мосланмаган"
+msgstr "moslanmagan"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-"Қуйидаги ўрнатиш манбалари аниқланди.\n"
-"Фақат танланган манбалар ўрнатиш учун ишлатилади."
+"Quyidagi oʻrnatish manbalari aniqlandi.\n"
+"Faqat tanlangan manbalar oʻrnatish uchun ishlatiladi."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-"Ўрнатишдан аввал компакт-дисклардаги пакетлардан компьютернинг дискига нусха "
-"олиш мумкин.\n"
-"Ўрнатиш тўлиқ тугагандан сўнг улар тизимга маълум бўлади."
+"Oʻrnatishdan avval kompakt-disklardagi paketlardan kompyuterning diskiga "
+"nusxa olish mumkin.\n"
+"Oʻrnatish toʻliq tugagandan soʻng ular tizimga maʼlum boʻladi."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
-msgstr "Бутун дискдан нусха олиш"
+msgstr "Butun diskdan nusxa olish"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
-msgstr "Хато рўй берди"
+msgstr "Xato roʻy berdi"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Илтимос тугмалар тартибини танланг."
+msgid "Please choose your keyboard layout"
+msgstr "Iltimos tugmalar tartibini tanlang"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Мавжуд бўлган тугматагларнинг тўлиқ рўйхати"
+msgid "Here is the full list of available keyboards:"
+msgstr "Mavjud boʻlgan klaviaturalarning toʻliq roʻyxati:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
-msgstr "Ўрнатиш/Янгилаш"
+msgstr "Oʻrnatish/Yangilash"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
-msgstr "Бу ўрнатишми ёки янгилашми?"
+msgstr "Bu oʻrnatishmi yoki yangilashmi?"
-#: steps_interactive.pm:134
+#: steps_interactive.pm:159
#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
-msgstr "Ўрнатиш"
+msgstr "Oʻrnatish"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
-msgstr "%s ОТни янгилаш"
+msgstr "%s OTni yangilash"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
+msgid "Encryption key for %s"
+msgstr "%s uchun kodlash kaliti"
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
+msgid "Cancel installation, reboot system"
+msgstr "Oʻrnatishni bekor qilish, kompyuterni oʻchirib-yoqish"
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
-msgstr "%s учун кодлаш калити"
+msgid "New Installation"
+msgstr "Oʻrnatish"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Oldingi oʻrnatishni yangilash (tavsiya etilmaydi)"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
-msgstr "IDE'ни мослаш"
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+msgid "CD/DVD"
msgstr ""
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+msgid "Configuring CD/DVD"
msgstr ""
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -989,161 +1205,206 @@ msgid ""
"done.\n"
"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
msgstr ""
-"Компакт-дискни алмаштиринг!\n"
+"Kompakt-diskni almashtiring!\n"
"\n"
-"Илтимос '%s' белгили компакт-дискни қўйинг ва \"Ок\" тугмасини босинг.\n"
-"Агар у сизда бўлмаса, бу компакт-дискдан ўрнатишни бекор қилиш учун \"Бекор "
-"қилиш\" тугмасини босинг."
+"Iltimos '%s' belgili kompakt-diskni qoʻying va \"Ok\" tugmasini bosing.\n"
+"Agar u sizda boʻlmasa, bu kompakt-diskdan oʻrnatishni bekor qilish uchun "
+"\"Bekor qilish\" tugmasini bosing."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
-msgstr "Мавжуд бўлган пакетлар қидирилмоқда..."
+msgstr "Mavjud boʻlgan paketlar qidirilmoqda..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
-msgstr "Тизимда ўрнатиш ёки янгилаш учун етарли жой қолмади (%d Мб > %d Мб)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
+msgstr ""
+"Tizimda oʻrnatish yoki yangilash uchun yetarli joy qolmadi (%d Mb > %d Mb)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
-msgstr "Юклаш"
+msgstr "Yuklash"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
-msgstr "Сақлаш"
+msgstr "Saqlash"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
-msgstr "Нотўғри файл"
+msgstr "Notoʻgʻri fayl"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr "KDE иш столи"
+msgid "Plasma"
+msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr "GNOME иш столи"
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
+#: steps_interactive.pm:459
#, c-format
-msgid "Custom install"
-msgstr "Бошқа"
+msgid "Desktop Selection"
+msgstr "Ish stolini tanlash"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr "Қуйидаги рўйхатдан ўрнатиладиган дастурлар гуруҳини танланг"
+msgid "You can choose your workstation desktop profile."
+msgstr "Quyidagilardan oʻrnatiladigan ish stolini tanlang"
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
-msgstr "Танланган ҳажм мавжуд бўлган бўш жойдан катта"
+msgstr "Tanlangan hajm mavjud boʻlgan boʻsh joydan katta"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
-msgstr "Ўрнатишнинг тури"
+msgstr "Oʻrnatishning turi"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
-"Сиз ҳеч қандай пакетлар гуруҳини танламадингиз.\n"
-"Илтимос сиз истаган минимал ўрнатишни танланг:"
+"Siz hech qanday paketlar guruhini tanlamadingiz.\n"
+"Iltimos siz istagan minimal oʻrnatishni tanlang:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
-msgstr "X билан"
+msgstr "X bilan"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
-msgstr "Асосий қўлланмалар билан (тавсия қилинади!)"
+msgstr "Asosiy qoʻllanmalar bilan (tavsiya qilinadi!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
-msgstr "Ҳақиқий минимал ўрнатиш (хусусан urpmi'сиз)"
+msgstr "Haqiqiy minimal oʻrnatish (xususan urpmi'siz)"
+
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
-#: steps_interactive.pm:596
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
-msgstr "Ўрнатишга тайёрланмоқда"
+msgstr "Oʻrnatishga tayyorlanmoqda"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
-msgstr "%s пакети ўрнатилмоқда"
+msgstr "%s paketi oʻrnatilmoqda"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
-msgstr "Қуйидаги пакетларни саралашда хато рўй берди:"
+msgstr "Quyidagi paketlarni saralashda xato roʻy berdi:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
-msgstr "Бунга қарамасдан давом этишни истайсизми?"
+msgstr "Bunga qaramasdan davom etishni istaysizmi?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
-msgstr "Қайтадан уриниш"
+msgstr "Qaytadan urinish"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
-msgstr "Бу пакетга эътибор берилмасин"
+msgstr "Bu paketga eʼtibor berilmasin"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
-msgstr "\"%s\" тўпламидан ҳамма пакетларга эътибор берилмасин"
+msgstr "\"%s\" toʻplamidan hamma paketlarga eʼtibor berilmasin"
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
-msgstr "Ўрнатиш манбаларни ва пакетларни танлашга қайтиш"
+msgstr "Oʻrnatish manbalarni va paketlarni tanlashga qaytish"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
-msgstr "Қуйидаги пакетни ўрнатишда хато рўй берди: %s"
+msgstr "Quyidagi paketni oʻrnatishda xato roʻy berdi: %s"
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
-msgstr "Ўрнатишдан кейин мослаш"
+msgstr "Oʻrnatishdan keyin moslash"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
-msgstr ""
+msgstr "%s ichida Update Modules toʻplami mavjudligini tekshirib koʻring"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
-msgstr "Янгиланишлар"
+msgstr "Yangilanishlar"
+
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Quyidagi paketlar oʻrnatiladi"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
-#: steps_interactive.pm:692
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Toʻplamni qoʻshish muvaffaqiyatsiz tugadi"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1155,206 +1416,129 @@ msgid ""
"\n"
"Do you want to install the updates?"
msgstr ""
-"Ҳозир сизда янгиланган пакетларни ёзиб олиб ўрнатиш имконияти мавжуд.\n"
-"Улар ҳозир сиз ўрнатган Mandriva Linux тизими чиққанидан сўнг\n"
-"янгиланган. Уларда ҳар хил хавфсизлик ва дастурлар билан боғлиқ\n"
-"хатоликлар тузатилган бўлиши мумкин.\n"
+"Hozir sizda yangilangan paketlarni yozib olib oʻrnatish imkoniyati mavjud.\n"
+"Ular hozir siz oʻrnatgan Mageia tizimi chiqqanidan soʻng\n"
+"yangilangan. Ularda har xil xavfsizlik va dasturlar bilan bogʻliq\n"
+"xatoliklar tuzatilgan boʻlishi mumkin.\n"
"\n"
-"Бу пакетларни ёзиб олиш учун сизда Интернет билан алоқа ўрнатилган бўлиши\n"
-"керак.\n"
+"Bu paketlarni yozib olish uchun sizda Internet bilan aloqa oʻrnatilgan "
+"boʻlishi\n"
+"kerak.\n"
"\n"
-"Янгиланишларни ўрнатишни истайсизми?"
-
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr ""
-"Мавжуд бўлган пакетларнинг рўйхатини олиш учун ойна билан алоқа "
-"ўрнатилмоқда..."
+"Yangilanishlarni oʻrnatishni istaysizmi?"
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Ойна (%s)билан алоқа ўрнатиб бўлмади."
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
-msgstr "%s %s'да"
+msgstr "%s %s'da"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
-msgstr "Асбоб-ускуналар"
+msgstr "Asbob-uskunalar"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
-msgstr "Товуш карта"
+msgstr "Tovush karta"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Сизда ISA товуш картаси борми?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Ўрнатишдан кейин, товуш картангизни мослаш учун, \"sndconfig\" ёки \"alsaconf"
-"\" дастурини ишга туширинг"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Товуш картаси топилмади. Ўрнатишдан кейин \"harddrake\" дастурини синаб "
-"кўринг."
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
-msgstr "График интерфейс"
+msgstr "Grafik interfeys"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
-msgstr "Тармоқ ва Интернет"
+msgstr "Tarmoq va Internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
-msgstr "Проксилар"
+msgstr "Proksilar"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
-msgstr "мосланган"
+msgstr "moslangan"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
-msgstr "Хавфсизлик даражаси"
+msgstr "Xavfsizlik darajasi"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
-msgstr "Файервол"
+msgstr "Fayervol"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
-msgstr "ишлаяпти"
+msgstr "ishlayapti"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
-msgstr "ўчирилган"
+msgstr "oʻchirilgan"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
-msgstr "Сиз X'ни мосламадингиз. Ростдан буни истайсизми?"
+msgstr "Siz X'ni moslamadingiz. Rostdan buni istaysizmi?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "ОТ юклагичи тайёрланмоқда..."
-
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Preparing initial startup program..."
msgstr ""
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "aboot дастуридан фойдаланишни истайсизми?"
-
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
+msgid "Be patient, this may take a while..."
+msgstr "Kutib turing, bu biroz vaqt olishi mumkin..."
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr ""
-"Ушбу хавфсизлик даража қўлланилганда дискнинг Windows қисмидаги файлларга "
-"фақат администратор мурожаат қилиши мумкин."
+"Ushbu xavfsizlik daraja qoʻllanilganda diskning Windows qismidagi fayllarga "
+"faqat administrator murojaat qilishi mumkin."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
-msgstr "Бўш дискетни %s ускунасига қўйинг"
+msgstr "Boʻsh disketni %s uskunasiga qoʻying"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
-msgstr "Авто-ўрнатиш дискети яратилмоқда..."
+msgstr "Avto-oʻrnatish disketi yaratilmoqda..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
"\n"
"Do you really want to quit now?"
msgstr ""
-"Баъзи ўрнатиш босқичлари бажарилмади.\n"
+"Baʼzi oʻrnatish bosqichlari bajarilmadi.\n"
"\n"
-"Ростдан чиқишни истайсизми?"
+"Rostdan chiqishni istaysizmi?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
-msgstr "Табриклаймиз!"
+msgstr "Tabriklaymiz!"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
-msgstr "Ўчириб-ёқиш"
-
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Авто-ўрнатиш дискетни яратиш"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Қайтариш"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Автоматик"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Пакетлар танловини сақлаш"
+msgstr "Oʻchirib-yoqish"
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
@@ -1362,141 +1546,152 @@ msgstr "Пакетлар танловини сақлаш"
msgid ""
"_: Keep these entry short\n"
"Language"
-msgstr "Тил"
+msgstr "Til"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "Mahalliylashtirish"
#: steps_list.pm:17
#, c-format
msgid ""
"_: Keep these entry short\n"
"License"
-msgstr "Лицензия"
+msgstr "Litsenziya"
#: steps_list.pm:18
#, c-format
msgid ""
"_: Keep these entry short\n"
"Mouse"
-msgstr "Сичқонча"
+msgstr "Sichqoncha"
#: steps_list.pm:19 steps_list.pm:20
#, c-format
msgid ""
"_: Keep these entry short\n"
"Hard drive detection"
-msgstr "Қаттиқ дискни аниқлаш"
+msgstr "Qattiq diskni aniqlash"
#: steps_list.pm:21 steps_list.pm:22
#, c-format
msgid ""
"_: Keep these entry short\n"
"Installation class"
-msgstr "Ўрнатиш синфи"
+msgstr "Oʻrnatish sinfi"
#: steps_list.pm:23
#, c-format
msgid ""
"_: Keep these entry short\n"
"Keyboard"
-msgstr "Тугматаг"
+msgstr "Tugmatag"
#: steps_list.pm:24
#, c-format
msgid ""
"_: Keep these entry short\n"
"Security"
-msgstr "Хавфсизлик"
+msgstr "Xavfsizlik"
#: steps_list.pm:25
#, c-format
msgid ""
"_: Keep these entry short\n"
"Partitioning"
-msgstr "Дискни бўлиш"
+msgstr "Diskni boʻlish"
#: steps_list.pm:27 steps_list.pm:28
#, c-format
msgid ""
"_: Keep these entry short\n"
"Formatting"
-msgstr "Форматлаш"
+msgstr "Formatlash"
#: steps_list.pm:29
#, c-format
msgid ""
"_: Keep these entry short\n"
"Choosing packages"
-msgstr "Ўрнатилиши керак бўлган пакетларни танлаш"
+msgstr "Oʻrnatilishi kerak boʻlgan paketlarni tanlash"
#: steps_list.pm:31
#, c-format
msgid ""
"_: Keep these entry short\n"
"Installing"
-msgstr "Ўрнатилмоқда"
+msgstr "Oʻrnatilmoqda"
#: steps_list.pm:34
#, c-format
msgid ""
"_: Keep these entry short\n"
"Users"
-msgstr "Фойдаланувчилар"
-
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Тармоқ"
+msgstr "Foydalanuvchilar"
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
"_: Keep these entry short\n"
"Bootloader"
-msgstr "ОТ юклагичи"
+msgstr "OT yuklagichi"
#: steps_list.pm:40 steps_list.pm:41
#, c-format
msgid ""
"_: Keep these entry short\n"
"Configure X"
-msgstr "X серверини мослаш"
+msgstr "X serverini moslash"
#: steps_list.pm:42
#, c-format
msgid ""
"_: Keep these entry short\n"
"Summary"
-msgstr "Ҳисобот"
+msgstr "Hisobot"
#: steps_list.pm:44 steps_list.pm:45
#, c-format
msgid ""
"_: Keep these entry short\n"
"Services"
-msgstr "Хизматлар"
+msgstr "Xizmatlar"
#: steps_list.pm:46
#, c-format
msgid ""
"_: Keep these entry short\n"
"Updates"
-msgstr "Янгиланишлар"
+msgstr "Yangilanishlar"
#: steps_list.pm:48
#, c-format
msgid ""
"_: Keep these entry short\n"
"Exit"
-msgstr "Чиқиш"
+msgstr "Chiqish"
-#~ msgid "All"
-#~ msgstr "Ҳаммаси"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "Oynaning manzili (URL)"
-#~ msgid "TV card"
-#~ msgstr "ТВ карта"
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "Manzil ftp:// yoki http:// bilan boshlanishi kerak"
+
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr ""
+#~ "Mavjud boʻlgan oynalarning roʻyxatini olish uchun %s sayti bilan aloqa "
+#~ "oʻrnatilmoqda..."
+
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
+#~ msgstr ""
+#~ "Mavjud boʻlgan oynalarning roʻyxatini olish uchun %s sayti bilan aloqa "
+#~ "oʻrnatib boʻlmadi"
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Paketlarni olish uchun oynani tanlang"
diff --git a/perl-install/install/share/po/uz@Latn.po b/perl-install/install/share/po/uz@Latn.po
deleted file mode 100644
index 0ff7e5243..000000000
--- a/perl-install/install/share/po/uz@Latn.po
+++ /dev/null
@@ -1,1506 +0,0 @@
-# translation of uz.po to Uzbek
-# Copyright (C) 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
-# Copyright (C) 2003 Mandriva.
-#
-# Mashrab Kuvatov <kmashrab@uni-bremen.de>, 2003, 2004, 2006, 2007.
-# Nurali Abdurahmonov <mavnur@gmail.com>, 2006.
-# Behzod Saidov <behzodsaidov@gmail.com>, 2007.
-msgid ""
-msgstr ""
-"Project-Id-Version: uz\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-09-26 23:35+0200\n"
-"Last-Translator: Mashrab Kuvatov <kmashrab@uni-bremen.de>\n"
-"Language-Team: Uzbek <floss-uz-l10n@googlegroups.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-#: any.pm:155
-#, c-format
-msgid "Do you have further supplementary media?"
-msgstr "Sizda qo'shimcha kompakt-disk bormi?"
-
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
-#, c-format
-msgid ""
-"The following media have been found and will be used during install: %s.\n"
-"\n"
-"\n"
-"Do you have a supplementary installation medium to configure?"
-msgstr ""
-"O'rnatish davomida quyidagi manbadan foydalaniladi: %s.\n"
-"\n"
-"\n"
-"Moslanishi kerak bo'lgan qo'shimcha o'rnatish manbasi bormi?"
-
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "Kompakt-disk"
-
-#: any.pm:167
-#, c-format
-msgid "Network (HTTP)"
-msgstr "Tarmoq (HTTP)"
-
-#: any.pm:168
-#, c-format
-msgid "Network (FTP)"
-msgstr "Tarmoq (FTP)"
-
-#: any.pm:169
-#, c-format
-msgid "Network (NFS)"
-msgstr "Tarmoq (NFS)"
-
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "Oynaning manzili (URL)"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "Manzil ftp:// yoki http:// bilan boshlanishi kerak"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Mavjud bo'lgan oynalarning ro'yxatini olish uchun Mandriva Linux sayti bilan "
-"aloqa o'rnatilmoqda..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Mavjud bo'lgan oynalarning ro'yxatini olish uchun Mandriva Linux sayti bilan "
-"aloqa o'rnatib bo'lmadi"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Paketlarni olish uchun oynani tanlang"
-
-#: any.pm:273
-#, c-format
-msgid "NFS setup"
-msgstr "NFS orqali o'rnatish"
-
-#: any.pm:274
-#, c-format
-msgid "Please enter the hostname and directory of your NFS media"
-msgstr "NFS to'plamining kompyuter nomini va direktoriyani kiriting"
-
-#: any.pm:278
-#, c-format
-msgid "Hostname missing"
-msgstr "Kompyuterning nomi ko'rsatilmagan"
-
-#: any.pm:279
-#, c-format
-msgid "Directory must begin with \"/\""
-msgstr "Direktoriya \"/\" belgi bilan boshlashi kerak"
-
-#: any.pm:283
-#, c-format
-msgid "Hostname of the NFS mount ?"
-msgstr "NFS serverining xost nomi"
-
-#: any.pm:284
-#, c-format
-msgid "Directory"
-msgstr "Direktoriya"
-
-#: any.pm:306
-#, c-format
-msgid "Supplementary"
-msgstr "Qo'shimcha"
-
-#: any.pm:341
-#, c-format
-msgid ""
-"Can't find a package list file on this mirror. Make sure the location is "
-"correct."
-msgstr ""
-"Oynada paketlar ro'yxatini topib bo'lmadi. Manzil (URL) to'g'ri "
-"ko'rsatilganligini tekshiring."
-
-#: any.pm:375
-#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Allaqachon o'rnatilgan paketlar qidirilmoqda..."
-
-#: any.pm:382
-#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Yangilashdan avval paketlar olib tashlanmoqda..."
-
-#: any.pm:424
-#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Yangilash uchun paketlar qidirilmoqda..."
-
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
-#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
-msgstr ""
-"Quyidagi server dasturlar ham o'rnatiladi: %s\n"
-"\n"
-"\n"
-"Bu server dasturlar o'rnatilishi bilan ular ishga tushiriladi.\n"
-"Hozircha, ular bilan bog'liq birorta ham xavfsizlik borasida muammolar\n"
-"kuzatilmagan, ammo ularning topilish ehtimoli hamisha mavjud. Bunday\n"
-"holatda, ularni iloji boricha tezroq yangilashingiz lozim.\n"
-"\n"
-"\n"
-"Bu server dasturlarni rostdan ham o'rnatishni istaysizmi?\n"
-
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
-#, c-format
-msgid ""
-"The following packages will be removed to allow upgrading your system: %s\n"
-"\n"
-"\n"
-"Do you really want to remove these packages?\n"
-msgstr ""
-"Tizimni yangilash uchun quyidagi paketlar o'chiriladi: %s\n"
-"\n"
-"\n"
-"Davom etishni istaysizmi?\n"
-
-#: any.pm:1055
-#, c-format
-msgid "The following disk(s) were renamed:"
-msgstr "Quyidagi disk(lar)ning nomi o'zgartirildi:"
-
-#: any.pm:1057
-#, c-format
-msgid "%s (previously named as %s)"
-msgstr "%s (oldingi nomi %s)"
-
-#: any.pm:1114
-#, c-format
-msgid "HTTP"
-msgstr "HTTP"
-
-#: any.pm:1114
-#, c-format
-msgid "FTP"
-msgstr "FTP"
-
-#: any.pm:1114
-#, c-format
-msgid "NFS"
-msgstr "NFS"
-
-#: any.pm:1133 steps_interactive.pm:922
-#, c-format
-msgid "Network"
-msgstr "Tarmoq"
-
-#: any.pm:1137
-#, c-format
-msgid "Please choose a media"
-msgstr "Iltimos to'plamni tanlang"
-
-#: any.pm:1153
-#, c-format
-msgid "File already exists. Overwrite it?"
-msgstr "Fayl allaqachon mavjud. Uni almashtirishni istaysizmi?"
-
-#: any.pm:1157
-#, c-format
-msgid "Permission denied"
-msgstr "Ruxsat yo'q"
-
-#: any.pm:1205
-#, c-format
-msgid "Bad NFS name"
-msgstr "NFS nomi noto'g'ri"
-
-#: any.pm:1226
-#, c-format
-msgid "Bad media %s"
-msgstr "Noto'g'ri to'plam %s"
-
-#: any.pm:1269
-#, c-format
-msgid "Can not make screenshots before partitioning"
-msgstr "Skrinshotlarni diskni bo'lishdan avval olib bo'lmaydi"
-
-#: any.pm:1277
-#, c-format
-msgid "Screenshots will be available after install in %s"
-msgstr ""
-"O'rnatish tugaganidan keyin skrinshotlarni quyidagi joydan topish mumkin: %s"
-
-#: gtk.pm:119
-#, c-format
-msgid "Installation"
-msgstr "O'rnatish"
-
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
-#, c-format
-msgid "Configuration"
-msgstr "Moslash"
-
-#: install2.pm:165
-#, c-format
-msgid "You must also format %s"
-msgstr "Siz %s'ni ham format qilishingiz kerak"
-
-#: interactive.pm:16
-#, c-format
-msgid ""
-"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
-"You can find some information about them at: %s"
-msgstr ""
-"Kompyuterning ba'zi asbob-uskunasi erkin bo'lmagan drayverni talab qiladi.\n"
-"Ular haqida ba'zi ma'lumotni quyidagi joydan olsa bo'ladi: %s"
-
-#: interactive.pm:22
-#, c-format
-msgid "Bringing up the network"
-msgstr "Tarmoq ishga tushirilmoqda"
-
-#: interactive.pm:27
-#, c-format
-msgid "Bringing down the network"
-msgstr "Tarmoq o'chirilmoqda"
-
-#: media.pm:703 media.pm:714
-#, c-format
-msgid "Downloading file %s..."
-msgstr "%s fayli yozib olinmoqda..."
-
-#: media.pm:808
-#, c-format
-msgid "Copying some packages on disks for future use"
-msgstr "Ba'zi paketlardan diskka nusxa olinmoqda"
-
-#: media.pm:861
-#, c-format
-msgid "Copying in progress"
-msgstr "Nusxa olish davom etmoqda"
-
-#: pkgs.pm:28
-#, c-format
-msgid "must have"
-msgstr "bo'lishi shart"
-
-#: pkgs.pm:29
-#, c-format
-msgid "important"
-msgstr "muhim"
-
-#: pkgs.pm:30
-#, c-format
-msgid "very nice"
-msgstr "juda yaxshi"
-
-#: pkgs.pm:31
-#, c-format
-msgid "nice"
-msgstr "yaxshi"
-
-#: pkgs.pm:32
-#, c-format
-msgid "maybe"
-msgstr "balki"
-
-#: pkgs.pm:245
-#, c-format
-msgid ""
-"Some packages requested by %s cannot be installed:\n"
-"%s"
-msgstr ""
-
-#: share/meta-task/compssUsers.pl:11
-#, c-format
-msgid "Workstation"
-msgstr "Ish stantsiyasi"
-
-#: share/meta-task/compssUsers.pl:13
-#, c-format
-msgid "Office Workstation"
-msgstr "Idora stantsiyasi"
-
-#: share/meta-task/compssUsers.pl:15
-#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
-msgstr ""
-"Idora uchun dasturlar: matn protsessorlari (OpenOffice.org Writer, Kword), "
-"elektron jadvallar (OpenOffice.org Calc, Kspread), PDF ko'ruvchilar va hokazo"
-
-#: share/meta-task/compssUsers.pl:16
-#, c-format
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"Idora uchun dasturlar: matn protsessorlari (kword, abiword), elektron "
-"jadvallar (kspread, gnumeric), PDF ko'ruvchilar va hokazo"
-
-#: share/meta-task/compssUsers.pl:21
-#, c-format
-msgid "Game station"
-msgstr "O'yin stantsiyasi"
-
-#: share/meta-task/compssUsers.pl:22
-#, c-format
-msgid "Amusement programs: arcade, boards, strategy, etc"
-msgstr "Ovunchoq dasturlar: arkada, stol o'yinlari, strategiya va hokazo"
-
-#: share/meta-task/compssUsers.pl:25
-#, c-format
-msgid "Multimedia station"
-msgstr "Multimedia stantsiyasi"
-
-#: share/meta-task/compssUsers.pl:26
-#, c-format
-msgid "Sound and video playing/editing programs"
-msgstr "Audio va videoni o'ynash/tahrirlash uchun dasturlar"
-
-#: share/meta-task/compssUsers.pl:31
-#, c-format
-msgid "Internet station"
-msgstr "Internet stantsiyasi"
-
-#: share/meta-task/compssUsers.pl:32
-#, c-format
-msgid ""
-"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
-"Web"
-msgstr ""
-"Xat-xabar, yangiliklarni o'qish va jo'natish (mutt, tin..) va Internetda "
-"sayr qilish uchun vositalar to'plami"
-
-#: share/meta-task/compssUsers.pl:37
-#, c-format
-msgid "Network Computer (client)"
-msgstr "Tarmoqdagi kompyuter (klient)"
-
-#: share/meta-task/compssUsers.pl:38
-#, c-format
-msgid "Clients for different protocols including ssh"
-msgstr "Turli protokollar, shu jumlada SSH, uchun klientlar"
-
-#: share/meta-task/compssUsers.pl:43
-#, c-format
-msgid "Tools to ease the configuration of your computer"
-msgstr "Kompyuterni moslashni yengilashtirish uchun vositalar"
-
-#: share/meta-task/compssUsers.pl:47
-#, c-format
-msgid "Console Tools"
-msgstr "Konsol vositalari"
-
-#: share/meta-task/compssUsers.pl:48
-#, c-format
-msgid "Editors, shells, file tools, terminals"
-msgstr "Tahrirchilar, konsollar, fayl vositalari, terminallar"
-
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
-#, c-format
-msgid "Development"
-msgstr "Tuzish"
-
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
-#, c-format
-msgid "C and C++ development libraries, programs and include files"
-msgstr "C va C++ tuzish kutubxonalari, vositalar va xeder fayllar"
-
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
-#, c-format
-msgid "Documentation"
-msgstr "Qo'llanmalar"
-
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
-#, c-format
-msgid "Books and Howto's on Linux and Free Software"
-msgstr "Linux va erkin dasturlar haqida kitoblar va Howto'lar"
-
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
-#, c-format
-msgid "LSB"
-msgstr "LSB"
-
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
-#, c-format
-msgid "Linux Standard Base. Third party applications support"
-msgstr ""
-
-#: share/meta-task/compssUsers.pl:71
-#, c-format
-msgid "Web Server"
-msgstr "Veb-serveri"
-
-#: share/meta-task/compssUsers.pl:72
-#, c-format
-msgid "Apache"
-msgstr "Apache"
-
-#: share/meta-task/compssUsers.pl:75
-#, c-format
-msgid "Groupware"
-msgstr "Groupware"
-
-#: share/meta-task/compssUsers.pl:76
-#, c-format
-msgid "Kolab Server"
-msgstr "Kolab serveri"
-
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
-#, c-format
-msgid "Firewall/Router"
-msgstr "Fayervol/Ruter"
-
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
-#, c-format
-msgid "Internet gateway"
-msgstr "Internet geytveyi"
-
-#: share/meta-task/compssUsers.pl:83
-#, c-format
-msgid "Mail/News"
-msgstr "Xat-xabar/Yangiliklar"
-
-#: share/meta-task/compssUsers.pl:84
-#, c-format
-msgid "Postfix mail server, Inn news server"
-msgstr "Postfix xat-xabar serveri, Inn yangiliklar serveri"
-
-#: share/meta-task/compssUsers.pl:87
-#, c-format
-msgid "Directory Server"
-msgstr "Direktoriya serveri"
-
-#: share/meta-task/compssUsers.pl:91
-#, c-format
-msgid "FTP Server"
-msgstr "FTP serveri"
-
-#: share/meta-task/compssUsers.pl:92
-#, c-format
-msgid "ProFTPd"
-msgstr "ProFTPd"
-
-#: share/meta-task/compssUsers.pl:95
-#, c-format
-msgid "DNS/NIS"
-msgstr "DNS/NIS"
-
-#: share/meta-task/compssUsers.pl:96
-#, c-format
-msgid "Domain Name and Network Information Server"
-msgstr "DNS va NIS"
-
-#: share/meta-task/compssUsers.pl:99
-#, c-format
-msgid "File and Printer Sharing Server"
-msgstr "Fayl va printerni bo'lishish serveri"
-
-#: share/meta-task/compssUsers.pl:100
-#, c-format
-msgid "NFS Server, Samba server"
-msgstr "NFS serveri, Samba serveri"
-
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
-#, c-format
-msgid "Database"
-msgstr "Ma'lumot bazasi"
-
-#: share/meta-task/compssUsers.pl:104
-#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL va MySQL ma'lumot bazasi"
-
-#: share/meta-task/compssUsers.pl:108
-#, c-format
-msgid "Web/FTP"
-msgstr "Web/FTP"
-
-#: share/meta-task/compssUsers.pl:109
-#, c-format
-msgid "Apache, Pro-ftpd"
-msgstr "Apache, Pro-ftpd"
-
-#: share/meta-task/compssUsers.pl:112
-#, c-format
-msgid "Mail"
-msgstr "Xat-xabar"
-
-#: share/meta-task/compssUsers.pl:113
-#, c-format
-msgid "Postfix mail server"
-msgstr "Postfix xat-xabar serveri"
-
-#: share/meta-task/compssUsers.pl:117
-#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL yoki MySQL ma'lumot bazasi"
-
-#: share/meta-task/compssUsers.pl:124
-#, c-format
-msgid "Network Computer server"
-msgstr "Tarmoqdagi kompyuter (server)"
-
-#: share/meta-task/compssUsers.pl:125
-#, c-format
-msgid "NFS server, SMB server, Proxy server, ssh server"
-msgstr "NFS serveri, SMB serveri, Proxy serveri, SSH serveri"
-
-#: share/meta-task/compssUsers.pl:131
-#, c-format
-msgid "Graphical Environment"
-msgstr "Grafik muhit"
-
-#: share/meta-task/compssUsers.pl:133
-#, c-format
-msgid "KDE Workstation"
-msgstr "KDE stantsiyasi"
-
-#: share/meta-task/compssUsers.pl:134
-#, c-format
-msgid ""
-"The K Desktop Environment, the basic graphical environment with a collection "
-"of accompanying tools"
-msgstr "KDE - vositalar to'plami bilan birga asosiy grafik muhit"
-
-#: share/meta-task/compssUsers.pl:138
-#, c-format
-msgid "GNOME Workstation"
-msgstr "GNOME stantsiyasi"
-
-#: share/meta-task/compssUsers.pl:139
-#, c-format
-msgid ""
-"A graphical environment with user-friendly set of applications and desktop "
-"tools"
-msgstr ""
-"Foydalanuvchilar uchun qulay dasturlar va ish stoli vositalaridan iborat "
-"grafik muhit"
-
-#: share/meta-task/compssUsers.pl:142
-#, c-format
-msgid "IceWm Desktop"
-msgstr "IceWm ish stoli"
-
-#: share/meta-task/compssUsers.pl:146
-#, c-format
-msgid "Other Graphical Desktops"
-msgstr "Boshqa grafik ish stollari"
-
-#: share/meta-task/compssUsers.pl:147
-#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm, va hokazo"
-
-#: share/meta-task/compssUsers.pl:170
-#, c-format
-msgid "Utilities"
-msgstr "Vositalar"
-
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
-#, c-format
-msgid "SSH Server"
-msgstr "SSH serveri"
-
-#: share/meta-task/compssUsers.pl:177
-#, c-format
-msgid "Webmin"
-msgstr "Webmin"
-
-#: share/meta-task/compssUsers.pl:178
-#, c-format
-msgid "Webmin Remote Configuration Server"
-msgstr "Webmin masofadan boshqarish serveri"
-
-#: share/meta-task/compssUsers.pl:182
-#, c-format
-msgid "Network Utilities/Monitoring"
-msgstr "Tarmoq vositalari/Nazorat qilish"
-
-#: share/meta-task/compssUsers.pl:183
-#, c-format
-msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
-msgstr ""
-"Nazorat qilish vositalari, vazifalar hisobotchilari, tcpdump, nmap, ..."
-
-#: share/meta-task/compssUsers.pl:187
-#, c-format
-msgid "Mandriva Wizards"
-msgstr "Mandriva yordamchilari"
-
-#: share/meta-task/compssUsers.pl:188
-#, c-format
-msgid "Wizards to configure server"
-msgstr "Serverni moslash uchun yordamchilar"
-
-#: steps.pm:85
-#, c-format
-msgid ""
-"An error occurred, but I do not know how to handle it nicely.\n"
-"Continue at your own risk."
-msgstr ""
-
-#: steps.pm:433
-#, c-format
-msgid ""
-"Some important packages did not get installed properly.\n"
-"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
-"\"\n"
-msgstr ""
-"Ba'zi bir muhim paketlar to'g'ri o'rnatilmadi.\n"
-"Sizning kompakt-disk uskunangizda yoki kompakt-diskingizda xato bor.\n"
-"Kompakt-diskni o'rnatilgan kompyuterda \"rpm -qpl media/main/*.rpm\" "
-"buyrug'i bilan tekshirib ko'ring.\n"
-
-#: steps_auto_install.pm:71 steps_stdio.pm:27
-#, c-format
-msgid "Entering step `%s'\n"
-msgstr "%s bosqichga o'tilmoqda\n"
-
-#: steps_curses.pm:22
-#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux OTni o'rnatish %s"
-
-#: steps_curses.pm:32
-#, c-format
-msgid "<Tab>/<Alt-Tab> between elements"
-msgstr "<Tab>/<Alt-Tab> banddan-bandga"
-
-#: steps_gtk.pm:189
-#, c-format
-msgid ""
-"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
-"press `F1' when booting on CDROM, then enter `text'."
-msgstr ""
-
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
-#, c-format
-msgid "Package Group Selection"
-msgstr "Paketlarni guruh bo'yicha tanlash"
-
-#: steps_gtk.pm:277 steps_interactive.pm:581
-#, c-format
-msgid "Individual package selection"
-msgstr "Paketlarni bittama-bitta tanlash"
-
-#: steps_gtk.pm:299 steps_interactive.pm:507
-#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Jami: %d / %d Mb"
-
-#: steps_gtk.pm:344
-#, c-format
-msgid "Bad package"
-msgstr "Yomon paket"
-
-#: steps_gtk.pm:346
-#, c-format
-msgid "Version: "
-msgstr "Versiyasi: "
-
-#: steps_gtk.pm:347
-#, c-format
-msgid "Size: "
-msgstr "Hajmi: "
-
-#: steps_gtk.pm:347
-#, c-format
-msgid "%d KB\n"
-msgstr "%d Kb\n"
-
-#: steps_gtk.pm:348
-#, c-format
-msgid "Importance: "
-msgstr "Muhimligi: "
-
-#: steps_gtk.pm:382
-#, c-format
-msgid "You can not select/unselect this package"
-msgstr "Bu paketni tanlolmaysiz/tanlashni bekor qilolmaysiz"
-
-#: steps_gtk.pm:386
-#, c-format
-msgid "due to missing %s"
-msgstr "%s yetishmagani uchun"
-
-#: steps_gtk.pm:387
-#, c-format
-msgid "due to unsatisfied %s"
-msgstr ""
-
-#: steps_gtk.pm:388
-#, c-format
-msgid "trying to promote %s"
-msgstr ""
-
-#: steps_gtk.pm:389
-#, c-format
-msgid "in order to keep %s"
-msgstr "%s'ni qoldirish uchun"
-
-#: steps_gtk.pm:394
-#, c-format
-msgid ""
-"You can not select this package as there is not enough space left to install "
-"it"
-msgstr ""
-"Bu paketni tanlolmaysiz, chunki uni o'rnatish uchun yetarli joy mavjud emas."
-
-#: steps_gtk.pm:397
-#, c-format
-msgid "The following packages are going to be installed"
-msgstr "Quyidagi paketlar o'rnatiladi"
-
-#: steps_gtk.pm:398
-#, c-format
-msgid "The following packages are going to be removed"
-msgstr "Quyidagi paketlar olib tashlaniladi."
-
-#: steps_gtk.pm:423
-#, c-format
-msgid "This is a mandatory package, it can not be unselected"
-msgstr ""
-"Bu o'rnatilishi shart bo'lgan paket, uni tanlashni bekor qilib bo'lmaydi."
-
-#: steps_gtk.pm:425
-#, c-format
-msgid "You can not unselect this package. It is already installed"
-msgstr "Bu paketni tanlashni bekor qilolmaysiz. U allaqachon o'rnatilgan."
-
-#: steps_gtk.pm:427
-#, c-format
-msgid "You can not unselect this package. It must be upgraded"
-msgstr "Bu paketni tanlashni bekor qilolmaysiz. U yangilanishi shart."
-
-#: steps_gtk.pm:431
-#, c-format
-msgid "Show automatically selected packages"
-msgstr "Avtomatik ravishda tanlangan paketlarni ko'rsatish"
-
-#: steps_gtk.pm:433
-#, c-format
-msgid "Install"
-msgstr "O'rnatish"
-
-#: steps_gtk.pm:436
-#, c-format
-msgid "Load/Save selection"
-msgstr "Tanlanganni yuklash/saqlash"
-
-#: steps_gtk.pm:437
-#, c-format
-msgid "Updating package selection"
-msgstr "Paketlar tanlovi yangilanmoqda"
-
-#: steps_gtk.pm:442
-#, c-format
-msgid "Minimal install"
-msgstr "Minimal o'rnatish"
-
-#: steps_gtk.pm:456
-#, c-format
-msgid "Software Management"
-msgstr "Dasturlar boshqaruvi"
-
-#: steps_gtk.pm:456 steps_interactive.pm:393
-#, c-format
-msgid "Choose the packages you want to install"
-msgstr "Siz o'rnatmoqchi bo'lgan paketlarni tanlang"
-
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
-#, c-format
-msgid "Installing"
-msgstr "O'rnatilmoqda"
-
-#: steps_gtk.pm:499
-#, c-format
-msgid "No details"
-msgstr "Tafsilotlarsiz"
-
-#: steps_gtk.pm:514
-#, c-format
-msgid "Time remaining "
-msgstr "Qolgan vaqt "
-
-#: steps_gtk.pm:515
-#, c-format
-msgid "Estimating"
-msgstr "Chamalanmoqda"
-
-#: steps_gtk.pm:542
-#, c-format
-msgid "%d package"
-msgid_plural "%d packages"
-msgstr[0] "%d-ta paket"
-
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
-#, c-format
-msgid "Summary"
-msgstr "Hisobot"
-
-#: steps_gtk.pm:605
-#, c-format
-msgid "Configure"
-msgstr "Moslash"
-
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
-#, c-format
-msgid "not configured"
-msgstr "moslanmagan"
-
-#: steps_gtk.pm:658 steps_interactive.pm:278
-#, c-format
-msgid ""
-"The following installation media have been found.\n"
-"If you want to skip some of them, you can unselect them now."
-msgstr ""
-"Quyidagi o'rnatish manbalari aniqlandi.\n"
-"Faqat tanlangan manbalar o'rnatish uchun ishlatiladi."
-
-#: steps_gtk.pm:667 steps_interactive.pm:284
-#, c-format
-msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
-"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
-"available once the system is fully installed."
-msgstr ""
-"O'rnatishdan avval kompakt-disklardagi paketlardan kompyuterning diskiga "
-"nusxa olish mumkin.\n"
-"O'rnatish to'liq tugagandan so'ng ular tizimga ma'lum bo'ladi."
-
-#: steps_gtk.pm:669 steps_interactive.pm:286
-#, c-format
-msgid "Copy whole CDs"
-msgstr "Butun diskdan nusxa olish"
-
-#: steps_interactive.pm:38
-#, c-format
-msgid "An error occurred"
-msgstr "Xato ro'y berdi"
-
-#: steps_interactive.pm:97
-#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Iltimos tugmalar tartibini tanlang."
-
-#: steps_interactive.pm:99
-#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Mavjud bo'lgan tugmataglarning to'liq ro'yxati"
-
-#: steps_interactive.pm:129
-#, c-format
-msgid "Install/Upgrade"
-msgstr "O'rnatish/Yangilash"
-
-#: steps_interactive.pm:130
-#, c-format
-msgid "Is this an install or an upgrade?"
-msgstr "Bu o'rnatishmi yoki yangilashmi?"
-
-#: steps_interactive.pm:134
-#, c-format
-msgid ""
-"_: This is a noun:\n"
-"Install"
-msgstr "O'rnatish"
-
-#: steps_interactive.pm:136
-#, c-format
-msgid "Upgrade %s"
-msgstr "%s OTni yangilash"
-
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:158
-#, c-format
-msgid "Encryption key for %s"
-msgstr "%s uchun kodlash kaliti"
-
-#: steps_interactive.pm:194
-#, c-format
-msgid "IDE"
-msgstr "IDE"
-
-#: steps_interactive.pm:194
-#, c-format
-msgid "Configuring IDE"
-msgstr "IDE'ni moslash"
-
-#: steps_interactive.pm:231
-#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
-
-#: steps_interactive.pm:236
-#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
-msgstr ""
-
-#: steps_interactive.pm:328
-#, c-format
-msgid ""
-"Change your Cd-Rom!\n"
-"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
-"done.\n"
-"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
-msgstr ""
-"Kompakt-diskni almashtiring!\n"
-"\n"
-"Iltimos '%s' belgili kompakt-diskni qo'ying va \"Ok\" tugmasini bosing.\n"
-"Agar u sizda bo'lmasa, bu kompakt-diskdan o'rnatishni bekor qilish uchun "
-"\"Bekor qilish\" tugmasini bosing."
-
-#: steps_interactive.pm:350
-#, c-format
-msgid "Looking for available packages..."
-msgstr "Mavjud bo'lgan paketlar qidirilmoqda..."
-
-#: steps_interactive.pm:358
-#, c-format
-msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
-msgstr ""
-"Tizimda o'rnatish yoki yangilash uchun yetarli joy qolmadi (%d Mb > %d Mb)"
-
-#: steps_interactive.pm:405
-#, c-format
-msgid ""
-"Please choose load or save package selection.\n"
-"The format is the same as auto_install generated files."
-msgstr ""
-
-#: steps_interactive.pm:407
-#, c-format
-msgid "Load"
-msgstr "Yuklash"
-
-#: steps_interactive.pm:407
-#, c-format
-msgid "Save"
-msgstr "Saqlash"
-
-#: steps_interactive.pm:415
-#, c-format
-msgid "Bad file"
-msgstr "Noto'g'ri fayl"
-
-#: steps_interactive.pm:431
-#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr "KDE ish stoli"
-
-#: steps_interactive.pm:432
-#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr "GNOME ish stoli"
-
-#: steps_interactive.pm:433
-#, c-format
-msgid "Custom install"
-msgstr "Boshqa"
-
-#: steps_interactive.pm:436
-#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr "Quyidagi ro'yxatdan o'rnatiladigan dasturlar guruhini tanlang"
-
-#: steps_interactive.pm:521
-#, c-format
-msgid "Selected size is larger than available space"
-msgstr "Tanlangan hajm mavjud bo'lgan bo'sh joydan katta"
-
-#: steps_interactive.pm:536
-#, c-format
-msgid "Type of install"
-msgstr "O'rnatishning turi"
-
-#: steps_interactive.pm:537
-#, c-format
-msgid ""
-"You have not selected any group of packages.\n"
-"Please choose the minimal installation you want:"
-msgstr ""
-"Siz hech qanday paketlar guruhini tanlamadingiz.\n"
-"Iltimos siz istagan minimal o'rnatishni tanlang:"
-
-#: steps_interactive.pm:540
-#, c-format
-msgid "With X"
-msgstr "X bilan"
-
-#: steps_interactive.pm:541
-#, c-format
-msgid "With basic documentation (recommended!)"
-msgstr "Asosiy qo'llanmalar bilan (tavsiya qilinadi!)"
-
-#: steps_interactive.pm:542
-#, c-format
-msgid "Truly minimal install (especially no urpmi)"
-msgstr "Haqiqiy minimal o'rnatish (xususan urpmi'siz)"
-
-#: steps_interactive.pm:596
-#, c-format
-msgid "Preparing installation"
-msgstr "O'rnatishga tayyorlanmoqda"
-
-#: steps_interactive.pm:604
-#, c-format
-msgid "Installing package %s"
-msgstr "%s paketi o'rnatilmoqda"
-
-#: steps_interactive.pm:628
-#, c-format
-msgid "There was an error ordering packages:"
-msgstr "Quyidagi paketlarni saralashda xato ro'y berdi:"
-
-#: steps_interactive.pm:628
-#, c-format
-msgid "Go on anyway?"
-msgstr "Bunga qaramasdan davom etishni istaysizmi?"
-
-#: steps_interactive.pm:632
-#, c-format
-msgid "Retry"
-msgstr "Qaytadan urinish"
-
-#: steps_interactive.pm:633
-#, c-format
-msgid "Skip this package"
-msgstr "Bu paketga e'tibor berilmasin"
-
-#: steps_interactive.pm:634
-#, c-format
-msgid "Skip all packages from medium \"%s\""
-msgstr "\"%s\" to'plamidan hamma paketlarga e'tibor berilmasin"
-
-#: steps_interactive.pm:635
-#, c-format
-msgid "Go back to media and packages selection"
-msgstr "O'rnatish manbalarni va paketlarni tanlashga qaytish"
-
-#: steps_interactive.pm:638
-#, c-format
-msgid "There was an error installing package %s."
-msgstr "Quyidagi paketni o'rnatishda xato ro'y berdi: %s"
-
-#: steps_interactive.pm:656
-#, c-format
-msgid "Post-install configuration"
-msgstr "O'rnatishdan keyin moslash"
-
-#: steps_interactive.pm:663
-#, c-format
-msgid "Please ensure the Update Modules media is in drive %s"
-msgstr ""
-
-#: steps_interactive.pm:691 steps_list.pm:47
-#, c-format
-msgid "Updates"
-msgstr "Yangilanishlar"
-
-#: steps_interactive.pm:692
-#, c-format
-msgid ""
-"You now have the opportunity to download updated packages. These packages\n"
-"have been updated after the distribution was released. They may\n"
-"contain security or bug fixes.\n"
-"\n"
-"To download these packages, you will need to have a working Internet \n"
-"connection.\n"
-"\n"
-"Do you want to install the updates?"
-msgstr ""
-"Hozir sizda yangilangan paketlarni yozib olib o'rnatish imkoniyati mavjud.\n"
-"Ular hozir siz o'rnatgan Mandriva Linux tizimi chiqqanidan so'ng\n"
-"yangilangan. Ularda har xil xavfsizlik va dasturlar bilan bog'liq\n"
-"xatoliklar tuzatilgan bo'lishi mumkin.\n"
-"\n"
-"Bu paketlarni yozib olish uchun sizda Internet bilan aloqa o'rnatilgan "
-"bo'lishi\n"
-"kerak.\n"
-"\n"
-"Yangilanishlarni o'rnatishni istaysizmi?"
-
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr ""
-"Mavjud bo'lgan paketlarning ro'yxatini olish uchun oyna bilan aloqa "
-"o'rnatilmoqda..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Oyna (%s)bilan aloqa o'rnatib bo'lmadi."
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
-#, c-format
-msgid "%s on %s"
-msgstr "%s %s'da"
-
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
-#, c-format
-msgid "Hardware"
-msgstr "Asbob-uskunalar"
-
-#: steps_interactive.pm:881 steps_interactive.pm:899
-#, c-format
-msgid "Sound card"
-msgstr "Tovush karta"
-
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Sizda ISA tovush kartasi bormi?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"O'rnatishdan keyin, tovush kartangizni moslash uchun, \"sndconfig\" yoki "
-"\"alsaconf\" dasturini ishga tushiring"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Tovush kartasi topilmadi. O'rnatishdan keyin \"harddrake\" dasturini sinab "
-"ko'ring."
-
-#: steps_interactive.pm:914
-#, c-format
-msgid "Graphical interface"
-msgstr "Grafik interfeys"
-
-#: steps_interactive.pm:921 steps_interactive.pm:932
-#, c-format
-msgid "Network & Internet"
-msgstr "Tarmoq va Internet"
-
-#: steps_interactive.pm:933
-#, c-format
-msgid "Proxies"
-msgstr "Proksilar"
-
-#: steps_interactive.pm:934
-#, c-format
-msgid "configured"
-msgstr "moslangan"
-
-#: steps_interactive.pm:944
-#, c-format
-msgid "Security Level"
-msgstr "Xavfsizlik darajasi"
-
-#: steps_interactive.pm:963
-#, c-format
-msgid "Firewall"
-msgstr "Fayervol"
-
-#: steps_interactive.pm:967
-#, c-format
-msgid "activated"
-msgstr "ishlayapti"
-
-#: steps_interactive.pm:967
-#, c-format
-msgid "disabled"
-msgstr "o'chirilgan"
-
-#: steps_interactive.pm:981
-#, c-format
-msgid "You have not configured X. Are you sure you really want this?"
-msgstr "Siz X'ni moslamadingiz. Rostdan buni istaysizmi?"
-
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "OT yuklagichi tayyorlanmoqda..."
-
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "aboot dasturidan foydalanishni istaysizmi?"
-
-#: steps_interactive.pm:1027
-#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-
-#: steps_interactive.pm:1039
-#, c-format
-msgid ""
-"In this security level, access to the files in the Windows partition is "
-"restricted to the administrator."
-msgstr ""
-"Ushbu xavfsizlik daraja qo'llanilganda diskning Windows qismidagi fayllarga "
-"faqat administrator murojaat qilishi mumkin."
-
-#: steps_interactive.pm:1071
-#, c-format
-msgid "Insert a blank floppy in drive %s"
-msgstr "Bo'sh disketni %s uskunasiga qo'ying"
-
-#: steps_interactive.pm:1073
-#, c-format
-msgid "Creating auto install floppy..."
-msgstr "Avto-o'rnatish disketi yaratilmoqda..."
-
-#: steps_interactive.pm:1084
-#, c-format
-msgid ""
-"Some steps are not completed.\n"
-"\n"
-"Do you really want to quit now?"
-msgstr ""
-"Ba'zi o'rnatish bosqichlari bajarilmadi.\n"
-"\n"
-"Rostdan chiqishni istaysizmi?"
-
-#: steps_interactive.pm:1094
-#, c-format
-msgid "Congratulations"
-msgstr "Tabriklaymiz!"
-
-#: steps_interactive.pm:1098
-#, c-format
-msgid "Reboot"
-msgstr "O'chirib-yoqish"
-
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Avto-o'rnatish disketni yaratish"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Qaytarish"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Avtomatik"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Paketlar tanlovini saqlash"
-
-#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
-#: steps_list.pm:16
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Language"
-msgstr "Til"
-
-#: steps_list.pm:16 steps_list.pm:23
-#, c-format
-msgid "Localization"
-msgstr ""
-
-#: steps_list.pm:17
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"License"
-msgstr "Litsenziya"
-
-#: steps_list.pm:18
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Mouse"
-msgstr "Sichqoncha"
-
-#: steps_list.pm:19 steps_list.pm:20
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Hard drive detection"
-msgstr "Qattiq diskni aniqlash"
-
-#: steps_list.pm:21 steps_list.pm:22
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Installation class"
-msgstr "O'rnatish sinfi"
-
-#: steps_list.pm:23
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Keyboard"
-msgstr "Tugmatag"
-
-#: steps_list.pm:24
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Security"
-msgstr "Xavfsizlik"
-
-#: steps_list.pm:25
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Partitioning"
-msgstr "Diskni bo'lish"
-
-#: steps_list.pm:27 steps_list.pm:28
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Formatting"
-msgstr "Formatlash"
-
-#: steps_list.pm:29
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Choosing packages"
-msgstr "O'rnatilishi kerak bo'lgan paketlarni tanlash"
-
-#: steps_list.pm:31
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Installing"
-msgstr "O'rnatilmoqda"
-
-#: steps_list.pm:34
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Users"
-msgstr "Foydalanuvchilar"
-
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Tarmoq"
-
-#: steps_list.pm:38 steps_list.pm:39
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Bootloader"
-msgstr "OT yuklagichi"
-
-#: steps_list.pm:40 steps_list.pm:41
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Configure X"
-msgstr "X serverini moslash"
-
-#: steps_list.pm:42
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Summary"
-msgstr "Hisobot"
-
-#: steps_list.pm:44 steps_list.pm:45
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Services"
-msgstr "Xizmatlar"
-
-#: steps_list.pm:46
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Updates"
-msgstr "Yangilanishlar"
-
-#: steps_list.pm:48
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Exit"
-msgstr "Chiqish"
-
-#~ msgid "All"
-#~ msgstr "Hammasi"
-
-#~ msgid "TV card"
-#~ msgstr "TV karta"
diff --git a/perl-install/install/share/po/uz@cyrillic.po b/perl-install/install/share/po/uz@cyrillic.po
new file mode 100644
index 000000000..c2081c342
--- /dev/null
+++ b/perl-install/install/share/po/uz@cyrillic.po
@@ -0,0 +1,1864 @@
+# translation of uz@cyrillic.po to Uzbek
+# Copyright (C) 2003, 2004, 2006, 2007, 2008 Free Software Foundation, Inc.
+# Copyright (C) 2003 Mandriva.
+#
+# Mashrab Kuvatov <kmashrab@uni-bremen.de>, 2003, 2004, 2006, 2007, 2008.
+# Nurali Abdurahmonov <mavnur@gmail.com>, 2006, 2009, 2010.
+# Behzod Saidov <behzodsaidov@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: uz@cyrillic\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2010-01-07 11:35+0500\n"
+"Last-Translator: Nurali Abdurahmonov <mavnur@gmail.com>\n"
+"Language-Team: American English <kde-i18n-doc@kde.org>\n"
+"Language: uz\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.0\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr ""
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr ""
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, fuzzy, c-format
+msgid "Office tools"
+msgstr "Идора станцияси"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr ""
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr ""
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr ""
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr ""
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr "Сизда қўшимча компакт-диск борми?"
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
+#, c-format
+msgid ""
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
+msgstr ""
+"Ўрнатиш давомида қуйидаги манбадан фойдаланилади: %s.\n"
+"\n"
+"\n"
+"Мосланиши керак бўлган қўшимча ўрнатиш манбаси борми?"
+
+#: any.pm:162
+#, c-format
+msgid "Network (HTTP)"
+msgstr "Тармоқ (HTTP)"
+
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
+msgstr "Тармоқ (FTP)"
+
+#: any.pm:164
+#, c-format
+msgid "Network (NFS)"
+msgstr "Тармоқ (NFS)"
+
+#: any.pm:224
+#, c-format
+msgid "NFS setup"
+msgstr "NFS орқали ўрнатиш"
+
+#: any.pm:225
+#, c-format
+msgid "Please enter the hostname and directory of your NFS media"
+msgstr "NFS тўпламининг компьютер номини ва директорияни киритинг"
+
+#: any.pm:229
+#, c-format
+msgid "Hostname missing"
+msgstr "Компьютернинг номи кўрсатилмаган"
+
+#: any.pm:230
+#, c-format
+msgid "Directory must begin with \"/\""
+msgstr "Директория \"/\" белги билан бошлаши керак"
+
+#: any.pm:234
+#, c-format
+msgid "Hostname of the NFS mount ?"
+msgstr "NFS серверининг хост номи"
+
+#: any.pm:235
+#, c-format
+msgid "Directory"
+msgstr "Директория"
+
+#: any.pm:265
+#, c-format
+msgid "Supplementary"
+msgstr "Қўшимча"
+
+#: any.pm:300
+#, c-format
+msgid ""
+"Can't find a package list file on this mirror. Make sure the location is "
+"correct."
+msgstr ""
+"Ойнада пакетлар рўйхатини топиб бўлмади. Манзил (URL) тўғри "
+"кўрсатилганлигини текширинг."
+
+#: any.pm:325
+#, c-format
+msgid "Core Release"
+msgstr ""
+
+#: any.pm:327
+#, c-format
+msgid "Tainted Release"
+msgstr ""
+
+#: any.pm:329
+#, c-format
+msgid "Nonfree Release"
+msgstr ""
+
+#: any.pm:367
+#, c-format
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, fuzzy, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "\"%s\" тўпламидан ҳамма пакетларга эътибор берилмасин"
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Аллақачон ўрнатилган пакетлар қидирилмоқда..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Янгилаш учун пакетлар қидирилмоқда..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Янгилашдан аввал пакетлар олиб ташланмоқда..."
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:850
+#, c-format
+msgid ""
+"The following packages will be removed to allow upgrading your system: %s\n"
+"\n"
+"\n"
+"Do you really want to remove these packages?\n"
+msgstr ""
+"Тизимни янгилаш учун қуйидаги пакетлар ўчирилади: %s\n"
+"\n"
+"\n"
+"Давом этишни истайсизми?\n"
+
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "%s файлини ўқишда хато рўй берди"
+
+#: any.pm:1283
+#, c-format
+msgid "The following disk(s) were renamed:"
+msgstr "Қуйидаги диск(лар)нинг номи ўзгартирилди:"
+
+#: any.pm:1285
+#, c-format
+msgid "%s (previously named as %s)"
+msgstr "%s (олдинги номи %s)"
+
+#: any.pm:1342
+#, c-format
+msgid "HTTP"
+msgstr "HTTP"
+
+#: any.pm:1342
+#, c-format
+msgid "FTP"
+msgstr "FTP"
+
+#: any.pm:1342
+#, c-format
+msgid "NFS"
+msgstr "NFS"
+
+#: any.pm:1361 steps_interactive.pm:979
+#, c-format
+msgid "Network"
+msgstr "Тармоқ"
+
+#: any.pm:1365
+#, c-format
+msgid "Please choose a media"
+msgstr "Илтимос тўпламни танланг"
+
+#: any.pm:1381
+#, c-format
+msgid "File already exists. Overwrite it?"
+msgstr "Файл аллақачон мавжуд. Уни алмаштиришни истайсизми?"
+
+#: any.pm:1385
+#, c-format
+msgid "Permission denied"
+msgstr "Рухсат йўқ"
+
+#: any.pm:1433
+#, c-format
+msgid "Bad NFS name"
+msgstr "NFS номи нотўғри"
+
+#: any.pm:1454
+#, c-format
+msgid "Bad media %s"
+msgstr "Нотўғри тўплам %s"
+
+#: any.pm:1498
+#, c-format
+msgid "Cannot make screenshots before partitioning"
+msgstr "Скриншотларни дискни бўлишдан аввал олиб бўлмайди"
+
+#: any.pm:1509
+#, c-format
+msgid "Screenshots will be available after install in %s"
+msgstr ""
+"Ўрнатиш тугаганидан кейин скриншотларни қуйидаги жойдан топиш мумкин: %s"
+
+#: gtk.pm:134
+#, c-format
+msgid "Installation"
+msgstr "Ўрнатиш"
+
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
+#, c-format
+msgid "Configuration"
+msgstr "Мослаш"
+
+#: install2.pm:220
+#, c-format
+msgid "You must also format %s"
+msgstr "Сиз %s'ни ҳам формат қилишингиз керак"
+
+#: interactive.pm:16
+#, c-format
+msgid ""
+"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
+"You can find some information about them at: %s"
+msgstr ""
+"Компьютернинг баъзи асбоб-ускунаси эркин бўлмаган драйверни талаб қилади.\n"
+"Улар ҳақида баъзи маълумотни қуйидаги жойдан олса бўлади: %s"
+
+#: interactive.pm:22
+#, c-format
+msgid "Bringing up the network"
+msgstr "Тармоқ ишга туширилмоқда"
+
+#: interactive.pm:27
+#, c-format
+msgid "Bringing down the network"
+msgstr "Тармоқ ўчирилмоқда"
+
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr "Илтимос кутиб туринг, файл олинмоқда"
+
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "манбани қўшиб бўлмади"
+
+#: media.pm:744
+#, c-format
+msgid "Copying some packages on disks for future use"
+msgstr "Баъзи пакетлардан дискка нусха олинмоқда"
+
+#: media.pm:797
+#, c-format
+msgid "Copying in progress"
+msgstr "Нусха олиш давом этмоқда"
+
+#: pkgs.pm:32
+#, c-format
+msgid "must have"
+msgstr "бўлиши шарт"
+
+#: pkgs.pm:33
+#, c-format
+msgid "important"
+msgstr "муҳим"
+
+#: pkgs.pm:34
+#, c-format
+msgid "very nice"
+msgstr "жуда яхши"
+
+#: pkgs.pm:35
+#, c-format
+msgid "nice"
+msgstr "яхши"
+
+#: pkgs.pm:36
+#, c-format
+msgid "maybe"
+msgstr "балки"
+
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Таъриф йўқ"
+
+#: pkgs.pm:290
+#, c-format
+msgid ""
+"Some packages requested by %s cannot be installed:\n"
+"%s"
+msgstr ""
+"%s талаб қиладиган баъзи пакетларни ўрнатиб бўлмайди:\n"
+"%s"
+
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "Хато рўй берди:"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "Жуда жиддий хато рўй берди: %s."
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d ўрнатиш транзакцияси муваффақиятсиз тугади"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "Пакетларни ўрнатиб бўлмади:"
+
+#: share/meta-task/compssUsers.pl:16
+#, c-format
+msgid "Workstation"
+msgstr "Иш станцияси"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Идора станцияси"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
+msgid ""
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
+msgstr ""
+"Идора учун дастурлар: матн процессорлари (LibreOffice Writer, Kword), "
+"электрон жадваллар (LibreOffice Calc, Kspread), PDF кўрувчилар ва ҳоказо"
+
+#: share/meta-task/compssUsers.pl:26
+#, c-format
+msgid "Game station"
+msgstr "Ўйин станцияси"
+
+#: share/meta-task/compssUsers.pl:27
+#, c-format
+msgid "Amusement programs: arcade, boards, strategy, etc"
+msgstr "Овунчоқ дастурлар: аркада, стол ўйинлари, стратегия ва ҳоказо"
+
+#: share/meta-task/compssUsers.pl:30
+#, c-format
+msgid "Multimedia station"
+msgstr "Мултимедиа станцияси"
+
+#: share/meta-task/compssUsers.pl:31
+#, c-format
+msgid "Sound and video playing/editing programs"
+msgstr "Аудио ва видеони ўйнаш/таҳрирлаш учун дастурлар"
+
+#: share/meta-task/compssUsers.pl:36
+#, c-format
+msgid "Internet station"
+msgstr "Интернет станцияси"
+
+#: share/meta-task/compssUsers.pl:37
+#, c-format
+msgid ""
+"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
+"Web"
+msgstr ""
+"Хат-хабар, янгиликларни ўқиш ва жўнатиш (mutt, tin..) ва Интернетда сайр "
+"қилиш учун воситалар тўплами"
+
+#: share/meta-task/compssUsers.pl:42
+#, c-format
+msgid "Network Computer (client)"
+msgstr "Тармоқдаги компьютер (клиент)"
+
+#: share/meta-task/compssUsers.pl:43
+#, c-format
+msgid "Clients for different protocols including ssh"
+msgstr "Турли протоколлар, шу жумлада SSH, учун клиентлар"
+
+#: share/meta-task/compssUsers.pl:49
+#, c-format
+msgid "Tools to ease the configuration of your computer"
+msgstr "Компьютерни мослашни енгилаштириш учун воситалар"
+
+#: share/meta-task/compssUsers.pl:53
+#, c-format
+msgid "Console Tools"
+msgstr "Консол воситалари"
+
+#: share/meta-task/compssUsers.pl:54
+#, c-format
+msgid "Editors, shells, file tools, terminals"
+msgstr "Таҳрирчилар, консоллар, файл воситалари, терминаллар"
+
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
+#, c-format
+msgid "Development"
+msgstr "Тузиш"
+
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
+#, c-format
+msgid "C and C++ development libraries, programs and include files"
+msgstr "C ва C++ тузиш кутубхоналари, воситалар ва хедер файллар"
+
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
+#, c-format
+msgid "Documentation"
+msgstr "Қўлланмалар"
+
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
+#, c-format
+msgid "Books and Howto's on Linux and Free Software"
+msgstr "Linux ва эркин дастурлар ҳақида китоблар ва Howto'лар"
+
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
+#, c-format
+msgid "LSB"
+msgstr "LSB"
+
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
+#, c-format
+msgid "Linux Standard Base. Third party applications support"
+msgstr "Linux Standard Base. Учинчи томон дастур тузувчилари қўллануви"
+
+#: share/meta-task/compssUsers.pl:79
+#, c-format
+msgid "Web Server"
+msgstr "Веб-сервери"
+
+#: share/meta-task/compssUsers.pl:80
+#, c-format
+msgid "Apache"
+msgstr "Apache"
+
+#: share/meta-task/compssUsers.pl:84
+#, c-format
+msgid "Groupware"
+msgstr "Groupware"
+
+#: share/meta-task/compssUsers.pl:85
+#, c-format
+msgid "Kolab Server"
+msgstr "Kolab сервери"
+
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
+#, c-format
+msgid "Firewall/Router"
+msgstr "Файервол/Рутер"
+
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
+#, c-format
+msgid "Internet gateway"
+msgstr "Интернет гейтвэйи"
+
+#: share/meta-task/compssUsers.pl:92
+#, c-format
+msgid "Mail/News"
+msgstr "Хат-хабар/Янгиликлар"
+
+#: share/meta-task/compssUsers.pl:93
+#, c-format
+msgid "Postfix mail server, Inn news server"
+msgstr "Postfix хат-хабар сервери, Inn янгиликлар сервери"
+
+#: share/meta-task/compssUsers.pl:97
+#, c-format
+msgid "Directory Server"
+msgstr "Директория сервери"
+
+#: share/meta-task/compssUsers.pl:102
+#, c-format
+msgid "FTP Server"
+msgstr "FTP сервери"
+
+#: share/meta-task/compssUsers.pl:103
+#, c-format
+msgid "ProFTPd"
+msgstr "ProFTPd"
+
+#: share/meta-task/compssUsers.pl:107
+#, c-format
+msgid "DNS/NIS"
+msgstr "DNS/NIS"
+
+#: share/meta-task/compssUsers.pl:108
+#, c-format
+msgid "Domain Name and Network Information Server"
+msgstr "DNS ва NIS"
+
+#: share/meta-task/compssUsers.pl:112
+#, c-format
+msgid "File and Printer Sharing Server"
+msgstr "Файл ва принтерни бўлишиш сервери"
+
+#: share/meta-task/compssUsers.pl:113
+#, c-format
+msgid "NFS Server, Samba server"
+msgstr "NFS сервери, Samba сервери"
+
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
+#, c-format
+msgid "Database"
+msgstr "Маълумот базаси"
+
+#: share/meta-task/compssUsers.pl:118
+#, c-format
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "PostgreSQL ва MariaDB маълумот базаси"
+
+#: share/meta-task/compssUsers.pl:123
+#, c-format
+msgid "Web/FTP"
+msgstr "Web/FTP"
+
+#: share/meta-task/compssUsers.pl:124
+#, c-format
+msgid "Apache, Pro-ftpd"
+msgstr "Apache, Pro-ftpd"
+
+#: share/meta-task/compssUsers.pl:128
+#, c-format
+msgid "Mail"
+msgstr "Хат-хабар"
+
+#: share/meta-task/compssUsers.pl:129
+#, c-format
+msgid "Postfix mail server"
+msgstr "Postfix хат-хабар сервери"
+
+#: share/meta-task/compssUsers.pl:134
+#, c-format
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL ёки MariaDB маълумот базаси"
+
+#: share/meta-task/compssUsers.pl:142
+#, c-format
+msgid "Network Computer server"
+msgstr "Тармоқдаги компьютер (сервер)"
+
+#: share/meta-task/compssUsers.pl:143
+#, c-format
+msgid "NFS server, SMB server, Proxy server, ssh server"
+msgstr "NFS сервери, SMB сервери, Proxy сервери, SSH сервери"
+
+#: share/meta-task/compssUsers.pl:150
+#, c-format
+msgid "Graphical Environment"
+msgstr "График муҳит"
+
+#: share/meta-task/compssUsers.pl:152
+#, fuzzy, c-format
+msgid "Plasma Workstation"
+msgstr "Иш станцияси"
+
+#: share/meta-task/compssUsers.pl:153
+#, c-format
+msgid ""
+"The K Desktop Environment, the basic graphical environment with a collection "
+"of accompanying tools"
+msgstr "KDE - воситалар тўплами билан бирга асосий график муҳит"
+
+#: share/meta-task/compssUsers.pl:158
+#, c-format
+msgid "GNOME Workstation"
+msgstr "GNOME станцияси"
+
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
+#, c-format
+msgid ""
+"A graphical environment with user-friendly set of applications and desktop "
+"tools"
+msgstr ""
+"Фойдаланувчилар учун қулай дастурлар ва иш столи воситаларидан иборат график "
+"муҳит"
+
+#: share/meta-task/compssUsers.pl:164
+#, fuzzy, c-format
+msgid "Xfce Workstation"
+msgstr "KDE станцияси"
+
+#: share/meta-task/compssUsers.pl:165
+#, fuzzy, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+"Фойдаланувчилар учун қулай дастурлар ва иш столи воситаларидан иборат график "
+"муҳит"
+
+#: share/meta-task/compssUsers.pl:169
+#, fuzzy, c-format
+msgid "MATE Workstation"
+msgstr "GNOME станцияси"
+
+#: share/meta-task/compssUsers.pl:174
+#, fuzzy, c-format
+msgid "Cinnamon Workstation"
+msgstr "Иш станцияси"
+
+#: share/meta-task/compssUsers.pl:175
+#, fuzzy, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "График муҳит"
+
+#: share/meta-task/compssUsers.pl:179
+#, fuzzy, c-format
+msgid "LXQt Desktop"
+msgstr "LXDE иш столи"
+
+#: share/meta-task/compssUsers.pl:181
+#, fuzzy, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+"Фойдаланувчи учун қулай дастурлар ва иш столи восилари мавжуд бўлган енгил "
+"ва тез ишловчи график муҳит"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, fuzzy, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+"Фойдаланувчи учун қулай дастурлар ва иш столи восилари мавжуд бўлган енгил "
+"ва тез ишловчи график муҳит"
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "LXDE иш столи"
+
+#: share/meta-task/compssUsers.pl:191
+#, fuzzy, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+"Фойдаланувчи учун қулай дастурлар ва иш столи восилари мавжуд бўлган енгил "
+"ва тез ишловчи график муҳит"
+
+#: share/meta-task/compssUsers.pl:194
+#, c-format
+msgid "Other Graphical Desktops"
+msgstr "Бошқа график иш столлари"
+
+#: share/meta-task/compssUsers.pl:195
+#, fuzzy, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Enlightenment, Fvwm, ва ҳоказо"
+
+#: share/meta-task/compssUsers.pl:218
+#, c-format
+msgid "Utilities"
+msgstr "Воситалар"
+
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
+#, c-format
+msgid "SSH Server"
+msgstr "SSH сервери"
+
+#: share/meta-task/compssUsers.pl:225
+#, c-format
+msgid "Webmin"
+msgstr "Webmin"
+
+#: share/meta-task/compssUsers.pl:226
+#, c-format
+msgid "Webmin Remote Configuration Server"
+msgstr "Webmin масофадан бошқариш сервери"
+
+#: share/meta-task/compssUsers.pl:230
+#, c-format
+msgid "Network Utilities/Monitoring"
+msgstr "Тармоқ воситалари/Назорат қилиш"
+
+#: share/meta-task/compssUsers.pl:231
+#, c-format
+msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
+msgstr "Назорат қилиш воситалари, вазифалар ҳисоботчилари, tcpdump, nmap, ..."
+
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr "Mageia ёрдамчилари"
+
+#: share/meta-task/compssUsers.pl:236
+#, c-format
+msgid "Wizards to configure server"
+msgstr "Серверни мослаш учун ёрдамчилар"
+
+#: steps.pm:85
+#, c-format
+msgid ""
+"An error occurred, but I do not know how to handle it nicely.\n"
+"Continue at your own risk."
+msgstr ""
+"Хатолик юз берди аммо унинг сабаби аниқланмади.\n"
+"Тавваккал қилган ҳолда давом этишингиз мумкин."
+
+#: steps.pm:469
+#, c-format
+msgid ""
+"Some important packages did not get installed properly.\n"
+"Either your cdrom drive or your cdrom is defective.\n"
+"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
+"\"\n"
+msgstr ""
+"Баъзи бир муҳим пакетлар тўғри ўрнатилмади.\n"
+"Сизнинг компакт-диск ускунангизда ёки компакт-дискингизда хато бор.\n"
+"Компакт-дискни ўрнатилган компьютерда \"rpm -qpl media/main/*.rpm\" буйруғи "
+"билан текшириб кўринг.\n"
+
+#: steps_auto_install.pm:71 steps_stdio.pm:27
+#, c-format
+msgid "Entering step `%s'\n"
+msgstr "%s босқичга ўтилмоқда\n"
+
+#: steps_curses.pm:22
+#, c-format
+msgid "%s Installation %s"
+msgstr "%s ОТни ўрнатиш %s"
+
+#: steps_curses.pm:32
+#, c-format
+msgid "<Tab>/<Alt-Tab> between elements"
+msgstr "<Tab>/<Alt-Tab> банддан-бандга"
+
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Xorg дастури жуда секин ишга тушяпти. Илтимос кутиб туринг..."
+
+#: steps_gtk.pm:216
+#, c-format
+msgid ""
+"Your system is low on resources. You may have some problem installing\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
+"press `F1' when booting on CDROM, then enter `text'."
+msgstr ""
+"Тизимда ресурслар етишмайди. %s тизимини ўрнатиш мобайнида\n"
+"муаммога дуч келишингиз мумкин. Агар шундай бўлса, матн усулида ўрнатиш "
+"воситасидан фойдаланиб кўринг,\n"
+"Бунинг учун дискдан юкланаётганда `F1' тугмасини босинг ва `text' деб ёзинг."
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Манбани танлаш"
+
+#: steps_gtk.pm:257
+#, fuzzy, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "KDE иш столи"
+
+#: steps_gtk.pm:258
+#, fuzzy, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "GNOME иш столи"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Бошқа"
+
+#: steps_gtk.pm:280
+#, fuzzy, c-format
+msgid "Plasma Desktop"
+msgstr "Бошқа иш столи"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "GNOME иш столи"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Бошқа иш столи"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "Бу '%s' иш столининг кўриниши."
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "Иш столини яқинроқдан кўриш учун расмни сичқонча билан босинг"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
+#, c-format
+msgid "Package Group Selection"
+msgstr "Пакетларни гуруҳ бўйича танлаш"
+
+#: steps_gtk.pm:354 steps_interactive.pm:626
+#, c-format
+msgid "Individual package selection"
+msgstr "Пакетларни биттама-битта танлаш"
+
+#: steps_gtk.pm:361
+#, c-format
+msgid "Unselect All"
+msgstr "Ҳеч қайси танланмасин"
+
+#: steps_gtk.pm:380 steps_interactive.pm:538
+#, c-format
+msgid "Total size: %d / %d MB"
+msgstr "Жами: %d / %d Мб"
+
+#: steps_gtk.pm:425
+#, c-format
+msgid "Version: "
+msgstr "Версияси: "
+
+#: steps_gtk.pm:426
+#, c-format
+msgid "Size: "
+msgstr "Ҳажми: "
+
+#: steps_gtk.pm:426
+#, c-format
+msgid "%d KB\n"
+msgstr "%d Кб\n"
+
+#: steps_gtk.pm:427
+#, c-format
+msgid "Importance: "
+msgstr "Муҳимлиги: "
+
+#: steps_gtk.pm:462
+#, c-format
+msgid "You cannot select/unselect this package"
+msgstr "Бу пакетни танлолмайсиз/танлашни бекор қилолмайсиз"
+
+#: steps_gtk.pm:466
+#, c-format
+msgid "due to missing %s"
+msgstr "%s етишмагани учун"
+
+#: steps_gtk.pm:467
+#, c-format
+msgid "due to unsatisfied %s"
+msgstr ""
+
+#: steps_gtk.pm:468
+#, c-format
+msgid "trying to promote %s"
+msgstr "%s ативлаштиришга ҳаракат қилинмоқда"
+
+#: steps_gtk.pm:469
+#, c-format
+msgid "in order to keep %s"
+msgstr "%s'ни қолдириш учун"
+
+#: steps_gtk.pm:474
+#, c-format
+msgid ""
+"You cannot select this package as there is not enough space left to install "
+"it"
+msgstr ""
+"Бу пакетни танлолмайсиз, чунки уни ўрнатиш учун етарли жой мавжуд эмас."
+
+#: steps_gtk.pm:477
+#, c-format
+msgid "The following packages are going to be installed"
+msgstr "Қуйидаги пакетлар ўрнатилади"
+
+#: steps_gtk.pm:478
+#, c-format
+msgid "The following packages are going to be removed"
+msgstr "Қуйидаги пакетлар олиб ташланилади."
+
+#: steps_gtk.pm:504
+#, c-format
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr "Бу ўрнатилиши шарт бўлган пакет, уни танлашни бекор қилиб бўлмайди."
+
+#: steps_gtk.pm:506
+#, c-format
+msgid "You cannot unselect this package. It is already installed"
+msgstr "Бу пакетни танлашни бекор қилолмайсиз. У аллақачон ўрнатилган."
+
+#: steps_gtk.pm:508
+#, c-format
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr "Бу пакетни танлашни бекор қилолмайсиз. У янгиланиши шарт."
+
+#: steps_gtk.pm:512
+#, c-format
+msgid "Show automatically selected packages"
+msgstr "Автоматик равишда танланган пакетларни кўрсатиш"
+
+#: steps_gtk.pm:516
+#, c-format
+msgid "Install"
+msgstr "Ўрнатиш"
+
+#: steps_gtk.pm:519
+#, c-format
+msgid "Load/Save selection"
+msgstr "Танланганни юклаш/сақлаш"
+
+#: steps_gtk.pm:520 steps_gtk.pm:525
+#, c-format
+msgid "Updating package selection"
+msgstr "Пакетлар танлови янгиланмоқда"
+
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
+#, c-format
+msgid "Minimal install"
+msgstr "Минимал ўрнатиш"
+
+#: steps_gtk.pm:543
+#, c-format
+msgid "Software Management"
+msgstr "Дастурлар бошқаруви"
+
+#: steps_gtk.pm:543 steps_interactive.pm:415
+#, c-format
+msgid "Choose the packages you want to install"
+msgstr "Сиз ўрнатмоқчи бўлган пакетларни танланг"
+
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
+#, c-format
+msgid "Installing"
+msgstr "Ўрнатилмоқда"
+
+#: steps_gtk.pm:590
+#, c-format
+msgid "No details"
+msgstr "Тафсилотларсиз"
+
+#: steps_gtk.pm:610
+#, c-format
+msgid "Time remaining:"
+msgstr "Қолган вақт:"
+
+#: steps_gtk.pm:611
+#, c-format
+msgid "(estimating...)"
+msgstr "(чамаланмоқда)"
+
+#: steps_gtk.pm:637
+#, c-format
+msgid "%d package"
+msgid_plural "%d packages"
+msgstr[0] "%d-та пакет"
+
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
+#, c-format
+msgid "Summary"
+msgstr "Ҳисобот"
+
+#: steps_gtk.pm:713
+#, c-format
+msgid "Configure"
+msgstr "Мослаш"
+
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
+#, c-format
+msgid "not configured"
+msgstr "мосланмаган"
+
+#: steps_gtk.pm:773 steps_interactive.pm:315
+#, c-format
+msgid ""
+"The following installation media have been found.\n"
+"If you want to skip some of them, you can unselect them now."
+msgstr ""
+"Қуйидаги ўрнатиш манбалари аниқланди.\n"
+"Фақат танланган манбалар ўрнатиш учун ишлатилади."
+
+#: steps_gtk.pm:789 steps_interactive.pm:321
+#, c-format
+msgid ""
+"You have the option to copy the contents of the CDs onto the hard disk drive "
+"before installation.\n"
+"It will then continue from the hard disk drive and the packages will remain "
+"available once the system is fully installed."
+msgstr ""
+"Ўрнатишдан аввал компакт-дисклардаги пакетлардан компьютернинг дискига нусха "
+"олиш мумкин.\n"
+"Ўрнатиш тўлиқ тугагандан сўнг улар тизимга маълум бўлади."
+
+#: steps_gtk.pm:791 steps_interactive.pm:323
+#, c-format
+msgid "Copy whole CDs"
+msgstr "Бутун дискдан нусха олиш"
+
+#: steps_interactive.pm:40
+#, c-format
+msgid "An error occurred"
+msgstr "Хато рўй берди"
+
+#: steps_interactive.pm:105
+#, c-format
+msgid "Please choose your keyboard layout"
+msgstr "Илтимос тугмалар тартибини танланг"
+
+#: steps_interactive.pm:109
+#, c-format
+msgid "Here is the full list of available keyboards:"
+msgstr "Мавжуд бўлган клавиатураларнинг тўлиқ рўйхати:"
+
+#: steps_interactive.pm:153
+#, c-format
+msgid "Install/Upgrade"
+msgstr "Ўрнатиш/Янгилаш"
+
+#: steps_interactive.pm:157
+#, c-format
+msgid "Is this an install or an upgrade?"
+msgstr "Бу ўрнатишми ёки янгилашми?"
+
+#: steps_interactive.pm:159
+#, c-format
+msgid ""
+"_: This is a noun:\n"
+"Install"
+msgstr "Ўрнатиш"
+
+#: steps_interactive.pm:161
+#, c-format
+msgid "Upgrade %s"
+msgstr "%s ОТни янгилаш"
+
+#: steps_interactive.pm:184
+#, c-format
+msgid "Encryption key for %s"
+msgstr "%s учун кодлаш калити"
+
+#: steps_interactive.pm:217
+#, c-format
+msgid "Cancel installation, reboot system"
+msgstr "Ўрнатишни бекор қилиш, компьютерни ўчириб-ёқиш"
+
+#: steps_interactive.pm:218
+#, c-format
+msgid "New Installation"
+msgstr "Ўрнатиш"
+
+#: steps_interactive.pm:219
+#, c-format
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Олдинги ўрнатишни янгилаш (тавсия этилмайди)"
+
+#: steps_interactive.pm:223
+#, c-format
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr ""
+
+#: steps_interactive.pm:264
+#, fuzzy, c-format
+msgid "Configuring CD/DVD"
+msgstr "IDE'ни мослаш"
+
+#: steps_interactive.pm:354
+#, c-format
+msgid ""
+"Change your Cd-Rom!\n"
+"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
+"done.\n"
+"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
+msgstr ""
+"Компакт-дискни алмаштиринг!\n"
+"\n"
+"Илтимос '%s' белгили компакт-дискни қўйинг ва \"Ок\" тугмасини босинг.\n"
+"Агар у сизда бўлмаса, бу компакт-дискдан ўрнатишни бекор қилиш учун \"Бекор "
+"қилиш\" тугмасини босинг."
+
+#: steps_interactive.pm:372 steps_interactive.pm:490
+#, c-format
+msgid "Looking for available packages..."
+msgstr "Мавжуд бўлган пакетлар қидирилмоқда..."
+
+#: steps_interactive.pm:380
+#, c-format
+msgid ""
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
+msgstr "Тизимда ўрнатиш ёки янгилаш учун етарли жой қолмади (%d Мб > %d Мб)"
+
+#: steps_interactive.pm:428
+#, c-format
+msgid ""
+"Please choose load or save package selection.\n"
+"The format is the same as auto_install generated files."
+msgstr ""
+
+#: steps_interactive.pm:430
+#, c-format
+msgid "Load"
+msgstr "Юклаш"
+
+#: steps_interactive.pm:430
+#, c-format
+msgid "Save"
+msgstr "Сақлаш"
+
+#: steps_interactive.pm:438
+#, c-format
+msgid "Bad file"
+msgstr "Нотўғри файл"
+
+#: steps_interactive.pm:455
+#, fuzzy, c-format
+msgid "Plasma"
+msgstr "Бошқа иш столи"
+
+#: steps_interactive.pm:456
+#, c-format
+msgid "GNOME"
+msgstr "GNOME"
+
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr "Иш столини танлаш"
+
+#: steps_interactive.pm:460
+#, c-format
+msgid "You can choose your workstation desktop profile."
+msgstr "Қуйидагилардан ўрнатиладиган иш столини танланг"
+
+#: steps_interactive.pm:552
+#, c-format
+msgid "Selected size is larger than available space"
+msgstr "Танланган ҳажм мавжуд бўлган бўш жойдан катта"
+
+#: steps_interactive.pm:576
+#, c-format
+msgid "Type of install"
+msgstr "Ўрнатишнинг тури"
+
+#: steps_interactive.pm:577
+#, c-format
+msgid ""
+"You have not selected any group of packages.\n"
+"Please choose the minimal installation you want:"
+msgstr ""
+"Сиз ҳеч қандай пакетлар гуруҳини танламадингиз.\n"
+"Илтимос сиз истаган минимал ўрнатишни танланг:"
+
+#: steps_interactive.pm:582
+#, c-format
+msgid "With X"
+msgstr "X билан"
+
+#: steps_interactive.pm:583
+#, fuzzy, c-format
+msgid "Install recommended packages"
+msgstr "Таклиф қилинган пакетларни ўрнатиш"
+
+#: steps_interactive.pm:584
+#, c-format
+msgid "With basic documentation (recommended!)"
+msgstr "Асосий қўлланмалар билан (тавсия қилинади!)"
+
+#: steps_interactive.pm:585
+#, c-format
+msgid "Truly minimal install (especially no urpmi)"
+msgstr "Ҳақиқий минимал ўрнатиш (хусусан urpmi'сиз)"
+
+#: steps_interactive.pm:637
+#, fuzzy, c-format
+msgid "Preparing upgrade..."
+msgstr "ОТ юклагичи тайёрланмоқда..."
+
+#: steps_interactive.pm:647
+#, c-format
+msgid "Preparing installation"
+msgstr "Ўрнатишга тайёрланмоқда"
+
+#: steps_interactive.pm:655
+#, c-format
+msgid "Installing package %s"
+msgstr "%s пакети ўрнатилмоқда"
+
+#: steps_interactive.pm:679
+#, c-format
+msgid "There was an error ordering packages:"
+msgstr "Қуйидаги пакетларни саралашда хато рўй берди:"
+
+#: steps_interactive.pm:679
+#, c-format
+msgid "Go on anyway?"
+msgstr "Бунга қарамасдан давом этишни истайсизми?"
+
+#: steps_interactive.pm:683
+#, c-format
+msgid "Retry"
+msgstr "Қайтадан уриниш"
+
+#: steps_interactive.pm:684
+#, c-format
+msgid "Skip this package"
+msgstr "Бу пакетга эътибор берилмасин"
+
+#: steps_interactive.pm:685
+#, c-format
+msgid "Skip all packages from medium \"%s\""
+msgstr "\"%s\" тўпламидан ҳамма пакетларга эътибор берилмасин"
+
+#: steps_interactive.pm:686
+#, c-format
+msgid "Go back to media and packages selection"
+msgstr "Ўрнатиш манбаларни ва пакетларни танлашга қайтиш"
+
+#: steps_interactive.pm:689
+#, c-format
+msgid "There was an error installing package %s."
+msgstr "Қуйидаги пакетни ўрнатишда хато рўй берди: %s"
+
+#: steps_interactive.pm:708
+#, c-format
+msgid "Post-install configuration"
+msgstr "Ўрнатишдан кейин мослаш"
+
+#: steps_interactive.pm:715
+#, c-format
+msgid "Please ensure the Update Modules media is in drive %s"
+msgstr "%s ичида Update Modules тўплами мавжудлигини текшириб кўринг"
+
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
+#, c-format
+msgid "Updates"
+msgstr "Янгиланишлар"
+
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Қуйидаги пакетлар ўрнатилади"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, fuzzy, c-format
+msgid "Retry?"
+msgstr "Қайтадан уриниш"
+
+#: steps_interactive.pm:784
+#, fuzzy, c-format
+msgid "Failure when adding medium"
+msgstr "манбани қўшиб бўлмади"
+
+#: steps_interactive.pm:792
+#, c-format
+msgid ""
+"You now have the opportunity to download updated packages. These packages\n"
+"have been updated after the distribution was released. They may\n"
+"contain security or bug fixes.\n"
+"\n"
+"To download these packages, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to install the updates?"
+msgstr ""
+"Ҳозир сизда янгиланган пакетларни ёзиб олиб ўрнатиш имконияти мавжуд.\n"
+"Улар ҳозир сиз ўрнатган Mageia тизими чиққанидан сўнг\n"
+"янгиланган. Уларда ҳар хил хавфсизлик ва дастурлар билан боғлиқ\n"
+"хатоликлар тузатилган бўлиши мумкин.\n"
+"\n"
+"Бу пакетларни ёзиб олиш учун сизда Интернет билан алоқа ўрнатилган бўлиши\n"
+"керак.\n"
+"\n"
+"Янгиланишларни ўрнатишни истайсизми?"
+
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
+#, c-format
+msgid "%s on %s"
+msgstr "%s %s'да"
+
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
+#, c-format
+msgid "Hardware"
+msgstr "Асбоб-ускуналар"
+
+#: steps_interactive.pm:958
+#, c-format
+msgid "Sound card"
+msgstr "Товуш карта"
+
+#: steps_interactive.pm:972
+#, c-format
+msgid "Graphical interface"
+msgstr "График интерфейс"
+
+#: steps_interactive.pm:978 steps_interactive.pm:990
+#, c-format
+msgid "Network & Internet"
+msgstr "Тармоқ ва Интернет"
+
+#: steps_interactive.pm:991
+#, c-format
+msgid "Proxies"
+msgstr "Проксилар"
+
+#: steps_interactive.pm:992
+#, c-format
+msgid "configured"
+msgstr "мосланган"
+
+#: steps_interactive.pm:1002
+#, c-format
+msgid "Security Level"
+msgstr "Хавфсизлик даражаси"
+
+#: steps_interactive.pm:1022
+#, c-format
+msgid "Firewall"
+msgstr "Файервол"
+
+#: steps_interactive.pm:1026
+#, c-format
+msgid "activated"
+msgstr "ишлаяпти"
+
+#: steps_interactive.pm:1026
+#, c-format
+msgid "disabled"
+msgstr "ўчирилган"
+
+#: steps_interactive.pm:1041
+#, c-format
+msgid "You have not configured X. Are you sure you really want this?"
+msgstr "Сиз X'ни мосламадингиз. Ростдан буни истайсизми?"
+
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
+#, fuzzy, c-format
+msgid "Preparing initial startup program..."
+msgstr "Ўрнатишга тайёрланмоқда"
+
+#: steps_interactive.pm:1073
+#, c-format
+msgid "Be patient, this may take a while..."
+msgstr "Кутиб туринг, бу бироз вақт олиши мумкин..."
+
+#: steps_interactive.pm:1089
+#, c-format
+msgid ""
+"In this security level, access to the files in the Windows partition is "
+"restricted to the administrator."
+msgstr ""
+"Ушбу хавфсизлик даража қўлланилганда дискнинг Windows қисмидаги файлларга "
+"фақат администратор мурожаат қилиши мумкин."
+
+#: steps_interactive.pm:1121
+#, c-format
+msgid "Insert a blank floppy in drive %s"
+msgstr "Бўш дискетни %s ускунасига қўйинг"
+
+#: steps_interactive.pm:1123
+#, c-format
+msgid "Creating auto install floppy..."
+msgstr "Авто-ўрнатиш дискети яратилмоқда..."
+
+#: steps_interactive.pm:1134
+#, c-format
+msgid ""
+"Some steps are not completed.\n"
+"\n"
+"Do you really want to quit now?"
+msgstr ""
+"Баъзи ўрнатиш босқичлари бажарилмади.\n"
+"\n"
+"Ростдан чиқишни истайсизми?"
+
+#: steps_interactive.pm:1144
+#, c-format
+msgid "Congratulations"
+msgstr "Табриклаймиз!"
+
+#: steps_interactive.pm:1147
+#, c-format
+msgid "Reboot"
+msgstr "Ўчириб-ёқиш"
+
+#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
+#: steps_list.pm:16
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Language"
+msgstr "Тил"
+
+#: steps_list.pm:16 steps_list.pm:23
+#, c-format
+msgid "Localization"
+msgstr "Маҳаллийлаштириш"
+
+#: steps_list.pm:17
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"License"
+msgstr "Лицензия"
+
+#: steps_list.pm:18
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Mouse"
+msgstr "Сичқонча"
+
+#: steps_list.pm:19 steps_list.pm:20
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Hard drive detection"
+msgstr "Қаттиқ дискни аниқлаш"
+
+#: steps_list.pm:21 steps_list.pm:22
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Installation class"
+msgstr "Ўрнатиш синфи"
+
+#: steps_list.pm:23
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Keyboard"
+msgstr "Тугматаг"
+
+#: steps_list.pm:24
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Security"
+msgstr "Хавфсизлик"
+
+#: steps_list.pm:25
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Partitioning"
+msgstr "Дискни бўлиш"
+
+#: steps_list.pm:27 steps_list.pm:28
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Formatting"
+msgstr "Форматлаш"
+
+#: steps_list.pm:29
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Choosing packages"
+msgstr "Ўрнатилиши керак бўлган пакетларни танлаш"
+
+#: steps_list.pm:31
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Installing"
+msgstr "Ўрнатилмоқда"
+
+#: steps_list.pm:34
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Users"
+msgstr "Фойдаланувчилар"
+
+#: steps_list.pm:38 steps_list.pm:39
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Bootloader"
+msgstr "ОТ юклагичи"
+
+#: steps_list.pm:40 steps_list.pm:41
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Configure X"
+msgstr "X серверини мослаш"
+
+#: steps_list.pm:42
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Summary"
+msgstr "Ҳисобот"
+
+#: steps_list.pm:44 steps_list.pm:45
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Services"
+msgstr "Хизматлар"
+
+#: steps_list.pm:46
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Updates"
+msgstr "Янгиланишлар"
+
+#: steps_list.pm:48
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Exit"
+msgstr "Чиқиш"
+
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "Ойнанинг манзили (URL)"
+
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "Манзил ftp:// ёки http:// билан бошланиши керак"
+
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr ""
+#~ "Мавжуд бўлган ойналарнинг рўйхатини олиш учун %s сайти билан алоқа "
+#~ "ўрнатилмоқда..."
+
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
+#~ msgstr ""
+#~ "Мавжуд бўлган ойналарнинг рўйхатини олиш учун %s сайти билан алоқа "
+#~ "ўрнатиб бўлмади"
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Пакетларни олиш учун ойнани танланг"
+
+#~ msgid "KDE Workstation"
+#~ msgstr "KDE станцияси"
+
+#, fuzzy
+#~ msgid "XFCE Workstation"
+#~ msgstr "KDE станцияси"
+
+#, fuzzy
+#~ msgid "RazorQT Desktop"
+#~ msgstr "Бошқа иш столи"
+
+#~ msgid "Do you have an ISA sound card?"
+#~ msgstr "Сизда ISA товуш картаси борми?"
+
+#~ msgid ""
+#~ "Run \"alsaconf\" or \"sndconfig\" after installation to configure your "
+#~ "sound card"
+#~ msgstr ""
+#~ "Ўрнатишдан кейин, товуш картангизни мослаш учун, \"sndconfig\" ёки "
+#~ "\"alsaconf\" дастурини ишга туширинг"
+
+#~ msgid "No sound card detected. Try \"harddrake\" after installation"
+#~ msgstr ""
+#~ "Товуш картаси топилмади. Ўрнатишдан кейин \"harddrake\" дастурини синаб "
+#~ "кўринг."
+
+#~ msgid "KDE Desktop"
+#~ msgstr "KDE иш столи"
+
+#~ msgid "KDE"
+#~ msgstr "KDE"
+
+#~ msgid "CD-ROM"
+#~ msgstr "Компакт-диск"
+
+#, fuzzy
+#~ msgid ""
+#~ "The Plasma Desktop, the basic graphical environment with a collection of "
+#~ "accompanying tools"
+#~ msgstr "KDE - воситалар тўплами билан бирга асосий график муҳит"
+
+#~ msgid "IDE"
+#~ msgstr "IDE"
+
+#~ msgid "Preparing bootloader..."
+#~ msgstr "ОТ юклагичи тайёрланмоқда..."
+
+#~ msgid ""
+#~ "A lightweight & fast graphical environment with user-friendly set of "
+#~ "applications and desktop tools"
+#~ msgstr ""
+#~ "Фойдаланувчи учун қулай дастурлар ва иш столи восилари мавжуд бўлган "
+#~ "енгил ва тез ишловчи график муҳит"
+
+#~ msgid ""
+#~ "No free space for 1MB bootstrap! Install will continue, but to boot your "
+#~ "system, you'll need to create the bootstrap partition in DiskDrake"
+#~ msgstr ""
+#~ "1Мблик юкловчи дастур учун етарли жой қолмаган! Ўрнатиш давом этади аммо "
+#~ "тизимни юклаш учун DiskDrake'да дастлабки юкловчи яратилиши керак"
+
+#~ msgid ""
+#~ "You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
+#~ "will not work for you. The install will continue, but you'll need to use "
+#~ "BootX or some other means to boot your machine. The kernel argument for "
+#~ "the root fs is: root=%s"
+#~ msgstr ""
+#~ "Компьютерингиз жуда эски русумга ёки номаълум русмга ўхшайди, шу сабабдан "
+#~ "yaboot тизим юкловчиси ишламайди. Ўрнатиш давом этади аммо тизимни юклаш "
+#~ "учун BootX ёки бошқа усулдан фойдаланишингиз лозим бўлади. Root файл "
+#~ "тизими учун учун кернел аргументи: root=%s"
+
+#~ msgid "Welcome"
+#~ msgstr "Марҳамат"
+
+#~ msgid "Select All"
+#~ msgstr "Ҳаммасини танлаш"
+
+#~ msgid "Bad package"
+#~ msgstr "Ёмон пакет"
+
+#, fuzzy
+#~ msgid "Preparing boot images..."
+#~ msgstr "ОТ юклагичи тайёрланмоқда..."
+
+#~ msgid ""
+#~ "_: Keep these entry short\n"
+#~ "Networking"
+#~ msgstr "Тармоқ"
+
+#~ msgid "Your desktop on a USB key"
+#~ msgstr "Сизнинг иш столингиз USB калитда"
+
+#~ msgid "The 100%% open source Mageia distribution"
+#~ msgstr "100%% очиқ кодли Mageia дистрибутиви"
+
+#~ msgid "Explore Linux easily with Mageia One"
+#~ msgstr "Mageia One ёрдамида Linux'ни осонгина кашф этинг"
+
+#~ msgid "A full Mageia desktop, with support"
+#~ msgstr "Тўлиқ Mageia иш столи, қўллаб-қувватлаш билан"
+
+#~ msgid "Mageia: distributions for everybody's needs"
+#~ msgstr "Mageia: барчага мўлжалланган дистрибутив"
+
+#~ msgid ""
+#~ "Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
+#~ "gnumeric), pdf viewers, etc"
+#~ msgstr ""
+#~ "Идора учун дастурлар: матн процессорлари (kword, abiword), электрон "
+#~ "жадваллар (kspread, gnumeric), PDF кўрувчилар ва ҳоказо"
+
+#~ msgid "Downloading file %s..."
+#~ msgstr "%s файли ёзиб олинмоқда..."
+
+#~ msgid ""
+#~ "You have selected the following server(s): %s\n"
+#~ "\n"
+#~ "\n"
+#~ "These servers are activated by default. They do not have any known "
+#~ "security\n"
+#~ "issues, but some new ones could be found. In that case, you must make "
+#~ "sure\n"
+#~ "to upgrade as soon as possible.\n"
+#~ "\n"
+#~ "\n"
+#~ "Do you really want to install these servers?\n"
+#~ msgstr ""
+#~ "Қуйидаги сервер дастурлар ҳам ўрнатилади: %s\n"
+#~ "\n"
+#~ "\n"
+#~ "Бу сервер дастурлар ўрнатилиши билан улар ишга туширилади.\n"
+#~ "Ҳозирча, улар билан боғлиқ бирорта ҳам хавфсизлик борасида муаммолар\n"
+#~ "кузатилмаган, аммо уларнинг топилиш эҳтимоли ҳамиша мавжуд. Бундай\n"
+#~ "ҳолатда, уларни иложи борича тезроқ янгилашингиз лозим.\n"
+#~ "\n"
+#~ "\n"
+#~ "Бу сервер дастурларни ростдан ҳам ўрнатишни истайсизми?\n"
+
+#~ msgid "IceWm Desktop"
+#~ msgstr "IceWm иш столи"
+
+#~ msgid "Contacting the mirror to get the list of available packages..."
+#~ msgstr ""
+#~ "Мавжуд бўлган пакетларнинг рўйхатини олиш учун ойна билан алоқа "
+#~ "ўрнатилмоқда..."
+
+#~ msgid "Unable to contact mirror %s"
+#~ msgstr "Ойна (%s)билан алоқа ўрнатиб бўлмади."
+
+#~ msgid "Generate auto install floppy"
+#~ msgstr "Авто-ўрнатиш дискетни яратиш"
+
+#~ msgid "Replay"
+#~ msgstr "Қайтариш"
+
+#~ msgid "Automated"
+#~ msgstr "Автоматик"
+
+#~ msgid "Save packages selection"
+#~ msgstr "Пакетлар танловини сақлаш"
+
+#~ msgid "Do you want to use aboot?"
+#~ msgstr "aboot дастуридан фойдаланишни истайсизми?"
diff --git a/perl-install/install/share/po/vi.po b/perl-install/install/share/po/vi.po
index d4db44fb1..cb1049f72 100644
--- a/perl-install/install/share/po/vi.po
+++ b/perl-install/install/share/po/vi.po
@@ -1,172 +1,229 @@
-# translation of DrakX-vi.po to
-# Vietnamese Translation for DrakX module.
-# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
-# Trinh Minh Thanh <tmthanh@yahoo.com> 2001-2005.
-# Larry Nguyen <larry@vnlinux.org> 2005.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
msgid ""
msgstr ""
-"Project-Id-Version: DrakX-vi version\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2005-06-02 21:17+0700\n"
-"Last-Translator: Larry Nguyen <larry@vnlinux.org>\n"
-"Language-Team: <gnomevi-list@lists.sourceforge.net>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Vietnamese (http://www.transifex.com/MageiaLinux/mageia/"
+"language/vi/)\n"
+"Language: vi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
#, c-format
-msgid "Do you have further supplementary media?"
-msgstr "Bạn còn phương tiện nào khác không?"
+msgid "Join Us!"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: ../../advertising/02_IM_mageia.pl:1
#, c-format
-msgid ""
-"The following media have been found and will be used during install: %s.\n"
-"\n"
-"\n"
-"Do you have a supplementary installation medium to configure?"
+msgid "Make it yours!"
msgstr ""
-#: any.pm:166
+#: ../../advertising/03_IM_mageia.pl:1
#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
+msgid "Your choice!"
+msgstr ""
-#: any.pm:167
+#: ../../advertising/04_IM_mageia.pl:1
#, c-format
-msgid "Network (HTTP)"
-msgstr "Mạng (HTTP)"
+msgid "Office tools"
+msgstr ""
-#: any.pm:168
+#: ../../advertising/05_IM_mageia.pl:1
#, c-format
-msgid "Network (FTP)"
-msgstr "Mạng (FTP)"
+msgid "Home entertainment"
+msgstr ""
-#: any.pm:169
+#: ../../advertising/06_IM_mageia.pl:1
#, c-format
-msgid "Network (NFS)"
+msgid "For kids"
msgstr ""
-#: any.pm:211
+#: ../../advertising/07_IM_mageia.pl:1
#, c-format
-msgid "URL of the mirror?"
-msgstr "URL của mirror?"
+msgid "For family!"
+msgstr ""
-#: any.pm:217
+#: ../../advertising/08_IM_mageia.pl:1
#, c-format
-msgid "URL must start with ftp:// or http://"
+msgid "For developers!"
msgstr ""
-#: any.pm:228
+#: ../../advertising/09_IM_mageia.pl:1
#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
+msgid "Thank you!"
msgstr ""
-"Đang kết nối với website của Mandriva Linux để lấy danh sách các mirrors "
-"hiệncó..."
-#: any.pm:233
-#, fuzzy, c-format
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr "Bạn còn phương tiện nào khác không?"
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
+#, c-format
msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
msgstr ""
-"Đang kết nối với website của Mandriva Linux để lấy danh sách các mirrors "
-"hiệncó..."
-#: any.pm:243
+#: any.pm:162
#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Chọn một mirror để tải các gói về"
+msgid "Network (HTTP)"
+msgstr "Mạng (HTTP)"
+
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
+msgstr "Mạng (FTP)"
-#: any.pm:273
+#: any.pm:164
+#, c-format
+msgid "Network (NFS)"
+msgstr ""
+
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr ""
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr ""
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr ""
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr ""
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr ""
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Thư mục"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr ""
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
msgstr "Không thể tìm tập tin hdlist trên mirror này"
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Kiểm tra các gói đã được cài đặt..."
+msgid "Core Release"
+msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
+msgid "Tainted Release"
+msgstr ""
+
+#: any.pm:329
+#, c-format
+msgid "Nonfree Release"
+msgstr ""
+
+#: any.pm:367
+#, c-format
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
msgstr ""
-#: any.pm:424
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Kiểm tra các gói đã được cài đặt..."
+
+#: any.pm:593
#, c-format
msgid "Finding packages to upgrade..."
msgstr "Đang tìm các gói để nâng cấp"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:612
#, c-format
-msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+msgid "Removing packages prior to upgrade..."
msgstr ""
-"Bạn đã chọn các máy chủ sau đây: %s\n"
-"\n"
-"\n"
-"Các máy chủ này sẽ được kích hoạt theo mặc định. Hiện giờ chưa có bất kỳ\n"
-"lỗi bảo mật nào được phát hiện, nhưng cũng có thể đã tìm ra một vài lỗi "
-"mới.\n"
-"Trong trường hợp đó, bạn phải nâng cấp càng sớm càng tốt.\n"
-"\n"
-"\n"
-"Bạn có thật sự muốn cài đặt các máy chủ này không?\n"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -179,82 +236,87 @@ msgstr ""
"\n"
"Bạn có thật sự muốn gỡ bỏ các gói tin này không?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Lỗi khi đọc tập tin %s"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "Đã đổi tên (các) đĩa sau:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (tên cũ là %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Mạng"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "Hãy chọn phương tiện"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Tập tin tồn tại. Có ghi đè nó không?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Quyền hạn bị từ chối"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr ""
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "Phương tiện hỏng %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Không thể tạo ảnh đĩa trước khi phân vùng"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Sẽ có ảnh chụp sau quá trình cài đặt trong %s"
-#: gtk.pm:119
-#, fuzzy, c-format
+#: gtk.pm:134
+#, c-format
msgid "Installation"
-msgstr "Đang cài đặt"
+msgstr ""
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Cấu hình"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Cũng phải định dạng %s"
@@ -278,301 +340,337 @@ msgstr "Bật chức năng mạng"
msgid "Bringing down the network"
msgstr "Tắt chức năng mạng"
-#: media.pm:703 media.pm:714
+#: media.pm:397
#, c-format
-msgid "Downloading file %s..."
-msgstr "Đang tải về tập tin %s..."
+msgid "Please wait, retrieving file"
+msgstr ""
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr ""
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Đang sao chép"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "phải có"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "quan trọng"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "rất tuyệt"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "tuyệt"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "có thể là"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Không có mô tả"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "Máy trạm"
+msgid "An error occurred:"
+msgstr ""
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Văn phòng"
+msgid "A fatal error occurred: %s."
+msgstr "Xả ra lỗi trầm trọng: %s."
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "Do not ask again"
+msgstr "Đừng hỏi nữa "
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d phiên giao dịch cài đặt lỗi"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
msgstr ""
-"Các chương trình văn phòng: wordprocessors (OpenOffice.org Writer, Kword), "
-"spreadsheets (OpenOffice.org Calc, Kspread), chương trình xem PDF, v.v..."
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "Máy trạm"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Văn phòng"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Các chương trình văn phòng: wordprocessors (kword, abiword), spreadsheets "
-"(kspread, gnumeric), pdf viewers, v.v..."
+"Các chương trình văn phòng: wordprocessors (LibreOffice Writer, Kword), "
+"spreadsheets (LibreOffice Calc, Kspread), chương trình xem PDF, v.v..."
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Trò chơi"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Các chương trình giải trí: arcade, boards, strategy, v.v..."
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Đa phương tiện"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Các chương trình chơi Audio-Video/soạn thảo"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Internet"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr "Bộ công cụ đọc gửi thư tín và tin tức (mutt, tin..) và để duyệt Web"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Máy tính mạng (khách)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Máy khách cho các giao thức khác bao gồm ssh"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Công cụ xoá cấu hình máy tính của bạn"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Các công cụ console"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Các trình soạn thảo, các tiện ích tập tin, các thiết bị đầu cuối"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Phát triển"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr ""
"Các thư viện phát triển C và C++, các chương trình và các tập tin đi kèm"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Tài liệu"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Các sách, how-to cho Linux và phần mềm miễn phí"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Cơ Sở Về Chuẩn Linux (LSB). Hỗ trợ ứng dụng cho hãng thứ ba."
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Máy chủ Web"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Groupware"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Máy chủ Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Tường lửa/Định tuyến"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Cổng kết nối Internet"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "Mail/News"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Postfix mail server, Inn news server"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Máy chủ thư mục"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "Máy chủ FTP"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "Máy chủ thông tin mạng và tên miền"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "Máy chủ chia sẻ máy in và tập tin"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "Máy chủ Samba, NFS"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Cơ sở dữ liệu"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "Máy chủ cơ sở dữ liệu PostgreSQL và MySQL"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "Máy chủ cơ sở dữ liệu PostgreSQL và MariaDB"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache và Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Thư"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Máy chủ thư Postfix"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL hay MySQL máy chủ cơ sở dữ liệu"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL hay MariaDB máy chủ cơ sở dữ liệu"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Máy chủ mạng"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "Máy chủ NFS, SMB, SSH, ủy nhiệm"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Môi trường đồ hoạ"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE"
+msgid "Plasma Workstation"
+msgstr ""
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -580,12 +678,12 @@ msgid ""
msgstr ""
"K Desktop Environment, một môi trường đồ họa với một sưu tập tiện ích đi kèm"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "GNOME Workstation"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -593,57 +691,109 @@ msgid ""
msgstr ""
"Môi trường đồ họa thân thiện cho các ứng dụng và các tiện ích màn hình nền"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
#, c-format
-msgid "IceWm Desktop"
-msgstr "IceWm Desktop"
+msgid "A lightweight fast graphical environment"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Các màn hình nền đồ hoạ khác"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm, v.v..."
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Tiện ích"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "Máy chủ SSH"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Cấu hình máy chủ từ xa Webmin"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "Giám sát và công cụ mạng"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "Các công cụ theo dõi, quản lý tiến trình, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Đồ thuật Mandriva"
+msgid "Mageia Wizards"
+msgstr "Đồ thuật Mageia"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Đồ thuật cấu hình máy chủ"
@@ -657,7 +807,7 @@ msgstr ""
"Có lỗi xảy ra, không rõ cách giải quyết thích hợp.\n"
"Tiếp tục với rủi ro."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -676,203 +826,255 @@ msgstr "Bắt đầu bước `%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Cài đặt Mandriva Linux %s"
+msgid "%s Installation %s"
+msgstr "Cài đặt %s %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> giữa các phần tử"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
"Hệ thống của bạn có cấu hình thấp. Bạn có thể gặp một số trục trặc khi\n"
-"cài đặt Mandriva Linux. Nếu xảy ra lỗi, bạn có thể thay thế bằng kiểu cài "
-"đặt trong\n"
+"cài đặt %s. Nếu xảy ra lỗi, bạn có thể thay thế bằng kiểu cài đặt trong\n"
"chế độ văn bản bằng cách nhấn phím `F1' khi khởi động từ CDROM, rồi nhập "
"`text'."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Nhóm gói tin được chọn"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Chọn các gói riêng"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Kích thước toàn bộ: %d / %d MB"
+msgid "Unselect All"
+msgstr "Mọi thứ không được chọn"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Gói hỏng"
+msgid "Total size: %d / %d MB"
+msgstr "Kích thước toàn bộ: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Phiên bản:"
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Kích thước:"
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Quan trọng:"
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Bạn không thể chọn/bỏ chọn gói này"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "vì thiếu %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "vì không thỏa mãn %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "thử xúc tiến %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "để giữ %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr "Bạn không thể chọn gói này vì không còn đủ không gian để cài đặt"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Các gói sau đây sẽ được cài đặt"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Các gói sau đây sẽ được gỡ bỏ"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Bắt buộc cài đặt gói này, không thể bỏ chọn nó"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Bạn không thể bỏ chọn gói này. Nó được cài đặt rồi"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Bạn không thể không chọn gói này. Nó phải được nâng cấp."
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Tự động hiển thị các gói đã được chọn"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Cài đặt"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Nạp/Lưu lựa chọn"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Đang cập nhật sự lựa chọn các gói"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Cài đặt tối thiểu"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Quản Lý Phần Mềm"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Chọn các gói bạn muốn cài đặt "
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Đang cài đặt"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Không có thông tin"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Thời gian còn lại"
+msgid "Time remaining:"
+msgstr ""
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Đang ước lượng"
+msgid "(estimating...)"
+msgstr ""
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d các gói"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Tóm tắt"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Cấu hình"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "chưa được cấu hình"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
@@ -881,12 +1083,12 @@ msgstr ""
"Phát hiện thấy phương tiện cài đặt sau đây.\n"
"Nếu không dùng, hãy bỏ chọn chúng."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
"Bạn có thể copy nội dung của các CD lên đĩa cứng trước khi thực hiện cài "
@@ -894,93 +1096,91 @@ msgstr ""
"Sau đó tiếp tục tiến hành cài đặt từ đĩa cứng và các gói vẫn sẵn dùng ngay "
"sau khi cài đặt xong hệ thống."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "Sao chép toàn bộ CD"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Lỗi xảy ra"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Hãy chọn tổ chức bàn phím."
+msgid "Please choose your keyboard layout"
+msgstr "Hãy chọn tổ chức bàn phím"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Đây là danh sách đầy đủ các bàn phím hiện có "
+msgid "Here is the full list of available keyboards:"
+msgstr ""
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Cài đặt/Nâng cấp"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "Thực hiện việc cài đặt hay nâng cấp ?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Cài đặt"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Nâng cấp %s"
-#: steps_interactive.pm:140
+#: steps_interactive.pm:184
#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
+msgid "Encryption key for %s"
+msgstr "Khóa mã hóa cho %s"
-#: steps_interactive.pm:144
+#: steps_interactive.pm:217
#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
+msgid "Cancel installation, reboot system"
msgstr ""
-#: steps_interactive.pm:158
+#: steps_interactive.pm:218
#, c-format
-msgid "Encryption key for %s"
-msgstr "Khóa mã hóa cho %s"
+msgid "New Installation"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:219
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
-#: steps_interactive.pm:194
+#: steps_interactive.pm:223
#, c-format
-msgid "Configuring IDE"
-msgstr "Đang cấu hình IDE"
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
-#: steps_interactive.pm:231
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
+msgid "CD/DVD"
msgstr ""
-"Không còn không gian trống 1MB cho bootstrap! Vẫn tiếp tục cài đặt, nhưng để "
-"khởi động hệ thống, bạn cần tạo phân vùng bootstrap trong DiskDrake."
-#: steps_interactive.pm:236
+#: steps_interactive.pm:264
#, c-format
-msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+msgid "Configuring CD/DVD"
msgstr ""
-"Bạn cần tạo PPC PReP Boot bootstrap! Vẫn tiếp tục cài đặt, nhưng để khởi "
-"động hệ thống, bạn cần tạo phân vùng bootstrap trong DiskDrake."
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -993,19 +1193,19 @@ msgstr ""
"Hãy nạp đĩa CD có nhãn \"%s\" vào ổ đĩa rồi nhấn OK.\n"
"Nếu bạn không có, nhấn Bỏ qua để không chạy cài đặt từ đĩa này."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Đang tìm các gói hiện có"
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
@@ -1014,52 +1214,52 @@ msgstr ""
"Hãy chọn nạp hoặc lưu lựa chọn gói tin.\n"
"Định dạng giống các tập tin auto_install được tạo."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Tải"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Lưu"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Tập tin lỗi"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Cài đặt tối thiểu"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Kích thước được chọn lớn hơn không gian hiện có"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Kiểu cài đặt"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1068,82 +1268,126 @@ msgstr ""
"Bạn đã không chọn bất kỳ một nhóm gói tin nào\n"
"Hãy chọn việc cài đặt tối thiểu mà bạn muốn"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Với X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Với tài liệu cơ bản (khuyến nghị!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Cài đặt thật tối thiểu (đặc biệt là không có urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Chuẩn bị cài đặt"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Đang cài đặt gói %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Lỗi khi đang xử lý các gói:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Vẫn cứ tiếp tục?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr ""
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr ""
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr ""
-#: steps_interactive.pm:635
-#, fuzzy, c-format
+#: steps_interactive.pm:686
+#, c-format
msgid "Go back to media and packages selection"
-msgstr "Lưu lựa chọn các gói"
+msgstr ""
-#: steps_interactive.pm:638
-#, fuzzy, c-format
+#: steps_interactive.pm:689
+#, c-format
msgid "There was an error installing package %s."
-msgstr "Lỗi khi đang cài đặt các gói:"
+msgstr ""
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Cấu hình sau khi cài đặt"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr "Hãy đảm bảo là phương tiện Update Modules có trong drive %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Cập nhật"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Các gói sau đây sẽ được cài đặt"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Lỗi khi thêm phương tiện"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1156,138 +1400,87 @@ msgid ""
"Do you want to install the updates?"
msgstr ""
"Bây giờ bạn có thể tải xuống các gói cập nhật. Những gói này được cập nhật\n"
-"sau khi phát hành phân phối Mandriva Linux này. Chúng có thể\n"
+"sau khi phát hành phân phối Mageia này. Chúng có thể\n"
"là cập nhật sửa lỗi hay cập nhật bảo mật.\n"
"\n"
"Để tải về những gói này, bạn cần có một kết nối Internet hoạt động.\n"
"\n"
"Bạn có muốn cài đặt các gói cập nhật không ?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Đang kết nối với mirror để lấy danh sách các gói hiện có"
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Không thể kết nối được với mirror %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s trên %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Phần cứng"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Card âm thanh"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Bạn có card âm thanh ISA không ?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Chạy lệnh \"alsaconf\" hoặc \"sndconfig\" sau khi cài đặt để cấu hìnhcard âm "
-"thanh"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr ""
-"Không phát hiện được card âm thanh nào. Hãy thử \"harddrake\" sau khi cài đặt"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Giao diện đồ họa"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Mạng & Internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Proxies"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "đã cấu hình"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Mức Bảo Mật"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Tường lửa"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "Đã kích hoạt"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "Đã tắt"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "Chưa đặt cấu hình cho X. Bạn có chắc là muốn như vậy không ?"
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "Đang chuẩn bị trình khởi động"
-
-#: steps_interactive.pm:1018
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
+msgid "Preparing initial startup program..."
msgstr ""
-"Bạn có máy tính đã quá cũ hoặc không được biết đến, trình khởi động yaboot "
-"sẽ không làm việc. Vẫn tiếp tục cài đặt, nhưng bạn sẽ cần sử dụng BootX hoặc "
-"phương tiện khác để khởi động máy tính. Đối số của kernel cho root fs là: "
-"root=%s"
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Bạn có muốn sử dụng aboot không?"
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
+msgid "Be patient, this may take a while..."
msgstr ""
-"Lỗi khi cài đặt aboot, \n"
-"Cố gắng cài đặt kể cả khi nó có thể phá hỏng phân vùng đầu tiên?"
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
@@ -1296,17 +1489,17 @@ msgstr ""
"Với mức bảo mật này, chỉ người quản trị mới có quyền truy cậpvào các tập tin "
"trong phân vùng Windows."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Nạp một đĩa mềm trắng vào ổ %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Đang tạo đĩa mềm cài đặt tự động"
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1317,51 +1510,16 @@ msgstr ""
"\n"
"Bạn thực sự muốn thoát ra bây giờ?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Chúc mừng"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Khởi động lại"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Tạo đĩa mềm cài đặt tự động"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"Cài đặt tự động có thể hoàn toàn tự động nếu\n"
-"muốn, trong trường hợp này nó sẽ tiếp nối ổ cứng!!\n"
-"(Nghĩa là tiến hành cài đặt lên một ổ khác).\n"
-"\n"
-"Có thể bạn thích diễn lại quá trình cài đặt.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Diễn lại"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Tự động"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Lưu lựa chọn các gói"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1373,7 +1531,7 @@ msgstr "Chọn ngôn ngữ"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "Địa phương hóa"
#: steps_list.pm:17
#, c-format
@@ -1452,13 +1610,6 @@ msgid ""
"Users"
msgstr "Người dùng"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Chạy mạng"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1501,61 +1652,15 @@ msgid ""
"Exit"
msgstr "Thoát ra"
-#~ msgid "All"
-#~ msgstr "Toàn bộ"
-
-#~ msgid "TV card"
-#~ msgstr "Card TV"
-
-#~ msgid "Boot"
-#~ msgstr "Khởi động"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Xác nhận"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#~ msgid "%d packages"
-#~ msgstr "%d các gói"
-
-#~ msgid "Language"
-#~ msgstr "Chọn ngôn ngữ"
-
-#~ msgid "License"
-#~ msgstr "Giấy phép"
-
-#, fuzzy
-#~ msgid "Installation class"
-#~ msgstr "Chọn kiểu cài đặt"
-
-#, fuzzy
-#~ msgid "Formatting"
-#~ msgstr "Đang ước lượng"
-
-#, fuzzy
-#~ msgid "Choosing packages"
-#~ msgstr "Chọn các gói cài đặt"
-
-#~ msgid "Users"
-#~ msgstr "Người dùng"
-
-#~ msgid "Networking"
-#~ msgstr "Chạy mạng"
-
-#~ msgid "Configure X"
-#~ msgstr "Cấu hình X"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "URL của mirror?"
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
#~ msgstr ""
-#~ "Không thể truy cập các mô-đun kernel tương ứng với kernel của bạn (thiếu "
-#~ "tập tin %s), thường là do đĩa mềm khởi động không đồng bộ với các phương "
-#~ "tiện cài đặt (hãy tạo một đĩa mềm khởi động mới hơn)"
+#~ "Đang kết nối với website của %s để lấy danh sách các mirrors hiệncó..."
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Chọn một mirror để tải các gói về"
diff --git a/perl-install/install/share/po/wa.po b/perl-install/install/share/po/wa.po
index d444aeb61..3adbd0be3 100644
--- a/perl-install/install/share/po/wa.po
+++ b/perl-install/install/share/po/wa.po
@@ -1,31 +1,84 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2000 Free Software Foundation, Inc.
-# Pablo Saratxaga <pablo@mandriva.com>, 2000,2002,2003,2004,2006.
-# Lorint Hendschel <lorinthendschel@skynet.be>, 2002.
-# Lucyin Mahin <lucyin@walon.org>, 2002,2003,2005.
-# Pablo Saratxaga <pablo@walon.org>, 2003,2004,2005,2006.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Lorint Hendschel <lorinthendschel@skynet.be>, 2002
+# Lucyin Mahin <lucyin@walon.org>, 2002-2003,2005
+# Pablo Saratxaga <pablo@mandriva.com>, 2000,2002-2004,2006
+# Pablo Saratxaga <pablo@walon.org>, 2003-2006,2016
msgid ""
msgstr ""
-"Project-Id-Version: DrakX\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2005-02-24 21:42+0100\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
"Last-Translator: Pablo Saratxaga <pablo@walon.org>\n"
-"Language-Team: Walloon <linux-wa@walon.org>\n"
+"Language-Team: Walloon (http://www.transifex.com/MageiaLinux/mageia/language/"
+"wa/)\n"
+"Language: wa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: KBabel 1.0.2\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr ""
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr ""
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr ""
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "Pol famile!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "Po les programeus!"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "Gråces!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
msgstr "Avoz vs co ds ôtes sopoirts?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -39,94 +92,57 @@ msgstr ""
"\n"
"Avoz vs cor on sopoirt d' astalaedje a-z apontyî?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "Plake lazer"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "Rantoele (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "Rantoele (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "Rantoele (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "Hårdêye do muroe?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "Li hårdêye doet cmincî avou «ftp://» ou «http://»"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr ""
-"Dj' atôtche li waibe da Mandriva Linux po-z aveur li djivêye des muroes k' i "
-"gn a"
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr ""
-"Dji n' a savou atôtchî l' waibe da Mandriva Linux po-z aveur li djivêye des "
-"muroes k' i gn a"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "Tchoezixhoz on muroe po nd aberweter des pacaedjes foû"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "Apontiaedje NFS"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr "Tapez l' no d' lodjoe eyet l' ridant di vosse sopoirt NFS"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr "I manke li no d' lodjoe"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "Li ridant doet cmincî avou «/»"
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "No d' lodjoe do montaedje NFS?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "Ridant"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "Di rawete"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
@@ -135,49 +151,90 @@ msgstr ""
"Dji n' sai trover l' djivêye di fitchîs so ç' muroe ci. Acertinez vs ki "
"l' eplaeçmint est corek."
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "Dji cwir après les pacaedjes ki sont ddja astalés..."
+msgid "Core Release"
+msgstr ""
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "Dji oistêye des pacaedjes divant d' fé l' metaedje a djoû..."
+msgid "Tainted Release"
+msgstr ""
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "Dji cwir après les pacaedjes a mete a djoû"
+msgid "Nonfree Release"
+msgstr ""
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
msgstr ""
-"Vos avoz tchoezi le(s) sierveu(s) shuvant(s): %s\n"
-"\n"
-"\n"
-"Ces sierveus sront activés a l' enondaedje di l' éndjole. I n' ont nén\n"
-"di problinme di såvrité cnoxhou, mins i s' pôreut k' onk soeye trové el "
-"futeur.\n"
-"Dins ç' cas, vos dvroz a tot côp mete a djoû li pacaedje po esse a houte\n"
-"des problinmes.\n"
-"\n"
-"\n"
-"Voloz vs vormint astaler ces sierveus?\n"
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "«%s» contént les diferins bokets do sistinme et ses programes"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "«%s» contént des programes nén libes.\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "Dji cwir après les pacaedjes ki sont ddja astalés..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "Dji cwir après les pacaedjes a mete a djoû"
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "Dji oistêye des pacaedjes divant d' fé l' metaedje a djoû..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -191,82 +248,87 @@ msgstr ""
"\n"
"Voloz vs vormint oister ces pacaedjes la?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "Åk n' a nén stî come dji sayive di lére li fitchî %s"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "Les plakes shuvantes ont candjî d' no:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (lomêye divant %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "Rantoele"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "Tchoezixhoz on sopoirt s' i vs plait"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "Li fitchî egzistêye dedja. El voloz vs sipotchî?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "Permission rfuzêye"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "Måva no NFS"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "Måva sopoirt %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "Dji n' pou nén fé des waitroûlêyes divant l' pårtixhaedje"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "Les waitroûlêyes seront metowes el ridant %s après l' astalaedje"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "Astalaedje"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "Apontiaedje"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "Vos dvoz abwesner eto %s"
@@ -290,107 +352,147 @@ msgstr "Metant li rantoele en alaedje"
msgid "Bringing down the network"
msgstr "Dj' arestêye li rantoele"
-#: media.pm:703 media.pm:714
+#: media.pm:397
#, c-format
-msgid "Downloading file %s..."
-msgstr "Aberwetaedje do fitchî %s..."
+msgid "Please wait, retrieving file"
+msgstr ""
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "dji n' sai radjouter l' sopoirt"
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr "Dji copeye sacwants pacaedjes sol deure plake po pus tård"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "Dji copeye..."
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "k' i fåt d' tote foice aveur"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "ki vént bén a pont"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "mo plaijhi a-z aveur"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "plaijhi a-z aveur"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "ki vénreut co bén a pont"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+"Pont d' info xml pol sopoirt «%s», i n' a k' on rzultat parciel pol pacaedje "
+"%s"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "Nou discrijhaedje"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
+"Sacwants pacaedjes dimandés pa %s èn polèt nén esse astalés:\n"
+"%s"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
#, c-format
-msgid "Workstation"
-msgstr "Posse éndjolrece"
+msgid "An error occurred:"
+msgstr "Åk n' a nén stî:"
-#: share/meta-task/compssUsers.pl:13
+#: pkgs.pm:405
#, c-format
-msgid "Office Workstation"
-msgstr "Posse di buro"
+msgid "A fatal error occurred: %s."
+msgstr "I gn a-st avou èn aroke moirt: %s."
-#: share/meta-task/compssUsers.pl:15
+#: pkgs.pm:912 pkgs.pm:954
#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+msgid "Do not ask again"
+msgstr "Ni pus dmander"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "I gn a-st avou %d transaccions d' astalaedje k' ont fwait berwete"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
msgstr ""
-"Programes di buro: aspougneus di tecse (OpenOffice.org Writer, Kword), "
-"tåvleus (OpenOffice.org Calc, Kspread), håyneus pdf, evnd."
#: share/meta-task/compssUsers.pl:16
#, c-format
+msgid "Workstation"
+msgstr "Posse éndjolrece"
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr "Posse di buro"
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"Programes di buro: aspougneus di tecse (kword, abiword), tåvleus (kspread, "
-"gnumeric), håyneus pdf, evnd."
+"Programes di buro: aspougneus di tecse (LibreOffice Writer, Kword), tåvleus "
+"(LibreOffice Calc, Kspread), håyneus pdf, evnd."
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "Posse di djeus"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "Programes pasmints d' tins: årcåde, plateas, stratedjeye, evnd."
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "Posse multimedia"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "Programes po vey/schoûter/candjî des sons et videyos"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Posse pol rantoele daegnrece"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
@@ -399,193 +501,193 @@ msgstr ""
"Eshonna d' usteyes po lére et evoyî des messaedjes (pine, mutt, tin...) et "
"po naivyî so les pådjes waibe"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "Copiutrece rantoele (cliyint)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "Cliyints po les protocoles k' i gn a (ssh avou)"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "Usteyes po vos aveur pus åjhey d' apontyî vosse copiutrece"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Usteyes pol conzôle"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "Aspougneus, shells, usteyes po fitchîs, terminås"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "Programaedje"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "Livreyes di programaedje C et C++, programes et fitchîs *.h"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "Documintåcion"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Lives et Howtos so GNU/Linux et les libes programes"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Li «Linux Standard Base». Sopoirt po les programes tîces"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Sierveu waibe"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "Ovraedje e groupe"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Sierveu Kolab"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "Côpe feu/Routeu"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Pasrele pol rantoele daegnrece"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "Emilaedje/Copinreyes"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Sierveu d' emilaedje postfix, sierveu d' copinreyes INN"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "Sierveu d' botins"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "Sierveu FTP"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "Sierveu di nos d' dominne eyet d' informåcion rantoele"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "Sierveu di pårtaedje di fitchîs eyet di scrireces"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "Sierveu NFS, sierveu Samba"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "Sierveu, båzes di dnêyes"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "Sierveu båze di dnêyes PostgreSQL eyet MySQL"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "Sierveu båze di dnêyes PostgreSQL eyet MariaDB"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Sierveu, Waibe/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache eyet Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "Emilaedje"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Sierveu d' emilaedje postfix"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "Sierveu båze di dnêyes PostgreSQL ou MySQL"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "Sierveu båze di dnêyes PostgreSQL ou MariaDB"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "Copiutrece sierveu sol rantoele"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "Sierveu NFS, sierveu SMB, sierveu procsi, sierveu SSH"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "Evironmint grafike"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "Posse éndjolrece KDE"
+msgid "Plasma Workstation"
+msgstr "Posse éndjolrece Plasma"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
@@ -594,12 +696,12 @@ msgstr ""
"L' evironmint di scribanne KDE, l' evironmint grafike di båze, avou ene "
"ramexhnêye d' usteyes ki vnèt avou"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "Posse éndjolrece GNOME"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
@@ -608,57 +710,109 @@ msgstr ""
"Èn evironmint grafike avou on hopea di programes amiståves et d' usteyes pol "
"sicribanne"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
#, c-format
-msgid "IceWm Desktop"
-msgstr "Sicribanne IceWm"
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "Posse éndjolrece MATE"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Posse éndjolrece Cinnamon"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "Èn evironmint grafike båzé so GNOME"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "Sicribanne LXQt"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "Sicribanne LXDE"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "Ôtes sicribannes grafikes"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker, Enlightenment, Fvwm, evnd."
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, evnd."
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "Usteyes"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "Sierveu SSH"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Sierveu d' apontiaedje då lon Webmin"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "Usteyes rantoele/Corwaitaedje"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "Usteyes di corwaitaedje, contaedje des process, tcpdump, nmap, ..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Macreas Mandriva"
+msgid "Mageia Wizards"
+msgstr "Macreas Mageia"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "Macreas po-z apontyî on sierveu"
@@ -672,7 +826,7 @@ msgstr ""
"Åk n' a nén stî, et dji n' sai cmint m' saetchî l' cou foû des\n"
"strons. Si vos continouwez, vos dvroz tirer vosse plan tot seu."
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
@@ -693,205 +847,258 @@ msgstr "Intrant e l' etape '%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Astalåcion di Mandriva Linux %s"
+msgid "%s Installation %s"
+msgstr "Astalåcion di %s %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> candjî elemints"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
"Vosse sistinme a po di rsources. Vos pôrîz aveur des rujhes po\n"
-"l' astalåcion di Mandriva Linux. Si çoula arive, vos ploz sayî ene\n"
+"l' astalåcion di %s. Si çoula arive, vos ploz sayî ene\n"
"astalåcion e môde tecse. Po çoula, tchoûkîz sol tape «F1» a l' enondaedje\n"
"et poy tapez «text»."
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "Tchoezi l' sopoirt"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "Astalåcion a vosse môde"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Sicribanne Plasma"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "Sicribanne GNOME"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "Sicribanne a vosse môde"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "Tchoezi les groupes di pacaedjes"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "Tchoezi tchaeke pacaedje sepårumint"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "Grandeu å totå: %d / %d Mo"
+msgid "Unselect All"
+msgstr "Distchoezi tot"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "Måva pacaedje"
+msgid "Total size: %d / %d MB"
+msgstr "Grandeu å totå: %d / %d Mo"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "Modêye: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "Grandeu: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d Ko\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "Impôrtance: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "Vos n' poloz nén tchoezi/distchoezi ci pacaedje chal"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "cåze di %s ki manke"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "cåze di %s ki n' est nén satisfyî"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "dji saye di promouvwer %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "po wårder %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr ""
"Vos n' poloz tchoezi ci pacaedje chal ca n' a nén del plaece assez ki po "
"l' astaler"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "Les pacaedjes ki shuvèt vont esse astalés"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "Les pacaedjes ki shuvèt vont esse disastalés"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "Ci pacaedje est obligatwere, vos n' poloz nén li distchoezi"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "Vos n' poloz nén distchoezi ci pacaedje chal. Il est ddja astalé"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "Vos n' poloz nén distchoezi ci pacaedje chal. I l' fåt mete a djoû"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "Mostrer les pacaedjes tchoezis otomaticmint"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "Astalaedje"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "Tcherdjî/schaper li tchuze des pacaedjes"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "Metaedje a djoû del tchuze des pacaedjes"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "Astalåcion minimåle"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "Manaedjaedje di programes"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "Tchoezixhoz les pacaedjes k' vos voloz astaler"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "Astalant"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "Po vey les rclames"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "Tins ki dmeure "
+msgid "Time remaining:"
+msgstr "Tins ki dmeure:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "Dj' asteme"
+msgid "(estimating...)"
+msgstr "(dj' asteme...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d pacaedje"
msgstr[1] "%d pacaedjes"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "Rascourti éndjolreye"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "Apontyî"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "nén apontyî"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
@@ -901,12 +1108,12 @@ msgstr ""
"Si vos vloz passer houte di sacwants d' zels, vos les ploz asteure "
"distchoezi."
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
"Vos ploz copyî l' contnou des plakes lazer so vosse deure plake divant "
@@ -914,95 +1121,91 @@ msgstr ""
"L' astalaedje si frè-st adon a pårti del deure plake, eyet les pacaedjes "
"vont dmorer disponibes on côp ki l' sistinme serè astalé."
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "Copyî les plakes lazer en etir"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "Dj' aroke so ene sacwè"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
-msgstr "Tchoezixhoz li sôre di vosse taprece."
+msgid "Please choose your keyboard layout"
+msgstr "Tchoezixhoz li sôre di vosse taprece"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "Vochal li djivêye di totes les tapreces k' on pout tchoezi"
+msgid "Here is the full list of available keyboards:"
+msgstr "Voci l' djivêye di totes les tapreces k' on pout tchoezi:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "Astaler/Mete a djoû"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "C' est ene astalåcion ou on metaedje a djoû?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "Astalaedje"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "Metaedje a djoû di %s"
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr ""
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "Clé d' ecriptaedje po %s"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "Rinoncî a l' astalaedje, renonder l' sistinme"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "Apontiant les éndjins IDE"
+msgid "New Installation"
+msgstr "Novea astalaedje"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
-"I gn a pont del plaece po on secteu d' enondaedje di 1 Mo! L' astalåcion "
-"continouwrè, mins i vos fårè fé li pårticion d' enondaedje avou DiskDrake po "
-"poleur enonder vosse sistinme."
+msgid "Upgrade previous installation (not recommended)"
+msgstr "Mete a djoû èn astalaedje di dvant (nén ricmandé)"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"Vos dvoz ahiver on secteu d' enondaedje PPC PReP! L' astalåcion continouwrè, "
-"mins i vos fårè fé li pårticion d' enondaedje avou DiskDrake po poleur "
-"enonder vosse sistinme."
-#: steps_interactive.pm:328
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "Plake lazer"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "Apontiaedje del plake lazer"
+
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1017,21 +1220,21 @@ msgstr ""
"Si vos n' l' avoz nén, clitchîz so «Rinoncî» po rinoncî a astaler a pårti\n"
"di ci CDROM chal."
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "Dji cwir après les pacaedjes k' i gn a"
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr ""
-"I gn a pus del plaece assez so vosse sistinme po-z astaler ou mete a djoû (%"
-"dMo > %dMo)"
+"I gn a pus del plaece assez so vosse sistinme po-z astaler ou mete a djoû "
+"(%dMo > %dMo)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
@@ -1040,52 +1243,52 @@ msgstr ""
"Tchoezixhoz si vos vloz tcherdjî ou schaper li tchuze des pacaedjes.\n"
"Li cogne est l' minme ki po les fitchîs fwaits po l' oto-astalaedje."
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "Tcherdjî"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "Schaper"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "Måva fitchî"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
+msgid "Plasma"
msgstr ""
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr ""
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
-#, fuzzy, c-format
-msgid "Custom install"
-msgstr "Astalåcion minimåle"
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr "Tchoezi l' sicribanne"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
+msgid "You can choose your workstation desktop profile."
msgstr ""
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "Li grandeu tchoezeye est pus grande kel plaece ki dmeure"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "Sôre d' astalaedje"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
@@ -1094,84 +1297,128 @@ msgstr ""
"Vos n' avoz tchoezi nou groupe di pacaedjes\n"
"Tchoezixhoz li sôre d' astalåcion minimom ki vos vloz"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "Avou X11"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "Astaler les pacaedjes ricmandés"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "Avou li documintåcion di båze (ricomandé!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "Astalåcion vormint minimom (i gn a nén di urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "Dj' aprestêye li metaedje a djoû..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "Dj' aprestêye l' astalaedje"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "Dj' astale li pacaedje %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "Åk n' a nén stî come dj' arindjive les pacaedjes:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "Dji continouwe tot l' minme?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "Rissayî"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr "Passer houte di ç' pacaedje ci"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr "Passer houte di tos les pacaedjes do sopoirt «%s»"
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
msgstr "Rivni al tchuze des pacaedjes et des sopoirts"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
msgstr "Åk n' a nén stî come dj' astaléve li pacaedje %s."
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "Apontiaedje di post-astalåcion"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr ""
"Acertinez vs ki l' sopoirt di metaedje a djoû des modules est dins l' lijheu "
"%s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "Metaedjes a djoû"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "Çoucial permete d' astaler des metaedjes a djoû di såvrité"
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, fuzzy, c-format
+msgid "That downloader could not be installed"
+msgstr "Les pacaedjes ki shuvèt vont esse astalés"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "Rissayî?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "Åk n' a nén stî tot radjoutant l' sopoirt"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1191,133 +1438,82 @@ msgstr ""
"\n"
"Voloz vs astaler les pacaedjes metous a djoû?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "Dj' atôche li muroe po-z aveur li djivêye des pacaedjes"
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "Dji n' a savou m' raloyî å muroe %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%s so %s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "Éndjolreye"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "Cåte son"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "Avoz vs ene cåte son ISA?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr ""
-"Enondez «alsaconf» ou «sndconfig» après l' astalåcion po-z apontyî vosse "
-"cåte son"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "Nole cåte son di detectêye. Sayîz «harddrake» après l' astalåcion"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "Eterface grafike"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "Rantoele locåle & daegnrece"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "Procsis"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "apontyî"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "Livea di såvrité"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "Côpe feu"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "metou en alaedje"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "dismetou"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr ""
"Vos n' avoz nén apontyî X11 (li sistinme di håynaedje grafike).\n"
"Estoz vs seur di voleur çoula?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "Dj' aprestêye l' enondrece"
+msgid "Preparing initial startup program..."
+msgstr "Dj' aprestêye li programe di prumî enondaedje..."
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"I shonne ki voste éndjole est pår trop viye oudonbén k' ele nén cnoxhowe; "
-"adon l' enondrece yaboot ni rotrè nén por vos. L' astalaedje va continouwer, "
-"mins vos dvroz eployî BootX ou ôte tchoi po-z enonder voste éndjole. "
-"L' årgumint a passer å nawea pol pårticion raecene est: root=%s"
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "Voloz vs eployî aboot?"
-
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
+msgid "Be patient, this may take a while..."
msgstr ""
-"Åk n' a nén stî tot astalant aboot, \n"
-"voloz vs ki dji saye di foirci l' astalåcion, minme si çoula pout\n"
-"distrure li prumire pårticion?"
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
@@ -1326,17 +1522,17 @@ msgstr ""
"Dins ç' livea di såvrité chal, l' accès åzès fitchîs des pårticions Windows "
"n' est possibe ki po l' manaedjeu di l' éndjole."
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "Metoz ene blanke plakete divins li lijheu %s"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "Dji fé li plakete d' enondaedje otomatike"
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1347,51 +1543,16 @@ msgstr ""
"\n"
"Voloz vs vormint cwiter asteure?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "Complumints"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "Renonder l' éndjole"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "Fé li plakete d' astalaedje otomatike"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"L' astalaedje pout esse totafwait otomatike si vos vloz,\n"
-"dins ci cas i va abwesner totafwait li deure plake!!\n"
-"(dj' ô bén c' est po-z astaler sor ene nouve éndjole).\n"
-"\n"
-"Motoit ki vos vloz rifé l' astalåcion.\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "Rifé"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "Otomatike"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "Schaper li tchuze des pacaedjes"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1403,7 +1564,7 @@ msgstr "Lingaedje"
#: steps_list.pm:16 steps_list.pm:23
#, c-format
msgid "Localization"
-msgstr ""
+msgstr "Locålizaedje"
#: steps_list.pm:17
#, c-format
@@ -1482,13 +1643,6 @@ msgid ""
"Users"
msgstr "Uzeus"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "Rantoele"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1531,116 +1685,25 @@ msgid ""
"Exit"
msgstr "Moussî foû"
-#~ msgid "All"
-#~ msgstr "Totafwait"
-
-#~ msgid "TV card"
-#~ msgstr "Cåte tévé"
-
-#~ msgid "Boot"
-#~ msgstr "Enondaedje"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "Otintifiaedje"
-
-#~ msgid "Arkeia"
-#~ msgstr "Arkeia"
-
-#~ msgid "Flatout"
-#~ msgstr "Flatout"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "3D"
-#~ msgstr "3D"
-
-#~ msgid "CMS"
-#~ msgstr "CMS"
-
-#~ msgid "CRM"
-#~ msgstr "CRM"
-
-#~ msgid "2007 product line"
-#~ msgstr "ligne di prodûts 2007"
-
-#~ msgid "Invictus Firewall"
-#~ msgstr "Côpe feu Invictus"
-
-#~ msgid "Discovery Live Mode"
-#~ msgstr "Môde «Discovery Live»"
-
-#~ msgid "How to register"
-#~ msgstr "Kimint s' edjîstrer"
-
-#~ msgid "Rpmdrake 2"
-#~ msgstr "Rpmdrake 2"
-
-#~ msgid "Mandriva Online Services"
-#~ msgstr "Siervices so les fyis di Mandriva"
-
-#~ msgid "New Theme"
-#~ msgstr "Novea tinme"
-
-#~ msgid "Web 2.0"
-#~ msgstr "Web 2.0"
-
-#~ msgid "Kaspersky"
-#~ msgstr "Kaspersky"
-
-#~ msgid "LinDVD"
-#~ msgstr "LinDVD"
-
-#~ msgid "Skype"
-#~ msgstr "Skype"
-
-#~ msgid "Transgaming/Cedega"
-#~ msgstr "Transgaming/Cedega"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "(%d pacaedje, %d Mo)"
-#~ msgstr[1] "(%d pacaedjes, %d Mo)"
-
-#~ msgid "%d packages"
-#~ msgstr "%d pacaedjes"
-
-#~ msgid "Language"
-#~ msgstr "Lingaedje"
-
-#~ msgid "License"
-#~ msgstr "Licince"
-
-#~ msgid "Installation class"
-#~ msgstr "Li classe d' astalåcion"
-
-#~ msgid "Formatting"
-#~ msgstr "Abwesnaedje"
-
-#~ msgid "Choosing packages"
-#~ msgstr "Tchoezi les pacaedjes"
-
-#~ msgid "Users"
-#~ msgstr "Uzeus"
+#, c-format
+#~ msgid "URL of the mirror?"
+#~ msgstr "Hårdêye do muroe?"
-#~ msgid "Networking"
-#~ msgstr "Rantoele"
+#, c-format
+#~ msgid "URL must start with ftp:// or http://"
+#~ msgstr "Li hårdêye doet cmincî avou «ftp://» ou «http://»"
-#~ msgid "Configure X"
-#~ msgstr "Apontyî X"
+#, c-format
+#~ msgid "Contacting %s web site to get the list of available mirrors..."
+#~ msgstr ""
+#~ "Dj' atôtche li waibe da %s po-z aveur li djivêye des muroes k' i gn a"
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
+#, c-format
+#~ msgid "Failed contacting %s web site to get the list of available mirrors"
#~ msgstr ""
-#~ "Dji n' sai vey les modules po vosse nawea (i gn a pont d' fitchî %s), "
-#~ "çoula vout probåblumint dire ki vosse plakete d' enondaedje n' a nén stî "
-#~ "fwait pol sopoirt d' astalaedje ki vos vloz eployî. Vos dvrîz fé ene "
-#~ "nouve plakete, a pårti des imådjes ki vnèt avou li modêye di Mandriva "
-#~ "Linux ki vos vloz astaler"
+#~ "Dji n' a savou atôtchî l' waibe da %s po-z aveur li djivêye des muroes "
+#~ "k' i gn a"
+
+#, c-format
+#~ msgid "Choose a mirror from which to get the packages"
+#~ msgstr "Tchoezixhoz on muroe po nd aberweter des pacaedjes foû"
diff --git a/perl-install/install/share/po/xh.po b/perl-install/install/share/po/xh.po
new file mode 100644
index 000000000..84687177e
--- /dev/null
+++ b/perl-install/install/share/po/xh.po
@@ -0,0 +1,1608 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Mageia\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Xhosa (http://www.transifex.com/MageiaLinux/mageia/language/"
+"xh/)\n"
+"Language: xh\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr ""
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr ""
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr ""
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr ""
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr ""
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr ""
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr ""
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
+#, c-format
+msgid ""
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
+msgstr ""
+
+#: any.pm:162
+#, c-format
+msgid "Network (HTTP)"
+msgstr ""
+
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
+msgstr ""
+
+#: any.pm:164
+#, c-format
+msgid "Network (NFS)"
+msgstr ""
+
+#: any.pm:224
+#, c-format
+msgid "NFS setup"
+msgstr ""
+
+#: any.pm:225
+#, c-format
+msgid "Please enter the hostname and directory of your NFS media"
+msgstr ""
+
+#: any.pm:229
+#, c-format
+msgid "Hostname missing"
+msgstr ""
+
+#: any.pm:230
+#, c-format
+msgid "Directory must begin with \"/\""
+msgstr ""
+
+#: any.pm:234
+#, c-format
+msgid "Hostname of the NFS mount ?"
+msgstr ""
+
+#: any.pm:235
+#, c-format
+msgid "Directory"
+msgstr ""
+
+#: any.pm:265
+#, c-format
+msgid "Supplementary"
+msgstr ""
+
+#: any.pm:300
+#, c-format
+msgid ""
+"Can't find a package list file on this mirror. Make sure the location is "
+"correct."
+msgstr ""
+
+#: any.pm:325
+#, c-format
+msgid "Core Release"
+msgstr ""
+
+#: any.pm:327
+#, c-format
+msgid "Tainted Release"
+msgstr ""
+
+#: any.pm:329
+#, c-format
+msgid "Nonfree Release"
+msgstr ""
+
+#: any.pm:367
+#, c-format
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr ""
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr ""
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr ""
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:850
+#, c-format
+msgid ""
+"The following packages will be removed to allow upgrading your system: %s\n"
+"\n"
+"\n"
+"Do you really want to remove these packages?\n"
+msgstr ""
+
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr ""
+
+#: any.pm:1283
+#, c-format
+msgid "The following disk(s) were renamed:"
+msgstr ""
+
+#: any.pm:1285
+#, c-format
+msgid "%s (previously named as %s)"
+msgstr ""
+
+#: any.pm:1342
+#, c-format
+msgid "HTTP"
+msgstr ""
+
+#: any.pm:1342
+#, c-format
+msgid "FTP"
+msgstr ""
+
+#: any.pm:1342
+#, c-format
+msgid "NFS"
+msgstr ""
+
+#: any.pm:1361 steps_interactive.pm:979
+#, c-format
+msgid "Network"
+msgstr ""
+
+#: any.pm:1365
+#, c-format
+msgid "Please choose a media"
+msgstr ""
+
+#: any.pm:1381
+#, c-format
+msgid "File already exists. Overwrite it?"
+msgstr ""
+
+#: any.pm:1385
+#, c-format
+msgid "Permission denied"
+msgstr ""
+
+#: any.pm:1433
+#, c-format
+msgid "Bad NFS name"
+msgstr ""
+
+#: any.pm:1454
+#, c-format
+msgid "Bad media %s"
+msgstr ""
+
+#: any.pm:1498
+#, c-format
+msgid "Cannot make screenshots before partitioning"
+msgstr ""
+
+#: any.pm:1509
+#, c-format
+msgid "Screenshots will be available after install in %s"
+msgstr ""
+
+#: gtk.pm:134
+#, c-format
+msgid "Installation"
+msgstr ""
+
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
+#, c-format
+msgid "Configuration"
+msgstr ""
+
+#: install2.pm:220
+#, c-format
+msgid "You must also format %s"
+msgstr ""
+
+#: interactive.pm:16
+#, c-format
+msgid ""
+"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
+"You can find some information about them at: %s"
+msgstr ""
+
+#: interactive.pm:22
+#, c-format
+msgid "Bringing up the network"
+msgstr ""
+
+#: interactive.pm:27
+#, c-format
+msgid "Bringing down the network"
+msgstr ""
+
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
+
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
+
+#: media.pm:744
+#, c-format
+msgid "Copying some packages on disks for future use"
+msgstr ""
+
+#: media.pm:797
+#, c-format
+msgid "Copying in progress"
+msgstr ""
+
+#: pkgs.pm:32
+#, c-format
+msgid "must have"
+msgstr ""
+
+#: pkgs.pm:33
+#, c-format
+msgid "important"
+msgstr ""
+
+#: pkgs.pm:34
+#, c-format
+msgid "very nice"
+msgstr ""
+
+#: pkgs.pm:35
+#, c-format
+msgid "nice"
+msgstr ""
+
+#: pkgs.pm:36
+#, c-format
+msgid "maybe"
+msgstr ""
+
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr ""
+
+#: pkgs.pm:290
+#, c-format
+msgid ""
+"Some packages requested by %s cannot be installed:\n"
+"%s"
+msgstr ""
+
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr ""
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr ""
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr ""
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:16
+#, c-format
+msgid "Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
+msgid ""
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:26
+#, c-format
+msgid "Game station"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:27
+#, c-format
+msgid "Amusement programs: arcade, boards, strategy, etc"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:30
+#, c-format
+msgid "Multimedia station"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:31
+#, c-format
+msgid "Sound and video playing/editing programs"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:36
+#, c-format
+msgid "Internet station"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:37
+#, c-format
+msgid ""
+"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
+"Web"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:42
+#, c-format
+msgid "Network Computer (client)"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:43
+#, c-format
+msgid "Clients for different protocols including ssh"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:49
+#, c-format
+msgid "Tools to ease the configuration of your computer"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:53
+#, c-format
+msgid "Console Tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:54
+#, c-format
+msgid "Editors, shells, file tools, terminals"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
+#, c-format
+msgid "Development"
+msgstr "Ubhekiso phambili"
+
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
+#, c-format
+msgid "C and C++ development libraries, programs and include files"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
+#, c-format
+msgid "Documentation"
+msgstr "Ulwenziwo lwamaxwebhu"
+
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
+#, c-format
+msgid "Books and Howto's on Linux and Free Software"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
+#, c-format
+msgid "LSB"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
+#, c-format
+msgid "Linux Standard Base. Third party applications support"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:79
+#, c-format
+msgid "Web Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:80
+#, c-format
+msgid "Apache"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:84
+#, c-format
+msgid "Groupware"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:85
+#, c-format
+msgid "Kolab Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
+#, c-format
+msgid "Firewall/Router"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
+#, c-format
+msgid "Internet gateway"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:92
+#, c-format
+msgid "Mail/News"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:93
+#, c-format
+msgid "Postfix mail server, Inn news server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:97
+#, c-format
+msgid "Directory Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:102
+#, c-format
+msgid "FTP Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:103
+#, c-format
+msgid "ProFTPd"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:107
+#, c-format
+msgid "DNS/NIS"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:108
+#, c-format
+msgid "Domain Name and Network Information Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:112
+#, c-format
+msgid "File and Printer Sharing Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:113
+#, c-format
+msgid "NFS Server, Samba server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
+#, c-format
+msgid "Database"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:118
+#, c-format
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:123
+#, c-format
+msgid "Web/FTP"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:124
+#, c-format
+msgid "Apache, Pro-ftpd"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:128
+#, c-format
+msgid "Mail"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:129
+#, c-format
+msgid "Postfix mail server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:134
+#, c-format
+msgid "PostgreSQL or MariaDB database server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:142
+#, c-format
+msgid "Network Computer server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:143
+#, c-format
+msgid "NFS server, SMB server, Proxy server, ssh server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:150
+#, c-format
+msgid "Graphical Environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:152
+#, c-format
+msgid "Plasma Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:153
+#, c-format
+msgid ""
+"The K Desktop Environment, the basic graphical environment with a collection "
+"of accompanying tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:158
+#, c-format
+msgid "GNOME Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
+#, c-format
+msgid ""
+"A graphical environment with user-friendly set of applications and desktop "
+"tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
+#, c-format
+msgid "Other Graphical Desktops"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:218
+#, c-format
+msgid "Utilities"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
+#, c-format
+msgid "SSH Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:225
+#, c-format
+msgid "Webmin"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:226
+#, c-format
+msgid "Webmin Remote Configuration Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:230
+#, c-format
+msgid "Network Utilities/Monitoring"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:231
+#, c-format
+msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:236
+#, c-format
+msgid "Wizards to configure server"
+msgstr ""
+
+#: steps.pm:85
+#, c-format
+msgid ""
+"An error occurred, but I do not know how to handle it nicely.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: steps.pm:469
+#, c-format
+msgid ""
+"Some important packages did not get installed properly.\n"
+"Either your cdrom drive or your cdrom is defective.\n"
+"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
+"\"\n"
+msgstr ""
+
+#: steps_auto_install.pm:71 steps_stdio.pm:27
+#, c-format
+msgid "Entering step `%s'\n"
+msgstr ""
+
+#: steps_curses.pm:22
+#, c-format
+msgid "%s Installation %s"
+msgstr ""
+
+#: steps_curses.pm:32
+#, c-format
+msgid "<Tab>/<Alt-Tab> between elements"
+msgstr ""
+
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
+#, c-format
+msgid ""
+"Your system is low on resources. You may have some problem installing\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
+"press `F1' when booting on CDROM, then enter `text'."
+msgstr ""
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
+#, c-format
+msgid "Package Group Selection"
+msgstr ""
+
+#: steps_gtk.pm:354 steps_interactive.pm:626
+#, c-format
+msgid "Individual package selection"
+msgstr ""
+
+#: steps_gtk.pm:361
+#, c-format
+msgid "Unselect All"
+msgstr ""
+
+#: steps_gtk.pm:380 steps_interactive.pm:538
+#, c-format
+msgid "Total size: %d / %d MB"
+msgstr ""
+
+#: steps_gtk.pm:425
+#, c-format
+msgid "Version: "
+msgstr ""
+
+#: steps_gtk.pm:426
+#, c-format
+msgid "Size: "
+msgstr ""
+
+#: steps_gtk.pm:426
+#, c-format
+msgid "%d KB\n"
+msgstr ""
+
+#: steps_gtk.pm:427
+#, c-format
+msgid "Importance: "
+msgstr ""
+
+#: steps_gtk.pm:462
+#, c-format
+msgid "You cannot select/unselect this package"
+msgstr ""
+
+#: steps_gtk.pm:466
+#, c-format
+msgid "due to missing %s"
+msgstr ""
+
+#: steps_gtk.pm:467
+#, c-format
+msgid "due to unsatisfied %s"
+msgstr ""
+
+#: steps_gtk.pm:468
+#, c-format
+msgid "trying to promote %s"
+msgstr ""
+
+#: steps_gtk.pm:469
+#, c-format
+msgid "in order to keep %s"
+msgstr ""
+
+#: steps_gtk.pm:474
+#, c-format
+msgid ""
+"You cannot select this package as there is not enough space left to install "
+"it"
+msgstr ""
+
+#: steps_gtk.pm:477
+#, c-format
+msgid "The following packages are going to be installed"
+msgstr ""
+
+#: steps_gtk.pm:478
+#, c-format
+msgid "The following packages are going to be removed"
+msgstr ""
+
+#: steps_gtk.pm:504
+#, c-format
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr ""
+
+#: steps_gtk.pm:506
+#, c-format
+msgid "You cannot unselect this package. It is already installed"
+msgstr ""
+
+#: steps_gtk.pm:508
+#, c-format
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr ""
+
+#: steps_gtk.pm:512
+#, c-format
+msgid "Show automatically selected packages"
+msgstr ""
+
+#: steps_gtk.pm:516
+#, c-format
+msgid "Install"
+msgstr ""
+
+#: steps_gtk.pm:519
+#, c-format
+msgid "Load/Save selection"
+msgstr ""
+
+#: steps_gtk.pm:520 steps_gtk.pm:525
+#, c-format
+msgid "Updating package selection"
+msgstr ""
+
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
+#, c-format
+msgid "Minimal install"
+msgstr ""
+
+#: steps_gtk.pm:543
+#, c-format
+msgid "Software Management"
+msgstr ""
+
+#: steps_gtk.pm:543 steps_interactive.pm:415
+#, c-format
+msgid "Choose the packages you want to install"
+msgstr ""
+
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
+#, c-format
+msgid "Installing"
+msgstr ""
+
+#: steps_gtk.pm:590
+#, c-format
+msgid "No details"
+msgstr ""
+
+#: steps_gtk.pm:610
+#, c-format
+msgid "Time remaining:"
+msgstr ""
+
+#: steps_gtk.pm:611
+#, c-format
+msgid "(estimating...)"
+msgstr ""
+
+#: steps_gtk.pm:637
+#, c-format
+msgid "%d package"
+msgid_plural "%d packages"
+msgstr[0] ""
+msgstr[1] ""
+
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
+#, c-format
+msgid "Summary"
+msgstr ""
+
+#: steps_gtk.pm:713
+#, c-format
+msgid "Configure"
+msgstr ""
+
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
+#, c-format
+msgid "not configured"
+msgstr ""
+
+#: steps_gtk.pm:773 steps_interactive.pm:315
+#, c-format
+msgid ""
+"The following installation media have been found.\n"
+"If you want to skip some of them, you can unselect them now."
+msgstr ""
+
+#: steps_gtk.pm:789 steps_interactive.pm:321
+#, c-format
+msgid ""
+"You have the option to copy the contents of the CDs onto the hard disk drive "
+"before installation.\n"
+"It will then continue from the hard disk drive and the packages will remain "
+"available once the system is fully installed."
+msgstr ""
+
+#: steps_gtk.pm:791 steps_interactive.pm:323
+#, c-format
+msgid "Copy whole CDs"
+msgstr ""
+
+#: steps_interactive.pm:40
+#, c-format
+msgid "An error occurred"
+msgstr ""
+
+#: steps_interactive.pm:105
+#, c-format
+msgid "Please choose your keyboard layout"
+msgstr ""
+
+#: steps_interactive.pm:109
+#, c-format
+msgid "Here is the full list of available keyboards:"
+msgstr ""
+
+#: steps_interactive.pm:153
+#, c-format
+msgid "Install/Upgrade"
+msgstr ""
+
+#: steps_interactive.pm:157
+#, c-format
+msgid "Is this an install or an upgrade?"
+msgstr ""
+
+#: steps_interactive.pm:159
+#, c-format
+msgid ""
+"_: This is a noun:\n"
+"Install"
+msgstr ""
+
+#: steps_interactive.pm:161
+#, c-format
+msgid "Upgrade %s"
+msgstr ""
+
+#: steps_interactive.pm:184
+#, c-format
+msgid "Encryption key for %s"
+msgstr ""
+
+#: steps_interactive.pm:217
+#, c-format
+msgid "Cancel installation, reboot system"
+msgstr ""
+
+#: steps_interactive.pm:218
+#, c-format
+msgid "New Installation"
+msgstr ""
+
+#: steps_interactive.pm:219
+#, c-format
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
+
+#: steps_interactive.pm:223
+#, c-format
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr ""
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr ""
+
+#: steps_interactive.pm:354
+#, c-format
+msgid ""
+"Change your Cd-Rom!\n"
+"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
+"done.\n"
+"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
+msgstr ""
+
+#: steps_interactive.pm:372 steps_interactive.pm:490
+#, c-format
+msgid "Looking for available packages..."
+msgstr ""
+
+#: steps_interactive.pm:380
+#, c-format
+msgid ""
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
+msgstr ""
+
+#: steps_interactive.pm:428
+#, c-format
+msgid ""
+"Please choose load or save package selection.\n"
+"The format is the same as auto_install generated files."
+msgstr ""
+
+#: steps_interactive.pm:430
+#, c-format
+msgid "Load"
+msgstr ""
+
+#: steps_interactive.pm:430
+#, c-format
+msgid "Save"
+msgstr ""
+
+#: steps_interactive.pm:438
+#, c-format
+msgid "Bad file"
+msgstr ""
+
+#: steps_interactive.pm:455
+#, c-format
+msgid "Plasma"
+msgstr ""
+
+#: steps_interactive.pm:456
+#, c-format
+msgid "GNOME"
+msgstr ""
+
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
+
+#: steps_interactive.pm:460
+#, c-format
+msgid "You can choose your workstation desktop profile."
+msgstr ""
+
+#: steps_interactive.pm:552
+#, c-format
+msgid "Selected size is larger than available space"
+msgstr ""
+
+#: steps_interactive.pm:576
+#, c-format
+msgid "Type of install"
+msgstr ""
+
+#: steps_interactive.pm:577
+#, c-format
+msgid ""
+"You have not selected any group of packages.\n"
+"Please choose the minimal installation you want:"
+msgstr ""
+
+#: steps_interactive.pm:582
+#, c-format
+msgid "With X"
+msgstr ""
+
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
+#, c-format
+msgid "With basic documentation (recommended!)"
+msgstr ""
+
+#: steps_interactive.pm:585
+#, c-format
+msgid "Truly minimal install (especially no urpmi)"
+msgstr ""
+
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
+#, c-format
+msgid "Preparing installation"
+msgstr ""
+
+#: steps_interactive.pm:655
+#, c-format
+msgid "Installing package %s"
+msgstr ""
+
+#: steps_interactive.pm:679
+#, c-format
+msgid "There was an error ordering packages:"
+msgstr ""
+
+#: steps_interactive.pm:679
+#, c-format
+msgid "Go on anyway?"
+msgstr ""
+
+#: steps_interactive.pm:683
+#, c-format
+msgid "Retry"
+msgstr ""
+
+#: steps_interactive.pm:684
+#, c-format
+msgid "Skip this package"
+msgstr ""
+
+#: steps_interactive.pm:685
+#, c-format
+msgid "Skip all packages from medium \"%s\""
+msgstr ""
+
+#: steps_interactive.pm:686
+#, c-format
+msgid "Go back to media and packages selection"
+msgstr ""
+
+#: steps_interactive.pm:689
+#, c-format
+msgid "There was an error installing package %s."
+msgstr ""
+
+#: steps_interactive.pm:708
+#, c-format
+msgid "Post-install configuration"
+msgstr ""
+
+#: steps_interactive.pm:715
+#, c-format
+msgid "Please ensure the Update Modules media is in drive %s"
+msgstr ""
+
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
+#, c-format
+msgid "Updates"
+msgstr ""
+
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr ""
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr ""
+
+#: steps_interactive.pm:792
+#, c-format
+msgid ""
+"You now have the opportunity to download updated packages. These packages\n"
+"have been updated after the distribution was released. They may\n"
+"contain security or bug fixes.\n"
+"\n"
+"To download these packages, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to install the updates?"
+msgstr ""
+
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
+#, c-format
+msgid "%s on %s"
+msgstr ""
+
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
+#, c-format
+msgid "Hardware"
+msgstr ""
+
+#: steps_interactive.pm:958
+#, c-format
+msgid "Sound card"
+msgstr ""
+
+#: steps_interactive.pm:972
+#, c-format
+msgid "Graphical interface"
+msgstr ""
+
+#: steps_interactive.pm:978 steps_interactive.pm:990
+#, c-format
+msgid "Network & Internet"
+msgstr ""
+
+#: steps_interactive.pm:991
+#, c-format
+msgid "Proxies"
+msgstr ""
+
+#: steps_interactive.pm:992
+#, c-format
+msgid "configured"
+msgstr ""
+
+#: steps_interactive.pm:1002
+#, c-format
+msgid "Security Level"
+msgstr ""
+
+#: steps_interactive.pm:1022
+#, c-format
+msgid "Firewall"
+msgstr ""
+
+#: steps_interactive.pm:1026
+#, c-format
+msgid "activated"
+msgstr ""
+
+#: steps_interactive.pm:1026
+#, c-format
+msgid "disabled"
+msgstr ""
+
+#: steps_interactive.pm:1041
+#, c-format
+msgid "You have not configured X. Are you sure you really want this?"
+msgstr ""
+
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
+#, c-format
+msgid "Preparing initial startup program..."
+msgstr ""
+
+#: steps_interactive.pm:1073
+#, c-format
+msgid "Be patient, this may take a while..."
+msgstr ""
+
+#: steps_interactive.pm:1089
+#, c-format
+msgid ""
+"In this security level, access to the files in the Windows partition is "
+"restricted to the administrator."
+msgstr ""
+
+#: steps_interactive.pm:1121
+#, c-format
+msgid "Insert a blank floppy in drive %s"
+msgstr ""
+
+#: steps_interactive.pm:1123
+#, c-format
+msgid "Creating auto install floppy..."
+msgstr ""
+
+#: steps_interactive.pm:1134
+#, c-format
+msgid ""
+"Some steps are not completed.\n"
+"\n"
+"Do you really want to quit now?"
+msgstr ""
+
+#: steps_interactive.pm:1144
+#, c-format
+msgid "Congratulations"
+msgstr ""
+
+#: steps_interactive.pm:1147
+#, c-format
+msgid "Reboot"
+msgstr "Phinda umisele inkqubo"
+
+#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
+#: steps_list.pm:16
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Language"
+msgstr ""
+
+#: steps_list.pm:16 steps_list.pm:23
+#, c-format
+msgid "Localization"
+msgstr ""
+
+#: steps_list.pm:17
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"License"
+msgstr ""
+
+#: steps_list.pm:18
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Mouse"
+msgstr ""
+
+#: steps_list.pm:19 steps_list.pm:20
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Hard drive detection"
+msgstr ""
+
+#: steps_list.pm:21 steps_list.pm:22
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Installation class"
+msgstr ""
+
+#: steps_list.pm:23
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Keyboard"
+msgstr ""
+
+#: steps_list.pm:24
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Security"
+msgstr ""
+
+#: steps_list.pm:25
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Partitioning"
+msgstr ""
+
+#: steps_list.pm:27 steps_list.pm:28
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Formatting"
+msgstr ""
+
+#: steps_list.pm:29
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Choosing packages"
+msgstr ""
+
+#: steps_list.pm:31
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Installing"
+msgstr ""
+
+#: steps_list.pm:34
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Users"
+msgstr ""
+
+#: steps_list.pm:38 steps_list.pm:39
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Bootloader"
+msgstr ""
+
+#: steps_list.pm:40 steps_list.pm:41
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Configure X"
+msgstr ""
+
+#: steps_list.pm:42
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Summary"
+msgstr ""
+
+#: steps_list.pm:44 steps_list.pm:45
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Services"
+msgstr ""
+
+#: steps_list.pm:46
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Updates"
+msgstr ""
+
+#: steps_list.pm:48
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Exit"
+msgstr ""
diff --git a/perl-install/install/share/po/zh_CN.po b/perl-install/install/share/po/zh_CN.po
index 44b1ea9dd..87886bf5a 100644
--- a/perl-install/install/share/po/zh_CN.po
+++ b/perl-install/install/share/po/zh_CN.po
@@ -1,29 +1,87 @@
-# drakx messages in Simplified Chinese
-# Danny Zeng <danny@zeng.com.cn>, 2000, 2002
-# Jesse Kuang <kjx@mandriva.com>, 2002
-# Shiyu Tang <shiyutang@netscape.net>, 2003, 2004
-# Funda Wang <fundawang@linux.net.cn>, 2002, 2003, 2004, 2005
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Danny Zeng <danny@zeng.com.cn>, 2000,2002
+# Dmitry <dmitrydmitry761@gmail.com>, 2021,2024
+# Funda Wang <fundawang@linux.net.cn>, 2002-2005
+# Jesse Kuang <kjx@mandriva.com>, 2002
+# Shiyu Tang <shiyutang@netscape.net>, 2003-2004
+# xiao wenming <xwm-citcc5@hotmail.com>, 2015
+# zwpwjwtz <zwpwjwtz@126.com>, 2016,2018
msgid ""
msgstr ""
-"Project-Id-Version: DrakX 2007\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-09-04 23:34+0800\n"
-"Last-Translator: Funda Wang <fundawang@linux.net.cn>\n"
-"Language-Team: Mandriva Linux i18n Team <cooker-i18n@mandrivalinux.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2013-04-04 13:31+0000\n"
+"Last-Translator: Dmitry <dmitrydmitry761@gmail.com>, 2021,2024\n"
+"Language-Team: Chinese (China) (http://app.transifex.com/MageiaLinux/mageia/"
+"language/zh_CN/)\n"
+"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "加入我们!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "得心应手"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "你的选择!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "办公工具"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "家庭娱乐"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "给孩子们的……"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "给家人的……"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "给开发者的……"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "谢谢!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "一切自由!"
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
msgstr "您有其它赠品介质吗?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -36,136 +94,148 @@ msgstr ""
"\n"
"您是否想要配置赠品安装介质?"
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
-
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "网络 (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "网络 (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "网络 (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "镜像的 URL?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "URL 必须以 ftp:// 或 http:// 开始"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr "正在连接 Mandriva Linux 网站获得可用镜像的列表..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr "连接 Mandriva Linux 网站以获得可用镜像的列表失败"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "选择一个镜像网站来取得软件包"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "NFS 设置"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
msgstr "请输入您 NFS 介质的主机名和目录"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr "缺少主机名"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "目录必须以“/”开头"
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "NFS 挂载的主机名?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "目录"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "赠品"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
msgstr "无法在此镜像上找到软件包列表文件。请确定位置正确。"
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "正在查找已经安装过的软件包..."
+msgid "Core Release"
+msgstr "Core 发布"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "正在删除由于更新所致的软件包..."
+msgid "Tainted Release"
+msgstr "Tainted 发布"
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "正在寻找可升级的程序..."
+msgid "Nonfree Release"
+msgstr "Nonfree 发布"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr "您的机器上有一些硬件需要非自由固件来支持驱动(自由软件)运行。"
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "您应当启用“%s”"
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "“%s”包含系统及其应用的各种部件"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "\"%s\" 包含非自由软件。\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
msgstr ""
-"您选择了以下服务器: %s\n"
-"\n"
-"\n"
-"这些服务器默认会被激活。它们没有已知的安全问题, 但可能发现新问题。如果那样, "
-"您一定要立即升级。\n"
-"\n"
-"\n"
-"您真要安装这些服务器吗?\n"
+"它也包含支持特定设备运行的固件(如:一些 ATI/AMD 显卡、网卡和 RAID 卡)"
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr "“%s”包含因软件专利问题无法在所有国家分发的软件"
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr "它也包含由“%s”重新构建,并加入了额外功能的软件"
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "此处您可以启用更多媒体。"
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "这些媒体提供了来自媒体“%s”的软件包更新"
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "正在查找已经安装过的软件包..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "正在寻找可升级的程序..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "正在删除由于更新所致的软件包..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -178,82 +248,87 @@ msgstr ""
"\n"
"您确定要删除这些软件包吗?\n"
-#: any.pm:1055
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "请取文件 %s 出错"
+
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "下列盘片已重命名:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s(以前的名称为 %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "网络"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
msgstr "请选择介质"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "文件已经存在。覆盖吗?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "没有权限"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "无效的 NFS 名称"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
msgstr "无效的介质 %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "无法在分区完成之前进行屏幕捕捉"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "安装完成后, 所有的屏幕抓图都会保存到 %s 之中"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "安装"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "配置"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "您还必须格式化 %s"
@@ -277,368 +352,459 @@ msgstr "正在启动网络"
msgid "Bringing down the network"
msgstr "正在禁用网络"
-#: media.pm:703 media.pm:714
+#: media.pm:397
#, c-format
-msgid "Downloading file %s..."
-msgstr "正在下载文件 %s..."
+msgid "Please wait, retrieving file"
+msgstr "请稍候,正在获取文件"
-#: media.pm:808
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr "无法添加介质"
+
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
msgstr "正在将软件包复制到磁盘中以备后用"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "复制进行中"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "必须拥有"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "非常重要"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "比较重要"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "一般"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "或许有用"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "从 XML元数据获取软件包信息……"
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr "未找到介质“%s”的 XML 信息,只返回软件包 %s 的部分结果"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "无描述"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
-msgstr "%s 所请求的某些软件包无法安装:\n%s"
+msgstr ""
+"%s 所请求的某些软件包无法安装:\n"
+"%s"
+
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "发生了一个错误:"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "发生了一个致命错误: %s。"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr "不要再次询问"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d 个安装交易失败"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "安装软件包失败:"
+
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "工作站"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "办公工作站"
-#: share/meta-task/compssUsers.pl:15
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"办公程序: 字处理(OpenOffice.org Writer、Kword), 电子表格(OpenOffice.org "
-"Calc、Kspread)、PDF 阅读器等"
+"办公程序: 字处理(LibreOffice Writer、Kword), 电子表格(LibreOffice Calc、"
+"Kspread)、PDF 阅读器等"
-#: share/meta-task/compssUsers.pl:16
-#, c-format
-msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
-msgstr ""
-"办公程序: 字处理(kword、abiword), 电子表格(kspread、gnumeric)、pdf 阅读器等"
-
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "游戏机"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "游戏程序: 街机、棋盘、战略等等"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "多媒体工作站"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "声音和视频播放/编辑程序"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "Internet 工作站"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr "一组工具, 用于收发电子邮件及新闻组(mutt, tin..), 浏览网站"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "网络计算机(客户端)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "SSH 等不同协议客户端"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "简化计算机配置的工具"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "控制台工具"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "编辑器, shell, 文件工具, 终端"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "开发"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "C 和 C++ 开发库, 程序及头文件"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "文档"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "有关 Linux 和自由软件的书籍和指南"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "Linux Standard Base。第三方应用程序支持"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "Web 服务器"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "群件"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Kolab 服务器"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "防火墙/路由器"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "Internet 网关"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "邮件/新闻"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Postfix 邮件服务器、Inn 新闻服务器"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "目录服务器"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP 服务器"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "域名和网络信息服务器"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "文件和打印机共享服务器"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "NFS 服务器、Samba 服务器"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "数据库"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL 和 MySQL 数据库服务"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "PostgreSQL 和 MariaDB 数据库服务"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache 和 Pro-ftpd"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "邮件"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Postfix 邮件服务器"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL 或 MySQL 数据库服务"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL 或 MariaDB 数据库服务"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "网络计算机服务器"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "NFS 服务器, SMB 服务器, 代理服务器, SSH 服务器"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "图形环境"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE 工作站"
+msgid "Plasma Workstation"
+msgstr "Plasma 工作站"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr "KDE 桌面环境, 基本的图形环境和一组配套的工具"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "GNOME 工作站"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr "配备了用户友善的应用程序与桌面工具的图形环境"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr "Xfce 工作站"
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr "一个轻量级的图形化环境,包含了用户友好的应用程序和桌面工具。"
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "MATE工作站"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Cinnamon工作站"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "一种基于GNOME的图形环境"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "LXQt桌面"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "轻量级桌面环境的 QT 移植版本"
+
+#: share/meta-task/compssUsers.pl:184
#, c-format
-msgid "IceWm Desktop"
-msgstr "IceWM 桌面"
+msgid "Enlightenment Desktop"
+msgstr "Enlightenment 桌面"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr "轻便、快捷、专注的图形化环境"
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr "LXDE 桌面"
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "一种轻量级的快速图形环境"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "其它图形桌面"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker、Enlightenment、Fvwm 等"
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, 等等"
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "工具"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH 服务器"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Webmin 远程配置服务器"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "网络工具/监视"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "监视工具、进程统计、tcpdump、nmap……"
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Mandriva 向导"
+msgid "Mageia Wizards"
+msgstr "Mageia 向导"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "服务器配置向导"
@@ -652,13 +818,13 @@ msgstr ""
"发生错误, 可是我不知道该怎样处理才好。\n"
"继续下去会怎样就看您的运气了。"
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
-"\"\n"
+"Check the cdrom on an installed computer using \"rpm -qpl media/main/*."
+"rpm\"\n"
msgstr ""
"一些重要软件包没有正确的安装。\n"
"您的光盘或者驱动器可能有缺陷。\n"
@@ -671,201 +837,254 @@ msgstr "进入步骤“%s”\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux 安装 %s"
+msgid "%s Installation %s"
+msgstr "%s 安装 %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> 可在元素间切换"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Xorg 启动很慢,请稍候..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"您系统的资源过低。您在安装 Mandriva Linux 的过程中可能遇到问题。\n"
+"您系统的资源过低。您在安装 %s 的过程中可能遇到问题。\n"
"如果您真的遇到问题的话,可以试试文本安装。要进入文本安装,请在启动时按“F1”,"
"然后输入“text”。"
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "介质选择"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "安装 %s Plasma 桌面"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "安装 %s GNOME 桌面"
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "自定义安装"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Plasma 桌面"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "GNOME 桌面"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "自定义桌面"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "这是“%s”桌面的预览。"
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "单击图像可查看更大的预览"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
msgstr "程序组选择"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
msgstr "选择单个软件包"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "总共大小: %d / %d MB"
+msgid "Unselect All"
+msgstr "全部不选"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "有错的软件包"
+msgid "Total size: %d / %d MB"
+msgstr "总共大小: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "版本: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "大小: "
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "重要程度: "
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
+msgid "You cannot select/unselect this package"
msgstr "您不能改变这个软件包的选定"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "由于缺少 %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "由于不满足的 %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "尝试推广 %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
msgstr "为了保留 %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
msgstr "您不可以选择这个软件包。没有足够空间安装它。"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
msgstr "即将安装下列软件包"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
msgstr "即将卸载下列软件包"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
+msgid "This is a mandatory package, it cannot be unselected"
msgstr "这个软件包是必需的, 不能取消选定"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
+msgid "You cannot unselect this package. It is already installed"
msgstr "您不可以取消选择这个软件包。它已经安装过了"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
+msgid "You cannot unselect this package. It must be upgraded"
msgstr "您不能不选择这个软件包。它必须升级"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
msgstr "自动显示选中的软件包"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "安装"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "装入/保存选择"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
msgstr "更新软件包选择"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr "在包的分层列表和平面列表之间切换"
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "最小安装"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
msgstr "软件管理"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
msgstr "选择您想要安装的软件包"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "安装"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
msgstr "无细节"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "剩余时间"
+msgid "Time remaining:"
+msgstr "剩余时间:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "正在估计"
+msgid "(estimating...)"
+msgstr "(正在估计...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
msgstr[0] "%d 个软件包"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "摘要"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "配置"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "未配置"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
@@ -874,105 +1093,108 @@ msgstr ""
"找到了下列安装介质。\n"
"如果您想要跳过其中一些, 请不要选中。"
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
"您可以选择在安装之前将光盘的全部内容复制到硬盘中。\n"
"然后,安装将会从硬盘继续进行。当系统安装完成后,软件包仍然保留,以供日后添加"
"软件使用。"
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "复制整张光盘"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "发生了一个错误"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
+msgid "Please choose your keyboard layout"
msgstr "请选择您使用的键盘布局。"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "在此列出了可用的全部键盘"
+msgid "Here is the full list of available keyboards:"
+msgstr "在此列出了可用的全部键盘:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "安装/升级"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "现在要新装还是升级?"
-#: steps_interactive.pm:134
+#: steps_interactive.pm:159
#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "安装"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "升级 %s"
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr "不支持从 32 位发行版升级到 64 位发行版"
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr "不支持从 64 位发行版升级到 32 位发行版"
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "%s 的加密密钥"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "取消安装,重新启动系统"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "配置 IDE"
+msgid "New Installation"
+msgstr "全新安装"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
-"无法创建启动空间(1MB)!安装将继续, 但如需启动系统, 您可用“Drak 磁盘管理”创建"
-"启动分区"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "升级先前的安装(不推荐)"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"您需要创建一个 PPC PReP 启动空间!安装将继续, 但如需启动系统, 您可用“Drak 磁"
-"盘管理”创建启动分区"
+"安装程序检测到您所安装的 Linux 系统无法安全升级到 %s。\n"
+"\n"
+"我们建议您进行全新安装,以便替换您先前的系统。\n"
+"\n"
+"警告:您在选择“全新安装”之前应该备份您所有的个人数据。"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "配置 CD/DVD"
+
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -985,19 +1207,19 @@ msgstr ""
"请在驱动器中插入标有“%s”的光盘, 然后单击“确定”。\n"
"如果您没有这张光盘, 请单击“取消”, 放弃安装这张光盘上的软件。"
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
msgstr "正在寻找可安装的程序..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr "系统的剩余空间不足以完成安装或升级(%d MB > %d MB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
@@ -1006,134 +1228,181 @@ msgstr ""
"请选择装入或保存软件包选择息。\n"
"格式与自动安装生成的文件一样。"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "装入"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "保存"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "文件有错"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr "安装 Mandriva KDE 桌面"
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr "安装 Mandriva GNOME 桌面"
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
+#: steps_interactive.pm:459
#, c-format
-msgid "Custom install"
-msgstr "自定义安装"
+msgid "Desktop Selection"
+msgstr "桌面选择"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr "您可以选择您的工作站配置文件:KDE、GNOME 或者自定义"
+msgid "You can choose your workstation desktop profile."
+msgstr "您可以选择您的工作站配置文件:"
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "您选择的超过可用空间"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "安装类型"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr "您没有选择任何的组件, 请选择最小安装:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "安装 X"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "安装推荐的软件包"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "安装基础文档(建议!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "真正最小安装(注意没有 urpmi 包管理工具)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "升级准备中......"
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "正在准备安装"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
msgstr "正在安装软件包 %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
msgstr "排列软件包时出错: "
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "真的要继续?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "重试"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
msgstr "跳过此软件包"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
msgstr "跳过介质“%s”中的全部软件包"
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
msgstr "返回介质和软件包选择"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
msgstr "安装软件包 %s 时出错。"
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "安装后的配置"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
msgstr "请确定更新模块介质位于驱动器 %s"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "更新"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "您现在可以配置在线媒体。"
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "允许安装安全更新。"
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"要安装这些媒体,您需要确保互联网连接正常。\n"
+"\n"
+"您希望安装更新媒体吗?"
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr "无法安装此引导加载程序"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "重试一次吗?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "添加介质失败"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1152,144 +1421,97 @@ msgstr ""
"\n"
"您是否要安装升级包?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "正在连接镜像网站以取得可供安装的软件包的列表..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "无法连接镜像 %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "位于 %2$s 上的 %1$s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "硬件"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "声卡"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "您有 ISA 声卡吗?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr "安装之后运行“alsaconf”或“sndconfig”来配置您的声卡"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "没有检测到声卡。请在安装之后尝试“Drak 硬件配置”。"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "图形界面"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "网络和 Internet"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "代理服务器"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "已配置"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "安全级别"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "防火墙"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "已激活"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "已禁用"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "您还没有配置过 X。您真的想要这样吗?"
-#: steps_interactive.pm:1008
-#, c-format
-msgid "Preparing bootloader..."
-msgstr "正在准备引导程序..."
-
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"看来您用的是老掉牙或不认识的机器, yaboot 启动引导程序无法为您工作。安装将继"
-"续, 不过您需要使用 BootX 或其它方式启动您的机器。根文件系统的内核参数是:"
-"root=%s"
-
-#: steps_interactive.pm:1024
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Do you want to use aboot?"
-msgstr "您要使用 aboot 吗?"
+msgid "Preparing initial startup program..."
+msgstr "正在准备安装初始安装程序..."
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"安装 aboot 时出错, \n"
-"强迫安装会毁坏第一个分区, 要继续吗?"
+msgid "Be patient, this may take a while..."
+msgstr "请稍候,这可能需要一会儿..."
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr "在此安全级别中, 只有管理员才能访问 Windows 分区中的文件。"
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "请在驱动器 %s 中插入一张空白软盘"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "正在创建自动安装软盘..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1300,51 +1522,16 @@ msgstr ""
"\n"
"您真的要现在退出吗?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "恭喜"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "重新启动"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "生成自动安装软盘"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"如果需要的话, 自动安装可以完全自动执行。\n"
-"但此时, 安装程序将会接管硬盘!!\n"
-"(只对在另外的计算机上安装而言)。\n"
-"\n"
-"您可能愿意重现安装过程。\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "重现"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "自动"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "保存软件包选择"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1435,13 +1622,6 @@ msgid ""
"Users"
msgstr "用户"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "联网"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1483,9 +1663,3 @@ msgid ""
"_: Keep these entry short\n"
"Exit"
msgstr "退出"
-
-#~ msgid "All"
-#~ msgstr "全部"
-
-#~ msgid "TV card"
-#~ msgstr "电视卡"
diff --git a/perl-install/install/share/po/zh_TW.po b/perl-install/install/share/po/zh_TW.po
index 63e414f16..8aecc4968 100644
--- a/perl-install/install/share/po/zh_TW.po
+++ b/perl-install/install/share/po/zh_TW.po
@@ -1,43 +1,82 @@
-# translation of zh_TW.po to 正體中文
-# translation of zh_TW.po to Chinese Traditional
-# translation of DrakX-zh_TW.po to Chinese Traditional
-# drakbootdisk messages in Traditional Chinese
-# Copyright (C) 2000, 2003, 2004 Free Software Foundation, Inc.
-# Platin <platin@cle.linux.org.tw> , 2000
-# Kenduest Lee <kenduest@i18n.linux.org.tw> , 2002
-# Danny Zeng <danny@zeng.com.cn>, 2000.
-# Joe Man <trmetal@yahoo.com.hk>, 2001.
-# Chong Sein Yeo <csyeo@hal-pc.org>, 2003.
-# Hilbert <freehil@yahoo.com>, 2003, 2004.
-# Hilbert <h@mandrake.org>, 2004.
-# hilbert <h@mandrake.org>, 2004.
-# Shiva Huang <blueshiva@giga.net.tw>, 2005.
-# Shiva Huang <shivahuang@gmail.com>, 2005, 2006
-# You-Cheng Hsieh <yochenhsieh@xuite.net>, 2005, 2006.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
#
+# Translators:
+# Cheng-Chia Tseng <pswo10680@gmail.com>, 2018
+# You-Cheng Hsieh <yochenhsieh@gmail.com>, 2015-2016,2018
msgid ""
msgstr ""
-"Project-Id-Version: DrakX\n"
+"Project-Id-Version: Mageia\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-01 09:12+0200\n"
-"PO-Revision-Date: 2007-10-01 21:17+0800\n"
-"Last-Translator: You-Cheng Hsieh <yochenhsieh@gmail.com>\n"
-"Language-Team: Traditional Chinese <zh@li.org>\n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2013-04-04 13:31+0000\n"
+"Last-Translator: Cheng-Chia Tseng <pswo10680@gmail.com>, 2018\n"
+"Language-Team: Chinese (Taiwan) (http://app.transifex.com/MageiaLinux/mageia/"
+"language/zh_TW/)\n"
+"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3.1\n"
-"X-Poedit-Language: Chinese\n"
-"X-Poedit-Country: TAIWAN\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: any.pm:155
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr "加入我們!"
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr "讓它更貼近您的心意!"
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr "您的選擇!"
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr "辦公工具"
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr "家庭娛樂"
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr "適合孩童"
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr "適合家庭!"
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr "適合開發者!"
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr "感謝您!"
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr "享受自由!"
+
+#: any.pm:151
#, c-format
msgid "Do you have further supplementary media?"
-msgstr "您還有其他的補充媒介嗎?"
+msgstr "您還有其他的補充媒體嗎?"
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:158
+#: any.pm:154
#, c-format
msgid ""
"The following media have been found and will be used during install: %s.\n"
@@ -45,141 +84,154 @@ msgid ""
"\n"
"Do you have a supplementary installation medium to configure?"
msgstr ""
-"已經找到下列媒介,它們將會在安裝過程中使用到:%s。\n"
+"已經找到下列媒體,它們將會在安裝過程中使用到:%s。\n"
"\n"
"\n"
-"您有其他的安裝媒介需要設定嗎?"
-
-#: any.pm:166
-#, c-format
-msgid "CD-ROM"
-msgstr "CD-ROM"
+"您有其他的安裝媒體需要設定嗎?"
-#: any.pm:167
+#: any.pm:162
#, c-format
msgid "Network (HTTP)"
msgstr "網路 (HTTP)"
-#: any.pm:168
+#: any.pm:163
#, c-format
msgid "Network (FTP)"
msgstr "網路 (FTP)"
-#: any.pm:169
+#: any.pm:164
#, c-format
msgid "Network (NFS)"
msgstr "網路 (NFS)"
-#: any.pm:211
-#, c-format
-msgid "URL of the mirror?"
-msgstr "映像站的 URL?"
-
-#: any.pm:217
-#, c-format
-msgid "URL must start with ftp:// or http://"
-msgstr "URL 開頭必須是 ftp:// 或 http://"
-
-#: any.pm:228
-#, c-format
-msgid ""
-"Contacting Mandriva Linux web site to get the list of available mirrors..."
-msgstr "正在連結到 Mandriva Linux 網站查詢可用的映射站台..."
-
-#: any.pm:233
-#, c-format
-msgid ""
-"Failed contacting Mandriva Linux web site to get the list of available "
-"mirrors"
-msgstr "無法連結到 Mandriva Linux 網站取得可用的映射站台"
-
-#: any.pm:243
-#, c-format
-msgid "Choose a mirror from which to get the packages"
-msgstr "選取要用來抓取程式套件檔的 FTP 映射站台"
-
-#: any.pm:273
+#: any.pm:224
#, c-format
msgid "NFS setup"
msgstr "設定 NFS"
-#: any.pm:274
+#: any.pm:225
#, c-format
msgid "Please enter the hostname and directory of your NFS media"
-msgstr "請輸入您的 NFS 媒介的主機和目錄名稱"
+msgstr "請輸入您的 NFS 媒體的主機和目錄名稱"
-#: any.pm:278
+#: any.pm:229
#, c-format
msgid "Hostname missing"
msgstr "沒有主機名稱"
-#: any.pm:279
+#: any.pm:230
#, c-format
msgid "Directory must begin with \"/\""
msgstr "目錄必須以「/」開始"
-#: any.pm:283
+#: any.pm:234
#, c-format
msgid "Hostname of the NFS mount ?"
msgstr "NFS 掛載點的主機名稱?"
-#: any.pm:284
+#: any.pm:235
#, c-format
msgid "Directory"
msgstr "目錄"
-#: any.pm:306
+#: any.pm:265
#, c-format
msgid "Supplementary"
msgstr "補充"
-#: any.pm:341
+#: any.pm:300
#, c-format
msgid ""
"Can't find a package list file on this mirror. Make sure the location is "
"correct."
-msgstr "無法在這個映像站上找到套件列表檔。請確定位址是正確的。"
+msgstr "無法在這個鏡像站上找到軟體套件列表檔。請確定位址是正確的。"
-#: any.pm:375
+#: any.pm:325
#, c-format
-msgid "Looking at packages already installed..."
-msgstr "正在查看已經安裝過的套件..."
+msgid "Core Release"
+msgstr "Core 發行版"
-#: any.pm:382
+#: any.pm:327
#, c-format
-msgid "Removing packages prior to upgrade..."
-msgstr "移除套件以更新..."
+msgid "Tainted Release"
+msgstr "Tainted 發行版"
-#: any.pm:424
+#: any.pm:329
#, c-format
-msgid "Finding packages to upgrade..."
-msgstr "正在搜尋要升級的套件..."
+msgid "Nonfree Release"
+msgstr "Nonfree 發行版"
-#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:610
+#: any.pm:367
#, c-format
msgid ""
-"You have selected the following server(s): %s\n"
-"\n"
-"\n"
-"These servers are activated by default. They do not have any known security\n"
-"issues, but some new ones could be found. In that case, you must make sure\n"
-"to upgrade as soon as possible.\n"
-"\n"
-"\n"
-"Do you really want to install these servers?\n"
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr "您的機器上的某些硬體需要非自由的軔體才能夠讓自由的驅動程式運作。"
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr "您應該啟用 \"%s\""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr "\"%s\" 包含各種系統元件和應用程式"
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr "\"%s\" 包含非自由軟體。\n"
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
msgstr ""
-"您已經選擇了下面的伺服器:%s\n"
-"\n"
-"\n"
-"這些伺服器安裝好後預設是啟用的。他們沒有任何已知的安全性問題,\n"
-"但是某些新的安全性問題或許會被發現。在這種情況下,請您一定要儘快更新。\n"
-"\n"
-"\n"
-"您確定真的要安裝這些伺服器嗎?\n"
+"它也包含某些裝置運作時所需要的軔體(如:某些 ATI/AMD 顯示卡、網路卡、RAID介面"
+"卡...)"
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr "\"%s\" 包含因為軟體專利而無法在所有國家散布的軟體。"
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr "它也包含了 \"%s\" 中以不同方式編譯的軟體。"
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr "您可以在這裡啟用更多媒體。"
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr "這個媒體包含 \"%s\" 媒體的軟體套件更新"
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr "正在查看已經安裝過的軟體套件..."
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr "正在搜尋要升級的軟體套件..."
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr "先移除軟體套件以便升級..."
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
-#: any.pm:633
+#: any.pm:850
#, c-format
msgid ""
"The following packages will be removed to allow upgrading your system: %s\n"
@@ -187,87 +239,92 @@ msgid ""
"\n"
"Do you really want to remove these packages?\n"
msgstr ""
-"下列套件將被移除以升級您的系統:%s\n"
+"下列軟體套件將移除以升級您的系統:%s\n"
"\n"
"\n"
-"您確定要移除這些套件嗎?\n"
+"您確定要移除這些軟體套件嗎?\n"
+
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr "讀取檔案 %s 時發生錯誤"
-#: any.pm:1055
+#: any.pm:1283
#, c-format
msgid "The following disk(s) were renamed:"
msgstr "下列磁碟已經改名:"
-#: any.pm:1057
+#: any.pm:1285
#, c-format
msgid "%s (previously named as %s)"
msgstr "%s (原本為 %s)"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "HTTP"
msgstr "HTTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "FTP"
msgstr "FTP"
-#: any.pm:1114
+#: any.pm:1342
#, c-format
msgid "NFS"
msgstr "NFS"
-#: any.pm:1133 steps_interactive.pm:922
+#: any.pm:1361 steps_interactive.pm:979
#, c-format
msgid "Network"
msgstr "網路"
-#: any.pm:1137
+#: any.pm:1365
#, c-format
msgid "Please choose a media"
-msgstr "請選擇一個媒介"
+msgstr "請選擇一個媒體"
-#: any.pm:1153
+#: any.pm:1381
#, c-format
msgid "File already exists. Overwrite it?"
msgstr "檔案已經存在了。要覆蓋它嗎?"
-#: any.pm:1157
+#: any.pm:1385
#, c-format
msgid "Permission denied"
msgstr "權限不足"
-#: any.pm:1205
+#: any.pm:1433
#, c-format
msgid "Bad NFS name"
msgstr "錯誤的 NFS 名稱"
-#: any.pm:1226
+#: any.pm:1454
#, c-format
msgid "Bad media %s"
-msgstr "損壞的媒介 %s"
+msgstr "損壞的媒體 %s"
-#: any.pm:1269
+#: any.pm:1498
#, c-format
-msgid "Can not make screenshots before partitioning"
+msgid "Cannot make screenshots before partitioning"
msgstr "在尚未進行分割前無法提供畫面捕捉功能"
-#: any.pm:1277
+#: any.pm:1509
#, c-format
msgid "Screenshots will be available after install in %s"
msgstr "在安裝後您可以於 %s 取得螢幕截圖"
-#: gtk.pm:119
+#: gtk.pm:134
#, c-format
msgid "Installation"
msgstr "安裝"
-#: gtk.pm:122 share/meta-task/compssUsers.pl:42
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
#, c-format
msgid "Configuration"
msgstr "組態設定"
-#: install2.pm:165
+#: install2.pm:220
#, c-format
msgid "You must also format %s"
msgstr "您也必須要格式化 %s"
@@ -291,371 +348,459 @@ msgstr "啟動網路"
msgid "Bringing down the network"
msgstr "關閉網路"
-#: media.pm:703 media.pm:714
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr "請稍後,正在取回檔案"
+
+#: media.pm:704
#, c-format
-msgid "Downloading file %s..."
-msgstr "正在下載檔案 %s..."
+msgid "unable to add medium"
+msgstr "無法新增媒體"
-#: media.pm:808
+#: media.pm:744
#, c-format
msgid "Copying some packages on disks for future use"
-msgstr "正在複製一些程式套件到磁碟以供稍後使用"
+msgstr "正在複製一些軟體套件到磁碟以供稍後使用"
-#: media.pm:861
+#: media.pm:797
#, c-format
msgid "Copying in progress"
msgstr "複製進行中"
-#: pkgs.pm:28
+#: pkgs.pm:32
#, c-format
msgid "must have"
msgstr "必備的"
-#: pkgs.pm:29
+#: pkgs.pm:33
#, c-format
msgid "important"
msgstr "重要的"
-#: pkgs.pm:30
+#: pkgs.pm:34
#, c-format
msgid "very nice"
msgstr "極好的"
-#: pkgs.pm:31
+#: pkgs.pm:35
#, c-format
msgid "nice"
msgstr "好的"
-#: pkgs.pm:32
+#: pkgs.pm:36
#, c-format
msgid "maybe"
msgstr "或許"
-#: pkgs.pm:245
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr "正在從 XML 中介資料中取得軟體套件資訊..."
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr "\"%s\" 媒體沒有 XML 資訊,所以 %s 軟體套件只有部份結果"
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr "沒有描述"
+
+#: pkgs.pm:290
#, c-format
msgid ""
"Some packages requested by %s cannot be installed:\n"
"%s"
msgstr ""
-"無法安裝 %s 要求的某些套件:\n"
+"無法安裝 %s 要求的某些軟體套件:\n"
"%s"
-#: share/meta-task/compssUsers.pl:11
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr "發生一個錯誤:"
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr "發生了一個致命的錯誤:%s。"
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr "不要再詢問"
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr "%d 個安裝執行失敗"
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr "軟體套件安裝失敗:"
+
+#: share/meta-task/compssUsers.pl:16
#, c-format
msgid "Workstation"
msgstr "工作站"
-#: share/meta-task/compssUsers.pl:13
+#: share/meta-task/compssUsers.pl:18
#, c-format
msgid "Office Workstation"
msgstr "辦公軟體平台"
-#: share/meta-task/compssUsers.pl:15
-#, c-format
-msgid ""
-"Office programs: wordprocessors (OpenOffice.org Writer, Kword), spreadsheets "
-"(OpenOffice.org Calc, Kspread), PDF viewers, etc"
-msgstr ""
-"辦公軟體:文書處理軟體 (OpenOffice.org Writer、Kword)、試算表 (OpenOffice."
-"org Calc、Kspread)、PDF 檢視器等等"
-
-#: share/meta-task/compssUsers.pl:16
+#: share/meta-task/compssUsers.pl:20
#, c-format
msgid ""
-"Office programs: wordprocessors (kword, abiword), spreadsheets (kspread, "
-"gnumeric), pdf viewers, etc"
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
msgstr ""
-"辦公軟體:文書處理軟體 (kword、abiword)、試算表 (kspread、gnumeric)、PDF 檢視"
-"器等等"
+"辦公軟體:文書處理軟體 (LibreOffice Writer、Kword)、試算表 (OpenOffice.org "
+"Calc、Kspread)、PDF 檢視器等等"
-#: share/meta-task/compssUsers.pl:21
+#: share/meta-task/compssUsers.pl:26
#, c-format
msgid "Game station"
msgstr "遊戲平台"
-#: share/meta-task/compssUsers.pl:22
+#: share/meta-task/compssUsers.pl:27
#, c-format
msgid "Amusement programs: arcade, boards, strategy, etc"
msgstr "娛樂的一些程式:紙牌、益智、動作、策略等"
-#: share/meta-task/compssUsers.pl:25
+#: share/meta-task/compssUsers.pl:30
#, c-format
msgid "Multimedia station"
msgstr "多媒體平台"
-#: share/meta-task/compssUsers.pl:26
+#: share/meta-task/compssUsers.pl:31
#, c-format
msgid "Sound and video playing/editing programs"
msgstr "音效以及影像撥放編輯程式"
-#: share/meta-task/compssUsers.pl:31
+#: share/meta-task/compssUsers.pl:36
#, c-format
msgid "Internet station"
msgstr "網際網路平台"
-#: share/meta-task/compssUsers.pl:32
+#: share/meta-task/compssUsers.pl:37
#, c-format
msgid ""
"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
"Web"
msgstr "包含讀信、寄信和閱讀新聞群組 (mutt、tin ..) 以及網路瀏覽的工具"
-#: share/meta-task/compssUsers.pl:37
+#: share/meta-task/compssUsers.pl:42
#, c-format
msgid "Network Computer (client)"
msgstr "網路電腦 (客戶端)"
-#: share/meta-task/compssUsers.pl:38
+#: share/meta-task/compssUsers.pl:43
#, c-format
msgid "Clients for different protocols including ssh"
msgstr "包含 ssh 等其他不同通訊協定的用戶端程式"
-#: share/meta-task/compssUsers.pl:43
+#: share/meta-task/compssUsers.pl:49
#, c-format
msgid "Tools to ease the configuration of your computer"
msgstr "讓您方便設定您系統的工具"
-#: share/meta-task/compssUsers.pl:47
+#: share/meta-task/compssUsers.pl:53
#, c-format
msgid "Console Tools"
msgstr "Console 工具"
-#: share/meta-task/compssUsers.pl:48
+#: share/meta-task/compssUsers.pl:54
#, c-format
msgid "Editors, shells, file tools, terminals"
msgstr "編輯器、shell、檔案工具、終端機"
-#: share/meta-task/compssUsers.pl:52 share/meta-task/compssUsers.pl:153
-#: share/meta-task/compssUsers.pl:155
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
#, c-format
msgid "Development"
msgstr "程式開發"
-#: share/meta-task/compssUsers.pl:53 share/meta-task/compssUsers.pl:156
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
#, c-format
msgid "C and C++ development libraries, programs and include files"
msgstr "C/C++ 發展環境,包含編譯器、程式庫與及一些引入檔"
-#: share/meta-task/compssUsers.pl:56 share/meta-task/compssUsers.pl:160
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
#, c-format
msgid "Documentation"
msgstr "文件檔案"
-#: share/meta-task/compssUsers.pl:57 share/meta-task/compssUsers.pl:161
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
#, c-format
msgid "Books and Howto's on Linux and Free Software"
msgstr "Linux 系統與自由軟體的書籍、HOWTO 文件"
-#: share/meta-task/compssUsers.pl:61 share/meta-task/compssUsers.pl:164
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
#, c-format
msgid "LSB"
msgstr "LSB"
-#: share/meta-task/compssUsers.pl:62 share/meta-task/compssUsers.pl:165
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
#, c-format
msgid "Linux Standard Base. Third party applications support"
msgstr "LSB 的支援,包含第三類協力廠商軟體支援"
-#: share/meta-task/compssUsers.pl:71
+#: share/meta-task/compssUsers.pl:79
#, c-format
msgid "Web Server"
msgstr "網頁伺服器 (Web)"
-#: share/meta-task/compssUsers.pl:72
+#: share/meta-task/compssUsers.pl:80
#, c-format
msgid "Apache"
msgstr "Apache"
-#: share/meta-task/compssUsers.pl:75
+#: share/meta-task/compssUsers.pl:84
#, c-format
msgid "Groupware"
msgstr "群組軟體"
-#: share/meta-task/compssUsers.pl:76
+#: share/meta-task/compssUsers.pl:85
#, c-format
msgid "Kolab Server"
msgstr "Kolab 伺服器"
-#: share/meta-task/compssUsers.pl:79 share/meta-task/compssUsers.pl:120
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
#, c-format
msgid "Firewall/Router"
msgstr "防火牆/路由器"
-#: share/meta-task/compssUsers.pl:80 share/meta-task/compssUsers.pl:121
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
#, c-format
msgid "Internet gateway"
msgstr "網際網路閘道器"
-#: share/meta-task/compssUsers.pl:83
+#: share/meta-task/compssUsers.pl:92
#, c-format
msgid "Mail/News"
msgstr "郵件/新聞"
-#: share/meta-task/compssUsers.pl:84
+#: share/meta-task/compssUsers.pl:93
#, c-format
msgid "Postfix mail server, Inn news server"
msgstr "Postfix 郵件伺服器,Inn 新聞伺服器"
-#: share/meta-task/compssUsers.pl:87
+#: share/meta-task/compssUsers.pl:97
#, c-format
msgid "Directory Server"
msgstr "目錄伺服器"
-#: share/meta-task/compssUsers.pl:91
+#: share/meta-task/compssUsers.pl:102
#, c-format
msgid "FTP Server"
msgstr "FTP 伺服器"
-#: share/meta-task/compssUsers.pl:92
+#: share/meta-task/compssUsers.pl:103
#, c-format
msgid "ProFTPd"
msgstr "ProFTPd"
-#: share/meta-task/compssUsers.pl:95
+#: share/meta-task/compssUsers.pl:107
#, c-format
msgid "DNS/NIS"
msgstr "DNS/NIS"
-#: share/meta-task/compssUsers.pl:96
+#: share/meta-task/compssUsers.pl:108
#, c-format
msgid "Domain Name and Network Information Server"
msgstr "網域名稱與網路資訊伺服器"
-#: share/meta-task/compssUsers.pl:99
+#: share/meta-task/compssUsers.pl:112
#, c-format
msgid "File and Printer Sharing Server"
msgstr "檔案與列印分享伺服器"
-#: share/meta-task/compssUsers.pl:100
+#: share/meta-task/compssUsers.pl:113
#, c-format
msgid "NFS Server, Samba server"
msgstr "NFS 伺服器、Samba 伺服器"
-#: share/meta-task/compssUsers.pl:103 share/meta-task/compssUsers.pl:116
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
#, c-format
msgid "Database"
msgstr "資料庫軟體"
-#: share/meta-task/compssUsers.pl:104
+#: share/meta-task/compssUsers.pl:118
#, c-format
-msgid "PostgreSQL and MySQL Database Server"
-msgstr "PostgreSQL 與 MySQL 資料庫伺服器"
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr "PostgreSQL 與 MariaDB 資料庫伺服器"
-#: share/meta-task/compssUsers.pl:108
+#: share/meta-task/compssUsers.pl:123
#, c-format
msgid "Web/FTP"
msgstr "Web/FTP"
-#: share/meta-task/compssUsers.pl:109
+#: share/meta-task/compssUsers.pl:124
#, c-format
msgid "Apache, Pro-ftpd"
msgstr "Apache、ProFTPD"
-#: share/meta-task/compssUsers.pl:112
+#: share/meta-task/compssUsers.pl:128
#, c-format
msgid "Mail"
msgstr "電子郵件"
-#: share/meta-task/compssUsers.pl:113
+#: share/meta-task/compssUsers.pl:129
#, c-format
msgid "Postfix mail server"
msgstr "Postfix 郵件伺服器"
-#: share/meta-task/compssUsers.pl:117
+#: share/meta-task/compssUsers.pl:134
#, c-format
-msgid "PostgreSQL or MySQL database server"
-msgstr "PostgreSQL、MySQL 資料庫"
+msgid "PostgreSQL or MariaDB database server"
+msgstr "PostgreSQL、MariaDB 資料庫"
-#: share/meta-task/compssUsers.pl:124
+#: share/meta-task/compssUsers.pl:142
#, c-format
msgid "Network Computer server"
msgstr "網路伺服器"
-#: share/meta-task/compssUsers.pl:125
+#: share/meta-task/compssUsers.pl:143
#, c-format
msgid "NFS server, SMB server, Proxy server, ssh server"
msgstr "NFS 伺服器、SMB 伺服器、Proxy 伺服器、SSH 伺服器"
-#: share/meta-task/compssUsers.pl:131
+#: share/meta-task/compssUsers.pl:150
#, c-format
msgid "Graphical Environment"
msgstr "圖形環境"
-#: share/meta-task/compssUsers.pl:133
+#: share/meta-task/compssUsers.pl:152
#, c-format
-msgid "KDE Workstation"
-msgstr "KDE 工作站"
+msgid "Plasma Workstation"
+msgstr "Plasma 工作站"
-#: share/meta-task/compssUsers.pl:134
+#: share/meta-task/compssUsers.pl:153
#, c-format
msgid ""
"The K Desktop Environment, the basic graphical environment with a collection "
"of accompanying tools"
msgstr "K 桌面環境,包含許多好用的圖型介面工具程式"
-#: share/meta-task/compssUsers.pl:138
+#: share/meta-task/compssUsers.pl:158
#, c-format
msgid "GNOME Workstation"
msgstr "GNOME 工作站"
-#: share/meta-task/compssUsers.pl:139
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
#, c-format
msgid ""
"A graphical environment with user-friendly set of applications and desktop "
"tools"
msgstr "包含友善的應用程式、桌面軟體的圖型化使用環境"
-#: share/meta-task/compssUsers.pl:142
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr "Xfce 工作站"
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr "一個包含友善的應用程式和桌面工具的輕量圖形環境"
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr "MATE 工作站"
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr "Cinnamon 工作站"
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr "一個以 GNOME 為基礎的圖形環境"
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr "LXQt 桌面"
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr "輕量桌面環境的下一代 QT 版本"
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr "Enlightenment 桌面"
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr "有忠實支持者的輕量快速圖形環境"
+
+#: share/meta-task/compssUsers.pl:189
#, c-format
-msgid "IceWm Desktop"
-msgstr "IceWM 桌面"
+msgid "LXDE Desktop"
+msgstr "LXDE 桌面"
-#: share/meta-task/compssUsers.pl:146
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr "一個輕量且快速的圖形環境"
+
+#: share/meta-task/compssUsers.pl:194
#, c-format
msgid "Other Graphical Desktops"
msgstr "其他圖型桌面軟體"
-#: share/meta-task/compssUsers.pl:147
+#: share/meta-task/compssUsers.pl:195
#, c-format
-msgid "Window Maker, Enlightenment, Fvwm, etc"
-msgstr "Window Maker、Enlightenment、Fvwm 等"
+msgid "Window Maker, Fvwm, etc"
+msgstr "Window Maker, Fvwm, 等"
-#: share/meta-task/compssUsers.pl:170
+#: share/meta-task/compssUsers.pl:218
#, c-format
msgid "Utilities"
msgstr "工具軟體"
-#: share/meta-task/compssUsers.pl:172 share/meta-task/compssUsers.pl:173
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
#, c-format
msgid "SSH Server"
msgstr "SSH 伺服主機"
-#: share/meta-task/compssUsers.pl:177
+#: share/meta-task/compssUsers.pl:225
#, c-format
msgid "Webmin"
msgstr "Webmin"
-#: share/meta-task/compssUsers.pl:178
+#: share/meta-task/compssUsers.pl:226
#, c-format
msgid "Webmin Remote Configuration Server"
msgstr "Webmin 遠端設定伺服器"
-#: share/meta-task/compssUsers.pl:182
+#: share/meta-task/compssUsers.pl:230
#, c-format
msgid "Network Utilities/Monitoring"
msgstr "網路工具/監控"
-#: share/meta-task/compssUsers.pl:183
+#: share/meta-task/compssUsers.pl:231
#, c-format
msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
msgstr "監控工具、程序管理、tcpdump、nmap..."
-#: share/meta-task/compssUsers.pl:187
+#: share/meta-task/compssUsers.pl:235
#, c-format
-msgid "Mandriva Wizards"
-msgstr "Mandriva 精靈"
+msgid "Mageia Wizards"
+msgstr "Mageia 精靈"
-#: share/meta-task/compssUsers.pl:188
+#: share/meta-task/compssUsers.pl:236
#, c-format
msgid "Wizards to configure server"
msgstr "用來設定伺服器的精靈"
@@ -669,15 +814,15 @@ msgstr ""
"發生了一個錯誤,但我不知道該如何妥善處置它。\n"
"要繼續安裝工作的話請小心。"
-#: steps.pm:433
+#: steps.pm:469
#, c-format
msgid ""
"Some important packages did not get installed properly.\n"
"Either your cdrom drive or your cdrom is defective.\n"
-"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
-"\"\n"
+"Check the cdrom on an installed computer using \"rpm -qpl media/main/*."
+"rpm\"\n"
msgstr ""
-"有某些重要的套件沒有被適當地安裝。\n"
+"有某些重要的軟體套件沒有妥善安裝。\n"
"可能是您的光碟機或者是光碟片有缺陷。\n"
"請將光碟放在一個已經安裝好的電腦上使用 \"rpm -qpl media/main/*.rpm\" 來檢查\n"
@@ -688,308 +833,362 @@ msgstr "進入步驟 `%s'\n"
#: steps_curses.pm:22
#, c-format
-msgid "Mandriva Linux Installation %s"
-msgstr "Mandriva Linux 安裝程式 %s"
+msgid "%s Installation %s"
+msgstr "%s 安裝 %s"
#: steps_curses.pm:32
#, c-format
msgid "<Tab>/<Alt-Tab> between elements"
msgstr "<Tab>/<Alt-Tab> 在元件間移動"
-#: steps_gtk.pm:189
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr "Xorg 伺服器的啟動較為緩慢。請稍候..."
+
+#: steps_gtk.pm:216
#, c-format
msgid ""
"Your system is low on resources. You may have some problem installing\n"
-"Mandriva Linux. If that occurs, you can try a text install instead. For "
-"this,\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
"press `F1' when booting on CDROM, then enter `text'."
msgstr ""
-"您的系統資源太少,可能會在安裝 Mandriva Linux 過程中遇到問題。\n"
-"若是真的發生問題,您或許可以改用文字模式的安裝方式來取代。\n"
-"要如此作的話,請在光碟開機時按下 `F1',然後輸入 `text'。"
+"您的系統資源不足,可能在安裝 %s 時會發生問題。如果真的發生問題,您可以試著改"
+"用文字介面安裝。只要在用光碟開機後的選單中按下 F1,並輸入 text 即可。"
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr "選擇安裝媒體"
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr "安裝 %s Plasma 桌面"
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr "安裝 %s GNOME 桌面系統"
-#: steps_gtk.pm:256 steps_interactive.pm:435 steps_interactive.pm:564
-#: steps_list.pm:30
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr "自訂安裝"
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr "Plasma 桌面"
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr "Gnome 桌面"
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr "自訂桌面"
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr "這是 '%s' 桌面的預覽。"
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr "在影像上點選以觀看較大的預覽畫面"
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
#, c-format
msgid "Package Group Selection"
-msgstr "套件群組選擇"
+msgstr "軟體套件群組選擇"
-#: steps_gtk.pm:277 steps_interactive.pm:581
+#: steps_gtk.pm:354 steps_interactive.pm:626
#, c-format
msgid "Individual package selection"
-msgstr "選取單一套件"
+msgstr "個別軟體套件選取"
-#: steps_gtk.pm:299 steps_interactive.pm:507
+#: steps_gtk.pm:361
#, c-format
-msgid "Total size: %d / %d MB"
-msgstr "總共大小: %d / %d MB"
+msgid "Unselect All"
+msgstr "取消選取所有項目"
-#: steps_gtk.pm:344
+#: steps_gtk.pm:380 steps_interactive.pm:538
#, c-format
-msgid "Bad package"
-msgstr "壞掉的套件"
+msgid "Total size: %d / %d MB"
+msgstr "總共大小: %d / %d MB"
-#: steps_gtk.pm:346
+#: steps_gtk.pm:425
#, c-format
msgid "Version: "
msgstr "版本:"
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "Size: "
msgstr "大小:"
-#: steps_gtk.pm:347
+#: steps_gtk.pm:426
#, c-format
msgid "%d KB\n"
msgstr "%d KB\n"
-#: steps_gtk.pm:348
+#: steps_gtk.pm:427
#, c-format
msgid "Importance: "
msgstr "重要性:"
-#: steps_gtk.pm:382
+#: steps_gtk.pm:462
#, c-format
-msgid "You can not select/unselect this package"
-msgstr "您不可以選擇/取消選擇這個套件"
+msgid "You cannot select/unselect this package"
+msgstr "您不可以選擇/取消選擇這個軟體套件"
-#: steps_gtk.pm:386
+#: steps_gtk.pm:466
#, c-format
msgid "due to missing %s"
msgstr "因為遺失 %s"
-#: steps_gtk.pm:387
+#: steps_gtk.pm:467
#, c-format
msgid "due to unsatisfied %s"
msgstr "由於沒有滿足 %s"
-#: steps_gtk.pm:388
+#: steps_gtk.pm:468
#, c-format
msgid "trying to promote %s"
msgstr "正在嘗試促進 %s"
-#: steps_gtk.pm:389
+#: steps_gtk.pm:469
#, c-format
msgid "in order to keep %s"
-msgstr "為了要保留 %s"
+msgstr "為了保留 %s"
-#: steps_gtk.pm:394
+#: steps_gtk.pm:474
#, c-format
msgid ""
-"You can not select this package as there is not enough space left to install "
+"You cannot select this package as there is not enough space left to install "
"it"
-msgstr "您不可以選取這個套件,因為剩餘的空間不足以安裝它。"
+msgstr "您不可以選取這個軟體套件,因為剩餘的空間不夠安裝"
-#: steps_gtk.pm:397
+#: steps_gtk.pm:477
#, c-format
msgid "The following packages are going to be installed"
-msgstr "下列的套件將會被安裝上"
+msgstr "下列的軟體套件將會安裝"
-#: steps_gtk.pm:398
+#: steps_gtk.pm:478
#, c-format
msgid "The following packages are going to be removed"
-msgstr "下列的套件將會被移除"
+msgstr "下列的軟體套件將會移除"
-#: steps_gtk.pm:423
+#: steps_gtk.pm:504
#, c-format
-msgid "This is a mandatory package, it can not be unselected"
-msgstr "這是一個必要的套件,您不能不選取它"
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr "這是個強制軟體套件,您不能不選取"
-#: steps_gtk.pm:425
+#: steps_gtk.pm:506
#, c-format
-msgid "You can not unselect this package. It is already installed"
-msgstr "您不能不選這個套件。它已經被安裝上了。"
+msgid "You cannot unselect this package. It is already installed"
+msgstr "您不能不選這個軟體套件。它已經安裝。"
-#: steps_gtk.pm:427
+#: steps_gtk.pm:508
#, c-format
-msgid "You can not unselect this package. It must be upgraded"
-msgstr "您不能不選這個套件,它一定要更新才行。"
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr "您不能不選這個軟體套件。它必須升級"
-#: steps_gtk.pm:431
+#: steps_gtk.pm:512
#, c-format
msgid "Show automatically selected packages"
-msgstr "顯示自動被選取的套件"
+msgstr "顯示自動被選取的軟體套件"
-#: steps_gtk.pm:433
+#: steps_gtk.pm:516
#, c-format
msgid "Install"
msgstr "安裝"
-#: steps_gtk.pm:436
+#: steps_gtk.pm:519
#, c-format
msgid "Load/Save selection"
msgstr "載入/儲存選取"
-#: steps_gtk.pm:437
+#: steps_gtk.pm:520 steps_gtk.pm:525
#, c-format
msgid "Updating package selection"
-msgstr "正在更新套件的選擇"
+msgstr "正在更新軟體套件選擇"
-#: steps_gtk.pm:442
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr "在包的分层列表和平面列表之间切换"
+
+#: steps_gtk.pm:530
#, c-format
msgid "Minimal install"
msgstr "最小安裝"
-#: steps_gtk.pm:456
+#: steps_gtk.pm:543
#, c-format
msgid "Software Management"
-msgstr "軟體套件管理"
+msgstr "軟體管理"
-#: steps_gtk.pm:456 steps_interactive.pm:393
+#: steps_gtk.pm:543 steps_interactive.pm:415
#, c-format
msgid "Choose the packages you want to install"
-msgstr "選擇您想要安裝的套件"
+msgstr "選擇您想要安裝的軟體套件"
-#: steps_gtk.pm:473 steps_interactive.pm:595 steps_list.pm:32
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
#, c-format
msgid "Installing"
msgstr "正在安裝"
-#: steps_gtk.pm:499
+#: steps_gtk.pm:590
#, c-format
msgid "No details"
-msgstr "沒有詳細資訊"
+msgstr "不看詳細資訊"
-#: steps_gtk.pm:514
+#: steps_gtk.pm:610
#, c-format
-msgid "Time remaining "
-msgstr "剩餘時間"
+msgid "Time remaining:"
+msgstr "剩餘時間:"
-#: steps_gtk.pm:515
+#: steps_gtk.pm:611
#, c-format
-msgid "Estimating"
-msgstr "正在估計"
+msgid "(estimating...)"
+msgstr "(正在估計...)"
-#: steps_gtk.pm:542
+#: steps_gtk.pm:637
#, c-format
msgid "%d package"
msgid_plural "%d packages"
-msgstr[0] "%d 個套件"
+msgstr[0] "%d 個軟體套件"
-#: steps_gtk.pm:588 steps_interactive.pm:782 steps_list.pm:43
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
#, c-format
msgid "Summary"
msgstr "總結"
-#: steps_gtk.pm:605
+#: steps_gtk.pm:713
#, c-format
msgid "Configure"
msgstr "設定"
-#: steps_gtk.pm:622 steps_interactive.pm:778 steps_interactive.pm:934
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
#, c-format
msgid "not configured"
msgstr "未被設定"
-#: steps_gtk.pm:658 steps_interactive.pm:278
+#: steps_gtk.pm:773 steps_interactive.pm:315
#, c-format
msgid ""
"The following installation media have been found.\n"
"If you want to skip some of them, you can unselect them now."
msgstr ""
-"已經找到下列的安裝媒介。\n"
+"已經找到下列的安裝媒體。\n"
"如果您想略過它們,您現在可以將它們取消選取。"
-#: steps_gtk.pm:667 steps_interactive.pm:284
+#: steps_gtk.pm:789 steps_interactive.pm:321
#, c-format
msgid ""
-"You have the option to copy the contents of the CDs onto the hard drive "
+"You have the option to copy the contents of the CDs onto the hard disk drive "
"before installation.\n"
-"It will then continue from the hard drive and the packages will remain "
+"It will then continue from the hard disk drive and the packages will remain "
"available once the system is fully installed."
msgstr ""
-"您可以選擇在安裝前將光碟的內容複製到硬碟。稍候將會由硬碟繼續安裝,並且這些套"
-"件\n"
-"在安裝完畢之後仍然可以繼續使用。"
+"您可以選擇在安裝前將光碟的內容複製到硬碟。\n"
+"稍後將會由硬碟繼續安裝,而這些軟體套件在安裝完畢之後仍然可繼續使用。"
-#: steps_gtk.pm:669 steps_interactive.pm:286
+#: steps_gtk.pm:791 steps_interactive.pm:323
#, c-format
msgid "Copy whole CDs"
msgstr "複製整張光碟"
-#: steps_interactive.pm:38
+#: steps_interactive.pm:40
#, c-format
msgid "An error occurred"
msgstr "發生一個錯誤"
-#: steps_interactive.pm:97
+#: steps_interactive.pm:105
#, c-format
-msgid "Please choose your keyboard layout."
+msgid "Please choose your keyboard layout"
msgstr "請選取鍵盤排列的樣式。"
-#: steps_interactive.pm:99
+#: steps_interactive.pm:109
#, c-format
-msgid "Here is the full list of available keyboards"
-msgstr "以下是所有可用的的鍵盤"
+msgid "Here is the full list of available keyboards:"
+msgstr "以下是所有可用的鍵盤清單:"
-#: steps_interactive.pm:129
+#: steps_interactive.pm:153
#, c-format
msgid "Install/Upgrade"
msgstr "安裝/升級"
-#: steps_interactive.pm:130
+#: steps_interactive.pm:157
#, c-format
msgid "Is this an install or an upgrade?"
msgstr "這是安裝或是升級?"
-#: steps_interactive.pm:134
-#, fuzzy, c-format
+#: steps_interactive.pm:159
+#, c-format
msgid ""
"_: This is a noun:\n"
"Install"
msgstr "安裝"
-#: steps_interactive.pm:136
+#: steps_interactive.pm:161
#, c-format
msgid "Upgrade %s"
msgstr "升級 %s"
-#: steps_interactive.pm:140
-#, c-format
-msgid "Upgrade from a 32bit to a 64bit distribution is not supported"
-msgstr "不支援從 32 位元升級至 64 位元的發行版"
-
-#: steps_interactive.pm:144
-#, c-format
-msgid "Upgrade from a 64bit to a 32bit distribution is not supported"
-msgstr "不支援從 64 位元升級至 32 位元的發行版"
-
-#: steps_interactive.pm:158
+#: steps_interactive.pm:184
#, c-format
msgid "Encryption key for %s"
msgstr "加密金鑰於 %s"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:217
#, c-format
-msgid "IDE"
-msgstr "IDE"
+msgid "Cancel installation, reboot system"
+msgstr "取消安裝,重新開機"
-#: steps_interactive.pm:194
+#: steps_interactive.pm:218
#, c-format
-msgid "Configuring IDE"
-msgstr "正在設定 IDE"
+msgid "New Installation"
+msgstr "新的安裝"
-#: steps_interactive.pm:231
+#: steps_interactive.pm:219
#, c-format
-msgid ""
-"No free space for 1MB bootstrap! Install will continue, but to boot your "
-"system, you'll need to create the bootstrap partition in DiskDrake"
-msgstr ""
-"沒有足夠的可用空間安裝 bootstrap!安裝還是會繼續,但是您必須在 DiskDrake\n"
-"中建立 bootstrap 分割來啟動您的系統"
+msgid "Upgrade previous installation (not recommended)"
+msgstr "升級之前的安裝 (不建議)"
-#: steps_interactive.pm:236
+#: steps_interactive.pm:223
#, c-format
msgid ""
-"You'll need to create a PPC PReP Boot bootstrap! Install will continue, but "
-"to boot your system, you'll need to create the bootstrap partition in "
-"DiskDrake"
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
msgstr ""
-"您需要建立一個 PPC PReP 開機 bootstrap!安裝還是會繼續,但是您必須在 "
-"DiskDrake 中建立 bootstrap 分割來啟動您的系統"
+"安裝器偵測到您所安裝的 Mageia Linux 系統無法安全地更新到 %s。\n"
+"\n"
+"建議您重新安裝,而不要用升級的。\n"
+"\n"
+"警告:在您選擇「新安裝」之前,您應該備份您所有的個人資料。"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr "CD/DVD"
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr "設定 CD/DVD"
-#: steps_interactive.pm:328
+#: steps_interactive.pm:354
#, c-format
msgid ""
"Change your Cd-Rom!\n"
@@ -1001,157 +1200,203 @@ msgstr ""
"請插入標示為 \"%s\" 的光碟於您的光碟機中,完成後請按下確定。\n"
"若是您沒有這片光碟,請點選取消以略過這一片光碟的安裝。"
-#: steps_interactive.pm:350
+#: steps_interactive.pm:372 steps_interactive.pm:490
#, c-format
msgid "Looking for available packages..."
-msgstr "正在搜尋可以用的套件..."
+msgstr "正在搜尋可以用的軟體套件..."
-#: steps_interactive.pm:358
+#: steps_interactive.pm:380
#, c-format
msgid ""
-"Your system does not have enough space left for installation or upgrade (%"
-"dMB > %dMB)"
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
msgstr "您的系統剩餘的空間不足以安裝或升級 (%dMB > %dMB)"
-#: steps_interactive.pm:405
+#: steps_interactive.pm:428
#, c-format
msgid ""
"Please choose load or save package selection.\n"
"The format is the same as auto_install generated files."
msgstr ""
-"請選擇要載入或者儲存套件選擇到磁片上。\n"
-"它使用與自動安裝所產生的磁片相同的格式。"
+"請選擇要載入或者儲存的軟體套件。\n"
+"它使用與自動安裝所產生的檔案相同的格式。"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Load"
msgstr "載入"
-#: steps_interactive.pm:407
+#: steps_interactive.pm:430
#, c-format
msgid "Save"
msgstr "儲存"
-#: steps_interactive.pm:415
+#: steps_interactive.pm:438
#, c-format
msgid "Bad file"
msgstr "損壞的檔案"
-#: steps_interactive.pm:431
+#: steps_interactive.pm:455
#, c-format
-msgid "Install Mandriva KDE Desktop"
-msgstr "安裝 Mandriva KDE 桌面"
+msgid "Plasma"
+msgstr "Plasma"
-#: steps_interactive.pm:432
+#: steps_interactive.pm:456
#, c-format
-msgid "Install Mandriva GNOME Desktop"
-msgstr "安裝 Mandriva GNOME 桌面"
+msgid "GNOME"
+msgstr "GNOME"
-#: steps_interactive.pm:433
+#: steps_interactive.pm:459
#, c-format
-msgid "Custom install"
-msgstr "自訂安裝"
+msgid "Desktop Selection"
+msgstr "桌面環境選擇"
-#: steps_interactive.pm:436
+#: steps_interactive.pm:460
#, c-format
-msgid "You can choose your workstation desktop profile: KDE, GNOME or Custom"
-msgstr "您可以選擇您的工作站的桌面設定檔:KDE, GNOME 或自訂"
+msgid "You can choose your workstation desktop profile."
+msgstr "您可以選擇您工作站的桌面環境:"
-#: steps_interactive.pm:521
+#: steps_interactive.pm:552
#, c-format
msgid "Selected size is larger than available space"
msgstr "所選取的大小超過可用的空間"
-#: steps_interactive.pm:536
+#: steps_interactive.pm:576
#, c-format
msgid "Type of install"
msgstr "安裝類型"
-#: steps_interactive.pm:537
+#: steps_interactive.pm:577
#, c-format
msgid ""
"You have not selected any group of packages.\n"
"Please choose the minimal installation you want:"
msgstr ""
-"您並未選取任何套件群組。\n"
+"您並未選取任何軟體套件群組。\n"
"請選擇您想要的最小安裝:"
-#: steps_interactive.pm:540
+#: steps_interactive.pm:582
#, c-format
msgid "With X"
msgstr "包含 X 環境"
-#: steps_interactive.pm:541
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr "安裝建議的軟體套件"
+
+#: steps_interactive.pm:584
#, c-format
msgid "With basic documentation (recommended!)"
msgstr "包含基本的說明文件 (建議的!)"
-#: steps_interactive.pm:542
+#: steps_interactive.pm:585
#, c-format
msgid "Truly minimal install (especially no urpmi)"
msgstr "真正最小安裝 (尤其無 urpmi)"
-#: steps_interactive.pm:596
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr "正在準備升級..."
+
+#: steps_interactive.pm:647
#, c-format
msgid "Preparing installation"
msgstr "正在準備安裝"
-#: steps_interactive.pm:604
+#: steps_interactive.pm:655
#, c-format
msgid "Installing package %s"
-msgstr "正在安裝套件 %s"
+msgstr "正在安裝軟體套件 %s"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "There was an error ordering packages:"
-msgstr "排列套件時發生錯誤:"
+msgstr "排列軟體套件時發生錯誤:"
-#: steps_interactive.pm:628
+#: steps_interactive.pm:679
#, c-format
msgid "Go on anyway?"
msgstr "無論如何都要繼續嗎?"
-#: steps_interactive.pm:632
+#: steps_interactive.pm:683
#, c-format
msgid "Retry"
msgstr "重試"
-#: steps_interactive.pm:633
+#: steps_interactive.pm:684
#, c-format
msgid "Skip this package"
-msgstr "略過這個套件"
+msgstr "略過這個軟體套件"
-#: steps_interactive.pm:634
+#: steps_interactive.pm:685
#, c-format
msgid "Skip all packages from medium \"%s\""
-msgstr "略過所有 %s 媒體的套件"
+msgstr "略過所有 %s 媒體的軟體套件"
-#: steps_interactive.pm:635
+#: steps_interactive.pm:686
#, c-format
msgid "Go back to media and packages selection"
-msgstr "回到媒體與套件選擇"
+msgstr "回到媒體與軟體套件選擇"
-#: steps_interactive.pm:638
+#: steps_interactive.pm:689
#, c-format
msgid "There was an error installing package %s."
-msgstr "安裝 %s 套件時發生錯誤。"
+msgstr "安裝 %s 軟體套件時發生錯誤。"
-#: steps_interactive.pm:656
+#: steps_interactive.pm:708
#, c-format
msgid "Post-install configuration"
msgstr "安裝後的設定"
-#: steps_interactive.pm:663
+#: steps_interactive.pm:715
#, c-format
msgid "Please ensure the Update Modules media is in drive %s"
-msgstr "請確定更新模組媒介位於磁碟機 %s 中"
+msgstr "請確定更新模組媒體位於磁碟機 %s 中"
-#: steps_interactive.pm:691 steps_list.pm:47
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
#, c-format
msgid "Updates"
msgstr "更新"
-#: steps_interactive.pm:692
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr "您現在有機會設定線上媒體來源。"
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr "這能讓您安裝安全更新。"
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+"要設定這些來源,您需要有可運作的網路連線。\n"
+"您想要設定更新來源嗎?"
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr "无法安装此引导加载程序"
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr "重試?"
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr "新增媒體時發生錯誤"
+
+#: steps_interactive.pm:792
#, c-format
msgid ""
"You now have the opportunity to download updated packages. These packages\n"
@@ -1163,152 +1408,104 @@ msgid ""
"\n"
"Do you want to install the updates?"
msgstr ""
-"您現在有機會下載更新套件。這些套件在發行版釋放之後已經被更新過了。\n"
+"您現在有機會下載更新軟體套件。這些軟體套件在散布版發行之後已經被更新過了。\n"
"他們或許有安全性或臭蟲修正。\n"
"\n"
-"要下載這些套件,您需要有正常運作的網際網路連線。\n"
+"要下載這些軟體套件,您需要有正常運作的網際網路連線。\n"
"\n"
"您想要安裝更新嗎?"
-#: steps_interactive.pm:713
-#, c-format
-msgid "Contacting the mirror to get the list of available packages..."
-msgstr "聯繫映射站台以取得可用的程式套件列表..."
-
-#: steps_interactive.pm:719
-#, c-format
-msgid "Unable to contact mirror %s"
-msgstr "無法聯繫映射站台 %s"
-
-#. -PO: example: lilo-graphic on /dev/hda1
-#: steps_interactive.pm:825
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
#, c-format
msgid "%s on %s"
msgstr "%2$s 上的 %1$s"
-#: steps_interactive.pm:859 steps_interactive.pm:866 steps_interactive.pm:880
-#: steps_interactive.pm:898 steps_interactive.pm:913
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
#, c-format
msgid "Hardware"
msgstr "硬體"
-#: steps_interactive.pm:881 steps_interactive.pm:899
+#: steps_interactive.pm:958
#, c-format
msgid "Sound card"
msgstr "音效卡"
-#: steps_interactive.pm:902
-#, c-format
-msgid "Do you have an ISA sound card?"
-msgstr "您有 ISA 音效卡嗎?"
-
-#: steps_interactive.pm:904
-#, c-format
-msgid ""
-"Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound "
-"card"
-msgstr "請在安裝完畢後,執行 \"alsaconf\" 或 \"sndconfig\" 來設定您的音效卡"
-
-#: steps_interactive.pm:906
-#, c-format
-msgid "No sound card detected. Try \"harddrake\" after installation"
-msgstr "沒偵測到任何音效卡。請在安裝後嘗試 \"harddrake\" 進行設定"
-
-#: steps_interactive.pm:914
+#: steps_interactive.pm:972
#, c-format
msgid "Graphical interface"
msgstr "圖形介面"
-#: steps_interactive.pm:921 steps_interactive.pm:932
+#: steps_interactive.pm:978 steps_interactive.pm:990
#, c-format
msgid "Network & Internet"
msgstr "網路與網際網路"
-#: steps_interactive.pm:933
+#: steps_interactive.pm:991
#, c-format
msgid "Proxies"
msgstr "代理伺服器"
-#: steps_interactive.pm:934
+#: steps_interactive.pm:992
#, c-format
msgid "configured"
msgstr "已設定"
-#: steps_interactive.pm:944
+#: steps_interactive.pm:1002
#, c-format
msgid "Security Level"
msgstr "安全層級"
-#: steps_interactive.pm:963
+#: steps_interactive.pm:1022
#, c-format
msgid "Firewall"
msgstr "防火牆"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "activated"
msgstr "已啟用"
-#: steps_interactive.pm:967
+#: steps_interactive.pm:1026
#, c-format
msgid "disabled"
msgstr "已停用"
-#: steps_interactive.pm:981
+#: steps_interactive.pm:1041
#, c-format
msgid "You have not configured X. Are you sure you really want this?"
msgstr "您尚未設定 X。您確定您真的要這樣做?"
-#: steps_interactive.pm:1008
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
#, c-format
-msgid "Preparing bootloader..."
-msgstr "正在準備開機載入程式..."
+msgid "Preparing initial startup program..."
+msgstr "正在準備初始化啟動程式..."
-#: steps_interactive.pm:1018
-#, c-format
-msgid ""
-"You appear to have an OldWorld or Unknown machine, the yaboot bootloader "
-"will not work for you. The install will continue, but you'll need to use "
-"BootX or some other means to boot your machine. The kernel argument for the "
-"root fs is: root=%s"
-msgstr ""
-"您的系統似乎有 OldWorld 或者是其他不認識的機器,\n"
-"這將會導致 yaboot 開機載入器無法正常運作。\n"
-"安裝還是會繼續下去,不過您將需要使用 bootX 或某些其他方法來啟動您的機器。"
-"root fs 的核心參數是:root=%s"
-
-#: steps_interactive.pm:1024
-#, c-format
-msgid "Do you want to use aboot?"
-msgstr "您要使用 aboot 嗎?"
-
-#: steps_interactive.pm:1027
+#: steps_interactive.pm:1073
#, c-format
-msgid ""
-"Error installing aboot, \n"
-"try to force installation even if that destroys the first partition?"
-msgstr ""
-"安裝 aboot 時發生錯誤,\n"
-"您要冒著可能毀損第一個分割區的危險強制安裝嗎?"
+msgid "Be patient, this may take a while..."
+msgstr "請耐心等候,這要花一些時間..."
-#: steps_interactive.pm:1039
+#: steps_interactive.pm:1089
#, c-format
msgid ""
"In this security level, access to the files in the Windows partition is "
"restricted to the administrator."
msgstr "在這個安全層級中,只有管理者能夠存取位於 Windows 分割區的檔案。"
-#: steps_interactive.pm:1071
+#: steps_interactive.pm:1121
#, c-format
msgid "Insert a blank floppy in drive %s"
msgstr "請在 %s 中插入一片空白磁片"
-#: steps_interactive.pm:1073
+#: steps_interactive.pm:1123
#, c-format
msgid "Creating auto install floppy..."
msgstr "正在製作自動安裝磁片..."
-#: steps_interactive.pm:1084
+#: steps_interactive.pm:1134
#, c-format
msgid ""
"Some steps are not completed.\n"
@@ -1319,51 +1516,16 @@ msgstr ""
"\n"
"您確定要結束安裝程式?"
-#: steps_interactive.pm:1094
+#: steps_interactive.pm:1144
#, c-format
msgid "Congratulations"
msgstr "恭喜"
-#: steps_interactive.pm:1098
+#: steps_interactive.pm:1147
#, c-format
msgid "Reboot"
msgstr "重新開機"
-#: steps_interactive.pm:1102 steps_interactive.pm:1103
-#, c-format
-msgid "Generate auto install floppy"
-msgstr "製作自動安裝磁片"
-
-#: steps_interactive.pm:1104
-#, c-format
-msgid ""
-"The auto install can be fully automated if wanted,\n"
-"in that case it will take over the hard drive!!\n"
-"(this is meant for installing on another box).\n"
-"\n"
-"You may prefer to replay the installation.\n"
-msgstr ""
-"需要的話,自動安裝可以完全自動化的安裝系統,在這種\n"
-"情況下它將接管硬碟!\n"
-"(這是設計來安裝於另一台機器上的)。\n"
-"\n"
-"您可以重演安裝過程。\n"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Replay"
-msgstr "重播"
-
-#: steps_interactive.pm:1109
-#, c-format
-msgid "Automated"
-msgstr "自動化"
-
-#: steps_interactive.pm:1112
-#, c-format
-msgid "Save packages selection"
-msgstr "儲存套件選擇"
-
#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
#: steps_list.pm:16
#, c-format
@@ -1438,7 +1600,7 @@ msgstr "正在格式化"
msgid ""
"_: Keep these entry short\n"
"Choosing packages"
-msgstr "選取程式套件"
+msgstr "選取軟體套件"
#: steps_list.pm:31
#, c-format
@@ -1454,13 +1616,6 @@ msgid ""
"Users"
msgstr "使用者"
-#: steps_list.pm:36 steps_list.pm:37
-#, c-format
-msgid ""
-"_: Keep these entry short\n"
-"Networking"
-msgstr "網路"
-
#: steps_list.pm:38 steps_list.pm:39
#, c-format
msgid ""
@@ -1502,114 +1657,3 @@ msgid ""
"_: Keep these entry short\n"
"Exit"
msgstr "離開"
-
-#~ msgid "All"
-#~ msgstr "全部"
-
-#~ msgid "TV card"
-#~ msgstr "電視卡"
-
-#~ msgid "Boot"
-#~ msgstr "開機"
-
-#~ msgid ""
-#~ "_: Keep these entry short\n"
-#~ "Authentication"
-#~ msgstr "認證方式"
-
-#~ msgid "Arkeia"
-#~ msgstr "Arkeia"
-
-#~ msgid "Flatout"
-#~ msgstr "Flatout"
-
-#~ msgid "Gwenview"
-#~ msgstr "Gwenview"
-
-#~ msgid "3D"
-#~ msgstr "3D"
-
-#~ msgid "CMS"
-#~ msgstr "CMS"
-
-#~ msgid "CRM"
-#~ msgstr "CRM"
-
-#~ msgid "2007 product line"
-#~ msgstr "2007 產品線"
-
-#~ msgid "Invictus Firewall"
-#~ msgstr "Invictus 防火牆"
-
-#~ msgid "Discovery Live Mode"
-#~ msgstr "Discovery Live 模式"
-
-#~ msgid "How to register"
-#~ msgstr "如何註冊"
-
-#~ msgid "Rpmdrake 2"
-#~ msgstr "Rpmdrake 2"
-
-#~ msgid "Mandriva Online Services"
-#~ msgstr "Mandriva Online 服務"
-
-#~ msgid "New Theme"
-#~ msgstr "新的佈景主題"
-
-#~ msgid "Web 2.0"
-#~ msgstr "Web 2.0"
-
-#~ msgid "Kaspersky"
-#~ msgstr "Kaspersky"
-
-#~ msgid "LinDVD"
-#~ msgstr "LinDVD"
-
-#~ msgid "Skype"
-#~ msgstr "Skype"
-
-#~ msgid "Transgaming/Cedega"
-#~ msgstr "Transgaming/Cedega"
-
-#~ msgid "DrakVPN"
-#~ msgstr "DrakVPN"
-
-#~ msgid "(%d package, %d MB)"
-#~ msgid_plural "(%d packages, %d MB)"
-#~ msgstr[0] "(%d 個套件,共 %d MB)"
-
-#~ msgid "%d packages"
-#~ msgstr "%d 個套件"
-
-#~ msgid "Language"
-#~ msgstr "語言"
-
-#~ msgid "License"
-#~ msgstr "授權"
-
-#~ msgid "Installation class"
-#~ msgstr "安裝類別"
-
-#~ msgid "Formatting"
-#~ msgstr "正在格式化"
-
-#~ msgid "Choosing packages"
-#~ msgstr "選取程式套件"
-
-#~ msgid "Users"
-#~ msgstr "使用者"
-
-#~ msgid "Networking"
-#~ msgstr "網路"
-
-#~ msgid "Configure X"
-#~ msgstr "設定 X 環境"
-
-#~ msgid ""
-#~ "Can not access kernel modules corresponding to your kernel (file %s is "
-#~ "missing), this generally means your boot floppy in not in sync with the "
-#~ "Installation medium (please create a newer boot floppy)"
-#~ msgstr ""
-#~ "無法存取對應您的核心的核心模組 (檔案 %s 遺失),這一般表示您的開機軟片不同"
-#~ "步於\n"
-#~ "安裝媒介 (請建立一個更新的開機磁片)"
diff --git a/perl-install/install/share/po/zu.po b/perl-install/install/share/po/zu.po
new file mode 100644
index 000000000..884dd0f8c
--- /dev/null
+++ b/perl-install/install/share/po/zu.po
@@ -0,0 +1,1608 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+msgid ""
+msgstr ""
+"Project-Id-Version: Mageia\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2022-11-21 21:16+0000\n"
+"PO-Revision-Date: 2019-06-07 08:35+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Zulu (http://www.transifex.com/MageiaLinux/mageia/language/"
+"zu/)\n"
+"Language: zu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../../advertising/01_IM_mageia.pl:1
+#, c-format
+msgid "Join Us!"
+msgstr ""
+
+#: ../../advertising/02_IM_mageia.pl:1
+#, c-format
+msgid "Make it yours!"
+msgstr ""
+
+#: ../../advertising/03_IM_mageia.pl:1
+#, c-format
+msgid "Your choice!"
+msgstr ""
+
+#: ../../advertising/04_IM_mageia.pl:1
+#, c-format
+msgid "Office tools"
+msgstr ""
+
+#: ../../advertising/05_IM_mageia.pl:1
+#, c-format
+msgid "Home entertainment"
+msgstr ""
+
+#: ../../advertising/06_IM_mageia.pl:1
+#, c-format
+msgid "For kids"
+msgstr ""
+
+#: ../../advertising/07_IM_mageia.pl:1
+#, c-format
+msgid "For family!"
+msgstr ""
+
+#: ../../advertising/08_IM_mageia.pl:1
+#, c-format
+msgid "For developers!"
+msgstr ""
+
+#: ../../advertising/09_IM_mageia.pl:1
+#, c-format
+msgid "Thank you!"
+msgstr ""
+
+#: ../../advertising/10_IM_mageia.pl:1
+#, c-format
+msgid "Be Free!"
+msgstr ""
+
+#: any.pm:151
+#, c-format
+msgid "Do you have further supplementary media?"
+msgstr ""
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:154
+#, c-format
+msgid ""
+"The following media have been found and will be used during install: %s.\n"
+"\n"
+"\n"
+"Do you have a supplementary installation medium to configure?"
+msgstr ""
+
+#: any.pm:162
+#, c-format
+msgid "Network (HTTP)"
+msgstr ""
+
+#: any.pm:163
+#, c-format
+msgid "Network (FTP)"
+msgstr ""
+
+#: any.pm:164
+#, c-format
+msgid "Network (NFS)"
+msgstr ""
+
+#: any.pm:224
+#, c-format
+msgid "NFS setup"
+msgstr ""
+
+#: any.pm:225
+#, c-format
+msgid "Please enter the hostname and directory of your NFS media"
+msgstr ""
+
+#: any.pm:229
+#, c-format
+msgid "Hostname missing"
+msgstr ""
+
+#: any.pm:230
+#, c-format
+msgid "Directory must begin with \"/\""
+msgstr ""
+
+#: any.pm:234
+#, c-format
+msgid "Hostname of the NFS mount ?"
+msgstr ""
+
+#: any.pm:235
+#, c-format
+msgid "Directory"
+msgstr ""
+
+#: any.pm:265
+#, c-format
+msgid "Supplementary"
+msgstr ""
+
+#: any.pm:300
+#, c-format
+msgid ""
+"Can't find a package list file on this mirror. Make sure the location is "
+"correct."
+msgstr ""
+
+#: any.pm:325
+#, c-format
+msgid "Core Release"
+msgstr ""
+
+#: any.pm:327
+#, c-format
+msgid "Tainted Release"
+msgstr ""
+
+#: any.pm:329
+#, c-format
+msgid "Nonfree Release"
+msgstr ""
+
+#: any.pm:367
+#, c-format
+msgid ""
+"Some hardware on your machine needs some non free firmwares in order for the "
+"free software drivers to work."
+msgstr ""
+
+#: any.pm:368
+#, c-format
+msgid "You should enable \"%s\""
+msgstr ""
+
+#: any.pm:419
+#, c-format
+msgid "\"%s\" contains the various pieces of the systems and its applications"
+msgstr ""
+
+#: any.pm:420
+#, c-format
+msgid "\"%s\" contains non free software.\n"
+msgstr ""
+
+#: any.pm:421
+#, c-format
+msgid ""
+"It also contains firmwares needed for certain devices to operate (eg: some "
+"ATI/AMD graphic cards, some network cards, some RAID cards, ...)"
+msgstr ""
+
+#: any.pm:422
+#, c-format
+msgid ""
+"\"%s\" contains software that can not be distributed in every country due to "
+"software patents."
+msgstr ""
+
+#: any.pm:423
+#, c-format
+msgid ""
+"It also contains software from \"%s\" rebuild with additional capabilities."
+msgstr ""
+
+#: any.pm:429
+#, c-format
+msgid "Here you can enable more media if you want."
+msgstr ""
+
+#: any.pm:447
+#, c-format
+msgid "This medium provides package updates for medium \"%s\""
+msgstr ""
+
+#: any.pm:558
+#, c-format
+msgid "Looking at packages already installed..."
+msgstr ""
+
+#: any.pm:593
+#, c-format
+msgid "Finding packages to upgrade..."
+msgstr ""
+
+#: any.pm:612
+#, c-format
+msgid "Removing packages prior to upgrade..."
+msgstr ""
+
+#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
+#: any.pm:850
+#, c-format
+msgid ""
+"The following packages will be removed to allow upgrading your system: %s\n"
+"\n"
+"\n"
+"Do you really want to remove these packages?\n"
+msgstr ""
+
+#: any.pm:1075
+#, c-format
+msgid "Error reading file %s"
+msgstr ""
+
+#: any.pm:1283
+#, c-format
+msgid "The following disk(s) were renamed:"
+msgstr ""
+
+#: any.pm:1285
+#, c-format
+msgid "%s (previously named as %s)"
+msgstr ""
+
+#: any.pm:1342
+#, c-format
+msgid "HTTP"
+msgstr ""
+
+#: any.pm:1342
+#, c-format
+msgid "FTP"
+msgstr ""
+
+#: any.pm:1342
+#, c-format
+msgid "NFS"
+msgstr ""
+
+#: any.pm:1361 steps_interactive.pm:979
+#, c-format
+msgid "Network"
+msgstr ""
+
+#: any.pm:1365
+#, c-format
+msgid "Please choose a media"
+msgstr ""
+
+#: any.pm:1381
+#, c-format
+msgid "File already exists. Overwrite it?"
+msgstr ""
+
+#: any.pm:1385
+#, c-format
+msgid "Permission denied"
+msgstr ""
+
+#: any.pm:1433
+#, c-format
+msgid "Bad NFS name"
+msgstr ""
+
+#: any.pm:1454
+#, c-format
+msgid "Bad media %s"
+msgstr ""
+
+#: any.pm:1498
+#, c-format
+msgid "Cannot make screenshots before partitioning"
+msgstr ""
+
+#: any.pm:1509
+#, c-format
+msgid "Screenshots will be available after install in %s"
+msgstr ""
+
+#: gtk.pm:134
+#, c-format
+msgid "Installation"
+msgstr ""
+
+#: gtk.pm:138 share/meta-task/compssUsers.pl:48
+#, c-format
+msgid "Configuration"
+msgstr ""
+
+#: install2.pm:220
+#, c-format
+msgid "You must also format %s"
+msgstr ""
+
+#: interactive.pm:16
+#, c-format
+msgid ""
+"Some hardware on your computer needs ``proprietary'' drivers to work.\n"
+"You can find some information about them at: %s"
+msgstr ""
+
+#: interactive.pm:22
+#, c-format
+msgid "Bringing up the network"
+msgstr ""
+
+#: interactive.pm:27
+#, c-format
+msgid "Bringing down the network"
+msgstr ""
+
+#: media.pm:397
+#, c-format
+msgid "Please wait, retrieving file"
+msgstr ""
+
+#: media.pm:704
+#, c-format
+msgid "unable to add medium"
+msgstr ""
+
+#: media.pm:744
+#, c-format
+msgid "Copying some packages on disks for future use"
+msgstr ""
+
+#: media.pm:797
+#, c-format
+msgid "Copying in progress"
+msgstr ""
+
+#: pkgs.pm:32
+#, c-format
+msgid "must have"
+msgstr ""
+
+#: pkgs.pm:33
+#, c-format
+msgid "important"
+msgstr ""
+
+#: pkgs.pm:34
+#, c-format
+msgid "very nice"
+msgstr ""
+
+#: pkgs.pm:35
+#, c-format
+msgid "nice"
+msgstr ""
+
+#: pkgs.pm:36
+#, c-format
+msgid "maybe"
+msgstr ""
+
+#: pkgs.pm:103
+#, c-format
+msgid "Getting package information from XML meta-data..."
+msgstr ""
+
+#: pkgs.pm:112
+#, c-format
+msgid "No xml info for medium \"%s\", only partial result for package %s"
+msgstr ""
+
+#: pkgs.pm:120
+#, c-format
+msgid "No description"
+msgstr ""
+
+#: pkgs.pm:290
+#, c-format
+msgid ""
+"Some packages requested by %s cannot be installed:\n"
+"%s"
+msgstr ""
+
+#: pkgs.pm:386 pkgs.pm:413
+#, c-format
+msgid "An error occurred:"
+msgstr ""
+
+#: pkgs.pm:405
+#, c-format
+msgid "A fatal error occurred: %s."
+msgstr ""
+
+#: pkgs.pm:912 pkgs.pm:954
+#, c-format
+msgid "Do not ask again"
+msgstr ""
+
+#: pkgs.pm:928
+#, c-format
+msgid "%d installation transactions failed"
+msgstr ""
+
+#: pkgs.pm:929
+#, c-format
+msgid "Installation of packages failed:"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:16
+#, c-format
+msgid "Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:18
+#, c-format
+msgid "Office Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:20
+#, c-format
+msgid ""
+"Office programs: wordprocessors (LibreOffice Writer, Kword), spreadsheets "
+"(LibreOffice Calc, Kspread), PDF viewers, etc"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:26
+#, c-format
+msgid "Game station"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:27
+#, c-format
+msgid "Amusement programs: arcade, boards, strategy, etc"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:30
+#, c-format
+msgid "Multimedia station"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:31
+#, c-format
+msgid "Sound and video playing/editing programs"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:36
+#, c-format
+msgid "Internet station"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:37
+#, c-format
+msgid ""
+"Set of tools to read and send mail and news (mutt, tin..) and to browse the "
+"Web"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:42
+#, c-format
+msgid "Network Computer (client)"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:43
+#, c-format
+msgid "Clients for different protocols including ssh"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:49
+#, c-format
+msgid "Tools to ease the configuration of your computer"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:53
+#, c-format
+msgid "Console Tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:54
+#, c-format
+msgid "Editors, shells, file tools, terminals"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:58 share/meta-task/compssUsers.pl:201
+#: share/meta-task/compssUsers.pl:203
+#, c-format
+msgid "Development"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:59 share/meta-task/compssUsers.pl:204
+#, c-format
+msgid "C and C++ development libraries, programs and include files"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:63 share/meta-task/compssUsers.pl:208
+#, c-format
+msgid "Documentation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:64 share/meta-task/compssUsers.pl:209
+#, c-format
+msgid "Books and Howto's on Linux and Free Software"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:68 share/meta-task/compssUsers.pl:212
+#, c-format
+msgid "LSB"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:69 share/meta-task/compssUsers.pl:213
+#, c-format
+msgid "Linux Standard Base. Third party applications support"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:79
+#, c-format
+msgid "Web Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:80
+#, c-format
+msgid "Apache"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:84
+#, c-format
+msgid "Groupware"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:85
+#, c-format
+msgid "Kolab Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:88 share/meta-task/compssUsers.pl:138
+#, c-format
+msgid "Firewall/Router"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:89 share/meta-task/compssUsers.pl:139
+#, c-format
+msgid "Internet gateway"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:92
+#, c-format
+msgid "Mail/News"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:93
+#, c-format
+msgid "Postfix mail server, Inn news server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:97
+#, c-format
+msgid "Directory Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:102
+#, c-format
+msgid "FTP Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:103
+#, c-format
+msgid "ProFTPd"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:107
+#, c-format
+msgid "DNS/NIS"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:108
+#, c-format
+msgid "Domain Name and Network Information Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:112
+#, c-format
+msgid "File and Printer Sharing Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:113
+#, c-format
+msgid "NFS Server, Samba server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:117 share/meta-task/compssUsers.pl:133
+#, c-format
+msgid "Database"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:118
+#, c-format
+msgid "PostgreSQL and MariaDB Database Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:123
+#, c-format
+msgid "Web/FTP"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:124
+#, c-format
+msgid "Apache, Pro-ftpd"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:128
+#, c-format
+msgid "Mail"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:129
+#, c-format
+msgid "Postfix mail server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:134
+#, c-format
+msgid "PostgreSQL or MariaDB database server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:142
+#, c-format
+msgid "Network Computer server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:143
+#, c-format
+msgid "NFS server, SMB server, Proxy server, ssh server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:150
+#, c-format
+msgid "Graphical Environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:152
+#, c-format
+msgid "Plasma Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:153
+#, c-format
+msgid ""
+"The K Desktop Environment, the basic graphical environment with a collection "
+"of accompanying tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:158
+#, c-format
+msgid "GNOME Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:159 share/meta-task/compssUsers.pl:170
+#, c-format
+msgid ""
+"A graphical environment with user-friendly set of applications and desktop "
+"tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:164
+#, c-format
+msgid "Xfce Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:165
+#, c-format
+msgid ""
+"A lighter graphical environment with user-friendly set of applications and "
+"desktop tools"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:169
+#, c-format
+msgid "MATE Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:174
+#, c-format
+msgid "Cinnamon Workstation"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:175
+#, c-format
+msgid "A graphical environment based on GNOME"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:179
+#, c-format
+msgid "LXQt Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:181
+#, c-format
+msgid "A next generation QT port of the lightweight desktop environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:184
+#, c-format
+msgid "Enlightenment Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:186
+#, c-format
+msgid "A lightweight fast graphical environment with a dedicated following"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:189
+#, c-format
+msgid "LXDE Desktop"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:191
+#, c-format
+msgid "A lightweight fast graphical environment"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:194
+#, c-format
+msgid "Other Graphical Desktops"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:195
+#, c-format
+msgid "Window Maker, Fvwm, etc"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:218
+#, c-format
+msgid "Utilities"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:220 share/meta-task/compssUsers.pl:221
+#, c-format
+msgid "SSH Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:225
+#, c-format
+msgid "Webmin"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:226
+#, c-format
+msgid "Webmin Remote Configuration Server"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:230
+#, c-format
+msgid "Network Utilities/Monitoring"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:231
+#, c-format
+msgid "Monitoring tools, processes accounting, tcpdump, nmap, ..."
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:235
+#, c-format
+msgid "Mageia Wizards"
+msgstr ""
+
+#: share/meta-task/compssUsers.pl:236
+#, c-format
+msgid "Wizards to configure server"
+msgstr ""
+
+#: steps.pm:85
+#, c-format
+msgid ""
+"An error occurred, but I do not know how to handle it nicely.\n"
+"Continue at your own risk."
+msgstr ""
+
+#: steps.pm:469
+#, c-format
+msgid ""
+"Some important packages did not get installed properly.\n"
+"Either your cdrom drive or your cdrom is defective.\n"
+"Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm"
+"\"\n"
+msgstr ""
+
+#: steps_auto_install.pm:71 steps_stdio.pm:27
+#, c-format
+msgid "Entering step `%s'\n"
+msgstr ""
+
+#: steps_curses.pm:22
+#, c-format
+msgid "%s Installation %s"
+msgstr ""
+
+#: steps_curses.pm:32
+#, c-format
+msgid "<Tab>/<Alt-Tab> between elements"
+msgstr ""
+
+#: steps_gtk.pm:151
+#, c-format
+msgid "Xorg server is slow to start. Please wait..."
+msgstr ""
+
+#: steps_gtk.pm:216
+#, c-format
+msgid ""
+"Your system is low on resources. You may have some problem installing\n"
+"%s. If that occurs, you can try a text install instead. For this,\n"
+"press `F1' when booting on CDROM, then enter `text'."
+msgstr ""
+
+#: steps_gtk.pm:246 steps_gtk.pm:764
+#, c-format
+msgid "Media Selection"
+msgstr ""
+
+#: steps_gtk.pm:257
+#, c-format
+msgid "Install %s Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:258
+#, c-format
+msgid "Install %s GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:259
+#, c-format
+msgid "Custom install"
+msgstr ""
+
+#: steps_gtk.pm:280
+#, c-format
+msgid "Plasma Desktop"
+msgstr ""
+
+#: steps_gtk.pm:281
+#, c-format
+msgid "GNOME Desktop"
+msgstr ""
+
+#: steps_gtk.pm:282
+#, c-format
+msgid "Custom Desktop"
+msgstr ""
+
+#: steps_gtk.pm:288
+#, c-format
+msgid "Here's a preview of the '%s' desktop."
+msgstr ""
+
+#: steps_gtk.pm:315
+#, c-format
+msgid "Click on images in order to see a bigger preview"
+msgstr ""
+
+#: steps_gtk.pm:331 steps_interactive.pm:609 steps_list.pm:30
+#, c-format
+msgid "Package Group Selection"
+msgstr ""
+
+#: steps_gtk.pm:354 steps_interactive.pm:626
+#, c-format
+msgid "Individual package selection"
+msgstr ""
+
+#: steps_gtk.pm:361
+#, c-format
+msgid "Unselect All"
+msgstr ""
+
+#: steps_gtk.pm:380 steps_interactive.pm:538
+#, c-format
+msgid "Total size: %d / %d MB"
+msgstr ""
+
+#: steps_gtk.pm:425
+#, c-format
+msgid "Version: "
+msgstr ""
+
+#: steps_gtk.pm:426
+#, c-format
+msgid "Size: "
+msgstr ""
+
+#: steps_gtk.pm:426
+#, c-format
+msgid "%d KB\n"
+msgstr ""
+
+#: steps_gtk.pm:427
+#, c-format
+msgid "Importance: "
+msgstr ""
+
+#: steps_gtk.pm:462
+#, c-format
+msgid "You cannot select/unselect this package"
+msgstr ""
+
+#: steps_gtk.pm:466
+#, c-format
+msgid "due to missing %s"
+msgstr ""
+
+#: steps_gtk.pm:467
+#, c-format
+msgid "due to unsatisfied %s"
+msgstr ""
+
+#: steps_gtk.pm:468
+#, c-format
+msgid "trying to promote %s"
+msgstr ""
+
+#: steps_gtk.pm:469
+#, c-format
+msgid "in order to keep %s"
+msgstr ""
+
+#: steps_gtk.pm:474
+#, c-format
+msgid ""
+"You cannot select this package as there is not enough space left to install "
+"it"
+msgstr ""
+
+#: steps_gtk.pm:477
+#, c-format
+msgid "The following packages are going to be installed"
+msgstr ""
+
+#: steps_gtk.pm:478
+#, c-format
+msgid "The following packages are going to be removed"
+msgstr ""
+
+#: steps_gtk.pm:504
+#, c-format
+msgid "This is a mandatory package, it cannot be unselected"
+msgstr ""
+
+#: steps_gtk.pm:506
+#, c-format
+msgid "You cannot unselect this package. It is already installed"
+msgstr ""
+
+#: steps_gtk.pm:508
+#, c-format
+msgid "You cannot unselect this package. It must be upgraded"
+msgstr ""
+
+#: steps_gtk.pm:512
+#, c-format
+msgid "Show automatically selected packages"
+msgstr ""
+
+#: steps_gtk.pm:516
+#, c-format
+msgid "Install"
+msgstr ""
+
+#: steps_gtk.pm:519
+#, c-format
+msgid "Load/Save selection"
+msgstr ""
+
+#: steps_gtk.pm:520 steps_gtk.pm:525
+#, c-format
+msgid "Updating package selection"
+msgstr ""
+
+#: steps_gtk.pm:524
+#, c-format
+msgid "Toggle between hierarchical and flat package list"
+msgstr ""
+
+#: steps_gtk.pm:530
+#, c-format
+msgid "Minimal install"
+msgstr ""
+
+#: steps_gtk.pm:543
+#, c-format
+msgid "Software Management"
+msgstr ""
+
+#: steps_gtk.pm:543 steps_interactive.pm:415
+#, c-format
+msgid "Choose the packages you want to install"
+msgstr ""
+
+#: steps_gtk.pm:560 steps_interactive.pm:646 steps_list.pm:32
+#, c-format
+msgid "Installing"
+msgstr ""
+
+#: steps_gtk.pm:590
+#, c-format
+msgid "No details"
+msgstr ""
+
+#: steps_gtk.pm:610
+#, c-format
+msgid "Time remaining:"
+msgstr ""
+
+#: steps_gtk.pm:611
+#, c-format
+msgid "(estimating...)"
+msgstr ""
+
+#: steps_gtk.pm:637
+#, c-format
+msgid "%d package"
+msgid_plural "%d packages"
+msgstr[0] ""
+msgstr[1] ""
+
+#: steps_gtk.pm:694 steps_interactive.pm:856 steps_list.pm:43
+#, c-format
+msgid "Summary"
+msgstr ""
+
+#: steps_gtk.pm:713
+#, c-format
+msgid "Configure"
+msgstr ""
+
+#: steps_gtk.pm:730 steps_interactive.pm:852 steps_interactive.pm:992
+#, c-format
+msgid "not configured"
+msgstr ""
+
+#: steps_gtk.pm:773 steps_interactive.pm:315
+#, c-format
+msgid ""
+"The following installation media have been found.\n"
+"If you want to skip some of them, you can unselect them now."
+msgstr ""
+
+#: steps_gtk.pm:789 steps_interactive.pm:321
+#, c-format
+msgid ""
+"You have the option to copy the contents of the CDs onto the hard disk drive "
+"before installation.\n"
+"It will then continue from the hard disk drive and the packages will remain "
+"available once the system is fully installed."
+msgstr ""
+
+#: steps_gtk.pm:791 steps_interactive.pm:323
+#, c-format
+msgid "Copy whole CDs"
+msgstr ""
+
+#: steps_interactive.pm:40
+#, c-format
+msgid "An error occurred"
+msgstr ""
+
+#: steps_interactive.pm:105
+#, c-format
+msgid "Please choose your keyboard layout"
+msgstr ""
+
+#: steps_interactive.pm:109
+#, c-format
+msgid "Here is the full list of available keyboards:"
+msgstr ""
+
+#: steps_interactive.pm:153
+#, c-format
+msgid "Install/Upgrade"
+msgstr ""
+
+#: steps_interactive.pm:157
+#, c-format
+msgid "Is this an install or an upgrade?"
+msgstr ""
+
+#: steps_interactive.pm:159
+#, c-format
+msgid ""
+"_: This is a noun:\n"
+"Install"
+msgstr ""
+
+#: steps_interactive.pm:161
+#, c-format
+msgid "Upgrade %s"
+msgstr ""
+
+#: steps_interactive.pm:184
+#, c-format
+msgid "Encryption key for %s"
+msgstr ""
+
+#: steps_interactive.pm:217
+#, c-format
+msgid "Cancel installation, reboot system"
+msgstr ""
+
+#: steps_interactive.pm:218
+#, c-format
+msgid "New Installation"
+msgstr ""
+
+#: steps_interactive.pm:219
+#, c-format
+msgid "Upgrade previous installation (not recommended)"
+msgstr ""
+
+#: steps_interactive.pm:223
+#, c-format
+msgid ""
+"Installer has detected that your installed Linux system could not\n"
+"safely be upgraded to %s.\n"
+"\n"
+"New installation replacing your previous one is recommended.\n"
+"\n"
+"Warning : you should backup all your personal data before choosing \"New\n"
+"Installation\"."
+msgstr ""
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "CD/DVD"
+msgstr ""
+
+#: steps_interactive.pm:264
+#, c-format
+msgid "Configuring CD/DVD"
+msgstr ""
+
+#: steps_interactive.pm:354
+#, c-format
+msgid ""
+"Change your Cd-Rom!\n"
+"Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when "
+"done.\n"
+"If you do not have it, press Cancel to avoid installation from this Cd-Rom."
+msgstr ""
+
+#: steps_interactive.pm:372 steps_interactive.pm:490
+#, c-format
+msgid "Looking for available packages..."
+msgstr ""
+
+#: steps_interactive.pm:380
+#, c-format
+msgid ""
+"Your system does not have enough space left for installation or upgrade "
+"(%dMB > %dMB)"
+msgstr ""
+
+#: steps_interactive.pm:428
+#, c-format
+msgid ""
+"Please choose load or save package selection.\n"
+"The format is the same as auto_install generated files."
+msgstr ""
+
+#: steps_interactive.pm:430
+#, c-format
+msgid "Load"
+msgstr ""
+
+#: steps_interactive.pm:430
+#, c-format
+msgid "Save"
+msgstr ""
+
+#: steps_interactive.pm:438
+#, c-format
+msgid "Bad file"
+msgstr ""
+
+#: steps_interactive.pm:455
+#, c-format
+msgid "Plasma"
+msgstr ""
+
+#: steps_interactive.pm:456
+#, c-format
+msgid "GNOME"
+msgstr ""
+
+#: steps_interactive.pm:459
+#, c-format
+msgid "Desktop Selection"
+msgstr ""
+
+#: steps_interactive.pm:460
+#, c-format
+msgid "You can choose your workstation desktop profile."
+msgstr ""
+
+#: steps_interactive.pm:552
+#, c-format
+msgid "Selected size is larger than available space"
+msgstr ""
+
+#: steps_interactive.pm:576
+#, c-format
+msgid "Type of install"
+msgstr ""
+
+#: steps_interactive.pm:577
+#, c-format
+msgid ""
+"You have not selected any group of packages.\n"
+"Please choose the minimal installation you want:"
+msgstr ""
+
+#: steps_interactive.pm:582
+#, c-format
+msgid "With X"
+msgstr ""
+
+#: steps_interactive.pm:583
+#, c-format
+msgid "Install recommended packages"
+msgstr ""
+
+#: steps_interactive.pm:584
+#, c-format
+msgid "With basic documentation (recommended!)"
+msgstr ""
+
+#: steps_interactive.pm:585
+#, c-format
+msgid "Truly minimal install (especially no urpmi)"
+msgstr ""
+
+#: steps_interactive.pm:637
+#, c-format
+msgid "Preparing upgrade..."
+msgstr ""
+
+#: steps_interactive.pm:647
+#, c-format
+msgid "Preparing installation"
+msgstr ""
+
+#: steps_interactive.pm:655
+#, c-format
+msgid "Installing package %s"
+msgstr ""
+
+#: steps_interactive.pm:679
+#, c-format
+msgid "There was an error ordering packages:"
+msgstr ""
+
+#: steps_interactive.pm:679
+#, c-format
+msgid "Go on anyway?"
+msgstr ""
+
+#: steps_interactive.pm:683
+#, c-format
+msgid "Retry"
+msgstr ""
+
+#: steps_interactive.pm:684
+#, c-format
+msgid "Skip this package"
+msgstr ""
+
+#: steps_interactive.pm:685
+#, c-format
+msgid "Skip all packages from medium \"%s\""
+msgstr ""
+
+#: steps_interactive.pm:686
+#, c-format
+msgid "Go back to media and packages selection"
+msgstr ""
+
+#: steps_interactive.pm:689
+#, c-format
+msgid "There was an error installing package %s."
+msgstr ""
+
+#: steps_interactive.pm:708
+#, c-format
+msgid "Post-install configuration"
+msgstr ""
+
+#: steps_interactive.pm:715
+#, c-format
+msgid "Please ensure the Update Modules media is in drive %s"
+msgstr ""
+
+#: steps_interactive.pm:743 steps_interactive.pm:791 steps_list.pm:47
+#, c-format
+msgid "Updates"
+msgstr ""
+
+#: steps_interactive.pm:744
+#, c-format
+msgid "You now have the opportunity to setup online media."
+msgstr ""
+
+#: steps_interactive.pm:745
+#, c-format
+msgid "This allows to install security updates."
+msgstr ""
+
+#: steps_interactive.pm:746
+#, c-format
+msgid ""
+"To setup those media, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to setup the update media?"
+msgstr ""
+
+#: steps_interactive.pm:767
+#, c-format
+msgid "That downloader could not be installed"
+msgstr ""
+
+#: steps_interactive.pm:767 steps_interactive.pm:784
+#, c-format
+msgid "Retry?"
+msgstr ""
+
+#: steps_interactive.pm:784
+#, c-format
+msgid "Failure when adding medium"
+msgstr ""
+
+#: steps_interactive.pm:792
+#, c-format
+msgid ""
+"You now have the opportunity to download updated packages. These packages\n"
+"have been updated after the distribution was released. They may\n"
+"contain security or bug fixes.\n"
+"\n"
+"To download these packages, you will need to have a working Internet \n"
+"connection.\n"
+"\n"
+"Do you want to install the updates?"
+msgstr ""
+
+#. -PO: example: grub2-graphic on /dev/sda1
+#: steps_interactive.pm:901
+#, c-format
+msgid "%s on %s"
+msgstr ""
+
+#: steps_interactive.pm:937 steps_interactive.pm:944 steps_interactive.pm:957
+#: steps_interactive.pm:971
+#, c-format
+msgid "Hardware"
+msgstr ""
+
+#: steps_interactive.pm:958
+#, c-format
+msgid "Sound card"
+msgstr ""
+
+#: steps_interactive.pm:972
+#, c-format
+msgid "Graphical interface"
+msgstr ""
+
+#: steps_interactive.pm:978 steps_interactive.pm:990
+#, c-format
+msgid "Network & Internet"
+msgstr ""
+
+#: steps_interactive.pm:991
+#, c-format
+msgid "Proxies"
+msgstr ""
+
+#: steps_interactive.pm:992
+#, c-format
+msgid "configured"
+msgstr ""
+
+#: steps_interactive.pm:1002
+#, c-format
+msgid "Security Level"
+msgstr ""
+
+#: steps_interactive.pm:1022
+#, c-format
+msgid "Firewall"
+msgstr ""
+
+#: steps_interactive.pm:1026
+#, c-format
+msgid "activated"
+msgstr ""
+
+#: steps_interactive.pm:1026
+#, c-format
+msgid "disabled"
+msgstr ""
+
+#: steps_interactive.pm:1041
+#, c-format
+msgid "You have not configured X. Are you sure you really want this?"
+msgstr ""
+
+#. -PO: This is NOT the boot loader (just the kernel initrds)!!!!
+#: steps_interactive.pm:1072
+#, c-format
+msgid "Preparing initial startup program..."
+msgstr ""
+
+#: steps_interactive.pm:1073
+#, c-format
+msgid "Be patient, this may take a while..."
+msgstr ""
+
+#: steps_interactive.pm:1089
+#, c-format
+msgid ""
+"In this security level, access to the files in the Windows partition is "
+"restricted to the administrator."
+msgstr ""
+
+#: steps_interactive.pm:1121
+#, c-format
+msgid "Insert a blank floppy in drive %s"
+msgstr ""
+
+#: steps_interactive.pm:1123
+#, c-format
+msgid "Creating auto install floppy..."
+msgstr ""
+
+#: steps_interactive.pm:1134
+#, c-format
+msgid ""
+"Some steps are not completed.\n"
+"\n"
+"Do you really want to quit now?"
+msgstr ""
+
+#: steps_interactive.pm:1144
+#, c-format
+msgid "Congratulations"
+msgstr ""
+
+#: steps_interactive.pm:1147
+#, c-format
+msgid "Reboot"
+msgstr "Vula kabusha"
+
+#. -PO: please keep the following messages very short: they must fit in the left list of the installer!!!
+#: steps_list.pm:16
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Language"
+msgstr ""
+
+#: steps_list.pm:16 steps_list.pm:23
+#, c-format
+msgid "Localization"
+msgstr ""
+
+#: steps_list.pm:17
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"License"
+msgstr ""
+
+#: steps_list.pm:18
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Mouse"
+msgstr ""
+
+#: steps_list.pm:19 steps_list.pm:20
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Hard drive detection"
+msgstr ""
+
+#: steps_list.pm:21 steps_list.pm:22
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Installation class"
+msgstr ""
+
+#: steps_list.pm:23
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Keyboard"
+msgstr ""
+
+#: steps_list.pm:24
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Security"
+msgstr ""
+
+#: steps_list.pm:25
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Partitioning"
+msgstr ""
+
+#: steps_list.pm:27 steps_list.pm:28
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Formatting"
+msgstr ""
+
+#: steps_list.pm:29
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Choosing packages"
+msgstr ""
+
+#: steps_list.pm:31
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Installing"
+msgstr ""
+
+#: steps_list.pm:34
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Users"
+msgstr ""
+
+#: steps_list.pm:38 steps_list.pm:39
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Bootloader"
+msgstr ""
+
+#: steps_list.pm:40 steps_list.pm:41
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Configure X"
+msgstr ""
+
+#: steps_list.pm:42
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Summary"
+msgstr ""
+
+#: steps_list.pm:44 steps_list.pm:45
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Services"
+msgstr ""
+
+#: steps_list.pm:46
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Updates"
+msgstr ""
+
+#: steps_list.pm:48
+#, c-format
+msgid ""
+"_: Keep these entry short\n"
+"Exit"
+msgstr ""
diff --git a/perl-install/install/share/runinstall2.sh b/perl-install/install/share/runinstall2.sh
new file mode 100644
index 000000000..42c420f13
--- /dev/null
+++ b/perl-install/install/share/runinstall2.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+# enable loadkeys to work before manually starting drakx in debug env:
+export SHARE_PATH=/usr/share
+echo "Starting Udev\n"
+perl -I/usr/lib/libDrakX -Minstall::install2 -e "install::install2::start_udev()"
+echo "You can start the installer by running install2"
+echo "You can run it in GDB by running gdb-inst"
+export GUILE_AUTO_COMPILE=0
+/usr/bin/busybox sh
+exec install2 $@
diff --git a/perl-install/install/share/symlinks b/perl-install/install/share/symlinks
index 8b33f7c3a..d2957e63a 100644
--- a/perl-install/install/share/symlinks
+++ b/perl-install/install/share/symlinks
@@ -1,12 +1,9 @@
-/sbin
-/bin
+/etc/crypto-policies
+/etc/mke2fs.conf
/etc/protocols
/etc/services
/etc/group
+/etc/machine-id
/etc/passwd
-/etc/termcap
+/etc/pki
/etc/urpmi
-/lib
-/lib64
-/usr
-/tmp /var/run
diff --git a/perl-install/install/share/upgrade/.gitignore b/perl-install/install/share/upgrade/.gitignore
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/perl-install/install/share/upgrade/.gitignore
@@ -0,0 +1 @@
+
diff --git a/perl-install/install/share/upgrade/conectiva.10/map b/perl-install/install/share/upgrade/conectiva.10/map
deleted file mode 100644
index aa6ff15da..000000000
--- a/perl-install/install/share/upgrade/conectiva.10/map
+++ /dev/null
@@ -1,3355 +0,0 @@
-3270-common x3270
-3270-doc
-KRegExpEditor-doc-es kde-i18n-es
-WSoundPrefs
-aalib libaa1 aalib-progs
-aalib-devel libaa1-devel
-abiword abiword
-abiword-clipart
-abiword-plugins-impexp
-abiword-plugins-tools
-acid acid
-acl acl
-acpid acpid
-adns adns
-adodb ADOdb adodb
-aide aide
-aktion-doc-es kde-i18n-es
-alsa-driver sound-scripts
-alsa-driver-devel glibc-devel
-alsa-lib-devel libalsa2-devel
-alsa-lib-devel-static libalsa2-static-devel
-alsa-oss-devel libalsa-oss0-devel
-alsa-oss-devel-static libalsa-oss0-devel
-alsa-server
-alsa-tools cspctl sbiload ac3dec sscape_ctl as10k1 vxloader sb16_csp emu10k1-tools envy24control
-alsa-utils alsa-utils
-alsaconf sndconfig alsa-utils
-alternatives update-alternatives
-amanda amanda-server libamanda0
-amanda-client amanda-client
-amanda-devel libamanda0-devel
-amanda-doc
-amanda-server amanda-client amanda-server
-amarok amarok
-amarok-doc amarok
-amarok-i18n-es amarok
-amarok-i18n-pt_BR amarok
-amavisd-new amavisd-new
-amor kdetoys
-amor-doc kdetoys
-amor-doc-es kde-i18n-es
-anacron anacron
-anjuta anjuta2 anjuta
-anjuta-i18n-es anjuta2 anjuta
-anjuta-i18n-pt_BR anjuta2 anjuta
-anjuta-rpmbuilder
-anjuta-rpmbuilder-i18n-es
-anjuta-rpmbuilder-i18n-pt_BR
-anonftp anonftp
-apache apache-base apache-conf
-apache-devel libapr-util0-devel libapr0-devel apache-devel
-apache-doc
-apache-htpasswd
-apmd apmd
-apmd-devel libapm1-devel
-apt urpmi
-apt-cdrom-registry
-apt-data-cnc
-apt-i18n-es_ES apt
-apt-i18n-pt_BR apt
-apt-static
-ark kdeutils-ark libkdeutils1-ark
-ark-doc kdeutils-ark
-ark-doc-es kde-i18n-es
-arping iputils
-arpwatch arpwatch
-arts arts
-arts-common-libs libarts1
-arts-devel libarts1 libarts1-devel
-artsbuilder kdemultimedia-common libkdemultimedia1-common
-artsbuilder-doc kdemultimedia-common
-artsbuilder-doc-es kde-i18n-es
-artsbuilder-doc-pt_BR kde-i18n-pt_BR
-artscontrol kdemultimedia-common
-ash ash
-aspell aspell
-aspell-dicts
-aspell-dicts-en_ca
-aspell-dicts-en_gb
-aspell-dicts-en_us
-aspell-dicts-es
-aspell-dicts-pt_br
-aspell-dicts-pt_pt
-at at
-at-i18n-pt_BR
-at-spi libat-spi0 at-spi
-at-spi-devel libat-spi0-devel
-atk libatk1.0_0
-atk-devel libatk1.0_0-devel
-atk-doc
-atk-i18n-es libatk1.0_0
-atk-i18n-pt_BR libatk1.0_0
-atlantik libkdegames1 kdegames
-atlantik-addons kdeaddons-atlantik
-atlantik-doc kdegames
-atlantik-doc-es kde-i18n-es
-attr attr
-audacity audacity
-audacity-i18n-es audacity
-audiofile libaudiofile0 audiofile
-audiofile-devel libaudiofile0-devel
-audiofile-doc
-audiofile-progs audiofile
-aumix aumix
-aumix-X11
-aumix-common aumix
-aumix-common-i18n-es aumix
-aumix-common-i18n-pt_BR aumix
-aumix-console
-aumix-minimal aumix
-authconfig
-authconfig-gtk
-authconfig-i18n-es
-authconfig-i18n-pt_BR
-autoconf autoconf2.5
-autofs autofs
-autofs-ldap autofs
-automake automake1.7
-automake-doc
-avifile-bin avifile-samples avifile-player kdetv
-avifile-devel libavifile0.7-devel
-awesfx awesfx
-barnyard
-basesystem basesystem msec
-bash setup bash
-bash-doc bash-doc
-bash_completion
-bc bc
-bin86 dev86
-bind bind
-bind-devel bind-devel
-bind-doc
-bind-libs
-bind-utils bind-utils
-binutils binutils
-binutils-i18n-es
-binutils-i18n-pt_BR
-bison bison
-bison-i18n-es bison
-bison-i18n-pt_BR bison
-bitchx BitchX
-bitchx-doc
-bitchx-help BitchX
-bittorrent bittorrent
-bittorrent-common BitTornado bittorrent
-bittorrent-gui-client bittorrent-gui BitTornado
-bittorrent-server BitTornado bittorrent
-bittorrent-text-client BitTornado bittorrent
-blender blender
-blender-examples
-blender-manual
-blt blt libblt2
-blt-demo
-blt-doc
-bluefish bluefish
-bluefish-i18n-es bluefish
-bluefish-i18n-pt_BR bluefish
-bluez-libs-devel libbluez1-devel
-bm bm
-bogofilter bogofilter
-bogofilter-doc
-bonnie++ bonnie++
-bonobo libbonobo2 bonobo libefs1
-bonobo-devel bonobo libefs1-devel libbonobo2-devel
-bonobo-i18n-es bonobo
-bonobo-i18n-pt_BR bonobo
-bootp
-bootsplash bootsplash
-bug-buddy bug-buddy
-bug-buddy-i18n-es bug-buddy
-bug-buddy-i18n-pt_BR bug-buddy
-busybox busybox
-byacc byacc
-bzip2 bzip2
-bzip2-doc
-c2050 printer-filters
-c2070 printer-filters
-c3270 c3270
-cacti cacti
-cbq shapecfg
-ccache ccache
-cdbakeoven cdbakeoven
-cdbakeoven-i18n-es
-cdbakeoven-i18n-pt_BR
-cdda2wav cdrecord-cdda2wav
-cdp cdp
-cdparanoia cdparanoia
-cdrdao cdrdao
-cdrecord cdrecord
-cdrtools cdrecord mkisofs cdrecord-isotools
-cdrtools-devel star-devel cdrecord-devel
-cervisia libkdesdk1-cervisia kdesdk-cervisia kdesdk
-cervisia-doc-pt_BR kde-i18n-pt_BR
-cflow
-chkconfig chkconfig
-chkconfig-i18n-es chkconfig
-chkconfig-i18n-es_ES
-chkconfig-i18n-pt_BR chkconfig
-chkfontpath chkfontpath
-chkrootkit chkrootkit
-cjet printer-filters
-clamav clamd clamav
-clamav-database clamav-db
-cnc-adslconf
-cnc-personal-firewall
-compat-libecpg1
-conectivaoffice-i18n-pt_BR OpenOffice.org-l10n-pt_BR OpenOffice.org-help-pt_BR
-conectivaoffice-i18n-es_ES OpenOffice.org-l10n-es OpenOffice.org-help-es
-conectivaoffice-i18n-en_US OpenOffice.org-l10n-en OpenOffice.org-help-en
-conectivaoffice OpenOffice.org
-conectiva-gnome-icon
-conectiva-gnome-theme
-conectiva-icons
-conectiva-kdeprefs kdebase-progs kdemultimedia-kscd kdelibs-common kdeutils-klaptop kdebase-kdm-config-file kdebase-common qt3-common kdebase-konsole
-conectiva-release
-conectiva-wallpapers
-console-tools libconsole0 util-linux console-tools
-console-tools-devel console-tools libconsole0-devel
-console-tools-doc
-console-tools-fonts console-tools
-console-tools-fonts-arabic console-tools
-console-tools-fonts-cyrilic console-tools
-console-tools-fonts-greek console-tools
-console-tools-fonts-hebrew console-tools
-console-tools-keymaps console-tools
-console-tools-keymaps-amiga
-console-tools-keymaps-atari
-console-tools-keymaps-mac
-console-tools-keymaps-sun
-console-tools-unicode console-tools
-control-center2 libgnome-window-settings1 gnome-control-center
-control-center2-devel gnome-control-center libgnome-window-settings1-devel
-control-center2-i18n-es gnome-control-center
-control-center2-i18n-pt_BR gnome-control-center
-coreutils coreutils
-coreutils-doc coreutils-doc
-coreutils-i18n-es coreutils
-coreutils-i18n-pt_BR coreutils
-countryselect
-countryselect-i18n-pt_BR
-cpio cpio
-cpio-i18n-pt_BR
-cracklib libcrack2
-cracklib-devel libcrack2-devel
-cracklib-dicts cracklib-dicts
-cracklib-doc
-cracklib-utils cracklib-dicts
-crontabs setup crontabs
-cryptplug cryptplug
-cscope cscope
-ctags ctags
-cups cups-common cups printer-utils
-cups-alignmargins printer-utils
-cups-devel libcups2-devel
-cups-doc
-cups-foomatic
-cups-libs libcups2
-cups-netatalk cups
-cups-netware cups
-cups-ppd cups
-cups-serial cups-serial
-curl curl
-cvs cvs
-cvs-chroot
-cvs-doc
-cvsweb cvsweb
-cyclom2x-tools
-cyrus-imapd cyrus-imapd-utils cyrus-imapd
-cyrus-imapd-devel cyrus-imapd-devel
-cyrus-imapd-devel-static cyrus-imapd-devel
-cyrus-imapd-doc
-db4
-db4-devel
-db4-utils db42-utils
-db4.2 libdb4.2
-db4.2-devel libdb4.2-devel
-db4.2-devel-static
-db4.2-doc
-db4.2-utils
-ddclient ddclient
-ddd ddd
-ddd-doc
-ddd-manual-html
-ddd-manual-pdf
-desktop-file-utils desktop-file-utils
-dev
-dev-base
-device-mapper dmsetup
-dhcp dhcp-client dhcp-relay dhcp-server
-dhcp-doc
-dhcpcd dhcp-client
-dia dia
-dia-i18n-es dia
-dia-i18n-pt_BR dia
-dialog cdialog
-dialog-i18n-es
-dialog-i18n-pt_BR
-dietlibc-devel dietlibc-devel
-diffutils diffutils
-diffutils-i18n-es diffutils
-digikam-plugins digikam kipi-plugins
-digikam-plugins-i18n-es
-diskcheck
-disktype
-dmidecode dmidecode
-doc-licenses
-docbook-dtd30-sgml docbook-dtd30-sgml
-docbook-dtd31-sgml docbook-dtd31-sgml
-docbook-dtd41-sgml docbook-dtd41-sgml
-docbook-dtd412-xml docbook-dtd412-xml
-docbook-style-dsssl docbook-style-dsssl
-docbook-style-dsssl-doc docbook-style-dsssl-doc
-docbook-style-xsl docbook-style-xsl
-docbook-style-xsl-doc docbook-style-xsl-doc
-docbook-utils docbook-utils
-docbook-utils-pdf docbook-utils-pdf
-dos2unix dos2unix
-dosemu dosemu dosemu-freedos
-dosemu-dexe
-dosemu-tools dosemu
-dosfstools dosfstools
-doxygen doxygen
-doxygen-manual
-doxygen-wizard doxygen
-drbd-utils
-drbd-utils-heartbeat
-drbd-utils-i18n-pt_BR
-drv_z42 printer-filters
-drv_z42-tool printer-utils
-dsniff dsniff
-dsniff-webspy dsniff-webspy
-dump dump
-duplicity
-dvd+rw-tools dvd+rw-tools
-dvdauthor dvdauthor
-dvdrecord
-dvdrtools
-e2fsprogs libext2fs2 e2fsprogs
-e2fsprogs-devel libext2fs2-devel
-e2fsprogs-i18n-es e2fsprogs
-eclipse
-eclipse-gnome-plugin
-eclipse-mozilla-plugin
-ed ed
-ee ee
-ee-i18n-es ee
-ee-i18n-pt_BR ee
-efax efax
-eject eject
-electricfence libefence0 ElectricFence
-elfutils elfutils
-elfutils-devel libelfutils1-devel
-elfutils-libelf libelfutils1
-elvis-tiny
-em8300 em8300
-em8300-gui-utils em8300
-emacs python emacs-el gettext emacs emacs-php-mode
-emacs-el python rpm-mandriva-setup gettext emacs-el emacs-php-mode
-emacs-leim emacs-leim
-enchant enchant
-enscript enscript
-eog eog
-eog-i18n-es eog
-eog-i18n-pt_BR eog
-epiphany epiphany
-epiphany-devel epiphany-devel
-epiphany-extensions epiphany-extensions
-epiphany-extensions-i18n-es
-epiphany-extensions-i18n-pt_BR
-epiphany-i18n-es epiphany
-epiphany-i18n-pt_BR epiphany
-epsutil
-escputil gutenprint-escputil
-esound libesound0 esound
-esound-devel libesound0-devel
-etcskel bash etcskel
-etherape etherape
-etherape-i18n-es etherape
-etherboot etherboot
-etherboot-doc
-ethereal ethereal
-ethereal-common libethereal0 ethereal
-ethereal-gtk ethereal
-ethereal-utils ethereal-tools
-ethtool ethtool
-ettercap ettercap-ng
-evolution evolution
-evolution-devel evolution-devel
-evolution-i18n-es
-evolution-i18n-pt_BR
-expat libexpat0 expat
-expat-devel libexpat0-devel
-expat-devel-static libexpat0-devel
-expat-doc
-expat-examples
-expect expect
-expect-devel expect
-ext2ed ext2ed
-eyesapplet kdetoys
-fake fake
-fam
-faq
-fbset fbset
-fetchmail fetchmail
-fetchmail-doc
-fetchmail-i18n-es fetchmail
-fetchmail-i18n-pt_BR fetchmail
-fetchmailconf fetchmailconf
-ffmpeg ffmpeg
-ffmpeg-doc
-fftw libfftw2
-fftw-devel libfftw2-devel
-fifteenapplet kdetoys
-file libmagic1 file
-file-roller file-roller
-file-roller-i18n-es file-roller
-file-roller-i18n-pt_BR file-roller
-filesystem filesystem
-fileutils
-findutils findutils
-findutils-i18n-es findutils
-findutils-i18n-pt_BR findutils
-finger finger
-finger-server finger-server
-firstboot
-flashkard
-flashkard-doc
-flashkard-doc-es kde-i18n-es
-flex flex
-flex-i18n-es
-flex-i18n-pt_BR
-fontconfig fontconfig
-fontconfig-doc
-fonts-100dpi xorg-x11-100dpi-fonts
-fonts-100dpi-extra xorg-x11-100dpi-fonts
-fonts-75dpi xorg-x11-75dpi-fonts
-fonts-75dpi-extra xorg-x11-75dpi-fonts
-fonts-cyrillic xorg-x11-cyrillic-fonts
-fonts-misc xorg-x11-xfs xorg-x11
-fonts-speedo xorg-x11
-fonts-ttf-esstix
-fonts-ttf-luxi xorg-x11
-fonts-ttf-vera xorg-x11
-fonts-type1 xorg-x11
-foo2zjs foomatic-db printer-filters
-foo2zjs-ppds
-foomatic-db foomatic-db
-foomatic-db-engine foomatic-db-engine
-foomatic-db-hpijs foomatic-db-hpijs
-foomatic-filters foomatic-filters
-foomatic-gui
-fortune-mod fortune-mod
-fortune-pt_BR
-fping fping
-freetds libfreetds0
-freetds-devel libfreetds0-devel
-freetds-doc
-freetds-unixodbc libfreetds0-unixodbc
-freetype freetype
-freetype-devel freetype-devel
-freetype-doc
-freetype-i18n-es freetype
-freetype-utils freetype2-tools
-freetype2 libfreetype6
-freetype2-devel libfreetype6-devel
-freetype2-doc
-frozen-bubble frozen-bubble
-ftp ftp-client-krb5
-ftp-i18n-pt_BR
-funcoeszz
-fwhois
-g++ gcc3.3-c++ gcc2.96-c++ gcc-c++
-g-wrap g-wrap libg-wrap1
-g-wrap-devel libg-wrap1-devel libg-wrap1 g-wrap
-g77 gcc-g77
-gail libgail17 gail
-gail-devel libgail17-devel
-gail-doc libgail17-devel
-gail-i18n-es gail
-gail-i18n-pt_BR gail
-gaim gaim-tcl gaim-perl gaim
-gaim-i18n-es gaim
-gaim-i18n-pt_BR gaim
-gal2-devel libgal2.0_6-devel
-gated
-gawk gawk
-gawk-doc gawk-doc
-gawk-i18n-es gawk
-gawk-i18n-pt_BR gawk
-gcalctool gcalctool
-gcalctool-i18n-es gcalctool
-gcalctool-i18n-pt_BR gcalctool
-gcc cross-ppc-gcc-cpp cross-ppc64-gcc-cpp gcc-cpp gcc2.96-cpp gcc gcc3.3-cpp
-gcj kaffe gcj-tools libgcj6-devel
-gconf libGConf1 GConf
-gconf-devel libGConf1-devel
-gconf-editor gconf-editor
-gconf-editor-i18n-es gconf-editor
-gconf-editor-i18n-pt_BR gconf-editor
-gconf2 libGConf2_4 GConf2
-gconf2-devel libGConf2_4-devel
-gconf2-doc libGConf2_4-devel
-gconf2-i18n-es GConf2
-gconf2-i18n-pt_BR GConf2
-gdam gdam-client gdam-server gdam-clients-gui libgdam-common0 libgdam-model0 libgdam-server0 gdam-common
-gdam-alsa-plugins gdam-alsa-plugin
-gdam-client libgdam-common0 libgdam-client0 gdam-clients-gui gdam-client gdam-common
-gdam-devel libgdam-client0 libgdam0-devel libgdam-model0 libgdam-server0 libgdam-common0
-gdam-xmms-plugins gdam-xmms-plugin
-gdb gdb
-gdk-pixbuf libgdk-pixbuf2 gdk-pixbuf-loaders libgdk-pixbuf-xlib2 libgdk-pixbuf-gnomecanvas1
-gdk-pixbuf-devel libgdk-pixbuf2-devel
-gdk-pixbuf-doc libgdk-pixbuf2-devel
-gdm gdm-Xnest gdm
-gdm-i18n-es
-gdm-i18n-pt_BR
-gedit gedit
-gedit-devel gedit-devel
-gedit-i18n-es
-gedit-i18n-pt_BR
-genhdlist rpmtools
-genromfs genromfs
-gettext gettext-base gettext
-gettext-devel gettext gettext-devel
-gettext-doc
-gettext-extras
-gettext-i18n-es gettext-base
-gettext-i18n-pt_BR gettext-base
-getty_ps
-gftp gftp
-gftp-i18n-es gftp
-gftp-i18n-pt_BR gftp
-ggv ggv
-ggv-i18n-es ggv
-ggv-i18n-pt_BR ggv
-ghostscript ghostscript
-ghostscript-doc
-ghostscript-fonts ghostscript-fonts
-ghostscript-module-X11
-ghostscript-resource
-gimp gimp libgimp2.0_0 gutenprint-gimp2 gimp-python
-gimp-devel libgimp2.0-devel
-gimp-doc
-gimp-help gimp-help-2
-gimp-i18n-es
-gimp-i18n-pt_BR
-gimp-print
-gimp-print-cups gutenprint-cups
-gimp-print-cups-cs
-gimp-print-cups-da
-gimp-print-cups-de
-gimp-print-cups-el
-gimp-print-cups-en
-gimp-print-cups-en_GB
-gimp-print-cups-es
-gimp-print-cups-fr
-gimp-print-cups-ja
-gimp-print-cups-nl
-gimp-print-cups-no
-gimp-print-cups-pl
-gimp-print-cups-pt
-gimp-print-cups-sk
-gimp-print-cups-sv
-gimp-print-doc
-gimp-print-foomatic
-gimp-python gimp2_0-python gimp-python
-gkrellm gkrellm-server gkrellm
-gkrellm-devel gkrellm-devel
-gkrellm-fan
-gkrellm-i18n-es gkrellm
-gkrellm-skins
-gkrellm-snmp
-gkrellm-volume
-gkrellm-weather wmWeather gkrellm-plugins
-gkrellm-xmms
-glade2 glade2
-glade2-i18n-es glade2
-glade2-i18n-pt_BR glade2
-glib libglib1.2
-glib-devel libglib1.2-devel
-glib-devel-static libglib1.2-devel
-glib-doc
-glib2 libglib2.0_0
-glib2-devel glib-gettextize libglib2.0_0-devel
-glib2-doc libglib2.0_0-devel
-glib2-i18n-es libglib2.0_0
-glib2-i18n-pt_BR libglib2.0_0
-glibc glibc
-glibc-base glibc glibc-i18ndata nscd
-glibc-charmaps-extras glibc-i18ndata
-glibc-devel glibc-devel
-glibc-devel-debug
-glibc-devel-static glibc-static-devel glibc-devel
-glibc-doc glibc-doc
-glibc-gconvdata glibc
-glibc-i18n-en_US glibc-i18ndata
-glibc-i18n-es
-glibc-i18n-es_ES glibc-i18ndata
-glibc-i18n-pt_BR glibc-i18ndata
-glibc-iconv glibc
-glibc-locales-extras
-gmp libgmp3 libgmpmp3
-gmp-devel libgmp3-devel libgmpmp3-devel
-gnokii gnokii-xgnokii gnokii
-gnokii-devel libgnokii2-devel
-gnokii-x11 gnokii-xgnokii
-gnome-applets gnome-applets
-gnome-applets-devel gnome-applets
-gnome-applets-i18n-es gnome-applets
-gnome-applets-i18n-pt_BR gnome-applets
-gnome-common gnome-common
-gnome-desktop libgnome-desktop-2_2 gnome-desktop
-gnome-desktop-devel libgnome-desktop-2_2-devel
-gnome-desktop-i18n-es gnome-desktop
-gnome-desktop-i18n-pt_BR gnome-desktop
-gnome-games gnome-games
-gnome-games-blackjack gnome-games
-gnome-games-common
-gnome-games-common-i18n-es gnome-games
-gnome-games-common-i18n-pt_BR gnome-games
-gnome-games-devel
-gnome-games-freecell gnome-games
-gnome-games-glines gnome-games-extra-data gnome-games
-gnome-games-gnect gnome-games
-gnome-games-gnibbles gnome-games
-gnome-games-gnobots2 gnome-games-extra-data gnome-games
-gnome-games-gnome-stones gnome-games
-gnome-games-gnometris gnome-games gnome-games-extra-data
-gnome-games-gnomine gnome-games
-gnome-games-gnotravex gnome-games
-gnome-games-gnotski gnome-games
-gnome-games-gtali gnome-games
-gnome-games-iagno gnome-games-extra-data gnome-games
-gnome-games-mahjongg gnome-games-extra-data gnome-games
-gnome-games-same-gnome gnome-games
-gnome-games-sol-games gnome-games
-gnome-games-xxgata gnome-games
-gnome-icon-theme gnome-icon-theme
-gnome-keyring gnome-keyring
-gnome-keyring-devel libgnome-keyring0-devel
-gnome-keyring-i18n-es gnome-keyring
-gnome-keyring-i18n-pt_BR gnome-keyring
-gnome-libs libgnome32 gnome-libs libgnomeui2
-gnome-libs-devel libgnome32-devel
-gnome-libs-i18n-es gnome-libs
-gnome-libs-i18n-pt_BR gnome-libs
-gnome-mag gnome-mag
-gnome-mag-devel libgnome-mag2-devel
-gnome-mag-i18n-es gnome-mag
-gnome-mag-i18n-pt_BR gnome-mag
-gnome-media libcddb-slave2_0 gnome-media
-gnome-media-devel gnome-media libcddb-slave2_0-devel
-gnome-media-i18n-es gnome-media
-gnome-media-i18n-pt_BR gnome-media
-gnome-mime-data gnome-mime-data
-gnome-mime-data-i18n-es gnome-mime-data
-gnome-mime-data-i18n-pt_BR gnome-mime-data
-gnome-netstatus gnome-netstatus
-gnome-netstatus-i18n-es gnome-netstatus
-gnome-netstatus-i18n-pt_BR gnome-netstatus
-gnome-panel libpanel-applet-2_0 gnome-utils gnome-panel
-gnome-panel-devel libpanel-applet-2_0-devel
-gnome-panel-doc libpanel-applet-2_0-devel
-gnome-panel-i18n-es gnome-panel
-gnome-panel-i18n-pt_BR gnome-panel
-gnome-pilot libgnome-pilot2 gnome-pilot
-gnome-pilot-devel libgnome-pilot2-devel
-gnome-pilot-i18n-es gnome-pilot
-gnome-pilot-i18n-pt_BR gnome-pilot
-gnome-print libgnomeprint15 gnome-print
-gnome-print-devel libgnomeprint15-devel
-gnome-print-i18n-es gnome-print
-gnome-print-i18n-pt_BR gnome-print
-gnome-python2 gnome-python-extras gnome-python
-gnome-python2-applet
-gnome-python2-bonobo
-gnome-python2-canvas
-gnome-python2-gconf
-gnome-python2-gnomeprint
-gnome-python2-gnomevfs
-gnome-python2-gtkhtml2
-gnome-python2-nautilus
-gnome-session gnome-session
-gnome-session-i18n-es gnome-session
-gnome-session-i18n-pt_BR gnome-session
-gnome-spell gnome-spell
-gnome-spell-i18n-es
-gnome-spell-i18n-pt_BR
-gnome-system-monitor gnome-system-monitor
-gnome-system-monitor-i18n-es gnome-system-monitor
-gnome-system-monitor-i18n-pt_BR gnome-system-monitor
-gnome-terminal gnome-terminal
-gnome-terminal-i18n-es gnome-terminal
-gnome-terminal-i18n-pt_BR gnome-terminal
-gnome-themes gtk-engines2 gtk-engines gnome-themes
-gnome-utils gnome-utils
-gnome-utils-i18n-es gnome-utils
-gnome-utils-i18n-pt_BR gnome-utils
-gnome-vfs2 drakconf gnome-vfs2 drakwizard
-gnome-vfs2-doc libgnome-vfs2_0-devel
-gnome-vfs2-i18n-es gnome-vfs2
-gnome-vfs2-i18n-pt_BR gnome-vfs2
-gnome2-industrial-theme ximian-artwork gtk-engines2
-gnome2-industrial-theme-gtk+ ximian-artwork
-gnome2-industrial-theme-gtk+2 gtk-engines2
-gnome2-user-docs gnome-user-docs
-gnomemeeting gnomemeeting
-gnucash libgnucash0 gnucash
-gnucash-devel libgnucash0-devel
-gnucash-doc gnucash
-gnucash-help gnucash
-gnucash-i18n-es gnucash
-gnucash-i18n-pt_BR gnucash
-gnuchess gnuchess
-gnumeric gnumeric
-gnumeric-i18n-es gnumeric
-gnumeric-i18n-pt_BR gnumeric
-gnupg gnupg
-gnupg-doc
-gnupg-i18n-es gnupg
-gnupg-i18n-pt_BR gnupg
-gnupg-keyserver-plugins
-gnuplot gnuplot
-gnuplot-demo
-gnuplot-doc
-gob2 gob2
-gok gok
-gok-i18n-es gok
-gok-i18n-pt_BR gok
-gpart gpart
-gpdf gpdf
-gpdf-i18n-es gpdf
-gpdf-i18n-pt_BR gpdf
-gphoto2 gphoto2
-gphoto2-i18n-es gphoto2
-gphoto2-i18n-pt_BR gphoto2
-gpm gpm
-gpm-devel libgpm1-devel
-gpm-emacs gpm
-gprolog gprolog
-gprolog-doc
-gprolog-examples
-gq gq
-gqview gqview
-gqview-i18n-es gqview
-gqview-i18n-pt_BR gqview
-graphviz libgraphviz7 graphviz libgraphviztcl7
-graphviz-devel libgraphviztcl7-devel libgraphviz7-devel
-graphviz-doc
-graphviz-examples libgraphviztcl7-devel
-grep grep
-grep-i18n-es grep
-grep-i18n-pt_BR grep
-grip grip
-grip-i18n-es grip
-grip-i18n-pt_BR grip
-groff groff-perl groff groff-for-man
-groff-doc
-groff-extras groff-perl
-groff-gxditview groff-gxditview
-grub grub
-gst-plugins gstreamer-jpeg gstreamer-esound gstreamer-visualisation gstreamer-sndfile gstreamer-audiofile gstreamer-mpeg gstreamer-festival gstreamer-gdkpixbuf gstreamer-plugins gstreamer-GConf gstreamer-quicktime gstreamer-avi gstreamer-x11 gstreamer-asf gstreamer-vorbis gstreamer-a52dec gstreamer-v4l2 libgstreamer-plugins0.8 gstreamer-qcam gstreamer-audio-formats gstreamer-gnomevfs gstreamer-musicbrainz gstreamer-ladspa libgstgconf0.8
-gst-plugins-aalib gstreamer-aalib
-gst-plugins-alsa gstreamer-alsa
-gst-plugins-arts gstreamer-arts gstreamer-artsd
-gst-plugins-cdparanoia gstreamer-cdparanoia
-gst-plugins-colorspace gstreamer-colorspace
-gst-plugins-devel libgstreamer-plugins0.8-devel
-gst-plugins-dv gstreamer-dv
-gst-plugins-dvdread gstreamer-libdvdread
-gst-plugins-dxr3 gstreamer-dxr3
-gst-plugins-fame
-gst-plugins-flac gstreamer-flac
-gst-plugins-gsm gstreamer-gsm
-gst-plugins-jack gstreamer-jack
-gst-plugins-lame
-gst-plugins-mad gstreamer-mad
-gst-plugins-mikmod gstreamer-mikmod
-gst-plugins-mjpegtools
-gst-plugins-raw1394 gstreamer-raw1394
-gst-plugins-sdl gstreamer-SDL
-gst-plugins-shout
-gst-plugins-vorbis gstreamer-vorbis
-gst-plugins-wincodec
-gstreamer libgstreamer0.8 gstreamer-tools
-gstreamer-devel libgstreamer0.8-devel
-gstreamer-tools gstreamer-tools
-gtk+ libgtk+1.2
-gtk+-devel libgtk+1.2-devel
-gtk+-i18n-es libgtk+1.2
-gtk+-i18n-pt_BR libgtk+1.2
-gtk+2 libgtk+-x11-2.0_0 gtk+2.0 libgtk+2.0_0 libgdk_pixbuf2.0_0
-gtk+2-devel libgdk_pixbuf2.0_0-devel libgtk+2.0_0-devel
-gtk+2-doc libgdk_pixbuf2.0_0-devel libgtk+2.0_0-devel
-gtk+2-i18n-es gtk+2.0
-gtk+2-i18n-pt_BR gtk+2.0
-gtk-doc gtk-doc
-gtk-engines gtk-engines
-gtk2-engines libgtk+2.0_0 gtk-engines gtk-engines2
-gtkam gtkam
-gtkam-i18n-es gtkam
-gtkam-i18n-pt_BR gtkam
-gtkhtml gtkhtml
-gtkhtml-devel libgtkhtml1.1_3-devel
-gtkhtml-i18n-es
-gtkhtml-i18n-pt_BR
-gtkhtml30-devel libgtkhtml-3.0_4-devel
-gtklp gtklp
-gtklp-i18n-en gtklp
-gtklp-i18n-es gtklp
-gtklp-i18n-pt_BR gtklp
-gtknw
-gtksamba
-gucharmap gucharmap
-gucharmap-devel libgucharmap4-devel
-gucharmap-i18n-es gucharmap
-gucharmap-i18n-pt_BR gucharmap
-guile-devel libguile12-devel
-guile16 guile
-guppi16 Guppi
-gv gv
-gv-doc
-gwenview libgwenview1 gwenview
-gwenview-i18n-es gwenview
-gwenview-i18n-pt_BR gwenview
-gzip gzip
-gzip-i18n-pt_BR
-hdparm hdparm
-heartbeat libheartbeat0 heartbeat libheartbeat-pils0
-heartbeat-ldirectord ldirectord heartbeat-ldirectord heartbeat
-heartbeat-pils libheartbeat-pils0-devel heartbeat-pils libheartbeat-pils0
-heartbeat-stonith libheartbeat-stonith0-devel heartbeat-stonith libheartbeat-stonith0
-hexedit hexedit
-hfsutils hfsutils
-hfsutils-devel cdrecord-devel hfsutils-devel
-hicolor-icon-theme hicolor-icon-theme
-horde horde
-hotkeys hotkeys
-hotplug initscripts hotplug
-howto
-howto-html
-hpijs hplip-hpijs
-hpijs-ppd hplip-hpijs-ppds
-hpoj hpoj
-hpoj-x11 xojpanel
-htdig htdig-web htdig
-htdig-doc
-hwdata pcmcia-cs
-hwinfo harddrake
-hwinfo-devel
-hylafax hylafax-server hylafax-client hylafax mgetty-sendfax
-icecast icecast
-ices ices
-icmpinfo
-ide-smart ide-smart
-ident2
-ijs-devel libijs1-devel
-ikons-icon-theme kdeartwork
-imagemagick ImageMagick
-imagemagick-doc ImageMagick-doc
-imap imap
-imlib2 libimlib2_1
-imlib2-devel libimlib2_1-devel
-imlib2-filters
-imlib2-loader_argb
-imlib2-loader_bmp
-imlib2-loader_gif
-imlib2-loader_jpeg
-imlib2-loader_png
-imlib2-loader_pnm
-imlib2-loader_tga
-imlib2-loader_tiff
-imlib2-loader_xpm
-imp
-imp-i18n-en_US
-imp-i18n-es_ES
-imp-i18n-pt_BR
-indent indent
-indent-i18n-pt_BR indent
-indexhtml indexhtml
-inetd
-info info-install info
-initscripts initscripts
-initscripts-i18n-es initscripts
-initscripts-i18n-pt_BR initscripts
-inn inews noffle inn
-inn-devel inn-devel
-intltool intltool
-iproute2 iproute2
-iproute2-doc iproute2-doc
-ipsec-tools ipsec-tools
-iptables iptables
-iptraf iptraf
-iptraf-doc
-iputils iputils
-ipvsadm ipvsadm
-ipxripd
-ipxutils ipxutils
-ipxutils-i18n-pt_BR
-irda-utils irda-utils
-isapnptools isapnptools
-isapnptools-doc
-isdn4k-utils isdn-light isdn4k-utils-isdnlog isdn4k-utils ibod libisdn4k-utils2 isdn4k-utils-vbox
-isdn4net isdn-light isdn4net
-itcl itcl
-itcl-devel
-itcl-iwidgets-demos
-itcl-iwidgets2.2.0-demos itcl
-jack jackit-example-clients libjack0 jack jackit
-jack-client-samples jackit-example-clients
-jack-devel libjack0-devel
-jack-doc
-jadetex jadetex
-jadetex-doc
-jawmail
-jawmail-i18n-en_US
-jawmail-i18n-es_ES
-jfsutils jfsprogs
-joystick joystick
-jpackage-utils jpackage-utils
-jpgraph jpgraph JpGraph
-jpgraph-doc JpGraph-doc jpgraph-doc
-juk kdemultimedia-juk
-juk-doc kdemultimedia-juk
-jwhois whois
-jwhois-i18n-es
-jwhois-i18n-pt_BR
-k3b k3b
-k3b-doc
-k3b-i18n-es k3b
-k3b-i18n-pt_BR k3b
-kaboodle kdemultimedia-kaboodle
-kaboodle-doc kdemultimedia-kaboodle
-kaboodle-doc-es kde-i18n-es
-kaddressbook kdepim-common libkdepim2-kaddressbook kdepim-kaddressbook kdepim-kontact
-kaddressbook-addons kdeaddons
-kaddressbook-doc kdepim-kaddressbook
-kaddressbook-doc-es kde-i18n-es
-kaffeine kmplayer kaffeine
-kaffeine-doc kaffeine
-kaffeine-i18n-es kaffeine
-kaffeine-i18n-pt_BR kaffeine
-kalarm kdepim-common kdepim-korganizer
-kalarm-doc kdepim-korganizer
-kalarm-doc-es kde-i18n-es
-kallers
-kallers-i18n-es
-kallers-i18n-pt_BR
-kalzium kdeedu
-kalzium-doc kdeedu
-kalzium-doc-es kde-i18n-es
-kamera kdegraphics-common
-kamera-doc kdegraphics-common
-kamera-doc-es kde-i18n-es
-kandy kdepim-common kdepim-kpilot
-kandy-doc kdepim-kpilot
-kandy-doc-es kde-i18n-es
-kappfinder kdebase-progs kdebase-common
-kapptemplate kdesdk
-karbon libkoffice2-karbon koffice-karbon koffice-progs
-karbon-i18n-es koffice-i18n-es
-karbon-i18n-pt_BR koffice-l10n-pt_BR
-karm kdepim-common kdepim-karm
-karm-doc kdepim-karm
-karm-doc-es kde-i18n-es
-kasteroids kdegames
-kasteroids-doc kdegames
-kasteroids-doc-es kde-i18n-es
-kasteroids-doc-pt_BR kde-i18n-pt_BR
-kate libkdebase4 kdebase-progs libkdebase4-kate kdebase-kate kdebase-common
-kate-addons kdeaddons libkdeaddons1
-kate-doc-es kde-i18n-es
-kate-doc-pt_BR kde-i18n-pt_BR
-kate-plugins-doc-es kde-i18n-es
-kate-plugins-doc-pt_BR kde-i18n-pt_BR
-katomic kdegames
-katomic-doc kdegames
-katomic-doc-es kde-i18n-es
-katomic-doc-pt_BR kde-i18n-pt_BR
-kaudiocreator kdemultimedia-kaudiocreator
-kbabel libkdesdk1-kbabel kdesdk-kbabel kdesdk
-kbabel-doc-es kde-i18n-es
-kbabel-doc-pt_BR kde-i18n-pt_BR
-kbackgammon kdegames
-kbackgammon-doc kdegames
-kbackgammon-doc-es kde-i18n-es
-kbattleship kdegames
-kbattleship-doc-es kde-i18n-es
-kbattleship-doc-pt_BR kde-i18n-pt_BR
-kbdconfig
-kbdconfig-i18n-es
-kbdconfig-i18n-pt_BR
-kblackbox kdegames
-kblackbox-doc kdegames
-kblackbox-doc-es kde-i18n-es
-kbounce kdegames
-kbounce-doc kdegames
-kbounce-doc-es kde-i18n-es
-kbounce-doc-pt_BR kde-i18n-pt_BR
-kbruch kdeedu
-kbruch-doc kdeedu
-kbugbuster kdesdk
-kbugbuster-doc-es kde-i18n-es
-kbugbuster-doc-pt_BR kde-i18n-pt_BR
-kcachegrind kdesdk-kcachegrind
-kcachegrind-doc kdesdk-kcachegrind
-kcachegrind-doc-pt_BR kde-i18n-pt_BR
-kcalc libkdeutils1-kcalc kdeutils-kcalc
-kcalc-doc kdeutils-kcalc
-kcalc-doc-es kde-i18n-es
-kcharselect kdeutils-common libkdeutils1-common kdeutils-kcharselect
-kcharselect-doc kdeutils-kcharselect
-kcharselect-doc-es kde-i18n-es
-kchart koffice-progs libkoffice2-kspread koffice-kspread
-kchart-doc koffice-kspread
-kchart-docs-es koffice-i18n-es
-kchart-i18n-es koffice-i18n-es
-kchart-i18n-pt_BR koffice-l10n-pt_BR
-kchat
-kchat-i18n-es
-kchat-i18n-pt_BR
-kclcontrol
-kclcontrol-devel
-kclcontrol-i18n-pt_BR
-kclcontrol-plugin-kdeservices
-kclcontrol-plugin-webmin
-kcmlinuz kdeadmin-linuz
-kcoloredit kdegraphics-kpaint
-kcoloredit-doc kdegraphics-kpaint
-kcoloredit-doc-es kde-i18n-es
-kconfigeditor kconfigeditor
-kcontrol libkdecore4 lisa libkdebase4 kdelibs-common kdebase-kcontrol-nsplugins kdebase-kcontrol-data kdebase-common kdebase-progs kdebase-konsole
-kcontrol-doc kdebase-konsole kdebase-kcontrol-data kdebase-common
-kcontrol-doc-es kde-i18n-es
-kcontrol-doc-pt_BR kde-i18n-pt_BR
-kcpuload kcpuload
-kcpuload-doc kcpuload
-kcpuload-i18n-es
-kcpuload-i18n-pt_BR
-kcron kdeadmin
-kcron-doc kdeadmin
-kcron-doc-es kde-i18n-es
-kdat kdeadmin
-kdat-doc kdeadmin
-kdat-doc-es kde-i18n-es
-kdbg kdbg
-kdbg-doc kdbg
-kde-base-icons kdepim-common kdebase-common kdelibs-common hicolor-icon-theme
-kde-carddecks kdegames
-kde-common kdebase-kdeprintfax kdegraphics-common libkdebase4 kdebase-kdm kdebase-common kdebase-progs kdepim-common
-kde-common-doc kdebase-common
-kde-i18n-common-i18n-es kde-i18n-es
-kde-i18n-common-i18n-pt_BR kde-i18n-pt_BR
-kde-i18n-doc-common-es kde-i18n-es
-kde-i18n-doc-common-pt_BR kde-i18n-pt_BR
-kde-i18n-es kde-i18n-es
-kde-i18n-pt_BR kde-i18n-pt_BR
-kde-lilo-config kdeadmin-lilo
-kdeaccessibility kdeaccessibility
-kdeaccessibility-doc
-kdeaccessibility-i18n-es kde-i18n-es
-kdeaccessibility-i18n-pt_BR kde-i18n-pt_BR
-kdeaddons libkdeaddons1 kdeaddons
-kdeaddons-i18n-es kde-i18n-es
-kdeaddons-i18n-pt_BR kde-i18n-pt_BR
-kdeadmin kdeadmin
-kdeadmin-doc
-kdeadmin-i18n-es kde-i18n-es
-kdeadmin-i18n-pt_BR kde-i18n-pt_BR
-kdeartwork kdeartwork
-kdeartwork-i18n-es kde-i18n-es
-kdeartwork-i18n-pt_BR kde-i18n-pt_BR
-kdeartwork-sounds kdeartwork
-kdeartwork-wallpapers kdeartwork
-kdeautorun kdebase-common
-kdebase kdebase
-kdebase-common kdelibs-common kdebase-common lisa
-kdebase-core libkdebase4 kdebase-progs kdebase-common
-kdebase-devel libkdebase4-kate-devel libkdebase4 libkdebase4-kate
-kdebase-doc
-kdebase-i18n-es kde-i18n-es
-kdebase-i18n-pt_BR kde-i18n-pt_BR
-kdebase-nsplugins kdebase-kcontrol-nsplugins kdebase-nsplugins kdebase-common
-kdebase-sounds kdebase-common
-kdebase-themes kdebase-common
-kdebase-wallpapers kdebase-common
-kdebluetooth libkdebluetooth0 kdebluetooth
-kdebluetooth-devel libkdebluetooth0-devel
-kdebluetooth-doc
-kdebugdialog-doc-es kde-i18n-es
-kdebugdialog-doc-pt_BR kde-i18n-pt_BR
-kdeclassic-icon-theme kdeartwork-kde-classic
-kdeedu kdebase-common kdeedu
-kdeedu-devel libkdeedu1-devel libkdeedu1
-kdeedu-doc
-kdeedu-i18n-es kde-i18n-es
-kdeedu-i18n-pt_BR kde-i18n-pt_BR
-kdeextragear-1
-kdeextragear-1-devel
-kdeextragear-1-doc
-kdeextragear-2
-kdeextragear-2-doc
-kdeextragear-3
-kdeextragear-3-doc
-kdeextragear-common-i18n-es
-kdeextragear-common-i18n-pt_BR
-kdegames kdegames
-kdegames-common libkdegames1 kdegames
-kdegames-devel libkdegames1-devel libkdegames1
-kdegames-doc
-kdegames-i18n-es kde-i18n-es
-kdegames-i18n-pt_BR kde-i18n-pt_BR
-kdegraphics kdegraphics
-kdegraphics-common kdegraphics-common
-kdegraphics-devel libkdegraphics0-common-devel libkdegraphics0-kooka-devel libkdegraphics0-ksvg-devel
-kdegraphics-doc
-kdegraphics-i18n-es kde-i18n-es
-kdegraphics-i18n-pt_BR kde-i18n-pt_BR
-kdelibs-artsinterface kdelibs-common libkdecore4
-kdelibs-docbook kdelibs-common
-kdelibs-i18n-es kde-i18n-es
-kdelibs-i18n-pt_BR kde-i18n-pt_BR
-kdelibs3 kdelibs-common
-kdelibs3-devel libkdecore4-devel
-kdelibs3-devel-static
-kdelirc libkdeutils1-common kdeutils-common
-kdelirc-doc kdeutils-common
-kdemultimedia kdemultimedia
-kdemultimedia-common libkdemultimedia1-common libkdemultimedia1-noatun kdemultimedia-kaudiocreator kdemultimedia-common kdemultimedia-noatun
-kdemultimedia-devel libkdemultimedia1-common libkdemultimedia1-kscd-devel libkdemultimedia1-common-devel libkdemultimedia1-noatun-devel
-kdemultimedia-doc
-kdemultimedia-i18n-es kde-i18n-es
-kdemultimedia-i18n-pt_BR kde-i18n-pt_BR
-kdenetwork kdenetwork
-kdenetwork-common kdenetwork-kopete libkdenetwork2-common kdenetwork-common kdenetwork-knewsticker
-kdenetwork-devel libkdenetwork2-common-devel
-kdenetwork-doc
-kdenetwork-i18n-es kde-i18n-es
-kdenetwork-i18n-pt_BR kde-i18n-pt_BR
-kdepalettes
-kdepasswd kdebase-progs kdebase-common
-kdepim kdepim
-kdepim-common kdepim-kaddressbook kdepim-kpilot kdepim-common
-kdepim-devel libkdecore4-devel libkdepim2-common-devel libkdepim2-kontact-devel libkdepim2-kmail libkdepim2-korganizer-devel libkdepim2-kmail-devel libkdepim2-kaddressbook-devel libkdepim2-ktnef-devel libkdepim2-kpilot-devel
-kdepim-doc
-kdepim-i18n-es koffice-i18n-es kde-i18n-es
-kdepim-i18n-pt_BR koffice-l10n-pt_BR kde-i18n-pt_BR
-kdeprint-doc-es kde-i18n-es
-kdeprint-doc-pt_BR kde-i18n-pt_BR
-kdesdk kdesdk
-kdesdk-common kdesdk
-kdesdk-devel libkdesdk1-devel libkdesdk1-cervisia-devel libkdesdk1-kbabel-devel
-kdesdk-i18n-es kde-i18n-es
-kdesdk-i18n-pt_BR kde-i18n-pt_BR
-kdesdk-scripts kdesdk
-kdesktop kdebase-progs libkdebase4 kdebase-common
-kdessh kdeutils-kdessh
-kdesu-doc-es kde-i18n-es
-kdesu-doc-pt_BR kde-i18n-pt_BR
-kdetheme-b3 kdelibs-common
-kdetheme-dotnet kdeartwork
-kdetheme-highcolor libkdecore4 kdelibs-common
-kdetheme-light kdelibs-common libkdecore4
-kdetheme-marble
-kdetheme-plastik kdelibs-common libkdecore4
-kdetheme-qt kdelibs-common
-kdetheme-riscos kdelibs-common
-kdetheme-system
-kdetoys kdetoys
-kdetoys-devel libkdetoys1-devel
-kdetoys-doc
-kdetoys-i18n-es kde-i18n-es
-kdetoys-i18n-pt_BR kde-i18n-pt_BR
-kdetv libkdevideo1 kdetv avifile-samples
-kdetv-i18n-es kdetv
-kdeutils kdeutils
-kdeutils-devel libkdeutils1-common-devel libkdeutils1-ksim-devel
-kdeutils-doc
-kdeutils-i18n-es kde-i18n-es
-kdeutils-i18n-pt_BR kde-i18n-pt_BR
-kdevelop kdevelop
-kdevelop-doc kdevelop
-kdf kdeutils-kdf
-kdf-doc kdeutils-kdf
-kdf-doc-es kde-i18n-es
-kdict kdenetwork-kdict
-kdict-doc kdenetwork-kdict
-kdiff3 kdiff3
-kdiff3-doc kdiff3
-kdiff3-i18n-es kdiff3
-kdiff3-i18n-pt_BR kdiff3
-kdm kdebase-kdm libkdebase4 kdebase-kdm-config-file kdebase-common
-kdm-doc kdebase-common
-kdm-doc-es kde-i18n-es
-kdm-doc-pt_BR kde-i18n-pt_BR
-kdvi kdegraphics-kdvi
-kdvi-doc kdegraphics-kdvi
-kdvi-doc-es kde-i18n-es
-kedit libkdeutils1-kedit kdeutils-kedit
-kedit-doc kdeutils-kedit
-kedit-doc-es kde-i18n-es
-keduca kdeedu
-keduca-doc kdeedu
-keduca-doc-es kde-i18n-es
-keduca-doc-pt_BR kde-i18n-pt_BR
-kenolaba kdegames
-kenolaba-doc kdegames
-kenolaba-doc-es kde-i18n-es
-kernel-pcmcia-cs pcmcia-cs-x11 pcmcia-cs
-kernel-postinstall
-kernel26
-kernel26-doc
-kernel26-enterprise
-kernel26-enterprise-module-madwifi
-kernel26-enterprise-module-nvidia
-kernel26-highmem
-kernel26-highmem-module-madwifi
-kernel26-highmem-module-nvidia
-kernel26-highmem-smp
-kernel26-highmem-smp-module-madwifi
-kernel26-highmem-smp-module-nvidia
-kernel26-module-madwifi
-kernel26-module-nvidia
-kernel26-smp
-kernel26-smp-module-madwifi
-kernel26-smp-module-nvidia
-kernel26-source
-kernel26-uml
-kernel26-uml-smp
-keurocalc keurocalc
-keurocalc-doc keurocalc
-keurocalc-i18n-es
-keurocalc-i18n-pt_BR
-keychain keychain
-kfax kdegraphics-kfax
-kfind libkdebase4 kdebase-progs kdebase-common
-kfind-doc kdebase-common
-kfind-doc-es kde-i18n-es
-kfish
-kfish-i18n-es
-kfish-i18n-pt_BR
-kfloppy kdeutils-kfloppy
-kfloppy-doc kdeutils-kfloppy
-kfloppy-doc-es kde-i18n-es
-kformula koffice-kformula libkoffice2-progs koffice-progs libkoffice2-kformula
-kformula-doc koffice-kformula
-kformula-docs-es koffice-i18n-es
-kformula-i18n-es koffice-i18n-es
-kformula-i18n-pt_BR koffice-l10n-pt_BR
-kfouleggs kdegames
-kfouleggs-doc kdegames
-kgamma kdegraphics-common
-kgamma-doc kdegraphics-common
-kgamma-doc-es kde-i18n-es
-kget kdenetwork-kget
-kget-doc kdenetwork-kget
-kghostview kdegraphics-kghostview libkdegraphics0-kghostview
-kghostview-doc kdegraphics-kghostview
-kghostview-doc-es kde-i18n-es
-kgoldrunner kdegames
-kgoldrunner-doc kdegames
-kgpg kdeutils-kgpg
-kgpg-doc kdeutils-kgpg
-kgpgcertmanager
-kgpgcertmanager-doc
-kgpgcertmanager-doc-es kde-i18n-es
-khangman kdeedu kde-i18n-pt_BR kde-i18n-es
-khangman-doc kdeedu
-khangman-doc-es kde-i18n-es
-khelpcenter kdebase-common kdebase-progs libkdebase4
-khelpcenter-doc kdebase-common
-khelpcenter-doc-es kde-i18n-es
-khelpcenter-doc-pt_BR kde-i18n-pt_BR
-khexedit kdeutils-khexedit
-khexedit-doc kdeutils-khexedit
-khexedit-doc-es kde-i18n-es
-kicker kdebase-common kdebase-progs libkdebase4
-kicker-addons kdeaddons libkdeaddons1
-kicker-applets-doc-es kde-i18n-es
-kicker-applets-doc-pt_BR kde-i18n-pt_BR
-kicker-doc kdebase-common
-kicker-doc-es kde-i18n-es
-kicker-doc-pt_BR kde-i18n-pt_BR
-kiconedit kdegraphics-kiconedit
-kiconedit-doc kdegraphics-kiconedit
-kiconedit-doc-es kde-i18n-es
-kids-icon-theme kdeartwork
-kig libkdeedu1 kdeedu
-kig-doc kdeedu
-kile kile
-kile-doc kile
-kile-i18n-es kile kile-i18n-es
-kile-i18n-pt_BR kile kile-i18n-pt_BR
-kimdaba kimdaba
-kimdaba-doc kimdaba
-kimdaba-i18n-es kimdaba
-kimdaba-i18n-pt_BR kimdaba
-kinfocenter-doc-es kde-i18n-es
-kinfocenter-doc-pt_BR kde-i18n-pt_BR
-kio-audiocd kdemultimedia-common
-kio-lanbrowsing lisa
-kio-lanbrowsing-doc lisa
-kio-smb libkdebase4 kdebase-common
-kio-smb-doc kdebase-common
-kio-thumbnail kdegraphics-common libkdebase4 kdebase-common
-kiosktool kiosktool
-kiosktool-i18n-es kiosktool
-kioslave-doc-es kde-i18n-es
-kioslave-doc-pt_BR kde-i18n-pt_BR
-kipi-plugins kipi-plugins
-kiten kdeedu
-kiten-doc kdeedu
-kiten-doc-es kde-i18n-es
-kivio libkoffice2-kivio koffice-kivio koffice-progs
-kivio-doc koffice-kivio
-kivio-docs-es koffice-i18n-es
-kivio-docs-pt_BR koffice-l10n-pt_BR
-kivio-i18n-es koffice-i18n-es
-kivio-i18n-pt_BR koffice-l10n-pt_BR
-kjots kdeutils-kjots
-kjots-doc kdeutils-kjots
-kjots-doc-es kde-i18n-es
-kjumpingcube kdegames
-kjumpingcube-doc kdegames
-kjumpingcube-doc-es kde-i18n-es
-klaptopdaemon kdeutils-klaptop libkdeutils1-klaptop
-klaptopdaemon-doc kdeutils-common kdeutils-klaptop
-klettres kde-i18n-sk kde-i18n-da kde-i18n-cs kdeedu
-klettres-doc kdeedu
-klettres-doc-es kde-i18n-es
-klicker
-klicker-i18n-es
-klickety kdegames
-klickety-doc kdegames
-klickety-doc-es kde-i18n-es
-klines kdegames
-klines-doc kdegames
-klines-doc-es kde-i18n-es
-klipper kdebase-progs libkdebase4 kdebase-common
-klipper-doc kdebase-common
-klipper-doc-es kde-i18n-es
-kmag kdeaccessibility
-kmag-doc kdeaccessibility
-kmahjongg kdegames
-kmail libkdepim2-kmail kdepim-kmail kdepim-kontact
-kmail-doc kdepim-kmail
-kmail-doc-es kde-i18n-es
-kmailcvt kdepim-kmail
-kmathtool-doc-es kde-i18n-es
-kmenuconfig
-kmenuconfig-i18n-pt_BR
-kmenuedit kdebase-kmenuedit libkdebase4-kmenuedit
-kmenuedit-doc kdebase-kmenuedit
-kmenuedit-doc-es kde-i18n-es
-kmessedwords kdeedu
-kmessedwords-doc kdeedu
-kmessedwords-doc-es kde-i18n-es
-kmid libkdemultimedia1-common kdemultimedia-kmidi kdemultimedia-kmid
-kmid-doc kdemultimedia-kmid
-kmid-doc-es kde-i18n-es
-kmilo libkdeutils1-klaptop kdeutils-klaptop
-kmines kdegames
-kmines-doc kdegames
-kmines-doc-es kde-i18n-es
-kmix kdemultimedia-kmix libkdemultimedia1-kmix
-kmix-doc kdemultimedia-kmix
-kmix-doc-es kde-i18n-es
-kmoon kdetoys
-kmoon-doc kdetoys
-kmousetool kdeaccessibility
-kmousetool-doc kdeaccessibility
-kmouth kdeaccessibility
-kmouth-doc kdeaccessibility
-kmouth-doc-es kde-i18n-es
-kmplayer kdelibs-common kmplayer
-kmplayer-doc
-kmplayer-i18n-es
-kmplayer-i18n-pt_BR
-kmplot kdeedu
-kmplot-doc kdeedu
-kmplot-doc-es kde-i18n-es
-kmrml libkdegraphics0-mrmlsearch kdegraphics-mrmlsearch
-kmyfirewall libkmyfirewall0 kmyfirewall
-kmyfirewall-doc kmyfirewall
-kmyfirewall-i18n-es
-kmyfirewall-i18n-pt_BR
-knetload knetload
-knetload-doc
-knetload-i18n-es knetload
-knetload-i18n-pt_BR knetload
-knetworkconf knetworkconf
-knetworkconf-i18n-es
-knetworkconf-i18n-pt_BR
-knewsticker libkdenetwork2-knewsticker kdenetwork-knewsticker kdenetwork-common
-knewsticker-addons kdeaddons
-knewsticker-doc kdenetwork-knewsticker
-knode libkdepim2-knode kdepim-kontact kdepim-knode
-knode-doc kdepim-knode
-knode-doc-es kde-i18n-es
-knotes kdepim-knotes kdepim-kpilot kdepim-kontact
-knotes-doc kdepim-knotes
-knotes-doc-es kde-i18n-es
-kodo kdetoys
-kodo-doc kdetoys
-kodo-doc-es kde-i18n-es
-koffice koffice
-koffice-common koffice-progs libkoffice2-progs koffice-koshell libkoffice2-kword libkoffice2-kspread
-koffice-common-doc koffice-koshell koffice-progs
-koffice-common-i18n-es koffice-i18n-es
-koffice-common-i18n-pt_BR koffice-l10n-pt_BR
-koffice-devel libkoffice2-progs-devel libkoffice2-kword-devel libkoffice2-kugar-devel libkoffice2-kspread-devel
-koffice-doc
-koffice-docs-common-es
-koffice-docs-common-pt_BR
-koffice-docs-es koffice-i18n-es
-koffice-i18n-es koffice-i18n-es
-koffice-i18n-pt_BR koffice-l10n-pt_BR
-koffice-templates koffice-kspread koffice-kword koffice-kugar koffice-kpresenter
-kolf kdegames libkdegames1
-kolf-doc kdegames
-kommander libkdewebdev0-kommander kdewebdev-kommander
-kompare libkdesdk1-devel libkdesdk1 kdesdk
-kompare-doc-es kde-i18n-es
-kompare-doc-pt_BR kde-i18n-pt_BR
-konq-plugins-doc-es kde-i18n-es
-konq-plugins-doc-pt_BR kde-i18n-pt_BR
-konqueror libkdebase4 kdebase-progs kdebase-common kdenetwork-common
-konqueror-addons kdeaddons-atlantik libkdeaddons1-konqimagegallery kdelibs-common kdeaddons kdeaddons-konqimagegallery libkdeaddons1
-konqueror-doc kdebase-common
-konqueror-doc-es kde-i18n-es
-konquest kdegames
-konquest-doc kdegames
-konquest-doc-es kde-i18n-es
-konsole kdebase-common libkdebase4 kdebase-progs kdebase-konsole libkdebase4-konsole
-konsole-doc kdebase-konsole
-konsole-doc-es kde-i18n-es
-konsolekalendar kdepim-common kdepim-korganizer
-konsolekalendar-doc kdepim-korganizer
-konsolekalendar-doc-es kde-i18n-es
-kontact libkdepim2-kontact kdepim-kontact
-kontact-addons kdepim-kontact
-kontact-doc kdepim-kontact
-kontact-doc-es kde-i18n-es
-konversation konversation
-konversation-doc konversation
-konversation-i18n-es konversation
-konversation-i18n-pt_BR konversation
-kooka kdegraphics-common libkdegraphics0-kooka kdegraphics-kooka
-kooka-doc kdegraphics-kooka
-kooka-doc-es kde-i18n-es
-kopete libkdenetwork2-kopete kdenetwork-kopete
-kopete-doc kdenetwork-common kdenetwork-kopete
-kopete-doc-es kde-i18n-es
-kopete-nowlistening kdenetwork-kopete
-korganizer kdepim-korganizer kdelibs-common kdepim-kaddressbook kdepim-kontact libkdepim2-korganizer kdepim-common
-korganizer-doc kdepim-korganizer
-korganizer-doc-es kde-i18n-es
-korn kdepim-korn
-korn-doc kdepim-korn
-korn-doc-es kde-i18n-es
-koshell-docs-es koffice-i18n-es
-kpackage kdeadmin kdeadmin-kpackage libkdeadmin1
-kpackage-doc kdeadmin-kpackage
-kpackage-doc-es kde-i18n-es
-kpager-doc-es kde-i18n-es
-kpaint
-kpaint-doc
-kpaint-doc-es kde-i18n-es
-kpat kdegames
-kpat-doc kdegames
-kpdf kdegraphics-kpdf
-kpdf-doc kdegraphics-kpdf
-kpercentage kdeedu
-kpercentage-doc kdeedu
-kpercentage-doc-es kde-i18n-es
-kpf kdenetwork-common libkdenetwork2-common
-kpf-doc kdenetwork-common
-kpf-doc-es kde-i18n-es
-kpilot kdepim-common kdepim-kpilot libkdepim2-kpilot
-kpilot-doc kdepim-kpilot
-kpilot-doc-es kde-i18n-es
-kpoker kdegames
-kpoker-doc kdegames
-kpoker-doc-es kde-i18n-es
-kpovmodeler libkdegraphics0-kpovmodeler kdegraphics-kpovmodeler
-kpovmodeler-doc kdegraphics-kpovmodeler
-kpovmodeler-doc-es kde-i18n-es
-kppp kdenetwork-kppp kdenetwork-kppp-provider
-kppp-doc kdenetwork-kppp
-kppp-doc-es kde-i18n-es
-kppp-doc-pt_BR kde-i18n-pt_BR
-kpresenter libkoffice2-kpresenter koffice-kpresenter koffice-progs
-kpresenter-doc koffice-kpresenter
-kpresenter-docs-es koffice-i18n-es
-kpresenter-docs-pt_BR koffice-l10n-pt_BR
-kpresenter-i18n-es koffice-i18n-es
-kpresenter-i18n-pt_BR koffice-l10n-pt_BR
-krandr libkdebase4 kdebase-progs kdebase-common
-krb5 libkrb53
-krb5-apps-clients krb5-workstation
-krb5-apps-servers krb5-workstation
-krb5-client krb5-workstation openafs krb5-server
-krb5-devel krb5-workstation libkrb53-devel krb5-server
-krb5-devel-static
-krb5-doc
-krb5-server krb5-workstation krb5-server
-krdc kdenetwork-kopete kdenetwork-krfb
-krdc-doc kdenetwork-krfb
-kreatecd
-kreatecd-doc
-kreatecd-i18n-es
-kreatecd-i18n-pt_BR
-krec libkdemultimedia1-krec kdemultimedia-krec
-krec-doc kdemultimedia-krec
-kregexpeditor libkdeutils1-common kdeutils-common
-kreversi kdegames
-kreversi-doc kdegames
-kreversi-doc-es kde-i18n-es
-krfb kdenetwork-krfb
-krfb-doc kdenetwork-krfb
-kruler kdegraphics-kruler
-kruler-doc kdegraphics-kruler
-kruler-doc-es kde-i18n-es
-ksame kdegames
-ksame-doc kdegames
-ksame-doc-es kde-i18n-es
-kscd kdemultimedia-kscd
-kscd-doc kdemultimedia-kscd
-kscd-doc-es kde-i18n-es
-kscreensaver kdebase-common kdebase-progs
-kscreensavers kdeartwork-screensaver-gl kdeartwork
-kscreensavers-opengl kdeartwork
-kscreensavers-xscreensaver kdeartwork-screensaver-gl kdeartwork
-kscreensavers-xscreensaver-opengl kdeartwork kdeartwork-screensaver-gl
-kshisen kdegames
-kshisen-doc kdegames
-kshisen-doc-es kde-i18n-es
-ksim libkdeutils1-ksim libkdeutils1-ksim-devel kdeutils-ksim
-ksim-doc-es kde-i18n-es
-ksirc libkdenetwork2-ksirc kdenetwork-ksirc
-ksirc-doc kdenetwork-ksirc
-ksirtet kdegames
-ksirtet-doc kdegames
-ksirtet-doc-es kde-i18n-es
-ksmiletris kdegames
-ksmssend
-ksmssend-i18n-es
-ksmssend-i18n-pt_BR
-ksnake kdegames
-ksnake-doc kdegames
-ksnake-doc-es kde-i18n-es
-ksnapshot kdegraphics-ksnapshot
-ksnapshot-doc kdegraphics-ksnapshot
-ksnapshot-doc-es kde-i18n-es
-ksokoban kdegames
-ksokoban-doc kdegames
-kspaceduel kdegames
-kspaceduel-doc kdegames
-kspell-doc-es kde-i18n-es
-kspread libkoffice2-kspread koffice-kspread koffice-progs
-kspread-doc koffice-kspread
-kspread-docs-es koffice-i18n-es
-kspread-i18n-es koffice-i18n-es
-kspread-i18n-pt_BR koffice-l10n-pt_BR
-kspy libkdesdk1-devel libkdesdk1
-kstars indilib kdeedu
-kstars-doc kdeedu
-kstars-doc-es kde-i18n-es
-kstars-doc-pt_BR kde-i18n-pt_BR
-ksvg libkdegraphics0-ksvg kdegraphics-ksvg
-ksymoops ksymoops
-ksync kdepim-kpilot libkdepim2-common
-ksysguard libkdebase4 kdebase-progs kdebase-common
-ksysguard-daemon kdebase-progs
-ksysguard-doc kdebase-common
-ksysguard-doc-es kde-i18n-es
-ksysv kdeadmin-ksysv
-ksysv-doc kdeadmin-ksysv
-ksysv-doc-es kde-i18n-es
-ktalkd kdenetwork-ktalk
-ktalkd-doc kdenetwork-ktalk
-kteatime kdetoys
-kteatime-doc kdetoys
-kteatime-doc-es kde-i18n-es
-ktimer kdeutils-ktimer
-ktimer-doc kdeutils-ktimer
-ktimer-doc-es kde-i18n-es
-ktip kdebase-progs kdebase-common
-ktnef libkdepim2-ktnef kdepim-ktnef
-ktouch kdeedu
-ktouch-doc kdeedu
-ktouch-doc-es kde-i18n-es
-ktron kdegames
-ktron-doc kdegames
-ktuberling kdegames
-ktuberling-doc kdegames
-ktuberling-doc-es kde-i18n-es
-ktux kdetoys
-kudzu
-kudzu-devel
-kudzu-i18n-es
-kudzu-i18n-pt_BR
-kugar libkoffice2-kugar koffice-progs koffice-kugar
-kugar-doc koffice-kugar
-kugar-docs-es koffice-i18n-es
-kugar-docs-pt_BR koffice-l10n-pt_BR
-kugar-i18n-es koffice-i18n-es
-kugar-i18n-pt_BR koffice-l10n-pt_BR
-kuickshow libkdegraphics0-kuickshow kdegraphics-kuickshow
-kuickshow-doc-es kde-i18n-es
-kuiviewer kdesdk
-kuser kdeadmin
-kuser-doc kdeadmin
-kuser-doc-es kde-i18n-es
-kverbos kdeedu
-kverbos-doc kdeedu
-kverbos-doc-es kde-i18n-es
-kview kdegraphics-common kdegraphics-kview libkdegraphics0-kview kdegraphics-ksvg
-kview-doc kdegraphics-kview
-kview-doc-es kde-i18n-es
-kvoctrain kdeedu
-kvoctrain-doc kdeedu
-kvoctrain-doc-es kde-i18n-es
-kwallet-doc kdeutils-kwalletmanager
-kwallet-doc-es kde-i18n-es
-kwalletmanager kdeutils-kwalletmanager
-kweather libkdetoys1-kweather kdetoys-kweather
-kweather-doc kdetoys-kweather
-kweather-doc-es kde-i18n-es
-kwifimanager libkdenetwork2-kwifimanager kdenetwork-kwifimanager
-kwifimanager-doc-es kde-i18n-es
-kwin kdebase-common kdebase-progs libkdebase4
-kwin-cde kdeartwork
-kwin-glow kdeartwork
-kwin-icewm kdeartwork
-kwin-kde1 kdeartwork
-kwin-kstep kdeartwork
-kwin-openlook kdeartwork
-kwin-plastik libkdebase4 kdebase-common
-kwin-system kdeartwork
-kwin4 kdegames
-kwin4-doc kdegames
-kwin4-doc-es kde-i18n-es
-kword libkoffice2-kword koffice-kword koffice-progs
-kword-doc koffice-kword
-kword-docs-es koffice-i18n-es
-kword-docs-pt_BR koffice-l10n-pt_BR
-kword-i18n-es koffice-i18n-es
-kword-i18n-pt_BR koffice-l10n-pt_BR
-kworldclock kdetoys
-kworldclock-doc kdetoys
-kworldclock-doc-es kde-i18n-es
-kworldclock-themes kdeartwork
-kwuftpd-doc-es kde-i18n-es
-kxconfig-doc-es kde-i18n-es
-kxkb kdebase-progs libkdebase4 kdebase-common
-kxkb-doc kdebase-common
-kxsldbg kdewebdev
-kxsldbg-doc kdewebdev
-kynaptic
-kynaptic-i18n-pt_BR
-ladspa ladspa
-lam sweep libmpich21-devel libmpich1-devel mpic++ mpif77 libkdesdk1-devel mpich lam-devel mpich2 mpi2f77 mpi2cc lam-runtime mpicc
-lam-doc lam-doc
-lam-examples
-lame
-lame-doc
-latex2html latex2html
-lcms liblcms1
-lcms-devel liblcms1-devel
-ldconfig ldconfig
-leafnode leafnode
-less less
-lexmark-foomatic-kit
-lexmark2070 printer-filters
-lexmark7000linux printer-filters
-lha lha
-libacl-devel libacl1-devel
-libacl1 libacl1
-libadns-devel libadns1-devel
-libadns1 libadns1
-libalsa2 libalsa-data libalsa2
-libalsatoss0 libalsa-oss0
-libao-devel libao2-devel
-libao-doc
-libao2 libao2
-libaoss0 libalsa-oss0 aoss
-libapr-devel libapr0-devel libapr-util0-devel
-libapr-devel-static libapr-util0-devel libapr0-devel
-libapr0 libapr-util0 libapr0
-libapt-pkg-devel libapt-pkg0-devel
-libapt-pkg2
-libart-devel libart_lgpl2-devel
-libart2 libart_lgpl2
-libaspell-devel libaspell15-devel
-libaspell15 libaspell15
-libattr-devel libattr1-devel
-libattr1 libattr1
-libavc1394-devel libavc1394_0-devel
-libavc1394_0 libavc1394_0-testools libavc1394_0
-libavifile0 libaviplayavcodec0.7 libavifile0.7
-libbeecrypt-devel libbeecrypt6-devel
-libbeecrypt6 libbeecrypt6
-libbluetooth1
-libbonobo libbonobo2_0 libbonobo
-libbonobo-devel libbonobo2_0-devel libbonobo
-libbonobo-doc
-libbonobo-i18n-es libbonobo
-libbonobo-i18n-pt_BR libbonobo
-libbonoboui libbonoboui2_0 libbonoboui
-libbonoboui-devel libbonoboui libbonoboui2_0-devel
-libbonoboui-i18n-es libbonoboui
-libbonoboui-i18n-pt_BR libbonoboui
-libbz2 libbzip2_1
-libbz2-devel libbzip2_1-devel
-libcap
-libcap-devel libcap1-devel
-libcap1 libcap1
-libcdda-devel libcdda0-devel
-libcdda0 libcdda0
-libclamav-devel libclamav1-devel
-libclamav1 libclamav1
-libconectiva-devel
-libconectiva1
-libcroco-devel libcroco2-devel
-libcroco2 libcroco libcroco2
-libcurl-devel libcurl3-devel
-libcurl2 curl
-libdevmapper-devel libdevmapper1.01-devel
-libdevmapper1.00
-libdigikam0 libdigikam0
-libdm-devel libdm0-devel
-libdm0 libdm0
-libdockapp
-libdockapp-devel
-libdockapp-devel-static
-libdps-progs xorg-x11
-libdps1 libxorg-x11
-libdv libdv-apps
-libdv-devel libdv4-static-devel libdv4-devel
-libdvdread-devel libdvdread3-devel
-libdvdread2
-libdvdread3 libdvdread3
-libdxr3-devel libdxr3_0-devel
-libdxr3_0 libdxr3_0
-libecpg4
-libeel-devel libeel2_2-devel
-libeel2 libeel2_2
-libeel2-i18n-es eel
-libeel2-i18n-pt_BR eel
-libenchant-devel libenchant1-devel
-libenchant0 libenchant1
-libewm
-libewm-devel
-libexif-devel libexif12-devel
-libexif-doc
-libexif9
-libexif9-i18n-es libexif12
-libf2c0 libf2c0
-libfaad2
-libfaad2-devel
-libfaad2-doc
-libfaad2-utils
-libfam-devel libgamin-1_0-devel
-libfam0 libgamin-1_0
-libfame-devel
-libfame0
-libffmpeg-devel libpostproc0-devel libffmpeg0-devel
-libffmpeg0 ffmpeg libpostproc0 libffmpeg0
-libflac++2
-libflac-devel liboggflac++2-devel libflac++5-devel libflac7-devel liboggflac3-devel
-libflac4 flac
-libfontconfig-devel libfontconfig1-devel
-libfontconfig1 fontconfig libfontconfig1
-libfribidi-devel libfribidi0-devel
-libfribidi0 fribidi libfribidi0
-libftgl-demo
-libftgl-devel libftgl0-devel
-libftgl-doc
-libftgl0 libftgl0
-libgaim-remote-devel libgaim-remote0-devel
-libgaim-remote0 libgaim-remote0
-libgal-devel libgal23-devel
-libgal0 libgal2.0_6 gal2.0
-libgal0-i18n-es gal2.0
-libgal0-i18n-pt_BR gal2.0
-libgal21
-libgal21-i18n-es
-libgal21-i18n-pt_BR
-libgcc
-libgcc-i18n-es
-libgcj-devel
-libgcj4 libgcj6
-libgcrypt1
-libgd-devel libgd2-devel
-libgd-doc
-libgd-progs gd-utils
-libgd1
-libgd2 libgd2
-libgdbm-devel libgdbm3-devel
-libgdbm-devel-static libgdbm3-devel
-libgdbm3 libgdbm3
-libghttp-devel libghttp1-devel
-libghttp1 libghttp1
-libgimpprint1
-libgimpprint1-devel
-libgl-mesa-devel
-libgl-progs xorg-x11
-libgl-xfree86-devel
-libgl1-mesa
-libgl1-nvidia
-libgl1-xfree86 xorg-x11-server
-libglade libglade-bonobo0 libglade-gnome0 libglade0
-libglade-devel libglade0-devel
-libglade2 libglade2.0_0
-libglade2-devel libglade2.0_0-devel
-libglade2-doc libglade2.0_0-devel
-libglide2 Glide_V3 Glide_V2
-libglide2-devel Glide_V3-devel Glide_V2-devel
-libglide3 Glide_V3 Glide_V3-DRI Glide_V2 Glide_V5
-libglide3-devel Glide_V3-DRI-devel Glide_V3-devel Glide_V5-devel Glide_V2-devel
-libglu-mesa-devel
-libglu1-mesa
-libglu1-xfree86
-libglut-devel
-libglut3
-libgmcop1 libarts1
-libgnet-devel libgnet-1.1_0-devel
-libgnet-doc
-libgnet1.1 libgnet-1.1_0
-libgnome libgnome2_0 libgnome2
-libgnome-devel libgnome2_0-devel
-libgnome-doc libgnome2_0-devel
-libgnome-i18n-es libgnome2
-libgnome-i18n-pt_BR libgnome2
-libgnome-keyring0 libgnome-keyring0
-libgnome-vfs2 libgnome-vfs2_0
-libgnome-vfs2-devel libgnome-vfs2_0-devel
-libgnomecanvas libgnomecanvas2_0
-libgnomecanvas-devel libgnomecanvas2_0-devel
-libgnomecanvas-doc
-libgnomecanvas-i18n-es libgnomecanvas2_0
-libgnomecanvas-i18n-pt_BR libgnomecanvas2_0
-libgnomeprint libgnomeprint2-2_0 libgnomeprint
-libgnomeprint-devel libgnomeprint2-2_0-devel
-libgnomeprint-i18n-es libgnomeprint
-libgnomeprint-i18n-pt_BR libgnomeprint
-libgnomeprintui libgnomeprintui2-2_0
-libgnomeprintui-devel libgnomeprintui2-2_0-devel
-libgnomeprintui-i18n-es libgnomeprintui2-2_0
-libgnomeprintui-i18n-pt_BR libgnomeprintui2-2_0
-libgnomeui libgnomeui2 libgnomeui2_0 gnome-libs
-libgnomeui-devel libgnomeui2_0-devel
-libgnomeui-doc libgnomeui2_0-devel
-libgnomeui-i18n-es libgnomeui2
-libgnomeui-i18n-pt_BR libgnomeui2
-libgpgme-devel libgpgme03_6-devel libgpgme11-devel
-libgpgme-doc
-libgpgme6 libgpgme03_6
-libgphoto2 libgphoto2 libgphoto-hotplug
-libgphoto2-devel libgphoto2-devel
-libgphoto2-doc
-libgphoto2-i18n-es libgphoto2
-libgphoto2-i18n-pt_BR libgphoto2
-libgr
-libgr-progs netpbm
-libgsf libgsf-1_1
-libgsf-devel libgsf-1_1-devel
-libgsf-gnome libgsf-1_1
-libgsf-gnome-devel libgsf-1_1-devel
-libgsl-devel gsl-progs libgsl0-devel
-libgsl0 libgsl0
-libgsm-devel libgsm1-devel
-libgsm-progs gsm
-libgsm1 libgsm1
-libgtkhtml2 libgtkhtml2_0
-libgtkhtml2-devel libgtkhtml2_0-devel
-libgtkhtml20 libgtkhtml1.1_3
-libgtkhtml30 libgtkhtml-3.0_4 gtkhtml3.0
-libgtkhtml30-i18n-es gtkhtml3.0
-libgtkhtml30-i18n-pt_BR gtkhtml3.0
-libgtksourceview-devel libgtksourceview-1.0_0-devel
-libgtksourceview1.0 libgtksourceview-1.0_0 gtksourceview
-libgtksourceview1.0-i18n-es gtksourceview
-libgtksourceview1.0-i18n-pt_BR gtksourceview
-libgtkxmhtml libgtkxmhtml1
-libgtkxmhtml-devel libgnome32-devel
-libgtop2 libgtop2
-libgtop2-devel libgtop2.0_5-devel
-libgtop2-i18n-es libgtop2
-libgtop2-i18n-pt_BR libgtop2
-libgucharmap4 libgucharmap4
-libguile12 libguile12
-libguppi-devel Guppi libguppi16-devel
-libguppi16 libguppi16
-libhermes-devel libhermes1-devel
-libhermes1 libhermes1
-libhpojip0 hpoj libhpojip0
-libhpojip0-devel libhpojip0-devel
-libid3-devel libid3_3.8_3-devel
-libid3_0 id3lib libid3_0
-libidl libIDL2_0
-libidl-devel libIDL2_0-devel
-libidn-devel libidn11-devel
-libidn11 libidn11
-libimap-devel imap-devel
-libimap-devel-static
-libimap4
-libimlib-devel libimlib1-devel
-libimlib1 imlib libimlib1
-libimlib1-cfgeditor imlib-cfgeditor
-libipsec0 libipsec0
-libipsec0-devel libipsec0-devel
-libiw27 libiw28
-libiw27-devel libiw28-devel
-libjasper-common jasper
-libjasper-devel libjasper1.701_1-devel
-libjasper1 libjasper1.701_1
-libjpeg-devel libjpeg62-devel
-libjpeg62 jpeg-progs libjpeg62
-libkabinterfaces1 libkdepim2-kaddressbook
-libkcal2 kdepim-common libkdepim2-common
-libkcddb1 libkdemultimedia1-common kdemultimedia-kscd
-libkdeeducore0 libkdeedu1
-libkdeeduplot1 libkdeedu1
-libkdeeduui1 libkdeedu1
-libkdenetwork2
-libkdepim1 libkdepim2-common
-libkdgantt0
-libkgantt0 kdepim-korganizer libkdepim2-common
-libkipi-devel libkipi0 libkipi0-devel
-libkipi0 libkipi0
-libkmultipage0 libkdegraphics0-common
-libknewstuff1 kdelibs-common libkdecore4
-libkonfig-devel
-libkonfig0
-libkonq4 libkdebase4
-libkpimexchange1 libkdepim2-common
-libkpinterfaces1 libkdepim2-kontact
-libksba0
-libksieve0 kdepim-common libkdepim2-common
-liblm_sensors3 liblm_sensors3
-libltdl-devel libltdl3-devel
-libltdl3 libltdl3
-libmad-devel libid3tag0-devel libmad0-devel
-libmad0 libid3tag0 libmad0
-libmagic-devel libmagic1-devel
-libmagick++-devel libMagick8.0.2-devel
-libmagick++5.5.7
-libmagick-devel libMagick8.0.2-devel
-libmagick5.5.7
-libmetacity-devel libmetacity-private0-devel
-libmikmod-devel libmikmod2-devel
-libmikmod2 libmikmod2
-libmimelib1 libkdepim2-common
-libmjpegtools-devel libmjpegtools1.6-devel
-libmjpegtools0 libmjpegtools1.6
-libmng-devel libmng1-devel
-libmng1 libmng1
-libmp3lame-devel
-libmp3lame0
-libmusicbrainz-devel libmusicbrainz4-devel
-libmusicbrainz4 libmusicbrainz4
-libmysqlclient-devel libmysql14-devel
-libmysqlclient12 libmysql12
-libncftp2
-libncftp2-devel
-libneon-devel
-libneon-devel-static
-libneon-doc
-libneon24
-libnet libnet
-libnet-devel libnet2-devel libnet libnet1.1-devel libnet1.0-devel
-libnetpbm9
-libnetpbm9-devel libshhopt1-devel libnetpbm10-devel
-libnewt-cnc1
-libnewt-cnc1-devel
-libnewt51 libnewt0.51
-libnids
-libnids-devel libnids1-devel
-libnspr-devel libnspr4-devel
-libnspr4 libnspr4
-libnss-devel libnss3-devel
-libnss3 libnss3
-libntfs-devel libntfs5-devel
-libntfs-gnomevfs-devel libntfs5-devel ntfsprogs-gnomevfs
-libntfs-gnomevfs1 ntfsprogs-gnomevfs
-libntfs5 libntfs5
-libobjc libobjc1
-libogg-devel libogg0-devel
-libogg-doc
-libogg0 libogg0
-liboggflac++0
-liboggflac1
-libole2 libole20
-libole2-devel libole20-devel
-libopenal-devel libopenal0-devel
-libopenal0 libopenal0
-libopenh323_1 libopenh323_1
-libopenh323_1-devel libopenh323_1-devel
-libopenobex-devel libopenobex1.0-devel
-libopenobex1 libopenobex1.0
-libopensc-devel libopensc0-devel
-libopensc0 pam_opensc libopensc0 opensc
-libpcap libpcap0
-libpcap-devel libpcap0-devel
-libperl5.8
-libpgtypes1
-libplanner-devel libplanner-1_0-devel
-libplanner1 libplanner-1_0
-libplot-devel libplotutils2-devel
-libplot4 libplotutils2
-libplotter-devel
-libplotter4
-libpng-devel libpng3-devel
-libpng-doc
-libpng3 libpng3
-libpq3
-libproplist-devel libPropList0-devel
-libproplist0 libPropList0
-libptal0 libptal0
-libptal0-devel libptal0-devel
-libqavm0 libavifile0.7
-libqtmcop1 libarts1
-libraw1394 libraw1394-utils
-libraw1394-devel libraw1394_8-devel
-librpm4.2
-librrd-devel librrdtool2-devel
-librrd0
-librsvg2 librsvg2_2 librsvg
-librsvg2-devel librsvg2_2-devel
-librsync rdiff librsync1
-librsync-devel librsync1-devel
-libsamplerate-devel libsamplerate0-devel
-libsamplerate-doc
-libsamplerate0 libsamplerate-progs libsamplerate0
-libsane-hpoj1 libsane-hpoj1
-libsane1 libsane1
-libsane1-i18n-es sane-backends
-libsdl-devel libSDL1.2-devel
-libsdl-image-devel libSDL_image1.2-devel
-libsdl-image1.2 libSDL_image1.2
-libsdl-mixer-devel libSDL_mixer1.2-devel
-libsdl-mixer1.2 libSDL_mixer1.2 SDL_mixer-player
-libsdl-net-devel libSDL_net1.2-devel
-libsdl-net1.2 libSDL_net1.2
-libsdl-ttf-devel libSDL_ttf2.0-devel
-libsdl-ttf-test libSDL_ttf2.0-test
-libsdl-ttf2.0 libSDL_ttf2.0
-libsdl1.2 libSDL1.2
-libsdp2
-libshout libshout3
-libshout-devel libshout3-devel
-libslang-devel libslang1-devel
-libslang-devel-static libslang1-devel
-libslang1 libslang1
-libslp-devel libopenslp1-devel
-libslp1 libopenslp1
-libsmbclient-devel libsmbclient0-devel
-libsmbclient0 libsmbclient0
-libsmpeg-devel libsmpeg0.4-devel
-libsmpeg-progs smpeg-player
-libsmpeg0.4 libsmpeg0.4
-libsndfile-devel libsndfile1-devel
-libsndfile-utils libsndfile-progs
-libsndfile1 libsndfile-progs libsndfile1
-libsoup
-libsoup-devel
-libstdc++-devel libstdc++2.10-devel
-libstdc++2.10 libstdc++2.10
-libstdc++5.0 libstdc++5
-libstdc++5.0-devel
-libtaglib-devel libtaglib0 libtaglib0-devel
-libtaglib1 libtaglib0
-libtiff-devel libtiff3-devel
-libtiff-progs libtiff-progs
-libtiff3 libtiff3
-libtool libtool
-libtool-doc
-libucd-snmp-devel
-libucd-snmp4
-libungif-devel libungif4-devel
-libungif-doc
-libungif-progs libungif-progs
-libungif4 libungif4
-libusb-devel libusb0.1_4-devel
-libusb4
-libuser libuser
-libuser-devel libuser1-devel
-libuser-i18n-es libuser
-libuser1 libuser libuser1
-libuser1-ldap libuser
-libuser1-python
-libvorbis-devel libvorbis0-devel
-libvorbis-doc
-libvorbis3 libvorbis0 libvorbisenc2 libvorbisfile3
-libwings-devel
-libwmf-devel libwmf0.2_7-devel
-libwmf-doc
-libwmf-gtk
-libwmf-tools libwmf
-libwmf7 libwmf0.2_7
-libwnck-devel libwnck-1_16-devel
-libwnck1
-libworkman6 kdemultimedia-kscd
-libwrap-devel tcp_wrappers-devel
-libwraster
-libwraster-devel
-libwv2-devel libwv2_1 libwv2_1-devel
-libwv2_1 libwv2_1
-libwv7
-libwvstreams
-libwvstreams-devel libwvstreams3.74-devel
-libwxgtk2-2.4 libwxgtk2.4
-libwxgtk2-2.4-i18n-es
-libwxgtk2-devel libwxgtk2.4-devel
-libwxgtk2-doc
-libwxgtk2-examples
-libwxgtk2-gl libwxgtkgl2.4
-libxaw3d-devel libXaw3d7-devel
-libxaw3d6
-libxaw6 libxorg-x11
-libxaw7 libxorg-x11
-libxforms-devel
-libxforms0.89
-libxft-devel libxorg-x11-devel
-libxft2
-libxklavier libxklavier-data
-libxklavier-devel libxklavier10-devel
-libxmi-devel
-libxmi1
-libxml libxml1
-libxml-devel libxml1-devel
-libxml-doc
-libxml2 libxml2-utils libxml2
-libxml2-devel libxml2-devel
-libxml2-doc
-libxml2-python libxml2-python
-libxmltok w3c-libwww
-libxmltok-devel w3c-libwww-devel
-libxosd-devel libxosd2-devel
-libxosd-xmms xmms-xosd beep-media-player-xosd
-libxosd2 xosd-tools libxosd2
-libxslt-devel libxslt1-devel
-libxslt-doc
-libxslt1 libxslt1 libxslt-proc
-libxvid-devel
-libxvid3
-libyafcore0 libkdemultimedia1-common
-libyafxplayer0 libkdemultimedia1-common
-libz-devel zlib1-devel
-libz-devel-static zlib1-devel
-libz1 zlib1
-libzvt libzvt2.0_0
-libzvt-devel libzvt2.0_0-devel
-licq licq
-licq-common licq
-licq-console licq-console
-licq-devel licq licq-kde licq-rms licq-devel licq-console
-licq-gtk
-licq-kde licq-kde
-licq-qt licq
-licq-qt-i18n
-licq-rms licq-rms
-lilo lilo
-lilo-doc lilo-doc
-linc ORBit2 liblinc1
-linc-devel liblinc1-devel
-linc-doc liblinc1-devel
-linuxconf linuxconf-lang-pt linuxconf-util linuxconf linuxconf-lang-es
-linuxconf-accountbatch linuxconf-lang-pt linuxconf linuxconf-lang-es
-linuxconf-amandaconf linuxconf linuxconf-lang-pt linuxconf-lang-es
-linuxconf-aptconf linuxconf
-linuxconf-cnc_rbc udhcpc
-linuxconf-devel linuxconf-devel
-linuxconf-dhcpd linuxconf linuxconf-lang-pt linuxconf-lang-es
-linuxconf-dialout linuxconf-lang-pt linuxconf linuxconf-lang-es
-linuxconf-dnsconf linuxconf linuxconf-lang-es linuxconf-lang-pt
-linuxconf-fetchmailconf linuxconf-lang-pt linuxconf-lang-es linuxconf
-linuxconf-firewall linuxconf-lang-pt linuxconf linuxconf-lang-es
-linuxconf-fsbrowser
-linuxconf-grubconf linuxconf linuxconf-lang-pt linuxconf-lang-es
-linuxconf-gurus linuxconf-lang-pt linuxconf linuxconf-lang-es
-linuxconf-inetdconf linuxconf-lang-pt linuxconf linuxconf-lang-es
-linuxconf-inittab linuxconf
-linuxconf-ircdconf linuxconf-lang-pt linuxconf-lang-es linuxconf
-linuxconf-isapnpconf linuxconf linuxconf-lang-es linuxconf-lang-pt
-linuxconf-kbdconf linuxconf-lang-pt linuxconf-lang-es linuxconf
-linuxconf-kernelconf linuxconf linuxconf-lang-pt linuxconf-lang-es
-linuxconf-lib linuxconf-lib
-linuxconf-libmodules
-linuxconf-liloconf linuxconf-lang-pt linuxconf linuxconf-lang-es
-linuxconf-mailconf linuxconf linuxconf-lang-pt linuxconf-lang-es
-linuxconf-managerpm linuxconf linuxconf-lang-pt linuxconf-lang-es
-linuxconf-marsconf linuxconf linuxconf-lang-es linuxconf-lang-pt
-linuxconf-mgettyconf linuxconf
-linuxconf-modemconf linuxconf
-linuxconf-motd linuxconf
-linuxconf-mouseconf linuxconf
-linuxconf-mrtg linuxconf
-linuxconf-netadm linuxconf-lang-pt linuxconf-lang-es linuxconf
-linuxconf-nfsconf linuxconf-lang-pt linuxconf-lang-es linuxconf
-linuxconf-nisconf linuxconf linuxconf-lang-pt linuxconf-lang-es
-linuxconf-opensshd linuxconf-lang-pt linuxconf-lang-es linuxconf
-linuxconf-pamconf linuxconf-lang-pt linuxconf linuxconf-lang-es
-linuxconf-postfixconf linuxconf-lang-pt linuxconf linuxconf-lang-es
-linuxconf-pppdialin linuxconf-lang-pt linuxconf-lang-es linuxconf
-linuxconf-pslaveconf linuxconf-lang-pt linuxconf linuxconf-lang-es
-linuxconf-pythonmod linuxconf
-linuxconf-radiusconf linuxconf linuxconf-lang-es linuxconf-lang-pt
-linuxconf-rarp linuxconf linuxconf-lang-pt linuxconf-lang-es
-linuxconf-redhatppp linuxconf-lang-pt linuxconf linuxconf-lang-es
-linuxconf-report linuxconf
-linuxconf-samba linuxconf linuxconf-lang-es linuxconf-lang-pt
-linuxconf-shellmod linuxconf linuxconf-lang-es linuxconf-util linuxconf-lang-pt
-linuxconf-squid linuxconf
-linuxconf-status linuxconf-lang-pt linuxconf-lang-es linuxconf
-linuxconf-syslogconf linuxconf
-linuxconf-treemenu linuxconf
-linuxconf-updatemon linuxconf-lang-pt linuxconf-lang-es linuxconf
-linuxconf-usermenu linuxconf linuxconf-lang-pt linuxconf-lang-es
-linuxconf-usersbygroup linuxconf-lang-pt linuxconf-lang-es linuxconf
-linuxconf-uucp linuxconf
-linuxconf-vregistry linuxconf
-linuxconf-wuftpd linuxconf
-linuxconf-xkbdconf linuxconf linuxconf-lang-es linuxconf-lang-pt
-lisa-doc-es kde-i18n-es
-lm1100 printer-filters printer-utils
-lm_sensors lm_sensors
-lm_sensors-devel liblm_sensors3-devel
-lm_sensors-doc
-lm_sensors-sensord lm_sensors
-lm_sensors-tellerstats
-locolor-icon-theme kdeartwork
-logcheck logcheck
-logrotate logrotate
-logwatch logwatch
-losetup losetup
-lout lout
-lout-doc lout-doc
-lpstyl printer-filters
-lrzsz lrzsz
-lskat kdegames
-lskat-doc kdegames
-lskat-doc-es kde-i18n-es
-lslk lslk
-lsof lsof
-lsof-doc
-ltrace ltrace
-lua
-lua-devel liblua5-devel
-lvm-base
-lvm-iop10
-lvm-iop6
-lvm2 lvm2
-lwp liblwp2
-lwp-devel liblwp2-devel
-lxcontrol printer-utils
-lynx lynx
-lynx-doc
-lynx-i18n-es
-lynx-i18n-pt_BR lynx
-lyx lyx
-lz11 printer-filters
-m4 m4
-macromedia-flash-plugin
-macutils macutils
-magicdev gnome-volume-manager
-magicdev-i18n-es
-magicdev-i18n-pt_BR
-mailcap mailcap
-mailman mailman
-mailman-clamav
-mailman-i18n-es mailman
-mailman-i18n-pt_BR mailman
-mailx mailx
-make make
-make-i18n-es
-make-i18n-pt_BR
-makedev makedev
-man man
-man-i18n-en
-man-i18n-es
-man-i18n-pt_BR
-man-pages man-pages
-man-pages-devel
-man-pages-i18n-es
-man-pages-i18n-pt_BR
-mars-nwe
-mawk mawk
-mc mc
-mc-i18n-es mc
-mc-i18n-pt_BR mc
-mcrypt libmcrypt mcrypt libmcrypt4
-mcrypt-devel libmcrypt4-devel
-mcserv
-megami-doc-es kde-i18n-es
-memtest86
-mesa-doc
-metacity libmetacity-private0 metacity
-metacity-i18n-es metacity
-metacity-i18n-pt_BR metacity
-metaconf metaconf
-mgetty mgetty-sendfax mgetty
-mgetty-doc
-mgetty-sendfax hylafax-client mgetty-sendfax
-mgetty-viewfax mgetty-viewfax
-mgetty-voice mgetty-sendfax mgetty-voice
-mhash libmhash2
-mhash-devel libmhash2-devel
-mhash-doc
-mi
-mi-slides
-mi_buildtools
-migrationtools-common openldap-migration
-migrationtools-offline openldap-migration
-migrationtools-online openldap-migration
-mikmod mikmod
-mingetty mingetty
-mingetty-i18n-pt_BR
-minicom minicom
-minicom-i18n-es minicom
-minicom-i18n-pt_BR minicom
-miniperl
-mirror mirror
-mjpegtools mjpegtools
-mkbootdisk mkbootdisk
-mkfontpkg
-mkinitrd mkinitrd
-mkisofs mkisofs
-mknbi mkinitrd-net
-mktemp mktemp
-mkxauth mkxauth
-ml85p printer-filters
-mnogosearch emboss mnogosearch
-mnogosearch-devel libmnogosearch3.2-devel
-mod_auth_ldap
-mod_auth_pam mod_auth_pam
-mod_auth_pgsql
-mod_dav
-mod_perl apache-mod_perl
-mod_perl-devel mod_perl-devel
-mod_perl-doc
-mod_python
-mod_python-doc
-module-init-tools modutils module-init-tools
-modutils modutils
-mon mon
-mount util-linux mount
-mountapp mountapp
-mouseconfig
-mouseconfig-i18n-es
-mouseconfig-i18n-pt_BR
-mozilla mozilla
-mozilla-base mozilla libnss3
-mozilla-devel mozilla-devel
-mozilla-dom-inspector mozilla-dom-inspector
-mozilla-extension-diggler
-mozilla-irc mozilla-irc
-mozilla-js-debugger mozilla-js-debugger
-mozilla-mail mozilla-mail
-mozilla-psm
-mozplugger mozplugger
-mp3c mp3c
-mpage mpage
-mpeglib libkdemultimedia1-common kdemultimedia-common
-mpg321 mpg123 mpg321
-mplayer mencoder mplayer-gui mplayer
-mplayer-doc
-mplayer-skins mplayer-gui mplayer-skins
-mrtg mrtg
-mrtg-doc
-mrtg-extras
-mtools mtools
-mtools-doc
-mtools-floppyd mtools
-mtools-i18n-pt_BR
-mtr mtr
-mtr-gtk mtr-gtk
-mutt mutt
-mutt-doc
-mutt-help
-mutt-i18n-es mutt
-mutt-i18n-pt_BR mutt
-mutt-ldap
-myfirewallcontrol
-myfirewallcontrol-doc
-myfirewallcontrol-i18n-pt_BR
-mysql MySQL-client MySQL-common
-mysql-bench MySQL-bench
-mysql-client MySQL-client
-mysql-doc
-nagios nagios
-nagios-cgi nagios nagios-www
-nagios-devel nagios-devel
-nagios-nsca
-nagios-plugins nagios-plugins
-nagios-plugins-extras nagios-plugins
-nasm nasm
-nasm-doc nasm-doc
-nautilus libnautilus2 nautilus
-nautilus-cd-burner nautilus-cd-burner
-nautilus-cd-burner-i18n-es nautilus-cd-burner
-nautilus-cd-burner-i18n-pt_BR nautilus-cd-burner
-nautilus-devel libnautilus2-devel
-nautilus-extras nautilus
-nautilus-i18n-es nautilus
-nautilus-i18n-pt_BR nautilus
-nautilus-media
-nautilus-media-i18n-es
-nautilus-media-i18n-pt_BR
-nautilus-suggested nautilus
-nc nc
-ncftp ncftp
-ncompress ncompress
-ncpfs libncpfs2.3 ncpfs
-ncpfs-libs libncpfs2.3
-ncpfs-libs-devel libncpfs2.3-devel
-ncurses libncurses5 ncurses-extraterms ncurses
-ncurses-devel libncurses5-devel
-ncurses-doc
-ncurses-i18n-pt_BR
-ncurses-term ncurses-extraterms
-ncurses4
-nedit nedit
-net-snmp net-snmp net-snmp-trapd net-snmp-mibs
-net-snmp-devel libnet-snmp5-devel
-net-snmp-doc
-net-snmp-utils net-snmp-utils
-net-tools net-tools
-net-tools-i18n-pt_BR net-tools
-netatalk netatalk
-netatalk-devel netatalk-devel
-netconfig pump
-netpbm netpbm
-newpg gnupg2
-newt newt
-newt-devel libnewt0.51-devel
-nfs-server
-nfs-utils nfs-utils nfs-utils-clients
-nmap nmap
-nmap-doc
-nmap-frontend nmap-frontend
-noatun kdemultimedia-noatun libkdemultimedia1-noatun kdemultimedia-common
-noatun-addons libkdeaddons1-noatun kdeaddons-noatun
-noatun-doc kdemultimedia-noatun
-noatun-doc-es kde-i18n-es
-normalize normalize
-nscd nscd
-nss_ldap nss_ldap
-ntfsprogs ntfsprogs
-ntop ntop
-ntp ntp-client ntp openntpd
-ntp-doc
-ntsysv ntsysv
-numlock numlock
-oaf liboaf0 oaf
-oaf-devel liboaf0-devel oaf
-oaf-i18n-es oaf
-oaf-i18n-pt_BR oaf
-objc
-octave octave
-octave-devel
-octave-doc octave-doc
-oggificator
-oki4linux printer-filters
-omni
-omni-brother
-omni-canon
-omni-cups
-omni-epson
-omni-foomatic
-omni-hp
-omni-ibm
-omni-ks
-omni-kyocera
-omni-lib
-omni-oki
-omni-panasonic
-omni-star
-openjade OpenSP openjade libopenjade0 libosp0
-openjade-devel libosp0-devel libOpenSP3-devel libopenjade0-devel
-openjade-doc
-openldap openldap
-openldap-client openldap-clients
-openldap-devel libldap2.2_7-devel
-openldap-doc openldap-doc
-openldap-server openldap-servers
-openmotif lesstif-clients
-openmotif-demos
-openmotif-devel lesstif-clients lesstif-devel
-openmotif-mwm lesstif-mwm
-openoffice.org OpenOffice.org-l10n-es OpenOffice.org OpenOffice.org-l10n-pt_BR
-openoffice.org-i18n-en_US OpenOffice.org-help-en OpenOffice.org OpenOffice.org-l10n-en
-openoffice.org-i18n-es_ES OpenOffice.org-help-es OpenOffice.org-l10n-es
-openoffice.org-i18n-pt_BR OpenOffice.org-help-pt_BR OpenOffice.org-l10n-pt_BR OpenOffice.org-l10n-en
-openoffice.org-libs OpenOffice.org-libs
-openslp openslp
-openslp-doc
-openssh openssh
-openssh-askpass openssh-askpass
-openssh-askpass-gnome openssh-askpass-gnome
-openssh-clients openssh openssh-clients
-openssh-server openssh-server
-openssl-devel libopenssl0.9.7-devel
-openssl-devel-static libopenssl0.9.7-static-devel
-openssl-doc
-openssl-progs openssl
-openssl0.9.7 libopenssl0.9.7
-orbit1 ORBit libORBit0
-orbit1-devel libORBit0-devel
-orbit2 libORBit2_0 ORBit2
-orbit2-devel ORBit2 libORBit2_0-devel
-pam pam
-pam-devel libpam0-devel
-pam-doc pam-doc
-pam-extra libpam0
-pam_krb5 pam_krb5
-pam_ldap pam_ldap
-pam_mount pam_mount
-pam_smb pam_smb
-pam_smb_passwd
-pan pan
-pan-i18n-es pan
-pan-i18n-pt_BR pan
-pango libpango1.0_0-modules pango libpango1.0_0
-pango-devel libpango1.0_0-devel
-pango-doc pango
-parted16 parted
-parted16-devel libparted1.6-devel
-parted16-i18n-es parted
-parted16-i18n-pt_BR parted
-partimage partimage
-passwd passwd
-patch patch
-pax pax
-pbm2l2030 printer-filters
-pbm2lwxl printer-filters
-pciutils pciutils
-pciutils-devel pciutils-devel
-pcl3-cups
-pcre libpcre0 pcre
-pcre-devel libpcre0-devel
-pcsc-lite pcsc-lite
-pcsc-lite-devel pcsc-lite-devel
-pdksh pdksh
-pear-date php-pear-Date
-pear-hcemd5
-pear-log php-pear-Log php-pear
-pear-mail-mime php-pear
-pentaxpj printer-filters
-perguntas_e_respostas
-perl perl
-perl-archive-tar perl-Archive-Tar
-perl-archive-zip perl-Archive-Zip
-perl-authen-sasl perl-Authen-SASL
-perl-base perl-base
-perl-compress-zlib perl-Compress-Zlib
-perl-convert-asn1 perl-Convert-ASN1
-perl-convert-ber perl-Convert-BER
-perl-convert-tnef perl-Convert-TNEF
-perl-convert-uulib perl-Convert-UUlib
-perl-crypt-ssleay perl-Crypt-SSLeay
-perl-date-calc perl-Date-Calc
-perl-datemanip perl-DateManip
-perl-dbd-pg perl-DBD-Pg
-perl-dbi perl-DBI-proxy perl-DBI
-perl-devel perl-devel
-perl-digest-hmac perl-Digest-HMAC
-perl-digest-nilsimsa perl-Digest-Nilsimsa
-perl-digest-sha1 perl-Digest-SHA1
-perl-doc perl-doc
-perl-file-tail perl-File-Tail
-perl-html-parser perl-HTML-Parser
-perl-html-tagset perl-HTML-Tagset
-perl-http-ghttp
-perl-imagemagick
-perl-io-socket-ssl perl-IO-Socket-SSL
-perl-io-stringy perl-IO-stringy
-perl-ldap perl-ldap
-perl-libwww-perl perl-libwww-perl
-perl-libxml-enno perl-libxml-enno
-perl-libxml-perl perl-libxml-perl
-perl-mailtools perl-MailTools
-perl-mime-tools perl-MIME-tools
-perl-mime-tools-doc
-perl-modules
-perl-mon perl-Mon
-perl-msql-mysql-modules
-perl-net-daemon perl-Net-Daemon
-perl-net-dns perl-Net-DNS
-perl-net-ping
-perl-net-server perl-Net-Server
-perl-net-ssleay
-perl-parse-yapp perl-Parse-Yapp
-perl-period perl-Period
-perl-plrpc perl-PlRPC
-perl-postgresql
-perl-sdl perl-SDL
-perl-sgmlspm perl-SGMLSpm
-perl-suidperl perl-suid
-perl-timedate perl-TimeDate
-perl-unix-syslog perl-Unix-Syslog
-perl-uri perl-URI
-perl-utils perl perl-doc
-perl-xml-parser perl-XML-Parser
-perl-xml-sax perl-XML-SAX
-pflogsumm pflogsumm
-php-net-socket php-pear
-php4 php-ini php-cli php-pear
-php4-dba
-php4-devel php432-devel
-php4-doc
-php4-imap
-php4-ldap
-php4-mcrypt
-php4-mhash
-php4-mnogosearch
-php4-mssql
-php4-mysql
-php4-odbc
-php4-pgsql
-php4-snmp
-php4-sybase
-php4-sybase-ct
-phpgroupware phpgroupware
-pidentd pidentd
-pilot-link libpisync0 libpisock8 libpisock++0 pilot-link
-pilot-link-devel libpisock8-devel
-pinentry-curses pinentry
-pinentry-gtk pinentry-gtk
-pinentry-info
-pinentry-qt pinentry-qt
-pinfo pinfo
-ping iputils
-pkgconfig pkgconfig
-planner planner-database planner
-planner-i18n-es planner
-planner-i18n-pt_BR planner
-plotutils plotutils
-pnm2ppa printer-filters
-popt libpopt0
-popt-devel libpopt0-devel
-popt-devel-static libpopt0-devel
-popt-doc
-portaudio libportaudio0
-portaudio-devel libportaudio0-devel
-portmap portmap
-portmap-static
-portslave
-poster printer-utils
-postfix postfix
-postfix-doc
-postgresql postgresql-server postgresql
-postgresql-clients postgresql
-postgresql-contrib postgresql-contrib
-postgresql-devel libpq4-devel libecpg5-devel postgresql-devel
-postgresql-doc
-postgresql-odbc
-postgresql-pgaccess pgaccess
-postgresql-tcl libpgtcl2 postgresql-tcl
-postgresql-test postgresql-test
-ppmtomd printer-filters
-ppmtotbmp
-ppp ppp
-ppp-devel ppp-devel
-privoxy privoxy
-procinfo procinfo
-procmail procmail
-procps procps
-proftpd proftpd
-proftpd-doc
-psacct psacct
-psgml emacs-psgml
-psmisc psmisc
-psmisc-i18n-en psmisc
-psutils psutils
-pump pump
-pump-devel pump-devel
-pump-i18n-es pump
-pump-i18n-pt_BR pump
-pup printer-utils
-pwdb pwdb-conf
-pwdb-devel libpwdb0-devel
-pwdb-doc
-pwlib libpwlib1
-pwlib-devel libpwlib1-devel
-py2pdf
-pychecker pychecker
-pygame pygame
-pygame-devel
-pygame-doc pygame-doc
-pyorbit2
-pyorbit2-devel pyorbit-devel
-pysol pysol-cardsets pysol
-pysol-cardsets pysol-cardsets
-python python-base python
-python-MySQLdb
-python-MySQLdb-doc
-python-adns
-python-beecrypt
-python-biggles
-python-clientcookie
-python-clientform
-python-dateutil
-python-devel
-python-doc
-python-freeze
-python-gtk python-gtk
-python-gtk+2
-python-gtk+2-devel pygtk2.0-devel
-python-gtk+2-examples
-python-gtk+2-libglade
-python-idle tkinter
-python-imaging python-imaging
-python-imaging-devel python-imaging-devel
-python-kudzu
-python-ldap python-ldap
-python-libglade
-python-matplotlib
-python-mx
-python-newt
-python-ninz
-python-numeric python-numeric
-python-numeric-devel python-numeric-devel
-python-numeric-doc
-python-postgresql
-python-qt PyQt PyQt-devel
-python-qt-doc
-python-qt-examples
-python-reportlab python-reportlab
-python-reportlab-doc
-python-reportlab-docco
-python-reportlab-platypus
-python-reportlab-test
-python-rpm
-python-sip sip
-python-spread
-python-sqlite python-sqlite
-python-subversion python-svn
-python-tkinter
-python-wxgtk2 wxPythonGTK
-python-wxgtk2-examples
-pythonlib pythonlib
-pythonpoint
-pyxf86config
-qcad qcad
-qcad-doc
-qscintilla
-qscintilla-devel libqscintilla5-devel
-qt3 qt3-common libqt3
-qt3-assistant-lib
-qt3-database-plugin-mysql
-qt3-database-plugin-odbc
-qt3-database-plugin-pgsql
-qt3-designer libqt3-devel
-qt3-designer-lib libqt3
-qt3-devel libqt3-devel
-qt3-doc libqt3-devel libqt3
-qt3-examples
-qt3-linguist libqt3-devel
-qt3-tutorial
-quanta libkdewebdev0-kfilereplace kdewebdev-kfilereplace kdewebdev
-quanta-devel
-quanta-doc kdewebdev
-quanta-doc-pt_BR kde-i18n-pt_BR
-quanta-reference-css
-quanta-reference-html
-quanta-reference-javascript
-quanta-reference-php
-quota quota
-radiusd-cistron freeradius radiusd-cistron
-raidtools raidtools
-rarpd rarpd
-razor-agents perl-Razor-Agent
-rcs rcs
-rcs-doc
-rdate rdate
-rdesktop rdesktop
-rdist rdist
-readline
-readline-devel libreadline5-devel
-redir redir
-reiserfs-utils reiserfsprogs
-rfb rfb
-rhpl
-rhpl-i18n-es
-rhpl-i18n-pt_BR
-rhythmbox rhythmbox
-rhythmbox-i18n-es rhythmbox
-rhythmbox-i18n-pt_BR rhythmbox
-rman
-rmt rmt
-rootfiles rootfiles
-routed routed
-rp-pppoe rp-pppoe-gui rp-pppoe
-rp-pppoe-gui rp-pppoe-gui
-rp-pppoe-server rp-pppoe
-rplay
-rplay-devel
-rpm rpm
-rpm-build rpm-build
-rpm-devel librpm4.4-devel
-rpm-doc
-rpm-i18n-es
-rpm-i18n-es_ES
-rpm-i18n-pt_BR
-rpm2cpio rpm
-rrdtool rrdtool
-rrdtool-doc
-rsh rsh
-rsh-server rsh-server
-rstart xorg-x11
-rsync rsync
-rusers rusers
-rusers-server rusers-server
-rwall rwall
-rwho rwho
-sablotron libsablotron0 sablotron
-sablotron-devel libsablotron0-devel
-sablotron-doc
-samba-clients smbget samba-common
-samba-common samba-swat samba-common samba-server
-samba-doc samba-doc
-samba-server samba-common samba-server tdb-utils
-samba-swat samba-doc samba-swat
-samba-testprogs
-samba-vfs samba-server
-samba-vscan-clamav samba-vscan-clamav
-samba-vscan-fprot
-samba-vscan-fsecure
-samba-vscan-kaspersky
-samba-vscan-mks
-samba-vscan-oav
-samba-vscan-sophos
-samba-vscan-trend
-samba-winbind samba-winbind samba-server nss_wins
-sane sane-backends
-sane-devel libsane1-devel
-sane-doc
-sane-frontends sane-frontends
-sane-server
-sash sash
-sasl2 libsasl2
-sasl2-devel libsasl2-devel
-sasl2-devel-static libsasl2-devel
-sasl2-doc
-sasl2-plug-anonymous libsasl2-plug-anonymous
-sasl2-plug-crammd5 libsasl2-plug-crammd5
-sasl2-plug-digestmd5 libsasl2-plug-digestmd5
-sasl2-plug-gssapi libsasl2-plug-gssapi
-sasl2-plug-login libsasl2-plug-login
-sasl2-plug-ntlm libsasl2-plug-ntlm
-sasl2-plug-otp libsasl2-plug-otp
-sasl2-plug-plain libsasl2-plug-plain
-sasl2-plug-sasldb libsasl2-plug-sasldb
-sasl2-programs cyrus-sasl
-schedutils
-screem screem
-screem-i18n-es screem
-screem-i18n-pt_BR screem
-screen ncurses ncurses-extraterms screen
-scribus libscribus0 scribus
-scribus-devel libscribus0-devel
-scribus-doc scribus
-scrollkeeper libscrollkeeper0 scrollkeeper
-scrollkeeper-i18n-es scrollkeeper
-scrollkeeper-i18n-pt_BR scrollkeeper
-sdcc sdcc
-sdcc-doc sdcc
-secpolicy kdeadmin
-sed sed
-sed-i18n-es sed
-sed-i18n-pt_BR sed
-sendmail sendmail
-sendmail-cf sendmail-cf
-sendmail-doc sendmail-doc
-setserial setserial
-setup lsb setup
-sg3_utils sg3_utils
-sg_map
-sginfo
-sgml-common openjade sgml-common
-sgml-tools linuxdoc-tools
-sgml-tools-doc
-shadow-utils shadow-utils
-shadow-utils-doc
-shadow-utils-i18n-pt_BR
-shared-mime-info shared-mime-info
-sharutils sharutils
-shout
-showimg showimg
-showimg-doc showimg
-showimg-i18n-es showimg
-showimg-i18n-pt_BR showimg
-slang-doc slang-doc
-slib
-slick-icon-theme kdeartwork
-sliplogin
-slocate slocate
-slocate-i18n-pt_BR
-slrn slrn
-slrn-i18n-es slrn
-slrn-pull slrn-pull
-smartmontools smartmontools
-smbldap-tools smbldap-tools
-snort snort
-sodipodi sodipodi
-sodipodi-i18n-es sodipodi
-sodipodi-i18n-pt_BR sodipodi
-sox sox
-sox-devel sox-devel
-spamassassin spamassassin-spamd spamassassin spamassassin-spamc
-spamassassin-doc
-speak_freely
-speak_freely-gui
-spread
-spread-devel
-sqlite libsqlite0 sqlite-tools
-sqlite-devel libsqlite0-devel
-squid squid
-squid-auth squid
-squid-extra-templates
-squirm
-startup-notification libstartup-notification-1_0
-startup-notification-devel libstartup-notification-1_0-devel
-statserial statserial
-strace strace
-stunnel stunnel
-stunnel-doc
-subversion subversion subversion-repos libsvn_ra_local1_0 libsvn_repos1_0 libsvn_diff1_0 libsvn_client1_0 libsvn_subr1_0 libsvn_ra_dav1_0 libsvn_ra_svn1_0 libsvn_delta1_0
-subversion-devel python-svn-devel libsubversion1_0-devel
-subversion-doc subversion-doc
-subversion-server subversion-server
-sudo sudo
-sudo-doc
-sun-java2
-sun-jre
-sun-jre-java-odbc
-sun-jre-java-plugin
-swatch swatch
-swig swig
-swig-devel swig-devel
-sxid
-sylpheed sylpheed2 sylpheed-claws sylpheed-claws2 sylpheed
-sylpheed-doc sylpheed sylpheed2
-sylpheed-i18n-es sylpheed sylpheed2
-sylpheed-i18n-pt_BR sylpheed sylpheed2
-symlinks symlinks
-synaptic rpmdrake
-synaptic-i18n-es
-synaptic-i18n-pt_BR
-sysklogd sysklogd
-syslinux syslinux
-system-config-soundcard
-sysvinit dpkg lsb SysVinit
-sysvinit-devel
-sysvinit-doc
-t1lib t1lib-config
-t1lib-devel libt1lib5-devel
-t1lib-fonts
-t1lib-progs libt1lib1-progs t1lib-progs
-talk talk
-talk-server talk-server
-tar tar
-tar-i18n-es tar
-tar-i18n-pt_BR tar
-task-alsa
-task-alsa-devel
-task-base
-task-c++-devel
-task-c-devel
-task-cd_recording-base
-task-config-tools
-task-core
-task-debug
-task-desktop-common
-task-docbook-sgml
-task-docbook-xml
-task-foomatic
-task-ghostscript
-task-gimp-print
-task-gimp-print-cups
-task-gnome gnome-volume-manager
-task-gnome-devel
-task-gnome-minimal gnome-volume-manager
-task-gnomeutils
-task-gst-plugins
-task-ha
-task-kde gnome-volume-manager
-task-kde-base-devel
-task-kde-enterprise
-task-kde-i18n-es
-task-kde-i18n-pt_BR
-task-kde-minimal gnome-volume-manager
-task-kde-standard gnome-volume-manager
-task-kernel-compiling
-task-mail-server
-task-mi-stage2
-task-nautilus
-task-network-base
-task-omni
-task-printer-canon
-task-printer-epson
-task-printer-hp
-task-printer-lexmark
-task-printer-misc
-task-printer-okidata
-task-printer-server
-task-printers
-task-profile-devel
-task-profile-emailserver
-task-profile-enterprise
-task-profile-firewallserver
-task-profile-gnome
-task-profile-minimal
-task-profile-notebook
-task-profile-sambaserver
-task-profile-standard
-task-profile-webserver
-task-python-devel
-task-webmin-desktop drakconf
-task-windowmaker
-task-x-window-system desktop-common-data
-tcl tcl
-tcl-devel tcl
-tcllib tcllib
-tclx tclx
-tclx-devel tclx
-tclx-helpfiles tclx
-tcpd tcp_wrappers
-tcpdump tcpdump
-tcptrace
-tcsh rootfiles setup tcsh
-tcsh-doc
-technical-icon-theme
-telnet telnet-client-krb5 telnet
-telnet-server
-tetex tetex texi2html tetex-context tetex-mfwin tetex-dvipdfm tetex-dvips tetex-xdvi tetex-texi2html texinfo tetex-doc
-tetex-afm tetex-afm
-tetex-devel tetex-devel
-tetex-doc tetex-doc
-tetex-dvilj tetex-latex tetex-dvilj
-tetex-dvips tetex tetex-latex tetex-dvips
-tetex-latex tetex-context tetex-latex
-tetex-xdvi tetex-xdvi
-tethereal tethereal
-texinfo info texinfo
-texinfo-doc
-tftp-hpa tftp-server tftp
-thesaurus-docs-es koffice-i18n-es
-tightvnc tightvnc
-tightvnc-doc tightvnc-doc
-tightvnc-java tightvnc
-tightvnc-server tightvnc-server
-time time
-timeconfig timeconfig
-timeconfig-i18n-es timeconfig
-timeconfig-i18n-es_ES
-timeconfig-i18n-pt_BR timeconfig
-timezone glibc timezone
-tk tk
-tk-demos
-tk-devel tk
-tmpwatch tmpwatch
-totem totem-common totem
-totem-i18n-es totem-common
-totem-i18n-pt_BR totem-common
-traceroute traceroute
-trafshow
-transcode
-transcode-doc
-transfig transfig
-tree tree
-ttf-uddiuddi
-ttf2pt1 lcdf-typetools t1utils
-ttmkfdir freetype-tools
-tux_aqfh tux_aqfh
-tuxracer wherever-racer tuxracer
-tvtime tvtime
-twiki
-twm xorg-x11
-txt2regex txt2regex
-txt2regex-i18n-pt_BR txt2regex
-txt2tags
-type1-freefonts
-udev udev
-umb-scheme umb-scheme
-umbrello kdesdk kdesdk-umbrello
-umbrello-doc-es kde-i18n-es
-umbrello-doc-pt_BR kde-i18n-pt_BR
-uml-net-tools
-unarj
-unix2dos unix2dos
-unixodbc libunixODBC1 unixODBC
-unixodbc-MiniSQL libunixODBC1
-unixodbc-MySQL libmyodbc1-devel libunixODBC1
-unixodbc-devel libmyodbc1-devel libunixODBC1-devel
-unixodbc-doc
-unixodbc-easysoft libunixODBC1
-unixodbc-freetds libunixODBC1
-unixodbc-kde libunixODBC1-qt unixODBC-gui-qt
-unixodbc-nn libunixODBC1
-unixodbc-openlinks libunixODBC1
-unixodbc-oracle libunixODBC1
-unixodbc-postgres libunixODBC1
-unixodbc-progs unixODBC
-unixodbc-sapdb libunixODBC1
-unixodbc-txt libunixODBC1
-unrar
-unzip unzip
-urlview urlview
-usb-mount hotplug
-usbutils usbutils
-usermode usermode-consoleonly usermode
-usermode-gtk usermode
-usermode-i18n-es usermode-consoleonly
-usermode-i18n-pt_BR usermode-consoleonly
-utempter utempter
-util-linux shadow-utils util-linux
-util-linux-i18n-es util-linux
-util-linux-i18n-pt_BR util-linux
-uucp uucp
-uucp-cu uucp
-uucp-doc
-uudeview uudeview
-uw-imap-doc
-uw-imap-server imap
-uw-pop-server imap
-valgrind valgrind
-valgrind-doc valgrind
-vcdimager vcdimager
-vera
-verynice
-vim-X11 vim-common vim-X11
-vim-common vim-common
-vim-enhanced vim-enhanced
-vim-help
-vim-minimal vim-minimal
-vim-syntax
-vimpart libkdeaddons1-devel libkdeaddons1 kdeaddons
-viralator
-vixie-cron vixie-cron
-vixie-cron-i18n-pt_BR
-vlock vlock
-vorbis-tools vorbis-tools
-vsftpd vsftpd
-vte libvte4 vte
-vte-devel libvte4-devel
-vte-i18n-es vte
-vte-i18n-pt_BR vte
-vtun vtun
-w3c-libwww w3c-libwww
-w3c-libwww-apps w3c-libwww-apps
-w3c-libwww-devel w3c-libwww-devel
-webalizer webalizer
-webalizer-doc
-weblint
-webmin-base webmin
-webmin-desktop webmin
-webmin-server webmin
-webmin-theme-conectiva
-webmin-theme-lynx
-webxref
-wget wget
-wget-i18n-es wget
-wget-i18n-pt_BR wget
-which which
-wine wine wine-utils
-wine-devel libwine1-devel
-wine-doc
-wireless-tools wireless-tools
-wmaker WindowMaker
-wmaker-doc
-wmaker-i18n-es WindowMaker
-wmaker-themes wmaker-themes
-wmakerconf
-wmcalclock
-wmifs wmii
-wmmixer
-wmmon
-words words
-wserv BitchX
-wsoundserver
-wsoundserver-data
-wsoundserver-devel
-wu-ftpd wu-ftpd
-wv wv
-wv-devel libwv-1.0_2-devel libwv-1.0_0-devel
-wvdial wvdial
-x3270 x3270
-xauth xorg-x11-xauth
-xawtv xawtv-control fbtv xawtv-misc xawtv xawtv-common motv
-xawtv-misc xawtv-misc
-xawtv-radio radio
-xawtv-streamer streamer
-xawtv-ttv ttv
-xawtv-webcam xawtv-web
-xchat xchat
-xchat-base xchat-perl xchat-tcl xchat-python xchat
-xchat-base-i18n-es xchat
-xchat-base-i18n-es_ES
-xchat-base-i18n-pt_BR xchat
-xchat-text xchat
-xclass xclass-icons
-xclass-devel libxclass0-devel
-xdialog Xdialog
-xdialog-i18n-es Xdialog
-xdialog-i18n-pt_BR Xdialog
-xdm xorg-x11 xinitrc
-xdosemu xdosemu
-xemacs xemacs-extras gnuserv xemacs
-xfig xfig
-xfig-doc xfig
-xfree86
-xfree86-bench xorg-x11
-xfree86-common xorg-x11 groff-gxditview libxorg-x11 xpat2 xdu
-xfree86-config xorg-x11
-xfree86-devel xorg-x11 libxorg-x11-devel libxpm4-devel
-xfree86-devel-static libxorg-x11-devel libxorg-x11-static-devel libxpm4-devel
-xfree86-doc xorg-x11
-xfree86-driver-apm xorg-x11-server xorg-x11
-xfree86-driver-ark xorg-x11-server
-xfree86-driver-ati xorg-x11-server xorg-x11
-xfree86-driver-ati-dri xorg-x11-server
-xfree86-driver-chips xorg-x11 xorg-x11-server
-xfree86-driver-cirrus xorg-x11-server
-xfree86-driver-cyrix xorg-x11 xorg-x11-server
-xfree86-driver-fbdev xorg-x11-server
-xfree86-driver-glide
-xfree86-driver-glint xorg-x11-server
-xfree86-driver-i128 xorg-x11-server xorg-x11
-xfree86-driver-i740 xorg-x11-server xorg-x11
-xfree86-driver-i810 xorg-x11 xorg-x11-server
-xfree86-driver-i810-dri libxorg-x11 xorg-x11-server
-xfree86-driver-mga xorg-x11-server
-xfree86-driver-mga-dri xorg-x11-server
-xfree86-driver-neomagic xorg-x11-server
-xfree86-driver-nsc xorg-x11-server
-xfree86-driver-nv xorg-x11-server
-xfree86-driver-nvidia
-xfree86-driver-rendition xorg-x11 xorg-x11-server
-xfree86-driver-s3 xorg-x11-server
-xfree86-driver-s3virge xorg-x11 xorg-x11-server
-xfree86-driver-savage xorg-x11-server
-xfree86-driver-siliconmotion xorg-x11-server
-xfree86-driver-sis xorg-x11 xorg-x11-server
-xfree86-driver-sis-dri xorg-x11-server
-xfree86-driver-synaptics synaptics
-xfree86-driver-tdfx xorg-x11-server
-xfree86-driver-tdfx-dri xorg-x11-glide-module
-xfree86-driver-tga xorg-x11-server xorg-x11
-xfree86-driver-trident xorg-x11-server
-xfree86-driver-tseng xorg-x11-server
-xfree86-driver-vesa xorg-x11-server
-xfree86-driver-vga xorg-x11-server
-xfree86-driver-via xorg-x11-server
-xfree86-driver-vmware xorg-x11-server
-xfree86-icons
-xfree86-libs
-xfree86-libs-common libxpm4 libxorg-x11
-xfree86-manpages
-xfree86-minimal
-xfree86-misc-locales xorg-x11
-xfree86-modules-afb xorg-x11-server
-xfree86-modules-cfb xorg-x11-server
-xfree86-modules-codeconv
-xfree86-modules-extended-input xorg-x11-server
-xfree86-modules-fb xorg-x11-server
-xfree86-modules-fb-lowcolor xorg-x11-server
-xfree86-modules-fb-multi-depths xorg-x11-server
-xfree86-modules-freetype
-xfree86-modules-xaa xorg-x11-server
-xfree86-modules-xtt
-xfree86-progs X11R6-contrib xterm xorg-x11
-xfree86-proxy xorg-x11
-xfree86-server
-xfree86-server-common xorg-x11 xorg-x11-server XFree86-server-common
-xfree86-xfs xorg-x11 xorg-x11-xfs
-xfree86-xkb libxorg-x11 xorg-x11
-xfree86-xnest xorg-x11-Xnest
-xfree86-xprt xorg-x11-Xprt
-xfree86-xvfb xorg-x11-Xvfb
-xfsdump xfsdump
-xfsdump-i18n-pt_BR
-xfsprogs libxfs1 xfsprogs
-xfsprogs-devel libxfs1-devel
-ximian-connector ximian-connector
-ximian-connector-devel
-ximian-connector-doc
-xine
-xine-lib libxine1 xine-plugins
-xine-lib-alsa
-xine-lib-arts
-xine-lib-devel libxine1-devel
-xine-lib-dxr3
-xine-lib-esd
-xine-lib-gnome_vfs
-xine-lib-i18n-es xine-plugins
-xine-lib-i18n-pt_BR xine-plugins
-xine-lib-oggvorbis
-xine-lib-oss
-xine-lib-w32dll
-xine-lib-xv
-xine-ui xine-ui-fb xine-ui
-xine-ui-i18n-es xine-ui
-xine-ui-i18n-pt_BR xine-ui
-xine-ui-skins xine-skins
-xinetd xinetd-simple-services xinetd
-xinetd-devel
-xlockmore xlockmore
-xml-common sgml-common
-xmms xmms-alsa libxmms1 xmms xmms-diskwriter
-xmms-arts xmms-arts
-xmms-crossfade xmms-crossfade
-xmms-devel libxmms1-devel
-xmms-esd xmms-esd
-xmms-flac flac-xmms
-xmms-gl xmms-mesa
-xmms-i18n-en xmms
-xmms-i18n-es xmms
-xmms-i18n-pt_BR xmms
-xmms-mikmod xmms-mikmod
-xmms-normalize normalize xmms-normalize
-xmms-oss xmms
-xmms-skins xmms-skins
-xmms-volume-normalizer xmms-normalize
-xmms-vorbis xmms
-xpdf xpdf
-xpdf-progs xpdf
-xscreensaver xscreensaver
-xscreensaver-gl xscreensaver-gl
-xscreensaver-i18n-es xscreensaver
-xscreensaver-i18n-pt_BR xscreensaver
-xscripts xinitrc xorg-x11
-xscripts-i18n-pt_BR
-xterm xorg-x11 xterm
-xtux xtux
-xvattr xvattr
-xwpe
-xwpe-X11
-xwpick xwpick
-yafray
-yelp yelp
-yelp-i18n-es yelp
-yelp-i18n-pt_BR yelp
-yp-tools yp-tools
-ypbind-mt ypbind
-ypserv ypserv
-zebra quagga
-zenity zenity
-zenity-i18n-es zenity
-zenity-i18n-pt_BR zenity
-zip zip
-zisofs-tools zisofs-tools
diff --git a/perl-install/install/share/upgrade/conectiva.10/pre.keep-kde-profile b/perl-install/install/share/upgrade/conectiva.10/pre.keep-kde-profile
deleted file mode 100755
index 26aff73d7..000000000
--- a/perl-install/install/share/upgrade/conectiva.10/pre.keep-kde-profile
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-mkdir -p /usr/share/apps/konqueror/profiles
-for i in Conectiva cnccontrol conectiva-smb filemanagement-conectiva; do
- cp -f /usr/lib/kde3/share/apps/konqueror/profiles/$i /usr/share/apps/konqueror/profiles
-done
diff --git a/perl-install/install/share/upgrade/conectiva.10/pre.merge-groups.sh b/perl-install/install/share/upgrade/conectiva.10/pre.merge-groups.sh
deleted file mode 100755
index b735d2bbe..000000000
--- a/perl-install/install/share/upgrade/conectiva.10/pre.merge-groups.sh
+++ /dev/null
@@ -1,87 +0,0 @@
-#!/bin/bash
-#
-# cnc2mdv /etc/group file merger
-#
-# What it does:
-#
-# - Adds three new groups:
-# - Check if these groups or its gids already exists;
-# - Remove root from the wheel group.
-#
-
-destfile=${destfile:-/etc/group}
-backupfile=${destfile}.cnc2mdv
-
-# these are the new groups that are introduced by Mandriva
-groups=( usb 43 tape 21 nogroup 65534 )
-
-# error codes
-group_already_exists_=8
-group_already_exists=9
-gid_not_unique=4
-
-sort_groups_by_gid()
-{
- sort -nt: +2 -3 -o $destfile $destfile #wow
-
- return 0
-}
-
-
-add_new_groups()
-{
- for (( i=0; i < ${#groups[@]}; i += 2)); do
- n=$[$i+1]
- gid=${groups[$n]}
- gname=${groups[$i]}
-
- errors=yes
- while [ $errors = "yes" ]; do
- groupadd -g $gid $gname
- case $? in
- 0)
- # ok, no errors, group really added
- errors=no
- ;;
-
- $group_already_exists | $group_already_exists_ )
- # ok, no problem at all
- errors=no
- ;;
-
- $gid_not_unique)
- # bleh, increment gid and try again
- # hum, but if ... 65534?
- gid=$[$gid+1]
- ;;
-
- *)
- echo "unexpected error during groupadd ($?)"
- return 1;
- ;;
- esac
- done # while errors
- done # for
-
- return 0
-}
-
-
-remove_root_from_wheel()
-{
- sed -i 's/\(wheel:[^:]*:[^:]*:\)root,*\(.*\)/\1\2/' ${destfile}
-
- return 0
-}
-
-
-main()
-{
- add_new_groups &&
- sort_groups_by_gid &&
- remove_root_from_wheel
-}
-
-main
-
-# vim:ts=4:sw=4:ai
diff --git a/perl-install/install/share/upgrade/conectiva.10/pre.remove-conflicting-files.sh b/perl-install/install/share/upgrade/conectiva.10/pre.remove-conflicting-files.sh
deleted file mode 100755
index 3db2fee4f..000000000
--- a/perl-install/install/share/upgrade/conectiva.10/pre.remove-conflicting-files.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-rm -f /usr/share/apps/kdm
diff --git a/perl-install/install/steps.pm b/perl-install/install/steps.pm
index b29697d05..0319a6575 100644
--- a/perl-install/install/steps.pm
+++ b/perl-install/install/steps.pm
@@ -1,4 +1,4 @@
-package install::steps; # $Id$
+package install::steps;
use diagnostics;
use strict;
@@ -103,8 +103,6 @@ sub kill_action {}
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};
$o->{locale}{langs} ||= { $o->{locale}{lang} => 1 };
if (!exists $o->{locale}{country}) {
@@ -128,7 +126,13 @@ sub selectLanguage {
$o->charsetChanged;
addToBeDone {
- lang::write_langs($o->{locale}{langs});
+ if ($o->{isUpgrade}) {
+ #- preserve existing locale settings (mga#24671)
+ $o->{locale} = lang::read();
+ $o->{locale}{langs}{$o->{locale}{lang}} = 1;
+ } else {
+ lang::write_langs($o->{locale}{langs});
+ }
} 'formatPartitions';
addToBeDone {
lang::write_and_install($o->{locale}, $o->do_pkgs);
@@ -140,14 +144,11 @@ sub selectKeyboard {
keyboard::setup_install($o->{keyboard});
addToBeDone {
+ #- the bkmap keymaps in installer are deficient, we need to load the real one before keyboard::write which will generate /etc/sysconfig/console/default.kmap
+ run_program::rooted($::prefix, 'loadkeys', keyboard::keyboard2kmap($o->{keyboard}))
+ or log::l("loadkeys failed");
keyboard::write($o->{keyboard});
} 'installPackages' if !$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 {}
@@ -158,7 +159,10 @@ sub setupSCSI {
install::any::configure_pcmcia($o);
modules::load(modules::category2modules('disk/cdrom'));
modules::load_category($o->{modules_conf}, 'bus/firewire');
- modules::load_category($o->{modules_conf}, 'disk/ide|scsi|hardware_raid|sata|firewire');
+ modules::load_category($o->{modules_conf}, 'disk/scsi');
+ #- load disk/scsi before disk/ide since libata is now the default
+ #- (to prevent modules::load_category from loading ide-generic too early)
+ modules::load_category($o->{modules_conf}, 'disk/ide|hardware_raid|sata|firewire');
install::any::getHds($o);
}
@@ -171,15 +175,17 @@ sub selectInstallClass {
# either one root is defined (and all is ok), or we take the first one we find
my $p = fs::get::root_($o->{fstab}) || (first(install::any::find_root_parts($o->{fstab}, $::prefix)) || die)->{part};
$o->{migrate_device_names} = install::any::use_root_part($o->{all_hds}, $p);
+ $o->{previous_release} = $p if $o->{isUpgrade};
}
}
#------------------------------------------------------------------------------
sub doPartitionDisksBefore {
my ($o) = @_;
+ log::l("fdisk before:\n" . any::fdisk());
eval {
+ eval { fs::mount::umount("$::prefix/sys/kernel/debug/usb") };
eval { fs::mount::umount("$::prefix/sys") };
- eval { fs::mount::umount("$::prefix/proc/bus/usb") };
eval { fs::mount::umount("$::prefix/proc") };
eval { fs::mount::umount_all($o->{fstab}) };
eval { sleep 1; fs::mount::umount_all($o->{fstab}) } if $@; #- HACK
@@ -191,16 +197,19 @@ sub doPartitionDisksAfter {
my ($o) = @_;
fs::any::write_hds($o->{all_hds}, $o->{fstab}, !$o->{isUpgrade}, sub { $o->rebootNeeded }, $o);
+ log::l("fdisk after\n" . any::fdisk());
if ($::local_install) {
- my $p = fs::get::mntpoint2part($::prefix, [ fs::read_fstab('', '/proc/mounts') ]);
- my $part = find { fs::get::is_same_hd($p, $_) } @{$o->{fstab}};
- $part ||= $o->{fstab}[0];
+ #- We skipped the setupSCSI step, so $o->{fstab} will be empty. We need to
+ #- add a fake entry, to satisfy the following check for a root partition.
+ my $fstab = [ fs::read_fstab('', '/proc/mounts') ];
+ my $part = fs::get::mntpoint2part($::prefix, $fstab) || $fstab->[0];
$part->{mntpoint} = '/';
$part->{isMounted} = 1;
+ $o->{fstab} = [ $part ];
}
- fs::any::check_hds_boot_and_root($o->{all_hds}, $o->{fstab});
+ fs::any::check_hds_boot_and_root($o->{all_hds}, $o->{fstab}, $o->{isUpgrade}, $o->{match_all_hardware});
if ($o->{partitioning}{use_existing_root}) {
#- ensure those partitions are mounted so that they are not proposed in choosePartitionsToFormat
@@ -249,16 +258,19 @@ sub ask_deselect_media__copy_on_disk {
}
sub ask_change_cd {
- my (undef, $phys_m, $_o_rel_file) = @_;
- log::l("change to medium " . install::media::phys_medium_to_string($phys_m) . " refused (it can't be done automatically)");
+ my (undef, $phys_m) = @_;
+ log::l("change to medium $phys_m refused (it can't be done automatically)");
0;
}
sub selectSupplMedia { '' }
sub choosePackages {
- my ($o) = @_;
+ my ($o, $o_compssListLevel) = @_;
+ #- clear the mirror cache before upgrading:
+ eval { rm_rf("$::prefix/var/cache/urpmi/mirrors.cache") };
+
#- now for upgrade, package that must be upgraded are
#- selected first, after is used the same scheme as install.
@@ -268,21 +280,16 @@ sub choosePackages {
my $availableCorrected = install::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;
-
#- !! destroying user selection of packages (they may have done individual selection before)
- exists $o->{compssListLevel}
- and install::pkgs::setSelectedFromCompssList($o->{packages}, $o->{rpmsrate_flags_chosen}, $o->{compssListLevel}, $availableCorrected);
+ exists $o->{compssListLevel} || defined $o_compssListLevel
+ and install::pkgs::setSelectedFromCompssList($o->{packages}, $o->{rpmsrate_flags_chosen}, $o_compssListLevel || $o->{compssListLevel}, $availableCorrected);
$availableCorrected;
}
-sub upgrading_redhat() {
- #- remove weird config files that bother Xconfig::* too much
- unlink "$::prefix/etc/X11/XF86Config";
- unlink "$::prefix/etc/X11/XF86Config-4";
+sub live_patch_URPM() {
- sub prefering_mdk {
+ sub prefering_mga {
my ($lpkg, $rpkg_ver, $c) = @_;
my $lpkg_ver = $lpkg->version . '-' . $lpkg->release;
log::l($lpkg->name . ' ' . ': prefering ' . ($c == 1 ? "$lpkg_ver over $rpkg_ver" : "$rpkg_ver over $lpkg_ver"));
@@ -292,9 +299,9 @@ sub upgrading_redhat() {
undef *URPM::Package::compare_pkg;
*URPM::Package::compare_pkg = sub {
my ($lpkg, $rpkg) = @_;
- my $c = ($lpkg->release =~ /mdk$/ ? 1 : 0) - ($rpkg->release =~ /mdk$/ ? 1 : 0);
+ my $c = ($lpkg->release =~ /mga/ ? 1 : 0) - ($rpkg->release =~ /mga/ ? 1 : 0);
if ($c) {
- prefering_mdk($lpkg, $rpkg->version . '-' . $rpkg->release, $c);
+ prefering_mga($lpkg, $rpkg->version . '-' . $rpkg->release, $c);
$c;
} else {
&$old_compare_pkg;
@@ -305,15 +312,21 @@ sub upgrading_redhat() {
undef *URPM::Package::compare;
*URPM::Package::compare = sub {
my ($lpkg, $rpkg_ver) = @_;
- my $c = ($lpkg->release =~ /mdk$/ ? 1 : 0) - ($rpkg_ver =~ /mdk$/ ? 1 : 0);
+ my $c = ($lpkg->release =~ /mga/ ? 1 : 0) - ($rpkg_ver =~ /mga/ ? 1 : 0);
if ($c) {
- prefering_mdk($lpkg, $rpkg_ver, $c);
+ prefering_mga($lpkg, $rpkg_ver, $c);
return $c;
}
&$old_compare;
};
}
+sub upgrading_redhat() {
+ #- remove weird config files that bother Xconfig::* too much
+ unlink "$::prefix/etc/X11/XF86Config";
+ unlink "$::prefix/etc/X11/XF86Config-4";
+}
+
sub beforeInstallPackages {
my ($o) = @_;
@@ -321,10 +334,8 @@ sub beforeInstallPackages {
if ($o->{isUpgrade}) {
$o->{modules_conf}->merge_into(modules::any_conf->read);
- }
- #- save these files in case of upgrade failure.
- if ($o->{isUpgrade}) {
+ #- save these files in case of upgrade failure.
foreach (@filesToSaveForUpgrade) {
unlink "$::prefix/$_.mdkgisave";
if (-e "$::prefix/$_") {
@@ -334,6 +345,14 @@ sub beforeInstallPackages {
foreach (@filesNewerToUseAfterUpgrade) {
unlink "$::prefix/$_.rpmnew";
}
+
+ log::l("converting filesystem for usrmove");
+ if (!run_program::run('/usr/lib/dracut/modules.d/30convertfs/convertfs.sh', $::prefix)) {
+ mkdir_p("$::prefix/root/drakx") if ! -d "$::prefix/root/drakx";
+ # logs are only copied to $::prefix/root/drakx at the end of each step, so do it manually now
+ eval { cp_af("/tmp/ddebug.log", "$::prefix/root/drakx") };
+ die "Unable to convert filesystem prior to upgrade. Check ddebug.log for details";
+ }
}
#- mainly for upgrading redhat packages, but it can help other
@@ -345,6 +364,8 @@ sub beforeInstallPackages {
);
rm_rf(@to_remove);
+ live_patch_URPM() if $o->{isUpgrade} !~ /mageia/;
+
if ($o->{isUpgrade} eq 'redhat') {
upgrading_redhat();
}
@@ -358,15 +379,19 @@ sub beforeInstallPackages {
#- some packages need such files for proper installation.
install::any::write_fstab($o);
- require network::network;
- network::network::add2hosts("localhost", "127.0.0.1");
-
#- resolv.conf will be modified at boot time
#- the following will ensure we have a working DNS during install
if (-e "/etc/resolv.conf" && ! -e "$::prefix/etc/resolv.conf") {
cp_af("/etc/resolv.conf", "$::prefix/etc");
}
+ foreach ('/run', '/tmp/.X11-unix') {
+ if (-e $_) {
+ mkdir "$::prefix/$_";
+ run_program::run('mount', '--bind', $_, "$::prefix/$_");
+ }
+ }
+
log::l("setting excludedocs to $o->{excludedocs}");
substInFile { s/%_excludedocs.*//; $_ .= "%_excludedocs yes\n" if eof && $o->{excludedocs} } "$::prefix/etc/rpm/macros";
@@ -400,8 +425,14 @@ sub installCallback {
# log::l("$msg: " . join(',', @para));
}
-sub installPackages { #- complete REWORK, TODO and TOCHECK!
- my ($o) = @_;
+sub installPackages {
+ my ($o, $o_interactive) = @_;
+
+ my $p = fs::get::root_($o->{fstab});
+ if (isLUKS($p)) {
+ install::pkgs::selectPackage($o->{packages}, install::pkgs::packageByName($o->{packages}, 'plymouth'));
+ }
+
my $packages = $o->{packages};
install::pkgs::remove_marked_ask_remove($packages, \&installCallback);
@@ -409,18 +440,23 @@ sub installPackages { #- complete REWORK, TODO and TOCHECK!
#- small transaction will be built based on this selection and depslist.
my @toInstall = install::pkgs::packagesToInstall($packages);
+ my $exit_code;
my $time = time();
{
local $ENV{DURING_INSTALL} = 1;
+ local $ENV{LOCAL_INSTALL} = 1 if $::local_install;
local $ENV{TMPDIR} = '/tmp';
local $ENV{TMP} = '/tmp';
- install::pkgs::install($o->{isUpgrade}, \@toInstall, $packages, \&installCallback);
+ local $ENV{HOME};
+ local $packages->{options}{auto} = !$o_interactive;
+ $exit_code = install::pkgs::install($o->{isUpgrade}, \@toInstall, $packages, \&installCallback);
}
any::writeandclean_ldsoconf($::prefix);
- run_program::rooted_or_die($::prefix, 'ldconfig');
-
log::l("Install took: ", formatTimeRaw(time() - $time));
+ run_program::rooted_or_die($::prefix, 'ldconfig') if !$o->{justdb};
+
+ $exit_code and die "Installation failed";
install::media::log_sizes();
scalar(@toInstall); #- return number of packages installed.
}
@@ -435,7 +471,7 @@ Either your cdrom drive or your cdrom is defective.
Check the cdrom on an installed computer using \"rpm -qpl media/main/*.rpm\"
") if any { m|read failed: Input/output error| } cat_("$::prefix/root/drakx/install.log");
- if (arch() !~ /^sparc/) { #- TODO restore it as may be needed for sparc
+ if (!$o->{justdb}) {
-x "$::prefix/usr/bin/dumpkeys" or $::testing or die
"Some important packages did not get installed properly.
@@ -456,29 +492,31 @@ Consoles 1,3,4,7 may also contain interesting information";
harddrake::autoconf::pcmcia($o->{pcmcia});
#- configure CPU frequency modules
harddrake::autoconf::cpufreq();
+ harddrake::autoconf::floppy();
+
+ # prevent slow boot on first boot:
+ my $cfg_file = "$::prefix/etc/sysconfig/harddrake2/kernel";
+ if (-f $cfg_file) {
+ my %kernel_config = getVarsFromSh($cfg_file);
+ $kernel_config{IS_LAPTOP} = bool2text(detect_devices::isLaptop());
+ setVarsInSh($cfg_file, \%kernel_config);
+ }
#- for mandrake_firstime
touch "$::prefix/var/lock/TMP_1ST";
+ fs::any::set_cdrom_symlink($o->{all_hds}{raw_hds});
any::config_mtools($::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*:/ } "$::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($::prefix, "chkconfig", "--add", $_) foreach
- qw(netfs network rawdevices sound kheader keytable syslog crond portmap);
-
if ($o->{mouse}{device} =~ /ttyS/) {
log::l("disabling gpm for serial mice (does not get along nicely with X)");
run_program::rooted($::prefix, "chkconfig", "--del", "gpm");
}
- #- install urpmi before as rpmdb will be opened, this will cause problem with update-menus.
- $o->install_urpmi;
-
if ($o->{pcmcia}) {
substInFile { s/.*(TaskBarShowAPMStatus).*/$1=1/ } "$::prefix/usr/lib/X11/icewm/preferences";
eval { cp_af("$::prefix/usr/share/applnk/System/kapm.kdelnk",
@@ -494,7 +532,7 @@ EOF
}
- install::any::disable_user_view() if $o->{security} >= 3 || $o->{authentication}{NIS};
+ install::any::disable_user_view() if $o->{security} > 1 || $o->{authentication}{NIS};
run_program::rooted($::prefix, "kdeDesktopCleanup");
#- move some file after an upgrade that may be seriously annoying.
@@ -568,26 +606,7 @@ sub install_urpmi {
sub install_hardware_packages {
my ($o) = @_;
if ($o->{match_all_hardware}) {
- my @l;
-
- require Xconfig::card;
- require Xconfig::proprietary;
- my $cards = Xconfig::card::readCardsDB("$ENV{SHARE_PATH}/ldetect-lst/Cards+");
- my @drivers = grep { $_ } uniq(map { $_->{Driver2} } values %$cards);
- push @l, map { Xconfig::proprietary::pkgs_for_Driver2($_, $o->do_pkgs) } @drivers;
-
- require network::connection;
- require network::thirdparty;
- foreach my $type (network::connection->get_types) {
- $type->can('get_thirdparty_settings') or next;
- foreach my $settings (@{$type->get_thirdparty_settings || []}) {
- foreach (@network::thirdparty::thirdparty_types) {
- my @packages = network::thirdparty::get_required_packages($_, $settings);
- push @l, network::thirdparty::get_available_packages($_, $o, @packages);
- }
- }
- }
-
+ my @l = pkgs::detect_hardware_packages($o->do_pkgs, $o->{match_all_hardware});
$o->do_pkgs->install(@l) if @l;
}
}
@@ -640,7 +659,8 @@ sub configureNetwork {
my ($o) = @_;
require network::network;
network::network::configure_network($o->{net}, $o, $o->{modules_conf});
- configure_firewall($o) if !$o->{isUpgrade};
+
+ configure_firewall($o) if !$o->{isUpgrade} && !$o->{justdb};
#- only a http proxy can be used by stage1
#- the method is http even for ftp connections through a http proxy
@@ -659,7 +679,7 @@ sub configure_firewall {
my ($o) = @_;
#- set up a firewall if ports have been specified or if the security level is high enough
- $o->{firewall_ports} ||= '' if $o->{security} >= 3 && !exists $o->{firewall_ports};
+ $o->{firewall_ports} ||= '' if $o->{security} >= 1 && !exists $o->{firewall_ports};
if (defined $o->{firewall_ports}) {
require network::drakfirewall;
@@ -670,24 +690,7 @@ sub configure_firewall {
}
#------------------------------------------------------------------------------
-sub installUpdates {
- my ($o) = @_;
- my $u = $o->{updates} or return;
- $u->{url} or return;
-
- upNetwork($o);
- require mirror;
-
- my $phys_medium = install::media::url2mounted_phys_medium($o, $u->{url} . '/media/main/updates');
-
- my $update_medium = { name => "Updates for Mandriva Linux " . $o->{product_id}{version}, update => 1 };
- install::media::get_standalone_medium($o, $phys_medium, $o->{packages}, $update_medium);
-
- $o->pkg_install(@{$u->{packages} || []});
-
- #- re-install urpmi with update security medium.
- install_urpmi($o);
-}
+sub installUpdates {}
sub summaryBefore {}
@@ -705,7 +708,14 @@ sub configureTimezone {
my ($o) = @_;
install::any::preConfigureTimezone($o);
- $o->pkg_install('ntp') if $o->{timezone}{ntp};
+ if ($o->{timezone}{ntp}) {
+ # We prefer chrony, but we'll deal with ntpd for the sake of upgrades
+ my $pkg = install::pkgs::packageByName($o->{packages}, 'chrony');
+ unless ($pkg && $pkg->flag_installed) {
+ $pkg = install::pkgs::packageByName($o->{packages}, 'ntp');
+ $o->pkg_install('chrony') unless $pkg && $pkg->flag_installed;
+ }
+ }
require timezone;
timezone::write($o->{timezone});
@@ -748,11 +758,13 @@ sub addUser {
any::add_users($users, $o->{authentication});
- if ($o->{autologin}) {
- $o->{desktop} ||= first(any::sessions());
- $o->pkg_install("autologin") if !member($o->{desktop}, 'KDE', 'GNOME');
+ if ($o->{rpmsrate_flags_chosen}{CAT_X}) {
+ my $autologin = any::get_autologin();
+ $autologin->{user} = $o->{autologin};
+ $autologin->{desktop} = $o->{desktop} if $o->{desktop};
+ $autologin->{dm} = $o->{dm} if $o->{dm};
+ any::set_autologin($o->do_pkgs, $autologin, $o->{step}{auto});
}
- any::set_autologin($o->do_pkgs, $o->{autologin}, $o->{desktop});
install::any::disable_user_view() if @$users == ();
}
@@ -770,14 +782,15 @@ sub read_bootloader_config {
sub setupBootloaderBefore {
my ($o) = @_;
+ my $bool = $o->{meta_class} ne 'server';
any::setupBootloaderBefore($o->do_pkgs, $o->{bootloader}, $o->{all_hds}, $o->{fstab}, $o->{keyboard},
- $o->{allowFB}, $o->{vga}, $o->{meta_class} ne 'server');
+ $o->{allowFB}, $o->{vga}, $bool, $bool);
}
sub setupBootloader {
my ($o) = @_;
- any::install_acpi_pkgs($o->do_pkgs, $o->{bootloader});
+ any::install_bootloader_pkgs($o->do_pkgs, $o->{bootloader});
require bootloader;
bootloader::install($o->{bootloader}, $o->{all_hds});
@@ -813,7 +826,6 @@ sub miscellaneousBefore {
require security::various;
$o->{security} ||= security::level::get();
$o->{security_user} ||= security::various::config_security_user($::prefix);
- $o->{libsafe} ||= security::various::config_libsafe($::prefix);
log::l("security level is $o->{security}");
}
@@ -830,7 +842,7 @@ sub miscellaneousAfter {
addToBeDone {
addVarsInSh("$::prefix/etc/sysconfig/system", { META_CLASS => $o->{meta_class} });
- eval { install::any::set_security($o) };
+ eval { install::any::set_security($o) } if !$o->{isUpgrade};
} 'installPackages';
}
@@ -850,23 +862,25 @@ sub exitInstall {
my $report = '/root/drakx/report.bug';
unlink "$::prefix$report", "$::prefix$report.gz";
output "$::prefix$report", install::any::report_bug();
- run_program::rooted($::prefix, 'gzip', $report);
+ run_program::rooted($::prefix, 'xz', $report);
};
- eval { install::any::getAndSaveAutoInstallFloppies($o, 1) } if arch() !~ /^ppc/;
- eval { output "$::prefix/root/drakx/README", "This directory contains several installation-related files,
+ output("$::prefix/root/drakx/package_list.pl", install::any::selected_leaves_pl($o));
+
+ eval { install::any::getAndSaveAutoInstallFloppies($o, 1) };
+ eval { output "$::prefix/root/drakx/README", sprintf("This directory contains several installation-related files,
mostly log files (very useful if you ever report a bug!).
-Beware that some Mandriva Linux tools rely on the contents of some
+Beware that some %s tools rely on the contents of some
of these files... so remove any file from here at your own
risk!
-" };
+", "Mageia") };
#- wait for remaining processes.
foreach (@{$o->{waitpids}}) {
waitpid $_, 0;
log::l("pid $_ returned $?");
}
install::media::umount_media($o->{packages});
- install::media::openCdromTray(install::media::first_medium($o->{packages})->{phys_medium}{device}) if !detect_devices::is_xbox() && $o->{method} eq 'cdrom';
+ install::media::openCdromTray($o->{stage2_phys_medium}{device}) if !detect_devices::is_xbox() && $o->{method} eq 'cdrom';
install::media::log_sizes();
}
@@ -911,8 +925,8 @@ sub upNetwork {
start_network_interface($o);
return 1;
} elsif (!$b_pppAvoided) {
- log::l("starting network (ppp: $o->{net}{type})");
- eval { modules::load(qw(serial ppp bsd_comp ppp_deflate)) };
+ log::l("starting network (PPP: $o->{net}{type})");
+ eval { modules::load(qw(serial bsd_comp ppp_deflate)) };
run_program::rooted($::prefix, "/etc/rc.d/init.d/syslog", "start");
start_network_interface($o);
return 1;
@@ -936,7 +950,7 @@ sub downNetwork {
} elsif (!network_is_cheap($o)) {
stop_network_interface($o);
run_program::rooted($::prefix, "/etc/rc.d/init.d/syslog", "stop");
- eval { modules::unload(qw(ppp_deflate bsd_comp ppp serial)) };
+ eval { modules::unload(qw(ppp_deflate bsd_comp serial)) };
return 1;
}
}
diff --git a/perl-install/install/steps_auto_install.pm b/perl-install/install/steps_auto_install.pm
index dfaa5f0e3..ceaab7ed3 100644
--- a/perl-install/install/steps_auto_install.pm
+++ b/perl-install/install/steps_auto_install.pm
@@ -1,4 +1,4 @@
-package install::steps_auto_install; # $Id$
+package install::steps_auto_install;
use diagnostics;
use strict;
@@ -131,8 +131,8 @@ sub errorInStep {
#- Steps Functions
#-######################################################################################
sub installPackages {
- my ($o, $packages) = @_;
- catch_cdie { $o->install::steps::installPackages($packages) } sub { print formatError($@), "\n"; 1 };
+ my ($o) = @_;
+ catch_cdie { $o->install::steps::installPackages } sub { print formatError($@), "\n"; 1 };
}
1;
diff --git a/perl-install/install/steps_curses.pm b/perl-install/install/steps_curses.pm
index 213993839..30fd693a6 100644
--- a/perl-install/install/steps_curses.pm
+++ b/perl-install/install/steps_curses.pm
@@ -1,4 +1,4 @@
-package install::steps_curses; # $Id$
+package install::steps_curses;
use diagnostics;
use strict;
@@ -19,7 +19,7 @@ use common;
my $banner;
sub banner {
my ($cui, $step) = @_;
- my $text = N("Mandriva Linux Installation %s", $step);
+ my $text = N("%s Installation %s", "Mageia", "| $step");
$banner ||= do {
my $win = $cui->add(undef, 'Window', '-x' => 1, '-y' => 0, '-height' => 1);
$win->add(undef, 'Label');
diff --git a/perl-install/install/steps_gtk.pm b/perl-install/install/steps_gtk.pm
index f0cea7f74..fa34c947c 100644
--- a/perl-install/install/steps_gtk.pm
+++ b/perl-install/install/steps_gtk.pm
@@ -1,7 +1,8 @@
-package install::steps_gtk; # $Id$
+package install::steps_gtk;
use diagnostics;
use strict;
+use feature 'state';
use vars qw(@ISA);
@ISA = qw(install::steps_interactive interactive::gtk);
@@ -14,8 +15,8 @@ use install::steps_interactive;
use interactive::gtk;
use xf86misc::main;
use common;
-use mygtk2;
-use ugtk2 qw(:helpers :wrappers :create);
+use mygtk3;
+use ugtk3 qw(:helpers :wrappers :create);
use devices;
use modules;
use install::gtk;
@@ -35,118 +36,144 @@ sub new($$) {
if (!$::local_install &&
($::testing ? $ENV{DISPLAY} ne $wanted_DISPLAY : $ENV{DISPLAY} =~ /^:\d/)) { #- is the display local or distant?
- my $f = "/tmp/Xconf";
- if (!$::testing) {
- devices::make("/dev/kbd");
- }
- my $launchX = sub {
- my ($server, $Driver) = @_;
-
- mkdir '/var/log' if !-d '/var/log';
-
- my @options = $wanted_DISPLAY;
- if ($server eq 'Xnest') {
- push @options, '-ac', '-geometry', $o->{vga} || ($o->{vga16} ? '640x480' : '800x600');
- } else {
- install::gtk::createXconf($f, @{$o->{mouse}}{'Protocol', 'device'}, $o->{mouse}{wacom}[0], $Driver);
-
- push @options, '-kb', '-allowMouseOpenFail', '-xf86config', $f if arch() !~ /^sparc/;
- push @options, 'tty7', '-s', '240';
-
- #- old weird servers: Xsun
- push @options, '-fp', '/usr/share/fonts:unscaled' if $server =~ /Xsun/;
- }
-
- if (!fork()) {
- c::setsid();
- exec $server, @options or c::_exit(1);
- }
-
- #- wait for the server to start
- foreach (1..5) {
- sleep 1;
- last if fuzzy_pidofs(qr/\b$server\b/);
- log::l("$server still not running, trying again");
- }
- my $nb;
- foreach (1..60) {
- log::l("waiting for the server to start ($_ $nb)");
- log::l("Server died"), return 0 if !fuzzy_pidofs(qr/\b$server\b/);
- $nb++ if xf86misc::main::Xtest($wanted_DISPLAY);
- if ($nb > 2) { #- one succeeded test is not enough :-(
- log::l("AFAIK X server is up");
- return 1;
- }
- sleep 1;
- }
- log::l("Timeout!!");
- 0;
- };
- my @servers = qw(Driver:fbdev); #-)
- if ($::testing) {
- @servers = 'Xnest';
- } elsif (arch() eq "alpha") {
- require Xconfig::card;
- my ($card) = Xconfig::card::probe();
- Xconfig::card::add_to_card__using_Cards($card, $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() =~ /ia64/) {
- require Xconfig::card;
- my ($card) = Xconfig::card::probe();
- @servers = map { if_($_, "Driver:$_") } $card && $card->{Driver}, 'fbdev';
- }
-
- foreach (@servers) {
- log::l("Trying with server $_");
- my ($prog, $Driver) = /Driver:(.*)/ ? ('Xorg', $1) : /Xsun|Xnest|^X_move$/ ? $_ : "XF86_$_";
- if (/FB/i) {
- !$o->{vga16} && $o->{allowFB} or next;
-
- $o->{allowFB} = &$launchX($prog, $Driver) #- keep in mind FB is used.
- and goto OK;
- } else {
- $o->{vga16} = 1 if /VGA16/;
- &$launchX($prog, $Driver) and goto OK;
- }
- }
- return undef;
+ _setup_and_start_X($o, $wanted_DISPLAY) or return;
}
- OK:
+
$ENV{DISPLAY} = $wanted_DISPLAY;
require detect_devices;
if (detect_devices::is_xbox()) {
modules::load('xpad');
run_program::run('xset', 'm', '1/8', '1');
}
+ if (detect_devices::is_qemu()) {
+ mkdir_p('/run/spice-vdagentd');
+ run_program::raw({ detach => 1 }, 'spice-vdagentd', '>', '/dev/null', '2>', '/dev/null', '-X');
+ run_program::raw({ detach => 1 }, 'spice-vdagent', '>', '/dev/null', '2>', '/dev/null');
+ }
+ any::disable_x_screensaver();
+ run_program::raw({ detach => 1 }, 'mutter', '--x11');
install::gtk::init_gtk($o);
install::gtk::init_sizes($o);
install::gtk::install_theme($o);
- install::gtk::create_logo_window($o);
install::gtk::create_steps_window($o);
+ _may_configure_framebuffer_640x480($o);
- $ugtk2::grab = 1;
+ $ugtk3::grab = 1;
$o = (bless {}, ref($type) || $type)->SUPER::new($o);
$o->interactive::gtk::new;
+ gtkset_mousecursor_normal();
$o;
}
+sub _setup_and_start_X {
+ my ($o, $wanted_DISPLAY) = @_;
+ my $f = "/tmp/Xconf";
+
+ #- /tmp is mostly tmpfs, but not fully, since it doesn't allow: mount --bind /tmp/.X11-unix /mnt/tmp/.X11-unix
+ mkdir '/tmp/.X11-unix';
+ run_program::run('mount', '-t', 'tmpfs', 'none', '/tmp/.X11-unix');
+
+
+ my @servers = qw(Driver:fbdev Driver:vesa); #-)
+ if ($::testing) {
+ @servers = 'Xnest';
+ } elsif (is_uefi()) {
+ @servers = 'Driver:fbdev';
+ } elsif (arch() =~ /i.86/) {
+ require Xconfig::card;
+ my ($card) = Xconfig::card::probe();
+ if ($card && $card->{card_name} eq 'i810') {
+ # early i810 do not support VESA:
+ log::l("graphical installer not supported on early i810");
+ undef @servers;
+ }
+ }
+
+ foreach (@servers) {
+ log::l("Trying with server $_");
+ my ($prog, $Driver) = /Driver:(.*)/ ? ('Xorg', $1) : $_;
+ if (/FB/i) {
+ !$o->{vga16} && $o->{allowFB} or next;
+
+ $o->{allowFB} = _launchX($o, $f, $prog, $Driver, $wanted_DISPLAY) #- keep in mind FB is used.
+ and return 1;
+ } else {
+ $o->{vga16} = 1 if /VGA16/;
+ _launchX($o, $f, $prog, $Driver, $wanted_DISPLAY) and return 1;
+ }
+ }
+ return undef;
+}
+
+sub _launchX {
+ my ($o, $f, $server, $Driver, $wanted_DISPLAY) = @_;
+
+ mkdir '/var/log' if !-d '/var/log';
+
+ my @options = $wanted_DISPLAY;
+ if ($server eq 'Xnest') {
+ push @options, '-ac', '-geometry', $o->{vga} || ($o->{vga16} ? '640x480' : '1024x768');
+ } else {
+ install::gtk::createXconf($f, $Driver);
+
+ push @options, '-allowMouseOpenFail', '-xf86config', $f;
+ push @options, 'vt7', '-dpi', '75';
+ push @options, '-nolisten', 'tcp';
+ }
+
+ if (!fork()) {
+ c::setsid();
+ exec $server, @options or c::_exit(1);
+ }
+
+ #- wait for the server to start
+ foreach (1..5) {
+ sleep 1;
+ last if fuzzy_pidofs(qr/\b$server\b/);
+ log::l("$server still not running, trying again");
+ }
+ my $nb;
+ my $start_time = time();
+ foreach (1..60) {
+ log::l("waiting for the server to start ($_ $nb)");
+ if (!fuzzy_pidofs(qr/\b$server\b/)) {
+ log::l("Server died");
+ log::l(any::header("Xorg.log"), cat_("/var/log/Xorg.0.log"));
+ return 0 if !fuzzy_pidofs(qr/\b$server\b/);
+ }
+ $nb++ if xf86misc::main::Xtest($wanted_DISPLAY);
+ if ($nb > 2) { #- one succeeded test is not enough :-(
+ log::l("AFAIK X server is up");
+ return 1;
+ }
+ time() - $start_time < 60 or last;
+ time() - $start_time > 8 and print N("Xorg server is slow to start. Please wait..."), "\n";
+ sleep 1;
+ }
+ log::l("Timeout!!");
+ log::l(any::header("Xorg.log"), cat_("/var/log/Xorg.0.log"));
+ 0;
+}
+
+#- if we success to start X in 640x480 using driver "vesa",
+#- we configure to use fb on installed system (to ensure splashy works)
+#- (useful on 800x480 netbooks)
+sub _may_configure_framebuffer_640x480 {
+ my ($o) = @_;
+
+ if ($::rootwidth == 640 && !$o->{allowFB}) {
+ $o->{vga} = 785;
+ $o->{allowFB} = 1;
+ }
+}
+
sub enteringStep {
my ($o, $step) = @_;
printf "Entering step `%s'\n", common::remove_translate_context($o->{steps}{$step}{text});
- if (my @banner_elts = ($o->{steps}{$step}{banner_icon}, translate($o->{steps}{$step}{banner_title}))) {
- set_default_step_items(@banner_elts);
+ if (my $banner_title = $o->{steps}{$step}{banner_title}) {
+ set_default_step_items($banner_title);
}
$o->SUPER::enteringStep($step);
install::gtk::update_steps_position($o);
@@ -159,7 +186,7 @@ sub leavingStep {
sub charsetChanged {
my ($o) = @_;
- Gtk2->set_locale;
+ c::init_setlocale();
install::gtk::load_font($o);
install::gtk::create_steps_window($o);
}
@@ -187,8 +214,8 @@ sub selectLanguage {
$o->ask_warn('',
formatAlaTeX(N("Your system is low on resources. You may have some problem installing
-Mandriva Linux. If that occurs, you can try a text install instead. For this,
-press `F1' when booting on CDROM, then enter `text'."))) if availableRamMB() < 70; # 70MB
+%s. If that occurs, you can try a text install instead. For this,
+press `F1' when booting on CDROM, then enter `text'.", N("Mageia")))) if availableRamMB() < 70; # 70MB
}
@@ -213,37 +240,85 @@ sub selectMouse {
}
}
+sub setPackages {
+ my ($o) = @_;
+ my (undef, $old_title) = get_default_step_items();
+ set_default_step_items(N("Media Selection") || $old_title);
+ install::any::setPackages($o);
+ set_default_step_items($old_title);
+}
+
sub reallyChooseDesktop {
- my ($o, $title, $message, $choices) = @_;
+ my ($o, $title, $message, $choices, $choice) = @_;
- my $w = ugtk2->new($title);
+ my $w = ugtk3->new($title);
- my $sizegrp = Gtk2::SizeGroup->new('horizontal');
- my $choice = $choices->[0];
+ my %tips = (
+ KDE => N("Install %s Plasma Desktop", N("Mageia")),
+ GNOME => N("Install %s GNOME Desktop", N("Mageia")),
+ Custom => N("Custom install"),
+ );
my $prev;
my @l = map {
my $val = $_;
$prev = gtknew('RadioButton', child =>
- gtknew('HBox', border_width => 15, spacing => 10, children => [
- 0, gtknew('Image', file => "desktop-$val->[0]", size_group => $sizegrp),
- 1, gtknew('Label', text => $val->[1]),
- ]),
+ gtknew('Label', text => $val->[1]),
+ tip => $tips{$val->[0]},
toggled => sub { $choice = $val if $_[0]->get_active },
- $prev ? (group => $prev->get_group) : ());
+ active => $choice == $val,
+ if_($prev, join => $prev));
$prev->signal_connect(key_press_event => sub {
my (undef, $event) = @_;
if (!$event || ($event->keyval & 0x7f) == 0xd) {
- Gtk2->main_quit;
+ Gtk3->main_quit;
}
});
- $prev
+ my $img = gtksignal_connect(
+ gtkadd(Gtk3::EventBox->new, gtknew('Image', file => "desktop-$val->[0]")),
+ 'button-press-event' => sub {
+ my %title = (
+ KDE => N("Plasma Desktop"),
+ GNOME => N("GNOME Desktop"),
+ Custom => N("Custom Desktop"),
+ );
+
+ my $wp = ugtk3->new($title{$val->[0]}, transient => $w->{real_window}, modal => 1);
+ gtkadd($wp->{rwindow},
+ gtknew('VBox', children => [
+ 0, gtknew('Title2', label => N("Here's a preview of the '%s' desktop.", $val->[1]),
+ # workaround infamous 6 years old gnome bug #101968:
+ width => mygtk3::get_label_width(),
+ ),
+ 1, gtknew('Image', file => "desktop-$val->[0]-big"),
+ 0, gtknew('HSeparator'),
+ 0, gtknew('HButtonBox', layout => 'end', children_loose => [
+ gtknew('Button', text => N("Close"), clicked => sub { Gtk3->main_quit })
+ ]),
+ ]),
+ );
+ $wp->{real_window}->set_size_request(-1, -1);
+ $wp->{real_window}->grab_focus;
+ $wp->{real_window}->show_all;
+ $wp->main;
+ });
+ gtknew('VBox', border_width => 15, spacing => 10, children_tight => [
+ $img,
+ $prev,
+ ]);
} @$choices;
- ugtk2::gtkadd($w->{window},
+ ugtk3::gtkadd($w->{window},
gtknew('VBox', children => [
- 0, gtknew('WrappedLabel', text => $message),
- (map { (1, $_) } @l),
- 0, $w->create_okcancel(N("Next"), undef),
+ 0, gtknew('Title2',
+ # workaround infamous 6 years old gnome bug #101968:
+ width => mygtk3::get_label_width(), label => $message . ' ' .
+ N("Click on images in order to see a bigger preview")),
+ 1, gtknew('HButtonBox', children_loose => \@l),
+ 0, $w->create_okcancel(N("Next"), undef, '',
+ [ gtknew('Install_Button', text => N("Help"),
+ clicked => sub {
+ interactive::gtk::display_help($o, { interactive_help_id => 'chooseDesktop' });
+ }), undef, 1 ])
]));
$w->main;
@@ -253,42 +328,48 @@ sub reallyChooseDesktop {
sub reallyChooseGroups {
my ($o, $size_to_display, $individual, $_compssUsers) = @_;
- my $w = ugtk2->new(N("Package Group Selection"), icon => 'banner-sys');
- my $w_size = gtknew('Label', text => &$size_to_display);
+ my $w = ugtk3->new(N("Package Group Selection"));
+ my $w_size = gtknew('Label_Left', text => &$size_to_display, padding => [ 0, 0 ]);
+ my @entries;
my $entry = sub {
my ($e) = @_;
- gtknew('CheckButton',
+ my $w = gtknew('CheckButton',
text => translate($e->{label}),
tip => translate($e->{descr}),
active_ref => \$e->{selected},
toggled => sub {
gtkset($w_size, text => &$size_to_display);
});
+ push @entries, $w;
+ $w;
};
#- when restarting this step, it might be necessary to reload the compssUsers.pl (bug 11558). kludgy.
if (!ref $o->{gtk_display_compssUsers}) { install::any::load_rate_files($o) }
- ugtk2::gtkadd($w->{window},
- gtknew('VBox', children => [
- 1, $o->{gtk_display_compssUsers}->($entry),
- 1, '',
- 0, if_($individual,
- gtknew('CheckButton', text => N("Individual package selection"), active_ref => $individual),
- ),
- 0, gtknew('HBox', children_loose => [
- gtknew('Button', text => N("Help"), clicked => $o->interactive_help_sub_display_id('choosePackages')),
- $w_size,
- gtknew('Button', text => N("Next"), clicked => sub { Gtk2->main_quit }),
- ]),
- ]),
+ ugtk3::gtkadd($w->{window},
+ gtknew('VBox', children => [
+ 1, gtknew('ScrolledWindow', child => $o->{gtk_display_compssUsers}->($entry)),
+ if_($individual,
+ 0, gtknew('CheckButton', text => N("Individual package selection"), active_ref => $individual),
+ ),
+ 0, $w_size,
+ 0, gtknew('HSeparator'),
+ 0, gtknew('HButtonBox', layout => 'edge', children_tight => [
+ gtknew('Install_Button', text => N("Help"), clicked => sub {
+ interactive::gtk::display_help($o, { interactive_help_id => 'choosePackageGroups' }) }),
+ gtknew('Button', text => N("Unselect All"), clicked => sub { $_->set_active(0) foreach @entries }),
+ gtknew('Button', text => N("Next"), clicked => sub { Gtk3->main_quit }),
+ ]),
+ ],
+ )
);
$w->main;
1;
}
sub choosePackagesTree {
- my ($o, $packages, $o_limit_medium) = @_;
+ my ($o, $packages) = @_;
my $available = install::any::getAvailableSpace($o);
my $availableCorrected = install::pkgs::invCorrectSize($available / sqr(1024)) * sqr(1024);
@@ -300,7 +381,7 @@ sub choosePackagesTree {
},
node_state => sub {
my $p = install::pkgs::packageByName($packages, $_[0]) or return;
- install::pkgs::packageMedium($packages, $p)->{selected} or return;
+ !install::pkgs::packageMedium($packages, $p)->{ignore} or return;
$p->arch eq 'src' and return;
$p->flag_base and return 'base';
$p->flag_installed && !$p->flag_upgrade and return 'installed';
@@ -311,7 +392,6 @@ sub choosePackagesTree {
my ($add_node, $flat) = @_;
if ($flat) {
foreach (sort map { $_->name }
- grep { !$o_limit_medium || install::pkgs::packageMedium($packages, $_) == $o_limit_medium }
grep { $_ && $_->arch ne 'src' }
@{$packages->{depslist}}) {
$add_node->($_, undef);
@@ -321,7 +401,6 @@ sub choosePackagesTree {
my (@firstchoice, @others);
my %fl = map { ("CAT_$_" => 1) } @{$root->{flags}};
foreach my $p (@{$packages->{depslist}}) {
- !$o_limit_medium || install::pkgs::packageMedium($packages, $p) == $o_limit_medium or next;
my @flags = $p->rflags;
next if !($p->rate && any { any { !/^!/ && $fl{$_} } split('\|\|') } @flags);
$p->rate >= 3 ?
@@ -336,17 +415,17 @@ sub choosePackagesTree {
},
get_info => sub {
my $p = install::pkgs::packageByName($packages, $_[0]) or return '';
- install::pkgs::extractHeaders([$p], $packages->{media});
+ my $description = install::pkgs::get_pkg_info($p);
my $imp = translate($install::pkgs::compssListDesc{$p->flag_base ? 5 : $p->rate});
my $tag = { 'foreground' => 'royalblue3' };
- $@ ? N("Bad package") :
+
[ [ N("Name: "), $tag ], [ $p->name . "\n" ],
[ N("Version: "), $tag ], [ $p->version . '-' . $p->release . "\n" ],
[ N("Size: "), $tag ], [ N("%d KB\n", $p->size / 1024) ],
if_($imp, [ N("Importance: "), $tag ], [ "$imp\n" ]),
- [ "\n" ], [ formatLines($p->description) ] ];
+ [ "\n" ], [ formatLines($description) ] ];
},
toggle_nodes => sub {
my $set_state = shift @_;
@@ -357,6 +436,7 @@ sub choosePackagesTree {
my $state = $packages->{state} ||= {};
$packages->{rpmdb} ||= install::pkgs::rpmDbOpen(); #- WORKAROUND
my @l = $isSelection ? $packages->resolve_requested($packages->{rpmdb}, $state, \%l,
+ no_recommends => $::o->{no_recommends},
callback_choices => \&install::pkgs::packageCallbackChoices) :
$packages->disable_selected($packages->{rpmdb}, $state,
map { $packages->{depslist}[$_] } keys %l);
@@ -379,7 +459,7 @@ sub choosePackagesTree {
}
}
}
- $error = [ N("You can not select/unselect this package"),
+ $error = [ N("You cannot select/unselect this package"),
formatList(20, map { my $rb = $state->{rejected}{$_}{backtrack};
my @froms = keys %{$rb->{closure} || {}};
my @unsatisfied = @{$rb->{unsatisfied} || []};
@@ -391,7 +471,7 @@ sub choosePackagesTree {
$_ . ($s ? " ($s)" : '');
} sort @ask_unselect) ];
} elsif (install::pkgs::correctSize($size / sqr(1024)) > $available / sqr(1024)) {
- $error = N("You can not select this package as there is not enough space left to install it");
+ $error = N("You cannot select this package as there is not enough space left to install it");
} elsif (@l > @_ && $common->{state}{auto_deps}) {
$o->ask_okcancel(N("Confirmation"), [ $isSelection ?
N("The following packages are going to be installed") :
@@ -403,7 +483,8 @@ sub choosePackagesTree {
#- disable selection (or unselection).
$packages->{rpmdb} ||= install::pkgs::rpmDbOpen(); #- WORKAROUND
$isSelection ? $packages->disable_selected($packages->{rpmdb}, $state, @l) :
- $packages->resolve_requested($packages->{rpmdb}, $state, { map { $_->id => 1 } @l });
+ $packages->resolve_requested($packages->{rpmdb}, $state, { map { $_->id => 1 } @l },
+ no_recommends => $::o->{no_recommends});
} else {
#- keep the changes, update visible state.
foreach (@l) {
@@ -420,16 +501,18 @@ sub choosePackagesTree {
check_interactive_to_toggle => sub {
my $p = install::pkgs::packageByName($packages, $_[0]) or return;
if ($p->flag_base) {
- $o->ask_warn('', N("This is a mandatory package, it can not be unselected"));
+ $o->ask_warn('', N("This is a mandatory package, it cannot be unselected"));
} elsif ($p->flag_installed && !$p->flag_upgrade) {
- $o->ask_warn('', N("You can not unselect this package. It is already installed"));
+ $o->ask_warn('', N("You cannot unselect this package. It is already installed"));
} elsif ($p->flag_selected && $p->flag_installed) {
- $o->ask_warn('', N("You can not unselect this package. It must be upgraded"));
+ $o->ask_warn('', N("You cannot unselect this package. It must be upgraded"));
} else { return 1 }
return;
},
auto_deps => N("Show automatically selected packages"),
- interactive_help_id => 'choosePackagesTree',
+ interactive_help => sub {
+ interactive::gtk::display_help($o, { interactive_help_id => 'choosePackagesTree' }) },
+
ok => N("Install"),
cancel => N("Previous"),
icons => [ { icon => 'floppy',
@@ -437,19 +520,23 @@ sub choosePackagesTree {
wait_message => N("Updating package selection"),
code => sub { $o->loadSavePackagesOnFloppy($packages); 1 },
},
+ { icon => 'reload',
+ help => N("Toggle between hierarchical and flat package list"),
+ wait_message => N("Updating package selection"),
+ code => sub { $common->{state}{flat} = !$common->{state}{flat}; 1 },
+ },
if_(0,
{ icon => 'feather',
help => N("Minimal install"),
code => sub {
install::any::unselectMostPackages($o);
- install::pkgs::setSelectedFromCompssList($packages, { SYSTEM => 1 }, 4, $availableCorrected);
+ install::pkgs::setSelectedFromCompssList($packages, { SYSTEM => 1 }, $o->{compssListLevel}, $availableCorrected);
1;
} }),
],
state => {
auto_deps => 1,
- flat => $o_limit_medium,
},
};
@@ -465,13 +552,14 @@ sub beforeInstallPackages {
#------------------------------------------------------------------------------
sub installPackages {
- my ($o, $packages) = @_;
+ my ($o) = @_;
my ($current_total_size, $last_size, $nb, $total_size, $last_dtime, $_trans_progress_total);
local $::noborderWhenEmbedded = 1;
- my $w = ugtk2->new(N("Installing"), icon => 'banner-sys');
- my $show_advertising if 0;
+ my $w = ugtk3->new(N("Installing"));
+ state $show_advertising;
+ my $show_release_notes;
my $pkg_log_widget = gtknew('TextView', editable => 0);
my ($advertising_image, $change_time, $i);
@@ -483,14 +571,17 @@ sub installPackages {
$change_time = time();
my $f = $install::any::advertising_images[$i++ % @install::any::advertising_images];
log::l("advertising $f");
- gtkval_modify(\$advertising_image, $f);
+ eval { gtkval_modify(\$advertising_image, $f) };
+ if (my $err = $@) {
+ log::l("cannot load advertising image:\n" . formatError($err));
+ }
if (my $banner = $w->{window}{banner}) {
my ($title);
my $pl = $f; $pl =~ s/\.png$/.pl/;
eval(cat_($pl)) if -e $pl;
- $banner->{text} = $title;
- Gtk2::Banner::set_pixmap($banner);
+ # FIXME: This hasn't actually worked for years:
+ #Gtk3::Banner::update_text($banner, $title);
}
};
@@ -502,22 +593,30 @@ sub installPackages {
$pkg_log_widget->{to_bottom}->('force');
});
- ugtk2::gtkadd($w->{window}, my $box = gtknew('VBox', children_tight => [
- gtknew('Image_using_pixmap', file_ref => \$advertising_image, show_ref => \$show_advertising),
+ state $release_notes ||= any::get_release_notes($o);
+ my $rel_notes = gtknew('Button', text => N("Release Notes"),
+ clicked => sub { $show_release_notes = 1 });
+
+ ugtk3::gtkadd($w->{window}, my $box = gtknew('VBox', children_centered => [
+ gtknew('Image', file_ref => \$advertising_image, show_ref => \$show_advertising),
]));
+ my $progress_total = 0;
$box->pack_end(gtkshow(gtknew('VBox', border_width => 7, spacing => 3, children_loose => [
gtknew('ScrolledWindow', child => $pkg_log_widget,
- hide_ref => \$show_advertising, height => 250, to_bottom => 1),
+ hide_ref => \$show_advertising, height => $::real_windowheight - 215, to_bottom => 1),
gtknew('ProgressBar', fraction_ref => \ (my $pkg_progress), hide_ref => \$show_advertising),
- gtknew('Table', children => [ [
- N("Time remaining "),
- gtknew('Label', text_ref => \ (my $msg_time_remaining = N("Estimating"))),
- ] ]),
- gtknew('HBox', children => [
- 1, gtknew('VBox', children_centered => [ gtknew('ProgressBar', fraction_ref => \ (my $progress_total), height => 25) ]),
- 0, gtknew('HButtonBox', children_loose => [ $cancel, $details ]),
+ gtknew('HButtonBox', layout => 'start', children_loose => [
+ N("Time remaining:"),
+ gtknew('Label', text_ref => \ (my $msg_time_remaining = N("(estimating...)"))),
]),
+ gtknew('VBox', children_centered => [ gtknew('ProgressBar', fraction_ref => \$progress_total, height => 25) ]),
+ gtknew('HSeparator'),
+ gtknew('HButtonBox', spacing => 0, layout => 'edge', children_loose => [
+ if_($release_notes, $rel_notes),
+ gtknew('HButtonBox', spacing => 5, layout => 'end',
+ children_loose => [ $cancel, $details ]),
+ ]),
])), 0, 1, 0);
#- for the hide_ref & show_ref to work, we must set $show_advertising after packing
@@ -526,10 +625,6 @@ sub installPackages {
$details->hide if !@install::any::advertising_images;
$w->sync;
- foreach ($cancel, $details) {
- gtkset_mousecursor_normal($_->window);
- }
-
$advertize->(0);
local *install::steps::installCallback = sub {
@@ -538,18 +633,29 @@ sub installPackages {
#- $amount and $total are used to return number of package and total size.
$nb = $amount;
$total_size = $total; $current_total_size = 0;
- $o->{install_start_time} = time();
- mygtk2::gtkadd($pkg_log_widget, text => P("%d package", "%d packages", $nb, $nb));
+ $o->{install_start_time} = 0;
+ mygtk3::gtkadd($pkg_log_widget, text => P("%d package", "%d packages", $nb, $nb));
$w->flush;
} elsif ($type eq 'open') {
+ $advertize->(1) if $show_advertising && $total_size > 20_000_000 && time() - $change_time > 20;
+
+ # display release notes if requested, when not chrooted:
+ if ($show_release_notes) {
+ undef $show_release_notes;
+ any::run_display_release_notes($release_notes);
+ $w->flush;
+ }
+ } elsif ($type eq 'inst' && $subtype eq 'start') {
gtkval_modify(\$pkg_progress, 0);
my $p = $packages->{depslist}[$id];
- mygtk2::gtkadd($pkg_log_widget, text => sprintf("\n%s: %s", $p->name, translate($p->summary)));
+ mygtk3::gtkadd($pkg_log_widget, text => sprintf("\n%s: %s", $p->name, translate($p->summary)));
+ $pkg_log_widget->{to_bottom}->('force');
$current_total_size += $last_size;
$last_size = $p->size;
- $advertize->(1) if $show_advertising && $total_size > 20_000_000 && time() - $change_time > 20;
+
$w->flush;
} elsif ($type eq 'inst' && $subtype eq 'progress') {
+ $o->{install_start_time} ||= time();
gtkval_modify(\$pkg_progress, $total ? $amount / $total : 0);
my $dtime = time() - $o->{install_start_time};
@@ -568,7 +674,7 @@ sub installPackages {
}
};
my $install_result;
- catch_cdie { $install_result = $o->install::steps::installPackages($packages) }
+ catch_cdie { $install_result = $o->install::steps::installPackages('interactive') }
sub {
my $rc = install::steps_interactive::installPackages__handle_error($o, $_[0]);
$rc or $w->destroy;
@@ -585,7 +691,7 @@ sub installPackages {
sub summary_prompt {
my ($o, $l, $check_complete) = @_;
- my $w = ugtk2->new(N("Summary"), icon => 'banner-summary');
+ my $w = ugtk3->new(N("Summary"));
my $set_entry_labels;
my (@table, @widget_list);
@@ -597,17 +703,19 @@ sub summary_prompt {
push @widget_list, gtknew('HSeparator', height => 8) if $count;
$count++;
$group = $e->{group};
- push @table, [ gtknew('HBox', children_tight => [ gtknew('Title1', label => escape_text_for_TextView_markup_format($group)) ]), '' ];
+ push @table, [ gtknew('HBox', children_tight => [
+ gtknew('Title1',
+ label => mygtk3::asteriskize(escape_text_for_TextView_markup_format($group))) ]), '' ];
}
- $e->{widget} = gtknew('WrappedLabel', width => $::real_windowwidth * 0.72);
+ $e->{widget} = gtknew('Label_Right', width => $::real_windowwidth * 0.72, alignment => [ 1, 1 ], line_wrap => 1, tip => $e->{tip});
- push @table, [], [ gtknew('HBox', spacing => 30, children_tight => [ '', $e->{widget} ]),
+ push @table, [], [ gtknew('HBox', children_tight => [ $e->{widget}, gtknew('Alignment', width => 10) ]),
gtknew('Button', text => N("Configure"), clicked => sub {
$w->{rwindow}->hide;
- my ($old_icon, $old_title) = get_default_step_items();
- set_default_step_items($e->{banner_icon} || $old_icon, $e->{banner_title} || $old_title);
+ my ($_old_icon, $old_title) = get_default_step_items();
+ set_default_step_items($e->{banner_title} || $old_title);
$e->{clicked}();
- set_default_step_items($old_icon, $old_title);
+ set_default_step_items($old_title);
$w->{rwindow}->show;
$set_entry_labels->();
}) ];
@@ -627,57 +735,75 @@ sub summary_prompt {
};
$set_entry_labels->();
- my $help_sub = $o->interactive_help_sub_display_id('summary');
+ my $help_sub = sub { interactive::gtk::display_help($o, { interactive_help_id => 'misc-params' }) };
- ugtk2::gtkadd($w->{window},
+ ugtk3::gtkadd($w->{window},
gtknew('VBox', spacing => 5, children => [
- 1, gtknew('ScrolledWindow',
- child => gtknew('VBox', children_tight => [ map {
+ 1, gtknew('ScrolledWindow', h_policy => 'never',
+ child => gtknew('TextView',
+ text => [ [ gtknew('VBox', children_tight => [ map {
ref($_) eq 'ARRAY' ? gtknew('Table', mcc => 1, row_spacings => 2, children => $_) : $_;
- } @widget_list ])),
- 0, $w->create_okcancel(undef, '', '', if_($help_sub, [ N("Help"), $help_sub, 1 ]))
+ } @widget_list ]) ] ])),
+ 0, $w->create_okcancel(undef, '', '', if_($help_sub, [ gtknew('Install_Button', text => N("Help"),
+ clicked => $help_sub), undef, 1 ]))
]));
+ $w->{real_window}->show_all; # else widgets embedded in textview are hidden
+
$w->main($check_complete);
}
#- group by CD
sub ask_deselect_media__copy_on_disk {
- my ($_o, $hdlists, $o_copy_rpms_on_disk) = @_;
+ my ($o, $hdlists, $o_copy_rpms_on_disk) = @_;
my @names = uniq(map { $_->{name} } @$hdlists);
- my %selection = map { $_ => 1 } @names;
+ my %selection = map { $_->{name} => !$_->{ignore} } @$hdlists;
if (@names > 1 || $o_copy_rpms_on_disk) {
- my $w = ugtk2->new("");
+ my $w = ugtk3->new(N("Media Selection"));
$w->sync;
- ugtk2::gtkadd(
+ ugtk3::gtkadd(
$w->{window},
- gtkpack(
- Gtk2::VBox->new(0, 5),
- Gtk2::WrappedLabel->new(formatAlaTeX(N("The following installation media have been found.
+ gtknew('VBox', children => [
+ @names > 1 ? (
+ 0, gtknew('Label_Left', padding => [ 0, 0 ],
+ # workaround infamous 6 years old gnome bug #101968:
+ width => mygtk3::get_label_width(),
+ text => formatAlaTeX(N("The following installation media have been found.
If you want to skip some of them, you can unselect them now."))),
- (map {
+ 1, gtknew('ScrolledWindow', child => gtknew('VBox', children => [
+ map {
my $b = gtknew('CheckButton', text => $_, active_ref => \$selection{$_});
$b->set_sensitive(0) if $_ eq $names[0];
- $b;
- } @names),
- gtknew('HSeparator'),
+ (0, $b);
+ } @names
+ ])),
+ if_(@names <= 8, 1, ''),
+ 0, gtknew('HSeparator'),
+ ) : (),
if_($o_copy_rpms_on_disk,
- Gtk2::WrappedLabel->new(formatAlaTeX(N("You have the option to copy the contents of the CDs onto the hard drive before installation.
-It will then continue from the hard drive and the packages will remain available once the system is fully installed."))),
- gtknew('CheckButton', text => N("Copy whole CDs"), active_ref => $o_copy_rpms_on_disk),
- gtknew('HSeparator'),
+ 0, gtknew('Label_Left', padding => [ 0, 0 ],
+ # workaround infamous 6 years old gnome bug #101968:
+ width => mygtk3::get_label_width(),
+ text => N("You have the option to copy the contents of the CDs onto the hard disk drive before installation.
+It will then continue from the hard disk drive and the packages will remain available once the system is fully installed.")),
+ 0, gtknew('CheckButton', text => N("Copy whole CDs"), active_ref => $o_copy_rpms_on_disk),
+ 1, gtknew('Alignment'),
+ 0, gtknew('HSeparator'),
),
- gtknew('HBox', children_tight => [
- gtknew('Button', text => N("Next"), clicked => sub { Gtk2->main_quit }),
+ 0, gtknew('HButtonBox', layout => 'edge', children_tight => [
+ gtknew('Install_Button', text => N("Help"), clicked => sub {
+ interactive::gtk::display_help($o, { interactive_help_id => 'choosePackagesTree' }) }),
+ gtknew('Button', text => N("Next"), clicked => sub { Gtk3->main_quit }),
]),
- ),
+ ]),
);
$w->main;
}
- $_->{selected} = $selection{$_->{name}} foreach @$hdlists;
- log::l("keeping media " . join ',', map { $_->{rpmsdir} } grep { $_->{selected} } @$hdlists);
+ $_->{ignore} = !$selection{$_->{name}} foreach @$hdlists;
+ log::l("keeping media " . join ',', map { $_->{rpmsdir} } grep { !$_->{ignore} } @$hdlists);
}
+
1;
diff --git a/perl-install/install/steps_interactive.pm b/perl-install/install/steps_interactive.pm
index 8f5153e10..55985e01a 100644
--- a/perl-install/install/steps_interactive.pm
+++ b/perl-install/install/steps_interactive.pm
@@ -1,7 +1,8 @@
-package install::steps_interactive; # $Id$
+package install::steps_interactive;
use strict;
+use feature 'state';
our @ISA = qw(install::steps);
@@ -35,6 +36,7 @@ use log;
#-######################################################################################
sub errorInStep {
my ($o, $err) = @_;
+ $err = ugtk3::escape_text_for_TextView_markup_format($err) if $o->isa('install::steps_gtk');
$o->ask_warn(N("Error"), [ N("An error occurred"), formatError($err) ]);
}
@@ -50,6 +52,8 @@ sub kill_action {
sub acceptLicense {
my ($o) = @_;
+ return if $o->{useless_thing_accepted};
+
any::acceptLicense($o);
}
@@ -71,7 +75,7 @@ fonts, spell checkers, various programs translated etc. that
varies from language to language).")) if $o->{locale}{lang} !~ /^en/ && !lang::load_mo();
} else {
#- no need to have this in po since it is never translated
- $o->ask_warn('', "The characters of your language can not be displayed in console,
+ $o->ask_warn('', "The characters of your language cannot be displayed in console,
so the messages will be displayed in english during installation") if $ENV{LANGUAGE} eq 'C';
}
}
@@ -85,7 +89,8 @@ sub selectKeyboard {
if ($clicked || !($from_usb || @$l && $l->[0][1] >= 90) || listlength(lang::langs($o->{locale}{langs})) > 1) {
add2hash($o->{keyboard}, $from_usb);
- my @best = uniq($from_usb ? $from_usb->{KEYBOARD} : (), map { $_->[0] } @$l);
+ my @best = uniq(grep { $_ } $from_usb && $from_usb->{KEYBOARD}, $o->{keyboard}{KEYBOARD},
+ map { $_->[0] } @$l);
@best = () if @best == 1;
my $format = sub { translate(keyboard::KEYBOARD2text($_[0])) };
@@ -93,14 +98,15 @@ sub selectKeyboard {
my $ext_keyboard = my $KEYBOARD = $o->{keyboard}{KEYBOARD};
$o->ask_from_(
{ title => N("Keyboard"),
- icon => 'banner-languages',
- messages => N("Please choose your keyboard layout."),
interactive_help_id => 'selectKeyboard',
- advanced_messages => N("Here is the full list of available keyboards"),
advanced_label => N("More"),
},
- [ if_(@best, { val => \$KEYBOARD, type => 'list', format => $format, sort => 1,
+ [
+ { label => N("Please choose your keyboard layout"), title => 1 },
+ if_(@best, { val => \$KEYBOARD, type => 'list', format => $format, sort => 1,
list => [ @best ], changed => sub { $other = 0 } }),
+ if_(@best,
+ { label => N("Here is the full list of available keyboards:"), title => 1, advanced => 1 }),
{ val => \$ext_keyboard, type => 'list', format => $format, changed => sub { $other = 1 },
list => [ difference2([ keyboard::KEYBOARDs() ], \@best) ], advanced => @best > 1 }
]);
@@ -109,63 +115,128 @@ sub selectKeyboard {
}
keyboard::group_toggle_choose($o, $o->{keyboard}) or goto &selectKeyboard;
install::steps::selectKeyboard($o);
+ if ($::isRestore) {
+ require MDV::Snapshot::Restore;
+ MDV::Snapshot::Restore::main($o);
+ $o->exit;
+ }
}
#------------------------------------------------------------------------------
sub selectInstallClass {
my ($o) = @_;
- if (my @l = install::any::find_root_parts($o->{fstab}, $::prefix)) {
- log::l("proposing to upgrade partitions " . join(" ", map { $_->{part} && $_->{part}{device} } @l));
+ return if $::isRestore;
- my @releases = uniq(map { $_->{release} } @l);
- if (@releases != @l) {
- #- same release name so adding the device to differentiate them:
- $_->{release} .= " ($_->{part}{device})" foreach @l;
- }
+ my @l = install::any::find_root_parts($o->{fstab}, $::prefix);
+ # Don't list other archs as ugrading between archs is not supported
+ my $arch = arch() =~ /i.86/ ? $MDK::Common::System::compat_arch{arch()} : arch();
+ # Offer to upgrade only same arch and not mdv-2011+:
+ @l = grep { $_->{arch} eq $arch && $_->{version} !~ /201[1-9]/ } @l;
+ if (@l) {
+ _try_to_upgrade($o, @l);
+ }
+}
- askInstallClass:
- my $p;
- $o->ask_from_({ title => N("Install/Upgrade"),
- messages => N("Is this an install or an upgrade?"),
- interactive_help_id => 'selectInstallClass',
- },
- [ { val => \$p,
- list => [ @l, N_("_: This is a noun:\nInstall") ],
- type => 'list',
- format => sub { ref($_[0]) ? N("Upgrade %s", $_[0]{release}) : translate($_[0]) }
- } ]);
- if (ref $p) {
- if (arch() =~ /x86_64/ && $p->{arch} eq 'i586') {
- $o->ask_warn('', N("Upgrade from a 32bit to a 64bit distribution is not supported"));
- goto askInstallClass;
- }
- if (arch() =~ /i.86/ && $p->{arch} eq 'x86_64') {
- $o->ask_warn('', N("Upgrade from a 64bit to a 32bit distribution is not supported"));
- goto askInstallClass;
- }
+sub _try_to_upgrade {
+ my ($o, @l) = @_;
+ log::l("proposing to upgrade partitions " . join(" ", map { $_->{part} && $_->{part}{device} } @l));
- if ($p->{part}) {
- log::l("choosing to upgrade partition $p->{part}{device}");
- $o->{migrate_device_names} = install::any::use_root_part($o->{all_hds}, $p->{part}, $o);
- }
+ my @releases = uniq(map { "$_->{release} $_->{version}" } @l);
+ if (@releases != @l) {
+ #- same release name so adding the device to differentiate them:
+ $_->{release} .= " ($_->{part}{device})" foreach @l;
+ }
- #- handle encrypted partitions (esp. /home)
- foreach (grep { $_->{mntpoint} } @{$o->{fstab}}) {
- my ($options, $_unknown) = fs::mount_options::unpack($_);
- $options->{encrypted} or next;
- $o->ask_from_({ focus_first => 1 },
- [ { label => N("Encryption key for %s", $_->{mntpoint}),
- hidden => 1, val => \$_->{encrypt_key} } ]);
- }
+ askInstallClass:
+ my $p;
+ $o->ask_from_({ title => N("Install/Upgrade"),
+ interactive_help_id => 'selectInstallClass',
+ },
+ [
+ { label => N("Is this an install or an upgrade?"), title => 1 },
+ { val => \$p,
+ list => [ @l, N_("_: This is a noun:\nInstall") ],
+ type => 'list',
+ format => sub { ref($_[0]) ? N("Upgrade %s", "$_[0]->{release} $_[0]->{version}") : translate($_[0]) }
+ } ]);
+ if (ref $p) {
+ _check_unsafe_upgrade_and_warn($o, $p->{part}) or $p = undef;
+ }
- $o->{isUpgrade} = (find { $p->{release_file} =~ /$_/ } 'mandriva', 'mandrake', 'conectiva', 'redhat') || 'unknown';
- $o->{upgrade_by_removing_pkgs_matching} ||= {
- conectiva => 'cl',
- redhat => '.', #- everything!
- }->{$o->{isUpgrade}};
- log::l("upgrading $o->{isUpgrade} distribution" . ($o->{upgrade_by_removing_pkgs_matching} ? " (upgrade_by_removing_pkgs_matching $o->{upgrade_by_removing_pkgs_matching})" : ''));
- }
+ if (ref $p) {
+ _prepare_upgrade($o, $p);
+ }
+}
+
+sub _prepare_upgrade {
+ my ($o, $p) = @_;
+ if ($p->{part}) {
+ log::l("choosing to upgrade partition $p->{part}{device}");
+ $o->{migrate_device_names} = install::any::use_root_part($o->{all_hds}, $p->{part}, $o);
+ }
+
+ #- handle encrypted partitions (esp. /home)
+ foreach (grep { $_->{mntpoint} } @{$o->{fstab}}) {
+ my ($options, $_unknown) = fs::mount_options::unpack($_);
+ $options->{encrypted} or next;
+ $o->ask_from_({ focus_first => 1 },
+ [ { label => N("Encryption key for %s", $_->{mntpoint}),
+ hidden => 1, val => \$_->{encrypt_key} } ]);
+ }
+
+ $o->{previous_release} = $p;
+ $o->{isUpgrade} = (find { $p->{release_file} =~ /$_/ } 'mageia', 'mandriva', 'mandrake', 'conectiva', 'redhat') || 'unknown';
+ $o->{upgrade_by_removing_pkgs_matching} ||= {
+ conectiva => 'cl',
+ redhat => '.', #- everything!
+ }->{$o->{isUpgrade}};
+ log::l("upgrading $o->{isUpgrade} distribution" . ($o->{upgrade_by_removing_pkgs_matching} ? " (upgrade_by_removing_pkgs_matching $o->{upgrade_by_removing_pkgs_matching})" : ''));
+}
+
+sub _check_unsafe_upgrade_and_warn {
+ my ($o, $part) = @_;
+ !_is_unsafe_upgrade($part) || _warn_unsafe_upgrade($o);
+}
+
+sub _is_unsafe_upgrade {
+ my ($part) = @_;
+
+ my $r = run_program::get_stdout('dumpe2fs', devices::make($part->{device}));
+ my $block_size = $r =~ /^Block size:\s*(\d+)/m && $1;
+ log::l("block_size $block_size");
+ $block_size == 1024;
+}
+
+sub _warn_unsafe_upgrade {
+ my ($o) = @_;
+
+ log::l("_warn_unsafe_upgrade");
+
+ my @choices = (
+ N_("Cancel installation, reboot system"),
+ N_("New Installation"),
+ N_("Upgrade previous installation (not recommended)"),
+ );
+
+ my $choice;
+ $o->ask_from_({ messages => N("Installer has detected that your installed Linux system could not
+safely be upgraded to %s.
+
+New installation replacing your previous one is recommended.
+
+Warning : you should backup all your personal data before choosing \"New
+Installation\".", '%s') },
+ [ { val => \$choice, type => 'list', list => \@choices, format => \&translate } ]);
+
+ log::l("_warn_unsafe_upgrade: got $choice");
+
+ if ($choice eq $choices[0]) {
+ any::reboot();
+ } elsif ($choice eq $choices[1]) {
+ undef;
+ } else {
+ 1;
}
}
@@ -180,8 +251,7 @@ sub selectMouse {
if ($o->{mouse}{device} eq "input/mice") {
modules::interactive::load_category($o, $o->{modules_conf}, 'bus/usb', 1, 0);
eval {
- devices::make("usbmouse");
- modules::load(qw(usbhid mousedev usbmouse));
+ modules::load('usbhid');
};
}
}
@@ -191,14 +261,14 @@ sub setupSCSI {
install::any::configure_pcmcia($o);
{
- my $_w = $o->wait_message(N("IDE"), N("Configuring IDE"));
+ my $_w = $o->wait_message(N("CD/DVD"), N("Configuring CD/DVD"));
modules::load(modules::category2modules('disk/cdrom'));
}
modules::interactive::load_category($o, $o->{modules_conf}, 'bus/firewire', 1);
my $have_non_scsi = detect_devices::hds(); #- at_least_one scsi device if we have no disks
- modules::interactive::load_category($o, $o->{modules_conf}, 'disk/card_reader|ide|scsi|hardware_raid|sata|firewire', 1, !$have_non_scsi);
- modules::interactive::load_category($o, $o->{modules_conf}, 'disk/card_reader|ide|scsi|hardware_raid|sata|firewire') if !detect_devices::hds(); #- we really want a disk!
+ modules::interactive::load_category($o, $o->{modules_conf}, 'disk/card_reader|ide|scsi|hardware_raid|sata|firewire|virtual', 1, !$have_non_scsi);
+ modules::interactive::load_category($o, $o->{modules_conf}, 'disk/card_reader|ide|scsi|hardware_raid|sata|firewire|virtual') if !detect_devices::hds(); #- we really want a disk!
install::interactive::tellAboutProprietaryModules($o);
@@ -209,34 +279,6 @@ sub setupSCSI {
sub doPartitionDisks {
my ($o) = @_;
- if (arch() =~ /ppc/) {
- my $generation = detect_devices::get_mac_generation();
- if ($generation =~ /NewWorld/) {
- #- mac partition table
- if (defined $partition_table::mac::bootstrap_part) {
- #- do not do anything if we've got the bootstrap setup
- #- otherwise, go ahead and create one somewhere in the drive free space
- } else {
- my $freepart = $partition_table::mac::freepart;
- if ($freepart && $freepart->{size} >= 1) {
- log::l("creating bootstrap partition on drive /dev/$freepart->{hd}{device}, block $freepart->{start}");
- $partition_table::mac::bootstrap_part = $freepart->{part};
- log::l("bootstrap now at $partition_table::mac::bootstrap_part");
- my $p = { start => $freepart->{start}, size => MB(1), mntpoint => '' };
- fs::type::set_pt_type($p, 0x401);
- fsedit::add($freepart->{hd}, $p, $o->{all_hds}, { force => 1, primaryOrExtended => 'Primary' });
- $partition_table::mac::new_bootstrap = 1;
-
- } else {
- $o->ask_warn('', N("No free space for 1MB bootstrap! Install will continue, but to boot your system, you'll need to create the bootstrap partition in DiskDrake"));
- }
- }
- } elsif ($generation =~ /IBM/) {
- #- dos partition table
- $o->ask_warn('', N("You'll need to create a PPC PReP Boot bootstrap! Install will continue, but to boot your system, you'll need to create the bootstrap partition in DiskDrake"));
- }
- }
-
if (!$o->{isUpgrade}) {
fs::partitioning_wizard::main($o, $o->{all_hds}, $o->{fstab}, $o->{manualFstab}, $o->{partitions}, $o->{partitioning}, $::local_install);
}
@@ -261,11 +303,6 @@ sub formatMountPartitions {
}
#------------------------------------------------------------------------------
-sub setPackages {
- my ($o) = @_;
- install::any::setPackages($o);
-}
-
#- group by CD
sub ask_deselect_media__copy_on_disk {
my ($o, $hdlists, $o_copy_rpms_on_disk) = @_;
@@ -281,13 +318,13 @@ If you want to skip some of them, you can unselect them now.")) },
if_($_ eq $names[0], disabled => sub { 1 }),
} } @names),
if_($o_copy_rpms_on_disk,
- { type => 'label', val => \(formatAlaTeX(N("You have the option to copy the contents of the CDs onto the hard drive before installation.
-It will then continue from the hard drive and the packages will remain available once the system is fully installed."))) },
+ { type => 'label', val => \(formatAlaTeX(N("You have the option to copy the contents of the CDs onto the hard disk drive before installation.
+It will then continue from the hard disk drive and the packages will remain available once the system is fully installed."))) },
{ type => 'bool', text => N("Copy whole CDs"), val => $o_copy_rpms_on_disk },
),
]);
- $_->{selected} = $selection{$_->{name}} foreach @$hdlists;
- log::l("keeping media " . join ',', map { $_->{rpmsdir} } grep { $_->{selected} } @$hdlists);
+ $_->{ignore} = !$selection{$_->{name}} foreach @$hdlists;
+ log::l("keeping media " . join ',', map { $_->{rpmsdir} } grep { !$_->{ignore} } @$hdlists);
}
sub while_suspending_time {
@@ -305,50 +342,35 @@ sub while_suspending_time {
# nb: $file can be a directory
sub ask_change_cd {
- my ($o, $phys_m, $o_rel_file) = @_;
+ my ($o, $medium) = @_;
- while_suspending_time($o, sub { ask_change_cd_($o, $phys_m, $o_rel_file) });
+ while_suspending_time($o, sub { ask_change_cd_($o, $medium) });
}
sub ask_change_cd_ {
- my ($o, $phys_m, $o_rel_file) = @_;
-
- local $| = 1; print "\a";
-
- if ($phys_m->{name} =~ /commercial/i) {
- $o->{useless_thing_accepted2} ||=
- $o->ask_from_list_('', formatAlaTeX(messages::com_license()),
- [ N_("Accept"), N_("Refuse") ], "Accept") eq "Accept" or return;
- }
-
- foreach (1 .. 32) {
- install::media::umount_phys_medium($phys_m);
- install::media::openCdromTray($phys_m->{device});
+ my ($o, $medium) = @_;
+ local $::isWizard = 0; # make button name match text, aka being "cancel" rather than "previous"
$o->ask_okcancel('', N("Change your Cd-Rom!
Please insert the Cd-Rom labelled \"%s\" in your drive and press Ok when done.
-If you do not have it, press Cancel to avoid installation from this Cd-Rom.", $phys_m->{name}), 1) or return;
+If you do not have it, press Cancel to avoid installation from this Cd-Rom.", $medium), 1) or return;
- eval { fs::mount::part($phys_m) };
-
- #- it can be a directory, so don't use -f
- !$o_rel_file || -e install::media::path($phys_m, $o_rel_file) and return 1;
-
- log::l("file " . install::media::path($phys_m, $o_rel_file) . " not found");
- }
- undef;
}
sub selectSupplMedia {
my ($o) = @_;
install::any::selectSupplMedia($o);
}
+
#------------------------------------------------------------------------------
sub choosePackages {
my ($o) = @_;
+ require pkgs;
+ add2hash_($o, { compssListLevel => pkgs::rpmsrate_rate_default() });
+
my $w = $o->wait_message('', N("Looking for available packages..."));
- my $availableC = &install::steps::choosePackages;
+ my $availableC = install::steps::choosePackages($o, pkgs::rpmsrate_rate_max());
require install::pkgs;
@@ -362,29 +384,29 @@ sub choosePackages {
install::steps::rebootNeeded($o);
}
- my $min_mark = 4;
my ($individual, $chooseGroups);
if (!$o->{isUpgrade}) {
- if (install::pkgs::packageByName($o->{packages}, 'task-kde') &&
- install::pkgs::packageByName($o->{packages}, 'task-gnome-minimal')) {
+ my $tasks_ok = install::pkgs::packageByName($o->{packages}, 'task-plasma-minimal') &&
+ install::pkgs::packageByName($o->{packages}, 'task-gnome-minimal');
+ if ($tasks_ok && $availableC >= 2_500_000_000) {
_chooseDesktop($o, $o->{rpmsrate_flags_chosen}, \$chooseGroups);
} else {
- # don't ask for desktop if kde and gnome are not available on media (useful for mini iso)
+ $tasks_ok ? log::l("not asking for desktop since not enough place") :
+ log::l("not asking for desktop since kde and gnome are not available on media (useful for mini iso)");
$chooseGroups = 1;
}
}
chooseGroups:
- $o->chooseGroups($o->{packages}, $o->{compssUsers}, $min_mark, \$individual) if $chooseGroups;
+ $o->chooseGroups($o->{packages}, $o->{compssUsers}, \$individual) if $chooseGroups;
($o->{packages_}{ind}) =
- install::pkgs::setSelectedFromCompssList($o->{packages}, $o->{rpmsrate_flags_chosen}, $min_mark, $availableC);
+ install::pkgs::setSelectedFromCompssList($o->{packages}, $o->{rpmsrate_flags_chosen}, $o->{compssListLevel}, $availableC);
$o->choosePackagesTree($o->{packages}) or goto chooseGroups if $individual;
install::any::warnAboutRemovedPackages($o, $o->{packages});
- install::any::warnAboutNaughtyServers($o) or goto chooseGroups if !$o->{isUpgrade};
}
sub choosePackagesTree {
@@ -399,6 +421,7 @@ sub choosePackagesTree {
sort => 1,
});
}
+
sub loadSavePackagesOnFloppy {
my ($o, $packages) = @_;
$o->ask_from('',
@@ -424,20 +447,23 @@ The format is the same as auto_install generated files."),
install::any::g_default_packages($o);
}
}
+
sub _chooseDesktop {
my ($o, $rpmsrate_flags_chosen, $chooseGroups) = @_;
my @l = group_by2(
- KDE => N("Install Mandriva KDE Desktop"),
- GNOME => N("Install Mandriva GNOME Desktop"),
- Custom => N("Custom install"),
+ PLASMA => N("Plasma"),
+ GNOME => N("GNOME"),
+ Custom => N("Custom"),
);
- my $title = N("Package Group Selection");
- my $message = N("You can choose your workstation desktop profile: KDE, GNOME or Custom");
+ my $title = N("Desktop Selection");
+ my $message = N("You can choose your workstation desktop profile.");
- my $choice;
+ my $default_choice = (find { $rpmsrate_flags_chosen->{"CAT_" . $_->[0]} } @l) || $l[0];
+ my $choice = $default_choice;
if ($o->isa('interactive::gtk')) {
- $choice = install::steps_gtk::reallyChooseDesktop($o, $title, $message, \@l);
+ # perl_checker: require install::steps_gtk
+ $choice = install::steps_gtk::reallyChooseDesktop($o, $title, $message, \@l, $default_choice);
} else {
$o->ask_from_({ title => $title, message => $message }, [
{ val => \$choice, list => \@l, type => 'list', format => sub { $_[0][1] } },
@@ -445,7 +471,7 @@ sub _chooseDesktop {
}
my $desktop = $choice->[0];
log::l("chosen Desktop: $desktop");
- my @desktops = ('KDE', 'GNOME');
+ my @desktops = ('PLASMA', 'GNOME');
if (member($desktop, @desktops)) {
my ($want, $dontwant) = ($desktop, grep { $desktop ne $_ } @desktops);
$rpmsrate_flags_chosen->{"CAT_$want"} = 1;
@@ -457,8 +483,11 @@ sub _chooseDesktop {
$$chooseGroups = 1;
}
}
+
sub chooseGroups {
- my ($o, $packages, $compssUsers, $min_level, $individual) = @_;
+ my ($o, $packages, $compssUsers, $individual) = @_;
+
+ my $w = $o->wait_message('', N("Looking for available packages..."));
#- for all groups available, determine package which belongs to each one.
#- this will enable getting the size of each groups more quickly due to
@@ -467,15 +496,17 @@ sub chooseGroups {
my $b = install::pkgs::saveSelected($packages);
install::any::unselectMostPackages($o);
- install::pkgs::setSelectedFromCompssList($packages, { CAT_SYSTEM => 1 }, $min_level, 0);
+ install::pkgs::setSelectedFromCompssList($packages, { CAT_SYSTEM => 1 }, $o->{compssListLevel}, 0);
my $system_size = install::pkgs::selectedSize($packages);
- my ($sizes, $pkgs) = install::pkgs::computeGroupSize($packages, $min_level);
+ my ($sizes, $pkgs) = install::pkgs::computeGroupSize($packages, $o->{compssListLevel});
install::pkgs::restoreSelected($b);
log::l("system_size: $system_size");
my %stable_flags = grep_each { $::b } %{$o->{rpmsrate_flags_chosen}};
delete $stable_flags{"CAT_$_"} foreach map { @{$_->{flags}} } @{$o->{compssUsers}};
+ undef $w;
+
my $compute_size = sub {
my %pkgs;
my %flags = %stable_flags; @flags{@_} = ();
@@ -524,35 +555,49 @@ sub chooseGroups {
log::l("compssUsersChoice selected: ", join(', ', map { qq("$_->{path}|$_->{label}") } grep { $_->{selected} } @$compssUsers));
- #- do not try to deselect package (by default no groups are selected).
if (!$o->{isUpgrade}) {
+ #- do not try to deselect package (by default no groups are selected).
install::any::unselectMostPackages($o) if $unselect_all;
+
+ #- if no group have been chosen, ask for using base system only, or no X, or normal.
+ if (!any { $_->{selected} } @$compssUsers) {
+ offer_minimal_options($o) or goto &chooseGroups;
+ }
}
- #- if no group have been chosen, ask for using base system only, or no X, or normal.
- if (!$o->{isUpgrade} && !any { $_->{selected} } @$compssUsers) {
+ 1;
+}
+
+sub offer_minimal_options {
+ my ($o) = @_;
my $docs = !$o->{excludedocs};
- my $minimal;
+ state $minimal;
+ my $recommends = !$o->{no_recommends};
- $o->ask_from(N("Type of install"),
- N("You have not selected any group of packages.
+ $o->ask_from_({ title => N("Type of install"),
+ message => N("You have not selected any group of packages.
Please choose the minimal installation you want:"),
+ interactive_help_id => 'minimal-install'
+ },
[
{ val => \$o->{rpmsrate_flags_chosen}{CAT_X}, type => 'bool', text => N("With X"), disabled => sub { $minimal } },
+ { val => \$recommends, type => 'bool', text => N("Install recommended packages"), disabled => sub { $minimal } },
{ val => \$docs, type => 'bool', text => N("With basic documentation (recommended!)"), disabled => sub { $minimal } },
{ val => \$minimal, type => 'bool', text => N("Truly minimal install (especially no urpmi)") },
],
- ) or return &chooseGroups;
+ ) or return 0;
if ($minimal) {
- $o->{rpmsrate_flags_chosen}{CAT_X} = $docs = 0;
+ $o->{rpmsrate_flags_chosen}{CAT_X} = $docs = $recommends = 0;
$o->{rpmsrate_flags_chosen}{CAT_SYSTEM} = 0;
}
$o->{excludedocs} = !$docs;
$o->{rpmsrate_flags_chosen}{CAT_MINIMAL_DOCS} = $docs;
+ $o->{no_recommends} = !$recommends;
+ $o->{compssListLevel} = pkgs::rpmsrate_rate_max() if !$recommends;
+ log::l("install settings: no_recommends=$o->{no_recommends}, excludedocs=$o->{excludedocs}, really_minimal_install=$minimal");
install::any::unselectMostPackages($o);
- }
- 1;
+ 1;
}
sub reallyChooseGroups {
@@ -562,7 +607,7 @@ sub reallyChooseGroups {
my ($path, $all);
$o->ask_from_({ messages => N("Package Group Selection"),
- interactive_help_id => 'choosePackages',
+ interactive_help_id => 'choosePackageGroups',
}, [
{ val => \$size_text, type => 'label' }, {},
(map {
@@ -587,9 +632,15 @@ sub reallyChooseGroups {
1;
}
+sub beforeInstallPackages {
+ my ($o) = @_;
+ my $_w = $o->{isUpgrade} && $o->wait_message('', N("Preparing upgrade..."));
+ $o->SUPER::beforeInstallPackages;
+}
+
#------------------------------------------------------------------------------
sub installPackages {
- my ($o, $packages) = @_;
+ my ($o) = @_;
my ($current, $total) = (0, 0);
my ($_w, $wait_message) = $o->wait_message_with_progress_bar(N("Installing"));
@@ -607,7 +658,7 @@ sub installPackages {
};
my $install_result;
- catch_cdie { $install_result = $o->install::steps::installPackages($packages) }
+ catch_cdie { $install_result = $o->install::steps::installPackages('interactive') }
sub { installPackages__handle_error($o, $_[0]) };
if ($install::pkgs::cancel_install) {
@@ -653,7 +704,8 @@ sub installPackages__handle_error {
sub afterInstallPackages($) {
my ($o) = @_;
- my $_w = $o->wait_message('', N("Post-install configuration"));
+ local $o->{pop_wait_messages} = 1;
+ my $_w = $o->wait_message(N("Post-install configuration"), N("Post-install configuration"));
$o->SUPER::afterInstallPackages;
}
@@ -678,7 +730,7 @@ sub configureNetwork {
#------------------------------------------------------------------------------
sub installUpdates {
my ($o) = @_;
- my $u = $o->{updates} ||= {};
+ $o->{updates} ||= {};
$o->hasNetwork or return;
@@ -688,54 +740,78 @@ sub installUpdates {
return;
}
- $o->ask_yesorno_({ title => N("Updates"), icon => 'banner-update', messages => formatAlaTeX(
-N("You now have the opportunity to download updated packages. These packages
-have been updated after the distribution was released. They may
-contain security or bug fixes.
-
-To download these packages, you will need to have a working Internet
+ $o->ask_yesorno_({ title => N("Updates"), messages => formatAlaTeX(
+N("You now have the opportunity to setup online media.") . "\n\n" .
+N("This allows to install security updates.") . "\n\n" .
+N("To setup those media, you will need to have a working Internet
connection.
-Do you want to install the updates?")),
+Do you want to setup the update media?")),
interactive_help_id => 'installUpdates',
- }) or return;
+ }, 1) or do {
+ log::l("installUpdates: skipping since user say no to media setup");
+ return;
+ };
+ my $urpmi_options = { mirror_url => '$MIRRORLIST', downloader => $o->{options}{downloader} };
+
+ try_again:
#- bring all interface up for installing updates packages.
install::interactive::upNetwork($o);
- #- update medium available and working.
- my $update_medium;
- do {
- $u->{url} = install::any::ask_mirror($o, 'updates', $u->{url}) or goto &installUpdates;
- my $phys_medium = install::media::url2mounted_phys_medium($o, $u->{url} . '/media/main/updates');
+ any::ask_mirror_and_downloader($o, $urpmi_options);
+
+ if (!any::urpmi_set_downloader($o, $o->{packages}, $urpmi_options->{downloader})) {
+ log::l("installUpdates: failed to change urpmi downloader");
+ local $::isWizard = 0; # make button names "ok" and "cancel", not "next" and "previous"
+ if ($o->ask_okcancel(N("Warning"),
+ N("That downloader could not be installed") . "\n" . N("Retry?"))) {
+ goto try_again;
+ } else {
+ return 0;
+ }
+ }
- eval {
- my $_w = $o->wait_message('', N("Contacting the mirror to get the list of available packages..."));
- $update_medium = { name => "Updates for Mandriva Linux " . $o->{product_id}{version}, update => 1 };
- install::media::get_standalone_medium($o, $phys_medium, $o->{packages}, $update_medium);
- };
- if ($@) {
- undef $update_medium;
- $o->ask_warn('', N("Unable to contact mirror %s", $u->{mirror}));
- }
- } until $update_medium;
+ if ($urpmi_options->{mirror_url} ne '$MIRRORLIST') {
+ $urpmi_options->{mirror_url} = any::ask_mirror($o, 'distrib', $urpmi_options->{mirror_url});
+ }
- if ($update_medium) {
- if ($o->choosePackagesTree($o->{packages}, $update_medium)) {
- $o->{isUpgrade} = 1; #- now force upgrade mode, else update will be installed instead of upgraded.
- $o->pkg_install;
+ install::pkgs::clean_rpmdb_shared_regions();
+ if (any::urpmi_add_all_media($o, $o->{previous_release}, $urpmi_options->{mirror_url})) {
+ log::l("installUpdates: successfully added media");
+ } else {
+ log::l("installUpdates: failed to add media");
+ local $::isWizard = 0; # make button names "ok" and "cancel", not "next" and "previous"
+ if ($o->ask_okcancel(N("Warning"),
+ N("Failure when adding medium") . "\n" . N("Retry?"))) {
+ goto try_again;
} else {
- #- make sure to not try to install the packages (which are automatically selected by getPackage above).
- #- this is possible by deselecting the medium (which can be re-selected above).
- $update_medium->{selected} = 0;
- goto &installUpdates;
+ return 0;
}
- #- update urpmi even, because there is an hdlist available and everything is good,
- #- this will allow user to update the medium but update his machine later.
- install::steps::install_urpmi($o);
}
- #- not downing network, even ppp. We don't care much since it is the end of install :)
+ $o->ask_yesorno_({ title => N("Updates"), messages => formatAlaTeX(
+N("You now have the opportunity to download updated packages. These packages
+have been updated after the distribution was released. They may
+contain security or bug fixes.
+
+To download these packages, you will need to have a working Internet
+connection.
+
+Do you want to install the updates?")),
+ interactive_help_id => 'installUpdates',
+ }, 1) or do {
+ log::l("installUpdates: skipping since user say no to updates");
+ return;
+ };
+
+ my $binary = find { whereis_binary($_, $::prefix) } if_(check_for_xserver(), 'gurpmi2'), 'urpmi' or return;
+ my $log_file = '/root/drakx/updates.log';
+ run_program::raw({ root => $::prefix, timeout => 'never' }, $binary, '>>', $log_file, '2>>', $log_file, '--auto-select');
+
+ install::pkgs::clean_rpmdb_shared_regions();
+
+ #- not downing network, even PPP. We don't care much since it is the end of install :)
}
@@ -795,7 +871,6 @@ sub summary {
push @l, {
group => N("System"),
label => N("Timezone"),
- banner_icon => 'banner-languages',
val => sub { $o->{timezone}{timezone} },
clicked => sub { $timezone_manually_set = $o->configureTimezone(1) || $timezone_manually_set },
};
@@ -811,22 +886,25 @@ sub summary {
$o->pkg_install(map { $_->name } @pkgs) if @pkgs;
lang::write_and_install($o->{locale}, $o->do_pkgs);
- if (!$timezone_manually_set) {
+ if (!$timezone_manually_set && !$o->{isUpgrade}) {
delete $o->{timezone};
install::any::preConfigureTimezone($o); #- now we can precise the timezone thanks to the country
}
},
};
+ local $o->{bootloader}{boot} = 'ESP' if is_uefi();
push @l, {
group => N("System"),
label => N("Bootloader"),
val => sub {
- #-PO: example: lilo-graphic on /dev/hda1
- N("%s on %s", $o->{bootloader}{method}, $o->{bootloader}{boot});
+
+ $o->{bootloader}{boot} ?
+ #-PO: example: grub2-graphic on /dev/sda1
+ N("%s on %s", $o->{bootloader}{method}, $o->{bootloader}{boot}) : N("None");
},
+ if_(is_uefi(), tip => N("EFI System Partition")),
clicked => sub {
any::setupBootloader($o, $o->{bootloader}, $o->{all_hds}, $o->{fstab}, $o->{security}) or return;
- any::installBootloader($o, $o->{bootloader}, $o->{all_hds});
},
} if !$::local_install;
@@ -835,6 +913,9 @@ sub summary {
label => N("User management"),
clicked => sub {
if (my $u = any::ask_user($o, $o->{users}, $o->{security}, needauser => 1)) {
+ #- getpwnam, getgrnam, getgrid works
+ symlinkf("$::prefix/etc/passwd", '/etc/passwd');
+ symlinkf("$::prefix/etc/group", '/etc/group');
any::add_users([$u], $o->{authentication});
}
},
@@ -843,11 +924,10 @@ sub summary {
push @l, {
group => N("System"),
label => N("Services"),
- banner_icon => 'banner-generic-ad',
val => sub {
require services;
my ($l, $activated) = services::services();
- N("Services: %d activated for %d registered", int(@$activated), int(@$l));
+ N("%d activated for %d registered", int(@$activated), int(@$l));
},
clicked => sub {
require services;
@@ -860,18 +940,17 @@ sub summary {
label => N("Keyboard"),
val => sub { $o->{keyboard} && translate(keyboard::keyboard2text($o->{keyboard})) },
clicked => sub { $o->selectKeyboard(1) },
- };
+ } if !$o->{match_all_hardware};
push @l, {
group => N("Hardware"),
label => N("Mouse"),
- banner_icon => 'banner-bootL',
val => sub { translate($o->{mouse}{type}) . ' ' . translate($o->{mouse}{name}) },
clicked => sub { selectMouse($o, 1); mouse::write($o->do_pkgs, $o->{mouse}) },
- };
+ } if !$o->{match_all_hardware};
- my @sound_cards = detect_devices::getSoundDevices();
+ my @sound_cards = $o->{match_all_hardware} ? () : detect_devices::getSoundDevices();
my $sound_index = 0;
foreach my $device (@sound_cards) {
@@ -879,7 +958,6 @@ sub summary {
push @l, {
group => N("Hardware"),
label => N("Sound card"),
- banner_icon => 'banner-generic-ad',
val => sub {
$device->{driver} && modules::module2description($device->{driver}) || $device->{description};
},
@@ -891,41 +969,23 @@ sub summary {
$sound_index++;
}
- if (!@sound_cards && ($o->{rpmsrate_flags_chosen}{CAT_GAMES} || $o->{rpmsrate_flags_chosen}{CAT_AUDIO})) {
- #- if no sound card are detected AND the user selected things needing a sound card,
- #- propose a special case for ISA cards
- push @l, {
- group => N("Hardware"),
- label => N("Sound card"),
- val => sub {},
- clicked => sub {
- if ($o->ask_yesorno('', N("Do you have an ISA sound card?"))) {
- $o->do_pkgs->install(qw(alsa-utils sndconfig aoss));
- $o->ask_warn('', N("Run \"alsaconf\" or \"sndconfig\" after installation to configure your sound card"));
- } else {
- $o->ask_warn('', N("No sound card detected. Try \"harddrake\" after installation"));
- }
- },
- };
- }
-
push @l, {
group => N("Hardware"),
label => N("Graphical interface"),
- banner_icon => 'banner-bootL',
val => sub { $o->{raw_X} ? Xconfig::various::to_string($o->{raw_X}) : '' },
clicked => sub { configureX($o, 'expert') },
- };
+ } if !$o->{match_all_hardware};
push @l, {
group => N("Network & Internet"),
label => N("Network"),
val => sub { $o->{net}{type} },
+ format => sub { $_[0] =~ s/.*:://; $_[0] },
clicked => sub {
require network::netconnect;
network::netconnect::real_main($o->{net}, $o, $o->{modules_conf});
},
- };
+ } if !$o->{match_all_hardware};
$o->{miscellaneous} ||= {};
push @l, {
@@ -937,7 +997,7 @@ sub summary {
network::network::miscellaneous_choose($o, $o->{miscellaneous});
network::network::proxy_configure($o->{miscellaneous}) if !$::testing;
},
- };
+ } if !$o->{match_all_hardware};
push @l, {
group => N("Security"),
@@ -950,13 +1010,14 @@ sub summary {
require security::level;
my $security = $o->{security};
set_sec_level:
- if (security::level::level_choose($o, \$security, \$o->{libsafe}, \$o->{security_user})) {
+ if (security::level::level_choose($o, \$security, \$o->{security_user})) {
check_security_level($o, $security) or goto set_sec_level;
$o->{security} = $security;
install::any::set_security($o);
}
},
- };
+ } if -x "$::prefix/usr/sbin/msec";
+ # FIXME: install msec if needed instead
push @l, {
group => N("Security"),
@@ -968,13 +1029,14 @@ sub summary {
},
clicked => sub {
require network::drakfirewall;
- if (my @rc = network::drakfirewall::main($o, $o->{security} <= 3)) {
+ if (my @rc = network::drakfirewall::main($o, $o->{security} < 1)) {
$o->{firewall_ports} = !$rc[0] && $rc[1];
}
},
} if detect_devices::get_net_interfaces();
my $check_complete = sub {
+ return 1 if $o->{match_all_hardware};
require install::pkgs;
my $p = install::pkgs::packageByName($o->{packages}, 'task-x11');
$o->{raw_X} || !$::testing && $p && !$p->flag_installed ||
@@ -983,6 +1045,7 @@ sub summary {
$o->summary_prompt(\@l, $check_complete);
+ any::installBootloader($o, $o->{bootloader}, $o->{all_hds}) if !$::local_install;
install::steps::configureTimezone($o) if !$timezone_manually_set; #- do not forget it.
}
@@ -1005,37 +1068,26 @@ sub setRootPassword_addUser {
#------------------------------------------------------------------------------
sub setupBootloaderBefore {
my ($o) = @_;
- my $_w = $o->wait_message('', N("Preparing bootloader..."));
+ local $o->{pop_wait_messages} = 1;
+ my $_w = $o->wait_message(N("Please wait"),
+ #-PO: This is NOT the boot loader (just the kernel initrds)!!!!
+ N("Preparing initial startup program...") . "\n" .
+ N("Be patient, this may take a while...")
+ );
$o->SUPER::setupBootloaderBefore;
}
#------------------------------------------------------------------------------
sub setupBootloader {
my ($o) = @_;
- if (arch() =~ /ppc/) {
- if (detect_devices::get_mac_generation() !~ /NewWorld/ &&
- detect_devices::get_mac_model() !~ /IBM/) {
- $o->ask_warn('', N("You appear to have an OldWorld or Unknown machine, the yaboot bootloader will not work for you. The install will continue, but you'll need to use BootX or some other means to boot your machine. The kernel argument for the root fs is: root=%s", '/dev/' . fs::get::root_($o->{fstab})->{device}));
- log::l("OldWorld or Unknown Machine - no yaboot setup");
- return;
- }
- }
- if (arch() =~ /^alpha/) {
- $o->ask_yesorno('', N("Do you want to use aboot?"), 1) or return;
- catch_cdie { $o->SUPER::setupBootloader } sub {
- $o->ask_yesorno('',
-N("Error installing aboot,
-try to force installation even if that destroys the first partition?"));
- };
- } else {
+ {
any::setupBootloader_simple($o, $o->{bootloader}, $o->{all_hds}, $o->{fstab}, $o->{security}) or return;
- any::installBootloader($o, $o->{bootloader}, $o->{all_hds}) or die "already displayed";
}
}
sub check_security_level {
my ($o, $security) = @_;
- if ($security > 2 && find { $_->{fs_type} eq 'vfat' } @{$o->{fstab}}) {
+ if ($security > 3 && find { $_->{fs_type} eq 'vfat' } @{$o->{fstab}}) {
$o->ask_okcancel('', N("In this security level, access to the files in the Windows partition is restricted to the administrator.")) or return 0;
}
return 1;
@@ -1092,26 +1144,10 @@ Do you really want to quit now?"), 0);
$o->ask_from_no_check(
{
title => N("Congratulations"),
- icon => 'banner-exit',
messages => formatAlaTeX(messages::install_completed()),
interactive_help_id => 'exitInstall',
ok => $::local_install ? N("Quit") : N("Reboot"),
- },
- [
- if_(arch() !~ /^ppc/,
- { val => \ (my $_t1 = N("Generate auto install floppy")), clicked => sub {
- my $t = $o->ask_from_list_(N("Generate auto install floppy"),
-N("The auto install can be fully automated if wanted,
-in that case it will take over the hard drive!!
-(this is meant for installing on another box).
-
-You may prefer to replay the installation.
-"), [ N_("Replay"), N_("Automated") ]);
- $t and $o->generateAutoInstFloppy($t eq 'Replay');
- }, advanced => 1 }),
- { val => \ (my $_t2 = N("Save packages selection")), clicked => sub { install::any::g_default_packages($o) }, advanced => 1 },
- ]
- ) if $alldone;
+ }, []) if $alldone;
}
diff --git a/perl-install/install/steps_list.pm b/perl-install/install/steps_list.pm
index 67b544284..3dc3de2f2 100644
--- a/perl-install/install/steps_list.pm
+++ b/perl-install/install/steps_list.pm
@@ -8,48 +8,47 @@ use common;
#- Steps table
#-######################################################################################
{
- my @installStepsFields = qw(text redoable onError hidden needs banner_icon banner_title);
+ my @installStepsFields = qw(text redoable onError hidden needs banner_title);
#entered reachable toBeDone next done;
my @installSteps = (
selectLanguage => [
#-PO: please keep the following messages very short: they must fit in the left list of the installer!!!
- N_("_: Keep these entry short\nLanguage"), 1, 1, '', '', 'banner-languages', N_("Localization") ],
- acceptLicense => [ N_("_: Keep these entry short\nLicense"), 1, -1, '', '', 'banner-license', N_("License agreement") ],
- selectMouse => [ N_("_: Keep these entry short\nMouse"), 1, 1, '1', '', 'banner-sys', N_("Mouse") ],
+ N_("_: Keep these entry short\nLanguage"), 1, 1, '', '', N_("Localization") ],
+ acceptLicense => [ N_("_: Keep these entry short\nLicense"), 1, -1, '', '', N_("License agreement") ],
+ selectMouse => [ N_("_: Keep these entry short\nMouse"), 1, 1, '1', '', N_("Mouse") ],
setupSCSI => [ N_("_: Keep these entry short\nHard drive detection"), 1, 0, '1', '',
- 'banner-sys', N_("_: Keep these entry short\nHard drive detection") ],
+ N_("_: Keep these entry short\nHard drive detection") ],
selectInstallClass => [ N_("_: Keep these entry short\nInstallation class"), 1, 1, '1', '',
- 'banner-sys', N_("_: Keep these entry short\nInstallation class") ],
- selectKeyboard => [ N_("_: Keep these entry short\nKeyboard"), 1, 1, '1', '', 'banner-languages', N_("Localization") ],
- miscellaneous => [ N_("_: Keep these entry short\nSecurity"), 1, 1, '1', '', 'banner-security', N_("Security") ],
+ N_("_: Keep these entry short\nInstallation class") ],
+ selectKeyboard => [ N_("_: Keep these entry short\nKeyboard"), 1, 1, '1', '', N_("Localization") ],
+ miscellaneous => [ N_("_: Keep these entry short\nSecurity"), 1, 1, '1', '', N_("Security") ],
doPartitionDisks => [ N_("_: Keep these entry short\nPartitioning"), 1, 0, '', "selectInstallClass",
- 'banner-part', N_("Partitioning") ],
+ N_("Partitioning") ],
formatPartitions => [ N_("_: Keep these entry short\nFormatting"), 1, -1, '1', "doPartitionDisks",
- 'banner-part', N_("_: Keep these entry short\nFormatting") ],
+ N_("_: Keep these entry short\nFormatting") ],
choosePackages => [ N_("_: Keep these entry short\nChoosing packages"), 1, -2, '1', "formatPartitions",
- 'banner-sys', N_("Package Group Selection") ],
+ N_("Package Group Selection") ],
installPackages => [ N_("_: Keep these entry short\nInstalling"), 1, -1, '', ["formatPartitions", "selectInstallClass"],
- 'banner-sys', N_("Installing") ],
+ N_("Installing") ],
setRootPassword_addUser
=> [ N_("_: Keep these entry short\nUsers"), 1, 1, '', "installPackages",
- 'banner-pw', N_("User management") ],
+ N_("User management") ],
configureNetwork => [ N_("_: Keep these entry short\nNetworking"), 1, 1, '1', "formatPartitions",
- 'banner-bootL', N_("_: Keep these entry short\nNetworking") ],
- setupBootloader => [ N_("_: Keep these entry short\nBootloader"), 1, 0, '', "installPackages",
- 'banner-bootL', N_("_: Keep these entry short\nBootloader") ],
+ N_("_: Keep these entry short\nNetworking") ],
+ setupBootloader => [ N_("_: Keep these entry short\nBootloader"), 1, 0, '1', "installPackages",
+ N_("_: Keep these entry short\nBootloader") ],
configureX => [ N_("_: Keep these entry short\nConfigure X"), 1, 1, '1', ["formatPartitions", "setupBootloader"],
- 'banner-bootL', N_("_: Keep these entry short\nConfigure X") ],
+ N_("_: Keep these entry short\nConfigure X") ],
summary => [ N_("_: Keep these entry short\nSummary"), 1, 0, '', "installPackages",
- 'banner-summary', N_("Summary") ],
+ N_("Summary") ],
configureServices => [ N_("_: Keep these entry short\nServices"), 1, 1, '1', "installPackages",
- 'banner-summary', N_("_: Keep these entry short\nServices") ],
+ N_("_: Keep these entry short\nServices") ],
installUpdates => [ N_("_: Keep these entry short\nUpdates"), 1, 1, '',
- ["installPackages", "configureNetwork", "summary"], 'banner-update', N_("Updates") ],
- exitInstall => [ N_("_: Keep these entry short\nExit"), 0, 0, '', '', 'banner-exit', N_("Exit") ],
+ ["installPackages", "configureNetwork", "summary"], N_("Updates") ],
+ exitInstall => [ N_("_: Keep these entry short\nExit"), 0, 0, '', '', N_("Exit") ],
);
for (my $i = 0; $i < @installSteps; $i += 2) {
my %h; @h{@installStepsFields} = @{ $installSteps[$i + 1] };
- !$h{banner_icon} || $h{banner_icon} =~ /^banner/ or internal_error("bad banner_icon for step $installSteps[$i]");
$h{entered} = 0;
$h{onError} = $installSteps[$i + 2 * $h{onError}];
$h{reachable} = !$h{needs};
diff --git a/perl-install/install/steps_stdio.pm b/perl-install/install/steps_stdio.pm
index f6a759cae..1cf4b1197 100644
--- a/perl-install/install/steps_stdio.pm
+++ b/perl-install/install/steps_stdio.pm
@@ -1,4 +1,4 @@
-package install::steps_stdio; # $Id$
+package install::steps_stdio;
use diagnostics;
use strict;
diff --git a/perl-install/interactive.pm b/perl-install/interactive.pm
index 0fc9a4b55..49f47d05c 100644
--- a/perl-install/interactive.pm
+++ b/perl-install/interactive.pm
@@ -1,4 +1,4 @@
-package interactive; # $Id$
+package interactive;
use diagnostics;
use strict;
@@ -9,79 +9,73 @@ use strict;
use common;
use do_pkgs;
-#- minimal example using interactive:
-#
-#- > use lib qw(/usr/lib/libDrakX);
-#- > use interactive;
-#- > my $in = interactive->vnew;
-#- > $in->ask_okcancel('title', 'question');
-#- > $in->exit;
-
-#- ask_from_ takes global options ($common):
-#- title => window title
-#- messages => message displayed in the upper part of the window
-#- ok => force the name of the "Ok"/"Next" button
-#- cancel => force the name of the "Cancel"/"Previous" button
-#- focus_cancel => force focus on the "Cancel" button
-#- focus_first => (deprecated) force focus on the first entry
-#- ok_disabled => function returning wether {ok} should be disabled (grayed)
-#- validate => function called when {ok} is pressed. If it returns false, the first entry is focused, otherwise it quits
-#- advanced => (deprecated) function called when the "advanced" expander is toggled
-#- advanced_messages => (deprecated) message displayed when "Advanced" is pressed
-#- advanced_label => (deprecated) force the name of the "Advanced" button
-#- advanced_label_close => (deprecated) force the name of the "Basic" button
-#- advanced_state => (deprecated) if set to 1, force the "Advanced" part of the dialog to be opened initially
-#- callbacks => (deprecated) functions called when something happen: complete advanced ok_disabled
-
-#- ask_from_ takes a list of entries with fields:
-#- val => reference to the value
-#- label => description
-#- title => a boolean: whether the label should be displayed as a title (see GNOME's HIG)
-#- icon => icon to put before the description
-#- help => tooltip
-#- advanced => (deprecated) wether it is shown in by default or only in advanced mode
-#- focus_out => function called when the entry is focused out
-#- changed => function called when the entry is modified
-#- validate => function called when "Ok" is pressed. If it returns false, this entry is focused, otherwise it quits
-#- disabled => function returning wether it should be disabled (grayed)
-#- focus => function returning wether it should be focused
-#- gtk => gtk preferences
-#- type =>
-#- button => (with clicked or clicked_may_quit)
-#- (type defaults to button if clicked or clicked_may_quit is there)
-#- (val need not be a reference) (if clicked_may_quit return true, it's as if "Ok" was pressed)
-#- label => (val need not be a reference) (type defaults to label if val is not a reference)
-#- bool (with "text" or "image" (which overrides text) giving an image filename)
-#- range (with min, max, SpinButton)
-#- combo (with list, not_edit, format)
-#- list (with list, icon2f (aka icon), separator (aka tree), format (aka pre_format function),
-#- help can be a hash or a function,
-#- tree_expanded boolean telling wether the tree should be wide open by default
-#- quit_if_double_click boolean
-#- allow_empty_list disables the special cases for 0 and 1 element lists
-#- image2f is a subroutine which takes a value of the list as parameter, and returns image_file_name
-#- entry (the default) (with hidden)
-#- expander (with text, expanded, message, children(a list of sub entries))
-#
-#- heritate from this class and you'll get all made interactivity for same steps.
-#- for this you need to provide
-#- - ask_from_listW(o, title, messages, arrayref, default) returns one string of arrayref
-#-
-#- where
-#- - o is the object
-#- - title is a string
-#- - messages is an refarray of strings
-#- - default is an optional string (default is in arrayref)
-#- - arrayref is an arrayref of strings
-#- - arrayref2 contains booleans telling the default state,
-#-
-#- ask_from_list and ask_from_list_ are wrappers around ask_from_biglist and ask_from_smalllist
-#-
-#- ask_from_list_ just translate arrayref before calling ask_from_list and untranslate the result
-#-
-#- ask_from_listW should handle differently small lists and big ones.
-#-
+=head1 NAME
+interactive - a GUI layer with multiple backend (text console, Gtk+ GUI, web)
+
+=head1 SYNOPSYS
+
+B<interactive> enables to write GUIes that will work everywhere:
+
+=head1 Functions
+
+=over 4
+
+=item * text console
+
+implemented by L<interactive::stdio> & L<interactive::curses>
+
+=item * web browser
+
+implemented by L<interactive::http>
+
+=item * GUI
+
+implemented by L<interactive::gtk>
+
+=back
+
+Interactive inherits from L<do_pkgs> and thus $in->do_pkgs will return
+an usable C<do_pkgs> object suitable for installing packages.
+
+=head1 Minimal example using interactive
+
+ use lib qw(/usr/lib/libDrakX);
+ use interactive;
+ my $in = interactive->vnew;
+ $in->ask_okcancel('title', 'question');
+ $in->exit;
+
+=head1 Backends
+
+heritate from this class and you'll get all made interactivity for same steps.
+for this you need to provide
+
+C<ask_from_listW(o, title, messages, arrayref, default)> which returns one string of arrayref
+
+where:
+
+=over 4
+
+=item * B<o> is the object
+
+=item * B<title> is a string
+
+=item * B<messages> is an refarray of strings
+
+=item * B<default> is an optional string (default is in arrayref)
+
+=item * B<arrayref> is an arrayref of strings
+
+=item * B<arrayref>2 contains booleans telling the default state,
+
+=back
+
+=head1 Functions
+
+=over
+
+=cut
#-######################################################################################
#- OO Stuff
@@ -215,6 +209,7 @@ sub ask_okcancel {
sub ask_warn_ {
my ($o, $common) = @_;
+ local $o->{modal} = $o->{modal} || $::isInstall; # make these popup at install time
ask_from_listf_raw_no_check($o, $common, \&translate, [ $o->ok ]);
}
@@ -258,6 +253,18 @@ sub ask_fileW {
$o->ask_from_entry($common->{title}, $common->{message} || N("Choose a file"));
}
+=item ask_from_list($o, $title, $message, $l, $o_def)
+
+=item ask_from_list_($o, $title, $message, $l, $o_def)
+
+ask_from_list() and ask_from_list_() are wrappers around ask_from_biglist and ask_from_smalllist
+
+ask_from_list_() just translate arrayref before calling ask_from_list and untranslate the result
+
+ask_from_listW() should handle differently small lists and big ones.
+
+=cut
+
sub ask_from_list {
my ($o, $title, $message, $l, $o_def) = @_;
ask_from_listf($o, $title, $message, undef, $l, $o_def);
@@ -478,6 +485,9 @@ sub ask_from_normalize {
}
$common->{interactive_help} ||= $o->{interactive_help};
$common->{interactive_help} ||= $common->{interactive_help_id} && $o->interactive_help_sub_get_id($common->{interactive_help_id});
+ if (!$::isInstall) {
+ delete $common->{$_} foreach qw(interactive_help interactive_help_id);
+ }
$common->{advanced_label} ||= N("Advanced");
$common->{advanced_label_close} and log::l("advanced_label_close is not used anymore");
$common->{$_} = $common->{$_} ? [ map { $o->adapt_markup($_) } deref($common->{$_}) ] : []
@@ -506,6 +516,128 @@ sub migrate_advanced {
}) ];
}
+
+=item ask_from_($o, $common, $l)
+
+ask_from_() takes global options ($common):
+
+=over 4
+
+=item * B<title>: window title
+
+=item * B<messages>: message displayed in the upper part of the window
+
+=item * B<ok>: force the name of the "Ok"/"Next" button
+
+=item * B<cancel>: force the name of the "Cancel"/"Previous" button
+
+=item * B<focus_cancel>: force focus on the "Cancel" button
+
+=item * I<focus_first>: (deprecated) force focus on the first entry
+
+=item * B<ok_disabled>: function returning whether {ok} should be disabled (grayed)
+
+=item * B<validate>: function called when {ok} is pressed. If it returns false, the first entry is focused, otherwise it quits
+
+=item * I<advanced>: (deprecated) function called when the "advanced" expander is toggled
+
+=item * I<advanced_messages>: (deprecated) message displayed when "Advanced" is pressed
+
+=item * I<advanced_label>: (deprecated) force the name of the "Advanced" button
+
+=item * I<advanced_label_close>: (deprecated) force the name of the "Basic" button
+
+=item * I<advanced_state>: (deprecated) if set to 1, force the "Advanced" part of the dialog to be opened initially
+
+=item * I<advanced_title>: title of the advanced item popup dialog (else reusing main title)
+
+=item * I<callbacks>: (deprecated) functions called when something happen: complete advanced ok_disabled
+
+=back
+
+ask_from_ takes a list of entries with fields:
+
+=over 4
+
+=item * B<val>: reference to the value
+
+=item * B<label>: description
+
+=item * B<title>: a boolean: whether the label should be displayed as a title (see GNOME's HIG)
+
+=item * B<icon>: icon to put before the description
+
+=item * B<help>: tooltip
+
+=item * I<advanced>: (deprecated) whether it is shown in by default or only in advanced mode
+
+=item * B<focus_out>: function called when the entry is focused out
+
+=item * B<changed>: function called when the entry is modified
+
+=item * B<validate>: function called when "Ok" is pressed. If it returns false, this entry is focused, otherwise it quits
+
+=item * B<disabled>: function returning whether it should be disabled (grayed)
+
+=item * B<focus>: function returning whether it should be focused
+
+=item * B<alignment>: preferred alignment
+
+=item * B<do_not_expand>: do not eat all horizontal space
+
+=item * B<install_button>: if possible, use improved graphical style
+
+=item * B<gtk>: gtk preferences
+
+=item * B<type>:
+
+=over 4
+
+=item * B<button>: (with clicked or clicked_may_quit)
+
+I<type> defaults to button if clicked or clicked_may_quit is there.
+I<val> need not be a reference.
+If I<clicked_may_quit> return true, it's as if "Ok" was pressed.
+
+=item * B<label>:
+I<val> need not be a reference.
+I<type> defaults to label if val is not a reference.
+
+=item * B<bool>: (with "text" or "image" (which overrides text) giving an image filename)
+
+=item * B<range>: (with min, max, SpinButton)
+
+=item * B<combo>: (with list, not_edit, format)
+
+=item * B<list>: (with list, icon2f (aka icon), separator (aka tree), format (aka pre_format function),
+
+It has these optional parameters:
+
+=over 4
+
+=item * B<help>: can be a hash or a function,
+
+=item * B<tree_expanded>: boolean telling whether the tree should be wide open by default
+
+=item * B<quit_if_double_click>: boolean
+
+=item * B<allow_empty_list>: disables the special cases for 0 and 1 element lists
+
+=item * B<image2f>: a subroutine which takes a value of the list as parameter, and returns image_file_name
+
+=back
+
+=item * B<entry>: (the default) (with hidden)
+
+=item * B<expander>: (with text, expanded, message, children(a list of sub entries))
+
+=back
+
+=back
+
+=cut
+
+
sub ask_from_ {
my ($o, $common, $l) = @_;
ask_from_normalize($o, $common, $l);
@@ -576,8 +708,10 @@ sub ask_browse_tree_info_refW { #- default definition, do not use with too many
sub wait_message {
my ($o, $title, $message, $b_temp) = @_;
+ my $inline_title = $::isInstall ? $title : '';
+ $inline_title ||= N("Please wait");
- my $w = $o->wait_messageW($title, N("Please wait"), $message);
+ my $w = $o->wait_messageW($title, $inline_title, $message);
push @tempory::objects, $w if $b_temp;
my $b = before_leaving { $o->wait_message_endW($w) };
@@ -634,7 +768,7 @@ sub helper_separator_tree_to_tree {
sub interactive_help_sub_get_id {
my ($o, $id) = @_;
- eval { $o->interactive_help_has_id($id) }
+ eval { $o->is_help_file_exist($id) }
&& sub { $o->interactive_help_get_id($id) };
}
@@ -644,4 +778,8 @@ sub interactive_help_sub_display_id {
&& sub { $o->ask_warn(N("Help"), $o->interactive_help_get_id($id)) };
}
+=back
+
+=cut
+
1;
diff --git a/perl-install/interactive/curses.pm b/perl-install/interactive/curses.pm
index b8da3c29a..64bdee5c7 100644
--- a/perl-install/interactive/curses.pm
+++ b/perl-install/interactive/curses.pm
@@ -3,7 +3,7 @@
# to debug, use something like
# PERLDB_OPTS=TTY=`tty` LC_ALL=fr_FR.UTF-8 xterm -geometry 80x25 -e sh -c 'DISPLAY= perl -d t.pl'
-package interactive::curses; # $Id$
+package interactive::curses;
use diagnostics;
use strict;
@@ -32,13 +32,20 @@ sub new {
open STDERR, ">", common::secured_file($stderr_file);
$cui ||= Curses::UI->new('-color_support' => 1);
+
+ # Set some default terminal size, for serial install
+ unless ($cui->{'-width'}) {
+ $cui->{'-width'} = $cui->{'-w'} = $cui->{'-bw'} = 80;
+ $cui->{'-height'} = $cui->{'-h'} = $cui->{'-bh'} = 25;
+ }
+
bless { cui => $cui }, $class;
}
sub enter_console { &suspend }
sub leave_console { &end }
-sub suspend { Curses::UI->leave_curses }
-sub resume { Curses::UI->reset_curses }
+sub suspend { $cui && $cui->leave_curses }
+sub resume { $cui->reset_curses }
sub end { &suspend; print $SAVEERR $_ foreach cat_($stderr_file); unlink $stderr_file }
sub exit { end(); CORE::exit($_[1] || 0) }
END { end() }
@@ -80,7 +87,7 @@ sub filter_widget {
#- combo does not allow modifications
$e->{type} = 'entry' if $e->{type} eq 'combo' && !$e->{not_edit};
- $e->{formatted_list} = [ map { may_apply($e->{format}, $_) } @{$e->{list}} ];
+ $e->{formatted_list} = [ map { my $t = warp_text(may_apply($e->{format}, $_), 80); $t } @{$e->{list}} ];
$e->{default_curses} ||= delete $e->{curses};
}
@@ -163,14 +170,14 @@ sub compute_size {
$e->{curses}{'-height'} ||= heights(map { $_ + 2 } int(@{$e->{formatted_list}}), 10, 4);
$e->{curses}{'-width'} ||= max(map { length } @{$e->{formatted_list}}) + 7;
} elsif ($e->{type} =~ /list/) {
- $e->{curses}{'-height'} ||= heights(map { $_ + 2 } int(@{$e->{formatted_list}}), 5, 4);
- $e->{curses}{'-width'} ||= max(map { length } @{$e->{formatted_list}}) + 3;
+ $e->{curses}{'-height'} ||= heights(map { $_ + 2 } int(map { split("\n", $_) } @{$e->{formatted_list}}), 5, 4);
+ $e->{curses}{'-width'} ||= max(map { length } map { split("\n", $_) } @{$e->{formatted_list}}) + 3;
} elsif ($e->{type} eq 'button') {
my $s = sprintf('< %s >', may_apply($e->{format}, ${$e->{val}}));
$e->{curses}{'-width'} ||= length($s);
} elsif ($e->{type} eq 'expander') {
$e->{curses}{'-width'} ||= length("<+> $e->{text}");
- } elsif ($e->{type} eq 'text' || $e->{type} eq 'label' || $e->{type} eq 'only_label') {
+ } elsif (member($e->{type}, qw(text label only_label))) {
my @text = _messages(min(80, $width_avail - 1), ${$e->{val}}); #- -1 because of the scrollbar
$e->{curses}{'-focusable'} = 0;
$e->{curses}{'-height'} ||= heights(int(@text), 10, 4);
@@ -345,7 +352,7 @@ sub create_widget {
$w->set_binding('focus-up', Curses::KEY_LEFT());
$w->set_binding('focus-down', Curses::KEY_RIGHT());
$set = sub { $w->set_label(0, sprintf('< %s >', may_apply($e->{format}, $_[0]))) };
- } elsif ($e->{type} eq 'list' || $e->{type} eq 'combo') {
+ } elsif (member($e->{type}, qw(list combo))) {
$w = $win->add(undef, $e->{type} eq 'combo' ? 'Popupmenu' : 'Listbox',
'-values' => $e->{formatted_list},
'-onchange' => $onchange->(sub { $e->{list}[$w->id] }),
@@ -398,13 +405,26 @@ sub create_widget {
} elsif ($e->{type} eq 'label' && $e->{curses}{'-height'} == 1) {
$w = $win->add(undef, 'Label', %options);
$set = sub { $w->text($_[0] || '') };
- } elsif ($e->{type} eq 'label' || $e->{type} eq 'only_label' || $e->{type} eq 'text') {
+ } elsif (member($e->{type}, qw(label only_label text))) {
$w = $win->add(undef, 'TextViewer', %options);
$set = sub {
my ($text) = @_;
my $width = $w->{'-sw'} - ($w->{'-vscrollbar'} ? 1 : 0);
$w->text(join("\n", _messages($width, $text)));
};
+ } elsif ($e->{type} eq 'range') {
+ $w = $win->add(undef, 'TextEntry',
+ '-sbborder' => 1,
+ '-text' => '',
+ '-regexp' => '/^\d*$/',
+ '-onchange' => sub {
+ $w->text($e->{min}) if $w->text < $e->{min};
+ $w->text($e->{max}) if $w->text > $e->{max};
+ ${$e->{val}} = $w->text;
+ $changed->() if $changed;
+ },
+ %options);
+ $set = sub { $w->text($_[0] || '') };
} else {
$w = $win->add(undef, $e->{hidden} ? 'PasswordEntry' : 'TextEntry',
'-sbborder' => 1,
@@ -539,6 +559,30 @@ sub ask_fromW_ {
$v eq '0 but true' ? 0 : $v;
}
+sub ask_fileW {
+ my ($o, $opts) = @_;
+ my ($file, $dir);
+
+ $dir = $opts->{directory} || $opts->{file} && dirname($opts->{file});
+
+ if ($opts->{save}) {
+ $file = $o->{cui}->savefilebrowser('-title' => $opts->{title}, '-path' => $dir, '-file' => basename($file));
+ } else {
+ $file = $o->{cui}->loadfilebrowser('-title' => $opts->{title}, '-path' => $dir, '-file' => basename($file));
+ }
+
+ my $err;
+ if (!$file) {
+ $err = N("No file chosen");
+ } elsif (-f $file && $opts->{want_a_dir}) {
+ $file = dirname($file);
+ } elsif (-d $file && !$opts->{want_a_dir}) {
+ $err = N("You have chosen a directory, not a file");
+ } elsif (!-e $file && !$opts->{save}) {
+ $err = $opts->{want_a_dir} ? N("No such directory") : N("No such file");
+ }
+ $err and $o->ask_warn('', $err) or $file;
+}
sub wait_messageW {
my ($o, $title, $message, $message_modifiable) = @_;
diff --git a/perl-install/interactive/gtk.pm b/perl-install/interactive/gtk.pm
index 2315556fd..c37143fc3 100644
--- a/perl-install/interactive/gtk.pm
+++ b/perl-install/interactive/gtk.pm
@@ -1,4 +1,4 @@
-package interactive::gtk; # $Id$
+package interactive::gtk;
use diagnostics;
use strict;
@@ -8,35 +8,34 @@ use vars qw(@ISA);
use interactive;
use common;
-use mygtk2;
-use ugtk2 qw(:helpers :wrappers :create);
-use Gtk2::Gdk::Keysyms;
+use mygtk3;
+use ugtk3 qw(:helpers :wrappers :create);
my $forgetTime = 1000; #- in milli-seconds
sub new {
my $w = &interactive::new;
- ($w->{windowwidth}, $w->{windowheight}) = gtkroot()->get_size if !$::isInstall;
+ ($w->{windowwidth}, $w->{windowheight}) = mygtk3::root_window_size() if !$::isInstall;
$w;
}
sub enter_console { my ($o) = @_; $o->{suspended} = common::setVirtual(1) }
sub leave_console { my ($o) = @_; common::setVirtual(delete $o->{suspended}) }
sub adapt_markup {
- #- nothing needed, the default markup is gtk2's
+ #- nothing needed, the default markup is gtk3's
my ($_o, $s) = @_; return $s;
}
-sub exit { ugtk2::exit(@_) }
+sub exit { ugtk3::exit(@_) }
sub ask_fileW {
my ($in, $common) = @_;
- my $w = ugtk2::create_file_selector(%$common);
+ my $w = ugtk3::create_file_selector(%$common);
my $file;
$w->main(sub {
$file = $w->{chooser}->get_filename;
- my $err = ugtk2::file_selected_check($common->{save}, $common->{want_a_dir}, $file);
+ my $err = ugtk3::file_selected_check($common->{save}, $common->{want_a_dir}, $file);
$err and $in->ask_warn('', $err);
!$err;
}) && $file;
@@ -45,11 +44,12 @@ sub ask_fileW {
sub create_boxradio {
my ($e, $onchange_f, $double_click) = @_;
- my $boxradio = gtkpack2__(Gtk2::VBox->new(0, 0),
+ my $boxradio = gtkpack2__(Gtk3::VBox->new,
my @radios = gtkradio('', @{$e->{formatted_list}}));
- my $tips = Gtk2::Tooltips->new;
mapn {
my ($txt, $w) = @_;
+ # workaround infamous 6 years old gnome bug #101968:
+ $w->get_child->set_size_request(mygtk3::get_label_width(), -1) if $e->{alignment} ne 'right' && !$e->{label};
$w->signal_connect(button_press_event => $double_click) if $double_click;
$w->signal_connect(key_press_event => $e->{may_go_to_next});
@@ -58,7 +58,7 @@ sub create_boxradio {
$onchange_f->(sub { $txt });
});
if ($e->{help}) {
- gtkset_tip($tips, $w,
+ $w->set_tooltip_text(
ref($e->{help}) eq 'HASH' ? $e->{help}{$txt} :
ref($e->{help}) eq 'CODE' ? $e->{help}($txt) : $e->{help});
}
@@ -77,16 +77,17 @@ sub create_treeview_list {
my ($e, $onchange_f, $double_click) = @_;
my $curr;
- my $list = Gtk2::ListStore->new("Glib::String");
- my $list_tv = Gtk2::TreeView->new_with_model($list);
+ my $list = Gtk3::ListStore->new("Glib::String");
+ my $list_tv = Gtk3::TreeView->new_with_model($list);
$list_tv->set_headers_visible(0);
$list_tv->get_selection->set_mode('browse');
- my $textcolumn = Gtk2::TreeViewColumn->new_with_attributes(undef, my $renderer = Gtk2::CellRendererText->new, 'text' => 0);
+ my $textcolumn = Gtk3::TreeViewColumn->new_with_attributes("", my $renderer = Gtk3::CellRendererText->new, 'text' => 0);
$list_tv->append_column($textcolumn);
$renderer->set_property('ellipsize', 'end');
my $select = sub {
my ($path) = @_;
+ return if !$list_tv->get_model;
$list_tv->set_cursor($path, undef, 0);
Glib::Timeout->add(100, sub { $list_tv->scroll_to_cell($path, undef, 1, 0.5, 0); 0 });
};
@@ -101,8 +102,8 @@ sub create_treeview_list {
Glib::Source->remove($timeout) if $timeout; $timeout = '';
if ($event->keyval >= 0x100) {
- $e->{may_go_to_next}(), return 1 if member($event->keyval, ($Gtk2::Gdk::Keysyms{Return}, $Gtk2::Gdk::Keysyms{KP_Enter}));
- $starting_word = '' if !member($event->keyval, ($Gtk2::Gdk::Keysyms{Control_L}, $Gtk2::Gdk::Keysyms{Control_R}));
+ $e->{may_go_to_next}(), return 1 if member($event->keyval, (Gtk3::Gdk::KEY_Return, Gtk3::Gdk::KEY_KP_Enter));
+ $starting_word = '' if !member($event->keyval, (Gtk3::Gdk::KEY_Control_L, Gtk3::Gdk::KEY_Control_R));
} else {
if (member('control-mask', @{$event->state})) {
$c eq 's' or return 1;
@@ -111,7 +112,7 @@ sub create_treeview_list {
} else {
$e->{may_go_to_next}(), return 1 if $c eq ' ';
- $curr++ if $starting_word eq '' || $starting_word eq $c;
+ $curr++ if member($starting_word, '', $c);
$starting_word .= $c unless $starting_word eq $c;
}
my @l = @{$e->{formatted_list}};
@@ -122,7 +123,7 @@ sub create_treeview_list {
if ($j == @l) {
$starting_word = '';
} else {
- $select->(Gtk2::TreePath->new_from_string(($j + $curr) % @l));
+ $select->(Gtk3::TreePath->new_from_string(($j + $curr) % @l));
}
$timeout = Glib::Timeout->add($forgetTime, sub { $timeout = $starting_word = ''; 0 });
@@ -149,7 +150,7 @@ sub create_treeview_list {
my $nb = find_index { $_ eq $v } @{$e->{list}};
my ($old_path) = $list_tv->get_cursor;
if (!$old_path || $nb != $old_path->to_string) {
- $select->(Gtk2::TreePath->new_from_string($nb));
+ $select->(Gtk3::TreePath->new_from_string($nb));
}
undef $old_path if $old_path;
};
@@ -160,7 +161,7 @@ sub __create_tree_model {
my ($e) = @_;
my $sep = quotemeta $e->{separator};
- my $tree_model = Gtk2::TreeStore->new("Glib::String", if_($e->{image2f}, "Gtk2::Gdk::Pixbuf"));
+ my $tree_model = Gtk3::TreeStore->new("Glib::String", if_($e->{image2f}, "Gtk3::Gdk::Pixbuf"));
my $build_value = sub {
my ($v) = @_;
@@ -201,14 +202,14 @@ sub create_treeview_tree {
my ($e, $onchange_f, $double_click) = @_;
my $tree_model = __create_tree_model($e);
- my $tree = Gtk2::TreeView->new_with_model($tree_model);
+ my $tree = Gtk3::TreeView->new_with_model($tree_model);
$tree->get_selection->set_mode('browse');
{
- my $col = Gtk2::TreeViewColumn->new;
- $col->pack_start(my $texrender = Gtk2::CellRendererText->new, 0);
+ my $col = Gtk3::TreeViewColumn->new;
+ $col->pack_start(my $texrender = Gtk3::CellRendererText->new, 0);
$col->add_attribute($texrender, text => 0);
if ($e->{image2f}) {
- $col->pack_start(my $pixrender = Gtk2::CellRendererPixbuf->new, 0);
+ $col->pack_start(my $pixrender = Gtk3::CellRendererPixbuf->new, 0);
$col->add_attribute($pixrender, pixbuf => 1);
}
$tree->append_column($col);
@@ -217,10 +218,10 @@ sub create_treeview_tree {
my $select = sub {
my ($path_str) = @_;
- my $path = Gtk2::TreePath->new_from_string($path_str);
+ my $path = Gtk3::TreePath->new_from_string($path_str);
$tree->expand_to_path($path);
$tree->set_cursor($path, undef, 0);
- gtkflush(); #- workaround gtk2 bug not honouring centering on the given row if node was closed
+ gtkflush(); #- workaround gtk3 bug not honouring centering on the given row if node was closed
$tree->scroll_to_cell($path, undef, 1, 0.5, 0);
};
@@ -265,8 +266,8 @@ sub create_treeview_tree {
Glib::Source->remove($timeout) if $timeout; $timeout = '';
if ($event->keyval >= 0x100) {
- &$toggle and return 1 if member($event->keyval, ($Gtk2::Gdk::Keysyms{Return}, $Gtk2::Gdk::Keysyms{KP_Enter}));
- $starting_word = '' if !member($event->keyval, ($Gtk2::Gdk::Keysyms{Control_L}, $Gtk2::Gdk::Keysyms{Control_R}));
+ &$toggle and return 1 if member($event->keyval, (Gtk3::Gdk::KEY_Return, Gtk3::Gdk::KEY_KP_Enter));
+ $starting_word = '' if !member($event->keyval, (Gtk3::Gdk::KEY_Control_L, Gtk3::Gdk::KEY_Control_R));
} else {
my $next;
if (member('control-mask', @{$event->state})) {
@@ -275,7 +276,7 @@ sub create_treeview_tree {
$next = 1;
} else {
&$toggle and return 1 if $c eq ' ';
- $next = 1 if $starting_word eq '' || $starting_word eq $c;
+ $next = 1 if member($starting_word, '', $c);
$starting_word .= $c unless $starting_word eq $c;
}
my $word = quotemeta $starting_word;
@@ -329,7 +330,7 @@ sub create_treeview_tree {
}
#- $actions is a ref list of $action
-#- $action is a { kind => $kind, action => sub { ... }, button => Gtk2::Button->new(...) }
+#- $action is a { kind => $kind, action => sub { ... }, button => Gtk3::Button->new(...) }
#- where $kind is one of '', 'modify', 'remove', 'add'
sub add_modify_remove_action {
my ($button, $buttons, $e, $treelist) = @_;
@@ -345,14 +346,22 @@ sub add_modify_remove_action {
} elsif ($button->{kind} eq 'remove') {
${$e->{val}} = $e->{list}[0];
}
- ugtk2::gtk_set_treelist($treelist, [ map { may_apply($e->{format}, $_) } @{$e->{list}} ]);
+ ugtk3::gtk_set_treelist($treelist, [ map { may_apply($e->{format}, $_) } @{$e->{list}} ]);
add_modify_remove_sensitive($buttons, $e);
1;
}
+sub add_padding {
+ my ($w) = @_;
+ gtknew('HBox', children => [
+ 0, gtknew('Alignment', width => $mygtk3::left_padding),
+ 1, $w
+ ]);
+}
+
sub create_widget {
- my ($o, $e, $onchange_f, $update, $ignore_ref) = @_;
+ my ($o, $common, $e, $onchange_f, $update, $ignore_ref) = @_;
my $onchange = sub {
my ($f) = @_;
@@ -361,45 +370,65 @@ sub create_widget {
my ($w, $real_w, $focus_w, $set);
if ($e->{type} eq 'iconlist') {
- $w = Gtk2::Button->new;
+ $w = Gtk3::Button->new;
$set = sub {
gtkdestroy($e->{icon});
my $f = $e->{icon2f}->($_[0]);
$e->{icon} = -e $f ?
gtkcreate_img($f) :
- Gtk2::WrappedLabel->new(may_apply($e->{format}, $_[0]));
+ Gtk3::WrappedLabel->new(may_apply($e->{format}, $_[0]));
$w->add(gtkshow($e->{icon}));
};
$w->signal_connect(clicked => sub {
$onchange_f->(sub { next_val_in_array(${$e->{val}}, $e->{list}) });
$set->(${$e->{val}});
});
- $real_w = gtkpack_(Gtk2::HBox->new(0,10), 1, Gtk2::HBox->new(0,0), 0, $w, 1, Gtk2::HBox->new(0,0));
+ if ($e->{alignment} eq 'right') {
+ $real_w = gtknew('HButtonBox', layout => 'start', children_tight => [ $w ]);
+ } else {
+ $real_w = gtkpack_(Gtk3::HBox->new(0,10), 1, Gtk3::HBox->new(0,0), 0, $w, 1, Gtk3::HBox->new(0,0));
+ }
} elsif ($e->{type} eq 'bool') {
if ($e->{image}) {
- $w = ugtk2::gtkadd(Gtk2::CheckButton->new, gtkshow(gtkcreate_img($e->{image})));
+ $w = ugtk3::gtkadd(Gtk3::CheckButton->new, gtkshow(gtkcreate_img($e->{image})));
} else {
#- warn "\"text\" member should have been used instead of \"label\" one at:\n", common::backtrace(), "\n" if $e->{label} && !$e->{text};
- $w = Gtk2::CheckButton->new_with_label($e->{text});
+ $w = Gtk3::CheckButton->new_with_label($e->{text} || '');
}
$w->signal_connect(clicked => $onchange->(sub { $w->get_active }));
- $set = sub { $w->set_active($_[0]) };
+ ${$e->{val}} ||= 0;
+ $set = sub { $w->set_active($_[0] || 0) };
+ $real_w = add_padding($w);
} elsif ($e->{type} eq 'only_label') {
+ my @common = (
+ # workaround infamous 6 years old gnome bug #101968:
+ if_($e->{alignment} ne 'right', width => mygtk3::get_label_width())
+ );
$w = $e->{title} ?
- gtknew('Title2', label => escape_text_for_TextView_markup_format(${$e->{val}})) :
- gtknew('Label_Left', line_wrap => 1, text_markup => ${$e->{val}});
+ gtknew('Title2', label => escape_text_for_TextView_markup_format(${$e->{val}}), @common) :
+ gtknew($e->{alignment} eq 'right' ? 'Label_Right' : 'Label_Left',
+ line_wrap => 1, text_markup => ${$e->{val}}, @common);
} elsif ($e->{type} eq 'label') {
$w = gtknew('WrappedLabel', text_markup => ${$e->{val}});
$set = sub { $w->set($_[0]) };
} elsif ($e->{type} eq 'empty') {
$w = gtknew('HBox', height => $e->{height});
} elsif ($e->{type} eq 'button') {
- $w = Gtk2::Button->new_with_label('');
- $w->signal_connect(clicked => $e->{clicked_may_quit_cooked});
- $set = sub { $w->child->set_label(may_apply($e->{format}, $_[0])) };
+ $w = gtknew(($e->{install_button} ? 'Install_Button' : 'Button'),
+ text => '', clicked => $e->{clicked_may_quit_cooked});
+ $set = sub {
+ my $w = $w->get_child;
+ # handle Install_Buttons:
+ if (ref($w) =~ /Gtk3::HBox/) {
+ ($w) = find { ref($_) =~ /Gtk3::Label/ } $w->get_children;
+ }
+ # guard against 'advanced' widgets that are now in their own dialog
+ # (instead of in another block child of an expander):
+ return if !$w;
+ $w->set_label(may_apply($e->{format}, $_[0])) };
} elsif ($e->{type} eq 'range') {
- my $adj = Gtk2::Adjustment->new(${$e->{val}}, $e->{min}, $e->{max} + ($e->{SpinButton} ? 0 : 1), 1, ($e->{max} - $e->{min}) / 10, 1);
- $w = $e->{SpinButton} ? Gtk2::SpinButton->new($adj, 10, 0) : Gtk2::HScale->new($adj);
+ my $adj = Gtk3::Adjustment->new(${$e->{val}}, $e->{min}, $e->{max} + ($e->{SpinButton} ? 0 : 1), 1, ($e->{max} - $e->{min}) / 10, 1);
+ $w = $e->{SpinButton} ? Gtk3::SpinButton->new($adj, 10, 0) : Gtk3::HScale->new($adj);
$w->set_size_request($e->{SpinButton} ? 100 : 200, -1);
$w->set_digits(0);
$adj->signal_connect(value_changed => $onchange->(sub { $adj->get_value }));
@@ -408,16 +437,32 @@ sub create_widget {
} elsif ($e->{type} eq 'expander') {
$e->{grow} = 'fill';
my $children = [ if_($e->{message}, { type => 'only_label', no_indent => 1, val => \$e->{message} }), @{$e->{children}} ];
- my $box = create_widgets_block($o, $children, $update, $ignore_ref);
- $w = gtknew('Expander', text => $e->{text}, child => $box);
+ create_widgets_block($o, $common, $children, $update, $ignore_ref);
+ $w = gtknew('HBox', children_tight => [
+ gtknew('Install_Button', text => $e->{text},
+ clicked => sub {
+ eval { ask_fromW($o, { title => $common->{advanced_title} || $common->{title} || N("Advanced") }, $children) };
+ if (my $err = $@) {
+ die $err if $err !~ /^wizcancel/;
+ }
+ }
+ )
+ ]);
} elsif ($e->{type} =~ /list/) {
$e->{formatted_list} = [ map { may_apply($e->{format}, $_) } @{$e->{list}} ];
if (my $actions = $e->{add_modify_remove}) {
- my @buttons = map {
- { kind => lc $_, action => $actions->{$_}, button => Gtk2::Button->new(translate($_)) };
- } N_("Add"), N_("Modify"), N_("Remove");
+ my @buttons = (N_("Add"), N_("Modify"), N_("Remove"));
+ # Add Up/Down buttons if their actions are defined
+ push @buttons, map { if_($actions->{$_}, 'gtk-go-' . $_) } qw(Up Down);
+ @buttons = map {
+ my $button = /^gtk-/ ? gtknew('Button', image => gtknew('Image', stock => lc($_)))
+ : Gtk3::Button->new(translate($_));
+ my $kind = $_;
+ $kind =~ s/^gtk-go-//;
+ { kind => lc $kind, action => $actions->{$kind}, button => $button, real_kind => $_ };
+ } @buttons;
my $modify = find { $_->{kind} eq 'modify' } @buttons;
my $do_action = sub {
@@ -433,9 +478,19 @@ sub create_widget {
}
add_modify_remove_sensitive(\@buttons, $e);
- $real_w = gtkpack_(Gtk2::HBox->new(0,0),
+ my ($images, $real_buttons) = partition { $_->{real_kind} =~ /^gtk-/ } @buttons;
+ $real_w = gtkpack_(Gtk3::HBox->new(0,0),
1, create_scrolled_window($w),
- 0, gtkpack__(Gtk2::VBox->new(0,0), map { $_->{button} } @buttons));
+ 0, gtkpack__(Gtk3::VBox->new(0,0),
+ (map { $_->{button} } @$real_buttons),
+ if_($images,
+ gtknew('HButtonBox',
+ layout => 'spread',
+ children_loose => [ map { $_->{button} } @$images ]
+ )
+ ),
+ ),
+ );
$e->{grow} = 'expand';
} else {
my $use_boxradio = exists $e->{gtk}{use_boxradio} ? $e->{gtk}{use_boxradio} : @{$e->{list}} <= 8;
@@ -443,6 +498,7 @@ sub create_widget {
if ($e->{help} || $use_boxradio && $e->{type} ne 'treelist') {
#- used only when needed, as key bindings are dropped by List (ListStore does not seems to accepts Tooltips).
($w, $set, $focus_w) = create_boxradio($e, $onchange_f, $e->{quit_if_double_click_cooked});
+ $real_w = add_padding($w);
} elsif ($e->{type} eq 'treelist') {
($w, $set) = create_treeview_tree($e, $onchange_f, $e->{quit_if_double_click_cooked});
} else {
@@ -460,37 +516,33 @@ sub create_widget {
my @formatted_list = map { may_apply($e->{format}, $_) } @{$e->{list}};
$e->{formatted_list} = \@formatted_list;
- my @l = sort { $b <=> $a } map { length } @formatted_list;
- my $width = $l[@l / 16]; # take the third octile (think quartile)
-
if (!$e->{separator}) {
- if ($e->{not_edit} && $width < 160) { #- ComboBoxes do not have an horizontal scroll-bar. This can cause havoc for long strings (eg: diskdrake Create dialog box in expert mode)
- $w = Gtk2::ComboBox->new_text;
+ if ($e->{not_edit}) {
+ $real_w = $w = Gtk3::ComboBoxText->new;
+ # FIXME: the following causes Gtk-CRITICAL but not solvable at realize time:
+ first($w->get_child->get_cells)->set_property('ellipsize', 'end') if !$e->{do_not_ellipsize};
$w->set_wrap_width($e->{gtk}{wrap_width}) if exists $e->{gtk}{wrap_width};
} else {
- $w = Gtk2::Combo->new;
- $w->set_use_arrows_always(1);
- $w->entry->set_editable(!$e->{not_edit});
- $w->disable_activate;
+ $w = Gtk3::ComboBoxText->new_with_entry;
+ ($real_w, $w) = ($w, $w->get_child);
}
- $w->set_popdown_strings(@formatted_list);
- $w->set_text(ref($e->{val}) ? may_apply($e->{format}, ${$e->{val}}) : $formatted_list[0]) if $w->isa('Gtk2::ComboBox');
+ $real_w->set_popdown_strings(@formatted_list);
} else {
$model = __create_tree_model($e);
- $w = Gtk2::ComboBox->new_with_model($model);
+ $real_w = $w = Gtk3::ComboBox->new_with_model($model);
- $w->pack_start(my $texrender = Gtk2::CellRendererText->new, 0);
+ $w->pack_start(my $texrender = Gtk3::CellRendererText->new, 0);
$w->add_attribute($texrender, text => 0);
if ($e->{image2f}) {
- $w->pack_start(my $pixrender = Gtk2::CellRendererPixbuf->new, 0);
+ $w->pack_start(my $pixrender = Gtk3::CellRendererPixbuf->new, 0);
$w->add_attribute($pixrender, pixbuf => 1);
}
}
- ($real_w, $w) = ($w, $w->entry);
my $get = sub {
my $i = $model ? do {
- my $s = $model->get_string_from_iter($w->get_active_iter);
+ my (undef, $iter) = $w->get_active_iter;
+ my $s = $model->get_string_from_iter($iter);
eval { find_index { $s eq $_ } @{$model->{path_str_list}} };
} : do {
my $s = $w->get_text;
@@ -498,16 +550,7 @@ sub create_widget {
};
defined $i ? $e->{list}[$i] : $w->get_text;
};
- if ($real_w->isa('Gtk2::Combo')) {
- #- FIXME workaround gtk suckiness (set_text generates two 'change' signals, one when removing the whole, one for inserting the replacement..)
- my $idle;
- $w->signal_connect(changed => sub {
- return if $$ignore_ref;
- $idle ||= Glib::Idle->add(sub { undef $idle; $onchange_f->($get); 0 });
- });
- } else {
- $w->signal_connect(changed => $onchange->($get));
- }
+ $w->signal_connect(changed => $onchange->($get));
$set = sub {
my $s = may_apply($e->{format}, $_[0]);
@@ -518,24 +561,29 @@ sub create_widget {
$w->set_active_iter($model->get_iter_from_string($path_str));
};
} else {
- $w->set_text($s) if $s ne $w->get_text && $_[0] ne $w->get_text;
+ $w->set_text($s) if !member($w->get_text, $s, $_[0]);
}
};
} else {
- $w = Gtk2::Entry->new;
+ if ($e->{weakness_check}) {
+ $w = gtknew('WeaknessCheckEntry');
+ }
+ else {
+ $w = Gtk3::Entry->new;
+ }
$w->signal_connect(changed => $onchange->(sub { $w->get_text }));
$w->signal_connect(focus_in_event => sub { $w->select_region(0, -1) });
$w->signal_connect(focus_out_event => sub { $w->select_region(0, 0) });
$set = sub { $w->set_text($_[0]) if $_[0] ne $w->get_text };
if ($e->{type} eq 'file') {
- my $button = gtksignal_connect(Gtk2::Button->new_from_stock('gtk-open'), clicked => sub {
+ my $button = gtksignal_connect(Gtk3::Button->new_from_stock('gtk-open'), clicked => sub {
my $file = $o->ask_fileW({
title => $e->{label},
want_a_dir => to_bool($e->{want_a_dir}),
});
$set->($file) if $file;
});
- $real_w = gtkpack_(Gtk2::HBox->new(0,0), 1, $w, 0, $button);
+ $real_w = gtkpack_(Gtk3::HBox->new(0,0), 1, $w, 0, $button);
}
}
$w->signal_connect(key_press_event => $e->{may_go_to_next});
@@ -570,16 +618,20 @@ sub all_entries {
sub all_focusable_entries {
my ($l) = @_;
- map { $_->{type} eq 'expander'
- ? ($_->{w}->get_expanded ? all_focusable_entries($_->{children}) : ())
- : $_;
- } grep { $_->{focus_w} } @$l;
+ grep { $_->{focus_w} } @$l;
+}
+
+sub all_title_entries {
+ my ($l) = @_;
+ grep { $_->{title} } @$l;
}
sub create_widgets_block {
- my ($o, $l, $update, $ignore_ref) = @_;
+ my ($o, $common, $l, $update, $ignore_ref) = @_;
- my $label_sizegrp = Gtk2::SizeGroup->new('horizontal');
+ my $label_sizegrp = Gtk3::SizeGroup->new('horizontal');
+ my $right_label_sizegrp = Gtk3::SizeGroup->new('horizontal');
+ my $realw_sizegrp = Gtk3::SizeGroup->new('horizontal');
@$l = map_index {
if ($::i && ($_->{type} eq 'expander' || $_->{title})) {
@@ -597,18 +649,30 @@ sub create_widgets_block {
$update->($e->{changed});
};
- create_widget($o, $e, $onchange_f, $update, $ignore_ref);
+ create_widget($o, $common, $e, $onchange_f, $update, $ignore_ref);
my $label_w;
if ($e->{label} || !$e->{no_indent}) {
- $label_w = gtknew('Label_Left', text_markup => $e->{label} || '',
- size_group => $label_sizegrp, alignment => [ 0, 0.5 ]);
+ $label_w = gtknew($e->{alignment} eq 'right' ? 'Label_Right' : 'Label_Left', text_markup => $e->{label} || '',
+ size_group => ($e->{alignment} eq 'right' ? $right_label_sizegrp : $label_sizegrp),
+ );
+ $realw_sizegrp->add_widget($e->{real_w});
+ }
+
+ if ($e->{do_not_expand}) {
+ $e->{real_w} = gtknew('HBox', children => [
+ 0, $e->{real_w},
+ 1, gtknew('Label'),
+ ]);
}
- $e->{real_w} = gtkpack_(Gtk2::HBox->new,
+ my $eater = if_($e->{alignment} eq 'right' && !$label_w, gtknew('Label'));
+
+ $e->{real_w} = gtkpack_(Gtk3::HBox->new,
if_($e->{icon}, 0, eval { gtkcreate_img($e->{icon}) }),
- if_($label_w, 0, $label_w),
- (1, $e->{real_w}),
+ if_($eater, 1, $eater),
+ if_($label_w, $e->{alignment} eq 'right', $label_w),
+ (!$eater, $e->{real_w}),
);
}
gtknew('VBox', children => [ map { $_->{grow} || 0, $_->{real_w} } @$l ]);
@@ -623,6 +687,7 @@ sub create_widgets {
my @all = all_entries($l);
$_->{set}->(${$_->{val}}, $_) foreach @all; #- nb: the parameter "$_" is needed for create_boxradio
$_->{disabled} and $_->{real_w}->set_sensitive(!$_->{disabled}()) foreach @all;
+ $_->{hidden} and $_->{w}->set_visibility(!(ref($_->{hidden}) eq 'CODE' ? $_->{hidden}() : $_->{hidden})) foreach @all;
$mainw->{ok}->set_sensitive(!$common->{ok_disabled}()) if $common->{ok_disabled};
$ignore = 0;
};
@@ -636,14 +701,15 @@ sub create_widgets {
my $ok_clicked = sub {
!$mainw->{ok} || $mainw->{ok}->get_property('sensitive') or return;
$mainw->{retval} = 1;
- Gtk2->main_quit;
+ Gtk3->main_quit;
};
my @all = all_entries($l);
foreach (@all) {
my $e = $_; #- for closures
- if (@all == 1 || $e->{quit_if_double_click}) {
+ # we only consider real widgets (aka ignoring labels and Help/Release Notes/... buttons):
+ if ((grep { !$_->{install_button} && $_->{type} ne 'only_label' } @all) == 1 || $e->{quit_if_double_click}) {
#- i'm the only one, double click means accepting
$e->{quit_if_double_click_cooked} = sub { $_[1]->type =~ /^2/ && $ok_clicked->() };
}
@@ -653,7 +719,7 @@ sub create_widgets {
$mainw->{rwindow}->hide;
if (my $v = $e->{clicked_may_quit}()) {
$mainw->{retval} = $v;
- Gtk2->main_quit;
+ Gtk3->main_quit;
}
$mainw->{rwindow}->show;
$update->();
@@ -677,11 +743,16 @@ sub create_widgets {
};
}
- my $box = create_widgets_block($o, $l, $update, \$ignore);
+ # add asterisks before titles when there're more than one:
+ my @all_titles = all_title_entries($l);
+ if (2 <= @all_titles) {
+ ${$_->{val}} = mygtk3::asteriskize(${$_->{val}}) foreach @all_titles;
+ }
+
+ my $box = create_widgets_block($o, $common, $l, $update, \$ignore);
- my $tooltips = Gtk2::Tooltips->new;
foreach my $e (@all) {
- $tooltips->set_tip($e->{w}, $e->{help}) if $e->{help} && !ref($e->{help});
+ $e->{w}->set_tooltip_text($e->{help}) if $e->{help} && !ref($e->{help});
}
$box, $set_all;
@@ -703,25 +774,72 @@ sub filter_widgets {
my $help_path = "/usr/share/doc/installer-help";
+sub is_help_file_exist {
+ my ($_o, $id) = @_;
+ # just ignore anchors:
+ $id =~ s/#.*//;
+ -e "$help_path/$id.html";
+}
+
sub load_from_uri {
- my ($document, $url) = @_;
- $url =~ s/#.*$//; # prevent segfaults on anchors
- $url = get_html_file($::o, $url);
- my $str = scalar(cat_($url));
- c::set_tagged_utf8($str);
- $document->clear;
- $document->open_stream("text/html");
- $document->write_stream($str);
+ my ($view, $url) = @_;
+ $view->load_uri(get_html_file($::o, $url));
}
sub get_html_file {
my ($o, $url) = @_;
- find { -e $_ } map { "$help_path/${_}" }
+ my $anchor;
+ ($url, $anchor) = $url =~ /(.*)#(.*)/ if $url =~ /#/;
+ $url .= '.html' if $url !~ /\.html$/;
+ $url = find { -e $_ } map { "$help_path/${_}" }
map {
my $id = $_;
require lang;
- map { ("$_/$id") } (split ':', lang::getLANGUAGE($o->{locale}{lang})), '';
+ map { ("$_/$id") } map { $_, lc($_) } (split ':', lang::getLANGUAGE($o->{locale}{lang})), '';
} $url;
+ $url = "file://$url";
+ $anchor ? "$url#$anchor" : $url;
+}
+
+sub display_help_window {
+ my ($o, $common) = @_;
+ if (my $file = $common->{interactive_help_id}) {
+ require Gtk3::WebKit2;
+ my $view = gtknew('WebKit2_WebView');
+
+ load_from_uri($view, $file);
+
+ my $w = ugtk3->new(N("Help"), modal => 1);
+ gtkadd($w->{rwindow},
+ gtkpack_(Gtk3::VBox->new,
+ 1, create_scrolled_window(gtkset_border_width($view, 5),
+ [ 'never', 'automatic' ],
+ ),
+ 0, Gtk3::HSeparator->new,
+ 0, gtkpack(create_hbox('end'),
+ gtknew('Button', text => N("Close"), clicked => sub { Gtk3->main_quit })
+ ),
+ ),
+ );
+ mygtk3::set_main_window_size($w->{rwindow});
+ $w->{real_window}->grab_focus;
+ $w->{real_window}->show_all;
+ $w->main;
+ return;
+ } elsif (my $message = $common->{interactive_help}->()) {
+ $o->ask_warn(N("Help"), $message);
+ }
+}
+
+sub display_help {
+ my ($o, $common) = @_;
+ # not very safe but we run in a restricted environment anyway:
+ my $f = '/tmp/help.txt';
+ if ($common->{interactive_help}) {
+ output($f, $common->{interactive_help}->());
+ }
+ local $ENV{LC_ALL} = $::o->{locale}{lang} || 'C';
+ system('display_installer_help', $common->{interactive_help_id} || $f, $o->{locale}{lang});
}
sub ask_fromW {
@@ -729,7 +847,7 @@ sub ask_fromW {
filter_widgets($l);
- my $mainw = ugtk2->new($common->{title}, %$o, modal => 1, if__($::main_window, transient => $::main_window, modal => 1),
+ my $mainw = ugtk3->new($common->{title}, %$o, if__($::main_window, transient => $::main_window),
if_($common->{icon}, icon => $common->{icon}), banner_title => $common->{banner_title},
);
@@ -737,47 +855,12 @@ sub ask_fromW {
$mainw->{box_allow_grow} = 1;
my $pack = create_box_with_title($mainw, @{$common->{messages}});
- mygtk2::set_main_window_size($mainw->{rwindow}) if $mainw->{pop_it} && !$common->{auto_window_size} && (@$l || $mainw->{box_size} == 200);
+ mygtk3::set_main_window_size($mainw->{rwindow}) if $mainw->{pop_it} && !$common->{auto_window_size} && (@$l || $mainw->{box_size} == 200);
my @more_buttons = (
- if_($common->{interactive_help},
- [ N("Help"), sub {
- if (my $file = $common->{interactive_help_id}) {
- require Gtk2::Html2;
- my $view = Gtk2::Html2::View->new;
- my $document = Gtk2::Html2::Document->new;
- $document->signal_connect(request_url => sub {
- my ($_document, $url, $stream) = @_;
- $stream->write(join('', cat_("$help_path/$url")));
- $stream->close;
- });
- $document->signal_connect('link-clicked' => \&load_from_uri);
- $view->set_document($document);
-
- load_from_uri($document, "$file.html");
-
- my $w = ugtk2->new(N("Help"), transient => $mainw->{real_window}, modal => 1);
- gtkadd($w->{rwindow},
- gtkpack_(Gtk2::VBox->new,
- 1, create_scrolled_window(gtkset_border_width($view, 5),
- [ 'never', 'automatic' ],
- ),
- 0, gtkpack(create_hbox('edge'),
- gtknew('Button', text => N("Close"), clicked => sub { Gtk2->main_quit })
- ),
- ),
- );
- # make parent visible still visible:
- local ($::real_windowwidth, $::real_windowheight) = ($::real_windowwidth - 50, $::real_windowheight - 50);
- mygtk2::set_main_window_size($w->{rwindow});
- $w->{real_window}->grab_focus;
- $w->{real_window}->show_all;
- $w->main;
- return;
- }
- my $message = $common->{interactive_help}->() or return;
- $o->ask_warn(N("Help"), $message);
- }, 1 ]),
+ if_($common->{interactive_help} || $common->{interactive_help_id},
+ [ gtknew('Install_Button', text => N("Help"),
+ clicked => sub { display_help($o, $common) }), undef, 1 ]),
if_($common->{more_buttons}, @{$common->{more_buttons}}),
);
my $buttons_pack = ($common->{ok} || !exists $common->{ok}) && $mainw->create_okcancel($common->{ok}, $common->{cancel}, '', @more_buttons);
@@ -787,13 +870,13 @@ sub ask_fromW {
if ($buttons_pack) {
$pack->pack_end(gtkshow($buttons_pack), 0, 0, 0);
}
- ugtk2::gtkadd($mainw->{window}, $pack);
+ ugtk3::gtkadd($mainw->{window}, $pack);
$set_all->();
my $entry_to_focus = find { $_->{focus} && $_->{focus}() } @$l;
my $widget_to_focus = $entry_to_focus ? $entry_to_focus->{focus_w} :
$common->{focus_cancel} ? $mainw->{cancel} :
- @$l && (!$mainw->{ok} || @$l == 1 && member(ref($l->[0]{focus_w}), "Gtk2::TreeView", "Gtk2::RadioButton")) ?
+ @$l && (!$mainw->{ok} || @$l == 1 && member(ref($l->[0]{focus_w}), "Gtk3::TreeView", "Gtk3::RadioButton")) ?
$l->[0]{focus_w} :
$mainw->{ok};
$widget_to_focus->grab_focus if $widget_to_focus;
@@ -816,7 +899,7 @@ sub ask_fromW {
sub ask_browse_tree_info_refW {
my ($o, $common) = @_;
add2hash($common, { wait_message => sub { $o->wait_message(@_) } });
- ugtk2::ask_browse_tree_info($common);
+ ugtk3::ask_browse_tree_info($common);
}
@@ -831,48 +914,58 @@ sub ask_from__add_modify_removeW {
$o->ask_from($title, $message, $l, %callback);
}
+my $reuse_timeout;
+
sub wait_messageW {
my ($o, $title, $message, $message_modifiable) = @_;
- my $to_modify = Gtk2::Label->new(scalar warp_text(ref $message_modifiable ? '' : $message_modifiable));
+ my $to_modify = Gtk3::Label->new(scalar warp_text(ref $message_modifiable ? '' : $message_modifiable));
+
+ Glib::Source->remove($reuse_timeout) if $reuse_timeout; $reuse_timeout = '';
my $Window = gtknew('MagicWindow',
- title => $title,
- pop_it => defined $o->{pop_wait_messages} ? $o->{pop_wait_messages} : !$::isInstall,
+ if_($title, title => $title),
+ pop_it => defined $o->{pop_wait_messages} ? $o->{pop_wait_messages} : 1,
+ pop_and_reuse => $::isInstall,
modal => 1,
- $::isInstall ? (banner => Gtk2::Banner->new((get_default_step_items())[0], $message)) : (),
+ $::isInstall ? (banner => gtknew('Install_Title', text => $message)) : (),
no_Window_Manager => exists $o->{no_Window_Manager} ? $o->{no_Window_Manager} : !$::isStandalone,
- if__($::main_window, transient_for => $::main_window),
child => gtknew('VBox', padding => 4, border_width => 10, children => [
1, $to_modify,
if_(ref($message_modifiable), 0, $message_modifiable),
]),
);
- $Window->signal_connect(expose_event => sub { $Window->{displayed} = 1; 0 });
+ mygtk3::enable_sync_flush($Window);
$Window->{wait_messageW} = $to_modify;
- mygtk2::sync($Window) while !$Window->{displayed};
+ mygtk3::sync_flush($Window);
$Window;
}
sub wait_message_nextW {
my ($_o, $message, $Window) = @_;
- return if $message eq $Window->{wait_messageW}->get_text; #- needed otherwise no expose_event :(
+ return if $message eq $Window->{wait_messageW}->get_text; #- needed otherwise no draw :(
$Window->{displayed} = 0;
$Window->{wait_messageW}->set($message);
- mygtk2::sync($Window) while !$Window->{displayed};
+ mygtk3::sync($Window) while !$Window->{displayed};
}
sub wait_message_endW {
my ($_o, $Window) = @_;
- mygtk2::may_destroy($Window);
- mygtk2::flush();
+ if ($Window->{pop_and_reuse}) {
+ $reuse_timeout = Glib::Timeout->add(100, sub {
+ mygtk3::destroy_previous_popped_and_reuse_window();
+ });
+ } else {
+ mygtk3::may_destroy($Window);
+ mygtk3::flush();
+ }
}
sub wait_message_with_progress_bar {
my ($in, $o_title) = @_;
- my $progress = Gtk2::ProgressBar->new;
+ my $progress = gtknew('ProgressBar');
my $w = $in->wait_message($o_title, $progress);
my $displayed;
- $progress->signal_connect(expose_event => sub { $displayed = 1; 0 });
+ $progress->signal_connect(draw => sub { $displayed = 1; 0 });
$w, sub {
my ($msg, $current, $total) = @_;
if ($msg) {
@@ -886,11 +979,11 @@ sub wait_message_with_progress_bar {
$progress->set_fraction($fraction);
$progress->show;
$displayed = 0;
- mygtk2::flush() while !$displayed;
+ mygtk3::flush() while !$displayed;
}
} else {
$progress->hide;
- mygtk2::flush();
+ mygtk3::flush();
}
};
}
diff --git a/perl-install/interactive/http.pm b/perl-install/interactive/http.pm
index 52372ab7a..70017c41d 100644
--- a/perl-install/interactive/http.pm
+++ b/perl-install/interactive/http.pm
@@ -1,4 +1,4 @@
-package interactive::http; # $Id$
+package interactive::http;
use diagnostics;
use strict;
@@ -115,7 +115,7 @@ sub ask_fromW {
open_stdout(); # re-open for writing
cont_stdout(N("Error"));
- print $q->h1(N("Error")), $q->p("Sorry, you can not go back");
+ print $q->h1(N("Error")), $q->p("Sorry, you cannot go back");
goto redisplay;
}
each_index {
diff --git a/perl-install/interactive/stdio.pm b/perl-install/interactive/stdio.pm
index 199b5573c..5bc53a0f5 100644
--- a/perl-install/interactive/stdio.pm
+++ b/perl-install/interactive/stdio.pm
@@ -1,4 +1,4 @@
-package interactive::stdio; # $Id$
+package interactive::stdio;
use diagnostics;
use strict;
@@ -63,7 +63,7 @@ ask_fromW_begin:
my @labels;
my $format_label = sub { my ($e) = @_; return sprintf("`%s' %s %s\n", ${$e->{val}}, $e->{label}, $e->{text}) };
my $do_widget = sub {
- my ($e, $ind) = @_;
+ my ($e, $_ind) = @_;
if ($e->{type} eq 'bool') {
print "$e->{text} $e->{label}\n";
@@ -170,7 +170,7 @@ sub wait_messageW {
print join "\n", $message, $message_modifiable;
}
sub wait_message_nextW {
- my $m = join "\n", $_[1];
+ my $m = $_[1];
print "\r$m", ' ' x (60 - length $m);
}
sub wait_message_endW { print "\nDone\n" }
diff --git a/perl-install/lang.pm b/perl-install/lang.pm
index e33d9ac95..a3c8aa7ea 100644
--- a/perl-install/lang.pm
+++ b/perl-install/lang.pm
@@ -1,4 +1,4 @@
-package lang; # $Id$
+package lang;
use diagnostics;
use strict;
@@ -6,25 +6,70 @@ use common;
use utf8;
use log;
-#- key: lang name (locale name for some (~5) special cases needing
-#- extra distinctions)
-#- [0]: lang name in english
-#- [1]: transliterated locale name in the locale name (used for sorting)
-#- [2]: default locale name to use for that language if there is not
-#- an existing locale for the combination language+country choosen
-#- [3]: geographic groups that this language belongs to (for displaying
-#- in the menu grouped in smaller lists), 1=Europe, 2=Asia, 3=Africa,
-#- 4=Oceania&Pacific, 5=America (if you wonder, it's the order
-#- used in the olympic flag)
-#- [4]: special value for LANGUAGE variable (if different of the default
-#- of 'll_CC:ll_DD:ll' (ll_CC: locale (if exist) resulting of the
-#- combination of chosen lang (ll) and country (CC), ll_DD: the
-#- default locale shown here (field [2]) and ll: the language (the key))
+=head1 SYNOPSYS
+
+B<lang> enables to manipulate the system or the user locale settings.
+
+=head1 Data structures & functions
+
+=head2 Languages
+
+=over
+
+=item our %lang
+
+The key is the lang name (locale name for some (~5) special cases needing
+extra distinctions)
+
+The fields are:
+
+=over 4
+
+=item 0 lang name in English
+
+=item 1 transliterated locale name in the locale name (used for sorting)
+
+=item 2 default locale name to use for that language if there is not
+an existing locale for the combination language+country chosen
+
+=item 3 geographic groups that this language belongs to (for displaying
+in the menu grouped in smaller lists):
+
+=over 4
+
+=item 1=Europe,
+
+=item 2=Asia,
+
+=item 3=Africa,
+
+=item 4=Oceania & Pacific,
+
+=item 5=America
+
+=back
+
+If you wonder, it's the order used in the Olympic flag...
+
+=item 4 special value for LANGUAGE variable (if different of the default
+of 'll_CC:ll_DD:ll' (ll_CC: locale (if exist) resulting of the
+combination of chosen lang (ll) and country (CC), ll_DD: the
+default locale shown here (field [2]) and ll: the language (the key))
+
+=back
+
+Example:
+
+ C<< 'fr' => [ 'French', 'Francais', 'fr_FR', '1 345', 'iso-8859-15' ], >>
+
+=cut
+
our %langs = (
'af' => [ 'Afrikaans', 'Afrikaans', 'af_ZA', ' 3 ', 'iso-8859-1' ],
'am' => [ 'Amharic', 'ZZ emarNa', 'am_ET', ' 3 ', 'utf_ethi' ],
'ar' => [ 'Arabic', 'AA Arabic', 'ar_EG', ' 23 ', 'utf_ar' ],
'as' => [ 'Assamese', 'ZZ Assamese', 'as_IN', ' 2 ', 'utf_beng' ],
+'ast' => [ 'Asturian', 'Asturianu', 'ast_ES', ' 1 ', 'unicode' ],
'az' => [ 'Azeri (Latin)', 'Azerbaycanca', 'az_AZ', ' 2 ', 'utf_az' ],
'be' => [ 'Belarussian', 'Belaruskaya', 'be_BY', '1 ', 'utf_cyr1' ],
'ber' => [ 'Berber', 'ZZ Tamazight', 'ber_MA', ' 3 ', 'utf_tfng', 'ber_MA:ber:fr' ],
@@ -47,6 +92,7 @@ our %langs = (
'en_GB' => [ 'English', 'English', 'en_GB', '123 5', 'iso-8859-15' ],
'en_IE' => [ 'English (Ireland)', 'English (Ireland)', 'en_IE', '1 ', 'iso-8859-15', 'en_IE:en_GB:en' ],
'en_NZ' => [ 'English (New-Zealand)', 'English (NZ)', 'en_NZ', ' 4 ', 'iso-8859-1', 'en_NZ:en_AU:en_GB:en' ],
+'en_ZA' => [ 'English (South Africa)', 'English (ZA)', 'en_ZA', ' 3 ', 'iso-8859-1', 'en_ZA:en_GB:en' ],
'en_US' => [ 'English (American)', 'English (American)', 'en_US', ' 5', 'C' ],
'eo' => [ 'Esperanto', 'Esperanto', 'eo_XX', '12345', 'unicode' ],
'es' => [ 'Spanish', 'Espanol', 'es_ES', '1 3 5', 'iso-8859-15' ],
@@ -111,13 +157,13 @@ our %langs = (
'ms' => [ 'Malay', 'Bahasa Melayu', 'ms_MY', ' 2 ', 'utf_lat1' ],
'mt' => [ 'Maltese', 'Maltin', 'mt_MT', '1 3 ', 'unicode' ],
#- "my_MM" not yet done, using "en_US" for now
-'my' => [ 'Burmese', 'ZZ Bamaca', 'en_US', ' 2 ', 'utf_mymr', 'my_MM:my' ],
+'my' => [ 'Burmese', 'ZZ Bamaca', 'my', ' 2 ', 'utf_mymr', 'my_MM:my' ],
'nb' => [ 'Norwegian Bokmaal', 'Norsk, Bokmal', 'nb_NO', '1 ', 'iso-8859-15', 'nb:no' ],
'nds' => [ 'Low Saxon', 'Platduutsch', 'nds_DE', '1 ', 'utf_lat1', 'nds_DE:nds' ],
'ne' => [ 'Nepali', 'ZZ Nepali', 'ne_NP', ' 2 ', 'utf_deva' ],
'nl' => [ 'Dutch', 'Nederlands', 'nl_NL', '1 ', 'iso-8859-15' ],
'nn' => [ 'Norwegian Nynorsk', 'Norsk, Nynorsk', 'nn_NO', '1 ', 'iso-8859-15', 'nn:no@nynorsk:no_NY:no:nb' ],
-'nr' => [ 'Ndebele', 'IsiNdebele', 'nr_ZA', ' 3 ', 'utf_lat1', 'nr:en_ZA' ],
+'nr' => [ 'Ndebele', 'Ndebele', 'nr_ZA', ' 3 ', 'utf_lat1', 'nr:en_ZA' ],
'nso' => [ 'Northern Sotho', 'Sesotho sa Leboa', 'nso_ZA', ' 3 ', 'utf_lat1', 'st:nso:en_ZA' ],
'oc' => [ 'Occitan', 'Occitan', 'oc_FR', '1 ', 'utf_lat1', 'oc:fr_FR:fr' ],
'pa_IN' => [ 'Punjabi (gurmukhi)', 'ZZ Punjabi', 'pa_IN', ' 2 ', 'utf_guru' ],
@@ -137,7 +183,7 @@ our %langs = (
'sq' => [ 'Albanian', 'Shqip', 'sq_AL', '1 ', 'iso-8859-1' ],
'sr' => [ 'Serbian Cyrillic', 'Srpska', 'sr_CS', '1 ', 'utf_cyr1', 'sp:sr' ],
#- "sh" comes first, because otherwise, due to the way glibc does language
-#- fallback, if "sr@Latn" is not there but a "sr" (whichs uses cyrillic)
+#- fallback, if "sr@Latn" is not there but a "sr" (which uses cyrillic)
#- is there, "sh" will never be used.
'sr@Latn' => [ 'Serbian Latin', 'Srpska', 'sr_CS', '1 ', 'unicode', 'sh:sr@Latn' ],
'ss' => [ 'Swati', 'SiSwati', 'ss_ZA', ' 3 ', 'utf_lat1', 'ss:en_ZA' ],
@@ -155,20 +201,20 @@ our %langs = (
'ug' => [ 'Uyghur', 'AA Uyghur', 'ug_CN', ' 2 ', 'utf_ar', 'ug' ],
'uk' => [ 'Ukrainian', 'Ukrayinska', 'uk_UA', '1 ', 'koi8-u' ],
'ur' => [ 'Urdu', 'AA Urdu', 'ur_PK', ' 2 ', 'utf_ar' ],
-'uz@Latn' => [ 'Uzbek (latin)', 'Ozbekcha', 'uz_UZ', ' 2 ', 'utf_cyr2', 'uz@Latn:uz' ],
-'uz' => [ 'Uzbek (cyrillic)', 'Ozbekcha', 'uz_UZ', ' 2 ', 'utf_cyr2', 'uz@Cyrl:uz' ],
+'uz' => [ 'Uzbek', 'Ozbekcha', 'uz_UZ', ' 2 ', 'utf_cyr2', 'uz' ],
+ 'uz@cyrillic' => [ 'Uzbek (cyrillic)', 'Ozbekcha', 'uz_UZ@cyrillic', ' 2 ', 'utf_cyr2', 'uz@cyrillic' ],
've' => [ 'Venda', 'Tshivenda', 've_ZA', ' 3 ', 'utf_lat1', 've:ven:en_ZA' ],
'vi' => [ 'Vietnamese', 'Tieng Viet', 'vi_VN', ' 2 ', 'utf_vi' ],
'wa' => [ 'Walon', 'Walon', 'wa_BE', '1 ', 'utf_lat1', 'wa:fr_BE:fr' ],
#- locale "wen_DE" not done yet, using "de_DE" instead
#- wen disabled until we have a perl-install/pixmaps/langs/lang-wen.png for it
#'wen' => [ 'Sorbian', 'Sorbian', 'de_DE', '1 ', 'utf_lat1', 'wen' ],
-'xh' => [ 'Xhosa', 'IsiXhosa', 'xh_ZA', ' 3 ', 'utf_lat1', 'xh:en_ZA' ],
+'xh' => [ 'Xhosa', 'Xhosa', 'xh_ZA', ' 3 ', 'utf_lat1', 'xh:en_ZA' ],
'yi' => [ 'Yiddish', 'AA Yidish', 'yi_US', '1 ', 'utf_he' ],
'yo' => [ 'Yoruba', 'Yoruba', 'yo_NG', ' 3 ', 'utf_yo', 'yo:en_NG' ],
'zh_CN' => [ 'Chinese Simplified', 'ZZ ZhongWen', 'zh_CN', ' 2 ', 'gb2312', 'zh_CN.GBK:zh_CN.GB2312:zh_CN:zh' ],
'zh_TW' => [ 'Chinese Traditional', 'ZZ ZhongWen', 'zh_TW', ' 2 ', 'Big5', 'zh_TW.Big5:zh_TW:zh_HK:zh' ],
-'zu' => [ 'Zulu', 'IsiZulu', 'zu_ZA', ' 3 ', 'utf_lat1', 'xh:en_ZA' ],
+'zu' => [ 'Zulu', 'Zulu', 'zu_ZA', ' 3 ', 'utf_lat1', 'xh:en_ZA' ],
);
sub l2name { exists $langs{$_[0]} && $langs{$_[0]}[0] }
sub l2transliterated { exists $langs{$_[0]} && $langs{$_[0]}[1] }
@@ -180,10 +226,18 @@ sub l2location {
}
sub l2charset { exists $langs{$_[0]} && $langs{$_[0]}[4] }
sub l2language { exists $langs{$_[0]} && $langs{$_[0]}[5] }
+
+sub is_locale_installed {
+ my ($locale) = @_;
+ my @ctypes = glob "/usr/share/locale/" . $locale . "{,.*}/LC_CTYPE";
+ foreach my $ctype (@ctypes) { -e $ctype && return 1 }
+ 0;
+}
+
sub list_langs {
my (%options) = @_;
my @l = keys %langs;
- $options{exclude_non_installed} ? grep { -e "/usr/share/locale/" . l2locale($_) . "/LC_CTYPE" } @l : @l;
+ $options{exclude_non_installed} ? grep { is_locale_installed(l2locale($_)) } @l : @l;
}
sub text_direction_rtl() {
@@ -193,19 +247,56 @@ sub text_direction_rtl() {
N("default:LTR") eq "default:RTL";
}
+=back
+
+=head2 Countries
+
+=over
+
+=item my %countries;
+
+The key is the ISO 639-1 country name code (that should be YY in xx_YY locale).
+
+The fields are:
+
+=over 4
+
+=item 0: country name in natural language
+
+=item 1: default locale for that country
+
+=item 2: geographic groups that this country belongs to (for displaying
+in the menu grouped in smaller lists):
+
+=over 4
+
+=item *1=Europe,
+
+=item *2=Asia,
+
+=item *3=Africa,
+
+=item 4=Oceania & Pacific,
+
+=item 5=America
+
+=back
+
+If you wonder, it's the order used in the Olympic flag.
+
+=back
+
+Note: for countries for which a glibc locale do not exist (yet) I tried to
+put a locale that makes sense; and a '#' at the end of the line to show
+the locale is not the "correct" one. 'en_US' is used when no good choice
+is available.
+
+Example:
+
+ C<< 'FR' => [ N_("France"), 'fr_FR', '1' ], >>
+
+=cut
-#- key: country name (that should be YY in xx_YY locale)
-#- [0]: country name in natural language
-#- [1]: default locale for that country
-#- [2]: geographic groups that this country belongs to (for displaying
-#- in the menu grouped in smaller lists), 1=Europe, 2=Asia, 3=Africa,
-#- 4=Oceania&Pacific, 5=America (if you wonder, it's the order
-#- used in the olympic flag)
-#-
-#- Note: for countries for which a glibc locale do not exist (yet) I tried to
-#- put a locale that makes sense; and a '#' at the end of the line to show
-#- the locale is not the "correct" one. 'en_US' is used when no good choice
-#- is available.
my %countries = (
'AD' => [ N_("Andorra"), 'ca_AD', '1' ],
'AE' => [ N_("United Arab Emirates"), 'ar_AE', '2' ],
@@ -446,55 +537,140 @@ my %countries = (
'ZM' => [ N_("Zambia"), 'en_US', '3' ], #
'ZW' => [ N_("Zimbabwe"), 'en_ZW', '5' ],
);
+
+=item c2name($country_code)
+
+Returns the translated name for $country_code.
+
+=cut
+
sub c2name { exists $countries{$_[0]} && translate($countries{$_[0]}[0]) }
+
+=item c2locale($country_code)
+
+Returns default locale for that $country_code.
+
+=cut
+
sub c2locale { exists $countries{$_[0]} && $countries{$_[0]}[1] }
-sub list_countries {
- my (%options) = @_;
- my @l = keys %countries;
- $options{exclude_non_installed} ? grep { -e "/usr/share/locale/" . c2locale($_) . "/LC_CTYPE" } @l : @l;
+
+=item list_countries()
+
+Returns the full list of countries.
+
+=cut
+
+sub list_countries() {
+ keys %countries;
}
-#- this list is built with the following command on the compile cluster:
-#- rpm -qpl /cooker/RPMS/locales-* | grep LC_CTYPE | grep '\.UTF-8' | cut -d'/' -f5 | sed 's/.UTF-8//' | sort | tr '\n' ' ' ; echo
-our @locales = qw(aa_DJ aa_ER aa_ER@saaho aa_ET af_ZA am_ET an_ES ar_AE ar_BH ar_DZ ar_EG ar_IN ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as_IN az_AZ be_BY ber_DZ ber_MA bg_BG bn_BD bn_IN br_FR bs_BA byn_ER ca_AD ca_ES ca_FR ca_IT cs_CZ cy_GB da_DK de_AT de_BE de_CH de_DE de_LU dz_BT el_CY el_GR en_AU en_BE en_BW en_CA en_DK en_GB en_HK en_IE en_IN en_NG en_NZ en_PH en_SG en_US en_ZA en_ZW eo_XX es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et_EE eu_ES fa_IR fi_FI fil_PH fo_FO fr_BE fr_CA fr_CH fr_FR fr_LU fur_IT fy_DE fy_NL ga_IE gd_GB gez_ER gez_ER@abegede gez_ET gez_ET@abegede gl_ES gu_IN gv_GB ha_NG he_IL hi_IN hr_HR hsb_DE hu_HU hy_AM id_ID ig_NG ik_CA is_IS it_CH it_IT iu_CA ja_JP ka_GE kk_KZ kl_GL km_KH kn_IN ko_KR ku_TR kw_GB ky_KG lg_UG li_BE li_NL lo_LA lt_LT lv_LV mg_MG mi_NZ mk_MK ml_IN mn_MN mr_IN ms_MY mt_MT nb_NO nds_DE nds_DE@traditional nds_NL ne_NP nl_BE nl_NL nn_NO no_NO nr_ZA nso_ZA oc_FR om_ET om_KE pa_IN pa_PK ph_PH pl_PL pt_BR pt_PT ro_RO ru_RU ru_UA rw_RW sc_IT se_NO sh_YU sid_ET si_LK sk_SK sl_SI so_DJ so_ET so_KE so_SO sq_AL sr_CS sr_CS@Latn sr_YU sr_YU@Latn ss_ZA st_ZA sv_FI sv_SE sw_XX ta_IN te_IN tg_TJ th_TH ti_ER ti_ET tig_ER tk_TM tl_PH tn_ZA tr_CY tr_TR ts_ZA tt_RU ug_CN uk_UA ur_PK uz_UZ uz_UZ@Cyrl uz_UZ@Latn ve_ZA vi_VN wa_BE wal_ET xh_ZA yi_US yo_NG zh_CN zh_HK zh_SG zh_TW zu_ZA);
-
+=back
+
+=head2 Locales
+
+=over
+
+=item our @locales;
+
+The list of locales supported by glibc.
+
+=cut
+
+#- this list is built with the following command:
+#- urpmf LC_CTYPE | grep -E '/usr/share/locale/[a-z]' | cut -d'/' -f5 | sed 's/\.\(UTF-8\|ARM\|EUC\|GB.\|ISO\|KOI\|TCVN\).*\|\@\(euro\|iqtelif.*\)//' | sort -u | tr '\n' ' ';echo
+our @locales = qw(aa_DJ aa_ER aa_ER@saaho aa_ET af_ZA ak_GH am_ET an_ES anp_IN ar_AE ar_BH ar_DZ ar_EG ar_IN ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SS ar_SY ar_TN ar_YE as_IN ast_ES ayc_PE az_AZ be_BY be_BY@latin bem_ZM ber_DZ ber_MA bg_BG bho_IN bn_BD bn_IN bo_CN bo_IN br_FR brx_IN bs_BA byn_ER ca_AD ca_ES ca_FR ca_IT cmn_TW crh_UA csb_PL cs_CZ cv_RU cy_GB da_DK de_AT de_BE de_CH de_DE de_LU doi_IN dv_MV dz_BT el_CY el_GR en_AG en_AU en_BE en_BW en_CA en_DK en_GB en_HK en_IE en_IN en_NG en_NZ en_PH en_SG en_US en_ZA en_ZM en_ZW eo_XX es_AR es_BO es_CL es_CO es_CR es_CU es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es@tradicional es_US es_UY es_VE et_EE eu_ES fa_IR ff_SN fi_FI fil_PH fo_FO fr_BE fr_CA fr_CH fr_FR fr_LU fur_IT fy_DE fy_NL ga_IE gd_GB gez_ER gez_ER@abegede gez_ET gez_ET@abegede gl_ES gu_IN gv_GB hak_TW ha_NG he_IL hi_IN hne_IN hr_HR hsb_DE ht_HT hu_HU hy_AM ia_FR id_ID ig_NG ik_CA is_IS it_CH it_IT iu_CA iw_IL ja_JP ka_GE kk_KZ kl_GL km_KH kn_IN kok_IN ko_KR ks_IN ks_IN@devanagari ku_TR kw_GB ky_KG lb_LU lg_UG li_BE lij_IT li_NL lo_LA lt_LT lv_LV lzh_TW mag_IN mai_IN mg_MG mhr_RU mi_NZ mk_MK ml_IN mni_IN mn_MN mr_IN ms_MY mt_MT my_MM nan_TW nan_TW@latin nb_NO nds_DE nds_DE@traditional nds_NL ne_NP nhn_MX niu_NU niu_NZ nl_AW nl_BE nl_NL nn_NO nr_ZA nso_ZA oc_FR om_ET om_KE or_IN os_RU pa_IN pap_AN pap_AW pap_CW pa_PK pl_PL ps_AF pt_BR pt_PT quz_PE ro_RO ru_RU ru_UA rw_RW sa_IN sat_IN sc_IT sd_IN sd_IN@devanagari se_NO shs_CA sid_ET si_LK sk_SK sl_SI so_DJ so_ET so_KE so_SO sq_AL sq_MK sr_ME sr_RS sr_RS@latin ss_ZA st_ZA sv_FI sv_SE sw_KE sw_TZ sw_XX szl_PL ta_IN ta_LK te_IN tg_TJ the_NP th_TH ti_ER ti_ET tig_ER tk_TM tl_PH tn_ZA tr_CY tr_TR ts_ZA tt_RU ug_CN uk_UA unm_US ur_IN ur_PK uz_UZ uz_UZ@cyrillic ve_ZA vi_VN wa_BE wae_CH wal_ET wo_SN xh_ZA yi_US yo_NG yue_HK zh_CN zh_HK zh_SG zh_TW zu_ZA);
+
+# (cg) Taken from systemd/src/locale/localed.c
+my @locale_conf_fields = qw(LANG LANGUAGE LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT LC_IDENTIFICATION);
+
sub standard_locale {
my ($lang, $country, $prefer_lang) = @_;
- member("${lang}_${country}", @locales) and return "${lang}_${country}";
- $prefer_lang && member($lang, @locales) and return $lang;
- my $main_locale = locale_to_main_locale($lang);
- if ($main_locale ne $lang) {
- standard_locale($main_locale, $country, $prefer_lang);
+
+ my $lang_ = force_lang_country($lang, $country);
+ if (member($lang_, @locales)) {
+ $lang_;
+ } elsif ($prefer_lang && member($lang, @locales)) {
+ $lang;
+ } else {
+ '';
}
- '';
}
-sub fix_variant {
- my ($locale) = @_;
- #- uz@Cyrl_UZ -> uz_UZ@Cyrl
- $locale =~ s/(.*)(\@\w+)(_.*)/$1$3$2/;
- $locale;
+sub force_lang_country {
+ my ($lang, $country) = @_;
+ my $h = analyse_locale_name($lang);
+ $h->{country} = $country;
+ analysed_to_lang($h);
+}
+
+sub force_lang_charset {
+ my ($lang, $charset) = @_;
+ my $h = analyse_locale_name($lang);
+ $h->{charset} = $charset;
+ analysed_to_lang($h);
}
+=item analysed_to_lang($h)
+
+The reverse of analyse_locale_name($lang), it takes a hash ref and returns
+the standard ll_CC.cc@VV
+
+=cut
+
+sub analysed_to_lang {
+ my ($h) = @_;
+ $h->{main} . '_' . $h->{country} .
+ ($h->{charset} ? '.' . $h->{charset} : '') .
+ ($h->{variant} ? '@' . $h->{variant} : '');
+}
+
+=item analyse_locale_name($lang)
+
+Analyse a ll_CC.cc@VV locale and return a hash ref containing:
+
+=over 4
+
+=item * main (langage code)
+
+=item * country code
+
+=item * charset
+
+=item * variant
+
+=back
+
+=cut
+
sub analyse_locale_name {
- my ($locale) = @_;
- $locale =~ /^(.*?) (?:_(.*?))? (?:\.(.*?))? (?:\@(.*?))? $/x &&
+ my ($lang) = @_;
+ $lang =~ /^(.*?) (?:_(.*?))? (?:\.(.*?))? (?:\@(.*?))? $/x &&
{ main => $1, country => $2, charset => $3, variant => $4 };
}
+=item locale_to_main_locale($lang)
+
+=cut
+
+=item locale_to_main_locale($lang)
+
+Returns the locale code from a ll_LL representation.
+
+=cut
+
sub locale_to_main_locale {
- my ($locale) = @_;
- lc(analyse_locale_name($locale)->{main});
+ my ($lang) = @_;
+ lc(analyse_locale_name($lang)->{main});
}
sub getlocale_for_lang {
my ($lang, $country, $o_utf8) = @_;
- fix_variant((standard_locale($lang, $country, 'prefer_lang') || l2locale($lang)) . ($o_utf8 ? '.UTF-8' : ''));
+ force_lang_charset(standard_locale($lang, $country, 'prefer_lang') || l2locale($lang), $o_utf8 && 'UTF-8');
}
sub getlocale_for_country {
my ($lang, $country, $o_utf8) = @_;
- fix_variant((standard_locale($lang, $country, '') || c2locale($country)) . ($o_utf8 ? '.UTF-8' : ''));
+ force_lang_charset(standard_locale($lang, $country, '') || c2locale($country), $o_utf8 && 'UTF-8');
}
sub getLANGUAGE {
@@ -504,76 +680,152 @@ sub getLANGUAGE {
locale_to_main_locale($lang)));
}
+sub countries_to_locales {
+ my (%options) = @_;
+
+ my %country2locales;
+ my $may_add = sub {
+ my ($locale, $country) = @_;
+ if ($options{exclude_non_installed}) {
+ is_locale_installed($locale) or return;
+ }
+ my $h = analyse_locale_name($locale) or internal_error();
+ push @{$country2locales{$country || $h->{country}}}, $h;
+ };
+
+ # first add all real locales
+ foreach (@locales) {
+ $may_add->($_, undef);
+ }
+ # then add countries XX for which we use locale yy_ZZ and not yy_XX
+ foreach my $country (list_countries()) {
+ $may_add->(c2locale($country), $country);
+ }
+ \%country2locales;
+}
+
#-------------------------------------------------------------
-#
-# IM configuration hash tables
-#
-# in order to configure an IM, one has to:
-# - put generic configuration in %IM_config
-
-
-# This set generic IM fields.
-my @IM_i18n_fields = (
- 'XMODIFIERS',
-#- is the environnement variable used by the X11 XIM protocol
-#- it is of the form XIMODIFIERS="@im=foo"
- 'XIM',
-#- is used by some programs, it usually is the like XIMODIFIERS
-#- with the "@im=" part stripped
- 'GTK_IM_MODULE',
-#- the module to use for Gtk programs ("xim" to use an X11
-#- XIM server; or a a native gtk module if exists)
- 'XIM_PROGRAM',
-#- the XIM program to run (usually the same as XIM value, but
-#- in some cases different, particularly if parameters are needed;
- 'QT_IM_MODULE',
-#- the module to use for Qt programs ("xim" to use an X11
-#- XIM server; or a Qt plugin if exists)
-);
+=back
+
+=head2 Input Methods (IM)
+
+Various hash tables enables to configure IMs.
+
+=over
+
+=item my @IM_i18n_fields;
+
+This set generic IM fields:
+
+=over 4
+
+=item * B<XMODIFIERS>: is the environnement variable used by the X11 XIM protocol
+it is of the form XIMODIFIERS="@im=foo"
+
+=item * B<XIM>: is used by some programs, it usually is the like XIMODIFIERS
+with the "@im=" part stripped
+
+=item * B<GTK_IM_MODULE>: the module to use for Gtk programs ("xim" to use an X11
+XIM server; or a a native gtk module if exists)
+
+=item * B<XIM_PROGRAM>: the XIM program to run (usually the same as XIM value, but
+in some cases different, particularly if parameters are needed;
+
+=item * B<QT_IM_MODULE>: the module to use for Qt programs ("xim" to use an X11
+XIM server; or a Qt plugin if exists)
+
+=back
+
+=cut
+
+my @IM_i18n_fields = qw(XMODIFIERS XIM GTK_IM_MODULE XIM_PROGRAM QT_IM_MODULE);
+
+my $is_plasma;
+
+=item my %IM_config;
+
+In order to configure an IM, one has to put generic configuration here.
+Fields are :
+
+=over 4
+
+=item * B<GTK_IM_MODULE>: the Gtk+ IM module to use
+
+=item * B<QT_IM_MODULE>: the Qt IM module to use
+
+=item * B<XIM>:
+
+=item * B<XIM_PROGRAM>: the XIM program to use
-my ($is_kde3, $is_kde4, $_is_gtk);
+=item * B<XMODIFIERS>: the X Modifiers (see X11 config), eg: C<'@im=gcin'>,
-my @scim_bridges_qt_packages;
+See above for those 5 parameters.
+
+=item * B<default_for_lang>: the language codes for which it's the default IM
+=item * B<langs>: 'zh',
+
+=item * B<packages:> a hash ref that contains subroutine references:
+
+=over 4
+
+=item * B<generic>: packages that must be installed for all languages
+
+=item * B<common>: packages that are shared between per language & generic packages
+
+=item * eventually several B<code_lang> returning per language packages
+
+=back
+
+The I<packages> field must be kept in sync with meta-task's C<rpmsrate-raw>, especially for the per language package selection!
+
+The actual packages list will consist of:
+
+=over 4
+
+=item * either per language package list or I<generic> list
+
+=item * plus the packages returned by I<common>
+
+=back
+
+=back
+
+=cut
-# keep the 'packages' field in sync with share/rpmsrate:
my %IM_config =
(
- ami => {
- XIM => 'Ami',
- #- NOTE: there are several possible versions of ami, for the different
- #- desktops (kde, gnome, etc). So XIM_PROGRAM is not defined; it will
- #- be the xinitrc script, XIM section, that will choose the right one
- #- XIM_PROGRAM => 'ami',
- XMODIFIERS => '@im=Ami',
- GTK_IM_MODULE => 'xim',
- QT_IM_MODULE => 'xim',
- },
- chinput => {
- GTK_IM_MODULE => 'xim',
- QT_IM_MODULE => 'xim',
- XIM => 'chinput',
- XMODIFIERS => '@im=Chinput',
- XIM_PROGRAM => {
- 'zh_CN' => 'chinput -gb',
- 'en_SG' => 'chinput -gb',
- 'zh_HK' => 'chinput -big5',
- 'zh_TW' => 'chinput -big5',
- },
- packages => { generic => sub { 'miniChinput' } },
- },
fcitx => {
- GTK_IM_MODULE => 'xim',
- QT_IM_MODULE => 'xim',
+ GTK_IM_MODULE => 'fcitx',
XIM => 'fcitx',
XIM_PROGRAM => 'fcitx',
XMODIFIERS => '@im=fcitx',
+ langs => 'zh',
+ packages => {
+ common => sub { if_($is_plasma, 'fcitx-qt5') },
+ generic => sub { qw(fcitx) },
+ },
},
gcin => {
GTK_IM_MODULE => 'gcin',
- QT_IM_MODULE => 'gcin',
XIM => 'gcin',
XIM_PROGRAM => 'gcin',
XMODIFIERS => '@im=gcin',
+ langs => 'zh',
+ packages => {
+ common => sub { if_($is_plasma, 'gcin-qt5') },
+ generic => sub { qw(gcin) },
+ },
+ },
+ hime => {
+ GTK_IM_MODULE => 'hime',
+ XIM => 'hime',
+ XIM_PROGRAM => 'hime',
+ XMODIFIERS => '@im=hime',
+ langs => 'zh',
+ packages => {
+ common => sub { if_($is_plasma, 'hime-qt5') },
+ generic => sub { qw(hime) },
+ },
},
'im-ja' => {
GTK_IM_MODULE => 'im-ja',
@@ -581,102 +833,77 @@ my %IM_config =
XIM => 'im-ja-xim-server',
XIM_PROGRAM => 'im-ja-xim-server',
XMODIFIERS => '@im=im-ja-xim-server',
+ langs => 'ja',
},
- kinput2 => {
- GTK_IM_MODULE => 'xim',
- QT_IM_MODULE => 'xim',
- XIM => 'kinput2',
- XIM_PROGRAM => 'kinput2',
- XMODIFIERS => '@im=kinput2',
- packages => { generic => sub { 'kinput2-wnn' } },
- },
nabi => {
GTK_IM_MODULE => 'xim',
- QT_IM_MODULE => 'xim',
XIM => 'nabi',
XIM_PROGRAM => 'nabi',
XMODIFIERS => '@im=nabi',
+ langs => 'ko',
},
- oxim => {
- GTK_IM_MODULE => 'oxim',
- QT_IM_MODULE => 'oxim',
- XIM => 'oxim',
- XIM_PROGRAM => 'oxim',
- XMODIFIERS => '@im=oxim', # '@im=SCIM' is broken for now
- packages => { generic => sub { 'oxim' } },
- },
'scim' => {
GTK_IM_MODULE => 'scim',
- QT_IM_MODULE => 'scim',
+ QT_IM_MODULE => 'xim',
XIM_PROGRAM => 'scim -d',
XMODIFIERS => '@im=SCIM',
packages => {
- generic => sub { qw(scim scim-m17n scim-tables), if_($is_kde3, 'scim-qtimm') },
- am => sub { qw(scim scim-tables ), if_($is_kde3, 'scim-qtimm') },
- ja => sub { qw(scim-anthy scim-input-pad scim-tomoe), if_($is_kde3, 'scim-qtimm') },
- ko => sub { 'scim-hangul', if_($is_kde3, 'scim-qtimm') },
- vi => sub { 'scim-m17n', if_($is_kde3, 'scim-qtimm') },
- zh => sub { qw(scim-pinyin scim-tables scim-chewing), if_($is_kde3, 'scim-qtimm') },
+ generic => sub { qw(scim-m17n scim-tables) },
+ am => sub { qw(scim-tables) },
+ ja => sub { qw(scim-anthy) },
+ ko => sub { qw(scim-hangul) },
+ th => sub { qw(scim-thai) },
+ vi => sub { qw(scim-m17n) },
+ zh => sub { qw(scim-tables-zh scim-chewing) },
},
},
'scim-bridge' => {
GTK_IM_MODULE => 'scim-bridge',
- QT_IM_MODULE => 'scim-bridge',
- XIM_PROGRAM => 'scim -d',
+ XIM_PROGRAM => 'scim-bridge',
XMODIFIERS => '@im=SCIM',
- default_for_lang => 'am ja ko vi zh_CN zh_TW',
packages => {
- generic => sub { qw(scim-m17n scim-tables), @scim_bridges_qt_packages },
- am => sub { 'scim-tables', @scim_bridges_qt_packages },
- ja => sub { qw(scim-anthy scim-input-pad scim-tomoe), @scim_bridges_qt_packages },
- ko => sub { 'scim-hangul', @scim_bridges_qt_packages },
- vi => sub { 'scim-m17n', @scim_bridges_qt_packages },
- zh => sub { qw(scim-pinyin scim-tables scim-chewing), @scim_bridges_qt_packages },
+ generic => sub { qw(scim-m17n scim-tables) },
+ am => sub { qw(scim-tables) },
+ ja => sub { qw(scim-anthy) },
+ ko => sub { qw(scim-hangul) },
+ th => sub { qw(scim-thai) },
+ vi => sub { qw(scim-m17n) },
+ zh => sub { qw(scim-tables-zh scim-chewing) },
},
},
- skim => {
- GTK_IM_MODULE => 'scim',
- QT_IM_MODULE => 'scim',
- XIM_PROGRAM => 'skim -d',
- XMODIFIERS => '@im=SCIM',
- packages => {
- generic => sub { qw(scim-tables-skim scim-m17n), if_($is_kde3, 'scim-qtimm') },
- am => sub { 'scim-tables-skim', if_($is_kde3, 'scim-qtimm') },
- ja => sub { qw(skim-scim-anthy scim-input-pad scim-tomoe), if_($is_kde3, 'scim-qtimm') },
- ko => sub { 'scim-hangul-skim', if_($is_kde3, 'scim-qtimm') },
- vi => sub { qw(skim scim-m17n), if_($is_kde3, 'scim-qtimm') },
- zh => sub { qw(skim-scim-pinyin scim-tables-skim scim-chewing), if_($is_kde3, 'scim-qtimm') },
- },
- },
+ 'ibus' => {
+ GTK_IM_MODULE => 'ibus',
+ QT_IM_MODULE => 'ibus',
+ XIM_PROGRAM => 'ibus-daemon -d -x',
+ XMODIFIERS => '@im=ibus',
+ default_for_lang => 'am ja ko th vi zh_CN zh_TW',
+ packages => {
+ generic => sub { qw(ibus-table ibus-m17n) },
+ ja => sub { qw(ibus-mozc) },
+ zh => sub { qw(ibus-libpinyin ibus-chewing) },
+ ko => sub { qw(ibus-hangul) },
+ },
+ },
uim => {
GTK_IM_MODULE => 'uim',
- QT_IM_MODULE => 'uim',
XIM => 'uim',
XIM_PROGRAM => 'uim-xim',
XMODIFIERS => '@im=uim',
- packages => { generic => sub { qw(uim-gtk uim) } },
+ langs => 'ja',
+ packages => {
+ generic => sub { qw(uim-gtk uim) },
+ },
},
- xcin => {
- XIM => 'xcin',
- XIM_PROGRAM => 'xcin',
- XMODIFIERS => '@im=xcin-zh_TW',
- GTK_IM_MODULE => 'xim',
- QT_IM_MODULE => 'xim',
- },
'x-unikey' => {
GTK_IM_MODULE => 'xim',
- QT_IM_MODULE => 'xim',
XMODIFIERS => '@im=unikey',
+ langs => 'vi',
},
);
-sub get_ims() { keys %IM_config }
-
-
-
#-------------------------------------------------------------
#
# Locale configuration regarding encoding/IM
@@ -703,6 +930,29 @@ my %IM_locale_specific_config = (
);
+=item get_ims ($lang)
+
+Returns the IMs that are usable for $lang.
+
+=cut
+
+sub get_ims {
+ my ($lang) = @_;
+ my $main_lang = analyse_locale_name($lang)->{main};
+
+ sort grep {
+ my $langs = $IM_config{$_}{langs};
+ !$langs || intersection([ $lang, $main_lang ],
+ [ split(' ', $langs) ]);
+ } keys %IM_config;
+}
+
+=item get_default_im ($lang)
+
+Returns the default IM to use for $lang.
+
+=cut
+
sub get_default_im {
my ($lang) = @_;
find {
@@ -710,27 +960,53 @@ sub get_default_im {
} keys %IM_config;
}
+=item IM2packages ($locale)
+
+Returns the packages to use for $locale if it's set to use an IM
+
+=cut
+
sub IM2packages {
my ($locale) = @_;
if ($locale->{IM}) {
require any;
my @sessions = any::sessions();
- $is_kde3 = member('KDE', @sessions);
- $is_kde4 = member('KDE4', @sessions);
- $_is_gtk = any { !/KDE/i } @sessions;
- @scim_bridges_qt_packages = (if_($is_kde3, 'scim-bridge-qt3'), if_($is_kde4, 'scim-bridge-qt4'));
+ $is_plasma = any { /plasma/ } @sessions;
my $per_lang = $IM_config{$locale->{IM}}{packages} || {};
- my $lang = analyse_locale_name($locale->{lang})->{main};
- my $packages = $per_lang->{$lang} || $per_lang->{generic};
- $packages ? $packages->() : $locale->{IM};
+ my $main_lang = analyse_locale_name($locale->{lang})->{main};
+ my $packages = $per_lang->{$main_lang} || $per_lang->{generic};
+ my @pkgs = ($packages ? $packages->() : $locale->{IM},
+ $per_lang->{common} ? $per_lang->{common}->() : ());
+ @pkgs;
} else { () }
}
-#- [0]: console font name
-#- [1]: unused
-#- [2]: console map (none if utf8)
-#- [3]: iocharset param for mount (utf8 if utf8)
-#- [4]: codepage parameter for mount (none if utf8)
+=back
+
+=head2 Charsets
+
+=over
+
+=item my %charsets;
+
+Key is encoding. Fields are:
+
+=over 4
+
+=item 0: console font name
+
+=item 1: unused
+
+=item 2: console map (none if utf8)
+
+=item 3: iocharset param for mount (utf8 if utf8)
+
+=item 4: codepage parameter for mount (none if utf8)
+
+=back
+
+=cut
+
my %charsets = (
#- chinese needs special console driver for text mode
"Big5" => [ undef, undef, undef, "big5", "950" ],
@@ -761,7 +1037,7 @@ my %charsets = (
"utf_cyr1" => [ "UniCyr_8x16", undef, undef, "utf8", undef ],
"utf_cyr2" => [ "koi8-k", undef, undef, "utf8", undef ],
"utf_deva" => [ undef, undef, undef, "utf8", undef ],
-"utf_ethi" => [ "Agafari-16", undef, undef, "utf8", undef ],
+"utf_ethi" => [ undef, undef, undef, "utf8", undef ],
"utf_geor" => [ "t_geors", undef, undef, "utf8", undef ],
"utf_guru" => [ undef, undef, undef, "utf8", undef ],
"utf_he" => [ undef, undef, undef, "utf8", undef ],
@@ -785,7 +1061,12 @@ my %charsets = (
"unicode" => [ "LatArCyrHeb-16", undef, undef, "utf8", undef ],
);
-#- for special cases not handled magically
+=item my %charset2kde_charset;
+
+For special cases not handled magically
+
+=cut
+
my %charset2kde_charset = (
gb2312 => 'gb2312.1980-0',
gbk => 'gb2312.1980-0',
@@ -799,6 +1080,12 @@ my %charset2kde_charset = (
#- -------------------
+=item l2console_font ($locale, $during_install)
+
+Returns console font name & console map (none if utf8 and if not during install);
+
+=cut
+
sub l2console_font {
my ($locale, $during_install) = @_;
my $c = $charsets{l2charset($locale->{lang}) || return} or return;
@@ -811,9 +1098,9 @@ sub get_kde_lang {
my ($locale, $o_default) = @_;
#- get it using
- #- echo C $(rpm -qp --qf "%{name}\n" /RPMS/kde-i18n-* | sed 's/kde-i18n-//')
+ #- echo C $(rpm -qp --qf "%{name}\n" /RPMS/kde4-l10n-* | sed 's/kde4-l10n-//')
my @valid_kde_langs = qw(C
-af ar az be bg bn br bs ca cs cy da de el en_GB eo es et eu fa fi fo fr ga gl he hi hr hsb hu id is it ja ko ku lo lt lv mi mk mn ms mt nb nds nl nn nso oc pa pl pt pt_BR ro ru se sk sl sr ss sv ta tg th tr uk uz ven vi wa wen xh zh_CN zh_TW zu);
+ar be bg ca cs csb da de el en_GB eo es et eu fa fi fr fy ga gl hi hu is it ja kk km ko ku lt lv mk ml nb nds ne nl nn pa pl pt pt_BR ro ru se sl sr sv ta th tr uk wa zh_CN zh_TW);
my %valid_kde_langs; @valid_kde_langs{@valid_kde_langs} = ();
my $valid_lang = sub {
@@ -858,8 +1145,15 @@ sub charset2kde_charset {
$r || $o_default || 'iso10646-1';
}
-#- font+size for different charsets; the field [0] is the default,
-#- others are overrridens for fixed(1), toolbar(2), menu(3) and taskbar(4)
+=item my %charset2kde_font;
+
+Font+size for different charsets; the field [0] is the default,
+others are overrridens for fixed(1), toolbar(2), menu(3) and taskbar(4)
+
+This is needed because KDE historically doesn't use fontconfig...
+
+=cut
+
my %charset2kde_font = (
'C' => [ "Sans,10", "Monospace,10" ],
'iso-8859-1' => [ "Sans,10", "Monospace,10" ],
@@ -916,9 +1210,14 @@ sub charset2kde_font {
"$r,-1,5,0,0,0,0,0,0";
}
-# this define pango name fonts (like "NimbusSans L") depending
-# on the "charset" defined by language array. This allows to selecting
-# an appropriate font for each language for the installer only.
+=item my %charset2pango_font;
+
+This define pango name fonts (like "NimbusSans L") depending
+on the "charset" defined by language array. This allows to selecting
+an appropriate font for each language for the installer only.
+
+=cut
+
my %charset2pango_font = (
'utf_geor' => "Sans 14",
'utf_taml' => "TSCu_Paranar 14",
@@ -928,10 +1227,30 @@ my %charset2pango_font = (
'default' => "DejaVu Sans 12"
);
+=item charset2pango_font ($charset)
+
+Returns the font to use with $charset or the default one if non is set
+
+=cut
+
sub charset2pango_font {
my ($charset) = @_;
- $charset2pango_font{exists $charset2pango_font{$charset} ? $charset : 'default'};
+ $charset2pango_font{$charset} || $charset2pango_font{default};
+}
+
+=item charset2css_font ($charset)
+
+Returns the font to use with $charset or the default one if non is set
+
+=cut
+
+sub charset2css_font {
+ my ($charset) = @_;
+
+ my $font = $charset2pango_font{$charset} || $charset2pango_font{default};
+ my ($familly, $size) = $font =~ /(.*) (\d+)$/;
+ return "font-family: $familly; font-size: ${size}pt;";
}
sub l2pango_font {
@@ -944,6 +1263,24 @@ sub l2pango_font {
return $font;
}
+sub l2css_font {
+ my ($lang) = @_;
+
+ my $charset = l2charset($lang) or log::l("no charset found for lang $lang!"), return;
+ my $font = charset2css_font($charset);
+ log::l("lang:$lang charset:$charset font:$font consolefont:$charsets{$charset}[0]");
+
+ return $font;
+}
+
+=back
+
+=head1 Other functions
+
+=over
+
+=cut
+
sub set {
my ($locale, $b_translate_for_console) = @_;
@@ -984,7 +1321,7 @@ sub pack_langs {
}
sub system_locales_to_ourlocale {
- my ($locale_lang, $locale_country) = @_;
+ my ($locale_lang, $locale_country, $o_country) = @_;
my $locale = {};
my $h = analyse_locale_name($locale_lang);
my $locale_lang_no_encoding = join('_', $h->{main}, if_($h->{country}, $h->{country}));
@@ -992,11 +1329,22 @@ sub system_locales_to_ourlocale {
$locale_lang_no_encoding : #- special lang's such as en_US pt_BR
$h->{main};
$locale->{lang} .= '@' . $h->{variant} if $h->{variant};
- $locale->{country} = analyse_locale_name($locale_country)->{country};
+ $locale->{country} = $o_country || analyse_locale_name($locale_country)->{country};
$locale->{utf8} = $h->{charset} && $h->{charset} eq 'UTF-8';
+
#- safe fallbacks
$locale->{lang} ||= 'en_US';
$locale->{country} ||= 'US';
+
+ $locale;
+}
+
+sub lang_to_ourlocale {
+ my ($lang) = @_;
+
+ my $locale = system_locales_to_ourlocale($lang);
+ $locale->{utf8} ||= utf8_should_be_needed($locale);
+ lang_changed($locale);
$locale;
}
@@ -1008,20 +1356,30 @@ sub lang_changed {
$locale->{IM} = get_default_im($locale->{lang});
}
+=item read($b_user_only)
+
+Read locale settings from files.
+If $b_user_only is set, reads the user config, else read the system config.
+
+=cut
+
sub read {
my ($b_user_only) = @_;
- my ($f1, $f2) = ("$::prefix$ENV{HOME}/.i18n", "$::prefix/etc/sysconfig/i18n");
+ my $f1 = "$::prefix$ENV{HOME}/.i18n";
+ my $f2 = "$::prefix/etc/locale.conf";
+ # (cg) Only use the 'legacy' config name when the new one doesn't exist
+ $f2 = "$::prefix/etc/sysconfig/i18n" if ! -e $f2 && -e "$::prefix/etc/sysconfig/i18n";
my %h = getVarsFromSh($b_user_only && -e $f1 ? $f1 : $f2);
- my $locale = system_locales_to_ourlocale($h{LC_MESSAGES} || 'en_US', $h{LC_MONETARY} || 'en_US');
+ # Fill in defaults (from LANG= variable)
+ $h{$_} ||= $h{LANG} || 'en_US' foreach @locale_conf_fields;
+ my $locale = system_locales_to_ourlocale($h{LC_MESSAGES}, $h{LC_MONETARY}, $h{COUNTRY});
if (find { $h{$_} } @IM_i18n_fields) {
- my @l = grep { !/^scim/ || /\(default\)/ } keys %IM_config;
- foreach my $field ('XMODIFIERS', 'XIM_PROGRAM') {
- $h{$field} or next;
- my @m = grep { $h{$field} eq $IM_config{$_}{$field} } @l or last;
- @l = @m;
- }
- $locale->{IM} = $l[0] if @l;
+ my $current_IM = find {
+ my $i = $IM_config{$_};
+ every { !defined $i->{$_} || $h{$_} eq $i->{$_} } ('GTK_IM_MODULE', 'XMODIFIERS', 'XIM_PROGRAM');
+ } keys %IM_config;
+ $locale->{IM} = $current_IM if $current_IM;
}
$locale;
}
@@ -1043,6 +1401,7 @@ sub i18n_env {
my $h = {
XKB_IN_USE => '',
+ COUNTRY => $locale->{country},
(map { $_ => $locale_lang } qw(LANG LC_COLLATE LC_CTYPE LC_MESSAGES LC_TIME)),
LANGUAGE => getLANGUAGE($locale->{lang}, $locale->{country}, $locale->{utf8}),
(map { $_ => $locale_country } qw(LC_NUMERIC LC_MONETARY LC_ADDRESS LC_MEASUREMENT LC_NAME LC_PAPER LC_IDENTIFICATION LC_TELEPHONE))
@@ -1064,6 +1423,12 @@ sub write_and_install {
&write($locale, $b_user_only, $b_dont_touch_kde_files);
}
+=item write ($locale, $b_user_only, $b_dont_touch_kde_files)
+
+Save locale settings, either system ones or per user ones (if $b_user_only is set).
+
+=cut
+
sub write {
my ($locale, $b_user_only, $b_dont_touch_kde_files) = @_;
@@ -1102,7 +1467,7 @@ sub write {
foreach (@IM_i18n_fields) {
$h->{$_} = $IM_config{$locale->{IM}}{$_};
}
- # $h->{QT_IM_MODULE} = $h->{GTK_IM_MODULE};
+ $h->{QT_IM_MODULE} ||= $h->{GTK_IM_MODULE};
if (ref $h->{XIM_PROGRAM}) {
$h->{XIM_PROGRAM} =
@@ -1121,9 +1486,27 @@ sub write {
my $file = $b_user_only ? "$ENV{HOME}/.i18n" : '/etc/sysconfig/i18n';
log::explanations(qq(Setting l10n configuration in "$file"));
- setVarsInSh($::prefix . $file, $h);
-
- configure_hal($locale) if !$b_user_only;
+ setVarsInShMode($::prefix . $file, 0644, $h);
+
+ if (!$b_user_only) {
+ $file = '/etc/locale.conf';
+ log::explanations(qq(Setting locale configuration in "$file"));
+ # Only include valid fields and ommit any that are the same as LANG to make it cleaner
+ # (cleanup logic copied from systemd)
+ my @filtered_keys = grep { exists $h->{$_} && ($_ eq 'LANG' || !exists $h->{LANG} || $h->{$_} ne $h->{LANG}) } @locale_conf_fields;
+ my @filtered_input = grep { exists $h->{$_} } @IM_i18n_fields;
+ push @filtered_keys, @filtered_input;
+ push @filtered_keys, 'COUNTRY' if exists $h->{COUNTRY};
+ my $h2 = { map { $_ => $h->{$_} } @filtered_keys };
+ setVarsInShMode($::prefix . $file, 0644, $h2);
+
+ if ($h->{SYSFONT}) {
+ $file = '/etc/vconsole.conf';
+ $h2 = { 'FONT' => $h->{SYSFONT} };
+ $h2->{FONT_UNIMAP} = $h->{SYSFONTACM} if $h->{SYSFONTACM};
+ addVarsInShMode($::prefix . $file, 0644, $h2);
+ }
+ }
run_program::rooted($::prefix, 'grub-gfxmenu', '--quiet', '--lang', $locale->{lang}) if !$b_user_only;
@@ -1134,8 +1517,12 @@ sub write {
));
eval {
- my %dir_defaults = read_gnomekderc("$::prefix/etc/kderc", 'Directories-default');
- my $confdir = $::prefix . ($b_user_only ? "$ENV{HOME}/.kde" : first(split(',', $dir_defaults{prefixes})) || "/etc/kde") . '/share/config';
+ my $confdir = $::prefix . ($b_user_only ? "$ENV{HOME}/.kde" : do {
+ my $kderc = $::prefix ? common::expand_symlinks_with_absolute_symlinks_in_prefix($::prefix, '/etc/kderc') : '/etc/kderc';
+ log::l("reading $kderc");
+ my %dir_defaults = read_gnomekderc($kderc, 'Directories-default');
+ first(split(',', $dir_defaults{prefixes})) || "/etc/kde";
+ }) . '/share/config';
-d $confdir or die 'not configuring kde config files since it is not installed/used';
@@ -1150,7 +1537,7 @@ sub write {
if (!$b_user_only) {
my $kde_charset = charset2kde_charset(l2charset($locale->{lang}));
my $welcome = common::to_utf8(N("Welcome to %s", '%n'));
- log::explanations(qq(Configuring KDM/MdkKDM));
+ log::explanations(qq(Configuring KDM));
substInFile {
s/^(GreetString)=.*/$1=$welcome/;
s/^(Language)=.*/$1=$locale->{lang}/;
@@ -1168,58 +1555,14 @@ sub write {
}
} if !$b_dont_touch_kde_files;
-}
-
-sub configure_hal {
- my ($locale) = @_;
- my $option = sub {
- my ($cat, $val) = @_;
- qq(\t\t<merge key="$cat.policy.mount_option.$val" type="bool">true</merge>);
- };
- my %options = (fs_options($locale), utf8 => 1);
- my %known_options = (
- auto => [ 'iocharset', 'codepage' ],
- vfat => [ 'iocharset', 'codepage' ],
- msdos => [ 'iocharset', 'codepage' ],
- ntfs => [ 'iocharset', 'utf8' ],
- cdrom => [ 'iocharset', 'codepage', 'utf8' ],
- );
- my $options = sub {
- my ($cat, $name) = @_;
- join("\n", map {
- $option->($cat, $_ eq 'utf8' ? $_ : "$_=$options{$_}");
- } grep { $options{$_} } @{$known_options{$name}});
- };
- my $options_per_fs = join('', map {
- my $s = $options->('volume', $_);
- $s && sprintf(<<'EOF', $_, $s);
- <match key="volume.fstype" string="%s">
-%s
- </match>
-EOF
- } 'auto', 'vfat', 'msdos', 'ntfs');
-
- output_p("$::prefix/usr/share/hal/fdi/30osvendor/locale-policy.fdi",
- sprintf(<<'EOF', $options_per_fs, $options->('storage', 'cdrom')));
-<?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- -->
-<deviceinfo version="0.2">
-
- <device>
- <match key="block.is_volume" bool="true">
- <match key="volume.fsusage" string="filesystem">
-
-%s
- </match>
- </match>
-
- <match key="storage.drive_type" string="cdrom">
-%s
- </match>
- </device>
-
-</deviceinfo>
-EOF
+ #- update alternatives for OpenOffice/BrOffice if present
+ foreach my $name (grep { /^oobr_bootstraprc/ } all("$::prefix/var/lib/alternatives/")) {
+ my $alternative = common::get_alternatives($name) or next;
+ my $wanted = $locale->{lang} eq 'pt_BR' ? 'bootstraprc.bro' : 'bootstraprc.ooo';
+ my $path = find { basename($_) eq $wanted } map { $_->{file} } @{$alternative->{alternatives}};
+ common::symlinkf_update_alternatives($name, $path) if $path;
+ }
}
sub configure_kdeglobals {
@@ -1258,6 +1601,12 @@ sub configure_kdeglobals {
));
}
+=item bindtextdomain()
+
+Binds the translation domains with the proper encoding (UTF-8).
+
+=cut
+
sub bindtextdomain() {
#- if $::prefix is set, search for libDrakX.mo in locale_special
#- NB: not using $::isInstall to make it work more easily at install and standalone
@@ -1272,6 +1621,13 @@ sub bindtextdomain() {
$localedir;
}
+=item load_mo ($o_lang)
+
+Used by the installer: returns the firste existing .mo file to load according to $o_lang.
+If it's not set, we rely on environment variables.
+
+=cut
+
sub load_mo {
my ($o_lang) = @_;
@@ -1288,13 +1644,24 @@ sub load_mo {
}
-#- used in share/list.xml during "make get_needed_files"
+=item console_font_files()
+
+Used in share/list.xml during "make get_needed_files"
+
+=cut
+
sub console_font_files() {
map { -e $_ ? $_ : "$_.gz" }
(map { my $p = "/usr/lib/kbd/consolefonts/$_"; -e "$p.psfu" || -e "$p.psfu.gz" ? "$p.psfu" : "$p.psf" } uniq grep { $_ } map { $_->[0] } values %charsets),
(map { "/usr/lib/kbd/consoletrans/${_}_to_uni.trans" } uniq grep { $_ } map { $_->[2] } values %charsets);
}
+=item load_console_font($locale)
+
+Loads the console font...
+
+=cut
+
sub load_console_font {
my ($locale) = @_;
return if $::local_install;
@@ -1305,6 +1672,12 @@ sub load_console_font {
run_program::run('setfont', '-v', $name || 'lat0-16', if_($acm, '-m', $acm));
}
+=item fs_options($locale)
+
+Returns the options suitable for filesystems mounting according to $locale.
+
+=cut
+
sub fs_options {
my ($locale) = @_;
if ($locale->{utf8}) {
@@ -1316,6 +1689,12 @@ sub fs_options {
}
}
+=item check()
+
+Used by 'make check_full'.
+
+=cut
+
sub check() {
$^W = 0;
my ($warnings, $errors) = (0, 0);
@@ -1367,4 +1746,8 @@ sub check() {
exit($errors ? 1 : 0);
}
+=back
+
+=cut
+
1;
diff --git a/perl-install/list_firmwares.pm b/perl-install/list_firmwares.pm
new file mode 100644
index 000000000..f1febc23b
--- /dev/null
+++ b/perl-install/list_firmwares.pm
@@ -0,0 +1,26 @@
+# generated using kernel-desktop-6.4.2-2.mga9
+# This list is autogenerated ; Do NOT alter manually.
+
+package list_firmwares;
+
+our @modules_with_nonfree_firmware =
+ qw(acenic advansys amdgpu ar5523 at76c50x-usb ath10k_pci ath3k ath6kl_sdio
+ ath6kl_usb ath9k_htc atmel bfa bna bnx2 bnx2x brcmfmac brcmsmac btintel
+ btmrvl_sdio btmtk btrtl carl9170 cassini ccp crypto_safexcel csiostor cx18
+ cx25840 cxgb3 cxgb4 dvb-ttpci dvb-ttusb-budget dvb-usb-af9035 dvb-usb-dib0700
+ e100 emi26 emi62 go7007 go7007-loader gspca_vicam hfi1 i915 ib_qib ice
+ io_edgeport io_ti ipw2100 ipw2200 ivtv iwl3945 iwl4965 iwlwifi kaweth keyspan
+ lgs8gxx libertas_cs libertas_sdio libertas_spi liquidio mlxsw_spectrum
+ mscc mt7601u mt7615e mt7663s mt7663u mt76x0e mt76x0u mt76x2e mt76x2u mt7915e
+ mt7921e mt7921s mt7921u mwifiex_sdio mwifiex_usb mwl8k myri10ge n5pf netxen_nic
+ nfp nouveau orinoco pvrusb2 qat_4xxx qat_c3xxx qat_c62x qat_dh895xcc qed
+ qla1280 qla2xxx qlcnic r8152 r8169 r8192e_pci r8712u radeon rp2 rt2800pci
+ rt2800usb rt61pci rt73usb rtl8188ee rtl8192ce rtl8192cu rtl8192de rtl8192ee
+ rtl8192se rtl8723be rtl8821ae rtl8xxxu rtw88_8723d rtw88_8821c rtw88_8822b
+ rtw88_8822c rtw89_8852a rtw89_8852b rtw89_8852c s2255drv saa7134-go7007
+ slicoss smc91c92_cs smsmdtv snd-hda-codec-ca0132 snd-korg1212 snd-maestro3
+ snd-ymfpci starfire tehuti tg3 ti_usb_3410_5052 typhoon ueagle-atm ums-eneub6250
+ usb8xxx usbdux usbduxfast usbduxsigma vt6656_stage whiteheat wil6210 wilc1000
+ wl1251 wl12xx wl18xx xc4000 xc5000 yam);
+
+1;
diff --git a/perl-install/log.pm b/perl-install/log.pm
index 365aa323c..a0f7bd41d 100644
--- a/perl-install/log.pm
+++ b/perl-install/log.pm
@@ -1,4 +1,4 @@
-package log; # $Id$
+package log;
use diagnostics;
use strict;
diff --git a/perl-install/lvm.pm b/perl-install/lvm.pm
index 3bc670bad..bf212bd6f 100644
--- a/perl-install/lvm.pm
+++ b/perl-install/lvm.pm
@@ -1,4 +1,4 @@
-package lvm; # $Id$
+package lvm;
use diagnostics;
use strict;
@@ -12,12 +12,22 @@ use devices;
use fs::type;
use run_program;
+=head1 SYNOPSYS
+
+Manage LVM (PV, VG, LV)
+
+=head1 Functions
+
+=over 4
+
+=cut
+
#- for partition_table_xxx emulation
sub new {
my ($class, $name) = @_;
- $name =~ s/\W/_/g;
+ $name =~ s/[^\w-]/_/g;
$name = substr($name, 0, 63); # max length must be < NAME_LEN / 2 where NAME_LEN is 128
- bless { disks => [], VG_name => $name }, $class;
+ bless { disks => [], VG_name => $name, device => $name }, $class;
}
sub use_pt_type { 0 }
sub hasExtended { 0 }
@@ -29,17 +39,38 @@ sub cylinder_size {
$hd->{extent_size};
}
-init() or log::l("lvm::init failed");
+=item detect_durting_install()
+
+Explicitly scan VGs.
+
+=cut
+
+sub detect_during_install() {
+ run_program::run('lvm2', 'vgscan');
+ run_program::run('lvm2', 'vgchange', '-a', 'y');
+}
+
+=item init()
+
+Loads LVM modules and scan VGs (if in installer, not in standalone tool).
+
+=cut
sub init() {
devices::init_device_mapper();
- if ($::isInstall) {
- run_program::run('lvm2', 'vgscan');
- run_program::run('lvm2', 'vgchange', '-a', 'y');
- }
+ detect_during_install() if $::isInstall || $::isLiveInstall;
1;
}
+init() or log::l("lvm::init failed");
+
+=item lvm_cmd(...)
+
+Run a LVM command, then rescan VG.
+See run_program::run() for arguments.
+
+=cut
+
sub lvm_cmd {
if (my $r = run_program::run('lvm2', @_)) {
$r;
@@ -47,18 +78,31 @@ sub lvm_cmd {
$? >> 8 == 98 or return;
#- sometimes, it needs running vgscan again, doing so:
+ log::l("forcing rescan because of prior failure");
run_program::run('lvm2', 'vgscan');
run_program::run('lvm2', @_);
}
}
+
+=item lvm_cmd_or_die($prog, @para)
+
+Like lvm_cmd() but die if there's an error.
+
+=cut
+
sub lvm_cmd_or_die {
my ($prog, @para) = @_;
- lvm_cmd($prog, @para) or die "$prog failed\n";
+ my @err;
+ lvm_cmd("2>", \@err, $prog, @para) or do {
+ my $err = $err[-1]; # prevent "Modification of non-creatable array value attempted"
+ chomp($err);
+ die "$prog failed: $err\n";
+ };
}
sub check {
my ($do_pkgs) = @_;
-
+ local $::prefix = ''; # We want lvm2 on current system
$do_pkgs->ensure_binary_is_installed('lvm2', 'lvm2') or return;
init();
1;
@@ -104,6 +148,12 @@ sub lv_nb_pvs {
listlength(lv_to_pvs($lv));
}
+=item get_lvs($lvm)
+
+Return list of LVs.
+
+=cut
+
sub get_lvs {
my ($lvm) = @_;
my @l = run_program::get_stdout('lvm2', 'lvs', '--noheadings', '--nosuffix', '--units', 's', '-o', 'lv_name', $lvm->{VG_name}) =~ /(\S+)/g;
@@ -111,13 +161,20 @@ sub get_lvs {
[
map {
my $device = "$lvm->{VG_name}/$_";
- my $fs_type = -e "/dev/$device" && fs::type::fs_type_from_magic({ device => $device });
-
- { device => $device,
+ my $p = fs::wild_device::to_subpart("/dev/$device");
+ my $part = {
+ device => $device,
lv_name => $_,
rootDevice => $lvm->{VG_name},
- fs_type => $fs_type || 'ext2',
+ minor => $p->{minor},
+ major => $p->{major},
size => get_lv_size($device) };
+ if (my $type = -e "/dev/$device" && fs::type::type_subpart_from_magic($part)) {
+ put_in_hash($part, $type);
+ } else {
+ $part->{fs_type} = defaultFS();
+ }
+ $part;
} @l
];
}
@@ -163,10 +220,21 @@ sub lv_delete {
@$list = grep { $_ != $lv } @$list;
}
+sub suggest_lv_name_from_mnt_point {
+ my ($lv) = @_;
+ my $str = $lv->{mntpoint};
+ $str = "root" if $str eq '/';
+ $str =~ s!^/!!;
+ $str =~ s!/!_!g;
+ $str =~ s! !_!g;
+ 'lv_' . $str;
+}
+
sub suggest_lv_name {
my ($lvm, $lv) = @_;
my $list = $lvm->{primary}{normal} ||= [];
- $lv->{lv_name} ||= 1 + max(map { if_($_->{device} =~ /(\d+)$/, $1) } @$list);
+ $lv->{lv_name} ||= suggest_lv_name_from_mnt_point($lv);
+ $lv->{lv_name} ||= "lv_" . (1 + max(map { if_($_->{device} =~ /(\d+)$/, $1) } @$list));
}
sub lv_create {
@@ -216,4 +284,8 @@ sub create_singleton_vg {
add_to_VG($part, $lvm);
}
+=back
+
+=cut
+
1;
diff --git a/perl-install/messages.pm b/perl-install/messages.pm
index 354ebea19..b63f81b38 100644
--- a/perl-install/messages.pm
+++ b/perl-install/messages.pm
@@ -1,4 +1,4 @@
-package messages; # $Id$
+package messages;
use diagnostics;
use strict;
@@ -6,142 +6,116 @@ use strict;
use common;
sub main_license() {
-#-PO: keep the double empty lines between sections, this is formatted a la LaTeX
-N("Introduction
+ join("\n\n\n",
+ #-PO: Only write something if needed:
+ N("_: You can warn about unofficial translation here"),
+ main_license_raw()
+ );
+}
-The operating system and the different components available in the Mandriva Linux distribution
+sub main_license_raw() {
+ join("\n\n\n",
+N("Introduction"),
+
+N("The operating system and the different components available in the Mageia distribution
shall be called the \"Software Products\" hereafter. The Software Products include, but are not
restricted to, the set of programs, methods, rules and documentation related to the operating
-system and the different components of the Mandriva Linux distribution.
+system and the different components of the Mageia distribution, and any applications
+distributed with these products provided by Mageia's licensors or suppliers."),
-1. License Agreement
+N("1. License Agreement"),
-Please read this document carefully. This document is a license agreement between you and
-Mandriva S.A. which applies to the Software Products.
-By installing, duplicating or using the Software Products in any manner, you explicitly
+N("Please read this document carefully. This document is a license agreement between you and
+Mageia which applies to the Software Products.
+By installing, duplicating or using any of the Software Products in any manner, you explicitly
accept and fully agree to conform to the terms and conditions of this License.
If you disagree with any portion of the License, you are not allowed to install, duplicate or use
the Software Products.
Any attempt to install, duplicate or use the Software Products in a manner which does not comply
with the terms and conditions of this License is void and will terminate your rights under this
License. Upon termination of the License, you must immediately destroy all copies of the
-Software Products.
+Software Products."),
-2. Limited Warranty
+N("2. Limited Warranty"),
-The Software Products and attached documentation are provided \"as is\", with no warranty, to the
+#-PO: keep the double empty lines between sections, this is formatted a la LaTeX
+N("The Software Products and attached documentation are provided \"as is\", with no warranty, to the
extent permitted by law.
-Mandriva S.A. will, in no circumstances and to the extent permitted by law, be liable for any special,
-incidental, direct or indirect damages whatsoever (including without limitation damages for loss of
-business, interruption of business, financial loss, legal fees and penalties resulting from a court
-judgment, or any other consequential loss) arising out of the use or inability to use the Software
-Products, even if Mandriva S.A. has been advised of the possibility or occurrence of such
-damages.
+Neither Mageia nor its licensors or suppliers will, in any circumstances and to the extent
+permitted by law, be liable for any special, incidental, direct or indirect damages whatsoever
+(including without limitation damages for loss of business, interruption of business, financial
+loss, legal fees and penalties resulting from a court judgment, or any other consequential loss)
+arising out of the use or inability to use the Software Products, even if Mageia or its
+licensors or suppliers have been advised of the possibility or occurrence of such damages.
LIMITED LIABILITY LINKED TO POSSESSING OR USING PROHIBITED SOFTWARE IN SOME COUNTRIES
-To the extent permitted by law, Mandriva S.A. or its distributors will, in no circumstances, be
-liable for any special, incidental, direct or indirect damages whatsoever (including without
-limitation damages for loss of business, interruption of business, financial loss, legal fees
-and penalties resulting from a court judgment, or any other consequential loss) arising out
-of the possession and use of software components or arising out of downloading software components
-from one of Mandriva Linux sites which are prohibited or restricted in some countries by local laws.
+To the extent permitted by law, neither Mageia nor its licensors, suppliers or
+distributors will, in any circumstances, be liable for any special, incidental, direct or indirect
+damages whatsoever (including without limitation damages for loss of business, interruption of
+business, financial loss, legal fees and penalties resulting from a court judgment, or any
+other consequential loss) arising out of the possession and use of software components or
+arising out of downloading software components from one of Mageia sites which are
+prohibited or restricted in some countries by local laws.
This limited liability applies to, but is not restricted to, the strong cryptography components
included in the Software Products.
+However, because some jurisdictions do not allow the exclusion or limitation of liability for
+consequential or incidental damages, the above limitation may not apply to you."),
-3. The GPL License and Related Licenses
+N("3. The GPLv2 License and Related Licenses"),
-The Software Products consist of components created by different persons or entities. Most
-of these components are governed under the terms and conditions of the GNU General Public
-Licence, hereafter called \"GPL\", or of similar licenses. Most of these licenses allow you to use,
-duplicate, adapt or redistribute the components which they cover. Please read carefully the terms
-and conditions of the license agreement for each component before using any component. Any question
-on a component license should be addressed to the component author and not to Mandriva.
-The programs developed by Mandriva S.A. are governed by the GPL License. Documentation written
-by Mandriva S.A. is governed by a specific license. Please refer to the documentation for
-further details.
+N("The Software Products consist of components created by different persons or entities.
+Most of these licenses allow you to use, duplicate, adapt or redistribute the components which
+they cover. Please read carefully the terms and conditions of the license agreement for each component
+before using any component. Any question on a component license should be addressed to the component
+licensor or supplier and not to Mageia.
+The programs developed by Mageia are governed by the GPLv2 License. Documentation written
+by Mageia is governed by \"%s\" License.", "CC-By-SA"),
-4. Intellectual Property Rights
+N("4. Intellectual Property Rights"),
-All rights to the components of the Software Products belong to their respective authors and are
+N("All rights to the components of the Software Products belong to their respective authors and are
protected by intellectual property and copyright laws applicable to software programs.
-Mandriva S.A. reserves its rights to modify or adapt the Software Products, as a whole or in
-parts, by all means and for all purposes.
-\"Mandriva\", \"Mandriva Linux\" and associated logos are trademarks of Mandriva S.A.
+Mageia and its suppliers and licensors reserves their rights to modify or adapt the Software
+Products, as a whole or in parts, by all means and for all purposes.
+\"Mageia\" and associated logos are trademarks of %s", "Mageia.Org"),
-5. Governing Laws
+N("5. Governing Laws"),
-If any portion of this agreement is held void, illegal or inapplicable by a court judgment, this
+N("If any portion of this agreement is held void, illegal or inapplicable by a court judgment, this
portion is excluded from this contract. You remain bound by the other applicable sections of the
agreement.
The terms and conditions of this License are governed by the Laws of France.
All disputes on the terms of this license will preferably be settled out of court. As a last
resort, the dispute will be referred to the appropriate Courts of Law of Paris - France.
-For any question on this document, please contact Mandriva S.A.
-");
+For any question on this document, please contact Mageia."),
+ warning_about_patents()
+ );
}
sub warning_about_patents() {
N("Warning: Free Software may not necessarily be patent free, and some Free
-Software included may be covered by patents in your country. For example, the
-MP3 decoders included may require a licence for further usage (see
-http://www.mp3licensing.com for more details). If you are unsure if a patent
-may be applicable to you, check your local laws.");
-}
-sub com_license() {
-#-PO: keep the double empty lines between sections, this is formatted a la LaTeX
-N("
-Warning
-
-Please read carefully the terms below. If you disagree with any
-portion, you are not allowed to install the next CD media. Press 'Refuse'
-to continue the installation without using these media.
-
-
-Some components contained in the next CD media are not governed
-by the GPL License or similar agreements. Each such component is then
-governed by the terms and conditions of its own specific license.
-Please read carefully and comply with such specific licenses before
-you use or redistribute the said components.
-Such licenses will in general prevent the transfer, duplication
-(except for backup purposes), redistribution, reverse engineering,
-de-assembly, de-compilation or modification of the component.
-Any breach of agreement will immediately terminate your rights under
-the specific license. Unless the specific license terms grant you such
-rights, you usually cannot install the programs on more than one
-system, or adapt it to be used on a network. In doubt, please contact
-directly the distributor or editor of the component.
-Transfer to third parties or copying of such components including the
-documentation is usually forbidden.
-
-
-All rights to the components of the next CD media belong to their
-respective authors and are protected by intellectual property and
-copyright laws applicable to software programs.
-");
+Software included may be covered by patents in your country. For example, our
+tainted version of VLC contains components that may require a license for
+further usage (see https://www.videolan.org/press/patents.html for more
+details). If you are unsure if a patent may be applicable to you, check your
+local laws.");
}
sub install_completed() {
-#-PO: keep the double empty lines between sections, this is formatted a la LaTeX
-N("Congratulations, installation is complete.
-Remove the boot media and press Enter to reboot.
-
-
-For information on fixes which are available for this release of Mandriva Linux,
-consult the Errata available from:
-
-
-%s
-
-
-Information on configuring your system is available in the post
-install chapter of the Official Mandriva Linux User's Guide.",
-'http://www.mandriva.com/en/security/advisories');
+ join("\n\n\n",
+ N("Congratulations, installation is complete.
+Remove the installation medium and press Enter to reboot."),
+ N("For information on fixes which are available for this release of Mageia,
+consult the Errata available from:\n%s", 'http://www.mageia.org/'),
+ N("After rebooting and logging into Mageia, you will see the MageiaWelcome screen.
+It is full of very useful information and links.")
+ );
}
1;
diff --git a/perl-install/mirror.pm b/perl-install/mirror.pm
index acd0cd02c..11d55f06b 100644
--- a/perl-install/mirror.pm
+++ b/perl-install/mirror.pm
@@ -1,96 +1,106 @@
-package mirror; # $Id$
+package mirror;
use diagnostics;
use strict;
+use feature 'state';
use common;
use log;
-my %land2tzs = (
- N_("Australia") => [ 'Australia/Sydney' ],
- N_("Austria") => [ 'Europe/Vienna', 'Europe/Brussels', 'Europe/Berlin' ],
- N_("Belgium") => [ 'Europe/Brussels', 'Europe/Paris', 'Europe/Berlin' ],
- N_("Brazil") => [ 'Brazil/East' ],
- N_("Canada") => [ 'Canada/Atlantic', 'Canada/Eastern' ],
- N_("Costa Rica") => [ 'America/Costa_Rica' ],
- N_("Czech Republic") => [ 'Europe/Prague', 'Europe/Berlin' ],
- N_("Denmark") => [ 'Europe/Copenhagen', 'Europe/Berlin' ],
- N_("Estonia") => [ 'Europe/Tallinn', 'Europe/Helsinki' ],
- N_("Finland") => [ 'Europe/Helsinki', 'Europe/Tallinn' ],
- N_("France") => [ 'Europe/Paris', 'Europe/Brussels', 'Europe/Berlin' ],
- N_("Germany") => [ 'Europe/Berlin', 'Europe/Prague' ],
- N_("Greece") => [ 'Europe/Athens', 'Europe/Prague' ],
- N_("Hungary") => [ 'Europe/Budapest' ],
- N_("Ireland") => [ 'Europe/Dublin', 'Europe/London' ],
- N_("Israel") => [ 'Asia/Tel_Aviv' ],
- N_("Italy") => [ 'Europe/Rome', 'Europe/Brussels', 'Europe/Paris' ],
- N_("Japan") => [ 'Asia/Tokyo', 'Asia/Seoul' ],
- N_("Netherlands") => [ 'Europe/Amsterdam', 'Europe/Brussels', 'Europe/Berlin' ],
- N_("New Zealand") => [ 'Pacific/Auckland' ],
- N_("Norway") => [ 'Europe/Oslo', 'Europe/Stockholm' ],
- N_("Poland") => [ 'Europe/Warsaw' ],
- N_("Portugal") => [ 'Europe/Lisbon', 'Europe/Madrid' ],
- N_("Russia") => [ 'Europe/Moscow', ],
- N_("Slovakia") => [ 'Europe/Bratislava' ],
- N_("South Africa") => [ 'Africa/Johannesburg' ],
- N_("Spain") => [ 'Europe/Madrid', 'Europe/Lisbon' ],
- N_("Sweden") => [ 'Europe/Stockholm', 'Europe/Oslo' ],
- N_("Switzerland") => [ 'Europe/Zurich', 'Europe/Berlin', 'Europe/Brussels' ],
- N_("Taiwan") => [ 'Asia/Taipei', 'Asia/Seoul' ],
- N_("Thailand") => [ 'Asia/Bangkok', 'Asia/Seoul' ],
- N_("United States") => [ 'America/New_York', 'Canada/Atlantic', 'Asia/Tokyo', 'Australia/Sydney', 'Europe/Paris' ],
- );
+=head1 SYNOPSYS
+
+B<mirror> enables to manage Mageia distribution mirrors
+
+=head1 Functions
+
+=over
+
+=cut
+
+=item mirror2text($mirror)
+
+Returns a displayable string from a mirror struct
+
+=cut
sub mirror2text {
my ($mirror) = @_;
translate($mirror->{country}) . '|' . $mirror->{host} . ($mirror->{method} ? " ($mirror->{method})" : '');
}
+=item register_downloader($func)
+
+Sets a downloader program
+
+=cut
+
my $downloader;
sub register_downloader {
my ($func) = @_;
$downloader = $func;
}
+sub _mirrors_raw_install {
+ my ($list) = @_;
+ require install::http;
+ my $f = install::http::getFile($list, "strict-certificate-check" => 1) or die "mirror list not found";
+ local $SIG{ALRM} = sub { die "timeout" };
+ alarm 60;
+ log::l("using mirror list $list");
+ my @lines;
+ push @lines, $_ while <$f>;
+ alarm 0;
+ @lines;
+}
+
+sub _mirrors_raw_standalone {
+ my ($list) = @_;
+ my @lines;
+ if (ref($downloader)) {
+ @lines = $downloader->($list);
+ @lines or die "mirror list not found";
+ } else {
+ die "Missing download callback";
+ }
+ @lines;
+}
+
+=item mirrors_raw($product_id)
+
+Returns a list of mirrors hash refs from http://mirrors.mageia.org
+
+Note that in standalone mode, one has to actually use register_downloader()
+first in order to provide a downloader callback.
+
+=cut
+
sub mirrors_raw {
- my ($product_id, $o_arch) = @_;
+ my ($product_id) = @_;
#- contact the following URL to retrieve the list of mirrors.
- #- http://wiki.mandriva.com/en/Product_id
+ #- http://wiki.mageia.org/en/Product_id
my $type = lc($product_id->{type}); $type =~ s/\s//g;
- local $product_id->{arch} = $o_arch if $o_arch;
- my $list = "http://api.mandriva.com/mirrors/$type.$product_id->{version}.$product_id->{arch}.list";
+ my $list = "https://mirrors.mageia.org/api/$type.$product_id->{version}.$product_id->{arch}.list?product=$product_id->{product}";
log::explanations("trying mirror list from $list");
- my @lines;
- if ($::isInstall) {
- require install::http;
- my $f = install::http::getFile($list) or die "mirror list not found";
- local $SIG{ALRM} = sub { die "timeout" };
- alarm 60;
- log::l("using mirror list $list");
- push @lines, $_ while <$f>;
- install::http::close();
- alarm 0;
- } else {
- if (ref($downloader)) {
- @lines = $downloader->($list);
- @lines or die "mirror list not found";
- } else {
- die "Missing download callback";
- }
- }
+ my @lines = $::isInstall ? _mirrors_raw_install($list) : _mirrors_raw_standalone($list);
map { common::parse_LDAP_namespace_structure(chomp_($_)) } @lines;
}
+=item list($product_id, $type)
+
+
+Returns a list of mirrors hash refs as returned by mirrors_raw() but filters it.
+
+One can select the type of mirrors ('distrib', 'updates', ...) or 'all'
+
+=cut
+
sub list {
- my ($product_id, $type, $o_arch) = @_;
+ my ($product_id, $type) = @_;
our @mirrors_raw;
- my $prev_arch if 0;
- undef @mirrors_raw if $prev_arch ne $o_arch;
- $prev_arch = $o_arch || arch();
if (!@mirrors_raw) {
- @mirrors_raw = eval { mirrors_raw($product_id, $o_arch) };
+ @mirrors_raw = eval { mirrors_raw($product_id) };
if (my $err = $@) {
log::explanations("failed to download mirror list");
die $err;
@@ -99,27 +109,84 @@ sub list {
}
my @mirrors = grep {
- ($_->{method}, $_->{host}, $_->{dir}) = $_->{url} =~ m!^(ftp|http)://(.*?)(/.*)!;
- $_->{method} && ($type eq 'all' || $_->{type} eq $type);
+ ($_->{method}, $_->{host}, $_->{dir}) = $_->{url} =~ m!^(ftp|https?)://(.*?)(/.*)!;
+ $_->{method} && (member($type, 'all', $_->{type}));
} @mirrors_raw or log::explanations("no mirrors of type $type"), return;
@mirrors && \@mirrors;
}
+=item nearest($timezone, $mirrors)
+
+Randomly returns one of the nearest mirror
+
+=cut
+
+#- TODO: The following code was forked from urpm::mirrors. Consider refactoring.
+
sub nearest {
my ($timezone, $mirrors) = @_;
- my (@country, @zone);
- foreach my $mirror (@$mirrors) {
- my @tzs = @{$land2tzs{$mirror->{country}} || []};
- eval { push @{$country[find_index { $_ eq $timezone } @tzs]}, $mirror };
- eval { push @{$zone[find_index { ((split '/')[0] eq (split '/', $timezone)[0]) } @tzs]}, $mirror };
+ my ($latitude, $longitude, $country_code);
+
+ require Time::ZoneInfo;
+ if (my $zones = Time::ZoneInfo->new) {
+ if (($latitude, $longitude) = $zones->latitude_longitude_decimal($timezone)) {
+ $country_code = $zones->country($timezone);
+ }
+ }
+ defined $latitude && defined $longitude or return;
+
+ foreach (@$mirrors) {
+ $_->{latitude} || $_->{longitude} or next;
+ my $PI = 3.14159265358979;
+ my $x = $latitude - $_->{latitude};
+ my $y = ($longitude - $_->{longitude}) * cos($_->{latitude} / 180 * $PI);
+ $_->{proximity} = sqrt($x * $x + $y * $y);
}
- my @l = @country ? @country : @zone;
- shift @l while !$l[0] && @l;
-
- my @possible = @l ? ((@{$l[0]}) x 2, @{$l[1] || []}) : @$mirrors;
- $possible[rand @possible];
+ my ($best) = sort { $a->{proximity} <=> $b->{proximity} } @$mirrors;
+
+ foreach (@$mirrors) {
+ $_->{proximity_corrected} = $_->{proximity} * _random_correction();
+ $_->{proximity_corrected} *= _between_country_correction($country_code, $_->{country}) if $best;
+ $_->{proximity_corrected} *= _between_continent_correction($best->{continent}, $_->{continent}) if $best;
+ $_->{proximity_corrected} *= _protocol_correction($_->{url});
+ }
+ ($best) = sort { $a->{proximity_corrected} <=> $b->{proximity_corrected} } @$mirrors;
+ $best;
+}
+
+# add +/- 5% random
+sub _random_correction() {
+ my $correction = 0.05;
+ 1 + (rand() - 0.5) * $correction * 2;
+}
+
+sub _between_country_correction {
+ my ($here, $mirror) = @_;
+ $here && $mirror or return 1;
+ $here eq $mirror ? 0.5 : 1;
}
+sub _between_continent_correction {
+ my ($here, $mirror) = @_;
+ $here && $mirror or return 1;
+ $here eq $mirror ? 0.5 : # favor same continent
+ $here eq 'SA' && $mirror eq 'NA' ? 0.9 : # favor going "South America" -> "North America"
+ 1;
+}
+
+sub _protocol_correction {
+ my ($url) = @_;
+ # favor encrypted protocols, then http
+ ( $url =~ m!https://! ) and return 0.7;
+ ( $url =~ m!ftps://! ) and return 0.8;
+ ( $url =~ m!http://! ) and return 0.9;
+ 1;
+}
+
+=back
+
+=cut
+
1;
diff --git a/perl-install/modalias.pm b/perl-install/modalias.pm
index 516a2dd01..e1b61edc0 100644
--- a/perl-install/modalias.pm
+++ b/perl-install/modalias.pm
@@ -13,6 +13,8 @@ my @config_groups = (
"/etc/modprobe.conf",
"/etc/modprobe.d",
],
+);
+my @system_groups = (
[
"/lib/module-init-tools/ldetect-lst-modules.alias",
],
@@ -43,8 +45,8 @@ sub parse_path {
} elsif (-f $path) {
foreach (cat_($path)) {
if (my ($alias, $class, $module) = $_ =~ $alias_re) {
- my ($vendor, $device) = alias_to_ids($alias);
if (member($class, @classes)) {
+ my ($vendor, $device) = alias_to_ids($alias);
if ($vendor) {
$group->{$class} ||= {};
$group->{$class}{$vendor} ||= {};
@@ -70,23 +72,25 @@ sub parse_file_modules {
\%modules;
}
-sub get_alias_groups() {
+sub get_alias_groups {
+ my ($o_skip_config) = @_;
+ #- FIXME: only o_skip_config from the first call is considered
@alias_groups = map {
my $group = {};
parse_path($group, $_) foreach @$_;
$group;
- } @config_groups unless @alias_groups;
+ } if_(!$o_skip_config, @config_groups), @system_groups unless @alias_groups;
@alias_groups;
}
sub get_modules {
- my ($modalias) = @_;
+ my ($modalias, $o_skip_config) = @_;
my ($class) = $modalias =~ /^([^:]+):\S+$/;
my ($vendor, $device) = alias_to_ids($modalias);
$class && member($class, @classes) or return;
require File::FnMatch;
- foreach my $group (get_alias_groups()) {
+ foreach my $group (get_alias_groups($o_skip_config)) {
my @aliases;
foreach my $subgroup ($group->{$class}{$vendor}{$device}, $group->{$class}{other}) {
foreach (group_by2(@$subgroup)) {
diff --git a/perl-install/modules.pm b/perl-install/modules.pm
index 53f5b6e13..abeb0b366 100644
--- a/perl-install/modules.pm
+++ b/perl-install/modules.pm
@@ -1,4 +1,4 @@
-package modules; # $Id$
+package modules;
use strict;
@@ -11,7 +11,6 @@ use modules::any_conf;
sub modules_descriptions() {
my $f = '/lib/modules/' . c::kernel_version() . '/modules.description';
- -e $f or $f = '/modules/modules.description';
map { my ($m, $d) = /(\S+)\s+(.*)/; $m =~ s/-/_/g; ($m => $d) } cat_($f);
}
@@ -34,7 +33,9 @@ my %mappings_24_26 = (
"dc395x_trm" => "dc395x",
);
my %mappings_26_24 = reverse %mappings_24_26;
-$mappings_26_24{'uhci_hcd'} = 'usb_uhci';
+$mappings_26_24{uhci_hcd} = 'usb_uhci';
+
+my @parallel_zip_modules = qw(imm ppa);
sub mapping_24_26 {
my ($modname) = @_;
@@ -58,13 +59,45 @@ sub module_is_available {
#-###############################################################################
#- module loading
#-###############################################################################
+
+sub filter_loaded_modules {
+ my ($lm) = @_;
+
+ my $l;
+
+ # try to detect built-in modules by looking at /sys/module
+ # unfortunately it does not work for all modules eg :
+ # - networks protocols like af_packet
+ # - filesystems
+ foreach my $mod (@$lm) {
+ $mod =~ s/-/_/g;
+ if (-d "/sys/module/$mod") {
+ log::l("$mod already loaded");
+ } elsif ($mod =~ /af_packet/) {
+ if (-f "/proc/net/packet") {
+ log::l("$mod already loaded");
+ } else {
+ push @$l, $mod;
+ }
+ } elsif (cat_("/proc/filesystems") =~ /$mod/) {
+ log::l("$mod already loaded");
+ } elsif ($mod =~ /serial/) {
+ # hack ... must find who tries to load the module serial
+ } else {
+ push @$l, $mod;
+ }
+ }
+ $l;
+}
+
# handles dependencies
sub load_raw {
- my ($l, $h_options) = @_;
+ my ($lm, $h_options) = @_;
+
+ my $l = filter_loaded_modules($lm);
+
if ($::testing || $::local_install) {
log::l("i would load module $_ ($h_options->{$_})") foreach @$l;
- } elsif ($::isInstall) {
- load_raw_install($l, $h_options);
} else {
run_program::run('/sbin/modprobe', $_, split(' ', $h_options->{$_}))
or !run_program::run('/sbin/modprobe', '-n', $_) #- ignore missing modules
@@ -75,26 +108,20 @@ sub load_raw {
} elsif (member('usb_storage', @$l)) {
#- usb_storage is only modprobed when we know there is some scsi devices
#- so trying hard to wait for devices to be detected
-
- #- first sleep the minimum time usb-stor-scan takes
- sleep 5; #- 5 == /sys/module/usb_storage/parameters/delay_use
- # then wait for usb-stor-scan to complete
- my $retry = 0;
- while ($retry++ < 10) {
- fuzzy_pidofs('usb-stor-scan') or last;
- sleep 1;
- log::l("waiting for usb_storage devices to appear (retry = $retry)");
- }
+ run_program::run('udevadm', 'settle');
}
}
sub load_with_options {
my ($l, $h_options) = @_;
my @l = map {
- dependencies_closure(cond_mapping_24_26($_));
+ if_(member($_, 'plip', @parallel_zip_modules), 'parport_pc'),
+ if_($_ eq 'vfat', 'nls_cp437', 'nls_iso8859_1'),
+ if_(member($_, qw(btrfs xfs)), 'crc32c', 'crc32c-intel'),
+ cond_mapping_24_26($_);
} @$l;
- @l = remove_loaded_modules(@l) or return;
+ @l = filter_out_loaded_modules(@l) or return;
my %options = map { cond_mapping_24_26($_) => $h_options->{$_} } keys %$h_options;
load_raw(\@l, \%options);
@@ -108,10 +135,10 @@ sub load {
sub load_and_configure {
my ($conf, $module, $o_options) = @_;
- my @l = remove_loaded_modules(dependencies_closure(cond_mapping_24_26($module)));
+ my @l = filter_out_loaded_modules(cond_mapping_24_26($module));
load_raw(\@l, { cond_mapping_24_26($module) => $o_options });
- if (member($module, 'imm', 'ppa')
+ if (member($module, @parallel_zip_modules)
&& ! -d "/proc/sys/dev/parport/parport0/devices/$module") {
log::l("$module loaded but is not useful, removing");
unload($module);
@@ -138,13 +165,6 @@ sub load_category {
if_($category =~ /scsi/,
if_(detect_devices::usbStorage(), 'usb_storage'),
),
- arch() =~ /ppc/ ? (
- if_($category =~ /scsi/,
- if_(detect_devices::has_mesh(), 'mesh'),
- if_(detect_devices::has_53c94(), 'mac53c94'),
- ),
- if_($category =~ /net/, 'bmac', 'gmac', 'mace', 'airport'),
- ) : (),
);
my @l = (
(map {
@@ -169,12 +189,9 @@ sub load_category {
sub load_parallel_zip {
my ($conf) = @_;
- arch() !~ /ppc/ or return;
-
- eval { load('parport_pc') };
grep {
eval { load_and_configure($conf, $_); 1 };
- } 'imm', 'ppa';
+ } @parallel_zip_modules;
}
#-###############################################################################
@@ -189,10 +206,9 @@ sub write_preload_conf {
push @l, detect_devices::probe_name('Module');
push @l, 'nvram' if $is_laptop;
push @l, map { $_->{driver} } detect_devices::probe_category($_) foreach qw(multimedia/dvb multimedia/tv various/agpgart various/laptop input/joystick various/crypto disk/card_reader);
- push @l, 'padlock' if cat_("/proc/cpuinfo") =~ /rng_en/;
- push @l, 'evdev' if any { $_->{Synaptics} || $_->{ALPS} || $_->{HWHEEL} } detect_devices::getInputDevices();
- push @l, 'asus_acpi' if $is_laptop && $manufacturer =~ m/^ASUS/;
- push @l, 'thinkpad_acpi' if $is_laptop && member($manufacturer, qw(IBM LENOVO));
+ push @l, 'padlock-aes', 'padlock-sha' if cat_("/proc/cpuinfo") =~ /rng_en/;
+ push @l, 'evdev' if detect_devices::hasTouchpad();
+ push @l, 'evdev' if any { $_->{HWHEEL} } detect_devices::getInputDevices();
push @l, 'hdaps' if $is_laptop && $manufacturer eq 'LENOVO';
append_to_modules_loaded_at_startup("$::prefix/etc/modprobe.preload", @l);
}
@@ -230,7 +246,7 @@ sub set_preload_modules {
sub loaded_modules() {
map { /(\S+)/ } cat_("/proc/modules");
}
-sub remove_loaded_modules {
+sub filter_out_loaded_modules {
my (@l) = @_;
difference2([ uniq(@l) ], [ map { my $s = $_; $s =~ s/_/-/g; $s, $_ } loaded_modules() ]);
}
@@ -240,16 +256,6 @@ sub read_already_loaded {
when_load($conf, $_) foreach reverse loaded_modules();
}
-sub name2file {
- my ($name) = @_;
- my $f = list_modules::modname2filename($name);
- if (!$f) {
- log::l("warning: unable to get module filename for $name");
- $f = $name;
- }
- $f . ".ko";
-}
-
sub when_load {
my ($conf, $name) = @_;
@@ -267,17 +273,17 @@ sub when_load_category {
if ($category =~ m,disk/ide,) {
$conf->add_probeall('ide-controller', $name);
- eval { load('ide_disk') };
- } elsif ($category =~ m,disk/(scsi|hardware_raid|sata|usb|firewire),) {
+ eval { load('ide_gd_mod') };
+ } elsif ($category =~ m,disk/(scsi|hardware_raid|sata|firewire|virtual),) {
$conf->add_probeall('scsi_hostadapter', $name);
eval { load('sd_mod') };
} elsif ($category eq 'bus/usb') {
$conf->add_probeall('usb-interface', $name);
- -f '/proc/bus/usb/devices' or eval {
- require fs::mount; fs::mount::usbfs('');
+ -f '/sys/kernel/debug/usb/devices' or eval {
+ require fs::mount; fs::mount::sys_kernel_debug('');
#- ensure keyboard is working, the kernel must do the job the BIOS was doing
sleep 4;
- load("usbkbd", "keybdev") if detect_devices::usbKeyboards();
+ load("usbhid") if detect_devices::usbKeyboards();
};
} elsif ($category eq 'bus/firewire') {
$conf->set_alias('ieee1394-controller', $name);
@@ -291,43 +297,4 @@ sub when_load_category {
}
}
-#-###############################################################################
-#- isInstall functions
-#-###############################################################################
-sub extract_modules {
- my ($dir, @modules) = @_;
- map {
- my $f = name2file($_);
- if (-e "/modules/$f.gz") {
- system("gzip -dc /modules/$f.gz > $dir/$f") == 0
- or unlink "$dir/$f";
- }
- "$dir/$f";
- } @modules;
-}
-
-sub load_raw_install {
- my ($l, $options) = @_;
-
- extract_modules('/tmp', @$l);
- my @failed = grep {
- my $m = '/tmp/' . name2file($_);
- if (-e $m) {
- my $stdout;
- my $rc = run_program::run('insmod', '2>', \$stdout, $m, split(' ', $options->{$_}));
- log::l(chomp_($stdout)) if $stdout;
- if ($rc) {
- unlink $m;
- '';
- }
- } else {
- log::l("missing module $_");
- 'error';
- }
- } @$l;
-
- die "insmod'ing module " . join(", ", @failed) . " failed" if @failed;
-
-}
-
1;
diff --git a/perl-install/modules/any_conf.pm b/perl-install/modules/any_conf.pm
index 855678dfd..c235e84f4 100644
--- a/perl-install/modules/any_conf.pm
+++ b/perl-install/modules/any_conf.pm
@@ -1,4 +1,4 @@
-package modules::any_conf; # $Id$
+package modules::any_conf;
use log;
use common;
@@ -139,10 +139,7 @@ sub write {
#- Substitute new config (if config has changed)
substInFile {
my ($type, $module, $val) = split(' ', chomp_($_), 3);
- if ($type eq 'post-install' && $module eq 'supermount') {
- #- remove the post-install supermount stuff.
- $_ = '';
- } elsif (member($type, $conf->handled_fields)) {
+ if (member($type, $conf->handled_fields)) {
my $new_val = $conf->{$module}{$type};
if (!$new_val) {
$_ = '';
@@ -203,11 +200,6 @@ sub read_raw {
s/#.*$//;
s/\s+$//;
- # Fix upgrade from ALSA < 0.9.0:
- s/\b(snd-card-)/snd-/g;
- # Fix upgrade for unified VIA driver:
- s/\b(snd-via686|snd-via8233)\b/snd-via82xx/g;
-
my ($type, $module, $val) = split(' ', $_, 3) or next;
$c{$module}{$type} = $val;
diff --git a/perl-install/modules/interactive.pm b/perl-install/modules/interactive.pm
index df462e0f9..dae135889 100644
--- a/perl-install/modules/interactive.pm
+++ b/perl-install/modules/interactive.pm
@@ -1,4 +1,4 @@
-package modules::interactive; # $Id$
+package modules::interactive;
use modules;
use common;
@@ -20,8 +20,9 @@ sub config_window {
return;
}
if ($in->ask_from(N("Module configuration"), N("You can configure each parameter of the module here."), \@l)) {
- my $options = join(' ', map { if_($conf{$_}, "$_=$conf{$_}") } keys %conf);
- if ($options) {
+ my $options = join(' ', map { if_($conf{$_} =~ /^\S+$/, "$_=$conf{$_}") } keys %conf);
+ my $old_options = $modules_conf->get_options($data->{driver});
+ if ($options ne $old_options) {
$modules_conf->set_options($data->{driver}, $options);
$modules_conf->write;
}
@@ -80,9 +81,9 @@ sub load_category__prompt_for_more {
my %category2text = (
'bus/usb' => N_("Installing driver for USB controller"),
- 'bus/firewire' => N_("Installing driver for firewire controller %s"),
- 'disk/ide|scsi|hardware_raid|sata|firewire' => N_("Installing driver for hard drive controller %s"),
- list_modules::ethernet_categories() => N_("Installing driver for ethernet controller %s"),
+ 'bus/firewire' => N_("Installing driver for firewire controller \"%s\""),
+ 'disk/card_reader|ide|scsi|hardware_raid|sata|firewire|virtual' => N_("Installing driver for hard disk drive controller \"%s\""),
+ list_modules::ethernet_categories() => N_("Installing driver for ethernet controller \"%s\""),
);
sub wait_load_module {
@@ -96,7 +97,7 @@ sub wait_load_module {
N("Installing driver for %s card %s", $category, $text);
}
};
- $in->wait_message('', $msg);
+ $in->wait_message(N("Configuring Hardware"), $msg);
}
sub load_module__ask_options {
diff --git a/perl-install/modules/modprobe_conf.pm b/perl-install/modules/modprobe_conf.pm
index 76f3fbee0..7989096f8 100644
--- a/perl-install/modules/modprobe_conf.pm
+++ b/perl-install/modules/modprobe_conf.pm
@@ -1,7 +1,8 @@
-package modules::modprobe_conf; # $Id$
+package modules::modprobe_conf;
use log;
use common;
+# perl_checker: require modules::any_conf
our @ISA = qw(modules::any_conf);
@@ -102,7 +103,7 @@ sub parse_non_virtual {
sub unparse_non_virtual {
my ($module, $mode, $before, $after) = @_;
($before ? "$before; " : '')
- . "/sbin/modprobe --first-time $mode $module"
+ . (($before || $after) ? "/sbin/modprobe --first-time $mode $module" : '')
. ($after ? " && { $after; /bin/true; }" : '');
}
diff --git a/perl-install/modules/modules_conf.pm b/perl-install/modules/modules_conf.pm
index 2bfc2ce65..be4b8fca4 100644
--- a/perl-install/modules/modules_conf.pm
+++ b/perl-install/modules/modules_conf.pm
@@ -1,7 +1,8 @@
-package modules::modules_conf; # $Id$
+package modules::modules_conf;
use log;
use common;
+# perl_checker: require modules::any_conf
our @ISA = qw(modules::any_conf);
diff --git a/perl-install/modules/parameters.pm b/perl-install/modules/parameters.pm
index 2af5ce951..36990b5d1 100644
--- a/perl-install/modules/parameters.pm
+++ b/perl-install/modules/parameters.pm
@@ -1,4 +1,4 @@
-package modules::parameters; # $Id$
+package modules::parameters;
use diagnostics;
use strict;
@@ -13,10 +13,6 @@ use modules;
sub parameters {
my ($module) = @_;
- if (!$::isStandalone && !$::testing) {
- ($module) = modules::extract_modules('/tmp', $module);
- }
-
map {
chomp;
(my $name, $_) = /(\w+):(.*)/s or warn "modules::parameters::parameters($module): unknown line\n";
diff --git a/perl-install/mygtk2.pm b/perl-install/mygtk2.pm
index 02beca234..6633decf3 100644
--- a/perl-install/mygtk2.pm
+++ b/perl-install/mygtk2.pm
@@ -2,6 +2,7 @@ package mygtk2;
use diagnostics;
use strict;
+use feature 'state';
our @ISA = qw(Exporter);
our @EXPORT = qw(gtknew gtkset gtkadd gtkval_register gtkval_modify);
@@ -11,7 +12,6 @@ use log;
use common;
use Gtk2;
-use Gtk2::Gdk::Keysyms;
sub init() {
!check_for_xserver() and print("Cannot be run in console mode.\n"), c::_exit(0);
@@ -19,11 +19,13 @@ sub init() {
Gtk2->init;
Locale::gettext::bind_textdomain_codeset($_, 'UTF8') foreach 'libDrakX', if_(!$::isInstall, 'libDrakX-standalone'),
+ if_($::isRestore, 'draksnapshot'), if_($::isInstall, 'urpmi'),
'drakx-net', 'drakx-kbd-mouse-x11', # shared translation
@::textdomains;
+ Glib->enable_exceptions2;
}
-init() unless ($::no_ugtk_init);
-Gtk2->croak_execeptions if (!$::no_ugtk_init || $::isInstall) && 0.95 < $Gtk2::VERSION;
+init() unless $::no_ugtk_init;
+Glib->enable_exceptions2 if $::isInstall;
@@ -116,6 +118,8 @@ sub _gtk {
$w->grab_focus if delete $opts->{grab_focus};
$w->set_padding(@{delete $opts->{padding}}) if exists $opts->{padding};
$w->set_sensitive(delete $opts->{sensitive}) if exists $opts->{sensitive};
+ $w->signal_connect(expose_event => delete $opts->{expose_event}) if exists $opts->{expose_event};
+ $w->signal_connect(realize => delete $opts->{realize}) if exists $opts->{realize};
(delete $opts->{size_group})->add_widget($w) if $opts->{size_group};
if (my $tip = delete $opts->{tip}) {
$global_tooltips ||= Gtk2::Tooltips->new;
@@ -129,12 +133,30 @@ sub _gtk {
gtkval_register($w, $show_ref, sub { $$show_ref ? $w->show : $w->hide });
}
+ if (my $sensitive_ref = delete $opts->{sensitive_ref}) {
+ my $set = sub { $w->set_sensitive($$sensitive_ref) };
+ gtkval_register($w, $sensitive_ref, $set);
+ $set->();
+ }
+
if (%$opts && !$opts->{allow_unknown_options}) {
internal_error("$action $class: unknown option(s) " . join(', ', keys %$opts));
}
$w;
}
+sub _gtk__Install_Button {
+ my ($w, $opts, $_class) = @_;
+ $opts->{child} = gtknew('HBox', spacing => 5,
+ children_tight => [
+ # FIXME: not RTL compliant (lang::text_direction_rtl() ? ...)
+ gtknew('Image', file => 'advanced_expander'),
+ gtknew('Label', text => delete $opts->{text}),
+ ],
+ );
+ $opts->{relief} = 'none';
+ _gtk__Button($w, $opts, 'Button');
+}
sub _gtk__Button { &_gtk_any_Button }
sub _gtk__ToggleButton { &_gtk_any_Button }
@@ -171,6 +193,9 @@ sub _gtk_any_Button {
$set->();
} elsif (exists $opts->{text}) {
$w->set_label(delete $opts->{text});
+ } elsif (exists $opts->{stock}) {
+ $w->set_label(delete $opts->{stock});
+ $w->set_use_stock(1);
}
if ($class eq 'Button') {
@@ -208,7 +233,7 @@ sub _gtk__CheckMenuItem {
$w;
}
-sub _gtk___SpinButton {
+sub _gtk__SpinButton {
my ($w, $opts) = @_;
if (!$w) {
@@ -228,12 +253,22 @@ sub _gtk__HScale {
if (!$w) {
$opts->{adjustment} ||= do {
- add2hash_($opts, { step_increment => 1, page_increment => 5, page_size => 1, value => delete $opts->{lower} });
+ add2hash_($opts, { step_increment => 1, page_increment => 5, page_size => 1 });
+ add2hash_($opts, { value => $opts->{lower} }) if !exists $opts->{value};
Gtk2::Adjustment->new(delete $opts->{value}, delete $opts->{lower}, (delete $opts->{upper}) + 1, delete $opts->{step_increment}, delete $opts->{page_increment}, delete $opts->{page_size});
};
$w = Gtk2::HScale->new(delete $opts->{adjustment});
}
+ $w->set_digits(delete $opts->{digits}) if exists $opts->{digits};
+ if (my $value_ref = delete $opts->{value_ref}) {
+ my $set = sub { $w->set_value($$value_ref) };
+ gtkval_register($w, $value_ref, $set);
+ $set->();
+ $w->signal_connect(value_changed => sub {
+ gtkval_modify($value_ref, $w->get_value, $set);
+ });
+ }
$w->signal_connect(value_changed => delete $opts->{value_changed}) if exists $opts->{value_changed};
$w;
}
@@ -261,12 +296,11 @@ sub _gtk__HSeparator { &_gtk_any_simple }
sub _gtk__Calendar { &_gtk_any_simple }
sub _gtk__DrawingArea {
- my ($w, $opts) = @_;
+ my ($w, $_opts) = @_;
if (!$w) {
$w = Gtk2::DrawingArea->new;
}
- $w->signal_connect(expose_event => delete $opts->{expose_event}) if exists $opts->{expose_event};
$w;
}
@@ -275,46 +309,74 @@ sub _gtk__Pixbuf {
if (!$w) {
my $name = delete $opts->{file} or internal_error("missing file");
- my $file = _find_imgfile($name) or internal_error("can not find image $name");
+ my $file = _find_imgfile($name) or internal_error("cannot find image $name");
if (my $size = delete $opts->{size}) {
$w = Gtk2::Gdk::Pixbuf->new_from_file_at_scale($file, $size, $size, 1);
} else {
$w = Gtk2::Gdk::Pixbuf->new_from_file($file);
}
+ $w = $w->flip(1) if delete $opts->{flip};
}
$w;
}
# Image_using_pixmap is rendered using DITHER_MAX which is much better on 16bpp displays
sub _gtk__Image_using_pixmap { &_gtk__Image }
+# Image_using_pixbuf is rendered using DITHER_MAX & transparency which is much better on 16bpp displays
+sub _gtk__Image_using_pixbuf { &_gtk__Image }
sub _gtk__Image {
my ($w, $opts, $class) = @_;
if (!$w) {
$w = Gtk2::Image->new;
$w->{format} = delete $opts->{format} if exists $opts->{format};
+
+ $w->set_from_stock(delete $opts->{stock}, 'button') if exists $opts->{stock};
+
+ $w->{options} = { flip => delete $opts->{flip} };
$w->{set_from_file} = $class =~ /using_pixmap/ ? sub {
my ($w, $file) = @_;
my $pixmap = mygtk2::pixmap_from_pixbuf($w, gtknew('Pixbuf', file => $file));
$w->set_from_pixmap($pixmap, undef);
+ } : $class =~ /using_pixbuf/ ? sub {
+ my ($w, $file) = @_;
+ my $pixbuf = _pixbuf_render_alpha(gtknew('Pixbuf', file => $file, %{$w->{options}}), 255);
+ my ($width, $height) = ($pixbuf->get_width, $pixbuf->get_height);
+ $w->set_size_request($width, $height);
+ $w->{pixbuf} = $pixbuf;
+ $w->signal_connect(expose_event => sub {
+ my (undef, $event) = @_;
+ if (!$w->{x}) {
+ my $alloc = $w->allocation;
+ $w->{x} = $alloc->x;
+ $w->{y} = $alloc->y;
+ }
+ # workaround Gtk+ bug: in installer, first event is not complete and rectables are bogus:
+ if ($::isInstall) {
+ $pixbuf->render_to_drawable($w->window, $w->style->fg_gc('normal'),
+ 0, 0, $w->{x}, $w->{y}, $width, $height, 'max', 0, 0);
+ return;
+ }
+ foreach my $rect ($event->region->get_rectangles) {
+ my @values = $rect->values;
+ $pixbuf->render_to_drawable($w->window, $w->style->fg_gc('normal'),
+ @values[0..1], $w->{x}+$values[0], $w->{y}+$values[1], @values[2..3], 'max', 0, 0);
+ }
+ });
} : sub {
my ($w, $file, $o_size) = @_;
- if ($o_size) {
- my $pixbuf = gtknew('Pixbuf', file => $file, size => $o_size);
- $w->set_from_pixbuf($pixbuf);
- } else {
- $w->set_from_file($file);
- }
+ my $pixbuf = gtknew('Pixbuf', file => $file, if_($o_size, size => $o_size), %{$w->{options}});
+ $w->set_from_pixbuf($pixbuf);
};
}
if (my $name = delete $opts->{file}) {
- my $file = _find_imgfile(may_apply($w->{format}, $name)) or internal_error("can not find image $name");
+ my $file = _find_imgfile(may_apply($w->{format}, $name)) or internal_error("cannot find image $name");
$w->{set_from_file}->($w, $file, delete $opts->{size});
} elsif (my $file_ref = delete $opts->{file_ref}) {
my $set = sub {
- my $file = _find_imgfile(may_apply($w->{format}, $$file_ref)) or internal_error("can not find image $$file_ref");
+ my $file = _find_imgfile(may_apply($w->{format}, $$file_ref)) or internal_error("cannot find image $$file_ref");
$w->{set_from_file}->($w, $file, delete $opts->{size});
};
gtkval_register($w, $file_ref, $set);
@@ -326,17 +388,26 @@ sub _gtk__Image {
sub _gtk__WrappedLabel {
my ($w, $opts) = @_;
- $opts->{line_wrap} = 1;
+ $opts->{line_wrap} = 1 if !defined $opts->{line_wrap};
_gtk__Label($w, $opts);
}
+our $left_padding = 20;
+
sub _gtk__Label_Left {
my ($w, $opts) = @_;
$opts->{alignment} ||= [ 0, 0 ];
- $opts->{padding} = [ 20, 0 ];
+ $opts->{padding} ||= [ $left_padding, 0 ];
+ _gtk__WrappedLabel($w, $opts);
+}
+
+sub _gtk__Label_Right {
+ my ($w, $opts) = @_;
+ $opts->{alignment} ||= [ 1, 0.5 ];
_gtk__Label($w, $opts);
}
+
sub _gtk__Label {
my ($w, $opts) = @_;
@@ -344,6 +415,7 @@ sub _gtk__Label {
$w->set_text(delete $opts->{text}) if exists $opts->{text};
} else {
$w = exists $opts->{text} ? Gtk2::Label->new(delete $opts->{text}) : Gtk2::Label->new;
+ $w->set_selectable(delete $opts->{selectable}) if exists $opts->{selectable};
$w->set_ellipsize(delete $opts->{ellipsize}) if exists $opts->{ellipsize};
$w->set_justify(delete $opts->{justify}) if exists $opts->{justify};
$w->set_line_wrap(delete $opts->{line_wrap}) if exists $opts->{line_wrap};
@@ -367,16 +439,50 @@ sub _gtk__Label {
$w;
}
+
+sub _gtk__Alignment {
+ my ($w, $_opts) = @_;
+
+ if (!$w) {
+ $w = Gtk2::Alignment->new(0, 0, 0, 0);
+ }
+ $w;
+}
+
+
sub title1_to_markup {
- my ($label) = @_;
- '<b><big>' . $label . '</big></b>';
+ my ($label) = @_;
+ if ($::isInstall) {
+ my $font = lang::l2pango_font($::o->{locale}{lang});
+ if (my ($font_size) = $font =~ /(\d+)/) {
+ $font_size++;
+ $font =~ s/\d+/$font_size/;
+ }
+ qq(<span foreground="#5A8AD6" font="$font">$label</span>);
+ } else {
+ qq(<b><big>$label</big></b>);
+ }
+}
+
+sub _gtk__Install_Title {
+ my ($w, $opts) = @_;
+ local $opts->{widget_name} = 'Banner';
+ $opts->{text} = uc($opts->{text}) if $::isInstall;
+ gtknew('HBox', widget_name => 'Banner', children => [
+ 0, gtknew('Label', padding => [ 6, 0 ]),
+ 1, gtknew('VBox', widget_name => 'Banner', children_tight => [
+ _gtk__Title2($w, $opts),
+ if_($::isInstall, Gtk2::HSeparator->new),
+ ]),
+ 0, gtknew('Label', padding => [ 6, 0 ]),
+ ]);
}
sub _gtk__Title1 {
my ($w, $opts) = @_;
$opts ||= {};
- $opts->{text_markup} = '<b><big>' . delete($opts->{label}) . '</big></b>';
- _gtk__Label($w, $opts);
+ $opts->{text_markup} = title1_to_markup(delete($opts->{label})) if $opts->{label};
+ _gtk__WrappedLabel($w, $opts);
}
sub _gtk__Title2 {
@@ -386,6 +492,31 @@ sub _gtk__Title2 {
_gtk__Title1($w, $opts);
}
+sub _gtk__Sexy_IconEntry {
+ my ($w, $opts) = @_;
+
+ require Gtk2::Sexy;
+ if (!$w) {
+ $w = Gtk2::Sexy::IconEntry->new;
+ $w->set_editable(delete $opts->{editable}) if exists $opts->{editable};
+ }
+
+ $w->add_clear_button if delete $opts->{clear_button};
+ if (my $icon = delete $opts->{primary_icon}) {
+ $w->set_icon('primary', $icon);
+ $w->set_icon_highlight('primary', $icon);
+ }
+ if (my $icon = delete $opts->{secondary_icon}) {
+ $w->set_icon('secondary', $icon);
+ $w->set_icon_highlight('secondary', $icon);
+ }
+
+ $w->signal_connect('icon-released' => delete $opts->{'icon-released'}) if exists $opts->{'icon-released'};
+ $w->signal_connect('icon-pressed' => delete $opts->{'icon-pressed'}) if exists $opts->{'icon-pressed'};
+
+ _gtk__Entry($w, $opts);
+}
+
sub _gtk__Entry {
my ($w, $opts) = @_;
@@ -394,6 +525,18 @@ sub _gtk__Entry {
$w->set_editable(delete $opts->{editable}) if exists $opts->{editable};
}
+ if (my $icon = delete $opts->{primary_icon}) {
+ $w->set_icon_from_stock('primary', $icon);
+ #$w->set_icon_highlight('primary', $icon);
+ }
+ if (my $icon = delete $opts->{secondary_icon}) {
+ $w->set_icon_from_stock('secondary', $icon);
+ #$w->set_icon_highlight('secondary', $icon);
+ }
+
+ $w->signal_connect('icon-release' => delete $opts->{'icon-release'}) if exists $opts->{'icon-release'};
+ $w->signal_connect('icon-press' => delete $opts->{'icon-press'}) if exists $opts->{'icon-press'};
+
$w->set_text(delete $opts->{text}) if exists $opts->{text};
$w->signal_connect(key_press_event => delete $opts->{key_press_event}) if exists $opts->{key_press_event};
@@ -401,8 +544,28 @@ sub _gtk__Entry {
my $set = sub { $w->set_text($$text_ref) };
gtkval_register($w, $text_ref, $set);
$set->();
+ $w->signal_connect(changed => sub {
+ gtkval_modify($text_ref, $w->get_text, $set);
+ });
+ }
+
+ $w;
+}
+
+sub _gtk__WeaknessCheckEntry {
+ my ($w, $opts) = @_;
+
+ if (!$w) {
+ $w = _gtk__Entry($w, $opts);
}
+ $w->signal_connect('changed' => sub {
+ require authentication;
+ my $password_weakness = authentication::compute_password_weakness($w->get_text);
+ $w->set_icon_from_pixbuf('GTK_ENTRY_ICON_SECONDARY', _get_weakness_icon($password_weakness));
+ $w->set_icon_tooltip_text('GTK_ENTRY_ICON_SECONDARY', _get_weakness_tooltip($password_weakness));
+ });
+
$w;
}
@@ -420,6 +583,24 @@ sub _gtk__TextView {
$w;
}
+sub _gtk__WebKit_View {
+ my ($w, $opts, $_class, $_action) = @_;
+ if (!$w) {
+ $w = Gtk2::WebKit::WebView->new;
+ }
+
+ # disable contextual menu:
+ if (delete $opts->{no_popup_menu}) {
+ $w->signal_connect('populate-popup' => sub {
+ my (undef, $menu) = @_;
+ $menu->destroy if $menu;
+ 1;
+ });
+ }
+
+ $w;
+}
+
sub _gtk__ComboBox {
my ($w, $opts, $_class, $action) = @_;
@@ -479,13 +660,13 @@ sub _gtk__ScrolledWindow {
my $faked_w = $w;
if (my $child = delete $opts->{child}) {
- if (member(ref($child), qw(Gtk2::Layout Gtk2::Html2::View Gtk2::SimpleList Gtk2::SourceView::View Gtk2::Text Gtk2::TextView Gtk2::TreeView))) {
+ if (member(ref($child), qw(Gtk2::Layout Gtk2::Html2::View Gtk2::SimpleList Gtk2::SourceView::View Gtk2::Text Gtk2::TextView Gtk2::TreeView Gtk2::WebKit::WebView))) {
$w->add($child);
} else {
$w->add_with_viewport($child);
}
$child->set_focus_vadjustment($w->get_vadjustment) if $child->can('set_focus_vadjustment');
- $child->set_left_margin(6) if ref($child) =~ /Gtk2::TextView/;
+ $child->set_left_margin(6) if ref($child) =~ /Gtk2::TextView/ && $child->get_left_margin <= 6;
$child->show;
$w->child->set_shadow_type(delete $opts->{shadow_type}) if exists $opts->{shadow_type};
@@ -494,7 +675,7 @@ sub _gtk__ScrolledWindow {
$child->{to_bottom} = _allow_scroll_TextView_to_bottom($w, $child);
}
- if ($action eq 'gtknew' && ref($child) =~ /Gtk2::TextView|Gtk2::TreeView/) {
+ if (!delete $opts->{no_shadow} && $action eq 'gtknew' && ref($child) =~ /Gtk2::(Html2|SimpleList|TextView|TreeView|WebKit::WebView)/) {
$faked_w = gtknew('Frame', shadow_type => 'in', child => $w);
}
}
@@ -537,6 +718,116 @@ sub _gtk__Expander {
$w;
}
+
+
+sub _gtk__MDV_Notebook {
+ my ($w, $opts, $_class, $_action) = @_;
+ if (!$w) {
+ import_style_ressources();
+
+ my ($layout, $selection_arrow, $selection_bar);
+ my $parent_window = delete $opts->{parent_window} || root_window();
+ my $root_height = first($parent_window->get_size);
+ my $suffix = $root_height == 800 && !$::isStandalone ? '_600' : '_768';
+ # the white square is a little bit above the actual left sidepanel:
+ my $offset = 20;
+ my $is_flip_needed = text_direction_rtl();
+ my $filler = gtknew('Image', file => 'left-background-filler.png');
+ my $filler_height = $filler->get_pixbuf->get_height;
+ my $left_background = gtknew('Image_using_pixbuf', file => 'left-background.png');
+ my $lf_height = $left_background->{pixbuf}->get_height;
+ my @right_background = $::isInstall ?
+ gtknew('Image', file => "right-white-background_left_part$suffix", flip => $is_flip_needed)
+ : map {
+ gtknew('Image', file => "right-white-background_left_part-$_", flip => $is_flip_needed);
+ } 1, 2, 2, 3;
+ my $width1 = $left_background->{pixbuf}->get_width;
+ my $total_width = $width1 + $right_background[0]->get_pixbuf->get_width;
+ my $arrow_x = text_direction_rtl() ? $offset/2 - 4 : $width1 - $offset - 3;
+ $w = gtknew('HBox', spacing => 0, children => [
+ 0, $layout = gtknew('Layout', width => $total_width - $offset, children => [ #Layout Fixed
+ # stacking order is important for "Z-buffer":
+ [ $left_background, 0, 0 ],
+ if_($suffix ne '_600',
+ [ $filler, 0, $lf_height ],
+ [ gtknew('Image', file => 'left-background-filler.png'), 0, $lf_height + $filler_height ],
+ [ gtknew('Image', file => 'left-background-filler.png'), 0, $lf_height + $filler_height*2 ],
+ ),
+ [ $selection_bar = gtknew('Image', file => 'rollover.png'), 0, 0 ], # arbitrary vertical position
+ ($opts->{children} ? @{ delete $opts->{children} } : ()),
+ [ my $box = gtknew('VBox', spacing => 0, height => -1, children => [
+ 0, $right_background[0],
+ if_(!$::isInstall,
+ 1, $right_background[1],
+ 1, $right_background[2], # enought up to to XYZx1280 resolution
+ 0, $right_background[3],
+ ),
+ ]), (text_direction_rtl() ? 0 : $width1 - $offset), 0 ],
+ # stack on top (vertical position is arbitrary):
+ [ $selection_arrow = gtknew('Image', file => 'steps_on', flip => $is_flip_needed), $arrow_x, 0, ],
+ ]),
+ 1, delete $opts->{right_child} ||
+ gtknew('Image_using_pixbuf', file => "right-white-background_right_part$suffix", flip => $is_flip_needed),
+ ]);
+
+ $w->signal_connect('size-allocate' => sub {
+ my (undef, $requisition) = @_;
+ state $width ||= $right_background[0]->get_pixbuf->get_width;
+ $box->set_size_request($width, $requisition->height);
+ });
+ $_->set_property('no-show-all', 1) foreach $selection_bar, $selection_arrow;
+ bless($w, 'Gtk2::MDV_Notebook');
+ add2hash($w, {
+ arrow_x => $arrow_x,
+ layout => $layout,
+ selection_arrow => $selection_arrow,
+ selection_bar =>$selection_bar,
+ });
+ }
+ $w;
+}
+
+
+sub _gtk__Fixed {
+ my ($w, $opts, $_class, $_action) = @_;
+
+ if (!$w) {
+ $w = Gtk2::Fixed->new;
+ $w->set_has_window(delete $opts->{has_window}) if exists $opts->{has_window};
+ _gtknew_handle_layout_children($w, $opts);
+ }
+ $w;
+}
+
+sub _gtk__Layout {
+ my ($w, $opts, $_class, $_action) = @_;
+
+ if (!$w) {
+ $w = Gtk2::Layout->new;
+ _gtknew_handle_layout_children($w, $opts);
+ }
+ $w;
+}
+
+sub _gtknew_handle_layout_children {
+ my ($w, $opts) = @_;
+ $opts->{children} ||= [];
+ push @{$opts->{children}}, [ delete $opts->{child}, delete $opts->{x}, delete $opts->{y} ] if exists $opts->{child};
+ foreach (@{$opts->{children}}) {
+ $w->put(@$_);
+ }
+ delete $opts->{children};
+
+ if ($opts->{pixbuf_file}) {
+ my $pixbuf = if_($opts->{pixbuf_file}, gtknew('Pixbuf', file => delete $opts->{pixbuf_file}));
+ $w->signal_connect(
+ realize => sub {
+ ugtk2::set_back_pixbuf($w, $pixbuf);
+ });
+ }
+}
+
+
sub _gtk__Window { &_gtk_any_Window }
sub _gtk__Dialog { &_gtk_any_Window }
sub _gtk__Plug { &_gtk_any_Window }
@@ -547,14 +838,24 @@ sub _gtk_any_Window {
if ($class eq 'Window') {
$w = "Gtk2::$class"->new(delete $opts->{type} || 'toplevel');
} elsif ($class eq 'Plug') {
- $opts->{socket_id} or internal_error("can not create a Plug without a socket_id");
+ $opts->{socket_id} or internal_error("cannot create a Plug without a socket_id");
$w = "Gtk2::$class"->new(delete $opts->{socket_id});
+ } elsif ($class eq 'FileChooserDialog') {
+ my $action = delete $opts->{action} || internal_error("missing action for FileChooser");
+ $w = Gtk2::FileChooserDialog->new(delete $opts->{title}, delete $opts->{transient_for} || $::main_window,
+ $action, N("Cancel") => 'cancel', delete $opts->{button1} || N("Ok") => 'ok',
+ );
} else {
$w = "Gtk2::$class"->new;
}
- $w->set_modal(1) if exists $opts->{transient_for};
+ if ($::isInstall || $::set_dialog_hint) {
+ $w->set_type_hint('dialog'); # for matchbox window manager
+ }
+
$w->set_modal(delete $opts->{modal}) if exists $opts->{modal};
+ $opts->{transient_for} ||= $::main_window if $::main_window;
+ $w->set_modal(1) if exists $opts->{transient_for};
$w->set_transient_for(delete $opts->{transient_for}) if exists $opts->{transient_for};
$w->set_border_width(delete $opts->{border_width}) if exists $opts->{border_width};
$w->set_shadow_type(delete $opts->{shadow_type}) if exists $opts->{shadow_type};
@@ -565,7 +866,7 @@ sub _gtk_any_Window {
if (my $f = _find_imgfile($name)) {
$w->set_icon(gtknew('Pixbuf', file => $f));
} elsif (!$icon_no_error) {
- internal_error("can not find $name");
+ internal_error("cannot find $name");
}
}
}
@@ -578,14 +879,25 @@ sub _gtk_any_Window {
$w;
}
+my $previous_popped_and_reuse_window;
+
+sub destroy_previous_popped_and_reuse_window() {
+ $previous_popped_and_reuse_window or return;
+
+ $previous_popped_and_reuse_window->destroy;
+ $previous_popped_and_reuse_window = undef;
+}
+
sub _gtk__MagicWindow {
my ($w, $opts) = @_;
my $pop_it = delete $opts->{pop_it} || !$::isWizard && !$::isEmbedded || $::WizardTable && do {
#- do not take into account the wizard banner
+ # FIXME!!!
any { !$_->isa('Gtk2::DrawingArea') && $_->visible } $::WizardTable->get_children;
};
+ my $pop_and_reuse = delete $opts->{pop_and_reuse} && $pop_it;
my $sub_child = delete $opts->{child};
my $provided_banner = delete $opts->{banner};
@@ -594,14 +906,21 @@ sub _gtk__MagicWindow {
} else {
$sub_child ||= gtknew('VBox');
}
+ if (!$pop_and_reuse) {
+ destroy_previous_popped_and_reuse_window();
+ }
+
+ if ($previous_popped_and_reuse_window && $pop_and_reuse) {
+ $w = $previous_popped_and_reuse_window;
+ $w->remove($w->child);
- if ($pop_it) {
- $opts->{child} = $::isInstall ?
- gtknew('Frame', shadow_type => 'out',
- child => gtknew('Frame', shadow_type => 'none', border_width => 3, child => $sub_child)) :
- $sub_child;
+ gtkadd($w, child => $sub_child);
+ %$opts = ();
+ } elsif ($pop_it) {
+ $opts->{child} = $sub_child;
- $w = _create_Window($opts);
+ $w = _create_Window($opts, '');
+ $previous_popped_and_reuse_window = $w if $pop_and_reuse;
} else {
if (!$::WizardWindow) {
@@ -625,9 +944,9 @@ sub _gtk__MagicWindow {
sync($::WizardWindow);
} else {
add2hash($opts, {
- child => gtknew('Frame', shadow_type => 'out', child => $::WizardTable),
+ child => $::WizardTable,
});
- $::WizardWindow = _create_Window($opts);
+ $::WizardWindow = _create_Window($opts, 'special_center');
}
} else {
%$opts = ();
@@ -642,7 +961,7 @@ sub _gtk__MagicWindow {
}
bless {
real_window => $w,
- child => $sub_child, pop_it => $pop_it,
+ child => $sub_child, pop_it => $pop_it, pop_and_reuse => $pop_and_reuse,
if_($provided_banner, banner => $provided_banner),
}, 'mygtk2::MagicWindow';
}
@@ -701,6 +1020,8 @@ sub _gtk__FileSelection {
$w;
}
+sub _gtk__FileChooserDialog { &_gtk_any_Window }
+
sub _gtk__FileChooser {
my ($w, $opts) = @_;
@@ -734,6 +1055,7 @@ sub _gtk_any_Paned {
if (!$w) {
$w = "Gtk2::$class"->new;
$w->set_border_width(delete $opts->{border_width}) if exists $opts->{border_width};
+ $w->set_position(delete $opts->{position}) if exists $opts->{position};
} elsif ($action eq 'gtkset') {
$_->destroy foreach $w->get_children;
}
@@ -752,7 +1074,7 @@ sub _gtk_any_Box {
my ($w, $opts, $class, $action) = @_;
if (!$w) {
- $w = "Gtk2::$class"->new(0,0);
+ $w = "Gtk2::$class"->new;
$w->set_homogeneous(delete $opts->{homogenous}) if exists $opts->{homogenous};
$w->set_spacing(delete $opts->{spacing}) if exists $opts->{spacing};
$w->set_border_width(delete $opts->{border_width}) if exists $opts->{border_width};
@@ -772,6 +1094,7 @@ sub _gtk_any_ButtonBox {
if (!$w) {
$w = "Gtk2::$class"->new;
$w->set_homogeneous(delete $opts->{homogenous}) if exists $opts->{homogenous};
+ $w->set_border_width(delete $opts->{border_width}) if exists $opts->{border_width};
$w->set_spacing(delete $opts->{spacing}) if exists $opts->{spacing};
$w->set_layout(delete $opts->{layout} || 'spread');
} elsif ($action eq 'gtkset') {
@@ -821,11 +1144,11 @@ sub _gtk__Table {
my $j = $::i;
if ($_) {
ref $_ or $_ = Gtk2::WrappedLabel->new($_);
- $j != $#$l && !$w->{mcc} ?
- $w->attach($_, $j, $j + 1, $i, $i + 1,
- 'fill', 'fill', $w->{xpadding}, $w->{ypadding}) :
- $w->attach($_, $j, $j + 1, $i, $i + 1,
- ['expand', 'fill'], ref($_) eq 'Gtk2::ScrolledWindow' || $_->get_data('must_grow') ? ['expand', 'fill'] : [], 0, 0);
+ $w->attach($_, $j, $j + 1, $i, $i + 1,
+ $j != $#$l && !$w->{mcc} ?
+ ('fill', 'fill', $w->{xpadding}, $w->{ypadding}) :
+ (['expand', 'fill'], ref($_) eq 'Gtk2::ScrolledWindow' || $_->get_data('must_grow') ?
+ ['expand', 'fill'] : [], 0, 0));
$_->show;
}
} @$l;
@@ -854,7 +1177,7 @@ sub _gtknew_handle_children {
foreach (@child) {
my ($fill, $child) = @$_;
- $fill eq '0' || $fill eq '1' || $fill eq 'fill' || $fill eq 'expand' or internal_error("odd {children} parameter must be 0 or 1 (got $fill)");
+ member($fill, qw(0 1 fill expand)) or internal_error("odd {children} parameter must be 0 or 1 (got $fill)");
ref $child or $child = Gtk2::WrappedLabel->new($child);
my $expand = $fill && $fill ne 'fill' ? 1 : 0;
$w->pack_start($child, $expand, $fill, $padding || 0);
@@ -875,7 +1198,7 @@ sub mygtk2::MagicWindow::AUTOLOAD {
my ($s1, @s2) = $meth eq 'show'
? ('real_window', 'banner', 'child') :
- $meth eq 'destroy' || $meth eq 'hide' ?
+ member($meth, qw(destroy hide)) ?
($w->{pop_it} ? 'real_window' : ('child', 'banner')) :
$meth eq 'get' && $args[0] eq 'window-position' ||
$for_real_window{$meth} ||
@@ -889,8 +1212,45 @@ sub mygtk2::MagicWindow::AUTOLOAD {
$w->{$s1}->$meth(@args);
}
+my $enable_quit_popup;
+sub enable_quit_popup {
+ my ($bool) = @_;
+ $enable_quit_popup = $bool;
+}
+
+state $in_callback;
+sub quit_popup() {
+ return if !$enable_quit_popup;
+ if (!$in_callback) {
+ $in_callback = 1;
+ my $_guard = before_leaving { undef $in_callback };
+ require ugtk2;
+ my $w = ugtk2->new(N("Confirmation"), grab => 1);
+ ugtk2::_ask_okcancel($w, N("Are you sure you want to quit?"), N("Quit"), N("Cancel"));
+ my $ret = ugtk2::main($w);
+ return 1 if !$ret;
+ }
+}
+
+sub quit_callback {
+ my ($w) = @_;
+
+ return 1 if quit_popup();
+ if ($::isWizard) {
+ $w->destroy;
+ die 'wizcancel';
+ } else {
+ if (Gtk2->main_level) {
+ Gtk2->main_quit;
+ } else {
+ # block window deletion if not in main loop (eg: while starting the GUI)
+ return 1;
+ }
+ }
+}
+
sub _create_Window {
- my ($opts) = @_;
+ my ($opts, $special_center) = @_;
my $no_Window_Manager = exists $opts->{no_Window_Manager} ? delete $opts->{no_Window_Manager} : !$::isStandalone;
@@ -898,70 +1258,45 @@ sub _create_Window {
if_(!$::isInstall && !$::isWizard, border_width => 5),
#- policy: during install, we need a special code to handle the weird centering, see below
- position_policy => $::isInstall ? 'none' : $no_Window_Manager ? 'center-always' : 'center-on-parent',
+ position_policy => $special_center ? 'none' :
+ $no_Window_Manager ? 'center-always' : 'center-on-parent',
if_($::isInstall, position => [
- $::rootwidth - ($::o->{windowwidth} + $::real_windowwidth) / 2,
- $::logoheight + ($::o->{windowheight} - $::real_windowheight) / 2,
+ $::stepswidth + ($::o->{windowwidth} - $::real_windowwidth) / 2,
+ ($::o->{windowheight} - $::real_windowheight) / 2,
]),
});
my $w = _gtk(undef, 'Window', 'gtknew', $opts);
#- when the window is closed using the window manager "X" button (or alt-f4)
- $w->signal_connect(delete_event => sub {
- if ($::isWizard) {
- $w->destroy;
- die 'wizcancel';
- } else {
- Gtk2->main_quit;
- }
- });
+ $w->signal_connect(delete_event => \&quit_callback);
- if ($no_Window_Manager) {
- _force_keyboard_focus($w);
- }
-
- if ($::isInstall) {
+ if ($::isInstall && !$::isStandalone) {
require install::gtk; #- for perl_checker
install::gtk::handle_unsafe_mouse($::o, $w);
$w->signal_connect(key_press_event => \&install::gtk::special_shortcuts);
#- force center at a weird position, this can't be handled by position_policy
- #- because center-on-parent is a window manager hint, and we don't have a WM
+ #- because center-* really are window manager hints for centering, whereas we want
+ #- to center the main window in the right part of the screen
my ($wi, $he);
$w->signal_connect(size_allocate => sub {
my (undef, $event) = @_;
my @w_size = $event->values;
+
+ # ignore bogus sizing events:
+ return if $w_size[2] < 5;
return if $w_size[2] == $wi && $w_size[3] == $he; #BUG
(undef, undef, $wi, $he) = @w_size;
$w->move(max(0, $::rootwidth - ($::o->{windowwidth} + $wi) / 2),
- max(0, $::logoheight + ($::o->{windowheight} - $he) / 2));
- });
- #- without this, the focus is broken during install, though this is not needed during X test, why??
- $w->show;
+ max(0, ($::o->{windowheight} - $he) / 2));
+ }) if $special_center;
}
- $w;
-}
-
-my $current_window;
-sub _force_keyboard_focus {
- my ($w) = @_;
-
- sub _XSetInputFocus {
- my ($w) = @_;
- if ($current_window == $w) {
- $w->window->XSetInputFocus;
- }
- 0;
- }
+ $w->present if $no_Window_Manager;
- #- force keyboard focus instead of mouse focus
- my $previous_current_window = $current_window;
- $current_window = $w;
- $w->signal_connect(expose_event => \&_XSetInputFocus);
- $w->signal_connect(destroy => sub { $current_window = $previous_current_window });
+ $w;
}
sub _find_imgfile {
@@ -971,7 +1306,7 @@ sub _find_imgfile {
$name;
} else {
foreach my $path (_icon_paths()) {
- foreach ('', '.png', '.xpm') {
+ foreach ('', '.png', '.xpm', '.jpg') {
my $file = "$path/$name$_";
-f $file and return $file;
}
@@ -1020,11 +1355,11 @@ sub _text_insert {
foreach my $token (@$t) {
my ($item, $tag) = @$token;
my $iter1 = $buffer->get_end_iter;
- if ($item =~ /^Gtk2::Gdk::Pixbuf/) {
+ if (ref($item) =~ /^Gtk2::Gdk::Pixbuf/) {
$buffer->insert_pixbuf($iter1, $item);
next;
}
- if ($item =~ /^Gtk2::/) {
+ if (ref($item) =~ /^Gtk2::/) {
my $anchor = $buffer->create_child_anchor($iter1);
$textview->add_child_at_anchor($item, $anchor);
$textview->{anchors} ||= [];
@@ -1079,9 +1414,23 @@ sub _allow_scroll_TextView_to_bottom {
};
}
+sub asteriskize {
+ my ($label) = @_;
+ "\x{2022} " . $label;
+}
+
+sub get_main_window_size() {
+ $::real_windowwidth ? ($::real_windowwidth, $::real_windowheight) : $::isWizard ? (540, 360) : (600, 400);
+}
+
+# in order to workaround infamous 6 years old gnome bug #101968:
+sub get_label_width() {
+ first(mygtk2::get_main_window_size()) - 55 - $left_padding;
+}
+
sub set_main_window_size {
my ($window) = @_;
- my ($width, $height) = $::real_windowwidth ? ($::real_windowwidth, $::real_windowheight) : $::isWizard ? (540, 360) : (600, 400);
+ my ($width, $height) = get_main_window_size();
$window->set_size_request($width, $height);
}
@@ -1112,13 +1461,36 @@ sub flush() {
Gtk2->main_iteration while Gtk2->events_pending;
}
+sub enable_sync_flush {
+ my ($w) = @_;
+ $w->signal_connect(expose_event => sub { $w->{displayed} = 1; 0 });
+}
+
+sub sync_flush {
+ my ($w) = @_;
+ # hackish :-(
+ mygtk2::sync($w) while !$w->{displayed};
+}
+
+
+sub register_main_window {
+ my ($w) = @_;
+ push @::main_windows, $::main_window = $w;
+}
+
sub may_destroy {
my ($w) = @_;
- $w->destroy if $w;
+ return if !$w;
+ @::main_windows = difference2(\@::main_windows, [ $w->{real_window} ]);
+ if ($::main_window eq $w->{real_window}) {
+ undef $::main_window;
+ $::main_window = $::main_windows[-1];
+ }
+ $w->destroy;
}
sub root_window() {
- my $root if 0;
+ state $root;
$root ||= Gtk2::Gdk->get_default_root_window;
}
@@ -1146,6 +1518,21 @@ sub set_root_window_background_with_gc {
$root->draw_rectangle($gc, 1, 0, 0, $w, $h);
}
+sub _new_alpha_pixbuf {
+ my ($pixbuf) = @_;
+ my ($height, $width) = ($pixbuf->get_height, $pixbuf->get_width);
+ my $new_pixbuf = Gtk2::Gdk::Pixbuf->new('rgb', 1, 8, $width, $height);
+ $new_pixbuf->fill(0x00000000); # transparent white
+ $width, $height, $new_pixbuf;
+}
+
+sub _pixbuf_render_alpha {
+ my ($pixbuf, $alpha_threshold) = @_;
+ my ($width, $height, $new_pixbuf) = _new_alpha_pixbuf($pixbuf);
+ $pixbuf->composite($new_pixbuf, 0, 0, $width, $height, 0, 0, 1, 1, 'bilinear', $alpha_threshold);
+ $new_pixbuf;
+}
+
sub pixmap_from_pixbuf {
my ($widget, $pixbuf) = @_;
my $window = $widget->window or internal_error("you can't use this function if the widget is not realised");
@@ -1155,4 +1542,57 @@ sub pixmap_from_pixbuf {
$pixmap;
}
+sub import_style_ressources() {
+ if (!$::isInstall) {
+ Gtk2::Rc->parse_string(scalar cat_('/usr/share/libDrakX/themes-galaxy.rc')); # FIXME DEBUG
+ }
+}
+
+sub text_direction_rtl() {
+ Gtk2::Widget->get_default_direction eq 'rtl';
+}
+
+sub _get_weakness_icon {
+ my ($password_weakness) = @_;
+ my %weakness_icon = (
+ 1 => gtknew('Pixbuf', file => 'security-low'),
+ 2 => gtknew('Pixbuf', file => 'security-low'),
+ 3 => gtknew('Pixbuf', file => 'security-medium'),
+ 4 => gtknew('Pixbuf', file => 'security-strong'),
+ 5 => gtknew('Pixbuf', file => 'security-strong'));
+ my $weakness_icon = $weakness_icon{$password_weakness} || return undef;
+ $weakness_icon;
+}